@rossigee/clarity-ui 18.2.1-fixed

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 (219) hide show
  1. package/README.md +29 -0
  2. package/STYLES.md +1796 -0
  3. package/accordion/_accordion.clarity.scss +81 -0
  4. package/accordion/_properties.accordion.scss +45 -0
  5. package/accordion/_variables.accordion.scss +91 -0
  6. package/button/_buttons.clarity.scss +374 -0
  7. package/button/_mixins.buttons.scss +232 -0
  8. package/button/_properties.buttons.scss +325 -0
  9. package/button/_properties.toggles.scss +35 -0
  10. package/button/_variables.buttons.scss +843 -0
  11. package/button/_variables.toggles.scss +41 -0
  12. package/button/button-group/_button-group.clarity.scss +193 -0
  13. package/clr-ui.css +31728 -0
  14. package/clr-ui.css.map +1 -0
  15. package/clr-ui.min.css +52 -0
  16. package/clr-ui.min.css.map +1 -0
  17. package/collapsible-panel/_mixins.collapsible-panel.scss +189 -0
  18. package/collapsible-panel/_properties.collapsible-panel.scss +42 -0
  19. package/collapsible-panel/_variables.collapsible-panel.scss +40 -0
  20. package/data/_mixins.tables.scss +111 -0
  21. package/data/_properties.tables.scss +62 -0
  22. package/data/_tables.clarity.scss +120 -0
  23. package/data/_variables.tables.scss +42 -0
  24. package/data/datagrid/_datagrid.clarity.scss +1753 -0
  25. package/data/datagrid/_mixins.datagrid.scss +102 -0
  26. package/data/datagrid/_properties.datagrid.scss +90 -0
  27. package/data/datagrid/_variables.datagrid.scss +96 -0
  28. package/data/stack-view/_properties.stack-view.scss +50 -0
  29. package/data/stack-view/_stack-view.clarity.scss +267 -0
  30. package/data/stack-view/_variables.stack-view.scss +32 -0
  31. package/data/tree-view/_properties.tree-view.scss +41 -0
  32. package/data/tree-view/_tree-view.clarity.scss +281 -0
  33. package/data/tree-view/_variables.tree-view.scss +51 -0
  34. package/emphasis/alert/_alert.clarity.scss +467 -0
  35. package/emphasis/alert/_mixins.alert.scss +96 -0
  36. package/emphasis/alert/_properties.alert.scss +183 -0
  37. package/emphasis/alert/_variables.alert.scss +502 -0
  38. package/emphasis/badge/_badges.clarity.scss +61 -0
  39. package/emphasis/badge/_mixins.bades.scss +34 -0
  40. package/emphasis/badge/_properties.badges.scss +82 -0
  41. package/emphasis/badge/_variables.badges.scss +160 -0
  42. package/emphasis/label/_labels.clarity.scss +175 -0
  43. package/emphasis/label/_mixins.label.scss +76 -0
  44. package/emphasis/label/_properties.label.scss +105 -0
  45. package/emphasis/label/_variables.label.scss +181 -0
  46. package/forms/combobox/_combobox.clarity.scss +322 -0
  47. package/forms/combobox/_properties.combobox.scss +45 -0
  48. package/forms/combobox/_variables.combobox.scss +32 -0
  49. package/forms/datepicker/_datepicker.clarity.scss +259 -0
  50. package/forms/datepicker/_mixins.datepicker.scss +90 -0
  51. package/forms/datepicker/_properties.datepicker.scss +46 -0
  52. package/forms/datepicker/_variables.datepicker.scss +74 -0
  53. package/forms/styles/_checkbox.clarity.scss +193 -0
  54. package/forms/styles/_containers.clarity.scss +228 -0
  55. package/forms/styles/_datalist.clarity.scss +47 -0
  56. package/forms/styles/_file-input.clarity.scss +134 -0
  57. package/forms/styles/_file.clarity.scss +52 -0
  58. package/forms/styles/_form.clarity.scss +87 -0
  59. package/forms/styles/_input-group.clarity.scss +118 -0
  60. package/forms/styles/_input.clarity.scss +78 -0
  61. package/forms/styles/_mixins.forms.scss +173 -0
  62. package/forms/styles/_number-input.clarity.scss +58 -0
  63. package/forms/styles/_password.clarity.scss +26 -0
  64. package/forms/styles/_properties.forms.scss +121 -0
  65. package/forms/styles/_radio.clarity.scss +120 -0
  66. package/forms/styles/_range.clarity.scss +124 -0
  67. package/forms/styles/_select.clarity.scss +178 -0
  68. package/forms/styles/_textarea.clarity.scss +77 -0
  69. package/forms/styles/_toggles.clarity.scss +209 -0
  70. package/forms/styles/_variables.forms.scss +128 -0
  71. package/icon/icon.component.scss +242 -0
  72. package/image/_icons.clarity.scss +101 -0
  73. package/image/_images.clarity.scss +42 -0
  74. package/image/_mixins.images.scss +11 -0
  75. package/layout/_card.clarity.scss +311 -0
  76. package/layout/_login.clarity.scss +240 -0
  77. package/layout/_properties.card.scss +36 -0
  78. package/layout/_properties.login.scss +32 -0
  79. package/layout/_variables.card.scss +23 -0
  80. package/layout/_variables.login.scss +22 -0
  81. package/layout/breadcrumbs/_breadcrumbs.clarity.scss +60 -0
  82. package/layout/breadcrumbs/_properties.breadcrumbs.scss +18 -0
  83. package/layout/breadcrumbs/_variables.breadcrumbs.scss +11 -0
  84. package/layout/grid/_grid.scss +23 -0
  85. package/layout/grid/grid/_grid.scss +39 -0
  86. package/layout/grid/mixins/_breakpoint.scss +83 -0
  87. package/layout/grid/mixins/_clearfix.scss +13 -0
  88. package/layout/grid/mixins/_grid-framework.scss +91 -0
  89. package/layout/grid/mixins/_grid.scss +39 -0
  90. package/layout/grid/utilities/_align.scss +30 -0
  91. package/layout/grid/utilities/_clearfix.scss +12 -0
  92. package/layout/grid/utilities/_display.scss +18 -0
  93. package/layout/grid/utilities/_flex.scss +222 -0
  94. package/layout/grid/utilities/_float.scss +26 -0
  95. package/layout/grid/utilities/_visibility.scss +60 -0
  96. package/layout/main-container/_layout.clarity.scss +87 -0
  97. package/layout/main-container/_properties.header.scss +39 -0
  98. package/layout/main-container/_variables.header.scss +32 -0
  99. package/layout/nav/_header.clarity.scss +40 -0
  100. package/layout/nav/_links.clarity.scss +84 -0
  101. package/layout/nav/_mixins.header.scss +332 -0
  102. package/layout/nav/_mixins.responsive-nav.scss +75 -0
  103. package/layout/nav/_nav.clarity.scss +100 -0
  104. package/layout/nav/_properties.nav.scss +27 -0
  105. package/layout/nav/_properties.responsive-nav.scss +23 -0
  106. package/layout/nav/_properties.subnav.scss +19 -0
  107. package/layout/nav/_responsive-nav.clarity.scss +488 -0
  108. package/layout/nav/_subnav.clarity.scss +48 -0
  109. package/layout/nav/_variables.nav.scss +13 -0
  110. package/layout/nav/_variables.responsive-nav.scss +28 -0
  111. package/layout/nav/_variables.subnav.scss +21 -0
  112. package/layout/tabs/_mixins.tabs.scss +41 -0
  113. package/layout/tabs/_properties.tabs.scss +25 -0
  114. package/layout/tabs/_tabs.clarity.scss +110 -0
  115. package/layout/tabs/_variables.tabs.scss +17 -0
  116. package/layout/vertical-nav/_mixins.vertical-nav.scss +52 -0
  117. package/layout/vertical-nav/_properties.vertical-nav.scss +73 -0
  118. package/layout/vertical-nav/_variables.vertical-nav.scss +52 -0
  119. package/layout/vertical-nav/_vertical-nav.clarity.scss +469 -0
  120. package/main.scss +14 -0
  121. package/modal/_modal.clarity.scss +362 -0
  122. package/modal/_properties.modal.scss +45 -0
  123. package/modal/_variables.modal.scss +38 -0
  124. package/package.json +15 -0
  125. package/popover/common/_popover.clarity.scss +28 -0
  126. package/popover/dropdown/_dropdown.clarity.scss +326 -0
  127. package/popover/dropdown/_menu-mixins.clarity.scss +132 -0
  128. package/popover/dropdown/_properties.dropdown.scss +50 -0
  129. package/popover/dropdown/_variables.dropdown.scss +36 -0
  130. package/popover/signpost/_properties.signpost.scss +34 -0
  131. package/popover/signpost/_signposts.clarity.scss +414 -0
  132. package/popover/signpost/_variables.signpost.scss +21 -0
  133. package/popover/tooltip/_mixins.tooltip.scss +186 -0
  134. package/popover/tooltip/_properties.tooltip.scss +28 -0
  135. package/popover/tooltip/_tooltips.clarity.scss +122 -0
  136. package/popover/tooltip/_variables.tooltip.scss +20 -0
  137. package/progress/progress-bars/_progress-bars.clarity.scss +616 -0
  138. package/progress/progress-bars/_properties.progress-bars.scss +24 -0
  139. package/progress/progress-bars/_variables.progress-bars.scss +15 -0
  140. package/progress/progress-bars/utils/_mixins.clarity.scss +18 -0
  141. package/progress/spinner/_mixins.spinner.scss +30 -0
  142. package/progress/spinner/_properties.spinner.scss +37 -0
  143. package/progress/spinner/_spinner.clarity.scss +148 -0
  144. package/progress/spinner/_variables.spinner.scss +25 -0
  145. package/stepper/_properties.stepper.scss +29 -0
  146. package/stepper/_stepper.clarity.scss +184 -0
  147. package/stepper/_variables.stepper.scss +13 -0
  148. package/styles/_a11y.scss +14 -0
  149. package/styles/_close.clarity.scss +60 -0
  150. package/styles/_components.clarity.scss +183 -0
  151. package/styles/_mixins.scss +478 -0
  152. package/styles/_normalize.scss +292 -0
  153. package/styles/_reboot.clarity.scss +374 -0
  154. package/styles/_variables.clarity.scss +139 -0
  155. package/styles/core/base/base.element.scss +97 -0
  156. package/styles/core/global.scss +12 -0
  157. package/styles/core/layout/_alignments.scss +18 -0
  158. package/styles/core/layout/_container.scss +29 -0
  159. package/styles/core/layout/_display.scss +58 -0
  160. package/styles/core/layout/_optimize.scss +60 -0
  161. package/styles/core/layout/_shadow-dom.scss +47 -0
  162. package/styles/core/layout/_spacing.scss +31 -0
  163. package/styles/core/layout/_type-grid.scss +66 -0
  164. package/styles/core/layout/_type-horizontal.scss +33 -0
  165. package/styles/core/layout/_type-vertical.scss +26 -0
  166. package/styles/core/layout/mixins/_mixins.alignment.scss +35 -0
  167. package/styles/core/layout/mixins/_mixins.display.scss +23 -0
  168. package/styles/core/layout/mixins/_mixins.grid.scss +105 -0
  169. package/styles/core/layout/mixins/_mixins.scss +106 -0
  170. package/styles/core/layout/mixins/_mixins.shadow-dom.scss +106 -0
  171. package/styles/core/layout/mixins/_mixins.type-horizontal.scss +113 -0
  172. package/styles/core/layout/mixins/_mixins.type-vertical.scss +108 -0
  173. package/styles/core/module.layout.scss +22 -0
  174. package/styles/core/module.reset.scss +48 -0
  175. package/styles/core/module.typography.scss +9 -0
  176. package/styles/core/theme.dark.scss +266 -0
  177. package/styles/core/theme.high-contrast.scss +42 -0
  178. package/styles/core/theme.low-motion.scss +20 -0
  179. package/styles/core/tokens/_alias-interaction.scss +59 -0
  180. package/styles/core/tokens/_alias-object-background.scss +14 -0
  181. package/styles/core/tokens/_alias-object-border.scss +21 -0
  182. package/styles/core/tokens/_alias-object-container.scss +20 -0
  183. package/styles/core/tokens/_alias-object-opacity.scss +15 -0
  184. package/styles/core/tokens/_alias-object-shadow.scss +17 -0
  185. package/styles/core/tokens/_alias-status.scss +34 -0
  186. package/styles/core/tokens/_alias-typography.scss +101 -0
  187. package/styles/core/tokens/_alias-utility.scss +38 -0
  188. package/styles/core/tokens/_alias-viz-colors.scss +170 -0
  189. package/styles/core/tokens/_global-animation.scss +32 -0
  190. package/styles/core/tokens/_global-colors.scss +249 -0
  191. package/styles/core/tokens/_global-space.scss +52 -0
  192. package/styles/core/tokens/_internal-scale.scss +14 -0
  193. package/styles/core/tokens/_properties.tokens.scss +21 -0
  194. package/styles/core/tokens/_variables.tokens.scss +770 -0
  195. package/styles/core/typography/_legacy-typography.scss +328 -0
  196. package/styles/core/typography/_mixins.typography.scss +18 -0
  197. package/styles/core/typography/_typography.scss +321 -0
  198. package/styles/variables/_properties.density.scss +223 -0
  199. package/styles/variables/_properties.global.scss +51 -0
  200. package/styles/variables/_properties.layout.scss +21 -0
  201. package/styles/variables/_properties.scss +11 -0
  202. package/styles/variables/_properties.typography.scss +164 -0
  203. package/styles/variables/_variables.density.scss +114 -0
  204. package/styles/variables/_variables.global.scss +82 -0
  205. package/styles/variables/_variables.layout.scss +37 -0
  206. package/styles/variables/_variables.scss +11 -0
  207. package/styles/variables/_variables.typography.scss +156 -0
  208. package/timeline/_properties.timeline.scss +38 -0
  209. package/timeline/_timeline.clarity.scss +172 -0
  210. package/timeline/_variables.timeline.scss +29 -0
  211. package/typography/_code.scss +36 -0
  212. package/typography/_font-metropolis.scss +45 -0
  213. package/typography/_lists.scss +81 -0
  214. package/typography/_typography.scss +322 -0
  215. package/utils/animations/_animations.clarity.scss +44 -0
  216. package/utils/animations/_mixins.animations.scss +33 -0
  217. package/wizard/_properties.wizard.scss +53 -0
  218. package/wizard/_variables.wizard.scss +58 -0
  219. package/wizard/_wizard.clarity.scss +688 -0
