@conduction/components 2.2.18 → 2.2.20

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 (168) hide show
  1. package/.prettierrc +30 -30
  2. package/README.md +2 -0
  3. package/lib/components/Pagination/Pagination.d.ts +14 -14
  4. package/lib/components/Pagination/Pagination.js +12 -12
  5. package/lib/components/badgeCounter/BadgeCounter.d.ts +8 -8
  6. package/lib/components/badgeCounter/BadgeCounter.js +4 -4
  7. package/lib/components/badgeCounter/BadgeCounter.module.css +27 -27
  8. package/lib/components/card/cardHeader/CardHeader.d.ts +4 -4
  9. package/lib/components/card/cardHeader/CardHeader.js +14 -14
  10. package/lib/components/card/cardWrapper/CardWrapper.d.ts +2 -2
  11. package/lib/components/card/cardWrapper/CardWrapper.js +6 -6
  12. package/lib/components/card/detailsCard/DetailsCard.d.ts +14 -14
  13. package/lib/components/card/detailsCard/DetailsCard.js +11 -11
  14. package/lib/components/card/downloadCard/DownloadCard.d.ts +11 -11
  15. package/lib/components/card/downloadCard/DownloadCard.js +9 -9
  16. package/lib/components/card/horizontalImageCard/HorizontalImageCard.d.ts +13 -13
  17. package/lib/components/card/horizontalImageCard/HorizontalImageCard.js +10 -10
  18. package/lib/components/card/imageAndDetailsCard/ImageAndDetailsCard.d.ts +14 -14
  19. package/lib/components/card/imageAndDetailsCard/ImageAndDetailsCard.js +10 -10
  20. package/lib/components/card/index.d.ts +8 -8
  21. package/lib/components/card/index.js +8 -8
  22. package/lib/components/card/infoCard/InfoCard.d.ts +8 -8
  23. package/lib/components/card/infoCard/InfoCard.js +6 -6
  24. package/lib/components/card/infoCard/InfoCard.module.css +26 -26
  25. package/lib/components/card/richContentCard/RichContentCard.d.ts +19 -19
  26. package/lib/components/card/richContentCard/RichContentCard.js +15 -16
  27. package/lib/components/codeBlock/CodeBlock.d.ts +6 -6
  28. package/lib/components/codeBlock/CodeBlock.js +3 -3
  29. package/lib/components/codeBlock/CodeBlock.module.css +6 -6
  30. package/lib/components/container/Container.d.ts +6 -6
  31. package/lib/components/container/Container.js +4 -4
  32. package/lib/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.css +222 -222
  33. package/lib/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.d.ts +17 -17
  34. package/lib/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.js +20 -20
  35. package/lib/components/denhaag-wrappers/pagination/Pagination.css +120 -120
  36. package/lib/components/denhaag-wrappers/pagination/Pagination.d.ts +9 -9
  37. package/lib/components/denhaag-wrappers/pagination/Pagination.js +15 -15
  38. package/lib/components/editableTableRow/EditableTableRow.d.ts +14 -14
  39. package/lib/components/editableTableRow/EditableTableRow.js +31 -31
  40. package/lib/components/editableTableRow/EditableTableRow.module.css +25 -25
  41. package/lib/components/formFields/checkbox/Checkbox.module.css +7 -7
  42. package/lib/components/formFields/checkbox/checkbox.d.ts +9 -9
  43. package/lib/components/formFields/checkbox/checkbox.js +3 -3
  44. package/lib/components/formFields/createKeyValue/CreateKeyValue.d.ts +23 -23
  45. package/lib/components/formFields/createKeyValue/CreateKeyValue.js +40 -40
  46. package/lib/components/formFields/date/Date.d.ts +12 -12
  47. package/lib/components/formFields/date/Date.js +10 -10
  48. package/lib/components/formFields/date/Date.module.css +12 -12
  49. package/lib/components/formFields/errorMessage/ErrorMessage.d.ts +5 -5
  50. package/lib/components/formFields/errorMessage/ErrorMessage.js +3 -3
  51. package/lib/components/formFields/index.d.ts +7 -7
  52. package/lib/components/formFields/index.js +7 -7
  53. package/lib/components/formFields/input.d.ts +22 -22
  54. package/lib/components/formFields/input.js +12 -12
  55. package/lib/components/formFields/radio.d.ts +9 -9
  56. package/lib/components/formFields/radio.js +3 -3
  57. package/lib/components/formFields/select/select.d.ts +24 -24
  58. package/lib/components/formFields/select/select.js +74 -74
  59. package/lib/components/formFields/select/select.module.css +1 -1
  60. package/lib/components/formFields/textarea.d.ts +10 -10
  61. package/lib/components/formFields/textarea.js +4 -4
  62. package/lib/components/formFields/types.d.ts +6 -6
  63. package/lib/components/formFields/types.js +1 -1
  64. package/lib/components/horizontalOverflowWrapper/HorizontalOverflowWrapper.d.ts +10 -10
  65. package/lib/components/horizontalOverflowWrapper/HorizontalOverflowWrapper.js +36 -36
  66. package/lib/components/htmlParser/ParsedHTML.d.ts +10 -0
  67. package/lib/components/htmlParser/ParsedHTML.js +17 -0
  68. package/lib/components/htmlParser/ParsedHTML.module.css +7 -0
  69. package/lib/components/htmlParser/parser/alert/getAlert.d.ts +1 -0
  70. package/lib/components/htmlParser/parser/alert/getAlert.js +18 -0
  71. package/lib/components/htmlParser/parser/alert/getAlert.module.css +28 -0
  72. package/lib/components/htmlParser/parser/anchor/getAnchor.d.ts +2 -0
  73. package/lib/components/htmlParser/parser/anchor/getAnchor.js +74 -0
  74. package/lib/components/htmlParser/parser/code/getCode.d.ts +1 -0
  75. package/lib/components/htmlParser/parser/code/getCode.js +11 -0
  76. package/lib/components/htmlParser/parser/getBlockquote/getBlockquote.d.ts +1 -0
  77. package/lib/components/htmlParser/parser/getBlockquote/getBlockquote.js +6 -0
  78. package/lib/components/htmlParser/parser/header/getHeader.d.ts +1 -0
  79. package/lib/components/htmlParser/parser/header/getHeader.js +15 -0
  80. package/lib/components/htmlParser/parser/image/getImage.d.ts +1 -0
  81. package/lib/components/htmlParser/parser/image/getImage.js +28 -0
  82. package/lib/components/htmlParser/parser/list/getList.d.ts +1 -0
  83. package/lib/components/htmlParser/parser/list/getList.js +12 -0
  84. package/lib/components/htmlParser/parser/list/getList.module.css +3 -0
  85. package/lib/components/htmlParser/parser/listItem/getListItem.d.ts +1 -0
  86. package/lib/components/htmlParser/parser/listItem/getListItem.js +12 -0
  87. package/lib/components/htmlParser/parser/paragraph/getParagraph.d.ts +1 -0
  88. package/lib/components/htmlParser/parser/paragraph/getParagraph.js +6 -0
  89. package/lib/components/htmlParser/parser/svg/getSvg.d.ts +1 -0
  90. package/lib/components/htmlParser/parser/svg/getSvg.js +8 -0
  91. package/lib/components/htmlParser/parser/table/getTable.d.ts +1 -0
  92. package/lib/components/htmlParser/parser/table/getTable.js +7 -0
  93. package/lib/components/htmlParser/parser/table/getTable.module.css +3 -0
  94. package/lib/components/htmlParser/parser/tableBody/getTableBody.d.ts +1 -0
  95. package/lib/components/htmlParser/parser/tableBody/getTableBody.js +7 -0
  96. package/lib/components/htmlParser/parser/tableBody/getTableBody.module.css +3 -0
  97. package/lib/components/htmlParser/parser/tableCell/getTableCell.d.ts +1 -0
  98. package/lib/components/htmlParser/parser/tableCell/getTableCell.js +7 -0
  99. package/lib/components/htmlParser/parser/tableCell/getTableCell.module.css +3 -0
  100. package/lib/components/htmlParser/parser/tableHeader/getTableHeader.d.ts +1 -0
  101. package/lib/components/htmlParser/parser/tableHeader/getTableHeader.js +7 -0
  102. package/lib/components/htmlParser/parser/tableHeader/getTableHeader.module.css +28 -0
  103. package/lib/components/htmlParser/parser/tableHeaderCell/getTableHeaderCell.d.ts +1 -0
  104. package/lib/components/htmlParser/parser/tableHeaderCell/getTableHeaderCell.js +6 -0
  105. package/lib/components/htmlParser/parser/tableRow/getTableRow.d.ts +1 -0
  106. package/lib/components/htmlParser/parser/tableRow/getTableRow.js +7 -0
  107. package/lib/components/htmlParser/parser/tableRow/getTableRow.module.css +29 -0
  108. package/lib/components/htmlParser/parser/useHtmlParser.d.ts +5 -0
  109. package/lib/components/htmlParser/parser/useHtmlParser.js +78 -0
  110. package/lib/components/htmlParser/useGitHubDirectories.d.ts +10 -0
  111. package/lib/components/htmlParser/useGitHubDirectories.js +31 -0
  112. package/lib/components/imageDivider/ImageDivider.d.ts +7 -7
  113. package/lib/components/imageDivider/ImageDivider.js +6 -6
  114. package/lib/components/imageDivider/imageDivider.module.css +5 -5
  115. package/lib/components/logo/Logo.d.ts +8 -8
  116. package/lib/components/logo/Logo.js +10 -10
  117. package/lib/components/logo/Logo.module.css +15 -15
  118. package/lib/components/metaIcon/MetaIcon.d.ts +7 -7
  119. package/lib/components/metaIcon/MetaIcon.js +3 -3
  120. package/lib/components/metaIcon/MetaIcon.module.css +29 -29
  121. package/lib/components/notificationPopUp/NotificationPopUp.d.ts +26 -26
  122. package/lib/components/notificationPopUp/NotificationPopUp.js +32 -32
  123. package/lib/components/privateRoute/PrivateRoute.d.ts +6 -6
  124. package/lib/components/privateRoute/PrivateRoute.js +15 -15
  125. package/lib/components/quoteWrapper/QuoteWrapper.d.ts +7 -7
  126. package/lib/components/quoteWrapper/QuoteWrapper.js +5 -5
  127. package/lib/components/quoteWrapper/QuoteWrapper.module.css +12 -12
  128. package/lib/components/statusSteps/StatusSteps.d.ts +13 -0
  129. package/lib/components/statusSteps/StatusSteps.js +5 -0
  130. package/lib/components/tableWrapper/TableWrapper.d.ts +4 -4
  131. package/lib/components/tableWrapper/TableWrapper.js +30 -30
  132. package/lib/components/tabs/Tabs.d.ts +5 -5
  133. package/lib/components/tabs/Tabs.js +49 -49
  134. package/lib/components/tag/Tag.d.ts +10 -10
  135. package/lib/components/tag/Tag.js +6 -6
  136. package/lib/components/tag/Tag.module.css +44 -44
  137. package/lib/components/toolTip/ToolTip.d.ts +14 -14
  138. package/lib/components/toolTip/ToolTip.js +14 -14
  139. package/lib/components/topNav/index.d.ts +3 -3
  140. package/lib/components/topNav/index.js +3 -3
  141. package/lib/components/topNav/primaryTopNav/PrimaryTopNav.d.ts +39 -20
  142. package/lib/components/topNav/primaryTopNav/PrimaryTopNav.js +23 -34
  143. package/lib/components/topNav/primaryTopNav/PrimaryTopNav.module.css +10 -5
  144. package/lib/components/topNav/secondaryTopNav/SecondaryTopNav.d.ts +12 -12
  145. package/lib/components/topNav/secondaryTopNav/SecondaryTopNav.js +7 -7
  146. package/lib/custom.d copy.d.ts +5 -0
  147. package/lib/custom.d copy.js +1 -0
  148. package/lib/index.d.ts +27 -27
  149. package/lib/index.js +20 -20
  150. package/package.json +1 -1
  151. package/src/components/badgeCounter/BadgeCounter.module.css +27 -27
  152. package/src/components/card/infoCard/InfoCard.module.css +26 -26
  153. package/src/components/codeBlock/CodeBlock.module.css +6 -6
  154. package/src/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.css +222 -222
  155. package/src/components/formFields/checkbox/Checkbox.module.css +7 -7
  156. package/src/components/formFields/date/Date.module.css +12 -12
  157. package/src/components/formFields/select/select.module.css +1 -1
  158. package/src/components/imageDivider/imageDivider.module.css +5 -5
  159. package/src/components/logo/Logo.module.css +15 -15
  160. package/src/components/metaIcon/MetaIcon.module.css +29 -29
  161. package/src/components/quoteWrapper/QuoteWrapper.module.css +12 -12
  162. package/src/components/tag/Tag.module.css +44 -44
  163. package/src/components/topNav/index.ts +4 -4
  164. package/src/components/topNav/primaryTopNav/PrimaryTopNav.module.css +10 -5
  165. package/src/components/topNav/primaryTopNav/PrimaryTopNav.tsx +63 -47
  166. package/src/custom.d.ts +4 -4
  167. package/lib/components/temp/Temp.d.ts +0 -5
  168. package/lib/components/temp/Temp.js +0 -14
