@ds-mo/ui 2.10.4 → 2.11.1

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 (146) hide show
  1. package/dist/.build-stamp +1 -1
  2. package/dist/components/ds-app-shell.js +1 -1
  3. package/dist/components/ds-banner.js +1 -1
  4. package/dist/components/ds-bar-nav.js +1 -1
  5. package/dist/components/ds-button-filled.js +1 -1
  6. package/dist/components/ds-button-unfilled-icon.js +1 -1
  7. package/dist/components/ds-card-data-viz.d.ts +11 -0
  8. package/dist/components/ds-card-data-viz.js +2 -0
  9. package/dist/components/ds-card-data-viz.js.map +1 -0
  10. package/dist/components/ds-card-setting.js +1 -1
  11. package/dist/components/{ds-card.d.ts → ds-chart-bar.d.ts} +4 -4
  12. package/dist/components/ds-chart-bar.js +2 -0
  13. package/dist/components/ds-chart-bar.js.map +1 -0
  14. package/dist/components/ds-chart-donut.d.ts +11 -0
  15. package/dist/components/ds-chart-donut.js +2 -0
  16. package/dist/components/ds-chart-donut.js.map +1 -0
  17. package/dist/components/ds-chart-legend.d.ts +11 -0
  18. package/dist/components/ds-chart-legend.js +2 -0
  19. package/dist/components/ds-chart-legend.js.map +1 -0
  20. package/dist/components/ds-chart-line.d.ts +11 -0
  21. package/dist/components/ds-chart-line.js +2 -0
  22. package/dist/components/ds-chart-line.js.map +1 -0
  23. package/dist/components/ds-checkbox.js +1 -1
  24. package/dist/components/ds-chip.js +1 -1
  25. package/dist/components/ds-divider.js +1 -1
  26. package/dist/components/ds-empty-state.js +1 -1
  27. package/dist/components/ds-empty-state.js.map +1 -1
  28. package/dist/components/ds-fade.js +1 -1
  29. package/dist/components/ds-field.js +1 -1
  30. package/dist/components/ds-header.js +1 -1
  31. package/dist/components/ds-header.js.map +1 -1
  32. package/dist/components/ds-icon.js +1 -1
  33. package/dist/components/ds-input.js +1 -1
  34. package/dist/components/ds-loader.js +1 -1
  35. package/dist/components/ds-menu.js +1 -1
  36. package/dist/components/ds-modal.js +1 -1
  37. package/dist/components/ds-panel-nav.js +1 -1
  38. package/dist/components/ds-panel-tools.js +1 -1
  39. package/dist/components/ds-radio-group.js +1 -1
  40. package/dist/components/ds-scrollbar.js +1 -1
  41. package/dist/components/ds-select.js +1 -1
  42. package/dist/components/ds-shell-gradient-picker.js +1 -1
  43. package/dist/components/ds-shell-gradient-swatch.js +1 -1
  44. package/dist/components/ds-slider.js +1 -1
  45. package/dist/components/ds-surface.js +1 -1
  46. package/dist/components/ds-tab-group-nav.js +1 -1
  47. package/dist/components/ds-tab-group.js +1 -1
  48. package/dist/components/ds-table.js +1 -1
  49. package/dist/components/ds-table.js.map +1 -1
  50. package/dist/components/ds-tag.js +1 -1
  51. package/dist/components/ds-text.js +1 -1
  52. package/dist/components/ds-toast-provider.js +1 -1
  53. package/dist/components/ds-toggle.js +1 -1
  54. package/dist/components/ds-tooltip-data-viz.d.ts +11 -0
  55. package/dist/components/ds-tooltip-data-viz.js +2 -0
  56. package/dist/components/ds-tooltip-data-viz.js.map +1 -0
  57. package/dist/components/ds-tooltip.js +1 -1
  58. package/dist/components/{p-BdP53fjF.js → p-8Nt92j1-.js} +2 -2
  59. package/dist/components/{p-DFAxTEe4.js → p-BMQbEIrQ.js} +2 -2
  60. package/dist/components/{p-Ba1QXRnN.js → p-BSFgy5r6.js} +2 -2
  61. package/dist/components/p-CMv_7vFs.js +2 -0
  62. package/dist/components/p-CMv_7vFs.js.map +1 -0
  63. package/dist/components/{p-CRh-MLwj.js → p-ChVwCVHy.js} +2 -2
  64. package/dist/components/{p-TuuGOzXH.js → p-CpNIQXz6.js} +2 -2
  65. package/dist/components/p-CrCGIx8s.js +2 -0
  66. package/dist/components/p-CrCGIx8s.js.map +1 -0
  67. package/dist/components/{p-BXI096cJ.js → p-CvgHQfvT.js} +2 -2
  68. package/dist/components/p-CzBnvtcz.js +2 -0
  69. package/dist/components/p-CzBnvtcz.js.map +1 -0
  70. package/dist/components/p-DEpLlQZK.js +2 -0
  71. package/dist/components/p-DEpLlQZK.js.map +1 -0
  72. package/dist/components/{p-BGZjpSXm.js → p-DOU4cbpc.js} +2 -2
  73. package/dist/components/p-DdFUTZ3y.js +2 -0
  74. package/dist/components/{p-eOWUz57C.js.map → p-DdFUTZ3y.js.map} +1 -1
  75. package/dist/components/p-bDf6yBQd.js +2 -0
  76. package/dist/components/p-bDf6yBQd.js.map +1 -0
  77. package/dist/lib/nav/index.js +7 -0
  78. package/dist/lib/nav/index.js.map +2 -2
  79. package/dist/lib/utils/format-compact-number.d.ts +2 -0
  80. package/dist/lib/utils/index.d.ts +2 -0
  81. package/dist/lib/utils/index.js +59 -1
  82. package/dist/lib/utils/index.js.map +3 -3
  83. package/dist/lib/utils/token-defaults.d.ts +7 -0
  84. package/dist/lib/utils/truncate-svg-text.d.ts +9 -0
  85. package/dist/types/components/CardDataViz/CardDataViz.d.ts +18 -0
  86. package/dist/types/components/CardDataViz/index.d.ts +2 -0
  87. package/dist/types/components/ChartBar/ChartBar.d.ts +9 -0
  88. package/dist/types/components/ChartBar/index.d.ts +2 -0
  89. package/dist/types/components/ChartDonut/ChartDonut.d.ts +35 -0
  90. package/dist/types/components/ChartDonut/index.d.ts +2 -0
  91. package/dist/types/components/ChartLegend/ChartLegend.d.ts +38 -0
  92. package/dist/types/components/ChartLegend/index.d.ts +3 -0
  93. package/dist/types/components/ChartLine/ChartLine.d.ts +12 -0
  94. package/dist/types/components/ChartLine/index.d.ts +2 -0
  95. package/dist/types/components/TooltipDataViz/TooltipDataViz.d.ts +28 -0
  96. package/dist/types/components/TooltipDataViz/index.d.ts +2 -0
  97. package/dist/types/components.d.ts +470 -23
  98. package/dist/types/utils/chart-colors.d.ts +2 -0
  99. package/dist/types/utils/chart-types.d.ts +23 -0
  100. package/dist/types/utils/format-compact-number.d.ts +3 -0
  101. package/dist/types/utils/index.d.ts +2 -0
  102. package/dist/types/utils/token-defaults.d.ts +7 -0
  103. package/dist/types/utils/truncate-svg-text.d.ts +10 -0
  104. package/package.json +12 -4
  105. package/src/angular/index.ts +7 -2
  106. package/src/angular/proxies.ts +144 -6
  107. package/src/react/components.ts +6 -1
  108. package/src/react/ds-card-data-viz.ts +26 -0
  109. package/src/react/{ds-card.ts → ds-chart-bar.ts} +7 -7
  110. package/src/react/ds-chart-donut.ts +27 -0
  111. package/src/react/ds-chart-legend.ts +33 -0
  112. package/src/react/ds-chart-line.ts +26 -0
  113. package/src/react/ds-tooltip-data-viz.ts +26 -0
  114. package/src/wc/components/CardDataViz/CardDataViz.tsx +67 -0
  115. package/src/wc/components/CardDataViz/index.ts +1 -0
  116. package/src/wc/components/ChartBar/ChartBar.tsx +88 -0
  117. package/src/wc/components/ChartBar/index.ts +1 -0
  118. package/src/wc/components/ChartDonut/ChartDonut.tsx +184 -0
  119. package/src/wc/components/ChartDonut/index.ts +1 -0
  120. package/src/wc/components/ChartLegend/ChartLegend.tsx +114 -0
  121. package/src/wc/components/ChartLegend/index.ts +2 -0
  122. package/src/wc/components/ChartLine/ChartLine.tsx +102 -0
  123. package/src/wc/components/ChartLine/index.ts +1 -0
  124. package/src/wc/components/TooltipDataViz/TooltipDataViz.tsx +82 -0
  125. package/src/wc/components/TooltipDataViz/index.ts +1 -0
  126. package/src/wc/components.d.ts +470 -23
  127. package/src/wc/utils/chart-colors.ts +7 -0
  128. package/src/wc/utils/chart-types.ts +25 -0
  129. package/src/wc/utils/format-compact-number.ts +27 -0
  130. package/src/wc/utils/index.ts +2 -0
  131. package/src/wc/utils/token-defaults.ts +14 -0
  132. package/src/wc/utils/truncate-svg-text.ts +25 -0
  133. package/dist/components/ds-card.js +0 -2
  134. package/dist/components/ds-card.js.map +0 -1
  135. package/dist/components/p-eOWUz57C.js +0 -2
  136. package/dist/components/p-jjfqrXnP.js +0 -2
  137. package/dist/components/p-jjfqrXnP.js.map +0 -1
  138. package/dist/types/components/Card/Card.d.ts +0 -8
  139. package/src/wc/components/Card/Card.tsx +0 -26
  140. /package/dist/components/{p-BdP53fjF.js.map → p-8Nt92j1-.js.map} +0 -0
  141. /package/dist/components/{p-DFAxTEe4.js.map → p-BMQbEIrQ.js.map} +0 -0
  142. /package/dist/components/{p-Ba1QXRnN.js.map → p-BSFgy5r6.js.map} +0 -0
  143. /package/dist/components/{p-CRh-MLwj.js.map → p-ChVwCVHy.js.map} +0 -0
  144. /package/dist/components/{p-TuuGOzXH.js.map → p-CpNIQXz6.js.map} +0 -0
  145. /package/dist/components/{p-BXI096cJ.js.map → p-CvgHQfvT.js.map} +0 -0
  146. /package/dist/components/{p-BGZjpSXm.js.map → p-DOU4cbpc.js.map} +0 -0
