@patternfly/documentation-framework 6.0.0-alpha.7 → 6.0.0-alpha.71

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 (40) hide show
  1. package/CHANGELOG.md +1075 -0
  2. package/app.js +2 -5
  3. package/components/autoLinkHeader/autoLinkHeader.css +2 -2
  4. package/components/autoLinkHeader/autoLinkHeader.js +8 -19
  5. package/components/cssVariables/cssVariables.css +9 -11
  6. package/components/cssVariables/cssVariables.js +19 -32
  7. package/components/example/example.css +14 -58
  8. package/components/example/example.js +149 -78
  9. package/components/example/exampleToolbar.js +3 -2
  10. package/components/footer/footer.css +16 -16
  11. package/components/footer/footer.js +32 -32
  12. package/components/gdprBanner/gdprBanner.css +0 -3
  13. package/components/gdprBanner/gdprBanner.js +22 -16
  14. package/components/inlineAlert/inlineAlert.js +1 -1
  15. package/components/propsTable/propsTable.js +14 -10
  16. package/components/sectionGallery/TextSummary.js +5 -5
  17. package/components/sectionGallery/sectionDataListLayout.js +87 -41
  18. package/components/sectionGallery/sectionGallery.css +4 -42
  19. package/components/sectionGallery/sectionGalleryLayout.js +73 -23
  20. package/components/sectionGallery/sectionGalleryToolbar.js +47 -12
  21. package/components/sideNav/sideNav.js +3 -4
  22. package/components/tableOfContents/tableOfContents.css +23 -36
  23. package/layouts/sideNavLayout/sideNavLayout.css +1 -36
  24. package/layouts/sideNavLayout/sideNavLayout.js +207 -112
  25. package/package.json +12 -19
  26. package/pages/404/404.css +2 -2
  27. package/pages/404/index.js +23 -36
  28. package/routes.js +3 -1
  29. package/scripts/md/anchor-header.js +1 -1
  30. package/scripts/md/parseMD.js +20 -18
  31. package/scripts/md/styled-tags.js +22 -14
  32. package/scripts/webpack/webpack.base.config.js +7 -18
  33. package/scripts/writeScreenshots.js +2 -2
  34. package/templates/mdx.css +11 -288
  35. package/templates/mdx.js +40 -43
  36. package/templates/patternfly-docs/patternfly-docs.source.js +8 -8
  37. package/versions.json +42 -14
  38. package/components/sideNav/sideNav.css +0 -21
  39. package/pages/global-css-variables.md +0 -109
  40. package/pages/img/component-variable-mapping.png +0 -0
@@ -1,41 +1,91 @@
1
- import React from "react";
2
- import { Gallery, GalleryItem, Card, CardTitle, CardBody, CardFooter, Label } from "@patternfly/react-core";
3
- import { Link } from '../link/link';
4
- import { TextSummary } from "./TextSummary";
1
+ import React from 'react';
2
+ import {
3
+ Gallery,
4
+ GalleryItem,
5
+ Card,
6
+ CardHeader,
7
+ CardTitle,
8
+ CardBody,
9
+ CardFooter,
10
+ Label,
11
+ } from '@patternfly/react-core';
12
+ import { navigate } from '@reach/router';
13
+ import { TextSummary } from './TextSummary';
5
14
 
