@patternfly/patternfly 5.1.0-prerelease.8 → 5.1.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 (113) hide show
  1. package/README.md +13 -3
  2. package/base/_common.scss +21 -0
  3. package/base/_variables.scss +7 -0
  4. package/base/patternfly-common.css +14 -0
  5. package/base/patternfly-variables.css +5 -0
  6. package/components/AboutModalBox/about-modal-box.css +5 -0
  7. package/components/AboutModalBox/about-modal-box.scss +7 -0
  8. package/components/Accordion/accordion.css +3 -0
  9. package/components/Accordion/accordion.scss +2 -0
  10. package/components/Alert/alert.css +3 -0
  11. package/components/Alert/alert.scss +2 -0
  12. package/components/BackgroundImage/background-image.css +4 -1
  13. package/components/BackgroundImage/background-image.scss +6 -1
  14. package/components/Banner/banner.css +0 -3
  15. package/components/Breadcrumb/breadcrumb.css +3 -0
  16. package/components/Breadcrumb/breadcrumb.scss +2 -0
  17. package/components/Button/button.css +3 -0
  18. package/components/Button/button.scss +4 -0
  19. package/components/CalendarMonth/calendar-month.css +4 -0
  20. package/components/CalendarMonth/calendar-month.scss +2 -0
  21. package/components/Card/card.css +4 -1
  22. package/components/Card/card.scss +3 -1
  23. package/components/ClipboardCopy/clipboard-copy.css +3 -0
  24. package/components/ClipboardCopy/clipboard-copy.scss +2 -0
  25. package/components/DataList/data-list.css +3 -0
  26. package/components/DataList/data-list.scss +2 -0
  27. package/components/Drawer/drawer.css +45 -1
  28. package/components/Drawer/drawer.scss +43 -9
  29. package/components/DualListSelector/dual-list-selector.css +9 -1
  30. package/components/DualListSelector/dual-list-selector.scss +12 -3
  31. package/components/ExpandableSection/expandable-section.css +4 -0
  32. package/components/ExpandableSection/expandable-section.scss +2 -0
  33. package/components/Form/form.css +3 -0
  34. package/components/Form/form.scss +2 -0
  35. package/components/Icon/icon.scss +1 -1
  36. package/components/JumpLinks/jump-links.css +3 -0
  37. package/components/JumpLinks/jump-links.scss +2 -0
  38. package/components/Menu/menu.css +11 -0
  39. package/components/Menu/menu.scss +12 -2
  40. package/components/Nav/nav.css +20 -0
  41. package/components/Nav/nav.scss +22 -2
  42. package/components/NotificationDrawer/notification-drawer.css +4 -0
  43. package/components/NotificationDrawer/notification-drawer.scss +2 -0
  44. package/components/Page/page.css +4 -0
  45. package/components/Page/page.scss +6 -1
  46. package/components/Pagination/pagination.css +4 -0
  47. package/components/Pagination/pagination.scss +2 -0
  48. package/components/Popover/popover.css +62 -33
  49. package/components/Popover/popover.scss +88 -71
  50. package/components/Progress/progress.css +6 -4
  51. package/components/Progress/progress.scss +9 -4
  52. package/components/Skeleton/skeleton.css +4 -0
  53. package/components/Skeleton/skeleton.scss +2 -0
  54. package/components/Slider/slider.css +30 -6
  55. package/components/Slider/slider.scss +50 -19
  56. package/components/Switch/switch.css +4 -0
  57. package/components/Switch/switch.scss +5 -1
  58. package/components/Table/table-scrollable.css +2 -2
  59. package/components/Table/table-scrollable.scss +4 -2
  60. package/components/Table/table-tree-view.css +5 -1
  61. package/components/Table/table-tree-view.scss +7 -2
  62. package/components/Table/table.css +4 -0
  63. package/components/Table/table.scss +2 -0
  64. package/components/Tabs/tabs.css +10 -0
  65. package/components/Tabs/tabs.scss +8 -0
  66. package/components/Toolbar/toolbar.scss +2 -0
  67. package/components/Tooltip/tooltip.css +55 -26
  68. package/components/Tooltip/tooltip.scss +71 -54
  69. package/components/TreeView/tree-view.css +6 -0
  70. package/components/TreeView/tree-view.scss +10 -3
  71. package/components/Truncate/truncate.css +9 -0
  72. package/components/Truncate/truncate.scss +16 -3
  73. package/components/Wizard/wizard.css +10 -1
  74. package/components/Wizard/wizard.scss +12 -3
  75. package/docs/components/Button/examples/Button.md +15 -3
  76. package/docs/components/Card/examples/Card.md +2 -2
  77. package/docs/components/Chip/examples/Chip.md +1 -1
  78. package/docs/components/ClipboardCopy/examples/ClipboardCopy.md +106 -0
  79. package/docs/components/CodeEditor/examples/CodeEditor.md +3 -3
  80. package/docs/components/DragDrop/examples/DragDrop.css +2 -2
  81. package/docs/components/DualListSelector/examples/DualListSelector.md +64 -16
  82. package/docs/components/Label/examples/Label.md +1 -1
  83. package/docs/components/Menu/examples/Menu.css +8 -0
  84. package/docs/components/Menu/examples/Menu.md +90 -73
  85. package/docs/components/ModalBox/examples/ModalBox.css +3 -8
  86. package/docs/components/Nav/examples/Navigation.css +3 -26
  87. package/docs/components/Nav/examples/Navigation.md +99 -0
  88. package/docs/components/OptionsMenu/deprecated/options-menu.md +12 -3
  89. package/docs/components/Popover/examples/Popover.css +4 -9
  90. package/docs/components/Table/examples/Table.md +2 -2
  91. package/docs/components/Toolbar/examples/Toolbar.md +76 -60
  92. package/docs/components/Tooltip/examples/Tooltip.css +4 -0
  93. package/docs/components/Tooltip/examples/Tooltip.md +3 -1
  94. package/docs/components/Truncate/examples/Truncate.md +2 -2
  95. package/docs/demos/Card/examples/Card.md +23 -7
  96. package/docs/demos/DataList/examples/DataList.md +8 -2
  97. package/docs/demos/PrimaryDetail/examples/PrimaryDetail.md +16 -4
  98. package/docs/demos/Skeleton/examples/Skeleton.md +7 -35
  99. package/docs/demos/Table/examples/Table.md +48 -12
  100. package/docs/demos/Tabs/examples/Tabs.md +4 -1
  101. package/package.json +6 -5
  102. package/patternfly-base-no-globals-theme-dark-unversioned.css +19 -0
  103. package/patternfly-base-no-globals.css +19 -0
  104. package/patternfly-base-theme-dark-unversioned.css +19 -0
  105. package/patternfly-base.css +19 -0
  106. package/patternfly-no-globals.css +375 -87
  107. package/patternfly-theme-dark-unversioned.css +375 -87
  108. package/patternfly.css +375 -87
  109. package/patternfly.min.css +1 -1
  110. package/patternfly.min.css.map +1 -1
  111. package/sass-utilities/functions.scss +6 -0
  112. package/sass-utilities/mixins.scss +60 -0
  113. package/sass-utilities/themes/dark/mixins.scss +3 -1
