@patternfly/react-core 6.5.0-prerelease.60 → 6.5.0-prerelease.61

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 (141) 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/ClipboardCopy/package.json +1 -1
  21. package/dist/dynamic/components/CodeBlock/package.json +1 -1
  22. package/dist/dynamic/components/Compass/package.json +1 -1
  23. package/dist/dynamic/components/Content/package.json +1 -1
  24. package/dist/dynamic/components/DataList/package.json +1 -1
  25. package/dist/dynamic/components/DatePicker/package.json +1 -1
  26. package/dist/dynamic/components/DescriptionList/package.json +1 -1
  27. package/dist/dynamic/components/Divider/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/Hero/package.json +1 -1
  38. package/dist/dynamic/components/Hint/package.json +1 -1
  39. package/dist/dynamic/components/Icon/package.json +1 -1
  40. package/dist/dynamic/components/InputGroup/package.json +1 -1
  41. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  42. package/dist/dynamic/components/Label/package.json +1 -1
  43. package/dist/dynamic/components/List/package.json +1 -1
  44. package/dist/dynamic/components/LoginPage/package.json +1 -1
  45. package/dist/dynamic/components/Masthead/package.json +1 -1
  46. package/dist/dynamic/components/Menu/package.json +1 -1
  47. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  48. package/dist/dynamic/components/Modal/package.json +1 -1
  49. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  50. package/dist/dynamic/components/Nav/package.json +1 -1
  51. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  52. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  53. package/dist/dynamic/components/NumberInput/package.json +1 -1
  54. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  55. package/dist/dynamic/components/Page/package.json +1 -1
  56. package/dist/dynamic/components/Pagination/package.json +1 -1
  57. package/dist/dynamic/components/Panel/package.json +1 -1
  58. package/dist/dynamic/components/Popover/package.json +1 -1
  59. package/dist/dynamic/components/Progress/package.json +1 -1
  60. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  61. package/dist/dynamic/components/Radio/package.json +1 -1
  62. package/dist/dynamic/components/SearchInput/package.json +1 -1
  63. package/dist/dynamic/components/Select/package.json +1 -1
  64. package/dist/dynamic/components/Sidebar/package.json +1 -1
  65. package/dist/dynamic/components/SimpleList/package.json +1 -1
  66. package/dist/dynamic/components/Skeleton/package.json +1 -1
  67. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  68. package/dist/dynamic/components/Slider/package.json +1 -1
  69. package/dist/dynamic/components/Spinner/package.json +1 -1
  70. package/dist/dynamic/components/Switch/package.json +1 -1
  71. package/dist/dynamic/components/Tabs/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/TimePicker/package.json +1 -1
  76. package/dist/dynamic/components/Timestamp/package.json +1 -1
  77. package/dist/dynamic/components/Title/package.json +1 -1
  78. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  79. package/dist/dynamic/components/Toolbar/package.json +1 -1
  80. package/dist/dynamic/components/Tooltip/package.json +1 -1
  81. package/dist/dynamic/components/TreeView/package.json +1 -1
  82. package/dist/dynamic/components/Truncate/package.json +1 -1
  83. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  84. package/dist/dynamic/components/Wizard/package.json +1 -1
  85. package/dist/dynamic/deprecated/components/Chip/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Modal/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/Tile/package.json +1 -1
  90. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  91. package/dist/dynamic/deprecated/components/package.json +1 -1
  92. package/dist/dynamic/helpers/AnimationsProvider/AnimationsProvider/package.json +1 -1
  93. package/dist/dynamic/helpers/AnimationsProvider/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/SSRSafeIds/SSRSafeIds/package.json +1 -1
  100. package/dist/dynamic/helpers/constants/package.json +1 -1
  101. package/dist/dynamic/helpers/datetimeUtils/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/useSSRSafeId/package.json +1 -1
  110. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  111. package/dist/dynamic/helpers/util/package.json +1 -1
  112. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  113. package/dist/dynamic/layouts/Flex/package.json +1 -1
  114. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  115. package/dist/dynamic/layouts/Grid/package.json +1 -1
  116. package/dist/dynamic/layouts/Level/package.json +1 -1
  117. package/dist/dynamic/layouts/Split/package.json +1 -1
  118. package/dist/dynamic/layouts/Stack/package.json +1 -1
  119. package/dist/dynamic/styles/package.json +1 -1
  120. package/dist/esm/components/ToggleGroup/ToggleGroup.d.ts +2 -0
  121. package/dist/esm/components/ToggleGroup/ToggleGroup.d.ts.map +1 -1
  122. package/dist/esm/components/ToggleGroup/ToggleGroup.js +2 -2
  123. package/dist/esm/components/ToggleGroup/ToggleGroup.js.map +1 -1
  124. package/dist/js/components/ToggleGroup/ToggleGroup.d.ts +2 -0
  125. package/dist/js/components/ToggleGroup/ToggleGroup.d.ts.map +1 -1
  126. package/dist/js/components/ToggleGroup/ToggleGroup.js +2 -2
  127. package/dist/js/components/ToggleGroup/ToggleGroup.js.map +1 -1
  128. package/dist/styles/assets/images/Felt-Bkg-Generic-Dark.svg +82 -0
  129. package/dist/styles/assets/images/Felt-Bkg-Generic-Light.svg +82 -0
  130. package/dist/styles/assets/images/PF-Bkg-Generic-Dark.svg +76 -0
  131. package/dist/styles/assets/images/PF-Bkg-Generic-Light.svg +74 -0
  132. package/dist/umd/assets/{output-Bdv1bhxb.css → output-BFFKwYEy.css} +18950 -18893
  133. package/dist/umd/react-core.min.js +1 -1
  134. package/helpers/package.json +1 -1
  135. package/layouts/package.json +1 -1
  136. package/next/package.json +1 -1
  137. package/package.json +6 -6
  138. package/src/components/ToggleGroup/ToggleGroup.tsx +9 -1
  139. package/src/components/ToggleGroup/__tests__/ToggleGroup.test.tsx +23 -0
  140. package/src/components/ToggleGroup/examples/ToggleGroup.md +15 -1
  141. package/src/components/ToggleGroup/examples/ToggleGroupFill.tsx +92 -0
