@ds-mo/ui 13.18.1 → 14.0.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.
Files changed (201) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +126 -4
  4. package/dist/angular/ds-bar-action.d.ts +18 -0
  5. package/dist/angular/ds-bar-action.js +42 -0
  6. package/dist/angular/index.d.ts +1 -1
  7. package/dist/angular/index.js +1 -0
  8. package/dist/angular/proxies.d.ts +1 -0
  9. package/dist/angular/proxies.js +1 -0
  10. package/dist/components/ds-agent-activity.js +1 -1
  11. package/dist/components/ds-agent-questionnaire.js +1 -1
  12. package/dist/components/ds-agent-response.js +1 -1
  13. package/dist/components/ds-agent-source-list.js +1 -1
  14. package/dist/components/ds-agent-tool-call.js +1 -1
  15. package/dist/components/ds-attachment-list.js +1 -1
  16. package/dist/components/ds-avatar.js +1 -1
  17. package/dist/components/ds-banner.js +1 -1
  18. package/dist/components/ds-bar-action.d.ts +11 -0
  19. package/dist/components/ds-bar-action.js +2 -0
  20. package/dist/components/ds-bar-action.js.map +1 -0
  21. package/dist/components/ds-bar-nav.js +1 -1
  22. package/dist/components/ds-bar-title.js +1 -1
  23. package/dist/components/ds-bar-workflow.js +1 -1
  24. package/dist/components/ds-button-filled.js +1 -1
  25. package/dist/components/ds-button-unfilled.js +1 -1
  26. package/dist/components/ds-card-chart.js +1 -1
  27. package/dist/components/ds-card-overview.js +1 -1
  28. package/dist/components/ds-card-setting.js +1 -1
  29. package/dist/components/ds-chip.js +1 -1
  30. package/dist/components/ds-code-block.js +1 -1
  31. package/dist/components/ds-conversation-list-item.js +1 -1
  32. package/dist/components/ds-conversation-list-section.js +1 -1
  33. package/dist/components/ds-empty-state.js +1 -1
  34. package/dist/components/ds-field.js +1 -1
  35. package/dist/components/ds-filter-menu.js +1 -1
  36. package/dist/components/ds-icon.js +1 -1
  37. package/dist/components/ds-input.js +1 -1
  38. package/dist/components/ds-markdown.js +1 -1
  39. package/dist/components/ds-menu.js +1 -1
  40. package/dist/components/ds-message-actions.js +1 -1
  41. package/dist/components/ds-message-composer.js +1 -1
  42. package/dist/components/ds-message-scroller.js +1 -1
  43. package/dist/components/ds-message.js +1 -1
  44. package/dist/components/ds-mobile-bar-nav.js +1 -1
  45. package/dist/components/ds-mobile-header.js +1 -1
  46. package/dist/components/ds-mobile-section-switcher.js +1 -1
  47. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  48. package/dist/components/ds-modal.js +1 -1
  49. package/dist/components/ds-panel-nav.js +1 -1
  50. package/dist/components/ds-panel-tool-header.js +1 -1
  51. package/dist/components/ds-panel-tool-search.js +1 -1
  52. package/dist/components/ds-panel-tools.js +1 -1
  53. package/dist/components/ds-select.js +1 -1
  54. package/dist/components/ds-select.js.map +1 -1
  55. package/dist/components/ds-shell-app.js +1 -1
  56. package/dist/components/ds-shell-page.js +1 -1
  57. package/dist/components/ds-shell-tools.js +1 -1
  58. package/dist/components/ds-swatch-picker.js +1 -1
  59. package/dist/components/ds-tab-group.js +1 -1
  60. package/dist/components/ds-table.js +1 -1
  61. package/dist/components/ds-table.js.map +1 -1
  62. package/dist/components/ds-tag.js +1 -1
  63. package/dist/components/ds-toast.js +1 -1
  64. package/dist/components/ds-typing-indicator.js +1 -1
  65. package/dist/components/{p-DGvAZk-D.js → p--z-DWRkg.js} +2 -2
  66. package/dist/components/{p-BUAJ5TD7.js → p-1KtrhAC7.js} +2 -2
  67. package/dist/components/{p-BqFKxWVl.js → p-B7Hf86NF.js} +2 -2
  68. package/dist/components/{p-BCfgU8Fh.js → p-BDCrM8-1.js} +2 -2
  69. package/dist/components/p-BFfLvMZd.js +2 -0
  70. package/dist/components/p-BFfLvMZd.js.map +1 -0
  71. package/dist/components/p-BKsWDUnX.js +2 -0
  72. package/dist/components/{p-ByNAXs5X.js.map → p-BKsWDUnX.js.map} +1 -1
  73. package/dist/components/{p-BOjGzd5N.js → p-BagXfn1G.js} +2 -2
  74. package/dist/components/{p-DeBto13S.js → p-Bf_D3crn.js} +2 -2
  75. package/dist/components/{p-CBTGKnIy.js → p-CElfUmMp.js} +2 -2
  76. package/dist/components/{p-B-CVaYE6.js → p-CIhETsHv.js} +2 -2
  77. package/dist/components/{p-ChGkNsWu.js → p-CQS5aWiC.js} +2 -2
  78. package/dist/components/{p-oyZjjoYV.js → p-CUeuemsF.js} +2 -2
  79. package/dist/components/{p-BQkZ8FIl.js → p-Cae9PFPE.js} +2 -2
  80. package/dist/components/{p-C_tqXl5P.js → p-Cih1XCy3.js} +2 -2
  81. package/dist/components/{p-eu5AZEuT.js → p-CoTD4Mmb.js} +2 -2
  82. package/dist/components/{p-C7ywYAzN.js → p-D-kWb8cF.js} +2 -2
  83. package/dist/components/{p-C25Nmifd.js → p-D0i_J2rj.js} +2 -2
  84. package/dist/components/{p-Qzh-wyTg.js → p-DLkNcCY0.js} +2 -2
  85. package/dist/components/p-DXHq_AfZ.js +2 -0
  86. package/dist/components/{p-DQK2ZH60.js.map → p-DXHq_AfZ.js.map} +1 -1
  87. package/dist/components/{p-Ca0npbVt.js → p-DXgSSxyB.js} +2 -2
  88. package/dist/components/{p-CswBI711.js → p-DY_sA9Jz.js} +2 -2
  89. package/dist/components/{p-BDsAON4I.js → p-DatlGTJp.js} +2 -2
  90. package/dist/components/{p-NzOcZg8r.js → p-DcPVSNDr.js} +2 -2
  91. package/dist/components/{p-BhOjnMLG.js → p-DofS_hVZ.js} +2 -2
  92. package/dist/components/{p-CXYjqJwC.js → p-S9IjLCGj.js} +2 -2
  93. package/dist/components/{p-D0-VdNjl.js → p-ZtJM0cZm.js} +2 -2
  94. package/dist/components/{p-DGhSz9Fo.js → p-nMkoXLC0.js} +2 -2
  95. package/dist/docs/components.json +167 -1
  96. package/dist/mcp-data/registry/agent-activity.json +2 -2
  97. package/dist/mcp-data/registry/agent-questionnaire.json +2 -2
  98. package/dist/mcp-data/registry/agent-response.json +2 -2
  99. package/dist/mcp-data/registry/agent-source-list.json +2 -2
  100. package/dist/mcp-data/registry/agent-tool-call.json +2 -2
  101. package/dist/mcp-data/registry/attachment-list.json +2 -2
  102. package/dist/mcp-data/registry/avatar.json +2 -2
  103. package/dist/mcp-data/registry/badge.json +2 -2
  104. package/dist/mcp-data/registry/banner.json +2 -2
  105. package/dist/mcp-data/registry/bar-action.json +237 -0
  106. package/dist/mcp-data/registry/bar-nav.json +2 -2
  107. package/dist/mcp-data/registry/bar-title.json +2 -2
  108. package/dist/mcp-data/registry/bar-workflow.json +2 -2
  109. package/dist/mcp-data/registry/breadcrumb.json +2 -2
  110. package/dist/mcp-data/registry/button-filled.json +2 -2
  111. package/dist/mcp-data/registry/button-unfilled.json +2 -2
  112. package/dist/mcp-data/registry/card-chart.json +2 -2
  113. package/dist/mcp-data/registry/card-overview.json +3 -3
  114. package/dist/mcp-data/registry/card-setting.json +2 -2
  115. package/dist/mcp-data/registry/chart-legend.json +2 -2
  116. package/dist/mcp-data/registry/chart.json +2 -2
  117. package/dist/mcp-data/registry/checkbox.json +2 -2
  118. package/dist/mcp-data/registry/chip.json +2 -2
  119. package/dist/mcp-data/registry/code-block.json +2 -2
  120. package/dist/mcp-data/registry/conversation-list-item.json +2 -2
  121. package/dist/mcp-data/registry/conversation-list-section.json +2 -2
  122. package/dist/mcp-data/registry/conversation-list.json +2 -2
  123. package/dist/mcp-data/registry/divider.json +2 -2
  124. package/dist/mcp-data/registry/empty-state.json +2 -2
  125. package/dist/mcp-data/registry/field.json +2 -2
  126. package/dist/mcp-data/registry/filter-menu.json +2 -2
  127. package/dist/mcp-data/registry/icon.json +3 -3
  128. package/dist/mcp-data/registry/input.json +2 -2
  129. package/dist/mcp-data/registry/loader.json +2 -2
  130. package/dist/mcp-data/registry/markdown.json +2 -2
  131. package/dist/mcp-data/registry/menu.json +2 -2
  132. package/dist/mcp-data/registry/message-actions.json +2 -2
  133. package/dist/mcp-data/registry/message-bubble.json +2 -2
  134. package/dist/mcp-data/registry/message-composer.json +2 -2
  135. package/dist/mcp-data/registry/message-scroller.json +2 -2
  136. package/dist/mcp-data/registry/message.json +2 -2
  137. package/dist/mcp-data/registry/mobile-bar-nav.json +2 -2
  138. package/dist/mcp-data/registry/mobile-header.json +2 -2
  139. package/dist/mcp-data/registry/mobile-section-switcher.json +2 -2
  140. package/dist/mcp-data/registry/mobile-sheet-nav.json +2 -2
  141. package/dist/mcp-data/registry/modal.json +2 -2
  142. package/dist/mcp-data/registry/panel-nav.json +2 -2
  143. package/dist/mcp-data/registry/panel-sub-nav.json +2 -2
  144. package/dist/mcp-data/registry/panel-tool-header.json +2 -2
  145. package/dist/mcp-data/registry/panel-tool-search.json +2 -2
  146. package/dist/mcp-data/registry/panel-tools.json +2 -2
  147. package/dist/mcp-data/registry/radio.json +2 -2
  148. package/dist/mcp-data/registry/registry.json +130 -5
  149. package/dist/mcp-data/registry/scroll-overlay.json +3 -3
  150. package/dist/mcp-data/registry/select.json +2 -2
  151. package/dist/mcp-data/registry/shell-app.json +2 -2
  152. package/dist/mcp-data/registry/shell-page.json +2 -2
  153. package/dist/mcp-data/registry/shell-tools.json +2 -2
  154. package/dist/mcp-data/registry/skeleton.json +2 -2
  155. package/dist/mcp-data/registry/slider.json +2 -2
  156. package/dist/mcp-data/registry/swatch-picker.json +2 -2
  157. package/dist/mcp-data/registry/switch.json +2 -2
  158. package/dist/mcp-data/registry/tab-group.json +2 -2
  159. package/dist/mcp-data/registry/table.json +6 -5
  160. package/dist/mcp-data/registry/tag.json +2 -2
  161. package/dist/mcp-data/registry/text.json +2 -2
  162. package/dist/mcp-data/registry/toast.json +2 -2
  163. package/dist/mcp-data/registry/tooltip-chart.json +2 -2
  164. package/dist/mcp-data/registry/tooltip.json +2 -2
  165. package/dist/mcp-data/registry/typing-indicator.json +2 -2
  166. package/dist/react/components.d.ts +1 -0
  167. package/dist/react/components.js +1 -0
  168. package/dist/react/ds-bar-action.d.ts +12 -0
  169. package/dist/react/ds-bar-action.js +12 -0
  170. package/dist/styles/table.css +12 -4
  171. package/dist/types/components/BarAction/BarAction.d.ts +25 -0
  172. package/dist/types/components.d.ts +78 -0
  173. package/package.json +5 -5
  174. package/dist/components/p-ByNAXs5X.js +0 -2
  175. package/dist/components/p-C8U5BsJf.js +0 -2
  176. package/dist/components/p-C8U5BsJf.js.map +0 -1
  177. package/dist/components/p-DQK2ZH60.js +0 -2
  178. /package/dist/components/{p-DGvAZk-D.js.map → p--z-DWRkg.js.map} +0 -0
  179. /package/dist/components/{p-BUAJ5TD7.js.map → p-1KtrhAC7.js.map} +0 -0
  180. /package/dist/components/{p-BqFKxWVl.js.map → p-B7Hf86NF.js.map} +0 -0
  181. /package/dist/components/{p-BCfgU8Fh.js.map → p-BDCrM8-1.js.map} +0 -0
  182. /package/dist/components/{p-BOjGzd5N.js.map → p-BagXfn1G.js.map} +0 -0
  183. /package/dist/components/{p-DeBto13S.js.map → p-Bf_D3crn.js.map} +0 -0
  184. /package/dist/components/{p-CBTGKnIy.js.map → p-CElfUmMp.js.map} +0 -0
  185. /package/dist/components/{p-B-CVaYE6.js.map → p-CIhETsHv.js.map} +0 -0
  186. /package/dist/components/{p-ChGkNsWu.js.map → p-CQS5aWiC.js.map} +0 -0
  187. /package/dist/components/{p-oyZjjoYV.js.map → p-CUeuemsF.js.map} +0 -0
  188. /package/dist/components/{p-BQkZ8FIl.js.map → p-Cae9PFPE.js.map} +0 -0
  189. /package/dist/components/{p-C_tqXl5P.js.map → p-Cih1XCy3.js.map} +0 -0
  190. /package/dist/components/{p-eu5AZEuT.js.map → p-CoTD4Mmb.js.map} +0 -0
  191. /package/dist/components/{p-C7ywYAzN.js.map → p-D-kWb8cF.js.map} +0 -0
  192. /package/dist/components/{p-C25Nmifd.js.map → p-D0i_J2rj.js.map} +0 -0
  193. /package/dist/components/{p-Qzh-wyTg.js.map → p-DLkNcCY0.js.map} +0 -0
  194. /package/dist/components/{p-Ca0npbVt.js.map → p-DXgSSxyB.js.map} +0 -0
  195. /package/dist/components/{p-CswBI711.js.map → p-DY_sA9Jz.js.map} +0 -0
  196. /package/dist/components/{p-BDsAON4I.js.map → p-DatlGTJp.js.map} +0 -0
  197. /package/dist/components/{p-NzOcZg8r.js.map → p-DcPVSNDr.js.map} +0 -0
  198. /package/dist/components/{p-BhOjnMLG.js.map → p-DofS_hVZ.js.map} +0 -0
  199. /package/dist/components/{p-CXYjqJwC.js.map → p-S9IjLCGj.js.map} +0 -0
  200. /package/dist/components/{p-D0-VdNjl.js.map → p-ZtJM0cZm.js.map} +0 -0
  201. /package/dist/components/{p-DGhSz9Fo.js.map → p-nMkoXLC0.js.map} +0 -0
