@axa-fr/design-system-slash-react 1.1.1-alpha.2 → 1.1.1-alpha.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/Accordion/CollapseCard.d.ts +3 -3
  2. package/dist/Form/Checkbox/CheckboxInput.d.ts +2 -2
  3. package/dist/Form/Checkbox/CheckboxInput.js +2 -2
  4. package/dist/Form/Choice/ChoiceInput.d.ts +2 -2
  5. package/dist/Form/Choice/ChoiceInput.js +2 -2
  6. package/dist/Form/Date/DateInput.d.ts +2 -2
  7. package/dist/Form/Date/DateInput.js +2 -2
  8. package/dist/Form/File/FileInput.d.ts +2 -2
  9. package/dist/Form/File/FileInput.js +2 -2
  10. package/dist/Form/MultiSelect/MultiSelectInput.d.ts +2 -2
  11. package/dist/Form/MultiSelect/MultiSelectInput.js +2 -2
  12. package/dist/Form/Number/NumberInput.d.ts +2 -2
  13. package/dist/Form/Number/NumberInput.js +2 -2
  14. package/dist/Form/Pass/PassInput.d.ts +2 -2
  15. package/dist/Form/Pass/PassInput.js +2 -2
  16. package/dist/Form/Radio/RadioInput.js +2 -2
  17. package/dist/Form/Select/SelectInput.d.ts +2 -2
  18. package/dist/Form/Select/SelectInput.js +2 -2
  19. package/dist/Form/Slider/SliderInput.d.ts +2 -2
  20. package/dist/Form/Slider/SliderInput.js +2 -2
  21. package/dist/Form/Text/TextInput.d.ts +3 -6
  22. package/dist/Form/Text/TextInput.js +4 -12
  23. package/dist/Form/Text/index.d.ts +1 -1
  24. package/dist/Form/Text/index.js +1 -1
  25. package/dist/Form/Textarea/TextareaInput.d.ts +2 -2
  26. package/dist/Form/Textarea/TextareaInput.js +2 -2
  27. package/dist/Form/core/Field.d.ts +15 -4
  28. package/dist/Form/core/Field.js +15 -8
  29. package/dist/Form/core/LegacyField.d.ts +16 -0
  30. package/dist/Form/core/LegacyField.js +15 -0
  31. package/dist/Form/core/index.d.ts +6 -5
  32. package/dist/Form/core/index.js +6 -5
  33. package/dist/Link/Link.d.ts +10 -0
  34. package/dist/Link/Link.js +8 -0
  35. package/dist/index.d.ts +1 -0
  36. package/dist/index.js +1 -0
  37. package/package.json +4 -2
@@ -1,11 +1,11 @@
1
- import { ReactNode } from "react";
1
+ import type { DetailsHTMLAttributes, ReactNode } from "react";
2
2
  export type CollapseProps = {
3
3
  id: string;
4
4
  title: ReactNode;
5
- children?: React.ReactNode;
5
+ children?: ReactNode;
6
6
  open?: boolean;
7
7
  name?: string;
8
- onToggle?: React.DetailsHTMLAttributes<HTMLDetailsElement>["onToggle"];
8
+ onToggle?: DetailsHTMLAttributes<HTMLDetailsElement>["onToggle"];
9
9
  className?: string;
10
10
  classModifier?: string;
11
11
  };
@@ -1,6 +1,6 @@
1
1
  import { ComponentProps } from "react";
2
- import { Field } from "../core";
2
+ import { LegacyField } from "../core";
3
3
  import { Checkbox } from "./Checkbox";
4
- type Props = Omit<ComponentProps<typeof Checkbox> & ComponentProps<typeof Field>, "children" | "placeholder">;
4
+ type Props = Omit<ComponentProps<typeof Checkbox> & ComponentProps<typeof LegacyField>, "children" | "placeholder">;
5
5
  declare const CheckboxInput: import("react").ForwardRefExoticComponent<Omit<Props, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
6
6
  export { CheckboxInput };
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
- import { Field, useOptionsWithId } from "../core";
3
+ import { LegacyField, useOptionsWithId } from "../core";
4
4
  import { Checkbox } from "./Checkbox";
5
5
  import { CheckboxModes } from "./CheckboxModes";
