@arnilo/liveframe-starter 0.0.0-stage → 0.3.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.
@@ -0,0 +1,1545 @@
1
+ export const Box = {
2
+ kind: "box",
3
+ props: {
4
+ type: "object",
5
+ properties: {
6
+ semantics: {
7
+ type: "string",
8
+ enum: [
9
+ "section",
10
+ "article",
11
+ "aside",
12
+ "header",
13
+ "footer",
14
+ "nav",
15
+ "list",
16
+ "listItem",
17
+ "terms",
18
+ "term",
19
+ "detail",
20
+ "form",
21
+ "group",
22
+ "figure",
23
+ "status",
24
+ "alert",
25
+ ],
26
+ maxLength: 8,
27
+ },
28
+ label: {
29
+ type: "string",
30
+ maxLength: 80,
31
+ },
32
+ },
33
+ required: [],
34
+ additionalProperties: false,
35
+ },
36
+ children: "any",
37
+ events: {},
38
+ variants: ["default", "plate", "rule", "callout"],
39
+ slots: ["root", "rail"],
40
+ styleProps: [
41
+ "padding",
42
+ "paddingX",
43
+ "paddingY",
44
+ "paddingTop",
45
+ "paddingRight",
46
+ "paddingBottom",
47
+ "paddingLeft",
48
+ "margin",
49
+ "marginX",
50
+ "marginY",
51
+ "marginTop",
52
+ "marginRight",
53
+ "marginBottom",
54
+ "marginLeft",
55
+ "width",
56
+ "height",
57
+ "minWidth",
58
+ "maxWidth",
59
+ "grow",
60
+ "shrink",
61
+ "basis",
62
+ "position",
63
+ "insetTop",
64
+ "insetBottom",
65
+ "deferOffscreen",
66
+ "surface",
67
+ "fill",
68
+ "radius",
69
+ ],
70
+ a11y: {
71
+ role: "generic",
72
+ },
73
+ description: "A generic container. Variants add a plate, rule or callout; `semantics` picks the element.",
74
+ defaultVariant: "default",
75
+ };
76
+ export const Stack = {
77
+ kind: "stack",
78
+ props: {
79
+ type: "object",
80
+ properties: {
81
+ semantics: {
82
+ type: "string",
83
+ enum: [
84
+ "section",
85
+ "article",
86
+ "aside",
87
+ "header",
88
+ "footer",
89
+ "nav",
90
+ "list",
91
+ "listItem",
92
+ "terms",
93
+ "term",
94
+ "detail",
95
+ "form",
96
+ "group",
97
+ "figure",
98
+ "status",
99
+ "alert",
100
+ ],
101
+ maxLength: 8,
102
+ },
103
+ label: {
104
+ type: "string",
105
+ maxLength: 80,
106
+ },
107
+ },
108
+ required: [],
109
+ additionalProperties: false,
110
+ },
111
+ children: "any",
112
+ events: {},
113
+ variants: ["default"],
114
+ slots: ["root"],
115
+ styleProps: [
116
+ "padding",
117
+ "paddingX",
118
+ "paddingY",
119
+ "paddingTop",
120
+ "paddingRight",
121
+ "paddingBottom",
122
+ "paddingLeft",
123
+ "margin",
124
+ "marginX",
125
+ "marginY",
126
+ "marginTop",
127
+ "marginRight",
128
+ "marginBottom",
129
+ "marginLeft",
130
+ "width",
131
+ "height",
132
+ "minWidth",
133
+ "maxWidth",
134
+ "grow",
135
+ "shrink",
136
+ "basis",
137
+ "position",
138
+ "insetTop",
139
+ "insetBottom",
140
+ "gap",
141
+ "direction",
142
+ "align",
143
+ "justify",
144
+ "wrap",
145
+ ],
146
+ a11y: {
147
+ role: "generic",
148
+ },
149
+ description: "Lays its children out in a column.",
150
+ defaultVariant: "default",
151
+ };
152
+ export const Inline = {
153
+ kind: "inline",
154
+ props: {
155
+ type: "object",
156
+ properties: {
157
+ semantics: {
158
+ type: "string",
159
+ enum: [
160
+ "section",
161
+ "article",
162
+ "aside",
163
+ "header",
164
+ "footer",
165
+ "nav",
166
+ "list",
167
+ "listItem",
168
+ "terms",
169
+ "term",
170
+ "detail",
171
+ "form",
172
+ "group",
173
+ "figure",
174
+ "status",
175
+ "alert",
176
+ ],
177
+ maxLength: 8,
178
+ },
179
+ label: {
180
+ type: "string",
181
+ maxLength: 80,
182
+ },
183
+ },
184
+ required: [],
185
+ additionalProperties: false,
186
+ },
187
+ children: "any",
188
+ events: {},
189
+ variants: ["default"],
190
+ slots: ["root"],
191
+ styleProps: [
192
+ "padding",
193
+ "paddingX",
194
+ "paddingY",
195
+ "paddingTop",
196
+ "paddingRight",
197
+ "paddingBottom",
198
+ "paddingLeft",
199
+ "margin",
200
+ "marginX",
201
+ "marginY",
202
+ "marginTop",
203
+ "marginRight",
204
+ "marginBottom",
205
+ "marginLeft",
206
+ "width",
207
+ "height",
208
+ "minWidth",
209
+ "maxWidth",
210
+ "grow",
211
+ "shrink",
212
+ "basis",
213
+ "position",
214
+ "insetTop",
215
+ "insetBottom",
216
+ "gap",
217
+ "direction",
218
+ "align",
219
+ "justify",
220
+ "wrap",
221
+ ],
222
+ a11y: {
223
+ role: "generic",
224
+ },
225
+ description: "Lays its children out in a row.",
226
+ defaultVariant: "default",
227
+ };
228
+ export const Grid = {
229
+ kind: "grid",
230
+ props: {
231
+ type: "object",
232
+ properties: {
233
+ semantics: {
234
+ type: "string",
235
+ enum: [
236
+ "section",
237
+ "article",
238
+ "aside",
239
+ "header",
240
+ "footer",
241
+ "nav",
242
+ "list",
243
+ "listItem",
244
+ "terms",
245
+ "term",
246
+ "detail",
247
+ "form",
248
+ "group",
249
+ "figure",
250
+ "status",
251
+ "alert",
252
+ ],
253
+ maxLength: 8,
254
+ },
255
+ label: {
256
+ type: "string",
257
+ maxLength: 80,
258
+ },
259
+ },
260
+ required: [],
261
+ additionalProperties: false,
262
+ },
263
+ children: "any",
264
+ events: {},
265
+ variants: ["default"],
266
+ slots: ["root"],
267
+ styleProps: [
268
+ "padding",
269
+ "paddingX",
270
+ "paddingY",
271
+ "paddingTop",
272
+ "paddingRight",
273
+ "paddingBottom",
274
+ "paddingLeft",
275
+ "margin",
276
+ "marginX",
277
+ "marginY",
278
+ "marginTop",
279
+ "marginRight",
280
+ "marginBottom",
281
+ "marginLeft",
282
+ "width",
283
+ "height",
284
+ "minWidth",
285
+ "maxWidth",
286
+ "grow",
287
+ "shrink",
288
+ "basis",
289
+ "position",
290
+ "insetTop",
291
+ "insetBottom",
292
+ "gap",
293
+ "align",
294
+ "justify",
295
+ "columns",
296
+ "rows",
297
+ "area",
298
+ ],
299
+ a11y: {
300
+ role: "generic",
301
+ },
302
+ description: "Lays its children out on a grid whose tracks the author sets.",
303
+ defaultVariant: "default",
304
+ };
305
+ export const Scroll = {
306
+ kind: "scroll",
307
+ props: {
308
+ type: "object",
309
+ properties: {
310
+ label: {
311
+ type: "string",
312
+ maxLength: 80,
313
+ },
314
+ axis: {
315
+ type: "string",
316
+ enum: ["vertical", "horizontal", "both"],
317
+ maxLength: 10,
318
+ },
319
+ },
320
+ required: ["label"],
321
+ additionalProperties: false,
322
+ },
323
+ children: "any",
324
+ events: {},
325
+ variants: ["default"],
326
+ slots: ["root", "viewport", "scrollbar"],
327
+ styleProps: [
328
+ "padding",
329
+ "paddingX",
330
+ "paddingY",
331
+ "paddingTop",
332
+ "paddingRight",
333
+ "paddingBottom",
334
+ "paddingLeft",
335
+ "margin",
336
+ "marginX",
337
+ "marginY",
338
+ "marginTop",
339
+ "marginRight",
340
+ "marginBottom",
341
+ "marginLeft",
342
+ "width",
343
+ "height",
344
+ "minWidth",
345
+ "maxWidth",
346
+ "grow",
347
+ "shrink",
348
+ "basis",
349
+ "position",
350
+ "insetTop",
351
+ "insetBottom",
352
+ "minHeight",
353
+ "maxHeight",
354
+ ],
355
+ a11y: {
356
+ role: "region",
357
+ name: "label",
358
+ },
359
+ description: "A named, keyboard-focusable region that scrolls its children.",
360
+ defaultVariant: "default",
361
+ };
362
+ export const Separator = {
363
+ kind: "separator",
364
+ props: {
365
+ type: "object",
366
+ properties: {
367
+ orientation: {
368
+ type: "string",
369
+ enum: ["horizontal", "vertical"],
370
+ maxLength: 10,
371
+ },
372
+ },
373
+ required: [],
374
+ additionalProperties: false,
375
+ },
376
+ children: "none",
377
+ events: {},
378
+ variants: ["default"],
379
+ slots: ["root"],
380
+ styleProps: [
381
+ "padding",
382
+ "paddingX",
383
+ "paddingY",
384
+ "paddingTop",
385
+ "paddingRight",
386
+ "paddingBottom",
387
+ "paddingLeft",
388
+ "margin",
389
+ "marginX",
390
+ "marginY",
391
+ "marginTop",
392
+ "marginRight",
393
+ "marginBottom",
394
+ "marginLeft",
395
+ "width",
396
+ "height",
397
+ "minWidth",
398
+ "maxWidth",
399
+ "grow",
400
+ "shrink",
401
+ "basis",
402
+ "position",
403
+ "insetTop",
404
+ "insetBottom",
405
+ ],
406
+ a11y: {
407
+ role: "separator",
408
+ },
409
+ description: "A thin rule between groups of content.",
410
+ defaultVariant: "default",
411
+ };
412
+ export const Text = {
413
+ kind: "text",
414
+ props: {
415
+ type: "object",
416
+ properties: {
417
+ text: {
418
+ type: "string",
419
+ maxLength: 10000,
420
+ },
421
+ },
422
+ required: ["text"],
423
+ additionalProperties: false,
424
+ },
425
+ children: "none",
426
+ events: {},
427
+ variants: ["default"],
428
+ slots: ["root"],
429
+ styleProps: [
430
+ "padding",
431
+ "paddingX",
432
+ "paddingY",
433
+ "paddingTop",
434
+ "paddingRight",
435
+ "paddingBottom",
436
+ "paddingLeft",
437
+ "margin",
438
+ "marginX",
439
+ "marginY",
440
+ "marginTop",
441
+ "marginRight",
442
+ "marginBottom",
443
+ "marginLeft",
444
+ "width",
445
+ "height",
446
+ "minWidth",
447
+ "maxWidth",
448
+ "grow",
449
+ "shrink",
450
+ "basis",
451
+ "position",
452
+ "insetTop",
453
+ "insetBottom",
454
+ "textStyle",
455
+ "tone",
456
+ "textAlign",
457
+ ],
458
+ a11y: {
459
+ role: "generic",
460
+ },
461
+ description: "A run of text. Use `tone` and `textStyle` to emphasise it.",
462
+ defaultVariant: "default",
463
+ };
464
+ export const Hint = {
465
+ kind: "hint",
466
+ props: {
467
+ type: "object",
468
+ properties: {
469
+ text: {
470
+ type: "string",
471
+ maxLength: 10000,
472
+ },
473
+ },
474
+ required: ["text"],
475
+ additionalProperties: false,
476
+ },
477
+ children: "none",
478
+ events: {},
479
+ variants: ["default"],
480
+ slots: ["root"],
481
+ styleProps: [
482
+ "padding",
483
+ "paddingX",
484
+ "paddingY",
485
+ "paddingTop",
486
+ "paddingRight",
487
+ "paddingBottom",
488
+ "paddingLeft",
489
+ "margin",
490
+ "marginX",
491
+ "marginY",
492
+ "marginTop",
493
+ "marginRight",
494
+ "marginBottom",
495
+ "marginLeft",
496
+ "width",
497
+ "height",
498
+ "minWidth",
499
+ "maxWidth",
500
+ "grow",
501
+ "shrink",
502
+ "basis",
503
+ "position",
504
+ "insetTop",
505
+ "insetBottom",
506
+ "textAlign",
507
+ ],
508
+ a11y: {
509
+ role: "generic",
510
+ },
511
+ description: "Secondary text that describes another control; a control's `describedBy` can reference it.",
512
+ defaultVariant: "default",
513
+ };
514
+ export const Heading = {
515
+ kind: "heading",
516
+ props: {
517
+ type: "object",
518
+ properties: {
519
+ text: {
520
+ type: "string",
521
+ maxLength: 10000,
522
+ },
523
+ level: {
524
+ type: "integer",
525
+ minimum: 1,
526
+ maximum: 6,
527
+ },
528
+ },
529
+ required: ["text", "level"],
530
+ additionalProperties: false,
531
+ },
532
+ children: "none",
533
+ events: {},
534
+ variants: ["default"],
535
+ slots: ["root"],
536
+ styleProps: [
537
+ "padding",
538
+ "paddingX",
539
+ "paddingY",
540
+ "paddingTop",
541
+ "paddingRight",
542
+ "paddingBottom",
543
+ "paddingLeft",
544
+ "margin",
545
+ "marginX",
546
+ "marginY",
547
+ "marginTop",
548
+ "marginRight",
549
+ "marginBottom",
550
+ "marginLeft",
551
+ "width",
552
+ "height",
553
+ "minWidth",
554
+ "maxWidth",
555
+ "grow",
556
+ "shrink",
557
+ "basis",
558
+ "position",
559
+ "insetTop",
560
+ "insetBottom",
561
+ "textStyle",
562
+ "tone",
563
+ "textAlign",
564
+ ],
565
+ a11y: {
566
+ role: "heading",
567
+ name: "text",
568
+ },
569
+ description: "A section heading, level 1 to 6.",
570
+ defaultVariant: "default",
571
+ };
572
+ export const Icon = {
573
+ kind: "icon",
574
+ props: {
575
+ type: "object",
576
+ properties: {
577
+ name: {
578
+ type: "string",
579
+ maxLength: 128,
580
+ pattern: "^[a-zA-Z0-9][a-zA-Z0-9._-]*$",
581
+ },
582
+ label: {
583
+ type: "string",
584
+ maxLength: 80,
585
+ },
586
+ },
587
+ required: ["name"],
588
+ additionalProperties: false,
589
+ },
590
+ children: "none",
591
+ events: {},
592
+ variants: ["default"],
593
+ slots: ["root"],
594
+ styleProps: [
595
+ "padding",
596
+ "paddingX",
597
+ "paddingY",
598
+ "paddingTop",
599
+ "paddingRight",
600
+ "paddingBottom",
601
+ "paddingLeft",
602
+ "margin",
603
+ "marginX",
604
+ "marginY",
605
+ "marginTop",
606
+ "marginRight",
607
+ "marginBottom",
608
+ "marginLeft",
609
+ "width",
610
+ "height",
611
+ "minWidth",
612
+ "maxWidth",
613
+ "grow",
614
+ "shrink",
615
+ "basis",
616
+ "position",
617
+ "insetTop",
618
+ "insetBottom",
619
+ "tone",
620
+ ],
621
+ a11y: {
622
+ role: "img",
623
+ name: "label",
624
+ },
625
+ description: "A small glyph from the app's icon set.",
626
+ defaultVariant: "default",
627
+ };
628
+ export const Image = {
629
+ kind: "image",
630
+ props: {
631
+ type: "object",
632
+ properties: {
633
+ src: {
634
+ type: "string",
635
+ maxLength: 2048,
636
+ url: {
637
+ schemes: ["https"],
638
+ relative: true,
639
+ },
640
+ },
641
+ alt: {
642
+ type: "string",
643
+ maxLength: 10000,
644
+ },
645
+ },
646
+ required: ["src", "alt"],
647
+ additionalProperties: false,
648
+ },
649
+ children: "none",
650
+ events: {},
651
+ variants: ["default"],
652
+ slots: ["root"],
653
+ styleProps: [
654
+ "padding",
655
+ "paddingX",
656
+ "paddingY",
657
+ "paddingTop",
658
+ "paddingRight",
659
+ "paddingBottom",
660
+ "paddingLeft",
661
+ "margin",
662
+ "marginX",
663
+ "marginY",
664
+ "marginTop",
665
+ "marginRight",
666
+ "marginBottom",
667
+ "marginLeft",
668
+ "width",
669
+ "height",
670
+ "minWidth",
671
+ "maxWidth",
672
+ "grow",
673
+ "shrink",
674
+ "basis",
675
+ "position",
676
+ "insetTop",
677
+ "insetBottom",
678
+ ],
679
+ a11y: {
680
+ role: "img",
681
+ name: "alt",
682
+ },
683
+ description: "An image from a `https` or relative URL.",
684
+ defaultVariant: "default",
685
+ };
686
+ export const Link = {
687
+ kind: "link",
688
+ props: {
689
+ type: "object",
690
+ properties: {
691
+ label: {
692
+ type: "string",
693
+ maxLength: 80,
694
+ },
695
+ href: {
696
+ type: "string",
697
+ maxLength: 2048,
698
+ url: {
699
+ schemes: ["https"],
700
+ relative: true,
701
+ },
702
+ },
703
+ },
704
+ required: ["label", "href"],
705
+ additionalProperties: false,
706
+ },
707
+ children: "none",
708
+ events: {},
709
+ variants: ["default"],
710
+ slots: ["root", "label"],
711
+ styleProps: [
712
+ "padding",
713
+ "paddingX",
714
+ "paddingY",
715
+ "paddingTop",
716
+ "paddingRight",
717
+ "paddingBottom",
718
+ "paddingLeft",
719
+ "margin",
720
+ "marginX",
721
+ "marginY",
722
+ "marginTop",
723
+ "marginRight",
724
+ "marginBottom",
725
+ "marginLeft",
726
+ "width",
727
+ "height",
728
+ "minWidth",
729
+ "maxWidth",
730
+ "grow",
731
+ "shrink",
732
+ "basis",
733
+ "position",
734
+ "insetTop",
735
+ "insetBottom",
736
+ ],
737
+ a11y: {
738
+ role: "link",
739
+ name: "label",
740
+ },
741
+ description: "A link to a `https` or relative URL.",
742
+ defaultVariant: "default",
743
+ };
744
+ export const Button = {
745
+ kind: "button",
746
+ props: {
747
+ type: "object",
748
+ properties: {
749
+ label: {
750
+ type: "string",
751
+ maxLength: 80,
752
+ },
753
+ icon: {
754
+ type: "string",
755
+ maxLength: 128,
756
+ pattern: "^[a-zA-Z0-9][a-zA-Z0-9._-]*$",
757
+ },
758
+ disabled: {
759
+ type: "boolean",
760
+ },
761
+ current: {
762
+ type: "boolean",
763
+ },
764
+ pressed: {
765
+ type: "boolean",
766
+ },
767
+ tone: {
768
+ type: "string",
769
+ enum: ["neutral", "critical"],
770
+ maxLength: 8,
771
+ },
772
+ },
773
+ required: ["label"],
774
+ additionalProperties: false,
775
+ },
776
+ children: "none",
777
+ events: {
778
+ onPress: {
779
+ carries: "none",
780
+ description: "Pressed by pointer, Enter or Space.",
781
+ },
782
+ },
783
+ variants: ["default", "primary", "ghost"],
784
+ slots: ["root", "label", "icon"],
785
+ styleProps: ["width", "grow", "align"],
786
+ a11y: {
787
+ role: "button",
788
+ name: "label",
789
+ },
790
+ description: "Runs one intent when pressed. `tone` marks a critical action.",
791
+ defaultVariant: "default",
792
+ axes: {
793
+ tone: {
794
+ default: "neutral",
795
+ },
796
+ },
797
+ };
798
+ export const TextField = {
799
+ kind: "textField",
800
+ props: {
801
+ type: "object",
802
+ properties: {
803
+ label: {
804
+ type: "string",
805
+ maxLength: 80,
806
+ },
807
+ value: {
808
+ type: "string",
809
+ maxLength: 10000,
810
+ },
811
+ placeholder: {
812
+ type: "string",
813
+ maxLength: 10000,
814
+ },
815
+ multiline: {
816
+ type: "boolean",
817
+ },
818
+ disabled: {
819
+ type: "boolean",
820
+ },
821
+ readOnly: {
822
+ type: "boolean",
823
+ },
824
+ maxLength: {
825
+ type: "integer",
826
+ minimum: 1,
827
+ maximum: 10000,
828
+ },
829
+ describedBy: {
830
+ type: "string",
831
+ maxLength: 1024,
832
+ },
833
+ },
834
+ required: ["label"],
835
+ additionalProperties: false,
836
+ },
837
+ children: "none",
838
+ events: {
839
+ onChange: {
840
+ carries: "string",
841
+ description: "The value changed.",
842
+ },
843
+ onCommit: {
844
+ carries: "string",
845
+ description: "The user confirmed the text with Enter.",
846
+ },
847
+ },
848
+ variants: ["default"],
849
+ slots: ["root", "label", "input"],
850
+ styleProps: [
851
+ "padding",
852
+ "paddingX",
853
+ "paddingY",
854
+ "paddingTop",
855
+ "paddingRight",
856
+ "paddingBottom",
857
+ "paddingLeft",
858
+ "margin",
859
+ "marginX",
860
+ "marginY",
861
+ "marginTop",
862
+ "marginRight",
863
+ "marginBottom",
864
+ "marginLeft",
865
+ "width",
866
+ "height",
867
+ "minWidth",
868
+ "maxWidth",
869
+ "grow",
870
+ "shrink",
871
+ "basis",
872
+ "position",
873
+ "insetTop",
874
+ "insetBottom",
875
+ ],
876
+ a11y: {
877
+ role: "textbox",
878
+ name: "label",
879
+ },
880
+ refProps: ["describedBy"],
881
+ description: "A single- or multi-line text input. `onChange` carries the text; `onCommit` fires on Enter.",
882
+ defaultVariant: "default",
883
+ };
884
+ export const Select = {
885
+ kind: "select",
886
+ props: {
887
+ type: "object",
888
+ properties: {
889
+ label: {
890
+ type: "string",
891
+ maxLength: 80,
892
+ },
893
+ value: {
894
+ type: "string",
895
+ maxLength: 128,
896
+ pattern: "^[a-zA-Z0-9][a-zA-Z0-9._-]*$",
897
+ },
898
+ disabled: {
899
+ type: "boolean",
900
+ },
901
+ options: {
902
+ type: "array",
903
+ maxItems: 100,
904
+ items: {
905
+ type: "object",
906
+ properties: {
907
+ value: {
908
+ type: "string",
909
+ maxLength: 128,
910
+ pattern: "^[a-zA-Z0-9][a-zA-Z0-9._-]*$",
911
+ },
912
+ label: {
913
+ type: "string",
914
+ maxLength: 80,
915
+ },
916
+ disabled: {
917
+ type: "boolean",
918
+ },
919
+ },
920
+ required: ["value", "label"],
921
+ additionalProperties: false,
922
+ },
923
+ },
924
+ },
925
+ required: ["label", "options"],
926
+ additionalProperties: false,
927
+ },
928
+ children: "none",
929
+ events: {
930
+ onChange: {
931
+ carries: "string",
932
+ description: "The value changed.",
933
+ },
934
+ },
935
+ variants: ["default"],
936
+ slots: ["root", "label", "trigger", "list", "option"],
937
+ styleProps: [
938
+ "padding",
939
+ "paddingX",
940
+ "paddingY",
941
+ "paddingTop",
942
+ "paddingRight",
943
+ "paddingBottom",
944
+ "paddingLeft",
945
+ "margin",
946
+ "marginX",
947
+ "marginY",
948
+ "marginTop",
949
+ "marginRight",
950
+ "marginBottom",
951
+ "marginLeft",
952
+ "width",
953
+ "height",
954
+ "minWidth",
955
+ "maxWidth",
956
+ "grow",
957
+ "shrink",
958
+ "basis",
959
+ "position",
960
+ "insetTop",
961
+ "insetBottom",
962
+ ],
963
+ a11y: {
964
+ role: "combobox",
965
+ name: "label",
966
+ },
967
+ description: "Chooses one value from a list of options.",
968
+ defaultVariant: "default",
969
+ };
970
+ export const Checkbox = {
971
+ kind: "checkbox",
972
+ props: {
973
+ type: "object",
974
+ properties: {
975
+ label: {
976
+ type: "string",
977
+ maxLength: 80,
978
+ },
979
+ checked: {
980
+ type: "boolean",
981
+ },
982
+ disabled: {
983
+ type: "boolean",
984
+ },
985
+ },
986
+ required: ["label"],
987
+ additionalProperties: false,
988
+ },
989
+ children: "none",
990
+ events: {
991
+ onChange: {
992
+ carries: "boolean",
993
+ description: "The value changed.",
994
+ },
995
+ },
996
+ variants: ["default"],
997
+ slots: ["root", "label", "indicator"],
998
+ styleProps: [
999
+ "padding",
1000
+ "paddingX",
1001
+ "paddingY",
1002
+ "paddingTop",
1003
+ "paddingRight",
1004
+ "paddingBottom",
1005
+ "paddingLeft",
1006
+ "margin",
1007
+ "marginX",
1008
+ "marginY",
1009
+ "marginTop",
1010
+ "marginRight",
1011
+ "marginBottom",
1012
+ "marginLeft",
1013
+ "width",
1014
+ "height",
1015
+ "minWidth",
1016
+ "maxWidth",
1017
+ "grow",
1018
+ "shrink",
1019
+ "basis",
1020
+ "position",
1021
+ "insetTop",
1022
+ "insetBottom",
1023
+ ],
1024
+ a11y: {
1025
+ role: "checkbox",
1026
+ name: "label",
1027
+ },
1028
+ description: "A box that is checked or not.",
1029
+ defaultVariant: "default",
1030
+ };
1031
+ export const Switch = {
1032
+ kind: "switch",
1033
+ props: {
1034
+ type: "object",
1035
+ properties: {
1036
+ label: {
1037
+ type: "string",
1038
+ maxLength: 80,
1039
+ },
1040
+ checked: {
1041
+ type: "boolean",
1042
+ },
1043
+ disabled: {
1044
+ type: "boolean",
1045
+ },
1046
+ },
1047
+ required: ["label"],
1048
+ additionalProperties: false,
1049
+ },
1050
+ children: "none",
1051
+ events: {
1052
+ onChange: {
1053
+ carries: "boolean",
1054
+ description: "The value changed.",
1055
+ },
1056
+ },
1057
+ variants: ["default"],
1058
+ slots: ["root", "label", "track", "thumb"],
1059
+ styleProps: [
1060
+ "padding",
1061
+ "paddingX",
1062
+ "paddingY",
1063
+ "paddingTop",
1064
+ "paddingRight",
1065
+ "paddingBottom",
1066
+ "paddingLeft",
1067
+ "margin",
1068
+ "marginX",
1069
+ "marginY",
1070
+ "marginTop",
1071
+ "marginRight",
1072
+ "marginBottom",
1073
+ "marginLeft",
1074
+ "width",
1075
+ "height",
1076
+ "minWidth",
1077
+ "maxWidth",
1078
+ "grow",
1079
+ "shrink",
1080
+ "basis",
1081
+ "position",
1082
+ "insetTop",
1083
+ "insetBottom",
1084
+ ],
1085
+ a11y: {
1086
+ role: "switch",
1087
+ name: "label",
1088
+ },
1089
+ description: "A two-state toggle that takes effect at once.",
1090
+ defaultVariant: "default",
1091
+ };
1092
+ export const Menu = {
1093
+ kind: "menu",
1094
+ props: {
1095
+ type: "object",
1096
+ properties: {
1097
+ label: {
1098
+ type: "string",
1099
+ maxLength: 80,
1100
+ },
1101
+ disabled: {
1102
+ type: "boolean",
1103
+ },
1104
+ },
1105
+ required: ["label"],
1106
+ additionalProperties: false,
1107
+ },
1108
+ children: [{ kind: "menuItem", min: 1, max: 100 }],
1109
+ events: {},
1110
+ variants: ["default"],
1111
+ slots: ["root", "trigger", "content"],
1112
+ styleProps: [
1113
+ "padding",
1114
+ "paddingX",
1115
+ "paddingY",
1116
+ "paddingTop",
1117
+ "paddingRight",
1118
+ "paddingBottom",
1119
+ "paddingLeft",
1120
+ "margin",
1121
+ "marginX",
1122
+ "marginY",
1123
+ "marginTop",
1124
+ "marginRight",
1125
+ "marginBottom",
1126
+ "marginLeft",
1127
+ "width",
1128
+ "height",
1129
+ "minWidth",
1130
+ "maxWidth",
1131
+ "grow",
1132
+ "shrink",
1133
+ "basis",
1134
+ "position",
1135
+ "insetTop",
1136
+ "insetBottom",
1137
+ ],
1138
+ a11y: {
1139
+ role: "menu",
1140
+ name: "label",
1141
+ },
1142
+ description: "A button that opens a list of menu items.",
1143
+ defaultVariant: "default",
1144
+ };
1145
+ export const MenuItem = {
1146
+ kind: "menuItem",
1147
+ props: {
1148
+ type: "object",
1149
+ properties: {
1150
+ label: {
1151
+ type: "string",
1152
+ maxLength: 80,
1153
+ },
1154
+ icon: {
1155
+ type: "string",
1156
+ maxLength: 128,
1157
+ pattern: "^[a-zA-Z0-9][a-zA-Z0-9._-]*$",
1158
+ },
1159
+ disabled: {
1160
+ type: "boolean",
1161
+ },
1162
+ },
1163
+ required: ["label"],
1164
+ additionalProperties: false,
1165
+ },
1166
+ children: "none",
1167
+ events: {
1168
+ onPress: {
1169
+ carries: "none",
1170
+ description: "Pressed by pointer, Enter or Space.",
1171
+ },
1172
+ },
1173
+ variants: ["default"],
1174
+ slots: ["root", "label", "icon"],
1175
+ styleProps: [
1176
+ "padding",
1177
+ "paddingX",
1178
+ "paddingY",
1179
+ "paddingTop",
1180
+ "paddingRight",
1181
+ "paddingBottom",
1182
+ "paddingLeft",
1183
+ "margin",
1184
+ "marginX",
1185
+ "marginY",
1186
+ "marginTop",
1187
+ "marginRight",
1188
+ "marginBottom",
1189
+ "marginLeft",
1190
+ "width",
1191
+ "height",
1192
+ "minWidth",
1193
+ "maxWidth",
1194
+ "grow",
1195
+ "shrink",
1196
+ "basis",
1197
+ "position",
1198
+ "insetTop",
1199
+ "insetBottom",
1200
+ ],
1201
+ a11y: {
1202
+ role: "menuitem",
1203
+ name: "label",
1204
+ },
1205
+ description: "One action in a menu.",
1206
+ defaultVariant: "default",
1207
+ };
1208
+ export const Popover = {
1209
+ kind: "popover",
1210
+ props: {
1211
+ type: "object",
1212
+ properties: {
1213
+ label: {
1214
+ type: "string",
1215
+ maxLength: 80,
1216
+ },
1217
+ },
1218
+ required: ["label"],
1219
+ additionalProperties: false,
1220
+ },
1221
+ children: "any",
1222
+ events: {},
1223
+ variants: ["default"],
1224
+ slots: ["root", "trigger", "content"],
1225
+ styleProps: [
1226
+ "padding",
1227
+ "paddingX",
1228
+ "paddingY",
1229
+ "paddingTop",
1230
+ "paddingRight",
1231
+ "paddingBottom",
1232
+ "paddingLeft",
1233
+ "margin",
1234
+ "marginX",
1235
+ "marginY",
1236
+ "marginTop",
1237
+ "marginRight",
1238
+ "marginBottom",
1239
+ "marginLeft",
1240
+ "width",
1241
+ "height",
1242
+ "minWidth",
1243
+ "maxWidth",
1244
+ "grow",
1245
+ "shrink",
1246
+ "basis",
1247
+ "position",
1248
+ "insetTop",
1249
+ "insetBottom",
1250
+ ],
1251
+ a11y: {
1252
+ role: "dialog",
1253
+ name: "label",
1254
+ },
1255
+ description: "A button that opens a small floating panel of children.",
1256
+ defaultVariant: "default",
1257
+ };
1258
+ export const Dialog = {
1259
+ kind: "dialog",
1260
+ props: {
1261
+ type: "object",
1262
+ properties: {
1263
+ label: {
1264
+ type: "string",
1265
+ maxLength: 80,
1266
+ },
1267
+ open: {
1268
+ type: "boolean",
1269
+ },
1270
+ },
1271
+ required: ["label"],
1272
+ additionalProperties: false,
1273
+ },
1274
+ children: "any",
1275
+ events: {
1276
+ onClose: {
1277
+ carries: "none",
1278
+ description: "Dismissed by the user.",
1279
+ },
1280
+ },
1281
+ variants: ["default"],
1282
+ slots: ["root", "backdrop", "content", "title", "close"],
1283
+ styleProps: [
1284
+ "padding",
1285
+ "paddingX",
1286
+ "paddingY",
1287
+ "paddingTop",
1288
+ "paddingRight",
1289
+ "paddingBottom",
1290
+ "paddingLeft",
1291
+ "margin",
1292
+ "marginX",
1293
+ "marginY",
1294
+ "marginTop",
1295
+ "marginRight",
1296
+ "marginBottom",
1297
+ "marginLeft",
1298
+ "width",
1299
+ "height",
1300
+ "minWidth",
1301
+ "maxWidth",
1302
+ "grow",
1303
+ "shrink",
1304
+ "basis",
1305
+ "position",
1306
+ "insetTop",
1307
+ "insetBottom",
1308
+ ],
1309
+ a11y: {
1310
+ role: "dialog",
1311
+ name: "label",
1312
+ },
1313
+ description: "A modal panel over the surface. `onClose` fires when it is dismissed.",
1314
+ defaultVariant: "default",
1315
+ };
1316
+ export const Tooltip = {
1317
+ kind: "tooltip",
1318
+ props: {
1319
+ type: "object",
1320
+ properties: {
1321
+ text: {
1322
+ type: "string",
1323
+ maxLength: 10000,
1324
+ },
1325
+ },
1326
+ required: ["text"],
1327
+ additionalProperties: false,
1328
+ },
1329
+ children: "any",
1330
+ events: {},
1331
+ variants: ["default"],
1332
+ slots: ["root", "trigger", "content"],
1333
+ styleProps: [
1334
+ "padding",
1335
+ "paddingX",
1336
+ "paddingY",
1337
+ "paddingTop",
1338
+ "paddingRight",
1339
+ "paddingBottom",
1340
+ "paddingLeft",
1341
+ "margin",
1342
+ "marginX",
1343
+ "marginY",
1344
+ "marginTop",
1345
+ "marginRight",
1346
+ "marginBottom",
1347
+ "marginLeft",
1348
+ "width",
1349
+ "height",
1350
+ "minWidth",
1351
+ "maxWidth",
1352
+ "grow",
1353
+ "shrink",
1354
+ "basis",
1355
+ "position",
1356
+ "insetTop",
1357
+ "insetBottom",
1358
+ ],
1359
+ a11y: {
1360
+ role: "tooltip",
1361
+ name: "text",
1362
+ },
1363
+ description: "Short text shown when its children are hovered or focused.",
1364
+ defaultVariant: "default",
1365
+ };
1366
+ export const Tabs = {
1367
+ kind: "tabs",
1368
+ props: {
1369
+ type: "object",
1370
+ properties: {
1371
+ label: {
1372
+ type: "string",
1373
+ maxLength: 80,
1374
+ },
1375
+ value: {
1376
+ type: "string",
1377
+ maxLength: 128,
1378
+ pattern: "^[a-zA-Z0-9][a-zA-Z0-9._-]*$",
1379
+ },
1380
+ },
1381
+ required: ["label"],
1382
+ additionalProperties: false,
1383
+ },
1384
+ children: [{ kind: "tab", min: 1, max: 100 }],
1385
+ events: {
1386
+ onChange: {
1387
+ carries: "string",
1388
+ description: "The value changed.",
1389
+ },
1390
+ },
1391
+ variants: ["default"],
1392
+ slots: ["root", "list", "panel"],
1393
+ styleProps: [
1394
+ "padding",
1395
+ "paddingX",
1396
+ "paddingY",
1397
+ "paddingTop",
1398
+ "paddingRight",
1399
+ "paddingBottom",
1400
+ "paddingLeft",
1401
+ "margin",
1402
+ "marginX",
1403
+ "marginY",
1404
+ "marginTop",
1405
+ "marginRight",
1406
+ "marginBottom",
1407
+ "marginLeft",
1408
+ "width",
1409
+ "height",
1410
+ "minWidth",
1411
+ "maxWidth",
1412
+ "grow",
1413
+ "shrink",
1414
+ "basis",
1415
+ "position",
1416
+ "insetTop",
1417
+ "insetBottom",
1418
+ ],
1419
+ a11y: {
1420
+ role: "tablist",
1421
+ name: "label",
1422
+ },
1423
+ description: "A row of tabs with one panel visible at a time.",
1424
+ defaultVariant: "default",
1425
+ };
1426
+ export const Disclosure = {
1427
+ kind: "disclosure",
1428
+ props: {
1429
+ type: "object",
1430
+ properties: {
1431
+ label: {
1432
+ type: "string",
1433
+ maxLength: 80,
1434
+ },
1435
+ open: {
1436
+ type: "boolean",
1437
+ },
1438
+ },
1439
+ required: ["label"],
1440
+ additionalProperties: false,
1441
+ },
1442
+ children: "any",
1443
+ events: {
1444
+ onToggle: {
1445
+ carries: "boolean",
1446
+ description: "Opened or closed; carries the new state.",
1447
+ },
1448
+ },
1449
+ variants: ["default"],
1450
+ slots: ["root", "summary", "panel"],
1451
+ styleProps: [
1452
+ "padding",
1453
+ "paddingX",
1454
+ "paddingY",
1455
+ "paddingTop",
1456
+ "paddingRight",
1457
+ "paddingBottom",
1458
+ "paddingLeft",
1459
+ "margin",
1460
+ "marginX",
1461
+ "marginY",
1462
+ "marginTop",
1463
+ "marginRight",
1464
+ "marginBottom",
1465
+ "marginLeft",
1466
+ "width",
1467
+ "height",
1468
+ "minWidth",
1469
+ "maxWidth",
1470
+ "grow",
1471
+ "shrink",
1472
+ "basis",
1473
+ "position",
1474
+ "insetTop",
1475
+ "insetBottom",
1476
+ ],
1477
+ a11y: {
1478
+ role: "group",
1479
+ name: "label",
1480
+ },
1481
+ description: "A summary label that expands its children locally; `onToggle` reports the new state.",
1482
+ defaultVariant: "default",
1483
+ };
1484
+ export const Tab = {
1485
+ kind: "tab",
1486
+ props: {
1487
+ type: "object",
1488
+ properties: {
1489
+ label: {
1490
+ type: "string",
1491
+ maxLength: 80,
1492
+ },
1493
+ count: {
1494
+ type: "string",
1495
+ maxLength: 16,
1496
+ },
1497
+ value: {
1498
+ type: "string",
1499
+ maxLength: 128,
1500
+ pattern: "^[a-zA-Z0-9][a-zA-Z0-9._-]*$",
1501
+ },
1502
+ disabled: {
1503
+ type: "boolean",
1504
+ },
1505
+ },
1506
+ required: ["label", "value"],
1507
+ additionalProperties: false,
1508
+ },
1509
+ children: "any",
1510
+ events: {},
1511
+ variants: ["default"],
1512
+ slots: ["root", "label", "count", "panel"],
1513
+ styleProps: [
1514
+ "padding",
1515
+ "paddingX",
1516
+ "paddingY",
1517
+ "paddingTop",
1518
+ "paddingRight",
1519
+ "paddingBottom",
1520
+ "paddingLeft",
1521
+ "margin",
1522
+ "marginX",
1523
+ "marginY",
1524
+ "marginTop",
1525
+ "marginRight",
1526
+ "marginBottom",
1527
+ "marginLeft",
1528
+ "width",
1529
+ "height",
1530
+ "minWidth",
1531
+ "maxWidth",
1532
+ "grow",
1533
+ "shrink",
1534
+ "basis",
1535
+ "position",
1536
+ "insetTop",
1537
+ "insetBottom",
1538
+ ],
1539
+ a11y: {
1540
+ role: "tab",
1541
+ name: "label",
1542
+ },
1543
+ description: "One tab and its panel; a child of `tabs`.",
1544
+ defaultVariant: "default",
1545
+ };