@@ -223,8 +223,8 @@
223
223
  "complexPropertyNote": "Assign these non-primitive values as JavaScript properties: parts.",
224
224
  "peerDependencies": {
225
225
  "required": [
226
- "@ds-mo/tokens ^6.2.1",
227
- "@ds-mo/icons ^6.6.0"
226
+ "@ds-mo/tokens ^6.2.2",
227
+ "@ds-mo/icons ^7.0.0"
228
228
  ],
229
229
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
230
230
  }
@@ -142,8 +142,8 @@
142
142
  "complexPropertyNote": "Assign these non-primitive values as JavaScript properties: items.",
143
143
  "peerDependencies": {
144
144
  "required": [
145
- "@ds-mo/tokens ^6.2.1",
146
- "@ds-mo/icons ^6.6.0"
145
+ "@ds-mo/tokens ^6.2.2",
146
+ "@ds-mo/icons ^7.0.0"
147
147
  ],
148
148
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
149
149
  }
@@ -222,8 +222,8 @@
222
222
  "complexPropertyNote": "Assign these non-primitive values as JavaScript properties: input, output.",
223
223
  "peerDependencies": {
224
224
  "required": [
225
- "@ds-mo/tokens ^6.2.1",
226
- "@ds-mo/icons ^6.6.0"
225
+ "@ds-mo/tokens ^6.2.2",
226
+ "@ds-mo/icons ^7.0.0"
227
227
  ],
228
228
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
229
229
  }
