From b9b9416ad22b231ba57989fc3c08c6598e24a7ae Mon Sep 17 00:00:00 2001 From: v0 Date: Sun, 12 Oct 2025 01:34:19 +0000 Subject: [PATCH] Initialized repository for project Ebb n Flow website Co-authored-by: Jeff Emmett <46964190+Jeff-Emmett@users.noreply.github.com> --- .gitignore | 27 + README.md | 30 + app/about/page.tsx | 178 ++ app/contact/page.tsx | 301 +++ app/globals.css | 186 ++ app/layout.tsx | 32 + app/movement/page.tsx | 252 +++ app/page.tsx | 309 +++ app/what-to-expect/page.tsx | 238 +++ components.json | 21 + components/animated-hero.tsx | 81 + components/clinicsense-button.tsx | 46 + components/footer.tsx | 126 ++ components/navbar.tsx | 92 + components/service-dropdown.tsx | 48 + components/theme-provider.tsx | 11 + components/ui/badge.tsx | 46 + components/ui/button.tsx | 59 + components/ui/card.tsx | 92 + components/ui/input.tsx | 21 + components/ui/label.tsx | 24 + components/ui/sheet.tsx | 139 ++ components/ui/textarea.tsx | 18 + lib/utils.ts | 6 + next.config.mjs | 14 + package.json | 74 + pnpm-lock.yaml | 3247 +++++++++++++++++++++++++++++ postcss.config.mjs | 8 + public/images/clinic-entrance.jpg | Bin 0 -> 986472 bytes public/images/clinic-exterior.jpg | Bin 0 -> 1697549 bytes public/images/dahlia-portrait.jpg | Bin 0 -> 905151 bytes public/images/logo.jpg | Bin 0 -> 63975 bytes public/images/reception-area.jpg | Bin 0 -> 1225078 bytes public/images/treatment-room.jpg | Bin 0 -> 913678 bytes public/images/yellow-door.jpg | Bin 0 -> 959011 bytes public/placeholder-logo.png | Bin 0 -> 568 bytes public/placeholder-logo.svg | 1 + public/placeholder-user.jpg | Bin 0 -> 1635 bytes public/placeholder.jpg | Bin 0 -> 1064 bytes public/placeholder.svg | 1 + styles/globals.css | 125 ++ tsconfig.json | 27 + 42 files changed, 5880 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 app/about/page.tsx create mode 100644 app/contact/page.tsx create mode 100644 app/globals.css create mode 100644 app/layout.tsx create mode 100644 app/movement/page.tsx create mode 100644 app/page.tsx create mode 100644 app/what-to-expect/page.tsx create mode 100644 components.json create mode 100644 components/animated-hero.tsx create mode 100644 components/clinicsense-button.tsx create mode 100644 components/footer.tsx create mode 100644 components/navbar.tsx create mode 100644 components/service-dropdown.tsx create mode 100644 components/theme-provider.tsx create mode 100644 components/ui/badge.tsx create mode 100644 components/ui/button.tsx create mode 100644 components/ui/card.tsx create mode 100644 components/ui/input.tsx create mode 100644 components/ui/label.tsx create mode 100644 components/ui/sheet.tsx create mode 100644 components/ui/textarea.tsx create mode 100644 lib/utils.ts create mode 100644 next.config.mjs create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 postcss.config.mjs create mode 100644 public/images/clinic-entrance.jpg create mode 100644 public/images/clinic-exterior.jpg create mode 100644 public/images/dahlia-portrait.jpg create mode 100644 public/images/logo.jpg create mode 100644 public/images/reception-area.jpg create mode 100644 public/images/treatment-room.jpg create mode 100644 public/images/yellow-door.jpg create mode 100644 public/placeholder-logo.png create mode 100644 public/placeholder-logo.svg create mode 100644 public/placeholder-user.jpg create mode 100644 public/placeholder.jpg create mode 100644 public/placeholder.svg create mode 100644 styles/globals.css create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f650315 --- /dev/null +++ b/.gitignore @@ -0,0 +1,27 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules + +# next.js +/.next/ +/out/ + +# production +/build + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# env files +.env* + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..80046be --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ +# Ebb n Flow website + +*Automatically synced with your [v0.app](https://v0.app) deployments* + +[![Deployed on Vercel](https://img.shields.io/badge/Deployed%20on-Vercel-black?style=for-the-badge&logo=vercel)](https://vercel.com/jeff-emmetts-projects/v0-ebb-n-flow-website) +[![Built with v0](https://img.shields.io/badge/Built%20with-v0.app-black?style=for-the-badge)](https://v0.app/chat/projects/9u6iKhKeMvy) + +## Overview + +This repository will stay in sync with your deployed chats on [v0.app](https://v0.app). +Any changes you make to your deployed app will be automatically pushed to this repository from [v0.app](https://v0.app). + +## Deployment + +Your project is live at: + +**[https://vercel.com/jeff-emmetts-projects/v0-ebb-n-flow-website](https://vercel.com/jeff-emmetts-projects/v0-ebb-n-flow-website)** + +## Build your app + +Continue building your app on: + +**[https://v0.app/chat/projects/9u6iKhKeMvy](https://v0.app/chat/projects/9u6iKhKeMvy)** + +## How It Works + +1. Create and modify your project using [v0.app](https://v0.app) +2. Deploy your chats from the v0 interface +3. Changes are automatically pushed to this repository +4. Vercel deploys the latest version from this repository \ No newline at end of file diff --git a/app/about/page.tsx b/app/about/page.tsx new file mode 100644 index 0000000..fe54fca --- /dev/null +++ b/app/about/page.tsx @@ -0,0 +1,178 @@ +import { Button } from "@/components/ui/button" +import { Card, CardContent } from "@/components/ui/card" +import { Badge } from "@/components/ui/badge" +import Image from "next/image" +import Link from "next/link" +import ClinicSenseButton from "@/components/clinicsense-button" + +export default function AboutPage() { + return ( +
+ {/* Hero Section */} +
+
+
+ + About Dahlia + +

