@patternfly/react-core 4.250.1 → 4.250.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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,25 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 4.250.3 (2022-10-12)
7
+
8
+ **Note:** Version bump only for package @patternfly/react-core
9
+
10
+
11
+
12
+
13
+
14
+ ## [4.250.2](https://github.com/patternfly/patternfly-react/compare/@patternfly/react-core@4.250.1...@patternfly/react-core@4.250.2) (2022-10-10)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * **Menu:** fixed height issue with drilldown examples ([#8033](https://github.com/patternfly/patternfly-react/issues/8033)) ([c0583b5](https://github.com/patternfly/patternfly-react/commit/c0583b530310b3d89be222e58fe926ecc6dd8d99))
20
+
21
+
22
+
23
+
24
+
6
25
  ## [4.250.1](https://github.com/patternfly/patternfly-react/compare/@patternfly/react-core@4.250.0...@patternfly/react-core@4.250.1) (2022-10-05)
7
26
 
8
27
  **Note:** Version bump only for package @patternfly/react-core
@@ -22792,6 +22792,52 @@ svg.pf-c-spinner.pf-m-xl {
22792
22792
  --pf-c-tooltip__arrow--Height: 0.9375rem;
22793
22793
  }
22794
22794
 
22795
+ .pf-c-number-input .pf-c-form-control {
22796
+ appearance: textfield;
22797
+ }
22798
+
22799
+ .pf-c-number-input .pf-c-form-control::-webkit-inner-spin-button, .pf-c-number-input .pf-c-form-control::-webkit-outer-spin-button {
22800
+ appearance: none;
22801
+ margin: 0;
22802
+ }
22803
+
22804
+ .pf-c-number-input {
22805
+ --pf-c-number-input__unit--c-input-group--MarginLeft: var(--pf-global--spacer--sm);
22806
+ --pf-c-number-input__icon--FontSize: var(--pf-global--FontSize--xs);
22807
+ --pf-c-number-input--c-form-control--width-base: calc(var(--pf-global--spacer--sm) * 2 + var(--pf-global--BorderWidth--sm) * 2);
22808
+ --pf-c-number-input--c-form-control--width-icon: 0px;
22809
+ --pf-c-number-input--m-status--c-form-control--width-icon: var(--pf-global--spacer--xl);
22810
+ --pf-c-number-input--c-form-control--width-chars: 4;
22811
+ --pf-c-number-input--c-form-control--Width:
22812
+ calc(
22813
+ calc(
22814
+ var(--pf-c-number-input--c-form-control--width-base) + var(--pf-c-number-input--c-form-control--width-chars) * 1ch
22815
+ ) + var(--pf-c-number-input--c-form-control--width-icon)
22816
+ );
22817
+ display: inline-flex;
22818
+ align-items: center;
22819
+ }
22820
+
22821
+ .pf-c-number-input.pf-m-status {
22822
+ --pf-c-number-input--c-form-control--width-icon: var(--pf-c-number-input--m-status--c-form-control--width-icon);
22823
+ }
22824
+
22825
+ .pf-c-number-input .pf-c-form-control {
22826
+ display: inline-flex;
22827
+ width: var(--pf-c-number-input--c-form-control--Width);
22828
+ text-align: right;
22829
+ }
22830
+
22831
+ .pf-c-input-group + .pf-c-number-input__unit,
22832
+ .pf-c-number-input__unit + .pf-c-input-group {
22833
+ margin-left: var(--pf-c-number-input__unit--c-input-group--MarginLeft);
22834
+ }
22835
+
22836
+ .pf-c-number-input__icon {
22837
+ display: flex;
22838
+ font-size: var(--pf-c-number-input__icon--FontSize);
22839
+ }
22840
+
22795
22841
  .pf-c-tree-view {
22796
22842
  --pf-c-tree-view--PaddingTop: var(--pf-global--spacer--sm);
22797
22843
  --pf-c-tree-view--PaddingBottom: var(--pf-global--spacer--sm);
@@ -23882,52 +23928,6 @@ label.pf-c-tree-view__node-text {
23882
23928
  color: var(--pf-global--Color--100);
23883
23929
  }
23884
23930
 
23885
- .pf-c-number-input .pf-c-form-control {
23886
- appearance: textfield;
23887
- }
23888
-
23889
- .pf-c-number-input .pf-c-form-control::-webkit-inner-spin-button, .pf-c-number-input .pf-c-form-control::-webkit-outer-spin-button {
23890
- appearance: none;
23891
- margin: 0;
23892
- }
23893
-
23894
- .pf-c-number-input {
23895
- --pf-c-number-input__unit--c-input-group--MarginLeft: var(--pf-global--spacer--sm);
23896
- --pf-c-number-input__icon--FontSize: var(--pf-global--FontSize--xs);
23897
- --pf-c-number-input--c-form-control--width-base: calc(var(--pf-global--spacer--sm) * 2 + var(--pf-global--BorderWidth--sm) * 2);
23898
- --pf-c-number-input--c-form-control--width-icon: 0px;
23899
- --pf-c-number-input--m-status--c-form-control--width-icon: var(--pf-global--spacer--xl);
23900
- --pf-c-number-input--c-form-control--width-chars: 4;
23901
- --pf-c-number-input--c-form-control--Width:
23902
- calc(
23903
- calc(
23904
- var(--pf-c-number-input--c-form-control--width-base) + var(--pf-c-number-input--c-form-control--width-chars) * 1ch
23905
- ) + var(--pf-c-number-input--c-form-control--width-icon)
23906
- );
23907
- display: inline-flex;
23908
- align-items: center;
23909
- }
23910
-
23911
- .pf-c-number-input.pf-m-status {
23912
- --pf-c-number-input--c-form-control--width-icon: var(--pf-c-number-input--m-status--c-form-control--width-icon);
23913
- }
23914
-
23915
- .pf-c-number-input .pf-c-form-control {
23916
- display: inline-flex;
23917
- width: var(--pf-c-number-input--c-form-control--Width);
23918
- text-align: right;
23919
- }
23920
-
23921
- .pf-c-input-group + .pf-c-number-input__unit,
23922
- .pf-c-number-input__unit + .pf-c-input-group {
23923
- margin-left: var(--pf-c-number-input__unit--c-input-group--MarginLeft);
23924
- }
23925
-
23926
- .pf-c-number-input__icon {
23927
- display: flex;
23928
- font-size: var(--pf-c-number-input__icon--FontSize);
23929
- }
23930
-
23931
23931
  .pf-c-draggable {
23932
23932
  --pf-c-draggable--Cursor: auto;
23933
23933
  --pf-c-draggable--m-dragging--Cursor: grabbing;
@@ -27636,6 +27636,18 @@ label.pf-c-tree-view__node-text {
27636
27636
  grid-gap: var(--pf-l-grid--m-gutter--GridGap);
27637
27637
  }
27638
27638
 
27639
+ .pf-l-level {
27640
+ --pf-l-level--m-gutter--MarginRight: var(--pf-global--gutter);
27641
+ display: flex;
27642
+ flex-wrap: wrap;
27643
+ align-items: center;
27644
+ justify-content: space-between;
27645
+ }
27646
+
27647
+ .pf-l-level.pf-m-gutter > *:not(:last-child) {
27648
+ margin-right: var(--pf-l-level--m-gutter--MarginRight);
27649
+ }
27650
+
27639
27651
  .pf-l-split {
27640
27652
  --pf-l-split--m-gutter--MarginRight: var(--pf-global--gutter);
27641
27653
  display: flex;
@@ -27655,18 +27667,6 @@ label.pf-c-tree-view__node-text {
27655
27667
  margin-right: var(--pf-l-split--m-gutter--MarginRight);
27656
27668
  }
27657
27669
 
27658
- .pf-l-level {
27659
- --pf-l-level--m-gutter--MarginRight: var(--pf-global--gutter);
27660
- display: flex;
27661
- flex-wrap: wrap;
27662
- align-items: center;
27663
- justify-content: space-between;
27664
- }
27665
-
27666
- .pf-l-level.pf-m-gutter > *:not(:last-child) {
27667
- margin-right: var(--pf-l-level--m-gutter--MarginRight);
27668
- }
27669
-
27670
27670
  .pf-l-stack {
27671
27671
  --pf-l-stack--m-gutter--MarginBottom: var(--pf-global--gutter);
27672
27672
  display: flex;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "4.250.1",
3
+ "version": "4.250.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",
@@ -70,5 +70,5 @@
70
70
  "react": "^16.8 || ^17 || ^18",
71
71
  "react-dom": "^16.8 || ^17 || ^18"
72
72
  },
73
- "gitHead": "b44f6c31e0ab822af9626fd16912d4eb6ba01f3e"
73
+ "gitHead": "5daeed558b92f13887c4ae278c2356abe2d22bae"
74
74
  }
@@ -1,27 +1,92 @@
1
+ import * as React from 'react';
2
+ import { render, screen } from '@testing-library/react';
1
3
  import { Banner } from '../Banner';
2
- import React from 'react';
3
- import { render } from '@testing-library/react';
4
-
5
- ['default', 'info', 'success', 'warning', 'danger'].forEach((variant: string) => {
6
- test(`${variant} banner`, () => {
7
- const { asFragment } = render(
8
- <Banner
9
- variant={variant as 'default' | 'info' | 'success' | 'warning' | 'danger'}
10
- aria-label={variant}
11
- screenReaderText={`${variant} banner`}
12
- >
13
- {variant} Banner
14
- </Banner>
15
- );
16
- expect(asFragment()).toMatchSnapshot();
17
- });
18
- });
19
-
20
- test(`sticky banner`, () => {
21
- const { asFragment } = render(
22
- <Banner aria-label="sticky" isSticky>
23
- Sticky Banner
24
- </Banner>
4
+
5
+ test('Renders without children', () => {
6
+ render(
7
+ <div data-testid="banner">
8
+ <Banner />
9
+ </div>
25
10
  );
11
+ expect(screen.getByTestId('banner').firstChild).toBeVisible();
12
+ });
13
+
14
+ test('Renders children', () => {
15
+ render(<Banner>Test</Banner>);
16
+ expect(screen.getByText('Test')).toBeVisible();
17
+ });
18
+
19
+ test('Renders with class name pf-c-banner', () => {
20
+ render(<Banner>Test</Banner>);
21
+ expect(screen.getByText('Test')).toHaveClass('pf-c-banner');
22
+ });
23
+
24
+ test('Renders with custom class name when className prop is provided', () => {
25
+ render(<Banner className="custom-class">Test</Banner>);
26
+ expect(screen.getByText('Test')).toHaveClass('custom-class');
27
+ });
28
+
29
+ test('Renders without any modifier class when variant prop is not passed', () => {
30
+ render(<Banner>Test</Banner>);
31
+ expect(screen.getByText('Test')).toHaveClass('pf-c-banner', { exact: true });
32
+ });
33
+
34
+ test('Renders with class name pf-m-success when "success" is passed to variant prop', () => {
35
+ render(<Banner variant="success">Test</Banner>);
36
+ expect(screen.getByText('Test')).toHaveClass('pf-m-success');
37
+ });
38
+
39
+ test('Renders with class name pf-m-danger when "danger" is passed to variant prop', () => {
40
+ render(<Banner variant="danger">Test</Banner>);
41
+ expect(screen.getByText('Test')).toHaveClass('pf-m-danger');
42
+ });
43
+
44
+ test('Renders with class name pf-m-warning when "warning" is passed to variant prop', () => {
45
+ render(<Banner variant="warning">Test</Banner>);
46
+ expect(screen.getByText('Test')).toHaveClass('pf-m-warning');
47
+ });
48
+
49
+ test('Renders with class name pf-m-info when "info" is passed to variant prop', () => {
50
+ render(<Banner variant="info">Test</Banner>);
51
+ expect(screen.getByText('Test')).toHaveClass('pf-m-info');
52
+ });
53
+
54
+ test('Renders pf-u-screen-reader class by default for screenReaderText', () => {
55
+ render(<Banner>Test</Banner>);
56
+ expect(screen.getByText('default banner')).toHaveClass('pf-u-screen-reader', { exact: true });
57
+ });
58
+
59
+ test('Renders screenReaderText as "default banner" by default', () => {
60
+ render(<Banner>Test</Banner>);
61
+ expect(screen.getByText('default banner')).toBeInTheDocument();
62
+ });
63
+
64
+ test('Renders screenReaderText as "success banner" when variant="success"', () => {
65
+ render(<Banner variant="success">Test</Banner>);
66
+ expect(screen.getByText('success banner')).toBeInTheDocument();
67
+ });
68
+
69
+ test('Renders custom screenReaderText passed via prop', () => {
70
+ render(<Banner screenReaderText="Custom screen reader text">Test</Banner>);
71
+ expect(screen.getByText('Custom screen reader text')).toBeInTheDocument();
72
+ });
73
+
74
+ test('Renders without pf-m-sticky by default', () => {
75
+ render(<Banner>Test</Banner>);
76
+ expect(screen.getByText('Test')).not.toHaveClass('pf-m-sticky');
77
+ });
78
+
79
+ test('Renders with class name pf-m-sticky when isSticky prop is passed', () => {
80
+ render(<Banner isSticky>Test</Banner>);
81
+ expect(screen.getByText('Test')).toHaveClass('pf-m-sticky');
82
+ });
83
+
84
+ test('Renders with inherited element props spread to the component', () => {
85
+ render(<Banner aria-label="Test label">Test</Banner>);
86
+ expect(screen.getByText('Test')).toHaveAccessibleName('Test label');
87
+ });
88
+
89
+ test('Matches the snapshot', () => {
90
+ const { asFragment } = render(<Banner>Test</Banner>);
26
91
  expect(asFragment()).toMatchSnapshot();
27
92
  });
@@ -1,60 +1,11 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
- exports[`danger banner 1`] = `
3
+ exports[`Matches the snapshot 1`] = `
4
4
  <DocumentFragment>
5
5
  <div
6
- aria-label="danger"
7
- class="pf-c-banner pf-m-danger"
8
- >
9
- danger Banner
10
- <span
11
- class="pf-u-screen-reader"
12
- >
13
- danger banner
14
- </span>
15
- </div>
16
- </DocumentFragment>
17
- `;
18
-
19
- exports[`default banner 1`] = `
20
- <DocumentFragment>
21
- <div
22
- aria-label="default"
23
6
  class="pf-c-banner"
24
7
  >
25
- default Banner
26
- <span
27
- class="pf-u-screen-reader"
28
- >
29
- default banner
30
- </span>
31
- </div>
32
- </DocumentFragment>
33
- `;
34
-
35
- exports[`info banner 1`] = `
36
- <DocumentFragment>
37
- <div
38
- aria-label="info"
39
- class="pf-c-banner pf-m-info"
40
- >
41
- info Banner
42
- <span
43
- class="pf-u-screen-reader"
44
- >
45
- info banner
46
- </span>
47
- </div>
48
- </DocumentFragment>
49
- `;
50
-
51
- exports[`sticky banner 1`] = `
52
- <DocumentFragment>
53
- <div
54
- aria-label="sticky"
55
- class="pf-c-banner pf-m-sticky"
56
- >
57
- Sticky Banner
8
+ Test
58
9
  <span
59
10
  class="pf-u-screen-reader"
60
11
  >
@@ -63,35 +14,3 @@ exports[`sticky banner 1`] = `
63
14
  </div>
64
15
  </DocumentFragment>
65
16
  `;
66
-
67
- exports[`success banner 1`] = `
68
- <DocumentFragment>
69
- <div
70
- aria-label="success"
71
- class="pf-c-banner pf-m-success"
72
- >
73
- success Banner
74
- <span
75
- class="pf-u-screen-reader"
76
- >
77
- success banner
78
- </span>
79
- </div>
80
- </DocumentFragment>
81
- `;
82
-
83
- exports[`warning banner 1`] = `
84
- <DocumentFragment>
85
- <div
86
- aria-label="warning"
87
- class="pf-c-banner pf-m-warning"
88
- >
89
- warning Banner
90
- <span
91
- class="pf-u-screen-reader"
92
- >
93
- warning banner
94
- </span>
95
- </div>
96
- </DocumentFragment>
97
- `;
@@ -26,7 +26,7 @@ export const MenuWithDrilldown: React.FunctionComponent = () => {
26
26
  };
27
27
 
28
28
  const setHeight = (menuId: string, height: number) => {
29
- if (menuHeights[menuId] === undefined) {
29
+ if (menuHeights[menuId] === undefined || (menuId !== 'drilldown-rootMenu' && menuHeights[menuId] !== height)) {
30
30
  setMenuHeights({ ...menuHeights, [menuId]: height });
31
31
  }
32
32
  };
@@ -55,11 +55,13 @@ export const MenuWithDrilldownBreadcrumbs: React.FunctionComponent = () => {
55
55
  setDrilldownPath(pathSansLast);
56
56
  setActiveMenu(toMenuId);
57
57
  };
58
+
58
59
  const setHeight = (menuId: string, height: number) => {
59
- if (!menuHeights[menuId]) {
60
+ if (menuHeights[menuId] === undefined || (menuId !== 'breadcrumbs-rootMenu' && menuHeights[menuId] !== height)) {
60
61
  setMenuHeights({ ...menuHeights, [menuId]: height });
61
62
  }
62
63
  };
64
+
63
65
  const drillIn = (fromMenuId: string, toMenuId: string, pathId: string) => {
64
66
  setMenuDrilledIn([...menuDrilledIn, fromMenuId]);
65
67
  setDrilldownPath([...drilldownPath, pathId]);
@@ -26,7 +26,7 @@ export const MenuWithDrilldownSubmenuFunctions: React.FunctionComponent = () =>
26
26
  };
27
27
 
28
28
  const setHeight = (menuId: string, height: number) => {
29
- if (menuHeights[menuId] === undefined) {
29
+ if (menuHeights[menuId] === undefined || (menuId !== 'functions-rootMenu' && menuHeights[menuId] !== height)) {
30
30
  setMenuHeights({ ...menuHeights, [menuId]: height });
31
31
  }
32
32
  };
@@ -7,105 +7,28 @@ propComponents: ['Sidebar', 'SidebarContent', 'SidebarPanel']
7
7
 
8
8
  ## Examples
9
9
  ### Basic
10
- ```js
11
- import React from 'react';
12
- import { Sidebar, SidebarContent, SidebarPanel } from '@patternfly/react-core';
13
-
14
- <Sidebar>
15
- <SidebarPanel>
16
- Sidebar panel
17
- </SidebarPanel>
18
- <SidebarContent>
19
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse dapibus nulla id augue dictum commodo. Donec mollis arcu massa, sollicitudin venenatis est rutrum vitae. Integer pulvinar ligula at augue mollis, ac pulvinar arcu semper. Maecenas nisi lorem, malesuada ac lectus nec, porta pretium neque. Ut convallis libero sit amet metus mattis, vel facilisis lorem malesuada. Duis consectetur ante sit amet magna efficitur, a interdum leo vulputate.</p>
20
- <p>Praesent at odio nec sapien ultrices tincidunt in non mauris. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis consectetur nisl quis facilisis faucibus. Sed eu bibendum risus. Suspendisse porta euismod tortor, at elementum odio suscipit sed. Cras eget ultrices urna, ac feugiat lectus. Integer a pharetra velit, in imperdiet mi. Phasellus vel hendrerit velit. Vestibulum ut augue vitae erat vulputate bibendum a ut magna.</p>
21
- </SidebarContent>
22
- </Sidebar>
10
+ ```ts file="./SidebarBasic.tsx"
23
11
  ```
24
12
 
25
13
  ### Stack
26
- ```js
27
- import React from 'react';
28
- import { Sidebar, SidebarContent, SidebarPanel } from '@patternfly/react-core';
29
-
30
- <Sidebar orientation="stack">
31
- <SidebarPanel>
32
- Sidebar panel stacked on top
33
- </SidebarPanel>
34
- <SidebarContent>
35
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse dapibus nulla id augue dictum commodo. Donec mollis arcu massa, sollicitudin venenatis est rutrum vitae. Integer pulvinar ligula at augue mollis, ac pulvinar arcu semper. Maecenas nisi lorem, malesuada ac lectus nec, porta pretium neque. Ut convallis libero sit amet metus mattis, vel facilisis lorem malesuada. Duis consectetur ante sit amet magna efficitur, a interdum leo vulputate.</p>
36
- <p>Praesent at odio nec sapien ultrices tincidunt in non mauris. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis consectetur nisl quis facilisis faucibus. Sed eu bibendum risus. Suspendisse porta euismod tortor, at elementum odio suscipit sed. Cras eget ultrices urna, ac feugiat lectus. Integer a pharetra velit, in imperdiet mi. Phasellus vel hendrerit velit. Vestibulum ut augue vitae erat vulputate bibendum a ut magna.</p>
37
- </SidebarContent>
38
- </Sidebar>
14
+ ```ts file="./SidebarStack.tsx"
39
15
  ```
40
16
 
41
17
  ### Panel right with gutter
42
- ```js
43
- import React from 'react';
44
- import { Sidebar, SidebarContent, SidebarPanel } from '@patternfly/react-core';
45
-
46
- <Sidebar isPanelRight hasGutter>
47
- <SidebarPanel>
48
- Sidebar panel on the right
49
- </SidebarPanel>
50
- <SidebarContent>
51
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse dapibus nulla id augue dictum commodo. Donec mollis arcu massa, sollicitudin venenatis est rutrum vitae. Integer pulvinar ligula at augue mollis, ac pulvinar arcu semper. Maecenas nisi lorem, malesuada ac lectus nec, porta pretium neque. Ut convallis libero sit amet metus mattis, vel facilisis lorem malesuada. Duis consectetur ante sit amet magna efficitur, a interdum leo vulputate.</p>
52
- <p>Praesent at odio nec sapien ultrices tincidunt in non mauris. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis consectetur nisl quis facilisis faucibus. Sed eu bibendum risus. Suspendisse porta euismod tortor, at elementum odio suscipit sed. Cras eget ultrices urna, ac feugiat lectus. Integer a pharetra velit, in imperdiet mi. Phasellus vel hendrerit velit. Vestibulum ut augue vitae erat vulputate bibendum a ut magna.</p>
53
- </SidebarContent>
54
- </Sidebar>
18
+ ```ts file="./SidebarPanelRightGutter.tsx"
55
19
  ```
56
20
 
57
21
  ### Sticky panel
58
22
  A `tabIndex` should be added to the `Sidebar` when there is scrollable content in order for the overflow content to be accessible by keyboard.
59
- ```js
60
- import React from 'react';
61
- import { Sidebar, SidebarContent, SidebarPanel } from '@patternfly/react-core';
62
-
63
- <Sidebar style={{ height: '200px', overflow: 'auto' }} tabIndex={0}>
64
- <SidebarPanel variant="sticky">
65
- Sticky sidebar panel
66
- </SidebarPanel>
67
- <SidebarContent>
68
- <p>Scroll me!</p>
69
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse dapibus nulla id augue dictum commodo. Donec mollis arcu massa, sollicitudin venenatis est rutrum vitae. Integer pulvinar ligula at augue mollis, ac pulvinar arcu semper. Maecenas nisi lorem, malesuada ac lectus nec, porta pretium neque. Ut convallis libero sit amet metus mattis, vel facilisis lorem malesuada. Duis consectetur ante sit amet magna efficitur, a interdum leo vulputate.</p>
70
- <p>Praesent at odio nec sapien ultrices tincidunt in non mauris. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis consectetur nisl quis facilisis faucibus. Sed eu bibendum risus. Suspendisse porta euismod tortor, at elementum odio suscipit sed. Cras eget ultrices urna, ac feugiat lectus. Integer a pharetra velit, in imperdiet mi. Phasellus vel hendrerit velit. Vestibulum ut augue vitae erat vulputate bibendum a ut magna.</p>
71
- </SidebarContent>
72
- </Sidebar>
23
+ ```ts file="./SidebarStickyPanel.tsx"
73
24
  ```
74
25
 
75
26
  ### Static panel
76
27
  A `tabIndex` should be added to the `Sidebar` when there is scrollable content in order for the overflow content to be accessible by keyboard.
77
- ```js
78
- import React from 'react';
79
- import { Sidebar, SidebarContent, SidebarPanel } from '@patternfly/react-core';
80
-
81
- <Sidebar style={{ height: '200px', overflow: 'auto' }} tabIndex={0}>
82
- <SidebarPanel variant="static">
83
- Static sidebar panel
84
- </SidebarPanel>
85
- <SidebarContent>
86
- <p>Scroll me!</p>
87
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse dapibus nulla id augue dictum commodo. Donec mollis arcu massa, sollicitudin venenatis est rutrum vitae. Integer pulvinar ligula at augue mollis, ac pulvinar arcu semper. Maecenas nisi lorem, malesuada ac lectus nec, porta pretium neque. Ut convallis libero sit amet metus mattis, vel facilisis lorem malesuada. Duis consectetur ante sit amet magna efficitur, a interdum leo vulputate.</p>
88
- <p>Praesent at odio nec sapien ultrices tincidunt in non mauris. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis consectetur nisl quis facilisis faucibus. Sed eu bibendum risus. Suspendisse porta euismod tortor, at elementum odio suscipit sed. Cras eget ultrices urna, ac feugiat lectus. Integer a pharetra velit, in imperdiet mi. Phasellus vel hendrerit velit. Vestibulum ut augue vitae erat vulputate bibendum a ut magna.</p>
89
- </SidebarContent>
90
- </Sidebar>
28
+ ```ts file="./SidebarStaticPanel.tsx"
91
29
  ```
92
30
 
93
31
  ### Responsive panel width
94
32
  A `tabIndex` should be added to the `Sidebar` when there is scrollable content in order for the overflow content to be accessible by keyboard.
95
- ```js
96
- import React from 'react';
97
- import { Sidebar, SidebarContent, SidebarPanel } from '@patternfly/react-core';
98
-
99
- <Sidebar style={{ height: '200px', overflow: 'auto' }} tabIndex={0}>
100
- <SidebarPanel width={{ default: 'width_50', lg: 'width_33', xl: 'width_75' }}>
101
- Sidebar panel
102
- </SidebarPanel>
103
- <SidebarContent>
104
- <p>Resize me!</p>
105
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse dapibus nulla id augue dictum commodo. Donec mollis arcu massa, sollicitudin venenatis est rutrum vitae. Integer pulvinar ligula at augue mollis, ac pulvinar arcu semper. Maecenas nisi lorem, malesuada ac lectus nec, porta pretium neque. Ut convallis libero sit amet metus mattis, vel facilisis lorem malesuada. Duis consectetur ante sit amet magna efficitur, a interdum leo vulputate.</p>
106
- <p>Praesent at odio nec sapien ultrices tincidunt in non mauris. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis consectetur nisl quis facilisis faucibus. Sed eu bibendum risus. Suspendisse porta euismod tortor, at elementum odio suscipit sed. Cras eget ultrices urna, ac feugiat lectus. Integer a pharetra velit, in imperdiet mi. Phasellus vel hendrerit velit. Vestibulum ut augue vitae erat vulputate bibendum a ut magna.</p>
107
- </SidebarContent>
108
- </Sidebar>
33
+ ```ts file="./SidebarResponsivePanel.tsx"
109
34
  ```
110
-
111
-
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import { Sidebar, SidebarContent, SidebarPanel } from '@patternfly/react-core';
3
+
4
+ export const SidebarBasic: React.FunctionComponent = () => (
5
+ <Sidebar>
6
+ <SidebarPanel>Sidebar panel</SidebarPanel>
7
+ <SidebarContent>
8
+ <p>
9
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse dapibus nulla id augue dictum commodo.
10
+ Donec mollis arcu massa, sollicitudin venenatis est rutrum vitae. Integer pulvinar ligula at augue mollis, ac
11
+ pulvinar arcu semper. Maecenas nisi lorem, malesuada ac lectus nec, porta pretium neque. Ut convallis libero sit
12
+ amet metus mattis, vel facilisis lorem malesuada. Duis consectetur ante sit amet magna efficitur, a interdum leo
13
+ vulputate.
14
+ </p>
15
+ <p>
16
+ Praesent at odio nec sapien ultrices tincidunt in non mauris. Orci varius natoque penatibus et magnis dis
17
+ parturient montes, nascetur ridiculus mus. Duis consectetur nisl quis facilisis faucibus. Sed eu bibendum risus.
18
+ Suspendisse porta euismod tortor, at elementum odio suscipit sed. Cras eget ultrices urna, ac feugiat lectus.
19
+ Integer a pharetra velit, in imperdiet mi. Phasellus vel hendrerit velit. Vestibulum ut augue vitae erat
20
+ vulputate bibendum a ut magna.
21
+ </p>
22
+ </SidebarContent>
23
+ </Sidebar>
24
+ );
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import { Sidebar, SidebarContent, SidebarPanel } from '@patternfly/react-core';
3
+
4
+ export const SidebarPanelRightGutter: React.FunctionComponent = () => (
5
+ <Sidebar isPanelRight hasGutter>
6
+ <SidebarPanel>Sidebar panel on the right</SidebarPanel>
7
+ <SidebarContent>
8
+ <p>
9
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse dapibus nulla id augue dictum commodo.
10
+ Donec mollis arcu massa, sollicitudin venenatis est rutrum vitae. Integer pulvinar ligula at augue mollis, ac
11
+ pulvinar arcu semper. Maecenas nisi lorem, malesuada ac lectus nec, porta pretium neque. Ut convallis libero sit
12
+ amet metus mattis, vel facilisis lorem malesuada. Duis consectetur ante sit amet magna efficitur, a interdum leo
13
+ vulputate.
14
+ </p>
15
+ <p>
16
+ Praesent at odio nec sapien ultrices tincidunt in non mauris. Orci varius natoque penatibus et magnis dis
17
+ parturient montes, nascetur ridiculus mus. Duis consectetur nisl quis facilisis faucibus. Sed eu bibendum risus.
18
+ Suspendisse porta euismod tortor, at elementum odio suscipit sed. Cras eget ultrices urna, ac feugiat lectus.
19
+ Integer a pharetra velit, in imperdiet mi. Phasellus vel hendrerit velit. Vestibulum ut augue vitae erat
20
+ vulputate bibendum a ut magna.
21
+ </p>
22
+ </SidebarContent>
23
+ </Sidebar>
24
+ );
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { Sidebar, SidebarContent, SidebarPanel } from '@patternfly/react-core';
3
+
4
+ export const SidebarResponsivePanel: React.FunctionComponent = () => (
5
+ <Sidebar style={{ height: '200px', overflow: 'auto' }} tabIndex={0}>
6
+ <SidebarPanel width={{ default: 'width_50', lg: 'width_33', xl: 'width_75' }}>Sidebar panel</SidebarPanel>
7
+ <SidebarContent>
8
+ <p>Resize me!</p>
9
+ <p>
10
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse dapibus nulla id augue dictum commodo.
11
+ Donec mollis arcu massa, sollicitudin venenatis est rutrum vitae. Integer pulvinar ligula at augue mollis, ac
12
+ pulvinar arcu semper. Maecenas nisi lorem, malesuada ac lectus nec, porta pretium neque. Ut convallis libero sit
13
+ amet metus mattis, vel facilisis lorem malesuada. Duis consectetur ante sit amet magna efficitur, a interdum leo
14
+ vulputate.
15
+ </p>
16
+ <p>
17
+ Praesent at odio nec sapien ultrices tincidunt in non mauris. Orci varius natoque penatibus et magnis dis
18
+ parturient montes, nascetur ridiculus mus. Duis consectetur nisl quis facilisis faucibus. Sed eu bibendum risus.
19
+ Suspendisse porta euismod tortor, at elementum odio suscipit sed. Cras eget ultrices urna, ac feugiat lectus.
20
+ Integer a pharetra velit, in imperdiet mi. Phasellus vel hendrerit velit. Vestibulum ut augue vitae erat
21
+ vulputate bibendum a ut magna.
22
+ </p>
23
+ </SidebarContent>
24
+ </Sidebar>
25
+ );
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import { Sidebar, SidebarContent, SidebarPanel } from '@patternfly/react-core';
3
+
4
+ export const SidebarStack: React.FunctionComponent = () => (
5
+ <Sidebar orientation="stack">
6
+ <SidebarPanel>Sidebar panel stacked on top</SidebarPanel>
7
+ <SidebarContent>
8
+ <p>
9
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse dapibus nulla id augue dictum commodo.
10
+ Donec mollis arcu massa, sollicitudin venenatis est rutrum vitae. Integer pulvinar ligula at augue mollis, ac
11
+ pulvinar arcu semper. Maecenas nisi lorem, malesuada ac lectus nec, porta pretium neque. Ut convallis libero sit
12
+ amet metus mattis, vel facilisis lorem malesuada. Duis consectetur ante sit amet magna efficitur, a interdum leo
13
+ vulputate.
14
+ </p>
15
+ <p>
16
+ Praesent at odio nec sapien ultrices tincidunt in non mauris. Orci varius natoque penatibus et magnis dis
17
+ parturient montes, nascetur ridiculus mus. Duis consectetur nisl quis facilisis faucibus. Sed eu bibendum risus.
18
+ Suspendisse porta euismod tortor, at elementum odio suscipit sed. Cras eget ultrices urna, ac feugiat lectus.
19
+ Integer a pharetra velit, in imperdiet mi. Phasellus vel hendrerit velit. Vestibulum ut augue vitae erat
20
+ vulputate bibendum a ut magna.
21
+ </p>
22
+ </SidebarContent>
23
+ </Sidebar>
24
+ );
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { Sidebar, SidebarContent, SidebarPanel } from '@patternfly/react-core';
3
+
4
+ export const SidebarStaticPanel: React.FunctionComponent = () => (
5
+ <Sidebar style={{ height: '200px', overflow: 'auto' }} tabIndex={0}>
6
+ <SidebarPanel variant="static">Static sidebar panel</SidebarPanel>
7
+ <SidebarContent>
8
+ <p>Scroll me!</p>
9
+ <p>
10
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse dapibus nulla id augue dictum commodo.
11
+ Donec mollis arcu massa, sollicitudin venenatis est rutrum vitae. Integer pulvinar ligula at augue mollis, ac
12
+ pulvinar arcu semper. Maecenas nisi lorem, malesuada ac lectus nec, porta pretium neque. Ut convallis libero sit
13
+ amet metus mattis, vel facilisis lorem malesuada. Duis consectetur ante sit amet magna efficitur, a interdum leo
14
+ vulputate.
15
+ </p>
16
+ <p>
17
+ Praesent at odio nec sapien ultrices tincidunt in non mauris. Orci varius natoque penatibus et magnis dis
18
+ parturient montes, nascetur ridiculus mus. Duis consectetur nisl quis facilisis faucibus. Sed eu bibendum risus.
19
+ Suspendisse porta euismod tortor, at elementum odio suscipit sed. Cras eget ultrices urna, ac feugiat lectus.
20
+ Integer a pharetra velit, in imperdiet mi. Phasellus vel hendrerit velit. Vestibulum ut augue vitae erat
21
+ vulputate bibendum a ut magna.
22
+ </p>
23
+ </SidebarContent>
24
+ </Sidebar>
25
+ );
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { Sidebar, SidebarContent, SidebarPanel } from '@patternfly/react-core';
3
+
4
+ export const SidebarStickyPanel: React.FunctionComponent = () => (
5
+ <Sidebar style={{ height: '200px', overflow: 'auto' }} tabIndex={0}>
6
+ <SidebarPanel variant="sticky">Sticky sidebar panel</SidebarPanel>
7
+ <SidebarContent>
8
+ <p>Scroll me!</p>
9
+ <p>
10
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse dapibus nulla id augue dictum commodo.
11
+ Donec mollis arcu massa, sollicitudin venenatis est rutrum vitae. Integer pulvinar ligula at augue mollis, ac
12
+ pulvinar arcu semper. Maecenas nisi lorem, malesuada ac lectus nec, porta pretium neque. Ut convallis libero sit
13
+ amet metus mattis, vel facilisis lorem malesuada. Duis consectetur ante sit amet magna efficitur, a interdum leo
14
+ vulputate.
15
+ </p>
16
+ <p>
17
+ Praesent at odio nec sapien ultrices tincidunt in non mauris. Orci varius natoque penatibus et magnis dis
18
+ parturient montes, nascetur ridiculus mus. Duis consectetur nisl quis facilisis faucibus. Sed eu bibendum risus.
19
+ Suspendisse porta euismod tortor, at elementum odio suscipit sed. Cras eget ultrices urna, ac feugiat lectus.
20
+ Integer a pharetra velit, in imperdiet mi. Phasellus vel hendrerit velit. Vestibulum ut augue vitae erat
21
+ vulputate bibendum a ut magna.
22
+ </p>
23
+ </SidebarContent>
24
+ </Sidebar>
25
+ );