@patternfly/patternfly 6.3.0-prerelease.9 → 6.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/assets/images/icon-outlined-star.hbs +3 -0
  2. package/assets/images/icon-star.hbs +3 -0
  3. package/base/patternfly-common.css +46 -11
  4. package/base/patternfly-common.scss +58 -13
  5. package/components/Accordion/accordion.css +72 -3
  6. package/components/Accordion/accordion.scss +78 -6
  7. package/components/Alert/alert-group.css +52 -31
  8. package/components/Alert/alert-group.scss +77 -46
  9. package/components/Button/button.css +154 -6
  10. package/components/Button/button.scss +160 -8
  11. package/components/DataList/data-list.css +2 -2
  12. package/components/DataList/data-list.scss +2 -2
  13. package/components/DualListSelector/dual-list-selector.css +36 -0
  14. package/components/DualListSelector/dual-list-selector.scss +43 -0
  15. package/components/ExpandableSection/expandable-section.css +63 -1
  16. package/components/ExpandableSection/expandable-section.scss +76 -2
  17. package/components/FileUpload/file-upload.css +3 -3
  18. package/components/FileUpload/file-upload.scss +3 -3
  19. package/components/Form/form.css +40 -1
  20. package/components/Form/form.scss +47 -1
  21. package/components/FormControl/form-control.css +16 -0
  22. package/components/FormControl/form-control.scss +9 -0
  23. package/components/InputGroup/input-group.css +80 -0
  24. package/components/InputGroup/input-group.scss +95 -0
  25. package/components/Menu/menu.css +24 -4
  26. package/components/Menu/menu.scss +20 -5
  27. package/components/MenuToggle/menu-toggle.css +30 -0
  28. package/components/MenuToggle/menu-toggle.scss +33 -0
  29. package/components/Nav/nav.css +22 -8
  30. package/components/Nav/nav.scss +22 -9
  31. package/components/Page/page.css +62 -3
  32. package/components/Page/page.scss +44 -3
  33. package/components/Progress/progress.css +16 -0
  34. package/components/Progress/progress.scss +11 -1
  35. package/components/ProgressStepper/progress-stepper.scss +1 -0
  36. package/components/Spinner/spinner.css +5 -0
  37. package/components/Spinner/spinner.scss +6 -0
  38. package/components/Table/table-grid.css +51 -5
  39. package/components/Table/table-grid.scss +22 -1
  40. package/components/Table/table.css +83 -1
  41. package/components/Table/table.scss +123 -1
  42. package/components/Tabs/tabs.css +25 -15
  43. package/components/Tabs/tabs.scss +26 -13
  44. package/components/TextInputGroup/text-input-group.css +16 -0
  45. package/components/TextInputGroup/text-input-group.scss +8 -0
  46. package/components/Timestamp/timestamp.css +4 -0
  47. package/components/Timestamp/timestamp.scss +7 -0
  48. package/components/TreeView/tree-view.css +39 -0
  49. package/components/TreeView/tree-view.scss +42 -2
  50. package/components/Truncate/truncate.css +1 -0
  51. package/components/Truncate/truncate.scss +3 -0
  52. package/components/_index.css +896 -83
  53. package/docs/components/Breadcrumb/examples/Breadcrumb.md +1 -1
  54. package/docs/components/Button/examples/Button.md +148 -5
  55. package/docs/components/Card/examples/Card.md +8 -8
  56. package/docs/components/CodeBlock/examples/CodeBlock.md +5 -5
  57. package/docs/components/DataList/examples/DataList.md +23 -23
  58. package/docs/components/DualListSelector/examples/DualListSelector.md +534 -16
  59. package/docs/components/ExpandableSection/examples/ExpandableSection.md +17 -12
  60. package/docs/components/Form/examples/Form.md +1047 -126
  61. package/docs/components/Hint/examples/Hint.md +3 -3
  62. package/docs/components/InlineEdit/examples/InlineEdit.md +2 -2
  63. package/docs/components/InputGroup/examples/InputGroup.md +5 -1
  64. package/docs/components/JumpLinks/examples/JumpLinks.md +1 -1
  65. package/docs/components/Masthead/examples/masthead.md +90 -12
  66. package/docs/components/Menu/examples/Menu.md +122 -6
  67. package/docs/components/MenuToggle/examples/MenuToggle.md +90 -51
  68. package/docs/components/MultipleFileUpload/examples/MultipleFileUpload.md +2 -10
  69. package/docs/components/OverflowMenu/examples/overflow-menu.md +5 -5
  70. package/docs/components/Page/examples/Page.md +147 -14
  71. package/docs/components/Pagination/examples/Pagination.md +12 -12
  72. package/docs/components/ProgressStepper/examples/ProgressStepper.md +32 -6
  73. package/docs/components/Slider/examples/Slider.md +2 -2
  74. package/docs/components/Spinner/examples/Spinner.md +10 -0
  75. package/docs/components/Table/examples/Table.md +9428 -6173
  76. package/docs/components/Tabs/examples/Tabs.md +1214 -6729
  77. package/docs/components/TextInputGroup/examples/TextInputGroup.md +45 -5
  78. package/docs/components/Toolbar/examples/Toolbar.md +7 -7
  79. package/docs/demos/AboutModal/examples/AboutModal.md +22 -3
  80. package/docs/demos/Alert/examples/Alert.md +66 -9
  81. package/docs/demos/BackToTop/examples/BackToTop.md +22 -3
  82. package/docs/demos/Banner/examples/Banner.md +47 -6
  83. package/docs/demos/Card/examples/Card.md +5 -62
  84. package/docs/demos/CardView/examples/CardView.md +24 -5
  85. package/docs/demos/Dashboard/examples/Dashboard.md +24 -5
  86. package/docs/demos/DataList/examples/DataList.md +100 -24
  87. package/docs/demos/DescriptionList/examples/DescriptionList.md +66 -47
  88. package/docs/demos/Drawer/examples/Drawer.md +110 -53
  89. package/docs/demos/Form/examples/BasicForms.md +12 -12
  90. package/docs/demos/JumpLinks/examples/JumpLinks.md +132 -18
  91. package/docs/demos/Masthead/examples/Masthead.md +170 -18
  92. package/docs/demos/Modal/examples/Modal.md +132 -18
  93. package/docs/demos/Nav/examples/Nav.md +111 -16
  94. package/docs/demos/NotificationDrawer/examples/NotificationDrawer.md +110 -15
  95. package/docs/demos/Page/examples/Page.md +309 -43
  96. package/docs/demos/PrimaryDetail/examples/PrimaryDetail.md +160 -103
  97. package/docs/demos/Skeleton/examples/Skeleton.md +22 -3
  98. package/docs/demos/Table/examples/Table.md +449 -155
  99. package/docs/demos/Tabs/examples/Tabs.md +137 -593
  100. package/docs/demos/Toolbar/examples/Toolbar.md +72 -34
  101. package/docs/demos/Wizard/examples/Wizard.md +198 -27
  102. package/package.json +5 -5
  103. package/patternfly-base-no-globals.css +45 -11
  104. package/patternfly-base.css +45 -11
  105. package/patternfly-no-globals.css +941 -94
  106. package/patternfly.css +941 -94
  107. package/patternfly.min.css +1 -1
  108. package/patternfly.min.css.map +1 -1
  109. package/sass-utilities/mixins.scss +54 -0