@@ -14,8 +14,10 @@ import { BarNavTab } from "./components/BarNav/bar-nav-types";
14
14
  import { BreadcrumbItem } from "./components/Breadcrumb/Breadcrumb";
15
15
  import { ButtonFilledContrast, ButtonFilledIntent } from "./components/ButtonFilled/ButtonFilled";
16
16
  import { ButtonUnfilledIconBackground, ButtonUnfilledIconOnBackgroundContrast } from "./components/ButtonUnfilledIcon/ButtonUnfilledIcon";
17
- import { CardElevation, CardRadius } from "./components/Card/Card";
17
+ import { CardDataVizWidth } from "./components/CardDataViz/CardDataViz";
18
18
  import { CardSettingWidth } from "./components/CardSetting/CardSetting";
19
+ import { ChartDatum, ChartLegendItem, ChartSeries } from "./utils/chart-types";
20
+ import { ChartLegendDirection } from "./components/ChartLegend/ChartLegend";
19
21
  import { ChipBackground, ChipContrast, ChipElevation, ChipIntent, ChipSize } from "./components/Chip/Chip";
20
22
  import { DividerInset, DividerLength, DividerOrientation, DividerSurface } from "./components/Divider/Divider";
21
23
  import { EmptyStateType } from "./components/EmptyState/EmptyState";
