microboard-temp 0.14.6 → 0.14.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/cjs/browser.js +51730 -55206
  2. package/dist/cjs/index.js +56611 -60082
  3. package/dist/cjs/node.js +69240 -72716
  4. package/dist/esm/browser.js +56097 -59510
  5. package/dist/esm/index.js +46761 -50169
  6. package/dist/esm/node.js +54324 -57731
  7. package/dist/types/Color/Color.schema.d.ts +21 -0
  8. package/dist/types/Events/BaseCommand.d.ts +4 -4
  9. package/dist/types/Events/EventsOperations.d.ts +9 -1
  10. package/dist/types/Events/MessageRouter/socketContract.d.ts +54 -54
  11. package/dist/types/Events/index.d.ts +1 -1
  12. package/dist/types/Items/AINode/AINode.d.ts +7 -1
  13. package/dist/types/Items/AINode/AINode.schema.d.ts +47 -0
  14. package/dist/types/Items/Audio/Audio.d.ts +4 -4
  15. package/dist/types/Items/Audio/Audio.schema.d.ts +15 -0
  16. package/dist/types/Items/BaseItem/BaseItem.d.ts +38 -10
  17. package/dist/types/Items/BaseItem/TransformContext.d.ts +40 -0
  18. package/dist/types/Items/BaseItem/toLocalTransformOp.d.ts +10 -0
  19. package/dist/types/Items/Comment/Comment.d.ts +7 -4
  20. package/dist/types/Items/Comment/Comment.schema.d.ts +51 -0
  21. package/dist/types/Items/Connector/Connector.d.ts +9 -12
  22. package/dist/types/Items/Connector/Connector.schema.d.ts +172 -0
  23. package/dist/types/Items/Connector/connectorOps.d.ts +0 -11
  24. package/dist/types/Items/Drawing/Drawing.d.ts +8 -5
  25. package/dist/types/Items/Drawing/Drawing.schema.d.ts +42 -0
  26. package/dist/types/Items/Drawing/index.d.ts +0 -1
  27. package/dist/types/Items/Examples/CardGame/Card/Card.d.ts +1 -1
  28. package/dist/types/Items/Examples/CardGame/Deck/Deck.d.ts +0 -1
  29. package/dist/types/Items/Examples/CardGame/Dice/Dice.d.ts +1 -1
  30. package/dist/types/Items/Examples/CardGame/Screen/Screen.d.ts +1 -1
  31. package/dist/types/Items/Examples/Star/Star.d.ts +3 -0
  32. package/dist/types/Items/Frame/Frame.d.ts +12 -13
  33. package/dist/types/Items/Frame/Frame.schema.d.ts +84 -0
  34. package/dist/types/Items/Geometry.d.ts +4 -0
  35. package/dist/types/Items/Group/Group.d.ts +4 -4
  36. package/dist/types/Items/Group/Group.schema.d.ts +16 -0
  37. package/dist/types/Items/Image/Image.d.ts +4 -5
  38. package/dist/types/Items/Image/Image.schema.d.ts +23 -0
  39. package/dist/types/Items/Item.d.ts +1 -1
  40. package/dist/types/Items/Mbr/Mbr.d.ts +0 -1
  41. package/dist/types/Items/Placeholder/Placeholder.d.ts +7 -8
  42. package/dist/types/Items/Placeholder/Placeholder.schema.d.ts +16 -0
  43. package/dist/types/Items/Point/Point.schema.d.ts +6 -0
  44. package/dist/types/Items/RegisterItem.d.ts +5 -3
  45. package/dist/types/Items/Renderers/index.d.ts +1 -0
  46. package/dist/types/Items/RichText/RichText.d.ts +13 -12
  47. package/dist/types/Items/RichText/RichText.schema.d.ts +77 -0
  48. package/dist/types/Items/Shape/Shape.d.ts +13 -12
  49. package/dist/types/Items/Shape/Shape.schema.d.ts +81 -0
  50. package/dist/types/Items/Shape/ShapeData.d.ts +1 -1
  51. package/dist/types/Items/Shape/index.d.ts +0 -1
  52. package/dist/types/Items/Sticker/Sticker.d.ts +5 -5
  53. package/dist/types/Items/Sticker/Sticker.schema.d.ts +57 -0
  54. package/dist/types/Items/Sticker/index.d.ts +0 -1
  55. package/dist/types/Items/Transformation/Transformation.schema.d.ts +10 -0
  56. package/dist/types/Items/Video/Video.d.ts +5 -6
  57. package/dist/types/Items/Video/Video.schema.d.ts +25 -0
  58. package/dist/types/Items/index.d.ts +0 -3
  59. package/dist/types/Items/itemSchemas.d.ts +2 -0
  60. package/dist/types/Items/propertyOps.d.ts +9 -0
  61. package/dist/types/RegistryMaps.d.ts +32 -0
  62. package/dist/types/Selection/Transformer/TransformerHelpers/getResizeType.d.ts +2 -1
  63. package/dist/types/Selection/Transformer/TransformerHelpers/handleMultipleItemsResize.d.ts +1 -1
  64. package/dist/types/Selection/Transformer/TransformerHelpers/transformAINode.d.ts +2 -2
  65. package/dist/types/Selection/Transformer/TransformerHelpers/transformItems.d.ts +1 -1
  66. package/dist/types/Selection/Transformer/TransformerHelpers/transformRichText.d.ts +3 -3
  67. package/dist/types/Selection/Transformer/TransformerHelpers/transformShape.d.ts +5 -5
  68. package/dist/types/Tools/Tools.d.ts +2 -3
  69. package/dist/types/Validators/Validators.d.ts +3 -1
  70. package/dist/types/itemFactories.d.ts +21 -34
  71. package/dist/types/parserHTML.d.ts +2 -2
  72. package/package.json +1 -1
  73. package/dist/types/Items/Audio/audioOps.d.ts +0 -5
  74. package/dist/types/Items/Drawing/drawingOps.d.ts +0 -14
  75. package/dist/types/Items/Image/imageOps.d.ts +0 -5
  76. package/dist/types/Items/Shape/shapeOps.d.ts +0 -19
  77. package/dist/types/Items/Sticker/stickerOps.d.ts +0 -9
  78. package/dist/types/Items/Video/videoOps.d.ts +0 -9
