@patternfly/patternfly 6.3.0-prerelease.26 → 6.3.0-prerelease.28

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 (34) hide show
  1. package/base/patternfly-common.css +35 -0
  2. package/base/patternfly-common.scss +46 -1
  3. package/components/Accordion/accordion.css +1 -1
  4. package/components/Accordion/accordion.scss +1 -1
  5. package/components/DualListSelector/dual-list-selector.css +1 -1
  6. package/components/DualListSelector/dual-list-selector.scss +1 -1
  7. package/components/ExpandableSection/expandable-section.css +1 -1
  8. package/components/ExpandableSection/expandable-section.scss +1 -1
  9. package/components/Form/form.css +1 -1
  10. package/components/Form/form.scss +1 -1
  11. package/components/FormControl/form-control.css +16 -0
  12. package/components/FormControl/form-control.scss +9 -0
  13. package/components/Nav/nav.css +1 -1
  14. package/components/Nav/nav.scss +1 -1
  15. package/components/Progress/progress.css +16 -0
  16. package/components/Progress/progress.scss +11 -1
  17. package/components/Table/table.css +52 -25
  18. package/components/Table/table.scss +73 -22
  19. package/components/TextInputGroup/text-input-group.css +16 -0
  20. package/components/TextInputGroup/text-input-group.scss +8 -0
  21. package/components/TreeView/tree-view.css +1 -1
  22. package/components/TreeView/tree-view.scss +1 -1
  23. package/components/_index.css +106 -31
  24. package/docs/components/Table/examples/Table.md +8586 -5760
  25. package/docs/demos/Card/examples/Card.md +1 -1
  26. package/docs/demos/Table/examples/Table.md +2 -2
  27. package/package.json +2 -2
  28. package/patternfly-base-no-globals.css +34 -0
  29. package/patternfly-base.css +34 -0
  30. package/patternfly-no-globals.css +140 -31
  31. package/patternfly.css +140 -31
  32. package/patternfly.min.css +1 -1
  33. package/patternfly.min.css.map +1 -1
  34. package/sass-utilities/mixins.scss +19 -0
@@ -55,4 +55,39 @@
55
55
  --pf-t--global--duration--200: 1ms !important;
56
56
  --pf-t--global--duration--100: 1ms !important;
57
57
  --pf-t--global--duration--50: 1ms !important;
58
+ }
59
+
60
+ :root {
61
+ --pf-v6-global--danger-jiggle--AnimationDuration--Transform: var(--pf-t--global--motion--duration--fade--default);
62
+ --pf-v6-global--danger-jiggle--AnimationTimingFunction--Transform: var(--pf-t--global--motion--timing-function--default);
63
+ }
64
+
65
+ @property --pf-v6-global--danger-jiggle--TranslateX {
66
+ syntax: "<length>";
67
+ inherits: false;
68
+ initial-value: 0;
69
+ }
70
+ @keyframes pf-v6-global-danger-jiggle-motion {
71
+ 33% {
72
+ --pf-v6-global--danger-jiggle--TranslateX: -2px;
73
+ }
74
+ 66% {
75
+ --pf-v6-global--danger-jiggle--TranslateX: 3px;
76
+ }
77
+ }
78
+ @keyframes pf-v6-global-fade-in {
79
+ from {
80
+ opacity: 0;
81
+ }
82
+ to {
83
+ opacity: 1;
84
+ }
85
+ }
86
+ @keyframes pf-v6-global-fade-out {
87
+ from {
88
+ opacity: 1;
89
+ }
90
+ to {
91
+ opacity: 0;
92
+ }
58
93
  }
@@ -66,4 +66,49 @@
66
66
  --pf-t--global--duration--50: 1ms !important;
67
67
 
68
68
  // stylelink-enable declaration-no-important
69
- }
69
+ }
70
+
71
+ :root {
72
+ --#{$pf-global}--danger-jiggle--AnimationDuration--Transform: var(--pf-t--global--motion--duration--fade--default);
73
+ --#{$pf-global}--danger-jiggle--AnimationTimingFunction--Transform: var(--pf-t--global--motion--timing-function--default);
74
+ }
75
+
76
+ // Register the property type for the custom property to be animatable
77
+ @property --#{$pf-global}--danger-jiggle--TranslateX {
78
+ syntax: "<length>";
79
+ inherits: false;
80
+ initial-value: 0;
81
+ }
82
+
83
+ // Animate danger jiggle
84
+ @keyframes #{$pf-global}-danger-jiggle-motion {
85
+ 33% {
86
+ --#{$pf-global}--danger-jiggle--TranslateX: -2px;
87
+ }
88
+
89
+ 66% {
90
+ --#{$pf-global}--danger-jiggle--TranslateX: 3px;
91
+ }
92
+ }
93
+
94
+ // Animate fade-in
95
+ @keyframes #{$pf-global}-fade-in {
96
+ from {
97
+ opacity: 0;
98
+ }
99
+
100
+ to {
101
+ opacity: 1;
102
+ }
103
+ }
104
+
105
+ // Animate fade-out
106
+ @keyframes #{$pf-global}-fade-out {
107
+ from {
108
+ opacity: 1;
109
+ }
110
+
111
+ to {
112
+ opacity: 0;
113
+ }
114
+ }
@@ -202,7 +202,7 @@
202
202
  overflow-y: auto;
