{"version":3,"file":"static/chunks/2359.bf32401b44fe8d52.js","mappings":"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","sources":["webpack://_N_E/../../../src/icons/triangle-alert.ts","webpack://_N_E/./components/dynamic-zone/Hero/Hero.tsx","webpack://_N_E/../../../src/icons/check.ts","webpack://_N_E/../../../src/icons/clock.ts","webpack://_N_E/../../../src/icons/phone.ts","webpack://_N_E/../../../src/icons/copy.ts","webpack://_N_E/../../../src/icons/shopping-cart.ts","webpack://_N_E/../../../src/icons/mail.ts","webpack://_N_E/../../../src/icons/star.ts","webpack://_N_E/../../../src/icons/circle-check-big.ts","webpack://_N_E/./lib/constants.ts","webpack://_N_E/../../../src/client/components/noop-head.tsx","webpack://_N_E/../../../src/icons/download.ts","webpack://_N_E/../../../src/icons/arrow-right.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name TriangleAlert\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEuNzMgMTgtOC0xNGEyIDIgMCAwIDAtMy40OCAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTMiIC8+CiAgPHBhdGggZD0iTTEyIDl2NCIgLz4KICA8cGF0aCBkPSJNMTIgMTdoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/triangle-alert\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst TriangleAlert = createLucideIcon('TriangleAlert', [\n [\n 'path',\n {\n d: 'm21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3',\n key: 'wmoenq',\n },\n ],\n ['path', { d: 'M12 9v4', key: 'juzpu7' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n]);\n\nexport default TriangleAlert;\n","'use client';\n\n// import { useScroll, useTransform } from 'framer-motion';\nimport { CheckCircle } from 'lucide-react';\nimport Head from 'next/head';\nimport Image from 'next/image';\nimport { useEffect, useRef, useState } from 'react';\nimport { CTA } from '@/components/CTA/CTA';\nimport { COMPANY_ASSETS } from '@/lib/constants';\nimport { components } from '@/types/strapi';\nimport { ContactForm } from '../../ContactForm';\nimport MediaCarousel from '../../media-carousel/MediaCarousel';\n\nconst defaultFeatures = [\n\t{ text: '30% Improved Delivery Rates' },\n\t{ text: '20% Cost Reduction' },\n\t{ text: '24/7 Expert Support' },\n\t{ text: '99.9% Uptime Guarantee' },\n];\n\nconst defaultGradient = {\n\tfrom: '#7C3AED', // purple-600\n\tvia: '#3B82F6', // blue-500\n\tto: '#06B6D4', // cyan-400\n};\nconst defaultTrustSeal = {\n\turl: COMPANY_ASSETS.trustSeal,\n\talternativeText: 'Trust Seal',\n};\n\nconst getOptimalImageUrl = (\n\ttrust_seal: components['schemas']['DynamicZoneHeroComponent']['trust_seal'],\n) => {\n\tif (!trust_seal?.formats) {\n\t\treturn trust_seal;\n\t}\n\n\tconst formats = trust_seal.formats as {\n\t\tlarge?: { url: string; width: number; height: number };\n\t\tmedium?: { url: string; width: number; height: number };\n\t\tsmall?: { url: string; width: number; height: number };\n\t\tthumbnail?: { url: string; width: number; height: number };\n\t};\n\n\t// Try to get the smallest format that's still large enough for our needs\n\tconst format = formats.small || formats.medium || formats.thumbnail;\n\treturn format || trust_seal;\n};\n\nexport const Hero = ({\n\theading = 'Welcome to Our Service',\n\tsub_heading = 'We provide the best solutions for your business needs.',\n\tbackground_gradient = defaultGradient,\n\tfeatures = defaultFeatures,\n\ttrust_seal = defaultTrustSeal,\n\tCTAs,\n\tform_scripts,\n\thero_image,\n}: components['schemas']['DynamicZoneHeroComponent']) => {\n\t// const { scrollY } = useScroll();\n\t// const y = useTransform(scrollY, [0, 500], [0, -150]);\n\tconst [isClientSide, setIsClientSide] = useState(false);\n\tconst [isMediaVisible, setIsMediaVisible] = useState(false);\n\tconst mediaRef = useRef(null);\n\tconst trustSealFormat = getOptimalImageUrl(trust_seal);\n\t// Detect client-side rendering\n\tuseEffect(() => {\n\t\tsetIsClientSide(true);\n\n\t\t// Preload trust seal image\n\t\tif (trustSealFormat?.url && typeof window !== 'undefined') {\n\t\t\tconst img = new window.Image();\n\t\t\timg.src = trustSealFormat?.url;\n\t\t}\n\t}, [trustSealFormat]);\n\n\t// Use Intersection Observer to detect when media section is visible\n\tuseEffect(() => {\n\t\tif (!mediaRef.current || isMediaVisible) return;\n\n\t\tconst observer = new IntersectionObserver(\n\t\t\tentries => {\n\t\t\t\tif (entries[0].isIntersecting) {\n\t\t\t\t\tsetIsMediaVisible(true);\n\t\t\t\t\tobserver.disconnect();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tthreshold: 0.1,\n\t\t\t\trootMargin: '100px', // Start loading slightly before it's visible\n\t\t\t},\n\t\t);\n\n\t\tobserver.observe(mediaRef.current);\n\n\t\treturn () => observer.disconnect();\n\t}, [isClientSide, isMediaVisible]);\n\n\tconst gradientStyle = background_gradient\n\t\t? {\n\t\t\t\tbackground: `linear-gradient(to bottom right, ${background_gradient.from}, ${background_gradient.via}, ${background_gradient.to})`,\n\t\t\t}\n\t\t: {\n\t\t\t\tbackground: `linear-gradient(to bottom right, ${defaultGradient.from}, ${defaultGradient.via}, ${defaultGradient.to})`,\n\t\t\t};\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t{trustSealFormat?.url && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t\t\n\t\t\t\t{/* Background Effects */}\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\n\t\t\t\t\t{/* Simple Wave */}\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t{/* Content */}\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{/* Left Column */}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t{heading}\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t{sub_heading}\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t{/* CTA Buttons */}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t{/* Features List */}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{features.map((feature, index) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{feature.text}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t{/* Trust Seal */}\n\t\t\t\t\t\t\t{trust_seal?.url && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t{/* Right Column - Contact Form or Hero Image */}\n\t\t\t\t\t\t