@patternfly/react-core 6.0.0-alpha.25 → 6.0.0-alpha.27

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 (241) hide show
  1. package/CHANGELOG.md +12 -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/Modal/package.json +1 -1
  119. package/dist/dynamic/next/components/package.json +1 -1
  120. package/dist/dynamic/styles/package.json +1 -1
  121. package/dist/esm/components/Badge/Badge.d.ts +2 -0
  122. package/dist/esm/components/Badge/Badge.d.ts.map +1 -1
  123. package/dist/esm/components/Badge/Badge.js +5 -2
  124. package/dist/esm/components/Badge/Badge.js.map +1 -1
  125. package/dist/esm/components/Drawer/Drawer.d.ts +1 -0
  126. package/dist/esm/components/Drawer/Drawer.d.ts.map +1 -1
  127. package/dist/esm/components/Drawer/Drawer.js +1 -0
  128. package/dist/esm/components/Drawer/Drawer.js.map +1 -1
  129. package/dist/esm/components/Drawer/DrawerContent.d.ts +1 -1
  130. package/dist/esm/components/Drawer/DrawerContent.d.ts.map +1 -1
  131. package/dist/esm/components/Drawer/DrawerContent.js +2 -4
  132. package/dist/esm/components/Drawer/DrawerContent.js.map +1 -1
  133. package/dist/esm/components/Drawer/DrawerHead.d.ts +0 -2
  134. package/dist/esm/components/Drawer/DrawerHead.d.ts.map +1 -1
  135. package/dist/esm/components/Drawer/DrawerHead.js +2 -4
  136. package/dist/esm/components/Drawer/DrawerHead.js.map +1 -1
  137. package/dist/esm/components/Drawer/DrawerPanelContent.d.ts +1 -1
  138. package/dist/esm/components/Drawer/DrawerPanelContent.d.ts.map +1 -1
  139. package/dist/esm/components/Drawer/DrawerPanelContent.js +2 -2
  140. package/dist/esm/components/Drawer/DrawerPanelContent.js.map +1 -1
  141. package/dist/esm/components/Drawer/DrawerPanelDescription.d.ts +10 -0
  142. package/dist/esm/components/Drawer/DrawerPanelDescription.d.ts.map +1 -0
  143. package/dist/esm/components/Drawer/DrawerPanelDescription.js +10 -0
  144. package/dist/esm/components/Drawer/DrawerPanelDescription.js.map +1 -0
  145. package/dist/esm/components/Drawer/DrawerSection.d.ts +1 -1
  146. package/dist/esm/components/Drawer/DrawerSection.d.ts.map +1 -1
  147. package/dist/esm/components/Drawer/DrawerSection.js +1 -1
  148. package/dist/esm/components/Drawer/DrawerSection.js.map +1 -1
  149. package/dist/esm/components/Drawer/__tests__/DrawerPanelDescription.d.ts +2 -0
  150. package/dist/esm/components/Drawer/__tests__/DrawerPanelDescription.d.ts.map +1 -0
  151. package/dist/esm/components/Drawer/__tests__/DrawerPanelDescription.js +21 -0
  152. package/dist/esm/components/Drawer/__tests__/DrawerPanelDescription.js.map +1 -0
  153. package/dist/esm/components/Drawer/index.d.ts +1 -0
  154. package/dist/esm/components/Drawer/index.d.ts.map +1 -1
  155. package/dist/esm/components/Drawer/index.js +1 -0
  156. package/dist/esm/components/Drawer/index.js.map +1 -1
  157. package/dist/js/components/Badge/Badge.d.ts +2 -0
  158. package/dist/js/components/Badge/Badge.d.ts.map +1 -1
  159. package/dist/js/components/Badge/Badge.js +5 -2
  160. package/dist/js/components/Badge/Badge.js.map +1 -1
  161. package/dist/js/components/Drawer/Drawer.d.ts +1 -0
  162. package/dist/js/components/Drawer/Drawer.d.ts.map +1 -1
  163. package/dist/js/components/Drawer/Drawer.js +1 -0
  164. package/dist/js/components/Drawer/Drawer.js.map +1 -1
  165. package/dist/js/components/Drawer/DrawerContent.d.ts +1 -1
  166. package/dist/js/components/Drawer/DrawerContent.d.ts.map +1 -1
  167. package/dist/js/components/Drawer/DrawerContent.js +2 -4
  168. package/dist/js/components/Drawer/DrawerContent.js.map +1 -1
  169. package/dist/js/components/Drawer/DrawerHead.d.ts +0 -2
  170. package/dist/js/components/Drawer/DrawerHead.d.ts.map +1 -1
  171. package/dist/js/components/Drawer/DrawerHead.js +2 -4
  172. package/dist/js/components/Drawer/DrawerHead.js.map +1 -1
  173. package/dist/js/components/Drawer/DrawerPanelContent.d.ts +1 -1
  174. package/dist/js/components/Drawer/DrawerPanelContent.d.ts.map +1 -1
  175. package/dist/js/components/Drawer/DrawerPanelContent.js +2 -2
  176. package/dist/js/components/Drawer/DrawerPanelContent.js.map +1 -1
  177. package/dist/js/components/Drawer/DrawerPanelDescription.d.ts +10 -0
  178. package/dist/js/components/Drawer/DrawerPanelDescription.d.ts.map +1 -0
  179. package/dist/js/components/Drawer/DrawerPanelDescription.js +14 -0
  180. package/dist/js/components/Drawer/DrawerPanelDescription.js.map +1 -0
  181. package/dist/js/components/Drawer/DrawerSection.d.ts +1 -1
  182. package/dist/js/components/Drawer/DrawerSection.d.ts.map +1 -1
  183. package/dist/js/components/Drawer/DrawerSection.js +1 -1
  184. package/dist/js/components/Drawer/DrawerSection.js.map +1 -1
  185. package/dist/js/components/Drawer/__tests__/DrawerPanelDescription.d.ts +2 -0
  186. package/dist/js/components/Drawer/__tests__/DrawerPanelDescription.d.ts.map +1 -0
  187. package/dist/js/components/Drawer/__tests__/DrawerPanelDescription.js +24 -0
  188. package/dist/js/components/Drawer/__tests__/DrawerPanelDescription.js.map +1 -0
  189. package/dist/js/components/Drawer/index.d.ts +1 -0
  190. package/dist/js/components/Drawer/index.d.ts.map +1 -1
  191. package/dist/js/components/Drawer/index.js +1 -0
  192. package/dist/js/components/Drawer/index.js.map +1 -1
  193. package/dist/umd/react-core.min.js +1 -1
  194. package/helpers/package.json +1 -1
  195. package/layouts/package.json +1 -1
  196. package/next/package.json +1 -1
  197. package/package.json +2 -2
  198. package/src/components/Badge/Badge.tsx +9 -0
  199. package/src/components/Badge/__tests__/Badge.test.tsx +9 -0
  200. package/src/components/Badge/examples/Badge.css +6 -0
  201. package/src/components/Badge/examples/Badge.md +7 -0
  202. package/src/components/Badge/examples/BadgeRead.tsx +3 -3
  203. package/src/components/Badge/examples/BadgeToggle.tsx +13 -0
  204. package/src/components/Drawer/Drawer.tsx +1 -0
  205. package/src/components/Drawer/DrawerContent.tsx +3 -3
  206. package/src/components/Drawer/DrawerHead.tsx +3 -9
  207. package/src/components/Drawer/DrawerPanelContent.tsx +3 -2
  208. package/src/components/Drawer/DrawerPanelDescription.tsx +23 -0
  209. package/src/components/Drawer/DrawerSection.tsx +2 -1
  210. package/src/components/Drawer/__tests__/Drawer.test.tsx +4 -4
  211. package/src/components/Drawer/__tests__/DrawerPanelContent.test.tsx +31 -0
  212. package/src/components/Drawer/__tests__/DrawerPanelDescription.tsx +28 -0
  213. package/src/components/Drawer/__tests__/__snapshots__/Drawer.test.tsx.snap +163 -187
  214. package/src/components/Drawer/__tests__/__snapshots__/DrawerPanelDescription.tsx.snap +11 -0
  215. package/src/components/Drawer/examples/Drawer.md +4 -4
  216. package/src/components/Drawer/examples/DrawerBasic.tsx +5 -1
  217. package/src/components/Drawer/examples/DrawerBasicInline.tsx +1 -1
  218. package/src/components/Drawer/examples/DrawerBreakpoint.tsx +1 -1
  219. package/src/components/Drawer/examples/DrawerFocusTrap.tsx +1 -1
  220. package/src/components/Drawer/examples/DrawerInlinePanelEnd.tsx +1 -1
  221. package/src/components/Drawer/examples/DrawerInlinePanelStart.tsx +1 -1
  222. package/src/components/Drawer/examples/DrawerModifiedContentPadding.tsx +1 -1
  223. package/src/components/Drawer/examples/DrawerModifiedPanelPadding.tsx +2 -2
  224. package/src/components/Drawer/examples/DrawerPanelBottom.tsx +1 -1
  225. package/src/components/Drawer/examples/DrawerPanelEnd.tsx +1 -1
  226. package/src/components/Drawer/examples/DrawerPanelStart.tsx +1 -1
  227. package/src/components/Drawer/examples/DrawerResizableAtEnd.tsx +1 -1
  228. package/src/components/Drawer/examples/DrawerResizableAtStart.tsx +1 -1
  229. package/src/components/Drawer/examples/DrawerResizableOnBottom.tsx +1 -1
  230. package/src/components/Drawer/examples/DrawerResizableOnInline.tsx +1 -1
  231. package/src/components/Drawer/examples/DrawerSecondaryBackground.tsx +6 -7
  232. package/src/components/Drawer/examples/DrawerStackedContentBodyElements.tsx +3 -4
  233. package/src/components/Drawer/examples/DrawerStatic.tsx +1 -1
  234. package/src/components/Drawer/index.ts +1 -0
  235. package/src/components/Wizard/examples/WizardStepDrawerContent.tsx +2 -2
  236. package/src/demos/examples/Wizard/InModalWithDrawer.tsx +2 -2
  237. package/src/demos/examples/Wizard/InModalWithDrawerInformationalStep.tsx +2 -2
  238. package/src/demos/examples/Wizard/InPageWithDrawer.tsx +2 -2
  239. package/src/demos/examples/Wizard/InPageWithDrawerInformationalStep.tsx +2 -2
  240. package/src/deprecated/components/Wizard/__tests__/Wizard.test.tsx +0 -1
  241. package/src/deprecated/components/Wizard/examples/WizardWithDrawer.tsx +11 -7