package/README.md CHANGED
@@ -63,18 +63,27 @@ When making visual changes to a full page example, new example preview screensho
63
63
 
64
64
  ## Guidelines for CSS development
65
65
 
66
- - For issues created in Core that will affect a component in PF-React, a follow up issue must be created in PF-React once the Pull Request is merged. The issue should include the Core PR #, the Core Release, a link to the component in https://pf4.patternfly.org, and information detailing the change.
66
+ - For issues created in Core that will affect a component in PF-React, a follow up issue must be created in PF-React once the Pull Request is merged. The issue should include the Core PR #, the Core Release, a link to the component in https://core-staging.patternfly.org, and information detailing the change.
67
67
  - If global variables are modified in Core, a React issue should be opened to address this.
68
68
  - CSS developers should ensure that animation is well documented and communicated to the respective React developer.
69
69
  - Once the component/enhancement is complete it should receive sign off from a visual designer who can then update the master sketch file with any changes.
70
70
 
71
+ ### Handlebars guidelines
72
+ [For information on how to contribute, refer to our guidelines.](https://core-staging.patternfly.org/contribution)
73
+
74
+ ### CSS/Sass guidelines
75
+ [For more information on using CSS and Sass, refer to our guidelines.](https://core-staging.patternfly.org/guidelines)
76
+
77
+ ### Custom icon guidelines
78
+ [For more information on custom icons, refer to our guidelines.](https://core-staging.patternfly.org/adding-custom-icons)
79
+
71
80
  ## Beta components
72
81
 
73
82
  When creating a brand new component, it should be released as beta in order to get feedback.
74
83
 
75
84
  ## Testing for accessibility
76
85
 
77
- PatternFly uses [aXe: The Accessibility Engine](https://www.deque.com/axe/) to check for accessibility violations. Our goal is to meet WCAG 2.0 AA requirements, as noted in our [Accessibility guide](https://pf4.patternfly.org/accessibility-guide).
86
+ PatternFly uses [aXe: The Accessibility Engine](https://www.deque.com/axe/) to check for accessibility violations. Our goal is to meet WCAG 2.0 AA requirements, as noted in our [Accessibility guide](https://www.patternfly.org/accessibility/patternflys-accessibility).
78
87
 
79
88
  ### How to perform an accessibility audit with aXe
80
89
  aXe is available as either a browser extension or npm script.
@@ -103,7 +112,7 @@ If you have any suggestions about ways that we can improve how we use this tool,
103
112
  ## FAQ
104
113
 
105
114
  #### CSS Variables
106
- [How do I use CSS variables to customize the library?](https://pf4.patternfly.org/guidelines#variables)
115
+ [How do I use CSS variables to customize the library?](https://core-staging.patternfly.org/guidelines#variables)
107
116
 
108
117
  #### Browser support
109
118
  PatternFly 5 is supported on the latest two major versions of the following browsers:
@@ -112,3 +121,4 @@ PatternFly 5 is supported on the latest two major versions of the following brow
112
121
  - Firefox
113
122
  - Safari
114
123
  - Edge
124
+
package/base/_common.scss CHANGED
@@ -23,3 +23,24 @@
23
23
  --#{$pf-global}--FontFamily--heading: var(--#{$pf-global}--FontFamily--heading--vf);
24
24
  --#{$pf-global}--FontFamily--monospace: var(--#{$pf-global}--FontFamily--monospace--vf);
25
25
  }
26
+
27
+ // RTL helpers
28
+
29
+ // Sets a block to RTL
30
+ .#{$pf-prefix}m-dir-rtl {
31
+ @include pf-v5-set-inverse;
32
+
33
+ direction: rtl;
34
+ }
35
+
36
+ // Sets a block to LTR
37
+ .#{$pf-prefix}m-dir-ltr {
38
+ @include pf-v5-set-inverse(false);
39
+
40
+ direction: ltr;
41
+ }
42
+
43
+ // Mirrors/flips something horizontally/inline in RTL
44
+ .#{$pf-prefix}m-mirror-inline-rtl {
45
+ @include pf-v5-mirror-inline-on-rtl;
46
+ }
@@ -282,6 +282,13 @@
282
282
  // A11y
283
283
  --#{$pf-global}--target-size--MinWidth: #{$pf-v5-global--target-size--MinWidth};
284
284
  --#{$pf-global}--target-size--MinHeight: #{$pf-v5-global--target-size--MinHeight};
285
+
286
+ // RTL
287
+ @include pf-v5-set-inverse(false);
288
+ }
289
+
290
+ @include pf-v5-rtl {
291
+ @include pf-v5-set-inverse;
285
292
  }
286
293
 
287
294
  // stylelint-disable no-invalid-position-at-import-rule
@@ -23,4 +23,18 @@
23
23
  --pf-v5-global--FontFamily--text: var(--pf-v5-global--FontFamily--text--vf);
24
24
  --pf-v5-global--FontFamily--heading: var(--pf-v5-global--FontFamily--heading--vf);
25
25
  --pf-v5-global--FontFamily--monospace: var(--pf-v5-global--FontFamily--monospace--vf);
26
+ }
27
+
28
+ .pf-v5-m-dir-rtl {
29
+ --pf-v5-global--inverse--multiplier: -1;
30
+ direction: rtl;
31
+ }
32
+
33
+ .pf-v5-m-dir-ltr {
34
+ --pf-v5-global--inverse--multiplier: 1;
35
+ direction: ltr;
36
+ }
37
+
38
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-m-mirror-inline-rtl {
39
+ scale: -1 1;
26
40
  }
@@ -232,6 +232,11 @@
232
232
  --pf-v5-global--arrow--width-lg: 1.5625rem;
233
233
  --pf-v5-global--target-size--MinWidth: 44px;
234
234
  --pf-v5-global--target-size--MinHeight: 44px;
235
+ --pf-v5-global--inverse--multiplier: 1;
236
+ }
237
+
238
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) {
239
+ --pf-v5-global--inverse--multiplier: -1;
235
240
  }
