@axa-fr/design-system-look-and-feel-react 0.1.1
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/dist/Accordion/Accordion.d.ts +12 -0
- package/dist/Accordion/Accordion.js +11 -0
- package/dist/Accordion/AccordionTagDateContainer.d.ts +10 -0
- package/dist/Accordion/AccordionTagDateContainer.js +10 -0
- package/dist/Accordion/index.d.ts +3 -0
- package/dist/Accordion/index.js +3 -0
- package/dist/AccordionCore/AccordionCore.d.ts +12 -0
- package/dist/AccordionCore/AccordionCore.js +13 -0
- package/dist/AccordionCore/index.d.ts +2 -0
- package/dist/AccordionCore/index.js +2 -0
- package/dist/Alert/Alert.d.ts +22 -0
- package/dist/Alert/Alert.js +27 -0
- package/dist/Button/Button.d.ts +17 -0
- package/dist/Button/Button.js +15 -0
- package/dist/Card/Card.d.ts +6 -0
- package/dist/Card/Card.js +9 -0
- package/dist/Card/index.d.ts +2 -0
- package/dist/Card/index.js +2 -0
- package/dist/Form/Checkbox/Checkbox.d.ts +7 -0
- package/dist/Form/Checkbox/Checkbox.js +15 -0
- package/dist/Form/Checkbox/CheckboxSelect.d.ts +15 -0
- package/dist/Form/Checkbox/CheckboxSelect.js +7 -0
- package/dist/Form/Checkbox/index.d.ts +2 -0
- package/dist/Form/Checkbox/index.js +2 -0
- package/dist/Form/FileUpload/FileUpload.d.ts +32 -0
- package/dist/Form/FileUpload/FileUpload.js +51 -0
- package/dist/Form/FileUpload/index.d.ts +1 -0
- package/dist/Form/FileUpload/index.js +1 -0
- package/dist/Form/InputError/InputError.d.ts +7 -0
- package/dist/Form/InputError/InputError.js +5 -0
- package/dist/Form/InputError/index.d.ts +1 -0
- package/dist/Form/InputError/index.js +1 -0
- package/dist/Form/Radio/Radio.d.ts +7 -0
- package/dist/Form/Radio/Radio.js +14 -0
- package/dist/Form/Radio/RadioSelect.d.ts +20 -0
- package/dist/Form/Radio/RadioSelect.js +16 -0
- package/dist/Form/Radio/index.d.ts +2 -0
- package/dist/Form/Radio/index.js +2 -0
- package/dist/Form/Select/CustomOption.d.ts +4 -0
- package/dist/Form/Select/CustomOption.js +8 -0
- package/dist/Form/Select/DropdownIndicator.d.ts +4 -0
- package/dist/Form/Select/DropdownIndicator.js +11 -0
- package/dist/Form/Select/Select.d.ts +27 -0
- package/dist/Form/Select/Select.js +27 -0
- package/dist/Form/Select/index.d.ts +1 -0
- package/dist/Form/Select/index.js +1 -0
- package/dist/Form/Text/Text.d.ts +13 -0
- package/dist/Form/Text/Text.js +16 -0
- package/dist/Form/Text/index.d.ts +1 -0
- package/dist/Form/Text/index.js +1 -0
- package/dist/Form/core/Field.d.ts +16 -0
- package/dist/Form/core/Field.js +12 -0
- package/dist/Form/core/FieldError.d.ts +7 -0
- package/dist/Form/core/FieldError.js +8 -0
- package/dist/Form/core/FieldForm.d.ts +59 -0
- package/dist/Form/core/FieldForm.js +151 -0
- package/dist/Form/core/FieldInput.d.ts +9 -0
- package/dist/Form/core/FieldInput.js +9 -0
- package/dist/Form/core/FormClassManager.d.ts +7 -0
- package/dist/Form/core/FormClassManager.js +33 -0
- package/dist/Form/core/HelpMessage.d.ts +7 -0
- package/dist/Form/core/HelpMessage.js +2 -0
- package/dist/Form/core/InputList.d.ts +8 -0
- package/dist/Form/core/InputList.js +4 -0
- package/dist/Form/core/MessageTypes.d.ts +5 -0
- package/dist/Form/core/MessageTypes.js +6 -0
- package/dist/Form/core/getComponentClassName.d.ts +1 -0
- package/dist/Form/core/getComponentClassName.js +27 -0
- package/dist/Form/core/getFirstId.d.ts +2 -0
- package/dist/Form/core/getFirstId.js +1 -0
- package/dist/Form/core/getOptionClassName.d.ts +1 -0
- package/dist/Form/core/getOptionClassName.js +10 -0
- package/dist/Form/core/index.d.ts +31 -0
- package/dist/Form/core/index.js +13 -0
- package/dist/Form/core/useInputClassModifier.d.ts +4 -0
- package/dist/Form/core/useInputClassModifier.js +12 -0
- package/dist/Form/core/useOptionsWithId.d.ts +2 -0
- package/dist/Form/core/useOptionsWithId.js +13 -0
- package/dist/IconBg/IconBg.d.ts +9 -0
- package/dist/IconBg/IconBg.js +13 -0
- package/dist/IconBg/index.d.ts +2 -0
- package/dist/IconBg/index.js +2 -0
- package/dist/Layout/Footer/DynamicIcons.d.ts +4 -0
- package/dist/Layout/Footer/DynamicIcons.js +20 -0
- package/dist/Layout/Footer/Footer.d.ts +14 -0
- package/dist/Layout/Footer/Footer.js +16 -0
- package/dist/Layout/Footer/MenuIcons.d.ts +9 -0
- package/dist/Layout/Footer/MenuIcons.js +8 -0
- package/dist/Layout/Footer/MenuLink.d.ts +11 -0
- package/dist/Layout/Footer/MenuLink.js +10 -0
- package/dist/Layout/Header/Header.d.ts +9 -0
- package/dist/Layout/Header/Header.js +11 -0
- package/dist/Layout/Header/NavBar/NavBar.d.ts +8 -0
- package/dist/Layout/Header/NavBar/NavBar.js +13 -0
- package/dist/Layout/Header/NavBar/index.d.ts +1 -0
- package/dist/Layout/Header/NavBar/index.js +1 -0
- package/dist/Layout/Header/PreviousLink/PreviousLink.d.ts +7 -0
- package/dist/Layout/Header/PreviousLink/PreviousLink.js +14 -0
- package/dist/Layout/Header/PreviousLink/index.d.ts +1 -0
- package/dist/Layout/Header/PreviousLink/index.js +1 -0
- package/dist/Layout/Header/index.d.ts +1 -0
- package/dist/Layout/Header/index.js +1 -0
- package/dist/Link/Link.d.ts +7 -0
- package/dist/Link/Link.js +11 -0
- package/dist/List/ClickList/ClickItem/ClickItem.d.ts +11 -0
- package/dist/List/ClickList/ClickItem/ClickItem.js +17 -0
- package/dist/List/ClickList/ClickItem/index.d.ts +1 -0
- package/dist/List/ClickList/ClickItem/index.js +1 -0
- package/dist/List/ClickList/ClickList.d.ts +8 -0
- package/dist/List/ClickList/ClickList.js +4 -0
- package/dist/List/ClickList/index.d.ts +3 -0
- package/dist/List/ClickList/index.js +3 -0
- package/dist/List/ContentItemDuo/ContentItemDuo.d.ts +13 -0
- package/dist/List/ContentItemDuo/ContentItemDuo.js +18 -0
- package/dist/List/ContentItemDuo/index.d.ts +2 -0
- package/dist/List/ContentItemDuo/index.js +2 -0
- package/dist/List/ContentItemMono/ContentItemMono.d.ts +16 -0
- package/dist/List/ContentItemMono/ContentItemMono.js +16 -0
- package/dist/List/ContentItemMono/constants.d.ts +4 -0
- package/dist/List/ContentItemMono/constants.js +5 -0
- package/dist/List/ContentItemMono/index.d.ts +3 -0
- package/dist/List/ContentItemMono/index.js +3 -0
- package/dist/List/ContentTabList/ContentTabItem/ContentTabItem.d.ts +6 -0
- package/dist/List/ContentTabList/ContentTabItem/ContentTabItem.js +6 -0
- package/dist/List/ContentTabList/ContentTabItem/index.d.ts +2 -0
- package/dist/List/ContentTabList/ContentTabItem/index.js +1 -0
- package/dist/List/ContentTabList/ContentTabList.d.ts +8 -0
- package/dist/List/ContentTabList/ContentTabList.js +9 -0
- package/dist/List/ContentTabList/index.d.ts +1 -0
- package/dist/List/ContentTabList/index.js +1 -0
- package/dist/List/List.d.ts +6 -0
- package/dist/List/List.js +9 -0
- package/dist/List/index.d.ts +1 -0
- package/dist/List/index.js +1 -0
- package/dist/Loader/Loader.d.ts +11 -0
- package/dist/Loader/Loader.js +10 -0
- package/dist/Loader/index.d.ts +1 -0
- package/dist/Loader/index.js +1 -0
- package/dist/ModalClient/Modal.d.ts +24 -0
- package/dist/ModalClient/Modal.js +53 -0
- package/dist/Pagination/Pagination.d.ts +9 -0
- package/dist/Pagination/Pagination.js +14 -0
- package/dist/Pagination/PaginationDesktop.d.ts +9 -0
- package/dist/Pagination/PaginationDesktop.js +31 -0
- package/dist/Pagination/PaginationMobile.d.ts +9 -0
- package/dist/Pagination/PaginationMobile.js +10 -0
- package/dist/Stepper/Stepper.d.ts +12 -0
- package/dist/Stepper/Stepper.js +22 -0
- package/dist/Svg/Svg.d.ts +7 -0
- package/dist/Svg/Svg.js +47 -0
- package/dist/Svg/index.d.ts +1 -0
- package/dist/Svg/index.js +1 -0
- package/dist/Svg/svgInjector.d.ts +12 -0
- package/dist/Svg/svgInjector.js +28 -0
- package/dist/Tabs/Tabs.d.ts +16 -0
- package/dist/Tabs/Tabs.js +48 -0
- package/dist/Tag/Tag.d.ts +6 -0
- package/dist/Tag/Tag.js +7 -0
- package/dist/Tag/index.d.ts +2 -0
- package/dist/Tag/index.js +2 -0
- package/dist/Title/Title.d.ts +14 -0
- package/dist/Title/Title.js +11 -0
- package/dist/Title/TitleWithSubtitles.d.ts +10 -0
- package/dist/Title/TitleWithSubtitles.js +6 -0
- package/dist/Title/constants.d.ts +5 -0
- package/dist/Title/constants.js +5 -0
- package/dist/Title/index.d.ts +3 -0
- package/dist/Title/index.js +3 -0
- package/dist/assets/svg/facebook.svg +1 -0
- package/dist/assets/svg/linkedin.svg +1 -0
- package/dist/assets/svg/twitterx.svg +1 -0
- package/dist/assets/svg/youtube.svg +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.js +28 -0
- package/dist/utilities/constants.d.ts +6 -0
- package/dist/utilities/constants.js +7 -0
- package/dist/utilities/helpers/getComponentClassName.d.ts +1 -0
- package/dist/utilities/helpers/getComponentClassName.js +27 -0
- package/dist/utilities/hooks/useIsSmallScreen.d.ts +1 -0
- package/dist/utilities/hooks/useIsSmallScreen.js +14 -0
- package/dist/utilities.d.ts +3 -0
- package/dist/utilities.js +3 -0
- package/package.json +123 -0
@@ -0,0 +1,10 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import classNames from "classnames";
|
3
|
+
import { BREAKPOINT, useIsSmallScreen } from "../../utilities";
|
4
|
+
export const MenuLink = ({ links, isAboutOpen = false }) => {
|
5
|
+
const isSmallScreen = useIsSmallScreen(BREAKPOINT.MD);
|
6
|
+
if (links.length === 0) {
|
7
|
+
return null;
|
8
|
+
}
|
9
|
+
return (_jsx("div", { className: classNames("af-footer__menuLinks", isAboutOpen && "af-footer__menuLinks--display"), children: links.map((menuItem) => (_jsx("a", { className: "af-footer__linkItem", href: menuItem.link, target: menuItem.openInCurrentTab ? "_top" : "_blank", rel: "noreferrer", tabIndex: isSmallScreen && !isAboutOpen ? -1 : undefined, children: menuItem.text }, menuItem.text))) }));
|
10
|
+
};
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/Layout/Header/Header.scss";
|
2
|
+
import { ComponentPropsWithoutRef } from "react";
|
3
|
+
type HeaderProps = {
|
4
|
+
defaultActiveLink?: number;
|
5
|
+
previousLink?: JSX.Element;
|
6
|
+
rightItem?: JSX.Element[];
|
7
|
+
} & ComponentPropsWithoutRef<"header">;
|
8
|
+
export declare const Header: ({ children, defaultActiveLink, previousLink, rightItem, }: HeaderProps) => import("react/jsx-runtime").JSX.Element;
|
9
|
+
export {};
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
2
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/Layout/Header/Header.scss";
|
3
|
+
import logo from "@axa-fr/design-system-look-and-feel-css/dist/common/assets/logo-axa.svg";
|
4
|
+
import { useCallback, useState } from "react";
|
5
|
+
import { NavBar } from "./NavBar";
|
6
|
+
import { PreviousLink } from "./PreviousLink/PreviousLink";
|
7
|
+
export const Header = ({ children, defaultActiveLink, previousLink, rightItem, }) => {
|
8
|
+
const [activeLink, setActiveLink] = useState(defaultActiveLink);
|
9
|
+
const resetActiveLink = useCallback(() => setActiveLink(defaultActiveLink), [defaultActiveLink]);
|
10
|
+
return (_jsxs(_Fragment, { children: [_jsx("header", { className: "af-header", children: _jsxs("div", { className: "af-header-container", children: [_jsxs("div", { className: "af-header-left-item", children: [_jsx("img", { className: "af-logo", src: logo, alt: "" }), children && (_jsx(NavBar, { activeLink: activeLink, setActiveLink: setActiveLink, children: children }))] }), rightItem && _jsx("div", { className: "af-header-right-item", children: rightItem })] }) }), previousLink && (_jsx(PreviousLink, { handleClick: resetActiveLink, children: previousLink }))] }));
|
11
|
+
};
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import React, { ComponentPropsWithoutRef, PropsWithChildren } from "react";
|
2
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/Layout/Header/NavBar/NavBar.scss";
|
3
|
+
type NavBarProps = {
|
4
|
+
activeLink?: number;
|
5
|
+
setActiveLink: React.Dispatch<React.SetStateAction<number | undefined>>;
|
6
|
+
} & ComponentPropsWithoutRef<"nav">;
|
7
|
+
declare const NavBar: ({ activeLink, children, setActiveLink, ...otherProps }: PropsWithChildren<NavBarProps>) => import("react/jsx-runtime").JSX.Element;
|
8
|
+
export { NavBar };
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import React, { isValidElement, useMemo, } from "react";
|
3
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/Layout/Header/NavBar/NavBar.scss";
|
4
|
+
const NavBar = ({ activeLink, children, setActiveLink, ...otherProps }) => {
|
5
|
+
const validChildren = useMemo(() => (React.Children.map(children, (child) => isValidElement(child) && child) ?? []).filter((c) => Boolean(c)), [children]);
|
6
|
+
return (_jsx("nav", { role: "navigation", "aria-label": "Menu principal", ...otherProps, children: _jsx("ul", { className: "af-navbar-container", role: "menubar", children: React.Children.map(validChildren, (child, index) => (_jsx("li", { className: "af-navbar-item", role: "none", children: React.cloneElement(child, {
|
7
|
+
className: `af-navbar-item__link ${index === activeLink ? "af-navbar-item__link--active" : ""}`.trim(),
|
8
|
+
onClick: () => setActiveLink(index),
|
9
|
+
onFocus: () => setActiveLink(index),
|
10
|
+
role: "menuitem",
|
11
|
+
}) }))) }) }));
|
12
|
+
};
|
13
|
+
export { NavBar };
|
@@ -0,0 +1 @@
|
|
1
|
+
export { NavBar } from "./NavBar";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { NavBar } from "./NavBar";
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/Layout/Header/PreviousLink/PreviousLink.scss";
|
2
|
+
import { ComponentPropsWithoutRef, PropsWithChildren } from "react";
|
3
|
+
type PreviousLinkProps = {
|
4
|
+
handleClick: () => void;
|
5
|
+
} & ComponentPropsWithoutRef<"div">;
|
6
|
+
declare const PreviousLink: ({ handleClick, children, ...otherProps }: PropsWithChildren<PreviousLinkProps>) => import("react/jsx-runtime").JSX.Element;
|
7
|
+
export { PreviousLink };
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import arrowBack from "@material-symbols/svg-400/outlined/arrow_back.svg";
|
3
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/Layout/Header/PreviousLink/PreviousLink.scss";
|
4
|
+
import React, { isValidElement, useMemo, } from "react";
|
5
|
+
import { Svg } from "../../../Svg";
|
6
|
+
const PreviousLink = ({ handleClick, children, ...otherProps }) => {
|
7
|
+
const validChildren = useMemo(() => (React.Children.map(children, (child) => isValidElement(child) && child) ?? []).filter((c) => Boolean(c)), [children]);
|
8
|
+
return (_jsx("div", { className: "af-header-previous-link-container", ...otherProps, children: React.Children.map(validChildren, (child) => React.cloneElement(child, {
|
9
|
+
children: (_jsxs(_Fragment, { children: [_jsx(Svg, { className: "af-header-previous-link__icon", src: arrowBack }), _jsx("span", { className: "af-header-previous-link__text", children: child.props.children })] })),
|
10
|
+
className: "af-header-previous-link",
|
11
|
+
onClick: handleClick,
|
12
|
+
})) }));
|
13
|
+
};
|
14
|
+
export { PreviousLink };
|
@@ -0,0 +1 @@
|
|
1
|
+
export { PreviousLink } from "./PreviousLink";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { PreviousLink } from "./PreviousLink";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { Header } from "./Header";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { Header } from "./Header";
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { ComponentPropsWithoutRef, PropsWithChildren } from "react";
|
2
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/Link/Link.scss";
|
3
|
+
type LinkProps = {
|
4
|
+
openInNewTab?: boolean;
|
5
|
+
} & ComponentPropsWithoutRef<"a">;
|
6
|
+
export declare const Link: ({ href, openInNewTab, children, ...props }: PropsWithChildren<LinkProps>) => import("react/jsx-runtime").JSX.Element;
|
7
|
+
export {};
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/Link/Link.scss";
|
3
|
+
import openInNew from "@material-symbols/svg-400/outlined/open_in_new.svg";
|
4
|
+
import { Svg } from "../Svg";
|
5
|
+
export const Link = ({ href, openInNewTab, children, ...props }) => {
|
6
|
+
const newTabProps = openInNewTab && {
|
7
|
+
target: "_blank",
|
8
|
+
rel: "noopener noreferrer",
|
9
|
+
};
|
10
|
+
return (_jsxs("a", { className: `af-link ${openInNewTab ? " af-link--openInNewTab" : ""}`, href: href, ...newTabProps, ...props, children: [children, newTabProps && _jsx(Svg, { src: openInNew })] }));
|
11
|
+
};
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { type ComponentProps, type ReactNode } from "react";
|
2
|
+
type TClickItem = {
|
3
|
+
classModifier?: string;
|
4
|
+
isDisabled?: boolean;
|
5
|
+
} & Omit<ComponentProps<"button">, "disabled"> & ComponentProps<"a"> & {
|
6
|
+
label?: ReactNode;
|
7
|
+
children?: ReactNode;
|
8
|
+
icon?: ReactNode;
|
9
|
+
};
|
10
|
+
export declare const ClickItem: ({ label, children, icon, href, isDisabled, className, classModifier, ...otherProps }: TClickItem) => import("react/jsx-runtime").JSX.Element;
|
11
|
+
export {};
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import chevron from "@material-symbols/svg-400/outlined/chevron_right.svg";
|
3
|
+
import { useMemo } from "react";
|
4
|
+
import { Svg } from "../../../Svg";
|
5
|
+
import { getComponentClassName } from "../../../utilities";
|
6
|
+
export const ClickItem = ({ label, children, icon, href, isDisabled = false, className, classModifier = "", ...otherProps }) => {
|
7
|
+
const componentClassName = useMemo(() => getComponentClassName(className, `${classModifier}${isDisabled ? " disabled" : ""}`, "af-click-item"), [className, classModifier, isDisabled]);
|
8
|
+
const ClickComponent = useMemo(() => (href ? "a" : "button"), [href]);
|
9
|
+
const clickComponentProps = useMemo(() => href
|
10
|
+
? { href, "aria-disabled": isDisabled, ...otherProps }
|
11
|
+
: {
|
12
|
+
type: "button",
|
13
|
+
disabled: isDisabled,
|
14
|
+
...otherProps,
|
15
|
+
}, [isDisabled, href, otherProps]);
|
16
|
+
return (_jsxs(ClickComponent, { className: componentClassName, ...clickComponentProps, children: [_jsxs("div", { className: "af-click-item__content", children: [icon && _jsx("div", { className: "af-click-item__icon", children: icon }), _jsx("div", { className: "af-click-item__label", children: children || label })] }), _jsx("div", { className: "af-click-item__action", children: _jsx(Svg, { src: chevron }) })] }));
|
17
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
export { ClickItem } from "./ClickItem";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { ClickItem } from "./ClickItem";
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import type { ComponentProps } from "react";
|
2
|
+
import { ClickItem } from "./ClickItem";
|
3
|
+
type TClickList = {
|
4
|
+
items: Array<ComponentProps<typeof ClickItem>>;
|
5
|
+
classModifier?: string;
|
6
|
+
};
|
7
|
+
export declare const ClickList: ({ items, classModifier }: TClickList) => import("react/jsx-runtime").JSX.Element;
|
8
|
+
export {};
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import { List } from "..";
|
3
|
+
import { ClickItem } from "./ClickItem";
|
4
|
+
export const ClickList = ({ items, classModifier }) => (_jsx(List, { classModifier: `click-list ${classModifier}`, tabIndex: -1, children: items.map(({ id, ...props }) => (_jsx(ClickItem, { id: id, ...props }, id))) }));
|
@@ -0,0 +1,13 @@
|
|
1
|
+
type ContentItemDuoProps = {
|
2
|
+
label: string;
|
3
|
+
value: string;
|
4
|
+
isVertical?: boolean;
|
5
|
+
className?: string;
|
6
|
+
classModifier?: string;
|
7
|
+
isShowingDoneIcon?: boolean;
|
8
|
+
isShowingCloseIcon?: boolean;
|
9
|
+
buttonText?: string;
|
10
|
+
onButtonClick?: () => void;
|
11
|
+
};
|
12
|
+
export declare const ContentItemDuo: ({ label, value, isVertical, className, classModifier, isShowingDoneIcon, isShowingCloseIcon, buttonText, onButtonClick, }: ContentItemDuoProps) => import("react/jsx-runtime").JSX.Element;
|
13
|
+
export {};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import checkIcon from "@material-symbols/svg-400/outlined/check.svg";
|
3
|
+
import closeIcon from "@material-symbols/svg-400/outlined/close.svg";
|
4
|
+
import { useMemo } from "react";
|
5
|
+
import { Variants } from "../../Button/Button";
|
6
|
+
import { getComponentClassName } from "../../utilities";
|
7
|
+
import { Button, Svg } from "../..";
|
8
|
+
export const ContentItemDuo = ({ label, value, isVertical = false, className, classModifier, isShowingDoneIcon = false, isShowingCloseIcon = false, buttonText, onButtonClick, }) => {
|
9
|
+
const componentClassName = useMemo(() => {
|
10
|
+
const classModifiers = [classModifier];
|
11
|
+
if (isVertical) {
|
12
|
+
classModifiers.push("vertical");
|
13
|
+
}
|
14
|
+
return getComponentClassName(className, classModifiers.filter(Boolean).join(" "), "af-content-item-duo");
|
15
|
+
}, [classModifier, className, isVertical]);
|
16
|
+
const iconContainerModifier = useMemo(() => ` af-content-item-duo__icon--${isShowingDoneIcon ? "done" : "close"}`, [isShowingDoneIcon]);
|
17
|
+
return (_jsxs("div", { className: componentClassName, children: [(isShowingDoneIcon || isShowingCloseIcon) && (_jsxs("div", { className: `af-content-item-duo__icon${iconContainerModifier}`, children: [isShowingDoneIcon && _jsx(Svg, { src: checkIcon }), isShowingCloseIcon && _jsx(Svg, { src: closeIcon })] })), _jsx("p", { className: "af-content-item-duo__label", children: label }), _jsx("p", { className: "af-content-item-duo__value", children: value }), buttonText && (_jsx("div", { className: "af-content-item-duo__button", children: _jsx(Button, { variant: Variants.ghost, onClick: onButtonClick, children: buttonText }) }))] }));
|
18
|
+
};
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { type ReactNode } from "react";
|
2
|
+
import { ContentItemMonoSize } from "./constants";
|
3
|
+
type ContentItemMonoProps = {
|
4
|
+
children: ReactNode;
|
5
|
+
className?: string;
|
6
|
+
classModifier?: string;
|
7
|
+
secondaryText?: string;
|
8
|
+
tertiaryText?: string;
|
9
|
+
leftElement?: ReactNode;
|
10
|
+
size?: ContentItemMonoSize;
|
11
|
+
isDisabled?: boolean;
|
12
|
+
isLeftElementCentered?: boolean;
|
13
|
+
hasStick?: boolean;
|
14
|
+
};
|
15
|
+
export declare const ContentItemMono: ({ children, className, classModifier, secondaryText, tertiaryText, leftElement, size, isDisabled, isLeftElementCentered, hasStick, }: ContentItemMonoProps) => import("react/jsx-runtime").JSX.Element;
|
16
|
+
export {};
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import { useMemo } from "react";
|
3
|
+
import { getComponentClassName } from "../../utilities";
|
4
|
+
import { ContentItemMonoSize } from "./constants";
|
5
|
+
export const ContentItemMono = ({ children, className, classModifier, secondaryText, tertiaryText, leftElement, size = ContentItemMonoSize.M, isDisabled = false, isLeftElementCentered = false, hasStick = false, }) => {
|
6
|
+
const componentClassName = useMemo(() => {
|
7
|
+
const classModifiers = [size, classModifier];
|
8
|
+
if (isDisabled) {
|
9
|
+
classModifiers.push("disabled");
|
10
|
+
}
|
11
|
+
return getComponentClassName(className, classModifiers.filter(Boolean).join(" "), "af-content-item-mono");
|
12
|
+
}, [classModifier, isDisabled, size, className]);
|
13
|
+
return (_jsxs("div", { className: componentClassName, children: [hasStick && (_jsx("div", { className: "af-content-item-mono__stick", role: "presentation" })), leftElement && (_jsx("div", { className: `af-content-item-mono__left-container${isLeftElementCentered
|
14
|
+
? " af-content-item-mono__left-container--center"
|
15
|
+
: ""}`, children: leftElement })), _jsxs("div", { className: "af-content-item-mono__text-container", children: [_jsx("p", { className: "af-content-item-mono__main-text", children: children }), secondaryText && (_jsx("p", { className: "af-content-item-mono__secondary-text", children: secondaryText })), tertiaryText && size !== ContentItemMonoSize.XL && (_jsx("p", { className: "af-content-item-mono__tertiary-text", children: tertiaryText }))] })] }));
|
16
|
+
};
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import type { TContentTabItem } from "./types";
|
2
|
+
type TContentTabItemProps = TContentTabItem & {
|
3
|
+
isMobile?: boolean;
|
4
|
+
};
|
5
|
+
export declare const ContentTabItem: ({ title, subtitle, tag, tagProps, date, buttons, value, isMobile, }: TContentTabItemProps) => import("react/jsx-runtime").JSX.Element;
|
6
|
+
export {};
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
2
|
+
import { Button, Tag } from "../../..";
|
3
|
+
export const ContentTabItem = ({ title, subtitle, tag, tagProps, date, buttons = [], value, isMobile = false, }) => (_jsxs(_Fragment, { children: [_jsxs("div", { className: "af-list-item__left-container", children: [Boolean(value) && (Boolean(tag) || Boolean(date)) && (_jsxs("div", { className: "af-list-item__additional-data-container", children: [Boolean(tag) && (_jsx(Tag, { classModifier: "warning", ...tagProps, children: tag })), Boolean(date) && _jsx("span", { className: "af-list-item__date", children: date })] })), _jsxs("div", { className: "af-list-item__label", children: [_jsx("span", { className: "af-list-item-label__title", children: title }), Boolean(subtitle) && (_jsx("span", { className: "af-list-item-label__subtitle", children: subtitle }))] }), !value && isMobile && (Boolean(tag) || Boolean(date)) && (_jsxs("div", { className: "af-list-item__additional-data-container", children: [Boolean(tag) && (_jsx(Tag, { classModifier: "warning", ...tagProps, children: tag })), Boolean(date) && _jsx("span", { className: "af-list-item__date", children: date })] }))] }), (buttons.length > 0 ||
|
4
|
+
Boolean(tag) ||
|
5
|
+
Boolean(date) ||
|
6
|
+
Boolean(value)) && (_jsxs("div", { className: "af-list-item__right-container", children: [!value && (Boolean(tag) || Boolean(date)) && !isMobile && (_jsxs("div", { className: "af-list-item__additional-data-container", children: [Boolean(tag) && (_jsx(Tag, { classModifier: "warning", ...tagProps, children: tag })), Boolean(date) && (_jsx("span", { className: "af-list-item__date", children: date }))] })), buttons.map((button) => (_jsx("div", { className: "af-list-item__button-container", children: _jsx(Button, { ...button }) }, button?.id))), Boolean(value) && _jsx("span", { className: "af-list-item__value", children: value })] }))] }));
|
@@ -0,0 +1 @@
|
|
1
|
+
export { ContentTabItem } from "./ContentTabItem";
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/List/ContentTabList/ContentTabList.scss";
|
2
|
+
import { type TContentTabItem } from "./ContentTabItem";
|
3
|
+
type ContentTabListProps = {
|
4
|
+
items: TContentTabItem[];
|
5
|
+
classModifier?: string;
|
6
|
+
};
|
7
|
+
export declare const ContentTabList: ({ items, classModifier, }: ContentTabListProps) => import("react/jsx-runtime").JSX.Element;
|
8
|
+
export {};
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import { List } from "../List";
|
3
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/List/ContentTabList/ContentTabList.scss";
|
4
|
+
import { BREAKPOINT, useIsSmallScreen } from "../../utilities";
|
5
|
+
import { ContentTabItem } from "./ContentTabItem";
|
6
|
+
export const ContentTabList = ({ items, classModifier, }) => {
|
7
|
+
const isMobile = useIsSmallScreen(BREAKPOINT.SM);
|
8
|
+
return (_jsx(List, { classModifier: `list large extra-padding content-tab-list ${classModifier}`, tabIndex: -1, children: items.map(({ id, ...item }) => (_jsx(ContentTabItem, { ...item, isMobile: isMobile }, id ?? item.title))) }));
|
9
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
export { ContentTabList } from "./ContentTabList";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { ContentTabList } from "./ContentTabList";
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import { type ComponentProps } from "react";
|
2
|
+
import { Card } from "..";
|
3
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/List/List.scss";
|
4
|
+
type TList = ComponentProps<typeof Card>;
|
5
|
+
export declare const List: ({ children, classModifier, ...cardProps }: TList) => import("react/jsx-runtime").JSX.Element;
|
6
|
+
export {};
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import React, { Children, isValidElement, useMemo, } from "react";
|
3
|
+
import { Card } from "..";
|
4
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/List/List.scss";
|
5
|
+
const defaultClassName = "af-list";
|
6
|
+
export const List = ({ children, classModifier, ...cardProps }) => {
|
7
|
+
const validChildren = useMemo(() => (Children.map(children, (child) => isValidElement(child) && child) ?? []).filter(Boolean), [children]);
|
8
|
+
return (_jsx(Card, { classModifier: `list ${classModifier}`, ...cardProps, children: _jsx("ul", { className: defaultClassName, children: Children.map(validChildren, (child, index) => (_jsxs(React.Fragment, { children: [_jsx("li", { className: `${defaultClassName}__item`, children: child }), index < validChildren.length - 1 && (_jsx("hr", { className: `${defaultClassName}__separator` }))] }, child.key))) }) }));
|
9
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
export { List } from "./List";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { List } from "./List";
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/Loader/Loader.scss";
|
2
|
+
type LoaderProps = {
|
3
|
+
border?: number;
|
4
|
+
size?: number;
|
5
|
+
text?: string;
|
6
|
+
};
|
7
|
+
declare const Loader: {
|
8
|
+
({ border, size, text, }: LoaderProps): import("react/jsx-runtime").JSX.Element;
|
9
|
+
displayName: string;
|
10
|
+
};
|
11
|
+
export { Loader };
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/Loader/Loader.scss";
|
3
|
+
const Loader = ({ border = 5, size = 60, text = "Chargement en cours", }) => (_jsx("div", { role: "alert", "aria-busy": true, "aria-label": text, "aria-live": "assertive", className: "af-loader__container", style: {
|
4
|
+
width: `${size}px`,
|
5
|
+
height: `${size}px`,
|
6
|
+
border: `${border}px solid #f3f3f3`,
|
7
|
+
borderTop: `${border}px solid #00008f`,
|
8
|
+
}, children: _jsx("div", { className: "af-loader__container-spin", "aria-hidden": "true" }) }));
|
9
|
+
Loader.displayName = "Loader";
|
10
|
+
export { Loader };
|
@@ -0,0 +1 @@
|
|
1
|
+
export { Loader } from "./Loader";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { Loader } from "./Loader";
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { PropsWithChildren, ReactNode } from "react";
|
2
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/Modal/Modal.scss";
|
3
|
+
export type ButtonAction = {
|
4
|
+
text: string;
|
5
|
+
disabled?: boolean;
|
6
|
+
callback: () => void;
|
7
|
+
};
|
8
|
+
type ModalProps = {
|
9
|
+
isOpen: boolean;
|
10
|
+
hasCloseBtn?: boolean;
|
11
|
+
onClose?: () => void;
|
12
|
+
onClickOutside?: () => void;
|
13
|
+
title: string;
|
14
|
+
subtitle?: string;
|
15
|
+
iconTitle?: ReactNode;
|
16
|
+
fullWidthButtons?: boolean;
|
17
|
+
actions?: {
|
18
|
+
primary?: ButtonAction;
|
19
|
+
secondary?: ButtonAction;
|
20
|
+
tertiary?: ButtonAction;
|
21
|
+
};
|
22
|
+
};
|
23
|
+
export declare const Modal: ({ isOpen, hasCloseBtn, onClose, onClickOutside, children, title, subtitle, iconTitle, actions, fullWidthButtons, }: PropsWithChildren<ModalProps>) => import("react/jsx-runtime").JSX.Element;
|
24
|
+
export {};
|
@@ -0,0 +1,53 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import { useEffect, useId, useRef, useState, } from "react";
|
3
|
+
import close from "@material-symbols/svg-400/outlined/close.svg";
|
4
|
+
import { ButtonClient as Button, Variants as ButtonVariants, } from "../Button/Button";
|
5
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/Modal/Modal.scss";
|
6
|
+
import { Svg } from "../Svg";
|
7
|
+
export const Modal = ({ isOpen, hasCloseBtn = true, onClose, onClickOutside, children, title, subtitle, iconTitle, actions, fullWidthButtons, }) => {
|
8
|
+
const [isModalOpen, setIsModalOpen] = useState(isOpen);
|
9
|
+
const modalRef = useRef(null);
|
10
|
+
const idTitle = useId();
|
11
|
+
const idContent = useId();
|
12
|
+
useEffect(() => {
|
13
|
+
setIsModalOpen(isOpen);
|
14
|
+
}, [isOpen]);
|
15
|
+
useEffect(() => {
|
16
|
+
const modalElement = modalRef.current;
|
17
|
+
if (!modalRef.current) {
|
18
|
+
return;
|
19
|
+
}
|
20
|
+
if (isModalOpen) {
|
21
|
+
document.body.style.overflow = "hidden";
|
22
|
+
modalElement.showModal();
|
23
|
+
}
|
24
|
+
else {
|
25
|
+
document.body.style.overflow = "inherit";
|
26
|
+
modalElement.close();
|
27
|
+
}
|
28
|
+
}, [isModalOpen]);
|
29
|
+
useEffect(() => {
|
30
|
+
return () => {
|
31
|
+
document.body.style.overflow = "inherit";
|
32
|
+
};
|
33
|
+
}, []);
|
34
|
+
const handleCloseModal = () => {
|
35
|
+
onClose?.();
|
36
|
+
setIsModalOpen(false);
|
37
|
+
};
|
38
|
+
const handleClickOutside = () => {
|
39
|
+
if (onClickOutside) {
|
40
|
+
onClickOutside();
|
41
|
+
setIsModalOpen(false);
|
42
|
+
}
|
43
|
+
else {
|
44
|
+
handleCloseModal();
|
45
|
+
}
|
46
|
+
};
|
47
|
+
const handleKeyDown = (event) => {
|
48
|
+
if (event.key === "Escape") {
|
49
|
+
handleCloseModal();
|
50
|
+
}
|
51
|
+
};
|
52
|
+
return (_jsxs("dialog", { ref: modalRef, onKeyDown: handleKeyDown, onClick: (e) => e.target === modalRef.current && handleClickOutside(), className: "af-modal", "aria-labelledby": idTitle, "aria-describedby": idContent, children: [_jsxs("div", { id: idTitle, className: "af-modal__top", children: [iconTitle, _jsxs("h2", { className: "af-modal__top-title", children: [_jsxs("div", { children: [_jsx("div", { className: "af-modal__top-title-text", children: title }), subtitle && (_jsx("span", { className: "af-modal__top-title-subtitle", children: subtitle }))] }), hasCloseBtn && (_jsx(Button, { className: "af-modal__top-title-close-btn", onClick: handleCloseModal, type: "button", "aria-label": "close", children: _jsx(Svg, { src: close, width: 32, height: 32 }) }))] })] }), _jsxs("div", { id: idContent, className: "af-modal__content", children: [children, actions && (_jsxs("div", { className: `af-modal__actions${fullWidthButtons ? " af-modal__actions--fullWidth" : ""} `, children: [actions?.primary && (_jsx(Button, { variant: ButtonVariants.primary, onClick: actions?.primary.callback, disabled: actions?.primary.disabled, children: actions?.primary.text })), actions?.secondary && (_jsx(Button, { variant: ButtonVariants.secondary, onClick: actions?.secondary.callback, disabled: actions?.secondary.disabled, children: actions?.secondary.text })), actions?.tertiary && (_jsx(Button, { variant: ButtonVariants.tertiary, onClick: actions?.tertiary.callback, disabled: actions?.tertiary.disabled, children: actions?.tertiary.text }))] }))] })] }));
|
53
|
+
};
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/Pagination/Pagination.scss";
|
2
|
+
import { ComponentPropsWithoutRef } from "react";
|
3
|
+
type PaginationProps = {
|
4
|
+
numberPage: number;
|
5
|
+
onChangePage: (page: number) => void;
|
6
|
+
defaultPage?: number;
|
7
|
+
} & ComponentPropsWithoutRef<"div">;
|
8
|
+
export declare const Pagination: ({ numberPage, onChangePage, defaultPage, }: PaginationProps) => import("react/jsx-runtime").JSX.Element;
|
9
|
+
export {};
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/Pagination/Pagination.scss";
|
3
|
+
import { useEffect, useState } from "react";
|
4
|
+
import { BREAKPOINT, useIsSmallScreen } from "../utilities";
|
5
|
+
import { PaginationDesktop } from "./PaginationDesktop";
|
6
|
+
import { PaginationMobile } from "./PaginationMobile";
|
7
|
+
export const Pagination = ({ numberPage, onChangePage, defaultPage, }) => {
|
8
|
+
const isMobile = useIsSmallScreen(BREAKPOINT.MD);
|
9
|
+
const [currentPage, setCurrentPage] = useState(defaultPage || 1);
|
10
|
+
useEffect(() => {
|
11
|
+
onChangePage(currentPage);
|
12
|
+
}, [currentPage, onChangePage]);
|
13
|
+
return (_jsx("div", { className: "af-container-pagination", children: isMobile ? (_jsx(PaginationMobile, { numberPage: numberPage, currentPage: currentPage, setCurrentPage: setCurrentPage })) : (_jsx(PaginationDesktop, { numberPage: numberPage, currentPage: currentPage, setCurrentPage: setCurrentPage })) }));
|
14
|
+
};
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/Pagination/PaginationDesktop.scss";
|
2
|
+
import { ComponentPropsWithoutRef } from "react";
|
3
|
+
type PropsPaginationDesktop = {
|
4
|
+
numberPage: number;
|
5
|
+
currentPage: number;
|
6
|
+
setCurrentPage: React.Dispatch<React.SetStateAction<number>>;
|
7
|
+
} & ComponentPropsWithoutRef<"div">;
|
8
|
+
export declare const PaginationDesktop: ({ numberPage, currentPage, setCurrentPage, }: PropsPaginationDesktop) => import("react/jsx-runtime").JSX.Element;
|
9
|
+
export {};
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/Pagination/PaginationDesktop.scss";
|
3
|
+
const SEVEN_PAGE = 7;
|
4
|
+
const LAST_FOUR_PAGE = 4;
|
5
|
+
const FIVE_PAGE = 5;
|
6
|
+
export const PaginationDesktop = ({ numberPage, currentPage, setCurrentPage, }) => {
|
7
|
+
const pages = Array.from({ length: numberPage }, (_, index) => index + 1);
|
8
|
+
let filteredNumbers = [...pages];
|
9
|
+
let classNamePagination = "";
|
10
|
+
if (numberPage > SEVEN_PAGE) {
|
11
|
+
if (currentPage < FIVE_PAGE) {
|
12
|
+
classNamePagination = "first";
|
13
|
+
filteredNumbers = [...pages.slice(0, FIVE_PAGE), pages[pages.length - 1]];
|
14
|
+
}
|
15
|
+
else if (currentPage > numberPage - LAST_FOUR_PAGE) {
|
16
|
+
classNamePagination = "last";
|
17
|
+
filteredNumbers = [pages[0], ...pages.slice(-FIVE_PAGE)];
|
18
|
+
}
|
19
|
+
else {
|
20
|
+
classNamePagination = "between";
|
21
|
+
filteredNumbers = [
|
22
|
+
pages[0],
|
23
|
+
currentPage - 1,
|
24
|
+
currentPage,
|
25
|
+
currentPage + 1,
|
26
|
+
pages[pages.length - 1],
|
27
|
+
];
|
28
|
+
}
|
29
|
+
}
|
30
|
+
return (_jsx("div", { className: "af-pagination-desktop", children: _jsx("ul", { className: classNamePagination, children: filteredNumbers.map((page) => (_jsx("li", { "aria-label": `page-${page}`, "aria-current": currentPage === page ? "page" : undefined, children: _jsx("button", { type: "button", onClick: () => setCurrentPage(page), children: page }) }, `page-${page}`))) }) }));
|
31
|
+
};
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/Pagination/PaginationMobile.scss";
|
2
|
+
import { ComponentPropsWithoutRef } from "react";
|
3
|
+
type PropsPaginationMobile = {
|
4
|
+
numberPage: number;
|
5
|
+
currentPage: number;
|
6
|
+
setCurrentPage: React.Dispatch<React.SetStateAction<number>>;
|
7
|
+
} & ComponentPropsWithoutRef<"div">;
|
8
|
+
export declare const PaginationMobile: ({ numberPage, currentPage, setCurrentPage, }: PropsPaginationMobile) => import("react/jsx-runtime").JSX.Element;
|
9
|
+
export {};
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/Pagination/PaginationMobile.scss";
|
3
|
+
import arrowBackIos from "@material-symbols/svg-400/outlined/arrow_back_ios.svg";
|
4
|
+
import arrowForwardIos from "@material-symbols/svg-400/outlined/arrow_forward_ios.svg";
|
5
|
+
import { Svg } from "../Svg";
|
6
|
+
export const PaginationMobile = ({ numberPage, currentPage, setCurrentPage, }) => {
|
7
|
+
const isFirstPage = currentPage === 1;
|
8
|
+
const isLastPage = currentPage === numberPage;
|
9
|
+
return (_jsxs("div", { className: "af-pagination-mobile", children: [_jsx("button", { type: "button", onClick: () => setCurrentPage(currentPage - 1), disabled: isFirstPage, "aria-label": "Page pr\u00E9c\u00E9dente", children: _jsx(Svg, { src: arrowBackIos, className: "arrow" }) }), _jsxs("span", { children: [currentPage, " sur ", numberPage] }), _jsx("button", { type: "button", onClick: () => setCurrentPage(currentPage + 1), disabled: isLastPage, "aria-label": "Page suivant", children: _jsx(Svg, { src: arrowForwardIos, className: "arrow" }) })] }));
|
10
|
+
};
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { HTMLAttributes } from "react";
|
2
|
+
import "@axa-fr/design-system-look-and-feel-css/dist/Stepper/Stepper.scss";
|
3
|
+
export type StepperProps = {
|
4
|
+
currentStepProgress?: number;
|
5
|
+
currentStep: number;
|
6
|
+
currentSubtitle?: string;
|
7
|
+
currentTitle?: string;
|
8
|
+
nbSteps: 2 | 3 | 4 | 5 | 6;
|
9
|
+
isTitleVisible?: boolean;
|
10
|
+
isSubtitleVisible?: boolean;
|
11
|
+
} & Omit<HTMLAttributes<HTMLDivElement>, "role">;
|
12
|
+
export declare const Stepper: ({ currentStepProgress, currentTitle, nbSteps, currentStep, currentSubtitle, isTitleVisible, isSubtitleVisible, className, ...props }: StepperProps) => import("react/jsx-runtime").JSX.Element;
|