@patternfly/quickstarts 6.0.0-alpha.1 → 6.0.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/dist/ConsoleInternal/components/markdown-view.d.ts +0 -1
  2. package/dist/ConsoleShared/src/components/markdown-extensions/accordion-extension.d.ts +0 -1
  3. package/dist/ConsoleShared/src/components/markdown-extensions/admonition-extension.d.ts +0 -1
  4. package/dist/ConsoleShared/src/components/markdown-extensions/code-extension.d.ts +0 -1
  5. package/dist/ConsoleShared/src/components/markdown-extensions/inline-clipboard-extension.d.ts +0 -1
  6. package/dist/ConsoleShared/src/components/markdown-extensions/multiline-clipboard-extension.d.ts +0 -1
  7. package/dist/ConsoleShared/src/components/modal/Modal.d.ts +1 -2
  8. package/dist/ConsoleShared/src/components/spotlight/InteractiveSpotlight.d.ts +0 -1
  9. package/dist/ConsoleShared/src/components/spotlight/StaticSpotlight.d.ts +0 -1
  10. package/dist/HelpTopicDrawer.d.ts +0 -1
  11. package/dist/HelpTopicPanelContent.d.ts +0 -1
  12. package/dist/QuickStartDrawer.d.ts +0 -1
  13. package/dist/QuickStartPanelContent.d.ts +2 -2
  14. package/dist/catalog/QuickStartCatalog.d.ts +0 -1
  15. package/dist/catalog/QuickStartTile.d.ts +18 -1
  16. package/dist/catalog/QuickStartTileDescription.d.ts +0 -1
  17. package/dist/catalog/QuickStartTileFooter.d.ts +1 -0
  18. package/dist/catalog/QuickStartTileHeader.d.ts +1 -5
  19. package/dist/catalog/Toolbar/QuickStartCatalogFilter.d.ts +0 -1
  20. package/dist/controller/QuickStartContent.d.ts +1 -1
  21. package/dist/controller/QuickStartFooter.d.ts +1 -1
  22. package/dist/controller/QuickStartIntroduction.d.ts +0 -1
  23. package/dist/controller/QuickStartTaskHeaderList.d.ts +0 -1
  24. package/dist/controller/QuickStartTaskReview.d.ts +0 -1
  25. package/dist/controller/QuickStartTasks.d.ts +0 -1
  26. package/dist/index.es.js +196 -288
  27. package/dist/index.es.js.map +1 -1
  28. package/dist/index.js +197 -288
  29. package/dist/index.js.map +1 -1
  30. package/dist/patternfly-docs/quick-starts/examples/HelpTopic.jsx +4 -4
  31. package/dist/patternfly-docs/quick-starts/examples/example-data/example-help-topics.js +9 -18
  32. package/dist/patternfly-global.css +20 -66
  33. package/dist/patternfly-nested.css +2036 -2119
  34. package/dist/quickstarts-base.css +38 -415
  35. package/dist/quickstarts-full.es.js +1417 -847
  36. package/dist/quickstarts-full.es.js.map +1 -1
  37. package/dist/quickstarts-standalone.css +41 -376
  38. package/dist/quickstarts-standalone.min.css +3 -3
  39. package/dist/quickstarts-vendor.css +6 -11
  40. package/dist/quickstarts.css +44 -426
  41. package/dist/quickstarts.min.css +1 -1
  42. package/dist/utils/quick-start-context.d.ts +2 -0
  43. package/dist/utils/quick-start-types.d.ts +1 -1
  44. package/package.json +13 -15
  45. package/src/ConsoleInternal/components/markdown-view.tsx +29 -9
  46. package/src/ConsoleShared/src/components/markdown-extensions/accordion-extension.tsx +10 -17
  47. package/src/ConsoleShared/src/components/markdown-extensions/admonition-extension.tsx +5 -11
  48. package/src/ConsoleShared/src/components/markdown-extensions/code-extension.tsx +2 -2
  49. package/src/ConsoleShared/src/components/markdown-extensions/inline-clipboard-extension.tsx +0 -1
  50. package/src/ConsoleShared/src/components/markdown-extensions/multiline-clipboard-extension.tsx +2 -6
  51. package/src/ConsoleShared/src/components/markdown-extensions/utils.ts +2 -1
  52. package/src/ConsoleShared/src/components/modal/Modal.tsx +1 -2
  53. package/src/ConsoleShared/src/components/popper/SimplePopper.tsx +5 -2
  54. package/src/ConsoleShared/src/components/spotlight/InteractiveSpotlight.tsx +0 -1
  55. package/src/ConsoleShared/src/components/spotlight/StaticSpotlight.tsx +0 -1
  56. package/src/ConsoleShared/src/components/status/icons.tsx +1 -5
  57. package/src/HelpTopicDrawer.tsx +1 -4
  58. package/src/HelpTopicPanelContent.tsx +4 -16
  59. package/src/QuickStartCatalogPage.tsx +34 -25
  60. package/src/QuickStartCloseModal.tsx +2 -2
  61. package/src/QuickStartController.tsx +2 -2
  62. package/src/QuickStartDrawer.tsx +2 -7
  63. package/src/QuickStartPanelContent.scss +7 -39
  64. package/src/QuickStartPanelContent.tsx +23 -47
  65. package/src/catalog/Catalog/QuickStartCatalogHeader.tsx +5 -4
  66. package/src/catalog/Catalog/QuickStartCatalogSection.tsx +1 -1
  67. package/src/catalog/Catalog/QuickStartCatalogToolbar.tsx +1 -3
  68. package/src/catalog/QuickStartCatalog.tsx +12 -16
  69. package/src/catalog/QuickStartTile.scss +11 -9
  70. package/src/catalog/QuickStartTile.tsx +135 -62
  71. package/src/catalog/QuickStartTileDescription.tsx +28 -42
  72. package/src/catalog/QuickStartTileFooter.tsx +13 -19
  73. package/src/catalog/QuickStartTileHeader.tsx +8 -58
  74. package/src/catalog/Toolbar/QuickStartCatalogFilter.tsx +8 -10
  75. package/src/catalog/Toolbar/QuickStartCatalogFilterItems.tsx +2 -5
  76. package/src/catalog/__tests__/QuickStartCatalog.spec.tsx +3 -3
  77. package/src/catalog/__tests__/QuickStartTile.spec.tsx +5 -5
  78. package/src/catalog/__tests__/QuickStartTileDescription.spec.tsx +1 -1
  79. package/src/controller/QuickStartConclusion.tsx +4 -4
  80. package/src/controller/QuickStartContent.scss +3 -7
  81. package/src/controller/QuickStartContent.tsx +3 -5
  82. package/src/controller/QuickStartFooter.scss +1 -11
  83. package/src/controller/QuickStartFooter.tsx +27 -21
  84. package/src/controller/QuickStartIntroduction.tsx +11 -16
  85. package/src/controller/QuickStartTaskHeader.scss +20 -42
  86. package/src/controller/QuickStartTaskHeader.tsx +25 -62
  87. package/src/controller/QuickStartTaskHeaderList.tsx +4 -6
  88. package/src/controller/QuickStartTaskReview.tsx +6 -12
  89. package/src/controller/QuickStartTasks.tsx +6 -8
  90. package/src/controller/__tests__/QuickStartConclusion.spec.tsx +6 -19
  91. package/src/controller/__tests__/QuickStartFooter.spec.tsx +9 -54
  92. package/src/controller/__tests__/QuickStartTaskHeader.spec.tsx +1 -1
  93. package/src/controller/__tests__/QuickStartTaskReview.spec.tsx +3 -6
  94. package/src/controller/__tests__/QuickStartTasks.spec.tsx +3 -6
  95. package/src/styles/_base.scss +3 -45
  96. package/src/styles/style.scss +1 -6
  97. package/src/utils/help-topic-context.tsx +2 -3
  98. package/src/utils/quick-start-context.tsx +12 -13
  99. package/src/utils/quick-start-types.ts +1 -1
  100. package/src/utils/quick-start-utils.ts +4 -2
  101. package/src/ConsoleInternal/components/_icon-and-text.scss +0 -14
  102. package/src/ConsoleInternal/components/_markdown-view.scss +0 -19
  103. package/src/ConsoleInternal/components/catalog/_catalog.scss +0 -392
  104. package/src/ConsoleInternal/components/utils/_status-box.scss +0 -58
  105. package/src/ConsoleShared/src/components/layout/PageLayout.scss +0 -29
  106. package/src/ConsoleShared/src/components/markdown-extensions/showdown-extension.scss +0 -52
  107. package/src/ConsoleShared/src/components/modal/Modal.scss +0 -3
  108. package/src/ConsoleShared/src/components/spotlight/spotlight.scss +0 -63
  109. package/src/QuickStartDrawer.scss +0 -11
  110. package/src/catalog/QuickStartCatalog.scss +0 -8
  111. package/src/catalog/QuickStartTileDescription.scss +0 -29
  112. package/src/catalog/QuickStartTileHeader.scss +0 -12
  113. package/src/catalog/Toolbar/QuickStartCatalogFilter.scss +0 -25
  114. package/src/controller/QuickStartIntroduction.scss +0 -35
  115. package/src/controller/QuickStartTaskHeaderList.scss +0 -17
  116. package/src/controller/QuickStartTaskReview.scss +0 -30
  117. package/src/controller/QuickStartTasks.scss +0 -90
  118. package/src/styles/_dark-custom-override.scss +0 -47
package/dist/index.js CHANGED
@@ -6,9 +6,9 @@ var React = require('react');
6
6
  var reactCore = require('@patternfly/react-core');
7
7
  var SearchIcon = require('@patternfly/react-icons/dist/js/icons/search-icon');
8
8
  var reactStyles = require('@patternfly/react-styles');
9
- var tslib = require('tslib');
10
- require('@patternfly/react-styles/css/components/Form/form');
11
9
  var RocketIcon = require('@patternfly/react-icons/dist/js/icons/rocket-icon');
10
+ var tslib = require('tslib');
11
+ var deprecated = require('@patternfly/react-core/deprecated');
12
12
  var ReactDOM = require('react-dom');
13
13
  var server = require('react-dom/server');
14
14
  var CopyIcon = require('@patternfly/react-icons/dist/js/icons/copy-icon');
