@ds-mo/ui 13.11.1 → 13.13.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 (167) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +307 -10
  4. package/dist/angular/ds-button-filled.d.ts +1 -1
  5. package/dist/angular/ds-button-filled.js +3 -3
  6. package/dist/angular/ds-button-unfilled.d.ts +1 -1
  7. package/dist/angular/ds-button-unfilled.js +3 -3
  8. package/dist/angular/ds-mobile-header.d.ts +1 -1
  9. package/dist/angular/ds-mobile-header.js +3 -3
  10. package/dist/angular/ds-tab-group.d.ts +1 -1
  11. package/dist/angular/ds-tab-group.js +3 -3
  12. package/dist/angular/ds-table.d.ts +31 -0
  13. package/dist/angular/ds-table.js +57 -0
  14. package/dist/angular/ds-tag.d.ts +1 -1
  15. package/dist/angular/ds-tag.js +3 -3
  16. package/dist/angular/index.d.ts +1 -1
  17. package/dist/angular/index.js +1 -0
  18. package/dist/angular/proxies.d.ts +1 -0
  19. package/dist/angular/proxies.js +1 -0
  20. package/dist/components/ds-agent-response.js +1 -1
  21. package/dist/components/ds-banner.js +1 -1
  22. package/dist/components/ds-bar-nav.js +1 -1
  23. package/dist/components/ds-bar-title.js +1 -1
  24. package/dist/components/ds-bar-workflow.js +1 -1
  25. package/dist/components/ds-bar-workflow.js.map +1 -1
  26. package/dist/components/ds-button-filled.js +1 -1
  27. package/dist/components/ds-button-unfilled.js +1 -1
  28. package/dist/components/ds-card-chart.js +1 -1
  29. package/dist/components/ds-card-overview.js +1 -1
  30. package/dist/components/ds-card-overview.js.map +1 -1
  31. package/dist/components/ds-card-setting.js +1 -1
  32. package/dist/components/ds-chart-legend.js +1 -1
  33. package/dist/components/ds-chart-legend.js.map +1 -1
  34. package/dist/components/ds-checkbox.js +1 -1
  35. package/dist/components/ds-chip.js +1 -1
  36. package/dist/components/ds-chip.js.map +1 -1
  37. package/dist/components/ds-code-block.js +1 -1
  38. package/dist/components/ds-conversation-list-item.js +1 -1
  39. package/dist/components/ds-conversation-list-item.js.map +1 -1
  40. package/dist/components/ds-input.js +1 -1
  41. package/dist/components/ds-input.js.map +1 -1
  42. package/dist/components/ds-markdown.js +1 -1
  43. package/dist/components/ds-menu.js +1 -1
  44. package/dist/components/ds-message-actions.js +1 -1
  45. package/dist/components/ds-message-composer.js +1 -1
  46. package/dist/components/ds-message-scroller.js +1 -1
  47. package/dist/components/ds-mobile-bar-nav.js +1 -1
  48. package/dist/components/ds-mobile-header.js +1 -1
  49. package/dist/components/ds-mobile-section-switcher.js +1 -1
  50. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  51. package/dist/components/ds-modal.js +1 -1
  52. package/dist/components/ds-panel-nav.js +1 -1
  53. package/dist/components/ds-panel-sub-nav.js +1 -1
  54. package/dist/components/ds-panel-sub-nav.js.map +1 -1
  55. package/dist/components/ds-panel-tool-header.js +1 -1
  56. package/dist/components/ds-panel-tool-search.js +1 -1
  57. package/dist/components/ds-panel-tools.js +1 -1
  58. package/dist/components/ds-radio.js +1 -1
  59. package/dist/components/ds-radio.js.map +1 -1
  60. package/dist/components/ds-scroll-overlay.js +1 -1
  61. package/dist/components/ds-scroll-overlay.js.map +1 -1
  62. package/dist/components/ds-select.js +1 -1
  63. package/dist/components/ds-select.js.map +1 -1
  64. package/dist/components/ds-shell-app.js +1 -1
  65. package/dist/components/ds-shell-app.js.map +1 -1
  66. package/dist/components/ds-shell-tools.js +1 -1
  67. package/dist/components/ds-skeleton.js +1 -1
  68. package/dist/components/ds-slider.js +1 -1
  69. package/dist/components/ds-switch.js +1 -1
  70. package/dist/components/ds-tab-group.js +1 -1
  71. package/dist/components/ds-table.d.ts +11 -0
  72. package/dist/components/ds-table.js +2 -0
  73. package/dist/components/ds-table.js.map +1 -0
  74. package/dist/components/ds-tag.js +1 -1
  75. package/dist/components/ds-tag.js.map +1 -1
  76. package/dist/components/ds-toast.js +1 -1
  77. package/dist/components/ds-typing-indicator.js +1 -1
  78. package/dist/components/index.d.ts +30 -0
  79. package/dist/components/p-B1JB0Zn-.js +2 -0
  80. package/dist/components/{p-DgglLVCj.js.map → p-B1JB0Zn-.js.map} +1 -1
  81. package/dist/components/p-B2t8alvH.js +2 -0
  82. package/dist/components/{p-DK4PGrHm.js.map → p-B2t8alvH.js.map} +1 -1
  83. package/dist/components/p-BAGTb6cZ.js +2 -0
  84. package/dist/components/p-BAGTb6cZ.js.map +1 -0
  85. package/dist/components/p-BEEYhbIb.js +2 -0
  86. package/dist/components/p-BEEYhbIb.js.map +1 -0
  87. package/dist/components/{p-BRajO-Za.js → p-BFMV9TJO.js} +2 -2
  88. package/dist/components/p-BNHPCCw8.js +2 -0
  89. package/dist/components/{p-DCN04sgt.js.map → p-BNHPCCw8.js.map} +1 -1
  90. package/dist/components/{p-DJGdoPMG.js → p-BUZLhvs1.js} +2 -2
  91. package/dist/components/p-BgaF83uh.js +2 -0
  92. package/dist/components/{p-C5gZHZHU.js.map → p-BgaF83uh.js.map} +1 -1
  93. package/dist/components/p-Br0fwWUG.js +2 -0
  94. package/dist/components/{p-BHb3Ws8e.js.map → p-Br0fwWUG.js.map} +1 -1
  95. package/dist/components/{p-DcmqsAMP.js → p-BydCwx7x.js} +2 -2
  96. package/dist/components/p-C3Z01Glr.js +2 -0
  97. package/dist/components/p-C3Z01Glr.js.map +1 -0
  98. package/dist/components/{p-Dg9qiMDa.js → p-C9StMCWg.js} +2 -2
  99. package/dist/components/{p-BX57q1Lo.js → p-CSlTJWFG.js} +2 -2
  100. package/dist/components/{p-BQ7Nzx9A.js → p-Ch5yT3UA.js} +2 -2
  101. package/dist/components/p-Cw1bbiCG.js +2 -0
  102. package/dist/components/p-Cw1bbiCG.js.map +1 -0
  103. package/dist/components/p-CzV4gIxd.js +2 -0
  104. package/dist/components/p-CzV4gIxd.js.map +1 -0
  105. package/dist/components/p-D-F8eyXy.js +2 -0
  106. package/dist/components/p-D-F8eyXy.js.map +1 -0
  107. package/dist/components/p-DGvzGGcu.js +2 -0
  108. package/dist/components/{p-CIlO_j3q.js.map → p-DGvzGGcu.js.map} +1 -1
  109. package/dist/components/{p-DkhE3BsH.js → p-bLCbOPYa.js} +2 -2
  110. package/dist/components/p-cPh32CFB.js +2 -0
  111. package/dist/components/{p-BnGJrBPG.js.map → p-cPh32CFB.js.map} +1 -1
  112. package/dist/docs/components.json +1590 -59
  113. package/dist/lib/components/ButtonFilled/ButtonFilled.d.ts +2 -0
  114. package/dist/lib/components/MobileHeader/mobile-header-types.d.ts +3 -2
  115. package/dist/mcp-data/registry/button-filled.json +20 -1
  116. package/dist/mcp-data/registry/button-unfilled.json +20 -1
  117. package/dist/mcp-data/registry/mobile-header.json +48 -10
  118. package/dist/mcp-data/registry/mobile-sheet-nav.json +2 -2
  119. package/dist/mcp-data/registry/registry.json +309 -9
  120. package/dist/mcp-data/registry/shell-app.json +4 -2
  121. package/dist/mcp-data/registry/shell-tools.json +4 -4
  122. package/dist/mcp-data/registry/tab-group.json +22 -2
  123. package/dist/mcp-data/registry/table.json +777 -0
  124. package/dist/mcp-data/registry/tag.json +22 -3
  125. package/dist/react/components.d.ts +1 -0
  126. package/dist/react/components.js +1 -0
  127. package/dist/react/ds-table.d.ts +17 -0
  128. package/dist/react/ds-table.js +19 -0
  129. package/dist/styles/table.css +874 -0
  130. package/dist/types/components/ButtonFilled/ButtonFilled.d.ts +2 -0
  131. package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +2 -0
  132. package/dist/types/components/MobileHeader/MobileHeader.d.ts +8 -3
  133. package/dist/types/components/MobileHeader/index.d.ts +1 -1
  134. package/dist/types/components/MobileHeader/mobile-header-types.d.ts +3 -2
  135. package/dist/types/components/ShellApp/ShellApp.d.ts +8 -0
  136. package/dist/types/components/TabGroup/TabGroup.d.ts +3 -0
  137. package/dist/types/components/Table/Table.d.ts +126 -0
  138. package/dist/types/components/Table/index.d.ts +2 -0
  139. package/dist/types/components/Table/table-model.d.ts +29 -0
  140. package/dist/types/components/Table/table-types.d.ts +189 -0
  141. package/dist/types/components/Tag/Tag.d.ts +2 -0
  142. package/dist/types/components.d.ts +417 -6
  143. package/package.json +3 -2
  144. package/dist/components/p-BHb3Ws8e.js +0 -2
  145. package/dist/components/p-BnGJrBPG.js +0 -2
  146. package/dist/components/p-C5gZHZHU.js +0 -2
  147. package/dist/components/p-CIlO_j3q.js +0 -2
  148. package/dist/components/p-CVmtbj-6.js +0 -2
  149. package/dist/components/p-CVmtbj-6.js.map +0 -1
  150. package/dist/components/p-DAbaMtEX.js +0 -2
  151. package/dist/components/p-DAbaMtEX.js.map +0 -1
  152. package/dist/components/p-DCN04sgt.js +0 -2
  153. package/dist/components/p-DK4PGrHm.js +0 -2
  154. package/dist/components/p-DW9p068S.js +0 -2
  155. package/dist/components/p-DW9p068S.js.map +0 -1
  156. package/dist/components/p-DgglLVCj.js +0 -2
  157. package/dist/components/p-Xftomzsv.js +0 -2
  158. package/dist/components/p-Xftomzsv.js.map +0 -1
  159. package/dist/components/p-c1pY-Mqq.js +0 -2
  160. package/dist/components/p-c1pY-Mqq.js.map +0 -1
  161. /package/dist/components/{p-BRajO-Za.js.map → p-BFMV9TJO.js.map} +0 -0
  162. /package/dist/components/{p-DJGdoPMG.js.map → p-BUZLhvs1.js.map} +0 -0
  163. /package/dist/components/{p-DcmqsAMP.js.map → p-BydCwx7x.js.map} +0 -0
  164. /package/dist/components/{p-Dg9qiMDa.js.map → p-C9StMCWg.js.map} +0 -0
  165. /package/dist/components/{p-BX57q1Lo.js.map → p-CSlTJWFG.js.map} +0 -0
  166. /package/dist/components/{p-BQ7Nzx9A.js.map → p-Ch5yT3UA.js.map} +0 -0
  167. /package/dist/components/{p-DkhE3BsH.js.map → p-bLCbOPYa.js.map} +0 -0
