@tangible/ui 0.0.1 → 0.0.3
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/components/Card/Card.d.ts +1 -0
- package/components/Card/Card.js +17 -20
- package/components/Checkbox/Checkbox.d.ts +9 -0
- package/components/Checkbox/Checkbox.js +92 -0
- package/components/Checkbox/index.d.ts +2 -0
- package/components/Checkbox/index.js +1 -0
- package/components/Checkbox/types.d.ts +10 -0
- package/components/Checkbox/types.js +1 -0
- package/components/Chip/Chip.d.ts +4 -1
- package/components/Chip/Chip.js +32 -7
- package/components/ChipGroup/ChipGroup.d.ts +5 -0
- package/components/ChipGroup/ChipGroup.js +68 -0
- package/components/ChipGroup/ChipGroupContext.d.ts +3 -0
- package/components/ChipGroup/ChipGroupContext.js +5 -0
- package/components/ChipGroup/index.d.ts +3 -0
- package/components/ChipGroup/index.js +2 -0
- package/components/ChipGroup/types.d.ts +36 -0
- package/components/ChipGroup/types.js +1 -0
- package/components/Chips/Chips.d.ts +2 -0
- package/components/Chips/Chips.js +1 -1
- package/components/Combobox/Combobox.d.ts +33 -0
- package/components/Combobox/Combobox.js +466 -0
- package/components/Combobox/ComboboxContext.d.ts +8 -0
- package/components/Combobox/ComboboxContext.js +36 -0
- package/components/Combobox/index.d.ts +2 -0
- package/components/Combobox/index.js +1 -0
- package/components/Combobox/types.d.ts +204 -0
- package/components/Combobox/types.js +1 -0
- package/components/Dropdown/Dropdown.js +2 -1
- package/components/Field/Field.d.ts +39 -0
- package/components/Field/Field.js +92 -0
- package/components/Field/FieldContext.d.ts +16 -0
- package/components/Field/FieldContext.js +10 -0
- package/components/Field/index.d.ts +2 -0
- package/components/Field/index.js +1 -0
- package/components/Modal/Modal.d.ts +4 -4
- package/components/Modal/Modal.js +14 -12
- package/components/MoveHandle/MoveHandle.d.ts +2 -0
- package/components/MoveHandle/MoveHandle.js +84 -0
- package/components/MoveHandle/index.d.ts +2 -0
- package/components/MoveHandle/index.js +1 -0
- package/components/MoveHandle/types.d.ts +43 -0
- package/components/MoveHandle/types.js +1 -0
- package/components/MultiSelect/MultiSelect.d.ts +39 -0
- package/components/MultiSelect/MultiSelect.js +623 -0
- package/components/MultiSelect/MultiSelectContext.d.ts +20 -0
- package/components/MultiSelect/MultiSelectContext.js +56 -0
- package/components/MultiSelect/index.d.ts +2 -0
- package/components/MultiSelect/index.js +1 -0
- package/components/MultiSelect/types.d.ts +218 -0
- package/components/MultiSelect/types.js +3 -0
- package/components/Notice/Notice.d.ts +1 -1
- package/components/Notice/Notice.js +1 -1
- package/components/Progress/Progress.js +1 -1
- package/components/Progress/types.d.ts +7 -7
- package/components/Radio/Radio.d.ts +2 -0
- package/components/Radio/Radio.js +50 -0
- package/components/Radio/RadioGroup.d.ts +2 -0
- package/components/Radio/RadioGroup.js +54 -0
- package/components/Radio/RadioGroupContext.d.ts +3 -0
- package/components/Radio/RadioGroupContext.js +9 -0
- package/components/Radio/index.d.ts +8 -0
- package/components/Radio/index.js +6 -0
- package/components/Radio/types.d.ts +32 -0
- package/components/Radio/types.js +1 -0
- package/components/Rating/Rating.d.ts +5 -5
- package/components/Rating/Rating.js +2 -2
- package/components/SegmentedControl/SegmentedControl.js +20 -104
- package/components/SegmentedControl/types.d.ts +4 -8
- package/components/Select/Select.d.ts +39 -0
- package/components/Select/Select.js +497 -0
- package/components/Select/SelectContext.d.ts +20 -0
- package/components/Select/SelectContext.js +56 -0
- package/components/Select/index.d.ts +3 -0
- package/components/Select/index.js +1 -0
- package/components/Select/types.d.ts +216 -0
- package/components/Select/types.js +11 -0
- package/components/Sidebar/Sidebar.js +12 -12
- package/components/Sidebar/types.d.ts +5 -5
- package/components/StepIndicator/StepIndicator.js +1 -1
- package/components/StepList/StepList.js +2 -2
- package/components/StepList/types.d.ts +4 -4
- package/components/Switch/Switch.d.ts +9 -0
- package/components/Switch/Switch.js +91 -0
- package/components/Switch/index.d.ts +2 -0
- package/components/Switch/index.js +1 -0
- package/components/Switch/types.d.ts +11 -0
- package/components/Switch/types.js +1 -0
- package/components/TextInput/TextInput.d.ts +8 -0
- package/components/TextInput/TextInput.js +25 -0
- package/components/TextInput/index.d.ts +2 -0
- package/components/TextInput/index.js +1 -0
- package/components/TextInput/types.d.ts +32 -0
- package/components/TextInput/types.js +1 -0
- package/components/Textarea/Textarea.d.ts +6 -0
- package/components/Textarea/Textarea.js +49 -0
- package/components/Textarea/index.d.ts +2 -0
- package/components/Textarea/index.js +1 -0
- package/components/Textarea/types.d.ts +25 -0
- package/components/Textarea/types.js +1 -0
- package/components/index.d.ts +22 -0
- package/components/index.js +11 -0
- package/icons/icons.svg +2 -0
- package/icons/manifest.json +16 -0
- package/icons/registry.d.ts +4 -0
- package/icons/registry.js +2 -0
- package/icons/system/index.d.ts +4 -0
- package/icons/system/index.js +22 -0
- package/package.json +1 -1
- package/styles/all.css +1 -1
- package/styles/all.expanded.css +1838 -136
- package/styles/all.expanded.unlayered.css +1838 -136
- package/styles/all.unlayered.css +1 -1
- package/styles/components/_bundle.scss +22 -0
- package/styles/components/input/index.scss +5 -20
- package/styles/index.scss +21 -0
- package/styles/system/_control.scss +49 -0
- package/styles/system/_tokens.scss +124 -2
- package/styles/system/index.scss +2 -1
- package/styles/utilities/_index.scss +50 -0
- package/tui-manifest.json +907 -112
- package/utils/compose-events.d.ts +15 -0
- package/utils/compose-events.js +27 -0
- package/utils/hash.d.ts +15 -0
- package/utils/hash.js +32 -0
- package/utils/index.d.ts +3 -0
- package/utils/index.js +6 -0
- package/utils/is-dev.d.ts +5 -0
- package/utils/is-dev.js +7 -0
- package/utils/use-controllable-state.d.ts +19 -0
- package/utils/use-controllable-state.js +59 -0
- package/utils/use-roving-group.d.ts +33 -0
- package/utils/use-roving-group.js +123 -0
- package/utils/value-key.d.ts +16 -0
- package/utils/value-key.js +14 -0
package/tui-manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.0.
|
|
3
|
-
"generated": "2026-
|
|
2
|
+
"version": "0.0.3",
|
|
3
|
+
"generated": "2026-02-24T00:56:13.287Z",
|
|
4
4
|
"components": {
|
|
5
5
|
"Accordion": {
|
|
6
6
|
"props": {
|
|
@@ -128,7 +128,21 @@
|
|
|
128
128
|
"description": "Additional CSS class"
|
|
129
129
|
}
|
|
130
130
|
},
|
|
131
|
-
"cssTokens": [
|
|
131
|
+
"cssTokens": [
|
|
132
|
+
"--tui-avatar-size",
|
|
133
|
+
"--tui-avatar-radius",
|
|
134
|
+
"--tui-avatar-bg",
|
|
135
|
+
"--tui-avatar-fg",
|
|
136
|
+
"--tui-avatar-border",
|
|
137
|
+
"--tui-avatar-indicator-bg",
|
|
138
|
+
"--tui-avatar-indicator-fg",
|
|
139
|
+
"--tui-avatar-overflow-bg",
|
|
140
|
+
"--tui-avatar-overflow-fg",
|
|
141
|
+
"--tui-avatar-group-overlap",
|
|
142
|
+
"--tui-avatar-group-gap",
|
|
143
|
+
"--tui-avatar-group-border-width",
|
|
144
|
+
"--tui-avatar-group-border-color"
|
|
145
|
+
],
|
|
132
146
|
"story": {
|
|
133
147
|
"title": "Primitives/Avatar",
|
|
134
148
|
"tags": [
|
|
@@ -270,7 +284,10 @@
|
|
|
270
284
|
"--tui-button-radius",
|
|
271
285
|
"--tui-button-bg-interact",
|
|
272
286
|
"--tui-button-fg-interact",
|
|
273
|
-
"--tui-button-border-interact"
|
|
287
|
+
"--tui-button-border-interact",
|
|
288
|
+
"--tui-control-height-sm",
|
|
289
|
+
"--tui-control-height-md",
|
|
290
|
+
"--tui-control-height-lg"
|
|
274
291
|
],
|
|
275
292
|
"story": {
|
|
276
293
|
"title": "Primitives/Button",
|
|
@@ -354,7 +371,8 @@
|
|
|
354
371
|
},
|
|
355
372
|
"onClick": {
|
|
356
373
|
"type": "MouseEventHandler<HTMLElement>",
|
|
357
|
-
"required": false
|
|
374
|
+
"required": false,
|
|
375
|
+
"description": "@deprecated Use Card.Link for interactive cards. onClick without Card.Link has no keyboard/screen-reader semantics."
|
|
358
376
|
},
|
|
359
377
|
"title": {
|
|
360
378
|
"type": "string",
|
|
@@ -434,6 +452,61 @@
|
|
|
434
452
|
"Notice"
|
|
435
453
|
]
|
|
436
454
|
},
|
|
455
|
+
"Checkbox": {
|
|
456
|
+
"props": {
|
|
457
|
+
"disabled": {
|
|
458
|
+
"type": "boolean",
|
|
459
|
+
"required": false
|
|
460
|
+
},
|
|
461
|
+
"size": {
|
|
462
|
+
"type": "number",
|
|
463
|
+
"required": false
|
|
464
|
+
},
|
|
465
|
+
"className": {
|
|
466
|
+
"type": "string",
|
|
467
|
+
"required": false
|
|
468
|
+
},
|
|
469
|
+
"id": {
|
|
470
|
+
"type": "string",
|
|
471
|
+
"required": false
|
|
472
|
+
},
|
|
473
|
+
"style": {
|
|
474
|
+
"type": "CSSProperties",
|
|
475
|
+
"required": false
|
|
476
|
+
},
|
|
477
|
+
"title": {
|
|
478
|
+
"type": "string",
|
|
479
|
+
"required": false
|
|
480
|
+
},
|
|
481
|
+
"rel": {
|
|
482
|
+
"type": "string",
|
|
483
|
+
"required": false
|
|
484
|
+
},
|
|
485
|
+
"onClick": {
|
|
486
|
+
"type": "MouseEventHandler<HTMLInputElement>",
|
|
487
|
+
"required": false
|
|
488
|
+
},
|
|
489
|
+
"label": {
|
|
490
|
+
"type": "ReactNode",
|
|
491
|
+
"required": false
|
|
492
|
+
}
|
|
493
|
+
},
|
|
494
|
+
"cssTokens": [
|
|
495
|
+
"--tui-input-accent"
|
|
496
|
+
],
|
|
497
|
+
"story": {
|
|
498
|
+
"title": "Forms/Checkbox",
|
|
499
|
+
"tags": [
|
|
500
|
+
"autodocs",
|
|
501
|
+
"lms"
|
|
502
|
+
]
|
|
503
|
+
},
|
|
504
|
+
"subcomponents": null,
|
|
505
|
+
"description": null,
|
|
506
|
+
"gotchas": null,
|
|
507
|
+
"examples": null,
|
|
508
|
+
"related": null
|
|
509
|
+
},
|
|
437
510
|
"Chip": {
|
|
438
511
|
"props": {
|
|
439
512
|
"as": {
|
|
@@ -496,6 +569,11 @@
|
|
|
496
569
|
"type": "MouseEventHandler<HTMLElement>",
|
|
497
570
|
"required": false
|
|
498
571
|
},
|
|
572
|
+
"value": {
|
|
573
|
+
"type": "OptionValue",
|
|
574
|
+
"required": false,
|
|
575
|
+
"description": "When inside ChipGroup, identifies this chip for selection tracking"
|
|
576
|
+
},
|
|
499
577
|
"id": {
|
|
500
578
|
"type": "string",
|
|
501
579
|
"required": false
|
|
@@ -517,7 +595,13 @@
|
|
|
517
595
|
"required": false
|
|
518
596
|
}
|
|
519
597
|
},
|
|
520
|
-
"cssTokens": [
|
|
598
|
+
"cssTokens": [
|
|
599
|
+
"--tui-chip-bg",
|
|
600
|
+
"--tui-chip-fg",
|
|
601
|
+
"--tui-chip-border",
|
|
602
|
+
"--tui-chip-icon",
|
|
603
|
+
"--tui-chip-radius"
|
|
604
|
+
],
|
|
521
605
|
"story": {
|
|
522
606
|
"title": "Primitives/Chip",
|
|
523
607
|
"tags": [
|
|
@@ -531,6 +615,52 @@
|
|
|
531
615
|
"examples": null,
|
|
532
616
|
"related": null
|
|
533
617
|
},
|
|
618
|
+
"ChipGroup": {
|
|
619
|
+
"props": {
|
|
620
|
+
"disabled": {
|
|
621
|
+
"type": "boolean",
|
|
622
|
+
"required": false
|
|
623
|
+
},
|
|
624
|
+
"density": {
|
|
625
|
+
"type": "\"xs\" | \"sm\" | \"md\"",
|
|
626
|
+
"required": false,
|
|
627
|
+
"description": "Gap between chips. Default 'sm'."
|
|
628
|
+
},
|
|
629
|
+
"direction": {
|
|
630
|
+
"type": "\"inline\" | \"stack\"",
|
|
631
|
+
"required": false,
|
|
632
|
+
"description": "Layout direction. Default 'inline' (row wrap)."
|
|
633
|
+
},
|
|
634
|
+
"alignment": {
|
|
635
|
+
"type": "\"start\" | \"center\" | \"end\"",
|
|
636
|
+
"required": false,
|
|
637
|
+
"description": "Alignment along main axis."
|
|
638
|
+
},
|
|
639
|
+
"className": {
|
|
640
|
+
"type": "string",
|
|
641
|
+
"required": false
|
|
642
|
+
},
|
|
643
|
+
"onValueChange": {
|
|
644
|
+
"type": "((value: OptionValue) => void) | ((value: OptionValue[]) => void)",
|
|
645
|
+
"required": false
|
|
646
|
+
}
|
|
647
|
+
},
|
|
648
|
+
"cssTokens": [
|
|
649
|
+
"--tui-chip-group-gap"
|
|
650
|
+
],
|
|
651
|
+
"story": {
|
|
652
|
+
"title": "Primitives/ChipGroup",
|
|
653
|
+
"tags": [
|
|
654
|
+
"autodocs",
|
|
655
|
+
"stable"
|
|
656
|
+
]
|
|
657
|
+
},
|
|
658
|
+
"subcomponents": null,
|
|
659
|
+
"description": null,
|
|
660
|
+
"gotchas": null,
|
|
661
|
+
"examples": null,
|
|
662
|
+
"related": null
|
|
663
|
+
},
|
|
534
664
|
"Chips": {
|
|
535
665
|
"props": {
|
|
536
666
|
"density": {
|
|
@@ -563,6 +693,89 @@
|
|
|
563
693
|
"examples": null,
|
|
564
694
|
"related": null
|
|
565
695
|
},
|
|
696
|
+
"Combobox": {
|
|
697
|
+
"props": {
|
|
698
|
+
"size": {
|
|
699
|
+
"type": "\"sm\" | \"md\" | \"lg\"",
|
|
700
|
+
"required": false,
|
|
701
|
+
"defaultValue": "'md'",
|
|
702
|
+
"description": "Control size."
|
|
703
|
+
},
|
|
704
|
+
"value": {
|
|
705
|
+
"type": "OptionValue",
|
|
706
|
+
"required": false,
|
|
707
|
+
"description": "Controlled selected value."
|
|
708
|
+
},
|
|
709
|
+
"onValueChange": {
|
|
710
|
+
"type": "(value: OptionValue) => void",
|
|
711
|
+
"required": false,
|
|
712
|
+
"description": "Callback when selection changes.\nCalled with the option's value when user selects, or undefined when cleared.\nDoes NOT mutate inputValue — consumer should update inputValue in handler if desired."
|
|
713
|
+
},
|
|
714
|
+
"inputValue": {
|
|
715
|
+
"type": "string",
|
|
716
|
+
"required": false,
|
|
717
|
+
"description": "Controlled input value for search/filter."
|
|
718
|
+
},
|
|
719
|
+
"filterMode": {
|
|
720
|
+
"type": "\"always\" | \"when-searching\"",
|
|
721
|
+
"required": false,
|
|
722
|
+
"defaultValue": "'always'",
|
|
723
|
+
"description": "Controls filtering behavior.\n- 'always': Filter on inputValue at all times (default)\n- 'when-searching': Query is empty when not actively typing,\n so consumers can show all options when user is browsing a selection"
|
|
724
|
+
},
|
|
725
|
+
"open": {
|
|
726
|
+
"type": "boolean",
|
|
727
|
+
"required": false,
|
|
728
|
+
"description": "Controlled open state."
|
|
729
|
+
},
|
|
730
|
+
"defaultOpen": {
|
|
731
|
+
"type": "boolean",
|
|
732
|
+
"required": false,
|
|
733
|
+
"defaultValue": "false",
|
|
734
|
+
"description": "Default open state for uncontrolled usage."
|
|
735
|
+
},
|
|
736
|
+
"disabled": {
|
|
737
|
+
"type": "boolean",
|
|
738
|
+
"required": false,
|
|
739
|
+
"defaultValue": "false",
|
|
740
|
+
"description": "Whether the combobox is disabled."
|
|
741
|
+
},
|
|
742
|
+
"openOnFocus": {
|
|
743
|
+
"type": "boolean",
|
|
744
|
+
"required": false,
|
|
745
|
+
"defaultValue": "true",
|
|
746
|
+
"description": "Whether to open the listbox when the input receives focus."
|
|
747
|
+
},
|
|
748
|
+
"inputClassName": {
|
|
749
|
+
"type": "string",
|
|
750
|
+
"required": false,
|
|
751
|
+
"description": "Class name applied directly to the `<input>` element.\nUse for utilities like `tui-input-reset` that must target the input itself."
|
|
752
|
+
}
|
|
753
|
+
},
|
|
754
|
+
"cssTokens": [
|
|
755
|
+
"--tui-combobox-input-bg",
|
|
756
|
+
"--tui-combobox-input-fg",
|
|
757
|
+
"--tui-combobox-input-border",
|
|
758
|
+
"--tui-combobox-input-border-focus",
|
|
759
|
+
"--tui-combobox-input-radius",
|
|
760
|
+
"--tui-combobox-content-bg",
|
|
761
|
+
"--tui-combobox-content-border",
|
|
762
|
+
"--tui-combobox-content-shadow",
|
|
763
|
+
"--tui-combobox-content-radius",
|
|
764
|
+
"--tui-combobox-option-bg-hover",
|
|
765
|
+
"--tui-combobox-option-bg-selected"
|
|
766
|
+
],
|
|
767
|
+
"story": {
|
|
768
|
+
"title": "Forms/Combobox",
|
|
769
|
+
"tags": [
|
|
770
|
+
"lms"
|
|
771
|
+
]
|
|
772
|
+
},
|
|
773
|
+
"subcomponents": null,
|
|
774
|
+
"description": null,
|
|
775
|
+
"gotchas": null,
|
|
776
|
+
"examples": null,
|
|
777
|
+
"related": null
|
|
778
|
+
},
|
|
566
779
|
"ContentIndicator": {
|
|
567
780
|
"props": {
|
|
568
781
|
"icon": {
|
|
@@ -599,7 +812,11 @@
|
|
|
599
812
|
"description": "Additional CSS class names."
|
|
600
813
|
}
|
|
601
814
|
},
|
|
602
|
-
"cssTokens": [
|
|
815
|
+
"cssTokens": [
|
|
816
|
+
"--tui-content-indicator-bg",
|
|
817
|
+
"--tui-content-indicator-border",
|
|
818
|
+
"--tui-content-indicator-fg"
|
|
819
|
+
],
|
|
603
820
|
"story": {
|
|
604
821
|
"title": "Primitives/ContentIndicator",
|
|
605
822
|
"tags": [
|
|
@@ -628,7 +845,17 @@
|
|
|
628
845
|
"description": "Default open state for uncontrolled usage."
|
|
629
846
|
}
|
|
630
847
|
},
|
|
631
|
-
"cssTokens": [
|
|
848
|
+
"cssTokens": [
|
|
849
|
+
"--tui-dropdown-bg",
|
|
850
|
+
"--tui-dropdown-fg",
|
|
851
|
+
"--tui-dropdown-radius",
|
|
852
|
+
"--tui-dropdown-shadow",
|
|
853
|
+
"--tui-dropdown-border",
|
|
854
|
+
"--tui-dropdown-z",
|
|
855
|
+
"--tui-dropdown-min-width",
|
|
856
|
+
"--tui-dropdown-item-bg-hover",
|
|
857
|
+
"--tui-dropdown-item-bg-active"
|
|
858
|
+
],
|
|
632
859
|
"story": {
|
|
633
860
|
"title": "Primitives/Dropdown",
|
|
634
861
|
"tags": [
|
|
@@ -642,6 +869,53 @@
|
|
|
642
869
|
"examples": null,
|
|
643
870
|
"related": null
|
|
644
871
|
},
|
|
872
|
+
"Field": {
|
|
873
|
+
"props": {
|
|
874
|
+
"error": {
|
|
875
|
+
"type": "boolean",
|
|
876
|
+
"required": false,
|
|
877
|
+
"description": "Whether the field has an error state"
|
|
878
|
+
},
|
|
879
|
+
"required": {
|
|
880
|
+
"type": "boolean",
|
|
881
|
+
"required": false,
|
|
882
|
+
"description": "Whether the field is required"
|
|
883
|
+
},
|
|
884
|
+
"disabled": {
|
|
885
|
+
"type": "boolean",
|
|
886
|
+
"required": false,
|
|
887
|
+
"description": "Whether the field is disabled"
|
|
888
|
+
},
|
|
889
|
+
"inline": {
|
|
890
|
+
"type": "boolean",
|
|
891
|
+
"required": false,
|
|
892
|
+
"description": "Inline layout: label and control on same row"
|
|
893
|
+
},
|
|
894
|
+
"className": {
|
|
895
|
+
"type": "string",
|
|
896
|
+
"required": false,
|
|
897
|
+
"description": "Additional class name for the field wrapper"
|
|
898
|
+
}
|
|
899
|
+
},
|
|
900
|
+
"cssTokens": [
|
|
901
|
+
"--tui-field-gap",
|
|
902
|
+
"--tui-field-label-fg",
|
|
903
|
+
"--tui-field-helper-fg",
|
|
904
|
+
"--tui-field-error-fg"
|
|
905
|
+
],
|
|
906
|
+
"story": {
|
|
907
|
+
"title": "Forms/Field",
|
|
908
|
+
"tags": [
|
|
909
|
+
"stable",
|
|
910
|
+
"lms"
|
|
911
|
+
]
|
|
912
|
+
},
|
|
913
|
+
"subcomponents": null,
|
|
914
|
+
"description": null,
|
|
915
|
+
"gotchas": null,
|
|
916
|
+
"examples": null,
|
|
917
|
+
"related": null
|
|
918
|
+
},
|
|
645
919
|
"Icon": {
|
|
646
920
|
"props": {
|
|
647
921
|
"name": {
|
|
@@ -669,7 +943,14 @@
|
|
|
669
943
|
"required": false
|
|
670
944
|
}
|
|
671
945
|
},
|
|
672
|
-
"cssTokens": [
|
|
946
|
+
"cssTokens": [
|
|
947
|
+
"--tui-icon-size-xs",
|
|
948
|
+
"--tui-icon-size-sm",
|
|
949
|
+
"--tui-icon-size-md",
|
|
950
|
+
"--tui-icon-size-lg",
|
|
951
|
+
"--tui-icon-size-xl",
|
|
952
|
+
"--tui-icon-size-xxl"
|
|
953
|
+
],
|
|
673
954
|
"story": {
|
|
674
955
|
"title": "Primitives/Icon",
|
|
675
956
|
"tags": [
|
|
@@ -782,7 +1063,14 @@
|
|
|
782
1063
|
"required": false
|
|
783
1064
|
}
|
|
784
1065
|
},
|
|
785
|
-
"cssTokens": [
|
|
1066
|
+
"cssTokens": [
|
|
1067
|
+
"--tui-icon-button-bg",
|
|
1068
|
+
"--tui-icon-button-fg",
|
|
1069
|
+
"--tui-icon-button-border",
|
|
1070
|
+
"--tui-icon-button-radius",
|
|
1071
|
+
"--tui-icon-button-bg-interact",
|
|
1072
|
+
"--tui-icon-button-fg-interact"
|
|
1073
|
+
],
|
|
786
1074
|
"story": {
|
|
787
1075
|
"title": "Primitives/IconButton",
|
|
788
1076
|
"tags": [
|
|
@@ -833,7 +1121,7 @@
|
|
|
833
1121
|
"description": "Accessible dialog with focus trap, backdrop, and portal rendering",
|
|
834
1122
|
"gotchas": [
|
|
835
1123
|
{
|
|
836
|
-
"note": "Always provide
|
|
1124
|
+
"note": "Always provide aria-labelledby pointing to a heading id for accessibility"
|
|
837
1125
|
},
|
|
838
1126
|
{
|
|
839
1127
|
"note": "Body uses two-layer wrapper for scroll + :has() composition"
|
|
@@ -851,89 +1139,239 @@
|
|
|
851
1139
|
"examples": [
|
|
852
1140
|
{
|
|
853
1141
|
"name": "Basic",
|
|
854
|
-
"code": "<Modal
|
|
1142
|
+
"code": "<Modal open={open} onClose={close} aria-labelledby=\"modal-title\">\n <Modal.Head><h2 id=\"modal-title\">Title</h2></Modal.Head>\n <Modal.Body>Content</Modal.Body>\n <Modal.Foot><Button label=\"Close\" onClick={close} /></Modal.Foot>\n</Modal>"
|
|
855
1143
|
},
|
|
856
1144
|
{
|
|
857
1145
|
"name": "With close button",
|
|
858
|
-
"code": "<Modal
|
|
1146
|
+
"code": "<Modal open={open} onClose={close} showCloseButton aria-labelledby=\"title\">\n <Modal.Head><h2 id=\"title\">Confirm</h2></Modal.Head>\n <Modal.Body>Are you sure?</Modal.Body>\n</Modal>"
|
|
859
1147
|
}
|
|
860
1148
|
],
|
|
861
1149
|
"related": [
|
|
862
1150
|
"Notice"
|
|
863
1151
|
]
|
|
864
1152
|
},
|
|
865
|
-
"
|
|
1153
|
+
"MoveHandle": {
|
|
866
1154
|
"props": {
|
|
867
|
-
"
|
|
868
|
-
"type": "
|
|
1155
|
+
"mode": {
|
|
1156
|
+
"type": "\"full\" | \"handle\"",
|
|
869
1157
|
"required": false,
|
|
870
|
-
"
|
|
1158
|
+
"defaultValue": "full",
|
|
1159
|
+
"description": "Structural mode. 'full' (default) shows background panel with arrows/index. 'handle' shows only the bare drag icon button."
|
|
871
1160
|
},
|
|
872
|
-
"
|
|
873
|
-
"type": "
|
|
1161
|
+
"size": {
|
|
1162
|
+
"type": "\"sm\" | \"md\"",
|
|
874
1163
|
"required": false,
|
|
875
|
-
"
|
|
1164
|
+
"defaultValue": "md",
|
|
1165
|
+
"description": "Component scale. sm = 32px, md = 40px. Ignored when mode is 'handle'."
|
|
876
1166
|
},
|
|
877
|
-
"
|
|
878
|
-
"type": "
|
|
1167
|
+
"index": {
|
|
1168
|
+
"type": "number",
|
|
879
1169
|
"required": false,
|
|
880
|
-
"description": "
|
|
1170
|
+
"description": "Position index. When provided, shows number at rest, drag handle on hover."
|
|
881
1171
|
},
|
|
882
|
-
"
|
|
1172
|
+
"locked": {
|
|
883
1173
|
"type": "boolean",
|
|
884
1174
|
"required": false,
|
|
885
|
-
"
|
|
1175
|
+
"defaultValue": "false",
|
|
1176
|
+
"description": "When true, shows lock icon and disables all interaction."
|
|
886
1177
|
},
|
|
887
|
-
"
|
|
1178
|
+
"canMoveUp": {
|
|
888
1179
|
"type": "boolean",
|
|
889
1180
|
"required": false,
|
|
890
|
-
"
|
|
891
|
-
|
|
892
|
-
"className": {
|
|
893
|
-
"type": "string",
|
|
894
|
-
"required": false
|
|
895
|
-
},
|
|
896
|
-
"style": {
|
|
897
|
-
"type": "CSSProperties",
|
|
898
|
-
"required": false
|
|
899
|
-
},
|
|
900
|
-
"as": {
|
|
901
|
-
"type": "\"section\" | \"div\"",
|
|
902
|
-
"required": false
|
|
903
|
-
},
|
|
904
|
-
"theme": {
|
|
905
|
-
"type": "\"info\" | \"success\" | \"warning\" | \"danger\"",
|
|
906
|
-
"required": false,
|
|
907
|
-
"description": "Visual intent"
|
|
908
|
-
},
|
|
909
|
-
"announce": {
|
|
910
|
-
"type": "\"off\" | \"assertive\" | \"polite\"",
|
|
911
|
-
"required": false,
|
|
912
|
-
"description": "Controls screen-reader announcement behavior.\n- off: no live region\n- polite: role=status\n- assertive: role=alert"
|
|
913
|
-
},
|
|
914
|
-
"ariaLabel": {
|
|
915
|
-
"type": "string",
|
|
916
|
-
"required": false,
|
|
917
|
-
"description": "Accessible name when there is no visible title in Notice.Head.\nOnly use when Notice.Head has no title prop - if both exist, the visible title takes precedence."
|
|
1181
|
+
"defaultValue": "true",
|
|
1182
|
+
"description": "When false, disables the move-up button without hiding it. Default: true."
|
|
918
1183
|
},
|
|
919
|
-
"
|
|
1184
|
+
"canMoveDown": {
|
|
920
1185
|
"type": "boolean",
|
|
921
1186
|
"required": false,
|
|
922
|
-
"
|
|
923
|
-
|
|
924
|
-
"onDismiss": {
|
|
925
|
-
"type": "() => void",
|
|
926
|
-
"required": false
|
|
1187
|
+
"defaultValue": "true",
|
|
1188
|
+
"description": "When false, disables the move-down button without hiding it. Default: true."
|
|
927
1189
|
},
|
|
928
|
-
"
|
|
929
|
-
"type": "
|
|
1190
|
+
"labels": {
|
|
1191
|
+
"type": "MoveHandleLabels",
|
|
930
1192
|
"required": false,
|
|
931
|
-
"description": "
|
|
1193
|
+
"description": "Override internal button labels for i18n."
|
|
932
1194
|
},
|
|
933
|
-
"
|
|
934
|
-
"type": "
|
|
1195
|
+
"dragHandleProps": {
|
|
1196
|
+
"type": "HTMLAttributes<HTMLButtonElement>",
|
|
935
1197
|
"required": false,
|
|
936
|
-
"description": "
|
|
1198
|
+
"description": "Props to spread on the drag handle button (e.g., from dnd-kit useSortable)."
|
|
1199
|
+
},
|
|
1200
|
+
"className": {
|
|
1201
|
+
"type": "string",
|
|
1202
|
+
"required": false
|
|
1203
|
+
}
|
|
1204
|
+
},
|
|
1205
|
+
"cssTokens": [
|
|
1206
|
+
"--tui-move-handle-size",
|
|
1207
|
+
"--tui-move-handle-icon-size"
|
|
1208
|
+
],
|
|
1209
|
+
"story": {
|
|
1210
|
+
"title": "Components/MoveHandle",
|
|
1211
|
+
"tags": [
|
|
1212
|
+
"autodocs",
|
|
1213
|
+
"lms"
|
|
1214
|
+
]
|
|
1215
|
+
},
|
|
1216
|
+
"subcomponents": null,
|
|
1217
|
+
"description": null,
|
|
1218
|
+
"gotchas": null,
|
|
1219
|
+
"examples": null,
|
|
1220
|
+
"related": null
|
|
1221
|
+
},
|
|
1222
|
+
"MultiSelect": {
|
|
1223
|
+
"props": {
|
|
1224
|
+
"size": {
|
|
1225
|
+
"type": "\"sm\" | \"md\" | \"lg\"",
|
|
1226
|
+
"required": false,
|
|
1227
|
+
"defaultValue": "'md'",
|
|
1228
|
+
"description": "Control size."
|
|
1229
|
+
},
|
|
1230
|
+
"value": {
|
|
1231
|
+
"type": "MultiSelectValue",
|
|
1232
|
+
"required": false,
|
|
1233
|
+
"description": "Controlled selected values."
|
|
1234
|
+
},
|
|
1235
|
+
"onValueChange": {
|
|
1236
|
+
"type": "(value: MultiSelectValue) => void",
|
|
1237
|
+
"required": false,
|
|
1238
|
+
"description": "Callback when selection changes."
|
|
1239
|
+
},
|
|
1240
|
+
"open": {
|
|
1241
|
+
"type": "boolean",
|
|
1242
|
+
"required": false,
|
|
1243
|
+
"description": "Controlled open state."
|
|
1244
|
+
},
|
|
1245
|
+
"defaultOpen": {
|
|
1246
|
+
"type": "boolean",
|
|
1247
|
+
"required": false,
|
|
1248
|
+
"defaultValue": "false",
|
|
1249
|
+
"description": "Default open state for uncontrolled usage."
|
|
1250
|
+
},
|
|
1251
|
+
"disabled": {
|
|
1252
|
+
"type": "boolean",
|
|
1253
|
+
"required": false,
|
|
1254
|
+
"defaultValue": "false",
|
|
1255
|
+
"description": "Whether the entire select is disabled."
|
|
1256
|
+
},
|
|
1257
|
+
"display": {
|
|
1258
|
+
"type": "\"count\" | \"chips\"",
|
|
1259
|
+
"required": false,
|
|
1260
|
+
"defaultValue": "'count'",
|
|
1261
|
+
"description": "Display mode for the trigger.\n- 'count': Shows \"N selected\"\n- 'chips': Shows visual chips for selected items"
|
|
1262
|
+
},
|
|
1263
|
+
"maxChips": {
|
|
1264
|
+
"type": "number",
|
|
1265
|
+
"required": false,
|
|
1266
|
+
"defaultValue": "3",
|
|
1267
|
+
"description": "Maximum number of chips to show before \"+N more\" badge.\nOnly applies when display='chips'."
|
|
1268
|
+
},
|
|
1269
|
+
"max": {
|
|
1270
|
+
"type": "number",
|
|
1271
|
+
"required": false,
|
|
1272
|
+
"description": "Maximum number of selections allowed.\nWhen reached, unselected options become disabled."
|
|
1273
|
+
},
|
|
1274
|
+
"id": {
|
|
1275
|
+
"type": "string",
|
|
1276
|
+
"required": false,
|
|
1277
|
+
"description": "Optional trigger ID override.\nUseful for Field integration via htmlFor."
|
|
1278
|
+
}
|
|
1279
|
+
},
|
|
1280
|
+
"cssTokens": [
|
|
1281
|
+
"--tui-multiselect-trigger-bg",
|
|
1282
|
+
"--tui-multiselect-trigger-fg",
|
|
1283
|
+
"--tui-multiselect-trigger-border",
|
|
1284
|
+
"--tui-multiselect-trigger-border-focus",
|
|
1285
|
+
"--tui-multiselect-trigger-radius",
|
|
1286
|
+
"--tui-multiselect-content-bg",
|
|
1287
|
+
"--tui-multiselect-content-border",
|
|
1288
|
+
"--tui-multiselect-content-shadow",
|
|
1289
|
+
"--tui-multiselect-content-radius",
|
|
1290
|
+
"--tui-multiselect-option-bg-hover",
|
|
1291
|
+
"--tui-multiselect-option-bg-selected",
|
|
1292
|
+
"--tui-multiselect-chip-bg",
|
|
1293
|
+
"--tui-multiselect-chip-fg"
|
|
1294
|
+
],
|
|
1295
|
+
"story": {
|
|
1296
|
+
"title": "Forms/MultiSelect",
|
|
1297
|
+
"tags": [
|
|
1298
|
+
"autodocs",
|
|
1299
|
+
"lms"
|
|
1300
|
+
]
|
|
1301
|
+
},
|
|
1302
|
+
"subcomponents": null,
|
|
1303
|
+
"description": null,
|
|
1304
|
+
"gotchas": null,
|
|
1305
|
+
"examples": null,
|
|
1306
|
+
"related": null
|
|
1307
|
+
},
|
|
1308
|
+
"Notice": {
|
|
1309
|
+
"props": {
|
|
1310
|
+
"inline": {
|
|
1311
|
+
"type": "boolean",
|
|
1312
|
+
"required": false,
|
|
1313
|
+
"description": "Inline layout: icon/title on left, content center, actions right"
|
|
1314
|
+
},
|
|
1315
|
+
"elevated": {
|
|
1316
|
+
"type": "boolean",
|
|
1317
|
+
"required": false,
|
|
1318
|
+
"description": "Add box shadow"
|
|
1319
|
+
},
|
|
1320
|
+
"interactive": {
|
|
1321
|
+
"type": "boolean",
|
|
1322
|
+
"required": false,
|
|
1323
|
+
"description": "Enable hover/focus visual states. If combined with onClick,\nadds role=\"button\" and keyboard handling (Enter/Space)."
|
|
1324
|
+
},
|
|
1325
|
+
"disabled": {
|
|
1326
|
+
"type": "boolean",
|
|
1327
|
+
"required": false,
|
|
1328
|
+
"description": "Disable interactions"
|
|
1329
|
+
},
|
|
1330
|
+
"stripe": {
|
|
1331
|
+
"type": "boolean",
|
|
1332
|
+
"required": false,
|
|
1333
|
+
"description": "Show left accent stripe in theme color"
|
|
1334
|
+
},
|
|
1335
|
+
"className": {
|
|
1336
|
+
"type": "string",
|
|
1337
|
+
"required": false
|
|
1338
|
+
},
|
|
1339
|
+
"style": {
|
|
1340
|
+
"type": "CSSProperties",
|
|
1341
|
+
"required": false
|
|
1342
|
+
},
|
|
1343
|
+
"as": {
|
|
1344
|
+
"type": "\"section\" | \"div\"",
|
|
1345
|
+
"required": false
|
|
1346
|
+
},
|
|
1347
|
+
"theme": {
|
|
1348
|
+
"type": "\"info\" | \"success\" | \"warning\" | \"danger\"",
|
|
1349
|
+
"required": false,
|
|
1350
|
+
"description": "Visual intent"
|
|
1351
|
+
},
|
|
1352
|
+
"announce": {
|
|
1353
|
+
"type": "\"off\" | \"assertive\" | \"polite\"",
|
|
1354
|
+
"required": false,
|
|
1355
|
+
"description": "Controls screen-reader announcement behavior.\n- off: no live region\n- polite: role=status\n- assertive: role=alert"
|
|
1356
|
+
},
|
|
1357
|
+
"dismissible": {
|
|
1358
|
+
"type": "boolean",
|
|
1359
|
+
"required": false,
|
|
1360
|
+
"description": "Renders a dismiss button"
|
|
1361
|
+
},
|
|
1362
|
+
"onDismiss": {
|
|
1363
|
+
"type": "() => void",
|
|
1364
|
+
"required": false
|
|
1365
|
+
},
|
|
1366
|
+
"exitAnimation": {
|
|
1367
|
+
"type": "\"none\" | \"collapse\" | \"fade\"",
|
|
1368
|
+
"required": false,
|
|
1369
|
+
"description": "Exit animation to play when dismissed.\n- none: onDismiss called immediately (default)\n- collapse: fade + height collapse (for inline/block notices)\n- fade: fade out with slight scale (for overlays/toasts)"
|
|
1370
|
+
},
|
|
1371
|
+
"focusable": {
|
|
1372
|
+
"type": "boolean",
|
|
1373
|
+
"required": false,
|
|
1374
|
+
"description": "If true, the notice container will be focusable (tabIndex=-1).\nUseful for programmatic focus management in toast/notification systems.\nNot for keyboard navigation - use interactive + onClick for clickable notices."
|
|
937
1375
|
},
|
|
938
1376
|
"onClick": {
|
|
939
1377
|
"type": "MouseEventHandler<HTMLElement>",
|
|
@@ -1062,7 +1500,14 @@
|
|
|
1062
1500
|
"description": "Inline styles"
|
|
1063
1501
|
}
|
|
1064
1502
|
},
|
|
1065
|
-
"cssTokens": [
|
|
1503
|
+
"cssTokens": [
|
|
1504
|
+
"--tui-overlap-stack-overlap",
|
|
1505
|
+
"--tui-overlap-stack-overflow-bg",
|
|
1506
|
+
"--tui-overlap-stack-overflow-fg",
|
|
1507
|
+
"--tui-overlap-stack-item-radius",
|
|
1508
|
+
"--tui-overlap-stack-border-width",
|
|
1509
|
+
"--tui-overlap-stack-border-color"
|
|
1510
|
+
],
|
|
1066
1511
|
"story": {
|
|
1067
1512
|
"title": "Components/OverlapStack",
|
|
1068
1513
|
"tags": [
|
|
@@ -1122,7 +1567,9 @@
|
|
|
1122
1567
|
"description": "Additional class name"
|
|
1123
1568
|
}
|
|
1124
1569
|
},
|
|
1125
|
-
"cssTokens": [
|
|
1570
|
+
"cssTokens": [
|
|
1571
|
+
"--tui-pager-gap"
|
|
1572
|
+
],
|
|
1126
1573
|
"story": {
|
|
1127
1574
|
"title": "Primitives/Pager",
|
|
1128
1575
|
"tags": [
|
|
@@ -1161,20 +1608,10 @@
|
|
|
1161
1608
|
"defaultValue": "true",
|
|
1162
1609
|
"description": "Whether to display labels.\nWhen false, hides all label content regardless of other props."
|
|
1163
1610
|
},
|
|
1164
|
-
"labelledBy": {
|
|
1165
|
-
"type": "string",
|
|
1166
|
-
"required": false,
|
|
1167
|
-
"description": "ARIA: ID of an element that labels this progress bar.\nTakes precedence over `ariaLabel` and `defaultLabel`."
|
|
1168
|
-
},
|
|
1169
|
-
"ariaLabel": {
|
|
1170
|
-
"type": "string",
|
|
1171
|
-
"required": false,
|
|
1172
|
-
"description": "ARIA: Accessible name for the progress bar.\nUse when no visible label exists. Takes precedence over `defaultLabel`."
|
|
1173
|
-
},
|
|
1174
1611
|
"defaultLabel": {
|
|
1175
1612
|
"type": "string",
|
|
1176
1613
|
"required": false,
|
|
1177
|
-
"description": "Fallback accessible name, rendered as visually-hidden text.\nOnly used if neither `
|
|
1614
|
+
"description": "Fallback accessible name, rendered as visually-hidden text.\nOnly used if neither `aria-labelledby` nor `aria-label` is provided."
|
|
1178
1615
|
},
|
|
1179
1616
|
"className": {
|
|
1180
1617
|
"type": "string",
|
|
@@ -1227,7 +1664,17 @@
|
|
|
1227
1664
|
"description": "Visual variant for circle mode.\n- `'ring'`: Hollow centre (default) — shows progress as a ring/donut\n- `'solid'`: Filled centre — shows as a solid filled circle\n\nOnly applies when `mode=\"circle\"`. Ignored in line mode."
|
|
1228
1665
|
}
|
|
1229
1666
|
},
|
|
1230
|
-
"cssTokens": [
|
|
1667
|
+
"cssTokens": [
|
|
1668
|
+
"--tui-progress-track",
|
|
1669
|
+
"--tui-progress-fill",
|
|
1670
|
+
"--tui-progress-label",
|
|
1671
|
+
"--tui-progress-radius",
|
|
1672
|
+
"--tui-progress-z1-fill",
|
|
1673
|
+
"--tui-progress-z2-fill",
|
|
1674
|
+
"--tui-progress-z3-fill",
|
|
1675
|
+
"--tui-progress-z4-fill",
|
|
1676
|
+
"--tui-progress-z5-fill"
|
|
1677
|
+
],
|
|
1231
1678
|
"story": {
|
|
1232
1679
|
"title": "Primitives/Progress",
|
|
1233
1680
|
"tags": [
|
|
@@ -1241,12 +1688,44 @@
|
|
|
1241
1688
|
"examples": null,
|
|
1242
1689
|
"related": null
|
|
1243
1690
|
},
|
|
1691
|
+
"Radio": {
|
|
1692
|
+
"props": {
|
|
1693
|
+
"label": {
|
|
1694
|
+
"type": "ReactNode",
|
|
1695
|
+
"required": false
|
|
1696
|
+
},
|
|
1697
|
+
"disabled": {
|
|
1698
|
+
"type": "boolean",
|
|
1699
|
+
"required": false,
|
|
1700
|
+
"defaultValue": "false"
|
|
1701
|
+
},
|
|
1702
|
+
"className": {
|
|
1703
|
+
"type": "string",
|
|
1704
|
+
"required": false
|
|
1705
|
+
}
|
|
1706
|
+
},
|
|
1707
|
+
"cssTokens": [
|
|
1708
|
+
"--tui-radio-accent"
|
|
1709
|
+
],
|
|
1710
|
+
"story": {
|
|
1711
|
+
"title": "Forms/RadioGroup",
|
|
1712
|
+
"tags": [
|
|
1713
|
+
"autodocs",
|
|
1714
|
+
"lms"
|
|
1715
|
+
]
|
|
1716
|
+
},
|
|
1717
|
+
"subcomponents": null,
|
|
1718
|
+
"description": null,
|
|
1719
|
+
"gotchas": null,
|
|
1720
|
+
"examples": null,
|
|
1721
|
+
"related": null
|
|
1722
|
+
},
|
|
1244
1723
|
"Rating": {
|
|
1245
1724
|
"props": {
|
|
1246
1725
|
"value": {
|
|
1247
1726
|
"type": "number",
|
|
1248
1727
|
"required": false,
|
|
1249
|
-
"description": "Controlled value (1..max). Use with
|
|
1728
|
+
"description": "Controlled value (1..max). Use with onValueChange"
|
|
1250
1729
|
},
|
|
1251
1730
|
"max": {
|
|
1252
1731
|
"type": "number",
|
|
@@ -1281,10 +1760,10 @@
|
|
|
1281
1760
|
"defaultValue": "secondary",
|
|
1282
1761
|
"description": "Theme feeds foreground color tokens"
|
|
1283
1762
|
},
|
|
1284
|
-
"
|
|
1763
|
+
"onValueChange": {
|
|
1285
1764
|
"type": "(value: number) => void",
|
|
1286
1765
|
"required": false,
|
|
1287
|
-
"description": "Called
|
|
1766
|
+
"description": "Called when the value changes"
|
|
1288
1767
|
},
|
|
1289
1768
|
"allowClear": {
|
|
1290
1769
|
"type": "boolean",
|
|
@@ -1299,14 +1778,13 @@
|
|
|
1299
1778
|
"type": "string",
|
|
1300
1779
|
"required": false,
|
|
1301
1780
|
"description": "Gap override (e.g. '0.25rem') – otherwise uses density utilities"
|
|
1302
|
-
},
|
|
1303
|
-
"ariaLabel": {
|
|
1304
|
-
"type": "string",
|
|
1305
|
-
"required": false,
|
|
1306
|
-
"description": "Accessible label for the rating group. Defaults to \"Rating: X of Y\""
|
|
1307
1781
|
}
|
|
1308
1782
|
},
|
|
1309
|
-
"cssTokens": [
|
|
1783
|
+
"cssTokens": [
|
|
1784
|
+
"--tui-rating-active",
|
|
1785
|
+
"--tui-rating-inactive",
|
|
1786
|
+
"--tui-rating-scale"
|
|
1787
|
+
],
|
|
1310
1788
|
"story": {
|
|
1311
1789
|
"title": "Primitives/Rating",
|
|
1312
1790
|
"tags": [
|
|
@@ -1363,7 +1841,18 @@
|
|
|
1363
1841
|
"description": "Additional classes"
|
|
1364
1842
|
}
|
|
1365
1843
|
},
|
|
1366
|
-
"cssTokens": [
|
|
1844
|
+
"cssTokens": [
|
|
1845
|
+
"--tui-segmented-gap",
|
|
1846
|
+
"--tui-segmented-padding",
|
|
1847
|
+
"--tui-segmented-radius",
|
|
1848
|
+
"--tui-segmented-bg",
|
|
1849
|
+
"--tui-segmented-border",
|
|
1850
|
+
"--tui-segmented-item-padding",
|
|
1851
|
+
"--tui-segmented-item-radius",
|
|
1852
|
+
"--tui-segmented-item-fg",
|
|
1853
|
+
"--tui-segmented-item-bg-active",
|
|
1854
|
+
"--tui-segmented-item-fg-active"
|
|
1855
|
+
],
|
|
1367
1856
|
"story": {
|
|
1368
1857
|
"title": "Components/SegmentedControl",
|
|
1369
1858
|
"tags": [
|
|
@@ -1377,6 +1866,97 @@
|
|
|
1377
1866
|
"examples": null,
|
|
1378
1867
|
"related": null
|
|
1379
1868
|
},
|
|
1869
|
+
"Select": {
|
|
1870
|
+
"props": {
|
|
1871
|
+
"size": {
|
|
1872
|
+
"type": "\"sm\" | \"md\" | \"lg\"",
|
|
1873
|
+
"required": false,
|
|
1874
|
+
"defaultValue": "'md'",
|
|
1875
|
+
"description": "Control size."
|
|
1876
|
+
},
|
|
1877
|
+
"value": {
|
|
1878
|
+
"type": "OptionValue",
|
|
1879
|
+
"required": false,
|
|
1880
|
+
"description": "Controlled selected value."
|
|
1881
|
+
},
|
|
1882
|
+
"onValueChange": {
|
|
1883
|
+
"type": "(value: OptionValue) => void",
|
|
1884
|
+
"required": false,
|
|
1885
|
+
"description": "Callback when selection changes.\nCalled with undefined when selection is cleared."
|
|
1886
|
+
},
|
|
1887
|
+
"open": {
|
|
1888
|
+
"type": "boolean",
|
|
1889
|
+
"required": false,
|
|
1890
|
+
"description": "Controlled open state."
|
|
1891
|
+
},
|
|
1892
|
+
"defaultOpen": {
|
|
1893
|
+
"type": "boolean",
|
|
1894
|
+
"required": false,
|
|
1895
|
+
"defaultValue": "false",
|
|
1896
|
+
"description": "Default open state for uncontrolled usage."
|
|
1897
|
+
},
|
|
1898
|
+
"disabled": {
|
|
1899
|
+
"type": "boolean",
|
|
1900
|
+
"required": false,
|
|
1901
|
+
"defaultValue": "false",
|
|
1902
|
+
"description": "Whether the entire select is disabled."
|
|
1903
|
+
},
|
|
1904
|
+
"side": {
|
|
1905
|
+
"type": "\"top\" | \"bottom\"",
|
|
1906
|
+
"required": false,
|
|
1907
|
+
"defaultValue": "'bottom'",
|
|
1908
|
+
"description": "Preferred side of the trigger to place the listbox."
|
|
1909
|
+
},
|
|
1910
|
+
"align": {
|
|
1911
|
+
"type": "\"start\" | \"center\" | \"end\"",
|
|
1912
|
+
"required": false,
|
|
1913
|
+
"defaultValue": "'start'",
|
|
1914
|
+
"description": "Alignment along the side."
|
|
1915
|
+
},
|
|
1916
|
+
"sideOffset": {
|
|
1917
|
+
"type": "number",
|
|
1918
|
+
"required": false,
|
|
1919
|
+
"defaultValue": "4",
|
|
1920
|
+
"description": "Distance from the trigger in pixels."
|
|
1921
|
+
},
|
|
1922
|
+
"clearable": {
|
|
1923
|
+
"type": "boolean",
|
|
1924
|
+
"required": false,
|
|
1925
|
+
"defaultValue": "false",
|
|
1926
|
+
"description": "Whether the selection can be cleared with a clear button."
|
|
1927
|
+
},
|
|
1928
|
+
"id": {
|
|
1929
|
+
"type": "string",
|
|
1930
|
+
"required": false,
|
|
1931
|
+
"description": "Optional trigger ID override.\nUseful for Field integration via htmlFor."
|
|
1932
|
+
}
|
|
1933
|
+
},
|
|
1934
|
+
"cssTokens": [
|
|
1935
|
+
"--tui-select-trigger-bg",
|
|
1936
|
+
"--tui-select-trigger-fg",
|
|
1937
|
+
"--tui-select-trigger-border",
|
|
1938
|
+
"--tui-select-trigger-border-focus",
|
|
1939
|
+
"--tui-select-trigger-radius",
|
|
1940
|
+
"--tui-select-content-bg",
|
|
1941
|
+
"--tui-select-content-border",
|
|
1942
|
+
"--tui-select-content-shadow",
|
|
1943
|
+
"--tui-select-content-radius",
|
|
1944
|
+
"--tui-select-option-bg-hover",
|
|
1945
|
+
"--tui-select-option-bg-selected"
|
|
1946
|
+
],
|
|
1947
|
+
"story": {
|
|
1948
|
+
"title": "Forms/Select",
|
|
1949
|
+
"tags": [
|
|
1950
|
+
"autodocs",
|
|
1951
|
+
"lms"
|
|
1952
|
+
]
|
|
1953
|
+
},
|
|
1954
|
+
"subcomponents": null,
|
|
1955
|
+
"description": null,
|
|
1956
|
+
"gotchas": null,
|
|
1957
|
+
"examples": null,
|
|
1958
|
+
"related": null
|
|
1959
|
+
},
|
|
1380
1960
|
"Sidebar": {
|
|
1381
1961
|
"props": {
|
|
1382
1962
|
"position": {
|
|
@@ -1391,7 +1971,7 @@
|
|
|
1391
1971
|
"defaultValue": "false",
|
|
1392
1972
|
"description": "Enable drawer mode (mobile overlay).\nWhen true, sidebar renders via portal with backdrop and focus trap."
|
|
1393
1973
|
},
|
|
1394
|
-
"
|
|
1974
|
+
"open": {
|
|
1395
1975
|
"type": "boolean",
|
|
1396
1976
|
"required": false,
|
|
1397
1977
|
"description": "Drawer open state. Required when `drawer={true}`."
|
|
@@ -1401,11 +1981,6 @@
|
|
|
1401
1981
|
"required": false,
|
|
1402
1982
|
"description": "Callback to close the drawer.\nCalled when ESC is pressed or backdrop is clicked."
|
|
1403
1983
|
},
|
|
1404
|
-
"ariaLabel": {
|
|
1405
|
-
"type": "string",
|
|
1406
|
-
"required": false,
|
|
1407
|
-
"description": "Accessible label for the aside landmark.\nTypically omit this if using `ariaLabel` on `Sidebar.Nav` instead."
|
|
1408
|
-
},
|
|
1409
1984
|
"children": {
|
|
1410
1985
|
"type": "ReactNode",
|
|
1411
1986
|
"required": true,
|
|
@@ -1417,7 +1992,13 @@
|
|
|
1417
1992
|
"description": "Additional CSS class names."
|
|
1418
1993
|
}
|
|
1419
1994
|
},
|
|
1420
|
-
"cssTokens": [
|
|
1995
|
+
"cssTokens": [
|
|
1996
|
+
"--tui-sidebar-width",
|
|
1997
|
+
"--tui-sidebar-bg",
|
|
1998
|
+
"--tui-sidebar-border",
|
|
1999
|
+
"--tui-sidebar-padding",
|
|
2000
|
+
"--tui-sidebar-z"
|
|
2001
|
+
],
|
|
1421
2002
|
"story": {
|
|
1422
2003
|
"title": "Components/Sidebar",
|
|
1423
2004
|
"tags": [
|
|
@@ -1490,16 +2071,6 @@
|
|
|
1490
2071
|
},
|
|
1491
2072
|
"StepList": {
|
|
1492
2073
|
"props": {
|
|
1493
|
-
"ariaLabel": {
|
|
1494
|
-
"type": "string",
|
|
1495
|
-
"required": false,
|
|
1496
|
-
"description": "Accessible label for the navigation landmark.\nUse either `ariaLabel` or `ariaLabelledBy`, not both."
|
|
1497
|
-
},
|
|
1498
|
-
"ariaLabelledBy": {
|
|
1499
|
-
"type": "string",
|
|
1500
|
-
"required": false,
|
|
1501
|
-
"description": "ID of a visible heading that labels the navigation.\nUse either `ariaLabel` or `ariaLabelledBy`, not both."
|
|
1502
|
-
},
|
|
1503
2074
|
"ariaCurrent": {
|
|
1504
2075
|
"type": "\"step\" | \"page\"",
|
|
1505
2076
|
"required": false,
|
|
@@ -1522,7 +2093,14 @@
|
|
|
1522
2093
|
"description": "Additional CSS class names."
|
|
1523
2094
|
}
|
|
1524
2095
|
},
|
|
1525
|
-
"cssTokens": [
|
|
2096
|
+
"cssTokens": [
|
|
2097
|
+
"--tui-steplist-gap",
|
|
2098
|
+
"--tui-steplist-padding",
|
|
2099
|
+
"--tui-steplist-radius",
|
|
2100
|
+
"--tui-steplist-current-bg",
|
|
2101
|
+
"--tui-steplist-current-border",
|
|
2102
|
+
"--tui-steplist-hover-bg"
|
|
2103
|
+
],
|
|
1526
2104
|
"story": {
|
|
1527
2105
|
"title": "Components/StepList",
|
|
1528
2106
|
"tags": [
|
|
@@ -1537,6 +2115,63 @@
|
|
|
1537
2115
|
"examples": null,
|
|
1538
2116
|
"related": null
|
|
1539
2117
|
},
|
|
2118
|
+
"Switch": {
|
|
2119
|
+
"props": {
|
|
2120
|
+
"disabled": {
|
|
2121
|
+
"type": "boolean",
|
|
2122
|
+
"required": false
|
|
2123
|
+
},
|
|
2124
|
+
"className": {
|
|
2125
|
+
"type": "string",
|
|
2126
|
+
"required": false
|
|
2127
|
+
},
|
|
2128
|
+
"id": {
|
|
2129
|
+
"type": "string",
|
|
2130
|
+
"required": false
|
|
2131
|
+
},
|
|
2132
|
+
"style": {
|
|
2133
|
+
"type": "CSSProperties",
|
|
2134
|
+
"required": false
|
|
2135
|
+
},
|
|
2136
|
+
"title": {
|
|
2137
|
+
"type": "string",
|
|
2138
|
+
"required": false
|
|
2139
|
+
},
|
|
2140
|
+
"rel": {
|
|
2141
|
+
"type": "string",
|
|
2142
|
+
"required": false
|
|
2143
|
+
},
|
|
2144
|
+
"onClick": {
|
|
2145
|
+
"type": "MouseEventHandler<HTMLButtonElement>",
|
|
2146
|
+
"required": false
|
|
2147
|
+
},
|
|
2148
|
+
"size": {
|
|
2149
|
+
"type": "\"sm\" | \"md\" | \"lg\"",
|
|
2150
|
+
"required": false,
|
|
2151
|
+
"defaultValue": "md"
|
|
2152
|
+
},
|
|
2153
|
+
"label": {
|
|
2154
|
+
"type": "ReactNode",
|
|
2155
|
+
"required": false
|
|
2156
|
+
}
|
|
2157
|
+
},
|
|
2158
|
+
"cssTokens": [
|
|
2159
|
+
"--tui-switch-accent",
|
|
2160
|
+
"--tui-switch-track-off"
|
|
2161
|
+
],
|
|
2162
|
+
"story": {
|
|
2163
|
+
"title": "Forms/Switch",
|
|
2164
|
+
"tags": [
|
|
2165
|
+
"autodocs",
|
|
2166
|
+
"lms"
|
|
2167
|
+
]
|
|
2168
|
+
},
|
|
2169
|
+
"subcomponents": null,
|
|
2170
|
+
"description": null,
|
|
2171
|
+
"gotchas": null,
|
|
2172
|
+
"examples": null,
|
|
2173
|
+
"related": null
|
|
2174
|
+
},
|
|
1540
2175
|
"Tabs": {
|
|
1541
2176
|
"props": {
|
|
1542
2177
|
"variant": {
|
|
@@ -1634,6 +2269,158 @@
|
|
|
1634
2269
|
"SegmentedControl"
|
|
1635
2270
|
]
|
|
1636
2271
|
},
|
|
2272
|
+
"Textarea": {
|
|
2273
|
+
"props": {
|
|
2274
|
+
"disabled": {
|
|
2275
|
+
"type": "boolean",
|
|
2276
|
+
"required": false
|
|
2277
|
+
},
|
|
2278
|
+
"onChange": {
|
|
2279
|
+
"type": "ChangeEventHandler<HTMLTextAreaElement>",
|
|
2280
|
+
"required": false
|
|
2281
|
+
},
|
|
2282
|
+
"className": {
|
|
2283
|
+
"type": "string",
|
|
2284
|
+
"required": false,
|
|
2285
|
+
"description": "Class name applied to the textarea element."
|
|
2286
|
+
},
|
|
2287
|
+
"id": {
|
|
2288
|
+
"type": "string",
|
|
2289
|
+
"required": false
|
|
2290
|
+
},
|
|
2291
|
+
"style": {
|
|
2292
|
+
"type": "CSSProperties",
|
|
2293
|
+
"required": false
|
|
2294
|
+
},
|
|
2295
|
+
"title": {
|
|
2296
|
+
"type": "string",
|
|
2297
|
+
"required": false
|
|
2298
|
+
},
|
|
2299
|
+
"role": {
|
|
2300
|
+
"type": "AriaRole",
|
|
2301
|
+
"required": false
|
|
2302
|
+
},
|
|
2303
|
+
"rel": {
|
|
2304
|
+
"type": "string",
|
|
2305
|
+
"required": false
|
|
2306
|
+
},
|
|
2307
|
+
"onClick": {
|
|
2308
|
+
"type": "MouseEventHandler<HTMLTextAreaElement>",
|
|
2309
|
+
"required": false
|
|
2310
|
+
},
|
|
2311
|
+
"size": {
|
|
2312
|
+
"type": "\"sm\" | \"md\" | \"lg\"",
|
|
2313
|
+
"required": false,
|
|
2314
|
+
"defaultValue": "md",
|
|
2315
|
+
"description": "Control size."
|
|
2316
|
+
},
|
|
2317
|
+
"resize": {
|
|
2318
|
+
"type": "\"none\" | \"vertical\" | \"horizontal\" | \"both\"",
|
|
2319
|
+
"required": false,
|
|
2320
|
+
"defaultValue": "vertical",
|
|
2321
|
+
"description": "Resize behaviour.\nIgnored when `autoResize` is true (resize is disabled to avoid conflict)."
|
|
2322
|
+
},
|
|
2323
|
+
"autoResize": {
|
|
2324
|
+
"type": "boolean",
|
|
2325
|
+
"required": false,
|
|
2326
|
+
"defaultValue": "false",
|
|
2327
|
+
"description": "Automatically grow height to fit content.\nDisables manual resize and scrollbar."
|
|
2328
|
+
}
|
|
2329
|
+
},
|
|
2330
|
+
"cssTokens": [],
|
|
2331
|
+
"story": {
|
|
2332
|
+
"title": "Forms/Textarea",
|
|
2333
|
+
"tags": [
|
|
2334
|
+
"autodocs",
|
|
2335
|
+
"stable",
|
|
2336
|
+
"lms"
|
|
2337
|
+
]
|
|
2338
|
+
},
|
|
2339
|
+
"subcomponents": null,
|
|
2340
|
+
"description": null,
|
|
2341
|
+
"gotchas": null,
|
|
2342
|
+
"examples": null,
|
|
2343
|
+
"related": null
|
|
2344
|
+
},
|
|
2345
|
+
"TextInput": {
|
|
2346
|
+
"props": {
|
|
2347
|
+
"disabled": {
|
|
2348
|
+
"type": "boolean",
|
|
2349
|
+
"required": false
|
|
2350
|
+
},
|
|
2351
|
+
"onChange": {
|
|
2352
|
+
"type": "ChangeEventHandler<HTMLInputElement>",
|
|
2353
|
+
"required": false
|
|
2354
|
+
},
|
|
2355
|
+
"className": {
|
|
2356
|
+
"type": "string",
|
|
2357
|
+
"required": false,
|
|
2358
|
+
"description": "Additional class name applied to the root wrapper element."
|
|
2359
|
+
},
|
|
2360
|
+
"id": {
|
|
2361
|
+
"type": "string",
|
|
2362
|
+
"required": false
|
|
2363
|
+
},
|
|
2364
|
+
"style": {
|
|
2365
|
+
"type": "CSSProperties",
|
|
2366
|
+
"required": false
|
|
2367
|
+
},
|
|
2368
|
+
"title": {
|
|
2369
|
+
"type": "string",
|
|
2370
|
+
"required": false
|
|
2371
|
+
},
|
|
2372
|
+
"role": {
|
|
2373
|
+
"type": "AriaRole",
|
|
2374
|
+
"required": false
|
|
2375
|
+
},
|
|
2376
|
+
"rel": {
|
|
2377
|
+
"type": "string",
|
|
2378
|
+
"required": false
|
|
2379
|
+
},
|
|
2380
|
+
"onClick": {
|
|
2381
|
+
"type": "MouseEventHandler<HTMLInputElement>",
|
|
2382
|
+
"required": false
|
|
2383
|
+
},
|
|
2384
|
+
"type": {
|
|
2385
|
+
"type": "\"number\" | \"text\" | \"email\" | \"password\" | \"url\" | \"tel\" | \"search\"",
|
|
2386
|
+
"required": false,
|
|
2387
|
+
"defaultValue": "text",
|
|
2388
|
+
"description": "Input type."
|
|
2389
|
+
},
|
|
2390
|
+
"size": {
|
|
2391
|
+
"type": "\"sm\" | \"md\" | \"lg\"",
|
|
2392
|
+
"required": false,
|
|
2393
|
+
"defaultValue": "md",
|
|
2394
|
+
"description": "Control size."
|
|
2395
|
+
},
|
|
2396
|
+
"suffix": {
|
|
2397
|
+
"type": "ReactNode",
|
|
2398
|
+
"required": false,
|
|
2399
|
+
"description": "Content to render after the input (icon, button)."
|
|
2400
|
+
},
|
|
2401
|
+
"inputClassName": {
|
|
2402
|
+
"type": "string",
|
|
2403
|
+
"required": false,
|
|
2404
|
+
"description": "Class name applied directly to the `<input>` element.\nUse for utilities like `tui-input-reset` that must target the input itself."
|
|
2405
|
+
}
|
|
2406
|
+
},
|
|
2407
|
+
"cssTokens": [
|
|
2408
|
+
"--tui-input-group-gap"
|
|
2409
|
+
],
|
|
2410
|
+
"story": {
|
|
2411
|
+
"title": "Forms/TextInput",
|
|
2412
|
+
"tags": [
|
|
2413
|
+
"autodocs",
|
|
2414
|
+
"stable",
|
|
2415
|
+
"lms"
|
|
2416
|
+
]
|
|
2417
|
+
},
|
|
2418
|
+
"subcomponents": null,
|
|
2419
|
+
"description": null,
|
|
2420
|
+
"gotchas": null,
|
|
2421
|
+
"examples": null,
|
|
2422
|
+
"related": null
|
|
2423
|
+
},
|
|
1637
2424
|
"Toolbar": {
|
|
1638
2425
|
"props": {
|
|
1639
2426
|
"orientation": {
|
|
@@ -1656,7 +2443,10 @@
|
|
|
1656
2443
|
"description": "Inline styles for layout integration"
|
|
1657
2444
|
}
|
|
1658
2445
|
},
|
|
1659
|
-
"cssTokens": [
|
|
2446
|
+
"cssTokens": [
|
|
2447
|
+
"--tui-toolbar-gap",
|
|
2448
|
+
"--tui-toolbar-padding"
|
|
2449
|
+
],
|
|
1660
2450
|
"story": {
|
|
1661
2451
|
"title": "Components/Toolbar",
|
|
1662
2452
|
"tags": [
|
|
@@ -1689,7 +2479,12 @@
|
|
|
1689
2479
|
"description": "Override provider's delay for this tooltip."
|
|
1690
2480
|
}
|
|
1691
2481
|
},
|
|
1692
|
-
"cssTokens": [
|
|
2482
|
+
"cssTokens": [
|
|
2483
|
+
"--tui-tooltip-bg",
|
|
2484
|
+
"--tui-tooltip-fg",
|
|
2485
|
+
"--tui-tooltip-radius",
|
|
2486
|
+
"--tui-tooltip-z"
|
|
2487
|
+
],
|
|
1693
2488
|
"story": {
|
|
1694
2489
|
"title": "Primitives/Tooltip",
|
|
1695
2490
|
"tags": [
|
|
@@ -1850,9 +2645,9 @@
|
|
|
1850
2645
|
"lms": 7,
|
|
1851
2646
|
"player": 24,
|
|
1852
2647
|
"reaction": 36,
|
|
1853
|
-
"system":
|
|
2648
|
+
"system": 76
|
|
1854
2649
|
},
|
|
1855
|
-
"total":
|
|
2650
|
+
"total": 155,
|
|
1856
2651
|
"manifest": "./icons/manifest.json"
|
|
1857
2652
|
}
|
|
1858
2653
|
}
|