imxc 0.5.4 → 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.
package/dist/ir.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type IRType = 'int' | 'float' | 'bool' | 'string' | 'color';
1
+ export type IRType = 'int' | 'float' | 'bool' | 'string' | 'color' | 'int_array';
2
2
  export interface SourceLoc {
3
3
  file: string;
4
4
  line: number;
@@ -7,6 +7,17 @@ export interface IRExpr {
7
7
  code: string;
8
8
  type: IRType;
9
9
  }
10
+ export interface IRItemInteraction {
11
+ autoFocus?: string;
12
+ tooltip?: string;
13
+ scrollToHere?: string;
14
+ cursor?: string;
15
+ onHover?: string[];
16
+ onActive?: string[];
17
+ onFocused?: string[];
18
+ onClicked?: string[];
19
+ onDoubleClicked?: string[];
20
+ }
10
21
  export interface IRComponent {
11
22
  name: string;
12
23
  stateSlots: IRStateSlot[];
@@ -24,24 +35,103 @@ export interface IRStateSlot {
24
35
  }
25
36
  export interface IRPropParam {
26
37
  name: string;
27
- type: IRType | 'callback';
38
+ type: string | 'callback';
28
39
  }
29
- export type IRNode = IRBeginContainer | IREndContainer | IRText | IRButton | IRTextInput | IRCheckbox | IRSeparator | IRBeginPopup | IREndPopup | IROpenPopup | IRConditional | IRListMap | IRCustomComponent | IRMenuItem | IRSliderFloat | IRSliderInt | IRDragFloat | IRDragInt | IRCombo | IRInputInt | IRInputFloat | IRColorEdit | IRListBox | IRProgressBar | IRTooltip | IRDockLayout | IRNativeWidget | IRBulletText | IRLabelText | IRSelectable | IRRadio | IRInputTextMultiline | IRColorPicker | IRPlotLines | IRPlotHistogram | IRImage | IRDrawLine | IRDrawRect | IRDrawCircle | IRDrawText;
40
+ export type IRNode = IRBeginContainer | IREndContainer | IRText | IRButton | IRTextInput | IRCheckbox | IRSeparator | IRSpacing | IRDummy | IRSameLine | IRNewLine | IRCursor | IRBeginPopup | IREndPopup | IROpenPopup | IRConditional | IRListMap | IRCustomComponent | IRMenuItem | IRBeginTable | IREndTable | IRBeginTableRow | IREndTableRow | IRBeginTableCell | IREndTableCell | IRBeginTreeNode | IREndTreeNode | IRBeginCollapsingHeader | IREndCollapsingHeader | IRSliderFloat | IRSliderInt | IRDragFloat | IRDragInt | IRCombo | IRInputInt | IRInputFloat | IRColorEdit | IRListBox | IRProgressBar | IRTooltip | IRShortcut | IRDockLayout | IRNativeWidget | IRBulletText | IRLabelText | IRSelectable | IRRadio | IRInputTextMultiline | IRColorPicker | IRColorEdit3 | IRColorPicker3 | IRPlotLines | IRPlotHistogram | IRImage | IRDrawLine | IRDrawRect | IRDrawCircle | IRDrawText | IRDrawBezierCubic | IRDrawBezierQuadratic | IRDrawPolyline | IRDrawConvexPolyFilled | IRDrawNgon | IRDrawNgonFilled | IRDrawTriangle | IRInputFloatN | IRInputIntN | IRDragFloatN | IRDragIntN | IRSliderFloatN | IRSliderIntN | IRSmallButton | IRArrowButton | IRInvisibleButton | IRImageButton | IRVSliderFloat | IRVSliderInt | IRSliderAngle | IRBeginCombo | IREndCombo | IRBullet | IRBeginListBox | IREndListBox;
30
41
  export interface IRBeginContainer {
31
42
  kind: 'begin_container';
32
- tag: 'Window' | 'View' | 'Row' | 'Column' | 'DockSpace' | 'MenuBar' | 'Menu' | 'Table' | 'TableRow' | 'TabBar' | 'TabItem' | 'TreeNode' | 'CollapsingHeader' | 'Theme' | 'DockLayout' | 'DockSplit' | 'DockPanel' | 'Modal' | 'Group' | 'ID' | 'StyleColor' | 'StyleVar' | 'DragDropSource' | 'DragDropTarget' | 'Canvas' | 'Disabled' | 'Child';
43
+ tag: 'Window' | 'View' | 'Indent' | 'TextWrap' | 'Row' | 'Column' | 'DockSpace' | 'MainMenuBar' | 'MenuBar' | 'Menu' | 'TabBar' | 'TabItem' | 'Theme' | 'DockLayout' | 'DockSplit' | 'DockPanel' | 'Modal' | 'Group' | 'ID' | 'StyleColor' | 'StyleVar' | 'DragDropSource' | 'DragDropTarget' | 'Canvas' | 'Disabled' | 'Child' | 'Font' | 'ContextMenu' | 'MultiSelect';
33
44
  props: Record<string, string>;
34
45
  style?: string;
35
46
  loc?: SourceLoc;
36
47
  }
37
48
  export interface IREndContainer {
38
49
  kind: 'end_container';
39
- tag: 'Window' | 'View' | 'Row' | 'Column' | 'DockSpace' | 'MenuBar' | 'Menu' | 'Table' | 'TableRow' | 'TabBar' | 'TabItem' | 'TreeNode' | 'CollapsingHeader' | 'Theme' | 'DockLayout' | 'DockSplit' | 'DockPanel' | 'Modal' | 'Group' | 'ID' | 'StyleColor' | 'StyleVar' | 'DragDropSource' | 'DragDropTarget' | 'Canvas' | 'Disabled' | 'Child';
50
+ tag: 'Window' | 'View' | 'Indent' | 'TextWrap' | 'Row' | 'Column' | 'DockSpace' | 'MainMenuBar' | 'MenuBar' | 'Menu' | 'TabBar' | 'TabItem' | 'Theme' | 'DockLayout' | 'DockSplit' | 'DockPanel' | 'Modal' | 'Group' | 'ID' | 'StyleColor' | 'StyleVar' | 'DragDropSource' | 'DragDropTarget' | 'Canvas' | 'Disabled' | 'Child' | 'Font' | 'ContextMenu' | 'MultiSelect';
51
+ }
52
+ export interface IRTableColumn {
53
+ label: string;
54
+ defaultHide?: string;
55
+ preferSortAscending?: string;
56
+ preferSortDescending?: string;
57
+ noResize?: string;
58
+ fixedWidth?: string;
59
+ }
60
+ export interface IRBeginTable {
61
+ kind: 'begin_table';
62
+ columns: IRTableColumn[];
63
+ sortable?: string;
64
+ hideable?: string;
65
+ multiSortable?: string;
66
+ noClip?: string;
67
+ padOuterX?: string;
68
+ scrollX?: string;
69
+ scrollY?: string;
70
+ noBorders?: string;
71
+ noRowBg?: string;
72
+ onSortBody?: string;
73
+ onSortParam?: string;
74
+ style?: string;
75
+ loc?: SourceLoc;
76
+ }
77
+ export interface IREndTable {
78
+ kind: 'end_table';
79
+ }
80
+ export interface IRBeginTableRow {
81
+ kind: 'begin_table_row';
82
+ bgColor?: string;
83
+ loc?: SourceLoc;
84
+ }
85
+ export interface IREndTableRow {
86
+ kind: 'end_table_row';
87
+ }
88
+ export interface IRBeginTableCell {
89
+ kind: 'begin_table_cell';
90
+ columnIndex?: string;
91
+ bgColor?: string;
92
+ loc?: SourceLoc;
93
+ }
94
+ export interface IREndTableCell {
95
+ kind: 'end_table_cell';
96
+ }
97
+ export interface IRBeginTreeNode {
98
+ kind: 'begin_tree_node';
99
+ label: string;
100
+ defaultOpen?: string;
101
+ forceOpen?: string;
102
+ openOnArrow?: string;
103
+ openOnDoubleClick?: string;
104
+ leaf?: string;
105
+ bullet?: string;
106
+ noTreePushOnOpen?: string;
107
+ item?: IRItemInteraction;
108
+ loc?: SourceLoc;
109
+ }
110
+ export interface IREndTreeNode {
111
+ kind: 'end_tree_node';
112
+ noTreePushOnOpen?: string;
113
+ }
114
+ export interface IRBeginCollapsingHeader {
115
+ kind: 'begin_collapsing_header';
116
+ label: string;
117
+ defaultOpen?: string;
118
+ forceOpen?: string;
119
+ closable?: string;
120
+ onCloseBody?: string;
121
+ item?: IRItemInteraction;
122
+ loc?: SourceLoc;
123
+ }
124
+ export interface IREndCollapsingHeader {
125
+ kind: 'end_collapsing_header';
126
+ closable?: string;
40
127
  }
41
128
  export interface IRText {
42
129
  kind: 'text';
43
130
  format: string;
44
131
  args: string[];
132
+ color?: string;
133
+ disabled?: boolean;
134
+ wrapped?: boolean;
45
135
  loc?: SourceLoc;
46
136
  }
47
137
  export interface IRButton {
@@ -50,6 +140,7 @@ export interface IRButton {
50
140
  action: string[];
51
141
  disabled?: boolean;
52
142
  style?: string;
143
+ item?: IRItemInteraction;
53
144
  loc?: SourceLoc;
54
145
  }
55
146
  export interface IRTextInput {
@@ -60,7 +151,9 @@ export interface IRTextInput {
60
151
  valueExpr?: string;
61
152
  onChangeExpr?: string;
62
153
  directBind?: boolean;
154
+ width?: string;
63
155
  style?: string;
156
+ item?: IRItemInteraction;
64
157
  loc?: SourceLoc;
65
158
  }
66
159
  export interface IRCheckbox {
@@ -71,12 +164,39 @@ export interface IRCheckbox {
71
164
  onChangeExpr?: string;
72
165
  directBind?: boolean;
73
166
  style?: string;
167
+ item?: IRItemInteraction;
74
168
  loc?: SourceLoc;
75
169
  }
76
170
  export interface IRSeparator {
77
171
  kind: 'separator';
78
172
  loc?: SourceLoc;
79
173
  }
174
+ export interface IRSpacing {
175
+ kind: 'spacing';
176
+ loc?: SourceLoc;
177
+ }
178
+ export interface IRDummy {
179
+ kind: 'dummy';
180
+ width: string;
181
+ height: string;
182
+ loc?: SourceLoc;
183
+ }
184
+ export interface IRSameLine {
185
+ kind: 'same_line';
186
+ offset: string;
187
+ spacing: string;
188
+ loc?: SourceLoc;
189
+ }
190
+ export interface IRNewLine {
191
+ kind: 'new_line';
192
+ loc?: SourceLoc;
193
+ }
194
+ export interface IRCursor {
195
+ kind: 'cursor';
196
+ x: string;
197
+ y: string;
198
+ loc?: SourceLoc;
199
+ }
80
200
  export interface IRBeginPopup {
81
201
  kind: 'begin_popup';
82
202
  id: string;
@@ -125,6 +245,7 @@ export interface IRMenuItem {
125
245
  label: string;
126
246
  shortcut?: string;
127
247
  action: string[];
248
+ item?: IRItemInteraction;
128
249
  loc?: SourceLoc;
129
250
  }
130
251
  export interface IRSliderFloat {
@@ -136,7 +257,9 @@ export interface IRSliderFloat {
136
257
  directBind?: boolean;
137
258
  min: string;
138
259
  max: string;
260
+ width?: string;
139
261
  style?: string;
262
+ item?: IRItemInteraction;
140
263
  loc?: SourceLoc;
141
264
  }
142
265
  export interface IRSliderInt {
@@ -148,7 +271,9 @@ export interface IRSliderInt {
148
271
  directBind?: boolean;
149
272
  min: string;
150
273
  max: string;
274
+ width?: string;
151
275
  style?: string;
276
+ item?: IRItemInteraction;
152
277
  loc?: SourceLoc;
153
278
  }
154
279
  export interface IRDragFloat {
@@ -159,7 +284,9 @@ export interface IRDragFloat {
159
284
  onChangeExpr?: string;
160
285
  directBind?: boolean;
161
286
  speed: string;
287
+ width?: string;
162
288
  style?: string;
289
+ item?: IRItemInteraction;
163
290
  loc?: SourceLoc;
164
291
  }
165
292
  export interface IRDragInt {
@@ -170,7 +297,9 @@ export interface IRDragInt {
170
297
  onChangeExpr?: string;
171
298
  directBind?: boolean;
172
299
  speed: string;
300
+ width?: string;
173
301
  style?: string;
302
+ item?: IRItemInteraction;
174
303
  loc?: SourceLoc;
175
304
  }
176
305
  export interface IRCombo {
@@ -181,7 +310,9 @@ export interface IRCombo {
181
310
  onChangeExpr?: string;
182
311
  directBind?: boolean;
183
312
  items: string;
313
+ width?: string;
184
314
  style?: string;
315
+ item?: IRItemInteraction;
185
316
  loc?: SourceLoc;
186
317
  }
187
318
  export interface IRInputInt {
@@ -191,7 +322,9 @@ export interface IRInputInt {
191
322
  valueExpr?: string;
192
323
  onChangeExpr?: string;
193
324
  directBind?: boolean;
325
+ width?: string;
194
326
  style?: string;
327
+ item?: IRItemInteraction;
195
328
  loc?: SourceLoc;
196
329
  }
197
330
  export interface IRInputFloat {
@@ -201,7 +334,9 @@ export interface IRInputFloat {
201
334
  valueExpr?: string;
202
335
  onChangeExpr?: string;
203
336
  directBind?: boolean;
337
+ width?: string;
204
338
  style?: string;
339
+ item?: IRItemInteraction;
205
340
  loc?: SourceLoc;
206
341
  }
207
342
  export interface IRColorEdit {
@@ -211,7 +346,9 @@ export interface IRColorEdit {
211
346
  valueExpr?: string;
212
347
  onChangeExpr?: string;
213
348
  directBind?: boolean;
349
+ width?: string;
214
350
  style?: string;
351
+ item?: IRItemInteraction;
215
352
  loc?: SourceLoc;
216
353
  }
217
354
  export interface IRListBox {
@@ -222,7 +359,9 @@ export interface IRListBox {
222
359
  onChangeExpr?: string;
223
360
  directBind?: boolean;
224
361
  items: string;
362
+ width?: string;
225
363
  style?: string;
364
+ item?: IRItemInteraction;
226
365
  loc?: SourceLoc;
227
366
  }
228
367
  export interface IRProgressBar {
@@ -237,6 +376,12 @@ export interface IRTooltip {
237
376
  text: string;
238
377
  loc?: SourceLoc;
239
378
  }
379
+ export interface IRShortcut {
380
+ kind: 'shortcut';
381
+ keys: string;
382
+ action: string[];
383
+ loc?: SourceLoc;
384
+ }
240
385
  export interface IRNativeWidget {
241
386
  kind: 'native_widget';
242
387
  name: string;
@@ -262,7 +407,10 @@ export interface IRSelectable {
262
407
  label: string;
263
408
  selected: string;
264
409
  action: string[];
410
+ selectionIndex?: string;
411
+ flags?: string;
265
412
  style?: string;
413
+ item?: IRItemInteraction;
266
414
  loc?: SourceLoc;
267
415
  }
268
416
  export interface IRRadio {
@@ -274,6 +422,7 @@ export interface IRRadio {
274
422
  directBind?: boolean;
275
423
  index: string;
276
424
  style?: string;
425
+ item?: IRItemInteraction;
277
426
  loc?: SourceLoc;
278
427
  }
279
428
  export interface IRInputTextMultiline {
@@ -281,7 +430,12 @@ export interface IRInputTextMultiline {
281
430
  label: string;
282
431
  bufferIndex: number;
283
432
  stateVar: string;
433
+ valueExpr?: string;
434
+ onChangeExpr?: string;
435
+ directBind?: boolean;
436
+ width?: string;
284
437
  style?: string;
438
+ item?: IRItemInteraction;
285
439
  loc?: SourceLoc;
286
440
  }
287
441
  export interface IRColorPicker {
@@ -292,6 +446,31 @@ export interface IRColorPicker {
292
446
  onChangeExpr?: string;
293
447
  directBind?: boolean;
294
448
  style?: string;
449
+ item?: IRItemInteraction;
450
+ loc?: SourceLoc;
451
+ }
452
+ export interface IRColorEdit3 {
453
+ kind: 'color_edit3';
454
+ label: string;
455
+ stateVar: string;
456
+ valueExpr?: string;
457
+ onChangeExpr?: string;
458
+ directBind?: boolean;
459
+ width?: string;
460
+ style?: string;
461
+ item?: IRItemInteraction;
462
+ loc?: SourceLoc;
463
+ }
464
+ export interface IRColorPicker3 {
465
+ kind: 'color_picker3';
466
+ label: string;
467
+ stateVar: string;
468
+ valueExpr?: string;
469
+ onChangeExpr?: string;
470
+ directBind?: boolean;
471
+ width?: string;
472
+ style?: string;
473
+ item?: IRItemInteraction;
295
474
  loc?: SourceLoc;
296
475
  }
297
476
  export interface IRPlotLines {
@@ -353,6 +532,259 @@ export interface IRDrawText {
353
532
  color: string;
354
533
  loc?: SourceLoc;
355
534
  }
535
+ export interface IRDrawBezierCubic {
536
+ kind: 'draw_bezier_cubic';
537
+ p1: string;
538
+ p2: string;
539
+ p3: string;
540
+ p4: string;
541
+ color: string;
542
+ thickness: string;
543
+ segments: string;
544
+ loc?: SourceLoc;
545
+ }
546
+ export interface IRDrawBezierQuadratic {
547
+ kind: 'draw_bezier_quadratic';
548
+ p1: string;
549
+ p2: string;
550
+ p3: string;
551
+ color: string;
552
+ thickness: string;
553
+ segments: string;
554
+ loc?: SourceLoc;
555
+ }
556
+ export interface IRDrawPolyline {
557
+ kind: 'draw_polyline';
558
+ points: string;
559
+ color: string;
560
+ thickness: string;
561
+ closed: string;
562
+ loc?: SourceLoc;
563
+ }
564
+ export interface IRDrawConvexPolyFilled {
565
+ kind: 'draw_convex_poly_filled';
566
+ points: string;
567
+ color: string;
568
+ loc?: SourceLoc;
569
+ }
570
+ export interface IRDrawNgon {
571
+ kind: 'draw_ngon';
572
+ center: string;
573
+ radius: string;
574
+ color: string;
575
+ numSegments: string;
576
+ thickness: string;
577
+ loc?: SourceLoc;
578
+ }
579
+ export interface IRDrawNgonFilled {
580
+ kind: 'draw_ngon_filled';
581
+ center: string;
582
+ radius: string;
583
+ color: string;
584
+ numSegments: string;
585
+ loc?: SourceLoc;
586
+ }
587
+ export interface IRDrawTriangle {
588
+ kind: 'draw_triangle';
589
+ p1: string;
590
+ p2: string;
591
+ p3: string;
592
+ color: string;
593
+ filled: string;
594
+ thickness: string;
595
+ loc?: SourceLoc;
596
+ }
597
+ export interface IRInputFloatN {
598
+ kind: 'input_float_n';
599
+ label: string;
600
+ count: number;
601
+ stateVar?: string;
602
+ valueExpr?: string;
603
+ directBind?: boolean;
604
+ onChangeExpr?: string;
605
+ width?: string;
606
+ style?: string;
607
+ item?: IRItemInteraction;
608
+ loc?: SourceLoc;
609
+ }
610
+ export interface IRInputIntN {
611
+ kind: 'input_int_n';
612
+ label: string;
613
+ count: number;
614
+ stateVar?: string;
615
+ valueExpr?: string;
616
+ directBind?: boolean;
617
+ onChangeExpr?: string;
618
+ width?: string;
619
+ style?: string;
620
+ item?: IRItemInteraction;
621
+ loc?: SourceLoc;
622
+ }
623
+ export interface IRDragFloatN {
624
+ kind: 'drag_float_n';
625
+ label: string;
626
+ count: number;
627
+ stateVar?: string;
628
+ valueExpr?: string;
629
+ directBind?: boolean;
630
+ onChangeExpr?: string;
631
+ speed: string;
632
+ width?: string;
633
+ style?: string;
634
+ item?: IRItemInteraction;
635
+ loc?: SourceLoc;
636
+ }
637
+ export interface IRDragIntN {
638
+ kind: 'drag_int_n';
639
+ label: string;
640
+ count: number;
641
+ stateVar?: string;
642
+ valueExpr?: string;
643
+ directBind?: boolean;
644
+ onChangeExpr?: string;
645
+ speed: string;
646
+ width?: string;
647
+ style?: string;
648
+ item?: IRItemInteraction;
649
+ loc?: SourceLoc;
650
+ }
651
+ export interface IRSliderFloatN {
652
+ kind: 'slider_float_n';
653
+ label: string;
654
+ count: number;
655
+ stateVar?: string;
656
+ valueExpr?: string;
657
+ directBind?: boolean;
658
+ onChangeExpr?: string;
659
+ min: string;
660
+ max: string;
661
+ width?: string;
662
+ style?: string;
663
+ item?: IRItemInteraction;
664
+ loc?: SourceLoc;
665
+ }
666
+ export interface IRSliderIntN {
667
+ kind: 'slider_int_n';
668
+ label: string;
669
+ count: number;
670
+ stateVar?: string;
671
+ valueExpr?: string;
672
+ directBind?: boolean;
673
+ onChangeExpr?: string;
674
+ min: string;
675
+ max: string;
676
+ width?: string;
677
+ style?: string;
678
+ item?: IRItemInteraction;
679
+ loc?: SourceLoc;
680
+ }
681
+ export interface IRVSliderFloat {
682
+ kind: 'vslider_float';
683
+ label: string;
684
+ stateVar: string;
685
+ valueExpr?: string;
686
+ onChangeExpr?: string;
687
+ directBind?: boolean;
688
+ width: string;
689
+ height: string;
690
+ min: string;
691
+ max: string;
692
+ style?: string;
693
+ item?: IRItemInteraction;
694
+ loc?: SourceLoc;
695
+ }
696
+ export interface IRVSliderInt {
697
+ kind: 'vslider_int';
698
+ label: string;
699
+ stateVar: string;
700
+ valueExpr?: string;
701
+ onChangeExpr?: string;
702
+ directBind?: boolean;
703
+ width: string;
704
+ height: string;
705
+ min: string;
706
+ max: string;
707
+ style?: string;
708
+ item?: IRItemInteraction;
709
+ loc?: SourceLoc;
710
+ }
711
+ export interface IRSliderAngle {
712
+ kind: 'slider_angle';
713
+ label: string;
714
+ stateVar: string;
715
+ valueExpr?: string;
716
+ onChangeExpr?: string;
717
+ directBind?: boolean;
718
+ min: string;
719
+ max: string;
720
+ width?: string;
721
+ style?: string;
722
+ item?: IRItemInteraction;
723
+ loc?: SourceLoc;
724
+ }
725
+ export interface IRBeginCombo {
726
+ kind: 'begin_combo';
727
+ label: string;
728
+ preview: string;
729
+ flags: string[];
730
+ width?: string;
731
+ style?: string;
732
+ item?: IRItemInteraction;
733
+ loc?: SourceLoc;
734
+ }
735
+ export interface IREndCombo {
736
+ kind: 'end_combo';
737
+ }
738
+ export interface IRBeginListBox {
739
+ kind: 'begin_list_box';
740
+ label: string;
741
+ width?: string;
742
+ height?: string;
743
+ style?: string;
744
+ item?: IRItemInteraction;
745
+ loc?: SourceLoc;
746
+ }
747
+ export interface IREndListBox {
748
+ kind: 'end_list_box';
749
+ }
750
+ export interface IRBullet {
751
+ kind: 'bullet';
752
+ loc?: SourceLoc;
753
+ }
754
+ export interface IRSmallButton {
755
+ kind: 'small_button';
756
+ label: string;
757
+ action: string[];
758
+ item?: IRItemInteraction;
759
+ loc?: SourceLoc;
760
+ }
761
+ export interface IRArrowButton {
762
+ kind: 'arrow_button';
763
+ id: string;
764
+ direction: string;
765
+ action: string[];
766
+ item?: IRItemInteraction;
767
+ loc?: SourceLoc;
768
+ }
769
+ export interface IRInvisibleButton {
770
+ kind: 'invisible_button';
771
+ id: string;
772
+ width: string;
773
+ height: string;
774
+ action: string[];
775
+ item?: IRItemInteraction;
776
+ loc?: SourceLoc;
777
+ }
778
+ export interface IRImageButton {
779
+ kind: 'image_button';
780
+ id: string;
781
+ src: string;
782
+ width?: string;
783
+ height?: string;
784
+ action: string[];
785
+ item?: IRItemInteraction;
786
+ loc?: SourceLoc;
787
+ }
356
788
  export interface IRDockLayout {
357
789
  kind: 'dock_layout';
358
790
  children: (IRDockSplit | IRDockPanel)[];
@@ -1,18 +1,19 @@
1
1
  import ts from 'typescript';
2
2
  import type { ParsedFile } from './parser.js';
3
3
  import type { ValidationResult } from './validator.js';
4
- import type { IRComponent, IRStateSlot, IRType } from './ir.js';
4
+ import type { IRComponent, IRStateSlot } from './ir.js';
5
5
  interface LoweringContext {
6
6
  stateVars: Map<string, IRStateSlot>;
7
7
  setterMap: Map<string, string>;
8
8
  propsParam: string | null;
9
- propsFieldTypes: Map<string, IRType | 'callback'>;
9
+ propsFieldTypes: Map<string, string | 'callback'>;
10
+ externalInterfaces?: Map<string, Map<string, string | 'callback'>>;
10
11
  bufferIndex: number;
11
12
  mapCounter: number;
12
13
  sourceFile: ts.SourceFile;
13
14
  customComponents: Map<string, string>;
14
15
  }
15
- export declare function lowerComponent(parsed: ParsedFile, validation: ValidationResult, externalInterfaces?: Map<string, Map<string, IRType | 'callback'>>): IRComponent;
16
+ export declare function lowerComponent(parsed: ParsedFile, validation: ValidationResult, externalInterfaces?: Map<string, Map<string, string | 'callback'>>): IRComponent;
16
17
  /**
17
18
  * Convert a TypeScript expression to C++ code string.
18
19
  */