@ds-mo/ui 13.11.0 → 13.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 (120) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +6 -3
  3. package/dist/agent.json +306 -16
  4. package/dist/angular/ds-mobile-header.d.ts +1 -1
  5. package/dist/angular/ds-mobile-header.js +3 -3
  6. package/dist/angular/ds-shell-page.d.ts +1 -1
  7. package/dist/angular/ds-shell-page.js +3 -3
  8. package/dist/angular/ds-tab-group.d.ts +1 -1
  9. package/dist/angular/ds-tab-group.js +3 -3
  10. package/dist/angular/ds-table.d.ts +28 -0
  11. package/dist/angular/ds-table.js +54 -0
  12. package/dist/angular/ds-tag.d.ts +1 -1
  13. package/dist/angular/ds-tag.js +3 -3
  14. package/dist/angular/index.d.ts +1 -1
  15. package/dist/angular/index.js +1 -0
  16. package/dist/angular/proxies.d.ts +1 -0
  17. package/dist/angular/proxies.js +1 -0
  18. package/dist/components/ds-bar-nav.js +1 -1
  19. package/dist/components/ds-bar-title.js +1 -1
  20. package/dist/components/ds-bar-workflow.js +1 -1
  21. package/dist/components/ds-bar-workflow.js.map +1 -1
  22. package/dist/components/ds-card-overview.js +1 -1
  23. package/dist/components/ds-menu.js +1 -1
  24. package/dist/components/ds-mobile-header.js +1 -1
  25. package/dist/components/ds-mobile-section-switcher.js +1 -1
  26. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  27. package/dist/components/ds-modal.js +1 -1
  28. package/dist/components/ds-panel-sub-nav.js +1 -1
  29. package/dist/components/ds-radio.js +1 -1
  30. package/dist/components/ds-scroll-overlay.js +1 -1
  31. package/dist/components/ds-scroll-overlay.js.map +1 -1
  32. package/dist/components/ds-select.js +1 -1
  33. package/dist/components/ds-shell-app.js +1 -1
  34. package/dist/components/ds-shell-app.js.map +1 -1
  35. package/dist/components/ds-shell-page.js +1 -1
  36. package/dist/components/ds-shell-tools.js +1 -1
  37. package/dist/components/ds-skeleton.js +1 -1
  38. package/dist/components/ds-slider.js +1 -1
  39. package/dist/components/ds-switch.js +1 -1
  40. package/dist/components/ds-tab-group.js +1 -1
  41. package/dist/components/ds-table.d.ts +11 -0
  42. package/dist/components/ds-table.js +2 -0
  43. package/dist/components/ds-table.js.map +1 -0
  44. package/dist/components/ds-tag.js +1 -1
  45. package/dist/components/ds-tag.js.map +1 -1
  46. package/dist/components/ds-toast.js +1 -1
  47. package/dist/components/ds-typing-indicator.js +1 -1
  48. package/dist/components/index.d.ts +30 -0
  49. package/dist/components/p-BFXN4ioL.js +2 -0
  50. package/dist/components/p-BFXN4ioL.js.map +1 -0
  51. package/dist/components/{p-DgglLVCj.js → p-BYre-ZDg.js} +2 -2
  52. package/dist/components/p-B_eqa09C.js +2 -0
  53. package/dist/components/p-B_eqa09C.js.map +1 -0
  54. package/dist/components/{p-BnGJrBPG.js → p-Bj7KrXzw.js} +2 -2
  55. package/dist/components/p-BxJurXEn.js +2 -0
  56. package/dist/components/p-BxJurXEn.js.map +1 -0
  57. package/dist/components/{p-Dg9qiMDa.js → p-C9StMCWg.js} +2 -2
  58. package/dist/components/p-CE82aQZr.js +2 -0
  59. package/dist/components/p-CE82aQZr.js.map +1 -0
  60. package/dist/components/p-CFNG0K3m.js +2 -0
  61. package/dist/components/p-CFNG0K3m.js.map +1 -0
  62. package/dist/components/{p-BQ7Nzx9A.js → p-Ch5yT3UA.js} +2 -2
  63. package/dist/components/{p-DJGdoPMG.js → p-DKftz0O8.js} +2 -2
  64. package/dist/components/p-DxygUurH.js +2 -0
  65. package/dist/components/p-DxygUurH.js.map +1 -0
  66. package/dist/components/{p-DCN04sgt.js → p-x9jO4lZ7.js} +2 -2
  67. package/dist/components/{p-DCN04sgt.js.map → p-x9jO4lZ7.js.map} +1 -1
  68. package/dist/docs/components.json +1567 -74
  69. package/dist/lib/components/MobileHeader/mobile-header-types.d.ts +3 -2
  70. package/dist/lib/components/ShellApp/shell-app-types.d.ts +4 -1
  71. package/dist/lib/components/ShellPage/shell-page-types.d.ts +5 -0
  72. package/dist/lib/shell/index.d.ts +1 -0
  73. package/dist/mcp-data/registry/bar-title.json +2 -1
  74. package/dist/mcp-data/registry/card-overview.json +1 -1
  75. package/dist/mcp-data/registry/mobile-header.json +48 -10
  76. package/dist/mcp-data/registry/mobile-sheet-nav.json +2 -2
  77. package/dist/mcp-data/registry/registry.json +308 -15
  78. package/dist/mcp-data/registry/shell-app.json +6 -3
  79. package/dist/mcp-data/registry/shell-page.json +32 -8
  80. package/dist/mcp-data/registry/shell-tools.json +4 -4
  81. package/dist/mcp-data/registry/tab-group.json +22 -2
  82. package/dist/mcp-data/registry/table.json +758 -0
  83. package/dist/mcp-data/registry/tag.json +22 -3
  84. package/dist/react/components.d.ts +1 -0
  85. package/dist/react/components.js +1 -0
  86. package/dist/react/ds-table.d.ts +16 -0
  87. package/dist/react/ds-table.js +18 -0
  88. package/dist/styles/table.css +677 -0
  89. package/dist/types/components/MobileHeader/MobileHeader.d.ts +8 -3
  90. package/dist/types/components/MobileHeader/index.d.ts +1 -1
  91. package/dist/types/components/MobileHeader/mobile-header-types.d.ts +3 -2
  92. package/dist/types/components/ShellApp/ShellApp.d.ts +8 -0
  93. package/dist/types/components/ShellApp/shell-app-types.d.ts +4 -1
  94. package/dist/types/components/ShellPage/ShellPage.d.ts +3 -1
  95. package/dist/types/components/ShellPage/index.d.ts +1 -1
  96. package/dist/types/components/ShellPage/shell-page-types.d.ts +1 -0
  97. package/dist/types/components/TabGroup/TabGroup.d.ts +3 -0
  98. package/dist/types/components/Table/Table.d.ts +115 -0
  99. package/dist/types/components/Table/index.d.ts +2 -0
  100. package/dist/types/components/Table/table-model.d.ts +29 -0
  101. package/dist/types/components/Table/table-types.d.ts +178 -0
  102. package/dist/types/components/Tag/Tag.d.ts +2 -0
  103. package/dist/types/components.d.ts +406 -8
  104. package/dist/types/shell/index.d.ts +1 -0
  105. package/package.json +3 -2
  106. package/dist/components/p-B_nHX-BW.js +0 -2
  107. package/dist/components/p-B_nHX-BW.js.map +0 -1
  108. package/dist/components/p-CVmtbj-6.js +0 -2
  109. package/dist/components/p-CVmtbj-6.js.map +0 -1
  110. package/dist/components/p-DW9p068S.js +0 -2
  111. package/dist/components/p-DW9p068S.js.map +0 -1
  112. package/dist/components/p-Xftomzsv.js +0 -2
  113. package/dist/components/p-Xftomzsv.js.map +0 -1
  114. package/dist/components/p-iyiOFsws.js +0 -2
  115. package/dist/components/p-iyiOFsws.js.map +0 -1
  116. /package/dist/components/{p-DgglLVCj.js.map → p-BYre-ZDg.js.map} +0 -0
  117. /package/dist/components/{p-BnGJrBPG.js.map → p-Bj7KrXzw.js.map} +0 -0
  118. /package/dist/components/{p-Dg9qiMDa.js.map → p-C9StMCWg.js.map} +0 -0
  119. /package/dist/components/{p-BQ7Nzx9A.js.map → p-Ch5yT3UA.js.map} +0 -0
  120. /package/dist/components/{p-DJGdoPMG.js.map → p-DKftz0O8.js.map} +0 -0
