diff --git a/package-lock.json b/package-lock.json
index 9b2745b..9021093 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,7 +11,7 @@
"@tanstack/react-query": "^5.85.6",
"@types/js-cookie": "^3.0.6",
"@types/react-paginate": "^7.1.4",
- "apexcharts": "^4.5.0",
+ "apexcharts": "^4.7.0",
"axios": "^1.11.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
@@ -26,7 +26,7 @@
"next-themes": "^0.4.4",
"nextjs-toploader": "^3.7.15",
"react": "19.0.0",
- "react-apexcharts": "^1.7.0",
+ "react-apexcharts": "^1.8.0",
"react-dom": "19.0.0",
"react-hook-form": "^7.62.0",
"react-intersection-observer": "^9.16.0",
@@ -2353,9 +2353,9 @@
}
},
"node_modules/apexcharts": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-4.5.0.tgz",
- "integrity": "sha512-E7ZkrVqPNBUWy/Rmg8DEIqHNBmElzICE/oxOX5Ekvs2ICQUOK/VkEkMH09JGJu+O/EA0NL31hxlmF+wrwrSLaQ==",
+ "version": "4.7.0",
+ "resolved": "https://registry.npmmirror.com/apexcharts/-/apexcharts-4.7.0.tgz",
+ "integrity": "sha512-iZSrrBGvVlL+nt2B1NpqfDuBZ9jX61X9I2+XV0hlYXHtTwhwLTHDKGXjNXAgFBDLuvSYCB/rq2nPWVPRv2DrGA==",
"license": "MIT",
"dependencies": {
"@svgdotjs/svg.draggable.js": "^3.0.4",
@@ -6200,10 +6200,10 @@
}
},
"node_modules/react-apexcharts": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/react-apexcharts/-/react-apexcharts-1.7.0.tgz",
- "integrity": "sha512-03oScKJyNLRf0Oe+ihJxFZliBQM9vW3UWwomVn4YVRTN1jsIR58dLWt0v1sb8RwJVHDMbeHiKQueM0KGpn7nOA==",
- "license": "MIT",
+ "version": "1.8.0",
+ "resolved": "https://registry.npmmirror.com/react-apexcharts/-/react-apexcharts-1.8.0.tgz",
+ "integrity": "sha512-MuEp56gc0NMO2UUgY94fxQzoBE4XEjmcCha4xYY0vJdRrc1yfFFZE4QrCekOt2wcS3nibghzca/q/CbgkAgN5w==",
+ "license": "SEE LICENSE IN LICENSE",
"dependencies": {
"prop-types": "^15.8.1"
},
diff --git a/package.json b/package.json
index cf6d5b2..d456ffe 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
"@tanstack/react-query": "^5.85.6",
"@types/js-cookie": "^3.0.6",
"@types/react-paginate": "^7.1.4",
- "apexcharts": "^4.5.0",
+ "apexcharts": "^4.7.0",
"axios": "^1.11.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
@@ -27,7 +27,7 @@
"next-themes": "^0.4.4",
"nextjs-toploader": "^3.7.15",
"react": "19.0.0",
- "react-apexcharts": "^1.7.0",
+ "react-apexcharts": "^1.8.0",
"react-dom": "19.0.0",
"react-hook-form": "^7.62.0",
"react-intersection-observer": "^9.16.0",
diff --git a/src/app/contact-us/page.tsx b/src/app/contact-us/page.tsx
new file mode 100644
index 0000000..9276e61
--- /dev/null
+++ b/src/app/contact-us/page.tsx
@@ -0,0 +1,24 @@
+import Breadcrumb from "@/components/Breadcrumbs/Breadcrumb";
+import ContactUsTable from "@/components/Tables/contact-us";
+import { BreadcrumbItem } from "@/types/shared";
+
+const ContactUsPage = () => {
+ const breadcrumbItems: BreadcrumbItem[] = [
+ {
+ href: "/",
+ name: "Dashboard",
+ },
+ {
+ href: "/contact-us",
+ name: "Contact us",
+ },
+ ];
+ return (
+ <>
+
+
+ >
+ );
+};
+
+export default ContactUsPage;
diff --git a/src/app/marketing/_components/HeroStep.tsx b/src/app/marketing/_components/HeroStep.tsx
new file mode 100644
index 0000000..6425656
--- /dev/null
+++ b/src/app/marketing/_components/HeroStep.tsx
@@ -0,0 +1,134 @@
+"use client";
+import InputGroup from "@/components/FormElements/InputGroup";
+import { TextAreaGroup } from "@/components/FormElements/InputGroup/text-area";
+import { ShowcaseSection } from "@/components/Layouts/showcase-section";
+import { FormErrorMessages } from "@/constants/Texts";
+import useHeroStepPresenter from "./useHeroStepPresenter";
+
+const HeroStep = () => {
+ const { errors, handleSubmit, onSubmit, register } = useHeroStepPresenter();
+ return (
+
+ );
+};
+
+export default HeroStep;
diff --git a/src/app/marketing/_components/useHeroStepPresenter.ts b/src/app/marketing/_components/useHeroStepPresenter.ts
new file mode 100644
index 0000000..4bd3934
--- /dev/null
+++ b/src/app/marketing/_components/useHeroStepPresenter.ts
@@ -0,0 +1,31 @@
+"use client";
+import { useForm } from "react-hook-form";
+
+export interface IHeroStepFields {
+ key: string;
+ title: string;
+ description: string;
+ button_text: string;
+ button_link: string;
+}
+
+const useHeroStepPresenter = () => {
+ const {
+ register,
+ handleSubmit,
+ formState: { errors },
+ } = useForm();
+
+ const onSubmit = (data: IHeroStepFields) => {
+ console.log(data);
+ };
+
+ return {
+ register,
+ handleSubmit,
+ errors,
+ onSubmit,
+ };
+};
+
+export default useHeroStepPresenter;
diff --git a/src/app/marketing/page.tsx b/src/app/marketing/page.tsx
new file mode 100644
index 0000000..ff2d2a2
--- /dev/null
+++ b/src/app/marketing/page.tsx
@@ -0,0 +1,57 @@
+"use client";
+import Breadcrumb from "@/components/Breadcrumbs/Breadcrumb";
+import Stepper, { Step } from "@/components/ui/Stepper";
+import { BreadcrumbItem } from "@/types/shared";
+import { useState } from "react";
+import { ShowcaseSection } from "../../components/Layouts/showcase-section";
+import HeroStep from "./_components/HeroStep";
+
+const Marketing = () => {
+ const [step, setStep] = useState(0);
+ const breadcrumbItems: BreadcrumbItem[] = [
+ {
+ href: "/",
+ name: "Dashboard",
+ },
+ {
+ href: "/marketing",
+ name: "Marketing",
+ },
+ ];
+ const steps: Step[] = [
+ {
+ title: "Hero",
+ description: "Create the hero section",
+ content: ,
+ },
+ {
+ title: "Profile",
+ description: "Setup your profile",
+ content: step 2
,
+ },
+ {
+ title: "Preferences",
+ description: "Choose preferences",
+ content: step 3
,
+ },
+ {
+ title: "Review",
+ description: "Review and confirm",
+ content: step 4
,
+ },
+ ];
+ return (
+ <>
+
+
+
+
+ >
+ );
+};
+
+export default Marketing;
diff --git a/src/assets/icons.tsx b/src/assets/icons.tsx
index 4ac130f..719ef43 100644
--- a/src/assets/icons.tsx
+++ b/src/assets/icons.tsx
@@ -67,6 +67,7 @@ export function FilterIcon(props: IconProps) {
);
}
+
export function MoneyIcon(props: IconProps) {
return (
+ );
+}
export function CheckIcon(props: IconProps) {
return (
);
}
+export function CallIncome(props: PropsType) {
+ return (
+
+ );
+}
export function NotificationIcon(props: PropsType) {
return (