@ds-mo/ui 13.18.0 → 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 (218) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +2 -2
  3. package/dist/agent.json +137 -17
  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/ds-table.d.ts +1 -4
  7. package/dist/angular/ds-table.js +2 -5
  8. package/dist/angular/index.d.ts +1 -1
  9. package/dist/angular/index.js +1 -0
  10. package/dist/angular/proxies.d.ts +1 -0
  11. package/dist/angular/proxies.js +1 -0
  12. package/dist/components/ds-agent-activity.js +1 -1
  13. package/dist/components/ds-agent-questionnaire.js +1 -1
  14. package/dist/components/ds-agent-response.js +1 -1
  15. package/dist/components/ds-agent-source-list.js +1 -1
  16. package/dist/components/ds-agent-tool-call.js +1 -1
  17. package/dist/components/ds-attachment-list.js +1 -1
  18. package/dist/components/ds-avatar.js +1 -1
  19. package/dist/components/ds-banner.js +1 -1
  20. package/dist/components/ds-bar-action.d.ts +11 -0
  21. package/dist/components/ds-bar-action.js +2 -0
  22. package/dist/components/ds-bar-action.js.map +1 -0
  23. package/dist/components/ds-bar-nav.js +1 -1
  24. package/dist/components/ds-bar-title.js +1 -1
  25. package/dist/components/ds-bar-workflow.js +1 -1
  26. package/dist/components/ds-bar-workflow.js.map +1 -1
  27. package/dist/components/ds-button-filled.js +1 -1
  28. package/dist/components/ds-button-unfilled.js +1 -1
  29. package/dist/components/ds-card-chart.js +1 -1
  30. package/dist/components/ds-card-overview.js +1 -1
  31. package/dist/components/ds-card-setting.js +1 -1
  32. package/dist/components/ds-chip.js +1 -1
  33. package/dist/components/ds-code-block.js +1 -1
  34. package/dist/components/ds-conversation-list-item.js +1 -1
  35. package/dist/components/ds-conversation-list-item.js.map +1 -1
  36. package/dist/components/ds-conversation-list-section.js +1 -1
  37. package/dist/components/ds-empty-state.js +1 -1
  38. package/dist/components/ds-field.js +1 -1
  39. package/dist/components/ds-filter-menu.js +1 -1
  40. package/dist/components/ds-filter-menu.js.map +1 -1
  41. package/dist/components/ds-icon.js +1 -1
  42. package/dist/components/ds-input.js +1 -1
  43. package/dist/components/ds-markdown.js +1 -1
  44. package/dist/components/ds-menu.js +1 -1
  45. package/dist/components/ds-message-actions.js +1 -1
  46. package/dist/components/ds-message-composer.js +1 -1
  47. package/dist/components/ds-message-scroller.js +1 -1
  48. package/dist/components/ds-message.js +1 -1
  49. package/dist/components/ds-mobile-bar-nav.js +1 -1
  50. package/dist/components/ds-mobile-header.js +1 -1
  51. package/dist/components/ds-mobile-section-switcher.js +1 -1
  52. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  53. package/dist/components/ds-modal.js +1 -1
  54. package/dist/components/ds-panel-nav.js +1 -1
  55. package/dist/components/ds-panel-tool-header.js +1 -1
  56. package/dist/components/ds-panel-tool-search.js +1 -1
  57. package/dist/components/ds-panel-tools.js +1 -1
  58. package/dist/components/ds-select.js +1 -1
  59. package/dist/components/ds-select.js.map +1 -1
  60. package/dist/components/ds-shell-app.js +1 -1
  61. package/dist/components/ds-shell-app.js.map +1 -1
  62. package/dist/components/ds-shell-page.js +1 -1
  63. package/dist/components/ds-shell-tools.js +1 -1
  64. package/dist/components/ds-swatch-picker.js +1 -1
  65. package/dist/components/ds-tab-group.js +1 -1
  66. package/dist/components/ds-table.js +1 -1
  67. package/dist/components/ds-table.js.map +1 -1
  68. package/dist/components/ds-tag.js +1 -1
  69. package/dist/components/ds-toast.js +1 -1
  70. package/dist/components/ds-typing-indicator.js +1 -1
  71. package/dist/components/{p-BxQlH4gl.js → p--z-DWRkg.js} +2 -2
  72. package/dist/components/p--z-DWRkg.js.map +1 -0
  73. package/dist/components/{p-DtvJTPds.js → p-1KtrhAC7.js} +2 -2
  74. package/dist/components/p-1KtrhAC7.js.map +1 -0
  75. package/dist/components/{p-BqFKxWVl.js → p-B7Hf86NF.js} +2 -2
  76. package/dist/components/{p-BCfgU8Fh.js → p-BDCrM8-1.js} +2 -2
  77. package/dist/components/p-BFfLvMZd.js +2 -0
  78. package/dist/components/p-BFfLvMZd.js.map +1 -0
  79. package/dist/components/p-BKsWDUnX.js +2 -0
  80. package/dist/components/p-BKsWDUnX.js.map +1 -0
  81. package/dist/components/{p-BOjGzd5N.js → p-BagXfn1G.js} +2 -2
  82. package/dist/components/{p-DeBto13S.js → p-Bf_D3crn.js} +2 -2
  83. package/dist/components/{p-CUQTEeLp.js → p-CElfUmMp.js} +2 -2
  84. package/dist/components/{p-BMq4DJWh.js → p-CIhETsHv.js} +2 -2
  85. package/dist/components/{p-5uI3i2vg.js → p-CQS5aWiC.js} +2 -2
  86. package/dist/components/{p-oyZjjoYV.js → p-CUeuemsF.js} +2 -2
  87. package/dist/components/{p-BQkZ8FIl.js → p-Cae9PFPE.js} +2 -2
  88. package/dist/components/{p-C_tqXl5P.js → p-Cih1XCy3.js} +2 -2
  89. package/dist/components/{p-N4m0evkj.js → p-CoTD4Mmb.js} +2 -2
  90. package/dist/components/{p-C7ywYAzN.js → p-D-kWb8cF.js} +2 -2
  91. package/dist/components/{p-BtY2nJW4.js → p-D0i_J2rj.js} +2 -2
  92. package/dist/components/{p-Qzh-wyTg.js → p-DLkNcCY0.js} +2 -2
  93. package/dist/components/p-DXHq_AfZ.js +2 -0
  94. package/dist/components/{p-CP2W8qxB.js.map → p-DXHq_AfZ.js.map} +1 -1
  95. package/dist/components/{p-Xr9OO-Ao.js → p-DXgSSxyB.js} +2 -2
  96. package/dist/components/{p-CswBI711.js → p-DY_sA9Jz.js} +2 -2
  97. package/dist/components/{p-BDsAON4I.js → p-DatlGTJp.js} +2 -2
  98. package/dist/components/{p-NzOcZg8r.js → p-DcPVSNDr.js} +2 -2
  99. package/dist/components/{p-CB8iBV_M.js → p-DofS_hVZ.js} +2 -2
  100. package/dist/components/p-DofS_hVZ.js.map +1 -0
  101. package/dist/components/{p-smzwm_EW.js → p-S9IjLCGj.js} +2 -2
  102. package/dist/components/{p-C8keZ4k6.js → p-ZtJM0cZm.js} +2 -2
  103. package/dist/components/{p-NuRg_IoA.js → p-nMkoXLC0.js} +2 -2
  104. package/dist/docs/components.json +170 -30
  105. package/dist/mcp-data/registry/agent-activity.json +2 -2
  106. package/dist/mcp-data/registry/agent-questionnaire.json +2 -2
  107. package/dist/mcp-data/registry/agent-response.json +2 -2
  108. package/dist/mcp-data/registry/agent-source-list.json +2 -2
  109. package/dist/mcp-data/registry/agent-tool-call.json +2 -2
  110. package/dist/mcp-data/registry/attachment-list.json +2 -2
  111. package/dist/mcp-data/registry/avatar.json +2 -2
  112. package/dist/mcp-data/registry/badge.json +2 -2
  113. package/dist/mcp-data/registry/banner.json +2 -2
  114. package/dist/mcp-data/registry/bar-action.json +237 -0
  115. package/dist/mcp-data/registry/bar-nav.json +2 -2
  116. package/dist/mcp-data/registry/bar-title.json +2 -2
  117. package/dist/mcp-data/registry/bar-workflow.json +2 -2
  118. package/dist/mcp-data/registry/breadcrumb.json +2 -2
  119. package/dist/mcp-data/registry/button-filled.json +2 -2
  120. package/dist/mcp-data/registry/button-unfilled.json +8 -8
  121. package/dist/mcp-data/registry/card-chart.json +2 -2
  122. package/dist/mcp-data/registry/card-overview.json +3 -3
  123. package/dist/mcp-data/registry/card-setting.json +2 -2
  124. package/dist/mcp-data/registry/chart-legend.json +2 -2
  125. package/dist/mcp-data/registry/chart.json +2 -2
  126. package/dist/mcp-data/registry/checkbox.json +2 -2
  127. package/dist/mcp-data/registry/chip.json +2 -2
  128. package/dist/mcp-data/registry/code-block.json +2 -2
  129. package/dist/mcp-data/registry/conversation-list-item.json +2 -2
  130. package/dist/mcp-data/registry/conversation-list-section.json +2 -2
  131. package/dist/mcp-data/registry/conversation-list.json +2 -2
  132. package/dist/mcp-data/registry/divider.json +2 -2
  133. package/dist/mcp-data/registry/empty-state.json +2 -2
  134. package/dist/mcp-data/registry/field.json +2 -2
  135. package/dist/mcp-data/registry/filter-menu.json +5 -4
  136. package/dist/mcp-data/registry/icon.json +3 -3
  137. package/dist/mcp-data/registry/input.json +2 -2
  138. package/dist/mcp-data/registry/loader.json +2 -2
  139. package/dist/mcp-data/registry/markdown.json +2 -2
  140. package/dist/mcp-data/registry/menu.json +3 -3
  141. package/dist/mcp-data/registry/message-actions.json +2 -2
  142. package/dist/mcp-data/registry/message-bubble.json +2 -2
  143. package/dist/mcp-data/registry/message-composer.json +2 -2
  144. package/dist/mcp-data/registry/message-scroller.json +2 -2
  145. package/dist/mcp-data/registry/message.json +2 -2
  146. package/dist/mcp-data/registry/mobile-bar-nav.json +2 -2
  147. package/dist/mcp-data/registry/mobile-header.json +2 -2
  148. package/dist/mcp-data/registry/mobile-section-switcher.json +2 -2
  149. package/dist/mcp-data/registry/mobile-sheet-nav.json +2 -2
  150. package/dist/mcp-data/registry/modal.json +2 -2
  151. package/dist/mcp-data/registry/panel-nav.json +2 -2
  152. package/dist/mcp-data/registry/panel-sub-nav.json +2 -2
  153. package/dist/mcp-data/registry/panel-tool-header.json +3 -3
  154. package/dist/mcp-data/registry/panel-tool-search.json +2 -2
  155. package/dist/mcp-data/registry/panel-tools.json +2 -2
  156. package/dist/mcp-data/registry/radio.json +2 -2
  157. package/dist/mcp-data/registry/registry.json +141 -18
  158. package/dist/mcp-data/registry/scroll-overlay.json +3 -3
  159. package/dist/mcp-data/registry/select.json +4 -3
  160. package/dist/mcp-data/registry/shell-app.json +3 -3
  161. package/dist/mcp-data/registry/shell-page.json +2 -2
  162. package/dist/mcp-data/registry/shell-tools.json +3 -3
  163. package/dist/mcp-data/registry/skeleton.json +2 -2
  164. package/dist/mcp-data/registry/slider.json +2 -2
  165. package/dist/mcp-data/registry/swatch-picker.json +2 -2
  166. package/dist/mcp-data/registry/switch.json +2 -2
  167. package/dist/mcp-data/registry/tab-group.json +2 -2
  168. package/dist/mcp-data/registry/table.json +16 -29
  169. package/dist/mcp-data/registry/tag.json +2 -2
  170. package/dist/mcp-data/registry/text.json +2 -2
  171. package/dist/mcp-data/registry/toast.json +2 -2
  172. package/dist/mcp-data/registry/tooltip-chart.json +2 -2
  173. package/dist/mcp-data/registry/tooltip.json +2 -2
  174. package/dist/mcp-data/registry/typing-indicator.json +2 -2
  175. package/dist/react/components.d.ts +1 -0
  176. package/dist/react/components.js +1 -0
  177. package/dist/react/ds-bar-action.d.ts +12 -0
  178. package/dist/react/ds-bar-action.js +12 -0
  179. package/dist/react/ds-table.d.ts +1 -2
  180. package/dist/react/ds-table.js +0 -1
  181. package/dist/styles/table.css +16 -4
  182. package/dist/types/components/BarAction/BarAction.d.ts +25 -0
  183. package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +2 -2
  184. package/dist/types/components/Table/Table.d.ts +2 -3
  185. package/dist/types/components/Table/index.d.ts +1 -1
  186. package/dist/types/components/Table/table-model.d.ts +1 -2
  187. package/dist/types/components/Table/table-types.d.ts +1 -4
  188. package/dist/types/components.d.ts +84 -8
  189. package/package.json +5 -5
  190. package/dist/components/p-BxQlH4gl.js.map +0 -1
  191. package/dist/components/p-C8U5BsJf.js +0 -2
  192. package/dist/components/p-C8U5BsJf.js.map +0 -1
  193. package/dist/components/p-CB8iBV_M.js.map +0 -1
  194. package/dist/components/p-CP2W8qxB.js +0 -2
  195. package/dist/components/p-Csq6XDgm.js +0 -2
  196. package/dist/components/p-Csq6XDgm.js.map +0 -1
  197. package/dist/components/p-DtvJTPds.js.map +0 -1
  198. /package/dist/components/{p-BqFKxWVl.js.map → p-B7Hf86NF.js.map} +0 -0
  199. /package/dist/components/{p-BCfgU8Fh.js.map → p-BDCrM8-1.js.map} +0 -0
  200. /package/dist/components/{p-BOjGzd5N.js.map → p-BagXfn1G.js.map} +0 -0
  201. /package/dist/components/{p-DeBto13S.js.map → p-Bf_D3crn.js.map} +0 -0
  202. /package/dist/components/{p-CUQTEeLp.js.map → p-CElfUmMp.js.map} +0 -0
  203. /package/dist/components/{p-BMq4DJWh.js.map → p-CIhETsHv.js.map} +0 -0
  204. /package/dist/components/{p-5uI3i2vg.js.map → p-CQS5aWiC.js.map} +0 -0
  205. /package/dist/components/{p-oyZjjoYV.js.map → p-CUeuemsF.js.map} +0 -0
  206. /package/dist/components/{p-BQkZ8FIl.js.map → p-Cae9PFPE.js.map} +0 -0
  207. /package/dist/components/{p-C_tqXl5P.js.map → p-Cih1XCy3.js.map} +0 -0
  208. /package/dist/components/{p-N4m0evkj.js.map → p-CoTD4Mmb.js.map} +0 -0
  209. /package/dist/components/{p-C7ywYAzN.js.map → p-D-kWb8cF.js.map} +0 -0
  210. /package/dist/components/{p-BtY2nJW4.js.map → p-D0i_J2rj.js.map} +0 -0
  211. /package/dist/components/{p-Qzh-wyTg.js.map → p-DLkNcCY0.js.map} +0 -0
  212. /package/dist/components/{p-Xr9OO-Ao.js.map → p-DXgSSxyB.js.map} +0 -0
  213. /package/dist/components/{p-CswBI711.js.map → p-DY_sA9Jz.js.map} +0 -0
  214. /package/dist/components/{p-BDsAON4I.js.map → p-DatlGTJp.js.map} +0 -0
  215. /package/dist/components/{p-NzOcZg8r.js.map → p-DcPVSNDr.js.map} +0 -0
  216. /package/dist/components/{p-smzwm_EW.js.map → p-S9IjLCGj.js.map} +0 -0
  217. /package/dist/components/{p-C8keZ4k6.js.map → p-ZtJM0cZm.js.map} +0 -0
  218. /package/dist/components/{p-NuRg_IoA.js.map → p-nMkoXLC0.js.map} +0 -0