@@ -40,8 +40,9 @@ import { MessageBubbleVariant } from "./components/MessageBubble/MessageBubble";
40
40
  import { ButtonFilledIntent as ButtonFilledIntent1 } from "./components/ButtonFilled/ButtonFilled";
41
41
  import { PanelNavGroup, PanelNavItem, PanelNavRouterMode, PanelNavUserActionDetail } from "./components/PanelNav/panel-nav-types";
42
42
  import { MobileBarNavDestinationDetail } from "./components/MobileBarNav/mobile-bar-nav-types";
43
- import { MobileHeaderHeadingLevel, MobileHeaderTone } from "./components/MobileHeader/mobile-header-types";
43
+ import { MobileHeaderHeadingLevel, MobileHeaderSectionsPresentation, MobileHeaderTone } from "./components/MobileHeader/mobile-header-types";
44
44
  import { TabGroupItem, TabItem } from "./components/TabGroup/tab-item-utils";
45
+ import { TabGroupSize } from "./components/TabGroup/TabGroup";
45
46
  import { ModalCloseDetail, ModalWidth } from "./components/Modal/Modal";
46
47
  import { ChromeTransitionDetail } from "./shell/chrome-transition";
47
48
  import { PanelSubNavItem } from "./components/PanelSubNav/panel-sub-nav-types";
@@ -52,14 +53,15 @@ import { ScrollOverlayScrollDetail } from "./components/ScrollOverlay/ScrollOver
52
53
  import { SelectBackground, SelectOption, SelectSection, SelectSize, SelectValue, SelectWidth } from "./components/Select/Select";
53
54
  import { ShellAppComposition, ShellNavigationConfig, ShellPageChromeConfig, ShellToolsConfig } from "./components/ShellApp/shell-app-types";
54
55
  import { ShellGradientPreset } from "./shell/shell-gradient-presets";
55
- import { ShellPageCapacity, ShellPageContentInset, ShellPageHeaderPresentation } from "./components/ShellPage/shell-page-types";
56
+ import { ShellPageCapacity, ShellPageContentInset, ShellPageContentSurface, ShellPageHeaderPresentation } from "./components/ShellPage/shell-page-types";
56
57
  import { SkeletonBackground, SkeletonVariant } from "./components/Skeleton/Skeleton";
