@patternfly/react-core 5.1.1-prerelease.18 → 5.1.1-prerelease.19

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 (132) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/components/package.json +1 -1
  3. package/deprecated/package.json +1 -1
  4. package/dist/dynamic/components/AboutModal/package.json +1 -1
  5. package/dist/dynamic/components/Accordion/package.json +1 -1
  6. package/dist/dynamic/components/ActionList/package.json +1 -1
  7. package/dist/dynamic/components/Alert/package.json +1 -1
  8. package/dist/dynamic/components/Avatar/package.json +1 -1
  9. package/dist/dynamic/components/BackToTop/package.json +1 -1
  10. package/dist/dynamic/components/Backdrop/package.json +1 -1
  11. package/dist/dynamic/components/BackgroundImage/package.json +1 -1
  12. package/dist/dynamic/components/Badge/package.json +1 -1
  13. package/dist/dynamic/components/Banner/package.json +1 -1
  14. package/dist/dynamic/components/Brand/package.json +1 -1
  15. package/dist/dynamic/components/Breadcrumb/package.json +1 -1
  16. package/dist/dynamic/components/Button/package.json +1 -1
  17. package/dist/dynamic/components/CalendarMonth/package.json +1 -1
  18. package/dist/dynamic/components/Card/package.json +1 -1
  19. package/dist/dynamic/components/Checkbox/package.json +1 -1
  20. package/dist/dynamic/components/Chip/package.json +1 -1
  21. package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
  22. package/dist/dynamic/components/CodeBlock/package.json +1 -1
  23. package/dist/dynamic/components/DataList/package.json +1 -1
  24. package/dist/dynamic/components/DatePicker/package.json +1 -1
  25. package/dist/dynamic/components/DescriptionList/package.json +1 -1
  26. package/dist/dynamic/components/Divider/package.json +1 -1
  27. package/dist/dynamic/components/DragDrop/package.json +1 -1
  28. package/dist/dynamic/components/Drawer/package.json +1 -1
  29. package/dist/dynamic/components/Dropdown/package.json +1 -1
  30. package/dist/dynamic/components/DualListSelector/package.json +1 -1
  31. package/dist/dynamic/components/EmptyState/package.json +1 -1
  32. package/dist/dynamic/components/ExpandableSection/package.json +1 -1
  33. package/dist/dynamic/components/FileUpload/package.json +1 -1
  34. package/dist/dynamic/components/Form/package.json +1 -1
  35. package/dist/dynamic/components/FormSelect/package.json +1 -1
  36. package/dist/dynamic/components/HelperText/package.json +1 -1
  37. package/dist/dynamic/components/Hint/package.json +1 -1
  38. package/dist/dynamic/components/Icon/package.json +1 -1
  39. package/dist/dynamic/components/InputGroup/package.json +1 -1
  40. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  41. package/dist/dynamic/components/Label/package.json +1 -1
  42. package/dist/dynamic/components/List/package.json +1 -1
  43. package/dist/dynamic/components/LoginPage/package.json +1 -1
  44. package/dist/dynamic/components/Masthead/package.json +1 -1
  45. package/dist/dynamic/components/Menu/package.json +1 -1
  46. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  47. package/dist/dynamic/components/Modal/package.json +1 -1
  48. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  49. package/dist/dynamic/components/Nav/package.json +1 -1
  50. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  51. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  52. package/dist/dynamic/components/NumberInput/package.json +1 -1
  53. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  54. package/dist/dynamic/components/Page/package.json +1 -1
  55. package/dist/dynamic/components/Pagination/package.json +1 -1
  56. package/dist/dynamic/components/Panel/package.json +1 -1
  57. package/dist/dynamic/components/Popover/package.json +1 -1
  58. package/dist/dynamic/components/Progress/package.json +1 -1
  59. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  60. package/dist/dynamic/components/Radio/package.json +1 -1
  61. package/dist/dynamic/components/SearchInput/package.json +1 -1
  62. package/dist/dynamic/components/Select/package.json +1 -1
  63. package/dist/dynamic/components/Sidebar/package.json +1 -1
  64. package/dist/dynamic/components/SimpleList/package.json +1 -1
  65. package/dist/dynamic/components/Skeleton/package.json +1 -1
  66. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  67. package/dist/dynamic/components/Slider/package.json +1 -1
  68. package/dist/dynamic/components/Spinner/package.json +1 -1
  69. package/dist/dynamic/components/Switch/package.json +1 -1
  70. package/dist/dynamic/components/Tabs/package.json +1 -1
  71. package/dist/dynamic/components/Text/package.json +1 -1
  72. package/dist/dynamic/components/TextArea/package.json +1 -1
  73. package/dist/dynamic/components/TextInput/package.json +1 -1
  74. package/dist/dynamic/components/TextInputGroup/package.json +1 -1
  75. package/dist/dynamic/components/Tile/package.json +1 -1
  76. package/dist/dynamic/components/TimePicker/package.json +1 -1
  77. package/dist/dynamic/components/Timestamp/package.json +1 -1
  78. package/dist/dynamic/components/Title/package.json +1 -1
  79. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  80. package/dist/dynamic/components/Toolbar/package.json +1 -1
  81. package/dist/dynamic/components/Tooltip/package.json +1 -1
  82. package/dist/dynamic/components/TreeView/package.json +1 -1
  83. package/dist/dynamic/components/Truncate/package.json +1 -1
  84. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  85. package/dist/dynamic/components/Wizard/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/ApplicationLauncher/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/ContextSelector/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Dropdown/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/OptionsMenu/package.json +1 -1
  90. package/dist/dynamic/deprecated/components/PageHeader/package.json +1 -1
  91. package/dist/dynamic/deprecated/components/Select/package.json +1 -1
  92. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  93. package/dist/dynamic/deprecated/components/package.json +1 -1
  94. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
  95. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
  96. package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
  97. package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
  98. package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
  99. package/dist/dynamic/helpers/constants/package.json +1 -1
  100. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  101. package/dist/dynamic/helpers/favorites/package.json +1 -1
  102. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  103. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  104. package/dist/dynamic/helpers/package.json +1 -1
  105. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  106. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  107. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  108. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  109. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  110. package/dist/dynamic/helpers/util/package.json +1 -1
  111. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  112. package/dist/dynamic/layouts/Flex/package.json +1 -1
  113. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  114. package/dist/dynamic/layouts/Grid/package.json +1 -1
  115. package/dist/dynamic/layouts/Level/package.json +1 -1
  116. package/dist/dynamic/layouts/Split/package.json +1 -1
  117. package/dist/dynamic/layouts/Stack/package.json +1 -1
  118. package/dist/dynamic/next/components/package.json +1 -1
  119. package/dist/esm/components/Tabs/Tabs.d.ts +11 -6
  120. package/dist/esm/components/Tabs/Tabs.d.ts.map +1 -1
  121. package/dist/esm/components/Tabs/Tabs.js +35 -16
  122. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  123. package/dist/js/components/Tabs/Tabs.d.ts +11 -6
  124. package/dist/js/components/Tabs/Tabs.d.ts.map +1 -1
  125. package/dist/js/components/Tabs/Tabs.js +35 -16
  126. package/dist/js/components/Tabs/Tabs.js.map +1 -1
  127. package/dist/umd/react-core.min.js +3 -3
  128. package/helpers/package.json +1 -1
  129. package/layouts/package.json +1 -1
  130. package/next/package.json +1 -1
  131. package/package.json +6 -6
  132. package/src/components/Tabs/Tabs.tsx +50 -26
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"5.1.1-prerelease.17","private":true}
1
+ {"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"5.1.1-prerelease.18","private":true}
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"5.1.1-prerelease.17","private":true}
1
+ {"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"5.1.1-prerelease.18","private":true}
package/next/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"5.1.1-prerelease.17","private":true}
1
+ {"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"5.1.1-prerelease.18","private":true}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "5.1.1-prerelease.18",
3
+ "version": "5.1.1-prerelease.19",
4
4
  "description": "This library provides a set of common React components for use with the PatternFly reference implementation.",
5
5
  "main": "dist/js/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -45,15 +45,15 @@
45
45
  "subpaths": "node ../../scripts/exportSubpaths.js --config subpaths.config.json"
46
46
  },
