@ds-mo/ui 2.11.1 → 2.12.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 (226) hide show
  1. package/README.md +13 -13
  2. package/dist/.build-stamp +1 -1
  3. package/dist/components/ds-app-shell.js +1 -1
  4. package/dist/components/ds-banner.js +1 -1
  5. package/dist/components/ds-banner.js.map +1 -1
  6. package/dist/components/ds-bar-nav.js +1 -1
  7. package/dist/components/ds-bar-nav.js.map +1 -1
  8. package/dist/components/ds-button-filled.js +1 -1
  9. package/dist/components/{ds-accordion.d.ts → ds-button-unfilled.d.ts} +4 -4
  10. package/dist/components/ds-button-unfilled.js +2 -0
  11. package/dist/components/ds-card-data-viz.js +1 -1
  12. package/dist/components/ds-card-data-viz.js.map +1 -1
  13. package/dist/components/ds-card-setting.js +1 -1
  14. package/dist/components/ds-card-setting.js.map +1 -1
  15. package/dist/components/ds-chart-bar.js +1 -1
  16. package/dist/components/ds-chart-bar.js.map +1 -1
  17. package/dist/components/ds-chart-donut.js +1 -1
  18. package/dist/components/ds-chart-donut.js.map +1 -1
  19. package/dist/components/ds-chart-legend.js +1 -1
  20. package/dist/components/ds-chart-legend.js.map +1 -1
  21. package/dist/components/ds-chart-line.js +1 -1
  22. package/dist/components/ds-checkbox.js +1 -1
  23. package/dist/components/ds-checkbox.js.map +1 -1
  24. package/dist/components/ds-chip.js +1 -1
  25. package/dist/components/ds-chip.js.map +1 -1
  26. package/dist/components/ds-divider.js +1 -1
  27. package/dist/components/ds-empty-state.js +1 -1
  28. package/dist/components/ds-empty-state.js.map +1 -1
  29. package/dist/components/ds-field.js +1 -1
  30. package/dist/components/ds-field.js.map +1 -1
  31. package/dist/components/ds-header.js +1 -1
  32. package/dist/components/ds-header.js.map +1 -1
  33. package/dist/components/ds-icon.js +1 -1
  34. package/dist/components/ds-input.js +1 -1
  35. package/dist/components/ds-input.js.map +1 -1
  36. package/dist/components/ds-loader.js +1 -1
  37. package/dist/components/ds-loader.js.map +1 -1
  38. package/dist/components/ds-menu.js +1 -1
  39. package/dist/components/ds-modal.js +1 -1
  40. package/dist/components/ds-pagination.js +1 -1
  41. package/dist/components/ds-pagination.js.map +1 -1
  42. package/dist/components/ds-panel-nav.js +1 -1
  43. package/dist/components/ds-panel-nav.js.map +1 -1
  44. package/dist/components/ds-panel-tools.js +1 -1
  45. package/dist/components/ds-panel-tools.js.map +1 -1
  46. package/dist/components/ds-radio-group.js +1 -1
  47. package/dist/components/ds-radio-group.js.map +1 -1
  48. package/dist/components/ds-scrollbar.js +1 -1
  49. package/dist/components/ds-select.js +1 -1
  50. package/dist/components/ds-select.js.map +1 -1
  51. package/dist/components/ds-shell-gradient-picker.js +1 -1
  52. package/dist/components/ds-shell-gradient-swatch.js +1 -1
  53. package/dist/components/ds-skeleton.js +1 -1
  54. package/dist/components/ds-skeleton.js.map +1 -1
  55. package/dist/components/ds-slider.js +1 -1
  56. package/dist/components/ds-slider.js.map +1 -1
  57. package/dist/components/ds-tab-group-nav.js +1 -1
  58. package/dist/components/ds-tab-group.js +1 -1
  59. package/dist/components/ds-tab-group.js.map +1 -1
  60. package/dist/components/ds-table.js +1 -1
  61. package/dist/components/ds-table.js.map +1 -1
  62. package/dist/components/ds-tag.js +1 -1
  63. package/dist/components/ds-tag.js.map +1 -1
  64. package/dist/components/ds-text.js +1 -1
  65. package/dist/components/ds-toggle.js +1 -1
  66. package/dist/components/ds-toggle.js.map +1 -1
  67. package/dist/components/ds-tooltip-data-viz.js +1 -1
  68. package/dist/components/ds-tooltip-data-viz.js.map +1 -1
  69. package/dist/components/ds-tooltip.js +1 -1
  70. package/dist/components/ds-tooltip.js.map +1 -1
  71. package/dist/components/p-B9dHCgY-.js +2 -0
  72. package/dist/components/p-B9dHCgY-.js.map +1 -0
  73. package/dist/components/p-BPK76IsW.js +2 -0
  74. package/dist/components/p-BPK76IsW.js.map +1 -0
  75. package/dist/components/p-BQq26pt9.js.map +1 -1
  76. package/dist/components/p-BTC9Njj6.js +2 -0
  77. package/dist/components/p-BTC9Njj6.js.map +1 -0
  78. package/dist/components/p-BZIOTcnM.js +2 -0
  79. package/dist/components/p-BZIOTcnM.js.map +1 -0
  80. package/dist/components/{p-DdFUTZ3y.js → p-C3ORQUOp.js} +2 -2
  81. package/dist/components/{p-8Nt92j1-.js → p-CyFVn2Sc.js} +2 -2
  82. package/dist/components/p-DKdI8T8v.js +2 -0
  83. package/dist/components/p-DKdI8T8v.js.map +1 -0
  84. package/dist/components/{p-DOU4cbpc.js → p-DRqxVEye.js} +2 -2
  85. package/dist/components/p-DkcH8mRl.js +2 -0
  86. package/dist/components/p-DkcH8mRl.js.map +1 -0
  87. package/dist/components/p-DusYu-if.js +2 -0
  88. package/dist/components/p-DusYu-if.js.map +1 -0
  89. package/dist/components/p-EK1hOP19.js.map +1 -1
  90. package/dist/components/p-UbKTMQjv.js +2 -0
  91. package/dist/components/p-UbKTMQjv.js.map +1 -0
  92. package/dist/lib/nav/index.js +3 -0
  93. package/dist/lib/nav/index.js.map +2 -2
  94. package/dist/lib/utils/index.js +6 -0
  95. package/dist/lib/utils/index.js.map +2 -2
  96. package/dist/lib/utils/token-defaults.d.ts +3 -0
  97. package/dist/types/components/ButtonFilled/ButtonFilled.d.ts +17 -3
  98. package/dist/types/components/ButtonFilled/index.d.ts +1 -1
  99. package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +66 -0
  100. package/dist/types/components/ButtonUnfilled/index.d.ts +2 -0
  101. package/dist/types/components/CardDataViz/CardDataViz.d.ts +5 -1
  102. package/dist/types/components/CardSetting/CardSetting.d.ts +1 -1
  103. package/dist/types/components/ChartDonut/ChartDonut.d.ts +7 -0
  104. package/dist/types/components/Checkbox/Checkbox.d.ts +1 -1
  105. package/dist/types/components/Chip/Chip.d.ts +18 -14
  106. package/dist/types/components/Chip/index.d.ts +1 -1
  107. package/dist/types/components/Input/Input.d.ts +1 -1
  108. package/dist/types/components/Pagination/Pagination.d.ts +1 -1
  109. package/dist/types/components/PanelNav/PanelNav.d.ts +2 -0
  110. package/dist/types/components/PanelTools/panel-tools-types.d.ts +1 -1
  111. package/dist/types/components/RadioGroup/RadioGroup.d.ts +2 -2
  112. package/dist/types/components/Select/Select.d.ts +2 -2
  113. package/dist/types/components/ShellGradientSwatch/ShellGradientSwatch.d.ts +1 -1
  114. package/dist/types/components/Slider/Slider.d.ts +1 -1
  115. package/dist/types/components/TabGroup/TabGroup.d.ts +1 -1
  116. package/dist/types/components/TabGroup/tab-item-utils.d.ts +2 -1
  117. package/dist/types/components/TabGroupNav/TabGroupNav.d.ts +1 -1
  118. package/dist/types/components/Tag/Tag.d.ts +0 -2
  119. package/dist/types/components/Tag/index.d.ts +1 -1
  120. package/dist/types/components/Toggle/Toggle.d.ts +1 -1
  121. package/dist/types/components/Tooltip/Tooltip.d.ts +25 -6
  122. package/dist/types/components/TooltipDataViz/TooltipDataViz.d.ts +18 -0
  123. package/dist/types/components.d.ts +277 -476
  124. package/dist/types/utils/token-defaults.d.ts +3 -0
  125. package/package.json +6 -3
  126. package/src/angular/index.ts +1 -6
  127. package/src/angular/proxies.ts +33 -170
  128. package/src/react/components.ts +1 -6
  129. package/src/react/ds-button-unfilled.ts +33 -0
  130. package/src/react/ds-chip.ts +2 -10
  131. package/src/wc/components/BarNav/BarNav.tsx +3 -2
  132. package/src/wc/components/BarNav/bar-nav-tabs-menu-utils.ts +1 -1
  133. package/src/wc/components/ButtonFilled/ButtonFilled.tsx +90 -11
  134. package/src/wc/components/ButtonFilled/index.ts +6 -1
  135. package/src/wc/components/ButtonUnfilled/ButtonUnfilled.tsx +223 -0
  136. package/src/wc/components/ButtonUnfilled/index.ts +6 -0
  137. package/src/wc/components/CardDataViz/CardDataViz.tsx +36 -2
  138. package/src/wc/components/CardSetting/CardSetting.tsx +4 -6
  139. package/src/wc/components/ChartDonut/ChartDonut.tsx +50 -3
  140. package/src/wc/components/ChartLegend/ChartLegend.tsx +3 -0
  141. package/src/wc/components/Checkbox/Checkbox.tsx +5 -5
  142. package/src/wc/components/Chip/Chip.tsx +50 -67
  143. package/src/wc/components/Chip/index.ts +1 -1
  144. package/src/wc/components/Input/Input.tsx +4 -4
  145. package/src/wc/components/Menu/Menu.tsx +7 -4
  146. package/src/wc/components/Pagination/Pagination.tsx +6 -6
  147. package/src/wc/components/PanelNav/PanelNav.tsx +77 -48
  148. package/src/wc/components/PanelTools/PanelTools.tsx +19 -16
  149. package/src/wc/components/PanelTools/panel-tools-types.ts +1 -1
  150. package/src/wc/components/PanelTools/panel-tools-utils.ts +1 -1
  151. package/src/wc/components/RadioGroup/RadioGroup.tsx +7 -7
  152. package/src/wc/components/Select/Select.tsx +5 -5
  153. package/src/wc/components/ShellGradientSwatch/ShellGradientSwatch.tsx +4 -3
  154. package/src/wc/components/Slider/Slider.tsx +7 -3
  155. package/src/wc/components/TabGroup/TabGroup.tsx +13 -7
  156. package/src/wc/components/TabGroup/tab-item-utils.ts +2 -1
  157. package/src/wc/components/TabGroupNav/TabGroupNav.tsx +14 -13
  158. package/src/wc/components/Tag/Tag.tsx +25 -24
  159. package/src/wc/components/Tag/index.ts +1 -1
  160. package/src/wc/components/Toggle/Toggle.tsx +6 -6
  161. package/src/wc/components/Tooltip/Tooltip.tsx +166 -64
  162. package/src/wc/components/TooltipDataViz/TooltipDataViz.tsx +57 -2
  163. package/src/wc/components.d.ts +277 -476
  164. package/src/wc/utils/control-density.css +42 -0
  165. package/src/wc/utils/control-inactive.css +20 -0
  166. package/src/wc/utils/interaction-fill.css +162 -0
  167. package/src/wc/utils/scroll-edge-fade.css +5 -0
  168. package/src/wc/utils/token-defaults.ts +6 -0
  169. package/dist/components/ds-accordion.js +0 -2
  170. package/dist/components/ds-accordion.js.map +0 -1
  171. package/dist/components/ds-breadcrumb.d.ts +0 -11
  172. package/dist/components/ds-breadcrumb.js +0 -2
  173. package/dist/components/ds-breadcrumb.js.map +0 -1
  174. package/dist/components/ds-button-unfilled-icon.d.ts +0 -11
  175. package/dist/components/ds-button-unfilled-icon.js +0 -2
  176. package/dist/components/ds-fade.d.ts +0 -11
  177. package/dist/components/ds-fade.js +0 -2
  178. package/dist/components/ds-fade.js.map +0 -1
  179. package/dist/components/ds-surface.d.ts +0 -11
  180. package/dist/components/ds-surface.js +0 -2
  181. package/dist/components/ds-surface.js.map +0 -1
  182. package/dist/components/ds-toast-provider.d.ts +0 -11
  183. package/dist/components/ds-toast-provider.js +0 -2
  184. package/dist/components/ds-toast-provider.js.map +0 -1
  185. package/dist/components/p-BMQbEIrQ.js +0 -2
  186. package/dist/components/p-BMQbEIrQ.js.map +0 -1
  187. package/dist/components/p-BSFgy5r6.js +0 -2
  188. package/dist/components/p-BSFgy5r6.js.map +0 -1
  189. package/dist/components/p-CBUIn8dk.js +0 -2
  190. package/dist/components/p-CBUIn8dk.js.map +0 -1
  191. package/dist/components/p-ChVwCVHy.js +0 -2
  192. package/dist/components/p-ChVwCVHy.js.map +0 -1
  193. package/dist/components/p-CpNIQXz6.js +0 -2
  194. package/dist/components/p-CpNIQXz6.js.map +0 -1
  195. package/dist/components/p-CvgHQfvT.js +0 -2
  196. package/dist/components/p-CvgHQfvT.js.map +0 -1
  197. package/dist/components/p-bDf6yBQd.js +0 -2
  198. package/dist/components/p-bDf6yBQd.js.map +0 -1
  199. package/dist/types/components/Accordion/Accordion.d.ts +0 -28
  200. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts +0 -16
  201. package/dist/types/components/ButtonUnfilledIcon/ButtonUnfilledIcon.d.ts +0 -45
  202. package/dist/types/components/ButtonUnfilledIcon/index.d.ts +0 -2
  203. package/dist/types/components/Fade/Fade.d.ts +0 -22
  204. package/dist/types/components/Fade/index.d.ts +0 -2
  205. package/dist/types/components/Surface/Surface.d.ts +0 -22
  206. package/dist/types/components/Toast/Toast.d.ts +0 -16
  207. package/dist/types/components/Toast/toast-service.d.ts +0 -24
  208. package/src/react/ds-accordion.ts +0 -27
  209. package/src/react/ds-breadcrumb.ts +0 -27
  210. package/src/react/ds-button-unfilled-icon.ts +0 -33
  211. package/src/react/ds-fade.ts +0 -26
  212. package/src/react/ds-surface.ts +0 -26
  213. package/src/react/ds-toast-provider.ts +0 -26
  214. package/src/wc/components/Accordion/Accordion.tsx +0 -144
  215. package/src/wc/components/Breadcrumb/Breadcrumb.tsx +0 -61
  216. package/src/wc/components/ButtonUnfilledIcon/ButtonUnfilledIcon.tsx +0 -129
  217. package/src/wc/components/ButtonUnfilledIcon/index.ts +0 -1
  218. package/src/wc/components/Fade/Fade.tsx +0 -58
  219. package/src/wc/components/Fade/index.ts +0 -1
  220. package/src/wc/components/Surface/Surface.tsx +0 -81
  221. package/src/wc/components/Toast/Toast.tsx +0 -179
  222. package/src/wc/components/Toast/toast-service.ts +0 -67
  223. /package/dist/components/{ds-button-unfilled-icon.js.map → ds-button-unfilled.js.map} +0 -0
  224. /package/dist/components/{p-DdFUTZ3y.js.map → p-C3ORQUOp.js.map} +0 -0
  225. /package/dist/components/{p-8Nt92j1-.js.map → p-CyFVn2Sc.js.map} +0 -0
  226. /package/dist/components/{p-DOU4cbpc.js.map → p-DRqxVEye.js.map} +0 -0
