@ngroznykh/papirus 0.5.10 → 0.6.1

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 (40) hide show
  1. package/README.md +42 -0
  2. package/README.ru.md +42 -0
  3. package/dist/core/DiagramRenderer.d.ts +1 -0
  4. package/dist/core/DiagramRenderer.d.ts.map +1 -1
  5. package/dist/core/InteractionManager.d.ts +3 -0
  6. package/dist/core/InteractionManager.d.ts.map +1 -1
  7. package/dist/elements/Edge.d.ts +29 -2
  8. package/dist/elements/Edge.d.ts.map +1 -1
  9. package/dist/elements/NodeImage.d.ts.map +1 -1
  10. package/dist/elements/composite/CComponent.d.ts +109 -0
  11. package/dist/elements/composite/CComponent.d.ts.map +1 -0
  12. package/dist/elements/composite/CContainer.d.ts +58 -0
  13. package/dist/elements/composite/CContainer.d.ts.map +1 -0
  14. package/dist/elements/composite/CDivider.d.ts +37 -0
  15. package/dist/elements/composite/CDivider.d.ts.map +1 -0
  16. package/dist/elements/composite/CIcon.d.ts +58 -0
  17. package/dist/elements/composite/CIcon.d.ts.map +1 -0
  18. package/dist/elements/composite/CShape.d.ts +51 -0
  19. package/dist/elements/composite/CShape.d.ts.map +1 -0
  20. package/dist/elements/composite/CText.d.ts +86 -0
  21. package/dist/elements/composite/CText.d.ts.map +1 -0
  22. package/dist/elements/composite/CompositeNode.d.ts +60 -0
  23. package/dist/elements/composite/CompositeNode.d.ts.map +1 -0
  24. package/dist/elements/composite/FlexLayout.d.ts +49 -0
  25. package/dist/elements/composite/FlexLayout.d.ts.map +1 -0
  26. package/dist/elements/composite/deserialize.d.ts +6 -0
  27. package/dist/elements/composite/deserialize.d.ts.map +1 -0
  28. package/dist/elements/composite/index.d.ts +26 -0
  29. package/dist/elements/composite/index.d.ts.map +1 -0
  30. package/dist/index.d.ts +3 -1
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/papirus.js +1915 -274
  33. package/dist/papirus.js.map +1 -1
  34. package/dist/types.d.ts +21 -0
  35. package/dist/types.d.ts.map +1 -1
  36. package/dist/utils/Serializer.d.ts.map +1 -1
  37. package/dist/utils/SvgExporter.d.ts.map +1 -1
  38. package/dist/utils/svgTint.d.ts +20 -0
  39. package/dist/utils/svgTint.d.ts.map +1 -0
  40. package/package.json +1 -1
