@patternfly/quickstarts 2.2.3 → 2.2.4

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 (188) hide show
  1. package/dist/HelpTopicDrawer.d.ts +8 -2
  2. package/dist/QuickStartDrawer.d.ts +21 -2
  3. package/dist/index.es.js.map +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/patternfly-docs/quick-starts/design-guidelines/design-guidelines.md +105 -0
  6. package/dist/patternfly-docs/quick-starts/design-guidelines/img/card-elements copy.png +0 -0
  7. package/dist/patternfly-docs/quick-starts/design-guidelines/img/card-elements.png +0 -0
  8. package/dist/patternfly-docs/quick-starts/design-guidelines/img/catalog-elements.png +0 -0
  9. package/dist/patternfly-docs/quick-starts/design-guidelines/img/check-your-work.png +0 -0
  10. package/dist/patternfly-docs/quick-starts/design-guidelines/img/introduction-screen.png +0 -0
  11. package/dist/patternfly-docs/quick-starts/design-guidelines/img/mixed-catalog.png +0 -0
  12. package/dist/patternfly-docs/quick-starts/design-guidelines/img/prerequisites.png +0 -0
  13. package/dist/patternfly-docs/quick-starts/design-guidelines/img/qs-context.png +0 -0
  14. package/dist/patternfly-docs/quick-starts/design-guidelines/img/side-panel-elements.png +0 -0
  15. package/dist/patternfly-docs/quick-starts/design-guidelines/img/side-panel-resized.png +0 -0
  16. package/dist/patternfly-docs/quick-starts/design-guidelines/img/side-panel.png +0 -0
  17. package/dist/patternfly-docs/quick-starts/design-guidelines/img/task-no.png +0 -0
  18. package/dist/patternfly-docs/quick-starts/design-guidelines/img/task-yes.png +0 -0
  19. package/dist/patternfly-docs/quick-starts/design-guidelines/img/task.png +0 -0
  20. package/dist/patternfly-docs/quick-starts/examples/Basic.jsx +73 -0
  21. package/dist/patternfly-docs/quick-starts/examples/HelpTopic.jsx +53 -0
  22. package/dist/patternfly-docs/quick-starts/examples/about.md +77 -0
  23. package/dist/patternfly-docs/quick-starts/examples/basic.md +27 -0
  24. package/dist/patternfly-docs/quick-starts/examples/example-data/example-help-topics.js +173 -0
  25. package/dist/patternfly-docs/quick-starts/examples/example-data/example-quickstarts.js +215 -0
  26. package/dist/patternfly-docs/quick-starts/examples/example-data/index.js +15 -0
  27. package/dist/patternfly-docs/quick-starts/examples/help-topics.md +25 -0
  28. package/dist/patternfly-docs/quick-starts/examples/img/catalog.png +0 -0
  29. package/dist/patternfly-docs/quick-starts/examples/img/help-topic.png +0 -0
  30. package/dist/patternfly-docs/quick-starts/examples/img/side-panel.png +0 -0
  31. package/dist/quickstarts-full.es.js.map +1 -1
  32. package/package.json +11 -4
  33. package/src/ConsoleInternal/components/_icon-and-text.scss +14 -0
  34. package/src/ConsoleInternal/components/_markdown-view.scss +19 -0
  35. package/src/ConsoleInternal/components/catalog/_catalog.scss +390 -0
  36. package/src/ConsoleInternal/components/markdown-view.tsx +305 -0
  37. package/src/ConsoleInternal/components/utils/_status-box.scss +58 -0
  38. package/src/ConsoleInternal/components/utils/camel-case-wrap.tsx +33 -0
  39. package/src/ConsoleInternal/components/utils/index.tsx +3 -0
  40. package/src/ConsoleInternal/components/utils/router.ts +47 -0
  41. package/src/ConsoleInternal/components/utils/status-box.tsx +94 -0
  42. package/src/ConsoleInternal/module/k8s/types.ts +53 -0
  43. package/src/ConsoleShared/index.ts +1 -0
  44. package/src/ConsoleShared/src/components/index.ts +7 -0
  45. package/src/ConsoleShared/src/components/layout/PageLayout.scss +29 -0
  46. package/src/ConsoleShared/src/components/markdown-extensions/MarkdownCopyClipboard.tsx +93 -0
  47. package/src/ConsoleShared/src/components/markdown-extensions/__tests__/MarkdownCopyClipboard.spec.tsx +25 -0
  48. package/src/ConsoleShared/src/components/markdown-extensions/__tests__/test-data.ts +5 -0
  49. package/src/ConsoleShared/src/components/markdown-extensions/admonition-extension.tsx +66 -0
  50. package/src/ConsoleShared/src/components/markdown-extensions/code-extension.tsx +25 -0
  51. package/src/ConsoleShared/src/components/markdown-extensions/const.ts +3 -0
  52. package/src/ConsoleShared/src/components/markdown-extensions/index.ts +5 -0
  53. package/src/ConsoleShared/src/components/markdown-extensions/inline-clipboard-extension.tsx +45 -0
  54. package/src/ConsoleShared/src/components/markdown-extensions/multiline-clipboard-extension.tsx +50 -0
  55. package/src/ConsoleShared/src/components/markdown-extensions/showdown-extension.scss +52 -0
  56. package/src/ConsoleShared/src/components/markdown-extensions/utils.ts +3 -0
  57. package/src/ConsoleShared/src/components/markdown-highlight-extension/MarkdownHighlightExtension.tsx +64 -0
  58. package/src/ConsoleShared/src/components/markdown-highlight-extension/highlight-consts.ts +9 -0
  59. package/src/ConsoleShared/src/components/markdown-highlight-extension/index.ts +1 -0
  60. package/src/ConsoleShared/src/components/modal/Modal.scss +3 -0
  61. package/src/ConsoleShared/src/components/modal/Modal.tsx +19 -0
  62. package/src/ConsoleShared/src/components/modal/index.ts +1 -0
  63. package/src/ConsoleShared/src/components/popper/Portal.tsx +23 -0
  64. package/src/ConsoleShared/src/components/popper/SimplePopper.tsx +90 -0
  65. package/src/ConsoleShared/src/components/popper/index.ts +2 -0
  66. package/src/ConsoleShared/src/components/spotlight/InteractiveSpotlight.tsx +58 -0
  67. package/src/ConsoleShared/src/components/spotlight/Spotlight.tsx +35 -0
  68. package/src/ConsoleShared/src/components/spotlight/StaticSpotlight.tsx +32 -0
  69. package/src/ConsoleShared/src/components/spotlight/index.ts +1 -0
  70. package/src/ConsoleShared/src/components/spotlight/spotlight.scss +63 -0
  71. package/src/ConsoleShared/src/components/status/GenericStatus.tsx +33 -0
  72. package/src/ConsoleShared/src/components/status/NotStartedIcon.tsx +27 -0
  73. package/src/ConsoleShared/src/components/status/PopoverStatus.tsx +42 -0
  74. package/src/ConsoleShared/src/components/status/Status.tsx +38 -0
  75. package/src/ConsoleShared/src/components/status/StatusIconAndText.tsx +42 -0
  76. package/src/ConsoleShared/src/components/status/icons.tsx +77 -0
  77. package/src/ConsoleShared/src/components/status/index.tsx +1 -0
  78. package/src/ConsoleShared/src/components/status/statuses.tsx +36 -0
  79. package/src/ConsoleShared/src/components/status/types.ts +7 -0
  80. package/src/ConsoleShared/src/components/utils/FallbackImg.tsx +20 -0
  81. package/src/ConsoleShared/src/components/utils/index.ts +1 -0
  82. package/src/ConsoleShared/src/constants/index.ts +1 -0
  83. package/src/ConsoleShared/src/constants/ui.ts +1 -0
  84. package/src/ConsoleShared/src/hooks/index.ts +6 -0
  85. package/src/ConsoleShared/src/hooks/scroll.ts +52 -0
  86. package/src/ConsoleShared/src/hooks/useBoundingClientRect.ts +18 -0
  87. package/src/ConsoleShared/src/hooks/useEventListener.ts +14 -0
  88. package/src/ConsoleShared/src/hooks/useForceRender.ts +6 -0
  89. package/src/ConsoleShared/src/hooks/useResizeObserver.ts +20 -0
  90. package/src/ConsoleShared/src/hooks/useScrollShadows.ts +45 -0
  91. package/src/ConsoleShared/src/index.ts +4 -0
  92. package/src/ConsoleShared/src/utils/index.ts +1 -0
  93. package/src/ConsoleShared/src/utils/useCombineRefs.ts +17 -0
  94. package/src/HelpTopicDrawer.tsx +124 -0
  95. package/src/HelpTopicPanelContent.tsx +152 -0
  96. package/src/QuickStartCatalogPage.tsx +190 -0
  97. package/src/QuickStartCloseModal.tsx +47 -0
  98. package/src/QuickStartController.tsx +113 -0
  99. package/src/QuickStartDrawer.scss +11 -0
  100. package/src/QuickStartDrawer.tsx +265 -0
  101. package/src/QuickStartMarkdownView.tsx +75 -0
  102. package/src/QuickStartPanelContent.scss +46 -0
  103. package/src/QuickStartPanelContent.tsx +153 -0
  104. package/src/__tests__/quick-start-utils.spec.tsx +16 -0
  105. package/src/catalog/Catalog/QuickStartCatalogHeader.tsx +18 -0
  106. package/src/catalog/Catalog/QuickStartCatalogSection.tsx +9 -0
  107. package/src/catalog/Catalog/QuickStartCatalogToolbar.tsx +12 -0
  108. package/src/catalog/Catalog/index.ts +3 -0
  109. package/src/catalog/QuickStartCatalog.scss +8 -0
  110. package/src/catalog/QuickStartCatalog.tsx +42 -0
  111. package/src/catalog/QuickStartTile.scss +11 -0
  112. package/src/catalog/QuickStartTile.tsx +105 -0
  113. package/src/catalog/QuickStartTileDescription.scss +29 -0
  114. package/src/catalog/QuickStartTileDescription.tsx +79 -0
  115. package/src/catalog/QuickStartTileFooter.tsx +101 -0
  116. package/src/catalog/QuickStartTileFooterExternal.tsx +40 -0
  117. package/src/catalog/QuickStartTileHeader.scss +12 -0
  118. package/src/catalog/QuickStartTileHeader.tsx +77 -0
  119. package/src/catalog/Toolbar/QuickStartCatalogFilter.scss +25 -0
  120. package/src/catalog/Toolbar/QuickStartCatalogFilter.tsx +34 -0
  121. package/src/catalog/Toolbar/QuickStartCatalogFilterItems.tsx +199 -0
  122. package/src/catalog/__tests__/QuickStartCatalog.spec.tsx +35 -0
  123. package/src/catalog/__tests__/QuickStartTile.spec.tsx +38 -0
  124. package/src/catalog/__tests__/QuickStartTileDescription.spec.tsx +44 -0
  125. package/src/catalog/index.ts +9 -0
  126. package/src/controller/QuickStartConclusion.tsx +63 -0
  127. package/src/controller/QuickStartContent.scss +12 -0
  128. package/src/controller/QuickStartContent.tsx +72 -0
  129. package/src/controller/QuickStartFooter.scss +13 -0
  130. package/src/controller/QuickStartFooter.tsx +128 -0
  131. package/src/controller/QuickStartIntroduction.scss +35 -0
  132. package/src/controller/QuickStartIntroduction.tsx +66 -0
  133. package/src/controller/QuickStartTaskHeader.scss +58 -0
  134. package/src/controller/QuickStartTaskHeader.tsx +116 -0
  135. package/src/controller/QuickStartTaskHeaderList.scss +17 -0
  136. package/src/controller/QuickStartTaskHeaderList.tsx +35 -0
  137. package/src/controller/QuickStartTaskReview.scss +30 -0
  138. package/src/controller/QuickStartTaskReview.tsx +81 -0
  139. package/src/controller/QuickStartTasks.scss +89 -0
  140. package/src/controller/QuickStartTasks.tsx +75 -0
  141. package/src/controller/__tests__/QuickStartConclusion.spec.tsx +95 -0
  142. package/src/controller/__tests__/QuickStartContent.spec.tsx +52 -0
  143. package/src/controller/__tests__/QuickStartFooter.spec.tsx +148 -0
  144. package/src/controller/__tests__/QuickStartTaskHeader.spec.tsx +56 -0
  145. package/src/controller/__tests__/QuickStartTaskReview.spec.tsx +45 -0
  146. package/src/controller/__tests__/QuickStartTasks.spec.tsx +81 -0
  147. package/src/data/mocks/json/explore-pipeline-quickstart.ts +66 -0
  148. package/src/data/mocks/json/explore-serverless-quickstart.ts +90 -0
  149. package/src/data/mocks/json/monitor-sampleapp-quickstart.ts +77 -0
  150. package/src/data/mocks/json/tour-icons.ts +3 -0
  151. package/src/data/mocks/yamls/add-healthchecks-quickstart.yaml +67 -0
  152. package/src/data/mocks/yamls/explore-pipeline-quickstart.yaml +57 -0
  153. package/src/data/mocks/yamls/explore-serverless-quickstart.yaml +83 -0
  154. package/src/data/mocks/yamls/install-associate-pipeline-quickstart.yaml +74 -0
  155. package/src/data/mocks/yamls/monitor-sampleapp-quickstart.yaml +66 -0
  156. package/src/data/mocks/yamls/sample-application-quickstart.yaml +97 -0
  157. package/src/data/mocks/yamls/serverless-application-quickstart.yaml +141 -0
  158. package/src/data/quick-start-test-data.ts +10 -0
  159. package/src/data/test-utils.ts +11 -0
  160. package/src/declaration.d.ts +2 -0
  161. package/src/index.ts +17 -0
  162. package/src/locales/en/quickstart.json +46 -0
  163. package/src/styles/_base.scss +54 -0
  164. package/src/styles/_dark-custom-override.scss +62 -0
  165. package/src/styles/legacy-bootstrap/README.md +21 -0
  166. package/src/styles/legacy-bootstrap/_code.scss +44 -0
  167. package/src/styles/legacy-bootstrap/_tables.scss +38 -0
  168. package/src/styles/legacy-bootstrap/_type.scss +90 -0
  169. package/src/styles/legacy-bootstrap/_variables.scss +48 -0
  170. package/src/styles/legacy-bootstrap.scss +5 -0
  171. package/src/styles/patternfly-global-entry.ts +1 -0
  172. package/src/styles/patternfly-global.scss +28 -0
  173. package/src/styles/patternfly-nested-entry.ts +1 -0
  174. package/src/styles/patternfly-nested.scss +18 -0
  175. package/src/styles/quickstarts-standalone-entry.ts +1 -0
  176. package/src/styles/quickstarts-standalone.scss +7 -0
  177. package/src/styles/style.scss +12 -0
  178. package/src/styles/vendor-entry.ts +1 -0
  179. package/src/styles/vendor.scss +7 -0
  180. package/src/utils/PluralResolver.ts +356 -0
  181. package/src/utils/asciidoc-procedure-parser.ts +132 -0
  182. package/src/utils/const.ts +10 -0
  183. package/src/utils/help-topic-context.tsx +74 -0
  184. package/src/utils/help-topic-types.ts +16 -0
  185. package/src/utils/quick-start-context.tsx +477 -0
  186. package/src/utils/quick-start-types.ts +72 -0
  187. package/src/utils/quick-start-utils.ts +92 -0
  188. package/src/utils/useLocalStorage.ts +38 -0
