@uni-design-system/uni-mcp 11.8.0 → 11.9.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 +2 -0
- package/dist/{chunk-R4RLYWUY.js → chunk-5CI6QESE.js} +401 -225
- package/dist/chunk-5CI6QESE.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-R4RLYWUY.js.map +0 -1
|
@@ -7,17 +7,17 @@ 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.9.0",
|
|
11
|
+
builtAt: "2026-10-22T15:35:59.427Z",
|
|
12
12
|
frameworks: [
|
|
13
13
|
"angular"
|
|
14
14
|
],
|
|
15
15
|
counts: {
|
|
16
16
|
components: 89,
|
|
17
|
-
tokens:
|
|
17
|
+
tokens: 514,
|
|
18
18
|
themes: 2,
|
|
19
|
-
examples:
|
|
20
|
-
utilities:
|
|
19
|
+
examples: 263,
|
|
20
|
+
utilities: 124
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
components: [
|
|
@@ -28,7 +28,7 @@ var uni_index_default = {
|
|
|
28
28
|
summary: "",
|
|
29
29
|
description: "",
|
|
30
30
|
category: "feedback",
|
|
31
|
-
version: "11.
|
|
31
|
+
version: "11.9.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.9.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.9.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.9.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.9.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.9.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.9.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.9.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.9.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.9.0",
|
|
1034
1034
|
bindings: {
|
|
1035
1035
|
angular: {
|
|
1036
1036
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1198,7 +1198,7 @@ var uni_index_default = {
|
|
|
1198
1198
|
summary: "",
|
|
1199
1199
|
description: "",
|
|
1200
1200
|
category: "primitives",
|
|
1201
|
-
version: "11.
|
|
1201
|
+
version: "11.9.0",
|
|
1202
1202
|
bindings: {
|
|
1203
1203
|
angular: {
|
|
1204
1204
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1230,7 +1230,7 @@ var uni_index_default = {
|
|
|
1230
1230
|
summary: "Inline month calendar: single-date or start\u2013end range selection, day markers (availability dots), min/max fences and disabled dates.",
|
|
1231
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.",
|
|
1232
1232
|
category: "forms",
|
|
1233
|
-
version: "11.
|
|
1233
|
+
version: "11.9.0",
|
|
1234
1234
|
bindings: {
|
|
1235
1235
|
angular: {
|
|
1236
1236
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1471,7 +1471,7 @@ var uni_index_default = {
|
|
|
1471
1471
|
summary: "Anchored coach-mark panel that dims the page and cuts a spotlight hole around its target.",
|
|
1472
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).',
|
|
1473
1473
|
category: "components",
|
|
1474
|
-
version: "11.
|
|
1474
|
+
version: "11.9.0",
|
|
1475
1475
|
bindings: {
|
|
1476
1476
|
angular: {
|
|
1477
1477
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1691,7 +1691,7 @@ var uni_index_default = {
|
|
|
1691
1691
|
summary: "",
|
|
1692
1692
|
description: "",
|
|
1693
1693
|
category: "layout",
|
|
1694
|
-
version: "11.
|
|
1694
|
+
version: "11.9.0",
|
|
1695
1695
|
bindings: {
|
|
1696
1696
|
angular: {
|
|
1697
1697
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1753,7 +1753,7 @@ var uni_index_default = {
|
|
|
1753
1753
|
summary: "",
|
|
1754
1754
|
description: "",
|
|
1755
1755
|
category: "layout",
|
|
1756
|
-
version: "11.
|
|
1756
|
+
version: "11.9.0",
|
|
1757
1757
|
bindings: {
|
|
1758
1758
|
angular: {
|
|
1759
1759
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1794,7 +1794,7 @@ var uni_index_default = {
|
|
|
1794
1794
|
summary: "",
|
|
1795
1795
|
description: "",
|
|
1796
1796
|
category: "layout",
|
|
1797
|
-
version: "11.
|
|
1797
|
+
version: "11.9.0",
|
|
1798
1798
|
bindings: {
|
|
1799
1799
|
angular: {
|
|
1800
1800
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1851,7 +1851,7 @@ var uni_index_default = {
|
|
|
1851
1851
|
summary: "",
|
|
1852
1852
|
description: "",
|
|
1853
1853
|
category: "layout",
|
|
1854
|
-
version: "11.
|
|
1854
|
+
version: "11.9.0",
|
|
1855
1855
|
bindings: {
|
|
1856
1856
|
angular: {
|
|
1857
1857
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1906,7 +1906,7 @@ var uni_index_default = {
|
|
|
1906
1906
|
summary: "",
|
|
1907
1907
|
description: "",
|
|
1908
1908
|
category: "forms",
|
|
1909
|
-
version: "11.
|
|
1909
|
+
version: "11.9.0",
|
|
1910
1910
|
bindings: {
|
|
1911
1911
|
angular: {
|
|
1912
1912
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -2128,7 +2128,7 @@ var uni_index_default = {
|
|
|
2128
2128
|
summary: "Form-bound, closed-set, single-select autocomplete: `FormValueControl<T | null>` over object `Options<T>`, type-to-filter, commit-on-select.",
|
|
2129
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.",
|
|
2130
2130
|
category: "forms",
|
|
2131
|
-
version: "11.
|
|
2131
|
+
version: "11.9.0",
|
|
2132
2132
|
bindings: {
|
|
2133
2133
|
angular: {
|
|
2134
2134
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -2430,7 +2430,7 @@ emptyText="No countries found"
|
|
|
2430
2430
|
summary: "",
|
|
2431
2431
|
description: "",
|
|
2432
2432
|
category: "feedback",
|
|
2433
|
-
version: "11.
|
|
2433
|
+
version: "11.9.0",
|
|
2434
2434
|
bindings: {
|
|
2435
2435
|
angular: {
|
|
2436
2436
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -2477,7 +2477,7 @@ emptyText="No countries found"
|
|
|
2477
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
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
2479
|
category: "forms",
|
|
2480
|
-
version: "11.
|
|
2480
|
+
version: "11.9.0",
|
|
2481
2481
|
bindings: {
|
|
2482
2482
|
angular: {
|
|
2483
2483
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -2762,7 +2762,7 @@ emptyText="No countries found"
|
|
|
2762
2762
|
summary: "",
|
|
2763
2763
|
description: "",
|
|
2764
2764
|
category: "forms",
|
|
2765
|
-
version: "11.
|
|
2765
|
+
version: "11.9.0",
|
|
2766
2766
|
bindings: {
|
|
2767
2767
|
angular: {
|
|
2768
2768
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -2858,10 +2858,10 @@ emptyText="No countries found"
|
|
|
2858
2858
|
id: "data-table",
|
|
2859
2859
|
name: "DataTable",
|
|
2860
2860
|
status: "stable",
|
|
2861
|
-
summary: "",
|
|
2862
|
-
description: "",
|
|
2861
|
+
summary: "Data grid over a `UniDatasource`: sortable headers, a leading selection column, and an expandable detail row per record.",
|
|
2862
|
+
description: "Data grid over a `UniDatasource`: sortable headers, a leading selection column, and an expandable detail row per record. Rows are addressed by the datasource's `rowId` where it has one \u2014 so a selection survives a re-fetch that rebuilds the records, and the expanded row follows its record through a sort \u2014 and by reference (selection) or page index (expansion) where it has none.",
|
|
2863
2863
|
category: "data",
|
|
2864
|
-
version: "11.
|
|
2864
|
+
version: "11.9.0",
|
|
2865
2865
|
bindings: {
|
|
2866
2866
|
angular: {
|
|
2867
2867
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -2881,13 +2881,36 @@ emptyText="No countries found"
|
|
|
2881
2881
|
required: true,
|
|
2882
2882
|
description: ""
|
|
2883
2883
|
},
|
|
2884
|
+
{
|
|
2885
|
+
name: "expanded",
|
|
2886
|
+
kind: "model",
|
|
2887
|
+
type: "RowKey | null",
|
|
2888
|
+
required: false,
|
|
2889
|
+
default: "null",
|
|
2890
|
+
description: "The expanded row, two-way: its `rowId` when the datasource has one, else its index on the page. `null` collapses every row. Keyed by id, a deep link can open a row before the records arrive, and a sort or a realtime reorder keeps the same record open."
|
|
2891
|
+
},
|
|
2884
2892
|
{
|
|
2885
2893
|
name: "useMultiSelect",
|
|
2886
2894
|
kind: "input",
|
|
2887
2895
|
type: "boolean",
|
|
2888
2896
|
required: false,
|
|
2889
2897
|
default: "false",
|
|
2890
|
-
description: ""
|
|
2898
|
+
description: "Draw a leading checkbox column over the datasource's `selections`: a header box that selects or clears every selectable row on the page (`indeterminate` while only some are), and a box per row."
|
|
2899
|
+
},
|
|
2900
|
+
{
|
|
2901
|
+
name: "selectAllLabel",
|
|
2902
|
+
kind: "input",
|
|
2903
|
+
type: "string",
|
|
2904
|
+
required: false,
|
|
2905
|
+
default: "'Select all rows'",
|
|
2906
|
+
description: "Accessible name of the header checkbox."
|
|
2907
|
+
},
|
|
2908
|
+
{
|
|
2909
|
+
name: "selectionChange",
|
|
2910
|
+
kind: "output",
|
|
2911
|
+
type: "T[]",
|
|
2912
|
+
required: false,
|
|
2913
|
+
description: "The datasource's selection after a checkbox changed it \u2014 the same array `selections()` holds."
|
|
2891
2914
|
},
|
|
2892
2915
|
{
|
|
2893
2916
|
name: "useRowClick",
|
|
@@ -3097,6 +3120,44 @@ emptyText="No countries found"
|
|
|
3097
3120
|
base[1]
|
|
3098
3121
|
]"
|
|
3099
3122
|
/>`
|
|
3123
|
+
},
|
|
3124
|
+
{
|
|
3125
|
+
title: "Selection",
|
|
3126
|
+
framework: "angular",
|
|
3127
|
+
code: `<!-- Storybook story: Selection -->
|
|
3128
|
+
<uni-data-table
|
|
3129
|
+
[datasource]="datasource"
|
|
3130
|
+
[columns]="columns"
|
|
3131
|
+
[useMultiSelect]="true"
|
|
3132
|
+
[selectableWhen]="selectable"
|
|
3133
|
+
[useRowClick]="false"
|
|
3134
|
+
[selectLabel]="selectLabelOf"
|
|
3135
|
+
(selectionChange)="selected = $event"
|
|
3136
|
+
/>
|
|
3137
|
+
<p uni-text="body-2">Selected: {{ selected.length ? (selected | json) : 'nothing' }}</p>`
|
|
3138
|
+
},
|
|
3139
|
+
{
|
|
3140
|
+
title: "Expanded Row",
|
|
3141
|
+
framework: "angular",
|
|
3142
|
+
code: `<!-- Storybook story: Expanded Row -->
|
|
3143
|
+
<div row-layout gap="sm" alignItems="center" paddingBottom="sm">
|
|
3144
|
+
<button text-button size="sm" variant="secondary" (click)="expanded = 'po-104'">Open po-104</button>
|
|
3145
|
+
<button text-button size="sm" variant="ghost" (click)="expanded = null">Collapse</button>
|
|
3146
|
+
<span uni-text="body-2">Expanded: {{ expanded ?? 'none' }}</span>
|
|
3147
|
+
</div>
|
|
3148
|
+
<uni-data-table
|
|
3149
|
+
[datasource]="datasource"
|
|
3150
|
+
[columns]="columns"
|
|
3151
|
+
[detailRowTemplate]="detail"
|
|
3152
|
+
[(expanded)]="expanded"
|
|
3153
|
+
[expandableWhen]="expandable"
|
|
3154
|
+
[rowClass]="dim"
|
|
3155
|
+
/>
|
|
3156
|
+
<ng-template #detail let-row>
|
|
3157
|
+
<div box-layout padding="md" uni-text="body-2-long">
|
|
3158
|
+
{{ row.item }} from {{ row.vendor }} \u2014 tracking and notes would go here.
|
|
3159
|
+
</div>
|
|
3160
|
+
</ng-template>`
|
|
3100
3161
|
}
|
|
3101
3162
|
],
|
|
3102
3163
|
guidelines: {
|
|
@@ -3106,7 +3167,8 @@ emptyText="No countries found"
|
|
|
3106
3167
|
accessibility: [
|
|
3107
3168
|
'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.',
|
|
3108
3169
|
'The loading overlay is a `role="status"` region and the table is `aria-busy` while loading.',
|
|
3109
|
-
"Collapsed detail rows are `inert`, out of the accessibility tree until expanded
|
|
3170
|
+
"Collapsed detail rows are `inert`, out of the accessibility tree until expanded; a row with a detail carries `aria-expanded`.",
|
|
3171
|
+
'Selection boxes are real `uni-checkbox`es named without drawing \u2014 "Select row" and "Select all rows" by default, or per row through `selectLabel` \u2014 and a box is its own control: a click or Space on it is never the row\'s click.'
|
|
3110
3172
|
]
|
|
3111
3173
|
},
|
|
3112
3174
|
relatedTokens: []
|
|
@@ -3118,7 +3180,7 @@ emptyText="No countries found"
|
|
|
3118
3180
|
summary: "Date field with free-typed parsing and a popup calendar.",
|
|
3119
3181
|
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.",
|
|
3120
3182
|
category: "forms",
|
|
3121
|
-
version: "11.
|
|
3183
|
+
version: "11.9.0",
|
|
3122
3184
|
bindings: {
|
|
3123
3185
|
angular: {
|
|
3124
3186
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3349,7 +3411,7 @@ emptyText="No countries found"
|
|
|
3349
3411
|
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.",
|
|
3350
3412
|
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.",
|
|
3351
3413
|
category: "forms",
|
|
3352
|
-
version: "11.
|
|
3414
|
+
version: "11.9.0",
|
|
3353
3415
|
bindings: {
|
|
3354
3416
|
angular: {
|
|
3355
3417
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3542,7 +3604,7 @@ emptyText="No countries found"
|
|
|
3542
3604
|
summary: "Text input that emits `change` only after the user pauses typing.",
|
|
3543
3605
|
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.",
|
|
3544
3606
|
category: "forms",
|
|
3545
|
-
version: "11.
|
|
3607
|
+
version: "11.9.0",
|
|
3546
3608
|
bindings: {
|
|
3547
3609
|
angular: {
|
|
3548
3610
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3690,7 +3752,7 @@ emptyText="No countries found"
|
|
|
3690
3752
|
summary: "Modal dialog on the native `<dialog>` element, laid out as three rows: an optional `[dialog-header]`, the projected body, an optional `[dialog-buttons]`.",
|
|
3691
3753
|
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.",
|
|
3692
3754
|
category: "feedback",
|
|
3693
|
-
version: "11.
|
|
3755
|
+
version: "11.9.0",
|
|
3694
3756
|
bindings: {
|
|
3695
3757
|
angular: {
|
|
3696
3758
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3860,7 +3922,7 @@ uni-dialog
|
|
|
3860
3922
|
summary: "The dialog's pinned footer action row.",
|
|
3861
3923
|
description: "The dialog's pinned footer action row. Empty, it renders a Confirm/Cancel pair wired to the dialog. Project your own buttons and they replace the pair while keeping the row's chrome \u2014 padding, gap, justification, divider, `stretch` and `reverseOrder`. A `[dialog-footnote]` projects on the leading edge, pushing the actions to the trailing one.",
|
|
3862
3924
|
category: "feedback",
|
|
3863
|
-
version: "11.
|
|
3925
|
+
version: "11.9.0",
|
|
3864
3926
|
bindings: {
|
|
3865
3927
|
angular: {
|
|
3866
3928
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3980,7 +4042,7 @@ uni-dialog
|
|
|
3980
4042
|
summary: "The dialog's pinned header row, in one of two shapes: - **Title bar** (default): one line of text, set in the theme's `textRole` and aligned by `textAlign`, beside a close button.",
|
|
3981
4043
|
description: "The dialog's pinned header row, in one of two shapes: - **Title bar** (default): one line of text, set in the theme's `textRole` and aligned by `textAlign`, beside a close button. - **Rich** (`rich`): the projection is rendered as a block \u2014 an eyebrow, a headline, a blurb \u2014 beside the close button, in its own `richColor` and `richPadding`. Mark the headline `[dialog-title]` so it alone names the dialog.",
|
|
3982
4044
|
category: "feedback",
|
|
3983
|
-
version: "11.
|
|
4045
|
+
version: "11.9.0",
|
|
3984
4046
|
bindings: {
|
|
3985
4047
|
angular: {
|
|
3986
4048
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4029,7 +4091,7 @@ uni-dialog
|
|
|
4029
4091
|
summary: "Marks the element that names the dialog inside a rich `[dialog-header]`.",
|
|
4030
4092
|
description: "Marks the element that names the dialog inside a rich `[dialog-header]`. A rich head projects an eyebrow, a headline and a blurb; the dialog should be labelled by the headline alone, not read all three as its name. Put this on the headline and it carries the id the dialog's `aria-labelledby` points at. Without one, the whole projected block is the label.",
|
|
4031
4093
|
category: "feedback",
|
|
4032
|
-
version: "11.
|
|
4094
|
+
version: "11.9.0",
|
|
4033
4095
|
bindings: {
|
|
4034
4096
|
angular: {
|
|
4035
4097
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4053,7 +4115,7 @@ uni-dialog
|
|
|
4053
4115
|
summary: "",
|
|
4054
4116
|
description: "",
|
|
4055
4117
|
category: "layout",
|
|
4056
|
-
version: "11.
|
|
4118
|
+
version: "11.9.0",
|
|
4057
4119
|
bindings: {
|
|
4058
4120
|
angular: {
|
|
4059
4121
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4109,7 +4171,7 @@ uni-dialog
|
|
|
4109
4171
|
summary: "",
|
|
4110
4172
|
description: "",
|
|
4111
4173
|
category: "directives",
|
|
4112
|
-
version: "11.
|
|
4174
|
+
version: "11.9.0",
|
|
4113
4175
|
bindings: {
|
|
4114
4176
|
angular: {
|
|
4115
4177
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4141,7 +4203,7 @@ uni-dialog
|
|
|
4141
4203
|
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.",
|
|
4142
4204
|
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. With `modal` off it is shown as a `popover="manual"` instead: still the top layer, but no focus trap, no inert page and no backdrop \u2014 a workbench beside a live document. **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.',
|
|
4143
4205
|
category: "components",
|
|
4144
|
-
version: "11.
|
|
4206
|
+
version: "11.9.0",
|
|
4145
4207
|
bindings: {
|
|
4146
4208
|
angular: {
|
|
4147
4209
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4371,7 +4433,7 @@ initialFocus="input"
|
|
|
4371
4433
|
summary: "The drawer's pinned footer action row \u2014 the save bar of an editor panel.",
|
|
4372
4434
|
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. Empty, it renders a Cancel/Save pair wired to the drawer. Project your own buttons and they replace the pair while keeping the row's chrome; a `[drawer-footnote]` projects on the leading edge.",
|
|
4373
4435
|
category: "primitives",
|
|
4374
|
-
version: "11.
|
|
4436
|
+
version: "11.9.0",
|
|
4375
4437
|
bindings: {
|
|
4376
4438
|
angular: {
|
|
4377
4439
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4476,7 +4538,7 @@ initialFocus="input"
|
|
|
4476
4538
|
summary: "The drawer's pinned header row: a title, and optionally a close button.",
|
|
4477
4539
|
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.",
|
|
4478
4540
|
category: "components",
|
|
4479
|
-
version: "11.
|
|
4541
|
+
version: "11.9.0",
|
|
4480
4542
|
bindings: {
|
|
4481
4543
|
angular: {
|
|
4482
4544
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4524,7 +4586,7 @@ initialFocus="input"
|
|
|
4524
4586
|
summary: "",
|
|
4525
4587
|
description: "",
|
|
4526
4588
|
category: "components",
|
|
4527
|
-
version: "11.
|
|
4589
|
+
version: "11.9.0",
|
|
4528
4590
|
bindings: {
|
|
4529
4591
|
angular: {
|
|
4530
4592
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4658,7 +4720,7 @@ initialFocus="input"
|
|
|
4658
4720
|
summary: "",
|
|
4659
4721
|
description: "",
|
|
4660
4722
|
category: "layout",
|
|
4661
|
-
version: "11.
|
|
4723
|
+
version: "11.9.0",
|
|
4662
4724
|
bindings: {
|
|
4663
4725
|
angular: {
|
|
4664
4726
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4765,7 +4827,7 @@ initialFocus="input"
|
|
|
4765
4827
|
summary: "",
|
|
4766
4828
|
description: "",
|
|
4767
4829
|
category: "layout",
|
|
4768
|
-
version: "11.
|
|
4830
|
+
version: "11.9.0",
|
|
4769
4831
|
bindings: {
|
|
4770
4832
|
angular: {
|
|
4771
4833
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4836,7 +4898,7 @@ initialFocus="input"
|
|
|
4836
4898
|
summary: "Trigger for a {@link UniExpandComponent} region.",
|
|
4837
4899
|
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.",
|
|
4838
4900
|
category: "layout",
|
|
4839
|
-
version: "11.
|
|
4901
|
+
version: "11.9.0",
|
|
4840
4902
|
bindings: {
|
|
4841
4903
|
angular: {
|
|
4842
4904
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4921,7 +4983,7 @@ initialFocus="input"
|
|
|
4921
4983
|
summary: "",
|
|
4922
4984
|
description: "",
|
|
4923
4985
|
category: "forms",
|
|
4924
|
-
version: "11.
|
|
4986
|
+
version: "11.9.0",
|
|
4925
4987
|
bindings: {
|
|
4926
4988
|
angular: {
|
|
4927
4989
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5079,7 +5141,7 @@ initialFocus="input"
|
|
|
5079
5141
|
summary: "",
|
|
5080
5142
|
description: "",
|
|
5081
5143
|
category: "layout",
|
|
5082
|
-
version: "11.
|
|
5144
|
+
version: "11.9.0",
|
|
5083
5145
|
bindings: {
|
|
5084
5146
|
angular: {
|
|
5085
5147
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5176,7 +5238,7 @@ initialFocus="input"
|
|
|
5176
5238
|
summary: "",
|
|
5177
5239
|
description: "",
|
|
5178
5240
|
category: "layout",
|
|
5179
|
-
version: "11.
|
|
5241
|
+
version: "11.9.0",
|
|
5180
5242
|
bindings: {
|
|
5181
5243
|
angular: {
|
|
5182
5244
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5208,7 +5270,7 @@ initialFocus="input"
|
|
|
5208
5270
|
summary: "",
|
|
5209
5271
|
description: "",
|
|
5210
5272
|
category: "primitives",
|
|
5211
|
-
version: "11.
|
|
5273
|
+
version: "11.9.0",
|
|
5212
5274
|
bindings: {
|
|
5213
5275
|
angular: {
|
|
5214
5276
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5268,7 +5330,7 @@ initialFocus="input"
|
|
|
5268
5330
|
summary: "",
|
|
5269
5331
|
description: "",
|
|
5270
5332
|
category: "primitives",
|
|
5271
|
-
version: "11.
|
|
5333
|
+
version: "11.9.0",
|
|
5272
5334
|
bindings: {
|
|
5273
5335
|
angular: {
|
|
5274
5336
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5381,7 +5443,7 @@ initialFocus="input"
|
|
|
5381
5443
|
summary: "A button that lives inside a sentence.",
|
|
5382
5444
|
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.",
|
|
5383
5445
|
category: "primitives",
|
|
5384
|
-
version: "11.
|
|
5446
|
+
version: "11.9.0",
|
|
5385
5447
|
bindings: {
|
|
5386
5448
|
angular: {
|
|
5387
5449
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5496,7 +5558,7 @@ initialFocus="input"
|
|
|
5496
5558
|
summary: "",
|
|
5497
5559
|
description: "",
|
|
5498
5560
|
category: "forms",
|
|
5499
|
-
version: "11.
|
|
5561
|
+
version: "11.9.0",
|
|
5500
5562
|
bindings: {
|
|
5501
5563
|
angular: {
|
|
5502
5564
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5796,7 +5858,7 @@ initialFocus="input"
|
|
|
5796
5858
|
summary: "",
|
|
5797
5859
|
description: "",
|
|
5798
5860
|
category: "forms",
|
|
5799
|
-
version: "11.
|
|
5861
|
+
version: "11.9.0",
|
|
5800
5862
|
bindings: {
|
|
5801
5863
|
angular: {
|
|
5802
5864
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5925,7 +5987,7 @@ initialFocus="input"
|
|
|
5925
5987
|
summary: "",
|
|
5926
5988
|
description: "",
|
|
5927
5989
|
category: "components",
|
|
5928
|
-
version: "11.
|
|
5990
|
+
version: "11.9.0",
|
|
5929
5991
|
bindings: {
|
|
5930
5992
|
angular: {
|
|
5931
5993
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5995,7 +6057,7 @@ initialFocus="input"
|
|
|
5995
6057
|
summary: "",
|
|
5996
6058
|
description: "",
|
|
5997
6059
|
category: "layout",
|
|
5998
|
-
version: "11.
|
|
6060
|
+
version: "11.9.0",
|
|
5999
6061
|
bindings: {
|
|
6000
6062
|
angular: {
|
|
6001
6063
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -6099,7 +6161,7 @@ initialFocus="input"
|
|
|
6099
6161
|
summary: "",
|
|
6100
6162
|
description: "",
|
|
6101
6163
|
category: "layout",
|
|
6102
|
-
version: "11.
|
|
6164
|
+
version: "11.9.0",
|
|
6103
6165
|
bindings: {
|
|
6104
6166
|
angular: {
|
|
6105
6167
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -6181,7 +6243,7 @@ initialFocus="input"
|
|
|
6181
6243
|
summary: "",
|
|
6182
6244
|
description: "",
|
|
6183
6245
|
category: "forms",
|
|
6184
|
-
version: "11.
|
|
6246
|
+
version: "11.9.0",
|
|
6185
6247
|
bindings: {
|
|
6186
6248
|
angular: {
|
|
6187
6249
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -6275,7 +6337,7 @@ initialFocus="input"
|
|
|
6275
6337
|
summary: "",
|
|
6276
6338
|
description: "",
|
|
6277
6339
|
category: "forms",
|
|
6278
|
-
version: "11.
|
|
6340
|
+
version: "11.9.0",
|
|
6279
6341
|
bindings: {
|
|
6280
6342
|
angular: {
|
|
6281
6343
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -6454,7 +6516,7 @@ initialFocus="input"
|
|
|
6454
6516
|
summary: "",
|
|
6455
6517
|
description: "",
|
|
6456
6518
|
category: "feedback",
|
|
6457
|
-
version: "11.
|
|
6519
|
+
version: "11.9.0",
|
|
6458
6520
|
bindings: {
|
|
6459
6521
|
angular: {
|
|
6460
6522
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -6714,7 +6776,7 @@ initialFocus="input"
|
|
|
6714
6776
|
summary: "",
|
|
6715
6777
|
description: "",
|
|
6716
6778
|
category: "feedback",
|
|
6717
|
-
version: "11.
|
|
6779
|
+
version: "11.9.0",
|
|
6718
6780
|
bindings: {
|
|
6719
6781
|
angular: {
|
|
6720
6782
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -6738,7 +6800,7 @@ initialFocus="input"
|
|
|
6738
6800
|
summary: "Numeric field with locale-aware parsing, `Intl` formatting on commit, prefix/suffix adornments and steppers that hold to repeat.",
|
|
6739
6801
|
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.',
|
|
6740
6802
|
category: "forms",
|
|
6741
|
-
version: "11.
|
|
6803
|
+
version: "11.9.0",
|
|
6742
6804
|
bindings: {
|
|
6743
6805
|
angular: {
|
|
6744
6806
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7172,7 +7234,7 @@ initialFocus="input"
|
|
|
7172
7234
|
summary: "Two linked numeric fields in one chrome, with one `{ start, end }` value \u2014 price filters, thresholds, tolerances.",
|
|
7173
7235
|
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.",
|
|
7174
7236
|
category: "forms",
|
|
7175
|
-
version: "11.
|
|
7237
|
+
version: "11.9.0",
|
|
7176
7238
|
bindings: {
|
|
7177
7239
|
angular: {
|
|
7178
7240
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7463,7 +7525,7 @@ initialFocus="input"
|
|
|
7463
7525
|
summary: "",
|
|
7464
7526
|
description: "",
|
|
7465
7527
|
category: "data",
|
|
7466
|
-
version: "11.
|
|
7528
|
+
version: "11.9.0",
|
|
7467
7529
|
bindings: {
|
|
7468
7530
|
angular: {
|
|
7469
7531
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7564,7 +7626,7 @@ initialFocus="input"
|
|
|
7564
7626
|
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.",
|
|
7565
7627
|
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.',
|
|
7566
7628
|
category: "layout",
|
|
7567
|
-
version: "11.
|
|
7629
|
+
version: "11.9.0",
|
|
7568
7630
|
bindings: {
|
|
7569
7631
|
angular: {
|
|
7570
7632
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7756,7 +7818,7 @@ initialFocus="input"
|
|
|
7756
7818
|
summary: "",
|
|
7757
7819
|
description: "",
|
|
7758
7820
|
category: "feedback",
|
|
7759
|
-
version: "11.
|
|
7821
|
+
version: "11.9.0",
|
|
7760
7822
|
bindings: {
|
|
7761
7823
|
angular: {
|
|
7762
7824
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7820,7 +7882,7 @@ initialFocus="input"
|
|
|
7820
7882
|
summary: "",
|
|
7821
7883
|
description: "",
|
|
7822
7884
|
category: "feedback",
|
|
7823
|
-
version: "11.
|
|
7885
|
+
version: "11.9.0",
|
|
7824
7886
|
bindings: {
|
|
7825
7887
|
angular: {
|
|
7826
7888
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7892,7 +7954,7 @@ initialFocus="input"
|
|
|
7892
7954
|
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.",
|
|
7893
7955
|
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.',
|
|
7894
7956
|
category: "forms",
|
|
7895
|
-
version: "11.
|
|
7957
|
+
version: "11.9.0",
|
|
7896
7958
|
bindings: {
|
|
7897
7959
|
angular: {
|
|
7898
7960
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8095,7 +8157,7 @@ initialFocus="input"
|
|
|
8095
8157
|
summary: "",
|
|
8096
8158
|
description: "",
|
|
8097
8159
|
category: "forms",
|
|
8098
|
-
version: "11.
|
|
8160
|
+
version: "11.9.0",
|
|
8099
8161
|
bindings: {
|
|
8100
8162
|
angular: {
|
|
8101
8163
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8324,7 +8386,7 @@ initialFocus="input"
|
|
|
8324
8386
|
summary: "Content for each of a radio group's options, in place of the plain label string.",
|
|
8325
8387
|
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> ```',
|
|
8326
8388
|
category: "forms",
|
|
8327
|
-
version: "11.
|
|
8389
|
+
version: "11.9.0",
|
|
8328
8390
|
bindings: {
|
|
8329
8391
|
angular: {
|
|
8330
8392
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8348,7 +8410,7 @@ initialFocus="input"
|
|
|
8348
8410
|
summary: "",
|
|
8349
8411
|
description: "",
|
|
8350
8412
|
category: "directives",
|
|
8351
|
-
version: "11.
|
|
8413
|
+
version: "11.9.0",
|
|
8352
8414
|
bindings: {
|
|
8353
8415
|
angular: {
|
|
8354
8416
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8372,7 +8434,7 @@ initialFocus="input"
|
|
|
8372
8434
|
summary: "",
|
|
8373
8435
|
description: "",
|
|
8374
8436
|
category: "layout",
|
|
8375
|
-
version: "11.
|
|
8437
|
+
version: "11.9.0",
|
|
8376
8438
|
bindings: {
|
|
8377
8439
|
angular: {
|
|
8378
8440
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8427,7 +8489,7 @@ initialFocus="input"
|
|
|
8427
8489
|
summary: "Native scroll area with theme-driven scrollbar styling.",
|
|
8428
8490
|
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.",
|
|
8429
8491
|
category: "layout",
|
|
8430
|
-
version: "11.
|
|
8492
|
+
version: "11.9.0",
|
|
8431
8493
|
bindings: {
|
|
8432
8494
|
angular: {
|
|
8433
8495
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8594,7 +8656,7 @@ initialFocus="input"
|
|
|
8594
8656
|
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.",
|
|
8595
8657
|
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.",
|
|
8596
8658
|
category: "forms",
|
|
8597
|
-
version: "11.
|
|
8659
|
+
version: "11.9.0",
|
|
8598
8660
|
bindings: {
|
|
8599
8661
|
angular: {
|
|
8600
8662
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8729,7 +8791,7 @@ initialFocus="input"
|
|
|
8729
8791
|
summary: "",
|
|
8730
8792
|
description: "",
|
|
8731
8793
|
category: "forms",
|
|
8732
|
-
version: "11.
|
|
8794
|
+
version: "11.9.0",
|
|
8733
8795
|
bindings: {
|
|
8734
8796
|
angular: {
|
|
8735
8797
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8901,7 +8963,7 @@ initialFocus="input"
|
|
|
8901
8963
|
summary: "Loading placeholder painted with surface tokens.",
|
|
8902
8964
|
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.",
|
|
8903
8965
|
category: "components",
|
|
8904
|
-
version: "11.
|
|
8966
|
+
version: "11.9.0",
|
|
8905
8967
|
bindings: {
|
|
8906
8968
|
angular: {
|
|
8907
8969
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9052,7 +9114,7 @@ initialFocus="input"
|
|
|
9052
9114
|
summary: "Bounded numeric input by pointer, for values where the *position* is the information: volume, opacity, weightings, price filters.",
|
|
9053
9115
|
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.",
|
|
9054
9116
|
category: "forms",
|
|
9055
|
-
version: "11.
|
|
9117
|
+
version: "11.9.0",
|
|
9056
9118
|
bindings: {
|
|
9057
9119
|
angular: {
|
|
9058
9120
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9329,7 +9391,7 @@ initialFocus="input"
|
|
|
9329
9391
|
summary: "",
|
|
9330
9392
|
description: "",
|
|
9331
9393
|
category: "feedback",
|
|
9332
|
-
version: "11.
|
|
9394
|
+
version: "11.9.0",
|
|
9333
9395
|
bindings: {
|
|
9334
9396
|
angular: {
|
|
9335
9397
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9441,7 +9503,7 @@ initialFocus="input"
|
|
|
9441
9503
|
summary: "",
|
|
9442
9504
|
description: "",
|
|
9443
9505
|
category: "data",
|
|
9444
|
-
version: "11.
|
|
9506
|
+
version: "11.9.0",
|
|
9445
9507
|
bindings: {
|
|
9446
9508
|
angular: {
|
|
9447
9509
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9515,7 +9577,7 @@ initialFocus="input"
|
|
|
9515
9577
|
summary: "",
|
|
9516
9578
|
description: "",
|
|
9517
9579
|
category: "layout",
|
|
9518
|
-
version: "11.
|
|
9580
|
+
version: "11.9.0",
|
|
9519
9581
|
bindings: {
|
|
9520
9582
|
angular: {
|
|
9521
9583
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9570,7 +9632,7 @@ initialFocus="input"
|
|
|
9570
9632
|
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.',
|
|
9571
9633
|
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.',
|
|
9572
9634
|
category: "components",
|
|
9573
|
-
version: "11.
|
|
9635
|
+
version: "11.9.0",
|
|
9574
9636
|
bindings: {
|
|
9575
9637
|
angular: {
|
|
9576
9638
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9688,7 +9750,7 @@ initialFocus="input"
|
|
|
9688
9750
|
summary: "",
|
|
9689
9751
|
description: "",
|
|
9690
9752
|
category: "primitives",
|
|
9691
|
-
version: "11.
|
|
9753
|
+
version: "11.9.0",
|
|
9692
9754
|
bindings: {
|
|
9693
9755
|
angular: {
|
|
9694
9756
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9777,7 +9839,7 @@ initialFocus="input"
|
|
|
9777
9839
|
summary: "One tab inside `uni-tabs`: a label for the tablist plus projected panel content.",
|
|
9778
9840
|
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.",
|
|
9779
9841
|
category: "components",
|
|
9780
|
-
version: "11.
|
|
9842
|
+
version: "11.9.0",
|
|
9781
9843
|
bindings: {
|
|
9782
9844
|
angular: {
|
|
9783
9845
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9817,7 +9879,7 @@ initialFocus="input"
|
|
|
9817
9879
|
summary: "WAI-ARIA tabs: roving tabindex, automatic activation (arrow keys move focus and select), Home/End, disabled tabs skipped.",
|
|
9818
9880
|
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.",
|
|
9819
9881
|
category: "components",
|
|
9820
|
-
version: "11.
|
|
9882
|
+
version: "11.9.0",
|
|
9821
9883
|
bindings: {
|
|
9822
9884
|
angular: {
|
|
9823
9885
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9905,7 +9967,7 @@ initialFocus="input"
|
|
|
9905
9967
|
summary: "Compact chip for categories, states, filters and tokens.",
|
|
9906
9968
|
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.",
|
|
9907
9969
|
category: "data",
|
|
9908
|
-
version: "11.
|
|
9970
|
+
version: "11.9.0",
|
|
9909
9971
|
bindings: {
|
|
9910
9972
|
angular: {
|
|
9911
9973
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -10283,7 +10345,7 @@ initialFocus="input"
|
|
|
10283
10345
|
summary: "A row of chips the user picks from: filters, facets, a set of labels.",
|
|
10284
10346
|
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.",
|
|
10285
10347
|
category: "data",
|
|
10286
|
-
version: "11.
|
|
10348
|
+
version: "11.9.0",
|
|
10287
10349
|
bindings: {
|
|
10288
10350
|
angular: {
|
|
10289
10351
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -10481,7 +10543,7 @@ initialFocus="input"
|
|
|
10481
10543
|
summary: "",
|
|
10482
10544
|
description: "",
|
|
10483
10545
|
category: "forms",
|
|
10484
|
-
version: "11.
|
|
10546
|
+
version: "11.9.0",
|
|
10485
10547
|
bindings: {
|
|
10486
10548
|
angular: {
|
|
10487
10549
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -10932,7 +10994,7 @@ placeholder="Name or address\u2026"
|
|
|
10932
10994
|
summary: "The typography primitive, applied as an attribute to any element so semantics stay yours.",
|
|
10933
10995
|
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.',
|
|
10934
10996
|
category: "primitives",
|
|
10935
|
-
version: "11.
|
|
10997
|
+
version: "11.9.0",
|
|
10936
10998
|
bindings: {
|
|
10937
10999
|
angular: {
|
|
10938
11000
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -11042,7 +11104,7 @@ placeholder="Name or address\u2026"
|
|
|
11042
11104
|
summary: "",
|
|
11043
11105
|
description: "",
|
|
11044
11106
|
category: "forms",
|
|
11045
|
-
version: "11.
|
|
11107
|
+
version: "11.9.0",
|
|
11046
11108
|
bindings: {
|
|
11047
11109
|
angular: {
|
|
11048
11110
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -11257,7 +11319,7 @@ placeholder="Name or address\u2026"
|
|
|
11257
11319
|
summary: "",
|
|
11258
11320
|
description: "",
|
|
11259
11321
|
category: "primitives",
|
|
11260
|
-
version: "11.
|
|
11322
|
+
version: "11.9.0",
|
|
11261
11323
|
bindings: {
|
|
11262
11324
|
angular: {
|
|
11263
11325
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -11287,7 +11349,7 @@ placeholder="Name or address\u2026"
|
|
|
11287
11349
|
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).",
|
|
11288
11350
|
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).",
|
|
11289
11351
|
category: "components",
|
|
11290
|
-
version: "11.
|
|
11352
|
+
version: "11.9.0",
|
|
11291
11353
|
bindings: {
|
|
11292
11354
|
angular: {
|
|
11293
11355
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -11345,7 +11407,7 @@ placeholder="Name or address\u2026"
|
|
|
11345
11407
|
summary: "Time field: a combobox over time options \u2014 the same listbox contract as uni-search-input and uni-tag-input.",
|
|
11346
11408
|
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.",
|
|
11347
11409
|
category: "forms",
|
|
11348
|
-
version: "11.
|
|
11410
|
+
version: "11.9.0",
|
|
11349
11411
|
bindings: {
|
|
11350
11412
|
angular: {
|
|
11351
11413
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -11560,7 +11622,7 @@ placeholder="Name or address\u2026"
|
|
|
11560
11622
|
summary: "",
|
|
11561
11623
|
description: "",
|
|
11562
11624
|
category: "forms",
|
|
11563
|
-
version: "11.
|
|
11625
|
+
version: "11.9.0",
|
|
11564
11626
|
bindings: {
|
|
11565
11627
|
angular: {
|
|
11566
11628
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -11822,7 +11884,7 @@ placeholder="Name or address\u2026"
|
|
|
11822
11884
|
summary: "",
|
|
11823
11885
|
description: "",
|
|
11824
11886
|
category: "feedback",
|
|
11825
|
-
version: "11.
|
|
11887
|
+
version: "11.9.0",
|
|
11826
11888
|
bindings: {
|
|
11827
11889
|
angular: {
|
|
11828
11890
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -11910,7 +11972,7 @@ placeholder="Name or address\u2026"
|
|
|
11910
11972
|
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).',
|
|
11911
11973
|
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.',
|
|
11912
11974
|
category: "components",
|
|
11913
|
-
version: "11.
|
|
11975
|
+
version: "11.9.0",
|
|
11914
11976
|
bindings: {
|
|
11915
11977
|
angular: {
|
|
11916
11978
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -12044,7 +12106,7 @@ placeholder="Name or address\u2026"
|
|
|
12044
12106
|
summary: "",
|
|
12045
12107
|
description: "",
|
|
12046
12108
|
category: "layout",
|
|
12047
|
-
version: "11.
|
|
12109
|
+
version: "11.9.0",
|
|
12048
12110
|
bindings: {
|
|
12049
12111
|
angular: {
|
|
12050
12112
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -17118,6 +17180,30 @@ placeholder="Name or address\u2026"
|
|
|
17118
17180
|
DarkTheme: 40
|
|
17119
17181
|
}
|
|
17120
17182
|
},
|
|
17183
|
+
{
|
|
17184
|
+
id: "dataTable.behavior.selectionColumnWidth",
|
|
17185
|
+
value: 40,
|
|
17186
|
+
type: "number",
|
|
17187
|
+
kind: "behavioral",
|
|
17188
|
+
target: "component-prop",
|
|
17189
|
+
appliesTo: "dataTable",
|
|
17190
|
+
themeValues: {
|
|
17191
|
+
LightTheme: 40,
|
|
17192
|
+
DarkTheme: 40
|
|
17193
|
+
}
|
|
17194
|
+
},
|
|
17195
|
+
{
|
|
17196
|
+
id: "dataTable.behavior.selectionCheckboxSize",
|
|
17197
|
+
value: "sm",
|
|
17198
|
+
type: "string",
|
|
17199
|
+
kind: "behavioral",
|
|
17200
|
+
target: "component-prop",
|
|
17201
|
+
appliesTo: "dataTable",
|
|
17202
|
+
themeValues: {
|
|
17203
|
+
LightTheme: "sm",
|
|
17204
|
+
DarkTheme: "sm"
|
|
17205
|
+
}
|
|
17206
|
+
},
|
|
17121
17207
|
{
|
|
17122
17208
|
id: "notificationBadge.behavior.borderRadius",
|
|
17123
17209
|
value: "sm",
|
|
@@ -18618,7 +18704,9 @@ placeholder="Name or address\u2026"
|
|
|
18618
18704
|
rowHoverColor: "primary-container",
|
|
18619
18705
|
loadingOverlayColor: "scrim",
|
|
18620
18706
|
loadingSpinnerColor: "primary",
|
|
18621
|
-
loadingSpinnerSize: 40
|
|
18707
|
+
loadingSpinnerSize: 40,
|
|
18708
|
+
selectionColumnWidth: 40,
|
|
18709
|
+
selectionCheckboxSize: "sm"
|
|
18622
18710
|
},
|
|
18623
18711
|
notificationBadge: {
|
|
18624
18712
|
borderRadius: "sm",
|
|
@@ -19252,7 +19340,9 @@ placeholder="Name or address\u2026"
|
|
|
19252
19340
|
rowHoverColor: "primary-container",
|
|
19253
19341
|
loadingOverlayColor: "scrim",
|
|
19254
19342
|
loadingSpinnerColor: "primary",
|
|
19255
|
-
loadingSpinnerSize: 40
|
|
19343
|
+
loadingSpinnerSize: 40,
|
|
19344
|
+
selectionColumnWidth: 40,
|
|
19345
|
+
selectionCheckboxSize: "sm"
|
|
19256
19346
|
},
|
|
19257
19347
|
notificationBadge: {
|
|
19258
19348
|
borderRadius: "sm",
|
|
@@ -19365,6 +19455,18 @@ placeholder="Name or address\u2026"
|
|
|
19365
19455
|
{
|
|
19366
19456
|
package: "@uni-design-system/uni-angular",
|
|
19367
19457
|
releases: [
|
|
19458
|
+
{
|
|
19459
|
+
version: "11.9.0",
|
|
19460
|
+
entries: [
|
|
19461
|
+
{
|
|
19462
|
+
bump: "minor",
|
|
19463
|
+
title: "`uni-data-table` gains a real selection column and an id-keyed, bindable detail row; the datasources gain a row identity.",
|
|
19464
|
+
body: "- **`rowId` on the datasources** (`new UniRecordDatasource(rows, { rowId: (row) => row.id })`, also a third argument on `UniServerSideDatasource`, and settable afterwards): a stable identity for a row. Without one, rows are compared by reference, which never matches a row rebuilt from a fresh fetch \u2014 a realtime update that replaced the records emptied the selection. With one, `isSelected`, `toggleSelection` and the new `setSelected(rows, selected)` key by it, and so do the table's expanded row and its row tracking.\n- **`useMultiSelect`** is read now (it was declared and wired to nothing): a leading checkbox column over the datasource's own `selections` \u2014 a header box that selects or clears every selectable row on the page, `indeterminate` while only some are, and a box per row. `selectableWhen` keeps rows out of it (a disabled box, skipped by select-all); `selectLabel` and `selectAllLabel` name the boxes; `selectionChange` reports the datasource's selection after a box changed it. A box is its own control: a click on it is never the row's click. Theme options `selectionColumnWidth` (40), `selectionCheckboxSize` (`sm`) and `selectedRowColor` (unset: no tint).\n- **`expanded`**, a two-way model: the expanded row's `rowId`, or its page index when the datasource has none; `null` collapses all. A deep link can open a row before the records arrive, and a sort or re-fetch that reorders them keeps the same record open. **`expandableWhen`** names the rows that have a detail \u2014 the rest take no hover affordance and no `aria-expanded`, and a click on them only emits `rowClick`. **`rowClass`** adds a class per row. Rows with a detail carry `aria-expanded`.\n- `expandedIndex` is now a read-only computed of the open row's page index, **deprecated** in favour of `expanded`; `toggleRow(index)` still works. Removed in 12.0.",
|
|
19465
|
+
commit: "cfddc14"
|
|
19466
|
+
}
|
|
19467
|
+
],
|
|
19468
|
+
dependencyBumps: []
|
|
19469
|
+
},
|
|
19368
19470
|
{
|
|
19369
19471
|
version: "11.8.0",
|
|
19370
19472
|
entries: [
|
|
@@ -20353,6 +20455,18 @@ placeholder="Name or address\u2026"
|
|
|
20353
20455
|
{
|
|
20354
20456
|
package: "@uni-design-system/uni-core",
|
|
20355
20457
|
releases: [
|
|
20458
|
+
{
|
|
20459
|
+
version: "11.9.0",
|
|
20460
|
+
entries: [
|
|
20461
|
+
{
|
|
20462
|
+
bump: "minor",
|
|
20463
|
+
title: "`uni-data-table` gains a real selection column and an id-keyed, bindable detail row; the datasources gain a row identity.",
|
|
20464
|
+
body: "- **`rowId` on the datasources** (`new UniRecordDatasource(rows, { rowId: (row) => row.id })`, also a third argument on `UniServerSideDatasource`, and settable afterwards): a stable identity for a row. Without one, rows are compared by reference, which never matches a row rebuilt from a fresh fetch \u2014 a realtime update that replaced the records emptied the selection. With one, `isSelected`, `toggleSelection` and the new `setSelected(rows, selected)` key by it, and so do the table's expanded row and its row tracking.\n- **`useMultiSelect`** is read now (it was declared and wired to nothing): a leading checkbox column over the datasource's own `selections` \u2014 a header box that selects or clears every selectable row on the page, `indeterminate` while only some are, and a box per row. `selectableWhen` keeps rows out of it (a disabled box, skipped by select-all); `selectLabel` and `selectAllLabel` name the boxes; `selectionChange` reports the datasource's selection after a box changed it. A box is its own control: a click on it is never the row's click. Theme options `selectionColumnWidth` (40), `selectionCheckboxSize` (`sm`) and `selectedRowColor` (unset: no tint).\n- **`expanded`**, a two-way model: the expanded row's `rowId`, or its page index when the datasource has none; `null` collapses all. A deep link can open a row before the records arrive, and a sort or re-fetch that reorders them keeps the same record open. **`expandableWhen`** names the rows that have a detail \u2014 the rest take no hover affordance and no `aria-expanded`, and a click on them only emits `rowClick`. **`rowClass`** adds a class per row. Rows with a detail carry `aria-expanded`.\n- `expandedIndex` is now a read-only computed of the open row's page index, **deprecated** in favour of `expanded`; `toggleRow(index)` still works. Removed in 12.0.",
|
|
20465
|
+
commit: "cfddc14"
|
|
20466
|
+
}
|
|
20467
|
+
],
|
|
20468
|
+
dependencyBumps: []
|
|
20469
|
+
},
|
|
20356
20470
|
{
|
|
20357
20471
|
version: "11.8.0",
|
|
20358
20472
|
entries: [
|
|
@@ -21066,6 +21180,11 @@ placeholder="Name or address\u2026"
|
|
|
21066
21180
|
{
|
|
21067
21181
|
package: "@uni-design-system/uni-react",
|
|
21068
21182
|
releases: [
|
|
21183
|
+
{
|
|
21184
|
+
version: "11.9.0",
|
|
21185
|
+
entries: [],
|
|
21186
|
+
dependencyBumps: []
|
|
21187
|
+
},
|
|
21069
21188
|
{
|
|
21070
21189
|
version: "11.8.0",
|
|
21071
21190
|
entries: [],
|
|
@@ -21387,6 +21506,11 @@ placeholder="Name or address\u2026"
|
|
|
21387
21506
|
{
|
|
21388
21507
|
package: "@uni-design-system/uni-mcp",
|
|
21389
21508
|
releases: [
|
|
21509
|
+
{
|
|
21510
|
+
version: "11.9.0",
|
|
21511
|
+
entries: [],
|
|
21512
|
+
dependencyBumps: []
|
|
21513
|
+
},
|
|
21390
21514
|
{
|
|
21391
21515
|
version: "11.8.0",
|
|
21392
21516
|
entries: [],
|
|
@@ -21666,7 +21790,7 @@ placeholder="Name or address\u2026"
|
|
|
21666
21790
|
summary: "Returns a document-unique id for wiring ARIA relationships (aria-controls, aria-describedby, aria-labelledby, ...).",
|
|
21667
21791
|
description: "Returns a document-unique id for wiring ARIA relationships (aria-controls, aria-describedby, aria-labelledby, ...).",
|
|
21668
21792
|
members: [],
|
|
21669
|
-
version: "11.
|
|
21793
|
+
version: "11.9.0"
|
|
21670
21794
|
},
|
|
21671
21795
|
{
|
|
21672
21796
|
id: "focusable-selector",
|
|
@@ -21678,7 +21802,7 @@ placeholder="Name or address\u2026"
|
|
|
21678
21802
|
summary: "Selector matching natively focusable elements.",
|
|
21679
21803
|
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.",
|
|
21680
21804
|
members: [],
|
|
21681
|
-
version: "11.
|
|
21805
|
+
version: "11.9.0"
|
|
21682
21806
|
},
|
|
21683
21807
|
{
|
|
21684
21808
|
id: "resolve-focus-target",
|
|
@@ -21690,7 +21814,7 @@ placeholder="Name or address\u2026"
|
|
|
21690
21814
|
summary: "Resolves the element that should carry ARIA state for a trigger: the element itself when focusable, otherwise its first focusable descendant.",
|
|
21691
21815
|
description: "Resolves the element that should carry ARIA state for a trigger: the element itself when focusable, otherwise its first focusable descendant.",
|
|
21692
21816
|
members: [],
|
|
21693
|
-
version: "11.
|
|
21817
|
+
version: "11.9.0"
|
|
21694
21818
|
},
|
|
21695
21819
|
{
|
|
21696
21820
|
id: "visually-hidden",
|
|
@@ -21702,7 +21826,7 @@ placeholder="Name or address\u2026"
|
|
|
21702
21826
|
summary: "Visually hides content while keeping it available to screen readers.",
|
|
21703
21827
|
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.",
|
|
21704
21828
|
members: [],
|
|
21705
|
-
version: "11.
|
|
21829
|
+
version: "11.9.0"
|
|
21706
21830
|
},
|
|
21707
21831
|
{
|
|
21708
21832
|
id: "motion-safe",
|
|
@@ -21714,7 +21838,7 @@ placeholder="Name or address\u2026"
|
|
|
21714
21838
|
summary: "Wraps animation/transition styles so they only apply when the user has not requested reduced motion (WCAG 2.3.3).",
|
|
21715
21839
|
description: "Wraps animation/transition styles so they only apply when the user has not requested reduced motion (WCAG 2.3.3).",
|
|
21716
21840
|
members: [],
|
|
21717
|
-
version: "11.
|
|
21841
|
+
version: "11.9.0"
|
|
21718
21842
|
},
|
|
21719
21843
|
{
|
|
21720
21844
|
id: "announcer",
|
|
@@ -21739,7 +21863,7 @@ placeholder="Name or address\u2026"
|
|
|
21739
21863
|
description: "Announce `text`, even when it repeats what was just announced."
|
|
21740
21864
|
}
|
|
21741
21865
|
],
|
|
21742
|
-
version: "11.
|
|
21866
|
+
version: "11.9.0"
|
|
21743
21867
|
},
|
|
21744
21868
|
{
|
|
21745
21869
|
id: "create-announcer",
|
|
@@ -21751,7 +21875,7 @@ placeholder="Name or address\u2026"
|
|
|
21751
21875
|
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.",
|
|
21752
21876
|
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.",
|
|
21753
21877
|
members: [],
|
|
21754
|
-
version: "11.
|
|
21878
|
+
version: "11.9.0"
|
|
21755
21879
|
},
|
|
21756
21880
|
{
|
|
21757
21881
|
id: "uni-date",
|
|
@@ -21763,7 +21887,7 @@ placeholder="Name or address\u2026"
|
|
|
21763
21887
|
summary: "A calendar date, `'YYYY-MM-DD'`.",
|
|
21764
21888
|
description: "A calendar date, `'YYYY-MM-DD'`.",
|
|
21765
21889
|
members: [],
|
|
21766
|
-
version: "11.
|
|
21890
|
+
version: "11.9.0"
|
|
21767
21891
|
},
|
|
21768
21892
|
{
|
|
21769
21893
|
id: "uni-time",
|
|
@@ -21775,7 +21899,7 @@ placeholder="Name or address\u2026"
|
|
|
21775
21899
|
summary: "A wall-clock time, `'HH:mm'` (24-hour).",
|
|
21776
21900
|
description: "A wall-clock time, `'HH:mm'` (24-hour). Display format is separate.",
|
|
21777
21901
|
members: [],
|
|
21778
|
-
version: "11.
|
|
21902
|
+
version: "11.9.0"
|
|
21779
21903
|
},
|
|
21780
21904
|
{
|
|
21781
21905
|
id: "uni-date-time",
|
|
@@ -21787,7 +21911,7 @@ placeholder="Name or address\u2026"
|
|
|
21787
21911
|
summary: "A combined date and time, `'YYYY-MM-DDTHH:mm'`.",
|
|
21788
21912
|
description: "A combined date and time, `'YYYY-MM-DDTHH:mm'`.",
|
|
21789
21913
|
members: [],
|
|
21790
|
-
version: "11.
|
|
21914
|
+
version: "11.9.0"
|
|
21791
21915
|
},
|
|
21792
21916
|
{
|
|
21793
21917
|
id: "uni-date-range",
|
|
@@ -21812,7 +21936,7 @@ placeholder="Name or address\u2026"
|
|
|
21812
21936
|
description: ""
|
|
21813
21937
|
}
|
|
21814
21938
|
],
|
|
21815
|
-
version: "11.
|
|
21939
|
+
version: "11.9.0"
|
|
21816
21940
|
},
|
|
21817
21941
|
{
|
|
21818
21942
|
id: "iso-date",
|
|
@@ -21824,7 +21948,7 @@ placeholder="Name or address\u2026"
|
|
|
21824
21948
|
summary: "`(2026, 8, 5)` \u2192 `'2026-08-05'`.",
|
|
21825
21949
|
description: "`(2026, 8, 5)` \u2192 `'2026-08-05'`. Does not validate \u2014 see `isValidDate`.",
|
|
21826
21950
|
members: [],
|
|
21827
|
-
version: "11.
|
|
21951
|
+
version: "11.9.0"
|
|
21828
21952
|
},
|
|
21829
21953
|
{
|
|
21830
21954
|
id: "is-valid-date",
|
|
@@ -21836,7 +21960,7 @@ placeholder="Name or address\u2026"
|
|
|
21836
21960
|
summary: "The ISO date when the parts form a real calendar day, else `null`.",
|
|
21837
21961
|
description: "The ISO date when the parts form a real calendar day, else `null`.",
|
|
21838
21962
|
members: [],
|
|
21839
|
-
version: "11.
|
|
21963
|
+
version: "11.9.0"
|
|
21840
21964
|
},
|
|
21841
21965
|
{
|
|
21842
21966
|
id: "days-in-month",
|
|
@@ -21848,7 +21972,7 @@ placeholder="Name or address\u2026"
|
|
|
21848
21972
|
summary: "Days in a month, leap-year aware.",
|
|
21849
21973
|
description: "Days in a month, leap-year aware.",
|
|
21850
21974
|
members: [],
|
|
21851
|
-
version: "11.
|
|
21975
|
+
version: "11.9.0"
|
|
21852
21976
|
},
|
|
21853
21977
|
{
|
|
21854
21978
|
id: "add-days",
|
|
@@ -21860,7 +21984,7 @@ placeholder="Name or address\u2026"
|
|
|
21860
21984
|
summary: "",
|
|
21861
21985
|
description: "",
|
|
21862
21986
|
members: [],
|
|
21863
|
-
version: "11.
|
|
21987
|
+
version: "11.9.0"
|
|
21864
21988
|
},
|
|
21865
21989
|
{
|
|
21866
21990
|
id: "add-months",
|
|
@@ -21872,7 +21996,7 @@ placeholder="Name or address\u2026"
|
|
|
21872
21996
|
summary: "Same day \xB1 n months, clamping the day to the target month's length.",
|
|
21873
21997
|
description: "Same day \xB1 n months, clamping the day to the target month's length.",
|
|
21874
21998
|
members: [],
|
|
21875
|
-
version: "11.
|
|
21999
|
+
version: "11.9.0"
|
|
21876
22000
|
},
|
|
21877
22001
|
{
|
|
21878
22002
|
id: "day-of-week",
|
|
@@ -21884,7 +22008,7 @@ placeholder="Name or address\u2026"
|
|
|
21884
22008
|
summary: "Day of week, 0 = Sunday \u2026 6 = Saturday.",
|
|
21885
22009
|
description: "Day of week, 0 = Sunday \u2026 6 = Saturday.",
|
|
21886
22010
|
members: [],
|
|
21887
|
-
version: "11.
|
|
22011
|
+
version: "11.9.0"
|
|
21888
22012
|
},
|
|
21889
22013
|
{
|
|
21890
22014
|
id: "month-of",
|
|
@@ -21896,7 +22020,7 @@ placeholder="Name or address\u2026"
|
|
|
21896
22020
|
summary: "`'2026-08-20'` \u2192 `'2026-08'`.",
|
|
21897
22021
|
description: "`'2026-08-20'` \u2192 `'2026-08'`.",
|
|
21898
22022
|
members: [],
|
|
21899
|
-
version: "11.
|
|
22023
|
+
version: "11.9.0"
|
|
21900
22024
|
},
|
|
21901
22025
|
{
|
|
21902
22026
|
id: "today-iso",
|
|
@@ -21908,7 +22032,7 @@ placeholder="Name or address\u2026"
|
|
|
21908
22032
|
summary: "Today as a local-wall-clock ISO date (the one place local time matters).",
|
|
21909
22033
|
description: "Today as a local-wall-clock ISO date (the one place local time matters).",
|
|
21910
22034
|
members: [],
|
|
21911
|
-
version: "11.
|
|
22035
|
+
version: "11.9.0"
|
|
21912
22036
|
},
|
|
21913
22037
|
{
|
|
21914
22038
|
id: "inclusive-day-count",
|
|
@@ -21920,7 +22044,7 @@ placeholder="Name or address\u2026"
|
|
|
21920
22044
|
summary: "Inclusive day count of a range: `('-20', '-24')` \u2192 5.",
|
|
21921
22045
|
description: "Inclusive day count of a range: `('-20', '-24')` \u2192 5.",
|
|
21922
22046
|
members: [],
|
|
21923
|
-
version: "11.
|
|
22047
|
+
version: "11.9.0"
|
|
21924
22048
|
},
|
|
21925
22049
|
{
|
|
21926
22050
|
id: "uni-month-grid-cell",
|
|
@@ -21945,7 +22069,7 @@ placeholder="Name or address\u2026"
|
|
|
21945
22069
|
description: "True for leading/trailing cells that belong to the adjacent months."
|
|
21946
22070
|
}
|
|
21947
22071
|
],
|
|
21948
|
-
version: "11.
|
|
22072
|
+
version: "11.9.0"
|
|
21949
22073
|
},
|
|
21950
22074
|
{
|
|
21951
22075
|
id: "build-month-grid",
|
|
@@ -21957,7 +22081,7 @@ placeholder="Name or address\u2026"
|
|
|
21957
22081
|
summary: "The week matrix a calendar renders: full weeks covering `'YYYY-MM'`, starting on `weekStart` (0 = Sunday).",
|
|
21958
22082
|
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.",
|
|
21959
22083
|
members: [],
|
|
21960
|
-
version: "11.
|
|
22084
|
+
version: "11.9.0"
|
|
21961
22085
|
},
|
|
21962
22086
|
{
|
|
21963
22087
|
id: "format-date",
|
|
@@ -21969,7 +22093,7 @@ placeholder="Name or address\u2026"
|
|
|
21969
22093
|
summary: "",
|
|
21970
22094
|
description: "",
|
|
21971
22095
|
members: [],
|
|
21972
|
-
version: "11.
|
|
22096
|
+
version: "11.9.0"
|
|
21973
22097
|
},
|
|
21974
22098
|
{
|
|
21975
22099
|
id: "format-month-heading",
|
|
@@ -21981,7 +22105,7 @@ placeholder="Name or address\u2026"
|
|
|
21981
22105
|
summary: "`'2026-08'` \u2192 `'August 2026'` in the locale.",
|
|
21982
22106
|
description: "`'2026-08'` \u2192 `'August 2026'` in the locale.",
|
|
21983
22107
|
members: [],
|
|
21984
|
-
version: "11.
|
|
22108
|
+
version: "11.9.0"
|
|
21985
22109
|
},
|
|
21986
22110
|
{
|
|
21987
22111
|
id: "uni-weekday-name",
|
|
@@ -22006,7 +22130,7 @@ placeholder="Name or address\u2026"
|
|
|
22006
22130
|
description: "Full weekday name, for the columnheader's `abbr`."
|
|
22007
22131
|
}
|
|
22008
22132
|
],
|
|
22009
|
-
version: "11.
|
|
22133
|
+
version: "11.9.0"
|
|
22010
22134
|
},
|
|
22011
22135
|
{
|
|
22012
22136
|
id: "weekday-names",
|
|
@@ -22018,7 +22142,7 @@ placeholder="Name or address\u2026"
|
|
|
22018
22142
|
summary: "Weekday header labels starting at `weekStart` (0 = Sunday).",
|
|
22019
22143
|
description: "Weekday header labels starting at `weekStart` (0 = Sunday).",
|
|
22020
22144
|
members: [],
|
|
22021
|
-
version: "11.
|
|
22145
|
+
version: "11.9.0"
|
|
22022
22146
|
},
|
|
22023
22147
|
{
|
|
22024
22148
|
id: "format-time",
|
|
@@ -22030,7 +22154,7 @@ placeholder="Name or address\u2026"
|
|
|
22030
22154
|
summary: "`'15:00'` \u2192 `'3:00 PM'` (or `'15:00'` when `hour12` is false).",
|
|
22031
22155
|
description: "`'15:00'` \u2192 `'3:00 PM'` (or `'15:00'` when `hour12` is false).",
|
|
22032
22156
|
members: [],
|
|
22033
|
-
version: "11.
|
|
22157
|
+
version: "11.9.0"
|
|
22034
22158
|
},
|
|
22035
22159
|
{
|
|
22036
22160
|
id: "locale-week-start",
|
|
@@ -22042,7 +22166,7 @@ placeholder="Name or address\u2026"
|
|
|
22042
22166
|
summary: "The locale's first day of week, 0 = Sunday \u2026 6 = Saturday.",
|
|
22043
22167
|
description: "The locale's first day of week, 0 = Sunday \u2026 6 = Saturday. Falls back to Sunday where `Intl.Locale` week info is unavailable.",
|
|
22044
22168
|
members: [],
|
|
22045
|
-
version: "11.
|
|
22169
|
+
version: "11.9.0"
|
|
22046
22170
|
},
|
|
22047
22171
|
{
|
|
22048
22172
|
id: "locale-default-hour12",
|
|
@@ -22054,7 +22178,7 @@ placeholder="Name or address\u2026"
|
|
|
22054
22178
|
summary: "Whether the locale's default clock is 12-hour.",
|
|
22055
22179
|
description: "Whether the locale's default clock is 12-hour.",
|
|
22056
22180
|
members: [],
|
|
22057
|
-
version: "11.
|
|
22181
|
+
version: "11.9.0"
|
|
22058
22182
|
},
|
|
22059
22183
|
{
|
|
22060
22184
|
id: "locale-field-order",
|
|
@@ -22066,7 +22190,7 @@ placeholder="Name or address\u2026"
|
|
|
22066
22190
|
summary: "The locale's numeric-date field order, e.g.",
|
|
22067
22191
|
description: "The locale's numeric-date field order, e.g. en-US \u2192 month, day, year.",
|
|
22068
22192
|
members: [],
|
|
22069
|
-
version: "11.
|
|
22193
|
+
version: "11.9.0"
|
|
22070
22194
|
},
|
|
22071
22195
|
{
|
|
22072
22196
|
id: "locale-month-names",
|
|
@@ -22078,7 +22202,7 @@ placeholder="Name or address\u2026"
|
|
|
22078
22202
|
summary: "Long + short month names \u2192 month number, lowercased, dots stripped.",
|
|
22079
22203
|
description: "Long + short month names \u2192 month number, lowercased, dots stripped.",
|
|
22080
22204
|
members: [],
|
|
22081
|
-
version: "11.
|
|
22205
|
+
version: "11.9.0"
|
|
22082
22206
|
},
|
|
22083
22207
|
{
|
|
22084
22208
|
id: "locale-date-placeholder",
|
|
@@ -22090,7 +22214,7 @@ placeholder="Name or address\u2026"
|
|
|
22090
22214
|
summary: "The locale's digit pattern as a placeholder, e.g.",
|
|
22091
22215
|
description: "The locale's digit pattern as a placeholder, e.g. `'MM/DD/YYYY'`.",
|
|
22092
22216
|
members: [],
|
|
22093
|
-
version: "11.
|
|
22217
|
+
version: "11.9.0"
|
|
22094
22218
|
},
|
|
22095
22219
|
{
|
|
22096
22220
|
id: "parse-date-text",
|
|
@@ -22102,7 +22226,7 @@ placeholder="Name or address\u2026"
|
|
|
22102
22226
|
summary: "Free-typed date text \u2192 ISO date, or `null` when unreadable.",
|
|
22103
22227
|
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.",
|
|
22104
22228
|
members: [],
|
|
22105
|
-
version: "11.
|
|
22229
|
+
version: "11.9.0"
|
|
22106
22230
|
},
|
|
22107
22231
|
{
|
|
22108
22232
|
id: "parse-time-text",
|
|
@@ -22114,7 +22238,7 @@ placeholder="Name or address\u2026"
|
|
|
22114
22238
|
summary: "Free-typed time text \u2192 `'HH:mm'`, or `null`.",
|
|
22115
22239
|
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.",
|
|
22116
22240
|
members: [],
|
|
22117
|
-
version: "11.
|
|
22241
|
+
version: "11.9.0"
|
|
22118
22242
|
},
|
|
22119
22243
|
{
|
|
22120
22244
|
id: "time-slots",
|
|
@@ -22126,7 +22250,7 @@ placeholder="Name or address\u2026"
|
|
|
22126
22250
|
summary: "Every `minuteStep` time between `min` and `max` (inclusive bounds).",
|
|
22127
22251
|
description: "Every `minuteStep` time between `min` and `max` (inclusive bounds).",
|
|
22128
22252
|
members: [],
|
|
22129
|
-
version: "11.
|
|
22253
|
+
version: "11.9.0"
|
|
22130
22254
|
},
|
|
22131
22255
|
{
|
|
22132
22256
|
id: "split-date-time",
|
|
@@ -22138,7 +22262,7 @@ placeholder="Name or address\u2026"
|
|
|
22138
22262
|
summary: "",
|
|
22139
22263
|
description: "",
|
|
22140
22264
|
members: [],
|
|
22141
|
-
version: "11.
|
|
22265
|
+
version: "11.9.0"
|
|
22142
22266
|
},
|
|
22143
22267
|
{
|
|
22144
22268
|
id: "join-date-time",
|
|
@@ -22150,7 +22274,7 @@ placeholder="Name or address\u2026"
|
|
|
22150
22274
|
summary: "One combined value only when both parts are present.",
|
|
22151
22275
|
description: "One combined value only when both parts are present.",
|
|
22152
22276
|
members: [],
|
|
22153
|
-
version: "11.
|
|
22277
|
+
version: "11.9.0"
|
|
22154
22278
|
},
|
|
22155
22279
|
{
|
|
22156
22280
|
id: "uni-number-range",
|
|
@@ -22175,7 +22299,7 @@ placeholder="Name or address\u2026"
|
|
|
22175
22299
|
description: ""
|
|
22176
22300
|
}
|
|
22177
22301
|
],
|
|
22178
|
-
version: "11.
|
|
22302
|
+
version: "11.9.0"
|
|
22179
22303
|
},
|
|
22180
22304
|
{
|
|
22181
22305
|
id: "uni-rounding-mode",
|
|
@@ -22187,7 +22311,7 @@ placeholder="Name or address\u2026"
|
|
|
22187
22311
|
summary: "How a tie is resolved when rounding to a fraction-digit count.",
|
|
22188
22312
|
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`).",
|
|
22189
22313
|
members: [],
|
|
22190
|
-
version: "11.
|
|
22314
|
+
version: "11.9.0"
|
|
22191
22315
|
},
|
|
22192
22316
|
{
|
|
22193
22317
|
id: "uni-number-preset",
|
|
@@ -22199,7 +22323,7 @@ placeholder="Name or address\u2026"
|
|
|
22199
22323
|
summary: "Format archetype.",
|
|
22200
22324
|
description: "Format archetype. Supplies decimals, grouping, affix and `inputmode`.",
|
|
22201
22325
|
members: [],
|
|
22202
|
-
version: "11.
|
|
22326
|
+
version: "11.9.0"
|
|
22203
22327
|
},
|
|
22204
22328
|
{
|
|
22205
22329
|
id: "uni-number-grouping",
|
|
@@ -22211,7 +22335,7 @@ placeholder="Name or address\u2026"
|
|
|
22211
22335
|
summary: "Thousands-separator policy, mapped onto `Intl`'s `useGrouping`.",
|
|
22212
22336
|
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`.",
|
|
22213
22337
|
members: [],
|
|
22214
|
-
version: "11.
|
|
22338
|
+
version: "11.9.0"
|
|
22215
22339
|
},
|
|
22216
22340
|
{
|
|
22217
22341
|
id: "uni-number-reject-reason",
|
|
@@ -22223,7 +22347,7 @@ placeholder="Name or address\u2026"
|
|
|
22223
22347
|
summary: "Why a typed commit was refused.",
|
|
22224
22348
|
description: "Why a typed commit was refused. The raw text stays in the field.",
|
|
22225
22349
|
members: [],
|
|
22226
|
-
version: "11.
|
|
22350
|
+
version: "11.9.0"
|
|
22227
22351
|
},
|
|
22228
22352
|
{
|
|
22229
22353
|
id: "uni-number-step-config",
|
|
@@ -22266,7 +22390,7 @@ placeholder="Name or address\u2026"
|
|
|
22266
22390
|
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`."
|
|
22267
22391
|
}
|
|
22268
22392
|
],
|
|
22269
|
-
version: "11.
|
|
22393
|
+
version: "11.9.0"
|
|
22270
22394
|
},
|
|
22271
22395
|
{
|
|
22272
22396
|
id: "uni-number-clamp",
|
|
@@ -22291,7 +22415,7 @@ placeholder="Name or address\u2026"
|
|
|
22291
22415
|
description: "Which fence was hit, or `null` when the value was already in range."
|
|
22292
22416
|
}
|
|
22293
22417
|
],
|
|
22294
|
-
version: "11.
|
|
22418
|
+
version: "11.9.0"
|
|
22295
22419
|
},
|
|
22296
22420
|
{
|
|
22297
22421
|
id: "uni-locale-number-parts",
|
|
@@ -22334,7 +22458,7 @@ placeholder="Name or address\u2026"
|
|
|
22334
22458
|
description: "Fraction digits `Intl` uses for the currency \u2014 JPY 0, USD 2."
|
|
22335
22459
|
}
|
|
22336
22460
|
],
|
|
22337
|
-
version: "11.
|
|
22461
|
+
version: "11.9.0"
|
|
22338
22462
|
},
|
|
22339
22463
|
{
|
|
22340
22464
|
id: "uni-number-format-config",
|
|
@@ -22419,7 +22543,7 @@ placeholder="Name or address\u2026"
|
|
|
22419
22543
|
description: "Spoken long form of an abbreviated suffix, for `aria-valuetext`."
|
|
22420
22544
|
}
|
|
22421
22545
|
],
|
|
22422
|
-
version: "11.
|
|
22546
|
+
version: "11.9.0"
|
|
22423
22547
|
},
|
|
22424
22548
|
{
|
|
22425
22549
|
id: "uni-resolved-number-format",
|
|
@@ -22510,7 +22634,7 @@ placeholder="Name or address\u2026"
|
|
|
22510
22634
|
description: ""
|
|
22511
22635
|
}
|
|
22512
22636
|
],
|
|
22513
|
-
version: "11.
|
|
22637
|
+
version: "11.9.0"
|
|
22514
22638
|
},
|
|
22515
22639
|
{
|
|
22516
22640
|
id: "uni-number-parse-result",
|
|
@@ -22522,7 +22646,7 @@ placeholder="Name or address\u2026"
|
|
|
22522
22646
|
summary: "The outcome of reading a user's text.",
|
|
22523
22647
|
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.",
|
|
22524
22648
|
members: [],
|
|
22525
|
-
version: "11.
|
|
22649
|
+
version: "11.9.0"
|
|
22526
22650
|
},
|
|
22527
22651
|
{
|
|
22528
22652
|
id: "is-canonical-decimal",
|
|
@@ -22534,7 +22658,7 @@ placeholder="Name or address\u2026"
|
|
|
22534
22658
|
summary: "True when `text` is already a canonical decimal (leading/trailing space allowed).",
|
|
22535
22659
|
description: "True when `text` is already a canonical decimal (leading/trailing space allowed).",
|
|
22536
22660
|
members: [],
|
|
22537
|
-
version: "11.
|
|
22661
|
+
version: "11.9.0"
|
|
22538
22662
|
},
|
|
22539
22663
|
{
|
|
22540
22664
|
id: "decimal-scale",
|
|
@@ -22546,7 +22670,7 @@ placeholder="Name or address\u2026"
|
|
|
22546
22670
|
summary: "Fraction-digit count.",
|
|
22547
22671
|
description: "Fraction-digit count. `'1.250'` \u2192 3, `'12'` \u2192 0, `'5.'` \u2192 0.",
|
|
22548
22672
|
members: [],
|
|
22549
|
-
version: "11.
|
|
22673
|
+
version: "11.9.0"
|
|
22550
22674
|
},
|
|
22551
22675
|
{
|
|
22552
22676
|
id: "to-scaled",
|
|
@@ -22558,7 +22682,7 @@ placeholder="Name or address\u2026"
|
|
|
22558
22682
|
summary: "Canonical decimal \u2192 integer scaled by `10^scale`.",
|
|
22559
22683
|
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)`.",
|
|
22560
22684
|
members: [],
|
|
22561
|
-
version: "11.
|
|
22685
|
+
version: "11.9.0"
|
|
22562
22686
|
},
|
|
22563
22687
|
{
|
|
22564
22688
|
id: "from-scaled",
|
|
@@ -22570,7 +22694,7 @@ placeholder="Name or address\u2026"
|
|
|
22570
22694
|
summary: "Scaled integer \u2192 canonical decimal, with trailing fraction zeros trimmed.",
|
|
22571
22695
|
description: "Scaled integer \u2192 canonical decimal, with trailing fraction zeros trimmed.",
|
|
22572
22696
|
members: [],
|
|
22573
|
-
version: "11.
|
|
22697
|
+
version: "11.9.0"
|
|
22574
22698
|
},
|
|
22575
22699
|
{
|
|
22576
22700
|
id: "normalize-decimal",
|
|
@@ -22582,7 +22706,7 @@ placeholder="Name or address\u2026"
|
|
|
22582
22706
|
summary: "Strip a leading `+`, leading zeros and trailing fraction zeros: `'+01.50'` \u2192 `'1.5'`.",
|
|
22583
22707
|
description: "Strip a leading `+`, leading zeros and trailing fraction zeros: `'+01.50'` \u2192 `'1.5'`. Requires a canonical decimal; guard with `isCanonicalDecimal`.",
|
|
22584
22708
|
members: [],
|
|
22585
|
-
version: "11.
|
|
22709
|
+
version: "11.9.0"
|
|
22586
22710
|
},
|
|
22587
22711
|
{
|
|
22588
22712
|
id: "to-decimal",
|
|
@@ -22594,7 +22718,7 @@ placeholder="Name or address\u2026"
|
|
|
22594
22718
|
summary: "Any numeric input \u2192 canonical decimal, expanding the exponential notation `String(number)` produces outside 1e-7\u20261e21.",
|
|
22595
22719
|
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.",
|
|
22596
22720
|
members: [],
|
|
22597
|
-
version: "11.
|
|
22721
|
+
version: "11.9.0"
|
|
22598
22722
|
},
|
|
22599
22723
|
{
|
|
22600
22724
|
id: "compare-decimal",
|
|
@@ -22606,7 +22730,7 @@ placeholder="Name or address\u2026"
|
|
|
22606
22730
|
summary: "`-1` when `a < b`, `1` when `a > b`, `0` when equal.",
|
|
22607
22731
|
description: "`-1` when `a < b`, `1` when `a > b`, `0` when equal. `'1.50'` equals `'1.5'`.",
|
|
22608
22732
|
members: [],
|
|
22609
|
-
version: "11.
|
|
22733
|
+
version: "11.9.0"
|
|
22610
22734
|
},
|
|
22611
22735
|
{
|
|
22612
22736
|
id: "round-decimal",
|
|
@@ -22618,7 +22742,7 @@ placeholder="Name or address\u2026"
|
|
|
22618
22742
|
summary: "Round to `fractionDigits`, breaking ties per `mode`.",
|
|
22619
22743
|
description: "Round to `fractionDigits`, breaking ties per `mode`. Exact where `Number.prototype.toFixed` is not \u2014 see the file header.",
|
|
22620
22744
|
members: [],
|
|
22621
|
-
version: "11.
|
|
22745
|
+
version: "11.9.0"
|
|
22622
22746
|
},
|
|
22623
22747
|
{
|
|
22624
22748
|
id: "shift-decimal",
|
|
@@ -22630,7 +22754,7 @@ placeholder="Name or address\u2026"
|
|
|
22630
22754
|
summary: "Multiply by `10^places`, exactly.",
|
|
22631
22755
|
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.",
|
|
22632
22756
|
members: [],
|
|
22633
|
-
version: "11.
|
|
22757
|
+
version: "11.9.0"
|
|
22634
22758
|
},
|
|
22635
22759
|
{
|
|
22636
22760
|
id: "clamp-decimal",
|
|
@@ -22642,7 +22766,7 @@ placeholder="Name or address\u2026"
|
|
|
22642
22766
|
summary: "Hold a value inside its fences, reporting which one it hit so the caller can announce it.",
|
|
22643
22767
|
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.",
|
|
22644
22768
|
members: [],
|
|
22645
|
-
version: "11.
|
|
22769
|
+
version: "11.9.0"
|
|
22646
22770
|
},
|
|
22647
22771
|
{
|
|
22648
22772
|
id: "step-decimal",
|
|
@@ -22654,7 +22778,7 @@ placeholder="Name or address\u2026"
|
|
|
22654
22778
|
summary: "One step from `current`, in `direction` (`1` up, `-1` down).",
|
|
22655
22779
|
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.",
|
|
22656
22780
|
members: [],
|
|
22657
|
-
version: "11.
|
|
22781
|
+
version: "11.9.0"
|
|
22658
22782
|
},
|
|
22659
22783
|
{
|
|
22660
22784
|
id: "locale-number-parts",
|
|
@@ -22666,7 +22790,7 @@ placeholder="Name or address\u2026"
|
|
|
22666
22790
|
summary: "Locale separators plus, when a currency is given, its symbol, side and fraction digits.",
|
|
22667
22791
|
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.",
|
|
22668
22792
|
members: [],
|
|
22669
|
-
version: "11.
|
|
22793
|
+
version: "11.9.0"
|
|
22670
22794
|
},
|
|
22671
22795
|
{
|
|
22672
22796
|
id: "to-ascii-digits",
|
|
@@ -22678,7 +22802,7 @@ placeholder="Name or address\u2026"
|
|
|
22678
22802
|
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`.",
|
|
22679
22803
|
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`.",
|
|
22680
22804
|
members: [],
|
|
22681
|
-
version: "11.
|
|
22805
|
+
version: "11.9.0"
|
|
22682
22806
|
},
|
|
22683
22807
|
{
|
|
22684
22808
|
id: "evaluate-expression",
|
|
@@ -22690,7 +22814,7 @@ placeholder="Name or address\u2026"
|
|
|
22690
22814
|
summary: "Evaluate `+ \u2212 \xD7 \xF7 ( )` over decimal literals \u2014 shunting-yard, roughly thirty lines, and **never `eval`**.",
|
|
22691
22815
|
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.",
|
|
22692
22816
|
members: [],
|
|
22693
|
-
version: "11.
|
|
22817
|
+
version: "11.9.0"
|
|
22694
22818
|
},
|
|
22695
22819
|
{
|
|
22696
22820
|
id: "resolve-number-format",
|
|
@@ -22702,7 +22826,7 @@ placeholder="Name or address\u2026"
|
|
|
22702
22826
|
summary: "Fill in every preset, locale and currency default.",
|
|
22703
22827
|
description: "Fill in every preset, locale and currency default.",
|
|
22704
22828
|
members: [],
|
|
22705
|
-
version: "11.
|
|
22829
|
+
version: "11.9.0"
|
|
22706
22830
|
},
|
|
22707
22831
|
{
|
|
22708
22832
|
id: "parse-number",
|
|
@@ -22714,7 +22838,7 @@ placeholder="Name or address\u2026"
|
|
|
22714
22838
|
summary: "Read a user's text into a canonical decimal in **model units**.",
|
|
22715
22839
|
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.",
|
|
22716
22840
|
members: [],
|
|
22717
|
-
version: "11.
|
|
22841
|
+
version: "11.9.0"
|
|
22718
22842
|
},
|
|
22719
22843
|
{
|
|
22720
22844
|
id: "format-number",
|
|
@@ -22726,7 +22850,7 @@ placeholder="Name or address\u2026"
|
|
|
22726
22850
|
summary: "Canonical decimal (model units) \u2192 the display number, without affixes.",
|
|
22727
22851
|
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`.",
|
|
22728
22852
|
members: [],
|
|
22729
|
-
version: "11.
|
|
22853
|
+
version: "11.9.0"
|
|
22730
22854
|
},
|
|
22731
22855
|
{
|
|
22732
22856
|
id: "raw-number-text",
|
|
@@ -22738,7 +22862,7 @@ placeholder="Name or address\u2026"
|
|
|
22738
22862
|
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.",
|
|
22739
22863
|
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.",
|
|
22740
22864
|
members: [],
|
|
22741
|
-
version: "11.
|
|
22865
|
+
version: "11.9.0"
|
|
22742
22866
|
},
|
|
22743
22867
|
{
|
|
22744
22868
|
id: "settle-number",
|
|
@@ -22750,7 +22874,7 @@ placeholder="Name or address\u2026"
|
|
|
22750
22874
|
summary: "Round a committed value to the field's precision, in model units.",
|
|
22751
22875
|
description: "Round a committed value to the field's precision, in model units.",
|
|
22752
22876
|
members: [],
|
|
22753
|
-
version: "11.
|
|
22877
|
+
version: "11.9.0"
|
|
22754
22878
|
},
|
|
22755
22879
|
{
|
|
22756
22880
|
id: "speak-number",
|
|
@@ -22762,7 +22886,7 @@ placeholder="Name or address\u2026"
|
|
|
22762
22886
|
summary: "The `aria-valuetext` string: the formatted number with its affixes spoken.",
|
|
22763
22887
|
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.',
|
|
22764
22888
|
members: [],
|
|
22765
|
-
version: "11.
|
|
22889
|
+
version: "11.9.0"
|
|
22766
22890
|
},
|
|
22767
22891
|
{
|
|
22768
22892
|
id: "to-number",
|
|
@@ -22774,7 +22898,7 @@ placeholder="Name or address\u2026"
|
|
|
22774
22898
|
summary: "Model-units canonical decimal \u2192 the bound `number`.",
|
|
22775
22899
|
description: "Model-units canonical decimal \u2192 the bound `number`.",
|
|
22776
22900
|
members: [],
|
|
22777
|
-
version: "11.
|
|
22901
|
+
version: "11.9.0"
|
|
22778
22902
|
},
|
|
22779
22903
|
{
|
|
22780
22904
|
id: "loses-precision",
|
|
@@ -22786,7 +22910,7 @@ placeholder="Name or address\u2026"
|
|
|
22786
22910
|
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.",
|
|
22787
22911
|
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'`.",
|
|
22788
22912
|
members: [],
|
|
22789
|
-
version: "11.
|
|
22913
|
+
version: "11.9.0"
|
|
22790
22914
|
},
|
|
22791
22915
|
{
|
|
22792
22916
|
id: "press-repeat-timing",
|
|
@@ -22823,7 +22947,7 @@ placeholder="Name or address\u2026"
|
|
|
22823
22947
|
description: ""
|
|
22824
22948
|
}
|
|
22825
22949
|
],
|
|
22826
|
-
version: "11.
|
|
22950
|
+
version: "11.9.0"
|
|
22827
22951
|
},
|
|
22828
22952
|
{
|
|
22829
22953
|
id: "press-repeat-config",
|
|
@@ -22872,7 +22996,7 @@ placeholder="Name or address\u2026"
|
|
|
22872
22996
|
description: ""
|
|
22873
22997
|
}
|
|
22874
22998
|
],
|
|
22875
|
-
version: "11.
|
|
22999
|
+
version: "11.9.0"
|
|
22876
23000
|
},
|
|
22877
23001
|
{
|
|
22878
23002
|
id: "press-repeat",
|
|
@@ -22909,7 +23033,7 @@ placeholder="Name or address\u2026"
|
|
|
22909
23033
|
description: "End a hold without firing `onRelease` \u2014 for `Escape` and `pointercancel`."
|
|
22910
23034
|
}
|
|
22911
23035
|
],
|
|
22912
|
-
version: "11.
|
|
23036
|
+
version: "11.9.0"
|
|
22913
23037
|
},
|
|
22914
23038
|
{
|
|
22915
23039
|
id: "create-press-repeat",
|
|
@@ -22921,7 +23045,7 @@ placeholder="Name or address\u2026"
|
|
|
22921
23045
|
summary: "",
|
|
22922
23046
|
description: "",
|
|
22923
23047
|
members: [],
|
|
22924
|
-
version: "11.
|
|
23048
|
+
version: "11.9.0"
|
|
22925
23049
|
},
|
|
22926
23050
|
{
|
|
22927
23051
|
id: "listbox-navigation-config",
|
|
@@ -22964,7 +23088,7 @@ placeholder="Name or address\u2026"
|
|
|
22964
23088
|
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."
|
|
22965
23089
|
}
|
|
22966
23090
|
],
|
|
22967
|
-
version: "11.
|
|
23091
|
+
version: "11.9.0"
|
|
22968
23092
|
},
|
|
22969
23093
|
{
|
|
22970
23094
|
id: "listbox-navigation",
|
|
@@ -23037,7 +23161,7 @@ placeholder="Name or address\u2026"
|
|
|
23037
23161
|
description: "Close when focus leaves the control entirely (not on internal moves)."
|
|
23038
23162
|
}
|
|
23039
23163
|
],
|
|
23040
|
-
version: "11.
|
|
23164
|
+
version: "11.9.0"
|
|
23041
23165
|
},
|
|
23042
23166
|
{
|
|
23043
23167
|
id: "create-listbox-navigation",
|
|
@@ -23049,7 +23173,7 @@ placeholder="Name or address\u2026"
|
|
|
23049
23173
|
summary: "Factory mirroring the signal-API style used elsewhere in the CDK.",
|
|
23050
23174
|
description: "Factory mirroring the signal-API style used elsewhere in the CDK.",
|
|
23051
23175
|
members: [],
|
|
23052
|
-
version: "11.
|
|
23176
|
+
version: "11.9.0"
|
|
23053
23177
|
},
|
|
23054
23178
|
{
|
|
23055
23179
|
id: "placement",
|
|
@@ -23061,7 +23185,7 @@ placeholder="Name or address\u2026"
|
|
|
23061
23185
|
summary: "Native CSS Anchor Positioning helpers (Baseline 2026).",
|
|
23062
23186
|
description: "Native CSS Anchor Positioning helpers (Baseline 2026). These replace the former",
|
|
23063
23187
|
members: [],
|
|
23064
|
-
version: "11.
|
|
23188
|
+
version: "11.9.0"
|
|
23065
23189
|
},
|
|
23066
23190
|
{
|
|
23067
23191
|
id: "anchor-offset",
|
|
@@ -23086,7 +23210,7 @@ placeholder="Name or address\u2026"
|
|
|
23086
23210
|
description: "Shift along the cross axis, from the aligned edge."
|
|
23087
23211
|
}
|
|
23088
23212
|
],
|
|
23089
|
-
version: "11.
|
|
23213
|
+
version: "11.9.0"
|
|
23090
23214
|
},
|
|
23091
23215
|
{
|
|
23092
23216
|
id: "new-anchor-name",
|
|
@@ -23098,7 +23222,7 @@ placeholder="Name or address\u2026"
|
|
|
23098
23222
|
summary: "Returns a document-unique dashed-ident usable as a CSS `anchor-name`.",
|
|
23099
23223
|
description: "Returns a document-unique dashed-ident usable as a CSS `anchor-name`.",
|
|
23100
23224
|
members: [],
|
|
23101
|
-
version: "11.
|
|
23225
|
+
version: "11.9.0"
|
|
23102
23226
|
},
|
|
23103
23227
|
{
|
|
23104
23228
|
id: "anchor-styles",
|
|
@@ -23110,7 +23234,7 @@ placeholder="Name or address\u2026"
|
|
|
23110
23234
|
summary: "Emotion style object anchoring a panel to `anchor` at `placement`.",
|
|
23111
23235
|
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`).",
|
|
23112
23236
|
members: [],
|
|
23113
|
-
version: "11.
|
|
23237
|
+
version: "11.9.0"
|
|
23114
23238
|
},
|
|
23115
23239
|
{
|
|
23116
23240
|
id: "anchor-arrow-styles",
|
|
@@ -23122,7 +23246,7 @@ placeholder="Name or address\u2026"
|
|
|
23122
23246
|
summary: "Absolute positioning for a rotated-square arrow sitting on the panel edge that faces the anchor.",
|
|
23123
23247
|
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.",
|
|
23124
23248
|
members: [],
|
|
23125
|
-
version: "11.
|
|
23249
|
+
version: "11.9.0"
|
|
23126
23250
|
},
|
|
23127
23251
|
{
|
|
23128
23252
|
id: "spotlight-options",
|
|
@@ -23153,7 +23277,7 @@ placeholder="Name or address\u2026"
|
|
|
23153
23277
|
description: "Scrim paint; scheme-invariant by convention, like `::backdrop`."
|
|
23154
23278
|
}
|
|
23155
23279
|
],
|
|
23156
|
-
version: "11.
|
|
23280
|
+
version: "11.9.0"
|
|
23157
23281
|
},
|
|
23158
23282
|
{
|
|
23159
23283
|
id: "spotlight-styles",
|
|
@@ -23184,7 +23308,7 @@ placeholder="Name or address\u2026"
|
|
|
23184
23308
|
description: "Hole-sized click-blocker, shown when the target must not be interactive."
|
|
23185
23309
|
}
|
|
23186
23310
|
],
|
|
23187
|
-
version: "11.
|
|
23311
|
+
version: "11.9.0"
|
|
23188
23312
|
},
|
|
23189
23313
|
{
|
|
23190
23314
|
id: "anchor-rect",
|
|
@@ -23233,7 +23357,7 @@ placeholder="Name or address\u2026"
|
|
|
23233
23357
|
description: ""
|
|
23234
23358
|
}
|
|
23235
23359
|
],
|
|
23236
|
-
version: "11.
|
|
23360
|
+
version: "11.9.0"
|
|
23237
23361
|
},
|
|
23238
23362
|
{
|
|
23239
23363
|
id: "transform-origin-for",
|
|
@@ -23245,7 +23369,7 @@ placeholder="Name or address\u2026"
|
|
|
23245
23369
|
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.",
|
|
23246
23370
|
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).",
|
|
23247
23371
|
members: [],
|
|
23248
|
-
version: "11.
|
|
23372
|
+
version: "11.9.0"
|
|
23249
23373
|
},
|
|
23250
23374
|
{
|
|
23251
23375
|
id: "transform-origins",
|
|
@@ -23257,7 +23381,7 @@ placeholder="Name or address\u2026"
|
|
|
23257
23381
|
summary: "Placement \u2192 `transform-origin`, so scale animations grow from the anchor.",
|
|
23258
23382
|
description: "Placement \u2192 `transform-origin`, so scale animations grow from the anchor.",
|
|
23259
23383
|
members: [],
|
|
23260
|
-
version: "11.
|
|
23384
|
+
version: "11.9.0"
|
|
23261
23385
|
},
|
|
23262
23386
|
{
|
|
23263
23387
|
id: "set-anchor-name",
|
|
@@ -23269,7 +23393,7 @@ placeholder="Name or address\u2026"
|
|
|
23269
23393
|
summary: "Write a CSS `anchor-name` onto an element (detached anchors and targets).",
|
|
23270
23394
|
description: "Write a CSS `anchor-name` onto an element (detached anchors and targets).",
|
|
23271
23395
|
members: [],
|
|
23272
|
-
version: "11.
|
|
23396
|
+
version: "11.9.0"
|
|
23273
23397
|
},
|
|
23274
23398
|
{
|
|
23275
23399
|
id: "clear-anchor-name",
|
|
@@ -23281,7 +23405,7 @@ placeholder="Name or address\u2026"
|
|
|
23281
23405
|
summary: "",
|
|
23282
23406
|
description: "",
|
|
23283
23407
|
members: [],
|
|
23284
|
-
version: "11.
|
|
23408
|
+
version: "11.9.0"
|
|
23285
23409
|
},
|
|
23286
23410
|
{
|
|
23287
23411
|
id: "resolve-element",
|
|
@@ -23293,7 +23417,7 @@ placeholder="Name or address\u2026"
|
|
|
23293
23417
|
summary: "Resolve an element-or-id reference.",
|
|
23294
23418
|
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).",
|
|
23295
23419
|
members: [],
|
|
23296
|
-
version: "11.
|
|
23420
|
+
version: "11.9.0"
|
|
23297
23421
|
},
|
|
23298
23422
|
{
|
|
23299
23423
|
id: "is-toggle-open",
|
|
@@ -23305,7 +23429,7 @@ placeholder="Name or address\u2026"
|
|
|
23305
23429
|
summary: "True when a native `toggle` event reports the overlay opening.",
|
|
23306
23430
|
description: "True when a native `toggle` event reports the overlay opening.",
|
|
23307
23431
|
members: [],
|
|
23308
|
-
version: "11.
|
|
23432
|
+
version: "11.9.0"
|
|
23309
23433
|
},
|
|
23310
23434
|
{
|
|
23311
23435
|
id: "discrete-overlay-transition",
|
|
@@ -23317,7 +23441,7 @@ placeholder="Name or address\u2026"
|
|
|
23317
23441
|
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.",
|
|
23318
23442
|
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.",
|
|
23319
23443
|
members: [],
|
|
23320
|
-
version: "11.
|
|
23444
|
+
version: "11.9.0"
|
|
23321
23445
|
},
|
|
23322
23446
|
{
|
|
23323
23447
|
id: "restore-overlay-focus",
|
|
@@ -23329,7 +23453,7 @@ placeholder="Name or address\u2026"
|
|
|
23329
23453
|
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).",
|
|
23330
23454
|
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.",
|
|
23331
23455
|
members: [],
|
|
23332
|
-
version: "11.
|
|
23456
|
+
version: "11.9.0"
|
|
23333
23457
|
},
|
|
23334
23458
|
{
|
|
23335
23459
|
id: "focusable-elements",
|
|
@@ -23341,7 +23465,7 @@ placeholder="Name or address\u2026"
|
|
|
23341
23465
|
summary: "The focusable elements inside `root`, in DOM order.",
|
|
23342
23466
|
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).",
|
|
23343
23467
|
members: [],
|
|
23344
|
-
version: "11.
|
|
23468
|
+
version: "11.9.0"
|
|
23345
23469
|
},
|
|
23346
23470
|
{
|
|
23347
23471
|
id: "backdrop-dismiss",
|
|
@@ -23366,7 +23490,7 @@ placeholder="Name or address\u2026"
|
|
|
23366
23490
|
description: "True only when both the press and the click landed on the dialog itself."
|
|
23367
23491
|
}
|
|
23368
23492
|
],
|
|
23369
|
-
version: "11.
|
|
23493
|
+
version: "11.9.0"
|
|
23370
23494
|
},
|
|
23371
23495
|
{
|
|
23372
23496
|
id: "sort-direction",
|
|
@@ -23378,7 +23502,38 @@ placeholder="Name or address\u2026"
|
|
|
23378
23502
|
summary: "",
|
|
23379
23503
|
description: "",
|
|
23380
23504
|
members: [],
|
|
23381
|
-
version: "11.
|
|
23505
|
+
version: "11.9.0"
|
|
23506
|
+
},
|
|
23507
|
+
{
|
|
23508
|
+
id: "row-key",
|
|
23509
|
+
name: "RowKey",
|
|
23510
|
+
kind: "type",
|
|
23511
|
+
module: "datasource",
|
|
23512
|
+
importPath: "@uni-design-system/uni-angular",
|
|
23513
|
+
signature: "type RowKey = string | number",
|
|
23514
|
+
summary: "What `rowId` returns: a stable identity for a row across re-fetches.",
|
|
23515
|
+
description: "What `rowId` returns: a stable identity for a row across re-fetches.",
|
|
23516
|
+
members: [],
|
|
23517
|
+
version: "11.9.0"
|
|
23518
|
+
},
|
|
23519
|
+
{
|
|
23520
|
+
id: "uni-datasource-options",
|
|
23521
|
+
name: "UniDatasourceOptions",
|
|
23522
|
+
kind: "interface",
|
|
23523
|
+
module: "datasource",
|
|
23524
|
+
importPath: "@uni-design-system/uni-angular",
|
|
23525
|
+
signature: "interface UniDatasourceOptions<T>",
|
|
23526
|
+
summary: "Options shared by every datasource.",
|
|
23527
|
+
description: "Options shared by every datasource.",
|
|
23528
|
+
members: [
|
|
23529
|
+
{
|
|
23530
|
+
name: "rowId",
|
|
23531
|
+
kind: "property",
|
|
23532
|
+
signature: "rowId?: (row: T) => RowKey",
|
|
23533
|
+
description: "Stable identity for a row. Unset, rows are compared by reference, which never matches a row rebuilt from a fresh fetch \u2014 a realtime update that replaces the records would empty a selection and move an expanded row. Set it (`(row) => row.id`) and selection, `uni-data-table`'s expanded row and its row tracking all key by it instead."
|
|
23534
|
+
}
|
|
23535
|
+
],
|
|
23536
|
+
version: "11.9.0"
|
|
23382
23537
|
},
|
|
23383
23538
|
{
|
|
23384
23539
|
id: "sort",
|
|
@@ -23403,7 +23558,7 @@ placeholder="Name or address\u2026"
|
|
|
23403
23558
|
description: ""
|
|
23404
23559
|
}
|
|
23405
23560
|
],
|
|
23406
|
-
version: "11.
|
|
23561
|
+
version: "11.9.0"
|
|
23407
23562
|
},
|
|
23408
23563
|
{
|
|
23409
23564
|
id: "uni-base-datasource",
|
|
@@ -23433,6 +23588,18 @@ placeholder="Name or address\u2026"
|
|
|
23433
23588
|
signature: "selections = signal<T[]>([])",
|
|
23434
23589
|
description: ""
|
|
23435
23590
|
},
|
|
23591
|
+
{
|
|
23592
|
+
name: "rowId",
|
|
23593
|
+
kind: "property",
|
|
23594
|
+
signature: "rowId?: (row: T) => RowKey",
|
|
23595
|
+
description: "See `UniDatasourceOptions.rowId`. Settable after construction."
|
|
23596
|
+
},
|
|
23597
|
+
{
|
|
23598
|
+
name: "rowKey",
|
|
23599
|
+
kind: "method",
|
|
23600
|
+
signature: "rowKey(row: T): RowKey | T",
|
|
23601
|
+
description: "The row's identity: its `rowId`, or the row itself when there is none."
|
|
23602
|
+
},
|
|
23436
23603
|
{
|
|
23437
23604
|
name: "sort",
|
|
23438
23605
|
kind: "property",
|
|
@@ -23517,6 +23684,12 @@ placeholder="Name or address\u2026"
|
|
|
23517
23684
|
signature: "toggleSelection(row: T)",
|
|
23518
23685
|
description: ""
|
|
23519
23686
|
},
|
|
23687
|
+
{
|
|
23688
|
+
name: "setSelected",
|
|
23689
|
+
kind: "method",
|
|
23690
|
+
signature: "setSelected(rows: T[], selected: boolean)",
|
|
23691
|
+
description: "Select or deselect several rows at once \u2014 a select-all over the rows that may be selected, leaving any others (another page's) as they are. Keyed by `rowId`, so a selected row re-fetched as a new object is replaced rather than duplicated."
|
|
23692
|
+
},
|
|
23520
23693
|
{
|
|
23521
23694
|
name: "clearSelections",
|
|
23522
23695
|
kind: "method",
|
|
@@ -23572,7 +23745,7 @@ placeholder="Name or address\u2026"
|
|
|
23572
23745
|
description: ""
|
|
23573
23746
|
}
|
|
23574
23747
|
],
|
|
23575
|
-
version: "11.
|
|
23748
|
+
version: "11.9.0"
|
|
23576
23749
|
},
|
|
23577
23750
|
{
|
|
23578
23751
|
id: "page-request",
|
|
@@ -23615,7 +23788,7 @@ placeholder="Name or address\u2026"
|
|
|
23615
23788
|
description: ""
|
|
23616
23789
|
}
|
|
23617
23790
|
],
|
|
23618
|
-
version: "11.
|
|
23791
|
+
version: "11.9.0"
|
|
23619
23792
|
},
|
|
23620
23793
|
{
|
|
23621
23794
|
id: "page-response",
|
|
@@ -23652,7 +23825,7 @@ placeholder="Name or address\u2026"
|
|
|
23652
23825
|
description: ""
|
|
23653
23826
|
}
|
|
23654
23827
|
],
|
|
23655
|
-
version: "11.
|
|
23828
|
+
version: "11.9.0"
|
|
23656
23829
|
},
|
|
23657
23830
|
{
|
|
23658
23831
|
id: "data-loader",
|
|
@@ -23664,7 +23837,7 @@ placeholder="Name or address\u2026"
|
|
|
23664
23837
|
summary: "",
|
|
23665
23838
|
description: "",
|
|
23666
23839
|
members: [],
|
|
23667
|
-
version: "11.
|
|
23840
|
+
version: "11.9.0"
|
|
23668
23841
|
},
|
|
23669
23842
|
{
|
|
23670
23843
|
id: "uni-server-side-datasource",
|
|
@@ -23803,7 +23976,7 @@ placeholder="Name or address\u2026"
|
|
|
23803
23976
|
description: ""
|
|
23804
23977
|
}
|
|
23805
23978
|
],
|
|
23806
|
-
version: "11.
|
|
23979
|
+
version: "11.9.0"
|
|
23807
23980
|
},
|
|
23808
23981
|
{
|
|
23809
23982
|
id: "uni-datasource",
|
|
@@ -23815,7 +23988,7 @@ placeholder="Name or address\u2026"
|
|
|
23815
23988
|
summary: "",
|
|
23816
23989
|
description: "",
|
|
23817
23990
|
members: [],
|
|
23818
|
-
version: "11.
|
|
23991
|
+
version: "11.9.0"
|
|
23819
23992
|
},
|
|
23820
23993
|
{
|
|
23821
23994
|
id: "uni-record-datasource",
|
|
@@ -23924,7 +24097,7 @@ placeholder="Name or address\u2026"
|
|
|
23924
24097
|
description: ""
|
|
23925
24098
|
}
|
|
23926
24099
|
],
|
|
23927
|
-
version: "11.
|
|
24100
|
+
version: "11.9.0"
|
|
23928
24101
|
},
|
|
23929
24102
|
{
|
|
23930
24103
|
id: "local-storage-service",
|
|
@@ -23979,7 +24152,7 @@ placeholder="Name or address\u2026"
|
|
|
23979
24152
|
description: ""
|
|
23980
24153
|
}
|
|
23981
24154
|
],
|
|
23982
|
-
version: "11.
|
|
24155
|
+
version: "11.9.0"
|
|
23983
24156
|
},
|
|
23984
24157
|
{
|
|
23985
24158
|
id: "alert",
|
|
@@ -24034,7 +24207,7 @@ placeholder="Name or address\u2026"
|
|
|
24034
24207
|
description: ""
|
|
24035
24208
|
}
|
|
24036
24209
|
],
|
|
24037
|
-
version: "11.
|
|
24210
|
+
version: "11.9.0"
|
|
24038
24211
|
},
|
|
24039
24212
|
{
|
|
24040
24213
|
id: "snackbar",
|
|
@@ -24089,7 +24262,7 @@ placeholder="Name or address\u2026"
|
|
|
24089
24262
|
description: ""
|
|
24090
24263
|
}
|
|
24091
24264
|
],
|
|
24092
|
-
version: "11.
|
|
24265
|
+
version: "11.9.0"
|
|
24093
24266
|
},
|
|
24094
24267
|
{
|
|
24095
24268
|
id: "confirmation",
|
|
@@ -24138,7 +24311,7 @@ placeholder="Name or address\u2026"
|
|
|
24138
24311
|
description: ""
|
|
24139
24312
|
}
|
|
24140
24313
|
],
|
|
24141
|
-
version: "11.
|
|
24314
|
+
version: "11.9.0"
|
|
24142
24315
|
},
|
|
24143
24316
|
{
|
|
24144
24317
|
id: "notification-service",
|
|
@@ -24205,7 +24378,7 @@ placeholder="Name or address\u2026"
|
|
|
24205
24378
|
description: ""
|
|
24206
24379
|
}
|
|
24207
24380
|
],
|
|
24208
|
-
version: "11.
|
|
24381
|
+
version: "11.9.0"
|
|
24209
24382
|
},
|
|
24210
24383
|
{
|
|
24211
24384
|
id: "option",
|
|
@@ -24242,7 +24415,7 @@ placeholder="Name or address\u2026"
|
|
|
24242
24415
|
description: "Visible and announced, but not committable; listbox navigation skips it."
|
|
24243
24416
|
}
|
|
24244
24417
|
],
|
|
24245
|
-
version: "11.
|
|
24418
|
+
version: "11.9.0"
|
|
24246
24419
|
},
|
|
24247
24420
|
{
|
|
24248
24421
|
id: "options",
|
|
@@ -24254,7 +24427,7 @@ placeholder="Name or address\u2026"
|
|
|
24254
24427
|
summary: "",
|
|
24255
24428
|
description: "",
|
|
24256
24429
|
members: [],
|
|
24257
|
-
version: "11.
|
|
24430
|
+
version: "11.9.0"
|
|
24258
24431
|
},
|
|
24259
24432
|
{
|
|
24260
24433
|
id: "use-timer",
|
|
@@ -24266,7 +24439,7 @@ placeholder="Name or address\u2026"
|
|
|
24266
24439
|
summary: "",
|
|
24267
24440
|
description: "",
|
|
24268
24441
|
members: [],
|
|
24269
|
-
version: "11.
|
|
24442
|
+
version: "11.9.0"
|
|
24270
24443
|
},
|
|
24271
24444
|
{
|
|
24272
24445
|
id: "acceptable-file",
|
|
@@ -24278,7 +24451,7 @@ placeholder="Name or address\u2026"
|
|
|
24278
24451
|
summary: "",
|
|
24279
24452
|
description: "",
|
|
24280
24453
|
members: [],
|
|
24281
|
-
version: "11.
|
|
24454
|
+
version: "11.9.0"
|
|
24282
24455
|
},
|
|
24283
24456
|
{
|
|
24284
24457
|
id: "get-file-extension",
|
|
@@ -24290,7 +24463,7 @@ placeholder="Name or address\u2026"
|
|
|
24290
24463
|
summary: "",
|
|
24291
24464
|
description: "",
|
|
24292
24465
|
members: [],
|
|
24293
|
-
version: "11.
|
|
24466
|
+
version: "11.9.0"
|
|
24294
24467
|
},
|
|
24295
24468
|
{
|
|
24296
24469
|
id: "query-permission",
|
|
@@ -24302,7 +24475,7 @@ placeholder="Name or address\u2026"
|
|
|
24302
24475
|
summary: "The current state of a browser permission.",
|
|
24303
24476
|
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".',
|
|
24304
24477
|
members: [],
|
|
24305
|
-
version: "11.
|
|
24478
|
+
version: "11.9.0"
|
|
24306
24479
|
},
|
|
24307
24480
|
{
|
|
24308
24481
|
id: "permission-service",
|
|
@@ -24327,7 +24500,7 @@ placeholder="Name or address\u2026"
|
|
|
24327
24500
|
description: ""
|
|
24328
24501
|
}
|
|
24329
24502
|
],
|
|
24330
|
-
version: "11.
|
|
24503
|
+
version: "11.9.0"
|
|
24331
24504
|
},
|
|
24332
24505
|
{
|
|
24333
24506
|
id: "permission",
|
|
@@ -24339,7 +24512,7 @@ placeholder="Name or address\u2026"
|
|
|
24339
24512
|
summary: "",
|
|
24340
24513
|
description: "",
|
|
24341
24514
|
members: [],
|
|
24342
|
-
version: "11.
|
|
24515
|
+
version: "11.9.0"
|
|
24343
24516
|
},
|
|
24344
24517
|
{
|
|
24345
24518
|
id: "permission-state",
|
|
@@ -24351,7 +24524,7 @@ placeholder="Name or address\u2026"
|
|
|
24351
24524
|
summary: "",
|
|
24352
24525
|
description: "",
|
|
24353
24526
|
members: [],
|
|
24354
|
-
version: "11.
|
|
24527
|
+
version: "11.9.0"
|
|
24355
24528
|
},
|
|
24356
24529
|
{
|
|
24357
24530
|
id: "clipboard-copy-result",
|
|
@@ -24363,7 +24536,7 @@ placeholder="Name or address\u2026"
|
|
|
24363
24536
|
summary: "How a copy ended: - `copied` \u2014 the content is on the clipboard.",
|
|
24364
24537
|
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.",
|
|
24365
24538
|
members: [],
|
|
24366
|
-
version: "11.
|
|
24539
|
+
version: "11.9.0"
|
|
24367
24540
|
},
|
|
24368
24541
|
{
|
|
24369
24542
|
id: "clipboard-data",
|
|
@@ -24375,7 +24548,7 @@ placeholder="Name or address\u2026"
|
|
|
24375
24548
|
summary: "One clipboard representation; a promise lets the data arrive after the gesture.",
|
|
24376
24549
|
description: "One clipboard representation; a promise lets the data arrive after the gesture.",
|
|
24377
24550
|
members: [],
|
|
24378
|
-
version: "11.
|
|
24551
|
+
version: "11.9.0"
|
|
24379
24552
|
},
|
|
24380
24553
|
{
|
|
24381
24554
|
id: "clipboard-content",
|
|
@@ -24387,7 +24560,7 @@ placeholder="Name or address\u2026"
|
|
|
24387
24560
|
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 }`.",
|
|
24388
24561
|
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 }`.",
|
|
24389
24562
|
members: [],
|
|
24390
|
-
version: "11.
|
|
24563
|
+
version: "11.9.0"
|
|
24391
24564
|
},
|
|
24392
24565
|
{
|
|
24393
24566
|
id: "copy-to-clipboard",
|
|
@@ -24399,14 +24572,14 @@ placeholder="Name or address\u2026"
|
|
|
24399
24572
|
summary: "Copies text or rich content with the Async Clipboard API.",
|
|
24400
24573
|
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.",
|
|
24401
24574
|
members: [],
|
|
24402
|
-
version: "11.
|
|
24575
|
+
version: "11.9.0"
|
|
24403
24576
|
}
|
|
24404
24577
|
],
|
|
24405
24578
|
utilityDocs: [
|
|
24406
24579
|
{
|
|
24407
24580
|
module: "datasource",
|
|
24408
24581
|
title: "Datasource",
|
|
24409
|
-
markdown: "# Datasource\n\nThe Datasource system provides a flexible and reactive way to manage data collections in Angular applications. It supports both client-side and server-side data operations with a unified API.\n\n## Architecture\n\nThe datasource system consists of three main classes:\n\n- **`UniBaseDatasource<T>`**: Abstract base class defining the common interface\n- **`UniRecordDatasource<T>`**: Client-side datasource for in-memory data operations\n- **`UniServerSideDatasource<T>`**: Server-side datasource using Angular's resource signal\n\n## Features\n\n- **Reactive State Management**: Built with Angular signals for efficient reactivity\n- **Unified API**: Both client-side and server-side datasources implement the same interface\n- **Sorting**: Sort data by any column in ascending or descending order\n- **Filtering**: Apply filters with appropriate handling for client vs server-side\n- **Pagination**: Navigate through data with built-in pagination controls\n- **Selection**: Track and manage selected items\n- **Loading States**: Server-side datasource provides loading and error states\n\n## Client-Side Datasource\n\nFor in-memory data operations, use `UniRecordDatasource`:\n\n```typescript\nimport { UniRecordDatasource } from '@uni-design-system/uni-angular';\n\ninterface User {\n id: number;\n name: string;\n email: string;\n age: number;\n}\n\n@Component({...})\nclass ClientSideComponent {\n // Static data for client-side operations\n users: User[] = [\n { id: 1, name: 'John Doe', email: 'john@example.com', age: 30 },\n { id: 2, name: 'Jane Smith', email: 'jane@example.com', age: 25 },\n // more users...\n ];\n\n datasource = new UniRecordDatasource<User>(this.users);\n\n constructor() {\n // Set page size for pagination\n this.datasource.setPageSize(10);\n\n // Apply a filter function (client-side filtering)\n this.datasource.setFilter(user => user.age > 18);\n\n // Sort by a column\n this.datasource.sortRecords({\n column: 'name',\n direction: 'asc'\n });\n }\n\n // Handle row selection\n onRowClick(user: User) {\n this.datasource.toggleSelection(user);\n }\n\n // Navigate to next page\n nextPage() {\n this.datasource.nextPage();\n }\n}\n```\n\n## Server-Side Datasource\n\nFor server-side operations with automatic loading states, use `UniServerSideDatasource`:\n\n```typescript\nimport { UniServerSideDatasource, PageRequest, PageResponse } from '@uni-design-system/uni-angular';\n\n@Component({...})\nclass ServerSideComponent {\n datasource = new UniServerSideDatasource<User>(\n // Data loader function\n async (request: PageRequest): Promise<PageResponse<User>> => {\n const response = await this.userService.getUsers({\n page: request.pageNumber,\n size: request.pageSize,\n sort: request.sortColumn,\n order: request.sortDirection,\n filter: request.filter\n });\n\n return {\n data: response.users,\n totalRecords: response.total,\n pageNumber: request.pageNumber,\n pageSize: request.pageSize\n };\n },\n 10 // initial page size\n );\n\n constructor() {\n // Apply server-side filter (sends filter object to server)\n this.datasource.setFilter({ department: 'Engineering', active: true });\n\n // Sort by a column (triggers server request)\n this.datasource.sortRecords({\n column: 'name',\n direction: 'asc'\n });\n }\n\n // Access loading and error states\n get isLoading() {\n return this.datasource.isLoading();\n }\n\n get hasError() {\n return this.datasource.hasError();\n }\n\n // Refresh data from server\n refreshData() {\n this.datasource.refresh();\n }\n}\n```\n\n## API Reference\n\n### Common Properties (Both Datasources)\n\n- `records`: Signal containing the current page's filtered and sorted records\n- `recordCount`: Signal with the count of filtered records\n- `selections`: Signal containing currently selected items\n- `sort`: Signal containing the current sort configuration\n- `sortColumn`: Computed signal with the current sort column\n- `sortDirection`: Computed signal with the current sort direction\n- `pageIndex`: Signal with the current page index (zero-based)\n- `pageSize`: Signal with the number of items per page\n- `pageCount`: Signal with the total number of pages\n- `pages`: Signal with array of page numbers for pagination UI\n- `truncatedPages`: Signal with truncated page numbers (includes ellipsis)\n- `disablePrevious`: Signal indicating if previous button should be disabled\n- `disableNext`: Signal indicating if next button should be disabled\n\n### Common Methods (Both Datasources)\n\n- `isSelected(row)`: Checks if a row is selected\n- `toggleSelection(row)`: Toggles selection state of a row\n- `clearSelections()`: Clears all selections\n- `selectAll()`: Selects all records on current page\n- `sortRecords(sort)`: Sets the sort configuration\n- `firstPage()`, `nextPage()`, `previousPage()`, `lastPage()`: Navigation methods\n- `jumpToPage(page)`: Jumps to a specific page\n- `setPageSize(size)`: Sets the page size and resets to first page\n\n### Record Datasource Specific\n\n**Properties:**\n\n- `initialRecords`: Signal containing the original unfiltered data\n- `filter`: Signal containing the current filter function\n\n**Methods:**\n\n- `setFilter(predicate: (item: T) => boolean)`: Sets a filter function for client-side filtering\n- `clearFilter()`: Clears the current filter (shows all records)\n\n### Server-Side Datasource Specific\n\n**Properties:**\n\n- `isLoading`: Signal indicating if data is currently being loaded\n- `error`: Signal containing any loading errors\n- `hasError`: Signal indicating if there's an error state\n\n**Methods:**\n\n- `setFilter(filterObj: Record<string, any>)`: Sets filter parameters sent to server\n- `clearFilter()`: Clears all filter parameters\n- `refresh()`: Manually triggers a data reload from server\n- `getPageRequest()`: Returns the current page request parameters\n\n### Types\n\n```typescript\ninterface PageRequest {\n pageNumber: number;\n pageSize: number;\n sortColumn?: string;\n sortDirection?: SortDirection;\n filter?: Record<string, any>;\n}\n\ninterface PageResponse<T> {\n data: T[];\n totalRecords: number;\n pageNumber: number;\n pageSize: number;\n}\n\ntype DataLoader<T> = (request: PageRequest) => Promise<PageResponse<T>>;\n\ntype SortDirection = 'asc' | 'desc' | 'indet';\n\ninterface Sort<T> {\n column?: keyof T;\n direction: SortDirection;\n}\n```\n\n## Examples\n\n_Live demo on the Storybook page._"
|
|
24582
|
+
markdown: "# Datasource\n\nThe Datasource system provides a flexible and reactive way to manage data collections in Angular applications. It supports both client-side and server-side data operations with a unified API.\n\n## Architecture\n\nThe datasource system consists of three main classes:\n\n- **`UniBaseDatasource<T>`**: Abstract base class defining the common interface\n- **`UniRecordDatasource<T>`**: Client-side datasource for in-memory data operations\n- **`UniServerSideDatasource<T>`**: Server-side datasource using Angular's resource signal\n\n## Features\n\n- **Reactive State Management**: Built with Angular signals for efficient reactivity\n- **Unified API**: Both client-side and server-side datasources implement the same interface\n- **Sorting**: Sort data by any column in ascending or descending order\n- **Filtering**: Apply filters with appropriate handling for client vs server-side\n- **Pagination**: Navigate through data with built-in pagination controls\n- **Selection**: Track and manage selected items\n- **Loading States**: Server-side datasource provides loading and error states\n\n## Client-Side Datasource\n\nFor in-memory data operations, use `UniRecordDatasource`:\n\n```typescript\nimport { UniRecordDatasource } from '@uni-design-system/uni-angular';\n\ninterface User {\n id: number;\n name: string;\n email: string;\n age: number;\n}\n\n@Component({...})\nclass ClientSideComponent {\n // Static data for client-side operations\n users: User[] = [\n { id: 1, name: 'John Doe', email: 'john@example.com', age: 30 },\n { id: 2, name: 'Jane Smith', email: 'jane@example.com', age: 25 },\n // more users...\n ];\n\n datasource = new UniRecordDatasource<User>(this.users);\n\n constructor() {\n // Set page size for pagination\n this.datasource.setPageSize(10);\n\n // Apply a filter function (client-side filtering)\n this.datasource.setFilter(user => user.age > 18);\n\n // Sort by a column\n this.datasource.sortRecords({\n column: 'name',\n direction: 'asc'\n });\n }\n\n // Handle row selection\n onRowClick(user: User) {\n this.datasource.toggleSelection(user);\n }\n\n // Navigate to next page\n nextPage() {\n this.datasource.nextPage();\n }\n}\n```\n\n## Server-Side Datasource\n\nFor server-side operations with automatic loading states, use `UniServerSideDatasource`:\n\n```typescript\nimport { UniServerSideDatasource, PageRequest, PageResponse } from '@uni-design-system/uni-angular';\n\n@Component({...})\nclass ServerSideComponent {\n datasource = new UniServerSideDatasource<User>(\n // Data loader function\n async (request: PageRequest): Promise<PageResponse<User>> => {\n const response = await this.userService.getUsers({\n page: request.pageNumber,\n size: request.pageSize,\n sort: request.sortColumn,\n order: request.sortDirection,\n filter: request.filter\n });\n\n return {\n data: response.users,\n totalRecords: response.total,\n pageNumber: request.pageNumber,\n pageSize: request.pageSize\n };\n },\n 10 // initial page size\n );\n\n constructor() {\n // Apply server-side filter (sends filter object to server)\n this.datasource.setFilter({ department: 'Engineering', active: true });\n\n // Sort by a column (triggers server request)\n this.datasource.sortRecords({\n column: 'name',\n direction: 'asc'\n });\n }\n\n // Access loading and error states\n get isLoading() {\n return this.datasource.isLoading();\n }\n\n get hasError() {\n return this.datasource.hasError();\n }\n\n // Refresh data from server\n refreshData() {\n this.datasource.refresh();\n }\n}\n```\n\n## API Reference\n\n### Common Properties (Both Datasources)\n\n- `records`: Signal containing the current page's filtered and sorted records\n- `recordCount`: Signal with the count of filtered records\n- `selections`: Signal containing currently selected items\n- `sort`: Signal containing the current sort configuration\n- `sortColumn`: Computed signal with the current sort column\n- `sortDirection`: Computed signal with the current sort direction\n- `pageIndex`: Signal with the current page index (zero-based)\n- `pageSize`: Signal with the number of items per page\n- `pageCount`: Signal with the total number of pages\n- `pages`: Signal with array of page numbers for pagination UI\n- `truncatedPages`: Signal with truncated page numbers (includes ellipsis)\n- `disablePrevious`: Signal indicating if previous button should be disabled\n- `disableNext`: Signal indicating if next button should be disabled\n\n### Row identity\n\nBoth constructors take an options object with `rowId`, a function returning a\nstable key for a row (`{ rowId: (row) => row.id }`); it is also settable\nafterwards (`datasource.rowId = \u2026`). Without one, rows are compared by\nreference \u2014 which never matches a row rebuilt from a fresh fetch, so a\nrealtime update that replaced the records would empty the selection. With\none, `isSelected`, `toggleSelection` and `setSelected` key by it, and so do\n`uni-data-table`'s expanded row and its row tracking.\n\n### Common Methods (Both Datasources)\n\n- `isSelected(row)`: Checks if a row is selected (by `rowId` when set)\n- `toggleSelection(row)`: Toggles selection state of a row\n- `setSelected(rows, selected)`: Selects or deselects several rows, leaving the rest as they are\n- `clearSelections()`: Clears all selections\n- `selectAll()`: Selects all records on current page\n- `sortRecords(sort)`: Sets the sort configuration\n- `firstPage()`, `nextPage()`, `previousPage()`, `lastPage()`: Navigation methods\n- `jumpToPage(page)`: Jumps to a specific page\n- `setPageSize(size)`: Sets the page size and resets to first page\n\n### Record Datasource Specific\n\n**Properties:**\n\n- `initialRecords`: Signal containing the original unfiltered data\n- `filter`: Signal containing the current filter function\n\n**Methods:**\n\n- `setFilter(predicate: (item: T) => boolean)`: Sets a filter function for client-side filtering\n- `clearFilter()`: Clears the current filter (shows all records)\n\n### Server-Side Datasource Specific\n\n**Properties:**\n\n- `isLoading`: Signal indicating if data is currently being loaded\n- `error`: Signal containing any loading errors\n- `hasError`: Signal indicating if there's an error state\n\n**Methods:**\n\n- `setFilter(filterObj: Record<string, any>)`: Sets filter parameters sent to server\n- `clearFilter()`: Clears all filter parameters\n- `refresh()`: Manually triggers a data reload from server\n- `getPageRequest()`: Returns the current page request parameters\n\n### Types\n\n```typescript\ninterface PageRequest {\n pageNumber: number;\n pageSize: number;\n sortColumn?: string;\n sortDirection?: SortDirection;\n filter?: Record<string, any>;\n}\n\ninterface PageResponse<T> {\n data: T[];\n totalRecords: number;\n pageNumber: number;\n pageSize: number;\n}\n\ntype DataLoader<T> = (request: PageRequest) => Promise<PageResponse<T>>;\n\ntype SortDirection = 'asc' | 'desc' | 'indet';\n\ninterface Sort<T> {\n column?: keyof T;\n direction: SortDirection;\n}\n```\n\n## Examples\n\n_Live demo on the Storybook page._"
|
|
24410
24583
|
},
|
|
24411
24584
|
{
|
|
24412
24585
|
module: "local-storage",
|
|
@@ -26473,7 +26646,10 @@ var buildComponents = (c) => ({
|
|
|
26473
26646
|
rowHoverColor: "primary-container",
|
|
26474
26647
|
loadingOverlayColor: "scrim",
|
|
26475
26648
|
loadingSpinnerColor: "primary",
|
|
26476
|
-
loadingSpinnerSize: 40
|
|
26649
|
+
loadingSpinnerSize: 40,
|
|
26650
|
+
selectionColumnWidth: 40,
|
|
26651
|
+
selectionCheckboxSize: "sm",
|
|
26652
|
+
selectedRowColor: void 0
|
|
26477
26653
|
} },
|
|
26478
26654
|
notificationBadge: {
|
|
26479
26655
|
options: {
|
|
@@ -28041,4 +28217,4 @@ export {
|
|
|
28041
28217
|
buildStoredTheme,
|
|
28042
28218
|
createUniServer
|
|
28043
28219
|
};
|
|
28044
|
-
//# sourceMappingURL=chunk-
|
|
28220
|
+
//# sourceMappingURL=chunk-5CI6QESE.js.map
|