@conduction/components 2.2.15 → 2.2.17

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 (121) hide show
  1. package/.prettierrc +30 -30
  2. package/README.md +2 -1
  3. package/lib/components/Pagination/Pagination.d.ts +14 -9
  4. package/lib/components/Pagination/Pagination.js +12 -12
  5. package/lib/components/Pagination/Pagination.module.css +3 -3
  6. package/lib/components/badgeCounter/BadgeCounter.d.ts +8 -8
  7. package/lib/components/badgeCounter/BadgeCounter.js +4 -4
  8. package/lib/components/badgeCounter/BadgeCounter.module.css +27 -27
  9. package/lib/components/card/cardHeader/CardHeader.d.ts +4 -4
  10. package/lib/components/card/cardHeader/CardHeader.js +14 -14
  11. package/lib/components/card/cardWrapper/CardWrapper.d.ts +2 -2
  12. package/lib/components/card/cardWrapper/CardWrapper.js +6 -6
  13. package/lib/components/card/detailsCard/DetailsCard.d.ts +14 -14
  14. package/lib/components/card/detailsCard/DetailsCard.js +11 -11
  15. package/lib/components/card/downloadCard/DownloadCard.d.ts +11 -11
  16. package/lib/components/card/downloadCard/DownloadCard.js +9 -9
  17. package/lib/components/card/horizontalImageCard/HorizontalImageCard.d.ts +13 -13
  18. package/lib/components/card/horizontalImageCard/HorizontalImageCard.js +10 -10
  19. package/lib/components/card/imageAndDetailsCard/ImageAndDetailsCard.d.ts +14 -14
  20. package/lib/components/card/imageAndDetailsCard/ImageAndDetailsCard.js +10 -10
  21. package/lib/components/card/index.d.ts +8 -8
  22. package/lib/components/card/index.js +8 -8
  23. package/lib/components/card/infoCard/InfoCard.d.ts +8 -8
  24. package/lib/components/card/infoCard/InfoCard.js +6 -6
  25. package/lib/components/card/infoCard/InfoCard.module.css +26 -26
  26. package/lib/components/card/richContentCard/RichContentCard.d.ts +19 -19
  27. package/lib/components/card/richContentCard/RichContentCard.js +16 -15
  28. package/lib/components/codeBlock/CodeBlock.d.ts +6 -6
  29. package/lib/components/codeBlock/CodeBlock.js +3 -3
  30. package/lib/components/codeBlock/CodeBlock.module.css +6 -6
  31. package/lib/components/container/Container.d.ts +6 -6
  32. package/lib/components/container/Container.js +4 -4
  33. package/lib/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.css +222 -222
  34. package/lib/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.d.ts +17 -17
  35. package/lib/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.js +20 -20
  36. package/lib/components/denhaag-wrappers/pagination/Pagination.css +120 -120
  37. package/lib/components/denhaag-wrappers/pagination/Pagination.d.ts +9 -9
  38. package/lib/components/denhaag-wrappers/pagination/Pagination.js +15 -15
  39. package/lib/components/editableTableRow/EditableTableRow.d.ts +14 -14
  40. package/lib/components/editableTableRow/EditableTableRow.js +31 -31
  41. package/lib/components/editableTableRow/EditableTableRow.module.css +25 -25
  42. package/lib/components/formFields/checkbox/Checkbox.module.css +7 -7
  43. package/lib/components/formFields/checkbox/checkbox.d.ts +9 -9
  44. package/lib/components/formFields/checkbox/checkbox.js +3 -3
  45. package/lib/components/formFields/createKeyValue/CreateKeyValue.d.ts +23 -23
  46. package/lib/components/formFields/createKeyValue/CreateKeyValue.js +40 -40
  47. package/lib/components/formFields/date/Date.d.ts +12 -12
  48. package/lib/components/formFields/date/Date.js +10 -10
  49. package/lib/components/formFields/date/Date.module.css +12 -12
  50. package/lib/components/formFields/errorMessage/ErrorMessage.d.ts +5 -5
  51. package/lib/components/formFields/errorMessage/ErrorMessage.js +3 -3
  52. package/lib/components/formFields/index.d.ts +7 -7
  53. package/lib/components/formFields/index.js +7 -7
  54. package/lib/components/formFields/input.d.ts +22 -22
  55. package/lib/components/formFields/input.js +12 -12
  56. package/lib/components/formFields/radio.d.ts +9 -9
  57. package/lib/components/formFields/radio.js +3 -3
  58. package/lib/components/formFields/select/select.d.ts +24 -24
  59. package/lib/components/formFields/select/select.js +110 -110
  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/imageDivider/ImageDivider.d.ts +7 -7
  65. package/lib/components/imageDivider/ImageDivider.js +6 -6
  66. package/lib/components/imageDivider/imageDivider.module.css +5 -5
  67. package/lib/components/logo/Logo.d.ts +8 -8
  68. package/lib/components/logo/Logo.js +10 -10
  69. package/lib/components/logo/Logo.module.css +15 -15
  70. package/lib/components/metaIcon/MetaIcon.d.ts +7 -7
  71. package/lib/components/metaIcon/MetaIcon.js +3 -3
  72. package/lib/components/metaIcon/MetaIcon.module.css +29 -29
  73. package/lib/components/notificationPopUp/NotificationPopUp.d.ts +26 -26
  74. package/lib/components/notificationPopUp/NotificationPopUp.js +32 -32
  75. package/lib/components/privateRoute/PrivateRoute.d.ts +6 -6
  76. package/lib/components/privateRoute/PrivateRoute.js +15 -15
  77. package/lib/components/quoteWrapper/QuoteWrapper.d.ts +7 -7
  78. package/lib/components/quoteWrapper/QuoteWrapper.js +5 -5
  79. package/lib/components/quoteWrapper/QuoteWrapper.module.css +12 -12
  80. package/lib/components/tableWrapper/TableWrapper.d.ts +4 -4
  81. package/lib/components/tableWrapper/TableWrapper.js +30 -30
  82. package/lib/components/tabs/Tabs.d.ts +5 -5
  83. package/lib/components/tabs/Tabs.js +43 -43
  84. package/lib/components/tag/Tag.d.ts +10 -10
  85. package/lib/components/tag/Tag.js +6 -6
  86. package/lib/components/tag/Tag.module.css +44 -44
  87. package/lib/components/temp/Temp.d.ts +5 -0
  88. package/lib/components/temp/Temp.js +14 -0
  89. package/lib/components/toolTip/ToolTip.d.ts +14 -14
  90. package/lib/components/toolTip/ToolTip.js +14 -14
  91. package/lib/components/topNav/index.d.ts +3 -3
  92. package/lib/components/topNav/index.js +3 -3
  93. package/lib/components/topNav/primaryTopNav/PrimaryTopNav.d.ts +20 -20
  94. package/lib/components/topNav/primaryTopNav/PrimaryTopNav.js +34 -34
  95. package/lib/components/topNav/secondaryTopNav/SecondaryTopNav.d.ts +12 -12
  96. package/lib/components/topNav/secondaryTopNav/SecondaryTopNav.js +7 -7
  97. package/lib/index.d.ts +27 -27
  98. package/lib/index.js +20 -20
  99. package/package.json +1 -1
  100. package/src/components/Pagination/Pagination.module.css +3 -3
  101. package/src/components/Pagination/Pagination.tsx +17 -3
  102. package/src/components/badgeCounter/BadgeCounter.module.css +27 -27
  103. package/src/components/card/infoCard/InfoCard.module.css +26 -26
  104. package/src/components/codeBlock/CodeBlock.module.css +6 -6
  105. package/src/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.css +222 -222
  106. package/src/components/formFields/checkbox/Checkbox.module.css +7 -7
  107. package/src/components/formFields/date/Date.module.css +12 -12
  108. package/src/components/formFields/input.tsx +1 -1
  109. package/src/components/formFields/select/select.tsx +1 -1
  110. package/src/components/formFields/textarea.tsx +1 -1
  111. package/src/components/imageDivider/imageDivider.module.css +5 -5
  112. package/src/components/logo/Logo.module.css +15 -15
  113. package/src/components/metaIcon/MetaIcon.module.css +29 -29
  114. package/src/components/quoteWrapper/QuoteWrapper.module.css +12 -12
  115. package/src/components/tag/Tag.module.css +44 -44
  116. package/src/components/topNav/index.ts +4 -4
  117. package/src/custom.d.ts +4 -4
  118. package/lib/components/statusSteps/StatusSteps.d.ts +0 -13
  119. package/lib/components/statusSteps/StatusSteps.js +0 -5
  120. package/lib/custom.d copy.d.ts +0 -5
  121. package/lib/custom.d copy.js +0 -1
