diff --git a/src/components/demo-components/dropzone-demo/CodeDemoDropzoneBehaviour.tsx b/src/components/demo-components/dropzone-demo/CodeDemoDropzoneBehaviour.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..c3dd1e8d03253cc7c1473f92ecc5678165936360
--- /dev/null
+++ b/src/components/demo-components/dropzone-demo/CodeDemoDropzoneBehaviour.tsx
@@ -0,0 +1,193 @@
+import ShowDemoCode from "../../show-demo-code/ShowDemoCode";
+const CodeDemoDropzoneBehaviour = ({ splittedOnly = false }) => {
+  return (
+    <ShowDemoCode
+      splittedOnly={splittedOnly}
+      codeCompleteJS={completeCodeJS}
+      codeCompleteTS={completeCodeTS}
+      codeSandboxJS="https://codesandbox.io/s/dropzone-ui-basic-3j01v"
+      codeSandboxTS="https://codesandbox.io/s/dropzone-ui-basic-3j01v"
+      codeSplittedJS={splittedCodeJS}
+      codeSplittedTS={splittedCodeTS}
+    />
+  );
+};
+export default CodeDemoDropzoneBehaviour;
+
+const splittedCodeJS = `<Dropzone
+  style={{ width: "min(100% , 420px)" }}
+  onChange={updateFilesAdd}
+  value={filesAdd}
+  label="Dropzone with behaviour=add"
+  behaviour={"add"}
+>
+  {filesAdd.length > 0 &&
+    filesAdd.map((file) => (
+      <FileMosaic
+        key={file.id}
+        {...file}
+        onDelete={removeFileAdd}
+        info
+        preview
+      />
+    ))}
+</Dropzone>
+<Dropzone
+  style={{ width: "min(100% , 420px)" }}
+  onChange={updateFilesReplace}
+  value={filesReplace}
+  label="Dropzone with behaviour=replace"
+  behaviour={"replace"}
+>
+  {filesReplace.length > 0 &&
+    filesReplace.map((file) => (
+      <FileMosaic
+        key={file.id}
+        {...file}
+        onDelete={removeFileReplace}
+        info
+        preview
+      />
+    ))}
+</Dropzone>`;
+
+const splittedCodeTS = splittedCodeJS;
+const completeCodeJS = `import * as React from "react";
+import { Dropzone, FileMosaic } from "@files-ui/react";
+
+const DemoDropzoneBehaviour = () => {
+    const [filesAdd, setFilesAdd] = React.useState([]);
+    const [filesReplace, setFilesReplace] = React.useState([]);
+
+    const updateFilesAdd = (incommingFiles) => {
+      setFilesAdd(incommingFiles);
+    };
+    const updateFilesReplace = (incommingFiles) => {
+      setFilesReplace(incommingFiles);
+    };
+    const removeFileAdd = (id) => {
+      setFilesAdd(filesAdd.filter((x) => x.id !== id));
+    };
+    const removeFileReplace = (id) => {
+      setFilesReplace(filesReplace.filter((x) => x.id !== id));
+    };
+
+    return (
+      <div
+        style={{
+          display: "flex",
+          justifyContent: "space-evenly",
+          gap: "40px",
+          flexWrap: "wrap",
+        }}
+      >
+        <Dropzone
+          style={{ width: "min(100% , 420px)" }}
+          onChange={updateFilesAdd}
+          value={filesAdd}
+          label="Dropzone with behaviour=add"
+          behaviour={"add"}
+        >
+          {filesAdd.length > 0 &&
+            filesAdd.map((file) => (
+              <FileMosaic
+                key={file.id}
+                {...file}
+                onDelete={removeFileAdd}
+                info
+                preview
+              />
+            ))}
+        </Dropzone>
+        <Dropzone
+          style={{ width: "min(100% , 420px)" }}
+          onChange={updateFilesReplace}
+          value={filesReplace}
+          label="Dropzone with behaviour=replace"
+          behaviour={"replace"}
+        >
+          {filesReplace.length > 0 &&
+            filesReplace.map((file) => (
+              <FileMosaic
+                key={file.id}
+                {...file}
+                onDelete={removeFileReplace}
+                info
+                preview
+              />
+            ))}
+        </Dropzone>
+      </div>
+    );
+  };
+  export default DemoDropzoneBehaviour;`;
+
+const completeCodeTS = `import * as React from "react";
+import { Dropzone, ExtFile, FileMosaic, FileMosaicProps } from "@files-ui/react";
+
+const DemoDropzoneBehaviour = () => {
+    const [filesAdd, setFilesAdd] = React.useState<ExtFile[]>([]);
+    const [filesReplace, setFilesReplace] = React.useState<ExtFile[]>([]);
+
+    const updateFilesAdd = (incommingFiles:ExtFile[]) => {
+      setFilesAdd(incommingFiles);
+    };
+    const updateFilesReplace = (incommingFiles:ExtFile[]) => {
+      setFilesReplace(incommingFiles);
+    };
+    const removeFileAdd = (id:FileMosaicProps["id"]) => {
+      setFilesAdd(filesAdd.filter((x) => x.id !== id));
+    };
+    const removeFileReplace = (id:FileMosaicProps["id"]) => {
+      setFilesReplace(filesReplace.filter((x) => x.id !== id));
+    };
+
+    return (
+      <div
+        style={{
+          display: "flex",
+          justifyContent: "space-evenly",
+          gap: "40px",
+          flexWrap: "wrap",
+        }}
+      >
+        <Dropzone
+          style={{ width: "min(100% , 420px)" }}
+          onChange={updateFilesAdd}
+          value={filesAdd}
+          label="Dropzone with behaviour=add"
+          behaviour={"add"}
+        >
+          {filesAdd.length > 0 &&
+            filesAdd.map((file) => (
+              <FileMosaic
+                key={file.id}
+                {...file}
+                onDelete={removeFileAdd}
+                info
+                preview
+              />
+            ))}
+        </Dropzone>
+        <Dropzone
+          style={{ width: "min(100% , 420px)" }}
+          onChange={updateFilesReplace}
+          value={filesReplace}
+          label="Dropzone with behaviour=replace"
+          behaviour={"replace"}
+        >
+          {filesReplace.length > 0 &&
+            filesReplace.map((file) => (
+              <FileMosaic
+                key={file.id}
+                {...file}
+                onDelete={removeFileReplace}
+                info
+                preview
+              />
+            ))}
+        </Dropzone>
+      </div>
+    );
+  };
+  export default DemoDropzoneBehaviour;`;
diff --git a/src/components/demo-components/dropzone-demo/DemoDropzoneBehaviour.jsx b/src/components/demo-components/dropzone-demo/DemoDropzoneBehaviour.jsx
deleted file mode 100644
index 8909bab246021937865e5be29a64fb305de5e413..0000000000000000000000000000000000000000
--- a/src/components/demo-components/dropzone-demo/DemoDropzoneBehaviour.jsx
+++ /dev/null
@@ -1,43 +0,0 @@
-import * as React from "react";
-import { Dropzone, FileMosaic } from "../../../files-ui";
-
-const DemoDropzoneBehaviour = (props) => {
-  const [files, setFiles] = React.useState([]);
-  const updateFiles = (incommingFiles) => {
-    //do something with the files
-    setFiles(incommingFiles);
-    //even your own upload implementation
-  };
-  const removeFile = (id) => {
-    setFiles(files.filter((x) => x.id !== id));
-  };
-  return (
-    <div style={{ display: "flex" }}>
-      <Dropzone
-        style={{ width: "300px" }}
-        onChange={updateFiles}
-        value={files}
-        label="Dropzone with behaviour=add"
-        behaviour={"add"}
-      >
-        {files.length > 0 &&
-          files.map((file) => (
-            <FileMosaic key={file.id} {...file} onDelete={removeFile} info />
-          ))}
-      </Dropzone>
-      <Dropzone
-        style={{ width: "300px" }}
-        onChange={updateFiles}
-        value={files}
-        label="Dropzone with behaviour=replace"
-        behaviour={"replace"}
-      >
-        {files.length > 0 &&
-          files.map((file) => (
-            <FileMosaic key={file.id} {...file} onDelete={removeFile} info />
-          ))}
-      </Dropzone>
-    </div>
-  );
-};
-export default DemoDropzoneBehaviour;
diff --git a/src/components/demo-components/dropzone-demo/DemoDropzoneBehaviour.tsx b/src/components/demo-components/dropzone-demo/DemoDropzoneBehaviour.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..f14444f89586f1e42b6965f5e32d850b7a03e246
--- /dev/null
+++ b/src/components/demo-components/dropzone-demo/DemoDropzoneBehaviour.tsx
@@ -0,0 +1,69 @@
+import * as React from "react";
+import { Dropzone, ExtFile, FileMosaic, FileMosaicProps } from "../../../files-ui";
+
+const DemoDropzoneBehaviour = () => {
+  const [filesAdd, setFilesAdd] = React.useState<ExtFile[]>([]);
+  const [filesReplace, setFilesReplace] = React.useState<ExtFile[]>([]);
+
+  const updateFilesAdd = (incommingFiles:ExtFile[]) => {
+    setFilesAdd(incommingFiles);
+  };
+  const updateFilesReplace = (incommingFiles:ExtFile[]) => {
+    setFilesReplace(incommingFiles);
+  };
+  const removeFileAdd = (id:FileMosaicProps["id"]) => {
+    setFilesAdd(filesAdd.filter((x) => x.id !== id));
+  };
+  const removeFileReplace = (id:FileMosaicProps["id"]) => {
+    setFilesReplace(filesReplace.filter((x) => x.id !== id));
+  };
+  return (
+    <div
+      style={{
+        display: "flex",
+        justifyContent: "space-evenly",
+        gap: "40px",
+        flexWrap: "wrap",
+        width: "100%",
+      }}
+    >
+      <Dropzone
+        style={{ width: "min(100% , 420px)" }}
+        onChange={updateFilesAdd}
+        value={filesAdd}
+        label="Dropzone with behaviour=add"
+        behaviour={"add"}
+      >
+        {filesAdd.length > 0 &&
+          filesAdd.map((file) => (
+            <FileMosaic
+              key={file.id}
+              {...file}
+              onDelete={removeFileAdd}
+              info
+              preview
+            />
+          ))}
+      </Dropzone>
+      <Dropzone
+        style={{ width: "min(100% , 420px)" }}
+        onChange={updateFilesReplace}
+        value={filesReplace}
+        label="Dropzone with behaviour=replace"
+        behaviour={"replace"}
+      >
+        {filesReplace.length > 0 &&
+          filesReplace.map((file) => (
+            <FileMosaic
+              key={file.id}
+              {...file}
+              onDelete={removeFileReplace}
+              info
+              preview
+            />
+          ))}
+      </Dropzone>
+    </div>
+  );
+};
+export default DemoDropzoneBehaviour;