@@ -5,23 +5,20 @@
5
5
  * It contains typing information for all components that exist in this project.
6
6
  */
7
7
  import { HTMLStencilElement, JSXBase } from "@stencil/core/internal";
8
- import { AccordionItemData } from "./components/Accordion/Accordion";
9
8
  import { NavChromeStyle } from "./nav/nav-chrome";
10
9
  import { ShellGradientPreset } from "./nav/shell-gradient-presets";
11
10
  import { BadgeSurface, BadgeVariant } from "./components/Badge/Badge";
12
11
  import { BannerContrast, BannerIntent } from "./components/Banner/Banner";
13
12
  import { BarNavTab } from "./components/BarNav/bar-nav-types";
14
- import { BreadcrumbItem } from "./components/Breadcrumb/Breadcrumb";
15
- import { ButtonFilledContrast, ButtonFilledIntent } from "./components/ButtonFilled/ButtonFilled";
16
- import { ButtonUnfilledIconBackground, ButtonUnfilledIconOnBackgroundContrast } from "./components/ButtonUnfilledIcon/ButtonUnfilledIcon";
13
+ import { ButtonFilledContrast, ButtonFilledIntent, ButtonFilledSize, ButtonFilledVariant } from "./components/ButtonFilled/ButtonFilled";
14
+ import { ButtonUnfilledBackground, ButtonUnfilledOnBackgroundContrast, ButtonUnfilledSize, ButtonUnfilledVariant } from "./components/ButtonUnfilled/ButtonUnfilled";
17
15
  import { CardDataVizWidth } from "./components/CardDataViz/CardDataViz";
18
16
  import { CardSettingWidth } from "./components/CardSetting/CardSetting";
19
17
  import { ChartDatum, ChartLegendItem, ChartSeries } from "./utils/chart-types";
20
18
  import { ChartLegendDirection } from "./components/ChartLegend/ChartLegend";
21
- import { ChipBackground, ChipContrast, ChipElevation, ChipIntent, ChipSize } from "./components/Chip/Chip";
19
+ import { ChipBackground, ChipSize, ChipState } from "./components/Chip/Chip";
22
20
  import { DividerInset, DividerLength, DividerOrientation, DividerSurface } from "./components/Divider/Divider";
23
21
  import { EmptyStateType } from "./components/EmptyState/EmptyState";
24
- import { FadeSide, FadeSize } from "./components/Fade/Fade";
25
22
  import { HeaderBackground } from "./components/Header/Header";
26
23
  import { IconColor, IconSize } from "./components/Icon/Icon";
27
24
  import { InputType } from "./components/Input/Input";
@@ -36,32 +33,27 @@ import { ScrollbarVariant } from "./components/Scrollbar/Scrollbar";
36
33
  import { SelectOption } from "./components/Select/Select";
37
34
  import { ShellGradientPreset as ShellGradientPreset1 } from "./components/ShellGradientSwatch/shell-gradient-swatch-types";
38
35
  import { SkeletonVariant } from "./components/Skeleton/Skeleton";
39
- import { SurfaceBackground, SurfaceContrast, SurfaceElement, SurfaceElevation, SurfaceIntent, SurfaceRadius } from "./components/Surface/Surface";
40
36
  import { TabItem } from "./components/TabGroup/tab-item-utils";
41
37
  import { TabBackground } from "./components/TabGroup/TabGroup";
42
38
  import { TabGroupNavBackground } from "./components/TabGroupNav/TabGroupNav";
43
39
  import { SortState, TableColumn } from "./components/Table/Table";
44
- import { TagContrast, TagElevation, TagIntent, TagSize } from "./components/Tag/Tag";
40
+ import { TagContrast, TagIntent, TagSize } from "./components/Tag/Tag";
45
41
  import { LineTruncation, TextAlign, TextColor, TextDecoration, TextElement, TextFontFeature, TextVariant, TextWrap } from "./components/Text/Text";
46
- import { ToastPosition } from "./components/Toast/Toast";
47
- import { TooltipAlign, TooltipSide } from "./components/Tooltip/Tooltip";
48
- export { AccordionItemData } from "./components/Accordion/Accordion";
42
+ import { TooltipAlign, TooltipSide, TooltipSize } from "./components/Tooltip/Tooltip";
49
43
  export { NavChromeStyle } from "./nav/nav-chrome";
50
44
  export { ShellGradientPreset } from "./nav/shell-gradient-presets";
51
45
  export { BadgeSurface, BadgeVariant } from "./components/Badge/Badge";
52
46
  export { BannerContrast, BannerIntent } from "./components/Banner/Banner";
53
47
  export { BarNavTab } from "./components/BarNav/bar-nav-types";
54
- export { BreadcrumbItem } from "./components/Breadcrumb/Breadcrumb";
55
- export { ButtonFilledContrast, ButtonFilledIntent } from "./components/ButtonFilled/ButtonFilled";
56
- export { ButtonUnfilledIconBackground, ButtonUnfilledIconOnBackgroundContrast } from "./components/ButtonUnfilledIcon/ButtonUnfilledIcon";
48
+ export { ButtonFilledContrast, ButtonFilledIntent, ButtonFilledSize, ButtonFilledVariant } from "./components/ButtonFilled/ButtonFilled";
49
+ export { ButtonUnfilledBackground, ButtonUnfilledOnBackgroundContrast, ButtonUnfilledSize, ButtonUnfilledVariant } from "./components/ButtonUnfilled/ButtonUnfilled";
57
50
  export { CardDataVizWidth } from "./components/CardDataViz/CardDataViz";
58
51
  export { CardSettingWidth } from "./components/CardSetting/CardSetting";
59
52
  export { ChartDatum, ChartLegendItem, ChartSeries } from "./utils/chart-types";
60
53
  export { ChartLegendDirection } from "./components/ChartLegend/ChartLegend";
61
- export { ChipBackground, ChipContrast, ChipElevation, ChipIntent, ChipSize } from "./components/Chip/Chip";
54
+ export { ChipBackground, ChipSize, ChipState } from "./components/Chip/Chip";
62
55
  export { DividerInset, DividerLength, DividerOrientation, DividerSurface } from "./components/Divider/Divider";
63
56
  export { EmptyStateType } from "./components/EmptyState/EmptyState";
64
- export { FadeSide, FadeSize } from "./components/Fade/Fade";
65
57
  export { HeaderBackground } from "./components/Header/Header";
66
58
  export { IconColor, IconSize } from "./components/Icon/Icon";
67
59
  export { InputType } from "./components/Input/Input";
@@ -76,31 +68,14 @@ export { ScrollbarVariant } from "./components/Scrollbar/Scrollbar";
76
68
  export { SelectOption } from "./components/Select/Select";
77
69
  export { ShellGradientPreset as ShellGradientPreset1 } from "./components/ShellGradientSwatch/shell-gradient-swatch-types";
78
70
  export { SkeletonVariant } from "./components/Skeleton/Skeleton";
79
- export { SurfaceBackground, SurfaceContrast, SurfaceElement, SurfaceElevation, SurfaceIntent, SurfaceRadius } from "./components/Surface/Surface";
80
71
  export { TabItem } from "./components/TabGroup/tab-item-utils";
81
72
  export { TabBackground } from "./components/TabGroup/TabGroup";
82
73
  export { TabGroupNavBackground } from "./components/TabGroupNav/TabGroupNav";
83
74
  export { SortState, TableColumn } from "./components/Table/Table";
84
- export { TagContrast, TagElevation, TagIntent, TagSize } from "./components/Tag/Tag";
75
+ export { TagContrast, TagIntent, TagSize } from "./components/Tag/Tag";
85
76
  export { LineTruncation, TextAlign, TextColor, TextDecoration, TextElement, TextFontFeature, TextVariant, TextWrap } from "./components/Text/Text";