@@ -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":"6.5.0-prerelease.59","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":"6.5.0-prerelease.60","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":"6.5.0-prerelease.59","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":"6.5.0-prerelease.60","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":"6.5.0-prerelease.59","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":"6.5.0-prerelease.60","private":true}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "6.5.0-prerelease.60",
3
+ "version": "6.5.0-prerelease.61",
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",
@@ -46,15 +46,15 @@
46
46
  "subpaths": "node ../../scripts/exportSubpaths.mjs --config subpaths.config.json"
47
47
  },
48
48
  "dependencies": {
49
- "@patternfly/react-icons": "^6.5.0-prerelease.25",
50
- "@patternfly/react-styles": "^6.5.0-prerelease.19",
51
- "@patternfly/react-tokens": "^6.5.0-prerelease.18",
49
+ "@patternfly/react-icons": "^6.5.0-prerelease.26",
50
+ "@patternfly/react-styles": "^6.5.0-prerelease.20",
51
+ "@patternfly/react-tokens": "^6.5.0-prerelease.19",
52
52
  "focus-trap": "7.6.6",
53
53
  "react-dropzone": "^14.3.5",
54
54
  "tslib": "^2.8.1"
55
55
  },
56
56
  "devDependencies": {
57
- "@patternfly/patternfly": "6.5.0-prerelease.72",
57
+ "@patternfly/patternfly": "6.5.0-prerelease.75",
58
58
  "case-anything": "^3.1.2",
59
59
  "css": "^3.0.0",
60
60
  "fs-extra": "^11.3.3"
@@ -63,5 +63,5 @@
63
63
  "react": "^17 || ^18 || ^19",
64
64
  "react-dom": "^17 || ^18 || ^19"
65
65
  },
66
- "gitHead": "30db3d99f05b39b6478ed7ed48baeb29bfb895cd"
66
+ "gitHead": "69b6225ca40cfbb583516375a59b95c9590a2592"
67
67
  }