6
- export const SectionGalleryLayout = ({ galleryItems, layoutView, hasGridText, hasGridImages }) => {
15
+ export const SectionGalleryLayout = ({
16
+ galleryItems,
17
+ layoutView,
18
+ hasGridText,
19
+ hasGridImages,
20
+ }) => {
7
21
  if (layoutView !== 'grid') {
8
22
  return null;
9
23
  }
10
24
 
11
25
  return (
12
26
  <Gallery hasGutter>
13
- {galleryItems.map(({idx, slug, id, itemName, illustration, isBeta, isDeprecated, isDemo, title, galleryItemsData}) => (
14
- <GalleryItem span={4} key={idx}>
15
- <Link to={slug} className="ws-section-gallery-item">
16
- <Card
17
- id={id}
18
- key={idx}
19
- isSelectableRaised
20
- >
21
- <CardTitle>{title}</CardTitle>
27
+ {galleryItems.map(
28
+ ({
29
+ idx,
30
+ slug,
31
+ id,
32
+ itemName,
33
+ illustration,
34
+ isBeta,
35
+ isDeprecated,
36
+ isDemo,
37
+ title,
38
+ galleryItemsData,
39
+ }) => (
40
+ <GalleryItem span={4} key={idx}>
41
+ <Card id={id} key={idx} isClickable>
42
+ <CardHeader
43
+ selectableActions={{
44
+ onClickAction: (e) => {
45
+ e.preventDefault();
46
+ document.getElementById('ws-page-main').scrollIntoView();
47
+ navigate(slug);
48
+ },
49
+ selectableActionId: `${id}-input`,
50
+ selectableActionAriaLabelledby: id,
51
+ name: `clickable-card-${idx}`,
52
+ }}
53
+ >
54
+ <CardTitle>{title}</CardTitle>
55
+ </CardHeader>
22
56
  {(hasGridImages || hasGridText) && (
23
57
  <CardBody>
24
- { hasGridImages && illustration && <img src={illustration} alt={`${itemName} illustration`} /> }
25
- { hasGridText && <TextSummary id={id} itemsData={galleryItemsData} /> }
58
+ {hasGridImages && illustration && (
59
+ <img src={illustration} alt={`${itemName} illustration`} />
60
+ )}
61
+ {hasGridText && (
62
+ <TextSummary id={id} itemsData={galleryItemsData} />
63
+ )}
26
64
  </CardBody>
27
65
  )}
28
66
  {(isBeta || isDeprecated || isDemo) && (
29
67
  <CardFooter>
30
- {isBeta && (<Label color="blue" isCompact>Beta</Label>)}
31
- {!isBeta && isDeprecated && (<Label color="grey" isCompact>Deprecated</Label>)}
32
- {!isBeta && !isDeprecated && isDemo && (<Label color="purple" isCompact>Demo</Label>)}
68
+ {isBeta && (
69
+ <Label color="blue" isCompact>
70
+ Beta
71
+ </Label>
72
+ )}
73
+ {!isBeta && isDeprecated && (
74
+ <Label color="grey" isCompact>
75
+ Deprecated
76
+ </Label>
77
+ )}
78
+ {!isBeta && !isDeprecated && isDemo && (
79
+ <Label color="purple" isCompact>
80
+ Demo
81
+ </Label>
82
+ )}
33
83
  </CardFooter>
34
84
  )}
35
85
  </Card>
36
- </Link>
37
- </GalleryItem>
38
- ))}
86
+ </GalleryItem>
87
+ )
88
+ )}
39
89
  </Gallery>
40
- )
90
+ );
41
91
  };
@@ -1,7 +1,18 @@
1
- import React from "react";
2
- import { Button, SearchInput, Toolbar, ToolbarContent, ToolbarGroup, ToolbarItem, Text, TextVariants, ToggleGroup, ToggleGroupItem } from '@patternfly/react-core';
1
+ import React from 'react';
2
+ import {
3
+ Button,
4
+ SearchInput,
5
+ Toolbar,
6
+ ToolbarContent,
7
+ ToolbarGroup,
8
+ ToolbarItem,
9
+ Content,
10
+ ContentVariants,
11
+ ToggleGroup,
12
+ ToggleGroupItem,
13
+ } from '@patternfly/react-core';
3
14
  import ListIcon from '@patternfly/react-icons/dist/esm/icons/list-icon';
4
- import ThIcon from'@patternfly/react-icons/dist/esm/icons/th-icon';
15
+ import ThIcon from '@patternfly/react-icons/dist/esm/icons/th-icon';
5
16
 
