@ds-mo/ui 14.2.1 → 14.4.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 (106) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +174 -19
  4. package/dist/angular/ds-pagination.d.ts +19 -0
  5. package/dist/angular/ds-pagination.js +42 -0
  6. package/dist/angular/ds-select.d.ts +1 -1
  7. package/dist/angular/ds-select.js +3 -3
  8. package/dist/angular/ds-table.d.ts +4 -1
  9. package/dist/angular/ds-table.js +7 -4
  10. package/dist/angular/index.d.ts +1 -1
  11. package/dist/angular/index.js +1 -0
  12. package/dist/angular/proxies.d.ts +1 -0
  13. package/dist/angular/proxies.js +1 -0
  14. package/dist/components/ds-agent-questionnaire.js +1 -1
  15. package/dist/components/ds-agent-response.js +1 -1
  16. package/dist/components/ds-bar-nav.js +1 -1
  17. package/dist/components/ds-bar-title.js +1 -1
  18. package/dist/components/ds-bar-workflow.js +1 -1
  19. package/dist/components/ds-bar-workflow.js.map +1 -1
  20. package/dist/components/ds-checkbox.js +1 -1
  21. package/dist/components/ds-filter-menu.js +1 -1
  22. package/dist/components/ds-input.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-pagination.d.ts +11 -0
  27. package/dist/components/ds-pagination.js +2 -0
  28. package/dist/components/ds-pagination.js.map +1 -0
  29. package/dist/components/ds-panel-nav.js +1 -1
  30. package/dist/components/ds-panel-tool-header.js +1 -1
  31. package/dist/components/ds-panel-tool-search.js +1 -1
  32. package/dist/components/ds-panel-tools.js +1 -1
  33. package/dist/components/ds-radio.js +1 -1
  34. package/dist/components/ds-select.js +1 -1
  35. package/dist/components/ds-select.js.map +1 -1
  36. package/dist/components/ds-shell-app.js +1 -1
  37. package/dist/components/ds-shell-page.js +1 -1
  38. package/dist/components/ds-shell-tools.js +1 -1
  39. package/dist/components/ds-slider.js +1 -1
  40. package/dist/components/ds-swatch-picker.js +1 -1
  41. package/dist/components/ds-switch.js +1 -1
  42. package/dist/components/ds-table.js +1 -1
  43. package/dist/components/ds-table.js.map +1 -1
  44. package/dist/components/ds-toast.js +1 -1
  45. package/dist/components/ds-typing-indicator.js +1 -1
  46. package/dist/components/index.d.ts +7 -0
  47. package/dist/components/{p-D2xWcVv6.js → p-B8q-6a03.js} +2 -2
  48. package/dist/components/{p-BXEiYoDE.js → p-BDXMXH_i.js} +2 -2
  49. package/dist/components/{p-DYzjeIAT.js → p-BHjw0x3L.js} +2 -2
  50. package/dist/components/{p-BOCrvs-v.js → p-Btxwp4lJ.js} +2 -2
  51. package/dist/components/{p-DD5OCVXx.js → p-C5TrNd31.js} +2 -2
  52. package/dist/components/{p-BDCrM8-1.js → p-CDF_nP74.js} +2 -2
  53. package/dist/components/{p-DJ_FsLCc.js → p-CKfdvOZ2.js} +2 -2
  54. package/dist/components/p-CRLRjtsc.js +2 -0
  55. package/dist/components/p-CRLRjtsc.js.map +1 -0
  56. package/dist/components/{p-CRjpqqAI.js → p-CW7ML-3h.js} +2 -2
  57. package/dist/components/{p-DZcFkqXw.js → p-CbqdWBAC.js} +2 -2
  58. package/dist/components/p-Cc5xgR17.js +2 -0
  59. package/dist/components/p-Cc5xgR17.js.map +1 -0
  60. package/dist/components/{p-ChlRsQYY.js → p-ChWnbdFS.js} +2 -2
  61. package/dist/components/{p-I8WGqoyC.js → p-DF52Grw1.js} +2 -2
  62. package/dist/components/{p-DXFtmZ8p.js → p-DhDWmMxD.js} +2 -2
  63. package/dist/components/{p-BpRKUpDT.js → p-DkPNCBA8.js} +2 -2
  64. package/dist/components/{p-DmZupC1-.js → p-O3OuOaj3.js} +2 -2
  65. package/dist/components/{p-C-GNvCk0.js → p-RLiackRN.js} +2 -2
  66. package/dist/components/{p-bR6Ltz4s.js → p-b-Dlg3y_.js} +2 -2
  67. package/dist/docs/components.json +757 -91
  68. package/dist/mcp-data/registry/pagination.json +401 -0
  69. package/dist/mcp-data/registry/registry.json +176 -18
  70. package/dist/mcp-data/registry/select.json +20 -2
  71. package/dist/mcp-data/registry/table.json +79 -39
  72. package/dist/react/components.d.ts +1 -0
  73. package/dist/react/components.js +1 -0
  74. package/dist/react/ds-pagination.d.ts +12 -0
  75. package/dist/react/ds-pagination.js +12 -0
  76. package/dist/react/ds-table.d.ts +2 -1
  77. package/dist/react/ds-table.js +1 -0
  78. package/dist/styles/table.css +11 -0
  79. package/dist/types/components/Pagination/Pagination.d.ts +42 -0
  80. package/dist/types/components/Pagination/index.d.ts +3 -0
  81. package/dist/types/components/Pagination/pagination-model.d.ts +14 -0
  82. package/dist/types/components/Pagination/pagination-types.d.ts +37 -0
  83. package/dist/types/components/Select/Select.d.ts +3 -0
  84. package/dist/types/components/Select/index.d.ts +1 -1
  85. package/dist/types/components/Table/Table.d.ts +22 -3
  86. package/dist/types/components/Table/index.d.ts +1 -1
  87. package/dist/types/components/Table/table-pagination-fit.d.ts +8 -0
  88. package/dist/types/components/Table/table-types.d.ts +33 -0
  89. package/dist/types/components.d.ts +227 -17
  90. package/package.json +1 -1
  91. /package/dist/components/{p-D2xWcVv6.js.map → p-B8q-6a03.js.map} +0 -0
  92. /package/dist/components/{p-BXEiYoDE.js.map → p-BDXMXH_i.js.map} +0 -0
  93. /package/dist/components/{p-DYzjeIAT.js.map → p-BHjw0x3L.js.map} +0 -0
  94. /package/dist/components/{p-BOCrvs-v.js.map → p-Btxwp4lJ.js.map} +0 -0
  95. /package/dist/components/{p-DD5OCVXx.js.map → p-C5TrNd31.js.map} +0 -0
  96. /package/dist/components/{p-BDCrM8-1.js.map → p-CDF_nP74.js.map} +0 -0
  97. /package/dist/components/{p-DJ_FsLCc.js.map → p-CKfdvOZ2.js.map} +0 -0
  98. /package/dist/components/{p-CRjpqqAI.js.map → p-CW7ML-3h.js.map} +0 -0
  99. /package/dist/components/{p-DZcFkqXw.js.map → p-CbqdWBAC.js.map} +0 -0
  100. /package/dist/components/{p-ChlRsQYY.js.map → p-ChWnbdFS.js.map} +0 -0
  101. /package/dist/components/{p-I8WGqoyC.js.map → p-DF52Grw1.js.map} +0 -0
  102. /package/dist/components/{p-DXFtmZ8p.js.map → p-DhDWmMxD.js.map} +0 -0
  103. /package/dist/components/{p-BpRKUpDT.js.map → p-DkPNCBA8.js.map} +0 -0
  104. /package/dist/components/{p-DmZupC1-.js.map → p-O3OuOaj3.js.map} +0 -0
  105. /package/dist/components/{p-C-GNvCk0.js.map → p-RLiackRN.js.map} +0 -0
  106. /package/dist/components/{p-bR6Ltz4s.js.map → p-b-Dlg3y_.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
  },