@@ -106,8 +106,8 @@
106
106
  "complexPropertyNote": "Assign these non-primitive values as JavaScript properties: items.",
107
107
  "peerDependencies": {
108
108
  "required": [
109
- "@ds-mo/tokens ^6.2.1",
110
- "@ds-mo/icons ^6.6.0"
109
+ "@ds-mo/tokens ^6.2.2",
110
+ "@ds-mo/icons ^7.0.0"
111
111
  ],
112
112
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
113
113
  }
@@ -143,8 +143,8 @@
143
143
  },
144
144
  "peerDependencies": {
145
145
  "required": [
146
- "@ds-mo/tokens ^6.2.1",
147
- "@ds-mo/icons ^6.6.0"
146
+ "@ds-mo/tokens ^6.2.2",
147
+ "@ds-mo/icons ^7.0.0"
148
148
  ],
149
149
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
150
150
  }
@@ -260,8 +260,8 @@
260
260
  },
261
261
  "peerDependencies": {
262
262
  "required": [
263
- "@ds-mo/tokens ^6.2.1",
264
- "@ds-mo/icons ^6.6.0"
263
+ "@ds-mo/tokens ^6.2.2",
264
+ "@ds-mo/icons ^7.0.0"
265
265
  ],
266
266
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
267
267
  }
