@ds-mo/ui 14.2.1 → 14.3.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 (99) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +141 -17
  4. package/dist/angular/ds-pagination.d.ts +19 -0
  5. package/dist/angular/ds-pagination.js +42 -0
  6. package/dist/angular/ds-table.d.ts +4 -1
  7. package/dist/angular/ds-table.js +7 -4
  8. package/dist/angular/index.d.ts +1 -1
  9. package/dist/angular/index.js +1 -0
  10. package/dist/angular/proxies.d.ts +1 -0
  11. package/dist/angular/proxies.js +1 -0
  12. package/dist/components/ds-agent-questionnaire.js +1 -1
  13. package/dist/components/ds-agent-response.js +1 -1
  14. package/dist/components/ds-bar-nav.js +1 -1
  15. package/dist/components/ds-bar-title.js +1 -1
  16. package/dist/components/ds-bar-workflow.js +1 -1
  17. package/dist/components/ds-bar-workflow.js.map +1 -1
  18. package/dist/components/ds-checkbox.js +1 -1
  19. package/dist/components/ds-filter-menu.js +1 -1
  20. package/dist/components/ds-input.js +1 -1
  21. package/dist/components/ds-menu.js +1 -1
  22. package/dist/components/ds-mobile-header.js +1 -1
  23. package/dist/components/ds-mobile-section-switcher.js +1 -1
  24. package/dist/components/ds-pagination.d.ts +11 -0
  25. package/dist/components/ds-pagination.js +2 -0
  26. package/dist/components/ds-pagination.js.map +1 -0
  27. package/dist/components/ds-panel-nav.js +1 -1
  28. package/dist/components/ds-panel-tool-header.js +1 -1
  29. package/dist/components/ds-panel-tool-search.js +1 -1
  30. package/dist/components/ds-panel-tools.js +1 -1
  31. package/dist/components/ds-radio.js +1 -1
  32. package/dist/components/ds-select.js +1 -1
  33. package/dist/components/ds-select.js.map +1 -1
  34. package/dist/components/ds-shell-app.js +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-slider.js +1 -1
  38. package/dist/components/ds-swatch-picker.js +1 -1
  39. package/dist/components/ds-switch.js +1 -1
  40. package/dist/components/ds-table.js +1 -1
  41. package/dist/components/ds-table.js.map +1 -1
  42. package/dist/components/ds-toast.js +1 -1
  43. package/dist/components/ds-typing-indicator.js +1 -1
  44. package/dist/components/index.d.ts +7 -0
  45. package/dist/components/{p-D2xWcVv6.js → p-B8q-6a03.js} +2 -2
  46. package/dist/components/{p-DYzjeIAT.js → p-BHjw0x3L.js} +2 -2
  47. package/dist/components/{p-BXEiYoDE.js → p-BSBQ5kGe.js} +2 -2
  48. package/dist/components/{p-DmZupC1-.js → p-BiBXCjjo.js} +2 -2
  49. package/dist/components/{p-BOCrvs-v.js → p-Btxwp4lJ.js} +2 -2
  50. package/dist/components/{p-DXFtmZ8p.js → p-Bxe6532y.js} +2 -2
  51. package/dist/components/{p-DD5OCVXx.js → p-C5TrNd31.js} +2 -2
  52. package/dist/components/{p-ChlRsQYY.js → p-C68-8tlp.js} +2 -2
  53. package/dist/components/{p-bR6Ltz4s.js → p-CW3sRYuf.js} +2 -2
  54. package/dist/components/{p-DJ_FsLCc.js → p-CWsziQQY.js} +2 -2
  55. package/dist/components/{p-CRjpqqAI.js → p-Cjf54_Cq.js} +2 -2
  56. package/dist/components/{p-I8WGqoyC.js → p-CkWVI16a.js} +2 -2
  57. package/dist/components/{p-BDCrM8-1.js → p-Cpqd69kg.js} +2 -2
  58. package/dist/components/p-D1ZI_10t.js +2 -0
  59. package/dist/components/p-D1ZI_10t.js.map +1 -0
  60. package/dist/components/{p-C-GNvCk0.js → p-Dh_TVLnz.js} +2 -2
  61. package/dist/components/{p-BpRKUpDT.js → p-DkPNCBA8.js} +2 -2
  62. package/dist/components/p-DwqUW4Rg.js +2 -0
  63. package/dist/components/p-DwqUW4Rg.js.map +1 -0
  64. package/dist/components/{p-DZcFkqXw.js → p-qA4eKZkW.js} +2 -2
  65. package/dist/docs/components.json +469 -33
  66. package/dist/mcp-data/registry/pagination.json +295 -0
  67. package/dist/mcp-data/registry/registry.json +143 -16
  68. package/dist/mcp-data/registry/table.json +66 -34
  69. package/dist/react/components.d.ts +1 -0
  70. package/dist/react/components.js +1 -0
  71. package/dist/react/ds-pagination.d.ts +12 -0
  72. package/dist/react/ds-pagination.js +12 -0
  73. package/dist/react/ds-table.d.ts +2 -1
  74. package/dist/react/ds-table.js +1 -0
  75. package/dist/types/components/Pagination/Pagination.d.ts +28 -0
  76. package/dist/types/components/Pagination/index.d.ts +3 -0
  77. package/dist/types/components/Pagination/pagination-model.d.ts +13 -0
  78. package/dist/types/components/Pagination/pagination-types.d.ts +25 -0
  79. package/dist/types/components/Table/Table.d.ts +10 -3
  80. package/dist/types/components/Table/index.d.ts +1 -1
  81. package/dist/types/components/Table/table-types.d.ts +4 -0
  82. package/dist/types/components.d.ts +148 -13
  83. package/package.json +1 -1
  84. /package/dist/components/{p-D2xWcVv6.js.map → p-B8q-6a03.js.map} +0 -0
  85. /package/dist/components/{p-DYzjeIAT.js.map → p-BHjw0x3L.js.map} +0 -0
  86. /package/dist/components/{p-BXEiYoDE.js.map → p-BSBQ5kGe.js.map} +0 -0
  87. /package/dist/components/{p-DmZupC1-.js.map → p-BiBXCjjo.js.map} +0 -0
  88. /package/dist/components/{p-BOCrvs-v.js.map → p-Btxwp4lJ.js.map} +0 -0
  89. /package/dist/components/{p-DXFtmZ8p.js.map → p-Bxe6532y.js.map} +0 -0
  90. /package/dist/components/{p-DD5OCVXx.js.map → p-C5TrNd31.js.map} +0 -0
  91. /package/dist/components/{p-ChlRsQYY.js.map → p-C68-8tlp.js.map} +0 -0
  92. /package/dist/components/{p-bR6Ltz4s.js.map → p-CW3sRYuf.js.map} +0 -0
  93. /package/dist/components/{p-DJ_FsLCc.js.map → p-CWsziQQY.js.map} +0 -0
  94. /package/dist/components/{p-CRjpqqAI.js.map → p-Cjf54_Cq.js.map} +0 -0
  95. /package/dist/components/{p-I8WGqoyC.js.map → p-CkWVI16a.js.map} +0 -0
  96. /package/dist/components/{p-BDCrM8-1.js.map → p-Cpqd69kg.js.map} +0 -0
  97. /package/dist/components/{p-C-GNvCk0.js.map → p-Dh_TVLnz.js.map} +0 -0
  98. /package/dist/components/{p-BpRKUpDT.js.map → p-DkPNCBA8.js.map} +0 -0
  99. /package/dist/components/{p-DZcFkqXw.js.map → p-qA4eKZkW.js.map} +0 -0