47
47
  "dependencies": {
48
- "@patternfly/react-icons": "^5.1.1-prerelease.6",
49
- "@patternfly/react-styles": "^5.1.1-prerelease.6",
50
- "@patternfly/react-tokens": "^5.1.1-prerelease.6",
48
+ "@patternfly/react-icons": "^5.1.1-prerelease.7",
49
+ "@patternfly/react-styles": "^5.1.1-prerelease.7",
50
+ "@patternfly/react-tokens": "^5.1.1-prerelease.7",
51
51
  "focus-trap": "7.5.2",
52
52
  "react-dropzone": "^14.2.3",
53
53
  "tslib": "^2.5.0"
54
54
  },
55
55
  "devDependencies": {
56
- "@patternfly/patternfly": "5.1.0-prerelease.28",
56
+ "@patternfly/patternfly": "5.1.0-prerelease.32",
57
57
  "@rollup/plugin-commonjs": "^25.0.0",
58
58
  "@rollup/plugin-node-resolve": "^15.0.2",
59
59
  "@rollup/plugin-replace": "^5.0.2",
@@ -70,5 +70,5 @@
70
70
  "react": "^17 || ^18",
71
71
  "react-dom": "^17 || ^18"
72
72
  },
73
- "gitHead": "2fa883df95ae47f12e4d5f90b6e184cbeca868a7"
73
+ "gitHead": "262e474df57437fead3a7c4e995a96c68eb8f9ef"
74
74
  }