@@ -302,8 +302,8 @@
302
302
  },
303
303
  "peerDependencies": {
304
304
  "required": [
305
- "@ds-mo/tokens ^6.2.1",
306
- "@ds-mo/icons ^6.6.0"
305
+ "@ds-mo/tokens ^6.2.2",
306
+ "@ds-mo/icons ^7.0.0"
307
307
  ],
308
308
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
309
309
  }
@@ -0,0 +1,237 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "bar-action",
4
+ "title": "BarAction",
5
+ "description": "Compact bold-brand selection-action chrome that reports a selected count, offers Clear, and hosts application commands on a medium-elevation surface.",
6
+ "type": "registry:ui",
7
+ "meta": {
8
+ "library": "@ds-mo/ui",
9
+ "distribution": "npm",
10
+ "storybook": "https://zainadeel.github.io/compomo/?path=/story/bar-action",
11
+ "source": "src/wc/components/BarAction/BarAction.tsx",
12
+ "intentStatus": "complete",
13
+ "intent": {
14
+ "audience": "general",
15
+ "status": "stable",
16
+ "summary": "Compact bold-brand selection-action chrome that reports a selected count, offers Clear, and hosts application commands on a medium-elevation surface.",
17
+ "useWhen": [
18
+ "A multi-select table or similar collection needs a persistent bar of commands for the current selected set.",
19
+ "The application owns selected identities and must keep bulk actions visually consistent across surfaces."
20
+ ],
21
+ "avoidWhen": [
22
+ "The message is an application-wide announcement rather than a selected-set command surface; use Banner.",
23
+ "A single row or card needs local overflow commands; use ButtonUnfilled with Menu.",
24
+ "The chrome is a table result summary or footer; compose Table's footer instead."
25
+ ],
26
+ "alternatives": [
27
+ {
28
+ "when": "The message is a persistent application announcement.",
29
+ "component": "component:ds-banner",
30
+ "reason": "Banner owns shell-level messaging and does not represent a selected set."
31
+ },
32
+ {
33
+ "when": "A single row or card needs local overflow commands.",
34
+ "component": "component:ds-button-unfilled",
35
+ "reason": "ButtonUnfilled with Menu owns local item commands rather than selected-set bulk actions."
36
+ }
37
+ ],
38
+ "commonlyComposedWith": [
39
+ "component:ds-table",
40
+ "component:ds-button-unfilled",
41
+ "component:ds-button-filled",
42
+ "component:ds-menu",
43
+ "component:ds-text"
44
+ ],
45
+ "patterns": [],
46
+ "accessibility": [
47
+ "Provide a group accessible name that describes the selected-set commands.",
48
+ "Keep Clear as a real button. A persistent polite live region announces valid selected-count updates without stealing focus.",
49
+ "Name every slotted action. Icon-only commands still need an explicit accessible name.",
50
+ "The application updates the selected identities after dsClear, then moves focus to a stable collection control before the empty bar disappears; the bar never mutates selection or guesses a focus target."
51
+ ],
52
+ "states": [
53
+ "The bar is hidden while the selected count is below one and appears as the compact bold-brand elevated surface once at least one item is selected.",
54
+ "Clear reports intent only. The application replaces the controlled selected identities.",
55
+ "Slotted actions stay application-owned. Pass background matching the bold parent surface so those controls remain readable.",
56
+ "The component-owned visible surface owns medium control-elevation and removes the empty actions lane. Overlay inset, footer clearance, and stacking remain application layout."
57
+ ],
58
+ "responsiveBehavior": [
59
+ "The count truncates before Clear or trailing actions lose their complete hit targets.",
60
+ "The bar fills its owner's inline size. Overlay inset, footer clearance, and stacking against a table remain the consuming layout."
61
+ ],
62
+ "frameworkCaveats": {
63
+ "customElements": [
64
+ "Bind count from the current selected set, replace that set after dsClear, and return focus to a stable collection control.",
65
+ "Project command controls through slot=actions with background matching the bold parent surface."
66
+ ],
67
+ "react": [
68
+ "Pass count from selected row or item state, clear that state from onDsClear, and return focus to a stable collection control.",
69
+ "Place DsBarAction in the same positioned owner as the table when overlaying the table footer."
70
+ ],
71
+ "angular": [
72
+ "Bind count from the controlled selected identities, handle dsClear in the collection owner, and return focus to a stable collection control.",
73
+ "Project ds-button-unfilled or ds-button-filled into slot=actions with background matching the bold parent surface."
74
+ ]
75
+ },
76
+ "references": [
77
+ {
78
+ "label": "Storybook review matrix",
79
+ "path": "src/wc/components/BarAction/BarAction.stories.ts"
80
+ },
81
+ {
82
+ "label": "Rendered behavior coverage",
83
+ "path": "tests/e2e/bar-action.spec.ts"
84
+ }
85
+ ]
86
+ },
87
+ "api": {
88
+ "props": {
89
+ "clearLabel": {
90
+ "type": "string",
91
+ "resolvedType": "string",
92
+ "attribute": "clear-label",
93
+ "default": "'Clear'",
94
+ "required": false,
95
+ "mutable": false,
96
+ "description": "Visible Clear control label."
97
+ },
98
+ "count": {
99
+ "type": "number",
100
+ "resolvedType": "number",
101
+ "attribute": "count",
102
+ "default": "0",
103
+ "required": false,
104
+ "mutable": false,
105
+ "description": "Number of selected items. The bar is hidden while this is below one."
106
+ },
107
+ "label": {
108
+ "type": "string",
109
+ "resolvedType": "string",
110
+ "attribute": "label",
111
+ "default": "'Selected item actions'",
112
+ "required": false,
113
+ "mutable": false,
114
+ "description": "Accessible name for the selected-set action group."
115
+ },
116
+ "selectedLabel": {
117
+ "type": "string",
118
+ "resolvedType": "string",
119
+ "attribute": "selected-label",
120
+ "default": "'selected'",
121
+ "required": false,
122
+ "mutable": false,
123
+ "description": "Localized noun shown after the count."
124
+ }
125
+ },
126
+ "events": [
127
+ {
128
+ "name": "dsClear",
129
+ "detail": "MouseEvent",
130
+ "bubbles": true,
131
+ "cancelable": true,
132
+ "composed": true,
133
+ "description": "Emitted when Clear is activated. The application owns the selected identities."
134
+ }
135
+ ],
136
+ "methods": [],
137
+ "slots": []
138
+ },
139
+ "props": {
140
+ "clearLabel": {
141
+ "type": "string",
142
+ "resolvedType": "string",
143
+ "attribute": "clear-label",
144
+ "default": "'Clear'",
145
+ "required": false,
146
+ "mutable": false,
147
+ "description": "Visible Clear control label."
148
+ },
149
+ "count": {
150
+ "type": "number",
151
+ "resolvedType": "number",
152
+ "attribute": "count",
153
+ "default": "0",
154
+ "required": false,
155
+ "mutable": false,
156
+ "description": "Number of selected items. The bar is hidden while this is below one."
157
+ },
158
+ "label": {
159
+ "type": "string",
160
+ "resolvedType": "string",
161
+ "attribute": "label",
162
+ "default": "'Selected item actions'",
163
+ "required": false,
164
+ "mutable": false,
165
+ "description": "Accessible name for the selected-set action group."
166
+ },
167
+ "selectedLabel": {
168
+ "type": "string",
169
+ "resolvedType": "string",
170
+ "attribute": "selected-label",
171
+ "default": "'selected'",
172
+ "required": false,
173
+ "mutable": false,
174
+ "description": "Localized noun shown after the count."
175
+ }
176
+ },
177
+ "events": [
178
+ {
179
+ "name": "dsClear",
180
+ "detail": "MouseEvent",
181
+ "bubbles": true,
182
+ "cancelable": true,
183
+ "composed": true,
184
+ "description": "Emitted when Clear is activated. The application owns the selected identities."
185
+ }
186
+ ],
187
+ "methods": [],
188
+ "slots": [],
189
+ "exports": {
190
+ "customElement": "ds-bar-action",
191
+ "react": "DsBarAction",
192
+ "angular": "DsBarAction"
193
+ },
194
+ "consumption": {
195
+ "install": "npm install @ds-mo/ui @ds-mo/tokens @ds-mo/icons",
196
+ "cssSetup": "import '@ds-mo/tokens';\nimport '@ds-mo/tokens/reset';\nimport '@ds-mo/tokens/globals';",
197
+ "customElements": {
198
+ "import": "import '@ds-mo/ui/dist/components/ds-bar-action.js';",
199
+ "example": "<ds-bar-action></ds-bar-action>"
200
+ },
201
+ "react": {
202
+ "import": "import { DsBarAction } from '@ds-mo/ui/react';",
203
+ "example": "<DsBarAction />"
204
+ },
205
+ "angular": {
206
+ "import": "import { DsBarAction } from '@ds-mo/ui/angular/ds-bar-action';",
207
+ "example": "<ds-bar-action></ds-bar-action>"
208
+ },
209
+ "peerDependencies": {
210
+ "required": [
211
+ "@ds-mo/tokens ^6.2.2",
212
+ "@ds-mo/icons ^7.0.0"
213
+ ],
214
+ "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
215
+ }
216
+ }
217
+ },
218
+ "dependencies": [
219
+ "@ds-mo/ui",
220
+ "@ds-mo/tokens"
221
+ ],
222
+ "registryDependencies": [
223
+ "text"
224
+ ],
225
+ "files": [
226
+ {
227
+ "path": "src/wc/components/BarAction/BarAction.css",
228
+ "content": "@import '../../styles/control-elevation.css';\n@import '../../utils/chrome-layout.css';\n@import '../../utils/focus-ring.css';\n@import '../../utils/forced-colors.css';\n@import '../../utils/text-decoration.css';\n@import '../../utils/visually-hidden.css';\n\n:host {\n display: block;\n min-width: 0;\n box-sizing: border-box;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.bar-action {\n width: 100%;\n min-width: 0;\n box-sizing: border-box;\n height: var(--dimension-size-600);\n border-radius: var(--dimension-radius-125);\n background: var(--color-background-bold-brand);\n color: var(--color-foreground-on-bold-background-secondary);\n --ds-focus-ring-color: var(--color-interaction-on-bold-background-focus);\n}\n\n.bar-action[hidden],\n.bar-action__actions--empty {\n display: none;\n}\n\n.bar-action__copy,\n.bar-action__actions {\n display: flex;\n align-items: center;\n min-width: 0;\n gap: var(--dimension-space-050);\n}\n\n.bar-action__copy {\n flex: 1 1 auto;\n padding-inline: var(--dimension-space-100);\n}\n\n.bar-action__count {\n flex: 0 1 auto;\n min-width: 0;\n}\n\n.bar-action__separator,\n.bar-action__clear,\n.bar-action__actions {\n flex: 0 0 auto;\n}\n\n.bar-action__actions {\n margin-inline-start: auto;\n}\n\n.bar-action__actions slot {\n display: contents;\n}\n\n.bar-action__clear {\n appearance: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-block-size: var(--dimension-size-400);\n margin: 0;\n padding: var(--dimension-space-025);\n border: 0;\n border-radius: var(--dimension-radius-050);\n background: transparent;\n cursor: pointer;\n}\n\n@media (forced-colors: active) {\n .bar-action {\n --ds-control-elevation-shadow: none;\n --ds-control-elevation-highlight: none;\n outline: var(--dimension-stroke-width-012) solid var(--ds-forced-color-control-boundary);\n outline-offset: calc(-1 * var(--dimension-stroke-width-012));\n }\n}\n",
229
+ "type": "registry:ui"
230
+ },
231
+ {
232
+ "path": "src/wc/components/BarAction/BarAction.tsx",
233
+ "content": "import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n State,\n} from '@stencil/core';\n\n@Component({\n tag: 'ds-bar-action',\n styleUrl: 'BarAction.css',\n scoped: true,\n})\nexport class BarAction {\n @Element() el!: HTMLElement;\n\n /** Number of selected items. The bar is hidden while this is below one. */\n @Prop() count: number = 0;\n\n /** Localized noun shown after the count. */\n @Prop() selectedLabel: string = 'selected';\n\n /** Visible Clear control label. */\n @Prop() clearLabel: string = 'Clear';\n\n /** Accessible name for the selected-set action group. */\n @Prop() label: string = 'Selected item actions';\n\n /** Emitted when Clear is activated. The application owns the selected identities. */\n @Event() dsClear!: EventEmitter<MouseEvent>;\n\n @State() private hasActions = false;\n\n private actionsObserver?: MutationObserver;\n\n componentWillLoad() {\n this.updateActionsPresence();\n }\n\n componentDidLoad() {\n this.updateActionsPresence();\n if (typeof MutationObserver === 'undefined') return;\n this.actionsObserver = new MutationObserver(this.updateActionsPresence);\n this.actionsObserver.observe(this.el, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['slot'],\n });\n }\n\n disconnectedCallback() {\n this.actionsObserver?.disconnect();\n }\n\n private get resolvedCount(): number {\n if (!Number.isFinite(this.count)) return 0;\n return Math.max(0, Math.trunc(this.count));\n }\n\n private get isVisible(): boolean {\n return this.resolvedCount >= 1;\n }\n\n private updateActionsPresence = () => {\n this.hasActions = Boolean(this.el.querySelector('[slot=\"actions\"]'));\n };\n\n private handleClear = (event: MouseEvent) => {\n this.dsClear.emit(event);\n };\n\n render() {\n const countLabel = `${this.resolvedCount} ${this.selectedLabel}`;\n return (\n <Host>\n <div\n class=\"bar-action ds-chrome-row ds-chrome-space--md ds-control-elevation ds-control-elevation--md\"\n hidden={!this.isVisible || undefined}\n role=\"group\"\n aria-label={this.label}\n >\n <div class=\"bar-action__copy\">\n <ds-text\n class=\"bar-action__count\"\n as=\"span\"\n variant=\"text-body-medium\"\n color=\"inherit\"\n fontFeature=\"tabular-nums\"\n lineTruncation={1}\n >\n {countLabel}\n </ds-text>\n <ds-text\n class=\"bar-action__separator\"\n as=\"span\"\n variant=\"text-body-medium\"\n color=\"inherit\"\n aria-hidden=\"true\"\n >\n ·\n </ds-text>\n <button\n class=\"bar-action__clear ds-text-action ds-text-action--on-bold ds-focus-ring\"\n type=\"button\"\n onClick={this.handleClear}\n >\n <ds-text as=\"span\" variant=\"text-body-medium\" color=\"inherit\">\n {this.clearLabel}\n </ds-text>\n </button>\n </div>\n <div\n class={{\n 'bar-action__actions': true,\n 'bar-action__actions--empty': !this.hasActions,\n }}\n >\n <slot name=\"actions\" />\n </div>\n </div>\n <span\n class=\"bar-action__status ds-visually-hidden\"\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {this.isVisible ? countLabel : ''}\n </span>\n </Host>\n );\n }\n}\n",
234
+ "type": "registry:ui"
235
+ }
236
+ ]
237
+ }
@@ -276,8 +276,8 @@
276
276
  "complexPropertyNote": "Assign these non-primitive values as JavaScript properties: tabs.",
