@ds-mo/ui 15.6.0 → 15.7.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 (260) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +327 -5
  4. package/dist/angular/ds-navigation-tab-group.d.ts +15 -0
  5. package/dist/angular/ds-navigation-tab-group.js +42 -0
  6. package/dist/angular/ds-select-toggle.d.ts +15 -0
  7. package/dist/angular/ds-select-toggle.js +42 -0
  8. package/dist/angular/ds-table.d.ts +1 -1
  9. package/dist/angular/ds-table.js +3 -3
  10. package/dist/angular/index.d.ts +1 -1
  11. package/dist/angular/index.js +2 -0
  12. package/dist/angular/proxies.d.ts +2 -0
  13. package/dist/angular/proxies.js +2 -0
  14. package/dist/components/ds-agent-activity.js +1 -1
  15. package/dist/components/ds-agent-questionnaire.js +1 -1
  16. package/dist/components/ds-agent-response.js +1 -1
  17. package/dist/components/ds-agent-source-list.js +1 -1
  18. package/dist/components/ds-agent-tool-call.js +1 -1
  19. package/dist/components/ds-attachment-list.js +1 -1
  20. package/dist/components/ds-badge.js +1 -1
  21. package/dist/components/ds-banner.js +1 -1
  22. package/dist/components/ds-bar-action.js +1 -1
  23. package/dist/components/ds-bar-nav.js +1 -1
  24. package/dist/components/ds-bar-page-title.js +1 -1
  25. package/dist/components/ds-bar-title.js +1 -1
  26. package/dist/components/ds-bar-workflow.js +1 -1
  27. package/dist/components/ds-breadcrumb.js +1 -1
  28. package/dist/components/ds-button-filled.js +1 -1
  29. package/dist/components/ds-button-inverted.js +1 -1
  30. package/dist/components/ds-button-unfilled.js +1 -1
  31. package/dist/components/ds-calendar.js +1 -1
  32. package/dist/components/ds-card-action-center.js +1 -1
  33. package/dist/components/ds-card-chart.js +1 -1
  34. package/dist/components/ds-card-navigation.js +1 -1
  35. package/dist/components/ds-card-overview.js +1 -1
  36. package/dist/components/ds-card-setting.js +1 -1
  37. package/dist/components/ds-card-settings-scope.js +1 -1
  38. package/dist/components/ds-chart-legend.js +1 -1
  39. package/dist/components/ds-chart.js +1 -1
  40. package/dist/components/ds-checkbox-group.js +1 -1
  41. package/dist/components/ds-checkbox.js +1 -1
  42. package/dist/components/ds-chip.js +1 -1
  43. package/dist/components/ds-code-block.js +1 -1
  44. package/dist/components/ds-conversation-list-item.js +1 -1
  45. package/dist/components/ds-conversation-list-section.js +1 -1
  46. package/dist/components/ds-conversation-list.js +1 -1
  47. package/dist/components/ds-data-customize.js +1 -1
  48. package/dist/components/ds-data-filter.js +1 -1
  49. package/dist/components/ds-data-group.js +1 -1
  50. package/dist/components/ds-data-preferences.js +1 -1
  51. package/dist/components/ds-data-saved-views.js +1 -1
  52. package/dist/components/ds-data-search.js +1 -1
  53. package/dist/components/ds-data-sort.js +1 -1
  54. package/dist/components/ds-data-toolbar.js +1 -1
  55. package/dist/components/ds-empty-state.js +1 -1
  56. package/dist/components/ds-field.js +1 -1
  57. package/dist/components/ds-filter-menu.js +1 -1
  58. package/dist/components/ds-inline-banner-settings.js +1 -1
  59. package/dist/components/ds-input-date.js +1 -1
  60. package/dist/components/ds-input-time.js +1 -1
  61. package/dist/components/ds-input.js +1 -1
  62. package/dist/components/ds-map-cluster-marker.js +1 -1
  63. package/dist/components/ds-map-entity-marker.js +1 -1
  64. package/dist/components/ds-markdown.js +1 -1
  65. package/dist/components/ds-menu.js +1 -1
  66. package/dist/components/ds-message-actions.js +1 -1
  67. package/dist/components/ds-message-composer.js +1 -1
  68. package/dist/components/ds-message-scroller.js +1 -1
  69. package/dist/components/ds-message.js +1 -1
  70. package/dist/components/ds-mobile-bar-nav.js +1 -1
  71. package/dist/components/ds-mobile-header.js +1 -1
  72. package/dist/components/ds-mobile-section-switcher.js +1 -1
  73. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  74. package/dist/components/ds-modal.js +1 -1
  75. package/dist/components/ds-navigation-tab-group.d.ts +11 -0
  76. package/dist/components/ds-navigation-tab-group.js +2 -0
  77. package/dist/components/ds-navigation-tab-group.js.map +1 -0
  78. package/dist/components/ds-pagination.js +1 -1
  79. package/dist/components/ds-panel-nav.js +1 -1
  80. package/dist/components/ds-panel-sub-nav.js +1 -1
  81. package/dist/components/ds-panel-tool-header.js +1 -1
  82. package/dist/components/ds-panel-tool-search.js +1 -1
  83. package/dist/components/ds-panel-tools.js +1 -1
  84. package/dist/components/ds-paper-texture.js +1 -1
  85. package/dist/components/ds-radio-tile.js +1 -1
  86. package/dist/components/ds-radio.js +1 -1
  87. package/dist/components/ds-score.js +1 -1
  88. package/dist/components/ds-select-toggle.d.ts +11 -0
  89. package/dist/components/ds-select-toggle.js +2 -0
  90. package/dist/components/ds-select-toggle.js.map +1 -0
  91. package/dist/components/ds-select.js +1 -1
  92. package/dist/components/ds-setting-row-checkbox.js +1 -1
  93. package/dist/components/ds-setting-row-radio.js +1 -1
  94. package/dist/components/ds-setting-row-radio.js.map +1 -1
  95. package/dist/components/ds-setting-row-toggle.js +1 -1
  96. package/dist/components/ds-shell-app.js +1 -1
  97. package/dist/components/ds-shell-page.js +1 -1
  98. package/dist/components/ds-shell-tools.js +1 -1
  99. package/dist/components/ds-skeleton.js +1 -1
  100. package/dist/components/ds-slider.js +1 -1
  101. package/dist/components/ds-slider.js.map +1 -1
  102. package/dist/components/ds-swatch-picker.js +1 -1
  103. package/dist/components/ds-switch.js +1 -1
  104. package/dist/components/ds-tab-group.js +1 -1
  105. package/dist/components/ds-table.js +1 -1
  106. package/dist/components/ds-table.js.map +1 -1
  107. package/dist/components/ds-tag.js +1 -1
  108. package/dist/components/ds-text.js +1 -1
  109. package/dist/components/ds-textarea.js +1 -1
  110. package/dist/components/ds-time-picker.js +1 -1
  111. package/dist/components/ds-toast.js +1 -1
  112. package/dist/components/ds-tooltip-chart.js +1 -1
  113. package/dist/components/ds-tooltip.js +1 -1
  114. package/dist/components/ds-typing-indicator.js +1 -1
  115. package/dist/components/{p--pJyciTI.js → p--_bPiNCd.js} +2 -2
  116. package/dist/components/{p-UJMEz8_O.js → p-3SCy1PHa.js} +2 -2
  117. package/dist/components/{p-7MwoWtTJ.js → p-4sBUSsqs.js} +2 -2
  118. package/dist/components/p-4sBUSsqs.js.map +1 -0
  119. package/dist/components/{p-kwS-vkau.js → p-5aZVNYQz.js} +2 -2
  120. package/dist/components/{p-DKGW3gRa.js → p-AGqUGzNZ.js} +2 -2
  121. package/dist/components/{p-DbW8S5qe.js → p-BJf49edB.js} +2 -2
  122. package/dist/components/{p-BNarCFJZ.js → p-BKyE025p.js} +2 -2
  123. package/dist/components/{p-S1Ct3FJV.js → p-BNN9KkXe.js} +2 -2
  124. package/dist/components/p-BPDo1eQV.js +2 -0
  125. package/dist/components/{p-xMBaOeKa.js.map → p-BPDo1eQV.js.map} +1 -1
  126. package/dist/components/{p-CwdRaJER.js → p-BWJb2rih.js} +2 -2
  127. package/dist/components/{p-D8OWhnID.js → p-BbvAWFJA.js} +2 -2
  128. package/dist/components/{p-HfZ1gI2q.js → p-Bdp2V6-c.js} +2 -2
  129. package/dist/components/{p-CIMyD_6H.js → p-BjBFJ2dd.js} +2 -2
  130. package/dist/components/{p-BmIllmq2.js → p-BwNW5nqj.js} +2 -2
  131. package/dist/components/p-C0L-VnSr.js +2 -0
  132. package/dist/components/{p-CElsKlxj.js.map → p-C0L-VnSr.js.map} +1 -1
  133. package/dist/components/p-C2e7BkNn.js +2 -0
  134. package/dist/components/p-C2e7BkNn.js.map +1 -0
  135. package/dist/components/{p-BnuNaXR2.js → p-C4t7HnfZ.js} +2 -2
  136. package/dist/components/{p-C1ZfBbJ_.js → p-C7_awFtr.js} +2 -2
  137. package/dist/components/{p-leZFu-cd.js → p-CCsxoztj.js} +2 -2
  138. package/dist/components/{p-DYtVsnDS.js → p-CHyxUWqL.js} +2 -2
  139. package/dist/components/{p-d76Ry5nh.js → p-CKSJwSWd.js} +2 -2
  140. package/dist/components/p-CLqqb0Jp.js +2 -0
  141. package/dist/components/{p-BZY40-pE.js.map → p-CLqqb0Jp.js.map} +1 -1
  142. package/dist/components/{p-DdFeWC-e.js → p-CRhoeCC8.js} +2 -2
  143. package/dist/components/p-CWc6Blcp.js +2 -0
  144. package/dist/components/{p-B95UP66y.js.map → p-CWc6Blcp.js.map} +1 -1
  145. package/dist/components/{p-DYGllrVT.js → p-CXB_T13u.js} +2 -2
  146. package/dist/components/{p-DObhRLBa.js → p-CgC4SM5b.js} +2 -2
  147. package/dist/components/p-CqAC2IQO.js +2 -0
  148. package/dist/components/{p-5-gQbIIz.js.map → p-CqAC2IQO.js.map} +1 -1
  149. package/dist/components/{p-KA8srEed.js → p-Cs8Gq-PZ.js} +2 -2
  150. package/dist/components/{p-DcxY_pdJ.js → p-Ct2KQHF4.js} +2 -2
  151. package/dist/components/{p-B3o9zn3Y.js → p-CvIHBa8S.js} +2 -2
  152. package/dist/components/{p-YC7UM4jH.js → p-D1tmszmN.js} +2 -2
  153. package/dist/components/{p-CaFXrn_8.js → p-D62yUMhr.js} +2 -2
  154. package/dist/components/{p-CgQB8Ct5.js → p-D9l0QBgN.js} +2 -2
  155. package/dist/components/{p-Dr5rkAhe.js → p-DGrSro-o.js} +2 -2
  156. package/dist/components/{p-BVxK8ce0.js → p-DKvHBXwn.js} +2 -2
  157. package/dist/components/p-D_xZ5SFL.js +2 -0
  158. package/dist/components/{p-DP07JCed.js.map → p-D_xZ5SFL.js.map} +1 -1
  159. package/dist/components/{p-Ouk6FCxc.js → p-DdNJPBCS.js} +2 -2
  160. package/dist/components/p-DiPqdcD4.js +2 -0
  161. package/dist/components/{p-wXKIVUTn.js.map → p-DiPqdcD4.js.map} +1 -1
  162. package/dist/components/p-Dkh_40bl.js +2 -0
  163. package/dist/components/p-Dkh_40bl.js.map +1 -0
  164. package/dist/components/p-DmgDVoDb.js +2 -0
  165. package/dist/components/{p-BR9Pjp15.js.map → p-DmgDVoDb.js.map} +1 -1
  166. package/dist/components/{p-DXL5D30P.js → p-Du8LT8JS.js} +2 -2
  167. package/dist/components/{p-C6kUn-vb.js → p-Dyjs8_Cl.js} +2 -2
  168. package/dist/components/{p-CUYLGe5d.js → p-LJXiEPw1.js} +2 -2
  169. package/dist/components/{p-CbCN9ew9.js → p-QGtBlTMt.js} +2 -2
  170. package/dist/components/{p-CSxwWcwW.js → p-UBQ5O7B-.js} +2 -2
  171. package/dist/components/{p-DVsGfz7J.js → p-dSNHIJz6.js} +2 -2
  172. package/dist/components/{p-B9y6azEw.js → p-eKnJNQtL.js} +2 -2
  173. package/dist/components/{p-B-pkoIX9.js → p-g2OUK8Z0.js} +2 -2
  174. package/dist/components/{p-DSmDyI2o.js → p-n_OBbh94.js} +2 -2
  175. package/dist/components/{p-OJ5WeR05.js → p-oBpjD9OA.js} +2 -2
  176. package/dist/components/p-pJ6gbwSa.js +2 -0
  177. package/dist/components/p-pJ6gbwSa.js.map +1 -0
  178. package/dist/components/{p-DfMTDFcE.js → p-v9Nhw5yM.js} +2 -2
  179. package/dist/docs/components.json +683 -7
  180. package/dist/lint/index.js +1 -1
  181. package/dist/mcp-data/registry/navigation-tab-group.json +279 -0
  182. package/dist/mcp-data/registry/registry.json +332 -4
  183. package/dist/mcp-data/registry/select-toggle.json +351 -0
  184. package/dist/mcp-data/registry/slider.json +6 -5
  185. package/dist/mcp-data/registry/switch.json +2 -2
  186. package/dist/mcp-data/registry/tab-group.json +14 -8
  187. package/dist/mcp-data/registry/table.json +22 -3
  188. package/dist/react/components.d.ts +2 -0
  189. package/dist/react/components.js +2 -0
  190. package/dist/react/ds-navigation-tab-group.d.ts +12 -0
  191. package/dist/react/ds-navigation-tab-group.js +12 -0
  192. package/dist/react/ds-select-toggle.d.ts +12 -0
  193. package/dist/react/ds-select-toggle.js +12 -0
  194. package/dist/types/components/NavigationTabGroup/NavigationTabGroup.d.ts +16 -0
  195. package/dist/types/components/SelectToggle/SelectToggle.d.ts +46 -0
  196. package/dist/types/components/Slider/Slider.d.ts +1 -1
  197. package/dist/types/components/TabGroup/TabGroup.d.ts +2 -2
  198. package/dist/types/components/Table/Table.d.ts +3 -0
  199. package/dist/types/components.d.ts +237 -15
  200. package/dist/vue/components.d.ts +2 -0
  201. package/dist/vue/components.js +2 -0
  202. package/dist/vue/ds-navigation-tab-group.d.ts +3 -0
  203. package/dist/vue/ds-navigation-tab-group.js +16 -0
  204. package/dist/vue/ds-select-toggle.d.ts +3 -0
  205. package/dist/vue/ds-select-toggle.js +19 -0
  206. package/dist/vue/ds-table.js +1 -0
  207. package/package.json +1 -1
  208. package/dist/components/p-5-gQbIIz.js +0 -2
  209. package/dist/components/p-7MwoWtTJ.js.map +0 -1
  210. package/dist/components/p-B95UP66y.js +0 -2
  211. package/dist/components/p-BR9Pjp15.js +0 -2
  212. package/dist/components/p-BZY40-pE.js +0 -2
  213. package/dist/components/p-Bf-BphXP.js +0 -2
  214. package/dist/components/p-Bf-BphXP.js.map +0 -1
  215. package/dist/components/p-BqipGGua.js +0 -2
  216. package/dist/components/p-BqipGGua.js.map +0 -1
  217. package/dist/components/p-CElsKlxj.js +0 -2
  218. package/dist/components/p-DP07JCed.js +0 -2
  219. package/dist/components/p-wXKIVUTn.js +0 -2
  220. package/dist/components/p-xMBaOeKa.js +0 -2
  221. /package/dist/components/{p--pJyciTI.js.map → p--_bPiNCd.js.map} +0 -0
  222. /package/dist/components/{p-UJMEz8_O.js.map → p-3SCy1PHa.js.map} +0 -0
  223. /package/dist/components/{p-kwS-vkau.js.map → p-5aZVNYQz.js.map} +0 -0
  224. /package/dist/components/{p-DKGW3gRa.js.map → p-AGqUGzNZ.js.map} +0 -0
  225. /package/dist/components/{p-DbW8S5qe.js.map → p-BJf49edB.js.map} +0 -0
  226. /package/dist/components/{p-BNarCFJZ.js.map → p-BKyE025p.js.map} +0 -0
  227. /package/dist/components/{p-S1Ct3FJV.js.map → p-BNN9KkXe.js.map} +0 -0
  228. /package/dist/components/{p-CwdRaJER.js.map → p-BWJb2rih.js.map} +0 -0
  229. /package/dist/components/{p-D8OWhnID.js.map → p-BbvAWFJA.js.map} +0 -0
  230. /package/dist/components/{p-HfZ1gI2q.js.map → p-Bdp2V6-c.js.map} +0 -0
  231. /package/dist/components/{p-CIMyD_6H.js.map → p-BjBFJ2dd.js.map} +0 -0
  232. /package/dist/components/{p-BmIllmq2.js.map → p-BwNW5nqj.js.map} +0 -0
  233. /package/dist/components/{p-BnuNaXR2.js.map → p-C4t7HnfZ.js.map} +0 -0
  234. /package/dist/components/{p-C1ZfBbJ_.js.map → p-C7_awFtr.js.map} +0 -0
  235. /package/dist/components/{p-leZFu-cd.js.map → p-CCsxoztj.js.map} +0 -0
  236. /package/dist/components/{p-DYtVsnDS.js.map → p-CHyxUWqL.js.map} +0 -0
  237. /package/dist/components/{p-d76Ry5nh.js.map → p-CKSJwSWd.js.map} +0 -0
  238. /package/dist/components/{p-DdFeWC-e.js.map → p-CRhoeCC8.js.map} +0 -0
  239. /package/dist/components/{p-DYGllrVT.js.map → p-CXB_T13u.js.map} +0 -0
  240. /package/dist/components/{p-DObhRLBa.js.map → p-CgC4SM5b.js.map} +0 -0
  241. /package/dist/components/{p-KA8srEed.js.map → p-Cs8Gq-PZ.js.map} +0 -0
  242. /package/dist/components/{p-DcxY_pdJ.js.map → p-Ct2KQHF4.js.map} +0 -0
  243. /package/dist/components/{p-B3o9zn3Y.js.map → p-CvIHBa8S.js.map} +0 -0
  244. /package/dist/components/{p-YC7UM4jH.js.map → p-D1tmszmN.js.map} +0 -0
  245. /package/dist/components/{p-CaFXrn_8.js.map → p-D62yUMhr.js.map} +0 -0
  246. /package/dist/components/{p-CgQB8Ct5.js.map → p-D9l0QBgN.js.map} +0 -0
  247. /package/dist/components/{p-Dr5rkAhe.js.map → p-DGrSro-o.js.map} +0 -0
  248. /package/dist/components/{p-BVxK8ce0.js.map → p-DKvHBXwn.js.map} +0 -0
  249. /package/dist/components/{p-Ouk6FCxc.js.map → p-DdNJPBCS.js.map} +0 -0
  250. /package/dist/components/{p-DXL5D30P.js.map → p-Du8LT8JS.js.map} +0 -0
  251. /package/dist/components/{p-C6kUn-vb.js.map → p-Dyjs8_Cl.js.map} +0 -0
  252. /package/dist/components/{p-CUYLGe5d.js.map → p-LJXiEPw1.js.map} +0 -0
  253. /package/dist/components/{p-CbCN9ew9.js.map → p-QGtBlTMt.js.map} +0 -0
  254. /package/dist/components/{p-CSxwWcwW.js.map → p-UBQ5O7B-.js.map} +0 -0
  255. /package/dist/components/{p-DVsGfz7J.js.map → p-dSNHIJz6.js.map} +0 -0
  256. /package/dist/components/{p-B9y6azEw.js.map → p-eKnJNQtL.js.map} +0 -0
  257. /package/dist/components/{p-B-pkoIX9.js.map → p-g2OUK8Z0.js.map} +0 -0
  258. /package/dist/components/{p-DSmDyI2o.js.map → p-n_OBbh94.js.map} +0 -0
  259. /package/dist/components/{p-OJ5WeR05.js.map → p-oBpjD9OA.js.map} +0 -0
  260. /package/dist/components/{p-DfMTDFcE.js.map → p-v9Nhw5yM.js.map} +0 -0
