@patternfly/react-core 4.214.2 → 4.214.3

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 (35) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/esm/components/Banner/Banner.d.ts +2 -0
  3. package/dist/esm/components/Banner/Banner.d.ts.map +1 -1
  4. package/dist/esm/components/Banner/Banner.js +4 -2
  5. package/dist/esm/components/Banner/Banner.js.map +1 -1
  6. package/dist/esm/components/Chip/Chip.d.ts +5 -0
  7. package/dist/esm/components/Chip/Chip.d.ts.map +1 -1
  8. package/dist/esm/components/Chip/Chip.js +7 -2
  9. package/dist/esm/components/Chip/Chip.js.map +1 -1
  10. package/dist/esm/components/Switch/Switch.d.ts.map +1 -1
  11. package/dist/esm/components/Switch/Switch.js +2 -3
  12. package/dist/esm/components/Switch/Switch.js.map +1 -1
  13. package/dist/js/components/Banner/Banner.d.ts +2 -0
  14. package/dist/js/components/Banner/Banner.d.ts.map +1 -1
  15. package/dist/js/components/Banner/Banner.js +4 -2
  16. package/dist/js/components/Banner/Banner.js.map +1 -1
  17. package/dist/js/components/Chip/Chip.d.ts +5 -0
  18. package/dist/js/components/Chip/Chip.d.ts.map +1 -1
  19. package/dist/js/components/Chip/Chip.js +7 -2
  20. package/dist/js/components/Chip/Chip.js.map +1 -1
  21. package/dist/js/components/Switch/Switch.d.ts.map +1 -1
  22. package/dist/js/components/Switch/Switch.js +2 -3
  23. package/dist/js/components/Switch/Switch.js.map +1 -1
  24. package/dist/umd/react-core.css +545 -545
  25. package/dist/umd/react-core.js +13 -7
  26. package/dist/umd/react-core.min.js +2 -2
  27. package/package.json +5 -5
  28. package/src/components/Banner/Banner.tsx +4 -0
  29. package/src/components/Banner/__tests__/Banner.test.tsx +5 -1
  30. package/src/components/Banner/__tests__/__snapshots__/Banner.test.tsx.snap +30 -0
  31. package/src/components/Banner/examples/BannerBasic.tsx +4 -2
  32. package/src/components/Chip/Chip.tsx +14 -0
  33. package/src/components/Chip/__tests__/Chip.test.tsx +9 -0
  34. package/src/components/Chip/__tests__/__snapshots__/Chip.test.tsx.snap +44 -0
  35. package/src/components/Switch/Switch.tsx +7 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "4.214.2",
3
+ "version": "4.214.3",
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",
@@ -34,9 +34,9 @@
34
34
  "generate": "node scripts/copyStyles.js"
35
35
  },
36
36
  "dependencies": {
37
- "@patternfly/react-icons": "^4.65.2",
38
- "@patternfly/react-styles": "^4.64.2",
39
- "@patternfly/react-tokens": "^4.66.2",
37
+ "@patternfly/react-icons": "^4.65.3",
38
+ "@patternfly/react-styles": "^4.64.3",
39
+ "@patternfly/react-tokens": "^4.66.3",
40
40
  "focus-trap": "6.2.2",
41
41
  "react-dropzone": "9.0.0",
42
42
  "tippy.js": "5.1.2",
@@ -60,5 +60,5 @@
60
60
  "react": "^16.8.0 || ^17.0.0",
61
61
  "react-dom": "^16.8.0 || ^17.0.0"
62
62
  },
63
- "gitHead": "ed7902dfb21796ef07d5f938c3937d55d7dda0b9"
63
+ "gitHead": "9f92fdb50f7df0e12fbf14f815ed10d21f9b097e"
64
64
  }
@@ -11,12 +11,15 @@ export interface BannerProps extends React.HTMLProps<HTMLDivElement> {
11
11
  variant?: 'default' | 'info' | 'danger' | 'success' | 'warning';
12
12
  /** If set to true, the banner sticks to the top of its container */
13
13
  isSticky?: boolean;
14
+ /** Text announced by screen readers to indicate the type of banner. Defaults to "${variant} banner" if this prop is not passed in */
15
+ screenReaderText?: string;
14
16
  }
15
17
 