277
277
  "peerDependencies": {
278
278
  "required": [
279
- "@ds-mo/tokens ^6.2.1",
280
- "@ds-mo/icons ^6.6.0"
279
+ "@ds-mo/tokens ^6.2.2",
280
+ "@ds-mo/icons ^7.0.0"
281
281
  ],
282
282
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
283
283
  }
@@ -485,8 +485,8 @@
485
485
  "complexPropertyNote": "Assign these non-primitive values as JavaScript properties: actions, breadcrumbs, primaryAction, sections.",
486
486
  "peerDependencies": {
487
487
  "required": [
488
- "@ds-mo/tokens ^6.2.1",
489
- "@ds-mo/icons ^6.6.0"
488
+ "@ds-mo/tokens ^6.2.2",
489
+ "@ds-mo/icons ^7.0.0"
490
490
  ],
491
491
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
492
492
  }
@@ -351,8 +351,8 @@
351
351
  "complexPropertyNote": "Assign these non-primitive values as JavaScript properties: steps, submitAction.",
352
352
  "peerDependencies": {
353
353
  "required": [
354
- "@ds-mo/tokens ^6.2.1",
355
- "@ds-mo/icons ^6.6.0"
354
+ "@ds-mo/tokens ^6.2.2",
355
+ "@ds-mo/icons ^7.0.0"
356
356
  ],
357
357
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
358
358
  }