@@ -1 +1 @@
1
- {"schemaVersion":1,"package":"@ds-mo/ui","version":"13.18.0","components":68,"digest":"da9617973f2183c74efc1698c90e70ca2c4d660afcb87911d54ed9154573a9b3","completedAt":"2026-08-14T00:28:14.055Z"}
1
+ {"schemaVersion":1,"package":"@ds-mo/ui","version":"14.0.0","components":69,"digest":"fe271f437982df4da994c053163c0f969e8d7dd994aa055089686f6f3da3b093","completedAt":"2026-08-14T23:15:47.625Z"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
3
  "package": "@ds-mo/ui",
4
- "packageVersion": "13.18.0",
4
+ "packageVersion": "14.0.0",
5
5
  "kind": "patterns",
6
6
  "entries": [
7
7
  {
@@ -449,7 +449,7 @@
449
449
  "stateOwnership": [
450
450
  "The application owns the selected command or view value and derives the trigger label and each item's isSelected state from it.",
451
451
  "The application synchronizes one open boolean to the trigger's expanded prop and Menu.open.",
452
- "An open popup is a transient pressed state, not a selected one. The trigger holds its pressed wash for the popup's rendered lifecycle from expanded alone, so never also set isActive to represent an open menu.",
452
+ "An open popup is a transient pressed state, not a selected one. The trigger holds only its pressed wash for the popup's rendered lifecycle from expanded alone, without changing foreground, so never also set isActive to represent an open menu.",
453
453
  "Menu owns popup placement and keyboard navigation; the application never calculates popup coordinates or applies positional CSS.",
454
454
  "On dsSelect, update the selected value, close the Menu, and restore focus to the trigger.",
455
455
  "On dsClose, synchronize the application open state to false."
package/dist/agent.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
3
  "package": "@ds-mo/ui",
4
- "packageVersion": "13.18.0",
4
+ "packageVersion": "14.0.0",
5
5
  "kind": "components",
6
6
  "entries": [
7
7
  {
@@ -926,6 +926,127 @@
926
926
  "tooltip"
927
927
  ]
928
928
  },
929
+ {
930
+ "id": "component:ds-bar-action",
931
+ "tag": "ds-bar-action",
932
+ "name": "bar-action",
933
+ "title": "BarAction",
934
+ "summary": "Compact bold-brand selection-action chrome that reports a selected count, offers Clear, and hosts application commands on a medium-elevation surface.",
935
+ "intentStatus": "complete",
936
+ "intent": {
937
+ "audience": "general",
938
+ "status": "stable",
939
+ "summary": "Compact bold-brand selection-action chrome that reports a selected count, offers Clear, and hosts application commands on a medium-elevation surface.",
940
+ "useWhen": [
941
+ "A multi-select table or similar collection needs a persistent bar of commands for the current selected set.",
942
+ "The application owns selected identities and must keep bulk actions visually consistent across surfaces."
943
+ ],
944
+ "avoidWhen": [
945
+ "The message is an application-wide announcement rather than a selected-set command surface; use Banner.",
946
+ "A single row or card needs local overflow commands; use ButtonUnfilled with Menu.",
947
+ "The chrome is a table result summary or footer; compose Table's footer instead."
948
+ ],
949
+ "alternatives": [
950
+ {
951
+ "when": "The message is a persistent application announcement.",
952
+ "component": "component:ds-banner",
953
+ "reason": "Banner owns shell-level messaging and does not represent a selected set."
954
+ },
955
+ {
956
+ "when": "A single row or card needs local overflow commands.",
957
+ "component": "component:ds-button-unfilled",
958
+ "reason": "ButtonUnfilled with Menu owns local item commands rather than selected-set bulk actions."
959
+ }
960
+ ],
961
+ "commonlyComposedWith": [
962
+ "component:ds-table",
963
+ "component:ds-button-unfilled",
964
+ "component:ds-button-filled",
965
+ "component:ds-menu",
966
+ "component:ds-text"
967
+ ],
968
+ "patterns": [],
969
+ "accessibility": [
970
+ "Provide a group accessible name that describes the selected-set commands.",
971
+ "Keep Clear as a real button. A persistent polite live region announces valid selected-count updates without stealing focus.",
972
+ "Name every slotted action. Icon-only commands still need an explicit accessible name.",
973
+ "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."
974
+ ],
975
+ "states": [
976
+ "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.",
977
+ "Clear reports intent only. The application replaces the controlled selected identities.",
978
+ "Slotted actions stay application-owned. Pass background matching the bold parent surface so those controls remain readable.",
979
+ "The component-owned visible surface owns medium control-elevation and removes the empty actions lane. Overlay inset, footer clearance, and stacking remain application layout."
980
+ ],
981
+ "responsiveBehavior": [
982
+ "The count truncates before Clear or trailing actions lose their complete hit targets.",
983
+ "The bar fills its owner's inline size. Overlay inset, footer clearance, and stacking against a table remain the consuming layout."
984
+ ],
985
+ "frameworkCaveats": {
986
+ "customElements": [
987
+ "Bind count from the current selected set, replace that set after dsClear, and return focus to a stable collection control.",
988
+ "Project command controls through slot=actions with background matching the bold parent surface."
989
+ ],
990
+ "react": [
991
+ "Pass count from selected row or item state, clear that state from onDsClear, and return focus to a stable collection control.",
992
+ "Place DsBarAction in the same positioned owner as the table when overlaying the table footer."
993
+ ],
994
+ "angular": [
995
+ "Bind count from the controlled selected identities, handle dsClear in the collection owner, and return focus to a stable collection control.",
996
+ "Project ds-button-unfilled or ds-button-filled into slot=actions with background matching the bold parent surface."
997
+ ]
998
+ },
999
+ "references": [
1000
+ {
1001
+ "label": "Storybook review matrix",
1002
+ "path": "src/wc/components/BarAction/BarAction.stories.ts"
1003
+ },
1004
+ {
1005
+ "label": "Rendered behavior coverage",
1006
+ "path": "tests/e2e/bar-action.spec.ts"
1007
+ }
1008
+ ]
1009
+ },
1010
+ "api": {
1011
+ "props": {
1012
+ "clearLabel": {
1013
+ "type": "string",
1014
+ "required": false
1015
+ },
1016
+ "count": {
1017
+ "type": "number",
1018
+ "required": false
1019
+ },
1020
+ "label": {
1021
+ "type": "string",
1022
+ "required": false
1023
+ },
1024
+ "selectedLabel": {
1025
+ "type": "string",
1026
+ "required": false
1027
+ }
1028
+ },
1029
+ "events": [
1030
+ {
1031
+ "name": "dsClear",
1032
+ "detail": "MouseEvent"
1033
+ }
1034
+ ],
1035
+ "slots": []
1036
+ },
1037
+ "exports": {
1038
+ "customElement": "ds-bar-action",
1039
+ "react": "DsBarAction",
1040
+ "angular": "DsBarAction"
1041
+ },
1042
+ "dependencies": [
1043
+ "@ds-mo/ui",
1044
+ "@ds-mo/tokens"
1045
+ ],
1046
+ "componentDependencies": [
1047
+ "text"
1048
+ ]
1049
+ },
929
1050
  {
930
1051
  "id": "component:ds-bar-nav",
931
1052
  "tag": "ds-bar-nav",
@@ -1828,7 +1949,7 @@
1828
1949
  ],
1829
1950
  "accessibility": [
1830
1951
  "Provide an explicit accessible name for every icon-only action.",
1831
- "Set hasMenu when the button triggers a Menu; it implies aria-haspopup of menu. Pass controls with the Menu id and expanded from the same open state given to Menu. Expanded popup triggers hold the pressed visual while open; expanded disclosure controls without popup semantics retain the normal resting appearance.",
1952
+ "Set hasMenu when the button triggers a Menu; it implies aria-haspopup of menu. Pass controls with the Menu id and expanded from the same open state given to Menu. Expanded popup triggers hold only the pressed wash while open, without changing their resting foreground; expanded disclosure controls without popup semantics retain the normal resting appearance.",
1832
1953
  "Give an icon-only menu button an accessible name that states the role, such as More options, because no visible label or chevron carries it.",
1833
1954
  "Use haspopup directly for a non-menu popup such as a listbox or dialog; those cases get no chevron.",
1834
1955
  "Use pressed only for a genuine toggle button; it supplies aria-pressed and dsChange intent. Use isActive only for owner-controlled visual emphasis inside a composite whose selection semantics live on the owner.",
@@ -1851,7 +1972,7 @@
1851
1972
  "Icon and icon-label loading replace the icon in place. Label-only loading centers the loader while preserving the button's measured width.",
1852
1973
  "hasMenu covers two distinct menu-button shapes and the variant selects between them. With label or icon-label the action has a menu, and a trailing chevron carries the affordance. With icon the button is a menu, meaning the overflow or more-options control, and no chevron is added.",
1853
1974
  "Because the icon-only shape has no chevron, its glyph must convey the menu on its own; use Ellipses. Never pair hasMenu with an icon-only glyph that does not read as a menu.",
1854
- "An open popup is a transient pressed state rather than a selected one. While expanded is true and haspopup or hasMenu identifies a popup, the pressed wash is held for the popup's complete rendered lifecycle and survives hover, including when chrome opts out of selected fills with activeFill set to false. Expanded disclosure buttons without popup semantics remain visually neutral."
1975
+ "An open popup is a transient pressed state rather than a selected one. While expanded is true and haspopup or hasMenu identifies a popup, the pressed wash is held for the popup's complete rendered lifecycle and survives hover without promoting foreground or selected fill, including when chrome opts out of selected fills with activeFill set to false. Expanded disclosure buttons without popup semantics remain visually neutral."
1855
1976
  ],
1856
1977
  "responsiveBehavior": [
1857
1978
  "The consuming layout decides when an icon-label action becomes icon-only and must provide an explicit accessible name after changing variants.",
@@ -2125,7 +2246,7 @@
2125
2246
  "intentStatus": "complete",
2126
2247
  "intent": {
2127
2248
  "audience": "general",
2128
- "status": "experimental",
2249
+ "status": "stable",
2129
2250
  "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.",
2130
2251
  "useWhen": [
2131
2252
  "A page opens with one headline figure that the surrounding measures explain.",
@@ -3662,7 +3783,7 @@
3662
3783
  "component:ds-checkbox"
3663
3784
  ],
3664
3785
  "accessibility": [
3665
- "The built-in select trigger exposes combobox semantics with a dialog popup, synchronizes expanded state, and restores focus after dismissal.",
3786
+ "The built-in select trigger exposes combobox semantics with a dialog popup, synchronizes expanded state, holds the pressed interaction wash without changing resting foreground while open, and restores focus after dismissal.",
3666
3787
  "The category pane is a vertical tab list. Arrow Up and Arrow Down wrap, Home and End jump, Arrow Right enters the option pane, and Arrow Left returns to the active category.",
3667
3788
  "Escape and outside activation close the popup and restore trigger focus. Tab moves through option controls and closes only when it leaves the popup boundary.",
3668
3789
  "The trigger count reports active filter categories. Category counts and the footer report individual selected criteria; none replace visible selected-state indication."
@@ -3671,6 +3792,7 @@
3671
3792
  "The application owns filters, values, activeFilterId, and open. Replace controlled objects and arrays after dsChange, dsActiveFilterChange, dsClear, or dsClose.",
3672
3793
  "Single filters return a string, multiple filters return ordered string arrays, boolean filters return a boolean, and date filters return a YYYY-MM-DD string.",
3673
3794
  "Selection applies immediately and does not close the popup.",
3795
+ "Changing category replaces the option-pane subtree so checkbox and other option visuals mount in their new state instead of transitioning from the previous category's row state.",
3674
3796
  "The trigger reports how many filter categories have selections, while the footer appears when values are selected and reports the total selected criteria."
3675
3797
  ],
3676
3798
  "responsiveBehavior": [
@@ -6627,7 +6749,7 @@
6627
6749
  "intentStatus": "complete",
6628
6750
  "intent": {
6629
6751
  "audience": "general",
6630
- "status": "experimental",
6752
+ "status": "stable",
6631
6753
  "summary": "Generic scroll owner for content that moves behind a persistent footer action or composer with an always-active alpha fade.",
6632
6754
  "useWhen": [
6633
6755
  "A bounded region owns scrolling while footer actions remain overlaid and continuously visible.",
@@ -6765,6 +6887,7 @@
6765
6887
  "Option labels and the selected trigger label stay on one line and truncate when constrained. Option subtext may wrap to at most two lines.",
6766
6888
  "Use an option action only for a contextual menu about that user-managed option. The fixed ellipsis action appears on hover, keyboard activity, focus, and touch; expanded keeps it visible while its controlled menu is open. Activating it emits dsOptionAction without selecting the option or closing the Select popup.",
6767
6889
  "The optional prefix icon and chevron always use the parent surface's secondary foreground color, including when a selected value promotes the label to primary.",
6890
+ "While the popup is open, the trigger holds the pressed interaction wash without changing its resting foreground or selected-value treatment.",
6768
6891
  "The shared popup search control follows the Select density, using the same text, icon, and internal spacing as a borderless trigger. Its container uses menu-item padding on every side and owns a 1px bottom divider that becomes a 1.5px bold-brand stroke while search has focus. Search placeholder text is secondary at rest and quaternary while focused because it becomes decorative once the editable field is active.",
6769
6892
  "When search contains text, the shared control shows a rounded icon-only ButtonUnfilled with the CrossCircle icon and no border, sized to remain inset within the current row density. It clears the local term, stays hidden for an empty term, and returns focus to search.",
6770
6893
  "The shared clear footer mirrors the owning density: menu-item padding surrounds a borderless density row, and the Clear label uses the same row and label insets as option text. The clear action never wraps. In multiple mode, the selected summary stays on one line and collapses to its numeric count when the full localized phrase would compete with the clear action. The outer footer owns a 1px top divider.",
@@ -8330,7 +8453,7 @@
8330
8453
  "intentStatus": "complete",
8331
8454
  "intent": {
8332
8455
  "audience": "general",
8333
- "status": "experimental",
8456
+ "status": "stable",
8334
8457
  "summary": "Semantic, controlled data table with durable visual primitives for cell geometry, column geometry, grouping, sorting, multi-selection, sticky overflow, and incremental loading.",
8335
8458
  "useWhen": [
8336
8459
  "A structured dataset needs native row and column relationships, optional one-level grouping, or comparable values across records.",
@@ -8347,13 +8470,14 @@
8347
8470
  "component:ds-empty-state",
8348
8471
  "component:ds-skeleton",
8349
8472
  "component:ds-loader",
8473
+ "component:ds-bar-action",
8350
8474
  "component:ds-button-unfilled",
8351
8475
  "component:ds-tag",
8352
8476
  "component:ds-icon"
8353
8477
  ],
8354
8478
  "accessibility": [
8355
8479
  "The rendered structure uses a native table, caption, column headers, row groups, and data cells; keep the caption non-empty. The native caption remains visually hidden as the table's accessible name. When caption visibility is enabled, a 48px header bar renders as component chrome outside the horizontal scrollport. It defaults to a presentational caption title that does not duplicate the accessible name. Application-owned labeled controls supplied through the single named header slot replace that fallback and receive the complete content width inside the component-owned 8px inset, so the application can compose its own control groups and alignment without table-defined leading or trailing zones.",
8356
- "Sorting controls remain buttons inside column headers. Member-row sort uses aria-sort, while independent group order is described by the grouped header control.",
8480
+ "Sorting controls remain buttons inside column headers and expose the table's one controlled member-row sort through aria-sort. Grouping never adds a second sort indicator or header control; the application supplies groups in its fixed product order.",
8357
8481
  "Selection controls expose checkbox semantics and explicit row names; select-all affects selectable loaded rows only and preserves selected identities outside the loaded window. When grouping is active with multi-selection, each group section header also exposes a checkbox that selects or clears that group's selectable loaded rows.",
8358
8482
  "Interactive rows are focusable as native rows, activate with Enter or Space, and do not steal activation from their nested selection or action controls.",
8359
8483
  "Scrollable table regions become keyboard focusable and named only when overflow exists.",
@@ -8361,9 +8485,9 @@
8361
8485
  "An optional result summary footer appears below the table frame when both displayedCount and totalCount are finite, formatting Displaying {displayed} of {total} in text-body-medium secondary. The footer slot can replace that copy, while footer-leading and footer-trailing compose actions into the same compact-bar anatomy. Authored footer content can also opt into the 48px footer without controlled counts."
8362
8486
  ],
8363
8487
  "states": [
8364
- "Columns, rows, groups, grouping, sorting, selected row IDs, collapsed group IDs, displayedCount, totalCount, and lazy-loading state are controlled inputs. Events communicate intent and never mutate those inputs. The optional header is one full-width composable table-local surface: the component owns its 48px chrome, 8px inset on every side, and sticky placement while the application owns all internal layout, controls, labels, filtering behavior, and action handling. The footer retains its compact-bar copy and action composition. Content-sized tables remain natural for sparse or fixed-count results. height bounds the complete header, frame, and footer composition. fitViewport reserves the compact-state composition height in the nearest vertical scrollport while growing the visible table into that reservation as surrounding page chrome collapses.",
8365
- "Grouping supports one level. The application supplies ordered groups and ordered member rows; group order and member-row sort are independent controls. Group section headers show an emphasized text-body-medium label followed by a rounded sm Tag containing only the numeric count. The Tag uses the group's faint intent surface (neutral when intent is absent) and a small-elevation, button-hugging wrapper; a localized countLabel remains available to assistive technology. Groups may declare an optional intent (brand, neutral, negative, warning, caution, positive) that paints an LTR gradient from the faint intent surface at the label edge into faint neutral at the trailing edge, plus a bold intent title color. Neutral groups remain solid faint neutral. Section separators are painted inside that viewport-width surface so translucent border tokens composite with each intent background; the final collapsed section does not duplicate the terminal table edge. A trailing visually neutral icon-only ButtonUnfilled uses the 24px md double-inset action recipe and toggles controlled collapsedGroupIds, showing ChevronUp while expanded and ChevronDown while collapsed. While any group remains expanded, a ChevronDownUp action uses the xs sort-control recipe widened to a table-owned 24px lane and collapses every group. It appears at the inline-end edge of the trailing column declared with kind action when one exists; otherwise a button-hugging 24px by 16px medium-elevation surface floats at the visible scrollport's header edge so the action remains reachable while member columns scroll beneath it. With stickyHeader enabled, each contained section uses its one real section row as a native sticky header inside its real row-group boundary. The browser therefore owns pinning, push-off, scrolling, and resize layout in one pass without a duplicated lane, active-section state, transforms, or scroll-time geometry. Shared grid tracks retain exact header and member-cell alignment. The section surface also stays pinned to the visible horizontal scrollport and spans the smaller of the visible viewport or table width.",
8366
- "An active member sort toggles only between ascending and descending; activating a different sortable label moves sorting to that key. Applications may still clear the controlled sort state explicitly. The grouped column toggles ascending and descending group order without clearing member sort.",
8488
+ "Columns, rows, groups, grouping, sorting, selected row IDs, collapsed group IDs, displayedCount, totalCount, and lazy-loading state are controlled inputs. Events communicate intent and never mutate those inputs. The optional header is one full-width composable table-local surface: the component owns its 48px chrome, 8px inset on every side, and sticky placement while the application owns all internal layout, controls, labels, filtering behavior, and action handling. The footer retains its compact-bar composition: application-owned leading status sits left while the controlled result summary aligns right, before any trailing action. Content-sized tables remain natural for sparse or fixed-count results. height bounds the complete header, frame, and footer composition. fitViewport reserves the compact-state composition height in the nearest vertical scrollport while growing the visible table into that reservation as surrounding page chrome collapses.",
8489
+ "Grouping supports one level. The application supplies groups in a fixed product-defined order and supplies ordered member rows independently. Group section headers show an emphasized text-body-medium label followed by a rounded sm Tag containing only the numeric count. The Tag uses the group's faint intent surface (neutral when intent is absent) and a small-elevation, button-hugging wrapper; a localized countLabel remains available to assistive technology. Groups may declare an optional intent (brand, neutral, negative, warning, caution, positive) that paints an LTR gradient from the faint intent surface at the label edge into faint neutral at the trailing edge, plus a bold intent title color. Neutral groups remain solid faint neutral. Section separators are painted inside that viewport-width surface so translucent border tokens composite with each intent background; the final collapsed section does not duplicate the terminal table edge. A trailing visually neutral icon-only ButtonUnfilled uses the 24px md double-inset action recipe and toggles controlled collapsedGroupIds, showing ChevronUp while expanded and ChevronDown while collapsed. While any group remains expanded, a ChevronDownUp action uses the xs sort-control recipe widened to a table-owned 24px lane and collapses every group. It appears at the inline-end edge of the trailing column declared with kind action when one exists; otherwise a button-hugging 24px by 16px medium-elevation surface floats at the visible scrollport's header edge so the action remains reachable while member columns scroll beneath it. With stickyHeader enabled, each contained section uses its one real section row as a native sticky header inside its real row-group boundary. The browser therefore owns pinning, push-off, scrolling, and resize layout in one pass without a duplicated lane, active-section state, transforms, or scroll-time geometry. Shared grid tracks retain exact header and member-cell alignment. The section surface also stays pinned to the visible horizontal scrollport and spans the smaller of the visible viewport or table width.",
8490
+ "An active member sort toggles only between ascending and descending; activating a different sortable label moves the one sorting state to that key. Applications may still clear the controlled sort state explicitly. Grouping does not introduce another interactive direction.",
8367
8491
  "Compound headers can expose multiple related labels with independent sort keys. Each label owns only its content-width interaction target while the active direction remains in the column's alignment-aware sort lane.",
8368
8492
  "Initial loading uses row-shaped skeletons that preserve the standard single-line cell padding, row dividers, column dividers, selection lane, and sticky-lane boundaries. Empty, initial error, load-more, retry, loading-more, and terminal bands remain fixed to the visible table width while data columns scroll horizontally beneath them. Incremental loading retains existing rows and supports automatic sentinel, manual load-more, retry, and terminal states.",
8369
8493
  "Lazy loading replaces pagination. The application owns requests, cancellation, cursors, deduplication, appended records, and query identity; loadIdentity resets the component request guard.",
@@ -8385,11 +8509,11 @@
8385
8509
  "frameworkCaveats": {
8386
8510
  "customElements": [
8387
8511
  "Assign columns, rows, groups, grouping, sort, selectedRowIds, collapsedGroupIds, displayedCount, and totalCount through JavaScript properties rather than HTML attribute strings.",
8388
- "Replace controlled property values in response to dsSortChange, dsGroupingChange, dsGroupCollapseChange, dsSelectionChange, and dsLoadMore; route dsRowActivate in the application owner."
8512
+ "Replace controlled property values in response to dsSortChange, dsGroupCollapseChange, dsSelectionChange, and dsLoadMore; route dsRowActivate in the application owner."
8389
8513
  ],
8390
8514
  "react": [
8391
8515
  "Pass new array and state-object references when the controlled data or query state changes.",
8392
- "Apply emitted sort, grouping, collapse, selection, action, or loading detail to application state and perform data transformations in the owning layer."
8516
+ "Apply emitted sort, collapse, selection, action, or loading detail to application state and perform data transformations in the owning layer."
8393
8517
  ],
8394
8518
  "angular": [
8395
8519
  "Bind complex table inputs as properties and update the controlled values from the corresponding output events.",
@@ -8579,10 +8703,6 @@
8579
8703
  "name": "dsGroupCollapseChange",
8580
8704
  "detail": "TableGroupCollapseChangeDetail"
8581
8705
  },
8582
- {
8583
- "name": "dsGroupingChange",
8584
- "detail": "TableGroupingChangeDetail"
8585
- },
8586
8706
  {
8587
8707
  "name": "dsLoadMore",
8588
8708
  "detail": "TableLoadMoreDetail"
@@ -0,0 +1,18 @@
1
+ import { ChangeDetectorRef, ElementRef, NgZone, EventEmitter } from '@angular/core';
2
+ import type { Components } from '@ds-mo/ui/components';
3
+ import type { DsBarActionCustomEvent } from '@ds-mo/ui/components';
4
+ import * as i0 from "@angular/core";
5
+ export declare class DsBarAction {
6
+ protected z: NgZone;
7
+ protected el: HTMLDsBarActionElement;
8
+ dsClear: EventEmitter<DsBarActionCustomEvent<MouseEvent>>;
9
+ constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<DsBarAction, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<DsBarAction, "ds-bar-action", never, { "clearLabel": { "alias": "clearLabel"; "required": false; }; "count": { "alias": "count"; "required": false; }; "label": { "alias": "label"; "required": false; }; "selectedLabel": { "alias": "selectedLabel"; "required": false; }; }, { "dsClear": "dsClear"; }, never, ["*"], true, never>;
12
+ }
13
+ export declare interface DsBarAction extends Components.DsBarAction {
14
+ /**
15
+ * Emitted when Clear is activated. The application owns the selected identities.
16
+ */
17
+ dsClear: EventEmitter<DsBarActionCustomEvent<MouseEvent>>;
18
+ }
@@ -0,0 +1,42 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ /* tslint:disable */
8
+ /* auto-generated angular directive proxies */
9
+ import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';
10
+ import { ProxyCmp } from './angular-component-lib/utils.js';
11
+ import { defineCustomElement as defineDsBarAction } from '@ds-mo/ui/components/ds-bar-action.js';
12
+ import * as i0 from "@angular/core";
13
+ let DsBarAction = class DsBarAction {
14
+ constructor(c, r, z) {
15
+ this.z = z;
16
+ this.dsClear = new EventEmitter();
17
+ c.detach();
18
+ this.el = r.nativeElement;
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: DsBarAction, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.0", type: DsBarAction, isStandalone: true, selector: "ds-bar-action", inputs: { clearLabel: "clearLabel", count: "count", label: "label", selectedLabel: "selectedLabel" }, outputs: { dsClear: "dsClear" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
+ };
23
+ DsBarAction = __decorate([
24
+ ProxyCmp({
25
+ defineCustomElementFn: defineDsBarAction,
26
+ inputs: ['clearLabel', 'count', 'label', 'selectedLabel']
27
+ })
28
+ ], DsBarAction);
29
+ export { DsBarAction };
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: DsBarAction, decorators: [{
31
+ type: Component,
32
+ args: [{
33
+ selector: 'ds-bar-action',
34
+ changeDetection: ChangeDetectionStrategy.OnPush,
35
+ template: '<ng-content></ng-content>',
36
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
37
+ inputs: ['clearLabel', 'count', 'label', 'selectedLabel'],
38
+ outputs: ['dsClear'],
39
+ }]
40
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { dsClear: [{
41
+ type: Output
42
+ }] } });
@@ -2,7 +2,6 @@ import { ChangeDetectorRef, ElementRef, NgZone, EventEmitter } from '@angular/co
2
2
  import type { Components } from '@ds-mo/ui/components';
3
3
  import type { DsTableCustomEvent } from '@ds-mo/ui/components';
4
4
  import type { TableSortChangeDetail as IDsTableTableSortChangeDetail } from '@ds-mo/ui/components';
5
- import type { TableGroupingChangeDetail as IDsTableTableGroupingChangeDetail } from '@ds-mo/ui/components';
6
5
  import type { TableGroupCollapseChangeDetail as IDsTableTableGroupCollapseChangeDetail } from '@ds-mo/ui/components';
7
6
  import type { TableSelectionChangeDetail as IDsTableTableSelectionChangeDetail } from '@ds-mo/ui/components';
8
7
  import type { TableLoadMoreDetail as IDsTableTableLoadMoreDetail } from '@ds-mo/ui/components';
@@ -13,7 +12,6 @@ export declare class DsTable {
13
12
  protected z: NgZone;
14
13
  protected el: HTMLDsTableElement;
15
14
  dsSortChange: EventEmitter<DsTableCustomEvent<IDsTableTableSortChangeDetail>>;
16
- dsGroupingChange: EventEmitter<DsTableCustomEvent<IDsTableTableGroupingChangeDetail>>;
17
15
  dsGroupCollapseChange: EventEmitter<DsTableCustomEvent<IDsTableTableGroupCollapseChangeDetail>>;
18
16
  dsSelectionChange: EventEmitter<DsTableCustomEvent<IDsTableTableSelectionChangeDetail>>;
19
17
  dsLoadMore: EventEmitter<DsTableCustomEvent<IDsTableTableLoadMoreDetail>>;
@@ -21,11 +19,10 @@ export declare class DsTable {
21
19
  dsRowActivate: EventEmitter<DsTableCustomEvent<IDsTableTableRowActivateDetail>>;
22
20
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
23
21
  static ɵfac: i0.ɵɵFactoryDeclaration<DsTable, never>;
24
- static ɵcmp: i0.ɵɵComponentDeclaration<DsTable, "ds-table", never, { "caption": { "alias": "caption"; "required": true; }; "captionVisibility": { "alias": "captionVisibility"; "required": false; }; "collapsedGroupIds": { "alias": "collapsedGroupIds"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "displayedCount": { "alias": "displayedCount"; "required": false; }; "emptyBody": { "alias": "emptyBody"; "required": false; }; "emptyCellLabel": { "alias": "emptyCellLabel"; "required": false; }; "emptyHeading": { "alias": "emptyHeading"; "required": false; }; "endOfResultsLabel": { "alias": "endOfResultsLabel"; "required": false; }; "error": { "alias": "error"; "required": false; }; "errorBody": { "alias": "errorBody"; "required": false; }; "errorHeading": { "alias": "errorHeading"; "required": false; }; "fitViewport": { "alias": "fitViewport"; "required": false; }; "grouping": { "alias": "grouping"; "required": false; }; "groups": { "alias": "groups"; "required": false; }; "hasMore": { "alias": "hasMore"; "required": false; }; "height": { "alias": "height"; "required": false; }; "lazyLoading": { "alias": "lazyLoading"; "required": false; }; "loadIdentity": { "alias": "loadIdentity"; "required": false; }; "loadMoreError": { "alias": "loadMoreError"; "required": false; }; "loadMoreLabel": { "alias": "loadMoreLabel"; "required": false; }; "loadMoreMode": { "alias": "loadMoreMode"; "required": false; }; "loadMoreThreshold": { "alias": "loadMoreThreshold"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "loadingMore": { "alias": "loadingMore"; "required": false; }; "loadingMoreLabel": { "alias": "loadingMoreLabel"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "resultSummaryLabel": { "alias": "resultSummaryLabel"; "required": false; }; "retryLabel": { "alias": "retryLabel"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "rowsLoadedLabel": { "alias": "rowsLoadedLabel"; "required": false; }; "scrollLabel": { "alias": "scrollLabel"; "required": false; }; "selectedRowIds": { "alias": "selectedRowIds"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; }; "totalCount": { "alias": "totalCount"; "required": false; }; "viewportInsetBlockEnd": { "alias": "viewportInsetBlockEnd"; "required": false; }; "viewportInsetBlockStart": { "alias": "viewportInsetBlockStart"; "required": false; }; }, { "dsSortChange": "dsSortChange"; "dsGroupingChange": "dsGroupingChange"; "dsGroupCollapseChange": "dsGroupCollapseChange"; "dsSelectionChange": "dsSelectionChange"; "dsLoadMore": "dsLoadMore"; "dsCellAction": "dsCellAction"; "dsRowActivate": "dsRowActivate"; }, never, ["*"], true, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<DsTable, "ds-table", never, { "caption": { "alias": "caption"; "required": true; }; "captionVisibility": { "alias": "captionVisibility"; "required": false; }; "collapsedGroupIds": { "alias": "collapsedGroupIds"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "displayedCount": { "alias": "displayedCount"; "required": false; }; "emptyBody": { "alias": "emptyBody"; "required": false; }; "emptyCellLabel": { "alias": "emptyCellLabel"; "required": false; }; "emptyHeading": { "alias": "emptyHeading"; "required": false; }; "endOfResultsLabel": { "alias": "endOfResultsLabel"; "required": false; }; "error": { "alias": "error"; "required": false; }; "errorBody": { "alias": "errorBody"; "required": false; }; "errorHeading": { "alias": "errorHeading"; "required": false; }; "fitViewport": { "alias": "fitViewport"; "required": false; }; "grouping": { "alias": "grouping"; "required": false; }; "groups": { "alias": "groups"; "required": false; }; "hasMore": { "alias": "hasMore"; "required": false; }; "height": { "alias": "height"; "required": false; }; "lazyLoading": { "alias": "lazyLoading"; "required": false; }; "loadIdentity": { "alias": "loadIdentity"; "required": false; }; "loadMoreError": { "alias": "loadMoreError"; "required": false; }; "loadMoreLabel": { "alias": "loadMoreLabel"; "required": false; }; "loadMoreMode": { "alias": "loadMoreMode"; "required": false; }; "loadMoreThreshold": { "alias": "loadMoreThreshold"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "loadingMore": { "alias": "loadingMore"; "required": false; }; "loadingMoreLabel": { "alias": "loadingMoreLabel"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "resultSummaryLabel": { "alias": "resultSummaryLabel"; "required": false; }; "retryLabel": { "alias": "retryLabel"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "rowsLoadedLabel": { "alias": "rowsLoadedLabel"; "required": false; }; "scrollLabel": { "alias": "scrollLabel"; "required": false; }; "selectedRowIds": { "alias": "selectedRowIds"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; }; "totalCount": { "alias": "totalCount"; "required": false; }; "viewportInsetBlockEnd": { "alias": "viewportInsetBlockEnd"; "required": false; }; "viewportInsetBlockStart": { "alias": "viewportInsetBlockStart"; "required": false; }; }, { "dsSortChange": "dsSortChange"; "dsGroupCollapseChange": "dsGroupCollapseChange"; "dsSelectionChange": "dsSelectionChange"; "dsLoadMore": "dsLoadMore"; "dsCellAction": "dsCellAction"; "dsRowActivate": "dsRowActivate"; }, never, ["*"], true, never>;
25
23
  }
26
24
  export declare interface DsTable extends Components.DsTable {
27
25
  dsSortChange: EventEmitter<DsTableCustomEvent<IDsTableTableSortChangeDetail>>;
28
- dsGroupingChange: EventEmitter<DsTableCustomEvent<IDsTableTableGroupingChangeDetail>>;
29
26
  dsGroupCollapseChange: EventEmitter<DsTableCustomEvent<IDsTableTableGroupCollapseChangeDetail>>;
30
27
  dsSelectionChange: EventEmitter<DsTableCustomEvent<IDsTableTableSelectionChangeDetail>>;
31
28
  dsLoadMore: EventEmitter<DsTableCustomEvent<IDsTableTableLoadMoreDetail>>;
@@ -14,7 +14,6 @@ let DsTable = class DsTable {
14
14
  constructor(c, r, z) {
15
15
  this.z = z;
16
16
  this.dsSortChange = new EventEmitter();
17
- this.dsGroupingChange = new EventEmitter();
18
17
  this.dsGroupCollapseChange = new EventEmitter();
19
18
  this.dsSelectionChange = new EventEmitter();
20
19
  this.dsLoadMore = new EventEmitter();
@@ -24,7 +23,7 @@ let DsTable = class DsTable {
24
23
  this.el = r.nativeElement;
25
24
  }
26
25
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: DsTable, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.0", type: DsTable, isStandalone: true, selector: "ds-table", inputs: { caption: "caption", captionVisibility: "captionVisibility", collapsedGroupIds: "collapsedGroupIds", columns: "columns", displayedCount: "displayedCount", emptyBody: "emptyBody", emptyCellLabel: "emptyCellLabel", emptyHeading: "emptyHeading", endOfResultsLabel: "endOfResultsLabel", error: "error", errorBody: "errorBody", errorHeading: "errorHeading", fitViewport: "fitViewport", grouping: "grouping", groups: "groups", hasMore: "hasMore", height: "height", lazyLoading: "lazyLoading", loadIdentity: "loadIdentity", loadMoreError: "loadMoreError", loadMoreLabel: "loadMoreLabel", loadMoreMode: "loadMoreMode", loadMoreThreshold: "loadMoreThreshold", loading: "loading", loadingMore: "loadingMore", loadingMoreLabel: "loadingMoreLabel", maxHeight: "maxHeight", resultSummaryLabel: "resultSummaryLabel", retryLabel: "retryLabel", rows: "rows", rowsLoadedLabel: "rowsLoadedLabel", scrollLabel: "scrollLabel", selectedRowIds: "selectedRowIds", selectionMode: "selectionMode", skeletonRows: "skeletonRows", sort: "sort", stickyHeader: "stickyHeader", totalCount: "totalCount", viewportInsetBlockEnd: "viewportInsetBlockEnd", viewportInsetBlockStart: "viewportInsetBlockStart" }, outputs: { dsSortChange: "dsSortChange", dsGroupingChange: "dsGroupingChange", dsGroupCollapseChange: "dsGroupCollapseChange", dsSelectionChange: "dsSelectionChange", dsLoadMore: "dsLoadMore", dsCellAction: "dsCellAction", dsRowActivate: "dsRowActivate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.0", type: DsTable, isStandalone: true, selector: "ds-table", inputs: { caption: "caption", captionVisibility: "captionVisibility", collapsedGroupIds: "collapsedGroupIds", columns: "columns", displayedCount: "displayedCount", emptyBody: "emptyBody", emptyCellLabel: "emptyCellLabel", emptyHeading: "emptyHeading", endOfResultsLabel: "endOfResultsLabel", error: "error", errorBody: "errorBody", errorHeading: "errorHeading", fitViewport: "fitViewport", grouping: "grouping", groups: "groups", hasMore: "hasMore", height: "height", lazyLoading: "lazyLoading", loadIdentity: "loadIdentity", loadMoreError: "loadMoreError", loadMoreLabel: "loadMoreLabel", loadMoreMode: "loadMoreMode", loadMoreThreshold: "loadMoreThreshold", loading: "loading", loadingMore: "loadingMore", loadingMoreLabel: "loadingMoreLabel", maxHeight: "maxHeight", resultSummaryLabel: "resultSummaryLabel", retryLabel: "retryLabel", rows: "rows", rowsLoadedLabel: "rowsLoadedLabel", scrollLabel: "scrollLabel", selectedRowIds: "selectedRowIds", selectionMode: "selectionMode", skeletonRows: "skeletonRows", sort: "sort", stickyHeader: "stickyHeader", totalCount: "totalCount", viewportInsetBlockEnd: "viewportInsetBlockEnd", viewportInsetBlockStart: "viewportInsetBlockStart" }, outputs: { dsSortChange: "dsSortChange", dsGroupCollapseChange: "dsGroupCollapseChange", dsSelectionChange: "dsSelectionChange", dsLoadMore: "dsLoadMore", dsCellAction: "dsCellAction", dsRowActivate: "dsRowActivate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
27
  };
29
28
  DsTable = __decorate([
30
29
  ProxyCmp({
@@ -41,12 +40,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImpor
41
40
  template: '<ng-content></ng-content>',
42
41
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
43
42
  inputs: [{ name: 'caption', required: true }, 'captionVisibility', 'collapsedGroupIds', 'columns', 'displayedCount', 'emptyBody', 'emptyCellLabel', 'emptyHeading', 'endOfResultsLabel', 'error', 'errorBody', 'errorHeading', 'fitViewport', 'grouping', 'groups', 'hasMore', 'height', 'lazyLoading', 'loadIdentity', 'loadMoreError', 'loadMoreLabel', 'loadMoreMode', 'loadMoreThreshold', 'loading', 'loadingMore', 'loadingMoreLabel', 'maxHeight', 'resultSummaryLabel', 'retryLabel', 'rows', 'rowsLoadedLabel', 'scrollLabel', 'selectedRowIds', 'selectionMode', 'skeletonRows', 'sort', 'stickyHeader', 'totalCount', 'viewportInsetBlockEnd', 'viewportInsetBlockStart'],
44
- outputs: ['dsSortChange', 'dsGroupingChange', 'dsGroupCollapseChange', 'dsSelectionChange', 'dsLoadMore', 'dsCellAction', 'dsRowActivate'],
43
+ outputs: ['dsSortChange', 'dsGroupCollapseChange', 'dsSelectionChange', 'dsLoadMore', 'dsCellAction', 'dsRowActivate'],
45
44
  }]
46
45
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { dsSortChange: [{
47
46
  type: Output
48
- }], dsGroupingChange: [{
49
- type: Output
50
47
  }], dsGroupCollapseChange: [{
51
48
  type: Output
52
49
  }], dsSelectionChange: [{
@@ -1,2 +1,2 @@
1
1
  import * as d from './proxies';
2
- export declare const DIRECTIVES: (typeof d.DsAgentActivity | typeof d.DsAgentQuestionnaire | typeof d.DsAgentResponse | typeof d.DsAgentSourceList | typeof d.DsAgentToolCall | typeof d.DsAttachmentList | typeof d.DsAvatar | typeof d.DsBadge | typeof d.DsBanner | typeof d.DsBarNav | typeof d.DsBarTitle | typeof d.DsBarWorkflow | typeof d.DsBreadcrumb | typeof d.DsButtonFilled | typeof d.DsButtonUnfilled | typeof d.DsCardChart | typeof d.DsCardOverview | typeof d.DsCardSetting | typeof d.DsChartLegend | typeof d.DsChart | typeof d.DsCheckbox | typeof d.DsChip | typeof d.DsCodeBlock | typeof d.DsConversationListItem | typeof d.DsConversationListSection | typeof d.DsConversationList | typeof d.DsDivider | typeof d.DsEmptyState | typeof d.DsField | typeof d.DsFilterMenu | typeof d.DsIcon | typeof d.DsInput | typeof d.DsLoader | typeof d.DsMarkdown | typeof d.DsMenu | typeof d.DsMessageActions | typeof d.DsMessageBubble | typeof d.DsMessageComposer | typeof d.DsMessageScroller | typeof d.DsMessage | typeof d.DsMobileBarNav | typeof d.DsMobileHeader | typeof d.DsMobileSectionSwitcher | typeof d.DsMobileSheetNav | typeof d.DsModal | typeof d.DsPanelNav | typeof d.DsPanelSubNav | typeof d.DsPanelToolHeader | typeof d.DsPanelToolSearch | typeof d.DsPanelTools | typeof d.DsRadio | typeof d.DsScrollOverlay | typeof d.DsSelect | typeof d.DsShellApp | typeof d.DsShellPage | typeof d.DsShellTools | typeof d.DsSkeleton | typeof d.DsSlider | typeof d.DsSwatchPicker | typeof d.DsSwitch | typeof d.DsTabGroup | typeof d.DsTable | typeof d.DsTag | typeof d.DsText | typeof d.DsToast | typeof d.DsTooltipChart | typeof d.DsTooltip | typeof d.DsTypingIndicator)[];
2
+ export declare const DIRECTIVES: (typeof d.DsAgentActivity | typeof d.DsAgentQuestionnaire | typeof d.DsAgentResponse | typeof d.DsAgentSourceList | typeof d.DsAgentToolCall | typeof d.DsAttachmentList | typeof d.DsAvatar | typeof d.DsBadge | typeof d.DsBanner | typeof d.DsBarAction | typeof d.DsBarNav | typeof d.DsBarTitle | typeof d.DsBarWorkflow | typeof d.DsBreadcrumb | typeof d.DsButtonFilled | typeof d.DsButtonUnfilled | typeof d.DsCardChart | typeof d.DsCardOverview | typeof d.DsCardSetting | typeof d.DsChartLegend | typeof d.DsChart | typeof d.DsCheckbox | typeof d.DsChip | typeof d.DsCodeBlock | typeof d.DsConversationListItem | typeof d.DsConversationListSection | typeof d.DsConversationList | typeof d.DsDivider | typeof d.DsEmptyState | typeof d.DsField | typeof d.DsFilterMenu | typeof d.DsIcon | typeof d.DsInput | typeof d.DsLoader | typeof d.DsMarkdown | typeof d.DsMenu | typeof d.DsMessageActions | typeof d.DsMessageBubble | typeof d.DsMessageComposer | typeof d.DsMessageScroller | typeof d.DsMessage | typeof d.DsMobileBarNav | typeof d.DsMobileHeader | typeof d.DsMobileSectionSwitcher | typeof d.DsMobileSheetNav | typeof d.DsModal | typeof d.DsPanelNav | typeof d.DsPanelSubNav | typeof d.DsPanelToolHeader | typeof d.DsPanelToolSearch | typeof d.DsPanelTools | typeof d.DsRadio | typeof d.DsScrollOverlay | typeof d.DsSelect | typeof d.DsShellApp | typeof d.DsShellPage | typeof d.DsShellTools | typeof d.DsSkeleton | typeof d.DsSlider | typeof d.DsSwatchPicker | typeof d.DsSwitch | typeof d.DsTabGroup | typeof d.DsTable | typeof d.DsTag | typeof d.DsText | typeof d.DsToast | typeof d.DsTooltipChart | typeof d.DsTooltip | typeof d.DsTypingIndicator)[];
@@ -9,6 +9,7 @@ export const DIRECTIVES = [
9
9
  d.DsAvatar,
10
10
  d.DsBadge,
11
11
  d.DsBanner,
12
+ d.DsBarAction,
12
13
  d.DsBarNav,
13
14
  d.DsBarTitle,
14
15
  d.DsBarWorkflow,
@@ -11,6 +11,7 @@ export { DsAttachmentList } from './ds-attachment-list';
11
11
  export { DsAvatar } from './ds-avatar';
12
12
  export { DsBadge } from './ds-badge';
13
13
  export { DsBanner } from './ds-banner';
14
+ export { DsBarAction } from './ds-bar-action';
14
15
  export { DsBarNav } from './ds-bar-nav';
15
16
  export { DsBarTitle } from './ds-bar-title';
16
17
  export { DsBarWorkflow } from './ds-bar-workflow';
@@ -12,6 +12,7 @@ export { DsAttachmentList } from './ds-attachment-list.js';
12
12
  export { DsAvatar } from './ds-avatar.js';
13
13
  export { DsBadge } from './ds-badge.js';
14
14
  export { DsBanner } from './ds-banner.js';
15
+ export { DsBarAction } from './ds-bar-action.js';
15
16
  export { DsBarNav } from './ds-bar-nav.js';
16
17
  export { DsBarTitle } from './ds-bar-title.js';
17
18
  export { DsBarWorkflow } from './ds-bar-workflow.js';
@@ -1,2 +1,2 @@
1
- import{A as o,d as s}from"./p-DeBto13S.js";const t=o;const p=s;export{t as DsAgentActivity,p as defineCustomElement};
1
+ import{A as o,d as s}from"./p-Bf_D3crn.js";const r=o;const t=s;export{r as DsAgentActivity,t as defineCustomElement};
2
2
  //# sourceMappingURL=ds-agent-activity.js.map
@@ -1,2 +1,2 @@
1
- import{A as o,d as s}from"./p-NuRg_IoA.js";const t=o;const p=s;export{t as DsAgentQuestionnaire,p as defineCustomElement};
1
+ import{A as o,d as s}from"./p-nMkoXLC0.js";const t=o;const n=s;export{t as DsAgentQuestionnaire,n as defineCustomElement};
2
2
  //# sourceMappingURL=ds-agent-questionnaire.js.map
@@ -1,2 +1,2 @@
1
- import{p as s,H as e,h as t,a,t as o}from"./index.js";import{d as i}from"./p-DeBto13S.js";import{d as r}from"./p-NuRg_IoA.js";import{d as n}from"./p-BqFKxWVl.js";import{d}from"./p-NzOcZg8r.js";import{d as m}from"./p-BOjGzd5N.js";import{d as c}from"./p-D8nnhQNJ.js";import{d as l}from"./p-CswBI711.js";import{d as u}from"./p-BxQlH4gl.js";import{d as f}from"./p-BaiGt_o6.js";import{d as p}from"./p-CP2W8qxB.js";import{d as b}from"./p-C8U5BsJf.js";import{d as h}from"./p-Ca-I2UnB.js";import{d as k}from"./p-BMq4DJWh.js";import{d as g}from"./p-C7ywYAzN.js";import{d as y}from"./p-DYoCb_sj.js";import{d as j}from"./p-DZFilC--.js";import{d as w}from"./p-CtSxm6PI.js";const E=()=>`.sc-ds-agent-response-h{display:block;width:100%;--ds-prose-text-max-inline-size:var(--dimension-panel-width-lg);-webkit-user-select:none;user-select:none}.agent-response.sc-ds-agent-response{display:grid;gap:var(--dimension-space-150);min-width:0;width:100%;-webkit-user-select:none;user-select:none}`;const x=s(class s extends e{constructor(s){super();if(s!==false){this.__registerHost()}this.messageId="";this.author="";this.showAuthor=true;this.timestamp="";this.parts=[];this.renderMode="parts";this.streaming=false;this.metadataVisibility="always"}renderPart(s){switch(s.type){case"markdown":return t("ds-markdown",{key:s.id,content:s.content,streaming:s.state==="streaming"});case"activity":return t("ds-agent-activity",{key:s.id,items:s.items});case"tool":return t("ds-agent-tool-call",{key:s.id,name:s.name,label:s.label,state:s.state,input:s.input,output:s.output,error:s.error});case"attachments":return t("ds-attachment-list",{key:s.id,items:s.items});case"sources":return t("ds-agent-source-list",{key:s.id,items:s.items});case"questionnaire":return t("ds-agent-questionnaire",{key:s.id,requestId:s.requestId,questions:s.questions,answers:s.answers,status:"answered"})}}render(){return t(a,{key:"3910c71178b3df0fc55f917d371795db90e38e28"},t("ds-message",{key:"594b225f54e388a0c0737b71dcbe7fe03421b1ea",messageId:this.messageId,direction:"incoming",author:this.author,showAuthor:this.showAuthor,timestamp:this.timestamp,streaming:this.streaming,metadataVisibility:this.metadataVisibility},t("div",{key:"130816b779724fef022128394913811914f5d9cb",class:"agent-response"},this.renderMode==="composed"?t("slot",null):this.parts.map((s=>this.renderPart(s)))),t("slot",{key:"6d7ea10b338f26c110073bc25d3bed60cdf5e613",name:"footer",slot:"footer"}),t("slot",{key:"a4a00860d4af7cf14992513d7eaa20511c031bc7",name:"metadata-actions",slot:"metadata-actions"}),t("slot",{key:"848abb429ad1075900717a4cb2cb8e217a111b0c",name:"actions",slot:"actions"})))}static get style(){return E()}},[262,"ds-agent-response",{messageId:[1,"message-id"],author:[1],showAuthor:[4,"show-author"],timestamp:[1],parts:[16],renderMode:[1,"render-mode"],streaming:[4],metadataVisibility:[1,"metadata-visibility"]}]);function B(){if(typeof customElements==="undefined"){return}const s=["ds-agent-response","ds-agent-activity","ds-agent-questionnaire","ds-agent-source-list","ds-agent-tool-call","ds-attachment-list","ds-badge","ds-button-filled","ds-button-unfilled","ds-checkbox","ds-code-block","ds-icon","ds-loader","ds-markdown","ds-message","ds-radio","ds-text","ds-tooltip"];s.forEach((s=>{switch(s){case"ds-agent-response":if(!customElements.get(o(s))){customElements.define(o(s),x)}break;case"ds-agent-activity":if(!customElements.get(o(s))){i()}break;case"ds-agent-questionnaire":if(!customElements.get(o(s))){r()}break;case"ds-agent-source-list":if(!customElements.get(o(s))){n()}break;case"ds-agent-tool-call":if(!customElements.get(o(s))){d()}break;case"ds-attachment-list":if(!customElements.get(o(s))){m()}break;case"ds-badge":if(!customElements.get(o(s))){c()}break;case"ds-button-filled":if(!customElements.get(o(s))){l()}break;case"ds-button-unfilled":if(!customElements.get(o(s))){u()}break;case"ds-checkbox":if(!customElements.get(o(s))){f()}break;case"ds-code-block":if(!customElements.get(o(s))){p()}break;case"ds-icon":if(!customElements.get(o(s))){b()}break;case"ds-loader":if(!customElements.get(o(s))){h()}break;case"ds-markdown":if(!customElements.get(o(s))){k()}break;case"ds-message":if(!customElements.get(o(s))){g()}break;case"ds-radio":if(!customElements.get(o(s))){y()}break;case"ds-text":if(!customElements.get(o(s))){j()}break;case"ds-tooltip":if(!customElements.get(o(s))){w()}break}}))}B();const q=x;const v=B;export{q as DsAgentResponse,v as defineCustomElement};
1
+ import{p as s,H as e,h as t,a,t as o}from"./index.js";import{d as i}from"./p-Bf_D3crn.js";import{d as n}from"./p-nMkoXLC0.js";import{d as r}from"./p-B7Hf86NF.js";import{d}from"./p-DcPVSNDr.js";import{d as m}from"./p-BagXfn1G.js";import{d as c}from"./p-D8nnhQNJ.js";import{d as l}from"./p-DY_sA9Jz.js";import{d as f}from"./p--z-DWRkg.js";import{d as u}from"./p-BaiGt_o6.js";import{d as p}from"./p-DXHq_AfZ.js";import{d as b}from"./p-BFfLvMZd.js";import{d as k}from"./p-Ca-I2UnB.js";import{d as h}from"./p-CIhETsHv.js";import{d as g}from"./p-D-kWb8cF.js";import{d as y}from"./p-DYoCb_sj.js";import{d as E}from"./p-DZFilC--.js";import{d as j}from"./p-CtSxm6PI.js";const w=()=>`.sc-ds-agent-response-h{display:block;width:100%;--ds-prose-text-max-inline-size:var(--dimension-panel-width-lg);-webkit-user-select:none;user-select:none}.agent-response.sc-ds-agent-response{display:grid;gap:var(--dimension-space-150);min-width:0;width:100%;-webkit-user-select:none;user-select:none}`;const v=s(class s extends e{constructor(s){super();if(s!==false){this.__registerHost()}this.messageId="";this.author="";this.showAuthor=true;this.timestamp="";this.parts=[];this.renderMode="parts";this.streaming=false;this.metadataVisibility="always"}renderPart(s){switch(s.type){case"markdown":return t("ds-markdown",{key:s.id,content:s.content,streaming:s.state==="streaming"});case"activity":return t("ds-agent-activity",{key:s.id,items:s.items});case"tool":return t("ds-agent-tool-call",{key:s.id,name:s.name,label:s.label,state:s.state,input:s.input,output:s.output,error:s.error});case"attachments":return t("ds-attachment-list",{key:s.id,items:s.items});case"sources":return t("ds-agent-source-list",{key:s.id,items:s.items});case"questionnaire":return t("ds-agent-questionnaire",{key:s.id,requestId:s.requestId,questions:s.questions,answers:s.answers,status:"answered"})}}render(){return t(a,{key:"3910c71178b3df0fc55f917d371795db90e38e28"},t("ds-message",{key:"594b225f54e388a0c0737b71dcbe7fe03421b1ea",messageId:this.messageId,direction:"incoming",author:this.author,showAuthor:this.showAuthor,timestamp:this.timestamp,streaming:this.streaming,metadataVisibility:this.metadataVisibility},t("div",{key:"130816b779724fef022128394913811914f5d9cb",class:"agent-response"},this.renderMode==="composed"?t("slot",null):this.parts.map((s=>this.renderPart(s)))),t("slot",{key:"6d7ea10b338f26c110073bc25d3bed60cdf5e613",name:"footer",slot:"footer"}),t("slot",{key:"a4a00860d4af7cf14992513d7eaa20511c031bc7",name:"metadata-actions",slot:"metadata-actions"}),t("slot",{key:"848abb429ad1075900717a4cb2cb8e217a111b0c",name:"actions",slot:"actions"})))}static get style(){return w()}},[262,"ds-agent-response",{messageId:[1,"message-id"],author:[1],showAuthor:[4,"show-author"],timestamp:[1],parts:[16],renderMode:[1,"render-mode"],streaming:[4],metadataVisibility:[1,"metadata-visibility"]}]);function x(){if(typeof customElements==="undefined"){return}const s=["ds-agent-response","ds-agent-activity","ds-agent-questionnaire","ds-agent-source-list","ds-agent-tool-call","ds-attachment-list","ds-badge","ds-button-filled","ds-button-unfilled","ds-checkbox","ds-code-block","ds-icon","ds-loader","ds-markdown","ds-message","ds-radio","ds-text","ds-tooltip"];s.forEach((s=>{switch(s){case"ds-agent-response":if(!customElements.get(o(s))){customElements.define(o(s),v)}break;case"ds-agent-activity":if(!customElements.get(o(s))){i()}break;case"ds-agent-questionnaire":if(!customElements.get(o(s))){n()}break;case"ds-agent-source-list":if(!customElements.get(o(s))){r()}break;case"ds-agent-tool-call":if(!customElements.get(o(s))){d()}break;case"ds-attachment-list":if(!customElements.get(o(s))){m()}break;case"ds-badge":if(!customElements.get(o(s))){c()}break;case"ds-button-filled":if(!customElements.get(o(s))){l()}break;case"ds-button-unfilled":if(!customElements.get(o(s))){f()}break;case"ds-checkbox":if(!customElements.get(o(s))){u()}break;case"ds-code-block":if(!customElements.get(o(s))){p()}break;case"ds-icon":if(!customElements.get(o(s))){b()}break;case"ds-loader":if(!customElements.get(o(s))){k()}break;case"ds-markdown":if(!customElements.get(o(s))){h()}break;case"ds-message":if(!customElements.get(o(s))){g()}break;case"ds-radio":if(!customElements.get(o(s))){y()}break;case"ds-text":if(!customElements.get(o(s))){E()}break;case"ds-tooltip":if(!customElements.get(o(s))){j()}break}}))}x();const D=v;const q=x;export{D as DsAgentResponse,q as defineCustomElement};
2
2
  //# sourceMappingURL=ds-agent-response.js.map
@@ -1,2 +1,2 @@
1
- import{A as o,d as s}from"./p-BqFKxWVl.js";const t=o;const p=s;export{t as DsAgentSourceList,p as defineCustomElement};
1
+ import{A as o,d as s}from"./p-B7Hf86NF.js";const t=o;const p=s;export{t as DsAgentSourceList,p as defineCustomElement};
2
2
  //# sourceMappingURL=ds-agent-source-list.js.map
@@ -1,2 +1,2 @@
1
- import{A as o,d as s}from"./p-NzOcZg8r.js";const r=o;const t=s;export{r as DsAgentToolCall,t as defineCustomElement};
1
+ import{A as o,d as s}from"./p-DcPVSNDr.js";const r=o;const t=s;export{r as DsAgentToolCall,t as defineCustomElement};
2
2
  //# sourceMappingURL=ds-agent-tool-call.js.map
@@ -1,2 +1,2 @@
1
- import{A as o,d as s}from"./p-BOjGzd5N.js";const t=o;const p=s;export{t as DsAttachmentList,p as defineCustomElement};
1
+ import{A as o,d as s}from"./p-BagXfn1G.js";const t=o;const a=s;export{t as DsAttachmentList,a as defineCustomElement};
2
2
  //# sourceMappingURL=ds-attachment-list.js.map
@@ -1,2 +1,2 @@
1
- import{p as s,H as a,h as o,a as n,t as r}from"./index.js";import{d as t}from"./p-C8U5BsJf.js";const i=()=>`.ds-control--lg.sc-ds-avatar,.ds-control--lg.sc-ds-avatar-h,.ds-control--md.sc-ds-avatar-h,.ds-control--md.sc-ds-avatar,.ds-control--sm.sc-ds-avatar-h,.ds-control--sm.sc-ds-avatar,.ds-control--xs.sc-ds-avatar-h,.ds-control--xs.sc-ds-avatar{--ds-control-radius:var(--dimension-radius-025)}.ds-control--lg.sc-ds-avatar-h,.ds-control--lg.sc-ds-avatar{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-avatar-h,.ds-control--md.sc-ds-avatar{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-avatar-h,.ds-control--sm.sc-ds-avatar{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-avatar-h,.ds-control--xs.sc-ds-avatar{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.sc-ds-avatar-h{display:inline-flex;flex-shrink:0;width:var(--ds-control-height);height:var(--ds-control-height)}.avatar--md.sc-ds-avatar-h{--_avatar-stroke:var(--dimension-stroke-width-015)}.avatar--sm.sc-ds-avatar-h{--_avatar-stroke:var(--dimension-stroke-width-012)}.avatar--xs.sc-ds-avatar-h{--_avatar-stroke:calc(var(--dimension-stroke-width-base) * 3 / 32)}.avatar.sc-ds-avatar{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%;border-radius:var(--dimension-radius-half);box-shadow:inset 0 0 0 var(--_avatar-stroke) var(--color-foreground-quaternary)}`;const d=s(class s extends a{constructor(s){super();if(s!==false){this.__registerHost()}this.icon="";this.iconColor="secondary";this.size="md"}render(){return o(n,{key:"b29268e414b657ada445dc244077a14a3cab87f9",class:{[`ds-control--${this.size}`]:true,[`avatar--${this.size}`]:true}},o("span",{key:"baa2f709079dce212601dc18e63ce944bce1b1bf",class:"avatar",role:this.label?"img":"presentation","aria-label":this.label,"aria-hidden":!this.label?"true":undefined},o("ds-icon",{key:"b406c18346977ad99be46d7bbfcb4ba952990882",name:this.icon,size:this.size,color:this.iconColor})))}static get style(){return i()}},[2,"ds-avatar",{icon:[1],iconColor:[1,"icon-color"],size:[1],label:[1]}]);function e(){if(typeof customElements==="undefined"){return}const s=["ds-avatar","ds-icon"];s.forEach((s=>{switch(s){case"ds-avatar":if(!customElements.get(r(s))){customElements.define(r(s),d)}break;case"ds-icon":if(!customElements.get(r(s))){t()}break}}))}e();const c=d;const l=e;export{c as DsAvatar,l as defineCustomElement};
1
+ import{p as s,H as a,h as o,a as n,t as r}from"./index.js";import{d as t}from"./p-BFfLvMZd.js";const i=()=>`.ds-control--lg.sc-ds-avatar,.ds-control--lg.sc-ds-avatar-h,.ds-control--md.sc-ds-avatar-h,.ds-control--md.sc-ds-avatar,.ds-control--sm.sc-ds-avatar-h,.ds-control--sm.sc-ds-avatar,.ds-control--xs.sc-ds-avatar-h,.ds-control--xs.sc-ds-avatar{--ds-control-radius:var(--dimension-radius-025)}.ds-control--lg.sc-ds-avatar-h,.ds-control--lg.sc-ds-avatar{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-avatar-h,.ds-control--md.sc-ds-avatar{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-avatar-h,.ds-control--sm.sc-ds-avatar{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-avatar-h,.ds-control--xs.sc-ds-avatar{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.sc-ds-avatar-h{display:inline-flex;flex-shrink:0;width:var(--ds-control-height);height:var(--ds-control-height)}.avatar--md.sc-ds-avatar-h{--_avatar-stroke:var(--dimension-stroke-width-015)}.avatar--sm.sc-ds-avatar-h{--_avatar-stroke:var(--dimension-stroke-width-012)}.avatar--xs.sc-ds-avatar-h{--_avatar-stroke:calc(var(--dimension-stroke-width-base) * 3 / 32)}.avatar.sc-ds-avatar{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%;border-radius:var(--dimension-radius-half);box-shadow:inset 0 0 0 var(--_avatar-stroke) var(--color-foreground-quaternary)}`;const d=s(class s extends a{constructor(s){super();if(s!==false){this.__registerHost()}this.icon="";this.iconColor="secondary";this.size="md"}render(){return o(n,{key:"b29268e414b657ada445dc244077a14a3cab87f9",class:{[`ds-control--${this.size}`]:true,[`avatar--${this.size}`]:true}},o("span",{key:"baa2f709079dce212601dc18e63ce944bce1b1bf",class:"avatar",role:this.label?"img":"presentation","aria-label":this.label,"aria-hidden":!this.label?"true":undefined},o("ds-icon",{key:"b406c18346977ad99be46d7bbfcb4ba952990882",name:this.icon,size:this.size,color:this.iconColor})))}static get style(){return i()}},[2,"ds-avatar",{icon:[1],iconColor:[1,"icon-color"],size:[1],label:[1]}]);function e(){if(typeof customElements==="undefined"){return}const s=["ds-avatar","ds-icon"];s.forEach((s=>{switch(s){case"ds-avatar":if(!customElements.get(r(s))){customElements.define(r(s),d)}break;case"ds-icon":if(!customElements.get(r(s))){t()}break}}))}e();const c=d;const l=e;export{c as DsAvatar,l as defineCustomElement};
2
2
  //# sourceMappingURL=ds-avatar.js.map