@fynd-design-engineering/fynd-one-v2 3.4.0 → 3.4.2
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.map +7 -0
- package/dist/accordians/index.js.map +7 -0
- package/dist/cms-listing/index.js.map +7 -0
- package/dist/filters/clear-search.js.map +7 -0
- package/dist/filters/konnect.js.map +7 -0
- package/dist/filters/show-count.js.map +7 -0
- package/dist/form/country-dropdown.css +1 -0
- package/dist/form/country-dropdown.css.map +7 -0
- package/dist/form/cs-gated-redirection.js.map +7 -0
- package/dist/form/download-file.js.map +7 -0
- package/dist/form/validation.css.map +7 -0
- package/dist/form/validation.js.map +7 -0
- package/dist/global/anchor-scroll.js.map +7 -0
- package/dist/global/console-links.js.map +7 -0
- package/dist/global/contact-popup.js.map +7 -0
- package/dist/global/css/in-page-embed.css +1 -1
- package/dist/global/css/in-page-embed.css.map +7 -0
- package/dist/global/css/in-project-settings.css.map +7 -0
- package/dist/global/custom-bg-video.js.map +7 -0
- package/dist/global/loader.js.map +7 -0
- package/dist/global/media-card.js.map +7 -0
- package/dist/global/miscellaneous.js.map +7 -0
- package/dist/global/number-count.js.map +7 -0
- package/dist/global/popup-video.js.map +7 -0
- package/dist/global/progressive-scroll.js.map +7 -0
- package/dist/global/style.css.map +7 -0
- package/dist/global/video-card.js.map +7 -0
- package/dist/hacktimus/2025.js.map +7 -0
- package/dist/hacktimus/styles.css.map +7 -0
- package/dist/home/index.js.map +7 -0
- package/dist/marquee/index.js.map +7 -0
- package/dist/marquee/marquee-swiper.js.map +7 -0
- package/dist/navigation/announcement/index.js.map +7 -0
- package/dist/navigation/context-menu/index.js.map +7 -0
- package/dist/navigation/desktop/index.js.map +7 -0
- package/dist/navigation/initialization.js.map +7 -0
- package/dist/navigation/main.js.map +7 -0
- package/dist/navigation/mobile/index.js.map +7 -0
- package/dist/navigation/scroll/index.js.map +7 -0
- package/dist/navigation/secondary-navigation/index.js.map +7 -0
- package/dist/navigation/style.css.map +7 -0
- package/dist/navigation/temp.css.map +7 -0
- package/dist/navigation/theme.css.map +7 -0
- package/dist/others/geolocation.js.map +7 -0
- package/dist/others/hero-aniamtion.js.map +7 -0
- package/dist/others/hero-india-animation-2.js.map +7 -0
- package/dist/others/hero-india-animation.js.map +7 -0
- package/dist/posthog-and-ga/attributes.js.map +7 -0
- package/dist/posthog-and-ga/main.js.map +7 -0
- package/dist/progressive-scroll/index.js.map +7 -0
- package/dist/quick-fix/reload.js.map +7 -0
- package/dist/seo/schema.js.map +7 -0
- package/dist/slider/freescroll.js.map +7 -0
- package/dist/test/sample.js.map +7 -0
- package/dist/testimonials/index.js.map +7 -0
- package/dist/timeline/index.js.map +7 -0
- package/dist/timeline/style.css.map +7 -0
- package/dist/tracking/custom-id.js.map +7 -0
- package/dist/tracking/fill-form-fields.js.map +7 -0
- package/dist/tracking/form-tracker.js.map +7 -0
- package/dist/tracking/page-categories.js.map +7 -0
- package/dist/tracking/user-journey.js.map +7 -0
- package/dist/tracking/utm-links.js.map +7 -0
- package/dist/utils/sample.js.map +7 -0
- package/dist/validations/localhost.js.map +7 -0
- package/package.json +1 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../bin/live-reload.js", "../../src/global/anchor-scroll.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", "// TypeScript Scroll Navigation\ninterface ScrollNavigationOptions {\n triggerAttribute?: string;\n targetAttribute?: string;\n scrollDelay?: number;\n }\n \n class ScrollNavigation {\n private readonly triggerAttribute: string;\n private readonly targetAttribute: string;\n private readonly scrollDelay: number;\n \n constructor(options: ScrollNavigationOptions = {}) {\n this.triggerAttribute = options.triggerAttribute || 'fynd-scroll-trigger';\n this.targetAttribute = options.targetAttribute || 'fynd-scroll-target';\n this.scrollDelay = options.scrollDelay || 500;\n \n this.init();\n }\n \n private init(): void {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', () => {\n this.setupTriggers();\n this.handlePageLoad();\n this.handleBrowserNavigation();\n });\n } else {\n this.setupTriggers();\n this.handlePageLoad();\n this.handleBrowserNavigation();\n }\n }\n \n private scrollToSection(sectionValue: string): void {\n const target = document.querySelector(`[${this.targetAttribute}=\"${sectionValue}\"]`) as HTMLElement;\n \n if (target) {\n this.updateURL(sectionValue);\n \n // Update active states for all triggers pointing to this section\n this.updateActiveStatesBySection(sectionValue);\n \n target.scrollIntoView({\n behavior: 'auto',\n block: 'start'\n });\n } else {\n console.warn(`ScrollNavigation: Target element with ${this.targetAttribute}=\"${sectionValue}\" not found`);\n }\n }\n \n private updateURL(sectionValue: string): void {\n try {\n const url = new URL(window.location.href);\n url.searchParams.set('section', sectionValue);\n window.history.pushState({ section: sectionValue }, '', url.toString());\n } catch (error) {\n console.error('ScrollNavigation: Failed to update URL', error);\n }\n }\n \n private handlePageLoad(): void {\n const urlParams = new URLSearchParams(window.location.search);\n const sectionParam = urlParams.get('section');\n \n if (sectionParam) {\n setTimeout(() => {\n this.scrollToSection(sectionParam);\n }, this.scrollDelay);\n }\n }\n \n private setupTriggers(): void {\n // Remove existing event listeners first\n document.removeEventListener('click', this.handleTriggerClick);\n \n // Initialize all triggers with inactive state\n this.initializeActiveStates();\n \n // Add single delegated event listener\n document.addEventListener('click', this.handleTriggerClick);\n }\n\n private initializeActiveStates(): void {\n const triggers = document.querySelectorAll(`[${this.triggerAttribute}]`) as NodeListOf<HTMLElement>;\n triggers.forEach((trigger: HTMLElement) => {\n trigger.setAttribute('fynd-anchor-active', 'false');\n });\n }\n\n private updateActiveStatesBySection(sectionValue: string): void {\n // Get all triggers\n const allTriggers = document.querySelectorAll(`[${this.triggerAttribute}]`) as NodeListOf<HTMLElement>;\n \n allTriggers.forEach((trigger: HTMLElement) => {\n const triggerSectionValue = trigger.getAttribute(this.triggerAttribute);\n \n // Set active state based on whether this trigger points to the target section\n if (triggerSectionValue === sectionValue) {\n trigger.setAttribute('fynd-anchor-active', 'true');\n } else {\n trigger.setAttribute('fynd-anchor-active', 'false');\n }\n });\n }\n\n private updateActiveStates(activeTrigger: HTMLElement): void {\n const activeSectionValue = activeTrigger.getAttribute(this.triggerAttribute);\n \n if (!activeSectionValue) return;\n \n this.updateActiveStatesBySection(activeSectionValue);\n }\n\n private handleTriggerClick = (event: Event): void => {\n const target = event.target as HTMLElement;\n const trigger = target.closest(`[${this.triggerAttribute}]`) as HTMLElement;\n \n if (trigger) {\n event.preventDefault();\n \n // Update active states\n this.updateActiveStates(trigger);\n \n const sectionValue = trigger.getAttribute(this.triggerAttribute);\n \n if (sectionValue) {\n this.scrollToSection(sectionValue);\n }\n }\n }\n \n private handleBrowserNavigation(): void {\n window.addEventListener('popstate', (event: PopStateEvent) => {\n const urlParams = new URLSearchParams(window.location.search);\n const sectionParam = urlParams.get('section');\n \n if (sectionParam) {\n const target = document.querySelector(`[${this.targetAttribute}=\"${sectionParam}\"]`) as HTMLElement;\n if (target) {\n // Update active states when navigating via browser back/forward\n this.updateActiveStatesBySection(sectionParam);\n \n target.scrollIntoView({\n behavior: 'auto',\n block: 'start'\n });\n }\n }\n });\n }\n \n // Public method to programmatically scroll to section\n public goToSection(sectionValue: string): void {\n this.scrollToSection(sectionValue);\n }\n \n // Public method to get current section from URL\n public getCurrentSection(): string | null {\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get('section');\n }\n \n // Public method to get all available sections\n public getAvailableSections(): string[] {\n const targets = document.querySelectorAll(`[${this.targetAttribute}]`) as NodeListOf<HTMLElement>;\n const sections: string[] = [];\n \n targets.forEach((target: HTMLElement) => {\n const sectionValue = target.getAttribute(this.targetAttribute);\n if (sectionValue) {\n sections.push(sectionValue);\n }\n });\n \n return sections;\n }\n\n // Public method to reinitialize triggers (useful when DOM changes)\n public reinitializeTriggers(): void {\n this.setupTriggers();\n }\n\n // Public method for comprehensive reinitialization with options\n public reinitialize(options?: {\n triggers?: boolean;\n handlePageLoad?: boolean;\n browserNavigation?: boolean;\n }): void {\n const config = {\n triggers: true,\n handlePageLoad: false,\n browserNavigation: false,\n ...options\n };\n\n if (config.triggers) {\n this.setupTriggers();\n }\n\n if (config.handlePageLoad) {\n this.handlePageLoad();\n }\n\n if (config.browserNavigation) {\n this.handleBrowserNavigation();\n }\n }\n\n // Public method for complete reinitialization (equivalent to creating new instance)\n public fullReinitialize(): void {\n this.setupTriggers();\n this.handlePageLoad();\n this.handleBrowserNavigation();\n }\n }\n \n // Initialize with default options\n const scrollNavigation = new ScrollNavigation();\n \n // Alternative initialization with custom options\n // const scrollNavigation = new ScrollNavigation({\n // triggerAttribute: 'my-scroll-trigger',\n // targetAttribute: 'my-scroll-target',\n // scrollDelay: 200\n // });\n \n // Export for module usage\n export { ScrollNavigation };\n \n // Also make it available globally for non-module usage\n declare global {\n interface Window {\n ScrollNavigation: typeof ScrollNavigation;\n }\n }\n \n if (typeof window !== 'undefined') {\n window.ScrollNavigation = ScrollNavigation;\n }"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../bin/live-reload.js", "../../src/global/console-links.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", "interface Solution {\n name: string;\n slug: string;\n id: string;\n}\n\nconst solutions: Solution[] = [\n {\n name: \"Fynd PIM\",\n slug: \"/solutions/ai-pim\",\n id: \"bc50976c-a18e-467f-8e74-8bc7e6a1f247\",\n },\n {\n name: \"Catalog Cloud\",\n slug: \"/solutions/catalog-cloud\",\n id: \"bc051955-3ec9-4164-9a2f-097fa2d92279\",\n },\n {\n name: \"Fynd Platform\",\n slug: \"/solutions/storefront\",\n id: \"999c6e3a-5baa-4b1c-85b8-e57e67464069\",\n },\n {\n name: \"Fynd Engage\",\n slug: \"/solutions/engage\",\n id: \"c14d07f5-138a-4d9d-95d2-426dc0564f68\",\n },\n {\n name: \"Boltic\",\n slug: \"/solutions/workflow-automation\",\n id: \"40ec7873-ce38-4f0a-923b-1ebe96887d78\",\n },\n {\n name: \"TMS\",\n slug: \"/solutions/transport-management-system\",\n id: \"6fb171d2-612e-4919-b85b-187077171d35\",\n },\n {\n name: \"Copilot\",\n slug: \"/solutions/ai-agent-builder\",\n id: \"5f1dbe12-4a95-4d18-88f6-120ccead764d\",\n },\n];\n\nconst currentPath = window.location.pathname;\nconst currentSolution = solutions.find((sol) => sol.slug === currentPath);\n\nif (currentSolution) {\n const updateUrl = (href: string): string => {\n try {\n const url = new URL(href, window.location.origin);\n if (url.hostname.includes(\"console.fynd.com\")) {\n url.searchParams.set(\"client_id\", currentSolution.id);\n return url.toString();\n }\n } catch {\n // skip invalid URLs\n }\n return href;\n };\n\n // Update <a> tags\n const links = document.querySelectorAll<HTMLAnchorElement>(\n 'a[href*=\"console.fynd.com\"], a[href^=\"https://console.fynd.com/\"], a[href=\"https://console.fynd.com\"]'\n );\n\n links.forEach((link) => {\n if (link.getAttribute(\"update-console\") === \"false\") return;\n link.href = updateUrl(link.href);\n });\n\n // Update <button> elements\n const buttons = document.querySelectorAll<HTMLButtonElement>(\"button\");\n buttons.forEach((button) => {\n if (button.getAttribute(\"update-console\") === \"false\") return;\n\n const dataHref = button.getAttribute(\"data-href\");\n const onClick = button.getAttribute(\"onclick\");\n\n if (dataHref && dataHref.includes(\"console.fynd.com\")) {\n button.setAttribute(\"data-href\", updateUrl(dataHref));\n }\n\n if (onClick && onClick.includes(\"console.fynd.com\")) {\n const match = onClick.match(/https:\\/\\/console\\.fynd\\.com[^\\s'\"]*/);\n if (match) {\n const newOnClick = onClick.replace(match[0], updateUrl(match[0]));\n button.setAttribute(\"onclick\", newOnClick);\n }\n }\n });\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;;;ACJA,MAAM,YAAwB;AAAA,IAC5B;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,IAAI;AAAA,IACN;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,IAAI;AAAA,IACN;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,IAAI;AAAA,IACN;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,IAAI;AAAA,IACN;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,IAAI;AAAA,IACN;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,IAAI;AAAA,IACN;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,IAAI;AAAA,IACN;AAAA,EACF;AAEA,MAAM,cAAc,OAAO,SAAS;AACpC,MAAM,kBAAkB,UAAU,KAAK,CAAC,QAAQ,IAAI,SAAS,WAAW;AAExE,MAAI,iBAAiB;AACnB,UAAM,YAAY,CAAC,SAAyB;AAC1C,UAAI;AACF,cAAM,MAAM,IAAI,IAAI,MAAM,OAAO,SAAS,MAAM;AAChD,YAAI,IAAI,SAAS,SAAS,kBAAkB,GAAG;AAC7C,cAAI,aAAa,IAAI,aAAa,gBAAgB,EAAE;AACpD,iBAAO,IAAI,SAAS;AAAA,QACtB;AAAA,MACF,QAAQ;AAAA,MAER;AACA,aAAO;AAAA,IACT;AAGA,UAAM,QAAQ,SAAS;AAAA,MACrB;AAAA,IACF;AAEA,UAAM,QAAQ,CAAC,SAAS;AACtB,UAAI,KAAK,aAAa,gBAAgB,MAAM,QAAS;AACrD,WAAK,OAAO,UAAU,KAAK,IAAI;AAAA,IACjC,CAAC;AAGD,UAAM,UAAU,SAAS,iBAAoC,QAAQ;AACrE,YAAQ,QAAQ,CAAC,WAAW;AAC1B,UAAI,OAAO,aAAa,gBAAgB,MAAM,QAAS;AAEvD,YAAM,WAAW,OAAO,aAAa,WAAW;AAChD,YAAM,UAAU,OAAO,aAAa,SAAS;AAE7C,UAAI,YAAY,SAAS,SAAS,kBAAkB,GAAG;AACrD,eAAO,aAAa,aAAa,UAAU,QAAQ,CAAC;AAAA,MACtD;AAEA,UAAI,WAAW,QAAQ,SAAS,kBAAkB,GAAG;AACnD,cAAM,QAAQ,QAAQ,MAAM,sCAAsC;AAClE,YAAI,OAAO;AACT,gBAAM,aAAa,QAAQ,QAAQ,MAAM,CAAC,GAAG,UAAU,MAAM,CAAC,CAAC,CAAC;AAChE,iBAAO,aAAa,WAAW,UAAU;AAAA,QAC3C;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../bin/live-reload.js", "../../src/global/contact-popup.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 wrapper = document.querySelector<HTMLElement>(\n '[data-popup-contact=\"wrapper\"]'\n )!;\n const content = document.querySelector<HTMLElement>(\n '[data-popup-contact=\"content\"]'\n )!;\n const overlay = document.querySelector<HTMLElement>(\n '[data-popup-contact=\"overlay\"]'\n )!;\n const openTriggers = document.querySelectorAll<HTMLElement>(\n '[data-popup-contact-trigger=\"open\"]'\n );\n const closeTriggers = document.querySelectorAll<HTMLElement>(\n '[data-popup-contact-trigger=\"close\"]'\n );\n\n // initial\n wrapper.style.display = \"none\";\n overlay.style.opacity = \"0\";\n content.style.opacity = \"0\";\n content.style.transform = \"scale(0.95)\";\n\n // add a dynamic style tag for .iti.iti--container when popup is open\n const popupStyle = document.createElement(\"style\");\n popupStyle.id = \"contact-popup-style\";\n popupStyle.textContent = `\n .iti.iti--container {\n z-index: 100000000000 !important;\n }\n @media (max-width: 768px) {\n .iti.iti--container {\n width: 320px !important;\n }\n }\n `;\n\n function lockScroll() {\n document.body.style.overflow = \"hidden\";\n }\n\n function unlockScroll() {\n document.body.style.overflow = \"\";\n }\n\n function addPopupStyle() {\n if (!document.getElementById(\"contact-popup-style\")) {\n document.head.appendChild(popupStyle);\n }\n }\n\n function removePopupStyle() {\n const existing = document.getElementById(\"contact-popup-style\");\n if (existing) existing.remove();\n }\n\n function openPopup() {\n wrapper.style.display = \"flex\";\n lockScroll();\n addPopupStyle();\n\n requestAnimationFrame(() => {\n overlay.style.transition = \"opacity 0.25s ease\";\n content.style.transition = \"opacity 0.25s ease, transform 0.25s ease\";\n overlay.style.opacity = \"1\";\n content.style.opacity = \"1\";\n content.style.transform = \"scale(1)\";\n });\n }\n\n function closePopup() {\n overlay.style.opacity = \"0\";\n content.style.opacity = \"0\";\n content.style.transform = \"scale(0.95)\";\n setTimeout(() => {\n wrapper.style.display = \"none\";\n unlockScroll();\n removePopupStyle();\n }, 250);\n }\n\n openTriggers.forEach((el) => el.addEventListener(\"click\", openPopup));\n closeTriggers.forEach((el) => el.addEventListener(\"click\", closePopup));\n overlay.addEventListener(\"click\", (e) => {\n if (e.target === overlay) closePopup();\n });\n\n (window as any).openContactPopup = openPopup;\n (window as any).closeContactPopup = closePopup;\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;AAClD,UAAM,UAAU,SAAS;AAAA,MACvB;AAAA,IACF;AACA,UAAM,UAAU,SAAS;AAAA,MACvB;AAAA,IACF;AACA,UAAM,UAAU,SAAS;AAAA,MACvB;AAAA,IACF;AACA,UAAM,eAAe,SAAS;AAAA,MAC5B;AAAA,IACF;AACA,UAAM,gBAAgB,SAAS;AAAA,MAC7B;AAAA,IACF;AAGA,YAAQ,MAAM,UAAU;AACxB,YAAQ,MAAM,UAAU;AACxB,YAAQ,MAAM,UAAU;AACxB,YAAQ,MAAM,YAAY;AAG1B,UAAM,aAAa,SAAS,cAAc,OAAO;AACjD,eAAW,KAAK;AAChB,eAAW,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWzB,aAAS,aAAa;AACpB,eAAS,KAAK,MAAM,WAAW;AAAA,IACjC;AAEA,aAAS,eAAe;AACtB,eAAS,KAAK,MAAM,WAAW;AAAA,IACjC;AAEA,aAAS,gBAAgB;AACvB,UAAI,CAAC,SAAS,eAAe,qBAAqB,GAAG;AACnD,iBAAS,KAAK,YAAY,UAAU;AAAA,MACtC;AAAA,IACF;AAEA,aAAS,mBAAmB;AAC1B,YAAM,WAAW,SAAS,eAAe,qBAAqB;AAC9D,UAAI,SAAU,UAAS,OAAO;AAAA,IAChC;AAEA,aAAS,YAAY;AACnB,cAAQ,MAAM,UAAU;AACxB,iBAAW;AACX,oBAAc;AAEd,4BAAsB,MAAM;AAC1B,gBAAQ,MAAM,aAAa;AAC3B,gBAAQ,MAAM,aAAa;AAC3B,gBAAQ,MAAM,UAAU;AACxB,gBAAQ,MAAM,UAAU;AACxB,gBAAQ,MAAM,YAAY;AAAA,MAC5B,CAAC;AAAA,IACH;AAEA,aAAS,aAAa;AACpB,cAAQ,MAAM,UAAU;AACxB,cAAQ,MAAM,UAAU;AACxB,cAAQ,MAAM,YAAY;AAC1B,iBAAW,MAAM;AACf,gBAAQ,MAAM,UAAU;AACxB,qBAAa;AACb,yBAAiB;AAAA,MACnB,GAAG,GAAG;AAAA,IACR;AAEA,iBAAa,QAAQ,CAAC,OAAO,GAAG,iBAAiB,SAAS,SAAS,CAAC;AACpE,kBAAc,QAAQ,CAAC,OAAO,GAAG,iBAAiB,SAAS,UAAU,CAAC;AACtE,YAAQ,iBAAiB,SAAS,CAAC,MAAM;AACvC,UAAI,EAAE,WAAW,QAAS,YAAW;AAAA,IACvC,CAAC;AAED,IAAC,OAAe,mBAAmB;AACnC,IAAC,OAAe,oBAAoB;AAAA,EACtC,CAAC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--Primary: "Fynd Sans", sans-serif;--Secondary: "Inter Display", sans-serif}html,body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-smooth:always}.w-background-video{position:absolute;inset:0;z-index:0}.video{width:100%;height:auto;object-fit:cover;display:block}[data-padding=big]{padding-top:9rem;padding-bottom:9rem}[data-padding=medium]{padding-top:5rem;padding-bottom:5rem}[data-padding=small]{padding-top:4rem;padding-bottom:4rem}[data-text-style=heading-xxl]{font-family:var(--Primary);font-size:4.5rem;font-weight:500;line-height:110%;letter-spacing:-.04em}[data-text-style=heading-xl]{font-family:var(--Primary);font-size:3.5rem;font-weight:400;line-height:110%;letter-spacing:-.04em}[data-text-style=heading-l]{font-family:var(--Primary);font-size:2.5rem;font-weight:400;line-height:110%;letter-spacing:-.03em}[data-text-style=heading-m]{font-family:var(--Primary);font-size:2rem;font-weight:400;line-height:120%;letter-spacing:-.02em}[data-text-style=heading-s]{font-family:var(--Secondary);font-size:1.625rem;font-weight:500;line-height:130%;letter-spacing:-.02em}[data-text-style=heading-xs]{font-family:var(--Secondary);font-size:1.25rem;font-weight:400;line-height:140%}[data-text-style=font-weight-500]{font-weight:500}@media (max-width: 1023px){[data-text-style=heading-xxl]{font-size:3.5rem}[data-text-style=heading-xl]{font-size:2.5rem}[data-text-style=heading-l]{font-size:2rem}[data-text-style=heading-m]{font-size:1.5rem}[data-text-style=heading-s]{font-size:1.25rem}}@media (max-width: 767px){[data-text-style=heading-xxl]{font-size:2.5rem}[data-text-style=heading-xl]{font-size:2rem}[data-text-style=heading-xs]{font-size:1.2rem}[data-text-style=heading-l]{font-size:1.5rem}[data-text-style=heading-m]{font-size:1.25rem}[data-text-style=heading-s]{font-size:1.125rem}[data-padding=big],[data-padding=medium],[data-padding=small]{padding-top:2.5rem;padding-bottom:2.5rem}}[data-text-style=body-xs-regular]{font-size:.75rem;font-weight:400;line-height:130%}[data-text-style=body-xs-medium]{font-size:.75rem;font-weight:500;line-height:130%}[data-text-style=body-xs-semibold]{font-size:.75rem;font-weight:600;line-height:130%}[data-text-style=body-s-regular]{font-size:.875rem;font-weight:400;line-height:140%}[data-text-style=body-s-medium]{font-size:.875rem;font-weight:500;line-height:140%}[data-text-style=body-m-regular]{font-size:1rem;font-weight:400;line-height:155%}[data-text-style=body-m-medium]{font-size:1rem;font-weight:500;line-height:135%}[data-text-style=body-l-regular]{font-size:1.125rem;font-weight:400;line-height:145%}[data-text-style=body-l-medium]{font-size:1.125rem;font-weight:500;line-height:150%}[data-text-style=body-xl-regular]{font-size:1.25rem;font-weight:400;line-height:140%}[data-text-style=body-xl-medium]{font-size:1.25rem;font-weight:500;line-height:140%}@media (max-width: 991px){[data-text-style=body-xs-regular],[data-text-style=body-xs-medium],[data-text-style=body-xs-semibold]{font-size:.6875rem}[data-text-style=body-s-regular],[data-text-style=body-s-medium]{font-size:.8125rem}[data-text-style=body-m-regular],[data-text-style=body-m-medium]{font-size:.9375rem}[data-text-style=body-l-regular],[data-text-style=body-l-medium]{font-size:1rem}[data-text-style=body-xl-regular],[data-text-style=body-xl-medium]{font-size:1.125rem}}@media (max-width: 767px){[data-text-style=body-xs-regular],[data-text-style=body-xs-medium],[data-text-style=body-xs-semibold]{font-size:.75rem}[data-text-style=body-s-regular],[data-text-style=body-m-regular]{font-size:.875rem}[data-text-style=body-s-medium],[data-text-style=body-m-medium],[data-text-style=body-l-regular],[data-text-style=body-l-medium],[data-text-style=body-xl-regular]{font-size:1rem}[data-text-style=body-xl-medium]{font-size:1.2rem}}[data-text-color=title]{color:#101319}[data-text-color=subtext]{color:#5b5c5d}[data-text-color=title-inverse]{color:#fff}[data-text-color=subtext-inverse]{color:#a0a1a2}[data-icon-color=darkest]{color:#0e0e0e}[data-icon-color=dark]{color:#797a7c}[data-icon-color=medium]{color:#f2f2f2}[data-icon-color=darkest]{color:#fff}[data-spacing=tiny]{height:.25rem}[data-spacing=xxsmall]{height:.5rem}[data-spacing=xsmall]{height:1rem}[data-spacing=small]{height:1.5rem}[data-spacing=medium]{height:2.5rem}[data-spacing=large]{height:3.5rem}[data-spacing=xlarge]{height:4rem}[data-spacing=xxlarge]{height:5rem}[data-spacing=huge]{height:6rem}[data-spacing=xhuge]{height:7rem}[data-spacing=xxhuge]{height:8rem}[data-badge-bg=blue]{background:#5c98f7}[data-badge-bg=peach]{background:#eeb384}[data-badge-bg=green]{background:#80d99f}[data-badge-bg=yellow]{background:#fdf6db}[data-badge-bg=lavender]{background:#e382ff}[data-badge-bg=violet]{background:#8d61f6}[data-badge-bg=red]{background:#fddbdb}[data-badge-bg=gray]{background:#f8f8f9}[data-badge-bg=transparent]{background:transparent}[data-badge-bg=teal]{background:#89d0e0}[data-bg=blue]{background:#d4e5ff}[data-bg=peach]{background:#fceadb}[data-bg=green]{background:#c9ebd7}[data-bg=yellow]{background:#fdf6db}[data-bg=lavender]{background:#ebddef}[data-bg=red]{background:#fddbdb}[data-bg=gray]{background:#f8f8f9}[data-bg=dark],.card_badge[data-bg=dark]{background:#0e0e0e;color:#fff}[data-bg=transparent]{background:transparent}[data-bg=tea-green]{background:#e5f2c2}@media (min-width: 1280px){[data-glow=star]:before{left:30vw;height:1370px}}@media (min-width: 768px){.hero--right-image-wrap[data-bg]{background:transparent}[data-glow=star]:before{content:"";position:absolute;z-index:1;background-image:url(https://cdn.prod.website-files.com/67a9c8e5f2c74ac8c2c9b88b/67b44aabaca043782cd38488_background-shimmer.gif);background-size:contain;background-repeat:no-repeat;opacity:.5;mix-blend-mode:screen;height:1200px;width:200vw;left:10vw;top:-50%}[data-glow=star]:after{content:"";z-index:0;opacity:.5;mix-blend-mode:multiply;object-fit:cover;background-position:0 0;background-repeat:repeat;background-size:contain;width:100%;height:100%;position:absolute;inset:0%}}@media (max-width: 767px){.section_hero-50-50[data-bg]{background:transparent}[data-glow=star] .hero--right-image-wrap:before{content:"";position:absolute;inset:-35% 0% 0% auto;z-index:1;background-image:url(https://cdn.prod.website-files.com/67a9c8e5f2c74ac8c2c9b88b/67b44aabaca043782cd38488_background-shimmer.gif);background-size:cover;background-position:-120px 0;opacity:.5;mix-blend-mode:screen;height:165%;width:100%}[data-glow=star] .hero--right-image-wrap:after{content:"";z-index:0;opacity:.5;mix-blend-mode:multiply;object-fit:cover;background-image:url(https://cdn.prod.website-files.com/67a9c8e5f2c74ac8c2c9b88b/67e014ba0be011b4a7adb7a3_grain-hero.avif);background-position:0 0;background-repeat:repeat;background-size:contain;width:100%;height:100%;position:absolute;inset:0%}.section_hero-50-50[data-bg-mobile=True]{background:#0e0e0e}}.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}[data-truncate=yes]{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}[style-line-clamp]{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}[style-line-clamp="1"]{-webkit-line-clamp:1}[style-line-clamp="2"]{-webkit-line-clamp:2}[style-line-clamp="3"]{-webkit-line-clamp:3}[style-line-clamp="4"]{-webkit-line-clamp:4}[data-color="#0A4020"]{color:#0a4020}[data-color="#043B77"]{color:#043b77}[data-color="#FF0000"]{color:red}[data-color="#48310F"]{color:#48310f}[data-color="#F8F8F9"]{color:#f8f8f9}[data-color=white]{color:#fff}[data-color=subtext-white]{color:#a0a1a2}[data-color=green-dark]{color:#427c5a}[data-color=green-light]{color:#b2e0c3}[data-height="25rem"]{height:25rem}[data-height="26rem"]{height:26.06rem}[data-height="31rem"]{height:31.25rem}[data-height="39rem"]{height:39.125rem}[data-bg-color]{background-color:#f8f8f9}@media screen and (max-width: 767px){*[data-height]{height:15.62rem}div div.bento-card_text{font-size:1rem}div p.bento-card_subtext{font-size:.875rem}}[fynd-sticky-bg-theme=blue-1]{background:url(https://cdn.prod.website-files.com/67a9c8e5f2c74ac8c2c9b88b/67e1b4072adad40eb22e201e_97d7b26441d6a95f90db1952a9d3e122_bg-theme-1.avif) no-repeat;background-size:cover}.w-richtext figure.w-richtext-align-fullwidth>figcaption{font-size:14px}.blog_rich-text strong,.metric-rich-text strong{font-weight:500}#fc_frame{visibility:hidden;display:none}[data-bg=white]{background:#fff}a.blog-details.w-inline-block{display:flex}.bento-card:hover .btn.global_card_btn{opacity:1}@media (width <=767px){[data-text-style=body-l-regular]{line-height:145%}[data-text-style=heading-xl]{line-height:115%}[data-text-style=heading-l]{line-height:135%}[data-text-style=body-xl-regular]{font-size:1rem}[data-text-style=heading-s]{font-size:1.125rem;line-height:140%}}[card-bg=dark]{background:#1a1a1a}[circle-bg=dark]{background:#333}[circle-bg=light]{background:#1a1a1a}[bottom-line-border=dark]{border-color:#333}[bottom-line-border=light]{border-color:#1a1a1a}.accordian-richtext[data-text-color]:not([data-text-color=""])>*{color:inherit}@media (max-width: 767px){[data-glow=star] .hero--right-image-wrap:before{top:0%;height:100%}}.iti{position:relative;display:inline-block;width:100%}h1 a,h2 a,h3 a,h6 a{height:var(--sizes--40);padding:0px var(--_spacing---24);grid-column-gap:var(--_spacing---8);grid-row-gap:var(--_spacing---8);border-radius:var(--_border-radius---radius-32);color:var(--_color-palette---button--primary--button-text-default)!important;font-size:var(--sizes--16);line-height:var(--_typography---line-height--160);font-weight:var(--_typography---font-weight--medium);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;transition:all .3s;display:inline-flex;background:#000;letter-spacing:.02px}.scroll_visibility_hidden{-ms-overflow-style:none;scrollbar-width:none}.scroll_visibility_hidden::-webkit-scrollbar{display:none}@media screen and (max-width: 991px){.global_card_title-3.bottom-caption-31{font-size:1rem!important}}@media screen and (max-width: 479px){.global_card_title-3.bottom-caption-31{font-size:.875rem!important}}input#phone-number{padding-left:89px!important}.iti__selected-flag{border-radius:4px}@media (max-width: 992px){[hide-from-tablet=true]{display:none!important;visibility:hidden!important}}[loop-video]{width:100%;height:100%}[data-zindex="1"]{z-index:1!important}[richtext-button]{height:var(--sizes--40);padding:0 var(--_spacing---24);gap:var(--_spacing---8);border-radius:var(--_border-radius---radius-32);font-size:var(--sizes--16);line-height:var(--_typography---line-height--160);font-weight:var(--_typography---font-weight--medium);white-space:nowrap;border:1px solid transparent;justify-content:center;align-items:center;transition:all .3s;display:inline-flex;font-style:normal!important}[richtext-button=primary]{background-color:var(--button-primary\<deleted\|variable-99fb50d1-1e0d-8a24-83db-2993f67e9130\>);color:var(--_color-palette---button--primary--button-text-default)!important}[richtext-button=secondary]{background-color:var(--_color-palette---button--secondary--button-bg-default);border-color:var(--_color-palette---button--secondary--button-border-default);color:var(--_color-palette---extension--text-primary)!important}[data-corner-cutout="1.5rem"]{position:relative}[data-corner-cutout="1.5rem"]:after{content:"";position:absolute;top:0;right:0;width:1.5rem;height:1.5rem;background:var(--_color-palette---text--title);-webkit-mask-image:radial-gradient(circle at bottom left,transparent 24px,var(--_color-palette---text--title) 25px);mask-image:radial-gradient(circle at bottom left,transparent 24px,var(--_color-palette---text--title) 25px)}[data-corner-cutout="1.5rem"]:before{content:"";position:absolute;top:0;left:0;width:1.5rem;height:1.5rem;background:var(--_color-palette---text--title);-webkit-mask-image:radial-gradient(circle at bottom right,transparent 24px,var(--_color-palette---text--title) 25px);mask-image:radial-gradient(circle at bottom right,transparent 24px,var(--_color-palette---text--title) 25px)}.accordian-richtext p:first-child{margin-bottom:1rem}.splide__pagination__page.is-active{background:var(--_color-palette---text--title);transform:scale(1)}[fynd-timeline-element=dot-wrapper]{display:flex;gap:2px;align-items:center}@media (max-width: 991px){[fynd-timeline-element=dot-wrapper]{flex-direction:column}[fynd-timeline-element=dot],[fynd-timeline-element=dot-filled]{width:2px!important;height:4px}[fynd-timeline-element=circle]{box-shadow:inset 0 0 0 6px #a0a1a2}[fynd-timeline-element=circle-filled]{box-shadow:inset 0 0 0 8px #0e0e0e!important}}[fynd-timeline-element=dot],[fynd-timeline-element=dot-filled]{width:100%;height:2px;border-radius:10px;background:#a0a1a2;transition:background-color .3s ease}[fynd-timeline-element=dot-filled]{background:#0e0e0e}[fynd-timeline-element=circle]{transform:scale(.7);box-shadow:inset 0 0 0 20px #a0a1a2}[fynd-timeline-element=circle-filled]{transform:scale(1);box-shadow:inset 0 0 0 10px #0e0e0e}[fynd-show-clear=true]{background-image:url(https://cdn.prod.website-files.com/67a9c8e5f2c74ac8c2c9b88b/6889f30ed6b4ea10c3b618c0_close.svg)!important;background-size:20px!important}[fynd-show-clear=false]{background-image:url(https://cdn.prod.website-files.com/67a9c8e5f2c74ac8c2c9b88b/67ce756d3fd77fc0515461fd_ic_search.svg)!important;background-size:20px!important}[fynd-richtext=accordian] ul>li strong{font-weight:400}th{font-weight:600!important}.fynd-table_cell b,.fynd-table_head b{font-weight:600}[data-style-over=richtext-comp]{color:#000!important;text-decoration:none!important}[data-style-over=richtext-comp] :hover{color:#fff!important;text-decoration:none!important}ul{color:var(--_color-palette---text--subtext);line-height:var(--_typography---line-height--160)}.fynd-table_instance{overflow:auto;overflow-x:auto;overflow-y:auto}[strict-display=none]{display:none!important}blockquote>strong{font-weight:500!important;font-size:1rem;font-style:normal;line-height:1;color:var(--_primitives---neutral--neutral-100)}[data-popup-video=injected]{width:100%;height:100%;object-fit:cover;position:absolute;z-index:2}.gradient_blur{opacity:1}.gradient_blur>div,.gradient_blur:before,.gradient_blur:after{position:absolute;inset:0}.gradient_blur:before{content:"";z-index:1;backdrop-filter:blur(.5px);mask:linear-gradient(to top,rgba(0,0,0,0) 0%,rgba(0,0,0,1) 12.5%,rgba(0,0,0,1) 25%,rgba(0,0,0,0) 37.5%)}.gradient_blur>div:nth-of-type(1){z-index:2;backdrop-filter:blur(1px);mask:linear-gradient(to top,rgba(0,0,0,0) 12.5%,rgba(0,0,0,1) 25%,rgba(0,0,0,1) 37.5%,rgba(0,0,0,0) 50%)}.gradient_blur>div:nth-of-type(2){z-index:3;backdrop-filter:blur(2px);mask:linear-gradient(to top,rgba(0,0,0,0) 25%,rgba(0,0,0,1) 37.5%,rgba(0,0,0,1) 50%,rgba(0,0,0,0) 62.5%)}.gradient_blur>div:nth-of-type(3){z-index:4;backdrop-filter:blur(4px);mask:linear-gradient(to top,rgba(0,0,0,0) 37.5%,rgba(0,0,0,1) 50%,rgba(0,0,0,1) 62.5%,rgba(0,0,0,0) 75%)}.gradient_blur>div:nth-of-type(4){z-index:5;backdrop-filter:blur(8px);mask:linear-gradient(to top,rgba(0,0,0,0) 50%,rgba(0,0,0,1) 62.5%,rgba(0,0,0,1) 75%,rgba(0,0,0,0) 87.5%)}.gradient_blur>div:nth-of-type(5){z-index:6;backdrop-filter:blur(16px);mask:linear-gradient(to top,rgba(0,0,0,0) 62.5%,rgba(0,0,0,1) 75%,rgba(0,0,0,1) 87.5%,rgba(0,0,0,0) 100%)}.gradient_blur>div:nth-of-type(6){z-index:7;backdrop-filter:blur(32px);mask:linear-gradient(to top,rgba(0,0,0,0) 75%,rgba(0,0,0,1) 87.5%,rgba(0,0,0,1) 100%)}.gradient_blur:after{content:"";z-index:8;backdrop-filter:blur(64px);mask:linear-gradient(to top,rgba(0,0,0,0) 87.5%,rgba(0,0,0,1) 100%)}.navigation{z-index:99999!important}#mobile-menu{top:0!important;transform:translateY(0)!important}@media (min-width: 768px){#mobile-menu{top:0!important;transform:translateY(0)!important}}@media (max-width: 767px) and (orientation: landscape){#mobile-menu{top:50px!important;transform:translateY(0)!important}}[style-height=full]{height:100%}.custom-form_layout.w-variant-ccdd1f5c-cbc6-911f-3402-92637f9b226d,.custom-form_layout{height:auto}.form_right-column{padding-left:0rem!important;padding-right:0rem!important}@media screen and (max-width: 767px){.hero-form{padding-top:0rem!important}}.is-select{appearance:none;-webkit-appearance:none;-moz-appearance:none}.is-select::-ms-expand{display:none}[data-popup-video=youtube-container]{z-index:4}#widget-copilot{z-index:10;position:relative}[contact-form-popup=open]{z-index:100000000000}.fynd-bg-video>video{position:static!important}button#fynd-schema-copy-btn{display:none!important}@media (max-width: 768px){#widget-copilot{z-index:1000000000000!important}}[card-blur=black]{backdrop-filter:blur(25px) brightness(.8);-webkit-backdrop-filter:blur(25px) brightness(.9);mask-image:linear-gradient(to top,#0000 35%,#000 70%);-webkit-mask-image:linear-gradient(to top,rgba(0,0,0,0) 35%,rgba(0,0,0,1) 70%)}[card-blur=white]{backdrop-filter:blur(25px) brightness(1);-webkit-backdrop-filter:blur(25px) brightness(.9);mask-image:linear-gradient(to top,#0000 35%,#000 70%);-webkit-mask-image:linear-gradient(to top,rgba(0,0,0,0) 35%,rgba(0,0,0,1) 70%)}[media-card-padding="24"]{padding:24px}@media (max-width: 600px){[media-card-padding="24"]{padding:20px}}[media-card-padding="20"]{padding:20px}@media (max-width: 600px){[media-card-padding="20"]{padding:20px}}
|
|
1
|
+
:root{--Primary: "Fynd Sans", sans-serif;--Secondary: "Inter Display", sans-serif}html,body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-smooth:always}.w-background-video{position:absolute;inset:0;z-index:0}.video{width:100%;height:auto;object-fit:cover;display:block}[data-padding=big]{padding-top:9rem;padding-bottom:9rem}[data-padding=medium]{padding-top:5rem;padding-bottom:5rem}[data-padding=small]{padding-top:4rem;padding-bottom:4rem}[data-text-style=heading-xxl]{font-family:var(--Primary);font-size:4.5rem;font-weight:500;line-height:110%;letter-spacing:-.04em}[data-text-style=heading-xl]{font-family:var(--Primary);font-size:3.5rem;font-weight:400;line-height:110%;letter-spacing:-.04em}[data-text-style=heading-l]{font-family:var(--Primary);font-size:2.5rem;font-weight:400;line-height:110%;letter-spacing:-.03em}[data-text-style=heading-m]{font-family:var(--Primary);font-size:2rem;font-weight:400;line-height:120%;letter-spacing:-.02em}[data-text-style=heading-s]{font-family:var(--Secondary);font-size:1.625rem;font-weight:500;line-height:130%;letter-spacing:-.02em}[data-text-style=heading-xs]{font-family:var(--Secondary);font-size:1.25rem;font-weight:400;line-height:140%}[data-text-style=font-weight-500]{font-weight:500}@media (max-width: 1023px){[data-text-style=heading-xxl]{font-size:3.5rem}[data-text-style=heading-xl]{font-size:2.5rem}[data-text-style=heading-l]{font-size:2rem}[data-text-style=heading-m]{font-size:1.5rem}[data-text-style=heading-s]{font-size:1.25rem}}@media (max-width: 767px){[data-text-style=heading-xxl]{font-size:2.5rem}[data-text-style=heading-xl]{font-size:2rem}[data-text-style=heading-xs]{font-size:1.2rem}[data-text-style=heading-l]{font-size:1.5rem}[data-text-style=heading-m]{font-size:1.25rem}[data-text-style=heading-s]{font-size:1.125rem}[data-padding=big],[data-padding=medium],[data-padding=small]{padding-top:2.5rem;padding-bottom:2.5rem}}[data-text-style=body-xs-regular]{font-size:.75rem;font-weight:400;line-height:130%}[data-text-style=body-xs-medium]{font-size:.75rem;font-weight:500;line-height:130%}[data-text-style=body-xs-semibold]{font-size:.75rem;font-weight:600;line-height:130%}[data-text-style=body-s-regular]{font-size:.875rem;font-weight:400;line-height:140%}[data-text-style=body-s-medium]{font-size:.875rem;font-weight:500;line-height:140%}[data-text-style=body-m-regular]{font-size:1rem;font-weight:400;line-height:155%}[data-text-style=body-m-medium]{font-size:1rem;font-weight:500;line-height:135%}[data-text-style=body-l-regular]{font-size:1.125rem;font-weight:400;line-height:145%}[data-text-style=body-l-medium]{font-size:1.125rem;font-weight:500;line-height:150%}[data-text-style=body-xl-regular]{font-size:1.25rem;font-weight:400;line-height:140%}[data-text-style=body-xl-medium]{font-size:1.25rem;font-weight:500;line-height:140%}@media (max-width: 991px){[data-text-style=body-xs-regular],[data-text-style=body-xs-medium],[data-text-style=body-xs-semibold]{font-size:.6875rem}[data-text-style=body-s-regular],[data-text-style=body-s-medium]{font-size:.8125rem}[data-text-style=body-m-regular],[data-text-style=body-m-medium]{font-size:.9375rem}[data-text-style=body-l-regular],[data-text-style=body-l-medium]{font-size:1rem}[data-text-style=body-xl-regular],[data-text-style=body-xl-medium]{font-size:1.125rem}}@media (max-width: 767px){[data-text-style=body-xs-regular],[data-text-style=body-xs-medium],[data-text-style=body-xs-semibold]{font-size:.75rem}[data-text-style=body-s-regular],[data-text-style=body-m-regular]{font-size:.875rem}[data-text-style=body-s-medium],[data-text-style=body-m-medium],[data-text-style=body-l-regular],[data-text-style=body-l-medium],[data-text-style=body-xl-regular]{font-size:1rem}[data-text-style=body-xl-medium]{font-size:1.2rem}}[data-text-color=title]{color:#101319}[data-text-color=subtext]{color:#5b5c5d}[data-text-color=title-inverse]{color:#fff}[data-text-color=subtext-inverse]{color:#a0a1a2}[data-icon-color=darkest]{color:#0e0e0e}[data-icon-color=dark]{color:#797a7c}[data-icon-color=medium]{color:#f2f2f2}[data-icon-color=darkest]{color:#fff}[data-spacing=tiny]{height:.25rem}[data-spacing=xxsmall]{height:.5rem}[data-spacing=xsmall]{height:1rem}[data-spacing=small]{height:1.5rem}[data-spacing=medium]{height:2.5rem}[data-spacing=large]{height:3.5rem}[data-spacing=xlarge]{height:4rem}[data-spacing=xxlarge]{height:5rem}[data-spacing=huge]{height:6rem}[data-spacing=xhuge]{height:7rem}[data-spacing=xxhuge]{height:8rem}[data-badge-bg=blue]{background:#5c98f7}[data-badge-bg=peach]{background:#eeb384}[data-badge-bg=green]{background:#80d99f}[data-badge-bg=yellow]{background:#fdf6db}[data-badge-bg=lavender]{background:#e382ff}[data-badge-bg=violet]{background:#8d61f6}[data-badge-bg=red]{background:#fddbdb}[data-badge-bg=gray]{background:#f8f8f9}[data-badge-bg=transparent]{background:transparent}[data-badge-bg=teal]{background:#89d0e0}[data-bg=blue]{background:#d4e5ff}[data-bg=peach]{background:#fceadb}[data-bg=green]{background:#c9ebd7}[data-bg=yellow]{background:#fdf6db}[data-bg=lavender]{background:#ebddef}[data-bg=red]{background:#fddbdb}[data-bg=gray]{background:#f8f8f9}[data-bg=dark],.card_badge[data-bg=dark]{background:#0e0e0e;color:#fff}[data-bg=transparent]{background:transparent}[data-bg=tea-green]{background:#e5f2c2}@media (min-width: 1280px){[data-glow=star]:before{left:30vw;height:1370px}}@media (min-width: 768px){.hero--right-image-wrap[data-bg]{background:transparent}[data-glow=star]:before{content:"";position:absolute;z-index:1;background-image:url(https://cdn.prod.website-files.com/67a9c8e5f2c74ac8c2c9b88b/67b44aabaca043782cd38488_background-shimmer.gif);background-size:contain;background-repeat:no-repeat;opacity:.5;mix-blend-mode:screen;height:1200px;width:200vw;left:10vw;top:-50%}[data-glow=star]:after{content:"";z-index:0;opacity:.5;mix-blend-mode:multiply;object-fit:cover;background-position:0 0;background-repeat:repeat;background-size:contain;width:100%;height:100%;position:absolute;inset:0%}}@media (max-width: 767px){.section_hero-50-50[data-bg]{background:transparent}[data-glow=star] .hero--right-image-wrap:before{content:"";position:absolute;inset:-35% 0% 0% auto;z-index:1;background-image:url(https://cdn.prod.website-files.com/67a9c8e5f2c74ac8c2c9b88b/67b44aabaca043782cd38488_background-shimmer.gif);background-size:cover;background-position:-120px 0;opacity:.5;mix-blend-mode:screen;height:165%;width:100%}[data-glow=star] .hero--right-image-wrap:after{content:"";z-index:0;opacity:.5;mix-blend-mode:multiply;object-fit:cover;background-image:url(https://cdn.prod.website-files.com/67a9c8e5f2c74ac8c2c9b88b/67e014ba0be011b4a7adb7a3_grain-hero.avif);background-position:0 0;background-repeat:repeat;background-size:contain;width:100%;height:100%;position:absolute;inset:0%}.section_hero-50-50[data-bg-mobile=True]{background:#0e0e0e}}.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}[data-truncate=yes]{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}[style-line-clamp]{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}[style-line-clamp="1"]{-webkit-line-clamp:1}[style-line-clamp="2"]{-webkit-line-clamp:2}[style-line-clamp="3"]{-webkit-line-clamp:3}[style-line-clamp="4"]{-webkit-line-clamp:4}[data-color="#0A4020"]{color:#0a4020}[data-color="#043B77"]{color:#043b77}[data-color="#FF0000"]{color:red}[data-color="#48310F"]{color:#48310f}[data-color="#F8F8F9"]{color:#f8f8f9}[data-color=white]{color:#fff}[data-color=subtext-white]{color:#a0a1a2}[data-color=green-dark]{color:#427c5a}[data-color=green-light]{color:#b2e0c3}[data-height="25rem"]{height:25rem}[data-height="26rem"]{height:26.06rem}[data-height="31rem"]{height:31.25rem}[data-height="39rem"]{height:39.125rem}[data-bg-color]{background-color:#f8f8f9}@media screen and (max-width: 767px){*[data-height]{height:15.62rem}div div.bento-card_text{font-size:1rem}div p.bento-card_subtext{font-size:.875rem}}[fynd-sticky-bg-theme=blue-1]{background:url(https://cdn.prod.website-files.com/67a9c8e5f2c74ac8c2c9b88b/67e1b4072adad40eb22e201e_97d7b26441d6a95f90db1952a9d3e122_bg-theme-1.avif) no-repeat;background-size:cover}.w-richtext figure.w-richtext-align-fullwidth>figcaption{font-size:14px}.blog_rich-text strong,.metric-rich-text strong{font-weight:500}#fc_frame{visibility:hidden;display:none}[data-bg=white]{background:#fff}a.blog-details.w-inline-block{display:flex}.bento-card:hover .btn.global_card_btn{opacity:1}@media (width <=767px){[data-text-style=body-l-regular]{line-height:145%}[data-text-style=heading-xl]{line-height:115%}[data-text-style=heading-l]{line-height:135%}[data-text-style=body-xl-regular]{font-size:1rem}[data-text-style=heading-s]{font-size:1.125rem;line-height:140%}}[card-bg=dark]{background:#1a1a1a}[circle-bg=dark]{background:#333}[circle-bg=light]{background:#1a1a1a}[bottom-line-border=dark]{border-color:#333}[bottom-line-border=light]{border-color:#1a1a1a}.accordian-richtext[data-text-color]:not([data-text-color=""])>*{color:inherit}@media (max-width: 767px){[data-glow=star] .hero--right-image-wrap:before{top:0%;height:100%}}h1 a,h2 a,h3 a,h6 a{height:var(--sizes--40);padding:0px var(--_spacing---24);grid-column-gap:var(--_spacing---8);grid-row-gap:var(--_spacing---8);border-radius:var(--_border-radius---radius-32);color:var(--_color-palette---button--primary--button-text-default)!important;font-size:var(--sizes--16);line-height:var(--_typography---line-height--160);font-weight:var(--_typography---font-weight--medium);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;transition:all .3s;display:inline-flex;background:#000;letter-spacing:.02px}.scroll_visibility_hidden{-ms-overflow-style:none;scrollbar-width:none}.scroll_visibility_hidden::-webkit-scrollbar{display:none}@media screen and (max-width: 991px){.global_card_title-3.bottom-caption-31{font-size:1rem!important}}@media screen and (max-width: 479px){.global_card_title-3.bottom-caption-31{font-size:.875rem!important}}@media (max-width: 992px){[hide-from-tablet=true]{display:none!important;visibility:hidden!important}}[loop-video]{width:100%;height:100%}[data-zindex="1"]{z-index:1!important}[richtext-button]{height:var(--sizes--40);padding:0 var(--_spacing---24);gap:var(--_spacing---8);border-radius:var(--_border-radius---radius-32);font-size:var(--sizes--16);line-height:var(--_typography---line-height--160);font-weight:var(--_typography---font-weight--medium);white-space:nowrap;border:1px solid transparent;justify-content:center;align-items:center;transition:all .3s;display:inline-flex;font-style:normal!important}[richtext-button=primary]{background-color:var(--button-primary\<deleted\|variable-99fb50d1-1e0d-8a24-83db-2993f67e9130\>);color:var(--_color-palette---button--primary--button-text-default)!important}[richtext-button=secondary]{background-color:var(--_color-palette---button--secondary--button-bg-default);border-color:var(--_color-palette---button--secondary--button-border-default);color:var(--_color-palette---extension--text-primary)!important}[data-corner-cutout="1.5rem"]{position:relative}[data-corner-cutout="1.5rem"]:after{content:"";position:absolute;top:0;right:0;width:1.5rem;height:1.5rem;background:var(--_color-palette---text--title);-webkit-mask-image:radial-gradient(circle at bottom left,transparent 24px,var(--_color-palette---text--title) 25px);mask-image:radial-gradient(circle at bottom left,transparent 24px,var(--_color-palette---text--title) 25px)}[data-corner-cutout="1.5rem"]:before{content:"";position:absolute;top:0;left:0;width:1.5rem;height:1.5rem;background:var(--_color-palette---text--title);-webkit-mask-image:radial-gradient(circle at bottom right,transparent 24px,var(--_color-palette---text--title) 25px);mask-image:radial-gradient(circle at bottom right,transparent 24px,var(--_color-palette---text--title) 25px)}.accordian-richtext p:first-child{margin-bottom:1rem}.splide__pagination__page.is-active{background:var(--_color-palette---text--title);transform:scale(1)}[fynd-timeline-element=dot-wrapper]{display:flex;gap:2px;align-items:center}@media (max-width: 991px){[fynd-timeline-element=dot-wrapper]{flex-direction:column}[fynd-timeline-element=dot],[fynd-timeline-element=dot-filled]{width:2px!important;height:4px}[fynd-timeline-element=circle]{box-shadow:inset 0 0 0 6px #a0a1a2}[fynd-timeline-element=circle-filled]{box-shadow:inset 0 0 0 8px #0e0e0e!important}}[fynd-timeline-element=dot],[fynd-timeline-element=dot-filled]{width:100%;height:2px;border-radius:10px;background:#a0a1a2;transition:background-color .3s ease}[fynd-timeline-element=dot-filled]{background:#0e0e0e}[fynd-timeline-element=circle]{transform:scale(.7);box-shadow:inset 0 0 0 20px #a0a1a2}[fynd-timeline-element=circle-filled]{transform:scale(1);box-shadow:inset 0 0 0 10px #0e0e0e}[fynd-show-clear=true]{background-image:url(https://cdn.prod.website-files.com/67a9c8e5f2c74ac8c2c9b88b/6889f30ed6b4ea10c3b618c0_close.svg)!important;background-size:20px!important}[fynd-show-clear=false]{background-image:url(https://cdn.prod.website-files.com/67a9c8e5f2c74ac8c2c9b88b/67ce756d3fd77fc0515461fd_ic_search.svg)!important;background-size:20px!important}[fynd-richtext=accordian] ul>li strong{font-weight:400}th{font-weight:600!important}.fynd-table_cell b,.fynd-table_head b{font-weight:600}[data-style-over=richtext-comp]{color:#000!important;text-decoration:none!important}[data-style-over=richtext-comp] :hover{color:#fff!important;text-decoration:none!important}ul{color:var(--_color-palette---text--subtext);line-height:var(--_typography---line-height--160)}.fynd-table_instance{overflow:auto;overflow-x:auto;overflow-y:auto}[strict-display=none]{display:none!important}blockquote>strong{font-weight:500!important;font-size:1rem;font-style:normal;line-height:1;color:var(--_primitives---neutral--neutral-100)}[data-popup-video=injected]{width:100%;height:100%;object-fit:cover;position:absolute;z-index:2}.gradient_blur{opacity:1}.gradient_blur>div,.gradient_blur:before,.gradient_blur:after{position:absolute;inset:0}.gradient_blur:before{content:"";z-index:1;backdrop-filter:blur(.5px);mask:linear-gradient(to top,rgba(0,0,0,0) 0%,rgba(0,0,0,1) 12.5%,rgba(0,0,0,1) 25%,rgba(0,0,0,0) 37.5%)}.gradient_blur>div:nth-of-type(1){z-index:2;backdrop-filter:blur(1px);mask:linear-gradient(to top,rgba(0,0,0,0) 12.5%,rgba(0,0,0,1) 25%,rgba(0,0,0,1) 37.5%,rgba(0,0,0,0) 50%)}.gradient_blur>div:nth-of-type(2){z-index:3;backdrop-filter:blur(2px);mask:linear-gradient(to top,rgba(0,0,0,0) 25%,rgba(0,0,0,1) 37.5%,rgba(0,0,0,1) 50%,rgba(0,0,0,0) 62.5%)}.gradient_blur>div:nth-of-type(3){z-index:4;backdrop-filter:blur(4px);mask:linear-gradient(to top,rgba(0,0,0,0) 37.5%,rgba(0,0,0,1) 50%,rgba(0,0,0,1) 62.5%,rgba(0,0,0,0) 75%)}.gradient_blur>div:nth-of-type(4){z-index:5;backdrop-filter:blur(8px);mask:linear-gradient(to top,rgba(0,0,0,0) 50%,rgba(0,0,0,1) 62.5%,rgba(0,0,0,1) 75%,rgba(0,0,0,0) 87.5%)}.gradient_blur>div:nth-of-type(5){z-index:6;backdrop-filter:blur(16px);mask:linear-gradient(to top,rgba(0,0,0,0) 62.5%,rgba(0,0,0,1) 75%,rgba(0,0,0,1) 87.5%,rgba(0,0,0,0) 100%)}.gradient_blur>div:nth-of-type(6){z-index:7;backdrop-filter:blur(32px);mask:linear-gradient(to top,rgba(0,0,0,0) 75%,rgba(0,0,0,1) 87.5%,rgba(0,0,0,1) 100%)}.gradient_blur:after{content:"";z-index:8;backdrop-filter:blur(64px);mask:linear-gradient(to top,rgba(0,0,0,0) 87.5%,rgba(0,0,0,1) 100%)}.navigation{z-index:99999!important}#mobile-menu{top:0!important;transform:translateY(0)!important}@media (min-width: 768px){#mobile-menu{top:0!important;transform:translateY(0)!important}}@media (max-width: 767px) and (orientation: landscape){#mobile-menu{top:50px!important;transform:translateY(0)!important}}[style-height=full]{height:100%}.custom-form_layout.w-variant-ccdd1f5c-cbc6-911f-3402-92637f9b226d,.custom-form_layout{height:auto}.form_right-column{padding-left:0rem!important;padding-right:0rem!important}@media screen and (max-width: 767px){.hero-form{padding-top:0rem!important}}.is-select{appearance:none;-webkit-appearance:none;-moz-appearance:none}.is-select::-ms-expand{display:none}[data-popup-video=youtube-container]{z-index:4}#widget-copilot{z-index:10;position:relative}[contact-form-popup=open]{z-index:100000000000}.fynd-bg-video>video{position:static!important}button#fynd-schema-copy-btn{display:none!important}@media (max-width: 768px){#widget-copilot{z-index:1000000000000!important}}[card-blur=black]{backdrop-filter:blur(25px) brightness(.8);-webkit-backdrop-filter:blur(25px) brightness(.9);mask-image:linear-gradient(to top,#0000 35%,#000 70%);-webkit-mask-image:linear-gradient(to top,rgba(0,0,0,0) 35%,rgba(0,0,0,1) 70%)}[card-blur=white]{backdrop-filter:blur(25px) brightness(1);-webkit-backdrop-filter:blur(25px) brightness(.9);mask-image:linear-gradient(to top,#0000 35%,#000 70%);-webkit-mask-image:linear-gradient(to top,rgba(0,0,0,0) 35%,rgba(0,0,0,1) 70%)}[media-card-padding="24"]{padding:24px}@media (max-width: 600px){[media-card-padding="24"]{padding:20px}}[media-card-padding="20"]{padding:20px}@media (max-width: 600px){[media-card-padding="20"]{padding:20px}}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/global/css/in-page-embed.css"],
|
|
4
|
+
"sourcesContent": [":root {\n --Primary: \"Fynd Sans\", sans-serif;\n --Secondary: \"Inter Display\", sans-serif;\n}\n\n\nhtml,\nbody {\n -webkit-font-smoothing: antialiased;\n /* Smooth fonts on WebKit (Chrome, Safari) */\n -moz-osx-font-smoothing: grayscale;\n /* Smooth fonts on macOS Firefox */\n text-rendering: optimizeLegibility;\n /* Improve kerning and ligatures */\n font-smooth: always;\n /* Smooth fonts on some browsers */\n}\n\n\n.w-background-video {\n position: absolute;\n inset: 0;\n z-index: 0;\n}\n\n.video {\n width: 100%;\n height: auto;\n object-fit: cover;\n /* Ensures the video scales properly */\n /*background-color: transparent; /* Removes the grey/white background */\n display: block;\n /* Ensures consistent rendering */\n /*-webkit-transform: translate3d(0, 0, 0); /* Fix rendering issues in Safari */\n}\n\n\n/* Section Padding Variations */\n[data-padding=\"big\"] {\n padding-top: 9rem;\n padding-bottom: 9rem;\n}\n\n[data-padding=\"medium\"] {\n padding-top: 5rem;\n padding-bottom: 5rem;\n}\n\n[data-padding=\"small\"] {\n padding-top: 4rem;\n padding-bottom: 4rem;\n}\n\n/* -----------------------------------------------------------------*/\n/* FOR ALL THE HEADING TEXT (DESKTOP/TABLET/MOBILE) */\n[data-text-style=\"heading-xxl\"] {\n font-family: var(--Primary);\n font-size: 4.5rem;\n /* 72px */\n font-weight: 500;\n line-height: 110%;\n letter-spacing: -0.04em;\n}\n\n[data-text-style=\"heading-xl\"] {\n font-family: var(--Primary);\n font-size: 3.5rem;\n /* 56px */\n font-weight: 400;\n line-height: 110%;\n letter-spacing: -0.04em;\n}\n\n[data-text-style=\"heading-l\"] {\n font-family: var(--Primary);\n font-size: 2.5rem;\n /* 40px */\n font-weight: 400;\n line-height: 110%;\n letter-spacing: -0.03em;\n}\n\n[data-text-style=\"heading-m\"] {\n font-family: var(--Primary);\n font-size: 2rem;\n /* 32px */\n font-weight: 400;\n line-height: 120%;\n letter-spacing: -0.02em;\n}\n\n[data-text-style=\"heading-s\"] {\n font-family: var(--Secondary);\n font-size: 1.625rem;\n /* 26px */\n font-weight: 500;\n line-height: 130%;\n letter-spacing: -0.02em;\n}\n\n[data-text-style=\"heading-xs\"] {\n font-family: var(--Secondary);\n font-size: 1.25rem;\n /* 26px */\n font-weight: 400;\n line-height: 140%;\n}\n\n[data-text-style=\"font-weight-500\"] {\n font-weight: 500;\n}\n\n/* Tablet */\n@media (max-width: 1023px) {\n [data-text-style=\"heading-xxl\"] {\n font-size: 3.5rem;\n /* 56px */\n }\n\n [data-text-style=\"heading-xl\"] {\n font-size: 2.5rem;\n /* 40px */\n }\n\n [data-text-style=\"heading-l\"] {\n font-size: 2rem;\n /* 32px */\n }\n\n [data-text-style=\"heading-m\"] {\n font-size: 1.5rem;\n /* 24px */\n }\n\n [data-text-style=\"heading-s\"] {\n font-size: 1.25rem;\n /* 20px */\n }\n}\n\n/* Mobile */\n@media (max-width: 767px) {\n [data-text-style=\"heading-xxl\"] {\n font-size: 2.5rem;\n /* 40px */\n }\n\n [data-text-style=\"heading-xl\"] {\n font-size: 2rem;\n /* 32px */\n }\n\n [data-text-style=\"heading-xs\"] {\n font-size: 1.2rem;\n /* 26px */\n }\n\n [data-text-style=\"heading-l\"] {\n font-size: 1.5rem;\n /* 24px */\n }\n\n [data-text-style=\"heading-m\"] {\n font-size: 1.25rem;\n /* 20px */\n }\n\n [data-text-style=\"heading-s\"] {\n font-size: 1.125rem;\n /* 18px */\n }\n\n [data-padding=\"big\"],\n [data-padding=\"medium\"],\n [data-padding=\"small\"] {\n padding-top: 2.5rem;\n padding-bottom: 2.5rem;\n }\n}\n\n/* -----------------------------------------------------------------*/\n/* FOR ALL THE BODY TEXT (DESKTOP/TABLET/MOBILE) */\n[data-text-style=\"body-xs-regular\"] {\n font-size: 0.75rem;\n /* 12px */\n font-weight: 400;\n line-height: 130%;\n}\n\n[data-text-style=\"body-xs-medium\"] {\n font-size: 0.75rem;\n /* 12px */\n font-weight: 500;\n line-height: 130%;\n}\n\n[data-text-style=\"body-xs-semibold\"] {\n font-size: 0.75rem;\n /* 12px */\n font-weight: 600;\n line-height: 130%;\n}\n\n[data-text-style=\"body-s-regular\"] {\n font-size: 0.875rem;\n /* 14px */\n font-weight: 400;\n line-height: 140%;\n}\n\n[data-text-style=\"body-s-medium\"] {\n font-size: 0.875rem;\n /* 14px */\n font-weight: 500;\n line-height: 140%;\n}\n\n[data-text-style=\"body-m-regular\"] {\n font-size: 1rem;\n /* 16px */\n font-weight: 400;\n line-height: 155%;\n}\n\n[data-text-style=\"body-m-medium\"] {\n font-size: 1rem;\n /* 16px */\n font-weight: 500;\n line-height: 135%;\n}\n\n[data-text-style=\"body-l-regular\"] {\n font-size: 1.125rem;\n /* 18px */\n font-weight: 400;\n line-height: 145%;\n}\n\n[data-text-style=\"body-l-medium\"] {\n font-size: 1.125rem;\n /* 18px */\n font-weight: 500;\n line-height: 150%;\n}\n\n[data-text-style=\"body-xl-regular\"] {\n font-size: 1.25rem;\n /* 20px */\n font-weight: 400;\n line-height: 140%;\n}\n\n[data-text-style=\"body-xl-medium\"] {\n font-size: 1.25rem;\n /* 20px */\n font-weight: 500;\n line-height: 140%;\n}\n\n/* Tablet */\n@media (max-width: 991px) {\n\n [data-text-style=\"body-xs-regular\"],\n [data-text-style=\"body-xs-medium\"],\n [data-text-style=\"body-xs-semibold\"] {\n font-size: 0.6875rem;\n /* 11px */\n }\n\n [data-text-style=\"body-s-regular\"],\n [data-text-style=\"body-s-medium\"] {\n font-size: 0.8125rem;\n /* 13px */\n }\n\n [data-text-style=\"body-m-regular\"],\n [data-text-style=\"body-m-medium\"] {\n font-size: 0.9375rem;\n /* 15px */\n }\n\n [data-text-style=\"body-l-regular\"],\n [data-text-style=\"body-l-medium\"] {\n font-size: 1rem;\n /* 16px */\n }\n\n [data-text-style=\"body-xl-regular\"],\n [data-text-style=\"body-xl-medium\"] {\n font-size: 1.125rem;\n /* 18px */\n }\n}\n\n/* Phone */\n@media (max-width: 767px) {\n\n [data-text-style=\"body-xs-regular\"],\n [data-text-style=\"body-xs-medium\"],\n [data-text-style=\"body-xs-semibold\"] {\n font-size: 0.75rem;\n /* 10px */\n }\n\n [data-text-style=\"body-s-regular\"],\n [data-text-style=\"body-m-regular\"] {\n font-size: 0.875rem;\n /* 14px */\n }\n\n [data-text-style=\"body-s-medium\"],\n [data-text-style=\"body-m-medium\"],\n [data-text-style=\"body-l-regular\"],\n [data-text-style=\"body-l-medium\"],\n [data-text-style=\"body-xl-regular\"] {\n font-size: 1rem;\n /* 16px */\n }\n\n [data-text-style=\"body-xl-medium\"] {\n font-size: 1.2rem;\n }\n}\n\n/* -----------------------------------------------------------------*/\n/* Common Text Colors */\n[data-text-color=\"title\"] {\n color: #101319;\n}\n\n[data-text-color=\"subtext\"] {\n color: #5B5C5D;\n}\n\n/* Inverse Text Colors */\n[data-text-color=\"title-inverse\"] {\n color: #ffffff;\n}\n\n[data-text-color=\"subtext-inverse\"] {\n color: #A0A1A2;\n}\n\n/* -----------------------------------------------------------------*/\n/* Common Icon Colors */\n[data-icon-color=\"darkest\"] {\n color: #0E0E0E;\n}\n\n[data-icon-color=\"dark\"] {\n color: #797A7C;\n}\n\n[data-icon-color=\"medium\"] {\n color: #F2F2F2;\n}\n\n[data-icon-color=\"darkest\"] {\n color: #FFFFFF;\n}\n\n/* -----------------------------------------------------------------*/\n/* Spacers (Client-First Framework) */\n[data-spacing=\"tiny\"] {\n height: 0.25rem\n /* 4px */\n}\n\n[data-spacing=\"xxsmall\"] {\n height: 0.5rem\n /* 8px */\n}\n\n[data-spacing=\"xsmall\"] {\n height: 1rem\n /* 16px */\n}\n\n[data-spacing=\"small\"] {\n height: 1.5rem\n /* 24px */\n}\n\n[data-spacing=\"medium\"] {\n height: 2.5rem\n /* 40px */\n}\n\n[data-spacing=\"large\"] {\n height: 3.5rem;\n /* 56px */\n}\n\n[data-spacing=\"xlarge\"] {\n height: 4rem;\n /* 64px */\n}\n\n[data-spacing=\"xxlarge\"] {\n height: 5rem;\n /* 80px */\n}\n\n[data-spacing=\"huge\"] {\n height: 6rem;\n /* 96px */\n}\n\n[data-spacing=\"xhuge\"] {\n height: 7rem;\n /* 112px */\n}\n\n[data-spacing=\"xxhuge\"] {\n height: 8rem;\n /* 128px */\n}\n\n/* Hero Section Badge Colors */\n[data-badge-bg=\"blue\"] {\n background: #5C98F7;\n}\n\n[data-badge-bg=\"peach\"] {\n background: #EEB384;\n}\n\n[data-badge-bg=\"green\"] {\n background: #80D99F;\n}\n\n[data-badge-bg=\"yellow\"] {\n background: #FDF6DB;\n}\n\n[data-badge-bg=\"lavender\"] {\n background: #E382FF;\n}\n\n[data-badge-bg=\"violet\"]{\n background: #8D61F6;\n}\n[data-badge-bg=\"red\"] {\n background: #FDDBDB;\n}\n\n[data-badge-bg=\"gray\"] {\n background: #F8F8F9;\n}\n\n[data-badge-bg=\"transparent\"] {\n background: transparent;\n}\n\n[data-badge-bg=\"teal\"] {\n background: #89D0E0;\n}\n\n\n/* Hero Section Background Colors */\n[data-bg=\"blue\"] {\n background: #D4E5FF;\n}\n\n[data-bg=\"peach\"] {\n background: #FCEADB;\n}\n\n[data-bg=\"green\"] {\n background: #C9EBD7;\n /*#E5F5EC;#D7F4E2;*/\n}\n\n[data-bg=\"yellow\"] {\n background: #FDF6DB;\n}\n\n[data-bg=\"lavender\"] {\n background: #EBDDEF;\n}\n\n[data-bg=\"red\"] {\n background: #FDDBDB;\n}\n\n[data-bg=\"gray\"] {\n background: #F8F8F9;\n}\n\n[data-bg=\"dark\"],\n.card_badge[data-bg=\"dark\"] {\n background: #0E0E0E;\n color: #FFFFFF;\n}\n\n[data-bg=\"transparent\"] {\n background: transparent;\n}\n\n[data-bg=\"tea-green\"] {\n background: #E5F2C2;\n}\n\n/* \nReverse apply background for Hero section in Mobile\nRemove background from Hero, apply to image only\n*/\n\n\n@media (min-width: 1280px) {\n [data-glow=\"star\"]::before {\n left: 30vw;\n height: 1370px;\n }\n}\n\n@media (min-width: 768px) {\n .hero--right-image-wrap[data-bg] {\n background: transparent;\n }\n\n [data-glow=\"star\"]::before {\n content: \"\";\n position: absolute;\n z-index: 1;\n background-image: url('https://cdn.prod.website-files.com/67a9c8e5f2c74ac8c2c9b88b/67b44aabaca043782cd38488_background-shimmer.gif');\n background-size: contain;\n background-repeat: no-repeat;\n opacity: 0.5;\n mix-blend-mode: screen;\n height: 1200px;\n width: 200vw;\n left: 10vw;\n top: -50%;\n }\n\n [data-glow=\"star\"]::after {\n content: '';\n z-index: 0;\n opacity: .5;\n mix-blend-mode: multiply;\n object-fit: cover;\n /*background-image: url('https://cdn.prod.website-files.com/67a9c8e5f2c74ac8c2c9b88b/67e014ba0be011b4a7adb7a3_grain-hero.avif');*/\n background-position: 0 0;\n background-repeat: repeat;\n background-size: contain;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0%;\n }\n}\n\n@media (max-width: 767px) {\n .section_hero-50-50[data-bg] {\n background: transparent;\n }\n\n [data-glow=\"star\"] .hero--right-image-wrap::before {\n content: \"\";\n position: absolute;\n inset: -35% 0% 0% auto;\n z-index: 1;\n background-image: url('https://cdn.prod.website-files.com/67a9c8e5f2c74ac8c2c9b88b/67b44aabaca043782cd38488_background-shimmer.gif');\n background-size: cover;\n background-position: -120px 0;\n opacity: 0.5;\n mix-blend-mode: screen;\n height: 165%;\n width: 100%;\n }\n\n [data-glow=\"star\"] .hero--right-image-wrap::after {\n content: '';\n z-index: 0;\n opacity: .5;\n mix-blend-mode: multiply;\n object-fit: cover;\n background-image: url('https://cdn.prod.website-files.com/67a9c8e5f2c74ac8c2c9b88b/67e014ba0be011b4a7adb7a3_grain-hero.avif');\n background-position: 0 0;\n background-repeat: repeat;\n background-size: contain;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0%;\n }\n\n .section_hero-50-50[data-bg-mobile=\"True\"] {\n background: #0e0e0e;\n }\n}\n\n\n/* Hide scrollbar for Chrome, Safari and Opera */\n.hide-scrollbar::-webkit-scrollbar {\n display: none;\n}\n\n/* Hide scrollbar for IE, Edge and Firefox */\n.hide-scrollbar {\n -ms-overflow-style: none;\n /* IE and Edge */\n scrollbar-width: none;\n /* Firefox */\n}\n\n/* -----------------------------------------------------------------*/\n/* Utilities */\n\n[data-truncate=\"yes\"] {\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n[style-line-clamp] {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n[style-line-clamp=\"1\"] {\n -webkit-line-clamp: 1;\n}\n\n[style-line-clamp=\"2\"] {\n -webkit-line-clamp: 2;\n}\n\n[style-line-clamp=\"3\"] {\n -webkit-line-clamp: 3;\n}\n\n[style-line-clamp=\"4\"] {\n -webkit-line-clamp: 4;\n}\n\n/* BENTO CARD TITLE TEXT COLOR */\n[data-color=\"#0A4020\"] {\n color: #0A4020;\n}\n\n[data-color=\"#043B77\"] {\n color: #043B77;\n}\n\n[data-color=\"#FF0000\"] {\n color: #FF0000;\n}\n\n[data-color=\"#48310F\"] {\n color: #48310F;\n}\n\n[data-color=\"#F8F8F9\"] {\n color: #F8F8F9;\n}\n\n[data-color=\"white\"] {\n color: #FFFFFF;\n}\n\n[data-color=\"subtext-white\"] {\n color: #A0A1A2;\n}\n\n\n\n/* GREEN SHADES */\n[data-color=\"green-dark\"] {\n color: #427C5A;\n}\n\n[data-color=\"green-light\"] {\n color: #B2E0C3;\n}\n\n/* BENTO CARD HEIGHT */\n[data-height=\"25rem\"] {\n height: 25rem;\n}\n\n[data-height=\"26rem\"] {\n height: 26.06rem;\n}\n\n[data-height=\"31rem\"] {\n height: 31.25rem;\n}\n\n[data-height=\"39rem\"] {\n height: 39.125rem;\n}\n\n\n\n/* BENTO CARD BACKGROUND COLOR */\n[data-bg-color] {\n background-color: #F8F8F9;\n}\n\n/* BENTO CARD WIDTH\n[data-width=\"45%\"] { width: 48%; }\n[data-width=\"100%\"] { width: 100%; } */\n@media screen and (max-width: 767px) {\n *[data-height] {\n height: 15.62rem;\n }\n\n div div.bento-card_text {\n font-size: 1rem;\n }\n\n div p.bento-card_subtext {\n font-size: 0.875rem;\n }\n}\n\n/* @deepak style on Mar 24 */\n[fynd-sticky-bg-theme=\"blue-1\"] {\n background: url(https://cdn.prod.website-files.com/67a9c8e5f2c74ac8c2c9b88b/67e1b4072adad40eb22e201e_97d7b26441d6a95f90db1952a9d3e122_bg-theme-1.avif) no-repeat;\n background-size: cover;\n}\n\n/* read page styles */\n\n.w-richtext figure.w-richtext-align-fullwidth>figcaption {\n font-size: 14px;\n}\n\n.blog_rich-text strong {\n font-weight: 500;\n}\n\n.metric-rich-text strong {\n font-weight: 500;\n}\n\n\n\n/* new css got on 2 apr */\n[data-bg=\"white\"] {\n background: white;\n}\n\na.blog-details.w-inline-block {\n display: flex;\n}\n\n.bento-card:hover .btn.global_card_btn {\n opacity: 1;\n}\n\n#fc_frame {\n visibility: hidden;\n display: none;\n}\n\n/* new styles copied forom embed on april 8 here */\n\n[data-bg=\"white\"] {\n background: white;\n}\n\na.blog-details.w-inline-block {\n display: flex;\n}\n\n.bento-card:hover .btn.global_card_btn {\n opacity: 1;\n}\n\n\n/* changes on tue 29 */\n@media (width <=767px) {\n [data-text-style=\"body-l-regular\"] {\n line-height: 145%;\n }\n\n [data-text-style=\"heading-xl\"] {\n line-height: 115%;\n }\n\n [data-text-style=\"heading-l\"] {\n line-height: 135%;\n }\n\n [data-text-style=\"body-xl-regular\"] {\n font-size: 1rem;\n }\n\n [data-text-style=\"heading-s\"] {\n font-size: 1.125rem;\n line-height: 140%;\n }\n\n}\n\n[card-bg=\"dark\"] {\n background: #1A1A1A;\n}\n\n[circle-bg=\"dark\"] {\n background: #333333;\n}\n\n[circle-bg=\"light\"] {\n background: #1A1A1A;\n}\n\n[bottom-line-border=\"dark\"] {\n border-color: #333333;\n}\n\n[bottom-line-border=\"light\"] {\n border-color: #1A1A1A;\n}\n\n.accordian-richtext[data-text-color]:not([data-text-color=\"\"])>* {\n color: inherit;\n}\n\n@media (max-width: 767px) {\n [data-glow=\"star\"] .hero--right-image-wrap::before {\n top: 0%;\n height: 100%;\n }\n}\n\n\nh1 a,\nh2 a,\nh3 a,\nh6 a {\n height: var(--sizes--40);\n padding: 0px var(--_spacing---24);\n grid-column-gap: var(--_spacing---8);\n grid-row-gap: var(--_spacing---8);\n border-radius: var(--_border-radius---radius-32);\n color: var(--_color-palette---button--primary--button-text-default) !important;\n font-size: var(--sizes--16);\n line-height: var(--_typography---line-height--160);\n font-weight: var(--_typography---font-weight--medium);\n white-space: nowrap;\n border: 1px solid #0000;\n justify-content: center;\n align-items: center;\n transition: all .3s;\n display: inline-flex;\n background: black;\n letter-spacing: 0.02px;\n}\n\n.scroll_visibility_hidden {\n -ms-overflow-style: none;\n scrollbar-width: none;\n}\n\n.scroll_visibility_hidden::-webkit-scrollbar {\n display: none;\n}\n\n@media screen and (max-width: 991px) {\n .global_card_title-3.bottom-caption-31 {\n font-size: 1rem !important;\n }\n}\n\n@media screen and (max-width: 479px) {\n .global_card_title-3.bottom-caption-31 {\n font-size: .875rem !important;\n }\n}\n\n\n\n@media (max-width: 992px) {\n [hide-from-tablet=\"true\"] {\n display: none !important;\n visibility: hidden !important;\n }\n}\n\n[loop-video] {\n width: 100%;\n height: 100%;\n}\n\n[data-zindex=\"1\"] {\n z-index: 1 !important;\n}\n\n/* Base button styles inside richtext*/\n[richtext-button] {\n height: var(--sizes--40);\n padding: 0 var(--_spacing---24);\n gap: var(--_spacing---8);\n border-radius: var(--_border-radius---radius-32);\n font-size: var(--sizes--16);\n line-height: var(--_typography---line-height--160);\n font-weight: var(--_typography---font-weight--medium);\n white-space: nowrap;\n border: 1px solid transparent;\n justify-content: center;\n align-items: center;\n transition: all 0.3s;\n display: inline-flex;\n font-style: normal !important;\n}\n\n/* Primary button variant */\n[richtext-button=\"primary\"] {\n background-color: var(--button-primary\\<deleted\\|variable-99fb50d1-1e0d-8a24-83db-2993f67e9130\\>);\n color: var(--_color-palette---button--primary--button-text-default) !important;\n}\n\n/* Secondary button variant */\n[richtext-button=\"secondary\"] {\n background-color: var(--_color-palette---button--secondary--button-bg-default);\n border-color: var(--_color-palette---button--secondary--button-border-default);\n color: var(--_color-palette---extension--text-primary) !important;\n}\n\n/* Corner Cutout */\n[data-corner-cutout=\"1.5rem\"] {\n position: relative;\n}\n[data-corner-cutout=\"1.5rem\"]::after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n width: 1.5rem;\n height: 1.5rem;\n background: var(--_color-palette---text--title);\n\n /* Inverted quarter circle cutout using 1.5rem = 24px */\n -webkit-mask-image: radial-gradient(circle at bottom left, transparent 24px, var(--_color-palette---text--title) 25px);\n mask-image: radial-gradient(circle at bottom left, transparent 24px, var(--_color-palette---text--title) 25px);\n}\n\n[data-corner-cutout=\"1.5rem\"]::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 1.5rem;\n height: 1.5rem;\n background: var(--_color-palette---text--title);\n\n -webkit-mask-image: radial-gradient(circle at bottom right, transparent 24px, var(--_color-palette---text--title) 25px);\n mask-image: radial-gradient(circle at bottom right, transparent 24px, var(--_color-palette---text--title) 25px);\n}\n\n/* Consolidated styles from global styles */\n.accordian-richtext p:first-child {\n margin-bottom: 1rem;\n}\n.splide__pagination__page.is-active {\n background: var(--_color-palette---text--title);\n transform: scale(1);\n}\n\n/* Timeline styles start*/\n\n[fynd-timeline-element=\"dot-wrapper\"] {\n display: flex;\n gap: 2px;\n align-items: center;\n}\n\n@media (max-width: 991px) {\n [fynd-timeline-element=\"dot-wrapper\"] {\n flex-direction: column;\n }\n \n [fynd-timeline-element=\"dot\"],\n [fynd-timeline-element=\"dot-filled\"] {\n width: 2px !important;\n height: 4px;\n }\n [fynd-timeline-element=\"circle\"]{\n box-shadow: inset 0 0 0 6px #A0A1A2;\n } \n [fynd-timeline-element=\"circle-filled\"]{\n box-shadow: inset 0 0 0 8px #0E0E0E !important;\n } \n}\n\n[fynd-timeline-element=\"dot\"],\n[fynd-timeline-element=\"dot-filled\"] {\n width: 100%;\n height: 2px;\n border-radius: 10px;\n background: #A0A1A2;\n transition: background-color 0.3s ease;\n}\n\n[fynd-timeline-element=\"dot-filled\"] {\n background: #0E0E0E;\n}\n[fynd-timeline-element=\"circle\"]{\n transform: scale(.7);\n box-shadow: inset 0 0 0 20px #A0A1A2;\n} \n[fynd-timeline-element=\"circle-filled\"]{\n transform: scale(1);\n box-shadow: inset 0 0 0 10px #0E0E0E;\n} \n/* Timeline styles end*/\n\n\n/* Show only close icon when fynd-show-clear=\"true\" */\n[fynd-show-clear=\"true\"] {\n background-image: url('https://cdn.prod.website-files.com/67a9c8e5f2c74ac8c2c9b88b/6889f30ed6b4ea10c3b618c0_close.svg') !important;\n background-size: 20px !important;\n }\n \n /* Show only search icon when fynd-show-clear=\"false\" */\n [fynd-show-clear=\"false\"] {\n background-image: url('https://cdn.prod.website-files.com/67a9c8e5f2c74ac8c2c9b88b/67ce756d3fd77fc0515461fd_ic_search.svg') !important;\n background-size: 20px !important;\n }\n\n\n [fynd-richtext=\"accordian\"] ul > li strong {\n font-weight: normal;\n}\n\nth{\n font-weight: 600 !important;\n}\n.fynd-table_cell b{\n font-weight: 600;\n}\n.fynd-table_head b {\n font-weight: 600;\n}\n\n[data-style-over=\"richtext-comp\"] {\n color: black !important;\n text-decoration: none !important;\n}\n\n[data-style-over=\"richtext-comp\"] :hover {\n color: white !important;\n text-decoration: none !important;\n}\nul {\n color: var(--_color-palette---text--subtext);\n line-height : var(--_typography---line-height--160);\n}\n.fynd-table_instance {\n overflow: auto;\n overflow-x: auto;\n overflow-y: auto;\n}\n\n[strict-display=\"none\"]{\ndisplay: none !important;\n}\nblockquote>strong {\n font-weight: 500 !important;\n font-size: 1rem;\n font-style: normal;\n line-height: 1;\n color: var(--_primitives---neutral--neutral-100);\n }\n\n[data-popup-video=\"injected\"]{\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n z-index:2;\n}\n\n/* Gradient blur on video /image cards */\n/* <div class=\"gradient_blur\"><div></div><div></div><div></div><div></div><div></div><div></div></div> */\n.gradient_blur {\n opacity: 1;\n }\n .gradient_blur > div,\n .gradient_blur::before,\n .gradient_blur::after {\n position: absolute;\n inset: 0;\n }\n .gradient_blur::before {\n content: \"\";\n z-index: 1;\n backdrop-filter: blur(0.5px);\n mask: linear-gradient(\n to top,\n rgba(0, 0, 0, 0) 0%,\n rgba(0, 0, 0, 1) 12.5%,\n rgba(0, 0, 0, 1) 25%,\n rgba(0, 0, 0, 0) 37.5%\n );\n }\n .gradient_blur > div:nth-of-type(1) {\n z-index: 2;\n backdrop-filter: blur(1px);\n mask: linear-gradient(\n to top,\n rgba(0, 0, 0, 0) 12.5%,\n rgba(0, 0, 0, 1) 25%,\n rgba(0, 0, 0, 1) 37.5%,\n rgba(0, 0, 0, 0) 50%\n );\n }\n .gradient_blur > div:nth-of-type(2) {\n z-index: 3;\n backdrop-filter: blur(2px);\n mask: linear-gradient(\n to top,\n rgba(0, 0, 0, 0) 25%,\n rgba(0, 0, 0, 1) 37.5%,\n rgba(0, 0, 0, 1) 50%,\n rgba(0, 0, 0, 0) 62.5%\n );\n }\n .gradient_blur > div:nth-of-type(3) {\n z-index: 4;\n backdrop-filter: blur(4px);\n mask: linear-gradient(\n to top,\n rgba(0, 0, 0, 0) 37.5%,\n rgba(0, 0, 0, 1) 50%,\n rgba(0, 0, 0, 1) 62.5%,\n rgba(0, 0, 0, 0) 75%\n );\n }\n .gradient_blur > div:nth-of-type(4) {\n z-index: 5;\n backdrop-filter: blur(8px);\n mask: linear-gradient(\n to top,\n rgba(0, 0, 0, 0) 50%,\n rgba(0, 0, 0, 1) 62.5%,\n rgba(0, 0, 0, 1) 75%,\n rgba(0, 0, 0, 0) 87.5%\n );\n }\n .gradient_blur > div:nth-of-type(5) {\n z-index: 6;\n backdrop-filter: blur(16px);\n mask: linear-gradient(\n to top,\n rgba(0, 0, 0, 0) 62.5%,\n rgba(0, 0, 0, 1) 75%,\n rgba(0, 0, 0, 1) 87.5%,\n rgba(0, 0, 0, 0) 100%\n );\n }\n .gradient_blur > div:nth-of-type(6) {\n z-index: 7;\n backdrop-filter: blur(32px);\n mask: linear-gradient(\n to top,\n rgba(0, 0, 0, 0) 75%,\n rgba(0, 0, 0, 1) 87.5%,\n rgba(0, 0, 0, 1) 100%\n );\n }\n .gradient_blur::after {\n content: \"\";\n z-index: 8;\n backdrop-filter: blur(64px);\n mask: linear-gradient(\n to top,\n rgba(0, 0, 0, 0) 87.5%,\n rgba(0, 0, 0, 1) 100%\n );\n }\n \n /* updated z-index of navigation, it was overriding termly too */\n.navigation {\n z-index: 99999 !important; \n}\n\n/* Apply only if announcementbar=\"false\"\n[data-mobile-nav=\"main-menu\"][announcementbar=\"false\"] {\n top: 0; \n}*/\n#mobile-menu {\n top: 0px !important;\n transform: translateY(0px) !important;\n}\n\n/* Tablet and up (>=768px, adjust if your breakpoint differs) */\n@media (min-width: 768px) {\n#mobile-menu {\n top: 0px !important;\n transform: translateY(0px) !important;\n}\n}\n\n/* Mobile landscape (~480px to 767px, tweak if needed) */\n@media (max-width: 767px) and (orientation: landscape) {\n#mobile-menu {\n top: 50px !important;\n transform: translateY(0px) !important;\n}\n}\n[style-height=\"full\"]{\nheight:100%;\n}\n.custom-form_layout.w-variant-ccdd1f5c-cbc6-911f-3402-92637f9b226d {\n height: auto;\n}\n.custom-form_layout {\n height: auto;\n}\n.form_right-column {\n padding-left:0rem !important; \n padding-right:0rem !important; \n }\n \n @media screen and (max-width: 767px) {\n .hero-form {\n padding-top: 0rem !important; \n }\n}\n.is-select {\n appearance: none;\n -webkit-appearance: none; /* For Safari */\n -moz-appearance: none; /* For Firefox */\n}\n/* For Internet Explorer / Edge */\n.is-select::-ms-expand {\n display: none;\n}\n\n/* Added lightbox container fix */\n[data-popup-video=\"youtube-container\"]{\nz-index:4;\n}\n#widget-copilot{\n z-index: 10;\n position: relative;\n}\n\n\n\n\n/* contact popup */\n[contact-form-popup=\"open\"]{\nz-index: 100000000000;\n}\n\n/* background video */\n.fynd-bg-video>video {\nposition:static !important\n}\n\n/* hiding fynd schema copy button */\nbutton#fynd-schema-copy-btn {\n display: none !important;\n}\n\n/* copilot widget on top */\n@media (max-width: 768px) {\n#widget-copilot {\n z-index: 1000000000000 !important;\n}\n}\n\n/* Card blur effect on media card*/\n[card-blur=\"black\"]{\n backdrop-filter: blur(25px) brightness(0.8);\n -webkit-backdrop-filter: blur(25px) brightness(0.9);\n mask-image: linear-gradient(to top, rgba(0,0,0,0) 35%, rgba(0,0,0,1) 70%);\n -webkit-mask-image: linear-gradient(to top, rgba(0,0,0,0) 35%, rgba(0,0,0,1) 70%);\n}\n[card-blur=\"white\"]{\n backdrop-filter: blur(25px) brightness(1);\n -webkit-backdrop-filter: blur(25px) brightness(0.9);\n mask-image: linear-gradient(to top, rgba(0,0,0,0) 35%, rgba(0,0,0,1) 70%);\n -webkit-mask-image: linear-gradient(to top, rgba(0,0,0,0) 35%, rgba(0,0,0,1) 70%);\n}\n\n/* Default padding for media-card-padding=\"24\" */\n[media-card-padding=\"24\"] {\n padding: 24px;\n}\n\n/* Mobile override */\n@media (max-width: 600px) {\n [media-card-padding=\"24\"] {\n padding: 20px;\n }\n}\n\n/* Padding for media-card-padding=\"20\" */\n[media-card-padding=\"20\"] {\n padding: 20px;\n}\n\n/* Mobile keeps 20px for this one */\n@media (max-width: 600px) {\n [media-card-padding=\"20\"] {\n padding: 20px;\n }\n}"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/global/css/in-project-settings.css"],
|
|
4
|
+
"sourcesContent": ["/* Progressive scroll css start */\n[fynd-sticky-target]{\n height: 90vh;\n position: sticky;\n top: 12vh;\n z-index: 2;\n }\n[fynd-scroll-blocks]{\n display: none;\n }\n /* main element to decide the scroll height*/\n [fynd-scroll-source]{\n height: 80vh;\n }\n [fynd-sticky-source]{\n height: 80vh;\n width: 100%;\n position: absolute;\n top: 0px;\n opacity: 0;\n background-color: transparent;\n }\n [fynd-scroll-container]{\n opacity: 0;\n }\n [fynd-sticky-target] {\n height: 80vh;\n border-radius: 1rem;\n overflow: hidden;\n }\n [fynd-scroll-column]{\n padding-left: 0rem;\n padding-right: 0rem;\n }\n .progressive-scroll-image {\n object-fit: cover;\n }\n\n /* disable everything from tablet and below */\n @media (max-width: 991px) {\n [fynd-scroll-container]{\n opacity: 0;\n display: none ;\n }\n [fynd-scroll-blocks]{\n display: flex;\n }\n [fynd-sticky-source]{\n height: auto;\n position: static;\n opacity: 1;\n }\n [fynd-scroll-source]{\n height: auto;\n }\n }\n\n /* Progressive scroll css end */"],
|
|
5
|
+
"mappings": ";AACA,CAAC;AACG,UAAQ;AACP,YAAU;AACV,OAAK;AACL,WAAS;AACb;AACD,CAAC;AACI,WAAS;AACb;AAEA,CAAC;AACG,UAAQ;AACZ;AACA,CAAC;AACG,UAAQ;AACR,SAAO;AACP,YAAU;AACV,OAAK;AACL,WAAS;AACT,oBAAkB;AACtB;AACA,CAAC;AACG,WAAS;AACb;AACA,CAAC;AACG,UAAQ;AACR,iBAAe;AACf,YAAU;AACd;AACA,CAAC;AACG,gBAAc;AACd,iBAAe;AACnB;AACA,CAAC;AACE,cAAY;AACf;AAGA,OAAO,CAAC,SAAS,EAAE;AAChB,GAAC;AACG,aAAS;AACT,aAAS;AACb;AACA,GAAC;AACG,aAAS;AACb;AACA,GAAC;AACG,YAAQ;AACR,cAAU;AACV,aAAS;AACb;AACA,GAAC;AACG,YAAQ;AACZ;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../bin/live-reload.js", "../../src/global/custom-bg-video.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 wrappers = document.querySelectorAll<HTMLElement>(\"[custom-video]\");\n\n wrappers.forEach(wrapper => {\n const video = wrapper.querySelector<HTMLVideoElement>(\"video\");\n const img = wrapper.querySelector<HTMLImageElement>(\"img\");\n\n if (!video || !img) return;\n\n video.muted = true;\n video.loop = true;\n video.autoplay = true;\n video.preload = \"auto\"; // plays nicely with <link preload>\n\n const startPlayback = () => {\n img.style.display = \"none\";\n video.play().catch(() => {\n // autoplay might fail on some browsers if not muted early enough\n video.muted = true;\n video.play().catch(() => { });\n });\n video.removeEventListener(\"loadeddata\", startPlayback);\n };\n\n if (video.readyState >= 2) {\n startPlayback();\n } else {\n video.addEventListener(\"loadeddata\", startPlayback);\n }\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,WAAW,SAAS,iBAA8B,gBAAgB;AAExE,aAAS,QAAQ,aAAW;AACxB,YAAM,QAAQ,QAAQ,cAAgC,OAAO;AAC7D,YAAM,MAAM,QAAQ,cAAgC,KAAK;AAEzD,UAAI,CAAC,SAAS,CAAC,IAAK;AAEpB,YAAM,QAAQ;AACd,YAAM,OAAO;AACb,YAAM,WAAW;AACjB,YAAM,UAAU;AAEhB,YAAM,gBAAgB,MAAM;AACxB,YAAI,MAAM,UAAU;AACpB,cAAM,KAAK,EAAE,MAAM,MAAM;AAErB,gBAAM,QAAQ;AACd,gBAAM,KAAK,EAAE,MAAM,MAAM;AAAA,UAAE,CAAC;AAAA,QAChC,CAAC;AACD,cAAM,oBAAoB,cAAc,aAAa;AAAA,MACzD;AAEA,UAAI,MAAM,cAAc,GAAG;AACvB,sBAAc;AAAA,MAClB,OAAO;AACH,cAAM,iBAAiB,cAAc,aAAa;AAAA,MACtD;AAAA,IACJ,CAAC;AAAA,EACL,CAAC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../bin/live-reload.js", "../../src/global/loader.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", "interface LoadingStage {\n progress: number;\n message: string;\n delay: number;\n}\n\n// Page Loading Progress System\nclass PageLoader {\n private progressBar: HTMLElement | null = null;\n private progressText: HTMLElement | null = null;\n private loadingOverlay: HTMLElement | null = null;\n private currentProgress: number = 0;\n private loaderFill: HTMLElement | null = null;\n private clickLoader: HTMLElement | null = null;\n\n constructor() {\n this.init();\n }\n\n private init(): void {\n this.createLoader();\n this.interceptLinks();\n this.monitorPageLoad();\n }\n\n private createLoader(): void {\n // Find existing loader or create overlay\n this.loaderFill = document.querySelector(\".loader-fill[loader-fill]\");\n this.clickLoader = document.querySelector(\".click-loader\");\n\n if (!this.loaderFill) {\n return;\n }\n\n // Create overlay if click-loader isn't already positioned fixed\n if (\n this.clickLoader &&\n !this.clickLoader.style.position &&\n getComputedStyle(this.clickLoader).position !== \"fixed\"\n ) {\n this.loadingOverlay = document.createElement(\"div\");\n this.loadingOverlay.id = \"page-loading-overlay\";\n this.loadingOverlay.innerHTML = this.clickLoader.outerHTML;\n\n // Add overlay styles\n const styles = `\n <style>\n #page-loading-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(255, 255, 255, 0.95);\n z-index: 9999;\n display: none;\n backdrop-filter: blur(5px);\n }\n\n #page-loading-overlay .click-loader {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 300px;\n height: 5px;\n }\n\n .click-loader .loader-fill {\n height: 100%;\n width: 0%;\n border-radius: 4px;\n }\n \n </style>\n `;\n\n document.head.insertAdjacentHTML(\"beforeend\", styles);\n document.body.appendChild(this.loadingOverlay);\n\n // Update reference to the new loader in overlay\n this.loaderFill = this.loadingOverlay.querySelector(\n \".loader-fill[loader-fill]\"\n );\n } else {\n // Use existing loader, just hide it initially\n if (this.clickLoader) {\n this.clickLoader.style.display = \"none\";\n }\n }\n\n // Initialize loader fill width\n if (this.loaderFill) {\n this.loaderFill.style.width = \"0%\";\n }\n }\n\n private interceptLinks(): void {\n // Intercept all link clicks\n document.addEventListener(\"click\", (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n const link = target.closest(\"a[href]\") as HTMLAnchorElement;\n if (link && !link.hasAttribute(\"no-loader\")) {\n const href = link.getAttribute(\"href\");\n\n // Skip external links, anchors, and javascript: links\n if (\n href &&\n (href.startsWith(\"http\") ||\n href.startsWith(\"#\") ||\n href.startsWith(\"javascript:\"))\n ) {\n return;\n }\n\n e.preventDefault();\n if (href) {\n this.navigateWithProgress(href);\n }\n }\n });\n }\n\n public navigateWithProgress(url: string): void {\n this.showLoader();\n this.simulateProgress(url);\n }\n\n private showLoader(): void {\n if (this.loadingOverlay) {\n this.loadingOverlay.style.display = \"block\";\n } else if (this.clickLoader) {\n this.clickLoader.style.display = \"block\";\n }\n this.currentProgress = 0;\n this.updateProgress(0, \"Initializing...\");\n }\n\n private hideLoader(): void {\n if (this.loadingOverlay) {\n this.loadingOverlay.style.display = \"none\";\n } else if (this.clickLoader) {\n this.clickLoader.style.display = \"none\";\n }\n }\n\n private updateProgress(percent: number, message: string = \"\"): void {\n this.currentProgress = Math.min(percent, 100);\n\n // Update your loader-fill div width\n if (this.loaderFill) {\n this.loaderFill.style.width = this.currentProgress + \"%\";\n }\n\n const displayMessage =\n message || `Loading... ${Math.round(this.currentProgress)}%`;\n }\n\n private simulateProgress(url: string): void {\n const stages: LoadingStage[] = [\n { progress: 10, message: \"Preparing request...\", delay: 100 },\n { progress: 25, message: \"Connecting to server...\", delay: 150 },\n { progress: 40, message: \"Sending request...\", delay: 100 },\n { progress: 60, message: \"Receiving response...\", delay: 150 },\n { progress: 80, message: \"Processing content...\", delay: 50 },\n { progress: 95, message: \"Finalizing...\", delay: 50 },\n { progress: 100, message: \"Complete!\", delay: 100 },\n ];\n\n let currentStage = 0;\n\n const processStage = (): void => {\n if (currentStage < stages.length) {\n const stage = stages[currentStage];\n this.updateProgress(stage.progress, stage.message);\n\n setTimeout(() => {\n currentStage++;\n processStage();\n }, stage.delay);\n } else {\n // Navigation complete\n setTimeout(() => {\n window.location.href = url;\n }, 200);\n }\n };\n\n processStage();\n }\n\n // Monitor actual page loading events\n private monitorPageLoad(): void {\n // Track when page starts loading\n window.addEventListener(\"beforeunload\", () => {\n // Page unloading\n });\n\n // Track when new page loads\n window.addEventListener(\"load\", () => {\n this.hideLoader();\n });\n\n // Track DOM content loaded\n document.addEventListener(\"DOMContentLoaded\", () => {\n // DOM content loaded\n });\n\n // Track navigation timing (if supported)\n if (\"performance\" in window) {\n window.addEventListener(\"load\", () => {\n setTimeout(() => {\n const timing = performance.timing;\n const loadTime = timing.loadEventEnd - timing.navigationStart;\n\n // Detailed timing breakdown available but not logged\n const dnsLookupTime = timing.domainLookupEnd - timing.domainLookupStart;\n const tcpConnectionTime = timing.connectEnd - timing.connectStart;\n const requestTime = timing.responseStart - timing.requestStart;\n const responseTime = timing.responseEnd - timing.responseStart;\n const domProcessingTime = timing.domComplete - timing.domLoading;\n }, 100);\n });\n }\n }\n}\n\n// Extend Window interface for TypeScript\ndeclare global {\n interface Window {\n showPageLoader?: (url: string) => void;\n pageLoaderInstance?: PageLoader;\n }\n}\n\n// Initialize the page loader when DOM is ready\nif (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => {\n new PageLoader();\n });\n} else {\n new PageLoader();\n}\n\n// Optional: Add method to manually trigger loading for programmatic navigation\n(window as any).showPageLoader = function (url: string): void {\n if ((window as any).pageLoaderInstance) {\n (window as any).pageLoaderInstance.navigateWithProgress(url);\n }\n};\n\n// Store instance globally for manual control\nwindow.addEventListener(\"load\", () => {\n if (!(window as any).pageLoaderInstance) {\n (window as any).pageLoaderInstance = new PageLoader();\n }\n});\n\n// Export to make this file a module\nexport { };"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../bin/live-reload.js", "../../src/global/media-card.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 cards = document.querySelectorAll<HTMLElement>(\"[media-card]\");\n const isSmallViewport = window.innerWidth < 992;\n\n cards.forEach(card => {\n const type = card.getAttribute(\"media-card\");\n const hoverAttr = card.getAttribute(\"media-card-hover\");\n const enableHover = hoverAttr !== \"false\";\n\n if (type === \"image\") {\n setupImageHover(card, enableHover);\n\n } else if (type === \"video-on-hover\") {\n // On small devices, treat hover videos like loop videos\n if (isSmallViewport) {\n setupVideoLoop(card, false);\n } else {\n setupVideoHover(card, enableHover);\n }\n\n } else if (type === \"video-on-loop\") {\n setupVideoLoop(card, enableHover);\n }\n });\n});\n\nfunction setupImageHover(card: HTMLElement, enableHover: boolean) {\n const img = card.querySelector<HTMLImageElement>(\"img\");\n if (!img) return;\n\n img.style.transition = \"transform 200ms ease\";\n\n if (!enableHover) return;\n\n card.addEventListener(\"mouseenter\", () => {\n img.style.transform = \"scale(1)\";\n });\n\n card.addEventListener(\"mouseleave\", () => {\n img.style.transform = \"scale(1)\";\n });\n}\n\nfunction attemptVideoPlay(video: HTMLVideoElement, retries = 4): Promise<void> {\n return video.play().catch(() => {\n return new Promise<void>((resolve, reject) => {\n if (retries <= 0) {\n reject();\n return;\n }\n\n setTimeout(() => {\n attemptVideoPlay(video, retries - 1).then(resolve).catch(reject);\n }, 120);\n });\n });\n}\n\nfunction setupVideoHover(card: HTMLElement, enableHover: boolean) {\n const video = card.querySelector<HTMLVideoElement>(\"video\");\n const img = card.querySelector<HTMLImageElement>(\"img\");\n if (!video || !img) return;\n\n const hasSrc = Boolean(video.currentSrc || video.src);\n if (!hasSrc) return;\n\n video.muted = true;\n video.playsInline = true;\n\n img.style.transition = \"opacity 200ms ease\";\n video.style.transition = \"opacity 200ms ease, transform 200ms ease\";\n video.style.transform = \"scale(1)\";\n video.style.opacity = \"0\";\n video.style.display = \"block\";\n img.style.opacity = \"1\";\n\n let hovering = false;\n let firstFullPlayDone = false;\n\n const isVideoReady = () =>\n video.readyState >= HTMLMediaElement.HAVE_FUTURE_DATA;\n\n const showVideo = () => {\n img.style.opacity = \"0\";\n video.style.opacity = \"1\";\n };\n\n const showImage = () => {\n img.style.opacity = \"1\";\n video.style.opacity = \"0\";\n };\n\n const onEnded = () => {\n firstFullPlayDone = true;\n if (hovering) {\n video.loop = true;\n attemptVideoPlay(video).catch(() => { });\n }\n };\n\n video.addEventListener(\"ended\", onEnded);\n\n if (!enableHover) return;\n\n card.addEventListener(\"mouseenter\", () => {\n hovering = true;\n video.style.transform = \"scale(1)\";\n showVideo();\n\n if (isVideoReady()) {\n attemptVideoPlay(video).catch(() => { });\n } else {\n const onCanPlay = () => {\n video.removeEventListener(\"canplay\", onCanPlay);\n showVideo();\n attemptVideoPlay(video).catch(() => { });\n };\n\n video.addEventListener(\"canplay\", onCanPlay, { once: true });\n video.load();\n }\n });\n\n card.addEventListener(\"mouseleave\", () => {\n hovering = false;\n video.style.transform = \"scale(1)\";\n video.loop = false;\n\n video.pause();\n showImage();\n });\n}\n\nfunction setupVideoLoop(card: HTMLElement, enableHover: boolean) {\n const video = card.querySelector<HTMLVideoElement>(\"video\");\n const img = card.querySelector<HTMLImageElement>(\"img\");\n if (!video) return;\n\n const hasSrc = Boolean(video.currentSrc || video.src);\n if (!hasSrc) return;\n\n video.muted = true;\n video.playsInline = true;\n video.loop = true;\n\n if (img) {\n img.style.transition = \"opacity 200ms ease\";\n img.style.opacity = \"1\";\n }\n\n video.style.transition = \"opacity 200ms ease, transform 200ms ease\";\n video.style.transform = \"scale(1)\";\n video.style.opacity = \"0\";\n video.style.display = \"block\";\n\n const isVideoReady = () =>\n video.readyState >= HTMLMediaElement.HAVE_FUTURE_DATA;\n\n const showVideo = () => {\n if (img) img.style.opacity = \"0\";\n video.style.opacity = \"1\";\n };\n\n const startPlayback = () => {\n showVideo();\n attemptVideoPlay(video).catch(() => { });\n };\n\n if (isVideoReady()) {\n startPlayback();\n } else {\n const onCanPlay = () => {\n video.removeEventListener(\"canplay\", onCanPlay);\n startPlayback();\n };\n\n video.addEventListener(\"canplay\", onCanPlay, { once: true });\n video.load();\n }\n\n if (enableHover) {\n card.addEventListener(\"mouseenter\", () => {\n video.style.transform = \"scale(1)\";\n });\n\n card.addEventListener(\"mouseleave\", () => {\n video.style.transform = \"scale(1)\";\n });\n }\n}"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../bin/live-reload.js", "../../src/global/preload-media.ts", "../../src/global/miscellaneous.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", "// Utility function to preload images and videos based on custom attributes\n\nfunction preloadSrc(src: string | null, type: \"image\" | \"video\"): void {\n if (!src) return;\n \n if (type === \"image\") {\n const img = new Image();\n img.src = src;\n } else if (type === \"video\") {\n const video = document.createElement(\"video\");\n video.preload = \"auto\";\n video.src = src;\n }\n }\n \n function addPreloadLink(src: string, asType: \"image\" | \"video\"): void {\n const link = document.createElement(\"link\");\n link.rel = \"preload\";\n link.as = asType;\n link.href = src;\n document.head.appendChild(link);\n }\n \n export function preloadFyndMedia(): void {\n document.addEventListener(\"DOMContentLoaded\", () => {\n // Preload images with fynd-image-preload=\"true\"\n const images = document.querySelectorAll<HTMLImageElement>('img[fynd-image-preload=\"true\"]');\n images.forEach((img) => {\n const src = img.getAttribute(\"src\");\n if (src) {\n preloadSrc(src, \"image\");\n // Optionally add preload hint:\n // addPreloadLink(src, \"image\");\n }\n });\n \n // Preload videos with fynd-video-preload=\"true\"\n const videos = document.querySelectorAll<HTMLVideoElement>('video[fynd-video-preload=\"true\"]');\n videos.forEach((video) => {\n const src = video.getAttribute(\"src\");\n if (src) {\n preloadSrc(src, \"video\");\n // Optionally add preload hint:\n // addPreloadLink(src, \"video\");\n }\n });\n });\n }", "import { preloadFyndMedia } from \"./preload-media\";\n\ntype ApplyUtmsResult = {\n updated: number;\n details: Array<{\n element: HTMLAnchorElement;\n before: string;\n after: string;\n }>;\n};\n\ntype ApplyUtmsOptions = {\n scope?: ParentNode;\n baseUrl?: string;\n log?: boolean;\n};\n\n// Replace footer form hash links\nfunction replaceFooterFormLinks(): void {\n const footerLinks = document.querySelectorAll('a[href=\"#footer-form\"]');\n\n footerLinks.forEach((link: Element) => {\n const anchorElement = link as HTMLAnchorElement;\n anchorElement.href = \"/contact-us\";\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", replaceFooterFormLinks);\n\nif (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", replaceFooterFormLinks);\n} else {\n replaceFooterFormLinks();\n}\n\n// Add richtext-button=\"primary\" to all em tags under p > a > em\ndocument.addEventListener(\"DOMContentLoaded\", (): void => {\n const emTags: NodeListOf<HTMLElement> =\n document.querySelectorAll(\"p > a > em\");\n emTags.forEach((em: HTMLElement) => {\n em.setAttribute(\"richtext-button\", \"primary\");\n });\n});\n\n// Add UTMs to all links with href containing console.fynd.com\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n setTimeout(() => {\n function updateLinks(): void {\n const getQueryParams = (): URLSearchParams => {\n return new URLSearchParams(window.location.search);\n };\n const utmParams: URLSearchParams = getQueryParams();\n utmParams.set(\"referrer_domain\", window.location.hostname);\n utmParams.set(\"referrer_page\", window.location.pathname);\n const links: NodeListOf<HTMLAnchorElement> = document.querySelectorAll(\n '[href*=\"console.fynd.com\"]'\n );\n links.forEach((link: HTMLAnchorElement) => {\n const url = new URL(link.href);\n utmParams.forEach((value: string, key: string) => {\n url.searchParams.set(key, value);\n });\n link.href = url.toString();\n });\n }\n updateLinks();\n }, 100);\n});\n\n/**\n * Removes UTM params from internal links and, if the current page URL has UTMs,\n * applies those page-level UTMs to those internal links.\n */\nexport function applyPageUtmsToInternalLinks(\n options: ApplyUtmsOptions = {}\n): ApplyUtmsResult {\n const scope = options.scope ?? document;\n const base = new URL(options.baseUrl ?? window.location.href);\n const pageUtmParams = new URLSearchParams();\n for (const [k, v] of new URLSearchParams(base.search).entries()) {\n if (k.toLowerCase().startsWith(\"utm_\")) pageUtmParams.set(k, v);\n }\n const anchors = Array.from(\n scope.querySelectorAll<HTMLAnchorElement>(\"a[href]\")\n );\n\n const result: ApplyUtmsResult = { updated: 0, details: [] };\n for (const a of anchors) {\n let url: URL;\n try {\n url = new URL(a.getAttribute(\"href\")!, base);\n } catch {\n continue;\n }\n\n const isHttp = url.protocol === \"http:\" || url.protocol === \"https:\";\n const isInternal = url.hostname === base.hostname;\n if (!isHttp || !isInternal) continue;\n\n const before = a.href;\n const keysToDelete: string[] = [];\n for (const key of url.searchParams.keys()) {\n if (key.toLowerCase().startsWith(\"utm_\")) keysToDelete.push(key);\n }\n keysToDelete.forEach((k) => url.searchParams.delete(k));\n if ([...pageUtmParams.keys()].length > 0) {\n for (const [k, v] of pageUtmParams.entries()) {\n url.searchParams.set(k, v);\n }\n }\n const after = url.toString();\n if (after !== before) {\n a.href = after;\n result.updated += 1;\n result.details.push({ element: a, before, after });\n }\n }\n // Logging removed for production\n\n return result;\n}\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n setTimeout(() => {\n applyPageUtmsToInternalLinks({ log: true });\n }, 200);\n});\n\n//calling preloadFyndMedia\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n preloadFyndMedia();\n});\n\n// // Auto-play all background videos with fynd-autoplay=\"true\" safely\n// document.addEventListener(\"DOMContentLoaded\", () => {\n// const videos = document.querySelectorAll<HTMLVideoElement>(\n// 'video[fynd-autoplay=\"true\"]'\n// );\n\n// if (!videos.length) {\n// console.warn('No videos found with fynd-autoplay=\"true\".');\n// return;\n// }\n\n// videos.forEach((video) => {\n// // Ensure the video is muted and loops\n// video.muted = true;\n// video.loop = true;\n// video.autoplay = true;\n// video.playsInline = true;\n\n// // Start playback\n// const playPromise = video.play();\n\n// if (playPromise !== undefined) {\n// playPromise\n// .then(() => {\n// console.log(\"Background video started:\", video);\n// })\n// .catch((err) => {\n// console.warn(\"Background video autoplay failed:\", err);\n// });\n// }\n// });\n// });\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../bin/live-reload.js", "../../src/global/number-count.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", "// Run on DOM ready\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n type TargetPayload = { value: number; decimals: number };\n \n // Helper: count decimal places from the original text\n const decimalsOf = (s: string): number => {\n const dot = s.indexOf(\".\");\n return dot >= 0 ? s.length - dot - 1 : 0;\n };\n \n const elements = Array.from(\n document.querySelectorAll<HTMLElement>(\"[fynd-number-count]\")\n );\n \n // Prepare each element: capture final target and set initial text\n for (const el of elements) {\n const targetText = (el.textContent || \"\").trim();\n const targetVal = parseFloat(targetText);\n if (Number.isNaN(targetVal)) {\n // Nothing to animate if final isn't a number\n continue;\n }\n \n const initialAttr = el.getAttribute(\"fynd-number-count\") ?? \"\";\n const initial =\n initialAttr.trim() === \"\" ? 0 : parseFloat(initialAttr.trim());\n const startVal = Number.isNaN(initial) ? 0 : initial;\n \n // Set initial visible value (respect decimal places of the target)\n const decimals = decimalsOf(targetText);\n el.textContent = startVal.toFixed(decimals);\n \n // Stash target & formatting info on the element\n (el as any)._fyndTarget = { value: targetVal, decimals } satisfies TargetPayload;\n }\n \n // Animate a single element from its current text to the stored target\n const animateCount = (el: HTMLElement) => {\n const payload = (el as any)._fyndTarget as TargetPayload | undefined;\n if (!payload) return;\n \n const durationAttr = el.getAttribute(\"fynd-number-count-duration\");\n const durationParsed = durationAttr ? parseInt(durationAttr, 10) : NaN;\n const duration = Number.isNaN(durationParsed) ? 1500 : Math.max(0, durationParsed);\n \n const startText = (el.textContent || \"0\").trim();\n const start = parseFloat(startText);\n const end = payload.value;\n \n if (Number.isNaN(start) || Number.isNaN(end) || duration === 0 || start === end) {\n el.textContent = end.toFixed(payload.decimals);\n return;\n }\n \n const t0 = performance.now();\n const tick = (now: number) => {\n const t = Math.min(1, (now - t0) / duration); // linear easing\n const current = start + (end - start) * t;\n el.textContent = current.toFixed(payload.decimals);\n if (t < 1) {\n requestAnimationFrame(tick);\n } else {\n // snap to final\n el.textContent = end.toFixed(payload.decimals);\n }\n };\n requestAnimationFrame(tick);\n };\n \n // Observe visibility and trigger animation once per element\n const io = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (!entry.isIntersecting) continue;\n const el = entry.target as HTMLElement;\n if ((el as any)._fyndAnimated) {\n io.unobserve(el);\n continue;\n }\n (el as any)._fyndAnimated = true;\n // delay 100ms before starting the animation\n setTimeout(() => animateCount(el), 100);\n io.unobserve(el);\n }\n },\n { threshold: 0.2 } // start when ~20% visible (tweak as needed)\n );\n \n for (const el of elements) {\n io.observe(el);\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;;;ACTA,WAAS,iBAAiB,oBAAoB,MAAM;AAIhD,UAAM,aAAa,CAAC,MAAsB;AACxC,YAAM,MAAM,EAAE,QAAQ,GAAG;AACzB,aAAO,OAAO,IAAI,EAAE,SAAS,MAAM,IAAI;AAAA,IACzC;AAEA,UAAM,WAAW,MAAM;AAAA,MACrB,SAAS,iBAA8B,qBAAqB;AAAA,IAC9D;AAGA,eAAW,MAAM,UAAU;AACzB,YAAM,cAAc,GAAG,eAAe,IAAI,KAAK;AAC/C,YAAM,YAAY,WAAW,UAAU;AACvC,UAAI,OAAO,MAAM,SAAS,GAAG;AAE3B;AAAA,MACF;AAEA,YAAM,cAAc,GAAG,aAAa,mBAAmB,KAAK;AAC5D,YAAM,UACJ,YAAY,KAAK,MAAM,KAAK,IAAI,WAAW,YAAY,KAAK,CAAC;AAC/D,YAAM,WAAW,OAAO,MAAM,OAAO,IAAI,IAAI;AAG7C,YAAM,WAAW,WAAW,UAAU;AACtC,SAAG,cAAc,SAAS,QAAQ,QAAQ;AAG1C,MAAC,GAAW,cAAc,EAAE,OAAO,WAAW,SAAS;AAAA,IACzD;AAGA,UAAM,eAAe,CAAC,OAAoB;AACxC,YAAM,UAAW,GAAW;AAC5B,UAAI,CAAC,QAAS;AAEd,YAAM,eAAe,GAAG,aAAa,4BAA4B;AACjE,YAAM,iBAAiB,eAAe,SAAS,cAAc,EAAE,IAAI;AACnE,YAAM,WAAW,OAAO,MAAM,cAAc,IAAI,OAAO,KAAK,IAAI,GAAG,cAAc;AAEjF,YAAM,aAAa,GAAG,eAAe,KAAK,KAAK;AAC/C,YAAM,QAAQ,WAAW,SAAS;AAClC,YAAM,MAAM,QAAQ;AAEpB,UAAI,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,GAAG,KAAK,aAAa,KAAK,UAAU,KAAK;AAC/E,WAAG,cAAc,IAAI,QAAQ,QAAQ,QAAQ;AAC7C;AAAA,MACF;AAEA,YAAM,KAAK,YAAY,IAAI;AAC3B,YAAM,OAAO,CAAC,QAAgB;AAC5B,cAAM,IAAI,KAAK,IAAI,IAAI,MAAM,MAAM,QAAQ;AAC3C,cAAM,UAAU,SAAS,MAAM,SAAS;AACxC,WAAG,cAAc,QAAQ,QAAQ,QAAQ,QAAQ;AACjD,YAAI,IAAI,GAAG;AACT,gCAAsB,IAAI;AAAA,QAC5B,OAAO;AAEL,aAAG,cAAc,IAAI,QAAQ,QAAQ,QAAQ;AAAA,QAC/C;AAAA,MACF;AACA,4BAAsB,IAAI;AAAA,IAC5B;AAGA,UAAM,KAAK,IAAI;AAAA,MACb,CAAC,YAAY;AACX,mBAAW,SAAS,SAAS;AAC3B,cAAI,CAAC,MAAM,eAAgB;AAC3B,gBAAM,KAAK,MAAM;AACjB,cAAK,GAAW,eAAe;AAC7B,eAAG,UAAU,EAAE;AACf;AAAA,UACF;AACA,UAAC,GAAW,gBAAgB;AAE5B,qBAAW,MAAM,aAAa,EAAE,GAAG,GAAG;AACtC,aAAG,UAAU,EAAE;AAAA,QACjB;AAAA,MACF;AAAA,MACA,EAAE,WAAW,IAAI;AAAA;AAAA,IACnB;AAEA,eAAW,MAAM,UAAU;AACzB,SAAG,QAAQ,EAAE;AAAA,IACf;AAAA,EACF,CAAC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../bin/live-reload.js", "../../src/utils/is-staging.ts", "../../src/global/popup-video.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", "export function IsStaging(): boolean {\n return window.location.hostname === 'fynd-one-master.webflow.io';\n}", "// Smooth video modal with GSAP + optional YouTube support\n// Assumes GSAP is loaded via CDN and available as a global `gsap`\n// Loads YouTube IFrame API on demand\n\nimport { IsStaging } from \"$utils/is-staging\";\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n const gsap = (window as any).gsap;\n if (!gsap) {\n console.error(\n \"GSAP is not loaded. Please ensure the GSAP CDN is included.\"\n );\n return;\n }\n\n const wrapper = document.querySelector<HTMLElement>(\n '[data-popup-video=\"wrapper\"]'\n );\n const content = document.querySelector<HTMLElement>(\n '[data-popup-video=\"content\"]'\n );\n const overlay = document.querySelector<HTMLElement>(\n '[data-popup-video=\"overlay\"]'\n );\n\n const openTriggers = document.querySelectorAll<HTMLElement>(\n '[data-popup-video-trigger=\"open\"]'\n );\n const closeTriggers = document.querySelectorAll<HTMLElement>(\n '[data-popup-video-trigger=\"close\"]'\n );\n\n if (IsStaging()) {\n if (!wrapper) console.error('Missing [data-popup-video=\"wrapper\"] element.');\n if (!content) console.error('Missing [data-popup-video=\"content\"] element.');\n if (!overlay) console.error('Missing [data-popup-video=\"overlay\"] element.');\n }\n\n if (!openTriggers.length)\n console.warn('No [data-popup-video=\"open-trigger\"] elements found.');\n if (!closeTriggers.length)\n console.warn('No [data-popup-video=\"close-trigger\"] elements found.');\n\n if (!wrapper || !content || !overlay) return;\n\n // Initial state\n gsap.set(wrapper, { display: \"none\" });\n gsap.set([overlay, content], { opacity: 0 });\n gsap.set(content, { scale: 0.9 });\n\n // ---------------------------\n // YouTube helpers and state\n // ---------------------------\n let ytPlayer: any | null = null;\n let ytContainer: HTMLDivElement | null = null;\n\n function extractYouTubeId(url: string): string | null {\n try {\n const u = new URL(url);\n if (u.hostname.includes(\"youtube.com\")) {\n // https://www.youtube.com/watch?v=VIDEOID or /embed/VIDEOID\n if (u.searchParams.get(\"v\")) return u.searchParams.get(\"v\");\n const parts = u.pathname.split(\"/\").filter(Boolean);\n const embedIdx = parts.indexOf(\"embed\");\n if (embedIdx !== -1 && parts[embedIdx + 1]) return parts[embedIdx + 1];\n }\n if (u.hostname === \"youtu.be\") {\n const parts = u.pathname.split(\"/\").filter(Boolean);\n if (parts[0]) return parts[0];\n }\n return null;\n } catch {\n return null;\n }\n }\n\n let ytApiReadyPromise: Promise<void> | null = null;\n\n function ensureYouTubeAPI(): Promise<void> {\n if ((window as any).YT && (window as any).YT.Player) {\n return Promise.resolve();\n }\n if (ytApiReadyPromise) return ytApiReadyPromise;\n\n ytApiReadyPromise = new Promise<void>((resolve) => {\n const callbackName = \"onYouTubeIframeAPIReady\";\n const w = window as any;\n\n if (w.YT && w.YT.Player) {\n resolve();\n return;\n }\n\n const script = document.createElement(\"script\");\n script.src = \"https://www.youtube.com/iframe_api\";\n script.async = true;\n\n // If another loader already installed the callback, chain it\n const prev = (w as any)[callbackName];\n (w as any)[callbackName] = function () {\n if (typeof prev === \"function\") prev();\n resolve();\n };\n\n document.head.appendChild(script);\n });\n\n return ytApiReadyPromise;\n }\n\n function removeYouTube(): void {\n if (ytPlayer && typeof ytPlayer.destroy === \"function\") {\n try {\n ytPlayer.stopVideo?.();\n ytPlayer.destroy();\n } catch { }\n }\n ytPlayer = null;\n\n if (ytContainer && ytContainer.parentElement) {\n ytContainer.parentElement.removeChild(ytContainer);\n }\n ytContainer = null;\n }\n\n // ---------------------------\n // HTML5 video helpers\n // ---------------------------\n function removeInjectedVideo(): void {\n if (!content) return;\n const existing = content.querySelector<HTMLVideoElement>(\n 'video[data-popup-video=\"injected\"]'\n );\n if (existing) {\n try {\n existing.pause();\n existing.removeAttribute(\"src\");\n existing.querySelectorAll(\"source\").forEach((s) => s.remove());\n existing.load();\n } catch { }\n existing.remove();\n }\n }\n\n function createVideoElement(\n linkMP4?: string | null,\n linkWebm?: string | null\n ): HTMLVideoElement | null {\n const hasMP4 = !!(linkMP4 && linkMP4.trim());\n const hasWebm = !!(linkWebm && linkWebm.trim());\n\n if (!hasMP4 && !hasWebm) {\n console.error(\n \"openVideoModal requires at least one of linkMP4 or linkWebm when no YouTube URL is provided.\"\n );\n return null;\n }\n\n const video = document.createElement(\"video\");\n video.setAttribute(\"data-popup-video\", \"injected\");\n video.setAttribute(\"playsinline\", \"\");\n video.setAttribute(\"controls\", \"\");\n video.setAttribute(\"autoplay\", \"\");\n // For more reliable autoplay across mobile, consider uncommenting\n // video.muted = true;\n\n if (hasWebm) {\n const s = document.createElement(\"source\");\n s.src = linkWebm!.trim();\n s.type = \"video/webm\";\n video.appendChild(s);\n }\n\n if (hasMP4) {\n const s = document.createElement(\"source\");\n s.src = linkMP4!.trim();\n s.type = \"video/mp4\";\n video.appendChild(s);\n }\n\n return video;\n }\n\n // ---------------------------\n // Modal open and close\n // ---------------------------\n async function openVideoModal(\n linkMP4?: string | null,\n linkWebm?: string | null,\n youtubeUrl?: string | null\n ): Promise<void> {\n if (!wrapper || !content || !overlay) {\n console.error(\"Modal elements missing. Cannot open modal.\");\n return;\n }\n\n // Clean previous media\n removeYouTube();\n removeInjectedVideo();\n\n // Decide mode: YouTube takes precedence if provided\n const useYouTube = !!(youtubeUrl && youtubeUrl.trim());\n let openOk = true;\n\n if (useYouTube) {\n const id = extractYouTubeId(youtubeUrl!.trim());\n if (!id) {\n console.error(\"Invalid YouTube URL on trigger.\");\n openOk = false;\n } else {\n // Prepare container\n ytContainer = document.createElement(\"div\");\n ytContainer.setAttribute(\"data-popup-video\", \"youtube-container\");\n ytContainer.style.width = \"100%\";\n ytContainer.style.aspectRatio = \"16 / 9\";\n content.appendChild(ytContainer);\n\n try {\n await ensureYouTubeAPI();\n // Build the player\n ytPlayer = new (window as any).YT.Player(ytContainer, {\n width: \"100%\",\n height: \"100%\",\n videoId: id,\n playerVars: {\n autoplay: 1,\n controls: 1,\n rel: 0,\n modestbranding: 1,\n playsinline: 1,\n origin: window.location.origin,\n },\n events: {\n onReady: (ev: any) => {\n try {\n // Make sure sound is on\n ev.target.unMute?.();\n ev.target.setVolume?.(100);\n ev.target.playVideo?.();\n } catch { }\n },\n },\n });\n } catch (e) {\n console.error(\"Failed to initialize YouTube player:\", e);\n removeYouTube();\n openOk = false;\n }\n }\n } else {\n // HTML5 video fallback\n const videoEl = createVideoElement(linkMP4, linkWebm);\n if (!videoEl) {\n openOk = false;\n } else {\n content.appendChild(videoEl);\n }\n }\n\n if (!openOk) return;\n\n // Reset starting animation state on each open\n gsap.set([overlay, content], { opacity: 0 });\n gsap.set(content, { scale: 0.9 });\n\n // Show wrapper\n gsap.set(wrapper, { display: \"flex\" });\n\n // Animate overlay in\n gsap.to(overlay, {\n opacity: 1,\n duration: 0.3,\n ease: \"power2.out\",\n });\n\n // Animate content in with 0.2s delay\n gsap.to(content, {\n opacity: 1,\n scale: 1,\n duration: 0.35,\n delay: 0.3,\n ease: \"power2.out\",\n });\n\n console.log(\"Video modal opened.\");\n }\n\n function closeVideoModal(): void {\n if (!wrapper || !content || !overlay) {\n console.error(\"Modal elements missing. Cannot close modal.\");\n return;\n }\n\n // Reverse: fade/scale content down and fade overlay out\n const tl = gsap.timeline({\n defaults: { ease: \"power2.inOut\" },\n onComplete: () => {\n // Remove media after animation completes\n removeYouTube();\n removeInjectedVideo();\n\n gsap.set(wrapper, { display: \"none\" });\n console.log(\"Video modal closed.\");\n },\n });\n\n tl.to(content, { opacity: 0, scale: 0.9, duration: 0.25 }, 0).to(\n overlay,\n { opacity: 0, duration: 0.25 },\n 0\n );\n }\n\n // Bind triggers\n openTriggers.forEach((el) =>\n el.addEventListener(\"click\", () => {\n if (!wrapper) {\n console.error(\"Wrapper not found. Cannot open modal.\");\n return;\n }\n const mp4 = el.getAttribute(\"data-video-mp4\");\n const webm = el.getAttribute(\"data-video-webm\");\n const youtubeUrl = el.getAttribute(\"data-youtube-url\");\n // YouTube takes precedence when provided\n void openVideoModal(mp4, webm, youtubeUrl);\n })\n );\n\n closeTriggers.forEach((el) =>\n el.addEventListener(\"click\", () => {\n if (!wrapper) {\n console.error(\"Wrapper not found. Cannot close modal.\");\n return;\n }\n closeVideoModal();\n })\n );\n\n // Expose to window if you want to call manually\n (window as any).openVideoModal = openVideoModal;\n (window as any).closeVideoModal = closeVideoModal;\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../bin/live-reload.js", "../../src/global/progressive-scroll.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", "// Use GSAP via global window object without colliding with ScrollTrigger types\nconst GSAP = (window as any).gsap;\nconst GSAPScrollTrigger = (window as any).ScrollTrigger;\n\nif (!GSAP || !GSAPScrollTrigger) {\n console.warn(\n \"GSAP or ScrollTrigger is not available on window. Make sure they are loaded before this script.\"\n );\n} else {\n GSAP.registerPlugin(GSAPScrollTrigger);\n}\n\nfunction moveElements(\n sourceSelector: string,\n targetSelector: string,\n warningMessage: string\n): void {\n const target = document.querySelector<HTMLElement>(targetSelector);\n if (!target) {\n console.warn(warningMessage);\n return;\n }\n\n const sources = document.querySelectorAll<HTMLElement>(sourceSelector);\n if (sources.length === 0) {\n console.warn(`Warning: No elements found with selector ${sourceSelector}`);\n return;\n }\n\n sources.forEach((source) => {\n try {\n target.appendChild(source);\n } catch (error) {\n console.error(\"Error appending element\", { source, target }, error);\n }\n });\n}\n\nfunction initScrollBlocks(): void {\n moveElements(\n \"[fynd-sticky-source]\",\n \"[fynd-sticky-target]\",\n \"Warning: No element found with attribute fynd-sticky-target\"\n );\n\n moveElements(\n \"[fynd-scroll-source]\",\n \"[fynd-scroll-target]\",\n \"Warning: No element found with attribute fynd-scroll-target\"\n );\n}\n\nfunction safeGetLocalStorageItem(key: string): string | null {\n try {\n return window.localStorage.getItem(key);\n } catch (error) {\n console.warn(\"Unable to access localStorage\", error);\n return null;\n }\n}\n\nfunction safeSetLocalStorageItem(key: string, value: string | null): void {\n try {\n if (value === null) {\n window.localStorage.removeItem(key);\n } else {\n window.localStorage.setItem(key, value);\n }\n } catch (error) {\n console.warn(\"Unable to write to localStorage\", error);\n }\n}\n\nfunction initProgressiveScroll(): void {\n const sections = document.querySelectorAll<HTMLElement>(\"[fynd-scroll-source]\");\n if (sections.length === 0) {\n console.warn(\"No elements found with attribute fynd-scroll-source.\");\n return;\n }\n\n let timeout: number | undefined;\n let lastVisitedSection: string | null = null;\n\n safeSetLocalStorageItem(\"lastVisitedSection\", null);\n\n function debouncedScrollTrigger(attributeValue: string): void {\n if (!attributeValue) {\n console.warn(\"debouncedScrollTrigger called without valid attributeValue\");\n return;\n }\n\n if (timeout !== undefined) {\n window.clearTimeout(timeout);\n }\n\n const scrollSections =\n document.querySelectorAll<HTMLElement>(\"[fynd-scroll-source]\");\n if (scrollSections.length === 0) return;\n\n const first = scrollSections[0].getAttribute(\"fynd-scroll-source\");\n const last = scrollSections[scrollSections.length - 1].getAttribute(\n \"fynd-scroll-source\"\n );\n\n const currentEl = document.querySelector<HTMLElement>(\n `[fynd-scroll-source=\"${attributeValue}\"]`\n );\n\n if (!currentEl) {\n console.warn(`No scroll section found for ${attributeValue}`);\n return;\n }\n\n const currentVal = currentEl.getAttribute(\"fynd-scroll-source\");\n lastVisitedSection = safeGetLocalStorageItem(\"lastVisitedSection\");\n\n const currentNum = parseInt(currentVal || \"\", 10);\n const firstNum = parseInt(first || \"\", 10);\n const lastNum = parseInt(last || \"\", 10);\n const lastVisitedNum = parseInt(lastVisitedSection || \"\", 10);\n\n const atStart = currentNum === firstNum && lastVisitedNum === firstNum;\n const atEnd = currentNum === lastNum && lastVisitedNum === lastNum;\n\n if (atStart || atEnd) return;\n\n timeout = window.setTimeout(() => {\n updateStickyImage(attributeValue);\n safeSetLocalStorageItem(\"lastVisitedSection\", attributeValue);\n }, 50);\n }\n\n sections.forEach((section) => {\n const attr = section.getAttribute(\"fynd-scroll-source\");\n if (!attr) {\n console.warn(\"Element missing fynd-scroll-source attribute\", section);\n return;\n }\n\n if (!GSAP || !GSAPScrollTrigger) return;\n\n GSAPScrollTrigger.create({\n trigger: section,\n start: \"top 50%\",\n end: \"bottom 50%\",\n onEnter: () => debouncedScrollTrigger(attr),\n onEnterBack: () => debouncedScrollTrigger(attr),\n onLeave: () => debouncedScrollTrigger(attr),\n onLeaveBack: () => debouncedScrollTrigger(attr),\n });\n });\n}\n\nfunction updateStickyImage(identifier: string): void {\n if (!identifier) {\n console.warn(\"updateStickyImage called without valid identifier\");\n return;\n }\n\n const stickyImages =\n document.querySelectorAll<HTMLElement>(\"[fynd-sticky-source]\");\n if (stickyImages.length === 0) {\n console.warn(\"No elements found with attribute fynd-sticky-source\");\n return;\n }\n\n if (!GSAP) return;\n\n GSAP.killTweensOf(stickyImages);\n GSAP.set(stickyImages, { opacity: 0 });\n\n const activeImage = document.querySelector<HTMLElement>(\n `[fynd-sticky-source=\"${identifier}\"]`\n );\n\n if (!activeImage) {\n console.warn(`No sticky image found for ${identifier}`);\n return;\n }\n\n GSAP.to(activeImage, {\n opacity: 1,\n duration: 0.5,\n ease: \"power1.out\",\n });\n}\n\nfunction getScrollContainer(): void {\n const containers =\n document.querySelectorAll<HTMLElement>(\"[fynd-scroll-container]\");\n\n if (containers.length === 0) {\n console.warn(\"No elements found with attribute fynd-scroll-container\");\n return;\n }\n\n if (!GSAP) return;\n\n GSAP.to(containers, {\n opacity: 1,\n duration: 0.5,\n ease: \"power2.out\",\n delay: 0.5,\n });\n}\n\nfunction dynamiColorDesktop(): void {\n const elements = document.querySelectorAll<HTMLElement>(\"[fynd-sticky-bg]\");\n if (elements.length === 0) {\n console.warn(\"No elements found with attribute fynd-sticky-bg\");\n return;\n }\n\n elements.forEach((el) => {\n const value = el.getAttribute(\"fynd-sticky-bg\");\n if (!value) {\n console.warn(\"fynd-sticky-bg attribute missing a value\", el);\n return;\n }\n\n const isHex = /^#([0-9A-F]{3}){1,2}$/i.test(value);\n if (!isHex) {\n console.warn(\"Invalid hex color\", value, el);\n return;\n }\n\n el.style.backgroundColor = value;\n });\n}\n\nfunction dynamicColorMobile(): void {\n const element = document.querySelector<HTMLElement>(\"[fynd-sticky-bg]\");\n if (!element) {\n console.warn(\"No element found with attribute fynd-sticky-bg\");\n return;\n }\n\n const value = element.getAttribute(\"fynd-sticky-bg\");\n if (!value) {\n console.warn(\"fynd-sticky-bg attribute missing a value\");\n return;\n }\n\n const isHex = /^#([0-9A-F]{3}){1,2}$/i.test(value);\n if (!isHex) {\n console.warn(\"Invalid hex color\", value);\n return;\n }\n\n const cards = document.querySelectorAll<HTMLElement>(\"[fynd-card-bg-mobile]\");\n if (cards.length === 0) {\n console.warn(\"No elements found with attribute fynd-card-bg-mobile\");\n return;\n }\n\n cards.forEach((c) => {\n c.style.backgroundColor = value;\n });\n}\n\nlet desktopInitialized = false;\n\nfunction handleResize(): void {\n const width = window.innerWidth;\n\n if (width > 991) {\n if (!desktopInitialized) {\n dynamiColorDesktop();\n initScrollBlocks();\n initProgressiveScroll();\n getScrollContainer();\n desktopInitialized = true;\n }\n } else {\n dynamicColorMobile();\n }\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n handleResize();\n\n window.addEventListener(\"resize\", () => {\n handleResize();\n });\n});"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|