@@ -171,8 +171,8 @@
171
171
  "complexPropertyNote": "Assign these non-primitive values as JavaScript properties: items.",
172
172
  "peerDependencies": {
173
173
  "required": [
174
- "@ds-mo/tokens ^6.2.1",
175
- "@ds-mo/icons ^6.6.0"
174
+ "@ds-mo/tokens ^6.2.2",
175
+ "@ds-mo/icons ^7.0.0"
176
176
  ],
177
177
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
178
178
  }
@@ -528,8 +528,8 @@
528
528
  },
529
529
  "peerDependencies": {
530
530
  "required": [
531
- "@ds-mo/tokens ^6.2.1",
532
- "@ds-mo/icons ^6.6.0"
531
+ "@ds-mo/tokens ^6.2.2",
532
+ "@ds-mo/icons ^7.0.0"
533
533
  ],
534
534
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
535
535
  }
@@ -591,8 +591,8 @@
591
591
  },
592
592
  "peerDependencies": {
593
593
  "required": [
594
- "@ds-mo/tokens ^6.2.1",
595
- "@ds-mo/icons ^6.6.0"
594
+ "@ds-mo/tokens ^6.2.2",
595
+ "@ds-mo/icons ^7.0.0"
596
596
  ],
597
597
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
598
598
  }
