stickyflow 0.3.0 → 0.5.0

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 (65) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +51 -5
  3. package/dist/binding/index.cjs +34 -0
  4. package/dist/binding/index.cjs.map +1 -0
  5. package/dist/binding/index.d.cts +11 -0
  6. package/dist/binding/index.d.ts +11 -0
  7. package/dist/binding/index.js +5 -0
  8. package/dist/binding/index.js.map +1 -0
  9. package/dist/{chunk-XEN5QIIJ.js → chunk-7VW2XKVB.js} +3 -3
  10. package/dist/{chunk-XEN5QIIJ.js.map → chunk-7VW2XKVB.js.map} +1 -1
  11. package/dist/chunk-BODZN3ZI.js +1182 -0
  12. package/dist/chunk-BODZN3ZI.js.map +1 -0
  13. package/dist/{chunk-CSXQD3ON.js → chunk-G7NRK5AG.js} +1128 -1081
  14. package/dist/chunk-G7NRK5AG.js.map +1 -0
  15. package/dist/{chunk-BYMIYXP5.js → chunk-IEHE6WVN.js} +197 -19
  16. package/dist/chunk-IEHE6WVN.js.map +1 -0
  17. package/dist/{chunk-HFOGKSNU.cjs → chunk-L3VJXZFD.cjs} +15 -15
  18. package/dist/{chunk-HFOGKSNU.cjs.map → chunk-L3VJXZFD.cjs.map} +1 -1
  19. package/dist/{chunk-65IVT4GK.js → chunk-LTGF5OHP.js} +1008 -631
  20. package/dist/chunk-LTGF5OHP.js.map +1 -0
  21. package/dist/chunk-TWDLOXRM.cjs +1189 -0
  22. package/dist/chunk-TWDLOXRM.cjs.map +1 -0
  23. package/dist/{chunk-UXDWH2JC.cjs → chunk-VK3T6O5Z.cjs} +1165 -1118
  24. package/dist/chunk-VK3T6O5Z.cjs.map +1 -0
  25. package/dist/{chunk-CXL254BT.cjs → chunk-XY2GZUHC.cjs} +204 -18
  26. package/dist/chunk-XY2GZUHC.cjs.map +1 -0
  27. package/dist/{chunk-DDCTNLLD.cjs → chunk-ZMLQIMJK.cjs} +1504 -1128
  28. package/dist/chunk-ZMLQIMJK.cjs.map +1 -0
  29. package/dist/index.cjs +53 -1013
  30. package/dist/index.cjs.map +1 -1
  31. package/dist/index.d.cts +22 -14
  32. package/dist/index.d.ts +22 -14
  33. package/dist/index.js +6 -993
  34. package/dist/index.js.map +1 -1
  35. package/dist/interaction/index.cjs +474 -305
  36. package/dist/interaction/index.cjs.map +1 -1
  37. package/dist/interaction/index.d.cts +11 -3
  38. package/dist/interaction/index.d.ts +11 -3
  39. package/dist/interaction/index.js +255 -87
  40. package/dist/interaction/index.js.map +1 -1
  41. package/dist/{render-C5X74hds.d.cts → render-CgX_y15a.d.cts} +193 -116
  42. package/dist/{render-C5X74hds.d.ts → render-CgX_y15a.d.ts} +193 -116
  43. package/dist/runtime-DnUxca3Y.d.ts +10 -0
  44. package/dist/runtime-reWgr7MP.d.cts +10 -0
  45. package/dist/{runtimeTypes-D8hPZ62T.d.ts → runtimeTypes-CEBGueYM.d.ts} +10 -5
  46. package/dist/{runtimeTypes-yTSAvtCn.d.cts → runtimeTypes-D60w6nyF.d.cts} +10 -5
  47. package/dist/stickyflow-diagram.global.js +35 -35
  48. package/dist/stickyflow-diagram.global.js.map +1 -1
  49. package/dist/{types-BDKDf4zr.d.cts → types-DYLC_lsk.d.ts} +3 -2
  50. package/dist/{types-CdgGdtoD.d.ts → types-DvhMpqrL.d.cts} +3 -2
  51. package/dist/viewer/index.cjs +9 -9
  52. package/dist/viewer/index.d.cts +4 -4
  53. package/dist/viewer/index.d.ts +4 -4
  54. package/dist/viewer/index.js +4 -4
  55. package/dist/web-component/index.cjs +6 -6
  56. package/dist/web-component/index.d.cts +2 -2
  57. package/dist/web-component/index.d.ts +2 -2
  58. package/dist/web-component/index.js +4 -4
  59. package/package.json +6 -1
  60. package/dist/chunk-65IVT4GK.js.map +0 -1
  61. package/dist/chunk-BYMIYXP5.js.map +0 -1
  62. package/dist/chunk-CSXQD3ON.js.map +0 -1
  63. package/dist/chunk-CXL254BT.cjs.map +0 -1
  64. package/dist/chunk-DDCTNLLD.cjs.map +0 -1
  65. package/dist/chunk-UXDWH2JC.cjs.map +0 -1