@@ -10,6 +10,8 @@ export interface ToggleGroupProps extends React.HTMLProps<HTMLDivElement> {
10
10
  className?: string;
11
11
  /** Modifies the toggle group to include compact styling. */
12
12
  isCompact?: boolean;
13
+ /** Modifies the toggle group items to fill the available space. */
14
+ isFill?: boolean;
13
15
  /** Disable all toggle group items under this component. */
14
16
  areAllGroupsDisabled?: boolean;
15
17
  /** Accessible label for the toggle group */
@@ -20,6 +22,7 @@ export const ToggleGroup: React.FunctionComponent<ToggleGroupProps> = ({
20
22
  className,
21
23
  children,
22
24
  isCompact = false,
25
+ isFill = false,
23
26
  areAllGroupsDisabled = false,
24
27
  'aria-label': ariaLabel,
25
28
  ...props
@@ -32,7 +35,12 @@ export const ToggleGroup: React.FunctionComponent<ToggleGroupProps> = ({
32
35
 
33
36
  return (
34
37
  <div
35
- className={css(styles.toggleGroup, isCompact && styles.modifiers.compact, className)}
38
+ className={css(
39
+ styles.toggleGroup,
40
+ isCompact && styles.modifiers.compact,
41
+ isFill && styles.modifiers.fill,
42
+ className
43
+ )}
36
44
  role="group"
37
45
  aria-label={ariaLabel}
38
46
  {...props}
@@ -3,6 +3,7 @@ import userEvent from '@testing-library/user-event';
3
3
 
4
4
  import { ToggleGroup } from '../ToggleGroup';
5
5
  import { ToggleGroupItem } from '../ToggleGroupItem';
6
+ import styles from '@patternfly/react-styles/css/components/ToggleGroup/toggle-group';
6
7
 
7
8
  const props = {
8
9
  onChange: jest.fn(),
@@ -59,6 +60,28 @@ describe('ToggleGroup', () => {
59
60
  expect(asFragment()).toMatchSnapshot();
60
61
  });
61
62
 
63
+ test(`does not apply ${styles.modifiers.fill} modifier class by default`, () => {
64
+ render(
65
+ <ToggleGroup aria-label="Default toggle group">
66
+ <ToggleGroupItem text="Test" />
67
+ <ToggleGroupItem text="Test" />
68
+ </ToggleGroup>
69
+ );
70
+ const toggleGroup = screen.getByRole('group');
71
+ expect(toggleGroup).not.toHaveClass(styles.modifiers.fill);
72
+ });
73
+
74
+ test(`applies ${styles.modifiers.fill} modifier class when isFill is true`, () => {
75
+ render(
76
+ <ToggleGroup isFill aria-label="Fill toggle group">
77
+ <ToggleGroupItem text="Test" />
78
+ <ToggleGroupItem text="Test" />
79
+ </ToggleGroup>
80
+ );
81
+ const toggleGroup = screen.getByRole('group');
82
+ expect(toggleGroup).toHaveClass(styles.modifiers.fill);
83
+ });
84
+
62
85
  test('should render non-ToggleGroupItem children', () => {
63
86
  const { asFragment } = render(
64
87
  <ToggleGroup isCompact aria-label="non-element children">
@@ -4,6 +4,7 @@ section: components
4
4
  cssPrefix: pf-v6-c-toggle-group
5
5
  propComponents: ['ToggleGroup', 'ToggleGroupItem']
6
6
  ---
7
+
7
8
  import './toggleGroup.css';
8
9
 
9
10
  import { useRef, useState } from 'react';
@@ -21,6 +22,7 @@ A single select toggle group allows users to toggle between multiple items.
21
22
  To indicate whether a `<ToggleGroupItem>` is selected or not, use the `isSelected` property.
22
23
 
23
24
  ```ts file="./ToggleGroupDefaultSingle.tsx"
25
+
24
26
  ```
25
27
 
26
28
  ### Multi select toggle group
@@ -30,6 +32,7 @@ A multi select toggle group allows users to select multiple items at once.
30
32
  When a toggle item is disabled it cannot be selected. Click the "Disable all" button in the following example to see this in action.
31
33
 
32
34
  ```ts file="./ToggleGroupDefaultMultiple.tsx"
35
+
33
36
  ```
34
37
 
35
38
  ### With icons
@@ -39,6 +42,7 @@ You can use a recognizable icon as a toggle item label.
39
42
  To do this, pass an imported icon to the `icon` property of a `<ToggleGroupItem>`.
40
43
 
41
44
  ```ts file="./ToggleGroupIcon.tsx"
45
+
42
46
  ```
43
47
 
44
48
  ### With text and icons
@@ -50,13 +54,23 @@ To do this, pass a descriptive label to the `text` property of a `<ToggleGroupIt
50
54
  When passing both `text` and `icon` properties to a `<ToggleGroupItem>`, you can also pass in `iconPosition` to determine whether the icon is rendered at the start or end of the item.
51
55
 
52
56
  ```ts file="./ToggleGroupTextIcon.tsx"
57
+
53
58
  ```
54
59
 
55
60
  ### Compact toggle group
56
61
 
57
- When space in a UI is limited, you can use a compact toggle group.
62
+ When space in a UI is limited, you can use a compact toggle group.
58
63
 
59
64
  To apply compact styling to a `<ToggleGroup>`, use `isCompact`.
60
65
 
61
66
  ```ts file="./ToggleGroupCompact.tsx"
67
+
68
+ ```
69
+
70
+ ### Full-width toggle group
71
+
72
+ To make toggle group items fill the available horizontal space, use `isFill` on a `<ToggleGroup>`. The following example shows full-width toggle groups for a single-select, multi-select, and single-select with disabled item.
73
+
74
+ ```ts file="./ToggleGroupFill.tsx"
75
+
62
76
  ```
@@ -0,0 +1,92 @@
1
+ import { useState } from 'react';
2
+ import { ToggleGroup, ToggleGroupItem } from '@patternfly/react-core';
3
+
4
+ export const ToggleGroupFill: React.FunctionComponent = () => {
5
+ const [isSelectedBasic, setIsSelectedBasic] = useState('toggle-group-fill-1');
6
+ const [isSelectedMulti, setIsSelectedMulti] = useState({
7
+ 'toggle-group-fill-multi-1': false,
8
+ 'toggle-group-fill-multi-2': false,
9
+ 'toggle-group-fill-multi-3': false
10
+ });
11
+ const [isSelectedDisabled, setIsSelectedDisabled] = useState('toggle-group-fill-disabled-1');
12
+
13
+ const handleItemClickBasic = (event: React.MouseEvent<any> | React.KeyboardEvent | MouseEvent) => {
14
+ const id = event.currentTarget.id;
15
+ setIsSelectedBasic(id);
16
+ };
17
+
18
+ const handleItemClickMulti = (
19
+ event: React.MouseEvent<any> | React.KeyboardEvent | MouseEvent,
20
+ isSelected: boolean
21
+ ) => {
22
+ const id = event.currentTarget.id;
23
+ setIsSelectedMulti((prevIsSelected) => ({ ...prevIsSelected, [id]: isSelected }));
24
+ };
25
+
26
+ const handleItemClickDisabled = (event: React.MouseEvent<any> | React.KeyboardEvent | MouseEvent) => {
27
+ const id = event.currentTarget.id;
28
+ setIsSelectedDisabled(id);
29
+ };
30
+
31
+ return (
32
+ <>
33
+ <ToggleGroup isFill aria-label="Full width toggle group">
34
+ <ToggleGroupItem
35
+ text="Option 1"
36
+ buttonId="toggle-group-fill-1"
37
+ isSelected={isSelectedBasic === 'toggle-group-fill-1'}
38
+ onChange={handleItemClickBasic}
39
+ />
40
+ <ToggleGroupItem
41
+ text="Option 2"
42
+ buttonId="toggle-group-fill-2"
43
+ isSelected={isSelectedBasic === 'toggle-group-fill-2'}
44
+ onChange={handleItemClickBasic}
45
+ />
46
+ <ToggleGroupItem
47
+ text="Option 3"
48
+ buttonId="toggle-group-fill-3"
49
+ isSelected={isSelectedBasic === 'toggle-group-fill-3'}
50
+ onChange={handleItemClickBasic}
51
+ />
52
+ </ToggleGroup>
53
+ <br />
54
+ <ToggleGroup isFill aria-label="Full width multi-select toggle group">
55
+ <ToggleGroupItem
56
+ text="Option 1"
57
+ buttonId="toggle-group-fill-multi-1"
58
+ isSelected={isSelectedMulti['toggle-group-fill-multi-1']}
59
+ onChange={handleItemClickMulti}
60
+ />
61
+ <ToggleGroupItem
62
+ text="Option 2"
63
+ buttonId="toggle-group-fill-multi-2"
64
+ isSelected={isSelectedMulti['toggle-group-fill-multi-2']}
65
+ onChange={handleItemClickMulti}
66
+ />
67
+ <ToggleGroupItem
68
+ text="Option 3"
69
+ buttonId="toggle-group-fill-multi-3"
70
+ isSelected={isSelectedMulti['toggle-group-fill-multi-3']}
71
+ onChange={handleItemClickMulti}
72
+ />
73
+ </ToggleGroup>
74
+ <br />
75
+ <ToggleGroup isFill aria-label="Full width toggle group with disabled item">
76
+ <ToggleGroupItem
77
+ text="Option 1"
78
+ buttonId="toggle-group-fill-disabled-1"
79
+ isSelected={isSelectedDisabled === 'toggle-group-fill-disabled-1'}
80
+ onChange={handleItemClickDisabled}
81
+ />
82
+ <ToggleGroupItem
83
+ text="Option 2"
84
+ buttonId="toggle-group-fill-disabled-2"
85
+ isSelected={isSelectedDisabled === 'toggle-group-fill-disabled-2'}
86
+ onChange={handleItemClickDisabled}
87
+ />
88
+ <ToggleGroupItem text="Option 3" isDisabled />
89
+ </ToggleGroup>
90
+ </>
91
+ );
92
+ };