@tangible/ui 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/components/Accordion/Accordion.js +11 -3
  2. package/components/Avatar/Avatar.d.ts +1 -1
  3. package/components/Avatar/Avatar.js +5 -4
  4. package/components/Avatar/AvatarGroup.js +7 -5
  5. package/components/Avatar/index.d.ts +2 -2
  6. package/components/Avatar/index.js +1 -1
  7. package/components/Avatar/types.d.ts +27 -0
  8. package/components/Avatar/types.js +8 -0
  9. package/components/Button/Button.js +4 -2
  10. package/components/Button/index.d.ts +2 -1
  11. package/components/Button/index.js +1 -0
  12. package/components/Button/types.d.ts +10 -0
  13. package/components/Button/types.js +3 -1
  14. package/components/Checkbox/Checkbox.js +46 -11
  15. package/components/Checkbox/types.d.ts +9 -0
  16. package/components/Combobox/Combobox.d.ts +1 -1
  17. package/components/Combobox/Combobox.js +50 -7
  18. package/components/Combobox/index.d.ts +2 -1
  19. package/components/Combobox/index.js +1 -0
  20. package/components/Combobox/types.d.ts +9 -0
  21. package/components/Combobox/types.js +3 -1
  22. package/components/Dropdown/Dropdown.d.ts +1 -1
  23. package/components/Dropdown/Dropdown.js +32 -12
  24. package/components/Field/Field.d.ts +4 -1
  25. package/components/Field/Field.js +35 -14
  26. package/components/Field/FieldContext.d.ts +16 -0
  27. package/components/Field/FieldContext.js +3 -0
  28. package/components/Field/index.d.ts +2 -1
  29. package/components/Field/index.js +1 -0
  30. package/components/Icon/Icon.d.ts +1 -1
  31. package/components/Icon/Icon.js +2 -2
  32. package/components/Modal/Modal.d.ts +5 -1
  33. package/components/Modal/Modal.js +2 -2
  34. package/components/MoveHandle/MoveHandle.d.ts +1 -1
  35. package/components/MoveHandle/MoveHandle.js +4 -4
  36. package/components/MoveHandle/types.d.ts +1 -1
  37. package/components/MultiSelect/MultiSelect.d.ts +1 -1
  38. package/components/MultiSelect/MultiSelect.js +58 -19
  39. package/components/MultiSelect/index.d.ts +2 -1
  40. package/components/MultiSelect/index.js +1 -0
  41. package/components/MultiSelect/types.d.ts +34 -0
  42. package/components/MultiSelect/types.js +10 -0
  43. package/components/Pager/Pager.d.ts +7 -1
  44. package/components/Pager/Pager.js +7 -5
  45. package/components/Pager/index.d.ts +2 -0
  46. package/components/Pager/index.js +1 -0
  47. package/components/Pager/types.d.ts +37 -0
  48. package/components/Pager/types.js +12 -0
  49. package/components/Progress/Progress.d.ts +2 -1
  50. package/components/Progress/Progress.js +3 -3
  51. package/components/Rating/Rating.d.ts +2 -32
  52. package/components/Rating/Rating.js +5 -3
  53. package/components/Rating/index.d.ts +2 -1
  54. package/components/Rating/index.js +1 -0
  55. package/components/Rating/types.d.ts +41 -0
  56. package/components/Rating/types.js +4 -0
  57. package/components/SegmentedControl/SegmentedControl.js +6 -5
  58. package/components/SegmentedControl/types.d.ts +17 -5
  59. package/components/Select/Select.d.ts +1 -0
  60. package/components/Select/Select.js +131 -77
  61. package/components/Select/SelectContext.d.ts +4 -16
  62. package/components/Select/SelectContext.js +5 -35
  63. package/components/Select/types.d.ts +19 -19
  64. package/components/Sidebar/Sidebar.js +25 -20
  65. package/components/StepIndicator/StepIndicator.d.ts +1 -1
  66. package/components/StepIndicator/StepIndicator.js +14 -10
  67. package/components/StepIndicator/index.d.ts +2 -1
  68. package/components/StepIndicator/index.js +1 -0
  69. package/components/StepIndicator/types.d.ts +18 -0
  70. package/components/StepIndicator/types.js +7 -1
  71. package/components/Table/BulkActionsBar.d.ts +4 -1
  72. package/components/Table/BulkActionsBar.js +5 -4
  73. package/components/Table/DataTable.d.ts +4 -1
  74. package/components/Table/DataTable.js +10 -8
  75. package/components/Table/index.d.ts +3 -0
  76. package/components/Table/index.js +2 -0
  77. package/components/Table/types.d.ts +20 -0
  78. package/components/Table/types.js +11 -0
  79. package/components/Tabs/Tabs.js +11 -4
  80. package/components/TextInput/TextInput.js +2 -1
  81. package/components/TextInput/types.d.ts +7 -1
  82. package/components/Textarea/Textarea.js +3 -2
  83. package/components/Textarea/types.d.ts +6 -1
  84. package/components/Tooltip/Tooltip.d.ts +1 -1
  85. package/components/Tooltip/Tooltip.js +16 -10
  86. package/icons/icons.svg +29 -15
  87. package/icons/lms/index.d.ts +8 -0
  88. package/icons/lms/index.js +48 -4
  89. package/icons/manifest.json +112 -0
  90. package/icons/player/index.js +9 -9
  91. package/icons/registry.d.ts +28 -0
  92. package/icons/registry.js +14 -0
  93. package/icons/system/index.d.ts +20 -0
  94. package/icons/system/index.js +112 -2
  95. package/package.json +1 -1
  96. package/styles/all.css +1 -1
  97. package/styles/all.expanded.css +266 -59
  98. package/styles/all.expanded.unlayered.css +266 -59
  99. package/styles/all.unlayered.css +1 -1
  100. package/styles/components/input/index.scss +29 -7
  101. package/styles/system/_constants.scss +1 -1
  102. package/styles/system/_tokens.scss +1 -0
  103. package/tui-manifest.json +78 -52