package/README.md CHANGED
@@ -145,6 +145,9 @@ const edge = new Edge({
145
145
  to: { nodeId: nodeB.id },
146
146
  label: 'API call',
147
147
  labelOffset: 12,
148
+ labelPosition: 0.65, // 0..1 along edge path (0 = start, 1 = end)
149
+ labelFollowPath: true, // rotate label with local edge direction
150
+ labelLineGap: true, // line is cut under label bounds
148
151
  labelBackground: {
149
152
  color: '#ffffff',
150
153
  opacity: 0.9,
@@ -153,6 +156,45 @@ const edge = new Edge({
153
156
  });
154
157
  ```
155
158
 
159
+ ### CompositeNode (Flex Components)
160
+
161
+ `CompositeNode` lets you build notation-specific visual structures as a component tree (`container`, `text`, `icon`, `shape`, `divider`) with a flexbox-like layout engine:
162
+
163
+ ```ts
164
+ import { CompositeNode, container, text, icon, divider } from '@ngroznykh/papirus';
165
+
166
+ const composite = new CompositeNode({
167
+ x: 120,
168
+ y: 80,
169
+ width: 220,
170
+ height: 120,
171
+ shapeType: 'rectangle',
172
+ autoSize: true,
173
+ content: container({
174
+ direction: 'column',
175
+ padding: 10,
176
+ gap: 6,
177
+ children: [
178
+ text({ id: 'name', text: 'Service API', role: 'name', style: { alignSelf: 'center' } }),
179
+ divider({}),
180
+ container({
181
+ direction: 'row',
182
+ justifyContent: 'space-between',
183
+ children: [
184
+ text({ text: 'v2.1.0', color: '#64748b' }),
185
+ icon({ source: '/icons/cloud.svg', width: 16, height: 16, bindsNotationIcon: true }),
186
+ ],
187
+ }),
188
+ ],
189
+ }),
190
+ });
191
+ ```
192
+
193
+ Serialized composite components (`SerializedCComponent`) include editor/integration fields:
194
+ - `label` — human-readable component caption for host editors.
195
+ - `bindToProperty` — bind `text` value to a property name (`'__name__'` for node display name).
196
+ - `bindsNotationIcon` — mark `icon` source as notation-level icon binding.
197
+
156
198
  ### Styling
157
199
 
158
200
  `StyleManager` applies themes and classes to nodes/edges/text/ports/groups.
package/README.ru.md CHANGED
@@ -146,6 +146,9 @@ const edge = new Edge({
146
146
  to: { nodeId: nodeB.id },
147
147
  label: 'API call',
148
148
  labelOffset: 12,
149
+ labelPosition: 0.65, // 0..1 вдоль пути ребра (0 = начало, 1 = конец)
150
+ labelFollowPath: true, // поворачивать подпись по направлению ребра
151
+ labelLineGap: true, // линия разрывается под подписью
149
152
  labelBackground: {
150
153
  color: '#ffffff',
151
154
  opacity: 0.9,
@@ -154,6 +157,45 @@ const edge = new Edge({
154
157
  });
155
158
  ```
156
159
 
160
+ ### CompositeNode (компонентная flex-компоновка)
161
+
162
+ `CompositeNode` позволяет собирать нотационные элементы как дерево компонентов (`container`, `text`, `icon`, `shape`, `divider`) с flexbox-подобной раскладкой:
163
+
164
+ ```ts
165
+ import { CompositeNode, container, text, icon, divider } from '@ngroznykh/papirus';
166
+
167
+ const composite = new CompositeNode({
168
+ x: 120,
169
+ y: 80,
170
+ width: 220,
171
+ height: 120,
172
+ shapeType: 'rectangle',
173
+ autoSize: true,
174
+ content: container({
175
+ direction: 'column',
176
+ padding: 10,
177
+ gap: 6,
178
+ children: [
179
+ text({ id: 'name', text: 'Service API', role: 'name', style: { alignSelf: 'center' } }),
180
+ divider({}),
181
+ container({
182
+ direction: 'row',
183
+ justifyContent: 'space-between',
184
+ children: [
185
+ text({ text: 'v2.1.0', color: '#64748b' }),
186
+ icon({ source: '/icons/cloud.svg', width: 16, height: 16, bindsNotationIcon: true }),
187
+ ],
188
+ }),
189
+ ],
190
+ }),
191
+ });
192
+ ```
193
+
194
+ Сериализация компонентов (`SerializedCComponent`) включает поля для редакторов и интеграций:
195
+ - `label` — человекочитаемая подпись компонента для host-редактора.
196
+ - `bindToProperty` — привязка значения `text` к имени свойства (`'__name__'` для отображаемого имени узла).
197
+ - `bindsNotationIcon` — признак того, что `icon` привязан к иконке на уровне нотации.
198
+
157
199
  ### Стили
158
200
 
159
201
  `StyleManager` применяет темы и классы к узлам/рёбрам/тексту/портам/группам.
@@ -20,6 +20,7 @@ export interface DiagramEvents {
20
20
  edgeAdd: [edge: Edge];
21
21
  edgeRemove: [edge: Edge];
22
22
  nodeBadgeClick: [nodeId: string, badgeId: string];
23
+ componentClick: [nodeId: string, component: import('../elements/composite/CComponent').CComponent, point: Point];
23
24
  }
24
25
  export interface DiagramPlugin {
25
26
  name?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"DiagramRenderer.d.ts","sourceRoot":"","sources":["../../src/core/DiagramRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DiagramRenderer.d.ts","sourceRoot":"","sources":["../../src/core/DiagramRenderer.ts"],"names":[],"mappings":"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"}
@@ -85,6 +85,7 @@ export declare class InteractionManager {
85
85
  private handleMouseMove;
86
86
  private handleMouseUp;
87
87
  private handleClick;
88
+ private emitComponentClick;
88
89
  private handleDoubleClick;
89
90
  private getEdgeLabelAtPoint;
90
91
  private handleWheel;
@@ -94,6 +95,8 @@ export declare class InteractionManager {
94
95
  private handleKeyUp;
95
96
  private handleViewportNavigationKey;
96
97
  private startLabelEdit;
98
+ private startCompositeNameEdit;
99
+ private findNameComponent;
97
100
  private handleLabelCommit;
98
101
  private queuePropertyChange;
99
102
  private flushPendingPropertyChanges;
@@ -1 +1 @@
1
- {"version":3,"file":"InteractionManager.d.ts","sourceRoot":"","sources":["../../src/core/InteractionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InteractionManager.d.ts","sourceRoot":"","sources":["../../src/core/InteractionManager.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,10 @@ export interface EdgeOptions {
16
16
  styleClass?: string;
17
17
  label?: string | TextLabelOptions;
18
18
  labelOffset?: number;
19
+ /** Position along the path (0 = source, 0.5 = midpoint, 1 = target). Default 0.5 */
20
+ labelPosition?: number;
21
+ /** Rotate label text to follow the path tangent */
22
+ labelFollowPath?: boolean;
19
23
  labelBackground?: EdgeLabelBackground;
20
24
  lockAnchors?: boolean;
21
25
  labelLineGap?: boolean;
@@ -34,6 +38,8 @@ export declare class Edge extends Element {
34
38
  private _edgeStyle;
35
39
  private _label?;
36
40
  private _labelOffset;
41
+ private _labelPosition;
42
+ private _labelFollowPath;
37
43
  private _labelBackground?;
38
44
  private _labelLineGap;
39
45
  private _path;
@@ -82,6 +88,16 @@ export declare class Edge extends Element {
82
88
  */
83
89
  get labelOffset(): number;
84
90
  set labelOffset(value: number);
91
+ /**
92
+ * Position along path (0 = source, 0.5 = midpoint, 1 = target)
93
+ */
94
+ get labelPosition(): number;
95
+ set labelPosition(value: number);
96
+ /**
97
+ * Whether label text rotates to follow the path tangent
98
+ */
99
+ get labelFollowPath(): boolean;
100
+ set labelFollowPath(value: boolean);
85
101
  /**
86
102
  * Label background configuration
87
103
  */
@@ -201,12 +217,23 @@ export declare class Edge extends Element {
201
217
  private drawArrowHead;
202
218
  private renderLabel;
203
219
  private drawRoundedRect;
204
- private getPathMidpoint;
220
+ /**
221
+ * Get a point along the sampled path at parameter t (0..1).
222
+ * Also returns the tangent angle in radians at that point.
223
+ */
224
+ private getPathPointAt;
205
225
  /**
206
226
  * Get world position of label center along path.
207
227
  */
208
228
  getLabelPosition(): Point | null;
209
- private getPolylineMidpoint;
229
+ /**
230
+ * Get label rotation angle in radians (if labelFollowPath is true).
231
+ */
232
+ getLabelRotation(): number;
233
+ /**
234
+ * Get point and tangent angle at parameter t along a polyline.
235
+ */
236
+ private getPointAlongPolyline;
210
237
  private getPathStrategy;
211
238
  private applyLineDash;
212
239
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Edge.d.ts","sourceRoot":"","sources":["../../src/elements/Edge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Edge.d.ts","sourceRoot":"","sources":["../../src/elements/Edge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAc,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EAEjB,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,mBAAmB,EACnB,KAAK,EACN,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAQ1D,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAIzB,MAAM,SAAS,CAAC;AAWjB,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,YAAY,CAAC;IACnB,EAAE,EAAE,YAAY,CAAC;IACjB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAQD,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B;;GAEG;AACH,qBAAa,IAAK,SAAQ,OAAO;IAC/B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,GAAG,CAAe;IAC1B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,YAAY,CAAC,CAAoB;IACzC,OAAO,CAAC,UAAU,CAAC,CAAoB;IACvC,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,MAAM,CAAC,CAAY;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,gBAAgB,CAAU;IAClC,OAAO,CAAC,gBAAgB,CAAC,CAAsB;IAC/C,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,oBAAoB,CAAQ;IACpC,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,cAAc,CAAC,CAAU;IACjC,OAAO,CAAC,YAAY,CAAC,CAAsB;IAG3C,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,OAAO,EAAE,WAAW;IAuChC;;OAEG;IACH,IAAI,IAAI,IAAI,YAAY,CAEvB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,YAAY,EAG3B;IAED;;OAEG;IACH,IAAI,EAAE,IAAI,YAAY,CAErB;IAED,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,EAGzB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,YAAY,CAEvB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,YAAY,EAS3B;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,SAAS,EAK7B;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,iBAAiB,GAAG,SAAS,CAE/C;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,EAGnD;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,iBAAiB,GAAG,SAAS,CAE7C;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,EAGjD;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,EAK5B;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,EAM9B;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,IAAI,eAAe,CAAC,KAAK,EAAE,OAAO,EAKjC;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,mBAAmB,GAAG,SAAS,CAErD;IAED,IAAI,eAAe,CAAC,KAAK,EAAE,mBAAmB,GAAG,SAAS,EAGzD;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,EAK9B;IAED;;;;OAIG;IACH,IAAI,aAAa,IAAI,KAAK,EAAE,GAAG,SAAS,CAEvC;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,SAAS,EAG3C;IAED;;OAEG;IACH,kBAAkB,IAAI,OAAO;IAI7B;;OAEG;IACH,wBAAwB,IAAI,OAAO;IAInC;;;OAGG;IACH,eAAe,IAAI,KAAK,EAAE;IAO1B;;;OAGG;IACH,wBAAwB,IAAI,KAAK,EAAE;IAenC;;OAEG;IACH,IAAa,KAAK,IAAI,SAAS,CAE9B;IAED,IAAa,KAAK,CAAC,KAAK,EAAE,SAAS,EAIlC;IAED,iBAAiB,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAwBnD;;OAEG;IACH,IAAI,KAAK,IAAI,SAAS,GAAG,SAAS,CAEjC;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,EAU9C;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,SAAS,KAAK,EAAE,CAE3B;IAED;;OAEG;IACH,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED,IAAI,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAErC;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,OAAO,EAE7B;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,KAAK,CAEtB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,KAAK,CAEpB;IAED;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,SAAI,GAAG,OAAO;IAM3D;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,SAAI,GAAG,OAAO;IAMzD;;;;;;;OAOG;IACH,eAAe,CACb,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE,KAAK,EACd,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;IASP;;OAEG;IACH,eAAe,IAAI,IAAI;IAiBvB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAK9B;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAI9D,MAAM,CAAC,GAAG,EAAE,wBAAwB,GAAG,IAAI;IAgB3C;;;OAGG;IACH,aAAa,CAAC,GAAG,EAAE,wBAAwB,GAAG,IAAI;IASlD,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,UAAU;IAoBlB,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,UAAU;IA6QlB,OAAO,CAAC,YAAY;IA+CpB,OAAO,CAAC,eAAe;IA8CvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,UAAU;IAmClB,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,iBAAiB;IAyCzB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,WAAW;IAkDnB,OAAO,CAAC,eAAe;IAWvB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAyBtB;;OAEG;IACH,gBAAgB,IAAI,KAAK,GAAG,IAAI;IAahC;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAU1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgD7B,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,aAAa;CAatB"}
@@ -1 +1 @@
1
- {"version":3,"file":"NodeImage.d.ts","sourceRoot":"","sources":["../../src/elements/NodeImage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGtC,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;AACjG,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzE,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,kBAAkB,GAC5B,SAAS,IAAI,wBAAwB,CAOvC;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAC1B,QAAQ,GACR,KAAK,GACL,QAAQ,GACR,MAAM,GACN,OAAO,GACP,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,CAAC;AAEnB,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kHAAkH;IAClH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,SAAS,CAAC,CAAa;IAC/B,OAAO,CAAC,cAAc,CAAK;gBAEf,OAAO,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI;IAQ5D,IAAI,OAAO,IAAI,gBAAgB,CAE9B;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,gBAAgB,EAGlC;IAED,IAAI,SAAS,IAAI,kBAAkB,CAElC;IAED,yEAAyE;IACzE,IAAI,KAAK,IAAI,MAAM,CAMlB;IAED,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAUlD,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAoD3D,OAAO,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAM5C,OAAO,CAAC,YAAY;YAUN,WAAW;IAmCzB,OAAO,CAAC,cAAc;CAmBvB"}
1
+ {"version":3,"file":"NodeImage.d.ts","sourceRoot":"","sources":["../../src/elements/NodeImage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAItC,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;AACjG,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzE,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,kBAAkB,GAC5B,SAAS,IAAI,wBAAwB,CAOvC;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAC1B,QAAQ,GACR,KAAK,GACL,QAAQ,GACR,MAAM,GACN,OAAO,GACP,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,CAAC;AAEnB,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kHAAkH;IAClH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,SAAS,CAAC,CAAa;IAC/B,OAAO,CAAC,cAAc,CAAK;gBAEf,OAAO,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI;IAQ5D,IAAI,OAAO,IAAI,gBAAgB,CAE9B;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,gBAAgB,EAGlC;IAED,IAAI,SAAS,IAAI,kBAAkB,CAElC;IAED,yEAAyE;IACzE,IAAI,KAAK,IAAI,MAAM,CAMlB;IAED,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAUlD,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAoD3D,OAAO,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAM5C,OAAO,CAAC,YAAY;YAUN,WAAW;IAmCzB,OAAO,CAAC,cAAc;CAmBvB"}
@@ -0,0 +1,109 @@
1
+ import { Bounds, Size } from '../../types';
2
+ /**
3
+ * Sides configuration (padding, margin, inset)
4
+ */
5
+ export interface SidesConfig {
6
+ top?: number;
7
+ right?: number;
8
+ bottom?: number;
9
+ left?: number;
10
+ }
11
+ /**
12
+ * Normalize a number or SidesConfig into a Required<SidesConfig>
13
+ */
14
+ export declare function normalizeSides(value: number | SidesConfig | undefined, fallback?: number): Required<SidesConfig>;
15
+ /**
16
+ * Flex child style properties for layout
17
+ */
18
+ export interface CComponentStyle {
19
+ visible?: boolean;
20
+ opacity?: number;
21
+ /** Flex grow factor (default 0) */
22
+ flexGrow?: number;
23
+ /** Flex shrink factor (default 1) */
24
+ flexShrink?: number;
25
+ /** Base size before grow/shrink. 'auto' uses measure() result (default 'auto') */
26
+ flexBasis?: number | 'auto';
27
+ /** Override container's alignItems for this child */
28
+ alignSelf?: 'auto' | 'start' | 'center' | 'end' | 'stretch';
29
+ /** Outer margin */
30
+ margin?: number | SidesConfig;
31
+ }
32
+ /**
33
+ * Component type discriminator
34
+ */
35
+ export type CComponentType = 'text' | 'icon' | 'shape' | 'container' | 'divider';
36
+ /**
37
+ * Base interface for all composite node components.
38
+ * Components are lightweight canvas-rendered elements within a CompositeNode.
39
+ */
40
+ export interface CComponent {
41
+ readonly type: CComponentType;
42
+ /** Optional id for lookup via CompositeNode.getComponent(id) */
43
+ readonly id?: string;
44
+ /** Flex child style */
45
+ style: CComponentStyle;
46
+ /** Measure intrinsic (preferred) size. Requires ctx for text measurement. */
47
+ measure(ctx: CanvasRenderingContext2D): Size;
48
+ /** Render the component within the given bounds (computed by layout). */
49
+ render(ctx: CanvasRenderingContext2D, bounds: Bounds): void;
50
+ /**
51
+ * Hit test a point against this component's assigned bounds.
52
+ * Returns the deepest matching component, or null if not hit.
53
+ */
54
+ hitTest(point: {
55
+ x: number;
56
+ y: number;
57
+ }, bounds: Bounds): CComponent | null;
58
+ /** Set dirty callback — called when any property changes. */
59
+ setOnChange(cb: (() => void) | undefined): void;
60
+ /** Serialize to JSON-compatible object. */
61
+ serialize(): SerializedCComponent;
62
+ /** Generate SVG markup for this component at the given bounds. */
63
+ toSVG(bounds: Bounds): string;
64
+ }
65
+ /**
66
+ * Serialized component data — recursive JSON structure.
67
+ * Type discriminator determines which fields are relevant.
68
+ */
69
+ export interface SerializedCComponent {
70
+ type: CComponentType;
71
+ id?: string;
72
+ /** Human-readable label for editor display (not used by rendering) */
73
+ label?: string;
74
+ /** Bind this text element's content to a property value at render time.
75
+ * '__name__' = node display name, other string = custom property name. */
76
+ bindToProperty?: string;
77
+ style?: CComponentStyle;
78
+ text?: string;
79
+ fontFamily?: string;
80
+ fontWeight?: string;
81
+ fontStyle?: string;
82
+ fontSize?: number;
83
+ color?: string;
84
+ align?: 'left' | 'center' | 'right';
85
+ verticalAlign?: 'top' | 'middle' | 'bottom';
86
+ maxLines?: number;
87
+ lineHeight?: number;
88
+ role?: string;
89
+ rotation?: number;
90
+ source?: string;
91
+ width?: number;
92
+ height?: number;
93
+ backgroundColor?: string;
94
+ fillColor?: string;
95
+ /** Binds this icon to notation-level icon source in host app integrations */
96
+ bindsNotationIcon?: boolean;
97
+ borderColor?: string;
98
+ borderWidth?: number;
99
+ cornerRadius?: number;
100
+ padding?: number | SidesConfig;
101
+ content?: SerializedCComponent;
102
+ thickness?: number;
103
+ direction?: 'row' | 'column';
104
+ justifyContent?: 'start' | 'center' | 'end' | 'space-between' | 'space-around';
105
+ alignItems?: 'start' | 'center' | 'end' | 'stretch';
106
+ gap?: number;
107
+ children?: SerializedCComponent[];
108
+ }
109
+ //# sourceMappingURL=CComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CComponent.d.ts","sourceRoot":"","sources":["../../../src/elements/composite/CComponent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { Bounds, Size } from '../../types';
2
+ import { CComponent, CComponentStyle, SerializedCComponent, SidesConfig } from './CComponent';
3
+ import { FlexConfig } from './FlexLayout';
4
+ export interface CContainerOptions {
5
+ id?: string;
6
+ direction?: 'row' | 'column';
7
+ justifyContent?: FlexConfig['justifyContent'];
8
+ alignItems?: FlexConfig['alignItems'];
9
+ gap?: number;
10
+ padding?: number | SidesConfig;
11
+ children?: CComponent[];
12
+ style?: CComponentStyle;
13
+ }
14
+ /**
15
+ * Flex container component for CompositeNode.
16
+ * Lays out children using a flexbox-like algorithm.
17
+ */
18
+ export declare class CContainer implements CComponent {
19
+ readonly type: "container";
20
+ readonly id?: string;
21
+ style: CComponentStyle;
22
+ private _direction;
23
+ private _justifyContent;
24
+ private _alignItems;
25
+ private _gap;
26
+ private _padding;
27
+ private _children;
28
+ private _onChange?;
29
+ private _cachedBounds;
30
+ private _cachedContainerBounds;
31
+ constructor(options?: CContainerOptions);
32
+ get direction(): 'row' | 'column';
33
+ get justifyContent(): FlexConfig['justifyContent'];
34
+ get alignItems(): FlexConfig['alignItems'];
35
+ get gap(): number;
36
+ get padding(): number | SidesConfig;
37
+ get children(): readonly CComponent[];
38
+ addChild(child: CComponent): void;
39
+ removeChild(index: number): CComponent | undefined;
40
+ insertChild(index: number, child: CComponent): void;
41
+ setOnChange(cb: (() => void) | undefined): void;
42
+ private handleChildChange;
43
+ private getFlexConfig;
44
+ private buildFlexChildren;
45
+ measure(ctx: CanvasRenderingContext2D): Size;
46
+ render(ctx: CanvasRenderingContext2D, bounds: Bounds): void;
47
+ hitTest(point: {
48
+ x: number;
49
+ y: number;
50
+ }, bounds: Bounds): CComponent | null;
51
+ /**
52
+ * Find a component by id recursively.
53
+ */
54
+ findById(id: string): CComponent | undefined;
55
+ serialize(): SerializedCComponent;
56
+ toSVG(bounds: Bounds): string;
57
+ }
58
+ //# sourceMappingURL=CContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CContainer.d.ts","sourceRoot":"","sources":["../../../src/elements/composite/CContainer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAA8B,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE3E,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC7B,cAAc,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC9C,UAAU,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC/B,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED;;;GAGG;AACH,qBAAa,UAAW,YAAW,UAAU;IAC3C,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IACrC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,eAAe,CAAC;IAEvB,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,SAAS,CAAC,CAAa;IAG/B,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,sBAAsB,CAAuB;gBAEzC,OAAO,GAAE,iBAAsB;IAgB3C,IAAI,SAAS,IAAI,KAAK,GAAG,QAAQ,CAEhC;IAED,IAAI,cAAc,IAAI,UAAU,CAAC,gBAAgB,CAAC,CAEjD;IAED,IAAI,UAAU,IAAI,UAAU,CAAC,YAAY,CAAC,CAEzC;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,OAAO,IAAI,MAAM,GAAG,WAAW,CAElC;IAED,IAAI,QAAQ,IAAI,SAAS,UAAU,EAAE,CAEpC;IAED,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAMjC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IASlD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAMnD,WAAW,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI;IAI/C,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,GAAG,EAAE,wBAAwB,GAAG,IAAI;IAyB5C,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAqC3D,OAAO,CACL,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAC/B,MAAM,EAAE,MAAM,GACb,UAAU,GAAG,IAAI;IAwBpB;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAmB5C,SAAS,IAAI,oBAAoB;IAqBjC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAmC9B"}
@@ -0,0 +1,37 @@
1
+ import { Bounds, Size } from '../../types';
2
+ import { CComponent, CComponentStyle, SerializedCComponent } from './CComponent';
3
+ export interface CDividerOptions {
4
+ id?: string;
5
+ color?: string;
6
+ thickness?: number;
7
+ style?: CComponentStyle;
8
+ }
9
+ /**
10
+ * A horizontal or vertical divider line for CompositeNode.
11
+ * Direction is determined by the parent container:
12
+ * - In a column container → horizontal line
13
+ * - In a row container → vertical line
14
+ */
15
+ export declare class CDivider implements CComponent {
16
+ readonly type: "divider";
17
+ readonly id?: string;
18
+ style: CComponentStyle;
19
+ private _color;
20
+ private _thickness;
21
+ private _onChange?;
22
+ constructor(options?: CDividerOptions);
23
+ get color(): string;
24
+ set color(value: string);
25
+ get thickness(): number;
26
+ set thickness(value: number);
27
+ setOnChange(cb: (() => void) | undefined): void;
28
+ measure(_ctx: CanvasRenderingContext2D): Size;
29
+ render(ctx: CanvasRenderingContext2D, bounds: Bounds): void;
30
+ hitTest(_point: {
31
+ x: number;
32
+ y: number;
33
+ }, _bounds: Bounds): CComponent | null;
34
+ serialize(): SerializedCComponent;
35
+ toSVG(bounds: Bounds): string;
36
+ }
37
+ //# sourceMappingURL=CDivider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CDivider.d.ts","sourceRoot":"","sources":["../../../src/elements/composite/CDivider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEtF,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAKD;;;;;GAKG;AACH,qBAAa,QAAS,YAAW,UAAU;IACzC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IACnC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,eAAe,CAAC;IAEvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAC,CAAa;gBAEnB,OAAO,GAAE,eAAoB;IAOzC,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAKtB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IACD,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,EAK1B;IAED,WAAW,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI;IAI/C,OAAO,CAAC,IAAI,EAAE,wBAAwB,GAAG,IAAI;IAM7C,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAyB3D,OAAO,CACL,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAChC,OAAO,EAAE,MAAM,GACd,UAAU,GAAG,IAAI;IAKpB,SAAS,IAAI,oBAAoB;IASjC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAW9B"}
@@ -0,0 +1,58 @@
1
+ import { Bounds, Size } from '../../types';
2
+ import { CComponent, CComponentStyle, SerializedCComponent } from './CComponent';
3
+ export interface CIconOptions {
4
+ id?: string;
5
+ source: string;
6
+ width?: number;
7
+ height?: number;
8
+ backgroundColor?: string;
9
+ fillColor?: string;
10
+ bindsNotationIcon?: boolean;
11
+ visible?: boolean;
12
+ onClick?: (component: CIcon) => void;
13
+ style?: CComponentStyle;
14
+ }
15
+ /**
16
+ * Lightweight SVG/image icon component for CompositeNode.
17
+ */
18
+ export declare class CIcon implements CComponent {
19
+ readonly type: "icon";
20
+ readonly id?: string;
21
+ style: CComponentStyle;
22
+ onClick?: (component: CIcon) => void;
23
+ private _source;
24
+ private _width;
25
+ private _height;
26
+ private _backgroundColor?;
27
+ private _fillColor?;
28
+ private _bindsNotationIcon;
29
+ private _image;
30
+ private _loaded;
31
+ private _onChange?;
32
+ constructor(options: CIconOptions);
33
+ get source(): string;
34
+ set source(value: string);
35
+ get width(): number;
36
+ set width(value: number);
37
+ get height(): number;
38
+ set height(value: number);
39
+ get backgroundColor(): string | undefined;
40
+ set backgroundColor(value: string | undefined);
41
+ get fillColor(): string | undefined;
42
+ set fillColor(value: string | undefined);
43
+ get loaded(): boolean;
44
+ get bindsNotationIcon(): boolean;
45
+ set bindsNotationIcon(value: boolean);
46
+ setOnChange(cb: (() => void) | undefined): void;
47
+ private loadSource;
48
+ private fetchSvg;
49
+ measure(_ctx: CanvasRenderingContext2D): Size;
50
+ render(ctx: CanvasRenderingContext2D, bounds: Bounds): void;
51
+ hitTest(point: {
52
+ x: number;
53
+ y: number;
54
+ }, bounds: Bounds): CComponent | null;
55
+ serialize(): SerializedCComponent;
56
+ toSVG(bounds: Bounds): string;
57
+ }
58
+ //# sourceMappingURL=CIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CIcon.d.ts","sourceRoot":"","sources":["../../../src/elements/composite/CIcon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAItF,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,KAAK,IAAI,CAAC;IACrC,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAOD;;GAEG;AACH,qBAAa,KAAM,YAAW,UAAU;IACtC,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;IAChC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,KAAK,IAAI,CAAC;IAErC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,kBAAkB,CAAU;IACpC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAC,CAAa;gBAEnB,OAAO,EAAE,YAAY;IAyBjC,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAOvB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAKtB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAKvB;IAED,IAAI,eAAe,IAAI,MAAM,GAAG,SAAS,CAExC;IACD,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAK5C;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IACD,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAOtC;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IACD,IAAI,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAKnC;IAED,WAAW,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI;YAIjC,UAAU;YAiBV,QAAQ;IAStB,OAAO,CAAC,IAAI,EAAE,wBAAwB,GAAG,IAAI;IAI7C,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IA2B3D,OAAO,CACL,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAC/B,MAAM,EAAE,MAAM,GACb,UAAU,GAAG,IAAI;IAapB,SAAS,IAAI,oBAAoB;IAejC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAmB9B"}
@@ -0,0 +1,51 @@
1
+ import { Bounds, Size } from '../../types';
2
+ import { CComponent, CComponentStyle, SerializedCComponent, SidesConfig } from './CComponent';
3
+ import { CContainer } from './CContainer';
4
+ export interface CShapeOptions {
5
+ id?: string;
6
+ borderColor?: string;
7
+ borderWidth?: number;
8
+ backgroundColor?: string;
9
+ cornerRadius?: number;
10
+ padding?: number | SidesConfig;
11
+ onClick?: (component: CShape) => void;
12
+ content?: CContainer;
13
+ style?: CComponentStyle;
14
+ }
15
+ /**
16
+ * A bordered box component for CompositeNode.
17
+ * Can contain a CContainer for recursive composition (e.g. UML class sections).
18
+ */
19
+ export declare class CShape implements CComponent {
20
+ readonly type: "shape";
21
+ readonly id?: string;
22
+ style: CComponentStyle;
23
+ onClick?: (component: CShape) => void;
24
+ private _borderColor?;
25
+ private _borderWidth;
26
+ private _backgroundColor?;
27
+ private _cornerRadius;
28
+ private _padding;
29
+ private _content?;
30
+ private _onChange?;
31
+ constructor(options?: CShapeOptions);
32
+ get borderColor(): string | undefined;
33
+ set borderColor(value: string | undefined);
34
+ get borderWidth(): number;
35
+ set borderWidth(value: number);
36
+ get backgroundColor(): string | undefined;
37
+ set backgroundColor(value: string | undefined);
38
+ get cornerRadius(): number;
39
+ get padding(): number | SidesConfig;
40
+ get content(): CContainer | undefined;
41
+ setOnChange(cb: (() => void) | undefined): void;
42
+ measure(ctx: CanvasRenderingContext2D): Size;
43
+ render(ctx: CanvasRenderingContext2D, bounds: Bounds): void;
44
+ hitTest(point: {
45
+ x: number;
46
+ y: number;
47
+ }, bounds: Bounds): CComponent | null;
48
+ serialize(): SerializedCComponent;
49
+ toSVG(bounds: Bounds): string;
50
+ }
51
+ //# sourceMappingURL=CShape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CShape.d.ts","sourceRoot":"","sources":["../../../src/elements/composite/CShape.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED;;;GAGG;AACH,qBAAa,MAAO,YAAW,UAAU;IACvC,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IACjC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,QAAQ,CAAC,CAAa;IAC9B,OAAO,CAAC,SAAS,CAAC,CAAa;gBAEnB,OAAO,GAAE,aAAkB;IAgBvC,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IACD,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAKxC;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IACD,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,EAK5B;IAED,IAAI,eAAe,IAAI,MAAM,GAAG,SAAS,CAExC;IACD,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAK5C;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,OAAO,IAAI,MAAM,GAAG,WAAW,CAElC;IAED,IAAI,OAAO,IAAI,UAAU,GAAG,SAAS,CAEpC;IAED,WAAW,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI;IAI/C,OAAO,CAAC,GAAG,EAAE,wBAAwB,GAAG,IAAI;IAkB5C,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAgD3D,OAAO,CACL,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAC/B,MAAM,EAAE,MAAM,GACb,UAAU,GAAG,IAAI;IA+BpB,SAAS,IAAI,oBAAoB;IAqBjC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAiC9B"}