@ds-mo/ui 3.0.0 → 3.1.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 (456) hide show
  1. package/dist/.build-stamp +1 -1
  2. package/dist/angular/angular-component-lib/utils.d.ts +9 -0
  3. package/dist/angular/angular-component-lib/utils.js +58 -0
  4. package/dist/angular/boolean-value-accessor.d.ts +9 -0
  5. package/dist/angular/boolean-value-accessor.js +37 -0
  6. package/dist/angular/ds-app-shell.d.ts +12 -0
  7. package/dist/angular/ds-app-shell.js +38 -0
  8. package/dist/angular/ds-badge.d.ts +12 -0
  9. package/dist/angular/ds-badge.js +38 -0
  10. package/dist/angular/ds-banner.d.ts +15 -0
  11. package/dist/angular/ds-banner.js +42 -0
  12. package/dist/angular/ds-bar-nav.d.ts +18 -0
  13. package/dist/angular/ds-bar-nav.js +42 -0
  14. package/dist/angular/ds-button-filled.d.ts +15 -0
  15. package/dist/angular/ds-button-filled.js +43 -0
  16. package/dist/angular/ds-button-unfilled.d.ts +17 -0
  17. package/dist/angular/ds-button-unfilled.js +46 -0
  18. package/dist/angular/ds-card-data-viz-donut.d.ts +18 -0
  19. package/dist/angular/ds-card-data-viz-donut.js +42 -0
  20. package/dist/angular/ds-card-setting.d.ts +18 -0
  21. package/dist/angular/ds-card-setting.js +42 -0
  22. package/dist/angular/ds-card.d.ts +12 -0
  23. package/dist/angular/ds-card.js +38 -0
  24. package/dist/angular/ds-chart-bar.d.ts +12 -0
  25. package/dist/angular/ds-chart-bar.js +38 -0
  26. package/dist/angular/ds-chart-donut.d.ts +19 -0
  27. package/dist/angular/ds-chart-donut.js +42 -0
  28. package/dist/angular/ds-chart-legend.d.ts +30 -0
  29. package/dist/angular/ds-chart-legend.js +45 -0
  30. package/dist/angular/ds-chart-line.d.ts +12 -0
  31. package/dist/angular/ds-chart-line.js +38 -0
  32. package/dist/angular/ds-checkbox.d.ts +15 -0
  33. package/dist/angular/ds-checkbox.js +42 -0
  34. package/dist/angular/ds-chip.d.ts +18 -0
  35. package/dist/angular/ds-chip.js +42 -0
  36. package/dist/angular/ds-divider.d.ts +12 -0
  37. package/dist/angular/ds-divider.js +38 -0
  38. package/dist/angular/ds-empty-state.d.ts +12 -0
  39. package/dist/angular/ds-empty-state.js +38 -0
  40. package/dist/angular/ds-field.d.ts +12 -0
  41. package/dist/angular/ds-field.js +38 -0
  42. package/dist/angular/ds-icon.d.ts +12 -0
  43. package/dist/angular/ds-icon.js +38 -0
  44. package/dist/angular/ds-input.d.ts +17 -0
  45. package/dist/angular/ds-input.js +46 -0
  46. package/dist/angular/ds-loader.d.ts +12 -0
  47. package/dist/angular/ds-loader.js +38 -0
  48. package/dist/angular/ds-menu.d.ts +24 -0
  49. package/dist/angular/ds-menu.js +48 -0
  50. package/dist/angular/ds-modal.d.ts +15 -0
  51. package/dist/angular/ds-modal.js +42 -0
  52. package/dist/angular/ds-pagination.d.ts +15 -0
  53. package/dist/angular/ds-pagination.js +42 -0
  54. package/dist/angular/ds-panel-nav.d.ts +42 -0
  55. package/dist/angular/ds-panel-nav.js +58 -0
  56. package/dist/angular/ds-panel-tools.d.ts +33 -0
  57. package/dist/angular/ds-panel-tools.js +49 -0
  58. package/dist/angular/ds-radio-group.d.ts +15 -0
  59. package/dist/angular/ds-radio-group.js +42 -0
  60. package/dist/angular/ds-select.d.ts +18 -0
  61. package/dist/angular/ds-select.js +42 -0
  62. package/dist/angular/ds-shell-gradient-picker.d.ts +16 -0
  63. package/dist/angular/ds-shell-gradient-picker.js +42 -0
  64. package/dist/angular/ds-shell-gradient-swatch.d.ts +16 -0
  65. package/dist/angular/ds-shell-gradient-swatch.js +42 -0
  66. package/dist/angular/ds-skeleton.d.ts +12 -0
  67. package/dist/angular/ds-skeleton.js +38 -0
  68. package/dist/angular/ds-slider.d.ts +15 -0
  69. package/dist/angular/ds-slider.js +42 -0
  70. package/dist/angular/ds-tab-group-nav.d.ts +20 -0
  71. package/dist/angular/ds-tab-group-nav.js +46 -0
  72. package/dist/angular/ds-tab-group.d.ts +15 -0
  73. package/dist/angular/ds-tab-group.js +42 -0
  74. package/dist/angular/ds-table.d.ts +33 -0
  75. package/dist/angular/ds-table.js +48 -0
  76. package/dist/angular/ds-tag.d.ts +12 -0
  77. package/dist/angular/ds-tag.js +38 -0
  78. package/dist/angular/ds-text.d.ts +12 -0
  79. package/dist/angular/ds-text.js +38 -0
  80. package/dist/angular/ds-toggle.d.ts +15 -0
  81. package/dist/angular/ds-toggle.js +42 -0
  82. package/dist/angular/ds-tooltip-data-viz.d.ts +12 -0
  83. package/dist/angular/ds-tooltip-data-viz.js +38 -0
  84. package/dist/angular/ds-tooltip.d.ts +12 -0
  85. package/dist/angular/ds-tooltip.js +38 -0
  86. package/dist/angular/index.d.ts +2 -0
  87. package/dist/angular/index.js +43 -0
  88. package/dist/angular/proxies.d.ts +44 -0
  89. package/dist/angular/proxies.js +45 -0
  90. package/dist/angular/radio-value-accessor.d.ts +8 -0
  91. package/dist/angular/radio-value-accessor.js +34 -0
  92. package/dist/angular/select-value-accessor.d.ts +8 -0
  93. package/dist/angular/select-value-accessor.js +34 -0
  94. package/dist/angular/text-value-accessor.d.ts +8 -0
  95. package/dist/angular/text-value-accessor.js +34 -0
  96. package/dist/angular/value-accessor.d.ts +18 -0
  97. package/dist/angular/value-accessor.js +39 -0
  98. package/dist/components/ds-badge.js +1 -1
  99. package/dist/components/ds-banner.js +1 -1
  100. package/dist/components/ds-bar-nav.js +1 -1
  101. package/dist/components/ds-bar-nav.js.map +1 -1
  102. package/dist/components/ds-button-filled.js +1 -1
  103. package/dist/components/ds-button-unfilled.js +1 -1
  104. package/dist/components/ds-card-data-viz-donut.js +1 -1
  105. package/dist/components/ds-card-data-viz-donut.js.map +1 -1
  106. package/dist/components/ds-card-setting.js +1 -1
  107. package/dist/components/ds-card-setting.js.map +1 -1
  108. package/dist/components/ds-card.js +1 -1
  109. package/dist/components/ds-chart-donut.js +1 -1
  110. package/dist/components/ds-chart-donut.js.map +1 -1
  111. package/dist/components/ds-chart-legend.js +1 -1
  112. package/dist/components/ds-chart-legend.js.map +1 -1
  113. package/dist/components/ds-checkbox.js +1 -1
  114. package/dist/components/ds-checkbox.js.map +1 -1
  115. package/dist/components/ds-chip.js +1 -1
  116. package/dist/components/ds-chip.js.map +1 -1
  117. package/dist/components/ds-empty-state.js +1 -1
  118. package/dist/components/ds-empty-state.js.map +1 -1
  119. package/dist/components/ds-field.js +1 -1
  120. package/dist/components/ds-input.js +1 -1
  121. package/dist/components/ds-input.js.map +1 -1
  122. package/dist/components/ds-menu.js +1 -1
  123. package/dist/components/ds-modal.js +1 -1
  124. package/dist/components/ds-pagination.js +1 -1
  125. package/dist/components/ds-pagination.js.map +1 -1
  126. package/dist/components/ds-panel-nav.js +1 -1
  127. package/dist/components/ds-panel-nav.js.map +1 -1
  128. package/dist/components/ds-panel-tools.js +1 -1
  129. package/dist/components/ds-panel-tools.js.map +1 -1
  130. package/dist/components/ds-radio-group.js +1 -1
  131. package/dist/components/ds-radio-group.js.map +1 -1
  132. package/dist/components/ds-select.js +1 -1
  133. package/dist/components/ds-select.js.map +1 -1
  134. package/dist/components/ds-shell-gradient-picker.js +1 -1
  135. package/dist/components/ds-shell-gradient-swatch.js +1 -1
  136. package/dist/components/ds-slider.js +1 -1
  137. package/dist/components/ds-tab-group-nav.js +1 -1
  138. package/dist/components/ds-tab-group.js +1 -1
  139. package/dist/components/ds-tab-group.js.map +1 -1
  140. package/dist/components/ds-table.js +1 -1
  141. package/dist/components/ds-table.js.map +1 -1
  142. package/dist/components/ds-tag.js +1 -1
  143. package/dist/components/ds-text.js +1 -1
  144. package/dist/components/ds-toggle.js +1 -1
  145. package/dist/components/ds-toggle.js.map +1 -1
  146. package/dist/components/ds-tooltip-data-viz.js +1 -1
  147. package/dist/components/ds-tooltip.js +1 -1
  148. package/dist/components/index.js +1 -1
  149. package/dist/components/index.js.map +1 -1
  150. package/dist/components/p-BBpASejH.js +2 -0
  151. package/dist/components/p-BBpASejH.js.map +1 -0
  152. package/dist/components/{p-V2qW8NL0.js → p-BFiaUYu7.js} +2 -2
  153. package/dist/components/p-BFiaUYu7.js.map +1 -0
  154. package/dist/components/p-BOQRM49Q.js +2 -0
  155. package/dist/components/{p-sBx2MuF2.js.map → p-BOQRM49Q.js.map} +1 -1
  156. package/dist/components/p-CTK82RIw.js +2 -0
  157. package/dist/components/p-CTK82RIw.js.map +1 -0
  158. package/dist/components/{p-BSNlp8Di.js → p-Cp86p-11.js} +2 -2
  159. package/dist/components/{p-BSNlp8Di.js.map → p-Cp86p-11.js.map} +1 -1
  160. package/dist/components/{p-DQ3l2TXw.js → p-DEgY_Lnb.js} +2 -2
  161. package/dist/components/{p-CNgNgezy.js → p-DHjjwgku.js} +2 -2
  162. package/dist/components/{p-CNgNgezy.js.map → p-DHjjwgku.js.map} +1 -1
  163. package/dist/components/p-DI8rHm9u.js +2 -0
  164. package/dist/components/p-DI8rHm9u.js.map +1 -0
  165. package/dist/components/p-DMD-RO1W.js +2 -0
  166. package/dist/components/p-DMD-RO1W.js.map +1 -0
  167. package/dist/components/{p-BVNJnFI9.js → p-DOEMwKBb.js} +2 -2
  168. package/dist/components/{p-BVNJnFI9.js.map → p-DOEMwKBb.js.map} +1 -1
  169. package/dist/components/p-DolYlDbY.js +2 -0
  170. package/dist/components/p-DolYlDbY.js.map +1 -0
  171. package/dist/framework/angular.d.ts +6 -0
  172. package/dist/framework/angular.js +6 -0
  173. package/dist/lib/utils/format-compact-number.d.ts +1 -1
  174. package/dist/lib/utils/index.js +8 -1
  175. package/dist/lib/utils/index.js.map +2 -2
  176. package/dist/react/components.d.ts +44 -0
  177. package/{src/react/components.ts → dist/react/components.js} +0 -1
  178. package/dist/react/ds-app-shell.d.ts +9 -0
  179. package/dist/react/ds-app-shell.js +12 -0
  180. package/dist/react/ds-badge.d.ts +9 -0
  181. package/dist/react/ds-badge.js +12 -0
  182. package/dist/react/ds-banner.d.ts +12 -0
  183. package/dist/react/ds-banner.js +12 -0
  184. package/dist/react/ds-bar-nav.d.ts +12 -0
  185. package/dist/react/ds-bar-nav.js +12 -0
  186. package/dist/react/ds-button-filled.d.ts +12 -0
  187. package/dist/react/ds-button-filled.js +12 -0
  188. package/dist/react/ds-button-unfilled.d.ts +13 -0
  189. package/dist/react/ds-button-unfilled.js +15 -0
  190. package/dist/react/ds-card-data-viz-donut.d.ts +12 -0
  191. package/dist/react/ds-card-data-viz-donut.js +12 -0
  192. package/dist/react/ds-card-setting.d.ts +12 -0
  193. package/dist/react/ds-card-setting.js +12 -0
  194. package/dist/react/ds-card.d.ts +9 -0
  195. package/dist/react/ds-card.js +12 -0
  196. package/dist/react/ds-chart-bar.d.ts +9 -0
  197. package/dist/react/ds-chart-bar.js +12 -0
  198. package/dist/react/ds-chart-donut.d.ts +12 -0
  199. package/dist/react/ds-chart-donut.js +12 -0
  200. package/dist/react/ds-chart-legend.d.ts +16 -0
  201. package/dist/react/ds-chart-legend.js +15 -0
  202. package/dist/react/ds-chart-line.d.ts +9 -0
  203. package/dist/react/ds-chart-line.js +12 -0
  204. package/dist/react/ds-checkbox.d.ts +12 -0
  205. package/dist/react/ds-checkbox.js +12 -0
  206. package/dist/react/ds-chip.d.ts +12 -0
  207. package/dist/react/ds-chip.js +12 -0
  208. package/dist/react/ds-divider.d.ts +9 -0
  209. package/dist/react/ds-divider.js +12 -0
  210. package/dist/react/ds-empty-state.d.ts +9 -0
  211. package/dist/react/ds-empty-state.js +12 -0
  212. package/dist/react/ds-field.d.ts +9 -0
  213. package/dist/react/ds-field.js +12 -0
  214. package/dist/react/ds-icon.d.ts +9 -0
  215. package/dist/react/ds-icon.js +12 -0
  216. package/dist/react/ds-input.d.ts +13 -0
  217. package/dist/react/ds-input.js +15 -0
  218. package/dist/react/ds-loader.d.ts +9 -0
  219. package/dist/react/ds-loader.js +12 -0
  220. package/dist/react/ds-menu.d.ts +14 -0
  221. package/dist/react/ds-menu.js +16 -0
  222. package/dist/react/ds-modal.d.ts +12 -0
  223. package/dist/react/ds-modal.js +12 -0
  224. package/dist/react/ds-pagination.d.ts +12 -0
  225. package/dist/react/ds-pagination.js +12 -0
  226. package/dist/react/ds-panel-nav.d.ts +17 -0
  227. package/dist/react/ds-panel-nav.js +19 -0
  228. package/dist/react/ds-panel-tools.d.ts +17 -0
  229. package/dist/react/ds-panel-tools.js +16 -0
  230. package/dist/react/ds-radio-group.d.ts +12 -0
  231. package/dist/react/ds-radio-group.js +12 -0
  232. package/dist/react/ds-select.d.ts +12 -0
  233. package/dist/react/ds-select.js +12 -0
  234. package/dist/react/ds-shell-gradient-picker.d.ts +12 -0
  235. package/dist/react/ds-shell-gradient-picker.js +12 -0
  236. package/dist/react/ds-shell-gradient-swatch.d.ts +12 -0
  237. package/dist/react/ds-shell-gradient-swatch.js +12 -0
  238. package/dist/react/ds-skeleton.d.ts +9 -0
  239. package/dist/react/ds-skeleton.js +12 -0
  240. package/dist/react/ds-slider.d.ts +12 -0
  241. package/dist/react/ds-slider.js +12 -0
  242. package/dist/react/ds-tab-group-nav.d.ts +13 -0
  243. package/dist/react/ds-tab-group-nav.js +15 -0
  244. package/dist/react/ds-tab-group.d.ts +12 -0
  245. package/dist/react/ds-tab-group.js +12 -0
  246. package/dist/react/ds-table.d.ts +21 -0
  247. package/dist/react/ds-table.js +16 -0
  248. package/dist/react/ds-tag.d.ts +9 -0
  249. package/dist/react/ds-tag.js +12 -0
  250. package/dist/react/ds-text.d.ts +9 -0
  251. package/dist/react/ds-text.js +12 -0
  252. package/dist/react/ds-toggle.d.ts +12 -0
  253. package/dist/react/ds-toggle.js +12 -0
  254. package/dist/react/ds-tooltip-data-viz.d.ts +9 -0
  255. package/dist/react/ds-tooltip-data-viz.js +12 -0
  256. package/dist/react/ds-tooltip.d.ts +9 -0
  257. package/dist/react/ds-tooltip.js +12 -0
  258. package/dist/types/components/BarNav/BarNav.d.ts +1 -0
  259. package/dist/types/components/ButtonFilled/ButtonFilled.d.ts +1 -1
  260. package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +1 -1
  261. package/dist/types/components/CardDataVizDonut/CardDataVizDonut.d.ts +1 -0
  262. package/dist/types/components/CardSetting/CardSetting.d.ts +3 -0
  263. package/dist/types/components/ChartDonut/ChartDonut.d.ts +2 -0
  264. package/dist/types/components/ChartLegend/ChartLegend.d.ts +1 -0
  265. package/dist/types/components/Checkbox/Checkbox.d.ts +12 -0
  266. package/dist/types/components/Chip/Chip.d.ts +2 -0
  267. package/dist/types/components/EmptyState/EmptyState.d.ts +2 -0
  268. package/dist/types/components/Input/Input.d.ts +14 -1
  269. package/dist/types/components/Menu/Menu.d.ts +2 -0
  270. package/dist/types/components/Pagination/Pagination.d.ts +3 -0
  271. package/dist/types/components/PanelNav/PanelNav.d.ts +7 -0
  272. package/dist/types/components/PanelTools/PanelTools.d.ts +2 -0
  273. package/dist/types/components/RadioGroup/RadioGroup.d.ts +13 -1
  274. package/dist/types/components/Select/Select.d.ts +13 -1
  275. package/dist/types/components/ShellGradientPicker/ShellGradientPicker.d.ts +1 -0
  276. package/dist/types/components/ShellGradientSwatch/ShellGradientSwatch.d.ts +1 -1
  277. package/dist/types/components/TabGroup/TabGroup.d.ts +1 -1
  278. package/dist/types/components/TabGroupNav/TabGroupNav.d.ts +1 -1
  279. package/dist/types/components/Table/Table.d.ts +6 -0
  280. package/dist/types/components/Text/Text.d.ts +2 -1
  281. package/dist/types/components/Toggle/Toggle.d.ts +12 -0
  282. package/dist/types/components/Tooltip/Tooltip.d.ts +6 -0
  283. package/dist/types/components.d.ts +527 -32
  284. package/dist/types/stencil-public-runtime.d.ts +1 -0
  285. package/dist/types/utils/format-compact-number.d.ts +1 -1
  286. package/package.json +58 -41
  287. package/dist/components/p-B_ENgncs.js +0 -2
  288. package/dist/components/p-B_ENgncs.js.map +0 -1
  289. package/dist/components/p-CQmul5NK.js +0 -2
  290. package/dist/components/p-CQmul5NK.js.map +0 -1
  291. package/dist/components/p-CsaW5gDM.js +0 -2
  292. package/dist/components/p-CsaW5gDM.js.map +0 -1
  293. package/dist/components/p-DEpLlQZK.js +0 -2
  294. package/dist/components/p-DEpLlQZK.js.map +0 -1
  295. package/dist/components/p-DRqJ3RUb.js +0 -2
  296. package/dist/components/p-DRqJ3RUb.js.map +0 -1
  297. package/dist/components/p-V2qW8NL0.js.map +0 -1
  298. package/dist/components/p-sBx2MuF2.js +0 -2
  299. package/src/angular/angular-component-lib/utils.ts +0 -65
  300. package/src/angular/index.ts +0 -45
  301. package/src/angular/proxies.ts +0 -1156
  302. package/src/react/ds-app-shell.ts +0 -26
  303. package/src/react/ds-badge.ts +0 -26
  304. package/src/react/ds-banner.ts +0 -27
  305. package/src/react/ds-bar-nav.ts +0 -27
  306. package/src/react/ds-button-filled.ts +0 -27
  307. package/src/react/ds-button-unfilled.ts +0 -33
  308. package/src/react/ds-card-data-viz-donut.ts +0 -27
  309. package/src/react/ds-card-setting.ts +0 -27
  310. package/src/react/ds-card.ts +0 -26
  311. package/src/react/ds-chart-bar.ts +0 -26
  312. package/src/react/ds-chart-donut.ts +0 -27
  313. package/src/react/ds-chart-legend.ts +0 -33
  314. package/src/react/ds-chart-line.ts +0 -26
  315. package/src/react/ds-checkbox.ts +0 -27
  316. package/src/react/ds-chip.ts +0 -27
  317. package/src/react/ds-divider.ts +0 -26
  318. package/src/react/ds-empty-state.ts +0 -26
  319. package/src/react/ds-field.ts +0 -26
  320. package/src/react/ds-icon.ts +0 -26
  321. package/src/react/ds-input.ts +0 -33
  322. package/src/react/ds-loader.ts +0 -26
  323. package/src/react/ds-menu.ts +0 -35
  324. package/src/react/ds-modal.ts +0 -27
  325. package/src/react/ds-pagination.ts +0 -27
  326. package/src/react/ds-panel-nav.ts +0 -41
  327. package/src/react/ds-panel-tools.ts +0 -35
  328. package/src/react/ds-radio-group.ts +0 -27
  329. package/src/react/ds-select.ts +0 -27
  330. package/src/react/ds-shell-gradient-picker.ts +0 -27
  331. package/src/react/ds-shell-gradient-swatch.ts +0 -27
  332. package/src/react/ds-skeleton.ts +0 -26
  333. package/src/react/ds-slider.ts +0 -27
  334. package/src/react/ds-tab-group-nav.ts +0 -33
  335. package/src/react/ds-tab-group.ts +0 -27
  336. package/src/react/ds-table.ts +0 -35
  337. package/src/react/ds-tag.ts +0 -26
  338. package/src/react/ds-text.ts +0 -26
  339. package/src/react/ds-toggle.ts +0 -27
  340. package/src/react/ds-tooltip-data-viz.ts +0 -26
  341. package/src/react/ds-tooltip.ts +0 -26
  342. package/src/wc/components/AppShell/AppShell.tsx +0 -377
  343. package/src/wc/components/Badge/Badge.tsx +0 -179
  344. package/src/wc/components/Badge/index.ts +0 -1
  345. package/src/wc/components/Banner/Banner.tsx +0 -156
  346. package/src/wc/components/BarNav/BarNav.tsx +0 -742
  347. package/src/wc/components/BarNav/bar-nav-dom-utils.ts +0 -23
  348. package/src/wc/components/BarNav/bar-nav-tabs-menu-utils.ts +0 -114
  349. package/src/wc/components/BarNav/bar-nav-types.ts +0 -3
  350. package/src/wc/components/BarNav/bar-nav-utils.ts +0 -67
  351. package/src/wc/components/BarNav/index.ts +0 -2
  352. package/src/wc/components/ButtonFilled/ButtonFilled.tsx +0 -171
  353. package/src/wc/components/ButtonFilled/index.ts +0 -7
  354. package/src/wc/components/ButtonUnfilled/ButtonUnfilled.tsx +0 -229
  355. package/src/wc/components/ButtonUnfilled/index.ts +0 -7
  356. package/src/wc/components/Card/Card.tsx +0 -78
  357. package/src/wc/components/Card/index.ts +0 -1
  358. package/src/wc/components/CardDataVizDonut/CardDataVizDonut.tsx +0 -108
  359. package/src/wc/components/CardDataVizDonut/index.ts +0 -1
  360. package/src/wc/components/CardSetting/CardSetting.tsx +0 -81
  361. package/src/wc/components/CardSetting/index.ts +0 -1
  362. package/src/wc/components/ChartBar/ChartBar.tsx +0 -88
  363. package/src/wc/components/ChartBar/index.ts +0 -1
  364. package/src/wc/components/ChartDonut/ChartDonut.tsx +0 -289
  365. package/src/wc/components/ChartDonut/index.ts +0 -1
  366. package/src/wc/components/ChartLegend/ChartLegend.tsx +0 -125
  367. package/src/wc/components/ChartLegend/index.ts +0 -2
  368. package/src/wc/components/ChartLine/ChartLine.tsx +0 -102
  369. package/src/wc/components/ChartLine/index.ts +0 -1
  370. package/src/wc/components/Checkbox/Checkbox.tsx +0 -60
  371. package/src/wc/components/Checkbox/index.ts +0 -1
  372. package/src/wc/components/Chip/Chip.tsx +0 -104
  373. package/src/wc/components/Chip/index.ts +0 -1
  374. package/src/wc/components/Divider/Divider.tsx +0 -107
  375. package/src/wc/components/Divider/index.ts +0 -2
  376. package/src/wc/components/EmptyState/EmptyState.tsx +0 -30
  377. package/src/wc/components/Field/Field.tsx +0 -30
  378. package/src/wc/components/Icon/Icon.tsx +0 -172
  379. package/src/wc/components/Icon/flag-icon-catalog.ts +0 -36
  380. package/src/wc/components/Icon/icon-cache.ts +0 -47
  381. package/src/wc/components/Icon/icon-svg.ts +0 -73
  382. package/src/wc/components/Icon/index.ts +0 -1
  383. package/src/wc/components/Icon/system-icon-catalog.ts +0 -401
  384. package/src/wc/components/Input/Input.tsx +0 -107
  385. package/src/wc/components/Input/index.ts +0 -1
  386. package/src/wc/components/Loader/Loader.tsx +0 -99
  387. package/src/wc/components/Loader/index.ts +0 -1
  388. package/src/wc/components/Menu/Menu.tsx +0 -437
  389. package/src/wc/components/Menu/menu-placement.ts +0 -26
  390. package/src/wc/components/Menu/menu-position.ts +0 -78
  391. package/src/wc/components/Menu/menu-types.ts +0 -39
  392. package/src/wc/components/Modal/Modal.tsx +0 -213
  393. package/src/wc/components/Pagination/Pagination.tsx +0 -97
  394. package/src/wc/components/PanelNav/PanelNav.tsx +0 -707
  395. package/src/wc/components/PanelNav/index.ts +0 -17
  396. package/src/wc/components/PanelNav/panel-nav-types.ts +0 -36
  397. package/src/wc/components/PanelNav/panel-nav-utils.ts +0 -79
  398. package/src/wc/components/PanelTools/PanelTools.tsx +0 -366
  399. package/src/wc/components/PanelTools/index.ts +0 -7
  400. package/src/wc/components/PanelTools/panel-tools-types.ts +0 -44
  401. package/src/wc/components/PanelTools/panel-tools-utils.ts +0 -50
  402. package/src/wc/components/RadioGroup/RadioGroup.tsx +0 -130
  403. package/src/wc/components/RadioGroup/index.ts +0 -1
  404. package/src/wc/components/Select/Select.tsx +0 -274
  405. package/src/wc/components/Select/index.ts +0 -1
  406. package/src/wc/components/ShellGradientPicker/ShellGradientPicker.tsx +0 -55
  407. package/src/wc/components/ShellGradientSwatch/ShellGradientSwatch.tsx +0 -69
  408. package/src/wc/components/ShellGradientSwatch/shell-gradient-swatch-types.ts +0 -17
  409. package/src/wc/components/Skeleton/Skeleton.tsx +0 -64
  410. package/src/wc/components/Skeleton/index.ts +0 -1
  411. package/src/wc/components/Slider/Slider.tsx +0 -76
  412. package/src/wc/components/Slider/index.ts +0 -1
  413. package/src/wc/components/TabGroup/TabGroup.tsx +0 -204
  414. package/src/wc/components/TabGroup/tab-item-utils.ts +0 -25
  415. package/src/wc/components/TabGroupNav/TabGroupNav.tsx +0 -347
  416. package/src/wc/components/Table/Table.tsx +0 -273
  417. package/src/wc/components/Tag/Tag.tsx +0 -63
  418. package/src/wc/components/Tag/index.ts +0 -1
  419. package/src/wc/components/Text/Text.tsx +0 -98
  420. package/src/wc/components/Text/index.ts +0 -12
  421. package/src/wc/components/Text/text-types.ts +0 -23
  422. package/src/wc/components/Text/text-utils.ts +0 -13
  423. package/src/wc/components/Toggle/Toggle.tsx +0 -43
  424. package/src/wc/components/Toggle/index.ts +0 -1
  425. package/src/wc/components/Tooltip/Tooltip.tsx +0 -372
  426. package/src/wc/components/TooltipDataViz/TooltipDataViz.tsx +0 -145
  427. package/src/wc/components/TooltipDataViz/index.ts +0 -1
  428. package/src/wc/components.d.ts +0 -3569
  429. package/src/wc/nav/badge-gradient-ring.ts +0 -109
  430. package/src/wc/nav/chrome-transition.ts +0 -62
  431. package/src/wc/nav/index.ts +0 -80
  432. package/src/wc/nav/nav-chrome.ts +0 -47
  433. package/src/wc/nav/shell-chrome-metrics.ts +0 -49
  434. package/src/wc/nav/shell-gradient-presets.ts +0 -60
  435. package/src/wc/nav/shell-gradient.ts +0 -94
  436. package/src/wc/nav/shell-shortcuts.ts +0 -63
  437. package/src/wc/nav/shell-view-transition.ts +0 -122
  438. package/src/wc/utils/chart-colors.ts +0 -7
  439. package/src/wc/utils/chart-types.ts +0 -25
  440. package/src/wc/utils/control-density.css +0 -43
  441. package/src/wc/utils/control-inactive.css +0 -20
  442. package/src/wc/utils/control-text.ts +0 -11
  443. package/src/wc/utils/control-width.css +0 -28
  444. package/src/wc/utils/control-width.ts +0 -10
  445. package/src/wc/utils/focus-ring.css +0 -33
  446. package/src/wc/utils/format-compact-number.ts +0 -27
  447. package/src/wc/utils/index.ts +0 -27
  448. package/src/wc/utils/interaction-fill.css +0 -162
  449. package/src/wc/utils/resolve-css-length-px.ts +0 -66
  450. package/src/wc/utils/resolve-css-time-ms.ts +0 -46
  451. package/src/wc/utils/scroll-edge-fade.css +0 -80
  452. package/src/wc/utils/scroll-edge-fade.ts +0 -148
  453. package/src/wc/utils/token-defaults.ts +0 -81
  454. package/src/wc/utils/truncate-svg-text.ts +0 -25
  455. package/src/wc/utils/typography.css +0 -146
  456. /package/dist/components/{p-DQ3l2TXw.js.map → p-DEgY_Lnb.js.map} +0 -0