203
203
  }
204
204
  .pf-v6-c-accordion__item.pf-m-expanded .pf-v6-c-accordion__expandable-content {
205
- max-height: 9999px;
205
+ max-height: 99999px;
206
206
  margin-block-end: var(--pf-v6-c-accordion__expandable-content--MarginBlockEnd);
207
207
  visibility: revert;
208
208
  transition-delay: 0s;
@@ -232,7 +232,7 @@
232
232
  }
233
233
 
234
234
  .#{$accordion}__item.pf-m-expanded & {
235
- max-height: 9999px;
235
+ max-height: 99999px;
236
236
  margin-block-end: var(--#{$accordion}__expandable-content--MarginBlockEnd);
237
237
  visibility: revert;
238
238
  transition-delay: 0s;
@@ -185,7 +185,7 @@
185
185
  --pf-v6-c-dual-list-selector__item-toggle-icon--Rotate: var(--pf-v6-c-dual-list-selector__list-item--m-expanded__item-toggle-icon--Rotate);
186
186
  }
187
187
  .pf-v6-c-dual-list-selector.pf-m-animate-expand .pf-v6-c-dual-list-selector__list-item.pf-m-expanded > .pf-v6-c-dual-list-selector__list {
188
- max-height: 9999px;
188
+ max-height: 99999px;
189
189
  visibility: revert;
190
190
  opacity: var(--pf-v6-c-dual-list-selector--m-expanded__list--Opacity);
191
191
  transition-delay: 0s;
@@ -238,7 +238,7 @@ $pf-v6-c-dual-list-selector__item--MaxNesting: 10;
238
238
 
239
239
  > .#{$dual-list-selector}__list {
240
240
  .#{$dual-list-selector}.pf-m-animate-expand & {
241
- max-height: 9999px;
241
+ max-height: 99999px;
242
242
  visibility: revert;
243
243
  opacity: var(--#{$dual-list-selector}--m-expanded__list--Opacity);
244
244
  transition-delay: 0s;
@@ -62,7 +62,7 @@
62
62
  --pf-v6-c-expandable-section__content--Opacity: var(--pf-v6-c-expandable-section--m-expanded__content--Opacity);
63
63
  --pf-v6-c-expandable-section__content--TranslateY: var(--pf-v6-c-expandable-section--m-expanded__content--TranslateY);
64
64
  --pf-v6-c-expandable-section__content--Visibility: auto;
65
- --pf-v6-c-expandable-section__content--MaxHeight: 9999px;
65
+ --pf-v6-c-expandable-section__content--MaxHeight: 99999px;
66
66
  --pf-v6-c-expandable-section__content--TransitionDelay--hide: 0s;
67
67
  gap: var(--pf-v6-c-expandable-section--Gap);
68
68
  }
@@ -75,7 +75,7 @@
75
75
  --#{$expandable-section}__content--Opacity: var(--#{$expandable-section}--m-expanded__content--Opacity);
76
76
  --#{$expandable-section}__content--TranslateY: var(--#{$expandable-section}--m-expanded__content--TranslateY);
77
77
  --#{$expandable-section}__content--Visibility: auto;
78
- --#{$expandable-section}__content--MaxHeight: 9999px;
78
+ --#{$expandable-section}__content--MaxHeight: 99999px;
79
79
  --#{$expandable-section}__content--TransitionDelay--hide: 0s;
80
80
 
81
81
  gap: var(--pf-v6-c-expandable-section--Gap);
@@ -448,7 +448,7 @@
448
448
  --pf-v6-c-form__field-group-toggle-icon--Rotate: var(--pf-v6-c-form__field-group--m-expanded__toggle-icon--Rotate);
449
449
  }