@@ -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.0.0-alpha.24","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.0.0-alpha.26","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.0.0-alpha.24","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.0.0-alpha.26","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.0.0-alpha.24","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.0.0-alpha.26","private":true}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "6.0.0-alpha.25",
3
+ "version": "6.0.0-alpha.27",
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",
@@ -73,5 +73,5 @@
73
73
  "react": "^17 || ^18",
74
74
  "react-dom": "^17 || ^18"
75
75
  },
76
- "gitHead": "251bb4ff8328de0dd6b6b6302329e6b15854b802"
76
+ "gitHead": "c5c41bea6693969f8a9205237a8003959f9d89e3"
77
77
  }
@@ -1,12 +1,15 @@
1
1
  import * as React from 'react';
2
2
  import { css } from '@patternfly/react-styles';
3
3
  import styles from '@patternfly/react-styles/css/components/Badge/badge';
4
+ import CaretDownIcon from '@patternfly/react-icons/dist/esm/icons/caret-down-icon';
4
5
 
5
6
  export interface BadgeProps extends React.HTMLProps<HTMLSpanElement> {
6
7
  /** Text announced by screen readers to indicate the current content/status of the badge. */
7
8
  screenReaderText?: string;
8
9
  /** Adds styling to the badge to indicate it has been read */
9
10
  isRead?: boolean;
11
+ /** Adds styling to the badge to indicate it has a toggle. A badge with a toggle must be passed to a MenuToggle component. */
12
+ isToggle?: boolean;
10
13
  /** content rendered inside the Badge */
11
14
  children?: React.ReactNode;
12
15
  /** additional classes added to the Badge */
@@ -15,6 +18,7 @@ export interface BadgeProps extends React.HTMLProps<HTMLSpanElement> {
15
18
 
16
19
  export const Badge: React.FunctionComponent<BadgeProps> = ({
17
20
  isRead = false,
21
+ isToggle = false,
18
22
  className = '',
19
23
  children = '',
20
24
  screenReaderText,
@@ -26,6 +30,11 @@ export const Badge: React.FunctionComponent<BadgeProps> = ({
26
30
  >
27
31
  {children}
28
32
  {screenReaderText && <span className="pf-v5-screen-reader">{screenReaderText}</span>}
33
+ {isToggle && (
34
+ <span className={css(styles.badgeToggleIcon)}>
35
+ <CaretDownIcon />
36
+ </span>
37
+ )}
29
38
  </span>
30
39
  );
31
40
  Badge.displayName = 'Badge';
@@ -32,6 +32,15 @@ test('Renders with class name pf-m-read when isRead prop is true', () => {
32
32
  expect(screen.getByText('Test')).toHaveClass('pf-m-read');
33
33
  });
34
34
 
35
+ test('Renders with toggle styles and icon when isToggle prop is true', () => {
36
+ render(
37
+ <Badge isRead={true} isToggle={true}>
38
+ Test
39
+ </Badge>
40
+ );
41
+ expect(screen.getByText('Test').lastChild).toHaveClass(styles.badgeToggleIcon);
42
+ });
43
+
35
44
  test('Does not render pf-v5-screen-reader class by default', () => {
36
45
  render(<Badge>Test</Badge>);
37
46
  expect(screen.getByText('Test')).not.toContainHTML('<span class="pf-v5-screen-reader"></span>');
@@ -0,0 +1,6 @@
1
+ #ws-react-c-badge-read .pf-v5-c-badge,
2
+ #ws-react-c-badge-unread .pf-v5-c-badge,
3
+ #ws-react-c-badge-badge-as-toggle .pf-v5-c-badge {
4
+ margin-inline-end: var(--pf-t--global--spacer--xs);
5
+ margin-block-end: var(--pf-t--global--spacer--xs);
6
+ }
@@ -5,6 +5,8 @@ cssPrefix: pf-v5-c-badge
5
5
  propComponents: ['Badge']
6
6
  ---
7
7
 
8
+ import './Badge.css';
9
+
8
10
  ## Examples
9
11
 
10
12
  ### Read
@@ -16,3 +18,8 @@ propComponents: ['Badge']
16
18
 
17
19
  ```ts file="./BadgeUnread.tsx"
18
20
  ```
21
+
22
+ ### Badge as toggle
23
+
24
+ ```ts file="./BadgeToggle.tsx"
25
+ ```
@@ -5,13 +5,13 @@ export const BadgeRead: React.FunctionComponent = () => (
5
5
  <React.Fragment>
6
6
  <Badge key={1} isRead>
7
7
  7
8
- </Badge>{' '}
8
+ </Badge>
9
9
  <Badge key={2} isRead>
10
10
  24
11
- </Badge>{' '}
11
+ </Badge>
12
12
  <Badge key={3} isRead>
13
13
  240
14
- </Badge>{' '}
14
+ </Badge>
15
15
  <Badge key={4} isRead>
16
16
  999+
17
17
  </Badge>
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { Badge } from '@patternfly/react-core';
3
+
4
+ export const BadgeToggle: React.FunctionComponent = () => (
5
+ <React.Fragment>
6
+ <Badge key={1} screenReaderText="Unread Messages" isToggle>
7
+ 7
8
+ </Badge>
9
+ <Badge key={2} screenReaderText="Read Messages" isRead isToggle>
10
+ 7
11
+ </Badge>
12
+ </React.Fragment>
13
+ );
@@ -4,6 +4,7 @@ import { css } from '@patternfly/react-styles';
4
4
 
5
5
  export enum DrawerColorVariant {
6
6
  default = 'default',
7
+ secondary = 'secondary',
7
8
  noBackground = 'no-background'
8
9
  }
9
10
 
@@ -12,12 +12,11 @@ export interface DrawerContentProps extends React.HTMLProps<HTMLDivElement> {
12
12
  /** Content rendered in the drawer panel. */
13
13
  panelContent: React.ReactNode;
14
14
  /** Color variant of the background of the drawer panel */
15
- colorVariant?: DrawerColorVariant | 'no-background' | 'default';
15
+ colorVariant?: DrawerColorVariant | 'no-background' | 'default' | 'secondary';
16
16
  }
17
17
 
18
18
  export const DrawerContent: React.FunctionComponent<DrawerContentProps> = ({
19
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
20
- className = '',
19
+ className,
21
20
  children,
22
21
  panelContent,
23
22
  colorVariant = DrawerColorVariant.default,
@@ -31,6 +30,7 @@ export const DrawerContent: React.FunctionComponent<DrawerContentProps> = ({
31
30
  className={css(
32
31
  styles.drawerContent,
33
32
  colorVariant === DrawerColorVariant.noBackground && styles.modifiers.noBackground,
33
+ colorVariant === DrawerColorVariant.secondary && styles.modifiers.secondary,
34
34
  className
35
35
  )}
36
36
  ref={drawerContentRef}
@@ -1,28 +1,22 @@
1
1
  import * as React from 'react';
2
2
  import styles from '@patternfly/react-styles/css/components/Drawer/drawer';
3
3
  import { css } from '@patternfly/react-styles';
4
- import { DrawerPanelBody } from './DrawerPanelBody';
5
4
 
6
5
  export interface DrawerHeadProps extends React.HTMLProps<HTMLDivElement> {
7
6
  /** Additional classes added to the drawer head. */
8
7
  className?: string;
9
8
  /** Content to be rendered in the drawer head */
10
9
  children?: React.ReactNode;
11
- /** Indicates if there should be no padding around the drawer panel body of the head*/
12
- hasNoPadding?: boolean;
13
10
  }
14
11
 
15
12
  export const DrawerHead: React.FunctionComponent<DrawerHeadProps> = ({
16
13
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
14
  className = '',
18
15
  children,
19
- hasNoPadding = false,
20
16
  ...props
21
17
  }: DrawerHeadProps) => (
22
- <DrawerPanelBody hasNoPadding={hasNoPadding}>
23
- <div className={css(styles.drawerHead, className)} {...props}>
24
- {children}
25
- </div>
26
- </DrawerPanelBody>
18
+ <div className={css(styles.drawerHead, className)} {...props}>
19
+ {children}
20
+ </div>
27
21
  );
28
22
  DrawerHead.displayName = 'DrawerHead';
@@ -55,7 +55,7 @@ export interface DrawerPanelContentProps extends Omit<React.HTMLProps<HTMLDivEle
55
55
  '2xl'?: 'width_25' | 'width_33' | 'width_50' | 'width_66' | 'width_75' | 'width_100';
56
56
  };
57
57
  /** Color variant of the background of the drawer panel */
58
- colorVariant?: DrawerColorVariant | 'no-background' | 'default';
58
+ colorVariant?: DrawerColorVariant | 'no-background' | 'default' | 'secondary';
59
59
  /** Adds and customizes a focus trap on the drawer panel content. */
60
60
  focusTrap?: DrawerPanelFocusTrapObject;
61
61
  }
@@ -63,7 +63,7 @@ let isResizing: boolean = null;
63
63
  let newSize: number = 0;
64
64
 
65
65
  export const DrawerPanelContent: React.FunctionComponent<DrawerPanelContentProps> = ({
66
- className = '',
66
+ className,
67
67
  id,
68
68
  children,
69
69
  hasNoBorder = false,
@@ -367,6 +367,7 @@ export const DrawerPanelContent: React.FunctionComponent<DrawerPanelContentProps
367
367
  hasNoBorder && styles.modifiers.noBorder,
368
368
  formatBreakpointMods(widths, styles),
369
369
  colorVariant === DrawerColorVariant.noBackground && styles.modifiers.noBackground,
370
+ colorVariant === DrawerColorVariant.secondary && styles.modifiers.secondary,
370
371
  className
371
372
  )}
372
373
  onTransitionEnd={(ev) => {
@@ -0,0 +1,23 @@
1
+ import * as React from 'react';
2
+ import styles from '@patternfly/react-styles/css/components/Drawer/drawer';
3
+ import { css } from '@patternfly/react-styles';
4
+
5
+ /** Provides a description within the drawer panel. This should typically follow the drawer head. */
6
+
7
+ export interface DrawerPanelDescriptionProps extends React.HTMLProps<HTMLDivElement> {
8
+ /** Additional classes added to the drawer description. */
9
+ className?: string;
10
+ /** Content to be rendered in the drawer description */
11
+ children: React.ReactNode;
12
+ }
13
+
14
+ export const DrawerPanelDescription: React.FunctionComponent<DrawerPanelDescriptionProps> = ({
15
+ className,
16
+ children,
17
+ ...props
18
+ }: DrawerPanelDescriptionProps) => (
19
+ <div className={css(styles.drawerDescription, className)} {...props}>
20
+ {children}
21
+ </div>
22
+ );
23
+ DrawerPanelDescription.displayName = 'DrawerPanelDescription';
@@ -9,7 +9,7 @@ export interface DrawerSectionProps extends React.HTMLProps<HTMLDivElement> {
9
9
  /** Content to be rendered in the drawer section. */
10
10
  children?: React.ReactNode;
11
11
  /** Color variant of the background of the drawer Section */
12
- colorVariant?: DrawerColorVariant | 'no-background' | 'default';
12
+ colorVariant?: DrawerColorVariant | 'no-background' | 'default' | 'secondary';
13
13
  }
14
14
 
15
15
  export const DrawerSection: React.FunctionComponent<DrawerSectionProps> = ({
@@ -23,6 +23,7 @@ export const DrawerSection: React.FunctionComponent<DrawerSectionProps> = ({
23
23
  className={css(
24
24
  styles.drawerSection,
25
25
  colorVariant === DrawerColorVariant.noBackground && styles.modifiers.noBackground,
26
+ colorVariant === DrawerColorVariant.secondary && styles.modifiers.secondary,
26
27
  className
27
28
  )}
28
29
  {...props}
@@ -6,7 +6,8 @@ import {
6
6
  DrawerContentBody,
7
7
  DrawerHead,
8
8
  DrawerPanelBody,
9
- DrawerPanelContent
9
+ DrawerPanelContent,
10
+ DrawerColorVariant
10
11
  } from '../';
11
12
  import React from 'react';
12
13
  import { render } from '@testing-library/react';
@@ -70,15 +71,14 @@ test(`Drawer expands from bottom`, () => {
70
71
  expect(asFragment()).toMatchSnapshot();
71
72
  });
72
73
 
73
- // TODO: Update/renable with issue #9979
74
- xtest(`Drawer has resizable css and color variants`, () => {
74
+ test(`Drawer has resizable css and color variants`, () => {
75
75
  const panelContent = (
76
76
  <DrawerPanelContent
77
77
  isResizable
78
78
  minSize={'200px'}
79
79
  defaultSize={'300px'}
80
80
  maxSize={'400px'}
81
- // colorVariant={DrawerColorVariant.light200}
81
+ colorVariant={DrawerColorVariant.secondary}
82
82
  >
83
83
  <DrawerHead>
84
84
  <span>drawer-panel</span>
@@ -2,6 +2,37 @@ import React from 'react';
2
2
  import { render, screen } from '@testing-library/react';
3
3
  import { DrawerPanelContent } from '../DrawerPanelContent';
4
4
  import { Drawer } from '../Drawer';
5
+ import styles from '@patternfly/react-styles/css/components/Drawer/drawer';
6
+
7
+ test(`Renders with only class ${styles.drawerPanel} by default`, () => {
8
+ render(
9
+ <Drawer isExpanded>
10
+ <DrawerPanelContent>Drawer panel content</DrawerPanelContent>
11
+ </Drawer>
12
+ );
13
+
14
+ expect(screen.getByText('Drawer panel content')).toHaveClass(styles.drawerPanel, { exact: true });
15
+ });
16
+
17
+ test(`Renders with class ${styles.modifiers.noBackground} when colorVariant="no-background"`, () => {
18
+ render(
19
+ <Drawer isExpanded>
20
+ <DrawerPanelContent colorVariant="no-background">Drawer panel content</DrawerPanelContent>
21
+ </Drawer>
22
+ );
23
+
24
+ expect(screen.getByText('Drawer panel content')).toHaveClass(styles.modifiers.noBackground);
25
+ });
26
+
27
+ test(`Renders with class ${styles.modifiers.secondary} when colorVariant="secondary"`, () => {
28
+ render(
29
+ <Drawer isExpanded>
30
+ <DrawerPanelContent colorVariant="secondary">Drawer panel content</DrawerPanelContent>
31
+ </Drawer>
32
+ );
33
+
34
+ expect(screen.getByText('Drawer panel content')).toHaveClass(styles.modifiers.secondary);
35
+ });
5
36
 
6
37
  test('Does not render with aria-labelledby by default', () => {
7
38
  render(
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { render, screen } from '@testing-library/react';
3
+ import { DrawerPanelDescription } from '../DrawerPanelDescription';
4
+ import styles from '@patternfly/react-styles/css/components/Drawer/drawer';
5
+
6
+ test(`Renders with only class ${styles.drawerDescription} by default`, () => {
7
+ render(<DrawerPanelDescription>description content</DrawerPanelDescription>);
8
+
9
+ expect(screen.getByText('description content')).toHaveClass(styles.drawerDescription, { exact: true });
10
+ });
11
+
12
+ test(`Renders with custom class when className is passed`, () => {
13
+ render(<DrawerPanelDescription className="test-class">description content</DrawerPanelDescription>);
14
+
15
+ expect(screen.getByText('description content')).toHaveClass('test-class');
16
+ });
17
+
18
+ test(`Spreads props`, () => {
19
+ render(<DrawerPanelDescription id="test-id">description content</DrawerPanelDescription>);
20
+
21
+ expect(screen.getByText('description content')).toHaveAttribute('id', 'test-id');
22
+ });
23
+
24
+ test(`Matches snapshot`, () => {
25
+ const { asFragment } = render(<DrawerPanelDescription>description content</DrawerPanelDescription>);
26
+
27
+ expect(asFragment()).toMatchSnapshot();
28
+ });