6
17
  export const SectionGalleryToolbar = ({
7
18
  galleryItems,
@@ -9,29 +20,53 @@ export const SectionGalleryToolbar = ({
9
20
  setSearchTerm,
10
21
  layoutView,
11
22
  setLayoutView,
12
- placeholderText ="Search by name",
13
- countText=" items"
23
+ placeholderText = 'Search by name',
24
+ countText = ' items',
14
25
  }) => (
15
26
  <Toolbar isSticky>
16
27
  <ToolbarContent>
17
- <ToolbarItem variant="search-filter" widths={{default: '100%', md: '320px'}}>
18
- <SearchInput onClear={false} value={searchTerm} placeholder={placeholderText} onChange={(_evt, val) => setSearchTerm(val)} />
28
+ <ToolbarItem>
29
+ <SearchInput
30
+ onClear={false}
31
+ value={searchTerm}
32
+ placeholder={placeholderText}
33
+ onChange={(_evt, val) => setSearchTerm(val)}
34
+ />
19
35
  </ToolbarItem>
20
36
  {searchTerm && (
21
37
  <ToolbarItem>
22
- <Button variant="link" onClick={() => setSearchTerm('')}>Reset</Button>
38
+ <Button variant="link" onClick={() => setSearchTerm('')}>
39
+ Reset
40
+ </Button>
23
41
  </ToolbarItem>
24
42
  )}
25
43
  <ToolbarGroup variant="icon-button-group">
26
44
  <ToolbarItem>
27
45
  <ToggleGroup>
28
- <ToggleGroupItem icon={<ThIcon />} aria-label="grid icon button" isSelected={layoutView === 'grid'} onChange={() => setLayoutView('grid')}></ToggleGroupItem>
29
- <ToggleGroupItem icon={<ListIcon />} aria-label="list icon button" isSelected={layoutView === 'list'} onChange={() => setLayoutView('list')}></ToggleGroupItem>
46
+ <ToggleGroupItem
47
+ icon={<ThIcon />}
48
+ aria-label="grid icon button"
49
+ isSelected={layoutView === 'grid'}
50
+ onChange={() => setLayoutView('grid')}
51
+ ></ToggleGroupItem>
52
+ <ToggleGroupItem
53
+ icon={<ListIcon />}
54
+ aria-label="list icon button"
55
+ isSelected={layoutView === 'list'}
56
+ onChange={() => setLayoutView('list')}
57
+ ></ToggleGroupItem>
30
58
  </ToggleGroup>
31
59
  </ToolbarItem>
32
60
  </ToolbarGroup>
33
- <ToolbarItem variant="pagination" spacer={{default: 'spacerMd', md: 'spacerNone'}} style={{'--pf-v5-c-toolbar__item--MinWidth': "max-content"}}>
34
- <Text component={TextVariants.small}>{ galleryItems.length }{ countText }</Text>
61
+ <ToolbarItem
62
+ variant="pagination"
63
+ spacer={{ default: 'spacerMd', md: 'spacerNone' }}
64
+ style={{ '--pf-v6-c-toolbar__item--MinWidth': 'max-content' }}
65
+ >
66
+ <Content component={ContentVariants.small}>
67
+ {galleryItems.length}
68
+ {countText}
69
+ </Content>
35
70
  </ToolbarItem>
36
71
  </ToolbarContent>
37
72
  </Toolbar>
@@ -19,14 +19,14 @@ const NavItem = ({ text, href, isDeprecated, isBeta, isDemo }) => {
19
19
  return (
20
20
  <PageContextConsumer key={href + text}>
21
21
  {({onSidebarToggle, isSidebarOpen }) => (
22
- <li key={href + text} className="pf-v5-c-nav__item" onClick={() => isMobileView && onSidebarToggle && onSidebarToggle()}>
22
+ <li key={href + text} className="pf-v6-c-nav__item" onClick={() => isMobileView && onSidebarToggle && onSidebarToggle()}>
23
23
  <Link
24
24
  to={href}
25
25
  getProps={({ isCurrent, href, location }) => {
26
26
  const { pathname } = location;
27
27
  return {
28
28
  className: css(
29
- 'pf-v5-c-nav__link',
29
+ 'pf-v6-c-nav__link',
30
30
  (isCurrent || pathname.startsWith(href + '/')) && 'pf-m-current'
31
31
  )
32
32
  }}
@@ -67,7 +67,6 @@ const ExpandableNav = ({groupedRoutes, location, section, subsection = null}) =>
67
67
  key={capitalize(currentSection.replace(/-/g, ' '))}
68
68
  isActive={isActive}
69
69
  isExpanded={isActive}
70
- className="ws-side-nav-group"
71
70
  onClick={(event) => {
72
71
  // Don't bubble click event up, avoids subsection triggering duplicate analtics
73
72
  event.stopPropagation();
@@ -96,7 +95,7 @@ const ExpandableNav = ({groupedRoutes, location, section, subsection = null}) =>
96
95
  source.source === "react-deprecated" || source.source === "html-deprecated")
97
96
  && !navObj.sources.some(source => source.source === "react" || source.source === "html")
98
97
  ),
99
- isBeta: navObj.sources.some(source => source.beta),
98
+ isBeta: navObj.sources.some(source => source.beta && source.source !== 'react-next' && source.source !== 'react-templates'),
100
99
  isDemo: navObj.sources.some(source => (
101
100
  source.source === "react-demos" || source.source === "html-demos")
102
101
  && !navObj.sources.some(source => source.source === "react" || source.source === "html")
@@ -1,45 +1,48 @@
1
1
  .ws-toc {
2
2
  align-self: flex-start;
3
3
  position: sticky;
4
- width: calc(100% + var(--pf-v5-c-page__main-section--PaddingLeft) + var(--pf-v5-c-page__main-section--PaddingRight));
5
- background-color: var(--pf-v5-global--BackgroundColor--200);
6
- z-index: 501;
7
- margin-block-start: calc(var(--pf-v5-c-page__main-section--PaddingTop) * -1);
8
- margin-block-end: var(--pf-v5-global--spacer--md);
9
- margin-inline-start: calc(var(--pf-v5-c-page__main-section--PaddingLeft) * -1);
10
- margin-inline-end: calc(var(--pf-v5-c-page__main-section--PaddingRight) * -2);
11
- padding-block-start: var(--pf-v5-global--spacer--md);
12
- padding-block-end: var(--pf-v5-global--spacer--md);
13
- padding-inline-start: var(--pf-v5-global--spacer--md);
4
+ width: calc(100% + var(--pf-v6-c-page__main-section--PaddingInlineStart) + var(--pf-v6-c-page__main-section--PaddingInlineEnd));
5
+ background-color: var(--pf-t--global--background--color--secondary--default);
6
+ z-index: 201;
7
+ margin-block-start: calc(var(--pf-v6-c-page__main-section--PaddingTop) * -1);
8
+ margin-block-end: var(--pf-t--global--spacer--md);
9
+ margin-inline-start: calc(var(--pf-v6-c-page__main-section--PaddingInlineStart) * -1);
10
+ margin-inline-end: calc(var(--pf-v6-c-page__main-section--PaddingInlineEnd) * -2);
11
+ padding-block-start: var(--pf-t--global--spacer--md);
12
+ padding-block-end: var(--pf-t--global--spacer--md);
13
+ padding-inline-start: var(--pf-t--global--spacer--md);
14
14
  padding-inline-end: 0;
15
- box-shadow: var(--pf-v5-global--BoxShadow--lg-bottom);
15
+ box-shadow: var(--pf-t--global--box-shadow--lg--bottom);
16
16
  }
17
17
 
18
18
  .ws-toc.pf-m-expanded {
19
- box-shadow: var(--pf-v5-global--BoxShadow--sm-bottom)
19
+ box-shadow: var(--pf-t--global--box-shadow--sm--bottom)
20
+ }
21
+
22
+ .ws-toc .pf-v6-c-jump-links__toggle {
23
+ background-color: var(--pf-t--global--background--color--secondary--default);
20
24
  }
21
25
 
22
26
  /* Mobile jumplinks */
23
27
  @media (max-width: 1450px) {
24
- .ws-toc.pf-m-expanded .pf-v5-c-jump-links__main {
28
+ .ws-toc.pf-m-expanded .pf-v6-c-jump-links__main {
25
29
  max-height: 65vh;
26
- overflow: auto;
30
+ overflow-y:auto;
27
31
  }
28
-
29
- .ws-toc .pf-v5-c-jump-links__header {
32
+
33
+ .ws-toc .pf-v6-c-jump-links__header {
30
34
  position: sticky;
31
35
  top: 0;
32
- background-color: var(--pf-v5-global--BackgroundColor--200);
33
36
  z-index: 2;
34
37
  }
35
38
  }
36
39
 
37
- .ws-toc .pf-v5-c-jump-links__main {
40
+ .ws-toc .pf-v6-c-jump-links__main {
38
41
  scrollbar-width: none;
39
42
  }
40
43
 
41
44
  /* Hide TOC scrollbar Chrome, Safari & Opera */
42
- .ws-toc .pf-v5-c-jump-links__main::-webkit-scrollbar {
45
+ .ws-toc .pf-v6-c-jump-links__main::-webkit-scrollbar {
43
46
  display: none;
44
47
  }
45
48
 
@@ -52,7 +55,7 @@
52
55
  -ms-overflow-style: none;
53
56
  scrollbar-width: none;
54
57
  order: 1;
55
- padding: 0 var(--pf-v5-global--spacer--lg) var(--pf-v5-global--spacer--lg) var(--pf-v5-global--spacer--2xl);
58
+ padding: 0 var(--pf-t--global--spacer--lg) var(--pf-t--global--spacer--lg) var(--pf-t--global--spacer--2xl);
56
59
  flex-grow: 1;
57
60
  background: none;
58
61
  margin: 0;
@@ -64,19 +67,3 @@
64
67
  }
65
68
  }
66
69
 
67
- /* .ws-toc-link { */
68
- .ws-toc-item .pf-v5-c-jump-links__link {
69
- position: relative;
70
- display: block;
71
- color: var(--ws-toc-link--Color, var(--pf-v5-global--Color--300));
72
- font-size: var(--pf-v5-global--FontSize--sm);
73
- margin: -4px 0;
74
- }
75
-
76
- .ws-toc-sublist > .ws-toc-item:first-child .pf-v5-c-jump-links__link {
77
- margin-top: 0;
78
- }
79
-
80
- .ws-toc-item.pf-m-current .pf-v5-c-jump-links__link::before {
81
- z-index: 1;
82
- }
@@ -1,5 +1,5 @@
1
1
  /* Page layout */
2
- /* tells .pf-v5-c-page to consume the available space left over from the banners/footers */
2
+ /* tells .pf-v6-c-page to consume the available space left over from the banners/footers */
3
3
  #ws-router {
4
4
  display: flex;
5
5
  flex-direction: column;
@@ -8,43 +8,8 @@
8
8
  flex: 1;
9
9
  }
10
10
 
11
- .ws-switcher-divider {
12
- padding: 0 var(--pf-v5-global--spacer--md);
13
- }
14
-
15
- @media (min-width: 1200px) {
16
- .ws-page-sidebar {
17
- box-shadow: none !important;
18
- }
19
- }
20
-
21
- .ws-page-sidebar > .pf-v5-c-page__sidebar-body {
22
- padding-top: var(--pf-v5-global--spacer--md);
23
- }
24
-
25
11
  /* Search */
26
12
  #algolia-autocomplete-listbox-0 {
27
13
  /* Fix search results overflowing page */
28
14
  min-width: 480px !important;
29
15
  }
30
- .ws-global-search.pf-v5-c-input-group {
31
- /* remove white background on dark Masthead */
32
- --pf-v5-c-input-group--BackgroundColor: none;
33
- }
34
-
35
- /* For tiny (200px) viewports */
36
- .ws-masthead .pf-v5-c-toolbar__item {
37
- min-width: 0;
38
- }
39
-
40
- .ws-masthead .pf-v5-c-switch {
41
- align-items: center;
42
- --pf-v5-c-switch__input--not-checked__label--Color: var(--pf-v5-global--Color--100);
43
- --pf-v5-c-switch__input--checked__label--Color: var(--pf-v5-global--Color--100);
44
- }
45
-
46
- .ws-masthead .pf-v5-c-toggle-group {
47
- --pf-v5-c-toggle-group__button--m-selected--BackgroundColor: var(--pf-v5-global--palette--blue-400);
48
- --pf-v5-c-toggle-group__button--focus--BackgroundColor: transparent;
49
- --pf-v5-c-toggle-group__button--hover--BackgroundColor: transparent;
50
- }