57
58
  import { LineTruncation, TextAlign, TextColor, TextDecoration, TextElement, TextFontFeature, TextVariant, TextWrap } from "./components/Text/text-types";
58
59
  import { ControlSize } from "./utils/control-text";
59
60
  import { SliderOrientation, SliderSize, SliderThumbAlignment, SliderValue } from "./components/Slider/Slider";
60
61
  import { SwatchPickerOption, SwatchPickerSection } from "./components/SwatchPicker/swatch-picker-types";
61
62
  import { SwitchSize } from "./components/Switch/Switch";
62
- import { TabBackground } from "./components/TabGroup/TabGroup";
63
+ import { TabBackground, TabGroupSize as TabGroupSize1 } from "./components/TabGroup/TabGroup";
64
+ import { TableCaptionVisibility, TableCellActionDetail, TableColumn, TableGroup, TableGroupingChangeDetail, TableGroupingState, TableLoadMoreDetail, TableLoadMoreMode, TableRow, TableSelectionChangeDetail, TableSelectionMode, TableSortChangeDetail, TableSortState } from "./components/Table/table-types";
63
65
  import { TagContrast, TagIntent, TagSize } from "./components/Tag/Tag";
64
66
  import { ToastActionEventDetail, ToastCloseEventDetail, ToastEventDetail, ToastManager, ToastSwipeDirection } from "./toast";
65
67
  import { TooltipAlign, TooltipSide, TooltipSize } from "./components/Tooltip/Tooltip";
@@ -99,8 +101,9 @@ export { MessageBubbleVariant } from "./components/MessageBubble/MessageBubble";
99
101
  export { ButtonFilledIntent as ButtonFilledIntent1 } from "./components/ButtonFilled/ButtonFilled";
100
102
  export { PanelNavGroup, PanelNavItem, PanelNavRouterMode, PanelNavUserActionDetail } from "./components/PanelNav/panel-nav-types";
101
103
  export { MobileBarNavDestinationDetail } from "./components/MobileBarNav/mobile-bar-nav-types";
102
- export { MobileHeaderHeadingLevel, MobileHeaderTone } from "./components/MobileHeader/mobile-header-types";
104
+ export { MobileHeaderHeadingLevel, MobileHeaderSectionsPresentation, MobileHeaderTone } from "./components/MobileHeader/mobile-header-types";
103
105
  export { TabGroupItem, TabItem } from "./components/TabGroup/tab-item-utils";
106
+ export { TabGroupSize } from "./components/TabGroup/TabGroup";
104
107
  export { ModalCloseDetail, ModalWidth } from "./components/Modal/Modal";
105
108
  export { ChromeTransitionDetail } from "./shell/chrome-transition";
106
109
  export { PanelSubNavItem } from "./components/PanelSubNav/panel-sub-nav-types";
@@ -111,14 +114,15 @@ export { ScrollOverlayScrollDetail } from "./components/ScrollOverlay/ScrollOver
111
114
  export { SelectBackground, SelectOption, SelectSection, SelectSize, SelectValue, SelectWidth } from "./components/Select/Select";
112
115
  export { ShellAppComposition, ShellNavigationConfig, ShellPageChromeConfig, ShellToolsConfig } from "./components/ShellApp/shell-app-types";
113
116
  export { ShellGradientPreset } from "./shell/shell-gradient-presets";
114
- export { ShellPageCapacity, ShellPageContentInset, ShellPageHeaderPresentation } from "./components/ShellPage/shell-page-types";
117
+ export { ShellPageCapacity, ShellPageContentInset, ShellPageContentSurface, ShellPageHeaderPresentation } from "./components/ShellPage/shell-page-types";
115
118
  export { SkeletonBackground, SkeletonVariant } from "./components/Skeleton/Skeleton";
116
119
  export { LineTruncation, TextAlign, TextColor, TextDecoration, TextElement, TextFontFeature, TextVariant, TextWrap } from "./components/Text/text-types";
117
120
  export { ControlSize } from "./utils/control-text";
118
121
  export { SliderOrientation, SliderSize, SliderThumbAlignment, SliderValue } from "./components/Slider/Slider";
119
122
  export { SwatchPickerOption, SwatchPickerSection } from "./components/SwatchPicker/swatch-picker-types";
120
123
  export { SwitchSize } from "./components/Switch/Switch";
121
- export { TabBackground } from "./components/TabGroup/TabGroup";
124
+ export { TabBackground, TabGroupSize as TabGroupSize1 } from "./components/TabGroup/TabGroup";
125
+ export { TableCaptionVisibility, TableCellActionDetail, TableColumn, TableGroup, TableGroupingChangeDetail, TableGroupingState, TableLoadMoreDetail, TableLoadMoreMode, TableRow, TableSelectionChangeDetail, TableSelectionMode, TableSortChangeDetail, TableSortState } from "./components/Table/table-types";
122
126
  export { TagContrast, TagIntent, TagSize } from "./components/Tag/Tag";
123
127
  export { ToastActionEventDetail, ToastCloseEventDetail, ToastEventDetail, ToastManager, ToastSwipeDirection } from "./toast";