@@ -1,10 +1,10 @@
1
- /// <reference types="react" />
2
- interface TagProps {
3
- label: string;
4
- icon?: JSX.Element;
5
- onClick?: () => any;
6
- remove?: () => any;
7
- layoutClassName?: string;
8
- }
9
- export declare const Tag: ({ label, icon, onClick, remove, layoutClassName }: TagProps) => JSX.Element;
10
- export {};
1
+ /// <reference types="react" />
2
+ interface TagProps {
3
+ label: string;
4
+ icon?: JSX.Element;
5
+ onClick?: () => any;
6
+ remove?: () => any;
7
+ layoutClassName?: string;
8
+ }
9
+ export declare const Tag: ({ label, icon, onClick, remove, layoutClassName }: TagProps) => JSX.Element;
10
+ export {};
@@ -1,6 +1,6 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import * as styles from "./Tag.module.css";
3
- import clsx from "clsx";
4
- import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
5
- import { faXmark } from "@fortawesome/free-solid-svg-icons";
6
- export const Tag = ({ label, icon, onClick, remove, layoutClassName }) => (_jsxs("div", { className: remove && styles.tagContainer, children: [_jsxs("div", { className: clsx(styles.tag, [layoutClassName && layoutClassName], onClick && styles.clickable, remove && styles.remove), ...{ onClick }, children: [icon && _jsx("span", { children: icon }), _jsx("span", { children: label })] }), remove && (_jsx("div", { className: clsx(styles.tag, styles.removeTag), onClick: remove, children: _jsx("span", { children: _jsx(FontAwesomeIcon, { icon: faXmark }) }) }))] }));
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as styles from "./Tag.module.css";
3
+ import clsx from "clsx";
4
+ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
5
+ import { faXmark } from "@fortawesome/free-solid-svg-icons";
6
+ export const Tag = ({ label, icon, onClick, remove, layoutClassName }) => (_jsxs("div", { className: remove && styles.tagContainer, children: [_jsxs("div", { className: clsx(styles.tag, [layoutClassName && layoutClassName], onClick && styles.clickable, remove && styles.remove), ...{ onClick }, children: [icon && _jsx("span", { children: icon }), _jsx("span", { children: label })] }), remove && (_jsx("div", { className: clsx(styles.tag, styles.removeTag), onClick: remove, children: _jsx("span", { children: _jsx(FontAwesomeIcon, { icon: faXmark }) }) }))] }));
@@ -1,44 +1,44 @@
1
- :root {
2
- --conduction-tag-font-size: var(--skeleton-font-size-sm);
3
- --conduction-tag-color: var(--skeleton-black);
4
- --conduction-tag-background-color: var(--skeleton-color-grey-1);
5
- --conduction-tag-border-radius: var(--skeleton-border-radius-md);
6
- --conduction-tag-padding: var(--skeleton-size-xs);
7
- --conduction-tag-icon-margin-inline-end: var(--skeleton-size-2xs);
8
- --conduction-tag-remove-background-color: #ffbdad;
9
- --conduction-tag-remove-text-color: #e44f2a;
10
- }
11
-
12
- .tag {
13
- display: inline-block;
14
- width: fit-content;
15
- font-size: var(--conduction-tag-font-size);
16
- color: var(--conduction-tag-color);
17
- background-color: var(--conduction-tag-background-color);
18
- padding-inline-start: var(--conduction-tag-padding);
19
- padding-inline-end: var(--conduction-tag-padding);
20
- padding-block-start: var(--conduction-tag-padding);
21
- padding-block-end: var(--conduction-tag-padding);
22
- }
23
-
24
- .tag > *:not(:last-child) {
25
- margin-inline-end: var(--conduction-tag-icon-margin-inline-end);
26
- }
27
-
28
- .clickable :hover {
29
- cursor: pointer;
30
- }
31
-
32
- .remove {
33
- padding-inline-end: 4px;
34
- }
35
-
36
- .tagContainer {
37
- display: flex;
38
- }
39
-
40
- .removeTag:hover {
41
- cursor: pointer;
42
- background-color: var(--conduction-tag-remove-background-color);
43
- color: var(--conduction-tag-remove-text-color);
44
- }
1
+ :root {
2
+ --conduction-tag-font-size: var(--skeleton-font-size-sm);
3
+ --conduction-tag-color: var(--skeleton-black);
4
+ --conduction-tag-background-color: var(--skeleton-color-grey-1);
5
+ --conduction-tag-border-radius: var(--skeleton-border-radius-md);
6
+ --conduction-tag-padding: var(--skeleton-size-xs);
7
+ --conduction-tag-icon-margin-inline-end: var(--skeleton-size-2xs);
8
+ --conduction-tag-remove-background-color: #ffbdad;
9
+ --conduction-tag-remove-text-color: #e44f2a;
10
+ }
11
+
12
+ .tag {
13
+ display: inline-block;
14
+ width: fit-content;
15
+ font-size: var(--conduction-tag-font-size);
16
+ color: var(--conduction-tag-color);
17
+ background-color: var(--conduction-tag-background-color);
18
+ padding-inline-start: var(--conduction-tag-padding);
19
+ padding-inline-end: var(--conduction-tag-padding);
20
+ padding-block-start: var(--conduction-tag-padding);
21
+ padding-block-end: var(--conduction-tag-padding);
22
+ }
23
+
24
+ .tag > *:not(:last-child) {
25
+ margin-inline-end: var(--conduction-tag-icon-margin-inline-end);
26
+ }
27
+
28
+ .clickable :hover {
29
+ cursor: pointer;
30
+ }
31
+
32
+ .remove {
33
+ padding-inline-end: 4px;
34
+ }
35
+
36
+ .tagContainer {
37
+ display: flex;
38
+ }
39
+
40
+ .removeTag:hover {
41
+ cursor: pointer;
42
+ background-color: var(--conduction-tag-remove-background-color);
43
+ color: var(--conduction-tag-remove-text-color);
44
+ }
@@ -0,0 +1,5 @@
1
+ import { ReactTabsFunctionComponent, TabProps, TabPanelProps, TabListProps, TabsProps } from "react-tabs";
2
+ export declare const Tabs: ReactTabsFunctionComponent<TabsProps>;
3
+ export declare const TabList: ReactTabsFunctionComponent<TabListProps>;
4
+ export declare const Tab: ReactTabsFunctionComponent<TabProps>;
5
+ export declare const TabPanel: ReactTabsFunctionComponent<TabPanelProps>;
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Tabs as RTabs, TabList as RTabList, Tab as RTab, TabPanel as RTabPanel, } from "react-tabs";
3
+ // Tabs
4
+ export const Tabs = ({ children, ...otherProps }) => (_jsx(RTabs, { ...otherProps, children: _jsx("h1", { children: children }) }));
5
+ Tabs.tabsRole = "Tabs";
6
+ // TabList
7
+ export const TabList = ({ children, ...otherProps }) => (_jsx(RTabList, { ...otherProps, children: children }));
8
+ TabList.tabsRole = "TabList";
9
+ // Tab
10
+ export const Tab = ({ children, ...otherProps }) => (_jsx(RTab, { ...otherProps, children: children }));
11
+ Tab.tabsRole = "Tab";
12
+ // TabPanel
13
+ export const TabPanel = ({ children, ...otherProps }) => (_jsx(RTabPanel, { ...otherProps, children: children }));
14
+ TabPanel.tabsRole = "TabPanel";
@@ -1,14 +1,14 @@
1
- import * as React from "react";
2
- interface ToolTipProps {
3
- id: string;
4
- layoutClassName?: string;
5
- }
6
- /**
7
- * Implement this ToolTip only once, in a high-level wrapper.
8
- * Use the ToolTip anywhere, in any element, by setting the following data props:
9
- *
10
- * data-tooltip-id="this-is-the-id-set-in-ToolTipProps"
11
- * data-tooltip-content="Hello world!"
12
- */
13
- export declare const ToolTip: React.FC<ToolTipProps>;
14
- export {};
1
+ import * as React from "react";
2
+ interface ToolTipProps {
3
+ id: string;
4
+ layoutClassName?: string;
5
+ }
6
+ /**
7
+ * Implement this ToolTip only once, in a high-level wrapper.
8
+ * Use the ToolTip anywhere, in any element, by setting the following data props:
9
+ *
10
+ * data-tooltip-id="this-is-the-id-set-in-ToolTipProps"
11
+ * data-tooltip-content="Hello world!"
12
+ */
13
+ export declare const ToolTip: React.FC<ToolTipProps>;
14
+ export {};
@@ -1,14 +1,14 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import * as styles from "./ToolTip.module.css";
3
- import { Tooltip } from "react-tooltip";
4
- import clsx from "clsx";
5
- /**
6
- * Implement this ToolTip only once, in a high-level wrapper.
7
- * Use the ToolTip anywhere, in any element, by setting the following data props:
8
- *
9
- * data-tooltip-id="this-is-the-id-set-in-ToolTipProps"
10
- * data-tooltip-content="Hello world!"
11
- */
12
- export const ToolTip = ({ id, layoutClassName }) => {
13
- return _jsx(Tooltip, { className: clsx(styles.tooltip, layoutClassName, layoutClassName), ...{ id } });
14
- };
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as styles from "./ToolTip.module.css";
3
+ import { Tooltip } from "react-tooltip";
4
+ import clsx from "clsx";
5
+ /**
6
+ * Implement this ToolTip only once, in a high-level wrapper.
7
+ * Use the ToolTip anywhere, in any element, by setting the following data props:
8
+ *
9
+ * data-tooltip-id="this-is-the-id-set-in-ToolTipProps"
10
+ * data-tooltip-content="Hello world!"
11
+ */
12
+ export const ToolTip = ({ id, layoutClassName }) => {
13
+ return _jsx(Tooltip, { className: clsx(styles.tooltip, layoutClassName, layoutClassName), ...{ id } });
14
+ };
@@ -1,3 +1,3 @@
1
- import { PrimaryTopNav } from "./primaryTopNav/PrimaryTopNav";
2
- import { SecondaryTopNav } from "./secondaryTopNav/SecondaryTopNav";
3
- export { PrimaryTopNav, SecondaryTopNav };
1
+ import { PrimaryTopNav } from "./primaryTopNav/PrimaryTopNav";
2
+ import { SecondaryTopNav } from "./secondaryTopNav/SecondaryTopNav";
3
+ export { PrimaryTopNav, SecondaryTopNav };
@@ -1,3 +1,3 @@
1
- import { PrimaryTopNav } from "./primaryTopNav/PrimaryTopNav";
2
- import { SecondaryTopNav } from "./secondaryTopNav/SecondaryTopNav";
3
- export { PrimaryTopNav, SecondaryTopNav };
1
+ import { PrimaryTopNav } from "./primaryTopNav/PrimaryTopNav";
2
+ import { SecondaryTopNav } from "./secondaryTopNav/SecondaryTopNav";
3
+ export { PrimaryTopNav, SecondaryTopNav };
@@ -1,20 +1,20 @@
1
- /// <reference types="react" />
2
- interface ITopNavItem {
3
- label: string;
4
- icon?: JSX.Element;
5
- current?: boolean;
6
- handleClick?: () => any;
7
- subItems?: {
8
- label: string;
9
- icon?: JSX.Element;
10
- current?: boolean;
11
- handleClick?: () => any;
12
- }[];
13
- }
14
- export interface TopNavProps {
15
- items: ITopNavItem[];
16
- mobileLogo?: JSX.Element;
17
- layoutClassName?: string;
18
- }
19
- export declare const PrimaryTopNav: ({ items, mobileLogo, layoutClassName }: TopNavProps) => JSX.Element;
20
- export {};
1
+ /// <reference types="react" />
2
+ interface ITopNavItem {
3
+ label: string;
4
+ icon?: JSX.Element;
5
+ current?: boolean;
6
+ handleClick?: () => any;
7
+ subItems?: {
8
+ label: string;
9
+ icon?: JSX.Element;
10
+ current?: boolean;
11
+ handleClick?: () => any;
12
+ }[];
13
+ }
14
+ export interface TopNavProps {
15
+ items: ITopNavItem[];
16
+ mobileLogo?: JSX.Element;
17
+ layoutClassName?: string;
18
+ }
19
+ export declare const PrimaryTopNav: ({ items, mobileLogo, layoutClassName }: TopNavProps) => JSX.Element;
20
+ export {};
@@ -1,34 +1,34 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import * as React from "react";
3
- import * as styles from "./PrimaryTopNav.module.css";
4
- import clsx from "clsx";
5
- import { Link } from "@utrecht/component-library-react/dist/css-module";
6
- import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
7
- import { faBars, faChevronRight } from "@fortawesome/free-solid-svg-icons";
8
- export const PrimaryTopNav = ({ items, mobileLogo, layoutClassName }) => {
9
- const [isOpen, setIsOpen] = React.useState(false);
10
- const [subNavIsOpen, setSubNavIsOpen] = React.useState({});
11
- const handleItemClick = (handleClick) => {
12
- if (handleClick) {
13
- handleClick();
14
- setIsOpen(false);
15
- }
16
- };
17
- const handleSubItemMenu = (idx, value) => {
18
- setSubNavIsOpen({
19
- ...subNavIsOpen,
20
- [idx]: value,
21
- });
22
- };
23
- const screenWidth = window.innerWidth;
24
- React.useEffect(() => {
25
- if (screenWidth > 992) {
26
- setSubNavIsOpen({});
27
- }
28
- }, [screenWidth]);
29
- return (_jsxs("div", { className: clsx(styles.container, layoutClassName && layoutClassName), children: [_jsxs("div", { className: styles.menuToggleContainer, children: [mobileLogo, _jsx("button", { className: styles.menuToggle, onClick: () => setIsOpen((o) => !o), children: _jsx(FontAwesomeIcon, { icon: faBars }) })] }), _jsx("nav", { className: clsx(styles.primary, isOpen && styles.isOpen), children: _jsx("ul", { className: styles.ul, children: items.map(({ label, icon, current, handleClick, subItems }, idx) => (_jsxs("li", { onClick: () => !subItems
30
- ? handleItemClick(handleClick)
31
- : screenWidth > 992
32
- ? handleItemClick(handleClick)
33
- : handleSubItemMenu(idx, !subNavIsOpen[idx] ?? true), className: clsx(styles.li, current && styles.current), children: [_jsxs(Link, { className: clsx(styles.link, styles.label, subItems && styles.mobileLink, current && styles.currentLink), children: [icon, label, " ", subItems && screenWidth < 992 && (_jsx(FontAwesomeIcon, { className: clsx(styles.toggleIcon, subNavIsOpen[idx] && styles.isOpen), icon: faChevronRight }))] }), subItems && (_jsx("ul", { className: clsx(styles.dropdown, subNavIsOpen[idx] && styles.isOpen), children: subItems.map(({ label, icon, current, handleClick }, idx) => (_jsx("li", { className: clsx(styles.li, current && styles.current), onClick: () => handleItemClick(handleClick), children: _jsxs(Link, { className: clsx(styles.link, styles.label, current && styles.currentLink), children: [icon, label] }) }, idx))) }))] }, idx))) }) })] }));
34
- };
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import * as styles from "./PrimaryTopNav.module.css";
4
+ import clsx from "clsx";
5
+ import { Link } from "@utrecht/component-library-react/dist/css-module";
6
+ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
7
+ import { faBars, faChevronRight } from "@fortawesome/free-solid-svg-icons";
8
+ export const PrimaryTopNav = ({ items, mobileLogo, layoutClassName }) => {
9
+ const [isOpen, setIsOpen] = React.useState(false);
10
+ const [subNavIsOpen, setSubNavIsOpen] = React.useState({});
11
+ const handleItemClick = (handleClick) => {
12
+ if (handleClick) {
13
+ handleClick();
14
+ setIsOpen(false);
15
+ }
16
+ };
17
+ const handleSubItemMenu = (idx, value) => {
18
+ setSubNavIsOpen({
19
+ ...subNavIsOpen,
20
+ [idx]: value,
21
+ });
22
+ };
23
+ const screenWidth = window.innerWidth;
24
+ React.useEffect(() => {
25
+ if (screenWidth > 992) {
26
+ setSubNavIsOpen({});
27
+ }
28
+ }, [screenWidth]);
29
+ return (_jsxs("div", { className: clsx(styles.container, layoutClassName && layoutClassName), children: [_jsxs("div", { className: styles.menuToggleContainer, children: [mobileLogo, _jsx("button", { className: styles.menuToggle, onClick: () => setIsOpen((o) => !o), children: _jsx(FontAwesomeIcon, { icon: faBars }) })] }), _jsx("nav", { className: clsx(styles.primary, isOpen && styles.isOpen), children: _jsx("ul", { className: styles.ul, children: items.map(({ label, icon, current, handleClick, subItems }, idx) => (_jsxs("li", { onClick: () => !subItems
30
+ ? handleItemClick(handleClick)
31
+ : screenWidth > 992
32
+ ? handleItemClick(handleClick)
33
+ : handleSubItemMenu(idx, !subNavIsOpen[idx] ?? true), className: clsx(styles.li, current && styles.current), children: [_jsxs(Link, { className: clsx(styles.link, styles.label, subItems && styles.mobileLink, current && styles.currentLink), children: [icon, label, " ", subItems && screenWidth < 992 && (_jsx(FontAwesomeIcon, { className: clsx(styles.toggleIcon, subNavIsOpen[idx] && styles.isOpen), icon: faChevronRight }))] }), subItems && (_jsx("ul", { className: clsx(styles.dropdown, subNavIsOpen[idx] && styles.isOpen), children: subItems.map(({ label, icon, current, handleClick }, idx) => (_jsx("li", { className: clsx(styles.li, current && styles.current), onClick: () => handleItemClick(handleClick), children: _jsxs(Link, { className: clsx(styles.link, styles.label, current && styles.currentLink), children: [icon, label] }) }, idx))) }))] }, idx))) }) })] }));
34
+ };
@@ -1,12 +1,12 @@
1
- /// <reference types="react" />
2
- interface TopNavProps {
3
- items: {
4
- label: string;
5
- icon?: JSX.Element;
6
- current?: boolean;
7
- handleClick: () => any;
8
- }[];
9
- layoutClassName?: string;
10
- }
11
- export declare const SecondaryTopNav: ({ items, layoutClassName }: TopNavProps) => JSX.Element;
12
- export {};
1
+ /// <reference types="react" />
2
+ interface TopNavProps {
3
+ items: {
4
+ label: string;
5
+ icon?: JSX.Element;
6
+ current?: boolean;
7
+ handleClick: () => any;
8
+ }[];
9
+ layoutClassName?: string;
10
+ }
11
+ export declare const SecondaryTopNav: ({ items, layoutClassName }: TopNavProps) => JSX.Element;
12
+ export {};
@@ -1,7 +1,7 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
- import * as styles from "./SecondaryTopNav.module.css";
3
- import { Link } from "@utrecht/component-library-react/dist/css-module";
4
- import clsx from "clsx";
5
- export const SecondaryTopNav = ({ items, layoutClassName }) => {
6
- return (_jsx("div", { className: clsx(styles.secondary, layoutClassName && layoutClassName), children: _jsx("nav", { children: _jsx("ul", { className: styles.ul, children: items.map(({ label, icon, current, handleClick }, idx) => (_jsx("li", { className: clsx(styles.li, current && styles.current), onClick: handleClick, children: _jsxs(Link, { className: clsx(styles.link, styles.label), children: [icon, label] }) }, idx))) }) }) }));
7
- };
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import * as styles from "./SecondaryTopNav.module.css";
3
+ import { Link } from "@utrecht/component-library-react/dist/css-module";
4
+ import clsx from "clsx";
5
+ export const SecondaryTopNav = ({ items, layoutClassName }) => {
6
+ return (_jsx("div", { className: clsx(styles.secondary, layoutClassName && layoutClassName), children: _jsx("nav", { children: _jsx("ul", { className: styles.ul, children: items.map(({ label, icon, current, handleClick }, idx) => (_jsx("li", { className: clsx(styles.li, current && styles.current), onClick: handleClick, children: _jsxs(Link, { className: clsx(styles.link, styles.label), children: [icon, label] }) }, idx))) }) }) }));
7
+ };
package/lib/index.d.ts CHANGED
@@ -1,27 +1,27 @@
1
- /// <reference types="react" />
2
- import { DownloadCard, HorizontalImageCard, ImageAndDetailsCard, DetailsCard, InfoCard, CardWrapper, CardHeader, CardHeaderTitle, CardHeaderDate } from "./components/card";
3
- import { Container } from "./components/container/Container";
4
- import { Breadcrumbs } from "./components/denhaag-wrappers/breadcrumbs/Breadcrumbs";
5
- import { InputText, InputPassword, InputEmail, InputDate, InputNumber, Textarea, InputCheckbox, InputFile, SelectMultiple, SelectSingle } from "./components/formFields";
6
- import { ImageDivider } from "./components/imageDivider/ImageDivider";
7
- import { AuthenticatedLogo, UnauthenticatedLogo } from "./components/logo/Logo";
8
- import { MetaIcon } from "./components/metaIcon/MetaIcon";
9
- import { PrivateRoute } from "./components/privateRoute/PrivateRoute";
10
- import { PrimaryTopNav, SecondaryTopNav } from "./components/topNav";
11
- import { Tag } from "./components/tag/Tag";
12
- declare const NotificationPopUp: {
13
- controller: () => {
14
- isVisible: boolean;
15
- show: () => void;
16
- hide: () => void;
17
- };
18
- NotificationPopUp: ({ title, description, isVisible, hide, primaryButton, secondaryButton, layoutClassName, }: import("./components/notificationPopUp/NotificationPopUp").NotificationPopUpProps) => JSX.Element | null;
19
- };
20
- import { QuoteWrapper } from "./components/quoteWrapper/QuoteWrapper";
21
- import { BadgeCounter } from "./components/badgeCounter/BadgeCounter";
22
- import { CodeBlock } from "./components/codeBlock/CodeBlock";
23
- import { ToolTip } from "./components/toolTip/ToolTip";
24
- import { Pagination } from "./components/Pagination/Pagination";
25
- import { Tabs, TabList, Tab, TabPanel } from "./components/tabs/Tabs";
26
- import { TableWrapper } from "./components/tableWrapper/TableWrapper";
27
- export { DownloadCard, HorizontalImageCard, ImageAndDetailsCard, DetailsCard, InfoCard, Container, Breadcrumbs, InputText, InputPassword, InputEmail, InputDate, InputNumber, InputFile, Textarea, InputCheckbox, SelectMultiple, SelectSingle, ImageDivider, AuthenticatedLogo, UnauthenticatedLogo, MetaIcon, PrivateRoute, PrimaryTopNav, SecondaryTopNav, Tag, NotificationPopUp, QuoteWrapper, Pagination, BadgeCounter, CodeBlock, ToolTip, CardWrapper, CardHeader, CardHeaderTitle, CardHeaderDate, Tabs, TabList, Tab, TabPanel, TableWrapper, };
1
+ /// <reference types="react" />
2
+ import { DownloadCard, HorizontalImageCard, ImageAndDetailsCard, DetailsCard, InfoCard, CardWrapper, CardHeader, CardHeaderTitle, CardHeaderDate } from "./components/card";
3
+ import { Container } from "./components/container/Container";
4
+ import { Breadcrumbs } from "./components/denhaag-wrappers/breadcrumbs/Breadcrumbs";
5
+ import { InputText, InputPassword, InputEmail, InputDate, InputNumber, Textarea, InputCheckbox, InputFile, SelectMultiple, SelectSingle } from "./components/formFields";
6
+ import { ImageDivider } from "./components/imageDivider/ImageDivider";
7
+ import { AuthenticatedLogo, UnauthenticatedLogo } from "./components/logo/Logo";
8
+ import { MetaIcon } from "./components/metaIcon/MetaIcon";
9
+ import { PrivateRoute } from "./components/privateRoute/PrivateRoute";
10
+ import { PrimaryTopNav, SecondaryTopNav } from "./components/topNav";
11
+ import { Tag } from "./components/tag/Tag";
12
+ declare const NotificationPopUp: {
13
+ controller: () => {
14
+ isVisible: boolean;
15
+ show: () => void;
16
+ hide: () => void;
17
+ };
18
+ NotificationPopUp: ({ title, description, isVisible, hide, primaryButton, secondaryButton, layoutClassName, }: import("./components/notificationPopUp/NotificationPopUp").NotificationPopUpProps) => JSX.Element | null;
19
+ };
20
+ import { QuoteWrapper } from "./components/quoteWrapper/QuoteWrapper";
21
+ import { BadgeCounter } from "./components/badgeCounter/BadgeCounter";
22
+ import { CodeBlock } from "./components/codeBlock/CodeBlock";
23
+ import { ToolTip } from "./components/toolTip/ToolTip";
24
+ import { Pagination } from "./components/Pagination/Pagination";
25
+ import { Tabs, TabList, Tab, TabPanel } from "./components/tabs/Tabs";
26
+ import { TableWrapper } from "./components/tableWrapper/TableWrapper";
27
+ export { DownloadCard, HorizontalImageCard, ImageAndDetailsCard, DetailsCard, InfoCard, Container, Breadcrumbs, InputText, InputPassword, InputEmail, InputDate, InputNumber, InputFile, Textarea, InputCheckbox, SelectMultiple, SelectSingle, ImageDivider, AuthenticatedLogo, UnauthenticatedLogo, MetaIcon, PrivateRoute, PrimaryTopNav, SecondaryTopNav, Tag, NotificationPopUp, QuoteWrapper, Pagination, BadgeCounter, CodeBlock, ToolTip, CardWrapper, CardHeader, CardHeaderTitle, CardHeaderDate, Tabs, TabList, Tab, TabPanel, TableWrapper, };
package/lib/index.js CHANGED
@@ -1,20 +1,20 @@
1
- import { DownloadCard, HorizontalImageCard, ImageAndDetailsCard, DetailsCard, InfoCard, CardWrapper, CardHeader, CardHeaderTitle, CardHeaderDate, } from "./components/card";
2
- import { Container } from "./components/container/Container";
3
- import { Breadcrumbs } from "./components/denhaag-wrappers/breadcrumbs/Breadcrumbs";
4
- import { InputText, InputPassword, InputEmail, InputDate, InputNumber, Textarea, InputCheckbox, InputFile, SelectMultiple, SelectSingle, } from "./components/formFields";
5
- import { ImageDivider } from "./components/imageDivider/ImageDivider";
6
- import { AuthenticatedLogo, UnauthenticatedLogo } from "./components/logo/Logo";
7
- import { MetaIcon } from "./components/metaIcon/MetaIcon";
8
- import { PrivateRoute } from "./components/privateRoute/PrivateRoute";
9
- import { PrimaryTopNav, SecondaryTopNav } from "./components/topNav";
10
- import { Tag } from "./components/tag/Tag";
11
- import { NotificationPopUpController, NotificationPopUp as _NotificationPopUp, } from "./components/notificationPopUp/NotificationPopUp";
12
- const NotificationPopUp = { controller: NotificationPopUpController, NotificationPopUp: _NotificationPopUp };
13
- import { QuoteWrapper } from "./components/quoteWrapper/QuoteWrapper";
14
- import { BadgeCounter } from "./components/badgeCounter/BadgeCounter";
15
- import { CodeBlock } from "./components/codeBlock/CodeBlock";
16
- import { ToolTip } from "./components/toolTip/ToolTip";
17
- import { Pagination } from "./components/Pagination/Pagination";
18
- import { Tabs, TabList, Tab, TabPanel } from "./components/tabs/Tabs";
19
- import { TableWrapper } from "./components/tableWrapper/TableWrapper";
20
- export { DownloadCard, HorizontalImageCard, ImageAndDetailsCard, DetailsCard, InfoCard, Container, Breadcrumbs, InputText, InputPassword, InputEmail, InputDate, InputNumber, InputFile, Textarea, InputCheckbox, SelectMultiple, SelectSingle, ImageDivider, AuthenticatedLogo, UnauthenticatedLogo, MetaIcon, PrivateRoute, PrimaryTopNav, SecondaryTopNav, Tag, NotificationPopUp, QuoteWrapper, Pagination, BadgeCounter, CodeBlock, ToolTip, CardWrapper, CardHeader, CardHeaderTitle, CardHeaderDate, Tabs, TabList, Tab, TabPanel, TableWrapper, };
1
+ import { DownloadCard, HorizontalImageCard, ImageAndDetailsCard, DetailsCard, InfoCard, CardWrapper, CardHeader, CardHeaderTitle, CardHeaderDate, } from "./components/card";
2
+ import { Container } from "./components/container/Container";
3
+ import { Breadcrumbs } from "./components/denhaag-wrappers/breadcrumbs/Breadcrumbs";
4
+ import { InputText, InputPassword, InputEmail, InputDate, InputNumber, Textarea, InputCheckbox, InputFile, SelectMultiple, SelectSingle, } from "./components/formFields";
5
+ import { ImageDivider } from "./components/imageDivider/ImageDivider";
6
+ import { AuthenticatedLogo, UnauthenticatedLogo } from "./components/logo/Logo";
7
+ import { MetaIcon } from "./components/metaIcon/MetaIcon";
8
+ import { PrivateRoute } from "./components/privateRoute/PrivateRoute";
9
+ import { PrimaryTopNav, SecondaryTopNav } from "./components/topNav";
10
+ import { Tag } from "./components/tag/Tag";
11
+ import { NotificationPopUpController, NotificationPopUp as _NotificationPopUp, } from "./components/notificationPopUp/NotificationPopUp";
12
+ const NotificationPopUp = { controller: NotificationPopUpController, NotificationPopUp: _NotificationPopUp };
13
+ import { QuoteWrapper } from "./components/quoteWrapper/QuoteWrapper";
14
+ import { BadgeCounter } from "./components/badgeCounter/BadgeCounter";
15
+ import { CodeBlock } from "./components/codeBlock/CodeBlock";
16
+ import { ToolTip } from "./components/toolTip/ToolTip";
17
+ import { Pagination } from "./components/Pagination/Pagination";
18
+ import { Tabs, TabList, Tab, TabPanel } from "./components/tabs/Tabs";
19
+ import { TableWrapper } from "./components/tableWrapper/TableWrapper";
20
+ export { DownloadCard, HorizontalImageCard, ImageAndDetailsCard, DetailsCard, InfoCard, Container, Breadcrumbs, InputText, InputPassword, InputEmail, InputDate, InputNumber, InputFile, Textarea, InputCheckbox, SelectMultiple, SelectSingle, ImageDivider, AuthenticatedLogo, UnauthenticatedLogo, MetaIcon, PrivateRoute, PrimaryTopNav, SecondaryTopNav, Tag, NotificationPopUp, QuoteWrapper, Pagination, BadgeCounter, CodeBlock, ToolTip, CardWrapper, CardHeader, CardHeaderTitle, CardHeaderDate, Tabs, TabList, Tab, TabPanel, TableWrapper, };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@conduction/components",
3
- "version": "2.2.15",
3
+ "version": "2.2.17",
4
4
  "description": "React (Gatsby) components used within the Conduction Skeleton Application (and its implementations)",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -147,9 +147,9 @@