@@ -63,10 +63,14 @@ export interface TabsProps extends Omit<React.HTMLProps<HTMLElement | HTMLDivEle
63
63
  isVertical?: boolean;
64
64
  /** Disables border bottom tab styling on tabs. Defaults to false. To remove the bottom border, set this prop to true. */
65
65
  hasNoBorderBottom?: boolean;
66
- /** Aria-label for the left scroll button */
66
+ /** @deprecated Please use backScrollAriaLabel. Aria-label for the left scroll button */
67
67
  leftScrollAriaLabel?: string;
68
- /** Aria-label for the right scroll button */
68
+ /** @deprecated Please use forwardScrollAriaLabel. Aria-label for the right scroll button */
69
69
  rightScrollAriaLabel?: string;
70
+ /** Aria-label for the back scroll button */
71
+ backScrollAriaLabel?: string;
72
+ /** Aria-label for the forward scroll button */
73
+ forwardScrollAriaLabel?: string;
70
74
  /** Determines what tag is used around the tabs. Use "nav" to define the tabs inside a navigation region */
71
75
  component?: 'div' | 'nav';
72
76
  /** Provides an accessible label for the tabs. Labels should be unique for each set of tabs that are present on a page. When component is set to nav, this prop should be defined to differentiate the tabs from other navigation regions on the page. */