@@ -0,0 +1,105 @@
1
+ ---
2
+ # Sidenav top-level section
3
+ # should be the same for all markdown files for each extension
4
+ section: extensions
5
+ # Sidenav secondary level section
6
+ # should be the same for all markdown files for each extension
7
+ id: Quick Starts
8
+ # Tab
9
+ source: design-guidelines
10
+ ---
11
+
12
+ # Quick starts
13
+ ## Elements
14
+ ### Card
15
+
16
+ Quick starts are usually surfaced within a [catalog](https://www.patternfly.org/v4/components/card/design-guidelines/#cards-in-catalog-views) as clickable cards.
17
+
18
+ <img src="./img/card-elements.png" alt="Elements of a card" width="370"/>
19
+
20
+ 1. **Icon:** An icon associated with the quick start topic can be included on the card. If no specific icon exists, use the rocket icon.
21
+ 2. **Title:** The title briefly communicates what the quick start covers.
22
+ 3. **Labels:** [Filled labels](https://www.patternfly.org/v4/components/label) communicate the estimated completion time and status. If the quick start is presented in a mixed catalog of resources, a label can indicate the type of resource.
23
+ 4. **Description:** The description summarizes the quick start outcome in four lines or fewer.
24
+ 5. **Prerequisites (optional):** Prerequisites communicate user requirements prior to starting the quick start. They’re displayed in a popover, and they’re organized into a bulleted list. The total number of prerequisites is listed in parentheses on the quick start card.
25
+
26
+ <img src="./img/prerequisites.png" alt="Example of prerequisites" width="395"/>
27
+
28
+ ### Catalog
29
+ Multiple quick starts are often presented to users in a catalog.
30
+
31
+ <img src="./img/catalog-elements.png" alt="Quick start catalog" width="1680"/>
32
+
33
+ Catalogs with 14 or fewer quick starts should include a simple toolbar with the following elements:
34
+ 1. Keyword filter
35
+ 2. Status filter
36
+ 3. Item count
37
+
38
+ Catalogs with 15 or more quick starts should include filtering functionality presented as vertical filters on the left side of the page instead of a simple toolbar.
39
+
40
+ For quick starts in a mixed catalog of resources, we recommend including an action link on the card so that users can easily recognize how to interact with it:
41
+
42
+ * **Start:** Use if the quick start hasn't been started yet
43
+ * **Continue:** Use if the quick start is in progress
44
+ * **Restart:** Use if the quick start has already been completed
45
+
46
+ There should only be one action displayed on a card at a time.
47
+
48
+ <img src="./img/mixed-catalog.png" alt="Mixed resource catalog" width="1062"/>
49
+
50
+ ### Side panel
51
+ Quick starts use the [drawer component](https://www.patternfly.org/v4/components/drawer), which contains all the step-by-step instructions and tasks.
52
+
53
+ <img src="./img/side-panel-elements.png" alt="Side panel elements" width="449"/>
54
+
55
+ 1. **Quick start title:** The quick start title that is shown on the card.
56
+ 2. **Duration:** The estimated amount of time the quick start will take to complete.
57
+ 3. **Close:** The close button allows the user to close the quick start at any time.
58
+ 4. **Button bar:** The button bar allows the user to advance between quick start tasks. For task screens, the buttons are **Next**, **Back**, and **Restart**. For the intro screen, the only button is the **Start** button. On the completion screen, the buttons are **Close**, **Back**, and **Restart**.
59
+
60
+
61
+
62
+ Everything is contained in the drawer and remains anchored to the right, allowing the user to follow the steps without blocking any parts of the UI. The drawer does not overlay the UI and instead pushes it to the left, including the masthead. This prevents any modals or side panels within the UI from covering the quick start instructions. The side panel is also resizable.
63
+
64
+ <img src="./img/side-panel.png" alt="Side panel" width="1680"/>
65
+
66
+ <img src="./img/side-panel-resized.png" alt="Resized side panel" width="1680"/>
67
+
68
+ #### Introduction screen
69
+ The first screen of any quick start is the introductory screen, which includes most of the information from the quick start card.
70
+
71
+ <img src="./img/introduction-screen.png" alt="Introduction screen" width="449"/>
72
+
73
+ #### Tasks
74
+ Tasks consist of 2-10 steps, which walk the user through the UI to complete the goal of the task.
75
+
76
+ <img src="./img/task.png" alt="Example task" width="449"/>
77
+
78
+ #### Check your work
79
+ The check your work module is shown at the bottom of the side panel for each task and helps the user validate that they have successfully completed the task. You can choose to make the check your work module required or optional. Validation questions should be yes/no questions, allowing the user to select the radio button with the appropriate response.
80
+
81
+ <img src="./img/check-your-work.png" alt="Check your work module" width="431"/>
82
+
83
+ If a user selects **Yes**, the check your work module and associated task header turn green. The task header icon becomes a checkmark.
84
+
85
+ <img src="./img/task-yes.png" alt="Check your work module with Yes selected" width="449"/>
86
+
87
+ If a user selects **No**, the check your work module and associated task header turn red. The task header icon becomes an **X**. When possible, explain what a user must do to complete the task, or link to relevant documentation.
88
+
89
+ <img src="./img/task-no.png" alt="Check your work module with No selected" width="449"/>
90
+
91
+ ## Content guidelines
92
+ Here are some general guidelines to follow when authoring quick start content:
93
+ * Clearly state the outcome at the beginning of the quick start and provide brief context to explain why the user is completing the tasks.
94
+ * Avoid screen captures. They require regular maintenance and can potentially lead to issues around accessibility and page loading.
95
+ * Keep content minimal to avoid a wall of text that can overwhelm users and prevent easy skimming.
96
+ * (Optional) As needed, provide a carefully curated set of links at specific points in the quick start:
97
+ * Provide links within a quick start task if the user is likely to need or want more conceptual or reference information.
98
+ * Provide links at the end of quick starts if the user is likely to need or want additional technical information upon completion.
99
+ * Provide links in the check your work module when a user answers **No** if more robust information can help the user understand what actions they must take to complete the task.
100
+
101
+ For more specific quick start content guidelines, refer to the [Red Hat OpenShift documentation](https://docs.openshift.com/container-platform/4.7/web_console/creating-quick-start-tutorials.html). While these guidelines are geared towards Red Hat OpenShift, they can apply to quick starts in any products.
102
+
103
+ ## Quick starts in context
104
+
105
+ <img src="./img/qs-context.png" alt="A quick start in context of a UI" width="1680"/>
@@ -0,0 +1,73 @@
1
+ import React from 'react';
2
+ import {
3
+ LoadingBox,
4
+ QuickStartContainer,
5
+ useLocalStorage,
6
+ QuickStartCatalogPage,
7
+ } from '@patternfly/quickstarts';
8
+ import { quickStarts as exampleQuickStarts } from './example-data';
9
+
10
+ export const App = ({ showCardFooters }) => {
11
+ const [activeQuickStartID, setActiveQuickStartID] = useLocalStorage('quickstartId', '');
12
+ const [allQuickStartStates, setAllQuickStartStates] = useLocalStorage('quickstarts', {});
13
+ const language = localStorage.getItem('bridge/language') || 'en';
14
+
15
+ // eslint-disable-next-line no-console
16
+ React.useEffect(() => console.log(activeQuickStartID), [activeQuickStartID]);
17
+ React.useEffect(() => {
18
+ // callback on state change
19
+ // eslint-disable-next-line no-console
20
+ console.log(allQuickStartStates);
21
+ }, [allQuickStartStates]);
22
+
23
+ const [loading, setLoading] = React.useState(true);
24
+ const [quickStarts, setQuickStarts] = React.useState([]);
25
+ React.useEffect(() => {
26
+ const load = async () => {
27
+ setQuickStarts(exampleQuickStarts);
28
+ setLoading(false);
29
+ };
30
+ setTimeout(() => {
31
+ load();
32
+ }, 500);
33
+ }, []);
34
+
35
+ const drawerProps = {
36
+ quickStarts,
37
+ activeQuickStartID,
38
+ allQuickStartStates,
39
+ setActiveQuickStartID,
40
+ setAllQuickStartStates,
41
+ showCardFooters,
42
+ language,
43
+ loading,
44
+ alwaysShowTaskReview: true,
45
+ markdown: {
46
+ extensions: [
47
+ // variable substitution
48
+ {
49
+ type: 'output',
50
+ filter: function(html) {
51
+ html = html.replace(/\[APPLICATION\]/g, 'Mercury');
52
+ html = html.replace(/\[PRODUCT\]/g, 'Lightning');
53
+
54
+ return html;
55
+ },
56
+ },
57
+ ],
58
+ },
59
+ };
60
+
61
+ return (
62
+ <React.Suspense fallback={<LoadingBox />}>
63
+ <QuickStartContainer {...drawerProps}>
64
+ <QuickStartCatalogPage
65
+ title="Quick starts"
66
+ hint={
67
+ 'Learn how to create, import, and run applications with step-by-step instructions and tasks.'
68
+ }
69
+ />
70
+ </QuickStartContainer>
71
+ </React.Suspense>
72
+ );
73
+ };
@@ -0,0 +1,53 @@
1
+ import React from 'react';
2
+ import { Stack, StackItem } from '@patternfly/react-core';
3
+ import { LoadingBox, HelpTopicContainer, HelpTopicContext } from '@patternfly/quickstarts';
4
+ import { helpTopics as exampleHelpTopics } from './example-data';
5
+
6
+ const TinyMockConsole = () => {
7
+ const { setActiveHelpTopicByName, helpTopics } = React.useContext(HelpTopicContext);
8
+
9
+ const handleSetTopic = (name) => {
10
+ setActiveHelpTopicByName(name);
11
+ };
12
+
13
+ return (
14
+ <Stack hasGutter>
15
+ {helpTopics.map((topic) => {
16
+ return (
17
+ <StackItem key={topic.name}>
18
+ <a onClick={() => handleSetTopic(topic.name)}>Open Help {topic.title}</a>
19
+ </StackItem>
20
+ );
21
+ })}
22
+ </Stack>
23
+ );
24
+ };
25
+
26
+ export const AppHelpTopicDemo = () => {
27
+ const language = localStorage.getItem('bridge/language') || 'en';
28
+
29
+ const [loading, setLoading] = React.useState(true);
30
+
31
+ React.useEffect(() => {
32
+ const load = async () => {
33
+ setLoading(false);
34
+ };
35
+ setTimeout(() => {
36
+ load();
37
+ }, 500);
38
+ }, []);
39
+
40
+ const inContextHelpProps = {
41
+ helpTopics: exampleHelpTopics,
42
+ language,
43
+ loading,
44
+ };
45
+
46
+ return (
47
+ <React.Suspense fallback={<LoadingBox />}>
48
+ <HelpTopicContainer {...inContextHelpProps}>
49
+ <TinyMockConsole />
50
+ </HelpTopicContainer>
51
+ </React.Suspense>
52
+ );
53
+ };
@@ -0,0 +1,77 @@
1
+ ---
2
+ # Sidenav top-level section
3
+ # should be the same for all markdown files for each extension
4
+ section: extensions
5
+ # Sidenav secondary level section
6
+ # should be the same for all markdown files for each extension
7
+ id: Quick Starts
8
+ # Tab
9
+ source: about
10
+ ---
11
+ # About
12
+ The **@patternfly/quickstarts** extension is made up of two parts: `Quick starts` and `In App Documentation` product documentation tools.
13
+
14
+ ## Full live demo application
15
+ A live demo of **Quick starts and In App Documentation** can be found [here](https://quickstarts.netlify.app/), or view the [demo code](https://github.com/patternfly/patternfly-quickstarts/tree/main/packages/dev).
16
+
17
+ A few key concepts are outlined below.
18
+
19
+ ## Quick starts
20
+ A `Quick start` is a set of step-by-step instructions and tasks presented in a side panel embedded in a product’s UI. Quick starts can help users get started with a product, and they often provide guidance around installation and setup.
21
+
22
+ Each task in a quick start has multiple steps, and each quick start has multiple tasks. The outcome of the quick start includes the artifacts or state needed to successfully use the product, specific features, or add-ons.
23
+
24
+ <img src="./img/side-panel.png" alt="Side panel elements" width="449"/>
25
+
26
+ For more detailed design guidelines and visuals see [here.](/extensions/quick-starts/design-guidelines#quickstarts)
27
+
28
+ ### Quick start format
29
+
30
+ #### For developers
31
+ A detailed breakdown of the Quick start format in code can be seen [here](https://github.com/patternfly/patternfly-quickstarts/blob/main/packages/module/src/utils/quick-start-types.ts).
32
+
33
+ Quickly preview a [basic example](/extensions/quick-starts/Basic-Quick-Starts), and remember there is a [live demo](https://quickstarts.netlify.app/) with [full demo code](https://github.com/patternfly/patternfly-quickstarts/tree/main/packages/dev).
34
+
35
+ #### For content authors
36
+ Quick starts can be written in `yaml` with markdown support, `asciidoc`, or just `json`. For examples of each of these formats see [here](https://github.com/patternfly/patternfly-quickstarts/tree/main/packages/dev/src/quickstarts-data)
37
+
38
+ ### Opening and closing the side panel
39
+
40
+ #### Custom handler
41
+ Open the side panel by calling the `setActiveQuickStart` or `setActiveQuickstartID` methods. These methods are provided by the `QuickStartContext` and can be accessed in your React components:
42
+ ```typescript
43
+ const { setActiveQuickStart } = React.useContext<QuickStartContextValues>(
44
+ QuickStartContext,
45
+ );
46
+ ```
47
+
48
+ #### Quick start catalog
49
+ By providing a set of quick starts to the `QuickStartContainer`, a full page catalog view will be generated. Clicking on a catalog card will open its respective `Quick start` in the side panel.
50
+
51
+ <img src="./img/catalog.png" alt="Quick start catalog" width="1680"/>
52
+
53
+ ## In-app documentation
54
+ In App Documentation is used to provide definitions for a set of topics relevant to your product. A single unit of In App Documentation can be called a `HelpTopic`, which is also the name used in code. `HelpTopic`'s essential sections are a **content** section that contains a definition of the term or topic, and an optional list of **links** to provide the user with other relevant information.
55
+
56
+ `HelpTopics` are displayed in a side panel just like `Quick starts`:
57
+
58
+ <img src="./img/help-topic.png" alt="Quick start catalog" width="449"/>
59
+
60
+ ### Help Topic format
61
+
62
+ #### For developers
63
+ A detailed breakdown of the `HelpTopic` format in code can be seen [here](https://github.com/patternfly/patternfly-quickstarts/blob/main/packages/module/src/utils/help-topic-types.ts).
64
+
65
+ Quickly preview a [basic example](/extensions/quick-starts/In-App-Documentation), and remember there is a [live demo](https://quickstarts.netlify.app/in-context-help) with [full demo code](https://github.com/patternfly/patternfly-quickstarts/tree/main/packages/dev).
66
+
67
+ #### For content authors
68
+ HelpTopics are written in `yaml` with markdown support. An example can be seen [here](https://github.com/patternfly/patternfly-quickstarts/blob/main/packages/dev/src/quickstarts-data/yaml/in-context-help/example-topics.yaml)
69
+
70
+ ### Opening and closing the side panel
71
+ Open the side panel by calling `setActiveHelpTopicByName` (available from `HelpTopicContext`) with a `HelpTopic`'s name value.
72
+
73
+ ```typescript
74
+ const { setActiveHelpTopicByName } = React.useContext<HelpTopicContextValues>(HelpTopicContext);
75
+ ```
76
+
77
+ Close it by calling `setActiveHelpTopicByName` with an empty string. There is no prebuilt `HelpTopic` catalog. simply attach a handler with `setActiveHelpTopicByName` to the appropriate DOM element. See the [basic example](/extensions/quick-starts/In-App-Documentation), or [live demo code](https://github.com/patternfly/patternfly-quickstarts/tree/main/packages/dev) for more details.
@@ -0,0 +1,27 @@
1
+ ---
2
+ # Sidenav top-level section
3
+ # should be the same for all markdown files
4
+ section: extensions
5
+ # Sidenav secondary level section
6
+ # should be the same for all markdown files
7
+ id: Quick Starts
8
+ # Tab (react | react-demos | html | html-demos | design-guidelines | accessibility)
9
+ source: Basic-Quick-Starts
10
+ # If you use typescript, the name of the interface to display props for
11
+ # These are found through the sourceProps function provided in patternfly-docs.source.js
12
+ propComponents: ['QuickStartContainer']
13
+ ---
14
+
15
+ import { quickStarts as exampleQuickStarts } from './example-data';
16
+ import { LoadingBox, QuickStartContainer, QuickStartCatalogPage, useLocalStorage, } from '@patternfly/quickstarts';
17
+ import '@patternfly/quickstarts/dist/quickstarts.css';
18
+
19
+ ## Basic Quick Starts Usage
20
+
21
+ ### With Catalog Page
22
+ ```js file="./Basic.jsx"
23
+ ```
24
+
25
+ ### Fullscreen example
26
+ ```js file="./Basic.jsx" isFullscreen
27
+ ```
@@ -0,0 +1,173 @@
1
+ export const exampleHelpTopics = [
2
+ {
3
+ name: 'auto-deploy',
4
+ tags: ['page-1'],
5
+ title: 'Automatic Deployment',
6
+ content:
7
+ '**An Automatic Deployment** is...\n\nEtiam viverra et tortor et maximus. Aliquam quis scelerisque metus. Proin luctus pretium sodales. Mauris nibh nibh, auctor eu scelerisque et, hendrerit a metus. Vivamus pharetra bibendum finibus. Sed a pulvinar ipsum. Fusce pharetra venenatis porttitor. Praesent justo metus, consectetur quis erat id, congue varius metus. Suspendisse dui est, tempor nec diam quis, facilisis sodales erat. Curabitur viverra convallis ex. Ut egestas condimentum augue, id euismod leo volutpat vitae. Quisque aliquet ac dolor quis pretium. Nunc at nibh quis arcu maximus elementum vel a mi.',
8
+ links: [
9
+ {
10
+ text: 'Creating quick starts (external)',
11
+ href:
12
+ 'https://docs.openshift.com/container-platform/4.9/web_console/creating-quick-start-tutorials.html',
13
+ isExternal: true,
14
+ },
15
+ {
16
+ text: 'Redhat Console (opens in new tab)',
17
+ href: 'https://console.redhat.com',
18
+ newTab: true,
19
+ },
20
+ ],
21
+ },
22
+ {
23
+ name: 'workspace',
24
+ tags: ['page-1', 'page-2', 'page-3'],
25
+ title: 'Workspace (no links)',
26
+ content:
27
+ '**A Workspace** is...\n\nFusce nunc risus, vehicula feugiat pellentesque sit amet, pretium non urna. Phasellus nibh mi, ornare quis euismod a, iaculis et eros. Vivamus auctor nunc odio, quis porttitor diam pellentesque nec. In et varius tellus, eget porta urna. Etiam bibendum, est eget mollis lobortis, velit risus efficitur lacus, sed pulvinar sem est vel libero. In sodales placerat tincidunt. Proin vitae risus elit. Ut lobortis ligula est, cursus rhoncus enim scelerisque ac. Donec lacus nisl, tempor porta hendrerit nec, volutpat vitae arcu. Curabitur ornare ullamcorper mi in tincidunt. Aenean efficitur posuere auctor. Pellentesque accumsan mauris vel arcu congue, nec sagittis nisl condimentum. Suspendisse mauris nulla, dignissim at viverra sed, fringilla eu purus.',
28
+ },
29
+ {
30
+ name: 'code-sample',
31
+ tags: ['page-1'],
32
+ title: 'Code Sample',
33
+ content:
34
+ '**A Code Sample** is...\n\nVivamus pharetra vel risus id dignissim. Donec in nisl quis ligula rutrum vehicula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec ullamcorper ex at lorem vehicula, id facilisis velit suscipit.\n```\nconsole.log("hello world")\n```\nEtiam elit ante, tempus sit amet maximus vel, laoreet vel quam. Sed sollicitudin ex sem, vel aliquam eros volutpat sit amet. Aliquam lobortis elementum sapien et dictum. Nullam interdum porttitor dapibus. Etiam id finibus libero, vitae vehicula metus. Mauris sit amet sollicitudin enim. Nullam tellus ante, ullamcorper sed odio vestibulum, dignissim luctus purus.',
35
+ links: [
36
+ {
37
+ text: 'Creating quick starts',
38
+ href:
39
+ 'https://docs.openshift.com/container-platform/4.9/web_console/creating-quick-start-tutorials.html',
40
+ },
41
+ {
42
+ text: 'Redhat Console',
43
+ href: 'https://console.redhat.com',
44
+ },
45
+ ],
46
+ },
47
+ {
48
+ name: 'manual-deployment',
49
+ tags: ['page-2', 'page-1'],
50
+ title: 'Manual Deployment',
51
+ content:
52
+ '**A Manual Deployment** is...\n\nVivamus pharetra vel risus id dignissim. Donec in nisl quis ligula rutrum vehicula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec ullamcorper ex at lorem vehicula, id facilisis velit suscipit.\n```\nconsole.log("hello world")\n```\nEtiam elit ante, tempus sit amet maximus vel, laoreet vel quam. Sed sollicitudin ex sem, vel aliquam eros volutpat sit amet. Aliquam lobortis elementum sapien et dictum. Nullam interdum porttitor dapibus. Etiam id finibus libero, vitae vehicula metus. Mauris sit amet sollicitudin enim. Nullam tellus ante, ullamcorper sed odio vestibulum, dignissim luctus purus.',
53
+ links: [
54
+ {
55
+ text: 'Creating quick starts',
56
+ href:
57
+ 'https://docs.openshift.com/container-platform/4.9/web_console/creating-quick-start-tutorials.html',
58
+ },
59
+ {
60
+ text: 'Redhat Console',
61
+ href: 'https://console.redhat.com',
62
+ },
63
+ ],
64
+ },
65
+ {
66
+ name: 'target-port',
67
+ tags: ['page-2'],
68
+ title: 'Target Port',
69
+ content:
70
+ '**A Target Port** is...\n\nVivamus pharetra vel risus id dignissim. Donec in nisl quis ligula rutrum vehicula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec ullamcorper ex at lorem vehicula, id facilisis velit suscipit. Etiam elit ante, tempus sit amet maximus vel, laoreet vel quam. Sed sollicitudin ex sem, vel aliquam eros volutpat sit amet. Aliquam lobortis elementum sapien et dictum. Nullam interdum porttitor dapibus. Etiam id finibus libero, vitae vehicula metus. Mauris sit amet sollicitudin enim. Nullam tellus ante, ullamcorper sed odio vestibulum, dignissim luctus purus.',
71
+ links: [
72
+ {
73
+ text: 'Creating quick starts',
74
+ href:
75
+ 'https://docs.openshift.com/container-platform/4.9/web_console/creating-quick-start-tutorials.html',
76
+ },
77
+ {
78
+ text: 'Redhat Console',
79
+ href: 'https://console.redhat.com',
80
+ },
81
+ ],
82
+ },
83
+ {
84
+ name: 'build-configuration',
85
+ tags: ['page-2'],
86
+ title: 'Build Configuration',
87
+ content:
88
+ '**A Build Configuration** is...\n\nVivamus pharetra vel risus id dignissim. Donec in nisl quis ligula rutrum vehicula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec ullamcorper ex at lorem vehicula, id facilisis velit suscipit. Etiam elit ante, tempus sit amet maximus vel, laoreet vel quam. Sed sollicitudin ex sem, vel aliquam eros volutpat sit amet. Aliquam lobortis elementum sapien et dictum. Nullam interdum porttitor dapibus. Etiam id finibus libero, vitae vehicula metus. Mauris sit amet sollicitudin enim. Nullam tellus ante, ullamcorper sed odio vestibulum, dignissim luctus purus.',
89
+ links: [
90
+ {
91
+ text: 'Creating quick starts',
92
+ href:
93
+ 'https://docs.openshift.com/container-platform/4.9/web_console/creating-quick-start-tutorials.html',
94
+ },
95
+ {
96
+ text: 'Redhat Console',
97
+ href: 'https://console.redhat.com',
98
+ },
99
+ ],
100
+ },
101
+ {
102
+ name: 'run-time',
103
+ tags: ['page-3'],
104
+ title: 'Runtime',
105
+ content:
106
+ '**A Runtime** is...\n\nVivamus pharetra vel risus id dignissim. Donec in nisl quis ligula rutrum vehicula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec ullamcorper ex at lorem vehicula, id facilisis velit suscipit. Etiam elit ante, tempus sit amet maximus vel, laoreet vel quam. Sed sollicitudin ex sem, vel aliquam eros volutpat sit amet. Aliquam lobortis elementum sapien et dictum. Nullam interdum porttitor dapibus. Etiam id finibus libero, vitae vehicula metus. Mauris sit amet sollicitudin enim. Nullam tellus ante, ullamcorper sed odio vestibulum, dignissim luctus purus.',
107
+ links: [
108
+ {
109
+ text: 'Creating quick starts',
110
+ href:
111
+ 'https://docs.openshift.com/container-platform/4.9/web_console/creating-quick-start-tutorials.html',
112
+ },
113
+ {
114
+ text: 'Redhat Console',
115
+ href: 'https://console.redhat.com',
116
+ },
117
+ ],
118
+ },
119
+ {
120
+ name: 'deploy-configuration',
121
+ tags: ['page-3'],
122
+ title: 'Deploy Configuration',
123
+ content:
124
+ '**A Deploy Configuration** is...\n\nVivamus pharetra vel risus id dignissim. Donec in nisl quis ligula rutrum vehicula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec ullamcorper ex at lorem vehicula, id facilisis velit suscipit. Etiam elit ante, tempus sit amet maximus vel, laoreet vel quam. Sed sollicitudin ex sem, vel aliquam eros volutpat sit amet. Aliquam lobortis elementum sapien et dictum. Nullam interdum porttitor dapibus. Etiam id finibus libero, vitae vehicula metus. Mauris sit amet sollicitudin enim. Nullam tellus ante, ullamcorper sed odio vestibulum, dignissim luctus purus.',
125
+ links: [
126
+ {
127
+ text: 'Creating quick starts',
128
+ href:
129
+ 'https://docs.openshift.com/container-platform/4.9/web_console/creating-quick-start-tutorials.html',
130
+ },
131
+ {
132
+ text: 'Redhat Console',
133
+ href: 'https://console.redhat.com',
134
+ },
135
+ ],
136
+ },
137
+ {
138
+ name: 'environment-variables',
139
+ tags: ['page-3'],
140
+ title: 'Environment Variables',
141
+ content:
142
+ '**Environment Variable** are...\n\nVivamus pharetra vel risus id dignissim. Donec in nisl quis ligula rutrum vehicula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec ullamcorper ex at lorem vehicula, id facilisis velit suscipit. Etiam elit ante, tempus sit amet maximus vel, laoreet vel quam. Sed sollicitudin ex sem, vel aliquam eros volutpat sit amet. Aliquam lobortis elementum sapien et dictum. Nullam interdum porttitor dapibus. Etiam id finibus libero, vitae vehicula metus. Mauris sit amet sollicitudin enim. Nullam tellus ante, ullamcorper sed odio vestibulum, dignissim luctus purus.',
143
+ links: [
144
+ {
145
+ text: 'Creating quick starts',
146
+ href:
147
+ 'https://docs.openshift.com/container-platform/4.9/web_console/creating-quick-start-tutorials.html',
148
+ },
149
+ {
150
+ text: 'Redhat Console',
151
+ href: 'https://console.redhat.com',
152
+ },
153
+ ],
154
+ },
155
+ {
156
+ name: 'health-checks',
157
+ tags: ['page-3'],
158
+ title: 'Health Checks',
159
+ content:
160
+ '**Health Checks** are...\n\nVivamus pharetra vel risus id dignissim. Donec in nisl quis ligula rutrum vehicula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec ullamcorper ex at lorem vehicula, id facilisis velit suscipit. Etiam elit ante, tempus sit amet maximus vel, laoreet vel quam. Sed sollicitudin ex sem, vel aliquam eros volutpat sit amet. Aliquam lobortis elementum sapien et dictum. Nullam interdum porttitor dapibus. Etiam id finibus libero, vitae vehicula metus. Mauris sit amet sollicitudin enim. Nullam tellus ante, ullamcorper sed odio vestibulum, dignissim luctus purus.',
161
+ links: [
162
+ {
163
+ text: 'Creating quick starts',
164
+ href:
165
+ 'https://docs.openshift.com/container-platform/4.9/web_console/creating-quick-start-tutorials.html',
166
+ },
167
+ {
168
+ text: 'Redhat Console',
169
+ href: 'https://console.redhat.com',
170
+ },
171
+ ],
172
+ },
173
+ ];