kritzel-react 0.1.32 → 0.1.34

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.
Files changed (210) hide show
  1. package/dist/types/components/stencil-generated/components.d.ts +1 -1
  2. package/package.json +2 -2
  3. package/dist/kritzel-react/lib/components/stencil-generated/components.js +0 -122
  4. package/dist/kritzel-react/lib/index.js +0 -2
  5. package/dist/kritzel-stencil/src/classes/core/core.class.js +0 -797
  6. package/dist/kritzel-stencil/src/classes/core/reviver.class.js +0 -97
  7. package/dist/kritzel-stencil/src/classes/core/store.class.js +0 -153
  8. package/dist/kritzel-stencil/src/classes/core/viewport.class.js +0 -311
  9. package/dist/kritzel-stencil/src/classes/core/workspace.class.js +0 -34
  10. package/dist/kritzel-stencil/src/classes/handlers/base.handler.js +0 -6
  11. package/dist/kritzel-stencil/src/classes/handlers/context-menu.handler.js +0 -63
  12. package/dist/kritzel-stencil/src/classes/handlers/hover.handler.js +0 -18
  13. package/dist/kritzel-stencil/src/classes/handlers/key.handler.js +0 -76
  14. package/dist/kritzel-stencil/src/classes/handlers/line-handle.handler.js +0 -382
  15. package/dist/kritzel-stencil/src/classes/handlers/move.handler.js +0 -213
  16. package/dist/kritzel-stencil/src/classes/handlers/resize.handler.js +0 -205
  17. package/dist/kritzel-stencil/src/classes/handlers/rotation.handler.js +0 -117
  18. package/dist/kritzel-stencil/src/classes/handlers/selection.handler.js +0 -313
  19. package/dist/kritzel-stencil/src/classes/managers/anchor.manager.js +0 -1056
  20. package/dist/kritzel-stencil/src/classes/managers/cursor.manager.js +0 -117
  21. package/dist/kritzel-stencil/src/classes/managers/theme.manager.js +0 -103
  22. package/dist/kritzel-stencil/src/classes/objects/base-object.class.js +0 -249
  23. package/dist/kritzel-stencil/src/classes/objects/custom-element.class.js +0 -60
  24. package/dist/kritzel-stencil/src/classes/objects/group.class.js +0 -407
  25. package/dist/kritzel-stencil/src/classes/objects/image.class.js +0 -55
  26. package/dist/kritzel-stencil/src/classes/objects/line.class.js +0 -608
  27. package/dist/kritzel-stencil/src/classes/objects/path.class.js +0 -401
  28. package/dist/kritzel-stencil/src/classes/objects/selection-box.class.js +0 -21
  29. package/dist/kritzel-stencil/src/classes/objects/selection-group.class.js +0 -409
  30. package/dist/kritzel-stencil/src/classes/objects/shape.class.js +0 -412
  31. package/dist/kritzel-stencil/src/classes/objects/text.class.js +0 -292
  32. package/dist/kritzel-stencil/src/classes/providers/broadcast-sync-provider.class.js +0 -101
  33. package/dist/kritzel-stencil/src/classes/providers/hocuspocus-sync-provider.class.js +0 -241
  34. package/dist/kritzel-stencil/src/classes/providers/indexeddb-sync-provider.class.js +0 -43
  35. package/dist/kritzel-stencil/src/classes/providers/websocket-sync-provider.class.js +0 -98
  36. package/dist/kritzel-stencil/src/classes/registries/icon-registry.class.js +0 -66
  37. package/dist/kritzel-stencil/src/classes/registries/tool.registry.js +0 -21
  38. package/dist/kritzel-stencil/src/classes/structures/app-state-map.structure.js +0 -212
  39. package/dist/kritzel-stencil/src/classes/structures/object-map.structure.js +0 -414
  40. package/dist/kritzel-stencil/src/classes/structures/quadtree.structure.js +0 -151
  41. package/dist/kritzel-stencil/src/classes/tools/base-tool.class.js +0 -36
  42. package/dist/kritzel-stencil/src/classes/tools/brush-tool.class.js +0 -161
  43. package/dist/kritzel-stencil/src/classes/tools/eraser-tool.class.js +0 -85
  44. package/dist/kritzel-stencil/src/classes/tools/image-tool.class.js +0 -83
  45. package/dist/kritzel-stencil/src/classes/tools/line-tool.class.js +0 -187
  46. package/dist/kritzel-stencil/src/classes/tools/selection-tool.class.js +0 -429
  47. package/dist/kritzel-stencil/src/classes/tools/shape-tool.class.js +0 -196
  48. package/dist/kritzel-stencil/src/classes/tools/text-tool.class.js +0 -100
  49. package/dist/kritzel-stencil/src/components/core/kritzel-engine/kritzel-engine.js +0 -1343
  50. package/dist/kritzel-stencil/src/components/shared/kritzel-brush-style/kritzel-brush-style.js +0 -46
  51. package/dist/kritzel-stencil/src/components/shared/kritzel-dropdown/kritzel-dropdown.js +0 -312
  52. package/dist/kritzel-stencil/src/components/shared/kritzel-font-family/kritzel-font-family.js +0 -60
  53. package/dist/kritzel-stencil/src/components/shared/kritzel-line-endings/kritzel-line-endings.js +0 -105
  54. package/dist/kritzel-stencil/src/components/shared/kritzel-shape-fill/kritzel-shape-fill.js +0 -53
  55. package/dist/kritzel-stencil/src/components/ui/kritzel-context-menu/kritzel-context-menu.js +0 -137
  56. package/dist/kritzel-stencil/src/configs/default-brush-tool.config.js +0 -9
  57. package/dist/kritzel-stencil/src/configs/default-engine-config.js +0 -63
  58. package/dist/kritzel-stencil/src/configs/default-line-tool.config.js +0 -9
  59. package/dist/kritzel-stencil/src/configs/default-sync.config.js +0 -9
  60. package/dist/kritzel-stencil/src/configs/default-text-tool.config.js +0 -7
  61. package/dist/kritzel-stencil/src/constants/color-palette.constants.js +0 -37
  62. package/dist/kritzel-stencil/src/constants/engine.constants.js +0 -2
  63. package/dist/kritzel-stencil/src/enums/event-button.enum.js +0 -6
  64. package/dist/kritzel-stencil/src/enums/handle-type.enum.js +0 -7
  65. package/dist/kritzel-stencil/src/enums/shape-type.enum.js +0 -6
  66. package/dist/kritzel-stencil/src/helpers/class.helper.js +0 -5
  67. package/dist/kritzel-stencil/src/helpers/color.helper.js +0 -106
  68. package/dist/kritzel-stencil/src/helpers/cursor.helper.js +0 -57
  69. package/dist/kritzel-stencil/src/helpers/devices.helper.js +0 -28
  70. package/dist/kritzel-stencil/src/helpers/event.helper.js +0 -58
  71. package/dist/kritzel-stencil/src/helpers/geometry.helper.js +0 -149
  72. package/dist/kritzel-stencil/src/helpers/keyboard.helper.js +0 -51
  73. package/dist/kritzel-stencil/src/helpers/math.helper.js +0 -5
  74. package/dist/kritzel-stencil/src/helpers/object.helper.js +0 -11
  75. package/dist/kritzel-stencil/src/helpers/theme.helper.js +0 -69
  76. package/dist/kritzel-stencil/src/index.js +0 -41
  77. package/dist/kritzel-stencil/src/interfaces/anchor.interface.js +0 -1
  78. package/dist/kritzel-stencil/src/interfaces/arrow-head.interface.js +0 -1
  79. package/dist/kritzel-stencil/src/interfaces/bounding-box.interface.js +0 -1
  80. package/dist/kritzel-stencil/src/interfaces/clonable.interface.js +0 -1
  81. package/dist/kritzel-stencil/src/interfaces/context-menu-item.interface.js +0 -1
  82. package/dist/kritzel-stencil/src/interfaces/debug-info.interface.js +0 -1
  83. package/dist/kritzel-stencil/src/interfaces/dialog.interface.js +0 -1
  84. package/dist/kritzel-stencil/src/interfaces/displayable-shortcut.interface.js +0 -1
  85. package/dist/kritzel-stencil/src/interfaces/engine-state.interface.js +0 -1
  86. package/dist/kritzel-stencil/src/interfaces/line-options.interface.js +0 -1
  87. package/dist/kritzel-stencil/src/interfaces/master-detail.interface.js +0 -1
  88. package/dist/kritzel-stencil/src/interfaces/menu-item.interface.js +0 -1
  89. package/dist/kritzel-stencil/src/interfaces/object.interface.js +0 -1
  90. package/dist/kritzel-stencil/src/interfaces/path-options.interface.js +0 -1
  91. package/dist/kritzel-stencil/src/interfaces/point.interface.js +0 -1
  92. package/dist/kritzel-stencil/src/interfaces/polygon.interface.js +0 -1
  93. package/dist/kritzel-stencil/src/interfaces/serializable.interface.js +0 -1
  94. package/dist/kritzel-stencil/src/interfaces/settings.interface.js +0 -1
  95. package/dist/kritzel-stencil/src/interfaces/shortcut.interface.js +0 -1
  96. package/dist/kritzel-stencil/src/interfaces/sync-config.interface.js +0 -1
  97. package/dist/kritzel-stencil/src/interfaces/sync-provider.interface.js +0 -1
  98. package/dist/kritzel-stencil/src/interfaces/theme.interface.js +0 -1
  99. package/dist/kritzel-stencil/src/interfaces/tool-config.interface.js +0 -1
  100. package/dist/kritzel-stencil/src/interfaces/tool.interface.js +0 -1
  101. package/dist/kritzel-stencil/src/interfaces/toolbar-control.interface.js +0 -1
  102. package/dist/kritzel-stencil/src/interfaces/undo-state.interface.js +0 -1
  103. package/dist/kritzel-stencil/src/themes/dark-theme.js +0 -198
  104. package/dist/kritzel-stencil/src/themes/light-theme.js +0 -199
  105. package/dist/kritzel-stencil/src/types/shortcut.type.js +0 -1
  106. package/dist/kritzel-stencil/src/types/state.types.js +0 -1
  107. package/dist/types/kritzel-react/lib/components/stencil-generated/components.d.ts +0 -74
  108. package/dist/types/kritzel-react/lib/index.d.ts +0 -2
  109. package/dist/types/kritzel-stencil/src/classes/core/core.class.d.ts +0 -101
  110. package/dist/types/kritzel-stencil/src/classes/core/reviver.class.d.ts +0 -6
  111. package/dist/types/kritzel-stencil/src/classes/core/store.class.d.ts +0 -53
  112. package/dist/types/kritzel-stencil/src/classes/core/viewport.class.d.ts +0 -48
  113. package/dist/types/kritzel-stencil/src/classes/core/workspace.class.d.ts +0 -24
  114. package/dist/types/kritzel-stencil/src/classes/handlers/base.handler.d.ts +0 -5
  115. package/dist/types/kritzel-stencil/src/classes/handlers/context-menu.handler.d.ts +0 -8
  116. package/dist/types/kritzel-stencil/src/classes/handlers/hover.handler.d.ts +0 -6
  117. package/dist/types/kritzel-stencil/src/classes/handlers/key.handler.d.ts +0 -11
  118. package/dist/types/kritzel-stencil/src/classes/handlers/line-handle.handler.d.ts +0 -34
  119. package/dist/types/kritzel-stencil/src/classes/handlers/move.handler.d.ts +0 -29
  120. package/dist/types/kritzel-stencil/src/classes/handlers/resize.handler.d.ts +0 -24
  121. package/dist/types/kritzel-stencil/src/classes/handlers/rotation.handler.d.ts +0 -12
  122. package/dist/types/kritzel-stencil/src/classes/handlers/selection.handler.d.ts +0 -27
  123. package/dist/types/kritzel-stencil/src/classes/managers/anchor.manager.d.ts +0 -180
  124. package/dist/types/kritzel-stencil/src/classes/managers/cursor.manager.d.ts +0 -43
  125. package/dist/types/kritzel-stencil/src/classes/managers/theme.manager.d.ts +0 -56
  126. package/dist/types/kritzel-stencil/src/classes/objects/base-object.class.d.ts +0 -76
  127. package/dist/types/kritzel-stencil/src/classes/objects/custom-element.class.d.ts +0 -26
  128. package/dist/types/kritzel-stencil/src/classes/objects/group.class.d.ts +0 -97
  129. package/dist/types/kritzel-stencil/src/classes/objects/image.class.d.ts +0 -17
  130. package/dist/types/kritzel-stencil/src/classes/objects/line.class.d.ts +0 -101
  131. package/dist/types/kritzel-stencil/src/classes/objects/path.class.d.ts +0 -62
  132. package/dist/types/kritzel-stencil/src/classes/objects/selection-box.class.d.ts +0 -6
  133. package/dist/types/kritzel-stencil/src/classes/objects/selection-group.class.d.ts +0 -67
  134. package/dist/types/kritzel-stencil/src/classes/objects/shape.class.d.ts +0 -124
  135. package/dist/types/kritzel-stencil/src/classes/objects/text.class.d.ts +0 -56
  136. package/dist/types/kritzel-stencil/src/classes/providers/broadcast-sync-provider.class.d.ts +0 -18
  137. package/dist/types/kritzel-stencil/src/classes/providers/hocuspocus-sync-provider.class.d.ts +0 -120
  138. package/dist/types/kritzel-stencil/src/classes/providers/indexeddb-sync-provider.class.d.ts +0 -22
  139. package/dist/types/kritzel-stencil/src/classes/providers/websocket-sync-provider.class.d.ts +0 -52
  140. package/dist/types/kritzel-stencil/src/classes/registries/icon-registry.class.d.ts +0 -9
  141. package/dist/types/kritzel-stencil/src/classes/registries/tool.registry.d.ts +0 -8
  142. package/dist/types/kritzel-stencil/src/classes/structures/app-state-map.structure.d.ts +0 -31
  143. package/dist/types/kritzel-stencil/src/classes/structures/object-map.structure.d.ts +0 -63
  144. package/dist/types/kritzel-stencil/src/classes/structures/quadtree.structure.d.ts +0 -36
  145. package/dist/types/kritzel-stencil/src/classes/tools/base-tool.class.d.ts +0 -20
  146. package/dist/types/kritzel-stencil/src/classes/tools/brush-tool.class.d.ts +0 -14
  147. package/dist/types/kritzel-stencil/src/classes/tools/eraser-tool.class.d.ts +0 -9
  148. package/dist/types/kritzel-stencil/src/classes/tools/image-tool.class.d.ts +0 -15
  149. package/dist/types/kritzel-stencil/src/classes/tools/line-tool.class.d.ts +0 -19
  150. package/dist/types/kritzel-stencil/src/classes/tools/selection-tool.class.d.ts +0 -54
  151. package/dist/types/kritzel-stencil/src/classes/tools/shape-tool.class.d.ts +0 -39
  152. package/dist/types/kritzel-stencil/src/classes/tools/text-tool.class.d.ts +0 -13
  153. package/dist/types/kritzel-stencil/src/components/core/kritzel-engine/kritzel-engine.d.ts +0 -111
  154. package/dist/types/kritzel-stencil/src/components/shared/kritzel-brush-style/kritzel-brush-style.d.ts +0 -11
  155. package/dist/types/kritzel-stencil/src/components/shared/kritzel-dropdown/kritzel-dropdown.d.ts +0 -46
  156. package/dist/types/kritzel-stencil/src/components/shared/kritzel-font-family/kritzel-font-family.d.ts +0 -13
  157. package/dist/types/kritzel-stencil/src/components/shared/kritzel-line-endings/kritzel-line-endings.d.ts +0 -21
  158. package/dist/types/kritzel-stencil/src/components/shared/kritzel-shape-fill/kritzel-shape-fill.d.ts +0 -10
  159. package/dist/types/kritzel-stencil/src/components/ui/kritzel-context-menu/kritzel-context-menu.d.ts +0 -21
  160. package/dist/types/kritzel-stencil/src/configs/default-brush-tool.config.d.ts +0 -2
  161. package/dist/types/kritzel-stencil/src/configs/default-engine-config.d.ts +0 -2
  162. package/dist/types/kritzel-stencil/src/configs/default-line-tool.config.d.ts +0 -2
  163. package/dist/types/kritzel-stencil/src/configs/default-sync.config.d.ts +0 -5
  164. package/dist/types/kritzel-stencil/src/configs/default-text-tool.config.d.ts +0 -2
  165. package/dist/types/kritzel-stencil/src/constants/color-palette.constants.d.ts +0 -29
  166. package/dist/types/kritzel-stencil/src/constants/engine.constants.d.ts +0 -2
  167. package/dist/types/kritzel-stencil/src/enums/event-button.enum.d.ts +0 -5
  168. package/dist/types/kritzel-stencil/src/enums/handle-type.enum.d.ts +0 -6
  169. package/dist/types/kritzel-stencil/src/enums/shape-type.enum.d.ts +0 -5
  170. package/dist/types/kritzel-stencil/src/helpers/class.helper.d.ts +0 -3
  171. package/dist/types/kritzel-stencil/src/helpers/color.helper.d.ts +0 -33
  172. package/dist/types/kritzel-stencil/src/helpers/cursor.helper.d.ts +0 -22
  173. package/dist/types/kritzel-stencil/src/helpers/devices.helper.d.ts +0 -8
  174. package/dist/types/kritzel-stencil/src/helpers/event.helper.d.ts +0 -6
  175. package/dist/types/kritzel-stencil/src/helpers/geometry.helper.d.ts +0 -38
  176. package/dist/types/kritzel-stencil/src/helpers/keyboard.helper.d.ts +0 -6
  177. package/dist/types/kritzel-stencil/src/helpers/math.helper.d.ts +0 -3
  178. package/dist/types/kritzel-stencil/src/helpers/object.helper.d.ts +0 -4
  179. package/dist/types/kritzel-stencil/src/helpers/theme.helper.d.ts +0 -41
  180. package/dist/types/kritzel-stencil/src/index.d.ts +0 -42
  181. package/dist/types/kritzel-stencil/src/interfaces/anchor.interface.d.ts +0 -137
  182. package/dist/types/kritzel-stencil/src/interfaces/arrow-head.interface.d.ts +0 -27
  183. package/dist/types/kritzel-stencil/src/interfaces/bounding-box.interface.d.ts +0 -8
  184. package/dist/types/kritzel-stencil/src/interfaces/clonable.interface.d.ts +0 -3
  185. package/dist/types/kritzel-stencil/src/interfaces/context-menu-item.interface.d.ts +0 -17
  186. package/dist/types/kritzel-stencil/src/interfaces/debug-info.interface.d.ts +0 -4
  187. package/dist/types/kritzel-stencil/src/interfaces/dialog.interface.d.ts +0 -4
  188. package/dist/types/kritzel-stencil/src/interfaces/displayable-shortcut.interface.d.ts +0 -5
  189. package/dist/types/kritzel-stencil/src/interfaces/engine-state.interface.d.ts +0 -73
  190. package/dist/types/kritzel-stencil/src/interfaces/line-options.interface.d.ts +0 -23
  191. package/dist/types/kritzel-stencil/src/interfaces/master-detail.interface.d.ts +0 -14
  192. package/dist/types/kritzel-stencil/src/interfaces/menu-item.interface.d.ts +0 -24
  193. package/dist/types/kritzel-stencil/src/interfaces/object.interface.d.ts +0 -53
  194. package/dist/types/kritzel-stencil/src/interfaces/path-options.interface.d.ts +0 -11
  195. package/dist/types/kritzel-stencil/src/interfaces/point.interface.d.ts +0 -4
  196. package/dist/types/kritzel-stencil/src/interfaces/polygon.interface.d.ts +0 -7
  197. package/dist/types/kritzel-stencil/src/interfaces/serializable.interface.d.ts +0 -5
  198. package/dist/types/kritzel-stencil/src/interfaces/settings.interface.d.ts +0 -11
  199. package/dist/types/kritzel-stencil/src/interfaces/shortcut.interface.d.ts +0 -10
  200. package/dist/types/kritzel-stencil/src/interfaces/sync-config.interface.d.ts +0 -22
  201. package/dist/types/kritzel-stencil/src/interfaces/sync-provider.interface.d.ts +0 -29
  202. package/dist/types/kritzel-stencil/src/interfaces/theme.interface.d.ts +0 -330
  203. package/dist/types/kritzel-stencil/src/interfaces/tool-config.interface.d.ts +0 -26
  204. package/dist/types/kritzel-stencil/src/interfaces/tool.interface.d.ts +0 -7
  205. package/dist/types/kritzel-stencil/src/interfaces/toolbar-control.interface.d.ts +0 -58
  206. package/dist/types/kritzel-stencil/src/interfaces/undo-state.interface.d.ts +0 -6
  207. package/dist/types/kritzel-stencil/src/themes/dark-theme.d.ts +0 -5
  208. package/dist/types/kritzel-stencil/src/themes/light-theme.d.ts +0 -5
  209. package/dist/types/kritzel-stencil/src/types/shortcut.type.d.ts +0 -1
  210. package/dist/types/kritzel-stencil/src/types/state.types.d.ts +0 -3
