klz case study
Some checks failed
Build & Deploy Mintel Blog / build-and-deploy (push) Failing after 2m14s

This commit is contained in:
2026-02-02 12:01:48 +01:00
parent c9a4afe080
commit 8a7110e9ef
661 changed files with 11273 additions and 38324 deletions

View File

@@ -1,347 +1,322 @@
'use client';
import React from 'react';
import Link from 'next/link';
import { PageHeader } from '../../../src/components/PageHeader';
import { Section } from '../../../src/components/Section';
import { Reveal } from '../../../src/components/Reveal';
import { H2, H3, H4, LeadText, BodyText, Label } from '../../../src/components/Typography';
import { H1, H3, LeadText, Label, MonoLabel, BodyText } from '../../../src/components/Typography';
import { BackgroundGrid, Container } from '../../../src/components/Layout';
import { IframeSection } from '../../../src/components/IframeSection';
import { MotionButton } from '../../../src/components/Button';
import { cn } from '../../../src/utils/cn';
import { Check, Zap, Shield, Globe, Layout, Cpu, Smartphone, Truck, Users, MessageSquare } from 'lucide-react';
import Image from 'next/image';
import { IframeSection } from '../../../src/components/IframeSection';
import { HeroArchitecture } from '../../../src/components/Landing/Illustrations/HeroArchitecture';
import {
Activity,
Database,
Layout,
Users,
ArrowRight,
Zap,
ShieldCheck,
ShoppingBag,
Globe2,
Settings,
Search,
Monitor
} from 'lucide-react';
/**
* AMBILIGHT GLOW COMPONENT
*/
const AmbilightGlow: React.FC<{ color?: string; opacity?: string }> = ({
color = "rgba(148, 163, 184, 0.15)",
opacity = "opacity-40"
}) => (
<div
className={`absolute -inset-24 lg:-inset-40 blur-[100px] lg:blur-[160px] pointer-events-none ${opacity} z-0 transition-opacity duration-1000 group-hover:opacity-70`}
style={{ background: `radial-gradient(circle, ${color} 0%, transparent 75%)` }}
/>
);
export default function KLZCablesCaseStudy() {
const showcasePath = "/showcase/klz-cables/index.html";
return (
<div className="bg-white min-h-screen font-sans selection:bg-slate-200 dark:bg-slate-900 overflow-x-hidden text-slate-900">
<div className="flex flex-col bg-slate-50 relative min-h-screen selection:bg-slate-900 selection:text-white">
<BackgroundGrid />
{/* Hero Section - Immersive Presentation */}
<section className="relative min-h-[90vh] flex items-center pt-20 overflow-hidden bg-slate-50">
{/* Immersive Background: Technical Blueprint */}
<div className="absolute inset-0 pointer-events-none z-0">
<IframeSection
src={showcasePath}
height="120%"
desktopWidth={1920}
allowScroll={false}
minimal
className="h-full opacity-[0.12] grayscale scale-110 blur-[8px]"
/>
<div className="absolute inset-0 bg-gradient-to-tr from-white via-white/80 to-transparent backdrop-blur-[12px]" />
<div className="absolute inset-0 bg-[radial-gradient(circle_at_70%_50%,transparent,white_70%)] backdrop-blur-[4px]" />
</div>
{/* --- HERO: PURE INDUSTRIAL TYPOGRAPHY --- */}
<section className="relative min-h-[90vh] flex items-center pt-32 overflow-hidden border-b border-slate-200 bg-white">
{/* TECHNICAL GRID MOTIF */}
<div className="absolute inset-0 bg-[linear-gradient(to_right,#f1f5f9_1px,transparent_1px),linear-gradient(to_bottom,#f1f5f9_1px,transparent_1px)] bg-[size:4rem_4rem] [mask-image:radial-gradient(ellipse_60%_50%_at_70%_50%,#000_20%,transparent_100%)] pointer-events-none" />
<div className="absolute inset-0 bg-[radial-gradient(circle_at_70%_50%,rgba(15,23,42,0.02)_0%,transparent_50%)] pointer-events-none" />
<Container className="relative z-10">
<div className="max-w-4xl space-y-10">
<Container variant="narrow" className="relative z-10">
<div className="space-y-20">
<Reveal>
<div className="inline-flex items-center gap-3 px-4 py-1.5 rounded-full bg-slate-900 text-white text-[10px] font-black tracking-[0.2em] uppercase mb-4 shadow-xl shadow-slate-900/20">
<Zap className="w-3.5 h-3.5" />
Project Archive 01
</div>
<h1 className="text-6xl md:text-[10rem] font-black tracking-tighter text-slate-900 leading-[0.8] mb-4">
KLZ <span className="text-slate-200">CABLES</span>
</h1>
<p className="text-2xl md:text-3xl text-slate-400 font-medium max-w-2xl leading-tight">
Breaking the limitations of legacy WordPress for a <span className="text-slate-900">global power infrastructure leader.</span>
</p>
</Reveal>
<Reveal delay={0.4}>
<div className="flex flex-wrap gap-4">
<Link href="/technologies/next-js-14" className="group px-6 py-3 bg-white border border-slate-200 shadow-sm rounded-2xl text-xs font-black text-slate-400 hover:text-slate-900 hover:border-slate-900 transition-all">
NEXT.JS 14
</Link>
<Link href="/technologies/typescript" className="group px-6 py-3 bg-white border border-slate-200 shadow-sm rounded-2xl text-xs font-black text-slate-400 hover:text-slate-900 hover:border-slate-900 transition-all">
TYPESCRIPT
</Link>
<Link href="/technologies/directus-cms" className="group px-6 py-3 bg-white border border-slate-200 shadow-sm rounded-2xl text-xs font-black text-slate-400 hover:text-slate-900 hover:border-slate-900 transition-all">
DIRECTUS
</Link>
<Link href="/technologies/tailwind-css" className="group px-6 py-3 bg-white border border-slate-200 shadow-sm rounded-2xl text-xs font-black text-slate-400 hover:text-slate-900 hover:border-slate-900 transition-all">
TAILWIND
</Link>
<div className="inline-flex items-center gap-6">
<div className="w-12 h-px bg-slate-900" />
<div className="space-y-1">
<MonoLabel className="text-slate-900 tracking-[0.4em]">PROJECT // SYSTEM OPTIMIZATION</MonoLabel>
<Label className="text-[10px] text-slate-400">HARDENED WORDPRESS // PERFORMANCE STACK</Label>
</div>
</div>
</Reveal>
</div>
</Container>
</section>
{/* Section 01: The Migration Strategy */}
<section className="py-32 bg-white">
<Container>
<div className="grid grid-cols-1 lg:grid-cols-2 gap-20 items-center">
<div className="space-y-10">
<Reveal>
<div className="text-[10px] font-black tracking-[0.3em] text-slate-400 uppercase">Legacy Out. Architecture In.</div>
<H2 className="text-7xl font-black tracking-tighter leading-none mb-8">WP is not specialized.</H2>
<LeadText className="text-slate-500">
WordPress was slowing down KLZ's global growth. They needed a technical foundation that understands structured industrial data.
</LeadText>
<div className="grid grid-cols-2 gap-10 pt-8">
<div className="space-y-2 border-l-2 border-slate-900 pl-6">
<div className="text-4xl font-black text-slate-900">3x</div>
<div className="text-xs font-bold text-slate-400 uppercase tracking-widest">Faster Load</div>
</div>
<div className="space-y-2 border-l-2 border-slate-200 pl-6">
<div className="text-4xl font-black text-slate-900">0</div>
<div className="text-xs font-bold text-slate-400 uppercase tracking-widest">Plugins Needed</div>
</div>
</div>
<div className="pt-10">
<MotionButton href="/technologies/next-js-14" variant="outline" className="rounded-2xl px-8" showArrow={false}>
Explore the Stack
</MotionButton>
<Reveal delay={0.1}>
<H1 className="text-7xl md:text-[10rem] tracking-tighter leading-[0.8] font-bold">
KLZ Cables <br />
<span className="text-slate-200">2025 Case Study.</span>
</H1>
</Reveal>
<Reveal delay={0.2}>
<div className="max-w-3xl border-l-[3px] border-slate-900 pl-8 md:pl-16">
<LeadText className="text-2xl md:text-5xl leading-tight text-slate-900 font-medium">
Engineering a <br />
<span className="text-slate-400">Low-Latency Global System.</span>
</LeadText>
<BodyText className="mt-10 text-xl text-slate-500 max-w-xl leading-relaxed">
I reconstructed the digital spine for KLZ Cables. For a leader in high-voltage infrastructure, I delivered a high-performance system designed for technical precision rather than simple marketinga hardened tool for complex cable engineering.
</BodyText>
</div>
</Reveal>
</div>
<div className="relative">
<Reveal delay={0.3}>
<div className="space-y-6">
<IframeSection
src="/showcase/klz-cables/index.html"
height="700px"
desktopWidth={1440}
browserFrame
allowScroll={true}
perspective
rotate={-5}
title="The Global Hub"
description="Full-width industrial presentation for decision makers."
/>
<Reveal delay={0.3}>
<div className="flex flex-wrap gap-12 md:gap-24 pt-16 border-t border-slate-100">
<div className="space-y-3">
<Label className="text-slate-400">Cache Performance</Label>
<div className="flex items-center gap-3">
<div className="w-2.5 h-2.5 bg-green-500 rounded-full" />
<span className="text-2xl font-bold font-mono text-slate-900">&lt; 30ms TTFB</span>
</div>
</div>
<div className="space-y-3">
<Label className="text-slate-400">Stack Hardening</Label>
<div className="flex items-center gap-3 text-2xl font-bold font-mono text-slate-900">
<ShieldCheck className="w-6 h-6 text-green-500" />
<span>WP + Varnish</span>
</div>
</div>
</Reveal>
</div>
</div>
</Container>
</section>
{/* Section 02: Localization & Global Reach */}
<section className="py-32 bg-slate-900 text-white overflow-hidden">
<Container>
<div className="flex flex-col items-center text-center max-w-3xl mx-auto mb-20">
<Reveal>
<Label className="text-slate-500 mb-4 tracking-[0.4em]">MULTI-LANG INFRASTRUCTURE</Label>
<H2 className="text-6xl font-black text-white leading-none">Global Native.</H2>
<LeadText className="text-slate-400 mt-6">
KLZ Cables operates from Germany with a global reach. I implemented a headless localization strategy that serves both markets without data duplication.
</LeadText>
</Reveal>
</div>
<div className="space-y-32">
<Reveal className="relative group">
<IframeSection
src="/showcase/klz-cables/de/start/index.html"
height="700px"
desktopWidth={1440}
browserFrame
allowScroll
perspective
rotate={5}
title="DE: German Expertise"
description="Engineered for the domestic power grid."
className="grayscale-0 group-hover:scale-[1.01] transition-all duration-700"
/>
<div className="absolute top-1/2 left-4 -translate-y-1/2 pointer-events-none opacity-0 group-hover:opacity-100 transition-opacity">
<span className="bg-slate-900 text-white px-8 py-4 rounded-2xl font-black text-xs uppercase tracking-widest shadow-2xl">Deutsch</span>
</div>
</Reveal>
<Reveal delay={0.2} className="relative group">
<IframeSection
src="/showcase/klz-cables/index.html"
height="700px"
desktopWidth={1440}
browserFrame
allowScroll
perspective
rotate={-5}
title="EN: International Standard"
description="Supporting global energy projects."
className="grayscale-0 group-hover:scale-[1.01] transition-all duration-700"
/>
<div className="absolute top-1/2 right-4 -translate-y-1/2 pointer-events-none opacity-0 group-hover:opacity-100 transition-opacity">
<span className="bg-slate-900 text-white px-8 py-4 rounded-2xl font-black text-xs uppercase tracking-widest shadow-2xl">English</span>
</div>
</Reveal>
</div>
</Container>
</section>
{/* Section 03: Product Engineering Detail */}
<section className="py-32 bg-white relative">
<Container>
<div className="grid grid-cols-1 lg:grid-cols-12 gap-20 items-start">
<div className="lg:col-span-4 sticky top-32 space-y-10">
<Reveal>
<Label className="text-slate-400 tracking-[0.3em]">CABLE TAXONOMY</Label>
<H2 className="text-6xl font-black tracking-tighter leading-none">Engineering Accuracy.</H2>
<BodyText className="text-slate-500 text-lg">
Each cable has hundreds of attributes. I designed a technical layout that makes "NA2XS(F)2Y" specs as readable as a news article.
</BodyText>
<ul className="space-y-6 pt-6">
<li className="flex gap-4 items-start">
<div className="w-12 h-12 shrink-0 bg-slate-900 rounded-2xl flex items-center justify-center text-white font-black">01</div>
<div>
<h4 className="font-black text-slate-900">Dynamic Tables</h4>
<p className="text-sm text-slate-400">Spec-sheets generated from CMS data.</p>
</div>
</li>
<li className="flex gap-4 items-start">
<div className="w-12 h-12 shrink-0 bg-slate-100 rounded-2xl flex items-center justify-center text-slate-900 font-black">02</div>
<div>
<h4 className="font-black text-slate-900">Category Logic</h4>
<p className="text-sm text-slate-400">Low, Medium, and High Voltage separation.</p>
</div>
</li>
</ul>
</Reveal>
</div>
<div className="lg:col-span-8 space-y-32 pt-10 lg:pt-0">
<Reveal delay={0.3}>
<IframeSection
src="/showcase/klz-cables/power-cables/low-voltage-cables/index.html"
height="700px"
desktopWidth={1440}
browserFrame
allowScroll
perspective
rotate={5}
title="Low Voltage Detail"
description="Focus on NA2XY performance data."
/>
</Reveal>
<Reveal delay={0.5}>
<IframeSection
src="/showcase/klz-cables/power-cables/medium-voltage-cables/index.html"
height="700px"
desktopWidth={1440}
browserFrame
allowScroll
perspective
rotate={-5}
title="Medium Voltage Overview"
description="Grid distribution infrastructure."
/>
</Reveal>
</div>
</div>
</Container>
</section>
{/* Section 04: Performance Visualization */}
<section className="py-32 bg-slate-50 border-y border-slate-200">
<Container>
<div className="grid grid-cols-1 lg:grid-cols-2 gap-20 items-center">
<div className="order-2 lg:order-1">
<Reveal>
<div className="grid grid-cols-2 gap-4">
{[
{ l: 'Performance', v: '99', c: 'text-green-500' },
{ l: 'Accessibility', v: '100', c: 'text-green-500' },
{ l: 'Best Practices', v: '100', c: 'text-green-500' },
{ l: 'SEO', v: '98', c: 'text-green-500' }
].map((m, i) => (
<div key={i} className="bg-white p-8 rounded-3xl border border-slate-100 shadow-sm text-center">
<div className={cn("text-5xl font-black mb-1", m.c)}>{m.v}</div>
<div className="text-[10px] font-black tracking-widest uppercase text-slate-400">{m.l}</div>
</div>
))}
</div>
</Reveal>
</div>
<div className="order-1 lg:order-2 space-y-8">
<Reveal>
<Label className="text-slate-400 tracking-[0.3em]">METRICS THAT MATTER</Label>
<H2 className="text-6xl font-black leading-none">Speed is a Feature.</H2>
<BodyText className="text-slate-500 text-lg">
For industrial B2B, time is money. Slow websites lose contracts. I delivered a 100% static-first architecture that delivers technical data instantly, anywhere in the world.
</BodyText>
</Reveal>
</div>
</div>
</Container>
</section>
{/* Section 05: Brand & Communication */}
<section className="py-32 bg-white">
<Container>
<div className="flex flex-col items-center text-center max-w-3xl mx-auto mb-20">
{/* --- SECTION 01: THE ARCHITECTURE --- */}
<Section
number="01"
title="Architecture & Protocol Hardening"
borderBottom
containerVariant="normal"
>
<div className="grid grid-cols-1 md:grid-cols-2 gap-24 lg:gap-40 items-start">
<div className="space-y-12">
<Reveal>
<Label className="text-slate-400 tracking-[0.4em] mb-4">BRAND TRUST</Label>
<H2 className="text-6xl font-black leading-none">Industrial Confidence.</H2>
<LeadText className="text-slate-500 mt-6">
A high-tech website must feel high-tech. I evolved the KLZ Cables visual language while maintaining the trust they've built over decades.
</LeadText>
<H3 className="text-4xl md:text-5xl">
Headless <br />Orchestration.
</H3>
</Reveal>
<Reveal delay={0.1}>
<div className="space-y-8">
<BodyText className="text-xl leading-relaxed font-serif italic text-slate-500">
Enterprise B2B systems often suffer from protocol overhead and legacy technical debt.
</BodyText>
<BodyText className="text-lg text-slate-600 leading-relaxed">
I ruthlessly refactored the KLZ architecture to a decoupled, high-performance stack. By stripping the traditional theme layer, WordPress now functions strictly as a headless JSON provider. A multi-tier **Varnish cache layer** offloads 98% of traffic, while native PHP micro-services handle mission-critical REST logic, ensuring a &lt;30ms time-to-first-byte (TTFB) even under heavy industrial query loads.
</BodyText>
</div>
</Reveal>
</div>
<div className="space-y-32">
<Reveal>
<IframeSection
src="/showcase/klz-cables/klz-news/index.html"
height="700px"
desktopWidth={1440}
browserFrame
allowScroll
title="Dynamic News"
description="Instantly updated via Directus."
/>
</Reveal>
<div className="space-y-8">
<Reveal delay={0.2}>
<IframeSection
src="/showcase/klz-cables/team/index.html"
height="700px"
desktopWidth={1440}
browserFrame
allowScroll
title="Expert Team"
description="Human-centric B2B sales."
/>
</Reveal>
<Reveal delay={0.4}>
<IframeSection
src="/showcase/klz-cables/contact/index.html"
height="700px"
desktopWidth={1440}
browserFrame
allowScroll
title="Lead Gen"
description="Frictionless contact workflows."
/>
<div className="p-10 bg-white rounded-[2rem] border border-slate-200 shadow-sm space-y-12 relative overflow-hidden group hover:border-slate-900 transition-colors duration-700">
<div className="space-y-6 relative z-10">
<Label className="text-slate-900">System Metriken</Label>
<div className="space-y-6">
{[
{ label: 'Edge Caching', desc: 'Varnish + W3TC Object Cache' },
{ label: 'Analytics', desc: 'Independent Analytics (Privacy First)' },
{ label: 'Custom Core', desc: 'REST via Native PHP Snippets' }
].map((item, i) => (
<div key={i} className="space-y-2 border-b border-slate-100 pb-4 last:border-0 last:pb-0">
<MonoLabel className="text-[9px] text-slate-400">{item.label}</MonoLabel>
<BodyText className="text-sm font-bold text-slate-900">{item.desc}</BodyText>
</div>
))}
</div>
</div>
</div>
</Reveal>
</div>
</Container>
</div>
</Section>
{/* --- VISTA 01: CINEMATIC LANDING --- */}
<section className="py-24 bg-slate-100 border-y border-slate-200 overflow-hidden relative">
<div className="w-full max-w-[1920px] mx-auto px-4 sm:px-6 lg:px-8 relative z-10">
<Reveal>
<div className="relative mb-12 px-4 md:px-12 flex justify-between items-end">
<div className="space-y-4">
<Label className="text-slate-500">Architecture Validation</Label>
<H3 className="text-5xl md:text-7xl tracking-tighter">Performance Metrics.</H3>
</div>
</div>
</Reveal>
<Reveal delay={0.2} width="100%" className="w-full">
<div className="relative group w-full px-4 lg:px-12">
<div className="relative w-full aspect-[16/9] md:aspect-[21/9] lg:aspect-[16/10] overflow-visible">
<IframeSection
src="/showcase/klz-cables/index.html"
height="100%"
desktopWidth={1920}
allowScroll
browserFrame
className="w-full h-full transition-all duration-1000 ease-in-out no-scrollbar"
/>
</div>
</div>
</Reveal>
</div>
</section>
{/* Final CTA - Apple Style */}
<section className="py-48 bg-slate-900 overflow-hidden relative">
{/* Background Tech Skew */}
<div className="absolute top-0 right-0 w-1/2 h-full opacity-10 grayscale pointer-events-none translate-x-1/4 -skew-x-12">
<IframeSection src={showcasePath} height="100%" desktopWidth={1200} minimal />
</div>
{/* --- SECTION 03: CATALOG --- */}
<Section
number="02"
title="Daten-Struktur"
borderBottom
containerVariant="wide"
>
<div className="grid grid-cols-1 lg:grid-cols-12 gap-16 items-center">
<div className="lg:col-span-12 mb-12 text-center lg:text-left relative z-10">
<Reveal>
<H3 className="text-4xl md:text-6xl max-w-4xl tracking-tighter">
Parametric <br />Commerce Engine.
</H3>
</Reveal>
</div>
<Container className="relative z-10">
<div className="lg:col-span-8 relative group">
<Reveal width="100%">
<div className="relative h-[650px] w-full overflow-visible group">
<IframeSection
src="/showcase/klz-cables/power-cables.html"
height="100%"
desktopWidth={1920}
allowScroll
browserFrame
className="h-full w-full transition-all duration-700 no-scrollbar"
/>
</div>
</Reveal>
</div>
<div className="lg:col-span-4 space-y-10 relative z-10">
<Reveal delay={0.2}>
<div className="space-y-6">
<Label className="text-slate-400">Schema Optimization</Label>
<LeadText className="text-lg">
I reduced a complex, multi-variable WooCommerce data structure to a parametric interface. Using optimized SQL indices and localized edge caching, engineers can now drill down through 200+ high-voltage variants in real-time, reaching critical technical specifications in under two clicks.
</LeadText>
<div className="p-8 bg-white border border-slate-200 rounded-3xl shadow-sm">
<Zap className="w-6 h-6 text-slate-400 mb-4" />
<BodyText className="text-sm font-medium">Real-time configuration across 200+ SKU variants.</BodyText>
</div>
</div>
</Reveal>
</div>
</div>
</Section>
{/* --- SECTION 04: TECHNICAL DETAIL --- */}
<Section
number="03"
title="Asset Management"
variant="white"
borderBottom
containerVariant="wide"
>
<div className="grid grid-cols-1 gap-16">
<div className="grid grid-cols-1 lg:grid-cols-2 gap-12 items-end">
<Reveal>
<div className="space-y-6">
<Label className="text-slate-400">Asset Pipelines</Label>
<H3 className="text-4xl md:text-6xl tracking-tighter">Technical Data Integrity.</H3>
</div>
</Reveal>
<Reveal delay={0.1}>
<BodyText className="text-xl text-slate-500 pb-2 font-serif italic">
For high-voltage N2XS(F)2Y cables, data fidelity is a safety requirement. I engineered an automated asset pipeline that generates and validates technical data-sheets server-side, ensuring perfect parity between the engineering specs and the globally distributed system.
</BodyText>
</Reveal>
</div>
<Reveal delay={0.2} width="100%">
<div className="relative w-full group">
<div className="relative w-full overflow-visible">
<IframeSection
src="/showcase/klz-cables/products-power-cables-medium-voltage-cables-n2xsf2y.html"
height="1000px"
desktopWidth={1920}
allowScroll
offsetY={100}
browserFrame
className="w-full transition-all duration-1000 no-scrollbar"
/>
</div>
</div>
</Reveal>
</div>
</Section>
{/* --- SECTION 05: TEAM & TRUST --- */}
<Section
number="04"
title="Ergebnis"
borderBottom
containerVariant="wide"
>
<div className="space-y-16 text-center">
<Reveal>
<div className="max-w-2xl space-y-12">
<h2 className="text-7xl md:text-9xl font-black tracking-tighter text-white leading-[0.8]">
READY TO <br />
<span className="text-slate-600">UPGRADE?</span>
</h2>
<p className="text-2xl text-slate-400 font-medium">
I don't just build websites. I build industrial-grade digital infrastructure. Let's discuss your next project.
</p>
<div className="flex flex-col sm:flex-row gap-6">
<MotionButton href="/contact" className="bg-white text-slate-900 hover:bg-slate-100 rounded-2xl px-12 py-6 text-base" showArrow={false}>
Start your Project
</MotionButton>
<MotionButton href="/case-studies" variant="outline" className="text-white border-white/20 hover:border-white rounded-2xl px-12 py-6 text-base" showArrow={false}>
View more Cases
<H3 className="text-5xl md:text-8xl tracking-tighter">Infrastructural ROI.</H3>
<LeadText className="mx-auto max-w-2xl pt-6 text-xl">
By migrating from a bloated legacy monolithic stack to a high-performant industrial platform, I established KLZ Cables as the technical benchmark in the renewable energy sector.
</LeadText>
</Reveal>
<Reveal delay={0.2} width="100%">
<div className="relative group max-w-6xl mx-auto">
<div className="relative block w-full overflow-visible">
<IframeSection
src="/showcase/klz-cables/team.html"
height="850px"
desktopWidth={1440}
allowScroll
browserFrame
className="w-full h-full no-scrollbar"
/>
</div>
</div>
</Reveal>
</div>
</Section>
{/* --- FINAL CTA --- */}
<section className="py-40 md:py-60 bg-white relative overflow-hidden">
<BackgroundGrid />
<Container variant="narrow" className="relative z-10 text-center">
<Reveal>
<div className="space-y-16">
<MonoLabel className="text-slate-400">MISSION CRITICAL INFRASTRUCTURE COMPLETED</MonoLabel>
<H3 className="text-6xl md:text-9xl tracking-tighter leading-none font-bold">
Digitale <br />
<span className="text-slate-200">Exzellenz.</span>
</H3>
<div className="pt-12">
<MotionButton href="/contact" variant="outline" className="px-12 py-6 text-xl group border-2">
System-Analyse anfragen
<ArrowRight className="inline-block ml-3 w-6 h-6 group-hover:translate-x-3 transition-transform duration-500" />
</MotionButton>
</div>
</div>

View File

@@ -31,7 +31,7 @@ export default function CaseStudiesPage() {
but a static image or a styled div is more standard for a card. */}
<div className="absolute inset-0 flex items-center justify-center bg-[#0117bf] transition-transform duration-700 group-hover:scale-105 p-12">
<Image
src="/showcase/klz-cables/wp-content/uploads/2024/11/white_logo_transparent_background.svg"
src="/showcase/klz-cables/assets/img/white_logo_transparent_background.svg"
alt="KLZ Cables Logo"
width={200}
height={200}
@@ -42,7 +42,7 @@ export default function CaseStudiesPage() {
<div className="space-y-4">
<Label>Infrastructure & Energy</Label>
<H3 className="group-hover:text-[#0117bf] transition-colors">KLZ Cables Modernisierung eines Energie-Portals</H3>
<H3 className="group-hover:text-slate-900 transition-colors">KLZ Cables Digitaler Netzbau</H3>
<LeadText className="text-base line-clamp-3">
Wie wir eine komplexe WordPress-Struktur in ein performantes, sauberes und langlebiges Web-System verwandelt haben. Fokus auf Performance, SEO und Benutzerführung.
</LeadText>

View File

@@ -7,14 +7,19 @@
html {
scroll-behavior: smooth;
}
body {
@apply bg-white text-slate-800 font-serif antialiased selection:bg-slate-900 selection:text-white;
line-height: 1.6;
}
/* Typography */
h1, h2, h3, h4, h5, h6 {
h1,
h2,
h3,
h4,
h5,
h6 {
@apply font-sans font-bold text-slate-900 tracking-tighter;
}
@@ -42,27 +47,28 @@
@apply text-xl md:text-2xl text-slate-600 mb-6 leading-relaxed;
font-weight: 400;
}
a {
@apply text-slate-900 hover:text-slate-700 transition-colors no-underline;
}
ul, ol {
ul,
ol {
@apply ml-5 mb-4;
}
li {
@apply mb-1;
}
code:not([class*='language-']) {
@apply bg-slate-50 px-1.5 py-0.5 rounded-md font-mono text-[0.9em] text-slate-800 border border-slate-100;
}
blockquote {
@apply border-l-4 border-slate-900 pl-6 italic text-slate-700 my-8 text-xl md:text-2xl font-serif;
}
/* Focus states */
a:focus,
button:focus,
@@ -80,6 +86,7 @@
/* Components - Tailwind utility classes */
@layer components {
/* Legacy hooks required by tests */
.file-example {
@apply w-full;
@@ -104,7 +111,7 @@
.search-box {
@apply w-full px-6 py-4 border border-slate-200 rounded-2xl focus:outline-none focus:border-slate-400 transition-all duration-300;
background: rgba(255,255,255,0.9);
background: rgba(255, 255, 255, 0.9);
backdrop-filter: blur(10px);
}
@@ -133,40 +140,40 @@
.article-header {
@apply mb-12;
}
.article-title {
@apply text-4xl md:text-5xl font-bold mb-3;
}
.article-meta {
@apply text-sm text-slate-500 font-sans mb-5;
}
.article-content {
@apply text-lg leading-relaxed;
}
.article-content p {
@apply mb-5;
}
.article-content h2 {
@apply text-2xl font-bold mt-8 mb-3;
}
.article-content h3 {
@apply text-xl font-bold mt-6 mb-2;
}
.article-content ul,
.article-content ol {
@apply ml-6 mb-5;
}
.article-content li {
@apply mb-1;
}
.article-content blockquote {
@apply border-l-2 border-slate-400 pl-4 italic text-slate-600 my-5 text-lg;
}
@@ -184,14 +191,16 @@
@apply border-slate-200 text-slate-500 hover:border-slate-400 hover:text-slate-900;
}
/* Hide scrollbars */
.hide-scrollbar::-webkit-scrollbar {
/* Hide scrollbars but keep functionality */
.no-scrollbar::-webkit-scrollbar {
display: none;
}
.hide-scrollbar {
.no-scrollbar {
-ms-overflow-style: none;
/* IE and Edge */
scrollbar-width: none;
/* Firefox */
}
/* Empty state */
@@ -265,7 +274,7 @@
html {
scroll-behavior: auto;
}
* {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
@@ -275,6 +284,7 @@
/* Print styles */
@media print {
.floating-back-to-top,
.reading-progress-bar {
display: none !important;
@@ -325,6 +335,7 @@
opacity: 0;
transform: scale(0.8) translateY(10px);
}
to {
opacity: 1;
transform: scale(1) translateY(0);
@@ -384,18 +395,15 @@
z-index: -1;
background:
linear-gradient(
180deg,
linear-gradient(180deg,
rgba(255, 255, 255, 0) 0%,
rgba(255, 255, 255, 0) 20%,
rgba(253, 230, 138, 0.70) 20%,
rgba(253, 230, 138, 0.70) 100%
);
rgba(253, 230, 138, 0.70) 100%);
transform-origin: left center;
transform:
rotate(calc((var(--marker-seed, 0) - 3) * 0.45deg))
skewX(calc((var(--marker-seed, 0) - 3) * -0.25deg));
rotate(calc((var(--marker-seed, 0) - 3) * 0.45deg)) skewX(calc((var(--marker-seed, 0) - 3) * -0.25deg));
filter: saturate(1.05);
}
@@ -411,30 +419,26 @@
z-index: -1;
background:
linear-gradient(
90deg,
linear-gradient(90deg,
rgba(253, 230, 138, 0.00) 0%,
rgba(253, 230, 138, 0.60) 8%,
rgba(253, 230, 138, 0.55) 60%,
rgba(253, 230, 138, 0.35) 100%
);
rgba(253, 230, 138, 0.35) 100%);
opacity: 0.75;
mix-blend-mode: multiply;
transform:
rotate(calc((var(--marker-seed, 0) - 3) * 0.45deg))
translateY(0.02em);
rotate(calc((var(--marker-seed, 0) - 3) * 0.45deg)) translateY(0.02em);
mask-image:
linear-gradient(
180deg,
linear-gradient(180deg,
rgba(0, 0, 0, 0) 0%,
rgba(0, 0, 0, 1) 20%,
rgba(0, 0, 0, 1) 100%
);
rgba(0, 0, 0, 1) 100%);
}
@media (prefers-reduced-motion: no-preference) {
.post-link:hover .marker-title::before,
.post-link:hover .marker-title::after {
filter: saturate(1.08) contrast(1.02);
@@ -496,7 +500,7 @@
--bg-color: #ffffff;
--border-color: #e2e8f0;
--shadow: none;
margin: 1.5rem 0;
width: 100%;
max-width: var(--max-width);
@@ -515,7 +519,8 @@
.generic-embed[data-type="video"] .embed-wrapper {
aspect-ratio: 16/9;
height: 0;
padding-bottom: 56.25%; /* 16:9 */
padding-bottom: 56.25%;
/* 16:9 */
}
.generic-embed[data-type="video"] .embed-wrapper iframe {
@@ -577,11 +582,11 @@
.generic-embed {
margin: 1rem 0;
}
.embed-fallback {
padding: 1rem;
}
.embed-wrapper:hover {
box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
}
@@ -684,4 +689,4 @@ pre:has(code[class*='language-']) {
.token.important,
.token.variable {
color: #db2777;
}
}

View File

@@ -0,0 +1 @@
!function(){"use strict";function e(e){try{if("undefined"==typeof console)return;"error"in console?console.error(e):console.log(e)}catch(e){}}function t(e){return d.innerHTML='<a href="'+e.replace(/"/g,"&quot;")+'"></a>',d.childNodes[0].getAttribute("href")||""}function r(e,t){var r=e.substr(t,2);return parseInt(r,16)}function n(n,c){for(var o="",a=r(n,c),i=c+2;i<n.length;i+=2){var l=r(n,i)^a;o+=String.fromCharCode(l)}try{o=decodeURIComponent(escape(o))}catch(u){e(u)}return t(o)}function c(t){for(var r=t.querySelectorAll("a"),c=0;c<r.length;c++)try{var o=r[c],a=o.href.indexOf(l);a>-1&&(o.href="mailto:"+n(o.href,a+l.length))}catch(i){e(i)}}function o(t){for(var r=t.querySelectorAll(u),c=0;c<r.length;c++)try{var o=r[c],a=o.parentNode,i=o.getAttribute(f);if(i){var l=n(i,0),d=document.createTextNode(l);a.replaceChild(d,o)}}catch(h){e(h)}}function a(t){for(var r=t.querySelectorAll("template"),n=0;n<r.length;n++)try{i(r[n].content)}catch(c){e(c)}}function i(t){try{c(t),o(t),a(t)}catch(r){e(r)}}var l="/cdn-cgi/l/email-protection#",u=".__cf_email__",f="data-cfemail",d=document.createElement("div");i(document),function(){var e=document.currentScript||document.scripts[document.scripts.length-1];e.parentNode.removeChild(e)}()}();

View File

@@ -0,0 +1 @@
document.addEventListener('DOMContentLoaded',function(){if(phpVars.externalPermalinksEnabled){var links=document.getElementsByTagName('a');for(var i=0;i<links.length;i++){var url=links[i].getAttribute('href');var target=links[i].getAttribute('target');if(url!=null){if(url.indexOf('#new_tab')>=0){url=url.replace('#new_tab','');target='_blank';links[i].setAttribute('href',url);links[i].setAttribute('target',target);links[i].setAttribute('rel','noopener noreferrer nofollow')}}}}})

View File

@@ -1,3 +1,4 @@
/*!
* hoverIntent v1.9.0 // 2017.09.01 // jQuery v1.7.0+
* http://briancherne.github.io/jquery-hoverIntent/
@@ -7,3 +8,4 @@
* Copyright 2007-2017 Brian Cherne
*/
!function(factory){"use strict";"function"==typeof define&&define.amd?define(["jquery"],factory):jQuery&&!jQuery.fn.hoverIntent&&factory(jQuery)}(function($){"use strict";var cX,cY,_cfg={interval:100,sensitivity:6,timeout:0},INSTANCE_COUNT=0,track=function(ev){cX=ev.pageX,cY=ev.pageY},compare=function(ev,$el,s,cfg){if(Math.sqrt((s.pX-cX)*(s.pX-cX)+(s.pY-cY)*(s.pY-cY))<cfg.sensitivity)return $el.off(s.event,track),delete s.timeoutId,s.isActive=!0,ev.pageX=cX,ev.pageY=cY,delete s.pX,delete s.pY,cfg.over.apply($el[0],[ev]);s.pX=cX,s.pY=cY,s.timeoutId=setTimeout(function(){compare(ev,$el,s,cfg)},cfg.interval)},delay=function(ev,$el,s,out){return delete $el.data("hoverIntent")[s.id],out.apply($el[0],[ev])};$.fn.hoverIntent=function(handlerIn,handlerOut,selector){var instanceId=INSTANCE_COUNT++,cfg=$.extend({},_cfg);$.isPlainObject(handlerIn)?(cfg=$.extend(cfg,handlerIn),$.isFunction(cfg.out)||(cfg.out=cfg.over)):cfg=$.isFunction(handlerOut)?$.extend(cfg,{over:handlerIn,out:handlerOut,selector:selector}):$.extend(cfg,{over:handlerIn,out:handlerIn,selector:handlerOut});var handleHover=function(e){var ev=$.extend({},e),$el=$(this),hoverIntentData=$el.data("hoverIntent");hoverIntentData||$el.data("hoverIntent",hoverIntentData={});var state=hoverIntentData[instanceId];state||(hoverIntentData[instanceId]=state={id:instanceId}),state.timeoutId&&(state.timeoutId=clearTimeout(state.timeoutId));var mousemove=state.event="mousemove.hoverIntent.hoverIntent"+instanceId;if("mouseenter"===e.type){if(state.isActive)return;state.pX=ev.pageX,state.pY=ev.pageY,$el.off(mousemove,track).on(mousemove,track),state.timeoutId=setTimeout(function(){compare(ev,$el,state,cfg)},cfg.interval)}else{if(!state.isActive)return;$el.off(mousemove,track),state.timeoutId=setTimeout(function(){delay(ev,$el,state,cfg.out)},cfg.timeout)}};return this.on({"mouseenter.hoverIntent":handleHover,"mouseleave.hoverIntent":handleHover},cfg.selector)}});
;

View File

@@ -1,4 +1,3 @@
/*
* jQuery Easing v1.4.1 - http://gsgd.co.uk/sandbox/jquery/easing/
*/
!function(n){"function"==typeof define&&define.amd?define(["jquery"],function(e){return n(e)}):"object"==typeof module&&"object"==typeof module.exports?module.exports=n(require("jquery")):n(jQuery)}(function(n){function e(n){var e=7.5625,t=2.75;return n<1/t?e*n*n:n<2/t?e*(n-=1.5/t)*n+.75:n<2.5/t?e*(n-=2.25/t)*n+.9375:e*(n-=2.625/t)*n+.984375}void 0!==n.easing&&(n.easing.jswing=n.easing.swing);var t=Math.pow,u=Math.sqrt,r=Math.sin,i=Math.cos,a=Math.PI,o=1.70158,c=1.525*o,s=2*a/3,f=2*a/4.5;return n.extend(n.easing,{def:"easeOutQuad",swing:function(e){return n.easing[n.easing.def](e)},easeInQuad:function(n){return n*n},easeOutQuad:function(n){return 1-(1-n)*(1-n)},easeInOutQuad:function(n){return n<.5?2*n*n:1-t(-2*n+2,2)/2},easeInCubic:function(n){return n*n*n},easeOutCubic:function(n){return 1-t(1-n,3)},easeInOutCubic:function(n){return n<.5?4*n*n*n:1-t(-2*n+2,3)/2},easeInQuart:function(n){return n*n*n*n},easeOutQuart:function(n){return 1-t(1-n,4)},easeInOutQuart:function(n){return n<.5?8*n*n*n*n:1-t(-2*n+2,4)/2},easeInQuint:function(n){return n*n*n*n*n},easeOutQuint:function(n){return 1-t(1-n,5)},easeInOutQuint:function(n){return n<.5?16*n*n*n*n*n:1-t(-2*n+2,5)/2},easeInSine:function(n){return 1-i(n*a/2)},easeOutSine:function(n){return r(n*a/2)},easeInOutSine:function(n){return-(i(a*n)-1)/2},easeInExpo:function(n){return 0===n?0:t(2,10*n-10)},easeOutExpo:function(n){return 1===n?1:1-t(2,-10*n)},easeInOutExpo:function(n){return 0===n?0:1===n?1:n<.5?t(2,20*n-10)/2:(2-t(2,-20*n+10))/2},easeInCirc:function(n){return 1-u(1-t(n,2))},easeOutCirc:function(n){return u(1-t(n-1,2))},easeInOutCirc:function(n){return n<.5?(1-u(1-t(2*n,2)))/2:(u(1-t(-2*n+2,2))+1)/2},easeInElastic:function(n){return 0===n?0:1===n?1:-t(2,10*n-10)*r((10*n-10.75)*s)},easeOutElastic:function(n){return 0===n?0:1===n?1:t(2,-10*n)*r((10*n-.75)*s)+1},easeInOutElastic:function(n){return 0===n?0:1===n?1:n<.5?-t(2,20*n-10)*r((20*n-11.125)*f)/2:t(2,-20*n+10)*r((20*n-11.125)*f)/2+1},easeInBack:function(n){return 2.70158*n*n*n-o*n*n},easeOutBack:function(n){return 1+2.70158*t(n-1,3)+o*t(n-1,2)},easeInOutBack:function(n){return n<.5?t(2*n,2)*(7.189819*n-c)/2:(t(2*n-2,2)*((c+1)*(2*n-2)+c)+2)/2},easeInBounce:function(n){return 1-e(1-n)},easeOutBounce:e,easeInOutBounce:function(n){return n<.5?(1-e(1-2*n))/2:(1+e(2*n-1))/2}}),n});

View File

@@ -1,5 +1,7 @@
/*!
* jQuery Mousewheel 3.1.13
* Copyright OpenJS Foundation and other contributors
*/
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e:e(jQuery)}(function(u){var f,d,e=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],t="onwheel"in window.document||9<=window.document.documentMode?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],w=Array.prototype.slice;if(u.event.fixHooks)for(var i=e.length;i;)u.event.fixHooks[e[--i]]=u.event.mouseHooks;var c=u.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var e=t.length;e;)this.addEventListener(t[--e],n,{passive:false});else this.onmousewheel=n;u.data(this,"mousewheel-line-height",c.getLineHeight(this)),u.data(this,"mousewheel-page-height",c.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var e=t.length;e;)this.removeEventListener(t[--e],n,!1);else this.onmousewheel=null;u.removeData(this,"mousewheel-line-height"),u.removeData(this,"mousewheel-page-height")},getLineHeight:function(e){var t=u(e),i=t["offsetParent"in u.fn?"offsetParent":"parent"]();return i.length||(i=u("body")),parseInt(i.css("fontSize"),10)||parseInt(t.css("fontSize"),10)||16},getPageHeight:function(e){return u(e).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};function n(e){var t,i=e||window.event,n=w.call(arguments,1),o=0,l=0,s=0;if((e=u.event.fix(i)).type="mousewheel","detail"in i&&(s=-1*i.detail),"wheelDelta"in i&&(s=i.wheelDelta),"wheelDeltaY"in i&&(s=i.wheelDeltaY),"wheelDeltaX"in i&&(l=-1*i.wheelDeltaX),"axis"in i&&i.axis===i.HORIZONTAL_AXIS&&(l=-1*s,s=0),o=0===s?l:s,"deltaY"in i&&(o=s=-1*i.deltaY),"deltaX"in i&&(l=i.deltaX,0===s&&(o=-1*l)),0!==s||0!==l){if(1===i.deltaMode){var a=u.data(this,"mousewheel-line-height");o*=a,s*=a,l*=a}else if(2===i.deltaMode){var h=u.data(this,"mousewheel-page-height");o*=h,s*=h,l*=h}if(t=Math.max(Math.abs(s),Math.abs(l)),(!d||t<d)&&g(i,d=t)&&(d/=40),g(i,t)&&(o/=40,l/=40,s/=40),o=Math[1<=o?"floor":"ceil"](o/d),l=Math[1<=l?"floor":"ceil"](l/d),s=Math[1<=s?"floor":"ceil"](s/d),c.settings.normalizeOffset&&this.getBoundingClientRect){var r=this.getBoundingClientRect();e.offsetX=e.clientX-r.left,e.offsetY=e.clientY-r.top}return e.deltaX=l,e.deltaY=s,e.deltaFactor=d,e.deltaMode=0,n.unshift(e,o,l,s),f&&window.clearTimeout(f),f=window.setTimeout(m,200),(u.event.dispatch||u.event.handle).apply(this,n)}}function m(){d=null}function g(e,t){return c.settings.adjustOldDeltas&&"mousewheel"===e.type&&t%120==0}u.fn.extend({mousewheel:function(e){return e?this.on("mousewheel",e):this.trigger("mousewheel")},unmousewheel:function(e){return this.off("mousewheel",e)}})});
;

View File

@@ -1,7 +1,7 @@
<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">(function($){'use strict';function validURL(str){var pattern=new RegExp('^(https?:\\/\\/)?'+'((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+'((\\d{1,3}\\.){3}\\d{1,3}))'+'(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+'(\\?[;&amp;a-z\\d%_.~+=-]*)?'+'(\\#[-a-z\\d_]*)?$','i');return!!pattern.test(str)}
(function($){'use strict';function validURL(str){var pattern=new RegExp('^(https?:\\/\\/)?'+'((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+'((\\d{1,3}\\.){3}\\d{1,3}))'+'(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+'(\\?[;&a-z\\d%_.~+=-]*)?'+'(\\#[-a-z\\d_]*)?$','i');return!!pattern.test(str)}
$(document).ready(function(){var elem='.kc-us-copy-to-clipboard';if($(elem).get(0)){let clipboardLink=new ClipboardJS(elem);clipboardLink.on('success',function(e){let elem=e.trigger;$(elem).find('.kc-us-link').select();let id=elem.getAttribute('id');let copiedTextID='#copied-text-'+id;$(copiedTextID).text('Copied').fadeIn();$(copiedTextID).fadeOut('slow')})}
$(".kc_us_create_short_link").click(function(e){e.preventDefault();var post_id=$(this).attr('data-post_id');var security=$(this).attr('data-us-security');$(this).find('.kc_us_loading').show();$.ajax({type:"post",dataType:"json",context:this,url:ajaxurl,data:{action:'us_handle_request',cmd:"create_short_link",post_id:post_id,security:security},success:function(response){if(response.status==="success"){$(this).parent('.us_short_link').html(response.html)}else{$(this).find('.kc_us_loading').hide()}},error:function(err){$(this).find('.kc_us_loading').hide()}})});$("#kc-us-dashboard-short-link").click(function(e){e.preventDefault();var targetURL=$('#kc-us-target-url').val();var slug=$('#kc-us-slug').val();var security=$('#kc-us-security').val();var domain=$('#kc-us-domain').val();if(!validURL(targetURL)){alert('Please Enter Valid Target URL');return}
$(this).find('.kc_us_loading').show();$('#kc-us-error-message').hide();$('#kc-us-success-message').hide();$.ajax({type:"post",dataType:"json",context:this,url:ajaxurl,data:{action:'us_handle_request',cmd:"create_short_link",slug:slug,url:targetURL,security:security,domain:domain},success:function(response){if(response.status==="success"){var link=response.link;var html='Short Link : &lt;span class="kc-flex kc-us-copy-to-clipboard" data-clipboard-text="'+link+'" id="link-25"&gt;&lt;input type="text" readonly="true" style="width: 65%;" onclick="this.select();" value="'+link+'" class="kc-us-link"&gt;&lt;/span&gt;';$('#kc-us-success-message').html(html);$('#kc-us-success-message').show()}else{var html='Something went wrong while creating short link';if(response.message){html=response.message}
$(this).find('.kc_us_loading').show();$('#kc-us-error-message').hide();$('#kc-us-success-message').hide();$.ajax({type:"post",dataType:"json",context:this,url:ajaxurl,data:{action:'us_handle_request',cmd:"create_short_link",slug:slug,url:targetURL,security:security,domain:domain},success:function(response){if(response.status==="success"){var link=response.link;var html='Short Link : <span class="kc-flex kc-us-copy-to-clipboard" data-clipboard-text="'+link+'" id="link-25"><input type="text" readonly="true" style="width: 65%;" onclick="this.select();" value="'+link+'" class="kc-us-link"></span>';$('#kc-us-success-message').html(html);$('#kc-us-success-message').show()}else{var html='Something went wrong while creating short link';if(response.message){html=response.message}
$('#kc-us-error-message').html(html);$('#kc-us-error-message').show()}
$('.kc_us_loading').hide()},error:function(err){var html='Something went wrong while creating short link';$('#kc-us-error-message').html(html);$('#kc-us-error-message').show();$('.kc_us_loading').hide()}})});$("#kc-us-submit-btn").click(function(e){e.preventDefault();var targetURL=$('#kc-us-target-url').val();var security=$('#kc-us-security').val();if(!validURL(targetURL)){alert('Please Enter Valid Long URL');return}
$(this).parents('.generate-short-link-form').find('.kc_us_loading').show();$.ajax({type:"post",dataType:"json",context:this,url:usParams.ajaxurl,data:{action:'us_handle_request',cmd:"create_short_link",url:targetURL,security:security},success:function(response){$(this).parents('.generate-short-link-form').find('.kc_us_loading').hide();if(response.status==="success"){var link=response.link;$('.generated-short-link-form #kc-us-short-url').val(link);$('.generate-short-link-form').hide();$('.generated-short-link-form').show()}else{var html='Something went wrong while creating short link';$('#kc-us-error-msg').text(html);$('#kc-us-error-msg').show()}},error:function(err){var html='Something went wrong while creating short link';$('#kc-us-error-msg').text(html);$('#kc-us-error-msg').show()}})})})})(jQuery)</pre></body></html>
$(this).parents('.generate-short-link-form').find('.kc_us_loading').show();$.ajax({type:"post",dataType:"json",context:this,url:usParams.ajaxurl,data:{action:'us_handle_request',cmd:"create_short_link",url:targetURL,security:security},success:function(response){$(this).parents('.generate-short-link-form').find('.kc_us_loading').hide();if(response.status==="success"){var link=response.link;$('.generated-short-link-form #kc-us-short-url').val(link);$('.generate-short-link-form').hide();$('.generated-short-link-form').show()}else{var html='Something went wrong while creating short link';$('#kc-us-error-msg').text(html);$('#kc-us-error-msg').show()}},error:function(err){var html='Something went wrong while creating short link';$('#kc-us-error-msg').text(html);$('#kc-us-error-msg').show()}})})})})(jQuery)

View File

@@ -1 +1 @@
(()=>{"use strict";const t=window.wp.hooks,e=(t,e)=>{const a={id:"gla_"+t.id,quantity:e,google_business_vertical:"retail"};return t.name&&(a.name=t.name),t?.categories?.length&&(a.category=t.categories[0].name),t?.prices?.price&&(a.price=parseInt(t.prices.price,10)/10**t.prices.currency_minor_unit),a},a=(t,a=1)=>{((t,e)=>{if("function"!=typeof gtag)throw new Error("Function gtag not implemented.");window.gtag("event","add_to_cart",{send_to:"GLA",...e})})(0,{ecomm_pagetype:"cart",event_category:"ecommerce",items:[e(t,a)]})},n=t=>{var e;return glaGtagData.products[t.id]&&(t.name=glaGtagData.products[t.id].name,t.prices=(e=glaGtagData.products[t.id].price,{price:Math.round(e*10**glaGtagData.currency_minor_unit),currency_minor_unit:glaGtagData.currency_minor_unit})),t};(0,t.addAction)("experimental__woocommerce_blocks-cart-add-item","google-listings-and-ads",({product:t,quantity:e=1})=>{a(t,e)});const r=function(t){const e=t.currentTarget.dataset,r=n({id:e.product_id});a(r,e.quantity||1)},o=function(t){const e=t.target.closest("form.cart");if(!e)return;const r=e.querySelector("[name=add-to-cart]");if(!r)return;const o=e.querySelector("[name=variation_id]"),c=e.querySelector("[name=quantity]"),i=n({id:parseInt(o?o.value:r.value,10)});a(i,c?parseInt(c.value,10):1)};document.defaultView.addEventListener("DOMContentLoaded",function(){document.querySelectorAll(".add_to_cart_button:not( .product_type_variable ):not( .product_type_grouped ):not( .wc-block-components-product-button__button )").forEach(t=>{t.addEventListener("click",r)}),document.querySelectorAll('[data-block-name="woocommerce/product-button"] > .add_to_cart_button:not( .product_type_variable ):not( .product_type_grouped )').forEach(t=>{t.addEventListener("click",r)}),document.querySelectorAll(".single_add_to_cart_button").forEach(t=>{t.addEventListener("click",o)})}),"function"==typeof jQuery&&jQuery(document).on("found_variation","form.cart",function(t,e){(t=>{t?.variation_id&&(glaGtagData.products[t.variation_id]={name:t.display_name,price:t.display_price})})(e)})})();
(()=>{"use strict";const t=window.wp.hooks,e=(t,e)=>{const a={id:"gla_"+t.id,quantity:e,google_business_vertical:"retail"};return t.name&&(a.name=t.name),t?.categories?.length&&(a.category=t.categories[0].name),t?.prices?.price&&(a.price=parseInt(t.prices.price,10)/10**t.prices.currency_minor_unit),a},a=(t,a=1)=>{((t,e)=>{if("function"!=typeof gtag)throw new Error("Function gtag not implemented.");window.gtag("event","add_to_cart",{send_to:"GLA",...e})})(0,{ecomm_pagetype:"cart",event_category:"ecommerce",items:[e(t,a)]})},n=t=>{var e;return glaGtagData.products[t.id]&&(t.name=glaGtagData.products[t.id].name,t.prices=(e=glaGtagData.products[t.id].price,{price:Math.round(e*10**glaGtagData.currency_minor_unit),currency_minor_unit:glaGtagData.currency_minor_unit})),t};(0,t.addAction)("experimental__woocommerce_blocks-cart-add-item","google-listings-and-ads",({product:t,quantity:e=1})=>{a(t,e)});const r=function(t){const e=t.currentTarget.dataset,r=n({id:e.product_id});a(r,e.quantity||1)},o=function(t){const e=t.target.closest("form.cart");if(!e)return;const r=e.querySelector("[name=add-to-cart]");if(!r)return;const o=e.querySelector("[name=variation_id]"),c=e.querySelector("[name=quantity]"),i=n({id:parseInt(o?o.value:r.value,10)});a(i,c?parseInt(c.value,10):1)};document.defaultView.addEventListener("DOMContentLoaded",function(){document.querySelectorAll(".add_to_cart_button:not( .product_type_variable ):not( .product_type_grouped ):not( .wc-block-components-product-button__button )").forEach(t=>{t.addEventListener("click",r)}),document.querySelectorAll('[data-block-name="woocommerce/product-button"] > .add_to_cart_button:not( .product_type_variable ):not( .product_type_grouped )').forEach(t=>{t.addEventListener("click",r)}),document.querySelectorAll(".single_add_to_cart_button").forEach(t=>{t.addEventListener("click",o)})}),"function"==typeof jQuery&&jQuery(document).on("found_variation","form.cart",function(t,e){(t=>{t?.variation_id&&(glaGtagData.products[t.variation_id]={name:t.display_name,price:t.display_price})})(e)})})()

View File

@@ -1 +1 @@
var headerEl=document.getElementById("header-outer"),headerSpaceEl=document.getElementById("header-space");void 0!==headerEl&&null!=headerEl&&void 0!==headerSpaceEl&&null!=headerSpaceEl&&headerSpaceEl.hasAttribute("data-secondary-header-display")&&(headerSpaceEl.style.height=headerEl.clientHeight+"px"),jQuery(function(e){"use strict";var t,a,r,n,o,d,i=!1;function h(){var a=t.offset().top;e("#page-header-wrap.fullscreen-header").css("height","auto"),t.css("height",parseInt(window.innerHeight)-parseInt(a)+"px")}if(navigator.userAgent.match(/(Android|iPod|iPhone|iPad|BlackBerry|IEMobile|Opera Mini)/)&&(i=!0),i&&e("#page-header-bg.fullscreen-header").length>0){t=e("#page-header-bg"),h();var l=window.innerWidth,s=window.innerHeight;e(window).resize(function(){e(window).width()!=l&&e(window).height!=s&&(h(),l=window.innerWidth,s=window.innerHeight)})}i&&e(".nectar_fullscreen_zoom_recent_projects").length>0&&(a=e(".body-border-top").length>0&&e(window).width()>1e3?e(".body-border-top").height():0,e(".nectar_fullscreen_zoom_recent_projects").each(function(){e(this).parents(".first-section").length>0?e(this).css("height",e(window).height()-e(this).offset().top-a):e(this).css("height",e(window).height())})),e('#header-outer[data-format="centered-menu-bottom-bar"]').length>0&&(r=e('#header-outer[data-format="centered-menu-bottom-bar"] header#top .span_9'),n=e('#header-outer[data-format="centered-menu-bottom-bar"] header#top .span_3'),o=e("#header-secondary-outer"),(d=n.find("#logo").clone()).is('[data-supplied-ml="true"]')&&d.find("img:not(.mobile-only-logo)").remove(),d.find("img.starting-logo").remove(),o.length>0&&o.addClass("centered-menu-bottom-bar"),d.removeAttr("id").addClass("logo-clone"),e('#header-outer[data-condense="true"]').length>0&&0==e('#header-outer[data-menu-bottom-bar-align="left"]').length&&r.prepend(d)),e('#page-header-bg[data-animate-in-effect="zoom-out"]').addClass("loaded")});
var headerEl=document.getElementById("header-outer"),headerSpaceEl=document.getElementById("header-space");void 0!==headerEl&&null!=headerEl&&void 0!==headerSpaceEl&&null!=headerSpaceEl&&headerSpaceEl.hasAttribute("data-secondary-header-display")&&(headerSpaceEl.style.height=headerEl.clientHeight+"px"),jQuery(function(e){"use strict";var t,a,r,n,o,d,i=!1;function h(){var a=t.offset().top;e("#page-header-wrap.fullscreen-header").css("height","auto"),t.css("height",parseInt(window.innerHeight)-parseInt(a)+"px")}if(navigator.userAgent.match(/(Android|iPod|iPhone|iPad|BlackBerry|IEMobile|Opera Mini)/)&&(i=!0),i&&e("#page-header-bg.fullscreen-header").length>0){t=e("#page-header-bg"),h();var l=window.innerWidth,s=window.innerHeight;e(window).resize(function(){e(window).width()!=l&&e(window).height!=s&&(h(),l=window.innerWidth,s=window.innerHeight)})}i&&e(".nectar_fullscreen_zoom_recent_projects").length>0&&(a=e(".body-border-top").length>0&&e(window).width()>1e3?e(".body-border-top").height():0,e(".nectar_fullscreen_zoom_recent_projects").each(function(){e(this).parents(".first-section").length>0?e(this).css("height",e(window).height()-e(this).offset().top-a):e(this).css("height",e(window).height())})),e('#header-outer[data-format="centered-menu-bottom-bar"]').length>0&&(r=e('#header-outer[data-format="centered-menu-bottom-bar"] header#top .span_9'),n=e('#header-outer[data-format="centered-menu-bottom-bar"] header#top .span_3'),o=e("#header-secondary-outer"),(d=n.find("#logo").clone()).is('[data-supplied-ml="true"]')&&d.find("img:not(.mobile-only-logo)").remove(),d.find("img.starting-logo").remove(),o.length>0&&o.addClass("centered-menu-bottom-bar"),d.removeAttr("id").addClass("logo-clone"),e('#header-outer[data-condense="true"]').length>0&&0==e('#header-outer[data-menu-bottom-bar-align="left"]').length&&r.prepend(d)),e('#page-header-bg[data-animate-in-effect="zoom-out"]').addClass("loaded")})

View File

@@ -1 +1,2 @@
!function(t){"use strict";const e=t.params,n=(document.querySelector.bind(document),(t,e)=>e.split(".").reduce((t,e)=>t&&t[e],t)),s=()=>null,i=t=>null===t||t===undefined?"":t,o="wc/store/checkout";function a(t){window.wp&&window.wp.data&&window.wp.data.dispatch&&window.wc&&window.wc.wcBlocksData&&window.wp.data.dispatch(window.wc.wcBlocksData.CHECKOUT_STORE_KEY).setExtensionData("woocommerce/order-attribution",t,!0)}function r(){return"undefined"!=typeof sbjs}function c(){if(window.wp&&window.wp.data&&"function"==typeof window.wp.data.subscribe){const e=window.wp.data.subscribe(function(){e(),a(t.getAttributionData())},o)}}t.getAttributionData=function(){const i=e.allowTracking&&r()?n:s,o=r()?sbjs.get:{},a=Object.entries(t.fields).map(([t,e])=>[t,i(o,e)]);return Object.fromEntries(a)},t.setOrderTracking=function(n){if(e.allowTracking=n,n){if(!r())return;sbjs.init({lifetime:Number(e.lifetime),session_length:Number(e.session),base64:Boolean(e.base64),timezone_offset:"0"})}else!function(){const t=window.location.hostname;["sbjs_current","sbjs_current_add","sbjs_first","sbjs_first_add","sbjs_session","sbjs_udata","sbjs_migrations","sbjs_promo"].forEach(e=>{document.cookie=`${e}=; path=/; max-age=-999; domain=.${t};`})}();const s=t.getAttributionData();!function(t){for(const e of document.querySelectorAll("wc-order-attribution-inputs"))e.values=t}(s),a(s)},t.setOrderTracking(e.allowTracking),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",c):c(),window.customElements.define("wc-order-attribution-inputs",class extends HTMLElement{constructor(){if(super(),this._fieldNames=Object.keys(t.fields),this.hasOwnProperty("_values")){let t=this.values;delete this.values,this.values=t||{}}}connectedCallback(){this.innerHTML="";const t=new DocumentFragment;for(const n of this._fieldNames){const s=document.createElement("input");s.type="hidden",s.name=`${e.prefix}${n}`,s.value=i(this.values&&this.values[n]||""),t.appendChild(s)}this.appendChild(t)}set values(t){if(this._values=t,this.isConnected)for(const t of this._fieldNames){const n=this.querySelector(`input[name="${e.prefix}${t}"]`);n?n.value=i(this.values[t]):console.warn(`Field "${t}" not found. `+"Most likely, the '<wc-order-attribution-inputs>' element was manipulated.")}}get values(){return this._values}})}(window.wc_order_attribution);

View File

@@ -1 +1,2 @@
function on_keydown_remove_from_cart(e){" "===e.key&&(e.preventDefault(),e.currentTarget.click())}function focus_populate_live_region(){var e=["woocommerce-message","woocommerce-error","wc-block-components-notice-banner"].map(function(e){return"."+e+'[role="alert"]'}).join(", "),o=document.querySelectorAll(e);if(0!==o.length){var t=o[0];t.setAttribute("tabindex","-1");var n=setTimeout(function(){t.focus(),clearTimeout(n)},500)}}function refresh_sorted_by_live_region(){var e=document.querySelector(".woocommerce-result-count");if(e){var o=e.innerHTML;e.setAttribute("aria-hidden","true");var t=setTimeout(function(){e.setAttribute("aria-hidden","false"),e.innerHTML="",e.innerHTML=o,clearTimeout(t)},2e3)}}function on_document_ready(){focus_populate_live_region(),refresh_sorted_by_live_region()}jQuery(function(e){e(".woocommerce-ordering").on("change","select.orderby",function(){e(this).closest("form").trigger("submit")}),e("input.qty:not(.product-quantity input.qty)").each(function(){var o=parseFloat(e(this).attr("min"));o>=0&&parseFloat(e(this).val())<o&&e(this).val(o)});var o="store_notice"+(e(".woocommerce-store-notice").data("noticeId")||"");if("hidden"===Cookies.get(o))e(".woocommerce-store-notice").hide();else{function t(o){["Enter"," "].includes(o.key)&&(o.preventDefault(),e(".woocommerce-store-notice__dismiss-link").click())}e(".woocommerce-store-notice").show(),e(".woocommerce-store-notice__dismiss-link").on("click",function n(r){Cookies.set(o,"hidden",{path:"/"}),e(".woocommerce-store-notice").hide(),r.preventDefault(),e(".woocommerce-store-notice__dismiss-link").off("click",n).off("keydown",t)}).on("keydown",t)}e(".woocommerce-input-wrapper span.description").length&&e(document.body).on("click",function(){e(".woocommerce-input-wrapper span.description:visible").prop("aria-hidden",!0).slideUp(250)}),e(".woocommerce-input-wrapper").on("click",function(e){e.stopPropagation()}),e(".woocommerce-input-wrapper :input").on("keydown",function(o){var t=e(this).parent().find("span.description");if(27===o.which&&t.length&&t.is(":visible"))return t.prop("aria-hidden",!0).slideUp(250),o.preventDefault(),!1}).on("click focus",function(){var o=e(this).parent(),t=o.find("span.description");o.addClass("currentTarget"),e(".woocommerce-input-wrapper:not(.currentTarget) span.description:visible").prop("aria-hidden",!0).slideUp(250),t.length&&t.is(":hidden")&&t.prop("aria-hidden",!1).slideDown(250),o.removeClass("currentTarget")}),e.scroll_to_notices=function(o){o.length&&e("html, body").animate({scrollTop:o.offset().top-100},1e3)},e('.woocommerce form .woocommerce-Input[type="password"]').wrap('<span class="password-input"></span>'),e(".woocommerce form input").filter(":password").parent("span").addClass("password-input"),e(".password-input").each(function(){const o=e(this).find("input").attr("id");e(this).append('<button type="button" class="show-password-input" aria-label="'+woocommerce_params.i18n_password_show+'" aria-describedBy="'+o+'"></button>')}),e(".show-password-input").on("click",function(o){o.preventDefault(),e(this).hasClass("display-password")?(e(this).removeClass("display-password"),e(this).attr("aria-label",woocommerce_params.i18n_password_show)):(e(this).addClass("display-password"),e(this).attr("aria-label",woocommerce_params.i18n_password_hide)),e(this).hasClass("display-password")?e(this).siblings(['input[type="password"]']).prop("type","text"):e(this).siblings('input[type="text"]').prop("type","password"),e(this).siblings("input").focus()}),e("a.coming-soon-footer-banner-dismiss").on("click",function(o){var t=e(o.target);e.ajax({type:"post",url:t.data("rest-url"),data:{woocommerce_meta:{coming_soon_banner_dismissed:"yes"}},beforeSend:function(e){e.setRequestHeader("X-WP-Nonce",t.data("rest-nonce"))},complete:function(){e("#coming-soon-footer-banner").hide()}})}),"undefined"==typeof wc_add_to_cart_params&&e(document.body).on("keydown",".remove_from_cart_button",on_keydown_remove_from_cart),e(document.body).on("item_removed_from_classic_cart updated_wc_div",focus_populate_live_region)}),document.addEventListener("DOMContentLoaded",on_document_ready);

View File

@@ -1,2 +1,3 @@
/*! js-cookie v3.0.5 | MIT */
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self,function(){var n=e.Cookies,o=e.Cookies=t();o.noConflict=function(){return e.Cookies=n,o}}())}(this,function(){"use strict";function e(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)e[o]=n[o]}return e}return function t(n,o){function r(t,r,i){if("undefined"!=typeof document){"number"==typeof(i=e({},o,i)).expires&&(i.expires=new Date(Date.now()+864e5*i.expires)),i.expires&&(i.expires=i.expires.toUTCString()),t=encodeURIComponent(t).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var c="";for(var u in i)i[u]&&(c+="; "+u,!0!==i[u]&&(c+="="+i[u].split(";")[0]));return document.cookie=t+"="+n.write(r,t)+c}}return Object.create({set:r,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var t=document.cookie?document.cookie.split("; "):[],o={},r=0;r<t.length;r++){var i=t[r].split("="),c=i.slice(1).join("=");try{var u=decodeURIComponent(i[0]);if(o[u]=n.read(c,u),e===u)break}catch(f){}}return e?o[e]:o}},remove:function(t,n){r(t,"",e({},n,{expires:-1}))},withAttributes:function(n){return t(this.converter,e({},this.attributes,n))},withConverter:function(n){return t(e({},this.converter,n),this.attributes)}},{attributes:{value:Object.freeze(o)},converter:{value:Object.freeze(n)}})}({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"})});

View File

@@ -1,4 +1,4 @@
/*! Created by Cloudways
On 22-01-2026 */
var timer,ready=e=>{"loading"!=document.readyState?e():document.addEventListener("DOMContentLoaded",e)};function search_for_banned_links(t,r){if(!t.length)return!1;var e=-1!==(r=r.startsWith("/")?r.substring(1):r).indexOf("/")?r.indexOf("/"):r.indexOf("?"),n=-1!==e?r.substring(0,e):r;for(let e=0;e<t.length;e++){const i=t[e];if("wp-admin"===i||"wp-login.php"===i){if(n===i)return!0}else if(r.includes(i)||i.includes(r))return!0}return!1}function breeze_ignore_special_links(e,t){var r=!0;return-1!==t.indexOf("add-to-cart=")&&(r=!1),r=void 0!==e.dataset.product_id&&void 0!==e.dataset.quantity&&void 0!==e.dataset.product_sku?!1:r}ready(()=>{var a=[];addEventListener("mouseover",function(r){var n,i;r.target instanceof HTMLAnchorElement&&(n=new URL(breeze_prefetch.local_url).host,(i=r.target.attributes.href?r.target.attributes.href.value:null)&&(-1===i.indexOf(n)&&(i=r.target.href),timer=setTimeout(function(){var e,t;"#"!==i&&(t=i.replace(breeze_prefetch.local_url,""),e=new URL(i).host,""!==i.trim()&&!1===a.includes(i)&&n===e&&!1===search_for_banned_links(breeze_prefetch.ignore_list,t)&&!0===breeze_ignore_special_links(r.target,i)&&(a.push(i.trim()),(t=document.createElement("link")).href=i,t.rel="prefetch",document.head.appendChild(t)))},150)))}),addEventListener("mouseout",function(e){clearTimeout(timer)})});

View File

@@ -1 +1,2 @@
document.addEventListener("DOMContentLoaded",(function(e){function t(e){if("IMG"!==e.nodeName)return;const t=e.classList.contains(i),n=e.parentElement.classList.contains(i),r=null!==e.closest("."+i);if(("true"===ForceInlineSVGActive||t||r)&&(!svgSettings.skipNested||t||n||!r)){var o=e.id,a=e.className,c=e.src;if(c.endsWith("svg")){var l=new XMLHttpRequest;l.onreadystatechange=function(){if(4===l.readyState&&200===l.status){var t=l.responseText;let c;const d=undefined;var n=(new DOMParser).parseFromString(t,"text/html").getElementsByTagName("svg")[0],i=n.id;if(void 0===o||""===o?void 0===i||""===i?(o="svg-replaced-"+s,n.setAttribute("id",o)):o=i:n.setAttribute("id",o),void 0!==a&&""!==a&&n.setAttribute("class",a+" replaced-svg svg-replaced-"+s),n.removeAttribute("xmlns:a"),"on"===frontSanitizationEnabled&&""!==n.outerHTML){var r=DOMPurify.sanitize(n.outerHTML);e.outerHTML=r}else e.replaceWith(n);s++}else 4===l.readyState&&l.status},l.open("GET",c,!0),l.send(null)}}}function n(e){if(e.childNodes.length>0)for(var s=0;s<e.childNodes.length;s++){var i;if("IMG"===e.childNodes[s].nodeName)t(e.childNodes[s]);else n(e.childNodes[s])}}let s=0,i;(bodhisvgsInlineSupport=function(){if("true"===ForceInlineSVGActive)for(var e=document.getElementsByTagName("img"),s=0;s<e.length;s++)void 0!==e[s].src&&e[s].src.match(/\.(svg)/)&&(e[s].classList.contains(cssTarget.ForceInlineSVG)||e[s].classList.add(cssTarget.ForceInlineSVG));String.prototype.endsWith||(String.prototype.endsWith=function(e,t){var n=this.toString();("number"!=typeof t||!isFinite(t)||Math.floor(t)!==t||t>n.length)&&(t=n.length),t-=e.length;var s=n.lastIndexOf(e,t);return-1!==s&&s===t}),String.prototype.endsWith=function(e){var t=this.length-e.length;return t>=0&&this.lastIndexOf(e)===t},i="true"===ForceInlineSVGActive?"img."!==cssTarget.Bodhi?cssTarget.ForceInlineSVG:"style-svg":"img."!==cssTarget.Bodhi?cssTarget.Bodhi:"style-svg","string"==typeof i&&(i=i.replace("img.",""),document.querySelectorAll("."+i).forEach((function(e){"IMG"===e.nodeName?t(e):n(e)})))})()}));

View File

@@ -0,0 +1,7 @@
/*!
Zoom 1.7.21
license: MIT
http://www.jacklmoore.com/zoom
*/
!function(o){var t={url:!1,callback:!1,target:!1,duration:120,on:"mouseover",touch:!0,onZoomIn:!1,onZoomOut:!1,magnify:1};o.zoom=function(t,e,n,i){var u,a,c,r,l,m,f,s=o(t),h=s.css("position"),d=o(e);return t.style.position=/(absolute|fixed)/.test(h)?h:"relative",t.style.overflow="hidden",n.style.width=n.style.height="",o(n).addClass("zoomImg").css({position:"absolute",top:0,left:0,opacity:0,width:n.width*i,height:n.height*i,border:"none",maxWidth:"none",maxHeight:"none"}).appendTo(t),{init:function(){a=s.outerWidth(),u=s.outerHeight(),e===t?(r=a,c=u):(r=d.outerWidth(),c=d.outerHeight()),l=(n.width-a)/r,m=(n.height-u)/c,f=d.offset()},move:function(o){var t=o.pageX-f.left,e=o.pageY-f.top;e=Math.max(Math.min(e,c),0),t=Math.max(Math.min(t,r),0),n.style.left=t*-l+"px",n.style.top=e*-m+"px"}}},o.fn.zoom=function(e){return this.each(function(){var n=o.extend({},t,e||{}),i=n.target&&o(n.target)[0]||this,u=this,a=o(u),c=document.createElement("img"),r=o(c),l="mousemove.zoom",m=!1,f=!1;if(!n.url){var s=u.querySelector("img");if(s&&(n.url=s.getAttribute("data-src")||s.currentSrc||s.src,n.alt=s.getAttribute("data-alt")||s.alt),!n.url)return}a.one("zoom.destroy",function(o,t){a.off(".zoom"),i.style.position=o,i.style.overflow=t,c.onload=null,r.remove()}.bind(this,i.style.position,i.style.overflow)),c.onload=function(){var t=o.zoom(i,u,c,n.magnify);function e(e){t.init(),t.move(e),r.stop().fadeTo(o.support.opacity?n.duration:0,1,"function"==typeof n.onZoomIn&&n.onZoomIn.call(c))}function s(){r.stop().fadeTo(n.duration,0,"function"==typeof n.onZoomOut&&n.onZoomOut.call(c))}"grab"===n.on?a.on("mousedown.zoom",function(n){1===n.which&&(o(document).one("mouseup.zoom",function(){s(),o(document).off(l,t.move)}),e(n),o(document).on(l,t.move),n.preventDefault())}):"click"===n.on?a.on("click.zoom",function(n){return m?void 0:(m=!0,e(n),o(document).on(l,t.move),o(document).one("click.zoom",function(){s(),m=!1,o(document).off(l,t.move)}),!1)}):"toggle"===n.on?a.on("click.zoom",function(o){m?s():e(o),m=!m}):"mouseover"===n.on&&(t.init(),a.on("mouseenter.zoom",e).on("mouseleave.zoom",s).on(l,t.move)),n.touch&&a.on("touchstart.zoom",function(o){o.preventDefault(),f?(f=!1,s()):(f=!0,e(o.originalEvent.touches[0]||o.originalEvent.changedTouches[0]))}).on("touchmove.zoom",function(o){o.preventDefault(),t.move(o.originalEvent.touches[0]||o.originalEvent.changedTouches[0])}).on("touchend.zoom",function(o){o.preventDefault(),f&&(f=!1,s())}),"function"==typeof n.callback&&n.callback.call(c)},c.setAttribute("role","presentation"),c.alt=n.alt||"",c.src=n.url})},o.fn.zoom.defaults=t}(window.jQuery);

View File

@@ -0,0 +1,16 @@
jQuery(document).ready(function($){"use strict";function NectarSocial(){this.$body=$('body');this.$window=$(window);this.$wpAdminBar=$('#wpadminbar');this.usingMobileBrowser=(navigator.userAgent.match(/(Android|iPod|iPhone|iPad|BlackBerry|IEMobile|Opera Mini)/))?!0:!1;this.mouseEvents();this.nectarLove();if($('body').find('.nectar-social.fixed').length>0){this.fixedStyle()}}
NectarSocial.prototype.mouseEvents=function(){this.$body.on('click','#single-below-header .nectar-social a',function(){return!1});$('body.single-product .nectar-social').addClass('woo');this.$body.on('click','.facebook-share:not(.inactive)',this.facebookShare);this.$body.on('click','.nectar-social:not(".woo") .twitter-share:not(.inactive)',this.twitterShare);this.$body.on('click','.nectar-social.woo .twitter-share',this.wooTwitterShare);this.$body.on('click','.nectar-social:not(".woo") .linkedin-share:not(.inactive)',this.linkedInShare);this.$body.on('click','.nectar-social.woo .linkedin-share',this.woolinkedInShare);this.$body.on('click','.nectar-social:not(".woo") .pinterest-share:not(.inactive)',this.pinterestShare);this.$body.on('click','.nectar-social.woo .pinterest-share',this.wooPinterestShare);this.$body.on('click','.nectar-social.fixed > a',function(){return!1});if(!this.usingMobileBrowser){var $socialTimeout;this.$body.on('mouseenter','.nectar-social.hover .share-btn',function(){clearTimeout($socialTimeout);if($(this).parents('[id*="-meta"]').length>0){$(this).parents('[id*="-meta"]').addClass('social-hovered')}
if($(this).parents('#single-below-header').length>0){$(this).parents('#single-below-header').addClass('social-hovered')}
$(this).parent().addClass('visible')});this.$body.on('mouseleave','.nectar-social.hover',function(){var $that=$(this);$socialTimeout=setTimeout(function(){$that.removeClass('visible');if($that.parents('[id*="-meta"]').length>0){$that.parents('[id*="-meta"]').removeClass('social-hovered')}
if($that.parents('#single-below-header').length>0){$that.parents('#single-below-header').removeClass('social-hovered')}},200)})}else{this.$body.on('click','.nectar-social.hover .share-btn',function(){if($(this).parents('[id*="-meta"]').length>0){$(this).parents('[id*="-meta"]').addClass('social-hovered')}
if($(this).parents('#single-below-header').length>0){$(this).parents('#single-below-header').addClass('social-hovered')}
$(this).parent().addClass('visible');return!1})}};NectarSocial.prototype.facebookShare=function(){var windowLocation=window.location.href.replace(window.location.hash,'');window.open('https://www.facebook.com/sharer/sharer.php?u='+encodeURIComponent(windowLocation),"facebookWindow","height=380,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");return!1};NectarSocial.prototype.twitterShare=function(){var windowLocation=window.location.href.replace(window.location.hash,'');var $pageTitle;if($(".section-title h1").length>0){$pageTitle=encodeURIComponent($(".section-title h1").text())}else{$pageTitle=encodeURIComponent($(document).find("title").text())}
window.open('https://twitter.com/intent/tweet?text='+$pageTitle+' '+windowLocation,"twitterWindow","height=380,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");return!1};NectarSocial.prototype.wooTwitterShare=function(){var windowLocation=window.location.href.replace(window.location.hash,'');window.open('https://twitter.com/intent/tweet?text='+$("h1.product_title").text()+' '+encodeURIComponent(windowLocation),"twitterWindow","height=380,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");return!1};NectarSocial.prototype.linkedInShare=function(){var windowLocation=window.location.href.replace(window.location.hash,'');var $pageTitle;if($(".section-title h1").length>0){$pageTitle=encodeURIComponent($(".section-title h1").text())}else{$pageTitle=encodeURIComponent($(document).find("title").text())}
window.open('https://www.linkedin.com/sharing/share-offsite/?mini=true&url='+encodeURIComponent(windowLocation)+'&title='+$pageTitle+'',"linkedInWindow","height=480,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");return!1};NectarSocial.prototype.woolinkedInShare=function(){var windowLocation=window.location.href.replace(window.location.hash,'');window.open('https://www.linkedin.com/sharing/share-offsite/?mini=true&url='+encodeURIComponent(windowLocation)+'&title='+$("h1.product_title").text(),"twitterWindow","height=380,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");return!1};NectarSocial.prototype.pinterestShare=function(){var windowLocation=window.location.href.replace(window.location.hash,'');var $sharingImg=($('.single-portfolio').length>0&&$('div[data-featured-img]').attr('data-featured-img')!='empty')?$('div[data-featured-img]').attr('data-featured-img'):$('#ajax-content-wrap img').first().attr('src');if($sharingImg){$sharingImg=encodeURIComponent($sharingImg)}
var $pageTitle;if($(".section-title h1").length>0){$pageTitle=encodeURIComponent($(".section-title h1").text())}else{$pageTitle=encodeURIComponent($(document).find("title").text())}
window.open('https://pinterest.com/pin/create/button/?url='+encodeURIComponent(windowLocation)+'&media='+$sharingImg+'&description='+$pageTitle,"pinterestWindow","height=640,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");return!1};NectarSocial.prototype.wooPinterestShare=function(){var $imgToShare=($('img.attachment-shop_single').length>0)?$('img.attachment-shop_single').first().attr('src'):$('.single-product-main-image img').first().attr('src');if($imgToShare){$imgToShare=encodeURIComponent($imgToShare)}
var windowLocation=window.location.href.replace(window.location.hash,'');window.open('https://pinterest.com/pin/create/button/?url='+encodeURIComponent(windowLocation)+'&media='+$imgToShare+'&description='+$('h1.product_title').text(),"pinterestWindow","height=640,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");return!1};NectarSocial.prototype.nectarLove=function(){this.$body.on('click','.nectar-love',function(){var $loveLink=$(this),$id=$(this).attr('id'),$that=$(this);if($loveLink.hasClass('loved')||$(this).hasClass('inactive')){return!1}
var $dataToPass={action:'nectar-love',loves_id:$id,love_nonce:window.nectarLove.loveNonce};$.post(window.nectarLove.ajaxurl,$dataToPass,function(data){$loveLink.find('.nectar-love-count').html(data);$loveLink.addClass('loved').attr('title','You already love this!');$that.find('.icon-salient-heart-2').addClass('loved')});$(this).addClass('inactive');return!1})};NectarSocial.prototype.fixedStyle=function(){$('.wpb_wrapper .nectar-social.fixed').each(function(i){if(i!==0){$(this).remove()}else{var $fixedMarkup=$(this).clone();$('body').append($fixedMarkup);$(this).remove()}});function showFixedSharing(){if($(window).scrollTop()>150){$('.nectar-social.fixed').addClass('visible');$(window).off('scroll',showFixedSharing);$(window).on('scroll',hideFixedSharing)}}
function hideFixedSharing(){if($(window).scrollTop()<150){$('.nectar-social.fixed').removeClass('visible');$(window).off('scroll',hideFixedSharing);$(window).on('scroll',showFixedSharing)}}
if($('.nectar-social.fixed').length>0){if($(window).width()<1000){if($(window).scrollTop()>150){$(window).on('scroll',hideFixedSharing)}else{$(window).on('scroll',showFixedSharing)}}
$(window).on('smartresize',function(){if($(window).width()>1000){$('.nectar-social.fixed').addClass('visible')}else if($(window).scrollTop()<150){$(window).off('scroll',hideFixedSharing);$(window).on('scroll',showFixedSharing);$('.nectar-social.fixed').removeClass('visible')}else{$(window).off('scroll',showFixedSharing);$(window).on('scroll',hideFixedSharing)}})}};var nectarSocialInit=new NectarSocial();window.NectarSocial=NectarSocial})

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Some files were not shown because too many files have changed in this diff Show More