450
450
  .pf-v6-c-form__field-group.pf-m-expanded.pf-m-expandable > .pf-v6-c-form__field-group-body {
451
- max-height: 9999px;
451
+ max-height: 99999px;
452
452
  padding-block-start: var(--pf-v6-c-form__field-group-body--PaddingBlockStart);
453
453
  padding-block-end: var(--pf-v6-c-form__field-group-body--PaddingBlockEnd);
454
454
  visibility: visible;
@@ -405,7 +405,7 @@ $pf-v6-c-form--m-horizontal--breakpoint-map: build-breakpoint-map("sm", "md", "l
405
405
  }
406
406
 
407
407
  &.pf-m-expandable > .#{$form}__field-group-body { // TODO - remove .pf-m-expandable in a breaking change, it shouldn't be needed. Only needed now so that these styles are an opt-in behind .pf-m-expandable
408
- max-height: 9999px;
408
+ max-height: 99999px;
409
409
  padding-block-start: var(--#{$form}__field-group-body--PaddingBlockStart);
410
410
  padding-block-end: var(--#{$form}__field-group-body--PaddingBlockEnd);
411
411
  visibility: visible;
@@ -226,6 +226,22 @@
226
226
  --pf-v6-c-form-control__icon--m-status--Color: var(--pf-v6-c-form-control--m-error__icon--m-status--Color);
227
227
  --pf-v6-c-form-control--after--BorderWidth: var(--pf-v6-c-form-control--m-error--after--BorderWidth);
228
228
  }
229
+ @media (prefers-reduced-motion: no-preference) {
230
+ .pf-v6-c-form-control.pf-m-error {
231
+ translate: var(--pf-v6-global--danger-jiggle--TranslateX, 0);
232
+ animation-name: pf-v6-global-danger-jiggle-motion;
233
+ animation-duration: var(--pf-v6-global--danger-jiggle--AnimationDuration--Transform);
234
+ animation-timing-function: var(--pf-v6-global--danger-jiggle--AnimationTimingFunction--Transform);
235
+ animation-fill-mode: both;
236
+ }
237
+ }
238
+ .pf-v6-c-form-control.pf-m-error .pf-v6-c-form-control__icon.pf-m-status {
239
+ --pf-v6-c-form-control--TransitionDuration--Opacity: var(--pf-t--global--motion--duration--fade--default);
240
+ --pf-v6-c-form-control--TransitionTimingFunction--Opacity: var(--pf-t--global--motion--timing-function--default);
241
+ animation-name: pf-v6-global-fade-in;
242
+ animation-duration: var(--pf-v6-c-form-control--TransitionDuration--Opacity);
243
+ animation-timing-function: var(--pf-v6-c-form-control--TransitionTimingFunction--Opacity);
244
+ }
229
245
  .pf-v6-c-form-control.pf-m-error > textarea {
230
246
  padding-inline-end: var(--pf-v6-c-form-control--m-error--PaddingInlineEnd, var(--pf-v6-c-form-control__textarea--m-error--PaddingInlineEnd));
231
247
  }
@@ -290,6 +290,14 @@
290
290
  --#{$form-control}__icon--m-status--Color: var(--#{$form-control}--m-error__icon--m-status--Color);
291
291
  --#{$form-control}--after--BorderWidth: var(--#{$form-control}--m-error--after--BorderWidth);
292
292
 
293
+ @media (prefers-reduced-motion: no-preference) {
294
+ @include pf-v6-animate-danger-jiggle;
295
+ }
296
+
297
+ .#{$form-control}__icon.pf-m-status {
298
+ @include pf-v6-fade-default(#{$form-control});
299
+ }
300
+
293
301
  > textarea {
294
302
  padding-inline-end: var(--#{$form-control}--m-error--PaddingInlineEnd, var(--#{$form-control}__textarea--m-error--PaddingInlineEnd));
295
303
  }
@@ -438,6 +446,7 @@
438
446
 
439
447
  &.pf-m-status {
440
448
  --#{$form-control}__icon--Color: var(--#{$form-control}__icon--m-status--Color);
449
+
441
450
  }
442
451
  }
443
452
 
@@ -164,7 +164,7 @@
164
164
 
165
165
  .pf-v6-c-nav__subnav {
166
166
  --pf-v6-c-nav__list--RowGap: var(--pf-v6-c-nav__subnav--RowGap);
167
- max-height: 9999px;
167
+ max-height: 99999px;
168
168
  padding-block-start: var(--pf-v6-c-nav__subnav--PaddingBlockStart);
169
169
  padding-block-end: var(--pf-v6-c-nav__subnav--PaddingBlockEnd);
170
170
  padding-inline-start: var(--pf-v6-c-nav__subnav--PaddingInlineStart);
@@ -209,7 +209,7 @@
209
209
  .#{$nav}__subnav {
210
210
  --#{$nav}__list--RowGap: var(--#{$nav}__subnav--RowGap); // this value is passed to --#{$nav}__item--RowGap--row-offset and updates clickable area based on value passed
211
211
 
212
- max-height: 9999px;
212
+ max-height: 99999px;
213
213
  padding-block-start: var(--#{$nav}__subnav--PaddingBlockStart);
214
214
  padding-block-end: var(--#{$nav}__subnav--PaddingBlockEnd);
215
215
  padding-inline-start: var(--#{$nav}__subnav--PaddingInlineStart); // indent nested lists
@@ -106,6 +106,22 @@
106
106
  --pf-v6-c-progress__status-icon--Color: var(--pf-v6-c-progress--m-danger__status-icon--Color);
107
107
  --pf-v6-c-progress--m-inside__measure--Color: var(--pf-v6-c-progress--m-danger--m-inside__measure--Color);
108
108
  }
109
+ @media (prefers-reduced-motion: no-preference) {
110
+ .pf-v6-c-progress.pf-m-danger .pf-v6-c-progress__bar {
111
+ translate: var(--pf-v6-global--danger-jiggle--TranslateX, 0);
112
+ animation-name: pf-v6-global-danger-jiggle-motion;
113
+ animation-duration: var(--pf-v6-global--danger-jiggle--AnimationDuration--Transform);
114
+ animation-timing-function: var(--pf-v6-global--danger-jiggle--AnimationTimingFunction--Transform);
115
+ animation-fill-mode: both;
116
+ }
117
+ }
118
+ .pf-v6-c-progress.pf-m-danger .pf-v6-c-progress__status-icon {
119
+ --pf-v6-c-progress--TransitionDuration--Opacity: var(--pf-t--global--motion--duration--fade--default);
120
+ --pf-v6-c-progress--TransitionTimingFunction--Opacity: var(--pf-t--global--motion--timing-function--default);
121
+ animation-name: pf-v6-global-fade-in;
122
+ animation-duration: var(--pf-v6-c-progress--TransitionDuration--Opacity);
123
+ animation-timing-function: var(--pf-v6-c-progress--TransitionTimingFunction--Opacity);
124
+ }
109
125
 
110
126
  .pf-v6-c-progress__description {
111
127
  grid-column: 1/2;
@@ -140,6 +140,16 @@
140
140
  --#{$progress}__indicator--BackgroundColor: var(--#{$progress}--m-danger__indicator--BackgroundColor);
141
141
  --#{$progress}__status-icon--Color: var(--#{$progress}--m-danger__status-icon--Color);
142
142
  --#{$progress}--m-inside__measure--Color: var(--#{$progress}--m-danger--m-inside__measure--Color);
143
+
144
+ .#{$progress}__bar {
145
+ @media (prefers-reduced-motion: no-preference) {
146
+ @include pf-v6-animate-danger-jiggle;
147
+ }
148
+ }
149
+
150
+ .#{$progress}__status-icon {
151
+ @include pf-v6-fade-default(#{$progress});
152
+ }
143
153
  }
144
154
  }
145
155
 
@@ -209,4 +219,4 @@
209
219
 
210
220
  .#{$progress}__measure {
211
221
  font-variant-numeric: tabular-nums;
212
- }
222
+ }
@@ -78,8 +78,6 @@
78
78
  --pf-v6-c-table__expandable-row--TransitionDuration--expand--fade: var(--pf-t--global--motion--duration--fade--default);
79
79
  --pf-v6-c-table__expandable-row--TransitionDuration--collapse--slide: 0s;
80
80
  --pf-v6-c-table__expandable-row--TransitionDuration--collapse--fade: var(--pf-t--global--motion--duration--fade--short);
81
- --pf-v6-c-table__expandable-row--TransitionDuration--slide: var(--pf-v6-c-table__expandable-row--TransitionDuration--collapse--slide);
82
- --pf-v6-c-table__expandable-row--TransitionDuration--fade: var(--pf-v6-c-table__expandable-row--TransitionDuration--collapse--fade);
83
81
  --pf-v6-c-table__expandable-row--TransitionTimingFunction: var(--pf-t--global--motion--timing-function--default);
84
82
  --pf-v6-c-table__expandable-row--Opacity: 0;
85
83
  --pf-v6-c-table__tbody--m-expanded__expandable-row--Opacity: 1;
@@ -416,6 +414,39 @@
416
414
  .pf-v6-c-table .pf-v6-c-button .pf-v6-c-table__sort-indicator {
417
415
  --pf-v6-c-table__sort-indicator--MarginInlineStart: 0;
418
416
  }
417
+ .pf-v6-c-table.pf-m-animate-expand > .pf-v6-c-table__tbody > .pf-v6-c-table__expandable-row {
418
+ display: revert;
419
+ visibility: hidden;
420
+ opacity: var(--pf-v6-c-table__expandable-row--Opacity);
421
+ transition-delay: 0s, 0s, var(--pf-v6-c-table__expandable-row--TransitionDuration--collapse--fade);
422
+ transition-timing-function: var(--pf-v6-c-table__expandable-row--TransitionTimingFunction);
423
+ transition-duration: var(--pf-v6-c-table__expandable-row--TransitionDuration--collapse--fade), var(--pf-v6-c-table__expandable-row--TransitionDuration--collapse--slide), 0s;
424
+ transition-property: opacity, translate, visibility;
425
+ translate: 0 var(--pf-v6-c-table__expandable-row--TranslateY);
426
+ }
427
+ .pf-v6-c-table.pf-m-animate-expand > .pf-v6-c-table__tbody > .pf-v6-c-table__expandable-row[hidden] {
428
+ display: revert;
429
+ }
430
+ .pf-v6-c-table.pf-m-animate-expand > .pf-v6-c-table__tbody > .pf-v6-c-table__expandable-row.pf-m-expanded {
431
+ visibility: visible;
432
+ opacity: var(--pf-v6-c-table__tbody--m-expanded__expandable-row--Opacity);
433
+ transition-delay: 0s;
434
+ transition-duration: var(--pf-v6-c-table__expandable-row--TransitionDuration--expand--fade), var(--pf-v6-c-table__expandable-row--TransitionDuration--expand--slide), 0s, 0s;
435
+ translate: 0 var(--pf-v6-c-table__tbody--m-expanded__expandable-row--TranslateY);
436
+ }
437
+ .pf-v6-c-table.pf-m-animate-expand > .pf-v6-c-table__tbody > .pf-v6-c-table__expandable-row.pf-m-expanded > :is(.pf-v6-c-table__td, .pf-v6-c-table__th) > .pf-v6-c-table__expandable-row-content {
438
+ max-height: 99999px;
439
+ }
440
+ .pf-v6-c-table.pf-m-animate-expand > .pf-v6-c-table__tbody > .pf-v6-c-table__expandable-row:not(.pf-m-expanded) > :is(.pf-v6-c-table__td, .pf-v6-c-table__th),
441
+ .pf-v6-c-table.pf-m-animate-expand > .pf-v6-c-table__tbody > .pf-v6-c-table__expandable-row:not(.pf-m-expanded) > :is(.pf-v6-c-table__td, .pf-v6-c-table__th) > .pf-v6-c-table__expandable-row-content {
442
+ padding: 0;
443
+ overflow: hidden;
444
+ transition-delay: var(--pf-v6-c-table__expandable-row--TransitionDuration--collapse--fade);
445
+ transition-property: padding, max-height, overflow;
446
+ }
447
+ .pf-v6-c-table.pf-m-animate-expand > .pf-v6-c-table__tbody > .pf-v6-c-table__expandable-row:not(.pf-m-expanded) > :is(.pf-v6-c-table__td, .pf-v6-c-table__th) > .pf-v6-c-table__expandable-row-content {
448
+ max-height: 0;
449
+ }
419
450
 
420
451
  [class*=pf-v6-c-table].pf-m-truncate {
421
452
  --pf-v6-c-table--cell--MinWidth: var(--pf-v6-c-table--m-truncate--cell--MinWidth);
@@ -720,28 +751,26 @@ thead .pf-v6-c-table__check .pf-v6-c-radio.pf-m-standalone {
720
751
  .pf-v6-c-table__expandable-row {
721
752
  position: relative;
722
753
  border-block-end: 0 solid transparent;
723
- opacity: var(--pf-v6-c-table__expandable-row--Opacity);
724
- transition-timing-function: var(--pf-v6-c-table__expandable-row--TransitionTimingFunction);
725
- transition-duration: var(--pf-v6-c-table__expandable-row--TransitionDuration--fade), var(--pf-v6-c-table__expandable-row--TransitionDuration--slide), var(--pf-v6-c-table__expandable-row--TransitionDuration--fade);
726
- transition-property: opacity, translate, display;
727
- transition-behavior: allow-discrete;
728
- translate: 0 var(--pf-v6-c-table__expandable-row--TranslateY);
729
754
  }
730
- :not(.pf-v6-c-table__control-row) ~ .pf-v6-c-table__expandable-row > .pf-v6-c-table__th,
731
- :not(.pf-v6-c-table__control-row) ~ .pf-v6-c-table__expandable-row > .pf-v6-c-table__td {
755
+ .pf-v6-c-table__expandable-row > .pf-v6-c-table__th,
756
+ .pf-v6-c-table__expandable-row > .pf-v6-c-table__td {
732
757
  padding-block-start: 0;
733
758
  }
734
-
735
- .pf-v6-c-table__expandable-row td:where(.pf-v6-c-table__td).pf-m-no-padding,
736
- .pf-v6-c-table__expandable-row th:where(.pf-v6-c-table__th).pf-m-no-padding {
759
+ .pf-v6-c-table__control-row ~ .pf-v6-c-table__expandable-row > .pf-v6-c-table__th,
760
+ .pf-v6-c-table__control-row ~ .pf-v6-c-table__expandable-row > .pf-v6-c-table__td {
761
+ padding-block-start: var(--pf-v6-c-table--cell--PaddingBlockStart);
762
+ }
763
+ .pf-v6-c-table__expandable-row .pf-v6-c-table__td.pf-m-no-padding,
764
+ .pf-v6-c-table__expandable-row .pf-v6-c-table__th.pf-m-no-padding {
737
765
  padding-block-start: 0;
738
766
  padding-block-end: 0;
739
767
  padding-inline-start: 0;
740
768
  padding-inline-end: 0;
741
769
  }
742
- .pf-v6-c-table__expandable-row td:where(.pf-v6-c-table__td).pf-m-no-padding .pf-v6-c-table__expandable-row-content,
743
- .pf-v6-c-table__expandable-row th:where(.pf-v6-c-table__th).pf-m-no-padding .pf-v6-c-table__expandable-row-content {
770
+ .pf-v6-c-table__expandable-row .pf-v6-c-table__td.pf-m-no-padding .pf-v6-c-table__expandable-row-content,
771
+ .pf-v6-c-table__expandable-row .pf-v6-c-table__th.pf-m-no-padding .pf-v6-c-table__expandable-row-content {
744
772
  padding: 0;
773
+ border-radius: 0;
745
774
  }
746
775
  .pf-v6-c-table__expandable-row .pf-v6-c-table__expandable-row-content {
747
776
  padding-block-start: var(--pf-v6-c-table__expandable-row-content--PaddingBlockStart);
@@ -751,18 +780,12 @@ thead .pf-v6-c-table__check .pf-v6-c-radio.pf-m-standalone {
751
780
  background-color: var(--pf-v6-c-table__expandable-row-content--BackgroundColor);
752
781
  border-radius: var(--pf-v6-c-table__expandable-row-content--BorderRadius);
753
782
  }
783
+ .pf-v6-c-table__expandable-row .pf-v6-c-table__expandable-row-content.pf-m-no-background {
784
+ background-color: transparent;
785
+ }
754
786
  .pf-v6-c-table__expandable-row.pf-m-expanded {
755
787
  border-block-end-color: var(--pf-v6-c-table__expandable-row--m-expanded--BorderBlockEndColor);
756
788
  border-block-end-width: var(--pf-v6-c-table--border-width--base);
757
- opacity: var(--pf-v6-c-table__tbody--m-expanded__expandable-row--Opacity);
758
- transition-duration: var(--pf-v6-c-table__expandable-row--TransitionDuration--expand--fade), var(--pf-v6-c-table__expandable-row--TransitionDuration--expand--slide), var(--pf-v6-c-table__expandable-row--TransitionDuration--expand--fade);
759
- translate: 0 var(--pf-v6-c-table__tbody--m-expanded__expandable-row--TranslateY);
760
- }
761
- @starting-style {
762
- .pf-v6-c-table__expandable-row.pf-m-expanded {
763
- opacity: var(--pf-v6-c-table__expandable-row--Opacity);
764
- translate: 0 var(--pf-v6-c-table__expandable-row--TranslateY);
765
- }
766
789
  }
767
790
  .pf-v6-c-table__expandable-row:not(.pf-m-expanded) {
768
791
  display: none;
@@ -771,6 +794,10 @@ thead .pf-v6-c-table__check .pf-v6-c-radio.pf-m-standalone {
771
794
  border-block-end: 0;
772
795
  }
773
796
 
797
+ .pf-v6-c-table__tr:has(~ .pf-v6-c-table__expandable-row) {
798
+ border-block-end: 0;
799
+ }
800
+
774
801
  .pf-v6-c-table.pf-m-compact {
775
802
  --pf-v6-c-table--cell--PaddingBlockStart: var(--pf-v6-c-table--m-compact--cell--PaddingBlockStart);
776
803
  --pf-v6-c-table--cell--PaddingBlockEnd: var(--pf-v6-c-table--m-compact--cell--PaddingBlockEnd);
@@ -826,7 +853,7 @@ thead .pf-v6-c-table__check .pf-v6-c-radio.pf-m-standalone {
826
853
  }
827
854
  .pf-v6-c-table.pf-m-expandable .pf-v6-c-table__tbody.pf-m-expanded .pf-v6-c-table__control-row {
828
855
  background-color: var(--pf-v6-c-table__control-row--BackgroundColor);
829
- border-block-end: var(--pf-v6-c-table__control-row--BorderBlockEndWidth) solid var(--pf-v6-c-table__control-row__tbody--BorderBlockEndColor);
856
+ border-block-end: 0;
830
857
  }
831
858
 
832
859
  .pf-v6-c-table__tr {
@@ -123,8 +123,6 @@
123
123
  --#{$table}__expandable-row--TransitionDuration--expand--fade: var(--pf-t--global--motion--duration--fade--default);
124
124
  --#{$table}__expandable-row--TransitionDuration--collapse--slide: 0s;
125
125
  --#{$table}__expandable-row--TransitionDuration--collapse--fade: var(--pf-t--global--motion--duration--fade--short);
126
- --#{$table}__expandable-row--TransitionDuration--slide: var(--#{$table}__expandable-row--TransitionDuration--collapse--slide);
127
- --#{$table}__expandable-row--TransitionDuration--fade: var(--#{$table}__expandable-row--TransitionDuration--collapse--fade);
128
126
  --#{$table}__expandable-row--TransitionTimingFunction: var(--pf-t--global--motion--timing-function--default);
129
127
  --#{$table}__expandable-row--Opacity: 0;
130
128
  --#{$table}__tbody--m-expanded__expandable-row--Opacity: 1;
@@ -581,6 +579,57 @@
581
579
  .#{$button} .#{$table}__sort-indicator {
582
580
  --#{$table}__sort-indicator--MarginInlineStart: 0;
583
581
  }
582
+
583
+ // stylelint-disable max-nesting-depth, selector-max-class
584
+ &.pf-m-animate-expand {
585
+ > .#{$table}__tbody {
586
+ > .#{$table}__expandable-row {
587
+ display: revert;
588
+ visibility: hidden;
589
+ opacity: var(--#{$table}__expandable-row--Opacity);
590
+ transition-delay: 0s, 0s, var(--#{$table}__expandable-row--TransitionDuration--collapse--fade);
591
+ transition-timing-function: var(--#{$table}__expandable-row--TransitionTimingFunction);
592
+ transition-duration: var(--#{$table}__expandable-row--TransitionDuration--collapse--fade), var(--#{$table}__expandable-row--TransitionDuration--collapse--slide), 0s;
593
+ transition-property: opacity, translate, visibility;
594
+ translate: 0 var(--#{$table}__expandable-row--TranslateY);
595
+
596
+ &[hidden] {
597
+ display: revert;
598
+ }
599
+
600
+ &.pf-m-expanded {
601
+ visibility: visible;
602
+ opacity: var(--#{$table}__tbody--m-expanded__expandable-row--Opacity);
603
+ transition-delay: 0s;
604
+ transition-duration: var(--#{$table}__expandable-row--TransitionDuration--expand--fade), var(--#{$table}__expandable-row--TransitionDuration--expand--slide), 0s, 0s;
605
+ translate: 0 var(--#{$table}__tbody--m-expanded__expandable-row--TranslateY);
606
+
607
+ > :is(.#{$table}__td, .#{$table}__th) {
608
+ > .#{$table}__expandable-row-content {
609
+ max-height: 99999px;
610
+ }
611
+ }
612
+ }
613
+
614
+ &:not(.pf-m-expanded) {
615
+ > :is(.#{$table}__td, .#{$table}__th) {
616
+ &,
617
+ > .#{$table}__expandable-row-content {
618
+ padding: 0;
619
+ overflow: hidden;
620
+ transition-delay: var(--#{$table}__expandable-row--TransitionDuration--collapse--fade);
621
+ transition-property: padding, max-height, overflow;
622
+ }
623
+
624
+ > .#{$table}__expandable-row-content {
625
+ max-height: 0;
626
+ }
627
+ }
628
+ }
629
+ }
630
+ }
631
+ }
632
+ // stylelint-enable max-nesting-depth, selector-max-class
584
633
  }
585
634
 
586
635
  // - Table truncate - Table wrap - Table nowrap - Table fit content - Table wrap - Table break word
@@ -972,22 +1021,23 @@
972
1021
  .#{$table}__expandable-row {
973
1022
  position: relative;
974
1023
  border-block-end: 0 solid transparent;
975
- opacity: var(--#{$table}__expandable-row--Opacity);
976
- transition-timing-function: var(--#{$table}__expandable-row--TransitionTimingFunction);
977
- transition-duration: var(--#{$table}__expandable-row--TransitionDuration--fade), var(--#{$table}__expandable-row--TransitionDuration--slide), var(--#{$table}__expandable-row--TransitionDuration--fade);
978
- transition-property: opacity, translate, display;
979
- transition-behavior: allow-discrete;
980
- translate: 0 var(--#{$table}__expandable-row--TranslateY);
981
-
982
- @at-root :not(.#{$table}__control-row) ~ .#{$table}__expandable-row {
1024
+
1025
+ // Remove top padding from regular expandable
1026
+ > .#{$table}__th,
1027
+ > .#{$table}__td {
1028
+ padding-block-start: 0;
1029
+ }
1030
+
1031
+ // Add padding back to compound expandable
1032
+ .#{$table}__control-row ~ & {
983
1033
  > .#{$table}__th,
984
1034
  > .#{$table}__td {
985
- padding-block-start: 0;
1035
+ padding-block-start: var(--#{$table}--cell--PaddingBlockStart);
986
1036
  }
987
1037
  }
988
1038
 
989
- td:where(.#{$table}__td),
990
- th:where(.#{$table}__th) {
1039
+ .#{$table}__td,
1040
+ .#{$table}__th {
991
1041
  &.pf-m-no-padding {
992
1042
  padding-block-start: 0;
993
1043
  padding-block-end: 0;
@@ -996,6 +1046,7 @@
996
1046
 
997
1047
  .#{$table}__expandable-row-content {
998
1048
  padding: 0;
1049
+ border-radius: 0;
999
1050
  }
1000
1051
  }
1001
1052
  }
@@ -1008,20 +1059,16 @@
1008
1059
  padding-inline-end: var(--#{$table}__expandable-row-content--PaddingInlineEnd);
1009
1060
  background-color: var(--#{$table}__expandable-row-content--BackgroundColor);
1010
1061
  border-radius: var(--#{$table}__expandable-row-content--BorderRadius);
1062
+
1063
+ &.pf-m-no-background {
1064
+ background-color: transparent;
1065
+ }
1011
1066
  }
1012
1067
 
1013
1068
  // - Table expandable row content expanded
1014
1069
  &.pf-m-expanded {
1015
1070
  border-block-end-color: var(--#{$table}__expandable-row--m-expanded--BorderBlockEndColor);
1016
1071
  border-block-end-width: var(--#{$table}--border-width--base);
1017
- opacity: var(--#{$table}__tbody--m-expanded__expandable-row--Opacity);
1018
- transition-duration: var(--#{$table}__expandable-row--TransitionDuration--expand--fade), var(--#{$table}__expandable-row--TransitionDuration--expand--slide), var(--#{$table}__expandable-row--TransitionDuration--expand--fade);
1019
- translate: 0 var(--#{$table}__tbody--m-expanded__expandable-row--TranslateY);
1020
-
1021
- @starting-style {
1022
- opacity: var(--#{$table}__expandable-row--Opacity);
1023
- translate: 0 var(--#{$table}__expandable-row--TranslateY);
1024
- }
1025
1072
  }
1026
1073
 
1027
1074
  &:not(.pf-m-expanded) {
@@ -1034,6 +1081,10 @@
1034
1081
  }
1035
1082
  }
1036
1083
 
1084
+ .#{$table}__tr:has(~ .#{$table}__expandable-row) {
1085
+ border-block-end: 0;
1086
+ }
1087
+
1037
1088
  // - Table compact
1038
1089
  .#{$table}.pf-m-compact {
1039
1090
  --#{$table}--cell--PaddingBlockStart: var(--#{$table}--m-compact--cell--PaddingBlockStart);
@@ -1118,7 +1169,7 @@
1118
1169
  // - Table tbody table control row
1119
1170
  .#{$table}__control-row {
1120
1171
  background-color: var(--#{$table}__control-row--BackgroundColor);
1121
- border-block-end: var(--#{$table}__control-row--BorderBlockEndWidth) solid var(--#{$table}__control-row__tbody--BorderBlockEndColor);
1172
+ border-block-end: 0;
1122
1173
  }
1123
1174
  }
1124
1175
  }
@@ -103,6 +103,22 @@
103
103
  --pf-v6-c-text-input-group--m-hover--BorderColor: var(--pf-v6-c-text-input-group--m-hover--m-error--BorderColor);
104
104
  --pf-v6-c-text-input-group__icon--m-status--Color: var(--pf-v6-c-text-input-group__main--m-error__icon--m-status--Color);
105
105
  }
106
+ @media (prefers-reduced-motion: no-preference) {
107
+ .pf-v6-c-text-input-group.pf-m-error {
108
+ translate: var(--pf-v6-global--danger-jiggle--TranslateX, 0);
109
+ animation-name: pf-v6-global-danger-jiggle-motion;
110
+ animation-duration: var(--pf-v6-global--danger-jiggle--AnimationDuration--Transform);
111
+ animation-timing-function: var(--pf-v6-global--danger-jiggle--AnimationTimingFunction--Transform);
112
+ animation-fill-mode: both;
113
+ }
114
+ }
115
+ .pf-v6-c-text-input-group.pf-m-error .pf-v6-c-text-input-group__icon.pf-m-status {
116
+ --pf-v6-c-text-input-group--TransitionDuration--Opacity: var(--pf-t--global--motion--duration--fade--default);
117
+ --pf-v6-c-text-input-group--TransitionTimingFunction--Opacity: var(--pf-t--global--motion--timing-function--default);
118
+ animation-name: pf-v6-global-fade-in;
119
+ animation-duration: var(--pf-v6-c-text-input-group--TransitionDuration--Opacity);
120
+ animation-timing-function: var(--pf-v6-c-text-input-group--TransitionTimingFunction--Opacity);
121
+ }
106
122
  .pf-v6-c-text-input-group:hover {
107
123
  --pf-v6-c-text-input-group--BorderColor: var(--pf-v6-c-text-input-group--m-hover--BorderColor);
108
124
  }
@@ -128,6 +128,14 @@
128
128
  --#{$text-input-group}--BorderColor: var(--#{$text-input-group}--m-error--BorderColor);
129
129
  --#{$text-input-group}--m-hover--BorderColor: var(--#{$text-input-group}--m-hover--m-error--BorderColor);
130
130
  --#{$text-input-group}__icon--m-status--Color: var(--#{$text-input-group}__main--m-error__icon--m-status--Color);
131
+
132
+ @media (prefers-reduced-motion: no-preference) {
133
+ @include pf-v6-animate-danger-jiggle;
134
+ }
135
+
136
+ .#{$text-input-group}__icon.pf-m-status {
137
+ @include pf-v6-fade-default(#{$text-input-group});
138
+ }
131
139
  }
132
140
 
133
141
  &:hover {
@@ -265,7 +265,7 @@
265
265
  --pf-v6-c-tree-view__node-toggle-icon--Rotate: var(--pf-v6-c-tree-view__list-item--m-expanded__node-toggle-icon--Rotate);
266
266
  }
267
267
  .pf-v6-c-tree-view__list-item.pf-m-expanded > .pf-v6-c-tree-view__list {
268
- max-height: 9999px;
268
+ max-height: 99999px;
269
269
  visibility: revert;
270
270
  opacity: var(--pf-v6-c-tree-view--m-expanded__list--Opacity);
271
271
  transition-delay: 0s;
@@ -377,7 +377,7 @@ $pf-v6-c-tree-view--MaxNesting: 10 !default;
377
377
  --#{$tree-view}__node-toggle-icon--Rotate: var(--#{$tree-view}__list-item--m-expanded__node-toggle-icon--Rotate);
378
378
 
379
379
  > .#{$tree-view}__list {
380
- max-height: 9999px;
380
+ max-height: 99999px;
381
381
  visibility: revert;
382
382
  opacity: var(--#{$tree-view}--m-expanded__list--Opacity);
383
383
  transition-delay: 0s;