@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
@@ -417,6 +417,9 @@
417
417
  transition: var(--pf-v5-c-tabs__toggle-icon--Transition);
418
418
  transform: rotate(var(--pf-v5-c-tabs__toggle-icon--Rotate));
419
419
  }
420
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-tabs__toggle-icon {
421
+ scale: -1 1;
422
+ }
420
423
 
421
424
  .pf-v5-c-tabs__toggle-text {
422
425
  margin-inline-start: var(--pf-v5-c-tabs__toggle-text--MarginLeft);
@@ -591,6 +594,9 @@
591
594
  transition: var(--pf-v5-c-tabs__link-toggle-icon--Transition);
592
595
  transform: rotate(var(--pf-v5-c-tabs__link-toggle-icon--Rotate));
593
596
  }
597
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-tabs__link-toggle-icon {
598
+ scale: -1 1;
599
+ }
594
600
 
595
601
  .pf-v5-c-tabs__item-action {
596
602
  display: flex;
@@ -622,6 +628,10 @@
622
628
  opacity: 0;
623
629
  transition: margin var(--pf-v5-c-tabs__scroll-button--TransitionDuration--margin), transform var(--pf-v5-c-tabs__scroll-button--TransitionDuration--transform), opacity var(--pf-v5-c-tabs__scroll-button--TransitionDuration--opacity);
624
630
  }
631
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-tabs__scroll-button > * {
632
+ scale: -1 1;
633
+ }
634
+
625
635
  .pf-v5-c-tabs__scroll-button:hover, .pf-v5-c-tabs__scroll-button:active, .pf-v5-c-tabs__scroll-button:focus {
626
636
  --pf-v5-c-tabs__scroll-button--Color: var(--pf-v5-c-tabs__scroll-button--hover--Color);
627
637
  }
@@ -490,6 +490,8 @@ $pf-v5-c-tabs--spacer-map: build-spacer-map("none", "sm", "md", "lg", "xl", "2xl
490
490
  }
491
491
 
492
492
  .#{$tabs}__toggle-icon {
493
+ @include pf-v5-mirror-inline-on-rtl;
494
+
493
495
  display: inline-block;