@@ -208,8 +208,8 @@
208
208
  },
209
209
  "peerDependencies": {
210
210
  "required": [
211
- "@ds-mo/tokens ^6.2.1",
212
- "@ds-mo/icons ^6.6.0"
211
+ "@ds-mo/tokens ^6.2.2",
212
+ "@ds-mo/icons ^7.0.0"
213
213
  ],
214
214
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
215
215
  }
@@ -12,7 +12,7 @@
12
12
  "intentStatus": "complete",
13
13
  "intent": {
14
14
  "audience": "general",
15
- "status": "experimental",
15
+ "status": "stable",
16
16
  "summary": "Page-level summary with a persistent 48px reporting bar above an equal-track grid of an optional safety score and comparable measures, plus an elevated page-controlled collapse surface.",
17
17
  "useWhen": [
18
18
  "A page opens with one headline figure that the surrounding measures explain.",
@@ -345,8 +345,8 @@
345
345
  "complexPropertyNote": "Assign these non-primitive values as JavaScript properties: metrics, score.",
346
346
  "peerDependencies": {
347
347
  "required": [
348
- "@ds-mo/tokens ^6.2.1",
349
- "@ds-mo/icons ^6.6.0"
348
+ "@ds-mo/tokens ^6.2.2",
349
+ "@ds-mo/icons ^7.0.0"
350
350
  ],
351
351
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
352
352
  }
@@ -249,8 +249,8 @@
249
249
  },
250
250
  "peerDependencies": {
251
251
  "required": [
252
- "@ds-mo/tokens ^6.2.1",
253
- "@ds-mo/icons ^6.6.0"
252
+ "@ds-mo/tokens ^6.2.2",
253
+ "@ds-mo/icons ^7.0.0"
254
254
  ],
255
255
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
256
256
  }
@@ -267,8 +267,8 @@
267
267
  "complexPropertyNote": "Assign these non-primitive values as JavaScript properties: items.",
268
268
  "peerDependencies": {
269
269
  "required": [
270
- "@ds-mo/tokens ^6.2.1",
271
- "@ds-mo/icons ^6.6.0"
270
+ "@ds-mo/tokens ^6.2.2",
271
+ "@ds-mo/icons ^7.0.0"
272
272
  ],
273
273
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
274
274
  }
@@ -229,8 +229,8 @@
229
229
  "complexPropertyNote": "Assign these non-primitive values as JavaScript properties: definition.",
230
230
  "peerDependencies": {
231
231
  "required": [
232
- "@ds-mo/tokens ^6.2.1",
233
- "@ds-mo/icons ^6.6.0"
232
+ "@ds-mo/tokens ^6.2.2",
233
+ "@ds-mo/icons ^7.0.0"
234
234
  ],
235
235
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
236
236
  }
@@ -349,8 +349,8 @@
349
349
  },