@@ -1,3 +1,143 @@
1
+ type ComponentGroup = 'readout' | 'input' | 'action' | 'navigation';
2
+ type ComponentValueType = 'number' | 'string' | 'boolean';
3
+ type ComponentValue = number | string | boolean;
4
+ type ComponentInteraction = 'none' | 'toggle' | 'press' | 'scale';
5
+ interface ComponentValueDescriptor {
6
+ type: ComponentValueType;
7
+ writable: boolean;
8
+ default: ComponentValue;
9
+ }
10
+ type ComponentPropertyDescriptor = {
11
+ type: 'number';
12
+ default: number;
13
+ min?: number;
14
+ max?: number;
15
+ step?: number;
16
+ } | {
17
+ type: 'boolean';
18
+ default: boolean;
19
+ } | {
20
+ type: 'string';
21
+ default: string;
22
+ } | {
23
+ type: 'color';
24
+ default: string;
25
+ } | {
26
+ type: 'enum';
27
+ default: string;
28
+ options: readonly string[];
29
+ };
30
+ interface ComponentSize {
31
+ width: number;
32
+ height: number;
33
+ minWidth?: number;
34
+ minHeight?: number;
35
+ aspect?: number;
36
+ }
37
+ interface ComponentDescriptor {
38
+ type: string;
39
+ group: ComponentGroup;
40
+ value?: ComponentValueDescriptor;
41
+ properties: Record<string, ComponentPropertyDescriptor>;
42
+ interaction: ComponentInteraction;
43
+ pointerScale: boolean;
44
+ size: ComponentSize;
45
+ role?: string;
46
+ }
47
+
48
+ interface RollingNumberComponentStyle {
49
+ color?: string;
50
+ surface?: string;
51
+ divider?: string;
52
+ labelColor?: string;
53
+ fontFamily?: string;
54
+ variant?: 'flip' | 'plain';
55
+ motion?: 'roll' | 'fade';
56
+ fontWeight?: string;
57
+ fontSize?: number;
58
+ }
59
+ interface RollingNumberComponent {
60
+ id: string;
61
+ type: 'rollingNumber';
62
+ value: string;
63
+ digits?: number;
64
+ duration?: number;
65
+ label?: string;
66
+ x: number;
67
+ y: number;
68
+ width: number;
69
+ height: number;
70
+ rotation?: number;
71
+ order?: number;
72
+ sourceIndex?: number;
73
+ parentFrameId?: string;
74
+ style: RollingNumberComponentStyle;
75
+ }
76
+ interface TickScaleComponent {
77
+ id: string;
78
+ type: 'tickScale';
79
+ value: string;
80
+ max?: number;
81
+ label?: string;
82
+ x: number;
83
+ y: number;
84
+ width: number;
85
+ height: number;
86
+ rotation?: number;
87
+ order?: number;
88
+ sourceIndex?: number;
89
+ parentFrameId?: string;
90
+ parameters: Record<string, string | number>;
91
+ labels?: {
92
+ size?: number;
93
+ color?: string;
94
+ offset?: number;
95
+ weight?: string;
96
+ fontFamily?: string;
97
+ };
98
+ }
99
+ interface RulerComponent {
100
+ id: string;
101
+ type: 'ruler';
102
+ value: string;
103
+ min?: number;
104
+ max?: number;
105
+ label?: string;
106
+ x: number;
107
+ y: number;
108
+ width: number;
109
+ height: number;
110
+ rotation?: number;
111
+ order?: number;
112
+ sourceIndex?: number;
113
+ parentFrameId?: string;
114
+ parameters: Record<string, string | number>;
115
+ labels?: {
116
+ size?: number;
117
+ color?: string;
118
+ offset?: number;
119
+ weight?: string;
120
+ fontFamily?: string;
121
+ };
122
+ }
123
+ interface GenericComponent {
124
+ id: string;
125
+ type: string;
126
+ value: ComponentValue;
127
+ disabled: boolean;
128
+ label?: string;
129
+ x: number;
130
+ y: number;
131
+ width: number;
132
+ height: number;
133
+ rotation?: number;
134
+ order?: number;
135
+ sourceIndex?: number;
136
+ parentFrameId?: string;
137
+ properties: Record<string, ComponentValue>;
138
+ }
139
+ type Component = RollingNumberComponent | TickScaleComponent | RulerComponent | GenericComponent;
140
+
1
141
  interface ChartZone {
2
142
  label: string;
3
143
  color?: string;
@@ -402,6 +542,41 @@ interface CustomChart extends TypedChart<'custom', CustomChartConfig> {
402
542
  }
403
543
  type Chart = BarChart | BoxplotChart | CustomChart | FieldChart | HeatmapChart | HexbinChart | LineChart | MekkoChart | PieChart | PolarAreaChart | RadarChart | RadialBarChart | RadialChart | SankeyChart | ScatterChart | TreemapChart;
404
544
 
545
+ interface Diagnostic {
546
+ severity: 'warning' | 'error';
547
+ code: string;
548
+ message: string;
549
+ ownerId?: string;
550
+ }
551
+
552
+ interface Frame {
553
+ id: string;
554
+ name?: string;
555
+ x: number;
556
+ y: number;
557
+ width: number;
558
+ height: number;
559
+ title?: string | null;
560
+ strokeColor: string;
561
+ strokeWidth: number;
562
+ dash?: number[];
563
+ cornerRadius: number;
564
+ fillColor: string;
565
+ textColor: string;
566
+ fontSize: number;
567
+ fontWeight: 'normal' | 'bold';
568
+ fontFamily?: string;
569
+ showLabel: boolean;
570
+ labelPosition?: 'top' | 'bottom' | 'left' | 'right';
571
+ shadow?: boolean;
572
+ layerGroup?: string;
573
+ orderKey?: string;
574
+ order?: number;
575
+ sourceIndex?: number;
576
+ isVisible?: boolean;
577
+ isLocked?: boolean;
578
+ }
579
+
405
580
  interface Point {
406
581
  x: number;
407
582
  y: number;
@@ -583,119 +758,6 @@ interface SymbolDef {
583
758
  }>;
584
759
  }
585
760
 
586
- type WidgetType = 'rollingNumber' | 'tickScale' | 'ruler';
587
- interface RollingNumberWidgetStyle {
588
- color?: string;
589
- surface?: string;
590
- divider?: string;
591
- labelColor?: string;
592
- fontFamily?: string;
593
- variant?: 'flip' | 'plain';
594
- motion?: 'roll' | 'fade';
595
- fontWeight?: string;
596
- fontSize?: number;
597
- }
598
- interface RollingNumberWidget {
599
- id: string;
600
- type: 'rollingNumber';
601
- value: string;
602
- digits?: number;
603
- duration?: number;
604
- label?: string;
605
- x: number;
606
- y: number;
607
- width: number;
608
- height: number;
609
- rotation?: number;
610
- order?: number;
611
- sourceIndex?: number;
612
- parentFrameId?: string;
613
- style: RollingNumberWidgetStyle;
614
- }
615
- interface TickScaleWidget {
616
- id: string;
617
- type: 'tickScale';
618
- value: string;
619
- max?: number;
620
- label?: string;
621
- x: number;
622
- y: number;
623
- width: number;
624
- height: number;
625
- rotation?: number;
626
- order?: number;
627
- sourceIndex?: number;
628
- parentFrameId?: string;
629
- parameters: Record<string, string | number>;
630
- labels?: {
631
- size?: number;
632
- color?: string;
633
- offset?: number;
634
- weight?: string;
635
- fontFamily?: string;
636
- };
637
- }
638
- interface RulerWidget {
639
- id: string;
640
- type: 'ruler';
641
- value: string;
642
- min?: number;
643
- max?: number;
644
- label?: string;
645
- x: number;
646
- y: number;
647
- width: number;
648
- height: number;
649
- rotation?: number;
650
- order?: number;
651
- sourceIndex?: number;
652
- parentFrameId?: string;
653
- parameters: Record<string, string | number>;
654
- labels?: {
655
- size?: number;
656
- color?: string;
657
- offset?: number;
658
- weight?: string;
659
- fontFamily?: string;
660
- };
661
- }
662
- type Widget = RollingNumberWidget | TickScaleWidget | RulerWidget;
663
-
664
- interface Diagnostic {
665
- severity: 'warning' | 'error';
666
- code: string;
667
- message: string;
668
- ownerId?: string;
669
- }
670
-
671
- interface Frame {
672
- id: string;
673
- name?: string;
674
- x: number;
675
- y: number;
676
- width: number;
677
- height: number;
678
- title?: string | null;
679
- strokeColor: string;
680
- strokeWidth: number;
681
- dash?: number[];
682
- cornerRadius: number;
683
- fillColor: string;
684
- textColor: string;
685
- fontSize: number;
686
- fontWeight: 'normal' | 'bold';
687
- fontFamily?: string;
688
- showLabel: boolean;
689
- labelPosition?: 'top' | 'bottom' | 'left' | 'right';
690
- shadow?: boolean;
691
- layerGroup?: string;
692
- orderKey?: string;
693
- order?: number;
694
- sourceIndex?: number;
695
- isVisible?: boolean;
696
- isLocked?: boolean;
697
- }
698
-
699
761
  interface Lane {
700
762
  id: string;
701
763
  label: string;
@@ -744,7 +806,8 @@ interface RenderInput {
744
806
  isometricObjects?: IsometricObject[];
745
807
  paths?: FreeformPath[];
746
808
  charts?: Chart[];
747
- widgets?: Widget[];
809
+ components?: Component[];
810
+ widgets?: Component[];
748
811
  links: RenderInputLink[];
749
812
  diagnostics?: Diagnostic[];
750
813
  }
@@ -809,6 +872,12 @@ interface SceneStyle {
809
872
  };
810
873
  }
811
874
  type SceneRole = 'shape' | 'link' | 'frame' | 'swimlane' | 'path' | 'chart' | 'widget' | 'isometric';
875
+ interface SceneAria {
876
+ role: string;
877
+ checked?: boolean;
878
+ pressed?: boolean;
879
+ disabled?: boolean;
880
+ }
812
881
  interface SceneIdentity {
813
882
  role: SceneRole;
814
883
  id: string;
@@ -816,6 +885,7 @@ interface SceneIdentity {
816
885
  primary?: boolean;
817
886
  label?: string;
818
887
  parentFrameId?: string;
888
+ aria?: SceneAria;
819
889
  }
820
890
  interface SceneLinkSegment {
821
891
  ax: number;
@@ -997,7 +1067,7 @@ interface SceneRollingNumber extends SceneBase {
997
1067
  digits?: number;
998
1068
  duration: number;
999
1069
  label?: string;
1000
- widgetStyle: Required<RollingNumberWidgetStyle>;
1070
+ componentStyle: Required<RollingNumberComponentStyle>;
1001
1071
  }
1002
1072
  interface SceneImage extends SceneBase {
1003
1073
  type: 'image';
@@ -1037,5 +1107,12 @@ interface RenderOptions {
1037
1107
  }
1038
1108
  declare function renderCanvas(input: RenderInput, options?: RenderOptions): RenderResult;
1039
1109
  declare function render(source: string, options?: RenderOptions): RenderResult;
1110
+ interface ComponentSceneContext {
1111
+ order: number;
1112
+ }
1113
+ interface ComponentDefinition extends ComponentDescriptor {
1114
+ scene(component: GenericComponent, context: ComponentSceneContext): RenderNode[];
1115
+ }
1116
+ declare function defineComponent(definition: ComponentDefinition): () => void;
1040
1117
 
1041
- export { renderCanvas as A, type Bounds as B, type Chart as C, type Diagnostic as D, type Side as E, type Frame as F, type IsometricFace as I, type LinkStyle as L, type MeasureTextFactory as M, type PathPoint as P, type RenderInput as R, type Shader as S, type TextMetrics as T, type Widget as W, type ShadowStyle as a, type Shape as b, type Link as c, type Swimlane as d, type IsometricObject as e, type FreeformPath as f, type RenderOptions as g, type RenderResult as h, CHART_TYPES as i, type ChartAxis as j, type ChartRamp as k, type ChartSeries as l, type ChartType as m, type Point as n, type RenderDiagnostic as o, type RenderNode as p, type RenderScene as q, type RollingNumberWidget as r, type RollingNumberWidgetStyle as s, type RulerWidget as t, type SceneRole as u, type ShaderParameter as v, type ShapeType as w, type TickScaleWidget as x, type WidgetType as y, render as z };
1118
+ export { type RenderDiagnostic as A, type Bounds as B, type Component as C, type Diagnostic as D, type RenderNode as E, type Frame as F, type GenericComponent as G, type RenderOptions as H, type IsometricFace as I, type RenderResult as J, type RenderScene as K, type LinkStyle as L, type MeasureTextFactory as M, type SceneRole as N, type ShaderParameter as O, type PathPoint as P, type ShapeType as Q, type RollingNumberComponent as R, type Shader as S, type TickScaleComponent as T, type TextMetrics as U, defineComponent as V, render as W, renderCanvas as X, type Side as Y, type ComponentDescriptor as a, type RollingNumberComponentStyle as b, type RulerComponent as c, type RenderInput as d, type ShadowStyle as e, type Shape as f, type Link as g, type Swimlane as h, type IsometricObject as i, type FreeformPath as j, type Chart as k, CHART_TYPES as l, type ChartAxis as m, type ChartRamp as n, type ChartSeries as o, type ChartType as p, type ComponentDefinition as q, type ComponentGroup as r, type ComponentInteraction as s, type ComponentPropertyDescriptor as t, type ComponentSceneContext as u, type ComponentSize as v, type ComponentValue as w, type ComponentValueDescriptor as x, type ComponentValueType as y, type Point as z };
@@ -1,3 +1,143 @@
1
+ type ComponentGroup = 'readout' | 'input' | 'action' | 'navigation';
2
+ type ComponentValueType = 'number' | 'string' | 'boolean';
3
+ type ComponentValue = number | string | boolean;
4
+ type ComponentInteraction = 'none' | 'toggle' | 'press' | 'scale';
5
+ interface ComponentValueDescriptor {
6
+ type: ComponentValueType;
7
+ writable: boolean;
8
+ default: ComponentValue;
9
+ }
10
+ type ComponentPropertyDescriptor = {
11
+ type: 'number';
12
+ default: number;
13
+ min?: number;
14
+ max?: number;
15
+ step?: number;
16
+ } | {
17
+ type: 'boolean';
18
+ default: boolean;
19
+ } | {
20
+ type: 'string';
21
+ default: string;
22
+ } | {
23
+ type: 'color';
24
+ default: string;
25
+ } | {
26
+ type: 'enum';
27
+ default: string;
28
+ options: readonly string[];
29
+ };
30
+ interface ComponentSize {
31
+ width: number;
32
+ height: number;
33
+ minWidth?: number;
34
+ minHeight?: number;
35
+ aspect?: number;
36
+ }
37
+ interface ComponentDescriptor {
38
+ type: string;
39
+ group: ComponentGroup;
40
+ value?: ComponentValueDescriptor;
41
+ properties: Record<string, ComponentPropertyDescriptor>;
42
+ interaction: ComponentInteraction;
43
+ pointerScale: boolean;
44
+ size: ComponentSize;
45
+ role?: string;
46
+ }
47
+
48
+ interface RollingNumberComponentStyle {
49
+ color?: string;
50
+ surface?: string;
51
+ divider?: string;
52
+ labelColor?: string;
53
+ fontFamily?: string;
54
+ variant?: 'flip' | 'plain';
55
+ motion?: 'roll' | 'fade';
56
+ fontWeight?: string;
57
+ fontSize?: number;
58
+ }
59
+ interface RollingNumberComponent {
60
+ id: string;
61
+ type: 'rollingNumber';
62
+ value: string;
63
+ digits?: number;
64
+ duration?: number;
65
+ label?: string;
66
+ x: number;
67
+ y: number;
68
+ width: number;
69
+ height: number;
70
+ rotation?: number;
71
+ order?: number;
72
+ sourceIndex?: number;
73
+ parentFrameId?: string;
74
+ style: RollingNumberComponentStyle;
75
+ }
76
+ interface TickScaleComponent {
77
+ id: string;
78
+ type: 'tickScale';
79
+ value: string;
80
+ max?: number;
81
+ label?: string;
82
+ x: number;
83
+ y: number;
84
+ width: number;
85
+ height: number;
86
+ rotation?: number;
87
+ order?: number;
88
+ sourceIndex?: number;
89
+ parentFrameId?: string;
90
+ parameters: Record<string, string | number>;
91
+ labels?: {
92
+ size?: number;
93
+ color?: string;
94
+ offset?: number;
95
+ weight?: string;
96
+ fontFamily?: string;
97
+ };
98
+ }
99
+ interface RulerComponent {
100
+ id: string;
101
+ type: 'ruler';
102
+ value: string;
103
+ min?: number;
104
+ max?: number;
105
+ label?: string;
106
+ x: number;
107
+ y: number;
108
+ width: number;
109
+ height: number;
110
+ rotation?: number;
111
+ order?: number;
112
+ sourceIndex?: number;
113
+ parentFrameId?: string;
114
+ parameters: Record<string, string | number>;
115
+ labels?: {
116
+ size?: number;
117
+ color?: string;
118
+ offset?: number;
119
+ weight?: string;
120
+ fontFamily?: string;
121
+ };
122
+ }
123
+ interface GenericComponent {
124
+ id: string;
125
+ type: string;
126
+ value: ComponentValue;
127
+ disabled: boolean;
128
+ label?: string;
129
+ x: number;
130
+ y: number;
131
+ width: number;
132
+ height: number;
133
+ rotation?: number;
134
+ order?: number;
135
+ sourceIndex?: number;
136
+ parentFrameId?: string;
137
+ properties: Record<string, ComponentValue>;
138
+ }
139
+ type Component = RollingNumberComponent | TickScaleComponent | RulerComponent | GenericComponent;
140
+
1
141
  interface ChartZone {
2
142
  label: string;
3
143
  color?: string;
@@ -402,6 +542,41 @@ interface CustomChart extends TypedChart<'custom', CustomChartConfig> {
402
542
  }
403
543
  type Chart = BarChart | BoxplotChart | CustomChart | FieldChart | HeatmapChart | HexbinChart | LineChart | MekkoChart | PieChart | PolarAreaChart | RadarChart | RadialBarChart | RadialChart | SankeyChart | ScatterChart | TreemapChart;
404
544
 
545
+ interface Diagnostic {
546
+ severity: 'warning' | 'error';
547
+ code: string;
548
+ message: string;
549
+ ownerId?: string;
550
+ }
551
+
552
+ interface Frame {
553
+ id: string;
554
+ name?: string;
555
+ x: number;
556
+ y: number;
557
+ width: number;
558
+ height: number;
559
+ title?: string | null;
560
+ strokeColor: string;
561
+ strokeWidth: number;
562
+ dash?: number[];
563
+ cornerRadius: number;
564
+ fillColor: string;
565
+ textColor: string;
566
+ fontSize: number;
567
+ fontWeight: 'normal' | 'bold';
568
+ fontFamily?: string;
569
+ showLabel: boolean;
570
+ labelPosition?: 'top' | 'bottom' | 'left' | 'right';
571
+ shadow?: boolean;
572
+ layerGroup?: string;
573
+ orderKey?: string;
574
+ order?: number;
575
+ sourceIndex?: number;
576
+ isVisible?: boolean;
577
+ isLocked?: boolean;
578
+ }
579
+
405
580
  interface Point {
406
581
  x: number;
407
582
  y: number;
@@ -583,119 +758,6 @@ interface SymbolDef {
583
758
  }>;
584
759
  }
585
760
 
586
- type WidgetType = 'rollingNumber' | 'tickScale' | 'ruler';
587
- interface RollingNumberWidgetStyle {
588
- color?: string;
589
- surface?: string;
590
- divider?: string;
591
- labelColor?: string;
592
- fontFamily?: string;
593
- variant?: 'flip' | 'plain';
594
- motion?: 'roll' | 'fade';
595
- fontWeight?: string;
596
- fontSize?: number;
597
- }
598
- interface RollingNumberWidget {
599
- id: string;
600
- type: 'rollingNumber';
601
- value: string;
602
- digits?: number;
603
- duration?: number;
604
- label?: string;
605
- x: number;
606
- y: number;
607
- width: number;
608
- height: number;
609
- rotation?: number;
610
- order?: number;
611
- sourceIndex?: number;
612
- parentFrameId?: string;
613
- style: RollingNumberWidgetStyle;
614
- }
615
- interface TickScaleWidget {
616
- id: string;
617
- type: 'tickScale';
618
- value: string;
619
- max?: number;
620
- label?: string;
621
- x: number;
622
- y: number;
623
- width: number;
624
- height: number;
625
- rotation?: number;
626
- order?: number;
627
- sourceIndex?: number;
628
- parentFrameId?: string;
629
- parameters: Record<string, string | number>;
630
- labels?: {
631
- size?: number;
632
- color?: string;
633
- offset?: number;
634
- weight?: string;
635
- fontFamily?: string;
636
- };
637
- }
638
- interface RulerWidget {
639
- id: string;
640
- type: 'ruler';
641
- value: string;
642
- min?: number;
643
- max?: number;
644
- label?: string;
645
- x: number;
646
- y: number;
647
- width: number;
648
- height: number;
649
- rotation?: number;
650
- order?: number;
651
- sourceIndex?: number;
652
- parentFrameId?: string;
653
- parameters: Record<string, string | number>;
654
- labels?: {
655
- size?: number;
656
- color?: string;
657
- offset?: number;
658
- weight?: string;
659
- fontFamily?: string;
660
- };
661
- }
662
- type Widget = RollingNumberWidget | TickScaleWidget | RulerWidget;
663
-
664
- interface Diagnostic {
665
- severity: 'warning' | 'error';
666
- code: string;
667
- message: string;
668
- ownerId?: string;
669
- }
670
-
671
- interface Frame {
672
- id: string;
673
- name?: string;
674
- x: number;
675
- y: number;
676
- width: number;
677
- height: number;
678
- title?: string | null;
679
- strokeColor: string;
680
- strokeWidth: number;
681
- dash?: number[];
682
- cornerRadius: number;
683
- fillColor: string;
684
- textColor: string;
685
- fontSize: number;
686
- fontWeight: 'normal' | 'bold';
687
- fontFamily?: string;
688
- showLabel: boolean;
689
- labelPosition?: 'top' | 'bottom' | 'left' | 'right';
690
- shadow?: boolean;
691
- layerGroup?: string;
692
- orderKey?: string;
693
- order?: number;
694
- sourceIndex?: number;
695
- isVisible?: boolean;
696
- isLocked?: boolean;
697
- }
698
-
699
761
  interface Lane {
700
762
  id: string;
701
763
  label: string;
@@ -744,7 +806,8 @@ interface RenderInput {
744
806
  isometricObjects?: IsometricObject[];
745
807
  paths?: FreeformPath[];
746
808
  charts?: Chart[];
747
- widgets?: Widget[];
809
+ components?: Component[];
810
+ widgets?: Component[];
748
811
  links: RenderInputLink[];
749
812
  diagnostics?: Diagnostic[];
750
813
  }
@@ -809,6 +872,12 @@ interface SceneStyle {
809
872
  };
810
873
  }
811
874
  type SceneRole = 'shape' | 'link' | 'frame' | 'swimlane' | 'path' | 'chart' | 'widget' | 'isometric';
875
+ interface SceneAria {
876
+ role: string;
877
+ checked?: boolean;
878
+ pressed?: boolean;
879
+ disabled?: boolean;
880
+ }
812
881
  interface SceneIdentity {
813
882
  role: SceneRole;
814
883
  id: string;
@@ -816,6 +885,7 @@ interface SceneIdentity {
816
885
  primary?: boolean;
817
886
  label?: string;
818
887
  parentFrameId?: string;
888
+ aria?: SceneAria;
819
889
  }
820
890
  interface SceneLinkSegment {
821
891
  ax: number;
@@ -997,7 +1067,7 @@ interface SceneRollingNumber extends SceneBase {
997
1067
  digits?: number;
998
1068
  duration: number;
999
1069
  label?: string;
1000
- widgetStyle: Required<RollingNumberWidgetStyle>;
1070
+ componentStyle: Required<RollingNumberComponentStyle>;
1001
1071
  }
1002
1072
  interface SceneImage extends SceneBase {
1003
1073
  type: 'image';
@@ -1037,5 +1107,12 @@ interface RenderOptions {
1037
1107
  }
1038
1108
  declare function renderCanvas(input: RenderInput, options?: RenderOptions): RenderResult;
1039
1109
  declare function render(source: string, options?: RenderOptions): RenderResult;
1110
+ interface ComponentSceneContext {
1111
+ order: number;
1112
+ }
1113
+ interface ComponentDefinition extends ComponentDescriptor {
1114
+ scene(component: GenericComponent, context: ComponentSceneContext): RenderNode[];
1115
+ }
1116
+ declare function defineComponent(definition: ComponentDefinition): () => void;
1040
1117
 
1041
- export { renderCanvas as A, type Bounds as B, type Chart as C, type Diagnostic as D, type Side as E, type Frame as F, type IsometricFace as I, type LinkStyle as L, type MeasureTextFactory as M, type PathPoint as P, type RenderInput as R, type Shader as S, type TextMetrics as T, type Widget as W, type ShadowStyle as a, type Shape as b, type Link as c, type Swimlane as d, type IsometricObject as e, type FreeformPath as f, type RenderOptions as g, type RenderResult as h, CHART_TYPES as i, type ChartAxis as j, type ChartRamp as k, type ChartSeries as l, type ChartType as m, type Point as n, type RenderDiagnostic as o, type RenderNode as p, type RenderScene as q, type RollingNumberWidget as r, type RollingNumberWidgetStyle as s, type RulerWidget as t, type SceneRole as u, type ShaderParameter as v, type ShapeType as w, type TickScaleWidget as x, type WidgetType as y, render as z };
1118
+ export { type RenderDiagnostic as A, type Bounds as B, type Component as C, type Diagnostic as D, type RenderNode as E, type Frame as F, type GenericComponent as G, type RenderOptions as H, type IsometricFace as I, type RenderResult as J, type RenderScene as K, type LinkStyle as L, type MeasureTextFactory as M, type SceneRole as N, type ShaderParameter as O, type PathPoint as P, type ShapeType as Q, type RollingNumberComponent as R, type Shader as S, type TickScaleComponent as T, type TextMetrics as U, defineComponent as V, render as W, renderCanvas as X, type Side as Y, type ComponentDescriptor as a, type RollingNumberComponentStyle as b, type RulerComponent as c, type RenderInput as d, type ShadowStyle as e, type Shape as f, type Link as g, type Swimlane as h, type IsometricObject as i, type FreeformPath as j, type Chart as k, CHART_TYPES as l, type ChartAxis as m, type ChartRamp as n, type ChartSeries as o, type ChartType as p, type ComponentDefinition as q, type ComponentGroup as r, type ComponentInteraction as s, type ComponentPropertyDescriptor as t, type ComponentSceneContext as u, type ComponentSize as v, type ComponentValue as w, type ComponentValueDescriptor as x, type ComponentValueType as y, type Point as z };