494
496
  color: var(--#{$tabs}__toggle-icon--Color);
495
497
  transition: var(--#{$tabs}__toggle-icon--Transition);
@@ -700,6 +702,8 @@ $pf-v5-c-tabs--spacer-map: build-spacer-map("none", "sm", "md", "lg", "xl", "2xl
700
702
  }
701
703
 
702
704
  .#{$tabs}__link-toggle-icon {
705
+ @include pf-v5-mirror-inline-on-rtl;
706
+
703
707
  align-self: end;
704
708
  font-size: var(--#{$tabs}__link-toggle-icon--FontSize);
705
709
  color: var(--#{$tabs}__link-toggle-icon--Color);
@@ -741,6 +745,10 @@ $pf-v5-c-tabs--spacer-map: build-spacer-map("none", "sm", "md", "lg", "xl", "2xl
741
745
  opacity: 0;
742
746
  transition: margin var(--#{$tabs}__scroll-button--TransitionDuration--margin), transform var(--#{$tabs}__scroll-button--TransitionDuration--transform), opacity var(--#{$tabs}__scroll-button--TransitionDuration--opacity);
743
747
 
748
+ > * {
749
+ @include pf-v5-mirror-inline-on-rtl; // in breaking change, add an icon wrapper and move this style to the wrapper
750
+ }
751
+
744
752
  &:hover,
745
753
  &:active,
746
754
  &:focus {
@@ -409,6 +409,8 @@ $pf-v5-c-toolbar--inset-map: build-spacer-map("none", "sm", "md", "lg", "xl", "2
409
409
  display: inline-block;
410
410
  transition: var(--#{$toolbar}__expand-all-icon--Transition);
411
411
  transform: rotate(var(--#{$toolbar}__expand-all-icon--Rotate));
412
+
413
+ // @include pf-v5-mirror-inline-on-rtl; - TODO: mirror this icon in breaking change
412
414
  }
413
415
 
414
416
  .#{$toolbar}__content,
@@ -28,39 +28,61 @@
28
28
  max-width: var(--pf-v5-c-tooltip--MaxWidth);
29
29
  box-shadow: var(--pf-v5-c-tooltip--BoxShadow);
30
30
  }
31
- .pf-v5-c-tooltip.pf-m-top .pf-v5-c-tooltip__arrow, .pf-v5-c-tooltip.pf-m-top-left .pf-v5-c-tooltip__arrow, .pf-v5-c-tooltip.pf-m-top-right .pf-v5-c-tooltip__arrow {
32
- inset-block-end: 0;
33
- inset-inline-start: 50%;
34
- transform: translateX(var(--pf-v5-c-tooltip__arrow--m-top--TranslateX)) translateY(var(--pf-v5-c-tooltip__arrow--m-top--TranslateY)) rotate(var(--pf-v5-c-tooltip__arrow--m-top--Rotate));
31
+ .pf-v5-c-tooltip:is(.pf-m-top,
32
+ .pf-m-top-left,
33
+ .pf-m-top-right) {
34
+ --pf-v5-c-tooltip__arrow--Bottom: var(--pf-v5-c-tooltip--m-top--Bottom, 0);
35
+ --pf-v5-c-tooltip__arrow--Left: var(--pf-v5-c-tooltip--m-top--Left, 50%);
36
+ --pf-v5-c-tooltip__arrow--TranslateX: var(--pf-v5-c-tooltip__arrow--m-top--TranslateX);
37
+ --pf-v5-c-tooltip__arrow--TranslateY: var(--pf-v5-c-tooltip__arrow--m-top--TranslateY);
38
+ --pf-v5-c-tooltip__arrow--Rotate: var(--pf-v5-c-tooltip__arrow--m-top--Rotate);
35
39
  }
36
- .pf-v5-c-tooltip.pf-m-bottom .pf-v5-c-tooltip__arrow, .pf-v5-c-tooltip.pf-m-bottom-left .pf-v5-c-tooltip__arrow, .pf-v5-c-tooltip.pf-m-bottom-right .pf-v5-c-tooltip__arrow {
37
- inset-block-start: 0;
38
- inset-inline-start: 50%;
39
- transform: translateX(var(--pf-v5-c-tooltip__arrow--m-bottom--TranslateX)) translateY(var(--pf-v5-c-tooltip__arrow--m-bottom--TranslateY)) rotate(var(--pf-v5-c-tooltip__arrow--m-bottom--Rotate));
40
+ .pf-v5-c-tooltip:is(.pf-m-bottom,
41
+ .pf-m-bottom-left,
42
+ .pf-m-bottom-right) {
43
+ --pf-v5-c-tooltip__arrow--Top: var(--pf-v5-c-tooltip--m-bottom--Top, 0);
44
+ --pf-v5-c-tooltip__arrow--Left: var(--pf-v5-c-tooltip--m-bottom--Left, 50%);
45
+ --pf-v5-c-tooltip__arrow--TranslateX: var(--pf-v5-c-tooltip__arrow--m-bottom--TranslateX);
46
+ --pf-v5-c-tooltip__arrow--TranslateY: var(--pf-v5-c-tooltip__arrow--m-bottom--TranslateY);
47
+ --pf-v5-c-tooltip__arrow--Rotate: var(--pf-v5-c-tooltip__arrow--m-bottom--Rotate);
40
48
  }
41
- .pf-v5-c-tooltip.pf-m-left .pf-v5-c-tooltip__arrow, .pf-v5-c-tooltip.pf-m-left-top .pf-v5-c-tooltip__arrow, .pf-v5-c-tooltip.pf-m-left-bottom .pf-v5-c-tooltip__arrow {
42
- inset-block-start: 50%;
43
- inset-inline-end: 0;
44
- transform: translateX(var(--pf-v5-c-tooltip__arrow--m-left--TranslateX)) translateY(var(--pf-v5-c-tooltip__arrow--m-left--TranslateY)) rotate(var(--pf-v5-c-tooltip__arrow--m-left--Rotate));
49
+ .pf-v5-c-tooltip:is(.pf-m-left,
50
+ .pf-m-left-top,
51
+ .pf-m-left-bottom) {
52
+ --pf-v5-c-tooltip__arrow--Top: var(--pf-v5-c-tooltip--m-left--Top, 50%);
53
+ --pf-v5-c-tooltip__arrow--Right: var(--pf-v5-c-tooltip--m-left--Right, 0);
54
+ --pf-v5-c-tooltip__arrow--TranslateX: var(--pf-v5-c-tooltip__arrow--m-left--TranslateX);
55
+ --pf-v5-c-tooltip__arrow--TranslateY: var(--pf-v5-c-tooltip__arrow--m-left--TranslateY);
56
+ --pf-v5-c-tooltip__arrow--Rotate: var(--pf-v5-c-tooltip__arrow--m-left--Rotate);
45
57
  }
46
- .pf-v5-c-tooltip.pf-m-right .pf-v5-c-tooltip__arrow, .pf-v5-c-tooltip.pf-m-right-top .pf-v5-c-tooltip__arrow, .pf-v5-c-tooltip.pf-m-right-bottom .pf-v5-c-tooltip__arrow {
47
- inset-block-start: 50%;
48
- inset-inline-start: 0;
49
- transform: translateX(var(--pf-v5-c-tooltip__arrow--m-right--TranslateX)) translateY(var(--pf-v5-c-tooltip__arrow--m-right--TranslateY)) rotate(var(--pf-v5-c-tooltip__arrow--m-right--Rotate));
58
+ .pf-v5-c-tooltip:is(.pf-m-right,
59
+ .pf-m-right-top,
60
+ .pf-m-right-bottom) {
61
+ --pf-v5-c-tooltip__arrow--Top: var(--pf-v5-c-tooltip--m-right--Top, 50%);
62
+ --pf-v5-c-tooltip__arrow--Left: var(--pf-v5-c-tooltip--m-right--Left, 0);
63
+ --pf-v5-c-tooltip__arrow--TranslateX: var(--pf-v5-c-tooltip__arrow--m-right--TranslateX);
64
+ --pf-v5-c-tooltip__arrow--TranslateY: var(--pf-v5-c-tooltip__arrow--m-right--TranslateY);
65
+ --pf-v5-c-tooltip__arrow--Rotate: var(--pf-v5-c-tooltip__arrow--m-right--Rotate);
50
66
  }
51
- .pf-v5-c-tooltip.pf-m-left-top .pf-v5-c-tooltip__arrow, .pf-v5-c-tooltip.pf-m-right-top .pf-v5-c-tooltip__arrow {
52
- inset-block-start: var(--pf-v5-c-tooltip__arrow--Height);
67
+ .pf-v5-c-tooltip:is(.pf-m-left-top,
68
+ .pf-m-right-top) {
69
+ --pf-v5-c-tooltip__arrow--Top: 0;
70
+ --pf-v5-c-tooltip__arrow--TranslateY: var(--pf-v5-c-tooltip__arrow--m-top--TranslateY);
53
71
  }
54
- .pf-v5-c-tooltip.pf-m-left-bottom .pf-v5-c-tooltip__arrow, .pf-v5-c-tooltip.pf-m-right-bottom .pf-v5-c-tooltip__arrow {
55
- inset-block-start: auto;
56
- inset-block-end: 0;
72
+ .pf-v5-c-tooltip:is(.pf-m-left-bottom,
73
+ .pf-m-right-bottom) {
74
+ --pf-v5-c-tooltip__arrow--Top: auto;
75
+ --pf-v5-c-tooltip__arrow--Bottom: 0;
57
76
  }
58
- .pf-v5-c-tooltip.pf-m-top-left .pf-v5-c-tooltip__arrow, .pf-v5-c-tooltip.pf-m-bottom-left .pf-v5-c-tooltip__arrow {
59
- inset-inline-start: var(--pf-v5-c-tooltip__arrow--Width);
77
+ .pf-v5-c-tooltip:is(.pf-m-top-left,
78
+ .pf-m-bottom-left) {
79
+ --pf-v5-c-tooltip__arrow--Left: 0;
80
+ --pf-v5-c-tooltip__arrow--TranslateX: var(--pf-v5-c-tooltip__arrow--m-left--TranslateX);
60
81
  }
61
- .pf-v5-c-tooltip.pf-m-top-right .pf-v5-c-tooltip__arrow, .pf-v5-c-tooltip.pf-m-bottom-right .pf-v5-c-tooltip__arrow {
62
- inset-inline-start: auto;
63
- inset-inline-end: 0;
82
+ .pf-v5-c-tooltip:is(.pf-m-top-right,
83
+ .pf-m-bottom-right) {
84
+ --pf-v5-c-tooltip__arrow--Right: 0;
85
+ --pf-v5-c-tooltip__arrow--Left: auto;
64
86
  }
65
87
 
66
88
  .pf-v5-c-tooltip__content {
@@ -81,11 +103,18 @@
81
103
 
82
104
  .pf-v5-c-tooltip__arrow {
83
105
  position: absolute;
106
+ /* stylelint-disable liberty/use-logical-spec */
107
+ top: var(--pf-v5-c-tooltip__arrow--Top, auto);
108
+ right: var(--pf-v5-c-tooltip__arrow--Right, auto);
109
+ bottom: var(--pf-v5-c-tooltip__arrow--Bottom, auto);
110
+ left: var(--pf-v5-c-tooltip__arrow--Left, auto);
111
+ /* stylelint-enable */
84
112
  width: var(--pf-v5-c-tooltip__arrow--Width);
85
113
  height: var(--pf-v5-c-tooltip__arrow--Height);
86
114
  pointer-events: none;
87
115
  background-color: var(--pf-v5-c-tooltip__arrow--BackgroundColor);
88
116
  box-shadow: var(--pf-v5-c-tooltip__arrow--BoxShadow);
117
+ transform: translateX(var(--pf-v5-c-tooltip__arrow--TranslateX, 0)) translateY(var(--pf-v5-c-tooltip__arrow--TranslateY, 0)) rotate(var(--pf-v5-c-tooltip__arrow--Rotate, 0));
89
118
  }
90
119
 
91
120
  :where(.pf-v5-theme-dark) .pf-v5-c-tooltip {
@@ -36,74 +36,84 @@
36
36
  max-width: var(--#{$tooltip}--MaxWidth);
37
37
  box-shadow: var(--#{$tooltip}--BoxShadow);
38
38
 
39
- &.pf-m-top,
40
- &.pf-m-top-left,
41
- &.pf-m-top-right {
42
- .#{$tooltip}__arrow {
43
- inset-block-end: 0;
44
- inset-inline-start: 50%;
45
- transform: translateX(var(--#{$tooltip}__arrow--m-top--TranslateX)) translateY(var(--#{$tooltip}__arrow--m-top--TranslateY)) rotate(var(--#{$tooltip}__arrow--m-top--Rotate));
46
- }
39
+ &:is(
40
+ .pf-m-top,
41
+ .pf-m-top-left,
42
+ .pf-m-top-right
43
+ ) {
44
+ --#{$tooltip}__arrow--Bottom: var(--#{$tooltip}--m-top--Bottom, 0);
45
+ --#{$tooltip}__arrow--Left: var(--#{$tooltip}--m-top--Left, 50%);
46
+ --#{$tooltip}__arrow--TranslateX: var(--#{$tooltip}__arrow--m-top--TranslateX);
47
+ --#{$tooltip}__arrow--TranslateY: var(--#{$tooltip}__arrow--m-top--TranslateY);
48
+ --#{$tooltip}__arrow--Rotate: var(--#{$tooltip}__arrow--m-top--Rotate);
47
49
  }
48
50
 
49
- &.pf-m-bottom,
50
- &.pf-m-bottom-left,
51
- &.pf-m-bottom-right {
52
- .#{$tooltip}__arrow {
53
- inset-block-start: 0;
54
- inset-inline-start: 50%;
55
- transform: translateX(var(--#{$tooltip}__arrow--m-bottom--TranslateX)) translateY(var(--#{$tooltip}__arrow--m-bottom--TranslateY)) rotate(var(--#{$tooltip}__arrow--m-bottom--Rotate));
56
- }
51
+ &:is(
52
+ .pf-m-bottom,
53
+ .pf-m-bottom-left,
54
+ .pf-m-bottom-right
55
+ ) {
56
+ --#{$tooltip}__arrow--Top: var(--#{$tooltip}--m-bottom--Top, 0);
57
+ --#{$tooltip}__arrow--Left: var(--#{$tooltip}--m-bottom--Left, 50%);
58
+ --#{$tooltip}__arrow--TranslateX: var(--#{$tooltip}__arrow--m-bottom--TranslateX);
59
+ --#{$tooltip}__arrow--TranslateY: var(--#{$tooltip}__arrow--m-bottom--TranslateY);
60
+ --#{$tooltip}__arrow--Rotate: var(--#{$tooltip}__arrow--m-bottom--Rotate);
57
61
  }
58
62
 
59
- &.pf-m-left,
60
- &.pf-m-left-top,
61
- &.pf-m-left-bottom {
62
- .#{$tooltip}__arrow {
63
- inset-block-start: 50%;
64
- inset-inline-end: 0;
65
- transform: translateX(var(--#{$tooltip}__arrow--m-left--TranslateX)) translateY(var(--#{$tooltip}__arrow--m-left--TranslateY)) rotate(var(--#{$tooltip}__arrow--m-left--Rotate));
66
- }
63
+ &:is(
64
+ .pf-m-left,
65
+ .pf-m-left-top,
66
+ .pf-m-left-bottom
67
+ ) {
68
+ --#{$tooltip}__arrow--Top: var(--#{$tooltip}--m-left--Top, 50%);
69
+ --#{$tooltip}__arrow--Right: var(--#{$tooltip}--m-left--Right, 0);
70
+ --#{$tooltip}__arrow--TranslateX: var(--#{$tooltip}__arrow--m-left--TranslateX);
71
+ --#{$tooltip}__arrow--TranslateY: var(--#{$tooltip}__arrow--m-left--TranslateY);
72
+ --#{$tooltip}__arrow--Rotate: var(--#{$tooltip}__arrow--m-left--Rotate);
67
73
  }
68
74
 
69
- &.pf-m-right,
70
- &.pf-m-right-top,
71
- &.pf-m-right-bottom {
72
- .#{$tooltip}__arrow {
73
- inset-block-start: 50%;
74
- inset-inline-start: 0;
75
- transform: translateX(var(--#{$tooltip}__arrow--m-right--TranslateX)) translateY(var(--#{$tooltip}__arrow--m-right--TranslateY)) rotate(var(--#{$tooltip}__arrow--m-right--Rotate));
76
- }
75
+ &:is(
76
+ .pf-m-right,
77
+ .pf-m-right-top,
78
+ .pf-m-right-bottom
79
+ ) {
80
+ --#{$tooltip}__arrow--Top: var(--#{$tooltip}--m-right--Top, 50%);
81
+ --#{$tooltip}__arrow--Left: var(--#{$tooltip}--m-right--Left, 0);
82
+ --#{$tooltip}__arrow--TranslateX: var(--#{$tooltip}__arrow--m-right--TranslateX);
83
+ --#{$tooltip}__arrow--TranslateY: var(--#{$tooltip}__arrow--m-right--TranslateY);
84
+ --#{$tooltip}__arrow--Rotate: var(--#{$tooltip}__arrow--m-right--Rotate);
77
85
  }
78
86
 
79
- &.pf-m-left-top,
80
- &.pf-m-right-top {
81
- .#{$tooltip}__arrow {
82
- inset-block-start: var(--#{$tooltip}__arrow--Height);
83
- }
87
+ &:is(
88
+ .pf-m-left-top,
89
+ .pf-m-right-top
90
+ ) {
91
+ --#{$tooltip}__arrow--Top: 0;
92
+ --#{$tooltip}__arrow--TranslateY: var(--#{$tooltip}__arrow--m-top--TranslateY);
84
93
  }
85
94
 
86
- &.pf-m-left-bottom,
87
- &.pf-m-right-bottom {
88
- .#{$tooltip}__arrow {
89
- inset-block-start: auto;
90
- inset-block-end: 0;
91
- }
95
+ &:is(
96
+ .pf-m-left-bottom,
97
+ .pf-m-right-bottom
98
+ ) {
99
+ --#{$tooltip}__arrow--Top: auto;
100
+ --#{$tooltip}__arrow--Bottom: 0;
92
101
  }
93
102
 
94
- &.pf-m-top-left,
95
- &.pf-m-bottom-left {
96
- .#{$tooltip}__arrow {
97
- inset-inline-start: var(--#{$tooltip}__arrow--Width);
98
- }
103
+ &:is(
104
+ .pf-m-top-left,
105
+ .pf-m-bottom-left
106
+ ) {
107
+ --#{$tooltip}__arrow--Left: 0;
108
+ --#{$tooltip}__arrow--TranslateX: var(--#{$tooltip}__arrow--m-left--TranslateX);
99
109
  }
100
110
 
101
- &.pf-m-top-right,
102
- &.pf-m-bottom-right {
103
- .#{$tooltip}__arrow {
104
- inset-inline-start: auto;
105
- inset-inline-end: 0;
106
- }
111
+ &:is(
112
+ .pf-m-top-right,
113
+ .pf-m-bottom-right
114
+ ) {
115
+ --#{$tooltip}__arrow--Right: 0;
116
+ --#{$tooltip}__arrow--Left: auto;
107
117
  }
108
118
  }
109
119
 
@@ -126,11 +136,18 @@
126
136
 
127
137
  .#{$tooltip}__arrow {
128
138
  position: absolute;
139
+ /* stylelint-disable liberty/use-logical-spec */
140
+ top: var(--#{$tooltip}__arrow--Top, auto);
141
+ right: var(--#{$tooltip}__arrow--Right, auto);
142
+ bottom: var(--#{$tooltip}__arrow--Bottom, auto);
143
+ left: var(--#{$tooltip}__arrow--Left, auto);
144
+ /* stylelint-enable */
129
145
  width: var(--#{$tooltip}__arrow--Width);
130
146
  height: var(--#{$tooltip}__arrow--Height);
131
147
  pointer-events: none;
132
148
  background-color: var(--#{$tooltip}__arrow--BackgroundColor);
133
149
  box-shadow: var(--#{$tooltip}__arrow--BoxShadow);
150
+ transform: translateX(var(--#{$tooltip}__arrow--TranslateX, 0)) translateY(var(--#{$tooltip}__arrow--TranslateY, 0)) rotate(var(--#{$tooltip}__arrow--Rotate, 0));
134
151
  }
135
152
 
136
153
  // stylelint-disable no-invalid-position-at-import-rule
@@ -229,6 +229,9 @@
229
229
  transition: var(--pf-v5-c-tree-view__node-toggle-icon--Transition);
230
230
  transform: rotate(var(--pf-v5-c-tree-view__node-toggle-icon--Rotate));
231
231
  }
232
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-tree-view__node-toggle-icon {
233
+ scale: -1 1;
234
+ }
232
235
 
233
236
  .pf-v5-c-tree-view__list-item .pf-v5-c-tree-view__list-item {
234
237
  --pf-v5-c-tree-view__node-toggle-icon--Rotate: var(--pf-v5-c-tree-view__node-toggle-icon--base--Rotate);
@@ -318,6 +321,9 @@
318
321
  border: 0;
319
322
  transform: translateX(var(--pf-v5-c-tree-view__list-item__list-item__node-toggle--TranslateX));
320
323
  }
324
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-tree-view__node-toggle {
325
+ transform: translateX(calc(var(--pf-v5-c-tree-view__list-item__list-item__node-toggle--TranslateX) * var(--pf-v5-global--inverse--multiplier)));
326
+ }
321
327
 
322
328
  .pf-v5-c-tree-view__node-title.pf-m-truncate,
323
329
  .pf-v5-c-tree-view__node-text.pf-m-truncate {
@@ -332,6 +332,8 @@ $pf-v5-c-tree-view--MaxNesting: 10 !default;
332
332
  }
333
333
 
334
334
  .#{$tree-view}__node-toggle-icon {
335
+ @include pf-v5-mirror-inline-on-rtl;
336
+
335
337
  display: inline-block;
336
338
  min-width: var(--#{$tree-view}__node-toggle-icon--MinWidth);
337
339
  text-align: center;
@@ -429,8 +431,8 @@ $pf-v5-c-tree-view--MaxNesting: 10 !default;
429
431
 
430
432
  .#{$tree-view}__node-toggle {
431
433
  position: var(--#{$tree-view}__node-toggle--Position);
432
- inset-block-start: var(--#{$tree-view}__list-item__list-item__node-toggle--Top);
433
- inset-inline-start: var(--#{$tree-view}__list-item__list-item__node-toggle--Left);
434
+ inset-block-start: var(--#{$tree-view}__list-item__list-item__node-toggle--Top);
435
+ inset-inline-start: var(--#{$tree-view}__list-item__list-item__node-toggle--Left);
434
436
  display: inline-flex;
435
437
  align-items: center;
436
438
  justify-content: center;
@@ -443,7 +445,12 @@ $pf-v5-c-tree-view--MaxNesting: 10 !default;
443
445
  color: var(--#{$tree-view}__node-toggle--Color);
444
446
  background-color: var(--#{$tree-view}__node-toggle--BackgroundColor);
445
447
  border: 0;
446
- transform: translateX(var(--#{$tree-view}__list-item__list-item__node-toggle--TranslateX));
448
+
449
+ @include pf-v5-bidirectional-style(
450
+ $prop: transform,
451
+ $ltr-val: translateX(var(--#{$tree-view}__list-item__list-item__node-toggle--TranslateX)),
452
+ $rtl-val: translateX(#{pf-v5-calc-inverse(var(--#{$tree-view}__list-item__list-item__node-toggle--TranslateX))})
453
+ );
447
454
  }
448
455
 
449
456
  .#{$tree-view}__node-title,
@@ -21,14 +21,23 @@
21
21
  .pf-v5-c-truncate__end {
22
22
  direction: rtl;
23
23
  }
24
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-truncate__end {
25
+ direction: ltr;
26
+ }
24
27
 
25
28
  .pf-v5-c-truncate__start + .pf-v5-c-truncate__end {
26
29
  overflow: visible;
27
30
  direction: ltr;
28
31
  }
32
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-truncate__start + .pf-v5-c-truncate__end {
33
+ direction: rtl;
34
+ }
29
35
 
30
36
  @supports (-webkit-hyphens: none) {
31
37
  .pf-v5-c-truncate__end {
32
38
  direction: ltr;
33
39
  }
40
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-truncate__end {
41
+ direction: rtl;
42
+ }
34
43
  }
@@ -23,17 +23,30 @@
23
23
 
24
24
  // End
25
25
  .#{$truncate}__end {
26
- direction: rtl;
26
+ @include pf-v5-bidirectional-style (
27
+ $prop: direction,
28
+ $ltr-val: rtl,
29
+ $rtl-val: ltr
30
+ )
27
31
  }
28
32
 
29
33
  .#{$truncate}__start + .#{$truncate}__end {
30
34
  overflow: visible;
31
- direction: ltr;
35
+
36
+ @include pf-v5-bidirectional-style (
37
+ $prop: direction,
38
+ $ltr-val: ltr,
39
+ $rtl-val: rtl
40
+ )
32
41
  }
33
42
 
34
43
  // safari not supported
35
44
  @supports (-webkit-hyphens: none) {
36
45
  .#{$truncate}__end {
37
- direction: ltr;
46
+ @include pf-v5-bidirectional-style (
47
+ $prop: direction,
48
+ $ltr-val: ltr,
49
+ $rtl-val: rtl
50
+ )
38
51
  }
39
52
  }
@@ -303,6 +303,9 @@
303
303
  margin-inline-start: var(--pf-v5-c-wizard__toggle-separator--MarginLeft);
304
304
  color: var(--pf-v5-c-wizard__toggle-separator--Color);
305
305
  }
306
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-wizard__toggle-separator {
307
+ scale: -1 1;
308
+ }
306
309
 
307
310
  .pf-v5-c-wizard__toggle-icon {
308
311
  line-height: var(--pf-v5-c-wizard__toggle-icon--LineHeight);
@@ -407,6 +410,7 @@
407
410
  border: 0;
408
411
  }
409
412
  .pf-v5-c-wizard__toggle-num, .pf-v5-c-wizard__nav-link::before {
413
+ transform: translateX(var(--pf-v5-c-wizard__nav-link--before--TranslateX));
410
414
  position: absolute;
411
415
  inset-block-start: var(--pf-v5-c-wizard__nav-link--before--Top);
412
416
  inset-inline-start: 0;
@@ -420,7 +424,9 @@
420
424
  color: var(--pf-v5-c-wizard__nav-link--before--Color);
421
425
  background-color: var(--pf-v5-c-wizard__nav-link--before--BackgroundColor);
422
426
  border-radius: var(--pf-v5-c-wizard__nav-link--before--BorderRadius);
423
- transform: translateX(var(--pf-v5-c-wizard__nav-link--before--TranslateX));
427
+ }
428
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-wizard__toggle-num, .pf-v5-c-wizard__nav-link::before {
429
+ transform: translateX(calc(var(--pf-v5-c-wizard__nav-link--before--TranslateX) * var(--pf-v5-global--inverse--multiplier)));
424
430
  }
425
431
 
426
432
  .pf-v5-c-wizard__nav-link::before {
@@ -469,6 +475,9 @@
469
475
  transition: var(--pf-v5-c-wizard__nav-link-toggle-icon--Transition);
470
476
  transform: rotate(var(--pf-v5-c-wizard__nav-link-toggle-icon--Rotate));
471
477
  }
478
+ :where(.pf-v5-m-dir-rtl, [dir=rtl]) .pf-v5-c-wizard__nav-link-toggle-icon {
479
+ scale: -1 1;
480
+ }
472
481
 
473
482
  .pf-v5-c-wizard__main {
474
483
  z-index: var(--pf-v5-c-wizard__main--ZIndex);
@@ -335,6 +335,8 @@
335
335
  }
336
336
 
337
337
  .#{$wizard}__toggle-separator {
338
+ @include pf-v5-mirror-inline-on-rtl;
339
+
338
340
  margin-inline-start: var(--#{$wizard}__toggle-separator--MarginLeft);
339
341
  color: var(--#{$wizard}__toggle-separator--Color);
340
342
  }
@@ -459,9 +461,15 @@
459
461
  // Common step number styles
460
462
  @at-root .#{$wizard}__toggle-num,
461
463
  &::before {
464
+ @include pf-v5-bidirectional-style(
465
+ $prop: transform,
466
+ $ltr-val: translateX(var(--#{$wizard}__nav-link--before--TranslateX)),
467
+ $rtl-val: translateX(#{pf-v5-calc-inverse(var(--#{$wizard}__nav-link--before--TranslateX))})
468
+ );
469
+
462
470
  position: absolute;
463
- inset-block-start: var(--#{$wizard}__nav-link--before--Top);
464
- inset-inline-start: 0;
471
+ inset-block-start: var(--#{$wizard}__nav-link--before--Top);
472
+ inset-inline-start: 0;
465
473
  display: inline-flex;
466
474
  align-items: center;
467
475
  justify-content: center;
@@ -472,7 +480,6 @@
472
480
  color: var(--#{$wizard}__nav-link--before--Color);
473
481
  background-color: var(--#{$wizard}__nav-link--before--BackgroundColor);
474
482
  border-radius: var(--#{$wizard}__nav-link--before--BorderRadius);
475
- transform: translateX(var(--#{$wizard}__nav-link--before--TranslateX));
476
483
  }
477
484
 
478
485
  // Nav step number
@@ -528,6 +535,8 @@
528
535
  }
529
536
 
530
537
  .#{$wizard}__nav-link-toggle-icon {
538
+ @include pf-v5-mirror-inline-on-rtl;
539
+
531
540
  display: inline-block;
532
541
  transition: var(--#{$wizard}__nav-link-toggle-icon--Transition);
533
542
  transform: rotate(var(--#{$wizard}__nav-link-toggle-icon--Rotate));
@@ -50,10 +50,20 @@ cssPrefix: pf-v5-c-button
50
50
  <button class="pf-v5-c-button pf-m-inline pf-m-link" type="button">Inline link</button>
51
51
  <br />
52
52
  <br />
53
+ <span>Default plain button:</span>
53
54
  <button class="pf-v5-c-button pf-m-plain" type="button" aria-label="Remove">
54
55
  <i class="fas fa-times" aria-hidden="true"></i>
55
56
  </button>
56
57
  <br />
58
+ <span>No padding plain button:</span>
59
+ <button
60
+ class="pf-v5-c-button pf-m-plain pf-m-no-padding"
61
+ type="button"
62
+ aria-label="Remove"
63
+ >
64
+ <i class="fas fa-times" aria-hidden="true"></i>
65
+ </button>
66
+ <br />
57
67
  <br />
58
68
  <button class="pf-v5-c-button pf-m-control" type="button">Control</button>
59
69
 
@@ -65,10 +75,11 @@ cssPrefix: pf-v5-c-button
65
75
  <i class="fas fa-copy" aria-hidden="true"></i>
66
76
  </button>
67
77
 
68
- <br />
69
- <br />
70
- <br />
78
+ ```
79
+
80
+ ### Small buttons
71
81
 
82
+ ```html
72
83
  <button class="pf-v5-c-button pf-m-primary pf-m-small" type="button">Primary</button>
73
84
 
74
85
  <button class="pf-v5-c-button pf-m-secondary pf-m-small" type="button">Secondary</button>
@@ -533,6 +544,7 @@ Semantic buttons and links are important for usability as well as accessibility.
533
544
  | `.pf-m-warning` | `.pf-v5-c-button` | Modifies for warning styles. |
534
545
  | `.pf-m-link` | `.pf-v5-c-button` | Modifies for link styles. This button has no background or border and is styled as a link. This button would commonly appear in a form and may include an icon. |
535
546
  | `.pf-m-plain` | `.pf-v5-c-button` | Modifies for icon styles. This button has no background or border, uses a standard text color, and is used for `.pf-m-plain` icon buttons such as close, expand, kebab, etc. |
547
+ | `.pf-m-no-padding` | `.pf-v5-c-button.pf-m-plain` | Modifies a plain button to remove padding. This modifier should only be used when the button is inline within a sentence or block of text. Adjacent plain buttons without padding should always have spacing between them. |
536
548
  | `.pf-m-inline` | `.pf-v5-c-button.pf-m-link` | Modifies for inline styles. This button is presented similar to a normal link and has no padding and is displayed inline with other inline content. When used as a `<span>`, the text will flow inline with text around it. |
537
549
  | `.pf-m-block` | `.pf-v5-c-button` | Creates a block level button. |
538
550
  | `.pf-m-control` | `.pf-v5-c-button` | Modifies for control styles. **Note:** This modifier should only be used when using buttons in the Input Group or Clipboard Copy components. |
@@ -510,7 +510,7 @@ cssPrefix: pf-v5-c-card
510
510
 
511
511
  ```
512
512
 
513
- ### Single Selectable
513
+ ### Single selectable
514
514
 
515
515
  ```html
516
516
  <div class="pf-v5-l-gallery pf-m-gutter">
@@ -748,7 +748,7 @@ cssPrefix: pf-v5-c-card
748
748
 
749
749
  ```
750
750
 
751
- ### Clickable and Selectable
751
+ ### Clickable and selectable
752
752
 
753
753
  ```html
754
754
  <div class="pf-v5-l-gallery pf-m-gutter">
@@ -828,7 +828,7 @@ The chip group requires the [chip component](#chip-overview). **All single chip
828
828
 
829
829
  | Attributes for closable chip group button | Applied to | Outcome |
830
830
  | -- | -- | -- |
831
- | `role="list"` | `.pf-v5-c-chip-group__list` | Indicates that the chip group list is a list element. This role is redundant since `.pf-v5-c-chip-group__list` is a `<ul>` but is required for screen readers to announce the list propertly. **Required** |
831
+ | `role="list"` | `.pf-v5-c-chip-group__list` | Indicates that the chip group list is a list element. This role is redundant since `.pf-v5-c-chip-group__list` is a `<ul>` but is required for screen readers to announce the list properly. **Required** |
832
832
  | `aria-label="[button label text]"` | `.pf-v5-c-chip-group__close > button` | Provides an accessible name for a chip group close when an icon is used instead of text. Required when an icon is used with no supporting text. **Required** |
833
833
  | `aria-labelledby="[id value of .pf-v5-c-chip-group__close > button] [id value of .pf-v5-c-chip-group__label]"` | `.pf-v5-c-chip-group__close > button` | Provides an accessible name for the button. **Required** |
834
834