use-wc 1.0.0-pre.75 → 1.0.0-pre.76
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/custom-elements.json +139 -139
- package/dist/design-system.css +12 -1
- package/dist/tokens.css +4 -3
- package/package.json +1 -1
- package/vscode.html-custom-data.json +18 -18
package/custom-elements.json
CHANGED
|
@@ -1841,6 +1841,88 @@
|
|
|
1841
1841
|
}
|
|
1842
1842
|
]
|
|
1843
1843
|
},
|
|
1844
|
+
{
|
|
1845
|
+
"kind": "javascript-module",
|
|
1846
|
+
"path": "src/elements/use-focusgroup/use-focusgroup.ts",
|
|
1847
|
+
"declarations": [
|
|
1848
|
+
{
|
|
1849
|
+
"kind": "class",
|
|
1850
|
+
"description": "Nested controls are removed from the tab flow until the user navigates the nested controls with arrow keys.\n\n`use-focusgroup` is most useful for things like WYSIWYG toolbars, sets of tabs, or lists of navigation links (like a list of emails in a master detail layout).\n\n## To do\n\n- [ ] add `grid` navigation feature\n- [ ] add `autofocus` attribute support\n\n## Long term plan\n\nThis web component was built with the intent to be replaced by browser-native focusgroup support once it becomes baseline. Hopefully migration will be as simple as changing the tag name from `use-focusgroup` to `div` and the `options` attribute to `focusgroup`.\n\n<baseline-status featureId=\"focusgroup_attribute\"></baseline-status>\n\n## Sources\n\n- [Open UI focusgroup Explainer](https://open-ui.org/components/focusgroup.explainer/)\n- [tabbable](https://www.npmjs.com/package/tabbable)\n- [Toolbar Pattern](https://www.w3.org/WAI/ARIA/apg/patterns/toolbar/)\n- [@gfellerph/focusgroup-polyfill](https://github.com/gfellerph/focusgroup-polyfill)",
|
|
1851
|
+
"name": "UseFocusgroup",
|
|
1852
|
+
"members": [
|
|
1853
|
+
{
|
|
1854
|
+
"kind": "field",
|
|
1855
|
+
"name": "features",
|
|
1856
|
+
"type": {
|
|
1857
|
+
"text": "string"
|
|
1858
|
+
},
|
|
1859
|
+
"default": "\"\"",
|
|
1860
|
+
"description": "A list of space-separated features that can be used to customize the behavior of the focusgroup.\n\nThe following options are available:\n\n- `inline` opts into keyboard navigation via left and right arrow keys\n- `block` opts into keyboard navigation via up and down arrow keys\n- `wrap` arrow navigation should wrap around when reaching the end\n- `no-memory` whether the focusgroup should not remember the last focused element\n\nIf nothing if neither `inline` nor `block` is specified, both are assumed.",
|
|
1861
|
+
"attribute": "features"
|
|
1862
|
+
},
|
|
1863
|
+
{
|
|
1864
|
+
"kind": "field",
|
|
1865
|
+
"name": "focusedElement",
|
|
1866
|
+
"type": {
|
|
1867
|
+
"text": "HTMLElement | null"
|
|
1868
|
+
},
|
|
1869
|
+
"default": "null",
|
|
1870
|
+
"description": "The most recently focused element in the focusgroup."
|
|
1871
|
+
},
|
|
1872
|
+
{
|
|
1873
|
+
"kind": "method",
|
|
1874
|
+
"name": "focus"
|
|
1875
|
+
},
|
|
1876
|
+
{
|
|
1877
|
+
"kind": "field",
|
|
1878
|
+
"name": "promoted",
|
|
1879
|
+
"description": "Whether the use-focusgroup is promoted to the top of the tab order inside a parent use-focusgroup.",
|
|
1880
|
+
"readonly": true,
|
|
1881
|
+
"default": "false"
|
|
1882
|
+
},
|
|
1883
|
+
{
|
|
1884
|
+
"kind": "method",
|
|
1885
|
+
"name": "promote",
|
|
1886
|
+
"description": "Promotes the use-focusgroup to the top of the tab order inside a parent use-focusgroup."
|
|
1887
|
+
}
|
|
1888
|
+
],
|
|
1889
|
+
"attributes": [
|
|
1890
|
+
{
|
|
1891
|
+
"name": "features",
|
|
1892
|
+
"type": {
|
|
1893
|
+
"text": "string"
|
|
1894
|
+
},
|
|
1895
|
+
"default": "\"\"",
|
|
1896
|
+
"description": "A list of space-separated features that can be used to customize the behavior of the focusgroup.\n\nThe following options are available:\n\n- `inline` opts into keyboard navigation via left and right arrow keys\n- `block` opts into keyboard navigation via up and down arrow keys\n- `wrap` arrow navigation should wrap around when reaching the end\n- `no-memory` whether the focusgroup should not remember the last focused element\n\nIf nothing if neither `inline` nor `block` is specified, both are assumed.",
|
|
1897
|
+
"fieldName": "features"
|
|
1898
|
+
}
|
|
1899
|
+
],
|
|
1900
|
+
"superclass": {
|
|
1901
|
+
"name": "HTMLElement"
|
|
1902
|
+
},
|
|
1903
|
+
"tagName": "use-focusgroup",
|
|
1904
|
+
"customElement": true
|
|
1905
|
+
}
|
|
1906
|
+
],
|
|
1907
|
+
"exports": [
|
|
1908
|
+
{
|
|
1909
|
+
"kind": "js",
|
|
1910
|
+
"name": "UseFocusgroup",
|
|
1911
|
+
"declaration": {
|
|
1912
|
+
"name": "UseFocusgroup",
|
|
1913
|
+
"module": "src/elements/use-focusgroup/use-focusgroup.ts"
|
|
1914
|
+
}
|
|
1915
|
+
},
|
|
1916
|
+
{
|
|
1917
|
+
"kind": "custom-element-definition",
|
|
1918
|
+
"name": "use-focusgroup",
|
|
1919
|
+
"declaration": {
|
|
1920
|
+
"name": "UseFocusgroup",
|
|
1921
|
+
"module": "src/elements/use-focusgroup/use-focusgroup.ts"
|
|
1922
|
+
}
|
|
1923
|
+
}
|
|
1924
|
+
]
|
|
1925
|
+
},
|
|
1844
1926
|
{
|
|
1845
1927
|
"kind": "javascript-module",
|
|
1846
1928
|
"path": "src/elements/use-duration-input/use-duration-input.ts",
|
|
@@ -2155,88 +2237,6 @@
|
|
|
2155
2237
|
}
|
|
2156
2238
|
]
|
|
2157
2239
|
},
|
|
2158
|
-
{
|
|
2159
|
-
"kind": "javascript-module",
|
|
2160
|
-
"path": "src/elements/use-focusgroup/use-focusgroup.ts",
|
|
2161
|
-
"declarations": [
|
|
2162
|
-
{
|
|
2163
|
-
"kind": "class",
|
|
2164
|
-
"description": "Nested controls are removed from the tab flow until the user navigates the nested controls with arrow keys.\n\n`use-focusgroup` is most useful for things like WYSIWYG toolbars, sets of tabs, or lists of navigation links (like a list of emails in a master detail layout).\n\n## To do\n\n- [ ] add `grid` navigation feature\n- [ ] add `autofocus` attribute support\n\n## Long term plan\n\nThis web component was built with the intent to be replaced by browser-native focusgroup support once it becomes baseline. Hopefully migration will be as simple as changing the tag name from `use-focusgroup` to `div` and the `options` attribute to `focusgroup`.\n\n<baseline-status featureId=\"focusgroup_attribute\"></baseline-status>\n\n## Sources\n\n- [Open UI focusgroup Explainer](https://open-ui.org/components/focusgroup.explainer/)\n- [tabbable](https://www.npmjs.com/package/tabbable)\n- [Toolbar Pattern](https://www.w3.org/WAI/ARIA/apg/patterns/toolbar/)\n- [@gfellerph/focusgroup-polyfill](https://github.com/gfellerph/focusgroup-polyfill)",
|
|
2165
|
-
"name": "UseFocusgroup",
|
|
2166
|
-
"members": [
|
|
2167
|
-
{
|
|
2168
|
-
"kind": "field",
|
|
2169
|
-
"name": "features",
|
|
2170
|
-
"type": {
|
|
2171
|
-
"text": "string"
|
|
2172
|
-
},
|
|
2173
|
-
"default": "\"\"",
|
|
2174
|
-
"description": "A list of space-separated features that can be used to customize the behavior of the focusgroup.\n\nThe following options are available:\n\n- `inline` opts into keyboard navigation via left and right arrow keys\n- `block` opts into keyboard navigation via up and down arrow keys\n- `wrap` arrow navigation should wrap around when reaching the end\n- `no-memory` whether the focusgroup should not remember the last focused element\n\nIf nothing if neither `inline` nor `block` is specified, both are assumed.",
|
|
2175
|
-
"attribute": "features"
|
|
2176
|
-
},
|
|
2177
|
-
{
|
|
2178
|
-
"kind": "field",
|
|
2179
|
-
"name": "focusedElement",
|
|
2180
|
-
"type": {
|
|
2181
|
-
"text": "HTMLElement | null"
|
|
2182
|
-
},
|
|
2183
|
-
"default": "null",
|
|
2184
|
-
"description": "The most recently focused element in the focusgroup."
|
|
2185
|
-
},
|
|
2186
|
-
{
|
|
2187
|
-
"kind": "method",
|
|
2188
|
-
"name": "focus"
|
|
2189
|
-
},
|
|
2190
|
-
{
|
|
2191
|
-
"kind": "field",
|
|
2192
|
-
"name": "promoted",
|
|
2193
|
-
"description": "Whether the use-focusgroup is promoted to the top of the tab order inside a parent use-focusgroup.",
|
|
2194
|
-
"readonly": true,
|
|
2195
|
-
"default": "false"
|
|
2196
|
-
},
|
|
2197
|
-
{
|
|
2198
|
-
"kind": "method",
|
|
2199
|
-
"name": "promote",
|
|
2200
|
-
"description": "Promotes the use-focusgroup to the top of the tab order inside a parent use-focusgroup."
|
|
2201
|
-
}
|
|
2202
|
-
],
|
|
2203
|
-
"attributes": [
|
|
2204
|
-
{
|
|
2205
|
-
"name": "features",
|
|
2206
|
-
"type": {
|
|
2207
|
-
"text": "string"
|
|
2208
|
-
},
|
|
2209
|
-
"default": "\"\"",
|
|
2210
|
-
"description": "A list of space-separated features that can be used to customize the behavior of the focusgroup.\n\nThe following options are available:\n\n- `inline` opts into keyboard navigation via left and right arrow keys\n- `block` opts into keyboard navigation via up and down arrow keys\n- `wrap` arrow navigation should wrap around when reaching the end\n- `no-memory` whether the focusgroup should not remember the last focused element\n\nIf nothing if neither `inline` nor `block` is specified, both are assumed.",
|
|
2211
|
-
"fieldName": "features"
|
|
2212
|
-
}
|
|
2213
|
-
],
|
|
2214
|
-
"superclass": {
|
|
2215
|
-
"name": "HTMLElement"
|
|
2216
|
-
},
|
|
2217
|
-
"tagName": "use-focusgroup",
|
|
2218
|
-
"customElement": true
|
|
2219
|
-
}
|
|
2220
|
-
],
|
|
2221
|
-
"exports": [
|
|
2222
|
-
{
|
|
2223
|
-
"kind": "js",
|
|
2224
|
-
"name": "UseFocusgroup",
|
|
2225
|
-
"declaration": {
|
|
2226
|
-
"name": "UseFocusgroup",
|
|
2227
|
-
"module": "src/elements/use-focusgroup/use-focusgroup.ts"
|
|
2228
|
-
}
|
|
2229
|
-
},
|
|
2230
|
-
{
|
|
2231
|
-
"kind": "custom-element-definition",
|
|
2232
|
-
"name": "use-focusgroup",
|
|
2233
|
-
"declaration": {
|
|
2234
|
-
"name": "UseFocusgroup",
|
|
2235
|
-
"module": "src/elements/use-focusgroup/use-focusgroup.ts"
|
|
2236
|
-
}
|
|
2237
|
-
}
|
|
2238
|
-
]
|
|
2239
|
-
},
|
|
2240
2240
|
{
|
|
2241
2241
|
"kind": "javascript-module",
|
|
2242
2242
|
"path": "src/elements/use-grid/constants.ts",
|
|
@@ -4016,63 +4016,6 @@
|
|
|
4016
4016
|
}
|
|
4017
4017
|
]
|
|
4018
4018
|
},
|
|
4019
|
-
{
|
|
4020
|
-
"kind": "javascript-module",
|
|
4021
|
-
"path": "src/elements/use-scrollarea/index.ts",
|
|
4022
|
-
"declarations": [],
|
|
4023
|
-
"exports": [
|
|
4024
|
-
{
|
|
4025
|
-
"kind": "js",
|
|
4026
|
-
"name": "UseScrollarea",
|
|
4027
|
-
"declaration": {
|
|
4028
|
-
"name": "UseScrollarea",
|
|
4029
|
-
"module": "./use-scrollarea"
|
|
4030
|
-
}
|
|
4031
|
-
}
|
|
4032
|
-
]
|
|
4033
|
-
},
|
|
4034
|
-
{
|
|
4035
|
-
"kind": "javascript-module",
|
|
4036
|
-
"path": "src/elements/use-scrollarea/use-scrollarea.ts",
|
|
4037
|
-
"declarations": [
|
|
4038
|
-
{
|
|
4039
|
-
"kind": "class",
|
|
4040
|
-
"description": "A scroll container that exposes custom states for scroll edge detection.\n\n## Custom States\nThe following CSS custom states are available for styling:\n\n- `:state(at-block-start)` — scrolled to the block-start edge (top in horizontal writing modes)\n- `:state(at-block-end)` — scrolled to the block-end edge (bottom in horizontal writing modes)\n- `:state(at-inline-start)` — scrolled to the inline-start edge (left in LTR)\n- `:state(at-inline-end)` — scrolled to the inline-end edge (right in LTR)",
|
|
4041
|
-
"name": "UseScrollarea",
|
|
4042
|
-
"slots": [
|
|
4043
|
-
{
|
|
4044
|
-
"description": "Scrollable content",
|
|
4045
|
-
"name": ""
|
|
4046
|
-
}
|
|
4047
|
-
],
|
|
4048
|
-
"members": [],
|
|
4049
|
-
"superclass": {
|
|
4050
|
-
"name": "LitElement",
|
|
4051
|
-
"package": "lit"
|
|
4052
|
-
},
|
|
4053
|
-
"tagName": "use-scrollarea",
|
|
4054
|
-
"customElement": true
|
|
4055
|
-
}
|
|
4056
|
-
],
|
|
4057
|
-
"exports": [
|
|
4058
|
-
{
|
|
4059
|
-
"kind": "js",
|
|
4060
|
-
"name": "UseScrollarea",
|
|
4061
|
-
"declaration": {
|
|
4062
|
-
"name": "UseScrollarea",
|
|
4063
|
-
"module": "src/elements/use-scrollarea/use-scrollarea.ts"
|
|
4064
|
-
}
|
|
4065
|
-
},
|
|
4066
|
-
{
|
|
4067
|
-
"kind": "custom-element-definition",
|
|
4068
|
-
"name": "use-scrollarea",
|
|
4069
|
-
"declaration": {
|
|
4070
|
-
"name": "UseScrollarea",
|
|
4071
|
-
"module": "src/elements/use-scrollarea/use-scrollarea.ts"
|
|
4072
|
-
}
|
|
4073
|
-
}
|
|
4074
|
-
]
|
|
4075
|
-
},
|
|
4076
4019
|
{
|
|
4077
4020
|
"kind": "javascript-module",
|
|
4078
4021
|
"path": "src/elements/use-time-input/use-time-input.ts",
|
|
@@ -4338,6 +4281,63 @@
|
|
|
4338
4281
|
}
|
|
4339
4282
|
]
|
|
4340
4283
|
},
|
|
4284
|
+
{
|
|
4285
|
+
"kind": "javascript-module",
|
|
4286
|
+
"path": "src/elements/use-scrollarea/index.ts",
|
|
4287
|
+
"declarations": [],
|
|
4288
|
+
"exports": [
|
|
4289
|
+
{
|
|
4290
|
+
"kind": "js",
|
|
4291
|
+
"name": "UseScrollarea",
|
|
4292
|
+
"declaration": {
|
|
4293
|
+
"name": "UseScrollarea",
|
|
4294
|
+
"module": "./use-scrollarea"
|
|
4295
|
+
}
|
|
4296
|
+
}
|
|
4297
|
+
]
|
|
4298
|
+
},
|
|
4299
|
+
{
|
|
4300
|
+
"kind": "javascript-module",
|
|
4301
|
+
"path": "src/elements/use-scrollarea/use-scrollarea.ts",
|
|
4302
|
+
"declarations": [
|
|
4303
|
+
{
|
|
4304
|
+
"kind": "class",
|
|
4305
|
+
"description": "A scroll container that exposes custom states for scroll edge detection.\n\n## Custom States\nThe following CSS custom states are available for styling:\n\n- `:state(at-block-start)` — scrolled to the block-start edge (top in horizontal writing modes)\n- `:state(at-block-end)` — scrolled to the block-end edge (bottom in horizontal writing modes)\n- `:state(at-inline-start)` — scrolled to the inline-start edge (left in LTR)\n- `:state(at-inline-end)` — scrolled to the inline-end edge (right in LTR)",
|
|
4306
|
+
"name": "UseScrollarea",
|
|
4307
|
+
"slots": [
|
|
4308
|
+
{
|
|
4309
|
+
"description": "Scrollable content",
|
|
4310
|
+
"name": ""
|
|
4311
|
+
}
|
|
4312
|
+
],
|
|
4313
|
+
"members": [],
|
|
4314
|
+
"superclass": {
|
|
4315
|
+
"name": "LitElement",
|
|
4316
|
+
"package": "lit"
|
|
4317
|
+
},
|
|
4318
|
+
"tagName": "use-scrollarea",
|
|
4319
|
+
"customElement": true
|
|
4320
|
+
}
|
|
4321
|
+
],
|
|
4322
|
+
"exports": [
|
|
4323
|
+
{
|
|
4324
|
+
"kind": "js",
|
|
4325
|
+
"name": "UseScrollarea",
|
|
4326
|
+
"declaration": {
|
|
4327
|
+
"name": "UseScrollarea",
|
|
4328
|
+
"module": "src/elements/use-scrollarea/use-scrollarea.ts"
|
|
4329
|
+
}
|
|
4330
|
+
},
|
|
4331
|
+
{
|
|
4332
|
+
"kind": "custom-element-definition",
|
|
4333
|
+
"name": "use-scrollarea",
|
|
4334
|
+
"declaration": {
|
|
4335
|
+
"name": "UseScrollarea",
|
|
4336
|
+
"module": "src/elements/use-scrollarea/use-scrollarea.ts"
|
|
4337
|
+
}
|
|
4338
|
+
}
|
|
4339
|
+
]
|
|
4340
|
+
},
|
|
4341
4341
|
{
|
|
4342
4342
|
"kind": "javascript-module",
|
|
4343
4343
|
"path": "src/elements/use-tree/use-tree.ts",
|
package/dist/design-system.css
CHANGED
|
@@ -68,7 +68,13 @@
|
|
|
68
68
|
--usewc-color-input-border: var(--usewc-color-input-border-hover);
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
/* Matches the hover rule's own specificity (a real pseudo-class, not `:where()`-zeroed) so
|
|
72
|
+
that when both apply at once — hovering a focused control — source order decides and this,
|
|
73
|
+
declared after, wins; wrapping this in `:where()` as before let hover's specificity beat
|
|
74
|
+
it regardless of order. */
|
|
75
|
+
&:focus,
|
|
76
|
+
&:focus-within,
|
|
77
|
+
&:has(input:focus) {
|
|
72
78
|
--usewc-color-input-border: var(--usewc-color-input-border-focus);
|
|
73
79
|
--usewc-effect-outline-width: var(--usewc-effect-outline-size);
|
|
74
80
|
}
|
|
@@ -1528,6 +1534,11 @@
|
|
|
1528
1534
|
border-inline-start so it can sit shorter than the cell rather than spanning it. */
|
|
1529
1535
|
use-gridhead use-gridcell[role="columnheader"] {
|
|
1530
1536
|
position: relative;
|
|
1537
|
+
/* A header with no label has no line box, so its own height (and the divider's `%`
|
|
1538
|
+
height off it) would otherwise collapse to just the cell's own block padding —
|
|
1539
|
+
reserve the same total height a labeled cell gets (padding plus a full line) so an
|
|
1540
|
+
unlabeled column still gets a full-height divider next to its neighbors. */
|
|
1541
|
+
min-block-size: calc(var(--usewc-layout-grid-cell-line-height) + var(--usewc-layout-grid-cell-padding-block) * 2);
|
|
1531
1542
|
|
|
1532
1543
|
use-theme-escape & {
|
|
1533
1544
|
all: revert-layer;
|
package/dist/tokens.css
CHANGED
|
@@ -209,7 +209,7 @@
|
|
|
209
209
|
since relative-color syntax reading a `var()` only resolves reliably when the referenced
|
|
210
210
|
custom property lives on the same rule; `link.css` does the actual derivation locally,
|
|
211
211
|
alongside the (also local) `--usewc-local-link-text` it reads from. */
|
|
212
|
-
--usewc-effect-link-decoration-opacity: 0.
|
|
212
|
+
--usewc-effect-link-decoration-opacity: 0.3;
|
|
213
213
|
--usewc-effect-link-chrome-text-decoration: none;
|
|
214
214
|
/* - Sidebar nav item */
|
|
215
215
|
/* A sidebar item reads as chrome, not a hyperlink, so its text stays the document's own ink
|
|
@@ -835,7 +835,7 @@
|
|
|
835
835
|
--usewc-color-outline: var(--usewc-color-blue-400);
|
|
836
836
|
--usewc-color-prose-code-background: var(--usewc-color-gray-900);
|
|
837
837
|
--usewc-color-input-background-static: oklch(from var(--usewc-color-gray-100) l c h / 0.025);
|
|
838
|
-
--usewc-color-input-border-static: var(--usewc-color-gray-
|
|
838
|
+
--usewc-color-input-border-static: var(--usewc-color-gray-800);
|
|
839
839
|
--usewc-color-input-text-static: var(--usewc-color-gray-200);
|
|
840
840
|
--usewc-color-input-text-placeholder: var(--usewc-color-gray-500);
|
|
841
841
|
--usewc-color-form-label-text: var(--usewc-color-gray-100);
|
|
@@ -893,8 +893,9 @@
|
|
|
893
893
|
--usewc-color-link-text-static: var(--usewc-color-blue-400);
|
|
894
894
|
--usewc-color-link-text-hover: var(--usewc-color-blue-500);
|
|
895
895
|
--usewc-color-link-text-active: var(--usewc-color-blue-600);
|
|
896
|
+
--usewc-effect-link-decoration-opacity: 0.5;
|
|
896
897
|
--usewc-color-code-text: var(--usewc-color-red-200);
|
|
897
|
-
--usewc-color-input-border-hover: var(--usewc-color-gray-
|
|
898
|
+
--usewc-color-input-border-hover: var(--usewc-color-gray-700);
|
|
898
899
|
--usewc-color-input-border-focus: var(--usewc-color-blue-400);
|
|
899
900
|
--usewc-color-input-border-invalid: var(--usewc-color-red-300);
|
|
900
901
|
--usewc-color-input-segment-background-focus: var(--usewc-color-blue-100);
|
package/package.json
CHANGED
|
@@ -139,6 +139,18 @@
|
|
|
139
139
|
],
|
|
140
140
|
"references": []
|
|
141
141
|
},
|
|
142
|
+
{
|
|
143
|
+
"name": "use-focusgroup",
|
|
144
|
+
"description": "Nested controls are removed from the tab flow until the user navigates the nested controls with arrow keys.\n\n`use-focusgroup` is most useful for things like WYSIWYG toolbars, sets of tabs, or lists of navigation links (like a list of emails in a master detail layout).\n\n## To do\n\n- [ ] add `grid` navigation feature\n- [ ] add `autofocus` attribute support\n\n## Long term plan\n\nThis web component was built with the intent to be replaced by browser-native focusgroup support once it becomes baseline. Hopefully migration will be as simple as changing the tag name from `use-focusgroup` to `div` and the `options` attribute to `focusgroup`.\n\n<baseline-status featureId=\"focusgroup_attribute\"></baseline-status>\n\n## Sources\n\n- [Open UI focusgroup Explainer](https://open-ui.org/components/focusgroup.explainer/)\n- [tabbable](https://www.npmjs.com/package/tabbable)\n- [Toolbar Pattern](https://www.w3.org/WAI/ARIA/apg/patterns/toolbar/)\n- [@gfellerph/focusgroup-polyfill](https://github.com/gfellerph/focusgroup-polyfill)\n---\n\n\n### **Methods:**\n - **promote()** - Promotes the use-focusgroup to the top of the tab order inside a parent use-focusgroup.",
|
|
145
|
+
"attributes": [
|
|
146
|
+
{
|
|
147
|
+
"name": "features",
|
|
148
|
+
"description": "A list of space-separated features that can be used to customize the behavior of the focusgroup.\n\nThe following options are available:\n\n- `inline` opts into keyboard navigation via left and right arrow keys\n- `block` opts into keyboard navigation via up and down arrow keys\n- `wrap` arrow navigation should wrap around when reaching the end\n- `no-memory` whether the focusgroup should not remember the last focused element\n\nIf nothing if neither `inline` nor `block` is specified, both are assumed.",
|
|
149
|
+
"values": []
|
|
150
|
+
}
|
|
151
|
+
],
|
|
152
|
+
"references": []
|
|
153
|
+
},
|
|
142
154
|
{
|
|
143
155
|
"name": "use-duration-input",
|
|
144
156
|
"description": "Displays the parts of an ISO 8601 duration string using [`Intl.DurationFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DurationFormat).\n\nUses the [`duration-fns`](https://www.npmjs.com/package/duration-fns) library for parsing ISO 8601 values.\n\n<baseline-status featureId=\"intl-duration-format\"></baseline-status>\n---\n",
|
|
@@ -167,18 +179,6 @@
|
|
|
167
179
|
],
|
|
168
180
|
"references": []
|
|
169
181
|
},
|
|
170
|
-
{
|
|
171
|
-
"name": "use-focusgroup",
|
|
172
|
-
"description": "Nested controls are removed from the tab flow until the user navigates the nested controls with arrow keys.\n\n`use-focusgroup` is most useful for things like WYSIWYG toolbars, sets of tabs, or lists of navigation links (like a list of emails in a master detail layout).\n\n## To do\n\n- [ ] add `grid` navigation feature\n- [ ] add `autofocus` attribute support\n\n## Long term plan\n\nThis web component was built with the intent to be replaced by browser-native focusgroup support once it becomes baseline. Hopefully migration will be as simple as changing the tag name from `use-focusgroup` to `div` and the `options` attribute to `focusgroup`.\n\n<baseline-status featureId=\"focusgroup_attribute\"></baseline-status>\n\n## Sources\n\n- [Open UI focusgroup Explainer](https://open-ui.org/components/focusgroup.explainer/)\n- [tabbable](https://www.npmjs.com/package/tabbable)\n- [Toolbar Pattern](https://www.w3.org/WAI/ARIA/apg/patterns/toolbar/)\n- [@gfellerph/focusgroup-polyfill](https://github.com/gfellerph/focusgroup-polyfill)\n---\n\n\n### **Methods:**\n - **promote()** - Promotes the use-focusgroup to the top of the tab order inside a parent use-focusgroup.",
|
|
173
|
-
"attributes": [
|
|
174
|
-
{
|
|
175
|
-
"name": "features",
|
|
176
|
-
"description": "A list of space-separated features that can be used to customize the behavior of the focusgroup.\n\nThe following options are available:\n\n- `inline` opts into keyboard navigation via left and right arrow keys\n- `block` opts into keyboard navigation via up and down arrow keys\n- `wrap` arrow navigation should wrap around when reaching the end\n- `no-memory` whether the focusgroup should not remember the last focused element\n\nIf nothing if neither `inline` nor `block` is specified, both are assumed.",
|
|
177
|
-
"values": []
|
|
178
|
-
}
|
|
179
|
-
],
|
|
180
|
-
"references": []
|
|
181
|
-
},
|
|
182
182
|
{
|
|
183
183
|
"name": "use-grid",
|
|
184
184
|
"description": "Accessible grid component following [WAI-ARIA grid pattern](https://www.w3.org/WAI/ARIA/apg/patterns/grid/).\n\n## Grid Cell Modes\nThe `mode` attribute of the `use-gridcell` element determines how the cell behaves in terms of focus and interaction. The possible values are:\n\n- `'none'` - the cell itself is focusable and it does not contain any interactive elements.\n- `'widget'` - the cell itself is focusable and it contains more than one interactive element. To access the interactive elements, the user must press `Enter` or `F2`, and to restore focus to the cell, the user must press `Esc` or `F2`.\n- `'action'` - the cell itself is not focusable and it contains a single interactive element. The user can tab to the interactive elements directly.\n\n## Accessible Label\nProvide `aria-label` or `aria-labelledby` on the `use-grid` element so screen readers can identify the grid.\n---\n\n\n### **Slots:**\n - _default_ - Grid content (use-gridhead/use-gridbody rows)",
|
|
@@ -452,12 +452,6 @@
|
|
|
452
452
|
],
|
|
453
453
|
"references": []
|
|
454
454
|
},
|
|
455
|
-
{
|
|
456
|
-
"name": "use-scrollarea",
|
|
457
|
-
"description": "A scroll container that exposes custom states for scroll edge detection.\n\n## Custom States\nThe following CSS custom states are available for styling:\n\n- `:state(at-block-start)` — scrolled to the block-start edge (top in horizontal writing modes)\n- `:state(at-block-end)` — scrolled to the block-end edge (bottom in horizontal writing modes)\n- `:state(at-inline-start)` — scrolled to the inline-start edge (left in LTR)\n- `:state(at-inline-end)` — scrolled to the inline-end edge (right in LTR)\n---\n\n\n### **Slots:**\n - _default_ - Scrollable content",
|
|
458
|
-
"attributes": [],
|
|
459
|
-
"references": []
|
|
460
|
-
},
|
|
461
455
|
{
|
|
462
456
|
"name": "use-time-input",
|
|
463
457
|
"description": "Displays time picker using [`Intl.DateTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat).\n\nAllows users to pick time values with proper localization and formatting.\n---\n\n\n### **Events:**\n - **input**",
|
|
@@ -487,6 +481,12 @@
|
|
|
487
481
|
],
|
|
488
482
|
"references": []
|
|
489
483
|
},
|
|
484
|
+
{
|
|
485
|
+
"name": "use-scrollarea",
|
|
486
|
+
"description": "A scroll container that exposes custom states for scroll edge detection.\n\n## Custom States\nThe following CSS custom states are available for styling:\n\n- `:state(at-block-start)` — scrolled to the block-start edge (top in horizontal writing modes)\n- `:state(at-block-end)` — scrolled to the block-end edge (bottom in horizontal writing modes)\n- `:state(at-inline-start)` — scrolled to the inline-start edge (left in LTR)\n- `:state(at-inline-end)` — scrolled to the inline-end edge (right in LTR)\n---\n\n\n### **Slots:**\n - _default_ - Scrollable content",
|
|
487
|
+
"attributes": [],
|
|
488
|
+
"references": []
|
|
489
|
+
},
|
|
490
490
|
{
|
|
491
491
|
"name": "use-tree",
|
|
492
492
|
"description": "Custom input control for managing selected values in a hierarchy.\n\nA convenience for distributing a custom indicator to every item at once: slot an icon into\n`use-tree` itself under `expanded-indicator`, `collapsed-indicator`, `selected-indicator`, or\n`deselected-indicator`, and it's cloned into each lazily-discovered `use-treeitem`'s matching\nslot. This is per-item slotting, just done once for the whole tree — it doesn't replace\n`use-treeitem`'s own static hooks (`expandedIcon`, `collapsedIcon`, `selectedIcon`,\n`deselectedIcon`), which still apply for indicators the tree hasn't cloned one over.\n---\n\n\n### **Slots:**\n - **default** - NodeList of `use-treeitem` elements\n- **expanded-indicator** - Cloned into every item's `expanded-indicator` slot.\n- **collapsed-indicator** - Cloned into every item's `collapsed-indicator` slot.\n- **selected-indicator** - Cloned into every item's `selected-indicator` slot.\n- **deselected-indicator** - Cloned into every item's `deselected-indicator` slot.",
|