@@ -48,6 +48,7 @@ export { DsMobileHeader } from "./ds-mobile-header.js";
48
48
  export { DsMobileSectionSwitcher } from "./ds-mobile-section-switcher.js";
49
49
  export { DsMobileSheetNav } from "./ds-mobile-sheet-nav.js";
50
50
  export { DsModal } from "./ds-modal.js";
51
+ export { DsPagination } from "./ds-pagination.js";
51
52
  export { DsPanelNav } from "./ds-panel-nav.js";
52
53
  export { DsPanelSubNav } from "./ds-panel-sub-nav.js";
53
54
  export { DsPanelToolHeader } from "./ds-panel-tool-header.js";
@@ -49,6 +49,7 @@ export { DsMobileHeader } from "./ds-mobile-header.js";
49
49
  export { DsMobileSectionSwitcher } from "./ds-mobile-section-switcher.js";
50
50
  export { DsMobileSheetNav } from "./ds-mobile-sheet-nav.js";
51
51
  export { DsModal } from "./ds-modal.js";
52
+ export { DsPagination } from "./ds-pagination.js";
52
53
  export { DsPanelNav } from "./ds-panel-nav.js";
53
54
  export { DsPanelSubNav } from "./ds-panel-sub-nav.js";
54
55
  export { DsPanelToolHeader } from "./ds-panel-tool-header.js";
@@ -0,0 +1,12 @@
1
+ /**
2
+ * This file was automatically generated by the Stencil React Output Target.
3
+ * Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
4
+ */
5
+ import type { EventName, StencilReactComponent } from './react-runtime.js';
6
+ import { type DsPaginationCustomEvent, type PaginationChangeDetail } from "@ds-mo/ui";
7
+ import type { Components } from "@ds-mo/ui/dist/components";
8
+ import { DsPagination as DsPaginationElement } from "@ds-mo/ui/dist/components/ds-pagination.js";
9
+ export type DsPaginationEvents = {
10
+ onDsChange: EventName<DsPaginationCustomEvent<PaginationChangeDetail>>;
11
+ };
12
+ export declare const DsPagination: StencilReactComponent<DsPaginationElement, DsPaginationEvents, Components.DsPagination>;
@@ -0,0 +1,12 @@
1
+ 'use client';
2
+ import { createComponent } from './react-runtime.js';
3
+ import React from 'react';
4
+ import { DsPagination as DsPaginationElement, defineCustomElement as defineDsPagination } from "@ds-mo/ui/dist/components/ds-pagination.js";
5
+ export const DsPagination = /*@__PURE__*/ createComponent({
6
+ tagName: 'ds-pagination',
7
+ elementClass: DsPaginationElement,
8
+ // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
9
+ react: React,
10
+ events: { onDsChange: 'dsChange' },
11
+ defineCustomElement: defineDsPagination
12
+ });
@@ -3,7 +3,7 @@
3
3
  * Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
4
4
  */
5
5
  import type { EventName, StencilReactComponent } from './react-runtime.js';
6
- import { type DsTableCustomEvent, type TableCellActionDetail, type TableGroupCollapseChangeDetail, type TableGroupLoadMoreDetail, type TableLoadMoreDetail, type TableRowActivateDetail, type TableSelectionChangeDetail, type TableSortChangeDetail } from "@ds-mo/ui";
6
+ import { type DsTableCustomEvent, type PaginationChangeDetail, type TableCellActionDetail, type TableGroupCollapseChangeDetail, type TableGroupLoadMoreDetail, type TableLoadMoreDetail, type TableRowActivateDetail, type TableSelectionChangeDetail, type TableSortChangeDetail } from "@ds-mo/ui";
7
7
  import type { Components } from "@ds-mo/ui/dist/components";