16
18
  export const Banner: React.FunctionComponent<BannerProps> = ({
17
19
  children,
18
20
  className,
19
21
  variant = 'default',
22
+ screenReaderText,
20
23
  isSticky = false,
21
24
  ...props
22
25
  }: BannerProps) => (
@@ -30,6 +33,7 @@ export const Banner: React.FunctionComponent<BannerProps> = ({
30
33
  {...props}
31
34
  >
32
35
  {children}
36
+ <span className="pf-u-screen-reader">{screenReaderText || `${variant} banner`}</span>
33
37
  </div>
34
38
  );
35
39
  Banner.displayName = 'Banner';
@@ -5,7 +5,11 @@ import { render } from '@testing-library/react';
5
5
  ['default', 'info', 'success', 'warning', 'danger'].forEach((variant: string) => {
6
6
  test(`${variant} banner`, () => {
7
7
  const { asFragment } = render(
8
- <Banner variant={variant as 'default' | 'info' | 'success' | 'warning' | 'danger'} aria-label={variant}>
8
+ <Banner
9
+ variant={variant as 'default' | 'info' | 'success' | 'warning' | 'danger'}
10
+ aria-label={variant}
11
+ screenReaderText={`${variant} banner`}
12
+ >
9
13
  {variant} Banner
10
14
  </Banner>
11
15
  );
@@ -7,6 +7,11 @@ exports[`danger banner 1`] = `
7
7
  class="pf-c-banner pf-m-danger"
8
8
  >
9
9
  danger Banner
10
+ <span
11
+ class="pf-u-screen-reader"
12
+ >
13
+ danger banner
14
+ </span>
10
15
  </div>
11
16
  </DocumentFragment>
12
17
  `;
@@ -18,6 +23,11 @@ exports[`default banner 1`] = `
18
23
  class="pf-c-banner"
19
24
  >
20
25
  default Banner
26
+ <span
27
+ class="pf-u-screen-reader"
28
+ >
29
+ default banner
30
+ </span>
21
31
  </div>
22
32
  </DocumentFragment>
23
33
  `;
@@ -29,6 +39,11 @@ exports[`info banner 1`] = `
29
39
  class="pf-c-banner pf-m-info"
30
40
  >
31
41
  info Banner
42
+ <span
43
+ class="pf-u-screen-reader"
44
+ >
45
+ info banner
46
+ </span>
32
47
  </div>
33
48
  </DocumentFragment>
34
49
  `;
@@ -40,6 +55,11 @@ exports[`sticky banner 1`] = `
40
55
  class="pf-c-banner pf-m-sticky"
41
56
  >
42
57
  Sticky Banner
58
+ <span
59
+ class="pf-u-screen-reader"
60
+ >
61
+ default banner
62
+ </span>
43
63
  </div>
44
64
  </DocumentFragment>
45
65
  `;
@@ -51,6 +71,11 @@ exports[`success banner 1`] = `
51
71
  class="pf-c-banner pf-m-success"
52
72
  >
53
73
  success Banner
74
+ <span
75
+ class="pf-u-screen-reader"
76
+ >
77
+ success banner
78
+ </span>
54
79
  </div>
55
80
  </DocumentFragment>
56
81
  `;
@@ -62,6 +87,11 @@ exports[`warning banner 1`] = `
62
87
  class="pf-c-banner pf-m-warning"
63
88
  >
64
89
  warning Banner
90
+ <span
91
+ class="pf-u-screen-reader"
92
+ >
93
+ warning banner
94
+ </span>
65
95
  </div>
66
96
  </DocumentFragment>
67
97
  `;
@@ -3,9 +3,11 @@ import { Banner } from '@patternfly/react-core';
3
3
 
4
4
  export const BannerBasic: React.FunctionComponent = () => (
5
5
  <React.Fragment>
6
- <Banner>Default banner</Banner>
6
+ <Banner screenReaderText="This is a default Banner">Default banner</Banner>
7
7
  <br />
8
- <Banner variant="info">Info banner</Banner>
8
+ <Banner variant="info" screenReaderText="This is an info Banner">
9
+ Info banner
10
+ </Banner>
9
11
  <br />
10
12
  <Banner variant="danger">Danger banner</Banner>
11
13
  <br />
@@ -38,6 +38,9 @@ export interface ChipProps extends React.HTMLProps<HTMLDivElement>, OUIAProps {
38
38
  | 'left-end'
39
39
  | 'right-start'
40
40
  | 'right-end';
41
+
42
+ /** Css property expressed in percentage or any css unit that overrides the default value of the max-width of the chip's text */
43
+ textMaxWidth?: string;
41
44
  }
42
45
 
43
46
  interface ChipState {
@@ -73,12 +76,20 @@ export class Chip extends React.Component<ChipProps, ChipState> {
73
76
  });
74
77
  }
75
78
 
79
+ setChipStyle = () => ({
80
+ '--pf-c-chip__text--MaxWidth': this.props.textMaxWidth
81
+ });
82
+
76
83
  renderOverflowChip = () => {
77
84
  const { children, className, onClick, ouiaId } = this.props;
78
85
  const Component = this.props.component as any;
79
86
  return (
80
87
  <Component
81
88
  onClick={onClick}
89
+ {...(this.props.textMaxWidth && {
90
+ style: this.setChipStyle(),
91
+ ...this.props.style
92
+ })}
82
93
  className={css(styles.chip, styles.modifiers.overflow, className)}
83
94
  {...(this.props.component === 'button' ? { type: 'button' } : {})}
84
95
  {...getOUIAProps('OverflowChip', ouiaId !== undefined ? ouiaId : this.state.ouiaStateId)}
@@ -93,6 +104,9 @@ export class Chip extends React.Component<ChipProps, ChipState> {
93
104
  const Component = component as any;
94
105
  return (
95
106
  <Component
107
+ {...(this.props.textMaxWidth && {
108
+ style: this.setChipStyle()
109
+ })}
96
110
  className={css(styles.chip, className)}
97
111
  {...(this.state.isTooltipVisible && { tabIndex: 0 })}
98
112
  {...getOUIAProps(Chip.displayName, ouiaId !== undefined ? ouiaId : this.state.ouiaStateId)}
@@ -38,4 +38,13 @@ describe('Chip', () => {
38
38
  );
39
39
  expect(asFragment()).toMatchSnapshot();
40
40
  });
41
+
42
+ test('custom max-width text', () => {
43
+ const { asFragment } = render(
44
+ <Chip className="my-chp-cls" textMaxWidth="100px">
45
+ 4 more
46
+ </Chip>
47
+ );
48
+ expect(asFragment()).toMatchSnapshot();
49
+ });
41
50
  });
@@ -86,6 +86,50 @@ exports[`Chip closable with tooltip 1`] = `
86
86
  </DocumentFragment>
87
87
  `;
88
88
 
89
+ exports[`Chip custom max-width text 1`] = `
90
+ <DocumentFragment>
91
+ <div
92
+ class="pf-c-chip my-chp-cls"
93
+ data-ouia-component-id="OUIA-Generated-Chip-5"
94
+ data-ouia-component-type="PF4/Chip"
95
+ data-ouia-safe="true"
96
+ style="--pf-c-chip__text--MaxWidth: 100px;"
97
+ >
98
+ <span
99
+ class="pf-c-chip__text"
100
+ id="pf-random-id-4"
101
+ >
102
+ 4 more
103
+ </span>
104
+ <button
105
+ aria-disabled="false"
106
+ aria-label="close"
107
+ aria-labelledby="remove_pf-random-id-4 pf-random-id-4"
108
+ class="pf-c-button pf-m-plain"
109
+ data-ouia-component-id="close"
110
+ data-ouia-component-type="PF4/Button"
111
+ data-ouia-safe="true"
112
+ id="remove_pf-random-id-4"
113
+ type="button"
114
+ >
115
+ <svg
116
+ aria-hidden="true"
117
+ fill="currentColor"
118
+ height="1em"
119
+ role="img"
120
+ style="vertical-align: -0.125em;"
121
+ viewBox="0 0 352 512"
122
+ width="1em"
123
+ >
124
+ <path
125
+ d="M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"
126
+ />
127
+ </svg>
128
+ </button>
129
+ </div>
130
+ </DocumentFragment>
131
+ `;
132
+
89
133
  exports[`Chip overflow 1`] = `
90
134
  <DocumentFragment>
91
135
  <div
@@ -91,7 +91,13 @@ export class Switch extends React.Component<SwitchProps & OUIAProps, { ouiaState
91
91
  />
92
92
  {label !== undefined ? (
93
93
  <React.Fragment>
94
- <span className={css(styles.switchToggle)} />
94
+ <span className={css(styles.switchToggle)}>
95
+ {hasCheckIcon && (
96
+ <span className={css(styles.switchToggleIcon)} aria-hidden="true">
97
+ <CheckIcon noVerticalAlign />
98
+ </span>
99
+ )}
100
+ </span>
95
101
  <span
96
102
  className={css(styles.switchLabel, styles.modifiers.on)}
97
103
  id={isAriaLabelledBy ? `${this.id}-on` : null}
@@ -99,11 +105,6 @@ export class Switch extends React.Component<SwitchProps & OUIAProps, { ouiaState
99
105
  >
100
106
  {label}
101
107
  </span>
102
- {hasCheckIcon && (
103
- <div className={css(styles.switchToggleIcon)} aria-hidden="true">
104
- <CheckIcon noVerticalAlign />
105
- </div>
106
- )}
107
108
  <span
108
109
  className={css(styles.switchLabel, styles.modifiers.off)}
109
110
  id={isAriaLabelledBy ? `${this.id}-off` : null}