@@ -3,6 +3,7 @@
3
3
  $pf-v6-c-tabs--breakpoint-map: build-breakpoint-map("base", "sm", "md", "lg", "xl", "2xl");
4
4
  $pf-v6-c-tabs--spacer-map: build-spacer-map("none", "sm", "md", "lg", "xl", "2xl");
5
5
 
6
+
6
7
  @property --#{$tabs}--link-accent--length {
7
8
  syntax: "<length>";
8
9
  inherits: true;
@@ -121,25 +122,28 @@ $pf-v6-c-tabs--spacer-map: build-spacer-map("none", "sm", "md", "lg", "xl", "2xl
121
122
 
122
123
  // Link accent
123
124
  --#{$tabs}--link-accent--start: 0; // needed to create react-token
124
- --#{$tabs}--link-accent--length: auto; // needed to create react-token
125
+ --#{$tabs}--link-accent--length: 0; // needed to create react-token
125
126
  --#{$tabs}--link-accent--color: var(--#{$tabs}__item--m-current__link--after--BorderColor);
126
127
  --#{$tabs}--link-accent--border-size: var(--#{$tabs}__item--m-current__link--after--BorderWidth);
128
+ --#{$tabs}--link-accent--TransitionDuration: var(--pf-t--global--motion--duration--md);
129
+ --#{$tabs}--link-accent--TransitionTimingFunction: var(--pf-t--global--motion--timing-function--decelerate);
127
130
  --#{$tabs}--link-accent--InsetBlockStart: auto;
128
131
  --#{$tabs}--link-accent--InsetBlockEnd: 0;
129
- --#{$tabs}--link-accent--InsetInlineStart: initial;
132
+ --#{$tabs}--link-accent--InsetInlineStart: 0;
130
133
  --#{$tabs}--link-accent--Width: initial;
131
134
  --#{$tabs}--link-accent--Height: 0;
132
135
  --#{$tabs}--link-accent--BorderBlockEndWidth: var(--#{$tabs}--link-accent--border-size);
133
136
  --#{$tabs}--link-accent--BorderInlineStartWidth: 0;
134
- --#{$tabs}--m-vertical--link-accent--InsetBlockStart: initial;
137
+ --#{$tabs}--link-accent--TranslateX: var(--#{$tabs}--link-accent--start);
138
+ --#{$tabs}--link-accent--TranslateY: 0;
139
+ --#{$tabs}--link-accent--TransformOrigin: 0 center;
140
+ --#{$tabs}--m-vertical--link-accent--InsetBlockStart: 0;
135
141
  --#{$tabs}--m-vertical--link-accent--InsetBlockEnd: auto;
136
- --#{$tabs}--m-vertical--link-accent--InsetInlineStart: 0;
137
- --#{$tabs}--m-vertical--link-accent--Width: 0;
138
- --#{$tabs}--m-vertical--link-accent--Height: initial;
139
142
  --#{$tabs}--m-vertical--link-accent--BorderBlockEndWidth: 0;
140
143
  --#{$tabs}--m-vertical--link-accent--BorderInlineStartWidth: var(--#{$tabs}--link-accent--border-size);
141
- --#{$tabs}--link-accent--TransitionDuration: var(--pf-t--global--motion--duration--md);
142
- --#{$tabs}--link-accent--TransitionTimingFunction: var(--pf-t--global--motion--timing-function--decelerate);
144
+ --#{$tabs}--m-vertical--link-accent--TranslateX: 0;
145
+ --#{$tabs}--m-vertical--link-accent--TranslateY: var(--#{$tabs}--link-accent--start);
146
+ --#{$tabs}--m-vertical--link-accent--TransformOrigin: center 0;
143
147
 
144
148
  // Scroll buttons
145
149
  --#{$tabs}__scroll-button--PaddingBlockStart: var(--pf-t--global--spacer--sm);
@@ -354,11 +358,13 @@ $pf-v6-c-tabs--spacer-map: build-spacer-map("none", "sm", "md", "lg", "xl", "2xl
354
358
  --#{$tabs}__list--ScrollSnapTypeAxis: var(--#{$tabs}--m-vertical__list--ScrollSnapTypeAxis);
355
359
  --#{$tabs}--link-accent--InsetBlockStart: var(--#{$tabs}--m-vertical--link-accent--InsetBlockStart);
356
360
  --#{$tabs}--link-accent--InsetBlockEnd: var(--#{$tabs}--m-vertical--link-accent--InsetBlockEnd);
357
- --#{$tabs}--link-accent--InsetInlineStart: var(--#{$tabs}--m-vertical--link-accent--InsetInlineStart);
358
361
  --#{$tabs}--link-accent--Width: var(--#{$tabs}--m-vertical--link-accent--Width);
359
362
  --#{$tabs}--link-accent--Height: var(--#{$tabs}--m-vertical--link-accent--Height);
360
363
  --#{$tabs}--link-accent--BorderBlockEndWidth: var(--#{$tabs}--m-vertical--link-accent--BorderBlockEndWidth);
361
364
  --#{$tabs}--link-accent--BorderInlineStartWidth: var(--#{$tabs}--m-vertical--link-accent--BorderInlineStartWidth);
365
+ --#{$tabs}--link-accent--TranslateX: var(--#{$tabs}--m-vertical--link-accent--TranslateX);
366
+ --#{$tabs}--link-accent--TranslateY: var(--#{$tabs}--m-vertical--link-accent--TranslateY);
367
+ --#{$tabs}--link-accent--TransformOrigin: var(--#{$tabs}--m-vertical--link-accent--TransformOrigin);
362
368
 
363
369
  display: inline-flex;
364
370
  flex-direction: column;
@@ -785,7 +791,7 @@ $pf-v6-c-tabs--spacer-map: build-spacer-map("none", "sm", "md", "lg", "xl", "2xl
785
791
  // stylelint-enable
786
792
 
787
793
  @media (prefers-reduced-motion: no-preference) {
788
- .#{$tabs}:not(.pf-m-box) {
794
+ .#{$tabs}.pf-m-animate-current:not(.pf-m-box) {
789
795
  .#{$tabs}__link,
790
796
  .#{$tabs}__item.pf-m-action {
791
797
  &::after {
@@ -795,9 +801,9 @@ $pf-v6-c-tabs--spacer-map: build-spacer-map("none", "sm", "md", "lg", "xl", "2xl
795
801
 
796
802
  .#{$tabs}__list::after {
797
803
  position: absolute;
798
- inset-block-start: var(--#{$tabs}--link-accent--InsetBlockStart, var(--#{$tabs}--link-accent--start));
804
+ inset-block-start: var(--#{$tabs}--link-accent--InsetBlockStart);
799
805
  inset-block-end: var(--#{$tabs}--link-accent--InsetBlockEnd);
800
- inset-inline-start: var(--#{$tabs}--link-accent--InsetInlineStart, var(--#{$tabs}--link-accent--start));
806
+ inset-inline-start: var(--#{$tabs}--link-accent--InsetInlineStart);
801
807
  width: var(--#{$tabs}--link-accent--Width, var(--#{$tabs}--link-accent--length));
802
808
  height: var(--#{$tabs}--link-accent--Height, var(--#{$tabs}--link-accent--length));
803
809
  content: "";
@@ -806,7 +812,14 @@ $pf-v6-c-tabs--spacer-map: build-spacer-map("none", "sm", "md", "lg", "xl", "2xl
806
812
  border-inline-start-width: var(--#{$tabs}--link-accent--BorderInlineStartWidth);
807
813
  transition-timing-function: var(--#{$tabs}--link-accent--TransitionTimingFunction);
808
814
  transition-duration: var(--#{$tabs}--link-accent--TransitionDuration);
809
- transition-property: --#{$tabs}--link-accent--length, --#{$tabs}--link-accent--start, width;
815
+ transition-property: width, height, translate;
816
+ transform-origin: var(--#{$tabs}--link-accent--TransformOrigin);
817
+
818
+ @include pf-v6-bidirectional-style(
819
+ $prop: translate,
820
+ $ltr-val: var(--#{$tabs}--link-accent--TranslateX) var(--#{$tabs}--link-accent--TranslateY),
821
+ $rtl-val: #{pf-v6-calc-inverse(var(--#{$tabs}--link-accent--TranslateX))} var(--#{$tabs}--link-accent--TranslateY)
822
+ );
810
823
  }
811
824
  }
812
825
 
@@ -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 {
@@ -28,4 +28,8 @@
28
28
  --pf-v6-c-timestamp--Color: var(--pf-v6-c-timestamp--m-help-text--hover--Color);
29
29
  --pf-v6-c-timestamp--m-help-text--TextDecorationLine: var(--pf-v6-c-timestamp--m-help-text--hover--TextDecorationLine);
30
30
  --pf-v6-c-timestamp--m-help-text--TextDecorationStyle: var(--pf-v6-c-timestamp--m-help-text--hover--TextDecorationStyle);
31
+ }
32
+
33
+ .pf-v6-c-timestamp__text {
34
+ text-decoration: inherit;
31
35
  }
@@ -36,3 +36,10 @@
36
36
  }
37
37
  }
38
38
  }
39
+
40
+ // enable timestamp with tooltip to have dashed underline when used with truncate
41
+ .#{$timestamp}__text {
42
+ // stylelint-disable property-disallowed-list
43
+ text-decoration: inherit;
44
+ // stylelint-enable property-disallowed-list
45
+ }
@@ -14,6 +14,17 @@
14
14
  --pf-v6-c-tree-view__node-container--Display: contents;
15
15
  --pf-v6-c-tree-view__node-content--RowGap: var(--pf-t--global--spacer--sm);
16
16
  --pf-v6-c-tree-view__node-content--Overflow: visible;
17
+ --pf-v6-c-tree-view__list--TransitionDuration--expand--slide: 0s;
18
+ --pf-v6-c-tree-view__list--TransitionDuration--expand--fade: var(--pf-t--global--motion--duration--fade--default);
19
+ --pf-v6-c-tree-view__list--TransitionDuration--collapse--slide: 0s;
20
+ --pf-v6-c-tree-view__list--TransitionDuration--collapse--fade: var(--pf-t--global--motion--duration--fade--short);
21
+ --pf-v6-c-tree-view__list--TransitionDuration--slide: var(--pf-v6-c-tree-view__list--TransitionDuration--collapse--slide);
22
+ --pf-v6-c-tree-view__list--TransitionDuration--fade: var(--pf-v6-c-tree-view__list--TransitionDuration--collapse--fade);
23
+ --pf-v6-c-tree-view__list--TransitionTimingFunction: var(--pf-t--global--motion--timing-function--default);
24
+ --pf-v6-c-tree-view__list--Opacity: 0;
25
+ --pf-v6-c-tree-view--m-expanded__list--Opacity: 1;
26
+ --pf-v6-c-tree-view__list--TranslateY: 0;
27
+ --pf-v6-c-tree-view--m-expanded__list--TranslateY: 0;
17
28
  --pf-v6-c-tree-view__list-item__list-item__node-toggle--InsetBlockStart: var(--pf-v6-c-tree-view__node--PaddingBlockStart);
18
29
  --pf-v6-c-tree-view__list-item__list-item__node-toggle--InsetInlineStart: var(--pf-v6-c-tree-view__node--PaddingInlineStart);
19
30
  --pf-v6-c-tree-view__list-item__list-item__node-toggle--TranslateX: -100%;
@@ -29,6 +40,8 @@
29
40
  --pf-v6-c-tree-view__node-toggle--PaddingInlineStart: var(--pf-t--global--spacer--md);
30
41
  --pf-v6-c-tree-view__node-toggle--MarginBlockStart: calc(var(--pf-v6-c-tree-view__node-toggle--PaddingBlockStart) * -1);
31
42
  --pf-v6-c-tree-view__node-toggle--MarginBlockEnd: calc(var(--pf-v6-c-tree-view__node-toggle--PaddingBlockStart) * -1);
43
+ --pf-v6-c-tree-view__node-toggle-icon--TransitionDuration: var(--pf-t--global--motion--duration--icon--default);
44
+ --pf-v6-c-tree-view__node-toggle-icon--TransitionTimingFunction: var(--pf-t--global--motion--timing-function--default);
32
45
  --pf-v6-c-tree-view__node-check--MarginInlineEnd: var(--pf-t--global--spacer--sm);
33
46
  --pf-v6-c-tree-view__node-count--MarginInlineStart: var(--pf-t--global--spacer--sm);
34
47
  --pf-v6-c-tree-view__search--PaddingBlockStart: var(--pf-t--global--spacer--sm);
@@ -104,6 +117,13 @@
104
117
  --pf-v6-c-tree-view--m-compact--m-no-background__node--nested--PaddingBlockEnd: 0;
105
118
  --pf-v6-c-tree-view--m-compact--m-no-background__node--before--InsetBlockStart: calc(var(--pf-v6-c-tree-view--m-compact__node-container--nested--PaddingBlockStart) + var(--pf-v6-c-tree-view--m-compact__node--nested--PaddingBlockStart) + 0.25rem);
106
119
  }
120
+ @media screen and (prefers-reduced-motion: no-preference) {
121
+ .pf-v6-c-tree-view {
122
+ --pf-v6-c-tree-view__list--TransitionDuration--expand--slide: var(--pf-t--global--motion--duration--fade--default);
123
+ --pf-v6-c-tree-view__list--TransitionDuration--collapse--slide: var(--pf-t--global--motion--duration--fade--short);
124
+ --pf-v6-c-tree-view__list--TranslateY: -.5rem;
125
+ }
126
+ }
107
127
 
108
128
  .pf-v6-c-tree-view.pf-m-compact .pf-v6-c-tree-view__list-item, .pf-v6-c-tree-view.pf-m-guides .pf-v6-c-tree-view__list-item {
109
129
  position: relative;
@@ -219,12 +239,23 @@
219
239
  display: inline-block;
220
240
  min-width: var(--pf-v6-c-tree-view__node-toggle-icon--MinWidth);
221
241
  text-align: center;
242
+ transition: transform var(--pf-v6-c-tree-view__node-toggle-icon--TransitionDuration) var(--pf-v6-c-tree-view__node-toggle-icon--TransitionTimingFunction);
222
243
  transform: rotate(var(--pf-v6-c-tree-view__node-toggle-icon--Rotate));
223
244
  }
224
245
  :where(.pf-v6-m-dir-rtl, [dir=rtl]) .pf-v6-c-tree-view__node-toggle-icon {
225
246
  scale: -1 1;
226
247
  }
227
248
 
249
+ .pf-v6-c-tree-view__list-item .pf-v6-c-tree-view__list {
250
+ max-height: 0;
251
+ visibility: hidden;
252
+ opacity: var(--pf-v6-c-tree-view__list--Opacity);
253
+ transition-delay: 0s, 0s, var(--pf-v6-c-tree-view__list--TransitionDuration--fade), var(--pf-v6-c-tree-view__list--TransitionDuration--fade);
254
+ transition-timing-function: var(--pf-v6-c-tree-view__list--TransitionTimingFunction);
255
+ transition-duration: var(--pf-v6-c-tree-view__list--TransitionDuration--fade), var(--pf-v6-c-tree-view__list--TransitionDuration--slide), 0s, 0s;
256
+ transition-property: opacity, translate, visibility, max-height;
257
+ translate: 0 var(--pf-v6-c-tree-view__list--TranslateY);
258
+ }
228
259
  .pf-v6-c-tree-view__list-item .pf-v6-c-tree-view__list-item {
229
260
  --pf-v6-c-tree-view__node-toggle-icon--Rotate: var(--pf-v6-c-tree-view__node-toggle-icon--base--Rotate);
230
261
  --pf-v6-c-tree-view__node-toggle--Color: var(--pf-v6-c-tree-view__node-toggle--Color--base);
@@ -233,6 +264,14 @@
233
264
  --pf-v6-c-tree-view__node-toggle--Color: var(--pf-v6-c-tree-view__list-item--m-expanded__node-toggle--Color);
234
265
  --pf-v6-c-tree-view__node-toggle-icon--Rotate: var(--pf-v6-c-tree-view__list-item--m-expanded__node-toggle-icon--Rotate);
235
266
  }
267
+ .pf-v6-c-tree-view__list-item.pf-m-expanded > .pf-v6-c-tree-view__list {
268
+ max-height: 99999px;
269
+ visibility: revert;
270
+ opacity: var(--pf-v6-c-tree-view--m-expanded__list--Opacity);
271
+ transition-delay: 0s;
272
+ transition-duration: var(--pf-v6-c-tree-view__list--TransitionDuration--expand--fade), var(--pf-v6-c-tree-view__list--TransitionDuration--expand--slide), 0s, 0s;
273
+ translate: 0 var(--pf-v6-c-tree-view--m-expanded__list--TranslateY);
274
+ }
236
275
 
237
276
  .pf-v6-c-tree-view__node,
238
277
  .pf-v6-c-tree-view__node-container {
@@ -28,6 +28,25 @@ $pf-v6-c-tree-view--MaxNesting: 10 !default;
28
28
  --#{$tree-view}__node-content--RowGap: var(--pf-t--global--spacer--sm);
29
29
  --#{$tree-view}__node-content--Overflow: visible;
30
30
 
31
+ // List
32
+ --#{$tree-view}__list--TransitionDuration--expand--slide: 0s;
33
+ --#{$tree-view}__list--TransitionDuration--expand--fade: var(--pf-t--global--motion--duration--fade--default);
34
+ --#{$tree-view}__list--TransitionDuration--collapse--slide: 0s;
35
+ --#{$tree-view}__list--TransitionDuration--collapse--fade: var(--pf-t--global--motion--duration--fade--short);
36
+ --#{$tree-view}__list--TransitionDuration--slide: var(--#{$tree-view}__list--TransitionDuration--collapse--slide);
37
+ --#{$tree-view}__list--TransitionDuration--fade: var(--#{$tree-view}__list--TransitionDuration--collapse--fade);
38
+ --#{$tree-view}__list--TransitionTimingFunction: var(--pf-t--global--motion--timing-function--default);
39
+ --#{$tree-view}__list--Opacity: 0;
40
+ --#{$tree-view}--m-expanded__list--Opacity: 1;
41
+ --#{$tree-view}__list--TranslateY: 0;
42
+ --#{$tree-view}--m-expanded__list--TranslateY: 0;
43
+
44
+ @media screen and (prefers-reduced-motion: no-preference) {
45
+ --#{$tree-view}__list--TransitionDuration--expand--slide: var(--pf-t--global--motion--duration--fade--default);
46
+ --#{$tree-view}__list--TransitionDuration--collapse--slide: var(--pf-t--global--motion--duration--fade--short);
47
+ --#{$tree-view}__list--TranslateY: -.5rem;
48
+ }
49
+
31
50
  // Nested toggle
32
51
  --#{$tree-view}__list-item__list-item__node-toggle--InsetBlockStart: var(--#{$tree-view}__node--PaddingBlockStart);
33
52
  --#{$tree-view}__list-item__list-item__node-toggle--InsetInlineStart: var(--#{$tree-view}__node--PaddingInlineStart);
@@ -48,6 +67,8 @@ $pf-v6-c-tree-view--MaxNesting: 10 !default;
48
67
  --#{$tree-view}__node-toggle--PaddingInlineStart: var(--pf-t--global--spacer--md);
49
68
  --#{$tree-view}__node-toggle--MarginBlockStart: calc(var(--#{$tree-view}__node-toggle--PaddingBlockStart) * -1);
50
69
  --#{$tree-view}__node-toggle--MarginBlockEnd: calc(var(--#{$tree-view}__node-toggle--PaddingBlockStart) * -1);
70
+ --#{$tree-view}__node-toggle-icon--TransitionDuration: var(--pf-t--global--motion--duration--icon--default);
71
+ --#{$tree-view}__node-toggle-icon--TransitionTimingFunction: var(--pf-t--global--motion--timing-function--default);
51
72
 
52
73
  // Check
53
74
  --#{$tree-view}__node-check--MarginInlineEnd: var(--pf-t--global--spacer--sm);
@@ -330,11 +351,22 @@ $pf-v6-c-tree-view--MaxNesting: 10 !default;
330
351
  display: inline-block;
331
352
  min-width: var(--#{$tree-view}__node-toggle-icon--MinWidth);
332
353
  text-align: center;
354
+ transition: transform var(--#{$tree-view}__node-toggle-icon--TransitionDuration) var(--#{$tree-view}__node-toggle-icon--TransitionTimingFunction);
333
355
  transform: rotate(var(--#{$tree-view}__node-toggle-icon--Rotate));
334
356
  }
335
357
 
336
- // stylelint-disable
337
358
  .#{$tree-view}__list-item {
359
+ .#{$tree-view}__list {
360
+ max-height: 0;
361
+ visibility: hidden;
362
+ opacity: var(--#{$tree-view}__list--Opacity);
363
+ transition-delay: 0s, 0s, var(--#{$tree-view}__list--TransitionDuration--fade), var(--#{$tree-view}__list--TransitionDuration--fade);
364
+ transition-timing-function: var(--#{$tree-view}__list--TransitionTimingFunction);
365
+ transition-duration: var(--#{$tree-view}__list--TransitionDuration--fade), var(--#{$tree-view}__list--TransitionDuration--slide), 0s, 0s;
366
+ transition-property: opacity, translate, visibility, max-height;
367
+ translate: 0 var(--#{$tree-view}__list--TranslateY);
368
+ }
369
+
338
370
  .#{$tree-view}__list-item {
339
371
  --#{$tree-view}__node-toggle-icon--Rotate: var(--#{$tree-view}__node-toggle-icon--base--Rotate); // reset nested toggle icon rotate
340
372
  --#{$tree-view}__node-toggle--Color: var(--#{$tree-view}__node-toggle--Color--base); // reset nested toggle color
@@ -343,9 +375,17 @@ $pf-v6-c-tree-view--MaxNesting: 10 !default;
343
375
  &.pf-m-expanded {
344
376
  --#{$tree-view}__node-toggle--Color: var(--#{$tree-view}__list-item--m-expanded__node-toggle--Color);
345
377
  --#{$tree-view}__node-toggle-icon--Rotate: var(--#{$tree-view}__list-item--m-expanded__node-toggle-icon--Rotate);
378
+
379
+ > .#{$tree-view}__list {
380
+ max-height: 99999px;
381
+ visibility: revert;
382
+ opacity: var(--#{$tree-view}--m-expanded__list--Opacity);
383
+ transition-delay: 0s;
384
+ transition-duration: var(--#{$tree-view}__list--TransitionDuration--expand--fade), var(--#{$tree-view}__list--TransitionDuration--expand--slide), 0s, 0s;
385
+ translate: 0 var(--#{$tree-view}--m-expanded__list--TranslateY);
386
+ }
346
387
  }
347
388
  }
348
- // stylelint-enable
349
389
 
350
390
  .#{$tree-view}__node,
351
391
  .#{$tree-view}__node-container {
@@ -8,6 +8,7 @@
8
8
  grid-auto-flow: column;
9
9
  align-items: baseline;
10
10
  min-width: var(--pf-v6-c-truncate--MinWidth);
11
+ text-decoration: inherit;
11
12
  }
12
13
  .pf-v6-c-truncate.pf-m-fixed {
13
14
  display: inline;
@@ -10,6 +10,9 @@
10
10
  grid-auto-flow: column;
11
11
  align-items: baseline;
12
12
  min-width: var(--#{$truncate}--MinWidth);
13
+ // stylelint-disable property-disallowed-list
14
+ text-decoration: inherit; // enable inline link to have underline
15
+ // stylelint-enable property-disallowed-list
13
16
 
14
17
  &.pf-m-fixed {
15
18
  display: inline;