236
241
 
237
242
  :where(.pf-v5-theme-dark) {
@@ -26,6 +26,7 @@
26
26
  --pf-v5-c-about-modal-box--Width: 100%;
27
27
  --pf-v5-c-about-modal-box--sm--GridTemplateColumns: 5fr 1fr;
28
28
  --pf-v5-c-about-modal-box--lg--GridTemplateColumns: 1fr .6fr;
29
+ --pf-v5-c-about-modal-box--BackgroundPosition: bottom right;
29
30
  --pf-v5-c-about-modal-box__brand--PaddingTop: var(--pf-v5-global--spacer--2xl);
30
31
  --pf-v5-c-about-modal-box__brand--PaddingRight: var(--pf-v5-global--spacer--xl);
31
32
  --pf-v5-c-about-modal-box__brand--PaddingLeft: var(--pf-v5-global--spacer--xl);
@@ -78,6 +79,10 @@
78
79
  background-position: var(--pf-v5-c-about-modal-box--BackgroundPosition);
79
80
  background-size: var(--pf-v5-c-about-modal-box--BackgroundSize);
80
81
  }
82
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-about-modal-box {
83
+ --pf-v5-c-about-modal-box--BackgroundPosition: bottom left;
84
+ }
85
+
81
86
  @media screen and (min-width: 576px) {
82
87
  .pf-v5-c-about-modal-box {
83
88
  --pf-v5-c-about-modal-box__brand--PaddingRight: var(--pf-v5-c-about-modal-box__brand--sm--PaddingRight);
@@ -15,6 +15,13 @@
15
15
  --#{$about-modal-box}--sm--GridTemplateColumns: 5fr 1fr;
16
16
  --#{$about-modal-box}--lg--GridTemplateColumns: 1fr .6fr;
17
17
 
18
+ @include pf-v5-bidirectional-style(
19
+ $prop: --#{$about-modal-box}--BackgroundPosition,
20
+ $ltr-val: bottom right,
21
+ $rtl-val: bottom left
22
+ );
23
+
24
+
18
25
  // Brand
19
26
  --#{$about-modal-box}__brand--PaddingTop: var(--#{$pf-global}--spacer--2xl);
20
27
  --#{$about-modal-box}__brand--PaddingRight: var(--#{$pf-global}--spacer--xl);
@@ -200,6 +200,9 @@
200
200
  .pf-v5-c-accordion__toggle-icon {
201
201
  transition: var(--pf-v5-c-accordion__toggle-icon--Transition);
202
202
  }
203
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-accordion__toggle-icon {
204
+ scale: -1 1;
205
+ }
203
206
 
204
207
  .pf-v5-c-accordion__expandable-content {
205
208
  font-size: var(--pf-v5-c-accordion__expandable-content--FontSize);
@@ -230,6 +230,8 @@
230
230
  }
231
231
 
232
232
  .#{$accordion}__toggle-icon {
233
+ @include pf-v5-mirror-inline-on-rtl;
234
+
233
235
  transition: var(--#{$accordion}__toggle-icon--Transition);
234
236
  }
235
237
 
@@ -159,6 +159,9 @@
159
159
  transition: var(--pf-v5-c-alert__toggle-icon--Transition);
160
160
  transform: rotate(var(--pf-v5-c-alert__toggle-icon--Rotate));
161
161
  }
162
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-alert__toggle-icon {
163
+ scale: -1 1;
164
+ }
162
165
 
163
166
  .pf-v5-c-alert__icon {
164
167
  display: flex;
@@ -199,6 +199,8 @@
199
199
  }
200
200
 
201
201
  .#{$alert}__toggle-icon {
202
+ @include pf-v5-mirror-inline-on-rtl;
203
+
202
204
  display: inline-block;
203
205
  transition: var(--#{$alert}__toggle-icon--Transition);
204
206
  transform: rotate(var(--#{$alert}__toggle-icon--Rotate));
@@ -1,11 +1,11 @@
1
1
  .pf-v5-c-background-image {
2
2
  --pf-v5-c-background-image--BackgroundColor: var(--pf-v5-global--BackgroundColor--dark-100);
3
3
  --pf-v5-c-background-image--BackgroundImage: none;
4
- --pf-v5-c-background-image--BackgroundPosition: bottom right;
5
4
  --pf-v5-c-background-image--BackgroundSize--min-width: 200px;
6
5
  --pf-v5-c-background-image--BackgroundSize--width: 60%;
7
6
  --pf-v5-c-background-image--BackgroundSize--max-width: 600px;
8
7
  --pf-v5-c-background-image--BackgroundSize: clamp(var(--pf-v5-c-background-image--BackgroundSize--min-width), var(--pf-v5-c-background-image--BackgroundSize--width), var(--pf-v5-c-background-image--BackgroundSize--max-width));
8
+ --pf-v5-c-background-image--BackgroundPosition: bottom right;
9
9
  position: fixed;
10
10
  inset-block-start: 0;
11
11
  inset-inline-start: 0;
@@ -17,4 +17,7 @@
17
17
  background-repeat: no-repeat;
18
18
  background-position: var(--pf-v5-c-background-image--BackgroundPosition);
19
19
  background-size: var(--pf-v5-c-background-image--BackgroundSize);
20
+ }
21
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-background-image {
22
+ --pf-v5-c-background-image--BackgroundPosition: bottom left;
20
23
  }
@@ -3,12 +3,17 @@
3
3
  .#{$background-image} {
4
4
  --#{$background-image}--BackgroundColor: var(--#{$pf-global}--BackgroundColor--dark-100);
5
5
  --#{$background-image}--BackgroundImage: none;
6
- --#{$background-image}--BackgroundPosition: bottom right;
7
6
  --#{$background-image}--BackgroundSize--min-width: 200px;
8
7
  --#{$background-image}--BackgroundSize--width: 60%;
9
8
  --#{$background-image}--BackgroundSize--max-width: 600px;
10
9
  --#{$background-image}--BackgroundSize: clamp(var(--#{$background-image}--BackgroundSize--min-width), var(--#{$background-image}--BackgroundSize--width), var(--#{$background-image}--BackgroundSize--max-width));
11
10
 
11
+ @include pf-v5-bidirectional-style(
12
+ $prop: --#{$background-image}--BackgroundPosition,
13
+ $ltr-val: bottom right,
14
+ $rtl-val: bottom left
15
+ );
16
+
12
17
  position: fixed;
13
18
  inset-block-start: 0;
14
19
  inset-inline-start: 0;
@@ -117,9 +117,6 @@
117
117
  --pf-v5-c-button--m-primary--BackgroundColor: var(--pf-v5-global--primary-color--300);
118
118
  }
119
119
 
120
- :where(.pf-v5-theme-dark) .pf-v5-c-banner {
121
- color: var(false);
122
- }
123
120
  :where(.pf-v5-theme-dark) .pf-v5-c-banner.pf-m-blue, :where(.pf-v5-theme-dark) .pf-v5-c-banner.pf-m-red, :where(.pf-v5-theme-dark) .pf-v5-c-banner.pf-m-green, :where(.pf-v5-theme-dark) .pf-v5-c-banner.pf-m-gold {
124
121
  --pf-v5-c-banner--Color: var(--pf-v5-global--palette--black-900);
125
122
  }
@@ -45,6 +45,9 @@
45
45
  line-height: 1;
46
46
  color: var(--pf-v5-c-breadcrumb__item-divider--Color);
47
47
  }
48
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-breadcrumb__item-divider {
49
+ scale: -1 1;
50
+ }
48
51
 
49
52
  .pf-v5-c-breadcrumb__link {
50
53
  font-size: inherit;
@@ -58,6 +58,8 @@
58
58
 
59
59
  // Breadcrumb divider
60
60
  .#{$breadcrumb}__item-divider {
61
+ @include pf-v5-mirror-inline-on-rtl;
62
+
61
63
  margin-inline-end: var(--#{$breadcrumb}__item-divider--MarginRight);
62
64
  font-size: var(--#{$breadcrumb}__item-divider--FontSize);
63
65
  line-height: 1;
@@ -432,6 +432,9 @@
432
432
  color: var(--pf-v5-c-button--m-plain--Color);
433
433
  background-color: var(--pf-v5-c-button--m-plain--BackgroundColor);
434
434
  }
435
+ .pf-v5-c-button.pf-m-plain.pf-m-no-padding {
436
+ padding: 0;
437
+ }
435
438
  .pf-v5-c-button.pf-m-plain:hover {
436
439
  --pf-v5-c-button--m-plain--Color: var(--pf-v5-c-button--m-plain--hover--Color);
437
440
  --pf-v5-c-button--m-plain--BackgroundColor: var(--pf-v5-c-button--m-plain--hover--BackgroundColor);
@@ -559,6 +559,10 @@
559
559
  color: var(--#{$button}--m-plain--Color);
560
560
  background-color: var(--#{$button}--m-plain--BackgroundColor);
561
561
 
562
+ &.pf-m-no-padding {
563
+ padding: 0;
564
+ }
565
+
562
566
  &:hover {
563
567
  --#{$button}--m-plain--Color: var(--#{$button}--m-plain--hover--Color);
564
568
  --#{$button}--m-plain--BackgroundColor: var(--#{$button}--m-plain--hover--BackgroundColor);
@@ -84,6 +84,10 @@
84
84
  margin-inline-start: var(--pf-v5-c-calendar-month__header-nav-control--MarginLeft);
85
85
  margin-inline-end: var(--pf-v5-c-calendar-month__header-nav-control--MarginRight);
86
86
  }
87
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-calendar-month__header-nav-control {
88
+ scale: -1 1;
89
+ }
90
+
87
91
  .pf-v5-c-calendar-month__header-nav-control.pf-m-prev-month {
88
92
  --pf-v5-c-calendar-month__header-nav-control--MarginRight: var(--pf-v5-c-calendar-month__header-nav-control--m-prev-month--MarginRight);
89
93
  --pf-v5-c-calendar-month__header-nav-control--MarginLeft: var(--pf-v5-c-calendar-month__header-nav-control--m-prev-month--MarginLeft);
@@ -81,6 +81,8 @@
81
81
  }
82
82
 
83
83
  .#{$calendar-month}__header-nav-control {
84
+ @include pf-v5-mirror-inline-on-rtl;
85
+
84
86
  margin-inline-start: var(--#{$calendar-month}__header-nav-control--MarginLeft);
85
87
  margin-inline-end: var(--#{$calendar-month}__header-nav-control--MarginRight);
86
88
 
@@ -36,7 +36,7 @@
36
36
  --pf-v5-c-card--m-selectable--m-disabled--BoxShadow: var(--pf-v5-global--BoxShadow--sm);
37
37
  --pf-v5-c-card--m-selectable--m-clickable--hover--BackgroundColor: var(--pf-v5-global--BackgroundColor--100);
38
38
  --pf-v5-c-card--m-selectable--m-clickable--hover--BoxShadow: var(--pf-v5-global--BoxShadow--sm);
39
- --pf-v5-c-card--m-selectable--m-clickable--m-selected--BorderColor: var(--pf-v5-global--BorderColor--100);
39
+ --pf-v5-c-card--m-selectable--m-clickable--m-selected--BorderColor: transparent;
40
40
  --pf-v5-c-card--m-selectable--m-clickable--m-selected--BackgroundColor: var(--pf-v5-global--BackgroundColor--100);
41
41
  --pf-v5-c-card--m-selectable--m-clickable--m-current--BackgroundColor: var(--pf-v5-global--palette--black-150);
42
42
  --pf-v5-c-card--m-selectable--m-clickable--m-current--BorderColor: var(--pf-v5-global--active-color--100);
@@ -270,6 +270,9 @@
270
270
  display: inline-block;
271
271
  transition: var(--pf-v5-c-card__header-toggle-icon--Transition);
272
272
  }
273
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-card__header-toggle-icon {
274
+ scale: -1 1;
275
+ }
273
276
 
274
277
  .pf-v5-c-card__title-text {
275
278
  font-family: var(--pf-v5-c-card__title-text--FontFamily);
@@ -58,7 +58,7 @@
58
58
  --#{$card}--m-selectable--m-clickable--hover--BoxShadow: var(--#{$pf-global}--BoxShadow--sm);
59
59
 
60
60
  // Selected selectable AND clickable card
61
- --#{$card}--m-selectable--m-clickable--m-selected--BorderColor: var(--#{$pf-global}--BorderColor--100);
61
+ --#{$card}--m-selectable--m-clickable--m-selected--BorderColor: transparent;
62
62
  --#{$card}--m-selectable--m-clickable--m-selected--BackgroundColor: var(--#{$pf-global}--BackgroundColor--100);
63
63
 
64
64
  // Clicked (pf-m-current) selectable AND clickable card
@@ -369,6 +369,8 @@
369
369
  }
370
370
 
371
371
  .#{$card}__header-toggle-icon {
372
+ @include pf-v5-mirror-inline-on-rtl;
373
+
372
374
  display: inline-block;
373
375
  transition: var(--#{$card}__header-toggle-icon--Transition);
374
376
  }
@@ -50,6 +50,9 @@
50
50
  .pf-v5-c-clipboard-copy__toggle-icon {
51
51
  transition: var(--pf-v5-c-clipboard-copy__toggle-icon--Transition);
52
52
  }
53
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-clipboard-copy__toggle-icon {
54
+ scale: -1 1;
55
+ }
53
56
 
54
57
  .pf-v5-c-clipboard-copy__expandable-content {
55
58
  padding-block-start: var(--pf-v5-c-clipboard-copy__expandable-content--PaddingTop);
@@ -66,6 +66,8 @@
66
66
  }
67
67
 
68
68
  .#{$clipboard-copy}__toggle-icon {
69
+ @include pf-v5-mirror-inline-on-rtl;
70
+
69
71
  transition: var(--#{$clipboard-copy}__toggle-icon--Transition);
70
72
  }
71
73
 
@@ -812,6 +812,9 @@
812
812
  transition: var(--pf-v5-c-data-list__toggle-icon--Transition);
813
813
  transform: rotate(var(--pf-v5-c-data-list__toggle-icon--Rotate));
814
814
  }
815
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-data-list__toggle-icon {
816
+ scale: -1 1;
817
+ }
815
818
 
816
819
  .pf-v5-c-data-list__item-content {
817
820
  display: grid;
@@ -405,6 +405,8 @@
405
405
 
406
406
  // toggle icon rotate
407
407
  .#{$data-list}__toggle-icon {
408
+ @include pf-v5-mirror-inline-on-rtl;
409
+
408
410
  height: var(--#{$data-list}__toggle-icon--Height);
409
411
  pointer-events: none;
410
412
  transition: var(--#{$data-list}__toggle-icon--Transition);
@@ -92,9 +92,9 @@
92
92
  --pf-v5-c-drawer__actions--MarginTop: calc(var(--pf-v5-global--spacer--form-element) * -1);
93
93
  --pf-v5-c-drawer__actions--MarginRight: calc(var(--pf-v5-global--spacer--form-element) * -1);
94
94
  --pf-v5-c-drawer__panel--BoxShadow: none;
95
+ --pf-v5-c-drawer--m-expanded--m-panel-bottom__panel--BoxShadow: var(--pf-v5-global--BoxShadow--lg-top);
95
96
  --pf-v5-c-drawer--m-expanded__panel--BoxShadow: var(--pf-v5-global--BoxShadow--lg-left);
96
97
  --pf-v5-c-drawer--m-expanded--m-panel-left__panel--BoxShadow: var(--pf-v5-global--BoxShadow--lg-right);
97
- --pf-v5-c-drawer--m-expanded--m-panel-bottom__panel--BoxShadow: var(--pf-v5-global--BoxShadow--lg-top);
98
98
  --pf-v5-c-drawer__panel--after--Width: var(--pf-v5-global--BorderWidth--sm);
99
99
  --pf-v5-c-drawer--m-panel-bottom__panel--after--Height: var(--pf-v5-global--BorderWidth--sm);
100
100
  --pf-v5-c-drawer__panel--after--BackgroundColor: transparent;
@@ -128,6 +128,14 @@
128
128
  --pf-v5-c-drawer__panel--MinHeight: var(--pf-v5-c-drawer--m-panel-bottom__panel--xl--MinHeight);
129
129
  }
130
130
  }
131
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-drawer {
132
+ --pf-v5-c-drawer--m-expanded__panel--BoxShadow: var(--pf-v5-global--BoxShadow--lg-right);
133
+ }
134
+
135
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-drawer {
136
+ --pf-v5-c-drawer--m-expanded--m-panel-left__panel--BoxShadow: var(--pf-v5-global--BoxShadow--lg-left);
137
+ }
138
+
131
139
  .pf-v5-c-drawer.pf-m-inline > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel:not(.pf-m-no-border, .pf-m-resizable), .pf-v5-c-drawer.pf-m-static > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel:not(.pf-m-no-border, .pf-m-resizable) {
132
140
  padding-inline-start: var(--pf-v5-c-drawer--m-inline__panel--PaddingLeft);
133
141
  }
@@ -136,6 +144,10 @@
136
144
  margin-inline-end: calc(var(--pf-v5-c-drawer__panel--FlexBasis) * -1);
137
145
  transform: translateX(-100%);
138
146
  }
147
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-drawer.pf-m-panel-left > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel {
148
+ transform: translateX(calc(-100% * var(--pf-v5-global--inverse--multiplier)));
149
+ }
150
+
139
151
  .pf-v5-c-drawer.pf-m-panel-left > .pf-v5-c-drawer__main > .pf-v5-c-drawer__content {
140
152
  order: 1;
141
153
  }
@@ -145,6 +157,10 @@
145
157
  .pf-v5-c-drawer.pf-m-expanded > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel {
146
158
  transform: translateX(-100%);
147
159
  }
160
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-drawer.pf-m-expanded > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel {
161
+ transform: translateX(calc(-100% * var(--pf-v5-global--inverse--multiplier)));
162
+ }
163
+
148
164
  .pf-v5-c-drawer.pf-m-expanded.pf-m-panel-left > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel {
149
165
  transform: translateX(0);
150
166
  }
@@ -359,6 +375,10 @@
359
375
  inset-inline-start: var(--pf-v5-c-drawer__splitter-handle--Left);
360
376
  transform: translate(-50%, -50%);
361
377
  }
378
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-drawer__splitter-handle {
379
+ transform: translate(calc(-50% * var(--pf-v5-global--inverse--multiplier)), -50%);
380
+ }
381
+
362
382
  .pf-v5-c-drawer__splitter-handle::after {
363
383
  display: block;
364
384
  width: var(--pf-v5-c-drawer__splitter-handle--after--Width);
@@ -564,6 +584,9 @@
564
584
  margin-inline-start: calc(var(--pf-v5-c-drawer__panel--FlexBasis) * -1);
565
585
  transform: translateX(100%);
566
586
  }
587
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-drawer.pf-m-inline > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel {
588
+ transform: translateX(calc(100% * var(--pf-v5-global--inverse--multiplier)));
589
+ }
567
590
  .pf-v5-c-drawer.pf-m-inline.pf-m-expanded > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel {
568
591
  margin-inline-start: 0;
569
592
  transform: translateX(0);
@@ -576,6 +599,9 @@
576
599
  margin-inline-end: calc(var(--pf-v5-c-drawer__panel--FlexBasis) * -1);
577
600
  transform: translateX(-100%);
578
601
  }
602
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-drawer.pf-m-inline.pf-m-panel-left > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel {
603
+ transform: translateX(calc(-100% * var(--pf-v5-global--inverse--multiplier)));
604
+ }
579
605
  .pf-v5-c-drawer.pf-m-inline.pf-m-panel-left.pf-m-expanded > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel {
580
606
  margin-inline-end: 0;
581
607
  transform: translateX(0);
@@ -625,6 +651,9 @@
625
651
  margin-inline-start: calc(var(--pf-v5-c-drawer__panel--FlexBasis) * -1);
626
652
  transform: translateX(100%);
627
653
  }
654
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-drawer.pf-m-inline-on-lg > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel {
655
+ transform: translateX(calc(100% * var(--pf-v5-global--inverse--multiplier)));
656
+ }
628
657
  .pf-v5-c-drawer.pf-m-inline-on-lg.pf-m-expanded > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel {
629
658
  margin-inline-start: 0;
630
659
  transform: translateX(0);
@@ -637,6 +666,9 @@
637
666
  margin-inline-end: calc(var(--pf-v5-c-drawer__panel--FlexBasis) * -1);
638
667
  transform: translateX(-100%);
639
668
  }
669
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-drawer.pf-m-inline-on-lg.pf-m-panel-left > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel {
670
+ transform: translateX(calc(-100% * var(--pf-v5-global--inverse--multiplier)));
671
+ }
640
672
  .pf-v5-c-drawer.pf-m-inline-on-lg.pf-m-panel-left.pf-m-expanded > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel {
641
673
  margin-inline-end: 0;
642
674
  transform: translateX(0);
@@ -686,6 +718,9 @@
686
718
  margin-inline-start: calc(var(--pf-v5-c-drawer__panel--FlexBasis) * -1);
687
719
  transform: translateX(100%);
688
720
  }
721
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-drawer.pf-m-inline-on-xl > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel {
722
+ transform: translateX(calc(100% * var(--pf-v5-global--inverse--multiplier)));
723
+ }
689
724
  .pf-v5-c-drawer.pf-m-inline-on-xl.pf-m-expanded > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel {
690
725
  margin-inline-start: 0;
691
726
  transform: translateX(0);
@@ -698,6 +733,9 @@
698
733
  margin-inline-end: calc(var(--pf-v5-c-drawer__panel--FlexBasis) * -1);
699
734
  transform: translateX(-100%);
700
735
  }
736
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-drawer.pf-m-inline-on-xl.pf-m-panel-left > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel {
737
+ transform: translateX(calc(-100% * var(--pf-v5-global--inverse--multiplier)));
738
+ }
701
739
  .pf-v5-c-drawer.pf-m-inline-on-xl.pf-m-panel-left.pf-m-expanded > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel {
702
740
  margin-inline-end: 0;
703
741
  transform: translateX(0);
@@ -747,6 +785,9 @@
747
785
  margin-inline-start: calc(var(--pf-v5-c-drawer__panel--FlexBasis) * -1);
748
786
  transform: translateX(100%);
749
787
  }
788
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-drawer.pf-m-inline-on-2xl > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel {
789
+ transform: translateX(calc(100% * var(--pf-v5-global--inverse--multiplier)));
790
+ }
750
791
  .pf-v5-c-drawer.pf-m-inline-on-2xl.pf-m-expanded > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel {
751
792
  margin-inline-start: 0;
752
793
  transform: translateX(0);
@@ -759,6 +800,9 @@
759
800
  margin-inline-end: calc(var(--pf-v5-c-drawer__panel--FlexBasis) * -1);
760
801
  transform: translateX(-100%);
761
802
  }
803
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-drawer.pf-m-inline-on-2xl.pf-m-panel-left > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel {
804
+ transform: translateX(calc(-100% * var(--pf-v5-global--inverse--multiplier)));
805
+ }
762
806
  .pf-v5-c-drawer.pf-m-inline-on-2xl.pf-m-panel-left.pf-m-expanded > .pf-v5-c-drawer__main > .pf-v5-c-drawer__panel {
763
807
  margin-inline-end: 0;
764
808
  transform: translateX(0);
@@ -147,10 +147,19 @@ $pf-v5-c-drawer__panel--list--width: (25, 33, 50, 66, 75, 100);
147
147
 
148
148
  // Box shadow
149
149
  --#{$drawer}__panel--BoxShadow: none;
150
- --#{$drawer}--m-expanded__panel--BoxShadow: var(--#{$pf-global}--BoxShadow--lg-left);
151
- --#{$drawer}--m-expanded--m-panel-left__panel--BoxShadow: var(--#{$pf-global}--BoxShadow--lg-right);
152
150
  --#{$drawer}--m-expanded--m-panel-bottom__panel--BoxShadow: var(--#{$pf-global}--BoxShadow--lg-top);
153
151
 
152
+ @include pf-v5-bidirectional-style(
153
+ $prop: --#{$drawer}--m-expanded__panel--BoxShadow,
154
+ $ltr-val: var(--#{$pf-global}--BoxShadow--lg-left),
155
+ $rtl-val: var(--#{$pf-global}--BoxShadow--lg-right)
156
+ );
157
+ @include pf-v5-bidirectional-style(
158
+ $prop: --#{$drawer}--m-expanded--m-panel-left__panel--BoxShadow,
159
+ $ltr-val: var(--#{$pf-global}--BoxShadow--lg-right),
160
+ $rtl-val: var(--#{$pf-global}--BoxShadow--lg-left)
161
+ );
162
+
154
163
  // Divider
155
164
  --#{$drawer}__panel--after--Width: var(--#{$pf-global}--BorderWidth--sm);
156
165
  --#{$drawer}--m-panel-bottom__panel--after--Height: var(--#{$pf-global}--BorderWidth--sm);
@@ -176,7 +185,12 @@ $pf-v5-c-drawer__panel--list--width: (25, 33, 50, 66, 75, 100);
176
185
  > .#{$drawer}__panel {
177
186
  order: 0;
178
187
  margin-inline-end: calc(var(--#{$drawer}__panel--FlexBasis) * -1);
179
- transform: translateX(-100%);
188
+
189
+ @include pf-v5-bidirectional-style(
190
+ $prop: transform,
191
+ $ltr-val: translateX(-100%),
192
+ $rtl-val: translateX(#{pf-v5-calc-inverse(-100%)}),
193
+ );
180
194
  }
181
195
 
182
196
  > .#{$drawer}__content {
@@ -192,7 +206,11 @@ $pf-v5-c-drawer__panel--list--width: (25, 33, 50, 66, 75, 100);
192
206
  // stylelint-disable selector-max-class
193
207
  &.pf-m-expanded {
194
208
  > .#{$drawer}__main > .#{$drawer}__panel {
195
- transform: translateX(-100%);
209
+ @include pf-v5-bidirectional-style(
210
+ $prop: transform,
211
+ $ltr-val: translateX(-100%),
212
+ $rtl-val: translateX(#{pf-v5-calc-inverse(-100%)}),
213
+ );
196
214
  }
197
215
 
198
216
  &.pf-m-panel-left > .#{$drawer}__main > .#{$drawer}__panel {
@@ -432,9 +450,15 @@ $pf-v5-c-drawer__panel--list--width: (25, 33, 50, 66, 75, 100);
432
450
 
433
451
  .#{$drawer}__splitter-handle {
434
452
  position: absolute;
435
- inset-block-start: var(--#{$drawer}__splitter-handle--Top);
436
- inset-inline-start: var(--#{$drawer}__splitter-handle--Left);
437
- transform: translate(-50%, -50%);
453
+ inset-block-start: var(--#{$drawer}__splitter-handle--Top);
454
+ inset-inline-start: var(--#{$drawer}__splitter-handle--Left);
455
+
456
+ @include pf-v5-bidirectional-style(
457
+ $prop: transform,
458
+ $ltr-val: translate(-50%, -50%),
459
+ $rtl-val: translate(#{pf-v5-calc-inverse(-50%)}, -50%),
460
+ );
461
+
438
462
 
439
463
  &::after {
440
464
  display: block;
@@ -642,7 +666,12 @@ $pf-v5-c-drawer__panel--list--width: (25, 33, 50, 66, 75, 100);
642
666
 
643
667
  > .#{$drawer}__main > .#{$drawer}__panel {
644
668
  margin-inline-start: calc(var(--#{$drawer}__panel--FlexBasis) * -1);
645
- transform: translateX(100%);
669
+
670
+ @include pf-v5-bidirectional-style(
671
+ $prop: transform,
672
+ $ltr-val: translateX(100%),
673
+ $rtl-val: translateX(#{pf-v5-calc-inverse(100%)}),
674
+ );
646
675
  }
647
676
 
648
677
  // stylelint-disable selector-max-class, selector-max-combinators, selector-max-compound-selectors
@@ -661,7 +690,12 @@ $pf-v5-c-drawer__panel--list--width: (25, 33, 50, 66, 75, 100);
661
690
  > .#{$drawer}__main > .#{$drawer}__panel {
662
691
  margin-inline-start: 0;
663
692
  margin-inline-end: calc(var(--#{$drawer}__panel--FlexBasis) * -1);
664
- transform: translateX(-100%);
693
+
694
+ @include pf-v5-bidirectional-style(
695
+ $prop: transform,
696
+ $ltr-val: translateX(-100%),
697
+ $rtl-val: translateX(#{pf-v5-calc-inverse(-100%)}),
698
+ );
665
699
  }
666
700
 
667
701
  // Inline, expanded, panel left
@@ -130,11 +130,15 @@
130
130
  --pf-v5-c-dual-list-selector__item-toggle--MarginBottom: 0;
131
131
  }
132
132
  .pf-v5-c-dual-list-selector__list .pf-v5-c-dual-list-selector__list .pf-v5-c-dual-list-selector__item-toggle {
133
+ transform: translateX(var(--pf-v5-c-dual-list-selector__list__list__item-toggle--TranslateX));
133
134
  position: absolute;
134
135
  inset-block-start: 0;
135
136
  inset-inline-start: var(--pf-v5-c-dual-list-selector__list__list__item-toggle--Left);
136
- transform: translateX(var(--pf-v5-c-dual-list-selector__list__list__item-toggle--TranslateX));
137
137
  }
138
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-dual-list-selector__list .pf-v5-c-dual-list-selector__list .pf-v5-c-dual-list-selector__item-toggle {
139
+ transform: translateX(calc(var(--pf-v5-c-dual-list-selector__list__list__item-toggle--TranslateX) * var(--pf-v5-global--inverse--multiplier)));
140
+ }
141
+
138
142
  .pf-v5-c-dual-list-selector__list.pf-m-drag-over {
139
143
  overflow-anchor: none;
140
144
  }
@@ -233,6 +237,10 @@
233
237
  padding-inline-end: var(--pf-v5-c-dual-list-selector__controls--PaddingRight);
234
238
  }
235
239
 
240
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) :is(.pf-v5-c-dual-list-selector__controls-item, .pf-v5-c-dual-list-selector__item-toggle-icon) {
241
+ scale: -1 1;
242
+ }
243
+
236
244
  .pf-v5-c-dual-list-selector__item-main {
237
245
  display: flex;
238
246
  min-width: 0;