@@ -0,0 +1,874 @@
1
+ /*
2
+ * Renderer-neutral table recipe.
3
+ *
4
+ * Import `@ds-mo/ui/table.css` when product-owned native table markup needs
5
+ * the same visual primitives as `<ds-table>`. Selectors intentionally use
6
+ * zero specificity so applications can restyle any layer without fighting
7
+ * the recipe. The component consumes this exact source internally.
8
+ */
9
+
10
+ :where(.ds-table) {
11
+ --_table-cell-track-min-block-size: calc(
12
+ var(--dimension-size-400) - var(--dimension-space-050)
13
+ );
14
+ --_table-cell-track-padding-inline: calc(
15
+ var(--dimension-space-075) - var(--dimension-space-025)
16
+ );
17
+ --_table-cell-track-label-inset: var(--dimension-space-025);
18
+ --_table-image-block-size: calc(
19
+ var(--dimension-size-800) - var(--dimension-space-150)
20
+ );
21
+ --_table-surface: var(--ds-table-surface, var(--color-background-primary));
22
+ --_table-header-surface: var(--ds-table-header-surface, var(--color-background-primary));
23
+ --_table-group-surface: var(--ds-table-group-surface, var(--color-background-faint-neutral));
24
+ --_table-row-hover: var(--ds-table-row-hover, var(--color-interaction-hover));
25
+ --_table-row-pressed: var(--ds-table-row-pressed, var(--color-interaction-pressed));
26
+ --_table-row-selected: var(--ds-table-row-selected, var(--color-interaction-active-brand));
27
+ --_table-border: var(--ds-table-border, var(--color-border-secondary));
28
+ --_table-column-border: var(--ds-table-column-border, var(--color-border-tertiary));
29
+ --_table-sticky-border: var(--ds-table-sticky-border, var(--color-border-secondary));
30
+ --_table-border-strong: var(--ds-table-border-strong, var(--color-border-secondary));
31
+ --_table-radius: var(--ds-table-radius, var(--dimension-radius-075));
32
+ --_table-header-min-block-size: var(
33
+ --ds-table-header-min-block-size,
34
+ var(--dimension-size-400)
35
+ );
36
+ --_table-row-min-block-size: var(
37
+ --ds-table-row-min-block-size,
38
+ var(--dimension-size-500)
39
+ );
40
+ --_table-cell-padding-block: var(
41
+ --ds-table-cell-padding-block,
42
+ var(--dimension-space-100)
43
+ );
44
+ --_table-cell-padding-inline: var(
45
+ --ds-table-cell-padding-inline,
46
+ var(--dimension-space-100)
47
+ );
48
+ --_table-selection-column-inline-size: var(
49
+ --ds-table-selection-column-inline-size,
50
+ var(--dimension-size-500)
51
+ );
52
+ --_table-selection-column-contribution: 0;
53
+ --_table-sticky-start-shadow: var(
54
+ --ds-table-sticky-start-shadow,
55
+ inset var(--dimension-space-050) 0 var(--dimension-space-050)
56
+ calc(-1 * var(--dimension-space-050)) var(--color-elevation-shadow)
57
+ );
58
+ --_table-sticky-end-shadow: var(
59
+ --ds-table-sticky-end-shadow,
60
+ inset calc(-1 * var(--dimension-space-050)) 0 var(--dimension-space-050)
61
+ calc(-1 * var(--dimension-space-050)) var(--color-elevation-shadow)
62
+ );
63
+ display: block;
64
+ box-sizing: border-box;
65
+ min-inline-size: 0;
66
+ max-inline-size: 100%;
67
+ color: var(--color-foreground-primary);
68
+ -webkit-user-select: none;
69
+ user-select: none;
70
+ }
71
+
72
+ :where(.ds-table__frame) {
73
+ position: relative;
74
+ timeline-scope: --ds-table-inline-scroll;
75
+ box-sizing: border-box;
76
+ min-inline-size: 0;
77
+ max-inline-size: 100%;
78
+ overflow: visible;
79
+ border: 0;
80
+ border-radius: var(--_table-radius);
81
+ background: var(--_table-surface);
82
+ }
83
+
84
+ :where(.ds-table__viewport) {
85
+ box-sizing: border-box;
86
+ max-block-size: var(--ds-table-max-block-size, none);
87
+ max-inline-size: 100%;
88
+ min-inline-size: 0;
89
+ overflow: auto;
90
+ scroll-timeline: --ds-table-inline-scroll inline;
91
+ overscroll-behavior-x: none;
92
+ overscroll-behavior-y: auto;
93
+ scrollbar-gutter: stable;
94
+ border-radius: var(--_table-radius);
95
+ outline: none;
96
+ }
97
+
98
+ :where(.ds-table--document-sticky-header .ds-table__viewport) {
99
+ scrollbar-gutter: auto;
100
+ }
101
+
102
+ :where(.ds-table__viewport:focus-visible) {
103
+ outline: var(--dimension-stroke-width-025) solid var(--color-interaction-focus);
104
+ outline-offset: calc(-1 * var(--dimension-stroke-width-025));
105
+ }
106
+
107
+ :where(.ds-table__table) {
108
+ box-sizing: border-box;
109
+ inline-size: 100%;
110
+ min-inline-size: max(100%, var(--ds-table-explicit-min-inline-size, 0));
111
+ border: 0;
112
+ border-spacing: 0;
113
+ border-collapse: separate;
114
+ table-layout: fixed;
115
+ background: var(--_table-surface);
116
+ color: inherit;
117
+ }
118
+
119
+ :where(.ds-table__table--selectable) {
120
+ --_table-selection-column-contribution: var(--_table-selection-column-inline-size);
121
+ min-inline-size: max(
122
+ 100%,
123
+ calc(var(--ds-table-explicit-min-inline-size, 0) + var(--_table-selection-column-contribution))
124
+ );
125
+ }
126
+
127
+ :where(.ds-table__caption) {
128
+ padding: var(--_table-cell-padding-inline);
129
+ border-block-end: var(--dimension-stroke-width-012) solid var(--_table-border);
130
+ background: var(--_table-surface);
131
+ text-align: start;
132
+ }
133
+
134
+ :where(.ds-table__selection-column) {
135
+ inline-size: var(--_table-selection-column-inline-size);
136
+ }
137
+
138
+ :where(.ds-table__head) {
139
+ position: relative;
140
+ z-index: 1;
141
+ }
142
+
143
+ :where(.ds-table--contained-sticky-header .ds-table__head) {
144
+ position: sticky;
145
+ inset-block-start: 0;
146
+ z-index: 2;
147
+ }
148
+
149
+ :where(.ds-table__document-sticky-header) {
150
+ position: sticky;
151
+ inset-block-start: var(--ds-table-sticky-header-offset, 0);
152
+ z-index: 3;
153
+ block-size: var(--_table-header-min-block-size);
154
+ margin-block-end: calc(-1 * var(--_table-header-min-block-size));
155
+ max-inline-size: 100%;
156
+ overflow: hidden;
157
+ border-radius: var(--_table-radius) var(--_table-radius) 0 0;
158
+ background: var(--_table-header-surface);
159
+ }
160
+
161
+ :where(.ds-table__sticky-header-table) {
162
+ block-size: var(--_table-header-min-block-size);
163
+ transform: translate3d(calc(-1 * var(--ds-table-inline-scroll-offset, 0px)), 0, 0);
164
+ will-change: transform;
165
+ }
166
+
167
+ /*
168
+ * The document-flow header is visually duplicated so it can stick to the page
169
+ * while the semantic table remains inside the horizontal scrollport. Keep the
170
+ * duplicate out of a second scroll container: its columns follow the body's
171
+ * scroll timeline and its pinned lanes counter that exact movement.
172
+ */
173
+ :where(.ds-table__sticky-header-table .ds-table__cell--sticky-start) {
174
+ transform: translate3d(var(--ds-table-inline-scroll-offset, 0), 0, 0);
175
+ }
176
+
177
+ :where(.ds-table__sticky-header-table .ds-table__cell--sticky-end) {
178
+ transform: translate3d(
179
+ calc(
180
+ var(--ds-table-inline-scroll-offset, 0) -
181
+ var(--ds-table-inline-scroll-max-offset, 0)
182
+ ),
183
+ 0,
184
+ 0
185
+ );
186
+ }
187
+
188
+ @supports (animation-timeline: --ds-table-inline-scroll) {
189
+ :where(.ds-table__sticky-header-table) {
190
+ animation: ds-table-follow-inline-scroll var(--effect-motion-short-2) both;
191
+ animation-timeline: --ds-table-inline-scroll;
192
+ animation-range: 0% 100%;
193
+ animation-timing-function: linear;
194
+ }
195
+
196
+ :where(.ds-table__sticky-header-table .ds-table__cell--sticky-start) {
197
+ animation: ds-table-counter-inline-scroll-start var(--effect-motion-short-2) both;
198
+ animation-timeline: --ds-table-inline-scroll;
199
+ animation-range: 0% 100%;
200
+ animation-timing-function: linear;
201
+ }
202
+
203
+ :where(.ds-table__sticky-header-table .ds-table__cell--sticky-end) {
204
+ animation: ds-table-counter-inline-scroll-end var(--effect-motion-short-2) both;
205
+ animation-timeline: --ds-table-inline-scroll;
206
+ animation-range: 0% 100%;
207
+ animation-timing-function: linear;
208
+ }
209
+ }
210
+
211
+ @keyframes ds-table-follow-inline-scroll {
212
+ from { transform: translate3d(0, 0, 0); }
213
+ to {
214
+ transform: translate3d(
215
+ calc(-1 * var(--ds-table-inline-scroll-max-offset, 0)),
216
+ 0,
217
+ 0
218
+ );
219
+ }
220
+ }
221
+
222
+ @keyframes ds-table-counter-inline-scroll-start {
223
+ from { transform: translate3d(0, 0, 0); }
224
+ to { transform: translate3d(var(--ds-table-inline-scroll-max-offset, 0), 0, 0); }
225
+ }
226
+
227
+ @keyframes ds-table-counter-inline-scroll-end {
228
+ from {
229
+ transform: translate3d(
230
+ calc(-1 * var(--ds-table-inline-scroll-max-offset, 0)),
231
+ 0,
232
+ 0
233
+ );
234
+ }
235
+ to { transform: translate3d(0, 0, 0); }
236
+ }
237
+
238
+ :where(.ds-table__head--semantic-copy) {
239
+ opacity: 0;
240
+ pointer-events: none;
241
+ }
242
+
243
+ :where(.ds-table__header-row) {
244
+ min-block-size: var(--_table-header-min-block-size);
245
+ background: var(--_table-header-surface);
246
+ }
247
+
248
+ :where(.ds-table__header-cell),
249
+ :where(.ds-table__cell),
250
+ :where(.ds-table__group-cell),
251
+ :where(.ds-table__load-cell),
252
+ :where(.ds-table__state-cell) {
253
+ box-sizing: border-box;
254
+ border: 0;
255
+ border-block-end: var(--dimension-stroke-width-012) solid var(--_table-border);
256
+ text-align: start;
257
+ vertical-align: middle;
258
+ }
259
+
260
+ :where(.ds-table__header-cell) {
261
+ position: relative;
262
+ min-block-size: calc(
263
+ var(--_table-header-min-block-size) - var(--dimension-space-100) - var(--dimension-space-100)
264
+ );
265
+ block-size: calc(
266
+ var(--_table-header-min-block-size) - var(--dimension-space-100) - var(--dimension-space-100)
267
+ );
268
+ padding: var(--dimension-space-100);
269
+ border-block-end: 0;
270
+ background: var(--_table-header-surface);
271
+ color: var(--color-foreground-secondary);
272
+ }
273
+
274
+ :where(.ds-table__header-cell)::after {
275
+ content: '';
276
+ position: absolute;
277
+ inset-inline: 0;
278
+ inset-block-end: 0;
279
+ z-index: 1;
280
+ block-size: var(--dimension-stroke-width-012);
281
+ background: var(--_table-border-strong);
282
+ pointer-events: none;
283
+ }
284
+
285
+ :where(.ds-table__cell) {
286
+ min-block-size: var(--_table-row-min-block-size);
287
+ block-size: var(--_table-row-min-block-size);
288
+ padding: var(--_table-cell-padding-block) var(--_table-cell-padding-inline);
289
+ --ds-interaction-group-divider-width: var(--dimension-stroke-width-012);
290
+ --ds-interaction-group-divider-color: var(--_table-border);
291
+ border-block-end: 0;
292
+ background-color: inherit;
293
+ vertical-align: top;
294
+ }
295
+
296
+ :where(.ds-table__header-cell + .ds-table__header-cell) {
297
+ border-inline-start: 0;
298
+ }
299
+
300
+ :where(.ds-table__header-cell + .ds-table__header-cell)::before {
301
+ content: '';
302
+ position: absolute;
303
+ inset: 0;
304
+ z-index: 0;
305
+ box-shadow: inset var(--dimension-stroke-width-012) 0 0 var(--_table-column-border);
306
+ pointer-events: none;
307
+ }
308
+
309
+ :where(.ds-table__cell + .ds-table__cell) {
310
+ --ds-interaction-group-divider-inline-start-width: var(--dimension-stroke-width-012);
311
+ --ds-interaction-group-divider-inline-start-color: var(--_table-column-border);
312
+ }
313
+
314
+ :where(.ds-table__header-labels),
315
+ :where(.ds-table__header-static),
316
+ :where(.ds-table__header-label) {
317
+ display: flex;
318
+ align-items: center;
319
+ box-sizing: border-box;
320
+ min-inline-size: 0;
321
+ block-size: var(--dimension-size-200);
322
+ padding: 0;
323
+ color: inherit;
324
+ text-align: inherit;
325
+ }
326
+
327
+ :where(.ds-table__header-labels) {
328
+ flex: 0 1 auto;
329
+ }
330
+
331
+ :where(.ds-table__header-label) {
332
+ flex: 0 1 auto;
333
+ inline-size: fit-content;
334
+ padding-inline: var(--dimension-space-025);
335
+ color: var(--color-foreground-secondary);
336
+ }
337
+
338
+ :where(.ds-table__header-label[data-sort-active='true']) {
339
+ color: var(--color-foreground-primary);
340
+ }
341
+
342
+ :where(.ds-table__header-label-box) {
343
+ min-inline-size: 0;
344
+ padding-inline: var(--dimension-space-025);
345
+ }
346
+
347
+ :where(.ds-table__header-label--interactive) {
348
+ appearance: none;
349
+ border: 0;
350
+ border-radius: var(--dimension-radius-025);
351
+ background: transparent;
352
+ cursor: default;
353
+ outline: none;
354
+ -webkit-tap-highlight-color: transparent;
355
+ }
356
+
357
+ @media (hover: hover) and (pointer: fine) {
358
+ :where(.ds-table__header-label--interactive:hover) {
359
+ color: var(--color-foreground-primary);
360
+ }
361
+
362
+ }
363
+
364
+ :where(.ds-table__header-label--interactive:active) {
365
+ color: var(--color-foreground-primary);
366
+ }
367
+
368
+ :where(.ds-table__header-label--interactive:focus-visible),
369
+ :where(.ds-table__selection-control:focus-visible) {
370
+ outline: var(--dimension-stroke-width-025) solid var(--color-interaction-focus);
371
+ outline-offset: calc(-1 * var(--dimension-stroke-width-025));
372
+ }
373
+
374
+ :where(.ds-table__header-content),
375
+ :where(.ds-table__header-labels),
376
+ :where(.ds-table__header-segment),
377
+ :where(.ds-table__sort-slot),
378
+ :where(.ds-table__group-content),
379
+ :where(.ds-table__load-content) {
380
+ display: inline-flex;
381
+ align-items: center;
382
+ min-inline-size: 0;
383
+ }
384
+
385
+ :where(.ds-table__header-content) {
386
+ display: flex;
387
+ inline-size: 100%;
388
+ gap: var(--dimension-space-050);
389
+ }
390
+
391
+ :where(.ds-table__header-labels) {
392
+ max-inline-size: 100%;
393
+ gap: var(--dimension-space-025);
394
+ }
395
+
396
+ :where(.ds-table__header-segment) {
397
+ flex: 0 1 auto;
398
+ gap: var(--dimension-space-025);
399
+ }
400
+
401
+ :where(.ds-table__header-separator) {
402
+ flex: 0 0 auto;
403
+ }
404
+
405
+ :where(.ds-table__sort-slot) {
406
+ justify-content: center;
407
+ flex: 0 0 auto;
408
+ inline-size: var(--dimension-size-200);
409
+ block-size: var(--dimension-size-200);
410
+ margin-inline-start: auto;
411
+ }
412
+
413
+ :where(.ds-table__cell--align-center .ds-table__header-content) {
414
+ justify-content: center;
415
+ }
416
+
417
+ :where(.ds-table__cell--align-center .ds-table__sort-slot),
418
+ :where(.ds-table__cell--align-end .ds-table__sort-slot) {
419
+ margin-inline-start: 0;
420
+ }
421
+
422
+ :where(.ds-table__cell--align-end .ds-table__header-labels) {
423
+ margin-inline-start: auto;
424
+ }
425
+
426
+ :where(.ds-table__cell-content),
427
+ :where(.ds-table__cell-copy) {
428
+ display: flex;
429
+ min-inline-size: 0;
430
+ max-inline-size: 100%;
431
+ }
432
+
433
+ :where(.ds-table__cell-content) {
434
+ align-items: flex-start;
435
+ min-block-size: var(--_table-cell-track-min-block-size);
436
+ }
437
+
438
+ :where(.ds-table__cell-copy) {
439
+ flex: 1;
440
+ flex-direction: column;
441
+ justify-content: flex-start;
442
+ }
443
+
444
+ :where(.ds-table__cell-track) {
445
+ display: flex;
446
+ align-items: center;
447
+ box-sizing: border-box;
448
+ min-inline-size: 0;
449
+ min-block-size: var(--_table-cell-track-min-block-size);
450
+ }
451
+
452
+ :where(.ds-table__cell-track--text) {
453
+ inline-size: 100%;
454
+ padding-inline: var(--_table-cell-track-label-inset);
455
+ }
456
+
457
+ :where(.ds-table__cell--text-single),
458
+ :where(.ds-table__cell--text-multi),
459
+ :where(.ds-table__cell--primary-text),
460
+ :where(.ds-table__cell--empty),
461
+ :where(.ds-table__cell--blank) {
462
+ padding: var(--dimension-space-125);
463
+ }
464
+
465
+ :where(.ds-table__cell--text-single .ds-table__cell-content),
466
+ :where(.ds-table__cell--text-multi .ds-table__cell-content),
467
+ :where(.ds-table__cell--primary-text .ds-table__cell-content),
468
+ :where(.ds-table__cell--empty .ds-table__cell-content),
469
+ :where(.ds-table__cell--blank .ds-table__cell-content),
470
+ :where(.ds-table__cell--text-single .ds-table__cell-track),
471
+ :where(.ds-table__cell--text-multi .ds-table__cell-track),
472
+ :where(.ds-table__cell--primary-text .ds-table__cell-track),
473
+ :where(.ds-table__cell--empty .ds-table__cell-track) {
474
+ min-block-size: 0;
475
+ }
476
+
477
+ :where(.ds-table__cell--text-multi .ds-table__cell-copy) {
478
+ gap: var(--dimension-space-050);
479
+ }
480
+
481
+ :where(.ds-table__cell--text-multi .ds-table__cell-secondary) {
482
+ padding-block: var(--dimension-space-025);
483
+ }
484
+
485
+ :where(.ds-table__cell--primary-text .ds-table__cell-secondary) {
486
+ padding-block: 0;
487
+ }
488
+
489
+ :where(.ds-table__cell--tag-tag-only),
490
+ :where(.ds-table__cell--tag-tag-with-text) {
491
+ padding: var(--dimension-space-075);
492
+ }
493
+
494
+ :where(.ds-table__cell--tag-text-with-tag) {
495
+ padding: var(--dimension-space-125);
496
+ }
497
+
498
+ :where(.ds-table__cell-tag-stack) {
499
+ display: flex;
500
+ flex-direction: column;
501
+ align-items: flex-start;
502
+ box-sizing: border-box;
503
+ min-inline-size: 0;
504
+ max-inline-size: 100%;
505
+ }
506
+
507
+ :where(.ds-table__cell-tag-text) {
508
+ inline-size: 100%;
509
+ }
510
+
511
+ :where(.ds-table__cell-tag-stack--tag-with-text .ds-table__cell-tag-text) {
512
+ padding-inline: calc(
513
+ var(--_table-cell-track-padding-inline) + var(--_table-cell-track-label-inset)
514
+ );
515
+ padding-block: var(--dimension-space-025);
516
+ min-block-size: 0;
517
+ }
518
+
519
+ :where(.ds-table__cell-tag-stack--text-with-tag .ds-table__cell-tag-text) {
520
+ padding-inline: var(--_table-cell-track-label-inset);
521
+ min-block-size: 0;
522
+ }
523
+
524
+ :where(.ds-table__cell-tag-stack--text-with-tag) {
525
+ gap: var(--dimension-space-050);
526
+ }
527
+
528
+ :where(.ds-table__cell-tag-control-track) {
529
+ display: flex;
530
+ align-items: center;
531
+ min-block-size: var(--_table-cell-track-min-block-size);
532
+ }
533
+
534
+ :where(.ds-table__cell-tag-stack--text-with-tag .ds-table__cell-tag-control-track) {
535
+ min-block-size: 0;
536
+ }
537
+
538
+ :where(.ds-table__cell--icon) {
539
+ padding: var(--dimension-space-125);
540
+ }
541
+
542
+ :where(.ds-table__cell--icon .ds-table__cell-content) {
543
+ align-items: center;
544
+ justify-content: center;
545
+ inline-size: 100%;
546
+ min-block-size: var(--dimension-iconography-md);
547
+ }
548
+
549
+ :where(.ds-table__cell--image) {
550
+ padding: var(--dimension-space-075);
551
+ }
552
+
553
+ :where(.ds-table__cell-image) {
554
+ display: block;
555
+ box-sizing: border-box;
556
+ flex: none;
557
+ block-size: var(--_table-image-block-size);
558
+ aspect-ratio: 16 / 9;
559
+ overflow: hidden;
560
+ border: var(--dimension-stroke-width-012) solid var(--color-border-tertiary);
561
+ border-radius: var(--dimension-radius-025);
562
+ }
563
+
564
+ :where(.ds-table__cell-image-content),
565
+ :where(.ds-table__cell-image-placeholder) {
566
+ display: block;
567
+ inline-size: 100%;
568
+ block-size: 100%;
569
+ }
570
+
571
+ :where(.ds-table__cell-image-content) {
572
+ object-fit: cover;
573
+ }
574
+
575
+ :where(.ds-table__cell--action) {
576
+ padding: var(--dimension-space-075);
577
+ }
578
+
579
+ :where(.ds-table__cell--action .ds-table__cell-content) {
580
+ min-block-size: var(--_table-cell-track-min-block-size);
581
+ }
582
+
583
+ :where(.ds-table__cell-primary),
584
+ :where(.ds-table__cell-secondary) {
585
+ min-inline-size: 0;
586
+ }
587
+
588
+ :where(.ds-table__cell-copy--wrap) {
589
+ overflow-wrap: anywhere;
590
+ }
591
+
592
+ :where(.ds-table__cell--align-center),
593
+ :where(.ds-table__cell--align-center .ds-table__cell-content),
594
+ :where(.ds-table__cell--align-center .ds-table__cell-track),
595
+ :where(.ds-table__cell--align-center .ds-table__header-static),
596
+ :where(.ds-table__cell--align-center .ds-table__header-labels),
597
+ :where(.ds-table__cell--align-center .ds-table__header-label) {
598
+ text-align: center;
599
+ justify-content: center;
600
+ }
601
+
602
+ :where(.ds-table__cell--align-end),
603
+ :where(.ds-table__cell--align-end .ds-table__cell-content),
604
+ :where(.ds-table__cell--align-end .ds-table__cell-track),
605
+ :where(.ds-table__cell--align-end .ds-table__header-static),
606
+ :where(.ds-table__cell--align-end .ds-table__header-labels),
607
+ :where(.ds-table__cell--align-end .ds-table__header-label) {
608
+ text-align: end;
609
+ justify-content: flex-end;
610
+ }
611
+
612
+ :where(.ds-table__body) {
613
+ background: var(--_table-surface);
614
+ }
615
+
616
+ :where(.ds-table__row) {
617
+ min-block-size: var(--_table-row-min-block-size);
618
+ background: var(--_table-surface);
619
+ }
620
+
621
+ :where(.ds-table__row > .ds-table__cell.ds-interaction-fill) {
622
+ --ds-interaction-active: var(--_table-row-selected);
623
+ --ds-interaction-group-fill: transparent;
624
+ }
625
+
626
+ @media (hover: hover) and (pointer: fine) {
627
+ :where(.ds-table__row--interactive:hover > .ds-table__cell.ds-interaction-fill) {
628
+ --ds-interaction-group-fill: var(--_table-row-hover);
629
+ }
630
+ }
631
+
632
+ :where(.ds-table__row--interactive:active > .ds-table__cell.ds-interaction-fill) {
633
+ --ds-interaction-group-fill: var(--_table-row-pressed);
634
+ }
635
+
636
+ :where(.ds-table__row--interactive:focus-visible) {
637
+ outline: var(--dimension-stroke-width-025) solid var(--color-interaction-focus);
638
+ outline-offset: calc(-1 * var(--dimension-stroke-width-025));
639
+ }
640
+
641
+ :where(.ds-table__row--disabled) {
642
+ color: var(--color-foreground-tertiary);
643
+ opacity: var(--effect-opacity-medium);
644
+ }
645
+
646
+ :where(.ds-table__selection-cell) {
647
+ inline-size: var(--_table-selection-column-inline-size);
648
+ padding: 0;
649
+ text-align: center;
650
+ }
651
+
652
+ :where(.ds-table__cell--sticky-start),
653
+ :where(.ds-table__cell--sticky-end) {
654
+ --ds-interaction-position: sticky;
655
+ --ds-interaction-z-index: 2;
656
+ position: sticky;
657
+ z-index: 2;
658
+ background-color: var(--_table-surface);
659
+ }
660
+
661
+ :where(.ds-table__cell--sticky-start) {
662
+ inset-inline-start: 0;
663
+ }
664
+
665
+ :where(.ds-table__cell--sticky-end) {
666
+ inset-inline-end: 0;
667
+ }
668
+
669
+ :where(.ds-table__header-cell.ds-table__cell--sticky-start),
670
+ :where(.ds-table__header-cell.ds-table__cell--sticky-end) {
671
+ z-index: 3;
672
+ background-color: var(--_table-header-surface);
673
+ }
674
+
675
+ :where(.ds-table__sticky-header-table .ds-table__cell--sticky-start),
676
+ :where(.ds-table__sticky-header-table .ds-table__cell--sticky-end) {
677
+ position: relative;
678
+ inset-inline: auto;
679
+ will-change: transform;
680
+ }
681
+
682
+ :where(.ds-table__selection-cell.ds-table__cell--sticky-start) {
683
+ --ds-interaction-group-divider-inline-end-width: 0px;
684
+ }
685
+
686
+ :where(.ds-table__cell--sticky-start + .ds-table__cell) {
687
+ --ds-interaction-group-divider-inline-start-width: 0px;
688
+ }
689
+
690
+ :where(.ds-table__cell--sticky-end) {
691
+ --ds-interaction-group-divider-inline-start-width: 0px;
692
+ }
693
+
694
+ :where(.ds-table__header-cell.ds-table__cell--sticky-start + .ds-table__header-cell)::before,
695
+ :where(.ds-table__header-cell.ds-table__cell--sticky-end)::before {
696
+ box-shadow: none;
697
+ }
698
+
699
+ :where(.ds-table__sticky-edge) {
700
+ position: absolute;
701
+ inset-block: 0 var(--dimension-stroke-width-012);
702
+ z-index: 4;
703
+ inline-size: var(--dimension-stroke-width-012);
704
+ background: var(--_table-sticky-border);
705
+ pointer-events: none;
706
+ }
707
+
708
+ :where(.ds-table__sticky-edge)::after {
709
+ content: '';
710
+ position: absolute;
711
+ inset-block: 0;
712
+ inline-size: var(--dimension-space-050);
713
+ pointer-events: none;
714
+ }
715
+
716
+ :where(.ds-table__sticky-edge--start) {
717
+ inset-inline-end: 0;
718
+ }
719
+
720
+ :where(.ds-table__sticky-edge--start)::after {
721
+ inset-inline-start: 100%;
722
+ }
723
+
724
+ :where(.ds-table__sticky-edge--end) {
725
+ inset-inline-start: 0;
726
+ }
727
+
728
+ :where(.ds-table__sticky-edge--end)::after {
729
+ inset-inline-end: 100%;
730
+ }
731
+
732
+ :where(.ds-table__frame--overflow-start .ds-table__sticky-edge--start)::after {
733
+ box-shadow: var(--_table-sticky-start-shadow);
734
+ }
735
+
736
+ :where(.ds-table__frame--overflow-end .ds-table__sticky-edge--end)::after {
737
+ box-shadow: var(--_table-sticky-end-shadow);
738
+ }
739
+
740
+ :where(.ds-table__cell.ds-table__selection-cell) {
741
+ padding: var(--dimension-space-125);
742
+ }
743
+
744
+ :where(.ds-table__selection-control) {
745
+ appearance: none;
746
+ display: inline-flex;
747
+ align-items: center;
748
+ justify-content: center;
749
+ box-sizing: border-box;
750
+ inline-size: 100%;
751
+ min-block-size: calc(
752
+ var(--_table-header-min-block-size) - var(--dimension-stroke-width-012)
753
+ );
754
+ padding: 0;
755
+ border: 0;
756
+ border-radius: 0;
757
+ background: transparent;
758
+ color: inherit;
759
+ cursor: default;
760
+ outline: none;
761
+ }
762
+
763
+ :where(.ds-table__cell.ds-table__selection-cell .ds-table__selection-control) {
764
+ inline-size: var(--dimension-iconography-md);
765
+ min-block-size: var(--dimension-iconography-md);
766
+ block-size: var(--dimension-iconography-md);
767
+ }
768
+
769
+ :where(.ds-table__selection-control:disabled) {
770
+ cursor: default;
771
+ }
772
+
773
+ :where(.ds-table__selection-control:disabled ds-checkbox) {
774
+ opacity: var(--effect-opacity-medium);
775
+ }
776
+
777
+ :where(.ds-table__group-cell) {
778
+ min-block-size: var(--_table-header-min-block-size);
779
+ padding: var(--dimension-space-075) var(--_table-cell-padding-inline);
780
+ background: var(--_table-group-surface);
781
+ }
782
+
783
+ :where(.ds-table__group-content) {
784
+ gap: var(--dimension-space-075);
785
+ }
786
+
787
+ :where(.ds-table__load-cell),
788
+ :where(.ds-table__state-cell) {
789
+ padding: var(--dimension-space-200) var(--_table-cell-padding-inline);
790
+ background: var(--_table-surface);
791
+ text-align: center;
792
+ }
793
+
794
+ :where(.ds-table__load-content) {
795
+ justify-content: center;
796
+ gap: var(--dimension-space-100);
797
+ }
798
+
799
+ :where(.ds-table__load-content--error) {
800
+ flex-wrap: wrap;
801
+ }
802
+
803
+ :where(.ds-table__auto-sentinel) {
804
+ display: block;
805
+ min-block-size: var(--dimension-space-025);
806
+ }
807
+
808
+ :where(.ds-table__state-cell) {
809
+ block-size: calc(var(--dimension-size-800) * 2);
810
+ }
811
+
812
+ :where(.ds-table__skeleton-row) {
813
+ pointer-events: none;
814
+ }
815
+
816
+ :where(.ds-table__skeleton-row:last-child .ds-table__cell),
817
+ :where(.ds-table__load-row:last-child .ds-table__load-cell),
818
+ :where(.ds-table__state-row:last-child .ds-table__state-cell),
819
+ :where(.ds-table__body:last-child .ds-table__row:last-child .ds-table__cell) {
820
+ border-block-end: 0;
821
+ --ds-interaction-group-divider-width: 0px;
822
+ }
823
+
824
+ :where(.ds-visually-hidden) {
825
+ position: absolute;
826
+ inline-size: var(--dimension-stroke-width-012);
827
+ block-size: var(--dimension-stroke-width-012);
828
+ padding: 0;
829
+ margin: calc(-1 * var(--dimension-stroke-width-012));
830
+ overflow: hidden;
831
+ clip: rect(0 0 0 0);
832
+ white-space: nowrap;
833
+ border: 0;
834
+ }
835
+
836
+ @media (prefers-reduced-motion: reduce) {
837
+ :where(.ds-table__cell--sticky-start),
838
+ :where(.ds-table__cell--sticky-end) {
839
+ transition: none;
840
+ }
841
+ }
842
+
843
+ @media (forced-colors: active) {
844
+ :where(.ds-table) {
845
+ --_table-surface: var(--ds-forced-color-surface);
846
+ --_table-header-surface: var(--ds-forced-color-surface);
847
+ --_table-group-surface: var(--ds-forced-color-surface);
848
+ --_table-border: var(--ds-forced-color-control-boundary);
849
+ --_table-column-border: var(--ds-forced-color-control-boundary);
850
+ --_table-border-strong: var(--ds-forced-color-control-boundary);
851
+ color: var(--ds-forced-color-content);
852
+ }
853
+
854
+ :where(.ds-table__frame--overflow-start .ds-table__sticky-edge--start)::after,
855
+ :where(.ds-table__frame--overflow-end .ds-table__sticky-edge--end)::after {
856
+ box-shadow: none;
857
+ }
858
+
859
+ :where(.ds-table__row--disabled) {
860
+ color: var(--ds-forced-color-disabled);
861
+ opacity: 1;
862
+ }
863
+
864
+ :where(.ds-table__selection-control:disabled ds-checkbox) {
865
+ --ds-forced-color-content: var(--ds-forced-color-disabled);
866
+ opacity: 1;
867
+ }
868
+
869
+ :where(.ds-table__header-label--interactive:focus-visible),
870
+ :where(.ds-table__selection-control:focus-visible),
871
+ :where(.ds-table__viewport:focus-visible) {
872
+ outline-color: var(--ds-forced-color-selected);
873
+ }
874
+ }