6
6
  const CheckboxInput = forwardRef(({ mode, messageType, message, classModifier, options, classNameContainerLabel, classNameContainerInput, label, isVisible, className, forceDisplayMessage, required, ...checkboxProps }, inputRef) => {
@@ -12,7 +12,7 @@ const CheckboxInput = forwardRef(({ mode, messageType, message, classModifier, o
12
12
  rowModifier += " required";
13
13
  }
14
14
  const newOptions = useOptionsWithId(options);
15
- return (_jsx(Field, { label: label, id: newOptions[0].id, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, classModifier: rowModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: _jsx(Checkbox, { mode: mode, options: newOptions, classModifier: classModifier, ref: inputRef, ...checkboxProps }) }));
15
+ return (_jsx(LegacyField, { label: label, id: newOptions[0].id, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, classModifier: rowModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: _jsx(Checkbox, { mode: mode, options: newOptions, classModifier: classModifier, ref: inputRef, ...checkboxProps }) }));
16
16
  });
17
17
  CheckboxInput.displayName = "CheckboxInput";
18
18
  export { CheckboxInput };
@@ -1,6 +1,6 @@
1
1
  import { type ComponentProps } from "react";
2
- import { Field } from "../core";
2
+ import { LegacyField } from "../core";
3
3
  import { Choice } from "./Choice";
4
- type Props = ComponentProps<typeof Choice> & Omit<ComponentProps<typeof Field>, "children">;
4
+ type Props = ComponentProps<typeof Choice> & Omit<ComponentProps<typeof LegacyField>, "children">;
5
5
  declare const ChoiceInput: import("react").ForwardRefExoticComponent<Omit<Props, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
6
6
  export { ChoiceInput };
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
- import { Field, useInputClassModifier, useOptionsWithId } from "../core";
3
+ import { LegacyField, useInputClassModifier, useOptionsWithId } from "../core";
4
4
  import { Choice } from "./Choice";
5
5
  const defaultOptions = [
6
6
  { label: "Oui", value: true, id: "radioItemTrue" },
@@ -14,7 +14,7 @@ const ChoiceInput = forwardRef(({ id, messageType, message, className, classModi
14
14
  ...o,
15
15
  value: o.value === "true",
16
16
  }));
17
- return (_jsx(Field, { label: label, id: firstId, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, classModifier: inputFieldClassModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: _jsx(Choice, { ...otherProps, id: id, ref: inputRef, classModifier: inputClassModifier, options: options ? choiceOptions : undefined, required: required, disabled: disabled }) }));
17
+ return (_jsx(LegacyField, { label: label, id: firstId, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, classModifier: inputFieldClassModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: _jsx(Choice, { ...otherProps, id: id, ref: inputRef, classModifier: inputClassModifier, options: options ? choiceOptions : undefined, required: required, disabled: disabled }) }));
18
18
  });
19
19
  ChoiceInput.displayName = "ChoiceInput";
20
20
  export { ChoiceInput };
@@ -1,7 +1,7 @@
1
1
  import { ComponentPropsWithoutRef, ReactNode } from "react";
2
- import { Field } from "../core";
2
+ import { LegacyField } from "../core";
3
3
  import { Date } from "./Date";
4
- type Props = Omit<ComponentPropsWithoutRef<typeof Date>, "placeholderText"> & ComponentPropsWithoutRef<typeof Field> & {
4
+ type Props = Omit<ComponentPropsWithoutRef<typeof Date>, "placeholderText"> & ComponentPropsWithoutRef<typeof LegacyField> & {
5
5
  placeholder?: string;
6
6
  helpMessage?: ReactNode;
7
7
  children?: ReactNode;
@@ -1,11 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useId } from "react";
3
- import { Field, FieldInput, HelpMessage, useInputClassModifier } from "../core";
3
+ import { FieldInput, HelpMessage, LegacyField, useInputClassModifier, } from "../core";
4
4
  import { Date } from "./Date";
5
5
  const DateInput = ({ classModifier = "", message, children, helpMessage, id, classNameContainerLabel, classNameContainerInput, label, messageType, isVisible, forceDisplayMessage, className, disabled = false, required, ...otherProps }) => {
6
6
  const inputUseId = useId();
7
7
  const inputId = id ?? inputUseId;
8
8
  const { inputClassModifier, inputFieldClassModifier } = useInputClassModifier(classModifier, disabled, Boolean(children), required);
9
- return (_jsxs(Field, { label: label, id: inputId, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, classModifier: inputFieldClassModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: [_jsxs(FieldInput, { className: "af-form__date", classModifier: inputFieldClassModifier, children: [_jsx(Date, { id: inputId, classModifier: inputClassModifier, disabled: disabled, required: required, ...otherProps }), children] }), _jsx(HelpMessage, { message: helpMessage, isVisible: !message })] }));
9
+ return (_jsxs(LegacyField, { label: label, id: inputId, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, classModifier: inputFieldClassModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: [_jsxs(FieldInput, { className: "af-form__date", classModifier: inputFieldClassModifier, children: [_jsx(Date, { id: inputId, classModifier: inputClassModifier, disabled: disabled, required: required, ...otherProps }), children] }), _jsx(HelpMessage, { message: helpMessage, isVisible: !message })] }));
10
10
  };
11
11
  export { DateInput };
@@ -1,9 +1,9 @@
1
1
  import "@axa-fr/design-system-slash-css/dist/Form/File/File.scss";
2
2
  import { ComponentPropsWithoutRef, ReactNode } from "react";
3
- import { Field } from "../core";
3
+ import { LegacyField } from "../core";
4
4
  import { File } from "./File";
5
5
  import { FileTable } from "./FileTable";
6
- type FieldProps = ComponentPropsWithoutRef<typeof Field>;
6
+ type FieldProps = ComponentPropsWithoutRef<typeof LegacyField>;
7
7
  type FileProps = ComponentPropsWithoutRef<typeof File>;
8
8
  type FileTableProps = ComponentPropsWithoutRef<typeof FileTable>;
9
9
  type Props = FieldProps & FileProps & Pick<FileTableProps, "values" | "errors"> & {
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import "@axa-fr/design-system-slash-css/dist/Form/File/File.scss";
3
3
  import { useId } from "react";
4
- import { Field, FieldInput, HelpMessage, useInputClassModifier } from "../core";
4
+ import { FieldInput, HelpMessage, LegacyField, useInputClassModifier, } from "../core";
5
5
  import { File } from "./File";
6
6
  import { FileTable } from "./FileTable";
7
7
  const FileInput = ({ values = [], name = "", onChange, classModifier = "", message, children, helpMessage, id = "", forceDisplayMessage, messageType, classNameContainerLabel, classNameContainerInput, label, isVisible, className, errors, fileLabel, disabled = false, required, ...otherFileProps }) => {
@@ -17,6 +17,6 @@ const FileInput = ({ values = [], name = "", onChange, classModifier = "", messa
17
17
  const inputId = id ?? inputUseId;
18
18
  const { inputClassModifier, inputFieldClassModifier } = useInputClassModifier(classModifier, disabled, Boolean(children), required);
19
19
  const rowModifier = `${inputFieldClassModifier} label-top`;
20
- return (_jsxs(Field, { label: label, id: inputId, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, classModifier: rowModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: [_jsxs(FieldInput, { className: "af-form__file", classModifier: inputFieldClassModifier, children: [_jsx(File, { id: inputId, name: name, onChange: onChange, disabled: disabled, classModifier: inputClassModifier, label: fileLabel, required: required || classModifier?.includes("required"), ...otherFileProps }), children] }), _jsx(HelpMessage, { message: helpMessage, isVisible: !message }), _jsx(FileTable, { errors: errors, values: values, onClick: (selectedId) => onDeleteClick(selectedId, inputId), classModifier: classModifier })] }));
20
+ return (_jsxs(LegacyField, { label: label, id: inputId, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, classModifier: rowModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: [_jsxs(FieldInput, { className: "af-form__file", classModifier: inputFieldClassModifier, children: [_jsx(File, { id: inputId, name: name, onChange: onChange, disabled: disabled, classModifier: inputClassModifier, label: fileLabel, required: required || classModifier?.includes("required"), ...otherFileProps }), children] }), _jsx(HelpMessage, { message: helpMessage, isVisible: !message }), _jsx(FileTable, { errors: errors, values: values, onClick: (selectedId) => onDeleteClick(selectedId, inputId), classModifier: classModifier })] }));
21
21
  };
22
22
  export { FileInput };
@@ -1,8 +1,8 @@
1
1
  import "@axa-fr/design-system-slash-css/dist/Form/MultiSelect/MultiSelect.scss";
2
2
  import { type ComponentProps, type ReactNode } from "react";
3
- import { Field } from "../core";
3
+ import { LegacyField } from "../core";
4
4
  import { MultiSelect } from "./MultiSelect";
5
- type Props = ComponentProps<typeof Field> & ComponentProps<typeof MultiSelect> & {
5
+ type Props = ComponentProps<typeof LegacyField> & ComponentProps<typeof MultiSelect> & {
6
6
  helpMessage?: ReactNode;
7
7
  };
8
8
  declare const MultiSelectInput: ({ classModifier, message, children, helpMessage, id, disabled, classNameContainerLabel, classNameContainerInput, label, messageType, isVisible, forceDisplayMessage, className, required, ...multiSelectProps }: Props) => import("react/jsx-runtime").JSX.Element;
@@ -1,12 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import "@axa-fr/design-system-slash-css/dist/Form/MultiSelect/MultiSelect.scss";
3
3
  import { useId } from "react";
4
- import { Field, FieldInput, HelpMessage, useInputClassModifier } from "../core";
4
+ import { FieldInput, HelpMessage, LegacyField, useInputClassModifier, } from "../core";
5
5
  import { MultiSelect } from "./MultiSelect";
6
6
  const MultiSelectInput = ({ classModifier, message, children, helpMessage, id, disabled, classNameContainerLabel, classNameContainerInput, label, messageType, isVisible, forceDisplayMessage, className, required, ...multiSelectProps }) => {
7
7
  const { inputFieldClassModifier } = useInputClassModifier(classModifier ?? "", disabled ?? false, Boolean(children), required);
8
8
  const generatedId = useId();
9
9
  const inputId = id || generatedId;
10
- return (_jsxs(Field, { label: label, id: inputId, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, classModifier: inputFieldClassModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: [_jsxs(FieldInput, { className: "af-form__select", classModifier: inputFieldClassModifier, children: [_jsx(MultiSelect, { inputId: inputId, disabled: disabled, required: required, ...multiSelectProps }), children] }), _jsx(HelpMessage, { message: helpMessage, isVisible: !message })] }));
10
+ return (_jsxs(LegacyField, { label: label, id: inputId, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, classModifier: inputFieldClassModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: [_jsxs(FieldInput, { className: "af-form__select", classModifier: inputFieldClassModifier, children: [_jsx(MultiSelect, { inputId: inputId, disabled: disabled, required: required, ...multiSelectProps }), children] }), _jsx(HelpMessage, { message: helpMessage, isVisible: !message })] }));
11
11
  };
12
12
  export { MultiSelectInput };
@@ -2,9 +2,9 @@ import "@axa-fr/design-system-slash-css/dist/common/grid.scss";
2
2
  import "@axa-fr/design-system-slash-css/dist/common/reboot.scss";
3
3
  import "@axa-fr/design-system-slash-css/dist/Form/core/FormCore.scss";
4
4
  import { ComponentPropsWithoutRef, ComponentPropsWithRef, ReactNode } from "react";
5
- import { Field } from "../core";
5
+ import { LegacyField } from "../core";
6
6
  import { Number } from "./Number";
7
- type Props = ComponentPropsWithoutRef<typeof Field> & ComponentPropsWithRef<typeof Number> & {
7
+ type Props = ComponentPropsWithoutRef<typeof LegacyField> & ComponentPropsWithRef<typeof Number> & {
8
8
  helpMessage?: ReactNode;
9
9
  children?: ReactNode;
10
10
  };
@@ -3,11 +3,11 @@ import "@axa-fr/design-system-slash-css/dist/common/grid.scss";
3
3
  import "@axa-fr/design-system-slash-css/dist/common/reboot.scss";
4
4
  import "@axa-fr/design-system-slash-css/dist/Form/core/FormCore.scss";
5
5
  import { useId, } from "react";
6
- import { Field, FieldInput, HelpMessage, useInputClassModifier } from "../core";
6
+ import { FieldInput, HelpMessage, LegacyField, useInputClassModifier, } from "../core";
7
7
  import { Number } from "./Number";
8
8
  export const NumberInput = ({ message, children, helpMessage, id, label, classNameContainerLabel, classNameContainerInput, forceDisplayMessage, messageType, isVisible, className, disabled = false, classModifier = "", required, ...otherProps }) => {
9
9
  const inputUseId = useId();
10
10
  const inputId = id ?? inputUseId;
11
11
  const { inputClassModifier, inputFieldClassModifier } = useInputClassModifier(classModifier, disabled, Boolean(children), required);
12
- return (_jsxs(Field, { label: label, id: inputId, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, classModifier: inputFieldClassModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: [_jsxs(FieldInput, { className: "af-form__text", classModifier: inputFieldClassModifier, children: [_jsx(Number, { id: inputId, classModifier: inputClassModifier, disabled: disabled, ...otherProps }), children] }), _jsx(HelpMessage, { message: helpMessage, isVisible: !message })] }));
12
+ return (_jsxs(LegacyField, { label: label, id: inputId, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, classModifier: inputFieldClassModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: [_jsxs(FieldInput, { className: "af-form__text", classModifier: inputFieldClassModifier, children: [_jsx(Number, { id: inputId, classModifier: inputClassModifier, disabled: disabled, ...otherProps }), children] }), _jsx(HelpMessage, { message: helpMessage, isVisible: !message })] }));
13
13
  };
@@ -1,8 +1,8 @@
1
1
  import { ComponentProps, ReactNode } from "react";
2
- import { Field } from "../core";
2
+ import { LegacyField } from "../core";
3
3
  import { Pass } from "./Pass";
4
4
  type PassProps = ComponentProps<typeof Pass>;
5
- type Props = ComponentProps<typeof Field> & Omit<PassProps, "onToggleType" | "type"> & {
5
+ type Props = ComponentProps<typeof LegacyField> & Omit<PassProps, "onToggleType" | "type"> & {
6
6
  helpMessage?: ReactNode;
7
7
  score?: string;
8
8
  };
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useId, useState } from "react";
3
- import { Field, FieldInput, HelpMessage, useInputClassModifier } from "../core";
3
+ import { FieldInput, HelpMessage, LegacyField, useInputClassModifier, } from "../core";
4
4
  import { Pass } from "./Pass";
5
5
  const strengthList = {
6
6
  0: "bad",
@@ -29,6 +29,6 @@ const PassInput = ({ message, children, helpMessage, id, disabled = false, label
29
29
  const inputId = useId();
30
30
  const finalId = id ?? inputId;
31
31
  const { inputClassModifier, inputFieldClassModifier } = useInputClassModifier(classModifierStrength, disabled, Boolean(children), required);
32
- return (_jsx(Field, { label: label, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, id: finalId, classModifier: `${classModifierStrength} ${inputFieldClassModifier}`, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: _jsxs(FieldInput, { className: "af-form__pass-container", classModifier: inputFieldClassModifier, children: [_jsx(Pass, { ...passProps, type: type, id: inputId, disabled: disabled, classModifier: inputClassModifier, onToggleType: () => setType(type === "password" ? "text" : "password") }), children, _jsx(HelpMessage, { message: helpMessage, isVisible: !message })] }) }));
32
+ return (_jsx(LegacyField, { label: label, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, id: finalId, classModifier: `${classModifierStrength} ${inputFieldClassModifier}`, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: _jsxs(FieldInput, { className: "af-form__pass-container", classModifier: inputFieldClassModifier, children: [_jsx(Pass, { ...passProps, type: type, id: inputId, disabled: disabled, classModifier: inputClassModifier, onToggleType: () => setType(type === "password" ? "text" : "password") }), children, _jsx(HelpMessage, { message: helpMessage, isVisible: !message })] }) }));
33
33
  };
34
34
  export { PassInput };
@@ -1,13 +1,13 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
- import { Field, getFirstId, useInputClassModifier, useOptionsWithId, } from "../core";
3
+ import { LegacyField, getFirstId, useInputClassModifier, useOptionsWithId, } from "../core";
4
4
  import { Radio, RadioModes } from "./Radio";
5
5
  const RadioInput = forwardRef(({ mode, messageType, message, className, classModifier = "", isVisible, options, classNameContainerLabel, classNameContainerInput, label, forceDisplayMessage, children, required, disabled = false, ariaLabelContainer, ...radioProps }, inputRef) => {
6
6
  const rowModifier = `${classModifier ?? ""}${mode === RadioModes.classic ? " label-top " : ""}`;
7
7
  const newOptions = useOptionsWithId(options);
8
8
  const firstId = getFirstId(newOptions);
9
9
  const { inputClassModifier, inputFieldClassModifier } = useInputClassModifier(classModifier, disabled, Boolean(children), required);
10
- return (_jsxs(Field, { label: label, id: firstId, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, classModifier: rowModifier + inputFieldClassModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, roleContainer: "radiogroup", ariaLabelContainer: ariaLabelContainer ?? label?.toString(), isLabelContainerLinkedToInput: false, children: [_jsx(Radio, { options: newOptions, mode: mode, classModifier: inputClassModifier, ref: inputRef, disabled: disabled, required: required || classModifier?.includes("required"), ...radioProps }), children] }));
10
+ return (_jsxs(LegacyField, { label: label, id: firstId, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, classModifier: rowModifier + inputFieldClassModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, roleContainer: "radiogroup", ariaLabelContainer: ariaLabelContainer ?? label?.toString(), isLabelContainerLinkedToInput: false, children: [_jsx(Radio, { options: newOptions, mode: mode, classModifier: inputClassModifier, ref: inputRef, disabled: disabled, required: required || classModifier?.includes("required"), ...radioProps }), children] }));
11
11
  });
12
12
  RadioInput.displayName = "EnhancedInputRadio";
13
13
  export { RadioInput };
@@ -1,7 +1,7 @@
1
1
  import { ComponentProps, PropsWithChildren, ReactNode } from "react";
2
- import { Field } from "../core";
2
+ import { LegacyField } from "../core";
3
3
  import { Select } from "./Select";
4
- type Props = ComponentProps<typeof Field> & ComponentProps<typeof Select> & {
4
+ type Props = ComponentProps<typeof LegacyField> & ComponentProps<typeof Select> & {
5
5
  helpMessage?: ReactNode;
6
6
  };
7
7
  declare const SelectInput: import("react").ForwardRefExoticComponent<Omit<PropsWithChildren<Props>, "ref"> & import("react").RefAttributes<HTMLSelectElement>>;
@@ -1,12 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { forwardRef, useId, } from "react";
3
- import { Field, FieldInput, HelpMessage, useInputClassModifier } from "../core";
3
+ import { FieldInput, HelpMessage, LegacyField, useInputClassModifier, } from "../core";
4
4
  import { Select } from "./Select";
5
5
  const SelectInput = forwardRef(({ classModifier = "", message, children, helpMessage, id, disabled = false, label, classNameContainerLabel, classNameContainerInput, messageType, isVisible, forceDisplayMessage, className, required, ...otherSelectProps }, inputRef) => {
6
6
  const generatedId = useId();
7
7
  const inputId = id ?? generatedId;
8
8
  const { inputClassModifier, inputFieldClassModifier } = useInputClassModifier(classModifier, disabled, Boolean(children), required);
9
- return (_jsxs(Field, { label: label, id: inputId, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, classModifier: inputFieldClassModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: [_jsxs(FieldInput, { className: "af-form__select", classModifier: inputFieldClassModifier, children: [_jsx(Select, { id: inputId, disabled: disabled, classModifier: inputClassModifier, ref: inputRef, required: required, ...otherSelectProps }), children] }), _jsx(HelpMessage, { message: helpMessage, isVisible: !message })] }));
9
+ return (_jsxs(LegacyField, { label: label, id: inputId, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, classModifier: inputFieldClassModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: [_jsxs(FieldInput, { className: "af-form__select", classModifier: inputFieldClassModifier, children: [_jsx(Select, { id: inputId, disabled: disabled, classModifier: inputClassModifier, ref: inputRef, required: required, ...otherSelectProps }), children] }), _jsx(HelpMessage, { message: helpMessage, isVisible: !message })] }));
10
10
  });
11
11
  SelectInput.displayName = "SelectInput";
12
12
  export { SelectInput };
@@ -1,7 +1,7 @@
1
1
  import { type ComponentProps, type ReactNode } from "react";
2
- import { Field } from "../core";
2
+ import { LegacyField } from "../core";
3
3
  import { Slider } from "./Slider";
4
- type Props = ComponentProps<typeof Field> & ComponentProps<typeof Slider> & {
4
+ type Props = ComponentProps<typeof LegacyField> & ComponentProps<typeof Slider> & {
5
5
  helpMessage?: ReactNode;
6
6
  };
7
7
  declare const SliderInput: ({ id, children, helpMessage, message, classNameContainerLabel, classNameContainerInput, label, messageType, isVisible, forceDisplayMessage, className, classModifier, ...sliderProps }: Props) => import("react/jsx-runtime").JSX.Element;
@@ -1,10 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useId, useMemo } from "react";
3
- import { Field, HelpMessage } from "../core";
3
+ import { HelpMessage, LegacyField } from "../core";
4
4
  import { Slider } from "./Slider";
5
5
  const SliderInput = ({ id, children, helpMessage, message, classNameContainerLabel, classNameContainerInput, label, messageType, isVisible, forceDisplayMessage, className, classModifier, ...sliderProps }) => {
6
6
  const generatedId = useId();
7
7
  const newId = useMemo(() => id ?? generatedId, [generatedId, id]);
8
- return (_jsxs(Field, { id: newId, label: label, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, classModifier: classModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: [_jsx(Slider, { ...sliderProps, id: id, classModifier: classModifier }), children, _jsx(HelpMessage, { message: helpMessage, isVisible: !message })] }));
8
+ return (_jsxs(LegacyField, { id: newId, label: label, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, classModifier: classModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: [_jsx(Slider, { ...sliderProps, id: id, classModifier: classModifier }), children, _jsx(HelpMessage, { message: helpMessage, isVisible: !message })] }));
9
9
  };
10
10
  export { SliderInput };
@@ -1,11 +1,8 @@
1
- import "@axa-fr/design-system-slash-css/dist/Form/core/FormCore.scss";
2
- import "@axa-fr/design-system-slash-css/dist/common/grid.scss";
3
- import "@axa-fr/design-system-slash-css/dist/common/reboot.scss";
4
1
  import { ComponentProps, ReactNode } from "react";
5
2
  import { Field } from "../core";
6
3
  import { Text } from "./Text";
7
- type Props = ComponentProps<typeof Field> & ComponentProps<typeof Text> & {
4
+ export type TextInputProps = Omit<ComponentProps<typeof Field> & ComponentProps<typeof Text> & {
8
5
  helpMessage?: ReactNode;
9
- };
10
- declare const TextInput: import("react").ForwardRefExoticComponent<Omit<Props, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
6
+ }, "renderInput">;
7
+ declare const TextInput: import("react").ForwardRefExoticComponent<Omit<TextInputProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
11
8
  export { TextInput };
@@ -1,15 +1,7 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import "@axa-fr/design-system-slash-css/dist/Form/core/FormCore.scss";
3
- import "@axa-fr/design-system-slash-css/dist/common/grid.scss";
4
- import "@axa-fr/design-system-slash-css/dist/common/reboot.scss";
5
- import { forwardRef, useId } from "react";
6
- import { Field, FieldInput, HelpMessage, useInputClassModifier } from "../core";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ import { Field } from "../core";
7
4
  import { Text } from "./Text";
8
- const TextInput = forwardRef(({ id, message, children, helpMessage, classNameContainerLabel, classNameContainerInput, label, messageType, isVisible, className, forceDisplayMessage, classModifier = "", disabled = false, required, ...inputTextProps }, inputRef) => {
9
- const inputUseId = useId();
10
- const inputId = id ?? inputUseId;
11
- const { inputClassModifier, inputFieldClassModifier } = useInputClassModifier(classModifier, disabled, Boolean(children), required);
12
- return (_jsxs(Field, { label: label, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, id: inputId, classModifier: classModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: [_jsxs(FieldInput, { className: "af-form__text", classModifier: inputFieldClassModifier, children: [_jsx(Text, { id: inputId, classModifier: inputClassModifier, disabled: disabled, ref: inputRef, required: required, ...inputTextProps }), children] }), _jsx(HelpMessage, { message: helpMessage, isVisible: !message })] }));
13
- });
5
+ const TextInput = forwardRef(({ children, ...props }, inputRef) => (_jsx(Field, { ...props, renderInput: ({ id, classModifier }) => (_jsx(Text, { id: id, classModifier: classModifier, ref: inputRef, ...props })), children: children })));
14
6
  TextInput.displayName = "TextInput";
15
7
  export { TextInput };
@@ -1,2 +1,2 @@
1
- export { TextInput } from "./TextInput";
2
1
  export { Text } from "./Text";
2
+ export { TextInput } from "./TextInput";
@@ -1,2 +1,2 @@
1
- export { TextInput } from "./TextInput";
2
1
  export { Text } from "./Text";
2
+ export { TextInput } from "./TextInput";
@@ -2,9 +2,9 @@ import "@axa-fr/design-system-slash-css/dist/common/grid.scss";
2
2
  import "@axa-fr/design-system-slash-css/dist/common/reboot.scss";
3
3
  import "@axa-fr/design-system-slash-css/dist/Form/core/FormCore.scss";
4
4
  import { ComponentProps, ReactNode } from "react";
5
- import { Field } from "../core";
5
+ import { LegacyField } from "../core";
6
6
  import { Textarea } from "./Textarea";
7
- type Props = ComponentProps<typeof Field> & ComponentProps<typeof Textarea> & {
7
+ type Props = ComponentProps<typeof LegacyField> & ComponentProps<typeof Textarea> & {
8
8
  helpMessage?: ReactNode;
9
9
  };
10
10
  declare const TextareaInput: import("react").ForwardRefExoticComponent<Omit<Props, "ref"> & import("react").RefAttributes<HTMLTextAreaElement>>;
@@ -3,14 +3,14 @@ import "@axa-fr/design-system-slash-css/dist/common/grid.scss";
3
3
  import "@axa-fr/design-system-slash-css/dist/common/reboot.scss";
4
4
  import "@axa-fr/design-system-slash-css/dist/Form/core/FormCore.scss";
5
5
  import { forwardRef, useId } from "react";
6
- import { Field, FieldInput, HelpMessage, useInputClassModifier } from "../core";
6
+ import { FieldInput, HelpMessage, LegacyField, useInputClassModifier, } from "../core";
7
7
  import { Textarea } from "./Textarea";
8
8
  const TextareaInput = forwardRef(({ id, classModifier = "", message, children, helpMessage, classNameContainerLabel, classNameContainerInput, label, messageType, isVisible, forceDisplayMessage, className, rows = 5, cols = 50, disabled = false, required, ...textareaInputProps }, inputRef) => {
9
9
  const rowModifier = `${classModifier} label-top`;
10
10
  const inputUseId = useId();
11
11
  const inputId = id ?? inputUseId;
12
12
  const { inputClassModifier, inputFieldClassModifier } = useInputClassModifier(classModifier, disabled, Boolean(children), required);
13
- return (_jsxs(Field, { label: label, id: inputId, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, classModifier: inputFieldClassModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: [_jsxs(FieldInput, { className: "af-form__textarea", classModifier: `${rowModifier} ${inputFieldClassModifier}`, children: [_jsx(Textarea, { ...textareaInputProps, id: inputId, rows: rows, cols: cols, classModifier: inputClassModifier, disabled: disabled, ref: inputRef }), children] }), _jsx(HelpMessage, { message: helpMessage, isVisible: !message })] }));
13
+ return (_jsxs(LegacyField, { label: label, id: inputId, message: message, messageType: messageType, isVisible: isVisible, forceDisplayMessage: forceDisplayMessage, className: className, classModifier: inputFieldClassModifier, classNameContainerLabel: classNameContainerLabel, classNameContainerInput: classNameContainerInput, children: [_jsxs(FieldInput, { className: "af-form__textarea", classModifier: `${rowModifier} ${inputFieldClassModifier}`, children: [_jsx(Textarea, { ...textareaInputProps, id: inputId, rows: rows, cols: cols, classModifier: inputClassModifier, disabled: disabled, ref: inputRef }), children] }), _jsx(HelpMessage, { message: helpMessage, isVisible: !message })] }));
14
14
  });
15
15
  TextareaInput.displayName = "TextareaInput";
16
16
  export { TextareaInput };
@@ -1,6 +1,6 @@
1
- import { ComponentPropsWithoutRef, ReactNode } from "react";
2
- import { FieldForm } from "./FieldForm";
3
- type FieldProps = Omit<ComponentPropsWithoutRef<typeof FieldForm>, "children"> & {
1
+ import { type ReactNode } from "react";
2
+ import { MessageTypes } from ".";
3
+ type InputProps = {
4
4
  label: ReactNode;
5
5
  children?: ReactNode;
6
6
  id?: string;
@@ -11,6 +11,17 @@ type FieldProps = Omit<ComponentPropsWithoutRef<typeof FieldForm>, "children"> &
11
11
  roleContainer?: string;
12
12
  ariaLabelContainer?: string;
13
13
  isLabelContainerLinkedToInput?: boolean;
14
+ forceDisplayMessage?: boolean;
15
+ message?: string;
16
+ messageType?: MessageTypes;
17
+ required?: boolean;
18
+ disabled?: boolean;
19
+ helpMessage?: ReactNode;
14
20
  };
15
- export declare const Field: ({ id, message, messageType, label, children, forceDisplayMessage, classModifier, className, classNameContainerLabel, classNameContainerInput, isVisible, roleContainer, ariaLabelContainer, isLabelContainerLinkedToInput, }: FieldProps) => import("react/jsx-runtime").JSX.Element | null;
21
+ export declare const Field: ({ classNameContainerInput, classNameContainerLabel, label, forceDisplayMessage, message, messageType, required, classModifier, children, disabled, helpMessage, id, isVisible, roleContainer, ariaLabelContainer, isLabelContainerLinkedToInput, renderInput: Element, }: InputProps & {
22
+ renderInput: (props: {
23
+ id: string;
24
+ classModifier: string;
25
+ }) => ReactNode;
26
+ }) => import("react/jsx-runtime").JSX.Element | null;
16
27
  export {};
@@ -1,15 +1,22 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import classNames from "classnames";
3
+ import { useId } from "react";
4
+ import { FieldError, FormClassManager, HelpMessage, useInputClassModifier, } from ".";
3
5
  import { getComponentClassName } from "../../utilities";
4
- import { FieldError } from "./FieldError";
5
- import { MessageTypes } from "./MessageTypes";
6
- import { FieldForm } from "./FieldForm";
7
- export const Field = ({ id = "", message = "", messageType = MessageTypes.error, label, children, forceDisplayMessage, classModifier = "", className, classNameContainerLabel = "col-md-2", classNameContainerInput = "col-md-10", isVisible = true, roleContainer, ariaLabelContainer, isLabelContainerLinkedToInput = true, }) => {
6
+ export const Field = ({ classNameContainerInput = "col-md-10", classNameContainerLabel = "col-md-2", label, forceDisplayMessage, message, messageType, required, classModifier = "", children, disabled = false, helpMessage, id, isVisible = true, roleContainer, ariaLabelContainer, isLabelContainerLinkedToInput = true, renderInput: Element, }) => {
7
+ const inputUseId = useId();
8
+ const inputId = id ?? inputUseId;
9
+ const actualRequired = required || classModifier.includes("required");
10
+ const { inputClassModifier, inputFieldClassModifier } = useInputClassModifier(classModifier, disabled, Boolean(children), actualRequired);
8
11
  if (!isVisible) {
9
12
  return null;
10
13
  }
11
- const componentClassName = getComponentClassName(className, classModifier, "row af-form__group");
12
- return (_jsxs("div", { className: componentClassName, role: roleContainer, "aria-label": ariaLabelContainer, children: [_jsx("div", { className: classNameContainerLabel, children: _jsx("label", { className: classNames({
13
- "af-form__group-label--required": classModifier.includes("required"),
14
- }, "af-form__group-label"), htmlFor: isLabelContainerLinkedToInput ? id : undefined, children: label }) }), _jsxs(FieldForm, { className: classNameContainerInput, message: message, messageType: messageType, forceDisplayMessage: forceDisplayMessage, children: [children, _jsx(FieldError, { message: message, messageType: messageType })] })] }));
14
+ const fieldContainerClassName = getComponentClassName("af-form__text", forceDisplayMessage
15
+ ? `${inputFieldClassModifier} ${FormClassManager.getModifier(messageType)}`
16
+ : inputFieldClassModifier);
17
+ return (_jsxs("div", { className: classNames("row af-form__group", {
18
+ "af-form__group--required": actualRequired,
19
+ }), role: roleContainer, "aria-label": ariaLabelContainer, children: [_jsx("div", { className: classNameContainerLabel, children: _jsx("label", { className: classNames("af-form__group-label", {
20
+ "af-form__group-label--required": actualRequired,
21
+ }), htmlFor: isLabelContainerLinkedToInput ? inputId : undefined, children: label }) }), _jsxs("div", { className: classNameContainerInput, children: [_jsxs("div", { className: fieldContainerClassName, children: [_jsx(Element, { id: inputId, classModifier: inputClassModifier }), children] }), forceDisplayMessage ? (_jsx(FieldError, { message: message, messageType: messageType })) : (_jsx(HelpMessage, { message: helpMessage }))] })] }));
15
22
  };
@@ -0,0 +1,16 @@
1
+ import type { ComponentPropsWithoutRef, ReactNode } from "react";
2
+ import { FieldForm } from "./FieldForm";
3
+ type FieldProps = Omit<ComponentPropsWithoutRef<typeof FieldForm>, "children"> & {
4
+ label: ReactNode;
5
+ children?: ReactNode;
6
+ id?: string;
7
+ classModifier?: string;
8
+ classNameContainerLabel?: string;
9
+ classNameContainerInput?: string;
10
+ isVisible?: boolean;
11
+ roleContainer?: string;
12
+ ariaLabelContainer?: string;
13
+ isLabelContainerLinkedToInput?: boolean;
14
+ };
15
+ export declare const LegacyField: ({ id, message, messageType, label, children, forceDisplayMessage, classModifier, className, classNameContainerLabel, classNameContainerInput, isVisible, roleContainer, ariaLabelContainer, isLabelContainerLinkedToInput, }: FieldProps) => import("react/jsx-runtime").JSX.Element | null;
16
+ export {};
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import classNames from "classnames";
3
+ import { getComponentClassName } from "../../utilities";
4
+ import { FieldError } from "./FieldError";
5
+ import { FieldForm } from "./FieldForm";
6
+ import { MessageTypes } from "./MessageTypes";
7
+ export const LegacyField = ({ id = "", message = "", messageType = MessageTypes.error, label, children, forceDisplayMessage, classModifier = "", className, classNameContainerLabel = "col-md-2", classNameContainerInput = "col-md-10", isVisible = true, roleContainer, ariaLabelContainer, isLabelContainerLinkedToInput = true, }) => {
8
+ if (!isVisible) {
9
+ return null;
10
+ }
11
+ const componentClassName = getComponentClassName(className, classModifier, "row af-form__group");
12
+ return (_jsxs("div", { className: componentClassName, role: roleContainer, "aria-label": ariaLabelContainer, children: [_jsx("div", { className: classNameContainerLabel, children: _jsx("label", { className: classNames({
13
+ "af-form__group-label--required": classModifier.includes("required"),
14
+ }, "af-form__group-label"), htmlFor: isLabelContainerLinkedToInput ? id : undefined, children: label }) }), _jsxs(FieldForm, { className: classNameContainerInput, message: message, messageType: messageType, forceDisplayMessage: forceDisplayMessage, children: [children, _jsx(FieldError, { message: message, messageType: messageType })] })] }));
15
+ };
@@ -1,16 +1,17 @@
1
1
  import { ReactNode } from "react";
2
2
  export { Field } from "./Field";
3
- export { FieldInput } from "./FieldInput";
4
- export { MessageTypes } from "./MessageTypes";
5
3
  export { FieldError } from "./FieldError";
6
- export { FormClassManager } from "./FormClassManager";
7
4
  export { FieldForm } from "./FieldForm";
5
+ export { FieldInput } from "./FieldInput";
6
+ export { FormClassManager } from "./FormClassManager";
8
7
  export { HelpMessage } from "./HelpMessage";
9
8
  export { InputList } from "./InputList";
10
- export { useInputClassModifier } from "./useInputClassModifier";
9
+ export { LegacyField } from "./LegacyField";
10
+ export { MessageTypes } from "./MessageTypes";
11
+ export { getFirstId } from "./getFirstId";
11
12
  export { getOptionClassName } from "./getOptionClassName";
13
+ export { useInputClassModifier } from "./useInputClassModifier";
12
14
  export { useOptionsWithId } from "./useOptionsWithId";
13
- export { getFirstId } from "./getFirstId";
14
15
  export type Option = {
15
16
  id?: string;
16
17
  icon?: ReactNode;
@@ -1,12 +1,13 @@
1
1
  export { Field } from "./Field";
2
- export { FieldInput } from "./FieldInput";
3
- export { MessageTypes } from "./MessageTypes";
4
2
  export { FieldError } from "./FieldError";
5
- export { FormClassManager } from "./FormClassManager";
6
3
  export { FieldForm } from "./FieldForm";
4
+ export { FieldInput } from "./FieldInput";
5
+ export { FormClassManager } from "./FormClassManager";
7
6
  export { HelpMessage } from "./HelpMessage";
8
7
  export { InputList } from "./InputList";
9
- export { useInputClassModifier } from "./useInputClassModifier";
8
+ export { LegacyField } from "./LegacyField";
9
+ export { MessageTypes } from "./MessageTypes";
10
+ export { getFirstId } from "./getFirstId";
10
11
  export { getOptionClassName } from "./getOptionClassName";
12
+ export { useInputClassModifier } from "./useInputClassModifier";
11
13
  export { useOptionsWithId } from "./useOptionsWithId";
12
- export { getFirstId } from "./getFirstId";
@@ -0,0 +1,10 @@
1
+ import { type ComponentProps, type ElementType, type ReactNode } from "react";
2
+ import "@axa-fr/design-system-slash-css/dist/Link/Link.scss";
3
+ export type LinkProps<C extends ElementType> = {
4
+ component?: C;
5
+ leftIcon?: ReactNode;
6
+ rightIcon?: ReactNode;
7
+ className?: string;
8
+ disabled?: boolean;
9
+ } & ComponentProps<C>;
10
+ export declare const Link: import("react").ForwardRefExoticComponent<Omit<any, "ref"> & import("react").RefAttributes<HTMLAnchorElement>>;
@@ -0,0 +1,8 @@
1
+ import { jsxs as _jsxs } from "react/jsx-runtime";
2
+ import classnames from "classnames";
3
+ import { forwardRef, } from "react";
4
+ import "@axa-fr/design-system-slash-css/dist/Link/Link.scss";
5
+ export const Link = forwardRef(({ className, component: Component = "a", leftIcon, rightIcon, target, rel, disabled, children, ...props }, ref) => {
6
+ return (_jsxs(Component, { className: classnames("af-slash-link", className), target: target, rel: target === "_blank" ? "noopener noreferrer" : rel, "aria-disabled": disabled ?? props["aria-disabled"], ...props, ref: ref, children: [leftIcon, children, rightIcon] }));
7
+ });
8
+ Link.displayName = "Link";
package/dist/index.d.ts CHANGED
@@ -27,6 +27,7 @@ export { Svg } from "./Svg";
27
27
  export { Tabs } from "./Tabs/Tabs";
28
28
  export { Title } from "./Title/Title";
29
29
  export { getComponentClassName } from "./utilities";
30
+ export { Link, type LinkProps } from "./Link/Link";
30
31
  export * from "./Accordion";
31
32
  export * from "./Popover";
32
33
  export * from "./Table";
package/dist/index.js CHANGED
@@ -27,6 +27,7 @@ export { Svg } from "./Svg";
27
27
  export { Tabs } from "./Tabs/Tabs";
28
28
  export { Title } from "./Title/Title";
29
29
  export { getComponentClassName } from "./utilities";
30
+ export { Link } from "./Link/Link";
30
31
  export * from "./Accordion";
31
32
  export * from "./Popover";
32
33
  export * from "./Table";
package/package.json CHANGED
@@ -1,7 +1,9 @@
1
1
  {
2
2
  "name": "@axa-fr/design-system-slash-react",
3
- "version": "1.1.1-alpha.2",
3
+ "version": "1.1.1-alpha.20",
4
4
  "description": "",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
5
7
  "exports": {
6
8
  ".": {
7
9
  "import": "./dist/index.js",
@@ -45,7 +47,7 @@
45
47
  },
46
48
  "homepage": "https://github.com/AxaFrance/design-system#readme",
47
49
  "peerDependencies": {
48
- "@axa-fr/design-system-slash-css": "1.1.1-alpha.2",
50
+ "@axa-fr/design-system-slash-css": "1.1.1-alpha.20",
49
51
  "@material-symbols/svg-400": ">= 0.19.0",
50
52
  "react": ">= 18"
51
53
  },