@@ -1,62 +0,0 @@
1
- import { KritzelPathOptions } from '../../interfaces/path-options.interface';
2
- import { KritzelBaseObject } from './base-object.class';
3
- import { KritzelPolygon } from '../../interfaces/polygon.interface';
4
- import { KritzelPoint } from '../../interfaces/point.interface';
5
- import { KritzelCore } from '../core/core.class';
6
- import { ThemeAwareColor } from '../../constants/color-palette.constants';
7
- export declare class KritzelPath extends KritzelBaseObject<SVGElement> {
8
- __class__: string;
9
- points: number[][];
10
- d: string;
11
- stroke: ThemeAwareColor;
12
- strokeWidth: number;
13
- lineSlack: number;
14
- fill: ThemeAwareColor;
15
- x: number;
16
- y: number;
17
- height: number;
18
- width: number;
19
- scale: number;
20
- options: KritzelPathOptions | undefined;
21
- isVisible: boolean;
22
- isDebugInfoVisible: boolean;
23
- isCompleted: boolean;
24
- private _adjustedPoints?;
25
- get viewBox(): string;
26
- constructor(config?: {
27
- points: number[][];
28
- translateX?: number;
29
- translateY?: number;
30
- scale?: number;
31
- strokeWidth?: number;
32
- fill?: ThemeAwareColor;
33
- lineSlack?: number;
34
- });
35
- static create(core: KritzelCore, options?: KritzelPathOptions): KritzelPath;
36
- copy(): KritzelPath;
37
- resize(x: number | null, y: number | null, width: number, height: number): void;
38
- rotate(value: number): void;
39
- move(startX: number, startY: number, endX: number, endY: number): void;
40
- hitTest(x: number, y: number): boolean;
41
- hitTestPolygon(polygon: KritzelPolygon): boolean;
42
- updatePosition(x: number, y: number): void;
43
- onAfterUpdate(changedProperties: string[]): void;
44
- private computeAdjustedPoints;
45
- private pointToLineSegmentDistance;
46
- private updateDimensions;
47
- /**
48
- * Updates width, height, x, y based on current points and strokeWidth.
49
- * Does NOT modify translateX/translateY (use updateDimensions for initial setup).
50
- */
51
- private updateBoundingBox;
52
- private generateSvgPath;
53
- private getStrokeFromPoints;
54
- private getSvgPathFromStroke;
55
- isLowRes(): boolean;
56
- /**
57
- * Finds the point where a line from outsidePoint to the path's center
58
- * intersects the stroke edge. Returns null if no intersection found.
59
- * This is used for arrow clipping at the actual stroke edge.
60
- */
61
- getClipPoint(outsidePoint: KritzelPoint): KritzelPoint | null;
62
- }
@@ -1,6 +0,0 @@
1
- import { KritzelCore } from '../core/core.class';
2
- import { KritzelBaseObject } from './base-object.class';
3
- export declare class KritzelSelectionBox extends KritzelBaseObject<HTMLElement> {
4
- __class__: string;
5
- static create(core: KritzelCore): KritzelSelectionBox;
6
- }
@@ -1,67 +0,0 @@
1
- import { KritzelCore } from '../core/core.class';
2
- import { KritzelBaseObject } from './base-object.class';
3
- interface UnchangedObjectSnapshot {
4
- id: string;
5
- translateX: number;
6
- translateY: number;
7
- rotation: number;
8
- width: number;
9
- height: number;
10
- totalWidth: number;
11
- totalHeight: number;
12
- scale: number;
13
- }
14
- export declare class KritzelSelectionGroup extends KritzelBaseObject<HTMLElement> {
15
- __class__: string;
16
- private _objectIds;
17
- private _cachedObjects;
18
- private _cachedObjectIdsHash;
19
- unchangedObjectSnapshots: Map<string, UnchangedObjectSnapshot>;
20
- snapshotRotation: number;
21
- minX: number;
22
- maxX: number;
23
- minY: number;
24
- maxY: number;
25
- get objectIds(): string[];
26
- set objectIds(value: string[]);
27
- /**
28
- * Invalidate the cached objects array. Call this when objects might have changed
29
- * externally (e.g., after undo/redo operations).
30
- */
31
- invalidateObjectsCache(): void;
32
- get objects(): KritzelBaseObject<any>[];
33
- get length(): number;
34
- static create(core: KritzelCore): KritzelSelectionGroup;
35
- addOrRemove(object: KritzelBaseObject<any>): void;
36
- /**
37
- * Prepares the selection group and its children for a transform interaction (rotate/resize).
38
- * Ensures snapshot state is aligned with the current visual state.
39
- */
40
- beginTransform(): void;
41
- deselectAllChildren(): void;
42
- updateWorkspaceId(workspaceId: string): void;
43
- updateZIndices(startZIndex: number): void;
44
- updatePosition(x: number, y: number): void;
45
- /**
46
- * Capture snapshots of current object states for undo/redo operations
47
- * @param cachedObjects Optional pre-fetched objects array to avoid redundant getter calls
48
- */
49
- captureUnchangedSnapshots(cachedObjects?: KritzelBaseObject<any>[]): void;
50
- serialize(): any;
51
- deserialize<T>(object: any): T;
52
- update(): void;
53
- move(startX: number, startY: number, endX: number, endY: number): void;
54
- resize(x: number, y: number, width: number, height: number): void;
55
- rotate(value: number): void;
56
- copy(): KritzelBaseObject<HTMLElement>;
57
- /**
58
- * Refreshes the selection group's bounding box dimensions based on contained objects.
59
- * @param cachedObjects Optional pre-fetched objects array to avoid redundant getter calls
60
- * @param skipPersist If true, only updates local state without persisting to Yjs (used during undo/redo)
61
- */
62
- refreshObjectDimensions(cachedObjects?: KritzelBaseObject<any>[], skipPersist?: boolean): void;
63
- private getOffsetXToCenterFromSnapshot;
64
- private getOffsetYToCenterFromSnapshot;
65
- hitTest(x: number, y: number): boolean;
66
- }
67
- export {};
@@ -1,124 +0,0 @@
1
- import { KritzelBaseObject } from './base-object.class';
2
- import { KritzelCore } from '../core/core.class';
3
- import { ShapeType } from '../../enums/shape-type.enum';
4
- import { KritzelPoint } from '../../interfaces/point.interface';
5
- import { EditorView } from 'prosemirror-view';
6
- import { ThemeAwareColor } from '../../constants/color-palette.constants';
7
- export declare class KritzelShape extends KritzelBaseObject<HTMLDivElement> {
8
- __class__: string;
9
- shapeType: ShapeType;
10
- fillColor: ThemeAwareColor;
11
- strokeColor: ThemeAwareColor;
12
- strokeWidth: number;
13
- fontFamily: string;
14
- fontSize: number;
15
- fontColor: ThemeAwareColor;
16
- /** Screen-space x coordinate of the shape's top-left corner (like Path.x) */
17
- x: number;
18
- /** Screen-space y coordinate of the shape's top-left corner (like Path.y) */
19
- y: number;
20
- scale: number;
21
- scaleFactor: number;
22
- isDebugInfoVisible: boolean;
23
- isEditable: boolean;
24
- isEditing: boolean;
25
- editor: EditorView | null;
26
- content: any;
27
- private readonly _schema;
28
- uneditedObject: KritzelShape | null;
29
- /**
30
- * Returns the viewBox for the shape's SVG, using screen-space coordinates.
31
- * This follows the same pattern as KritzelPath.viewBox.
32
- */
33
- get viewBox(): string;
34
- constructor(config?: {
35
- x?: number;
36
- y?: number;
37
- translateX?: number;
38
- translateY?: number;
39
- width?: number;
40
- height?: number;
41
- shapeType?: ShapeType;
42
- fillColor?: ThemeAwareColor;
43
- strokeColor?: ThemeAwareColor;
44
- strokeWidth?: number;
45
- fontSize?: number;
46
- fontFamily?: string;
47
- fontColor?: ThemeAwareColor;
48
- scale?: number;
49
- scaleX?: number;
50
- scaleY?: number;
51
- });
52
- /**
53
- * Creates a new KritzelShape with screen-space coordinates.
54
- * Following the same pattern as KritzelPath.create():
55
- * - x, y are screen-space coordinates of the shape's top-left corner
56
- * - translateX, translateY should be set to -viewportTranslateX, -viewportTranslateY
57
- * - width, height are in screen-space
58
- * - scale is the viewport scale at creation time
59
- */
60
- static create(core: KritzelCore, config?: {
61
- x?: number;
62
- y?: number;
63
- translateX?: number;
64
- translateY?: number;
65
- width?: number;
66
- height?: number;
67
- shapeType?: ShapeType;
68
- fillColor?: ThemeAwareColor;
69
- strokeColor?: ThemeAwareColor;
70
- strokeWidth?: number;
71
- opacity?: number;
72
- fontSize?: number;
73
- fontFamily?: string;
74
- fontColor?: ThemeAwareColor;
75
- scale?: number;
76
- }): KritzelShape;
77
- /**
78
- * Updates the translateX/Y to world coordinates based on screen-space x, y.
79
- * This follows the same pattern as KritzelPath.updateDimensions().
80
- *
81
- * The formula: translateX = (x + initialTranslateX) / scale
82
- * where initialTranslateX was -viewportTranslateX
83
- *
84
- * This converts screen-space position to world coordinates.
85
- */
86
- updateDimensions(): void;
87
- mount(element: HTMLDivElement): void;
88
- mountTextEditor(element: HTMLDivElement): void;
89
- private createEditor;
90
- setContent(content: any): void;
91
- resize(x: number, y: number, width: number, height: number): void;
92
- focus(coords?: {
93
- x: number;
94
- y: number;
95
- }): void;
96
- private scrollIntoViewOnIOS;
97
- edit(event?: PointerEvent): void;
98
- save(): void;
99
- handlePointerDown(event: PointerEvent): void;
100
- handlePointerMove(event: PointerEvent): void;
101
- handlePointerUp(event: PointerEvent): void;
102
- copy(): KritzelShape;
103
- serialize(): any;
104
- deserialize<KritzelShape>(object: any): KritzelShape;
105
- /**
106
- * Called after properties are updated via updateObject.
107
- * Automatically adjusts text color based on fill color brightness.
108
- */
109
- onAfterUpdate(changedProperties: string[]): void;
110
- /**
111
- * Returns the clipping polygon for arrow intersection.
112
- * For ellipse: returns a many-sided polygon approximation
113
- * For triangle: returns the 3 corners
114
- * For rectangle: returns null (uses default rotatedPolygon)
115
- *
116
- * Includes padding for half the stroke width so arrow heads don't overlap the stroke.
117
- */
118
- getClipPolygon(): KritzelPoint[] | null;
119
- /**
120
- * Returns the SVG path for rendering the shape.
121
- * The path uses screen-space coordinates relative to (x, y).
122
- */
123
- getSvgPath(): string;
124
- }
@@ -1,56 +0,0 @@
1
- import { KritzelBaseObject } from './base-object.class';
2
- import { KritzelCore } from '../core/core.class';
3
- import { EditorView } from 'prosemirror-view';
4
- import { ThemeAwareColor } from '../../constants/color-palette.constants';
5
- export declare class KritzelText extends KritzelBaseObject<HTMLDivElement> {
6
- __class__: string;
7
- fontFamily: string;
8
- fontSize: number;
9
- fontColor: ThemeAwareColor;
10
- initialWidth: number;
11
- initialHeight: number;
12
- scale: number;
13
- scaleFactor: number;
14
- isDebugInfoVisible: boolean;
15
- isEditable: boolean;
16
- isEditing: boolean;
17
- editor: EditorView | null;
18
- content: any;
19
- private readonly _schema;
20
- uneditedObject: KritzelText | null;
21
- readonly rows: number;
22
- get isEmpty(): boolean;
23
- constructor(config?: {
24
- translateX?: number;
25
- translateY?: number;
26
- fontSize?: number;
27
- fontFamily?: string;
28
- fontColor?: ThemeAwareColor;
29
- height?: number;
30
- width?: number;
31
- scale?: number;
32
- initialWidth?: number;
33
- initialHeight?: number;
34
- scaleX?: number;
35
- scaleY?: number;
36
- });
37
- static create(core: KritzelCore, fontSize?: number, fontFamily?: string, scale?: number): KritzelText;
38
- mount(element: HTMLDivElement): void;
39
- private createEditor;
40
- setContent(content: any): void;
41
- adjustSizeOnInput(): void;
42
- resize(x: number, y: number, width: number, height: number): void;
43
- focus(coords?: {
44
- x: number;
45
- y: number;
46
- }): void;
47
- private scrollIntoViewOnIOS;
48
- edit(event?: PointerEvent): void;
49
- save(): void;
50
- handlePointerDown(event: PointerEvent): void;
51
- handlePointerMove(event: PointerEvent): void;
52
- handlePointerUp(event: PointerEvent): void;
53
- copy(): KritzelText;
54
- serialize(): any;
55
- deserialize<KritzelText>(object: any): KritzelText;
56
- }
@@ -1,18 +0,0 @@
1
- import * as Y from 'yjs';
2
- import { ISyncProvider } from '../../interfaces/sync-provider.interface';
3
- /**
4
- * BroadcastChannel sync provider for cross-tab synchronization
5
- * This is a lightweight alternative to y-webrtc for browser-tab-only sync
6
- */
7
- export declare class BroadcastSyncProvider implements ISyncProvider {
8
- private readonly doc;
9
- private readonly channel;
10
- private _synced;
11
- constructor(docName: string, doc: Y.Doc, _options?: any);
12
- private handleDocUpdate;
13
- private handleMessage;
14
- private broadcastSync;
15
- connect(): Promise<void>;
16
- disconnect(): void;
17
- destroy(): void;
18
- }
@@ -1,120 +0,0 @@
1
- import * as Y from 'yjs';
2
- import { HocuspocusProviderWebsocket } from '@hocuspocus/provider';
3
- import { ISyncProvider, ProviderFactory } from '../../interfaces/sync-provider.interface';
4
- /**
5
- * Options for Hocuspocus sync provider
6
- */
7
- export interface HocuspocusOptions {
8
- /**
9
- * Hocuspocus server URL (optional, defaults to ws://localhost:1234)
10
- */
11
- url?: string;
12
- /**
13
- * Document name (optional, defaults to docName)
14
- */
15
- name?: string;
16
- /**
17
- * Authentication token (optional)
18
- */
19
- token?: string | (() => string) | (() => Promise<string>);
20
- /**
21
- * Shared WebSocket provider for multiplexing (optional)
22
- * If provided, multiple documents will share the same WebSocket connection
23
- */
24
- websocketProvider?: HocuspocusProviderWebsocket;
25
- /**
26
- * Quiet mode - suppress console output (optional, defaults to false)
27
- */
28
- quiet?: boolean;
29
- /**
30
- * Callback when connected (optional)
31
- */
32
- onConnect?: () => void;
33
- /**
34
- * Callback when disconnected (optional)
35
- */
36
- onDisconnect?: () => void;
37
- /**
38
- * Callback when synced (optional)
39
- */
40
- onSynced?: () => void;
41
- /**
42
- * Callback when authentication failed (optional)
43
- */
44
- onAuthenticationFailed?: (data: any) => void;
45
- /**
46
- * Callback when connection status changes (optional)
47
- */
48
- onStatus?: (data: {
49
- status: string;
50
- }) => void;
51
- /**
52
- * Force sync interval in milliseconds (optional, false to disable)
53
- */
54
- forceSyncInterval?: false | number;
55
- /**
56
- * WebSocket polyfill for Node.js environments (optional)
57
- */
58
- WebSocketPolyfill?: any;
59
- }
60
- /**
61
- * Options for creating a shared WebSocket connection
62
- */
63
- export interface HocuspocusWebSocketOptions {
64
- /**
65
- * Hocuspocus server URL
66
- */
67
- url: string;
68
- /**
69
- * WebSocket polyfill for Node.js environments (optional)
70
- */
71
- WebSocketPolyfill?: any;
72
- /**
73
- * Callback when WebSocket connects (optional)
74
- */
75
- onConnect?: () => void;
76
- /**
77
- * Callback when WebSocket disconnects (optional)
78
- */
79
- onDisconnect?: () => void;
80
- /**
81
- * Callback when connection status changes (optional)
82
- */
83
- onStatus?: (data: {
84
- status: string;
85
- }) => void;
86
- }
87
- /**
88
- * Hocuspocus sync provider for real-time collaboration
89
- * Supports multiplexing - multiple documents can share the same WebSocket connection
90
- */
91
- export declare class HocuspocusSyncProvider implements ISyncProvider {
92
- private provider;
93
- private isConnected;
94
- private isSynced;
95
- private usesSharedSocket;
96
- private static sharedWebSocketProvider;
97
- constructor(docName: string, doc: Y.Doc, options?: HocuspocusOptions);
98
- /**
99
- * Create a shared WebSocket connection for multiplexing
100
- * Call this once to create a shared connection that multiple providers can use
101
- */
102
- static createSharedWebSocket(options: HocuspocusWebSocketOptions): HocuspocusProviderWebsocket;
103
- /**
104
- * Destroy the shared WebSocket connection
105
- * Call this when you're done with all multiplexed providers
106
- */
107
- static destroySharedWebSocket(): void;
108
- /**
109
- * Get the shared WebSocket provider instance (if it exists)
110
- */
111
- static getSharedWebSocket(): HocuspocusProviderWebsocket | null;
112
- /**
113
- * Static factory method for creating HocuspocusSyncProvider with configuration options
114
- * Returns a ProviderFactory that can be used in sync configuration
115
- */
116
- static with(options?: HocuspocusOptions): ProviderFactory;
117
- connect(): Promise<void>;
118
- disconnect(): void;
119
- destroy(): void;
120
- }
@@ -1,22 +0,0 @@
1
- import * as Y from 'yjs';
2
- import { ISyncProvider } from '../../interfaces/sync-provider.interface';
3
- /**
4
- * Options for IndexedDB sync provider
5
- */
6
- export interface IndexedDBOptions {
7
- /**
8
- * Custom database name (optional)
9
- */
10
- name?: string;
11
- }
12
- /**
13
- * IndexedDB sync provider for local persistence
14
- */
15
- export declare class IndexedDBSyncProvider implements ISyncProvider {
16
- private provider;
17
- private isConnected;
18
- constructor(docName: string, doc: Y.Doc, options?: IndexedDBOptions);
19
- connect(): Promise<void>;
20
- disconnect(): void;
21
- destroy(): void;
22
- }
@@ -1,52 +0,0 @@
1
- import * as Y from 'yjs';
2
- import { ISyncProvider, ProviderFactory } from '../../interfaces/sync-provider.interface';
3
- /**
4
- * Options for WebSocket sync provider
5
- */
6
- export interface WebSocketOptions {
7
- /**
8
- * WebSocket server URL (optional, defaults to ws://localhost:1234)
9
- */
10
- url?: string;
11
- /**
12
- * Room/document name (optional, defaults to docName)
13
- */
14
- roomName?: string;
15
- /**
16
- * Connection parameters (optional)
17
- */
18
- params?: Record<string, string>;
19
- /**
20
- * WebSocket protocols (optional)
21
- */
22
- protocols?: string[];
23
- /**
24
- * Custom WebSocket constructor (optional, for Node.js environments)
25
- */
26
- WebSocketPolyfill?: any;
27
- /**
28
- * Awareness protocol options (optional)
29
- */
30
- awareness?: any;
31
- /**
32
- * Maximum number of connection attempts (optional, defaults to Infinity)
33
- */
34
- maxBackoffTime?: number;
35
- }
36
- /**
37
- * WebSocket sync provider for real-time collaboration
38
- */
39
- export declare class WebSocketSyncProvider implements ISyncProvider {
40
- private provider;
41
- private isConnected;
42
- constructor(docName: string, doc: Y.Doc, options?: WebSocketOptions);
43
- /**
44
- * Static factory method for creating WebSocketSyncProvider with configuration options
45
- * Returns a ProviderFactory that can be used in sync configuration
46
- */
47
- static with(options?: WebSocketOptions): ProviderFactory;
48
- private setupEventListeners;
49
- connect(): Promise<void>;
50
- disconnect(): void;
51
- destroy(): void;
52
- }
@@ -1,9 +0,0 @@
1
- export declare class KritzelIconRegistry {
2
- private static registry;
3
- static register(name: string, svgContent: string): void;
4
- static get(name: string): string | undefined;
5
- static registerIcons(icons: {
6
- [key: string]: string;
7
- }): void;
8
- static has(name: string): boolean;
9
- }
@@ -1,8 +0,0 @@
1
- import { KritzelCore } from "../core/core.class";
2
- import { KritzelBaseTool } from "../tools/base-tool.class";
3
- export declare class KritzelToolRegistry {
4
- private static registry;
5
- static registerTool(toolName: string, constructor: new (core: KritzelCore) => KritzelBaseTool, core: KritzelCore): KritzelBaseTool;
6
- static getTool(toolName: string): KritzelBaseTool | null;
7
- static getToolByIndex(index: number): KritzelBaseTool | null;
8
- }
@@ -1,31 +0,0 @@
1
- import { KritzelWorkspace } from '../core/workspace.class';
2
- import { KritzelCore } from '../core/core.class';
3
- import { KritzelSyncConfig } from '../../interfaces/sync-config.interface';
4
- export declare class KritzelAppStateMap {
5
- private map;
6
- private _ydoc;
7
- private _workspacesMap;
8
- private _providers;
9
- private _core;
10
- private _isReady;
11
- private _onRemoteChangeCallback;
12
- private _workspacesObserver;
13
- get isReady(): boolean;
14
- constructor();
15
- onRemoteChange(callback: () => void): void;
16
- initialize(core: KritzelCore, config?: KritzelSyncConfig): Promise<void>;
17
- private handleWorkspacesChange;
18
- private reviveWorkspace;
19
- transaction(callback: () => void): void;
20
- loadFromYjs(): void;
21
- reset(): void;
22
- insert(workspace: KritzelWorkspace): boolean;
23
- update(workspace: KritzelWorkspace): boolean;
24
- remove(predicate: (workspace: KritzelWorkspace) => boolean): boolean;
25
- get(id: string): KritzelWorkspace | undefined;
26
- allWorkspaces(): KritzelWorkspace[];
27
- filter(predicate: (workspace: KritzelWorkspace) => boolean): KritzelWorkspace[];
28
- find(predicate: (workspace: KritzelWorkspace) => boolean): KritzelWorkspace | undefined;
29
- has(id: string): boolean;
30
- destroy(): void;
31
- }
@@ -1,63 +0,0 @@
1
- import * as Y from 'yjs';
2
- import { KritzelBaseObject } from '../objects/base-object.class';
3
- import { KritzelCore } from '../core/core.class';
4
- import { KritzelSyncConfig } from '../../interfaces/sync-config.interface';
5
- import { KritzelUndoState } from '../..';
6
- export declare class KritzelObjectMap<T extends KritzelBaseObject<any>> {
7
- private quadtree;
8
- private _ydoc;
9
- private _objectsMap;
10
- private _providers;
11
- private _undoManager;
12
- private _reviver;
13
- private _core;
14
- private _workspaceId;
15
- private _isReady;
16
- private _temporaryItemsCount;
17
- private _objectsObserver;
18
- private _stackItemAddedHandler;
19
- private _stackItemPoppedHandler;
20
- get isReady(): boolean;
21
- get undoManager(): Y.UndoManager | null;
22
- get workspaceId(): string | null;
23
- get undoState(): KritzelUndoState;
24
- get totalCount(): number;
25
- constructor();
26
- initialize(core: KritzelCore, workspaceId: string, config?: KritzelSyncConfig): Promise<void>;
27
- private handleObjectsChange;
28
- transaction(callback: () => void): void;
29
- loadFromYjs(): void;
30
- reset(): void;
31
- insert(object: T): boolean;
32
- update(object: T, options?: {
33
- temporary?: boolean;
34
- }): boolean;
35
- remove(predicate: (object: T) => boolean): void;
36
- filter(predicate: (object: T) => boolean): T[];
37
- allObjects(): T[];
38
- query(range: {
39
- x: number;
40
- y: number;
41
- z: number;
42
- width: number;
43
- height: number;
44
- depth?: number;
45
- }): T[];
46
- private isPersistable;
47
- undo(): void;
48
- redo(): void;
49
- canUndo(): boolean;
50
- canRedo(): boolean;
51
- clearHistory(): void;
52
- /**
53
- * Consolidates all temporary items in the undo stack into a single undo item.
54
- * Call this when you want to merge multiple temporary changes (e.g., keystrokes) into one.
55
- */
56
- consolidateTemporaryItems(): void;
57
- /**
58
- * Removes all temporary items from the undo stack without consolidating them.
59
- * Use this to discard temporary changes completely.
60
- */
61
- clearTemporaryItems(): void;
62
- destroy(): void;
63
- }
@@ -1,36 +0,0 @@
1
- import { KritzelBoundingBox } from '../../interfaces/bounding-box.interface';
2
- import { KritzelBaseObject } from '../objects/base-object.class';
3
- export declare class KritzelQuadtree<T extends KritzelBaseObject<any>> {
4
- private bounds;
5
- private capacity;
6
- private objects;
7
- private children;
8
- private _size;
9
- /** Total number of objects in the quadtree (O(1) access) */
10
- get size(): number;
11
- constructor(bounds: KritzelBoundingBox, capacity?: number);
12
- reset(): void;
13
- insert(object: T): boolean;
14
- update(object: T): boolean;
15
- remove(predicate: (object: T) => boolean): number;
16
- query(range: KritzelBoundingBox): T[];
17
- /**
18
- * Internal method that collects query results into a pre-allocated array.
19
- * Avoids creating intermediate arrays from spread operators.
20
- */
21
- private _queryInto;
22
- filter(predicate: (object: T) => boolean): T[];
23
- /**
24
- * Internal method that collects filter results into a pre-allocated array.
25
- * Avoids creating intermediate arrays from spread operators.
26
- */
27
- private _filterInto;
28
- allObjects(): T[];
29
- /**
30
- * Internal method that collects all objects into a pre-allocated array.
31
- * Avoids creating intermediate arrays from spread operators.
32
- */
33
- private _collectAllInto;
34
- private subdivide;
35
- private intersects;
36
- }