@@ -1290,6 +1290,17 @@
1290
1290
  pointer-events: none;
1291
1291
  }
1292
1292
 
1293
+ :where(.ds-table__skeleton-image) {
1294
+ border: 0;
1295
+ }
1296
+
1297
+ :where(.ds-table__skeleton-image-shape) {
1298
+ display: flex;
1299
+ inline-size: 100%;
1300
+ block-size: 100%;
1301
+ --ds-control-height: 100%;
1302
+ }
1303
+
1293
1304
  :where(.ds-table__skeleton-row:last-child .ds-table__cell),
1294
1305
  :where(.ds-table__load-body .ds-table__load-row:last-child .ds-table__load-cell),
1295
1306
  :where(.ds-table__group:last-child > .ds-table__group-load-row:last-child .ds-table__load-cell),
@@ -0,0 +1,42 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ import type { PaginationChangeDetail, PaginationPageSizeMode } 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
+ /** Whether pageSize is a fixed choice or a measured Fit snapshot. */
9
+ pageSizeMode: PaginationPageSizeMode;
10
+ /** Controlled total number of top-level items across every page. */
11
+ totalItems: number;
12
+ /** Available page sizes. Assign arrays through JavaScript. */
13
+ pageSizeOptions: number[];
14
+ /** Include the Fit to page choice. */
15
+ fitToPage: boolean;
16
+ /** Effective whole-item capacity to request when Fit is selected. */
17
+ fitPageSize: number | undefined;
18
+ /** Full choice-list label for Fit. */
19
+ fitPageSizeLabel: string;
20
+ /** Compact closed-trigger label while Fit is selected. */
21
+ fitPageSizeTriggerLabel: string;
22
+ /** Localized plural noun used by assistive range announcements. */
23
+ itemLabel: string;
24
+ /** Visible page-size control label. */
25
+ pageSizeLabel: string;
26
+ /** Accessible page-size control label. Defaults to “{pageSizeLabel} per page”. */
27
+ pageSizeAriaLabel: string | undefined;
28
+ /** Accessible name for the pagination navigation region. */
29
+ label: string;
30
+ /** Prevent interaction while the owner replaces the current data page. */
31
+ loading: boolean;
32
+ /** Emits the complete next controlled state after a page or page-size request. */
33
+ dsChange: EventEmitter<PaginationChangeDetail>;
34
+ private readonly pageSizeControlId;
35
+ private requestPage;
36
+ private requestPageSize;
37
+ private handleKeyDown;
38
+ private get resolvedFitPageSize();
39
+ private get resolvedState();
40
+ render(): any;
41
+ }
42
+ //# sourceMappingURL=Pagination.d.ts.map
@@ -0,0 +1,3 @@
1
+ export { Pagination } from './Pagination';
2
+ export type { PaginationChangeDetail, PaginationChangeReason, PaginationPageSizeMode, PaginationState, } from './pagination-types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,14 @@
1
+ import type { PaginationPageSizeMode, 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
+ pageSizeMode: PaginationPageSizeMode;
7
+ totalItems: number;
8
+ totalPages: number;
9
+ firstItem: number;
10
+ lastItem: number;
11
+ pageSizeOptions: number[];
12
+ }
13
+ export declare function resolvePaginationState(state: Pick<PaginationState, 'pageIndex' | 'pageSize' | 'pageSizeMode' | 'totalItems' | 'pageSizeOptions'>): ResolvedPaginationState;
14
+ //# sourceMappingURL=pagination-model.d.ts.map
@@ -0,0 +1,37 @@
1
+ export type PaginationChangeReason = 'page' | 'page-size' | 'fit';
2
+ export type PaginationPageSizeMode = 'fixed' | 'fit';
3
+ /** Controlled pagination state shared by Pagination and pagination-aware consumers. */
4
+ export interface PaginationState {
5
+ /** Zero-based page index. */
6
+ pageIndex: number;
7
+ /** Number of top-level items on a full page. */
8
+ pageSize: number;
9
+ /** Whether pageSize is a chosen fixed value or a measured Fit snapshot. */
10
+ pageSizeMode?: PaginationPageSizeMode;
11
+ /** Total number of top-level items across every page. */
12
+ totalItems: number;
13
+ /** Available page sizes. Defaults to 25, 50, 100, and 200. */
14
+ pageSizeOptions?: number[];
15
+ /** Include a Fit to page option. The owner supplies the effective fitted size. */
16
+ fitToPage?: boolean;
17
+ /** Effective page size proposed when Fit to page is selected. */
18
+ fitPageSize?: number;
19
+ /** Full option label for Fit in the open choice list. */
20
+ fitPageSizeLabel?: string;
21
+ /** Compact trigger label while Fit is selected. */
22
+ fitPageSizeTriggerLabel?: string;
23
+ /** Localized plural noun used by assistive range announcements. */
24
+ itemLabel?: string;
25
+ /** Visible label for the page-size selector. */
26
+ pageSizeLabel?: string;
27
+ /** Accessible name for the pagination navigation region. */
28
+ ariaLabel?: string;
29
+ }
30
+ /** Complete next controlled state emitted for a page or page-size request. */
31
+ export interface PaginationChangeDetail extends PaginationState {
32
+ previousPageIndex: number;
33
+ previousPageSize: number;
34
+ previousPageSizeMode: PaginationPageSizeMode;
35
+ reason: PaginationChangeReason;
36
+ }
37
+ //# sourceMappingURL=pagination-types.d.ts.map
@@ -8,6 +8,7 @@ export type SelectSize = 'lg' | 'md' | 'sm' | 'xs';
8
8
  export type SelectWidth = ControlWidth;
