@patternfly/quickstarts 6.2.2 → 6.3.0-prerelease.10

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 (136) hide show
  1. package/dist/ConsoleInternal/components/markdown-view.d.ts +2 -2
  2. package/dist/ConsoleInternal/components/utils/camel-case-wrap.d.ts +1 -1
  3. package/dist/ConsoleInternal/components/utils/status-box.d.ts +3 -3
  4. package/dist/ConsoleShared/src/components/markdown-extensions/MarkdownCopyClipboard.d.ts +3 -3
  5. package/dist/ConsoleShared/src/components/markdown-extensions/accordion-extension.d.ts +1 -1
  6. package/dist/ConsoleShared/src/components/markdown-extensions/accordion-render-extension.d.ts +2 -2
  7. package/dist/ConsoleShared/src/components/markdown-extensions/admonition-extension.d.ts +1 -1
  8. package/dist/ConsoleShared/src/components/markdown-highlight-extension/MarkdownHighlightExtension.d.ts +2 -2
  9. package/dist/ConsoleShared/src/components/modal/Modal.d.ts +3 -3
  10. package/dist/ConsoleShared/src/components/popper/Portal.d.ts +3 -3
  11. package/dist/ConsoleShared/src/components/popper/SimplePopper.d.ts +3 -3
  12. package/dist/ConsoleShared/src/components/spotlight/InteractiveSpotlight.d.ts +2 -2
  13. package/dist/ConsoleShared/src/components/spotlight/Spotlight.d.ts +2 -2
  14. package/dist/ConsoleShared/src/components/spotlight/StaticSpotlight.d.ts +2 -2
  15. package/dist/ConsoleShared/src/components/status/GenericStatus.d.ts +4 -4
  16. package/dist/ConsoleShared/src/components/status/NotStartedIcon.d.ts +1 -2
  17. package/dist/ConsoleShared/src/components/status/PopoverStatus.d.ts +4 -4
  18. package/dist/ConsoleShared/src/components/status/Status.d.ts +3 -3
  19. package/dist/ConsoleShared/src/components/status/StatusIconAndText.d.ts +3 -3
  20. package/dist/ConsoleShared/src/components/status/icons.d.ts +4 -4
  21. package/dist/ConsoleShared/src/components/status/statuses.d.ts +4 -4
  22. package/dist/ConsoleShared/src/components/utils/FallbackImg.d.ts +3 -3
  23. package/dist/ConsoleShared/src/utils/useCombineRefs.d.ts +2 -2
  24. package/dist/HelpTopicDrawer.d.ts +3 -3
  25. package/dist/HelpTopicPanelContent.d.ts +2 -2
  26. package/dist/QuickStartCatalogPage.d.ts +3 -3
  27. package/dist/QuickStartCloseModal.d.ts +2 -2
  28. package/dist/QuickStartContainer.d.ts +2 -2
  29. package/dist/QuickStartController.d.ts +2 -2
  30. package/dist/QuickStartDrawer.d.ts +2 -2
  31. package/dist/QuickStartDrawerContent.d.ts +2 -2
  32. package/dist/QuickStartMarkdownView.d.ts +2 -2
  33. package/dist/QuickStartPanelContent.d.ts +2 -2
  34. package/dist/catalog/Catalog/QuickStartCatalogHeader.d.ts +2 -2
  35. package/dist/catalog/Catalog/QuickStartCatalogSection.d.ts +2 -2
  36. package/dist/catalog/Catalog/QuickStartCatalogToolbar.d.ts +2 -2
  37. package/dist/catalog/QuickStartCatalog.d.ts +2 -2
  38. package/dist/catalog/QuickStartTile.d.ts +2 -2
  39. package/dist/catalog/QuickStartTileDescription.d.ts +2 -2
  40. package/dist/catalog/QuickStartTileFooter.d.ts +2 -2
  41. package/dist/catalog/QuickStartTileFooterExternal.d.ts +2 -2
  42. package/dist/catalog/QuickStartTileHeader.d.ts +2 -2
  43. package/dist/catalog/Toolbar/QuickStartCatalogFilter.d.ts +2 -2
  44. package/dist/catalog/Toolbar/QuickStartCatalogFilterItems.d.ts +7 -7
  45. package/dist/controller/QuickStartConclusion.d.ts +2 -2
  46. package/dist/controller/QuickStartContent.d.ts +2 -2
  47. package/dist/controller/QuickStartFooter.d.ts +2 -2
  48. package/dist/controller/QuickStartIntroduction.d.ts +2 -2
  49. package/dist/controller/QuickStartTaskHeader.d.ts +2 -2
  50. package/dist/controller/QuickStartTaskHeaderList.d.ts +2 -2
  51. package/dist/controller/QuickStartTaskReview.d.ts +2 -2
  52. package/dist/controller/QuickStartTasks.d.ts +2 -2
  53. package/dist/index.es.js +489 -561
  54. package/dist/index.es.js.map +1 -1
  55. package/dist/index.js +500 -574
  56. package/dist/index.js.map +1 -1
  57. package/dist/quickstarts-base.css +4 -4
  58. package/dist/quickstarts-full.es.js +1963 -693
  59. package/dist/quickstarts-full.es.js.map +1 -1
  60. package/dist/quickstarts.css +4 -4
  61. package/dist/quickstarts.min.css +1 -1
  62. package/dist/utils/help-topic-context.d.ts +2 -2
  63. package/dist/utils/quick-start-context.d.ts +3 -3
  64. package/package.json +7 -7
  65. package/src/ConsoleInternal/components/markdown-view.tsx +112 -22
  66. package/src/ConsoleInternal/components/utils/camel-case-wrap.tsx +3 -3
  67. package/src/ConsoleInternal/components/utils/status-box.tsx +4 -4
  68. package/src/ConsoleShared/src/components/markdown-extensions/MarkdownCopyClipboard.tsx +8 -15
  69. package/src/ConsoleShared/src/components/markdown-extensions/__tests__/MarkdownCopyClipboard.spec.tsx +0 -1
  70. package/src/ConsoleShared/src/components/markdown-extensions/__tests__/accordion-extension.spec.tsx +105 -0
  71. package/src/ConsoleShared/src/components/markdown-extensions/__tests__/admonition-extension.spec.tsx +121 -0
  72. package/src/ConsoleShared/src/components/markdown-extensions/accordion-extension.tsx +22 -15
  73. package/src/ConsoleShared/src/components/markdown-extensions/accordion-render-extension.tsx +23 -9
  74. package/src/ConsoleShared/src/components/markdown-extensions/admonition-extension.tsx +19 -8
  75. package/src/ConsoleShared/src/components/markdown-extensions/code-extension.tsx +2 -2
  76. package/src/ConsoleShared/src/components/markdown-extensions/inline-clipboard-extension.tsx +3 -3
  77. package/src/ConsoleShared/src/components/markdown-extensions/multiline-clipboard-extension.tsx +3 -3
  78. package/src/ConsoleShared/src/components/markdown-highlight-extension/MarkdownHighlightExtension.tsx +5 -5
  79. package/src/ConsoleShared/src/components/modal/Modal.tsx +3 -3
  80. package/src/ConsoleShared/src/components/popper/Portal.tsx +5 -5
  81. package/src/ConsoleShared/src/components/popper/SimplePopper.tsx +15 -15
  82. package/src/ConsoleShared/src/components/spotlight/InteractiveSpotlight.tsx +5 -5
  83. package/src/ConsoleShared/src/components/spotlight/Spotlight.tsx +3 -3
  84. package/src/ConsoleShared/src/components/spotlight/StaticSpotlight.tsx +3 -3
  85. package/src/ConsoleShared/src/components/status/GenericStatus.tsx +5 -5
  86. package/src/ConsoleShared/src/components/status/NotStartedIcon.tsx +0 -1
  87. package/src/ConsoleShared/src/components/status/PopoverStatus.tsx +4 -4
  88. package/src/ConsoleShared/src/components/status/Status.tsx +3 -11
  89. package/src/ConsoleShared/src/components/status/StatusIconAndText.tsx +6 -6
  90. package/src/ConsoleShared/src/components/status/icons.tsx +4 -8
  91. package/src/ConsoleShared/src/components/status/statuses.tsx +4 -5
  92. package/src/ConsoleShared/src/components/utils/FallbackImg.tsx +4 -4
  93. package/src/ConsoleShared/src/hooks/scroll.ts +4 -4
  94. package/src/ConsoleShared/src/hooks/useBoundingClientRect.ts +3 -3
  95. package/src/ConsoleShared/src/hooks/useForceRender.ts +2 -2
  96. package/src/ConsoleShared/src/hooks/useResizeObserver.ts +3 -6
  97. package/src/ConsoleShared/src/hooks/useScrollShadows.ts +4 -4
  98. package/src/ConsoleShared/src/utils/useCombineRefs.ts +4 -4
  99. package/src/HelpTopicDrawer.tsx +6 -6
  100. package/src/HelpTopicPanelContent.tsx +4 -4
  101. package/src/QuickStartCatalogPage.tsx +9 -9
  102. package/src/QuickStartCloseModal.tsx +3 -7
  103. package/src/QuickStartContainer.tsx +4 -4
  104. package/src/QuickStartController.tsx +11 -11
  105. package/src/QuickStartDrawer.tsx +6 -6
  106. package/src/QuickStartDrawerContent.tsx +6 -4
  107. package/src/QuickStartMarkdownView.tsx +3 -3
  108. package/src/QuickStartPanelContent.tsx +8 -8
  109. package/src/catalog/Catalog/QuickStartCatalogHeader.tsx +2 -2
  110. package/src/catalog/Catalog/QuickStartCatalogSection.tsx +2 -2
  111. package/src/catalog/Catalog/QuickStartCatalogToolbar.tsx +2 -2
  112. package/src/catalog/QuickStartCatalog.tsx +3 -3
  113. package/src/catalog/QuickStartTile.tsx +4 -4
  114. package/src/catalog/QuickStartTileDescription.tsx +4 -4
  115. package/src/catalog/QuickStartTileFooter.tsx +6 -6
  116. package/src/catalog/QuickStartTileFooterExternal.tsx +2 -5
  117. package/src/catalog/QuickStartTileHeader.tsx +2 -6
  118. package/src/catalog/Toolbar/QuickStartCatalogFilter.tsx +2 -2
  119. package/src/catalog/Toolbar/QuickStartCatalogFilterItems.tsx +17 -20
  120. package/src/catalog/__tests__/QuickStartCatalog.spec.tsx +0 -1
  121. package/src/catalog/__tests__/QuickStartTile.spec.tsx +0 -1
  122. package/src/catalog/__tests__/QuickStartTileDescription.spec.tsx +1 -2
  123. package/src/controller/QuickStartConclusion.tsx +3 -3
  124. package/src/controller/QuickStartContent.tsx +2 -2
  125. package/src/controller/QuickStartFooter.tsx +10 -11
  126. package/src/controller/QuickStartIntroduction.tsx +5 -5
  127. package/src/controller/QuickStartTaskHeader.tsx +5 -5
  128. package/src/controller/QuickStartTaskHeaderList.tsx +2 -2
  129. package/src/controller/QuickStartTaskReview.tsx +4 -4
  130. package/src/controller/QuickStartTasks.tsx +5 -5
  131. package/src/controller/__tests__/QuickStartConclusion.spec.tsx +3 -3
  132. package/src/controller/__tests__/QuickStartContent.spec.tsx +2 -2
  133. package/src/controller/__tests__/QuickStartTaskHeader.spec.tsx +2 -2
  134. package/src/controller/__tests__/QuickStartTaskReview.spec.tsx +2 -2
  135. package/src/utils/help-topic-context.tsx +7 -10
  136. package/src/utils/quick-start-context.tsx +11 -11
package/dist/index.js CHANGED
@@ -2,7 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var React = require('react');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var react = require('react');
6
7
  var reactCore = require('@patternfly/react-core');
7
8
  var SearchIcon = require('@patternfly/react-icons/dist/js/icons/search-icon');
8
9
  var reactStyles = require('@patternfly/react-styles');
@@ -45,8 +46,6 @@ function _interopNamespace(e) {
45
46
  return Object.freeze(n);
46
47
  }
47
48
 
48
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
49
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
50
49
  var SearchIcon__default = /*#__PURE__*/_interopDefaultLegacy(SearchIcon);
51
50
  var RocketIcon__default = /*#__PURE__*/_interopDefaultLegacy(RocketIcon);
52
51
  var ReactDOM__namespace = /*#__PURE__*/_interopNamespace(ReactDOM);
@@ -63,18 +62,13 @@ var ArrowRightIcon__default = /*#__PURE__*/_interopDefaultLegacy(ArrowRightIcon)
63
62
  var BarsIcon__default = /*#__PURE__*/_interopDefaultLegacy(BarsIcon);
64
63
 
