@uni-design-system/uni-mcp 11.5.0 → 11.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/dist/{chunk-2FUM4CYC.js → chunk-Y6SCKJEM.js} +1140 -249
- package/dist/chunk-Y6SCKJEM.js.map +1 -0
- package/dist/http.js +1 -1
- package/dist/server.js +1 -1
- package/dist/stdio.js +1 -1
- package/package.json +2 -2
- package/dist/chunk-2FUM4CYC.js.map +0 -1
|
@@ -7,16 +7,16 @@ import { z } from "zod";
|
|
|
7
7
|
// src/data/uni-index.json
|
|
8
8
|
var uni_index_default = {
|
|
9
9
|
meta: {
|
|
10
|
-
version: "11.
|
|
11
|
-
builtAt: "2026-10-
|
|
10
|
+
version: "11.7.0",
|
|
11
|
+
builtAt: "2026-10-22T04:29:01.107Z",
|
|
12
12
|
frameworks: [
|
|
13
13
|
"angular"
|
|
14
14
|
],
|
|
15
15
|
counts: {
|
|
16
|
-
components:
|
|
17
|
-
tokens:
|
|
16
|
+
components: 88,
|
|
17
|
+
tokens: 511,
|
|
18
18
|
themes: 2,
|
|
19
|
-
examples:
|
|
19
|
+
examples: 256,
|
|
20
20
|
utilities: 122
|
|
21
21
|
}
|
|
22
22
|
},
|
|
@@ -28,7 +28,7 @@ var uni_index_default = {
|
|
|
28
28
|
summary: "",
|
|
29
29
|
description: "",
|
|
30
30
|
category: "feedback",
|
|
31
|
-
version: "11.
|
|
31
|
+
version: "11.7.0",
|
|
32
32
|
bindings: {
|
|
33
33
|
angular: {
|
|
34
34
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -118,7 +118,7 @@ var uni_index_default = {
|
|
|
118
118
|
summary: "Horizontal application bar: project leading controls (menu button, logo) with the `leading` attribute, actions with `trailing` (pushed to the far edge), and either pass `title` or project custom center content.",
|
|
119
119
|
description: "Horizontal application bar: project leading controls (menu button, logo) with the `leading` attribute, actions with `trailing` (pushed to the far edge), and either pass `title` or project custom center content. Surface, divider, height, typography and spacing all resolve from `appBar` tokens. Place it inside your page's `<header>` landmark.",
|
|
120
120
|
category: "components",
|
|
121
|
-
version: "11.
|
|
121
|
+
version: "11.7.0",
|
|
122
122
|
bindings: {
|
|
123
123
|
angular: {
|
|
124
124
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -191,7 +191,7 @@ var uni_index_default = {
|
|
|
191
191
|
summary: "Identity avatar with a graceful fallback chain: image \u2192 initials from `name` \u2192 themed symbol.",
|
|
192
192
|
description: "Identity avatar with a graceful fallback chain: image \u2192 initials from `name` \u2192 themed symbol. Coloring, radius, typeface and sizes all resolve from `avatar` theme tokens; `variant` picks the container palette.",
|
|
193
193
|
category: "components",
|
|
194
|
-
version: "11.
|
|
194
|
+
version: "11.7.0",
|
|
195
195
|
bindings: {
|
|
196
196
|
angular: {
|
|
197
197
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -286,7 +286,7 @@ var uni_index_default = {
|
|
|
286
286
|
summary: "Overlapping stack of avatars.",
|
|
287
287
|
description: "Overlapping stack of avatars. `max` collapses the overflow into a themed \u201C+N\u201D chip (itself a `uni-avatar`). Overlap and separator ring resolve from `avatarGroup` theme tokens.",
|
|
288
288
|
category: "components",
|
|
289
|
-
version: "11.
|
|
289
|
+
version: "11.7.0",
|
|
290
290
|
bindings: {
|
|
291
291
|
angular: {
|
|
292
292
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -335,7 +335,7 @@ var uni_index_default = {
|
|
|
335
335
|
summary: "",
|
|
336
336
|
description: "",
|
|
337
337
|
category: "primitives",
|
|
338
|
-
version: "11.
|
|
338
|
+
version: "11.7.0",
|
|
339
339
|
bindings: {
|
|
340
340
|
angular: {
|
|
341
341
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -416,7 +416,7 @@ var uni_index_default = {
|
|
|
416
416
|
summary: "",
|
|
417
417
|
description: "",
|
|
418
418
|
category: "feedback",
|
|
419
|
-
version: "11.
|
|
419
|
+
version: "11.7.0",
|
|
420
420
|
bindings: {
|
|
421
421
|
angular: {
|
|
422
422
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -513,7 +513,7 @@ var uni_index_default = {
|
|
|
513
513
|
summary: "",
|
|
514
514
|
description: "",
|
|
515
515
|
category: "directives",
|
|
516
|
-
version: "11.
|
|
516
|
+
version: "11.7.0",
|
|
517
517
|
bindings: {
|
|
518
518
|
angular: {
|
|
519
519
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -537,7 +537,7 @@ var uni_index_default = {
|
|
|
537
537
|
summary: 'The base layout primitive, applied as an attribute to any element so semantics stay yours: `<main box-layout [grow]="1" padding="md">`.',
|
|
538
538
|
description: 'The base layout primitive, applied as an attribute to any element so semantics stay yours: `<main box-layout [grow]="1" padding="md">`. It is a directive, so it composes freely \u2014 with another layout attribute (`<div stack-layout uni-text="body-1-long">`) and with a component\'s own host element (`<uni-card box-layout padding="lg">`); Angular merges the host `class` bindings rather than letting one win. Sizing convention (height/width/min/max/inset): a **number is px and needs a binding** \u2014 `[height]="420"`; a **plain attribute is a CSS length string** \u2014 `height="420px"`. Spacing/radius/color inputs take theme tokens.',
|
|
539
539
|
category: "layout",
|
|
540
|
-
version: "11.
|
|
540
|
+
version: "11.7.0",
|
|
541
541
|
bindings: {
|
|
542
542
|
angular: {
|
|
543
543
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -945,7 +945,7 @@ var uni_index_default = {
|
|
|
945
945
|
summary: 'WAI-ARIA breadcrumb: a `nav` landmark wrapping an ordered list; the last item is the current page (`aria-current="page"`), separators are decorative.',
|
|
946
946
|
description: 'WAI-ARIA breadcrumb: a `nav` landmark wrapping an ordered list; the last item is the current page (`aria-current="page"`), separators are decorative. Items with `href` render as real links; without one they render as link-styled buttons emitting `itemClicked` \u2014 wire that to your router.',
|
|
947
947
|
category: "components",
|
|
948
|
-
version: "11.
|
|
948
|
+
version: "11.7.0",
|
|
949
949
|
bindings: {
|
|
950
950
|
angular: {
|
|
951
951
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1030,7 +1030,7 @@ var uni_index_default = {
|
|
|
1030
1030
|
summary: "",
|
|
1031
1031
|
description: "",
|
|
1032
1032
|
category: "primitives",
|
|
1033
|
-
version: "11.
|
|
1033
|
+
version: "11.7.0",
|
|
1034
1034
|
bindings: {
|
|
1035
1035
|
angular: {
|
|
1036
1036
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1044,6 +1044,14 @@ var uni_index_default = {
|
|
|
1044
1044
|
default: "false, { transform: booleanAttribute }",
|
|
1045
1045
|
description: ""
|
|
1046
1046
|
},
|
|
1047
|
+
{
|
|
1048
|
+
name: "disabled",
|
|
1049
|
+
kind: "input",
|
|
1050
|
+
type: "unknown",
|
|
1051
|
+
required: false,
|
|
1052
|
+
default: "false, { transform: booleanAttribute }",
|
|
1053
|
+
description: "The native name, accepted as an alias of `disable`. Every other Uni form control takes `disabled`, so consumers write it here too \u2014 and without this input the binding landed on the DOM property, where the host's own `disabled` attribute binding removed it on the first pass. The button rendered enabled, with no error. Either name now works."
|
|
1054
|
+
},
|
|
1047
1055
|
{
|
|
1048
1056
|
name: "loading",
|
|
1049
1057
|
kind: "input",
|
|
@@ -1190,7 +1198,7 @@ var uni_index_default = {
|
|
|
1190
1198
|
summary: "",
|
|
1191
1199
|
description: "",
|
|
1192
1200
|
category: "primitives",
|
|
1193
|
-
version: "11.
|
|
1201
|
+
version: "11.7.0",
|
|
1194
1202
|
bindings: {
|
|
1195
1203
|
angular: {
|
|
1196
1204
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1222,7 +1230,7 @@ var uni_index_default = {
|
|
|
1222
1230
|
summary: "Inline month calendar: single-date or start\u2013end range selection, day markers (availability dots), min/max fences and disabled dates.",
|
|
1223
1231
|
description: "Inline month calendar: single-date or start\u2013end range selection, day markers (availability dots), min/max fences and disabled dates. One tab stop with a roving-tabindex `role=\"grid\"`; every day is a real button named with its full date. Values are plain ISO strings (`'YYYY-MM-DD'`), never `Date` objects, so bindings are timezone-free and serializable. Selection and today colours come from the theme's `primary` role pair; geometry and glyphs come from the `calendar` theme entry.",
|
|
1224
1232
|
category: "forms",
|
|
1225
|
-
version: "11.
|
|
1233
|
+
version: "11.7.0",
|
|
1226
1234
|
bindings: {
|
|
1227
1235
|
angular: {
|
|
1228
1236
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1463,7 +1471,7 @@ var uni_index_default = {
|
|
|
1463
1471
|
summary: "Anchored coach-mark panel that dims the page and cuts a spotlight hole around its target.",
|
|
1464
1472
|
description: 'Anchored coach-mark panel that dims the page and cuts a spotlight hole around its target. Both the scrim and the panel are `popover="manual"` elements shown in order, so they stack deterministically in the top layer above every app z-index, and every scrim piece is CSS-anchor-positioned to the target \u2014 the hole tracks scroll/resize/layout with zero listeners. The panel is a non-modal `role="dialog"` (deliberately no `aria-modal`): focus moves into it on open, Tab runs a "duet loop" over the panel\'s focusables plus the spotlit target while it stays interactive, and on close focus returns to the pre-open element \u2014 unless the user moved into the target, where it stays. Storage-free by rule: `key` and the `dismissed` output are the "don\'t show again" hooks; persistence is the app\'s business (e.g. cdk local-storage).',
|
|
1465
1473
|
category: "components",
|
|
1466
|
-
version: "11.
|
|
1474
|
+
version: "11.7.0",
|
|
1467
1475
|
bindings: {
|
|
1468
1476
|
angular: {
|
|
1469
1477
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1683,7 +1691,7 @@ var uni_index_default = {
|
|
|
1683
1691
|
summary: "",
|
|
1684
1692
|
description: "",
|
|
1685
1693
|
category: "layout",
|
|
1686
|
-
version: "11.
|
|
1694
|
+
version: "11.7.0",
|
|
1687
1695
|
bindings: {
|
|
1688
1696
|
angular: {
|
|
1689
1697
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1745,7 +1753,7 @@ var uni_index_default = {
|
|
|
1745
1753
|
summary: "",
|
|
1746
1754
|
description: "",
|
|
1747
1755
|
category: "layout",
|
|
1748
|
-
version: "11.
|
|
1756
|
+
version: "11.7.0",
|
|
1749
1757
|
bindings: {
|
|
1750
1758
|
angular: {
|
|
1751
1759
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1786,7 +1794,7 @@ var uni_index_default = {
|
|
|
1786
1794
|
summary: "",
|
|
1787
1795
|
description: "",
|
|
1788
1796
|
category: "layout",
|
|
1789
|
-
version: "11.
|
|
1797
|
+
version: "11.7.0",
|
|
1790
1798
|
bindings: {
|
|
1791
1799
|
angular: {
|
|
1792
1800
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1843,7 +1851,7 @@ var uni_index_default = {
|
|
|
1843
1851
|
summary: "",
|
|
1844
1852
|
description: "",
|
|
1845
1853
|
category: "layout",
|
|
1846
|
-
version: "11.
|
|
1854
|
+
version: "11.7.0",
|
|
1847
1855
|
bindings: {
|
|
1848
1856
|
angular: {
|
|
1849
1857
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1898,7 +1906,7 @@ var uni_index_default = {
|
|
|
1898
1906
|
summary: "",
|
|
1899
1907
|
description: "",
|
|
1900
1908
|
category: "forms",
|
|
1901
|
-
version: "11.
|
|
1909
|
+
version: "11.7.0",
|
|
1902
1910
|
bindings: {
|
|
1903
1911
|
angular: {
|
|
1904
1912
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -2120,7 +2128,7 @@ var uni_index_default = {
|
|
|
2120
2128
|
summary: "Form-bound, closed-set, single-select autocomplete: `FormValueControl<T | null>` over object `Options<T>`, type-to-filter, commit-on-select.",
|
|
2121
2129
|
description: "Form-bound, closed-set, single-select autocomplete: `FormValueControl<T | null>` over object `Options<T>`, type-to-filter, commit-on-select. Typing produces a draft \u2014 a filter, never a value; the value changes only when an option commits, `clear()` runs, or the model is written from outside. Select semantics, not search: a real label, a chevron, no magnifier, nothing submits. For short lists with no need to type, prefer `uni-select` \u2014 the value contract is identical, so swapping is a template-only change.",
|
|
2122
2130
|
category: "forms",
|
|
2123
|
-
version: "11.
|
|
2131
|
+
version: "11.7.0",
|
|
2124
2132
|
bindings: {
|
|
2125
2133
|
angular: {
|
|
2126
2134
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -2226,6 +2234,14 @@ var uni_index_default = {
|
|
|
2226
2234
|
default: "true",
|
|
2227
2235
|
description: "Show a \u2715 while a value is set; an emptied field on blur also clears."
|
|
2228
2236
|
},
|
|
2237
|
+
{
|
|
2238
|
+
name: "emptyValue",
|
|
2239
|
+
kind: "input",
|
|
2240
|
+
type: "T | null",
|
|
2241
|
+
required: false,
|
|
2242
|
+
default: "null",
|
|
2243
|
+
description: "What \"nothing selected\" is written as. `null` by default \u2014 the control's contract is `FormValueControl<T | null>` \u2014 but a field bound to a plain `string` schema wants `''`, so a clear does not hand `null` to every reader of a string. A value equal to it reads as empty: no \u2715, no match."
|
|
2244
|
+
},
|
|
2229
2245
|
{
|
|
2230
2246
|
name: "commitOnBlur",
|
|
2231
2247
|
kind: "input",
|
|
@@ -2258,6 +2274,14 @@ var uni_index_default = {
|
|
|
2258
2274
|
default: "250",
|
|
2259
2275
|
description: ""
|
|
2260
2276
|
},
|
|
2277
|
+
{
|
|
2278
|
+
name: "openOnFocus",
|
|
2279
|
+
kind: "input",
|
|
2280
|
+
type: "boolean",
|
|
2281
|
+
required: false,
|
|
2282
|
+
default: "false",
|
|
2283
|
+
description: "Open the list when the field takes focus, not only on click or ArrowDown. Off by default \u2014 a form tabbed through should not spray popups."
|
|
2284
|
+
},
|
|
2261
2285
|
{
|
|
2262
2286
|
name: "query",
|
|
2263
2287
|
kind: "output",
|
|
@@ -2371,7 +2395,7 @@ emptyText="No countries found"
|
|
|
2371
2395
|
}
|
|
2372
2396
|
],
|
|
2373
2397
|
guidelines: {
|
|
2374
|
-
whenToUse: "The form-bound, **closed-set, single-select** autocomplete: object\n`Options<T>`, `FormValueControl<T | null>`, type-to-filter, commit-on-select.\nTyping produces a *draft* \u2014 a filter, never a value; the value changes only\nwhen an option commits, the field clears, or the model is written from\noutside. Select semantics, not search: a real label, a chevron, no magnifier,\nnothing submits.\nUnder ~10 options and no need to type \u2192 `uni-select`, the native, zero-JS,\nmobile-friendly answer. More options, or users know what they're looking for \u2192\n`uni-combobox`. The value contract is identical (`T | null`, `compareWith`),\nso swapping one for the other as a list grows is a template-only change \u2014 that\nis deliberate. For open sets, where typing *creates* values, use\n`uni-tag-input` (multi) or `uni-search-input` (queries); for closed multi\nsets, `uni-multi-select-dropdown`.",
|
|
2398
|
+
whenToUse: "The form-bound, **closed-set, single-select** autocomplete: object\n`Options<T>`, `FormValueControl<T | null>`, type-to-filter, commit-on-select.\nTyping produces a *draft* \u2014 a filter, never a value; the value changes only\nwhen an option commits, the field clears, or the model is written from\noutside. Select semantics, not search: a real label, a chevron, no magnifier,\nnothing submits.\nUnder ~10 options and no need to type \u2192 `uni-select`, the native, zero-JS,\nmobile-friendly answer. More options, or users know what they're looking for \u2192\n`uni-combobox`. The value contract is identical (`T | null`, `compareWith`),\nso swapping one for the other as a list grows is a template-only change \u2014 that\nis deliberate. A clear writes `null`; a field bound to a plain `string` schema\nsets `emptyValue=\"''\"` so its readers never meet a `null`. For open sets, where typing *creates* values, use\n`uni-tag-input` (multi) or `uni-search-input` (queries); for closed multi\nsets, `uni-multi-select-dropdown`.",
|
|
2375
2399
|
dos: [],
|
|
2376
2400
|
donts: [
|
|
2377
2401
|
"Don't expect free text to commit implicitly \u2014 it never does. Offer creation",
|
|
@@ -2406,7 +2430,7 @@ emptyText="No countries found"
|
|
|
2406
2430
|
summary: "",
|
|
2407
2431
|
description: "",
|
|
2408
2432
|
category: "feedback",
|
|
2409
|
-
version: "11.
|
|
2433
|
+
version: "11.7.0",
|
|
2410
2434
|
bindings: {
|
|
2411
2435
|
angular: {
|
|
2412
2436
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -2446,6 +2470,291 @@ emptyText="No countries found"
|
|
|
2446
2470
|
},
|
|
2447
2471
|
relatedTokens: []
|
|
2448
2472
|
},
|
|
2473
|
+
{
|
|
2474
|
+
id: "contact-input",
|
|
2475
|
+
name: "ContactInput",
|
|
2476
|
+
status: "stable",
|
|
2477
|
+
summary: "Recipient field for picking people: removable chips, a text input, and a list of known contacts that opens on focus and narrows as the user types \u2014 each row drawn as a person (avatar, name, address, a trailing note).",
|
|
2478
|
+
description: "Recipient field for picking people: removable chips, a text input, and a list of known contacts that opens on focus and narrows as the user types \u2014 each row drawn as a person (avatar, name, address, a trailing note). A thin composition of `uni-tag-input` with a mail client's manners baked in: ArrowDown walks the matches and Enter picks the active one, Backspace in an empty field removes the last person, and text that is neither a known contact nor a valid address stays in the field to be fixed (`rejected` says why). Reach for `uni-tag-input` itself when the tokens are not people.",
|
|
2479
|
+
category: "forms",
|
|
2480
|
+
version: "11.7.0",
|
|
2481
|
+
bindings: {
|
|
2482
|
+
angular: {
|
|
2483
|
+
importPath: "@uni-design-system/uni-angular",
|
|
2484
|
+
selectorOrTag: "uni-contact-input, ContactInput",
|
|
2485
|
+
api: [
|
|
2486
|
+
{
|
|
2487
|
+
name: "value",
|
|
2488
|
+
kind: "model",
|
|
2489
|
+
type: "UniContact[]",
|
|
2490
|
+
required: false,
|
|
2491
|
+
default: "[]",
|
|
2492
|
+
description: ""
|
|
2493
|
+
},
|
|
2494
|
+
{
|
|
2495
|
+
name: "disabled",
|
|
2496
|
+
kind: "input",
|
|
2497
|
+
type: "boolean",
|
|
2498
|
+
required: false,
|
|
2499
|
+
default: "false",
|
|
2500
|
+
description: ""
|
|
2501
|
+
},
|
|
2502
|
+
{
|
|
2503
|
+
name: "touched",
|
|
2504
|
+
kind: "model",
|
|
2505
|
+
type: "boolean",
|
|
2506
|
+
required: false,
|
|
2507
|
+
default: "false",
|
|
2508
|
+
description: ""
|
|
2509
|
+
},
|
|
2510
|
+
{
|
|
2511
|
+
name: "touch",
|
|
2512
|
+
kind: "output",
|
|
2513
|
+
type: "void",
|
|
2514
|
+
required: false,
|
|
2515
|
+
description: "Angular 22 marks the bound field touched through this output."
|
|
2516
|
+
},
|
|
2517
|
+
{
|
|
2518
|
+
name: "invalid",
|
|
2519
|
+
kind: "input",
|
|
2520
|
+
type: "boolean",
|
|
2521
|
+
required: false,
|
|
2522
|
+
default: "false",
|
|
2523
|
+
description: ""
|
|
2524
|
+
},
|
|
2525
|
+
{
|
|
2526
|
+
name: "dirty",
|
|
2527
|
+
kind: "input",
|
|
2528
|
+
type: "boolean",
|
|
2529
|
+
required: false,
|
|
2530
|
+
default: "false",
|
|
2531
|
+
description: ""
|
|
2532
|
+
},
|
|
2533
|
+
{
|
|
2534
|
+
name: "required",
|
|
2535
|
+
kind: "input",
|
|
2536
|
+
type: "boolean",
|
|
2537
|
+
required: false,
|
|
2538
|
+
default: "false",
|
|
2539
|
+
description: ""
|
|
2540
|
+
},
|
|
2541
|
+
{
|
|
2542
|
+
name: "ariaDescribedBy",
|
|
2543
|
+
kind: "input",
|
|
2544
|
+
type: "string",
|
|
2545
|
+
required: false,
|
|
2546
|
+
description: ""
|
|
2547
|
+
},
|
|
2548
|
+
{
|
|
2549
|
+
name: "label",
|
|
2550
|
+
kind: "input",
|
|
2551
|
+
type: "string",
|
|
2552
|
+
required: true,
|
|
2553
|
+
description: 'Accessible name for the field, e.g. "To".'
|
|
2554
|
+
},
|
|
2555
|
+
{
|
|
2556
|
+
name: "placeholder",
|
|
2557
|
+
kind: "input",
|
|
2558
|
+
type: "string",
|
|
2559
|
+
required: false,
|
|
2560
|
+
description: ""
|
|
2561
|
+
},
|
|
2562
|
+
{
|
|
2563
|
+
name: "contacts",
|
|
2564
|
+
kind: "input",
|
|
2565
|
+
type: "UniContact[]",
|
|
2566
|
+
required: false,
|
|
2567
|
+
default: "[]",
|
|
2568
|
+
description: "Everyone who can be suggested, in the order (and groups) to offer them."
|
|
2569
|
+
},
|
|
2570
|
+
{
|
|
2571
|
+
name: "allowCustom",
|
|
2572
|
+
kind: "input",
|
|
2573
|
+
type: "boolean",
|
|
2574
|
+
required: false,
|
|
2575
|
+
default: "true",
|
|
2576
|
+
description: "Accept a typed value that is not a known contact. On by default \u2014 a typed email address becomes a chip; `false` restricts the field to `contacts`."
|
|
2577
|
+
},
|
|
2578
|
+
{
|
|
2579
|
+
name: "chipAvatar",
|
|
2580
|
+
kind: "input",
|
|
2581
|
+
type: "boolean | undefined",
|
|
2582
|
+
required: false,
|
|
2583
|
+
default: "undefined",
|
|
2584
|
+
description: "Draw an initials avatar on each chip. Unbound, the `contactInput` theme entry's `chipAvatar` decides (on by default). Off, a chip is the name alone \u2014 in a narrow row of first names the initials only repeat it."
|
|
2585
|
+
},
|
|
2586
|
+
{
|
|
2587
|
+
name: "filterLocally",
|
|
2588
|
+
kind: "input",
|
|
2589
|
+
type: "boolean",
|
|
2590
|
+
required: false,
|
|
2591
|
+
default: "true",
|
|
2592
|
+
description: "`false` renders `contacts` verbatim; narrow them app-side from `(query)` when the directory lives on a server."
|
|
2593
|
+
},
|
|
2594
|
+
{
|
|
2595
|
+
name: "autoHighlight",
|
|
2596
|
+
kind: "input",
|
|
2597
|
+
type: "boolean",
|
|
2598
|
+
required: false,
|
|
2599
|
+
default: "false",
|
|
2600
|
+
description: "Keep the first match highlighted so Enter or Tab picks it without arrowing. Off by default: nothing is highlighted until ArrowDown, and Enter commits what is typed."
|
|
2601
|
+
},
|
|
2602
|
+
{
|
|
2603
|
+
name: "debounceTime",
|
|
2604
|
+
kind: "input",
|
|
2605
|
+
type: "number",
|
|
2606
|
+
required: false,
|
|
2607
|
+
default: "250",
|
|
2608
|
+
description: ""
|
|
2609
|
+
},
|
|
2610
|
+
{
|
|
2611
|
+
name: "maxLength",
|
|
2612
|
+
kind: "input",
|
|
2613
|
+
type: "number | undefined",
|
|
2614
|
+
required: false,
|
|
2615
|
+
default: "undefined, { alias: 'max' }",
|
|
2616
|
+
description: ""
|
|
2617
|
+
},
|
|
2618
|
+
{
|
|
2619
|
+
name: "unframed",
|
|
2620
|
+
kind: "input",
|
|
2621
|
+
type: "unknown",
|
|
2622
|
+
required: false,
|
|
2623
|
+
default: "false, { transform: booleanAttribute }",
|
|
2624
|
+
description: "Drop the field chrome and render a bare row \u2014 an email client's To line."
|
|
2625
|
+
},
|
|
2626
|
+
{
|
|
2627
|
+
name: "autocomplete",
|
|
2628
|
+
kind: "input",
|
|
2629
|
+
type: "string",
|
|
2630
|
+
required: false,
|
|
2631
|
+
default: "'off'",
|
|
2632
|
+
description: "The text field's `autocomplete` token; see `uni-tag-input`."
|
|
2633
|
+
},
|
|
2634
|
+
{
|
|
2635
|
+
name: "tagVariant",
|
|
2636
|
+
kind: "input",
|
|
2637
|
+
type: "Variant",
|
|
2638
|
+
required: false,
|
|
2639
|
+
description: ""
|
|
2640
|
+
},
|
|
2641
|
+
{
|
|
2642
|
+
name: "tagTone",
|
|
2643
|
+
kind: "input",
|
|
2644
|
+
type: "TagTone",
|
|
2645
|
+
required: false,
|
|
2646
|
+
description: ""
|
|
2647
|
+
},
|
|
2648
|
+
{
|
|
2649
|
+
name: "tagSize",
|
|
2650
|
+
kind: "input",
|
|
2651
|
+
type: "Size",
|
|
2652
|
+
required: false,
|
|
2653
|
+
description: ""
|
|
2654
|
+
},
|
|
2655
|
+
{
|
|
2656
|
+
name: "added",
|
|
2657
|
+
kind: "output",
|
|
2658
|
+
type: "UniContact",
|
|
2659
|
+
required: false,
|
|
2660
|
+
description: ""
|
|
2661
|
+
},
|
|
2662
|
+
{
|
|
2663
|
+
name: "removed",
|
|
2664
|
+
kind: "output",
|
|
2665
|
+
type: "UniContact",
|
|
2666
|
+
required: false,
|
|
2667
|
+
description: ""
|
|
2668
|
+
},
|
|
2669
|
+
{
|
|
2670
|
+
name: "rejected",
|
|
2671
|
+
kind: "output",
|
|
2672
|
+
type: "UniTagRejection",
|
|
2673
|
+
required: false,
|
|
2674
|
+
description: "Typed text that did not become a person; an `invalid` one stays in the field."
|
|
2675
|
+
},
|
|
2676
|
+
{
|
|
2677
|
+
name: "query",
|
|
2678
|
+
kind: "output",
|
|
2679
|
+
type: "string",
|
|
2680
|
+
required: false,
|
|
2681
|
+
description: "Debounced typed text, for loading contacts remotely."
|
|
2682
|
+
},
|
|
2683
|
+
{
|
|
2684
|
+
name: "draftChange",
|
|
2685
|
+
kind: "output",
|
|
2686
|
+
type: "string",
|
|
2687
|
+
required: false,
|
|
2688
|
+
description: "Typed text on every change \u2014 e.g. to clear an error once it is edited."
|
|
2689
|
+
},
|
|
2690
|
+
{
|
|
2691
|
+
name: "variant",
|
|
2692
|
+
kind: "input",
|
|
2693
|
+
type: "Variant",
|
|
2694
|
+
required: false,
|
|
2695
|
+
default: "'primary'",
|
|
2696
|
+
description: "Style archetype from the theme. Inherited from BaseComponent."
|
|
2697
|
+
},
|
|
2698
|
+
{
|
|
2699
|
+
name: "size",
|
|
2700
|
+
kind: "input",
|
|
2701
|
+
type: "Size",
|
|
2702
|
+
required: false,
|
|
2703
|
+
default: "'lg'",
|
|
2704
|
+
description: "Size token from the theme. Inherited from BaseComponent. Only has an effect where the component theme defines a `sizes` block."
|
|
2705
|
+
}
|
|
2706
|
+
]
|
|
2707
|
+
}
|
|
2708
|
+
},
|
|
2709
|
+
examples: [
|
|
2710
|
+
{
|
|
2711
|
+
title: "Primary",
|
|
2712
|
+
framework: "angular",
|
|
2713
|
+
code: "<!-- Storybook story: Primary -->\n<!-- args:\n{ value: [{ value: 'alice@uni.dev', name: 'Alice Chen' }] }\n-->"
|
|
2714
|
+
},
|
|
2715
|
+
{
|
|
2716
|
+
title: "Grouped Contacts",
|
|
2717
|
+
framework: "angular",
|
|
2718
|
+
code: "<!-- Storybook story: Grouped Contacts -->\n<!-- args:\n{ contacts: GROUPED }\n-->"
|
|
2719
|
+
},
|
|
2720
|
+
{
|
|
2721
|
+
title: "Unframed",
|
|
2722
|
+
framework: "angular",
|
|
2723
|
+
code: "<!-- Storybook story: Unframed -->\n<!-- args:\n{ unframed: true, value: [{ value: 'alice@uni.dev', name: 'Alice Chen' }] }\n-->"
|
|
2724
|
+
},
|
|
2725
|
+
{
|
|
2726
|
+
title: "Known Contacts Only",
|
|
2727
|
+
framework: "angular",
|
|
2728
|
+
code: "<!-- Storybook story: Known Contacts Only -->\n<!-- args:\n{ allowCustom: false, placeholder: 'Search people\u2026' }\n-->"
|
|
2729
|
+
},
|
|
2730
|
+
{
|
|
2731
|
+
title: "Disabled",
|
|
2732
|
+
framework: "angular",
|
|
2733
|
+
code: "<!-- Storybook story: Disabled -->\n<!-- args:\n{ disabled: true, value: [{ value: 'alice@uni.dev', name: 'Alice Chen' }] }\n-->"
|
|
2734
|
+
}
|
|
2735
|
+
],
|
|
2736
|
+
guidelines: {
|
|
2737
|
+
whenToUse: "Recipient field for picking people: removable chips, a text input, and a list\nof known contacts that opens on focus and narrows as the user types. Each row\nis drawn as a person \u2014 avatar, name, address, and an optional note. Reach for\nit for a To line, a share dialog, assignees or mentions; for tokens that are\nnot people, use `uni-tag-input`, which this composes.\nIt behaves like a mail client: ArrowDown walks the matches and Enter picks\nthe active one, Backspace in an empty field removes the last person, and text\nthat is neither a known contact nor a valid address stays in the field to be\nfixed. Set `autoHighlight` to keep the first match active, so Enter or Tab\npicks it without arrowing. A paste splits on commas, semicolons, line breaks\nand whitespace, so a column copied from a spreadsheet becomes one chip per\naddress (`parse` takes over tokenizing when that is wrong). The chips come\nfrom the `tag` theme entry, the popup from `tagInput`, the field chrome from\n`input`, and the person row and chip avatar from `contactInput`.",
|
|
2738
|
+
dos: [
|
|
2739
|
+
"Order `contacts` most-relevant first; only the first few are shown.",
|
|
2740
|
+
"Set `filterLocally` to `false` and refresh `contacts` from `(query)` when",
|
|
2741
|
+
"Clear your error message from `(draftChange)` once the user edits the text."
|
|
2742
|
+
],
|
|
2743
|
+
donts: [
|
|
2744
|
+
"Don't use it for tokens that are not people \u2014 that is `uni-tag-input`.",
|
|
2745
|
+
"Don't use it to pick one person from a closed list \u2014 that is `uni-combobox`.",
|
|
2746
|
+
"Don't rely on `autocomplete=\"off\"` alone if Chrome's address autofill still"
|
|
2747
|
+
],
|
|
2748
|
+
accessibility: [
|
|
2749
|
+
'The text input is `role="combobox"` over a `role="listbox"` popup; nothing',
|
|
2750
|
+
"The whole field is one tab stop. Enter picks the active contact, otherwise",
|
|
2751
|
+
'Adds, removes and refusals announce through a `role="status"` live region.',
|
|
2752
|
+
"The control renders no validation message: handle `(rejected)`, render the",
|
|
2753
|
+
"`unframed` removes the focus ring along with the chrome; show focus on the"
|
|
2754
|
+
]
|
|
2755
|
+
},
|
|
2756
|
+
relatedTokens: []
|
|
2757
|
+
},
|
|
2449
2758
|
{
|
|
2450
2759
|
id: "data-search",
|
|
2451
2760
|
name: "DataSearch",
|
|
@@ -2453,7 +2762,7 @@ emptyText="No countries found"
|
|
|
2453
2762
|
summary: "",
|
|
2454
2763
|
description: "",
|
|
2455
2764
|
category: "forms",
|
|
2456
|
-
version: "11.
|
|
2765
|
+
version: "11.7.0",
|
|
2457
2766
|
bindings: {
|
|
2458
2767
|
angular: {
|
|
2459
2768
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -2552,7 +2861,7 @@ emptyText="No countries found"
|
|
|
2552
2861
|
summary: "",
|
|
2553
2862
|
description: "",
|
|
2554
2863
|
category: "data",
|
|
2555
|
-
version: "11.
|
|
2864
|
+
version: "11.7.0",
|
|
2556
2865
|
bindings: {
|
|
2557
2866
|
angular: {
|
|
2558
2867
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -2771,6 +3080,23 @@ emptyText="No countries found"
|
|
|
2771
3080
|
datasource: new UniRecordDatasource<any>(starWarsCharacters),
|
|
2772
3081
|
}
|
|
2773
3082
|
-->`
|
|
3083
|
+
},
|
|
3084
|
+
{
|
|
3085
|
+
title: "Column Options",
|
|
3086
|
+
framework: "angular",
|
|
3087
|
+
code: `<!-- Storybook story: Column Options -->
|
|
3088
|
+
<ng-template #nameCell let-row let-index="index">
|
|
3089
|
+
<div box-layout padding="sm" uni-text="title-small">{{ index + 1 }}. {{ row.name }}</div>
|
|
3090
|
+
</ng-template>
|
|
3091
|
+
<uni-data-table
|
|
3092
|
+
[datasource]="datasource"
|
|
3093
|
+
[useRowClick]="false"
|
|
3094
|
+
[columns]="[
|
|
3095
|
+
{ columnDef: 'name', header: 'Name', textAlign: 'left', width: '50%', template: nameCell },
|
|
3096
|
+
base[0],
|
|
3097
|
+
base[1]
|
|
3098
|
+
]"
|
|
3099
|
+
/>`
|
|
2774
3100
|
}
|
|
2775
3101
|
],
|
|
2776
3102
|
guidelines: {
|
|
@@ -2778,7 +3104,7 @@ emptyText="No countries found"
|
|
|
2778
3104
|
dos: [],
|
|
2779
3105
|
donts: [],
|
|
2780
3106
|
accessibility: [
|
|
2781
|
-
'Column headers use `scope="col"`; sortable headers are real buttons with `aria-sort` on the `<th>`.',
|
|
3107
|
+
'Column headers use `scope="col"`; sortable headers are real buttons with `aria-sort` on the `<th>`. A `sortable: false` column is a plain heading with neither.',
|
|
2782
3108
|
'The loading overlay is a `role="status"` region and the table is `aria-busy` while loading.',
|
|
2783
3109
|
"Collapsed detail rows are `inert`, out of the accessibility tree until expanded."
|
|
2784
3110
|
]
|
|
@@ -2792,7 +3118,7 @@ emptyText="No countries found"
|
|
|
2792
3118
|
summary: "Date field with free-typed parsing and a popup calendar.",
|
|
2793
3119
|
description: "Date field with free-typed parsing and a popup calendar. Type `aug 20`, `8/20/2026` or `2026-08-20`, or pick from the grid \u2014 the form gets the same canonical `'YYYY-MM-DD'` string either way. Parsing is `Intl`-driven (locale digit order and month names, never hardcoded); unreadable text stays in the field, flagged, with a `rejected` event. The popup is a native popover hosting the same `uni-calendar` an app could render inline.",
|
|
2794
3120
|
category: "forms",
|
|
2795
|
-
version: "11.
|
|
3121
|
+
version: "11.7.0",
|
|
2796
3122
|
bindings: {
|
|
2797
3123
|
angular: {
|
|
2798
3124
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3023,7 +3349,7 @@ emptyText="No countries found"
|
|
|
3023
3349
|
summary: "One field for a date and a time: a thin composer seating a uni-date-input and a uni-time-input in one input-box chrome under one label, yielding one combined `'YYYY-MM-DDTHH:mm'` value.",
|
|
3024
3350
|
description: "One field for a date and a time: a thin composer seating a uni-date-input and a uni-time-input in one input-box chrome under one label, yielding one combined `'YYYY-MM-DDTHH:mm'` value. The value emits only when both parts are set \u2014 a time without a day is not an answer \u2014 and clearing the date clears it. With `slotsFor`, the time part stays disabled until a day is chosen and offers exactly that day's slots: the scheduling flow in one attribute. Two honest tab stops (it is two questions); apps needing a different arrangement compose the primitives directly.",
|
|
3025
3351
|
category: "forms",
|
|
3026
|
-
version: "11.
|
|
3352
|
+
version: "11.7.0",
|
|
3027
3353
|
bindings: {
|
|
3028
3354
|
angular: {
|
|
3029
3355
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3216,7 +3542,7 @@ emptyText="No countries found"
|
|
|
3216
3542
|
summary: "Text input that emits `change` only after the user pauses typing.",
|
|
3217
3543
|
description: "Text input that emits `change` only after the user pauses typing. Wears the shared input chrome (themed color, border, typeface, focus ring) via `uni-input-box`; project adornments with the `pre-input` / `post-input` slots, matching `uni-input`'s convention. The ARIA passthrough inputs let a wrapping composite (e.g. SearchInput's combobox) annotate the real input element.",
|
|
3218
3544
|
category: "forms",
|
|
3219
|
-
version: "11.
|
|
3545
|
+
version: "11.7.0",
|
|
3220
3546
|
bindings: {
|
|
3221
3547
|
angular: {
|
|
3222
3548
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3364,7 +3690,7 @@ emptyText="No countries found"
|
|
|
3364
3690
|
summary: "Modal dialog on the native `<dialog>` element, laid out as three rows: an optional `[dialog-header]`, the projected body, an optional `[dialog-buttons]`.",
|
|
3365
3691
|
description: "Modal dialog on the native `<dialog>` element, laid out as three rows: an optional `[dialog-header]`, the projected body, an optional `[dialog-buttons]`. **The surface is never the scroll container.** It is a flex column that is `overflow: clip` on both axes; the header and buttons pin while only the body row scrolls. Unlike the drawer, which is deliberately viewport-tall, the dialog stays content-sized: it has no `height`, and grows until it hits `calc(100dvh - 2 x inset)` \u2014 the point at which the body starts to scroll. The theme's `padding` insets all three rows (which is what makes the default header read as a pill floating inside the surface); `bodyPadding` pads the scrolling row alone.",
|
|
3366
3692
|
category: "feedback",
|
|
3367
|
-
version: "11.
|
|
3693
|
+
version: "11.7.0",
|
|
3368
3694
|
bindings: {
|
|
3369
3695
|
angular: {
|
|
3370
3696
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3505,6 +3831,7 @@ uni-dialog
|
|
|
3505
3831
|
"dialog.behavior.border",
|
|
3506
3832
|
"dialog.behavior.padding",
|
|
3507
3833
|
"dialog.behavior.inset",
|
|
3834
|
+
"dialog.behavior.overscroll",
|
|
3508
3835
|
"dialog.behavior.elevation",
|
|
3509
3836
|
"dialog.behavior.backdrop",
|
|
3510
3837
|
"dialog.behavior.motion"
|
|
@@ -3517,7 +3844,7 @@ uni-dialog
|
|
|
3517
3844
|
summary: "",
|
|
3518
3845
|
description: "",
|
|
3519
3846
|
category: "feedback",
|
|
3520
|
-
version: "11.
|
|
3847
|
+
version: "11.7.0",
|
|
3521
3848
|
bindings: {
|
|
3522
3849
|
angular: {
|
|
3523
3850
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3621,7 +3948,7 @@ uni-dialog
|
|
|
3621
3948
|
summary: "",
|
|
3622
3949
|
description: "",
|
|
3623
3950
|
category: "feedback",
|
|
3624
|
-
version: "11.
|
|
3951
|
+
version: "11.7.0",
|
|
3625
3952
|
bindings: {
|
|
3626
3953
|
angular: {
|
|
3627
3954
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3662,7 +3989,7 @@ uni-dialog
|
|
|
3662
3989
|
summary: "",
|
|
3663
3990
|
description: "",
|
|
3664
3991
|
category: "layout",
|
|
3665
|
-
version: "11.
|
|
3992
|
+
version: "11.7.0",
|
|
3666
3993
|
bindings: {
|
|
3667
3994
|
angular: {
|
|
3668
3995
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3718,7 +4045,7 @@ uni-dialog
|
|
|
3718
4045
|
summary: "",
|
|
3719
4046
|
description: "",
|
|
3720
4047
|
category: "directives",
|
|
3721
|
-
version: "11.
|
|
4048
|
+
version: "11.7.0",
|
|
3722
4049
|
bindings: {
|
|
3723
4050
|
angular: {
|
|
3724
4051
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3750,7 +4077,7 @@ uni-dialog
|
|
|
3750
4077
|
summary: "Drawer with two modes sharing one three-row layout: - `side` \u2014 an in-flow `<aside>` that pushes content (dashboard sidenav); opening/closing animates its width, and the divider border primitive separates it from the page.",
|
|
3751
4078
|
description: "Drawer with two modes sharing one three-row layout: - `side` \u2014 an in-flow `<aside>` that pushes content (dashboard sidenav); opening/closing animates its width, and the divider border primitive separates it from the page. - `over` \u2014 a native `<dialog>` in the top layer: focus trap, Escape and scrim backdrop come from the platform (same machinery as `uni-dialog`), sliding in from its edge. **The panel is never the scroll container.** It is a flex column of three rows \u2014 an optional `[uni-drawer-header]`, the projected body, an optional `[uni-drawer-buttons]` \u2014 and only the body scrolls. The panel itself is `overflow: clip` on both axes. That is what lets a header and a save bar pin while a long form scrolls between them, and it is why the theme's `padding` option lands on the body row rather than the panel: padding on a scrolling box scrolls away with its content. Surface, width, divider, elevation, padding, backdrop, scrim and background all resolve from `drawer` theme tokens.",
|
|
3752
4079
|
category: "components",
|
|
3753
|
-
version: "11.
|
|
4080
|
+
version: "11.7.0",
|
|
3754
4081
|
bindings: {
|
|
3755
4082
|
angular: {
|
|
3756
4083
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3941,7 +4268,7 @@ initialFocus="input"
|
|
|
3941
4268
|
summary: "The drawer's pinned footer action row \u2014 the save bar of an editor panel.",
|
|
3942
4269
|
description: "The drawer's pinned footer action row \u2014 the save bar of an editor panel. Sits outside the scrolling body, so the actions stay reachable however long the form is. Mirrors `[dialog-buttons]`; the difference is posture, which lives in the `drawerButtons` theme options rather than here.",
|
|
3943
4270
|
category: "primitives",
|
|
3944
|
-
version: "11.
|
|
4271
|
+
version: "11.7.0",
|
|
3945
4272
|
bindings: {
|
|
3946
4273
|
angular: {
|
|
3947
4274
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4038,7 +4365,7 @@ initialFocus="input"
|
|
|
4038
4365
|
summary: "The drawer's pinned header row: a title, and optionally a close button.",
|
|
4039
4366
|
description: "The drawer's pinned header row: a title, and optionally a close button. Sits outside the scrolling body, so it stays put while the form beneath it moves. Reached either by projecting it \u2014 `<div uni-drawer-header>` \u2014 or implicitly, by giving `uni-drawer` a `headline`, in which case the drawer renders one of these itself.",
|
|
4040
4367
|
category: "components",
|
|
4041
|
-
version: "11.
|
|
4368
|
+
version: "11.7.0",
|
|
4042
4369
|
bindings: {
|
|
4043
4370
|
angular: {
|
|
4044
4371
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4086,7 +4413,7 @@ initialFocus="input"
|
|
|
4086
4413
|
summary: "",
|
|
4087
4414
|
description: "",
|
|
4088
4415
|
category: "components",
|
|
4089
|
-
version: "11.
|
|
4416
|
+
version: "11.7.0",
|
|
4090
4417
|
bindings: {
|
|
4091
4418
|
angular: {
|
|
4092
4419
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4220,7 +4547,7 @@ initialFocus="input"
|
|
|
4220
4547
|
summary: "",
|
|
4221
4548
|
description: "",
|
|
4222
4549
|
category: "layout",
|
|
4223
|
-
version: "11.
|
|
4550
|
+
version: "11.7.0",
|
|
4224
4551
|
bindings: {
|
|
4225
4552
|
angular: {
|
|
4226
4553
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4314,7 +4641,10 @@ initialFocus="input"
|
|
|
4314
4641
|
]
|
|
4315
4642
|
},
|
|
4316
4643
|
relatedTokens: [
|
|
4317
|
-
"expand.behavior.motion"
|
|
4644
|
+
"expand.behavior.motion",
|
|
4645
|
+
"expand.behavior.textRole",
|
|
4646
|
+
"expand.behavior.sublabelRole",
|
|
4647
|
+
"expand.behavior.sublabelColor"
|
|
4318
4648
|
]
|
|
4319
4649
|
},
|
|
4320
4650
|
{
|
|
@@ -4324,7 +4654,7 @@ initialFocus="input"
|
|
|
4324
4654
|
summary: "",
|
|
4325
4655
|
description: "",
|
|
4326
4656
|
category: "layout",
|
|
4327
|
-
version: "11.
|
|
4657
|
+
version: "11.7.0",
|
|
4328
4658
|
bindings: {
|
|
4329
4659
|
angular: {
|
|
4330
4660
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4395,7 +4725,7 @@ initialFocus="input"
|
|
|
4395
4725
|
summary: "Trigger for a {@link UniExpandComponent} region.",
|
|
4396
4726
|
description: "Trigger for a {@link UniExpandComponent} region. Two shapes, chosen by whether `label` is set: - **Icon only** (default) \u2014 the bare chevron, sized for a Card Header. - **Labelled** \u2014 chevron plus a label and optional muted sublabel, as a single full-width button. Most real disclosures need a name for the section, and building that row by hand is the thing this saves; it also makes the label the button's accessible name rather than adjacent text.",
|
|
4397
4727
|
category: "layout",
|
|
4398
|
-
version: "11.
|
|
4728
|
+
version: "11.7.0",
|
|
4399
4729
|
bindings: {
|
|
4400
4730
|
angular: {
|
|
4401
4731
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4444,13 +4774,13 @@ initialFocus="input"
|
|
|
4444
4774
|
{
|
|
4445
4775
|
title: "Primary",
|
|
4446
4776
|
framework: "angular",
|
|
4447
|
-
code: '<!-- Storybook story: Primary -->\n<uni-expand-toggle [collapsed]="collapsed" #toggle />\n<div>Collapsed: {{ toggle.collapsed() }}</div>\n<!-- args:\n{\n collapsed: true,\n }\n-->'
|
|
4777
|
+
code: '<!-- Storybook story: Primary -->\n<uni-expand-toggle [collapsed]="collapsed" [label]="label" [sublabel]="sublabel" #toggle />\n<div>Collapsed: {{ toggle.collapsed() }}</div>\n<!-- args:\n{\n collapsed: true,\n }\n-->'
|
|
4448
4778
|
},
|
|
4449
4779
|
{
|
|
4450
4780
|
title: "Labelled",
|
|
4451
4781
|
framework: "angular",
|
|
4452
4782
|
code: `<!-- Storybook story: Labelled -->
|
|
4453
|
-
<uni-expand-toggle [collapsed]="collapsed" #toggle />
|
|
4783
|
+
<uni-expand-toggle [collapsed]="collapsed" [label]="label" [sublabel]="sublabel" #toggle />
|
|
4454
4784
|
<div>Collapsed: {{ toggle.collapsed() }}</div>
|
|
4455
4785
|
<!-- args:
|
|
4456
4786
|
{
|
|
@@ -4480,7 +4810,7 @@ initialFocus="input"
|
|
|
4480
4810
|
summary: "",
|
|
4481
4811
|
description: "",
|
|
4482
4812
|
category: "forms",
|
|
4483
|
-
version: "11.
|
|
4813
|
+
version: "11.7.0",
|
|
4484
4814
|
bindings: {
|
|
4485
4815
|
angular: {
|
|
4486
4816
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4638,7 +4968,7 @@ initialFocus="input"
|
|
|
4638
4968
|
summary: "",
|
|
4639
4969
|
description: "",
|
|
4640
4970
|
category: "layout",
|
|
4641
|
-
version: "11.
|
|
4971
|
+
version: "11.7.0",
|
|
4642
4972
|
bindings: {
|
|
4643
4973
|
angular: {
|
|
4644
4974
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4735,7 +5065,7 @@ initialFocus="input"
|
|
|
4735
5065
|
summary: "",
|
|
4736
5066
|
description: "",
|
|
4737
5067
|
category: "layout",
|
|
4738
|
-
version: "11.
|
|
5068
|
+
version: "11.7.0",
|
|
4739
5069
|
bindings: {
|
|
4740
5070
|
angular: {
|
|
4741
5071
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4767,7 +5097,7 @@ initialFocus="input"
|
|
|
4767
5097
|
summary: "",
|
|
4768
5098
|
description: "",
|
|
4769
5099
|
category: "primitives",
|
|
4770
|
-
version: "11.
|
|
5100
|
+
version: "11.7.0",
|
|
4771
5101
|
bindings: {
|
|
4772
5102
|
angular: {
|
|
4773
5103
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4827,7 +5157,7 @@ initialFocus="input"
|
|
|
4827
5157
|
summary: "",
|
|
4828
5158
|
description: "",
|
|
4829
5159
|
category: "primitives",
|
|
4830
|
-
version: "11.
|
|
5160
|
+
version: "11.7.0",
|
|
4831
5161
|
bindings: {
|
|
4832
5162
|
angular: {
|
|
4833
5163
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4873,15 +5203,25 @@ initialFocus="input"
|
|
|
4873
5203
|
{
|
|
4874
5204
|
name: "disable",
|
|
4875
5205
|
kind: "input",
|
|
4876
|
-
type: "
|
|
5206
|
+
type: "unknown",
|
|
4877
5207
|
required: false,
|
|
4878
|
-
|
|
5208
|
+
default: "false, { transform: booleanAttribute }",
|
|
5209
|
+
description: "A bare `disable` attribute reads as true, as `uni-button`'s does; `undefined` as false."
|
|
5210
|
+
},
|
|
5211
|
+
{
|
|
5212
|
+
name: "disabled",
|
|
5213
|
+
kind: "input",
|
|
5214
|
+
type: "unknown",
|
|
5215
|
+
required: false,
|
|
5216
|
+
default: "false, { transform: booleanAttribute }",
|
|
5217
|
+
description: "The native name, accepted as an alias of `disable` \u2014 see `uni-button`."
|
|
4879
5218
|
},
|
|
4880
5219
|
{
|
|
4881
5220
|
name: "loading",
|
|
4882
5221
|
kind: "input",
|
|
4883
|
-
type: "
|
|
5222
|
+
type: "unknown",
|
|
4884
5223
|
required: false,
|
|
5224
|
+
default: "false, { transform: booleanAttribute }",
|
|
4885
5225
|
description: ""
|
|
4886
5226
|
},
|
|
4887
5227
|
{
|
|
@@ -4930,7 +5270,7 @@ initialFocus="input"
|
|
|
4930
5270
|
summary: "A button that lives inside a sentence.",
|
|
4931
5271
|
description: "A button that lives inside a sentence. Every other button in the library owns a box. Even `ghost` is a flex box with a hit area, horizontal padding and a type scale of its own, so dropping one into a sentence takes it out of the run of text entirely. This one inherits that type \u2014 family, size, weight, line height and colour \u2014 and adds no padding, so a paragraph reads as one continuous run with an action in the middle of it. It is always a real `<button>`: it can *look* like a link (`underline`, `link`) without claiming to be navigation, so Enter and Space activate it and assistive tech announces a button rather than an unfollowable link. A glyph may sit alongside the label without disturbing that: it is sized in `em`, so it scales with the type it lands in rather than pinning a px size into someone else's paragraph. One limit comes from the element itself. Browsers blockify a `<button>` to `inline-block` whatever `display` it asks for, so the control is an atomic inline box: its own label wraps inside it, but the run cannot split across a line break the way the words around it do. `display: contents` would buy that at the cost of the button being focusable at all, which is not a trade worth making \u2014 keep labels to a few words, which is what an inline action wants anyway.",
|
|
4932
5272
|
category: "primitives",
|
|
4933
|
-
version: "11.
|
|
5273
|
+
version: "11.7.0",
|
|
4934
5274
|
bindings: {
|
|
4935
5275
|
angular: {
|
|
4936
5276
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5045,7 +5385,7 @@ initialFocus="input"
|
|
|
5045
5385
|
summary: "",
|
|
5046
5386
|
description: "",
|
|
5047
5387
|
category: "forms",
|
|
5048
|
-
version: "11.
|
|
5388
|
+
version: "11.7.0",
|
|
5049
5389
|
bindings: {
|
|
5050
5390
|
angular: {
|
|
5051
5391
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5250,6 +5590,21 @@ initialFocus="input"
|
|
|
5250
5590
|
required: false,
|
|
5251
5591
|
default: "undefined",
|
|
5252
5592
|
description: ""
|
|
5593
|
+
},
|
|
5594
|
+
{
|
|
5595
|
+
name: "unframed",
|
|
5596
|
+
kind: "input",
|
|
5597
|
+
type: "unknown",
|
|
5598
|
+
required: false,
|
|
5599
|
+
default: "false, { transform: booleanAttribute }",
|
|
5600
|
+
description: "Drop the field chrome and render the bare input \u2014 see `uni-input-box`."
|
|
5601
|
+
},
|
|
5602
|
+
{
|
|
5603
|
+
name: "align",
|
|
5604
|
+
kind: "input",
|
|
5605
|
+
type: "'start' | 'center' | 'end'",
|
|
5606
|
+
required: false,
|
|
5607
|
+
description: "Text alignment, as `uni-number-input`'s. Default: `start`."
|
|
5253
5608
|
}
|
|
5254
5609
|
]
|
|
5255
5610
|
}
|
|
@@ -5330,7 +5685,7 @@ initialFocus="input"
|
|
|
5330
5685
|
summary: "",
|
|
5331
5686
|
description: "",
|
|
5332
5687
|
category: "forms",
|
|
5333
|
-
version: "11.
|
|
5688
|
+
version: "11.7.0",
|
|
5334
5689
|
bindings: {
|
|
5335
5690
|
angular: {
|
|
5336
5691
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5400,6 +5755,14 @@ initialFocus="input"
|
|
|
5400
5755
|
default: "false",
|
|
5401
5756
|
description: "Stop applying the themed leading inset to the inner control, for fields that place it themselves. The inset normally rides the `<input>`, which is right while the text is the field's leading edge. It is wrong the moment an adornment sits in front: a currency prefix would hug the border while the number it belongs to is indented past it. A field with adornments takes the inset over and puts it on whichever element is actually first."
|
|
5402
5757
|
},
|
|
5758
|
+
{
|
|
5759
|
+
name: "unframed",
|
|
5760
|
+
kind: "input",
|
|
5761
|
+
type: "unknown",
|
|
5762
|
+
required: false,
|
|
5763
|
+
default: "false, { transform: booleanAttribute }",
|
|
5764
|
+
description: "Drop the field chrome \u2014 border, fill, radius, shadow, leading inset and the focus treatment \u2014 and render the bare row. For fields drawn as an email client draws them: unframed lines with a hairline between. The surrounding layout draws any focus cue; the error state is still exposed through `aria-invalid` on the control inside. Same meaning as `uni-tag-input`'s."
|
|
5765
|
+
},
|
|
5403
5766
|
{
|
|
5404
5767
|
name: "variant",
|
|
5405
5768
|
kind: "input",
|
|
@@ -5451,7 +5814,7 @@ initialFocus="input"
|
|
|
5451
5814
|
summary: "",
|
|
5452
5815
|
description: "",
|
|
5453
5816
|
category: "components",
|
|
5454
|
-
version: "11.
|
|
5817
|
+
version: "11.7.0",
|
|
5455
5818
|
bindings: {
|
|
5456
5819
|
angular: {
|
|
5457
5820
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5521,7 +5884,7 @@ initialFocus="input"
|
|
|
5521
5884
|
summary: "",
|
|
5522
5885
|
description: "",
|
|
5523
5886
|
category: "layout",
|
|
5524
|
-
version: "11.
|
|
5887
|
+
version: "11.7.0",
|
|
5525
5888
|
bindings: {
|
|
5526
5889
|
angular: {
|
|
5527
5890
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5625,7 +5988,7 @@ initialFocus="input"
|
|
|
5625
5988
|
summary: "",
|
|
5626
5989
|
description: "",
|
|
5627
5990
|
category: "layout",
|
|
5628
|
-
version: "11.
|
|
5991
|
+
version: "11.7.0",
|
|
5629
5992
|
bindings: {
|
|
5630
5993
|
angular: {
|
|
5631
5994
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5707,7 +6070,7 @@ initialFocus="input"
|
|
|
5707
6070
|
summary: "",
|
|
5708
6071
|
description: "",
|
|
5709
6072
|
category: "forms",
|
|
5710
|
-
version: "11.
|
|
6073
|
+
version: "11.7.0",
|
|
5711
6074
|
bindings: {
|
|
5712
6075
|
angular: {
|
|
5713
6076
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5801,7 +6164,7 @@ initialFocus="input"
|
|
|
5801
6164
|
summary: "",
|
|
5802
6165
|
description: "",
|
|
5803
6166
|
category: "forms",
|
|
5804
|
-
version: "11.
|
|
6167
|
+
version: "11.7.0",
|
|
5805
6168
|
bindings: {
|
|
5806
6169
|
angular: {
|
|
5807
6170
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5980,7 +6343,7 @@ initialFocus="input"
|
|
|
5980
6343
|
summary: "",
|
|
5981
6344
|
description: "",
|
|
5982
6345
|
category: "feedback",
|
|
5983
|
-
version: "11.
|
|
6346
|
+
version: "11.7.0",
|
|
5984
6347
|
bindings: {
|
|
5985
6348
|
angular: {
|
|
5986
6349
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -6221,7 +6584,7 @@ initialFocus="input"
|
|
|
6221
6584
|
}
|
|
6222
6585
|
],
|
|
6223
6586
|
guidelines: {
|
|
6224
|
-
whenToUse:
|
|
6587
|
+
whenToUse: "Attention indicator anchored to whatever it wraps \u2014 an icon button, a nav item, an\navatar. Three shapes: `dot` (something is new), `count` (how many), and `pill`\n(counts that need room); `maxCount` caps the display (\"99+\"). Position it on any\ncorner of the wrapped content.\nRadius, offset and the count's typeface resolve from the `notificationBadge`\ntheme options, and the disc's size from its `sizes` block through the `size`\ninput (a `sm` badge for a 12px nav label, `lg` for an icon button); the badge\nwears the active `variant` color. The wrapper is inline-flex, so it never moves\nthe element it wraps.",
|
|
6225
6588
|
dos: [],
|
|
6226
6589
|
donts: [
|
|
6227
6590
|
"Convey urgency by color alone \u2014 the count/dot shape carries the signal"
|
|
@@ -6240,7 +6603,7 @@ initialFocus="input"
|
|
|
6240
6603
|
summary: "",
|
|
6241
6604
|
description: "",
|
|
6242
6605
|
category: "feedback",
|
|
6243
|
-
version: "11.
|
|
6606
|
+
version: "11.7.0",
|
|
6244
6607
|
bindings: {
|
|
6245
6608
|
angular: {
|
|
6246
6609
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -6264,7 +6627,7 @@ initialFocus="input"
|
|
|
6264
6627
|
summary: "Numeric field with locale-aware parsing, `Intl` formatting on commit, prefix/suffix adornments and steppers that hold to repeat.",
|
|
6265
6628
|
description: 'Numeric field with locale-aware parsing, `Intl` formatting on commit, prefix/suffix adornments and steppers that hold to repeat. Not `<input type="number">`, and the first reason is a data-loss bug: per the HTML value sanitization algorithm, a number input whose text is not a valid floating-point number reports `value === \'\'`. Type `12,50` as most of Europe does, or paste `1,234.56` from a spreadsheet, and the app reads an empty field. This is `type="text"` with `role="spinbutton"`, which is the only way to keep the user\'s malformed text on screen and tell them about it. Chrome comes from `uni-input-box`, so error, disabled and focus states match every other field. All arithmetic runs on the cdk\'s exact decimal helpers.',
|
|
6266
6629
|
category: "forms",
|
|
6267
|
-
version: "11.
|
|
6630
|
+
version: "11.7.0",
|
|
6268
6631
|
bindings: {
|
|
6269
6632
|
angular: {
|
|
6270
6633
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -6457,6 +6820,14 @@ initialFocus="input"
|
|
|
6457
6820
|
default: "false",
|
|
6458
6821
|
description: "Renders without its own input-box chrome, for composers like uni-slider."
|
|
6459
6822
|
},
|
|
6823
|
+
{
|
|
6824
|
+
name: "unframed",
|
|
6825
|
+
kind: "input",
|
|
6826
|
+
type: "unknown",
|
|
6827
|
+
required: false,
|
|
6828
|
+
default: "false, { transform: booleanAttribute }",
|
|
6829
|
+
description: "Keep the box but drop its chrome \u2014 border, fill, inset, focus treatment \u2014 as `uni-input`'s `unframed` does. Unlike `embedded`, the field still owns its row and its steppers."
|
|
6830
|
+
},
|
|
6460
6831
|
{
|
|
6461
6832
|
name: "min",
|
|
6462
6833
|
kind: "input",
|
|
@@ -6690,7 +7061,7 @@ initialFocus="input"
|
|
|
6690
7061
|
summary: "Two linked numeric fields in one chrome, with one `{ start, end }` value \u2014 price filters, thresholds, tolerances.",
|
|
6691
7062
|
description: "Two linked numeric fields in one chrome, with one `{ start, end }` value \u2014 price filters, thresholds, tolerances. `start`/`end` deliberately match `UniDateRange`, so the library has one range vocabulary, and they avoid colliding with the `min`/`max` **inputs**, which mean the fence rather than the value. It owns its commit path rather than nesting two `uni-number-input`s, because the two behaviours the spec asks for need *different* bounds: a stepper must be fenced at the other end, while a typed commit must reach the parent un-clamped so a backwards range can be swapped instead of destroyed. A child field applies one bound pair to both. The arithmetic, parsing and formatting are still the cdk's, shared with every other numeric control.",
|
|
6692
7063
|
category: "forms",
|
|
6693
|
-
version: "11.
|
|
7064
|
+
version: "11.7.0",
|
|
6694
7065
|
bindings: {
|
|
6695
7066
|
angular: {
|
|
6696
7067
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -6981,7 +7352,7 @@ initialFocus="input"
|
|
|
6981
7352
|
summary: "",
|
|
6982
7353
|
description: "",
|
|
6983
7354
|
category: "data",
|
|
6984
|
-
version: "11.
|
|
7355
|
+
version: "11.7.0",
|
|
6985
7356
|
bindings: {
|
|
6986
7357
|
angular: {
|
|
6987
7358
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7082,7 +7453,7 @@ initialFocus="input"
|
|
|
7082
7453
|
summary: "Anchored, top-layer panel on the native `popover` element \u2014 the browser owns positioning (CSS anchor positioning), stacking, and, in rich mode, light dismissal.",
|
|
7083
7454
|
description: 'Anchored, top-layer panel on the native `popover` element \u2014 the browser owns positioning (CSS anchor positioning), stacking, and, in rich mode, light dismissal. Two modes share one implementation: - `rich` (default): a click-toggled disclosure. The projected `[trigger]` carries `aria-expanded`/`aria-controls`; with no trigger content the app drives `open` and no element claims controller ARIA. Focus stays on the trigger (APG disclosure) unless the panel marks an `[autofocus]` field, and returns to the trigger on close. - `tooltip`: hover/focus-triggered, `role="tooltip"` + `aria-describedby`, WCAG 1.4.13 dismissable/hoverable/persistent. Content must not contain focusable elements. Anchoring and control are separate: `anchor` re-anchors the panel to any element (or id) while the trigger keeps the disclosure semantics.',
|
|
7084
7455
|
category: "layout",
|
|
7085
|
-
version: "11.
|
|
7456
|
+
version: "11.7.0",
|
|
7086
7457
|
bindings: {
|
|
7087
7458
|
angular: {
|
|
7088
7459
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7274,7 +7645,7 @@ initialFocus="input"
|
|
|
7274
7645
|
summary: "",
|
|
7275
7646
|
description: "",
|
|
7276
7647
|
category: "feedback",
|
|
7277
|
-
version: "11.
|
|
7648
|
+
version: "11.7.0",
|
|
7278
7649
|
bindings: {
|
|
7279
7650
|
angular: {
|
|
7280
7651
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7338,7 +7709,7 @@ initialFocus="input"
|
|
|
7338
7709
|
summary: "",
|
|
7339
7710
|
description: "",
|
|
7340
7711
|
category: "feedback",
|
|
7341
|
-
version: "11.
|
|
7712
|
+
version: "11.7.0",
|
|
7342
7713
|
bindings: {
|
|
7343
7714
|
angular: {
|
|
7344
7715
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7410,7 +7781,7 @@ initialFocus="input"
|
|
|
7410
7781
|
summary: "`\u2212 3 +` for cart lines, table cells and seat counts: the numeric core with no field chrome, no label and no room for either.",
|
|
7411
7782
|
description: '`\u2212 3 +` for cart lines, table cells and seat counts: the numeric core with no field chrome, no label and no room for either. A separate component rather than a `chrome="bare"` flag on `uni-number-input`, because this control is defined by what it does *not* have \u2014 presets, affixes, expressions, four stepper layouts \u2014 and eight inputs are easier to write correctly than forty with a list of which ones to leave alone. The arithmetic, parsing and hold-to-repeat are the cdk\'s, shared with the field, so `1,200` and the keyboard map behave identically in both. The middle stays a real input by default: typing `12` beats tapping `+` eleven times. `editable=false` is for read-mostly tables.',
|
|
7412
7783
|
category: "forms",
|
|
7413
|
-
version: "11.
|
|
7784
|
+
version: "11.7.0",
|
|
7414
7785
|
bindings: {
|
|
7415
7786
|
angular: {
|
|
7416
7787
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7613,7 +7984,7 @@ initialFocus="input"
|
|
|
7613
7984
|
summary: "",
|
|
7614
7985
|
description: "",
|
|
7615
7986
|
category: "forms",
|
|
7616
|
-
version: "11.
|
|
7987
|
+
version: "11.7.0",
|
|
7617
7988
|
bindings: {
|
|
7618
7989
|
angular: {
|
|
7619
7990
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7842,7 +8213,7 @@ initialFocus="input"
|
|
|
7842
8213
|
summary: "Content for each of a radio group's options, in place of the plain label string.",
|
|
7843
8214
|
description: 'Content for each of a radio group\'s options, in place of the plain label string. A group renders N labels from an `options` array, so it cannot take `<ng-content />` the way `uni-checkbox` and `uni-toggle` do \u2014 there is no single slot to project into. A template is the shape that survives the repetition: it is instantiated once per option and handed that option, so a row can carry a description, a price or a badge and still be part of the `<label>` that drives the input. ```html <uni-radio [options]="plans"> <ng-template uniRadioOption let-option> <span uni-text="body-2-long">{{ option.label }}</span> </ng-template> </uni-radio> ```',
|
|
7844
8215
|
category: "forms",
|
|
7845
|
-
version: "11.
|
|
8216
|
+
version: "11.7.0",
|
|
7846
8217
|
bindings: {
|
|
7847
8218
|
angular: {
|
|
7848
8219
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7866,7 +8237,7 @@ initialFocus="input"
|
|
|
7866
8237
|
summary: "",
|
|
7867
8238
|
description: "",
|
|
7868
8239
|
category: "directives",
|
|
7869
|
-
version: "11.
|
|
8240
|
+
version: "11.7.0",
|
|
7870
8241
|
bindings: {
|
|
7871
8242
|
angular: {
|
|
7872
8243
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7890,7 +8261,7 @@ initialFocus="input"
|
|
|
7890
8261
|
summary: "",
|
|
7891
8262
|
description: "",
|
|
7892
8263
|
category: "layout",
|
|
7893
|
-
version: "11.
|
|
8264
|
+
version: "11.7.0",
|
|
7894
8265
|
bindings: {
|
|
7895
8266
|
angular: {
|
|
7896
8267
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7945,7 +8316,7 @@ initialFocus="input"
|
|
|
7945
8316
|
summary: "Native scroll area with theme-driven scrollbar styling.",
|
|
7946
8317
|
description: "Native scroll area with theme-driven scrollbar styling. Scrollbars are styled entirely through Emotion-generated CSS: `::-webkit-scrollbar` rules cover Chromium/Safari, with a `scrollbar-width`/`scrollbar-color` fallback for Firefox.",
|
|
7947
8318
|
category: "layout",
|
|
7948
|
-
version: "11.
|
|
8319
|
+
version: "11.7.0",
|
|
7949
8320
|
bindings: {
|
|
7950
8321
|
angular: {
|
|
7951
8322
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8029,6 +8400,21 @@ initialFocus="input"
|
|
|
8029
8400
|
required: false,
|
|
8030
8401
|
description: ""
|
|
8031
8402
|
},
|
|
8403
|
+
{
|
|
8404
|
+
name: "maxHeight",
|
|
8405
|
+
kind: "input",
|
|
8406
|
+
type: "OptionalValue",
|
|
8407
|
+
required: false,
|
|
8408
|
+
description: "Grow with the content up to this height, then scroll. The shape a dialog body wants: as tall as the form until it would leave the viewport. With `height` unset the area is otherwise content-sized and never scrolls."
|
|
8409
|
+
},
|
|
8410
|
+
{
|
|
8411
|
+
name: "fill",
|
|
8412
|
+
kind: "input",
|
|
8413
|
+
type: "unknown",
|
|
8414
|
+
required: false,
|
|
8415
|
+
default: "false, { transform: booleanAttribute }",
|
|
8416
|
+
description: "Take the room a flex-column parent leaves (`flex: 1 1 auto; min-height: 0`) and scroll within it \u2014 the body of a dialog or drawer without a wrapper."
|
|
8417
|
+
},
|
|
8032
8418
|
{
|
|
8033
8419
|
name: "width",
|
|
8034
8420
|
kind: "input",
|
|
@@ -8075,10 +8461,15 @@ initialFocus="input"
|
|
|
8075
8461
|
title: "Primary",
|
|
8076
8462
|
framework: "angular",
|
|
8077
8463
|
code: '<!-- Storybook story: Primary -->\n<div scroll-area ${argsToTemplate(props)} #scrollArea>\n <button size="sm" text-button variant="ghost" symbolLeft="arrow_downward" (click)="scrollArea.scrollToBottom()">Scroll to bottom</button>\n ${ngContent}\n <button size="sm" text-button variant="ghost" symbolLeft="arrow_upward" (click)="scrollArea.scrollToTop()">Back to top</button>\n</div>\n<!-- args:\n{\n border: \'quaternary\',\n containerColor: \'tertiary-surface\',\n height: 200,\n ngContent: `\n <span uni-text="headline-medium">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</span>\n <span uni-text="body-1-long">\n <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quis facere debitis ullam, quae quidem, impedit\n culpa nam\n repellat in voluptatibus esse ab harum, hic? Aliquam nesciunt voluptates repellendus assumenda labore.\n </p>\n <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Porro quos voluptate doloribus. Optio unde\n inventore, tempore\n nemo repellat expedita! Quod, accusamus nobis iure. Aliquam quibusdam, nemo explicabo ipsum provident\n asperiores.</p>\n <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quaerat, qui, rem! Debitis cum maiores iste,\n possimus!\n Obcaecati accusamus eaque expedita quo soluta quis, repudiandae similique, veritatis repellendus facere\n suscipit!\n Et!</p>\n <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Harum doloremque repellat praesentium quae et\n consectetur\n iure quos porro, provident voluptates reprehenderit a. Accusamus ut, quaerat asperiores blanditiis\n voluptate, sint\n facilis.</p>\n <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus beatae inventore nobis esse\n temporibus\n exercitationem\n eos illo minima non magnam, provident sit doloribus maiores odio in animi quidem unde. Perferendis.</p>\n\n </span>\n\n\n `,\n }\n-->'
|
|
8464
|
+
},
|
|
8465
|
+
{
|
|
8466
|
+
title: "Max Height",
|
|
8467
|
+
framework: "angular",
|
|
8468
|
+
code: '<!-- Storybook story: Max Height -->\n<div scroll-area ${argsToTemplate(props)} #scrollArea>\n <button size="sm" text-button variant="ghost" symbolLeft="arrow_downward" (click)="scrollArea.scrollToBottom()">Scroll to bottom</button>\n ${ngContent}\n <button size="sm" text-button variant="ghost" symbolLeft="arrow_upward" (click)="scrollArea.scrollToTop()">Back to top</button>\n</div>\n<!-- args:\n{ ...Primary.args, height: undefined, maxHeight: 160 }\n-->'
|
|
8078
8469
|
}
|
|
8079
8470
|
],
|
|
8080
8471
|
guidelines: {
|
|
8081
|
-
whenToUse: "A scroll container with themed, consistent scrollbars across browsers \u2014 thin\nEmotion-styled WebKit scrollbars with a `scrollbar-width`/`scrollbar-color`\nfallback. It detects scrollable state via ResizeObserver (the `scrollable` output)\nand offers `scrollToTop`/`scrollToBottom` for programmatic control.",
|
|
8472
|
+
whenToUse: "A scroll container with themed, consistent scrollbars across browsers \u2014 thin\nEmotion-styled WebKit scrollbars with a `scrollbar-width`/`scrollbar-color`\nfallback. It detects scrollable state via ResizeObserver (the `scrollable` output)\nand offers `scrollToTop`/`scrollToBottom` for programmatic control.\nThree ways to size it: `height` fixes it; `maxHeight` lets it grow with its\ncontent up to a cap, then scroll; `fill` takes the room a flex-column parent\nleaves and scrolls within it \u2014 the body of a dialog without a wrapper. With none\nof them the area is content-sized and never scrolls.",
|
|
8082
8473
|
dos: [],
|
|
8083
8474
|
donts: [],
|
|
8084
8475
|
accessibility: []
|
|
@@ -8092,7 +8483,7 @@ initialFocus="input"
|
|
|
8092
8483
|
summary: "Generic search field: shared input chrome with a leading magnifier, a clear button while there's a query, Enter to submit, and optional type-ahead \u2014 pass `suggestions` (refresh them from `change`) and the field becomes an ARIA combobox with a keyboard-navigable listbox.",
|
|
8093
8484
|
description: "Generic search field: shared input chrome with a leading magnifier, a clear button while there's a query, Enter to submit, and optional type-ahead \u2014 pass `suggestions` (refresh them from `change`) and the field becomes an ARIA combobox with a keyboard-navigable listbox. Escape closes the list first, then clears the query.",
|
|
8094
8485
|
category: "forms",
|
|
8095
|
-
version: "11.
|
|
8486
|
+
version: "11.7.0",
|
|
8096
8487
|
bindings: {
|
|
8097
8488
|
angular: {
|
|
8098
8489
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8136,6 +8527,14 @@ initialFocus="input"
|
|
|
8136
8527
|
default: "[]",
|
|
8137
8528
|
description: "Type-ahead entries. Keep them fresh from `change` emissions; the list shows while the field has focus and entries exist."
|
|
8138
8529
|
},
|
|
8530
|
+
{
|
|
8531
|
+
name: "openOnFocus",
|
|
8532
|
+
kind: "input",
|
|
8533
|
+
type: "boolean",
|
|
8534
|
+
required: false,
|
|
8535
|
+
default: "false",
|
|
8536
|
+
description: "Show the suggestions on focus and on click, before anything is typed."
|
|
8537
|
+
},
|
|
8139
8538
|
{
|
|
8140
8539
|
name: "searchChange",
|
|
8141
8540
|
kind: "output",
|
|
@@ -8219,7 +8618,7 @@ initialFocus="input"
|
|
|
8219
8618
|
summary: "",
|
|
8220
8619
|
description: "",
|
|
8221
8620
|
category: "forms",
|
|
8222
|
-
version: "11.
|
|
8621
|
+
version: "11.7.0",
|
|
8223
8622
|
bindings: {
|
|
8224
8623
|
angular: {
|
|
8225
8624
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8367,9 +8766,11 @@ initialFocus="input"
|
|
|
8367
8766
|
}
|
|
8368
8767
|
],
|
|
8369
8768
|
guidelines: {
|
|
8370
|
-
whenToUse: "Single choice from a list, on a native `<select>` \u2014 platform pickers on mobile,\nplatform keyboard behavior everywhere. Options are typed generically\n(`options: T[]` with `optionLabel`/`optionValue` accessors), and the component\nimplements `FormValueControl` for the Signal Forms `[formField]` directive. Errors\nstyle the field only after interaction, matching Input.\nFor choosing several, use Multi Select. When the list outgrows ~10 options, or\nusers know what they're looking for and want to type it, use Combobox \u2014 the\nvalue contract is identical (`T | null`, `compareWith`), so the swap is a\ntemplate-only change.",
|
|
8769
|
+
whenToUse: "Single choice from a list, on a native `<select>` \u2014 platform pickers on mobile,\nplatform keyboard behavior everywhere. Options are typed generically\n(`options: T[]` with `optionLabel`/`optionValue` accessors), and the component\nimplements `FormValueControl` for the Signal Forms `[formField]` directive. Errors\nstyle the field only after interaction, matching Input.\nThe value contract is `T | null`: `null` is \"nothing selected\". A value that no\noption stands for \u2014 `''`, a stale id \u2014 renders as empty too, never as the first\noption, and is reported with a dev-mode warning once the options have loaded.\nFor choosing several, use Multi Select. When the list outgrows ~10 options, or\nusers know what they're looking for and want to type it, use Combobox \u2014 the\nvalue contract is identical (`T | null`, `compareWith`), so the swap is a\ntemplate-only change.",
|
|
8371
8770
|
dos: [],
|
|
8372
|
-
donts: [
|
|
8771
|
+
donts: [
|
|
8772
|
+
"Bind `''` to mean \"nothing selected\" \u2014 the contract is `null`. The field shows"
|
|
8773
|
+
],
|
|
8373
8774
|
accessibility: [
|
|
8374
8775
|
"Native `<select>`: platform keyboard interaction and mobile pickers for free.",
|
|
8375
8776
|
"`label` becomes the accessible name; `aria-invalid` reflects the touched error state.",
|
|
@@ -8389,7 +8790,7 @@ initialFocus="input"
|
|
|
8389
8790
|
summary: "Loading placeholder painted with surface tokens.",
|
|
8390
8791
|
description: "Loading placeholder painted with surface tokens. `text` renders one or more lines (the last line shortened, as real text would be), `rect` and `circle` render fixed shapes. The shimmer only animates when the user allows motion; it degrades to static blocks under `prefers-reduced-motion`. Color and radius are theme options with per-instance overrides, because one app routinely needs several: skeletons on a card and on the page background want different tints, and a pill placeholder wants a different corner than the text bars beside it.",
|
|
8391
8792
|
category: "components",
|
|
8392
|
-
version: "11.
|
|
8793
|
+
version: "11.7.0",
|
|
8393
8794
|
bindings: {
|
|
8394
8795
|
angular: {
|
|
8395
8796
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8540,7 +8941,7 @@ initialFocus="input"
|
|
|
8540
8941
|
summary: "Bounded numeric input by pointer, for values where the *position* is the information: volume, opacity, weightings, price filters.",
|
|
8541
8942
|
description: "Bounded numeric input by pointer, for values where the *position* is the information: volume, opacity, weightings, price filters. Custom thumbs rather than `<input type=\"range\">`, which the previous version used: one native range input cannot carry two thumbs, marks or a tooltip, and a second component for the range case would mean two keyboard maps to keep in step. The step model and the keyboard map are the cdk's, shared with the numeric fields, so nothing new is learned moving between them. All arithmetic on values runs through the cdk's exact decimal helpers \u2014 stepping `0.1` never yields `0.30000000000000004`. Only pointer *positions* use floats, and they are snapped to the grid before becoming a value.",
|
|
8542
8943
|
category: "forms",
|
|
8543
|
-
version: "11.
|
|
8944
|
+
version: "11.7.0",
|
|
8544
8945
|
bindings: {
|
|
8545
8946
|
angular: {
|
|
8546
8947
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8817,7 +9218,7 @@ initialFocus="input"
|
|
|
8817
9218
|
summary: "",
|
|
8818
9219
|
description: "",
|
|
8819
9220
|
category: "feedback",
|
|
8820
|
-
version: "11.
|
|
9221
|
+
version: "11.7.0",
|
|
8821
9222
|
bindings: {
|
|
8822
9223
|
angular: {
|
|
8823
9224
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8929,7 +9330,7 @@ initialFocus="input"
|
|
|
8929
9330
|
summary: "",
|
|
8930
9331
|
description: "",
|
|
8931
9332
|
category: "data",
|
|
8932
|
-
version: "11.
|
|
9333
|
+
version: "11.7.0",
|
|
8933
9334
|
bindings: {
|
|
8934
9335
|
angular: {
|
|
8935
9336
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8948,6 +9349,21 @@ initialFocus="input"
|
|
|
8948
9349
|
type: "UniDatasource<T>",
|
|
8949
9350
|
required: false,
|
|
8950
9351
|
description: ""
|
|
9352
|
+
},
|
|
9353
|
+
{
|
|
9354
|
+
name: "iconName",
|
|
9355
|
+
kind: "input",
|
|
9356
|
+
type: "IconName",
|
|
9357
|
+
required: false,
|
|
9358
|
+
default: "'arrowUp'",
|
|
9359
|
+
description: "The glyph shown while sorted. One icon serves both directions \u2014 it is drawn as given for descending and rotated half a turn for ascending \u2014 so pick an arrow or chevron that reads either way up."
|
|
9360
|
+
},
|
|
9361
|
+
{
|
|
9362
|
+
name: "align",
|
|
9363
|
+
kind: "input",
|
|
9364
|
+
type: "'left' | 'right' | 'center'",
|
|
9365
|
+
required: false,
|
|
9366
|
+
description: "The column's text alignment. The arrow hangs outside the label so the label stays flush with the cells under it; in a right-aligned column it moves to the leading side, where it cannot push past the table's edge."
|
|
8951
9367
|
}
|
|
8952
9368
|
]
|
|
8953
9369
|
}
|
|
@@ -8988,7 +9404,7 @@ initialFocus="input"
|
|
|
8988
9404
|
summary: "",
|
|
8989
9405
|
description: "",
|
|
8990
9406
|
category: "layout",
|
|
8991
|
-
version: "11.
|
|
9407
|
+
version: "11.7.0",
|
|
8992
9408
|
bindings: {
|
|
8993
9409
|
angular: {
|
|
8994
9410
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9043,7 +9459,7 @@ initialFocus="input"
|
|
|
9043
9459
|
summary: 'KPI stat tile: muted label, large value (numbers auto-compact: 48234 \u2192 "48.2K"), an optional delta whose ink is decided by *direction \xD7 whether up is good* (never direction alone \u2014 churn going down is good news), and an optional decorative sparkline.',
|
|
9044
9460
|
description: 'KPI stat tile: muted label, large value (numbers auto-compact: 48234 \u2192 "48.2K"), an optional delta whose ink is decided by *direction \xD7 whether up is good* (never direction alone \u2014 churn going down is good news), and an optional decorative sparkline. Frame, typography and inks are all `stat` theme tokens.',
|
|
9045
9461
|
category: "components",
|
|
9046
|
-
version: "11.
|
|
9462
|
+
version: "11.7.0",
|
|
9047
9463
|
bindings: {
|
|
9048
9464
|
angular: {
|
|
9049
9465
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9161,7 +9577,7 @@ initialFocus="input"
|
|
|
9161
9577
|
summary: "",
|
|
9162
9578
|
description: "",
|
|
9163
9579
|
category: "primitives",
|
|
9164
|
-
version: "11.
|
|
9580
|
+
version: "11.7.0",
|
|
9165
9581
|
bindings: {
|
|
9166
9582
|
angular: {
|
|
9167
9583
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9250,7 +9666,7 @@ initialFocus="input"
|
|
|
9250
9666
|
summary: "One tab inside `uni-tabs`: a label for the tablist plus projected panel content.",
|
|
9251
9667
|
description: "One tab inside `uni-tabs`: a label for the tablist plus projected panel content. Content is captured in a template and only instantiated while the tab is selected, so inactive panels cost nothing.",
|
|
9252
9668
|
category: "components",
|
|
9253
|
-
version: "11.
|
|
9669
|
+
version: "11.7.0",
|
|
9254
9670
|
bindings: {
|
|
9255
9671
|
angular: {
|
|
9256
9672
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9290,7 +9706,7 @@ initialFocus="input"
|
|
|
9290
9706
|
summary: "WAI-ARIA tabs: roving tabindex, automatic activation (arrow keys move focus and select), Home/End, disabled tabs skipped.",
|
|
9291
9707
|
description: "WAI-ARIA tabs: roving tabindex, automatic activation (arrow keys move focus and select), Home/End, disabled tabs skipped. Only the selected panel is instantiated. All styling resolves from `tabs` theme option tokens. A tab switch is softened by the `panelMotion` option: the incoming content fades in while the panel animates from the outgoing content's height to its own. The new content is live from the first frame \u2014 nothing waits on the animation.",
|
|
9292
9708
|
category: "components",
|
|
9293
|
-
version: "11.
|
|
9709
|
+
version: "11.7.0",
|
|
9294
9710
|
bindings: {
|
|
9295
9711
|
angular: {
|
|
9296
9712
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9378,7 +9794,7 @@ initialFocus="input"
|
|
|
9378
9794
|
summary: "Compact chip for categories, states, filters and tokens.",
|
|
9379
9795
|
description: "Compact chip for categories, states, filters and tokens. Two orthogonal style axes: `variant` picks the colour role and `tone` picks the archetype (soft / solid / outline). Both live in the theme's `tag` entry, so a theme restyles every chip in the app without touching markup. Two state classes ride alongside the tone class for the same reason: `tag-selected` and `tag-interactive` let the theme paint selection and hover beside the colours they belong to, instead of an app swapping `tone` by hand on every chip. Structurally a chip is **body + trailing action as siblings**, never nested buttons: an interactive chip whose body is a `<button>` cannot contain the remove `<button>` (invalid HTML, and the inner control becomes unreachable for keyboard users). Both stay independently operable.",
|
|
9380
9796
|
category: "data",
|
|
9381
|
-
version: "11.
|
|
9797
|
+
version: "11.7.0",
|
|
9382
9798
|
bindings: {
|
|
9383
9799
|
angular: {
|
|
9384
9800
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9756,7 +10172,7 @@ initialFocus="input"
|
|
|
9756
10172
|
summary: "A row of chips the user picks from: filters, facets, a set of labels.",
|
|
9757
10173
|
description: "A row of chips the user picks from: filters, facets, a set of labels. The group **renders its own chips** from `items` rather than projecting them. That is what lets it own the things an app was otherwise wiring per chip \u2014 which one is selected, which one holds the tab stop \u2014 since a parent cannot write a projected child's inputs. `uni-tag` is unchanged by this component; `controlTabIndex` was already its hook for a composite that manages focus. Keyboard model is the toolbar pattern: one tab stop for the whole group, and the arrow keys move within it. Twelve filter chips should cost one Tab to pass, not twelve.",
|
|
9758
10174
|
category: "data",
|
|
9759
|
-
version: "11.
|
|
10175
|
+
version: "11.7.0",
|
|
9760
10176
|
bindings: {
|
|
9761
10177
|
angular: {
|
|
9762
10178
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9954,7 +10370,7 @@ initialFocus="input"
|
|
|
9954
10370
|
summary: "",
|
|
9955
10371
|
description: "",
|
|
9956
10372
|
category: "forms",
|
|
9957
|
-
version: "11.
|
|
10373
|
+
version: "11.7.0",
|
|
9958
10374
|
bindings: {
|
|
9959
10375
|
angular: {
|
|
9960
10376
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -10076,12 +10492,43 @@ initialFocus="input"
|
|
|
10076
10492
|
default: "undefined, { alias: 'max' }",
|
|
10077
10493
|
description: ""
|
|
10078
10494
|
},
|
|
10495
|
+
{
|
|
10496
|
+
name: "unframed",
|
|
10497
|
+
kind: "input",
|
|
10498
|
+
type: "unknown",
|
|
10499
|
+
required: false,
|
|
10500
|
+
default: "false, { transform: booleanAttribute }",
|
|
10501
|
+
description: "Drop the field chrome (border, fill, inset) and render the bare chip row \u2014 an email client's To line. The surrounding layout draws any hairline and focus cue; the error state is still exposed through `aria-invalid`."
|
|
10502
|
+
},
|
|
10503
|
+
{
|
|
10504
|
+
name: "backspaceRemoves",
|
|
10505
|
+
kind: "input",
|
|
10506
|
+
type: "boolean",
|
|
10507
|
+
required: false,
|
|
10508
|
+
default: "false",
|
|
10509
|
+
description: "Backspace in an empty field removes the last tag outright, as mail clients do. Off by default: the two-step (focus the chip, then remove) never deletes blind."
|
|
10510
|
+
},
|
|
10511
|
+
{
|
|
10512
|
+
name: "keepInvalidText",
|
|
10513
|
+
kind: "input",
|
|
10514
|
+
type: "boolean",
|
|
10515
|
+
required: false,
|
|
10516
|
+
default: "false",
|
|
10517
|
+
description: "Refuse a draft that fails validation instead of committing it as a flagged chip: the text stays in the field to be fixed and `rejected` fires with `reason: 'invalid'`."
|
|
10518
|
+
},
|
|
10519
|
+
{
|
|
10520
|
+
name: "autocomplete",
|
|
10521
|
+
kind: "input",
|
|
10522
|
+
type: "string",
|
|
10523
|
+
required: false,
|
|
10524
|
+
default: "'off'",
|
|
10525
|
+
description: "The text field's `autocomplete` token. The field has its own suggestion list, so browser autofill is off by default and password managers are told to skip it. Chrome can still ignore `off` on a field it takes for an email or address; pass another token if its dropdown competes with yours."
|
|
10526
|
+
},
|
|
10079
10527
|
{
|
|
10080
10528
|
name: "tagVariant",
|
|
10081
10529
|
kind: "input",
|
|
10082
10530
|
type: "Variant",
|
|
10083
10531
|
required: false,
|
|
10084
|
-
default: "'primary'",
|
|
10085
10532
|
description: ""
|
|
10086
10533
|
},
|
|
10087
10534
|
{
|
|
@@ -10089,7 +10536,6 @@ initialFocus="input"
|
|
|
10089
10536
|
kind: "input",
|
|
10090
10537
|
type: "TagTone",
|
|
10091
10538
|
required: false,
|
|
10092
|
-
default: "'soft'",
|
|
10093
10539
|
description: ""
|
|
10094
10540
|
},
|
|
10095
10541
|
{
|
|
@@ -10122,6 +10568,29 @@ initialFocus="input"
|
|
|
10122
10568
|
default: "250",
|
|
10123
10569
|
description: ""
|
|
10124
10570
|
},
|
|
10571
|
+
{
|
|
10572
|
+
name: "openOnFocus",
|
|
10573
|
+
kind: "input",
|
|
10574
|
+
type: "boolean",
|
|
10575
|
+
required: false,
|
|
10576
|
+
default: "false",
|
|
10577
|
+
description: "Show the suggestions on focus and on click, before anything is typed."
|
|
10578
|
+
},
|
|
10579
|
+
{
|
|
10580
|
+
name: "autoHighlight",
|
|
10581
|
+
kind: "input",
|
|
10582
|
+
type: "boolean",
|
|
10583
|
+
required: false,
|
|
10584
|
+
default: "false",
|
|
10585
|
+
description: "Keep the first suggestion active while the list is open, so Enter or Tab picks it without arrowing. A draft that is already valid under the field's validator still commits as typed."
|
|
10586
|
+
},
|
|
10587
|
+
{
|
|
10588
|
+
name: "draftChange",
|
|
10589
|
+
kind: "output",
|
|
10590
|
+
type: "string",
|
|
10591
|
+
required: false,
|
|
10592
|
+
description: "Uncommitted text, on every change and undebounced (cf. `query`)."
|
|
10593
|
+
},
|
|
10125
10594
|
{
|
|
10126
10595
|
name: "added",
|
|
10127
10596
|
kind: "output",
|
|
@@ -10251,13 +10720,65 @@ placeholder="Name or address\u2026"
|
|
|
10251
10720
|
(query)="onQuery($event)"
|
|
10252
10721
|
/>
|
|
10253
10722
|
<!-- args:
|
|
10254
|
-
{ maxLength: 3, value: [{ value: 'alpha' }, { value: 'beta' }] }
|
|
10723
|
+
{ maxLength: 3, value: [{ value: 'alpha' }, { value: 'beta' }] }
|
|
10724
|
+
-->`
|
|
10725
|
+
},
|
|
10726
|
+
{
|
|
10727
|
+
title: "Disabled",
|
|
10728
|
+
framework: "angular",
|
|
10729
|
+
code: `<!-- Storybook story: Disabled -->
|
|
10730
|
+
<uni-tag-input
|
|
10731
|
+
label="To"
|
|
10732
|
+
preset="email"
|
|
10733
|
+
placeholder="Name or address\u2026"
|
|
10734
|
+
[value]="value"
|
|
10735
|
+
[suggestions]="suggestions"
|
|
10736
|
+
(query)="onQuery($event)"
|
|
10737
|
+
/>
|
|
10738
|
+
<!-- args:
|
|
10739
|
+
{ disabled: true, value: [{ value: 'alpha' }, { value: 'beta' }] }
|
|
10740
|
+
-->`
|
|
10741
|
+
},
|
|
10742
|
+
{
|
|
10743
|
+
title: "Grouped Suggestions",
|
|
10744
|
+
framework: "angular",
|
|
10745
|
+
code: `<!-- Storybook story: Grouped Suggestions -->
|
|
10746
|
+
<uni-tag-input
|
|
10747
|
+
label="To"
|
|
10748
|
+
preset="email"
|
|
10749
|
+
placeholder="Name or address\u2026"
|
|
10750
|
+
[openOnFocus]="true"
|
|
10751
|
+
[suggestions]="suggestions"
|
|
10752
|
+
/>
|
|
10753
|
+
<!-- args:
|
|
10754
|
+
{
|
|
10755
|
+
unframed: true,
|
|
10756
|
+
preset: 'email',
|
|
10757
|
+
value: [{ value: 'alice@uni.dev', label: 'Alice Chen', avatarName: 'Alice Chen' }],
|
|
10758
|
+
}
|
|
10759
|
+
-->`
|
|
10760
|
+
},
|
|
10761
|
+
{
|
|
10762
|
+
title: "Suggestion Template",
|
|
10763
|
+
framework: "angular",
|
|
10764
|
+
code: `<!-- Storybook story: Suggestion Template -->
|
|
10765
|
+
<uni-tag-input label="To" preset="email" [openOnFocus]="true" [suggestions]="suggestions">
|
|
10766
|
+
<ng-template uniTagSuggestion let-person let-index="index">
|
|
10767
|
+
{{ index + 1 }}. {{ person.label }} \u2014 {{ person.value }}
|
|
10768
|
+
</ng-template>
|
|
10769
|
+
</uni-tag-input>
|
|
10770
|
+
<!-- args:
|
|
10771
|
+
{
|
|
10772
|
+
unframed: true,
|
|
10773
|
+
preset: 'email',
|
|
10774
|
+
value: [{ value: 'alice@uni.dev', label: 'Alice Chen', avatarName: 'Alice Chen' }],
|
|
10775
|
+
}
|
|
10255
10776
|
-->`
|
|
10256
10777
|
},
|
|
10257
10778
|
{
|
|
10258
|
-
title: "
|
|
10779
|
+
title: "Unframed",
|
|
10259
10780
|
framework: "angular",
|
|
10260
|
-
code: `<!-- Storybook story:
|
|
10781
|
+
code: `<!-- Storybook story: Unframed -->
|
|
10261
10782
|
<uni-tag-input
|
|
10262
10783
|
label="To"
|
|
10263
10784
|
preset="email"
|
|
@@ -10267,7 +10788,11 @@ placeholder="Name or address\u2026"
|
|
|
10267
10788
|
(query)="onQuery($event)"
|
|
10268
10789
|
/>
|
|
10269
10790
|
<!-- args:
|
|
10270
|
-
{
|
|
10791
|
+
{
|
|
10792
|
+
unframed: true,
|
|
10793
|
+
preset: 'email',
|
|
10794
|
+
value: [{ value: 'alice@uni.dev', label: 'Alice Chen', avatarName: 'Alice Chen' }],
|
|
10795
|
+
}
|
|
10271
10796
|
-->`
|
|
10272
10797
|
}
|
|
10273
10798
|
],
|
|
@@ -10277,6 +10802,7 @@ placeholder="Name or address\u2026"
|
|
|
10277
10802
|
donts: [
|
|
10278
10803
|
"Don't use it to pick from a closed list \u2014 that is `uni-multi-select-dropdown`.",
|
|
10279
10804
|
"Don't filter `suggestions` inside the component; drive them from `(query)`.",
|
|
10805
|
+
"Don't rebuild a people picker on it \u2014 `uni-contact-input` already is one.",
|
|
10280
10806
|
"Don't set `preset=\"email\"` for people's names: Space would split them."
|
|
10281
10807
|
],
|
|
10282
10808
|
accessibility: [
|
|
@@ -10295,7 +10821,7 @@ placeholder="Name or address\u2026"
|
|
|
10295
10821
|
summary: "The typography primitive, applied as an attribute to any element so semantics stay yours.",
|
|
10296
10822
|
description: 'The typography primitive, applied as an attribute to any element so semantics stay yours. The attribute value is the typeface: `<h1 uni-text="display-small">`, `<span uni-text="caption">`, dynamic via `[uni-text]="role()"`. With no value, the typeface is inferred from the host element (h1 \u2192 headline-large, p \u2192 body-1-long, \u2026), falling back to `title-small`; the `typeface` input remains as an explicit override. It is a directive, so it stacks with anything else on the element \u2014 a layout attribute (`<div stack-layout uni-text="title-small">`) or a component\'s own host \u2014 rather than colliding with it.',
|
|
10297
10823
|
category: "primitives",
|
|
10298
|
-
version: "11.
|
|
10824
|
+
version: "11.7.0",
|
|
10299
10825
|
bindings: {
|
|
10300
10826
|
angular: {
|
|
10301
10827
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -10405,7 +10931,7 @@ placeholder="Name or address\u2026"
|
|
|
10405
10931
|
summary: "",
|
|
10406
10932
|
description: "",
|
|
10407
10933
|
category: "forms",
|
|
10408
|
-
version: "11.
|
|
10934
|
+
version: "11.7.0",
|
|
10409
10935
|
bindings: {
|
|
10410
10936
|
angular: {
|
|
10411
10937
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -10565,6 +11091,14 @@ placeholder="Name or address\u2026"
|
|
|
10565
11091
|
required: false,
|
|
10566
11092
|
default: "undefined",
|
|
10567
11093
|
description: ""
|
|
11094
|
+
},
|
|
11095
|
+
{
|
|
11096
|
+
name: "unframed",
|
|
11097
|
+
kind: "input",
|
|
11098
|
+
type: "unknown",
|
|
11099
|
+
required: false,
|
|
11100
|
+
default: "false, { transform: booleanAttribute }",
|
|
11101
|
+
description: "Drop the field chrome and render the bare textarea \u2014 see `uni-input-box`."
|
|
10568
11102
|
}
|
|
10569
11103
|
]
|
|
10570
11104
|
}
|
|
@@ -10612,7 +11146,7 @@ placeholder="Name or address\u2026"
|
|
|
10612
11146
|
summary: "",
|
|
10613
11147
|
description: "",
|
|
10614
11148
|
category: "primitives",
|
|
10615
|
-
version: "11.
|
|
11149
|
+
version: "11.7.0",
|
|
10616
11150
|
bindings: {
|
|
10617
11151
|
angular: {
|
|
10618
11152
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -10642,7 +11176,7 @@ placeholder="Name or address\u2026"
|
|
|
10642
11176
|
summary: "Drop-in switcher for the themes registered via `UNI_THEMES`: a select over `ThemeService.themeOptions` that applies the choice through `selectTheme` (so it persists across reloads like any other theme selection).",
|
|
10643
11177
|
description: "Drop-in switcher for the themes registered via `UNI_THEMES`: a select over `ThemeService.themeOptions` that applies the choice through `selectTheme` (so it persists across reloads like any other theme selection).",
|
|
10644
11178
|
category: "components",
|
|
10645
|
-
version: "11.
|
|
11179
|
+
version: "11.7.0",
|
|
10646
11180
|
bindings: {
|
|
10647
11181
|
angular: {
|
|
10648
11182
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -10700,7 +11234,7 @@ placeholder="Name or address\u2026"
|
|
|
10700
11234
|
summary: "Time field: a combobox over time options \u2014 the same listbox contract as uni-search-input and uni-tag-input.",
|
|
10701
11235
|
description: "Time field: a combobox over time options \u2014 the same listbox contract as uni-search-input and uni-tag-input. Type `3p`, `930` or `15:00`, or pick `3:00 PM` from the list; the form always gets 24-hour `'HH:mm'` (`hour12` affects display only). The list is assistive, not exhaustive: any parseable time commits, unless `slots` pins the choices (a slot picker) \u2014 then a typed time must match one. Unreadable or unavailable text stays in the field, flagged, with a `rejected` event.",
|
|
10702
11236
|
category: "forms",
|
|
10703
|
-
version: "11.
|
|
11237
|
+
version: "11.7.0",
|
|
10704
11238
|
bindings: {
|
|
10705
11239
|
angular: {
|
|
10706
11240
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -10915,7 +11449,7 @@ placeholder="Name or address\u2026"
|
|
|
10915
11449
|
summary: "",
|
|
10916
11450
|
description: "",
|
|
10917
11451
|
category: "forms",
|
|
10918
|
-
version: "11.
|
|
11452
|
+
version: "11.7.0",
|
|
10919
11453
|
bindings: {
|
|
10920
11454
|
angular: {
|
|
10921
11455
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -11177,7 +11711,7 @@ placeholder="Name or address\u2026"
|
|
|
11177
11711
|
summary: "",
|
|
11178
11712
|
description: "",
|
|
11179
11713
|
category: "feedback",
|
|
11180
|
-
version: "11.
|
|
11714
|
+
version: "11.7.0",
|
|
11181
11715
|
bindings: {
|
|
11182
11716
|
angular: {
|
|
11183
11717
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -11265,7 +11799,7 @@ placeholder="Name or address\u2026"
|
|
|
11265
11799
|
summary: 'A thin sequencer over one `uni-callout`: steps spotlight their targets, a footer walks Next/Back with dots-or-fraction progress, and `advanceOn` gates a step behind an interaction with its target (auto-advancing for clicks, unlocking Next otherwise \u2014 announced through one `role="status"` region).',
|
|
11266
11800
|
description: 'A thin sequencer over one `uni-callout`: steps spotlight their targets, a footer walks Next/Back with dots-or-fraction progress, and `advanceOn` gates a step behind an interaction with its target (auto-advancing for clicks, unlocking Next otherwise \u2014 announced through one `role="status"` region). Escape or the close button skips the tour and reports the step. `active` is a two-way model, so a tour is deep-linkable and inspectable; steps whose declared target cannot be resolved are skipped (with a dev warning) in the direction of travel rather than erroring.',
|
|
11267
11801
|
category: "components",
|
|
11268
|
-
version: "11.
|
|
11802
|
+
version: "11.7.0",
|
|
11269
11803
|
bindings: {
|
|
11270
11804
|
angular: {
|
|
11271
11805
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -11286,6 +11820,13 @@ placeholder="Name or address\u2026"
|
|
|
11286
11820
|
default: "null",
|
|
11287
11821
|
description: "The presented step index, or null when the tour is not running."
|
|
11288
11822
|
},
|
|
11823
|
+
{
|
|
11824
|
+
name: "progressStyle",
|
|
11825
|
+
kind: "input",
|
|
11826
|
+
type: "'dots' | 'fraction' | 'none'",
|
|
11827
|
+
required: false,
|
|
11828
|
+
description: "Per-instance override of the `progressStyle` theme option, so a one-off pointer can differ from the app's tours without a second theme entry. A one-step tour renders no progress whatever this says \u2014 one dot beside Done counts nothing."
|
|
11829
|
+
},
|
|
11289
11830
|
{
|
|
11290
11831
|
name: "nextLabel",
|
|
11291
11832
|
kind: "input",
|
|
@@ -11323,14 +11864,14 @@ placeholder="Name or address\u2026"
|
|
|
11323
11864
|
kind: "output",
|
|
11324
11865
|
type: "void",
|
|
11325
11866
|
required: false,
|
|
11326
|
-
description: ""
|
|
11867
|
+
description: "The first step of a run was presented \u2014 from `start()` or from a write to `active`."
|
|
11327
11868
|
},
|
|
11328
11869
|
{
|
|
11329
11870
|
name: "finished",
|
|
11330
11871
|
kind: "output",
|
|
11331
11872
|
type: "void",
|
|
11332
11873
|
required: false,
|
|
11333
|
-
description: ""
|
|
11874
|
+
description: "The run walked past its last step. Never emitted for a run in which no step was presented (empty `steps`, every target missing): a tour that never opened did not finish."
|
|
11334
11875
|
},
|
|
11335
11876
|
{
|
|
11336
11877
|
name: "variant",
|
|
@@ -11364,10 +11905,10 @@ placeholder="Name or address\u2026"
|
|
|
11364
11905
|
}
|
|
11365
11906
|
],
|
|
11366
11907
|
guidelines: {
|
|
11367
|
-
whenToUse: 'Tour sequences one `uni-callout` through a list of steps: spotlight targets,\ndim interludes, and interaction gates. A step with `advanceOn` locks Next\nuntil the user performs the gesture on its target \u2014 clicks auto-advance\n(the gesture is complete), anything else unlocks Next and announces it\nthrough one polite `role="status"` region, so nobody is yanked forward\nmid-typing. Steps whose declared target cannot be found are skipped in the\ndirection of travel with a dev warning, never an error. `active` is a\ntwo-way model, so tours are deep-linkable; Escape or the close button skips\nand reports the step through `skipped
|
|
11908
|
+
whenToUse: 'Tour sequences one `uni-callout` through a list of steps: spotlight targets,\ndim interludes, and interaction gates. A step with `advanceOn` locks Next\nuntil the user performs the gesture on its target \u2014 clicks auto-advance\n(the gesture is complete), anything else unlocks Next and announces it\nthrough one polite `role="status"` region, so nobody is yanked forward\nmid-typing. Steps whose declared target cannot be found are skipped in the\ndirection of travel with a dev warning, never an error. `active` is a\ntwo-way model, so tours are deep-linkable; Escape or the close button skips\nand reports the step through `skipped`.\n`started` fires when the first step of a run is presented \u2014 through `start()`\nor a write to `active` \u2014 and `finished` only for a run that presented at least\none step. A `start()` issued before `steps` are bound waits for them, so a host\nthat loads steps from a service and starts in the same turn still opens on the\nfirst one. A step without a `body` renders its title alone, and a one-step tour\ndraws no progress.',
|
|
11368
11909
|
dos: [
|
|
11369
11910
|
"Keep tours short and gate only steps whose gesture teaches something",
|
|
11370
|
-
"Handle `skipped`/`finished` and persist them \u2014 the tour holds no storage"
|
|
11911
|
+
"Handle `skipped`/`finished` and persist them \u2014 the tour holds no storage;"
|
|
11371
11912
|
],
|
|
11372
11913
|
donts: [
|
|
11373
11914
|
"Point steps at elements that may not exist without accepting the skip",
|
|
@@ -11392,7 +11933,7 @@ placeholder="Name or address\u2026"
|
|
|
11392
11933
|
summary: "",
|
|
11393
11934
|
description: "",
|
|
11394
11935
|
category: "layout",
|
|
11395
|
-
version: "11.
|
|
11936
|
+
version: "11.7.0",
|
|
11396
11937
|
bindings: {
|
|
11397
11938
|
angular: {
|
|
11398
11939
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -13814,6 +14355,18 @@ placeholder="Name or address\u2026"
|
|
|
13814
14355
|
DarkTheme: "lg"
|
|
13815
14356
|
}
|
|
13816
14357
|
},
|
|
14358
|
+
{
|
|
14359
|
+
id: "dialog.behavior.overscroll",
|
|
14360
|
+
value: "contain",
|
|
14361
|
+
type: "string",
|
|
14362
|
+
kind: "behavioral",
|
|
14363
|
+
target: "component-prop",
|
|
14364
|
+
appliesTo: "dialog",
|
|
14365
|
+
themeValues: {
|
|
14366
|
+
LightTheme: "contain",
|
|
14367
|
+
DarkTheme: "contain"
|
|
14368
|
+
}
|
|
14369
|
+
},
|
|
13817
14370
|
{
|
|
13818
14371
|
id: "dialog.behavior.elevation",
|
|
13819
14372
|
value: "dialog",
|
|
@@ -14570,6 +15123,42 @@ placeholder="Name or address\u2026"
|
|
|
14570
15123
|
DarkTheme: "reveal"
|
|
14571
15124
|
}
|
|
14572
15125
|
},
|
|
15126
|
+
{
|
|
15127
|
+
id: "expand.behavior.textRole",
|
|
15128
|
+
value: "label",
|
|
15129
|
+
type: "string",
|
|
15130
|
+
kind: "behavioral",
|
|
15131
|
+
target: "component-prop",
|
|
15132
|
+
appliesTo: "expand",
|
|
15133
|
+
themeValues: {
|
|
15134
|
+
LightTheme: "label",
|
|
15135
|
+
DarkTheme: "label"
|
|
15136
|
+
}
|
|
15137
|
+
},
|
|
15138
|
+
{
|
|
15139
|
+
id: "expand.behavior.sublabelRole",
|
|
15140
|
+
value: "caption",
|
|
15141
|
+
type: "string",
|
|
15142
|
+
kind: "behavioral",
|
|
15143
|
+
target: "component-prop",
|
|
15144
|
+
appliesTo: "expand",
|
|
15145
|
+
themeValues: {
|
|
15146
|
+
LightTheme: "caption",
|
|
15147
|
+
DarkTheme: "caption"
|
|
15148
|
+
}
|
|
15149
|
+
},
|
|
15150
|
+
{
|
|
15151
|
+
id: "expand.behavior.sublabelColor",
|
|
15152
|
+
value: "on-background-variant",
|
|
15153
|
+
type: "string",
|
|
15154
|
+
kind: "behavioral",
|
|
15155
|
+
target: "component-prop",
|
|
15156
|
+
appliesTo: "expand",
|
|
15157
|
+
themeValues: {
|
|
15158
|
+
LightTheme: "on-background-variant",
|
|
15159
|
+
DarkTheme: "on-background-variant"
|
|
15160
|
+
}
|
|
15161
|
+
},
|
|
14573
15162
|
{
|
|
14574
15163
|
id: "input.behavior.typeface",
|
|
14575
15164
|
value: "input",
|
|
@@ -15410,6 +15999,30 @@ placeholder="Name or address\u2026"
|
|
|
15410
15999
|
DarkTheme: "md"
|
|
15411
16000
|
}
|
|
15412
16001
|
},
|
|
16002
|
+
{
|
|
16003
|
+
id: "tagInput.behavior.chipVariant",
|
|
16004
|
+
value: "primary",
|
|
16005
|
+
type: "string",
|
|
16006
|
+
kind: "behavioral",
|
|
16007
|
+
target: "component-prop",
|
|
16008
|
+
appliesTo: "tagInput",
|
|
16009
|
+
themeValues: {
|
|
16010
|
+
LightTheme: "primary",
|
|
16011
|
+
DarkTheme: "primary"
|
|
16012
|
+
}
|
|
16013
|
+
},
|
|
16014
|
+
{
|
|
16015
|
+
id: "tagInput.behavior.chipTone",
|
|
16016
|
+
value: "soft",
|
|
16017
|
+
type: "string",
|
|
16018
|
+
kind: "behavioral",
|
|
16019
|
+
target: "component-prop",
|
|
16020
|
+
appliesTo: "tagInput",
|
|
16021
|
+
themeValues: {
|
|
16022
|
+
LightTheme: "soft",
|
|
16023
|
+
DarkTheme: "soft"
|
|
16024
|
+
}
|
|
16025
|
+
},
|
|
15413
16026
|
{
|
|
15414
16027
|
id: "tagInput.behavior.minInputWidth",
|
|
15415
16028
|
value: "12ch",
|
|
@@ -15482,6 +16095,114 @@ placeholder="Name or address\u2026"
|
|
|
15482
16095
|
DarkTheme: 8
|
|
15483
16096
|
}
|
|
15484
16097
|
},
|
|
16098
|
+
{
|
|
16099
|
+
id: "tagInput.behavior.typeface",
|
|
16100
|
+
value: "label",
|
|
16101
|
+
type: "string",
|
|
16102
|
+
kind: "behavioral",
|
|
16103
|
+
target: "component-prop",
|
|
16104
|
+
appliesTo: "tagInput",
|
|
16105
|
+
themeValues: {
|
|
16106
|
+
LightTheme: "label",
|
|
16107
|
+
DarkTheme: "label"
|
|
16108
|
+
}
|
|
16109
|
+
},
|
|
16110
|
+
{
|
|
16111
|
+
id: "tagInput.behavior.headingTypeface",
|
|
16112
|
+
value: "caption",
|
|
16113
|
+
type: "string",
|
|
16114
|
+
kind: "behavioral",
|
|
16115
|
+
target: "component-prop",
|
|
16116
|
+
appliesTo: "tagInput",
|
|
16117
|
+
themeValues: {
|
|
16118
|
+
LightTheme: "caption",
|
|
16119
|
+
DarkTheme: "caption"
|
|
16120
|
+
}
|
|
16121
|
+
},
|
|
16122
|
+
{
|
|
16123
|
+
id: "tagInput.behavior.listWidth",
|
|
16124
|
+
value: "anchor",
|
|
16125
|
+
type: "string",
|
|
16126
|
+
kind: "behavioral",
|
|
16127
|
+
target: "component-prop",
|
|
16128
|
+
appliesTo: "tagInput",
|
|
16129
|
+
themeValues: {
|
|
16130
|
+
LightTheme: "anchor",
|
|
16131
|
+
DarkTheme: "anchor"
|
|
16132
|
+
}
|
|
16133
|
+
},
|
|
16134
|
+
{
|
|
16135
|
+
id: "contactInput.behavior.avatarSize",
|
|
16136
|
+
value: "md",
|
|
16137
|
+
type: "string",
|
|
16138
|
+
kind: "behavioral",
|
|
16139
|
+
target: "component-prop",
|
|
16140
|
+
appliesTo: "contactInput",
|
|
16141
|
+
themeValues: {
|
|
16142
|
+
LightTheme: "md",
|
|
16143
|
+
DarkTheme: "md"
|
|
16144
|
+
}
|
|
16145
|
+
},
|
|
16146
|
+
{
|
|
16147
|
+
id: "contactInput.behavior.avatarVariant",
|
|
16148
|
+
value: "primary",
|
|
16149
|
+
type: "string",
|
|
16150
|
+
kind: "behavioral",
|
|
16151
|
+
target: "component-prop",
|
|
16152
|
+
appliesTo: "contactInput",
|
|
16153
|
+
themeValues: {
|
|
16154
|
+
LightTheme: "primary",
|
|
16155
|
+
DarkTheme: "primary"
|
|
16156
|
+
}
|
|
16157
|
+
},
|
|
16158
|
+
{
|
|
16159
|
+
id: "contactInput.behavior.nameTypeface",
|
|
16160
|
+
value: "body-2-short",
|
|
16161
|
+
type: "string",
|
|
16162
|
+
kind: "behavioral",
|
|
16163
|
+
target: "component-prop",
|
|
16164
|
+
appliesTo: "contactInput",
|
|
16165
|
+
themeValues: {
|
|
16166
|
+
LightTheme: "body-2-short",
|
|
16167
|
+
DarkTheme: "body-2-short"
|
|
16168
|
+
}
|
|
16169
|
+
},
|
|
16170
|
+
{
|
|
16171
|
+
id: "contactInput.behavior.detailTypeface",
|
|
16172
|
+
value: "caption",
|
|
16173
|
+
type: "string",
|
|
16174
|
+
kind: "behavioral",
|
|
16175
|
+
target: "component-prop",
|
|
16176
|
+
appliesTo: "contactInput",
|
|
16177
|
+
themeValues: {
|
|
16178
|
+
LightTheme: "caption",
|
|
16179
|
+
DarkTheme: "caption"
|
|
16180
|
+
}
|
|
16181
|
+
},
|
|
16182
|
+
{
|
|
16183
|
+
id: "contactInput.behavior.rowGap",
|
|
16184
|
+
value: "sm",
|
|
16185
|
+
type: "string",
|
|
16186
|
+
kind: "behavioral",
|
|
16187
|
+
target: "component-prop",
|
|
16188
|
+
appliesTo: "contactInput",
|
|
16189
|
+
themeValues: {
|
|
16190
|
+
LightTheme: "sm",
|
|
16191
|
+
DarkTheme: "sm"
|
|
16192
|
+
}
|
|
16193
|
+
},
|
|
16194
|
+
{
|
|
16195
|
+
id: "contactInput.behavior.chipAvatar",
|
|
16196
|
+
value: true,
|
|
16197
|
+
type: "boolean",
|
|
16198
|
+
kind: "behavioral",
|
|
16199
|
+
target: "component-prop",
|
|
16200
|
+
appliesTo: "contactInput",
|
|
16201
|
+
themeValues: {
|
|
16202
|
+
LightTheme: true,
|
|
16203
|
+
DarkTheme: true
|
|
16204
|
+
}
|
|
16205
|
+
},
|
|
15485
16206
|
{
|
|
15486
16207
|
id: "calendar.behavior.dayBorderRadius",
|
|
15487
16208
|
value: "max",
|
|
@@ -16142,6 +16863,18 @@ placeholder="Name or address\u2026"
|
|
|
16142
16863
|
DarkTheme: "sm"
|
|
16143
16864
|
}
|
|
16144
16865
|
},
|
|
16866
|
+
{
|
|
16867
|
+
id: "dataTable.behavior.sortIcon",
|
|
16868
|
+
value: "arrowUp",
|
|
16869
|
+
type: "string",
|
|
16870
|
+
kind: "behavioral",
|
|
16871
|
+
target: "component-prop",
|
|
16872
|
+
appliesTo: "dataTable",
|
|
16873
|
+
themeValues: {
|
|
16874
|
+
LightTheme: "arrowUp",
|
|
16875
|
+
DarkTheme: "arrowUp"
|
|
16876
|
+
}
|
|
16877
|
+
},
|
|
16145
16878
|
{
|
|
16146
16879
|
id: "dataTable.behavior.tdTextRole",
|
|
16147
16880
|
value: "title-small",
|
|
@@ -16286,6 +17019,18 @@ placeholder="Name or address\u2026"
|
|
|
16286
17019
|
DarkTheme: -10
|
|
16287
17020
|
}
|
|
16288
17021
|
},
|
|
17022
|
+
{
|
|
17023
|
+
id: "notificationBadge.behavior.typeface",
|
|
17024
|
+
value: "overline",
|
|
17025
|
+
type: "string",
|
|
17026
|
+
kind: "behavioral",
|
|
17027
|
+
target: "component-prop",
|
|
17028
|
+
appliesTo: "notificationBadge",
|
|
17029
|
+
themeValues: {
|
|
17030
|
+
LightTheme: "overline",
|
|
17031
|
+
DarkTheme: "overline"
|
|
17032
|
+
}
|
|
17033
|
+
},
|
|
16289
17034
|
{
|
|
16290
17035
|
id: "paginator.behavior.gap",
|
|
16291
17036
|
value: "xs",
|
|
@@ -17464,6 +18209,7 @@ placeholder="Name or address\u2026"
|
|
|
17464
18209
|
border: "quaternary",
|
|
17465
18210
|
padding: "sm",
|
|
17466
18211
|
inset: "lg",
|
|
18212
|
+
overscroll: "contain",
|
|
17467
18213
|
elevation: "dialog",
|
|
17468
18214
|
backdrop: "scrim",
|
|
17469
18215
|
motion: "panel"
|
|
@@ -17546,7 +18292,10 @@ placeholder="Name or address\u2026"
|
|
|
17546
18292
|
motion: "panel"
|
|
17547
18293
|
},
|
|
17548
18294
|
expand: {
|
|
17549
|
-
motion: "reveal"
|
|
18295
|
+
motion: "reveal",
|
|
18296
|
+
textRole: "label",
|
|
18297
|
+
sublabelRole: "caption",
|
|
18298
|
+
sublabelColor: "on-background-variant"
|
|
17550
18299
|
},
|
|
17551
18300
|
input: {
|
|
17552
18301
|
typeface: "input",
|
|
@@ -17639,12 +18388,25 @@ placeholder="Name or address\u2026"
|
|
|
17639
18388
|
tagInput: {
|
|
17640
18389
|
chipGap: "xs",
|
|
17641
18390
|
chipSize: "md",
|
|
18391
|
+
chipVariant: "primary",
|
|
18392
|
+
chipTone: "soft",
|
|
17642
18393
|
minInputWidth: "12ch",
|
|
17643
18394
|
listColor: "primary-surface",
|
|
17644
18395
|
listShadow: "menu",
|
|
17645
18396
|
listBorderRadius: "xs",
|
|
17646
18397
|
activeColor: "primary-container",
|
|
17647
|
-
maxSuggestions: 8
|
|
18398
|
+
maxSuggestions: 8,
|
|
18399
|
+
typeface: "label",
|
|
18400
|
+
headingTypeface: "caption",
|
|
18401
|
+
listWidth: "anchor"
|
|
18402
|
+
},
|
|
18403
|
+
contactInput: {
|
|
18404
|
+
avatarSize: "md",
|
|
18405
|
+
avatarVariant: "primary",
|
|
18406
|
+
nameTypeface: "body-2-short",
|
|
18407
|
+
detailTypeface: "caption",
|
|
18408
|
+
rowGap: "sm",
|
|
18409
|
+
chipAvatar: true
|
|
17648
18410
|
},
|
|
17649
18411
|
calendar: {
|
|
17650
18412
|
dayBorderRadius: "max",
|
|
@@ -17722,6 +18484,7 @@ placeholder="Name or address\u2026"
|
|
|
17722
18484
|
thVerticalBorder: "dotted",
|
|
17723
18485
|
thHorizontalBorder: "light",
|
|
17724
18486
|
thPadding: "sm",
|
|
18487
|
+
sortIcon: "arrowUp",
|
|
17725
18488
|
tdTextRole: "title-small",
|
|
17726
18489
|
tdColor: "primary-surface",
|
|
17727
18490
|
tdStickyColor: "primary-container",
|
|
@@ -17735,7 +18498,8 @@ placeholder="Name or address\u2026"
|
|
|
17735
18498
|
},
|
|
17736
18499
|
notificationBadge: {
|
|
17737
18500
|
borderRadius: "sm",
|
|
17738
|
-
offset: -10
|
|
18501
|
+
offset: -10,
|
|
18502
|
+
typeface: "overline"
|
|
17739
18503
|
},
|
|
17740
18504
|
paginator: {
|
|
17741
18505
|
gap: "xs",
|
|
@@ -18078,6 +18842,7 @@ placeholder="Name or address\u2026"
|
|
|
18078
18842
|
border: "quaternary",
|
|
18079
18843
|
padding: "sm",
|
|
18080
18844
|
inset: "lg",
|
|
18845
|
+
overscroll: "contain",
|
|
18081
18846
|
elevation: "dialog",
|
|
18082
18847
|
backdrop: "scrim",
|
|
18083
18848
|
motion: "panel"
|
|
@@ -18160,7 +18925,10 @@ placeholder="Name or address\u2026"
|
|
|
18160
18925
|
motion: "panel"
|
|
18161
18926
|
},
|
|
18162
18927
|
expand: {
|
|
18163
|
-
motion: "reveal"
|
|
18928
|
+
motion: "reveal",
|
|
18929
|
+
textRole: "label",
|
|
18930
|
+
sublabelRole: "caption",
|
|
18931
|
+
sublabelColor: "on-background-variant"
|
|
18164
18932
|
},
|
|
18165
18933
|
input: {
|
|
18166
18934
|
typeface: "input",
|
|
@@ -18253,12 +19021,25 @@ placeholder="Name or address\u2026"
|
|
|
18253
19021
|
tagInput: {
|
|
18254
19022
|
chipGap: "xs",
|
|
18255
19023
|
chipSize: "md",
|
|
19024
|
+
chipVariant: "primary",
|
|
19025
|
+
chipTone: "soft",
|
|
18256
19026
|
minInputWidth: "12ch",
|
|
18257
19027
|
listColor: "primary-surface",
|
|
18258
19028
|
listShadow: "menu",
|
|
18259
19029
|
listBorderRadius: "xs",
|
|
18260
19030
|
activeColor: "primary-container",
|
|
18261
|
-
maxSuggestions: 8
|
|
19031
|
+
maxSuggestions: 8,
|
|
19032
|
+
typeface: "label",
|
|
19033
|
+
headingTypeface: "caption",
|
|
19034
|
+
listWidth: "anchor"
|
|
19035
|
+
},
|
|
19036
|
+
contactInput: {
|
|
19037
|
+
avatarSize: "md",
|
|
19038
|
+
avatarVariant: "primary",
|
|
19039
|
+
nameTypeface: "body-2-short",
|
|
19040
|
+
detailTypeface: "caption",
|
|
19041
|
+
rowGap: "sm",
|
|
19042
|
+
chipAvatar: true
|
|
18262
19043
|
},
|
|
18263
19044
|
calendar: {
|
|
18264
19045
|
dayBorderRadius: "max",
|
|
@@ -18336,6 +19117,7 @@ placeholder="Name or address\u2026"
|
|
|
18336
19117
|
thVerticalBorder: "dotted",
|
|
18337
19118
|
thHorizontalBorder: "light",
|
|
18338
19119
|
thPadding: "sm",
|
|
19120
|
+
sortIcon: "arrowUp",
|
|
18339
19121
|
tdTextRole: "title-small",
|
|
18340
19122
|
tdColor: "primary-surface",
|
|
18341
19123
|
tdStickyColor: "primary-container",
|
|
@@ -18349,7 +19131,8 @@ placeholder="Name or address\u2026"
|
|
|
18349
19131
|
},
|
|
18350
19132
|
notificationBadge: {
|
|
18351
19133
|
borderRadius: "sm",
|
|
18352
|
-
offset: -10
|
|
19134
|
+
offset: -10,
|
|
19135
|
+
typeface: "overline"
|
|
18353
19136
|
},
|
|
18354
19137
|
paginator: {
|
|
18355
19138
|
gap: "xs",
|
|
@@ -18457,6 +19240,36 @@ placeholder="Name or address\u2026"
|
|
|
18457
19240
|
{
|
|
18458
19241
|
package: "@uni-design-system/uni-angular",
|
|
18459
19242
|
releases: [
|
|
19243
|
+
{
|
|
19244
|
+
version: "11.7.0",
|
|
19245
|
+
entries: [
|
|
19246
|
+
{
|
|
19247
|
+
bump: "minor",
|
|
19248
|
+
title: "Data table refinements from the Wellsourced adoption.",
|
|
19249
|
+
body: '- **Phantom scrollbar fixed**: a right-aligned last column no longer grows a horizontal scrollbar. The sort arrow now sits on the leading side of the label in right-aligned columns, and header cells clip the arrow instead of letting it widen the scroll area.\n- **`ColumnDefinition`**: `width` (a preferred column width) and `sortable` (default `true`; `false` renders a plain heading with no sort button or `aria-sort`).\n- **Cell templates** receive the row as `$implicit` and its `index`, alongside the row\'s fields by name, so `let-row` works and existing `let-name="name"` templates are unchanged. The context type is exported as `UniDataTableCellContext<T>`.\n- **`dataTable` theme options**: `thPaddingVertical` / `thPaddingHorizontal` and `tdPaddingVertical` / `tdPaddingHorizontal` override `thPadding` / `tdPadding` per axis; `sortIcon` picks the sort glyph (default `arrowUp`).\n- **`uni-sort-header`**: `iconName` and `align` inputs.',
|
|
19250
|
+
commit: "ffe2080"
|
|
19251
|
+
},
|
|
19252
|
+
{
|
|
19253
|
+
bump: "minor",
|
|
19254
|
+
title: 'Close the first two tiers of the Wellsourced change-request queue: six silent-failure fixes and five "the theme could not reach it" gaps, all additive.',
|
|
19255
|
+
body: "- **`uni-select`**: a value no option stands for \u2014 `''`, a stale id, or `null` with no `placeholder` \u2014 now renders as empty instead of as the first option. A native `<select>` with no selected `<option>` shows its first entry, so the field used to display a choice the model did not hold. A hidden \"nothing selected\" row is rendered whenever the model is unmatched (the placeholder, when there is one), and a dev-mode warning names a bound value that matches no option once the options have loaded.\n- **`uni-button`, `uni-icon-button`**: `disabled` is accepted as an alias of `disable`. The native name \u2014 the one every other Uni control uses \u2014 used to land on the DOM property, where the host's own attribute binding removed it on the first pass, so a button that had to start disabled rendered enabled with no error. `icon-button`'s `disable` and `loading` gain the `booleanAttribute` transform `text-button`'s already had: `<button icon-button disable>` works, and an optional chain (`[disable]=\"x()?.saving\"`) no longer needs a `!!`.\n- **`uni-tour`**: `finished` is only emitted for a run that presented at least one step, and `started` fires when the first step is presented \u2014 from `start()` or from a write to `active` \u2014 rather than at the call. A `start()` issued before `steps` are bound waits for them, so a host that loads steps from a service and starts in the same turn opens on the first one instead of reporting a finish for a tour that never opened. A one-step tour draws no progress, `progressStyle` accepts `'none'` and has a per-instance input, and a step may omit `body`.\n- **`uni-notification-badge`**: the `typeface` option is read (it was declared and never wired), the host is `inline-flex` so it no longer drops a wrapped link under its flex siblings, and the disc takes its size from a new `sizes` block (`sm` 14 / `md` 16 / `lg` 20px, keyed by `size`; `lg` is the default and the 20px it always drew). A count may widen rather than clip inside a fixed square. `offset` documents how it should scale with the wrapped element.\n- **`uni-contact-input`**: forwards `parse`; a `chipAvatar` input and theme option (default `true`) draw the chip as the name alone when the initials would only repeat it. **`uni-tag-input`** under `preset=\"email\"` now splits a paste on whitespace too \u2014 a column copied from a spreadsheet becomes one chip per address \u2014 while keeping the words of `Name <address>` together; and `openOnFocus` opens the list when suggestions arrive _after_ focus, so a field focused while its contacts are still loading shows them the moment they land (unless Escape dismissed the list in between).\n- **`uni-toggle`**: the hidden native input uses the shared `visuallyHidden` recipe \u2014 the last hidden helper in the library still on a private `position: absolute`.\n- **`uni-expand-toggle`**: the labelled trigger's type is themable through the `expand` entry \u2014 `textRole` / `textColor` and `sublabelRole` / `sublabelColor`, defaulting to the `label` / `caption` it hardcoded. The checkbox finding from 11.2.0, closed here.\n- **`uni-input`, `uni-textarea`, `uni-number-input`**: `unframed` drops the field chrome (border, fill, radius, shadow, inset and focus treatment) and renders the bare control, the same meaning it has on `uni-tag-input`; it lives on `uni-input-box` and is forwarded. `uni-input` also gains `align`, as `uni-number-input` has. (`labelHidden` was asked for too: the text fields never draw their `label` \u2014 it is the accessible name only \u2014 so there is nothing to hide.)\n- **`uni-dialog`**: an `overscroll` theme option (`auto` / `contain` / `none`, default `contain`, which is what the body hardcoded) for the scrolling body row.\n- **`uni-scroll-area`**: `maxHeight` lets the area grow with its content up to a cap and then scroll; `fill` takes the room a flex-column parent leaves. Either makes it the body of a dialog without a wrapper. With neither (or `height`) the layout is unchanged.\n- **`uni-combobox`**: `emptyValue` is what a clear writes \u2014 `null` by default, `''` for a field bound to a plain `string` schema, whose readers no longer meet a `null` after the \u2715.\n\nTheme-level additions in uni-core's base theme: `notificationBadge.sizes` and `options.typeface`, `expand.options.textRole` / `sublabelRole` / `sublabelColor`, `dialog.options.overscroll`, `contactInput.options.chipAvatar`. Every default reproduces what the component previously hardcoded.",
|
|
19256
|
+
commit: "9ff14bc"
|
|
19257
|
+
}
|
|
19258
|
+
],
|
|
19259
|
+
dependencyBumps: []
|
|
19260
|
+
},
|
|
19261
|
+
{
|
|
19262
|
+
version: "11.6.0",
|
|
19263
|
+
entries: [
|
|
19264
|
+
{
|
|
19265
|
+
bump: "minor",
|
|
19266
|
+
title: "Add `uni-contact-input`, a recipient field for picking people, and close the gaps that kept `uni-tag-input` from being an email client's To row.",
|
|
19267
|
+
body: "- **`uni-contact-input`** (new): chips plus a contact list that opens on focus, filters by name or address, groups under headings, and draws each row as a person (avatar, name, address, note). ArrowDown and Enter pick a match (`autoHighlight` makes Enter or Tab pick the first one without arrowing), Backspace removes the last person, and a typo stays in the field while `(rejected)` reports it. `allowCustom` controls whether typed addresses are accepted; `unframed` drops the field chrome. Themed through the new `contactInput` entry.\n- **`uni-tag-input`**: `uniTagSuggestion` row template; `group` headings and `avatarName` on suggestions; `openOnFocus`, `autoHighlight`, `backspaceRemoves`, `keepInvalidText`, `unframed` and `autocomplete` inputs; an undebounced `draftChange` output; a public `focus()`; `chipVariant` and `chipTone` theme options, so a theme sets the chip look once (`tagVariant` / `tagTone` still override per field). The default suggestion row now paints `description` (previously screen-reader only) and an avatar when one is given. The field opts out of password managers, and the first Escape that closes the list no longer reaches an enclosing dialog.\n- **Listbox popups** (`tagInput`, `combobox`, `searchInput`, `timeInput`): `typeface` and `listWidth` theme options. Defaults are unchanged (`label`, field width).\n- **`uni-combobox`, `uni-search-input`**: `openOnFocus` input.\n- **`uni-tag`**: an avatar image that fails to load now falls back to the `avatarName` initials.",
|
|
19268
|
+
commit: "3a41065"
|
|
19269
|
+
}
|
|
19270
|
+
],
|
|
19271
|
+
dependencyBumps: []
|
|
19272
|
+
},
|
|
18460
19273
|
{
|
|
18461
19274
|
version: "11.5.0",
|
|
18462
19275
|
entries: [
|
|
@@ -19403,6 +20216,36 @@ placeholder="Name or address\u2026"
|
|
|
19403
20216
|
{
|
|
19404
20217
|
package: "@uni-design-system/uni-core",
|
|
19405
20218
|
releases: [
|
|
20219
|
+
{
|
|
20220
|
+
version: "11.7.0",
|
|
20221
|
+
entries: [
|
|
20222
|
+
{
|
|
20223
|
+
bump: "minor",
|
|
20224
|
+
title: "Data table refinements from the Wellsourced adoption.",
|
|
20225
|
+
body: '- **Phantom scrollbar fixed**: a right-aligned last column no longer grows a horizontal scrollbar. The sort arrow now sits on the leading side of the label in right-aligned columns, and header cells clip the arrow instead of letting it widen the scroll area.\n- **`ColumnDefinition`**: `width` (a preferred column width) and `sortable` (default `true`; `false` renders a plain heading with no sort button or `aria-sort`).\n- **Cell templates** receive the row as `$implicit` and its `index`, alongside the row\'s fields by name, so `let-row` works and existing `let-name="name"` templates are unchanged. The context type is exported as `UniDataTableCellContext<T>`.\n- **`dataTable` theme options**: `thPaddingVertical` / `thPaddingHorizontal` and `tdPaddingVertical` / `tdPaddingHorizontal` override `thPadding` / `tdPadding` per axis; `sortIcon` picks the sort glyph (default `arrowUp`).\n- **`uni-sort-header`**: `iconName` and `align` inputs.',
|
|
20226
|
+
commit: "ffe2080"
|
|
20227
|
+
},
|
|
20228
|
+
{
|
|
20229
|
+
bump: "minor",
|
|
20230
|
+
title: 'Close the first two tiers of the Wellsourced change-request queue: six silent-failure fixes and five "the theme could not reach it" gaps, all additive.',
|
|
20231
|
+
body: "- **`uni-select`**: a value no option stands for \u2014 `''`, a stale id, or `null` with no `placeholder` \u2014 now renders as empty instead of as the first option. A native `<select>` with no selected `<option>` shows its first entry, so the field used to display a choice the model did not hold. A hidden \"nothing selected\" row is rendered whenever the model is unmatched (the placeholder, when there is one), and a dev-mode warning names a bound value that matches no option once the options have loaded.\n- **`uni-button`, `uni-icon-button`**: `disabled` is accepted as an alias of `disable`. The native name \u2014 the one every other Uni control uses \u2014 used to land on the DOM property, where the host's own attribute binding removed it on the first pass, so a button that had to start disabled rendered enabled with no error. `icon-button`'s `disable` and `loading` gain the `booleanAttribute` transform `text-button`'s already had: `<button icon-button disable>` works, and an optional chain (`[disable]=\"x()?.saving\"`) no longer needs a `!!`.\n- **`uni-tour`**: `finished` is only emitted for a run that presented at least one step, and `started` fires when the first step is presented \u2014 from `start()` or from a write to `active` \u2014 rather than at the call. A `start()` issued before `steps` are bound waits for them, so a host that loads steps from a service and starts in the same turn opens on the first one instead of reporting a finish for a tour that never opened. A one-step tour draws no progress, `progressStyle` accepts `'none'` and has a per-instance input, and a step may omit `body`.\n- **`uni-notification-badge`**: the `typeface` option is read (it was declared and never wired), the host is `inline-flex` so it no longer drops a wrapped link under its flex siblings, and the disc takes its size from a new `sizes` block (`sm` 14 / `md` 16 / `lg` 20px, keyed by `size`; `lg` is the default and the 20px it always drew). A count may widen rather than clip inside a fixed square. `offset` documents how it should scale with the wrapped element.\n- **`uni-contact-input`**: forwards `parse`; a `chipAvatar` input and theme option (default `true`) draw the chip as the name alone when the initials would only repeat it. **`uni-tag-input`** under `preset=\"email\"` now splits a paste on whitespace too \u2014 a column copied from a spreadsheet becomes one chip per address \u2014 while keeping the words of `Name <address>` together; and `openOnFocus` opens the list when suggestions arrive _after_ focus, so a field focused while its contacts are still loading shows them the moment they land (unless Escape dismissed the list in between).\n- **`uni-toggle`**: the hidden native input uses the shared `visuallyHidden` recipe \u2014 the last hidden helper in the library still on a private `position: absolute`.\n- **`uni-expand-toggle`**: the labelled trigger's type is themable through the `expand` entry \u2014 `textRole` / `textColor` and `sublabelRole` / `sublabelColor`, defaulting to the `label` / `caption` it hardcoded. The checkbox finding from 11.2.0, closed here.\n- **`uni-input`, `uni-textarea`, `uni-number-input`**: `unframed` drops the field chrome (border, fill, radius, shadow, inset and focus treatment) and renders the bare control, the same meaning it has on `uni-tag-input`; it lives on `uni-input-box` and is forwarded. `uni-input` also gains `align`, as `uni-number-input` has. (`labelHidden` was asked for too: the text fields never draw their `label` \u2014 it is the accessible name only \u2014 so there is nothing to hide.)\n- **`uni-dialog`**: an `overscroll` theme option (`auto` / `contain` / `none`, default `contain`, which is what the body hardcoded) for the scrolling body row.\n- **`uni-scroll-area`**: `maxHeight` lets the area grow with its content up to a cap and then scroll; `fill` takes the room a flex-column parent leaves. Either makes it the body of a dialog without a wrapper. With neither (or `height`) the layout is unchanged.\n- **`uni-combobox`**: `emptyValue` is what a clear writes \u2014 `null` by default, `''` for a field bound to a plain `string` schema, whose readers no longer meet a `null` after the \u2715.\n\nTheme-level additions in uni-core's base theme: `notificationBadge.sizes` and `options.typeface`, `expand.options.textRole` / `sublabelRole` / `sublabelColor`, `dialog.options.overscroll`, `contactInput.options.chipAvatar`. Every default reproduces what the component previously hardcoded.",
|
|
20232
|
+
commit: "9ff14bc"
|
|
20233
|
+
}
|
|
20234
|
+
],
|
|
20235
|
+
dependencyBumps: []
|
|
20236
|
+
},
|
|
20237
|
+
{
|
|
20238
|
+
version: "11.6.0",
|
|
20239
|
+
entries: [
|
|
20240
|
+
{
|
|
20241
|
+
bump: "minor",
|
|
20242
|
+
title: "Add `uni-contact-input`, a recipient field for picking people, and close the gaps that kept `uni-tag-input` from being an email client's To row.",
|
|
20243
|
+
body: "- **`uni-contact-input`** (new): chips plus a contact list that opens on focus, filters by name or address, groups under headings, and draws each row as a person (avatar, name, address, note). ArrowDown and Enter pick a match (`autoHighlight` makes Enter or Tab pick the first one without arrowing), Backspace removes the last person, and a typo stays in the field while `(rejected)` reports it. `allowCustom` controls whether typed addresses are accepted; `unframed` drops the field chrome. Themed through the new `contactInput` entry.\n- **`uni-tag-input`**: `uniTagSuggestion` row template; `group` headings and `avatarName` on suggestions; `openOnFocus`, `autoHighlight`, `backspaceRemoves`, `keepInvalidText`, `unframed` and `autocomplete` inputs; an undebounced `draftChange` output; a public `focus()`; `chipVariant` and `chipTone` theme options, so a theme sets the chip look once (`tagVariant` / `tagTone` still override per field). The default suggestion row now paints `description` (previously screen-reader only) and an avatar when one is given. The field opts out of password managers, and the first Escape that closes the list no longer reaches an enclosing dialog.\n- **Listbox popups** (`tagInput`, `combobox`, `searchInput`, `timeInput`): `typeface` and `listWidth` theme options. Defaults are unchanged (`label`, field width).\n- **`uni-combobox`, `uni-search-input`**: `openOnFocus` input.\n- **`uni-tag`**: an avatar image that fails to load now falls back to the `avatarName` initials.",
|
|
20244
|
+
commit: "3a41065"
|
|
20245
|
+
}
|
|
20246
|
+
],
|
|
20247
|
+
dependencyBumps: []
|
|
20248
|
+
},
|
|
19406
20249
|
{
|
|
19407
20250
|
version: "11.5.0",
|
|
19408
20251
|
entries: [
|
|
@@ -20074,6 +20917,16 @@ placeholder="Name or address\u2026"
|
|
|
20074
20917
|
{
|
|
20075
20918
|
package: "@uni-design-system/uni-react",
|
|
20076
20919
|
releases: [
|
|
20920
|
+
{
|
|
20921
|
+
version: "11.7.0",
|
|
20922
|
+
entries: [],
|
|
20923
|
+
dependencyBumps: []
|
|
20924
|
+
},
|
|
20925
|
+
{
|
|
20926
|
+
version: "11.6.0",
|
|
20927
|
+
entries: [],
|
|
20928
|
+
dependencyBumps: []
|
|
20929
|
+
},
|
|
20077
20930
|
{
|
|
20078
20931
|
version: "11.5.0",
|
|
20079
20932
|
entries: [],
|
|
@@ -20380,6 +21233,16 @@ placeholder="Name or address\u2026"
|
|
|
20380
21233
|
{
|
|
20381
21234
|
package: "@uni-design-system/uni-mcp",
|
|
20382
21235
|
releases: [
|
|
21236
|
+
{
|
|
21237
|
+
version: "11.7.0",
|
|
21238
|
+
entries: [],
|
|
21239
|
+
dependencyBumps: []
|
|
21240
|
+
},
|
|
21241
|
+
{
|
|
21242
|
+
version: "11.6.0",
|
|
21243
|
+
entries: [],
|
|
21244
|
+
dependencyBumps: []
|
|
21245
|
+
},
|
|
20383
21246
|
{
|
|
20384
21247
|
version: "11.5.0",
|
|
20385
21248
|
entries: [
|
|
@@ -20644,7 +21507,7 @@ placeholder="Name or address\u2026"
|
|
|
20644
21507
|
summary: "Returns a document-unique id for wiring ARIA relationships (aria-controls, aria-describedby, aria-labelledby, ...).",
|
|
20645
21508
|
description: "Returns a document-unique id for wiring ARIA relationships (aria-controls, aria-describedby, aria-labelledby, ...).",
|
|
20646
21509
|
members: [],
|
|
20647
|
-
version: "11.
|
|
21510
|
+
version: "11.7.0"
|
|
20648
21511
|
},
|
|
20649
21512
|
{
|
|
20650
21513
|
id: "focusable-selector",
|
|
@@ -20656,7 +21519,7 @@ placeholder="Name or address\u2026"
|
|
|
20656
21519
|
summary: "Selector matching natively focusable elements.",
|
|
20657
21520
|
description: "Selector matching natively focusable elements. Used to locate the interactive element inside a projected trigger so ARIA attributes land on the element that actually receives focus.",
|
|
20658
21521
|
members: [],
|
|
20659
|
-
version: "11.
|
|
21522
|
+
version: "11.7.0"
|
|
20660
21523
|
},
|
|
20661
21524
|
{
|
|
20662
21525
|
id: "resolve-focus-target",
|
|
@@ -20668,7 +21531,7 @@ placeholder="Name or address\u2026"
|
|
|
20668
21531
|
summary: "Resolves the element that should carry ARIA state for a trigger: the element itself when focusable, otherwise its first focusable descendant.",
|
|
20669
21532
|
description: "Resolves the element that should carry ARIA state for a trigger: the element itself when focusable, otherwise its first focusable descendant.",
|
|
20670
21533
|
members: [],
|
|
20671
|
-
version: "11.
|
|
21534
|
+
version: "11.7.0"
|
|
20672
21535
|
},
|
|
20673
21536
|
{
|
|
20674
21537
|
id: "visually-hidden",
|
|
@@ -20680,7 +21543,7 @@ placeholder="Name or address\u2026"
|
|
|
20680
21543
|
summary: "Visually hides content while keeping it available to screen readers.",
|
|
20681
21544
|
description: "Visually hides content while keeping it available to screen readers. Use for text alternatives (e.g. badge counts, icon-only affordances). `fixed`, not `absolute`, and that is load-bearing. An absolutely positioned box resolves its containing block to the nearest *positioned* ancestor \u2014 which, since the controls emitting these spans are `position: static`, is whatever positioned box happens to be above them in the consumer's layout, often several scroll containers up. The span then skips every intervening `overflow: auto` and lands in that distant ancestor's scrollable overflow, turning 1x1 of invisible text into real scrollable distance in a box that never opted into scrolling. A fixed box's containing block is the viewport, so it joins no ancestor's scrollable overflow at all. Caveat: inside a `transform`ed (or `filter`ed/`contain`ed) ancestor a fixed box re-anchors to that ancestor. Harmless here \u2014 the element is 1x1 and clipped to nothing, so where it lands never matters, only what it overflows.",
|
|
20682
21545
|
members: [],
|
|
20683
|
-
version: "11.
|
|
21546
|
+
version: "11.7.0"
|
|
20684
21547
|
},
|
|
20685
21548
|
{
|
|
20686
21549
|
id: "motion-safe",
|
|
@@ -20692,7 +21555,7 @@ placeholder="Name or address\u2026"
|
|
|
20692
21555
|
summary: "Wraps animation/transition styles so they only apply when the user has not requested reduced motion (WCAG 2.3.3).",
|
|
20693
21556
|
description: "Wraps animation/transition styles so they only apply when the user has not requested reduced motion (WCAG 2.3.3).",
|
|
20694
21557
|
members: [],
|
|
20695
|
-
version: "11.
|
|
21558
|
+
version: "11.7.0"
|
|
20696
21559
|
},
|
|
20697
21560
|
{
|
|
20698
21561
|
id: "announcer",
|
|
@@ -20717,7 +21580,7 @@ placeholder="Name or address\u2026"
|
|
|
20717
21580
|
description: "Announce `text`, even when it repeats what was just announced."
|
|
20718
21581
|
}
|
|
20719
21582
|
],
|
|
20720
|
-
version: "11.
|
|
21583
|
+
version: "11.7.0"
|
|
20721
21584
|
},
|
|
20722
21585
|
{
|
|
20723
21586
|
id: "create-announcer",
|
|
@@ -20729,7 +21592,7 @@ placeholder="Name or address\u2026"
|
|
|
20729
21592
|
summary: "A polite live region's text, for the running commentary a form control owes a screen reader: commits, clears, refused entries, result counts \u2014 changes a sighted user sees but that are otherwise silent.",
|
|
20730
21593
|
description: "A polite live region's text, for the running commentary a form control owes a screen reader: commits, clears, refused entries, result counts \u2014 changes a sighted user sees but that are otherwise silent. Extracted because five controls (`uni-combobox`, `uni-tag-input`, `uni-time-input`, `uni-date-input`, `uni-calendar`) carried byte-identical copies, including the repeat trick below \u2014 the kind of subtlety that is quietly dropped when the sixth control hand-rolls its own. Announcing the same text twice must still be heard: assistive tech reads a live region when its content *changes*, so setting an identical string is a no-op and the second \"No match.\" would be silent. A trailing space breaks the equality without changing a word of what is read. Successive repeats alternate between the padded and unpadded form, so nothing accumulates. Deliberately holds no DOM and no styling: the region belongs to the component's own template, where its placement and visually-hidden class are already the component's business.",
|
|
20731
21594
|
members: [],
|
|
20732
|
-
version: "11.
|
|
21595
|
+
version: "11.7.0"
|
|
20733
21596
|
},
|
|
20734
21597
|
{
|
|
20735
21598
|
id: "uni-date",
|
|
@@ -20741,7 +21604,7 @@ placeholder="Name or address\u2026"
|
|
|
20741
21604
|
summary: "A calendar date, `'YYYY-MM-DD'`.",
|
|
20742
21605
|
description: "A calendar date, `'YYYY-MM-DD'`.",
|
|
20743
21606
|
members: [],
|
|
20744
|
-
version: "11.
|
|
21607
|
+
version: "11.7.0"
|
|
20745
21608
|
},
|
|
20746
21609
|
{
|
|
20747
21610
|
id: "uni-time",
|
|
@@ -20753,7 +21616,7 @@ placeholder="Name or address\u2026"
|
|
|
20753
21616
|
summary: "A wall-clock time, `'HH:mm'` (24-hour).",
|
|
20754
21617
|
description: "A wall-clock time, `'HH:mm'` (24-hour). Display format is separate.",
|
|
20755
21618
|
members: [],
|
|
20756
|
-
version: "11.
|
|
21619
|
+
version: "11.7.0"
|
|
20757
21620
|
},
|
|
20758
21621
|
{
|
|
20759
21622
|
id: "uni-date-time",
|
|
@@ -20765,7 +21628,7 @@ placeholder="Name or address\u2026"
|
|
|
20765
21628
|
summary: "A combined date and time, `'YYYY-MM-DDTHH:mm'`.",
|
|
20766
21629
|
description: "A combined date and time, `'YYYY-MM-DDTHH:mm'`.",
|
|
20767
21630
|
members: [],
|
|
20768
|
-
version: "11.
|
|
21631
|
+
version: "11.7.0"
|
|
20769
21632
|
},
|
|
20770
21633
|
{
|
|
20771
21634
|
id: "uni-date-range",
|
|
@@ -20790,7 +21653,7 @@ placeholder="Name or address\u2026"
|
|
|
20790
21653
|
description: ""
|
|
20791
21654
|
}
|
|
20792
21655
|
],
|
|
20793
|
-
version: "11.
|
|
21656
|
+
version: "11.7.0"
|
|
20794
21657
|
},
|
|
20795
21658
|
{
|
|
20796
21659
|
id: "iso-date",
|
|
@@ -20802,7 +21665,7 @@ placeholder="Name or address\u2026"
|
|
|
20802
21665
|
summary: "`(2026, 8, 5)` \u2192 `'2026-08-05'`.",
|
|
20803
21666
|
description: "`(2026, 8, 5)` \u2192 `'2026-08-05'`. Does not validate \u2014 see `isValidDate`.",
|
|
20804
21667
|
members: [],
|
|
20805
|
-
version: "11.
|
|
21668
|
+
version: "11.7.0"
|
|
20806
21669
|
},
|
|
20807
21670
|
{
|
|
20808
21671
|
id: "is-valid-date",
|
|
@@ -20814,7 +21677,7 @@ placeholder="Name or address\u2026"
|
|
|
20814
21677
|
summary: "The ISO date when the parts form a real calendar day, else `null`.",
|
|
20815
21678
|
description: "The ISO date when the parts form a real calendar day, else `null`.",
|
|
20816
21679
|
members: [],
|
|
20817
|
-
version: "11.
|
|
21680
|
+
version: "11.7.0"
|
|
20818
21681
|
},
|
|
20819
21682
|
{
|
|
20820
21683
|
id: "days-in-month",
|
|
@@ -20826,7 +21689,7 @@ placeholder="Name or address\u2026"
|
|
|
20826
21689
|
summary: "Days in a month, leap-year aware.",
|
|
20827
21690
|
description: "Days in a month, leap-year aware.",
|
|
20828
21691
|
members: [],
|
|
20829
|
-
version: "11.
|
|
21692
|
+
version: "11.7.0"
|
|
20830
21693
|
},
|
|
20831
21694
|
{
|
|
20832
21695
|
id: "add-days",
|
|
@@ -20838,7 +21701,7 @@ placeholder="Name or address\u2026"
|
|
|
20838
21701
|
summary: "",
|
|
20839
21702
|
description: "",
|
|
20840
21703
|
members: [],
|
|
20841
|
-
version: "11.
|
|
21704
|
+
version: "11.7.0"
|
|
20842
21705
|
},
|
|
20843
21706
|
{
|
|
20844
21707
|
id: "add-months",
|
|
@@ -20850,7 +21713,7 @@ placeholder="Name or address\u2026"
|
|
|
20850
21713
|
summary: "Same day \xB1 n months, clamping the day to the target month's length.",
|
|
20851
21714
|
description: "Same day \xB1 n months, clamping the day to the target month's length.",
|
|
20852
21715
|
members: [],
|
|
20853
|
-
version: "11.
|
|
21716
|
+
version: "11.7.0"
|
|
20854
21717
|
},
|
|
20855
21718
|
{
|
|
20856
21719
|
id: "day-of-week",
|
|
@@ -20862,7 +21725,7 @@ placeholder="Name or address\u2026"
|
|
|
20862
21725
|
summary: "Day of week, 0 = Sunday \u2026 6 = Saturday.",
|
|
20863
21726
|
description: "Day of week, 0 = Sunday \u2026 6 = Saturday.",
|
|
20864
21727
|
members: [],
|
|
20865
|
-
version: "11.
|
|
21728
|
+
version: "11.7.0"
|
|
20866
21729
|
},
|
|
20867
21730
|
{
|
|
20868
21731
|
id: "month-of",
|
|
@@ -20874,7 +21737,7 @@ placeholder="Name or address\u2026"
|
|
|
20874
21737
|
summary: "`'2026-08-20'` \u2192 `'2026-08'`.",
|
|
20875
21738
|
description: "`'2026-08-20'` \u2192 `'2026-08'`.",
|
|
20876
21739
|
members: [],
|
|
20877
|
-
version: "11.
|
|
21740
|
+
version: "11.7.0"
|
|
20878
21741
|
},
|
|
20879
21742
|
{
|
|
20880
21743
|
id: "today-iso",
|
|
@@ -20886,7 +21749,7 @@ placeholder="Name or address\u2026"
|
|
|
20886
21749
|
summary: "Today as a local-wall-clock ISO date (the one place local time matters).",
|
|
20887
21750
|
description: "Today as a local-wall-clock ISO date (the one place local time matters).",
|
|
20888
21751
|
members: [],
|
|
20889
|
-
version: "11.
|
|
21752
|
+
version: "11.7.0"
|
|
20890
21753
|
},
|
|
20891
21754
|
{
|
|
20892
21755
|
id: "inclusive-day-count",
|
|
@@ -20898,7 +21761,7 @@ placeholder="Name or address\u2026"
|
|
|
20898
21761
|
summary: "Inclusive day count of a range: `('-20', '-24')` \u2192 5.",
|
|
20899
21762
|
description: "Inclusive day count of a range: `('-20', '-24')` \u2192 5.",
|
|
20900
21763
|
members: [],
|
|
20901
|
-
version: "11.
|
|
21764
|
+
version: "11.7.0"
|
|
20902
21765
|
},
|
|
20903
21766
|
{
|
|
20904
21767
|
id: "uni-month-grid-cell",
|
|
@@ -20923,7 +21786,7 @@ placeholder="Name or address\u2026"
|
|
|
20923
21786
|
description: "True for leading/trailing cells that belong to the adjacent months."
|
|
20924
21787
|
}
|
|
20925
21788
|
],
|
|
20926
|
-
version: "11.
|
|
21789
|
+
version: "11.7.0"
|
|
20927
21790
|
},
|
|
20928
21791
|
{
|
|
20929
21792
|
id: "build-month-grid",
|
|
@@ -20935,7 +21798,7 @@ placeholder="Name or address\u2026"
|
|
|
20935
21798
|
summary: "The week matrix a calendar renders: full weeks covering `'YYYY-MM'`, starting on `weekStart` (0 = Sunday).",
|
|
20936
21799
|
description: "The week matrix a calendar renders: full weeks covering `'YYYY-MM'`, starting on `weekStart` (0 = Sunday). Outside cells are always present so showing or hiding them is a pure render decision.",
|
|
20937
21800
|
members: [],
|
|
20938
|
-
version: "11.
|
|
21801
|
+
version: "11.7.0"
|
|
20939
21802
|
},
|
|
20940
21803
|
{
|
|
20941
21804
|
id: "format-date",
|
|
@@ -20947,7 +21810,7 @@ placeholder="Name or address\u2026"
|
|
|
20947
21810
|
summary: "",
|
|
20948
21811
|
description: "",
|
|
20949
21812
|
members: [],
|
|
20950
|
-
version: "11.
|
|
21813
|
+
version: "11.7.0"
|
|
20951
21814
|
},
|
|
20952
21815
|
{
|
|
20953
21816
|
id: "format-month-heading",
|
|
@@ -20959,7 +21822,7 @@ placeholder="Name or address\u2026"
|
|
|
20959
21822
|
summary: "`'2026-08'` \u2192 `'August 2026'` in the locale.",
|
|
20960
21823
|
description: "`'2026-08'` \u2192 `'August 2026'` in the locale.",
|
|
20961
21824
|
members: [],
|
|
20962
|
-
version: "11.
|
|
21825
|
+
version: "11.7.0"
|
|
20963
21826
|
},
|
|
20964
21827
|
{
|
|
20965
21828
|
id: "uni-weekday-name",
|
|
@@ -20984,7 +21847,7 @@ placeholder="Name or address\u2026"
|
|
|
20984
21847
|
description: "Full weekday name, for the columnheader's `abbr`."
|
|
20985
21848
|
}
|
|
20986
21849
|
],
|
|
20987
|
-
version: "11.
|
|
21850
|
+
version: "11.7.0"
|
|
20988
21851
|
},
|
|
20989
21852
|
{
|
|
20990
21853
|
id: "weekday-names",
|
|
@@ -20996,7 +21859,7 @@ placeholder="Name or address\u2026"
|
|
|
20996
21859
|
summary: "Weekday header labels starting at `weekStart` (0 = Sunday).",
|
|
20997
21860
|
description: "Weekday header labels starting at `weekStart` (0 = Sunday).",
|
|
20998
21861
|
members: [],
|
|
20999
|
-
version: "11.
|
|
21862
|
+
version: "11.7.0"
|
|
21000
21863
|
},
|
|
21001
21864
|
{
|
|
21002
21865
|
id: "format-time",
|
|
@@ -21008,7 +21871,7 @@ placeholder="Name or address\u2026"
|
|
|
21008
21871
|
summary: "`'15:00'` \u2192 `'3:00 PM'` (or `'15:00'` when `hour12` is false).",
|
|
21009
21872
|
description: "`'15:00'` \u2192 `'3:00 PM'` (or `'15:00'` when `hour12` is false).",
|
|
21010
21873
|
members: [],
|
|
21011
|
-
version: "11.
|
|
21874
|
+
version: "11.7.0"
|
|
21012
21875
|
},
|
|
21013
21876
|
{
|
|
21014
21877
|
id: "locale-week-start",
|
|
@@ -21020,7 +21883,7 @@ placeholder="Name or address\u2026"
|
|
|
21020
21883
|
summary: "The locale's first day of week, 0 = Sunday \u2026 6 = Saturday.",
|
|
21021
21884
|
description: "The locale's first day of week, 0 = Sunday \u2026 6 = Saturday. Falls back to Sunday where `Intl.Locale` week info is unavailable.",
|
|
21022
21885
|
members: [],
|
|
21023
|
-
version: "11.
|
|
21886
|
+
version: "11.7.0"
|
|
21024
21887
|
},
|
|
21025
21888
|
{
|
|
21026
21889
|
id: "locale-default-hour12",
|
|
@@ -21032,7 +21895,7 @@ placeholder="Name or address\u2026"
|
|
|
21032
21895
|
summary: "Whether the locale's default clock is 12-hour.",
|
|
21033
21896
|
description: "Whether the locale's default clock is 12-hour.",
|
|
21034
21897
|
members: [],
|
|
21035
|
-
version: "11.
|
|
21898
|
+
version: "11.7.0"
|
|
21036
21899
|
},
|
|
21037
21900
|
{
|
|
21038
21901
|
id: "locale-field-order",
|
|
@@ -21044,7 +21907,7 @@ placeholder="Name or address\u2026"
|
|
|
21044
21907
|
summary: "The locale's numeric-date field order, e.g.",
|
|
21045
21908
|
description: "The locale's numeric-date field order, e.g. en-US \u2192 month, day, year.",
|
|
21046
21909
|
members: [],
|
|
21047
|
-
version: "11.
|
|
21910
|
+
version: "11.7.0"
|
|
21048
21911
|
},
|
|
21049
21912
|
{
|
|
21050
21913
|
id: "locale-month-names",
|
|
@@ -21056,7 +21919,7 @@ placeholder="Name or address\u2026"
|
|
|
21056
21919
|
summary: "Long + short month names \u2192 month number, lowercased, dots stripped.",
|
|
21057
21920
|
description: "Long + short month names \u2192 month number, lowercased, dots stripped.",
|
|
21058
21921
|
members: [],
|
|
21059
|
-
version: "11.
|
|
21922
|
+
version: "11.7.0"
|
|
21060
21923
|
},
|
|
21061
21924
|
{
|
|
21062
21925
|
id: "locale-date-placeholder",
|
|
@@ -21068,7 +21931,7 @@ placeholder="Name or address\u2026"
|
|
|
21068
21931
|
summary: "The locale's digit pattern as a placeholder, e.g.",
|
|
21069
21932
|
description: "The locale's digit pattern as a placeholder, e.g. `'MM/DD/YYYY'`.",
|
|
21070
21933
|
members: [],
|
|
21071
|
-
version: "11.
|
|
21934
|
+
version: "11.7.0"
|
|
21072
21935
|
},
|
|
21073
21936
|
{
|
|
21074
21937
|
id: "parse-date-text",
|
|
@@ -21080,7 +21943,7 @@ placeholder="Name or address\u2026"
|
|
|
21080
21943
|
summary: "Free-typed date text \u2192 ISO date, or `null` when unreadable.",
|
|
21081
21944
|
description: "Free-typed date text \u2192 ISO date, or `null` when unreadable. Accepts, in order: ISO (`2026-08-20`), a month name from the locale's own long/short lists (`aug 20`, `20 aug 2026`, `August 20th`), and locale-numeric text (`8/20/2026`, `20.8.2026`, `08-20`) with the digit order taken from `Intl.DateTimeFormat(locale).formatToParts()`. A missing year resolves to the next occurrence; two-digit years are refused rather than guessed.",
|
|
21082
21945
|
members: [],
|
|
21083
|
-
version: "11.
|
|
21946
|
+
version: "11.7.0"
|
|
21084
21947
|
},
|
|
21085
21948
|
{
|
|
21086
21949
|
id: "parse-time-text",
|
|
@@ -21092,7 +21955,7 @@ placeholder="Name or address\u2026"
|
|
|
21092
21955
|
summary: "Free-typed time text \u2192 `'HH:mm'`, or `null`.",
|
|
21093
21956
|
description: "Free-typed time text \u2192 `'HH:mm'`, or `null`. Accepts `9`, `930`, `9:30`, `9.30`, `9 30`, `3p`, `3pm`, `3 PM`, `15:00`. Bare hours 1\u20137 with no meridiem lean PM when `hour12` \u2014 typing `3` into an appointment field means 15:00, not 03:00.",
|
|
21094
21957
|
members: [],
|
|
21095
|
-
version: "11.
|
|
21958
|
+
version: "11.7.0"
|
|
21096
21959
|
},
|
|
21097
21960
|
{
|
|
21098
21961
|
id: "time-slots",
|
|
@@ -21104,7 +21967,7 @@ placeholder="Name or address\u2026"
|
|
|
21104
21967
|
summary: "Every `minuteStep` time between `min` and `max` (inclusive bounds).",
|
|
21105
21968
|
description: "Every `minuteStep` time between `min` and `max` (inclusive bounds).",
|
|
21106
21969
|
members: [],
|
|
21107
|
-
version: "11.
|
|
21970
|
+
version: "11.7.0"
|
|
21108
21971
|
},
|
|
21109
21972
|
{
|
|
21110
21973
|
id: "split-date-time",
|
|
@@ -21116,7 +21979,7 @@ placeholder="Name or address\u2026"
|
|
|
21116
21979
|
summary: "",
|
|
21117
21980
|
description: "",
|
|
21118
21981
|
members: [],
|
|
21119
|
-
version: "11.
|
|
21982
|
+
version: "11.7.0"
|
|
21120
21983
|
},
|
|
21121
21984
|
{
|
|
21122
21985
|
id: "join-date-time",
|
|
@@ -21128,7 +21991,7 @@ placeholder="Name or address\u2026"
|
|
|
21128
21991
|
summary: "One combined value only when both parts are present.",
|
|
21129
21992
|
description: "One combined value only when both parts are present.",
|
|
21130
21993
|
members: [],
|
|
21131
|
-
version: "11.
|
|
21994
|
+
version: "11.7.0"
|
|
21132
21995
|
},
|
|
21133
21996
|
{
|
|
21134
21997
|
id: "uni-number-range",
|
|
@@ -21153,7 +22016,7 @@ placeholder="Name or address\u2026"
|
|
|
21153
22016
|
description: ""
|
|
21154
22017
|
}
|
|
21155
22018
|
],
|
|
21156
|
-
version: "11.
|
|
22019
|
+
version: "11.7.0"
|
|
21157
22020
|
},
|
|
21158
22021
|
{
|
|
21159
22022
|
id: "uni-rounding-mode",
|
|
@@ -21165,7 +22028,7 @@ placeholder="Name or address\u2026"
|
|
|
21165
22028
|
summary: "How a tie is resolved when rounding to a fraction-digit count.",
|
|
21166
22029
|
description: "How a tie is resolved when rounding to a fraction-digit count. `half-up` is the invoice default (ties away from zero: `1.15` \u2192 `1.2`); `half-even` is banker's rounding, which removes the upward bias across a column of figures (`1.25` \u2192 `1.2`, `1.35` \u2192 `1.4`).",
|
|
21167
22030
|
members: [],
|
|
21168
|
-
version: "11.
|
|
22031
|
+
version: "11.7.0"
|
|
21169
22032
|
},
|
|
21170
22033
|
{
|
|
21171
22034
|
id: "uni-number-preset",
|
|
@@ -21177,7 +22040,7 @@ placeholder="Name or address\u2026"
|
|
|
21177
22040
|
summary: "Format archetype.",
|
|
21178
22041
|
description: "Format archetype. Supplies decimals, grouping, affix and `inputmode`.",
|
|
21179
22042
|
members: [],
|
|
21180
|
-
version: "11.
|
|
22043
|
+
version: "11.7.0"
|
|
21181
22044
|
},
|
|
21182
22045
|
{
|
|
21183
22046
|
id: "uni-number-grouping",
|
|
@@ -21189,7 +22052,7 @@ placeholder="Name or address\u2026"
|
|
|
21189
22052
|
summary: "Thousands-separator policy, mapped onto `Intl`'s `useGrouping`.",
|
|
21190
22053
|
description: "Thousands-separator policy, mapped onto `Intl`'s `useGrouping`. `min2` \u2014 the default \u2014 groups only from five integer digits, so a year renders `2026` rather than `2,026` while a price still renders `10,000`.",
|
|
21191
22054
|
members: [],
|
|
21192
|
-
version: "11.
|
|
22055
|
+
version: "11.7.0"
|
|
21193
22056
|
},
|
|
21194
22057
|
{
|
|
21195
22058
|
id: "uni-number-reject-reason",
|
|
@@ -21201,7 +22064,7 @@ placeholder="Name or address\u2026"
|
|
|
21201
22064
|
summary: "Why a typed commit was refused.",
|
|
21202
22065
|
description: "Why a typed commit was refused. The raw text stays in the field.",
|
|
21203
22066
|
members: [],
|
|
21204
|
-
version: "11.
|
|
22067
|
+
version: "11.7.0"
|
|
21205
22068
|
},
|
|
21206
22069
|
{
|
|
21207
22070
|
id: "uni-number-step-config",
|
|
@@ -21244,7 +22107,7 @@ placeholder="Name or address\u2026"
|
|
|
21244
22107
|
description: "Cycle past a fence instead of stopping at it \u2014 for genuinely cyclic fields only (23 \u2192 0 hours, 359 \u2192 0 degrees). Needs both `min` and `max`."
|
|
21245
22108
|
}
|
|
21246
22109
|
],
|
|
21247
|
-
version: "11.
|
|
22110
|
+
version: "11.7.0"
|
|
21248
22111
|
},
|
|
21249
22112
|
{
|
|
21250
22113
|
id: "uni-number-clamp",
|
|
@@ -21269,7 +22132,7 @@ placeholder="Name or address\u2026"
|
|
|
21269
22132
|
description: "Which fence was hit, or `null` when the value was already in range."
|
|
21270
22133
|
}
|
|
21271
22134
|
],
|
|
21272
|
-
version: "11.
|
|
22135
|
+
version: "11.7.0"
|
|
21273
22136
|
},
|
|
21274
22137
|
{
|
|
21275
22138
|
id: "uni-locale-number-parts",
|
|
@@ -21312,7 +22175,7 @@ placeholder="Name or address\u2026"
|
|
|
21312
22175
|
description: "Fraction digits `Intl` uses for the currency \u2014 JPY 0, USD 2."
|
|
21313
22176
|
}
|
|
21314
22177
|
],
|
|
21315
|
-
version: "11.
|
|
22178
|
+
version: "11.7.0"
|
|
21316
22179
|
},
|
|
21317
22180
|
{
|
|
21318
22181
|
id: "uni-number-format-config",
|
|
@@ -21397,7 +22260,7 @@ placeholder="Name or address\u2026"
|
|
|
21397
22260
|
description: "Spoken long form of an abbreviated suffix, for `aria-valuetext`."
|
|
21398
22261
|
}
|
|
21399
22262
|
],
|
|
21400
|
-
version: "11.
|
|
22263
|
+
version: "11.7.0"
|
|
21401
22264
|
},
|
|
21402
22265
|
{
|
|
21403
22266
|
id: "uni-resolved-number-format",
|
|
@@ -21488,7 +22351,7 @@ placeholder="Name or address\u2026"
|
|
|
21488
22351
|
description: ""
|
|
21489
22352
|
}
|
|
21490
22353
|
],
|
|
21491
|
-
version: "11.
|
|
22354
|
+
version: "11.7.0"
|
|
21492
22355
|
},
|
|
21493
22356
|
{
|
|
21494
22357
|
id: "uni-number-parse-result",
|
|
@@ -21500,7 +22363,7 @@ placeholder="Name or address\u2026"
|
|
|
21500
22363
|
summary: "The outcome of reading a user's text.",
|
|
21501
22364
|
description: "The outcome of reading a user's text. Refused text is never swallowed: the caller keeps it in the field and flags it, so nobody loses their work to a silently emptied box.",
|
|
21502
22365
|
members: [],
|
|
21503
|
-
version: "11.
|
|
22366
|
+
version: "11.7.0"
|
|
21504
22367
|
},
|
|
21505
22368
|
{
|
|
21506
22369
|
id: "is-canonical-decimal",
|
|
@@ -21512,7 +22375,7 @@ placeholder="Name or address\u2026"
|
|
|
21512
22375
|
summary: "True when `text` is already a canonical decimal (leading/trailing space allowed).",
|
|
21513
22376
|
description: "True when `text` is already a canonical decimal (leading/trailing space allowed).",
|
|
21514
22377
|
members: [],
|
|
21515
|
-
version: "11.
|
|
22378
|
+
version: "11.7.0"
|
|
21516
22379
|
},
|
|
21517
22380
|
{
|
|
21518
22381
|
id: "decimal-scale",
|
|
@@ -21524,7 +22387,7 @@ placeholder="Name or address\u2026"
|
|
|
21524
22387
|
summary: "Fraction-digit count.",
|
|
21525
22388
|
description: "Fraction-digit count. `'1.250'` \u2192 3, `'12'` \u2192 0, `'5.'` \u2192 0.",
|
|
21526
22389
|
members: [],
|
|
21527
|
-
version: "11.
|
|
22390
|
+
version: "11.7.0"
|
|
21528
22391
|
},
|
|
21529
22392
|
{
|
|
21530
22393
|
id: "to-scaled",
|
|
@@ -21536,7 +22399,7 @@ placeholder="Name or address\u2026"
|
|
|
21536
22399
|
summary: "Canonical decimal \u2192 integer scaled by `10^scale`.",
|
|
21537
22400
|
description: "Canonical decimal \u2192 integer scaled by `10^scale`. Fraction digits beyond `scale` are truncated, so callers that must not lose them pass a `scale` at least `decimalScale(value)`.",
|
|
21538
22401
|
members: [],
|
|
21539
|
-
version: "11.
|
|
22402
|
+
version: "11.7.0"
|
|
21540
22403
|
},
|
|
21541
22404
|
{
|
|
21542
22405
|
id: "from-scaled",
|
|
@@ -21548,7 +22411,7 @@ placeholder="Name or address\u2026"
|
|
|
21548
22411
|
summary: "Scaled integer \u2192 canonical decimal, with trailing fraction zeros trimmed.",
|
|
21549
22412
|
description: "Scaled integer \u2192 canonical decimal, with trailing fraction zeros trimmed.",
|
|
21550
22413
|
members: [],
|
|
21551
|
-
version: "11.
|
|
22414
|
+
version: "11.7.0"
|
|
21552
22415
|
},
|
|
21553
22416
|
{
|
|
21554
22417
|
id: "normalize-decimal",
|
|
@@ -21560,7 +22423,7 @@ placeholder="Name or address\u2026"
|
|
|
21560
22423
|
summary: "Strip a leading `+`, leading zeros and trailing fraction zeros: `'+01.50'` \u2192 `'1.5'`.",
|
|
21561
22424
|
description: "Strip a leading `+`, leading zeros and trailing fraction zeros: `'+01.50'` \u2192 `'1.5'`. Requires a canonical decimal; guard with `isCanonicalDecimal`.",
|
|
21562
22425
|
members: [],
|
|
21563
|
-
version: "11.
|
|
22426
|
+
version: "11.7.0"
|
|
21564
22427
|
},
|
|
21565
22428
|
{
|
|
21566
22429
|
id: "to-decimal",
|
|
@@ -21572,7 +22435,7 @@ placeholder="Name or address\u2026"
|
|
|
21572
22435
|
summary: "Any numeric input \u2192 canonical decimal, expanding the exponential notation `String(number)` produces outside 1e-7\u20261e21.",
|
|
21573
22436
|
description: "Any numeric input \u2192 canonical decimal, expanding the exponential notation `String(number)` produces outside 1e-7\u20261e21. A `step` of `1e-7` would otherwise reach the arithmetic as the literal text `'1e-7'`. Throws on text that is not numeric at all \u2014 every caller here passes either a `number` input or text already cleared by the parser.",
|
|
21574
22437
|
members: [],
|
|
21575
|
-
version: "11.
|
|
22438
|
+
version: "11.7.0"
|
|
21576
22439
|
},
|
|
21577
22440
|
{
|
|
21578
22441
|
id: "compare-decimal",
|
|
@@ -21584,7 +22447,7 @@ placeholder="Name or address\u2026"
|
|
|
21584
22447
|
summary: "`-1` when `a < b`, `1` when `a > b`, `0` when equal.",
|
|
21585
22448
|
description: "`-1` when `a < b`, `1` when `a > b`, `0` when equal. `'1.50'` equals `'1.5'`.",
|
|
21586
22449
|
members: [],
|
|
21587
|
-
version: "11.
|
|
22450
|
+
version: "11.7.0"
|
|
21588
22451
|
},
|
|
21589
22452
|
{
|
|
21590
22453
|
id: "round-decimal",
|
|
@@ -21596,7 +22459,7 @@ placeholder="Name or address\u2026"
|
|
|
21596
22459
|
summary: "Round to `fractionDigits`, breaking ties per `mode`.",
|
|
21597
22460
|
description: "Round to `fractionDigits`, breaking ties per `mode`. Exact where `Number.prototype.toFixed` is not \u2014 see the file header.",
|
|
21598
22461
|
members: [],
|
|
21599
|
-
version: "11.
|
|
22462
|
+
version: "11.7.0"
|
|
21600
22463
|
},
|
|
21601
22464
|
{
|
|
21602
22465
|
id: "shift-decimal",
|
|
@@ -21608,7 +22471,7 @@ placeholder="Name or address\u2026"
|
|
|
21608
22471
|
summary: "Multiply by `10^places`, exactly.",
|
|
21609
22472
|
description: "Multiply by `10^places`, exactly. Used for the percent preset's fraction \u21C4 display shift (`0.15` \u21C4 `15`) and for deriving a default large step of `step \xD7 10` without touching a float.",
|
|
21610
22473
|
members: [],
|
|
21611
|
-
version: "11.
|
|
22474
|
+
version: "11.7.0"
|
|
21612
22475
|
},
|
|
21613
22476
|
{
|
|
21614
22477
|
id: "clamp-decimal",
|
|
@@ -21620,7 +22483,7 @@ placeholder="Name or address\u2026"
|
|
|
21620
22483
|
summary: "Hold a value inside its fences, reporting which one it hit so the caller can announce it.",
|
|
21621
22484
|
description: "Hold a value inside its fences, reporting which one it hit so the caller can announce it. Clamping belongs on commit, never per keystroke: a `min=10` field that clamps live can never be typed into, because the `1` becomes `10` before the `5` arrives.",
|
|
21622
22485
|
members: [],
|
|
21623
|
-
version: "11.
|
|
22486
|
+
version: "11.7.0"
|
|
21624
22487
|
},
|
|
21625
22488
|
{
|
|
21626
22489
|
id: "step-decimal",
|
|
@@ -21632,7 +22495,7 @@ placeholder="Name or address\u2026"
|
|
|
21632
22495
|
summary: "One step from `current`, in `direction` (`1` up, `-1` down).",
|
|
21633
22496
|
description: "One step from `current`, in `direction` (`1` up, `-1` down). Steps land on the grid `origin + n \xB7 step`, where `origin` is `min` by default. A value that is *off* the grid snaps to the nearest grid point **in the direction of travel** rather than jumping past it: with `min=5, step=10` the grid is 5, 15, 25, and stepping up from 7 gives 15, not 17. Fences stop the value; they never wrap unless `wrap` is set and both bounds are defined. Returns `current` unchanged when `step` is zero.",
|
|
21634
22497
|
members: [],
|
|
21635
|
-
version: "11.
|
|
22498
|
+
version: "11.7.0"
|
|
21636
22499
|
},
|
|
21637
22500
|
{
|
|
21638
22501
|
id: "locale-number-parts",
|
|
@@ -21644,7 +22507,7 @@ placeholder="Name or address\u2026"
|
|
|
21644
22507
|
summary: "Locale separators plus, when a currency is given, its symbol, side and fraction digits.",
|
|
21645
22508
|
description: "Locale separators plus, when a currency is given, its symbol, side and fraction digits. Memoized: constructing an `Intl.NumberFormat` is expensive and a field re-resolves this on every keystroke.",
|
|
21646
22509
|
members: [],
|
|
21647
|
-
version: "11.
|
|
22510
|
+
version: "11.7.0"
|
|
21648
22511
|
},
|
|
21649
22512
|
{
|
|
21650
22513
|
id: "to-ascii-digits",
|
|
@@ -21656,7 +22519,7 @@ placeholder="Name or address\u2026"
|
|
|
21656
22519
|
summary: "Map localized digits and Arabic separators to ASCII, so `\u0661\u0662\u0663\u0664\u066B\u0665` parses in `ar` and `\u0967\u0968\u0969\u096A.\u096B` in `hi`.",
|
|
21657
22520
|
description: "Map localized digits and Arabic separators to ASCII, so `\u0661\u0662\u0663\u0664\u066B\u0665` parses in `ar` and `\u0967\u0968\u0969\u096A.\u096B` in `hi`.",
|
|
21658
22521
|
members: [],
|
|
21659
|
-
version: "11.
|
|
22522
|
+
version: "11.7.0"
|
|
21660
22523
|
},
|
|
21661
22524
|
{
|
|
21662
22525
|
id: "evaluate-expression",
|
|
@@ -21668,7 +22531,7 @@ placeholder="Name or address\u2026"
|
|
|
21668
22531
|
summary: "Evaluate `+ \u2212 \xD7 \xF7 ( )` over decimal literals \u2014 shunting-yard, roughly thirty lines, and **never `eval`**.",
|
|
21669
22532
|
description: "Evaluate `+ \u2212 \xD7 \xF7 ( )` over decimal literals \u2014 shunting-yard, roughly thirty lines, and **never `eval`**. Returns a canonical decimal, or `null` when the text is not a well-formed expression. Floats are acceptable here in a way they are not elsewhere: this is a convenience path for spreadsheet muscle memory (`12*3`, `100/4+5`), and the result is settled to ten decimals before re-entering exact arithmetic. Division is the only operation that can produce a non-terminating decimal, and no exact representation would help there either.",
|
|
21670
22533
|
members: [],
|
|
21671
|
-
version: "11.
|
|
22534
|
+
version: "11.7.0"
|
|
21672
22535
|
},
|
|
21673
22536
|
{
|
|
21674
22537
|
id: "resolve-number-format",
|
|
@@ -21680,7 +22543,7 @@ placeholder="Name or address\u2026"
|
|
|
21680
22543
|
summary: "Fill in every preset, locale and currency default.",
|
|
21681
22544
|
description: "Fill in every preset, locale and currency default.",
|
|
21682
22545
|
members: [],
|
|
21683
|
-
version: "11.
|
|
22546
|
+
version: "11.7.0"
|
|
21684
22547
|
},
|
|
21685
22548
|
{
|
|
21686
22549
|
id: "parse-number",
|
|
@@ -21692,7 +22555,7 @@ placeholder="Name or address\u2026"
|
|
|
21692
22555
|
summary: "Read a user's text into a canonical decimal in **model units**.",
|
|
21693
22556
|
description: "Read a user's text into a canonical decimal in **model units**. Accepted, in order: canonical/ASCII (always, whatever the locale \u2014 it is what agents and APIs write), locale-grouped, affixed, localized digits, compact (`1.5k`), accounting negatives (`(1,234.56)` \u2192 `-1234.56`), and expressions when `allowExpressions` is set.",
|
|
21694
22557
|
members: [],
|
|
21695
|
-
version: "11.
|
|
22558
|
+
version: "11.7.0"
|
|
21696
22559
|
},
|
|
21697
22560
|
{
|
|
21698
22561
|
id: "format-number",
|
|
@@ -21704,7 +22567,7 @@ placeholder="Name or address\u2026"
|
|
|
21704
22567
|
summary: "Canonical decimal (model units) \u2192 the display number, without affixes.",
|
|
21705
22568
|
description: "Canonical decimal (model units) \u2192 the display number, without affixes. `min2` grouping \u2014 the default \u2014 starts at five integer digits, so a year renders `2026` rather than `2,026` while a price still renders `10,000`.",
|
|
21706
22569
|
members: [],
|
|
21707
|
-
version: "11.
|
|
22570
|
+
version: "11.7.0"
|
|
21708
22571
|
},
|
|
21709
22572
|
{
|
|
21710
22573
|
id: "raw-number-text",
|
|
@@ -21716,7 +22579,7 @@ placeholder="Name or address\u2026"
|
|
|
21716
22579
|
summary: "The plain text the field shows while focused: the display number with no grouping and no affixes, so the caret never has to walk over a separator that appears and vanishes mid-word.",
|
|
21717
22580
|
description: "The plain text the field shows while focused: the display number with no grouping and no affixes, so the caret never has to walk over a separator that appears and vanishes mid-word.",
|
|
21718
22581
|
members: [],
|
|
21719
|
-
version: "11.
|
|
22582
|
+
version: "11.7.0"
|
|
21720
22583
|
},
|
|
21721
22584
|
{
|
|
21722
22585
|
id: "settle-number",
|
|
@@ -21728,7 +22591,7 @@ placeholder="Name or address\u2026"
|
|
|
21728
22591
|
summary: "Round a committed value to the field's precision, in model units.",
|
|
21729
22592
|
description: "Round a committed value to the field's precision, in model units.",
|
|
21730
22593
|
members: [],
|
|
21731
|
-
version: "11.
|
|
22594
|
+
version: "11.7.0"
|
|
21732
22595
|
},
|
|
21733
22596
|
{
|
|
21734
22597
|
id: "speak-number",
|
|
@@ -21740,7 +22603,7 @@ placeholder="Name or address\u2026"
|
|
|
21740
22603
|
summary: "The `aria-valuetext` string: the formatted number with its affixes spoken.",
|
|
21741
22604
|
description: 'The `aria-valuetext` string: the formatted number with its affixes spoken. `aria-valuenow` alone announces "1234.56", which is the one thing about a money field that is not the point. An empty field says "Empty" per APG.',
|
|
21742
22605
|
members: [],
|
|
21743
|
-
version: "11.
|
|
22606
|
+
version: "11.7.0"
|
|
21744
22607
|
},
|
|
21745
22608
|
{
|
|
21746
22609
|
id: "to-number",
|
|
@@ -21752,7 +22615,7 @@ placeholder="Name or address\u2026"
|
|
|
21752
22615
|
summary: "Model-units canonical decimal \u2192 the bound `number`.",
|
|
21753
22616
|
description: "Model-units canonical decimal \u2192 the bound `number`.",
|
|
21754
22617
|
members: [],
|
|
21755
|
-
version: "11.
|
|
22618
|
+
version: "11.7.0"
|
|
21756
22619
|
},
|
|
21757
22620
|
{
|
|
21758
22621
|
id: "loses-precision",
|
|
@@ -21764,7 +22627,7 @@ placeholder="Name or address\u2026"
|
|
|
21764
22627
|
summary: "True when a value cannot survive the trip through `number` \u2014 the reason the components also expose an exact `valueAsString` model, and the trigger for the dev-mode warning.",
|
|
21765
22628
|
description: "True when a value cannot survive the trip through `number` \u2014 the reason the components also expose an exact `valueAsString` model, and the trigger for the dev-mode warning. Silent precision loss is the whole point of that second model, so it is worth saying out loud once. A `number` can only be checked for magnitude, since it has already lost whatever it was going to lose. A canonical string can be checked properly: `'9007199254740993'` comes back as `'9007199254740992'`.",
|
|
21766
22629
|
members: [],
|
|
21767
|
-
version: "11.
|
|
22630
|
+
version: "11.7.0"
|
|
21768
22631
|
},
|
|
21769
22632
|
{
|
|
21770
22633
|
id: "press-repeat-timing",
|
|
@@ -21801,7 +22664,7 @@ placeholder="Name or address\u2026"
|
|
|
21801
22664
|
description: ""
|
|
21802
22665
|
}
|
|
21803
22666
|
],
|
|
21804
|
-
version: "11.
|
|
22667
|
+
version: "11.7.0"
|
|
21805
22668
|
},
|
|
21806
22669
|
{
|
|
21807
22670
|
id: "press-repeat-config",
|
|
@@ -21850,7 +22713,7 @@ placeholder="Name or address\u2026"
|
|
|
21850
22713
|
description: ""
|
|
21851
22714
|
}
|
|
21852
22715
|
],
|
|
21853
|
-
version: "11.
|
|
22716
|
+
version: "11.7.0"
|
|
21854
22717
|
},
|
|
21855
22718
|
{
|
|
21856
22719
|
id: "press-repeat",
|
|
@@ -21887,7 +22750,7 @@ placeholder="Name or address\u2026"
|
|
|
21887
22750
|
description: "End a hold without firing `onRelease` \u2014 for `Escape` and `pointercancel`."
|
|
21888
22751
|
}
|
|
21889
22752
|
],
|
|
21890
|
-
version: "11.
|
|
22753
|
+
version: "11.7.0"
|
|
21891
22754
|
},
|
|
21892
22755
|
{
|
|
21893
22756
|
id: "create-press-repeat",
|
|
@@ -21899,7 +22762,7 @@ placeholder="Name or address\u2026"
|
|
|
21899
22762
|
summary: "",
|
|
21900
22763
|
description: "",
|
|
21901
22764
|
members: [],
|
|
21902
|
-
version: "11.
|
|
22765
|
+
version: "11.7.0"
|
|
21903
22766
|
},
|
|
21904
22767
|
{
|
|
21905
22768
|
id: "listbox-navigation-config",
|
|
@@ -21942,7 +22805,7 @@ placeholder="Name or address\u2026"
|
|
|
21942
22805
|
description: "Let Home/End jump to the ends of the list. Default false. In an editable combobox those keys belong to the caret \u2014 APG reserves them for text editing, and a control that steals them makes the text un-navigable while its list is open. Opt in only where focus is *not* in a text field (uni-multi-select-dropdown, whose focus rides the option checkboxes). Nothing is lost by leaving it off: opening with ArrowUp already lands on the last option, ArrowDown on the first, and navigation wraps at both ends."
|
|
21943
22806
|
}
|
|
21944
22807
|
],
|
|
21945
|
-
version: "11.
|
|
22808
|
+
version: "11.7.0"
|
|
21946
22809
|
},
|
|
21947
22810
|
{
|
|
21948
22811
|
id: "listbox-navigation",
|
|
@@ -22015,7 +22878,7 @@ placeholder="Name or address\u2026"
|
|
|
22015
22878
|
description: "Close when focus leaves the control entirely (not on internal moves)."
|
|
22016
22879
|
}
|
|
22017
22880
|
],
|
|
22018
|
-
version: "11.
|
|
22881
|
+
version: "11.7.0"
|
|
22019
22882
|
},
|
|
22020
22883
|
{
|
|
22021
22884
|
id: "create-listbox-navigation",
|
|
@@ -22027,7 +22890,7 @@ placeholder="Name or address\u2026"
|
|
|
22027
22890
|
summary: "Factory mirroring the signal-API style used elsewhere in the CDK.",
|
|
22028
22891
|
description: "Factory mirroring the signal-API style used elsewhere in the CDK.",
|
|
22029
22892
|
members: [],
|
|
22030
|
-
version: "11.
|
|
22893
|
+
version: "11.7.0"
|
|
22031
22894
|
},
|
|
22032
22895
|
{
|
|
22033
22896
|
id: "placement",
|
|
@@ -22039,7 +22902,7 @@ placeholder="Name or address\u2026"
|
|
|
22039
22902
|
summary: "Native CSS Anchor Positioning helpers (Baseline 2026).",
|
|
22040
22903
|
description: "Native CSS Anchor Positioning helpers (Baseline 2026). These replace the former",
|
|
22041
22904
|
members: [],
|
|
22042
|
-
version: "11.
|
|
22905
|
+
version: "11.7.0"
|
|
22043
22906
|
},
|
|
22044
22907
|
{
|
|
22045
22908
|
id: "anchor-offset",
|
|
@@ -22064,7 +22927,7 @@ placeholder="Name or address\u2026"
|
|
|
22064
22927
|
description: "Shift along the cross axis, from the aligned edge."
|
|
22065
22928
|
}
|
|
22066
22929
|
],
|
|
22067
|
-
version: "11.
|
|
22930
|
+
version: "11.7.0"
|
|
22068
22931
|
},
|
|
22069
22932
|
{
|
|
22070
22933
|
id: "new-anchor-name",
|
|
@@ -22076,7 +22939,7 @@ placeholder="Name or address\u2026"
|
|
|
22076
22939
|
summary: "Returns a document-unique dashed-ident usable as a CSS `anchor-name`.",
|
|
22077
22940
|
description: "Returns a document-unique dashed-ident usable as a CSS `anchor-name`.",
|
|
22078
22941
|
members: [],
|
|
22079
|
-
version: "11.
|
|
22942
|
+
version: "11.7.0"
|
|
22080
22943
|
},
|
|
22081
22944
|
{
|
|
22082
22945
|
id: "anchor-styles",
|
|
@@ -22088,7 +22951,7 @@ placeholder="Name or address\u2026"
|
|
|
22088
22951
|
summary: "Emotion style object anchoring a panel to `anchor` at `placement`.",
|
|
22089
22952
|
description: "Emotion style object anchoring a panel to `anchor` at `placement`. Spread into the panel's `css()` styles. The trigger element must carry `anchor-name: <anchor>` (see `newAnchorName`).",
|
|
22090
22953
|
members: [],
|
|
22091
|
-
version: "11.
|
|
22954
|
+
version: "11.7.0"
|
|
22092
22955
|
},
|
|
22093
22956
|
{
|
|
22094
22957
|
id: "anchor-arrow-styles",
|
|
@@ -22100,7 +22963,7 @@ placeholder="Name or address\u2026"
|
|
|
22100
22963
|
summary: "Absolute positioning for a rotated-square arrow sitting on the panel edge that faces the anchor.",
|
|
22101
22964
|
description: "Absolute positioning for a rotated-square arrow sitting on the panel edge that faces the anchor. Static per placement: if the browser flips the panel via position-try, the arrow stays on the configured side (cosmetic-only degradation, matching the flip-support caveat above). `overlap` (default 0 \u2014 cut exactly on the panel edge) extends the kept half into the panel; see for when that is ever wanted.",
|
|
22102
22965
|
members: [],
|
|
22103
|
-
version: "11.
|
|
22966
|
+
version: "11.7.0"
|
|
22104
22967
|
},
|
|
22105
22968
|
{
|
|
22106
22969
|
id: "spotlight-options",
|
|
@@ -22131,7 +22994,7 @@ placeholder="Name or address\u2026"
|
|
|
22131
22994
|
description: "Scrim paint; scheme-invariant by convention, like `::backdrop`."
|
|
22132
22995
|
}
|
|
22133
22996
|
],
|
|
22134
|
-
version: "11.
|
|
22997
|
+
version: "11.7.0"
|
|
22135
22998
|
},
|
|
22136
22999
|
{
|
|
22137
23000
|
id: "spotlight-styles",
|
|
@@ -22162,7 +23025,7 @@ placeholder="Name or address\u2026"
|
|
|
22162
23025
|
description: "Hole-sized click-blocker, shown when the target must not be interactive."
|
|
22163
23026
|
}
|
|
22164
23027
|
],
|
|
22165
|
-
version: "11.
|
|
23028
|
+
version: "11.7.0"
|
|
22166
23029
|
},
|
|
22167
23030
|
{
|
|
22168
23031
|
id: "anchor-rect",
|
|
@@ -22211,7 +23074,7 @@ placeholder="Name or address\u2026"
|
|
|
22211
23074
|
description: ""
|
|
22212
23075
|
}
|
|
22213
23076
|
],
|
|
22214
|
-
version: "11.
|
|
23077
|
+
version: "11.7.0"
|
|
22215
23078
|
},
|
|
22216
23079
|
{
|
|
22217
23080
|
id: "transform-origin-for",
|
|
@@ -22223,7 +23086,7 @@ placeholder="Name or address\u2026"
|
|
|
22223
23086
|
summary: "Transform origin for a panel's open/close scale animation, derived from where the panel **actually** rendered relative to its anchor \u2014 not from the requested placement.",
|
|
22224
23087
|
description: "Transform origin for a panel's open/close scale animation, derived from where the panel **actually** rendered relative to its anchor \u2014 not from the requested placement. `position-try-fallbacks` lets the browser flip a panel at viewport edges, and a statically mapped origin then animates from the wrong corner (a `bottom-end` picker flipped above its field would still scale from `top right`). Measure after the popover is shown and apply the result as an inline style. Returns keyword pairs like `'top right'` / `'bottom center'`, or `null` when the panel has no box yet (e.g. `display: none`, or jsdom).",
|
|
22225
23088
|
members: [],
|
|
22226
|
-
version: "11.
|
|
23089
|
+
version: "11.7.0"
|
|
22227
23090
|
},
|
|
22228
23091
|
{
|
|
22229
23092
|
id: "transform-origins",
|
|
@@ -22235,7 +23098,7 @@ placeholder="Name or address\u2026"
|
|
|
22235
23098
|
summary: "Placement \u2192 `transform-origin`, so scale animations grow from the anchor.",
|
|
22236
23099
|
description: "Placement \u2192 `transform-origin`, so scale animations grow from the anchor.",
|
|
22237
23100
|
members: [],
|
|
22238
|
-
version: "11.
|
|
23101
|
+
version: "11.7.0"
|
|
22239
23102
|
},
|
|
22240
23103
|
{
|
|
22241
23104
|
id: "set-anchor-name",
|
|
@@ -22247,7 +23110,7 @@ placeholder="Name or address\u2026"
|
|
|
22247
23110
|
summary: "Write a CSS `anchor-name` onto an element (detached anchors and targets).",
|
|
22248
23111
|
description: "Write a CSS `anchor-name` onto an element (detached anchors and targets).",
|
|
22249
23112
|
members: [],
|
|
22250
|
-
version: "11.
|
|
23113
|
+
version: "11.7.0"
|
|
22251
23114
|
},
|
|
22252
23115
|
{
|
|
22253
23116
|
id: "clear-anchor-name",
|
|
@@ -22259,7 +23122,7 @@ placeholder="Name or address\u2026"
|
|
|
22259
23122
|
summary: "",
|
|
22260
23123
|
description: "",
|
|
22261
23124
|
members: [],
|
|
22262
|
-
version: "11.
|
|
23125
|
+
version: "11.7.0"
|
|
22263
23126
|
},
|
|
22264
23127
|
{
|
|
22265
23128
|
id: "resolve-element",
|
|
@@ -22271,7 +23134,7 @@ placeholder="Name or address\u2026"
|
|
|
22271
23134
|
summary: "Resolve an element-or-id reference.",
|
|
22272
23135
|
description: "Resolve an element-or-id reference. Id strings are looked up at call time \u2014 never cache the result across opens, the element may have been re-rendered. `''` and null-ish mean \"unset\" (falsy guard: an empty string is the only typeable empty for a string-typed input).",
|
|
22273
23136
|
members: [],
|
|
22274
|
-
version: "11.
|
|
23137
|
+
version: "11.7.0"
|
|
22275
23138
|
},
|
|
22276
23139
|
{
|
|
22277
23140
|
id: "is-toggle-open",
|
|
@@ -22283,7 +23146,7 @@ placeholder="Name or address\u2026"
|
|
|
22283
23146
|
summary: "True when a native `toggle` event reports the overlay opening.",
|
|
22284
23147
|
description: "True when a native `toggle` event reports the overlay opening.",
|
|
22285
23148
|
members: [],
|
|
22286
|
-
version: "11.
|
|
23149
|
+
version: "11.7.0"
|
|
22287
23150
|
},
|
|
22288
23151
|
{
|
|
22289
23152
|
id: "discrete-overlay-transition",
|
|
@@ -22295,7 +23158,7 @@ placeholder="Name or address\u2026"
|
|
|
22295
23158
|
summary: "The discrete-transition block that animates an element into and out of the top layer: `transition-behavior: allow-discrete` over the `hidden` keys plus `display`/`overlay`, the shown state under `:popover-open`, and `@starting-style` so entry transitions run from the hidden state.",
|
|
22296
23159
|
description: "The discrete-transition block that animates an element into and out of the top layer: `transition-behavior: allow-discrete` over the `hidden` keys plus `display`/`overlay`, the shown state under `:popover-open`, and `@starting-style` so entry transitions run from the hidden state. `display` and `overlay` must ride along or the element cannot animate into and out of the top layer at all \u2014 it would simply appear and vanish. `timingFunction` is omitted from the output when not given, leaving the CSS initial value (`ease`), so callers that never asked for one are unaffected.",
|
|
22297
23160
|
members: [],
|
|
22298
|
-
version: "11.
|
|
23161
|
+
version: "11.7.0"
|
|
22299
23162
|
},
|
|
22300
23163
|
{
|
|
22301
23164
|
id: "restore-overlay-focus",
|
|
@@ -22307,7 +23170,7 @@ placeholder="Name or address\u2026"
|
|
|
22307
23170
|
summary: "Returns focus to `target` when an overlay closes while focus was inside its panel (or was dropped on `<body>` by the top layer closing), so keyboard users are never stranded (WCAG 2.4.3).",
|
|
22308
23171
|
description: "Returns focus to `target` when an overlay closes while focus was inside its panel (or was dropped on `<body>` by the top layer closing), so keyboard users are never stranded (WCAG 2.4.3). Focus resting anywhere else is left alone.",
|
|
22309
23172
|
members: [],
|
|
22310
|
-
version: "11.
|
|
23173
|
+
version: "11.7.0"
|
|
22311
23174
|
},
|
|
22312
23175
|
{
|
|
22313
23176
|
id: "focusable-elements",
|
|
@@ -22319,7 +23182,7 @@ placeholder="Name or address\u2026"
|
|
|
22319
23182
|
summary: "The focusable elements inside `root`, in DOM order.",
|
|
22320
23183
|
description: "The focusable elements inside `root`, in DOM order. Filters disabled controls, and hidden ones where the environment can tell: jsdom reports `offsetParent` as null for every element, so the visibility filter applies only when the document actually lays out (some element has an offsetParent).",
|
|
22321
23184
|
members: [],
|
|
22322
|
-
version: "11.
|
|
23185
|
+
version: "11.7.0"
|
|
22323
23186
|
},
|
|
22324
23187
|
{
|
|
22325
23188
|
id: "backdrop-dismiss",
|
|
@@ -22344,7 +23207,7 @@ placeholder="Name or address\u2026"
|
|
|
22344
23207
|
description: "True only when both the press and the click landed on the dialog itself."
|
|
22345
23208
|
}
|
|
22346
23209
|
],
|
|
22347
|
-
version: "11.
|
|
23210
|
+
version: "11.7.0"
|
|
22348
23211
|
},
|
|
22349
23212
|
{
|
|
22350
23213
|
id: "sort-direction",
|
|
@@ -22356,7 +23219,7 @@ placeholder="Name or address\u2026"
|
|
|
22356
23219
|
summary: "",
|
|
22357
23220
|
description: "",
|
|
22358
23221
|
members: [],
|
|
22359
|
-
version: "11.
|
|
23222
|
+
version: "11.7.0"
|
|
22360
23223
|
},
|
|
22361
23224
|
{
|
|
22362
23225
|
id: "sort",
|
|
@@ -22381,7 +23244,7 @@ placeholder="Name or address\u2026"
|
|
|
22381
23244
|
description: ""
|
|
22382
23245
|
}
|
|
22383
23246
|
],
|
|
22384
|
-
version: "11.
|
|
23247
|
+
version: "11.7.0"
|
|
22385
23248
|
},
|
|
22386
23249
|
{
|
|
22387
23250
|
id: "uni-base-datasource",
|
|
@@ -22550,7 +23413,7 @@ placeholder="Name or address\u2026"
|
|
|
22550
23413
|
description: ""
|
|
22551
23414
|
}
|
|
22552
23415
|
],
|
|
22553
|
-
version: "11.
|
|
23416
|
+
version: "11.7.0"
|
|
22554
23417
|
},
|
|
22555
23418
|
{
|
|
22556
23419
|
id: "page-request",
|
|
@@ -22593,7 +23456,7 @@ placeholder="Name or address\u2026"
|
|
|
22593
23456
|
description: ""
|
|
22594
23457
|
}
|
|
22595
23458
|
],
|
|
22596
|
-
version: "11.
|
|
23459
|
+
version: "11.7.0"
|
|
22597
23460
|
},
|
|
22598
23461
|
{
|
|
22599
23462
|
id: "page-response",
|
|
@@ -22630,7 +23493,7 @@ placeholder="Name or address\u2026"
|
|
|
22630
23493
|
description: ""
|
|
22631
23494
|
}
|
|
22632
23495
|
],
|
|
22633
|
-
version: "11.
|
|
23496
|
+
version: "11.7.0"
|
|
22634
23497
|
},
|
|
22635
23498
|
{
|
|
22636
23499
|
id: "data-loader",
|
|
@@ -22642,7 +23505,7 @@ placeholder="Name or address\u2026"
|
|
|
22642
23505
|
summary: "",
|
|
22643
23506
|
description: "",
|
|
22644
23507
|
members: [],
|
|
22645
|
-
version: "11.
|
|
23508
|
+
version: "11.7.0"
|
|
22646
23509
|
},
|
|
22647
23510
|
{
|
|
22648
23511
|
id: "uni-server-side-datasource",
|
|
@@ -22781,7 +23644,7 @@ placeholder="Name or address\u2026"
|
|
|
22781
23644
|
description: ""
|
|
22782
23645
|
}
|
|
22783
23646
|
],
|
|
22784
|
-
version: "11.
|
|
23647
|
+
version: "11.7.0"
|
|
22785
23648
|
},
|
|
22786
23649
|
{
|
|
22787
23650
|
id: "uni-datasource",
|
|
@@ -22793,7 +23656,7 @@ placeholder="Name or address\u2026"
|
|
|
22793
23656
|
summary: "",
|
|
22794
23657
|
description: "",
|
|
22795
23658
|
members: [],
|
|
22796
|
-
version: "11.
|
|
23659
|
+
version: "11.7.0"
|
|
22797
23660
|
},
|
|
22798
23661
|
{
|
|
22799
23662
|
id: "uni-record-datasource",
|
|
@@ -22902,7 +23765,7 @@ placeholder="Name or address\u2026"
|
|
|
22902
23765
|
description: ""
|
|
22903
23766
|
}
|
|
22904
23767
|
],
|
|
22905
|
-
version: "11.
|
|
23768
|
+
version: "11.7.0"
|
|
22906
23769
|
},
|
|
22907
23770
|
{
|
|
22908
23771
|
id: "local-storage-service",
|
|
@@ -22957,7 +23820,7 @@ placeholder="Name or address\u2026"
|
|
|
22957
23820
|
description: ""
|
|
22958
23821
|
}
|
|
22959
23822
|
],
|
|
22960
|
-
version: "11.
|
|
23823
|
+
version: "11.7.0"
|
|
22961
23824
|
},
|
|
22962
23825
|
{
|
|
22963
23826
|
id: "alert",
|
|
@@ -23012,7 +23875,7 @@ placeholder="Name or address\u2026"
|
|
|
23012
23875
|
description: ""
|
|
23013
23876
|
}
|
|
23014
23877
|
],
|
|
23015
|
-
version: "11.
|
|
23878
|
+
version: "11.7.0"
|
|
23016
23879
|
},
|
|
23017
23880
|
{
|
|
23018
23881
|
id: "snackbar",
|
|
@@ -23067,7 +23930,7 @@ placeholder="Name or address\u2026"
|
|
|
23067
23930
|
description: ""
|
|
23068
23931
|
}
|
|
23069
23932
|
],
|
|
23070
|
-
version: "11.
|
|
23933
|
+
version: "11.7.0"
|
|
23071
23934
|
},
|
|
23072
23935
|
{
|
|
23073
23936
|
id: "confirmation",
|
|
@@ -23116,7 +23979,7 @@ placeholder="Name or address\u2026"
|
|
|
23116
23979
|
description: ""
|
|
23117
23980
|
}
|
|
23118
23981
|
],
|
|
23119
|
-
version: "11.
|
|
23982
|
+
version: "11.7.0"
|
|
23120
23983
|
},
|
|
23121
23984
|
{
|
|
23122
23985
|
id: "notification-service",
|
|
@@ -23183,7 +24046,7 @@ placeholder="Name or address\u2026"
|
|
|
23183
24046
|
description: ""
|
|
23184
24047
|
}
|
|
23185
24048
|
],
|
|
23186
|
-
version: "11.
|
|
24049
|
+
version: "11.7.0"
|
|
23187
24050
|
},
|
|
23188
24051
|
{
|
|
23189
24052
|
id: "option",
|
|
@@ -23220,7 +24083,7 @@ placeholder="Name or address\u2026"
|
|
|
23220
24083
|
description: "Visible and announced, but not committable; listbox navigation skips it."
|
|
23221
24084
|
}
|
|
23222
24085
|
],
|
|
23223
|
-
version: "11.
|
|
24086
|
+
version: "11.7.0"
|
|
23224
24087
|
},
|
|
23225
24088
|
{
|
|
23226
24089
|
id: "options",
|
|
@@ -23232,7 +24095,7 @@ placeholder="Name or address\u2026"
|
|
|
23232
24095
|
summary: "",
|
|
23233
24096
|
description: "",
|
|
23234
24097
|
members: [],
|
|
23235
|
-
version: "11.
|
|
24098
|
+
version: "11.7.0"
|
|
23236
24099
|
},
|
|
23237
24100
|
{
|
|
23238
24101
|
id: "use-timer",
|
|
@@ -23244,7 +24107,7 @@ placeholder="Name or address\u2026"
|
|
|
23244
24107
|
summary: "",
|
|
23245
24108
|
description: "",
|
|
23246
24109
|
members: [],
|
|
23247
|
-
version: "11.
|
|
24110
|
+
version: "11.7.0"
|
|
23248
24111
|
},
|
|
23249
24112
|
{
|
|
23250
24113
|
id: "acceptable-file",
|
|
@@ -23256,7 +24119,7 @@ placeholder="Name or address\u2026"
|
|
|
23256
24119
|
summary: "",
|
|
23257
24120
|
description: "",
|
|
23258
24121
|
members: [],
|
|
23259
|
-
version: "11.
|
|
24122
|
+
version: "11.7.0"
|
|
23260
24123
|
},
|
|
23261
24124
|
{
|
|
23262
24125
|
id: "get-file-extension",
|
|
@@ -23268,7 +24131,7 @@ placeholder="Name or address\u2026"
|
|
|
23268
24131
|
summary: "",
|
|
23269
24132
|
description: "",
|
|
23270
24133
|
members: [],
|
|
23271
|
-
version: "11.
|
|
24134
|
+
version: "11.7.0"
|
|
23272
24135
|
},
|
|
23273
24136
|
{
|
|
23274
24137
|
id: "query-permission",
|
|
@@ -23280,7 +24143,7 @@ placeholder="Name or address\u2026"
|
|
|
23280
24143
|
summary: "The current state of a browser permission.",
|
|
23281
24144
|
description: 'The current state of a browser permission. Resolves `unsupported` \u2014 never rejects \u2014 where the Permissions API is missing or does not know the name, which is the norm rather than the exception: Firefox and Safari reject `clipboard-write`, for one. Treat `unsupported` as "can\'t tell", not "no".',
|
|
23282
24145
|
members: [],
|
|
23283
|
-
version: "11.
|
|
24146
|
+
version: "11.7.0"
|
|
23284
24147
|
},
|
|
23285
24148
|
{
|
|
23286
24149
|
id: "permission-service",
|
|
@@ -23305,7 +24168,7 @@ placeholder="Name or address\u2026"
|
|
|
23305
24168
|
description: ""
|
|
23306
24169
|
}
|
|
23307
24170
|
],
|
|
23308
|
-
version: "11.
|
|
24171
|
+
version: "11.7.0"
|
|
23309
24172
|
},
|
|
23310
24173
|
{
|
|
23311
24174
|
id: "permission",
|
|
@@ -23317,7 +24180,7 @@ placeholder="Name or address\u2026"
|
|
|
23317
24180
|
summary: "",
|
|
23318
24181
|
description: "",
|
|
23319
24182
|
members: [],
|
|
23320
|
-
version: "11.
|
|
24183
|
+
version: "11.7.0"
|
|
23321
24184
|
},
|
|
23322
24185
|
{
|
|
23323
24186
|
id: "permission-state",
|
|
@@ -23329,7 +24192,7 @@ placeholder="Name or address\u2026"
|
|
|
23329
24192
|
summary: "",
|
|
23330
24193
|
description: "",
|
|
23331
24194
|
members: [],
|
|
23332
|
-
version: "11.
|
|
24195
|
+
version: "11.7.0"
|
|
23333
24196
|
},
|
|
23334
24197
|
{
|
|
23335
24198
|
id: "clipboard-copy-result",
|
|
@@ -23341,7 +24204,7 @@ placeholder="Name or address\u2026"
|
|
|
23341
24204
|
summary: "How a copy ended: - `copied` \u2014 the content is on the clipboard.",
|
|
23342
24205
|
description: "How a copy ended: - `copied` \u2014 the content is on the clipboard. - `denied` \u2014 the user or a policy has blocked clipboard access for this site; only a change in the browser's site settings will fix it. - `unsupported` \u2014 no Clipboard API here (an insecure context, a server render, an old browser) or the browser cannot write one of the types. - `failed` \u2014 the browser refused this attempt for another reason, most often a call made outside a user gesture or from an unfocused document.",
|
|
23343
24206
|
members: [],
|
|
23344
|
-
version: "11.
|
|
24207
|
+
version: "11.7.0"
|
|
23345
24208
|
},
|
|
23346
24209
|
{
|
|
23347
24210
|
id: "clipboard-data",
|
|
@@ -23353,7 +24216,7 @@ placeholder="Name or address\u2026"
|
|
|
23353
24216
|
summary: "One clipboard representation; a promise lets the data arrive after the gesture.",
|
|
23354
24217
|
description: "One clipboard representation; a promise lets the data arrive after the gesture.",
|
|
23355
24218
|
members: [],
|
|
23356
|
-
version: "11.
|
|
24219
|
+
version: "11.7.0"
|
|
23357
24220
|
},
|
|
23358
24221
|
{
|
|
23359
24222
|
id: "clipboard-content",
|
|
@@ -23365,7 +24228,7 @@ placeholder="Name or address\u2026"
|
|
|
23365
24228
|
summary: "What to copy: a plain string, or one item in several representations keyed by MIME type \u2014 `{ 'text/plain': \u2026, 'text/html': \u2026 }`, `{ 'image/png': blob }`.",
|
|
23366
24229
|
description: "What to copy: a plain string, or one item in several representations keyed by MIME type \u2014 `{ 'text/plain': \u2026, 'text/html': \u2026 }`, `{ 'image/png': blob }`.",
|
|
23367
24230
|
members: [],
|
|
23368
|
-
version: "11.
|
|
24231
|
+
version: "11.7.0"
|
|
23369
24232
|
},
|
|
23370
24233
|
{
|
|
23371
24234
|
id: "copy-to-clipboard",
|
|
@@ -23377,7 +24240,7 @@ placeholder="Name or address\u2026"
|
|
|
23377
24240
|
summary: "Copies text or rich content with the Async Clipboard API.",
|
|
23378
24241
|
description: "Copies text or rich content with the Async Clipboard API. Never rejects: the result says what happened, so a caller can tell the user why. Call it directly from the click or key handler. The write starts synchronously, before anything is awaited, because browsers only honor it inside the user gesture \u2014 which is also why the `clipboard-write` permission is consulted after a refusal, to explain it, rather than before the attempt. For content that has to be fetched or rendered first, pass a promise as the value instead of awaiting it yourself.",
|
|
23379
24242
|
members: [],
|
|
23380
|
-
version: "11.
|
|
24243
|
+
version: "11.7.0"
|
|
23381
24244
|
}
|
|
23382
24245
|
],
|
|
23383
24246
|
utilityDocs: [
|
|
@@ -24815,6 +25678,7 @@ var buildComponents = (c) => ({
|
|
|
24815
25678
|
padding: "sm",
|
|
24816
25679
|
bodyPadding: void 0,
|
|
24817
25680
|
inset: "lg",
|
|
25681
|
+
overscroll: "contain",
|
|
24818
25682
|
elevation: "dialog",
|
|
24819
25683
|
backdrop: "scrim",
|
|
24820
25684
|
motion: "panel"
|
|
@@ -24915,7 +25779,12 @@ var buildComponents = (c) => ({
|
|
|
24915
25779
|
tooltipCloseDelay: 150,
|
|
24916
25780
|
motion: "panel"
|
|
24917
25781
|
} },
|
|
24918
|
-
expand: { options: {
|
|
25782
|
+
expand: { options: {
|
|
25783
|
+
motion: "reveal",
|
|
25784
|
+
textRole: "label",
|
|
25785
|
+
sublabelRole: "caption",
|
|
25786
|
+
sublabelColor: "on-background-variant"
|
|
25787
|
+
} },
|
|
24919
25788
|
input: { options: {
|
|
24920
25789
|
typeface: "input",
|
|
24921
25790
|
color: "primary-surface",
|
|
@@ -25088,12 +25957,25 @@ var buildComponents = (c) => ({
|
|
|
25088
25957
|
tagInput: { options: {
|
|
25089
25958
|
chipGap: "xs",
|
|
25090
25959
|
chipSize: "md",
|
|
25960
|
+
chipVariant: "primary",
|
|
25961
|
+
chipTone: "soft",
|
|
25091
25962
|
minInputWidth: "12ch",
|
|
25092
25963
|
listColor: "primary-surface",
|
|
25093
25964
|
listShadow: "menu",
|
|
25094
25965
|
listBorderRadius: "xs",
|
|
25095
25966
|
activeColor: "primary-container",
|
|
25096
|
-
maxSuggestions: 8
|
|
25967
|
+
maxSuggestions: 8,
|
|
25968
|
+
typeface: "label",
|
|
25969
|
+
headingTypeface: "caption",
|
|
25970
|
+
listWidth: "anchor"
|
|
25971
|
+
} },
|
|
25972
|
+
contactInput: { options: {
|
|
25973
|
+
avatarSize: "md",
|
|
25974
|
+
avatarVariant: "primary",
|
|
25975
|
+
nameTypeface: "body-2-short",
|
|
25976
|
+
detailTypeface: "caption",
|
|
25977
|
+
rowGap: "sm",
|
|
25978
|
+
chipAvatar: true
|
|
25097
25979
|
} },
|
|
25098
25980
|
calendar: {
|
|
25099
25981
|
options: {
|
|
@@ -25420,6 +26302,7 @@ var buildComponents = (c) => ({
|
|
|
25420
26302
|
thVerticalBorder: "dotted",
|
|
25421
26303
|
thHorizontalBorder: "light",
|
|
25422
26304
|
thPadding: "sm",
|
|
26305
|
+
sortIcon: "arrowUp",
|
|
25423
26306
|
tdTextRole: "title-small",
|
|
25424
26307
|
tdColor: "primary-surface",
|
|
25425
26308
|
tdStickyColor: "primary-container",
|
|
@@ -25431,10 +26314,18 @@ var buildComponents = (c) => ({
|
|
|
25431
26314
|
loadingSpinnerColor: "primary",
|
|
25432
26315
|
loadingSpinnerSize: 40
|
|
25433
26316
|
} },
|
|
25434
|
-
notificationBadge: {
|
|
25435
|
-
|
|
25436
|
-
|
|
25437
|
-
|
|
26317
|
+
notificationBadge: {
|
|
26318
|
+
options: {
|
|
26319
|
+
borderRadius: "sm",
|
|
26320
|
+
offset: -10,
|
|
26321
|
+
typeface: "overline"
|
|
26322
|
+
},
|
|
26323
|
+
sizes: {
|
|
26324
|
+
sm: { height: 14 },
|
|
26325
|
+
md: { height: 16 },
|
|
26326
|
+
lg: { height: 20 }
|
|
26327
|
+
}
|
|
26328
|
+
},
|
|
25438
26329
|
paginator: { options: {
|
|
25439
26330
|
gap: "xs",
|
|
25440
26331
|
textRole: "label",
|
|
@@ -26989,4 +27880,4 @@ export {
|
|
|
26989
27880
|
buildStoredTheme,
|
|
26990
27881
|
createUniServer
|
|
26991
27882
|
};
|
|
26992
|
-
//# sourceMappingURL=chunk-
|
|
27883
|
+
//# sourceMappingURL=chunk-Y6SCKJEM.js.map
|