@@ -0,0 +1,279 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "navigation-tab-group",
4
+ "title": "NavigationTabGroup",
5
+ "description": "Outset horizontal tab group for switching adjacent local panels on basic application surfaces.",
6
+ "type": "registry:ui",
7
+ "meta": {
8
+ "library": "@ds-mo/ui",
9
+ "distribution": "npm",
10
+ "storybook": "https://zainadeel.github.io/compomo/?path=/story/navigation-tab-group",
11
+ "source": "src/wc/components/NavigationTabGroup/NavigationTabGroup.tsx",
12
+ "intentStatus": "complete",
13
+ "intent": {
14
+ "audience": "general",
15
+ "status": "experimental",
16
+ "summary": "Outset horizontal tab group for switching adjacent local panels on basic application surfaces.",
17
+ "useWhen": [
18
+ "Adjacent local panels need a prominent navigation row with full control-height selected tabs.",
19
+ "A horizontal tab row has room for an outset shell rather than needing to align beside compact controls."
20
+ ],
21
+ "avoidWhen": [
22
+ "The tab row must sit inline with ordinary controls; use TabGroup's compact segmented presentation instead.",
23
+ "The row sits on bold, strong, media, inverted, or other specialized surfaces; this treatment is intended for basic application backgrounds.",
24
+ "The choices navigate application routes rather than switching local panels; use PanelNav or BarNav."
25
+ ],
26
+ "alternatives": [
27
+ {
28
+ "when": "A compact selector must align beside other controls or support specialized surface contexts.",
29
+ "component": "component:ds-tab-group",
30
+ "reason": "TabGroup provides control-height segmented chrome and surface-aware selection."
31
+ },
32
+ {
33
+ "when": "The choices are application destinations rather than local panels.",
34
+ "component": "component:ds-panel-nav",
35
+ "reason": "PanelNav owns application navigation semantics and route selection."
36
+ }
37
+ ],
38
+ "commonlyComposedWith": [
39
+ "component:ds-text",
40
+ "component:ds-icon"
41
+ ],
42
+ "accessibility": [
43
+ "Provide an accessible name for the delegated tab list with aria-label or aria-labelledby.",
44
+ "TabGroup owns tab semantics, roving focus, arrow-key selection, and inactive-tab behavior; the navigation wrapper must not create a second tab or event stream.",
45
+ "Keep the selected local panel synchronized with dsChange and connect each tab to its panel when panels are present."
46
+ ],
47
+ "states": [
48
+ "The parent owns which adjacent panel is visible; user activation updates the mutable selected value and emits dsChange once through the wrapper.",
49
+ "The selected tab uses the normal control-density height and primary surface with medium elevation inside an outset, padded shell.",
50
+ "The navigation treatment delegates its tab items, selection, focus, and keyboard behavior to TabGroup rather than maintaining a parallel implementation."
51
+ ],
52
+ "responsiveBehavior": [
53
+ "The group stays on one horizontal row; choose the control density and bounded width to fit the available layout.",
54
+ "Hug follows content width and fill distributes selectable tabs evenly across a definite parent width."
55
+ ],
56
+ "frameworkCaveats": {
57
+ "customElements": [
58
+ "Assign tabs as a JavaScript property and keep the selected panel synchronized with dsChange."
59
+ ],
60
+ "react": [
61
+ "Pass tabs as an array through the generated wrapper and handle onDsChange to update the visible panel."
62
+ ],
63
+ "vue": [
64
+ "Use v-model for the selected value and pass tabs as a property-bound array."
65
+ ],
66
+ "angular": [
67
+ "Bind tabs and value as properties and handle dsChange to update the visible panel."
68
+ ]
69
+ },
70
+ "references": [
71
+ {
72
+ "label": "Storybook examples",
73
+ "path": "src/wc/components/NavigationTabGroup/NavigationTabGroup.stories.ts"
74
+ },
75
+ {
76
+ "label": "Rendered behavior and geometry",
77
+ "path": "tests/e2e/navigation-tab-group.spec.ts"
78
+ }
79
+ ],
80
+ "styling": {
81
+ "rationale": "The component owns its outset shell and selected-tab treatment through TabGroup's shared tab anatomy; applications own the surrounding basic surface and panel layout.",
82
+ "protected": [
83
+ {
84
+ "properties": [
85
+ "height",
86
+ "padding",
87
+ "gap",
88
+ "border-radius",
89
+ "background",
90
+ "border",
91
+ "box-shadow"
92
+ ],
93
+ "reason": "The shell and selected tab form one density-specific navigation recipe; choose size and width instead of restyling nested tabs.",
94
+ "props": [
95
+ "size",
96
+ "width"
97
+ ]
98
+ }
99
+ ],
100
+ "customProperties": []
101
+ }
102
+ },
103
+ "api": {
104
+ "props": {
105
+ "ariaLabel": {
106
+ "type": "string | null",
107
+ "resolvedType": "null | string",
108
+ "attribute": "aria-label",
109
+ "default": "null",
110
+ "required": false,
111
+ "mutable": false
112
+ },
113
+ "ariaLabelledby": {
114
+ "type": "string | undefined",
115
+ "resolvedType": "string | undefined",
116
+ "attribute": "aria-labelledby",
117
+ "required": false,
118
+ "mutable": false
119
+ },
120
+ "size": {
121
+ "type": "TabGroupSize",
122
+ "resolvedType": "\"lg\" | \"md\" | \"sm\"",
123
+ "attribute": "size",
124
+ "default": "'md'",
125
+ "required": false,
126
+ "mutable": false
127
+ },
128
+ "tabs": {
129
+ "type": "TabGroupItem[]",
130
+ "resolvedType": "TabGroupItem[]",
131
+ "default": "[]",
132
+ "required": false,
133
+ "mutable": false
134
+ },
135
+ "value": {
136
+ "type": "string",
137
+ "resolvedType": "string",
138
+ "attribute": "value",
139
+ "default": "''",
140
+ "required": false,
141
+ "mutable": true,
142
+ "description": "Currently selected local view. User activation updates this value."
143
+ },
144
+ "width": {
145
+ "type": "TabGroupWidth",
146
+ "resolvedType": "\"fill\" | \"hug\"",
147
+ "attribute": "width",
148
+ "default": "'hug'",
149
+ "required": false,
150
+ "mutable": false
151
+ }
152
+ },
153
+ "events": [
154
+ {
155
+ "name": "dsChange",
156
+ "detail": "string",
157
+ "bubbles": true,
158
+ "cancelable": true,
159
+ "composed": true
160
+ }
161
+ ],
162
+ "methods": [],
163
+ "slots": []
164
+ },
165
+ "props": {
166
+ "ariaLabel": {
167
+ "type": "string | null",
168
+ "resolvedType": "null | string",
169
+ "attribute": "aria-label",
170
+ "default": "null",
171
+ "required": false,
172
+ "mutable": false
173
+ },
174
+ "ariaLabelledby": {
175
+ "type": "string | undefined",
176
+ "resolvedType": "string | undefined",
177
+ "attribute": "aria-labelledby",
178
+ "required": false,
179
+ "mutable": false
180
+ },
181
+ "size": {
182
+ "type": "TabGroupSize",
183
+ "resolvedType": "\"lg\" | \"md\" | \"sm\"",
184
+ "attribute": "size",
185
+ "default": "'md'",
186
+ "required": false,
187
+ "mutable": false
188
+ },
189
+ "tabs": {
190
+ "type": "TabGroupItem[]",
191
+ "resolvedType": "TabGroupItem[]",
192
+ "default": "[]",
193
+ "required": false,
194
+ "mutable": false
195
+ },
196
+ "value": {
197
+ "type": "string",
198
+ "resolvedType": "string",
199
+ "attribute": "value",
200
+ "default": "''",
201
+ "required": false,
202
+ "mutable": true,
203
+ "description": "Currently selected local view. User activation updates this value."
204
+ },
205
+ "width": {
206
+ "type": "TabGroupWidth",
207
+ "resolvedType": "\"fill\" | \"hug\"",
208
+ "attribute": "width",
209
+ "default": "'hug'",
210
+ "required": false,
211
+ "mutable": false
212
+ }
213
+ },
214
+ "events": [
215
+ {
216
+ "name": "dsChange",
217
+ "detail": "string",
218
+ "bubbles": true,
219
+ "cancelable": true,
220
+ "composed": true
221
+ }
222
+ ],
223
+ "methods": [],
224
+ "slots": [],
225
+ "exports": {
226
+ "customElement": "ds-navigation-tab-group",
227
+ "react": "DsNavigationTabGroup",
228
+ "vue": "DsNavigationTabGroup",
229
+ "angular": "DsNavigationTabGroup"
230
+ },
231
+ "consumption": {
232
+ "install": "npm install @ds-mo/ui @ds-mo/tokens @ds-mo/icons",
233
+ "cssSetup": "import '@ds-mo/tokens';\nimport '@ds-mo/tokens/reset';\nimport '@ds-mo/tokens/globals';",
234
+ "customElements": {
235
+ "import": "import '@ds-mo/ui/dist/components/ds-navigation-tab-group.js';",
236
+ "example": "<ds-navigation-tab-group></ds-navigation-tab-group>"
237
+ },
238
+ "react": {
239
+ "import": "import { DsNavigationTabGroup } from '@ds-mo/ui/react';",
240
+ "example": "<DsNavigationTabGroup />"
241
+ },
242
+ "vue": {
243
+ "import": "import { DsNavigationTabGroup } from '@ds-mo/ui/vue';",
244
+ "example": "<DsNavigationTabGroup />"
245
+ },
246
+ "angular": {
247
+ "import": "import { DsNavigationTabGroup } from '@ds-mo/ui/angular/ds-navigation-tab-group';",
248
+ "example": "<ds-navigation-tab-group></ds-navigation-tab-group>"
249
+ },
250
+ "complexPropertyNote": "Assign these non-primitive values as JavaScript properties: tabs.",
251
+ "peerDependencies": {
252
+ "required": [
253
+ "@ds-mo/tokens ^6.7.0",
254
+ "@ds-mo/icons ^8.1.1"
255
+ ],
256
+ "frameworks": "Custom Elements; React 18/19 wrappers; Vue 3 wrappers; Angular 19-22 standalone adapters."
257
+ }
258
+ }
259
+ },
260
+ "dependencies": [
261
+ "@ds-mo/ui",
262
+ "@ds-mo/tokens"
263
+ ],
264
+ "registryDependencies": [
265
+ "tab-group"
266
+ ],
267
+ "files": [
268
+ {
269
+ "path": "src/wc/components/NavigationTabGroup/NavigationTabGroup.css",
270
+ "content": ":host {\n display: block;\n box-sizing: border-box;\n}\n",
271
+ "type": "registry:ui"
272
+ },
273
+ {
274
+ "path": "src/wc/components/NavigationTabGroup/NavigationTabGroup.tsx",
275
+ "content": "import { Component, Event, EventEmitter, h, Host, Prop } from '@stencil/core';\nimport type { TabGroupSize, TabGroupWidth } from '../TabGroup/TabGroup';\nimport type { TabGroupItem } from '../TabGroup/tab-item-utils';\n\n@Component({ tag: 'ds-navigation-tab-group', styleUrl: 'NavigationTabGroup.css', scoped: true })\nexport class NavigationTabGroup {\n /** Currently selected local view. User activation updates this value. */\n @Prop({ mutable: true }) value: string = '';\n @Prop() tabs: TabGroupItem[] = [];\n @Prop() size: TabGroupSize = 'md';\n @Prop() width: TabGroupWidth = 'hug';\n @Prop({ attribute: 'aria-label' }) ariaLabel: string | null = null;\n @Prop({ attribute: 'aria-labelledby' }) ariaLabelledby: string | undefined;\n\n @Event() dsChange!: EventEmitter<string>;\n\n private handleChange = (event: CustomEvent<string>) => {\n event.stopPropagation();\n this.value = event.detail;\n this.dsChange.emit(event.detail);\n };\n\n render() {\n return (\n <Host>\n <ds-tab-group\n tabs={this.tabs}\n value={this.value}\n size={this.size}\n width={this.width}\n presentation=\"navigation\"\n aria-label={this.ariaLabel}\n aria-labelledby={this.ariaLabelledby}\n onDsChange={this.handleChange}\n />\n </Host>\n );\n }\n}\n",
276
+ "type": "registry:ui"
277
+ }
278
+ ]
279
+ }