@uni-design-system/uni-mcp 11.0.0 → 11.1.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-RAD6CBGV.js → chunk-G5LYVS3L.js} +448 -114
- package/dist/chunk-G5LYVS3L.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-RAD6CBGV.js.map +0 -1
|
@@ -7,16 +7,16 @@ import { z } from "zod";
|
|
|
7
7
|
// src/data/uni-index.json
|
|
8
8
|
var uni_index_default = {
|
|
9
9
|
meta: {
|
|
10
|
-
version: "11.
|
|
11
|
-
builtAt: "2026-09-
|
|
10
|
+
version: "11.1.0",
|
|
11
|
+
builtAt: "2026-09-10T16:48:25.514Z",
|
|
12
12
|
frameworks: [
|
|
13
13
|
"angular"
|
|
14
14
|
],
|
|
15
15
|
counts: {
|
|
16
|
-
components:
|
|
17
|
-
tokens:
|
|
16
|
+
components: 86,
|
|
17
|
+
tokens: 485,
|
|
18
18
|
themes: 2,
|
|
19
|
-
examples:
|
|
19
|
+
examples: 238
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
22
|
components: [
|
|
@@ -27,7 +27,7 @@ var uni_index_default = {
|
|
|
27
27
|
summary: "",
|
|
28
28
|
description: "",
|
|
29
29
|
category: "feedback",
|
|
30
|
-
version: "11.
|
|
30
|
+
version: "11.1.0",
|
|
31
31
|
bindings: {
|
|
32
32
|
angular: {
|
|
33
33
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -117,7 +117,7 @@ var uni_index_default = {
|
|
|
117
117
|
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.",
|
|
118
118
|
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.",
|
|
119
119
|
category: "components",
|
|
120
|
-
version: "11.
|
|
120
|
+
version: "11.1.0",
|
|
121
121
|
bindings: {
|
|
122
122
|
angular: {
|
|
123
123
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -190,7 +190,7 @@ var uni_index_default = {
|
|
|
190
190
|
summary: "Identity avatar with a graceful fallback chain: image \u2192 initials from `name` \u2192 themed symbol.",
|
|
191
191
|
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.",
|
|
192
192
|
category: "components",
|
|
193
|
-
version: "11.
|
|
193
|
+
version: "11.1.0",
|
|
194
194
|
bindings: {
|
|
195
195
|
angular: {
|
|
196
196
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -285,7 +285,7 @@ var uni_index_default = {
|
|
|
285
285
|
summary: "Overlapping stack of avatars.",
|
|
286
286
|
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.",
|
|
287
287
|
category: "components",
|
|
288
|
-
version: "11.
|
|
288
|
+
version: "11.1.0",
|
|
289
289
|
bindings: {
|
|
290
290
|
angular: {
|
|
291
291
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -334,7 +334,7 @@ var uni_index_default = {
|
|
|
334
334
|
summary: "",
|
|
335
335
|
description: "",
|
|
336
336
|
category: "primitives",
|
|
337
|
-
version: "11.
|
|
337
|
+
version: "11.1.0",
|
|
338
338
|
bindings: {
|
|
339
339
|
angular: {
|
|
340
340
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -415,7 +415,7 @@ var uni_index_default = {
|
|
|
415
415
|
summary: "",
|
|
416
416
|
description: "",
|
|
417
417
|
category: "feedback",
|
|
418
|
-
version: "11.
|
|
418
|
+
version: "11.1.0",
|
|
419
419
|
bindings: {
|
|
420
420
|
angular: {
|
|
421
421
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -512,7 +512,7 @@ var uni_index_default = {
|
|
|
512
512
|
summary: "",
|
|
513
513
|
description: "",
|
|
514
514
|
category: "directives",
|
|
515
|
-
version: "11.
|
|
515
|
+
version: "11.1.0",
|
|
516
516
|
bindings: {
|
|
517
517
|
angular: {
|
|
518
518
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -536,7 +536,7 @@ var uni_index_default = {
|
|
|
536
536
|
summary: 'The base layout primitive, applied as an attribute to any element so semantics stay yours: `<main box-layout [grow]="1" padding="md">`.',
|
|
537
537
|
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.',
|
|
538
538
|
category: "layout",
|
|
539
|
-
version: "11.
|
|
539
|
+
version: "11.1.0",
|
|
540
540
|
bindings: {
|
|
541
541
|
angular: {
|
|
542
542
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -942,7 +942,7 @@ var uni_index_default = {
|
|
|
942
942
|
summary: 'WAI-ARIA breadcrumb: a `nav` landmark wrapping an ordered list; the last item is the current page (`aria-current="page"`), separators are decorative.',
|
|
943
943
|
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.',
|
|
944
944
|
category: "components",
|
|
945
|
-
version: "11.
|
|
945
|
+
version: "11.1.0",
|
|
946
946
|
bindings: {
|
|
947
947
|
angular: {
|
|
948
948
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1027,7 +1027,7 @@ var uni_index_default = {
|
|
|
1027
1027
|
summary: "",
|
|
1028
1028
|
description: "",
|
|
1029
1029
|
category: "primitives",
|
|
1030
|
-
version: "11.
|
|
1030
|
+
version: "11.1.0",
|
|
1031
1031
|
bindings: {
|
|
1032
1032
|
angular: {
|
|
1033
1033
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1187,7 +1187,7 @@ var uni_index_default = {
|
|
|
1187
1187
|
summary: "",
|
|
1188
1188
|
description: "",
|
|
1189
1189
|
category: "primitives",
|
|
1190
|
-
version: "11.
|
|
1190
|
+
version: "11.1.0",
|
|
1191
1191
|
bindings: {
|
|
1192
1192
|
angular: {
|
|
1193
1193
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1219,7 +1219,7 @@ var uni_index_default = {
|
|
|
1219
1219
|
summary: "Inline month calendar: single-date or start\u2013end range selection, day markers (availability dots), min/max fences and disabled dates.",
|
|
1220
1220
|
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.",
|
|
1221
1221
|
category: "forms",
|
|
1222
|
-
version: "11.
|
|
1222
|
+
version: "11.1.0",
|
|
1223
1223
|
bindings: {
|
|
1224
1224
|
angular: {
|
|
1225
1225
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1460,7 +1460,7 @@ var uni_index_default = {
|
|
|
1460
1460
|
summary: "Anchored coach-mark panel that dims the page and cuts a spotlight hole around its target.",
|
|
1461
1461
|
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).',
|
|
1462
1462
|
category: "components",
|
|
1463
|
-
version: "11.
|
|
1463
|
+
version: "11.1.0",
|
|
1464
1464
|
bindings: {
|
|
1465
1465
|
angular: {
|
|
1466
1466
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1680,7 +1680,7 @@ var uni_index_default = {
|
|
|
1680
1680
|
summary: "",
|
|
1681
1681
|
description: "",
|
|
1682
1682
|
category: "layout",
|
|
1683
|
-
version: "11.
|
|
1683
|
+
version: "11.1.0",
|
|
1684
1684
|
bindings: {
|
|
1685
1685
|
angular: {
|
|
1686
1686
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1742,7 +1742,7 @@ var uni_index_default = {
|
|
|
1742
1742
|
summary: "",
|
|
1743
1743
|
description: "",
|
|
1744
1744
|
category: "layout",
|
|
1745
|
-
version: "11.
|
|
1745
|
+
version: "11.1.0",
|
|
1746
1746
|
bindings: {
|
|
1747
1747
|
angular: {
|
|
1748
1748
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1783,7 +1783,7 @@ var uni_index_default = {
|
|
|
1783
1783
|
summary: "",
|
|
1784
1784
|
description: "",
|
|
1785
1785
|
category: "layout",
|
|
1786
|
-
version: "11.
|
|
1786
|
+
version: "11.1.0",
|
|
1787
1787
|
bindings: {
|
|
1788
1788
|
angular: {
|
|
1789
1789
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1840,7 +1840,7 @@ var uni_index_default = {
|
|
|
1840
1840
|
summary: "",
|
|
1841
1841
|
description: "",
|
|
1842
1842
|
category: "layout",
|
|
1843
|
-
version: "11.
|
|
1843
|
+
version: "11.1.0",
|
|
1844
1844
|
bindings: {
|
|
1845
1845
|
angular: {
|
|
1846
1846
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -1895,7 +1895,7 @@ var uni_index_default = {
|
|
|
1895
1895
|
summary: "",
|
|
1896
1896
|
description: "",
|
|
1897
1897
|
category: "forms",
|
|
1898
|
-
version: "11.
|
|
1898
|
+
version: "11.1.0",
|
|
1899
1899
|
bindings: {
|
|
1900
1900
|
angular: {
|
|
1901
1901
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -2079,7 +2079,7 @@ var uni_index_default = {
|
|
|
2079
2079
|
summary: "Form-bound, closed-set, single-select autocomplete: `FormValueControl<T | null>` over object `Options<T>`, type-to-filter, commit-on-select.",
|
|
2080
2080
|
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.",
|
|
2081
2081
|
category: "forms",
|
|
2082
|
-
version: "11.
|
|
2082
|
+
version: "11.1.0",
|
|
2083
2083
|
bindings: {
|
|
2084
2084
|
angular: {
|
|
2085
2085
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -2365,7 +2365,7 @@ emptyText="No countries found"
|
|
|
2365
2365
|
summary: "",
|
|
2366
2366
|
description: "",
|
|
2367
2367
|
category: "feedback",
|
|
2368
|
-
version: "11.
|
|
2368
|
+
version: "11.1.0",
|
|
2369
2369
|
bindings: {
|
|
2370
2370
|
angular: {
|
|
2371
2371
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -2412,7 +2412,7 @@ emptyText="No countries found"
|
|
|
2412
2412
|
summary: "",
|
|
2413
2413
|
description: "",
|
|
2414
2414
|
category: "forms",
|
|
2415
|
-
version: "11.
|
|
2415
|
+
version: "11.1.0",
|
|
2416
2416
|
bindings: {
|
|
2417
2417
|
angular: {
|
|
2418
2418
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -2511,7 +2511,7 @@ emptyText="No countries found"
|
|
|
2511
2511
|
summary: "",
|
|
2512
2512
|
description: "",
|
|
2513
2513
|
category: "data",
|
|
2514
|
-
version: "11.
|
|
2514
|
+
version: "11.1.0",
|
|
2515
2515
|
bindings: {
|
|
2516
2516
|
angular: {
|
|
2517
2517
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -2751,7 +2751,7 @@ emptyText="No countries found"
|
|
|
2751
2751
|
summary: "Date field with free-typed parsing and a popup calendar.",
|
|
2752
2752
|
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.",
|
|
2753
2753
|
category: "forms",
|
|
2754
|
-
version: "11.
|
|
2754
|
+
version: "11.1.0",
|
|
2755
2755
|
bindings: {
|
|
2756
2756
|
angular: {
|
|
2757
2757
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -2982,7 +2982,7 @@ emptyText="No countries found"
|
|
|
2982
2982
|
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.",
|
|
2983
2983
|
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.",
|
|
2984
2984
|
category: "forms",
|
|
2985
|
-
version: "11.
|
|
2985
|
+
version: "11.1.0",
|
|
2986
2986
|
bindings: {
|
|
2987
2987
|
angular: {
|
|
2988
2988
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3175,7 +3175,7 @@ emptyText="No countries found"
|
|
|
3175
3175
|
summary: "Text input that emits `change` only after the user pauses typing.",
|
|
3176
3176
|
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.",
|
|
3177
3177
|
category: "forms",
|
|
3178
|
-
version: "11.
|
|
3178
|
+
version: "11.1.0",
|
|
3179
3179
|
bindings: {
|
|
3180
3180
|
angular: {
|
|
3181
3181
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3323,7 +3323,7 @@ emptyText="No countries found"
|
|
|
3323
3323
|
summary: "Modal dialog on the native `<dialog>` element, laid out as three rows: an optional `[dialog-header]`, the projected body, an optional `[dialog-buttons]`.",
|
|
3324
3324
|
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.",
|
|
3325
3325
|
category: "feedback",
|
|
3326
|
-
version: "11.
|
|
3326
|
+
version: "11.1.0",
|
|
3327
3327
|
bindings: {
|
|
3328
3328
|
angular: {
|
|
3329
3329
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3476,7 +3476,7 @@ uni-dialog
|
|
|
3476
3476
|
summary: "",
|
|
3477
3477
|
description: "",
|
|
3478
3478
|
category: "feedback",
|
|
3479
|
-
version: "11.
|
|
3479
|
+
version: "11.1.0",
|
|
3480
3480
|
bindings: {
|
|
3481
3481
|
angular: {
|
|
3482
3482
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3580,7 +3580,7 @@ uni-dialog
|
|
|
3580
3580
|
summary: "",
|
|
3581
3581
|
description: "",
|
|
3582
3582
|
category: "feedback",
|
|
3583
|
-
version: "11.
|
|
3583
|
+
version: "11.1.0",
|
|
3584
3584
|
bindings: {
|
|
3585
3585
|
angular: {
|
|
3586
3586
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3621,7 +3621,7 @@ uni-dialog
|
|
|
3621
3621
|
summary: "",
|
|
3622
3622
|
description: "",
|
|
3623
3623
|
category: "layout",
|
|
3624
|
-
version: "11.
|
|
3624
|
+
version: "11.1.0",
|
|
3625
3625
|
bindings: {
|
|
3626
3626
|
angular: {
|
|
3627
3627
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3677,7 +3677,7 @@ uni-dialog
|
|
|
3677
3677
|
summary: "",
|
|
3678
3678
|
description: "",
|
|
3679
3679
|
category: "directives",
|
|
3680
|
-
version: "11.
|
|
3680
|
+
version: "11.1.0",
|
|
3681
3681
|
bindings: {
|
|
3682
3682
|
angular: {
|
|
3683
3683
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3709,7 +3709,7 @@ uni-dialog
|
|
|
3709
3709
|
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.",
|
|
3710
3710
|
description: "Drawer with two modes sharing one three-row layout: - `side` \u2014 an in-flow `<aside>` that pushes content (dashboard sidenav); opening/closing animates its width, and the divider border primitive separates it from the page. - `over` \u2014 a native `<dialog>` in the top layer: focus trap, Escape and scrim backdrop come from the platform (same machinery as `uni-dialog`), sliding in from its edge. **The panel is never the scroll container.** It is a flex column of three rows \u2014 an optional `[uni-drawer-header]`, the projected body, an optional `[uni-drawer-buttons]` \u2014 and only the body scrolls. The panel itself is `overflow: clip` on both axes. That is what lets a header and a save bar pin while a long form scrolls between them, and it is why the theme's `padding` option lands on the body row rather than the panel: padding on a scrolling box scrolls away with its content. Surface, width, divider, elevation, padding, backdrop, scrim and background all resolve from `drawer` theme tokens.",
|
|
3711
3711
|
category: "components",
|
|
3712
|
-
version: "11.
|
|
3712
|
+
version: "11.1.0",
|
|
3713
3713
|
bindings: {
|
|
3714
3714
|
angular: {
|
|
3715
3715
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3900,7 +3900,7 @@ initialFocus="input"
|
|
|
3900
3900
|
summary: "The drawer's pinned footer action row \u2014 the save bar of an editor panel.",
|
|
3901
3901
|
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.",
|
|
3902
3902
|
category: "primitives",
|
|
3903
|
-
version: "11.
|
|
3903
|
+
version: "11.1.0",
|
|
3904
3904
|
bindings: {
|
|
3905
3905
|
angular: {
|
|
3906
3906
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -3997,7 +3997,7 @@ initialFocus="input"
|
|
|
3997
3997
|
summary: "The drawer's pinned header row: a title, and optionally a close button.",
|
|
3998
3998
|
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.",
|
|
3999
3999
|
category: "components",
|
|
4000
|
-
version: "11.
|
|
4000
|
+
version: "11.1.0",
|
|
4001
4001
|
bindings: {
|
|
4002
4002
|
angular: {
|
|
4003
4003
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4045,7 +4045,7 @@ initialFocus="input"
|
|
|
4045
4045
|
summary: "",
|
|
4046
4046
|
description: "",
|
|
4047
4047
|
category: "components",
|
|
4048
|
-
version: "11.
|
|
4048
|
+
version: "11.1.0",
|
|
4049
4049
|
bindings: {
|
|
4050
4050
|
angular: {
|
|
4051
4051
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4179,7 +4179,7 @@ initialFocus="input"
|
|
|
4179
4179
|
summary: "",
|
|
4180
4180
|
description: "",
|
|
4181
4181
|
category: "layout",
|
|
4182
|
-
version: "11.
|
|
4182
|
+
version: "11.1.0",
|
|
4183
4183
|
bindings: {
|
|
4184
4184
|
angular: {
|
|
4185
4185
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4283,7 +4283,7 @@ initialFocus="input"
|
|
|
4283
4283
|
summary: "",
|
|
4284
4284
|
description: "",
|
|
4285
4285
|
category: "layout",
|
|
4286
|
-
version: "11.
|
|
4286
|
+
version: "11.1.0",
|
|
4287
4287
|
bindings: {
|
|
4288
4288
|
angular: {
|
|
4289
4289
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4354,7 +4354,7 @@ initialFocus="input"
|
|
|
4354
4354
|
summary: "Trigger for a {@link UniExpandComponent} region.",
|
|
4355
4355
|
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.",
|
|
4356
4356
|
category: "layout",
|
|
4357
|
-
version: "11.
|
|
4357
|
+
version: "11.1.0",
|
|
4358
4358
|
bindings: {
|
|
4359
4359
|
angular: {
|
|
4360
4360
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4439,7 +4439,7 @@ initialFocus="input"
|
|
|
4439
4439
|
summary: "",
|
|
4440
4440
|
description: "",
|
|
4441
4441
|
category: "forms",
|
|
4442
|
-
version: "11.
|
|
4442
|
+
version: "11.1.0",
|
|
4443
4443
|
bindings: {
|
|
4444
4444
|
angular: {
|
|
4445
4445
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4597,7 +4597,7 @@ initialFocus="input"
|
|
|
4597
4597
|
summary: "",
|
|
4598
4598
|
description: "",
|
|
4599
4599
|
category: "layout",
|
|
4600
|
-
version: "11.
|
|
4600
|
+
version: "11.1.0",
|
|
4601
4601
|
bindings: {
|
|
4602
4602
|
angular: {
|
|
4603
4603
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4694,7 +4694,7 @@ initialFocus="input"
|
|
|
4694
4694
|
summary: "",
|
|
4695
4695
|
description: "",
|
|
4696
4696
|
category: "layout",
|
|
4697
|
-
version: "11.
|
|
4697
|
+
version: "11.1.0",
|
|
4698
4698
|
bindings: {
|
|
4699
4699
|
angular: {
|
|
4700
4700
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4726,7 +4726,7 @@ initialFocus="input"
|
|
|
4726
4726
|
summary: "",
|
|
4727
4727
|
description: "",
|
|
4728
4728
|
category: "primitives",
|
|
4729
|
-
version: "11.
|
|
4729
|
+
version: "11.1.0",
|
|
4730
4730
|
bindings: {
|
|
4731
4731
|
angular: {
|
|
4732
4732
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4786,7 +4786,7 @@ initialFocus="input"
|
|
|
4786
4786
|
summary: "",
|
|
4787
4787
|
description: "",
|
|
4788
4788
|
category: "primitives",
|
|
4789
|
-
version: "11.
|
|
4789
|
+
version: "11.1.0",
|
|
4790
4790
|
bindings: {
|
|
4791
4791
|
angular: {
|
|
4792
4792
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -4889,7 +4889,7 @@ initialFocus="input"
|
|
|
4889
4889
|
summary: "A button that lives inside a sentence.",
|
|
4890
4890
|
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.",
|
|
4891
4891
|
category: "primitives",
|
|
4892
|
-
version: "11.
|
|
4892
|
+
version: "11.1.0",
|
|
4893
4893
|
bindings: {
|
|
4894
4894
|
angular: {
|
|
4895
4895
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5004,7 +5004,7 @@ initialFocus="input"
|
|
|
5004
5004
|
summary: "",
|
|
5005
5005
|
description: "",
|
|
5006
5006
|
category: "forms",
|
|
5007
|
-
version: "11.
|
|
5007
|
+
version: "11.1.0",
|
|
5008
5008
|
bindings: {
|
|
5009
5009
|
angular: {
|
|
5010
5010
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5289,7 +5289,7 @@ initialFocus="input"
|
|
|
5289
5289
|
summary: "",
|
|
5290
5290
|
description: "",
|
|
5291
5291
|
category: "forms",
|
|
5292
|
-
version: "11.
|
|
5292
|
+
version: "11.1.0",
|
|
5293
5293
|
bindings: {
|
|
5294
5294
|
angular: {
|
|
5295
5295
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5410,7 +5410,7 @@ initialFocus="input"
|
|
|
5410
5410
|
summary: "",
|
|
5411
5411
|
description: "",
|
|
5412
5412
|
category: "components",
|
|
5413
|
-
version: "11.
|
|
5413
|
+
version: "11.1.0",
|
|
5414
5414
|
bindings: {
|
|
5415
5415
|
angular: {
|
|
5416
5416
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5480,7 +5480,7 @@ initialFocus="input"
|
|
|
5480
5480
|
summary: "",
|
|
5481
5481
|
description: "",
|
|
5482
5482
|
category: "layout",
|
|
5483
|
-
version: "11.
|
|
5483
|
+
version: "11.1.0",
|
|
5484
5484
|
bindings: {
|
|
5485
5485
|
angular: {
|
|
5486
5486
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5584,7 +5584,7 @@ initialFocus="input"
|
|
|
5584
5584
|
summary: "",
|
|
5585
5585
|
description: "",
|
|
5586
5586
|
category: "layout",
|
|
5587
|
-
version: "11.
|
|
5587
|
+
version: "11.1.0",
|
|
5588
5588
|
bindings: {
|
|
5589
5589
|
angular: {
|
|
5590
5590
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5666,7 +5666,7 @@ initialFocus="input"
|
|
|
5666
5666
|
summary: "",
|
|
5667
5667
|
description: "",
|
|
5668
5668
|
category: "forms",
|
|
5669
|
-
version: "11.
|
|
5669
|
+
version: "11.1.0",
|
|
5670
5670
|
bindings: {
|
|
5671
5671
|
angular: {
|
|
5672
5672
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5760,7 +5760,7 @@ initialFocus="input"
|
|
|
5760
5760
|
summary: "",
|
|
5761
5761
|
description: "",
|
|
5762
5762
|
category: "forms",
|
|
5763
|
-
version: "11.
|
|
5763
|
+
version: "11.1.0",
|
|
5764
5764
|
bindings: {
|
|
5765
5765
|
angular: {
|
|
5766
5766
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -5939,7 +5939,7 @@ initialFocus="input"
|
|
|
5939
5939
|
summary: "",
|
|
5940
5940
|
description: "",
|
|
5941
5941
|
category: "feedback",
|
|
5942
|
-
version: "11.
|
|
5942
|
+
version: "11.1.0",
|
|
5943
5943
|
bindings: {
|
|
5944
5944
|
angular: {
|
|
5945
5945
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -6199,7 +6199,7 @@ initialFocus="input"
|
|
|
6199
6199
|
summary: "",
|
|
6200
6200
|
description: "",
|
|
6201
6201
|
category: "feedback",
|
|
6202
|
-
version: "11.
|
|
6202
|
+
version: "11.1.0",
|
|
6203
6203
|
bindings: {
|
|
6204
6204
|
angular: {
|
|
6205
6205
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -6223,7 +6223,7 @@ initialFocus="input"
|
|
|
6223
6223
|
summary: "Numeric field with locale-aware parsing, `Intl` formatting on commit, prefix/suffix adornments and steppers that hold to repeat.",
|
|
6224
6224
|
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.',
|
|
6225
6225
|
category: "forms",
|
|
6226
|
-
version: "11.
|
|
6226
|
+
version: "11.1.0",
|
|
6227
6227
|
bindings: {
|
|
6228
6228
|
angular: {
|
|
6229
6229
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -6649,7 +6649,7 @@ initialFocus="input"
|
|
|
6649
6649
|
summary: "Two linked numeric fields in one chrome, with one `{ start, end }` value \u2014 price filters, thresholds, tolerances.",
|
|
6650
6650
|
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.",
|
|
6651
6651
|
category: "forms",
|
|
6652
|
-
version: "11.
|
|
6652
|
+
version: "11.1.0",
|
|
6653
6653
|
bindings: {
|
|
6654
6654
|
angular: {
|
|
6655
6655
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -6940,7 +6940,7 @@ initialFocus="input"
|
|
|
6940
6940
|
summary: "",
|
|
6941
6941
|
description: "",
|
|
6942
6942
|
category: "data",
|
|
6943
|
-
version: "11.
|
|
6943
|
+
version: "11.1.0",
|
|
6944
6944
|
bindings: {
|
|
6945
6945
|
angular: {
|
|
6946
6946
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7041,7 +7041,7 @@ initialFocus="input"
|
|
|
7041
7041
|
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.",
|
|
7042
7042
|
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.',
|
|
7043
7043
|
category: "layout",
|
|
7044
|
-
version: "11.
|
|
7044
|
+
version: "11.1.0",
|
|
7045
7045
|
bindings: {
|
|
7046
7046
|
angular: {
|
|
7047
7047
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7233,7 +7233,7 @@ initialFocus="input"
|
|
|
7233
7233
|
summary: "",
|
|
7234
7234
|
description: "",
|
|
7235
7235
|
category: "feedback",
|
|
7236
|
-
version: "11.
|
|
7236
|
+
version: "11.1.0",
|
|
7237
7237
|
bindings: {
|
|
7238
7238
|
angular: {
|
|
7239
7239
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7297,7 +7297,7 @@ initialFocus="input"
|
|
|
7297
7297
|
summary: "",
|
|
7298
7298
|
description: "",
|
|
7299
7299
|
category: "feedback",
|
|
7300
|
-
version: "11.
|
|
7300
|
+
version: "11.1.0",
|
|
7301
7301
|
bindings: {
|
|
7302
7302
|
angular: {
|
|
7303
7303
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7369,7 +7369,7 @@ initialFocus="input"
|
|
|
7369
7369
|
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.",
|
|
7370
7370
|
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.',
|
|
7371
7371
|
category: "forms",
|
|
7372
|
-
version: "11.
|
|
7372
|
+
version: "11.1.0",
|
|
7373
7373
|
bindings: {
|
|
7374
7374
|
angular: {
|
|
7375
7375
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7572,7 +7572,7 @@ initialFocus="input"
|
|
|
7572
7572
|
summary: "",
|
|
7573
7573
|
description: "",
|
|
7574
7574
|
category: "forms",
|
|
7575
|
-
version: "11.
|
|
7575
|
+
version: "11.1.0",
|
|
7576
7576
|
bindings: {
|
|
7577
7577
|
angular: {
|
|
7578
7578
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7770,7 +7770,7 @@ initialFocus="input"
|
|
|
7770
7770
|
summary: "",
|
|
7771
7771
|
description: "",
|
|
7772
7772
|
category: "directives",
|
|
7773
|
-
version: "11.
|
|
7773
|
+
version: "11.1.0",
|
|
7774
7774
|
bindings: {
|
|
7775
7775
|
angular: {
|
|
7776
7776
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7794,7 +7794,7 @@ initialFocus="input"
|
|
|
7794
7794
|
summary: "",
|
|
7795
7795
|
description: "",
|
|
7796
7796
|
category: "layout",
|
|
7797
|
-
version: "11.
|
|
7797
|
+
version: "11.1.0",
|
|
7798
7798
|
bindings: {
|
|
7799
7799
|
angular: {
|
|
7800
7800
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7849,7 +7849,7 @@ initialFocus="input"
|
|
|
7849
7849
|
summary: "Native scroll area with theme-driven scrollbar styling.",
|
|
7850
7850
|
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.",
|
|
7851
7851
|
category: "layout",
|
|
7852
|
-
version: "11.
|
|
7852
|
+
version: "11.1.0",
|
|
7853
7853
|
bindings: {
|
|
7854
7854
|
angular: {
|
|
7855
7855
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -7996,7 +7996,7 @@ initialFocus="input"
|
|
|
7996
7996
|
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.",
|
|
7997
7997
|
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.",
|
|
7998
7998
|
category: "forms",
|
|
7999
|
-
version: "11.
|
|
7999
|
+
version: "11.1.0",
|
|
8000
8000
|
bindings: {
|
|
8001
8001
|
angular: {
|
|
8002
8002
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8123,7 +8123,7 @@ initialFocus="input"
|
|
|
8123
8123
|
summary: "",
|
|
8124
8124
|
description: "",
|
|
8125
8125
|
category: "forms",
|
|
8126
|
-
version: "11.
|
|
8126
|
+
version: "11.1.0",
|
|
8127
8127
|
bindings: {
|
|
8128
8128
|
angular: {
|
|
8129
8129
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8293,7 +8293,7 @@ initialFocus="input"
|
|
|
8293
8293
|
summary: "Loading placeholder painted with surface tokens.",
|
|
8294
8294
|
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.",
|
|
8295
8295
|
category: "components",
|
|
8296
|
-
version: "11.
|
|
8296
|
+
version: "11.1.0",
|
|
8297
8297
|
bindings: {
|
|
8298
8298
|
angular: {
|
|
8299
8299
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8444,7 +8444,7 @@ initialFocus="input"
|
|
|
8444
8444
|
summary: "Bounded numeric input by pointer, for values where the *position* is the information: volume, opacity, weightings, price filters.",
|
|
8445
8445
|
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.",
|
|
8446
8446
|
category: "forms",
|
|
8447
|
-
version: "11.
|
|
8447
|
+
version: "11.1.0",
|
|
8448
8448
|
bindings: {
|
|
8449
8449
|
angular: {
|
|
8450
8450
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8718,7 +8718,7 @@ initialFocus="input"
|
|
|
8718
8718
|
summary: "",
|
|
8719
8719
|
description: "",
|
|
8720
8720
|
category: "feedback",
|
|
8721
|
-
version: "11.
|
|
8721
|
+
version: "11.1.0",
|
|
8722
8722
|
bindings: {
|
|
8723
8723
|
angular: {
|
|
8724
8724
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8830,7 +8830,7 @@ initialFocus="input"
|
|
|
8830
8830
|
summary: "",
|
|
8831
8831
|
description: "",
|
|
8832
8832
|
category: "data",
|
|
8833
|
-
version: "11.
|
|
8833
|
+
version: "11.1.0",
|
|
8834
8834
|
bindings: {
|
|
8835
8835
|
angular: {
|
|
8836
8836
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8889,7 +8889,7 @@ initialFocus="input"
|
|
|
8889
8889
|
summary: "",
|
|
8890
8890
|
description: "",
|
|
8891
8891
|
category: "layout",
|
|
8892
|
-
version: "11.
|
|
8892
|
+
version: "11.1.0",
|
|
8893
8893
|
bindings: {
|
|
8894
8894
|
angular: {
|
|
8895
8895
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -8944,7 +8944,7 @@ initialFocus="input"
|
|
|
8944
8944
|
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.',
|
|
8945
8945
|
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.',
|
|
8946
8946
|
category: "components",
|
|
8947
|
-
version: "11.
|
|
8947
|
+
version: "11.1.0",
|
|
8948
8948
|
bindings: {
|
|
8949
8949
|
angular: {
|
|
8950
8950
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9062,7 +9062,7 @@ initialFocus="input"
|
|
|
9062
9062
|
summary: "",
|
|
9063
9063
|
description: "",
|
|
9064
9064
|
category: "primitives",
|
|
9065
|
-
version: "11.
|
|
9065
|
+
version: "11.1.0",
|
|
9066
9066
|
bindings: {
|
|
9067
9067
|
angular: {
|
|
9068
9068
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9151,7 +9151,7 @@ initialFocus="input"
|
|
|
9151
9151
|
summary: "One tab inside `uni-tabs`: a label for the tablist plus projected panel content.",
|
|
9152
9152
|
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.",
|
|
9153
9153
|
category: "components",
|
|
9154
|
-
version: "11.
|
|
9154
|
+
version: "11.1.0",
|
|
9155
9155
|
bindings: {
|
|
9156
9156
|
angular: {
|
|
9157
9157
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9191,7 +9191,7 @@ initialFocus="input"
|
|
|
9191
9191
|
summary: "WAI-ARIA tabs: roving tabindex, automatic activation (arrow keys move focus and select), Home/End, disabled tabs skipped.",
|
|
9192
9192
|
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.",
|
|
9193
9193
|
category: "components",
|
|
9194
|
-
version: "11.
|
|
9194
|
+
version: "11.1.0",
|
|
9195
9195
|
bindings: {
|
|
9196
9196
|
angular: {
|
|
9197
9197
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9270,9 +9270,9 @@ initialFocus="input"
|
|
|
9270
9270
|
name: "Tag",
|
|
9271
9271
|
status: "stable",
|
|
9272
9272
|
summary: "Compact chip for categories, states, filters and tokens.",
|
|
9273
|
-
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. 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.",
|
|
9273
|
+
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.",
|
|
9274
9274
|
category: "data",
|
|
9275
|
-
version: "11.
|
|
9275
|
+
version: "11.1.0",
|
|
9276
9276
|
bindings: {
|
|
9277
9277
|
angular: {
|
|
9278
9278
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9304,7 +9304,7 @@ initialFocus="input"
|
|
|
9304
9304
|
{
|
|
9305
9305
|
name: "value",
|
|
9306
9306
|
kind: "input",
|
|
9307
|
-
type: "
|
|
9307
|
+
type: "T",
|
|
9308
9308
|
required: false,
|
|
9309
9309
|
description: ""
|
|
9310
9310
|
},
|
|
@@ -9404,19 +9404,19 @@ initialFocus="input"
|
|
|
9404
9404
|
type: "number",
|
|
9405
9405
|
required: false,
|
|
9406
9406
|
default: "0",
|
|
9407
|
-
description: "Tab position of the chip's controls. A composite that owns its own roving focus \u2014 `uni-tag-input`, where the whole
|
|
9407
|
+
description: "Tab position of the chip's controls. A composite that owns its own roving focus \u2014 `uni-tag-input` or `uni-tag-group`, where the whole thing is one tab stop \u2014 passes `-1` so Tab does not walk through every chip to reach the next control."
|
|
9408
9408
|
},
|
|
9409
9409
|
{
|
|
9410
9410
|
name: "removed",
|
|
9411
9411
|
kind: "output",
|
|
9412
|
-
type: "
|
|
9412
|
+
type: "T | undefined",
|
|
9413
9413
|
required: false,
|
|
9414
9414
|
description: ""
|
|
9415
9415
|
},
|
|
9416
9416
|
{
|
|
9417
9417
|
name: "activated",
|
|
9418
9418
|
kind: "output",
|
|
9419
|
-
type: "
|
|
9419
|
+
type: "T | undefined",
|
|
9420
9420
|
required: false,
|
|
9421
9421
|
description: ""
|
|
9422
9422
|
},
|
|
@@ -9519,7 +9519,25 @@ initialFocus="input"
|
|
|
9519
9519
|
}
|
|
9520
9520
|
</div>
|
|
9521
9521
|
<!-- args:
|
|
9522
|
-
{ interactive: true, selected: true
|
|
9522
|
+
{ interactive: true, selected: true }
|
|
9523
|
+
-->`
|
|
9524
|
+
},
|
|
9525
|
+
{
|
|
9526
|
+
title: "Toggles",
|
|
9527
|
+
framework: "angular",
|
|
9528
|
+
code: `<!-- Storybook story: Toggles -->
|
|
9529
|
+
<div row-layout gap="sm" alignItems="center" style="flex-wrap:wrap">
|
|
9530
|
+
@for (facet of ['Design', 'Engineering', 'Legal', 'Finance']; track facet) {
|
|
9531
|
+
<uni-tag
|
|
9532
|
+
[interactive]="true"
|
|
9533
|
+
[label]="facet"
|
|
9534
|
+
[selected]="picked.includes(facet)"
|
|
9535
|
+
(activated)="toggle(facet)"
|
|
9536
|
+
/>
|
|
9537
|
+
}
|
|
9538
|
+
</div>
|
|
9539
|
+
<!-- args:
|
|
9540
|
+
{ label: 'nope@@x', invalid: true, removable: true, variant: 'warn' }
|
|
9523
9541
|
-->`
|
|
9524
9542
|
},
|
|
9525
9543
|
{
|
|
@@ -9610,6 +9628,7 @@ initialFocus="input"
|
|
|
9610
9628
|
"A static tag is **text, not a widget**: no role, no tab stop. Screen readers",
|
|
9611
9629
|
"`removable` adds one real `<button>` named `Remove {label}`, overridable with",
|
|
9612
9630
|
'`interactive` makes the body a `<button type="button">`; `selected` maps to',
|
|
9631
|
+
"`controlTabIndex` lets a composite that owns its own roving focus \u2014",
|
|
9613
9632
|
"Icons, avatars, initials and dots are `aria-hidden` \u2014 the chip's text is its",
|
|
9614
9633
|
"`invalid` sets `aria-invalid` and adds a non-colour cue."
|
|
9615
9634
|
]
|
|
@@ -9620,9 +9639,208 @@ initialFocus="input"
|
|
|
9620
9639
|
"tag.behavior.gap",
|
|
9621
9640
|
"tag.behavior.removeIcon",
|
|
9622
9641
|
"tag.behavior.selectedIcon",
|
|
9623
|
-
"tag.behavior.motion"
|
|
9642
|
+
"tag.behavior.motion",
|
|
9643
|
+
"tag.behavior.endInset"
|
|
9624
9644
|
]
|
|
9625
9645
|
},
|
|
9646
|
+
{
|
|
9647
|
+
id: "tag-group",
|
|
9648
|
+
name: "TagGroup",
|
|
9649
|
+
status: "stable",
|
|
9650
|
+
summary: "A row of chips the user picks from: filters, facets, a set of labels.",
|
|
9651
|
+
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.",
|
|
9652
|
+
category: "data",
|
|
9653
|
+
version: "11.1.0",
|
|
9654
|
+
bindings: {
|
|
9655
|
+
angular: {
|
|
9656
|
+
importPath: "@uni-design-system/uni-angular",
|
|
9657
|
+
selectorOrTag: "uni-tag-group",
|
|
9658
|
+
api: [
|
|
9659
|
+
{
|
|
9660
|
+
name: "items",
|
|
9661
|
+
kind: "input",
|
|
9662
|
+
type: "readonly UniTagGroupItem<T>[]",
|
|
9663
|
+
required: false,
|
|
9664
|
+
default: "[]",
|
|
9665
|
+
description: ""
|
|
9666
|
+
},
|
|
9667
|
+
{
|
|
9668
|
+
name: "layout",
|
|
9669
|
+
kind: "input",
|
|
9670
|
+
type: "'wrap' | 'justify'",
|
|
9671
|
+
required: false,
|
|
9672
|
+
default: "'wrap'",
|
|
9673
|
+
description: "`wrap` lets chips keep their natural widths. `justify` stretches each filled row flush to both edges, leaving the last row ragged; chips put the extra width around their labels, so tucked leads and remove controls stay tucked."
|
|
9674
|
+
},
|
|
9675
|
+
{
|
|
9676
|
+
name: "multiple",
|
|
9677
|
+
kind: "input",
|
|
9678
|
+
type: "boolean",
|
|
9679
|
+
required: false,
|
|
9680
|
+
default: "false",
|
|
9681
|
+
description: "Allow more than one chip at a time. Single select replaces instead."
|
|
9682
|
+
},
|
|
9683
|
+
{
|
|
9684
|
+
name: "value",
|
|
9685
|
+
kind: "model",
|
|
9686
|
+
type: "T[]",
|
|
9687
|
+
required: false,
|
|
9688
|
+
default: "[]",
|
|
9689
|
+
description: "The selected values \u2014 one array in both modes, as `uni-tag-input` keeps one array for its items. Single select simply never holds more than one, which spares callers a `T[] | T | null` union at every call site."
|
|
9690
|
+
},
|
|
9691
|
+
{
|
|
9692
|
+
name: "activated",
|
|
9693
|
+
kind: "output",
|
|
9694
|
+
type: "T | undefined",
|
|
9695
|
+
required: false,
|
|
9696
|
+
description: "The chip the user just activated, selected or deselected."
|
|
9697
|
+
},
|
|
9698
|
+
{
|
|
9699
|
+
name: "removed",
|
|
9700
|
+
kind: "output",
|
|
9701
|
+
type: "T | undefined",
|
|
9702
|
+
required: false,
|
|
9703
|
+
description: ""
|
|
9704
|
+
},
|
|
9705
|
+
{
|
|
9706
|
+
name: "chipTone",
|
|
9707
|
+
kind: "input",
|
|
9708
|
+
type: "TagTone | undefined",
|
|
9709
|
+
required: false,
|
|
9710
|
+
default: "undefined",
|
|
9711
|
+
description: ""
|
|
9712
|
+
},
|
|
9713
|
+
{
|
|
9714
|
+
name: "chipSize",
|
|
9715
|
+
kind: "input",
|
|
9716
|
+
type: "Size | undefined",
|
|
9717
|
+
required: false,
|
|
9718
|
+
default: "undefined",
|
|
9719
|
+
description: ""
|
|
9720
|
+
},
|
|
9721
|
+
{
|
|
9722
|
+
name: "chipVariant",
|
|
9723
|
+
kind: "input",
|
|
9724
|
+
type: "Variant | undefined",
|
|
9725
|
+
required: false,
|
|
9726
|
+
default: "undefined",
|
|
9727
|
+
description: ""
|
|
9728
|
+
},
|
|
9729
|
+
{
|
|
9730
|
+
name: "variant",
|
|
9731
|
+
kind: "input",
|
|
9732
|
+
type: "Variant",
|
|
9733
|
+
required: false,
|
|
9734
|
+
default: "'primary'",
|
|
9735
|
+
description: "Style archetype from the theme. Inherited from BaseComponent."
|
|
9736
|
+
},
|
|
9737
|
+
{
|
|
9738
|
+
name: "size",
|
|
9739
|
+
kind: "input",
|
|
9740
|
+
type: "Size",
|
|
9741
|
+
required: false,
|
|
9742
|
+
default: "'lg'",
|
|
9743
|
+
description: "Size token from the theme. Inherited from BaseComponent. Only has an effect where the component theme defines a `sizes` block."
|
|
9744
|
+
}
|
|
9745
|
+
]
|
|
9746
|
+
}
|
|
9747
|
+
},
|
|
9748
|
+
examples: [
|
|
9749
|
+
{
|
|
9750
|
+
title: "Wrap",
|
|
9751
|
+
framework: "angular",
|
|
9752
|
+
code: `<!-- Storybook story: Wrap -->
|
|
9753
|
+
<div style="max-width: 520px">
|
|
9754
|
+
<uni-tag-group
|
|
9755
|
+
[items]="items"
|
|
9756
|
+
[value]="value"
|
|
9757
|
+
[multiple]="multiple"
|
|
9758
|
+
layout="justify"
|
|
9759
|
+
/>
|
|
9760
|
+
</div>
|
|
9761
|
+
<!-- args:
|
|
9762
|
+
{ value: ['engineering'] }
|
|
9763
|
+
-->`
|
|
9764
|
+
},
|
|
9765
|
+
{
|
|
9766
|
+
title: "Justify",
|
|
9767
|
+
framework: "angular",
|
|
9768
|
+
code: `<!-- Storybook story: Justify -->
|
|
9769
|
+
<div style="max-width: 520px">
|
|
9770
|
+
<uni-tag-group
|
|
9771
|
+
[items]="items"
|
|
9772
|
+
[value]="value"
|
|
9773
|
+
[multiple]="multiple"
|
|
9774
|
+
layout="justify"
|
|
9775
|
+
/>
|
|
9776
|
+
</div>
|
|
9777
|
+
<!-- args:
|
|
9778
|
+
{ layout: 'justify', value: ['design', 'security'] }
|
|
9779
|
+
-->`
|
|
9780
|
+
},
|
|
9781
|
+
{
|
|
9782
|
+
title: "Single Select",
|
|
9783
|
+
framework: "angular",
|
|
9784
|
+
code: `<!-- Storybook story: Single Select -->
|
|
9785
|
+
<div style="max-width: 520px">
|
|
9786
|
+
<uni-tag-group
|
|
9787
|
+
[items]="items"
|
|
9788
|
+
[value]="value"
|
|
9789
|
+
[multiple]="multiple"
|
|
9790
|
+
layout="justify"
|
|
9791
|
+
/>
|
|
9792
|
+
</div>
|
|
9793
|
+
<!-- args:
|
|
9794
|
+
{ multiple: false, value: ['legal'] }
|
|
9795
|
+
-->`
|
|
9796
|
+
},
|
|
9797
|
+
{
|
|
9798
|
+
title: "Mixed Chips",
|
|
9799
|
+
framework: "angular",
|
|
9800
|
+
code: `<!-- Storybook story: Mixed Chips -->
|
|
9801
|
+
<div style="max-width: 520px">
|
|
9802
|
+
<uni-tag-group
|
|
9803
|
+
[items]="items"
|
|
9804
|
+
[value]="value"
|
|
9805
|
+
[multiple]="multiple"
|
|
9806
|
+
layout="justify"
|
|
9807
|
+
/>
|
|
9808
|
+
</div>
|
|
9809
|
+
<!-- args:
|
|
9810
|
+
{
|
|
9811
|
+
items: [
|
|
9812
|
+
{ label: 'Starred', value: 'starred', iconName: 'star' },
|
|
9813
|
+
{ label: 'Live', value: 'live', dot: true, variant: 'success' },
|
|
9814
|
+
{ label: 'Alice Chen', value: 'alice', avatarName: 'Alice Chen' },
|
|
9815
|
+
{ label: 'Blocked', value: 'blocked', variant: 'warn', tone: 'outline' },
|
|
9816
|
+
{ label: 'Archived', value: 'archived', disabled: true },
|
|
9817
|
+
{ label: 'Custom', value: 'custom', removable: true },
|
|
9818
|
+
],
|
|
9819
|
+
}
|
|
9820
|
+
-->`
|
|
9821
|
+
}
|
|
9822
|
+
],
|
|
9823
|
+
guidelines: {
|
|
9824
|
+
whenToUse: "A row of chips the user picks from: filters, facets, a set of labels. The group\nowns the two things an app was otherwise wiring on every chip \u2014 **which one is\nselected** and **which one holds the tab stop**.",
|
|
9825
|
+
dos: [
|
|
9826
|
+
"Give the group `multiple` when the filters combine, and leave it off when they",
|
|
9827
|
+
'Reach for `layout="justify"` when the row is long enough to wrap \u2014 a single',
|
|
9828
|
+
"Put per-chip differences on the item (`variant`, `tone`, `iconName`)."
|
|
9829
|
+
],
|
|
9830
|
+
donts: [
|
|
9831
|
+
"Don't bind `[selected]` on chips inside a group \u2014 that is the thing the group",
|
|
9832
|
+
"Don't use it for an open set the user types into; that is `uni-tag-input`.",
|
|
9833
|
+
"Don't reach for it as a generic chip row. With no selection to own it is just"
|
|
9834
|
+
],
|
|
9835
|
+
accessibility: [
|
|
9836
|
+
'`role="toolbar"` with `aria-orientation="horizontal"`: one tab stop for the',
|
|
9837
|
+
"Arrow keys move within the group. Both axes work, because the row wraps \u2014",
|
|
9838
|
+
"The tab stop follows the last chip the user picked, so tabbing back into the",
|
|
9839
|
+
"Each chip announces its own state through `aria-pressed`, since each one is an"
|
|
9840
|
+
]
|
|
9841
|
+
},
|
|
9842
|
+
relatedTokens: []
|
|
9843
|
+
},
|
|
9626
9844
|
{
|
|
9627
9845
|
id: "tag-input",
|
|
9628
9846
|
name: "TagInput",
|
|
@@ -9630,7 +9848,7 @@ initialFocus="input"
|
|
|
9630
9848
|
summary: "",
|
|
9631
9849
|
description: "",
|
|
9632
9850
|
category: "forms",
|
|
9633
|
-
version: "11.
|
|
9851
|
+
version: "11.1.0",
|
|
9634
9852
|
bindings: {
|
|
9635
9853
|
angular: {
|
|
9636
9854
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -9971,7 +10189,7 @@ placeholder="Name or address\u2026"
|
|
|
9971
10189
|
summary: "The typography primitive, applied as an attribute to any element so semantics stay yours.",
|
|
9972
10190
|
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.',
|
|
9973
10191
|
category: "primitives",
|
|
9974
|
-
version: "11.
|
|
10192
|
+
version: "11.1.0",
|
|
9975
10193
|
bindings: {
|
|
9976
10194
|
angular: {
|
|
9977
10195
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -10073,7 +10291,7 @@ placeholder="Name or address\u2026"
|
|
|
10073
10291
|
summary: "",
|
|
10074
10292
|
description: "",
|
|
10075
10293
|
category: "forms",
|
|
10076
|
-
version: "11.
|
|
10294
|
+
version: "11.1.0",
|
|
10077
10295
|
bindings: {
|
|
10078
10296
|
angular: {
|
|
10079
10297
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -10280,7 +10498,7 @@ placeholder="Name or address\u2026"
|
|
|
10280
10498
|
summary: "",
|
|
10281
10499
|
description: "",
|
|
10282
10500
|
category: "primitives",
|
|
10283
|
-
version: "11.
|
|
10501
|
+
version: "11.1.0",
|
|
10284
10502
|
bindings: {
|
|
10285
10503
|
angular: {
|
|
10286
10504
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -10310,7 +10528,7 @@ placeholder="Name or address\u2026"
|
|
|
10310
10528
|
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).",
|
|
10311
10529
|
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).",
|
|
10312
10530
|
category: "components",
|
|
10313
|
-
version: "11.
|
|
10531
|
+
version: "11.1.0",
|
|
10314
10532
|
bindings: {
|
|
10315
10533
|
angular: {
|
|
10316
10534
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -10368,7 +10586,7 @@ placeholder="Name or address\u2026"
|
|
|
10368
10586
|
summary: "Time field: a combobox over time options \u2014 the same listbox contract as uni-search-input and uni-tag-input.",
|
|
10369
10587
|
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.",
|
|
10370
10588
|
category: "forms",
|
|
10371
|
-
version: "11.
|
|
10589
|
+
version: "11.1.0",
|
|
10372
10590
|
bindings: {
|
|
10373
10591
|
angular: {
|
|
10374
10592
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -10583,7 +10801,7 @@ placeholder="Name or address\u2026"
|
|
|
10583
10801
|
summary: "",
|
|
10584
10802
|
description: "",
|
|
10585
10803
|
category: "forms",
|
|
10586
|
-
version: "11.
|
|
10804
|
+
version: "11.1.0",
|
|
10587
10805
|
bindings: {
|
|
10588
10806
|
angular: {
|
|
10589
10807
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -10813,7 +11031,7 @@ placeholder="Name or address\u2026"
|
|
|
10813
11031
|
summary: "",
|
|
10814
11032
|
description: "",
|
|
10815
11033
|
category: "feedback",
|
|
10816
|
-
version: "11.
|
|
11034
|
+
version: "11.1.0",
|
|
10817
11035
|
bindings: {
|
|
10818
11036
|
angular: {
|
|
10819
11037
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -10901,7 +11119,7 @@ placeholder="Name or address\u2026"
|
|
|
10901
11119
|
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).',
|
|
10902
11120
|
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.',
|
|
10903
11121
|
category: "components",
|
|
10904
|
-
version: "11.
|
|
11122
|
+
version: "11.1.0",
|
|
10905
11123
|
bindings: {
|
|
10906
11124
|
angular: {
|
|
10907
11125
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -11028,7 +11246,7 @@ placeholder="Name or address\u2026"
|
|
|
11028
11246
|
summary: "",
|
|
11029
11247
|
description: "",
|
|
11030
11248
|
category: "layout",
|
|
11031
|
-
version: "11.
|
|
11249
|
+
version: "11.1.0",
|
|
11032
11250
|
bindings: {
|
|
11033
11251
|
angular: {
|
|
11034
11252
|
importPath: "@uni-design-system/uni-angular",
|
|
@@ -12590,13 +12808,13 @@ placeholder="Name or address\u2026"
|
|
|
12590
12808
|
},
|
|
12591
12809
|
{
|
|
12592
12810
|
id: "typography.tag",
|
|
12593
|
-
value: '{"fontFamily":"Red Hat Display","fontSize":15,"lineHeight":20,"fontWeight":
|
|
12811
|
+
value: '{"fontFamily":"Red Hat Display","fontSize":15,"lineHeight":20,"fontWeight":500}',
|
|
12594
12812
|
type: "typography",
|
|
12595
12813
|
kind: "style",
|
|
12596
12814
|
target: "emotion-css",
|
|
12597
12815
|
themeValues: {
|
|
12598
|
-
LightTheme: '{"fontFamily":"Red Hat Display","fontSize":15,"lineHeight":20,"fontWeight":
|
|
12599
|
-
DarkTheme: '{"fontFamily":"Red Hat Display","fontSize":15,"lineHeight":20,"fontWeight":
|
|
12816
|
+
LightTheme: '{"fontFamily":"Red Hat Display","fontSize":15,"lineHeight":20,"fontWeight":500}',
|
|
12817
|
+
DarkTheme: '{"fontFamily":"Red Hat Display","fontSize":15,"lineHeight":20,"fontWeight":500}'
|
|
12600
12818
|
}
|
|
12601
12819
|
},
|
|
12602
12820
|
{
|
|
@@ -14938,6 +15156,42 @@ placeholder="Name or address\u2026"
|
|
|
14938
15156
|
DarkTheme: "control"
|
|
14939
15157
|
}
|
|
14940
15158
|
},
|
|
15159
|
+
{
|
|
15160
|
+
id: "tag.behavior.endInset",
|
|
15161
|
+
value: "auto",
|
|
15162
|
+
type: "string",
|
|
15163
|
+
kind: "behavioral",
|
|
15164
|
+
target: "component-prop",
|
|
15165
|
+
appliesTo: "tag",
|
|
15166
|
+
themeValues: {
|
|
15167
|
+
LightTheme: "auto",
|
|
15168
|
+
DarkTheme: "auto"
|
|
15169
|
+
}
|
|
15170
|
+
},
|
|
15171
|
+
{
|
|
15172
|
+
id: "tagGroup.behavior.gap",
|
|
15173
|
+
value: "xs",
|
|
15174
|
+
type: "string",
|
|
15175
|
+
kind: "behavioral",
|
|
15176
|
+
target: "component-prop",
|
|
15177
|
+
appliesTo: "tagGroup",
|
|
15178
|
+
themeValues: {
|
|
15179
|
+
LightTheme: "xs",
|
|
15180
|
+
DarkTheme: "xs"
|
|
15181
|
+
}
|
|
15182
|
+
},
|
|
15183
|
+
{
|
|
15184
|
+
id: "tagGroup.behavior.rowGap",
|
|
15185
|
+
value: "xs",
|
|
15186
|
+
type: "string",
|
|
15187
|
+
kind: "behavioral",
|
|
15188
|
+
target: "component-prop",
|
|
15189
|
+
appliesTo: "tagGroup",
|
|
15190
|
+
themeValues: {
|
|
15191
|
+
LightTheme: "xs",
|
|
15192
|
+
DarkTheme: "xs"
|
|
15193
|
+
}
|
|
15194
|
+
},
|
|
14941
15195
|
{
|
|
14942
15196
|
id: "tagInput.behavior.chipGap",
|
|
14943
15197
|
value: "xs",
|
|
@@ -16859,7 +17113,7 @@ placeholder="Name or address\u2026"
|
|
|
16859
17113
|
"typography.note": '{"fontFamily":"Roboto","fontSize":14,"lineHeight":22,"fontStyle":"italic"}',
|
|
16860
17114
|
"typography.badge": '{"fontFamily":"Red Hat Display","fontSize":16,"lineHeight":24}',
|
|
16861
17115
|
"typography.stat": '{"fontFamily":"Red Hat Display","fontSize":32,"lineHeight":38,"fontWeight":600,"letterSpacing":-0.32}',
|
|
16862
|
-
"typography.tag": '{"fontFamily":"Red Hat Display","fontSize":15,"lineHeight":20,"fontWeight":
|
|
17116
|
+
"typography.tag": '{"fontFamily":"Red Hat Display","fontSize":15,"lineHeight":20,"fontWeight":500}',
|
|
16863
17117
|
"typography.input": '{"fontFamily":"Red Hat Display","fontSize":14,"lineHeight":24}'
|
|
16864
17118
|
},
|
|
16865
17119
|
componentOptions: {
|
|
@@ -17117,7 +17371,12 @@ placeholder="Name or address\u2026"
|
|
|
17117
17371
|
gap: "xs",
|
|
17118
17372
|
removeIcon: "close",
|
|
17119
17373
|
selectedIcon: "check",
|
|
17120
|
-
motion: "control"
|
|
17374
|
+
motion: "control",
|
|
17375
|
+
endInset: "auto"
|
|
17376
|
+
},
|
|
17377
|
+
tagGroup: {
|
|
17378
|
+
gap: "xs",
|
|
17379
|
+
rowGap: "xs"
|
|
17121
17380
|
},
|
|
17122
17381
|
tagInput: {
|
|
17123
17382
|
chipGap: "xs",
|
|
@@ -17459,7 +17718,7 @@ placeholder="Name or address\u2026"
|
|
|
17459
17718
|
"typography.note": '{"fontFamily":"Roboto","fontSize":14,"lineHeight":22,"fontStyle":"italic"}',
|
|
17460
17719
|
"typography.badge": '{"fontFamily":"Red Hat Display","fontSize":16,"lineHeight":24}',
|
|
17461
17720
|
"typography.stat": '{"fontFamily":"Red Hat Display","fontSize":32,"lineHeight":38,"fontWeight":600,"letterSpacing":-0.32}',
|
|
17462
|
-
"typography.tag": '{"fontFamily":"Red Hat Display","fontSize":15,"lineHeight":20,"fontWeight":
|
|
17721
|
+
"typography.tag": '{"fontFamily":"Red Hat Display","fontSize":15,"lineHeight":20,"fontWeight":500}',
|
|
17463
17722
|
"typography.input": '{"fontFamily":"Red Hat Display","fontSize":14,"lineHeight":24}'
|
|
17464
17723
|
},
|
|
17465
17724
|
componentOptions: {
|
|
@@ -17717,7 +17976,12 @@ placeholder="Name or address\u2026"
|
|
|
17717
17976
|
gap: "xs",
|
|
17718
17977
|
removeIcon: "close",
|
|
17719
17978
|
selectedIcon: "check",
|
|
17720
|
-
motion: "control"
|
|
17979
|
+
motion: "control",
|
|
17980
|
+
endInset: "auto"
|
|
17981
|
+
},
|
|
17982
|
+
tagGroup: {
|
|
17983
|
+
gap: "xs",
|
|
17984
|
+
rowGap: "xs"
|
|
17721
17985
|
},
|
|
17722
17986
|
tagInput: {
|
|
17723
17987
|
chipGap: "xs",
|
|
@@ -17921,6 +18185,18 @@ placeholder="Name or address\u2026"
|
|
|
17921
18185
|
{
|
|
17922
18186
|
package: "@uni-design-system/uni-angular",
|
|
17923
18187
|
releases: [
|
|
18188
|
+
{
|
|
18189
|
+
version: "11.1.0",
|
|
18190
|
+
entries: [
|
|
18191
|
+
{
|
|
18192
|
+
bump: "minor",
|
|
18193
|
+
title: "Selection, hover and density become theme decisions on `uni-tag`, and add `uni-tag-group`.",
|
|
18194
|
+
body: "`uni-tag` had the right axes but made the app do the work. `selected` painted nothing \u2014 it set `aria-pressed` and swapped the lead glyph \u2014 so every toggle chip in app markup carried a `[tone]=\"on() ? 'solid' : 'soft'\"` of its own. Interactive chips had no hover state at all. The selected check was added rather than reserved, so picking a chip reflowed the whole row.\n\n**Selection paints itself.** A selected chip adds a `tag-selected` class and an interactive one adds `tag-interactive`, both as much public theme contract as `&.tone-*` already was. The base theme's `tag` variants use them: selection promotes a chip to its role's solid pair at every tone (`solid` deepens instead of refilling), and `&.tag-interactive:hover` is a `brightness(0.95)` wash that darkens fill, ink and edge together. A theme restyling either writes the rules per variant, beside the colours they belong to.\n\n**A toggle chip holds the check's place.** Bind `selected` and the chip reserves the glyph's footprint while unselected, so picking one never resizes it. A chip that already has a lead needs no slot \u2014 the check replaces the avatar or icon at identical width.\n\n**`uni-tag-group`** is a row of chips the user picks from. It renders its own chips from `items` and owns the two things an app was otherwise wiring per chip: which one is selected (`value`, plus `multiple`) and which one holds the tab stop. Keyboard model is the toolbar pattern \u2014 one tab stop for the whole row, arrow keys within it, on both axes because the row wraps. `layout=\"justify\"` stretches each filled row flush to both edges and leaves the last row at its natural widths, the way justified text leaves its last line alone. It is themed as **`tagGroup`** (`gap`, `rowGap`, `chipSize`, `chipTone`, `chipVariant`), layout only \u2014 every colour decision stays on the chips, so a group restyles with them.\n\n**Visual changes to every existing chip**, including the chips inside `uni-tag-input`:\n- A lead element and the remove control now **tuck into the rounded end** instead of starting where the radius ends \u2014 each sits concentric with the curve it is in, so a small status dot sits further in than a full lead box. A lead is balanced against, so the **label sits centred**; the tuck costs less than the old gutter did, so that balance is largely paid for rather than added. A remove control is not balanced against on its own, since it reads as an affordance rather than as content \u2014 a chip with nothing but a remove button keeps its gutter and simply tucks the glyph. A chip whose ends are too square to flow into (`borderRadius: 'xs'`) keeps the size token's gutter at both ends.\n- The `tag` typeface drops from **weight 600 to 500**. Geometry is unchanged; what made these chips read louder than the ones they replaced was the weight, not the size.\n- `border-color` and `filter` join the transition list, so an outline\u2194solid change fades its edge instead of snapping while the fill animates, and the hover wash fades in.\n\nNew `tag` theme option **`endInset`** (`number | 'auto'`) sets how far that tuck goes; `auto` derives it from the chip so the lead sits concentric with the cap. The `tag` size tokens now state `paddingInline` rather than a `padding` shorthand, since the chip reads that number back to balance the label \u2014 a theme still stating the shorthand is parsed as before.\n\n`UniTagComponent` is now generic in its value (`UniTagComponent<T extends UniTagValue = UniTagValue>`), so `value`, `removed` and `activated` carry an app's own type and `$event` flows without a closure. The default type parameter leaves every existing use compiling unchanged.",
|
|
18195
|
+
commit: "d00b2fe"
|
|
18196
|
+
}
|
|
18197
|
+
],
|
|
18198
|
+
dependencyBumps: []
|
|
18199
|
+
},
|
|
17924
18200
|
{
|
|
17925
18201
|
version: "11.0.0",
|
|
17926
18202
|
entries: [
|
|
@@ -18753,6 +19029,18 @@ placeholder="Name or address\u2026"
|
|
|
18753
19029
|
{
|
|
18754
19030
|
package: "@uni-design-system/uni-core",
|
|
18755
19031
|
releases: [
|
|
19032
|
+
{
|
|
19033
|
+
version: "11.1.0",
|
|
19034
|
+
entries: [
|
|
19035
|
+
{
|
|
19036
|
+
bump: "minor",
|
|
19037
|
+
title: "Selection, hover and density become theme decisions on `uni-tag`, and add `uni-tag-group`.",
|
|
19038
|
+
body: "`uni-tag` had the right axes but made the app do the work. `selected` painted nothing \u2014 it set `aria-pressed` and swapped the lead glyph \u2014 so every toggle chip in app markup carried a `[tone]=\"on() ? 'solid' : 'soft'\"` of its own. Interactive chips had no hover state at all. The selected check was added rather than reserved, so picking a chip reflowed the whole row.\n\n**Selection paints itself.** A selected chip adds a `tag-selected` class and an interactive one adds `tag-interactive`, both as much public theme contract as `&.tone-*` already was. The base theme's `tag` variants use them: selection promotes a chip to its role's solid pair at every tone (`solid` deepens instead of refilling), and `&.tag-interactive:hover` is a `brightness(0.95)` wash that darkens fill, ink and edge together. A theme restyling either writes the rules per variant, beside the colours they belong to.\n\n**A toggle chip holds the check's place.** Bind `selected` and the chip reserves the glyph's footprint while unselected, so picking one never resizes it. A chip that already has a lead needs no slot \u2014 the check replaces the avatar or icon at identical width.\n\n**`uni-tag-group`** is a row of chips the user picks from. It renders its own chips from `items` and owns the two things an app was otherwise wiring per chip: which one is selected (`value`, plus `multiple`) and which one holds the tab stop. Keyboard model is the toolbar pattern \u2014 one tab stop for the whole row, arrow keys within it, on both axes because the row wraps. `layout=\"justify\"` stretches each filled row flush to both edges and leaves the last row at its natural widths, the way justified text leaves its last line alone. It is themed as **`tagGroup`** (`gap`, `rowGap`, `chipSize`, `chipTone`, `chipVariant`), layout only \u2014 every colour decision stays on the chips, so a group restyles with them.\n\n**Visual changes to every existing chip**, including the chips inside `uni-tag-input`:\n- A lead element and the remove control now **tuck into the rounded end** instead of starting where the radius ends \u2014 each sits concentric with the curve it is in, so a small status dot sits further in than a full lead box. A lead is balanced against, so the **label sits centred**; the tuck costs less than the old gutter did, so that balance is largely paid for rather than added. A remove control is not balanced against on its own, since it reads as an affordance rather than as content \u2014 a chip with nothing but a remove button keeps its gutter and simply tucks the glyph. A chip whose ends are too square to flow into (`borderRadius: 'xs'`) keeps the size token's gutter at both ends.\n- The `tag` typeface drops from **weight 600 to 500**. Geometry is unchanged; what made these chips read louder than the ones they replaced was the weight, not the size.\n- `border-color` and `filter` join the transition list, so an outline\u2194solid change fades its edge instead of snapping while the fill animates, and the hover wash fades in.\n\nNew `tag` theme option **`endInset`** (`number | 'auto'`) sets how far that tuck goes; `auto` derives it from the chip so the lead sits concentric with the cap. The `tag` size tokens now state `paddingInline` rather than a `padding` shorthand, since the chip reads that number back to balance the label \u2014 a theme still stating the shorthand is parsed as before.\n\n`UniTagComponent` is now generic in its value (`UniTagComponent<T extends UniTagValue = UniTagValue>`), so `value`, `removed` and `activated` carry an app's own type and `$event` flows without a closure. The default type parameter leaves every existing use compiling unchanged.",
|
|
19039
|
+
commit: "d00b2fe"
|
|
19040
|
+
}
|
|
19041
|
+
],
|
|
19042
|
+
dependencyBumps: []
|
|
19043
|
+
},
|
|
18756
19044
|
{
|
|
18757
19045
|
version: "11.0.0",
|
|
18758
19046
|
entries: [
|
|
@@ -19361,6 +19649,11 @@ placeholder="Name or address\u2026"
|
|
|
19361
19649
|
{
|
|
19362
19650
|
package: "@uni-design-system/uni-react",
|
|
19363
19651
|
releases: [
|
|
19652
|
+
{
|
|
19653
|
+
version: "11.1.0",
|
|
19654
|
+
entries: [],
|
|
19655
|
+
dependencyBumps: []
|
|
19656
|
+
},
|
|
19364
19657
|
{
|
|
19365
19658
|
version: "11.0.0",
|
|
19366
19659
|
entries: [
|
|
@@ -19632,6 +19925,11 @@ placeholder="Name or address\u2026"
|
|
|
19632
19925
|
{
|
|
19633
19926
|
package: "@uni-design-system/uni-mcp",
|
|
19634
19927
|
releases: [
|
|
19928
|
+
{
|
|
19929
|
+
version: "11.1.0",
|
|
19930
|
+
entries: [],
|
|
19931
|
+
dependencyBumps: []
|
|
19932
|
+
},
|
|
19635
19933
|
{
|
|
19636
19934
|
version: "11.0.0",
|
|
19637
19935
|
entries: [
|
|
@@ -20870,7 +21168,7 @@ var BaseTypography = {
|
|
|
20870
21168
|
fontFamily: "Red Hat Display",
|
|
20871
21169
|
fontSize: 15,
|
|
20872
21170
|
lineHeight: 20,
|
|
20873
|
-
fontWeight:
|
|
21171
|
+
fontWeight: 500
|
|
20874
21172
|
},
|
|
20875
21173
|
input: {
|
|
20876
21174
|
fontFamily: "Red Hat Display",
|
|
@@ -20965,14 +21263,26 @@ var SELECTION_ACCENTS = {
|
|
|
20965
21263
|
var tagVariant = (c, role) => ({ [role]: {
|
|
20966
21264
|
backgroundColor: c[`${role}-container`],
|
|
20967
21265
|
color: c[`on-${role}-container`],
|
|
20968
|
-
"&.
|
|
21266
|
+
"&.tag-selected": {
|
|
20969
21267
|
backgroundColor: c[role],
|
|
20970
21268
|
color: c[`on-${role}`]
|
|
20971
21269
|
},
|
|
21270
|
+
"&.tag-interactive:hover": { filter: "brightness(0.95)" },
|
|
21271
|
+
"&.tone-solid": {
|
|
21272
|
+
backgroundColor: c[role],
|
|
21273
|
+
color: c[`on-${role}`],
|
|
21274
|
+
"&.tag-selected": { filter: "brightness(0.9)" },
|
|
21275
|
+
"&.tag-selected.tag-interactive:hover": { filter: "brightness(0.85)" }
|
|
21276
|
+
},
|
|
20972
21277
|
"&.tone-outline": {
|
|
20973
21278
|
backgroundColor: "transparent",
|
|
20974
21279
|
color: c[role],
|
|
20975
|
-
borderColor: c[`on-${role}-container-border`] ?? c[role]
|
|
21280
|
+
borderColor: c[`on-${role}-container-border`] ?? c[role],
|
|
21281
|
+
"&.tag-selected": {
|
|
21282
|
+
backgroundColor: c[role],
|
|
21283
|
+
color: c[`on-${role}`],
|
|
21284
|
+
borderColor: c[role]
|
|
21285
|
+
}
|
|
20976
21286
|
}
|
|
20977
21287
|
} });
|
|
20978
21288
|
var buildComponents = (c) => ({
|
|
@@ -21313,7 +21623,8 @@ var buildComponents = (c) => ({
|
|
|
21313
21623
|
gap: "xs",
|
|
21314
21624
|
removeIcon: "close",
|
|
21315
21625
|
selectedIcon: "check",
|
|
21316
|
-
motion: "control"
|
|
21626
|
+
motion: "control",
|
|
21627
|
+
endInset: "auto"
|
|
21317
21628
|
},
|
|
21318
21629
|
fixed: {
|
|
21319
21630
|
display: "inline-flex",
|
|
@@ -21330,13 +21641,25 @@ var buildComponents = (c) => ({
|
|
|
21330
21641
|
ghost: {
|
|
21331
21642
|
backgroundColor: "transparent",
|
|
21332
21643
|
color: c["on-background"],
|
|
21333
|
-
"&.
|
|
21644
|
+
"&.tag-selected": {
|
|
21334
21645
|
backgroundColor: c["surface-variant"],
|
|
21335
21646
|
color: c["on-surface-variant"]
|
|
21336
21647
|
},
|
|
21648
|
+
"&.tag-interactive:hover": { filter: "brightness(0.95)" },
|
|
21649
|
+
"&.tone-solid": {
|
|
21650
|
+
backgroundColor: c["surface-variant"],
|
|
21651
|
+
color: c["on-surface-variant"],
|
|
21652
|
+
"&.tag-selected": { filter: "brightness(0.9)" },
|
|
21653
|
+
"&.tag-selected.tag-interactive:hover": { filter: "brightness(0.85)" }
|
|
21654
|
+
},
|
|
21337
21655
|
"&.tone-outline": {
|
|
21338
21656
|
backgroundColor: "transparent",
|
|
21339
|
-
borderColor: c.outline
|
|
21657
|
+
borderColor: c.outline,
|
|
21658
|
+
"&.tag-selected": {
|
|
21659
|
+
backgroundColor: c["surface-variant"],
|
|
21660
|
+
color: c["on-surface-variant"],
|
|
21661
|
+
borderColor: c.outline
|
|
21662
|
+
}
|
|
21340
21663
|
}
|
|
21341
21664
|
},
|
|
21342
21665
|
disabled: {
|
|
@@ -21356,20 +21679,31 @@ var buildComponents = (c) => ({
|
|
|
21356
21679
|
sm: {
|
|
21357
21680
|
height: 20,
|
|
21358
21681
|
fontSize: 12,
|
|
21359
|
-
|
|
21682
|
+
paddingInline: 8
|
|
21360
21683
|
},
|
|
21361
21684
|
md: {
|
|
21362
21685
|
height: 24,
|
|
21363
21686
|
fontSize: 13,
|
|
21364
|
-
|
|
21687
|
+
paddingInline: 10
|
|
21365
21688
|
},
|
|
21366
21689
|
lg: {
|
|
21367
21690
|
height: 32,
|
|
21368
21691
|
fontSize: 15,
|
|
21369
|
-
|
|
21692
|
+
paddingInline: 12
|
|
21370
21693
|
}
|
|
21371
21694
|
}
|
|
21372
21695
|
},
|
|
21696
|
+
tagGroup: {
|
|
21697
|
+
options: {
|
|
21698
|
+
gap: "xs",
|
|
21699
|
+
rowGap: "xs"
|
|
21700
|
+
},
|
|
21701
|
+
fixed: {
|
|
21702
|
+
display: "flex",
|
|
21703
|
+
flexWrap: "wrap",
|
|
21704
|
+
alignItems: "center"
|
|
21705
|
+
}
|
|
21706
|
+
},
|
|
21373
21707
|
tagInput: { options: {
|
|
21374
21708
|
chipGap: "xs",
|
|
21375
21709
|
chipSize: "md",
|
|
@@ -23212,4 +23546,4 @@ export {
|
|
|
23212
23546
|
buildStoredTheme,
|
|
23213
23547
|
createUniServer
|
|
23214
23548
|
};
|
|
23215
|
-
//# sourceMappingURL=chunk-
|
|
23549
|
+
//# sourceMappingURL=chunk-G5LYVS3L.js.map
|