@tangible/ui 0.0.6 → 0.0.7
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/Combobox/Combobox.d.ts +1 -1
- package/components/Combobox/Combobox.js +2 -2
- package/components/Combobox/types.d.ts +5 -0
- package/components/Field/Field.js +14 -4
- package/components/Field/FieldContext.d.ts +2 -0
- package/components/Radio/Radio.d.ts +4 -0
- package/components/Radio/Radio.js +15 -5
- package/components/Radio/RadioGroup.d.ts +1 -1
- package/components/Radio/RadioGroup.js +2 -2
- package/components/Radio/types.d.ts +10 -0
- package/components/Switch/Switch.js +28 -14
- package/package.json +1 -1
- package/styles/all.css +1 -1
- package/styles/all.expanded.css +160 -77
- package/styles/all.expanded.unlayered.css +160 -77
- package/styles/all.unlayered.css +1 -1
- package/styles/utilities/_index.scss +14 -4
- package/tui-manifest.json +31 -4
- package/utils/use-roving-group.js +9 -6
|
@@ -209,19 +209,29 @@
|
|
|
209
209
|
.is-place-center { place-items: center; }
|
|
210
210
|
.is-place-end { place-items: end; }
|
|
211
211
|
|
|
212
|
-
// Lists as layout containers
|
|
213
|
-
|
|
212
|
+
// Lists as layout containers — strip list chrome but leave margin alone
|
|
213
|
+
// so spacing utilities (tui-margin-block-end-lg etc.) can still win.
|
|
214
|
+
ul.#{sys.$prefix}grid,
|
|
214
215
|
ul.#{sys.$prefix}stack,
|
|
215
216
|
ul.#{sys.$prefix}inline-flex,
|
|
216
|
-
ul.#{sys.$prefix}flex { list-style: none !important; padding: 0 !important;
|
|
217
|
+
ul.#{sys.$prefix}flex { list-style: none !important; padding-inline-start: 0 !important; }
|
|
217
218
|
|
|
218
|
-
ul.#{sys.$prefix}grid > li,
|
|
219
|
+
ul.#{sys.$prefix}grid > li,
|
|
219
220
|
ul.#{sys.$prefix}stack > li,
|
|
220
221
|
ul.#{sys.$prefix}inline-flex > li,
|
|
221
222
|
ul.#{sys.$prefix}flex > li {
|
|
222
223
|
list-style: none !important;
|
|
223
224
|
}
|
|
224
225
|
|
|
226
|
+
// Opt-in full list reset — use when you want zero margin/padding on a list
|
|
227
|
+
.#{sys.$prefix}list-reset {
|
|
228
|
+
list-style: none !important;
|
|
229
|
+
padding: 0 !important;
|
|
230
|
+
margin: 0 !important;
|
|
231
|
+
|
|
232
|
+
> li { list-style: none !important; }
|
|
233
|
+
}
|
|
234
|
+
|
|
225
235
|
// ---------------------------
|
|
226
236
|
// Density utilities (aliases)
|
|
227
237
|
// Applies to BOTH grid and flex via shared custom props.
|
package/tui-manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.0.
|
|
3
|
-
"generated": "2026-03-
|
|
2
|
+
"version": "0.0.7",
|
|
3
|
+
"generated": "2026-03-14T17:17:34.578Z",
|
|
4
4
|
"components": {
|
|
5
5
|
"Accordion": {
|
|
6
6
|
"props": {
|
|
@@ -428,6 +428,7 @@
|
|
|
428
428
|
"cssTokens": [
|
|
429
429
|
"--tui-card-bg",
|
|
430
430
|
"--tui-card-border",
|
|
431
|
+
"--tui-card-border-width",
|
|
431
432
|
"--tui-card-border-interact",
|
|
432
433
|
"--tui-card-radius",
|
|
433
434
|
"--tui-card-shadow",
|
|
@@ -829,6 +830,12 @@
|
|
|
829
830
|
"defaultValue": "true",
|
|
830
831
|
"description": "Whether to open the listbox when the input receives focus."
|
|
831
832
|
},
|
|
833
|
+
"clearable": {
|
|
834
|
+
"type": "boolean",
|
|
835
|
+
"required": false,
|
|
836
|
+
"defaultValue": "true",
|
|
837
|
+
"description": "Whether to show the clear button when a value is present."
|
|
838
|
+
},
|
|
832
839
|
"inputClassName": {
|
|
833
840
|
"type": "string",
|
|
834
841
|
"required": false,
|
|
@@ -1824,6 +1831,11 @@
|
|
|
1824
1831
|
"type": "ReactNode",
|
|
1825
1832
|
"required": false
|
|
1826
1833
|
},
|
|
1834
|
+
"description": {
|
|
1835
|
+
"type": "string",
|
|
1836
|
+
"required": false,
|
|
1837
|
+
"description": "Description text displayed below the label."
|
|
1838
|
+
},
|
|
1827
1839
|
"disabled": {
|
|
1828
1840
|
"type": "boolean",
|
|
1829
1841
|
"required": false,
|
|
@@ -1835,7 +1847,15 @@
|
|
|
1835
1847
|
}
|
|
1836
1848
|
},
|
|
1837
1849
|
"cssTokens": [
|
|
1838
|
-
"--tui-radio-accent"
|
|
1850
|
+
"--tui-radio-accent",
|
|
1851
|
+
"--tui-radio-size",
|
|
1852
|
+
"--tui-radio-border",
|
|
1853
|
+
"--tui-radio-bg",
|
|
1854
|
+
"--tui-radio-gap",
|
|
1855
|
+
"--tui-radio-font-size",
|
|
1856
|
+
"--tui-radio-label-color",
|
|
1857
|
+
"--tui-radio-description-color",
|
|
1858
|
+
"--tui-radio-group-gap"
|
|
1839
1859
|
],
|
|
1840
1860
|
"story": {
|
|
1841
1861
|
"title": "Forms/RadioGroup",
|
|
@@ -2331,7 +2351,14 @@
|
|
|
2331
2351
|
},
|
|
2332
2352
|
"cssTokens": [
|
|
2333
2353
|
"--tui-switch-accent",
|
|
2334
|
-
"--tui-switch-
|
|
2354
|
+
"--tui-switch-bg",
|
|
2355
|
+
"--tui-switch-border",
|
|
2356
|
+
"--tui-switch-thumb-bg",
|
|
2357
|
+
"--tui-switch-track-height",
|
|
2358
|
+
"--tui-switch-size",
|
|
2359
|
+
"--tui-switch-label-color",
|
|
2360
|
+
"--tui-switch-font-size",
|
|
2361
|
+
"--tui-switch-gap"
|
|
2335
2362
|
],
|
|
2336
2363
|
"story": {
|
|
2337
2364
|
"title": "Forms/Switch",
|
|
@@ -52,11 +52,15 @@ export function useRovingGroup({ selectedValue, onSelect, disabled = false, loop
|
|
|
52
52
|
const items = getOrderedItems().filter((item) => !item.disabled && !disabled);
|
|
53
53
|
if (items.length === 0)
|
|
54
54
|
return;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
if (
|
|
59
|
-
|
|
55
|
+
// Only handle keys when a registered item has focus — don't hijack
|
|
56
|
+
// arrow keys from nested interactive controls (e.g. number inputs).
|
|
57
|
+
const target = event.target;
|
|
58
|
+
if (!items.some((item) => item.element === target))
|
|
59
|
+
return;
|
|
60
|
+
// Navigate from the focused item, not the selected value — these can
|
|
61
|
+
// differ when there's no selection or when focus moved without selecting.
|
|
62
|
+
const focusedIndex = items.findIndex((item) => item.element === target);
|
|
63
|
+
const currentIndex = focusedIndex !== -1 ? focusedIndex : 0;
|
|
60
64
|
// Determine which keys map to next/prev
|
|
61
65
|
let nextKeys;
|
|
62
66
|
let prevKeys;
|
|
@@ -107,7 +111,6 @@ export function useRovingGroup({ selectedValue, onSelect, disabled = false, loop
|
|
|
107
111
|
}, [
|
|
108
112
|
getOrderedItems,
|
|
109
113
|
disabled,
|
|
110
|
-
selectedValue,
|
|
111
114
|
orientationKeyboard,
|
|
112
115
|
orientation,
|
|
113
116
|
loop,
|