@adia-ai/web-components 0.8.31 → 0.8.32
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 +39 -0
- package/components/accordion/accordion.d.ts +2 -2
- package/components/action-list/action-list.class.js +6 -2
- package/components/action-list/action-list.d.ts +1 -1
- package/components/agent-artifact/agent-artifact.d.ts +1 -1
- package/components/agent-feedback-bar/agent-feedback-bar.d.ts +2 -2
- package/components/agent-questions/agent-questions.d.ts +1 -1
- package/components/agent-reasoning/agent-reasoning.d.ts +3 -3
- package/components/agent-suggestions/agent-suggestions.d.ts +1 -1
- package/components/agent-trace/agent-trace.d.ts +1 -1
- package/components/alert/alert.d.ts +2 -2
- package/components/anchor-bar/anchor-bar.d.ts +2 -2
- package/components/avatar/avatar.class.js +0 -1
- package/components/avatar/avatar.css +16 -2
- package/components/badge/badge.css +30 -2
- package/components/breadcrumb/breadcrumb.css +15 -3
- package/components/button/button.d.ts +1 -1
- package/components/calendar-grid/calendar-grid.d.ts +2 -2
- package/components/card/card.css +21 -0
- package/components/card/card.yaml +9 -0
- package/components/chart/chart.d.ts +4 -4
- package/components/chart-legend/chart-legend.d.ts +1 -1
- package/components/chat-thread/chat-input.css +1 -1
- package/components/chat-thread/chat-thread.d.ts +2 -2
- package/components/check/check.css +3 -3
- package/components/command/command.d.ts +2 -2
- package/components/context-menu/context-menu.d.ts +3 -3
- package/components/datetime-picker/datetime-picker.d.ts +5 -5
- package/components/demo-toggle/demo-toggle.d.ts +1 -1
- package/components/drawer/drawer.d.ts +2 -2
- package/components/heatmap/heatmap.d.ts +5 -5
- package/components/index.js +1 -0
- package/components/inline-edit/inline-edit.d.ts +4 -4
- package/components/input/input.a2ui.json +4 -1
- package/components/input/input.css +18 -0
- package/components/input/input.yaml +11 -1
- package/components/integration-card/integration-card.d.ts +4 -4
- package/components/link/link.d.ts +1 -1
- package/components/list/list.class.js +22 -7
- package/components/list/list.d.ts +1 -1
- package/components/list-window/list-window.d.ts +5 -5
- package/components/menu/menu.css +2 -2
- package/components/menu/menu.d.ts +1 -1
- package/components/modal/modal.d.ts +1 -1
- package/components/nav/nav.css +8 -0
- package/components/nav/nav.d.ts +1 -1
- package/components/nav-group/nav-group.css +58 -9
- package/components/nav-group/nav-group.d.ts +1 -1
- package/components/nav-item/nav-item.css +7 -4
- package/components/nav-item/nav-item.d.ts +1 -1
- package/components/noodles/noodles.d.ts +3 -3
- package/components/option-card/option-card.css +1 -1
- package/components/pagination/pagination.d.ts +1 -1
- package/components/pane/pane.d.ts +1 -1
- package/components/password-strength/password-strength.d.ts +1 -1
- package/components/radio/radio.a2ui.json +4 -3
- package/components/radio/radio.css +2 -2
- package/components/radio/radio.yaml +7 -14
- package/components/radio-group/radio-group.a2ui.json +118 -0
- package/components/radio-group/radio-group.class.js +75 -0
- package/components/radio-group/radio-group.css +31 -0
- package/components/radio-group/radio-group.d.ts +20 -0
- package/components/radio-group/radio-group.examples.md +37 -0
- package/components/radio-group/radio-group.js +17 -0
- package/components/radio-group/radio-group.yaml +114 -0
- package/components/stat/stat.css +12 -8
- package/components/stat/stat.js +66 -1
- package/components/stat/stat.yaml +3 -0
- package/components/stepper/stepper-item.a2ui.json +5 -0
- package/components/stepper/stepper-item.yaml +11 -0
- package/components/stepper/stepper.a2ui.json +38 -3
- package/components/stepper/stepper.class.js +199 -2
- package/components/stepper/stepper.css +30 -0
- package/components/stepper/stepper.d.ts +28 -1
- package/components/stepper/stepper.yaml +76 -2
- package/components/stream/stream.d.ts +3 -3
- package/components/swatch/swatch.d.ts +1 -1
- package/components/swiper/swiper.d.ts +3 -3
- package/components/table/table.a2ui.json +2 -2
- package/components/table/table.d.ts +7 -7
- package/components/table/table.yaml +9 -1
- package/components/table-toolbar/table-toolbar.d.ts +4 -4
- package/components/tabs/tabs.d.ts +1 -1
- package/components/tag/tag.a2ui.json +1 -1
- package/components/tag/tag.css +78 -13
- package/components/tag/tag.d.ts +12 -8
- package/components/tag/tag.examples.md +4 -4
- package/components/tag/tag.yaml +18 -7
- package/components/tags-input/tags-input.d.ts +4 -4
- package/components/timeline/timeline.d.ts +1 -1
- package/components/toc/toc.d.ts +1 -1
- package/components/toggle-group/toggle-group.d.ts +1 -1
- package/components/toggle-scheme/toggle-scheme.d.ts +1 -1
- package/components/tour/tour.d.ts +4 -4
- package/components/tree/tree.d.ts +1 -1
- package/core/icons-phosphor.js +129 -71
- package/core/provider.js +84 -23
- package/dist/host.min.css +1 -1
- package/dist/host.sheet.js +1 -1
- package/dist/theme-provider.min.js +1 -1
- package/dist/web-components.min.css +1 -1
- package/dist/web-components.min.js +89 -87
- package/dist/web-components.sheet.js +1 -1
- package/package.json +1 -1
- package/styles/api/sizing-fallback.css +32 -0
- package/styles/api/sizing.css +7 -3
- package/styles/components.css +1 -0
- package/styles/tokens.css +1 -0
|
@@ -27,12 +27,12 @@ export class UIStream extends UIElement {
|
|
|
27
27
|
/** Read-only reflected state, true while stream is active */
|
|
28
28
|
streaming: boolean;
|
|
29
29
|
|
|
30
|
+
addEventListener(type: 'stream-end', listener: (ev: StreamEndEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
31
|
+
addEventListener(type: 'stream-error', listener: (ev: StreamErrorEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
32
|
+
addEventListener(type: 'stream-start', listener: (ev: StreamStartEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
30
33
|
addEventListener<K extends keyof HTMLElementEventMap>(
|
|
31
34
|
type: K,
|
|
32
35
|
listener: (this: UIStream, ev: HTMLElementEventMap[K]) => unknown,
|
|
33
36
|
options?: boolean | AddEventListenerOptions,
|
|
34
37
|
): void;
|
|
35
|
-
addEventListener(type: 'stream-end', listener: (ev: StreamEndEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
36
|
-
addEventListener(type: 'stream-error', listener: (ev: StreamErrorEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
37
|
-
addEventListener(type: 'stream-start', listener: (ev: StreamStartEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
38
38
|
}
|
|
@@ -73,10 +73,10 @@ pattern; blocked 3 cycles on this design call). */
|
|
|
73
73
|
/** Size preset — sm / md / lg. Drives the swatch's intrinsic dimensions; lg is reserved for the token-scale demo (40 px tall). */
|
|
74
74
|
size: 'sm' | 'md' | 'lg';
|
|
75
75
|
|
|
76
|
+
addEventListener(type: 'select', listener: (ev: SwatchSelectEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
76
77
|
addEventListener<K extends keyof HTMLElementEventMap>(
|
|
77
78
|
type: K,
|
|
78
79
|
listener: (this: UISwatch, ev: HTMLElementEventMap[K]) => unknown,
|
|
79
80
|
options?: boolean | AddEventListenerOptions,
|
|
80
81
|
): void;
|
|
81
|
-
addEventListener(type: 'select', listener: (ev: SwatchSelectEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
82
82
|
}
|
|
@@ -52,12 +52,12 @@ export class UISwiper extends UIElement {
|
|
|
52
52
|
/** Scroll-snap alignment — start, center, end, or none. */
|
|
53
53
|
snap: 'start' | 'center' | 'end' | 'none';
|
|
54
54
|
|
|
55
|
+
addEventListener(type: 'autoplay-pause', listener: (ev: SwiperAutoplayPauseEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
56
|
+
addEventListener(type: 'autoplay-resume', listener: (ev: SwiperAutoplayResumeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
57
|
+
addEventListener(type: 'change', listener: (ev: SwiperChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
55
58
|
addEventListener<K extends keyof HTMLElementEventMap>(
|
|
56
59
|
type: K,
|
|
57
60
|
listener: (this: UISwiper, ev: HTMLElementEventMap[K]) => unknown,
|
|
58
61
|
options?: boolean | AddEventListenerOptions,
|
|
59
62
|
): void;
|
|
60
|
-
addEventListener(type: 'autoplay-pause', listener: (ev: SwiperAutoplayPauseEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
61
|
-
addEventListener(type: 'autoplay-resume', listener: (ev: SwiperAutoplayResumeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
62
|
-
addEventListener(type: 'change', listener: (ev: SwiperChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
63
63
|
}
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"default": false
|
|
41
41
|
},
|
|
42
42
|
"frameless": {
|
|
43
|
-
"description": "Drop the table's outer 1px perimeter and nothing else (gh#511) — row dividers are untouched (the perimeter is split onto its own --table-perimeter token, defaulting to --table-border). For card-composed tables: the card owns the frame, so the table's square perimeter otherwise renders a doubled edge (flush bleed) or a stray inner box (with content above). Standalone tables keep their chrome by default. Theming path without the attribute: set --table-perimeter to transparent per instance.",
|
|
43
|
+
"description": "Drop the table's outer 1px perimeter and nothing else (gh#511) — row dividers are untouched (the perimeter is split onto its own --table-perimeter token, defaulting to --table-border). For card-composed tables: the card owns the frame, so the table's square perimeter otherwise renders a doubled edge (flush bleed) or a stray inner box (with content above). Standalone tables keep their chrome by default. Theming path without the attribute: set --table-perimeter to transparent per instance. Note: `<card-ui><section bleed>` already drops a direct-child table-ui's chrome automatically (card.css, gh#796) — `frameless`/`raw` on the instance still applies and is honored, but is no longer required just to avoid the doubled-edge look in that composition.",
|
|
44
44
|
"type": "boolean",
|
|
45
45
|
"default": false
|
|
46
46
|
},
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"default": 0
|
|
56
56
|
},
|
|
57
57
|
"raw": {
|
|
58
|
-
"description": "Visual-only passthrough — applies `<table-ui>`'s chrome reset (background / border / border-radius all transparent) AND short-circuits the data lifecycle entirely. The consumer owns the body shape: no header injection, no row reconciliation from `.data`, no empty-state / loading overlays, no aggregation or pagination footers. Use raw when embedding `<table-ui>` inside surfaces that supply their own chrome (e.g. `<card-ui><section bleed>`), or when wrapping a consumer-authored native `<table>` for design-token styling without the framework's data semantics. Pre-v0.6.33 (FB-53 §2) `raw` was visual-only and the data lifecycle still ran — wrapping a `.data`-unset native table produced a phantom \"No data\" overlay. v0.6.33+ matches the documented contract.",
|
|
58
|
+
"description": "Visual-only passthrough — applies `<table-ui>`'s chrome reset (background / border / border-radius all transparent) AND short-circuits the data lifecycle entirely. The consumer owns the body shape: no header injection, no row reconciliation from `.data`, no empty-state / loading overlays, no aggregation or pagination footers. Use raw when embedding `<table-ui>` inside surfaces that supply their own chrome (e.g. `<card-ui><section bleed>`), or when wrapping a consumer-authored native `<table>` for design-token styling without the framework's data semantics. Note: a `<table-ui>` placed directly inside `<card-ui><section bleed>` drops the table's visual chrome automatically (card.css, gh#796) even without `raw` — `raw` is still required to also short-circuit the data lifecycle. Pre-v0.6.33 (FB-53 §2) `raw` was visual-only and the data lifecycle still ran — wrapping a `.data`-unset native table produced a phantom \"No data\" overlay. v0.6.33+ matches the documented contract.",
|
|
59
59
|
"type": "boolean",
|
|
60
60
|
"default": false
|
|
61
61
|
},
|
|
@@ -94,13 +94,13 @@ export class UITable extends UIElement {
|
|
|
94
94
|
density: 'compact' | 'standard' | 'comfortable';
|
|
95
95
|
/** Enable row expansion */
|
|
96
96
|
expandable: boolean;
|
|
97
|
-
/** Drop the table's outer 1px perimeter and nothing else (gh#511) — row dividers are untouched (the perimeter is split onto its own --table-perimeter token, defaulting to --table-border). For card-composed tables: the card owns the frame, so the table's square perimeter otherwise renders a doubled edge (flush bleed) or a stray inner box (with content above). Standalone tables keep their chrome by default. Theming path without the attribute: set --table-perimeter to transparent per instance. */
|
|
97
|
+
/** Drop the table's outer 1px perimeter and nothing else (gh#511) — row dividers are untouched (the perimeter is split onto its own --table-perimeter token, defaulting to --table-border). For card-composed tables: the card owns the frame, so the table's square perimeter otherwise renders a doubled edge (flush bleed) or a stray inner box (with content above). Standalone tables keep their chrome by default. Theming path without the attribute: set --table-perimeter to transparent per instance. Note: `<card-ui><section bleed>` already drops a direct-child table-ui's chrome automatically (card.css, gh#796) — `frameless`/`raw` on the instance still applies and is honored, but is no longer required just to avoid the doubled-edge look in that composition. */
|
|
98
98
|
frameless: boolean;
|
|
99
99
|
/** Renders N ghost skeleton rows in place of the body data (count derived from `paginate` if set, else 5). Header + columns stay intact so the table layout is preserved while data fetches. Sets aria-busy="true" on the host. Data updates are deferred until loading is set back to false. */
|
|
100
100
|
loading: boolean;
|
|
101
101
|
/** Rows per page. 0 = show all rows without pagination. When > 0, renders a pagination bar below the table. */
|
|
102
102
|
paginate: number;
|
|
103
|
-
/** Visual-only passthrough — applies `<table-ui>`'s chrome reset (background / border / border-radius all transparent) AND short-circuits the data lifecycle entirely. The consumer owns the body shape: no header injection, no row reconciliation from `.data`, no empty-state / loading overlays, no aggregation or pagination footers. Use raw when embedding `<table-ui>` inside surfaces that supply their own chrome (e.g. `<card-ui><section bleed>`), or when wrapping a consumer-authored native `<table>` for design-token styling without the framework's data semantics. Pre-v0.6.33 (FB-53 §2) `raw` was visual-only and the data lifecycle still ran — wrapping a `.data`-unset native table produced a phantom "No data" overlay. v0.6.33+ matches the documented contract. */
|
|
103
|
+
/** Visual-only passthrough — applies `<table-ui>`'s chrome reset (background / border / border-radius all transparent) AND short-circuits the data lifecycle entirely. The consumer owns the body shape: no header injection, no row reconciliation from `.data`, no empty-state / loading overlays, no aggregation or pagination footers. Use raw when embedding `<table-ui>` inside surfaces that supply their own chrome (e.g. `<card-ui><section bleed>`), or when wrapping a consumer-authored native `<table>` for design-token styling without the framework's data semantics. Note: a `<table-ui>` placed directly inside `<card-ui><section bleed>` drops the table's visual chrome automatically (card.css, gh#796) even without `raw` — `raw` is still required to also short-circuit the data lifecycle. Pre-v0.6.33 (FB-53 §2) `raw` was visual-only and the data lifecycle still ran — wrapping a `.data`-unset native table produced a phantom "No data" overlay. v0.6.33+ matches the documented contract. */
|
|
104
104
|
raw: boolean;
|
|
105
105
|
/** Global search/filter string. Filters visible rows across all columns using case-insensitive substring matching. Resets to page 1 on change. */
|
|
106
106
|
search: string;
|
|
@@ -115,11 +115,6 @@ export class UITable extends UIElement {
|
|
|
115
115
|
/** Allow body-cell content to wrap onto multiple lines. Default is single-line with ellipsis truncation (matches the row convention shared by <select-ui> + <nav-item-ui>); long unbreakable strings clip gracefully rather than rewrapping the row. With [wrap], row height auto-grows to fit wrapped content. For surgical opt-in on a single column, set [data-wrap] on the cell / col-def instead. */
|
|
116
116
|
wrap: boolean;
|
|
117
117
|
|
|
118
|
-
addEventListener<K extends keyof HTMLElementEventMap>(
|
|
119
|
-
type: K,
|
|
120
|
-
listener: (this: UITable, ev: HTMLElementEventMap[K]) => unknown,
|
|
121
|
-
options?: boolean | AddEventListenerOptions,
|
|
122
|
-
): void;
|
|
123
118
|
addEventListener(type: 'cell-click', listener: (ev: TableCellClickEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
124
119
|
addEventListener(type: 'filter-change', listener: (ev: TableFilterChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
125
120
|
addEventListener(type: 'page', listener: (ev: TablePageEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -129,4 +124,9 @@ export class UITable extends UIElement {
|
|
|
129
124
|
addEventListener(type: 'row-expand', listener: (ev: TableRowExpandEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
130
125
|
addEventListener(type: 'select', listener: (ev: TableSelectEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
131
126
|
addEventListener(type: 'sort', listener: (ev: TableSortEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
127
|
+
addEventListener<K extends keyof HTMLElementEventMap>(
|
|
128
|
+
type: K,
|
|
129
|
+
listener: (this: UITable, ev: HTMLElementEventMap[K]) => unknown,
|
|
130
|
+
options?: boolean | AddEventListenerOptions,
|
|
131
|
+
): void;
|
|
132
132
|
}
|
|
@@ -74,6 +74,10 @@ props:
|
|
|
74
74
|
surfaces that supply their own chrome (e.g. `<card-ui><section
|
|
75
75
|
bleed>`), or when wrapping a consumer-authored native `<table>`
|
|
76
76
|
for design-token styling without the framework's data semantics.
|
|
77
|
+
Note: a `<table-ui>` placed directly inside `<card-ui><section bleed>`
|
|
78
|
+
drops the table's visual chrome automatically (card.css, gh#796) even
|
|
79
|
+
without `raw` — `raw` is still required to also short-circuit the
|
|
80
|
+
data lifecycle.
|
|
77
81
|
Pre-v0.6.33 (FB-53 §2) `raw` was visual-only and the data lifecycle
|
|
78
82
|
still ran — wrapping a `.data`-unset native table produced a
|
|
79
83
|
phantom "No data" overlay. v0.6.33+ matches the documented contract.
|
|
@@ -107,7 +111,11 @@ props:
|
|
|
107
111
|
square perimeter otherwise renders a doubled edge (flush bleed) or
|
|
108
112
|
a stray inner box (with content above). Standalone tables keep
|
|
109
113
|
their chrome by default. Theming path without the attribute:
|
|
110
|
-
set --table-perimeter to transparent per instance.
|
|
114
|
+
set --table-perimeter to transparent per instance. Note:
|
|
115
|
+
`<card-ui><section bleed>` already drops a direct-child table-ui's
|
|
116
|
+
chrome automatically (card.css, gh#796) — `frameless`/`raw` on the
|
|
117
|
+
instance still applies and is honored, but is no longer required
|
|
118
|
+
just to avoid the doubled-edge look in that composition.
|
|
111
119
|
type: boolean
|
|
112
120
|
default: false
|
|
113
121
|
reflect: true
|
|
@@ -37,13 +37,13 @@ export class UITableToolbar extends UIElement {
|
|
|
37
37
|
/** Toolbar visual variant. `default` renders bare on parent surface; `card` adds the same chrome as a card-ui header. */
|
|
38
38
|
variant: 'default' | 'card';
|
|
39
39
|
|
|
40
|
+
addEventListener(type: 'columns-change', listener: (ev: TableToolbarColumnsChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
41
|
+
addEventListener(type: 'filter-change', listener: (ev: TableToolbarFilterChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
42
|
+
addEventListener(type: 'search', listener: (ev: TableToolbarSearchEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
43
|
+
addEventListener(type: 'sort-change', listener: (ev: TableToolbarSortChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
40
44
|
addEventListener<K extends keyof HTMLElementEventMap>(
|
|
41
45
|
type: K,
|
|
42
46
|
listener: (this: UITableToolbar, ev: HTMLElementEventMap[K]) => unknown,
|
|
43
47
|
options?: boolean | AddEventListenerOptions,
|
|
44
48
|
): void;
|
|
45
|
-
addEventListener(type: 'columns-change', listener: (ev: TableToolbarColumnsChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
46
|
-
addEventListener(type: 'filter-change', listener: (ev: TableToolbarFilterChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
47
|
-
addEventListener(type: 'search', listener: (ev: TableToolbarSearchEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
48
|
-
addEventListener(type: 'sort-change', listener: (ev: TableToolbarSortChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
49
49
|
}
|
|
@@ -27,12 +27,12 @@ export class UITabs extends UIElement {
|
|
|
27
27
|
/** Visual variant — `default` (underline strip) or `bordered`. */
|
|
28
28
|
variant: 'default' | 'bordered';
|
|
29
29
|
|
|
30
|
+
addEventListener(type: 'change', listener: (ev: TabsChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
30
31
|
addEventListener<K extends keyof HTMLElementEventMap>(
|
|
31
32
|
type: K,
|
|
32
33
|
listener: (this: UITabs, ev: HTMLElementEventMap[K]) => unknown,
|
|
33
34
|
options?: boolean | AddEventListenerOptions,
|
|
34
35
|
): void;
|
|
35
|
-
addEventListener(type: 'change', listener: (ev: TabsChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
export class UITab extends UIElement {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"$ref": "common_types.json#/$defs/DynamicString"
|
|
47
47
|
},
|
|
48
48
|
"tone": {
|
|
49
|
-
"description": "Fill style — orthogonal to [variant]. Three values:\n - `solid` (default for family
|
|
49
|
+
"description": "Fill style — orthogonal to [variant]. Three values:\n - `solid` (default — for EVERY variant, including the family-less\n `default`, since gh#794) — saturated bg + on-strong (near-white)\n text. The chip IS the state. A bare `<tag-ui text=\"…\">` renders\n this look with no attributes at all.\n - `muted` — tinted bg with scheme-paired text. Matches <badge-ui>'s\n default look, and is the pre-gh#794 look for the family-less\n `default` variant. Use on metadata / citation chips in dense\n lists or tables where the saturated default would compete for\n attention (gh#778's oversized-pill concern).\n - `outline` — transparent bg + family-colored border + family-colored\n text. The lightest visual weight; good in dense data tables or\n faceted filter rows where multiple chips would otherwise compete.\n`tone` is a declarative presentational attribute (not a reactive\nprop — see tag.class.js) so its schema `default` here is documentation\nof the rendered-by-default look, not a reflected attribute value.\n",
|
|
50
50
|
"type": "string",
|
|
51
51
|
"enum": [
|
|
52
52
|
"solid",
|
package/components/tag/tag.css
CHANGED
|
@@ -6,15 +6,43 @@ tag-ui[removable]:not([disabled]):hover {
|
|
|
6
6
|
|
|
7
7
|
@scope (tag-ui) {
|
|
8
8
|
:where(:scope) {
|
|
9
|
-
/* ── Tokens ──
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
/* ── Tokens ──
|
|
10
|
+
gh#794: the real bare-tag default lives HERE, not in the
|
|
11
|
+
`:scope[variant="default"]` rule below — `variant` is a reflect:true
|
|
12
|
+
prop (tag.class.js), and `installProps()`'s reflect() only fires on
|
|
13
|
+
a property SET, never for a value that equals its declared class
|
|
14
|
+
default at construction time. A bare `<tag-ui text="…">` therefore
|
|
15
|
+
never gets a physical `variant="default"` attribute; these
|
|
16
|
+
`:where(:scope)` zero-specificity tokens are what it actually
|
|
17
|
+
renders. Solid neutral inverse (was `--a-bg-muted` quiet chrome
|
|
18
|
+
pre-#794) — same pair the family variants and the redundant
|
|
19
|
+
`:scope[variant="default"]` rule below carry, for the rare case
|
|
20
|
+
`variant="default"` IS reflected explicitly (SSR/a2ui-producer
|
|
21
|
+
markup). Opt out via `[tone="muted"]`. */
|
|
22
|
+
--tag-bg: var(--md-sys-color-neutral-on-surface);
|
|
23
|
+
--tag-fg: var(--md-sys-color-neutral-background);
|
|
12
24
|
--tag-border: transparent;
|
|
13
25
|
--tag-radius: var(--a-radius-full);
|
|
14
26
|
--tag-px: var(--a-space-1-5);
|
|
15
|
-
--tag-py: 0
|
|
27
|
+
--tag-py: var(--a-space-0-5);
|
|
16
28
|
--tag-gap: var(--a-space-1);
|
|
17
29
|
--tag-font: var(--a-ui-sm);
|
|
30
|
+
|
|
31
|
+
/* ── Size tiers (gh#779) — md (above) is the pixel-identical default;
|
|
32
|
+
[size="sm"|"lg"] below re-point the active tokens. Component-owned
|
|
33
|
+
ladder, NOT a direct alias of the universal --a-ui-px/--a-ui-size
|
|
34
|
+
tokens (styles/api/sizing.css) — tag-ui's own md baseline predates
|
|
35
|
+
and differs from that system's md (6px/12px here vs 8px/13px
|
|
36
|
+
there), so aliasing directly would shift every default tag's
|
|
37
|
+
geometry (gh#778 is exactly this failure mode — an inflated
|
|
38
|
+
default). Instead sm/lg step off tag's OWN md baseline by the
|
|
39
|
+
same rung spacing the space/type scales already use. */
|
|
40
|
+
--tag-px-sm: var(--a-space-1);
|
|
41
|
+
--tag-px-lg: var(--a-space-2);
|
|
42
|
+
--tag-py-sm: var(--a-space-px);
|
|
43
|
+
--tag-py-lg: var(--a-space-1);
|
|
44
|
+
--tag-font-sm: var(--a-ui-xs);
|
|
45
|
+
--tag-font-lg: var(--a-ui-md);
|
|
18
46
|
--tag-font-family: var(--a-font-family-ui);
|
|
19
47
|
--tag-dismiss-size: 1rem;
|
|
20
48
|
--tag-bg-hover: var(--a-bg-hover);
|
|
@@ -134,12 +162,16 @@ tag-ui[removable]:not([disabled]):hover {
|
|
|
134
162
|
--tag-fg: var(--md-sys-color-danger-on-danger);
|
|
135
163
|
}
|
|
136
164
|
|
|
137
|
-
/* `default` (no family)
|
|
138
|
-
|
|
139
|
-
|
|
165
|
+
/* `default` (no family) is solid by default (gh#794) — the same
|
|
166
|
+
high-contrast neutral inverse the family variants already carry.
|
|
167
|
+
A bare `<tag-ui text="…">` is now a stamped pill, not quiet chrome.
|
|
168
|
+
Opt OUT to the pre-#794 quiet-chrome look via `[tone="muted"]`
|
|
169
|
+
(below) on metadata/citation chips in dense lists or tables where
|
|
170
|
+
the saturated look competes for attention (gh#778's oversized-pill
|
|
171
|
+
complaint) — same escape hatch the family variants already use. */
|
|
140
172
|
:scope[variant="default"] {
|
|
141
|
-
--tag-bg: var(--
|
|
142
|
-
--tag-fg: var(--md-sys-color-neutral-
|
|
173
|
+
--tag-bg: var(--md-sys-color-neutral-on-surface);
|
|
174
|
+
--tag-fg: var(--md-sys-color-neutral-background);
|
|
143
175
|
}
|
|
144
176
|
|
|
145
177
|
/* ── Tone modifier — orthogonal to [variant] ──
|
|
@@ -170,10 +202,26 @@ tag-ui[removable]:not([disabled]):hover {
|
|
|
170
202
|
--tag-bg: var(--md-sys-color-primary-container);
|
|
171
203
|
--tag-fg: var(--md-sys-color-primary-on-surface);
|
|
172
204
|
}
|
|
205
|
+
/* gh#794: the pre-#794 quiet-chrome look for the variant-less default —
|
|
206
|
+
same values the `:where(:scope)` base tokens carried before the
|
|
207
|
+
solid-default flip. This is the explicit opt-out for bare tags that
|
|
208
|
+
need the old quiet register (dense-list metadata/citation chips,
|
|
209
|
+
gh#778's oversized-pill concern) instead of the new stamped-pill
|
|
210
|
+
default. `:not([variant=…])` (not `[variant="default"]`) because
|
|
211
|
+
`variant` is a reflect:true prop whose class default ("default")
|
|
212
|
+
never gets a physical attribute reflected on a bare tag (the
|
|
213
|
+
`installProps()` reflect() path only fires on a property SET) —
|
|
214
|
+
the same reason the `[tone="solid"]` fallback below uses this same
|
|
215
|
+
`:not()` shape instead of `[variant="default"]`. */
|
|
216
|
+
:scope[tone="muted"]:not([variant="info"]):not([variant="success"]):not([variant="warning"]):not([variant="danger"]):not([variant="accent"]) {
|
|
217
|
+
--tag-bg: var(--a-bg-muted);
|
|
218
|
+
--tag-fg: var(--md-sys-color-neutral-on-surface);
|
|
219
|
+
}
|
|
173
220
|
|
|
174
|
-
/* `[tone="solid"]`
|
|
175
|
-
|
|
176
|
-
|
|
221
|
+
/* `[tone="solid"]` explicit opt-in — redundant with the bare default
|
|
222
|
+
since gh#794 (the variant-less default is solid unconditionally
|
|
223
|
+
above) but kept so `tone="solid"` stays a valid, harmless, explicit
|
|
224
|
+
statement of intent for consumers who set it directly.
|
|
177
225
|
[variant="accent"] is excluded — it already has an explicit solid
|
|
178
226
|
pair above (the plain [variant="accent"] rule) that this higher-
|
|
179
227
|
specificity fallback would otherwise clobber when tone="solid" is
|
|
@@ -220,7 +268,24 @@ tag-ui[removable]:not([disabled]):hover {
|
|
|
220
268
|
--tag-border: var(--md-sys-color-neutral-outline);
|
|
221
269
|
}
|
|
222
270
|
|
|
223
|
-
/* Size
|
|
271
|
+
/* ── Size tiers (gh#779) — re-point the active tokens to the matching
|
|
272
|
+
tier; the token defaults at :where(:scope) above ARE the md tier, so
|
|
273
|
+
[size="md"] is declared only for explicitness (mirrors kbd.css). */
|
|
274
|
+
:scope[size="sm"] {
|
|
275
|
+
--tag-px: var(--tag-px-sm);
|
|
276
|
+
--tag-py: var(--tag-py-sm);
|
|
277
|
+
--tag-font: var(--tag-font-sm);
|
|
278
|
+
}
|
|
279
|
+
:scope[size="md"] {
|
|
280
|
+
--tag-px: var(--a-space-1-5);
|
|
281
|
+
--tag-py: var(--a-space-0-5);
|
|
282
|
+
--tag-font: var(--a-ui-sm);
|
|
283
|
+
}
|
|
284
|
+
:scope[size="lg"] {
|
|
285
|
+
--tag-px: var(--tag-px-lg);
|
|
286
|
+
--tag-py: var(--tag-py-lg);
|
|
287
|
+
--tag-font: var(--tag-font-lg);
|
|
288
|
+
}
|
|
224
289
|
|
|
225
290
|
/* hover rule moved outside @scope — see Safari 17.x bug note at top. */
|
|
226
291
|
|
package/components/tag/tag.d.ts
CHANGED
|
@@ -41,26 +41,30 @@ export class UITag extends UIElement {
|
|
|
41
41
|
/** Tag label. Renderer routes this to the `text` attribute, rendered via CSS attr(text) on ::after. */
|
|
42
42
|
textContent: string;
|
|
43
43
|
/** Fill style — orthogonal to [variant]. Three values:
|
|
44
|
-
- `solid` (default for
|
|
45
|
-
|
|
44
|
+
- `solid` (default — for EVERY variant, including the family-less
|
|
45
|
+
`default`, since gh#794) — saturated bg + on-strong (near-white)
|
|
46
|
+
text. The chip IS the state. A bare `<tag-ui text="…">` renders
|
|
47
|
+
this look with no attributes at all.
|
|
46
48
|
- `muted` — tinted bg with scheme-paired text. Matches <badge-ui>'s
|
|
47
|
-
default look
|
|
48
|
-
|
|
49
|
+
default look, and is the pre-gh#794 look for the family-less
|
|
50
|
+
`default` variant. Use on metadata / citation chips in dense
|
|
51
|
+
lists or tables where the saturated default would compete for
|
|
52
|
+
attention (gh#778's oversized-pill concern).
|
|
49
53
|
- `outline` — transparent bg + family-colored border + family-colored
|
|
50
54
|
text. The lightest visual weight; good in dense data tables or
|
|
51
55
|
faceted filter rows where multiple chips would otherwise compete.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
56
|
+
`tone` is a declarative presentational attribute (not a reactive
|
|
57
|
+
prop — see tag.class.js) so its schema `default` here is documentation
|
|
58
|
+
of the rendered-by-default look, not a reflected attribute value.
|
|
55
59
|
*/
|
|
56
60
|
tone: 'solid' | 'muted' | 'outline';
|
|
57
61
|
/** Semantic variant — `default | accent | info | success | warning | danger`. `accent` is brand-primary emphasis for non-semantic labels — a filter chip or taxonomy tag that shouldn't imply a success/warning/danger state. Mirrors <badge-ui>'s `accent` variant token-for-token. */
|
|
58
62
|
variant: 'default' | 'accent' | 'info' | 'success' | 'warning' | 'danger';
|
|
59
63
|
|
|
64
|
+
addEventListener(type: 'remove', listener: (ev: TagRemoveEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
60
65
|
addEventListener<K extends keyof HTMLElementEventMap>(
|
|
61
66
|
type: K,
|
|
62
67
|
listener: (this: UITag, ev: HTMLElementEventMap[K]) => unknown,
|
|
63
68
|
options?: boolean | AddEventListenerOptions,
|
|
64
69
|
): void;
|
|
65
|
-
addEventListener(type: 'remove', listener: (ev: TagRemoveEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
66
70
|
}
|
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
<tag-ui text="Default"></tag-ui>
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## size
|
|
10
10
|
|
|
11
11
|
```html
|
|
12
|
-
<tag-ui text="
|
|
12
|
+
<tag-ui text="Small" size="sm"></tag-ui>
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
##
|
|
15
|
+
## removable
|
|
16
16
|
|
|
17
17
|
```html
|
|
18
|
-
<tag-ui text="
|
|
18
|
+
<tag-ui text="Removable" removable></tag-ui>
|
|
19
19
|
```
|
package/components/tag/tag.yaml
CHANGED
|
@@ -62,17 +62,21 @@ props:
|
|
|
62
62
|
tone:
|
|
63
63
|
description: |
|
|
64
64
|
Fill style — orthogonal to [variant]. Three values:
|
|
65
|
-
- `solid` (default for
|
|
66
|
-
|
|
65
|
+
- `solid` (default — for EVERY variant, including the family-less
|
|
66
|
+
`default`, since gh#794) — saturated bg + on-strong (near-white)
|
|
67
|
+
text. The chip IS the state. A bare `<tag-ui text="…">` renders
|
|
68
|
+
this look with no attributes at all.
|
|
67
69
|
- `muted` — tinted bg with scheme-paired text. Matches <badge-ui>'s
|
|
68
|
-
default look
|
|
69
|
-
|
|
70
|
+
default look, and is the pre-gh#794 look for the family-less
|
|
71
|
+
`default` variant. Use on metadata / citation chips in dense
|
|
72
|
+
lists or tables where the saturated default would compete for
|
|
73
|
+
attention (gh#778's oversized-pill concern).
|
|
70
74
|
- `outline` — transparent bg + family-colored border + family-colored
|
|
71
75
|
text. The lightest visual weight; good in dense data tables or
|
|
72
76
|
faceted filter rows where multiple chips would otherwise compete.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
77
|
+
`tone` is a declarative presentational attribute (not a reactive
|
|
78
|
+
prop — see tag.class.js) so its schema `default` here is documentation
|
|
79
|
+
of the rendered-by-default look, not a reflected attribute value.
|
|
76
80
|
type: string
|
|
77
81
|
default: solid
|
|
78
82
|
enum:
|
|
@@ -127,6 +131,13 @@ a2ui:
|
|
|
127
131
|
Group multiple tags inside a <row-ui gap="2"> — never stack them
|
|
128
132
|
vertically; vertical lists of dismissable items are an
|
|
129
133
|
<action-list-ui> use case, not <tag-ui>.
|
|
134
|
+
- >-
|
|
135
|
+
Bare <tag-ui text="…"> (no [tone]) renders the high-contrast
|
|
136
|
+
solid pill by default (gh#794). In dense tables, tight metadata
|
|
137
|
+
rows, or citation/footnote strips where many tags sit close
|
|
138
|
+
together, set [tone="muted"] to keep the quieter tinted look
|
|
139
|
+
instead — a wall of solid pills reads as visual noise there
|
|
140
|
+
(gh#778).
|
|
130
141
|
anti_patterns: []
|
|
131
142
|
examples:
|
|
132
143
|
- name: basic-tag
|
|
@@ -108,13 +108,13 @@ replaces the rendered chips. Reflection skipped — array values
|
|
|
108
108
|
do not round-trip through attribute strings. */
|
|
109
109
|
value: string;
|
|
110
110
|
|
|
111
|
+
addEventListener(type: 'change', listener: (ev: TagsInputChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
112
|
+
addEventListener(type: 'commit', listener: (ev: TagsInputCommitEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
113
|
+
addEventListener(type: 'input', listener: (ev: TagsInputInputEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
114
|
+
addEventListener(type: 'invalid', listener: (ev: TagsInputInvalidEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
111
115
|
addEventListener<K extends keyof HTMLElementEventMap>(
|
|
112
116
|
type: K,
|
|
113
117
|
listener: (this: UITagsInput, ev: HTMLElementEventMap[K]) => unknown,
|
|
114
118
|
options?: boolean | AddEventListenerOptions,
|
|
115
119
|
): void;
|
|
116
|
-
addEventListener(type: 'change', listener: (ev: TagsInputChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
117
|
-
addEventListener(type: 'commit', listener: (ev: TagsInputCommitEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
118
|
-
addEventListener(type: 'input', listener: (ev: TagsInputInputEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
119
|
-
addEventListener(type: 'invalid', listener: (ev: TagsInputInvalidEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
120
120
|
}
|
|
@@ -25,12 +25,12 @@ export class UITimeline extends UIElement {
|
|
|
25
25
|
/** Rail size preset — use `sm` for agent-reasoning/pipeline views; `md` is the default. */
|
|
26
26
|
size: 'sm' | 'md';
|
|
27
27
|
|
|
28
|
+
addEventListener(type: 'timeline-toggle', listener: (ev: TimelineToggleEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
28
29
|
addEventListener<K extends keyof HTMLElementEventMap>(
|
|
29
30
|
type: K,
|
|
30
31
|
listener: (this: UITimeline, ev: HTMLElementEventMap[K]) => unknown,
|
|
31
32
|
options?: boolean | AddEventListenerOptions,
|
|
32
33
|
): void;
|
|
33
|
-
addEventListener(type: 'timeline-toggle', listener: (ev: TimelineToggleEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
export class UITimelineItem extends UIElement {
|
package/components/toc/toc.d.ts
CHANGED
|
@@ -52,10 +52,10 @@ scans the toc-ui's parent element. Set to `#article` /
|
|
|
52
52
|
*/
|
|
53
53
|
target: string;
|
|
54
54
|
|
|
55
|
+
addEventListener(type: 'section-change', listener: (ev: TableOfContentsSectionChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
55
56
|
addEventListener<K extends keyof HTMLElementEventMap>(
|
|
56
57
|
type: K,
|
|
57
58
|
listener: (this: UITableOfContents, ev: HTMLElementEventMap[K]) => unknown,
|
|
58
59
|
options?: boolean | AddEventListenerOptions,
|
|
59
60
|
): void;
|
|
60
|
-
addEventListener(type: 'section-change', listener: (ev: TableOfContentsSectionChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
61
61
|
}
|
|
@@ -25,12 +25,12 @@ export class UIToggleGroup extends UIElement {
|
|
|
25
25
|
/** Comma-separated selected values */
|
|
26
26
|
value: string;
|
|
27
27
|
|
|
28
|
+
addEventListener(type: 'change', listener: (ev: ToggleGroupChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
28
29
|
addEventListener<K extends keyof HTMLElementEventMap>(
|
|
29
30
|
type: K,
|
|
30
31
|
listener: (this: UIToggleGroup, ev: HTMLElementEventMap[K]) => unknown,
|
|
31
32
|
options?: boolean | AddEventListenerOptions,
|
|
32
33
|
): void;
|
|
33
|
-
addEventListener(type: 'change', listener: (ev: ToggleGroupChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
export class UIToggleOption extends UIElement {
|
|
@@ -49,10 +49,10 @@ export class UIToggleScheme extends UIElement {
|
|
|
49
49
|
/** Visual style forwarded to the internal <button-ui>. Defaults to "ghost" (matches app practice). */
|
|
50
50
|
variant: 'default' | 'solid' | 'outline' | 'ghost' | 'primary' | 'secondary' | 'soft';
|
|
51
51
|
|
|
52
|
+
addEventListener(type: 'scheme-change', listener: (ev: ToggleSchemeSchemeChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
52
53
|
addEventListener<K extends keyof HTMLElementEventMap>(
|
|
53
54
|
type: K,
|
|
54
55
|
listener: (this: UIToggleScheme, ev: HTMLElementEventMap[K]) => unknown,
|
|
55
56
|
options?: boolean | AddEventListenerOptions,
|
|
56
57
|
): void;
|
|
57
|
-
addEventListener(type: 'scheme-change', listener: (ev: ToggleSchemeSchemeChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
58
58
|
}
|
|
@@ -48,15 +48,15 @@ tour to that step (updating spotlight + popover position).
|
|
|
48
48
|
*/
|
|
49
49
|
step: number;
|
|
50
50
|
|
|
51
|
+
addEventListener(type: 'tour-finish', listener: (ev: TourFinishEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
52
|
+
addEventListener(type: 'tour-skip', listener: (ev: TourSkipEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
53
|
+
addEventListener(type: 'tour-start', listener: (ev: TourStartEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
54
|
+
addEventListener(type: 'tour-step-change', listener: (ev: TourStepChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
51
55
|
addEventListener<K extends keyof HTMLElementEventMap>(
|
|
52
56
|
type: K,
|
|
53
57
|
listener: (this: UITour, ev: HTMLElementEventMap[K]) => unknown,
|
|
54
58
|
options?: boolean | AddEventListenerOptions,
|
|
55
59
|
): void;
|
|
56
|
-
addEventListener(type: 'tour-finish', listener: (ev: TourFinishEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
57
|
-
addEventListener(type: 'tour-skip', listener: (ev: TourSkipEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
58
|
-
addEventListener(type: 'tour-start', listener: (ev: TourStartEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
59
|
-
addEventListener(type: 'tour-step-change', listener: (ev: TourStepChangeEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
export class UITourStep extends UIElement {
|
|
@@ -31,12 +31,12 @@ export type TreeSelectEvent = CustomEvent<TreeSelectEventDetail>;
|
|
|
31
31
|
|
|
32
32
|
export class UITree extends UIElement {
|
|
33
33
|
|
|
34
|
+
addEventListener(type: 'tree-select', listener: (ev: TreeSelectEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
34
35
|
addEventListener<K extends keyof HTMLElementEventMap>(
|
|
35
36
|
type: K,
|
|
36
37
|
listener: (this: UITree, ev: HTMLElementEventMap[K]) => unknown,
|
|
37
38
|
options?: boolean | AddEventListenerOptions,
|
|
38
39
|
): void;
|
|
39
|
-
addEventListener(type: 'tree-select', listener: (ev: TreeSelectEvent) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
export class UITreeItem extends UIElement {
|