imxc 0.5.3 → 0.6.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.
@@ -1,3 +1,17 @@
1
+ const ITEM_INTERACTION_PROPS = {
2
+ onHover: { type: 'callback', required: false },
3
+ onActive: { type: 'callback', required: false },
4
+ onFocused: { type: 'callback', required: false },
5
+ onClicked: { type: 'callback', required: false },
6
+ onDoubleClicked: { type: 'callback', required: false },
7
+ tooltip: { type: 'string', required: false },
8
+ autoFocus: { type: 'boolean', required: false },
9
+ scrollToHere: { type: 'boolean', required: false },
10
+ cursor: { type: 'string', required: false },
11
+ };
12
+ function withItemInteractionProps(props) {
13
+ return { ...props, ...ITEM_INTERACTION_PROPS };
14
+ }
1
15
  export const HOST_COMPONENTS = {
2
16
  Window: {
3
17
  props: {
@@ -10,6 +24,29 @@ export const HOST_COMPONENTS = {
10
24
  noCollapse: { type: 'boolean', required: false },
11
25
  noDocking: { type: 'boolean', required: false },
12
26
  noScrollbar: { type: 'boolean', required: false },
27
+ noBackground: { type: 'boolean', required: false },
28
+ alwaysAutoResize: { type: 'boolean', required: false },
29
+ noNavFocus: { type: 'boolean', required: false },
30
+ noNav: { type: 'boolean', required: false },
31
+ noDecoration: { type: 'boolean', required: false },
32
+ noInputs: { type: 'boolean', required: false },
33
+ noScrollWithMouse: { type: 'boolean', required: false },
34
+ horizontalScrollbar: { type: 'boolean', required: false },
35
+ alwaysVerticalScrollbar: { type: 'boolean', required: false },
36
+ alwaysHorizontalScrollbar: { type: 'boolean', required: false },
37
+ x: { type: 'number', required: false },
38
+ y: { type: 'number', required: false },
39
+ width: { type: 'number', required: false },
40
+ height: { type: 'number', required: false },
41
+ forcePosition: { type: 'boolean', required: false },
42
+ forceSize: { type: 'boolean', required: false },
43
+ minWidth: { type: 'number', required: false },
44
+ minHeight: { type: 'number', required: false },
45
+ maxWidth: { type: 'number', required: false },
46
+ maxHeight: { type: 'number', required: false },
47
+ bgAlpha: { type: 'number', required: false },
48
+ noViewport: { type: 'boolean', required: false },
49
+ viewportAlwaysOnTop: { type: 'boolean', required: false },
13
50
  style: { type: 'style', required: false },
14
51
  },
15
52
  hasChildren: true, isContainer: true,
@@ -18,6 +55,14 @@ export const HOST_COMPONENTS = {
18
55
  props: { style: { type: 'style', required: false } },
19
56
  hasChildren: true, isContainer: true,
20
57
  },
58
+ Indent: {
59
+ props: { width: { type: 'number', required: false } },
60
+ hasChildren: true, isContainer: true,
61
+ },
62
+ TextWrap: {
63
+ props: { width: { type: 'number', required: true } },
64
+ hasChildren: true, isContainer: true,
65
+ },
21
66
  Row: {
22
67
  props: { gap: { type: 'number', required: false }, style: { type: 'style', required: false } },
23
68
  hasChildren: true, isContainer: true,
@@ -27,35 +72,41 @@ export const HOST_COMPONENTS = {
27
72
  hasChildren: true, isContainer: true,
28
73
  },
29
74
  Text: {
30
- props: { style: { type: 'style', required: false } },
75
+ props: {
76
+ color: { type: 'number', required: false },
77
+ disabled: { type: 'boolean', required: false },
78
+ wrapped: { type: 'boolean', required: false },
79
+ style: { type: 'style', required: false },
80
+ },
31
81
  hasChildren: true, isContainer: false,
32
82
  },
33
83
  Button: {
34
- props: {
84
+ props: withItemInteractionProps({
35
85
  title: { type: 'string', required: true },
36
86
  onPress: { type: 'callback', required: true },
37
87
  disabled: { type: 'boolean', required: false },
38
88
  style: { type: 'style', required: false },
39
- },
89
+ }),
40
90
  hasChildren: false, isContainer: false,
41
91
  },
42
92
  TextInput: {
43
- props: {
93
+ props: withItemInteractionProps({
44
94
  value: { type: 'string', required: true },
45
95
  onChange: { type: 'callback', required: false },
46
96
  label: { type: 'string', required: false },
47
97
  placeholder: { type: 'string', required: false },
98
+ width: { type: 'number', required: false },
48
99
  style: { type: 'style', required: false },
49
- },
100
+ }),
50
101
  hasChildren: false, isContainer: false,
51
102
  },
52
103
  Checkbox: {
53
- props: {
104
+ props: withItemInteractionProps({
54
105
  value: { type: 'boolean', required: true },
55
106
  onChange: { type: 'callback', required: false },
56
107
  label: { type: 'string', required: false },
57
108
  style: { type: 'style', required: false },
58
- },
109
+ }),
59
110
  hasChildren: false, isContainer: false,
60
111
  },
61
112
  Separator: {
@@ -70,6 +121,10 @@ export const HOST_COMPONENTS = {
70
121
  props: { style: { type: 'style', required: false } },
71
122
  hasChildren: true, isContainer: true,
72
123
  },
124
+ MainMenuBar: {
125
+ props: {},
126
+ hasChildren: true, isContainer: true,
127
+ },
73
128
  MenuBar: {
74
129
  props: {},
75
130
  hasChildren: true, isContainer: true,
@@ -79,19 +134,39 @@ export const HOST_COMPONENTS = {
79
134
  hasChildren: true, isContainer: true,
80
135
  },
81
136
  MenuItem: {
82
- props: {
137
+ props: withItemInteractionProps({
83
138
  label: { type: 'string', required: true },
84
139
  onPress: { type: 'callback', required: false },
85
140
  shortcut: { type: 'string', required: false },
86
- },
141
+ }),
87
142
  hasChildren: false, isContainer: false,
88
143
  },
89
144
  Table: {
90
- props: { columns: { type: 'string', required: true }, scrollY: { type: 'boolean', required: false }, noBorders: { type: 'boolean', required: false }, noRowBg: { type: 'boolean', required: false }, style: { type: 'style', required: false } },
145
+ props: {
146
+ columns: { type: 'string', required: true },
147
+ sortable: { type: 'boolean', required: false },
148
+ onSort: { type: 'callback', required: false },
149
+ hideable: { type: 'boolean', required: false },
150
+ multiSortable: { type: 'boolean', required: false },
151
+ noClip: { type: 'boolean', required: false },
152
+ padOuterX: { type: 'boolean', required: false },
153
+ scrollX: { type: 'boolean', required: false },
154
+ scrollY: { type: 'boolean', required: false },
155
+ noBorders: { type: 'boolean', required: false },
156
+ noRowBg: { type: 'boolean', required: false },
157
+ style: { type: 'style', required: false },
158
+ },
91
159
  hasChildren: true, isContainer: true,
92
160
  },
93
161
  TableRow: {
94
- props: {},
162
+ props: { bgColor: { type: 'style', required: false } },
163
+ hasChildren: true, isContainer: true,
164
+ },
165
+ TableCell: {
166
+ props: {
167
+ columnIndex: { type: 'number', required: false },
168
+ bgColor: { type: 'style', required: false },
169
+ },
95
170
  hasChildren: true, isContainer: true,
96
171
  },
97
172
  TabBar: {
@@ -103,101 +178,132 @@ export const HOST_COMPONENTS = {
103
178
  hasChildren: true, isContainer: true,
104
179
  },
105
180
  TreeNode: {
106
- props: { label: { type: 'string', required: true } },
181
+ props: withItemInteractionProps({
182
+ label: { type: 'string', required: true },
183
+ defaultOpen: { type: 'boolean', required: false },
184
+ forceOpen: { type: 'boolean', required: false },
185
+ openOnArrow: { type: 'boolean', required: false },
186
+ openOnDoubleClick: { type: 'boolean', required: false },
187
+ leaf: { type: 'boolean', required: false },
188
+ bullet: { type: 'boolean', required: false },
189
+ noTreePushOnOpen: { type: 'boolean', required: false },
190
+ }),
107
191
  hasChildren: true, isContainer: true,
108
192
  },
109
193
  CollapsingHeader: {
110
- props: { label: { type: 'string', required: true } },
194
+ props: withItemInteractionProps({
195
+ label: { type: 'string', required: true },
196
+ defaultOpen: { type: 'boolean', required: false },
197
+ forceOpen: { type: 'boolean', required: false },
198
+ closable: { type: 'boolean', required: false },
199
+ onClose: { type: 'callback', required: false },
200
+ }),
111
201
  hasChildren: true, isContainer: true,
112
202
  },
113
203
  SliderFloat: {
114
- props: {
204
+ props: withItemInteractionProps({
115
205
  label: { type: 'string', required: true },
116
206
  value: { type: 'number', required: true },
117
207
  onChange: { type: 'callback', required: false },
118
208
  min: { type: 'number', required: true },
119
209
  max: { type: 'number', required: true },
210
+ width: { type: 'number', required: false },
120
211
  style: { type: 'style', required: false },
121
- },
212
+ }),
122
213
  hasChildren: false, isContainer: false,
123
214
  },
124
215
  SliderInt: {
125
- props: {
216
+ props: withItemInteractionProps({
126
217
  label: { type: 'string', required: true },
127
218
  value: { type: 'number', required: true },
128
219
  onChange: { type: 'callback', required: false },
129
220
  min: { type: 'number', required: true },
130
221
  max: { type: 'number', required: true },
222
+ width: { type: 'number', required: false },
131
223
  style: { type: 'style', required: false },
132
- },
224
+ }),
133
225
  hasChildren: false, isContainer: false,
134
226
  },
135
227
  DragFloat: {
136
- props: {
228
+ props: withItemInteractionProps({
137
229
  label: { type: 'string', required: true },
138
230
  value: { type: 'number', required: true },
139
231
  onChange: { type: 'callback', required: false },
140
232
  speed: { type: 'number', required: false },
233
+ width: { type: 'number', required: false },
141
234
  style: { type: 'style', required: false },
142
- },
235
+ }),
143
236
  hasChildren: false, isContainer: false,
144
237
  },
145
238
  DragInt: {
146
- props: {
239
+ props: withItemInteractionProps({
147
240
  label: { type: 'string', required: true },
148
241
  value: { type: 'number', required: true },
149
242
  onChange: { type: 'callback', required: false },
150
243
  speed: { type: 'number', required: false },
244
+ width: { type: 'number', required: false },
151
245
  style: { type: 'style', required: false },
152
- },
246
+ }),
153
247
  hasChildren: false, isContainer: false,
154
248
  },
155
249
  Combo: {
156
- props: {
250
+ props: withItemInteractionProps({
157
251
  label: { type: 'string', required: true },
158
- value: { type: 'number', required: true },
252
+ value: { type: 'number', required: false },
159
253
  onChange: { type: 'callback', required: false },
160
- items: { type: 'string', required: true },
254
+ items: { type: 'string', required: false },
255
+ preview: { type: 'string', required: false },
256
+ noArrowButton: { type: 'boolean', required: false },
257
+ noPreview: { type: 'boolean', required: false },
258
+ heightSmall: { type: 'boolean', required: false },
259
+ heightLarge: { type: 'boolean', required: false },
260
+ heightRegular: { type: 'boolean', required: false },
261
+ width: { type: 'number', required: false },
161
262
  style: { type: 'style', required: false },
162
- },
163
- hasChildren: false, isContainer: false,
263
+ }),
264
+ hasChildren: true, isContainer: true,
164
265
  },
165
266
  InputInt: {
166
- props: {
267
+ props: withItemInteractionProps({
167
268
  label: { type: 'string', required: true },
168
269
  value: { type: 'number', required: true },
169
270
  onChange: { type: 'callback', required: false },
271
+ width: { type: 'number', required: false },
170
272
  style: { type: 'style', required: false },
171
- },
273
+ }),
172
274
  hasChildren: false, isContainer: false,
173
275
  },
174
276
  InputFloat: {
175
- props: {
277
+ props: withItemInteractionProps({
176
278
  label: { type: 'string', required: true },
177
279
  value: { type: 'number', required: true },
178
280
  onChange: { type: 'callback', required: false },
281
+ width: { type: 'number', required: false },
179
282
  style: { type: 'style', required: false },
180
- },
283
+ }),
181
284
  hasChildren: false, isContainer: false,
182
285
  },
183
286
  ColorEdit: {
184
- props: {
287
+ props: withItemInteractionProps({
185
288
  label: { type: 'string', required: true },
186
289
  value: { type: 'string', required: true },
187
290
  onChange: { type: 'callback', required: false },
291
+ width: { type: 'number', required: false },
188
292
  style: { type: 'style', required: false },
189
- },
293
+ }),
190
294
  hasChildren: false, isContainer: false,
191
295
  },
192
296
  ListBox: {
193
- props: {
297
+ props: withItemInteractionProps({
194
298
  label: { type: 'string', required: true },
195
- value: { type: 'number', required: true },
299
+ value: { type: 'number', required: false },
196
300
  onChange: { type: 'callback', required: false },
197
- items: { type: 'string', required: true },
301
+ items: { type: 'string', required: false },
302
+ width: { type: 'number', required: false },
303
+ height: { type: 'number', required: false },
198
304
  style: { type: 'style', required: false },
199
- },
200
- hasChildren: false, isContainer: false,
305
+ }),
306
+ hasChildren: true, isContainer: true,
201
307
  },
202
308
  ProgressBar: {
203
309
  props: {
@@ -207,6 +313,35 @@ export const HOST_COMPONENTS = {
207
313
  },
208
314
  hasChildren: false, isContainer: false,
209
315
  },
316
+ Spacing: {
317
+ props: {},
318
+ hasChildren: false, isContainer: false,
319
+ },
320
+ Dummy: {
321
+ props: {
322
+ width: { type: 'number', required: true },
323
+ height: { type: 'number', required: true },
324
+ },
325
+ hasChildren: false, isContainer: false,
326
+ },
327
+ SameLine: {
328
+ props: {
329
+ offset: { type: 'number', required: false },
330
+ spacing: { type: 'number', required: false },
331
+ },
332
+ hasChildren: false, isContainer: false,
333
+ },
334
+ NewLine: {
335
+ props: {},
336
+ hasChildren: false, isContainer: false,
337
+ },
338
+ Cursor: {
339
+ props: {
340
+ x: { type: 'number', required: true },
341
+ y: { type: 'number', required: true },
342
+ },
343
+ hasChildren: false, isContainer: false,
344
+ },
210
345
  Tooltip: {
211
346
  props: {
212
347
  text: { type: 'string', required: true },
@@ -217,6 +352,10 @@ export const HOST_COMPONENTS = {
217
352
  props: { style: { type: 'style', required: false } },
218
353
  hasChildren: true, isContainer: false,
219
354
  },
355
+ Bullet: {
356
+ props: { style: { type: 'style', required: false } },
357
+ hasChildren: false, isContainer: false,
358
+ },
220
359
  LabelText: {
221
360
  props: {
222
361
  label: { type: 'string', required: true },
@@ -225,38 +364,63 @@ export const HOST_COMPONENTS = {
225
364
  hasChildren: false, isContainer: false,
226
365
  },
227
366
  Selectable: {
228
- props: {
367
+ props: withItemInteractionProps({
229
368
  label: { type: 'string', required: true },
230
369
  selected: { type: 'boolean', required: false },
231
370
  onSelect: { type: 'callback', required: false },
371
+ selectionIndex: { type: 'number', required: false },
372
+ spanAllColumns: { type: 'boolean', required: false },
373
+ allowDoubleClick: { type: 'boolean', required: false },
374
+ dontClosePopups: { type: 'boolean', required: false },
232
375
  style: { type: 'style', required: false },
233
- },
376
+ }),
234
377
  hasChildren: false, isContainer: false,
235
378
  },
236
379
  Radio: {
237
- props: {
380
+ props: withItemInteractionProps({
238
381
  label: { type: 'string', required: true },
239
382
  value: { type: 'number', required: true },
240
383
  index: { type: 'number', required: true },
241
384
  onChange: { type: 'callback', required: false },
242
385
  style: { type: 'style', required: false },
243
- },
386
+ }),
244
387
  hasChildren: false, isContainer: false,
245
388
  },
246
389
  InputTextMultiline: {
247
- props: {
390
+ props: withItemInteractionProps({
248
391
  label: { type: 'string', required: true },
249
392
  value: { type: 'string', required: true },
393
+ width: { type: 'number', required: false },
250
394
  style: { type: 'style', required: false },
251
- },
395
+ }),
396
+ hasChildren: false, isContainer: false,
397
+ },
398
+ ColorEdit3: {
399
+ props: withItemInteractionProps({
400
+ label: { type: 'string', required: true },
401
+ value: { type: 'string', required: true },
402
+ onChange: { type: 'callback', required: false },
403
+ width: { type: 'number', required: false },
404
+ style: { type: 'style', required: false },
405
+ }),
252
406
  hasChildren: false, isContainer: false,
253
407
  },
254
408
  ColorPicker: {
255
- props: {
409
+ props: withItemInteractionProps({
256
410
  label: { type: 'string', required: true },
257
411
  value: { type: 'string', required: true },
258
412
  style: { type: 'style', required: false },
259
- },
413
+ }),
414
+ hasChildren: false, isContainer: false,
415
+ },
416
+ ColorPicker3: {
417
+ props: withItemInteractionProps({
418
+ label: { type: 'string', required: true },
419
+ value: { type: 'string', required: true },
420
+ onChange: { type: 'callback', required: false },
421
+ width: { type: 'number', required: false },
422
+ style: { type: 'style', required: false },
423
+ }),
260
424
  hasChildren: false, isContainer: false,
261
425
  },
262
426
  PlotLines: {
@@ -282,6 +446,14 @@ export const HOST_COMPONENTS = {
282
446
  title: { type: 'string', required: true },
283
447
  open: { type: 'boolean', required: false },
284
448
  onClose: { type: 'callback', required: false },
449
+ noTitleBar: { type: 'boolean', required: false },
450
+ noResize: { type: 'boolean', required: false },
451
+ noMove: { type: 'boolean', required: false },
452
+ noScrollbar: { type: 'boolean', required: false },
453
+ noCollapse: { type: 'boolean', required: false },
454
+ alwaysAutoResize: { type: 'boolean', required: false },
455
+ noBackground: { type: 'boolean', required: false },
456
+ horizontalScrollbar: { type: 'boolean', required: false },
285
457
  style: { type: 'style', required: false },
286
458
  },
287
459
  hasChildren: true, isContainer: true,
@@ -434,6 +606,75 @@ export const HOST_COMPONENTS = {
434
606
  },
435
607
  hasChildren: false, isContainer: false,
436
608
  },
609
+ DrawBezierCubic: {
610
+ props: {
611
+ p1: { type: 'style', required: true },
612
+ p2: { type: 'style', required: true },
613
+ p3: { type: 'style', required: true },
614
+ p4: { type: 'style', required: true },
615
+ color: { type: 'style', required: true },
616
+ thickness: { type: 'number', required: false },
617
+ segments: { type: 'number', required: false },
618
+ },
619
+ hasChildren: false, isContainer: false,
620
+ },
621
+ DrawBezierQuadratic: {
622
+ props: {
623
+ p1: { type: 'style', required: true },
624
+ p2: { type: 'style', required: true },
625
+ p3: { type: 'style', required: true },
626
+ color: { type: 'style', required: true },
627
+ thickness: { type: 'number', required: false },
628
+ segments: { type: 'number', required: false },
629
+ },
630
+ hasChildren: false, isContainer: false,
631
+ },
632
+ DrawPolyline: {
633
+ props: {
634
+ points: { type: 'string', required: true },
635
+ color: { type: 'style', required: true },
636
+ thickness: { type: 'number', required: false },
637
+ closed: { type: 'boolean', required: false },
638
+ },
639
+ hasChildren: false, isContainer: false,
640
+ },
641
+ DrawConvexPolyFilled: {
642
+ props: {
643
+ points: { type: 'string', required: true },
644
+ color: { type: 'style', required: true },
645
+ },
646
+ hasChildren: false, isContainer: false,
647
+ },
648
+ DrawNgon: {
649
+ props: {
650
+ center: { type: 'style', required: true },
651
+ radius: { type: 'number', required: true },
652
+ color: { type: 'style', required: true },
653
+ numSegments: { type: 'number', required: true },
654
+ thickness: { type: 'number', required: false },
655
+ },
656
+ hasChildren: false, isContainer: false,
657
+ },
658
+ DrawNgonFilled: {
659
+ props: {
660
+ center: { type: 'style', required: true },
661
+ radius: { type: 'number', required: true },
662
+ color: { type: 'style', required: true },
663
+ numSegments: { type: 'number', required: true },
664
+ },
665
+ hasChildren: false, isContainer: false,
666
+ },
667
+ DrawTriangle: {
668
+ props: {
669
+ p1: { type: 'style', required: true },
670
+ p2: { type: 'style', required: true },
671
+ p3: { type: 'style', required: true },
672
+ color: { type: 'style', required: true },
673
+ filled: { type: 'boolean', required: false },
674
+ thickness: { type: 'number', required: false },
675
+ },
676
+ hasChildren: false, isContainer: false,
677
+ },
437
678
  Disabled: {
438
679
  props: {
439
680
  disabled: { type: 'boolean', required: false },
@@ -450,6 +691,317 @@ export const HOST_COMPONENTS = {
450
691
  },
451
692
  hasChildren: true, isContainer: true,
452
693
  },
694
+ Font: {
695
+ props: {
696
+ name: { type: 'string', required: true },
697
+ src: { type: 'string', required: false },
698
+ size: { type: 'number', required: false },
699
+ embed: { type: 'boolean', required: false },
700
+ },
701
+ hasChildren: true, isContainer: true,
702
+ },
703
+ InputFloat2: {
704
+ props: withItemInteractionProps({
705
+ label: { type: 'string', required: true },
706
+ value: { type: 'string', required: true },
707
+ onChange: { type: 'callback', required: false },
708
+ width: { type: 'number', required: false },
709
+ style: { type: 'style', required: false },
710
+ }),
711
+ hasChildren: false, isContainer: false,
712
+ },
713
+ InputFloat3: {
714
+ props: withItemInteractionProps({
715
+ label: { type: 'string', required: true },
716
+ value: { type: 'string', required: true },
717
+ onChange: { type: 'callback', required: false },
718
+ width: { type: 'number', required: false },
719
+ style: { type: 'style', required: false },
720
+ }),
721
+ hasChildren: false, isContainer: false,
722
+ },
723
+ InputFloat4: {
724
+ props: withItemInteractionProps({
725
+ label: { type: 'string', required: true },
726
+ value: { type: 'string', required: true },
727
+ onChange: { type: 'callback', required: false },
728
+ width: { type: 'number', required: false },
729
+ style: { type: 'style', required: false },
730
+ }),
731
+ hasChildren: false, isContainer: false,
732
+ },
733
+ InputInt2: {
734
+ props: withItemInteractionProps({
735
+ label: { type: 'string', required: true },
736
+ value: { type: 'string', required: true },
737
+ onChange: { type: 'callback', required: false },
738
+ width: { type: 'number', required: false },
739
+ style: { type: 'style', required: false },
740
+ }),
741
+ hasChildren: false, isContainer: false,
742
+ },
743
+ InputInt3: {
744
+ props: withItemInteractionProps({
745
+ label: { type: 'string', required: true },
746
+ value: { type: 'string', required: true },
747
+ onChange: { type: 'callback', required: false },
748
+ width: { type: 'number', required: false },
749
+ style: { type: 'style', required: false },
750
+ }),
751
+ hasChildren: false, isContainer: false,
752
+ },
753
+ InputInt4: {
754
+ props: withItemInteractionProps({
755
+ label: { type: 'string', required: true },
756
+ value: { type: 'string', required: true },
757
+ onChange: { type: 'callback', required: false },
758
+ width: { type: 'number', required: false },
759
+ style: { type: 'style', required: false },
760
+ }),
761
+ hasChildren: false, isContainer: false,
762
+ },
763
+ DragFloat2: {
764
+ props: withItemInteractionProps({
765
+ label: { type: 'string', required: true },
766
+ value: { type: 'string', required: true },
767
+ onChange: { type: 'callback', required: false },
768
+ speed: { type: 'number', required: false },
769
+ width: { type: 'number', required: false },
770
+ style: { type: 'style', required: false },
771
+ }),
772
+ hasChildren: false, isContainer: false,
773
+ },
774
+ DragFloat3: {
775
+ props: withItemInteractionProps({
776
+ label: { type: 'string', required: true },
777
+ value: { type: 'string', required: true },
778
+ onChange: { type: 'callback', required: false },
779
+ speed: { type: 'number', required: false },
780
+ width: { type: 'number', required: false },
781
+ style: { type: 'style', required: false },
782
+ }),
783
+ hasChildren: false, isContainer: false,
784
+ },
785
+ DragFloat4: {
786
+ props: withItemInteractionProps({
787
+ label: { type: 'string', required: true },
788
+ value: { type: 'string', required: true },
789
+ onChange: { type: 'callback', required: false },
790
+ speed: { type: 'number', required: false },
791
+ width: { type: 'number', required: false },
792
+ style: { type: 'style', required: false },
793
+ }),
794
+ hasChildren: false, isContainer: false,
795
+ },
796
+ DragInt2: {
797
+ props: withItemInteractionProps({
798
+ label: { type: 'string', required: true },
799
+ value: { type: 'string', required: true },
800
+ onChange: { type: 'callback', required: false },
801
+ speed: { type: 'number', required: false },
802
+ width: { type: 'number', required: false },
803
+ style: { type: 'style', required: false },
804
+ }),
805
+ hasChildren: false, isContainer: false,
806
+ },
807
+ DragInt3: {
808
+ props: withItemInteractionProps({
809
+ label: { type: 'string', required: true },
810
+ value: { type: 'string', required: true },
811
+ onChange: { type: 'callback', required: false },
812
+ speed: { type: 'number', required: false },
813
+ width: { type: 'number', required: false },
814
+ style: { type: 'style', required: false },
815
+ }),
816
+ hasChildren: false, isContainer: false,
817
+ },
818
+ DragInt4: {
819
+ props: withItemInteractionProps({
820
+ label: { type: 'string', required: true },
821
+ value: { type: 'string', required: true },
822
+ onChange: { type: 'callback', required: false },
823
+ speed: { type: 'number', required: false },
824
+ width: { type: 'number', required: false },
825
+ style: { type: 'style', required: false },
826
+ }),
827
+ hasChildren: false, isContainer: false,
828
+ },
829
+ SmallButton: {
830
+ props: withItemInteractionProps({
831
+ label: { type: 'string', required: true },
832
+ onPress: { type: 'callback', required: true },
833
+ }),
834
+ hasChildren: false, isContainer: false,
835
+ },
836
+ ArrowButton: {
837
+ props: withItemInteractionProps({
838
+ id: { type: 'string', required: true },
839
+ direction: { type: 'string', required: true },
840
+ onPress: { type: 'callback', required: true },
841
+ }),
842
+ hasChildren: false, isContainer: false,
843
+ },
844
+ InvisibleButton: {
845
+ props: withItemInteractionProps({
846
+ id: { type: 'string', required: true },
847
+ width: { type: 'number', required: true },
848
+ height: { type: 'number', required: true },
849
+ onPress: { type: 'callback', required: true },
850
+ }),
851
+ hasChildren: false, isContainer: false,
852
+ },
853
+ ImageButton: {
854
+ props: withItemInteractionProps({
855
+ id: { type: 'string', required: true },
856
+ src: { type: 'string', required: true },
857
+ width: { type: 'number', required: false },
858
+ height: { type: 'number', required: false },
859
+ onPress: { type: 'callback', required: true },
860
+ }),
861
+ hasChildren: false, isContainer: false,
862
+ },
863
+ SliderFloat2: {
864
+ props: withItemInteractionProps({
865
+ label: { type: 'string', required: true },
866
+ value: { type: 'string', required: true },
867
+ onChange: { type: 'callback', required: false },
868
+ min: { type: 'number', required: true },
869
+ max: { type: 'number', required: true },
870
+ width: { type: 'number', required: false },
871
+ style: { type: 'style', required: false },
872
+ }),
873
+ hasChildren: false, isContainer: false,
874
+ },
875
+ SliderFloat3: {
876
+ props: withItemInteractionProps({
877
+ label: { type: 'string', required: true },
878
+ value: { type: 'string', required: true },
879
+ onChange: { type: 'callback', required: false },
880
+ min: { type: 'number', required: true },
881
+ max: { type: 'number', required: true },
882
+ width: { type: 'number', required: false },
883
+ style: { type: 'style', required: false },
884
+ }),
885
+ hasChildren: false, isContainer: false,
886
+ },
887
+ SliderFloat4: {
888
+ props: withItemInteractionProps({
889
+ label: { type: 'string', required: true },
890
+ value: { type: 'string', required: true },
891
+ onChange: { type: 'callback', required: false },
892
+ min: { type: 'number', required: true },
893
+ max: { type: 'number', required: true },
894
+ width: { type: 'number', required: false },
895
+ style: { type: 'style', required: false },
896
+ }),
897
+ hasChildren: false, isContainer: false,
898
+ },
899
+ SliderInt2: {
900
+ props: withItemInteractionProps({
901
+ label: { type: 'string', required: true },
902
+ value: { type: 'string', required: true },
903
+ onChange: { type: 'callback', required: false },
904
+ min: { type: 'number', required: true },
905
+ max: { type: 'number', required: true },
906
+ width: { type: 'number', required: false },
907
+ style: { type: 'style', required: false },
908
+ }),
909
+ hasChildren: false, isContainer: false,
910
+ },
911
+ SliderInt3: {
912
+ props: withItemInteractionProps({
913
+ label: { type: 'string', required: true },
914
+ value: { type: 'string', required: true },
915
+ onChange: { type: 'callback', required: false },
916
+ min: { type: 'number', required: true },
917
+ max: { type: 'number', required: true },
918
+ width: { type: 'number', required: false },
919
+ style: { type: 'style', required: false },
920
+ }),
921
+ hasChildren: false, isContainer: false,
922
+ },
923
+ SliderInt4: {
924
+ props: withItemInteractionProps({
925
+ label: { type: 'string', required: true },
926
+ value: { type: 'string', required: true },
927
+ onChange: { type: 'callback', required: false },
928
+ min: { type: 'number', required: true },
929
+ max: { type: 'number', required: true },
930
+ width: { type: 'number', required: false },
931
+ style: { type: 'style', required: false },
932
+ }),
933
+ hasChildren: false, isContainer: false,
934
+ },
935
+ VSliderFloat: {
936
+ props: withItemInteractionProps({
937
+ label: { type: 'string', required: true },
938
+ value: { type: 'number', required: true },
939
+ onChange: { type: 'callback', required: false },
940
+ width: { type: 'number', required: true },
941
+ height: { type: 'number', required: true },
942
+ min: { type: 'number', required: true },
943
+ max: { type: 'number', required: true },
944
+ style: { type: 'style', required: false },
945
+ }),
946
+ hasChildren: false, isContainer: false,
947
+ },
948
+ VSliderInt: {
949
+ props: withItemInteractionProps({
950
+ label: { type: 'string', required: true },
951
+ value: { type: 'number', required: true },
952
+ onChange: { type: 'callback', required: false },
953
+ width: { type: 'number', required: true },
954
+ height: { type: 'number', required: true },
955
+ min: { type: 'number', required: true },
956
+ max: { type: 'number', required: true },
957
+ style: { type: 'style', required: false },
958
+ }),
959
+ hasChildren: false, isContainer: false,
960
+ },
961
+ SliderAngle: {
962
+ props: withItemInteractionProps({
963
+ label: { type: 'string', required: true },
964
+ value: { type: 'number', required: true },
965
+ onChange: { type: 'callback', required: false },
966
+ min: { type: 'number', required: false },
967
+ max: { type: 'number', required: false },
968
+ width: { type: 'number', required: false },
969
+ style: { type: 'style', required: false },
970
+ }),
971
+ hasChildren: false, isContainer: false,
972
+ },
973
+ ContextMenu: {
974
+ props: {
975
+ id: { type: 'string', required: false },
976
+ target: { type: 'string', required: false },
977
+ mouseButton: { type: 'string', required: false },
978
+ },
979
+ hasChildren: true, isContainer: true,
980
+ },
981
+ MultiSelect: {
982
+ props: {
983
+ singleSelect: { type: 'boolean', required: false },
984
+ noSelectAll: { type: 'boolean', required: false },
985
+ noRangeSelect: { type: 'boolean', required: false },
986
+ noAutoSelect: { type: 'boolean', required: false },
987
+ noAutoClear: { type: 'boolean', required: false },
988
+ boxSelect: { type: 'boolean', required: false },
989
+ boxSelect2d: { type: 'boolean', required: false },
990
+ boxSelectNoScroll: { type: 'boolean', required: false },
991
+ clearOnClickVoid: { type: 'boolean', required: false },
992
+ selectionSize: { type: 'number', required: false },
993
+ itemsCount: { type: 'number', required: false },
994
+ onSelectionChange: { type: 'callback', required: false },
995
+ },
996
+ hasChildren: true, isContainer: true,
997
+ },
998
+ Shortcut: {
999
+ props: {
1000
+ keys: { type: 'string', required: true },
1001
+ onPress: { type: 'callback', required: true },
1002
+ },
1003
+ hasChildren: false, isContainer: false,
1004
+ },
453
1005
  };
454
1006
  export function isHostComponent(name) {
455
1007
  return name in HOST_COMPONENTS;