@fynd-design-engineering/fynd-one-v2 3.4.61 → 3.4.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accordians/dropdown.js +95 -1
- package/dist/accordians/index.js +391 -1
- package/dist/cms-listing/index.js +24 -1
- package/dist/filters/clear-search.js +32 -1
- package/dist/filters/konnect.js +165 -1
- package/dist/filters/show-count.js +66 -1
- package/dist/form/country-dropdown.css +160 -1
- package/dist/form/cs-gated-redirection.js +40 -1
- package/dist/form/download-file.js +70 -1
- package/dist/form/validation.css +1019 -1
- package/dist/form/validation.js +10611 -7
- package/dist/global/anchor-scroll.js +174 -1
- package/dist/global/auth.js +87 -1
- package/dist/global/chat.js +185 -1
- package/dist/global/console-links.js +89 -1
- package/dist/global/contact-popup.js +83 -2
- package/dist/global/css/in-page-embed.css +1043 -1
- package/dist/global/css/in-project-settings.css +173 -1
- package/dist/global/css/temp.css +89 -1
- package/dist/global/custom-bg-video.js +40 -1
- package/dist/global/footer-accordion.js +44 -1
- package/dist/global/lazy-loader.js +135 -1
- package/dist/global/loader.js +166 -2
- package/dist/global/media-card.js +166 -1
- package/dist/global/miscellaneous.js +136 -1
- package/dist/global/number-count.js +82 -1
- package/dist/global/popup-video.js +276 -1
- package/dist/global/progressive-scroll.js +222 -1
- package/dist/global/responsive-video.js +321 -1
- package/dist/global/style.css +1065 -1
- package/dist/global/video-card.js +50 -1
- package/dist/hacktimus/2025.js +177 -1
- package/dist/hacktimus/styles.css +91 -1
- package/dist/home/index.js +17 -1
- package/dist/marquee/index.js +3104 -1
- package/dist/marquee/marquee-swiper.js +36 -1
- package/dist/navigation/announcement/index.js +5169 -1
- package/dist/navigation/context-menu/index.js +31 -1
- package/dist/navigation/desktop/index.js +4603 -1
- package/dist/navigation/initialization.js +602 -1
- package/dist/navigation/main.js +4911 -1
- package/dist/navigation/mobile/index.js +286 -1
- package/dist/navigation/scroll/index.js +62 -1
- package/dist/navigation/secondary-navigation/index.js +437 -1
- package/dist/navigation/style.css +154 -1
- package/dist/navigation/temp.css +2 -0
- package/dist/navigation/theme.css +69 -1
- package/dist/navigation-v2/index.js +4990 -1
- package/dist/navigation-v2/styles.css +233 -1
- package/dist/others/feature-detail.js +75 -0
- package/dist/others/feature-detail.js.map +7 -0
- package/dist/others/geolocation.js +50 -1
- package/dist/others/hero-aniamtion.js +53 -1
- package/dist/others/hero-india-animation-2.js +70 -1
- package/dist/others/hero-india-animation.js +93 -1
- package/dist/others/home-solution-tab.js +115 -1
- package/dist/others/storefront-chat/index.js +487 -1
- package/dist/others/storefront-chat/styles.css +107 -1
- package/dist/playbook-2026/hero-reveal.js +47 -1
- package/dist/playbook-2026/index.js +536 -1
- package/dist/playbook-2026/styles.css +110 -1
- package/dist/posthog-and-ga/attributes.js +190 -1
- package/dist/posthog-and-ga/main.js +528 -1
- package/dist/progressive-scroll/index.js +147 -1
- package/dist/quick-fix/reload.js +22 -1
- package/dist/seo/schema.js +465 -1
- package/dist/slider/freescroll.js +34 -1
- package/dist/test/sample.js +15 -1
- package/dist/testimonials/index.js +2654 -1
- package/dist/timeline/index.js +160 -1
- package/dist/timeline/style.css +42 -1
- package/dist/tracking/custom-id.js +75 -1
- package/dist/tracking/fill-form-fields.js +238 -1
- package/dist/tracking/fill-form-fields.js.map +2 -2
- package/dist/tracking/form-tracker.js +146 -1
- package/dist/tracking/page-categories.js +20 -1
- package/dist/tracking/user-journey.js +839 -1
- package/dist/tracking/utm-links.js +194 -1
- package/dist/utils/sample.js +17 -1
- package/dist/validations/localhost.js +221 -1
- package/package.json +1 -1
|
@@ -1 +1,233 @@
|
|
|
1
|
-
|
|
1
|
+
/* src/navigation-v2/styles.css */
|
|
2
|
+
:root {
|
|
3
|
+
--nav-height: 70px;
|
|
4
|
+
--nav-bg: rgba(255, 255, 255, 0.82);
|
|
5
|
+
--nav-blur: saturate(180%) blur(20px);
|
|
6
|
+
--nav-border: #1c1c1c0f;
|
|
7
|
+
--nav-text-muted: #0000009d;
|
|
8
|
+
--nav-text-active: #000000;
|
|
9
|
+
--nav-item-radius: 6px;
|
|
10
|
+
--nav-item-hover-bg: rgba(255, 255, 255, 0.06);
|
|
11
|
+
--nav-panel-bg: #fff;
|
|
12
|
+
--nav-panel-border: #1f1f1f;
|
|
13
|
+
--nav-panel-radius: 12px;
|
|
14
|
+
--nav-panel-shadow: 0 8px 32px rgba(0, 0, 0, 0.159), 0 1px 0 rgba(255, 255, 255, 0.01);
|
|
15
|
+
}
|
|
16
|
+
@media (max-width: 991px) {
|
|
17
|
+
:root {
|
|
18
|
+
--nav-height: 48px;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
@media (max-width: 600px) {
|
|
22
|
+
[data-nav-announcement-wrapper] {
|
|
23
|
+
transition-timing-function: linear !important;
|
|
24
|
+
align-items: center;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
[data-nav] {
|
|
28
|
+
position: sticky;
|
|
29
|
+
top: 0;
|
|
30
|
+
z-index: 200;
|
|
31
|
+
font-family:
|
|
32
|
+
-apple-system,
|
|
33
|
+
BlinkMacSystemFont,
|
|
34
|
+
"Inter",
|
|
35
|
+
"Segoe UI",
|
|
36
|
+
sans-serif;
|
|
37
|
+
}
|
|
38
|
+
[data-nav-bar] {
|
|
39
|
+
position: relative;
|
|
40
|
+
z-index: 2;
|
|
41
|
+
display: flex;
|
|
42
|
+
align-items: center;
|
|
43
|
+
justify-content: space-between;
|
|
44
|
+
padding: 0 24px;
|
|
45
|
+
height: var(--nav-height);
|
|
46
|
+
background: var(--nav-bg);
|
|
47
|
+
backdrop-filter: var(--nav-blur);
|
|
48
|
+
-webkit-backdrop-filter: var(--nav-blur);
|
|
49
|
+
border-bottom: 1px solid transparent;
|
|
50
|
+
transition: border-color 0.2s;
|
|
51
|
+
}
|
|
52
|
+
[data-nav][data-menu-open] [data-nav-bar] {
|
|
53
|
+
border-bottom-color: var(--nav-border);
|
|
54
|
+
}
|
|
55
|
+
[data-nav-logo] {
|
|
56
|
+
display: flex;
|
|
57
|
+
align-items: center;
|
|
58
|
+
gap: 8px;
|
|
59
|
+
font-size: 0.92rem;
|
|
60
|
+
font-weight: 600;
|
|
61
|
+
color: var(--nav-text-active);
|
|
62
|
+
text-decoration: none;
|
|
63
|
+
letter-spacing: -0.3px;
|
|
64
|
+
flex-shrink: 0;
|
|
65
|
+
}
|
|
66
|
+
[data-nav-links] {
|
|
67
|
+
list-style: none;
|
|
68
|
+
display: flex;
|
|
69
|
+
align-items: center;
|
|
70
|
+
gap: 2px;
|
|
71
|
+
position: static;
|
|
72
|
+
}
|
|
73
|
+
[data-nav-item] {
|
|
74
|
+
position: relative;
|
|
75
|
+
height: var(--nav-height);
|
|
76
|
+
display: flex;
|
|
77
|
+
align-items: center;
|
|
78
|
+
justify-content: center;
|
|
79
|
+
}
|
|
80
|
+
[data-nav-trigger],
|
|
81
|
+
[data-nav-link] {
|
|
82
|
+
display: flex;
|
|
83
|
+
align-items: center;
|
|
84
|
+
gap: 4px;
|
|
85
|
+
border-radius: var(--nav-item-radius);
|
|
86
|
+
color: var(--nav-text-muted);
|
|
87
|
+
background: transparent;
|
|
88
|
+
border: none;
|
|
89
|
+
cursor: pointer;
|
|
90
|
+
white-space: nowrap;
|
|
91
|
+
transition: color 0.15s, background 0.15s;
|
|
92
|
+
}
|
|
93
|
+
[data-nav-trigger]:hover,
|
|
94
|
+
[data-nav-item][data-active] [data-nav-trigger] {
|
|
95
|
+
color: var(--nav-text-active);
|
|
96
|
+
background: var(--nav-item-hover-bg);
|
|
97
|
+
}
|
|
98
|
+
[data-nav-trigger] .nav-chevron {
|
|
99
|
+
width: 10px;
|
|
100
|
+
height: 6px;
|
|
101
|
+
flex-shrink: 0;
|
|
102
|
+
opacity: 0.45;
|
|
103
|
+
}
|
|
104
|
+
[data-nav-plain] {
|
|
105
|
+
color: var(--nav-text-muted);
|
|
106
|
+
text-decoration: none;
|
|
107
|
+
display: block;
|
|
108
|
+
transition: color 0.15s, background 0.15s;
|
|
109
|
+
}
|
|
110
|
+
[data-nav-plain]:hover {
|
|
111
|
+
color: var(--nav-text-active);
|
|
112
|
+
background: var(--nav-item-hover-bg);
|
|
113
|
+
}
|
|
114
|
+
[data-nav-right] {
|
|
115
|
+
display: flex;
|
|
116
|
+
align-items: center;
|
|
117
|
+
gap: 6px;
|
|
118
|
+
flex-shrink: 0;
|
|
119
|
+
}
|
|
120
|
+
[data-nav-panel-stage] {
|
|
121
|
+
position: absolute;
|
|
122
|
+
top: 100%;
|
|
123
|
+
left: 0;
|
|
124
|
+
right: 0;
|
|
125
|
+
height: 0;
|
|
126
|
+
overflow: visible;
|
|
127
|
+
pointer-events: none;
|
|
128
|
+
z-index: 1;
|
|
129
|
+
}
|
|
130
|
+
[data-nav-panel] {
|
|
131
|
+
position: absolute;
|
|
132
|
+
top: 8px;
|
|
133
|
+
left: 0;
|
|
134
|
+
background: var(--nav-panel-bg);
|
|
135
|
+
border: 1px solid var(--nav-panel-border);
|
|
136
|
+
border-radius: var(--nav-panel-radius);
|
|
137
|
+
padding: 16px;
|
|
138
|
+
pointer-events: auto;
|
|
139
|
+
box-shadow: var(--nav-panel-shadow);
|
|
140
|
+
overflow: hidden;
|
|
141
|
+
}
|
|
142
|
+
.btn-ghost {
|
|
143
|
+
padding: 5px 13px;
|
|
144
|
+
border-radius: 6px;
|
|
145
|
+
font-size: 0.8rem;
|
|
146
|
+
color: #888;
|
|
147
|
+
background: transparent;
|
|
148
|
+
border: 1px solid transparent;
|
|
149
|
+
cursor: pointer;
|
|
150
|
+
transition: color 0.15s, border-color 0.15s;
|
|
151
|
+
}
|
|
152
|
+
.btn-ghost:hover {
|
|
153
|
+
color: #fff;
|
|
154
|
+
border-color: #333;
|
|
155
|
+
}
|
|
156
|
+
.btn-outline {
|
|
157
|
+
padding: 5px 13px;
|
|
158
|
+
border-radius: 6px;
|
|
159
|
+
font-size: 0.8rem;
|
|
160
|
+
color: #ccc;
|
|
161
|
+
background: transparent;
|
|
162
|
+
border: 1px solid #2e2e2e;
|
|
163
|
+
cursor: pointer;
|
|
164
|
+
transition: border-color 0.15s, color 0.15s;
|
|
165
|
+
}
|
|
166
|
+
.btn-outline:hover {
|
|
167
|
+
border-color: #555;
|
|
168
|
+
color: #fff;
|
|
169
|
+
}
|
|
170
|
+
.btn-primary {
|
|
171
|
+
padding: 5px 13px;
|
|
172
|
+
border-radius: 6px;
|
|
173
|
+
font-size: 0.8rem;
|
|
174
|
+
font-weight: 500;
|
|
175
|
+
color: #000;
|
|
176
|
+
background: #fff;
|
|
177
|
+
border: none;
|
|
178
|
+
cursor: pointer;
|
|
179
|
+
transition: background 0.15s;
|
|
180
|
+
}
|
|
181
|
+
.btn-primary:hover {
|
|
182
|
+
background: #ddd;
|
|
183
|
+
}
|
|
184
|
+
.cols-3 {
|
|
185
|
+
display: grid;
|
|
186
|
+
grid-template-columns: repeat(3, 180px);
|
|
187
|
+
gap: 0 24px;
|
|
188
|
+
}
|
|
189
|
+
.cols-2 {
|
|
190
|
+
display: grid;
|
|
191
|
+
grid-template-columns: repeat(2, 200px);
|
|
192
|
+
gap: 0 24px;
|
|
193
|
+
}
|
|
194
|
+
.cols-1 {
|
|
195
|
+
display: grid;
|
|
196
|
+
grid-template-columns: 220px;
|
|
197
|
+
}
|
|
198
|
+
.col-label {
|
|
199
|
+
font-size: 0.67rem;
|
|
200
|
+
font-weight: 500;
|
|
201
|
+
letter-spacing: 0.07em;
|
|
202
|
+
text-transform: uppercase;
|
|
203
|
+
color: #333;
|
|
204
|
+
margin-bottom: 4px;
|
|
205
|
+
padding: 0 8px;
|
|
206
|
+
}
|
|
207
|
+
.menu-item {
|
|
208
|
+
display: block;
|
|
209
|
+
padding: 7px 8px;
|
|
210
|
+
border-radius: 6px;
|
|
211
|
+
text-decoration: none;
|
|
212
|
+
color: inherit;
|
|
213
|
+
transition: background 0.12s;
|
|
214
|
+
}
|
|
215
|
+
.menu-item:hover {
|
|
216
|
+
background: #161616;
|
|
217
|
+
}
|
|
218
|
+
.menu-item-title {
|
|
219
|
+
display: block;
|
|
220
|
+
font-size: 0.8rem;
|
|
221
|
+
font-weight: 500;
|
|
222
|
+
color: #ddd;
|
|
223
|
+
}
|
|
224
|
+
.menu-item-desc {
|
|
225
|
+
display: block;
|
|
226
|
+
font-size: 0.72rem;
|
|
227
|
+
color: #4a4a4a;
|
|
228
|
+
margin-top: 1px;
|
|
229
|
+
}
|
|
230
|
+
body {
|
|
231
|
+
background: red;
|
|
232
|
+
}
|
|
233
|
+
/*# sourceMappingURL=styles.css.map */
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
(() => {
|
|
3
|
+
// bin/live-reload.js
|
|
4
|
+
if (window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1") {
|
|
5
|
+
new EventSource(`${"http://localhost:3000"}/esbuild`).addEventListener(
|
|
6
|
+
"change",
|
|
7
|
+
() => location.reload()
|
|
8
|
+
);
|
|
9
|
+
} else {
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// src/others/feature-detail.ts
|
|
13
|
+
document.addEventListener("DOMContentLoaded", () => {
|
|
14
|
+
const richtextBlocks = document.querySelectorAll(".feature-richtext");
|
|
15
|
+
richtextBlocks.forEach((block) => {
|
|
16
|
+
const h2 = block.querySelector("h2");
|
|
17
|
+
if (!h2) return;
|
|
18
|
+
const siblings = [];
|
|
19
|
+
let sibling = h2.nextElementSibling;
|
|
20
|
+
while (sibling) {
|
|
21
|
+
siblings.push(sibling);
|
|
22
|
+
sibling = sibling.nextElementSibling;
|
|
23
|
+
}
|
|
24
|
+
const outerWrapper = document.createElement("div");
|
|
25
|
+
outerWrapper.classList.add("features-outer-wrapper");
|
|
26
|
+
let innerDiv = null;
|
|
27
|
+
siblings.forEach((el) => {
|
|
28
|
+
if (el.tagName === "H3") {
|
|
29
|
+
innerDiv = document.createElement("div");
|
|
30
|
+
innerDiv.classList.add("feature-item");
|
|
31
|
+
innerDiv.appendChild(el);
|
|
32
|
+
outerWrapper.appendChild(innerDiv);
|
|
33
|
+
} else if (el.tagName === "P" && innerDiv) {
|
|
34
|
+
innerDiv.appendChild(el);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
h2.after(outerWrapper);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
document.addEventListener("DOMContentLoaded", () => {
|
|
41
|
+
const featureBlocks = document.querySelectorAll("[data-feature-block]");
|
|
42
|
+
const tocContainer = document.querySelector("[data-toc-links]");
|
|
43
|
+
if (!tocContainer || featureBlocks.length === 0) return;
|
|
44
|
+
featureBlocks.forEach((block) => {
|
|
45
|
+
const badge = block.querySelector("badge");
|
|
46
|
+
if (!badge || !badge.textContent) return;
|
|
47
|
+
const text = badge.textContent.trim();
|
|
48
|
+
const slug = text.toLowerCase().replace(/\s+/g, "-").replace(/[^a-z0-9-]/g, "");
|
|
49
|
+
block.id = slug;
|
|
50
|
+
const tocLink = document.createElement("a");
|
|
51
|
+
tocLink.className = "feature-toc-link";
|
|
52
|
+
tocLink.setAttribute("data-toc-link", slug);
|
|
53
|
+
tocLink.href = `#${slug}`;
|
|
54
|
+
tocContainer.addEventListener("click", (e) => {
|
|
55
|
+
const link = e.target.closest("a.feature-toc-link");
|
|
56
|
+
if (!link) return;
|
|
57
|
+
e.preventDefault();
|
|
58
|
+
e.stopPropagation();
|
|
59
|
+
const slug2 = link.getAttribute("data-toc-link");
|
|
60
|
+
if (!slug2) return;
|
|
61
|
+
const target = document.getElementById(slug2);
|
|
62
|
+
console.log("slug:", slug2, "target:", target);
|
|
63
|
+
if (!target) return;
|
|
64
|
+
const top = target.getBoundingClientRect().top + window.scrollY - 100;
|
|
65
|
+
window.scrollTo({ top, behavior: "smooth" });
|
|
66
|
+
});
|
|
67
|
+
const tocText = document.createElement("div");
|
|
68
|
+
tocText.setAttribute("data-toc-link-text", slug);
|
|
69
|
+
tocText.textContent = text;
|
|
70
|
+
tocLink.appendChild(tocText);
|
|
71
|
+
tocContainer.appendChild(tocLink);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
})();
|
|
75
|
+
//# sourceMappingURL=feature-detail.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../bin/live-reload.js", "../../src/others/feature-detail.ts"],
|
|
4
|
+
"sourcesContent": ["// Only enable live reload when running on localhost\nif (\n window.location.hostname === \"localhost\" ||\n window.location.hostname === \"127.0.0.1\"\n) {\n new EventSource(`${SERVE_ORIGIN}/esbuild`).addEventListener(\"change\", () =>\n location.reload()\n );\n} else {\n // console.log(\"Live reload disabled: not running on localhost\");\n}\n", "document.addEventListener(\"DOMContentLoaded\", () => {\n const richtextBlocks = document.querySelectorAll<HTMLElement>(\".feature-richtext\");\n\n richtextBlocks.forEach((block) => {\n const h2 = block.querySelector(\"h2\");\n if (!h2) return;\n\n // Collect all h3 and p elements that come after the h2\n const siblings: Element[] = [];\n let sibling = h2.nextElementSibling;\n while (sibling) {\n siblings.push(sibling);\n sibling = sibling.nextElementSibling;\n }\n\n // Create the outer wrapper\n const outerWrapper = document.createElement(\"div\");\n outerWrapper.classList.add(\"features-outer-wrapper\");\n\n // Group h3 + p pairs into inner divs\n let innerDiv: HTMLDivElement | null = null;\n\n siblings.forEach((el) => {\n if (el.tagName === \"H3\") {\n // Start a new inner div for each h3\n innerDiv = document.createElement(\"div\");\n innerDiv.classList.add(\"feature-item\");\n innerDiv.appendChild(el);\n outerWrapper.appendChild(innerDiv);\n } else if (el.tagName === \"P\" && innerDiv) {\n // Append p to the current inner div\n innerDiv.appendChild(el);\n }\n });\n\n // Insert the outer wrapper after the h2\n h2.after(outerWrapper);\n });\n});\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n const featureBlocks = document.querySelectorAll<HTMLElement>(\"[data-feature-block]\");\n const tocContainer = document.querySelector<HTMLElement>(\"[data-toc-links]\");\n\n if (!tocContainer || featureBlocks.length === 0) return;\n\n featureBlocks.forEach((block) => {\n const badge = block.querySelector(\"badge\");\n if (!badge || !badge.textContent) return;\n\n const text = badge.textContent.trim();\n const slug = text.toLowerCase().replace(/\\s+/g, \"-\").replace(/[^a-z0-9-]/g, \"\");\n\n // Set id on the feature block for anchor linking\n block.id = slug;\n\n // Create the toc link as an anchor\n const tocLink = document.createElement(\"a\");\n tocLink.className = \"feature-toc-link\";\n tocLink.setAttribute(\"data-toc-link\", slug);\n tocLink.href = `#${slug}`;\n\n // Smooth scroll with offset\n tocContainer.addEventListener(\"click\", (e) => {\n const link = (e.target as HTMLElement).closest(\"a.feature-toc-link\");\n if (!link) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n const slug = link.getAttribute(\"data-toc-link\");\n if (!slug) return;\n\n const target = document.getElementById(slug);\n console.log(\"slug:\", slug, \"target:\", target); // debug\n\n if (!target) return;\n\n const top = target.getBoundingClientRect().top + window.scrollY - 100;\n window.scrollTo({ top, behavior: \"smooth\" });\n });\n\n // Create the text div\n const tocText = document.createElement(\"div\");\n tocText.setAttribute(\"data-toc-link-text\", slug);\n tocText.textContent = text;\n\n tocLink.appendChild(tocText);\n tocContainer.appendChild(tocLink);\n });\n});"],
|
|
5
|
+
"mappings": ";;;AACA,MACE,OAAO,SAAS,aAAa,eAC7B,OAAO,SAAS,aAAa,aAC7B;AACA,QAAI,YAAY,GAAG,uBAAY,UAAU,EAAE;AAAA,MAAiB;AAAA,MAAU,MACpE,SAAS,OAAO;AAAA,IAClB;AAAA,EACF,OAAO;AAAA,EAEP;;;ACVA,WAAS,iBAAiB,oBAAoB,MAAM;AAChD,UAAM,iBAAiB,SAAS,iBAA8B,mBAAmB;AAEjF,mBAAe,QAAQ,CAAC,UAAU;AAC9B,YAAM,KAAK,MAAM,cAAc,IAAI;AACnC,UAAI,CAAC,GAAI;AAGT,YAAM,WAAsB,CAAC;AAC7B,UAAI,UAAU,GAAG;AACjB,aAAO,SAAS;AACZ,iBAAS,KAAK,OAAO;AACrB,kBAAU,QAAQ;AAAA,MACtB;AAGA,YAAM,eAAe,SAAS,cAAc,KAAK;AACjD,mBAAa,UAAU,IAAI,wBAAwB;AAGnD,UAAI,WAAkC;AAEtC,eAAS,QAAQ,CAAC,OAAO;AACrB,YAAI,GAAG,YAAY,MAAM;AAErB,qBAAW,SAAS,cAAc,KAAK;AACvC,mBAAS,UAAU,IAAI,cAAc;AACrC,mBAAS,YAAY,EAAE;AACvB,uBAAa,YAAY,QAAQ;AAAA,QACrC,WAAW,GAAG,YAAY,OAAO,UAAU;AAEvC,mBAAS,YAAY,EAAE;AAAA,QAC3B;AAAA,MACJ,CAAC;AAGD,SAAG,MAAM,YAAY;AAAA,IACzB,CAAC;AAAA,EACL,CAAC;AAED,WAAS,iBAAiB,oBAAoB,MAAM;AAChD,UAAM,gBAAgB,SAAS,iBAA8B,sBAAsB;AACnF,UAAM,eAAe,SAAS,cAA2B,kBAAkB;AAE3E,QAAI,CAAC,gBAAgB,cAAc,WAAW,EAAG;AAEjD,kBAAc,QAAQ,CAAC,UAAU;AAC7B,YAAM,QAAQ,MAAM,cAAc,OAAO;AACzC,UAAI,CAAC,SAAS,CAAC,MAAM,YAAa;AAElC,YAAM,OAAO,MAAM,YAAY,KAAK;AACpC,YAAM,OAAO,KAAK,YAAY,EAAE,QAAQ,QAAQ,GAAG,EAAE,QAAQ,eAAe,EAAE;AAG9E,YAAM,KAAK;AAGX,YAAM,UAAU,SAAS,cAAc,GAAG;AAC1C,cAAQ,YAAY;AACpB,cAAQ,aAAa,iBAAiB,IAAI;AAC1C,cAAQ,OAAO,IAAI,IAAI;AAGvB,mBAAa,iBAAiB,SAAS,CAAC,MAAM;AAC1C,cAAM,OAAQ,EAAE,OAAuB,QAAQ,oBAAoB;AACnE,YAAI,CAAC,KAAM;AAEX,UAAE,eAAe;AACjB,UAAE,gBAAgB;AAElB,cAAMA,QAAO,KAAK,aAAa,eAAe;AAC9C,YAAI,CAACA,MAAM;AAEX,cAAM,SAAS,SAAS,eAAeA,KAAI;AAC3C,gBAAQ,IAAI,SAASA,OAAM,WAAW,MAAM;AAE5C,YAAI,CAAC,OAAQ;AAEb,cAAM,MAAM,OAAO,sBAAsB,EAAE,MAAM,OAAO,UAAU;AAClE,eAAO,SAAS,EAAE,KAAK,UAAU,SAAS,CAAC;AAAA,MAC/C,CAAC;AAGD,YAAM,UAAU,SAAS,cAAc,KAAK;AAC5C,cAAQ,aAAa,sBAAsB,IAAI;AAC/C,cAAQ,cAAc;AAEtB,cAAQ,YAAY,OAAO;AAC3B,mBAAa,YAAY,OAAO;AAAA,IACpC,CAAC;AAAA,EACL,CAAC;",
|
|
6
|
+
"names": ["slug"]
|
|
7
|
+
}
|
|
@@ -1 +1,50 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
(() => {
|
|
3
|
+
// bin/live-reload.js
|
|
4
|
+
if (window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1") {
|
|
5
|
+
new EventSource(`${"http://localhost:3000"}/esbuild`).addEventListener(
|
|
6
|
+
"change",
|
|
7
|
+
() => location.reload()
|
|
8
|
+
);
|
|
9
|
+
} else {
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// src/others/geolocation.ts
|
|
13
|
+
var LOOKUP_URL = "https://ipwho.is/";
|
|
14
|
+
function runNonBlocking(fn) {
|
|
15
|
+
const start = () => {
|
|
16
|
+
if ("requestIdleCallback" in window) {
|
|
17
|
+
window.requestIdleCallback(fn, { timeout: 2e3 });
|
|
18
|
+
} else {
|
|
19
|
+
setTimeout(fn, 0);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
if (document.readyState === "loading") {
|
|
23
|
+
document.addEventListener("DOMContentLoaded", start, { once: true });
|
|
24
|
+
} else {
|
|
25
|
+
start();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async function getCountryCode() {
|
|
29
|
+
try {
|
|
30
|
+
const res = await fetch(LOOKUP_URL);
|
|
31
|
+
if (!res.ok) throw new Error("HTTP " + res.status);
|
|
32
|
+
const data = await res.json();
|
|
33
|
+
return data.success && data.country_code ? data.country_code : null;
|
|
34
|
+
} catch {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
async function init() {
|
|
39
|
+
const code = await getCountryCode();
|
|
40
|
+
const el = document.querySelector("[fynd-geolocation]");
|
|
41
|
+
if (!el) return;
|
|
42
|
+
if (code === "IN") {
|
|
43
|
+
el.style.display = "block";
|
|
44
|
+
} else {
|
|
45
|
+
el.style.display = "none";
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
runNonBlocking(init);
|
|
49
|
+
})();
|
|
50
|
+
//# sourceMappingURL=geolocation.js.map
|
|
@@ -1 +1,53 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
(() => {
|
|
3
|
+
// bin/live-reload.js
|
|
4
|
+
if (window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1") {
|
|
5
|
+
new EventSource(`${"http://localhost:3000"}/esbuild`).addEventListener(
|
|
6
|
+
"change",
|
|
7
|
+
() => location.reload()
|
|
8
|
+
);
|
|
9
|
+
} else {
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// src/others/hero-aniamtion.ts
|
|
13
|
+
document.addEventListener("DOMContentLoaded", () => {
|
|
14
|
+
const elements = Array.from(
|
|
15
|
+
document.querySelectorAll("[fynd-animate]")
|
|
16
|
+
);
|
|
17
|
+
if (elements.length === 0) return;
|
|
18
|
+
const gsap = window.gsap;
|
|
19
|
+
if (!gsap) {
|
|
20
|
+
console.warn("GSAP not found on window.");
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const prefersReducedMotion = window.matchMedia(
|
|
24
|
+
"(prefers-reduced-motion: reduce)"
|
|
25
|
+
).matches;
|
|
26
|
+
if (prefersReducedMotion) {
|
|
27
|
+
elements.forEach((el) => {
|
|
28
|
+
el.style.opacity = "1";
|
|
29
|
+
el.style.transform = "translateY(0)";
|
|
30
|
+
el.style.filter = "none";
|
|
31
|
+
});
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
gsap.set(elements, { y: -10, opacity: 0, filter: "blur(6px)" });
|
|
35
|
+
setTimeout(() => {
|
|
36
|
+
gsap.to(elements, {
|
|
37
|
+
y: 0,
|
|
38
|
+
opacity: 1,
|
|
39
|
+
filter: "blur(0px)",
|
|
40
|
+
duration: 0.8,
|
|
41
|
+
ease: "expo.out",
|
|
42
|
+
stagger: 0.1,
|
|
43
|
+
overwrite: "auto",
|
|
44
|
+
onComplete: () => {
|
|
45
|
+
elements.forEach((el) => {
|
|
46
|
+
el.style.filter = "none";
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}, 150);
|
|
51
|
+
});
|
|
52
|
+
})();
|
|
53
|
+
//# sourceMappingURL=hero-aniamtion.js.map
|
|
@@ -1 +1,70 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
(() => {
|
|
3
|
+
// bin/live-reload.js
|
|
4
|
+
if (window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1") {
|
|
5
|
+
new EventSource(`${"http://localhost:3000"}/esbuild`).addEventListener(
|
|
6
|
+
"change",
|
|
7
|
+
() => location.reload()
|
|
8
|
+
);
|
|
9
|
+
} else {
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// src/others/hero-india-animation-2.ts
|
|
13
|
+
var gsap = window.gsap;
|
|
14
|
+
var heroAnimatedText = [
|
|
15
|
+
"Online Selling",
|
|
16
|
+
"Omnichannel POS",
|
|
17
|
+
"Quick Commerce",
|
|
18
|
+
"Order Management",
|
|
19
|
+
"Supply Chain",
|
|
20
|
+
"Enriched Catalog",
|
|
21
|
+
"Photoshoot",
|
|
22
|
+
"Retail Insights"
|
|
23
|
+
];
|
|
24
|
+
function playChroma() {
|
|
25
|
+
const el = document.getElementById("chroma");
|
|
26
|
+
if (!el) return;
|
|
27
|
+
el.setAttribute("data-animate", "false");
|
|
28
|
+
void el.offsetWidth;
|
|
29
|
+
el.setAttribute("data-animate", "true");
|
|
30
|
+
}
|
|
31
|
+
function makeChromaHeading(text) {
|
|
32
|
+
const h1 = document.createElement("h1");
|
|
33
|
+
h1.id = "chroma";
|
|
34
|
+
h1.className = "chroma-text";
|
|
35
|
+
h1.setAttribute("data-animate", "false");
|
|
36
|
+
h1.textContent = text;
|
|
37
|
+
h1.style.opacity = "0";
|
|
38
|
+
return h1;
|
|
39
|
+
}
|
|
40
|
+
function startChromaLoop(texts = heroAnimatedText, { fadeDuration = 0.35, holdDuration = 3 } = {}) {
|
|
41
|
+
const slot = document.querySelector("[chroma-slot]");
|
|
42
|
+
if (!slot || !gsap) return null;
|
|
43
|
+
const slide = (text) => {
|
|
44
|
+
const el = makeChromaHeading(text);
|
|
45
|
+
const t = gsap.timeline({ defaults: { ease: "power1.out" } });
|
|
46
|
+
t.add(() => {
|
|
47
|
+
slot.appendChild(el);
|
|
48
|
+
});
|
|
49
|
+
t.to(el, {
|
|
50
|
+
duration: fadeDuration,
|
|
51
|
+
autoAlpha: 1,
|
|
52
|
+
// opacity + visibility
|
|
53
|
+
onStart: () => playChroma()
|
|
54
|
+
});
|
|
55
|
+
t.to(el, { duration: holdDuration, autoAlpha: 1 });
|
|
56
|
+
t.to(el, { duration: fadeDuration, autoAlpha: 0 });
|
|
57
|
+
t.add(() => {
|
|
58
|
+
el.remove();
|
|
59
|
+
});
|
|
60
|
+
return t;
|
|
61
|
+
};
|
|
62
|
+
const master = gsap.timeline({ repeat: -1 });
|
|
63
|
+
texts.forEach((txt) => master.add(slide(txt)));
|
|
64
|
+
return master;
|
|
65
|
+
}
|
|
66
|
+
document.addEventListener("DOMContentLoaded", () => {
|
|
67
|
+
startChromaLoop();
|
|
68
|
+
});
|
|
69
|
+
})();
|
|
70
|
+
//# sourceMappingURL=hero-india-animation-2.js.map
|
|
@@ -1 +1,93 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
(() => {
|
|
3
|
+
// bin/live-reload.js
|
|
4
|
+
if (window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1") {
|
|
5
|
+
new EventSource(`${"http://localhost:3000"}/esbuild`).addEventListener(
|
|
6
|
+
"change",
|
|
7
|
+
() => location.reload()
|
|
8
|
+
);
|
|
9
|
+
} else {
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// src/others/hero-india-animation.ts
|
|
13
|
+
function startHeroTextRevealWithSplit(phrases, opts = {}) {
|
|
14
|
+
const {
|
|
15
|
+
selector = 'h1[hero-text-reveal="india"]',
|
|
16
|
+
delayMs = 2500,
|
|
17
|
+
perCharStagger = 0.035,
|
|
18
|
+
revealDuration = 0.6,
|
|
19
|
+
holdDuration = 0.9,
|
|
20
|
+
outDuration = 0.35,
|
|
21
|
+
yDistance = 2
|
|
22
|
+
} = opts;
|
|
23
|
+
const el = document.querySelector(selector);
|
|
24
|
+
if (!el) return;
|
|
25
|
+
const gsap = window.gsap;
|
|
26
|
+
const SplitText = window.SplitText || gsap && gsap.SplitText;
|
|
27
|
+
if (!gsap || !SplitText) return;
|
|
28
|
+
if (gsap.registerPlugin) gsap.registerPlugin(SplitText);
|
|
29
|
+
if (!Array.isArray(phrases) || phrases.length === 0) return;
|
|
30
|
+
const prefersReducedMotion = window.matchMedia?.("(prefers-reduced-motion: reduce)").matches ?? false;
|
|
31
|
+
let index = 0;
|
|
32
|
+
el.textContent = phrases[index];
|
|
33
|
+
const triggerShimmer = () => {
|
|
34
|
+
const shimmerEl = document.getElementById("shimmerText");
|
|
35
|
+
if (!shimmerEl) return;
|
|
36
|
+
shimmerEl.setAttribute("data-shimmer", "false");
|
|
37
|
+
void shimmerEl.offsetWidth;
|
|
38
|
+
shimmerEl.setAttribute("data-shimmer", "true");
|
|
39
|
+
};
|
|
40
|
+
const animatePhrase = (text, onComplete) => {
|
|
41
|
+
el.textContent = text;
|
|
42
|
+
const split = new SplitText(el, { type: "chars" });
|
|
43
|
+
const chars = split.chars || [];
|
|
44
|
+
gsap.set(chars, { opacity: 0, y: yDistance });
|
|
45
|
+
const tl = gsap.timeline({
|
|
46
|
+
defaults: { ease: "power2.out" },
|
|
47
|
+
onComplete: () => {
|
|
48
|
+
split.revert();
|
|
49
|
+
onComplete();
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
tl.to(chars, {
|
|
53
|
+
onStart: triggerShimmer,
|
|
54
|
+
opacity: 1,
|
|
55
|
+
y: 0,
|
|
56
|
+
duration: revealDuration,
|
|
57
|
+
stagger: perCharStagger
|
|
58
|
+
}).to({}, { duration: holdDuration }).to(chars, {
|
|
59
|
+
opacity: 0,
|
|
60
|
+
duration: outDuration,
|
|
61
|
+
stagger: perCharStagger * 0.6,
|
|
62
|
+
ease: "power1.in"
|
|
63
|
+
});
|
|
64
|
+
return tl;
|
|
65
|
+
};
|
|
66
|
+
if (prefersReducedMotion) {
|
|
67
|
+
const cycle = () => {
|
|
68
|
+
index = (index + 1) % phrases.length;
|
|
69
|
+
el.textContent = phrases[index];
|
|
70
|
+
setTimeout(cycle, 2e3);
|
|
71
|
+
};
|
|
72
|
+
setTimeout(cycle, delayMs);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const playLoop = () => {
|
|
76
|
+
index = (index + 1) % phrases.length;
|
|
77
|
+
animatePhrase(phrases[index], playLoop);
|
|
78
|
+
};
|
|
79
|
+
setTimeout(playLoop, delayMs);
|
|
80
|
+
}
|
|
81
|
+
var heroAnimatedText = [
|
|
82
|
+
"selling online",
|
|
83
|
+
"self-checkout in store",
|
|
84
|
+
"product photoshoot",
|
|
85
|
+
"multi-channel catalog",
|
|
86
|
+
"hyperlocal delivery",
|
|
87
|
+
"agentic support"
|
|
88
|
+
];
|
|
89
|
+
document.addEventListener("DOMContentLoaded", () => {
|
|
90
|
+
startHeroTextRevealWithSplit(heroAnimatedText);
|
|
91
|
+
});
|
|
92
|
+
})();
|
|
93
|
+
//# sourceMappingURL=hero-india-animation.js.map
|