147
147
  .button {
148
148
  background-color: var(--conduction-pagination-navigation-button-background-color, var(--utrecht-button-background-color)) !important;
149
149
  color: var(--conduction-pagination-navigation-button-color, var(--utrecht-button-color)) !important;
150
- border-width: var(--conduction-pagination-navigation-button-border-width, var(--utrecht-button-border-width));
151
- border-style: var(--conduction-pagination-navigation-button-border-style, var(--utrecht-button-border-style));
152
- border-color: var(--conduction-pagination-navigation-button-border-color, var(--utrecht-button-border-color));
150
+ border-width: var(--conduction-pagination-navigation-button-border-width, var(--utrecht-button-border-width)) !important;
151
+ border-style: var(--conduction-pagination-navigation-button-border-style, var(--utrecht-button-border-style)) !important;
152
+ border-color: var(--conduction-pagination-navigation-button-border-color, var(--utrecht-button-border-color)) !important;
153
153
  border-radius: var(--conduction-pagination-navigation-button-border-radius, var(--utrecht-button-border-radius));
154
154
  padding-inline-start: var(--conduction-pagination-navigation-button-padding-inline-start) !important;
155
155
  padding-inline-end: var(--conduction-pagination-navigation-button-padding-inline-end) !important;
@@ -11,10 +11,21 @@ interface PaginationProps {
11
11
  totalPages: number;
12
12
  currentPage: number;
13
13
  setCurrentPage: React.Dispatch<React.SetStateAction<number>>;
14
+ ariaLabels: {
15
+ nextPage: string;
16
+ previousPage: string;
17
+ page: string;
18
+ };
14
19
  layoutClassName?: string;
15
20
  }
16
21
 
17
- export const Pagination: React.FC<PaginationProps> = ({ totalPages, currentPage, setCurrentPage, layoutClassName }) => {
22
+ export const Pagination: React.FC<PaginationProps> = ({
23
+ totalPages,
24
+ currentPage,
25
+ setCurrentPage,
26
+ ariaLabels,
27
+ layoutClassName,
28
+ }) => {
18
29
  if (totalPages < 1) return <></>; // no pages available
19
30
 
20
31
  return (
@@ -31,13 +42,16 @@ export const Pagination: React.FC<PaginationProps> = ({ totalPages, currentPage,
31
42
  breakLabel="..."
32
43
  nextClassName={styles.next}
33
44
  previousClassName={styles.previous}
45
+ nextAriaLabel={ariaLabels.nextPage}
46
+ previousAriaLabel={ariaLabels.previousPage}
47
+ ariaLabelBuilder={(currentPage) => `${ariaLabels.page} ${currentPage}`}
34
48
  nextLabel={
35
- <Button className={styles.button}>
49
+ <Button tabIndex={-1} className={styles.button}>
36
50
  <FontAwesomeIcon icon={faChevronRight} />
37
51
  </Button>
38
52
  }
39
53
  previousLabel={
40
- <Button className={styles.button}>
54
+ <Button tabIndex={-1} className={styles.button}>
41
55
  <FontAwesomeIcon icon={faChevronLeft} />
42
56
  </Button>
43
57
  }
@@ -1,27 +1,27 @@
1
- :root {
2
- --conduction-badge-counter-color: hsl(0 0% 0%);
3
- --conduction-badge-counter-background-color: var(--skeleton-color-grey-1);
4
- --conduction-badge-counter-height: var(--skeleton-size-md);
5
- --conduction-badge-counter-width: var(--skeleton-size-md);
6
- --conduction-badge-counter-font-size: var(--skeleton-font-size-xs);
7
- --conduction-badge-counter-max-number-font-size: var(--skeleton-font-size-2xs);
8
- }
9
-
10
- .content {
11
- display: flex;
12
- }
13
-
14
- .badge {
15
- height: var(--conduction-badge-counter-height);
16
- width: var(--conduction-badge-counter-width);
17
- border-radius: 50%;
18
- font-size: var(--conduction-badge-counter-font-size);
19
- display: flex;
20
- align-items: center;
21
- justify-content: space-around;
22
- background-color: var(--conduction-badge-counter-background-color);
23
- color: var(--conduction-badge-counter-color);
24
- }
25
- .maxNumber {
26
- font-size: var(--conduction-badge-counter-max-number-font-size);
27
- }
1
+ :root {
2
+ --conduction-badge-counter-color: hsl(0 0% 0%);
3
+ --conduction-badge-counter-background-color: var(--skeleton-color-grey-1);
4
+ --conduction-badge-counter-height: var(--skeleton-size-md);
5
+ --conduction-badge-counter-width: var(--skeleton-size-md);
6
+ --conduction-badge-counter-font-size: var(--skeleton-font-size-xs);
7
+ --conduction-badge-counter-max-number-font-size: var(--skeleton-font-size-2xs);
8
+ }
9
+
10
+ .content {
11
+ display: flex;
12
+ }
13
+
14
+ .badge {
15
+ height: var(--conduction-badge-counter-height);
16
+ width: var(--conduction-badge-counter-width);
17
+ border-radius: 50%;
18
+ font-size: var(--conduction-badge-counter-font-size);
19
+ display: flex;
20
+ align-items: center;
21
+ justify-content: space-around;
22
+ background-color: var(--conduction-badge-counter-background-color);
23
+ color: var(--conduction-badge-counter-color);
24
+ }
25
+ .maxNumber {
26
+ font-size: var(--conduction-badge-counter-max-number-font-size);
27
+ }