@@ -0,0 +1,1753 @@
1
+ /*
2
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
3
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
+ * This software is released under MIT license.
5
+ * The full license information can be found in LICENSE in the root directory of this project.
6
+ */
7
+
8
+ @use 'sass:map';
9
+ @use 'sass:meta';
10
+ @use '../tables.clarity';
11
+ @use '../mixins.tables' as table-mixins;
12
+ @use '../../image/icons.clarity';
13
+ @use '../../styles/mixins';
14
+ @use '../../styles/variables/variables';
15
+ @use '../../popover/dropdown/menu-mixins.clarity';
16
+ @use '../../button/variables.buttons' as button-variables;
17
+ @use '../../forms/styles/variables.forms' as forms-variables;
18
+ @use '../../modal/variables.modal' as modal-variables;
19
+ @use '../../popover/dropdown/variables.dropdown' as dropdown-variables;
20
+ @use '../variables.tables' as tables-variables;
21
+ @use 'variables.datagrid' as datagrid-variables;
22
+ @use 'mixins.datagrid' as datagrid-mixins;
23
+ @use '../../styles/variables/variables.density' as density;
24
+ @use '../../styles/core/tokens/variables.tokens' as tokens;
25
+ @use '../../utils/animations/mixins.animations' as animations-mixins;
26
+
27
+ @include meta.load-css('properties.datagrid');
28
+ @include mixins.exports('datagrid.clarity') {
29
+ @include table-mixins.basic-table(
30
+ '.datagrid',
31
+ '.datagrid-header',
32
+ '.datagrid-body',
33
+ '.datagrid-row',
34
+ '.datagrid-column',
35
+ '.datagrid-cell'
36
+ );
37
+
38
+ .datagrid-host {
39
+ display: flex;
40
+ flex-flow: column nowrap;
41
+ position: relative;
42
+
43
+ &.datagrid-virtual-scroll {
44
+ .datagrid {
45
+ display: flex;
46
+ }
47
+
48
+ .datagrid-table-wrapper,
49
+ .datagrid-table {
50
+ overflow: auto;
51
+ }
52
+
53
+ .datagrid-header {
54
+ position: static;
55
+ display: flex;
56
+ flex: 0 0 auto;
57
+ overflow: auto hidden;
58
+ scrollbar-width: none;
59
+
60
+ .datagrid-row {
61
+ display: flex;
62
+ flex: 1 1 auto;
63
+ }
64
+ }
65
+
66
+ .datagrid-content-virtual .datagrid-rows {
67
+ min-height: 100%;
68
+
69
+ &.datagrid-scrollbar-visible .datagrid-placeholder-container {
70
+ border-top-color: tokens.$cds-alias-object-opacity-0;
71
+ }
72
+ }
73
+ }
74
+ }
75
+
76
+ .datagrid {
77
+ // Overrides the table defaults so the new structure has correct corners
78
+ border-bottom-left-radius: 0;
79
+ border-bottom-right-radius: 0;
80
+ overflow: auto;
81
+ flex: 1 1 auto;
82
+ margin-top: datagrid-variables.$clr-datagrid-margin-top;
83
+
84
+ &.cdk-virtual-scrollable .datagrid-rows {
85
+ flex-grow: 0;
86
+ }
87
+ }
88
+
89
+ .datagrid-overflow-ellipsis .datagrid-row .datagrid-scrolling-cells > .datagrid-cell {
90
+ text-overflow: ellipsis;
91
+ overflow: hidden;
92
+ white-space: nowrap;
93
+ }
94
+
95
+ .datagrid-header,
96
+ .datagrid-body,
97
+ .datagrid-row,
98
+ .datagrid-column,
99
+ .datagrid-cell,
100
+ .datagrid-fixed-column {
101
+ display: block;
102
+ }
103
+
104
+ .datagrid-row {
105
+ border-top: tables-variables.$clr-table-borderwidth solid tables-variables.$clr-table-border-color;
106
+ min-height: tables-variables.$clr-table-row-height;
107
+
108
+ &:first-of-type {
109
+ border-top: none;
110
+ min-height: calc(tables-variables.$clr-table-row-height - tables-variables.$clr-table-borderwidth);
111
+ }
112
+
113
+ &:hover,
114
+ &:hover .datagrid-row-sticky {
115
+ background-color: datagrid-variables.$clr-datagrid-row-hover-color;
116
+ }
117
+
118
+ &.datagrid-selected,
119
+ &.datagrid-selected .datagrid-row-sticky {
120
+ color: datagrid-variables.$clr-datagrid-row-selected;
121
+ background-color: datagrid-variables.$clr-datagrid-row-selected-background-color;
122
+ }
123
+
124
+ &.datagrid-selected {
125
+ &:hover,
126
+ &:hover .datagrid-row-sticky {
127
+ background-color: datagrid-variables.$clr-datagrid-row-selected-hover-background-color;
128
+ }
129
+
130
+ &:active,
131
+ &:active .datagrid-row-sticky {
132
+ background-color: datagrid-variables.$clr-datagrid-row-selected-active-background-color;
133
+ }
134
+ }
135
+
136
+ &:active,
137
+ &:active .datagrid-row-sticky {
138
+ background-color: datagrid-variables.$clr-datagrid-row-active-color;
139
+ }
140
+
141
+ &.datagrid-row-skeleton {
142
+ background-color: unset;
143
+
144
+ .datagrid-row-master {
145
+ position: relative;
146
+
147
+ @include animations-mixins.skeleton-loading();
148
+
149
+ &::before {
150
+ position: absolute;
151
+ top: tables-variables.$clr-table-cell-vertical-padding;
152
+ left: tables-variables.$clr-table-cell-horizontal-padding;
153
+ height: calc(100% - (2 * tables-variables.$clr-table-cell-vertical-padding));
154
+ width: calc(100% - (2 * tables-variables.$clr-table-cell-horizontal-padding));
155
+ z-index: map.get(variables.$clr-layers, datagrid-row-skeleton);
156
+ }
157
+
158
+ .datagrid-row-sticky,
159
+ .datagrid-row-scrollable {
160
+ opacity: 0;
161
+ }
162
+ }
163
+ }
164
+
165
+ .datagrid-row-detail-wrapper {
166
+ flex: 1 1 auto;
167
+ display: flex;
168
+ }
169
+
170
+ .datagrid-row-detail {
171
+ width: auto;
172
+
173
+ .datagrid-cell {
174
+ padding-top: 0;
175
+ border: none;
176
+
177
+ &.datagrid-container {
178
+ @include mixins.generate-typography-token(
179
+ 'BODY-14-RG-STD',
180
+ (
181
+ font-size: tables-variables.$clr-table-fontsize,
182
+ )
183
+ );
184
+ }
185
+ }
186
+ }
187
+
188
+ .datagrid-select {
189
+ input {
190
+ @include mixins.min-equilateral(density.$clr-base-icon-size-s);
191
+
192
+ padding: 0;
193
+ }
194
+
195
+ .clr-checkbox-wrapper,
196
+ .clr-radio-wrapper {
197
+ @include mixins.max-equilateral(density.$clr-base-icon-size-s);
198
+
199
+ .clr-control-label:has(.clr-sr-only) {
200
+ padding: 0;
201
+ min-height: tokens.$cds-global-space-1;
202
+ min-width: tokens.$cds-global-space-1;
203
+ }
204
+ }
205
+
206
+ &,
207
+ input {
208
+ cursor: pointer;
209
+ }
210
+
211
+ &.clr-form-control-disabled {
212
+ &,
213
+ input {
214
+ cursor: not-allowed;
215
+ }
216
+ }
217
+ }
218
+
219
+ .datagrid-signpost-trigger .signpost {
220
+ margin: calc(-1 * density.$clr-base-vertical-offset-multi-row-inline-m) 0;
221
+ height: tables-variables.$clr-table-cell-height;
222
+
223
+ .signpost-trigger {
224
+ height: inherit;
225
+ line-height: tables-variables.$clr-table-cell-height;
226
+ }
227
+ }
228
+
229
+ &.datagrid-row-loading {
230
+ .datagrid-row-sticky {
231
+ display: none;
232
+ }
233
+
234
+ .datagrid-cell {
235
+ display: flex;
236
+ padding: density.$clr-base-vertical-offset-2xl density.$clr-base-horizontal-offset-2xl;
237
+ align-items: center;
238
+ gap: density.$clr-base-gap-m;
239
+ justify-content: center;
240
+ }
241
+ }
242
+ }
243
+
244
+ .datagrid-row-sticky {
245
+ background-color: tables-variables.$clr-table-bgcolor;
246
+ display: flex;
247
+ flex-wrap: nowrap;
248
+ position: sticky;
249
+ left: 0;
250
+ z-index: map.get(variables.$clr-layers, datagrid-row-sticky);
251
+
252
+ &-scroll {
253
+ right: 0;
254
+
255
+ > div.datagrid-column {
256
+ min-width: tokens.$cds-global-space-7;
257
+ padding: 0;
258
+
259
+ @include datagrid-mixins.datagrid-column-separator('left', 'before');
260
+ }
261
+ }
262
+
263
+ .datagrid-cell:last-child {
264
+ @include datagrid-mixins.datagrid-column-separator();
265
+ }
266
+ }
267
+
268
+ .datagrid-row-scrollable {
269
+ flex: 1 1 auto;
270
+ display: flex;
271
+ flex-flow: column nowrap;
272
+ width: 100%;
273
+
274
+ &.is-replaced {
275
+ flex-direction: row;
276
+
277
+ .datagrid-scrolling-cells {
278
+ flex: 0 0 auto;
279
+ }
280
+ }
281
+
282
+ .datagrid-column:last-child {
283
+ .datagrid-column-separator {
284
+ display: none;
285
+ }
286
+ }
287
+ }
288
+
289
+ .datagrid-row-flex {
290
+ flex: 1 1 auto;
291
+ display: flex;
292
+ flex-flow: row nowrap;
293
+ width: 100%;
294
+
295
+ .datagrid-row-detail {
296
+ display: flex;
297
+ flex-flow: row nowrap;
298
+
299
+ .datagrid-cell {
300
+ padding-top: 0;
301
+ }
302
+ }
303
+ }
304
+
305
+ .datagrid-scrolling-cells,
306
+ .datagrid-scrolling-details {
307
+ display: flex;
308
+ flex: 1 1 auto;
309
+ flex-flow: row nowrap;
310
+ }
311
+
312
+ .datagrid-action-bar {
313
+ margin-top: datagrid-variables.$clr-datagrid-action-bar-offset;
314
+
315
+ // This changes the height and position of the datagrid-spinner when there is an action-bar
316
+ // Allows us to cover the action-bar with the spinner backgdrop and prevent user interactions.
317
+ & ~ .datagrid-outer-wrapper .datagrid-spinner {
318
+ height: calc(100% - #{datagrid-variables.$clr-datagrid-action-bar-offset});
319
+ top: datagrid-variables.$clr-datagrid-action-bar-offset; // Account for the margin above the datagrid-action-bar
320
+ }
321
+ }
322
+
323
+ .datagrid-header {
324
+ position: sticky;
325
+ top: 0;
326
+ // bug(popover): prevents action-overflow from being on top (first row).
327
+ // Needed to keep select/radio and expand svgs underneath header on scrolling
328
+ z-index: map.get(variables.$clr-layers, datagrid-header);
329
+ width: auto;
330
+
331
+ .datagrid-column {
332
+ border-bottom: none;
333
+ }
334
+
335
+ .datagrid-row {
336
+ @include datagrid-mixins.clr-datagrid-header-bg;
337
+
338
+ border-top: none;
339
+ border-bottom: tokens.$cds-alias-object-border-width-100 solid tables-variables.$clr-table-border-color;
340
+
341
+ .datagrid-row-sticky {
342
+ @include datagrid-mixins.clr-datagrid-header-bg;
343
+
344
+ z-index: map.get(variables.$clr-layers, datagrid-header-sticky);
345
+ }
346
+
347
+ &:hover {
348
+ @include datagrid-mixins.clr-datagrid-header-bg;
349
+
350
+ .datagrid-row-sticky {
351
+ @include datagrid-mixins.clr-datagrid-header-bg;
352
+ }
353
+ }
354
+ }
355
+
356
+ .datagrid-row-scrollable {
357
+ flex-direction: row;
358
+ }
359
+ }
360
+
361
+ .datagrid-table-wrapper {
362
+ display: flex;
363
+ flex: 1 1 auto;
364
+ min-height: 100%;
365
+ width: 100%;
366
+ }
367
+
368
+ .datagrid-table {
369
+ display: flex;
370
+ flex-direction: column;
371
+ flex: 1 1 auto;
372
+
373
+ .datagrid-content {
374
+ display: contents;
375
+
376
+ &-virtual {
377
+ position: relative;
378
+ display: block;
379
+ flex: 1 1 100%;
380
+ overflow: auto scroll;
381
+ will-change: scroll-position;
382
+ contain: strict;
383
+ transform: translateZ(0);
384
+
385
+ &-spacer {
386
+ flex: 0 0 auto;
387
+ transform-origin: 0 0;
388
+ }
389
+
390
+ .datagrid-rows {
391
+ position: absolute;
392
+ top: 0;
393
+ left: 0;
394
+ contain: content;
395
+ min-width: 100%;
396
+ }
397
+ }
398
+ }
399
+
400
+ .datagrid-rows {
401
+ display: flex;
402
+ flex-direction: column;
403
+ flex: 1 1 auto;
404
+ }
405
+
406
+ .datagrid-body {
407
+ width: auto;
408
+ }
409
+
410
+ .datagrid-column {
411
+ position: relative;
412
+ text-align: left;
413
+ min-width: tokens.$cds-global-space-15;
414
+ display: flex;
415
+ flex: 1 1 auto;
416
+ vertical-align: top;
417
+ border: none;
418
+
419
+ &:focus {
420
+ outline: tokens.$cds-alias-object-interaction-outline;
421
+ outline-color: -webkit-focus-ring-color;
422
+ outline-offset: datagrid-variables.$clr-datagrid-cell-outline-offset;
423
+ }
424
+
425
+ clr-dg-filter,
426
+ clr-dg-string-filter,
427
+ clr-dg-numeric-filter {
428
+ display: flex;
429
+ order: 99;
430
+ margin-left: auto;
431
+ align-items: center;
432
+ }
433
+
434
+ .datagrid-numeric-filter-input {
435
+ width: density.$clr-base-layout-space-5xl;
436
+
437
+ .clr-form-control {
438
+ margin-top: 0;
439
+ }
440
+ }
441
+
442
+ .datagrid-filter-toggle {
443
+ @include mixins.clr-no-styles-button();
444
+
445
+ cursor: pointer;
446
+ float: right;
447
+ vertical-align: middle;
448
+
449
+ @include mixins.min-equilateral(datagrid-variables.$clr-datagrid-filter-toggle-size);
450
+
451
+ margin-left: density.$clr-base-horizontal-offset-s;
452
+ background-repeat: no-repeat;
453
+ background-size: contain;
454
+
455
+ cds-icon,
456
+ clr-icon {
457
+ color: tokens.$cds-alias-object-interaction-color;
458
+ }
459
+
460
+ &:hover {
461
+ cds-icon,
462
+ clr-icon {
463
+ color: tokens.$cds-alias-object-interaction-color-hover;
464
+ }
465
+ }
466
+
467
+ &.datagrid-filter-open {
468
+ cds-icon,
469
+ clr-icon {
470
+ color: tokens.$cds-alias-object-interaction-color-active;
471
+ }
472
+ }
473
+
474
+ &.datagrid-filtered {
475
+ cds-icon,
476
+ clr-icon {
477
+ color: tokens.$cds-alias-object-interaction-color-selected;
478
+ }
479
+ }
480
+ }
481
+
482
+ &.datagrid-fixed-width {
483
+ flex: 0 0 auto;
484
+ }
485
+
486
+ .datagrid-column-flex {
487
+ display: flex;
488
+ flex: 1 1 auto;
489
+ }
490
+
491
+ .datagrid-column-title {
492
+ @include mixins.clr-no-styles-button();
493
+
494
+ color: tables-variables.$clr-table-font-color;
495
+ text-align: left;
496
+ flex: 1 1 auto;
497
+ align-items: center;
498
+ align-self: center;
499
+ display: flex;
500
+
501
+ .signpost .signpost-action.btn {
502
+ height: inherit;
503
+ line-height: inherit;
504
+ }
505
+
506
+ // Override checkbox labels only when they are in a column. This allows them to be vertically centered.
507
+ .clr-checkbox-wrapper .clr-control-label {
508
+ margin-top: calc(-1 * mixins.baselinePx(10));
509
+ }
510
+ }
511
+
512
+ button.datagrid-column-title {
513
+ &:hover {
514
+ text-decoration: underline;
515
+ cursor: pointer;
516
+ }
517
+
518
+ .sort-icon {
519
+ color: tokens.$cds-alias-object-interaction-color;
520
+ margin-left: auto; // pushes icon to rhs b/c of parents display: flex
521
+
522
+ @include mixins.equilateral(datagrid-variables.$clr-datagrid-icon-size);
523
+
524
+ vertical-align: middle;
525
+
526
+ &:hover {
527
+ color: tokens.$cds-alias-object-interaction-color-hover;
528
+ }
529
+
530
+ &:active {
531
+ color: tokens.$cds-alias-object-interaction-color-active;
532
+ }
533
+ }
534
+ }
535
+
536
+ .datagrid-column-separator {
537
+ display: flex;
538
+ align-items: center;
539
+ flex: 0 0 auto;
540
+ width: tokens.$cds-alias-object-border-width-100;
541
+ order: 100;
542
+ margin-left: auto;
543
+ height: 100%;
544
+
545
+ @include datagrid-mixins.datagrid-column-separator($alignTop: false);
546
+
547
+ .datagrid-column-handle {
548
+ @include mixins.clr-no-styles-button();
549
+
550
+ position: absolute;
551
+ width: calc(tokens.$cds-global-space-6 + tokens.$cds-global-space-1);
552
+ right: calc(-1 * tokens.$cds-global-space-4);
553
+ top: 0;
554
+ cursor: col-resize;
555
+ height: 100%;
556
+ z-index: map.get(variables.$clr-layers, datagrid-header);
557
+ }
558
+
559
+ .datagrid-column-resize-tracker {
560
+ position: absolute;
561
+ top: calc(-1 * tokens.$cds-global-space-6);
562
+ display: none;
563
+ width: tokens.$cds-global-space-1;
564
+ height: 0;
565
+ border-right: tokens.$cds-alias-object-border-width-100 dotted tokens.$cds-global-color-blue-300;
566
+ transform: translateX(0);
567
+ cursor: col-resize;
568
+
569
+ &.on-arrow-key-resize {
570
+ transition: transform 0.2s ease-out;
571
+ }
572
+ }
573
+
574
+ .exceeded-max {
575
+ border-right: tokens.$cds-alias-object-border-width-100 dotted tokens.$cds-alias-status-danger-dark;
576
+ }
577
+ }
578
+
579
+ .datagrid-signpost-trigger .signpost {
580
+ margin: calc(-1 * tokens.$cds-global-space-5) 0;
581
+ height: tables-variables.$clr-table-cell-height;
582
+
583
+ .signpost-trigger {
584
+ height: inherit;
585
+ line-height: tables-variables.$clr-table-cell-height;
586
+ }
587
+ }
588
+
589
+ &.datagrid-select,
590
+ &.datagrid-expandable-caret,
591
+ &.datagrid-row-actions {
592
+ max-width: datagrid-variables.$clr-datagrid-fixed-column-size;
593
+ min-width: datagrid-variables.$clr-datagrid-fixed-column-size;
594
+ }
595
+
596
+ &.datagrid-select {
597
+ align-items: center;
598
+ }
599
+ }
600
+
601
+ .datagrid-cell {
602
+ flex: 1 1 auto;
603
+ text-align: left;
604
+ min-width: tokens.$cds-global-space-15;
605
+ border: none;
606
+
607
+ &.datagrid-fixed-width {
608
+ flex: 0 0 auto;
609
+ }
610
+
611
+ &.datagrid-fixed-column {
612
+ flex: 0 0 datagrid-variables.$clr-datagrid-fixed-column-size;
613
+ max-width: datagrid-variables.$clr-datagrid-fixed-column-size;
614
+ min-width: datagrid-variables.$clr-datagrid-fixed-column-size;
615
+ }
616
+
617
+ &.datagrid-row-actions,
618
+ &.datagrid-expandable-caret,
619
+ &.datagrid-detail-caret {
620
+ padding: 0;
621
+
622
+ button {
623
+ outline-offset: datagrid-variables.$clr-datagrid-cell-outline-offset;
624
+ }
625
+ }
626
+
627
+ &.datagrid-row-actions {
628
+ background: none;
629
+ }
630
+
631
+ &.datagrid-expandable-caret {
632
+ text-align: center;
633
+ }
634
+
635
+ &:focus {
636
+ outline: tokens.$cds-alias-object-interaction-outline;
637
+ outline-color: -webkit-focus-ring-color;
638
+ outline-offset: calc(-1 * tokens.$cds-global-space-2);
639
+ }
640
+
641
+ clr-dg-action-overflow {
642
+ display: contents;
643
+ }
644
+
645
+ .datagrid-action-toggle {
646
+ @include mixins.clr-no-styles-button();
647
+ @include datagrid-mixins.datagrid-action-button-styles();
648
+
649
+ cds-icon,
650
+ clr-icon {
651
+ color: datagrid-variables.$clr-datagrid-icon-color;
652
+ }
653
+
654
+ &:active {
655
+ cds-icon,
656
+ clr-icon {
657
+ // Fixed active state on this button for Safari.
658
+ color: datagrid-variables.$clr-datagrid-action-toggle-color;
659
+ }
660
+ }
661
+ }
662
+
663
+ // align toggle input to row hight
664
+ .clr-toggle-wrapper {
665
+ padding: 0;
666
+ min-height: auto;
667
+ }
668
+ }
669
+
670
+ // Increase interaction area for action buttons without changing layout
671
+ .datagrid-detail-caret,
672
+ .datagrid-row-actions,
673
+ .datagrid-expandable-caret {
674
+ position: relative;
675
+
676
+ .datagrid-action-toggle,
677
+ .datagrid-detail-caret-button,
678
+ .datagrid-expandable-caret-button {
679
+ &::before {
680
+ content: '';
681
+ position: absolute;
682
+ height: 100%;
683
+ width: 100%;
684
+ top: 0;
685
+ left: 0;
686
+ }
687
+ }
688
+ }
689
+
690
+ .datagrid-placeholder-container {
691
+ flex: 1 1 auto;
692
+ display: flex;
693
+ justify-content: center;
694
+ border-top: tokens.$cds-alias-object-border-width-100 solid tables-variables.$clr-table-border-color;
695
+ }
696
+
697
+ .datagrid-placeholder {
698
+ background: datagrid-variables.$clr-datagrid-placeholder-background-color;
699
+ display: none;
700
+ width: 100%;
701
+
702
+ &.datagrid-empty {
703
+ border-top: 0;
704
+ display: flex;
705
+ flex-flow: column nowrap;
706
+ align-items: center;
707
+ justify-content: flex-start;
708
+ gap: density.$clr-base-gap-m;
709
+ padding: density.$clr-base-vertical-offset-2xl density.$clr-base-horizontal-offset-2xl;
710
+
711
+ @include mixins.generate-typography-token('BODY-14-SB-STD');
712
+ }
713
+
714
+ .datagrid-placeholder-image {
715
+ @include mixins.equilateral(density.$clr-base-layout-space-2xl);
716
+
717
+ background-repeat: no-repeat;
718
+ background-size: contain;
719
+ background-position: center;
720
+ background-image: icons.generateEmptyDatagridPlaceholder();
721
+ }
722
+ }
723
+
724
+ .datagrid-hidden-column {
725
+ &.datagrid-column,
726
+ &.datagrid-cell {
727
+ display: none;
728
+ }
729
+ }
730
+
731
+ .datagrid-row-scrollable {
732
+ .datagrid-column {
733
+ .datagrid-column-separator {
734
+ &::after {
735
+ background-color: datagrid-variables.$clr-datagrid-column-resize-handler-color;
736
+ }
737
+ }
738
+ }
739
+ }
740
+ }
741
+
742
+ .datagrid-row-replaced {
743
+ .datagrid-scrolling-cells {
744
+ .datagrid-cell {
745
+ // Keep row action cells so they can be used.
746
+ &:not(.datagrid-expandable-caret, .datagrid-row-actions, .datagrid-select) {
747
+ display: none;
748
+ }
749
+ }
750
+ }
751
+
752
+ .datagrid-row-detail {
753
+ .datagrid-cell {
754
+ display: block;
755
+ padding: tables-variables.$clr-table-cell-padding;
756
+
757
+ &.datagrid-hidden-column {
758
+ display: none;
759
+ }
760
+ }
761
+ }
762
+ }
763
+
764
+ .datagrid-footer {
765
+ @include mixins.generate-typography-token('CAPTION-LG-11-CPT');
766
+
767
+ flex: 0 0 auto;
768
+ display: flex;
769
+ flex-flow: row nowrap;
770
+ justify-content: space-between;
771
+ align-items: stretch;
772
+ gap: density.$clr-base-gap-m;
773
+ min-height: density.$clr-base-row-height-l;
774
+ padding: 0 density.$clr-base-horizontal-offset-xl;
775
+ // Account for borders
776
+ background-color: tables-variables.$clr-thead-bgcolor;
777
+ border-style: solid;
778
+ border-color: tables-variables.$clr-table-footer-border-top-color;
779
+ border-width: tokens.$cds-alias-object-border-width-100;
780
+ border-top: none;
781
+ border-radius: 0;
782
+ border-bottom-right-radius: tables-variables.$clr-table-border-radius;
783
+ border-bottom-left-radius: tables-variables.$clr-table-border-radius;
784
+
785
+ .pagination {
786
+ display: flex;
787
+ align-items: center;
788
+ flex-wrap: wrap;
789
+ justify-content: flex-end;
790
+ gap: datagrid-variables.$clr-datagrid-footer-pagination-gap;
791
+
792
+ &-size {
793
+ display: block;
794
+ flex: 1 1 auto;
795
+ white-space: nowrap;
796
+ text-align: right;
797
+
798
+ clr-dg-page-size {
799
+ display: flex;
800
+ align-items: center;
801
+ gap: density.$clr-base-gap-m;
802
+ }
803
+
804
+ .clr-page-size-select {
805
+ @include mixins.generate-typography-token('CAPTION-LG-11-CPT');
806
+
807
+ height: auto;
808
+ min-height: density.$clr-base-row-height-s;
809
+ vertical-align: middle;
810
+ }
811
+ }
812
+
813
+ &-description {
814
+ white-space: nowrap;
815
+ }
816
+ }
817
+
818
+ .column-switch-wrapper {
819
+ position: relative;
820
+ flex: 0 0 auto;
821
+ display: flex;
822
+ align-items: center;
823
+
824
+ .column-toggle-action {
825
+ // I'm overriding .btn/.btn-link here but am not confident this is the correct way to do it.
826
+ min-width: tokens.$cds-global-space-8;
827
+ text-transform: capitalize;
828
+ padding: datagrid-variables.$clr-datagrid-column-toggle-padding;
829
+ border-color: datagrid-variables.$clr-datagrid-column-toggle-border-color;
830
+ background-color: datagrid-variables.$clr-datagrid-column-toggle-fill-color;
831
+ color: datagrid-variables.$clr-datagrid-column-toggle-text-color;
832
+ margin: 0;
833
+
834
+ &.disabled,
835
+ &:disabled,
836
+ &.disabled:hover,
837
+ &:disabled:hover,
838
+ &.disabled:active,
839
+ &:disabled:active {
840
+ cursor: not-allowed;
841
+ border-color: datagrid-variables.$clr-datagrid-column-toggle-disabled-color;
842
+ color: datagrid-variables.$clr-datagrid-column-toggle-disabled-color;
843
+ background-color: datagrid-variables.$clr-datagrid-column-toggle-fill-color;
844
+ }
845
+
846
+ &:hover {
847
+ border-color: datagrid-variables.$clr-datagrid-column-toggle-border-hover-color;
848
+ background-color: datagrid-variables.$clr-datagrid-column-toggle-fill-hover-color;
849
+ color: datagrid-variables.$clr-datagrid-column-toggle-text-hover-color;
850
+ }
851
+
852
+ &:active,
853
+ &:focus {
854
+ box-shadow: none;
855
+ border-color: datagrid-variables.$clr-datagrid-column-toggle-border-active-color;
856
+ background-color: datagrid-variables.$clr-datagrid-column-toggle-fill-active-color;
857
+ color: datagrid-variables.$clr-datagrid-column-toggle-text-active-color;
858
+ }
859
+ }
860
+ }
861
+
862
+ .clr-form-control-disabled {
863
+ display: flex;
864
+ align-items: center;
865
+ height: 100%;
866
+ }
867
+ }
868
+
869
+ .clr-form-control-disabled .datagrid-footer-select.clr-checkbox-wrapper input[type='checkbox']:checked + label {
870
+ cursor: default;
871
+
872
+ &::before {
873
+ background-color: forms-variables.$clr-forms-label-disabled-color;
874
+ }
875
+ }
876
+
877
+ .datagrid-spinner {
878
+ position: absolute;
879
+ display: flex;
880
+ justify-content: center;
881
+ align-items: center;
882
+ width: 100%;
883
+ top: datagrid-variables.$clr-datagrid-margin-top;
884
+ height: calc(100% - datagrid-variables.$clr-datagrid-margin-top);
885
+ background-color: datagrid-variables.$clr-datagrid-loading-background;
886
+ z-index: map.get(variables.$clr-layers, datagrid-host); // Keeps the spinner above the datagrid header.
887
+ }
888
+
889
+ // @deprecated CSS rule `.datagrid-compact { ... }` in favor of compact mode in density theme
890
+ .datagrid-compact {
891
+ .datagrid {
892
+ margin-top: datagrid-variables.$clr-datagrid-compact-margin-top;
893
+ }
894
+
895
+ .datagrid-spinner {
896
+ height: calc(100% - #{datagrid-variables.$clr-datagrid-compact-margin-top});
897
+ top: datagrid-variables.$clr-datagrid-compact-margin-top;
898
+ }
899
+
900
+ .datagrid-action-bar {
901
+ margin-top: datagrid-variables.$clr-datagrid-compact-action-bar-offset;
902
+
903
+ & ~ .datagrid-outer-wrapper .datagrid-spinner {
904
+ height: calc(100% - #{datagrid-variables.$clr-datagrid-compact-action-bar-offset});
905
+ top: datagrid-variables.$clr-datagrid-compact-action-bar-offset;
906
+ }
907
+ }
908
+
909
+ .datagrid-detail-pane {
910
+ margin-top: datagrid-variables.$clr-datagrid-compact-margin-top;
911
+
912
+ &-content {
913
+ padding: tokens.$cds-global-space-6;
914
+
915
+ .datagrid-detail-header {
916
+ gap: mixins.baselinePx(10);
917
+ font-size: tokens.$cds-global-space-7;
918
+ line-height: mixins.baselinePx(20);
919
+
920
+ .datagrid-detail-pane-close {
921
+ flex-basis: mixins.baselinePx(20);
922
+
923
+ button {
924
+ cds-icon,
925
+ clr-icon {
926
+ &:not([size]) {
927
+ @include mixins.min-equilateral(mixins.baselinePx(20));
928
+ }
929
+ }
930
+ }
931
+ }
932
+ }
933
+
934
+ .datagrid-detail-body {
935
+ padding: tokens.$cds-global-space-6 0;
936
+ }
937
+ }
938
+ }
939
+
940
+ .datagrid-column {
941
+ &.datagrid-select,
942
+ &.datagrid-expandable-caret,
943
+ &.datagrid-row-actions {
944
+ max-width: datagrid-variables.$clr-datagrid-compact-fixed-column-size;
945
+ min-width: datagrid-variables.$clr-datagrid-compact-fixed-column-size;
946
+ }
947
+ }
948
+
949
+ .datagrid-cell.datagrid-fixed-column {
950
+ flex: 0 0 datagrid-variables.$clr-datagrid-compact-fixed-column-size;
951
+ max-width: datagrid-variables.$clr-datagrid-compact-fixed-column-size;
952
+ min-width: datagrid-variables.$clr-datagrid-compact-fixed-column-size;
953
+ }
954
+
955
+ .datagrid-row {
956
+ min-height: tables-variables.$clr-table-compact-row-height;
957
+
958
+ &:first-of-type {
959
+ min-height: calc(tables-variables.$clr-table-compact-row-height - tables-variables.$clr-table-borderwidth);
960
+ }
961
+
962
+ .datagrid-row-detail .datagrid-cell.datagrid-container {
963
+ font-size: mixins.baselinePx(13);
964
+ line-height: tokens.$cds-global-space-8;
965
+ }
966
+
967
+ &.datagrid-row-skeleton {
968
+ .datagrid-row-master {
969
+ &::before {
970
+ top: tables-variables.$clr-table-compact-vertical-padding;
971
+ left: tables-variables.$clr-table-compact-horizontal-padding;
972
+ height: calc(100% - (2 * tables-variables.$clr-table-compact-vertical-padding));
973
+ width: calc(100% - (2 * tables-variables.$clr-table-compact-horizontal-padding));
974
+ }
975
+ }
976
+ }
977
+ }
978
+
979
+ .datagrid-row-replaced .datagrid-row-detail .datagrid-cell {
980
+ padding: tables-variables.$clr-table-cell-compact-padding;
981
+ }
982
+
983
+ .datagrid-column .datagrid-column-separator {
984
+ &::after {
985
+ height: calc(100% - (0.5 * #{datagrid-variables.$clr-datagrid-column-separator-expandby}));
986
+ }
987
+ }
988
+
989
+ .datagrid-detail-caret {
990
+ .datagrid-detail-caret-button {
991
+ @include datagrid-mixins.datagrid-action-button-styles(
992
+ tables-variables.$clr-table-compact-cell-height,
993
+ datagrid-variables.$clr-datagrid-compact-fixed-column-size,
994
+ tokens.$cds-global-space-7
995
+ );
996
+ }
997
+
998
+ .spinner {
999
+ margin-top: datagrid-variables.$clr-datagrid-compact-expandable-row-spinner-margin;
1000
+ }
1001
+ }
1002
+
1003
+ .datagrid-cell:not(.datagrid-detail-caret, .datagrid-expandable-caret, .datagrid-row-actions) {
1004
+ @include mixins.cell-children-aligment();
1005
+ }
1006
+
1007
+ .datagrid-expandable-caret {
1008
+ text-align: center;
1009
+
1010
+ .spinner {
1011
+ margin-top: datagrid-variables.$clr-datagrid-compact-expandable-row-spinner-margin;
1012
+ }
1013
+
1014
+ .datagrid-expandable-caret-button {
1015
+ @include datagrid-mixins.datagrid-action-button-styles(
1016
+ tables-variables.$clr-table-compact-cell-height,
1017
+ datagrid-variables.$clr-datagrid-compact-fixed-column-size,
1018
+ tokens.$cds-global-space-7
1019
+ );
1020
+ }
1021
+
1022
+ .datagrid-expandable-caret-icon {
1023
+ margin: 0;
1024
+ }
1025
+
1026
+ &.datagrid-column {
1027
+ padding-top: tables-variables.$clr-table-compact-vertical-padding;
1028
+ padding-bottom: tables-variables.$clr-table-compact-vertical-padding;
1029
+ }
1030
+ }
1031
+
1032
+ .datagrid-row-actions {
1033
+ .datagrid-action-toggle {
1034
+ @include datagrid-mixins.datagrid-action-button-styles(
1035
+ tables-variables.$clr-table-compact-cell-height,
1036
+ datagrid-variables.$clr-datagrid-compact-fixed-column-size,
1037
+ tokens.$cds-global-space-7
1038
+ );
1039
+ }
1040
+ }
1041
+
1042
+ .datagrid-signpost-trigger .signpost .signpost-trigger {
1043
+ cds-icon:not(
1044
+ [size],
1045
+ [shape='info-circle'],
1046
+ [shape='exclamation-triangle'],
1047
+ [shape='exclamation-circle'],
1048
+ [shape='check-circle'],
1049
+ [shape='info'],
1050
+ [shape='error']
1051
+ ),
1052
+ clr-icon:not(
1053
+ [size],
1054
+ [shape='info-circle'],
1055
+ [shape='exclamation-triangle'],
1056
+ [shape='exclamation-circle'],
1057
+ [shape='check-circle'],
1058
+ [shape='info'],
1059
+ [shape='error']
1060
+ ) {
1061
+ @include mixins.equilateral(tables-variables.$clr-table-compact-cell-height);
1062
+ }
1063
+ }
1064
+
1065
+ .datagrid-footer {
1066
+ min-height: mixins.baselinePx(28);
1067
+ line-height: tokens.$cds-global-space-7;
1068
+ padding: 0 tokens.$cds-global-space-6;
1069
+
1070
+ .pagination {
1071
+ &,
1072
+ clr-dg-page-size {
1073
+ gap: mixins.baselinePx(10);
1074
+ }
1075
+
1076
+ .clr-select-wrapper {
1077
+ max-height: mixins.baselinePx(20);
1078
+
1079
+ &::after {
1080
+ --clr-forms-select-caret-size: #{tokens.$cds-global-space-6};
1081
+
1082
+ right: tokens.$cds-global-space-2;
1083
+ }
1084
+
1085
+ .clr-page-size-select {
1086
+ min-height: mixins.baselinePx(20);
1087
+ padding: 0 mixins.baselinePx(20) 0 tokens.$cds-global-space-2;
1088
+ }
1089
+ }
1090
+ }
1091
+
1092
+ .clr-form-control-disabled .datagrid-footer-select.clr-checkbox-wrapper input[type='checkbox']:checked + label {
1093
+ top: 0;
1094
+ }
1095
+
1096
+ .column-switch-wrapper .column-toggle-action {
1097
+ border-radius: tokens.$cds-global-space-2;
1098
+ padding: 0 tokens.$cds-global-space-4;
1099
+ height: mixins.baselinePx(20);
1100
+ }
1101
+ }
1102
+
1103
+ .pagination-list {
1104
+ gap: tokens.$cds-global-space-4;
1105
+
1106
+ .pagination-current {
1107
+ // @include mixins.generate-typography-token('CAPTION-LG-11');
1108
+ padding: tokens.$cds-global-space-2 0;
1109
+ }
1110
+
1111
+ .pagination-pages {
1112
+ gap: tokens.$cds-global-space-2;
1113
+ }
1114
+
1115
+ .pagination-current,
1116
+ button {
1117
+ border-radius: tokens.$cds-global-space-2;
1118
+
1119
+ @include mixins.min-equilateral(mixins.baselinePx(20));
1120
+ }
1121
+ }
1122
+
1123
+ .datagrid-action-overflow .action-item {
1124
+ font-size: tokens.$cds-global-space-6;
1125
+ line-height: mixins.baselinePx(20);
1126
+ gap: tokens.$cds-global-space-2;
1127
+ height: mixins.baselinePx(20);
1128
+ padding: 0 mixins.baselinePx(20) 0 tokens.$cds-global-space-5;
1129
+ }
1130
+
1131
+ .datagrid-placeholder.datagrid-empty {
1132
+ font-size: mixins.baselinePx(13);
1133
+ line-height: tokens.$cds-global-space-8;
1134
+ padding: mixins.baselinePx(20);
1135
+ gap: mixins.baselinePx(10);
1136
+
1137
+ .datagrid-placeholder-image {
1138
+ @include mixins.equilateral(tokens.$cds-global-space-10);
1139
+ }
1140
+ }
1141
+ }
1142
+
1143
+ .datagrid-footer-description {
1144
+ flex: 1 1 auto;
1145
+ flex-wrap: nowrap;
1146
+ white-space: nowrap;
1147
+ display: block;
1148
+ text-align: right;
1149
+ margin: auto 0;
1150
+ }
1151
+
1152
+ // Yes, this is not .datagrid-pagination on purpose.
1153
+ // I've been told to consider a potential separate pagination component.
1154
+ .pagination-list {
1155
+ list-style: none;
1156
+ display: flex;
1157
+ flex-flow: row nowrap;
1158
+ justify-content: center;
1159
+ align-items: center;
1160
+ gap: density.$clr-base-gap-s;
1161
+
1162
+ .pagination-current {
1163
+ @include mixins.generate-typography-token('CAPTION-LG-11-CPT');
1164
+
1165
+ background: none;
1166
+ background-color: forms-variables.$clr-forms-textarea-background-color;
1167
+ border-color: datagrid-variables.$clr-datagrid-pagination-input-border-color;
1168
+ border-width: tokens.$cds-alias-object-border-width-100;
1169
+ border-style: solid;
1170
+ border-radius: density.$clr-base-border-radius-s;
1171
+
1172
+ @include mixins.min-equilateral(density.$clr-base-layout-space-l);
1173
+
1174
+ text-align: center;
1175
+ transition: none !important;
1176
+ padding: density.$clr-base-vertical-offset-xs 0;
1177
+
1178
+ &:focus,
1179
+ &.clr-focus {
1180
+ background: none;
1181
+ border: tokens.$cds-alias-object-border-width-100 solid
1182
+ datagrid-variables.$clr-datagrid-pagination-input-border-focus-color;
1183
+ }
1184
+ }
1185
+
1186
+ .pagination-pages {
1187
+ display: flex;
1188
+ align-items: center;
1189
+ gap: density.$clr-base-gap-xs;
1190
+ }
1191
+
1192
+ .pagination-first,
1193
+ .pagination-last,
1194
+ .pagination-previous,
1195
+ .pagination-next {
1196
+ display: flex;
1197
+ align-items: center;
1198
+ background-repeat: no-repeat;
1199
+ background-size: contain;
1200
+ }
1201
+
1202
+ .pagination-first:disabled,
1203
+ .pagination-last:disabled,
1204
+ .pagination-previous:disabled,
1205
+ .pagination-next:disabled {
1206
+ color: tokens.$cds-alias-status-disabled;
1207
+ cursor: not-allowed;
1208
+ opacity: datagrid-variables.$clr-datagrid-pagination-btn-disabled-opacity;
1209
+ }
1210
+
1211
+ button {
1212
+ @include mixins.clr-no-styles-button();
1213
+ @include mixins.min-equilateral(density.$clr-base-icon-size-l);
1214
+
1215
+ justify-content: center;
1216
+ color: datagrid-variables.$clr-datagrid-pagination-btn-color;
1217
+ // FIXME: this should be in the general reboot
1218
+ cursor: pointer;
1219
+ }
1220
+ }
1221
+
1222
+ /*
1223
+ The following classes are used by the renderer when performing internal operations.
1224
+ Using the browser calculations improves rendering performance.
1225
+ */
1226
+ // This class is used by the dom-renderer.ts when testing cell for a user defined width.
1227
+ .datagrid-cell-width-zero {
1228
+ // Much zero. Such !important. Wow.
1229
+ border: 0 !important;
1230
+ padding: 0 !important;
1231
+ width: 0;
1232
+ flex: 0 0 auto !important;
1233
+ min-width: 0 !important;
1234
+ display: block !important;
1235
+ visibility: hidden !important;
1236
+ position: absolute !important;
1237
+ top: 0;
1238
+ left: 0;
1239
+ }
1240
+
1241
+ /**
1242
+ * Detail pane
1243
+ */
1244
+ .datagrid-outer-wrapper {
1245
+ display: flex;
1246
+ flex-direction: row;
1247
+ flex-grow: 1;
1248
+ overflow: auto;
1249
+ }
1250
+
1251
+ .datagrid-inner-wrapper {
1252
+ display: flex;
1253
+ flex-direction: column;
1254
+ flex-grow: 1;
1255
+ overflow: auto;
1256
+ min-width: mixins.baselinePx(240);
1257
+ }
1258
+
1259
+ .datagrid-detail-open {
1260
+ &:has(.datagrid-detail-pane.datagrid-detail-custom-width) .datagrid-inner-wrapper {
1261
+ min-width: initial;
1262
+ width: initial;
1263
+
1264
+ .datagrid-rows {
1265
+ overflow-x: initial;
1266
+ }
1267
+ }
1268
+
1269
+ .datagrid-detail-pane.datagrid-detail-custom-width {
1270
+ flex-grow: 0;
1271
+ }
1272
+
1273
+ & > .datagrid-outer-wrapper > .datagrid-inner-wrapper {
1274
+ div.datagrid-table {
1275
+ /**
1276
+ * So the content with no spaces in the cell doesn't get cut when and the row selected indicator is not hidden
1277
+ * e.g. Helloworldthisisaveryveryveryveryverylongcontent
1278
+ */
1279
+ max-width: 100%;
1280
+ }
1281
+
1282
+ .datagrid-rows {
1283
+ /**
1284
+ * To get rid of detail-pane overlapping the content inside the rows
1285
+ */
1286
+ overflow-x: hidden;
1287
+ }
1288
+
1289
+ & > .cdk-virtual-scrollable div.datagrid-table {
1290
+ overflow: unset;
1291
+ }
1292
+
1293
+ clr-dg-cell {
1294
+ /**
1295
+ * Since we use inline width of each column in order to maintain manual resizing,
1296
+ * we need to use !important to override the inline width.
1297
+ */
1298
+ width: 100% !important;
1299
+ }
1300
+
1301
+ /**
1302
+ * Needed to prevent hidding the sorting and filtering icons
1303
+ */
1304
+ clr-dg-column:first-child {
1305
+ /**
1306
+ * Since we use inline width of each column in order to maintain manual resizing,
1307
+ * we need to use !important to override the inline width.
1308
+ */
1309
+ width: auto !important;
1310
+ }
1311
+ }
1312
+
1313
+ .datagrid {
1314
+ border-top-right-radius: 0;
1315
+ border-right: none;
1316
+ }
1317
+
1318
+ .datagrid-inner-wrapper {
1319
+ width: 34%;
1320
+ }
1321
+
1322
+ .datagrid-placeholder-container,
1323
+ .datagrid-row {
1324
+ border-right: tokens.$cds-alias-object-border-width-100 solid tables-variables.$clr-table-border-color;
1325
+ }
1326
+
1327
+ .datagrid-footer {
1328
+ border-bottom-right-radius: 0;
1329
+ }
1330
+
1331
+ .pagination {
1332
+ width: 100%;
1333
+ }
1334
+
1335
+ .pagination-description-compact {
1336
+ text-align: left;
1337
+ flex: 1;
1338
+ }
1339
+
1340
+ .datagrid-footer .pagination-list {
1341
+ margin-right: 0;
1342
+ }
1343
+ }
1344
+
1345
+ .datagrid-row-detail-open {
1346
+ position: relative;
1347
+
1348
+ &:not(:hover) {
1349
+ background-color: datagrid-variables.$clr-datagrid-detail-pane-open-row-bg-color;
1350
+
1351
+ .datagrid-row-sticky {
1352
+ background-color: datagrid-variables.$clr-datagrid-detail-pane-open-row-bg-color;
1353
+ }
1354
+ }
1355
+ }
1356
+
1357
+ .datagrid-detail-pane {
1358
+ margin-top: datagrid-variables.$clr-datagrid-margin-top;
1359
+ border-width: tokens.$cds-alias-object-border-width-100;
1360
+ border-style: solid;
1361
+ border-color: datagrid-variables.$clr-datagrid-detail-pane-border-color;
1362
+ border-left: none;
1363
+ border-top-right-radius: density.$clr-base-border-radius-s;
1364
+ border-bottom-right-radius: density.$clr-base-border-radius-s;
1365
+ background: datagrid-variables.$clr-datagrid-detail-pane-bg-color;
1366
+ overflow: hidden;
1367
+ display: block;
1368
+ flex-grow: 2;
1369
+ }
1370
+
1371
+ .datagrid-detail-pane-content {
1372
+ display: flex;
1373
+ flex-direction: column;
1374
+ overflow: auto;
1375
+ height: 100%;
1376
+ padding: datagrid-variables.$clr-datagrid-detail-pane-content-padding;
1377
+ }
1378
+
1379
+ .datagrid-detail-body {
1380
+ flex: 1 1 auto;
1381
+ padding: density.$clr-base-vertical-offset-xl 0;
1382
+ color: datagrid-variables.$clr-datagrid-detail-body-text-color;
1383
+ }
1384
+
1385
+ .datagrid-detail-header {
1386
+ flex: 0 0 auto;
1387
+ @include mixins.generate-typography-token('SECTION-20-STD');
1388
+
1389
+ margin-top: 0;
1390
+ display: flex;
1391
+ flex-direction: row;
1392
+ gap: density.$clr-base-gap-m;
1393
+
1394
+ .datagrid-detail-header-title {
1395
+ flex: 1 1 auto;
1396
+ color: datagrid-variables.$clr-datagrid-detail-header-title-color;
1397
+ overflow-wrap: anywhere;
1398
+ padding: #{tokens.$cds-global-space-1} 0; // outline header needs this to keep the shape correct
1399
+ }
1400
+
1401
+ .datagrid-detail-pane-close {
1402
+ flex: 1 1 datagrid-variables.$clr-datagrid-detail-pane-close-icon-size;
1403
+ display: flex;
1404
+ justify-content: flex-end;
1405
+
1406
+ .btn.btn-link {
1407
+ align-items: start;
1408
+ min-width: auto;
1409
+ height: auto;
1410
+ margin: 0;
1411
+ padding: 0;
1412
+ border: 0;
1413
+
1414
+ cds-icon,
1415
+ clr-icon {
1416
+ @include mixins.min-equilateral(datagrid-variables.$clr-datagrid-detail-pane-close-icon-size);
1417
+
1418
+ color: modal-variables.$clr-modal-close-color;
1419
+ }
1420
+ }
1421
+ }
1422
+ }
1423
+
1424
+ .datagrid-expandable-caret {
1425
+ display: flex;
1426
+ justify-content: center;
1427
+
1428
+ .datagrid-expandable-caret-button {
1429
+ @include mixins.clr-no-styles-button();
1430
+ @include datagrid-mixins.datagrid-action-button-styles();
1431
+ }
1432
+
1433
+ .datagrid-expandable-caret-icon {
1434
+ color: datagrid-variables.$clr-datagrid-icon-color;
1435
+
1436
+ svg {
1437
+ transition: transform 0.2s ease-in-out;
1438
+ }
1439
+ }
1440
+
1441
+ .spinner {
1442
+ margin-top: datagrid-variables.$clr-datagrid-expandable-row-spinner-margin;
1443
+ }
1444
+ }
1445
+
1446
+ .datagrid-detail-caret {
1447
+ display: flex;
1448
+ justify-content: center;
1449
+
1450
+ .datagrid-detail-caret-button {
1451
+ @include mixins.clr-no-styles-button();
1452
+ @include datagrid-mixins.datagrid-action-button-styles();
1453
+
1454
+ &:disabled {
1455
+ cds-icon,
1456
+ clr-icon {
1457
+ &.datagrid-detail-caret-icon {
1458
+ --color: #{tokens.$cds-alias-object-interaction-color-disabled};
1459
+ }
1460
+ }
1461
+ }
1462
+
1463
+ &.is-open .datagrid-detail-caret-icon {
1464
+ border-radius: density.$clr-base-border-radius-s;
1465
+ background-color: datagrid-variables.$clr-datagrid-detail-caret-icon-open-bg-color;
1466
+ color: datagrid-variables.$clr-datagrid-detail-caret-icon-open-icon-color;
1467
+ }
1468
+ }
1469
+
1470
+ .datagrid-detail-caret-icon {
1471
+ color: datagrid-variables.$clr-datagrid-icon-color;
1472
+ }
1473
+
1474
+ .spinner {
1475
+ margin-top: datagrid-variables.$clr-datagrid-expandable-row-spinner-margin;
1476
+ }
1477
+ }
1478
+
1479
+ // Small screens should only display the detail pane when opened, or optionally forced by a class
1480
+ .datagrid-detail-overlay {
1481
+ // too specific query needed to avoid issues with nested datagrids
1482
+ &.datagrid-detail-open > .datagrid-outer-wrapper > .datagrid-inner-wrapper {
1483
+ width: 0;
1484
+ min-width: unset;
1485
+ }
1486
+
1487
+ .datagrid-detail-pane {
1488
+ border-left: tokens.$cds-alias-object-border-width-100 solid;
1489
+ border-color: datagrid-variables.$clr-datagrid-detail-pane-border-color;
1490
+ border-radius: density.$clr-base-border-radius-s;
1491
+ width: 100%;
1492
+ }
1493
+ }
1494
+
1495
+ @media screen and (max-width: map.get(variables.$clr-grid-breakpoints, sm)) {
1496
+ // too specific query needed to avoid issues with nested datagrids
1497
+ .datagrid-detail-open > .datagrid-outer-wrapper > .datagrid-inner-wrapper {
1498
+ display: none;
1499
+ }
1500
+
1501
+ .datagrid-detail-pane {
1502
+ border-left: tokens.$cds-alias-object-border-width-100 solid;
1503
+ border-color: datagrid-variables.$clr-datagrid-detail-pane-border-color;
1504
+ border-radius: density.$clr-base-border-radius-s;
1505
+ width: 100% !important;
1506
+ }
1507
+ }
1508
+
1509
+ /**
1510
+ * Smart popover contents
1511
+ */
1512
+ .column-switch {
1513
+ border-radius: density.$clr-base-border-radius-s;
1514
+ background-color: datagrid-variables.$clr-datagrid-popover-bg-color;
1515
+ border-width: tokens.$cds-alias-object-border-width-100;
1516
+ border-style: solid;
1517
+ border-color: datagrid-variables.$clr-datagrid-popover-border-color;
1518
+
1519
+ @include datagrid-mixins.clr-datagrid-popover-shadows();
1520
+
1521
+ width: mixins.baselinePx(250);
1522
+ display: flex;
1523
+ flex-direction: column;
1524
+ z-index: map.get(variables.$clr-layers, column-switch); // Keeps the popup above the datagrid header.
1525
+
1526
+ .switch-header {
1527
+ display: flex;
1528
+ justify-content: space-between;
1529
+
1530
+ @include mixins.generate-typography-token('SUBSECTION-16-EXP');
1531
+
1532
+ padding: density.$clr-base-vertical-offset-xl density.$clr-base-horizontal-offset-xl 0
1533
+ density.$clr-base-horizontal-offset-xl;
1534
+
1535
+ // From accessibility perspective we let use of header tags inside the switch header,
1536
+ // but want not to be affected from the global header styles so this is a workaround.
1537
+ h1,
1538
+ h2,
1539
+ h3,
1540
+ h4,
1541
+ h5,
1542
+ h6 {
1543
+ color: variables.$clr-p1-color;
1544
+
1545
+ @include mixins.generate-typography-token('SUBSECTION-16-EXP');
1546
+
1547
+ margin: 0;
1548
+ }
1549
+
1550
+ button {
1551
+ min-width: density.$clr-base-icon-size-s;
1552
+ margin: 0;
1553
+ padding: 0;
1554
+
1555
+ cds-icon,
1556
+ clr-icon {
1557
+ color: datagrid-variables.$clr-datagrid-column-switch-header-font-color;
1558
+
1559
+ &:hover {
1560
+ color: datagrid-variables.$clr-datagrid-column-switch-header-font-hover-color;
1561
+ }
1562
+
1563
+ &:active {
1564
+ color: datagrid-variables.$clr-datagrid-column-switch-header-font-active-color;
1565
+ }
1566
+ }
1567
+ }
1568
+ }
1569
+
1570
+ ul.switch-content {
1571
+ display: flex;
1572
+ flex-direction: column;
1573
+ gap: density.$clr-base-gap-xs;
1574
+ max-height: mixins.baselinePx(300);
1575
+ overflow-y: auto;
1576
+ min-height: tables-variables.$clr-table-row-height;
1577
+
1578
+ // Increase specificity
1579
+ &.list-unstyled {
1580
+ padding: density.$clr-base-vertical-offset-m density.$clr-base-horizontal-offset-xl;
1581
+ }
1582
+
1583
+ li {
1584
+ line-height: unset;
1585
+ padding-left: density.$clr-base-horizontal-offset-xs;
1586
+ }
1587
+ }
1588
+
1589
+ .switch-footer {
1590
+ padding: 0 density.$clr-base-horizontal-offset-xl density.$clr-base-vertical-offset-xl
1591
+ density.$clr-base-horizontal-offset-xl;
1592
+
1593
+ .btn {
1594
+ margin: 0;
1595
+ padding: 0;
1596
+ }
1597
+
1598
+ .action-right {
1599
+ display: flex;
1600
+ justify-content: flex-end;
1601
+ }
1602
+ }
1603
+ }
1604
+
1605
+ .datagrid-filter {
1606
+ margin-top: tokens.$cds-global-space-3;
1607
+ background: datagrid-variables.$clr-datagrid-popover-bg-color;
1608
+ border-width: tokens.$cds-alias-object-border-width-100;
1609
+ border-style: solid;
1610
+ border-color: datagrid-variables.$clr-datagrid-popover-border-color;
1611
+ padding: density.$clr-base-vertical-offset-xl;
1612
+
1613
+ @include datagrid-mixins.clr-datagrid-popover-shadows;
1614
+
1615
+ border-radius: density.$clr-base-border-radius-s;
1616
+ font-weight: normal;
1617
+
1618
+ .datagrid-filter-close-wrapper {
1619
+ text-align: right;
1620
+
1621
+ .close {
1622
+ float: none;
1623
+ font-size: unset;
1624
+ }
1625
+ }
1626
+
1627
+ // FIXME: remove
1628
+ .datagrid-filter-apply {
1629
+ margin-bottom: 0;
1630
+ }
1631
+
1632
+ .datagrid-numeric-filter-form {
1633
+ display: flex;
1634
+ gap: density.$clr-base-gap-m;
1635
+
1636
+ input.datagrid-numeric-filter-input {
1637
+ width: density.$clr-base-layout-space-5xl;
1638
+ }
1639
+ }
1640
+
1641
+ .clr-form-control {
1642
+ margin-top: 0;
1643
+ }
1644
+ }
1645
+
1646
+ .datagrid-action-overflow {
1647
+ @include datagrid-mixins.datagrid-action-overflow-appearance();
1648
+ }
1649
+
1650
+ .right-bottom .datagrid-action-overflow {
1651
+ &::before {
1652
+ top: auto;
1653
+ bottom: tokens.$cds-global-space-4;
1654
+ }
1655
+
1656
+ &::after {
1657
+ top: auto;
1658
+ bottom: calc(tokens.$cds-global-space-4 + tokens.$cds-global-space-1);
1659
+ }
1660
+ }
1661
+
1662
+ .right-top .datagrid-action-overflow {
1663
+ &::before {
1664
+ top: tokens.$cds-global-space-6;
1665
+ }
1666
+
1667
+ &::after {
1668
+ top: tokens.$cds-global-space-6;
1669
+ }
1670
+ }
1671
+
1672
+ /* END Datagrid Smart Popover Content Styles
1673
+
1674
+ /**
1675
+ * These classes are used in table-renderer.ts when it puts the datagrid into in tableMode and computes column
1676
+ * widths. NOTE: they are only applied during calculation and then removed.
1677
+ */
1678
+
1679
+ /**
1680
+ * When in calculate mode
1681
+ * - Hide the display elements for datagrid
1682
+ * - Switch display mode for elements with projected content to calcualte sizes.
1683
+ */
1684
+ .datagrid-host.datagrid-calculate-mode {
1685
+ display: block;
1686
+ overflow-y: auto;
1687
+
1688
+ // Hide parts of the display table not used for calculation.
1689
+ .datagrid,
1690
+ .datagrid-footer,
1691
+ .datagrid-row-master,
1692
+ .datagrid-row-clickable {
1693
+ display: none;
1694
+ }
1695
+
1696
+ .datagrid-calculation-table {
1697
+ display: table;
1698
+ table-layout: auto;
1699
+
1700
+ .datagrid-calculation-header {
1701
+ display: table-header-group;
1702
+
1703
+ .datagrid-column {
1704
+ display: table-cell;
1705
+ min-width: tokens.$cds-global-space-15;
1706
+ }
1707
+
1708
+ .datagrid-column {
1709
+ // This is a hack b/c styles were not applied out of the box when moving columns into the
1710
+ // calculation container element
1711
+ border-color: tables-variables.$clr-tablerow-bordercolor;
1712
+ border-width: tables-variables.$clr-table-borderwidth;
1713
+ border-style: solid;
1714
+ padding: tables-variables.$clr-table-cell-padding;
1715
+ vertical-align: top;
1716
+
1717
+ @include mixins.generate-typography-token('CAPTION-LG-11-STD');
1718
+ }
1719
+ }
1720
+
1721
+ .datagrid-row {
1722
+ display: table-row;
1723
+
1724
+ .datagrid-cell {
1725
+ // This is a hack b/c styles were not applied out of the box when moving columns into the
1726
+ // calculation container element
1727
+ display: table-cell;
1728
+ min-width: tokens.$cds-global-space-15;
1729
+
1730
+ @include mixins.generate-typography-token('BODY-14-RG-CPT');
1731
+
1732
+ padding: tables-variables.$clr-table-cell-padding;
1733
+ vertical-align: top;
1734
+ }
1735
+ }
1736
+ }
1737
+
1738
+ // Hide other elements that come along for the ride
1739
+ .datagrid-column-separator {
1740
+ display: none;
1741
+ }
1742
+
1743
+ .datagrid-placeholder-container {
1744
+ display: none;
1745
+ }
1746
+
1747
+ .datagrid-fixed-column {
1748
+ display: none;
1749
+ }
1750
+ }
1751
+
1752
+ // END Calculation classes.
1753
+ }