@patternfly/quickstarts 2.3.2 → 2.4.0

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 (32) hide show
  1. package/dist/ConsoleShared/src/components/markdown-extensions/accordion-extension.d.ts +7 -0
  2. package/dist/ConsoleShared/src/components/markdown-extensions/accordion-render-extension.d.ts +6 -0
  3. package/dist/ConsoleShared/src/components/markdown-extensions/const.d.ts +2 -0
  4. package/dist/ConsoleShared/src/components/markdown-extensions/index.d.ts +2 -0
  5. package/dist/ConsoleShared/src/components/status/NotStartedIcon.d.ts +0 -1
  6. package/dist/index.es.js +53 -6
  7. package/dist/index.es.js.map +1 -1
  8. package/dist/index.js +52 -5
  9. package/dist/index.js.map +1 -1
  10. package/dist/patternfly-global.css +890 -419
  11. package/dist/patternfly-nested.css +12484 -7322
  12. package/dist/quickstarts-base.css +863 -664
  13. package/dist/quickstarts-full.es.js +3738 -1920
  14. package/dist/quickstarts-full.es.js.map +1 -1
  15. package/dist/quickstarts-standalone.css +848 -622
  16. package/dist/quickstarts-standalone.min.css +2 -2
  17. package/dist/quickstarts-vendor.css +84 -55
  18. package/dist/quickstarts.css +946 -719
  19. package/dist/quickstarts.min.css +1 -1
  20. package/dist/utils/quick-start-types.d.ts +0 -1
  21. package/package.json +14 -10
  22. package/src/ConsoleInternal/components/catalog/_catalog.scss +7 -5
  23. package/src/ConsoleShared/src/components/markdown-extensions/accordion-extension.tsx +52 -0
  24. package/src/ConsoleShared/src/components/markdown-extensions/accordion-render-extension.tsx +60 -0
  25. package/src/ConsoleShared/src/components/markdown-extensions/const.ts +2 -0
  26. package/src/ConsoleShared/src/components/markdown-extensions/index.ts +2 -0
  27. package/src/QuickStartMarkdownView.tsx +5 -0
  28. package/src/QuickStartPanelContent.tsx +7 -1
  29. package/src/catalog/QuickStartTileHeader.tsx +2 -1
  30. package/src/styles/legacy-bootstrap/_code.scss +4 -2
  31. package/src/styles/legacy-bootstrap/_type.scss +8 -6
  32. package/src/styles/patternfly-nested.scss +9 -9