@@ -1,36 +1,36 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import * as React from "react";
3
- import * as styles from "./HorizontalOverflowWrapper.module.css";
4
- import clsx from "clsx";
5
- import { Button } from "@utrecht/component-library-react/dist/css-module";
6
- import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
7
- import { faChevronLeft, faChevronRight } from "@fortawesome/free-solid-svg-icons";
8
- export const HorizontalOverflowWrapper = ({ children, ariaLabels }) => {
9
- const [canScrollRight, setCanScrollRight] = React.useState(false);
10
- const [canScrollLeft, setCanScrollLeft] = React.useState(false);
11
- const wrapperRef = React.useRef(null);
12
- const scrollRight = () => {
13
- wrapperRef.current?.scrollTo({
14
- left: wrapperRef.current.scrollLeft + wrapperRef.current.clientWidth * 0.9,
15
- behavior: "smooth",
16
- });
17
- };
18
- const scrollLeft = () => {
19
- wrapperRef.current?.scrollTo({
20
- left: wrapperRef.current.scrollLeft - wrapperRef.current.clientWidth * 0.9,
21
- behavior: "smooth",
22
- });
23
- };
24
- React.useEffect(() => {
25
- checkScrollDirections(); // initiate available scroll directions
26
- window.addEventListener("resize", checkScrollDirections);
27
- return () => window.removeEventListener("resize", checkScrollDirections);
28
- }, []);
29
- const checkScrollDirections = () => {
30
- if (!wrapperRef.current)
31
- return;
32
- setCanScrollRight(wrapperRef.current.scrollLeft + wrapperRef.current.clientWidth < wrapperRef.current.scrollWidth);
33
- setCanScrollLeft(wrapperRef.current.scrollLeft > 0);
34
- };
35
- return (_jsxs("div", { className: styles.container, children: [canScrollLeft && (_jsx(Button, { className: clsx(styles.scrollButton, styles.left), onClick: scrollLeft, appearance: "secondary-action-button", "aria-label": ariaLabels.scrollLeftButton, children: _jsx(FontAwesomeIcon, { icon: faChevronLeft }) })), canScrollRight && (_jsx(Button, { className: clsx(styles.scrollButton, styles.right), onClick: scrollRight, appearance: "secondary-action-button", "aria-label": ariaLabels.scrollRightButton, children: _jsx(FontAwesomeIcon, { icon: faChevronRight }) })), _jsx("div", { ref: wrapperRef, className: styles.wrapper, onScroll: checkScrollDirections, children: children })] }));
36
- };
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import * as styles from "./HorizontalOverflowWrapper.module.css";
4
+ import clsx from "clsx";
5
+ import { Button } from "@utrecht/component-library-react/dist/css-module";
6
+ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
7
+ import { faChevronLeft, faChevronRight } from "@fortawesome/free-solid-svg-icons";
8
+ export const HorizontalOverflowWrapper = ({ children, ariaLabels }) => {
9
+ const [canScrollRight, setCanScrollRight] = React.useState(false);
10
+ const [canScrollLeft, setCanScrollLeft] = React.useState(false);
11
+ const wrapperRef = React.useRef(null);
12
+ const scrollRight = () => {
13
+ wrapperRef.current?.scrollTo({
14
+ left: wrapperRef.current.scrollLeft + wrapperRef.current.clientWidth * 0.9,
15
+ behavior: "smooth",
16
+ });
17
+ };
18
+ const scrollLeft = () => {
19
+ wrapperRef.current?.scrollTo({
20
+ left: wrapperRef.current.scrollLeft - wrapperRef.current.clientWidth * 0.9,
21
+ behavior: "smooth",
22
+ });
23
+ };
24
+ React.useEffect(() => {
25
+ checkScrollDirections(); // initiate available scroll directions
26
+ window.addEventListener("resize", checkScrollDirections);
27
+ return () => window.removeEventListener("resize", checkScrollDirections);
28
+ }, []);
29
+ const checkScrollDirections = () => {
30
+ if (!wrapperRef.current)
31
+ return;
32
+ setCanScrollRight(wrapperRef.current.scrollLeft + wrapperRef.current.clientWidth < wrapperRef.current.scrollWidth);
33
+ setCanScrollLeft(wrapperRef.current.scrollLeft > 0);
34
+ };
35
+ return (_jsxs("div", { className: styles.container, children: [canScrollLeft && (_jsx(Button, { className: clsx(styles.scrollButton, styles.left), onClick: scrollLeft, appearance: "secondary-action-button", "aria-label": ariaLabels.scrollLeftButton, children: _jsx(FontAwesomeIcon, { icon: faChevronLeft }) })), canScrollRight && (_jsx(Button, { className: clsx(styles.scrollButton, styles.right), onClick: scrollRight, appearance: "secondary-action-button", "aria-label": ariaLabels.scrollRightButton, children: _jsx(FontAwesomeIcon, { icon: faChevronRight }) })), _jsx("div", { ref: wrapperRef, className: styles.wrapper, onScroll: checkScrollDirections, children: children })] }));
36
+ };
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import { UseQueryResult } from "react-query";
3
+ interface ParsedHTMLProps {
4
+ contentQuery: UseQueryResult<any, Error>;
5
+ location: string;
6
+ directories: string;
7
+ layoutClassName?: string;
8
+ }
9
+ export declare const ParsedHTML: React.FC<ParsedHTMLProps>;
10
+ export {};
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as styles from "./ParsedHTML.module.css";
3
+ import Parser from "html-react-parser";
4
+ import Skeleton from "react-loading-skeleton";
5
+ import { Alert } from "@utrecht/component-library-react/dist/css-module";
6
+ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
7
+ import { faWarning } from "@fortawesome/free-solid-svg-icons";
8
+ import clsx from "clsx";
9
+ import { useHtmlParser } from "./parser/useHtmlParser";
10
+ export const ParsedHTML = ({ contentQuery, location, layoutClassName, directories }) => {
11
+ const { options } = useHtmlParser(location, directories);
12
+ if (contentQuery.isLoading)
13
+ return (_jsx("div", { className: styles.container, children: _jsx(Skeleton, { height: "200px" }) }));
14
+ if (contentQuery.isError)
15
+ return (_jsx("div", { className: styles.container, children: _jsx(Alert, { icon: _jsx(FontAwesomeIcon, { icon: faWarning }), type: "error", children: "Oops, something went wrong retrieving the .md file from GitHub." }) }));
16
+ return (_jsx("div", { className: clsx(styles.container, layoutClassName && layoutClassName), children: Parser(contentQuery.data, options) }));
17
+ };
@@ -0,0 +1,7 @@
1
+ .container {
2
+ margin-block-start: var(--utrecht-space-block-3xl);
3
+ }
4
+
5
+ .container > div > article > *:not(:last-child) {
6
+ margin-block-end: var(--utrecht-space-block-lg);
7
+ }
@@ -0,0 +1 @@
1
+ export declare const getAlert: (children: any, options: any, type: any) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as styles from "./getAlert.module.css";
3
+ import { Alert } from "@utrecht/component-library-react/dist/css-module";
4
+ import { domToReact } from "html-react-parser";
5
+ export const getAlert = (children, options, type) => {
6
+ switch (true) {
7
+ case type.includes("note") || type.includes("info"):
8
+ return (_jsx(Alert, { className: styles.info, type: "info", children: domToReact(children, options) }));
9
+ case type.includes("error"):
10
+ return (_jsx(Alert, { className: styles.error, type: "error", children: domToReact(children, options) }));
11
+ case type.includes("warning"):
12
+ return (_jsx(Alert, { className: styles.warning, type: "warning", children: domToReact(children, options) }));
13
+ case type.includes("succes") || type.includes("ok"):
14
+ return (_jsx(Alert, { className: styles.ok, type: "ok", children: domToReact(children, options) }));
15
+ default:
16
+ return _jsx(Alert, { type: "info", children: domToReact(children, options) });
17
+ }
18
+ };
@@ -0,0 +1,28 @@
1
+ .info svg {
2
+ fill: var(--utrecht-alert-icon-info-color);
3
+ }
4
+ .info p {
5
+ color: var(--utrecht-alert-info-color);
6
+ }
7
+
8
+ .warning svg {
9
+ fill: var(--utrecht-alert-icon-warning-color);
10
+ }
11
+ .warning p {
12
+ color: var(--utrecht-alert-warning-color);
13
+ }
14
+
15
+ .error svg {
16
+ fill: var(--utrecht-alert-icon-error-color);
17
+ }
18
+ .error p {
19
+ color: var(--utrecht-alert-error-color);
20
+ }
21
+
22
+ .ok svg {
23
+ fill: var(--utrecht-alert-icon-ok-color);
24
+ }
25
+ .ok p {
26
+ color: var(--utrecht-alert-ok-color);
27
+ }
28
+
@@ -0,0 +1,2 @@
1
+ import { TGitHubDirectory } from "../../useGitHubDirectories";
2
+ export declare const getAnchor: (props: any, children: any, options: any, directories: TGitHubDirectory[], location: string) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,74 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import _ from "lodash";
3
+ import { Link } from "@utrecht/component-library-react/dist/css-module";
4
+ import { navigate } from "gatsby";
5
+ import { domToReact } from "html-react-parser";
6
+ export const getAnchor = (props, children, options, directories, location) => {
7
+ const handleClick = (e) => {
8
+ e.preventDefault();
9
+ const targetFile = _.upperFirst(props.href.substring(props.href.lastIndexOf("/") + 1).replace(".md", ""));
10
+ // No link
11
+ if (!props.href) {
12
+ navigate("#");
13
+ return;
14
+ }
15
+ // Anchor Links
16
+ if (props.className === "anchor" || Array.from(props.href)[0] === "#") {
17
+ handleAnchorClick(props); // handles on-page scroll anchors
18
+ return;
19
+ }
20
+ // Internal Links
21
+ if (!props.href.includes("://")) {
22
+ handleInternalLinks(props, targetFile, location, directories);
23
+ return;
24
+ }
25
+ // External Links
26
+ if (props.href.includes("://")) {
27
+ open(props.href);
28
+ return;
29
+ }
30
+ };
31
+ const attributes = {
32
+ ...props,
33
+ onClick: handleClick,
34
+ };
35
+ return _jsx(Link, { ...attributes, children: domToReact(children, options) });
36
+ };
37
+ const handleInternalLinks = (props, targetFile, location, directories) => {
38
+ // Internal Links: same directory
39
+ if (!props.href.includes("/")) {
40
+ const targetDirectory = _.upperFirst(location.split("/").reverse()[1]);
41
+ navigate(`/pages/${targetDirectory}/${targetFile}`);
42
+ return; // ensure no other flow is triggered
43
+ }
44
+ // Internal Links: homepage
45
+ if (props.href.includes("/") && location === "/") {
46
+ const directoryFound = directories.some((directory) => directory.location === props.href);
47
+ if (directoryFound)
48
+ navigate(`/pages/${targetFile}`);
49
+ return; // ensure no other flow is triggered
50
+ }
51
+ // Internal Links: different directory
52
+ if (props.href.includes("/")) {
53
+ const targetDirectory = props.href.split("/").reverse()[1];
54
+ const directoryFound = directories.some((directory) => directory.location.substring(directory.location.lastIndexOf("/") + 1) === targetDirectory);
55
+ // Internal Link exists: redirect to page
56
+ if (directoryFound) {
57
+ navigate(`/pages/${_.upperFirst(targetDirectory)}/${targetFile}`);
58
+ }
59
+ // Internal Link does not exist: redirect to online GitHub environment (TODO)
60
+ if (!directoryFound) {
61
+ const hrefWithLeadingSlash = !props.href.startsWith("/") ? `/${props.href}` : props.href;
62
+ open(`${process.env.GATSBY_GITHUB_REPOSITORY_URL}/blob/master${hrefWithLeadingSlash}`);
63
+ }
64
+ return; // ensure no other flow is triggered
65
+ }
66
+ };
67
+ const handleAnchorClick = (props) => {
68
+ const targetId = props.id ?? props.href.replace("#", "user-content-");
69
+ const target = document.getElementById(targetId);
70
+ const headerHeight = document.getElementById("header")?.clientHeight ?? 100;
71
+ if (target) {
72
+ window.scrollTo({ top: target.offsetTop - (headerHeight + 24), behavior: "smooth" }); // +24 simply adds some padding
73
+ }
74
+ };
@@ -0,0 +1 @@
1
+ export declare const getCode: (name: string, props: any, children: any, options: any) => import("react/jsx-runtime").JSX.Element | undefined;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Code, CodeBlock } from "@utrecht/component-library-react/dist/css-module";
3
+ import { domToReact } from "html-react-parser";
4
+ export const getCode = (name, props, children, options) => {
5
+ switch (name) {
6
+ case "code":
7
+ return _jsx(Code, { ...props, children: domToReact(children, options) });
8
+ case "pre":
9
+ return _jsx(CodeBlock, { ...props, children: domToReact(children, options) });
10
+ }
11
+ };
@@ -0,0 +1 @@
1
+ export declare const getBlockquote: (children: any, options: any) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Alert } from "@utrecht/component-library-react/dist/css-module";
3
+ import { domToReact } from "html-react-parser";
4
+ export const getBlockquote = (children, options) => {
5
+ return _jsx(Alert, { children: domToReact(children, options) });
6
+ };
@@ -0,0 +1 @@
1
+ export declare const getHeader: (name: string, props: any, children: any, options: any) => import("react/jsx-runtime").JSX.Element | undefined;
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Heading1, Heading2, Heading3, Heading4 } from "@utrecht/component-library-react/dist/css-module";
3
+ import { domToReact } from "html-react-parser";
4
+ export const getHeader = (name, props, children, options) => {
5
+ switch (name) {
6
+ case "h1":
7
+ return _jsx(Heading1, { ...props, children: domToReact(children, options) });
8
+ case "h2":
9
+ return _jsx(Heading2, { ...props, children: domToReact(children, options) });
10
+ case "h3":
11
+ return _jsx(Heading3, { ...props, children: domToReact(children, options) });
12
+ case "h4":
13
+ return _jsx(Heading4, { ...props, children: domToReact(children, options) });
14
+ }
15
+ };
@@ -0,0 +1 @@
1
+ export declare const getImage: (props: any) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Image } from "@utrecht/component-library-react/dist/css-module";
3
+ export const getImage = (props) => {
4
+ let src = props.src;
5
+ if (!props.src.includes("https://" || "http://")) {
6
+ const sessionUrl = process.env.GATSBY_GITHUB_REPOSITORY_URL;
7
+ const url = sessionUrl?.replace("https://github.com/", "");
8
+ src = `https://raw.githubusercontent.com/${url}/master/docs/features/${props.src}`;
9
+ }
10
+ let alt = props.alt;
11
+ if (!props.alt) {
12
+ alt = props.title;
13
+ }
14
+ if (!props.alt && !props.title) {
15
+ alt = props.src;
16
+ }
17
+ const attributes = {
18
+ ...props,
19
+ src,
20
+ alt,
21
+ href: "",
22
+ onClick: (e) => {
23
+ e.stopPropagation();
24
+ open(src);
25
+ },
26
+ };
27
+ return _jsx(Image, { ...attributes });
28
+ };
@@ -0,0 +1 @@
1
+ export declare const getList: (name: string, props: any, children: any, options: any) => import("react/jsx-runtime").JSX.Element | undefined;
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as styles from "./getList.module.css";
3
+ import { OrderedList, UnorderedList } from "@utrecht/component-library-react/dist/css-module";
4
+ import { domToReact } from "html-react-parser";
5
+ export const getList = (name, props, children, options) => {
6
+ switch (name) {
7
+ case "ol":
8
+ return (_jsx(OrderedList, { className: styles.list, ...props, children: domToReact(children, options) }));
9
+ case "ul":
10
+ return (_jsx(UnorderedList, { className: styles.list, ...props, children: domToReact(children, options) }));
11
+ }
12
+ };
@@ -0,0 +1,3 @@
1
+ .list {
2
+ width: 100% !important;
3
+ }
@@ -0,0 +1 @@
1
+ export declare const getListItem: (props: any, parent: any, children: any, options: any) => import("react/jsx-runtime").JSX.Element | undefined;
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { OrderedListItem, UnorderedListItem } from "@utrecht/component-library-react/dist/css-module";
3
+ import { domToReact } from "html-react-parser";
4
+ export const getListItem = (props, parent, children, options) => {
5
+ switch (parent.name) {
6
+ case "ol":
7
+ return _jsx(OrderedListItem, { ...props, children: domToReact(children, options) });
8
+ case "ul":
9
+ return _jsx(UnorderedListItem, { ...props, children: domToReact(children, options) });
10
+ }
11
+ return;
12
+ };
@@ -0,0 +1 @@
1
+ export declare const getParagraph: (props: any, children: any, options: any) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Paragraph } from "@utrecht/component-library-react/dist/css-module";
3
+ import { domToReact } from "html-react-parser";
4
+ export const getParagraph = (props, children, options) => {
5
+ return _jsx(Paragraph, { ...props, children: domToReact(children, options) });
6
+ };
@@ -0,0 +1 @@
1
+ export declare const getSvg: (props: any, children: any, options: any) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
+ import { domToReact } from "html-react-parser";
3
+ export const getSvg = (props, children, options) => {
4
+ if (props.className.includes("octicon octicon-link")) {
5
+ return _jsx(_Fragment, {});
6
+ }
7
+ return _jsx("svg", { ...props, children: domToReact(children, options) });
8
+ };
@@ -0,0 +1 @@
1
+ export declare const getTable: (props: any, children: any, options: any) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as styles from "./getTable.module.css";
3
+ import { Table } from "@utrecht/component-library-react/dist/css-module";
4
+ import { domToReact } from "html-react-parser";
5
+ export const getTable = (props, children, options) => {
6
+ return (_jsx(Table, { className: styles.table, ...props, children: domToReact(children, options) }));
7
+ };
@@ -0,0 +1,3 @@
1
+ .table {
2
+ background-color: var(--utrecht-table-background-color) !important;
3
+ }
@@ -0,0 +1 @@
1
+ export declare const getTableBody: (props: any, children: any, options: any) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as styles from "./getTableBody.module.css";
3
+ import { TableBody } from "@utrecht/component-library-react/dist/css-module";
4
+ import { domToReact } from "html-react-parser";
5
+ export const getTableBody = (props, children, options) => {
6
+ return (_jsx(TableBody, { className: styles.tableBody, ...props, children: domToReact(children, options) }));
7
+ };
@@ -0,0 +1,3 @@
1
+ .tableBody {
2
+ border: var(--utrecht-table-body-border);
3
+ }
@@ -0,0 +1 @@
1
+ export declare const getTableCell: (props: any, children: any, options: any) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as styles from "./getTableCell.module.css";
3
+ import { TableCell } from "@utrecht/component-library-react/dist/css-module";
4
+ import { domToReact } from "html-react-parser";
5
+ export const getTableCell = (props, children, options) => {
6
+ return (_jsx(TableCell, { className: styles.tableCell, ...props, children: domToReact(children, options) }));
7
+ };
@@ -0,0 +1,3 @@
1
+ .tableCell {
2
+ vertical-align: middle !important;
3
+ }
@@ -0,0 +1 @@
1
+ export declare const getTableHeader: (props: any, children: any, options: any) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as styles from "./getTableHeader.module.css";
3
+ import { TableHeader } from "@utrecht/component-library-react/dist/css-module";
4
+ import { domToReact } from "html-react-parser";
5
+ export const getTableHeader = (props, children, options) => {
6
+ return (_jsx(TableHeader, { className: styles.tableHeader, ...props, children: domToReact(children, options) }));
7
+ };
@@ -0,0 +1,28 @@
1
+ .tableHeader {
2
+ font-family: var(--utrecht-table-header-font-family);
3
+ }
4
+
5
+ .tableHeader > * {
6
+ border-block-end: var(--utrecht-table-header-border-block-end-width) solid
7
+ var(--utrecht-table-header-border-block-end-color);
8
+ }
9
+
10
+ .tableHeader > tr:nth-child(odd) {
11
+ background-color: inherit;
12
+ color: inherit;
13
+ }
14
+
15
+ .tableHeader > tr:nth-child(odd):hover {
16
+ background-color: inherit;
17
+ color: inherit;
18
+ }
19
+
20
+ .tableHeader > tr:nth-child(even) {
21
+ background-color: inherit;
22
+ color: inherit;
23
+ }
24
+
25
+ .tableHeader > tr:nth-child(even):hover {
26
+ background-color: inherit;
27
+ color: inherit;
28
+ }
@@ -0,0 +1 @@
1
+ export declare const getTableHeaderCell: (props: any, children: any, options: any) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { TableHeaderCell } from "@utrecht/component-library-react/dist/css-module";
3
+ import { domToReact } from "html-react-parser";
4
+ export const getTableHeaderCell = (props, children, options) => {
5
+ return _jsx(TableHeaderCell, { ...props, children: domToReact(children, options) });
6
+ };
@@ -0,0 +1 @@
1
+ export declare const getTableRow: (props: any, children: any, options: any) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as styles from "./getTableRow.module.css";
3
+ import { TableRow } from "@utrecht/component-library-react/dist/css-module";
4
+ import { domToReact } from "html-react-parser";
5
+ export const getTableRow = (props, children, options) => {
6
+ return (_jsx(TableRow, { className: styles.tableRow, ...props, children: domToReact(children, options) }));
7
+ };
@@ -0,0 +1,29 @@
1
+ .tableRow:nth-child(odd) {
2
+ background-color: var(--utrecht-table-row-alternate-odd-background-color);
3
+ color: var(--utrecht-table-row-alternate-odd-color);
4
+ }
5
+
6
+ .tableRow:nth-child(odd):hover {
7
+ background-color: var(--utrecht-table-row-hover-background-color);
8
+ color: var(--utrecht-table-row-hover-color);
9
+ }
10
+
11
+ .tableRow:nth-child(even) {
12
+ background-color: var(--utrecht-table-row-alternate-even-background-color);
13
+ color: var(--utrecht-table-row-alternate-even-color);
14
+ }
15
+
16
+ .tableRow:nth-child(even):hover {
17
+ background-color: var(--utrecht-table-row-hover-background-color);
18
+ color: var(--utrecht-table-row-hover-color);
19
+ }
20
+
21
+ .tableRow:nth-child(even) {
22
+ background-color: var(--utrecht-table-row-alternate-even-background-color);
23
+ color: var(--utrecht-table-row-alternate-even-color);
24
+ }
25
+
26
+ .tableRow:nth-child(even):hover {
27
+ background-color: var(--utrecht-table-row-hover-background-color);
28
+ color: var(--utrecht-table-row-hover-color);
29
+ }
@@ -0,0 +1,5 @@
1
+ export declare const useHtmlParser: (location: string, directoriesJson: string) => {
2
+ options: {
3
+ replace: ({ attribs, parent, children, name }: any) => import("react/jsx-runtime").JSX.Element | undefined;
4
+ };
5
+ };
@@ -0,0 +1,78 @@
1
+ import { attributesToProps } from "html-react-parser";
2
+ import { getHeader } from "./header/getHeader";
3
+ import { getAnchor } from "./anchor/getAnchor";
4
+ import { getListItem } from "./listItem/getListItem";
5
+ import { getImage } from "./image/getImage";
6
+ import { getList } from "./list/getList";
7
+ import { getParagraph } from "./paragraph/getParagraph";
8
+ import { getBlockquote } from "./getBlockquote/getBlockquote";
9
+ import { getTable } from "./table/getTable";
10
+ import { getTableRow } from "./tableRow/getTableRow";
11
+ import { getTableHeader } from "./tableHeader/getTableHeader";
12
+ import { getTableHeaderCell } from "./tableHeaderCell/getTableHeaderCell";
13
+ import { getTableBody } from "./tableBody/getTableBody";
14
+ import { getTableCell } from "./tableCell/getTableCell";
15
+ import { getCode } from "./code/getCode";
16
+ import { getAlert } from "./alert/getAlert";
17
+ import { useGitHubDirectories } from "../useGitHubDirectories";
18
+ import { getSvg } from "./svg/getSvg";
19
+ export const useHtmlParser = (location, directoriesJson) => {
20
+ const { directories } = useGitHubDirectories(directoriesJson);
21
+ const options = {
22
+ replace: ({ attribs, parent, children, name }) => {
23
+ if (!attribs) {
24
+ return;
25
+ }
26
+ const props = attributesToProps(attribs);
27
+ if (attribs && (name === "h1" || name === "h2" || name === "h3" || name === "h4")) {
28
+ return getHeader(name, props, children, options);
29
+ }
30
+ if (attribs && name === "p") {
31
+ return getParagraph(props, children, options);
32
+ }
33
+ if (attribs && name === "a") {
34
+ return getAnchor(props, children, options, directories, location);
35
+ }
36
+ if (attribs && (name === "ol" || name === "ul")) {
37
+ return getList(name, props, children, options);
38
+ }
39
+ if (attribs && name === "li") {
40
+ return getListItem(props, parent, children, options);
41
+ }
42
+ if (attribs && name === "img") {
43
+ return getImage(props);
44
+ }
45
+ if (attribs && name === "blockquote") {
46
+ return getBlockquote(children, options);
47
+ }
48
+ if (attribs && name === "div" && attribs.class?.includes("markdown-alert")) {
49
+ return getAlert(children, options, attribs.class);
50
+ }
51
+ if (attribs && name === "table") {
52
+ return getTable(props, children, options);
53
+ }
54
+ if (attribs && name === "tr") {
55
+ return getTableRow(props, children, options);
56
+ }
57
+ if (attribs && name === "thead") {
58
+ return getTableHeader(props, children, options);
59
+ }
60
+ if (attribs && name === "th") {
61
+ return getTableHeaderCell(props, children, options);
62
+ }
63
+ if (attribs && name === "tbody") {
64
+ return getTableBody(props, children, options);
65
+ }
66
+ if (attribs && name === "td") {
67
+ return getTableCell(props, children, options);
68
+ }
69
+ if (attribs && name === "svg") {
70
+ return getSvg(props, children, options);
71
+ }
72
+ if (attribs && (name === "code" || name === "pre")) {
73
+ return getCode(name, props, children, options);
74
+ }
75
+ },
76
+ };
77
+ return { options };
78
+ };