Dahlia B. Steinberg, RMT

+
+ Founder and Owner of Ebb'nFlow Therapeutics +
+

+ A lifelong interest in movement and the healing arts is the foundation of her practice as a Massage + Therapist and Movement Educator. +

+
+
+
+ + {/* Bio Section */} +
+
+
+
+

Professional Background

+

+ Dahlia's personal and professional experience with a wide range of bodywork practices including yoga, + pilates, somatic movement and modern dance spans 30 years and informs her unique style and approach to + her clinical practice of massage therapy. +

+

+ She is registered with the College of Massage Therapists of Ontario (CMTO), which is the provincial + regulatory body that protects the public interest by monitoring the ongoing professional development and + ethical standards of RMTs. +

+ +
+

Practice Evolution

+
+

+ 2013: Started Ebb'nflow Massage, working with Dr. Enrico Schirru at Absolute + Chiropractic +

+

+ 2013-2017: Worked at Paisley Spa and John Chan Physiotherapy Clinic +

+

+ 2015: Established first home-based clinic on Ontario Street +

+

+ 2017: Moved to home location on Woodbine Ave., working solely for herself +

+

+ 2025: Relocated to downtown St. Catharines, rebranded to Ebb'nFlow Therapeutics +

+
+
+
+
+ Dahlia B. Steinberg, RMT - Founder of Ebb'nFlow Therapeutics +
+
+
+
+ + {/* Education & Training */} +
+
+
+

Education & Training

+ +
+ + +

Formal Education

+
+

+ 2012: Graduate, Massage Therapy Program, Ontario College of Health and Technology +

+

+ 1998: School of Toronto Dance Theatre's Professional Training Program +

+

+ 2003-05: Yoga Teacher Training, Yogaspace Toronto (200 hr diploma + Advanced + Teacher Training) +

+

+ 2009: Pilates Teacher Training, STOTT Toronto (Beginner to Advanced Matwork) +

+
+
+
+ + + +

Continuing Education

+
+

• Myofascial therapy/structural integration

+

• Biodynamic craniosacral therapy

+

• Osteopathic techniques for RMTs

+

• Advanced sacro-lumbar and thoracic spine assessments and joint mobilization

+

• Certification in laser therapy with Bioflex Laser Therapy system integration (2021)

+

• Axis Syllabus - evolving theory and practice of dynamic human movement

+
+
+
+ + + +

Recognition & Support

+
+

Massage Therapy is Dahlia's second career, supported by:

+

• Training and subsistence grant from the Dancer's Transition and Resource Centre (2010)

+

• Special second year award for academic excellence (Heritage Canada, 2011)

+
+
+
+
+
+
+
+ + {/* Current Role */} +
+
+
+

Teaching & Mentorship

+

+ Dahlia now also works once a week as a supervisor and teacher in the student massage therapy clinic, which + is open to the public at the Ontario College of Health and Technology in Stoney Creek. This role helps to + keep her engaged and informed in her current practice while inspiring her to encourage and mentor the next + generation of massage therapists. +

+
+
+
+ + {/* CTA Section */} +
+
+
+

Experience Dahlia's Unique Approach

+

+ Combining 30 years of movement expertise with clinical massage therapy excellence. +

+
+ + +
+
+
+
+
+ ) +} diff --git a/app/contact/page.tsx b/app/contact/page.tsx new file mode 100644 index 0000000..7a69183 --- /dev/null +++ b/app/contact/page.tsx @@ -0,0 +1,301 @@ +"use client" + +import type React from "react" +import Image from "next/image" +import { Button } from "@/components/ui/button" +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" +import { Input } from "@/components/ui/input" +import { Label } from "@/components/ui/label" +import { Textarea } from "@/components/ui/textarea" +import { Badge } from "@/components/ui/badge" +import { Clock, Mail, MapPin, Phone } from "lucide-react" +import { useState } from "react" +import ClinicSenseButton from "@/components/clinicsense-button" + +export default function ContactPage() { + const [formData, setFormData] = useState({ + name: "", + email: "", + phone: "", + service: "", + message: "", + }) + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault() + // Handle form submission here + console.log("Form submitted:", formData) + } + + const handleChange = (e: React.ChangeEvent) => { + setFormData({ + ...formData, + [e.target.name]: e.target.value, + }) + } + + return ( +
+ {/* Hero Section */} +
+
+
+ + Get in Touch + +

Contact Us

+
+ "A place to unwind, a place to heal, a place to grow" +
+

+ Ready to experience boutique wellness? Let's chat about creating your personalized sanctuary for healing + and self-care. +

+
+
+
+ + {/* Clinic Images Section */} +
+
+
+
+ Ebb'nFlow Therapeutics clinic exterior +
+

Our Welcoming Exterior

+
+
+
+ Distinctive yellow entrance door +
+

Find Our Yellow Door

+
+
+
+
+
+ + {/* Contact Form & Info Section */} +
+
+
+ {/* Contact Form */} + + + Send Us a Message + + Fill out the form below and we'll get back to you within 24 hours. + + + +
+
+
+ + +
+
+ + +
+
+ +
+ + +
+ +
+ + +
+ +
+ +