@patternfly/quickstarts 2.3.3 → 2.4.1
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/dist/ConsoleShared/src/components/markdown-extensions/accordion-extension.d.ts +7 -0
- package/dist/ConsoleShared/src/components/markdown-extensions/accordion-render-extension.d.ts +6 -0
- package/dist/ConsoleShared/src/components/markdown-extensions/const.d.ts +2 -0
- package/dist/ConsoleShared/src/components/markdown-extensions/index.d.ts +2 -0
- package/dist/index.es.js +48 -4
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +47 -3
- package/dist/index.js.map +1 -1
- package/dist/patternfly-docs/quick-starts/examples/about.md +28 -21
- package/dist/patternfly-docs/quick-starts/examples/basic.md +7 -5
- package/dist/patternfly-docs/quick-starts/examples/help-topics.md +8 -5
- package/dist/patternfly-nested.css +209 -1
- package/dist/quickstarts-full.es.js +398 -327
- package/dist/quickstarts-full.es.js.map +1 -1
- package/dist/quickstarts-standalone.min.css +1 -1
- package/package.json +6 -2
- package/src/ConsoleShared/src/components/markdown-extensions/accordion-extension.tsx +52 -0
- package/src/ConsoleShared/src/components/markdown-extensions/accordion-render-extension.tsx +60 -0
- package/src/ConsoleShared/src/components/markdown-extensions/const.ts +2 -0
- package/src/ConsoleShared/src/components/markdown-extensions/index.ts +2 -0
- package/src/HelpTopicPanelContent.tsx +1 -1
- package/src/QuickStartMarkdownView.tsx +5 -0
- package/src/QuickStartPanelContent.tsx +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/quickstarts",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.1",
|
|
4
4
|
"description": "PatternFly quick starts",
|
|
5
5
|
"files": [
|
|
6
6
|
"src",
|
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
"main": "dist/index.js",
|
|
10
10
|
"module": "dist/index.es.js",
|
|
11
11
|
"types": "dist/index.d.ts",
|
|
12
|
+
"publishConfig": {
|
|
13
|
+
"access": "public",
|
|
14
|
+
"tag": "prerelease"
|
|
15
|
+
},
|
|
12
16
|
"repository": {
|
|
13
17
|
"type": "git",
|
|
14
18
|
"url": "git+https://github.com/patternfly/patternfly-quickstarts.git"
|
|
@@ -53,7 +57,7 @@
|
|
|
53
57
|
"showdown": "1.8.6"
|
|
54
58
|
},
|
|
55
59
|
"devDependencies": {
|
|
56
|
-
"@patternfly/documentation-framework": "1.0
|
|
60
|
+
"@patternfly/documentation-framework": "^1.8.0",
|
|
57
61
|
"@patternfly/patternfly": "^4.222.4",
|
|
58
62
|
"@patternfly/react-core": "^4.267.6",
|
|
59
63
|
"@patternfly/react-icons": "4.93.6",
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import {
|
|
3
|
+
Accordion,
|
|
4
|
+
AccordionItem,
|
|
5
|
+
AccordionToggle,
|
|
6
|
+
AccordionContent,
|
|
7
|
+
} from '@patternfly/react-core';
|
|
8
|
+
import { renderToStaticMarkup } from 'react-dom/server';
|
|
9
|
+
import { removeTemplateWhitespace } from './utils';
|
|
10
|
+
import { ACCORDION_MARKDOWN_BUTTON_ID, ACCORDION_MARKDOWN_CONTENT_ID } from './const';
|
|
11
|
+
import './showdown-extension.scss';
|
|
12
|
+
|
|
13
|
+
const useAccordionShowdownExtension = () => {
|
|
14
|
+
return React.useMemo(
|
|
15
|
+
() => ({
|
|
16
|
+
type: 'lang',
|
|
17
|
+
regex: /\[(.+)]{{(accordion) ("(.*?)")}}/g,
|
|
18
|
+
replace: (
|
|
19
|
+
_text: string,
|
|
20
|
+
accordionContent: string,
|
|
21
|
+
_command: string,
|
|
22
|
+
accordionHeading: string,
|
|
23
|
+
): string => {
|
|
24
|
+
const accordionId = new String(accordionHeading).replace(/\s/g, '-');
|
|
25
|
+
|
|
26
|
+
return removeTemplateWhitespace(
|
|
27
|
+
renderToStaticMarkup(
|
|
28
|
+
<Accordion asDefinitionList>
|
|
29
|
+
<AccordionItem>
|
|
30
|
+
<AccordionToggle
|
|
31
|
+
isExpanded={false}
|
|
32
|
+
id={`${ACCORDION_MARKDOWN_BUTTON_ID}-${accordionId}`}
|
|
33
|
+
>
|
|
34
|
+
{accordionHeading}
|
|
35
|
+
</AccordionToggle>
|
|
36
|
+
<AccordionContent
|
|
37
|
+
id={`${ACCORDION_MARKDOWN_CONTENT_ID}-${accordionId}`}
|
|
38
|
+
isHidden={!false}
|
|
39
|
+
>
|
|
40
|
+
{accordionContent}
|
|
41
|
+
</AccordionContent>
|
|
42
|
+
</AccordionItem>
|
|
43
|
+
</Accordion>,
|
|
44
|
+
),
|
|
45
|
+
);
|
|
46
|
+
},
|
|
47
|
+
}),
|
|
48
|
+
[],
|
|
49
|
+
);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export default useAccordionShowdownExtension;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useEventListener } from '../../hooks';
|
|
3
|
+
import { ACCORDION_MARKDOWN_BUTTON_ID, ACCORDION_MARKDOWN_CONTENT_ID } from './const';
|
|
4
|
+
|
|
5
|
+
type AccordionShowdownComponentProps = {
|
|
6
|
+
buttonElement: HTMLElement;
|
|
7
|
+
contentElement: HTMLElement;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const AccordionShowdownHandler: React.FC<AccordionShowdownComponentProps> = ({
|
|
11
|
+
buttonElement,
|
|
12
|
+
contentElement,
|
|
13
|
+
}) => {
|
|
14
|
+
const [expanded, setExpanded] = React.useState<boolean>(false);
|
|
15
|
+
|
|
16
|
+
const handleClick = () => {
|
|
17
|
+
const expandedModifier = 'pf-m-expanded';
|
|
18
|
+
|
|
19
|
+
buttonElement.className = `pf-c-accordion__toggle ${!expanded ? expandedModifier : ''}`;
|
|
20
|
+
contentElement.hidden = expanded;
|
|
21
|
+
contentElement.className = `pf-c-accordion__expanded-content ${
|
|
22
|
+
!expanded ? expandedModifier : ''
|
|
23
|
+
}`;
|
|
24
|
+
setExpanded(!expanded);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
useEventListener(buttonElement, 'click', handleClick);
|
|
28
|
+
|
|
29
|
+
return <></>;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
type accordionRenderExtensionProps = {
|
|
33
|
+
docContext: HTMLDocument;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const AccordionRenderExtension: React.FC<accordionRenderExtensionProps> = ({ docContext }) => {
|
|
37
|
+
const buttonElements = docContext.querySelectorAll(`[id ^= ${ACCORDION_MARKDOWN_BUTTON_ID}]`);
|
|
38
|
+
const contentElements = docContext.querySelectorAll(`[id ^= ${ACCORDION_MARKDOWN_CONTENT_ID}]`);
|
|
39
|
+
|
|
40
|
+
return buttonElements.length > 0 ? (
|
|
41
|
+
<>
|
|
42
|
+
{Array.from(buttonElements).map((elm) => {
|
|
43
|
+
const content = Array.from(contentElements).find((elm2) => {
|
|
44
|
+
const elmId = elm.id.split(ACCORDION_MARKDOWN_BUTTON_ID)[1];
|
|
45
|
+
const elm2Id = elm2.id.split(ACCORDION_MARKDOWN_CONTENT_ID)[1];
|
|
46
|
+
return elmId === elm2Id;
|
|
47
|
+
});
|
|
48
|
+
return (
|
|
49
|
+
<AccordionShowdownHandler
|
|
50
|
+
key={elm.id.split(ACCORDION_MARKDOWN_BUTTON_ID)[1]}
|
|
51
|
+
buttonElement={elm as HTMLElement}
|
|
52
|
+
contentElement={content as HTMLElement}
|
|
53
|
+
/>
|
|
54
|
+
);
|
|
55
|
+
})}
|
|
56
|
+
</>
|
|
57
|
+
) : null;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export default AccordionRenderExtension;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export const MARKDOWN_COPY_BUTTON_ID = 'data-copy-for';
|
|
2
2
|
export const MARKDOWN_EXECUTE_BUTTON_ID = 'data-execute-for';
|
|
3
3
|
export const MARKDOWN_SNIPPET_ID = 'data-snippet-id';
|
|
4
|
+
export const ACCORDION_MARKDOWN_BUTTON_ID = `accordion-markdown-button-id`;
|
|
5
|
+
export const ACCORDION_MARKDOWN_CONTENT_ID = `accordion-markdown-content-id`;
|
|
@@ -3,3 +3,5 @@ export { default as useInlineCopyClipboardShowdownExtension } from './inline-cli
|
|
|
3
3
|
export { default as useMultilineCopyClipboardShowdownExtension } from './multiline-clipboard-extension';
|
|
4
4
|
export { default as useAdmonitionShowdownExtension } from './admonition-extension';
|
|
5
5
|
export { default as useCodeShowdownExtension } from './code-extension';
|
|
6
|
+
export { default as useAccordionShowdownExtension } from './accordion-extension';
|
|
7
|
+
export { default as AccordionRenderExtension } from './accordion-render-extension';
|
|
@@ -52,7 +52,7 @@ const HelpTopicPanelContent: React.FC<HelpTopicPanelContentProps> = ({
|
|
|
52
52
|
};
|
|
53
53
|
|
|
54
54
|
const menuItems =
|
|
55
|
-
filteredHelpTopics.length >
|
|
55
|
+
filteredHelpTopics.length > 1 &&
|
|
56
56
|
filteredHelpTopics.map((topic) => {
|
|
57
57
|
return (
|
|
58
58
|
<OptionsMenuItem key={topic.name} onSelect={onSelectHelpTopic} id={topic.name}>
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { SyncMarkdownView } from '@console/internal/components/markdown-view';
|
|
3
3
|
import {
|
|
4
|
+
AccordionRenderExtension,
|
|
4
5
|
MarkdownCopyClipboard,
|
|
5
6
|
MarkdownHighlightExtension,
|
|
6
7
|
useInlineCopyClipboardShowdownExtension,
|
|
7
8
|
useMultilineCopyClipboardShowdownExtension,
|
|
8
9
|
useAdmonitionShowdownExtension,
|
|
9
10
|
useCodeShowdownExtension,
|
|
11
|
+
useAccordionShowdownExtension,
|
|
10
12
|
} from '@console/shared';
|
|
11
13
|
import { HIGHLIGHT_REGEXP } from '@console/shared/src/components/markdown-highlight-extension/highlight-consts';
|
|
12
14
|
import { QuickStartContext, QuickStartContextValues } from './utils/quick-start-context';
|
|
@@ -29,6 +31,7 @@ const QuickStartMarkdownView: React.FC<QuickStartMarkdownViewProps> = ({
|
|
|
29
31
|
const multilineCopyClipboardShowdownExtension = useMultilineCopyClipboardShowdownExtension();
|
|
30
32
|
const admonitionShowdownExtension = useAdmonitionShowdownExtension();
|
|
31
33
|
const codeShowdownExtension = useCodeShowdownExtension();
|
|
34
|
+
const accordionShowdownExtension = useAccordionShowdownExtension();
|
|
32
35
|
return (
|
|
33
36
|
<SyncMarkdownView
|
|
34
37
|
inline
|
|
@@ -57,10 +60,12 @@ const QuickStartMarkdownView: React.FC<QuickStartMarkdownViewProps> = ({
|
|
|
57
60
|
multilineCopyClipboardShowdownExtension,
|
|
58
61
|
admonitionShowdownExtension,
|
|
59
62
|
codeShowdownExtension,
|
|
63
|
+
accordionShowdownExtension,
|
|
60
64
|
...(markdown ? markdown.extensions : []),
|
|
61
65
|
]}
|
|
62
66
|
renderExtension={(docContext, rootSelector) => (
|
|
63
67
|
<>
|
|
68
|
+
<AccordionRenderExtension docContext={docContext} />
|
|
64
69
|
<MarkdownHighlightExtension docContext={docContext} rootSelector={rootSelector} />
|
|
65
70
|
<MarkdownCopyClipboard docContext={docContext} rootSelector={rootSelector} />
|
|
66
71
|
{markdown &&
|
|
@@ -109,7 +109,7 @@ const QuickStartPanelContent: React.FC<QuickStartPanelContentProps> = ({
|
|
|
109
109
|
<DrawerHead>
|
|
110
110
|
<div className="pfext-quick-start-panel-content__title" tabIndex={-1} ref={titleRef}>
|
|
111
111
|
<Title
|
|
112
|
-
headingLevel="
|
|
112
|
+
headingLevel="h2"
|
|
113
113
|
size="xl"
|
|
114
114
|
className="pfext-quick-start-panel-content__name"
|
|
115
115
|
style={{ marginRight: 'var(--pf-global--spacer--md)' }}
|