@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.
- package/.prettierrc +30 -30
- package/README.md +2 -1
- package/lib/components/Pagination/Pagination.d.ts +14 -9
- package/lib/components/Pagination/Pagination.js +12 -12
- package/lib/components/Pagination/Pagination.module.css +3 -3
- package/lib/components/badgeCounter/BadgeCounter.d.ts +8 -8
- package/lib/components/badgeCounter/BadgeCounter.js +4 -4
- package/lib/components/badgeCounter/BadgeCounter.module.css +27 -27
- package/lib/components/card/cardHeader/CardHeader.d.ts +4 -4
- package/lib/components/card/cardHeader/CardHeader.js +14 -14
- package/lib/components/card/cardWrapper/CardWrapper.d.ts +2 -2
- package/lib/components/card/cardWrapper/CardWrapper.js +6 -6
- package/lib/components/card/detailsCard/DetailsCard.d.ts +14 -14
- package/lib/components/card/detailsCard/DetailsCard.js +11 -11
- package/lib/components/card/downloadCard/DownloadCard.d.ts +11 -11
- package/lib/components/card/downloadCard/DownloadCard.js +9 -9
- package/lib/components/card/horizontalImageCard/HorizontalImageCard.d.ts +13 -13
- package/lib/components/card/horizontalImageCard/HorizontalImageCard.js +10 -10
- package/lib/components/card/imageAndDetailsCard/ImageAndDetailsCard.d.ts +14 -14
- package/lib/components/card/imageAndDetailsCard/ImageAndDetailsCard.js +10 -10
- package/lib/components/card/index.d.ts +8 -8
- package/lib/components/card/index.js +8 -8
- package/lib/components/card/infoCard/InfoCard.d.ts +8 -8
- package/lib/components/card/infoCard/InfoCard.js +6 -6
- package/lib/components/card/infoCard/InfoCard.module.css +26 -26
- package/lib/components/card/richContentCard/RichContentCard.d.ts +19 -19
- package/lib/components/card/richContentCard/RichContentCard.js +16 -15
- package/lib/components/codeBlock/CodeBlock.d.ts +6 -6
- package/lib/components/codeBlock/CodeBlock.js +3 -3
- package/lib/components/codeBlock/CodeBlock.module.css +6 -6
- package/lib/components/container/Container.d.ts +6 -6
- package/lib/components/container/Container.js +4 -4
- package/lib/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.css +222 -222
- package/lib/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.d.ts +17 -17
- package/lib/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.js +20 -20
- package/lib/components/denhaag-wrappers/pagination/Pagination.css +120 -120
- package/lib/components/denhaag-wrappers/pagination/Pagination.d.ts +9 -9
- package/lib/components/denhaag-wrappers/pagination/Pagination.js +15 -15
- package/lib/components/editableTableRow/EditableTableRow.d.ts +14 -14
- package/lib/components/editableTableRow/EditableTableRow.js +31 -31
- package/lib/components/editableTableRow/EditableTableRow.module.css +25 -25
- package/lib/components/formFields/checkbox/Checkbox.module.css +7 -7
- package/lib/components/formFields/checkbox/checkbox.d.ts +9 -9
- package/lib/components/formFields/checkbox/checkbox.js +3 -3
- package/lib/components/formFields/createKeyValue/CreateKeyValue.d.ts +23 -23
- package/lib/components/formFields/createKeyValue/CreateKeyValue.js +40 -40
- package/lib/components/formFields/date/Date.d.ts +12 -12
- package/lib/components/formFields/date/Date.js +10 -10
- package/lib/components/formFields/date/Date.module.css +12 -12
- package/lib/components/formFields/errorMessage/ErrorMessage.d.ts +5 -5
- package/lib/components/formFields/errorMessage/ErrorMessage.js +3 -3
- package/lib/components/formFields/index.d.ts +7 -7
- package/lib/components/formFields/index.js +7 -7
- package/lib/components/formFields/input.d.ts +22 -22
- package/lib/components/formFields/input.js +12 -12
- package/lib/components/formFields/radio.d.ts +9 -9
- package/lib/components/formFields/radio.js +3 -3
- package/lib/components/formFields/select/select.d.ts +24 -24
- package/lib/components/formFields/select/select.js +110 -110
- package/lib/components/formFields/textarea.d.ts +10 -10
- package/lib/components/formFields/textarea.js +4 -4
- package/lib/components/formFields/types.d.ts +6 -6
- package/lib/components/formFields/types.js +1 -1
- package/lib/components/imageDivider/ImageDivider.d.ts +7 -7
- package/lib/components/imageDivider/ImageDivider.js +6 -6
- package/lib/components/imageDivider/imageDivider.module.css +5 -5
- package/lib/components/logo/Logo.d.ts +8 -8
- package/lib/components/logo/Logo.js +10 -10
- package/lib/components/logo/Logo.module.css +15 -15
- package/lib/components/metaIcon/MetaIcon.d.ts +7 -7
- package/lib/components/metaIcon/MetaIcon.js +3 -3
- package/lib/components/metaIcon/MetaIcon.module.css +29 -29
- package/lib/components/notificationPopUp/NotificationPopUp.d.ts +26 -26
- package/lib/components/notificationPopUp/NotificationPopUp.js +32 -32
- package/lib/components/privateRoute/PrivateRoute.d.ts +6 -6
- package/lib/components/privateRoute/PrivateRoute.js +15 -15
- package/lib/components/quoteWrapper/QuoteWrapper.d.ts +7 -7
- package/lib/components/quoteWrapper/QuoteWrapper.js +5 -5
- package/lib/components/quoteWrapper/QuoteWrapper.module.css +12 -12
- package/lib/components/tableWrapper/TableWrapper.d.ts +4 -4
- package/lib/components/tableWrapper/TableWrapper.js +30 -30
- package/lib/components/tabs/Tabs.d.ts +5 -5
- package/lib/components/tabs/Tabs.js +43 -43
- package/lib/components/tag/Tag.d.ts +10 -10
- package/lib/components/tag/Tag.js +6 -6
- package/lib/components/tag/Tag.module.css +44 -44
- package/lib/components/temp/Temp.d.ts +5 -0
- package/lib/components/temp/Temp.js +14 -0
- package/lib/components/toolTip/ToolTip.d.ts +14 -14
- package/lib/components/toolTip/ToolTip.js +14 -14
- package/lib/components/topNav/index.d.ts +3 -3
- package/lib/components/topNav/index.js +3 -3
- package/lib/components/topNav/primaryTopNav/PrimaryTopNav.d.ts +20 -20
- package/lib/components/topNav/primaryTopNav/PrimaryTopNav.js +34 -34
- package/lib/components/topNav/secondaryTopNav/SecondaryTopNav.d.ts +12 -12
- package/lib/components/topNav/secondaryTopNav/SecondaryTopNav.js +7 -7
- package/lib/index.d.ts +27 -27
- package/lib/index.js +20 -20
- package/package.json +1 -1
- package/src/components/Pagination/Pagination.module.css +3 -3
- package/src/components/Pagination/Pagination.tsx +17 -3
- package/src/components/badgeCounter/BadgeCounter.module.css +27 -27
- package/src/components/card/infoCard/InfoCard.module.css +26 -26
- package/src/components/codeBlock/CodeBlock.module.css +6 -6
- package/src/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.css +222 -222
- package/src/components/formFields/checkbox/Checkbox.module.css +7 -7
- package/src/components/formFields/date/Date.module.css +12 -12
- package/src/components/formFields/input.tsx +1 -1
- package/src/components/formFields/select/select.tsx +1 -1
- package/src/components/formFields/textarea.tsx +1 -1
- package/src/components/imageDivider/imageDivider.module.css +5 -5
- package/src/components/logo/Logo.module.css +15 -15
- package/src/components/metaIcon/MetaIcon.module.css +29 -29
- package/src/components/quoteWrapper/QuoteWrapper.module.css +12 -12
- package/src/components/tag/Tag.module.css +44 -44
- package/src/components/topNav/index.ts +4 -4
- package/src/custom.d.ts +4 -4
- package/lib/components/statusSteps/StatusSteps.d.ts +0 -13
- package/lib/components/statusSteps/StatusSteps.js +0 -5
- package/lib/custom.d copy.d.ts +0 -5
- package/lib/custom.d copy.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { ErrorMessage } from "./errorMessage/ErrorMessage";
|
|
3
|
-
import { Textarea as UtrechtTextarea } from "@utrecht/component-library-react/dist/css-module";
|
|
4
|
-
export const Textarea = ({ name, validation, register, errors, disabled, defaultValue, hideErrorMessage, ariaLabel, }) => (_jsxs(_Fragment, { children: [_jsx(UtrechtTextarea, { ...register(name, { ...validation }), ...{ disabled, defaultValue }, invalid: errors[name], "aria-label": ariaLabel }), errors[name] && !hideErrorMessage && _jsx(ErrorMessage, { message: errors[name].message })] }));
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ErrorMessage } from "./errorMessage/ErrorMessage";
|
|
3
|
+
import { Textarea as UtrechtTextarea } from "@utrecht/component-library-react/dist/css-module";
|
|
4
|
+
export const Textarea = ({ name, validation, register, errors, disabled, defaultValue, hideErrorMessage, ariaLabel, }) => (_jsxs(_Fragment, { children: [_jsx(UtrechtTextarea, { ...register(name, { ...validation }), ...{ disabled, defaultValue }, invalid: errors[name], "aria-label": ariaLabel }), errors[name] && !hideErrorMessage && _jsx(ErrorMessage, { message: errors[name].message })] }));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { FieldErrors, FieldValues, RegisterOptions, UseFormRegister } from "react-hook-form";
|
|
2
|
-
export interface IReactHookFormProps {
|
|
3
|
-
register: UseFormRegister<FieldValues>;
|
|
4
|
-
errors: FieldErrors;
|
|
5
|
-
validation?: Omit<RegisterOptions<FieldValues, any>, "valueAsNumber" | "valueAsDate" | "setValueAs" | "disabled">;
|
|
6
|
-
}
|
|
1
|
+
import { FieldErrors, FieldValues, RegisterOptions, UseFormRegister } from "react-hook-form";
|
|
2
|
+
export interface IReactHookFormProps {
|
|
3
|
+
register: UseFormRegister<FieldValues>;
|
|
4
|
+
errors: FieldErrors;
|
|
5
|
+
validation?: Omit<RegisterOptions<FieldValues, any>, "valueAsNumber" | "valueAsDate" | "setValueAs" | "disabled">;
|
|
6
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
interface ImageDividerProps {
|
|
3
|
-
image: string;
|
|
4
|
-
layoutClassName: string;
|
|
5
|
-
}
|
|
6
|
-
export declare const ImageDivider: ({ image, layoutClassName }: ImageDividerProps) => JSX.Element;
|
|
7
|
-
export {};
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
interface ImageDividerProps {
|
|
3
|
+
image: string;
|
|
4
|
+
layoutClassName: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const ImageDivider: ({ image, layoutClassName }: ImageDividerProps) => JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import clsx from "clsx";
|
|
3
|
-
import * as styles from "./imageDivider.module.css";
|
|
4
|
-
export const ImageDivider = ({ image, layoutClassName }) => {
|
|
5
|
-
return _jsx("img", { src: image, className: clsx(styles.divider, layoutClassName) });
|
|
6
|
-
};
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import clsx from "clsx";
|
|
3
|
+
import * as styles from "./imageDivider.module.css";
|
|
4
|
+
export const ImageDivider = ({ image, layoutClassName }) => {
|
|
5
|
+
return _jsx("img", { src: image, className: clsx(styles.divider, layoutClassName) });
|
|
6
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
.divider {
|
|
2
|
-
display: block;
|
|
3
|
-
object-fit: cover;
|
|
4
|
-
width: 100%;
|
|
5
|
-
}
|
|
1
|
+
.divider {
|
|
2
|
+
display: block;
|
|
3
|
+
object-fit: cover;
|
|
4
|
+
width: 100%;
|
|
5
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
interface LogoProps {
|
|
3
|
-
layoutClassName: string;
|
|
4
|
-
href?: string;
|
|
5
|
-
}
|
|
6
|
-
export declare const AuthenticatedLogo: ({ layoutClassName, href }: LogoProps) => JSX.Element;
|
|
7
|
-
export declare const UnauthenticatedLogo: ({ layoutClassName, href }: LogoProps) => JSX.Element;
|
|
8
|
-
export {};
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
interface LogoProps {
|
|
3
|
+
layoutClassName: string;
|
|
4
|
+
href?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const AuthenticatedLogo: ({ layoutClassName, href }: LogoProps) => JSX.Element;
|
|
7
|
+
export declare const UnauthenticatedLogo: ({ layoutClassName, href }: LogoProps) => JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import clsx from "clsx";
|
|
3
|
-
import { Link } from "gatsby";
|
|
4
|
-
import * as styles from "./Logo.module.css";
|
|
5
|
-
export const AuthenticatedLogo = ({ layoutClassName, href }) => {
|
|
6
|
-
return (_jsx(Link, { className: styles.logoContainer, to: href ?? "#", children: _jsx("div", { className: clsx(styles.authenticatedLogo, styles.logo, layoutClassName) }) }));
|
|
7
|
-
};
|
|
8
|
-
export const UnauthenticatedLogo = ({ layoutClassName, href }) => {
|
|
9
|
-
return (_jsx(Link, { className: styles.logoContainer, to: href ?? "#", children: _jsx("div", { className: clsx(styles.unauthenticatedLogo, styles.logo, layoutClassName) }) }));
|
|
10
|
-
};
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import clsx from "clsx";
|
|
3
|
+
import { Link } from "gatsby";
|
|
4
|
+
import * as styles from "./Logo.module.css";
|
|
5
|
+
export const AuthenticatedLogo = ({ layoutClassName, href }) => {
|
|
6
|
+
return (_jsx(Link, { className: styles.logoContainer, to: href ?? "#", children: _jsx("div", { className: clsx(styles.authenticatedLogo, styles.logo, layoutClassName) }) }));
|
|
7
|
+
};
|
|
8
|
+
export const UnauthenticatedLogo = ({ layoutClassName, href }) => {
|
|
9
|
+
return (_jsx(Link, { className: styles.logoContainer, to: href ?? "#", children: _jsx("div", { className: clsx(styles.unauthenticatedLogo, styles.logo, layoutClassName) }) }));
|
|
10
|
+
};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
.logoContainer {
|
|
2
|
-
height: 100%;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
.logo {
|
|
6
|
-
background-size: 100% 100%;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
.authenticatedLogo {
|
|
10
|
-
background-image: var(--conduction-authenticated-logo-background);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
.unauthenticatedLogo {
|
|
14
|
-
background-image: var(--conduction-unauthenticated-logo-background);
|
|
15
|
-
}
|
|
1
|
+
.logoContainer {
|
|
2
|
+
height: 100%;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.logo {
|
|
6
|
+
background-size: 100% 100%;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.authenticatedLogo {
|
|
10
|
+
background-image: var(--conduction-authenticated-logo-background);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.unauthenticatedLogo {
|
|
14
|
+
background-image: var(--conduction-unauthenticated-logo-background);
|
|
15
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
export interface MetaIconProps {
|
|
3
|
-
icon: JSX.Element;
|
|
4
|
-
label: string;
|
|
5
|
-
value: string;
|
|
6
|
-
}
|
|
7
|
-
export declare const MetaIcon: ({ icon, label, value }: MetaIconProps) => JSX.Element;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export interface MetaIconProps {
|
|
3
|
+
icon: JSX.Element;
|
|
4
|
+
label: string;
|
|
5
|
+
value: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const MetaIcon: ({ icon, label, value }: MetaIconProps) => JSX.Element;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import * as styles from "./MetaIcon.module.css";
|
|
3
|
-
export const MetaIcon = ({ icon, label, value }) => (_jsxs("div", { className: styles.container, children: [_jsx("span", { className: styles.icon, children: icon }), _jsx("span", { children: label }), _jsx("span", { className: styles.value, children: value })] }));
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as styles from "./MetaIcon.module.css";
|
|
3
|
+
export const MetaIcon = ({ icon, label, value }) => (_jsxs("div", { className: styles.container, children: [_jsx("span", { className: styles.icon, children: icon }), _jsx("span", { children: label }), _jsx("span", { className: styles.value, children: value })] }));
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
:root {
|
|
2
|
-
--conduction-meta-icon-icon-size: var(--skeleton-size-lg);
|
|
3
|
-
--conduction-meta-icon-icon-color: var(--skeleton-color-secondary-4);
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
.container {
|
|
7
|
-
display: flex;
|
|
8
|
-
align-items: center;
|
|
9
|
-
flex-direction: column;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
.container > *:not(:last-child) {
|
|
13
|
-
margin-block-end: var(--skeleton-size-xs);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.icon {
|
|
17
|
-
color: var(--conduction-meta-icon-icon-color);
|
|
18
|
-
height: var(--conduction-meta-icon-icon-size);
|
|
19
|
-
width: var(--conduction-meta-icon-icon-size);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.icon > svg {
|
|
23
|
-
height: 100%;
|
|
24
|
-
width: 100%;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.value {
|
|
28
|
-
font-weight: var(--skeleton-font-weight-bold);
|
|
29
|
-
}
|
|
1
|
+
:root {
|
|
2
|
+
--conduction-meta-icon-icon-size: var(--skeleton-size-lg);
|
|
3
|
+
--conduction-meta-icon-icon-color: var(--skeleton-color-secondary-4);
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.container {
|
|
7
|
+
display: flex;
|
|
8
|
+
align-items: center;
|
|
9
|
+
flex-direction: column;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.container > *:not(:last-child) {
|
|
13
|
+
margin-block-end: var(--skeleton-size-xs);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.icon {
|
|
17
|
+
color: var(--conduction-meta-icon-icon-color);
|
|
18
|
+
height: var(--conduction-meta-icon-icon-size);
|
|
19
|
+
width: var(--conduction-meta-icon-icon-size);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.icon > svg {
|
|
23
|
+
height: 100%;
|
|
24
|
+
width: 100%;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.value {
|
|
28
|
+
font-weight: var(--skeleton-font-weight-bold);
|
|
29
|
+
}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
export interface NotificationPopUpProps {
|
|
3
|
-
title: string;
|
|
4
|
-
description: string | JSX.Element;
|
|
5
|
-
isVisible: boolean;
|
|
6
|
-
hide: () => void;
|
|
7
|
-
primaryButton: {
|
|
8
|
-
label: string;
|
|
9
|
-
icon?: JSX.Element;
|
|
10
|
-
handleClick: () => any;
|
|
11
|
-
layoutClassName?: string;
|
|
12
|
-
};
|
|
13
|
-
secondaryButton?: {
|
|
14
|
-
label: string;
|
|
15
|
-
icon?: JSX.Element;
|
|
16
|
-
handleClick: () => any;
|
|
17
|
-
layoutClassName?: string;
|
|
18
|
-
};
|
|
19
|
-
layoutClassName?: string;
|
|
20
|
-
}
|
|
21
|
-
export declare const NotificationPopUp: ({ title, description, isVisible, hide, primaryButton, secondaryButton, layoutClassName, }: NotificationPopUpProps) => JSX.Element | null;
|
|
22
|
-
export declare const NotificationPopUpController: () => {
|
|
23
|
-
isVisible: boolean;
|
|
24
|
-
show: () => void;
|
|
25
|
-
hide: () => void;
|
|
26
|
-
};
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export interface NotificationPopUpProps {
|
|
3
|
+
title: string;
|
|
4
|
+
description: string | JSX.Element;
|
|
5
|
+
isVisible: boolean;
|
|
6
|
+
hide: () => void;
|
|
7
|
+
primaryButton: {
|
|
8
|
+
label: string;
|
|
9
|
+
icon?: JSX.Element;
|
|
10
|
+
handleClick: () => any;
|
|
11
|
+
layoutClassName?: string;
|
|
12
|
+
};
|
|
13
|
+
secondaryButton?: {
|
|
14
|
+
label: string;
|
|
15
|
+
icon?: JSX.Element;
|
|
16
|
+
handleClick: () => any;
|
|
17
|
+
layoutClassName?: string;
|
|
18
|
+
};
|
|
19
|
+
layoutClassName?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare const NotificationPopUp: ({ title, description, isVisible, hide, primaryButton, secondaryButton, layoutClassName, }: NotificationPopUpProps) => JSX.Element | null;
|
|
22
|
+
export declare const NotificationPopUpController: () => {
|
|
23
|
+
isVisible: boolean;
|
|
24
|
+
show: () => void;
|
|
25
|
+
hide: () => void;
|
|
26
|
+
};
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import * as styles from "./NotificationPopUp.module.css";
|
|
4
|
-
import ReactDOM from "react-dom";
|
|
5
|
-
import clsx from "clsx";
|
|
6
|
-
import { Heading3, Link, Paragraph, Button } from "@utrecht/component-library-react";
|
|
7
|
-
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
|
8
|
-
import { faArrowRight, faClose } from "@fortawesome/free-solid-svg-icons";
|
|
9
|
-
export const NotificationPopUp = ({ title, description, isVisible, hide, primaryButton, secondaryButton, layoutClassName, }) => {
|
|
10
|
-
const [animationVisible, setAnimationVisible] = React.useState(true);
|
|
11
|
-
const animationDuration = parseInt(styles.animationDuration, 10);
|
|
12
|
-
const handleClick = (clickFunction) => {
|
|
13
|
-
setAnimationVisible(!setAnimationVisible);
|
|
14
|
-
clickFunction && clickFunction();
|
|
15
|
-
setTimeout(() => {
|
|
16
|
-
hide();
|
|
17
|
-
setAnimationVisible(true);
|
|
18
|
-
}, animationDuration);
|
|
19
|
-
};
|
|
20
|
-
const modal = (_jsxs("div", { style: { animationDuration: `${animationDuration}ms` }, className: clsx(styles.modal, animationVisible && styles.visible, layoutClassName), children: [_jsx(Heading3, { children: title }), _jsx(Paragraph, { children: description }), _jsxs("div", { className: styles.buttons, children: [secondaryButton && (_jsx("div", { onClick: () => handleClick(secondaryButton.handleClick), className: secondaryButton.layoutClassName, children: _jsxs(Link, { className: styles.link, children: [secondaryButton.icon ?? _jsx(FontAwesomeIcon, { icon: faClose }), secondaryButton.label] }) })), _jsxs(Button, { onClick: () => handleClick(primaryButton.handleClick), className: clsx(styles.button, primaryButton.layoutClassName), children: [primaryButton.icon ?? _jsx(FontAwesomeIcon, { icon: faArrowRight }), primaryButton.label] })] })] }));
|
|
21
|
-
return isVisible ? ReactDOM.createPortal(modal, document.body) : null;
|
|
22
|
-
};
|
|
23
|
-
export const NotificationPopUpController = () => {
|
|
24
|
-
const [isVisible, setIsVisible] = React.useState(false);
|
|
25
|
-
const show = () => setIsVisible(true);
|
|
26
|
-
const hide = () => setIsVisible(false);
|
|
27
|
-
return {
|
|
28
|
-
isVisible,
|
|
29
|
-
show,
|
|
30
|
-
hide,
|
|
31
|
-
};
|
|
32
|
-
};
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import * as styles from "./NotificationPopUp.module.css";
|
|
4
|
+
import ReactDOM from "react-dom";
|
|
5
|
+
import clsx from "clsx";
|
|
6
|
+
import { Heading3, Link, Paragraph, Button } from "@utrecht/component-library-react";
|
|
7
|
+
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
|
8
|
+
import { faArrowRight, faClose } from "@fortawesome/free-solid-svg-icons";
|
|
9
|
+
export const NotificationPopUp = ({ title, description, isVisible, hide, primaryButton, secondaryButton, layoutClassName, }) => {
|
|
10
|
+
const [animationVisible, setAnimationVisible] = React.useState(true);
|
|
11
|
+
const animationDuration = parseInt(styles.animationDuration, 10);
|
|
12
|
+
const handleClick = (clickFunction) => {
|
|
13
|
+
setAnimationVisible(!setAnimationVisible);
|
|
14
|
+
clickFunction && clickFunction();
|
|
15
|
+
setTimeout(() => {
|
|
16
|
+
hide();
|
|
17
|
+
setAnimationVisible(true);
|
|
18
|
+
}, animationDuration);
|
|
19
|
+
};
|
|
20
|
+
const modal = (_jsxs("div", { style: { animationDuration: `${animationDuration}ms` }, className: clsx(styles.modal, animationVisible && styles.visible, layoutClassName), children: [_jsx(Heading3, { children: title }), _jsx(Paragraph, { children: description }), _jsxs("div", { className: styles.buttons, children: [secondaryButton && (_jsx("div", { onClick: () => handleClick(secondaryButton.handleClick), className: secondaryButton.layoutClassName, children: _jsxs(Link, { className: styles.link, children: [secondaryButton.icon ?? _jsx(FontAwesomeIcon, { icon: faClose }), secondaryButton.label] }) })), _jsxs(Button, { onClick: () => handleClick(primaryButton.handleClick), className: clsx(styles.button, primaryButton.layoutClassName), children: [primaryButton.icon ?? _jsx(FontAwesomeIcon, { icon: faArrowRight }), primaryButton.label] })] })] }));
|
|
21
|
+
return isVisible ? ReactDOM.createPortal(modal, document.body) : null;
|
|
22
|
+
};
|
|
23
|
+
export const NotificationPopUpController = () => {
|
|
24
|
+
const [isVisible, setIsVisible] = React.useState(false);
|
|
25
|
+
const show = () => setIsVisible(true);
|
|
26
|
+
const hide = () => setIsVisible(false);
|
|
27
|
+
return {
|
|
28
|
+
isVisible,
|
|
29
|
+
show,
|
|
30
|
+
hide,
|
|
31
|
+
};
|
|
32
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
interface PrivateRouteProps {
|
|
3
|
-
authenticated: boolean;
|
|
4
|
-
}
|
|
5
|
-
export declare const PrivateRoute: ({ children, authenticated }: React.PropsWithChildren<PrivateRouteProps>) => JSX.Element;
|
|
6
|
-
export {};
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface PrivateRouteProps {
|
|
3
|
+
authenticated: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare const PrivateRoute: ({ children, authenticated }: React.PropsWithChildren<PrivateRouteProps>) => JSX.Element;
|
|
6
|
+
export {};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { navigate } from "gatsby";
|
|
4
|
-
export const PrivateRoute = ({ children, authenticated }) => {
|
|
5
|
-
const [_authenticated, setAuthenticated] = React.useState(false);
|
|
6
|
-
React.useEffect(() => {
|
|
7
|
-
if (!authenticated && window.location.pathname !== "/login") {
|
|
8
|
-
navigate("/login");
|
|
9
|
-
}
|
|
10
|
-
authenticated && setAuthenticated(true);
|
|
11
|
-
}, [authenticated]);
|
|
12
|
-
if (!_authenticated)
|
|
13
|
-
return _jsx(_Fragment, {});
|
|
14
|
-
return _jsx(_Fragment, { children: children });
|
|
15
|
-
};
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { navigate } from "gatsby";
|
|
4
|
+
export const PrivateRoute = ({ children, authenticated }) => {
|
|
5
|
+
const [_authenticated, setAuthenticated] = React.useState(false);
|
|
6
|
+
React.useEffect(() => {
|
|
7
|
+
if (!authenticated && window.location.pathname !== "/login") {
|
|
8
|
+
navigate("/login");
|
|
9
|
+
}
|
|
10
|
+
authenticated && setAuthenticated(true);
|
|
11
|
+
}, [authenticated]);
|
|
12
|
+
if (!_authenticated)
|
|
13
|
+
return _jsx(_Fragment, {});
|
|
14
|
+
return _jsx(_Fragment, { children: children });
|
|
15
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
interface QuoteWrapperProps {
|
|
3
|
-
borderColor?: string;
|
|
4
|
-
borderWidth?: string;
|
|
5
|
-
}
|
|
6
|
-
export declare const QuoteWrapper: ({ children, borderColor, borderWidth, }: React.PropsWithChildren<QuoteWrapperProps>) => JSX.Element;
|
|
7
|
-
export {};
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
interface QuoteWrapperProps {
|
|
3
|
+
borderColor?: string;
|
|
4
|
+
borderWidth?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const QuoteWrapper: ({ children, borderColor, borderWidth, }: React.PropsWithChildren<QuoteWrapperProps>) => JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import * as styles from "./QuoteWrapper.module.css";
|
|
3
|
-
export const QuoteWrapper = ({ children, borderColor, borderWidth, }) => {
|
|
4
|
-
return (_jsx("div", { style: { borderLeftColor: borderColor, borderLeftWidth: borderWidth }, className: styles.container, children: children }));
|
|
5
|
-
};
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as styles from "./QuoteWrapper.module.css";
|
|
3
|
+
export const QuoteWrapper = ({ children, borderColor, borderWidth, }) => {
|
|
4
|
+
return (_jsx("div", { style: { borderLeftColor: borderColor, borderLeftWidth: borderWidth }, className: styles.container, children: children }));
|
|
5
|
+
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
:root {
|
|
2
|
-
--conduction-quote-wrapper-border-width: var(--skeleton-size-sm);
|
|
3
|
-
--conduction-quote-wrapper-border-color: var(--skeleton-color-grey-1);
|
|
4
|
-
--conduction-quote-wrapper-padding-inline: var(--skeleton-size-lg);
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
.container {
|
|
8
|
-
border-left-width: var(--conduction-quote-wrapper-border-width);
|
|
9
|
-
border-left-style: solid;
|
|
10
|
-
border-left-color: var(--conduction-quote-wrapper-border-color);
|
|
11
|
-
padding-inline-start: var(--conduction-quote-wrapper-padding-inline);
|
|
12
|
-
}
|
|
1
|
+
:root {
|
|
2
|
+
--conduction-quote-wrapper-border-width: var(--skeleton-size-sm);
|
|
3
|
+
--conduction-quote-wrapper-border-color: var(--skeleton-color-grey-1);
|
|
4
|
+
--conduction-quote-wrapper-padding-inline: var(--skeleton-size-lg);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.container {
|
|
8
|
+
border-left-width: var(--conduction-quote-wrapper-border-width);
|
|
9
|
+
border-left-style: solid;
|
|
10
|
+
border-left-color: var(--conduction-quote-wrapper-border-color);
|
|
11
|
+
padding-inline-start: var(--conduction-quote-wrapper-padding-inline);
|
|
12
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
export declare const TableWrapper: React.FC<{
|
|
3
|
-
children: React.ReactNode;
|
|
4
|
-
}>;
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare const TableWrapper: React.FC<{
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
}>;
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import React, { useState, useEffect } from "react";
|
|
3
|
-
import * as styles from "./TableWrapper.module.css";
|
|
4
|
-
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
|
5
|
-
import { faChevronLeft, faChevronRight } from "@fortawesome/free-solid-svg-icons";
|
|
6
|
-
export const TableWrapper = ({ children }) => {
|
|
7
|
-
const [canScrollRight, setCanScrollRight] = useState(false);
|
|
8
|
-
const [canScrollLeft, setCanScrollLeft] = useState(false);
|
|
9
|
-
const wrapperRef = React.useRef(null);
|
|
10
|
-
const handleScroll = () => {
|
|
11
|
-
if (wrapperRef.current) {
|
|
12
|
-
setCanScrollLeft(wrapperRef.current.scrollLeft > 0);
|
|
13
|
-
setCanScrollRight(wrapperRef.current.scrollWidth - wrapperRef.current.scrollLeft > wrapperRef.current.clientWidth);
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
const handleScrollRight = () => {
|
|
17
|
-
if (wrapperRef.current)
|
|
18
|
-
wrapperRef.current.scrollTo({ left: wrapperRef.current.scrollWidth, behavior: "smooth" });
|
|
19
|
-
};
|
|
20
|
-
const handleScrollLeft = () => {
|
|
21
|
-
if (wrapperRef.current)
|
|
22
|
-
wrapperRef.current.scrollTo({ left: 0, behavior: "smooth" });
|
|
23
|
-
};
|
|
24
|
-
useEffect(() => {
|
|
25
|
-
if (wrapperRef.current) {
|
|
26
|
-
setCanScrollRight(wrapperRef.current.scrollWidth > wrapperRef.current.clientWidth); // initiate scroll
|
|
27
|
-
}
|
|
28
|
-
}, []);
|
|
29
|
-
return (_jsx("div", { className: styles.container, children: _jsxs("div", { onScroll: handleScroll, ref: wrapperRef, className: styles.wrapper, children: [canScrollLeft && (_jsx("div", { onClick: handleScrollLeft, className: styles.scrollLeftButton, children: _jsx("div", { className: styles.scrollButton, children: _jsx(FontAwesomeIcon, { icon: faChevronLeft }) }) })), children, canScrollRight && (_jsx("div", { onClick: handleScrollRight, className: styles.scrollRightButton, children: _jsx("div", { className: styles.scrollButton, children: _jsx(FontAwesomeIcon, { icon: faChevronRight }) }) }))] }) }));
|
|
30
|
-
};
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React, { useState, useEffect } from "react";
|
|
3
|
+
import * as styles from "./TableWrapper.module.css";
|
|
4
|
+
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
|
5
|
+
import { faChevronLeft, faChevronRight } from "@fortawesome/free-solid-svg-icons";
|
|
6
|
+
export const TableWrapper = ({ children }) => {
|
|
7
|
+
const [canScrollRight, setCanScrollRight] = useState(false);
|
|
8
|
+
const [canScrollLeft, setCanScrollLeft] = useState(false);
|
|
9
|
+
const wrapperRef = React.useRef(null);
|
|
10
|
+
const handleScroll = () => {
|
|
11
|
+
if (wrapperRef.current) {
|
|
12
|
+
setCanScrollLeft(wrapperRef.current.scrollLeft > 0);
|
|
13
|
+
setCanScrollRight(wrapperRef.current.scrollWidth - wrapperRef.current.scrollLeft > wrapperRef.current.clientWidth);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
const handleScrollRight = () => {
|
|
17
|
+
if (wrapperRef.current)
|
|
18
|
+
wrapperRef.current.scrollTo({ left: wrapperRef.current.scrollWidth, behavior: "smooth" });
|
|
19
|
+
};
|
|
20
|
+
const handleScrollLeft = () => {
|
|
21
|
+
if (wrapperRef.current)
|
|
22
|
+
wrapperRef.current.scrollTo({ left: 0, behavior: "smooth" });
|
|
23
|
+
};
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
if (wrapperRef.current) {
|
|
26
|
+
setCanScrollRight(wrapperRef.current.scrollWidth > wrapperRef.current.clientWidth); // initiate scroll
|
|
27
|
+
}
|
|
28
|
+
}, []);
|
|
29
|
+
return (_jsx("div", { className: styles.container, children: _jsxs("div", { onScroll: handleScroll, ref: wrapperRef, className: styles.wrapper, children: [canScrollLeft && (_jsx("div", { onClick: handleScrollLeft, className: styles.scrollLeftButton, children: _jsx("div", { className: styles.scrollButton, children: _jsx(FontAwesomeIcon, { icon: faChevronLeft }) }) })), children, canScrollRight && (_jsx("div", { onClick: handleScrollRight, className: styles.scrollRightButton, children: _jsx("div", { className: styles.scrollButton, children: _jsx(FontAwesomeIcon, { icon: faChevronRight }) }) }))] }) }));
|
|
30
|
+
};
|
|
@@ -1,5 +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>;
|
|
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>;
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import * as styles from "./Tabs.module.css";
|
|
4
|
-
import { Tabs as RTabs, TabList as RTabList, Tab as RTab, TabPanel as RTabPanel, } from "react-tabs";
|
|
5
|
-
import clsx from "clsx";
|
|
6
|
-
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
|
7
|
-
import { faChevronLeft, faChevronRight } from "@fortawesome/free-solid-svg-icons";
|
|
8
|
-
// Tabs
|
|
9
|
-
export const Tabs = ({ children, ...otherProps }) => (_jsx(RTabs, { className: styles.tabs, ...otherProps, children: children }));
|
|
10
|
-
Tabs.tabsRole = "Tabs";
|
|
11
|
-
// TabList
|
|
12
|
-
export const TabList = ({ children, ...otherProps }) => {
|
|
13
|
-
const [canScrollRight, setCanScrollRight] = React.useState(false);
|
|
14
|
-
const [canScrollLeft, setCanScrollLeft] = React.useState(false);
|
|
15
|
-
const wrapperRef = React.useRef(null);
|
|
16
|
-
const handleScroll = () => {
|
|
17
|
-
if (wrapperRef.current) {
|
|
18
|
-
setCanScrollLeft(wrapperRef.current.scrollLeft > 0);
|
|
19
|
-
setCanScrollRight(wrapperRef.current.scrollWidth - wrapperRef.current.scrollLeft > wrapperRef.current.clientWidth);
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
const handleScrollRight = () => {
|
|
23
|
-
if (wrapperRef.current)
|
|
24
|
-
wrapperRef.current.scrollTo({ left: wrapperRef.current.scrollWidth, behavior: "smooth" });
|
|
25
|
-
};
|
|
26
|
-
const handleScrollLeft = () => {
|
|
27
|
-
if (wrapperRef.current)
|
|
28
|
-
wrapperRef.current.scrollTo({ left: 0, behavior: "smooth" });
|
|
29
|
-
};
|
|
30
|
-
React.useEffect(() => {
|
|
31
|
-
if (wrapperRef.current) {
|
|
32
|
-
setCanScrollRight(wrapperRef.current.scrollWidth > wrapperRef.current.clientWidth); // initiate scroll
|
|
33
|
-
}
|
|
34
|
-
}, []);
|
|
35
|
-
return (_jsx("div", { className: styles.container, children: _jsx("div", { onScroll: handleScroll, ref: wrapperRef, className: clsx(styles.wrapper), children: _jsxs("div", { className: styles.tabListContainer, children: [canScrollLeft && (_jsx("div", { onClick: handleScrollLeft, className: clsx(canScrollLeft && styles.scrollLeftButton, styles.tabButton), children: _jsx("span", { className: styles.scrollButton, children: _jsx(FontAwesomeIcon, { icon: faChevronLeft }) }) })), _jsx(RTabList, { className: clsx(canScrollRight || canScrollLeft ? styles.tabListOverflow : styles.tabList), ...otherProps, children: children }), canScrollRight && (_jsx("div", { onClick: handleScrollRight, className: clsx(canScrollRight && styles.scrollRightButton, styles.tabButton), children: _jsx("span", { className: styles.scrollButton, children: _jsx(FontAwesomeIcon, { icon: faChevronRight }) }) }))] }) }) }));
|
|
36
|
-
};
|
|
37
|
-
TabList.tabsRole = "TabList";
|
|
38
|
-
// Tab
|
|
39
|
-
export const Tab = ({ children, ...otherProps }) => (_jsx(RTab, { className: styles.tab, ...otherProps, children: children }));
|
|
40
|
-
Tab.tabsRole = "Tab";
|
|
41
|
-
// TabPanel
|
|
42
|
-
export const TabPanel = ({ children, ...otherProps }) => (_jsx(RTabPanel, { ...otherProps, children: children }));
|
|
43
|
-
TabPanel.tabsRole = "TabPanel";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import * as styles from "./Tabs.module.css";
|
|
4
|
+
import { Tabs as RTabs, TabList as RTabList, Tab as RTab, TabPanel as RTabPanel, } from "react-tabs";
|
|
5
|
+
import clsx from "clsx";
|
|
6
|
+
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
|
7
|
+
import { faChevronLeft, faChevronRight } from "@fortawesome/free-solid-svg-icons";
|
|
8
|
+
// Tabs
|
|
9
|
+
export const Tabs = ({ children, ...otherProps }) => (_jsx(RTabs, { className: styles.tabs, ...otherProps, children: children }));
|
|
10
|
+
Tabs.tabsRole = "Tabs";
|
|
11
|
+
// TabList
|
|
12
|
+
export const TabList = ({ children, ...otherProps }) => {
|
|
13
|
+
const [canScrollRight, setCanScrollRight] = React.useState(false);
|
|
14
|
+
const [canScrollLeft, setCanScrollLeft] = React.useState(false);
|
|
15
|
+
const wrapperRef = React.useRef(null);
|
|
16
|
+
const handleScroll = () => {
|
|
17
|
+
if (wrapperRef.current) {
|
|
18
|
+
setCanScrollLeft(wrapperRef.current.scrollLeft > 0);
|
|
19
|
+
setCanScrollRight(wrapperRef.current.scrollWidth - wrapperRef.current.scrollLeft > wrapperRef.current.clientWidth);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
const handleScrollRight = () => {
|
|
23
|
+
if (wrapperRef.current)
|
|
24
|
+
wrapperRef.current.scrollTo({ left: wrapperRef.current.scrollWidth, behavior: "smooth" });
|
|
25
|
+
};
|
|
26
|
+
const handleScrollLeft = () => {
|
|
27
|
+
if (wrapperRef.current)
|
|
28
|
+
wrapperRef.current.scrollTo({ left: 0, behavior: "smooth" });
|
|
29
|
+
};
|
|
30
|
+
React.useEffect(() => {
|
|
31
|
+
if (wrapperRef.current) {
|
|
32
|
+
setCanScrollRight(wrapperRef.current.scrollWidth > wrapperRef.current.clientWidth); // initiate scroll
|
|
33
|
+
}
|
|
34
|
+
}, []);
|
|
35
|
+
return (_jsx("div", { className: styles.container, children: _jsx("div", { onScroll: handleScroll, ref: wrapperRef, className: clsx(styles.wrapper), children: _jsxs("div", { className: styles.tabListContainer, children: [canScrollLeft && (_jsx("div", { onClick: handleScrollLeft, className: clsx(canScrollLeft && styles.scrollLeftButton, styles.tabButton), children: _jsx("span", { className: styles.scrollButton, children: _jsx(FontAwesomeIcon, { icon: faChevronLeft }) }) })), _jsx(RTabList, { className: clsx(canScrollRight || canScrollLeft ? styles.tabListOverflow : styles.tabList), ...otherProps, children: children }), canScrollRight && (_jsx("div", { onClick: handleScrollRight, className: clsx(canScrollRight && styles.scrollRightButton, styles.tabButton), children: _jsx("span", { className: styles.scrollButton, children: _jsx(FontAwesomeIcon, { icon: faChevronRight }) }) }))] }) }) }));
|
|
36
|
+
};
|
|
37
|
+
TabList.tabsRole = "TabList";
|
|
38
|
+
// Tab
|
|
39
|
+
export const Tab = ({ children, ...otherProps }) => (_jsx(RTab, { className: styles.tab, ...otherProps, children: children }));
|
|
40
|
+
Tab.tabsRole = "Tab";
|
|
41
|
+
// TabPanel
|
|
42
|
+
export const TabPanel = ({ children, ...otherProps }) => (_jsx(RTabPanel, { ...otherProps, children: children }));
|
|
43
|
+
TabPanel.tabsRole = "TabPanel";
|