@@ -0,0 +1,51 @@
1
+ import { z } from 'zod';
2
+ export declare const CommentatorSchema: z.ZodObject<{
3
+ username: z.ZodString;
4
+ id: z.ZodNumber;
5
+ avatar: z.ZodOptional<z.ZodString>;
6
+ }, z.core.$strip>;
7
+ export declare const MessageSchema: z.ZodObject<{
8
+ date: z.ZodUnion<readonly [z.ZodDate, z.ZodPipe<z.ZodString, z.ZodTransform<Date, string>>]>;
9
+ text: z.ZodString;
10
+ id: z.ZodString;
11
+ commentator: z.ZodObject<{
12
+ username: z.ZodString;
13
+ id: z.ZodNumber;
14
+ avatar: z.ZodOptional<z.ZodString>;
15
+ }, z.core.$strip>;
16
+ readers: z.ZodArray<z.ZodNumber>;
17
+ }, z.core.$strip>;
18
+ export declare const CommentDataSchema: z.ZodObject<{
19
+ itemType: z.ZodLiteral<"Comment">;
20
+ anchor: z.ZodObject<{
21
+ x: z.ZodNumber;
22
+ y: z.ZodNumber;
23
+ }, z.core.$strip>;
24
+ thread: z.ZodArray<z.ZodObject<{
25
+ date: z.ZodUnion<readonly [z.ZodDate, z.ZodPipe<z.ZodString, z.ZodTransform<Date, string>>]>;
26
+ text: z.ZodString;
27
+ id: z.ZodString;
28
+ commentator: z.ZodObject<{
29
+ username: z.ZodString;
30
+ id: z.ZodNumber;
31
+ avatar: z.ZodOptional<z.ZodString>;
32
+ }, z.core.$strip>;
33
+ readers: z.ZodArray<z.ZodNumber>;
34
+ }, z.core.$strip>>;
35
+ commentators: z.ZodArray<z.ZodObject<{
36
+ username: z.ZodString;
37
+ id: z.ZodNumber;
38
+ avatar: z.ZodOptional<z.ZodString>;
39
+ }, z.core.$strip>>;
40
+ transformation: z.ZodObject<{
41
+ translateX: z.ZodNumber;
42
+ translateY: z.ZodNumber;
43
+ scaleX: z.ZodNumber;
44
+ scaleY: z.ZodNumber;
45
+ rotate: z.ZodNumber;
46
+ isLocked: z.ZodOptional<z.ZodBoolean>;
47
+ }, z.core.$strip>;
48
+ usersUnreadMarks: z.ZodArray<z.ZodNumber>;
49
+ resolved: z.ZodBoolean;
50
+ itemToFollow: z.ZodOptional<z.ZodString>;
51
+ }, z.core.$loose>;
@@ -21,11 +21,6 @@ import { ConnectionLineWidth, ConnectorLineStyle } from './ConnectorTypes';
21
21
  export declare const CONNECTOR_ANCHOR_COLOR: ConnectorAnchorColors;
22
22
  export declare const CONNECTOR_ANCHOR_TYPE = "rect";