124
128
  export { TooltipAlign, TooltipSide, TooltipSize } from "./components/Tooltip/Tooltip";
@@ -1462,12 +1466,22 @@ export namespace Components {
1462
1466
  * Controlled peer sections. Their selected label replaces the static title.
1463
1467
  * @default []
1464
1468
  */
1465
- "sections": TabItem[];
1469
+ "sections": TabGroupItem[];
1466
1470
  /**
1467
1471
  * Accessible name for the section chooser.
1468
1472
  * @default 'Change page section'
1469
1473
  */
1470
1474
  "sectionsAriaLabel": string;
1475
+ /**
1476
+ * Popup switcher or an inline segmented TabGroup for peer sections.
1477
+ * @default 'switcher'
1478
+ */
1479
+ "sectionsPresentation": MobileHeaderSectionsPresentation;
1480
+ /**
1481
+ * Density for the segmented sections presentation.
1482
+ * @default 'md'
1483
+ */
1484
+ "sectionsSize": TabGroupSize;
1471
1485
  /**
1472
1486
  * Controlled child sections within the selected page or detail screen.
1473
1487
  * @default []
@@ -2156,6 +2170,11 @@ export namespace Components {
2156
2170
  * @default 'default'
2157
2171
  */
2158
2172
  "contentInset": ShellPageContentInset;
2173
+ /**
2174
+ * Canvas surface painted around and beneath routed page content.
2175
+ * @default 'primary'
2176
+ */
2177
+ "contentSurface": ShellPageContentSurface;
2159
2178
  /**
2160
2179
  * Available page-header capacity supplied by the owning application shell.
2161
2180
  */
@@ -2470,6 +2489,11 @@ export namespace Components {
2470
2489
  "ariaLabel": string | null;
2471
2490
  "ariaLabelledby": string | undefined;
2472
2491
  "background": TabBackground | undefined;
2492
+ /**
2493
+ * Control density: 24px small, 32px medium, or 40px large track.
2494
+ * @default 'md'
2495
+ */
2496
+ "size": TabGroupSize1;
2473
2497
  /**
2474
2498
  * @default []
2475
2499
  */
@@ -2479,6 +2503,145 @@ export namespace Components {
2479
2503
  */
2480
2504
  "value": string;
2481
2505
  }
2506
+ interface DsTable {
2507
+ /**
2508
+ * Required accessible table name, rendered as a native caption.
2509
+ */
2510
+ "caption": string;
2511
+ /**
2512
+ * @default 'hidden'
2513
+ */
2514
+ "captionVisibility": TableCaptionVisibility;
2515
+ /**
2516
+ * Stable column definitions. Assign through JavaScript.
2517
+ * @default []
2518
+ */
2519
+ "columns": TableColumn[];
2520
+ /**
2521
+ * @default 'No data is available.'
2522
+ */
2523
+ "emptyBody": string;
2524
+ /**
2525
+ * @default 'Not available'
2526
+ */
2527
+ "emptyCellLabel": string;
2528
+ /**
2529
+ * @default 'No results'
2530
+ */
2531
+ "emptyHeading": string;
2532
+ /**
2533
+ * @default 'All results loaded'
2534
+ */
2535
+ "endOfResultsLabel": string;
2536
+ /**
2537
+ * Initial error state. Existing rows stay visible; incremental failures use loadMoreError.
2538
+ * @default false
2539
+ */
2540
+ "error": boolean;
2541
+ /**
2542
+ * @default 'The data could not be loaded.'
2543
+ */
2544
+ "errorBody": string;
2545
+ /**
2546
+ * @default 'Unable to load data'
2547
+ */
2548
+ "errorHeading": string;
2549
+ /**
2550
+ * Controlled grouping column and group-order direction.
2551
+ * @default null
2552
+ */
2553
+ "grouping": TableGroupingState | null;
2554
+ /**
2555
+ * One level of application-owned grouped data. Assign through JavaScript.
2556
+ * @default []
2557
+ */
2558
+ "groups": TableGroup[];
2559
+ /**
2560
+ * @default false
2561
+ */
2562
+ "hasMore": boolean;
2563
+ /**
2564
+ * Enable application-owned incremental loading without pagination.
2565
+ * @default false
2566
+ */
2567
+ "lazyLoading": boolean;
2568
+ /**
2569
+ * Reset key for a new query/group/sort dataset.
2570
+ * @default 'default'
2571
+ */
2572
+ "loadIdentity": string | number;
2573
+ "loadMoreError": string | undefined;
2574
+ /**
2575
+ * @default 'Load more'
2576
+ */
2577
+ "loadMoreLabel": string;
2578
+ /**
2579
+ * @default 'auto'
2580
+ */
2581
+ "loadMoreMode": TableLoadMoreMode;
2582
+ /**
2583
+ * IntersectionObserver root margin in CSS pixels.
2584
+ * @default 0
2585
+ */
2586
+ "loadMoreThreshold": number;
2587
+ /**
2588
+ * Initial loading state. Existing rows stay visible; incremental loading uses loadingMore.
2589
+ * @default false
2590
+ */
2591
+ "loading": boolean;
2592
+ /**
2593
+ * @default false
2594
+ */
2595
+ "loadingMore": boolean;
2596
+ /**
2597
+ * @default 'Loading more results'
2598
+ */
2599
+ "loadingMoreLabel": string;
2600
+ /**
2601
+ * Maximum scroll-region height. Numbers resolve to CSS pixels.
2602
+ */
2603
+ "maxHeight": string | number | undefined;
2604
+ /**
2605
+ * @default 'Retry'
2606
+ */
2607
+ "retryLabel": string;
2608
+ /**
2609
+ * Ungrouped row data. Ignored while grouping is active. Assign through JavaScript.
2610
+ * @default []
2611
+ */
2612
+ "rows": TableRow[];
2613
+ /**
2614
+ * Supports {count} and {total} placeholders.
2615
+ * @default '{count} more rows loaded. {total} rows loaded.'
2616
+ */
2617
+ "rowsLoadedLabel": string;
2618
+ /**
2619
+ * Optional explicit label for the horizontal/vertical scroll region.
2620
+ */
2621
+ "scrollLabel": string | undefined;
2622
+ /**
2623
+ * Controlled selected row identities. IDs outside the loaded rows are preserved.
2624
+ * @default []
2625
+ */
2626
+ "selectedRowIds": string[];
2627
+ /**
2628
+ * @default 'none'
2629
+ */
2630
+ "selectionMode": TableSelectionMode;
2631
+ /**
2632
+ * @default 5
2633
+ */
2634
+ "skeletonRows": number;
2635
+ /**
2636
+ * Controlled member-row sort state.
2637
+ * @default null
2638
+ */
2639
+ "sort": TableSortState | null;
2640
+ /**
2641
+ * @default false
2642
+ */
2643
+ "stickyHeader": boolean;
2644
+ }
2482
2645
  interface DsTag {
2483
2646
  /**
2484
2647
  * ID of the menu controlled by an interactive Tag.
@@ -2512,6 +2675,11 @@ export namespace Components {
2512
2675
  * @default false
2513
2676
  */
2514
2677
  "isInactive": boolean;
2678
+ /**
2679
+ * Use the reduced outer geometry when nested inside a control of the same size.
2680
+ * @default false
2681
+ */
2682
+ "isInset": boolean;
2515
2683
  "label": string;
2516
2684
  "maxWidth": string | number | undefined;
2517
2685
  /**
@@ -2866,6 +3034,10 @@ export interface DsTabGroupCustomEvent<T> extends CustomEvent<T> {
2866
3034
  detail: T;
2867
3035
  target: HTMLDsTabGroupElement;
2868
3036
  }
3037
+ export interface DsTableCustomEvent<T> extends CustomEvent<T> {
3038
+ detail: T;
3039
+ target: HTMLDsTableElement;
3040
+ }
2869
3041
  export interface DsTagCustomEvent<T> extends CustomEvent<T> {
2870
3042
  detail: T;
2871
3043
  target: HTMLDsTagElement;
@@ -3747,6 +3919,27 @@ declare global {
3747
3919
  prototype: HTMLDsTabGroupElement;
3748
3920
  new (): HTMLDsTabGroupElement;
3749
3921
  };
3922
+ interface HTMLDsTableElementEventMap {
3923
+ "dsSortChange": TableSortChangeDetail;
3924
+ "dsGroupingChange": TableGroupingChangeDetail;
3925
+ "dsSelectionChange": TableSelectionChangeDetail;
3926
+ "dsLoadMore": TableLoadMoreDetail;
3927
+ "dsCellAction": TableCellActionDetail;
3928
+ }
3929
+ interface HTMLDsTableElement extends Components.DsTable, HTMLStencilElement {
3930
+ addEventListener<K extends keyof HTMLDsTableElementEventMap>(type: K, listener: (this: HTMLDsTableElement, ev: DsTableCustomEvent<HTMLDsTableElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
3931
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
3932
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
3933
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
3934
+ removeEventListener<K extends keyof HTMLDsTableElementEventMap>(type: K, listener: (this: HTMLDsTableElement, ev: DsTableCustomEvent<HTMLDsTableElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
3935
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
3936
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
3937
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
3938
+ }
3939
+ var HTMLDsTableElement: {
3940
+ prototype: HTMLDsTableElement;
3941
+ new (): HTMLDsTableElement;
3942
+ };
3750
3943
  interface HTMLDsTagElementEventMap {
3751
3944
  "dsClick": MouseEvent;
3752
3945
  }
@@ -3887,6 +4080,7 @@ declare global {
3887
4080
  "ds-swatch-picker": HTMLDsSwatchPickerElement;
3888
4081
  "ds-switch": HTMLDsSwitchElement;
3889
4082
  "ds-tab-group": HTMLDsTabGroupElement;
4083
+ "ds-table": HTMLDsTableElement;
3890
4084
  "ds-tag": HTMLDsTagElement;
3891
4085
  "ds-text": HTMLDsTextElement;
3892
4086
  "ds-toast": HTMLDsToastElement;
@@ -5340,12 +5534,22 @@ declare namespace LocalJSX {
5340
5534
  * Controlled peer sections. Their selected label replaces the static title.
5341
5535
  * @default []
5342
5536
  */
5343
- "sections"?: TabItem[];
5537
+ "sections"?: TabGroupItem[];
5344
5538
  /**
5345
5539
  * Accessible name for the section chooser.
5346
5540
  * @default 'Change page section'
5347
5541
  */
5348
5542
  "sectionsAriaLabel"?: string;
5543
+ /**
5544
+ * Popup switcher or an inline segmented TabGroup for peer sections.
5545
+ * @default 'switcher'
5546
+ */
5547
+ "sectionsPresentation"?: MobileHeaderSectionsPresentation;
5548
+ /**
5549
+ * Density for the segmented sections presentation.
5550
+ * @default 'md'
5551
+ */
5552
+ "sectionsSize"?: TabGroupSize;
5349
5553
  /**
5350
5554
  * Controlled child sections within the selected page or detail screen.
5351
5555
  * @default []
@@ -6144,6 +6348,11 @@ declare namespace LocalJSX {
6144
6348
  * @default 'default'
6145
6349
  */
6146
6350
  "contentInset"?: ShellPageContentInset;
6351
+ /**
6352
+ * Canvas surface painted around and beneath routed page content.
6353
+ * @default 'primary'
6354
+ */
6355
+ "contentSurface"?: ShellPageContentSurface;
6147
6356
  /**
6148
6357
  * Available page-header capacity supplied by the owning application shell.
6149
6358
  */
@@ -6470,6 +6679,11 @@ declare namespace LocalJSX {
6470
6679
  "ariaLabelledby"?: string | undefined;
6471
6680
  "background"?: TabBackground | undefined;
6472
6681
  "onDsChange"?: (event: DsTabGroupCustomEvent<string>) => void;
6682
+ /**
6683
+ * Control density: 24px small, 32px medium, or 40px large track.
6684
+ * @default 'md'
6685
+ */
6686
+ "size"?: TabGroupSize1;
6473
6687
  /**
6474
6688
  * @default []
6475
6689
  */
@@ -6479,6 +6693,150 @@ declare namespace LocalJSX {
6479
6693
  */
6480
6694
  "value"?: string;
6481
6695
  }
6696
+ interface DsTable {
6697
+ /**
6698
+ * Required accessible table name, rendered as a native caption.
6699
+ */
6700
+ "caption": string;
6701
+ /**
6702
+ * @default 'hidden'
6703
+ */
6704
+ "captionVisibility"?: TableCaptionVisibility;
6705
+ /**
6706
+ * Stable column definitions. Assign through JavaScript.
6707
+ * @default []
6708
+ */
6709
+ "columns"?: TableColumn[];
6710
+ /**
6711
+ * @default 'No data is available.'
6712
+ */
6713
+ "emptyBody"?: string;
6714
+ /**
6715
+ * @default 'Not available'
6716
+ */
6717
+ "emptyCellLabel"?: string;
6718
+ /**
6719
+ * @default 'No results'
6720
+ */
6721
+ "emptyHeading"?: string;
6722
+ /**
6723
+ * @default 'All results loaded'
6724
+ */
6725
+ "endOfResultsLabel"?: string;
6726
+ /**
6727
+ * Initial error state. Existing rows stay visible; incremental failures use loadMoreError.
6728
+ * @default false
6729
+ */
6730
+ "error"?: boolean;
6731
+ /**
6732
+ * @default 'The data could not be loaded.'
6733
+ */
6734
+ "errorBody"?: string;
6735
+ /**
6736
+ * @default 'Unable to load data'
6737
+ */
6738
+ "errorHeading"?: string;
6739
+ /**
6740
+ * Controlled grouping column and group-order direction.
6741
+ * @default null
6742
+ */
6743
+ "grouping"?: TableGroupingState | null;
6744
+ /**
6745
+ * One level of application-owned grouped data. Assign through JavaScript.
6746
+ * @default []
6747
+ */
6748
+ "groups"?: TableGroup[];
6749
+ /**
6750
+ * @default false
6751
+ */
6752
+ "hasMore"?: boolean;
6753
+ /**
6754
+ * Enable application-owned incremental loading without pagination.
6755
+ * @default false
6756
+ */
6757
+ "lazyLoading"?: boolean;
6758
+ /**
6759
+ * Reset key for a new query/group/sort dataset.
6760
+ * @default 'default'
6761
+ */
6762
+ "loadIdentity"?: string | number;
6763
+ "loadMoreError"?: string | undefined;
6764
+ /**
6765
+ * @default 'Load more'
6766
+ */
6767
+ "loadMoreLabel"?: string;
6768
+ /**
6769
+ * @default 'auto'
6770
+ */
6771
+ "loadMoreMode"?: TableLoadMoreMode;
6772
+ /**
6773
+ * IntersectionObserver root margin in CSS pixels.
6774
+ * @default 0
6775
+ */
6776
+ "loadMoreThreshold"?: number;
6777
+ /**
6778
+ * Initial loading state. Existing rows stay visible; incremental loading uses loadingMore.
6779
+ * @default false
6780
+ */
6781
+ "loading"?: boolean;
6782
+ /**
6783
+ * @default false
6784
+ */
6785
+ "loadingMore"?: boolean;
6786
+ /**
6787
+ * @default 'Loading more results'
6788
+ */
6789
+ "loadingMoreLabel"?: string;
6790
+ /**
6791
+ * Maximum scroll-region height. Numbers resolve to CSS pixels.
6792
+ */
6793
+ "maxHeight"?: string | number | undefined;
6794
+ "onDsCellAction"?: (event: DsTableCustomEvent<TableCellActionDetail>) => void;
6795
+ "onDsGroupingChange"?: (event: DsTableCustomEvent<TableGroupingChangeDetail>) => void;
6796
+ "onDsLoadMore"?: (event: DsTableCustomEvent<TableLoadMoreDetail>) => void;
6797
+ "onDsSelectionChange"?: (event: DsTableCustomEvent<TableSelectionChangeDetail>) => void;
6798
+ "onDsSortChange"?: (event: DsTableCustomEvent<TableSortChangeDetail>) => void;
6799
+ /**
6800
+ * @default 'Retry'
6801
+ */
6802
+ "retryLabel"?: string;
6803
+ /**
6804
+ * Ungrouped row data. Ignored while grouping is active. Assign through JavaScript.
6805
+ * @default []
6806
+ */
6807
+ "rows"?: TableRow[];
6808
+ /**
6809
+ * Supports {count} and {total} placeholders.
6810
+ * @default '{count} more rows loaded. {total} rows loaded.'
6811
+ */
6812
+ "rowsLoadedLabel"?: string;
6813
+ /**
6814
+ * Optional explicit label for the horizontal/vertical scroll region.
6815
+ */
6816
+ "scrollLabel"?: string | undefined;
6817
+ /**
6818
+ * Controlled selected row identities. IDs outside the loaded rows are preserved.
6819
+ * @default []
6820
+ */
6821
+ "selectedRowIds"?: string[];
6822
+ /**
6823
+ * @default 'none'
6824
+ */
6825
+ "selectionMode"?: TableSelectionMode;
6826
+ /**
6827
+ * @default 5
6828
+ */
6829
+ "skeletonRows"?: number;
6830
+ /**
6831
+ * Controlled member-row sort state.
6832
+ * @default null
6833
+ */
6834
+ "sort"?: TableSortState | null;
6835
+ /**
6836
+ * @default false
6837
+ */
6838
+ "stickyHeader"?: boolean;
6839
+ }
6482
6840
  interface DsTag {
6483
6841
  /**
6484
6842
  * ID of the menu controlled by an interactive Tag.
@@ -6512,6 +6870,11 @@ declare namespace LocalJSX {
6512
6870
  * @default false
6513
6871
  */
6514
6872
  "isInactive"?: boolean;
6873
+ /**
6874
+ * Use the reduced outer geometry when nested inside a control of the same size.
6875
+ * @default false
6876
+ */
6877
+ "isInset"?: boolean;
6515
6878
  "label": string;
6516
6879
  "maxWidth"?: string | number | undefined;
6517
6880
  /**
@@ -7063,6 +7426,8 @@ declare namespace LocalJSX {
7063
7426
  "headingLevel": MobileHeaderHeadingLevel;
7064
7427
  "value": string;
7065
7428
  "sectionsAriaLabel": string;
7429
+ "sectionsPresentation": MobileHeaderSectionsPresentation;
7430
+ "sectionsSize": TabGroupSize;
7066
7431
  "subvalue": string;
7067
7432
  "subsectionsAriaLabel": string;
7068
7433
  "tone": MobileHeaderTone;
@@ -7209,6 +7574,7 @@ declare namespace LocalJSX {
7209
7574
  "headerPresentation": ShellPageHeaderPresentation;
7210
7575
  "headerCapacity": ShellPageCapacity;
7211
7576
  "contentInset": ShellPageContentInset;
7577
+ "contentSurface": ShellPageContentSurface;
7212
7578
  "responsiveMode": ShellResponsiveMode;
7213
7579
  }
7214
7580
  interface DsShellToolsAttributes {
@@ -7281,16 +7647,46 @@ declare namespace LocalJSX {
7281
7647
  }
7282
7648
  interface DsTabGroupAttributes {
7283
7649
  "value": string;
7650
+ "size": TabGroupSize;
7284
7651
  "background": TabBackground | undefined;
7285
7652
  "ariaLabel": string | null;
7286
7653
  "ariaLabelledby": string | undefined;
7287
7654
  }
7655
+ interface DsTableAttributes {
7656
+ "caption": string;
7657
+ "captionVisibility": TableCaptionVisibility;
7658
+ "stickyHeader": boolean;
7659
+ "maxHeight": string;
7660
+ "scrollLabel": string | undefined;
7661
+ "selectionMode": TableSelectionMode;
7662
+ "loading": boolean;
7663
+ "skeletonRows": number;
7664
+ "emptyHeading": string;
7665
+ "emptyBody": string;
7666
+ "error": boolean;
7667
+ "errorHeading": string;
7668
+ "errorBody": string;
7669
+ "emptyCellLabel": string;
7670
+ "lazyLoading": boolean;
7671
+ "loadMoreMode": TableLoadMoreMode;
7672
+ "hasMore": boolean;
7673
+ "loadingMore": boolean;
7674
+ "loadMoreError": string | undefined;
7675
+ "loadIdentity": string;
7676
+ "loadMoreThreshold": number;
7677
+ "loadMoreLabel": string;
7678
+ "retryLabel": string;
7679
+ "loadingMoreLabel": string;
7680
+ "endOfResultsLabel": string;
7681
+ "rowsLoadedLabel": string;
7682
+ }
7288
7683
  interface DsTagAttributes {
7289
7684
  "label": string;
7290
7685
  "icon": string;
7291
7686
  "intent": TagIntent;
7292
7687
  "contrast": TagContrast;
7293
7688
  "size": TagSize;
7689
+ "isInset": boolean;
7294
7690
  "rounded": boolean;
7295
7691
  "maxWidth": string;
7296
7692
  "interactive": boolean;
@@ -7403,6 +7799,7 @@ declare namespace LocalJSX {
7403
7799
  "ds-swatch-picker": Omit<DsSwatchPicker, keyof DsSwatchPickerAttributes> & { [K in keyof DsSwatchPicker & keyof DsSwatchPickerAttributes]?: DsSwatchPicker[K] } & { [K in keyof DsSwatchPicker & keyof DsSwatchPickerAttributes as `attr:${K}`]?: DsSwatchPickerAttributes[K] } & { [K in keyof DsSwatchPicker & keyof DsSwatchPickerAttributes as `prop:${K}`]?: DsSwatchPicker[K] };
7404
7800
  "ds-switch": Omit<DsSwitch, keyof DsSwitchAttributes> & { [K in keyof DsSwitch & keyof DsSwitchAttributes]?: DsSwitch[K] } & { [K in keyof DsSwitch & keyof DsSwitchAttributes as `attr:${K}`]?: DsSwitchAttributes[K] } & { [K in keyof DsSwitch & keyof DsSwitchAttributes as `prop:${K}`]?: DsSwitch[K] };
7405
7801
  "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] };
7802
+ "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] } & OneOf<"caption", DsTable["caption"], DsTableAttributes["caption"]>;
7406
7803
  "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"]>;
7407
7804
  "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] };
7408
7805
  "ds-toast": Omit<DsToast, keyof DsToastAttributes> & { [K in keyof DsToast & keyof DsToastAttributes]?: DsToast[K] } & { [K in keyof DsToast & keyof DsToastAttributes as `attr:${K}`]?: DsToastAttributes[K] } & { [K in keyof DsToast & keyof DsToastAttributes as `prop:${K}`]?: DsToast[K] };
@@ -7490,6 +7887,7 @@ declare module "@stencil/core" {
7490
7887
  "ds-swatch-picker": LocalJSX.IntrinsicElements["ds-swatch-picker"] & JSXBase.HTMLAttributes<HTMLDsSwatchPickerElement>;
7491
7888
  "ds-switch": LocalJSX.IntrinsicElements["ds-switch"] & JSXBase.HTMLAttributes<HTMLDsSwitchElement>;
7492
7889
  "ds-tab-group": LocalJSX.IntrinsicElements["ds-tab-group"] & JSXBase.HTMLAttributes<HTMLDsTabGroupElement>;
7890
+ "ds-table": LocalJSX.IntrinsicElements["ds-table"] & JSXBase.HTMLAttributes<HTMLDsTableElement>;
7493
7891
  "ds-tag": LocalJSX.IntrinsicElements["ds-tag"] & JSXBase.HTMLAttributes<HTMLDsTagElement>;
7494
7892
  "ds-text": LocalJSX.IntrinsicElements["ds-text"] & JSXBase.HTMLAttributes<HTMLDsTextElement>;
7495
7893
  "ds-toast": LocalJSX.IntrinsicElements["ds-toast"] & JSXBase.HTMLAttributes<HTMLDsToastElement>;
@@ -1,6 +1,7 @@
1
1
  export type { NavChromeStyle } from './nav-chrome';
2
2
  export type { PanelNavGroup, PanelNavItem, } from '../components/PanelNav/panel-nav-types';
3
3
  export type { BarNavTab } from '../components/BarNav/bar-nav-types';
4
+ export type { ShellPageContentInset, ShellPageContentSurface, } from '../components/ShellPage/shell-page-types';
4
5
  export type { ShellAppComposition, ShellNavigationConfig, ShellNavigationSelectDetail, ShellPageChromeConfig, ShellToolsConfig, } from '../components/ShellApp/shell-app-types';
5
6
  export type { PanelToolsHeaderAction, PanelToolsHeaderConfig, PanelToolsHeaders, PanelToolsItem, PanelToolsToolId, } from '../components/PanelTools/panel-tools-types';
6
7
  export { PANEL_TOOLS_DEFAULT_ITEMS } from '../components/PanelTools/panel-tools-types';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ds-mo/ui",
3
- "version": "13.11.0",
3
+ "version": "13.12.0",
4
4
  "description": "CompoMo — composable web components styled with TokoMo design tokens",
5
5
  "keywords": [
6
6
  "web-components",
@@ -66,6 +66,7 @@
66
66
  },
67
67
  "./control-elevation.css": "./dist/styles/control-elevation.css",
68
68
  "./prose.css": "./dist/styles/prose.css",
69
+ "./table.css": "./dist/styles/table.css",
69
70
  "./agent": "./dist/agent.json",
70
71
  "./agent/patterns": "./dist/agent-patterns.json",
71
72
  "./dist/components/*": "./dist/components/*",
@@ -137,7 +138,7 @@
137
138
  "@angular/forms": "^22.0.7",
138
139
  "@axe-core/playwright": "^4.12.1",
139
140
  "@ds-mo/icons": "^6.5.0",
140
- "@ds-mo/tokens": "^6.0.2",
141
+ "@ds-mo/tokens": "^6.1.0",
141
142
  "@eslint/js": "^10.0.1",
142
143
  "@modelcontextprotocol/client": "^2.0.0",
143
144
  "@modelcontextprotocol/server": "^2.0.0",