diff --git a/apps/website/screens/components/file-input/code/FileInputCodePage.tsx b/apps/website/screens/components/file-input/code/FileInputCodePage.tsx
index 736427146c..a7a84529bf 100644
--- a/apps/website/screens/components/file-input/code/FileInputCodePage.tsx
+++ b/apps/website/screens/components/file-input/code/FileInputCodePage.tsx
@@ -188,6 +188,21 @@ const sections = [
false
+
| tabIndex |
diff --git a/packages/lib/src/file-input/FileInput.stories.tsx b/packages/lib/src/file-input/FileInput.stories.tsx
index 67b5a16fba..92c655b912 100644
--- a/packages/lib/src/file-input/FileInput.stories.tsx
+++ b/packages/lib/src/file-input/FileInput.stories.tsx
@@ -2,6 +2,7 @@ import { Meta, StoryObj } from "@storybook/react-vite";
import ExampleContainer from "../../.storybook/components/ExampleContainer";
import Title from "../../.storybook/components/Title";
import DxcFileInput from "./FileInput";
+import DxcContainer from "../container/Container";
export default {
title: "File Input",
@@ -510,6 +511,33 @@ const FileInput = () => (
margin="xxlarge"
/>
+
+
+
+
+ {}}
+ mode="filedrop"
+ size="fillParent"
+ />
+
+
+
+
+
+ {}}
+ mode="dropzone"
+ size="fillParent"
+ />
+
+
>
);
// const EllipsisError = () => {
diff --git a/packages/lib/src/file-input/FileInput.tsx b/packages/lib/src/file-input/FileInput.tsx
index bb05aee54a..d60bfc083d 100644
--- a/packages/lib/src/file-input/FileInput.tsx
+++ b/packages/lib/src/file-input/FileInput.tsx
@@ -9,7 +9,11 @@ import { getFilePreview, isFileIncluded } from "./utils";
import HelperText from "../styles/forms/HelperText";
import Label from "../styles/forms/Label";
-const FileInputContainer = styled.div<{ margin: FileInputPropsType["margin"] }>`
+const FileInputContainer = styled.div<{
+ margin: FileInputPropsType["margin"];
+ mode: FileInputPropsType["mode"];
+ size: FileInputPropsType["size"];
+}>`
display: flex;
flex-direction: column;
margin: ${(props) => (props.margin && typeof props.margin !== "object" ? spaces[props.margin] : "0px")};
@@ -21,7 +25,7 @@ const FileInputContainer = styled.div<{ margin: FileInputPropsType["margin"] }>`
props.margin && typeof props.margin === "object" && props.margin.bottom ? spaces[props.margin.bottom] : ""};
margin-left: ${(props) =>
props.margin && typeof props.margin === "object" && props.margin.left ? spaces[props.margin.left] : ""};
- width: fit-content;
+ width: ${(props) => (props.mode !== "file" && props.size === "fillParent" ? "100%" : "fit-content")};
`;
const FileContainer = styled.div<{ singleFileMode: boolean }>`
@@ -41,6 +45,7 @@ const FileItemListContainer = styled.div`
display: flex;
flex-direction: column;
row-gap: var(--spacing-gap-xs);
+ width: 100%;
`;
const Container = styled.div`
@@ -54,6 +59,7 @@ const DragDropArea = styled.div<{
mode: FileInputPropsType["mode"];
disabled: FileInputPropsType["disabled"];
isDragging: boolean;
+ size: FileInputPropsType["size"];
}>`
box-sizing: border-box;
display: flex;
@@ -62,7 +68,7 @@ const DragDropArea = styled.div<{
? "flex-direction: row; column-gap: var(--spacing-gap-s);"
: "justify-content: center; flex-direction: column; row-gap: var(--spacing-gap-s); height: 160px;"}
align-items: center;
- width: 320px;
+ width: ${(props) => (props.size === "fillParent" ? "100%" : "320px")};
padding: ${(props) => (props.mode === "filedrop" ? `var(--spacing-padding-xxs)` : "var(--spacing-padding-m)")};
overflow: hidden;
border-radius: var(--border-radius-m);
@@ -116,6 +122,7 @@ const DxcFileInput = forwardRef(
multiple = true,
disabled = false,
callbackFile,
+ size = "medium",
value,
margin,
tabIndex = 0,
@@ -230,7 +237,7 @@ const DxcFileInput = forwardRef(
}, [value]);
return (
-
+
{label && (
|