@ds-mo/ui 14.28.0 → 14.29.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/dist/.package-ready.json +1 -1
- package/dist/agent-patterns.json +27 -17
- package/dist/agent.json +148 -25
- package/dist/angular/ds-button-filled.d.ts +1 -1
- package/dist/angular/ds-button-filled.js +3 -3
- package/dist/angular/ds-button-unfilled.d.ts +1 -1
- package/dist/angular/ds-button-unfilled.js +3 -3
- package/dist/angular/ds-panel-nav.d.ts +1 -1
- package/dist/angular/ds-panel-nav.js +3 -3
- package/dist/angular/ds-panel-tool-header.d.ts +1 -1
- package/dist/angular/ds-panel-tool-header.js +3 -3
- package/dist/angular/ds-panel-tool-search.d.ts +1 -1
- package/dist/angular/ds-panel-tool-search.js +3 -3
- package/dist/angular/ds-table.d.ts +1 -1
- package/dist/angular/ds-table.js +3 -3
- package/dist/angular/ds-tag.d.ts +1 -1
- package/dist/angular/ds-tag.js +3 -3
- package/dist/components/ds-agent-questionnaire.js +1 -1
- package/dist/components/ds-agent-response.js +1 -1
- package/dist/components/ds-banner.js +1 -1
- package/dist/components/ds-bar-nav.js +1 -1
- package/dist/components/ds-bar-title.js +1 -1
- package/dist/components/ds-bar-workflow.js +1 -1
- package/dist/components/ds-button-filled.js +1 -1
- package/dist/components/ds-button-unfilled.js +1 -1
- package/dist/components/ds-card-chart.js +1 -1
- package/dist/components/ds-card-navigation.js +1 -1
- package/dist/components/ds-card-navigation.js.map +1 -1
- package/dist/components/ds-card-overview.js +1 -1
- package/dist/components/ds-card-overview.js.map +1 -1
- package/dist/components/ds-card-setting.js +1 -1
- package/dist/components/ds-chart-legend.js +1 -1
- package/dist/components/ds-chart-legend.js.map +1 -1
- package/dist/components/ds-checkbox.js +1 -1
- package/dist/components/ds-chip.js +1 -1
- package/dist/components/ds-code-block.js +1 -1
- package/dist/components/ds-conversation-list-item.js +1 -1
- package/dist/components/ds-conversation-list-item.js.map +1 -1
- package/dist/components/ds-filter-menu.js +1 -1
- package/dist/components/ds-input.js +1 -1
- package/dist/components/ds-markdown.js +1 -1
- package/dist/components/ds-menu.js +1 -1
- package/dist/components/ds-message-actions.js +1 -1
- package/dist/components/ds-message-composer.js +1 -1
- package/dist/components/ds-message-scroller.js +1 -1
- package/dist/components/ds-mobile-bar-nav.js +1 -1
- package/dist/components/ds-mobile-header.js +1 -1
- package/dist/components/ds-mobile-section-switcher.js +1 -1
- package/dist/components/ds-mobile-sheet-nav.js +1 -1
- package/dist/components/ds-modal.js +1 -1
- package/dist/components/ds-pagination.js +1 -1
- package/dist/components/ds-panel-nav.js +1 -1
- package/dist/components/ds-panel-sub-nav.js +1 -1
- package/dist/components/ds-panel-sub-nav.js.map +1 -1
- package/dist/components/ds-panel-tool-header.js +1 -1
- package/dist/components/ds-panel-tool-search.js +1 -1
- package/dist/components/ds-panel-tool-search.js.map +1 -1
- package/dist/components/ds-panel-tools.js +1 -1
- package/dist/components/ds-radio.js +1 -1
- package/dist/components/ds-select.js +1 -1
- package/dist/components/ds-shell-app.js +1 -1
- package/dist/components/ds-shell-app.js.map +1 -1
- package/dist/components/ds-shell-tools.js +1 -1
- package/dist/components/ds-tab-group.js +1 -1
- package/dist/components/ds-table-filter.js +1 -1
- package/dist/components/ds-table-group.js +1 -1
- package/dist/components/ds-table-group.js.map +1 -1
- package/dist/components/ds-table-saved-views.js +1 -1
- package/dist/components/ds-table-saved-views.js.map +1 -1
- package/dist/components/ds-table-search.js +1 -1
- package/dist/components/ds-table-search.js.map +1 -1
- package/dist/components/ds-table-sort.js +1 -1
- package/dist/components/ds-table-sort.js.map +1 -1
- package/dist/components/ds-table.js +1 -1
- package/dist/components/ds-table.js.map +1 -1
- package/dist/components/ds-tag.js +1 -1
- package/dist/components/ds-textarea.js +1 -1
- package/dist/components/ds-textarea.js.map +1 -1
- package/dist/components/ds-toast.js +1 -1
- package/dist/components/p--yvQzZoO.js +2 -0
- package/dist/components/p--yvQzZoO.js.map +1 -0
- package/dist/components/p-B5AZd41L.js +2 -0
- package/dist/components/p-B5AZd41L.js.map +1 -0
- package/dist/components/p-B5eMVBlz.js +2 -0
- package/dist/components/p-B5eMVBlz.js.map +1 -0
- package/dist/components/p-BGnRFtBa.js +2 -0
- package/dist/components/p-BGnRFtBa.js.map +1 -0
- package/dist/components/p-BIDGQ4tc.js +2 -0
- package/dist/components/p-BIDGQ4tc.js.map +1 -0
- package/dist/components/p-BZDQLjE0.js +2 -0
- package/dist/components/p-BZDQLjE0.js.map +1 -0
- package/dist/components/{p-DmYZLH_L.js → p-BdC7wxhu.js} +2 -2
- package/dist/components/{p-DmYZLH_L.js.map → p-BdC7wxhu.js.map} +1 -1
- package/dist/components/p-BfVlFinS.js +2 -0
- package/dist/components/{p-WM1GTEun.js.map → p-BfVlFinS.js.map} +1 -1
- package/dist/components/p-BmRHJ_jo.js +2 -0
- package/dist/components/p-BmRHJ_jo.js.map +1 -0
- package/dist/components/{p-CxbGZJBU.js → p-BwAWZAHk.js} +2 -2
- package/dist/components/{p-8atLxerP.js → p-By5TDnbF.js} +2 -2
- package/dist/components/{p-BdXUd-tK.js → p-CDXcINTO.js} +2 -2
- package/dist/components/{p-BdXUd-tK.js.map → p-CDXcINTO.js.map} +1 -1
- package/dist/components/{p-DGHeKNfG.js → p-CE8gsv7V.js} +2 -2
- package/dist/components/p-CLcwh1kq.js +2 -0
- package/dist/components/p-CLcwh1kq.js.map +1 -0
- package/dist/components/p-CcK3UiTu.js +2 -0
- package/dist/components/{p-NB-SoVpo.js.map → p-CcK3UiTu.js.map} +1 -1
- package/dist/components/p-Cr5vn5JO.js +2 -0
- package/dist/components/{p-CsW_2w-s.js.map → p-Cr5vn5JO.js.map} +1 -1
- package/dist/components/{p-CW7JhWlS.js → p-Crd3PEUx.js} +2 -2
- package/dist/components/{p-CW7JhWlS.js.map → p-Crd3PEUx.js.map} +1 -1
- package/dist/components/{p-Kp8ifB1g.js → p-Ct90k-nz.js} +2 -2
- package/dist/components/{p-C82vesh_.js → p-Cx2dWjaW.js} +2 -2
- package/dist/components/p-CyoLh8su.js +2 -0
- package/dist/components/p-CyoLh8su.js.map +1 -0
- package/dist/components/p-CysCSinT.js +2 -0
- package/dist/components/{p-BdU6FPu4.js.map → p-CysCSinT.js.map} +1 -1
- package/dist/components/p-CzbsTZt7.js.map +1 -1
- package/dist/components/p-D1pPq-y0.js +2 -0
- package/dist/components/{p-BWDbER5T.js.map → p-D1pPq-y0.js.map} +1 -1
- package/dist/components/{p-B3iy9Rl_.js → p-DF8W85Tz.js} +2 -2
- package/dist/components/p-GbtafFds.js +2 -0
- package/dist/components/p-GbtafFds.js.map +1 -0
- package/dist/components/{p-B_NN7k8H.js → p-K39w53Bw.js} +2 -2
- package/dist/components/p-K39w53Bw.js.map +1 -0
- package/dist/components/p-frKsmPQn.js +2 -0
- package/dist/components/{p-CvB76TJn.js.map → p-frKsmPQn.js.map} +1 -1
- package/dist/docs/components.json +188 -6
- package/dist/lib/components/ButtonFilled/ButtonFilled.d.ts +11 -3
- package/dist/lib/components/PanelTools/panel-tools-types.d.ts +2 -0
- package/dist/lib/components/ShellApp/shell-app-types.d.ts +2 -0
- package/dist/lib/shell/index.js.map +1 -1
- package/dist/lib/utils/choice-list.d.ts +2 -0
- package/dist/mcp-data/registry/bar-nav.json +7 -2
- package/dist/mcp-data/registry/bar-title.json +8 -3
- package/dist/mcp-data/registry/button-filled.json +26 -5
- package/dist/mcp-data/registry/button-unfilled.json +27 -6
- package/dist/mcp-data/registry/filter-menu.json +7 -2
- package/dist/mcp-data/registry/mobile-section-switcher.json +8 -3
- package/dist/mcp-data/registry/panel-nav.json +27 -6
- package/dist/mcp-data/registry/panel-tool-header.json +23 -2
- package/dist/mcp-data/registry/panel-tool-search.json +23 -2
- package/dist/mcp-data/registry/panel-tools.json +7 -2
- package/dist/mcp-data/registry/registry.json +147 -24
- package/dist/mcp-data/registry/select.json +8 -3
- package/dist/mcp-data/registry/shell-app.json +8 -3
- package/dist/mcp-data/registry/shell-tools.json +7 -2
- package/dist/mcp-data/registry/table-group.json +7 -2
- package/dist/mcp-data/registry/table-saved-views.json +7 -2
- package/dist/mcp-data/registry/table-search.json +7 -2
- package/dist/mcp-data/registry/table-sort.json +7 -2
- package/dist/mcp-data/registry/table.json +24 -3
- package/dist/mcp-data/registry/tag.json +24 -3
- package/dist/styles/table.css +1 -0
- package/dist/types/components/BarTitle/BarTitle.d.ts +3 -0
- package/dist/types/components/ButtonFilled/ButtonFilled.d.ts +11 -3
- package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +11 -5
- package/dist/types/components/MobileSectionSwitcher/MobileSectionSwitcher.d.ts +2 -0
- package/dist/types/components/PanelNav/PanelNav.d.ts +4 -1
- package/dist/types/components/PanelToolHeader/PanelToolHeader.d.ts +2 -0
- package/dist/types/components/PanelToolSearch/PanelToolSearch.d.ts +2 -0
- package/dist/types/components/PanelTools/panel-tools-types.d.ts +2 -0
- package/dist/types/components/ShellApp/ShellApp.d.ts +1 -0
- package/dist/types/components/ShellApp/shell-app-types.d.ts +2 -0
- package/dist/types/components/Table/Table.d.ts +10 -0
- package/dist/types/components/Table/table-row-view.d.ts +6 -1
- package/dist/types/components/TableSort/TableSort.d.ts +1 -0
- package/dist/types/components/Tag/Tag.d.ts +3 -0
- package/dist/types/components.d.ts +69 -6
- package/dist/types/utils/choice-list.d.ts +2 -0
- package/dist/vue/ds-button-filled.js +1 -0
- package/dist/vue/ds-button-unfilled.js +1 -0
- package/dist/vue/ds-panel-nav.js +1 -0
- package/dist/vue/ds-panel-tool-header.js +1 -0
- package/dist/vue/ds-panel-tool-search.js +1 -0
- package/dist/vue/ds-table.js +1 -0
- package/dist/vue/ds-tag.js +1 -0
- package/package.json +1 -1
- package/dist/components/p-6iF6gdoc.js +0 -2
- package/dist/components/p-6iF6gdoc.js.map +0 -1
- package/dist/components/p-BWDbER5T.js +0 -2
- package/dist/components/p-B_NN7k8H.js.map +0 -1
- package/dist/components/p-BdU6FPu4.js +0 -2
- package/dist/components/p-Bj018KMC.js +0 -2
- package/dist/components/p-Bj018KMC.js.map +0 -1
- package/dist/components/p-BxLF8b8a.js +0 -2
- package/dist/components/p-BxLF8b8a.js.map +0 -1
- package/dist/components/p-C1BJgnHY.js +0 -2
- package/dist/components/p-C1BJgnHY.js.map +0 -1
- package/dist/components/p-C78uTz-n.js +0 -2
- package/dist/components/p-C78uTz-n.js.map +0 -1
- package/dist/components/p-COn7l__5.js +0 -2
- package/dist/components/p-COn7l__5.js.map +0 -1
- package/dist/components/p-CsW_2w-s.js +0 -2
- package/dist/components/p-CvB76TJn.js +0 -2
- package/dist/components/p-D4-RkuER.js +0 -2
- package/dist/components/p-D4-RkuER.js.map +0 -1
- package/dist/components/p-DB_tlJ2d.js +0 -2
- package/dist/components/p-DB_tlJ2d.js.map +0 -1
- package/dist/components/p-NB-SoVpo.js +0 -2
- package/dist/components/p-P9My22Z1.js +0 -2
- package/dist/components/p-P9My22Z1.js.map +0 -1
- package/dist/components/p-WM1GTEun.js +0 -2
- package/dist/components/p-oAbq-DLk.js +0 -2
- package/dist/components/p-oAbq-DLk.js.map +0 -1
- /package/dist/components/{p-CxbGZJBU.js.map → p-BwAWZAHk.js.map} +0 -0
- /package/dist/components/{p-8atLxerP.js.map → p-By5TDnbF.js.map} +0 -0
- /package/dist/components/{p-DGHeKNfG.js.map → p-CE8gsv7V.js.map} +0 -0
- /package/dist/components/{p-Kp8ifB1g.js.map → p-Ct90k-nz.js.map} +0 -0
- /package/dist/components/{p-C82vesh_.js.map → p-Cx2dWjaW.js.map} +0 -0
- /package/dist/components/{p-B3iy9Rl_.js.map → p-DF8W85Tz.js.map} +0 -0
|
@@ -66,7 +66,8 @@
|
|
|
66
66
|
"isInset opts into reduced outer geometry only when Tag is nested inside a control of the same density. The default single inset removes 4px overall; insetDepth double removes 8px overall and falls back to single at xs to protect minimum icon geometry. Semantic styling, typography, icons, gaps, radius, and interaction remain unchanged.",
|
|
67
67
|
"Labels stay on one line and truncate only when the owner supplies a maximum width.",
|
|
68
68
|
"Omitted interactive renders static metadata with no focus, event, or suffix. Interactive adds the fixed ChevronUpDown suffix and emits dsClick without toggling expanded internally.",
|
|
69
|
-
"isInactive disables only the interactive button and applies the shared inactive treatment."
|
|
69
|
+
"isInactive disables only the interactive button and applies the shared inactive treatment.",
|
|
70
|
+
"Interactive tags use surfaceOpen for the associated menu lifecycle, including exit motion. This holds the shared pressed wash without changing the intent that describes the metadata value. Static tags never acquire surface ownership."
|
|
70
71
|
],
|
|
71
72
|
"responsiveBehavior": [
|
|
72
73
|
"The owner selects md, sm, or xs density to match its local layout and owns collection wrapping, overflow, and condensation. Use isInset only for same-density control nesting.",
|
|
@@ -87,6 +88,10 @@
|
|
|
87
88
|
{
|
|
88
89
|
"label": "Storybook examples",
|
|
89
90
|
"path": "src/wc/components/Tag/Tag.stories.ts"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"label": "Surface ownership and trigger state",
|
|
94
|
+
"path": "src/docs/SurfaceOwnership.mdx"
|
|
90
95
|
}
|
|
91
96
|
]
|
|
92
97
|
},
|
|
@@ -199,6 +204,14 @@
|
|
|
199
204
|
"default": "'md'",
|
|
200
205
|
"required": false,
|
|
201
206
|
"mutable": false
|
|
207
|
+
},
|
|
208
|
+
"surfaceOpen": {
|
|
209
|
+
"type": "boolean | undefined",
|
|
210
|
+
"resolvedType": "boolean | undefined",
|
|
211
|
+
"attribute": "surface-open",
|
|
212
|
+
"required": false,
|
|
213
|
+
"mutable": false,
|
|
214
|
+
"description": "Associated menu remains visible, including exit motion. Omission preserves\nthe deprecated expanded-derived wash; explicit false suppresses it."
|
|
202
215
|
}
|
|
203
216
|
},
|
|
204
217
|
"events": [
|
|
@@ -322,6 +335,14 @@
|
|
|
322
335
|
"default": "'md'",
|
|
323
336
|
"required": false,
|
|
324
337
|
"mutable": false
|
|
338
|
+
},
|
|
339
|
+
"surfaceOpen": {
|
|
340
|
+
"type": "boolean | undefined",
|
|
341
|
+
"resolvedType": "boolean | undefined",
|
|
342
|
+
"attribute": "surface-open",
|
|
343
|
+
"required": false,
|
|
344
|
+
"mutable": false,
|
|
345
|
+
"description": "Associated menu remains visible, including exit motion. Omission preserves\nthe deprecated expanded-derived wash; explicit false suppresses it."
|
|
325
346
|
}
|
|
326
347
|
},
|
|
327
348
|
"events": [
|
|
@@ -382,12 +403,12 @@
|
|
|
382
403
|
"files": [
|
|
383
404
|
{
|
|
384
405
|
"path": "src/wc/components/Tag/Tag.css",
|
|
385
|
-
"content": "@import '../../utils/tag-chip.css';\n@import '../../utils/control-density-inset.css';\n\n/* A one-character rounded Tag resolves to a circle at every density. */\n:host {\n min-inline-size: var(--ds-control-height);\n}\n\n/* ── Intent × Contrast — strong ─────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-strong) {\n background-color: var(--color-background-strong-neutral);\n color: var(--color-foreground-medium-neutral);\n}\n:host(.tag--intent-brand.tag--contrast-strong) {\n background-color: var(--color-background-strong-brand);\n color: var(--color-foreground-on-strong-background-primary);\n}\n:host(.tag--intent-ai.tag--contrast-strong) {\n background-color: var(--color-background-strong-ai);\n color: var(--color-foreground-medium-ai);\n}\n:host(.tag--intent-negative.tag--contrast-strong) {\n background-color: var(--color-background-strong-negative);\n color: var(--color-foreground-medium-negative);\n}\n:host(.tag--intent-warning.tag--contrast-strong) {\n background-color: var(--color-background-strong-warning);\n color: var(--color-foreground-medium-warning);\n}\n:host(.tag--intent-caution.tag--contrast-strong) {\n background-color: var(--color-background-strong-caution);\n color: var(--color-foreground-medium-caution);\n}\n:host(.tag--intent-positive.tag--contrast-strong) {\n background-color: var(--color-background-strong-positive);\n color: var(--color-foreground-medium-positive);\n}\n\n/* ── Intent × Contrast — bold ───────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-bold) {\n background-color: var(--color-background-bold-neutral);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-brand.tag--contrast-bold) {\n background-color: var(--color-background-bold-brand);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-ai.tag--contrast-bold) {\n background-color: var(--color-background-bold-ai);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-negative.tag--contrast-bold) {\n background-color: var(--color-background-bold-negative);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-warning.tag--contrast-bold) {\n background-color: var(--color-background-bold-warning);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-caution.tag--contrast-bold) {\n background-color: var(--color-background-bold-caution);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-positive.tag--contrast-bold) {\n background-color: var(--color-background-bold-positive);\n color: var(--color-foreground-on-bold-background-primary);\n}\n\n/* ── Intent × Contrast — medium ─────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-medium) {\n background-color: var(--color-background-medium-neutral);\n color: var(--color-foreground-strong-neutral);\n}\n:host(.tag--intent-brand.tag--contrast-medium) {\n background-color: var(--color-background-medium-brand);\n color: var(--color-foreground-on-medium-background-primary);\n}\n:host(.tag--intent-ai.tag--contrast-medium) {\n background-color: var(--color-background-medium-ai);\n color: var(--color-foreground-strong-ai);\n}\n:host(.tag--intent-negative.tag--contrast-medium) {\n background-color: var(--color-background-medium-negative);\n color: var(--color-foreground-strong-negative);\n}\n:host(.tag--intent-warning.tag--contrast-medium) {\n background-color: var(--color-background-medium-warning);\n color: var(--color-foreground-strong-warning);\n}\n:host(.tag--intent-caution.tag--contrast-medium) {\n background-color: var(--color-background-medium-caution);\n color: var(--color-foreground-strong-caution);\n}\n:host(.tag--intent-positive.tag--contrast-medium) {\n background-color: var(--color-background-medium-positive);\n color: var(--color-foreground-strong-positive);\n}\n\n/* ── Intent × Contrast — faint ──────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-faint) {\n background-color: var(--color-background-faint-neutral);\n color: var(--color-foreground-bold-neutral);\n}\n:host(.tag--intent-brand.tag--contrast-faint) {\n background-color: var(--color-background-faint-brand);\n color: var(--color-foreground-bold-brand);\n}\n:host(.tag--intent-ai.tag--contrast-faint) {\n background-color: var(--color-background-faint-ai);\n color: var(--color-foreground-bold-ai);\n}\n:host(.tag--intent-negative.tag--contrast-faint) {\n background-color: var(--color-background-faint-negative);\n color: var(--color-foreground-bold-negative);\n}\n:host(.tag--intent-warning.tag--contrast-faint) {\n background-color: var(--color-background-faint-warning);\n color: var(--color-foreground-bold-warning);\n}\n:host(.tag--intent-caution.tag--contrast-faint) {\n background-color: var(--color-background-faint-caution);\n color: var(--color-foreground-bold-caution);\n}\n:host(.tag--intent-positive.tag--contrast-faint) {\n background-color: var(--color-background-faint-positive);\n color: var(--color-foreground-bold-positive);\n}\n\n/* ── Interactive menu trigger ───────────────────────────────────────────── */\n\n:host(.tag--interactive) {\n padding: 0;\n gap: 0;\n}\n\n.tag__button {\n all: unset;\n position: relative;\n z-index: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 0;\n max-width: 100%;\n height: 100%;\n padding: 0 var(--ds-control-padding-inline);\n gap: var(--ds-control-gap);\n border-radius: inherit;\n color: inherit;\n cursor: default;\n}\n\n.tag__button:disabled {\n cursor: not-allowed;\n}\n\n
|
|
406
|
+
"content": "@import '../../utils/tag-chip.css';\n@import '../../utils/control-density-inset.css';\n\n/* A one-character rounded Tag resolves to a circle at every density. */\n:host {\n min-inline-size: var(--ds-control-height);\n}\n\n/* ── Intent × Contrast — strong ─────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-strong) {\n background-color: var(--color-background-strong-neutral);\n color: var(--color-foreground-medium-neutral);\n}\n:host(.tag--intent-brand.tag--contrast-strong) {\n background-color: var(--color-background-strong-brand);\n color: var(--color-foreground-on-strong-background-primary);\n}\n:host(.tag--intent-ai.tag--contrast-strong) {\n background-color: var(--color-background-strong-ai);\n color: var(--color-foreground-medium-ai);\n}\n:host(.tag--intent-negative.tag--contrast-strong) {\n background-color: var(--color-background-strong-negative);\n color: var(--color-foreground-medium-negative);\n}\n:host(.tag--intent-warning.tag--contrast-strong) {\n background-color: var(--color-background-strong-warning);\n color: var(--color-foreground-medium-warning);\n}\n:host(.tag--intent-caution.tag--contrast-strong) {\n background-color: var(--color-background-strong-caution);\n color: var(--color-foreground-medium-caution);\n}\n:host(.tag--intent-positive.tag--contrast-strong) {\n background-color: var(--color-background-strong-positive);\n color: var(--color-foreground-medium-positive);\n}\n\n/* ── Intent × Contrast — bold ───────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-bold) {\n background-color: var(--color-background-bold-neutral);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-brand.tag--contrast-bold) {\n background-color: var(--color-background-bold-brand);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-ai.tag--contrast-bold) {\n background-color: var(--color-background-bold-ai);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-negative.tag--contrast-bold) {\n background-color: var(--color-background-bold-negative);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-warning.tag--contrast-bold) {\n background-color: var(--color-background-bold-warning);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-caution.tag--contrast-bold) {\n background-color: var(--color-background-bold-caution);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-positive.tag--contrast-bold) {\n background-color: var(--color-background-bold-positive);\n color: var(--color-foreground-on-bold-background-primary);\n}\n\n/* ── Intent × Contrast — medium ─────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-medium) {\n background-color: var(--color-background-medium-neutral);\n color: var(--color-foreground-strong-neutral);\n}\n:host(.tag--intent-brand.tag--contrast-medium) {\n background-color: var(--color-background-medium-brand);\n color: var(--color-foreground-on-medium-background-primary);\n}\n:host(.tag--intent-ai.tag--contrast-medium) {\n background-color: var(--color-background-medium-ai);\n color: var(--color-foreground-strong-ai);\n}\n:host(.tag--intent-negative.tag--contrast-medium) {\n background-color: var(--color-background-medium-negative);\n color: var(--color-foreground-strong-negative);\n}\n:host(.tag--intent-warning.tag--contrast-medium) {\n background-color: var(--color-background-medium-warning);\n color: var(--color-foreground-strong-warning);\n}\n:host(.tag--intent-caution.tag--contrast-medium) {\n background-color: var(--color-background-medium-caution);\n color: var(--color-foreground-strong-caution);\n}\n:host(.tag--intent-positive.tag--contrast-medium) {\n background-color: var(--color-background-medium-positive);\n color: var(--color-foreground-strong-positive);\n}\n\n/* ── Intent × Contrast — faint ──────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-faint) {\n background-color: var(--color-background-faint-neutral);\n color: var(--color-foreground-bold-neutral);\n}\n:host(.tag--intent-brand.tag--contrast-faint) {\n background-color: var(--color-background-faint-brand);\n color: var(--color-foreground-bold-brand);\n}\n:host(.tag--intent-ai.tag--contrast-faint) {\n background-color: var(--color-background-faint-ai);\n color: var(--color-foreground-bold-ai);\n}\n:host(.tag--intent-negative.tag--contrast-faint) {\n background-color: var(--color-background-faint-negative);\n color: var(--color-foreground-bold-negative);\n}\n:host(.tag--intent-warning.tag--contrast-faint) {\n background-color: var(--color-background-faint-warning);\n color: var(--color-foreground-bold-warning);\n}\n:host(.tag--intent-caution.tag--contrast-faint) {\n background-color: var(--color-background-faint-caution);\n color: var(--color-foreground-bold-caution);\n}\n:host(.tag--intent-positive.tag--contrast-faint) {\n background-color: var(--color-background-faint-positive);\n color: var(--color-foreground-bold-positive);\n}\n\n/* ── Interactive menu trigger ───────────────────────────────────────────── */\n\n:host(.tag--interactive) {\n padding: 0;\n gap: 0;\n}\n\n.tag__button {\n all: unset;\n position: relative;\n z-index: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 0;\n max-width: 100%;\n height: 100%;\n padding: 0 var(--ds-control-padding-inline);\n gap: var(--ds-control-gap);\n border-radius: inherit;\n color: inherit;\n cursor: default;\n}\n\n.tag__button:disabled {\n cursor: not-allowed;\n}\n\n/* Hover/press wash stays above the Tag's semantic background. */\n\n/* ── Icons ──────────────────────────────────────────────────────────────── */\n\n.tag__prefix-icon,\n.tag__suffix-icon {\n position: relative;\n z-index: 2;\n display: inline-flex;\n flex-shrink: 0;\n width: var(--ds-control-icon);\n height: var(--ds-control-icon);\n}\n",
|
|
386
407
|
"type": "registry:ui"
|
|
387
408
|
},
|
|
388
409
|
{
|
|
389
410
|
"path": "src/wc/components/Tag/Tag.tsx",
|
|
390
|
-
"content": "import { Component, Event, EventEmitter, Prop, h, Host } from '@stencil/core';\nimport { CONTROL_TEXT_VARIANT, type ControlInsetDepth } from '../../utils';\n\nexport type TagIntent =\n | 'neutral'\n | 'brand'\n | 'ai'\n | 'negative'\n | 'warning'\n | 'caution'\n | 'positive';\nexport type TagContrast = 'strong' | 'bold' | 'medium' | 'faint';\nexport type TagSize = 'md' | 'sm' | 'xs';\n\n/**\n * `ds-icon` size prop matching control-density icon metrics\n * (md→20 / sm→16 / xs→12 via `--dimension-iconography-*`).\n */\nconst ICON_SIZE: Record<TagSize, 'md' | 'sm' | 'xs'> = {\n md: 'md',\n sm: 'sm',\n xs: 'xs',\n};\n\n@Component({\n tag: 'ds-tag',\n styleUrl: 'Tag.css',\n scoped: true,\n})\nexport class Tag {\n @Prop() label!: string;\n /** Canonical icon name rendered before the visible label. */\n @Prop() icon: string = '';\n @Prop() intent: TagIntent = 'neutral';\n @Prop() contrast: TagContrast = 'faint';\n @Prop() size: TagSize = 'md';\n /** Use the reduced outer geometry when nested inside a control of the same size. */\n @Prop() isInset: boolean = false;\n /** Single removes 4px overall; double removes 8px overall (xs stays single). */\n @Prop() insetDepth: ControlInsetDepth = 'single';\n @Prop() rounded: boolean = false;\n @Prop() maxWidth: string | number | undefined;\n /** Render a menu-trigger button with a fixed ChevronUpDown suffix. */\n @Prop() interactive: boolean = false;\n /** Controlled open state for the menu triggered by an interactive Tag. */\n @Prop() expanded: boolean = false;\n /** ID of the menu controlled by an interactive Tag. */\n @Prop() ariaControls: string | undefined;\n /** Disable an interactive Tag and apply the shared inactive treatment. */\n @Prop() isInactive: boolean = false;\n\n /** Fired when the interactive Tag button is activated. */\n @Event() dsClick!: EventEmitter<MouseEvent>;\n\n private handleClick = (event: MouseEvent) => {\n if (!this.interactive || this.isInactive) return;\n this.dsClick.emit(event);\n };\n\n render() {\n const textVariant = CONTROL_TEXT_VARIANT[this.size];\n const iconSize = ICON_SIZE[this.size];\n const doubleInset = this.isInset && this.insetDepth === 'double' && this.size !== 'xs';\n\n const maxWidthStyle =\n this.maxWidth != null\n ? { maxWidth: typeof this.maxWidth === 'number' ? `${this.maxWidth}px` : this.maxWidth }\n : undefined;\n const hostClass = {\n tag: true,\n [`tag--intent-${this.intent}`]: true,\n [`tag--contrast-${this.contrast}`]: true,\n [`tag--size-${this.size}`]: true,\n 'ds-control--md': this.size === 'md',\n 'ds-control--sm': this.size === 'sm',\n 'ds-control--xs': this.size === 'xs',\n 'ds-control--inset': this.isInset && !doubleInset,\n 'ds-control--inset-double': doubleInset,\n 'tag--rounded': this.rounded,\n 'tag--interactive': this.interactive,\n 'ds-control-inactive': this.interactive && this.isInactive,\n };\n const content = [\n this.icon && (\n <ds-icon\n class=\"tag__prefix-icon\"\n name={this.icon}\n size={iconSize}\n color=\"inherit\"\n ></ds-icon>\n ),\n <ds-text class=\"tag__label\" as=\"span\" variant={textVariant} color=\"inherit\">\n {this.label}\n </ds-text>,\n ];\n\n if (!this.interactive) {\n return (\n <Host class={hostClass} style={maxWidthStyle}>\n {content}\n </Host>\n );\n }\n\n return (\n <Host class={hostClass} style={maxWidthStyle}>\n <button\n type=\"button\"\n class={{\n tag__button: true,\n 'tag__button--expanded': this.expanded,\n 'ds-interaction-fill': true,\n 'ds-focus-ring-inset': true,\n }}\n aria-haspopup=\"menu\"\n aria-expanded={this.expanded ? 'true' : 'false'}\n aria-controls={this.ariaControls}\n disabled={this.isInactive || undefined}\n onClick={this.handleClick}\n >\n {content}\n <ds-icon\n class=\"tag__suffix-icon\"\n name=\"ChevronUpDown\"\n size={iconSize}\n color=\"inherit\"\n ></ds-icon>\n </button>\n </Host>\n );\n }\n}\n",
|
|
411
|
+
"content": "import { Component, Event, EventEmitter, Prop, h, Host } from '@stencil/core';\nimport { CONTROL_TEXT_VARIANT, type ControlInsetDepth } from '../../utils';\n\nexport type TagIntent =\n | 'neutral'\n | 'brand'\n | 'ai'\n | 'negative'\n | 'warning'\n | 'caution'\n | 'positive';\nexport type TagContrast = 'strong' | 'bold' | 'medium' | 'faint';\nexport type TagSize = 'md' | 'sm' | 'xs';\n\n/**\n * `ds-icon` size prop matching control-density icon metrics\n * (md→20 / sm→16 / xs→12 via `--dimension-iconography-*`).\n */\nconst ICON_SIZE: Record<TagSize, 'md' | 'sm' | 'xs'> = {\n md: 'md',\n sm: 'sm',\n xs: 'xs',\n};\n\n@Component({\n tag: 'ds-tag',\n styleUrl: 'Tag.css',\n scoped: true,\n})\nexport class Tag {\n @Prop() label!: string;\n /** Canonical icon name rendered before the visible label. */\n @Prop() icon: string = '';\n @Prop() intent: TagIntent = 'neutral';\n @Prop() contrast: TagContrast = 'faint';\n @Prop() size: TagSize = 'md';\n /** Use the reduced outer geometry when nested inside a control of the same size. */\n @Prop() isInset: boolean = false;\n /** Single removes 4px overall; double removes 8px overall (xs stays single). */\n @Prop() insetDepth: ControlInsetDepth = 'single';\n @Prop() rounded: boolean = false;\n @Prop() maxWidth: string | number | undefined;\n /** Render a menu-trigger button with a fixed ChevronUpDown suffix. */\n @Prop() interactive: boolean = false;\n /** Controlled open state for the menu triggered by an interactive Tag. */\n @Prop() expanded: boolean = false;\n /** Associated menu remains visible, including exit motion. Omission preserves\n * the deprecated expanded-derived wash; explicit false suppresses it. */\n @Prop() surfaceOpen: boolean | undefined;\n /** ID of the menu controlled by an interactive Tag. */\n @Prop() ariaControls: string | undefined;\n /** Disable an interactive Tag and apply the shared inactive treatment. */\n @Prop() isInactive: boolean = false;\n\n /** Fired when the interactive Tag button is activated. */\n @Event() dsClick!: EventEmitter<MouseEvent>;\n\n private handleClick = (event: MouseEvent) => {\n if (!this.interactive || this.isInactive) return;\n this.dsClick.emit(event);\n };\n\n render() {\n const textVariant = CONTROL_TEXT_VARIANT[this.size];\n const iconSize = ICON_SIZE[this.size];\n const doubleInset = this.isInset && this.insetDepth === 'double' && this.size !== 'xs';\n\n const maxWidthStyle =\n this.maxWidth != null\n ? { maxWidth: typeof this.maxWidth === 'number' ? `${this.maxWidth}px` : this.maxWidth }\n : undefined;\n const hostClass = {\n tag: true,\n [`tag--intent-${this.intent}`]: true,\n [`tag--contrast-${this.contrast}`]: true,\n [`tag--size-${this.size}`]: true,\n 'ds-control--md': this.size === 'md',\n 'ds-control--sm': this.size === 'sm',\n 'ds-control--xs': this.size === 'xs',\n 'ds-control--inset': this.isInset && !doubleInset,\n 'ds-control--inset-double': doubleInset,\n 'tag--rounded': this.rounded,\n 'tag--interactive': this.interactive,\n 'ds-control-inactive': this.interactive && this.isInactive,\n };\n const content = [\n this.icon && (\n <ds-icon\n class=\"tag__prefix-icon\"\n name={this.icon}\n size={iconSize}\n color=\"inherit\"\n ></ds-icon>\n ),\n <ds-text class=\"tag__label\" as=\"span\" variant={textVariant} color=\"inherit\">\n {this.label}\n </ds-text>,\n ];\n\n if (!this.interactive) {\n return (\n <Host class={hostClass} style={maxWidthStyle}>\n {content}\n </Host>\n );\n }\n\n return (\n <Host class={hostClass} style={maxWidthStyle}>\n <button\n type=\"button\"\n class={{\n tag__button: true,\n 'tag__button--expanded': this.expanded,\n 'ds-interaction-fill--surface-open':\n (this.surfaceOpen ?? this.expanded) && !this.isInactive,\n 'ds-interaction-fill': true,\n 'ds-focus-ring-inset': true,\n }}\n aria-haspopup=\"menu\"\n aria-expanded={this.expanded ? 'true' : 'false'}\n aria-controls={this.ariaControls}\n disabled={this.isInactive || undefined}\n onClick={this.handleClick}\n >\n {content}\n <ds-icon\n class=\"tag__suffix-icon\"\n name=\"ChevronUpDown\"\n size={iconSize}\n color=\"inherit\"\n ></ds-icon>\n </button>\n </Host>\n );\n }\n}\n",
|
|
391
412
|
"type": "registry:ui"
|
|
392
413
|
}
|
|
393
414
|
]
|
package/dist/styles/table.css
CHANGED
|
@@ -1206,6 +1206,7 @@
|
|
|
1206
1206
|
|
|
1207
1207
|
:where(.ds-table__row > .ds-table__cell.ds-interaction-fill) {
|
|
1208
1208
|
--ds-interaction-active: var(--_table-row-selected);
|
|
1209
|
+
--ds-interaction-pressed: var(--_table-row-pressed);
|
|
1209
1210
|
--ds-interaction-group-fill: transparent;
|
|
1210
1211
|
}
|
|
1211
1212
|
|
|
@@ -52,6 +52,8 @@ export declare class BarTitle {
|
|
|
52
52
|
dsAction: EventEmitter<string>;
|
|
53
53
|
private sectionMenuOpen;
|
|
54
54
|
private openActionMenuId;
|
|
55
|
+
private surfaceActionMenuId;
|
|
56
|
+
private sectionSurfaceOpen;
|
|
55
57
|
private sectionMenuInitialFocusVisible;
|
|
56
58
|
private actionMenuInitialFocusVisible;
|
|
57
59
|
private readonly instanceId;
|
|
@@ -92,6 +94,7 @@ export declare class BarTitle {
|
|
|
92
94
|
private closeSectionMenu;
|
|
93
95
|
private handleSectionSelect;
|
|
94
96
|
private toggleActionMenu;
|
|
97
|
+
private finishActionMenuClose;
|
|
95
98
|
private closeActionMenu;
|
|
96
99
|
private handleActionSelect;
|
|
97
100
|
private renderSectionSelector;
|
|
@@ -62,11 +62,18 @@ export declare class ButtonFilled {
|
|
|
62
62
|
/** ID of the popup this button controls. */
|
|
63
63
|
controls: string | undefined;
|
|
64
64
|
/**
|
|
65
|
-
* Controlled
|
|
66
|
-
*
|
|
67
|
-
*
|
|
65
|
+
* Controlled disclosure state forwarded to aria-expanded.
|
|
66
|
+
* Using expanded alone for surface-open styling is deprecated; set surfaceOpen
|
|
67
|
+
* explicitly to separate the rendered surface lifecycle from disclosure state.
|
|
68
68
|
*/
|
|
69
69
|
expanded: boolean | undefined;
|
|
70
|
+
/**
|
|
71
|
+
* The associated menu, picker, or panel is visible, including its exit motion.
|
|
72
|
+
* Holds only the pressed wash; does not set ARIA, selection, or press scaling.
|
|
73
|
+
* In split mode this applies only to the menu segment. Explicit false disables
|
|
74
|
+
* the legacy expanded-derived wash; omission preserves that compatibility path.
|
|
75
|
+
*/
|
|
76
|
+
surfaceOpen: boolean | undefined;
|
|
70
77
|
/** Popup type exposed to assistive technology. */
|
|
71
78
|
haspopup: ButtonFilledPopup | undefined;
|
|
72
79
|
/**
|
|
@@ -95,6 +102,7 @@ export declare class ButtonFilled {
|
|
|
95
102
|
private handleClick;
|
|
96
103
|
private handleMenuClick;
|
|
97
104
|
private get resolvedHaspopup();
|
|
105
|
+
private get resolvedSurfaceOpen();
|
|
98
106
|
private get accessibleName();
|
|
99
107
|
private get doubleInset();
|
|
100
108
|
private buttonClass;
|
|
@@ -61,11 +61,18 @@ export declare class ButtonUnfilled {
|
|
|
61
61
|
ariaLabel: string | null;
|
|
62
62
|
controls: string | undefined;
|
|
63
63
|
/**
|
|
64
|
-
* Controlled disclosure
|
|
65
|
-
*
|
|
66
|
-
*
|
|
64
|
+
* Controlled disclosure state forwarded to aria-expanded.
|
|
65
|
+
* Using expanded alone for surface-open styling is deprecated; set surfaceOpen
|
|
66
|
+
* explicitly to separate the rendered surface lifecycle from disclosure state.
|
|
67
67
|
*/
|
|
68
68
|
expanded: boolean | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* The associated menu, picker, or panel is visible, including its exit motion.
|
|
71
|
+
* Holds only the pressed wash; does not set ARIA, selection, or press scaling.
|
|
72
|
+
* In split mode this applies only to the menu segment. Explicit false disables
|
|
73
|
+
* the legacy expanded-derived wash; omission preserves that compatibility path.
|
|
74
|
+
*/
|
|
75
|
+
surfaceOpen: boolean | undefined;
|
|
69
76
|
haspopup: ButtonUnfilledPopup | undefined;
|
|
70
77
|
/**
|
|
71
78
|
* Append a separate ChevronDown menu segment while preserving this button's
|
|
@@ -126,8 +133,7 @@ export declare class ButtonUnfilled {
|
|
|
126
133
|
private disconnectCaptionCompactObserver;
|
|
127
134
|
private get resolvedHaspopup();
|
|
128
135
|
private get doubleInset();
|
|
129
|
-
|
|
130
|
-
private get expandedPopup();
|
|
136
|
+
private get resolvedSurfaceOpen();
|
|
131
137
|
private get visuallyActive();
|
|
132
138
|
/** Knock-out ring: selected fill → active wash; otherwise surface token. */
|
|
133
139
|
private get dotRing();
|
|
@@ -15,6 +15,7 @@ export declare class MobileSectionSwitcher {
|
|
|
15
15
|
/** Selection intent. The route, tool, or workflow owner updates `value`. */
|
|
16
16
|
dsChange: EventEmitter<string>;
|
|
17
17
|
private menuOpen;
|
|
18
|
+
private menuSurfaceOpen;
|
|
18
19
|
private initialFocusVisible;
|
|
19
20
|
private sheetClosing;
|
|
20
21
|
private focusedSection;
|
|
@@ -28,6 +29,7 @@ export declare class MobileSectionSwitcher {
|
|
|
28
29
|
componentDidLoad(): void;
|
|
29
30
|
componentDidRender(): void;
|
|
30
31
|
disconnectedCallback(): void;
|
|
32
|
+
handlePresentationChange(): void;
|
|
31
33
|
handleContextChange(): void;
|
|
32
34
|
private finishSheetClose;
|
|
33
35
|
private focusSheetItem;
|
|
@@ -40,8 +40,11 @@ export declare class PanelNav {
|
|
|
40
40
|
dashboardLabel: string;
|
|
41
41
|
settingsLabel: string;
|
|
42
42
|
accountLabel: string;
|
|
43
|
-
/**
|
|
43
|
+
/** Account disclosure state. Expanded-derived styling is deprecated; use accountMenuSurfaceOpen for the rendered lifetime. */
|
|
44
44
|
accountMenuExpanded: boolean;
|
|
45
|
+
/** External account surface is visible, including exit motion. Omission
|
|
46
|
+
* preserves the deprecated accountMenuExpanded-derived wash. */
|
|
47
|
+
accountMenuSurfaceOpen: boolean | undefined;
|
|
45
48
|
dashboardNavigationLabel: string;
|
|
46
49
|
settingsNavigationLabel: string;
|
|
47
50
|
expandNavigationLabel: string;
|
|
@@ -20,6 +20,8 @@ export declare class PanelToolHeader {
|
|
|
20
20
|
menuControls: string | undefined;
|
|
21
21
|
/** Whether the controlled menu is open. */
|
|
22
22
|
menuExpanded: boolean;
|
|
23
|
+
/** Associated menu surface is visible, including exit motion. */
|
|
24
|
+
menuSurfaceOpen: boolean | undefined;
|
|
23
25
|
/** Trailing application-owned icon actions. When present, these replace the legacy menu action. */
|
|
24
26
|
actions: PanelToolsHeaderAction[];
|
|
25
27
|
dsBack: EventEmitter<MouseEvent>;
|
|
@@ -21,6 +21,8 @@ export declare class PanelToolSearch {
|
|
|
21
21
|
filterControls: string | undefined;
|
|
22
22
|
/** Whether the controlled filter menu is open. */
|
|
23
23
|
filterExpanded: boolean;
|
|
24
|
+
/** Associated filter surface is visible, including exit motion. */
|
|
25
|
+
filterSurfaceOpen: boolean | undefined;
|
|
24
26
|
/** Promote the trigger foreground when one or more filters are applied. */
|
|
25
27
|
filterActive: boolean;
|
|
26
28
|
dsChange: EventEmitter<string>;
|
|
@@ -113,6 +113,8 @@ export interface PanelToolsHeaderAction {
|
|
|
113
113
|
triggerId?: string;
|
|
114
114
|
controls?: string;
|
|
115
115
|
expanded?: boolean;
|
|
116
|
+
/** Associated surface remains visible, including exit motion. */
|
|
117
|
+
surfaceOpen?: boolean;
|
|
116
118
|
haspopup?: 'menu' | 'dialog' | 'listbox' | 'tree' | 'grid';
|
|
117
119
|
pressed?: boolean;
|
|
118
120
|
isInactive?: boolean;
|
|
@@ -91,6 +91,7 @@ export declare class ShellApp {
|
|
|
91
91
|
private managedInboxTool;
|
|
92
92
|
private managedBrowseContext;
|
|
93
93
|
private mobileActionMenuOpen;
|
|
94
|
+
private mobileActionSurfaceOpen;
|
|
94
95
|
private mobileActionMenuInitialFocusVisible;
|
|
95
96
|
private readonly instanceId;
|
|
96
97
|
private readonly mobileActionMenuTriggerId;
|
|
@@ -32,6 +32,8 @@ export interface ShellNavigationConfig {
|
|
|
32
32
|
userName?: string;
|
|
33
33
|
userInitial?: string;
|
|
34
34
|
accountMenuExpanded?: boolean;
|
|
35
|
+
/** Associated account surface remains visible, including exit motion. */
|
|
36
|
+
accountMenuSurfaceOpen?: boolean;
|
|
35
37
|
dashboardLabel?: string;
|
|
36
38
|
settingsLabel?: string;
|
|
37
39
|
accountLabel?: string;
|
|
@@ -61,6 +61,13 @@ export declare class Table {
|
|
|
61
61
|
selectionMode: TableSelectionMode;
|
|
62
62
|
/** Controlled selected row identities. IDs outside the loaded rows are preserved. */
|
|
63
63
|
selectedRowIds: string[];
|
|
64
|
+
/**
|
|
65
|
+
* Identity of the interactive row whose associated surface is visible.
|
|
66
|
+
* Holds its pressed wash independently of checkbox selection. Keep the ID
|
|
67
|
+
* through exit motion and clear it after close; the application owns toggling
|
|
68
|
+
* and switching the surface. Off-window identities survive virtualization.
|
|
69
|
+
*/
|
|
70
|
+
surfaceOpenRowId: string | undefined;
|
|
64
71
|
/** Initial loading state. Existing rows stay visible; incremental loading uses loadingMore. */
|
|
65
72
|
loading: boolean;
|
|
66
73
|
/** Replace opted-in table-owned caption controls with same-size visual skeletons. */
|
|
@@ -132,11 +139,14 @@ export declare class Table {
|
|
|
132
139
|
private fitPageSize;
|
|
133
140
|
private actionMenu;
|
|
134
141
|
private actionMenuInitialFocusVisible;
|
|
142
|
+
private actionMenuSurface;
|
|
135
143
|
private truncateTooltipLabel;
|
|
136
144
|
private captionCompact;
|
|
137
145
|
private columnCustomizerOpen;
|
|
146
|
+
private columnCustomizerSurfaceOpen;
|
|
138
147
|
private columnCustomizerInitialFocusVisible;
|
|
139
148
|
private dataModeSwitcherOpen;
|
|
149
|
+
private dataModeSwitcherSurfaceOpen;
|
|
140
150
|
private dataModeSwitcherInitialFocusVisible;
|
|
141
151
|
private virtualWindow;
|
|
142
152
|
private readonly actionMenuElementId;
|
|
@@ -11,8 +11,13 @@ export interface TableRowViewOptions {
|
|
|
11
11
|
rowId: string;
|
|
12
12
|
columnId: string;
|
|
13
13
|
} | null;
|
|
14
|
+
actionMenuSurface?: {
|
|
15
|
+
rowId: string;
|
|
16
|
+
columnId: string;
|
|
17
|
+
} | null;
|
|
14
18
|
highlightMatcher: TableHighlightMatcher;
|
|
15
19
|
highlightFieldIds: string[];
|
|
20
|
+
surfaceOpenRowId?: string;
|
|
16
21
|
ariaRowIndex?: number;
|
|
17
22
|
variableVirtualSize?: boolean;
|
|
18
23
|
intrinsicBlockSize?: number;
|
|
@@ -26,5 +31,5 @@ export interface TableRowViewOptions {
|
|
|
26
31
|
onActionMenuToggle: (row: TableRow, column: TableColumn, event: MouseEvent) => void;
|
|
27
32
|
}
|
|
28
33
|
/** Render one semantic body row and the complete declarative table-cell vocabulary. */
|
|
29
|
-
export declare function renderTableRow({ row, model, visibleColumns, emptyCellLabel, actionMenuElementId, actionMenu, highlightMatcher, highlightFieldIds, ariaRowIndex, variableVirtualSize, intrinsicBlockSize, rowKey, renderSelectionControl, renderStickyEdge, onRowActivate, onRowKeyDown, onRowSelection, onCellAction, onActionMenuToggle, }: TableRowViewOptions): any;
|
|
34
|
+
export declare function renderTableRow({ row, model, visibleColumns, emptyCellLabel, actionMenuElementId, actionMenu, actionMenuSurface, highlightMatcher, highlightFieldIds, surfaceOpenRowId, ariaRowIndex, variableVirtualSize, intrinsicBlockSize, rowKey, renderSelectionControl, renderStickyEdge, onRowActivate, onRowKeyDown, onRowSelection, onCellAction, onActionMenuToggle, }: TableRowViewOptions): any;
|
|
30
35
|
//# sourceMappingURL=table-row-view.d.ts.map
|
|
@@ -20,6 +20,9 @@ export declare class Tag {
|
|
|
20
20
|
interactive: boolean;
|
|
21
21
|
/** Controlled open state for the menu triggered by an interactive Tag. */
|
|
22
22
|
expanded: boolean;
|
|
23
|
+
/** Associated menu remains visible, including exit motion. Omission preserves
|
|
24
|
+
* the deprecated expanded-derived wash; explicit false suppresses it. */
|
|
25
|
+
surfaceOpen: boolean | undefined;
|
|
23
26
|
/** ID of the menu controlled by an interactive Tag. */
|
|
24
27
|
ariaControls: string | undefined;
|
|
25
28
|
/** Disable an interactive Tag and apply the shared inactive treatment. */
|
|
@@ -599,7 +599,7 @@ export namespace Components {
|
|
|
599
599
|
*/
|
|
600
600
|
"controls": string | undefined;
|
|
601
601
|
/**
|
|
602
|
-
* Controlled
|
|
602
|
+
* Controlled disclosure state forwarded to aria-expanded. Using expanded alone for surface-open styling is deprecated; set surfaceOpen explicitly to separate the rendered surface lifecycle from disclosure state.
|
|
603
603
|
*/
|
|
604
604
|
"expanded": boolean | undefined;
|
|
605
605
|
/**
|
|
@@ -682,6 +682,10 @@ export namespace Components {
|
|
|
682
682
|
* @default false
|
|
683
683
|
*/
|
|
684
684
|
"split": boolean;
|
|
685
|
+
/**
|
|
686
|
+
* The associated menu, picker, or panel is visible, including its exit motion. Holds only the pressed wash; does not set ARIA, selection, or press scaling. In split mode this applies only to the menu segment. Explicit false disables the legacy expanded-derived wash; omission preserves that compatibility path.
|
|
687
|
+
*/
|
|
688
|
+
"surfaceOpen": boolean | undefined;
|
|
685
689
|
/**
|
|
686
690
|
* Native button type.
|
|
687
691
|
* @default 'button'
|
|
@@ -725,7 +729,7 @@ export namespace Components {
|
|
|
725
729
|
*/
|
|
726
730
|
"dot": boolean;
|
|
727
731
|
/**
|
|
728
|
-
* Controlled disclosure
|
|
732
|
+
* Controlled disclosure state forwarded to aria-expanded. Using expanded alone for surface-open styling is deprecated; set surfaceOpen explicitly to separate the rendered surface lifecycle from disclosure state.
|
|
729
733
|
*/
|
|
730
734
|
"expanded": boolean | undefined;
|
|
731
735
|
/**
|
|
@@ -813,6 +817,10 @@ export namespace Components {
|
|
|
813
817
|
* @default false
|
|
814
818
|
*/
|
|
815
819
|
"split": boolean;
|
|
820
|
+
/**
|
|
821
|
+
* The associated menu, picker, or panel is visible, including its exit motion. Holds only the pressed wash; does not set ARIA, selection, or press scaling. In split mode this applies only to the menu segment. Explicit false disables the legacy expanded-derived wash; omission preserves that compatibility path.
|
|
822
|
+
*/
|
|
823
|
+
"surfaceOpen": boolean | undefined;
|
|
816
824
|
/**
|
|
817
825
|
* Native button type.
|
|
818
826
|
* @default 'button'
|
|
@@ -2151,10 +2159,14 @@ export namespace Components {
|
|
|
2151
2159
|
*/
|
|
2152
2160
|
"accountLabel": string;
|
|
2153
2161
|
/**
|
|
2154
|
-
*
|
|
2162
|
+
* Account disclosure state. Expanded-derived styling is deprecated; use accountMenuSurfaceOpen for the rendered lifetime.
|
|
2155
2163
|
* @default false
|
|
2156
2164
|
*/
|
|
2157
2165
|
"accountMenuExpanded": boolean;
|
|
2166
|
+
/**
|
|
2167
|
+
* External account surface is visible, including exit motion. Omission preserves the deprecated accountMenuExpanded-derived wash.
|
|
2168
|
+
*/
|
|
2169
|
+
"accountMenuSurfaceOpen": boolean | undefined;
|
|
2158
2170
|
/**
|
|
2159
2171
|
* ID of the active child route when URL matching is unavailable.
|
|
2160
2172
|
* @default ''
|
|
@@ -2311,6 +2323,10 @@ export namespace Components {
|
|
|
2311
2323
|
* @default false
|
|
2312
2324
|
*/
|
|
2313
2325
|
"menuExpanded": boolean;
|
|
2326
|
+
/**
|
|
2327
|
+
* Associated menu surface is visible, including exit motion.
|
|
2328
|
+
*/
|
|
2329
|
+
"menuSurfaceOpen": boolean | undefined;
|
|
2314
2330
|
/**
|
|
2315
2331
|
* Stable id placed on the menu trigger host for ds-menu anchoring.
|
|
2316
2332
|
* @default ''
|
|
@@ -2356,6 +2372,10 @@ export namespace Components {
|
|
|
2356
2372
|
* @default false
|
|
2357
2373
|
*/
|
|
2358
2374
|
"filterExpanded": boolean;
|
|
2375
|
+
/**
|
|
2376
|
+
* Associated filter surface is visible, including exit motion.
|
|
2377
|
+
*/
|
|
2378
|
+
"filterSurfaceOpen": boolean | undefined;
|
|
2359
2379
|
/**
|
|
2360
2380
|
* Stable id placed on the filter trigger for ds-menu anchoring.
|
|
2361
2381
|
* @default ''
|
|
@@ -3446,6 +3466,10 @@ export namespace Components {
|
|
|
3446
3466
|
* @default false
|
|
3447
3467
|
*/
|
|
3448
3468
|
"stickyHeader": boolean;
|
|
3469
|
+
/**
|
|
3470
|
+
* Identity of the interactive row whose associated surface is visible. Holds its pressed wash independently of checkbox selection. Keep the ID through exit motion and clear it after close; the application owns toggling and switching the surface. Off-window identities survive virtualization.
|
|
3471
|
+
*/
|
|
3472
|
+
"surfaceOpenRowId": string | undefined;
|
|
3449
3473
|
"totalCount": number | undefined;
|
|
3450
3474
|
/**
|
|
3451
3475
|
* Reserved space below a viewport-fitted table.
|
|
@@ -3713,6 +3737,10 @@ export namespace Components {
|
|
|
3713
3737
|
* @default 'md'
|
|
3714
3738
|
*/
|
|
3715
3739
|
"size": TagSize;
|
|
3740
|
+
/**
|
|
3741
|
+
* Associated menu remains visible, including exit motion. Omission preserves the deprecated expanded-derived wash; explicit false suppresses it.
|
|
3742
|
+
*/
|
|
3743
|
+
"surfaceOpen": boolean | undefined;
|
|
3716
3744
|
}
|
|
3717
3745
|
interface DsText {
|
|
3718
3746
|
"align": TextAlign | undefined;
|
|
@@ -6083,7 +6111,7 @@ declare namespace LocalJSX {
|
|
|
6083
6111
|
*/
|
|
6084
6112
|
"controls"?: string | undefined;
|
|
6085
6113
|
/**
|
|
6086
|
-
* Controlled
|
|
6114
|
+
* Controlled disclosure state forwarded to aria-expanded. Using expanded alone for surface-open styling is deprecated; set surfaceOpen explicitly to separate the rendered surface lifecycle from disclosure state.
|
|
6087
6115
|
*/
|
|
6088
6116
|
"expanded"?: boolean | undefined;
|
|
6089
6117
|
/**
|
|
@@ -6167,6 +6195,10 @@ declare namespace LocalJSX {
|
|
|
6167
6195
|
* @default false
|
|
6168
6196
|
*/
|
|
6169
6197
|
"split"?: boolean;
|
|
6198
|
+
/**
|
|
6199
|
+
* The associated menu, picker, or panel is visible, including its exit motion. Holds only the pressed wash; does not set ARIA, selection, or press scaling. In split mode this applies only to the menu segment. Explicit false disables the legacy expanded-derived wash; omission preserves that compatibility path.
|
|
6200
|
+
*/
|
|
6201
|
+
"surfaceOpen"?: boolean | undefined;
|
|
6170
6202
|
/**
|
|
6171
6203
|
* Native button type.
|
|
6172
6204
|
* @default 'button'
|
|
@@ -6210,7 +6242,7 @@ declare namespace LocalJSX {
|
|
|
6210
6242
|
*/
|
|
6211
6243
|
"dot"?: boolean;
|
|
6212
6244
|
/**
|
|
6213
|
-
* Controlled disclosure
|
|
6245
|
+
* Controlled disclosure state forwarded to aria-expanded. Using expanded alone for surface-open styling is deprecated; set surfaceOpen explicitly to separate the rendered surface lifecycle from disclosure state.
|
|
6214
6246
|
*/
|
|
6215
6247
|
"expanded"?: boolean | undefined;
|
|
6216
6248
|
/**
|
|
@@ -6300,6 +6332,10 @@ declare namespace LocalJSX {
|
|
|
6300
6332
|
* @default false
|
|
6301
6333
|
*/
|
|
6302
6334
|
"split"?: boolean;
|
|
6335
|
+
/**
|
|
6336
|
+
* The associated menu, picker, or panel is visible, including its exit motion. Holds only the pressed wash; does not set ARIA, selection, or press scaling. In split mode this applies only to the menu segment. Explicit false disables the legacy expanded-derived wash; omission preserves that compatibility path.
|
|
6337
|
+
*/
|
|
6338
|
+
"surfaceOpen"?: boolean | undefined;
|
|
6303
6339
|
/**
|
|
6304
6340
|
* Native button type.
|
|
6305
6341
|
* @default 'button'
|
|
@@ -7760,10 +7796,14 @@ declare namespace LocalJSX {
|
|
|
7760
7796
|
*/
|
|
7761
7797
|
"accountLabel"?: string;
|
|
7762
7798
|
/**
|
|
7763
|
-
*
|
|
7799
|
+
* Account disclosure state. Expanded-derived styling is deprecated; use accountMenuSurfaceOpen for the rendered lifetime.
|
|
7764
7800
|
* @default false
|
|
7765
7801
|
*/
|
|
7766
7802
|
"accountMenuExpanded"?: boolean;
|
|
7803
|
+
/**
|
|
7804
|
+
* External account surface is visible, including exit motion. Omission preserves the deprecated accountMenuExpanded-derived wash.
|
|
7805
|
+
*/
|
|
7806
|
+
"accountMenuSurfaceOpen"?: boolean | undefined;
|
|
7767
7807
|
/**
|
|
7768
7808
|
* ID of the active child route when URL matching is unavailable.
|
|
7769
7809
|
* @default ''
|
|
@@ -7941,6 +7981,10 @@ declare namespace LocalJSX {
|
|
|
7941
7981
|
* @default false
|
|
7942
7982
|
*/
|
|
7943
7983
|
"menuExpanded"?: boolean;
|
|
7984
|
+
/**
|
|
7985
|
+
* Associated menu surface is visible, including exit motion.
|
|
7986
|
+
*/
|
|
7987
|
+
"menuSurfaceOpen"?: boolean | undefined;
|
|
7944
7988
|
/**
|
|
7945
7989
|
* Stable id placed on the menu trigger host for ds-menu anchoring.
|
|
7946
7990
|
* @default ''
|
|
@@ -7989,6 +8033,10 @@ declare namespace LocalJSX {
|
|
|
7989
8033
|
* @default false
|
|
7990
8034
|
*/
|
|
7991
8035
|
"filterExpanded"?: boolean;
|
|
8036
|
+
/**
|
|
8037
|
+
* Associated filter surface is visible, including exit motion.
|
|
8038
|
+
*/
|
|
8039
|
+
"filterSurfaceOpen"?: boolean | undefined;
|
|
7992
8040
|
/**
|
|
7993
8041
|
* Stable id placed on the filter trigger for ds-menu anchoring.
|
|
7994
8042
|
* @default ''
|
|
@@ -9194,6 +9242,10 @@ declare namespace LocalJSX {
|
|
|
9194
9242
|
* @default false
|
|
9195
9243
|
*/
|
|
9196
9244
|
"stickyHeader"?: boolean;
|
|
9245
|
+
/**
|
|
9246
|
+
* Identity of the interactive row whose associated surface is visible. Holds its pressed wash independently of checkbox selection. Keep the ID through exit motion and clear it after close; the application owns toggling and switching the surface. Off-window identities survive virtualization.
|
|
9247
|
+
*/
|
|
9248
|
+
"surfaceOpenRowId"?: string | undefined;
|
|
9197
9249
|
"totalCount"?: number | undefined;
|
|
9198
9250
|
/**
|
|
9199
9251
|
* Reserved space below a viewport-fitted table.
|
|
@@ -9531,6 +9583,10 @@ declare namespace LocalJSX {
|
|
|
9531
9583
|
* @default 'md'
|
|
9532
9584
|
*/
|
|
9533
9585
|
"size"?: TagSize;
|
|
9586
|
+
/**
|
|
9587
|
+
* Associated menu remains visible, including exit motion. Omission preserves the deprecated expanded-derived wash; explicit false suppresses it.
|
|
9588
|
+
*/
|
|
9589
|
+
"surfaceOpen"?: boolean | undefined;
|
|
9534
9590
|
}
|
|
9535
9591
|
interface DsText {
|
|
9536
9592
|
"align"?: TextAlign | undefined;
|
|
@@ -9958,6 +10014,7 @@ declare namespace LocalJSX {
|
|
|
9958
10014
|
"ariaLabel": string | null;
|
|
9959
10015
|
"controls": string | undefined;
|
|
9960
10016
|
"expanded": boolean | undefined;
|
|
10017
|
+
"surfaceOpen": boolean | undefined;
|
|
9961
10018
|
"haspopup": ButtonFilledPopup | undefined;
|
|
9962
10019
|
"split": boolean;
|
|
9963
10020
|
"menuAriaLabel": string;
|
|
@@ -9985,6 +10042,7 @@ declare namespace LocalJSX {
|
|
|
9985
10042
|
"ariaLabel": string | null;
|
|
9986
10043
|
"controls": string | undefined;
|
|
9987
10044
|
"expanded": boolean | undefined;
|
|
10045
|
+
"surfaceOpen": boolean | undefined;
|
|
9988
10046
|
"haspopup": ButtonUnfilledPopup | undefined;
|
|
9989
10047
|
"split": boolean;
|
|
9990
10048
|
"menuAriaLabel": string;
|
|
@@ -10340,6 +10398,7 @@ declare namespace LocalJSX {
|
|
|
10340
10398
|
"settingsLabel": string;
|
|
10341
10399
|
"accountLabel": string;
|
|
10342
10400
|
"accountMenuExpanded": boolean;
|
|
10401
|
+
"accountMenuSurfaceOpen": boolean | undefined;
|
|
10343
10402
|
"dashboardNavigationLabel": string;
|
|
10344
10403
|
"settingsNavigationLabel": string;
|
|
10345
10404
|
"expandNavigationLabel": string;
|
|
@@ -10362,6 +10421,7 @@ declare namespace LocalJSX {
|
|
|
10362
10421
|
"menuTriggerId": string;
|
|
10363
10422
|
"menuControls": string | undefined;
|
|
10364
10423
|
"menuExpanded": boolean;
|
|
10424
|
+
"menuSurfaceOpen": boolean | undefined;
|
|
10365
10425
|
}
|
|
10366
10426
|
interface DsPanelToolSearchAttributes {
|
|
10367
10427
|
"value": string;
|
|
@@ -10374,6 +10434,7 @@ declare namespace LocalJSX {
|
|
|
10374
10434
|
"filterTriggerId": string;
|
|
10375
10435
|
"filterControls": string | undefined;
|
|
10376
10436
|
"filterExpanded": boolean;
|
|
10437
|
+
"filterSurfaceOpen": boolean | undefined;
|
|
10377
10438
|
"filterActive": boolean;
|
|
10378
10439
|
}
|
|
10379
10440
|
interface DsPanelToolsAttributes {
|
|
@@ -10560,6 +10621,7 @@ declare namespace LocalJSX {
|
|
|
10560
10621
|
"viewportInsetBlockEnd": string;
|
|
10561
10622
|
"scrollLabel": string | undefined;
|
|
10562
10623
|
"selectionMode": TableSelectionMode;
|
|
10624
|
+
"surfaceOpenRowId": string | undefined;
|
|
10563
10625
|
"loading": boolean;
|
|
10564
10626
|
"chromeLoading": boolean;
|
|
10565
10627
|
"skeletonRows": number;
|
|
@@ -10646,6 +10708,7 @@ declare namespace LocalJSX {
|
|
|
10646
10708
|
"maxWidth": string;
|
|
10647
10709
|
"interactive": boolean;
|
|
10648
10710
|
"expanded": boolean;
|
|
10711
|
+
"surfaceOpen": boolean | undefined;
|
|
10649
10712
|
"ariaControls": string | undefined;
|
|
10650
10713
|
"isInactive": boolean;
|
|
10651
10714
|
}
|
|
@@ -22,6 +22,8 @@ export interface ChoiceOptionAction {
|
|
|
22
22
|
controls?: string;
|
|
23
23
|
/** Keep the action visible and expose its controlled popup state. */
|
|
24
24
|
expanded?: boolean;
|
|
25
|
+
/** Keep the action visible and held while its associated surface is rendered. */
|
|
26
|
+
surfaceOpen?: boolean;
|
|
25
27
|
}
|
|
26
28
|
export interface ChoiceSection {
|
|
27
29
|
header?: string;
|