350
350
  "peerDependencies": {
351
351
  "required": [
352
- "@ds-mo/tokens ^6.2.1",
353
- "@ds-mo/icons ^6.6.0"
352
+ "@ds-mo/tokens ^6.2.2",
353
+ "@ds-mo/icons ^7.0.0"
354
354
  ],
355
355
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
356
356
  }
@@ -245,8 +245,8 @@
245
245
  },
246
246
  "peerDependencies": {
247
247
  "required": [
248
- "@ds-mo/tokens ^6.2.1",
249
- "@ds-mo/icons ^6.6.0"
248
+ "@ds-mo/tokens ^6.2.2",
249
+ "@ds-mo/icons ^7.0.0"
250
250
  ],
251
251
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
252
252
  }
@@ -128,8 +128,8 @@
128
128
  },
129
129
  "peerDependencies": {
130
130
  "required": [
131
- "@ds-mo/tokens ^6.2.1",
132
- "@ds-mo/icons ^6.6.0"
131
+ "@ds-mo/tokens ^6.2.2",
132
+ "@ds-mo/icons ^7.0.0"
133
133
  ],
134
134
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
135
135
  }
@@ -253,8 +253,8 @@
253
253
  },
254
254
  "peerDependencies": {
255
255
  "required": [
256
- "@ds-mo/tokens ^6.2.1",
257
- "@ds-mo/icons ^6.6.0"
256
+ "@ds-mo/tokens ^6.2.2",
257
+ "@ds-mo/icons ^7.0.0"
258
258
  ],
259
259
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
260
260
  }
@@ -110,8 +110,8 @@
110
110
  },
111
111
  "peerDependencies": {
112
112
  "required": [
113
- "@ds-mo/tokens ^6.2.1",
114
- "@ds-mo/icons ^6.6.0"
113
+ "@ds-mo/tokens ^6.2.2",
114
+ "@ds-mo/icons ^7.0.0"
115
115
  ],
116
116
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
117
117
  }
@@ -102,8 +102,8 @@
102
102
  },
103
103
  "peerDependencies": {
104
104
  "required": [
105
- "@ds-mo/tokens ^6.2.1",
106
- "@ds-mo/icons ^6.6.0"
105
+ "@ds-mo/tokens ^6.2.2",
106
+ "@ds-mo/icons ^7.0.0"
107
107
  ],
108
108
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
109
109
  }
@@ -198,8 +198,8 @@
198
198
  },
199
199
  "peerDependencies": {
200
200
  "required": [
201
- "@ds-mo/tokens ^6.2.1",
202
- "@ds-mo/icons ^6.6.0"
201
+ "@ds-mo/tokens ^6.2.2",
202
+ "@ds-mo/icons ^7.0.0"
203
203
  ],
204
204
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
205
205
  }
@@ -170,8 +170,8 @@
170
170
  },
171
171
  "peerDependencies": {
172
172
  "required": [
173
- "@ds-mo/tokens ^6.2.1",
174
- "@ds-mo/icons ^6.6.0"
173
+ "@ds-mo/tokens ^6.2.2",
174
+ "@ds-mo/icons ^7.0.0"
175
175
  ],
176
176
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
177
177
  }
@@ -193,8 +193,8 @@
193
193
  },
194
194
  "peerDependencies": {
195
195
  "required": [
196
- "@ds-mo/tokens ^6.2.1",
197
- "@ds-mo/icons ^6.6.0"
196
+ "@ds-mo/tokens ^6.2.2",
197
+ "@ds-mo/icons ^7.0.0"
198
198
  ],
199
199
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
200
200
  }
@@ -609,8 +609,8 @@
609
609
  "complexPropertyNote": "Assign these non-primitive values as JavaScript properties: anchor, filters, values.",
610
610
  "peerDependencies": {
611
611
  "required": [
612
- "@ds-mo/tokens ^6.2.1",
613
- "@ds-mo/icons ^6.6.0"
612
+ "@ds-mo/tokens ^6.2.2",
613
+ "@ds-mo/icons ^7.0.0"
614
614
  ],
615
615
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
616
616
  }