@@ -52,8 +54,10 @@ export { BarNavTab } from "./components/BarNav/bar-nav-types";
52
54
  export { BreadcrumbItem } from "./components/Breadcrumb/Breadcrumb";
53
55
  export { ButtonFilledContrast, ButtonFilledIntent } from "./components/ButtonFilled/ButtonFilled";
54
56
  export { ButtonUnfilledIconBackground, ButtonUnfilledIconOnBackgroundContrast } from "./components/ButtonUnfilledIcon/ButtonUnfilledIcon";
55
- export { CardElevation, CardRadius } from "./components/Card/Card";
57
+ export { CardDataVizWidth } from "./components/CardDataViz/CardDataViz";
56
58
  export { CardSettingWidth } from "./components/CardSetting/CardSetting";
59
+ export { ChartDatum, ChartLegendItem, ChartSeries } from "./utils/chart-types";
60
+ export { ChartLegendDirection } from "./components/ChartLegend/ChartLegend";
57
61
  export { ChipBackground, ChipContrast, ChipElevation, ChipIntent, ChipSize } from "./components/Chip/Chip";
58
62
  export { DividerInset, DividerLength, DividerOrientation, DividerSurface } from "./components/Divider/Divider";
59
63
  export { EmptyStateType } from "./components/EmptyState/EmptyState";
@@ -332,15 +336,21 @@ export namespace Components {
332
336
  */
333
337
  "type": 'button' | 'submit' | 'reset';
334
338
  }
335
- interface DsCard {
339
+ /**
340
+ * Copied from CardSetting as a starting scaffold — header edit affordance removed for now
341
+ * (data-viz widgets don't have an obvious "edit" action the way settings fields do); revisit
342
+ * once the data-viz card's real header actions (menu, caption, footer stat) are designed.
343
+ */
344
+ interface DsCardDataViz {
336
345
  /**
337
- * @default 'elevated'
346
+ * Card width token.
347
+ * @default 'md'
338
348
  */
339
- "elevation": CardElevation;
349
+ "cardWidth": CardDataVizWidth;
340
350
  /**
341
- * @default 'lg'
351
+ * Widget heading shown in the card header.
342
352
  */
343
- "radius": CardRadius;
353
+ "heading": string;
344
354
  }
345
355
  interface DsCardSetting {
346
356
  /**
@@ -358,6 +368,112 @@ export namespace Components {
358
368
  */
359
369
  "heading": string;
360
370
  }
371
+ interface DsChartBar {
372
+ /**
373
+ * Bars to render. Set as a JS property (not an HTML attribute).
374
+ * @default []
375
+ */
376
+ "data": ChartDatum[];
377
+ /**
378
+ * @default 240
379
+ */
380
+ "height": number;
381
+ /**
382
+ * @default 480
383
+ */
384
+ "width": number;
385
+ }
386
+ interface DsChartDonut {
387
+ /**
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.
389
+ * @default null
390
+ */
391
+ "activeLabel": string | null;
392
+ /**
393
+ * Secondary caption below the center value (e.g. "Total", "Normal"). Rendered uppercase.
394
+ */
395
+ "centerCaption": string | undefined;
396
+ /**
397
+ * Primary center value; defaults to the sum of `data` values (e.g. "187", "40.9%").
398
+ */
399
+ "centerValue": string | undefined;
400
+ /**
401
+ * Corner radius on each slice — number (px) or TokoMo length. Defaults to `--dimension-radius-025` (2px).
402
+ * @default TOKEN_DEFAULTS.radius025
403
+ */
404
+ "cornerRadius": number | string;
405
+ /**
406
+ * Slices to render. Set as a JS property (not an HTML attribute).
407
+ * @default []
408
+ */
409
+ "data": ChartDatum[];
410
+ /**
411
+ * Gap between slices, in degrees.
412
+ * @default 1
413
+ */
414
+ "gap": number;
415
+ /**
416
+ * @default 175
417
+ */
418
+ "size": number;
419
+ /**
420
+ * Ring thickness — number (px) or TokoMo length. Defaults to `--dimension-size-200` (16px).
421
+ * @default TOKEN_DEFAULTS.size200
422
+ */
423
+ "thickness": number | string;
424
+ }
425
+ /**
426
+ * Base legend for `ds-chart-*` components. Webapp's Overview widgets each style
427
+ * legends differently (list w/ values, compact chips, bare swatches, external
428
+ * stat callouts) — this covers the common "swatch + label + optional value" case.
429
+ * Consumers who need a different treatment skip this component entirely and
430
+ * render their own markup against the same `ChartDatum[]` data.
431
+ */
432
+ interface DsChartLegend {
433
+ /**
434
+ * Externally controlled highlight, matched by `label` — e.g. drive this from a sibling chart's `dsSliceHover` event to keep chart and legend hover in sync. Only dims the other rows' opacity (like a chart dimming its other slices) — it never shows the hover-fill, since that's reserved for a real pointer/keyboard interaction on this row.
435
+ * @default null
436
+ */
437
+ "activeLabel": string | null;
438
+ /**
439
+ * @default 'vertical'
440
+ */
441
+ "direction": ChartLegendDirection;
442
+ /**
443
+ * Legend entries. Set as a JS property (not an HTML attribute).
444
+ * @default []
445
+ */
446
+ "items": ChartLegendItem[];
447
+ /**
448
+ * Show each item's share of the total (of items with a `value`) alongside its count.
449
+ * @default true
450
+ */
451
+ "showPercentage": boolean;
452
+ }
453
+ interface DsChartLine {
454
+ /**
455
+ * X-axis labels — must match each series' `data` length. Set as a JS property.
456
+ * @default []
457
+ */
458
+ "categories": string[];
459
+ /**
460
+ * @default 240
461
+ */
462
+ "height": number;
463
+ /**
464
+ * One or more series to plot. Set as a JS property (not an HTML attribute).
465
+ * @default []
466
+ */
467
+ "series": ChartSeries[];
468
+ /**
469
+ * @default true
470
+ */
471
+ "showPoints": boolean;
472
+ /**
473
+ * @default 480
474
+ */
475
+ "width": number;
476
+ }
361
477
  interface DsCheckbox {
362
478
  /**
363
479
  * @default false
@@ -1062,6 +1178,35 @@ export namespace Components {
1062
1178
  */
1063
1179
  "sideOffset": number | string;
1064
1180
  }
1181
+ /**
1182
+ * Positioned value/label callout for chart hover interactions (donut slice, bar,
1183
+ * line point, ...). Unlike `ds-tooltip`, this doesn't bind to a slotted anchor element —
1184
+ * charts hover-highlight data that lives inside an SVG, so the chart itself computes
1185
+ * the anchor point (e.g. the cursor position while hovering) and passes it in as `x`/`y`.
1186
+ * Renders `position: absolute` — place inside a `position: relative` chart wrapper,
1187
+ * with `x`/`y` as pixel coordinates within that wrapper. Defaults to sitting below-right
1188
+ * of the anchor (matching cursor-following tooltips), flipping to whichever side/edge
1189
+ * keeps it on-screen.
1190
+ */
1191
+ interface DsTooltipDataViz {
1192
+ /**
1193
+ * @default ''
1194
+ */
1195
+ "label": string;
1196
+ /**
1197
+ * @default ''
1198
+ */
1199
+ "value": string | number;
1200
+ /**
1201
+ * Anchor point in px, relative to the nearest `position: relative` ancestor — e.g. the cursor.
1202
+ * @default 0
1203
+ */
1204
+ "x": number;
1205
+ /**
1206
+ * @default 0
1207
+ */
1208
+ "y": number;
1209
+ }
1065
1210
  }