65
64
  function _extends() {
66
- _extends = Object.assign ? Object.assign.bind() : function (target) {
67
- for (var i = 1; i < arguments.length; i++) {
68
- var source = arguments[i];
69
- for (var key in source) {
70
- if (Object.prototype.hasOwnProperty.call(source, key)) {
71
- target[key] = source[key];
72
- }
73
- }
65
+ return _extends = Object.assign ? Object.assign.bind() : function (n) {
66
+ for (var e = 1; e < arguments.length; e++) {
67
+ var t = arguments[e];
68
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
74
69
  }
75
- return target;
76
- };
77
- return _extends.apply(this, arguments);
70
+ return n;
71
+ }, _extends.apply(null, arguments);
78
72
  }
79
73
 
80
74
  var m,x=m||(m={});x.Pop="POP";x.Push="PUSH";x.Replace="REPLACE";var y="production"!==process.env.NODE_ENV?function(a){return Object.freeze(a)}:function(a){return a};function z(a,b){if(!a){"undefined"!==typeof console&&console.warn(b);try{throw Error(b);}catch(g){}}}function A(a){a.preventDefault();a.returnValue="";}
@@ -619,7 +613,7 @@ const QuickStartContextDefaults = {
619
613
  alwaysShowTaskReview: true,
620
614
  focusOnQuickStart: true,
621
615
  };
622
- const QuickStartContext = React.createContext(QuickStartContextDefaults);
616
+ const QuickStartContext = react.createContext(QuickStartContextDefaults);
623
617
  const getResource = (resource, options, resourceBundle, lng) => {
624
618
  if (options && !isNaN(options.count)) {
625
619
  const suffix = pluralResolver.getSuffix(lng, options.count);
@@ -634,27 +628,27 @@ const useValuesForQuickStartContext = (value = {}) => {
634
628
  var _a, _b;
635
629
  const combinedValue = Object.assign(Object.assign({}, QuickStartContextDefaults), value);
636
630
  const { activeQuickStartID, setActiveQuickStartID, setAllQuickStartStates, useQueryParams, allQuickStartStates, allQuickStarts = [], footer, useLegacyHeaderColors, markdown, } = combinedValue;
637
- const [quickStarts, setQuickStarts] = React__default["default"].useState(combinedValue.allQuickStarts || []);
638
- const [resourceBundle, setResourceBundle] = React__default["default"].useState(Object.assign(Object.assign({}, en), combinedValue.resourceBundle));
639
- const [language, setLanguage] = React__default["default"].useState(combinedValue.language);
631
+ const [quickStarts, setQuickStarts] = react.useState(combinedValue.allQuickStarts || []);
632
+ const [resourceBundle, setResourceBundle] = react.useState(Object.assign(Object.assign({}, en), combinedValue.resourceBundle));
633
+ const [language, setLanguage] = react.useState(combinedValue.language);
640
634
  const changeResourceBundle = (bundle, lng) => {
641
635
  lng && setLanguage(lng);
642
636
  setResourceBundle(Object.assign(Object.assign({}, en), bundle));
643
637
  };
644
- const findResource = React.useCallback((resource, count) => getResource(resource, count !== undefined ? { count } : null, resourceBundle, language), [resourceBundle, language]);
645
- const [loading, setLoading] = React__default["default"].useState(combinedValue.loading);
646
- const [alwaysShowTaskReview, setAlwaysShowTaskReview] = React__default["default"].useState(combinedValue.alwaysShowTaskReview);
638
+ const findResource = react.useCallback((resource, count) => getResource(resource, count !== undefined ? { count } : null, resourceBundle, language), [resourceBundle, language]);
639
+ const [loading, setLoading] = react.useState(combinedValue.loading);
640
+ const [alwaysShowTaskReview, setAlwaysShowTaskReview] = react.useState(combinedValue.alwaysShowTaskReview);
647
641
  const initialSearchParams = new URLSearchParams(window.location.search);
648
642
  const initialSearchQuery = initialSearchParams.get(QUICKSTART_SEARCH_FILTER_KEY) || '';
649
643
  const initialStatusFilters = ((_a = initialSearchParams.get(QUICKSTART_STATUS_FILTER_KEY)) === null || _a === void 0 ? void 0 : _a.split(',')) || [];
650
644
  const quickStartStatusCount = getQuickStartStatusCount(allQuickStartStates, allQuickStarts);
651
- const [statusTypes, setStatusTypes] = React__default["default"].useState({
645
+ const [statusTypes, setStatusTypes] = react.useState({
652
646
  [exports.QuickStartStatus.COMPLETE]: findResource('Complete ({{statusCount, number}})').replace('{{statusCount, number}}', quickStartStatusCount[exports.QuickStartStatus.COMPLETE]),
653
647
  [exports.QuickStartStatus.IN_PROGRESS]: findResource('In progress ({{statusCount, number}})').replace('{{statusCount, number}}', quickStartStatusCount[exports.QuickStartStatus.IN_PROGRESS]),
654
648
  [exports.QuickStartStatus.NOT_STARTED]: findResource('Not started ({{statusCount, number}})').replace('{{statusCount, number}}', quickStartStatusCount[exports.QuickStartStatus.NOT_STARTED]),
655
649
  });
656
- const [statusFilters, setStatusFilters] = React__default["default"].useState(initialStatusFilters);
657
- const [filterKeyword, setFilterKeyword] = React__default["default"].useState(initialSearchQuery);
650
+ const [statusFilters, setStatusFilters] = react.useState(initialStatusFilters);
651
+ const [filterKeyword, setFilterKeyword] = react.useState(initialSearchQuery);
658
652
  const setFilter = (type, val) => {
659
653
  if (type === 'keyword') {
660
654
  setFilterKeyword(val);
@@ -663,7 +657,7 @@ const useValuesForQuickStartContext = (value = {}) => {
663
657
  setStatusFilters(val);
664
658
  }
665
659
  };
666
- React__default["default"].useEffect(() => {
660
+ react.useEffect(() => {
667
661
  const updatedQuickStartStatusCount = getQuickStartStatusCount(allQuickStartStates, quickStarts);
668
662
  setStatusTypes({
669
663
  [exports.QuickStartStatus.COMPLETE]: findResource('Complete ({{statusCount, number}})').replace('{{statusCount, number}}', updatedQuickStartStatusCount[exports.QuickStartStatus.COMPLETE]),
@@ -674,7 +668,7 @@ const useValuesForQuickStartContext = (value = {}) => {
674
668
  const updateAllQuickStarts = (qs) => {
675
669
  setQuickStarts(qs);
676
670
  };
677
- const setActiveQuickStart = React.useCallback((quickStartId, totalTasks) => {
671
+ const setActiveQuickStart = react.useCallback((quickStartId, totalTasks) => {
678
672
  setActiveQuickStartID((id) => {
679
673
  if (!quickStartId || id === quickStartId) {
680
674
  useQueryParams && removeQueryArgument(QUICKSTART_ID_FILTER_KEY);
@@ -687,7 +681,7 @@ const useValuesForQuickStartContext = (value = {}) => {
687
681
  ? qs
688
682
  : Object.assign(Object.assign({}, qs), { [quickStartId]: getDefaultQuickStartState(totalTasks) }));
689
683
  }, [setActiveQuickStartID, setAllQuickStartStates, useQueryParams]);
690
- const startQuickStart = React.useCallback((quickStartId, totalTasks) => {
684
+ const startQuickStart = react.useCallback((quickStartId, totalTasks) => {
691
685
  setActiveQuickStartID((id) => {
692
686
  if (!id || id !== quickStartId) {
693
687
  useQueryParams && setQueryArgument(QUICKSTART_ID_FILTER_KEY, quickStartId);
@@ -703,7 +697,7 @@ const useValuesForQuickStartContext = (value = {}) => {
703
697
  return Object.assign(Object.assign({}, qs), { [quickStartId]: getDefaultQuickStartState(totalTasks, exports.QuickStartStatus.IN_PROGRESS) });
704
698
  });
705
699
  }, [setActiveQuickStartID, setAllQuickStartStates, useQueryParams]);
706
- const restartQuickStart = React.useCallback((quickStartId, totalTasks) => {
700
+ const restartQuickStart = react.useCallback((quickStartId, totalTasks) => {
707
701
  setActiveQuickStartID((id) => {
708
702
  if (!id || id !== quickStartId) {
709
703
  useQueryParams && setQueryArgument(QUICKSTART_ID_FILTER_KEY, quickStartId);
@@ -718,7 +712,7 @@ const useValuesForQuickStartContext = (value = {}) => {
718
712
  const stepAfterInitial = alwaysShowTaskReview
719
713
  ? exports.QuickStartTaskStatus.REVIEW
720
714
  : exports.QuickStartTaskStatus.VISITED;
721
- const nextStep = React.useCallback((totalTasks) => {
715
+ const nextStep = react.useCallback((totalTasks) => {
722
716
  if (!activeQuickStartID) {
723
717
  return;
724
718
  }
@@ -757,7 +751,7 @@ const useValuesForQuickStartContext = (value = {}) => {
757
751
  return newState;
758
752
  });
759
753
  }, [activeQuickStartID, setAllQuickStartStates, stepAfterInitial]);
760
- const previousStep = React.useCallback(() => {
754
+ const previousStep = react.useCallback(() => {
761
755
  setAllQuickStartStates((qs) => {
762
756
  const quickStart = qs[activeQuickStartID];
763
757
  const taskNumber = quickStart === null || quickStart === void 0 ? void 0 : quickStart.taskNumber;
@@ -767,7 +761,7 @@ const useValuesForQuickStartContext = (value = {}) => {
767
761
  return Object.assign(Object.assign({}, qs), { [activeQuickStartID]: Object.assign(Object.assign({}, quickStart), { taskNumber: taskNumber - 1 }) });
768
762
  });
769
763
  }, [activeQuickStartID, setAllQuickStartStates]);
770
- const setQuickStartTaskNumber = React.useCallback((quickStartId, taskNumber) => {
764
+ const setQuickStartTaskNumber = react.useCallback((quickStartId, taskNumber) => {
771
765
  setAllQuickStartStates((qs) => {
772
766
  const quickStart = qs[quickStartId];
773
767
  const status = quickStart === null || quickStart === void 0 ? void 0 : quickStart.status;
@@ -787,14 +781,14 @@ const useValuesForQuickStartContext = (value = {}) => {
787
781
  return Object.assign(Object.assign({}, qs), { [quickStartId]: updatedQuickStart });
788
782
  });
789
783
  }, [setAllQuickStartStates, stepAfterInitial]);
790
- const setQuickStartTaskStatus = React.useCallback((taskStatus) => {
784
+ const setQuickStartTaskStatus = react.useCallback((taskStatus) => {
791
785
  const quickStart = allQuickStartStates[activeQuickStartID];
792
786
  const { taskNumber } = quickStart;
793
787
  const updatedQuickStart = Object.assign(Object.assign({}, quickStart), { [getTaskStatusKey(taskNumber)]: taskStatus });
794
788
  setAllQuickStartStates((qs) => (Object.assign(Object.assign({}, qs), { [activeQuickStartID]: updatedQuickStart })));
795
789
  }, [allQuickStartStates, activeQuickStartID, setAllQuickStartStates]);
796
790
  const activeQuickStartState = (_b = allQuickStartStates === null || allQuickStartStates === void 0 ? void 0 : allQuickStartStates[activeQuickStartID]) !== null && _b !== void 0 ? _b : {};
797
- const getQuickStartForId = React.useCallback((id) => allQuickStartStates[id], [allQuickStartStates]);
791
+ const getQuickStartForId = react.useCallback((id) => allQuickStartStates[id], [allQuickStartStates]);
798
792
  return {
799
793
  allQuickStarts: quickStarts,
800
794
  setAllQuickStarts: updateAllQuickStarts,
@@ -835,24 +829,18 @@ const useValuesForQuickStartContext = (value = {}) => {
835
829
  setAlwaysShowTaskReview,
836
830
  };
837
831
  };
838
- const QuickStartContextProvider = ({ children, value }) => (React__default["default"].createElement(QuickStartContext.Provider, { value: useValuesForQuickStartContext(value) }, children));
832
+ const QuickStartContextProvider = ({ children, value }) => (jsxRuntime.jsx(QuickStartContext.Provider, Object.assign({ value: useValuesForQuickStartContext(value) }, { children: children })));
839
833
 
840
- const Box = ({ children, className }) => (React__namespace.createElement("div", { className: reactStyles.css('pfext-status-box', className) }, children));
841
- const Loading = ({ className }) => (React__namespace.createElement("div", { className: reactStyles.css('pfext-m-loader', className) },
842
- React__namespace.createElement("div", { className: "pfext-m-loader-dot__one" }),
843
- React__namespace.createElement("div", { className: "pfext-m-loader-dot__two" }),
844
- React__namespace.createElement("div", { className: "pfext-m-loader-dot__three" })));
834
+ const Box = ({ children, className }) => (jsxRuntime.jsx("div", Object.assign({ className: reactStyles.css('pfext-status-box', className) }, { children: children })));
835
+ const Loading = ({ className }) => (jsxRuntime.jsxs("div", Object.assign({ className: reactStyles.css('pfext-m-loader', className) }, { children: [jsxRuntime.jsx("div", { className: "pfext-m-loader-dot__one" }), jsxRuntime.jsx("div", { className: "pfext-m-loader-dot__two" }), jsxRuntime.jsx("div", { className: "pfext-m-loader-dot__three" })] })));
845
836
  Loading.displayName = 'Loading';
846
- const LoadingBox = ({ className, message }) => (React__namespace.createElement(Box, { className: reactStyles.css('pfext-status-box--loading', className) },
847
- React__namespace.createElement(Loading, null),
848
- message && React__namespace.createElement("div", { className: "pfext-status-box__loading-message" }, message)));
837
+ const LoadingBox = ({ className, message }) => (jsxRuntime.jsxs(Box, Object.assign({ className: reactStyles.css('pfext-status-box--loading', className) }, { children: [jsxRuntime.jsx(Loading, {}), message && jsxRuntime.jsx("div", Object.assign({ className: "pfext-status-box__loading-message" }, { children: message }))] })));
849
838
  LoadingBox.displayName = 'LoadingBox';
850
839
  const EmptyBox = ({ label }) => {
851
- const { getResource } = React__namespace.useContext(QuickStartContext);
852
- return (React__namespace.createElement(Box, null,
853
- React__namespace.createElement("div", { "data-test": "empty-message", className: "text-center" }, label
854
- ? getResource('No {{label}} found').replace('{{label}}', label)
855
- : getResource('Not found'))));
840
+ const { getResource } = react.useContext(QuickStartContext);
841
+ return (jsxRuntime.jsx(Box, { children: jsxRuntime.jsx("div", Object.assign({ "data-test": "empty-message", className: "text-center" }, { children: label
842
+ ? getResource('No {{label}} found').replace('{{label}}', label)
843
+ : getResource('Not found') })) }));
856
844
  };
857
845
  EmptyBox.displayName = 'EmptyBox';
858
846
 
@@ -866,49 +854,47 @@ const CamelCaseWrap = ({ value, dataTest }) => {
866
854
  }
867
855
  // Add word break points before capital letters (but keep consecutive capital letters together).
868
856
  const words = value.match(/[A-Z]+[^A-Z]*|[^A-Z]+/g);
869
- const rendered = (React__namespace.createElement("span", { "data-test": dataTest }, words.map((word, i) => (React__namespace.createElement(React__namespace.Fragment, { key: i },
870
- word,
871
- i !== words.length - 1 && React__namespace.createElement("wbr", null))))));
857
+ const rendered = (jsxRuntime.jsx("span", Object.assign({ "data-test": dataTest }, { children: words.map((word, i) => (jsxRuntime.jsxs(react.Fragment, { children: [word, i !== words.length - 1 && jsxRuntime.jsx("wbr", {})] }, i))) })));
872
858
  MEMO[value] = rendered;
873
859
  return rendered;
874
860
  };
875
861
 
876
862
  const Modal = (_a) => {
877
863
  var { isFullScreen = false, className } = _a, props = tslib.__rest(_a, ["isFullScreen", "className"]);
878
- return (React__namespace.createElement(deprecated.Modal, Object.assign({}, props, { className: reactStyles.css('pfext-modal', className), appendTo: () => (isFullScreen ? document.body : document.querySelector('#modal-container')) })));
864
+ return (jsxRuntime.jsx(deprecated.Modal, Object.assign({}, props, { className: reactStyles.css('pfext-modal', className), appendTo: () => (isFullScreen ? document.body : document.querySelector('#modal-container')) })));
879
865
  };
880
866
 
881
867
  const getContainer = (container) => typeof container === 'function' ? container() : container;
882
868
  const Portal = ({ children, container }) => {
883
- const [containerNode, setContainerNode] = React__namespace.useState();
869
+ const [containerNode, setContainerNode] = react.useState();
884
870
  reactCore.useIsomorphicLayoutEffect(() => {
885
871
  setContainerNode(getContainer(container) || document.body);
886
872
  }, [container]);
887
- return containerNode ? ReactDOM__namespace.createPortal(children, containerNode) : null;
873
+ return containerNode ? ReactDOM.createPortal(children, containerNode) : null;
888
874
  };
889
875
 
890
876
  const SimplePopper = ({ children }) => {
891
877
  const openProp = true;
892
- const nodeRef = React__namespace.useRef();
893
- const popperRef = React__namespace.useRef(null);
894
- const [isOpen, setOpenState] = React__namespace.useState(openProp);
895
- const setOpen = React__namespace.useCallback((newOpen) => {
878
+ const nodeRef = react.useRef(null);
879
+ const popperRef = react.useRef(null);
880
+ const [isOpen, setOpenState] = react.useState(openProp);
881
+ const setOpen = react.useCallback((newOpen) => {
896
882
  setOpenState(newOpen);
897
883
  }, []);
898
- React__namespace.useEffect(() => {
884
+ react.useEffect(() => {
899
885
  setOpen(openProp);
900
886
  }, [openProp, setOpen]);
901
- const onKeyDown = React__namespace.useCallback((e) => {
887
+ const onKeyDown = react.useCallback((e) => {
902
888
  if (e.keyCode === 27) {
903
889
  setOpen(false);
904
890
  }
905
891
  }, [setOpen]);
906
- const onClickOutside = React__namespace.useCallback((e) => {
892
+ const onClickOutside = react.useCallback((e) => {
907
893
  if (!nodeRef.current || (e.target instanceof Node && !nodeRef.current.contains(e.target))) {
908
894
  setOpen(false);
909
895
  }
910
896
  }, [setOpen]);
911
- const destroy = React__namespace.useCallback(() => {
897
+ const destroy = react.useCallback(() => {
912
898
  if (popperRef.current) {
913
899
  popperRef.current.destroy();
914
900
  document.removeEventListener('keydown', onKeyDown, true);
@@ -916,29 +902,28 @@ const SimplePopper = ({ children }) => {
916
902
  document.removeEventListener('touchstart', onClickOutside, true);
917
903
  }
918
904
  }, [onClickOutside, onKeyDown]);
919
- const initialize = React__namespace.useCallback(() => {
905
+ const initialize = react.useCallback(() => {
920
906
  if (!nodeRef.current || !isOpen) {
921
907
  return;
922
908
  }
923
909
  destroy();
924
910
  }, [isOpen, destroy]);
925
- const nodeRefCallback = React__namespace.useCallback((node) => {
911
+ const nodeRefCallback = react.useCallback((node) => {
926
912
  nodeRef.current = node;
927
913
  initialize();
928
914
  }, [initialize]);
929
- React__namespace.useEffect(() => {
915
+ react.useEffect(() => {
930
916
  initialize();
931
917
  }, [initialize]);
932
- React__namespace.useEffect(() => () => {
918
+ react.useEffect(() => () => {
933
919
  destroy();
934
920
  }, [destroy]);
935
- React__namespace.useEffect(() => {
921
+ react.useEffect(() => {
936
922
  if (!isOpen) {
937
923
  destroy();
938
924
  }
939
925
  }, [destroy, isOpen]);
940
- return isOpen ? (React__namespace.createElement(Portal, null,
941
- React__namespace.createElement("div", { ref: nodeRefCallback, style: { zIndex: 9999, position: 'absolute', top: 0, left: 0 }, className: "pfext-quick-start__base" }, children))) : null;
926
+ return isOpen ? (jsxRuntime.jsx(Portal, { children: jsxRuntime.jsx("div", Object.assign({ ref: nodeRefCallback, style: { zIndex: 9999, position: 'absolute', top: 0, left: 0 }, className: "pfext-quick-start__base" }, { children: children })) })) : null;
942
927
  };
943
928
 
944
929
  const isInViewport = (elementToCheck) => {
@@ -958,8 +943,8 @@ const InteractiveSpotlight = ({ element }) => {
958
943
  bottom,
959
944
  right,
960
945
  };
961
- const [clicked, setClicked] = React__namespace.useState(false);
962
- React__namespace.useEffect(() => {
946
+ const [clicked, setClicked] = react.useState(false);
947
+ react.useEffect(() => {
963
948
  if (!clicked) {
964
949
  if (!isInViewport(element)) {
965
950
  element.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' });
@@ -975,9 +960,7 @@ const InteractiveSpotlight = ({ element }) => {
975
960
  if (clicked) {
976
961
  return null;
977
962
  }
978
- return (React__namespace.createElement(Portal, null,
979
- React__namespace.createElement(SimplePopper, null,
980
- React__namespace.createElement("div", { className: "pfext-spotlight pfext-spotlight__element-highlight-animate", style: style }))));
963
+ return (jsxRuntime.jsx(Portal, { children: jsxRuntime.jsx(SimplePopper, { children: jsxRuntime.jsx("div", { className: "pfext-spotlight pfext-spotlight__element-highlight-animate", style: style }) }) }));
981
964
  };
982
965
 
983
966
  var ScrollDirection;
@@ -989,8 +972,8 @@ var ScrollDirection;
989
972
  })(ScrollDirection || (ScrollDirection = {}));
990
973
 
991
974
  const useResizeObserver = (callback, targetElement, observerOptions = undefined) => {
992
- const element = React__namespace.useMemo(() => targetElement !== null && targetElement !== void 0 ? targetElement : document.querySelector('body'), [targetElement]);
993
- React__namespace.useEffect(() => {
975
+ const element = react.useMemo(() => targetElement !== null && targetElement !== void 0 ? targetElement : document.querySelector('body'), [targetElement]);
976
+ react.useEffect(() => {
994
977
  const observer = new ResizeObserver(callback);
995
978
  observer.observe(element, observerOptions);
996
979
  return () => {
@@ -1008,8 +991,8 @@ var Shadows;
1008
991
  })(Shadows || (Shadows = {}));
1009
992
 
1010
993
  const useBoundingClientRect = (targetElement) => {
1011
- const [clientRect, setClientRect] = React__namespace.useState(() => targetElement ? targetElement.getBoundingClientRect() : null);
1012
- const observerCallback = React__namespace.useCallback(() => {
994
+ const [clientRect, setClientRect] = react.useState(() => targetElement ? targetElement.getBoundingClientRect() : null);
995
+ const observerCallback = react.useCallback(() => {
1013
996
  setClientRect(targetElement ? targetElement.getBoundingClientRect() : null);
1014
997
  }, [targetElement]);
1015
998
  useResizeObserver(observerCallback);
@@ -1019,10 +1002,10 @@ const useBoundingClientRect = (targetElement) => {
1019
1002
  /**
1020
1003
  * React hook that forces component render.
1021
1004
  */
1022
- const useForceRender = () => React__namespace.useReducer((s) => !s, false)[1];
1005
+ const useForceRender = () => react.useReducer((s) => !s, false)[1];
1023
1006
 
1024
1007
  const useEventListener = (target, event, callback) => {
1025
- React.useEffect(() => {
1008
+ react.useEffect(() => {
1026
1009
  target.addEventListener(event, callback);
1027
1010
  return () => {
1028
1011
  target.removeEventListener(event, callback);
@@ -1040,14 +1023,12 @@ const StaticSpotlight = ({ element }) => {
1040
1023
  width: clientRect.width,
1041
1024
  }
1042
1025
  : {};
1043
- return clientRect ? (React__namespace.createElement(Portal, null,
1044
- React__namespace.createElement("div", { className: "pf-v6-c-backdrop pfext-spotlight__with-backdrop" },
1045
- React__namespace.createElement("div", { className: "pfext-spotlight pfext-spotlight__element-highlight-noanimate", style: style })))) : null;
1026
+ return clientRect ? (jsxRuntime.jsx(Portal, { children: jsxRuntime.jsx("div", Object.assign({ className: "pf-v6-c-backdrop pfext-spotlight__with-backdrop" }, { children: jsxRuntime.jsx("div", { className: "pfext-spotlight pfext-spotlight__element-highlight-noanimate", style: style }) })) })) : null;
1046
1027
  };
1047
1028
 
1048
1029
  const Spotlight = ({ selector, interactive }) => {
1049
1030
  // if target element is a hidden one return null
1050
- const element = React__namespace.useMemo(() => {
1031
+ const element = react.useMemo(() => {
1051
1032
  const highlightElement = document.querySelector(selector);
1052
1033
  let hiddenElement = highlightElement;
1053
1034
  while (hiddenElement) {
@@ -1062,12 +1043,12 @@ const Spotlight = ({ selector, interactive }) => {
1062
1043
  if (!element) {
1063
1044
  return null;
1064
1045
  }
1065
- return interactive ? (React__namespace.createElement(InteractiveSpotlight, { element: element })) : (React__namespace.createElement(StaticSpotlight, { element: element }));
1046
+ return interactive ? (jsxRuntime.jsx(InteractiveSpotlight, { element: element })) : (jsxRuntime.jsx(StaticSpotlight, { element: element }));
1066
1047
  };
1067
1048
 
1068
1049
  const MarkdownHighlightExtension = ({ docContext, rootSelector, }) => {
1069
- const [selector, setSelector] = React__namespace.useState(null);
1070
- React__namespace.useEffect(() => {
1050
+ const [selector, setSelector] = react.useState(null);
1051
+ react.useEffect(() => {
1071
1052
  const elements = docContext.querySelectorAll(`${rootSelector} [data-highlight]`);
1072
1053
  let timeoutId;
1073
1054
  function startHighlight(e) {
@@ -1086,7 +1067,7 @@ const MarkdownHighlightExtension = ({ docContext, rootSelector, }) => {
1086
1067
  elements && elements.forEach((elm) => elm.removeEventListener('click', startHighlight));
1087
1068
  };
1088
1069
  }, [docContext, rootSelector]);
1089
- React__namespace.useEffect(() => {
1070
+ react.useEffect(() => {
1090
1071
  const elements = docContext.querySelectorAll(`${rootSelector} [class^=data-highlight__]`);
1091
1072
  let timeoutId;
1092
1073
  function startHighlight(e) {
@@ -1116,7 +1097,7 @@ const MarkdownHighlightExtension = ({ docContext, rootSelector, }) => {
1116
1097
  if (!selector) {
1117
1098
  return null;
1118
1099
  }
1119
- return React__namespace.createElement(Spotlight, { selector: selector, interactive: true });
1100
+ return jsxRuntime.jsx(Spotlight, { selector: selector, interactive: true });
1120
1101
  };
1121
1102
 
1122
1103
  const MARKDOWN_COPY_BUTTON_ID = 'data-copy-for';
@@ -1124,15 +1105,15 @@ const MARKDOWN_SNIPPET_ID = 'data-snippet-id';
1124
1105
  const ACCORDION_MARKDOWN_BUTTON_ID = `accordion-markdown-button-id`;
1125
1106
  const ACCORDION_MARKDOWN_CONTENT_ID = `accordion-markdown-content-id`;
1126
1107
 
1127
- const CopyClipboard = ({ element, rootSelector, docContext, }) => {
1128
- const { getResource } = React__namespace.useContext(QuickStartContext);
1129
- const [showSuccessContent, setShowSuccessContent] = React__namespace.useState(false);
1130
- const textToCopy = React__namespace.useMemo(() => {
1108
+ const CopyClipboard = ({ element, rootSelector, docContext }) => {
1109
+ const { getResource } = react.useContext(QuickStartContext);
1110
+ const [showSuccessContent, setShowSuccessContent] = react.useState(false);
1111
+ const textToCopy = react.useMemo(() => {
1131
1112
  var _a;
1132
1113
  const copyTextId = element.getAttribute(MARKDOWN_COPY_BUTTON_ID);
1133
1114
  return (_a = docContext.querySelector(`${rootSelector} [${MARKDOWN_SNIPPET_ID}="${copyTextId}"]`)) === null || _a === void 0 ? void 0 : _a.innerText;
1134
1115
  }, [element, docContext, rootSelector]);
1135
- useEventListener(element, 'click', React__namespace.useCallback(() => {
1116
+ useEventListener(element, 'click', react.useCallback(() => {
1136
1117
  navigator.clipboard
1137
1118
  .writeText(textToCopy.trim())
1138
1119
  .then(() => {
@@ -1140,24 +1121,24 @@ const CopyClipboard = ({ element, rootSelector, docContext, }) => {
1140
1121
  })
1141
1122
  .catch(() => { });
1142
1123
  }, [textToCopy]));
1143
- useEventListener(element, 'mouseleave', React__namespace.useCallback(() => {
1124
+ useEventListener(element, 'mouseleave', react.useCallback(() => {
1144
1125
  setShowSuccessContent(false);
1145
1126
  }, []));
1146
- return showSuccessContent ? (React__namespace.createElement(reactCore.Tooltip, { key: "after-copy", isVisible: true, triggerRef: () => element, content: getResource('Successfully copied to clipboard!'), className: "pfext-quick-start__base" })) : (React__namespace.createElement(reactCore.Tooltip, { key: "before-copy", triggerRef: () => element, content: getResource('Copy to clipboard'), className: "pfext-quick-start__base" }));
1127
+ return showSuccessContent ? (jsxRuntime.jsx(reactCore.Tooltip, { isVisible: true, triggerRef: () => element, content: getResource('Successfully copied to clipboard!'), className: "pfext-quick-start__base" }, "after-copy")) : (jsxRuntime.jsx(reactCore.Tooltip, { triggerRef: () => element, content: getResource('Copy to clipboard'), className: "pfext-quick-start__base" }, "before-copy"));
1147
1128
  };
1148
- const MarkdownCopyClipboard = ({ docContext, rootSelector, }) => {
1129
+ const MarkdownCopyClipboard = ({ docContext, rootSelector }) => {
1149
1130
  const elements = docContext.querySelectorAll(`${rootSelector} [${MARKDOWN_COPY_BUTTON_ID}]`);
1150
- return elements.length > 0 ? (React__namespace.createElement(React__namespace.Fragment, null, Array.from(elements).map((elm) => {
1151
- const attributeValue = elm.getAttribute(MARKDOWN_COPY_BUTTON_ID);
1152
- return (React__namespace.createElement(CopyClipboard, { key: attributeValue, element: elm, rootSelector: rootSelector, docContext: docContext }));
1153
- }))) : null;
1131
+ return elements.length > 0 ? (jsxRuntime.jsx(jsxRuntime.Fragment, { children: Array.from(elements).map((elm) => {
1132
+ const attributeValue = elm.getAttribute(MARKDOWN_COPY_BUTTON_ID);
1133
+ return (jsxRuntime.jsx(CopyClipboard, { element: elm, rootSelector: rootSelector, docContext: docContext }, attributeValue));
1134
+ }) })) : null;
1154
1135
  };
1155
1136
 
1156
1137
  const removeTemplateWhitespace = (template) => template.replace(/>(?:\s|\n)+</g, '><');
1157
1138
 
1158
1139
  const useInlineCopyClipboardShowdownExtension = () => {
1159
- const { getResource } = React__namespace.useContext(QuickStartContext);
1160
- return React__namespace.useMemo(() => ({
1140
+ const { getResource } = react.useContext(QuickStartContext);
1141
+ return react.useMemo(() => ({
1161
1142
  type: 'lang',
1162
1143
  regex: /`([^`](.*?)[^`])`{{copy}}/g,
1163
1144
  replace: (text, group, _, groupId) => {
@@ -1169,7 +1150,7 @@ const useInlineCopyClipboardShowdownExtension = () => {
1169
1150
  <span class="pf-v6-c-clipboard-copy__actions">
1170
1151
  <span class="pf-v6-c-clipboard-copy__actions-item">
1171
1152
  <button class="pf-v6-c-button pf-m-plain" aria-label="${getResource('Copy to clipboard')}" ${MARKDOWN_COPY_BUTTON_ID}="${groupId}">
1172
- ${server.renderToStaticMarkup(React__namespace.createElement(CopyIcon__default["default"], null))}
1153
+ ${server.renderToStaticMarkup(jsxRuntime.jsx(CopyIcon__default["default"], {}))}
1173
1154
  </button>
1174
1155
  </span>
1175
1156
  </span>
@@ -1178,10 +1159,9 @@ const useInlineCopyClipboardShowdownExtension = () => {
1178
1159
  }), [getResource]);
1179
1160
  };
1180
1161
 
1181
- /* eslint-disable max-len */
1182
1162
  const useMultilineCopyClipboardShowdownExtension = () => {
1183
- const { getResource } = React__namespace.useContext(QuickStartContext);
1184
- return React__namespace.useMemo(() => ({
1163
+ const { getResource } = react.useContext(QuickStartContext);
1164
+ return react.useMemo(() => ({
1185
1165
  type: 'lang',
1186
1166
  regex: /```[\n]\s*((((?!```).)*?\n)+)\s*```{{copy}}/g,
1187
1167
  replace: (text, group, _1, _2, groupId) => {
@@ -1193,7 +1173,7 @@ const useMultilineCopyClipboardShowdownExtension = () => {
1193
1173
  <div class="pf-v6-c-code-block__actions">
1194
1174
  <div class="pf-v6-c-code-block__actions-item">
1195
1175
  <button class="pf-v6-c-button pf-m-plain" type="button" aria-label="${getResource('Copy to clipboard')}" ${MARKDOWN_COPY_BUTTON_ID}="${groupId}">
1196
- ${server.renderToStaticMarkup(React__namespace.createElement(CopyIcon__default["default"], null))}
1176
+ ${server.renderToStaticMarkup(jsxRuntime.jsx(CopyIcon__default["default"], {}))}
1197
1177
  </button>
1198
1178
  </div>
1199
1179
  </div>
@@ -1206,6 +1186,155 @@ const useMultilineCopyClipboardShowdownExtension = () => {
1206
1186
  }), [getResource]);
1207
1187
  };
1208
1188
 
1189
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
1190
+ const DOMPurify$2 = require('dompurify');
1191
+ var AdmonitionType;
1192
+ (function (AdmonitionType) {
1193
+ AdmonitionType["TIP"] = "TIP";
1194
+ AdmonitionType["NOTE"] = "NOTE";
1195
+ AdmonitionType["IMPORTANT"] = "IMPORTANT";
1196
+ AdmonitionType["WARNING"] = "WARNING";
1197
+ AdmonitionType["CAUTION"] = "CAUTION";
1198
+ })(AdmonitionType || (AdmonitionType = {}));
1199
+ const admonitionToAlertVariantMap = {
1200
+ [AdmonitionType.NOTE]: { variant: 'info' },
1201
+ [AdmonitionType.TIP]: { variant: 'custom', customIcon: jsxRuntime.jsx(LightbulbIcon__default["default"], {}) },
1202
+ [AdmonitionType.IMPORTANT]: { variant: 'danger' },
1203
+ [AdmonitionType.CAUTION]: { variant: 'warning', customIcon: jsxRuntime.jsx(FireIcon__default["default"], {}) },
1204
+ [AdmonitionType.WARNING]: { variant: 'warning' },
1205
+ };
1206
+ const useAdmonitionShowdownExtension = () =>
1207
+ // const { getResource } = React.useContext<QuickStartContextValues>(QuickStartContext);
1208
+ react.useMemo(() => ({
1209
+ type: 'lang',
1210
+ regex: /\[(.+)]{{(admonition) ([\w-]+)}}/g,
1211
+ replace: (text, content, admonitionLabel, admonitionType) => {
1212
+ if (!content || !admonitionLabel || !admonitionType) {
1213
+ return text;
1214
+ }
1215
+ if (admonitionLabel !== 'admonition') {
1216
+ return text;
1217
+ }
1218
+ admonitionType = admonitionType.toUpperCase();
1219
+ // Process markdown content directly using marked
1220
+ const processedContent = marked.marked.parseInline(content);
1221
+ const sanitizedContent = DOMPurify$2.sanitize(processedContent);
1222
+ // Handle unknown admonition types by defaulting to NOTE
1223
+ const admonitionConfig = admonitionToAlertVariantMap[admonitionType] || admonitionToAlertVariantMap.NOTE;
1224
+ const { variant, customIcon } = admonitionConfig;
1225
+ const pfAlert = (jsxRuntime.jsx(reactCore.Alert, Object.assign({ variant: variant }, (customIcon && { customIcon }), { isInline: true, title: admonitionType, className: "pfext-markdown-admonition" }, { children: jsxRuntime.jsx("div", { dangerouslySetInnerHTML: { __html: sanitizedContent } }) })));
1226
+ return removeTemplateWhitespace(server.renderToStaticMarkup(pfAlert));
1227
+ },
1228
+ }), []);
1229
+
1230
+ const useCodeShowdownExtension = () => react.useMemo(() => ({
1231
+ type: 'output',
1232
+ regex: /<pre><code>(.*?)\n?<\/code><\/pre>/g,
1233
+ replace: (text, content) => {
1234
+ if (!content) {
1235
+ return text;
1236
+ }
1237
+ const pfCodeBlock = jsxRuntime.jsx(reactCore.CodeBlock, { children: content });
1238
+ return removeTemplateWhitespace(server.renderToStaticMarkup(pfCodeBlock));
1239
+ },
1240
+ }), []);
1241
+
1242
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
1243
+ const DOMPurify$1 = require('dompurify');
1244
+ const useAccordionShowdownExtension = () => react.useMemo(() => ({
1245
+ type: 'lang',
1246
+ regex: /\[(.+)]{{(accordion) (&quot;(.*?)&quot;)}}/g,
1247
+ replace: (_text, accordionContent, _command, _quotedHeading, accordionHeading) => {
1248
+ const accordionId = String(accordionHeading).replace(/\s/g, '-');
1249
+ // Process accordion content with markdown
1250
+ const processedContent = marked.marked.parseInline(accordionContent);
1251
+ const sanitizedContent = DOMPurify$1.sanitize(processedContent);
1252
+ return removeTemplateWhitespace(server.renderToStaticMarkup(jsxRuntime.jsx(reactCore.Accordion, { children: jsxRuntime.jsxs(reactCore.AccordionItem, { children: [jsxRuntime.jsx(reactCore.AccordionToggle, Object.assign({ id: `${ACCORDION_MARKDOWN_BUTTON_ID}-${accordionId}` }, { children: accordionHeading })), jsxRuntime.jsx(reactCore.AccordionContent, Object.assign({ id: `${ACCORDION_MARKDOWN_CONTENT_ID}-${accordionId}`, hidden: true }, { children: jsxRuntime.jsx("div", { dangerouslySetInnerHTML: { __html: sanitizedContent } }) }))] }) })));
1253
+ },
1254
+ }), []);
1255
+
1256
+ const AccordionShowdownHandler = ({ buttonElement, contentElement, }) => {
1257
+ const [expanded, setExpanded] = react.useState(false);
1258
+ const handleClick = () => {
1259
+ const newExpanded = !expanded;
1260
+ const expandedModifier = 'pf-m-expanded';
1261
+ // Find the accordion item element (parent of the button)
1262
+ const accordionItem = buttonElement.closest('.pf-v6-c-accordion__item');
1263
+ // Update button - both visual state and aria-expanded
1264
+ buttonElement.className = `pf-v6-c-accordion__toggle ${newExpanded ? expandedModifier : ''}`;
1265
+ buttonElement.setAttribute('aria-expanded', newExpanded.toString());
1266
+ // Update content - both visual state and hidden attribute
1267
+ contentElement.hidden = !newExpanded;
1268
+ contentElement.className = `pf-v6-c-accordion__expandable-content ${newExpanded ? expandedModifier : ''}`;
1269
+ // Update accordion item
1270
+ if (accordionItem) {
1271
+ accordionItem.className = `pf-v6-c-accordion__item ${newExpanded ? expandedModifier : ''}`;
1272
+ }
1273
+ setExpanded(newExpanded);
1274
+ };
1275
+ useEventListener(buttonElement, 'click', handleClick);
1276
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {});
1277
+ };
1278
+ const AccordionRenderExtension = ({ docContext }) => {
1279
+ const buttonElements = docContext.querySelectorAll(`[id ^= ${ACCORDION_MARKDOWN_BUTTON_ID}]`);
1280
+ const contentElements = docContext.querySelectorAll(`[id ^= ${ACCORDION_MARKDOWN_CONTENT_ID}]`);
1281
+ return buttonElements.length > 0 ? (jsxRuntime.jsx(jsxRuntime.Fragment, { children: Array.from(buttonElements).map((elm) => {
1282
+ const content = Array.from(contentElements).find((elm2) => {
1283
+ const elmId = elm.id.split(ACCORDION_MARKDOWN_BUTTON_ID)[1];
1284
+ const elm2Id = elm2.id.split(ACCORDION_MARKDOWN_CONTENT_ID)[1];
1285
+ return elmId === elm2Id;
1286
+ });
1287
+ return (jsxRuntime.jsx(AccordionShowdownHandler, { buttonElement: elm, contentElement: content }, elm.id.split(ACCORDION_MARKDOWN_BUTTON_ID)[1]));
1288
+ }) })) : null;
1289
+ };
1290
+
1291
+ const FallbackImg = ({ src, alt, className, fallback }) => {
1292
+ const [isSrcValid, setIsSrcValid] = react.useState(true);
1293
+ if (src && isSrcValid) {
1294
+ return jsxRuntime.jsx("img", { className: className, src: src, alt: alt, onError: () => setIsSrcValid(false) });
1295
+ }
1296
+ return jsxRuntime.jsx(jsxRuntime.Fragment, { children: fallback });
1297
+ };
1298
+
1299
+ const DASH = '-';
1300
+
1301
+ const PopoverStatus = ({ hideHeader, children, isVisible = null, statusBody, title, onHide, onShow, }) => (jsxRuntime.jsx(reactCore.Popover, Object.assign({ position: reactCore.PopoverPosition.right, headerContent: hideHeader ? null : title, bodyContent: children, "aria-label": title, onHide: onHide, onShow: onShow, isVisible: isVisible }, { children: jsxRuntime.jsx(reactCore.Button, Object.assign({ variant: "link", isInline: true }, { children: statusBody })) })));
1302
+
1303
+ const StatusIconAndText = ({ icon, title, spin, iconOnly, noTooltip, className, }) => {
1304
+ if (!title) {
1305
+ return jsxRuntime.jsx(jsxRuntime.Fragment, { children: DASH });
1306
+ }
1307
+ return (jsxRuntime.jsxs("span", Object.assign({ className: reactStyles.css('pfext-icon-and-text', className), title: iconOnly && !noTooltip ? title : undefined }, { children: [icon &&
1308
+ react.cloneElement(icon, {
1309
+ className: reactStyles.css(spin && 'fa-spin', icon.props.className, !iconOnly && 'pfext-icon-and-text__icon pfext-icon-flex-child'),
1310
+ }), !iconOnly && jsxRuntime.jsx(CamelCaseWrap, { value: title, dataTest: "status-text" })] })));
1311
+ };
1312
+
1313
+ const GenericStatus = (props) => {
1314
+ const { Icon, children, popoverTitle, title, noTooltip, iconOnly } = props, restProps = tslib.__rest(props, ["Icon", "children", "popoverTitle", "title", "noTooltip", "iconOnly"]);
1315
+ const renderIcon = iconOnly && !noTooltip ? jsxRuntime.jsx(Icon, { title: title }) : jsxRuntime.jsx(Icon, {});
1316
+ const statusBody = (jsxRuntime.jsx(StatusIconAndText, Object.assign({}, restProps, { noTooltip: noTooltip, title: title, iconOnly: iconOnly, icon: renderIcon })));
1317
+ return react.Children.toArray(children).length ? (jsxRuntime.jsx(PopoverStatus, Object.assign({ title: popoverTitle || title }, restProps, { statusBody: statusBody }, { children: children }))) : (statusBody);
1318
+ };
1319
+
1320
+ const GreenCheckCircleIcon = ({ className, title, size }) => (jsxRuntime.jsx(reactCore.Icon, Object.assign({ size: size, status: "success" }, { children: jsxRuntime.jsx(CheckCircleIcon__default["default"], { "data-test": "success-icon", className: className, title: title }) })));
1321
+
1322
+ const SuccessStatus = (props) => (jsxRuntime.jsx(GenericStatus, Object.assign({}, props, { Icon: GreenCheckCircleIcon, title: props.title || 'Healthy' })));
1323
+ SuccessStatus.displayName = 'SuccessStatus';
1324
+
1325
+ const Status = ({ status, title, iconOnly, noTooltip, className }) => {
1326
+ const statusProps = { title: title || status, iconOnly, noTooltip, className };
1327
+ switch (status) {
1328
+ case 'In Progress':
1329
+ return jsxRuntime.jsx(StatusIconAndText, Object.assign({}, statusProps, { icon: jsxRuntime.jsx(SyncAltIcon__default["default"], {}) }));
1330
+ case 'Complete':
1331
+ return jsxRuntime.jsx(SuccessStatus, Object.assign({}, statusProps));
1332
+ default:
1333
+ return jsxRuntime.jsx(jsxRuntime.Fragment, { children: status || DASH });
1334
+ }
1335
+ };
1336
+ const StatusIcon = ({ status }) => jsxRuntime.jsx(Status, { status: status, iconOnly: true });
1337
+
1209
1338
  // eslint-disable-next-line @typescript-eslint/no-require-imports
1210
1339
  const DOMPurify = require('dompurify');
1211
1340
  const markdownConvert = (markdown, extensions) => tslib.__awaiter(void 0, void 0, void 0, function* () {
@@ -1217,7 +1346,7 @@ const markdownConvert = (markdown, extensions) => tslib.__awaiter(void 0, void 0
1217
1346
  node.setAttribute('rel', 'noopener noreferrer');
1218
1347
  return node;
1219
1348
  }
1220
- // add PF content classes
1349
+ // add PF content classes to standard elements (details blocks get handled separately)
1221
1350
  if (node.nodeType === 1) {
1222
1351
  const contentElements = [
1223
1352
  'ul',
@@ -1268,13 +1397,82 @@ const markdownConvert = (markdown, extensions) => tslib.__awaiter(void 0, void 0
1268
1397
  const reversedMarkdown = reverseString(markdown);
1269
1398
  const reverseMarkdownWithSubstitutedCodeFences = reversedMarkdown.replace(/{{```((.|\n)*?)```/g, '{{@@@$1@@@');
1270
1399
  const markdownWithSubstitutedCodeFences = reverseString(reverseMarkdownWithSubstitutedCodeFences);
1271
- const parsedMarkdown = yield marked.marked.parse(markdownWithSubstitutedCodeFences);
1400
+ // Fix malformed HTML entities early in the process
1401
+ let preprocessedMarkdown = markdownWithSubstitutedCodeFences;
1402
+ preprocessedMarkdown = preprocessedMarkdown
1403
+ .replace(/&nbsp([^;])/g, '&nbsp;$1')
1404
+ .replace(/&amp;nbsp;/g, '&nbsp;');
1405
+ preprocessedMarkdown = preprocessedMarkdown.replace(/&nbsp(?![;])/g, '&nbsp;');
1406
+ // Process content in segments to ensure markdown parsing continues after HTML blocks
1407
+ const htmlBlockRegex = /(<(?:details|div|section|article)[^>]*>[\s\S]*?<\/(?:details|div|section|article)>)/g;
1408
+ let parsedMarkdown = '';
1409
+ // Check if there are any HTML blocks
1410
+ if (htmlBlockRegex.test(preprocessedMarkdown)) {
1411
+ // Reset regex for actual processing
1412
+ htmlBlockRegex.lastIndex = 0;
1413
+ let lastIndex = 0;
1414
+ let match;
1415
+ while ((match = htmlBlockRegex.exec(preprocessedMarkdown)) !== null) {
1416
+ // Process markdown before the HTML block
1417
+ const markdownBefore = preprocessedMarkdown.slice(lastIndex, match.index).trim();
1418
+ if (markdownBefore) {
1419
+ const parsed = yield marked.marked.parse(markdownBefore);
1420
+ parsedMarkdown += parsed;
1421
+ }
1422
+ // Process the HTML block: parse markdown content inside while preserving HTML structure
1423
+ let htmlBlock = match[1];
1424
+ // Find and process markdown content inside HTML tags
1425
+ const contentRegex = />(\s*[\s\S]*?)\s*</g;
1426
+ const contentMatches = [];
1427
+ let contentMatch;
1428
+ while ((contentMatch = contentRegex.exec(htmlBlock)) !== null) {
1429
+ const content = contentMatch[1];
1430
+ // Only process content that has markdown formatting but no extension syntax
1431
+ if (content.trim() &&
1432
+ !content.includes('{{') &&
1433
+ (content.includes('**') || content.includes('- ') || content.includes('\n'))) {
1434
+ // This looks like markdown content without extensions - parse it as block content
1435
+ const parsedContent = yield marked.marked.parse(content.trim());
1436
+ // Remove wrapping <p> tags if they exist since we're inside HTML already
1437
+ const cleanedContent = parsedContent.replace(/^<p[^>]*>([\s\S]*)<\/p>[\s]*$/g, '$1');
1438
+ contentMatches.push({
1439
+ original: contentMatch[0],
1440
+ replacement: `>${cleanedContent}<`,
1441
+ });
1442
+ }
1443
+ }
1444
+ // Apply the content replacements
1445
+ contentMatches.forEach(({ original, replacement }) => {
1446
+ htmlBlock = htmlBlock.replace(original, replacement);
1447
+ });
1448
+ // Apply extensions (like admonitions) to the processed HTML block
1449
+ if (extensions) {
1450
+ extensions.forEach(({ regex, replace }) => {
1451
+ if (regex) {
1452
+ htmlBlock = htmlBlock.replace(regex, replace);
1453
+ }
1454
+ });
1455
+ }
1456
+ parsedMarkdown += htmlBlock;
1457
+ lastIndex = htmlBlockRegex.lastIndex;
1458
+ }
1459
+ // Process any remaining markdown after the last HTML block
1460
+ const markdownAfter = preprocessedMarkdown.slice(lastIndex).trim();
1461
+ if (markdownAfter) {
1462
+ const parsed = yield marked.marked.parse(markdownAfter);
1463
+ parsedMarkdown += parsed;
1464
+ }
1465
+ }
1466
+ else {
1467
+ // No HTML blocks found, process normally
1468
+ parsedMarkdown = yield marked.marked.parse(preprocessedMarkdown);
1469
+ }
1272
1470
  // Swap the temporary tokens back to code fences before we run the extensions
1273
1471
  let md = parsedMarkdown.replace(/@@@/g, '```');
1274
1472
  if (extensions) {
1275
1473
  // Convert code spans back to md format before we run the custom extension regexes
1276
1474
  md = md.replace(/<code>(.*)<\/code>/g, '`$1`');
1277
- extensions.forEach(({ regex, replace }) => {
1475
+ extensions.forEach(({ regex, replace }, _index) => {
1278
1476
  if (regex) {
1279
1477
  md = md.replace(regex, replace);
1280
1478
  }
@@ -1285,9 +1483,9 @@ const markdownConvert = (markdown, extensions) => tslib.__awaiter(void 0, void 0
1285
1483
  return DOMPurify.sanitize(md);
1286
1484
  });
1287
1485
  const SyncMarkdownView = ({ content, emptyMsg, extensions, renderExtension, exactHeight, inline, className, }) => {
1288
- const { getResource } = React__namespace.useContext(QuickStartContext);
1289
- const [markup, setMarkup] = React__namespace.useState('');
1290
- React__namespace.useEffect(() => {
1486
+ const { getResource } = react.useContext(QuickStartContext);
1487
+ const [markup, setMarkup] = react.useState('');
1488
+ react.useEffect(() => {
1291
1489
  function getMd() {
1292
1490
  return tslib.__awaiter(this, void 0, void 0, function* () {
1293
1491
  const md = yield markdownConvert(content || emptyMsg || getResource('Not available'), extensions);
@@ -1303,7 +1501,7 @@ const SyncMarkdownView = ({ content, emptyMsg, extensions, renderExtension, exac
1303
1501
  isEmpty: !content,
1304
1502
  className,
1305
1503
  };
1306
- return inline ? React__namespace.createElement(InlineMarkdownView, Object.assign({}, innerProps)) : React__namespace.createElement(IFrameMarkdownView, Object.assign({}, innerProps));
1504
+ return inline ? jsxRuntime.jsx(InlineMarkdownView, Object.assign({}, innerProps)) : jsxRuntime.jsx(IFrameMarkdownView, Object.assign({}, innerProps));
1307
1505
  };
1308
1506
  const uniqueId = (function () {
1309
1507
  let num = 0;
@@ -1315,8 +1513,8 @@ const uniqueId = (function () {
1315
1513
  })();
1316
1514
  const RenderExtension = ({ renderExtension, selector, markup, docContext, }) => {
1317
1515
  const forceRender = useForceRender();
1318
- const markupRef = React__namespace.useRef(null);
1319
- const shouldRenderExtension = React__namespace.useCallback(() => {
1516
+ const markupRef = react.useRef(null);
1517
+ const shouldRenderExtension = react.useCallback(() => {
1320
1518
  if (markupRef.current === markup) {
1321
1519
  return true;
1322
1520
  }
@@ -1329,25 +1527,23 @@ const RenderExtension = ({ renderExtension, selector, markup, docContext, }) =>
1329
1527
  * which causes the component rendered by renderExtension to receive old copy of document
1330
1528
  * use forceRender to delay the rendering of extension by one render cycle
1331
1529
  */
1332
- React__namespace.useEffect(() => {
1530
+ react.useEffect(() => {
1333
1531
  if (renderExtension) {
1334
1532
  forceRender();
1335
1533
  }
1336
1534
  // eslint-disable-next-line react-hooks/exhaustive-deps
1337
1535
  }, [markup]);
1338
- return (React__namespace.createElement(React__namespace.Fragment, null, shouldRenderExtension() ? renderExtension === null || renderExtension === void 0 ? void 0 : renderExtension(docContext !== null && docContext !== void 0 ? docContext : document, selector) : null));
1536
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: shouldRenderExtension() ? renderExtension === null || renderExtension === void 0 ? void 0 : renderExtension(docContext !== null && docContext !== void 0 ? docContext : document, selector) : null }));
1339
1537
  };
1340
1538
  const InlineMarkdownView = ({ markup, isEmpty, renderExtension, className, }) => {
1341
- const id = React__namespace.useMemo(() => uniqueId('markdown'), []);
1342
- return (React__namespace.createElement("div", { className: reactStyles.css({ 'is-empty': isEmpty }, className), id: id },
1343
- React__namespace.createElement("div", { dangerouslySetInnerHTML: { __html: markup } }),
1344
- renderExtension && (React__namespace.createElement(RenderExtension, { renderExtension: renderExtension, selector: `#${id}`, markup: markup }))));
1539
+ const id = react.useMemo(() => uniqueId('markdown'), []);
1540
+ return (jsxRuntime.jsxs("div", Object.assign({ className: reactStyles.css({ 'is-empty': isEmpty }, className), id: id }, { children: [jsxRuntime.jsx("div", { style: { marginBlockEnd: 'var(--pf-t-global--spacer--md)' }, dangerouslySetInnerHTML: { __html: markup } }), renderExtension && (jsxRuntime.jsx(RenderExtension, { renderExtension: renderExtension, selector: `#${id}`, markup: markup }))] })));
1345
1541
  };
1346
1542
  const IFrameMarkdownView = ({ exactHeight, markup, isEmpty, renderExtension, className, }) => {
1347
- const [frame, setFrame] = React__namespace.useState();
1348
- const [loaded, setLoaded] = React__namespace.useState(false);
1349
- const updateTimeoutHandle = React__namespace.useRef();
1350
- const updateDimensions = React__namespace.useCallback(() => {
1543
+ const [frame, setFrame] = react.useState();
1544
+ const [loaded, setLoaded] = react.useState(false);
1545
+ const updateTimeoutHandle = react.useRef(null);
1546
+ const updateDimensions = react.useCallback(() => {
1351
1547
  var _a;
1352
1548
  if (!((_a = frame === null || frame === void 0 ? void 0 : frame.contentWindow) === null || _a === void 0 ? void 0 : _a.document.body.firstChild)) {
1353
1549
  return;
@@ -1364,10 +1560,10 @@ const IFrameMarkdownView = ({ exactHeight, markup, isEmpty, renderExtension, cla
1364
1560
  }
1365
1561
  });
1366
1562
  }, [frame, exactHeight]);
1367
- React__namespace.useEffect(() => () => {
1563
+ react.useEffect(() => () => {
1368
1564
  clearTimeout(updateTimeoutHandle.current);
1369
1565
  }, []);
1370
- const onLoad = React__namespace.useCallback(() => {
1566
+ const onLoad = react.useCallback(() => {
1371
1567
  updateDimensions();
1372
1568
  setLoaded(true);
1373
1569
  }, [updateDimensions]);
@@ -1400,9 +1596,9 @@ const IFrameMarkdownView = ({ exactHeight, markup, isEmpty, renderExtension, cla
1400
1596
  }
1401
1597
  </style>
1402
1598
  <body class="pf-m-redhat-font"><div style="overflow-y: auto;">${markup}</div></body>`;
1403
- return (React__namespace.createElement(React__namespace.Fragment, null,
1404
- React__namespace.createElement("iframe", { sandbox: "allow-popups allow-popups-to-escape-sandbox allow-same-origin", srcDoc: contents, style: { border: '0px', display: 'block', width: '100%', height: '0' }, ref: (r) => setFrame(r), onLoad: () => onLoad(), className: className }),
1405
- loaded && frame && renderExtension && (React__namespace.createElement(RenderExtension, { markup: markup, selector: '', renderExtension: renderExtension, docContext: frame.contentDocument }))));
1599
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("iframe", { title: "Markdown content preview", sandbox: "allow-popups allow-popups-to-escape-sandbox allow-same-origin", srcDoc: contents, style: { border: '0px', display: 'block', width: '100%', height: '0' }, ref: (r) => {
1600
+ setFrame(r);
1601
+ }, onLoad: () => onLoad(), className: className }), loaded && frame && renderExtension && (jsxRuntime.jsx(RenderExtension, { markup: markup, selector: '', renderExtension: renderExtension, docContext: frame.contentDocument }))] }));
1406
1602
  };
1407
1603
 
1408
1604
  const LINK_LABEL = '[\\d\\w\\s-()$!]+';
@@ -1412,13 +1608,13 @@ const SELECTOR_ID = `[\\w-]+`;
1412
1608
  const HIGHLIGHT_REGEXP = new RegExp(`\\[(${LINK_LABEL})]{{(${HIGHLIGHT_ACTIONS.join('|')}) (${SELECTOR_ID})}}`, 'g');
1413
1609
 
1414
1610
  const QuickStartMarkdownView = ({ content, exactHeight, className, }) => {
1415
- const { markdown } = React__namespace.useContext(QuickStartContext);
1611
+ const { markdown } = react.useContext(QuickStartContext);
1416
1612
  const inlineCopyClipboardShowdownExtension = useInlineCopyClipboardShowdownExtension();
1417
1613
  const multilineCopyClipboardShowdownExtension = useMultilineCopyClipboardShowdownExtension();
1418
1614
  const admonitionShowdownExtension = useAdmonitionShowdownExtension();
1419
1615
  const codeShowdownExtension = useCodeShowdownExtension();
1420
1616
  const accordionShowdownExtension = useAccordionShowdownExtension();
1421
- return (React__namespace.createElement(SyncMarkdownView, { inline: true, content: content, exactHeight: exactHeight, extensions: [
1617
+ return (jsxRuntime.jsx(SyncMarkdownView, { inline: true, content: content, exactHeight: exactHeight, extensions: [
1422
1618
  {
1423
1619
  type: 'lang',
1424
1620
  regex: HIGHLIGHT_REGEXP,
@@ -1443,203 +1639,45 @@ const QuickStartMarkdownView = ({ content, exactHeight, className, }) => {
1443
1639
  codeShowdownExtension,
1444
1640
  accordionShowdownExtension,
1445
1641
  ...(markdown ? markdown.extensions : []),
1446
- ], renderExtension: (docContext, rootSelector) => (React__namespace.createElement(React__namespace.Fragment, null,
1447
- React__namespace.createElement(AccordionRenderExtension, { docContext: docContext }),
1448
- React__namespace.createElement(MarkdownHighlightExtension, { docContext: docContext, rootSelector: rootSelector }),
1449
- React__namespace.createElement(MarkdownCopyClipboard, { docContext: docContext, rootSelector: rootSelector }),
1450
- markdown &&
1451
- markdown.renderExtension &&
1452
- markdown.renderExtension(docContext, rootSelector))), className: className }));
1642
+ ], renderExtension: (docContext, rootSelector) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(AccordionRenderExtension, { docContext: docContext }), jsxRuntime.jsx(MarkdownHighlightExtension, { docContext: docContext, rootSelector: rootSelector }), jsxRuntime.jsx(MarkdownCopyClipboard, { docContext: docContext, rootSelector: rootSelector }), markdown &&
1643
+ markdown.renderExtension &&
1644
+ markdown.renderExtension(docContext, rootSelector)] })), className: className }));
1453
1645
  };
1454
1646
 
1455
- var AdmonitionType;
1456
- (function (AdmonitionType) {
1457
- AdmonitionType["TIP"] = "TIP";
1458
- AdmonitionType["NOTE"] = "NOTE";
1459
- AdmonitionType["IMPORTANT"] = "IMPORTANT";
1460
- AdmonitionType["WARNING"] = "WARNING";
1461
- AdmonitionType["CAUTION"] = "CAUTION";
1462
- })(AdmonitionType || (AdmonitionType = {}));
1463
- const admonitionToAlertVariantMap = {
1464
- [AdmonitionType.NOTE]: { variant: 'info' },
1465
- [AdmonitionType.TIP]: { variant: 'custom', customIcon: React__namespace.createElement(LightbulbIcon__default["default"], null) },
1466
- [AdmonitionType.IMPORTANT]: { variant: 'danger' },
1467
- [AdmonitionType.CAUTION]: { variant: 'warning', customIcon: React__namespace.createElement(FireIcon__default["default"], null) },
1468
- [AdmonitionType.WARNING]: { variant: 'warning' },
1469
- };
1470
- const useAdmonitionShowdownExtension = () =>
1471
- // const { getResource } = React.useContext<QuickStartContextValues>(QuickStartContext);
1472
- React__namespace.useMemo(() => ({
1473
- type: 'lang',
1474
- regex: /\[(.+)]{{(admonition) ([\w-]+)}}/g,
1475
- replace: (text, content, admonitionLabel, admonitionType, groupId) => {
1476
- if (!content || !admonitionLabel || !admonitionType || !groupId) {
1477
- return text;
1478
- }
1479
- admonitionType = admonitionType.toUpperCase();
1480
- const { variant, customIcon } = admonitionToAlertVariantMap[admonitionType];
1481
- const mdContent = React__namespace.createElement(QuickStartMarkdownView, { content: content });
1482
- const pfAlert = (React__namespace.createElement(reactCore.Alert, Object.assign({ variant: variant }, (customIcon && { customIcon }), { isInline: true, title: admonitionType, className: "pfext-markdown-admonition" }), mdContent));
1483
- return removeTemplateWhitespace(server.renderToStaticMarkup(pfAlert));
1484
- },
1485
- }), []);
1486
-
1487
- const useCodeShowdownExtension = () => React__namespace.useMemo(() => ({
1488
- type: 'output',
1489
- regex: /<pre><code>(.*?)\n?<\/code><\/pre>/g,
1490
- replace: (text, content) => {
1491
- if (!content) {
1492
- return text;
1493
- }
1494
- const pfCodeBlock = React__namespace.createElement(reactCore.CodeBlock, null, content);
1495
- return removeTemplateWhitespace(server.renderToStaticMarkup(pfCodeBlock));
1496
- },
1497
- }), []);
1498
-
1499
- const useAccordionShowdownExtension = () => React__namespace.useMemo(() => ({
1500
- type: 'lang',
1501
- regex: /\[(.+)]{{(accordion) ("(.*?)")}}/g,
1502
- replace: (_text, accordionContent, _command, accordionHeading) => {
1503
- const accordionId = String(accordionHeading).replace(/\s/g, '-');
1504
- return removeTemplateWhitespace(server.renderToStaticMarkup(React__namespace.createElement(React__namespace.Fragment, null,
1505
- React__namespace.createElement(reactCore.Accordion, { asDefinitionList: true },
1506
- React__namespace.createElement(reactCore.AccordionItem, { isExpanded: false },
1507
- React__namespace.createElement(reactCore.AccordionToggle, { id: `${ACCORDION_MARKDOWN_BUTTON_ID}-${accordionId}` }, accordionHeading),
1508
- React__namespace.createElement(reactCore.AccordionContent, { id: `${ACCORDION_MARKDOWN_CONTENT_ID}-${accordionId}` }, accordionContent))))));
1509
- },
1510
- }), []);
1511
-
1512
- const AccordionShowdownHandler = ({ buttonElement, contentElement, }) => {
1513
- const [expanded, setExpanded] = React__namespace.useState(false);
1514
- const handleClick = () => {
1515
- const expandedModifier = 'pf-m-expanded';
1516
- buttonElement.className = `pf-v6-c-accordion__toggle ${!expanded ? expandedModifier : ''}`;
1517
- contentElement.hidden = expanded;
1518
- contentElement.className = `pf-v6-c-accordion__expanded-content ${!expanded ? expandedModifier : ''}`;
1519
- setExpanded(!expanded);
1520
- };
1521
- useEventListener(buttonElement, 'click', handleClick);
1522
- return React__namespace.createElement(React__namespace.Fragment, null);
1523
- };
1524
- const AccordionRenderExtension = ({ docContext }) => {
1525
- const buttonElements = docContext.querySelectorAll(`[id ^= ${ACCORDION_MARKDOWN_BUTTON_ID}]`);
1526
- const contentElements = docContext.querySelectorAll(`[id ^= ${ACCORDION_MARKDOWN_CONTENT_ID}]`);
1527
- return buttonElements.length > 0 ? (React__namespace.createElement(React__namespace.Fragment, null, Array.from(buttonElements).map((elm) => {
1528
- const content = Array.from(contentElements).find((elm2) => {
1529
- const elmId = elm.id.split(ACCORDION_MARKDOWN_BUTTON_ID)[1];
1530
- const elm2Id = elm2.id.split(ACCORDION_MARKDOWN_CONTENT_ID)[1];
1531
- return elmId === elm2Id;
1532
- });
1533
- return (React__namespace.createElement(AccordionShowdownHandler, { key: elm.id.split(ACCORDION_MARKDOWN_BUTTON_ID)[1], buttonElement: elm, contentElement: content }));
1534
- }))) : null;
1535
- };
1536
-
1537
- const FallbackImg = ({ src, alt, className, fallback }) => {
1538
- const [isSrcValid, setIsSrcValid] = React__namespace.useState(true);
1539
- if (src && isSrcValid) {
1540
- return React__namespace.createElement("img", { className: className, src: src, alt: alt, onError: () => setIsSrcValid(false) });
1541
- }
1542
- return React__namespace.createElement(React__namespace.Fragment, null, fallback);
1543
- };
1544
-
1545
- const DASH = '-';
1546
-
1547
- const PopoverStatus = ({ hideHeader, children, isVisible = null, statusBody, title, onHide, onShow, }) => (React__namespace.createElement(reactCore.Popover, { position: reactCore.PopoverPosition.right, headerContent: hideHeader ? null : title, bodyContent: children, "aria-label": title, onHide: onHide, onShow: onShow, isVisible: isVisible },
1548
- React__namespace.createElement(reactCore.Button, { variant: "link", isInline: true }, statusBody)));
1549
-
1550
- const StatusIconAndText = ({ icon, title, spin, iconOnly, noTooltip, className, }) => {
1551
- if (!title) {
1552
- return React__namespace.createElement(React__namespace.Fragment, null, DASH);
1553
- }
1554
- return (React__namespace.createElement("span", { className: reactStyles.css('pfext-icon-and-text', className), title: iconOnly && !noTooltip ? title : undefined },
1555
- icon &&
1556
- React__namespace.cloneElement(icon, {
1557
- className: reactStyles.css(spin && 'fa-spin', icon.props.className, !iconOnly && 'pfext-icon-and-text__icon pfext-icon-flex-child'),
1558
- }),
1559
- !iconOnly && React__namespace.createElement(CamelCaseWrap, { value: title, dataTest: "status-text" })));
1560
- };
1561
-
1562
- const GenericStatus = (props) => {
1563
- const { Icon, children, popoverTitle, title, noTooltip, iconOnly } = props, restProps = tslib.__rest(props, ["Icon", "children", "popoverTitle", "title", "noTooltip", "iconOnly"]);
1564
- const renderIcon = iconOnly && !noTooltip ? React__namespace.createElement(Icon, { title: title }) : React__namespace.createElement(Icon, null);
1565
- const statusBody = (React__namespace.createElement(StatusIconAndText, Object.assign({}, restProps, { noTooltip: noTooltip, title: title, iconOnly: iconOnly, icon: renderIcon })));
1566
- return React__namespace.Children.toArray(children).length ? (React__namespace.createElement(PopoverStatus, Object.assign({ title: popoverTitle || title }, restProps, { statusBody: statusBody }), children)) : (statusBody);
1567
- };
1568
-
1569
- const GreenCheckCircleIcon = ({ className, title, size }) => (React__namespace.createElement(reactCore.Icon, { size: size, status: "success" },
1570
- React__namespace.createElement(CheckCircleIcon__default["default"], { "data-test": "success-icon", className: className, title: title })));
1571
-
1572
- const SuccessStatus = (props) => (React__namespace.createElement(GenericStatus, Object.assign({}, props, { Icon: GreenCheckCircleIcon, title: props.title || 'Healthy' })));
1573
- SuccessStatus.displayName = 'SuccessStatus';
1574
-
1575
- const Status = ({ status, title, iconOnly, noTooltip, className, }) => {
1576
- const statusProps = { title: title || status, iconOnly, noTooltip, className };
1577
- switch (status) {
1578
- case 'In Progress':
1579
- return React__namespace.createElement(StatusIconAndText, Object.assign({}, statusProps, { icon: React__namespace.createElement(SyncAltIcon__default["default"], null) }));
1580
- case 'Complete':
1581
- return React__namespace.createElement(SuccessStatus, Object.assign({}, statusProps));
1582
- default:
1583
- return React__namespace.createElement(React__namespace.Fragment, null, status || DASH);
1584
- }
1585
- };
1586
- const StatusIcon = ({ status }) => (React__namespace.createElement(Status, { status: status, iconOnly: true }));
1587
-
1588
1647
  const QuickStartTileDescription = ({ description, prerequisites, }) => {
1589
- const { getResource } = React__namespace.useContext(QuickStartContext);
1648
+ const { getResource } = react.useContext(QuickStartContext);
1590
1649
  const prereqs = prerequisites === null || prerequisites === void 0 ? void 0 : prerequisites.filter((p) => p);
1591
- const buttonRef = React__namespace.useRef(null);
1592
- return (React__namespace.createElement(React__namespace.Fragment, null,
1593
- React__namespace.createElement(QuickStartMarkdownView, { content: description }),
1594
- (prereqs === null || prereqs === void 0 ? void 0 : prereqs.length) > 0 && (React__namespace.createElement(reactCore.Flex, { spaceItems: { default: 'spaceItemsSm' } },
1595
- React__namespace.createElement("h5", null,
1596
- getResource('Prerequisites ({{totalPrereqs}})').replace('{{totalPrereqs}}', prereqs.length),
1597
- ' '),
1598
- React__namespace.createElement(reactCore.Button, { variant: "link", isInline: true, "data-testid": "qs-card-prereqs", ref: buttonRef, onClick: (e) => {
1599
- e.preventDefault();
1600
- e.stopPropagation();
1601
- }, "aria-label": getResource('Show prerequisites') },
1602
- React__namespace.createElement(InfoCircleIcon__default["default"], null)),
1603
- React__namespace.createElement(reactCore.Popover, { "aria-label": getResource('Prerequisites'), headerContent: getResource('Prerequisites'), triggerRef: buttonRef, bodyContent: React__namespace.createElement("div", null,
1604
- React__namespace.createElement("ul", { "aria-label": getResource('Prerequisites') }, prereqs.map((prerequisite, index) => (
1605
- // eslint-disable-next-line react/no-array-index-key
1606
- React__namespace.createElement("li", { key: index },
1607
- React__namespace.createElement(QuickStartMarkdownView, { content: prerequisite })))))) })))));
1650
+ const buttonRef = react.useRef(null);
1651
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(QuickStartMarkdownView, { content: description }), (prereqs === null || prereqs === void 0 ? void 0 : prereqs.length) > 0 && (jsxRuntime.jsxs(reactCore.Flex, Object.assign({ spaceItems: { default: 'spaceItemsSm' } }, { children: [jsxRuntime.jsxs("h5", { children: [getResource('Prerequisites ({{totalPrereqs}})').replace('{{totalPrereqs}}', prereqs.length), ' '] }), jsxRuntime.jsx(reactCore.Button, Object.assign({ variant: "link", isInline: true, "data-testid": "qs-card-prereqs", ref: buttonRef, onClick: (e) => {
1652
+ e.preventDefault();
1653
+ e.stopPropagation();
1654
+ }, "aria-label": getResource('Show prerequisites') }, { children: jsxRuntime.jsx(InfoCircleIcon__default["default"], {}) })), jsxRuntime.jsx(reactCore.Popover, { "aria-label": getResource('Prerequisites'), headerContent: getResource('Prerequisites'), triggerRef: buttonRef, bodyContent: jsxRuntime.jsx("div", { children: jsxRuntime.jsx("ul", Object.assign({ "aria-label": getResource('Prerequisites') }, { children: prereqs.map((prerequisite, index) => (
1655
+ // eslint-disable-next-line react/no-array-index-key
1656
+ jsxRuntime.jsx("li", { children: jsxRuntime.jsx(QuickStartMarkdownView, { content: prerequisite }) }, index))) })) }) })] })))] }));
1608
1657
  };
1609
1658
 
1610
1659
  const QuickStartTileFooter = ({ quickStartId, status, totalTasks, onClickContinue, }) => {
1611
- const { getResource } = React__namespace.useContext(QuickStartContext);
1612
- const { activeQuickStartID, startQuickStart, restartQuickStart } = React__namespace.useContext(QuickStartContext);
1613
- const start = React__namespace.useCallback(() => {
1660
+ const { getResource } = react.useContext(QuickStartContext);
1661
+ const { activeQuickStartID, startQuickStart, restartQuickStart } = react.useContext(QuickStartContext);
1662
+ const start = react.useCallback(() => {
1614
1663
  startQuickStart(quickStartId, totalTasks);
1615
1664
  }, [quickStartId, startQuickStart, totalTasks]);
1616
- const restart = React__namespace.useCallback(() => {
1665
+ const restart = react.useCallback(() => {
1617
1666
  restartQuickStart(quickStartId, totalTasks);
1618
1667
  }, [quickStartId, restartQuickStart, totalTasks]);
1619
- return (React__namespace.createElement(reactCore.Flex, { justifyContent: { default: 'justifyContentSpaceBetween' } },
1620
- status === exports.QuickStartStatus.NOT_STARTED && (React__namespace.createElement(reactCore.FlexItem, null,
1621
- 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')))),
1622
- status === exports.QuickStartStatus.IN_PROGRESS && activeQuickStartID !== quickStartId && (React__namespace.createElement(reactCore.FlexItem, null,
1623
- 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')))),
1624
- status === exports.QuickStartStatus.COMPLETE && (React__namespace.createElement(reactCore.FlexItem, null,
1625
- 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')))),
1626
- status === exports.QuickStartStatus.IN_PROGRESS && (React__namespace.createElement(reactCore.FlexItem, null,
1627
- React__namespace.createElement(reactCore.Button, { onClick: restart, variant: "link", isInline: true, "data-testid": "qs-card-inProgress-restart", id: `${quickStartId}-restart`, "aria-labelledby": `${quickStartId}-restart ${quickStartId}` }, getResource('Restart'))))));
1628
- };
1629
-
1630
- const QuickStartTileFooterExternal = ({ link, quickStartId, }) => {
1668
+ return (jsxRuntime.jsxs(reactCore.Flex, Object.assign({ justifyContent: { default: 'justifyContentSpaceBetween' } }, { children: [status === exports.QuickStartStatus.NOT_STARTED && (jsxRuntime.jsx(reactCore.FlexItem, { children: jsxRuntime.jsx(reactCore.Button, Object.assign({ onClick: start, variant: "link", isInline: true, "data-testid": "qs-card-notStarted-start", id: `${quickStartId}-start`, "aria-labelledby": `${quickStartId}-start ${quickStartId}` }, { children: getResource('Start') })) })), status === exports.QuickStartStatus.IN_PROGRESS && activeQuickStartID !== quickStartId && (jsxRuntime.jsx(reactCore.FlexItem, { children: jsxRuntime.jsx(reactCore.Button, Object.assign({ variant: "link", onClick: onClickContinue, isInline: true, "data-testid": "qs-card-inProgress-resume", id: `${quickStartId}-continue`, "aria-labelledby": `${quickStartId}-continue ${quickStartId}` }, { children: getResource('Continue') })) })), status === exports.QuickStartStatus.COMPLETE && (jsxRuntime.jsx(reactCore.FlexItem, { children: jsxRuntime.jsx(reactCore.Button, Object.assign({ onClick: restart, variant: "link", isInline: true, "data-testid": "qs-card-complete-restart", id: `${quickStartId}-restart`, "aria-labelledby": `${quickStartId}-restart ${quickStartId}` }, { children: getResource('Restart') })) })), status === exports.QuickStartStatus.IN_PROGRESS && (jsxRuntime.jsx(reactCore.FlexItem, { children: jsxRuntime.jsx(reactCore.Button, Object.assign({ onClick: restart, variant: "link", isInline: true, "data-testid": "qs-card-inProgress-restart", id: `${quickStartId}-restart`, "aria-labelledby": `${quickStartId}-restart ${quickStartId}` }, { children: getResource('Restart') })) }))] })));
1669
+ };
1670
+
1671
+ const QuickStartTileFooterExternal = ({ link, quickStartId }) => {
1631
1672
  const { href, text } = link;
1632
- return (React__namespace.createElement(reactCore.Flex, { justifyContent: { default: 'justifyContentSpaceBetween' } },
1633
- React__namespace.createElement(reactCore.FlexItem, null,
1634
- 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))));
1673
+ return (jsxRuntime.jsx(reactCore.Flex, Object.assign({ justifyContent: { default: 'justifyContentSpaceBetween' } }, { children: jsxRuntime.jsx(reactCore.FlexItem, { children: jsxRuntime.jsx(reactCore.Button, Object.assign({ component: "a", href: href, target: "_blank", rel: "noopener noreferrer", variant: "link", "aria-label": `Open documentation in new window`, isInline: true, icon: jsxRuntime.jsx(ExternalLinkAltIcon__default["default"], {}), iconPosition: "right", id: quickStartId, "aria-labelledby": `${quickStartId}-external ${quickStartId}` }, { children: text || href })) }) })));
1635
1674
  };
1636
1675
 
1637
- const QuickStartTileHeader = ({ name, quickStartId, onSelect, }) => (React__namespace.createElement(reactCore.Flex, { flexWrap: { default: 'nowrap' } },
1638
- React__namespace.createElement(reactCore.Button, { "data-test": "title", id: quickStartId, variant: "link", isInline: true, onClick: onSelect }, name)));
1676
+ const QuickStartTileHeader = ({ name, quickStartId, onSelect }) => (jsxRuntime.jsx(reactCore.Flex, Object.assign({ flexWrap: { default: 'nowrap' } }, { children: jsxRuntime.jsx(reactCore.Button, Object.assign({ "data-test": "title", id: quickStartId, variant: "link", isInline: true, onClick: onSelect }, { children: name })) })));
1639
1677
 
1640
1678
  const QuickStartTile = ({ quickStart, status, isActive, onClick = () => { }, action, }) => {
1641
1679
  const { metadata: { name: id }, spec: { icon, tasks, displayName, description, durationMinutes, prerequisites, link, type }, } = quickStart;
1642
- const { setActiveQuickStart, footer, getResource } = React__namespace.useContext(QuickStartContext);
1680
+ const { setActiveQuickStart, footer, getResource } = react.useContext(QuickStartContext);
1643
1681
  const statusColorMap = {
1644
1682
  [exports.QuickStartStatus.COMPLETE]: 'green',
1645
1683
  [exports.QuickStartStatus.IN_PROGRESS]: 'purple',
@@ -1652,11 +1690,10 @@ const QuickStartTile = ({ quickStart, status, isActive, onClick = () => { }, act
1652
1690
  };
1653
1691
  let quickStartIcon;
1654
1692
  if (typeof icon === 'object') {
1655
- quickStartIcon = React__namespace.createElement(reactCore.Icon, { size: "2xl" }, icon);
1693
+ quickStartIcon = jsxRuntime.jsx(reactCore.Icon, Object.assign({ size: "2xl" }, { children: icon }));
1656
1694
  }
1657
1695
  else {
1658
- quickStartIcon = (React__namespace.createElement(reactCore.Icon, { size: "2xl" },
1659
- React__namespace.createElement(FallbackImg, { src: icon, alt: "", className: "pfext-catalog-item-icon__img", fallback: React__namespace.createElement(RocketIcon__default["default"], null) })));
1696
+ quickStartIcon = (jsxRuntime.jsx(reactCore.Icon, Object.assign({ size: "2xl" }, { children: jsxRuntime.jsx(FallbackImg, { src: icon, alt: "", className: "pfext-catalog-item-icon__img", fallback: jsxRuntime.jsx(RocketIcon__default["default"], {}) }) })));
1660
1697
  }
1661
1698
  const onSelect = () => {
1662
1699
  if (!link) {
@@ -1667,70 +1704,53 @@ const QuickStartTile = ({ quickStart, status, isActive, onClick = () => { }, act
1667
1704
  }
1668
1705
  onClick();
1669
1706
  };
1670
- const footerComponent = React__namespace.useMemo(() => {
1707
+ const footerComponent = react.useMemo(() => {
1671
1708
  if (footer && footer.show === false) {
1672
1709
  return null;
1673
1710
  }
1674
1711
  if (link) {
1675
- return React__namespace.createElement(QuickStartTileFooterExternal, { link: link, quickStartId: id });
1712
+ return jsxRuntime.jsx(QuickStartTileFooterExternal, { link: link, quickStartId: id });
1676
1713
  }
1677
- return (React__namespace.createElement(QuickStartTileFooter, { quickStartId: id, status: status, totalTasks: tasks === null || tasks === void 0 ? void 0 : tasks.length, onClickContinue: onSelect }));
1714
+ return (jsxRuntime.jsx(QuickStartTileFooter, { quickStartId: id, status: status, totalTasks: tasks === null || tasks === void 0 ? void 0 : tasks.length, onClickContinue: onSelect }));
1678
1715
  }, [footer, id, link, status, tasks === null || tasks === void 0 ? void 0 : tasks.length]);
1679
1716
  const ActionIcon = (action === null || action === void 0 ? void 0 : action.icon) || OutlinedBookmarkIcon__default["default"];
1680
- 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;
1681
- return (React__namespace.createElement(reactCore.Card, Object.assign({ id: `${id}-catalog-tile`, style: { height: '100%' }, "data-testid": `qs-card-${camelize(displayName)}`, className: "pfext-catalog-item" }, (isActive && {
1717
+ const additionalAction = action ? (jsxRuntime.jsx(reactCore.Button, Object.assign({ "aria-label": action['aria-label'], icon: jsxRuntime.jsx(ActionIcon, {}), variant: "plain", onClick: action.onClick }, action.buttonProps))) : undefined;
1718
+ return (jsxRuntime.jsxs(reactCore.Card, Object.assign({ id: `${id}-catalog-tile`, style: { height: '100%' }, "data-testid": `qs-card-${camelize(displayName)}`, className: "pfext-catalog-item" }, (isActive && {
1682
1719
  isClickable: true,
1683
1720
  isSelectable: true,
1684
1721
  isSelected: true,
1685
1722
  isClicked: true,
1686
- })),
1687
- React__namespace.createElement(reactCore.CardHeader, Object.assign({}, (action && {
1688
- actions: { actions: additionalAction },
1689
- })), quickStartIcon),
1690
- React__namespace.createElement(reactCore.CardTitle, null,
1691
- React__namespace.createElement(QuickStartTileHeader, { name: displayName, onSelect: onSelect, quickStartId: id })),
1692
- React__namespace.createElement(reactCore.CardBody, null,
1693
- React__namespace.createElement(reactCore.Stack, { hasGutter: true },
1694
- React__namespace.createElement(reactCore.Flex, { spaceItems: { default: 'spaceItemsSm' } },
1695
- type && React__namespace.createElement(reactCore.Label, { color: type.color }, type.text),
1696
- 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))),
1697
- 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]))),
1698
- React__namespace.createElement(QuickStartTileDescription, { description: description, prerequisites: prerequisites }))),
1699
- React__namespace.createElement(reactCore.CardFooter, null, footerComponent)));
1723
+ }), { children: [jsxRuntime.jsx(reactCore.CardHeader, Object.assign({}, (action && {
1724
+ actions: { actions: additionalAction },
1725
+ }), { children: quickStartIcon })), jsxRuntime.jsx(reactCore.CardTitle, { children: jsxRuntime.jsx(QuickStartTileHeader, { name: displayName, onSelect: onSelect, quickStartId: id }) }), jsxRuntime.jsx(reactCore.CardBody, { children: jsxRuntime.jsxs(reactCore.Stack, Object.assign({ hasGutter: true }, { children: [jsxRuntime.jsxs(reactCore.Flex, Object.assign({ spaceItems: { default: 'spaceItemsSm' } }, { children: [type && jsxRuntime.jsx(reactCore.Label, Object.assign({ color: type.color }, { children: type.text })), durationMinutes && (jsxRuntime.jsx(reactCore.Label, Object.assign({ variant: "outline", "data-test": "duration", icon: jsxRuntime.jsx(OutlinedClockIcon__default["default"], {}) }, { children: getResource('{{duration, number}} minutes', durationMinutes).replace('{{duration, number}}', durationMinutes) }))), status !== exports.QuickStartStatus.NOT_STARTED && (jsxRuntime.jsx(reactCore.Label, Object.assign({ variant: "outline", color: statusColorMap[status], icon: jsxRuntime.jsx(StatusIcon, { status: status }), "data-test": "status" }, { children: statusLocaleMap[status] })))] })), jsxRuntime.jsx(QuickStartTileDescription, { description: description, prerequisites: prerequisites })] })) }), jsxRuntime.jsx(reactCore.CardFooter, { children: footerComponent })] })));
1700
1726
  };
1701
1727
 
1702
1728
  const QuickStartCatalog = ({ quickStarts }) => {
1703
- const { activeQuickStartID, allQuickStartStates } = React__namespace.useContext(QuickStartContext);
1704
- return (React__namespace.createElement("div", null,
1705
- React__namespace.createElement(reactCore.Gallery, { hasGutter: true, className: "pfext-quick-start-catalog__gallery" }, quickStarts.map((quickStart, index) => {
1706
- const { metadata: { name: id }, } = quickStart;
1707
- return (React__namespace.createElement(QuickStartTile, { key: index, quickStart: quickStart, isActive: id === activeQuickStartID, status: getQuickStartStatus(allQuickStartStates, id) }));
1708
- }))));
1729
+ const { activeQuickStartID, allQuickStartStates } = react.useContext(QuickStartContext);
1730
+ return (jsxRuntime.jsx("div", { children: jsxRuntime.jsx(reactCore.Gallery, Object.assign({ hasGutter: true, className: "pfext-quick-start-catalog__gallery" }, { children: quickStarts.map((quickStart, index) => {
1731
+ const { metadata: { name: id }, } = quickStart;
1732
+ return (jsxRuntime.jsx(QuickStartTile, { quickStart: quickStart, isActive: id === activeQuickStartID, status: getQuickStartStatus(allQuickStartStates, id) }, index));
1733
+ }) })) }));
1709
1734
  };
1710
1735
 
1711
1736
  const QuickStartCatalogFilterSearch = (_a) => {
1712
1737
  var { searchInputText, handleTextChange } = _a, props = tslib.__rest(_a, ["searchInputText", "handleTextChange"]);
1713
- const { getResource } = React__namespace.useContext(QuickStartContext);
1714
- return (React__namespace.createElement(reactCore.ToolbarItem, null,
1715
- React__namespace.createElement(reactCore.SearchInput, Object.assign({ placeholder: getResource('Filter by keyword...'), value: searchInputText, onChange: (_ev, value) => handleTextChange(value), onClear: () => handleTextChange('') }, props))));
1738
+ const { getResource } = react.useContext(QuickStartContext);
1739
+ return (jsxRuntime.jsx(reactCore.ToolbarItem, { children: jsxRuntime.jsx(reactCore.SearchInput, Object.assign({ placeholder: getResource('Filter by keyword...'), value: searchInputText, onChange: (_ev, value) => handleTextChange(value), onClear: () => handleTextChange('') }, props)) }));
1716
1740
  };
1717
1741
  const QuickStartCatalogFilterSelect = (_a) => {
1718
1742
  var { isDropdownOpen, setIsDropdownOpen, onRowfilterSelect, selectedFilters, dropdownItems } = _a, props = tslib.__rest(_a, ["isDropdownOpen", "setIsDropdownOpen", "onRowfilterSelect", "selectedFilters", "dropdownItems"]);
1719
- const { getResource } = React__namespace.useContext(QuickStartContext);
1720
- const toggle = (toggleRef) => (React__namespace.createElement(reactCore.MenuToggle, { isFullWidth: true, ref: toggleRef, onClick: () => setIsDropdownOpen(!isDropdownOpen), isExpanded: isDropdownOpen },
1721
- getResource('Status'),
1722
- selectedFilters.length > 0 && React__namespace.createElement(reactCore.Badge, { isRead: true }, selectedFilters.length)));
1723
- return (React__namespace.createElement(reactCore.ToolbarItem, null,
1724
- React__namespace.createElement(reactCore.Select, Object.assign({ "aria-label": getResource('Select filter'), isOpen: isDropdownOpen, selected: selectedFilters, onSelect: onRowfilterSelect, onOpenChange: (isOpen) => setIsDropdownOpen(isOpen), toggle: toggle }, props),
1725
- React__namespace.createElement(reactCore.SelectList, null, dropdownItems))));
1743
+ const { getResource } = react.useContext(QuickStartContext);
1744
+ const toggle = (toggleRef) => (jsxRuntime.jsxs(reactCore.MenuToggle, Object.assign({ isFullWidth: true, ref: toggleRef, onClick: () => setIsDropdownOpen(!isDropdownOpen), isExpanded: isDropdownOpen }, { children: [getResource('Status'), selectedFilters.length > 0 && jsxRuntime.jsx(reactCore.Badge, Object.assign({ isRead: true }, { children: selectedFilters.length }))] })));
1745
+ return (jsxRuntime.jsx(reactCore.ToolbarItem, { children: jsxRuntime.jsx(reactCore.Select, Object.assign({ "aria-label": getResource('Select filter'), isOpen: isDropdownOpen, selected: selectedFilters, onSelect: onRowfilterSelect, onOpenChange: (isOpen) => setIsDropdownOpen(isOpen), toggle: toggle }, props, { children: jsxRuntime.jsx(reactCore.SelectList, { children: dropdownItems }) })) }));
1726
1746
  };
1727
1747
  const QuickStartCatalogFilterCount = ({ quickStartsCount }) => {
1728
- const { getResource } = React__namespace.useContext(QuickStartContext);
1729
- return (React__namespace.createElement(reactCore.ToolbarItem, { align: { default: 'alignEnd' } }, getResource('{{count, number}} item', quickStartsCount).replace('{{count, number}}', quickStartsCount)));
1748
+ const { getResource } = react.useContext(QuickStartContext);
1749
+ return (jsxRuntime.jsx(reactCore.ToolbarItem, Object.assign({ align: { default: 'alignEnd' } }, { children: getResource("{{count, number}} item", quickStartsCount).replace('{{count, number}}', quickStartsCount) })));
1730
1750
  };
1731
1751
  const QuickStartCatalogFilterSearchWrapper = ({ onSearchInputChange = () => { } }) => {
1732
- const { useQueryParams, filter, setFilter } = React__namespace.useContext(QuickStartContext);
1733
- React__namespace.useEffect(() => {
1752
+ const { useQueryParams, filter, setFilter } = react.useContext(QuickStartContext);
1753
+ react.useEffect(() => {
1734
1754
  // use this effect to clear the search when a `clear all` action is performed higher up
1735
1755
  const unlisten = history.listen(({ location }) => {
1736
1756
  const searchParams = new URLSearchParams(location.search);
@@ -1756,7 +1776,7 @@ const QuickStartCatalogFilterSearchWrapper = ({ onSearchInputChange = () => { }
1756
1776
  }
1757
1777
  onSearchInputChange(val);
1758
1778
  };
1759
- return (React__namespace.createElement(QuickStartCatalogFilterSearch, { searchInputText: filter === null || filter === void 0 ? void 0 : filter.keyword, handleTextChange: handleTextChange }));
1779
+ return (jsxRuntime.jsx(QuickStartCatalogFilterSearch, { searchInputText: filter === null || filter === void 0 ? void 0 : filter.keyword, handleTextChange: handleTextChange }));
1760
1780
  };
1761
1781
  // compare string/number arrays
1762
1782
  const equalsIgnoreOrder = (a, b) => {
@@ -1774,8 +1794,8 @@ const equalsIgnoreOrder = (a, b) => {
1774
1794
  return true;
1775
1795
  };
1776
1796
  const QuickStartCatalogFilterStatusWrapper = ({ onStatusChange = () => { } }) => {
1777
- const { useQueryParams, filter, setFilter } = React__namespace.useContext(QuickStartContext);
1778
- React__namespace.useEffect(() => {
1797
+ const { useQueryParams, filter, setFilter } = react.useContext(QuickStartContext);
1798
+ react.useEffect(() => {
1779
1799
  // use this effect to clear the status when a `clear all` action is performed higher up
1780
1800
  const unlisten = history.listen(({ location }) => {
1781
1801
  var _a;
@@ -1790,8 +1810,8 @@ const QuickStartCatalogFilterStatusWrapper = ({ onStatusChange = () => { } }) =>
1790
1810
  unlisten();
1791
1811
  };
1792
1812
  });
1793
- const [isDropdownOpen, setIsDropdownOpen] = React__namespace.useState(false);
1794
- const onRowfilterSelect = React__namespace.useCallback((_e, selectedValue) => {
1813
+ const [isDropdownOpen, setIsDropdownOpen] = react.useState(false);
1814
+ const onRowfilterSelect = react.useCallback((_e, selectedValue) => {
1795
1815
  setIsDropdownOpen(false);
1796
1816
  const selection = Object.entries(filter.status.statusTypes).find(([_key, value]) => value === selectedValue)[0];
1797
1817
  const selectedFiltersList = filter.status.statusFilters.includes(selection)
@@ -1808,33 +1828,24 @@ const QuickStartCatalogFilterStatusWrapper = ({ onStatusChange = () => { } }) =>
1808
1828
  }
1809
1829
  onStatusChange(selectedFiltersList);
1810
1830
  }, [filter.status.statusFilters, onStatusChange, setFilter, useQueryParams]);
1811
- const dropdownItems = Object.entries(filter.status.statusTypes).map(([key, value]) => (React__namespace.createElement(reactCore.SelectOption, { key: key, "data-key": key, value: value, hasCheckbox: true, isSelected: filter.status.statusFilters.includes(key) },
1812
- React__namespace.createElement(React__namespace.Fragment, null, value))));
1813
- return (React__namespace.createElement(QuickStartCatalogFilterSelect, { isDropdownOpen: isDropdownOpen, setIsDropdownOpen: setIsDropdownOpen, onRowfilterSelect: onRowfilterSelect, selectedFilters: filter.status.statusFilters, dropdownItems: dropdownItems }));
1831
+ const dropdownItems = Object.entries(filter.status.statusTypes).map(([key, value]) => (jsxRuntime.jsx(reactCore.SelectOption, Object.assign({ "data-key": key, value: value, hasCheckbox: true, isSelected: filter.status.statusFilters.includes(key) }, { children: jsxRuntime.jsx(jsxRuntime.Fragment, { children: value }) }), key)));
1832
+ return (jsxRuntime.jsx(QuickStartCatalogFilterSelect, { isDropdownOpen: isDropdownOpen, setIsDropdownOpen: setIsDropdownOpen, onRowfilterSelect: onRowfilterSelect, selectedFilters: filter.status.statusFilters, dropdownItems: dropdownItems }));
1814
1833
  };
1815
- const QuickStartCatalogFilterCountWrapper = ({ quickStartsCount }) => React__namespace.createElement(QuickStartCatalogFilterCount, { quickStartsCount: quickStartsCount });
1834
+ const QuickStartCatalogFilterCountWrapper = ({ quickStartsCount, }) => jsxRuntime.jsx(QuickStartCatalogFilterCount, { quickStartsCount: quickStartsCount });
1816
1835
 
1817
1836
  const QuickStartCatalogFilter = (_a) => {
1818
1837
  var { quickStartsCount, onSearchInputChange = () => { }, onStatusChange = () => { } } = _a, props = tslib.__rest(_a, ["quickStartsCount", "onSearchInputChange", "onStatusChange"]);
1819
- return (React__namespace.createElement(reactCore.Toolbar, Object.assign({}, props),
1820
- React__namespace.createElement(reactCore.ToolbarContent, null,
1821
- React__namespace.createElement(QuickStartCatalogFilterSearchWrapper, { onSearchInputChange: onSearchInputChange }),
1822
- React__namespace.createElement(QuickStartCatalogFilterStatusWrapper, { onStatusChange: onStatusChange }),
1823
- React__namespace.createElement(QuickStartCatalogFilterCountWrapper, { quickStartsCount: quickStartsCount }))));
1838
+ return (jsxRuntime.jsx(reactCore.Toolbar, Object.assign({}, props, { children: jsxRuntime.jsxs(reactCore.ToolbarContent, { children: [jsxRuntime.jsx(QuickStartCatalogFilterSearchWrapper, { onSearchInputChange: onSearchInputChange }), jsxRuntime.jsx(QuickStartCatalogFilterStatusWrapper, { onStatusChange: onStatusChange }), jsxRuntime.jsx(QuickStartCatalogFilterCountWrapper, { quickStartsCount: quickStartsCount })] }) })));
1824
1839
  };
1825
1840
 
1826
1841
  const QuickStartCatalogEmptyState = ({ clearFilters }) => {
1827
- const { getResource } = React__namespace.useContext(QuickStartContext);
1828
- return (React__namespace.createElement(reactCore.EmptyState, { headingLevel: "h4", icon: SearchIcon__default["default"], titleText: React__namespace.createElement(React__namespace.Fragment, null, getResource('No results found')) },
1829
- React__namespace.createElement(reactCore.EmptyStateBody, null, getResource('No results match the filter criteria. Remove filters or clear all filters to show results.')),
1830
- React__namespace.createElement(reactCore.EmptyStateFooter, null,
1831
- React__namespace.createElement(reactCore.EmptyStateActions, null,
1832
- React__namespace.createElement(reactCore.Button, { variant: "link", onClick: clearFilters, "data-test": "clear-filter button" }, getResource('Clear all filters'))))));
1842
+ const { getResource } = react.useContext(QuickStartContext);
1843
+ return (jsxRuntime.jsxs(reactCore.EmptyState, Object.assign({ headingLevel: "h4", icon: SearchIcon__default["default"], titleText: jsxRuntime.jsx(jsxRuntime.Fragment, { children: getResource('No results found') }) }, { children: [jsxRuntime.jsx(reactCore.EmptyStateBody, { children: getResource('No results match the filter criteria. Remove filters or clear all filters to show results.') }), jsxRuntime.jsx(reactCore.EmptyStateFooter, { children: jsxRuntime.jsx(reactCore.EmptyStateActions, { children: jsxRuntime.jsx(reactCore.Button, Object.assign({ variant: "link", onClick: clearFilters, "data-test": "clear-filter button" }, { children: getResource('Clear all filters') })) }) })] })));
1833
1844
  };
1834
1845
  const QuickStartCatalogPage = ({ quickStarts, showFilter, sortFnc = (q1, q2) => q1.spec.displayName.localeCompare(q2.spec.displayName), title, hint, showTitle = true, }) => {
1835
- const sortFncCallback = React__namespace.useCallback(sortFnc, [sortFnc]);
1836
- const { allQuickStarts = [], setAllQuickStarts, allQuickStartStates, getResource, filter, setFilter, loading, } = React__namespace.useContext(QuickStartContext);
1837
- React__namespace.useEffect(() => {
1846
+ const sortFncCallback = react.useCallback(sortFnc, [sortFnc]);
1847
+ const { allQuickStarts = [], setAllQuickStarts, allQuickStartStates, getResource, filter, setFilter, loading, } = react.useContext(QuickStartContext);
1848
+ react.useEffect(() => {
1838
1849
  // passed through prop, not context
1839
1850
  if (quickStarts && JSON.stringify(quickStarts) !== JSON.stringify(allQuickStarts)) {
1840
1851
  setAllQuickStarts(quickStarts);
@@ -1843,8 +1854,8 @@ const QuickStartCatalogPage = ({ quickStarts, showFilter, sortFnc = (q1, q2) =>
1843
1854
  const initialFilteredQuickStarts = showFilter
1844
1855
  ? filterQuickStarts(allQuickStarts, filter.keyword, filter.status.statusFilters, allQuickStartStates).sort(sortFncCallback)
1845
1856
  : allQuickStarts;
1846
- const [filteredQuickStarts, setFilteredQuickStarts] = React__namespace.useState(initialFilteredQuickStarts);
1847
- React__namespace.useEffect(() => {
1857
+ const [filteredQuickStarts, setFilteredQuickStarts] = react.useState(initialFilteredQuickStarts);
1858
+ react.useEffect(() => {
1848
1859
  const filteredQs = showFilter
1849
1860
  ? filterQuickStarts(allQuickStarts, filter.keyword, filter.status.statusFilters, allQuickStartStates).sort(sortFncCallback)
1850
1861
  : allQuickStarts;
@@ -1887,59 +1898,37 @@ const QuickStartCatalogPage = ({ quickStarts, showFilter, sortFnc = (q1, q2) =>
1887
1898
  }
1888
1899
  };
1889
1900
  if (loading) {
1890
- return React__namespace.createElement(LoadingBox, null);
1901
+ return jsxRuntime.jsx(LoadingBox, {});
1891
1902
  }
1892
1903
  if (!allQuickStarts || allQuickStarts.length === 0) {
1893
- return React__namespace.createElement(EmptyBox, { label: getResource('Quick Starts') });
1904
+ return jsxRuntime.jsx(EmptyBox, { label: getResource('Quick Starts') });
1894
1905
  }
1895
- return (React__namespace.createElement(React__namespace.Fragment, null,
1896
- (showTitle || showFilter) && (React__namespace.createElement(reactCore.PageSection, { hasBodyWrapper: false },
1897
- showTitle && (React__namespace.createElement(reactCore.Content, { isEditorial: true },
1898
- React__namespace.createElement(reactCore.Title, { headingLevel: "h1", "data-test": "page-title" }, title || getResource('Quick Starts')),
1899
- hint && React__namespace.createElement("div", null, hint))),
1900
- showTitle && React__namespace.createElement(reactCore.Divider, { component: "div" }),
1901
- showFilter && (React__namespace.createElement(React__namespace.Fragment, null,
1902
- React__namespace.createElement(QuickStartCatalogFilter, { quickStartsCount: filteredQuickStarts.length, onSearchInputChange: onSearchInputChange, onStatusChange: onStatusChange }))))),
1903
- React__namespace.createElement(reactCore.PageSection, { hasBodyWrapper: false }, filteredQuickStarts.length === 0 ? (React__namespace.createElement(QuickStartCatalogEmptyState, { clearFilters: clearFilters })) : (React__namespace.createElement(QuickStartCatalog, { quickStarts: filteredQuickStarts })))));
1906
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [(showTitle || showFilter) && (jsxRuntime.jsxs(reactCore.PageSection, Object.assign({ hasBodyWrapper: false }, { children: [showTitle && (jsxRuntime.jsxs(reactCore.Content, Object.assign({ isEditorial: true }, { children: [jsxRuntime.jsx(reactCore.Title, Object.assign({ headingLevel: "h1", "data-test": "page-title" }, { children: title || getResource('Quick Starts') })), hint && jsxRuntime.jsx("div", { children: hint })] }))), showTitle && jsxRuntime.jsx(reactCore.Divider, { component: "div" }), showFilter && (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx(QuickStartCatalogFilter, { quickStartsCount: filteredQuickStarts.length, onSearchInputChange: onSearchInputChange, onStatusChange: onStatusChange }) }))] }))), jsxRuntime.jsx(reactCore.PageSection, Object.assign({ hasBodyWrapper: false }, { children: filteredQuickStarts.length === 0 ? (jsxRuntime.jsx(QuickStartCatalogEmptyState, { clearFilters: clearFilters })) : (jsxRuntime.jsx(QuickStartCatalog, { quickStarts: filteredQuickStarts })) }))] }));
1904
1907
  };
1905
1908
 
1906
- const QuickStartCatalogHeader = ({ title, hint, }) => (React__namespace.createElement("div", null,
1907
- React__namespace.createElement(reactCore.Title, { headingLevel: "h1", "data-pf-content": "true" }, title),
1908
- hint && React__namespace.createElement("div", null, hint)));
1909
+ const QuickStartCatalogHeader = ({ title, hint, }) => (jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx(reactCore.Title, Object.assign({ headingLevel: "h1", "data-pf-content": "true" }, { children: title })), hint && jsxRuntime.jsx("div", { children: hint })] }));
1909
1910
 
1910
- const QuickStartCatalogSection = ({ children }) => (React__namespace.createElement("div", null, children));
1911
+ const QuickStartCatalogSection = ({ children }) => (jsxRuntime.jsx("div", { children: children }));
1911
1912
 
1912
- const QuickStartCatalogToolbar = ({ children }) => (React__namespace.createElement(reactCore.Toolbar, null, children));
1913
+ const QuickStartCatalogToolbar = ({ children }) => (jsxRuntime.jsx(reactCore.Toolbar, { children: children }));
1913
1914
 
1914
- const QuickStartCloseModal = ({ isOpen, onConfirm, onCancel, }) => {
1915
- const { getResource } = React__namespace.useContext(QuickStartContext);
1916
- 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,
1917
- React__namespace.createElement(reactCore.FlexItem, { align: { default: 'alignRight' } },
1918
- React__namespace.createElement(reactCore.Button, { variant: "secondary", "data-test": "cancel button", onClick: onCancel }, getResource('Cancel'))),
1919
- React__namespace.createElement(reactCore.FlexItem, null,
1920
- React__namespace.createElement(reactCore.Button, { variant: "primary", "data-test": "leave button", onClick: onConfirm }, getResource('Leave')))), isFullScreen: true }, getResource('Your progress will be saved.')));
1915
+ const QuickStartCloseModal = ({ isOpen, onConfirm, onCancel }) => {
1916
+ const { getResource } = react.useContext(QuickStartContext);
1917
+ return (jsxRuntime.jsx(Modal, Object.assign({ isOpen: isOpen, variant: deprecated.ModalVariant.small, showClose: false, "data-test": "leave-quickstart", title: getResource('Leave quick start?'), footer: jsxRuntime.jsxs(reactCore.Flex, { children: [jsxRuntime.jsx(reactCore.FlexItem, Object.assign({ align: { default: 'alignRight' } }, { children: jsxRuntime.jsx(reactCore.Button, Object.assign({ variant: "secondary", "data-test": "cancel button", onClick: onCancel }, { children: getResource('Cancel') })) })), jsxRuntime.jsx(reactCore.FlexItem, { children: jsxRuntime.jsx(reactCore.Button, Object.assign({ variant: "primary", "data-test": "leave button", onClick: onConfirm }, { children: getResource('Leave') })) })] }), isFullScreen: true }, { children: getResource('Your progress will be saved.') })));
1921
1918
  };
1922
1919
 
1923
1920
  const QuickStartTaskHeader = ({ title, taskIndex, subtitle, taskStatus, size, isActiveTask, onTaskSelect, children, }) => {
1924
- const titleRef = React__namespace.useRef(null);
1925
- const { focusOnQuickStart } = React__namespace.useContext(QuickStartContext);
1926
- React__namespace.useEffect(() => {
1921
+ const titleRef = react.useRef(null);
1922
+ const { focusOnQuickStart } = react.useContext(QuickStartContext);
1923
+ react.useEffect(() => {
1927
1924
  if (focusOnQuickStart && isActiveTask) {
1928
1925
  // Focus the WizardNavItem button element that contains the title
1929
1926
  titleRef.current.parentNode.focus();
1930
1927
  }
1931
1928
  }, [focusOnQuickStart, isActiveTask]);
1932
1929
  const failedReview = taskStatus === exports.QuickStartTaskStatus.FAILED;
1933
- const tryAgain = failedReview && (React__namespace.createElement(React__namespace.Fragment, null,
1934
- React__namespace.createElement("div", null),
1935
- React__namespace.createElement("div", { className: "pfext-quick-start-task-header__tryagain" }, "Try the steps again.")));
1936
- const content = (React__namespace.createElement("div", { ref: titleRef },
1937
- React__namespace.createElement(reactCore.Title, { headingLevel: "h3", size: size },
1938
- React__namespace.createElement("span", { className: "pfext-quick-start-task-header__title" }, title),
1939
- isActiveTask && subtitle && (React__namespace.createElement("span", null,
1940
- ' ',
1941
- React__namespace.createElement("span", { "data-test-id": "quick-start-task-subtitle", className: "pfext-quick-start-task-header__subtitle" }, subtitle))),
1942
- tryAgain)));
1930
+ const tryAgain = failedReview && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", {}), jsxRuntime.jsx("div", Object.assign({ className: "pfext-quick-start-task-header__tryagain" }, { children: "Try the steps again." }))] }));
1931
+ const content = (jsxRuntime.jsx("div", Object.assign({ ref: titleRef }, { children: jsxRuntime.jsxs(reactCore.Title, Object.assign({ headingLevel: "h3", size: size }, { children: [jsxRuntime.jsx("span", Object.assign({ className: "pfext-quick-start-task-header__title" }, { children: title })), isActiveTask && subtitle && (jsxRuntime.jsxs("span", { children: [' ', jsxRuntime.jsx("span", Object.assign({ "data-test-id": "quick-start-task-subtitle", className: "pfext-quick-start-task-header__subtitle" }, { children: subtitle }))] })), tryAgain] })) })));
1943
1932
  let status = 'default';
1944
1933
  if (taskStatus === exports.QuickStartTaskStatus.FAILED) {
1945
1934
  status = 'error';
@@ -1947,42 +1936,31 @@ const QuickStartTaskHeader = ({ title, taskIndex, subtitle, taskStatus, size, is
1947
1936
  else if (taskStatus === exports.QuickStartTaskStatus.SUCCESS) {
1948
1937
  status = 'success';
1949
1938
  }
1950
- return (React__namespace.createElement(reactCore.WizardNavItem, { content: content, stepIndex: taskIndex, onClick: () => onTaskSelect(taskIndex - 1), component: "button", isCurrent: isActiveTask, status: status, className: "pfext-quick-start-task-header" }, children));
1939
+ return (jsxRuntime.jsx(reactCore.WizardNavItem, Object.assign({ content: content, stepIndex: taskIndex, onClick: () => onTaskSelect(taskIndex - 1), component: "button", isCurrent: isActiveTask, status: status, className: "pfext-quick-start-task-header" }, { children: children })));
1951
1940
  };
1952
1941
 
1953
- const QuickStartTaskHeaderList = ({ tasks, allTaskStatuses, onTaskSelect, }) => (tasks === null || tasks === void 0 ? void 0 : tasks.length) > 0 ? (React__namespace.createElement("ul", { className: "pf-v6-c-wizard 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 ? (jsxRuntime.jsx("ul", Object.assign({ className: "pf-v6-c-wizard pf-v6-c-wizard__nav-list" }, { children: tasks.map((task, index) => (jsxRuntime.jsx(QuickStartTaskHeader, { title: task.title, taskIndex: index + 1, size: "md", taskStatus: allTaskStatuses[index], onTaskSelect: onTaskSelect }, task.title))) }))) : null;
1954
1943
 
1955
1944
  const QuickStartConclusion = ({ tasks, conclusion, allTaskStatuses, nextQuickStarts, onQuickStartChange, onTaskSelect, }) => {
1956
1945
  const hasFailedTask = allTaskStatuses.includes(exports.QuickStartTaskStatus.FAILED);
1957
- const { getResource } = React__namespace.useContext(QuickStartContext);
1958
- return (React__namespace.createElement(React__namespace.Fragment, null,
1959
- React__namespace.createElement(QuickStartTaskHeaderList, { tasks: tasks, allTaskStatuses: allTaskStatuses, onTaskSelect: onTaskSelect }),
1960
- React__namespace.createElement(QuickStartMarkdownView, { content: hasFailedTask
1961
- ? getResource('One or more verifications did not pass during this quick start. Revisit the tasks or the help links, and then try again.')
1962
- : conclusion }),
1963
- !hasFailedTask &&
1964
- nextQuickStarts &&
1965
- nextQuickStarts.length > 0 &&
1966
- nextQuickStarts.map((nextQuickStart, index) => {
1967
- var _a;
1968
- 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)));
1969
- })));
1946
+ const { getResource } = react.useContext(QuickStartContext);
1947
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(QuickStartTaskHeaderList, { tasks: tasks, allTaskStatuses: allTaskStatuses, onTaskSelect: onTaskSelect }), jsxRuntime.jsx(QuickStartMarkdownView, { content: hasFailedTask
1948
+ ? getResource('One or more verifications did not pass during this quick start. Revisit the tasks or the help links, and then try again.')
1949
+ : conclusion }), !hasFailedTask &&
1950
+ nextQuickStarts &&
1951
+ nextQuickStarts.length > 0 &&
1952
+ nextQuickStarts.map((nextQuickStart, index) => {
1953
+ var _a;
1954
+ return (jsxRuntime.jsx(reactCore.Button, Object.assign({ variant: "link", onClick: () => onQuickStartChange(nextQuickStart.metadata.name), isInline: true, icon: jsxRuntime.jsx(ArrowRightIcon__default["default"], {}), iconPosition: "end", isBlock: true, style: { marginTop: 'var(--pf-t--global--spacer--md' } }, { children: 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) }), index));
1955
+ })] }));
1970
1956
  };
1971
1957
 
1972
1958
  const QuickStartIntroduction = ({ tasks, introduction, allTaskStatuses, prerequisites, onTaskSelect, }) => {
1973
- const { getResource } = React__namespace.useContext(QuickStartContext);
1959
+ const { getResource } = react.useContext(QuickStartContext);
1974
1960
  const prereqs = prerequisites === null || prerequisites === void 0 ? void 0 : prerequisites.filter((p) => p);
1975
- const [isPrereqsExpanded, setIsPrereqsExpanded] = React__namespace.useState(false);
1976
- 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) },
1977
- React__namespace.createElement(reactCore.List, null, prereqs.map((pr) => (React__namespace.createElement(reactCore.ListItem, { key: pr },
1978
- React__namespace.createElement(QuickStartMarkdownView, { content: pr })))))));
1979
- return (React__namespace.createElement(reactCore.Stack, { hasGutter: true },
1980
- React__namespace.createElement(QuickStartMarkdownView, { content: introduction }),
1981
- prereqList,
1982
- React__namespace.createElement("p", null,
1983
- 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),
1984
- ":"),
1985
- React__namespace.createElement(QuickStartTaskHeaderList, { tasks: tasks, allTaskStatuses: allTaskStatuses, onTaskSelect: onTaskSelect })));
1961
+ const [isPrereqsExpanded, setIsPrereqsExpanded] = react.useState(false);
1962
+ const prereqList = (prereqs === null || prereqs === void 0 ? void 0 : prereqs.length) > 0 && (jsxRuntime.jsx(reactCore.ExpandableSection, Object.assign({ toggleText: getResource('View Prerequisites ({{totalPrereqs}})').replace('{{totalPrereqs}}', prereqs.length), onToggle: () => setIsPrereqsExpanded(!isPrereqsExpanded) }, { children: jsxRuntime.jsx(reactCore.List, { children: prereqs.map((pr) => (jsxRuntime.jsx(reactCore.ListItem, { children: jsxRuntime.jsx(QuickStartMarkdownView, { content: pr }) }, pr))) }) })));
1963
+ return (jsxRuntime.jsxs(reactCore.Stack, Object.assign({ hasGutter: true }, { children: [jsxRuntime.jsx(QuickStartMarkdownView, { content: introduction }), prereqList, jsxRuntime.jsxs("p", { children: [getResource('In this quick start, you will complete {{count, number}} task', (tasks === null || tasks === void 0 ? void 0 : tasks.length) || 0).replace('{{count, number}}', (tasks === null || tasks === void 0 ? void 0 : tasks.length) || 0), ":"] }), jsxRuntime.jsx(QuickStartTaskHeaderList, { tasks: tasks, allTaskStatuses: allTaskStatuses, onTaskSelect: onTaskSelect })] })));
1986
1964
  };
1987
1965
 
1988
1966
  const getAlertVariant = (status) => {
@@ -1997,64 +1975,52 @@ const getAlertVariant = (status) => {
1997
1975
  };
1998
1976
  const QuickStartTaskReview = ({ review, taskStatus, onTaskReview, }) => {
1999
1977
  const { instructions, failedTaskHelp: taskHelp } = review;
2000
- const { getResource } = React__namespace.useContext(QuickStartContext);
2001
- return (React__namespace.createElement(reactCore.Alert, { variant: getAlertVariant(taskStatus), title: getResource('Check your work'), isInline: true, role: "alert", style: {
1978
+ const { getResource } = react.useContext(QuickStartContext);
1979
+ return (jsxRuntime.jsxs(reactCore.Alert, Object.assign({ variant: getAlertVariant(taskStatus), title: getResource('Check your work'), isInline: true, role: "alert", style: {
2002
1980
  marginBottom: 'var(--pf-t--global--spacer--md)',
2003
- } },
2004
- React__namespace.createElement(QuickStartMarkdownView, { content: instructions }),
2005
- React__namespace.createElement("span", { className: "pfext-quick-start-task-review__actions" },
2006
- 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) }),
2007
- React__namespace.createElement(reactCore.Radio, { id: "review-failed", name: "review-failed", "data-testid": "qs-drawer-check-no", label: getResource('No'), className: "pfext-quick-start-task-review__radio", isChecked: taskStatus === exports.QuickStartTaskStatus.FAILED, onChange: () => onTaskReview(exports.QuickStartTaskStatus.FAILED) })),
2008
- taskStatus === exports.QuickStartTaskStatus.FAILED && taskHelp && (React__namespace.createElement(QuickStartMarkdownView, { content: taskHelp, exactHeight: true }))));
1981
+ } }, { children: [jsxRuntime.jsx(QuickStartMarkdownView, { content: instructions }), jsxRuntime.jsxs("span", Object.assign({ className: "pfext-quick-start-task-review__actions" }, { children: [jsxRuntime.jsx(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) }), jsxRuntime.jsx(reactCore.Radio, { id: "review-failed", name: "review-failed", "data-testid": "qs-drawer-check-no", label: getResource('No'), className: "pfext-quick-start-task-review__radio", isChecked: taskStatus === exports.QuickStartTaskStatus.FAILED, onChange: () => onTaskReview(exports.QuickStartTaskStatus.FAILED) })] })), taskStatus === exports.QuickStartTaskStatus.FAILED && taskHelp && (jsxRuntime.jsx(QuickStartMarkdownView, { content: taskHelp, exactHeight: true }))] })));
2009
1982
  };
2010
1983
 
2011
1984
  const QuickStartTasks = ({ tasks, taskNumber, allTaskStatuses, onTaskReview, onTaskSelect, }) => {
2012
- const { getResource, alwaysShowTaskReview } = React__namespace.useContext(QuickStartContext);
2013
- return (React__namespace.createElement("div", { className: "pf-v6-c-wizard pf-v6-c-wizard__nav-list", style: { padding: '0 0 0 0' } },
2014
- React__namespace.createElement("ul", null, tasks
2015
- .filter((_, index) => allTaskStatuses[index] !== exports.QuickStartTaskStatus.INIT)
2016
- .map((task, index) => {
2017
- const { title, description, review } = task;
2018
- const isActiveTask = index === taskNumber;
2019
- const taskStatus = allTaskStatuses[index];
2020
- const shouldShowTaskReview = (!QUICKSTART_TASKS_INITIAL_STATES.includes(taskStatus) || alwaysShowTaskReview) &&
2021
- review;
2022
- return (React__namespace.createElement(React__namespace.Fragment, { key: title },
2023
- React__namespace.createElement(QuickStartTaskHeader, { taskIndex: index + 1, title: title, size: "md", subtitle: getResource('{{index, number}} of {{tasks, number}}')
2024
- .replace('{{index, number}}', index + 1)
2025
- .replace('{{tasks, number}}', tasks.length), taskStatus: taskStatus, isActiveTask: isActiveTask, onTaskSelect: onTaskSelect }, isActiveTask && (React__namespace.createElement(reactCore.Stack, { hasGutter: true },
2026
- React__namespace.createElement(QuickStartMarkdownView, { content: description }),
2027
- shouldShowTaskReview && (React__namespace.createElement(QuickStartTaskReview, { review: review, taskStatus: taskStatus, onTaskReview: onTaskReview })))))));
2028
- }))));
2029
- };
2030
-
2031
- const QuickStartContent = React__namespace.forwardRef(({ quickStart, nextQuickStarts = [], taskNumber, allTaskStatuses, onTaskSelect, onTaskReview, onQuickStartChange, }, ref) => {
1985
+ const { getResource, alwaysShowTaskReview } = react.useContext(QuickStartContext);
1986
+ return (jsxRuntime.jsx("div", Object.assign({ className: "pf-v6-c-wizard pf-v6-c-wizard__nav-list", style: { padding: '0 0 0 0' } }, { children: jsxRuntime.jsx("ul", { children: tasks
1987
+ .filter((_, index) => allTaskStatuses[index] !== exports.QuickStartTaskStatus.INIT)
1988
+ .map((task, index) => {
1989
+ const { title, description, review } = task;
1990
+ const isActiveTask = index === taskNumber;
1991
+ const taskStatus = allTaskStatuses[index];
1992
+ const shouldShowTaskReview = (!QUICKSTART_TASKS_INITIAL_STATES.includes(taskStatus) || alwaysShowTaskReview) &&
1993
+ review;
1994
+ return (jsxRuntime.jsx(react.Fragment, { children: jsxRuntime.jsx(QuickStartTaskHeader, Object.assign({ taskIndex: index + 1, title: title, size: "md", subtitle: getResource('{{index, number}} of {{tasks, number}}')
1995
+ .replace('{{index, number}}', index + 1)
1996
+ .replace('{{tasks, number}}', tasks.length), taskStatus: taskStatus, isActiveTask: isActiveTask, onTaskSelect: onTaskSelect }, { children: isActiveTask && (jsxRuntime.jsxs(reactCore.Stack, Object.assign({ hasGutter: true }, { children: [jsxRuntime.jsx(QuickStartMarkdownView, { content: description }), shouldShowTaskReview && (jsxRuntime.jsx(QuickStartTaskReview, { review: review, taskStatus: taskStatus, onTaskReview: onTaskReview }))] }))) })) }, title));
1997
+ }) }) })));
1998
+ };
1999
+
2000
+ const QuickStartContent = react.forwardRef(({ quickStart, nextQuickStarts = [], taskNumber, allTaskStatuses, onTaskSelect, onTaskReview, onQuickStartChange, }, ref) => {
2032
2001
  const { spec: { introduction, tasks, conclusion, prerequisites }, } = quickStart;
2033
2002
  const totalTasks = tasks === null || tasks === void 0 ? void 0 : tasks.length;
2034
- return (React__namespace.createElement("div", { className: "pfext-quick-start-task", ref: ref },
2035
- taskNumber === -1 && (React__namespace.createElement(QuickStartIntroduction, { tasks: tasks, allTaskStatuses: allTaskStatuses, introduction: introduction, prerequisites: prerequisites, onTaskSelect: onTaskSelect })),
2036
- taskNumber > -1 && taskNumber < totalTasks && (React__namespace.createElement(QuickStartTasks, { tasks: tasks, taskNumber: taskNumber, allTaskStatuses: allTaskStatuses, onTaskReview: onTaskReview, onTaskSelect: onTaskSelect })),
2037
- taskNumber === totalTasks && (React__namespace.createElement(QuickStartConclusion, { tasks: tasks, conclusion: conclusion, allTaskStatuses: allTaskStatuses, nextQuickStarts: nextQuickStarts, onQuickStartChange: onQuickStartChange, onTaskSelect: onTaskSelect }))));
2003
+ return (jsxRuntime.jsxs("div", Object.assign({ className: "pfext-quick-start-task", ref: ref }, { children: [taskNumber === -1 && (jsxRuntime.jsx(QuickStartIntroduction, { tasks: tasks, allTaskStatuses: allTaskStatuses, introduction: introduction, prerequisites: prerequisites, onTaskSelect: onTaskSelect })), taskNumber > -1 && taskNumber < totalTasks && (jsxRuntime.jsx(QuickStartTasks, { tasks: tasks, taskNumber: taskNumber, allTaskStatuses: allTaskStatuses, onTaskReview: onTaskReview, onTaskSelect: onTaskSelect })), taskNumber === totalTasks && (jsxRuntime.jsx(QuickStartConclusion, { tasks: tasks, conclusion: conclusion, allTaskStatuses: allTaskStatuses, nextQuickStarts: nextQuickStarts, onQuickStartChange: onQuickStartChange, onTaskSelect: onTaskSelect }))] })));
2038
2004
  });
2039
2005
 
2040
2006
  const QuickStartFooter = ({ status, taskNumber, totalTasks, onNext, onBack, quickStartId, className, }) => {
2041
- const { restartQuickStart, getResource } = React__namespace.useContext(QuickStartContext);
2042
- const PrimaryButtonText = React__namespace.useMemo(() => ({
2007
+ const { restartQuickStart, getResource } = react.useContext(QuickStartContext);
2008
+ const PrimaryButtonText = react.useMemo(() => ({
2043
2009
  START: getResource('Start'),
2044
2010
  CONTINUE: getResource('Continue'),
2045
2011
  NEXT: getResource('Next'),
2046
2012
  CLOSE: getResource('Close'),
2047
2013
  }), [getResource]);
2048
- const SecondaryButtonText = React__namespace.useMemo(() => ({
2014
+ const SecondaryButtonText = react.useMemo(() => ({
2049
2015
  BACK: getResource('Back'),
2050
2016
  RESTART: getResource('Restart'),
2051
2017
  }), [getResource]);
2052
- const onRestart = React__namespace.useCallback((e) => {
2018
+ const onRestart = react.useCallback((e) => {
2053
2019
  e.preventDefault();
2054
2020
  e.stopPropagation();
2055
2021
  restartQuickStart(quickStartId, totalTasks);
2056
2022
  }, [quickStartId, restartQuickStart, totalTasks]);
2057
- const getPrimaryButtonText = React__namespace.useMemo(() => {
2023
+ const getPrimaryButtonText = react.useMemo(() => {
2058
2024
  if (status === exports.QuickStartStatus.NOT_STARTED) {
2059
2025
  return PrimaryButtonText.START;
2060
2026
  }
@@ -2066,23 +2032,17 @@ const QuickStartFooter = ({ status, taskNumber, totalTasks, onNext, onBack, quic
2066
2032
  }
2067
2033
  return PrimaryButtonText.CONTINUE;
2068
2034
  }, [taskNumber, totalTasks, PrimaryButtonText, status]);
2069
- 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]);
2070
- 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]);
2071
- 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]);
2072
- return (React__namespace.createElement("div", { className: reactStyles.css('pfext-quick-start-footer', className) },
2073
- React__namespace.createElement(reactCore.ActionList, null,
2074
- React__namespace.createElement(reactCore.ActionListGroup, null,
2075
- React__namespace.createElement(reactCore.ActionListItem, null, getPrimaryButton),
2076
- React__namespace.createElement(reactCore.ActionListItem, null, getSecondaryButton)),
2077
- React__namespace.createElement(reactCore.ActionListGroup, null,
2078
- React__namespace.createElement(reactCore.ActionListItem, null, getSideNoteAction)))));
2035
+ const getPrimaryButton = react.useMemo(() => (jsxRuntime.jsx(reactCore.Button, Object.assign({ variant: "primary", className: "pfext-quick-start-footer__actionbtn", onClick: onNext, "data-testid": `qs-drawer-${camelize(getPrimaryButtonText)}`, "data-test": `${getPrimaryButtonText} button` }, { children: getPrimaryButtonText }))), [getPrimaryButtonText, onNext]);
2036
+ const getSecondaryButton = react.useMemo(() => taskNumber === -1 && status !== exports.QuickStartStatus.NOT_STARTED ? (jsxRuntime.jsx(reactCore.Button, Object.assign({ variant: "secondary", onClick: onRestart, "data-testid": "qs-drawer-restart" }, { children: SecondaryButtonText.RESTART }))) : (taskNumber > -1 && (jsxRuntime.jsx(reactCore.Button, Object.assign({ variant: "secondary", onClick: onBack, "data-testid": "qs-drawer-back" }, { children: SecondaryButtonText.BACK })))), [onRestart, onBack, SecondaryButtonText, status, taskNumber]);
2037
+ const getSideNoteAction = react.useMemo(() => taskNumber !== -1 && (jsxRuntime.jsx(reactCore.Button, Object.assign({ variant: "link", onClick: onRestart, "data-testid": "qs-drawer-side-note-action" }, { children: SecondaryButtonText.RESTART }))), [taskNumber, onRestart, SecondaryButtonText.RESTART]);
2038
+ return (jsxRuntime.jsx("div", Object.assign({ className: reactStyles.css('pfext-quick-start-footer', className) }, { children: jsxRuntime.jsxs(reactCore.ActionList, { children: [jsxRuntime.jsxs(reactCore.ActionListGroup, { children: [jsxRuntime.jsx(reactCore.ActionListItem, { children: getPrimaryButton }), jsxRuntime.jsx(reactCore.ActionListItem, { children: getSecondaryButton })] }), jsxRuntime.jsx(reactCore.ActionListGroup, { children: jsxRuntime.jsx(reactCore.ActionListItem, { children: getSideNoteAction }) })] }) })));
2079
2039
  };
2080
2040
 
2081
2041
  const QuickStartController = ({ quickStart, nextQuickStarts, contentRef, footerClass, }) => {
2082
2042
  const { metadata: { name }, spec: { tasks = [] }, } = quickStart;
2083
2043
  const totalTasks = tasks === null || tasks === void 0 ? void 0 : tasks.length;
2084
- const { activeQuickStartID, allQuickStartStates, setAllQuickStartStates, activeQuickStartState, setActiveQuickStart, setQuickStartTaskNumber, setQuickStartTaskStatus, nextStep, previousStep, } = React__namespace.useContext(QuickStartContext);
2085
- React__namespace.useEffect(() => {
2044
+ const { activeQuickStartID, allQuickStartStates, setAllQuickStartStates, activeQuickStartState, setActiveQuickStart, setQuickStartTaskNumber, setQuickStartTaskStatus, nextStep, previousStep, } = react.useContext(QuickStartContext);
2045
+ react.useEffect(() => {
2086
2046
  // If activeQuickStartID was changed through prop from QuickStartContainer, need to init the state if it does not exist yet
2087
2047
  if (activeQuickStartID && !allQuickStartStates[activeQuickStartID]) {
2088
2048
  setAllQuickStartStates(Object.assign(Object.assign({}, allQuickStartStates), { [activeQuickStartID]: getDefaultQuickStartState() }));
@@ -2091,9 +2051,9 @@ const QuickStartController = ({ quickStart, nextQuickStarts, contentRef, footerC
2091
2051
  const status = activeQuickStartState === null || activeQuickStartState === void 0 ? void 0 : activeQuickStartState.status;
2092
2052
  const taskNumber = activeQuickStartState === null || activeQuickStartState === void 0 ? void 0 : activeQuickStartState.taskNumber;
2093
2053
  const allTaskStatuses = tasks.map((task, index) => activeQuickStartState[`taskStatus${index}`]);
2094
- const handleQuickStartChange = React__namespace.useCallback((quickStartId) => setActiveQuickStart(quickStartId), [setActiveQuickStart]);
2095
- const handleTaskStatusChange = React__namespace.useCallback((newTaskStatus) => setQuickStartTaskStatus(newTaskStatus), [setQuickStartTaskStatus]);
2096
- const getQuickStartActiveTask = React__namespace.useCallback(() => {
2054
+ const handleQuickStartChange = react.useCallback((quickStartId) => setActiveQuickStart(quickStartId), [setActiveQuickStart]);
2055
+ const handleTaskStatusChange = react.useCallback((newTaskStatus) => setQuickStartTaskStatus(newTaskStatus), [setQuickStartTaskStatus]);
2056
+ const getQuickStartActiveTask = react.useCallback(() => {
2097
2057
  let activeTaskNumber = 0;
2098
2058
  while (activeTaskNumber !== totalTasks &&
2099
2059
  activeQuickStartState[`taskStatus${activeTaskNumber}`] === exports.QuickStartTaskStatus.SUCCESS) {
@@ -2101,11 +2061,11 @@ const QuickStartController = ({ quickStart, nextQuickStarts, contentRef, footerC
2101
2061
  }
2102
2062
  return activeTaskNumber;
2103
2063
  }, [totalTasks, activeQuickStartState]);
2104
- const handleQuickStartContinue = React__namespace.useCallback(() => {
2064
+ const handleQuickStartContinue = react.useCallback(() => {
2105
2065
  const activeTaskNumber = getQuickStartActiveTask();
2106
2066
  setQuickStartTaskNumber(name, activeTaskNumber);
2107
2067
  }, [getQuickStartActiveTask, setQuickStartTaskNumber, name]);
2108
- const handleNext = React__namespace.useCallback(() => {
2068
+ const handleNext = react.useCallback(() => {
2109
2069
  if (status === exports.QuickStartStatus.COMPLETE && taskNumber === totalTasks) {
2110
2070
  return handleQuickStartChange('');
2111
2071
  }
@@ -2114,13 +2074,11 @@ const QuickStartController = ({ quickStart, nextQuickStarts, contentRef, footerC
2114
2074
  }
2115
2075
  return nextStep(totalTasks);
2116
2076
  }, [handleQuickStartChange, nextStep, status, taskNumber, totalTasks, handleQuickStartContinue]);
2117
- const handleBack = React__namespace.useCallback(() => previousStep(), [previousStep]);
2118
- const handleTaskSelect = React__namespace.useCallback((selectedTaskNumber) => {
2077
+ const handleBack = react.useCallback(() => previousStep(), [previousStep]);
2078
+ const handleTaskSelect = react.useCallback((selectedTaskNumber) => {
2119
2079
  setQuickStartTaskNumber(name, selectedTaskNumber);
2120
2080
  }, [name, setQuickStartTaskNumber]);
2121
- return (React__namespace.createElement(React__namespace.Fragment, null,
2122
- React__namespace.createElement(QuickStartContent, { quickStart: quickStart, nextQuickStarts: nextQuickStarts, taskNumber: taskNumber, allTaskStatuses: allTaskStatuses, onTaskSelect: handleTaskSelect, onTaskReview: handleTaskStatusChange, onQuickStartChange: handleQuickStartChange, ref: contentRef }),
2123
- React__namespace.createElement(QuickStartFooter, { status: status, taskNumber: taskNumber, totalTasks: totalTasks, onNext: handleNext, onBack: handleBack, className: footerClass, quickStartId: quickStart.metadata.name })));
2081
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(QuickStartContent, { quickStart: quickStart, nextQuickStarts: nextQuickStarts, taskNumber: taskNumber, allTaskStatuses: allTaskStatuses, onTaskSelect: handleTaskSelect, onTaskReview: handleTaskStatusChange, onQuickStartChange: handleQuickStartChange, ref: contentRef }), jsxRuntime.jsx(QuickStartFooter, { status: status, taskNumber: taskNumber, totalTasks: totalTasks, onNext: handleNext, onBack: handleBack, className: footerClass, quickStartId: quickStart.metadata.name })] }));
2124
2082
  };
2125
2083
 
2126
2084
  const getElement = (appendTo) => {
@@ -2130,7 +2088,7 @@ const getElement = (appendTo) => {
2130
2088
  return appendTo;
2131
2089
  };
2132
2090
  const useScrollTopOnTaskNumberChange = (node, taskNumber) => {
2133
- React__namespace.useEffect(() => {
2091
+ react.useEffect(() => {
2134
2092
  if (node) {
2135
2093
  node.scrollTo({ top: 0, behavior: 'smooth' });
2136
2094
  }
@@ -2138,9 +2096,9 @@ const useScrollTopOnTaskNumberChange = (node, taskNumber) => {
2138
2096
  };
2139
2097
  const QuickStartPanelContent = (_a) => {
2140
2098
  var { quickStarts = [], handleClose, activeQuickStartID, appendTo, isResizable = true, showClose = true, footerClass } = _a, props = tslib.__rest(_a, ["quickStarts", "handleClose", "activeQuickStartID", "appendTo", "isResizable", "showClose", "footerClass"]);
2141
- const titleRef = React__namespace.useRef(null);
2142
- const { getResource, activeQuickStartState, focusOnQuickStart } = React__namespace.useContext(QuickStartContext);
2143
- const [contentRef, setContentRef] = React__namespace.useState();
2099
+ const titleRef = react.useRef(null);
2100
+ const { getResource, activeQuickStartState, focusOnQuickStart } = react.useContext(QuickStartContext);
2101
+ const [contentRef, setContentRef] = react.useState();
2144
2102
  const quickStart = quickStarts.find((qs) => qs.metadata.name === activeQuickStartID);
2145
2103
  const taskNumber = activeQuickStartState === null || activeQuickStartState === void 0 ? void 0 : activeQuickStartState.taskNumber;
2146
2104
  useScrollTopOnTaskNumberChange(contentRef, taskNumber);
@@ -2156,27 +2114,16 @@ const QuickStartPanelContent = (_a) => {
2156
2114
  }
2157
2115
  return Number.parseInt(taskNumber) + 1;
2158
2116
  };
2159
- React__namespace.useEffect(() => {
2117
+ react.useEffect(() => {
2160
2118
  if (focusOnQuickStart && quickStart) {
2161
2119
  titleRef.current.focus();
2162
2120
  }
2163
2121
  }, [focusOnQuickStart, quickStart]);
2164
- 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),
2165
- React__namespace.createElement("div", { className: "pfext-quick-start-panel-content" },
2166
- React__namespace.createElement(reactCore.DrawerHead, null,
2167
- React__namespace.createElement("div", { tabIndex: -1, ref: titleRef },
2168
- React__namespace.createElement(reactCore.Title, { headingLevel: "h2", size: "xl", style: { marginRight: 'var(--pf-t--global--spacer--md)' } },
2169
- React__namespace.createElement("span", null, quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.displayName),
2170
- ' '),
2171
- React__namespace.createElement("span", null, (quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.durationMinutes)
2172
- ? getResource('{{type}} • {{duration, number}} minutes', quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.durationMinutes)
2173
- .replace('{{duration, number}}', quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.durationMinutes)
2174
- .replace('{{type}}', getResource('Type'))
2175
- : getResource('Type'))),
2176
- showClose && (React__namespace.createElement(reactCore.DrawerActions, null,
2177
- React__namespace.createElement(reactCore.DrawerCloseButton, { onClick: handleClose, className: "pfext-quick-start-panel-content__close-button", "data-testid": "qs-drawer-close" }))))),
2178
- React__namespace.createElement(reactCore.DrawerPanelBody, { className: "pfext-quick-start-panel-content__body", "data-test": "content" },
2179
- React__namespace.createElement(QuickStartController, { quickStart: quickStart, nextQuickStarts: nextQuickStarts, footerClass: footerClass, contentRef: setContentRef })))) : null;
2122
+ const content = quickStart ? (jsxRuntime.jsxs(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, { children: [jsxRuntime.jsx("div", Object.assign({ className: "pfext-quick-start-panel-content" }, { children: jsxRuntime.jsxs(reactCore.DrawerHead, { children: [jsxRuntime.jsxs("div", Object.assign({ tabIndex: -1, ref: titleRef }, { children: [jsxRuntime.jsxs(reactCore.Title, Object.assign({ headingLevel: "h2", size: "xl", style: { marginRight: 'var(--pf-t--global--spacer--md)' } }, { children: [jsxRuntime.jsx("span", { children: quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.displayName }), ' '] })), jsxRuntime.jsx("span", { children: (quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.durationMinutes)
2123
+ ? getResource('{{type}} {{duration, number}} minutes', quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.durationMinutes)
2124
+ .replace('{{duration, number}}', quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.durationMinutes)
2125
+ .replace('{{type}}', getResource('Type'))
2126
+ : getResource('Type') })] })), showClose && (jsxRuntime.jsx(reactCore.DrawerActions, { children: jsxRuntime.jsx(reactCore.DrawerCloseButton, { onClick: handleClose, className: "pfext-quick-start-panel-content__close-button", "data-testid": "qs-drawer-close" }) }))] }) })), jsxRuntime.jsx(reactCore.DrawerPanelBody, Object.assign({ className: "pfext-quick-start-panel-content__body", "data-test": "content" }, { children: jsxRuntime.jsx(QuickStartController, { quickStart: quickStart, nextQuickStarts: nextQuickStarts, footerClass: footerClass, contentRef: setContentRef }) }))] }))) : null;
2180
2127
  if (appendTo) {
2181
2128
  return ReactDOM__namespace.createPortal(content, getElement(appendTo));
2182
2129
  }
@@ -2185,8 +2132,8 @@ const QuickStartPanelContent = (_a) => {
2185
2132
 
2186
2133
  const QuickStartDrawerContent = (_a) => {
2187
2134
  var { quickStarts = [], appendTo, fullWidth, handleDrawerClose } = _a, props = tslib.__rest(_a, ["quickStarts", "appendTo", "fullWidth", "handleDrawerClose"]);
2188
- const { activeQuickStartID, allQuickStarts = [], activeQuickStartState, } = React__namespace.useContext(QuickStartContext);
2189
- const combinedQuickStarts = allQuickStarts.concat(quickStarts);
2135
+ const { activeQuickStartID, allQuickStarts = [], activeQuickStartState, } = react.useContext(QuickStartContext);
2136
+ const combinedQuickStarts = [...allQuickStarts, ...quickStarts].filter((qs, idx, arr) => arr.findIndex((q) => q.metadata.name === qs.metadata.name) === idx);
2190
2137
  const handleClose = () => {
2191
2138
  handleDrawerClose && handleDrawerClose(activeQuickStartState === null || activeQuickStartState === void 0 ? void 0 : activeQuickStartState.status);
2192
2139
  };
@@ -2197,14 +2144,14 @@ const QuickStartDrawerContent = (_a) => {
2197
2144
  },
2198
2145
  }
2199
2146
  : {};
2200
- return (React__namespace.createElement(QuickStartPanelContent, Object.assign({ quickStarts: combinedQuickStarts, handleClose: handleClose, activeQuickStartID: activeQuickStartID, appendTo: appendTo, isResizable: !fullWidth }, fullWidthPanelStyle, props)));
2147
+ return (jsxRuntime.jsx(QuickStartPanelContent, Object.assign({ quickStarts: combinedQuickStarts, handleClose: handleClose, activeQuickStartID: activeQuickStartID, appendTo: appendTo, isResizable: !fullWidth }, fullWidthPanelStyle, props)));
2201
2148
  };
2202
2149
 
2203
2150
  const QuickStartDrawer = (_a) => {
2204
2151
  var { quickStarts = [], children, appendTo, fullWidth, onCloseInProgress, onCloseNotInProgress } = _a, props = tslib.__rest(_a, ["quickStarts", "children", "appendTo", "fullWidth", "onCloseInProgress", "onCloseNotInProgress"]);
2205
- const { activeQuickStartID, setActiveQuickStart, allQuickStarts = [], allQuickStartStates, setAllQuickStartStates, } = React__namespace.useContext(QuickStartContext);
2152
+ const { activeQuickStartID, setActiveQuickStart, allQuickStarts = [], allQuickStartStates, setAllQuickStartStates, } = react.useContext(QuickStartContext);
2206
2153
  const combinedQuickStarts = allQuickStarts.concat(quickStarts);
2207
- React__namespace.useEffect(() => {
2154
+ react.useEffect(() => {
2208
2155
  const params = new URLSearchParams(window.location.search);
2209
2156
  // if there is a quick start param, but the quick start is not active, set it
2210
2157
  // this can happen if a new browser session is opened or an incognito window for example
@@ -2217,13 +2164,13 @@ const QuickStartDrawer = (_a) => {
2217
2164
  }
2218
2165
  }
2219
2166
  }, [activeQuickStartID, combinedQuickStarts, setActiveQuickStart]);
2220
- React__namespace.useEffect(() => {
2167
+ react.useEffect(() => {
2221
2168
  // If activeQuickStartID was changed through prop from QuickStartContainer, need to init the state if it does not exist yet
2222
2169
  if (activeQuickStartID && !allQuickStartStates[activeQuickStartID]) {
2223
2170
  setAllQuickStartStates(Object.assign(Object.assign({}, allQuickStartStates), { [activeQuickStartID]: getDefaultQuickStartState() }));
2224
2171
  }
2225
2172
  }, [activeQuickStartID, allQuickStartStates, setAllQuickStartStates]);
2226
- const [modalOpen, setModalOpen] = React__namespace.useState(false);
2173
+ const [modalOpen, setModalOpen] = react.useState(false);
2227
2174
  const onClose = () => setActiveQuickStart('');
2228
2175
  const handleClose = (activeQuickStartStatus) => {
2229
2176
  if (activeQuickStartStatus === exports.QuickStartStatus.IN_PROGRESS) {
@@ -2253,11 +2200,7 @@ const QuickStartDrawer = (_a) => {
2253
2200
  },
2254
2201
  }
2255
2202
  : {};
2256
- return (React__namespace.createElement(React__namespace.Fragment, null,
2257
- React__namespace.createElement(reactCore.Drawer, Object.assign({ isExpanded: !!activeQuickStartID, isInline: true }, props),
2258
- React__namespace.createElement(reactCore.DrawerContent, Object.assign({ panelContent: React__namespace.createElement(QuickStartDrawerContent, { quickStarts: combinedQuickStarts, handleDrawerClose: handleClose, appendTo: appendTo, fullWidth: fullWidth }) }, fullWidthBodyStyle),
2259
- React__namespace.createElement(reactCore.DrawerContentBody, null, children))),
2260
- React__namespace.createElement(QuickStartCloseModal, { isOpen: modalOpen, onConfirm: onModalConfirm, onCancel: onModalCancel })));
2203
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(reactCore.Drawer, Object.assign({ isExpanded: !!activeQuickStartID, isInline: true }, props, { children: jsxRuntime.jsx(reactCore.DrawerContent, Object.assign({ panelContent: jsxRuntime.jsx(QuickStartDrawerContent, { quickStarts: combinedQuickStarts, handleDrawerClose: handleClose, appendTo: appendTo, fullWidth: fullWidth }) }, fullWidthBodyStyle, { children: jsxRuntime.jsx(reactCore.DrawerContentBody, { children: children }) })) })), jsxRuntime.jsx(QuickStartCloseModal, { isOpen: modalOpen, onConfirm: onModalConfirm, onCancel: onModalCancel })] }));
2261
2204
  };
2262
2205
 
2263
2206
  const QuickStartContainer = (_a) => {
@@ -2272,13 +2215,13 @@ const QuickStartContainer = (_a) => {
2272
2215
  useQueryParams,
2273
2216
  markdown,
2274
2217
  alwaysShowTaskReview }, contextProps));
2275
- React__namespace.useEffect(() => {
2218
+ react.useEffect(() => {
2276
2219
  if (quickStarts &&
2277
2220
  JSON.stringify(quickStarts) !== JSON.stringify(valuesForQuickstartContext.allQuickStarts)) {
2278
2221
  valuesForQuickstartContext.setAllQuickStarts(quickStarts);
2279
2222
  }
2280
2223
  }, [quickStarts, valuesForQuickstartContext]);
2281
- React__namespace.useEffect(() => {
2224
+ react.useEffect(() => {
2282
2225
  if (loading !== valuesForQuickstartContext.loading) {
2283
2226
  valuesForQuickstartContext.setLoading(loading);
2284
2227
  }
@@ -2287,7 +2230,7 @@ const QuickStartContainer = (_a) => {
2287
2230
  fullWidth,
2288
2231
  onCloseInProgress,
2289
2232
  onCloseNotInProgress }, props);
2290
- return (React__namespace.createElement(QuickStartContext.Provider, { value: valuesForQuickstartContext }, isManagedDrawer ? (React__namespace.createElement(QuickStartDrawer, Object.assign({}, drawerProps), children)) : (children)));
2233
+ return (jsxRuntime.jsx(QuickStartContext.Provider, Object.assign({ value: valuesForQuickstartContext }, { children: isManagedDrawer ? (jsxRuntime.jsx(QuickStartDrawer, Object.assign({}, drawerProps, { children: children }))) : (children) })));
2291
2234
  };
2292
2235
 
2293
2236
  const HelpTopicContextDefaults = {
@@ -2299,14 +2242,14 @@ const HelpTopicContextDefaults = {
2299
2242
  setFilteredHelpTopics: () => { },
2300
2243
  loading: false,
2301
2244
  };
2302
- const HelpTopicContext = React__default["default"].createContext(HelpTopicContextDefaults);
2245
+ const HelpTopicContext = react.createContext(HelpTopicContextDefaults);
2303
2246
  const useValuesForHelpTopicContext = (value = {}) => {
2304
2247
  const combinedValue = Object.assign(Object.assign({}, HelpTopicContextDefaults), value);
2305
- const [loading, setLoading] = React__default["default"].useState(combinedValue.loading);
2248
+ const [loading, setLoading] = react.useState(combinedValue.loading);
2306
2249
  // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars
2307
- const [helpTopics, setHelpTopics] = React__default["default"].useState(combinedValue.helpTopics || []);
2308
- const [activeHelpTopic, setActiveHelpTopic] = React__default["default"].useState(combinedValue.activeHelpTopic || null);
2309
- const setActiveHelpTopicByName = React__default["default"].useCallback((helpTopicName) => {
2250
+ const [helpTopics, setHelpTopics] = react.useState(combinedValue.helpTopics || []);
2251
+ const [activeHelpTopic, setActiveHelpTopic] = react.useState(combinedValue.activeHelpTopic || null);
2252
+ const setActiveHelpTopicByName = react.useCallback((helpTopicName) => {
2310
2253
  const topic = helpTopics.find((t) => t.name === helpTopicName);
2311
2254
  if (!helpTopicName) {
2312
2255
  setActiveHelpTopic(null);
@@ -2314,7 +2257,7 @@ const useValuesForHelpTopicContext = (value = {}) => {
2314
2257
  }
2315
2258
  setActiveHelpTopic(topic);
2316
2259
  }, [helpTopics]);
2317
- const [filteredHelpTopics, setFilteredHelpTopics] = React__default["default"].useState(combinedValue.filteredHelpTopics || []);
2260
+ const [filteredHelpTopics, setFilteredHelpTopics] = react.useState(combinedValue.filteredHelpTopics || []);
2318
2261
  return {
2319
2262
  helpTopics,
2320
2263
  setHelpTopics,
@@ -2330,8 +2273,8 @@ const useValuesForHelpTopicContext = (value = {}) => {
2330
2273
  const HelpTopicPanelContent = (_a) => {
2331
2274
  var _b, _c;
2332
2275
  var { activeHelpTopic = null, filteredHelpTopics = [], isResizable = true, onClose } = _a, props = tslib.__rest(_a, ["activeHelpTopic", "filteredHelpTopics", "isResizable", "onClose"]);
2333
- const { setActiveHelpTopicByName } = React__namespace.useContext(HelpTopicContext);
2334
- const [isHelpTopicMenuOpen, setIsHelpTopicMenuOpen] = React__namespace.useState(false);
2276
+ const { setActiveHelpTopicByName } = react.useContext(HelpTopicContext);
2277
+ const [isHelpTopicMenuOpen, setIsHelpTopicMenuOpen] = react.useState(false);
2335
2278
  const toggleHelpTopicMenu = () => {
2336
2279
  setIsHelpTopicMenuOpen(!isHelpTopicMenuOpen);
2337
2280
  };
@@ -2341,24 +2284,10 @@ const HelpTopicPanelContent = (_a) => {
2341
2284
  toggleHelpTopicMenu();
2342
2285
  };
2343
2286
  const helpTopicOptions = filteredHelpTopics.length > 1 &&
2344
- filteredHelpTopics.map((topic) => (React__namespace.createElement(reactCore.SelectOption, { key: topic.name, value: topic.name }, topic.title)));
2345
- const paddingContainer = (children) => React__namespace.createElement("div", { style: { padding: '24px' } }, children);
2346
- const panelBodyItems = (React__namespace.createElement(React__namespace.Fragment, null,
2347
- paddingContainer(React__namespace.createElement(QuickStartMarkdownView, { content: activeHelpTopic === null || activeHelpTopic === void 0 ? void 0 : activeHelpTopic.content })),
2348
- !!((_b = activeHelpTopic === null || activeHelpTopic === void 0 ? void 0 : activeHelpTopic.links) === null || _b === void 0 ? void 0 : _b.length) && React__namespace.createElement(reactCore.Divider, null),
2349
- 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 },
2350
- 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))))))));
2351
- const content = (React__namespace.createElement(reactCore.DrawerPanelContent, Object.assign({ isResizable: isResizable }, props),
2352
- React__namespace.createElement("div", null,
2353
- React__namespace.createElement(reactCore.DrawerHead, null,
2354
- React__namespace.createElement("div", null,
2355
- 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)) },
2356
- React__namespace.createElement(reactCore.SelectList, null, helpTopicOptions))),
2357
- 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)),
2358
- React__namespace.createElement(reactCore.DrawerActions, null,
2359
- React__namespace.createElement(reactCore.DrawerCloseButton, { onClick: onClose, "data-testid": "qs-drawer-close" }))),
2360
- React__namespace.createElement(reactCore.Divider, null),
2361
- React__namespace.createElement(reactCore.DrawerPanelBody, { "data-test": "content" }, panelBodyItems))));
2287
+ filteredHelpTopics.map((topic) => (jsxRuntime.jsx(reactCore.SelectOption, Object.assign({ value: topic.name }, { children: topic.title }), topic.name)));
2288
+ const paddingContainer = (children) => jsxRuntime.jsx("div", Object.assign({ style: { padding: '24px' } }, { children: children }));
2289
+ const panelBodyItems = (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [paddingContainer(jsxRuntime.jsx(QuickStartMarkdownView, { content: activeHelpTopic === null || activeHelpTopic === void 0 ? void 0 : activeHelpTopic.content })), !!((_b = activeHelpTopic === null || activeHelpTopic === void 0 ? void 0 : activeHelpTopic.links) === null || _b === void 0 ? void 0 : _b.length) && jsxRuntime.jsx(reactCore.Divider, {}), paddingContainer(jsxRuntime.jsx(reactCore.Stack, Object.assign({ hasGutter: true }, { children: (_c = activeHelpTopic === null || activeHelpTopic === void 0 ? void 0 : activeHelpTopic.links) === null || _c === void 0 ? void 0 : _c.map(({ href, text, newTab, isExternal }, index) => (jsxRuntime.jsx(reactCore.StackItem, { children: jsxRuntime.jsx(reactCore.Button, Object.assign({ component: "a", href: href, target: newTab ? '_blank' : '', rel: "noopener noreferrer", variant: "link", "aria-label": `Open documentation in new window`, isInline: true, icon: isExternal ? jsxRuntime.jsx(ExternalLinkAltIcon__default["default"], {}) : null, iconPosition: "right", style: { fontSize: 'inherit' } }, { children: text || href })) }, index))) })))] }));
2290
+ const content = (jsxRuntime.jsx(reactCore.DrawerPanelContent, Object.assign({ isResizable: isResizable }, props, { children: jsxRuntime.jsxs("div", { children: [jsxRuntime.jsxs(reactCore.DrawerHead, { children: [jsxRuntime.jsxs("div", { children: [helpTopicOptions && (jsxRuntime.jsx(reactCore.Select, Object.assign({ isPlain: true, id: "help-topics-select", selected: activeHelpTopic, isOpen: isHelpTopicMenuOpen, onSelect: onSelectHelpTopic, onOpenChange: (isOpen) => setIsHelpTopicMenuOpen(isOpen), toggle: (toggleRef) => (jsxRuntime.jsx(reactCore.MenuToggle, Object.assign({ isFullWidth: true, ref: toggleRef, icon: jsxRuntime.jsx(BarsIcon__default["default"], {}), onClick: toggleHelpTopicMenu, isExpanded: isHelpTopicMenuOpen }, { children: activeHelpTopic === null || activeHelpTopic === void 0 ? void 0 : activeHelpTopic.title }))) }, { children: jsxRuntime.jsx(reactCore.SelectList, { children: helpTopicOptions }) }))), jsxRuntime.jsx(reactCore.Title, Object.assign({ headingLevel: "h1", size: "xl", style: { marginRight: 'var(--pf-t--global--spacer--md)' } }, { children: activeHelpTopic === null || activeHelpTopic === void 0 ? void 0 : activeHelpTopic.title }))] }), jsxRuntime.jsx(reactCore.DrawerActions, { children: jsxRuntime.jsx(reactCore.DrawerCloseButton, { onClick: onClose, "data-testid": "qs-drawer-close" }) })] }), jsxRuntime.jsx(reactCore.Divider, {}), jsxRuntime.jsx(reactCore.DrawerPanelBody, Object.assign({ "data-test": "content" }, { children: panelBodyItems }))] }) })));
2362
2291
  return content;
2363
2292
  };
2364
2293
 
@@ -2367,36 +2296,33 @@ const HelpTopicContainer = (_a) => {
2367
2296
  const valuesForHelpTopicContext = useValuesForHelpTopicContext(Object.assign({ helpTopics,
2368
2297
  language, resourceBundle: Object.assign({}, resourceBundle), loading,
2369
2298
  markdown }, contextProps));
2370
- React__namespace.useEffect(() => {
2299
+ react.useEffect(() => {
2371
2300
  if (loading !== valuesForHelpTopicContext.loading) {
2372
2301
  valuesForHelpTopicContext.setLoading(loading);
2373
2302
  }
2374
2303
  }, [loading, valuesForHelpTopicContext]);
2375
- React__namespace.useEffect(() => {
2304
+ react.useEffect(() => {
2376
2305
  if (helpTopics &&
2377
2306
  JSON.stringify(helpTopics) !== JSON.stringify(valuesForHelpTopicContext.helpTopics)) {
2378
2307
  valuesForHelpTopicContext.setHelpTopics(helpTopics);
2379
2308
  }
2380
2309
  }, [helpTopics, valuesForHelpTopicContext]);
2381
- return (React__namespace.createElement(HelpTopicContext.Provider, { value: valuesForHelpTopicContext },
2382
- React__namespace.createElement(HelpTopicDrawer, Object.assign({}, props), children)));
2310
+ return (jsxRuntime.jsx(HelpTopicContext.Provider, Object.assign({ value: valuesForHelpTopicContext }, { children: jsxRuntime.jsx(HelpTopicDrawer, Object.assign({}, props, { children: children })) })));
2383
2311
  };
2384
2312
  const HelpTopicDrawer = (_a) => {
2385
2313
  var { children } = _a, props = tslib.__rest(_a, ["children"]);
2386
- const { activeHelpTopic, filteredHelpTopics, setActiveHelpTopicByName } = React__namespace.useContext(HelpTopicContext);
2314
+ const { activeHelpTopic, filteredHelpTopics, setActiveHelpTopicByName } = react.useContext(HelpTopicContext);
2387
2315
  const onClose = () => {
2388
2316
  setActiveHelpTopicByName('');
2389
2317
  };
2390
- const panelContent = (React__namespace.createElement(HelpTopicPanelContent, { activeHelpTopic: activeHelpTopic, filteredHelpTopics: filteredHelpTopics, onClose: onClose }));
2391
- return (React__namespace.createElement(React__namespace.Fragment, null,
2392
- React__namespace.createElement(reactCore.Drawer, Object.assign({ isExpanded: !!activeHelpTopic, isInline: true }, props), children ? (React__namespace.createElement(reactCore.DrawerContent, { panelContent: panelContent },
2393
- React__namespace.createElement(reactCore.DrawerContentBody, null, children))) : (React__namespace.createElement("div", { className: "pf-v6-c-drawer__main" }, panelContent)))));
2318
+ const panelContent = (jsxRuntime.jsx(HelpTopicPanelContent, { activeHelpTopic: activeHelpTopic, filteredHelpTopics: filteredHelpTopics, onClose: onClose }));
2319
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx(reactCore.Drawer, Object.assign({ isExpanded: !!activeHelpTopic, isInline: true }, props, { children: children ? (jsxRuntime.jsx(reactCore.DrawerContent, Object.assign({ panelContent: panelContent }, { children: jsxRuntime.jsx(reactCore.DrawerContentBody, { children: children }) }))) : (jsxRuntime.jsx("div", Object.assign({ className: "pf-v6-c-drawer__main" }, { children: panelContent }))) })) }));
2394
2320
  };
2395
2321
 
2396
2322
  const useLocalStorage = (key, initialValue) => {
2397
2323
  // State to store our value
2398
2324
  // Pass initial state function to useState so logic is only executed once
2399
- const [storedValue, setStoredValue] = React.useState(() => {
2325
+ const [storedValue, setStoredValue] = react.useState(() => {
2400
2326
  try {
2401
2327
  // Get from local storage by key
2402
2328
  const item = window.localStorage.getItem(key);