+
+ {!lastStep && (
+ <>
+
+
+ >
+ )}
+
+
+ );
+}
diff --git a/apps/roboshield/src/components/StepperNav/index.ts b/apps/roboshield/src/components/StepperNav/index.ts
new file mode 100644
index 000000000..b4039966c
--- /dev/null
+++ b/apps/roboshield/src/components/StepperNav/index.ts
@@ -0,0 +1,3 @@
+import StepperNav from "./StepperNav";
+
+export default StepperNav;
diff --git a/apps/roboshield/src/components/TextArea/TextArea.tsx b/apps/roboshield/src/components/TextArea/TextArea.tsx
new file mode 100644
index 000000000..5503a8a02
--- /dev/null
+++ b/apps/roboshield/src/components/TextArea/TextArea.tsx
@@ -0,0 +1,35 @@
+import { TextareaAutosize } from "@mui/material";
+import { useState } from "react";
+
+import { useDebouncedValue } from "@/roboshield/utils/useDebounce";
+
+interface TextAreaProps {
+ value: string;
+
+ onChange: (newValue: string) => void;
+ minRows?: number;
+ maxRows?: number;
+ placeholder?: string;
+ style?: React.CSSProperties;
+}
+
+export default function TextArea(props: TextAreaProps) {
+ const { onChange, value: initialValue, style, ...other } = props;
+
+ const [value, setValue] = useState(initialValue);
+
+ const handleChange = (e: React.ChangeEvent