@@ -13,6 +13,8 @@
13
13
  // --tui-input-border-focus Focus state border color
14
14
  // --tui-input-border-invalid Invalid state border color
15
15
  // --tui-input-radius Border radius
16
+ // --tui-input-fg-placeholder Placeholder text color
17
+ // --tui-input-bg-readonly Read-only background color
16
18
  // --tui-input-accent Accent color (checkboxes, toggles)
17
19
  //
18
20
  // To override from consuming code:
@@ -58,7 +60,7 @@
58
60
  ) {
59
61
  // Internal tokens — read component API with fallback to primitives
60
62
  --_bg: var(--#{sys.$prefix}input-bg, var(--#{sys.$prefix}color-bg-surface));
61
- --_fg: var(--#{sys.$prefix}input-fg, var(--#{sys.$prefix}color-fg-muted));
63
+ --_fg: var(--#{sys.$prefix}input-fg, var(--#{sys.$prefix}color-fg));
62
64
  --_border: var(--#{sys.$prefix}input-border, var(--#{sys.$prefix}color-border));
63
65
  --_border-focus: var(--#{sys.$prefix}input-border-focus, var(--#{sys.$prefix}theme-primary-base));
64
66
  --_border-invalid: var(--#{sys.$prefix}input-border-invalid, var(--#{sys.$prefix}theme-danger-base));
@@ -79,12 +81,22 @@
79
81
  transition-timing-function: var(--#{sys.$prefix}motion-timing);
80
82
  transition-property: border-color, color, background-color;
81
83
 
84
+ &::placeholder {
85
+ color: var(--#{sys.$prefix}input-fg-placeholder, var(--#{sys.$prefix}color-fg-muted));
86
+ opacity: 1; // Normalize Firefox which applies its own opacity reduction
87
+ }
88
+
82
89
  &:focus-visible {
83
90
  --_border: var(--_border-focus);
84
91
  outline: var(--#{sys.$prefix}focus-ring-width) solid var(--#{sys.$prefix}focus-ring-color);
85
92
  outline-offset: var(--#{sys.$prefix}focus-ring-offset);
86
93
  }
87
94
 
95
+ &[readonly] {
96
+ background-color: var(--#{sys.$prefix}input-bg-readonly, var(--#{sys.$prefix}color-bg));
97
+ cursor: default;
98
+ }
99
+
88
100
  &[disabled] {
89
101
  opacity: var(--#{sys.$prefix}opacity-disabled);
90
102
  cursor: not-allowed;
@@ -110,26 +122,33 @@
110
122
  // Inline choice (radio/checkbox with label)
111
123
  // ---------------------------------------------------------------------------
112
124
  :where(.#{sys.$prefix}interface) .#{sys.$prefix}inline-choice {
113
- // Internal tokens
114
- --_accent: var(--#{sys.$prefix}input-accent, var(--#{sys.$prefix}theme-primary-base));
115
-
116
125
  display: flex;
117
126
  align-items: center;
118
127
  gap: var(--#{sys.$prefix}spacing-xs);
128
+ cursor: pointer;
129
+
130
+ // Radio: native appearance with accent-color
131
+ input[type="radio"] {
132
+ --_accent: var(--#{sys.$prefix}input-accent, var(--#{sys.$prefix}theme-primary-base));
119
133
 
120
- input[type="radio"],
121
- input[type="checkbox"] {
122
134
  font-size: 1.15em;
123
135
  width: 1em;
124
136
  height: 1em;
125
137
  flex: 0 0 1em;
126
138
  margin: 0;
127
139
 
140
+ &:focus-visible {
141
+ outline: var(--#{sys.$prefix}focus-ring-width) solid var(--#{sys.$prefix}focus-ring-color);
142
+ outline-offset: var(--#{sys.$prefix}focus-ring-offset);
143
+ }
144
+
128
145
  &:checked {
129
146
  accent-color: var(--_accent);
130
147
  }
131
148
  }
132
149
 
150
+ // Checkbox: fully handled by Checkbox/styles.scss (appearance, sizing, states).
151
+
133
152
  label {
134
153
  font-weight: unset;
135
154
  line-height: 1.25em;
@@ -140,6 +159,9 @@
140
159
  // ---------------------------------------------------------------------------
141
160
  // Toggle switch
142
161
  // ---------------------------------------------------------------------------
162
+ // The base checkbox rule (Checkbox/styles.scss) applies appearance: none and
163
+ // visual properties to ALL checkboxes. The toggle's checkbox is visually hidden
164
+ // via clip/position — those properties are inert on a clipped element.
143
165
  :where(.#{sys.$prefix}interface) .#{sys.$prefix}toggle {
144
166
  // Internal tokens
145
167
  --_accent: var(--#{sys.$prefix}input-accent, var(--#{sys.$prefix}theme-primary-base));
@@ -216,7 +238,7 @@
216
238
  :where(.#{sys.$prefix}interface) input[type="file"] {
217
239
  // Internal tokens
218
240
  --_bg: var(--#{sys.$prefix}input-bg, var(--#{sys.$prefix}color-bg-surface));
219
- --_fg: var(--#{sys.$prefix}input-fg, var(--#{sys.$prefix}color-fg-muted));
241
+ --_fg: var(--#{sys.$prefix}input-fg, var(--#{sys.$prefix}color-fg));
220
242
  --_border: var(--#{sys.$prefix}input-border, var(--#{sys.$prefix}color-border));
221
243
  --_radius: var(--#{sys.$prefix}input-radius, var(--#{sys.$prefix}radius-md));
222
244
 
@@ -7,6 +7,6 @@
7
7
 
8
8
  $prefix: tui- !default;
9
9
  $container-name: tuiContainer !default;
10
- $radius: (xs: 2px, sm: 4px, md: 8px, lg: 12px) !default;
10
+ $radius: (xs: 2px, sm: 4px, md: 8px, lg: 12px, full: 9999px) !default;
11
11
  $space : (1: .25rem, 2: .5rem, 3: .75rem, 4: 1rem) !default;
12
12
  $font : (base-size: 16px, line: 1.5) !default;
@@ -48,6 +48,7 @@ $brand: 'blue';
48
48
 
49
49
  /* Font Weight */
50
50
  --#{$prefix}font-weight-medium: 500;
51
+ --#{$prefix}font-weight-semibold: 600;
51
52
 
52
53
  /* Border */
53
54
  --#{$prefix}border-width: 1px;
package/tui-manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "0.0.7",
3
- "generated": "2026-03-14T17:17:34.578Z",
2
+ "version": "0.0.9",
3
+ "generated": "2026-03-19T22:46:07.954Z",
4
4
  "components": {
5
5
  "Accordion": {
6
6
  "props": {
@@ -110,13 +110,11 @@
110
110
  "size": {
111
111
  "type": "\"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"xxl\"",
112
112
  "required": false,
113
- "defaultValue": "md",
114
113
  "description": "Size of the avatar"
115
114
  },
116
115
  "shape": {
117
116
  "type": "\"circle\" | \"square\"",
118
117
  "required": false,
119
- "defaultValue": "circle",
120
118
  "description": "Shape of the avatar"
121
119
  },
122
120
  "indicator": {
@@ -132,7 +130,6 @@
132
130
  "indicatorPosition": {
133
131
  "type": "\"top-left\" | \"top-right\" | \"bottom-left\" | \"bottom-right\"",
134
132
  "required": false,
135
- "defaultValue": "bottom-right",
136
133
  "description": "Position of the indicator"
137
134
  },
138
135
  "tooltip": {
@@ -140,6 +137,11 @@
140
137
  "required": false,
141
138
  "description": "When true, wraps the avatar with a Tooltip showing the `name`.\nHelps sighted users discover the user's name on hover/focus.\nHas no effect when `name` is not provided."
142
139
  },
140
+ "labels": {
141
+ "type": "AvatarLabels",
142
+ "required": false,
143
+ "description": "Overridable strings for i18n."
144
+ },
143
145
  "className": {
144
146
  "type": "string",
145
147
  "required": false,
@@ -230,6 +232,11 @@
230
232
  "defaultValue": "`${label}, loading` (English)",
231
233
  "description": "Accessible label override during loading state. For i18n support.\nWhen loading, this replaces the auto-composed label."
232
234
  },
235
+ "labels": {
236
+ "type": "ButtonLabels",
237
+ "required": false,
238
+ "description": "Override default English strings for i18n.\nCovers strings not already handled by existing props (e.g. `loadingLabel`)."
239
+ },
233
240
  "target": {
234
241
  "type": "HTMLAttributeAnchorTarget",
235
242
  "required": false,
@@ -521,17 +528,26 @@
521
528
  },
522
529
  "label": {
523
530
  "type": "ReactNode",
524
- "required": false
531
+ "required": false,
532
+ "description": "When provided, renders the checkbox inside a `<label>` with this content.\nWhen omitted, renders a bare `<input>` — you must provide an accessible name\nvia `aria-label`, `aria-labelledby`, or a wrapping `Field.Control` + `Field.Label`.\n@remarks When used inside `Field.Control`, `Field.Label` injects `aria-labelledby`\nonto the input. If both `label` and `Field.Label` are present, AT may concatenate\nboth names. Prefer one labelling mechanism — either `label` prop or `Field.Label`."
525
533
  }
526
534
  },
527
535
  "cssTokens": [
528
- "--tui-input-accent"
536
+ "--tui-checkbox-accent",
537
+ "--tui-checkbox-border",
538
+ "--tui-checkbox-border-invalid",
539
+ "--tui-checkbox-radius",
540
+ "--tui-checkbox-bg",
541
+ "--tui-checkbox-size",
542
+ "--tui-checkbox-gap",
543
+ "--tui-checkbox-label-color"
529
544
  ],
530
545
  "story": {
531
546
  "title": "Forms/Checkbox",
532
547
  "tags": [
533
548
  "autodocs",
534
- "lms"
549
+ "lms",
550
+ "a11y"
535
551
  ]
536
552
  },
537
553
  "subcomponents": null,
@@ -840,6 +856,11 @@
840
856
  "type": "string",
841
857
  "required": false,
842
858
  "description": "Class name applied directly to the `<input>` element.\nUse for utilities like `tui-input-reset` that must target the input itself."
859
+ },
860
+ "labels": {
861
+ "type": "ComboboxLabels",
862
+ "required": false,
863
+ "description": "Override default English strings for i18n."
843
864
  }
844
865
  },
845
866
  "cssTokens": [
@@ -859,6 +880,7 @@
859
880
  "story": {
860
881
  "title": "Forms/Combobox",
861
882
  "tags": [
883
+ "stable",
862
884
  "lms"
863
885
  ]
864
886
  },
@@ -968,33 +990,7 @@
968
990
  "notFor": null
969
991
  },
970
992
  "Field": {
971
- "props": {
972
- "error": {
973
- "type": "boolean",
974
- "required": false,
975
- "description": "Whether the field has an error state"
976
- },
977
- "required": {
978
- "type": "boolean",
979
- "required": false,
980
- "description": "Whether the field is required"
981
- },
982
- "disabled": {
983
- "type": "boolean",
984
- "required": false,
985
- "description": "Whether the field is disabled"
986
- },
987
- "inline": {
988
- "type": "boolean",
989
- "required": false,
990
- "description": "Inline layout: label and control on same row"
991
- },
992
- "className": {
993
- "type": "string",
994
- "required": false,
995
- "description": "Additional class name for the field wrapper"
996
- }
997
- },
993
+ "props": {},
998
994
  "cssTokens": [
999
995
  "--tui-field-gap",
1000
996
  "--tui-field-label-fg",
@@ -1209,6 +1205,11 @@
1209
1205
  "size": {
1210
1206
  "type": "\"sm\" | \"md\" | \"lg\"",
1211
1207
  "required": false
1208
+ },
1209
+ "preventScrollOnRestore": {
1210
+ "type": "boolean",
1211
+ "required": false,
1212
+ "description": "When true, prevents the browser from scrolling to the trigger element\nwhen focus is restored on close. Useful when the trigger may be off-screen\ninside a scrollable container. Default: false."
1212
1213
  }
1213
1214
  },
1214
1215
  "cssTokens": [
@@ -1278,14 +1279,12 @@
1278
1279
  "mode": {
1279
1280
  "type": "\"full\" | \"handle\"",
1280
1281
  "required": false,
1281
- "defaultValue": "full",
1282
1282
  "description": "Structural mode. 'full' (default) shows background panel with arrows/index. 'handle' shows only the bare drag icon button."
1283
1283
  },
1284
1284
  "size": {
1285
1285
  "type": "\"sm\" | \"md\"",
1286
1286
  "required": false,
1287
- "defaultValue": "md",
1288
- "description": "Component scale. sm = 32px, md = 40px. Ignored when mode is 'handle'."
1287
+ "description": "Component scale. Full mode: sm = 32px, md = 40px. Handle mode: sm = 24px, md = 32px."
1289
1288
  },
1290
1289
  "index": {
1291
1290
  "type": "number",
@@ -1295,19 +1294,16 @@
1295
1294
  "locked": {
1296
1295
  "type": "boolean",
1297
1296
  "required": false,
1298
- "defaultValue": "false",
1299
1297
  "description": "When true, shows lock icon and disables all interaction."
1300
1298
  },
1301
1299
  "canMoveUp": {
1302
1300
  "type": "boolean",
1303
1301
  "required": false,
1304
- "defaultValue": "true",
1305
1302
  "description": "When false, disables the move-up button without hiding it. Default: true."
1306
1303
  },
1307
1304
  "canMoveDown": {
1308
1305
  "type": "boolean",
1309
1306
  "required": false,
1310
- "defaultValue": "true",
1311
1307
  "description": "When false, disables the move-down button without hiding it. Default: true."
1312
1308
  },
1313
1309
  "labels": {
@@ -1396,6 +1392,11 @@
1396
1392
  "required": false,
1397
1393
  "description": "Maximum number of selections allowed.\nWhen reached, unselected options become disabled."
1398
1394
  },
1395
+ "labels": {
1396
+ "type": "MultiSelectLabels",
1397
+ "required": false,
1398
+ "description": "Override internal display and screen reader strings for i18n.\nAll keys are optional — omitted keys use English defaults."
1399
+ },
1399
1400
  "id": {
1400
1401
  "type": "string",
1401
1402
  "required": false,
@@ -1422,6 +1423,7 @@
1422
1423
  "title": "Forms/MultiSelect",
1423
1424
  "tags": [
1424
1425
  "autodocs",
1426
+ "stable",
1425
1427
  "lms"
1426
1428
  ]
1427
1429
  },
@@ -1698,6 +1700,11 @@
1698
1700
  "type": "string",
1699
1701
  "required": false,
1700
1702
  "description": "Additional class name"
1703
+ },
1704
+ "labels": {
1705
+ "type": "PagerLabels",
1706
+ "required": false,
1707
+ "description": "Overridable label strings for i18n.\nAll keys are optional — defaults are English."
1701
1708
  }
1702
1709
  },
1703
1710
  "cssTokens": [
@@ -1930,6 +1937,11 @@
1930
1937
  "type": "string",
1931
1938
  "required": false,
1932
1939
  "description": "Gap override (e.g. '0.25rem') – otherwise uses density utilities"
1940
+ },
1941
+ "labels": {
1942
+ "type": "RatingLabels",
1943
+ "required": false,
1944
+ "description": "Override default English strings for i18n."
1933
1945
  }
1934
1946
  },
1935
1947
  "cssTokens": [
@@ -1970,7 +1982,7 @@
1970
1982
  "description": "Visual style"
1971
1983
  },
1972
1984
  "size": {
1973
- "type": "\"sm\" | \"md\"",
1985
+ "type": "\"sm\" | \"md\" | \"lg\"",
1974
1986
  "required": false,
1975
1987
  "description": "Size scale"
1976
1988
  },
@@ -1984,6 +1996,11 @@
1984
1996
  "required": false,
1985
1997
  "description": "Whether arrow keys wrap around"
1986
1998
  },
1999
+ "wrap": {
2000
+ "type": "boolean",
2001
+ "required": false,
2002
+ "description": "Allow items to wrap to multiple lines (default: false)"
2003
+ },
1987
2004
  "disabled": {
1988
2005
  "type": "boolean",
1989
2006
  "required": false,
@@ -2005,13 +2022,16 @@
2005
2022
  "--tui-segmented-item-radius",
2006
2023
  "--tui-segmented-item-fg",
2007
2024
  "--tui-segmented-item-bg-active",
2008
- "--tui-segmented-item-fg-active"
2025
+ "--tui-segmented-item-fg-active",
2026
+ "--tui-segmented-indicator",
2027
+ "--tui-segmented-indicator-size"
2009
2028
  ],
2010
2029
  "story": {
2011
2030
  "title": "Components/SegmentedControl",
2012
2031
  "tags": [
2013
2032
  "autodocs",
2014
- "stable"
2033
+ "stable",
2034
+ "a11y"
2015
2035
  ]
2016
2036
  },
2017
2037
  "subcomponents": [
@@ -2134,7 +2154,8 @@
2134
2154
  "title": "Forms/Select",
2135
2155
  "tags": [
2136
2156
  "autodocs",
2137
- "lms"
2157
+ "lms",
2158
+ "stable"
2138
2159
  ]
2139
2160
  },
2140
2161
  "subcomponents": null,
@@ -2242,6 +2263,11 @@
2242
2263
  "type": "string",
2243
2264
  "required": false,
2244
2265
  "description": "Additional CSS class names."
2266
+ },
2267
+ "labels": {
2268
+ "type": "StepIndicatorLabels",
2269
+ "required": false,
2270
+ "description": "Override default English strings for i18n.\nCovers status display names and the aria-label template."
2245
2271
  }
2246
2272
  },
2247
2273
  "cssTokens": [],
@@ -2523,13 +2549,13 @@
2523
2549
  "type": "\"none\" | \"vertical\" | \"horizontal\" | \"both\"",
2524
2550
  "required": false,
2525
2551
  "defaultValue": "vertical",
2526
- "description": "Resize behaviour.\nIgnored when `autoResize` is true (resize is disabled to avoid conflict)."
2552
+ "description": "Resize behaviour.\nIgnored when `autoResize` is true (resize is disabled to avoid conflict).\nTakes precedence over `style.resize` when both are provided."
2527
2553
  },
2528
2554
  "autoResize": {
2529
2555
  "type": "boolean",
2530
2556
  "required": false,
2531
2557
  "defaultValue": "false",
2532
- "description": "Automatically grow height to fit content.\nDisables manual resize and scrollbar."
2558
+ "description": "Automatically grow height to fit content.\nDisables manual resize and sets `overflow: hidden`.\n\n**Warning:** If you apply an external `max-height` via CSS or `style`,\ncontent beyond that height will be clipped with no scrollbar.\nIn that case, add `overflow-y: auto` to restore scrolling."
2533
2559
  }
2534
2560
  },
2535
2561
  "cssTokens": [],
@@ -2603,12 +2629,12 @@
2603
2629
  "suffix": {
2604
2630
  "type": "ReactNode",
2605
2631
  "required": false,
2606
- "description": "Content to render after the input (icon, button)."
2632
+ "description": "Content to render after the input (icon, button).\n@remarks String addons (e.g. \"USD\", \".com\") are not part of the input's\naccessible name. Use `aria-label` on the input to provide full context."
2607
2633
  },
2608
2634
  "inputClassName": {
2609
2635
  "type": "string",
2610
2636
  "required": false,
2611
- "description": "Class name applied directly to the `<input>` element.\nUse for utilities like `tui-input-reset` that must target the input itself."
2637
+ "description": "Class name applied directly to the `<input>` element.\nUse for utilities like `tui-input-reset` (removes browser-native search\ndecoration, clear buttons, and spinners) that must target the input itself."
2612
2638
  }
2613
2639
  },
2614
2640
  "cssTokens": [
@@ -2902,12 +2928,12 @@
2902
2928
  "icons": {
2903
2929
  "sets": {
2904
2930
  "cred": 12,
2905
- "lms": 7,
2931
+ "lms": 11,
2906
2932
  "player": 24,
2907
2933
  "reaction": 36,
2908
- "system": 76
2934
+ "system": 86
2909
2935
  },
2910
- "total": 155,
2936
+ "total": 169,
2911
2937
  "manifest": "./icons/manifest.json"
2912
2938
  }
2913
2939
  }