@@ -20,6 +20,7 @@ var CheckCircleIcon = require('@patternfly/react-icons/dist/js/icons/check-circl
20
20
  require('@patternfly/react-icons/dist/js/icons/exclamation-circle-icon');
21
21
  var InfoCircleIcon = require('@patternfly/react-icons/dist/js/icons/info-circle-icon');
22
22
  var ExternalLinkAltIcon = require('@patternfly/react-icons/dist/js/icons/external-link-alt-icon');
23
+ var OutlinedBookmarkIcon = require('@patternfly/react-icons/dist/js/icons/outlined-bookmark-icon');
23
24
  var OutlinedClockIcon = require('@patternfly/react-icons/dist/js/icons/outlined-clock-icon');
24
25
  var ArrowRightIcon = require('@patternfly/react-icons/dist/js/icons/arrow-right-icon');
25
26
  var BarsIcon = require('@patternfly/react-icons/dist/js/icons/bars-icon');
@@ -58,6 +59,7 @@ var SyncAltIcon__default = /*#__PURE__*/_interopDefaultLegacy(SyncAltIcon);
58
59
  var CheckCircleIcon__default = /*#__PURE__*/_interopDefaultLegacy(CheckCircleIcon);
59
60
  var InfoCircleIcon__default = /*#__PURE__*/_interopDefaultLegacy(InfoCircleIcon);
60
61
  var ExternalLinkAltIcon__default = /*#__PURE__*/_interopDefaultLegacy(ExternalLinkAltIcon);
62
+ var OutlinedBookmarkIcon__default = /*#__PURE__*/_interopDefaultLegacy(OutlinedBookmarkIcon);
61
63
  var OutlinedClockIcon__default = /*#__PURE__*/_interopDefaultLegacy(OutlinedClockIcon);
62
64
  var ArrowRightIcon__default = /*#__PURE__*/_interopDefaultLegacy(ArrowRightIcon);
63
65
  var BarsIcon__default = /*#__PURE__*/_interopDefaultLegacy(BarsIcon);
@@ -617,6 +619,7 @@ const QuickStartContextDefaults = {
617
619
  markdown: null,
618
620
  loading: false,
619
621
  alwaysShowTaskReview: true,
622
+ focusOnQuickStart: true,
620
623
  };
621
624
  const QuickStartContext = React.createContext(QuickStartContextDefaults);
622
625
  const getResource = (resource, options, resourceBundle, lng) => {
@@ -793,9 +796,7 @@ const useValuesForQuickStartContext = (value = {}) => {
793
796
  setAllQuickStartStates((qs) => (Object.assign(Object.assign({}, qs), { [activeQuickStartID]: updatedQuickStart })));
794
797
  }, [allQuickStartStates, activeQuickStartID, setAllQuickStartStates]);
795
798
  const activeQuickStartState = (_b = allQuickStartStates === null || allQuickStartStates === void 0 ? void 0 : allQuickStartStates[activeQuickStartID]) !== null && _b !== void 0 ? _b : {};
796
- const getQuickStartForId = React.useCallback((id) => allQuickStartStates[id], [
797
- allQuickStartStates,
798
- ]);
799
+ const getQuickStartForId = React.useCallback((id) => allQuickStartStates[id], [allQuickStartStates]);
799
800
  return {
800
801
  allQuickStarts: quickStarts,
801
802
  setAllQuickStarts: updateAllQuickStarts,
@@ -874,69 +875,9 @@ const CamelCaseWrap = ({ value, dataTest }) => {
874
875
  return rendered;
875
876
  };
876
877
 
877
- class CatalogTile extends React__namespace.Component {
878
- constructor(props) {
879
- super(props);
880
- this.handleClick = (e) => {
881
- const { onClick, href } = this.props;
882
- if (!href) {
883
- e.preventDefault();
884
- }
885
- if (onClick) {
886
- onClick(e);
887
- }
888
- };
889
- this.renderBadges = (badges) => {
890
- if (!badges || !badges.length) {
891
- return null;
892
- }
893
- return (React__namespace.createElement("div", { className: "catalog-tile-pf-badge-container" }, badges.map((badge, index) => (React__namespace.createElement("span", { key: `badge-${index}` }, badge)))));
894
- };
895
- this.generatedId = reactCore.getUniqueId('pf-catalog-tile');
896
- }
897
- render() {
898
- const _a = this.props, { id, className, featured, onClick, href, icon, iconImg, iconAlt, iconClass, badges, title, vendor, description, footer,
899
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
900
- ref, children } = _a, props = tslib.__rest(_a, ["id", "className", "featured", "onClick", "href", "icon", "iconImg", "iconAlt", "iconClass", "badges", "title", "vendor", "description", "footer", "ref", "children"]);
901
- return (React__namespace.createElement(reactCore.Card, Object.assign({ component: href ? 'a' : 'div', id: id || this.generatedId, href: href || '#', className: reactStyles.css('catalog-tile-pf', { featured }, className), variant: featured ? 'secondary' : 'default', isClickable: !!onClick }, props),
902
- (badges.length > 0 || iconImg || iconClass || icon || onClick) && (React__namespace.createElement(reactCore.CardHeader, { actions: { actions: badges.length > 0 && this.renderBadges(badges), hasNoOffset: true }, selectableActions: onClick && {
903
- selectableActionId: id + '-input',
904
- onClickAction: (e) => this.handleClick(e),
905
- selectableActionAriaLabelledby: id
906
- } },
907
- iconImg && React__namespace.createElement("img", { className: "catalog-tile-pf-icon", src: iconImg, alt: iconAlt }),
908
- !iconImg && (iconClass || icon) && React__namespace.createElement("span", { className: `catalog-tile-pf-icon ${iconClass}` }, icon))),
909
- React__namespace.createElement(reactCore.CardTitle, { className: "catalog-tile-pf-header" },
910
- React__namespace.createElement("div", { className: "catalog-tile-pf-title" }, title),
911
- vendor && React__namespace.createElement("div", { className: "catalog-tile-pf-subtitle" }, vendor)),
912
- (description || children) && (React__namespace.createElement(reactCore.CardBody, { className: "catalog-tile-pf-body" },
913
- description && (React__namespace.createElement("div", { className: "catalog-tile-pf-description" },
914
- React__namespace.createElement("span", { className: reactStyles.css({ 'has-footer': footer }) }, description))),
915
- children)),
916
- footer && React__namespace.createElement(reactCore.CardFooter, { className: "catalog-tile-pf-footer" }, footer)));
917
- }
918
- }
919
- CatalogTile.displayName = 'CatalogTile';
920
- CatalogTile.defaultProps = {
921
- id: null,
922
- className: '',
923
- featured: false,
924
- onClick: null,
925
- href: null,
926
- iconImg: null,
927
- iconAlt: '',
928
- iconClass: '',
929
- icon: null,
930
- badges: [],
931
- vendor: null,
932
- description: null,
933
- footer: null,
934
- children: null
935
- };
936
-
937
878
  const Modal = (_a) => {
938
879
  var { isFullScreen = false, className } = _a, props = tslib.__rest(_a, ["isFullScreen", "className"]);
939
- return (React__namespace.createElement(reactCore.Modal, Object.assign({}, props, { className: reactStyles.css('pfext-modal', className), appendTo: () => (isFullScreen ? document.body : document.querySelector('#modal-container')) })));
880
+ return (React__namespace.createElement(deprecated.Modal, Object.assign({}, props, { className: reactStyles.css('pfext-modal', className), appendTo: () => (isFullScreen ? document.body : document.querySelector('#modal-container')) })));
940
881
  };
941
882
 
942
883
  const getContainer = (container) => typeof container === 'function' ? container() : container;
@@ -1067,44 +1008,6 @@ var Shadows;
1067
1008
  Shadows["top"] = "top";
1068
1009
  Shadows["bottom"] = "bottom";
1069
1010
  })(Shadows || (Shadows = {}));
1070
- const useScrollShadows = (node) => {
1071
- const [shadows, setShadows] = React__namespace.useState(Shadows.none);
1072
- const computeShadows = React__namespace.useCallback(() => {
1073
- if (node) {
1074
- const { scrollTop, clientHeight, scrollHeight } = node;
1075
- const top = scrollTop !== 0;
1076
- const bottom = scrollTop + clientHeight < scrollHeight;
1077
- if (top && bottom) {
1078
- setShadows(Shadows.both);
1079
- }
1080
- else if (top) {
1081
- setShadows(Shadows.top);
1082
- }
1083
- else if (bottom) {
1084
- setShadows(Shadows.bottom);
1085
- }
1086
- else {
1087
- setShadows(Shadows.none);
1088
- }
1089
- }
1090
- }, [node]);
1091
- // recompute when the scroll container changes in size
1092
- useResizeObserver(computeShadows, node);
1093
- React__namespace.useEffect(() => {
1094
- if (node) {
1095
- // compute initial shadows
1096
- computeShadows();
1097
- // listen for scroll events
1098
- node.addEventListener('scroll', computeShadows);
1099
- }
1100
- return () => {
1101
- if (node) {
1102
- node.removeEventListener('scroll', computeShadows);
1103
- }
1104
- };
1105
- }, [node, computeShadows]);
1106
- return shadows;
1107
- };
1108
1011
 
1109
1012
  const useBoundingClientRect = (targetElement) => {
1110
1013
  const [clientRect, setClientRect] = React__namespace.useState(() => targetElement ? targetElement.getBoundingClientRect() : null);
@@ -1277,6 +1180,7 @@ const useInlineCopyClipboardShowdownExtension = () => {
1277
1180
  }), [getResource]);
1278
1181
  };
1279
1182
 