package/dist/index.js CHANGED
@@ -914,7 +914,7 @@ class CatalogTile extends React__namespace.Component {
914
914
  const _a = this.props, { id, className, featured, onClick, href, icon, iconImg, iconAlt, iconClass, badges, title, vendor, description, footer,
915
915
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
916
916
  ref, children } = _a, props = tslib.__rest(_a, ["id", "className", "featured", "onClick", "href", "icon", "iconImg", "iconAlt", "iconClass", "badges", "title", "vendor", "description", "footer", "ref", "children"]);
917
- return (React__namespace.createElement(reactCore.Card, Object.assign({ component: href || onClick ? 'a' : 'div', id: id, href: href || '#', className: reactStyles.css('catalog-tile-pf', { featured }, className), onClick: e => this.handleClick(e), isHoverable: true }, props),
917
+ return (React__namespace.createElement(reactCore.Card, Object.assign({ component: href || onClick ? 'a' : 'div', id: id, href: href || '#', className: reactStyles.css('catalog-tile-pf', { featured }, className), onClick: e => this.handleClick(e), isSelectable: true }, props),
918
918
  (badges.length > 0 || iconImg || iconClass || icon) && (React__namespace.createElement(reactCore.CardHeader, null,
919
919
  iconImg && React__namespace.createElement("img", { className: "catalog-tile-pf-icon", src: iconImg, alt: iconAlt }),
920
920
  !iconImg && (iconClass || icon) && React__namespace.createElement("span", { className: `catalog-tile-pf-icon ${iconClass}` }, icon),
@@ -1237,7 +1237,9 @@ const MarkdownHighlightExtension = ({ docContext, rootSelector, }) => {
1237
1237
  };
1238
1238
 
1239
1239
  const MARKDOWN_COPY_BUTTON_ID = 'data-copy-for';
1240
- const MARKDOWN_SNIPPET_ID = 'data-snippet-id';
1240
+ const MARKDOWN_SNIPPET_ID = 'data-snippet-id';
1241
+ const ACCORDION_MARKDOWN_BUTTON_ID = `accordion-markdown-button-id`;
1242
+ const ACCORDION_MARKDOWN_CONTENT_ID = `accordion-markdown-content-id`;
1241
1243
 
1242
1244
  const CopyClipboard = ({ element, rootSelector, docContext, }) => {
1243
1245
  const { getResource } = React__namespace.useContext(QuickStartContext);
@@ -1501,6 +1503,7 @@ const QuickStartMarkdownView = ({ content, exactHeight, className, }) => {
1501
1503
  const multilineCopyClipboardShowdownExtension = useMultilineCopyClipboardShowdownExtension();
1502
1504
  const admonitionShowdownExtension = useAdmonitionShowdownExtension();
1503
1505
  const codeShowdownExtension = useCodeShowdownExtension();
1506
+ const accordionShowdownExtension = useAccordionShowdownExtension();
1504
1507
  return (React__namespace.createElement(SyncMarkdownView, { inline: true, content: content, exactHeight: exactHeight, extensions: [
1505
1508
  {
1506
1509
  type: 'lang',
@@ -1524,8 +1527,10 @@ const QuickStartMarkdownView = ({ content, exactHeight, className, }) => {
1524
1527
  multilineCopyClipboardShowdownExtension,
1525
1528
  admonitionShowdownExtension,
1526
1529
  codeShowdownExtension,
1530
+ accordionShowdownExtension,
1527
1531
  ...(markdown ? markdown.extensions : []),
1528
1532
  ], renderExtension: (docContext, rootSelector) => (React__namespace.createElement(React__namespace.Fragment, null,
1533
+ React__namespace.createElement(AccordionRenderExtension, { docContext: docContext }),
1529
1534
  React__namespace.createElement(MarkdownHighlightExtension, { docContext: docContext, rootSelector: rootSelector }),
1530
1535
  React__namespace.createElement(MarkdownCopyClipboard, { docContext: docContext, rootSelector: rootSelector }),
1531
1536
  markdown &&
@@ -1581,6 +1586,45 @@ const useCodeShowdownExtension = () => {
1581
1586
  }), []);
1582
1587
  };
1583
1588
 
1589
+ const useAccordionShowdownExtension = () => {
1590
+ return React__namespace.useMemo(() => ({
1591
+ type: 'lang',
1592
+ regex: /\[(.+)]{{(accordion) ("(.*?)")}}/g,
1593
+ replace: (_text, accordionContent, _command, accordionHeading) => {
1594
+ const accordionId = new String(accordionHeading).replace(/\s/g, '-');
1595
+ return removeTemplateWhitespace(server.renderToStaticMarkup(React__namespace.createElement(reactCore.Accordion, { asDefinitionList: true },
1596
+ React__namespace.createElement(reactCore.AccordionItem, null,
1597
+ React__namespace.createElement(reactCore.AccordionToggle, { isExpanded: false, id: `${ACCORDION_MARKDOWN_BUTTON_ID}-${accordionId}` }, accordionHeading),
1598
+ React__namespace.createElement(reactCore.AccordionContent, { id: `${ACCORDION_MARKDOWN_CONTENT_ID}-${accordionId}`, isHidden: !false }, accordionContent)))));
1599
+ },
1600
+ }), []);
1601
+ };
1602
+
1603
+ const AccordionShowdownHandler = ({ buttonElement, contentElement, }) => {
1604
+ const [expanded, setExpanded] = React__namespace.useState(false);
1605
+ const handleClick = () => {
1606
+ const expandedModifier = 'pf-m-expanded';
1607
+ buttonElement.className = `pf-c-accordion__toggle ${!expanded ? expandedModifier : ''}`;
1608
+ contentElement.hidden = expanded;
1609
+ contentElement.className = `pf-c-accordion__expanded-content ${!expanded ? expandedModifier : ''}`;
1610
+ setExpanded(!expanded);
1611
+ };
1612
+ useEventListener(buttonElement, 'click', handleClick);
1613
+ return React__namespace.createElement(React__namespace.Fragment, null);
1614
+ };
1615
+ const AccordionRenderExtension = ({ docContext }) => {
1616
+ const buttonElements = docContext.querySelectorAll(`[id ^= ${ACCORDION_MARKDOWN_BUTTON_ID}]`);
1617
+ const contentElements = docContext.querySelectorAll(`[id ^= ${ACCORDION_MARKDOWN_CONTENT_ID}]`);
1618
+ return buttonElements.length > 0 ? (React__namespace.createElement(React__namespace.Fragment, null, Array.from(buttonElements).map((elm) => {
1619
+ const content = Array.from(contentElements).find((elm2) => {
1620
+ const elmId = elm.id.split(ACCORDION_MARKDOWN_BUTTON_ID)[1];
1621
+ const elm2Id = elm2.id.split(ACCORDION_MARKDOWN_CONTENT_ID)[1];
1622
+ return elmId === elm2Id;
1623
+ });
1624
+ return (React__namespace.createElement(AccordionShowdownHandler, { key: elm.id.split(ACCORDION_MARKDOWN_BUTTON_ID)[1], buttonElement: elm, contentElement: content }));
1625
+ }))) : null;
1626
+ };
1627
+
1584
1628
  const FallbackImg = ({ src, alt, className, fallback }) => {
1585
1629
  const [isSrcValid, setIsSrcValid] = React__namespace.useState(true);
1586
1630
  if (src && isSrcValid) {
@@ -1711,7 +1755,8 @@ const QuickStartTileHeader = ({ status, duration, name, type, quickStartId, }) =
1711
1755
  [exports.QuickStartStatus.NOT_STARTED]: getResource('Not started'),
1712
1756
  };
1713
1757
  return (React__namespace.createElement("div", { className: "pfext-quick-start-tile-header" },
1714
- React__namespace.createElement(reactCore.Title, { headingLevel: "h3", "data-test": "title", id: quickStartId }, name),
1758
+ React__namespace.createElement(reactCore.Title, { headingLevel: "h3", "data-test": "title", id: quickStartId },
1759
+ React__namespace.createElement(QuickStartMarkdownView, { content: name })),
1715
1760
  React__namespace.createElement("div", { className: "pfext-quick-start-tile-header__status" },
1716
1761
  type && (React__namespace.createElement(reactCore.Label, { className: "pfext-quick-start-tile-header--margin", color: type.color }, type.text)),
1717
1762
  duration && (React__namespace.createElement(reactCore.Label, { variant: "outline", "data-test": "duration", icon: React__namespace.createElement(OutlinedClockIcon__default['default'], null), className: "pfext-quick-start-tile-header--margin" }, getResource('{{duration, number}} minutes', duration).replace('{{duration, number}}', duration))),
@@ -2259,8 +2304,10 @@ const QuickStartPanelContent = (_a) => {
2259
2304
  React__namespace.createElement("div", { className: headerClasses },
2260
2305
  React__namespace.createElement(reactCore.DrawerHead, null,
2261
2306
  React__namespace.createElement("div", { className: "pfext-quick-start-panel-content__title", tabIndex: -1, ref: titleRef },
2262
- React__namespace.createElement(reactCore.Title, { headingLevel: "h1", size: "xl", className: "pfext-quick-start-panel-content__name", style: { marginRight: 'var(--pf-global--spacer--md)' } }, quickStart === null || quickStart === void 0 ? void 0 :
2263
- quickStart.spec.displayName,
2307
+ React__namespace.createElement(reactCore.Title, { headingLevel: "h1", size: "xl", className: "pfext-quick-start-panel-content__name", style: { marginRight: 'var(--pf-global--spacer--md)' } },
2308
+ React__namespace.createElement("span", { dangerouslySetInnerHTML: {
2309
+ __html: removeParagraphWrap(markdownConvert(quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.displayName)),
2310
+ } }),
2264
2311
  ' ',
2265
2312
  React__namespace.createElement("small", { className: "pfext-quick-start-panel-content__duration" }, (quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.durationMinutes) ? getResource('{{type}} • {{duration, number}} minutes', quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.durationMinutes)
2266
2313
  .replace('{{duration, number}}', quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.durationMinutes)