23
23
  export declare class Connector extends BaseItem<Connector> {
24
- private startPoint;
25
- private endPoint;
26
- private lineStyle;
27
- private startPointerStyle;
28
- private endPointerStyle;
29
24
  readonly itemType = "Connector";
30
25
  parent: string;
31
26
  private middlePoint;
@@ -42,10 +37,16 @@ export declare class Connector extends BaseItem<Connector> {
42
37
  transformationRenderBlock?: boolean;
43
38
  private _updatingTitle;
44
39
  private optionalFindItemFn?;
45
- constructor(board: Board, startPoint?: ControlPoint, endPoint?: ControlPoint, lineStyle?: ConnectorLineStyle, startPointerStyle?: ConnectorPointerStyle, endPointerStyle?: ConnectorPointerStyle, lineColor?: ColorValue, lineWidth?: ConnectionLineWidth, strokeStyle?: BorderStyle, id?: string);
40
+ private startPoint;
41
+ private endPoint;
42
+ private lineStyle;
43
+ private startPointerStyle;
44
+ private endPointerStyle;
45
+ constructor(board: Board, id?: string);
46
46
  private initText;
47
47
  observerStartPointItem: () => void;
48
48
  observerEndPointItem: () => void;
49
+ private handleItemGeometryChange;
49
50
  /**
50
51
  * If the start point is attached to one of the 4 edge-center anchors, re-evaluate
51
52
  * which edge best faces the current end position and jump there to avoid sharp bends.
@@ -64,18 +65,13 @@ export declare class Connector extends BaseItem<Connector> {
64
65
  setId(id: string): this;
65
66
  getId(): string;
66
67
  apply(operation: Operation): void;
68
+ protected onPropertyUpdated(property: string, value: unknown, prevValue: unknown): void;
67
69
  complete(id: string): void;
68
70
  protected applyStartPoint(pointData: ControlPointData, updatePath?: boolean): void;
69
71
  protected applyEndPoint(pointData: ControlPointData, updatePath?: boolean): void;
70
72
  protected applyMiddlePoint(pointData: ControlPointData | null, updatePath?: boolean): void;
71
73
  private applySwitchPointers;
72
74
  addMiddlePoint(point: BoardPoint): void;
73
- private applyStartPointerStyle;
74
- private applyEndPointerStyle;
75
- private applyLineColor;
76
- private applyLineStyle;
77
- private applyBorderStyle;
78
- private applyLineWidth;
79
75
  getStartPoint(): ControlPoint;
80
76
  getEndPoint(): ControlPoint;
81
77
  getMiddlePoint(): ControlPoint | null;
@@ -92,6 +88,7 @@ export declare class Connector extends BaseItem<Connector> {
92
88
  getIntersectionPoints(segment: Line): Point[];
93
89
  getMbr(): Mbr;
94
90
  getNearestEdgePointTo(point: Point): Point;
91
+ isAlignmentSource(): boolean;
95
92
  isEnclosedOrCrossedBy(bounds: Mbr): boolean;
96
93
  isUnderPoint(point: Point): boolean;
97
94
  isNearPoint(point: Point, distance: number): boolean;
@@ -0,0 +1,172 @@
1
+ import { z } from "zod";
2
+ export declare const BoardPointDataSchema: z.ZodObject<{
3
+ pointType: z.ZodLiteral<"Board">;
4
+ x: z.ZodNumber;
5
+ y: z.ZodNumber;
6
+ }, z.core.$strip>;
7
+ export declare const FloatingPointDataSchema: z.ZodObject<{
8
+ pointType: z.ZodLiteral<"Floating">;
9
+ itemId: z.ZodString;
10
+ relativeX: z.ZodNumber;
11
+ relativeY: z.ZodNumber;
12
+ }, z.core.$strip>;
13
+ export declare const FixedPointDataSchema: z.ZodObject<{
14
+ pointType: z.ZodLiteral<"Fixed">;
15
+ itemId: z.ZodString;
16
+ relativeX: z.ZodNumber;
17
+ relativeY: z.ZodNumber;
18
+ }, z.core.$strip>;
19
+ export declare const FixedConnectorPointDataSchema: z.ZodObject<{
20
+ pointType: z.ZodLiteral<"FixedConnector">;
21
+ itemId: z.ZodString;
22
+ tangent: z.ZodNumber;
23
+ segment: z.ZodNumber;
24
+ }, z.core.$strip>;
25
+ export declare const ControlPointDataSchema: z.ZodUnion<readonly [z.ZodObject<{
26
+ pointType: z.ZodLiteral<"Board">;
27
+ x: z.ZodNumber;
28
+ y: z.ZodNumber;
29
+ }, z.core.$strip>, z.ZodObject<{
30
+ pointType: z.ZodLiteral<"Floating">;
31
+ itemId: z.ZodString;
32
+ relativeX: z.ZodNumber;
33
+ relativeY: z.ZodNumber;
34
+ }, z.core.$strip>, z.ZodObject<{
35
+ pointType: z.ZodLiteral<"Fixed">;
36
+ itemId: z.ZodString;
37
+ relativeX: z.ZodNumber;
38
+ relativeY: z.ZodNumber;
39
+ }, z.core.$strip>, z.ZodObject<{
40
+ pointType: z.ZodLiteral<"FixedConnector">;
41
+ itemId: z.ZodString;
42
+ tangent: z.ZodNumber;
43
+ segment: z.ZodNumber;
44
+ }, z.core.$strip>]>;
45
+ export declare const ConnectorDataSchema: z.ZodObject<{
46
+ itemType: z.ZodLiteral<"Connector">;
47
+ startPoint: z.ZodUnion<readonly [z.ZodObject<{
48
+ pointType: z.ZodLiteral<"Board">;
49
+ x: z.ZodNumber;
50
+ y: z.ZodNumber;
51
+ }, z.core.$strip>, z.ZodObject<{
52
+ pointType: z.ZodLiteral<"Floating">;
53
+ itemId: z.ZodString;
54
+ relativeX: z.ZodNumber;
55
+ relativeY: z.ZodNumber;
56
+ }, z.core.$strip>, z.ZodObject<{
57
+ pointType: z.ZodLiteral<"Fixed">;
58
+ itemId: z.ZodString;
59
+ relativeX: z.ZodNumber;
60
+ relativeY: z.ZodNumber;
61
+ }, z.core.$strip>, z.ZodObject<{
62
+ pointType: z.ZodLiteral<"FixedConnector">;
63
+ itemId: z.ZodString;
64
+ tangent: z.ZodNumber;
65
+ segment: z.ZodNumber;
66
+ }, z.core.$strip>]>;
67
+ endPoint: z.ZodUnion<readonly [z.ZodObject<{
68
+ pointType: z.ZodLiteral<"Board">;
69
+ x: z.ZodNumber;
70
+ y: z.ZodNumber;
71
+ }, z.core.$strip>, z.ZodObject<{
72
+ pointType: z.ZodLiteral<"Floating">;
73
+ itemId: z.ZodString;
74
+ relativeX: z.ZodNumber;
75
+ relativeY: z.ZodNumber;
76
+ }, z.core.$strip>, z.ZodObject<{
77
+ pointType: z.ZodLiteral<"Fixed">;
78
+ itemId: z.ZodString;
79
+ relativeX: z.ZodNumber;
80
+ relativeY: z.ZodNumber;
81
+ }, z.core.$strip>, z.ZodObject<{
82
+ pointType: z.ZodLiteral<"FixedConnector">;
83
+ itemId: z.ZodString;
84
+ tangent: z.ZodNumber;
85
+ segment: z.ZodNumber;
86
+ }, z.core.$strip>]>;
87
+ middlePoint: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodObject<{
88
+ pointType: z.ZodLiteral<"Board">;
89
+ x: z.ZodNumber;
90
+ y: z.ZodNumber;
91
+ }, z.core.$strip>, z.ZodObject<{
92
+ pointType: z.ZodLiteral<"Floating">;
93
+ itemId: z.ZodString;
94
+ relativeX: z.ZodNumber;
95
+ relativeY: z.ZodNumber;
96
+ }, z.core.$strip>, z.ZodObject<{
97
+ pointType: z.ZodLiteral<"Fixed">;
98
+ itemId: z.ZodString;
99
+ relativeX: z.ZodNumber;
100
+ relativeY: z.ZodNumber;
101
+ }, z.core.$strip>, z.ZodObject<{
102
+ pointType: z.ZodLiteral<"FixedConnector">;
103
+ itemId: z.ZodString;
104
+ tangent: z.ZodNumber;
105
+ segment: z.ZodNumber;
106
+ }, z.core.$strip>]>>>;
107
+ startPointerStyle: z.ZodString;
108
+ endPointerStyle: z.ZodString;
109
+ lineStyle: z.ZodEnum<{
110
+ straight: "straight";
111
+ curved: "curved";
112
+ orthogonal: "orthogonal";
113
+ }>;
114
+ lineColor: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
115
+ type: z.ZodLiteral<"semantic">;
116
+ id: z.ZodEnum<{
117
+ contrastNeutral: "contrastNeutral";
118
+ contrastGray: "contrastGray";
119
+ contrastRed: "contrastRed";
120
+ contrastOrange: "contrastOrange";
121
+ contrastYellow: "contrastYellow";
122
+ contrastGreen: "contrastGreen";
123
+ contrastTeal: "contrastTeal";
124
+ contrastBlue: "contrastBlue";
125
+ contrastPurple: "contrastPurple";
126
+ contrastPink: "contrastPink";
127
+ contrastBrown: "contrastBrown";
128
+ }>;
129
+ }, z.core.$strip>, z.ZodObject<{
130
+ type: z.ZodLiteral<"fixed">;
131
+ value: z.ZodString;
132
+ }, z.core.$strip>]>;
133
+ lineWidth: z.ZodUnion<readonly [z.ZodEnum<{
134
+ [x: string]: any;
135
+ }>, z.ZodNumber]>;
136
+ borderStyle: z.ZodOptional<z.ZodString>;
137
+ smartJump: z.ZodOptional<z.ZodBoolean>;
138
+ transformation: z.ZodObject<{
139
+ translateX: z.ZodNumber;
140
+ translateY: z.ZodNumber;
141
+ scaleX: z.ZodNumber;
142
+ scaleY: z.ZodNumber;
143
+ rotate: z.ZodNumber;
144
+ isLocked: z.ZodOptional<z.ZodBoolean>;
145
+ }, z.core.$strip>;
146
+ text: z.ZodObject<{
147
+ itemType: z.ZodOptional<z.ZodLiteral<"RichText">>;
148
+ children: z.ZodArray<z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>>;
149
+ verticalAlignment: z.ZodOptional<z.ZodEnum<{
150
+ center: "center";
151
+ top: "top";
152
+ bottom: "bottom";
153
+ }>>;
154
+ maxWidth: z.ZodOptional<z.ZodNumber>;
155
+ transformation: z.ZodOptional<z.ZodObject<{
156
+ translateX: z.ZodNumber;
157
+ translateY: z.ZodNumber;
158
+ scaleX: z.ZodNumber;
159
+ scaleY: z.ZodNumber;
160
+ rotate: z.ZodNumber;
161
+ isLocked: z.ZodOptional<z.ZodBoolean>;
162
+ }, z.core.$strip>>;
163
+ containerMaxWidth: z.ZodOptional<z.ZodNumber>;
164
+ insideOf: z.ZodOptional<z.ZodString>;
165
+ color: z.ZodOptional<z.ZodString>;
166
+ placeholderText: z.ZodOptional<z.ZodString>;
167
+ realSize: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"auto">, z.ZodNumber]>>;
168
+ linkTo: z.ZodOptional<z.ZodString>;
169
+ }, z.core.$strip>;
170
+ linkTo: z.ZodOptional<z.ZodString>;
171
+ }, z.core.$strip>;
172
+ export type ConnectorData = z.infer<typeof ConnectorDataSchema>;
@@ -1,20 +1,9 @@
1
- import { ColorValue } from "../../..";
2
- import { BorderStyle } from "../Path";
3
1
  import { Connector } from "./Connector";
4
2
  import { ControlPoint, ControlPointData } from "./ControlPoint";
5
3
  import { ConnectorOperation } from "./ConnectorOperations";
6
- import { ConnectionLineWidth, ConnectorLineStyle } from "./ConnectorTypes";
7
- import { ConnectorPointerStyle } from "./Pointers/Pointers";
8
4
  export declare const connectorOps: {
9
5
  setStartPoint: (items: Connector[], point: ControlPoint | ControlPointData, timestamp?: number) => ConnectorOperation;
10
6
  setEndPoint: (items: Connector[], point: ControlPoint | ControlPointData, timestamp?: number) => ConnectorOperation;
11
7
  setMiddlePoint: (items: Connector[], point: ControlPoint | ControlPointData | null, timestamp?: number) => ConnectorOperation;
12
- setStartPointerStyle: (items: Connector[], style: ConnectorPointerStyle) => ConnectorOperation;
13
- setEndPointerStyle: (items: Connector[], style: ConnectorPointerStyle) => ConnectorOperation;
14
- setLineStyle: (items: Connector[], style: ConnectorLineStyle) => ConnectorOperation;
15
- setBorderStyle: (items: Connector[], borderStyle: BorderStyle) => ConnectorOperation;
16
- setLineColor: (items: Connector[], color: ColorValue) => ConnectorOperation;
17
- setLineWidth: (items: Connector[], width: ConnectionLineWidth) => ConnectorOperation;
18
8
  switchPointers: (items: Connector[]) => ConnectorOperation;
19
- setSmartJump: (items: Connector[], smartJump: boolean) => ConnectorOperation;
20
9
  };
@@ -1,4 +1,4 @@
1
- import { Events, Operation } from "../../Events";
1
+ import type { Operation } from "../../Events";
2
2
  import { Subject } from "../../Subject";
3
3
  import { DrawingContext } from "../DrawingContext";
4
4
  import { Line } from "../Line/Line";
@@ -25,8 +25,6 @@ export interface DrawingData {
25
25
  [key: string]: unknown;
26
26
  }
27
27
  export declare class Drawing extends BaseItem<Drawing> {
28
- points: Point[];
29
- private events?;
30
28
  readonly itemType = "Drawing";
31
29
  parent: string;
32
30
  private path2d;
@@ -40,9 +38,10 @@ export declare class Drawing extends BaseItem<Drawing> {
40
38
  private linePattern;
41
39
  private borderOpacity;
42
40
  transformationRenderBlock?: boolean;
43
- constructor(board: Board, points: Point[], events?: Events | undefined, id?: string);
41
+ points: Point[];
42
+ constructor(board: Board, id?: string);
44
43
  serialize(): SerializedItemData<DrawingData>;
45
- deserialize(data: SerializedItemData<DrawingData>): this;
44
+ deserialize(data: SerializedItemData<DrawingData> | DrawingData): this;
46
45
  updateGeometry(): void;
47
46
  updateMbr(): void;
48
47
  updatePath2d(): void;
@@ -57,9 +56,13 @@ export declare class Drawing extends BaseItem<Drawing> {
57
56
  getSnapAnchorPoints(): Point[];
58
57
  getLines(): Line[];
59
58
  isClosed(): boolean;
59
+ isNearPoint(point: Point, distance: number): boolean;
60
+ getDistanceToPoint(point: Point): number;
61
+ intersectsWithLines(lines: Line[]): boolean;
60
62
  isEnclosedOrCrossedBy(rect: Mbr): boolean;
61
63
  emit(operation: DrawingOperation): void;
62
64
  apply(op: Operation): void;
65
+ protected onPropertyUpdated(property: string, value: unknown, prevValue: unknown): void;
63
66
  getStrokeOpacity(): number;
64
67
  getBorderStyle(): BorderStyle;
65
68
  getStrokeColor(): ColorValue;
@@ -0,0 +1,42 @@
1
+ import { z } from "zod";
2
+ export declare const DrawingDataSchema: z.ZodObject<{
3
+ itemType: z.ZodLiteral<"Drawing">;
4
+ points: z.ZodArray<z.ZodObject<{
5
+ x: z.ZodNumber;
6
+ y: z.ZodNumber;
7
+ }, z.core.$strip>>;
8
+ transformation: z.ZodObject<{
9
+ translateX: z.ZodNumber;
10
+ translateY: z.ZodNumber;
11
+ scaleX: z.ZodNumber;
12
+ scaleY: z.ZodNumber;
13
+ rotate: z.ZodNumber;
14
+ isLocked: z.ZodOptional<z.ZodBoolean>;
15
+ }, z.core.$strip>;
16
+ strokeStyle: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
17
+ type: z.ZodLiteral<"semantic">;
18
+ id: z.ZodEnum<{
19
+ contrastNeutral: "contrastNeutral";
20
+ contrastGray: "contrastGray";
21
+ contrastRed: "contrastRed";
22
+ contrastOrange: "contrastOrange";
23
+ contrastYellow: "contrastYellow";
24
+ contrastGreen: "contrastGreen";
25
+ contrastTeal: "contrastTeal";
26
+ contrastBlue: "contrastBlue";
27
+ contrastPurple: "contrastPurple";
28
+ contrastPink: "contrastPink";
29
+ contrastBrown: "contrastBrown";
30
+ }>;
31
+ }, z.core.$strip>, z.ZodObject<{
32
+ type: z.ZodLiteral<"fixed">;
33
+ value: z.ZodString;
34
+ }, z.core.$strip>]>;
35
+ strokeWidth: z.ZodNumber;
36
+ colorRole: z.ZodOptional<z.ZodEnum<{
37
+ background: "background";
38
+ foreground: "foreground";
39
+ }>>;
40
+ linkTo: z.ZodOptional<z.ZodString>;
41
+ }, z.core.$strip>;
42
+ export type DrawingData = z.infer<typeof DrawingDataSchema>;
@@ -1,3 +1,2 @@
1
1
  export * from "./Drawing";
2
- export * from "./drawingOps";
3
2
  export * from "./DrawingOperation";
@@ -29,7 +29,7 @@ export declare class Card extends BaseItem<Card> {
29
29
  width: number;
30
30
  height: number;
31
31
  };
32
- constructor(board: Board, id?: string, defaultData?: CardData);
32
+ constructor(board: Board, id?: string);
33
33
  getDimensions(): {
34
34
  width: number;
35
35
  height: number;
@@ -36,4 +36,3 @@ export declare class Deck extends BaseItem<Deck> {
36
36
  private updateCache;
37
37
  getFirstCard(): Card | undefined;
38
38
  }
39
- export declare function createDeck(event?: KeyboardEvent, board?: Board): void;
@@ -26,7 +26,7 @@ export declare class Dice extends BaseItem<Dice> {
26
26
  private valueIndex;
27
27
  private renderValues;
28
28
  private animationFrameId;
29
- constructor(board: Board, id?: string, defaultItemData?: BaseItemData, isGroupItem?: boolean);
29
+ constructor(board: Board, id?: string);
30
30
  private transformPath;
31
31
  updateRenderValues(): Promise<void>;
32
32
  render(context: DrawingContext): void;
@@ -18,7 +18,7 @@ export declare class Screen extends BaseItem<Screen> {
18
18
  backgroundUrl: string;
19
19
  backgroundImage: HTMLImageElement | null;
20
20
  ownerId: string;
21
- constructor(board: Board, id?: string, defaultItemData?: BaseItemData, isGroupItem?: boolean);
21
+ constructor(board: Board, id?: string);
22
22
  apply(op: any): void;
23
23
  getOwnerId(): string;
24
24
  getBackgroundColor(): string;
@@ -22,6 +22,9 @@ export declare class Star extends BaseItem<Star> {
22
22
  private path;
23
23
  readonly subject: Subject<Star>;
24
24
  private borderWidth;
25
+ backgroundColor: string;
26
+ borderColor: string;
27
+ borderStyle: BorderStyle;
25
28
  isShining: boolean;
26
29
  constructor(board: Board, id?: string);
27
30
  private transformPath;
@@ -3,10 +3,10 @@ import { Line } from "../Line/Line";
3
3
  import { Point } from "../Point/Point";
4
4
  import { Path } from "../Path/Path";
5
5
  import { Paths } from "../Path/Paths";
6
- import type { Item } from "../Item";
7
6
  import { RichText } from "../RichText/RichText";
8
7
  import { Matrix } from "../Transformation/Matrix";
9
8
  import { BaseItem, SerializedItemData } from "../BaseItem/BaseItem";
9
+ import { TransformParams, TransformResult } from "../BaseItem/TransformContext";
10
10
  import { Subject } from "../../Subject";
11
11
  import { DrawingContext } from "../DrawingContext";
12
12
  import { Operation } from "../../Events";
@@ -19,27 +19,25 @@ import { FrameData } from "./FrameData";
19
19
  import { ResizeType } from "../../Selection/Transformer/TransformerHelpers/getResizeType";
20
20
  import { ColorValue } from "../../..";
21
21
  export declare class Frame extends BaseItem<Frame> {
22
- private getItemById;
23
- private name;
24
- private shapeType;
25
- backgroundColor: ColorValue;
26
- backgroundOpacity: number;
27
- borderColor: ColorValue;
28
- borderOpacity: number;
29
- borderStyle: "solid" | "dot" | "dash" | "longDash" | "dotDash" | "tripleDotDash" | "looseDoubleDotDash";
30
- borderWidth: number;
31
22
  readonly itemType = "Frame";
32
23
  parent: string;
33
24
  readonly subject: Subject<Frame>;
34
25
  private textContainer;
35
26
  private path;
36
- private mbr;
37
27
  readonly text: RichText;
38
28
  private canChangeRatio;
39
29
  canBeNested: boolean;
40
30
  newShape: FrameType | null;
41
31
  transformationRenderBlock?: boolean;
42
- constructor(board: Board, getItemById: (id: string) => Item | undefined, id?: string, name?: string, shapeType?: "Custom" | "A4" | "Letter" | "Frame16x9" | "Frame4x3" | "Frame1x1" | "Frame3x2" | "Frame9x18", backgroundColor?: ColorValue, backgroundOpacity?: number, borderColor?: ColorValue, borderOpacity?: number, borderStyle?: "solid" | "dot" | "dash" | "longDash" | "dotDash" | "tripleDotDash" | "looseDoubleDotDash", borderWidth?: number);
32
+ private name;
33
+ private shapeType;
34
+ backgroundColor: ColorValue;
35
+ backgroundOpacity: number;
36
+ borderColor: ColorValue;
37
+ borderOpacity: number;
38
+ borderStyle: "solid" | "dot" | "dash" | "longDash" | "dotDash" | "tripleDotDash" | "looseDoubleDotDash";
39
+ borderWidth: number;
40
+ constructor(board: Board, id?: string);
43
41
  setBoard(board: Board): this;
44
42
  addChildItems(children: BaseItem[]): void;
45
43
  removeChildItems(children: BaseItem[] | BaseItem): void;
@@ -56,7 +54,6 @@ export declare class Frame extends BaseItem<Frame> {
56
54
  getId(): string;
57
55
  getChildrenIds(): string[];
58
56
  updateMbr(): void;
59
- getMbr(): Mbr;
60
57
  doResize(resizeType: ResizeType, pointer: Point, mbr: Mbr, opposite: Point, startMbr: Mbr, timeStamp: number): {
61
58
  matrix: Matrix;
62
59
  mbr: Mbr;
@@ -99,4 +96,6 @@ export declare class Frame extends BaseItem<Frame> {
99
96
  renderPath(context: DrawingContext): void;
100
97
  renderNewShape(context: DrawingContext): void;
101
98
  getRichText(): RichText;
99
+ getIsScalingContainer(): boolean;
100
+ handleTransform(params: TransformParams): TransformResult;
102
101
  }
@@ -0,0 +1,84 @@
1
+ import { z } from "zod";
2
+ export declare const FrameDataSchema: z.ZodObject<{
3
+ itemType: z.ZodLiteral<"Frame">;
4
+ shapeType: z.ZodString;
5
+ backgroundColor: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
6
+ type: z.ZodLiteral<"semantic">;
7
+ id: z.ZodEnum<{
8
+ contrastNeutral: "contrastNeutral";
9
+ contrastGray: "contrastGray";
10
+ contrastRed: "contrastRed";
11
+ contrastOrange: "contrastOrange";
12
+ contrastYellow: "contrastYellow";
13
+ contrastGreen: "contrastGreen";
14
+ contrastTeal: "contrastTeal";
15
+ contrastBlue: "contrastBlue";
16
+ contrastPurple: "contrastPurple";
17
+ contrastPink: "contrastPink";
18
+ contrastBrown: "contrastBrown";
19
+ }>;
20
+ }, z.core.$strip>, z.ZodObject<{
21
+ type: z.ZodLiteral<"fixed">;
22
+ value: z.ZodString;
23
+ }, z.core.$strip>]>;
24
+ backgroundOpacity: z.ZodNumber;
25
+ borderColor: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
26
+ type: z.ZodLiteral<"semantic">;
27
+ id: z.ZodEnum<{
28
+ contrastNeutral: "contrastNeutral";
29
+ contrastGray: "contrastGray";
30
+ contrastRed: "contrastRed";
31
+ contrastOrange: "contrastOrange";
32
+ contrastYellow: "contrastYellow";
33
+ contrastGreen: "contrastGreen";
34
+ contrastTeal: "contrastTeal";
35
+ contrastBlue: "contrastBlue";
36
+ contrastPurple: "contrastPurple";
37
+ contrastPink: "contrastPink";
38
+ contrastBrown: "contrastBrown";
39
+ }>;
40
+ }, z.core.$strip>, z.ZodObject<{
41
+ type: z.ZodLiteral<"fixed">;
42
+ value: z.ZodString;
43
+ }, z.core.$strip>]>;
44
+ borderOpacity: z.ZodNumber;
45
+ borderStyle: z.ZodString;
46
+ borderWidth: z.ZodNumber;
47
+ childIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
48
+ children: z.ZodOptional<z.ZodArray<z.ZodString>>;
49
+ transformation: z.ZodObject<{
50
+ translateX: z.ZodNumber;
51
+ translateY: z.ZodNumber;
52
+ scaleX: z.ZodNumber;
53
+ scaleY: z.ZodNumber;
54
+ rotate: z.ZodNumber;
55
+ isLocked: z.ZodOptional<z.ZodBoolean>;
56
+ }, z.core.$strip>;
57
+ text: z.ZodObject<{
58
+ itemType: z.ZodOptional<z.ZodLiteral<"RichText">>;
59
+ children: z.ZodArray<z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>>;
60
+ verticalAlignment: z.ZodOptional<z.ZodEnum<{
61
+ center: "center";
62
+ top: "top";
63
+ bottom: "bottom";
64
+ }>>;
65
+ maxWidth: z.ZodOptional<z.ZodNumber>;
66
+ transformation: z.ZodOptional<z.ZodObject<{
67
+ translateX: z.ZodNumber;
68
+ translateY: z.ZodNumber;
69
+ scaleX: z.ZodNumber;
70
+ scaleY: z.ZodNumber;
71
+ rotate: z.ZodNumber;
72
+ isLocked: z.ZodOptional<z.ZodBoolean>;
73
+ }, z.core.$strip>>;
74
+ containerMaxWidth: z.ZodOptional<z.ZodNumber>;
75
+ insideOf: z.ZodOptional<z.ZodString>;
76
+ color: z.ZodOptional<z.ZodString>;
77
+ placeholderText: z.ZodOptional<z.ZodString>;
78
+ realSize: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"auto">, z.ZodNumber]>>;
79
+ linkTo: z.ZodOptional<z.ZodString>;
80
+ }, z.core.$strip>;
81
+ canChangeRatio: z.ZodOptional<z.ZodBoolean>;
82
+ linkTo: z.ZodOptional<z.ZodString>;
83
+ }, z.core.$strip>;
84
+ export type FrameData = z.infer<typeof FrameDataSchema>;
@@ -32,4 +32,8 @@ export interface Geometry {
32
32
  render(context: DrawingContext): void;
33
33
  /** Get RichText handle if exists */
34
34
  getRichText(): RichText | null;
35
+ /** Get anchor points for snapping (e.g. connectors) */
36
+ getSnapAnchorPoints?(): Point[];
37
+ /** Get a point on the edge of the item for connection (handles special alignment for text items) */
38
+ getPointOnEdge?(point: Point, edge?: string): Point;
35
39
  }
@@ -2,7 +2,7 @@ import { Subject } from "../../Subject";
2
2
  import { DrawingContext } from "../DrawingContext";
3
3
  import { TransformationData } from "../Transformation/TransformationData";
4
4
  import { GroupOperation } from "./GroupOperation";
5
- import { Events, Operation } from "../../Events";
5
+ import type { Operation } from "../../Events";
6
6
  import { Mbr } from "../Mbr/Mbr";
7
7
  import { Line } from "../Line/Line";
8
8
  import { Point } from "../Point/Point";
@@ -17,7 +17,6 @@ export interface GroupData {
17
17
  [key: string]: unknown;
18
18
  }
19
19
  export declare class Group extends BaseItem<Group> {
20
- private events?;
21
20
  readonly itemType = "Group";
22
21
  parent: string;
23
22
  readonly subject: Subject<Group>;
@@ -29,7 +28,7 @@ export declare class Group extends BaseItem<Group> {
29
28
  * via recalculatePoint) and avoid persisting spurious setStartPoint/setEndPoint ops.
30
29
  */
31
30
  static movingGroupId: string | null;
32
- constructor(board: Board, events?: Events | undefined, childIds?: string[], id?: string);
31
+ constructor(board: Board, id?: string);
33
32
  isClosed(): boolean;
34
33
  getRichText(): null;
35
34
  apply(op: Operation): void;
@@ -41,8 +40,9 @@ export declare class Group extends BaseItem<Group> {
41
40
  getChildren(): Item[];
42
41
  getLinkTo(): string | undefined;
43
42
  serialize(): SerializedItemData<GroupData>;
44
- deserialize(data: SerializedItemData<GroupData>): this;
43
+ deserialize(data: SerializedItemData<GroupData> | GroupData): this;
45
44
  getId(): string;
46
45
  getIntersectionPoints(segment: Line): Point[];
47
46
  render(context: DrawingContext): void;
48
47
  }
48
+ export declare const DefaultGroupData: GroupData;
@@ -0,0 +1,16 @@
1
+ import { z } from "zod";
2
+ export declare const GroupDataSchema: z.ZodObject<{
3
+ itemType: z.ZodLiteral<"Group">;
4
+ childIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
5
+ children: z.ZodOptional<z.ZodArray<z.ZodString>>;
6
+ transformation: z.ZodObject<{
7
+ translateX: z.ZodNumber;
8
+ translateY: z.ZodNumber;
9
+ scaleX: z.ZodNumber;
10
+ scaleY: z.ZodNumber;
11
+ rotate: z.ZodNumber;
12
+ isLocked: z.ZodOptional<z.ZodBoolean>;
13
+ }, z.core.$strip>;
14
+ isLockedGroup: z.ZodOptional<z.ZodBoolean>;
15
+ }, z.core.$strip>;
16
+ export type GroupData = z.infer<typeof GroupDataSchema>;