1183
+ /* eslint-disable max-len */
1280
1184
  const useMultilineCopyClipboardShowdownExtension = () => {
1281
1185
  const { getResource } = React__namespace.useContext(QuickStartContext);
1282
1186
  return React__namespace.useMemo(() => ({
@@ -1297,10 +1201,7 @@ const useMultilineCopyClipboardShowdownExtension = () => {
1297
1201
  </div>
1298
1202
  </div>
1299
1203
  <div class="pf-v6-c-code-block__content">
1300
- <pre class="pf-v6-c-code-block__pre pfext-code-block__pre">
1301
- <code class="pf-v6-c-code-block__code"
1302
- ${MARKDOWN_SNIPPET_ID}="${groupId}">${group.trim()}</code>
1303
- </pre>
1204
+ <pre class="pf-v6-c-code-block__pre pfext-code-block__pre"><code class="pf-v6-c-code-block__code"${MARKDOWN_SNIPPET_ID}="${groupId}">${group.trim()}</code></pre>
1304
1205
  </div>
1305
1206
  </div>`;
1306
1207
  },
@@ -1321,16 +1222,40 @@ const markdownConvert = (markdown, extensions) => {
1321
1222
  }
1322
1223
  DOMPurify.addHook('beforeSanitizeElements', function (node) {
1323
1224
  // nodeType 1 = element type
1225
+ var _a;
1324
1226
  // transform anchor tags
1325
1227
  if (node.nodeType === 1 && node.nodeName.toLowerCase() === 'a') {
1326
1228
  node.setAttribute('rel', 'noopener noreferrer');
1327
1229
  return node;
1328
1230
  }
1329
- // add PF class to ul and ol lists
1330
- if (node.nodeType === 1 &&
1331
- (node.nodeName.toLowerCase() === 'ul' || node.nodeName.toLowerCase() === 'ol')) {
1332
- node.setAttribute('class', 'pf-v6-c-list');
1333
- return node;
1231
+ // add PF content classes
1232
+ if (node.nodeType === 1) {
1233
+ const contentElements = [
1234
+ 'ul',
1235
+ 'ol',
1236
+ 'p',
1237
+ 'li',
1238
+ 'hr',
1239
+ 'h1',
1240
+ 'h2',
1241
+ 'h3',
1242
+ 'h4',
1243
+ 'h5',
1244
+ 'h6',
1245
+ 'blockquote',
1246
+ 'pre',
1247
+ 'dl',
1248
+ 'dt',
1249
+ 'dd',
1250
+ 'table',
1251
+ ];
1252
+ if (contentElements.includes(node.nodeName.toLowerCase())) {
1253
+ // don't overwrite elements already being styled by PatternFly
1254
+ if (!((_a = node.getAttribute('class')) === null || _a === void 0 ? void 0 : _a.includes('pf-v6-c-'))) {
1255
+ node.setAttribute('class', `pf-v6-c-content--${node.nodeName.toLowerCase()}`);
1256
+ return node;
1257
+ }
1258
+ }
1334
1259
  }
1335
1260
  });
1336
1261
  // Add a hook to make all links open a new window
@@ -1398,7 +1323,7 @@ const RenderExtension = ({ renderExtension, selector, markup, docContext, }) =>
1398
1323
  };
1399
1324
  const InlineMarkdownView = ({ markup, isEmpty, renderExtension, className, }) => {
1400
1325
  const id = React__namespace.useMemo(() => uniqueId('markdown'), []);
1401
- return (React__namespace.createElement("div", { className: reactStyles.css('pfext-markdown-view', { 'is-empty': isEmpty }, className), id: id },
1326
+ return (React__namespace.createElement("div", { className: reactStyles.css({ 'is-empty': isEmpty }, className), id: id },
1402
1327
  React__namespace.createElement("div", { dangerouslySetInnerHTML: { __html: markup } }),
1403
1328
  renderExtension && (React__namespace.createElement(RenderExtension, { renderExtension: renderExtension, selector: `#${id}`, markup: markup }))));
1404
1329
  };
@@ -1470,7 +1395,6 @@ const SELECTOR_ID = `[\\w-]+`;
1470
1395
  // [linkLabel]{{action id}}
1471
1396
  const HIGHLIGHT_REGEXP = new RegExp(`\\[(${LINK_LABEL})]{{(${HIGHLIGHT_ACTIONS.join('|')}) (${SELECTOR_ID})}}`, 'g');
1472
1397
 
1473
- const removeParagraphWrap = (markdown) => markdown.replace(/^<p>|<\/p>$/g, '');
1474
1398
  const QuickStartMarkdownView = ({ content, exactHeight, className, }) => {
1475
1399
  const { markdown } = React__namespace.useContext(QuickStartContext);
1476
1400
  const inlineCopyClipboardShowdownExtension = useInlineCopyClipboardShowdownExtension();
@@ -1522,7 +1446,7 @@ var AdmonitionType;
1522
1446
  })(AdmonitionType || (AdmonitionType = {}));
1523
1447
  const admonitionToAlertVariantMap = {
1524
1448
  [AdmonitionType.NOTE]: { variant: 'info' },
1525
- [AdmonitionType.TIP]: { variant: 'default', customIcon: React__namespace.createElement(LightbulbIcon__default['default'], null) },
1449
+ [AdmonitionType.TIP]: { variant: 'custom', customIcon: React__namespace.createElement(LightbulbIcon__default['default'], null) },
1526
1450
  [AdmonitionType.IMPORTANT]: { variant: 'danger' },
1527
1451
  [AdmonitionType.CAUTION]: { variant: 'warning', customIcon: React__namespace.createElement(FireIcon__default['default'], null) },
1528
1452
  [AdmonitionType.WARNING]: { variant: 'warning' },
@@ -1538,9 +1462,8 @@ React__namespace.useMemo(() => ({
1538
1462
  }
1539
1463
  admonitionType = admonitionType.toUpperCase();
1540
1464
  const { variant, customIcon } = admonitionToAlertVariantMap[admonitionType];
1541
- const style = admonitionType === AdmonitionType.CAUTION ? { backgroundColor: '#ec7a0915' } : {};
1542
1465
  const mdContent = React__namespace.createElement(QuickStartMarkdownView, { content: content });
1543
- const pfAlert = (React__namespace.createElement(reactCore.Alert, { variant: variant, customIcon: customIcon && customIcon, isInline: true, title: admonitionType, className: "pfext-markdown-admonition", style: style }, mdContent));
1466
+ const pfAlert = (React__namespace.createElement(reactCore.Alert, Object.assign({ variant: variant }, (customIcon && { customIcon }), { isInline: true, title: admonitionType, className: "pfext-markdown-admonition" }), mdContent));
1544
1467
  return removeTemplateWhitespace(server.renderToStaticMarkup(pfAlert));
1545
1468
  },
1546
1469
  }), []);
@@ -1649,42 +1572,39 @@ const StatusIcon = ({ status }) => (React__namespace.createElement(Status, { sta
1649
1572
  const QuickStartTileDescription = ({ description, prerequisites, }) => {
1650
1573
  const { getResource } = React__namespace.useContext(QuickStartContext);
1651
1574
  const prereqs = prerequisites === null || prerequisites === void 0 ? void 0 : prerequisites.filter((p) => p);
1575
+ const buttonRef = React__namespace.useRef(null);
1652
1576
  return (React__namespace.createElement(React__namespace.Fragment, null,
1653
- React__namespace.createElement(QuickStartMarkdownView, { content: description, className: "pfext-quick-start-tile-description" }),
1654
- (prereqs === null || prereqs === void 0 ? void 0 : prereqs.length) > 0 && (React__namespace.createElement("div", { className: "pfext-quick-start-tile-prerequisites" },
1655
- React__namespace.createElement(reactCore.Text, { component: reactCore.TextVariants.h5, className: "pfext-quick-start-tile-prerequisites__text" },
1577
+ React__namespace.createElement(QuickStartMarkdownView, { content: description }),
1578
+ (prereqs === null || prereqs === void 0 ? void 0 : prereqs.length) > 0 && (React__namespace.createElement(reactCore.Flex, { spaceItems: { default: 'spaceItemsSm' } },
1579
+ React__namespace.createElement("h5", null,
1656
1580
  getResource('Prerequisites ({{totalPrereqs}})').replace('{{totalPrereqs}}', prereqs.length),
1657
1581
  ' '),
1658
- React__namespace.createElement(reactCore.Popover, { "aria-label": getResource('Prerequisites'), headerContent: getResource('Prerequisites'), className: "pfext-quick-start__base", bodyContent: React__namespace.createElement("div", { className: "pfext-popover__base" },
1659
- React__namespace.createElement(reactCore.TextList, { "aria-label": getResource('Prerequisites'), className: "pfext-quick-start-tile-prerequisites-list" }, prereqs.map((prerequisite, index) => (
1582
+ React__namespace.createElement(reactCore.Button, { variant: "link", isInline: true, "data-testid": "qs-card-prereqs", ref: buttonRef, onClick: (e) => {
1583
+ e.preventDefault();
1584
+ e.stopPropagation();
1585
+ }, "aria-label": getResource('Show prerequisites') },
1586
+ React__namespace.createElement(InfoCircleIcon__default['default'], null)),
1587
+ React__namespace.createElement(reactCore.Popover, { "aria-label": getResource('Prerequisites'), headerContent: getResource('Prerequisites'), triggerRef: buttonRef, bodyContent: React__namespace.createElement("div", null,
1588
+ React__namespace.createElement("ul", { "aria-label": getResource('Prerequisites') }, prereqs.map((prerequisite, index) => (
1660
1589
  // eslint-disable-next-line react/no-array-index-key
1661
- React__namespace.createElement(reactCore.TextListItem, { key: index },
1662
- React__namespace.createElement(QuickStartMarkdownView, { content: prerequisite })))))) },
1663
- React__namespace.createElement(reactCore.Button, { variant: "link", isInline: true, className: "pfext-quick-start-tile-prerequisites__icon", "data-testid": "qs-card-prereqs", onClick: (e) => {
1664
- e.preventDefault();
1665
- e.stopPropagation();
1666
- }, "aria-label": getResource('Show prerequisites') },
1667
- React__namespace.createElement(InfoCircleIcon__default['default'], null)))))));
1590
+ React__namespace.createElement("li", { key: index },
1591
+ React__namespace.createElement(QuickStartMarkdownView, { content: prerequisite })))))) })))));
1668
1592
  };
1669
1593
 
1670
- const QuickStartTileFooter = ({ quickStartId, status, totalTasks, }) => {
1594
+ const QuickStartTileFooter = ({ quickStartId, status, totalTasks, onClickContinue, }) => {
1671
1595
  const { getResource } = React__namespace.useContext(QuickStartContext);
1672
1596
  const { activeQuickStartID, startQuickStart, restartQuickStart } = React__namespace.useContext(QuickStartContext);
1673
- const start = React__namespace.useCallback((e) => {
1674
- e.preventDefault();
1675
- e.stopPropagation();
1597
+ const start = React__namespace.useCallback(() => {
1676
1598
  startQuickStart(quickStartId, totalTasks);
1677
1599
  }, [quickStartId, startQuickStart, totalTasks]);
1678
- const restart = React__namespace.useCallback((e) => {
1679
- e.preventDefault();
1680
- e.stopPropagation();
1600
+ const restart = React__namespace.useCallback(() => {
1681
1601
  restartQuickStart(quickStartId, totalTasks);
1682
1602
  }, [quickStartId, restartQuickStart, totalTasks]);
1683
1603
  return (React__namespace.createElement(reactCore.Flex, { justifyContent: { default: 'justifyContentSpaceBetween' } },
1684
1604
  status === exports.QuickStartStatus.NOT_STARTED && (React__namespace.createElement(reactCore.FlexItem, null,
1685
1605
  React__namespace.createElement(reactCore.Button, { onClick: start, variant: "link", isInline: true, "data-testid": "qs-card-notStarted-start", id: `${quickStartId}-start`, "aria-labelledby": `${quickStartId}-start ${quickStartId}` }, getResource('Start')))),
1686
1606
  status === exports.QuickStartStatus.IN_PROGRESS && activeQuickStartID !== quickStartId && (React__namespace.createElement(reactCore.FlexItem, null,
1687
- React__namespace.createElement(reactCore.Button, { variant: "link", isInline: true, "data-testid": "qs-card-inProgress-resume", id: `${quickStartId}-continue`, "aria-labelledby": `${quickStartId}-continue ${quickStartId}` }, getResource('Continue')))),
1607
+ React__namespace.createElement(reactCore.Button, { variant: "link", onClick: onClickContinue, isInline: true, "data-testid": "qs-card-inProgress-resume", id: `${quickStartId}-continue`, "aria-labelledby": `${quickStartId}-continue ${quickStartId}` }, getResource('Continue')))),
1688
1608
  status === exports.QuickStartStatus.COMPLETE && (React__namespace.createElement(reactCore.FlexItem, null,
1689
1609
  React__namespace.createElement(reactCore.Button, { onClick: restart, variant: "link", isInline: true, "data-testid": "qs-card-complete-restart", id: `${quickStartId}-restart`, "aria-labelledby": `${quickStartId}-restart ${quickStartId}` }, getResource('Restart')))),
1690
1610
  status === exports.QuickStartStatus.IN_PROGRESS && (React__namespace.createElement(reactCore.FlexItem, null,
@@ -1698,39 +1618,43 @@ const QuickStartTileFooterExternal = ({ link, quickStartId, }) => {
1698
1618
  React__namespace.createElement(reactCore.Button, { component: "a", href: href, target: "_blank", rel: "noopener noreferrer", variant: "link", "aria-label": `Open documentation in new window`, isInline: true, icon: React__namespace.createElement(ExternalLinkAltIcon__default['default'], null), iconPosition: "right", id: quickStartId, "aria-labelledby": `${quickStartId}-external ${quickStartId}` }, text || href))));
1699
1619
  };
1700
1620
 
1701
- const statusColorMap = {
1702
- [exports.QuickStartStatus.COMPLETE]: 'green',
1703
- [exports.QuickStartStatus.IN_PROGRESS]: 'purple',
1704
- [exports.QuickStartStatus.NOT_STARTED]: 'grey',
1621
+ const QuickStartTileHeader = ({ name, quickStartId, onSelect, }) => {
1622
+ return (React__namespace.createElement(reactCore.Flex, { flexWrap: { default: 'nowrap' } },
1623
+ React__namespace.createElement(reactCore.Title, { headingLevel: "h3", "data-test": "title", id: quickStartId },
1624
+ React__namespace.createElement(reactCore.Button, { variant: "link", isInline: true, onClick: onSelect },
1625
+ React__namespace.createElement(QuickStartMarkdownView, { content: name })))));
1705
1626
  };
1706
- const QuickStartTileHeader = ({ status, duration, name, type, quickStartId, }) => {
1707
- const { getResource } = React__namespace.useContext(QuickStartContext);
1627
+
1628
+ const QuickStartTile = ({ quickStart, status, isActive, onClick = () => { }, action, }) => {
1629
+ const { metadata: { name: id }, spec: { icon, tasks, displayName, description, durationMinutes, prerequisites, link, type }, } = quickStart;
1630
+ const { setActiveQuickStart, footer, getResource } = React__namespace.useContext(QuickStartContext);
1631
+ const statusColorMap = {
1632
+ [exports.QuickStartStatus.COMPLETE]: 'green',
1633
+ [exports.QuickStartStatus.IN_PROGRESS]: 'purple',
1634
+ [exports.QuickStartStatus.NOT_STARTED]: 'grey',
1635
+ };
1708
1636
  const statusLocaleMap = {
1709
1637
  [exports.QuickStartStatus.COMPLETE]: getResource('Complete'),
1710
1638
  [exports.QuickStartStatus.IN_PROGRESS]: getResource('In progress'),
1711
1639
  [exports.QuickStartStatus.NOT_STARTED]: getResource('Not started'),
1712
1640
  };
1713
- return (React__namespace.createElement("div", { className: "pfext-quick-start-tile-header" },
1714
- React__namespace.createElement(reactCore.Title, { headingLevel: "h3", "data-test": "title", id: quickStartId },
1715
- React__namespace.createElement(QuickStartMarkdownView, { content: name })),
1716
- React__namespace.createElement("div", { className: "pfext-quick-start-tile-header__status" },
1717
- type && (React__namespace.createElement(reactCore.Label, { className: "pfext-quick-start-tile-header--margin", color: type.color }, type.text)),
1718
- duration && (React__namespace.createElement(reactCore.Label, { variant: "outline", "data-test": "duration", icon: React__namespace.createElement(OutlinedClockIcon__default['default'], null), className: "pfext-quick-start-tile-header--margin" }, getResource('{{duration, number}} minutes', duration).replace('{{duration, number}}', duration))),
1719
- status !== exports.QuickStartStatus.NOT_STARTED && (React__namespace.createElement(reactCore.Label, { variant: "outline", color: statusColorMap[status], icon: React__namespace.createElement(StatusIcon, { status: status }), "data-test": "status" }, statusLocaleMap[status])))));
1720
- };
1721
-
1722
- const QuickStartTile = ({ quickStart, status, isActive, onClick = () => { }, }) => {
1723
- const { metadata: { name: id }, spec: { icon, tasks, displayName, description, durationMinutes, prerequisites, link, type }, } = quickStart;
1724
- const { setActiveQuickStart, footer } = React__namespace.useContext(QuickStartContext);
1725
- const ref = React__namespace.useRef(null);
1726
1641
  let quickStartIcon;
1727
1642
  if (typeof icon === 'object') {
1728
- quickStartIcon = React__namespace.createElement(reactCore.Icon, { size: "xl" }, icon);
1643
+ quickStartIcon = React__namespace.createElement(reactCore.Icon, { size: "2xl" }, icon);
1729
1644
  }
1730
1645
  else {
1731
- quickStartIcon = (React__namespace.createElement(reactCore.Icon, { size: "xl" },
1732
- React__namespace.createElement(FallbackImg, { className: "pfext-catalog-item-icon__img--large", src: icon, alt: "", fallback: React__namespace.createElement(RocketIcon__default['default'], null) })));
1646
+ quickStartIcon = (React__namespace.createElement(reactCore.Icon, { size: "2xl" },
1647
+ React__namespace.createElement(FallbackImg, { src: icon, alt: "", className: "pfext-catalog-item-icon__img", fallback: React__namespace.createElement(RocketIcon__default['default'], null) })));
1733
1648
  }
1649
+ const onSelect = () => {
1650
+ if (!link) {
1651
+ setActiveQuickStart(id, tasks === null || tasks === void 0 ? void 0 : tasks.length);
1652
+ }
1653
+ else {
1654
+ window.open(link.href, '_blank', 'noopener,noreferrer');
1655
+ }
1656
+ onClick();
1657
+ };
1734
1658
  const footerComponent = React__namespace.useMemo(() => {
1735
1659
  if (footer && footer.show === false) {
1736
1660
  return null;
@@ -1738,47 +1662,44 @@ const QuickStartTile = ({ quickStart, status, isActive, onClick = () => { }, })
1738
1662
  if (link) {
1739
1663
  return React__namespace.createElement(QuickStartTileFooterExternal, { link: link, quickStartId: id });
1740
1664
  }
1741
- return React__namespace.createElement(QuickStartTileFooter, { quickStartId: id, status: status, totalTasks: tasks === null || tasks === void 0 ? void 0 : tasks.length });
1665
+ return (React__namespace.createElement(QuickStartTileFooter, { quickStartId: id, status: status, totalTasks: tasks === null || tasks === void 0 ? void 0 : tasks.length, onClickContinue: onSelect }));
1742
1666
  }, [footer, id, link, status, tasks === null || tasks === void 0 ? void 0 : tasks.length]);
1743
- const handleClick = (e) => {
1744
- var _a;
1745
- if ((_a = ref.current) === null || _a === void 0 ? void 0 : _a.contains(e.target)) {
1746
- if (link) {
1747
- window.open(link.href);
1748
- }
1749
- else {
1750
- setActiveQuickStart(id, tasks === null || tasks === void 0 ? void 0 : tasks.length);
1751
- }
1752
- onClick();
1753
- }
1754
- };
1755
- return (React__namespace.createElement("div", { ref: ref },
1756
- React__namespace.createElement(CatalogTile, { id: id + '-catalog-tile', style: {
1757
- cursor: 'pointer',
1758
- }, icon: quickStartIcon, className: "pfext-quick-start-tile", "data-testid": `qs-card-${camelize(displayName)}`, featured: isActive, title: React__namespace.createElement(QuickStartTileHeader, { name: displayName, status: status, duration: durationMinutes, type: type, quickStartId: id }), onClick: handleClick, onKeyDown: (event) => {
1759
- if (event.key === 'Enter' || event.key === ' ') {
1760
- setActiveQuickStart(id, tasks === null || tasks === void 0 ? void 0 : tasks.length);
1761
- onClick();
1762
- }
1763
- },
1764
- // https://github.com/patternfly/patternfly-react/issues/7039
1765
- href: link === null || link === void 0 ? void 0 : link.href, "data-test": `tile ${id}`, description: React__namespace.createElement(QuickStartTileDescription, { description: description, prerequisites: prerequisites }), footer: footerComponent, tabIndex: 0 })));
1667
+ const ActionIcon = (action === null || action === void 0 ? void 0 : action.icon) || OutlinedBookmarkIcon__default['default'];
1668
+ const additionalAction = action ? (React__namespace.createElement(reactCore.Button, Object.assign({ "aria-label": action['aria-label'], icon: React__namespace.createElement(ActionIcon, null), variant: "plain", onClick: action.onClick }, action.buttonProps))) : undefined;
1669
+ return (React__namespace.createElement(reactCore.Card, Object.assign({ id: `${id}-catalog-tile`, style: { height: '100%' }, "data-testid": `qs-card-${camelize(displayName)}` }, (isActive && {
1670
+ isClickable: true,
1671
+ isSelectable: true,
1672
+ isSelected: true,
1673
+ isClicked: true,
1674
+ })),
1675
+ React__namespace.createElement(reactCore.CardHeader, Object.assign({}, (action && {
1676
+ actions: { actions: additionalAction },
1677
+ })), quickStartIcon),
1678
+ React__namespace.createElement(reactCore.CardTitle, null,
1679
+ React__namespace.createElement(QuickStartTileHeader, { name: displayName, onSelect: onSelect, quickStartId: id })),
1680
+ React__namespace.createElement(reactCore.CardBody, null,
1681
+ React__namespace.createElement(reactCore.Stack, { hasGutter: true },
1682
+ React__namespace.createElement(reactCore.Flex, { spaceItems: { default: 'spaceItemsSm' } },
1683
+ type && React__namespace.createElement(reactCore.Label, { color: type.color }, type.text),
1684
+ durationMinutes && (React__namespace.createElement(reactCore.Label, { variant: "outline", "data-test": "duration", icon: React__namespace.createElement(OutlinedClockIcon__default['default'], null) }, getResource('{{duration, number}} minutes', durationMinutes).replace('{{duration, number}}', durationMinutes))),
1685
+ status !== exports.QuickStartStatus.NOT_STARTED && (React__namespace.createElement(reactCore.Label, { variant: "outline", color: statusColorMap[status], icon: React__namespace.createElement(StatusIcon, { status: status }), "data-test": "status" }, statusLocaleMap[status]))),
1686
+ React__namespace.createElement(QuickStartTileDescription, { description: description, prerequisites: prerequisites }))),
1687
+ React__namespace.createElement(reactCore.CardFooter, null, footerComponent)));
1766
1688
  };
1767
1689
 
1768
1690
  const QuickStartCatalog = ({ quickStarts }) => {
1769
1691
  const { activeQuickStartID, allQuickStartStates } = React__namespace.useContext(QuickStartContext);
1770
- return (React__namespace.createElement("div", { className: "pfext-page-layout__content" },
1771
- React__namespace.createElement(reactCore.Gallery, { className: "pfext-quick-start-catalog__gallery", hasGutter: true }, quickStarts.map((quickStart) => {
1692
+ return (React__namespace.createElement("div", null,
1693
+ React__namespace.createElement(reactCore.Gallery, { hasGutter: true }, quickStarts.map((quickStart, index) => {
1772
1694
  const { metadata: { name: id }, } = quickStart;
1773
- return (React__namespace.createElement(reactCore.GalleryItem, { key: id, className: "pfext-quick-start-catalog__gallery-item" },
1774
- React__namespace.createElement(QuickStartTile, { quickStart: quickStart, isActive: id === activeQuickStartID, status: getQuickStartStatus(allQuickStartStates, id) })));
1695
+ return (React__namespace.createElement(QuickStartTile, { key: index, quickStart: quickStart, isActive: id === activeQuickStartID, status: getQuickStartStatus(allQuickStartStates, id) }));
1775
1696
  }))));
1776
1697
  };
1777
1698
 
1778
1699
  const QuickStartCatalogFilterSearch = (_a) => {
1779
1700
  var { searchInputText, handleTextChange } = _a, props = tslib.__rest(_a, ["searchInputText", "handleTextChange"]);
1780
1701
  const { getResource } = React__namespace.useContext(QuickStartContext);
1781
- return (React__namespace.createElement(reactCore.ToolbarItem, { className: "pfext-quick-start-catalog-filter__input" },
1702
+ return (React__namespace.createElement(reactCore.ToolbarItem, null,
1782
1703
  React__namespace.createElement(reactCore.SearchInput, Object.assign({ placeholder: getResource('Filter by keyword...'), value: searchInputText, onChange: (_ev, value) => handleTextChange(value), onClear: () => handleTextChange('') }, props))));
1783
1704
  };
1784
1705
  const QuickStartCatalogFilterSelect = (_a) => {
@@ -1793,7 +1714,7 @@ const QuickStartCatalogFilterSelect = (_a) => {
1793
1714
  };
1794
1715
  const QuickStartCatalogFilterCount = ({ quickStartsCount }) => {
1795
1716
  const { getResource } = React__namespace.useContext(QuickStartContext);
1796
- return (React__namespace.createElement(reactCore.ToolbarItem, { className: "pfext-quick-start-catalog-filter__count", align: { default: 'alignEnd' } }, getResource('{{count, number}} item', quickStartsCount).replace('{{count, number}}', quickStartsCount)));
1717
+ return (React__namespace.createElement(reactCore.ToolbarItem, { align: { default: 'alignEnd' } }, getResource('{{count, number}} item', quickStartsCount).replace('{{count, number}}', quickStartsCount)));
1797
1718
  };
1798
1719
  const QuickStartCatalogFilterSearchWrapper = ({ onSearchInputChange = () => { } }) => {
1799
1720
  const { useQueryParams, filter, setFilter } = React__namespace.useContext(QuickStartContext);
@@ -1883,7 +1804,7 @@ const QuickStartCatalogFilterCountWrapper = ({ quickStartsCount }) => React__nam
1883
1804
 
1884
1805
  const QuickStartCatalogFilter = (_a) => {
1885
1806
  var { quickStartsCount, onSearchInputChange = () => { }, onStatusChange = () => { } } = _a, props = tslib.__rest(_a, ["quickStartsCount", "onSearchInputChange", "onStatusChange"]);
1886
- return (React__namespace.createElement(reactCore.Toolbar, Object.assign({ usePageInsets: true, className: "pfext-quick-start-catalog-filter__flex" }, props),
1807
+ return (React__namespace.createElement(reactCore.Toolbar, Object.assign({}, props),
1887
1808
  React__namespace.createElement(reactCore.ToolbarContent, null,
1888
1809
  React__namespace.createElement(QuickStartCatalogFilterSearchWrapper, { onSearchInputChange: onSearchInputChange }),
1889
1810
  React__namespace.createElement(QuickStartCatalogFilterStatusWrapper, { onStatusChange: onStatusChange }),
@@ -1959,28 +1880,29 @@ const QuickStartCatalogPage = ({ quickStarts, showFilter, sortFnc = (q1, q2) =>
1959
1880
  if (!allQuickStarts || allQuickStarts.length === 0) {
1960
1881
  return React__namespace.createElement(EmptyBox, { label: getResource('Quick Starts') });
1961
1882
  }
1962
- return (React__namespace.createElement("div", { className: "pfext-quick-start__base" },
1963
- showTitle && (React__namespace.createElement("div", { className: "pfext-page-layout__header" },
1964
- React__namespace.createElement(reactCore.Text, { component: "h1", className: "pfext-page-layout__title", "data-test": "page-title" }, title || getResource('Quick Starts')),
1965
- hint && React__namespace.createElement("div", { className: "pfext-page-layout__hint" }, hint))),
1966
- showTitle && React__namespace.createElement(reactCore.Divider, { component: "div" }),
1967
- showFilter && (React__namespace.createElement(React__namespace.Fragment, null,
1968
- React__namespace.createElement(QuickStartCatalogFilter, { quickStartsCount: filteredQuickStarts.length, onSearchInputChange: onSearchInputChange, onStatusChange: onStatusChange }),
1969
- React__namespace.createElement(reactCore.Divider, { component: "div" }))),
1970
- React__namespace.createElement(React__namespace.Fragment, null, filteredQuickStarts.length === 0 ? (React__namespace.createElement(QuickStartCatalogEmptyState, { clearFilters: clearFilters })) : (React__namespace.createElement(QuickStartCatalog, { quickStarts: filteredQuickStarts })))));
1883
+ return (React__namespace.createElement(React__namespace.Fragment, null,
1884
+ (showTitle || showFilter) && (React__namespace.createElement(reactCore.PageSection, { hasBodyWrapper: false },
1885
+ showTitle && (React__namespace.createElement(React__namespace.Fragment, null,
1886
+ React__namespace.createElement(reactCore.Content, { component: "h1", "data-test": "page-title" }, title || getResource('Quick Starts')),
1887
+ hint && React__namespace.createElement("div", null, hint))),
1888
+ showTitle && React__namespace.createElement(reactCore.Divider, { component: "div" }),
1889
+ showFilter && (React__namespace.createElement(React__namespace.Fragment, null,
1890
+ React__namespace.createElement(QuickStartCatalogFilter, { quickStartsCount: filteredQuickStarts.length, onSearchInputChange: onSearchInputChange, onStatusChange: onStatusChange }),
1891
+ React__namespace.createElement(reactCore.Divider, { component: "div" }))))),
1892
+ React__namespace.createElement(reactCore.PageSection, { hasBodyWrapper: false }, filteredQuickStarts.length === 0 ? (React__namespace.createElement(QuickStartCatalogEmptyState, { clearFilters: clearFilters })) : (React__namespace.createElement(QuickStartCatalog, { quickStarts: filteredQuickStarts })))));
1971
1893
  };
1972
1894
 
1973
- const QuickStartCatalogHeader = ({ title, hint, }) => (React__namespace.createElement("div", { className: "pfext-page-layout__header" },
1974
- React__namespace.createElement("h1", { "data-pf-content": "true", className: "pfext-page-layout__title" }, title),
1975
- hint && React__namespace.createElement("div", { className: "pfext-page-layout__hint" }, hint)));
1895
+ const QuickStartCatalogHeader = ({ title, hint, }) => (React__namespace.createElement("div", null,
1896
+ React__namespace.createElement(reactCore.Title, { headingLevel: "h1", "data-pf-content": "true" }, title),
1897
+ hint && React__namespace.createElement("div", null, hint)));
1976
1898
 
1977
- const QuickStartCatalogSection = ({ children }) => (React__namespace.createElement("div", { className: "pfext-page-layout__content" }, children));
1899
+ const QuickStartCatalogSection = ({ children }) => (React__namespace.createElement("div", null, children));
1978
1900
 
1979
- const QuickStartCatalogToolbar = ({ children }) => (React__namespace.createElement(reactCore.Toolbar, { usePageInsets: true, className: "pfext-quick-start-catalog-filter__flex" }, children));
1901
+ const QuickStartCatalogToolbar = ({ children }) => (React__namespace.createElement(reactCore.Toolbar, null, children));
1980
1902
 
1981
1903
  const QuickStartCloseModal = ({ isOpen, onConfirm, onCancel, }) => {
1982
1904
  const { getResource } = React__namespace.useContext(QuickStartContext);
1983
- return (React__namespace.createElement(Modal, { className: "pfext-quick-start-drawer__modal pfext-quick-start__base", isOpen: isOpen, variant: reactCore.ModalVariant.small, showClose: false, "data-test": "leave-quickstart", title: getResource('Leave quick start?'), footer: React__namespace.createElement(reactCore.Flex, null,
1905
+ return (React__namespace.createElement(Modal, { isOpen: isOpen, variant: deprecated.ModalVariant.small, showClose: false, "data-test": "leave-quickstart", title: getResource('Leave quick start?'), footer: React__namespace.createElement(reactCore.Flex, null,
1984
1906
  React__namespace.createElement(reactCore.FlexItem, { align: { default: 'alignRight' } },
1985
1907
  React__namespace.createElement(reactCore.Button, { variant: "secondary", "data-test": "cancel button", onClick: onCancel }, getResource('Cancel'))),
1986
1908
  React__namespace.createElement(reactCore.FlexItem, null,
@@ -1989,35 +1911,35 @@ const QuickStartCloseModal = ({ isOpen, onConfirm, onCancel, }) => {
1989
1911
 
1990
1912
  const QuickStartTaskHeader = ({ title, taskIndex, subtitle, taskStatus, size, isActiveTask, onTaskSelect, children, }) => {
1991
1913
  const titleRef = React__namespace.useRef(null);
1914
+ const { focusOnQuickStart } = React__namespace.useContext(QuickStartContext);
1992
1915
  React__namespace.useEffect(() => {
1993
- if (isActiveTask) {
1916
+ if (focusOnQuickStart && isActiveTask) {
1994
1917
  // Focus the WizardNavItem button element that contains the title
1995
1918
  titleRef.current.parentNode.focus();
1996
1919
  }
1997
- }, [isActiveTask]);
1998
- reactStyles.css('pfext-quick-start-task-header__title', {
1999
- 'pfext-quick-start-task-header__title-success': taskStatus === exports.QuickStartTaskStatus.SUCCESS,
2000
- 'pfext-quick-start-task-header__title-failed': taskStatus === (exports.QuickStartTaskStatus.FAILED || exports.QuickStartTaskStatus.VISITED),
2001
- });
2002
- // const notCompleted = taskStatus === QuickStartTaskStatus.VISITED;
2003
- // const skippedReview = taskStatus === QuickStartTaskStatus.REVIEW;
1920
+ }, [focusOnQuickStart, isActiveTask]);
2004
1921
  const failedReview = taskStatus === exports.QuickStartTaskStatus.FAILED;
2005
- // TODO: toned down when this is shown, investigate further when we should display it
2006
- // related: https://github.com/patternfly/patternfly-quickstarts/issues/104
2007
1922
  const tryAgain = failedReview && (React__namespace.createElement(React__namespace.Fragment, null,
2008
1923
  React__namespace.createElement("div", null),
2009
1924
  React__namespace.createElement("div", { className: "pfext-quick-start-task-header__tryagain" }, "Try the steps again.")));
2010
1925
  const content = (React__namespace.createElement("div", { ref: titleRef },
2011
- React__namespace.createElement(reactCore.Title, { headingLevel: "h3" },
2012
- React__namespace.createElement("span", { dangerouslySetInnerHTML: { __html: removeParagraphWrap(markdownConvert(title)) } }),
2013
- isActiveTask && subtitle && (React__namespace.createElement("span", { "data-test-id": "quick-start-task-subtitle" },
1926
+ React__namespace.createElement(reactCore.Title, { headingLevel: "h3", size: size },
1927
+ React__namespace.createElement("span", { className: "pfext-quick-start-task-header__title" }, title),
1928
+ isActiveTask && subtitle && (React__namespace.createElement("span", null,
2014
1929
  ' ',
2015
- React__namespace.createElement(reactCore.Text, { component: reactCore.TextVariants.small }, subtitle))),
1930
+ React__namespace.createElement("span", { "data-test-id": "quick-start-task-subtitle", className: "pfext-quick-start-task-header__subtitle" }, subtitle))),
2016
1931
  tryAgain)));
2017
- return (React__namespace.createElement(reactCore.WizardNavItem, { content: content, stepIndex: taskIndex, onClick: () => onTaskSelect(taskIndex - 1), component: "button", isCurrent: isActiveTask }, children));
1932
+ let status = 'default';
1933
+ if (taskStatus === exports.QuickStartTaskStatus.FAILED) {
1934
+ status = 'error';
1935
+ }
1936
+ else if (taskStatus === exports.QuickStartTaskStatus.SUCCESS) {
1937
+ status = 'success';
1938
+ }
1939
+ return (React__namespace.createElement(reactCore.WizardNavItem, { content: content, stepIndex: taskIndex, onClick: () => onTaskSelect(taskIndex - 1), component: "button", isCurrent: isActiveTask, status: status }, children));
2018
1940
  };
2019
1941
 
2020
- const QuickStartTaskHeaderList = ({ tasks, allTaskStatuses, onTaskSelect, }) => tasks.length > 0 ? (React__namespace.createElement(reactCore.List, { className: "pf-v6-c-wizard__nav-list" }, tasks.map((task, index) => (React__namespace.createElement(QuickStartTaskHeader, { key: task.title, title: task.title, taskIndex: index + 1, size: "md", taskStatus: allTaskStatuses[index], onTaskSelect: onTaskSelect }))))) : null;
1942
+ const QuickStartTaskHeaderList = ({ tasks, allTaskStatuses, onTaskSelect, }) => (tasks === null || tasks === void 0 ? void 0 : tasks.length) > 0 ? (React__namespace.createElement("div", { className: "pf-v6-c-wizard__nav-list" }, tasks.map((task, index) => (React__namespace.createElement(QuickStartTaskHeader, { key: task.title, title: task.title, taskIndex: index + 1, size: "md", taskStatus: allTaskStatuses[index], onTaskSelect: onTaskSelect }))))) : null;
2021
1943
 
2022
1944
  const QuickStartConclusion = ({ tasks, conclusion, allTaskStatuses, nextQuickStarts, onQuickStartChange, onTaskSelect, }) => {
2023
1945
  const hasFailedTask = allTaskStatuses.includes(exports.QuickStartTaskStatus.FAILED);
@@ -2032,10 +1954,7 @@ const QuickStartConclusion = ({ tasks, conclusion, allTaskStatuses, nextQuickSta
2032
1954
  nextQuickStarts.length > 0 &&
2033
1955
  nextQuickStarts.map((nextQuickStart, index) => {
2034
1956
  var _a;
2035
- return (React__namespace.createElement(reactCore.Button, { variant: "link", onClick: () => onQuickStartChange(nextQuickStart.metadata.name), isInline: true, isBlock: true, key: index },
2036
- getResource('Start {{nextQSDisplayName}} quick start').replace('{{nextQSDisplayName}}', (_a = nextQuickStart === null || nextQuickStart === void 0 ? void 0 : nextQuickStart.spec) === null || _a === void 0 ? void 0 : _a.displayName),
2037
- ' ',
2038
- React__namespace.createElement(ArrowRightIcon__default['default'], { style: { marginLeft: 'var(--pf-t--global--spacer--xs)', verticalAlign: 'middle' } })));
1957
+ return (React__namespace.createElement(reactCore.Button, { variant: "link", onClick: () => onQuickStartChange(nextQuickStart.metadata.name), isInline: true, icon: React__namespace.createElement(ArrowRightIcon__default['default'], null), iconPosition: "end", isBlock: true, key: index, style: { marginTop: 'var(--pf-t--global--spacer--md' } }, getResource('Start {{nextQSDisplayName}} quick start').replace('{{nextQSDisplayName}}', (_a = nextQuickStart === null || nextQuickStart === void 0 ? void 0 : nextQuickStart.spec) === null || _a === void 0 ? void 0 : _a.displayName)));
2039
1958
  })));
2040
1959
  };
2041
1960
 
@@ -2043,15 +1962,14 @@ const QuickStartIntroduction = ({ tasks, introduction, allTaskStatuses, prerequi
2043
1962
  const { getResource } = React__namespace.useContext(QuickStartContext);
2044
1963
  const prereqs = prerequisites === null || prerequisites === void 0 ? void 0 : prerequisites.filter((p) => p);
2045
1964
  const [isPrereqsExpanded, setIsPrereqsExpanded] = React__namespace.useState(false);
2046
- const prereqList = (prereqs === null || prereqs === void 0 ? void 0 : prereqs.length) > 0 && (React__namespace.createElement(reactCore.ExpandableSection, { toggleText: getResource('View Prerequisites ({{totalPrereqs}})').replace('{{totalPrereqs}}', prereqs.length), onToggle: () => setIsPrereqsExpanded(!isPrereqsExpanded), className: "pfext-quick-start-intro__prereq" },
2047
- React__namespace.createElement(reactCore.List, { className: "pfext-quick-start-intro__prereq-list" }, prereqs.map((pr) => (React__namespace.createElement(reactCore.ListItem, { key: pr, className: "pfext-quick-start-intro__prereq-list__item" },
2048
- React__namespace.createElement("span", { className: "pfext-quick-start-intro__prereq-list__item-content" },
2049
- React__namespace.createElement(QuickStartMarkdownView, { content: pr }))))))));
2050
- return (React__namespace.createElement(React__namespace.Fragment, null,
1965
+ const prereqList = (prereqs === null || prereqs === void 0 ? void 0 : prereqs.length) > 0 && (React__namespace.createElement(reactCore.ExpandableSection, { toggleText: getResource('View Prerequisites ({{totalPrereqs}})').replace('{{totalPrereqs}}', prereqs.length), onToggle: () => setIsPrereqsExpanded(!isPrereqsExpanded) },
1966
+ React__namespace.createElement(reactCore.List, null, prereqs.map((pr) => (React__namespace.createElement(reactCore.ListItem, { key: pr },
1967
+ React__namespace.createElement(QuickStartMarkdownView, { content: pr })))))));
1968
+ return (React__namespace.createElement(reactCore.Stack, { hasGutter: true },
2051
1969
  React__namespace.createElement(QuickStartMarkdownView, { content: introduction }),
2052
1970
  prereqList,
2053
- React__namespace.createElement("p", { style: { marginBottom: 'var(--pf-t--global--spacer--md)' } },
2054
- getResource('In this quick start, you will complete {{count, number}} task', tasks.length).replace('{{count, number}}', tasks.length),
1971
+ React__namespace.createElement("p", null,
1972
+ getResource('In this quick start, you will complete {{count, number}} task', tasks === null || tasks === void 0 ? void 0 : tasks.length).replace('{{count, number}}', (tasks === null || tasks === void 0 ? void 0 : tasks.length) || 0),
2055
1973
  ":"),
2056
1974
  React__namespace.createElement(QuickStartTaskHeaderList, { tasks: tasks, allTaskStatuses: allTaskStatuses, onTaskSelect: onTaskSelect })));
2057
1975
  };
@@ -2069,12 +1987,9 @@ const getAlertVariant = (status) => {
2069
1987
  const QuickStartTaskReview = ({ review, taskStatus, onTaskReview, }) => {
2070
1988
  const { instructions, failedTaskHelp: taskHelp } = review;
2071
1989
  const { getResource } = React__namespace.useContext(QuickStartContext);
2072
- const alertClassNames = reactStyles.css('pfext-quick-start-task-review', {
2073
- 'pfext-quick-start-task-review--success': taskStatus === exports.QuickStartTaskStatus.SUCCESS,
2074
- 'pfext-quick-start-task-review--failed': taskStatus === exports.QuickStartTaskStatus.FAILED,
2075
- });
2076
- const title = React__namespace.createElement("span", { className: alertClassNames }, getResource('Check your work'));
2077
- return (React__namespace.createElement(reactCore.Alert, { className: "pfext-quick-start-task-review-alert", variant: getAlertVariant(taskStatus), title: title, isInline: true, role: "alert" },
1990
+ return (React__namespace.createElement(reactCore.Alert, { variant: getAlertVariant(taskStatus), title: getResource('Check your work'), isInline: true, role: "alert", style: {
1991
+ marginBottom: 'var(--pf-t--global--spacer--md)',
1992
+ } },
2078
1993
  React__namespace.createElement(QuickStartMarkdownView, { content: instructions }),
2079
1994
  React__namespace.createElement("span", { className: "pfext-quick-start-task-review__actions" },
2080
1995
  React__namespace.createElement(reactCore.Radio, { id: "review-success", name: "review-success", "data-testid": "qs-drawer-check-yes", label: getResource('Yes'), className: "pfext-quick-start-task-review__radio", isChecked: taskStatus === exports.QuickStartTaskStatus.SUCCESS, onChange: () => onTaskReview(exports.QuickStartTaskStatus.SUCCESS) }),
@@ -2084,7 +1999,7 @@ const QuickStartTaskReview = ({ review, taskStatus, onTaskReview, }) => {
2084
1999
 
2085
2000
  const QuickStartTasks = ({ tasks, taskNumber, allTaskStatuses, onTaskReview, onTaskSelect, }) => {
2086
2001
  const { getResource, alwaysShowTaskReview } = React__namespace.useContext(QuickStartContext);
2087
- return (React__namespace.createElement("div", { className: "pfext-quick-start-tasks__list" },
2002
+ return (React__namespace.createElement("div", { className: "pf-v6-c-wizard__nav-list", style: { padding: '0 0 0 0' } },
2088
2003
  React__namespace.createElement("ul", null, tasks
2089
2004
  .filter((_, index) => allTaskStatuses[index] !== exports.QuickStartTaskStatus.INIT)
2090
2005
  .map((task, index) => {
@@ -2096,7 +2011,7 @@ const QuickStartTasks = ({ tasks, taskNumber, allTaskStatuses, onTaskReview, onT
2096
2011
  return (React__namespace.createElement(React__namespace.Fragment, { key: title },
2097
2012
  React__namespace.createElement(QuickStartTaskHeader, { taskIndex: index + 1, title: title, size: "md", subtitle: getResource('{{index, number}} of {{tasks, number}}')
2098
2013
  .replace('{{index, number}}', index + 1)
2099
- .replace('{{tasks, number}}', tasks.length), taskStatus: taskStatus, isActiveTask: isActiveTask, onTaskSelect: onTaskSelect }, isActiveTask && (React__namespace.createElement("div", { className: "pfext-quick-start-task__content" },
2014
+ .replace('{{tasks, number}}', tasks.length), taskStatus: taskStatus, isActiveTask: isActiveTask, onTaskSelect: onTaskSelect }, isActiveTask && (React__namespace.createElement(reactCore.Stack, { hasGutter: true },
2100
2015
  React__namespace.createElement(QuickStartMarkdownView, { content: description }),
2101
2016
  shouldShowTaskReview && (React__namespace.createElement(QuickStartTaskReview, { review: review, taskStatus: taskStatus, onTaskReview: onTaskReview })))))));
2102
2017
  }))));
@@ -2104,14 +2019,14 @@ const QuickStartTasks = ({ tasks, taskNumber, allTaskStatuses, onTaskReview, onT
2104
2019
 
2105
2020
  const QuickStartContent = React__namespace.forwardRef(({ quickStart, nextQuickStarts = [], taskNumber, allTaskStatuses, onTaskSelect, onTaskReview, onQuickStartChange, }, ref) => {
2106
2021
  const { spec: { introduction, tasks, conclusion, prerequisites }, } = quickStart;
2107
- const totalTasks = tasks.length;
2108
- return (React__namespace.createElement("div", { className: "pfext-quick-start-content", ref: ref },
2022
+ const totalTasks = tasks === null || tasks === void 0 ? void 0 : tasks.length;
2023
+ return (React__namespace.createElement("div", { className: "pfext-quick-start-task", ref: ref },
2109
2024
  taskNumber === -1 && (React__namespace.createElement(QuickStartIntroduction, { tasks: tasks, allTaskStatuses: allTaskStatuses, introduction: introduction, prerequisites: prerequisites, onTaskSelect: onTaskSelect })),
2110
2025
  taskNumber > -1 && taskNumber < totalTasks && (React__namespace.createElement(QuickStartTasks, { tasks: tasks, taskNumber: taskNumber, allTaskStatuses: allTaskStatuses, onTaskReview: onTaskReview, onTaskSelect: onTaskSelect })),
2111
2026
  taskNumber === totalTasks && (React__namespace.createElement(QuickStartConclusion, { tasks: tasks, conclusion: conclusion, allTaskStatuses: allTaskStatuses, nextQuickStarts: nextQuickStarts, onQuickStartChange: onQuickStartChange, onTaskSelect: onTaskSelect }))));
2112
2027
  });
2113
2028
 
2114
- const QuickStartFooter = ({ status, taskNumber, totalTasks, onNext, onBack, footerClass, quickStartId, }) => {
2029
+ const QuickStartFooter = ({ status, taskNumber, totalTasks, onNext, onBack, quickStartId, className, }) => {
2115
2030
  const { restartQuickStart, getResource } = React__namespace.useContext(QuickStartContext);
2116
2031
  const PrimaryButtonText = React__namespace.useMemo(() => ({
2117
2032
  START: getResource('Start'),
@@ -2140,13 +2055,16 @@ const QuickStartFooter = ({ status, taskNumber, totalTasks, onNext, onBack, foot
2140
2055
  }
2141
2056
  return PrimaryButtonText.CONTINUE;
2142
2057
  }, [taskNumber, totalTasks, PrimaryButtonText, status]);
2143
- const getPrimaryButton = React__namespace.useMemo(() => (React__namespace.createElement(reactCore.Button, { variant: "primary", className: "pfext-quick-start-footer__actionbtn", onClick: onNext, "data-testid": `qs-drawer-${camelize(getPrimaryButtonText)}`, "data-test": `${getPrimaryButtonText} button` }, getPrimaryButtonText)), [getPrimaryButtonText, onNext]);
2058
+ const getPrimaryButton = React__namespace.useMemo(() => (React__namespace.createElement(reactCore.Button, { variant: "primary", onClick: onNext, "data-testid": `qs-drawer-${camelize(getPrimaryButtonText)}`, "data-test": `${getPrimaryButtonText} button` }, getPrimaryButtonText)), [getPrimaryButtonText, onNext]);
2144
2059
  const getSecondaryButton = React__namespace.useMemo(() => taskNumber === -1 && status !== exports.QuickStartStatus.NOT_STARTED ? (React__namespace.createElement(reactCore.Button, { variant: "secondary", onClick: onRestart, "data-testid": "qs-drawer-restart" }, SecondaryButtonText.RESTART)) : (taskNumber > -1 && (React__namespace.createElement(reactCore.Button, { variant: "secondary", onClick: onBack, "data-testid": "qs-drawer-back" }, SecondaryButtonText.BACK))), [onRestart, onBack, SecondaryButtonText, status, taskNumber]);
2145
- const getSideNoteAction = React__namespace.useMemo(() => taskNumber !== -1 && (React__namespace.createElement(reactCore.Button, { variant: "link", className: "pfext-quick-start-footer__restartbtn", onClick: onRestart, "data-testid": "qs-drawer-side-note-action" }, SecondaryButtonText.RESTART)), [taskNumber, onRestart, SecondaryButtonText.RESTART]);
2146
- return (React__namespace.createElement("div", { className: `pfext-quick-start-footer ${footerClass}` },
2147
- getPrimaryButton,
2148
- getSecondaryButton,
2149
- getSideNoteAction));
2060
+ const getSideNoteAction = React__namespace.useMemo(() => taskNumber !== -1 && (React__namespace.createElement(reactCore.Button, { variant: "link", onClick: onRestart, "data-testid": "qs-drawer-side-note-action" }, SecondaryButtonText.RESTART)), [taskNumber, onRestart, SecondaryButtonText.RESTART]);
2061
+ return (React__namespace.createElement("div", { className: reactStyles.css('pfext-quick-start-footer', className) },
2062
+ React__namespace.createElement(reactCore.ActionList, null,
2063
+ React__namespace.createElement(reactCore.ActionListGroup, null,
2064
+ React__namespace.createElement(reactCore.ActionListItem, null, getPrimaryButton),
2065
+ React__namespace.createElement(reactCore.ActionListItem, null, getSecondaryButton)),
2066
+ React__namespace.createElement(reactCore.ActionListGroup, null,
2067
+ React__namespace.createElement(reactCore.ActionListItem, null, getSideNoteAction)))));
2150
2068
  };
2151
2069
 
2152
2070
  const QuickStartController = ({ quickStart, nextQuickStarts, contentRef, footerClass, }) => {
@@ -2161,7 +2079,7 @@ const QuickStartController = ({ quickStart, nextQuickStarts, contentRef, footerC
2161
2079
  const getQuickStartActiveTask = React__namespace.useCallback(() => {
2162
2080
  let activeTaskNumber = 0;
2163
2081
  while (activeTaskNumber !== totalTasks &&
2164
- activeQuickStartState[`taskStatus${activeTaskNumber}`] !== exports.QuickStartTaskStatus.INIT) {
2082
+ activeQuickStartState[`taskStatus${activeTaskNumber}`] === exports.QuickStartTaskStatus.SUCCESS) {
2165
2083
  activeTaskNumber++;
2166
2084
  }
2167
2085
  return activeTaskNumber;
@@ -2185,7 +2103,7 @@ const QuickStartController = ({ quickStart, nextQuickStarts, contentRef, footerC
2185
2103
  }, [name, setQuickStartTaskNumber]);
2186
2104
  return (React__namespace.createElement(React__namespace.Fragment, null,
2187
2105
  React__namespace.createElement(QuickStartContent, { quickStart: quickStart, nextQuickStarts: nextQuickStarts, taskNumber: taskNumber, allTaskStatuses: allTaskStatuses, onTaskSelect: handleTaskSelect, onTaskReview: handleTaskStatusChange, onQuickStartChange: handleQuickStartChange, ref: contentRef }),
2188
- React__namespace.createElement(QuickStartFooter, { status: status, taskNumber: taskNumber, totalTasks: totalTasks, onNext: handleNext, onBack: handleBack, footerClass: footerClass, quickStartId: quickStart.metadata.name })));
2106
+ React__namespace.createElement(QuickStartFooter, { status: status, taskNumber: taskNumber, totalTasks: totalTasks, onNext: handleNext, onBack: handleBack, className: footerClass, quickStartId: quickStart.metadata.name })));
2189
2107
  };
2190
2108
 
2191
2109
  const getElement = (appendTo) => {
@@ -2202,24 +2120,17 @@ const useScrollTopOnTaskNumberChange = (node, taskNumber) => {
2202
2120
  }, [taskNumber, node]);
2203
2121
  };
2204
2122
  const QuickStartPanelContent = (_a) => {
2205
- var { quickStarts = [], handleClose, activeQuickStartID, appendTo, isResizable = true, showClose = true, headerVariant = '' } = _a, props = tslib.__rest(_a, ["quickStarts", "handleClose", "activeQuickStartID", "appendTo", "isResizable", "showClose", "headerVariant"]);
2123
+ var { quickStarts = [], handleClose, activeQuickStartID, appendTo, isResizable = true, showClose = true, footerClass } = _a, props = tslib.__rest(_a, ["quickStarts", "handleClose", "activeQuickStartID", "appendTo", "isResizable", "showClose", "footerClass"]);
2206
2124
  const titleRef = React__namespace.useRef(null);
2207
- const { getResource, activeQuickStartState } = React__namespace.useContext(QuickStartContext);
2125
+ const { getResource, activeQuickStartState, focusOnQuickStart } = React__namespace.useContext(QuickStartContext);
2208
2126
  const [contentRef, setContentRef] = React__namespace.useState();
2209
- const shadows = useScrollShadows(contentRef);
2210
2127
  const quickStart = quickStarts.find((qs) => qs.metadata.name === activeQuickStartID);
2211
2128
  const taskNumber = activeQuickStartState === null || activeQuickStartState === void 0 ? void 0 : activeQuickStartState.taskNumber;
2212
2129
  useScrollTopOnTaskNumberChange(contentRef, taskNumber);
2213
2130
  const nextQuickStarts = quickStarts.filter((qs) => { var _a; return (_a = quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.nextQuickStart) === null || _a === void 0 ? void 0 : _a.includes(qs.metadata.name); });
2214
- const headerClasses = reactStyles.css('pfext-quick-start-panel-content__header', {
2215
- 'pfext-quick-start-panel-content__header__shadow': shadows === Shadows.top || shadows === Shadows.both,
2216
- 'pfext-quick-start-panel-content__header--blue-white': headerVariant === 'blue-white',
2217
- });
2218
- const footerClass = reactStyles.css({
2219
- 'pfext-quick-start-panel-content__footer__shadow': shadows === Shadows.bottom || shadows === Shadows.both,
2220
- });
2221
2131
  const getStep = () => {
2222
- const tasks = quickStart.spec.tasks.length;
2132
+ var _a;
2133
+ const tasks = ((_a = quickStart.spec.tasks) === null || _a === void 0 ? void 0 : _a.length) || 0;
2223
2134
  if (Number.parseInt(taskNumber) === -1) {
2224
2135
  return 'intro';
2225
2136
  }
@@ -2229,27 +2140,25 @@ const QuickStartPanelContent = (_a) => {
2229
2140
  return Number.parseInt(taskNumber) + 1;
2230
2141
  };
2231
2142
  React__namespace.useEffect(() => {
2232
- if (quickStart) {
2143
+ if (focusOnQuickStart && quickStart) {
2233
2144
  titleRef.current.focus();
2234
2145
  }
2235
- }, [quickStart]);
2236
- const content = quickStart ? (React__namespace.createElement(reactCore.DrawerPanelContent, Object.assign({ isResizable: isResizable, className: "pfext-quick-start__base", "data-testid": `qs-drawer-${camelize(quickStart.spec.displayName)}`, "data-qs": `qs-step-${getStep()}`, "data-test": "quickstart drawer" }, props),
2237
- React__namespace.createElement("div", { className: headerClasses },
2146
+ }, [focusOnQuickStart, quickStart]);
2147
+ const content = quickStart ? (React__namespace.createElement(reactCore.DrawerPanelContent, Object.assign({ isResizable: isResizable, "data-testid": `qs-drawer-${camelize(quickStart.spec.displayName)}`, "data-qs": `qs-step-${getStep()}`, "data-test": "quickstart drawer", style: { '--pf-v6-c-drawer__panel--PaddingBlockStart': '0' } }, props),
2148
+ React__namespace.createElement("div", { className: "pfext-quick-start-panel-content" },
2238
2149
  React__namespace.createElement(reactCore.DrawerHead, null,
2239
- React__namespace.createElement("div", { className: "pfext-quick-start-panel-content__title", tabIndex: -1, ref: titleRef },
2240
- React__namespace.createElement(reactCore.Title, { headingLevel: "h2", size: "xl", className: "pfext-quick-start-panel-content__name", style: { marginRight: 'var(--pf-t--global--spacer--md)' } },
2241
- React__namespace.createElement("span", { dangerouslySetInnerHTML: {
2242
- __html: removeParagraphWrap(markdownConvert(quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.displayName)),
2243
- } }),
2244
- ' ',
2245
- React__namespace.createElement("small", { className: "pfext-quick-start-panel-content__duration" }, (quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.durationMinutes)
2246
- ? getResource('{{type}} • {{duration, number}} minutes', quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.durationMinutes)
2247
- .replace('{{duration, number}}', quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.durationMinutes)
2248
- .replace('{{type}}', getResource('Type'))
2249
- : getResource('Type')))),
2150
+ React__namespace.createElement("div", { tabIndex: -1, ref: titleRef },
2151
+ React__namespace.createElement(reactCore.Title, { headingLevel: "h2", size: "xl", style: { marginRight: 'var(--pf-t--global--spacer--md)' } },
2152
+ React__namespace.createElement("span", null, quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.displayName),
2153
+ ' '),
2154
+ React__namespace.createElement("span", null, (quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.durationMinutes)
2155
+ ? getResource('{{type}} • {{duration, number}} minutes', quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.durationMinutes)
2156
+ .replace('{{duration, number}}', quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.durationMinutes)
2157
+ .replace('{{type}}', getResource('Type'))
2158
+ : getResource('Type'))),
2250
2159
  showClose && (React__namespace.createElement(reactCore.DrawerActions, null,
2251
2160
  React__namespace.createElement(reactCore.DrawerCloseButton, { onClick: handleClose, className: "pfext-quick-start-panel-content__close-button", "data-testid": "qs-drawer-close" }))))),
2252
- React__namespace.createElement(reactCore.DrawerPanelBody, { hasNoPadding: true, className: "pfext-quick-start-panel-content__body", "data-test": "content" },
2161
+ React__namespace.createElement(reactCore.DrawerPanelBody, { className: "pfext-quick-start-panel-content__body", "data-test": "content" },
2253
2162
  React__namespace.createElement(QuickStartController, { quickStart: quickStart, nextQuickStarts: nextQuickStarts, footerClass: footerClass, contentRef: setContentRef })))) : null;
2254
2163
  if (appendTo) {
2255
2164
  return ReactDOM__namespace.createPortal(content, getElement(appendTo));
@@ -2289,7 +2198,7 @@ const QuickStartContainer = (_a) => {
2289
2198
  };
2290
2199
  const QuickStartDrawer = (_a) => {
2291
2200
  var { quickStarts = [], children, appendTo, fullWidth, onCloseInProgress, onCloseNotInProgress } = _a, props = tslib.__rest(_a, ["quickStarts", "children", "appendTo", "fullWidth", "onCloseInProgress", "onCloseNotInProgress"]);
2292
- const { activeQuickStartID, setActiveQuickStart, allQuickStarts = [], activeQuickStartState, allQuickStartStates, setAllQuickStartStates, useLegacyHeaderColors, } = React__namespace.useContext(QuickStartContext);
2201
+ const { activeQuickStartID, setActiveQuickStart, allQuickStarts = [], activeQuickStartState, allQuickStartStates, setAllQuickStartStates, } = React__namespace.useContext(QuickStartContext);
2293
2202
  const combinedQuickStarts = allQuickStarts.concat(quickStarts);
2294
2203
  React__namespace.useEffect(() => {
2295
2204
  const params = new URLSearchParams(window.location.search);
@@ -2348,10 +2257,10 @@ const QuickStartDrawer = (_a) => {
2348
2257
  },
2349
2258
  }
2350
2259
  : {};
2351
- const panelContent = (React__namespace.createElement(QuickStartPanelContent, Object.assign({ quickStarts: combinedQuickStarts, handleClose: handleClose, activeQuickStartID: activeQuickStartID, appendTo: appendTo, isResizable: !fullWidth, headerVariant: useLegacyHeaderColors ? '' : 'blue-white' }, fullWidthPanelStyle)));
2260
+ const panelContent = (React__namespace.createElement(QuickStartPanelContent, Object.assign({ quickStarts: combinedQuickStarts, handleClose: handleClose, activeQuickStartID: activeQuickStartID, appendTo: appendTo, isResizable: !fullWidth }, fullWidthPanelStyle)));
2352
2261
  return (React__namespace.createElement(React__namespace.Fragment, null,
2353
2262
  React__namespace.createElement(reactCore.Drawer, Object.assign({ isExpanded: !!activeQuickStartID, isInline: true }, props), children ? (React__namespace.createElement(reactCore.DrawerContent, Object.assign({ panelContent: panelContent }, fullWidthBodyStyle),
2354
- React__namespace.createElement(reactCore.DrawerContentBody, { className: "pfext-quick-start-drawer__body" }, children))) : (React__namespace.createElement("div", { className: "pf-v6-c-drawer__main" }, panelContent))),
2263
+ React__namespace.createElement(reactCore.DrawerContentBody, null, children))) : (React__namespace.createElement("div", null, panelContent))),
2355
2264
  React__namespace.createElement(QuickStartCloseModal, { isOpen: modalOpen, onConfirm: onModalConfirm, onCancel: onModalCancel })));
2356
2265
  };
2357
2266
 
@@ -2413,17 +2322,17 @@ const HelpTopicPanelContent = (_a) => {
2413
2322
  !!((_b = activeHelpTopic === null || activeHelpTopic === void 0 ? void 0 : activeHelpTopic.links) === null || _b === void 0 ? void 0 : _b.length) && React__namespace.createElement(reactCore.Divider, null),
2414
2323
  paddingContainer(React__namespace.createElement(reactCore.Stack, { hasGutter: true }, (_c = activeHelpTopic === null || activeHelpTopic === void 0 ? void 0 : activeHelpTopic.links) === null || _c === void 0 ? void 0 : _c.map(({ href, text, newTab, isExternal }, index) => (React__namespace.createElement(reactCore.StackItem, { key: index },
2415
2324
  React__namespace.createElement(reactCore.Button, { component: "a", href: href, target: newTab ? '_blank' : '', rel: "noopener noreferrer", variant: "link", "aria-label": `Open documentation in new window`, isInline: true, icon: isExternal ? React__namespace.createElement(ExternalLinkAltIcon__default['default'], null) : null, iconPosition: "right", style: { fontSize: 'inherit' } }, text || href))))))));
2416
- const content = (React__namespace.createElement(reactCore.DrawerPanelContent, Object.assign({ isResizable: isResizable, className: "pfext-quick-start__base" }, props),
2325
+ const content = (React__namespace.createElement(reactCore.DrawerPanelContent, Object.assign({ isResizable: isResizable }, props),
2417
2326
  React__namespace.createElement("div", null,
2418
2327
  React__namespace.createElement(reactCore.DrawerHead, null,
2419
- React__namespace.createElement("div", { className: "pfext-quick-start-panel-content__title" },
2328
+ React__namespace.createElement("div", null,
2420
2329
  helpTopicOptions && (React__namespace.createElement(reactCore.Select, { isPlain: true, id: "help-topics-select", selected: activeHelpTopic, isOpen: isHelpTopicMenuOpen, onSelect: onSelectHelpTopic, onOpenChange: (isOpen) => setIsHelpTopicMenuOpen(isOpen), toggle: (toggleRef) => (React__namespace.createElement(reactCore.MenuToggle, { isFullWidth: true, ref: toggleRef, icon: React__namespace.createElement(BarsIcon__default['default'], null), onClick: toggleHelpTopicMenu, isExpanded: isHelpTopicMenuOpen }, activeHelpTopic === null || activeHelpTopic === void 0 ? void 0 : activeHelpTopic.title)) },
2421
2330
  React__namespace.createElement(reactCore.SelectList, null, helpTopicOptions))),
2422
- React__namespace.createElement(reactCore.Title, { headingLevel: "h1", size: "xl", className: "pfext-quick-start-panel-content__name", style: { marginRight: 'var(--pf-t--global--spacer--md)' } }, activeHelpTopic === null || activeHelpTopic === void 0 ? void 0 : activeHelpTopic.title)),
2331
+ React__namespace.createElement(reactCore.Title, { headingLevel: "h1", size: "xl", style: { marginRight: 'var(--pf-t--global--spacer--md)' } }, activeHelpTopic === null || activeHelpTopic === void 0 ? void 0 : activeHelpTopic.title)),
2423
2332
  React__namespace.createElement(reactCore.DrawerActions, null,
2424
- React__namespace.createElement(reactCore.DrawerCloseButton, { onClick: onClose, className: "pfext-quick-start-panel-content__close-button", "data-testid": "qs-drawer-close" }))),
2333
+ React__namespace.createElement(reactCore.DrawerCloseButton, { onClick: onClose, "data-testid": "qs-drawer-close" }))),
2425
2334
  React__namespace.createElement(reactCore.Divider, null),
2426
- React__namespace.createElement(reactCore.DrawerPanelBody, { hasNoPadding: true, className: "pfext-quick-start-panel-content__body", "data-test": "content" }, panelBodyItems))));
2335
+ React__namespace.createElement(reactCore.DrawerPanelBody, { "data-test": "content" }, panelBodyItems))));
2427
2336
  return content;
2428
2337
  };
2429
2338
 
@@ -2455,7 +2364,7 @@ const HelpTopicDrawer = (_a) => {
2455
2364
  const panelContent = (React__namespace.createElement(HelpTopicPanelContent, { activeHelpTopic: activeHelpTopic, filteredHelpTopics: filteredHelpTopics, onClose: onClose }));
2456
2365
  return (React__namespace.createElement(React__namespace.Fragment, null,
2457
2366
  React__namespace.createElement(reactCore.Drawer, Object.assign({ isExpanded: !!activeHelpTopic, isInline: true }, props), children ? (React__namespace.createElement(reactCore.DrawerContent, { panelContent: panelContent },
2458
- React__namespace.createElement(reactCore.DrawerContentBody, { className: "pfext-quick-start-drawer__body" }, children))) : (React__namespace.createElement("div", { className: "pf-v6-c-drawer__main" }, panelContent)))));
2367
+ React__namespace.createElement(reactCore.DrawerContentBody, null, children))) : (React__namespace.createElement("div", { className: "pf-v6-c-drawer__main" }, panelContent)))));
2459
2368
  };
2460
2369
 
2461
2370
  const useLocalStorage = (key, initialValue) => {