9
9
  export type SelectPopupAlign = 'start' | 'end';
10
10
  export type SelectValue = string | string[];
11
+ export type SelectIndicator = 'down' | 'up-down';
11
12
  export interface SelectOptionActionDetail {
12
13
  value: string;
13
14
  anchorId: string;
@@ -58,6 +59,8 @@ export declare class Select {
58
59
  hasBorder: boolean;
59
60
  /** Optional trigger prefix icon name. */
60
61
  icon: string | undefined;
62
+ /** Trailing choice indicator. Use up-down for compact value steppers such as page size. */
63
+ indicator: SelectIndicator;
61
64
  /** Show the clear footer action when a value exists. */
62
65
  allowClear: boolean;
63
66
  /** Localized clear action label. */
@@ -1,2 +1,2 @@
1
- export type { SelectBackground, SelectOption, SelectSection, SelectSize, SelectValue, SelectWidth, } from './Select';
1
+ export type { SelectBackground, SelectIndicator, SelectOption, SelectSection, SelectSize, SelectValue, SelectWidth, } from './Select';
2
2
  //# sourceMappingURL=index.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. */
@@ -44,6 +45,7 @@ export declare class Table {
44
45
  selectedRowIds: string[];
45
46
  /** Initial loading state. Existing rows stay visible; incremental loading uses loadingMore. */
46
47
  loading: boolean;
48
+ /** Initial-loading rows. Defaults to ten so bounded tables retain a useful filled viewport. */
47
49
  skeletonRows: number;
48
50
  emptyHeading: string;
49
51
  emptyBody: string;
@@ -52,8 +54,10 @@ export declare class Table {
52
54
  errorHeading: string;
53
55
  errorBody: string;
54
56
  emptyCellLabel: string;
55
- /** Enable application-owned incremental loading without pagination. */
56
- lazyLoading: boolean;
57
+ /** Top-level data-window strategy. Group member loading remains group-owned. */
58
+ dataMode: TableDataMode;
59
+ /** Controlled top-level pagination state. Required when dataMode is pagination. */
60
+ pagination: TablePaginationState | null;
57
61
  loadMoreMode: TableLoadMoreMode;
58
62
  hasMore: boolean;
59
63
  loadingMore: boolean;
@@ -84,6 +88,7 @@ export declare class Table {
84
88
  dsSelectionChange: EventEmitter<TableSelectionChangeDetail>;
85
89
  dsLoadMore: EventEmitter<TableLoadMoreDetail>;
86
90
  dsGroupLoadMore: EventEmitter<TableGroupLoadMoreDetail>;
91
+ dsPaginationChange: EventEmitter<PaginationChangeDetail>;
87
92
  dsCellAction: EventEmitter<TableCellActionDetail>;
88
93
  dsRowActivate: EventEmitter<TableRowActivateDetail>;
89
94
  private overflowStart;
@@ -93,6 +98,7 @@ export declare class Table {
93
98
  private activeStickyGroupId;
94
99
  private viewportFitSettled;
95
100
  private headerPresent;
101
+ private fitPageSize;
96
102
  private rootEl;
97
103
  private viewportEl;
98
104
  private frameEl;
@@ -101,12 +107,17 @@ export declare class Table {
101
107
  private stickyHeaderTableEl;
102
108
  private tableEl;
103
109
  private sentinelEl;
110
+ private incrementalWindowActive;
104
111
  private readonly groupSentinelEls;
105
112
  private previousModelWarning;
106
113
  private hasLoaded;
107
114
  private renderedModel;
108
115
  private stickyGroupConnected;
109
116
  private headerSlotObserver;
117
+ private fitResizeObserver;
118
+ private fitObservedViewport;
119
+ private fitObservedTable;
120
+ private fitMeasurementPending;
110
121
  private readonly layoutController;
111
122
  private readonly loadController;
112
123
  private readonly groupLoadController;
@@ -126,15 +137,21 @@ export declare class Table {
126
137
  handleDataChange(): void;
127
138
  handleLoadIdentityChange(): void;
128
139
  handleLazyConfigurationChange(): void;
140
+ handleDataModeChange(): void;
141
+ handlePaginationChange(pagination: TablePaginationState | null, previous: TablePaginationState | null): void;
129
142
  handleLoadingMoreChange(loading: boolean): void;
130
143
  handleLoadMoreErrorChange(error: string | undefined): void;
131
144
  handleHasMoreChange(hasMore: boolean, hadMore: boolean): void;
132
145
  private get grouped();
146
+ private get hasIncrementalState();
133
147
  private get selectable();
134
148
  private get documentStickyHeader();
135
149
  private get fixedHeight();
136
150
  private get boundedComposition();
137
151
  private get containedScroll();
152
+ private connectFitObserver;
153
+ private disconnectFitObserver;
154
+ private readonly syncFitPageSize;
138
155
  private currentLoadedRows;
139
156
  private currentLoadedRowCount;
140
157
  private createRenderModel;
@@ -166,6 +183,8 @@ export declare class Table {
166
183
  private renderStickyGroup;
167
184
  private renderDataBodies;
168
185
  private renderSkeletonBody;
186
+ private renderSkeletonCell;
187
+ private renderSkeletonCellContent;
169
188
  private renderStateBody;
170
189
  private renderLazyBody;
171
190
  private renderDocumentStickyHeader;
@@ -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, TableCellSkeleton, TableCellText, TableCellTag, TableCellTagVariant, TableCellValue, TableSkeletonWidth, 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
@@ -0,0 +1,8 @@
1
+ export interface TableFitPageSizeInput {
2
+ viewportBlockSize: number;
3
+ headerBlockSize: number;
4
+ itemBlockSize: number;
5
+ }
6
+ /** Resolve how many complete top-level rows or group headers fit below the column header. */
7
+ export declare function resolveTableFitPageSize(input: TableFitPageSizeInput): number | undefined;
8
+ //# sourceMappingURL=table-pagination-fit.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). */
@@ -119,6 +121,30 @@ export type TableCellTag = TableCellTagBase & ({
119
121
  text: string;
120
122
  });
121
123
  export type TableCellValue = string | number | null | undefined | TableCellText | TableCellPrimaryText | TableCellTag | TableCellIcon | TableCellImage | TableCellAction | TableCellEmpty | TableCellBlank;
124
+ export type TableSkeletonWidth = string | number;
125
+ /** Representative loading geometry for one table column. */
126
+ export type TableCellSkeleton = {
127
+ kind: 'text';
128
+ /** One track for scalar content, two for primary and secondary copy. */
129
+ lines?: 1 | 2;
130
+ primaryWidth?: TableSkeletonWidth;
131
+ secondaryWidth?: TableSkeletonWidth;
132
+ } | {
133
+ kind: 'image';
134
+ } | {
135
+ kind: 'tag';
136
+ width?: TableSkeletonWidth;
137
+ } | {
138
+ kind: 'icon';
139
+ rounded?: boolean;
140
+ } | {
141
+ kind: 'action';
142
+ /** Icon actions use a square control canvas; labeled actions may provide a wider width. */
143
+ variant?: 'icon' | 'label' | 'icon-label';
144
+ width?: TableSkeletonWidth;
145
+ } | {
146
+ kind: 'blank';
147
+ };
122
148
  export interface TableColumn {
123
149
  /** Stable column identity. */
124
150
  id: string;
@@ -145,6 +171,8 @@ export interface TableColumn {
145
171
  * geometry and may host grouped table-level controls in their header.
146
172
  */
147
173
  kind?: 'data' | 'action';
174
+ /** Representative loading geometry for this column. Defaults to one text line. */
175
+ skeleton?: TableCellSkeleton;
148
176
  }
149
177
  export interface TableRow {
150
178
  /** Stable identity, unique across all groups. */
@@ -217,5 +245,10 @@ export interface TableGroupCollapseChangeDetail {
217
245
  export interface TableRowActivateDetail {
218
246
  rowId: string;
219
247
  }
248
+ /** Controlled top-level pagination state. Rows or groups contain only the active page. */
249
+ export interface TablePaginationState extends PaginationState {
250
+ /** Change to request one fresh fitted-capacity snapshot for the current query shape. */
251
+ fitIdentity?: string | number;
252
+ }
220
253
  export {};
221
254
  //# sourceMappingURL=table-types.d.ts.map