@@ -1,204 +0,0 @@
1
- import { Component, Prop, Event, EventEmitter, Element, Listen, Watch, h, Host } from '@stencil/core';
2
- import {
3
- getSelectableTabs,
4
- isTabDivider,
5
- type TabItem,
6
- type TabItemTab,
7
- } from './tab-item-utils';
8
-
9
- export type TabBackground = 'faint' | 'medium' | 'bold' | 'strong' | 'always-dark';
10
-
11
- @Component({
12
- tag: 'ds-tab-group',
13
- styleUrl: 'TabGroup.css',
14
- scoped: true,
15
- })
16
- export class TabGroup {
17
- @Element() el!: HTMLElement;
18
-
19
- @Prop({ mutable: true }) value: string = '';
20
- @Prop() tabs: TabItem[] = [];
21
- @Prop() background: TabBackground | undefined;
22
- @Prop({ attribute: 'aria-label' }) ariaLabel: string | undefined;
23
- @Prop({ attribute: 'aria-labelledby' }) ariaLabelledby: string | undefined;
24
- @Prop() orientation: 'horizontal' | 'vertical' = 'horizontal';
25
-
26
- @Event() dsChange!: EventEmitter<string>;
27
-
28
- private get selectableTabs(): TabItemTab[] {
29
- return getSelectableTabs(this.tabs);
30
- }
31
-
32
- private selectTab(id: string, options?: { focus?: boolean }) {
33
- this.value = id;
34
- this.dsChange.emit(id);
35
- if (options?.focus !== false) {
36
- this.focusTab(id);
37
- }
38
- }
39
-
40
- private focusTab(id: string) {
41
- const btn = this.el.querySelector(`[data-tab-id="${id}"]`) as HTMLElement | null;
42
- btn?.focus({ preventScroll: true });
43
- }
44
-
45
- /** Keep focus on the selected tab when value changes externally (e.g. BarNav menu). */
46
- @Watch('value')
47
- onValueChange(next: string, prev: string | undefined) {
48
- if (prev === undefined || next === prev) return;
49
-
50
- requestAnimationFrame(() => {
51
- const active = document.activeElement as HTMLElement | null;
52
- if (!active || !this.el.contains(active)) return;
53
-
54
- const activeId = active.getAttribute('data-tab-id');
55
- if (activeId === next) return;
56
-
57
- const nextTab = this.el.querySelector(`[data-tab-id="${next}"]`) as HTMLElement | null;
58
- if (nextTab) {
59
- nextTab.focus({ preventScroll: true });
60
- } else {
61
- active.blur();
62
- }
63
- });
64
- }
65
-
66
- /**
67
- * Find the next non-inactive tab index relative to `from`, stepping by `step`.
68
- * Returns `from` unchanged if no other enabled tab exists.
69
- */
70
- private findEnabled(from: number, step: 1 | -1): number {
71
- const tabs = this.selectableTabs;
72
- const len = tabs.length;
73
- for (let n = 0; n < len; n++) {
74
- const i = (from + step * (n + 1) + len * (n + 1)) % len;
75
- if (!tabs[i]?.isInactive) return i;
76
- }
77
- return from;
78
- }
79
-
80
- @Listen('keydown')
81
- handleKeyDown(e: KeyboardEvent) {
82
- const tabs = this.selectableTabs;
83
- if (!tabs.length) return;
84
-
85
- const currentIdx = tabs.findIndex(t => t.id === this.value);
86
- const isVertical = this.orientation === 'vertical';
87
-
88
- let nextIdx: number | null = null;
89
-
90
- if (!isVertical) {
91
- if (e.key === 'ArrowRight') {
92
- nextIdx = this.findEnabled(currentIdx, 1);
93
- } else if (e.key === 'ArrowLeft') {
94
- nextIdx = this.findEnabled(currentIdx, -1);
95
- }
96
- } else {
97
- if (e.key === 'ArrowDown') {
98
- nextIdx = this.findEnabled(currentIdx, 1);
99
- } else if (e.key === 'ArrowUp') {
100
- nextIdx = this.findEnabled(currentIdx, -1);
101
- }
102
- }
103
-
104
- if (e.key === 'Home') {
105
- const first = tabs.findIndex(t => !t.isInactive);
106
- nextIdx = first === -1 ? null : first;
107
- } else if (e.key === 'End') {
108
- const lastEnabled = [...tabs].reverse().findIndex(t => !t.isInactive);
109
- nextIdx = lastEnabled === -1 ? null : tabs.length - 1 - lastEnabled;
110
- }
111
-
112
- if (nextIdx !== null) {
113
- e.preventDefault();
114
- const next = tabs[nextIdx];
115
- this.selectTab(next.id);
116
- }
117
- }
118
-
119
- private getBgClass(): string {
120
- if (!this.background || this.background === 'faint') return '';
121
- if (this.background === 'always-dark') return 'on-always-dark';
122
- return `on-${this.background}`;
123
- }
124
-
125
- render() {
126
- const bgClass = this.getBgClass();
127
- const isVertical = this.orientation === 'vertical';
128
-
129
- return (
130
- <Host class="tab-group-host">
131
- <div
132
- role="tablist"
133
- class={{ 'tab-list': true, 'tab-list--vertical': isVertical }}
134
- aria-label={this.ariaLabel}
135
- aria-labelledby={this.ariaLabelledby}
136
- aria-orientation={isVertical ? 'vertical' : undefined}
137
- >
138
- {this.tabs.map((tab, index) => {
139
- if (isTabDivider(tab)) {
140
- return (
141
- <div
142
- key={`divider-${index}`}
143
- class={{
144
- 'tab-divider': true,
145
- 'tab-divider--vertical': isVertical,
146
- }}
147
- aria-hidden="true"
148
- >
149
- <div class="tab-divider__line" />
150
- </div>
151
- );
152
- }
153
-
154
- const isSelected = tab.id === this.value;
155
- return (
156
- <button
157
- key={tab.id}
158
- type="button"
159
- role="tab"
160
- data-tab-id={tab.id}
161
- class={{
162
- tab: true,
163
- 'tab--selected': isSelected,
164
- 'ds-focus-ring-inset': true,
165
- 'ds-interaction-fill': !tab.isInactive,
166
- 'ds-interaction-fill--on-medium': bgClass === 'on-medium',
167
- 'ds-interaction-fill--on-bold': bgClass === 'on-bold',
168
- 'ds-interaction-fill--on-strong': bgClass === 'on-strong',
169
- 'ds-interaction-fill--on-always-dark': bgClass === 'on-always-dark',
170
- 'ds-control-inactive': !!tab.isInactive,
171
- [bgClass]: !!bgClass,
172
- }}
173
- aria-selected={isSelected}
174
- aria-disabled={tab.isInactive || undefined}
175
- aria-controls={tab.panelId ?? undefined}
176
- disabled={tab.isInactive}
177
- tabIndex={isSelected ? 0 : -1}
178
- onClick={() => !tab.isInactive && this.selectTab(tab.id)}
179
- >
180
- <span class={{
181
- tab__label: true,
182
- 'tab__label--dot': !!tab.dot,
183
- }}>
184
- <ds-text as="span" variant="text-body-small" emphasis={isSelected} color="inherit">
185
- {tab.label}
186
- </ds-text>
187
- {tab.dot && (
188
- <ds-badge
189
- class="tab__dot"
190
- variant="dot"
191
- background="var(--_dot-ring)"
192
- label=""
193
- aria-hidden="true"
194
- />
195
- )}
196
- </span>
197
- </button>
198
- );
199
- })}
200
- </div>
201
- </Host>
202
- );
203
- }
204
- }
@@ -1,25 +0,0 @@
1
- export interface TabItemDivider {
2
- type: 'divider';
3
- }
4
-
5
- export interface TabItemTab {
6
- id: string;
7
- label: string;
8
- /** Disables the tab (same meaning as control `isInactive`). */
9
- isInactive?: boolean;
10
- /** id of the tabpanel this tab controls */
11
- panelId?: string;
12
- /** Show a notification dot (brand) on the tab — no count, matching panel-nav. */
13
- dot?: boolean;
14
- }
15
-
16
- export type TabItem = TabItemTab | TabItemDivider;
17
-
18
- export function isTabDivider(item: TabItem): item is TabItemDivider {
19
- return 'type' in item && item.type === 'divider';
20
- }
21
-
22
- /** Tab entries that participate in selection, keyboard nav, and URL matching. */
23
- export function getSelectableTabs(tabs: TabItem[]): TabItemTab[] {
24
- return tabs.filter((t): t is TabItemTab => !isTabDivider(t));
25
- }
@@ -1,347 +0,0 @@
1
- import { Component, Prop, Event, EventEmitter, Element, Listen, Watch, Method, State, h, Host } from '@stencil/core';
2
- import {
3
- getSelectableTabs,
4
- isTabDivider,
5
- type TabItem,
6
- type TabItemTab,
7
- } from '../TabGroup/tab-item-utils';
8
-
9
- export type TabGroupNavBackground = 'faint' | 'medium' | 'bold' | 'strong' | 'always-dark' | 'navigation';
10
-
11
- @Component({
12
- tag: 'ds-tab-group-nav',
13
- styleUrl: 'TabGroupNav.css',
14
- scoped: true,
15
- })
16
- export class TabGroupNav {
17
- @Element() el!: HTMLElement;
18
-
19
- @Prop({ mutable: true }) value: string = '';
20
- @Prop() tabs: TabItem[] = [];
21
- @Prop() background: TabGroupNavBackground | undefined;
22
- @Prop({ attribute: 'aria-label' }) ariaLabel: string | undefined;
23
- @Prop({ attribute: 'aria-labelledby' }) ariaLabelledby: string | undefined;
24
- @Prop() orientation: 'horizontal' | 'vertical' = 'horizontal';
25
-
26
- /**
27
- * When `false`, arrow keys move focus only — Space/Enter (or click) commits selection.
28
- * Used by bar nav where each tab is a full page transition.
29
- */
30
- @Prop() selectionFollowsFocus: boolean = true;
31
-
32
- /** When `false`, every tab uses `tabindex="-1"` (another chrome control owns the tab stop). */
33
- @Prop() rovingEnabled: boolean = true;
34
-
35
- @Event() dsChange!: EventEmitter<string>;
36
-
37
- /** Fired when arrow navigation reaches the first/last tab in manual selection mode. */
38
- @Event() dsRovingExit!: EventEmitter<'start' | 'end'>;
39
-
40
- @State() private focusedTabId: string = '';
41
-
42
- private get selectableTabs(): TabItemTab[] {
43
- return getSelectableTabs(this.tabs);
44
- }
45
-
46
- componentWillLoad() {
47
- this.syncFocusedTabId(this.value);
48
- }
49
-
50
- @Watch('value')
51
- onValueChange(next: string, prev: string | undefined) {
52
- if (!this.selectionFollowsFocus) {
53
- if (prev === undefined || next !== this.focusedTabId) {
54
- this.syncFocusedTabId(next);
55
- }
56
- return;
57
- }
58
-
59
- if (prev === undefined || next === prev) return;
60
-
61
- requestAnimationFrame(() => {
62
- const active = document.activeElement as HTMLElement | null;
63
- if (!active || !this.el.contains(active)) return;
64
-
65
- const activeId = active.getAttribute('data-tab-id');
66
- if (activeId === next) return;
67
-
68
- const nextTab = this.el.querySelector(`[data-tab-id="${next}"]`) as HTMLElement | null;
69
- if (nextTab) {
70
- nextTab.focus({ preventScroll: true });
71
- } else {
72
- active.blur();
73
- }
74
- });
75
- }
76
-
77
- @Watch('tabs')
78
- onTabsChange() {
79
- if (!this.selectableTabs.some(tab => tab.id === this.focusedTabId)) {
80
- this.syncFocusedTabId(this.value);
81
- }
82
- }
83
-
84
- @Method()
85
- async focusTab(id: string) {
86
- this.focusedTabId = id;
87
- const btn = this.el.querySelector(`[data-tab-id="${id}"]`) as HTMLElement | null;
88
- btn?.focus({ preventScroll: true });
89
- }
90
-
91
- @Method()
92
- async focusLastTab() {
93
- const tabs = this.selectableTabs;
94
- const last = [...tabs].reverse().find(tab => !tab.isInactive);
95
- if (last) await this.focusTab(last.id);
96
- }
97
-
98
- @Method()
99
- async focusFirstTab() {
100
- const first = this.selectableTabs.find(tab => !tab.isInactive);
101
- if (first) await this.focusTab(first.id);
102
- }
103
-
104
- private syncFocusedTabId(preferred: string) {
105
- const tabs = this.selectableTabs;
106
- if (tabs.some(tab => tab.id === preferred && !tab.isInactive)) {
107
- this.focusedTabId = preferred;
108
- return;
109
- }
110
- const first = tabs.find(tab => !tab.isInactive);
111
- this.focusedTabId = first?.id ?? '';
112
- }
113
-
114
- private selectTab(id: string, options?: { focus?: boolean }) {
115
- this.value = id;
116
- this.focusedTabId = id;
117
- this.dsChange.emit(id);
118
- if (options?.focus !== false) {
119
- void this.focusTab(id);
120
- }
121
- }
122
-
123
- private getFocusedIndex(): number {
124
- return this.selectableTabs.findIndex(tab => tab.id === this.focusedTabId);
125
- }
126
-
127
- private findEnabledLinear(from: number, step: 1 | -1): number | null {
128
- const tabs = this.selectableTabs;
129
- for (let i = from + step; i >= 0 && i < tabs.length; i += step) {
130
- if (!tabs[i]?.isInactive) return i;
131
- }
132
- return null;
133
- }
134
-
135
- /**
136
- * Find the next non-inactive tab index relative to `from`, stepping by `step`.
137
- * Returns `from` unchanged if no other enabled tab exists.
138
- */
139
- private findEnabled(from: number, step: 1 | -1): number {
140
- const tabs = this.selectableTabs;
141
- const len = tabs.length;
142
- for (let n = 0; n < len; n++) {
143
- const i = (from + step * (n + 1) + len * (n + 1)) % len;
144
- if (!tabs[i]?.isInactive) return i;
145
- }
146
- return from;
147
- }
148
-
149
- private moveFocusToIndex(nextIdx: number) {
150
- const next = this.selectableTabs[nextIdx];
151
- if (!next) return;
152
- this.focusedTabId = next.id;
153
- void this.focusTab(next.id);
154
- }
155
-
156
- private activateFocusedTab(e: KeyboardEvent) {
157
- if (e.key !== 'Enter' && e.key !== ' ') return;
158
- const tab = this.selectableTabs.find(item => item.id === this.focusedTabId);
159
- if (!tab || tab.isInactive) return;
160
- e.preventDefault();
161
- this.selectTab(tab.id, { focus: true });
162
- }
163
-
164
- @Listen('keydown')
165
- handleKeyDown(e: KeyboardEvent) {
166
- const tabs = this.selectableTabs;
167
- if (!tabs.length) return;
168
-
169
- if (!this.selectionFollowsFocus) {
170
- if (e.key === 'Enter' || e.key === ' ') {
171
- this.activateFocusedTab(e);
172
- return;
173
- }
174
- }
175
-
176
- const currentIdx = this.selectionFollowsFocus
177
- ? tabs.findIndex(t => t.id === this.value)
178
- : this.getFocusedIndex();
179
- if (currentIdx < 0) return;
180
-
181
- const isVertical = this.orientation === 'vertical';
182
- let nextIdx: number | null = null;
183
- let exit: 'start' | 'end' | null = null;
184
-
185
- if (!isVertical) {
186
- if (e.key === 'ArrowRight') {
187
- if (this.selectionFollowsFocus) {
188
- nextIdx = this.findEnabled(currentIdx, 1);
189
- } else {
190
- const candidate = this.findEnabledLinear(currentIdx, 1);
191
- if (candidate === null) exit = 'end';
192
- else nextIdx = candidate;
193
- }
194
- } else if (e.key === 'ArrowLeft') {
195
- if (this.selectionFollowsFocus) {
196
- nextIdx = this.findEnabled(currentIdx, -1);
197
- } else {
198
- const candidate = this.findEnabledLinear(currentIdx, -1);
199
- if (candidate === null) exit = 'start';
200
- else nextIdx = candidate;
201
- }
202
- }
203
- } else {
204
- if (e.key === 'ArrowDown') {
205
- if (this.selectionFollowsFocus) {
206
- nextIdx = this.findEnabled(currentIdx, 1);
207
- } else {
208
- const candidate = this.findEnabledLinear(currentIdx, 1);
209
- if (candidate === null) exit = 'end';
210
- else nextIdx = candidate;
211
- }
212
- } else if (e.key === 'ArrowUp') {
213
- if (this.selectionFollowsFocus) {
214
- nextIdx = this.findEnabled(currentIdx, -1);
215
- } else {
216
- const candidate = this.findEnabledLinear(currentIdx, -1);
217
- if (candidate === null) exit = 'start';
218
- else nextIdx = candidate;
219
- }
220
- }
221
- }
222
-
223
- if (e.key === 'Home') {
224
- const first = tabs.findIndex(t => !t.isInactive);
225
- nextIdx = first === -1 ? null : first;
226
- } else if (e.key === 'End') {
227
- const lastEnabled = [...tabs].reverse().findIndex(t => !t.isInactive);
228
- nextIdx = lastEnabled === -1 ? null : tabs.length - 1 - lastEnabled;
229
- }
230
-
231
- if (exit) {
232
- e.preventDefault();
233
- this.dsRovingExit.emit(exit);
234
- return;
235
- }
236
-
237
- if (nextIdx !== null && nextIdx !== currentIdx) {
238
- e.preventDefault();
239
- const next = tabs[nextIdx];
240
- if (this.selectionFollowsFocus) {
241
- this.selectTab(next.id);
242
- } else {
243
- this.moveFocusToIndex(nextIdx);
244
- }
245
- }
246
- }
247
-
248
- private getBgClass(): string {
249
- if (!this.background || this.background === 'faint') return '';
250
- if (this.background === 'always-dark') return 'on-always-dark';
251
- if (this.background === 'navigation') return 'on-navigation';
252
- return `on-${this.background}`;
253
- }
254
-
255
- private tabIndexForTab(tab: TabItemTab): number {
256
- if (!this.rovingEnabled) return -1;
257
- if (this.selectionFollowsFocus) {
258
- return tab.id === this.value ? 0 : -1;
259
- }
260
- return tab.id === this.focusedTabId ? 0 : -1;
261
- }
262
-
263
- render() {
264
- const bgClass = this.getBgClass();
265
- const isVertical = this.orientation === 'vertical';
266
- const isNavigation = this.background === 'navigation';
267
-
268
- return (
269
- <Host class="tab-group-nav-host">
270
- <div
271
- role="tablist"
272
- class={{
273
- 'tab-list': true,
274
- 'tab-list--vertical': isVertical,
275
- 'tab-list--on-navigation': isNavigation,
276
- }}
277
- aria-label={this.ariaLabel}
278
- aria-labelledby={this.ariaLabelledby}
279
- aria-orientation={isVertical ? 'vertical' : undefined}
280
- >
281
- {this.tabs.map((tab, index) => {
282
- if (isTabDivider(tab)) {
283
- return (
284
- <div
285
- key={`divider-${index}`}
286
- class={{
287
- 'tab-divider': true,
288
- 'tab-divider--vertical': isVertical,
289
- }}
290
- aria-hidden="true"
291
- >
292
- <div class="tab-divider__line" />
293
- </div>
294
- );
295
- }
296
-
297
- const isSelected = tab.id === this.value;
298
- return (
299
- <button
300
- key={tab.id}
301
- type="button"
302
- role="tab"
303
- data-tab-id={tab.id}
304
- class={{
305
- tab: true,
306
- 'tab--selected': isSelected,
307
- 'ds-focus-ring-inset': true,
308
- 'ds-control-inactive': !!tab.isInactive,
309
- [bgClass]: !!bgClass,
310
- }}
311
- aria-selected={isSelected}
312
- aria-disabled={tab.isInactive || undefined}
313
- aria-controls={tab.panelId ?? undefined}
314
- disabled={tab.isInactive}
315
- tabIndex={this.tabIndexForTab(tab)}
316
- onClick={() => !tab.isInactive && this.selectTab(tab.id)}
317
- onFocus={() => {
318
- if (!this.selectionFollowsFocus) {
319
- this.focusedTabId = tab.id;
320
- }
321
- }}
322
- >
323
- <span class={{
324
- tab__label: true,
325
- 'tab__label--dot': !!tab.dot,
326
- }}>
327
- <ds-text as="span" variant="text-body-medium" emphasis={isSelected} color="inherit">
328
- {tab.label}
329
- </ds-text>
330
- {tab.dot && (
331
- <ds-badge
332
- class="tab__dot"
333
- variant="dot"
334
- background="var(--_dot-ring)"
335
- label=""
336
- aria-hidden="true"
337
- />
338
- )}
339
- </span>
340
- </button>
341
- );
342
- })}
343
- </div>
344
- </Host>
345
- );
346
- }
347
- }