Add 3 files
Browse files- README.md +7 -5
- index.html +897 -19
- prompts.txt +1 -0
README.md
CHANGED
@@ -1,10 +1,12 @@
|
|
1 |
---
|
2 |
-
title:
|
3 |
-
emoji:
|
4 |
-
colorFrom:
|
5 |
-
colorTo:
|
6 |
sdk: static
|
7 |
pinned: false
|
|
|
|
|
8 |
---
|
9 |
|
10 |
-
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
|
|
1 |
---
|
2 |
+
title: novanexus
|
3 |
+
emoji: 🐳
|
4 |
+
colorFrom: red
|
5 |
+
colorTo: pink
|
6 |
sdk: static
|
7 |
pinned: false
|
8 |
+
tags:
|
9 |
+
- deepsite
|
10 |
---
|
11 |
|
12 |
+
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
index.html
CHANGED
@@ -1,19 +1,897 @@
|
|
1 |
-
<!
|
2 |
-
<html>
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
<head>
|
4 |
+
<meta charset="UTF-8">
|
5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
+
<title>NovaNexus - Create Account</title>
|
7 |
+
<script src="https://cdn.tailwindcss.com"></script>
|
8 |
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
|
9 |
+
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyD3gLHjV3X5X5X5X5X5X5X5X5X5X5X5X5X5X5&libraries=places"></script>
|
10 |
+
<style>
|
11 |
+
.cosmic-bg {
|
12 |
+
background: linear-gradient(135deg, #0f172a 0%, #020617 100%);
|
13 |
+
position: relative;
|
14 |
+
overflow: hidden;
|
15 |
+
}
|
16 |
+
.cosmic-bg::before {
|
17 |
+
content: "";
|
18 |
+
position: absolute;
|
19 |
+
top: 0;
|
20 |
+
left: 0;
|
21 |
+
right: 0;
|
22 |
+
bottom: 0;
|
23 |
+
background-image:
|
24 |
+
radial-gradient(circle at 20% 30%, rgba(255, 255, 255, 0.05) 0.5px, transparent 1px),
|
25 |
+
radial-gradient(circle at 80% 50%, rgba(255, 255, 255, 0.05) 0.5px, transparent 1px),
|
26 |
+
radial-gradient(circle at 40% 70%, rgba(255, 255, 255, 0.05) 0.5px, transparent 1px);
|
27 |
+
background-size: 3% 3%;
|
28 |
+
z-index: 0;
|
29 |
+
}
|
30 |
+
.selection-bubble {
|
31 |
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
32 |
+
transition: all 0.3s ease;
|
33 |
+
}
|
34 |
+
.selection-bubble:hover {
|
35 |
+
border-color: #3b82f6;
|
36 |
+
transform: translateY(-5px);
|
37 |
+
}
|
38 |
+
.selection-bubble.selected {
|
39 |
+
border-color: #3b82f6;
|
40 |
+
background: rgba(59, 130, 246, 0.1);
|
41 |
+
transform: translateY(-5px);
|
42 |
+
}
|
43 |
+
.progress-step {
|
44 |
+
width: 32px;
|
45 |
+
height: 32px;
|
46 |
+
display: flex;
|
47 |
+
align-items: center;
|
48 |
+
justify-content: center;
|
49 |
+
border-radius: 50%;
|
50 |
+
background: rgba(255, 255, 255, 0.1);
|
51 |
+
color: #94a3b8;
|
52 |
+
font-weight: 600;
|
53 |
+
}
|
54 |
+
.progress-step.active {
|
55 |
+
background: #3b82f6;
|
56 |
+
color: white;
|
57 |
+
}
|
58 |
+
.progress-step.completed {
|
59 |
+
background: #059669;
|
60 |
+
color: white;
|
61 |
+
}
|
62 |
+
.progress-connector {
|
63 |
+
height: 2px;
|
64 |
+
flex: 1;
|
65 |
+
background: rgba(255, 255, 255, 0.1);
|
66 |
+
}
|
67 |
+
.progress-connector.active {
|
68 |
+
background: #3b82f6;
|
69 |
+
}
|
70 |
+
.progress-connector.completed {
|
71 |
+
background: #059669;
|
72 |
+
}
|
73 |
+
.input-field {
|
74 |
+
background: rgba(15, 23, 42, 0.8);
|
75 |
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
76 |
+
transition: all 0.3s ease;
|
77 |
+
}
|
78 |
+
.input-field:focus {
|
79 |
+
border-color: #3b82f6;
|
80 |
+
box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.3);
|
81 |
+
}
|
82 |
+
.shadow-glow {
|
83 |
+
box-shadow: 0 4px 20px rgba(59, 130, 246, 0.25);
|
84 |
+
}
|
85 |
+
#map {
|
86 |
+
height: 250px;
|
87 |
+
border-radius: 0.5rem;
|
88 |
+
}
|
89 |
+
</style>
|
90 |
+
</head>
|
91 |
+
<body class="cosmic-bg text-white min-h-screen font-['Inter']">
|
92 |
+
<div class="container mx-auto px-4 py-8 max-w-5xl relative z-10">
|
93 |
+
<!-- Navigation -->
|
94 |
+
<nav class="flex justify-between items-center mb-12">
|
95 |
+
<div class="flex items-center space-x-2">
|
96 |
+
<div class="w-10 h-10 rounded-full bg-gradient-to-br from-blue-500 to-indigo-600 flex items-center justify-center shadow-glow">
|
97 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
98 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z" />
|
99 |
+
</svg>
|
100 |
+
</div>
|
101 |
+
<span class="text-xl font-bold tracking-tight">NovaNexus</span>
|
102 |
+
</div>
|
103 |
+
<div>
|
104 |
+
<button class="text-sm text-blue-400 hover:text-blue-300 font-medium">Sign In</button>
|
105 |
+
</div>
|
106 |
+
</nav>
|
107 |
+
|
108 |
+
<!-- Main Content -->
|
109 |
+
<div class="flex flex-col md:flex-row gap-8">
|
110 |
+
<!-- Progress Indicator (Hidden on small screens) -->
|
111 |
+
<div class="hidden md:block w-64 shrink-0">
|
112 |
+
<div class="sticky top-8">
|
113 |
+
<h2 class="text-2xl font-bold mb-6">Create Your Account</h2>
|
114 |
+
<div class="flex flex-col gap-2">
|
115 |
+
<div class="flex flex-col items-center gap-1">
|
116 |
+
<span class="text-xs font-medium text-slate-400 uppercase tracking-wider">Progress</span>
|
117 |
+
<div class="w-full bg-slate-800 rounded-full h-1.5 mt-1">
|
118 |
+
<div class="bg-blue-500 h-1.5 rounded-full" id="progress-bar" style="width: 16.66%"></div>
|
119 |
+
</div>
|
120 |
+
</div>
|
121 |
+
<div class="mt-6 flex flex-col gap-4">
|
122 |
+
<div class="flex items-center gap-4">
|
123 |
+
<div id="step-1-circle" class="progress-step active">1</div>
|
124 |
+
<span id="step-1-text" class="font-medium">Personal Info</span>
|
125 |
+
<div class="progress-connector"></div>
|
126 |
+
</div>
|
127 |
+
<div class="flex items-center gap-4">
|
128 |
+
<div id="step-2-circle" class="progress-step">2</div>
|
129 |
+
<span id="step-2-text" class="font-medium text-slate-400">Business Info</span>
|
130 |
+
<div class="progress-connector"></div>
|
131 |
+
</div>
|
132 |
+
<div class="flex items-center gap-4">
|
133 |
+
<div id="step-3-circle" class="progress-step">3</div>
|
134 |
+
<span id="step-3-text" class="font-medium text-slate-400">Business Type</span>
|
135 |
+
<div class="progress-connector"></div>
|
136 |
+
</div>
|
137 |
+
<div class="flex items-center gap-4">
|
138 |
+
<div id="step-4-circle" class="progress-step">4</div>
|
139 |
+
<span id="step-4-text" class="font-medium text-slate-400">Location</span>
|
140 |
+
<div class="progress-connector"></div>
|
141 |
+
</div>
|
142 |
+
<div class="flex items-center gap-4">
|
143 |
+
<div id="step-5-circle" class="progress-step">5</div>
|
144 |
+
<span id="step-5-text" class="font-medium text-slate-400">Business Size</span>
|
145 |
+
<div class="progress-connector"></div>
|
146 |
+
</div>
|
147 |
+
<div class="flex items-center gap-4">
|
148 |
+
<div id="step-6-circle" class="progress-step">6</div>
|
149 |
+
<span id="step-6-text" class="font-medium text-slate-400">Credentials</span>
|
150 |
+
</div>
|
151 |
+
</div>
|
152 |
+
</div>
|
153 |
+
</div>
|
154 |
+
</div>
|
155 |
+
|
156 |
+
<!-- Form Content -->
|
157 |
+
<div class="flex-1">
|
158 |
+
<!-- Step 1: Name and Email -->
|
159 |
+
<div id="step-1" class="form-step block">
|
160 |
+
<div class="max-w-lg mx-auto">
|
161 |
+
<h1 class="text-4xl font-bold mb-2">Welcome to <span class="text-blue-400">NovaNexus</span></h1>
|
162 |
+
<p class="text-slate-400 mb-8">Let's get started with some basic information about you.</p>
|
163 |
+
|
164 |
+
<div class="space-y-6">
|
165 |
+
<div>
|
166 |
+
<label for="full-name" class="block text-sm font-medium mb-2">Full Name</label>
|
167 |
+
<input type="text" id="full-name" class="w-full px-4 py-3 rounded-lg input-field focus:outline-none" placeholder="John Smith">
|
168 |
+
</div>
|
169 |
+
|
170 |
+
<div>
|
171 |
+
<label for="email" class="block text-sm font-medium mb-2">Email Address</label>
|
172 |
+
<input type="email" id="email" class="w-full px-4 py-3 rounded-lg input-field focus:outline-none" placeholder="[email protected]">
|
173 |
+
</div>
|
174 |
+
</div>
|
175 |
+
|
176 |
+
<div class="mt-10 flex justify-end">
|
177 |
+
<button onclick="nextStep(2)" class="bg-blue-500 hover:bg-blue-600 text-white px-6 py-3 rounded-lg font-medium transition-colors duration-200">
|
178 |
+
Continue
|
179 |
+
</button>
|
180 |
+
</div>
|
181 |
+
</div>
|
182 |
+
</div>
|
183 |
+
|
184 |
+
<!-- Step 2: Business Name and Description -->
|
185 |
+
<div id="step-2" class="form-step hidden">
|
186 |
+
<div class="max-w-lg mx-auto">
|
187 |
+
<h1 class="text-4xl font-bold mb-2">About Your Business</h1>
|
188 |
+
<p class="text-slate-400 mb-8">Tell us a little about your company.</p>
|
189 |
+
|
190 |
+
<div class="space-y-6">
|
191 |
+
<div>
|
192 |
+
<label for="business-name" class="block text-sm font-medium mb-2">Business Name</label>
|
193 |
+
<input type="text" id="business-name" class="w-full px-4 py-3 rounded-lg input-field focus:outline-none" placeholder="Acme Inc.">
|
194 |
+
</div>
|
195 |
+
|
196 |
+
<div>
|
197 |
+
<label for="business-description" class="block text-sm font-medium mb-2">Business Description</label>
|
198 |
+
<textarea id="business-description" rows="4" class="w-full px-4 py-3 rounded-lg input-field focus:outline-none" placeholder="What products or services do you offer?"></textarea>
|
199 |
+
</div>
|
200 |
+
</div>
|
201 |
+
|
202 |
+
<div class="mt-10 flex justify-between">
|
203 |
+
<button onclick="prevStep(1)" class="text-blue-400 hover:text-blue-300 font-medium px-6 py-3 rounded-lg transition-colors duration-200">
|
204 |
+
Back
|
205 |
+
</button>
|
206 |
+
<button onclick="nextStep(3)" class="bg-blue-500 hover:bg-blue-600 text-white px-6 py-3 rounded-lg font-medium transition-colors duration-200">
|
207 |
+
Continue
|
208 |
+
</button>
|
209 |
+
</div>
|
210 |
+
</div>
|
211 |
+
</div>
|
212 |
+
|
213 |
+
<!-- Step 3: Business Type -->
|
214 |
+
<div id="step-3" class="form-step hidden">
|
215 |
+
<div class="max-w-lg mx-auto">
|
216 |
+
<h1 class="text-4xl font-bold mb-2">Business Type</h1>
|
217 |
+
<p class="text-slate-400 mb-8">Select the category that best describes your business.</p>
|
218 |
+
|
219 |
+
<div class="grid grid-cols-1 sm:grid-cols-3 gap-4">
|
220 |
+
<div class="selection-bubble rounded-lg p-4 cursor-pointer text-center" onclick="selectBusinessType('Marketing Agency')">
|
221 |
+
<div class="w-16 h-16 mx-auto bg-indigo-900/30 rounded-full flex items-center justify-center mb-3">
|
222 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8 text-indigo-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
223 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" />
|
224 |
+
</svg>
|
225 |
+
</div>
|
226 |
+
<h3 class="font-medium">Marketing Agency</h3>
|
227 |
+
<p class="text-sm text-slate-400 mt-1">Digital marketing, social media, SEO</p>
|
228 |
+
</div>
|
229 |
+
|
230 |
+
<div class="selection-bubble rounded-lg p-4 cursor-pointer text-center" onclick="selectBusinessType('Software Developer')">
|
231 |
+
<div class="w-16 h-16 mx-auto bg-blue-900/30 rounded-full flex items-center justify-center mb-3">
|
232 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8 text-blue-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
233 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4" />
|
234 |
+
</svg>
|
235 |
+
</div>
|
236 |
+
<h3 class="font-medium">Software Developer</h3>
|
237 |
+
<p class="text-sm text-slate-400 mt-1">Web & mobile app development</p>
|
238 |
+
</div>
|
239 |
+
|
240 |
+
<div class="selection-bubble rounded-lg p-4 cursor-pointer text-center" onclick="selectBusinessType('Graphic Designer')">
|
241 |
+
<div class="w-16 h-16 mx-auto bg-purple-900/30 rounded-full flex items-center justify-center mb-3">
|
242 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8 text-purple-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
243 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z" />
|
244 |
+
</svg>
|
245 |
+
</div>
|
246 |
+
<h3 class="font-medium">Graphic Designer</h3>
|
247 |
+
<p class="text-sm text-slate-400 mt-1">Branding, logos, print materials</p>
|
248 |
+
</div>
|
249 |
+
</div>
|
250 |
+
|
251 |
+
<input type="hidden" id="business-type">
|
252 |
+
|
253 |
+
<div class="mt-10 flex justify-between">
|
254 |
+
<button onclick="prevStep(2)" class="text-blue-400 hover:text-blue-300 font-medium px-6 py-3 rounded-lg transition-colors duration-200">
|
255 |
+
Back
|
256 |
+
</button>
|
257 |
+
<button onclick="nextStep(4)" class="bg-blue-500 hover:bg-blue-600 text-white px-6 py-3 rounded-lg font-medium transition-colors duration-200">
|
258 |
+
Continue
|
259 |
+
</button>
|
260 |
+
</div>
|
261 |
+
</div>
|
262 |
+
</div>
|
263 |
+
|
264 |
+
<!-- Step 4: Address with Map -->
|
265 |
+
<div id="step-4" class="form-step hidden">
|
266 |
+
<div class="max-w-lg mx-auto">
|
267 |
+
<h1 class="text-4xl font-bold mb-2">Business Location</h1>
|
268 |
+
<p class="text-slate-400 mb-8">Where is your business located?</p>
|
269 |
+
|
270 |
+
<div class="space-y-6">
|
271 |
+
<div>
|
272 |
+
<label for="business-address" class="block text-sm font-medium mb-2">Business Address</label>
|
273 |
+
<input type="text" id="business-address" class="w-full px-4 py-3 rounded-lg input-field focus:outline-none" placeholder="123 Main St, City, Country">
|
274 |
+
</div>
|
275 |
+
|
276 |
+
<div id="map" class="mt-4"></div>
|
277 |
+
|
278 |
+
<div class="grid grid-cols-2 gap-4">
|
279 |
+
<div>
|
280 |
+
<label for="city" class="block text-sm font-medium mb-2">City</label>
|
281 |
+
<input type="text" id="city" class="w-full px-4 py-3 rounded-lg input-field focus:outline-none" placeholder="New York">
|
282 |
+
</div>
|
283 |
+
<div>
|
284 |
+
<label for="zip-code" class="block text-sm font-medium mb-2">Zip Code</label>
|
285 |
+
<input type="text" id="zip-code" class="w-full px-4 py-3 rounded-lg input-field focus:outline-none" placeholder="10001">
|
286 |
+
</div>
|
287 |
+
</div>
|
288 |
+
</div>
|
289 |
+
|
290 |
+
<div class="mt-10 flex justify-between">
|
291 |
+
<button onclick="prevStep(3)" class="text-blue-400 hover:text-blue-300 font-medium px-6 py-3 rounded-lg transition-colors duration-200">
|
292 |
+
Back
|
293 |
+
</button>
|
294 |
+
<button onclick="nextStep(5)" class="bg-blue-500 hover:bg-blue-600 text-white px-6 py-3 rounded-lg font-medium transition-colors duration-200">
|
295 |
+
Continue
|
296 |
+
</button>
|
297 |
+
</div>
|
298 |
+
</div>
|
299 |
+
</div>
|
300 |
+
|
301 |
+
<!-- Step 5: Business Size -->
|
302 |
+
<div id="step-5" class="form-step hidden">
|
303 |
+
<div class="max-w-lg mx-auto">
|
304 |
+
<h1 class="text-4xl font-bold mb-2">Business Size</h1>
|
305 |
+
<p class="text-slate-400 mb-8">How many people work at your company?</p>
|
306 |
+
|
307 |
+
<div class="grid grid-cols-1 sm:grid-cols-4 gap-4">
|
308 |
+
<div class="selection-bubble rounded-lg p-4 cursor-pointer text-center" onclick="selectBusinessSize('1')">
|
309 |
+
<div class="w-16 h-16 mx-auto bg-slate-800 rounded-full flex items-center justify-center mb-3">
|
310 |
+
<span class="text-xl font-bold">1</span>
|
311 |
+
</div>
|
312 |
+
<h3 class="font-medium">Solo</h3>
|
313 |
+
<p class="text-sm text-slate-400 mt-1">Just me</p>
|
314 |
+
</div>
|
315 |
+
|
316 |
+
<div class="selection-bubble rounded-lg p-4 cursor-pointer text-center" onclick="selectBusinessSize('2-10')">
|
317 |
+
<div class="w-16 h-16 mx-auto bg-slate-800 rounded-full flex items-center justify-center mb-3">
|
318 |
+
<span class="text-xl font-bold">2-10</span>
|
319 |
+
</div>
|
320 |
+
<h3 class="font-medium">Small Team</h3>
|
321 |
+
<p class="text-sm text-slate-400 mt-1">2 to 10 people</p>
|
322 |
+
</div>
|
323 |
+
|
324 |
+
<div class="selection-bubble rounded-lg p-4 cursor-pointer text-center" onclick="selectBusinessSize('11-50')">
|
325 |
+
<div class="w-16 h-16 mx-auto bg-slate-800 rounded-full flex items-center justify-center mb-3">
|
326 |
+
<span class="text-xl font-bold">11-50</span>
|
327 |
+
</div>
|
328 |
+
<h3 class="font-medium">Medium</h3>
|
329 |
+
<p class="text-sm text-slate-400 mt-1">11 to 50 people</p>
|
330 |
+
</div>
|
331 |
+
|
332 |
+
<div class="selection-bubble rounded-lg p-4 cursor-pointer text-center" onclick="selectBusinessSize('51+')">
|
333 |
+
<div class="w-16 h-16 mx-auto bg-slate-800 rounded-full flex items-center justify-center mb-3">
|
334 |
+
<span class="text-xl font-bold">51+</span>
|
335 |
+
</div>
|
336 |
+
<h3 class="font-medium">Large</h3>
|
337 |
+
<p class="text-sm text-slate-400 mt-1">51+ employees</p>
|
338 |
+
</div>
|
339 |
+
</div>
|
340 |
+
|
341 |
+
<input type="hidden" id="business-size">
|
342 |
+
|
343 |
+
<div class="mt-10 flex justify-between">
|
344 |
+
<button onclick="prevStep(4)" class="text-blue-400 hover:text-blue-300 font-medium px-6 py-3 rounded-lg transition-colors duration-200">
|
345 |
+
Back
|
346 |
+
</button>
|
347 |
+
<button onclick="nextStep(6)" class="bg-blue-500 hover:bg-blue-600 text-white px-6 py-3 rounded-lg font-medium transition-colors duration-200">
|
348 |
+
Continue
|
349 |
+
</button>
|
350 |
+
</div>
|
351 |
+
</div>
|
352 |
+
</div>
|
353 |
+
|
354 |
+
<!-- Step 6: Username and Password -->
|
355 |
+
<div id="step-6" class="form-step hidden">
|
356 |
+
<div class="max-w-lg mx-auto">
|
357 |
+
<h1 class="text-4xl font-bold mb-2">Almost There</h1>
|
358 |
+
<p class="text-slate-400 mb-8">Create your login credentials.</p>
|
359 |
+
|
360 |
+
<div class="space-y-6">
|
361 |
+
<div>
|
362 |
+
<label for="username" class="block text-sm font-medium mb-2">Username</label>
|
363 |
+
<div class="relative">
|
364 |
+
<div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none">
|
365 |
+
<span class="text-slate-400">@</span>
|
366 |
+
</div>
|
367 |
+
<input type="text" id="username" class="w-full pl-7 px-4 py-3 rounded-lg input-field focus:outline-none" placeholder="username">
|
368 |
+
</div>
|
369 |
+
</div>
|
370 |
+
|
371 |
+
<div>
|
372 |
+
<label for="password" class="block text-sm font-medium mb-2">Password</label>
|
373 |
+
<input type="password" id="password" class="w-full px-4 py-3 rounded-lg input-field focus:outline-none" placeholder="••••••••">
|
374 |
+
<div class="mt-2">
|
375 |
+
<div class="flex items-center gap-2 mb-1">
|
376 |
+
<div id="strength-meter-1" class="w-full h-1.5 bg-slate-700 rounded-full"></div>
|
377 |
+
<div id="strength-meter-2" class="w-full h-1.5 bg-slate-700 rounded-full"></div>
|
378 |
+
<div id="strength-meter-3" class="w-full h-1.5 bg-slate-700 rounded-full"></div>
|
379 |
+
<div id="strength-meter-4" class="w-full h-1.5 bg-slate-700 rounded-full"></div>
|
380 |
+
</div>
|
381 |
+
<p id="strength-text" class="text-xs text-slate-400">Password strength: <span>Weak</span></p>
|
382 |
+
</div>
|
383 |
+
<div class="mt-2 text-xs text-slate-400">
|
384 |
+
Use 8+ characters with a mix of letters, numbers & symbols
|
385 |
+
</div>
|
386 |
+
</div>
|
387 |
+
|
388 |
+
<div>
|
389 |
+
<label for="confirm-password" class="block text-sm font-medium mb-2">Confirm Password</label>
|
390 |
+
<input type="password" id="confirm-password" class="w-full px-4 py-3 rounded-lg input-field focus:outline-none" placeholder="••••••••">
|
391 |
+
</div>
|
392 |
+
|
393 |
+
<div class="flex items-start mt-1">
|
394 |
+
<div class="flex items-center h-5">
|
395 |
+
<input id="terms" name="terms" type="checkbox" class="h-4 w-4 rounded text-blue-600 focus:ring-blue-500 bg-slate-800 border-slate-600">
|
396 |
+
</div>
|
397 |
+
<div class="ml-3 text-sm">
|
398 |
+
<label for="terms" class="text-slate-400">I agree to the <a href="#" class="text-blue-400 hover:text-blue-300">Terms of Service</a> and <a href="#" class="text-blue-400 hover:text-blue-300">Privacy Policy</a></label>
|
399 |
+
</div>
|
400 |
+
</div>
|
401 |
+
</div>
|
402 |
+
|
403 |
+
<div class="mt-10 flex justify-between">
|
404 |
+
<button onclick="prevStep(5)" class="text-blue-400 hover:text-blue-300 font-medium px-6 py-3 rounded-lg transition-colors duration-200">
|
405 |
+
Back
|
406 |
+
</button>
|
407 |
+
<button onclick="submitForm()" class="bg-blue-500 hover:bg-blue-600 text-white px-6 py-3 rounded-lg font-medium transition-colors duration-200">
|
408 |
+
Create Account
|
409 |
+
</button>
|
410 |
+
</div>
|
411 |
+
</div>
|
412 |
+
</div>
|
413 |
+
</div>
|
414 |
+
</div>
|
415 |
+
</div>
|
416 |
+
|
417 |
+
<script>
|
418 |
+
let currentStep = 1;
|
419 |
+
const totalSteps = 6;
|
420 |
+
let map;
|
421 |
+
let marker;
|
422 |
+
|
423 |
+
// Initialize the form
|
424 |
+
document.addEventListener('DOMContentLoaded', function() {
|
425 |
+
// For demo purposes, we'll just log the form submission
|
426 |
+
document.getElementById('password').addEventListener('input', checkPasswordStrength);
|
427 |
+
|
428 |
+
// Initialize the map (but only show it when we get to step 4)
|
429 |
+
initMap();
|
430 |
+
});
|
431 |
+
|
432 |
+
function nextStep(step) {
|
433 |
+
// Validate current step before proceeding
|
434 |
+
if (!validateCurrentStep()) return;
|
435 |
+
|
436 |
+
// Hide current step
|
437 |
+
document.getElementById(`step-${currentStep}`).classList.add('hidden');
|
438 |
+
|
439 |
+
// Update progress indicators for current step
|
440 |
+
document.getElementById(`step-${currentStep}-circle`).classList.remove('active');
|
441 |
+
document.getElementById(`step-${currentStep}-circle`).classList.add('completed');
|
442 |
+
document.getElementById(`step-${currentStep}-text`).classList.remove('font-medium');
|
443 |
+
document.getElementById(`step-${currentStep}-text`).classList.add('font-medium');
|
444 |
+
document.getElementById(`step-${currentStep}-text`).classList.remove('text-slate-400');
|
445 |
+
|
446 |
+
// Update connector to next step if it exists
|
447 |
+
const connector = document.querySelector(`#step-${currentStep}-circle + span + .progress-connector`);
|
448 |
+
if (connector) {
|
449 |
+
connector.classList.add('active', 'completed');
|
450 |
+
}
|
451 |
+
|
452 |
+
// Show new step
|
453 |
+
document.getElementById(`step-${step}`).classList.remove('hidden');
|
454 |
+
currentStep = step;
|
455 |
+
|
456 |
+
// Update progress indicators for new step
|
457 |
+
document.getElementById(`step-${currentStep}-circle`).classList.add('active');
|
458 |
+
document.getElementById(`step-${currentStep}-text`).classList.remove('text-slate-400');
|
459 |
+
document.getElementById(`step-${currentStep}-text`).classList.add('font-medium');
|
460 |
+
|
461 |
+
// Update progress bar
|
462 |
+
const progressPercent = ((currentStep - 1) / (totalSteps - 1)) * 100;
|
463 |
+
document.getElementById('progress-bar').style.width = `${progressPercent}%`;
|
464 |
+
|
465 |
+
// Special handling for map step
|
466 |
+
if (currentStep === 4) {
|
467 |
+
setTimeout(() => {
|
468 |
+
if (map) {
|
469 |
+
google.maps.event.trigger(map, 'resize');
|
470 |
+
}
|
471 |
+
}, 300);
|
472 |
+
}
|
473 |
+
}
|
474 |
+
|
475 |
+
function prevStep(step) {
|
476 |
+
// Hide current step
|
477 |
+
document.getElementById(`step-${currentStep}`).classList.add('hidden');
|
478 |
+
|
479 |
+
// Update progress indicators for current step
|
480 |
+
document.getElementById(`step-${currentStep}-circle`).classList.remove('active');
|
481 |
+
document.getElementById(`step-${currentStep}-text`).classList.remove('font-medium');
|
482 |
+
document.getElementById(`step-${currentStep}-text`).classList.add('text-slate-400');
|
483 |
+
|
484 |
+
// Show new step
|
485 |
+
document.getElementById(`step-${step}`).classList.remove('hidden');
|
486 |
+
currentStep = step;
|
487 |
+
|
488 |
+
// Update progress indicators for new step
|
489 |
+
document.getElementById(`step-${currentStep}-circle`).classList.add('active');
|
490 |
+
document.getElementById(`step-${currentStep}-text`).classList.remove('text-slate-400');
|
491 |
+
|
492 |
+
// Update progress bar
|
493 |
+
const progressPercent = ((currentStep - 1) / (totalSteps - 1)) * 100;
|
494 |
+
document.getElementById('progress-bar').style.width = `${progressPercent}%`;
|
495 |
+
}
|
496 |
+
|
497 |
+
function validateCurrentStep() {
|
498 |
+
// Add validation logic here for each step
|
499 |
+
switch(currentStep) {
|
500 |
+
case 1:
|
501 |
+
const fullName = document.getElementById('full-name').value.trim();
|
502 |
+
const email = document.getElementById('email').value.trim();
|
503 |
+
if (!fullName || !email) {
|
504 |
+
alert('Please fill in all fields');
|
505 |
+
return false;
|
506 |
+
}
|
507 |
+
// Simple email validation
|
508 |
+
if (!email.includes('@') || !email.includes('.')) {
|
509 |
+
alert('Please enter a valid email address');
|
510 |
+
return false;
|
511 |
+
}
|
512 |
+
return true;
|
513 |
+
case 2:
|
514 |
+
const businessName = document.getElementById('business-name').value.trim();
|
515 |
+
const businessDesc = document.getElementById('business-description').value.trim();
|
516 |
+
if (!businessName || !businessDesc) {
|
517 |
+
alert('Please fill in all fields');
|
518 |
+
return false;
|
519 |
+
}
|
520 |
+
return true;
|
521 |
+
case 3:
|
522 |
+
const businessType = document.getElementById('business-type').value;
|
523 |
+
if (!businessType) {
|
524 |
+
alert('Please select a business type');
|
525 |
+
return false;
|
526 |
+
}
|
527 |
+
return true;
|
528 |
+
case 4:
|
529 |
+
const address = document.getElementById('business-address').value.trim();
|
530 |
+
const city = document.getElementById('city').value.trim();
|
531 |
+
const zip = document.getElementById('zip-code').value.trim();
|
532 |
+
if (!address || !city || !zip) {
|
533 |
+
alert('Please fill in all location fields');
|
534 |
+
return false;
|
535 |
+
}
|
536 |
+
return true;
|
537 |
+
case 5:
|
538 |
+
const businessSize = document.getElementById('business-size').value;
|
539 |
+
if (!businessSize) {
|
540 |
+
alert('Please select your business size');
|
541 |
+
return false;
|
542 |
+
}
|
543 |
+
return true;
|
544 |
+
case 6:
|
545 |
+
const username = document.getElementById('username').value.trim();
|
546 |
+
const password = document.getElementById('password').value.trim();
|
547 |
+
const confirm = document.getElementById('confirm-password').value.trim();
|
548 |
+
const terms = document.getElementById('terms').checked;
|
549 |
+
|
550 |
+
if (!username || !password || !confirm) {
|
551 |
+
alert('Please fill in all fields');
|
552 |
+
return false;
|
553 |
+
}
|
554 |
+
|
555 |
+
if (password !== confirm) {
|
556 |
+
alert('Passwords do not match');
|
557 |
+
return false;
|
558 |
+
}
|
559 |
+
|
560 |
+
if (password.length < 8) {
|
561 |
+
alert('Password must be at least 8 characters');
|
562 |
+
return false;
|
563 |
+
}
|
564 |
+
|
565 |
+
if (!terms) {
|
566 |
+
alert('You must agree to the terms and conditions');
|
567 |
+
return false;
|
568 |
+
}
|
569 |
+
|
570 |
+
return true;
|
571 |
+
default:
|
572 |
+
return true;
|
573 |
+
}
|
574 |
+
}
|
575 |
+
|
576 |
+
function selectBusinessType(type) {
|
577 |
+
// Update selected business type
|
578 |
+
document.getElementById('business-type').value = type;
|
579 |
+
|
580 |
+
// Update UI
|
581 |
+
const bubbles = document.querySelectorAll('.selection-bubble');
|
582 |
+
bubbles.forEach(bubble => {
|
583 |
+
bubble.classList.remove('selected');
|
584 |
+
if (bubble.textContent.includes(type)) {
|
585 |
+
bubble.classList.add('selected');
|
586 |
+
}
|
587 |
+
});
|
588 |
+
}
|
589 |
+
|
590 |
+
function selectBusinessSize(size) {
|
591 |
+
// Update selected business size
|
592 |
+
document.getElementById('business-size').value = size;
|
593 |
+
|
594 |
+
// Update UI
|
595 |
+
const bubbles = document.querySelectorAll('.selection-bubble');
|
596 |
+
bubbles.forEach(bubble => {
|
597 |
+
bubble.classList.remove('selected');
|
598 |
+
if (bubble.querySelector('h3').textContent.includes(size.replace('5', '51'))) {
|
599 |
+
bubble.classList.add('selected');
|
600 |
+
}
|
601 |
+
});
|
602 |
+
}
|
603 |
+
|
604 |
+
function initMap() {
|
605 |
+
// Create a map centered on a default location
|
606 |
+
const defaultLocation = { lat: 40.7128, lng: -74.0060 }; // New York
|
607 |
+
map = new google.maps.Map(document.getElementById("map"), {
|
608 |
+
zoom: 12,
|
609 |
+
center: defaultLocation,
|
610 |
+
styles: [
|
611 |
+
{
|
612 |
+
"featureType": "all",
|
613 |
+
"elementType": "labels.text.fill",
|
614 |
+
"stylers": [
|
615 |
+
{
|
616 |
+
"saturation": 36
|
617 |
+
},
|
618 |
+
{
|
619 |
+
"color": "#eeeeee"
|
620 |
+
},
|
621 |
+
{
|
622 |
+
"lightness": 40
|
623 |
+
}
|
624 |
+
]
|
625 |
+
},
|
626 |
+
{
|
627 |
+
"featureType": "all",
|
628 |
+
"elementType": "labels.text.stroke",
|
629 |
+
"stylers": [
|
630 |
+
{
|
631 |
+
"visibility": "on"
|
632 |
+
},
|
633 |
+
{
|
634 |
+
"color": "#000000"
|
635 |
+
},
|
636 |
+
{
|
637 |
+
"lightness": 16
|
638 |
+
}
|
639 |
+
]
|
640 |
+
},
|
641 |
+
{
|
642 |
+
"featureType": "all",
|
643 |
+
"elementType": "labels.icon",
|
644 |
+
"stylers": [
|
645 |
+
{
|
646 |
+
"visibility": "off"
|
647 |
+
}
|
648 |
+
]
|
649 |
+
},
|
650 |
+
{
|
651 |
+
"featureType": "administrative",
|
652 |
+
"elementType": "geometry.fill",
|
653 |
+
"stylers": [
|
654 |
+
{
|
655 |
+
"color": "#000000"
|
656 |
+
},
|
657 |
+
{
|
658 |
+
"lightness": 20
|
659 |
+
}
|
660 |
+
]
|
661 |
+
},
|
662 |
+
{
|
663 |
+
"featureType": "administrative",
|
664 |
+
"elementType": "geometry.stroke",
|
665 |
+
"stylers": [
|
666 |
+
{
|
667 |
+
"color": "#000000"
|
668 |
+
},
|
669 |
+
{
|
670 |
+
"lightness": 17
|
671 |
+
},
|
672 |
+
{
|
673 |
+
"weight": 1.2
|
674 |
+
}
|
675 |
+
]
|
676 |
+
},
|
677 |
+
{
|
678 |
+
"featureType": "landscape",
|
679 |
+
"elementType": "geometry",
|
680 |
+
"stylers": [
|
681 |
+
{
|
682 |
+
"color": "#000000"
|
683 |
+
},
|
684 |
+
{
|
685 |
+
"lightness": 20
|
686 |
+
}
|
687 |
+
]
|
688 |
+
},
|
689 |
+
{
|
690 |
+
"featureType": "poi",
|
691 |
+
"elementType": "geometry",
|
692 |
+
"stylers": [
|
693 |
+
{
|
694 |
+
"color": "#000000"
|
695 |
+
},
|
696 |
+
{
|
697 |
+
"lightness": 21
|
698 |
+
}
|
699 |
+
]
|
700 |
+
},
|
701 |
+
{
|
702 |
+
"featureType": "road.highway",
|
703 |
+
"elementType": "geometry.fill",
|
704 |
+
"stylers": [
|
705 |
+
{
|
706 |
+
"color": "#202020"
|
707 |
+
},
|
708 |
+
{
|
709 |
+
"lightness": 17
|
710 |
+
}
|
711 |
+
]
|
712 |
+
},
|
713 |
+
{
|
714 |
+
"featureType": "road.highway",
|
715 |
+
"elementType": "geometry.stroke",
|
716 |
+
"stylers": [
|
717 |
+
{
|
718 |
+
"color": "#202020"
|
719 |
+
},
|
720 |
+
{
|
721 |
+
"lightness": 29
|
722 |
+
},
|
723 |
+
{
|
724 |
+
"weight": 0.2
|
725 |
+
}
|
726 |
+
]
|
727 |
+
},
|
728 |
+
{
|
729 |
+
"featureType": "road.arterial",
|
730 |
+
"elementType": "geometry",
|
731 |
+
"stylers": [
|
732 |
+
{
|
733 |
+
"color": "#151515"
|
734 |
+
},
|
735 |
+
{
|
736 |
+
"lightness": 18
|
737 |
+
}
|
738 |
+
]
|
739 |
+
},
|
740 |
+
{
|
741 |
+
"featureType": "road.local",
|
742 |
+
"elementType": "geometry",
|
743 |
+
"stylers": [
|
744 |
+
{
|
745 |
+
"color": "#000000"
|
746 |
+
},
|
747 |
+
{
|
748 |
+
"lightness": 16
|
749 |
+
}
|
750 |
+
]
|
751 |
+
},
|
752 |
+
{
|
753 |
+
"featureType": "transit",
|
754 |
+
"elementType": "geometry",
|
755 |
+
"stylers": [
|
756 |
+
{
|
757 |
+
"color": "#000000"
|
758 |
+
},
|
759 |
+
{
|
760 |
+
"lightness": 19
|
761 |
+
}
|
762 |
+
]
|
763 |
+
},
|
764 |
+
{
|
765 |
+
"featureType": "water",
|
766 |
+
"elementType": "geometry",
|
767 |
+
"stylers": [
|
768 |
+
{
|
769 |
+
"color": "#000000"
|
770 |
+
},
|
771 |
+
{
|
772 |
+
"lightness": 17
|
773 |
+
}
|
774 |
+
]
|
775 |
+
}
|
776 |
+
]
|
777 |
+
});
|
778 |
+
|
779 |
+
// Add marker
|
780 |
+
marker = new google.maps.Marker({
|
781 |
+
position: defaultLocation,
|
782 |
+
map: map,
|
783 |
+
title: "Your Business"
|
784 |
+
});
|
785 |
+
|
786 |
+
// Add autocomplete for address field
|
787 |
+
const autocomplete = new google.maps.places.Autocomplete(
|
788 |
+
document.getElementById('business-address'),
|
789 |
+
{ types: ['geocode'] }
|
790 |
+
);
|
791 |
+
|
792 |
+
// When user selects an address from the dropdown
|
793 |
+
autocomplete.addListener('place_changed', function() {
|
794 |
+
const place = autocomplete.getPlace();
|
795 |
+
if (!place.geometry) {
|
796 |
+
return;
|
797 |
+
}
|
798 |
+
|
799 |
+
// Update map position
|
800 |
+
map.setCenter(place.geometry.location);
|
801 |
+
marker.setPosition(place.geometry.location);
|
802 |
+
|
803 |
+
// Try to parse the address components
|
804 |
+
for (const component of place.address_components) {
|
805 |
+
const componentType = component.types[0];
|
806 |
+
|
807 |
+
switch (componentType) {
|
808 |
+
case "locality":
|
809 |
+
document.getElementById('city').value = component.long_name;
|
810 |
+
break;
|
811 |
+
case "postal_code":
|
812 |
+
document.getElementById('zip-code').value = component.long_name;
|
813 |
+
break;
|
814 |
+
}
|
815 |
+
}
|
816 |
+
});
|
817 |
+
}
|
818 |
+
|
819 |
+
function checkPasswordStrength() {
|
820 |
+
const password = document.getElementById('password').value;
|
821 |
+
const strengthText = document.getElementById('strength-text').querySelector('span');
|
822 |
+
|
823 |
+
// Reset meters
|
824 |
+
for (let i = 1; i <= 4; i++) {
|
825 |
+
document.getElementById(`strength-meter-${i}`).className = `w-full h-1.5 bg-slate-700 rounded-full`;
|
826 |
+
}
|
827 |
+
|
828 |
+
// Calculate strength (simple version)
|
829 |
+
let strength = 0;
|
830 |
+
if (password.length >= 8) strength++;
|
831 |
+
if (password.match(/[a-z]/) && password.match(/[A-Z]/)) strength++;
|
832 |
+
if (password.match(/\d/)) strength++;
|
833 |
+
if (password.match(/[^a-zA-Z\d]/)) strength++;
|
834 |
+
|
835 |
+
// Update meters
|
836 |
+
for (let i = 1; i <= strength; i++) {
|
837 |
+
let color = 'bg-red-500';
|
838 |
+
if (strength >= 3) color = 'bg-green-500';
|
839 |
+
else if (strength >= 2) color = 'bg-yellow-500';
|
840 |
+
|
841 |
+
document.getElementById(`strength-meter-${i}`).classList.add(color);
|
842 |
+
}
|
843 |
+
|
844 |
+
// Update text
|
845 |
+
if (strength <= 1) strengthText.textContent = 'Weak';
|
846 |
+
else if (strength <= 2) strengthText.textContent = 'Fair';
|
847 |
+
else if (strength <= 3) strengthText.textContent = 'Good';
|
848 |
+
else strengthText.textContent = 'Strong';
|
849 |
+
}
|
850 |
+
|
851 |
+
function submitForm() {
|
852 |
+
if (!validateCurrentStep()) return;
|
853 |
+
|
854 |
+
// In a real application, you would submit the form data here
|
855 |
+
alert('Account created successfully! Redirecting to dashboard...');
|
856 |
+
|
857 |
+
// For demo, just reset form after a short delay
|
858 |
+
setTimeout(() => {
|
859 |
+
// Reset form
|
860 |
+
currentStep = 1;
|
861 |
+
document.querySelectorAll('.form-step').forEach(step => {
|
862 |
+
if (step.id !== 'step-1') {
|
863 |
+
step.classList.add('hidden');
|
864 |
+
} else {
|
865 |
+
step.classList.remove('hidden');
|
866 |
+
}
|
867 |
+
});
|
868 |
+
|
869 |
+
// Reset progress indicators
|
870 |
+
document.querySelectorAll('.progress-step').forEach(step => {
|
871 |
+
step.classList.remove('active', 'completed');
|
872 |
+
if (step.id === 'step-1-circle') {
|
873 |
+
step.classList.add('active');
|
874 |
+
}
|
875 |
+
});
|
876 |
+
|
877 |
+
document.querySelectorAll('.progress-connector').forEach(connector => {
|
878 |
+
connector.classList.remove('active', 'completed');
|
879 |
+
});
|
880 |
+
|
881 |
+
document.getElementById('progress-bar').style.width = '16.66%';
|
882 |
+
|
883 |
+
document.querySelectorAll('.selection-bubble').forEach(bubble => {
|
884 |
+
bubble.classList.remove('selected');
|
885 |
+
});
|
886 |
+
|
887 |
+
// Reset all input fields
|
888 |
+
document.querySelectorAll('input:not([type="hidden"]), textarea').forEach(input => {
|
889 |
+
input.value = '';
|
890 |
+
});
|
891 |
+
|
892 |
+
document.getElementById('terms').checked = false;
|
893 |
+
}, 2000);
|
894 |
+
}
|
895 |
+
</script>
|
896 |
+
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=victor/novanexus" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
|
897 |
+
</html>
|
prompts.txt
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
Build a sleek, modern "create account" onboarding flow. With the following pages as separate steps: Name and Email, Business Name and Description, Business type (Marketing Agency , Software Developer, Graphic Designer), Address (Include map), Business Size, Choose a username and set password. For the visual ui follow the following details: A cosmic dark blue to black gradient background with subtle star elements. Clean, minimalist typography with large bold headlines A professional navigation bar. Elegant spacing and layout. A circular badge/emblem design For an agency website. A gradient background similar to the cosmic effect> shown. Modern, professional typography with impactful headlines. Responsive navigation that works on all devices Clear sections showcasing services and value proposition The same overall aesthetic and brand positioning. With color palette of deep blues, blacks, whites, and subtle accents.
|