1066
1211
  export interface DsAccordionCustomEvent<T> extends CustomEvent<T> {
1067
1212
  detail: T;
@@ -1091,6 +1236,14 @@ export interface DsCardSettingCustomEvent<T> extends CustomEvent<T> {
1091
1236
  detail: T;
1092
1237
  target: HTMLDsCardSettingElement;
1093
1238
  }
1239
+ export interface DsChartDonutCustomEvent<T> extends CustomEvent<T> {
1240
+ detail: T;
1241
+ target: HTMLDsChartDonutElement;
1242
+ }
1243
+ export interface DsChartLegendCustomEvent<T> extends CustomEvent<T> {
1244
+ detail: T;
1245
+ target: HTMLDsChartLegendElement;
1246
+ }
1094
1247
  export interface DsCheckboxCustomEvent<T> extends CustomEvent<T> {
1095
1248
  detail: T;
1096
1249
  target: HTMLDsCheckboxElement;
@@ -1275,11 +1428,16 @@ declare global {
1275
1428
  prototype: HTMLDsButtonUnfilledIconElement;
1276
1429
  new (): HTMLDsButtonUnfilledIconElement;
1277
1430
  };
1278
- interface HTMLDsCardElement extends Components.DsCard, HTMLStencilElement {
1279
- }
1280
- var HTMLDsCardElement: {
1281
- prototype: HTMLDsCardElement;
1282
- new (): HTMLDsCardElement;
1431
+ /**
1432
+ * Copied from CardSetting as a starting scaffold — header edit affordance removed for now
1433
+ * (data-viz widgets don't have an obvious "edit" action the way settings fields do); revisit
1434
+ * once the data-viz card's real header actions (menu, caption, footer stat) are designed.
1435
+ */
1436
+ interface HTMLDsCardDataVizElement extends Components.DsCardDataViz, HTMLStencilElement {
1437
+ }
1438
+ var HTMLDsCardDataVizElement: {
1439
+ prototype: HTMLDsCardDataVizElement;
1440
+ new (): HTMLDsCardDataVizElement;
1283
1441
  };
1284
1442
  interface HTMLDsCardSettingElementEventMap {
1285
1443
  "dsEditingChange": boolean;
@@ -1298,6 +1456,60 @@ declare global {
1298
1456
  prototype: HTMLDsCardSettingElement;
1299
1457
  new (): HTMLDsCardSettingElement;
1300
1458
  };
1459
+ interface HTMLDsChartBarElement extends Components.DsChartBar, HTMLStencilElement {
1460
+ }
1461
+ var HTMLDsChartBarElement: {
1462
+ prototype: HTMLDsChartBarElement;
1463
+ new (): HTMLDsChartBarElement;
1464
+ };
1465
+ interface HTMLDsChartDonutElementEventMap {
1466
+ "dsSliceHover": ChartDatum | null;
1467
+ }
1468
+ interface HTMLDsChartDonutElement extends Components.DsChartDonut, HTMLStencilElement {
1469
+ addEventListener<K extends keyof HTMLDsChartDonutElementEventMap>(type: K, listener: (this: HTMLDsChartDonutElement, ev: DsChartDonutCustomEvent<HTMLDsChartDonutElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1470
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1471
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1472
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1473
+ removeEventListener<K extends keyof HTMLDsChartDonutElementEventMap>(type: K, listener: (this: HTMLDsChartDonutElement, ev: DsChartDonutCustomEvent<HTMLDsChartDonutElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1474
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1475
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1476
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1477
+ }
1478
+ var HTMLDsChartDonutElement: {
1479
+ prototype: HTMLDsChartDonutElement;
1480
+ new (): HTMLDsChartDonutElement;
1481
+ };
1482
+ interface HTMLDsChartLegendElementEventMap {
1483
+ "dsItemHover": ChartLegendItem | null;
1484
+ "dsItemClick": { item: ChartLegendItem; originalEvent: MouseEvent };
1485
+ }
1486
+ /**
1487
+ * Base legend for `ds-chart-*` components. Webapp's Overview widgets each style
1488
+ * legends differently (list w/ values, compact chips, bare swatches, external
1489
+ * stat callouts) — this covers the common "swatch + label + optional value" case.
1490
+ * Consumers who need a different treatment skip this component entirely and
1491
+ * render their own markup against the same `ChartDatum[]` data.
1492
+ */
1493
+ interface HTMLDsChartLegendElement extends Components.DsChartLegend, HTMLStencilElement {
1494
+ addEventListener<K extends keyof HTMLDsChartLegendElementEventMap>(type: K, listener: (this: HTMLDsChartLegendElement, ev: DsChartLegendCustomEvent<HTMLDsChartLegendElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1495
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1496
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1497
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1498
+ removeEventListener<K extends keyof HTMLDsChartLegendElementEventMap>(type: K, listener: (this: HTMLDsChartLegendElement, ev: DsChartLegendCustomEvent<HTMLDsChartLegendElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1499
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1500
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1501
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1502
+ }
1503
+ var HTMLDsChartLegendElement: {
1504
+ prototype: HTMLDsChartLegendElement;
1505
+ new (): HTMLDsChartLegendElement;
1506
+ };
1507
+ interface HTMLDsChartLineElement extends Components.DsChartLine, HTMLStencilElement {
1508
+ }
1509
+ var HTMLDsChartLineElement: {
1510
+ prototype: HTMLDsChartLineElement;
1511
+ new (): HTMLDsChartLineElement;
1512
+ };
1301
1513
  interface HTMLDsCheckboxElementEventMap {
1302
1514
  "dsChange": boolean;
1303
1515
  }
@@ -1689,6 +1901,22 @@ declare global {
1689
1901
  prototype: HTMLDsTooltipElement;
1690
1902
  new (): HTMLDsTooltipElement;
1691
1903
  };
1904
+ /**
1905
+ * Positioned value/label callout for chart hover interactions (donut slice, bar,
1906
+ * line point, ...). Unlike `ds-tooltip`, this doesn't bind to a slotted anchor element —
1907
+ * charts hover-highlight data that lives inside an SVG, so the chart itself computes
1908
+ * the anchor point (e.g. the cursor position while hovering) and passes it in as `x`/`y`.
1909
+ * Renders `position: absolute` — place inside a `position: relative` chart wrapper,
1910
+ * with `x`/`y` as pixel coordinates within that wrapper. Defaults to sitting below-right
1911
+ * of the anchor (matching cursor-following tooltips), flipping to whichever side/edge
1912
+ * keeps it on-screen.
1913
+ */
1914
+ interface HTMLDsTooltipDataVizElement extends Components.DsTooltipDataViz, HTMLStencilElement {
1915
+ }
1916
+ var HTMLDsTooltipDataVizElement: {
1917
+ prototype: HTMLDsTooltipDataVizElement;
1918
+ new (): HTMLDsTooltipDataVizElement;
1919
+ };
1692
1920
  interface HTMLElementTagNameMap {
1693
1921
  "ds-accordion": HTMLDsAccordionElement;
1694
1922
  "ds-app-shell": HTMLDsAppShellElement;
@@ -1698,8 +1926,12 @@ declare global {
1698
1926
  "ds-breadcrumb": HTMLDsBreadcrumbElement;
1699
1927
  "ds-button-filled": HTMLDsButtonFilledElement;
1700
1928
  "ds-button-unfilled-icon": HTMLDsButtonUnfilledIconElement;
1701
- "ds-card": HTMLDsCardElement;
1929
+ "ds-card-data-viz": HTMLDsCardDataVizElement;
1702
1930
  "ds-card-setting": HTMLDsCardSettingElement;
1931
+ "ds-chart-bar": HTMLDsChartBarElement;
1932
+ "ds-chart-donut": HTMLDsChartDonutElement;
1933
+ "ds-chart-legend": HTMLDsChartLegendElement;
1934
+ "ds-chart-line": HTMLDsChartLineElement;
1703
1935
  "ds-checkbox": HTMLDsCheckboxElement;
1704
1936
  "ds-chip": HTMLDsChipElement;
1705
1937
  "ds-divider": HTMLDsDividerElement;
@@ -1731,6 +1963,7 @@ declare global {
1731
1963
  "ds-toast-provider": HTMLDsToastProviderElement;
1732
1964
  "ds-toggle": HTMLDsToggleElement;
1733
1965
  "ds-tooltip": HTMLDsTooltipElement;
1966
+ "ds-tooltip-data-viz": HTMLDsTooltipDataVizElement;
1734
1967
  }
1735
1968
  }
1736
1969
  declare namespace LocalJSX {
@@ -1994,15 +2227,21 @@ declare namespace LocalJSX {
1994
2227
  */
1995
2228
  "type"?: 'button' | 'submit' | 'reset';
1996
2229
  }
1997
- interface DsCard {
2230
+ /**
2231
+ * Copied from CardSetting as a starting scaffold — header edit affordance removed for now
2232
+ * (data-viz widgets don't have an obvious "edit" action the way settings fields do); revisit
2233
+ * once the data-viz card's real header actions (menu, caption, footer stat) are designed.
2234
+ */
2235
+ interface DsCardDataViz {
1998
2236
  /**
1999
- * @default 'elevated'
2237
+ * Card width token.
2238
+ * @default 'md'
2000
2239
  */
2001
- "elevation"?: CardElevation;
2240
+ "cardWidth"?: CardDataVizWidth;
2002
2241
  /**
2003
- * @default 'lg'
2242
+ * Widget heading shown in the card header.
2004
2243
  */
2005
- "radius"?: CardRadius;
2244
+ "heading": string;
2006
2245
  }
2007
2246
  interface DsCardSetting {
2008
2247
  /**
@@ -2024,6 +2263,124 @@ declare namespace LocalJSX {
2024
2263
  */
2025
2264
  "onDsEditingChange"?: (event: DsCardSettingCustomEvent<boolean>) => void;
2026
2265
  }
2266
+ interface DsChartBar {
2267
+ /**
2268
+ * Bars to render. Set as a JS property (not an HTML attribute).
2269
+ * @default []
2270
+ */
2271
+ "data"?: ChartDatum[];
2272
+ /**
2273
+ * @default 240
2274
+ */
2275
+ "height"?: number;
2276
+ /**
2277
+ * @default 480
2278
+ */
2279
+ "width"?: number;
2280
+ }
2281
+ interface DsChartDonut {
2282
+ /**
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.
2284
+ * @default null
2285
+ */
2286
+ "activeLabel"?: string | null;
2287
+ /**
2288
+ * Secondary caption below the center value (e.g. "Total", "Normal"). Rendered uppercase.
2289
+ */
2290
+ "centerCaption"?: string | undefined;
2291
+ /**
2292
+ * Primary center value; defaults to the sum of `data` values (e.g. "187", "40.9%").
2293
+ */
2294
+ "centerValue"?: string | undefined;
2295
+ /**
2296
+ * Corner radius on each slice — number (px) or TokoMo length. Defaults to `--dimension-radius-025` (2px).
2297
+ * @default TOKEN_DEFAULTS.radius025
2298
+ */
2299
+ "cornerRadius"?: number | string;
2300
+ /**
2301
+ * Slices to render. Set as a JS property (not an HTML attribute).
2302
+ * @default []
2303
+ */
2304
+ "data"?: ChartDatum[];
2305
+ /**
2306
+ * Gap between slices, in degrees.
2307
+ * @default 1
2308
+ */
2309
+ "gap"?: number;
2310
+ /**
2311
+ * Fires with the hovered/focused slice's datum, or `null` on leave/blur.
2312
+ */
2313
+ "onDsSliceHover"?: (event: DsChartDonutCustomEvent<ChartDatum | null>) => void;
2314
+ /**
2315
+ * @default 175
2316
+ */
2317
+ "size"?: number;
2318
+ /**
2319
+ * Ring thickness — number (px) or TokoMo length. Defaults to `--dimension-size-200` (16px).
2320
+ * @default TOKEN_DEFAULTS.size200
2321
+ */
2322
+ "thickness"?: number | string;
2323
+ }
2324
+ /**
2325
+ * Base legend for `ds-chart-*` components. Webapp's Overview widgets each style
2326
+ * legends differently (list w/ values, compact chips, bare swatches, external
2327
+ * stat callouts) — this covers the common "swatch + label + optional value" case.
2328
+ * Consumers who need a different treatment skip this component entirely and
2329
+ * render their own markup against the same `ChartDatum[]` data.
2330
+ */
2331
+ interface DsChartLegend {
2332
+ /**
2333
+ * Externally controlled highlight, matched by `label` — e.g. drive this from a sibling chart's `dsSliceHover` event to keep chart and legend hover in sync. Only dims the other rows' opacity (like a chart dimming its other slices) — it never shows the hover-fill, since that's reserved for a real pointer/keyboard interaction on this row.
2334
+ * @default null
2335
+ */
2336
+ "activeLabel"?: string | null;
2337
+ /**
2338
+ * @default 'vertical'
2339
+ */
2340
+ "direction"?: ChartLegendDirection;
2341
+ /**
2342
+ * Legend entries. Set as a JS property (not an HTML attribute).
2343
+ * @default []
2344
+ */
2345
+ "items"?: ChartLegendItem[];
2346
+ /**
2347
+ * Fires when a deep-linkable row (`item.href` set) is activated.
2348
+ */
2349
+ "onDsItemClick"?: (event: DsChartLegendCustomEvent<{ item: ChartLegendItem; originalEvent: MouseEvent }>) => void;
2350
+ /**
2351
+ * Fires on row hover/focus with the item, or `null` on leave/blur.
2352
+ */
2353
+ "onDsItemHover"?: (event: DsChartLegendCustomEvent<ChartLegendItem | null>) => void;
2354
+ /**
2355
+ * Show each item's share of the total (of items with a `value`) alongside its count.
2356
+ * @default true
2357
+ */
2358
+ "showPercentage"?: boolean;
2359
+ }
2360
+ interface DsChartLine {
2361
+ /**
2362
+ * X-axis labels — must match each series' `data` length. Set as a JS property.
2363
+ * @default []
2364
+ */
2365
+ "categories"?: string[];
2366
+ /**
2367
+ * @default 240
2368
+ */
2369
+ "height"?: number;
2370
+ /**
2371
+ * One or more series to plot. Set as a JS property (not an HTML attribute).
2372
+ * @default []
2373
+ */
2374
+ "series"?: ChartSeries[];
2375
+ /**
2376
+ * @default true
2377
+ */
2378
+ "showPoints"?: boolean;
2379
+ /**
2380
+ * @default 480
2381
+ */
2382
+ "width"?: number;
2383
+ }
2027
2384
  interface DsCheckbox {
2028
2385
  /**
2029
2386
  * @default false
@@ -2786,6 +3143,35 @@ declare namespace LocalJSX {
2786
3143
  */
2787
3144
  "sideOffset"?: number | string;
2788
3145
  }
3146
+ /**
3147
+ * Positioned value/label callout for chart hover interactions (donut slice, bar,
3148
+ * line point, ...). Unlike `ds-tooltip`, this doesn't bind to a slotted anchor element —
3149
+ * charts hover-highlight data that lives inside an SVG, so the chart itself computes
3150
+ * the anchor point (e.g. the cursor position while hovering) and passes it in as `x`/`y`.
3151
+ * Renders `position: absolute` — place inside a `position: relative` chart wrapper,
3152
+ * with `x`/`y` as pixel coordinates within that wrapper. Defaults to sitting below-right
3153
+ * of the anchor (matching cursor-following tooltips), flipping to whichever side/edge
3154
+ * keeps it on-screen.
3155
+ */
3156
+ interface DsTooltipDataViz {
3157
+ /**
3158
+ * @default ''
3159
+ */
3160
+ "label"?: string;
3161
+ /**
3162
+ * @default ''
3163
+ */
3164
+ "value"?: string | number;
3165
+ /**
3166
+ * Anchor point in px, relative to the nearest `position: relative` ancestor — e.g. the cursor.
3167
+ * @default 0
3168
+ */
3169
+ "x"?: number;
3170
+ /**
3171
+ * @default 0
3172
+ */
3173
+ "y"?: number;
3174
+ }
2789
3175
 
2790
3176
  interface DsAccordionAttributes {
2791
3177
  "multiple": boolean;
@@ -2853,15 +3239,38 @@ declare namespace LocalJSX {
2853
3239
  "pressed": boolean | undefined;
2854
3240
  "focusTabIndex": number;
2855
3241
  }
2856
- interface DsCardAttributes {
2857
- "elevation": CardElevation;
2858
- "radius": CardRadius;
3242
+ interface DsCardDataVizAttributes {
3243
+ "heading": string;
3244
+ "cardWidth": CardDataVizWidth;
2859
3245
  }
2860
3246
  interface DsCardSettingAttributes {
2861
3247
  "heading": string;
2862
3248
  "cardWidth": CardSettingWidth;
2863
3249
  "editing": boolean;
2864
3250
  }
3251
+ interface DsChartBarAttributes {
3252
+ "width": number;
3253
+ "height": number;
3254
+ }
3255
+ interface DsChartDonutAttributes {
3256
+ "size": number;
3257
+ "thickness": string;
3258
+ "cornerRadius": string;
3259
+ "gap": number;
3260
+ "centerValue": string | undefined;
3261
+ "centerCaption": string | undefined;
3262
+ "activeLabel": string | null;
3263
+ }
3264
+ interface DsChartLegendAttributes {
3265
+ "direction": ChartLegendDirection;
3266
+ "showPercentage": boolean;
3267
+ "activeLabel": string | null;
3268
+ }
3269
+ interface DsChartLineAttributes {
3270
+ "width": number;
3271
+ "height": number;
3272
+ "showPoints": boolean;
3273
+ }
2865
3274
  interface DsCheckboxAttributes {
2866
3275
  "label": string;
2867
3276
  "checked": boolean;
@@ -3088,6 +3497,12 @@ declare namespace LocalJSX {
3088
3497
  "shortcutKey": string | undefined;
3089
3498
  "shortcutKeyPosition": 'start' | 'end';
3090
3499
  }
3500
+ interface DsTooltipDataVizAttributes {
3501
+ "value": string;
3502
+ "label": string;
3503
+ "x": number;
3504
+ "y": number;
3505
+ }
3091
3506
 
3092
3507
  interface IntrinsicElements {
3093
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] };
@@ -3098,8 +3513,12 @@ declare namespace LocalJSX {
3098
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] };
3099
3514
  "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] };
3100
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] };
3101
- "ds-card": Omit<DsCard, keyof DsCardAttributes> & { [K in keyof DsCard & keyof DsCardAttributes]?: DsCard[K] } & { [K in keyof DsCard & keyof DsCardAttributes as `attr:${K}`]?: DsCardAttributes[K] } & { [K in keyof DsCard & keyof DsCardAttributes as `prop:${K}`]?: DsCard[K] };
3516
+ "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"]>;
3102
3517
  "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
+ "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] };
3519
+ "ds-chart-donut": Omit<DsChartDonut, keyof DsChartDonutAttributes> & { [K in keyof DsChartDonut & keyof DsChartDonutAttributes]?: DsChartDonut[K] } & { [K in keyof DsChartDonut & keyof DsChartDonutAttributes as `attr:${K}`]?: DsChartDonutAttributes[K] } & { [K in keyof DsChartDonut & keyof DsChartDonutAttributes as `prop:${K}`]?: DsChartDonut[K] };
3520
+ "ds-chart-legend": Omit<DsChartLegend, keyof DsChartLegendAttributes> & { [K in keyof DsChartLegend & keyof DsChartLegendAttributes]?: DsChartLegend[K] } & { [K in keyof DsChartLegend & keyof DsChartLegendAttributes as `attr:${K}`]?: DsChartLegendAttributes[K] } & { [K in keyof DsChartLegend & keyof DsChartLegendAttributes as `prop:${K}`]?: DsChartLegend[K] };
3521
+ "ds-chart-line": Omit<DsChartLine, keyof DsChartLineAttributes> & { [K in keyof DsChartLine & keyof DsChartLineAttributes]?: DsChartLine[K] } & { [K in keyof DsChartLine & keyof DsChartLineAttributes as `attr:${K}`]?: DsChartLineAttributes[K] } & { [K in keyof DsChartLine & keyof DsChartLineAttributes as `prop:${K}`]?: DsChartLine[K] };
3103
3522
  "ds-checkbox": Omit<DsCheckbox, keyof DsCheckboxAttributes> & { [K in keyof DsCheckbox & keyof DsCheckboxAttributes]?: DsCheckbox[K] } & { [K in keyof DsCheckbox & keyof DsCheckboxAttributes as `attr:${K}`]?: DsCheckboxAttributes[K] } & { [K in keyof DsCheckbox & keyof DsCheckboxAttributes as `prop:${K}`]?: DsCheckbox[K] } & OneOf<"label", DsCheckbox["label"], DsCheckboxAttributes["label"]>;
3104
3523
  "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"]>;
3105
3524
  "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] };
@@ -3131,6 +3550,7 @@ declare namespace LocalJSX {
3131
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] };
3132
3551
  "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] };
3133
3552
  "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
+ "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] };
3134
3554
  }
3135
3555
  }
3136
3556
  export { LocalJSX as JSX };
@@ -3145,8 +3565,24 @@ declare module "@stencil/core" {
3145
3565
  "ds-breadcrumb": LocalJSX.IntrinsicElements["ds-breadcrumb"] & JSXBase.HTMLAttributes<HTMLDsBreadcrumbElement>;
3146
3566
  "ds-button-filled": LocalJSX.IntrinsicElements["ds-button-filled"] & JSXBase.HTMLAttributes<HTMLDsButtonFilledElement>;
3147
3567
  "ds-button-unfilled-icon": LocalJSX.IntrinsicElements["ds-button-unfilled-icon"] & JSXBase.HTMLAttributes<HTMLDsButtonUnfilledIconElement>;
3148
- "ds-card": LocalJSX.IntrinsicElements["ds-card"] & JSXBase.HTMLAttributes<HTMLDsCardElement>;
3568
+ /**
3569
+ * Copied from CardSetting as a starting scaffold — header edit affordance removed for now
3570
+ * (data-viz widgets don't have an obvious "edit" action the way settings fields do); revisit
3571
+ * once the data-viz card's real header actions (menu, caption, footer stat) are designed.
3572
+ */
3573
+ "ds-card-data-viz": LocalJSX.IntrinsicElements["ds-card-data-viz"] & JSXBase.HTMLAttributes<HTMLDsCardDataVizElement>;
3149
3574
  "ds-card-setting": LocalJSX.IntrinsicElements["ds-card-setting"] & JSXBase.HTMLAttributes<HTMLDsCardSettingElement>;
3575
+ "ds-chart-bar": LocalJSX.IntrinsicElements["ds-chart-bar"] & JSXBase.HTMLAttributes<HTMLDsChartBarElement>;
3576
+ "ds-chart-donut": LocalJSX.IntrinsicElements["ds-chart-donut"] & JSXBase.HTMLAttributes<HTMLDsChartDonutElement>;
3577
+ /**
3578
+ * Base legend for `ds-chart-*` components. Webapp's Overview widgets each style
3579
+ * legends differently (list w/ values, compact chips, bare swatches, external
3580
+ * stat callouts) — this covers the common "swatch + label + optional value" case.
3581
+ * Consumers who need a different treatment skip this component entirely and
3582
+ * render their own markup against the same `ChartDatum[]` data.
3583
+ */
3584
+ "ds-chart-legend": LocalJSX.IntrinsicElements["ds-chart-legend"] & JSXBase.HTMLAttributes<HTMLDsChartLegendElement>;
3585
+ "ds-chart-line": LocalJSX.IntrinsicElements["ds-chart-line"] & JSXBase.HTMLAttributes<HTMLDsChartLineElement>;
3150
3586
  "ds-checkbox": LocalJSX.IntrinsicElements["ds-checkbox"] & JSXBase.HTMLAttributes<HTMLDsCheckboxElement>;
3151
3587
  "ds-chip": LocalJSX.IntrinsicElements["ds-chip"] & JSXBase.HTMLAttributes<HTMLDsChipElement>;
3152
3588
  "ds-divider": LocalJSX.IntrinsicElements["ds-divider"] & JSXBase.HTMLAttributes<HTMLDsDividerElement>;
@@ -3178,6 +3614,17 @@ declare module "@stencil/core" {
3178
3614
  "ds-toast-provider": LocalJSX.IntrinsicElements["ds-toast-provider"] & JSXBase.HTMLAttributes<HTMLDsToastProviderElement>;
3179
3615
  "ds-toggle": LocalJSX.IntrinsicElements["ds-toggle"] & JSXBase.HTMLAttributes<HTMLDsToggleElement>;
3180
3616
  "ds-tooltip": LocalJSX.IntrinsicElements["ds-tooltip"] & JSXBase.HTMLAttributes<HTMLDsTooltipElement>;
3617
+ /**
3618
+ * Positioned value/label callout for chart hover interactions (donut slice, bar,
3619
+ * line point, ...). Unlike `ds-tooltip`, this doesn't bind to a slotted anchor element —
3620
+ * charts hover-highlight data that lives inside an SVG, so the chart itself computes
3621
+ * the anchor point (e.g. the cursor position while hovering) and passes it in as `x`/`y`.
3622
+ * Renders `position: absolute` — place inside a `position: relative` chart wrapper,
3623
+ * with `x`/`y` as pixel coordinates within that wrapper. Defaults to sitting below-right
3624
+ * of the anchor (matching cursor-following tooltips), flipping to whichever side/edge
3625
+ * keeps it on-screen.
3626
+ */
3627
+ "ds-tooltip-data-viz": LocalJSX.IntrinsicElements["ds-tooltip-data-viz"] & JSXBase.HTMLAttributes<HTMLDsTooltipDataVizElement>;
3181
3628
  }
3182
3629
  }
3183
3630
  }
@@ -0,0 +1,2 @@
1
+ export declare function categoryColor(index: number): string;
2
+ //# sourceMappingURL=chart-colors.d.ts.map