86
- export { ToastPosition } from "./components/Toast/Toast";
87
- export { TooltipAlign, TooltipSide } from "./components/Tooltip/Tooltip";
77
+ export { TooltipAlign, TooltipSide, TooltipSize } from "./components/Tooltip/Tooltip";
88
78
  export namespace Components {
89
- interface DsAccordion {
90
- /**
91
- * Comma-separated list of expanded item IDs for controlled mode.
92
- * @default ''
93
- */
94
- "expandedIds": string;
95
- /**
96
- * @default []
97
- */
98
- "items": AccordionItemData[];
99
- /**
100
- * @default false
101
- */
102
- "multiple": boolean;
103
- }
104
79
  interface DsAppShell {
105
80
  /**
106
81
  * When `true`, paints the radial wash behind panel, bar, and tools (synced to shell layout).
@@ -236,69 +211,68 @@ export namespace Components {
236
211
  */
237
212
  "value": string;
238
213
  }
239
- interface DsBreadcrumb {
240
- /**
241
- * @default []
242
- */
243
- "items": BreadcrumbItem[];
244
- /**
245
- * @default '/'
246
- */
247
- "separator": string;
248
- }
249
214
  interface DsButtonFilled {
250
- /**
251
- * @default 'action'
252
- */
253
- "ariaLabel": string;
215
+ "ariaLabel": string | undefined;
254
216
  /**
255
217
  * Background fill weight. Foreground uses the paired contrast token: bold → faint, strong → medium, medium → strong, faint → bold.
256
218
  * @default 'bold'
257
219
  */
258
220
  "contrast": ButtonFilledContrast;
259
221
  /**
260
- * Icon name passed to <ds-icon>.
222
+ * Icon name passed to <ds-icon> for `icon` / `icon-label` variants.
261
223
  * @default ''
262
224
  */
263
225
  "icon": string;
226
+ /**
227
+ * Semantic colour intent.
228
+ * @default 'brand'
229
+ */
230
+ "intent": ButtonFilledIntent;
264
231
  /**
265
232
  * Disables interaction.
266
233
  * @default false
267
234
  */
268
- "inactive": boolean;
235
+ "isInactive": boolean;
269
236
  /**
270
- * Semantic colour intent.
271
- * @default 'brand'
237
+ * Visible text for `label` / `icon-label` variants.
238
+ * @default ''
272
239
  */
273
- "intent": ButtonFilledIntent;
240
+ "label": string;
274
241
  "setFocus": () => Promise<void>;
242
+ /**
243
+ * Control density (height, padding, icon, type).
244
+ * @default 'md'
245
+ */
246
+ "size": ButtonFilledSize;
275
247
  /**
276
248
  * Native button type.
277
249
  * @default 'button'
278
250
  */
279
251
  "type": 'button' | 'submit' | 'reset';
252
+ /**
253
+ * Content layout. Default is label-only; pass `icon` for icon-only chrome (nav / tool rails) or `icon-label` for leading icon + text.
254
+ * @default 'label'
255
+ */
256
+ "variant": ButtonFilledVariant;
280
257
  }
281
- interface DsButtonUnfilledIcon {
258
+ interface DsButtonUnfilled {
282
259
  /**
283
- * When active, render the active interaction fill. Shell chrome can disable this while keeping active icon colour.
260
+ * When active, render the selected interaction fill. Default `true` for general UI. Shell chrome (nav / tool rails) should pass `false` so selection is foreground-only.
284
261
  * @default true
285
262
  */
286
263
  "activeFill": boolean;
287
- /**
288
- * @default 'action'
289
- */
290
- "ariaLabel": string;
264
+ "ariaLabel": string | undefined;
291
265
  /**
292
266
  * Parent surface context for navigation and always-dark chrome.
293
267
  */
294
- "background": ButtonUnfilledIconBackground | undefined;
268
+ "background": ButtonUnfilledBackground | undefined;
295
269
  /**
296
270
  * Foreground and interaction tokens when the button sits on a contrasting parent background (default, medium, bold, or strong).
297
271
  */
298
- "backgroundContrast"?: ButtonUnfilledIconOnBackgroundContrast;
272
+ "backgroundContrast"?: ButtonUnfilledOnBackgroundContrast;
299
273
  "controls": string | undefined;
300
274
  /**
301
- * Show a notification dot at the top-right of the icon zone.
275
+ * Show a notification dot at the top-right of the icon zone (icon variant only).
302
276
  * @default false
303
277
  */
304
278
  "dot": boolean;
@@ -308,33 +282,48 @@ export namespace Components {
308
282
  */
309
283
  "focusTabIndex"?: number;
310
284
  /**
311
- * Show a 1px tertiary border without changing the interaction model.
312
- * @default false
285
+ * Show a 1px tertiary inset border. Default on; shell chrome can pass `false`.
286
+ * @default true
313
287
  */
314
288
  "hasBorder": boolean;
315
289
  "haspopup": string | undefined;
316
290
  /**
317
- * Icon name passed to <ds-icon>.
291
+ * Icon name passed to <ds-icon> for `icon` / `icon-label` variants.
318
292
  * @default ''
319
293
  */
320
294
  "icon": string;
321
295
  /**
322
- * Disables interaction.
296
+ * Active/selected visual state.
323
297
  * @default false
324
298
  */
325
- "inactive": boolean;
299
+ "isActive": boolean;
326
300
  /**
327
- * Active/selected visual state.
301
+ * Disables interaction.
328
302
  * @default false
329
303
  */
330
- "isActive": boolean;
304
+ "isInactive": boolean;
305
+ /**
306
+ * Visible text for `label` / `icon-label` variants.
307
+ * @default ''
308
+ */
309
+ "label": string;
331
310
  "pressed": boolean | undefined;
332
311
  "setFocus": () => Promise<void>;
312
+ /**
313
+ * Control density (height, padding, icon, type).
314
+ * @default 'md'
315
+ */
316
+ "size": ButtonUnfilledSize;
333
317
  /**
334
318
  * Native button type.
335
319
  * @default 'button'
336
320
  */
337
321
  "type": 'button' | 'submit' | 'reset';
322
+ /**
323
+ * Content layout. Default is label-only; pass `icon` for icon-only chrome (nav / tool rails) or `icon-label` for leading icon + text.
324
+ * @default 'label'
325
+ */
326
+ "variant": ButtonUnfilledVariant;
338
327
  }
339
328
  /**
340
329
  * Copied from CardSetting as a starting scaffold — header edit affordance removed for now
@@ -385,7 +374,7 @@ export namespace Components {
385
374
  }
386
375
  interface DsChartDonut {
387
376
  /**
388
- * Externally controlled highlight, matched by `label` — e.g. drive this from a sibling `ds-chart-legend`'s `dsItemHover` event to keep chart and legend hover in sync. Falls back to this component's own pointer/focus hover when unset.
377
+ * Externally controlled highlight, matched by `label` — e.g. drive this from a sibling `ds-chart-legend`'s `dsItemHover` event to keep chart and legend hover in sync. Falls back to this component's own pointer/focus hover when unset. External sync dims slices only — the data-viz tooltip is reserved for this component's own pointer/keyboard interaction.
389
378
  * @default null
390
379
  */
391
380
  "activeLabel": string | null;
@@ -482,39 +471,32 @@ export namespace Components {
482
471
  /**
483
472
  * @default false
484
473
  */
485
- "inactive": boolean;
474
+ "indeterminate": boolean;
486
475
  /**
487
476
  * @default false
488
477
  */
489
- "indeterminate": boolean;
478
+ "isInactive": boolean;
490
479
  "label": string;
491
480
  }
481
+ /**
482
+ * Removable chip — same density recipe as Tag, but colored by semantic `state`
483
+ * (not intent × contrast). Not a toggle/select control; the only intentional
484
+ * action is remove.
485
+ */
492
486
  interface DsChip {
493
- "background": ChipBackground | undefined;
494
- /**
495
- * @default 'faint'
496
- */
497
- "contrast": ChipContrast;
498
487
  /**
499
- * @default 'none'
488
+ * Surface context for interaction-fill tokens when the chip sits on a non-default surface.
500
489
  */
501
- "elevation": ChipElevation;
490
+ "background": ChipBackground | undefined;
502
491
  /**
503
492
  * @default false
504
493
  */
505
- "inactive": boolean;
506
- /**
507
- * @default 'neutral'
508
- */
509
- "intent": ChipIntent;
494
+ "isInactive": boolean;
510
495
  "label": string;
511
496
  "maxWidth": string | number | undefined;
512
497
  /**
513
- * @default false
514
- */
515
- "pressed": boolean;
516
- /**
517
- * @default false
498
+ * When true (default), shows the trailing dismiss control.
499
+ * @default true
518
500
  */
519
501
  "removable": boolean;
520
502
  /**
@@ -525,6 +507,11 @@ export namespace Components {
525
507
  * @default 'md'
526
508
  */
527
509
  "size": ChipSize;
510
+ /**
511
+ * Semantic color state.
512
+ * @default 'default'
513
+ */
514
+ "state": ChipState;
528
515
  }
529
516
  interface DsDivider {
530
517
  /**
@@ -560,27 +547,6 @@ export namespace Components {
560
547
  */
561
548
  "type": EmptyStateType;
562
549
  }
563
- interface DsFade {
564
- /**
565
- * Deprecated alias for size. Kept for existing consumers that pass a raw CSS length. Prefer `size`.
566
- */
567
- "height": string | undefined;
568
- /**
569
- * Edge where content fades as it approaches the scroll boundary.
570
- * @default 'bottom'
571
- */
572
- "side": FadeSide;
573
- /**
574
- * Fade depth along the fade axis. Accepts dimension size token names or any CSS length.
575
- * @default 'size-600'
576
- */
577
- "size": FadeSize;
578
- /**
579
- * Controls the mask without removing the scroll container from layout.
580
- * @default true
581
- */
582
- "visible": boolean;
583
- }
584
550
  interface DsField {
585
551
  /**
586
552
  * ID forwarded to the slotted control via the label's `for` attribute. Auto-generated if omitted.
@@ -633,14 +599,14 @@ export namespace Components {
633
599
  */
634
600
  "error": boolean;
635
601
  "errorMessage": string | undefined;
636
- /**
637
- * @default false
638
- */
639
- "inactive": boolean;
640
602
  /**
641
603
  * Associates the internal input with an external <label>.
642
604
  */
643
605
  "inputId": string | undefined;
606
+ /**
607
+ * @default false
608
+ */
609
+ "isInactive": boolean;
644
610
  "placeholder": string | undefined;
645
611
  "setFocus": () => Promise<void>;
646
612
  /**
@@ -726,7 +692,7 @@ export namespace Components {
726
692
  /**
727
693
  * @default false
728
694
  */
729
- "inactive": boolean;
695
+ "isInactive": boolean;
730
696
  /**
731
697
  * @default 1
732
698
  */
@@ -841,7 +807,7 @@ export namespace Components {
841
807
  /**
842
808
  * @default false
843
809
  */
844
- "inactive": boolean;
810
+ "isInactive": boolean;
845
811
  /**
846
812
  * @default []
847
813
  */
@@ -865,10 +831,10 @@ export namespace Components {
865
831
  "ariaLabel": string | undefined;
866
832
  "ariaLabelledby": string | undefined;
867
833
  /**
868
- * Disables interaction.
834
+ * Disables interaction (25% opacity via ds-control-inactive).
869
835
  * @default false
870
836
  */
871
- "inactive": boolean;
837
+ "isInactive": boolean;
872
838
  /**
873
839
  * Array of options. Set via JS property.
874
840
  * @example el.options = [{ label: 'Apple', value: 'apple' }];
@@ -898,7 +864,7 @@ export namespace Components {
898
864
  /**
899
865
  * @default false
900
866
  */
901
- "inactive": boolean;
867
+ "isInactive": boolean;
902
868
  /**
903
869
  * Wash preset this orb previews.
904
870
  * @default DEFAULT_SHELL_GRADIENT_PRESET
@@ -935,14 +901,14 @@ export namespace Components {
935
901
  "width": string | number | undefined;
936
902
  }
937
903
  interface DsSlider {
938
- /**
939
- * @default false
940
- */
941
- "inactive": boolean;
942
904
  /**
943
905
  * Associates with an external <label>. Defaults to an auto-generated ID.
944
906
  */
945
907
  "inputId": string | undefined;
908
+ /**
909
+ * @default false
910
+ */
911
+ "isInactive": boolean;
946
912
  "label": string;
947
913
  /**
948
914
  * @default 100
@@ -962,42 +928,6 @@ export namespace Components {
962
928
  "value": number;
963
929
  "valueText": string | undefined;
964
930
  }
965
- interface DsSurface {
966
- /**
967
- * @default 'div'
968
- */
969
- "as": SurfaceElement;
970
- /**
971
- * @default 'transparent'
972
- */
973
- "background": SurfaceBackground;
974
- /**
975
- * @default 'faint'
976
- */
977
- "contrast": SurfaceContrast;
978
- /**
979
- * Space-separated list of edges: "top bottom" etc. Only applies when elevation='none'.
980
- */
981
- "edge": string | undefined;
982
- /**
983
- * @default 'none'
984
- */
985
- "elevation": SurfaceElevation;
986
- /**
987
- * @default false
988
- */
989
- "inactive": boolean;
990
- "intent": SurfaceIntent | undefined;
991
- /**
992
- * @default false
993
- */
994
- "interactive": boolean;
995
- "radius": SurfaceRadius | undefined;
996
- /**
997
- * @default false
998
- */
999
- "selected": boolean;
1000
- }
1001
931
  interface DsTabGroup {
1002
932
  "ariaLabel": string | undefined;
1003
933
  "ariaLabelledby": string | undefined;
@@ -1082,10 +1012,6 @@ export namespace Components {
1082
1012
  * @default 'faint'
1083
1013
  */
1084
1014
  "contrast": TagContrast;
1085
- /**
1086
- * @default 'none'
1087
- */
1088
- "elevation": TagElevation;
1089
1015
  /**
1090
1016
  * @default 'neutral'
1091
1017
  */
@@ -1131,12 +1057,6 @@ export namespace Components {
1131
1057
  "variant": TextVariant;
1132
1058
  "wrap": TextWrap | undefined;
1133
1059
  }
1134
- interface DsToastProvider {
1135
- /**
1136
- * @default 'top-center'
1137
- */
1138
- "position": ToastPosition;
1139
- }
1140
1060
  interface DsToggle {
1141
1061
  /**
1142
1062
  * @default false
@@ -1145,8 +1065,14 @@ export namespace Components {
1145
1065
  /**
1146
1066
  * @default false
1147
1067
  */
1148
- "inactive": boolean;
1068
+ "isInactive": boolean;
1149
1069
  }
1070
+ /**
1071
+ * Imperative body portal for the popup.
1072
+ * Stencil must not own the portaled node — moving a VDOM child to `document.body`
1073
+ * causes recreate → re-portal →
1074
+ * @State loops that freeze the page.
1075
+ */
1150
1076
  interface DsTooltip {
1151
1077
  /**
1152
1078
  * @default 'center'
@@ -1158,8 +1084,8 @@ export namespace Components {
1158
1084
  */
1159
1085
  "alignOffset": number | string;
1160
1086
  /**
1161
- * Show delay number (ms) or TokoMo time token / `var(--effect-animation-delay-*)`.
1162
- * @default TOKEN_DEFAULTS.animationDelayMedium1
1087
+ * Hover show delay before the tooltip appears. Default: `--effect-animation-delay-medium-3` (1000ms). Accepts a number (ms) or a TokoMo time token / `var(--effect-animation-delay-*)`. Applies to the initial hover/focus show only — after a recent dismiss, reopen is instant. Prefer the default; override only for denser chrome or rare/destructive actions.
1088
+ * @default TOKEN_DEFAULTS.animationDelayMedium3
1163
1089
  */
1164
1090
  "delay": number | string;
1165
1091
  "label": string;
@@ -1177,6 +1103,11 @@ export namespace Components {
1177
1103
  * @default TOKEN_CSS_LENGTHS.space050
1178
1104
  */
1179
1105
  "sideOffset": number | string;
1106
+ /**
1107
+ * Control density (height, padding, type).
1108
+ * @default 'md'
1109
+ */
1110
+ "size": TooltipSize;
1180
1111
  }
1181
1112
  /**
1182
1113
  * Positioned value/label callout for chart hover interactions (donut slice, bar,
@@ -1187,8 +1118,15 @@ export namespace Components {
1187
1118
  * with `x`/`y` as pixel coordinates within that wrapper. Defaults to sitting below-right
1188
1119
  * of the anchor (matching cursor-following tooltips), flipping to whichever side/edge
1189
1120
  * keeps it on-screen.
1121
+ * Mount (or remount) when a hover session starts so `delay` applies once per hover;
1122
+ * keep the instance mounted while the cursor moves so tracking stays instant.
1190
1123
  */
1191
1124
  interface DsTooltipDataViz {
1125
+ /**
1126
+ * Show delay after mount before the callout appears. Default: `--effect-animation-delay-instant` (0ms). Accepts a number (ms) or a TokoMo time token / `var(--effect-animation-delay-*)`. Charts need immediate feedback while scrubbing; prefer the default. Mount once per hover session so any non-zero delay runs once, then track `x`/`y` instantly.
1127
+ * @default TOKEN_DEFAULTS.animationDelayInstant
1128
+ */
1129
+ "delay": number | string;
1192
1130
  /**
1193
1131
  * @default ''
1194
1132
  */
@@ -1208,10 +1146,6 @@ export namespace Components {
1208
1146
  "y": number;
1209
1147
  }
1210
1148
  }
1211
- export interface DsAccordionCustomEvent<T> extends CustomEvent<T> {
1212
- detail: T;
1213
- target: HTMLDsAccordionElement;
1214
- }
1215
1149
  export interface DsBannerCustomEvent<T> extends CustomEvent<T> {
1216
1150
  detail: T;
1217
1151
  target: HTMLDsBannerElement;
@@ -1220,17 +1154,13 @@ export interface DsBarNavCustomEvent<T> extends CustomEvent<T> {
1220
1154
  detail: T;
1221
1155
  target: HTMLDsBarNavElement;
1222
1156
  }
1223
- export interface DsBreadcrumbCustomEvent<T> extends CustomEvent<T> {
1224
- detail: T;
1225
- target: HTMLDsBreadcrumbElement;
1226
- }
1227
1157
  export interface DsButtonFilledCustomEvent<T> extends CustomEvent<T> {
1228
1158
  detail: T;
1229
1159
  target: HTMLDsButtonFilledElement;
1230
1160
  }
1231
- export interface DsButtonUnfilledIconCustomEvent<T> extends CustomEvent<T> {
1161
+ export interface DsButtonUnfilledCustomEvent<T> extends CustomEvent<T> {
1232
1162
  detail: T;
1233
- target: HTMLDsButtonUnfilledIconElement;
1163
+ target: HTMLDsButtonUnfilledElement;
1234
1164
  }
1235
1165
  export interface DsCardSettingCustomEvent<T> extends CustomEvent<T> {
1236
1166
  detail: T;
@@ -1313,23 +1243,6 @@ export interface DsToggleCustomEvent<T> extends CustomEvent<T> {
1313
1243
  target: HTMLDsToggleElement;
1314
1244
  }
1315
1245
  declare global {
1316
- interface HTMLDsAccordionElementEventMap {
1317
- "dsExpandedChange": string[];
1318
- }
1319
- interface HTMLDsAccordionElement extends Components.DsAccordion, HTMLStencilElement {
1320
- addEventListener<K extends keyof HTMLDsAccordionElementEventMap>(type: K, listener: (this: HTMLDsAccordionElement, ev: DsAccordionCustomEvent<HTMLDsAccordionElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1321
- addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1322
- addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1323
- addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1324
- removeEventListener<K extends keyof HTMLDsAccordionElementEventMap>(type: K, listener: (this: HTMLDsAccordionElement, ev: DsAccordionCustomEvent<HTMLDsAccordionElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1325
- removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1326
- removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1327
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1328
- }
1329
- var HTMLDsAccordionElement: {
1330
- prototype: HTMLDsAccordionElement;
1331
- new (): HTMLDsAccordionElement;
1332
- };
1333
1246
  interface HTMLDsAppShellElement extends Components.DsAppShell, HTMLStencilElement {
1334
1247
  }
1335
1248
  var HTMLDsAppShellElement: {
@@ -1376,23 +1289,6 @@ declare global {
1376
1289
  prototype: HTMLDsBarNavElement;
1377
1290
  new (): HTMLDsBarNavElement;
1378
1291
  };
1379
- interface HTMLDsBreadcrumbElementEventMap {
1380
- "dsNavigate": { item: BreadcrumbItem; index: number };
1381
- }
1382
- interface HTMLDsBreadcrumbElement extends Components.DsBreadcrumb, HTMLStencilElement {
1383
- addEventListener<K extends keyof HTMLDsBreadcrumbElementEventMap>(type: K, listener: (this: HTMLDsBreadcrumbElement, ev: DsBreadcrumbCustomEvent<HTMLDsBreadcrumbElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1384
- addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1385
- addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1386
- addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1387
- removeEventListener<K extends keyof HTMLDsBreadcrumbElementEventMap>(type: K, listener: (this: HTMLDsBreadcrumbElement, ev: DsBreadcrumbCustomEvent<HTMLDsBreadcrumbElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1388
- removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1389
- removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1390
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1391
- }
1392
- var HTMLDsBreadcrumbElement: {
1393
- prototype: HTMLDsBreadcrumbElement;
1394
- new (): HTMLDsBreadcrumbElement;
1395
- };
1396
1292
  interface HTMLDsButtonFilledElementEventMap {
1397
1293
  "dsClick": MouseEvent;
1398
1294
  }
@@ -1410,23 +1306,23 @@ declare global {
1410
1306
  prototype: HTMLDsButtonFilledElement;
1411
1307
  new (): HTMLDsButtonFilledElement;
1412
1308
  };
1413
- interface HTMLDsButtonUnfilledIconElementEventMap {
1309
+ interface HTMLDsButtonUnfilledElementEventMap {
1414
1310
  "dsClick": MouseEvent;
1415
1311
  "dsChange": boolean;
1416
1312
  }
1417
- interface HTMLDsButtonUnfilledIconElement extends Components.DsButtonUnfilledIcon, HTMLStencilElement {
1418
- addEventListener<K extends keyof HTMLDsButtonUnfilledIconElementEventMap>(type: K, listener: (this: HTMLDsButtonUnfilledIconElement, ev: DsButtonUnfilledIconCustomEvent<HTMLDsButtonUnfilledIconElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1313
+ interface HTMLDsButtonUnfilledElement extends Components.DsButtonUnfilled, HTMLStencilElement {
1314
+ addEventListener<K extends keyof HTMLDsButtonUnfilledElementEventMap>(type: K, listener: (this: HTMLDsButtonUnfilledElement, ev: DsButtonUnfilledCustomEvent<HTMLDsButtonUnfilledElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1419
1315
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1420
1316
  addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1421
1317
  addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1422
- removeEventListener<K extends keyof HTMLDsButtonUnfilledIconElementEventMap>(type: K, listener: (this: HTMLDsButtonUnfilledIconElement, ev: DsButtonUnfilledIconCustomEvent<HTMLDsButtonUnfilledIconElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1318
+ removeEventListener<K extends keyof HTMLDsButtonUnfilledElementEventMap>(type: K, listener: (this: HTMLDsButtonUnfilledElement, ev: DsButtonUnfilledCustomEvent<HTMLDsButtonUnfilledElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1423
1319
  removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1424
1320
  removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1425
1321
  removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1426
1322
  }
1427
- var HTMLDsButtonUnfilledIconElement: {
1428
- prototype: HTMLDsButtonUnfilledIconElement;
1429
- new (): HTMLDsButtonUnfilledIconElement;
1323
+ var HTMLDsButtonUnfilledElement: {
1324
+ prototype: HTMLDsButtonUnfilledElement;
1325
+ new (): HTMLDsButtonUnfilledElement;
1430
1326
  };
1431
1327
  /**
1432
1328
  * Copied from CardSetting as a starting scaffold — header edit affordance removed for now
@@ -1529,9 +1425,12 @@ declare global {
1529
1425
  };
1530
1426
  interface HTMLDsChipElementEventMap {
1531
1427
  "dsRemove": void;
1532
- "dsClick": void;
1533
- "dsPressedChange": boolean;
1534
1428
  }
1429
+ /**
1430
+ * Removable chip — same density recipe as Tag, but colored by semantic `state`
1431
+ * (not intent × contrast). Not a toggle/select control; the only intentional
1432
+ * action is remove.
1433
+ */
1535
1434
  interface HTMLDsChipElement extends Components.DsChip, HTMLStencilElement {
1536
1435
  addEventListener<K extends keyof HTMLDsChipElementEventMap>(type: K, listener: (this: HTMLDsChipElement, ev: DsChipCustomEvent<HTMLDsChipElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1537
1436
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -1558,12 +1457,6 @@ declare global {
1558
1457
  prototype: HTMLDsEmptyStateElement;
1559
1458
  new (): HTMLDsEmptyStateElement;
1560
1459
  };
1561
- interface HTMLDsFadeElement extends Components.DsFade, HTMLStencilElement {
1562
- }
1563
- var HTMLDsFadeElement: {
1564
- prototype: HTMLDsFadeElement;
1565
- new (): HTMLDsFadeElement;
1566
- };
1567
1460
  interface HTMLDsFieldElement extends Components.DsField, HTMLStencilElement {
1568
1461
  }
1569
1462
  var HTMLDsFieldElement: {
@@ -1800,12 +1693,6 @@ declare global {
1800
1693
  prototype: HTMLDsSliderElement;
1801
1694
  new (): HTMLDsSliderElement;
1802
1695
  };
1803
- interface HTMLDsSurfaceElement extends Components.DsSurface, HTMLStencilElement {
1804
- }
1805
- var HTMLDsSurfaceElement: {
1806
- prototype: HTMLDsSurfaceElement;
1807
- new (): HTMLDsSurfaceElement;
1808
- };
1809
1696
  interface HTMLDsTabGroupElementEventMap {
1810
1697
  "dsChange": string;
1811
1698
  }
@@ -1872,12 +1759,6 @@ declare global {
1872
1759
  prototype: HTMLDsTextElement;
1873
1760
  new (): HTMLDsTextElement;
1874
1761
  };
1875
- interface HTMLDsToastProviderElement extends Components.DsToastProvider, HTMLStencilElement {
1876
- }
1877
- var HTMLDsToastProviderElement: {
1878
- prototype: HTMLDsToastProviderElement;
1879
- new (): HTMLDsToastProviderElement;
1880
- };
1881
1762
  interface HTMLDsToggleElementEventMap {
1882
1763
  "dsChange": boolean;
1883
1764
  }
@@ -1895,6 +1776,12 @@ declare global {
1895
1776
  prototype: HTMLDsToggleElement;
1896
1777
  new (): HTMLDsToggleElement;
1897
1778
  };
1779
+ /**
1780
+ * Imperative body portal for the popup.
1781
+ * Stencil must not own the portaled node — moving a VDOM child to `document.body`
1782
+ * causes recreate → re-portal →
1783
+ * @State loops that freeze the page.
1784
+ */
1898
1785
  interface HTMLDsTooltipElement extends Components.DsTooltip, HTMLStencilElement {
1899
1786
  }
1900
1787
  var HTMLDsTooltipElement: {
@@ -1910,6 +1797,8 @@ declare global {
1910
1797
  * with `x`/`y` as pixel coordinates within that wrapper. Defaults to sitting below-right
1911
1798
  * of the anchor (matching cursor-following tooltips), flipping to whichever side/edge
1912
1799
  * keeps it on-screen.
1800
+ * Mount (or remount) when a hover session starts so `delay` applies once per hover;
1801
+ * keep the instance mounted while the cursor moves so tracking stays instant.
1913
1802
  */
1914
1803
  interface HTMLDsTooltipDataVizElement extends Components.DsTooltipDataViz, HTMLStencilElement {
1915
1804
  }
@@ -1918,14 +1807,12 @@ declare global {
1918
1807
  new (): HTMLDsTooltipDataVizElement;
1919
1808
  };
1920
1809
  interface HTMLElementTagNameMap {
1921
- "ds-accordion": HTMLDsAccordionElement;
1922
1810
  "ds-app-shell": HTMLDsAppShellElement;
1923
1811
  "ds-badge": HTMLDsBadgeElement;
1924
1812
  "ds-banner": HTMLDsBannerElement;
1925
1813
  "ds-bar-nav": HTMLDsBarNavElement;
1926
- "ds-breadcrumb": HTMLDsBreadcrumbElement;
1927
1814
  "ds-button-filled": HTMLDsButtonFilledElement;
1928
- "ds-button-unfilled-icon": HTMLDsButtonUnfilledIconElement;
1815
+ "ds-button-unfilled": HTMLDsButtonUnfilledElement;
1929
1816
  "ds-card-data-viz": HTMLDsCardDataVizElement;
1930
1817
  "ds-card-setting": HTMLDsCardSettingElement;
1931
1818
  "ds-chart-bar": HTMLDsChartBarElement;
@@ -1936,7 +1823,6 @@ declare global {
1936
1823
  "ds-chip": HTMLDsChipElement;
1937
1824
  "ds-divider": HTMLDsDividerElement;
1938
1825
  "ds-empty-state": HTMLDsEmptyStateElement;
1939
- "ds-fade": HTMLDsFadeElement;
1940
1826
  "ds-field": HTMLDsFieldElement;
1941
1827
  "ds-header": HTMLDsHeaderElement;
1942
1828
  "ds-icon": HTMLDsIconElement;
@@ -1954,13 +1840,11 @@ declare global {
1954
1840
  "ds-shell-gradient-swatch": HTMLDsShellGradientSwatchElement;
1955
1841
  "ds-skeleton": HTMLDsSkeletonElement;
1956
1842
  "ds-slider": HTMLDsSliderElement;
1957
- "ds-surface": HTMLDsSurfaceElement;
1958
1843
  "ds-tab-group": HTMLDsTabGroupElement;
1959
1844
  "ds-tab-group-nav": HTMLDsTabGroupNavElement;
1960
1845
  "ds-table": HTMLDsTableElement;
1961
1846
  "ds-tag": HTMLDsTagElement;
1962
1847
  "ds-text": HTMLDsTextElement;
1963
- "ds-toast-provider": HTMLDsToastProviderElement;
1964
1848
  "ds-toggle": HTMLDsToggleElement;
1965
1849
  "ds-tooltip": HTMLDsTooltipElement;
1966
1850
  "ds-tooltip-data-viz": HTMLDsTooltipDataVizElement;
@@ -1969,22 +1853,6 @@ declare global {
1969
1853
  declare namespace LocalJSX {
1970
1854
  type OneOf<K extends string, PropT, AttrT = PropT> = { [P in K]: PropT } & { [P in `attr:${K}` | `prop:${K}`]?: never } | { [P in `attr:${K}`]: AttrT } & { [P in K | `prop:${K}`]?: never } | { [P in `prop:${K}`]: PropT } & { [P in K | `attr:${K}`]?: never };
1971
1855
 
1972
- interface DsAccordion {
1973
- /**
1974
- * Comma-separated list of expanded item IDs for controlled mode.
1975
- * @default ''
1976
- */
1977
- "expandedIds"?: string;
1978
- /**
1979
- * @default []
1980
- */
1981
- "items"?: AccordionItemData[];
1982
- /**
1983
- * @default false
1984
- */
1985
- "multiple"?: boolean;
1986
- "onDsExpandedChange"?: (event: DsAccordionCustomEvent<string[]>) => void;
1987
- }
1988
1856
  interface DsAppShell {
1989
1857
  /**
1990
1858
  * When `true`, paints the radial wash behind panel, bar, and tools (synced to shell layout).
@@ -2125,70 +1993,68 @@ declare namespace LocalJSX {
2125
1993
  */
2126
1994
  "value"?: string;
2127
1995
  }
2128
- interface DsBreadcrumb {
2129
- /**
2130
- * @default []
2131
- */
2132
- "items"?: BreadcrumbItem[];
2133
- "onDsNavigate"?: (event: DsBreadcrumbCustomEvent<{ item: BreadcrumbItem; index: number }>) => void;
2134
- /**
2135
- * @default '/'
2136
- */
2137
- "separator"?: string;
2138
- }
2139
1996
  interface DsButtonFilled {
2140
- /**
2141
- * @default 'action'
2142
- */
2143
- "ariaLabel"?: string;
1997
+ "ariaLabel"?: string | undefined;
2144
1998
  /**
2145
1999
  * Background fill weight. Foreground uses the paired contrast token: bold → faint, strong → medium, medium → strong, faint → bold.
2146
2000
  * @default 'bold'
2147
2001
  */
2148
2002
  "contrast"?: ButtonFilledContrast;
2149
2003
  /**
2150
- * Icon name passed to <ds-icon>.
2004
+ * Icon name passed to <ds-icon> for `icon` / `icon-label` variants.
2151
2005
  * @default ''
2152
2006
  */
2153
2007
  "icon"?: string;
2008
+ /**
2009
+ * Semantic colour intent.
2010
+ * @default 'brand'
2011
+ */
2012
+ "intent"?: ButtonFilledIntent;
2154
2013
  /**
2155
2014
  * Disables interaction.
2156
2015
  * @default false
2157
2016
  */
2158
- "inactive"?: boolean;
2017
+ "isInactive"?: boolean;
2159
2018
  /**
2160
- * Semantic colour intent.
2161
- * @default 'brand'
2019
+ * Visible text for `label` / `icon-label` variants.
2020
+ * @default ''
2162
2021
  */
2163
- "intent"?: ButtonFilledIntent;
2022
+ "label"?: string;
2164
2023
  "onDsClick"?: (event: DsButtonFilledCustomEvent<MouseEvent>) => void;
2024
+ /**
2025
+ * Control density (height, padding, icon, type).
2026
+ * @default 'md'
2027
+ */
2028
+ "size"?: ButtonFilledSize;
2165
2029
  /**
2166
2030
  * Native button type.
2167
2031
  * @default 'button'
2168
2032
  */
2169
2033
  "type"?: 'button' | 'submit' | 'reset';
2034
+ /**
2035
+ * Content layout. Default is label-only; pass `icon` for icon-only chrome (nav / tool rails) or `icon-label` for leading icon + text.
2036
+ * @default 'label'
2037
+ */
2038
+ "variant"?: ButtonFilledVariant;
2170
2039
  }
2171
- interface DsButtonUnfilledIcon {
2040
+ interface DsButtonUnfilled {
2172
2041
  /**
2173
- * When active, render the active interaction fill. Shell chrome can disable this while keeping active icon colour.
2042
+ * When active, render the selected interaction fill. Default `true` for general UI. Shell chrome (nav / tool rails) should pass `false` so selection is foreground-only.
2174
2043
  * @default true
2175
2044
  */
2176
2045
  "activeFill"?: boolean;
2177
- /**
2178
- * @default 'action'
2179
- */
2180
- "ariaLabel"?: string;
2046
+ "ariaLabel"?: string | undefined;
2181
2047
  /**
2182
2048
  * Parent surface context for navigation and always-dark chrome.
2183
2049
  */
2184
- "background"?: ButtonUnfilledIconBackground | undefined;
2050
+ "background"?: ButtonUnfilledBackground | undefined;
2185
2051
  /**
2186
2052
  * Foreground and interaction tokens when the button sits on a contrasting parent background (default, medium, bold, or strong).
2187
2053
  */
2188
- "backgroundContrast"?: ButtonUnfilledIconOnBackgroundContrast;
2054
+ "backgroundContrast"?: ButtonUnfilledOnBackgroundContrast;
2189
2055
  "controls"?: string | undefined;
2190
2056
  /**
2191
- * Show a notification dot at the top-right of the icon zone.
2057
+ * Show a notification dot at the top-right of the icon zone (icon variant only).
2192
2058
  * @default false
2193
2059
  */
2194
2060
  "dot"?: boolean;
@@ -2198,34 +2064,49 @@ declare namespace LocalJSX {
2198
2064
  */
2199
2065
  "focusTabIndex"?: number;
2200
2066
  /**
2201
- * Show a 1px tertiary border without changing the interaction model.
2202
- * @default false
2067
+ * Show a 1px tertiary inset border. Default on; shell chrome can pass `false`.
2068
+ * @default true
2203
2069
  */
2204
2070
  "hasBorder"?: boolean;
2205
2071
  "haspopup"?: string | undefined;
2206
2072
  /**
2207
- * Icon name passed to <ds-icon>.
2073
+ * Icon name passed to <ds-icon> for `icon` / `icon-label` variants.
2208
2074
  * @default ''
2209
2075
  */
2210
2076
  "icon"?: string;
2211
2077
  /**
2212
- * Disables interaction.
2078
+ * Active/selected visual state.
2213
2079
  * @default false
2214
2080
  */
2215
- "inactive"?: boolean;
2081
+ "isActive"?: boolean;
2216
2082
  /**
2217
- * Active/selected visual state.
2083
+ * Disables interaction.
2218
2084
  * @default false
2219
2085
  */
2220
- "isActive"?: boolean;
2221
- "onDsChange"?: (event: DsButtonUnfilledIconCustomEvent<boolean>) => void;
2222
- "onDsClick"?: (event: DsButtonUnfilledIconCustomEvent<MouseEvent>) => void;
2086
+ "isInactive"?: boolean;
2087
+ /**
2088
+ * Visible text for `label` / `icon-label` variants.
2089
+ * @default ''
2090
+ */
2091
+ "label"?: string;
2092
+ "onDsChange"?: (event: DsButtonUnfilledCustomEvent<boolean>) => void;
2093
+ "onDsClick"?: (event: DsButtonUnfilledCustomEvent<MouseEvent>) => void;
2223
2094
  "pressed"?: boolean | undefined;
2095
+ /**
2096
+ * Control density (height, padding, icon, type).
2097
+ * @default 'md'
2098
+ */
2099
+ "size"?: ButtonUnfilledSize;
2224
2100
  /**
2225
2101
  * Native button type.
2226
2102
  * @default 'button'
2227
2103
  */
2228
2104
  "type"?: 'button' | 'submit' | 'reset';
2105
+ /**
2106
+ * Content layout. Default is label-only; pass `icon` for icon-only chrome (nav / tool rails) or `icon-label` for leading icon + text.
2107
+ * @default 'label'
2108
+ */
2109
+ "variant"?: ButtonUnfilledVariant;
2229
2110
  }
2230
2111
  /**
2231
2112
  * Copied from CardSetting as a starting scaffold — header edit affordance removed for now
@@ -2280,7 +2161,7 @@ declare namespace LocalJSX {
2280
2161
  }
2281
2162
  interface DsChartDonut {
2282
2163
  /**
2283
- * Externally controlled highlight, matched by `label` — e.g. drive this from a sibling `ds-chart-legend`'s `dsItemHover` event to keep chart and legend hover in sync. Falls back to this component's own pointer/focus hover when unset.
2164
+ * Externally controlled highlight, matched by `label` — e.g. drive this from a sibling `ds-chart-legend`'s `dsItemHover` event to keep chart and legend hover in sync. Falls back to this component's own pointer/focus hover when unset. External sync dims slices only — the data-viz tooltip is reserved for this component's own pointer/keyboard interaction.
2284
2165
  * @default null
2285
2166
  */
2286
2167
  "activeLabel"?: string | null;
@@ -2389,52 +2270,37 @@ declare namespace LocalJSX {
2389
2270
  /**
2390
2271
  * @default false
2391
2272
  */
2392
- "inactive"?: boolean;
2273
+ "indeterminate"?: boolean;
2393
2274
  /**
2394
2275
  * @default false
2395
2276
  */
2396
- "indeterminate"?: boolean;
2277
+ "isInactive"?: boolean;
2397
2278
  "label": string;
2398
2279
  "onDsChange"?: (event: DsCheckboxCustomEvent<boolean>) => void;
2399
2280
  }
2281
+ /**
2282
+ * Removable chip — same density recipe as Tag, but colored by semantic `state`
2283
+ * (not intent × contrast). Not a toggle/select control; the only intentional
2284
+ * action is remove.
2285
+ */
2400
2286
  interface DsChip {
2401
- "background"?: ChipBackground | undefined;
2402
- /**
2403
- * @default 'faint'
2404
- */
2405
- "contrast"?: ChipContrast;
2406
2287
  /**
2407
- * @default 'none'
2288
+ * Surface context for interaction-fill tokens when the chip sits on a non-default surface.
2408
2289
  */
2409
- "elevation"?: ChipElevation;
2290
+ "background"?: ChipBackground | undefined;
2410
2291
  /**
2411
2292
  * @default false
2412
2293
  */
2413
- "inactive"?: boolean;
2414
- /**
2415
- * @default 'neutral'
2416
- */
2417
- "intent"?: ChipIntent;
2294
+ "isInactive"?: boolean;
2418
2295
  "label": string;
2419
2296
  "maxWidth"?: string | number | undefined;
2420
- /**
2421
- * Fired when an interactive chip is clicked.
2422
- */
2423
- "onDsClick"?: (event: DsChipCustomEvent<void>) => void;
2424
- /**
2425
- * Fired when the pressed state toggles.
2426
- */
2427
- "onDsPressedChange"?: (event: DsChipCustomEvent<boolean>) => void;
2428
2297
  /**
2429
2298
  * Fired when the remove button is clicked.
2430
2299
  */
2431
2300
  "onDsRemove"?: (event: DsChipCustomEvent<void>) => void;
2432
2301
  /**
2433
- * @default false
2434
- */
2435
- "pressed"?: boolean;
2436
- /**
2437
- * @default false
2302
+ * When true (default), shows the trailing dismiss control.
2303
+ * @default true
2438
2304
  */
2439
2305
  "removable"?: boolean;
2440
2306
  /**
@@ -2445,6 +2311,11 @@ declare namespace LocalJSX {
2445
2311
  * @default 'md'
2446
2312
  */
2447
2313
  "size"?: ChipSize;
2314
+ /**
2315
+ * Semantic color state.
2316
+ * @default 'default'
2317
+ */
2318
+ "state"?: ChipState;
2448
2319
  }
2449
2320
  interface DsDivider {
2450
2321
  /**
@@ -2480,27 +2351,6 @@ declare namespace LocalJSX {
2480
2351
  */
2481
2352
  "type"?: EmptyStateType;
2482
2353
  }
2483
- interface DsFade {
2484
- /**
2485
- * Deprecated alias for size. Kept for existing consumers that pass a raw CSS length. Prefer `size`.
2486
- */
2487
- "height"?: string | undefined;
2488
- /**
2489
- * Edge where content fades as it approaches the scroll boundary.
2490
- * @default 'bottom'
2491
- */
2492
- "side"?: FadeSide;
2493
- /**
2494
- * Fade depth along the fade axis. Accepts dimension size token names or any CSS length.
2495
- * @default 'size-600'
2496
- */
2497
- "size"?: FadeSize;
2498
- /**
2499
- * Controls the mask without removing the scroll container from layout.
2500
- * @default true
2501
- */
2502
- "visible"?: boolean;
2503
- }
2504
2354
  interface DsField {
2505
2355
  /**
2506
2356
  * ID forwarded to the slotted control via the label's `for` attribute. Auto-generated if omitted.
@@ -2553,14 +2403,14 @@ declare namespace LocalJSX {
2553
2403
  */
2554
2404
  "error"?: boolean;
2555
2405
  "errorMessage"?: string | undefined;
2556
- /**
2557
- * @default false
2558
- */
2559
- "inactive"?: boolean;
2560
2406
  /**
2561
2407
  * Associates the internal input with an external <label>.
2562
2408
  */
2563
2409
  "inputId"?: string | undefined;
2410
+ /**
2411
+ * @default false
2412
+ */
2413
+ "isInactive"?: boolean;
2564
2414
  "onDsChange"?: (event: DsInputCustomEvent<string>) => void;
2565
2415
  "onDsClear"?: (event: DsInputCustomEvent<void>) => void;
2566
2416
  "placeholder"?: string | undefined;
@@ -2654,7 +2504,7 @@ declare namespace LocalJSX {
2654
2504
  /**
2655
2505
  * @default false
2656
2506
  */
2657
- "inactive"?: boolean;
2507
+ "isInactive"?: boolean;
2658
2508
  "onDsPageChange"?: (event: DsPaginationCustomEvent<number>) => void;
2659
2509
  /**
2660
2510
  * @default 1
@@ -2791,7 +2641,7 @@ declare namespace LocalJSX {
2791
2641
  /**
2792
2642
  * @default false
2793
2643
  */
2794
- "inactive"?: boolean;
2644
+ "isInactive"?: boolean;
2795
2645
  "onDsChange"?: (event: DsRadioGroupCustomEvent<string>) => void;
2796
2646
  /**
2797
2647
  * @default []
@@ -2816,10 +2666,10 @@ declare namespace LocalJSX {
2816
2666
  "ariaLabel"?: string | undefined;
2817
2667
  "ariaLabelledby"?: string | undefined;
2818
2668
  /**
2819
- * Disables interaction.
2669
+ * Disables interaction (25% opacity via ds-control-inactive).
2820
2670
  * @default false
2821
2671
  */
2822
- "inactive"?: boolean;
2672
+ "isInactive"?: boolean;
2823
2673
  /**
2824
2674
  * Emits the selected value string.
2825
2675
  */
@@ -2854,7 +2704,7 @@ declare namespace LocalJSX {
2854
2704
  /**
2855
2705
  * @default false
2856
2706
  */
2857
- "inactive"?: boolean;
2707
+ "isInactive"?: boolean;
2858
2708
  "onDsSelect"?: (event: DsShellGradientSwatchCustomEvent<ShellGradientPreset1>) => void;
2859
2709
  /**
2860
2710
  * Wash preset this orb previews.
@@ -2892,14 +2742,14 @@ declare namespace LocalJSX {
2892
2742
  "width"?: string | number | undefined;
2893
2743
  }
2894
2744
  interface DsSlider {
2895
- /**
2896
- * @default false
2897
- */
2898
- "inactive"?: boolean;
2899
2745
  /**
2900
2746
  * Associates with an external <label>. Defaults to an auto-generated ID.
2901
2747
  */
2902
2748
  "inputId"?: string | undefined;
2749
+ /**
2750
+ * @default false
2751
+ */
2752
+ "isInactive"?: boolean;
2903
2753
  "label": string;
2904
2754
  /**
2905
2755
  * @default 100
@@ -2920,42 +2770,6 @@ declare namespace LocalJSX {
2920
2770
  "value"?: number;
2921
2771
  "valueText"?: string | undefined;
2922
2772
  }
2923
- interface DsSurface {
2924
- /**
2925
- * @default 'div'
2926
- */
2927
- "as"?: SurfaceElement;
2928
- /**
2929
- * @default 'transparent'
2930
- */
2931
- "background"?: SurfaceBackground;
2932
- /**
2933
- * @default 'faint'
2934
- */
2935
- "contrast"?: SurfaceContrast;
2936
- /**
2937
- * Space-separated list of edges: "top bottom" etc. Only applies when elevation='none'.
2938
- */
2939
- "edge"?: string | undefined;
2940
- /**
2941
- * @default 'none'
2942
- */
2943
- "elevation"?: SurfaceElevation;
2944
- /**
2945
- * @default false
2946
- */
2947
- "inactive"?: boolean;
2948
- "intent"?: SurfaceIntent | undefined;
2949
- /**
2950
- * @default false
2951
- */
2952
- "interactive"?: boolean;
2953
- "radius"?: SurfaceRadius | undefined;
2954
- /**
2955
- * @default false
2956
- */
2957
- "selected"?: boolean;
2958
- }
2959
2773
  interface DsTabGroup {
2960
2774
  "ariaLabel"?: string | undefined;
2961
2775
  "ariaLabelledby"?: string | undefined;
@@ -3046,10 +2860,6 @@ declare namespace LocalJSX {
3046
2860
  * @default 'faint'
3047
2861
  */
3048
2862
  "contrast"?: TagContrast;
3049
- /**
3050
- * @default 'none'
3051
- */
3052
- "elevation"?: TagElevation;
3053
2863
  /**
3054
2864
  * @default 'neutral'
3055
2865
  */
@@ -3095,12 +2905,6 @@ declare namespace LocalJSX {
3095
2905
  "variant"?: TextVariant;
3096
2906
  "wrap"?: TextWrap | undefined;
3097
2907
  }
3098
- interface DsToastProvider {
3099
- /**
3100
- * @default 'top-center'
3101
- */
3102
- "position"?: ToastPosition;
3103
- }
3104
2908
  interface DsToggle {
3105
2909
  /**
3106
2910
  * @default false
@@ -3109,9 +2913,15 @@ declare namespace LocalJSX {
3109
2913
  /**
3110
2914
  * @default false
3111
2915
  */
3112
- "inactive"?: boolean;
2916
+ "isInactive"?: boolean;
3113
2917
  "onDsChange"?: (event: DsToggleCustomEvent<boolean>) => void;
3114
2918
  }
2919
+ /**
2920
+ * Imperative body portal for the popup.
2921
+ * Stencil must not own the portaled node — moving a VDOM child to `document.body`
2922
+ * causes recreate → re-portal →
2923
+ * @State loops that freeze the page.
2924
+ */
3115
2925
  interface DsTooltip {
3116
2926
  /**
3117
2927
  * @default 'center'
@@ -3123,8 +2933,8 @@ declare namespace LocalJSX {
3123
2933
  */
3124
2934
  "alignOffset"?: number | string;
3125
2935
  /**
3126
- * Show delay number (ms) or TokoMo time token / `var(--effect-animation-delay-*)`.
3127
- * @default TOKEN_DEFAULTS.animationDelayMedium1
2936
+ * Hover show delay before the tooltip appears. Default: `--effect-animation-delay-medium-3` (1000ms). Accepts a number (ms) or a TokoMo time token / `var(--effect-animation-delay-*)`. Applies to the initial hover/focus show only — after a recent dismiss, reopen is instant. Prefer the default; override only for denser chrome or rare/destructive actions.
2937
+ * @default TOKEN_DEFAULTS.animationDelayMedium3
3128
2938
  */
3129
2939
  "delay"?: number | string;
3130
2940
  "label": string;
@@ -3142,6 +2952,11 @@ declare namespace LocalJSX {
3142
2952
  * @default TOKEN_CSS_LENGTHS.space050
3143
2953
  */
3144
2954
  "sideOffset"?: number | string;
2955
+ /**
2956
+ * Control density (height, padding, type).
2957
+ * @default 'md'
2958
+ */
2959
+ "size"?: TooltipSize;
3145
2960
  }
3146
2961
  /**
3147
2962
  * Positioned value/label callout for chart hover interactions (donut slice, bar,
@@ -3152,8 +2967,15 @@ declare namespace LocalJSX {
3152
2967
  * with `x`/`y` as pixel coordinates within that wrapper. Defaults to sitting below-right
3153
2968
  * of the anchor (matching cursor-following tooltips), flipping to whichever side/edge
3154
2969
  * keeps it on-screen.
2970
+ * Mount (or remount) when a hover session starts so `delay` applies once per hover;
2971
+ * keep the instance mounted while the cursor moves so tracking stays instant.
3155
2972
  */
3156
2973
  interface DsTooltipDataViz {
2974
+ /**
2975
+ * Show delay after mount before the callout appears. Default: `--effect-animation-delay-instant` (0ms). Accepts a number (ms) or a TokoMo time token / `var(--effect-animation-delay-*)`. Charts need immediate feedback while scrubbing; prefer the default. Mount once per hover session so any non-zero delay runs once, then track `x`/`y` instantly.
2976
+ * @default TOKEN_DEFAULTS.animationDelayInstant
2977
+ */
2978
+ "delay"?: number | string;
3157
2979
  /**
3158
2980
  * @default ''
3159
2981
  */
@@ -3173,10 +2995,6 @@ declare namespace LocalJSX {
3173
2995
  "y"?: number;
3174
2996
  }
3175
2997
 
3176
- interface DsAccordionAttributes {
3177
- "multiple": boolean;
3178
- "expandedIds": string;
3179
- }
3180
2998
  interface DsAppShellAttributes {
3181
2999
  "navStyle": NavChromeStyle;
3182
3000
  "gradient": boolean;
@@ -3211,28 +3029,31 @@ declare namespace LocalJSX {
3211
3029
  "basePath": string;
3212
3030
  "currentUrl": string;
3213
3031
  }
3214
- interface DsBreadcrumbAttributes {
3215
- "separator": string;
3216
- }
3217
3032
  interface DsButtonFilledAttributes {
3033
+ "variant": ButtonFilledVariant;
3034
+ "size": ButtonFilledSize;
3035
+ "label": string;
3218
3036
  "icon": string;
3219
3037
  "intent": ButtonFilledIntent;
3220
3038
  "contrast": ButtonFilledContrast;
3221
- "inactive": boolean;
3039
+ "isInactive": boolean;
3222
3040
  "type": 'button' | 'submit' | 'reset';
3223
- "ariaLabel": string;
3041
+ "ariaLabel": string | undefined;
3224
3042
  }
3225
- interface DsButtonUnfilledIconAttributes {
3043
+ interface DsButtonUnfilledAttributes {
3044
+ "variant": ButtonUnfilledVariant;
3045
+ "size": ButtonUnfilledSize;
3046
+ "label": string;
3226
3047
  "icon": string;
3227
3048
  "isActive": boolean;
3228
3049
  "activeFill": boolean;
3229
3050
  "hasBorder": boolean;
3230
3051
  "dot": boolean;
3231
- "inactive": boolean;
3052
+ "isInactive": boolean;
3232
3053
  "type": 'button' | 'submit' | 'reset';
3233
- "backgroundContrast": ButtonUnfilledIconOnBackgroundContrast;
3234
- "background": ButtonUnfilledIconBackground | undefined;
3235
- "ariaLabel": string;
3054
+ "backgroundContrast": ButtonUnfilledOnBackgroundContrast;
3055
+ "background": ButtonUnfilledBackground | undefined;
3056
+ "ariaLabel": string | undefined;
3236
3057
  "controls": string | undefined;
3237
3058
  "expanded": boolean | undefined;
3238
3059
  "haspopup": string | undefined;
@@ -3275,20 +3096,17 @@ declare namespace LocalJSX {
3275
3096
  "label": string;
3276
3097
  "checked": boolean;
3277
3098
  "indeterminate": boolean;
3278
- "inactive": boolean;
3099
+ "isInactive": boolean;
3279
3100
  }
3280
3101
  interface DsChipAttributes {
3281
3102
  "label": string;
3282
- "intent": ChipIntent;
3283
- "contrast": ChipContrast;
3284
- "elevation": ChipElevation;
3103
+ "state": ChipState;
3285
3104
  "size": ChipSize;
3286
3105
  "rounded": boolean;
3287
3106
  "removable": boolean;
3288
3107
  "maxWidth": string;
3289
- "inactive": boolean;
3108
+ "isInactive": boolean;
3290
3109
  "background": ChipBackground | undefined;
3291
- "pressed": boolean;
3292
3110
  }
3293
3111
  interface DsDividerAttributes {
3294
3112
  "orientation": DividerOrientation;
@@ -3301,12 +3119,6 @@ declare namespace LocalJSX {
3301
3119
  "type": EmptyStateType;
3302
3120
  "message": string | undefined;
3303
3121
  }
3304
- interface DsFadeAttributes {
3305
- "side": FadeSide;
3306
- "size": FadeSize;
3307
- "height": string | undefined;
3308
- "visible": boolean;
3309
- }
3310
3122
  interface DsFieldAttributes {
3311
3123
  "label": string;
3312
3124
  "fieldId": string | undefined;
@@ -3326,7 +3138,7 @@ declare namespace LocalJSX {
3326
3138
  "value": string;
3327
3139
  "placeholder": string | undefined;
3328
3140
  "type": InputType;
3329
- "inactive": boolean;
3141
+ "isInactive": boolean;
3330
3142
  "autoFocus": boolean;
3331
3143
  "error": boolean;
3332
3144
  "errorMessage": string | undefined;
@@ -3360,7 +3172,7 @@ declare namespace LocalJSX {
3360
3172
  "page": number;
3361
3173
  "totalPages": number;
3362
3174
  "siblingCount": number;
3363
- "inactive": boolean;
3175
+ "isInactive": boolean;
3364
3176
  }
3365
3177
  interface DsPanelNavAttributes {
3366
3178
  "navStyle": NavChromeStyle;
@@ -3383,7 +3195,7 @@ declare namespace LocalJSX {
3383
3195
  interface DsRadioGroupAttributes {
3384
3196
  "value": string;
3385
3197
  "direction": 'vertical' | 'horizontal';
3386
- "inactive": boolean;
3198
+ "isInactive": boolean;
3387
3199
  "ariaLabel": string | undefined;
3388
3200
  "ariaLabelledby": string | undefined;
3389
3201
  }
@@ -3394,7 +3206,7 @@ declare namespace LocalJSX {
3394
3206
  interface DsSelectAttributes {
3395
3207
  "value": string;
3396
3208
  "placeholder": string;
3397
- "inactive": boolean;
3209
+ "isInactive": boolean;
3398
3210
  "ariaLabel": string | undefined;
3399
3211
  "ariaLabelledby": string | undefined;
3400
3212
  }
@@ -3404,7 +3216,7 @@ declare namespace LocalJSX {
3404
3216
  interface DsShellGradientSwatchAttributes {
3405
3217
  "preset": ShellGradientPreset;
3406
3218
  "selected": boolean;
3407
- "inactive": boolean;
3219
+ "isInactive": boolean;
3408
3220
  "ariaLabel": string | undefined;
3409
3221
  }
3410
3222
  interface DsSkeletonAttributes {
@@ -3420,22 +3232,10 @@ declare namespace LocalJSX {
3420
3232
  "max": number;
3421
3233
  "step": number;
3422
3234
  "label": string;
3423
- "inactive": boolean;
3235
+ "isInactive": boolean;
3424
3236
  "valueText": string | undefined;
3425
3237
  "inputId": string | undefined;
3426
3238
  }
3427
- interface DsSurfaceAttributes {
3428
- "background": SurfaceBackground;
3429
- "intent": SurfaceIntent | undefined;
3430
- "contrast": SurfaceContrast;
3431
- "elevation": SurfaceElevation;
3432
- "edge": string | undefined;
3433
- "radius": SurfaceRadius | undefined;
3434
- "interactive": boolean;
3435
- "selected": boolean;
3436
- "inactive": boolean;
3437
- "as": SurfaceElement;
3438
- }
3439
3239
  interface DsTabGroupAttributes {
3440
3240
  "value": string;
3441
3241
  "background": TabBackground | undefined;
@@ -3463,7 +3263,6 @@ declare namespace LocalJSX {
3463
3263
  "label": string;
3464
3264
  "intent": TagIntent;
3465
3265
  "contrast": TagContrast;
3466
- "elevation": TagElevation;
3467
3266
  "size": TagSize;
3468
3267
  "rounded": boolean;
3469
3268
  "maxWidth": string;
@@ -3480,15 +3279,13 @@ declare namespace LocalJSX {
3480
3279
  "as": TextElement;
3481
3280
  "for": string | undefined;
3482
3281
  }
3483
- interface DsToastProviderAttributes {
3484
- "position": ToastPosition;
3485
- }
3486
3282
  interface DsToggleAttributes {
3487
3283
  "checked": boolean;
3488
- "inactive": boolean;
3284
+ "isInactive": boolean;
3489
3285
  }
3490
3286
  interface DsTooltipAttributes {
3491
3287
  "label": string;
3288
+ "size": TooltipSize;
3492
3289
  "side": TooltipSide;
3493
3290
  "align": TooltipAlign;
3494
3291
  "sideOffset": string;
@@ -3502,17 +3299,16 @@ declare namespace LocalJSX {
3502
3299
  "label": string;
3503
3300
  "x": number;
3504
3301
  "y": number;
3302
+ "delay": string;
3505
3303
  }
3506
3304
 
3507
3305
  interface IntrinsicElements {
3508
- "ds-accordion": Omit<DsAccordion, keyof DsAccordionAttributes> & { [K in keyof DsAccordion & keyof DsAccordionAttributes]?: DsAccordion[K] } & { [K in keyof DsAccordion & keyof DsAccordionAttributes as `attr:${K}`]?: DsAccordionAttributes[K] } & { [K in keyof DsAccordion & keyof DsAccordionAttributes as `prop:${K}`]?: DsAccordion[K] };
3509
3306
  "ds-app-shell": Omit<DsAppShell, keyof DsAppShellAttributes> & { [K in keyof DsAppShell & keyof DsAppShellAttributes]?: DsAppShell[K] } & { [K in keyof DsAppShell & keyof DsAppShellAttributes as `attr:${K}`]?: DsAppShellAttributes[K] } & { [K in keyof DsAppShell & keyof DsAppShellAttributes as `prop:${K}`]?: DsAppShell[K] };
3510
3307
  "ds-badge": Omit<DsBadge, keyof DsBadgeAttributes> & { [K in keyof DsBadge & keyof DsBadgeAttributes]?: DsBadge[K] } & { [K in keyof DsBadge & keyof DsBadgeAttributes as `attr:${K}`]?: DsBadgeAttributes[K] } & { [K in keyof DsBadge & keyof DsBadgeAttributes as `prop:${K}`]?: DsBadge[K] };
3511
3308
  "ds-banner": Omit<DsBanner, keyof DsBannerAttributes> & { [K in keyof DsBanner & keyof DsBannerAttributes]?: DsBanner[K] } & { [K in keyof DsBanner & keyof DsBannerAttributes as `attr:${K}`]?: DsBannerAttributes[K] } & { [K in keyof DsBanner & keyof DsBannerAttributes as `prop:${K}`]?: DsBanner[K] };
3512
3309
  "ds-bar-nav": Omit<DsBarNav, keyof DsBarNavAttributes> & { [K in keyof DsBarNav & keyof DsBarNavAttributes]?: DsBarNav[K] } & { [K in keyof DsBarNav & keyof DsBarNavAttributes as `attr:${K}`]?: DsBarNavAttributes[K] } & { [K in keyof DsBarNav & keyof DsBarNavAttributes as `prop:${K}`]?: DsBarNav[K] };
3513
- "ds-breadcrumb": Omit<DsBreadcrumb, keyof DsBreadcrumbAttributes> & { [K in keyof DsBreadcrumb & keyof DsBreadcrumbAttributes]?: DsBreadcrumb[K] } & { [K in keyof DsBreadcrumb & keyof DsBreadcrumbAttributes as `attr:${K}`]?: DsBreadcrumbAttributes[K] } & { [K in keyof DsBreadcrumb & keyof DsBreadcrumbAttributes as `prop:${K}`]?: DsBreadcrumb[K] };
3514
3310
  "ds-button-filled": Omit<DsButtonFilled, keyof DsButtonFilledAttributes> & { [K in keyof DsButtonFilled & keyof DsButtonFilledAttributes]?: DsButtonFilled[K] } & { [K in keyof DsButtonFilled & keyof DsButtonFilledAttributes as `attr:${K}`]?: DsButtonFilledAttributes[K] } & { [K in keyof DsButtonFilled & keyof DsButtonFilledAttributes as `prop:${K}`]?: DsButtonFilled[K] };
3515
- "ds-button-unfilled-icon": Omit<DsButtonUnfilledIcon, keyof DsButtonUnfilledIconAttributes> & { [K in keyof DsButtonUnfilledIcon & keyof DsButtonUnfilledIconAttributes]?: DsButtonUnfilledIcon[K] } & { [K in keyof DsButtonUnfilledIcon & keyof DsButtonUnfilledIconAttributes as `attr:${K}`]?: DsButtonUnfilledIconAttributes[K] } & { [K in keyof DsButtonUnfilledIcon & keyof DsButtonUnfilledIconAttributes as `prop:${K}`]?: DsButtonUnfilledIcon[K] };
3311
+ "ds-button-unfilled": Omit<DsButtonUnfilled, keyof DsButtonUnfilledAttributes> & { [K in keyof DsButtonUnfilled & keyof DsButtonUnfilledAttributes]?: DsButtonUnfilled[K] } & { [K in keyof DsButtonUnfilled & keyof DsButtonUnfilledAttributes as `attr:${K}`]?: DsButtonUnfilledAttributes[K] } & { [K in keyof DsButtonUnfilled & keyof DsButtonUnfilledAttributes as `prop:${K}`]?: DsButtonUnfilled[K] };
3516
3312
  "ds-card-data-viz": Omit<DsCardDataViz, keyof DsCardDataVizAttributes> & { [K in keyof DsCardDataViz & keyof DsCardDataVizAttributes]?: DsCardDataViz[K] } & { [K in keyof DsCardDataViz & keyof DsCardDataVizAttributes as `attr:${K}`]?: DsCardDataVizAttributes[K] } & { [K in keyof DsCardDataViz & keyof DsCardDataVizAttributes as `prop:${K}`]?: DsCardDataViz[K] } & OneOf<"heading", DsCardDataViz["heading"], DsCardDataVizAttributes["heading"]>;
3517
3313
  "ds-card-setting": Omit<DsCardSetting, keyof DsCardSettingAttributes> & { [K in keyof DsCardSetting & keyof DsCardSettingAttributes]?: DsCardSetting[K] } & { [K in keyof DsCardSetting & keyof DsCardSettingAttributes as `attr:${K}`]?: DsCardSettingAttributes[K] } & { [K in keyof DsCardSetting & keyof DsCardSettingAttributes as `prop:${K}`]?: DsCardSetting[K] } & OneOf<"heading", DsCardSetting["heading"], DsCardSettingAttributes["heading"]>;
3518
3314
  "ds-chart-bar": Omit<DsChartBar, keyof DsChartBarAttributes> & { [K in keyof DsChartBar & keyof DsChartBarAttributes]?: DsChartBar[K] } & { [K in keyof DsChartBar & keyof DsChartBarAttributes as `attr:${K}`]?: DsChartBarAttributes[K] } & { [K in keyof DsChartBar & keyof DsChartBarAttributes as `prop:${K}`]?: DsChartBar[K] };
@@ -3523,7 +3319,6 @@ declare namespace LocalJSX {
3523
3319
  "ds-chip": Omit<DsChip, keyof DsChipAttributes> & { [K in keyof DsChip & keyof DsChipAttributes]?: DsChip[K] } & { [K in keyof DsChip & keyof DsChipAttributes as `attr:${K}`]?: DsChipAttributes[K] } & { [K in keyof DsChip & keyof DsChipAttributes as `prop:${K}`]?: DsChip[K] } & OneOf<"label", DsChip["label"], DsChipAttributes["label"]>;
3524
3320
  "ds-divider": Omit<DsDivider, keyof DsDividerAttributes> & { [K in keyof DsDivider & keyof DsDividerAttributes]?: DsDivider[K] } & { [K in keyof DsDivider & keyof DsDividerAttributes as `attr:${K}`]?: DsDividerAttributes[K] } & { [K in keyof DsDivider & keyof DsDividerAttributes as `prop:${K}`]?: DsDivider[K] };
3525
3321
  "ds-empty-state": Omit<DsEmptyState, keyof DsEmptyStateAttributes> & { [K in keyof DsEmptyState & keyof DsEmptyStateAttributes]?: DsEmptyState[K] } & { [K in keyof DsEmptyState & keyof DsEmptyStateAttributes as `attr:${K}`]?: DsEmptyStateAttributes[K] } & { [K in keyof DsEmptyState & keyof DsEmptyStateAttributes as `prop:${K}`]?: DsEmptyState[K] };
3526
- "ds-fade": Omit<DsFade, keyof DsFadeAttributes> & { [K in keyof DsFade & keyof DsFadeAttributes]?: DsFade[K] } & { [K in keyof DsFade & keyof DsFadeAttributes as `attr:${K}`]?: DsFadeAttributes[K] } & { [K in keyof DsFade & keyof DsFadeAttributes as `prop:${K}`]?: DsFade[K] };
3527
3322
  "ds-field": Omit<DsField, keyof DsFieldAttributes> & { [K in keyof DsField & keyof DsFieldAttributes]?: DsField[K] } & { [K in keyof DsField & keyof DsFieldAttributes as `attr:${K}`]?: DsFieldAttributes[K] } & { [K in keyof DsField & keyof DsFieldAttributes as `prop:${K}`]?: DsField[K] } & OneOf<"label", DsField["label"], DsFieldAttributes["label"]>;
3528
3323
  "ds-header": Omit<DsHeader, keyof DsHeaderAttributes> & { [K in keyof DsHeader & keyof DsHeaderAttributes]?: DsHeader[K] } & { [K in keyof DsHeader & keyof DsHeaderAttributes as `attr:${K}`]?: DsHeaderAttributes[K] } & { [K in keyof DsHeader & keyof DsHeaderAttributes as `prop:${K}`]?: DsHeader[K] };
3529
3324
  "ds-icon": Omit<DsIcon, keyof DsIconAttributes> & { [K in keyof DsIcon & keyof DsIconAttributes]?: DsIcon[K] } & { [K in keyof DsIcon & keyof DsIconAttributes as `attr:${K}`]?: DsIconAttributes[K] } & { [K in keyof DsIcon & keyof DsIconAttributes as `prop:${K}`]?: DsIcon[K] };
@@ -3541,13 +3336,11 @@ declare namespace LocalJSX {
3541
3336
  "ds-shell-gradient-swatch": Omit<DsShellGradientSwatch, keyof DsShellGradientSwatchAttributes> & { [K in keyof DsShellGradientSwatch & keyof DsShellGradientSwatchAttributes]?: DsShellGradientSwatch[K] } & { [K in keyof DsShellGradientSwatch & keyof DsShellGradientSwatchAttributes as `attr:${K}`]?: DsShellGradientSwatchAttributes[K] } & { [K in keyof DsShellGradientSwatch & keyof DsShellGradientSwatchAttributes as `prop:${K}`]?: DsShellGradientSwatch[K] };
3542
3337
  "ds-skeleton": Omit<DsSkeleton, keyof DsSkeletonAttributes> & { [K in keyof DsSkeleton & keyof DsSkeletonAttributes]?: DsSkeleton[K] } & { [K in keyof DsSkeleton & keyof DsSkeletonAttributes as `attr:${K}`]?: DsSkeletonAttributes[K] } & { [K in keyof DsSkeleton & keyof DsSkeletonAttributes as `prop:${K}`]?: DsSkeleton[K] };
3543
3338
  "ds-slider": Omit<DsSlider, keyof DsSliderAttributes> & { [K in keyof DsSlider & keyof DsSliderAttributes]?: DsSlider[K] } & { [K in keyof DsSlider & keyof DsSliderAttributes as `attr:${K}`]?: DsSliderAttributes[K] } & { [K in keyof DsSlider & keyof DsSliderAttributes as `prop:${K}`]?: DsSlider[K] } & OneOf<"label", DsSlider["label"], DsSliderAttributes["label"]>;
3544
- "ds-surface": Omit<DsSurface, keyof DsSurfaceAttributes> & { [K in keyof DsSurface & keyof DsSurfaceAttributes]?: DsSurface[K] } & { [K in keyof DsSurface & keyof DsSurfaceAttributes as `attr:${K}`]?: DsSurfaceAttributes[K] } & { [K in keyof DsSurface & keyof DsSurfaceAttributes as `prop:${K}`]?: DsSurface[K] };
3545
3339
  "ds-tab-group": Omit<DsTabGroup, keyof DsTabGroupAttributes> & { [K in keyof DsTabGroup & keyof DsTabGroupAttributes]?: DsTabGroup[K] } & { [K in keyof DsTabGroup & keyof DsTabGroupAttributes as `attr:${K}`]?: DsTabGroupAttributes[K] } & { [K in keyof DsTabGroup & keyof DsTabGroupAttributes as `prop:${K}`]?: DsTabGroup[K] };
3546
3340
  "ds-tab-group-nav": Omit<DsTabGroupNav, keyof DsTabGroupNavAttributes> & { [K in keyof DsTabGroupNav & keyof DsTabGroupNavAttributes]?: DsTabGroupNav[K] } & { [K in keyof DsTabGroupNav & keyof DsTabGroupNavAttributes as `attr:${K}`]?: DsTabGroupNavAttributes[K] } & { [K in keyof DsTabGroupNav & keyof DsTabGroupNavAttributes as `prop:${K}`]?: DsTabGroupNav[K] };
3547
3341
  "ds-table": Omit<DsTable, keyof DsTableAttributes> & { [K in keyof DsTable & keyof DsTableAttributes]?: DsTable[K] } & { [K in keyof DsTable & keyof DsTableAttributes as `attr:${K}`]?: DsTableAttributes[K] } & { [K in keyof DsTable & keyof DsTableAttributes as `prop:${K}`]?: DsTable[K] };
3548
3342
  "ds-tag": Omit<DsTag, keyof DsTagAttributes> & { [K in keyof DsTag & keyof DsTagAttributes]?: DsTag[K] } & { [K in keyof DsTag & keyof DsTagAttributes as `attr:${K}`]?: DsTagAttributes[K] } & { [K in keyof DsTag & keyof DsTagAttributes as `prop:${K}`]?: DsTag[K] } & OneOf<"label", DsTag["label"], DsTagAttributes["label"]>;
3549
3343
  "ds-text": Omit<DsText, keyof DsTextAttributes> & { [K in keyof DsText & keyof DsTextAttributes]?: DsText[K] } & { [K in keyof DsText & keyof DsTextAttributes as `attr:${K}`]?: DsTextAttributes[K] } & { [K in keyof DsText & keyof DsTextAttributes as `prop:${K}`]?: DsText[K] };
3550
- "ds-toast-provider": Omit<DsToastProvider, keyof DsToastProviderAttributes> & { [K in keyof DsToastProvider & keyof DsToastProviderAttributes]?: DsToastProvider[K] } & { [K in keyof DsToastProvider & keyof DsToastProviderAttributes as `attr:${K}`]?: DsToastProviderAttributes[K] } & { [K in keyof DsToastProvider & keyof DsToastProviderAttributes as `prop:${K}`]?: DsToastProvider[K] };
3551
3344
  "ds-toggle": Omit<DsToggle, keyof DsToggleAttributes> & { [K in keyof DsToggle & keyof DsToggleAttributes]?: DsToggle[K] } & { [K in keyof DsToggle & keyof DsToggleAttributes as `attr:${K}`]?: DsToggleAttributes[K] } & { [K in keyof DsToggle & keyof DsToggleAttributes as `prop:${K}`]?: DsToggle[K] };
3552
3345
  "ds-tooltip": Omit<DsTooltip, keyof DsTooltipAttributes> & { [K in keyof DsTooltip & keyof DsTooltipAttributes]?: DsTooltip[K] } & { [K in keyof DsTooltip & keyof DsTooltipAttributes as `attr:${K}`]?: DsTooltipAttributes[K] } & { [K in keyof DsTooltip & keyof DsTooltipAttributes as `prop:${K}`]?: DsTooltip[K] } & OneOf<"label", DsTooltip["label"], DsTooltipAttributes["label"]>;
3553
3346
  "ds-tooltip-data-viz": Omit<DsTooltipDataViz, keyof DsTooltipDataVizAttributes> & { [K in keyof DsTooltipDataViz & keyof DsTooltipDataVizAttributes]?: DsTooltipDataViz[K] } & { [K in keyof DsTooltipDataViz & keyof DsTooltipDataVizAttributes as `attr:${K}`]?: DsTooltipDataVizAttributes[K] } & { [K in keyof DsTooltipDataViz & keyof DsTooltipDataVizAttributes as `prop:${K}`]?: DsTooltipDataViz[K] };
@@ -3557,14 +3350,12 @@ export { LocalJSX as JSX };
3557
3350
  declare module "@stencil/core" {
3558
3351
  export namespace JSX {
3559
3352
  interface IntrinsicElements {
3560
- "ds-accordion": LocalJSX.IntrinsicElements["ds-accordion"] & JSXBase.HTMLAttributes<HTMLDsAccordionElement>;
3561
3353
  "ds-app-shell": LocalJSX.IntrinsicElements["ds-app-shell"] & JSXBase.HTMLAttributes<HTMLDsAppShellElement>;
3562
3354
  "ds-badge": LocalJSX.IntrinsicElements["ds-badge"] & JSXBase.HTMLAttributes<HTMLDsBadgeElement>;
3563
3355
  "ds-banner": LocalJSX.IntrinsicElements["ds-banner"] & JSXBase.HTMLAttributes<HTMLDsBannerElement>;
3564
3356
  "ds-bar-nav": LocalJSX.IntrinsicElements["ds-bar-nav"] & JSXBase.HTMLAttributes<HTMLDsBarNavElement>;
3565
- "ds-breadcrumb": LocalJSX.IntrinsicElements["ds-breadcrumb"] & JSXBase.HTMLAttributes<HTMLDsBreadcrumbElement>;
3566
3357
  "ds-button-filled": LocalJSX.IntrinsicElements["ds-button-filled"] & JSXBase.HTMLAttributes<HTMLDsButtonFilledElement>;
3567
- "ds-button-unfilled-icon": LocalJSX.IntrinsicElements["ds-button-unfilled-icon"] & JSXBase.HTMLAttributes<HTMLDsButtonUnfilledIconElement>;
3358
+ "ds-button-unfilled": LocalJSX.IntrinsicElements["ds-button-unfilled"] & JSXBase.HTMLAttributes<HTMLDsButtonUnfilledElement>;
3568
3359
  /**
3569
3360
  * Copied from CardSetting as a starting scaffold — header edit affordance removed for now
3570
3361
  * (data-viz widgets don't have an obvious "edit" action the way settings fields do); revisit
@@ -3584,10 +3375,14 @@ declare module "@stencil/core" {
3584
3375
  "ds-chart-legend": LocalJSX.IntrinsicElements["ds-chart-legend"] & JSXBase.HTMLAttributes<HTMLDsChartLegendElement>;
3585
3376
  "ds-chart-line": LocalJSX.IntrinsicElements["ds-chart-line"] & JSXBase.HTMLAttributes<HTMLDsChartLineElement>;
3586
3377
  "ds-checkbox": LocalJSX.IntrinsicElements["ds-checkbox"] & JSXBase.HTMLAttributes<HTMLDsCheckboxElement>;
3378
+ /**
3379
+ * Removable chip — same density recipe as Tag, but colored by semantic `state`
3380
+ * (not intent × contrast). Not a toggle/select control; the only intentional
3381
+ * action is remove.
3382
+ */
3587
3383
  "ds-chip": LocalJSX.IntrinsicElements["ds-chip"] & JSXBase.HTMLAttributes<HTMLDsChipElement>;
3588
3384
  "ds-divider": LocalJSX.IntrinsicElements["ds-divider"] & JSXBase.HTMLAttributes<HTMLDsDividerElement>;
3589
3385
  "ds-empty-state": LocalJSX.IntrinsicElements["ds-empty-state"] & JSXBase.HTMLAttributes<HTMLDsEmptyStateElement>;
3590
- "ds-fade": LocalJSX.IntrinsicElements["ds-fade"] & JSXBase.HTMLAttributes<HTMLDsFadeElement>;
3591
3386
  "ds-field": LocalJSX.IntrinsicElements["ds-field"] & JSXBase.HTMLAttributes<HTMLDsFieldElement>;
3592
3387
  "ds-header": LocalJSX.IntrinsicElements["ds-header"] & JSXBase.HTMLAttributes<HTMLDsHeaderElement>;
3593
3388
  "ds-icon": LocalJSX.IntrinsicElements["ds-icon"] & JSXBase.HTMLAttributes<HTMLDsIconElement>;
@@ -3605,14 +3400,18 @@ declare module "@stencil/core" {
3605
3400
  "ds-shell-gradient-swatch": LocalJSX.IntrinsicElements["ds-shell-gradient-swatch"] & JSXBase.HTMLAttributes<HTMLDsShellGradientSwatchElement>;
3606
3401
  "ds-skeleton": LocalJSX.IntrinsicElements["ds-skeleton"] & JSXBase.HTMLAttributes<HTMLDsSkeletonElement>;
3607
3402
  "ds-slider": LocalJSX.IntrinsicElements["ds-slider"] & JSXBase.HTMLAttributes<HTMLDsSliderElement>;
3608
- "ds-surface": LocalJSX.IntrinsicElements["ds-surface"] & JSXBase.HTMLAttributes<HTMLDsSurfaceElement>;
3609
3403
  "ds-tab-group": LocalJSX.IntrinsicElements["ds-tab-group"] & JSXBase.HTMLAttributes<HTMLDsTabGroupElement>;
3610
3404
  "ds-tab-group-nav": LocalJSX.IntrinsicElements["ds-tab-group-nav"] & JSXBase.HTMLAttributes<HTMLDsTabGroupNavElement>;
3611
3405
  "ds-table": LocalJSX.IntrinsicElements["ds-table"] & JSXBase.HTMLAttributes<HTMLDsTableElement>;
3612
3406
  "ds-tag": LocalJSX.IntrinsicElements["ds-tag"] & JSXBase.HTMLAttributes<HTMLDsTagElement>;
3613
3407
  "ds-text": LocalJSX.IntrinsicElements["ds-text"] & JSXBase.HTMLAttributes<HTMLDsTextElement>;
3614
- "ds-toast-provider": LocalJSX.IntrinsicElements["ds-toast-provider"] & JSXBase.HTMLAttributes<HTMLDsToastProviderElement>;
3615
3408
  "ds-toggle": LocalJSX.IntrinsicElements["ds-toggle"] & JSXBase.HTMLAttributes<HTMLDsToggleElement>;
3409
+ /**
3410
+ * Imperative body portal for the popup.
3411
+ * Stencil must not own the portaled node — moving a VDOM child to `document.body`
3412
+ * causes recreate → re-portal →
3413
+ * @State loops that freeze the page.
3414
+ */
3616
3415
  "ds-tooltip": LocalJSX.IntrinsicElements["ds-tooltip"] & JSXBase.HTMLAttributes<HTMLDsTooltipElement>;
3617
3416
  /**
3618
3417
  * Positioned value/label callout for chart hover interactions (donut slice, bar,
@@ -3623,6 +3422,8 @@ declare module "@stencil/core" {
3623
3422
  * with `x`/`y` as pixel coordinates within that wrapper. Defaults to sitting below-right
3624
3423
  * of the anchor (matching cursor-following tooltips), flipping to whichever side/edge
3625
3424
  * keeps it on-screen.
3425
+ * Mount (or remount) when a hover session starts so `delay` applies once per hover;
3426
+ * keep the instance mounted while the cursor moves so tracking stays instant.
3626
3427
  */
3627
3428
  "ds-tooltip-data-viz": LocalJSX.IntrinsicElements["ds-tooltip-data-viz"] & JSXBase.HTMLAttributes<HTMLDsTooltipDataVizElement>;
3628
3429
  }