8
8
  import { DsTable as DsTableElement } from "@ds-mo/ui/dist/components/ds-table.js";
9
9
  export type DsTableEvents = {
@@ -12,6 +12,7 @@ export type DsTableEvents = {
12
12
  onDsSelectionChange: EventName<DsTableCustomEvent<TableSelectionChangeDetail>>;
13
13
  onDsLoadMore: EventName<DsTableCustomEvent<TableLoadMoreDetail>>;
14
14
  onDsGroupLoadMore: EventName<DsTableCustomEvent<TableGroupLoadMoreDetail>>;
15
+ onDsPaginationChange: EventName<DsTableCustomEvent<PaginationChangeDetail>>;
15
16
  onDsCellAction: EventName<DsTableCustomEvent<TableCellActionDetail>>;
16
17
  onDsRowActivate: EventName<DsTableCustomEvent<TableRowActivateDetail>>;
17
18
  };
@@ -13,6 +13,7 @@ export const DsTable = /*@__PURE__*/ createComponent({
13
13
  onDsSelectionChange: 'dsSelectionChange',
14
14
  onDsLoadMore: 'dsLoadMore',
15
15
  onDsGroupLoadMore: 'dsGroupLoadMore',
16
+ onDsPaginationChange: 'dsPaginationChange',
16
17
  onDsCellAction: 'dsCellAction',
17
18
  onDsRowActivate: 'dsRowActivate'
18
19
  },
@@ -0,0 +1,28 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ import type { PaginationChangeDetail } from './pagination-types';
3
+ export declare class Pagination {
4
+ /** Controlled zero-based page index. */
5
+ pageIndex: number;
6
+ /** Controlled number of top-level items on a full page. */
7
+ pageSize: number;
8
+ /** Controlled total number of top-level items across every page. */
9
+ totalItems: number;
10
+ /** Available page sizes. Assign arrays through JavaScript. */
11
+ pageSizeOptions: number[];
12
+ /** Localized plural noun used by assistive range announcements. */
13
+ itemLabel: string;
14
+ /** Visible page-size control label. */
15
+ pageSizeLabel: string;
16
+ /** Accessible name for the pagination navigation region. */
17
+ label: string;
18
+ /** Prevent interaction while the owner replaces the current data page. */
19
+ loading: boolean;
20
+ /** Emits the complete next controlled state after a page or page-size request. */
21
+ dsChange: EventEmitter<PaginationChangeDetail>;
22
+ private readonly pageSizeControlId;
23
+ private requestPage;
24
+ private requestPageSize;
25
+ private get resolvedState();
26
+ render(): any;
27
+ }
28
+ //# sourceMappingURL=Pagination.d.ts.map
@@ -0,0 +1,3 @@
1
+ export { Pagination } from './Pagination';
2
+ export type { PaginationChangeDetail, PaginationChangeReason, PaginationState, } from './pagination-types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,13 @@
1
+ import type { PaginationState } from './pagination-types';
2
+ export declare const DEFAULT_PAGE_SIZE_OPTIONS: readonly [25, 50, 100, 200];
3
+ export interface ResolvedPaginationState {
4
+ pageIndex: number;
5
+ pageSize: number;
6
+ totalItems: number;
7
+ totalPages: number;
8
+ firstItem: number;
9
+ lastItem: number;
10
+ pageSizeOptions: number[];
11
+ }
12
+ export declare function resolvePaginationState(state: Pick<PaginationState, 'pageIndex' | 'pageSize' | 'totalItems' | 'pageSizeOptions'>): ResolvedPaginationState;
13
+ //# sourceMappingURL=pagination-model.d.ts.map
@@ -0,0 +1,25 @@
1
+ export type PaginationChangeReason = 'page' | 'page-size';
2
+ /** Controlled pagination state shared by Pagination and pagination-aware consumers. */
3
+ export interface PaginationState {
4
+ /** Zero-based page index. */
5
+ pageIndex: number;
6
+ /** Number of top-level items on a full page. */
7
+ pageSize: number;
8
+ /** Total number of top-level items across every page. */
9
+ totalItems: number;
10
+ /** Available page sizes. Defaults to 25, 50, 100, and 200. */
11
+ pageSizeOptions?: number[];
12
+ /** Localized plural noun used by assistive range announcements. */
13
+ itemLabel?: string;
14
+ /** Visible label for the page-size selector. */
15
+ pageSizeLabel?: string;
16
+ /** Accessible name for the pagination navigation region. */
17
+ ariaLabel?: string;
18
+ }
19
+ /** Complete next controlled state emitted for a page or page-size request. */
20
+ export interface PaginationChangeDetail extends PaginationState {
21
+ previousPageIndex: number;
22
+ previousPageSize: number;
23
+ reason: PaginationChangeReason;
24
+ }
25
+ //# sourceMappingURL=pagination-types.d.ts.map
@@ -1,5 +1,6 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
- import type { TableCaptionVisibility, TableCellActionDetail, TableColumn, TableGroup, TableGroupCollapseChangeDetail, TableGroupLoadMoreDetail, TableGroupingState, TableLoadMoreDetail, TableLoadMoreMode, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode, TableSortChangeDetail, TableSortState } from './table-types';
2
+ import type { PaginationChangeDetail } from '../Pagination/pagination-types';
3
+ import type { TableCaptionVisibility, TableCellActionDetail, TableColumn, TableDataMode, TableGroup, TableGroupCollapseChangeDetail, TableGroupLoadMoreDetail, TableGroupingState, TableLoadMoreDetail, TableLoadMoreMode, TablePaginationState, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode, TableSortChangeDetail, TableSortState } from './table-types';
3
4
  export declare class Table {
4
5
  el: HTMLElement;
5
6
  /** Stable column definitions. Assign through JavaScript. */
@@ -52,8 +53,10 @@ export declare class Table {
52
53
  errorHeading: string;
53
54
  errorBody: string;
54
55
  emptyCellLabel: string;
55
- /** Enable application-owned incremental loading without pagination. */
56
- lazyLoading: boolean;
56
+ /** Top-level data-window strategy. Group member loading remains group-owned. */
57
+ dataMode: TableDataMode;
58
+ /** Controlled top-level pagination state. Required when dataMode is pagination. */
59
+ pagination: TablePaginationState | null;
57
60
  loadMoreMode: TableLoadMoreMode;
58
61
  hasMore: boolean;
59
62
  loadingMore: boolean;
@@ -84,6 +87,7 @@ export declare class Table {
84
87
  dsSelectionChange: EventEmitter<TableSelectionChangeDetail>;
85
88
  dsLoadMore: EventEmitter<TableLoadMoreDetail>;
86
89
  dsGroupLoadMore: EventEmitter<TableGroupLoadMoreDetail>;
90
+ dsPaginationChange: EventEmitter<PaginationChangeDetail>;
87
91
  dsCellAction: EventEmitter<TableCellActionDetail>;
88
92
  dsRowActivate: EventEmitter<TableRowActivateDetail>;
89
93
  private overflowStart;
@@ -101,6 +105,7 @@ export declare class Table {
101
105
  private stickyHeaderTableEl;
102
106
  private tableEl;
103
107
  private sentinelEl;
108
+ private incrementalWindowActive;
104
109
  private readonly groupSentinelEls;
105
110
  private previousModelWarning;
106
111
  private hasLoaded;
@@ -126,10 +131,12 @@ export declare class Table {
126
131
  handleDataChange(): void;
127
132
  handleLoadIdentityChange(): void;
128
133
  handleLazyConfigurationChange(): void;
134
+ handleDataModeChange(): void;
129
135
  handleLoadingMoreChange(loading: boolean): void;
130
136
  handleLoadMoreErrorChange(error: string | undefined): void;
131
137
  handleHasMoreChange(hasMore: boolean, hadMore: boolean): void;
132
138
  private get grouped();
139
+ private get hasIncrementalState();
133
140
  private get selectable();
134
141
  private get documentStickyHeader();
135
142
  private get fixedHeight();
@@ -1,2 +1,2 @@
1
- export type { TableCaptionVisibility, TableCellAlign, TableCellAction, TableCellActionDetail, TableCellBlank, TableCellEmpty, TableCellIcon, TableCellImage, TableCellPrimaryText, TableCellText, TableCellTag, TableCellTagVariant, TableCellValue, TableColumn, TableColumnSticky, TableColumnWidth, TableGroup, TableGroupCollapseChangeDetail, TableGroupLoadMoreDetail, TableGroupIntent, TableHeaderSegment, TableGroupingState, TableLoadMoreDetail, TableLoadMoreMode, TableLoadMoreReason, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode, TableSortChangeDetail, TableSortDirection, TableSortState, } from './table-types';
1
+ export type { TableCaptionVisibility, TableCellAlign, TableCellAction, TableCellActionDetail, TableCellBlank, TableCellEmpty, TableCellIcon, TableCellImage, TableCellPrimaryText, TableCellText, TableCellTag, TableCellTagVariant, TableCellValue, TableColumn, TableColumnSticky, TableColumnWidth, TableDataMode, TableGroup, TableGroupCollapseChangeDetail, TableGroupLoadMoreDetail, TableGroupIntent, TableHeaderSegment, TableGroupingState, TableLoadMoreDetail, TableLoadMoreMode, TableLoadMoreReason, TablePaginationState, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode, TableSortChangeDetail, TableSortDirection, TableSortState, } from './table-types';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1,12 +1,14 @@
1
1
  import type { TagContrast, TagIntent } from '../Tag/Tag';
2
2
  import type { IconColor } from '../Icon/Icon';
3
3
  import type { TextColor } from '../Text/text-types';
4
+ import type { PaginationState } from '../Pagination/pagination-types';
4
5
  export type TableSortDirection = 'asc' | 'desc';
5
6
  export type TableSelectionMode = 'none' | 'multiple';
6
7
  export type TableCellAlign = 'start' | 'center' | 'end';
7
8
  export type TableColumnSticky = 'start' | 'end';
8
9
  export type TableCaptionVisibility = 'visible' | 'hidden';
9
10
  export type TableLoadMoreMode = 'auto' | 'manual';
11
+ export type TableDataMode = 'infinite' | 'pagination';
10
12
  export type TableLoadMoreReason = 'auto' | 'manual' | 'retry';
11
13
  export type TableColumnWidth = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
12
14
  /** Semantic color for a group section header (faint surface + bold title). */
@@ -217,5 +219,7 @@ export interface TableGroupCollapseChangeDetail {
217
219
  export interface TableRowActivateDetail {
218
220
  rowId: string;
219
221
  }
222
+ /** Controlled top-level pagination state. Rows or groups contain only the active page. */
223
+ export type TablePaginationState = PaginationState;
220
224
  export {};
221
225
  //# sourceMappingURL=table-types.d.ts.map
@@ -47,6 +47,7 @@ import { MobileHeaderHeadingLevel, MobileHeaderSectionsPresentation, MobileHeade
47
47
  import { TabGroupItem, TabItem } from "./components/TabGroup/tab-item-utils";
48
48
  import { TabGroupSize } from "./components/TabGroup/TabGroup";
49
49
  import { ModalCloseDetail, ModalWidth } from "./components/Modal/Modal";
50
+ import { PaginationChangeDetail } from "./components/Pagination/pagination-types";
50
51
  import { ChromeTransitionDetail } from "./shell/chrome-transition";
51
52
  import { PanelSubNavItem } from "./components/PanelSubNav/panel-sub-nav-types";
52
53
  import { PanelSubNavBackground } from "./components/PanelSubNav/PanelSubNav";
@@ -63,7 +64,7 @@ import { SliderOrientation, SliderSize, SliderThumbAlignment, SliderValue } from
63
64
  import { SwatchPickerOption, SwatchPickerSection } from "./components/SwatchPicker/swatch-picker-types";
64
65
  import { SwitchSize } from "./components/Switch/Switch";
65
66
  import { TabBackground, TabGroupSize as TabGroupSize1, TabGroupWidth } from "./components/TabGroup/TabGroup";
66
- import { TableCaptionVisibility, TableCellActionDetail, TableColumn, TableGroup, TableGroupCollapseChangeDetail, TableGroupingState, TableGroupLoadMoreDetail, TableLoadMoreDetail, TableLoadMoreMode, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode, TableSortChangeDetail, TableSortState } from "./components/Table/table-types";
67
+ import { TableCaptionVisibility, TableCellActionDetail, TableColumn, TableDataMode, TableGroup, TableGroupCollapseChangeDetail, TableGroupingState, TableGroupLoadMoreDetail, TableLoadMoreDetail, TableLoadMoreMode, TablePaginationState, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode, TableSortChangeDetail, TableSortState } from "./components/Table/table-types";
67
68
  import { TagContrast, TagIntent, TagSize } from "./components/Tag/Tag";
68
69
  import { ToastActionEventDetail, ToastCloseEventDetail, ToastEventDetail, ToastManager, ToastSwipeDirection } from "./toast";
69
70
  import { TooltipAlign, TooltipSide, TooltipSize } from "./components/Tooltip/Tooltip";
@@ -110,6 +111,7 @@ export { MobileHeaderHeadingLevel, MobileHeaderSectionsPresentation, MobileHeade
110
111
  export { TabGroupItem, TabItem } from "./components/TabGroup/tab-item-utils";
111
112
  export { TabGroupSize } from "./components/TabGroup/TabGroup";
112
113
  export { ModalCloseDetail, ModalWidth } from "./components/Modal/Modal";
114
+ export { PaginationChangeDetail } from "./components/Pagination/pagination-types";
113
115
  export { ChromeTransitionDetail } from "./shell/chrome-transition";
114
116
  export { PanelSubNavItem } from "./components/PanelSubNav/panel-sub-nav-types";
115
117
  export { PanelSubNavBackground } from "./components/PanelSubNav/PanelSubNav";
@@ -126,7 +128,7 @@ export { SliderOrientation, SliderSize, SliderThumbAlignment, SliderValue } from
126
128
  export { SwatchPickerOption, SwatchPickerSection } from "./components/SwatchPicker/swatch-picker-types";
127
129
  export { SwitchSize } from "./components/Switch/Switch";
128
130
  export { TabBackground, TabGroupSize as TabGroupSize1, TabGroupWidth } from "./components/TabGroup/TabGroup";
129
- export { TableCaptionVisibility, TableCellActionDetail, TableColumn, TableGroup, TableGroupCollapseChangeDetail, TableGroupingState, TableGroupLoadMoreDetail, TableLoadMoreDetail, TableLoadMoreMode, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode, TableSortChangeDetail, TableSortState } from "./components/Table/table-types";
131
+ export { TableCaptionVisibility, TableCellActionDetail, TableColumn, TableDataMode, TableGroup, TableGroupCollapseChangeDetail, TableGroupingState, TableGroupLoadMoreDetail, TableLoadMoreDetail, TableLoadMoreMode, TablePaginationState, TableRow, TableRowActivateDetail, TableSelectionChangeDetail, TableSelectionMode, TableSortChangeDetail, TableSortState } from "./components/Table/table-types";
130
132
  export { TagContrast, TagIntent, TagSize } from "./components/Tag/Tag";
131
133
  export { ToastActionEventDetail, ToastCloseEventDetail, ToastEventDetail, ToastManager, ToastSwipeDirection } from "./toast";
132
134
  export { TooltipAlign, TooltipSide, TooltipSize } from "./components/Tooltip/Tooltip";
@@ -1805,6 +1807,48 @@ export namespace Components {
1805
1807
  */
1806
1808
  "open": boolean;
1807
1809
  }
1810
+ interface DsPagination {
1811
+ /**
1812
+ * Localized plural noun used by assistive range announcements.
1813
+ * @default 'items'
1814
+ */
1815
+ "itemLabel": string;
1816
+ /**
1817
+ * Accessible name for the pagination navigation region.
1818
+ * @default 'Pagination'
1819
+ */
1820
+ "label": string;
1821
+ /**
1822
+ * Prevent interaction while the owner replaces the current data page.
1823
+ * @default false
1824
+ */
1825
+ "loading": boolean;
1826
+ /**
1827
+ * Controlled zero-based page index.
1828
+ * @default 0
1829
+ */
1830
+ "pageIndex": number;
1831
+ /**
1832
+ * Controlled number of top-level items on a full page.
1833
+ * @default 25
1834
+ */
1835
+ "pageSize": number;
1836
+ /**
1837
+ * Visible page-size control label.
1838
+ * @default 'Items per page'
1839
+ */
1840
+ "pageSizeLabel": string;
1841
+ /**
1842
+ * Available page sizes. Assign arrays through JavaScript.
1843
+ * @default [25, 50, 100, 200]
1844
+ */
1845
+ "pageSizeOptions": number[];
1846
+ /**
1847
+ * Controlled total number of top-level items across every page.
1848
+ * @default 0
1849
+ */
1850
+ "totalItems": number;
1851
+ }
1808
1852
  interface DsPanelNav {
1809
1853
  /**
1810
1854
  * @default 'Account'
@@ -2787,6 +2831,11 @@ export namespace Components {
2787
2831
  * @default []
2788
2832
  */
2789
2833
  "columns": TableColumn[];
2834
+ /**
2835
+ * Top-level data-window strategy. Group member loading remains group-owned.
2836
+ * @default 'infinite'
2837
+ */
2838
+ "dataMode": TableDataMode;
2790
2839
  /**
2791
2840
  * Optional result summary footer. When both `displayedCount` and `totalCount` are finite numbers, the table shows “Displaying {displayed} of {total}”.
2792
2841
  */
@@ -2872,11 +2921,6 @@ export namespace Components {
2872
2921
  * Fixed height for the complete header, table frame, and footer composition.
2873
2922
  */
2874
2923
  "height": string | number | undefined;
2875
- /**
2876
- * Enable application-owned incremental loading without pagination.
2877
- * @default false
2878
- */
2879
- "lazyLoading": boolean;
2880
2924
  /**
2881
2925
  * Reset key for a new query/group/sort dataset.
2882
2926
  * @default 'default'
@@ -2913,6 +2957,11 @@ export namespace Components {
2913
2957
  * Maximum scroll-region height. Numbers resolve to CSS pixels.
2914
2958
  */
2915
2959
  "maxHeight": string | number | undefined;
2960
+ /**
2961
+ * Controlled top-level pagination state. Required when dataMode is pagination.
2962
+ * @default null
2963
+ */
2964
+ "pagination": TablePaginationState | null;
2916
2965
  /**
2917
2966
  * Supports {displayed} and {total} placeholders.
2918
2967
  * @default 'Displaying {displayed} of {total}'
@@ -3331,6 +3380,10 @@ export interface DsModalCustomEvent<T> extends CustomEvent<T> {
3331
3380
  detail: T;
3332
3381
  target: HTMLDsModalElement;
3333
3382
  }
3383
+ export interface DsPaginationCustomEvent<T> extends CustomEvent<T> {
3384
+ detail: T;
3385
+ target: HTMLDsPaginationElement;
3386
+ }
3334
3387
  export interface DsPanelNavCustomEvent<T> extends CustomEvent<T> {
3335
3388
  detail: T;
3336
3389
  target: HTMLDsPanelNavElement;
@@ -4048,6 +4101,23 @@ declare global {
4048
4101
  prototype: HTMLDsModalElement;
4049
4102
  new (): HTMLDsModalElement;
4050
4103
  };
4104
+ interface HTMLDsPaginationElementEventMap {
4105
+ "dsChange": PaginationChangeDetail;
4106
+ }
4107
+ interface HTMLDsPaginationElement extends Components.DsPagination, HTMLStencilElement {
4108
+ addEventListener<K extends keyof HTMLDsPaginationElementEventMap>(type: K, listener: (this: HTMLDsPaginationElement, ev: DsPaginationCustomEvent<HTMLDsPaginationElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
4109
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
4110
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
4111
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
4112
+ removeEventListener<K extends keyof HTMLDsPaginationElementEventMap>(type: K, listener: (this: HTMLDsPaginationElement, ev: DsPaginationCustomEvent<HTMLDsPaginationElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
4113
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
4114
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
4115
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
4116
+ }
4117
+ var HTMLDsPaginationElement: {
4118
+ prototype: HTMLDsPaginationElement;
4119
+ new (): HTMLDsPaginationElement;
4120
+ };
4051
4121
  interface HTMLDsPanelNavElementEventMap {
4052
4122
  "dsNavSelect": string;
4053
4123
  "dsNavToggle": boolean;
@@ -4359,6 +4429,7 @@ declare global {
4359
4429
  "dsSelectionChange": TableSelectionChangeDetail;
4360
4430
  "dsLoadMore": TableLoadMoreDetail;
4361
4431
  "dsGroupLoadMore": TableGroupLoadMoreDetail;
4432
+ "dsPaginationChange": PaginationChangeDetail;
4362
4433
  "dsCellAction": TableCellActionDetail;
4363
4434
  "dsRowActivate": TableRowActivateDetail;
4364
4435
  }
@@ -4503,6 +4574,7 @@ declare global {
4503
4574
  "ds-mobile-section-switcher": HTMLDsMobileSectionSwitcherElement;
4504
4575
  "ds-mobile-sheet-nav": HTMLDsMobileSheetNavElement;
4505
4576
  "ds-modal": HTMLDsModalElement;
4577
+ "ds-pagination": HTMLDsPaginationElement;
4506
4578
  "ds-panel-nav": HTMLDsPanelNavElement;
4507
4579
  "ds-panel-sub-nav": HTMLDsPanelSubNavElement;
4508
4580
  "ds-panel-tool-header": HTMLDsPanelToolHeaderElement;
@@ -6354,6 +6426,52 @@ declare namespace LocalJSX {
6354
6426
  */
6355
6427
  "open"?: boolean;
6356
6428
  }
6429
+ interface DsPagination {
6430
+ /**
6431
+ * Localized plural noun used by assistive range announcements.
6432
+ * @default 'items'
6433
+ */
6434
+ "itemLabel"?: string;
6435
+ /**
6436
+ * Accessible name for the pagination navigation region.
6437
+ * @default 'Pagination'
6438
+ */
6439
+ "label"?: string;
6440
+ /**
6441
+ * Prevent interaction while the owner replaces the current data page.
6442
+ * @default false
6443
+ */
6444
+ "loading"?: boolean;
6445
+ /**
6446
+ * Emits the complete next controlled state after a page or page-size request.
6447
+ */
6448
+ "onDsChange"?: (event: DsPaginationCustomEvent<PaginationChangeDetail>) => void;
6449
+ /**
6450
+ * Controlled zero-based page index.
6451
+ * @default 0
6452
+ */
6453
+ "pageIndex"?: number;
6454
+ /**
6455
+ * Controlled number of top-level items on a full page.
6456
+ * @default 25
6457
+ */
6458
+ "pageSize"?: number;
6459
+ /**
6460
+ * Visible page-size control label.
6461
+ * @default 'Items per page'
6462
+ */
6463
+ "pageSizeLabel"?: string;
6464
+ /**
6465
+ * Available page sizes. Assign arrays through JavaScript.
6466
+ * @default [25, 50, 100, 200]
6467
+ */
6468
+ "pageSizeOptions"?: number[];
6469
+ /**
6470
+ * Controlled total number of top-level items across every page.
6471
+ * @default 0
6472
+ */
6473
+ "totalItems"?: number;
6474
+ }
6357
6475
  interface DsPanelNav {
6358
6476
  /**
6359
6477
  * @default 'Account'
@@ -7447,6 +7565,11 @@ declare namespace LocalJSX {
7447
7565
  * @default []
7448
7566
  */
7449
7567
  "columns"?: TableColumn[];
7568
+ /**
7569
+ * Top-level data-window strategy. Group member loading remains group-owned.
7570
+ * @default 'infinite'
7571
+ */
7572
+ "dataMode"?: TableDataMode;
7450
7573
  /**
7451
7574
  * Optional result summary footer. When both `displayedCount` and `totalCount` are finite numbers, the table shows “Displaying {displayed} of {total}”.
7452
7575
  */
@@ -7532,11 +7655,6 @@ declare namespace LocalJSX {
7532
7655
  * Fixed height for the complete header, table frame, and footer composition.
7533
7656
  */
7534
7657
  "height"?: string | number | undefined;
7535
- /**
7536
- * Enable application-owned incremental loading without pagination.
7537
- * @default false
7538
- */
7539
- "lazyLoading"?: boolean;
7540
7658
  /**
7541
7659
  * Reset key for a new query/group/sort dataset.
7542
7660
  * @default 'default'
@@ -7577,9 +7695,15 @@ declare namespace LocalJSX {
7577
7695
  "onDsGroupCollapseChange"?: (event: DsTableCustomEvent<TableGroupCollapseChangeDetail>) => void;
7578
7696
  "onDsGroupLoadMore"?: (event: DsTableCustomEvent<TableGroupLoadMoreDetail>) => void;
7579
7697
  "onDsLoadMore"?: (event: DsTableCustomEvent<TableLoadMoreDetail>) => void;
7698
+ "onDsPaginationChange"?: (event: DsTableCustomEvent<PaginationChangeDetail>) => void;
7580
7699
  "onDsRowActivate"?: (event: DsTableCustomEvent<TableRowActivateDetail>) => void;
7581
7700
  "onDsSelectionChange"?: (event: DsTableCustomEvent<TableSelectionChangeDetail>) => void;
7582
7701
  "onDsSortChange"?: (event: DsTableCustomEvent<TableSortChangeDetail>) => void;
7702
+ /**
7703
+ * Controlled top-level pagination state. Required when dataMode is pagination.
7704
+ * @default null
7705
+ */
7706
+ "pagination"?: TablePaginationState | null;
7583
7707
  /**
7584
7708
  * Supports {displayed} and {total} placeholders.
7585
7709
  * @default 'Displaying {displayed} of {total}'
@@ -8305,6 +8429,15 @@ declare namespace LocalJSX {
8305
8429
  "modalWidth": ModalWidth | string;
8306
8430
  "ariaDescribedby": string | undefined;
8307
8431
  }
8432
+ interface DsPaginationAttributes {
8433
+ "pageIndex": number;
8434
+ "pageSize": number;
8435
+ "totalItems": number;
8436
+ "itemLabel": string;
8437
+ "pageSizeLabel": string;
8438
+ "label": string;
8439
+ "loading": boolean;
8440
+ }
8308
8441
  interface DsPanelNavAttributes {
8309
8442
  "navStyle": NavChromeStyle;
8310
8443
  "disableViewTransition": boolean;
@@ -8535,7 +8668,7 @@ declare namespace LocalJSX {
8535
8668
  "errorHeading": string;
8536
8669
  "errorBody": string;
8537
8670
  "emptyCellLabel": string;
8538
- "lazyLoading": boolean;
8671
+ "dataMode": TableDataMode;
8539
8672
  "loadMoreMode": TableLoadMoreMode;
8540
8673
  "hasMore": boolean;
8541
8674
  "loadingMore": boolean;
@@ -8661,6 +8794,7 @@ declare namespace LocalJSX {
8661
8794
  "ds-mobile-section-switcher": Omit<DsMobileSectionSwitcher, keyof DsMobileSectionSwitcherAttributes> & { [K in keyof DsMobileSectionSwitcher & keyof DsMobileSectionSwitcherAttributes]?: DsMobileSectionSwitcher[K] } & { [K in keyof DsMobileSectionSwitcher & keyof DsMobileSectionSwitcherAttributes as `attr:${K}`]?: DsMobileSectionSwitcherAttributes[K] } & { [K in keyof DsMobileSectionSwitcher & keyof DsMobileSectionSwitcherAttributes as `prop:${K}`]?: DsMobileSectionSwitcher[K] };
8662
8795
  "ds-mobile-sheet-nav": Omit<DsMobileSheetNav, keyof DsMobileSheetNavAttributes> & { [K in keyof DsMobileSheetNav & keyof DsMobileSheetNavAttributes]?: DsMobileSheetNav[K] } & { [K in keyof DsMobileSheetNav & keyof DsMobileSheetNavAttributes as `attr:${K}`]?: DsMobileSheetNavAttributes[K] } & { [K in keyof DsMobileSheetNav & keyof DsMobileSheetNavAttributes as `prop:${K}`]?: DsMobileSheetNav[K] };
8663
8796
  "ds-modal": Omit<DsModal, keyof DsModalAttributes> & { [K in keyof DsModal & keyof DsModalAttributes]?: DsModal[K] } & { [K in keyof DsModal & keyof DsModalAttributes as `attr:${K}`]?: DsModalAttributes[K] } & { [K in keyof DsModal & keyof DsModalAttributes as `prop:${K}`]?: DsModal[K] } & OneOf<"heading", DsModal["heading"], DsModalAttributes["heading"]>;
8797
+ "ds-pagination": Omit<DsPagination, keyof DsPaginationAttributes> & { [K in keyof DsPagination & keyof DsPaginationAttributes]?: DsPagination[K] } & { [K in keyof DsPagination & keyof DsPaginationAttributes as `attr:${K}`]?: DsPaginationAttributes[K] } & { [K in keyof DsPagination & keyof DsPaginationAttributes as `prop:${K}`]?: DsPagination[K] };
8664
8798
  "ds-panel-nav": Omit<DsPanelNav, keyof DsPanelNavAttributes> & { [K in keyof DsPanelNav & keyof DsPanelNavAttributes]?: DsPanelNav[K] } & { [K in keyof DsPanelNav & keyof DsPanelNavAttributes as `attr:${K}`]?: DsPanelNavAttributes[K] } & { [K in keyof DsPanelNav & keyof DsPanelNavAttributes as `prop:${K}`]?: DsPanelNav[K] };
8665
8799
  "ds-panel-sub-nav": Omit<DsPanelSubNav, keyof DsPanelSubNavAttributes> & { [K in keyof DsPanelSubNav & keyof DsPanelSubNavAttributes]?: DsPanelSubNav[K] } & { [K in keyof DsPanelSubNav & keyof DsPanelSubNavAttributes as `attr:${K}`]?: DsPanelSubNavAttributes[K] } & { [K in keyof DsPanelSubNav & keyof DsPanelSubNavAttributes as `prop:${K}`]?: DsPanelSubNav[K] };
8666
8800
  "ds-panel-tool-header": Omit<DsPanelToolHeader, keyof DsPanelToolHeaderAttributes> & { [K in keyof DsPanelToolHeader & keyof DsPanelToolHeaderAttributes]?: DsPanelToolHeader[K] } & { [K in keyof DsPanelToolHeader & keyof DsPanelToolHeaderAttributes as `attr:${K}`]?: DsPanelToolHeaderAttributes[K] } & { [K in keyof DsPanelToolHeader & keyof DsPanelToolHeaderAttributes as `prop:${K}`]?: DsPanelToolHeader[K] };
@@ -8752,6 +8886,7 @@ declare module "@stencil/core" {
8752
8886
  "ds-mobile-section-switcher": LocalJSX.IntrinsicElements["ds-mobile-section-switcher"] & JSXBase.HTMLAttributes<HTMLDsMobileSectionSwitcherElement>;
8753
8887
  "ds-mobile-sheet-nav": LocalJSX.IntrinsicElements["ds-mobile-sheet-nav"] & JSXBase.HTMLAttributes<HTMLDsMobileSheetNavElement>;
8754
8888
  "ds-modal": LocalJSX.IntrinsicElements["ds-modal"] & JSXBase.HTMLAttributes<HTMLDsModalElement>;
8889
+ "ds-pagination": LocalJSX.IntrinsicElements["ds-pagination"] & JSXBase.HTMLAttributes<HTMLDsPaginationElement>;
8755
8890
  "ds-panel-nav": LocalJSX.IntrinsicElements["ds-panel-nav"] & JSXBase.HTMLAttributes<HTMLDsPanelNavElement>;
8756
8891
  "ds-panel-sub-nav": LocalJSX.IntrinsicElements["ds-panel-sub-nav"] & JSXBase.HTMLAttributes<HTMLDsPanelSubNavElement>;
8757
8892
  "ds-panel-tool-header": LocalJSX.IntrinsicElements["ds-panel-tool-header"] & JSXBase.HTMLAttributes<HTMLDsPanelToolHeaderElement>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ds-mo/ui",
3
- "version": "14.2.1",
3
+ "version": "14.3.0",
4
4
  "description": "CompoMo — composable web components styled with TokoMo design tokens",
5
5
  "keywords": [
6
6
  "web-components",