@@ -127,8 +131,8 @@ interface TabsState {
127
131
  * shown and rendering must be stopped after they stop being shown to preserve CSS transitions.
128
132
  */
129
133
  renderScrollButtons: boolean;
130
- disableLeftScrollButton: boolean;
131
- disableRightScrollButton: boolean;
134
+ disableBackScrollButton: boolean;
135
+ disableForwardScrollButton: boolean;
132
136
  shownKeys: (string | number)[];
133
137
  uncontrolledActiveKey: number | string;
134
138
  uncontrolledIsExpandedLocal: boolean;
@@ -140,14 +144,15 @@ class Tabs extends React.Component<TabsProps, TabsState> {
140
144
  static displayName = 'Tabs';
141
145
  tabList = React.createRef<HTMLUListElement>();
142
146
  leftScrollButtonRef = React.createRef<HTMLButtonElement>();
147
+ private direction = 'ltr';
143
148
  constructor(props: TabsProps) {
144
149
  super(props);
145
150
  this.state = {
146
151
  enableScrollButtons: false,
147
152
  showScrollButtons: false,
148
153
  renderScrollButtons: false,
149
- disableLeftScrollButton: true,
150
- disableRightScrollButton: true,
154
+ disableBackScrollButton: true,
155
+ disableForwardScrollButton: true,
151
156
  shownKeys: this.props.defaultActiveKey !== undefined ? [this.props.defaultActiveKey] : [this.props.activeKey], // only for mountOnEnter case
152
157
  uncontrolledActiveKey: this.props.defaultActiveKey,
153
158
  uncontrolledIsExpandedLocal: this.props.defaultIsExpanded,
@@ -177,7 +182,9 @@ class Tabs extends React.Component<TabsProps, TabsState> {
177
182
  isBox: false,
178
183
  hasNoBorderBottom: false,
179
184
  leftScrollAriaLabel: 'Scroll left',
185
+ backScrollAriaLabel: 'Scroll back',
180
186
  rightScrollAriaLabel: 'Scroll right',
187
+ forwardScrollAriaLabel: 'Scroll forward',
181
188
  component: TabsComponent.div,
182
189
  mountOnEnter: false,
183
190
  unmountOnExit: false,
@@ -232,8 +239,8 @@ class Tabs extends React.Component<TabsProps, TabsState> {
232
239
  clearTimeout(this.scrollTimeout);
233
240
  this.scrollTimeout = setTimeout(() => {
234
241
  const container = this.tabList.current;
235
- let disableLeftScrollButton = true;
236
- let disableRightScrollButton = true;
242
+ let disableBackScrollButton = true;
243
+ let disableForwardScrollButton = true;
237
244
  let enableScrollButtons = false;
238
245
  let overflowingTabCount = 0;
239
246
 
@@ -246,8 +253,8 @@ class Tabs extends React.Component<TabsProps, TabsState> {
246
253
 
247
254
  enableScrollButtons = overflowOnLeft || overflowOnRight;
248
255
 
249
- disableLeftScrollButton = !overflowOnLeft;
250
- disableRightScrollButton = !overflowOnRight;
256
+ disableBackScrollButton = !overflowOnLeft;
257
+ disableForwardScrollButton = !overflowOnRight;
251
258
  }
252
259
 
253
260
  if (isOverflowHorizontal) {
@@ -256,14 +263,14 @@ class Tabs extends React.Component<TabsProps, TabsState> {
256
263
 
257
264
  this.setState({
258
265
  enableScrollButtons,
259
- disableLeftScrollButton,
260
- disableRightScrollButton,
266
+ disableBackScrollButton,
267
+ disableForwardScrollButton,
261
268
  overflowingTabCount
262
269
  });
263
270
  }, 100);
264
271
  };
265
272
 
266
- scrollLeft = () => {
273
+ scrollBack = () => {
267
274
  // find first Element that is fully in view on the left, then scroll to the element before it
268
275
  if (this.tabList.current) {
269
276
  const container = this.tabList.current;
@@ -278,12 +285,18 @@ class Tabs extends React.Component<TabsProps, TabsState> {
278
285
  }
279
286
  }
280
287
  if (lastElementOutOfView) {
281
- container.scrollLeft -= lastElementOutOfView.scrollWidth;
288
+ if (this.direction === 'ltr') {
289
+ // LTR scrolls left to go back
290
+ container.scrollLeft -= lastElementOutOfView.scrollWidth;
291
+ } else {
292
+ // RTL scrolls right to go back
293
+ container.scrollLeft += lastElementOutOfView.scrollWidth;
294
+ }
282
295
  }
283
296
  }
284
297
  };
285
298
 
286
- scrollRight = () => {
299
+ scrollForward = () => {
287
300
  // find last Element that is fully in view on the right, then scroll to the element after it
288
301
  if (this.tabList.current) {
289
302
  const container = this.tabList.current as any;
@@ -297,7 +310,13 @@ class Tabs extends React.Component<TabsProps, TabsState> {
297
310
  }
298
311
  }
299
312
  if (firstElementOutOfView) {
300
- container.scrollLeft += firstElementOutOfView.scrollWidth;
313
+ if (this.direction === 'ltr') {
314
+ // LTR scrolls right to go forward
315
+ container.scrollLeft += firstElementOutOfView.scrollWidth;
316
+ } else {
317
+ // RTL scrolls left to go forward
318
+ container.scrollLeft -= firstElementOutOfView.scrollWidth;
319
+ }
301
320
  }
302
321
  }
303
322
  };
@@ -314,6 +333,7 @@ class Tabs extends React.Component<TabsProps, TabsState> {
314
333
  if (canUseDOM) {
315
334
  window.addEventListener('resize', this.handleScrollButtons, false);
316
335
  }
336
+ this.direction = getComputedStyle(this.tabList.current).getPropertyValue('direction');
317
337
  // call the handle resize function to check if scroll buttons should be shown
318
338
  this.handleScrollButtons();
319
339
  }
@@ -360,6 +380,8 @@ class Tabs extends React.Component<TabsProps, TabsState> {
360
380
  } else if (prevState.enableScrollButtons && !enableScrollButtons) {
361
381
  this.setState({ showScrollButtons: false });
362
382
  }
383
+
384
+ this.direction = getComputedStyle(this.tabList.current).getPropertyValue('direction');
363
385
  }
364
386
 
365
387
  render() {
@@ -376,6 +398,8 @@ class Tabs extends React.Component<TabsProps, TabsState> {
376
398
  hasNoBorderBottom,
377
399
  leftScrollAriaLabel,
378
400
  rightScrollAriaLabel,
401
+ backScrollAriaLabel,
402
+ forwardScrollAriaLabel,
379
403
  'aria-label': ariaLabel,
380
404
  component,
381
405
  ouiaId,
@@ -400,8 +424,8 @@ class Tabs extends React.Component<TabsProps, TabsState> {
400
424
  const {
401
425
  showScrollButtons,
402
426
  renderScrollButtons,
403
- disableLeftScrollButton,
404
- disableRightScrollButton,
427
+ disableBackScrollButton,
428
+ disableForwardScrollButton,
405
429
  shownKeys,
406
430
  uncontrolledActiveKey,
407
431
  uncontrolledIsExpandedLocal,
@@ -497,10 +521,10 @@ class Tabs extends React.Component<TabsProps, TabsState> {
497
521
  <button
498
522
  type="button"
499
523
  className={css(styles.tabsScrollButton, isSecondary && buttonStyles.modifiers.secondary)}
500
- aria-label={leftScrollAriaLabel}
501
- onClick={this.scrollLeft}
502
- disabled={disableLeftScrollButton}
503
- aria-hidden={disableLeftScrollButton}
524
+ aria-label={backScrollAriaLabel || leftScrollAriaLabel}
525
+ onClick={this.scrollBack}
526
+ disabled={disableBackScrollButton}
527
+ aria-hidden={disableBackScrollButton}
504
528
  ref={this.leftScrollButtonRef}
505
529
  >
506
530
  <AngleLeftIcon />
@@ -514,10 +538,10 @@ class Tabs extends React.Component<TabsProps, TabsState> {
514
538
  <button
515
539
  type="button"
516
540
  className={css(styles.tabsScrollButton, isSecondary && buttonStyles.modifiers.secondary)}
517
- aria-label={rightScrollAriaLabel}
518
- onClick={this.scrollRight}
519
- disabled={disableRightScrollButton}
520
- aria-hidden={disableRightScrollButton}
541
+ aria-label={forwardScrollAriaLabel || rightScrollAriaLabel}
542
+ onClick={this.scrollForward}
543
+ disabled={disableForwardScrollButton}
544
+ aria-hidden={disableForwardScrollButton}
521
545
  >
522
546
  <AngleRightIcon />
523
547
  </button>