diff --git a/src/front/Components/DesignSystem/Button/classes.module.scss b/src/front/Components/DesignSystem/Button/classes.module.scss
index d3779766..061818c4 100644
--- a/src/front/Components/DesignSystem/Button/classes.module.scss
+++ b/src/front/Components/DesignSystem/Button/classes.module.scss
@@ -29,20 +29,39 @@
border: 1px solid var(--button-contained-primary-default-border, rgba(0, 0, 0, 0));
background: var(--button-contained-primary-default-background, #005bcb);
+ svg {
+ stroke: var(--button-contained-primary-default-contrast);
+ }
+
&:hover {
border: 1px solid var(--button-contained-primary-hovered-border, rgba(0, 0, 0, 0));
background: var(--button-contained-primary-hovered-background, #0040a4);
+
+ svg {
+ stroke: var(--button-contained-primary-hovered-contrast);
+ }
}
&:focus,
&:active {
border: 1px solid var(--button-contained-primary-pressed-border, rgba(0, 0, 0, 0));
background: var(--button-contained-primary-pressed-background, #013391);
+
+ svg {
+ stroke: var(--button-contained-primary-pressed-contrast);
+ }
}
&[styleType="outlined"] {
+ svg {
+ stroke: var(--button-outlined-primary-default-contrast);
+ }
+
&:hover {
background-color: var(--color-primary-50);
+ svg {
+ stroke: var(--button-outlined-primary-hovered-contrast);
+ }
}
&:focus,
@@ -50,12 +69,24 @@
background-color: var(--color-primary-100);
color: var(--color-primary-700);
border-color: var(--color-primary-700);
+
+ svg {
+ stroke: var(--button-outlined-primary-pressed-contrast);
+ }
}
}
&[styleType="text"] {
+ svg {
+ stroke: var(--button-text-primary-default-contrast);
+ }
+
&:hover {
background-color: transparent;
+
+ svg {
+ stroke: var(--button-text-primary-hovered-contrast);
+ }
}
&:focus,
@@ -63,6 +94,10 @@
background-color: transparent;
color: var(--color-primary-800);
border-color: var(--color-primary-800);
+
+ svg {
+ stroke: var(--button-text-primary-pressed-contrast);
+ }
}
}
}
@@ -72,20 +107,40 @@
background: var(--color-secondary-500);
border-color: var(--color-secondary-500);
+ svg {
+ stroke: var(--button-contained-secondary-default-contrast);
+ }
+
&:hover {
background: var(--color-secondary-700);
border-color: var(--color-secondary-700);
+
+ svg {
+ stroke: var(--button-contained-secondary-hovered-contrast);
+ }
}
&:focus,
&:active {
background: var(--color-secondary-800);
border-color: var(--color-secondary-800);
+
+ svg {
+ stroke: var(--button-contained-secondary-pressed-contrast);
+ }
}
&[styleType="outlined"] {
+ svg {
+ stroke: var(--button-outlined-secondary-default-contrast);
+ }
+
&:hover {
background-color: var(--color-secondary-50);
+
+ svg {
+ stroke: var(--button-outlined-secondary-hovered-contrast);
+ }
}
&:focus,
@@ -93,12 +148,24 @@
background-color: var(--color-secondary-100);
color: var(--color-secondary-700);
border-color: var(--color-secondary-700);
+
+ svg {
+ stroke: var(--button-outlined-secondary-pressed-contrast);
+ }
}
}
&[styleType="text"] {
+ svg {
+ stroke: var(--button-text-secondary-default-contrast);
+ }
+
&:hover {
background-color: transparent;
+
+ svg {
+ stroke: var(--button-text-secondary-hovered-contrast);
+ }
}
&:focus,
@@ -106,6 +173,10 @@
background-color: transparent;
color: var(--color-secondary-800);
border-color: var(--color-secondary-800);
+
+ svg {
+ stroke: var(--button-text-secondary-pressed-contrast);
+ }
}
}
}
@@ -115,20 +186,40 @@
background: var(--color-neutral-500);
border-color: var(--color-neutral-500);
+ svg {
+ stroke: var(--button-contained-neutral-default-contrast);
+ }
+
&:hover {
background: var(--color-neutral-700);
border-color: var(--color-neutral-700);
+
+ svg {
+ stroke: var(--button-contained-neutral-hovered-contrast);
+ }
}
&:focus,
&:active {
background: var(--color-neutral-800);
border-color: var(--color-neutral-800);
+
+ svg {
+ stroke: var(--button-contained-neutral-pressed-contrast);
+ }
}
&[styleType="outlined"] {
+ svg {
+ stroke: var(--button-outlined-neutral-default-contrast);
+ }
+
&:hover {
background-color: var(--color-neutral-50);
+
+ svg {
+ stroke: var(--button-outlined-neutral-hovered-contrast);
+ }
}
&:focus,
@@ -136,12 +227,24 @@
background-color: var(--color-neutral-100);
color: var(--color-neutral-700);
border-color: var(--color-neutral-700);
+
+ svg {
+ stroke: var(--button-outlined-neutral-pressed-contrast);
+ }
}
}
&[styleType="text"] {
+ svg {
+ stroke: var(--button-text-neutral-default-contrast);
+ }
+
&:hover {
background-color: transparent;
+
+ svg {
+ stroke: var(--button-text-neutral-hovered-contrast);
+ }
}
&:focus,
@@ -149,6 +252,10 @@
background-color: transparent;
color: var(--color-neutral-800);
border-color: var(--color-neutral-800);
+
+ svg {
+ stroke: var(--button-text-neutral-pressed-contrast);
+ }
}
}
}
@@ -158,21 +265,41 @@
background: var(--color-error-600);
border-color: var(--color-error-600);
+ svg {
+ stroke: var(--button-contained-error-default-contrast);
+ }
+
&:hover {
background: var(--color-error-800);
border-color: var(--color-error-800);
+
+ svg {
+ stroke: var(--button-contained-error-hovered-contrast);
+ }
}
&:focus,
&:active {
background: var(--color-error-900);
border-color: var(--color-error-900);
+
+ svg {
+ stroke: var(--button-contained-error-pressed-contrast);
+ }
}
&[styleType="outlined"] {
+ svg {
+ stroke: var(--button-outlined-error-default-contrast);
+ }
+
&:hover {
background-color: var(--color-error-50);
border-color: var(--color-secondary-700);
+
+ svg {
+ stroke: var(--button-outlined-error-hovered-contrast);
+ }
}
&:focus,
@@ -180,14 +307,26 @@
background-color: var(--color-error-100);
color: var(--color-secondary-700);
border-color: var(--color-secondary-700);
+
+ svg {
+ stroke: var(--button-outlined-error-pressed-contrast);
+ }
}
}
&[styleType="text"] {
+ svg {
+ stroke: var(--button-text-error-default-contrast);
+ }
+
&:hover {
background-color: transparent;
color: var(--color-error-800);
border-color: var(--color-error-800);
+
+ svg {
+ stroke: var(--button-text-error-hovered-contrast);
+ }
}
&:focus,
@@ -195,6 +334,10 @@
background-color: transparent;
color: var(--color-error-900);
border-color: var(--color-error-900);
+
+ svg {
+ stroke: var(--button-text-error-pressed-contrast);
+ }
}
}
}
@@ -204,22 +347,42 @@
background: var(--color-warning-600);
border-color: var(--color-warning-600);
+ svg {
+ stroke: var(--button-contained-warning-default-contrast);
+ }
+
&:hover {
background: var(--color-warning-800);
border-color: var(--color-warning-800);
+
+ svg {
+ stroke: var(--button-contained-warning-hovered-contrast);
+ }
}
&:focus,
&:active {
background: var(--color-warning-900);
border-color: var(--color-warning-900);
+
+ svg {
+ stroke: var(--button-contained-warning-pressed-contrast);
+ }
}
&[styleType="outlined"] {
+ svg {
+ stroke: var(--button-outlined-warning-default-contrast);
+ }
+
&:hover {
background-color: var(--color-warning-50);
border-color: var(--color-warning-700);
color: var(--color-warning-700);
+
+ svg {
+ stroke: var(--button-outlined-warning-hovered-contrast);
+ }
}
&:focus,
@@ -227,14 +390,26 @@
background-color: var(--color-warning-100);
color: var(--color-warning-700);
border-color: var(--color-warning-700);
+
+ svg {
+ stroke: var(--button-outlined-warning-pressed-contrast);
+ }
}
}
&[styleType="text"] {
+ svg {
+ stroke: var(--button-text-warning-default-contrast);
+ }
+
&:hover {
background-color: transparent;
color: var(--color-warning-800);
border-color: var(--color-warning-800);
+
+ svg {
+ stroke: var(--button-text-warning-hovered-contrast);
+ }
}
&:focus,
@@ -242,6 +417,10 @@
background-color: transparent;
color: var(--color-warning-900);
border-color: var(--color-warning-900);
+
+ svg {
+ stroke: var(--button-text-warning-pressed-contrast);
+ }
}
}
}
@@ -251,22 +430,42 @@
background: var(--color-success-600);
border-color: var(--color-success-600);
+ svg {
+ stroke: var(--button-contained-success-default-contrast);
+ }
+
&:hover {
background: var(--color-success-800);
border-color: var(--color-success-800);
+
+ svg {
+ stroke: var(--button-contained-success-hovered-contrast);
+ }
}
&:focus,
&:active {
background: var(--color-success-900);
border-color: var(--color-success-900);
+
+ svg {
+ stroke: var(--button-contained-success-pressed-contrast);
+ }
}
&[styleType="outlined"] {
+ svg {
+ stroke: var(--button-outlined-success-default-contrast);
+ }
+
&:hover {
background-color: var(--color-success-50);
border-color: var(--color-success-700);
color: var(--color-success-700);
+
+ svg {
+ stroke: var(--button-outlined-success-hovered-contrast);
+ }
}
&:focus,
@@ -274,14 +473,26 @@
background-color: var(--color-success-100);
color: var(--color-success-700);
border-color: var(--color-success-700);
+
+ svg {
+ stroke: var(--button-outlined-success-pressed-contrast);
+ }
}
}
&[styleType="text"] {
+ svg {
+ stroke: var(--button-text-success-default-contrast);
+ }
+
&:hover {
background-color: transparent;
color: var(--color-success-800);
border-color: var(--color-success-800);
+
+ svg {
+ stroke: var(--button-text-success-hovered-contrast);
+ }
}
&:focus,
@@ -289,6 +500,10 @@
background-color: transparent;
color: var(--color-success-900);
border-color: var(--color-success-900);
+
+ svg {
+ stroke: var(--button-text-success-pressed-contrast);
+ }
}
}
}
@@ -298,22 +513,41 @@
background: var(--color-info-700);
border-color: var(--color-info-700);
+ svg {
+ stroke: var(--button-contained-info-default-contrast);
+ }
+
&:hover {
background: var(--color-info-900);
border-color: var(--color-info-900);
+
+ svg {
+ stroke: var(--button-contained-info-hovered-contrast);
+ }
}
&:focus,
&:active {
background: var(--color-info-950);
border-color: var(--color-info-950);
+
+ svg {
+ stroke: var(--button-contained-info-pressed-contrast);
+ }
}
&[styleType="outlined"] {
+ svg {
+ stroke: var(--button-outlined-info-default-contrast);
+ }
&:hover {
background-color: var(--color-info-50);
border-color: var(--color-info-700);
color: var(--color-info-700);
+
+ svg {
+ stroke: var(--button-outlined-info-hovered-contrast);
+ }
}
&:focus,
@@ -321,14 +555,26 @@
background-color: var(--color-info-100);
color: var(--color-info-700);
border-color: var(--color-info-700);
+
+ svg {
+ stroke: var(--button-outlined-info-pressed-contrast);
+ }
}
}
&[styleType="text"] {
+ svg {
+ stroke: var(--button-text-info-default-contrast);
+ }
+
&:hover {
background-color: transparent;
color: var(--color-info-900);
border-color: var(--color-info-900);
+
+ svg {
+ stroke: var(--button-text-info-hovered-contrast);
+ }
}
&:focus,
@@ -336,6 +582,10 @@
background-color: transparent;
color: var(--color-info-950);
border-color: var(--color-info-950);
+
+ svg {
+ stroke: var(--button-text-info-pressed-contrast);
+ }
}
}
}
diff --git a/src/front/Components/DesignSystem/Button/index.tsx b/src/front/Components/DesignSystem/Button/index.tsx
index 4c2e7baa..9bb4aa96 100644
--- a/src/front/Components/DesignSystem/Button/index.tsx
+++ b/src/front/Components/DesignSystem/Button/index.tsx
@@ -1,8 +1,7 @@
-import Image from "next/image";
+import classNames from "classnames";
import React, { CSSProperties } from "react";
import classes from "./classes.module.scss";
-import classNames from "classnames";
export enum EButtonVariant {
PRIMARY = "primary",
@@ -33,12 +32,12 @@ type IProps = {
size?: EButtonSize;
styleType?: EButtonStyleType;
fullwidth?: boolean;
- icon?: string;
+ leftIcon?: React.ReactNode;
+ rightIcon?: React.ReactNode;
iconstyle?: CSSProperties;
disabled?: boolean;
isLoading?: boolean;
type?: "button" | "submit";
- iconposition?: "left" | "right";
className?: string;
};
@@ -51,12 +50,11 @@ export default function Button(props: IProps) {
type = "button",
isLoading = false,
fullwidth = false,
- iconposition = "right",
onClick,
children,
- icon,
- iconstyle,
className = "",
+ leftIcon,
+ rightIcon,
} = props;
const fullwidthattr = fullwidth.toString();
@@ -64,15 +62,15 @@ export default function Button(props: IProps) {
const attributes = { ...props, variant, disabled, type, isloadingattr, fullwidthattr, sizing: size, styleType };
delete attributes.fullwidth;
- delete attributes.icon;
+ delete attributes.leftIcon;
+ delete attributes.rightIcon;
delete attributes.iconstyle;
- delete attributes.iconposition;
return (
);
}
diff --git a/src/front/Components/Layouts/DesignSystem/index.tsx b/src/front/Components/Layouts/DesignSystem/index.tsx
index 9dcea52f..59e1c8e3 100644
--- a/src/front/Components/Layouts/DesignSystem/index.tsx
+++ b/src/front/Components/Layouts/DesignSystem/index.tsx
@@ -4,11 +4,12 @@ import Newsletter from "@Front/Components/DesignSystem/Newsletter";
import Table from "@Front/Components/DesignSystem/Table";
import Tag, { ETagColor, ETagVariant } from "@Front/Components/DesignSystem/Tag";
import Typography, { ETypo } from "@Front/Components/DesignSystem/Typography";
+import Tabs from "@Front/Components/Elements/Tabs";
import DefaultTemplate from "@Front/Components/LayoutTemplates/DefaultTemplate";
+import { ArrowLongLeftIcon, ArrowLongRightIcon } from "@heroicons/react/24/outline";
+import { useCallback, useMemo, useState } from "react";
import classes from "./classes.module.scss";
-import Tabs from "@Front/Components/Elements/Tabs";
-import { useCallback, useMemo, useState } from "react";
export default function DesignSystem() {
const userDb = useMemo(
@@ -134,66 +135,136 @@ export default function DesignSystem() {