From 5d39064edfe0e51e191886ea4c078a03ccc7930f Mon Sep 17 00:00:00 2001 From: marvelousmicheal Date: Thu, 31 Jul 2025 15:43:29 +0100 Subject: [PATCH 1/3] feat(project-submission): implement stepper, form layout, and success screen --- app/globals.css | 12 ++- app/stepper/page.tsx | 34 +++++++ components/project/ProjectSubmissionFlow.tsx | 0 components/project/ProjectSubmissionForm.tsx | 67 ++++++++++++++ .../project/ProjectSubmissionSuccess.tsx | 0 components/stepper/Stepper.tsx | 89 +++++++++++++++++++ components/stepper/index.ts | 1 + public/cube.svg | 3 + public/select.svg | 10 +++ 9 files changed, 215 insertions(+), 1 deletion(-) create mode 100644 app/stepper/page.tsx create mode 100644 components/project/ProjectSubmissionFlow.tsx create mode 100644 components/project/ProjectSubmissionForm.tsx create mode 100644 components/project/ProjectSubmissionSuccess.tsx create mode 100644 components/stepper/Stepper.tsx create mode 100644 components/stepper/index.ts create mode 100644 public/cube.svg create mode 100644 public/select.svg diff --git a/app/globals.css b/app/globals.css index 791f0afbd..bf86263c2 100644 --- a/app/globals.css +++ b/app/globals.css @@ -6,6 +6,11 @@ @theme inline { --color-background: var(--background); --color-foreground: var(--foreground); + --color-stepper-text-inactive: var(--stepper-text-inactive); + --color-stepper-foreground: var(--stepper-foreground); + --color-stepper-border-active: var(--stepper-border-active); + --color-stepper-border: var(--stepper-border); + --color-placeholder: var(--placeholder); --font-sans: var(--font-geist-sans); --font-mono: var(--font-geist-mono); --color-sidebar-ring: var(--sidebar-ring); @@ -51,7 +56,7 @@ --card-foreground: oklch(0.145 0 0); --popover: oklch(1 0 0); --popover-foreground: oklch(0.145 0 0); - --primary: #a7f950; + --primary: oklch(0.95 0.24 125); --primary-foreground: #020502; --secondary: oklch(0.97 0 0); --secondary-foreground: oklch(0.205 0 0); @@ -69,6 +74,11 @@ --chart-4: oklch(0.828 0.189 84.429); --chart-5: oklch(0.769 0.188 70.08); --sidebar: oklch(0.985 0 0); + --stepper-foreground: oklch(0.2046 0 0); + --stepper-border: oklch(0.2264 0 0); + --stepper-border-active: oklch(0.3501 0.0381 190.35); + --stepper-text-inactive: oklch(0.7731 0 0); + --placeholder: oklch(0.6567 0 0); --sidebar-foreground: oklch(0.145 0 0); --sidebar-primary: oklch(0.205 0 0); --sidebar-primary-foreground: oklch(0.985 0 0); diff --git a/app/stepper/page.tsx b/app/stepper/page.tsx new file mode 100644 index 000000000..855758421 --- /dev/null +++ b/app/stepper/page.tsx @@ -0,0 +1,34 @@ +import ProjectSubmissionForm from '@/components/project/ProjectSubmissionForm'; +import { Stepper } from '@/components/stepper'; +import React from 'react'; + +const submissionSteps = [ + { + title: 'Initialize', + description: 'Submit your project idea to kickstart your campaign journey.', + state: 'completed' as const, + }, + { + title: 'Project Details', + description: 'Provide detailed information about your project.', + state: 'active' as const, + }, + { + title: 'Review & Submit', + description: 'Review your submission and finalize your entry.', + state: 'pending' as const, + }, +]; + +function page() { + return ( +
+
+ + +
+
+ ); +} + +export default page; diff --git a/components/project/ProjectSubmissionFlow.tsx b/components/project/ProjectSubmissionFlow.tsx new file mode 100644 index 000000000..e69de29bb diff --git a/components/project/ProjectSubmissionForm.tsx b/components/project/ProjectSubmissionForm.tsx new file mode 100644 index 000000000..fb14e911e --- /dev/null +++ b/components/project/ProjectSubmissionForm.tsx @@ -0,0 +1,67 @@ +import Image from 'next/image'; +import React from 'react'; +import { Textarea } from '../ui/textarea'; + +function ProjectSubmissionForm() { + return ( +
+
Submit your project information
+
+
+ +
+
+ cube +
+ +
+
+
+ +
+ +
+
+
+ + +