@ds-mo/ui 13.16.1 → 13.17.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.
- package/dist/.package-ready.json +1 -1
- package/dist/agent-patterns.json +1 -1
- package/dist/agent.json +5 -5
- package/dist/components/ds-table.js +1 -1
- package/dist/components/ds-table.js.map +1 -1
- package/dist/docs/components.json +1 -1
- package/dist/mcp-data/registry/registry.json +4 -4
- package/dist/mcp-data/registry/table.json +7 -7
- package/dist/styles/table.css +105 -0
- package/dist/types/components/Table/Table.d.ts +2 -3
- package/dist/types/components/Table/table-layout-controller.d.ts +0 -3
- package/package.json +1 -1
package/dist/styles/table.css
CHANGED
|
@@ -163,6 +163,66 @@
|
|
|
163
163
|
--_table-selection-column-contribution: var(--_table-selection-column-inline-size);
|
|
164
164
|
}
|
|
165
165
|
|
|
166
|
+
/*
|
|
167
|
+
* A contained grouped table uses native sticky positioning without a scroll
|
|
168
|
+
* listener or duplicated section lane. Turning its table formatting boxes into
|
|
169
|
+
* explicit blocks makes every real tbody a section boundary; shared grid tracks
|
|
170
|
+
* retain exact header/body alignment while the browser performs push-off in the
|
|
171
|
+
* same layout pass as scrolling and container resize.
|
|
172
|
+
*/
|
|
173
|
+
:where(.ds-table__table--native-group-sticky) {
|
|
174
|
+
display: block;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
:where(.ds-table__table--native-group-sticky > colgroup) {
|
|
178
|
+
display: none;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
:where(.ds-table__table--native-group-sticky > .ds-table__head),
|
|
182
|
+
:where(.ds-table__table--native-group-sticky > .ds-table__body) {
|
|
183
|
+
display: block;
|
|
184
|
+
inline-size: 100%;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
:where(.ds-table__table--native-group-sticky > .ds-table__group) {
|
|
188
|
+
position: relative;
|
|
189
|
+
contain: layout style;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
:where(.ds-table__table--native-group-sticky .ds-table__header-row),
|
|
193
|
+
:where(.ds-table__table--native-group-sticky .ds-table__row),
|
|
194
|
+
:where(.ds-table__table--native-group-sticky .ds-table__skeleton-row) {
|
|
195
|
+
display: grid;
|
|
196
|
+
grid-template-columns: var(--_table-grid-template-columns);
|
|
197
|
+
inline-size: 100%;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
:where(.ds-table__table--native-group-sticky .ds-table__group-row),
|
|
201
|
+
:where(.ds-table__table--native-group-sticky .ds-table__state-row),
|
|
202
|
+
:where(.ds-table__table--native-group-sticky .ds-table__load-row) {
|
|
203
|
+
display: block;
|
|
204
|
+
inline-size: 100%;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
:where(.ds-table__table--native-group-sticky .ds-table__header-cell),
|
|
208
|
+
:where(.ds-table__table--native-group-sticky .ds-table__cell),
|
|
209
|
+
:where(.ds-table__table--native-group-sticky .ds-table__group-cell),
|
|
210
|
+
:where(.ds-table__table--native-group-sticky .ds-table__state-cell),
|
|
211
|
+
:where(.ds-table__table--native-group-sticky .ds-table__load-cell) {
|
|
212
|
+
display: block;
|
|
213
|
+
inline-size: auto;
|
|
214
|
+
width: auto;
|
|
215
|
+
max-inline-size: none;
|
|
216
|
+
max-width: none;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
:where(.ds-table__table--native-group-sticky .ds-table__group-cell),
|
|
220
|
+
:where(.ds-table__table--native-group-sticky .ds-table__state-cell),
|
|
221
|
+
:where(.ds-table__table--native-group-sticky .ds-table__load-cell) {
|
|
222
|
+
inline-size: 100%;
|
|
223
|
+
width: 100%;
|
|
224
|
+
}
|
|
225
|
+
|
|
166
226
|
:where(.ds-table__caption-bar),
|
|
167
227
|
:where(.ds-table__footer) {
|
|
168
228
|
box-sizing: border-box;
|
|
@@ -184,6 +244,20 @@
|
|
|
184
244
|
color: var(--color-foreground-primary);
|
|
185
245
|
}
|
|
186
246
|
|
|
247
|
+
:where(.ds-table__caption-content) {
|
|
248
|
+
display: grid;
|
|
249
|
+
flex: 1 1 auto;
|
|
250
|
+
grid-template-columns: minmax(0, 1fr);
|
|
251
|
+
align-items: center;
|
|
252
|
+
box-sizing: border-box;
|
|
253
|
+
min-inline-size: 0;
|
|
254
|
+
max-inline-size: 100%;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
:where(.ds-table__caption-content > slot) {
|
|
258
|
+
display: contents;
|
|
259
|
+
}
|
|
260
|
+
|
|
187
261
|
:where(.ds-table--caption-visible .ds-table__frame),
|
|
188
262
|
:where(.ds-table--caption-visible .ds-table__viewport) {
|
|
189
263
|
border-start-start-radius: 0;
|
|
@@ -306,9 +380,18 @@
|
|
|
306
380
|
inline-size: 100%;
|
|
307
381
|
block-size: var(--_table-row-min-block-size);
|
|
308
382
|
overflow: hidden;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
:where(.ds-table--document-sticky-header .ds-table__sticky-group) {
|
|
309
386
|
will-change: inset-block-start;
|
|
310
387
|
}
|
|
311
388
|
|
|
389
|
+
:where(.ds-table--contained-sticky-header .ds-table__sticky-group) {
|
|
390
|
+
inset-block-start: var(--_table-header-min-block-size);
|
|
391
|
+
transform: translateY(var(--_table-sticky-group-push, 0));
|
|
392
|
+
will-change: transform;
|
|
393
|
+
}
|
|
394
|
+
|
|
312
395
|
:where(.ds-table__sticky-group .ds-table__group-content) {
|
|
313
396
|
position: relative;
|
|
314
397
|
}
|
|
@@ -452,6 +535,21 @@
|
|
|
452
535
|
vertical-align: top;
|
|
453
536
|
}
|
|
454
537
|
|
|
538
|
+
/*
|
|
539
|
+
* Native table cells add their block padding outside the declared content
|
|
540
|
+
* height and grow together with their row. Grid items use border-box sizing,
|
|
541
|
+
* so restore intrinsic sizing and grid-track stretch for the grouped-sticky
|
|
542
|
+
* renderer instead of turning the native recipe's base sizes into hard caps.
|
|
543
|
+
*/
|
|
544
|
+
:where(.ds-table__table--native-group-sticky .ds-table__header-cell) {
|
|
545
|
+
min-block-size: var(--_table-header-min-block-size);
|
|
546
|
+
block-size: auto;
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
:where(.ds-table__table--native-group-sticky .ds-table__cell) {
|
|
550
|
+
block-size: auto;
|
|
551
|
+
}
|
|
552
|
+
|
|
455
553
|
:where(.ds-table__header-cell + .ds-table__header-cell) {
|
|
456
554
|
border-inline-start: 0;
|
|
457
555
|
}
|
|
@@ -991,6 +1089,13 @@
|
|
|
991
1089
|
background: transparent;
|
|
992
1090
|
}
|
|
993
1091
|
|
|
1092
|
+
/* Each real section owns one sticky row and its own push-off boundary. */
|
|
1093
|
+
:where(.ds-table--contained-sticky-header .ds-table__group-row--native-sticky) {
|
|
1094
|
+
position: sticky;
|
|
1095
|
+
inset-block-start: var(--_table-header-min-block-size);
|
|
1096
|
+
z-index: 5;
|
|
1097
|
+
}
|
|
1098
|
+
|
|
994
1099
|
/* Intentful groups resolve from their faint signal into neutral at the trailing edge. */
|
|
995
1100
|
:where(.ds-table__group-cell--intent-brand),
|
|
996
1101
|
:where(.ds-table__group-cell--intent-negative),
|
|
@@ -81,9 +81,7 @@ export declare class Table {
|
|
|
81
81
|
private announcement;
|
|
82
82
|
private activeStickyGroupId;
|
|
83
83
|
private viewportFitSettled;
|
|
84
|
-
private
|
|
85
|
-
private headerCopyPresent;
|
|
86
|
-
private headerTrailingPresent;
|
|
84
|
+
private headerPresent;
|
|
87
85
|
private rootEl;
|
|
88
86
|
private viewportEl;
|
|
89
87
|
private frameEl;
|
|
@@ -108,6 +106,7 @@ export declare class Table {
|
|
|
108
106
|
private syncHeaderSlotPresence;
|
|
109
107
|
private connectHeaderSlotObserver;
|
|
110
108
|
private connectStickyGroup;
|
|
109
|
+
private syncStickyGroupConnection;
|
|
111
110
|
private disconnectStickyGroup;
|
|
112
111
|
private readonly updateStickyGroup;
|
|
113
112
|
handleStructureChange(): void;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export interface TableLayoutElements {
|
|
2
2
|
viewport: HTMLElement | null;
|
|
3
|
-
table: HTMLTableElement | null;
|
|
4
3
|
stickyHeaderTable: HTMLTableElement | null;
|
|
5
4
|
collapseAllOverlay: HTMLElement | null;
|
|
6
5
|
frame: HTMLElement | null;
|
|
@@ -28,7 +27,6 @@ export interface TableLayoutMetricInput {
|
|
|
28
27
|
scrollInlineSize: number;
|
|
29
28
|
scrollBlockSize: number;
|
|
30
29
|
scrollInlineOffset: number;
|
|
31
|
-
tableInlineSize: number;
|
|
32
30
|
collapseHeadBlockStart?: number;
|
|
33
31
|
collapseFrameBlockStart?: number;
|
|
34
32
|
}
|
|
@@ -51,7 +49,6 @@ export declare class TableLayoutController {
|
|
|
51
49
|
private readonly options;
|
|
52
50
|
private connected;
|
|
53
51
|
private connectedViewport;
|
|
54
|
-
private observedTable;
|
|
55
52
|
private resizeObserver;
|
|
56
53
|
private frame;
|
|
57
54
|
private overflow;
|