@asante-org/atlascopco-vt-litesitegenerator 3.6.21 → 3.8.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../src/components/lsg/LsgButton/LsgButton.tsx","../../src/components/lsg/LsgBanner/LsgBanner.tsx","../../src/components/lsg/LsgImage/LsgImage.tsx","../../src/components/lsg/LsgVideo/LsgVideo.tsx","../node_modules/embla-carousel/esm/embla-carousel.esm.js","../../src/components/lsg/LsgCarousel/LsgCarouselController.ts","../../src/components/lsg/LsgCarousel/LsgCarousel.tsx","../../src/components/lsg/LsgCard/LsgCard.tsx","../../src/utils/lsgIconPaths.ts","../../src/utils/LsgIcon.tsx","../../src/components/lsg/LsgBreadcrumb/LsgBreadcrumb.tsx","../../src/components/lsg/LsgLogo/LsgLogo.tsx","../../src/components/lsg/LsgNavigation/LsgNavigation.tsx","../../src/components/lsg/LsgLanguageSwitcher/LsgLanguageSwitcher.tsx","../../src/components/lsg/LsgSearchTrigger/LsgSearchTrigger.tsx","../../src/components/lsg/LsgSearchOverlay/LsgSearchOverlay.tsx","../../src/components/lsg/LsgHeader/LsgHeader.tsx","../../src/components/lsg/LsgQuickLinks/LsgQuickLinks.tsx","../../src/components/lsg/LsgSocialMediaIcons/LsgSocialMediaIcons.tsx","../../src/components/lsg/LsgFooter/LsgFooter.tsx","../node_modules/embla-carousel-fade/esm/embla-carousel-fade.esm.js","../../src/components/lsg/LsgHero/LsgHeroController.ts","../../src/components/lsg/LsgHeroCard/LsgHeroCard.tsx","../../src/components/lsg/LsgHero/LsgHero.tsx","../../src/components/lsg/LsgTabs/LsgTabs.tsx","../../src/components/lsg/LsgTable/LsgTable.tsx","../../src/components/lsg/LsgFormFieldText/LsgFormFieldText.tsx","../../src/components/lsg/LsgFormFieldEmail/LsgFormFieldEmail.tsx","../node_modules/react-international-phone/dist/index.mjs","../../src/components/lsg/telPicker/telPicker.ts","../../src/components/lsg/LsgFormFieldTel/LsgFormFieldTel.tsx","../../src/components/lsg/LsgFormFieldSelect/LsgFormFieldSelect.tsx","../../src/components/lsg/LsgFormFieldCountry/LsgFormFieldCountry.tsx","../../src/components/lsg/LsgFormFieldTextarea/LsgFormFieldTextarea.tsx","../../src/components/lsg/LsgFormFieldConsent/LsgFormFieldConsent.tsx","../../src/components/lsg/LsgFormStep/LsgFormStep.tsx","../../src/components/lsg/LsgFormContainer/LsgFormContainer.tsx","../../src/components/lsg/LsgFormPolicyNotice/LsgFormPolicyNotice.tsx","../../src/themes/createThemeComponents.tsx","../../src/themes/theme-1/components.tsx","../../src/themes/theme-2/components.tsx","../../src/themes/theme-3/components.tsx"],"sourcesContent":["import React from \"react\";\nimport \"./LsgButton.scss\";\n\nexport type LsgButtonVariant = \"primary\" | \"secondary\" | \"tertiary\" | \"outlined-white\" | \"outlined-black\";\n\nexport interface LsgButtonProps {\n children?: React.ReactNode;\n variant?: LsgButtonVariant;\n disabled?: boolean;\n /** Renders an <a> element when provided */\n href?: string;\n onClick?: (e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n type?: \"button\" | \"submit\" | \"reset\";\n className?: string;\n /** Opens in a new tab when used with href */\n external?: boolean;\n}\n\nexport const LsgButton: React.FC<LsgButtonProps> = ({\n children,\n variant = \"primary\",\n disabled = false,\n href,\n onClick,\n type = \"button\",\n className = \"\",\n external = false,\n}) => {\n const classNames = [\n \"lsg-button\",\n `lsg-button--${variant}`,\n disabled ? \"lsg-button--disabled\" : \"\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n if (href) {\n return (\n <a\n href={disabled ? undefined : href}\n className={classNames}\n aria-disabled={disabled || undefined}\n onClick={disabled ? undefined : (onClick as React.MouseEventHandler<HTMLAnchorElement>)}\n {...(external ? { target: \"_blank\", rel: \"noopener noreferrer\" } : {})}\n >\n <span className=\"lsg-button__text\">{children}</span>\n </a>\n );\n }\n\n return (\n <button\n type={type}\n className={classNames}\n disabled={disabled}\n onClick={onClick as React.MouseEventHandler<HTMLButtonElement>}\n >\n {children}\n </button>\n );\n};\n","import React from \"react\";\nimport \"./LsgBanner.scss\";\nimport { LsgButton } from \"../LsgButton\";\nimport type { LsgButtonVariant } from \"../LsgButton\";\n\nexport type LsgBannerLayout =\n | \"media-left\"\n | \"media-right\"\n | \"media-left-compact\"\n | \"media-right-compact\"\n | \"overlay\"\n | \"overlay-transparent\"\n | \"text-only\";\n\n/** Mirrors the AEM \"Background color\" style group on the banner policy. */\nexport type LsgBannerBackground =\n | \"white\"\n | \"light\"\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"dark\"\n | \"black\";\n\nexport type LsgBannerMobileMediaPosition = \"top\" | \"bottom\";\nexport type LsgBannerMediaType = \"image\" | \"video\";\nexport type LsgBannerHeadingTag = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n\nexport interface LsgBannerCta {\n label: string;\n href?: string;\n external?: boolean;\n variant?: LsgButtonVariant;\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;\n}\n\nexport interface LsgBannerProps {\n /** Mandatory banner title. */\n heading: string;\n /** Figma/AEM pre-title. `eyebrow` remains as a backwards-compatible alias. */\n preTitle?: string;\n eyebrow?: string;\n /** Optional body copy. `copy` remains as a backwards-compatible alias. */\n body?: string;\n copy?: string;\n /** Up to three CTAs. Theme/AEM policy may choose to expose fewer. */\n ctas?: LsgBannerCta[];\n /** Backwards-compatible single CTA alias. */\n cta?: LsgBannerCta;\n /** Image/video presentation controlled by the Banner authoring layout. */\n mediaType?: LsgBannerMediaType;\n imageUrl?: string;\n imageAlt?: string;\n videoUrl?: string;\n videoPoster?: string;\n videoControls?: boolean;\n videoAutoPlay?: boolean;\n videoMuted?: boolean;\n videoLoop?: boolean;\n /** Desktop visual layout matching the Figma Banner variants. */\n layout?: LsgBannerLayout;\n /** Mobile stack order for split/compact layouts. */\n mobileMediaPosition?: LsgBannerMobileMediaPosition;\n /**\n * Background colour, mirroring the AEM \"Background color\" style group.\n * Left undefined on purpose so no class is emitted and the banner keeps its\n * default light background. Each option carries its own legible foreground.\n */\n background?: LsgBannerBackground;\n headingTag?: LsgBannerHeadingTag;\n className?: string;\n}\n\nfunction bannerClassName(\n layout: LsgBannerLayout,\n mobileMediaPosition: LsgBannerMobileMediaPosition,\n background?: LsgBannerBackground,\n className?: string,\n): string {\n return [\n \"lsg-banner\",\n `lsg-banner--${layout}`,\n `lsg-banner--mobile-media-${mobileMediaPosition}`,\n // In AEM this class arrives on the decoration div instead; the SCSS only\n // sets inherited custom properties, so either position works.\n background ? `lsg-banner--bg-${background}` : \"\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n}\n\nexport const LsgBanner: React.FC<LsgBannerProps> = ({\n heading,\n preTitle,\n eyebrow,\n body,\n copy,\n ctas,\n cta,\n mediaType,\n imageUrl,\n imageAlt = \"\",\n videoUrl,\n videoPoster,\n videoControls = true,\n videoAutoPlay = false,\n videoMuted = true,\n videoLoop = false,\n layout = \"media-left\",\n mobileMediaPosition = \"top\",\n background,\n headingTag = \"h1\",\n className,\n}) => {\n const resolvedPreTitle = preTitle ?? eyebrow;\n const resolvedBody = body ?? copy;\n const actions = (ctas?.length ? ctas : cta ? [cta] : []).slice(0, 3);\n const resolvedMediaType: LsgBannerMediaType =\n mediaType ?? (videoUrl ? \"video\" : \"image\");\n const hasMedia =\n layout !== \"text-only\" &&\n (resolvedMediaType === \"video\" ? Boolean(videoUrl) : Boolean(imageUrl));\n const HeadingTag = headingTag;\n\n return (\n <section\n className={bannerClassName(layout, mobileMediaPosition, background, className)}\n data-lsg-is=\"banner\"\n data-lsg-banner-layout={layout}\n data-lsg-banner-mobile-media={mobileMediaPosition}\n data-lsg-banner-media={hasMedia ? resolvedMediaType : \"none\"}\n >\n <div className=\"lsg-banner__shell\">\n {hasMedia && (\n <div className=\"lsg-banner__media\">\n {resolvedMediaType === \"video\" && videoUrl ? (\n <video\n className=\"lsg-banner__video\"\n src={videoUrl}\n poster={videoPoster}\n controls={videoControls}\n autoPlay={videoAutoPlay}\n muted={videoMuted}\n loop={videoLoop}\n playsInline\n aria-label={imageAlt || heading}\n />\n ) : imageUrl ? (\n <img className=\"lsg-banner__image\" src={imageUrl} alt={imageAlt} />\n ) : null}\n </div>\n )}\n\n <div className=\"lsg-banner__content\">\n {resolvedPreTitle && (\n <div className=\"lsg-banner__pre-title\">\n <span className=\"lsg-banner__pre-title-marker\" aria-hidden=\"true\" />\n <span className=\"lsg-banner__pre-title-text\">{resolvedPreTitle}</span>\n </div>\n )}\n\n <HeadingTag className=\"lsg-banner__heading\">{heading}</HeadingTag>\n\n {resolvedBody && (\n <div className=\"lsg-banner__body\">\n <p>{resolvedBody}</p>\n </div>\n )}\n\n {actions.length > 0 && (\n <div className=\"lsg-banner__actions\">\n {actions.map((action, index) => (\n <LsgButton\n key={`${action.label}-${action.href ?? \"button\"}-${index}`}\n href={action.href}\n external={action.external}\n variant={action.variant ?? \"primary\"}\n onClick={action.onClick}\n className=\"lsg-banner__cta\"\n >\n {action.label}\n </LsgButton>\n ))}\n </div>\n )}\n </div>\n </div>\n </section>\n );\n};\n","import React from \"react\";\nimport \"./LsgImage.scss\";\n\nexport interface LsgImageTag {\n label: string;\n}\n\nexport interface LsgImageSource {\n /** Candidate set for this breakpoint. Maps to `<source srcset>`. */\n srcset: string;\n /** Media condition. Maps to `<source media>`. Omit for the fallback source. */\n media?: string;\n}\n\nexport interface LsgImageProps {\n /** Image URL rendered by the component. Maps to Core Image `src`. */\n imageUrl?: string;\n /** Alternative text for the image. Maps to Core Image `alt`. */\n imageAlt?: string;\n /** Candidate set for native adaptive loading. Maps to Core Image `srcset`. Ignored when `sources` is set, mirroring the AEM crops branch. */\n srcset?: string;\n /** Responsive `<source>` variants, as AEM emits from the Scene7 crop map. */\n sources?: LsgImageSource[];\n /** Intrinsic width of the image. Maps to Core Image `width`. */\n width?: number | string;\n /** Intrinsic height of the image. Maps to Core Image `height`. */\n height?: number | string;\n /** URI template used by AEM to request a rendition. Maps to Core Image `srcUriTemplate`. */\n srcUriTemplate?: string;\n /** Native lazy loading, as per the Core Image `disableLazyLoading` policy. Default: true. */\n lazyEnabled?: boolean;\n /** Render the title as the image tooltip instead of the caption. Maps to Core Image `displayPopupTitle`. */\n displayPopupTitle?: boolean;\n /** Component id. Maps to Core Image `id`. */\n id?: string;\n /** Serialised data layer payload. Maps to Core Image `data.json`. */\n dataLayer?: string;\n /** Asset UUID. Maps to Core Image `uuid`. */\n assetId?: string;\n /** Marks the image as a Dynamic Media image. Maps to Core Image `dmImage`. */\n dmImage?: boolean | string;\n /** Up to 3 tag pills overlaid on the image. */\n tags?: LsgImageTag[];\n /** Image title. Maps to the AEM Core Image caption/title. */\n title?: string;\n /** LSG-specific description revealed on hover/focus. */\n description?: string;\n /** Backward-compatible alias for description. */\n caption?: string;\n /** Optional image link. Maps to Core Image `imageLink`. */\n href?: string;\n className?: string;\n}\n\nfunction isSafeUrl(url: string | undefined): boolean {\n if (!url) return false;\n\n const lower = url.toLowerCase().trim();\n if (\n lower.startsWith(\"javascript:\") ||\n lower.startsWith(\"data:\") ||\n lower.startsWith(\"vbscript:\")\n ) {\n return false;\n }\n\n return (\n lower.startsWith(\"/\") ||\n lower.startsWith(\"http://\") ||\n lower.startsWith(\"https://\") ||\n lower.startsWith(\"mailto:\") ||\n lower.startsWith(\"tel:\") ||\n !lower.includes(\":\")\n );\n}\n\nexport const LsgImage: React.FC<LsgImageProps> = ({\n imageUrl,\n imageAlt = \"\",\n srcset,\n sources = [],\n width,\n height,\n srcUriTemplate,\n lazyEnabled = true,\n displayPopupTitle = false,\n id,\n dataLayer,\n assetId,\n dmImage,\n tags = [],\n title,\n description,\n caption,\n href,\n className = \"\",\n}) => {\n // Core Image v3 renders nothing without a src; the AEM LSG model gates on the\n // same condition via `model.ready`.\n if (!imageUrl) {\n return null;\n }\n\n const text = description ?? caption;\n\n const visibleTags: LsgImageTag[] = Array.isArray(tags)\n ? tags\n .filter(\n (tag): tag is LsgImageTag =>\n Boolean(tag) &&\n typeof tag.label === \"string\" &&\n tag.label.trim().length > 0,\n )\n .slice(0, 3)\n : [];\n\n const visibleSources: LsgImageSource[] = Array.isArray(sources)\n ? sources.filter(\n (source): source is LsgImageSource =>\n Boolean(source) &&\n typeof source.srcset === \"string\" &&\n source.srcset.trim().length > 0,\n )\n : [];\n\n const rootClass = [\"lsg-image\", \"cmp-image\", className]\n .filter(Boolean)\n .join(\" \");\n const safeHref = href && isSafeUrl(href) ? href : undefined;\n const linkLabel = title ? `View ${title}` : \"View image\";\n const showTitle = Boolean(title) && !displayPopupTitle;\n const showCaption = showTitle || Boolean(text);\n\n return (\n <div\n className={rootClass}\n id={id}\n data-cmp-data-layer={dataLayer}\n data-asset-id={assetId}\n data-cmp-dmimage={dmImage ? String(dmImage) : undefined}\n itemScope\n itemType=\"http://schema.org/ImageObject\"\n >\n <div className=\"lsg-image__media\">\n <div className=\"lsg-image__picture\">\n <picture>\n {visibleSources.map((source, index) => (\n <source\n key={`${source.media ?? \"default\"}-${index}`}\n media={source.media}\n srcSet={source.srcset}\n />\n ))}\n\n <img\n className=\"lsg-image__img cmp-image__image\"\n src={imageUrl}\n srcSet={visibleSources.length > 0 ? undefined : srcset}\n alt={imageAlt}\n title={displayPopupTitle ? title : undefined}\n width={width}\n height={height}\n data-cmp-src={srcUriTemplate}\n itemProp=\"contentUrl\"\n loading={lazyEnabled ? \"lazy\" : undefined}\n />\n </picture>\n </div>\n\n {safeHref && (\n <a\n className=\"lsg-image__link cmp-image__link\"\n href={safeHref}\n aria-label={linkLabel}\n data-cmp-clickable={dataLayer ? true : undefined}\n />\n )}\n\n {visibleTags.length > 0 && (\n <div className=\"lsg-image__tags\">\n {visibleTags.map((tag, index) => (\n <span\n key={`${tag.label}-${index}`}\n className=\"lsg-image__tag\"\n >\n {tag.label}\n </span>\n ))}\n </div>\n )}\n </div>\n\n {showCaption && (\n <div className=\"lsg-image__caption\">\n {showTitle && (\n <p className=\"lsg-image__title cmp-image__title\" itemProp=\"caption\">\n {title}\n </p>\n )}\n {text && <p className=\"lsg-image__text\">{text}</p>}\n </div>\n )}\n\n {title && displayPopupTitle && <meta itemProp=\"caption\" content={title} />}\n </div>\n );\n};\n","import React, { useState } from \"react\";\nimport \"./LsgVideo.scss\";\n\nexport interface LsgVideoTag {\n label: string;\n}\n\nexport type LsgVideoDisplayMode = \"inline\" | \"full-width\" | \"content\";\n\nexport interface LsgVideoProps {\n /** URL of the video thumbnail / poster image. Optional. */\n imageUrl?: string;\n /** Alt text for the poster image. */\n imageAlt?: string;\n /** Up to 3 tag pills overlaid on the poster. Extra entries are ignored. */\n tags?: LsgVideoTag[];\n /** Video title shown in the caption bar. Optional. */\n title?: string;\n /** Caption / description text below the title, revealed on hover / focus. */\n caption?: string;\n /** Href for the play action — used only when no video source is supplied. */\n href?: string;\n /** Fired when the play control is activated. */\n onPlay?: () => void;\n /** Native DAM/direct media URL, or an external YouTube/Vimeo URL. */\n videoUrl?: string;\n /** Autoplay the video/embed as soon as it renders. Default: false. */\n autoplay?: boolean;\n /** Loop playback. Default: false. */\n loop?: boolean;\n /** Mute playback. Default: false. */\n muted?: boolean;\n /** Show native/embed playback controls. Default: true. */\n controls?: boolean;\n /** Layout variant. Default: \"content\". */\n displayMode?: LsgVideoDisplayMode;\n /** Show or hide the tag pills overlay. Default: true. */\n showTags?: boolean;\n className?: string;\n}\n\ninterface EmbedInfo {\n provider: \"youtube\" | \"vimeo\";\n embedUrl: string;\n}\n\nfunction buildUrl(base: string, params: Record<string, string>): string {\n try {\n const url = new URL(base);\n Object.keys(params).forEach((key) => url.searchParams.set(key, params[key]));\n return url.toString();\n } catch {\n return base;\n }\n}\n\nfunction getEmbedInfo(\n videoUrl: string | undefined,\n opts: { autoplay: boolean; loop: boolean; muted: boolean; controls: boolean },\n): EmbedInfo | null {\n if (!videoUrl || typeof videoUrl !== \"string\") return null;\n\n try {\n const url = new URL(videoUrl);\n const host = url.hostname.replace(/^www\\./, \"\");\n const path = url.pathname;\n\n if (host === \"youtube.com\" || host === \"youtube-nocookie.com\" || host === \"youtu.be\") {\n let id: string | null = null;\n if (host === \"youtu.be\") {\n id = path.slice(1);\n } else if (path.startsWith(\"/embed/\") || path.startsWith(\"/shorts/\")) {\n id = path.split(\"/\")[2];\n } else if (path === \"/watch\") {\n id = url.searchParams.get(\"v\");\n }\n if (id && /^[A-Za-z0-9_-]{11}$/.test(id)) {\n const params: Record<string, string> = {\n autoplay: opts.autoplay ? \"1\" : \"0\",\n mute: opts.muted ? \"1\" : \"0\",\n controls: opts.controls ? \"1\" : \"0\",\n rel: \"0\",\n };\n if (opts.loop) { params.loop = \"1\"; params.playlist = id; }\n const baseHost = host === \"youtube-nocookie.com\" ? \"youtube-nocookie.com\" : \"youtube.com\";\n return { provider: \"youtube\", embedUrl: buildUrl(`https://www.${baseHost}/embed/${id}`, params) };\n }\n }\n\n if (host === \"vimeo.com\" || host === \"player.vimeo.com\") {\n let id: string | null = null;\n if (host === \"player.vimeo.com\" && path.startsWith(\"/video/\")) {\n id = path.split(\"/\")[2];\n } else {\n const match = path.match(/^\\/(\\d+)$/);\n if (match) id = match[1];\n }\n if (id && /^\\d+$/.test(id)) {\n const params: Record<string, string> = {\n autoplay: opts.autoplay ? \"1\" : \"0\",\n muted: opts.muted ? \"1\" : \"0\",\n loop: opts.loop ? \"1\" : \"0\",\n controls: opts.controls ? \"1\" : \"0\",\n };\n return { provider: \"vimeo\", embedUrl: buildUrl(`https://player.vimeo.com/video/${id}`, params) };\n }\n }\n } catch {\n return null;\n }\n return null;\n}\n\nfunction isSafeUrl(url: string | undefined): boolean {\n if (!url) return false;\n const lower = url.toLowerCase().trim();\n if (lower.startsWith(\"javascript:\") || lower.startsWith(\"data:\") || lower.startsWith(\"vbscript:\")) return false;\n return (\n lower.startsWith(\"/\") ||\n lower.startsWith(\"http://\") ||\n lower.startsWith(\"https://\") ||\n lower.startsWith(\"mailto:\") ||\n lower.startsWith(\"tel:\") ||\n !lower.includes(\":\")\n );\n}\n\nconst PlayIcon = (\n <svg\n className=\"lsg-video__play-svg\"\n width=\"60\"\n height=\"60\"\n viewBox=\"0 0 60 60\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <circle cx=\"30\" cy=\"30\" r=\"30\" fill=\"currentColor\" fillOpacity=\"0.15\" />\n <polygon points=\"24,18 46,30 24,42\" fill=\"currentColor\" />\n </svg>\n);\n\nexport const LsgVideo: React.FC<LsgVideoProps> = ({\n imageUrl,\n imageAlt = \"\",\n tags = [],\n title,\n caption,\n href,\n onPlay,\n videoUrl,\n autoplay = false,\n loop = false,\n muted = false,\n controls = true,\n displayMode = \"content\",\n showTags = true,\n className = \"\",\n}) => {\n const [isRevealed, setIsRevealed] = useState(false);\n\n const hasVideoSource = typeof videoUrl === \"string\" && videoUrl.length > 0;\n const embedInfo = hasVideoSource ? getEmbedInfo(videoUrl, { autoplay, loop, muted, controls }) : null;\n const isEmbed = embedInfo !== null;\n const isNativeSource = hasVideoSource && !isEmbed;\n const showMedia = hasVideoSource && (autoplay || isRevealed);\n\n const visibleTags: LsgVideoTag[] =\n showTags && Array.isArray(tags)\n ? tags\n .filter(\n (tag): tag is LsgVideoTag =>\n Boolean(tag) && typeof tag.label === \"string\" && tag.label.trim().length > 0,\n )\n .slice(0, 3)\n : [];\n\n const handleActivate = (e: React.MouseEvent) => {\n if (hasVideoSource) {\n e.preventDefault();\n setIsRevealed(true);\n onPlay?.();\n return;\n }\n if (href && isSafeUrl(href)) return;\n if (onPlay) { e.preventDefault(); onPlay(); }\n };\n\n const playLabel = title ? `Play ${title}` : \"Play video\";\n const rootClass = [\"lsg-video\", `lsg-video--${displayMode}`, className].filter(Boolean).join(\" \");\n const showCaption = Boolean(title) || Boolean(caption);\n\n const renderPlayControl = () => {\n if (hasVideoSource) {\n return (\n <button type=\"button\" className=\"lsg-video__play\" aria-label={playLabel} onClick={handleActivate}>\n {PlayIcon}\n </button>\n );\n }\n if (href && isSafeUrl(href)) {\n return (\n <a href={href} className=\"lsg-video__play\" aria-label={playLabel} onClick={handleActivate}>\n {PlayIcon}\n </a>\n );\n }\n return (\n <button type=\"button\" className=\"lsg-video__play\" aria-label={playLabel} onClick={handleActivate}>\n {PlayIcon}\n </button>\n );\n };\n\n return (\n <div className={rootClass}>\n <div className=\"lsg-video__media\">\n {showMedia ? (\n isEmbed ? (\n <div className=\"lsg-video__embed\">\n <iframe\n className=\"lsg-video__iframe\"\n src={embedInfo!.embedUrl}\n title={title || \"Video\"}\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n referrerPolicy=\"strict-origin-when-cross-origin\"\n allowFullScreen\n loading=\"lazy\"\n />\n </div>\n ) : (\n isNativeSource && (\n // eslint-disable-next-line jsx-a11y/media-has-caption\n <video\n className=\"lsg-video__native\"\n poster={imageUrl || undefined}\n controls={controls}\n autoPlay\n loop={loop}\n muted={muted}\n playsInline\n >\n <source src={videoUrl} />\n </video>\n )\n )\n ) : (\n <>\n <div className=\"lsg-video__poster\">\n {imageUrl && <img className=\"lsg-video__poster-img\" src={imageUrl} alt={imageAlt} loading=\"lazy\" />}\n </div>\n {visibleTags.length > 0 && (\n <div className=\"lsg-video__tags\">\n {visibleTags.map((tag, i) => (\n <span key={`${tag.label}-${i}`} className=\"lsg-video__tag\">\n {tag.label}\n </span>\n ))}\n </div>\n )}\n {renderPlayControl()}\n </>\n )}\n {/* Caption inside __media — positioned statically (T1) or absolutely at bottom (T2/T3) via CSS tokens */}\n {showCaption && (\n <div className=\"lsg-video__caption\">\n {title && <p className=\"lsg-video__title\">{title}</p>}\n {caption && <p className=\"lsg-video__text\">{caption}</p>}\n </div>\n )}\n </div>\n </div>\n );\n};\n","function isNumber(subject) {\n return typeof subject === 'number';\n}\nfunction isString(subject) {\n return typeof subject === 'string';\n}\nfunction isBoolean(subject) {\n return typeof subject === 'boolean';\n}\nfunction isObject(subject) {\n return Object.prototype.toString.call(subject) === '[object Object]';\n}\nfunction mathAbs(n) {\n return Math.abs(n);\n}\nfunction mathSign(n) {\n return Math.sign(n);\n}\nfunction deltaAbs(valueB, valueA) {\n return mathAbs(valueB - valueA);\n}\nfunction factorAbs(valueB, valueA) {\n if (valueB === 0 || valueA === 0) return 0;\n if (mathAbs(valueB) <= mathAbs(valueA)) return 0;\n const diff = deltaAbs(mathAbs(valueB), mathAbs(valueA));\n return mathAbs(diff / valueB);\n}\nfunction roundToTwoDecimals(num) {\n return Math.round(num * 100) / 100;\n}\nfunction arrayKeys(array) {\n return objectKeys(array).map(Number);\n}\nfunction arrayLast(array) {\n return array[arrayLastIndex(array)];\n}\nfunction arrayLastIndex(array) {\n return Math.max(0, array.length - 1);\n}\nfunction arrayIsLastIndex(array, index) {\n return index === arrayLastIndex(array);\n}\nfunction arrayFromNumber(n, startAt = 0) {\n return Array.from(Array(n), (_, i) => startAt + i);\n}\nfunction objectKeys(object) {\n return Object.keys(object);\n}\nfunction objectsMergeDeep(objectA, objectB) {\n return [objectA, objectB].reduce((mergedObjects, currentObject) => {\n objectKeys(currentObject).forEach(key => {\n const valueA = mergedObjects[key];\n const valueB = currentObject[key];\n const areObjects = isObject(valueA) && isObject(valueB);\n mergedObjects[key] = areObjects ? objectsMergeDeep(valueA, valueB) : valueB;\n });\n return mergedObjects;\n }, {});\n}\nfunction isMouseEvent(evt, ownerWindow) {\n return typeof ownerWindow.MouseEvent !== 'undefined' && evt instanceof ownerWindow.MouseEvent;\n}\n\nfunction Alignment(align, viewSize) {\n const predefined = {\n start,\n center,\n end\n };\n function start() {\n return 0;\n }\n function center(n) {\n return end(n) / 2;\n }\n function end(n) {\n return viewSize - n;\n }\n function measure(n, index) {\n if (isString(align)) return predefined[align](n);\n return align(viewSize, n, index);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction EventStore() {\n let listeners = [];\n function add(node, type, handler, options = {\n passive: true\n }) {\n let removeListener;\n if ('addEventListener' in node) {\n node.addEventListener(type, handler, options);\n removeListener = () => node.removeEventListener(type, handler, options);\n } else {\n const legacyMediaQueryList = node;\n legacyMediaQueryList.addListener(handler);\n removeListener = () => legacyMediaQueryList.removeListener(handler);\n }\n listeners.push(removeListener);\n return self;\n }\n function clear() {\n listeners = listeners.filter(remove => remove());\n }\n const self = {\n add,\n clear\n };\n return self;\n}\n\nfunction Animations(ownerDocument, ownerWindow, update, render) {\n const documentVisibleHandler = EventStore();\n const fixedTimeStep = 1000 / 60;\n let lastTimeStamp = null;\n let accumulatedTime = 0;\n let animationId = 0;\n function init() {\n documentVisibleHandler.add(ownerDocument, 'visibilitychange', () => {\n if (ownerDocument.hidden) reset();\n });\n }\n function destroy() {\n stop();\n documentVisibleHandler.clear();\n }\n function animate(timeStamp) {\n if (!animationId) return;\n if (!lastTimeStamp) {\n lastTimeStamp = timeStamp;\n update();\n update();\n }\n const timeElapsed = timeStamp - lastTimeStamp;\n lastTimeStamp = timeStamp;\n accumulatedTime += timeElapsed;\n while (accumulatedTime >= fixedTimeStep) {\n update();\n accumulatedTime -= fixedTimeStep;\n }\n const alpha = accumulatedTime / fixedTimeStep;\n render(alpha);\n if (animationId) {\n animationId = ownerWindow.requestAnimationFrame(animate);\n }\n }\n function start() {\n if (animationId) return;\n animationId = ownerWindow.requestAnimationFrame(animate);\n }\n function stop() {\n ownerWindow.cancelAnimationFrame(animationId);\n lastTimeStamp = null;\n accumulatedTime = 0;\n animationId = 0;\n }\n function reset() {\n lastTimeStamp = null;\n accumulatedTime = 0;\n }\n const self = {\n init,\n destroy,\n start,\n stop,\n update,\n render\n };\n return self;\n}\n\nfunction Axis(axis, contentDirection) {\n const isRightToLeft = contentDirection === 'rtl';\n const isVertical = axis === 'y';\n const scroll = isVertical ? 'y' : 'x';\n const cross = isVertical ? 'x' : 'y';\n const sign = !isVertical && isRightToLeft ? -1 : 1;\n const startEdge = getStartEdge();\n const endEdge = getEndEdge();\n function measureSize(nodeRect) {\n const {\n height,\n width\n } = nodeRect;\n return isVertical ? height : width;\n }\n function getStartEdge() {\n if (isVertical) return 'top';\n return isRightToLeft ? 'right' : 'left';\n }\n function getEndEdge() {\n if (isVertical) return 'bottom';\n return isRightToLeft ? 'left' : 'right';\n }\n function direction(n) {\n return n * sign;\n }\n const self = {\n scroll,\n cross,\n startEdge,\n endEdge,\n measureSize,\n direction\n };\n return self;\n}\n\nfunction Limit(min = 0, max = 0) {\n const length = mathAbs(min - max);\n function reachedMin(n) {\n return n < min;\n }\n function reachedMax(n) {\n return n > max;\n }\n function reachedAny(n) {\n return reachedMin(n) || reachedMax(n);\n }\n function constrain(n) {\n if (!reachedAny(n)) return n;\n return reachedMin(n) ? min : max;\n }\n function removeOffset(n) {\n if (!length) return n;\n return n - length * Math.ceil((n - max) / length);\n }\n const self = {\n length,\n max,\n min,\n constrain,\n reachedAny,\n reachedMax,\n reachedMin,\n removeOffset\n };\n return self;\n}\n\nfunction Counter(max, start, loop) {\n const {\n constrain\n } = Limit(0, max);\n const loopEnd = max + 1;\n let counter = withinLimit(start);\n function withinLimit(n) {\n return !loop ? constrain(n) : mathAbs((loopEnd + n) % loopEnd);\n }\n function get() {\n return counter;\n }\n function set(n) {\n counter = withinLimit(n);\n return self;\n }\n function add(n) {\n return clone().set(get() + n);\n }\n function clone() {\n return Counter(max, get(), loop);\n }\n const self = {\n get,\n set,\n add,\n clone\n };\n return self;\n}\n\nfunction DragHandler(axis, rootNode, ownerDocument, ownerWindow, target, dragTracker, location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, baseFriction, watchDrag) {\n const {\n cross: crossAxis,\n direction\n } = axis;\n const focusNodes = ['INPUT', 'SELECT', 'TEXTAREA'];\n const nonPassiveEvent = {\n passive: false\n };\n const initEvents = EventStore();\n const dragEvents = EventStore();\n const goToNextThreshold = Limit(50, 225).constrain(percentOfView.measure(20));\n const snapForceBoost = {\n mouse: 300,\n touch: 400\n };\n const freeForceBoost = {\n mouse: 500,\n touch: 600\n };\n const baseSpeed = dragFree ? 43 : 25;\n let isMoving = false;\n let startScroll = 0;\n let startCross = 0;\n let pointerIsDown = false;\n let preventScroll = false;\n let preventClick = false;\n let isMouse = false;\n function init(emblaApi) {\n if (!watchDrag) return;\n function downIfAllowed(evt) {\n if (isBoolean(watchDrag) || watchDrag(emblaApi, evt)) down(evt);\n }\n const node = rootNode;\n initEvents.add(node, 'dragstart', evt => evt.preventDefault(), nonPassiveEvent).add(node, 'touchmove', () => undefined, nonPassiveEvent).add(node, 'touchend', () => undefined).add(node, 'touchstart', downIfAllowed).add(node, 'mousedown', downIfAllowed).add(node, 'touchcancel', up).add(node, 'contextmenu', up).add(node, 'click', click, true);\n }\n function destroy() {\n initEvents.clear();\n dragEvents.clear();\n }\n function addDragEvents() {\n const node = isMouse ? ownerDocument : rootNode;\n dragEvents.add(node, 'touchmove', move, nonPassiveEvent).add(node, 'touchend', up).add(node, 'mousemove', move, nonPassiveEvent).add(node, 'mouseup', up);\n }\n function isFocusNode(node) {\n const nodeName = node.nodeName || '';\n return focusNodes.includes(nodeName);\n }\n function forceBoost() {\n const boost = dragFree ? freeForceBoost : snapForceBoost;\n const type = isMouse ? 'mouse' : 'touch';\n return boost[type];\n }\n function allowedForce(force, targetChanged) {\n const next = index.add(mathSign(force) * -1);\n const baseForce = scrollTarget.byDistance(force, !dragFree).distance;\n if (dragFree || mathAbs(force) < goToNextThreshold) return baseForce;\n if (skipSnaps && targetChanged) return baseForce * 0.5;\n return scrollTarget.byIndex(next.get(), 0).distance;\n }\n function down(evt) {\n const isMouseEvt = isMouseEvent(evt, ownerWindow);\n isMouse = isMouseEvt;\n preventClick = dragFree && isMouseEvt && !evt.buttons && isMoving;\n isMoving = deltaAbs(target.get(), location.get()) >= 2;\n if (isMouseEvt && evt.button !== 0) return;\n if (isFocusNode(evt.target)) return;\n pointerIsDown = true;\n dragTracker.pointerDown(evt);\n scrollBody.useFriction(0).useDuration(0);\n target.set(location);\n addDragEvents();\n startScroll = dragTracker.readPoint(evt);\n startCross = dragTracker.readPoint(evt, crossAxis);\n eventHandler.emit('pointerDown');\n }\n function move(evt) {\n const isTouchEvt = !isMouseEvent(evt, ownerWindow);\n if (isTouchEvt && evt.touches.length >= 2) return up(evt);\n const lastScroll = dragTracker.readPoint(evt);\n const lastCross = dragTracker.readPoint(evt, crossAxis);\n const diffScroll = deltaAbs(lastScroll, startScroll);\n const diffCross = deltaAbs(lastCross, startCross);\n if (!preventScroll && !isMouse) {\n if (!evt.cancelable) return up(evt);\n preventScroll = diffScroll > diffCross;\n if (!preventScroll) return up(evt);\n }\n const diff = dragTracker.pointerMove(evt);\n if (diffScroll > dragThreshold) preventClick = true;\n scrollBody.useFriction(0.3).useDuration(0.75);\n animation.start();\n target.add(direction(diff));\n evt.preventDefault();\n }\n function up(evt) {\n const currentLocation = scrollTarget.byDistance(0, false);\n const targetChanged = currentLocation.index !== index.get();\n const rawForce = dragTracker.pointerUp(evt) * forceBoost();\n const force = allowedForce(direction(rawForce), targetChanged);\n const forceFactor = factorAbs(rawForce, force);\n const speed = baseSpeed - 10 * forceFactor;\n const friction = baseFriction + forceFactor / 50;\n preventScroll = false;\n pointerIsDown = false;\n dragEvents.clear();\n scrollBody.useDuration(speed).useFriction(friction);\n scrollTo.distance(force, !dragFree);\n isMouse = false;\n eventHandler.emit('pointerUp');\n }\n function click(evt) {\n if (preventClick) {\n evt.stopPropagation();\n evt.preventDefault();\n preventClick = false;\n }\n }\n function pointerDown() {\n return pointerIsDown;\n }\n const self = {\n init,\n destroy,\n pointerDown\n };\n return self;\n}\n\nfunction DragTracker(axis, ownerWindow) {\n const logInterval = 170;\n let startEvent;\n let lastEvent;\n function readTime(evt) {\n return evt.timeStamp;\n }\n function readPoint(evt, evtAxis) {\n const property = evtAxis || axis.scroll;\n const coord = `client${property === 'x' ? 'X' : 'Y'}`;\n return (isMouseEvent(evt, ownerWindow) ? evt : evt.touches[0])[coord];\n }\n function pointerDown(evt) {\n startEvent = evt;\n lastEvent = evt;\n return readPoint(evt);\n }\n function pointerMove(evt) {\n const diff = readPoint(evt) - readPoint(lastEvent);\n const expired = readTime(evt) - readTime(startEvent) > logInterval;\n lastEvent = evt;\n if (expired) startEvent = evt;\n return diff;\n }\n function pointerUp(evt) {\n if (!startEvent || !lastEvent) return 0;\n const diffDrag = readPoint(lastEvent) - readPoint(startEvent);\n const diffTime = readTime(evt) - readTime(startEvent);\n const expired = readTime(evt) - readTime(lastEvent) > logInterval;\n const force = diffDrag / diffTime;\n const isFlick = diffTime && !expired && mathAbs(force) > 0.1;\n return isFlick ? force : 0;\n }\n const self = {\n pointerDown,\n pointerMove,\n pointerUp,\n readPoint\n };\n return self;\n}\n\nfunction NodeRects() {\n function measure(node) {\n const {\n offsetTop,\n offsetLeft,\n offsetWidth,\n offsetHeight\n } = node;\n const offset = {\n top: offsetTop,\n right: offsetLeft + offsetWidth,\n bottom: offsetTop + offsetHeight,\n left: offsetLeft,\n width: offsetWidth,\n height: offsetHeight\n };\n return offset;\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction PercentOfView(viewSize) {\n function measure(n) {\n return viewSize * (n / 100);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects) {\n const observeNodes = [container].concat(slides);\n let resizeObserver;\n let containerSize;\n let slideSizes = [];\n let destroyed = false;\n function readSize(node) {\n return axis.measureSize(nodeRects.measure(node));\n }\n function init(emblaApi) {\n if (!watchResize) return;\n containerSize = readSize(container);\n slideSizes = slides.map(readSize);\n function defaultCallback(entries) {\n for (const entry of entries) {\n if (destroyed) return;\n const isContainer = entry.target === container;\n const slideIndex = slides.indexOf(entry.target);\n const lastSize = isContainer ? containerSize : slideSizes[slideIndex];\n const newSize = readSize(isContainer ? container : slides[slideIndex]);\n const diffSize = mathAbs(newSize - lastSize);\n if (diffSize >= 0.5) {\n emblaApi.reInit();\n eventHandler.emit('resize');\n break;\n }\n }\n }\n resizeObserver = new ResizeObserver(entries => {\n if (isBoolean(watchResize) || watchResize(emblaApi, entries)) {\n defaultCallback(entries);\n }\n });\n ownerWindow.requestAnimationFrame(() => {\n observeNodes.forEach(node => resizeObserver.observe(node));\n });\n }\n function destroy() {\n destroyed = true;\n if (resizeObserver) resizeObserver.disconnect();\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction ScrollBody(location, offsetLocation, previousLocation, target, baseDuration, baseFriction) {\n let scrollVelocity = 0;\n let scrollDirection = 0;\n let scrollDuration = baseDuration;\n let scrollFriction = baseFriction;\n let rawLocation = location.get();\n let rawLocationPrevious = 0;\n function seek() {\n const displacement = target.get() - location.get();\n const isInstant = !scrollDuration;\n let scrollDistance = 0;\n if (isInstant) {\n scrollVelocity = 0;\n previousLocation.set(target);\n location.set(target);\n scrollDistance = displacement;\n } else {\n previousLocation.set(location);\n scrollVelocity += displacement / scrollDuration;\n scrollVelocity *= scrollFriction;\n rawLocation += scrollVelocity;\n location.add(scrollVelocity);\n scrollDistance = rawLocation - rawLocationPrevious;\n }\n scrollDirection = mathSign(scrollDistance);\n rawLocationPrevious = rawLocation;\n return self;\n }\n function settled() {\n const diff = target.get() - offsetLocation.get();\n return mathAbs(diff) < 0.001;\n }\n function duration() {\n return scrollDuration;\n }\n function direction() {\n return scrollDirection;\n }\n function velocity() {\n return scrollVelocity;\n }\n function useBaseDuration() {\n return useDuration(baseDuration);\n }\n function useBaseFriction() {\n return useFriction(baseFriction);\n }\n function useDuration(n) {\n scrollDuration = n;\n return self;\n }\n function useFriction(n) {\n scrollFriction = n;\n return self;\n }\n const self = {\n direction,\n duration,\n velocity,\n seek,\n settled,\n useBaseFriction,\n useBaseDuration,\n useFriction,\n useDuration\n };\n return self;\n}\n\nfunction ScrollBounds(limit, location, target, scrollBody, percentOfView) {\n const pullBackThreshold = percentOfView.measure(10);\n const edgeOffsetTolerance = percentOfView.measure(50);\n const frictionLimit = Limit(0.1, 0.99);\n let disabled = false;\n function shouldConstrain() {\n if (disabled) return false;\n if (!limit.reachedAny(target.get())) return false;\n if (!limit.reachedAny(location.get())) return false;\n return true;\n }\n function constrain(pointerDown) {\n if (!shouldConstrain()) return;\n const edge = limit.reachedMin(location.get()) ? 'min' : 'max';\n const diffToEdge = mathAbs(limit[edge] - location.get());\n const diffToTarget = target.get() - location.get();\n const friction = frictionLimit.constrain(diffToEdge / edgeOffsetTolerance);\n target.subtract(diffToTarget * friction);\n if (!pointerDown && mathAbs(diffToTarget) < pullBackThreshold) {\n target.set(limit.constrain(target.get()));\n scrollBody.useDuration(25).useBaseFriction();\n }\n }\n function toggleActive(active) {\n disabled = !active;\n }\n const self = {\n shouldConstrain,\n constrain,\n toggleActive\n };\n return self;\n}\n\nfunction ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance) {\n const scrollBounds = Limit(-contentSize + viewSize, 0);\n const snapsBounded = measureBounded();\n const scrollContainLimit = findScrollContainLimit();\n const snapsContained = measureContained();\n function usePixelTolerance(bound, snap) {\n return deltaAbs(bound, snap) <= 1;\n }\n function findScrollContainLimit() {\n const startSnap = snapsBounded[0];\n const endSnap = arrayLast(snapsBounded);\n const min = snapsBounded.lastIndexOf(startSnap);\n const max = snapsBounded.indexOf(endSnap) + 1;\n return Limit(min, max);\n }\n function measureBounded() {\n return snapsAligned.map((snapAligned, index) => {\n const {\n min,\n max\n } = scrollBounds;\n const snap = scrollBounds.constrain(snapAligned);\n const isFirst = !index;\n const isLast = arrayIsLastIndex(snapsAligned, index);\n if (isFirst) return max;\n if (isLast) return min;\n if (usePixelTolerance(min, snap)) return min;\n if (usePixelTolerance(max, snap)) return max;\n return snap;\n }).map(scrollBound => parseFloat(scrollBound.toFixed(3)));\n }\n function measureContained() {\n if (contentSize <= viewSize + pixelTolerance) return [scrollBounds.max];\n if (containScroll === 'keepSnaps') return snapsBounded;\n const {\n min,\n max\n } = scrollContainLimit;\n return snapsBounded.slice(min, max);\n }\n const self = {\n snapsContained,\n scrollContainLimit\n };\n return self;\n}\n\nfunction ScrollLimit(contentSize, scrollSnaps, loop) {\n const max = scrollSnaps[0];\n const min = loop ? max - contentSize : arrayLast(scrollSnaps);\n const limit = Limit(min, max);\n const self = {\n limit\n };\n return self;\n}\n\nfunction ScrollLooper(contentSize, limit, location, vectors) {\n const jointSafety = 0.1;\n const min = limit.min + jointSafety;\n const max = limit.max + jointSafety;\n const {\n reachedMin,\n reachedMax\n } = Limit(min, max);\n function shouldLoop(direction) {\n if (direction === 1) return reachedMax(location.get());\n if (direction === -1) return reachedMin(location.get());\n return false;\n }\n function loop(direction) {\n if (!shouldLoop(direction)) return;\n const loopDistance = contentSize * (direction * -1);\n vectors.forEach(v => v.add(loopDistance));\n }\n const self = {\n loop\n };\n return self;\n}\n\nfunction ScrollProgress(limit) {\n const {\n max,\n length\n } = limit;\n function get(n) {\n const currentLocation = n - max;\n return length ? currentLocation / -length : 0;\n }\n const self = {\n get\n };\n return self;\n}\n\nfunction ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll) {\n const {\n startEdge,\n endEdge\n } = axis;\n const {\n groupSlides\n } = slidesToScroll;\n const alignments = measureSizes().map(alignment.measure);\n const snaps = measureUnaligned();\n const snapsAligned = measureAligned();\n function measureSizes() {\n return groupSlides(slideRects).map(rects => arrayLast(rects)[endEdge] - rects[0][startEdge]).map(mathAbs);\n }\n function measureUnaligned() {\n return slideRects.map(rect => containerRect[startEdge] - rect[startEdge]).map(snap => -mathAbs(snap));\n }\n function measureAligned() {\n return groupSlides(snaps).map(g => g[0]).map((snap, index) => snap + alignments[index]);\n }\n const self = {\n snaps,\n snapsAligned\n };\n return self;\n}\n\nfunction SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes) {\n const {\n groupSlides\n } = slidesToScroll;\n const {\n min,\n max\n } = scrollContainLimit;\n const slideRegistry = createSlideRegistry();\n function createSlideRegistry() {\n const groupedSlideIndexes = groupSlides(slideIndexes);\n const doNotContain = !containSnaps || containScroll === 'keepSnaps';\n if (scrollSnaps.length === 1) return [slideIndexes];\n if (doNotContain) return groupedSlideIndexes;\n return groupedSlideIndexes.slice(min, max).map((group, index, groups) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(groups, index);\n if (isFirst) {\n const range = arrayLast(groups[0]) + 1;\n return arrayFromNumber(range);\n }\n if (isLast) {\n const range = arrayLastIndex(slideIndexes) - arrayLast(groups)[0] + 1;\n return arrayFromNumber(range, arrayLast(groups)[0]);\n }\n return group;\n });\n }\n const self = {\n slideRegistry\n };\n return self;\n}\n\nfunction ScrollTarget(loop, scrollSnaps, contentSize, limit, targetVector) {\n const {\n reachedAny,\n removeOffset,\n constrain\n } = limit;\n function minDistance(distances) {\n return distances.concat().sort((a, b) => mathAbs(a) - mathAbs(b))[0];\n }\n function findTargetSnap(target) {\n const distance = loop ? removeOffset(target) : constrain(target);\n const ascDiffsToSnaps = scrollSnaps.map((snap, index) => ({\n diff: shortcut(snap - distance, 0),\n index\n })).sort((d1, d2) => mathAbs(d1.diff) - mathAbs(d2.diff));\n const {\n index\n } = ascDiffsToSnaps[0];\n return {\n index,\n distance\n };\n }\n function shortcut(target, direction) {\n const targets = [target, target + contentSize, target - contentSize];\n if (!loop) return target;\n if (!direction) return minDistance(targets);\n const matchingTargets = targets.filter(t => mathSign(t) === direction);\n if (matchingTargets.length) return minDistance(matchingTargets);\n return arrayLast(targets) - contentSize;\n }\n function byIndex(index, direction) {\n const diffToSnap = scrollSnaps[index] - targetVector.get();\n const distance = shortcut(diffToSnap, direction);\n return {\n index,\n distance\n };\n }\n function byDistance(distance, snap) {\n const target = targetVector.get() + distance;\n const {\n index,\n distance: targetSnapDistance\n } = findTargetSnap(target);\n const reachedBound = !loop && reachedAny(target);\n if (!snap || reachedBound) return {\n index,\n distance\n };\n const diffToSnap = scrollSnaps[index] - targetSnapDistance;\n const snapDistance = distance + shortcut(diffToSnap, 0);\n return {\n index,\n distance: snapDistance\n };\n }\n const self = {\n byDistance,\n byIndex,\n shortcut\n };\n return self;\n}\n\nfunction ScrollTo(animation, indexCurrent, indexPrevious, scrollBody, scrollTarget, targetVector, eventHandler) {\n function scrollTo(target) {\n const distanceDiff = target.distance;\n const indexDiff = target.index !== indexCurrent.get();\n targetVector.add(distanceDiff);\n if (distanceDiff) {\n if (scrollBody.duration()) {\n animation.start();\n } else {\n animation.update();\n animation.render(1);\n animation.update();\n }\n }\n if (indexDiff) {\n indexPrevious.set(indexCurrent.get());\n indexCurrent.set(target.index);\n eventHandler.emit('select');\n }\n }\n function distance(n, snap) {\n const target = scrollTarget.byDistance(n, snap);\n scrollTo(target);\n }\n function index(n, direction) {\n const targetIndex = indexCurrent.clone().set(n);\n const target = scrollTarget.byIndex(targetIndex.get(), direction);\n scrollTo(target);\n }\n const self = {\n distance,\n index\n };\n return self;\n}\n\nfunction SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus) {\n const focusListenerOptions = {\n passive: true,\n capture: true\n };\n let lastTabPressTime = 0;\n function init(emblaApi) {\n if (!watchFocus) return;\n function defaultCallback(index) {\n const nowTime = new Date().getTime();\n const diffTime = nowTime - lastTabPressTime;\n if (diffTime > 10) return;\n eventHandler.emit('slideFocusStart');\n root.scrollLeft = 0;\n const group = slideRegistry.findIndex(group => group.includes(index));\n if (!isNumber(group)) return;\n scrollBody.useDuration(0);\n scrollTo.index(group, 0);\n eventHandler.emit('slideFocus');\n }\n eventStore.add(document, 'keydown', registerTabPress, false);\n slides.forEach((slide, slideIndex) => {\n eventStore.add(slide, 'focus', evt => {\n if (isBoolean(watchFocus) || watchFocus(emblaApi, evt)) {\n defaultCallback(slideIndex);\n }\n }, focusListenerOptions);\n });\n }\n function registerTabPress(event) {\n if (event.code === 'Tab') lastTabPressTime = new Date().getTime();\n }\n const self = {\n init\n };\n return self;\n}\n\nfunction Vector1D(initialValue) {\n let value = initialValue;\n function get() {\n return value;\n }\n function set(n) {\n value = normalizeInput(n);\n }\n function add(n) {\n value += normalizeInput(n);\n }\n function subtract(n) {\n value -= normalizeInput(n);\n }\n function normalizeInput(n) {\n return isNumber(n) ? n : n.get();\n }\n const self = {\n get,\n set,\n add,\n subtract\n };\n return self;\n}\n\nfunction Translate(axis, container) {\n const translate = axis.scroll === 'x' ? x : y;\n const containerStyle = container.style;\n let previousTarget = null;\n let disabled = false;\n function x(n) {\n return `translate3d(${n}px,0px,0px)`;\n }\n function y(n) {\n return `translate3d(0px,${n}px,0px)`;\n }\n function to(target) {\n if (disabled) return;\n const newTarget = roundToTwoDecimals(axis.direction(target));\n if (newTarget === previousTarget) return;\n containerStyle.transform = translate(newTarget);\n previousTarget = newTarget;\n }\n function toggleActive(active) {\n disabled = !active;\n }\n function clear() {\n if (disabled) return;\n containerStyle.transform = '';\n if (!container.getAttribute('style')) container.removeAttribute('style');\n }\n const self = {\n clear,\n to,\n toggleActive\n };\n return self;\n}\n\nfunction SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, location, slides) {\n const roundingSafety = 0.5;\n const ascItems = arrayKeys(slideSizesWithGaps);\n const descItems = arrayKeys(slideSizesWithGaps).reverse();\n const loopPoints = startPoints().concat(endPoints());\n function removeSlideSizes(indexes, from) {\n return indexes.reduce((a, i) => {\n return a - slideSizesWithGaps[i];\n }, from);\n }\n function slidesInGap(indexes, gap) {\n return indexes.reduce((a, i) => {\n const remainingGap = removeSlideSizes(a, gap);\n return remainingGap > 0 ? a.concat([i]) : a;\n }, []);\n }\n function findSlideBounds(offset) {\n return snaps.map((snap, index) => ({\n start: snap - slideSizes[index] + roundingSafety + offset,\n end: snap + viewSize - roundingSafety + offset\n }));\n }\n function findLoopPoints(indexes, offset, isEndEdge) {\n const slideBounds = findSlideBounds(offset);\n return indexes.map(index => {\n const initial = isEndEdge ? 0 : -contentSize;\n const altered = isEndEdge ? contentSize : 0;\n const boundEdge = isEndEdge ? 'end' : 'start';\n const loopPoint = slideBounds[index][boundEdge];\n return {\n index,\n loopPoint,\n slideLocation: Vector1D(-1),\n translate: Translate(axis, slides[index]),\n target: () => location.get() > loopPoint ? initial : altered\n };\n });\n }\n function startPoints() {\n const gap = scrollSnaps[0];\n const indexes = slidesInGap(descItems, gap);\n return findLoopPoints(indexes, contentSize, false);\n }\n function endPoints() {\n const gap = viewSize - scrollSnaps[0] - 1;\n const indexes = slidesInGap(ascItems, gap);\n return findLoopPoints(indexes, -contentSize, true);\n }\n function canLoop() {\n return loopPoints.every(({\n index\n }) => {\n const otherIndexes = ascItems.filter(i => i !== index);\n return removeSlideSizes(otherIndexes, viewSize) <= 0.1;\n });\n }\n function loop() {\n loopPoints.forEach(loopPoint => {\n const {\n target,\n translate,\n slideLocation\n } = loopPoint;\n const shiftLocation = target();\n if (shiftLocation === slideLocation.get()) return;\n translate.to(shiftLocation);\n slideLocation.set(shiftLocation);\n });\n }\n function clear() {\n loopPoints.forEach(loopPoint => loopPoint.translate.clear());\n }\n const self = {\n canLoop,\n clear,\n loop,\n loopPoints\n };\n return self;\n}\n\nfunction SlidesHandler(container, eventHandler, watchSlides) {\n let mutationObserver;\n let destroyed = false;\n function init(emblaApi) {\n if (!watchSlides) return;\n function defaultCallback(mutations) {\n for (const mutation of mutations) {\n if (mutation.type === 'childList') {\n emblaApi.reInit();\n eventHandler.emit('slidesChanged');\n break;\n }\n }\n }\n mutationObserver = new MutationObserver(mutations => {\n if (destroyed) return;\n if (isBoolean(watchSlides) || watchSlides(emblaApi, mutations)) {\n defaultCallback(mutations);\n }\n });\n mutationObserver.observe(container, {\n childList: true\n });\n }\n function destroy() {\n if (mutationObserver) mutationObserver.disconnect();\n destroyed = true;\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction SlidesInView(container, slides, eventHandler, threshold) {\n const intersectionEntryMap = {};\n let inViewCache = null;\n let notInViewCache = null;\n let intersectionObserver;\n let destroyed = false;\n function init() {\n intersectionObserver = new IntersectionObserver(entries => {\n if (destroyed) return;\n entries.forEach(entry => {\n const index = slides.indexOf(entry.target);\n intersectionEntryMap[index] = entry;\n });\n inViewCache = null;\n notInViewCache = null;\n eventHandler.emit('slidesInView');\n }, {\n root: container.parentElement,\n threshold\n });\n slides.forEach(slide => intersectionObserver.observe(slide));\n }\n function destroy() {\n if (intersectionObserver) intersectionObserver.disconnect();\n destroyed = true;\n }\n function createInViewList(inView) {\n return objectKeys(intersectionEntryMap).reduce((list, slideIndex) => {\n const index = parseInt(slideIndex);\n const {\n isIntersecting\n } = intersectionEntryMap[index];\n const inViewMatch = inView && isIntersecting;\n const notInViewMatch = !inView && !isIntersecting;\n if (inViewMatch || notInViewMatch) list.push(index);\n return list;\n }, []);\n }\n function get(inView = true) {\n if (inView && inViewCache) return inViewCache;\n if (!inView && notInViewCache) return notInViewCache;\n const slideIndexes = createInViewList(inView);\n if (inView) inViewCache = slideIndexes;\n if (!inView) notInViewCache = slideIndexes;\n return slideIndexes;\n }\n const self = {\n init,\n destroy,\n get\n };\n return self;\n}\n\nfunction SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow) {\n const {\n measureSize,\n startEdge,\n endEdge\n } = axis;\n const withEdgeGap = slideRects[0] && readEdgeGap;\n const startGap = measureStartGap();\n const endGap = measureEndGap();\n const slideSizes = slideRects.map(measureSize);\n const slideSizesWithGaps = measureWithGaps();\n function measureStartGap() {\n if (!withEdgeGap) return 0;\n const slideRect = slideRects[0];\n return mathAbs(containerRect[startEdge] - slideRect[startEdge]);\n }\n function measureEndGap() {\n if (!withEdgeGap) return 0;\n const style = ownerWindow.getComputedStyle(arrayLast(slides));\n return parseFloat(style.getPropertyValue(`margin-${endEdge}`));\n }\n function measureWithGaps() {\n return slideRects.map((rect, index, rects) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(rects, index);\n if (isFirst) return slideSizes[index] + startGap;\n if (isLast) return slideSizes[index] + endGap;\n return rects[index + 1][startEdge] - rect[startEdge];\n }).map(mathAbs);\n }\n const self = {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n };\n return self;\n}\n\nfunction SlidesToScroll(axis, viewSize, slidesToScroll, loop, containerRect, slideRects, startGap, endGap, pixelTolerance) {\n const {\n startEdge,\n endEdge,\n direction\n } = axis;\n const groupByNumber = isNumber(slidesToScroll);\n function byNumber(array, groupSize) {\n return arrayKeys(array).filter(i => i % groupSize === 0).map(i => array.slice(i, i + groupSize));\n }\n function bySize(array) {\n if (!array.length) return [];\n return arrayKeys(array).reduce((groups, rectB, index) => {\n const rectA = arrayLast(groups) || 0;\n const isFirst = rectA === 0;\n const isLast = rectB === arrayLastIndex(array);\n const edgeA = containerRect[startEdge] - slideRects[rectA][startEdge];\n const edgeB = containerRect[startEdge] - slideRects[rectB][endEdge];\n const gapA = !loop && isFirst ? direction(startGap) : 0;\n const gapB = !loop && isLast ? direction(endGap) : 0;\n const chunkSize = mathAbs(edgeB - gapB - (edgeA + gapA));\n if (index && chunkSize > viewSize + pixelTolerance) groups.push(rectB);\n if (isLast) groups.push(array.length);\n return groups;\n }, []).map((currentSize, index, groups) => {\n const previousSize = Math.max(groups[index - 1] || 0);\n return array.slice(previousSize, currentSize);\n });\n }\n function groupSlides(array) {\n return groupByNumber ? byNumber(array, slidesToScroll) : bySize(array);\n }\n const self = {\n groupSlides\n };\n return self;\n}\n\nfunction Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler) {\n // Options\n const {\n align,\n axis: scrollAxis,\n direction,\n startIndex,\n loop,\n duration,\n dragFree,\n dragThreshold,\n inViewThreshold,\n slidesToScroll: groupSlides,\n skipSnaps,\n containScroll,\n watchResize,\n watchSlides,\n watchDrag,\n watchFocus\n } = options;\n // Measurements\n const pixelTolerance = 2;\n const nodeRects = NodeRects();\n const containerRect = nodeRects.measure(container);\n const slideRects = slides.map(nodeRects.measure);\n const axis = Axis(scrollAxis, direction);\n const viewSize = axis.measureSize(containerRect);\n const percentOfView = PercentOfView(viewSize);\n const alignment = Alignment(align, viewSize);\n const containSnaps = !loop && !!containScroll;\n const readEdgeGap = loop || !!containScroll;\n const {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n } = SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow);\n const slidesToScroll = SlidesToScroll(axis, viewSize, groupSlides, loop, containerRect, slideRects, startGap, endGap, pixelTolerance);\n const {\n snaps,\n snapsAligned\n } = ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll);\n const contentSize = -arrayLast(snaps) + arrayLast(slideSizesWithGaps);\n const {\n snapsContained,\n scrollContainLimit\n } = ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance);\n const scrollSnaps = containSnaps ? snapsContained : snapsAligned;\n const {\n limit\n } = ScrollLimit(contentSize, scrollSnaps, loop);\n // Indexes\n const index = Counter(arrayLastIndex(scrollSnaps), startIndex, loop);\n const indexPrevious = index.clone();\n const slideIndexes = arrayKeys(slides);\n // Animation\n const update = ({\n dragHandler,\n scrollBody,\n scrollBounds,\n options: {\n loop\n }\n }) => {\n if (!loop) scrollBounds.constrain(dragHandler.pointerDown());\n scrollBody.seek();\n };\n const render = ({\n scrollBody,\n translate,\n location,\n offsetLocation,\n previousLocation,\n scrollLooper,\n slideLooper,\n dragHandler,\n animation,\n eventHandler,\n scrollBounds,\n options: {\n loop\n }\n }, alpha) => {\n const shouldSettle = scrollBody.settled();\n const withinBounds = !scrollBounds.shouldConstrain();\n const hasSettled = loop ? shouldSettle : shouldSettle && withinBounds;\n const hasSettledAndIdle = hasSettled && !dragHandler.pointerDown();\n if (hasSettledAndIdle) animation.stop();\n const interpolatedLocation = location.get() * alpha + previousLocation.get() * (1 - alpha);\n offsetLocation.set(interpolatedLocation);\n if (loop) {\n scrollLooper.loop(scrollBody.direction());\n slideLooper.loop();\n }\n translate.to(offsetLocation.get());\n if (hasSettledAndIdle) eventHandler.emit('settle');\n if (!hasSettled) eventHandler.emit('scroll');\n };\n const animation = Animations(ownerDocument, ownerWindow, () => update(engine), alpha => render(engine, alpha));\n // Shared\n const friction = 0.68;\n const startLocation = scrollSnaps[index.get()];\n const location = Vector1D(startLocation);\n const previousLocation = Vector1D(startLocation);\n const offsetLocation = Vector1D(startLocation);\n const target = Vector1D(startLocation);\n const scrollBody = ScrollBody(location, offsetLocation, previousLocation, target, duration, friction);\n const scrollTarget = ScrollTarget(loop, scrollSnaps, contentSize, limit, target);\n const scrollTo = ScrollTo(animation, index, indexPrevious, scrollBody, scrollTarget, target, eventHandler);\n const scrollProgress = ScrollProgress(limit);\n const eventStore = EventStore();\n const slidesInView = SlidesInView(container, slides, eventHandler, inViewThreshold);\n const {\n slideRegistry\n } = SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes);\n const slideFocus = SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus);\n // Engine\n const engine = {\n ownerDocument,\n ownerWindow,\n eventHandler,\n containerRect,\n slideRects,\n animation,\n axis,\n dragHandler: DragHandler(axis, root, ownerDocument, ownerWindow, target, DragTracker(axis, ownerWindow), location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, friction, watchDrag),\n eventStore,\n percentOfView,\n index,\n indexPrevious,\n limit,\n location,\n offsetLocation,\n previousLocation,\n options,\n resizeHandler: ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects),\n scrollBody,\n scrollBounds: ScrollBounds(limit, offsetLocation, target, scrollBody, percentOfView),\n scrollLooper: ScrollLooper(contentSize, limit, offsetLocation, [location, offsetLocation, previousLocation, target]),\n scrollProgress,\n scrollSnapList: scrollSnaps.map(scrollProgress.get),\n scrollSnaps,\n scrollTarget,\n scrollTo,\n slideLooper: SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, offsetLocation, slides),\n slideFocus,\n slidesHandler: SlidesHandler(container, eventHandler, watchSlides),\n slidesInView,\n slideIndexes,\n slideRegistry,\n slidesToScroll,\n target,\n translate: Translate(axis, container)\n };\n return engine;\n}\n\nfunction EventHandler() {\n let listeners = {};\n let api;\n function init(emblaApi) {\n api = emblaApi;\n }\n function getListeners(evt) {\n return listeners[evt] || [];\n }\n function emit(evt) {\n getListeners(evt).forEach(e => e(api, evt));\n return self;\n }\n function on(evt, cb) {\n listeners[evt] = getListeners(evt).concat([cb]);\n return self;\n }\n function off(evt, cb) {\n listeners[evt] = getListeners(evt).filter(e => e !== cb);\n return self;\n }\n function clear() {\n listeners = {};\n }\n const self = {\n init,\n emit,\n off,\n on,\n clear\n };\n return self;\n}\n\nconst defaultOptions = {\n align: 'center',\n axis: 'x',\n container: null,\n slides: null,\n containScroll: 'trimSnaps',\n direction: 'ltr',\n slidesToScroll: 1,\n inViewThreshold: 0,\n breakpoints: {},\n dragFree: false,\n dragThreshold: 10,\n loop: false,\n skipSnaps: false,\n duration: 25,\n startIndex: 0,\n active: true,\n watchDrag: true,\n watchResize: true,\n watchSlides: true,\n watchFocus: true\n};\n\nfunction OptionsHandler(ownerWindow) {\n function mergeOptions(optionsA, optionsB) {\n return objectsMergeDeep(optionsA, optionsB || {});\n }\n function optionsAtMedia(options) {\n const optionsAtMedia = options.breakpoints || {};\n const matchedMediaOptions = objectKeys(optionsAtMedia).filter(media => ownerWindow.matchMedia(media).matches).map(media => optionsAtMedia[media]).reduce((a, mediaOption) => mergeOptions(a, mediaOption), {});\n return mergeOptions(options, matchedMediaOptions);\n }\n function optionsMediaQueries(optionsList) {\n return optionsList.map(options => objectKeys(options.breakpoints || {})).reduce((acc, mediaQueries) => acc.concat(mediaQueries), []).map(ownerWindow.matchMedia);\n }\n const self = {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n };\n return self;\n}\n\nfunction PluginsHandler(optionsHandler) {\n let activePlugins = [];\n function init(emblaApi, plugins) {\n activePlugins = plugins.filter(({\n options\n }) => optionsHandler.optionsAtMedia(options).active !== false);\n activePlugins.forEach(plugin => plugin.init(emblaApi, optionsHandler));\n return plugins.reduce((map, plugin) => Object.assign(map, {\n [plugin.name]: plugin\n }), {});\n }\n function destroy() {\n activePlugins = activePlugins.filter(plugin => plugin.destroy());\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction EmblaCarousel(root, userOptions, userPlugins) {\n const ownerDocument = root.ownerDocument;\n const ownerWindow = ownerDocument.defaultView;\n const optionsHandler = OptionsHandler(ownerWindow);\n const pluginsHandler = PluginsHandler(optionsHandler);\n const mediaHandlers = EventStore();\n const eventHandler = EventHandler();\n const {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n } = optionsHandler;\n const {\n on,\n off,\n emit\n } = eventHandler;\n const reInit = reActivate;\n let destroyed = false;\n let engine;\n let optionsBase = mergeOptions(defaultOptions, EmblaCarousel.globalOptions);\n let options = mergeOptions(optionsBase);\n let pluginList = [];\n let pluginApis;\n let container;\n let slides;\n function storeElements() {\n const {\n container: userContainer,\n slides: userSlides\n } = options;\n const customContainer = isString(userContainer) ? root.querySelector(userContainer) : userContainer;\n container = customContainer || root.children[0];\n const customSlides = isString(userSlides) ? container.querySelectorAll(userSlides) : userSlides;\n slides = [].slice.call(customSlides || container.children);\n }\n function createEngine(options) {\n const engine = Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler);\n if (options.loop && !engine.slideLooper.canLoop()) {\n const optionsWithoutLoop = Object.assign({}, options, {\n loop: false\n });\n return createEngine(optionsWithoutLoop);\n }\n return engine;\n }\n function activate(withOptions, withPlugins) {\n if (destroyed) return;\n optionsBase = mergeOptions(optionsBase, withOptions);\n options = optionsAtMedia(optionsBase);\n pluginList = withPlugins || pluginList;\n storeElements();\n engine = createEngine(options);\n optionsMediaQueries([optionsBase, ...pluginList.map(({\n options\n }) => options)]).forEach(query => mediaHandlers.add(query, 'change', reActivate));\n if (!options.active) return;\n engine.translate.to(engine.location.get());\n engine.animation.init();\n engine.slidesInView.init();\n engine.slideFocus.init(self);\n engine.eventHandler.init(self);\n engine.resizeHandler.init(self);\n engine.slidesHandler.init(self);\n if (engine.options.loop) engine.slideLooper.loop();\n if (container.offsetParent && slides.length) engine.dragHandler.init(self);\n pluginApis = pluginsHandler.init(self, pluginList);\n }\n function reActivate(withOptions, withPlugins) {\n const startIndex = selectedScrollSnap();\n deActivate();\n activate(mergeOptions({\n startIndex\n }, withOptions), withPlugins);\n eventHandler.emit('reInit');\n }\n function deActivate() {\n engine.dragHandler.destroy();\n engine.eventStore.clear();\n engine.translate.clear();\n engine.slideLooper.clear();\n engine.resizeHandler.destroy();\n engine.slidesHandler.destroy();\n engine.slidesInView.destroy();\n engine.animation.destroy();\n pluginsHandler.destroy();\n mediaHandlers.clear();\n }\n function destroy() {\n if (destroyed) return;\n destroyed = true;\n mediaHandlers.clear();\n deActivate();\n eventHandler.emit('destroy');\n eventHandler.clear();\n }\n function scrollTo(index, jump, direction) {\n if (!options.active || destroyed) return;\n engine.scrollBody.useBaseFriction().useDuration(jump === true ? 0 : options.duration);\n engine.scrollTo.index(index, direction || 0);\n }\n function scrollNext(jump) {\n const next = engine.index.add(1).get();\n scrollTo(next, jump, -1);\n }\n function scrollPrev(jump) {\n const prev = engine.index.add(-1).get();\n scrollTo(prev, jump, 1);\n }\n function canScrollNext() {\n const next = engine.index.add(1).get();\n return next !== selectedScrollSnap();\n }\n function canScrollPrev() {\n const prev = engine.index.add(-1).get();\n return prev !== selectedScrollSnap();\n }\n function scrollSnapList() {\n return engine.scrollSnapList;\n }\n function scrollProgress() {\n return engine.scrollProgress.get(engine.offsetLocation.get());\n }\n function selectedScrollSnap() {\n return engine.index.get();\n }\n function previousScrollSnap() {\n return engine.indexPrevious.get();\n }\n function slidesInView() {\n return engine.slidesInView.get();\n }\n function slidesNotInView() {\n return engine.slidesInView.get(false);\n }\n function plugins() {\n return pluginApis;\n }\n function internalEngine() {\n return engine;\n }\n function rootNode() {\n return root;\n }\n function containerNode() {\n return container;\n }\n function slideNodes() {\n return slides;\n }\n const self = {\n canScrollNext,\n canScrollPrev,\n containerNode,\n internalEngine,\n destroy,\n off,\n on,\n emit,\n plugins,\n previousScrollSnap,\n reInit,\n rootNode,\n scrollNext,\n scrollPrev,\n scrollProgress,\n scrollSnapList,\n scrollTo,\n selectedScrollSnap,\n slideNodes,\n slidesInView,\n slidesNotInView\n };\n activate(userOptions, userPlugins);\n setTimeout(() => eventHandler.emit('init'), 0);\n return self;\n}\nEmblaCarousel.globalOptions = undefined;\n\nexport { EmblaCarousel as default };\n//# sourceMappingURL=embla-carousel.esm.js.map\n","import EmblaCarousel, { EmblaCarouselType } from \"embla-carousel\";\n\n/**\n * Framework-agnostic Embla controller shared by the React carousel and the AEM\n * clientlib runtime. Keep behaviour here so Storybook and server-rendered HTL\n * use exactly the same navigation and selected-state logic.\n */\nexport interface LsgCarouselControllerElements {\n prevBtn?: HTMLElement | null;\n nextBtn?: HTMLElement | null;\n paginationBtns?: Iterable<HTMLElement> | null;\n}\n\nexport type LsgCarouselDirection = \"ltr\" | \"rtl\";\n\nexport interface LsgCarouselControllerOptions {\n loop?: boolean;\n /**\n * Embla content direction. Media-left variants use RTL so the active media is\n * anchored on the right edge of the viewport and the adjacent slide peeks in\n * from the left, matching the mirrored Figma compositions.\n *\n * Embla requires the viewport/track CSS direction to match this value. The\n * React component sets `dir` on the viewport and the AEM boot path mirrors it.\n */\n direction?: LsgCarouselDirection;\n}\n\nexport class LsgCarouselController {\n private embla: EmblaCarouselType | null = null;\n private readonly els: LsgCarouselControllerElements;\n private readonly paginationBtns: HTMLElement[];\n private readonly paginationHandlers: Array<() => void>;\n\n constructor(\n viewport: HTMLElement,\n elements: LsgCarouselControllerElements = {},\n options: LsgCarouselControllerOptions = {},\n ) {\n this.els = elements;\n this.paginationBtns = elements.paginationBtns\n ? Array.from(elements.paginationBtns)\n : [];\n\n this.embla = EmblaCarousel(viewport, {\n align: \"start\",\n // Every authored media item owns a pagination dot. `trimSnaps` can remove\n // the final snap when two-up/peek layouts do not have enough overflow,\n // leaving the last authored item only partially reachable. Keep all snaps\n // so dot/item indexes stay 1:1 for 2, 3, 4, ... media items.\n containScroll: false,\n direction: options.direction ?? \"ltr\",\n loop: options.loop ?? true,\n skipSnaps: false,\n slidesToScroll: 1,\n });\n\n this.paginationHandlers = this.paginationBtns.map((_, index) => () => {\n this.embla?.scrollTo(index);\n });\n\n this.els.prevBtn?.addEventListener(\"click\", this.scrollPrev);\n this.els.nextBtn?.addEventListener(\"click\", this.scrollNext);\n this.paginationBtns.forEach((button, index) => {\n button.addEventListener(\"click\", this.paginationHandlers[index]);\n });\n\n this.embla.on(\"select\", this.syncSelectedState);\n this.embla.on(\"reInit\", this.syncSelectedState);\n this.syncSelectedState();\n }\n\n /**\n * Embla automatically falls back to non-looping mode when there is not enough\n * slide content to create a safe loop (most noticeable with two-up layouts and\n * only 2–3 authored items). Keep the arrow contract cyclic in that fallback:\n * when there is no native previous snap, jump to the final authored snap.\n */\n readonly scrollPrev = (): void => {\n if (!this.embla) return;\n\n if (this.embla.canScrollPrev()) {\n this.embla.scrollPrev();\n return;\n }\n\n const lastSnap = this.embla.scrollSnapList().length - 1;\n if (lastSnap >= 0) this.embla.scrollTo(lastSnap);\n };\n\n /** See `scrollPrev` for why the explicit wrap fallback is required. */\n readonly scrollNext = (): void => {\n if (!this.embla) return;\n\n if (this.embla.canScrollNext()) {\n this.embla.scrollNext();\n return;\n }\n\n if (this.embla.scrollSnapList().length > 0) this.embla.scrollTo(0);\n };\n\n private readonly syncSelectedState = (): void => {\n const selected = this.embla?.selectedScrollSnap() ?? 0;\n this.paginationBtns.forEach((button, index) => {\n const active = index === selected;\n button.classList.toggle(\"lsg-carousel__dot--active\", active);\n button.setAttribute(\"aria-current\", active ? \"true\" : \"false\");\n });\n };\n\n get emblaApi(): EmblaCarouselType | null {\n return this.embla;\n }\n\n destroy(): void {\n this.els.prevBtn?.removeEventListener(\"click\", this.scrollPrev);\n this.els.nextBtn?.removeEventListener(\"click\", this.scrollNext);\n this.paginationBtns.forEach((button, index) => {\n button.removeEventListener(\"click\", this.paginationHandlers[index]);\n });\n if (this.embla) {\n this.embla.off(\"select\", this.syncSelectedState);\n this.embla.off(\"reInit\", this.syncSelectedState);\n this.embla.destroy();\n this.embla = null;\n }\n }\n}\n","import React, { useEffect, useRef } from \"react\";\nimport { LsgButton } from \"../LsgButton\";\nimport type { LsgButtonVariant } from \"../LsgButton\";\nimport { LsgImage } from \"../LsgImage\";\nimport { LsgVideo } from \"../LsgVideo\";\nimport { LsgCarouselController } from \"./LsgCarouselController\";\nimport type { LsgCarouselDirection } from \"./LsgCarouselController\";\nimport \"./LsgCarousel.scss\";\n\nexport type LsgCarouselLayout = \"media-right\" | \"media-left\" | \"full-width\";\nexport type LsgCarouselHeadingTag = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\nexport type LsgCarouselMediaType = \"image\" | \"video\";\n\nexport interface LsgCarouselItem {\n /** Stable author/item identifier where available. */\n id?: string;\n type?: LsgCarouselMediaType;\n imageUrl?: string;\n imageAlt?: string;\n videoUrl?: string;\n videoPoster?: string;\n videoControls?: boolean;\n videoAutoPlay?: boolean;\n videoMuted?: boolean;\n videoLoop?: boolean;\n /** Optional per-media label used by layouts/themes that show a badge. */\n label?: string;\n}\n\nexport interface LsgCarouselCta {\n label: string;\n href?: string;\n external?: boolean;\n variant?: LsgButtonVariant;\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;\n}\n\nexport interface LsgCarouselProps {\n /** Mandatory carousel title. */\n heading: string;\n preTitle?: string;\n body?: string;\n cta?: LsgCarouselCta;\n items: LsgCarouselItem[];\n /** Desktop content/media position from the Figma variants. */\n layout?: LsgCarouselLayout;\n headingTag?: LsgCarouselHeadingTag;\n ariaLabel?: string;\n className?: string;\n}\n\nconst mediaTypeFor = (item: LsgCarouselItem): LsgCarouselMediaType =>\n item.type ?? (item.videoUrl ? \"video\" : \"image\");\n\nconst directionForLayout = (layout: LsgCarouselLayout): LsgCarouselDirection =>\n layout === \"media-left\" ? \"rtl\" : \"ltr\";\n\nexport const LsgCarousel: React.FC<LsgCarouselProps> = ({\n heading,\n preTitle,\n body,\n cta,\n items = [],\n layout = \"media-right\",\n headingTag = \"h2\",\n ariaLabel = \"Media carousel\",\n className = \"\",\n}) => {\n const rootRef = useRef<HTMLElement>(null);\n const viewportRef = useRef<HTMLDivElement>(null);\n const prevBtnRef = useRef<HTMLButtonElement>(null);\n const nextBtnRef = useRef<HTMLButtonElement>(null);\n const dotsRef = useRef<HTMLDivElement>(null);\n const controllerRef = useRef<LsgCarouselController | null>(null);\n const HeadingTag = headingTag;\n const isCarousel = items.length > 1;\n const carouselDirection = directionForLayout(layout);\n\n useEffect(() => {\n if (!viewportRef.current || !isCarousel) return;\n\n controllerRef.current = new LsgCarouselController(\n viewportRef.current,\n {\n prevBtn: prevBtnRef.current,\n nextBtn: nextBtnRef.current,\n paginationBtns:\n dotsRef.current?.querySelectorAll<HTMLElement>(\"[data-lsg-carousel-dot]\") ?? [],\n },\n { loop: true, direction: carouselDirection },\n );\n\n return () => {\n controllerRef.current?.destroy();\n controllerRef.current = null;\n };\n }, [carouselDirection, isCarousel, items.length]);\n\n const rootClasses = [\n \"lsg-carousel\",\n `lsg-carousel--${layout}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <section\n ref={rootRef}\n className={rootClasses}\n data-lsg-is=\"carousel\"\n data-lsg-carousel-layout={layout}\n data-lsg-carousel-direction={carouselDirection}\n data-lsg-carousel-count={items.length}\n aria-label={ariaLabel}\n >\n <div className=\"lsg-carousel__shell\">\n <div className=\"lsg-carousel__content\">\n {preTitle && (\n <div className=\"lsg-carousel__pre-title\">\n <span className=\"lsg-carousel__pre-title-marker\" aria-hidden=\"true\" />\n <span>{preTitle}</span>\n </div>\n )}\n\n <HeadingTag className=\"lsg-carousel__heading\">{heading}</HeadingTag>\n\n {body && <p className=\"lsg-carousel__body\">{body}</p>}\n\n {cta && (\n <div className=\"lsg-carousel__actions\">\n <LsgButton\n className=\"lsg-carousel__cta\"\n href={cta.href}\n external={cta.external}\n variant={cta.variant ?? \"primary\"}\n onClick={cta.onClick}\n >\n {cta.label}\n </LsgButton>\n </div>\n )}\n </div>\n\n <div className=\"lsg-carousel__media-column\">\n <div className=\"lsg-carousel__viewport\" ref={viewportRef} dir={carouselDirection}>\n <div className=\"lsg-carousel__track\" role=\"list\">\n {items.map((item, index) => {\n const type = mediaTypeFor(item);\n const key = item.id ?? `${type}-${item.imageUrl ?? item.videoUrl ?? index}-${index}`;\n\n return (\n <article\n key={key}\n className=\"lsg-carousel__slide\"\n role=\"listitem\"\n aria-label={`Slide ${index + 1} of ${items.length}`}\n data-lsg-carousel-item\n >\n <div className=\"lsg-carousel__media\">\n {type === \"video\" && item.videoUrl ? (\n <LsgVideo\n videoUrl={item.videoUrl}\n imageUrl={item.videoPoster}\n imageAlt={item.imageAlt}\n controls={item.videoControls ?? true}\n autoplay={item.videoAutoPlay ?? false}\n muted={item.videoMuted ?? true}\n loop={item.videoLoop ?? false}\n displayMode=\"content\"\n showTags={false}\n className=\"lsg-carousel__video-component\"\n />\n ) : item.imageUrl ? (\n <LsgImage\n imageUrl={item.imageUrl}\n imageAlt={item.imageAlt}\n className=\"lsg-carousel__image-component\"\n />\n ) : (\n <div className=\"lsg-carousel__media-placeholder\" aria-hidden=\"true\" />\n )}\n\n {item.label && (\n <span className=\"lsg-carousel__media-label\">{item.label}</span>\n )}\n </div>\n </article>\n );\n })}\n </div>\n </div>\n\n {isCarousel && (\n <div className=\"lsg-carousel__navigation\" aria-label=\"Carousel navigation\">\n <button\n ref={prevBtnRef}\n className=\"lsg-carousel__arrow lsg-carousel__arrow--prev\"\n type=\"button\"\n aria-label=\"Previous slide\"\n data-lsg-carousel-prev\n >\n <span className=\"lsg-carousel__arrow-icon\" aria-hidden=\"true\" />\n </button>\n\n <div className=\"lsg-carousel__pagination\" ref={dotsRef}>\n {items.map((item, index) => (\n <button\n key={item.id ?? `dot-${index}`}\n className={`lsg-carousel__dot${index === 0 ? \" lsg-carousel__dot--active\" : \"\"}`}\n type=\"button\"\n aria-label={`Go to slide ${index + 1}`}\n aria-current={index === 0 ? \"true\" : \"false\"}\n data-lsg-carousel-dot\n />\n ))}\n </div>\n\n <button\n ref={nextBtnRef}\n className=\"lsg-carousel__arrow lsg-carousel__arrow--next\"\n type=\"button\"\n aria-label=\"Next slide\"\n data-lsg-carousel-next\n >\n <span className=\"lsg-carousel__arrow-icon\" aria-hidden=\"true\" />\n </button>\n </div>\n )}\n </div>\n </div>\n </section>\n );\n};\n","import React from \"react\";\nimport \"./LsgCard.scss\";\n\nexport type LsgCardVariant = \"withImage\" | \"onlyText\" | \"withIcon\";\nexport type LsgCardColumns = 2 | 3 | 4 | 5;\n\nexport interface LsgCardCta {\n label: string;\n href: string;\n external?: boolean;\n}\n\nexport interface LsgCardProps {\n title: string;\n preTitle?: string;\n subtitle?: string;\n description?: string;\n imageUrl?: string;\n imageAlt?: string;\n iconUrl?: string;\n iconAlt?: string;\n /** Makes the complete card interactive when provided. */\n href?: string;\n cta?: LsgCardCta;\n variant?: LsgCardVariant;\n className?: string;\n}\n\nfunction cardVariantClass(variant: LsgCardVariant): string {\n switch (variant) {\n case \"onlyText\":\n return \"lsg-card--only-text\";\n case \"withIcon\":\n return \"lsg-card--with-icon\";\n case \"withImage\":\n default:\n return \"lsg-card--with-image\";\n }\n}\n\nexport const LsgCard: React.FC<LsgCardProps> = ({\n title,\n preTitle,\n subtitle,\n description,\n imageUrl,\n imageAlt = \"\",\n iconUrl,\n iconAlt = \"\",\n href,\n cta,\n variant = \"withImage\",\n className,\n}) => {\n const resolvedIconUrl = iconUrl ?? imageUrl;\n const actionLabel = cta?.label ?? \"Read more\";\n const cardClassName = [\"lsg-card\", cardVariantClass(variant), className]\n .filter(Boolean)\n .join(\" \");\n\n const content = (\n <>\n {variant === \"withImage\" && imageUrl && (\n <div className=\"lsg-card__media\">\n <img src={imageUrl} alt={imageAlt} loading=\"lazy\" />\n </div>\n )}\n <div className=\"lsg-card__content\">\n {variant === \"withIcon\" && resolvedIconUrl && (\n <div className=\"lsg-card__icon\" aria-hidden={iconAlt ? undefined : true}>\n <img src={resolvedIconUrl} alt={iconAlt} loading=\"lazy\" />\n </div>\n )}\n <div className=\"lsg-card__top\">\n {preTitle && (\n <span className=\"lsg-card__pre-title\">\n <span className=\"lsg-card__pre-title-dot\" aria-hidden=\"true\" />\n <span className=\"lsg-card__pre-title-text\">{preTitle}</span>\n <span className=\"lsg-card__pre-title-arrow\" aria-hidden=\"true\">→</span>\n </span>\n )}\n <h3 className=\"lsg-card__title\">{title}</h3>\n {subtitle && <h4 className=\"lsg-card__subtitle\">{subtitle}</h4>}\n </div>\n <div className=\"lsg-card__bottom\">\n {description && <p className=\"lsg-card__description\">{description}</p>}\n {(href || cta) && (\n href ? (\n <span className=\"lsg-card__cta\" aria-hidden=\"true\">\n <span className=\"lsg-card__cta-label\">{actionLabel}</span>\n <span className=\"lsg-card__cta-arrow\" aria-hidden=\"true\">→</span>\n </span>\n ) : (\n <a\n className=\"lsg-card__cta\"\n href={cta?.href}\n target={cta?.external ? \"_blank\" : undefined}\n rel={cta?.external ? \"noreferrer noopener\" : undefined}\n >\n <span className=\"lsg-card__cta-label\">{actionLabel}</span>\n <span className=\"lsg-card__cta-arrow\" aria-hidden=\"true\">→</span>\n </a>\n )\n )}\n </div>\n </div>\n </>\n );\n\n return (\n <article className={cardClassName} data-lsg-card-variant={variant}>\n {href ? (\n <a href={href} className=\"lsg-card__link\" aria-label={title}>\n {content}\n </a>\n ) : (\n <div className=\"lsg-card__link\">{content}</div>\n )}\n </article>\n );\n};\n\nexport interface LsgCardsProps {\n cards: LsgCardProps[];\n columns?: LsgCardColumns;\n className?: string;\n}\n\n/** Renders the AEM/Storybook compatible responsive card grid. */\nexport const LsgCards: React.FC<LsgCardsProps> = ({\n cards,\n columns = 3,\n className,\n}) => {\n const listClassName = [\n \"lsg-cards\",\n `lsg-cards--cols-${columns}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <ul className={listClassName} data-columns={columns}>\n {cards.map((card, index) => (\n <li className=\"lsg-cards__item\" key={card.href ?? card.cta?.href ?? `${card.title}-${index}`}>\n <LsgCard {...card} />\n </li>\n ))}\n </ul>\n );\n};\n","export type LsgIconName =\n | \"bars\"\n | \"chevronLeft\"\n | \"chevronRight\"\n | \"close\"\n | \"globe\"\n | \"home\"\n | \"search\";\n\nexport const LSG_ICON_PATHS: Record<LsgIconName, string> = {\n bars:\n \"M96 160C96 142.3 110.3 128 128 128L512 128C529.7 128 544 142.3 544 160C544 177.7 529.7 192 512 192L128 192C110.3 192 96 177.7 96 160zM96 320C96 302.3 110.3 288 128 288L512 288C529.7 288 544 302.3 544 320C544 337.7 529.7 352 512 352L128 352C110.3 352 96 337.7 96 320zM544 480C544 497.7 529.7 512 512 512L128 512C110.3 512 96 497.7 96 480C96 462.3 110.3 448 128 448L512 448C529.7 448 544 462.3 544 480z\",\n chevronLeft:\n \"M169.4 297.4C156.9 309.9 156.9 330.2 169.4 342.7L361.4 534.7C373.9 547.2 394.2 547.2 406.7 534.7C419.2 522.2 419.2 501.9 406.7 489.4L237.3 320L406.6 150.6C419.1 138.1 419.1 117.8 406.6 105.3C394.1 92.8 373.8 92.8 361.3 105.3L169.3 297.3z\",\n chevronRight:\n \"M471.1 297.4C483.6 309.9 483.6 330.2 471.1 342.7L279.1 534.7C266.6 547.2 246.3 547.2 233.8 534.7C221.3 522.2 221.3 501.9 233.8 489.4L403.2 320L233.9 150.6C221.4 138.1 221.4 117.8 233.9 105.3C246.4 92.8 266.7 92.8 279.2 105.3L471.2 297.3z\",\n close:\n \"M504.6 148.5C515.9 134.9 514.1 114.7 500.5 103.4C486.9 92.1 466.7 93.9 455.4 107.5L320 270L184.6 107.5C173.3 93.9 153.1 92.1 139.5 103.4C125.9 114.7 124.1 134.9 135.4 148.5L278.3 320L135.4 491.5C124.1 505.1 125.9 525.3 139.5 536.6C153.1 547.9 173.3 546.1 184.6 532.5L320 370L455.4 532.5C466.7 546.1 486.9 547.9 500.5 536.6C514.1 525.3 515.9 505.1 504.6 491.5L361.7 320L504.6 148.5z\",\n globe:\n \"M367.2 477C345.7 520.7 325.8 528 320 528C314.2 528 294.3 520.7 272.8 477C255.8 442.5 243.6 395.4 240.7 344L399.3 344C396.3 395.5 384.1 442.6 367.2 477zM399.3 296L240.7 296C243.7 244.5 255.9 197.4 272.8 163C294.3 119.3 314.2 112 320 112C325.8 112 345.7 119.3 367.2 163C384.2 197.5 396.4 244.6 399.3 296zM447.4 344L526.6 344C518 418.6 469.9 481.3 403.8 510.4C427.8 467.6 444.1 408 447.4 344zM526.6 296L447.4 296C444.1 232 427.8 172.4 403.8 129.6C469.9 158.8 518 221.4 526.6 296zM192.6 296L113.4 296C122 221.4 170.1 158.7 236.2 129.6C212.2 172.4 195.9 232 192.6 296zM113.4 344L192.6 344C195.9 408 212.2 467.6 236.2 510.4C170.1 481.2 122 418.6 113.4 344zM320 576C461.4 576 576 461.4 576 320C576 178.6 461.4 64 320 64C178.6 64 64 178.6 64 320C64 461.4 178.6 576 320 576z\",\n home: \"M96 320L320 128L544 320H480V528H352V384H288V528H160V320H96z\",\n search:\n \"M480 272C480 317.9 465.1 360.3 440 394.7L566.6 521.4C579.1 533.9 579.1 554.2 566.6 566.7C554.1 579.2 533.8 579.2 521.3 566.7L394.7 440C360.3 465.1 317.9 480 272 480C157.1 480 64 386.9 64 272C64 157.1 157.1 64 272 64C386.9 64 480 157.1 480 272zM272 416C351.5 416 416 351.5 416 272C416 192.5 351.5 128 272 128C192.5 128 128 192.5 128 272C128 351.5 192.5 416 272 416z\",\n};\n\n","import React from \"react\";\nimport { LSG_ICON_PATHS } from \"./lsgIconPaths\";\nimport type { LsgIconName } from \"./lsgIconPaths\";\n\nexport interface LsgIconProps {\n name: LsgIconName;\n className?: string;\n}\n\nexport const LsgIcon: React.FC<LsgIconProps> = ({ name, className }) => (\n <svg\n className={className}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 640 640\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d={LSG_ICON_PATHS[name]} />\n </svg>\n);\n","import React from \"react\";\nimport { LsgIcon } from \"../../../utils\";\nimport \"./LsgBreadcrumb.scss\";\n\nexport interface LsgBreadcrumbItem {\n label: string;\n href?: string;\n}\n\nexport interface LsgBreadcrumbProps {\n /** Breadcrumb items ordered from the nearest ancestor to the current page. */\n items?: LsgBreadcrumbItem[];\n /** Mirrors the AEM \"Show Breadcrumbs\" configuration. */\n showBreadcrumbs?: boolean;\n /** Mirrors the AEM \"Include Home Link\" configuration. */\n includeHome?: boolean;\n /** URL used by the home icon link. */\n homeHref?: string;\n /** Accessible label for the icon-only home link. */\n homeLabel?: string;\n className?: string;\n}\n\nfunction isSafeHref(href: string | undefined): boolean {\n if (!href) return false;\n\n const value = href.trim().toLowerCase();\n if (\n value.startsWith(\"javascript:\") ||\n value.startsWith(\"data:\") ||\n value.startsWith(\"vbscript:\")\n ) {\n return false;\n }\n\n return (\n value.startsWith(\"/\") ||\n value.startsWith(\"#\") ||\n value.startsWith(\"http://\") ||\n value.startsWith(\"https://\") ||\n !value.includes(\":\")\n );\n}\n\nconst BreadcrumbSeparator: React.FC = () => (\n <li className=\"lsg-breadcrumb__separator\" aria-hidden=\"true\">\n <LsgIcon name=\"chevronRight\" className=\"lsg-breadcrumb__separator-icon\" />\n </li>\n);\n\nexport const LsgBreadcrumb: React.FC<LsgBreadcrumbProps> = ({\n items = [],\n showBreadcrumbs = true,\n includeHome = true,\n homeHref = \"/\",\n homeLabel = \"Home\",\n className = \"\",\n}) => {\n if (!showBreadcrumbs) return null;\n\n const visibleItems = Array.isArray(items)\n ? items.filter(\n (item): item is LsgBreadcrumbItem =>\n Boolean(item) && typeof item.label === \"string\" && item.label.trim().length > 0,\n )\n : [];\n\n if (!includeHome && visibleItems.length === 0) return null;\n\n const rootClassName = [\"lsg-breadcrumb\", className].filter(Boolean).join(\" \");\n const safeHomeHref = isSafeHref(homeHref) ? homeHref : \"/\";\n\n return (\n <nav className={rootClassName} aria-label=\"Breadcrumb\">\n <ol className=\"lsg-breadcrumb__list\">\n {includeHome && (\n <li className=\"lsg-breadcrumb__item lsg-breadcrumb__item--home\">\n <a className=\"lsg-breadcrumb__home\" href={safeHomeHref} aria-label={homeLabel}>\n <LsgIcon name=\"home\" className=\"lsg-breadcrumb__home-icon\" />\n </a>\n </li>\n )}\n\n {visibleItems.map((item, index) => {\n const isCurrent = index === visibleItems.length - 1;\n const safeHref = isSafeHref(item.href) ? item.href : undefined;\n\n return (\n <React.Fragment key={`${item.label}-${index}`}>\n {(includeHome || index > 0) && <BreadcrumbSeparator />}\n <li\n className={[\n \"lsg-breadcrumb__item\",\n isCurrent ? \"lsg-breadcrumb__item--current\" : \"lsg-breadcrumb__item--ancestor\",\n ].join(\" \")}\n >\n {isCurrent ? (\n <span className=\"lsg-breadcrumb__current\" aria-current=\"page\">\n <span className=\"lsg-breadcrumb__current-marker\" aria-hidden=\"true\" />\n <span className=\"lsg-breadcrumb__label\">{item.label}</span>\n </span>\n ) : safeHref ? (\n <a className=\"lsg-breadcrumb__link\" href={safeHref}>\n {item.label}\n </a>\n ) : (\n <span className=\"lsg-breadcrumb__ancestor\">{item.label}</span>\n )}\n </li>\n </React.Fragment>\n );\n })}\n </ol>\n </nav>\n );\n};\n","import React from \"react\";\nimport \"./LsgLogo.scss\";\n\nexport interface LsgLogoProps {\n /** Image src. When omitted, renders a text logo. */\n src?: string;\n alt?: string;\n href?: string;\n width?: number;\n height?: number;\n /** Fallback text shown when no src is provided */\n text?: string;\n}\n\nexport const LsgLogo: React.FC<LsgLogoProps> = ({\n src,\n alt = \"Logo\",\n href = \"/\",\n width,\n height = 40,\n text = \"Atlas Copco\",\n}) => {\n const content = src ? (\n <img\n src={src}\n alt={alt}\n width={width}\n height={height}\n className=\"lsg-logo__image\"\n />\n ) : (\n <span className=\"lsg-logo__text\">{text}</span>\n );\n\n return (\n <a href={href} className=\"lsg-logo\" aria-label={src ? alt : undefined}>\n {content}\n </a>\n );\n};\n","import React from \"react\";\nimport \"./LsgNavigation.scss\";\n\nexport interface LsgNavItem {\n label: string;\n href: string;\n current?: boolean;\n open?: boolean;\n children?: LsgNavItem[];\n}\n\nexport interface LsgNavigationProps {\n items: LsgNavItem[];\n /** Accessible label for the <nav> landmark */\n label?: string;\n variant?: \"simple\" | \"dropdown\" | \"mega\";\n onItemClick?: (item: LsgNavItem, level: number) => void;\n onItemHover?: (item: LsgNavItem, level: number) => void;\n}\n\nexport const LsgNavigation: React.FC<LsgNavigationProps> = ({\n items,\n label = \"Main navigation\",\n variant = \"simple\",\n onItemClick,\n onItemHover,\n}) => {\n const renderItems = (navItems: LsgNavItem[], level = 0) => (\n <ul className={level === 0 ? \"lsg-nav__list\" : \"lsg-nav__dropdown\"} role=\"list\">\n {navItems.map((item) => {\n const hasChildren = Boolean(item.children?.length);\n\n return (\n <li\n key={`${item.href}-${level}`}\n className={[\n \"lsg-nav__item\",\n hasChildren ? \"lsg-nav__item--has-children\" : \"\",\n item.open ? \"lsg-nav__item--open\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n onMouseEnter={() => {\n if (onItemHover && hasChildren) {\n onItemHover(item, level);\n }\n }}\n >\n <a\n href={item.href}\n onClick={(event) => {\n if (onItemClick && hasChildren) {\n event.preventDefault();\n onItemClick(item, level);\n }\n }}\n className={[\"lsg-nav__link\", item.current ? \"lsg-nav__link--current\" : \"\"]\n .filter(Boolean)\n .join(\" \")}\n aria-current={item.current ? \"page\" : undefined}\n aria-expanded={variant === \"dropdown\" && hasChildren ? item.open : undefined}\n >\n <p>{item.label}</p>\n {hasChildren && (\n <span className=\"lsg-nav__chevron\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 10 5\" preserveAspectRatio=\"xMidYMid meet\" focusable=\"false\">\n <path\n d=\"M1 0.5L5 4.5L9 0.5\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </span>\n )}\n </a>\n {hasChildren && renderItems(item.children || [], level + 1)}\n </li>\n );\n })}\n </ul>\n );\n\n return (\n <nav className={[\"lsg-nav\", `lsg-nav--${variant}`].join(\" \")} aria-label={label}>\n {renderItems(items)}\n </nav>\n );\n};\n","import React, { useState, useRef, useEffect, useId } from \"react\";\nimport \"./LsgLanguageSwitcher.scss\";\nimport { LsgIcon } from \"../../../utils\";\n\nexport interface LsgLanguage {\n code: string;\n label: string;\n href: string;\n}\n\nexport interface LsgLanguageSwitcherProps {\n currentLanguage: string;\n languages: LsgLanguage[];\n /** Accessible label for the trigger button */\n label?: string;\n /** Called when a language is selected. Prevents link navigation when provided. */\n onLanguageChange?: (language: LsgLanguage) => void;\n}\n\nconst ChevronIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <polyline points=\"2 4 6 8 10 4\" />\n </svg>\n);\n\n/**\n * Language Switcher\n *\n * Hydrated: state managed by React (useState).\n * Clientlib-only: driven by lsg-clientlib.js targeting [data-lsg-lang-switcher].\n */\nexport const LsgLanguageSwitcher: React.FC<LsgLanguageSwitcherProps> = ({\n currentLanguage,\n languages,\n label = \"Select language\",\n onLanguageChange,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const reactId = useId();\n const triggerId = `lsg-lang-trigger-${reactId}`;\n const dropdownId = `lsg-lang-dropdown-${reactId}`;\n\n // Close on outside click\n useEffect(() => {\n if (!isOpen) return;\n const handleClick = (e: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(e.target as Node)) {\n setIsOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handleClick);\n return () => document.removeEventListener(\"mousedown\", handleClick);\n }, [isOpen]);\n\n // Close on Escape\n useEffect(() => {\n if (!isOpen) return;\n const handleKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") setIsOpen(false);\n };\n document.addEventListener(\"keydown\", handleKey);\n return () => document.removeEventListener(\"keydown\", handleKey);\n }, [isOpen]);\n\n return (\n <div className=\"lsg-lang-switcher\" ref={containerRef} data-lsg-lang-switcher>\n <button\n id={triggerId}\n type=\"button\"\n className=\"lsg-lang-switcher__trigger\"\n aria-label={label}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-controls={dropdownId}\n onClick={() => setIsOpen((prev) => !prev)}\n >\n <LsgIcon name=\"globe\" className=\"lsg-lang-switcher__globe\" />\n <span className=\"lsg-lang-switcher__current\">{currentLanguage}</span>\n <ChevronIcon />\n </button>\n\n {isOpen && (\n <ul\n id={dropdownId}\n className=\"lsg-lang-switcher__dropdown\"\n role=\"listbox\"\n aria-labelledby={triggerId}\n >\n {languages.map((lang) => (\n <li key={lang.code} className=\"lsg-lang-switcher__option\" role=\"option\">\n <a\n href={lang.href}\n className={[\n \"lsg-lang-switcher__option-link\",\n lang.code === currentLanguage ? \"lsg-lang-switcher__option-link--active\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n aria-current={lang.code === currentLanguage ? true : undefined}\n onClick={(event) => {\n if (!onLanguageChange) return;\n\n event.preventDefault();\n onLanguageChange(lang);\n setIsOpen(false);\n }}\n >\n {lang.label}\n </a>\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgSearchTrigger.scss\";\n\nexport interface LsgSearchTriggerProps {\n /** Accessible label for the button */\n label?: string;\n /** id of the search overlay this button controls */\n targetId?: string;\n onClick?: () => void;\n}\n\nconst SearchIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n);\n\nexport const LsgSearchTrigger: React.FC<LsgSearchTriggerProps> = ({\n label = \"Open search\",\n targetId,\n onClick,\n}) => {\n return (\n <button\n type=\"button\"\n className=\"lsg-search-trigger\"\n aria-label={label}\n aria-haspopup=\"dialog\"\n aria-controls={targetId}\n onClick={onClick}\n data-lsg-search-trigger\n >\n <SearchIcon />\n </button>\n );\n};\n","import React, { useEffect, useRef } from \"react\";\nimport \"./LsgSearchOverlay.scss\";\n\nexport interface LsgSearchOverlayProps {\n id?: string;\n placeholder?: string;\n /** Accessible label for the search input */\n label?: string;\n isOpen?: boolean;\n onClose?: () => void;\n onSearch?: (query: string) => void;\n}\n\nconst SearchIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n);\n\nconst CloseIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n);\n\n/**\n * Search Overlay\n *\n * Hydrated: isOpen/onClose controlled by parent (e.g. LsgHeader).\n * Clientlib-only: driven by lsg-clientlib.js targeting [data-lsg-search-overlay].\n * The CSS class lsg-search-overlay--open drives visibility in both modes.\n */\nexport const LsgSearchOverlay: React.FC<LsgSearchOverlayProps> = ({\n id = \"lsg-search-overlay\",\n placeholder = \"Search…\",\n label = \"Search\",\n isOpen = false,\n onClose,\n onSearch,\n}) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const inputId = `${id}-input`;\n\n // Focus the input when overlay opens\n useEffect(() => {\n if (isOpen) inputRef.current?.focus();\n }, [isOpen]);\n\n // Close on Escape\n useEffect(() => {\n if (!isOpen) return;\n const handleKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClose?.();\n };\n document.addEventListener(\"keydown\", handleKey);\n return () => document.removeEventListener(\"keydown\", handleKey);\n }, [isOpen, onClose]);\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n const query = inputRef.current?.value ?? \"\";\n if (query.trim()) onSearch?.(query.trim());\n };\n\n const overlayClass = [\"lsg-search-overlay\", isOpen ? \"lsg-search-overlay--open\" : \"\"]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div\n id={id}\n className={overlayClass}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={label}\n data-lsg-search-overlay\n >\n {/* Backdrop close */}\n <div\n className=\"lsg-search-overlay__backdrop\"\n aria-hidden=\"true\"\n onClick={onClose}\n style={{ position: \"absolute\", inset: 0, cursor: \"default\" }}\n />\n <div className=\"lsg-search-overlay__panel\">\n <form className=\"lsg-search-overlay__form\" role=\"search\" onSubmit={handleSubmit}>\n <label htmlFor={inputId} className=\"lsg-search-overlay__label\">\n <SearchIcon />\n <span className=\"lsg-visually-hidden\">{label}</span>\n </label>\n <input\n id={inputId}\n ref={inputRef}\n type=\"search\"\n className=\"lsg-search-overlay__input\"\n placeholder={placeholder}\n autoComplete=\"off\"\n />\n <button type=\"submit\" className=\"lsg-search-overlay__submit\" aria-label=\"Submit search\">\n <SearchIcon />\n </button>\n <button\n type=\"button\"\n className=\"lsg-search-overlay__close\"\n aria-label=\"Close search\"\n onClick={onClose}\n >\n <CloseIcon />\n </button>\n </form>\n </div>\n </div>\n );\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport \"./LsgHeader.scss\";\nimport { LsgLogo, LsgLogoProps } from \"../LsgLogo\";\nimport { LsgNavigation, LsgNavItem } from \"../LsgNavigation\";\nimport { LsgLanguage, LsgLanguageSwitcher } from \"../LsgLanguageSwitcher\";\nimport { LsgSearchOverlay } from \"../LsgSearchOverlay\";\nimport { LsgIcon, LsgIconName } from \"../../../utils\";\n\nexport type LsgHeaderSize = \"full-width\" | \"medium\" | \"narrow\";\n\nexport interface LsgHeaderProps {\n logo?: LsgLogoProps;\n navItems?: LsgNavItem[];\n languages?: LsgLanguage[];\n currentLanguage?: string;\n onLanguageChange?: (language: LsgLanguage) => void;\n searchLabel?: string;\n searchPlaceholder?: string;\n variant?: \"simple\" | \"dropdown\" | \"mega\";\n /**\n * Width of the header bar, mirroring the AEM `./headerSize` dialog select.\n * Left undefined on purpose so no modifier class is emitted and the theme's\n * own header width applies. Styled for theme 1 only.\n */\n size?: LsgHeaderSize;\n menuOpen?: boolean;\n mobileLevel?: 0 | 1 | 2 | 3 | 4;\n activePath?: string[];\n mobileSelectedLabel?: string;\n onMenuToggle?: () => void;\n onNavItemHover?: (item: LsgNavItem, level: number) => void;\n onDropdownClose?: () => void;\n onMegaItemHover?: (item: LsgNavItem, level: number) => void;\n onMobileItemClick?: (item: LsgNavItem, level: number) => void;\n onMobileBreadcrumbClick?: (level: 0 | 1 | 2 | 3 | 4) => void;\n children?: React.ReactNode;\n}\n\nconst SEARCH_OVERLAY_ID = \"lsg-header-search-overlay\";\n\nconst LsgHeaderIcon: React.FC<{ name: LsgIconName; className?: string }> = ({\n name,\n className,\n}) => {\n return (\n <LsgIcon\n name={name}\n className={[\"lsg-header__icon\", `lsg-header__icon--${name}`, className || \"\"]\n .filter(Boolean)\n .join(\" \")}\n />\n );\n};\n\nconst getItemByPath = (\n items: LsgNavItem[],\n activePath: string[],\n depth: number\n): LsgNavItem | undefined => {\n let currentItems = items;\n let currentItem: LsgNavItem | undefined;\n\n for (let i = 0; i <= depth; i += 1) {\n currentItem = currentItems.find((item) => item.label === activePath[i]);\n currentItems = currentItem?.children || [];\n }\n\n return currentItem;\n};\n\nconst getItemsAtLevel = (\n items: LsgNavItem[],\n activePath: string[],\n level: number\n): LsgNavItem[] => {\n if (level <= 1) {\n return items;\n }\n\n return getItemByPath(items, activePath, level - 2)?.children || [];\n};\n\nconst getMegaColumns = (\n items: LsgNavItem[],\n activePath: string[],\n maxDepth = 4\n): LsgNavItem[][] => {\n const columns: LsgNavItem[][] = [items];\n let currentItems = items;\n\n activePath.slice(0, maxDepth - 1).forEach((label) => {\n const activeItem = currentItems.find((item) => item.label === label);\n\n if (activeItem?.children?.length) {\n columns.push(activeItem.children);\n currentItems = activeItem.children;\n }\n });\n\n return columns.slice(0, maxDepth);\n};\n\nconst isCurrentOrActiveAtLevel = (item: LsgNavItem, activePath: string[], level: number) =>\n item.current || activePath[level] === item.label;\n\nconst isSelectedAtLevel = (item: LsgNavItem, activePath: string[], level: number) =>\n activePath[level] === item.label;\n\nconst hasOpenNavItem = (items: LsgNavItem[]): boolean =>\n items.some((item) => item.open || hasOpenNavItem(item.children || []));\n\nconst clearMegaMenuBranch = (scope: ParentNode): void => {\n if (scope instanceof HTMLElement) {\n scope.classList.remove(\"lsg-header__mega-item--open\");\n scope.classList.remove(\"lsg-header__mega-column--open\");\n }\n\n scope.querySelectorAll<HTMLElement>(\".lsg-header__mega-item--open\").forEach((item) => {\n item.classList.remove(\"lsg-header__mega-item--open\");\n });\n scope.querySelectorAll<HTMLElement>(\".lsg-header__mega-column--open\").forEach((column) => {\n column.classList.remove(\"lsg-header__mega-column--open\");\n });\n};\n\nconst activateMegaMenuItem = (item: HTMLElement): void => {\n const parentColumn = item.parentElement;\n\n if (parentColumn) {\n Array.from(parentColumn.children).forEach((openItem) => {\n if (openItem !== item) {\n clearMegaMenuBranch(openItem as HTMLElement);\n }\n });\n }\n\n item.classList.add(\"lsg-header__mega-item--open\");\n item\n .querySelector<HTMLElement>(\":scope > .lsg-header__mega-column\")\n ?.classList.add(\"lsg-header__mega-column--open\");\n};\n\nconst HeaderActionButton: React.FC<{\n label: string;\n icon: LsgIconName;\n onClick?: () => void;\n controls?: string;\n className?: string;\n}> = ({ label, icon, onClick, controls, className }) => (\n <button\n type=\"button\"\n className={[\"lsg-header__icon-button\", className || \"\"].filter(Boolean).join(\" \")}\n aria-label={label}\n aria-controls={controls}\n onClick={onClick}\n data-lsg-search-trigger={icon === \"search\" ? \"\" : undefined}\n >\n <LsgHeaderIcon name={icon} />\n </button>\n);\n\nexport const LsgHeader: React.FC<LsgHeaderProps> = ({\n logo,\n navItems = [],\n languages = [],\n currentLanguage = \"EN\",\n onLanguageChange,\n searchLabel = \"Open search\",\n searchPlaceholder = \"Search products, documents...\",\n variant = \"simple\",\n size,\n menuOpen = false,\n mobileLevel = 0,\n activePath = [],\n mobileSelectedLabel,\n onMenuToggle,\n onNavItemHover,\n onDropdownClose,\n onMegaItemHover,\n onMobileItemClick,\n onMobileBreadcrumbClick,\n children,\n}) => {\n const [searchOpen, setSearchOpen] = useState(false);\n const headerRef = useRef<HTMLElement>(null);\n const mobileOpen = menuOpen || mobileLevel > 0;\n const columns = children ? [] : getMegaColumns(navItems, activePath);\n const mobileItems = getItemsAtLevel(navItems, activePath, mobileLevel || 1);\n const mobileBackLabel = activePath[activePath.length - 1] || \"menu\";\n const dropdownOpen = variant === \"dropdown\" && hasOpenNavItem(navItems);\n\n useEffect(() => {\n if (!menuOpen && !dropdownOpen) {\n return undefined;\n }\n\n const closeOnOutsidePointerDown = (event: MouseEvent | TouchEvent) => {\n if (headerRef.current?.contains(event.target as Node)) {\n return;\n }\n\n if (menuOpen) {\n onMenuToggle?.();\n }\n\n if (dropdownOpen) {\n onDropdownClose?.();\n }\n };\n\n document.addEventListener(\"mousedown\", closeOnOutsidePointerDown);\n document.addEventListener(\"touchstart\", closeOnOutsidePointerDown);\n\n return () => {\n document.removeEventListener(\"mousedown\", closeOnOutsidePointerDown);\n document.removeEventListener(\"touchstart\", closeOnOutsidePointerDown);\n };\n }, [dropdownOpen, menuOpen, onDropdownClose, onMenuToggle]);\n\n useEffect(() => {\n if (variant !== \"mega\" || !children || !menuOpen || !headerRef.current) {\n return undefined;\n }\n\n const megaItems = Array.from(\n headerRef.current.querySelectorAll<HTMLElement>(\".lsg-header__mega-item--has-children\")\n );\n const removeListeners = megaItems.map((item) => {\n const onMouseEnter = () => activateMegaMenuItem(item);\n const onFocusIn = () => activateMegaMenuItem(item);\n\n item.addEventListener(\"mouseenter\", onMouseEnter);\n item.addEventListener(\"focusin\", onFocusIn);\n\n return () => {\n item.removeEventListener(\"mouseenter\", onMouseEnter);\n item.removeEventListener(\"focusin\", onFocusIn);\n };\n });\n\n return () => {\n removeListeners.forEach((removeListener) => removeListener());\n if (headerRef.current) {\n clearMegaMenuBranch(headerRef.current);\n }\n };\n }, [children, menuOpen, variant]);\n\n const openSearch = () => setSearchOpen(true);\n\n const renderActions = (showMenu = false) => (\n <div className=\"lsg-header__actions\">\n {showMenu && variant === \"mega\" && (\n <>\n <button\n type=\"button\"\n className=\"lsg-header__menu-trigger\"\n aria-label={menuOpen ? \"Close menu\" : \"Open menu\"}\n aria-expanded={menuOpen}\n onClick={onMenuToggle}\n data-lsg-menu-trigger\n >\n <LsgHeaderIcon name={menuOpen ? \"close\" : \"bars\"} />\n <span>{menuOpen ? \"CLOSE\" : \"MENU\"}</span>\n </button>\n <span className=\"lsg-header__separator\" aria-hidden=\"true\">\n |\n </span>\n </>\n )}\n <HeaderActionButton\n label={searchLabel}\n icon=\"search\"\n controls={SEARCH_OVERLAY_ID}\n onClick={openSearch}\n />\n {languages.length > 0 && (\n <LsgLanguageSwitcher\n currentLanguage={currentLanguage}\n languages={languages}\n label={`Current language: ${currentLanguage}`}\n onLanguageChange={onLanguageChange}\n />\n )}\n </div>\n );\n\n const renderMegaPanel = () => (\n <div className=\"lsg-header__mega-panel\">\n <div className=\"lsg-header__mega-inner\">\n {columns.map((columnItems, columnIndex) => (\n <ul key={`mega-column-${columnIndex}`} className=\"lsg-header__mega-column\" role=\"list\">\n {columnItems.map((item) => {\n const hasChildren = Boolean(item.children?.length);\n\n return (\n <li\n key={`${item.href}-${columnIndex}`}\n className={[\n \"lsg-header__mega-item\",\n hasChildren ? \"lsg-header__mega-item--has-children\" : \"\",\n isSelectedAtLevel(item, activePath, columnIndex)\n ? \"lsg-header__mega-item--active\"\n : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n onMouseEnter={() => {\n if (onMegaItemHover && hasChildren) {\n onMegaItemHover(item, columnIndex);\n }\n }}\n >\n <a href={item.href} className=\"lsg-header__mega-link\">\n <span>{item.label}</span>\n {hasChildren && <LsgHeaderIcon name=\"chevronRight\" />}\n </a>\n </li>\n );\n })}\n </ul>\n ))}\n </div>\n </div>\n );\n\n const renderMobileMenu = () => (\n <div className=\"lsg-header__mobile-panel\">\n {variant === \"dropdown\" ? (\n <LsgNavigation\n items={navItems}\n variant=\"dropdown\"\n onItemClick={(item, level) => onMobileItemClick?.(item, level + 1)}\n />\n ) : (\n <>\n {variant === \"mega\" && mobileLevel > 1 && (\n <nav className=\"lsg-header__mobile-back\" aria-label=\"Menu navigation\">\n <button\n type=\"button\"\n className=\"lsg-header__mobile-back-button\"\n aria-label={`Back to ${mobileBackLabel}`}\n onClick={() =>\n onMobileBreadcrumbClick?.(Math.max(1, mobileLevel - 1) as 1 | 2 | 3 | 4)\n }\n >\n <LsgHeaderIcon name=\"chevronRight\" />\n <span>Back to {mobileBackLabel}</span>\n </button>\n </nav>\n )}\n\n <ul className=\"lsg-header__mobile-list\" role=\"list\">\n {mobileItems.map((item, index) => {\n const hasChildren = Boolean(item.children?.length);\n const isSelected = mobileSelectedLabel\n ? item.label === mobileSelectedLabel\n : isCurrentOrActiveAtLevel(item, activePath, Math.max(0, mobileLevel - 1));\n\n return (\n <li\n key={`${item.href}-mobile-${index}`}\n className={[\n \"lsg-header__mobile-item\",\n hasChildren ? \"lsg-header__mobile-item--has-children\" : \"\",\n isSelected ? \"lsg-header__mobile-item--active\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n <a\n href={item.href}\n className=\"lsg-header__mobile-link\"\n onClick={(event) => {\n if (onMobileItemClick && hasChildren) {\n event.preventDefault();\n onMobileItemClick(item, Math.max(1, mobileLevel || 1));\n }\n }}\n >\n <span>{item.label}</span>\n {hasChildren && <LsgHeaderIcon name=\"chevronRight\" />}\n </a>\n </li>\n );\n })}\n </ul>\n </>\n )}\n </div>\n );\n\n return (\n <>\n <LsgSearchOverlay\n id={SEARCH_OVERLAY_ID}\n isOpen={searchOpen}\n onClose={() => setSearchOpen(false)}\n placeholder={searchPlaceholder}\n />\n <header\n ref={headerRef}\n className={[\n \"lsg-header\",\n `lsg-header--${variant}`,\n size ? `lsg-header--size-${size}` : \"\",\n menuOpen ? \"lsg-header--menu-open\" : \"\",\n `lsg-header--mobile-level-${mobileLevel}`,\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n <div className=\"lsg-header__inner\">\n <div className=\"lsg-logo-decorator\">\n <div className=\"lsg-logo\">\n <LsgLogo {...logo} />\n </div>\n </div>\n\n {variant !== \"mega\" && navItems.length > 0 && (\n <div className=\"lsg-header__nav\">\n <LsgNavigation items={navItems} variant={variant} onItemHover={onNavItemHover} />\n </div>\n )}\n\n {variant === \"mega\" && (\n <div className=\"lsg-header__desktop-menu\">{renderActions(true)}</div>\n )}\n\n {variant !== \"mega\" && (\n <div className=\"lsg-header__desktop-actions\">\n <span className=\"lsg-header__separator\" aria-hidden=\"true\">\n |\n </span>\n {renderActions(false)}\n </div>\n )}\n\n <div className=\"lsg-header__mobile-actions\">\n <HeaderActionButton\n label={searchLabel}\n icon=\"search\"\n controls={SEARCH_OVERLAY_ID}\n onClick={openSearch}\n />\n {languages.length > 0 && (\n <LsgLanguageSwitcher\n currentLanguage={currentLanguage}\n languages={languages}\n label={`Current language: ${currentLanguage}`}\n onLanguageChange={onLanguageChange}\n />\n )}\n <span className=\"lsg-header__separator\" aria-hidden=\"true\">\n |\n </span>\n <button\n type=\"button\"\n className=\"lsg-header__icon-button\"\n aria-label={mobileOpen ? \"Close menu\" : \"Open menu\"}\n aria-expanded={mobileOpen}\n onClick={onMenuToggle}\n data-lsg-menu-trigger\n >\n <LsgHeaderIcon name={mobileOpen ? \"close\" : \"bars\"} />\n </button>\n </div>\n </div>\n\n {variant === \"mega\" && menuOpen && (children || renderMegaPanel())}\n {mobileOpen && renderMobileMenu()}\n </header>\n\n \n </>\n );\n};\n","import React from \"react\";\nimport \"./LsgQuickLinks.scss\";\n\nexport interface LsgQuickLink {\n label: string;\n href: string;\n}\n\nexport interface LsgQuickLinksProps {\n heading?: string;\n links: LsgQuickLink[];\n}\n\nexport const LsgQuickLinks: React.FC<LsgQuickLinksProps> = ({ heading, links }) => {\n return (\n <nav className=\"lsg-quick-links\" aria-label={heading ?? \"Quick links\"}>\n {heading && <p className=\"lsg-quick-links__heading\" aria-hidden=\"true\">{heading}</p>}\n <ul className=\"lsg-quick-links__list\" role=\"list\">\n {links.map((link) => (\n <li key={link.href} className=\"lsg-quick-links__item\">\n <a href={link.href} className=\"lsg-quick-links__link\">\n {link.label}\n </a>\n </li>\n ))}\n </ul>\n </nav>\n );\n};\n","import React from \"react\";\nimport \"./LsgSocialMediaIcons.scss\";\n\nexport type LsgSocialPlatform =\n | \"linkedin\"\n | \"twitter\"\n | \"facebook\"\n | \"instagram\"\n | \"youtube\";\n\nexport interface LsgSocialItem {\n platform: LsgSocialPlatform;\n href: string;\n /** Screen-reader label, e.g. \"Atlas Copco on LinkedIn\" */\n label: string;\n}\n\nexport interface LsgSocialMediaIconsProps {\n items: LsgSocialItem[];\n}\n\nconst platformIcons: Record<LsgSocialPlatform, React.ReactElement> = {\n linkedin: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M20.45 20.45h-3.56v-5.57c0-1.33-.03-3.04-1.85-3.04-1.86 0-2.14 1.45-2.14 2.95v5.66H9.34V9h3.41v1.56h.05c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.45v6.29zM5.34 7.43a2.07 2.07 0 1 1 0-4.14 2.07 2.07 0 0 1 0 4.14zM7.12 20.45H3.55V9h3.57v11.45z\" />\n </svg>\n ),\n twitter: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\" />\n </svg>\n ),\n facebook: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M24 12.073C24 5.405 18.627 0 12 0S0 5.405 0 12.073C0 18.1 4.388 23.094 10.125 24v-8.437H7.078v-3.49h3.047V9.41c0-3.025 1.792-4.697 4.533-4.697 1.312 0 2.686.236 2.686.236v2.97h-1.513c-1.491 0-1.956.93-1.956 1.874v2.25h3.328l-.532 3.49h-2.796V24C19.612 23.094 24 18.1 24 12.073z\" />\n </svg>\n ),\n instagram: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6.406-11.845a1.44 1.44 0 1 0 0 2.881 1.44 1.44 0 0 0 0-2.881z\" />\n </svg>\n ),\n youtube: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z\" />\n </svg>\n ),\n};\n\nexport const LsgSocialMediaIcons: React.FC<LsgSocialMediaIconsProps> = ({ items }) => {\n return (\n <ul className=\"lsg-social-icons\" role=\"list\">\n {items.map((item) => (\n <li key={item.platform} className=\"lsg-social-icons__item\">\n <a\n href={item.href}\n className=\"lsg-social-icons__link\"\n aria-label={item.label}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {platformIcons[item.platform]}\n </a>\n </li>\n ))}\n </ul>\n );\n};\n","import React from \"react\";\nimport \"./LsgFooter.scss\";\nimport { LsgLogo, LsgLogoProps } from \"../LsgLogo\";\n\nexport interface LsgFooterNavItem {\n label: string;\n href: string;\n}\n\nexport interface LsgFooterContact {\n address?: string;\n phone?: string;\n fax?: string;\n email?: string;\n}\n\nexport interface LsgFooterColHeadings {\n contact?: string;\n quickLinks?: string;\n about?: string;\n contactAlt?: string;\n}\n\nexport interface LsgFooterProps {\n variant?: \"simple\" | \"complex\";\n /** 2-row simple variant (brand line top row, cookie+copyright+AI bottom row) */\n simpleTwoRow?: boolean;\n /** Brand line shown in simple 2-row top or complex footer below logo */\n brandLine?: string;\n /** Column layout for complex variant. Default: \"2col\" */\n complexColumns?: \"2col\" | \"3col\";\n /** Show \"This Website Is Translated With AI\" badge */\n showAiBadge?: boolean;\n /** Cookie settings link text (shown in 2-row simple or complex bottom bar) */\n cookieSetting?: string;\n logo?: LsgLogoProps;\n navItems?: LsgFooterNavItem[];\n contact?: LsgFooterContact;\n quickLinks?: LsgFooterNavItem[];\n copyright?: string;\n /** Column headings for complex footer */\n colHeadings?: LsgFooterColHeadings;\n /** Social icon links shown in complex footer */\n socialLinks?: { platform: \"facebook\" | \"twitter\" | \"linkedin\" | \"youtube\" | \"instagram\"; href: string }[];\n /** Where to show social icons in complex variant: \"body\" | \"bottom-bar\". Default: \"body\" */\n socialPosition?: \"body\" | \"bottom-bar\";\n className?: string;\n}\n\nconst PhoneIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path d=\"M15.833 13.483c-.417-.416-1.25-.833-1.875-1.083-.625-.25-1.042-.167-1.458.208l-.834.833c-.208.209-.5.209-.708.042-.625-.5-1.833-1.583-2.583-2.333-.75-.75-1.75-1.875-2.25-2.583-.167-.208-.125-.5.083-.709l.834-.833c.416-.417.5-.833.25-1.458-.25-.625-.667-1.458-1.084-1.875C8.791 3.25 8.208 3 7.583 3c-.416 0-.833.167-1.125.458L5.625 4.292C4.5 5.417 4.708 7.125 5.333 8.833c.625 1.708 2 3.833 3.625 5.458 1.625 1.625 3.75 3 5.458 3.625 1.709.625 3.417.833 4.542-.292l.833-.833c.292-.292.458-.708.458-1.125 0-.625-.25-1.208-.416-1.583z\" fill=\"currentColor\"/>\n </svg>\n);\n\nconst FaxIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path d=\"M16 6h-1V2H5v4H4c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h1v2h10v-2h1c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zM7 4h6v2H7V4zm6 12H7v-4h6v4zm3-5H4V8h12v3z\" fill=\"currentColor\"/>\n </svg>\n);\n\nconst MailIcon = () => (\n <svg width=\"24\" height=\"20\" viewBox=\"0 0 24 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path d=\"M20 0H4C2.9 0 2 .9 2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V2l8 5 8-5v2z\" fill=\"currentColor\"/>\n </svg>\n);\n\nconst LocationIcon = () => (\n <svg width=\"18\" height=\"21\" viewBox=\"0 0 18 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path d=\"M9 0C5.13 0 2 3.13 2 7c0 5.25 7 13 7 13s7-7.75 7-13C16 3.13 12.87 0 9 0zm0 9.5C7.62 9.5 6.5 8.38 6.5 7S7.62 4.5 9 4.5 11.5 5.62 11.5 7 10.38 9.5 9 9.5z\" fill=\"currentColor\"/>\n </svg>\n);\n\nconst AiBadge = () => (\n <span className=\"lsg-footer__ai-badge\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"1.5\"/>\n <path d=\"M2 12h20M12 2a15.3 15.3 0 0 1 0 20M12 2a15.3 15.3 0 0 0 0 20\" stroke=\"currentColor\" strokeWidth=\"1.5\"/>\n </svg>\n This Website Is Translated With AI\n </span>\n);\n\nconst SocialIcon: React.FC<{ platform: string }> = ({ platform }) => {\n const icons: Record<string, React.ReactNode> = {\n facebook: <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\"/></svg>,\n twitter: <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"/></svg>,\n linkedin: <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6zM2 9h4v12H2z\"/><circle cx=\"4\" cy=\"4\" r=\"2\"/></svg>,\n youtube: <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M22.54 6.42a2.78 2.78 0 0 0-1.95-1.96C18.88 4 12 4 12 4s-6.88 0-8.59.46a2.78 2.78 0 0 0-1.95 1.96A29 29 0 0 0 1 12a29 29 0 0 0 .46 5.58A2.78 2.78 0 0 0 3.41 19.6C5.12 20 12 20 12 20s6.88 0 8.59-.4a2.78 2.78 0 0 0 1.95-1.95A29 29 0 0 0 23 12a29 29 0 0 0-.46-5.58zM9.75 15.02V8.98L15.5 12l-5.75 3.02z\"/></svg>,\n instagram:<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><rect x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" ry=\"5\"/><circle cx=\"12\" cy=\"12\" r=\"4\"/><circle cx=\"17.5\" cy=\"6.5\" r=\"0.5\" fill=\"currentColor\"/></svg>,\n };\n return <>{icons[platform] ?? null}</>;\n};\n\nconst SocialIconsRow: React.FC<{ links: NonNullable<LsgFooterProps[\"socialLinks\"]> }> = ({ links }) => (\n <div className=\"lsg-footer__bottom-social\">\n {links.map((l) => (\n <a key={l.platform} href={l.href} aria-label={l.platform} style={{ color: \"inherit\", display: \"inline-flex\", alignItems: \"center\", opacity: 0.8 }}>\n <SocialIcon platform={l.platform} />\n </a>\n ))}\n </div>\n);\n\nexport const LsgFooter: React.FC<LsgFooterProps> = ({\n variant = \"simple\",\n simpleTwoRow = false,\n brandLine = \"Part of Atlas Copco Group\",\n complexColumns = \"2col\",\n showAiBadge = false,\n cookieSetting,\n logo,\n navItems = [],\n contact,\n quickLinks = [],\n copyright,\n colHeadings,\n socialLinks,\n socialPosition = \"body\",\n className = \"\",\n}) => {\n const year = new Date().getFullYear();\n const copyrightText = copyright ?? `© ${year} Brand - Part of Atlas Copco Group`;\n\n // ── Simple footer ──────────────────────────────────────────────────────────\n if (variant === \"simple\") {\n if (simpleTwoRow) {\n return (\n <footer className={`lsg-footer lsg-footer--simple lsg-footer--simple-tworow${className ? ` ${className}` : \"\"}`}>\n <div className=\"lsg-footer__simple-top\">\n <span className=\"lsg-footer__brand-line\">{brandLine}</span>\n {navItems.length > 0 && (\n <nav className=\"lsg-footer__simple-nav\" aria-label=\"Footer navigation\">\n {navItems.map((item, i) => (\n <React.Fragment key={item.href}>\n {i > 0 && <span className=\"lsg-footer__pipe\" aria-hidden=\"true\">|</span>}\n <a href={item.href} className=\"lsg-footer__simple-nav-item\">{item.label}</a>\n </React.Fragment>\n ))}\n </nav>\n )}\n </div>\n <div className=\"lsg-footer__simple-bottom\">\n <div className=\"lsg-footer__simple-bottom-left\">\n {cookieSetting && <a href=\"#\" className=\"lsg-footer__cookie-link\">{cookieSetting}</a>}\n <p className=\"lsg-footer__copyright\">{copyrightText}</p>\n </div>\n {showAiBadge && <AiBadge />}\n </div>\n </footer>\n );\n }\n\n return (\n <footer className={`lsg-footer lsg-footer--simple${className ? ` ${className}` : \"\"}`}>\n <div className=\"lsg-footer__simple-inner\">\n <p className=\"lsg-footer__copyright\">{copyrightText}</p>\n {navItems.length > 0 && (\n <nav className=\"lsg-footer__simple-nav\" aria-label=\"Footer navigation\">\n {navItems.map((item, i) => (\n <React.Fragment key={item.href}>\n {i > 0 && (\n <>\n <span className=\"lsg-footer__pipe\" aria-hidden=\"true\">|</span>\n <hr className=\"lsg-footer__mobile-divider\" aria-hidden=\"true\" />\n </>\n )}\n <a href={item.href} className=\"lsg-footer__simple-nav-item\">{item.label}</a>\n </React.Fragment>\n ))}\n </nav>\n )}\n </div>\n </footer>\n );\n }\n\n // ── Complex footer ─────────────────────────────────────────────────────────\n const is3col = complexColumns === \"3col\";\n const headings = {\n contact: colHeadings?.contact ?? \"CONTACT\",\n quickLinks: colHeadings?.quickLinks ?? (is3col ? \"Quicklinks\" : \"QUICK LINKS\"),\n about: colHeadings?.about ?? \"About brand\",\n contactAlt: colHeadings?.contactAlt ?? \"Contact\",\n };\n\n const bottomBar = (\n <>\n <hr className=\"lsg-footer__bottom-divider\" />\n <div className=\"lsg-footer__bottom\">\n <div className=\"lsg-footer__bottom-left\">\n {cookieSetting && <a href=\"#\" className=\"lsg-footer__cookie-link\">{cookieSetting}</a>}\n <p className=\"lsg-footer__copyright\">{copyrightText}</p>\n {is3col && showAiBadge && <AiBadge />}\n </div>\n {!is3col && showAiBadge && <AiBadge />}\n {socialPosition === \"bottom-bar\" && socialLinks && socialLinks.length > 0 && (\n <SocialIconsRow links={socialLinks} />\n )}\n </div>\n </>\n );\n\n if (is3col) {\n return (\n <footer className={`lsg-footer lsg-footer--complex${className ? ` ${className}` : \"\"}`}>\n <div className=\"lsg-footer__complex-inner\">\n {logo && (\n <div className=\"lsg-footer__logo-col\">\n <LsgLogo {...logo} />\n {brandLine && <span className=\"lsg-footer__brand-line\">{brandLine}</span>}\n </div>\n )}\n <div className=\"lsg-footer__content-cols lsg-footer__content-cols--3col\">\n <div className=\"lsg-footer__about-col\">\n <h3 className=\"lsg-footer__col-heading\">{headings.about}</h3>\n {contact?.address && (\n <div className=\"lsg-footer__address\">\n <LocationIcon />\n <p>{contact.address}</p>\n </div>\n )}\n </div>\n <div className=\"lsg-footer__contact-col\">\n <h3 className=\"lsg-footer__col-heading\">{headings.contactAlt}</h3>\n <div className=\"lsg-footer__contact-items\">\n {contact?.phone && (\n <div className=\"lsg-footer__contact-item\"><PhoneIcon /><span>{contact.phone}</span></div>\n )}\n {contact?.fax && (\n <div className=\"lsg-footer__contact-item\"><FaxIcon /><span>{contact.fax}</span></div>\n )}\n {contact?.email && (\n <div className=\"lsg-footer__contact-item\"><MailIcon /><a href={`mailto:${contact.email}`}>{contact.email}</a></div>\n )}\n </div>\n </div>\n {quickLinks.length > 0 && (\n <div className=\"lsg-footer__quicklinks-col\">\n <h3 className=\"lsg-footer__col-heading\">{headings.quickLinks}</h3>\n <ul className=\"lsg-footer__quicklinks-list\">\n {quickLinks.map((link, i) => (\n <li key={link.href ?? i} className=\"lsg-footer__quicklink-item\">\n <a href={link.href} className=\"lsg-footer__quicklink\">{link.label}</a>\n <hr className=\"lsg-footer__divider\" />\n </li>\n ))}\n </ul>\n {socialPosition === \"body\" && socialLinks && socialLinks.length > 0 && (\n <div className=\"lsg-footer__body-social\"><SocialIconsRow links={socialLinks} /></div>\n )}\n </div>\n )}\n </div>\n </div>\n {bottomBar}\n </footer>\n );\n }\n\n return (\n <footer className={`lsg-footer lsg-footer--complex${className ? ` ${className}` : \"\"}`}>\n <div className=\"lsg-footer__complex-inner\">\n {logo && (\n <div className=\"lsg-footer__logo-col\">\n <LsgLogo {...logo} />\n {brandLine && <span className=\"lsg-footer__brand-line\">{brandLine}</span>}\n </div>\n )}\n <div className=\"lsg-footer__content-cols\">\n {contact && (\n <div className=\"lsg-footer__contact-col\">\n <h3 className=\"lsg-footer__col-heading\">{headings.contact}</h3>\n {contact.address && (\n <div className=\"lsg-footer__address\">\n <LocationIcon />\n <p>{contact.address}</p>\n </div>\n )}\n <hr className=\"lsg-footer__divider\" />\n <div className=\"lsg-footer__contact-items\">\n {contact.phone && (\n <div className=\"lsg-footer__contact-item\"><PhoneIcon /><span>{contact.phone}</span></div>\n )}\n {contact.fax && (\n <div className=\"lsg-footer__contact-item\"><FaxIcon /><span>{contact.fax}</span></div>\n )}\n {contact.email && (\n <div className=\"lsg-footer__contact-item\"><MailIcon /><a href={`mailto:${contact.email}`}>{contact.email}</a></div>\n )}\n </div>\n </div>\n )}\n {quickLinks.length > 0 && (\n <div className=\"lsg-footer__quicklinks-col\">\n <h3 className=\"lsg-footer__col-heading\">{headings.quickLinks}</h3>\n <ul className=\"lsg-footer__quicklinks-list\">\n {quickLinks.map((link, i) => (\n <li key={link.href ?? i} className=\"lsg-footer__quicklink-item\">\n <a href={link.href} className=\"lsg-footer__quicklink\">{link.label}</a>\n <hr className=\"lsg-footer__divider\" />\n </li>\n ))}\n </ul>\n {socialPosition === \"body\" && socialLinks && socialLinks.length > 0 && (\n <div className=\"lsg-footer__body-social\"><SocialIconsRow links={socialLinks} /></div>\n )}\n </div>\n )}\n </div>\n </div>\n {bottomBar}\n </footer>\n );\n};\n","function clampNumber(number, min, max) {\n return Math.min(Math.max(number, min), max);\n}\nfunction isNumber(value) {\n return typeof value === 'number' && !isNaN(value);\n}\n\nfunction Fade(userOptions = {}) {\n const fullOpacity = 1;\n const noOpacity = 0;\n const fadeFriction = 0.68;\n let emblaApi;\n let opacities = [];\n let fadeToNextDistance;\n let distanceFromPointerDown = 0;\n let fadeVelocity = 0;\n let progress = 0;\n let shouldFadePair = false;\n let defaultSettledBehaviour;\n let defaultProgressBehaviour;\n function init(emblaApiInstance) {\n emblaApi = emblaApiInstance;\n const selectedSnap = emblaApi.selectedScrollSnap();\n const {\n scrollBody,\n containerRect,\n axis\n } = emblaApi.internalEngine();\n const containerSize = axis.measureSize(containerRect);\n fadeToNextDistance = clampNumber(containerSize * 0.75, 200, 500);\n shouldFadePair = false;\n opacities = emblaApi.scrollSnapList().map((_, index) => index === selectedSnap ? fullOpacity : noOpacity);\n defaultSettledBehaviour = scrollBody.settled;\n defaultProgressBehaviour = emblaApi.scrollProgress;\n scrollBody.settled = settled;\n emblaApi.scrollProgress = scrollProgress;\n emblaApi.on('select', select).on('slideFocus', fadeToSelectedSnapInstantly).on('pointerDown', pointerDown).on('pointerUp', pointerUp);\n disableScroll();\n fadeToSelectedSnapInstantly();\n }\n function destroy() {\n const {\n scrollBody\n } = emblaApi.internalEngine();\n scrollBody.settled = defaultSettledBehaviour;\n emblaApi.scrollProgress = defaultProgressBehaviour;\n emblaApi.off('select', select).off('slideFocus', fadeToSelectedSnapInstantly).off('pointerDown', pointerDown).off('pointerUp', pointerUp);\n emblaApi.slideNodes().forEach(slideNode => {\n const slideStyle = slideNode.style;\n slideStyle.opacity = '';\n slideStyle.transform = '';\n slideStyle.pointerEvents = '';\n if (!slideNode.getAttribute('style')) slideNode.removeAttribute('style');\n });\n }\n function fadeToSelectedSnapInstantly() {\n const selectedSnap = emblaApi.selectedScrollSnap();\n setOpacities(selectedSnap, fullOpacity);\n }\n function pointerUp() {\n shouldFadePair = false;\n }\n function pointerDown() {\n shouldFadePair = false;\n distanceFromPointerDown = 0;\n fadeVelocity = 0;\n }\n function select() {\n const duration = emblaApi.internalEngine().scrollBody.duration();\n fadeVelocity = duration ? 0 : fullOpacity;\n shouldFadePair = true;\n if (!duration) fadeToSelectedSnapInstantly();\n }\n function getSlideTransform(position) {\n const {\n axis\n } = emblaApi.internalEngine();\n const translateAxis = axis.scroll.toUpperCase();\n return `translate${translateAxis}(${axis.direction(position)}px)`;\n }\n function disableScroll() {\n const {\n translate,\n slideLooper\n } = emblaApi.internalEngine();\n translate.clear();\n translate.toggleActive(false);\n slideLooper.loopPoints.forEach(({\n translate\n }) => {\n translate.clear();\n translate.toggleActive(false);\n });\n }\n function lockExcessiveScroll(fadeIndex) {\n const {\n scrollSnaps,\n location,\n target\n } = emblaApi.internalEngine();\n if (!isNumber(fadeIndex) || opacities[fadeIndex] < 0.5) return;\n location.set(scrollSnaps[fadeIndex]);\n target.set(location);\n }\n function setOpacities(fadeIndex, velocity) {\n const scrollSnaps = emblaApi.scrollSnapList();\n scrollSnaps.forEach((_, indexA) => {\n const absVelocity = Math.abs(velocity);\n const currentOpacity = opacities[indexA];\n const isFadeIndex = indexA === fadeIndex;\n const nextOpacity = isFadeIndex ? currentOpacity + absVelocity : currentOpacity - absVelocity;\n const clampedOpacity = clampNumber(nextOpacity, noOpacity, fullOpacity);\n opacities[indexA] = clampedOpacity;\n const fadePair = isFadeIndex && shouldFadePair;\n const indexB = emblaApi.previousScrollSnap();\n if (fadePair) opacities[indexB] = 1 - clampedOpacity;\n if (isFadeIndex) setProgress(fadeIndex, clampedOpacity);\n setOpacity(indexA);\n });\n }\n function setOpacity(index) {\n const slidesInSnap = emblaApi.internalEngine().slideRegistry[index];\n const {\n scrollSnaps,\n containerRect\n } = emblaApi.internalEngine();\n const opacity = opacities[index];\n slidesInSnap.forEach(slideIndex => {\n const slideStyle = emblaApi.slideNodes()[slideIndex].style;\n const roundedOpacity = parseFloat(opacity.toFixed(2));\n const hasOpacity = roundedOpacity > noOpacity;\n const position = hasOpacity ? scrollSnaps[index] : containerRect.width + 2;\n const transform = getSlideTransform(position);\n if (hasOpacity) slideStyle.transform = transform;\n slideStyle.opacity = roundedOpacity.toString();\n slideStyle.pointerEvents = opacity > 0.5 ? 'auto' : 'none';\n if (!hasOpacity) slideStyle.transform = transform;\n });\n }\n function setProgress(fadeIndex, opacity) {\n const {\n index,\n dragHandler,\n scrollSnaps\n } = emblaApi.internalEngine();\n const pointerDown = dragHandler.pointerDown();\n const snapFraction = 1 / (scrollSnaps.length - 1);\n let indexA = fadeIndex;\n let indexB = pointerDown ? emblaApi.selectedScrollSnap() : emblaApi.previousScrollSnap();\n if (pointerDown && indexA === indexB) {\n const reverseSign = Math.sign(distanceFromPointerDown) * -1;\n indexA = indexB;\n indexB = index.clone().set(indexB).add(reverseSign).get();\n }\n const currentPosition = indexB * snapFraction;\n const diffPosition = (indexA - indexB) * snapFraction;\n progress = currentPosition + diffPosition * opacity;\n }\n function getFadeIndex() {\n const {\n dragHandler,\n index,\n scrollBody\n } = emblaApi.internalEngine();\n const selectedSnap = emblaApi.selectedScrollSnap();\n if (!dragHandler.pointerDown()) return selectedSnap;\n const directionSign = Math.sign(scrollBody.velocity());\n const distanceSign = Math.sign(distanceFromPointerDown);\n const nextSnap = index.clone().set(selectedSnap).add(directionSign * -1).get();\n if (!directionSign || !distanceSign) return null;\n return distanceSign === directionSign ? nextSnap : selectedSnap;\n }\n function fade(emblaApi) {\n const {\n dragHandler,\n scrollBody\n } = emblaApi.internalEngine();\n const pointerDown = dragHandler.pointerDown();\n const velocity = scrollBody.velocity();\n const duration = scrollBody.duration();\n const fadeIndex = getFadeIndex();\n const noFadeIndex = !isNumber(fadeIndex);\n if (pointerDown) {\n if (!velocity) return;\n distanceFromPointerDown += velocity;\n fadeVelocity = Math.abs(velocity / fadeToNextDistance);\n lockExcessiveScroll(fadeIndex);\n }\n if (!pointerDown) {\n if (!duration || noFadeIndex) return;\n fadeVelocity += (fullOpacity - opacities[fadeIndex]) / duration;\n fadeVelocity *= fadeFriction;\n }\n if (noFadeIndex) return;\n setOpacities(fadeIndex, fadeVelocity);\n }\n function settled() {\n const {\n target,\n location\n } = emblaApi.internalEngine();\n const diffToTarget = target.get() - location.get();\n const notReachedTarget = Math.abs(diffToTarget) >= 1;\n const fadeIndex = getFadeIndex();\n const noFadeIndex = !isNumber(fadeIndex);\n fade(emblaApi);\n if (noFadeIndex || notReachedTarget) return false;\n return opacities[fadeIndex] > 0.999;\n }\n function scrollProgress() {\n return progress;\n }\n const self = {\n name: 'fade',\n options: userOptions,\n init,\n destroy\n };\n return self;\n}\nFade.globalOptions = undefined;\n\nexport { Fade as default };\n//# sourceMappingURL=embla-carousel-fade.esm.js.map\n","import EmblaCarousel, { EmblaCarouselType } from \"embla-carousel\";\nimport EmblaCarouselFade from \"embla-carousel-fade\";\n\n// ─────────────────────────────────────────────────────────────────────────────\n// LsgHeroController — shared vanilla JS carousel controller\n// ─────────────────────────────────────────────────────────────────────────────\n//\n// Single source of truth for carousel behaviour. Used by:\n// 1. The React LsgHero component (via useEffect + refs)\n// 2. The AEM clientlib initHero function (directly on server-rendered DOM)\n//\n// This means carousel logic is written once and behaves identically in both\n// Storybook and AEM — no React-specific wrappers, no divergence.\n//\n// Usage:\n// const controller = new LsgHeroController(viewportEl, elements, options);\n// // later when unmounting:\n// controller.destroy();\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport type LsgHeroControllerTransition = \"slide\" | \"fade\";\n\nexport interface LsgHeroControllerOptions {\n /** Slide transition style. Defaults to \"slide\". */\n transition?: LsgHeroControllerTransition;\n /** Enable autoplay. Defaults to true. */\n autoplay?: boolean;\n /** Autoplay interval in milliseconds. Defaults to 5000. */\n autoplayInterval?: number;\n}\n\nexport interface LsgHeroControllerElements {\n /** Previous-slide button. */\n prevBtn?: HTMLElement | null;\n /** Next-slide button. */\n nextBtn?: HTMLElement | null;\n /** Scroll-down trigger button. */\n scrollDownBtn?: HTMLElement | null;\n /** Element to scroll into view when scroll-down is triggered. */\n scrollDownTarget?: HTMLElement | null;\n}\n\nexport class LsgHeroController {\n private embla: EmblaCarouselType | null = null;\n private autoplayTimer: ReturnType<typeof setInterval> | null = null;\n private contentObserver: ResizeObserver | null = null;\n private rafId: ReturnType<typeof requestAnimationFrame> | null = null;\n private readonly opts: Required<LsgHeroControllerOptions>;\n private readonly els: LsgHeroControllerElements;\n\n constructor(\n viewport: HTMLElement,\n elements: LsgHeroControllerElements = {},\n options: LsgHeroControllerOptions = {}\n ) {\n this.opts = {\n transition: options.transition ?? \"slide\",\n autoplay: options.autoplay ?? true,\n autoplayInterval: options.autoplayInterval ?? 5000,\n };\n this.els = elements;\n this.mount(viewport);\n }\n\n private mount(viewport: HTMLElement): void {\n this.els.prevBtn?.addEventListener(\"click\", this.scrollPrev);\n this.els.nextBtn?.addEventListener(\"click\", this.scrollNext);\n this.els.scrollDownBtn?.addEventListener(\"click\", this.handleScrollDown);\n\n // First frame lets React's initial paint settle; second guarantees that\n // async-injected stylesheets (e.g. --lsg-hero-axis) have been computed.\n this.rafId = requestAnimationFrame(() => {\n this.rafId = requestAnimationFrame(() => {\n this.rafId = null;\n if (!viewport.isConnected) return;\n\n const section = viewport.closest<HTMLElement>(\"[data-lsg-is='hero']\");\n const axis: \"x\" | \"y\" =\n section && getComputedStyle(section).getPropertyValue(\"--lsg-hero-axis\").trim() === \"y\"\n ? \"y\"\n : \"x\";\n\n const plugins = this.opts.transition === \"fade\" ? [EmblaCarouselFade()] : [];\n this.embla = EmblaCarousel(viewport, { loop: true, axis }, plugins);\n\n if (this.opts.autoplay) {\n this.startAutoplay();\n this.embla.on(\"pointerDown\", this.stopAutoplay);\n this.embla.on(\"pointerUp\", this.startAutoplay);\n }\n\n // Sync the first slide's content-wrapper height to a CSS custom property\n // on the section root so the controls column can match it dynamically.\n const contentWrapper = section?.querySelector<HTMLElement>(\".lsg-hero-card__content-wrapper\");\n if (section && contentWrapper && typeof ResizeObserver !== \"undefined\") {\n const setHeight = (el: Element): void => {\n (section as HTMLElement).style.setProperty(\n \"--lsg-hero-content-height\",\n `${(el as HTMLElement).offsetHeight}px`\n );\n };\n setHeight(contentWrapper);\n this.contentObserver = new ResizeObserver((entries) => {\n setHeight(entries[0].target);\n });\n this.contentObserver.observe(contentWrapper);\n }\n\n // For vertical carousels the section height (100svh) cascades from a\n // useEffect-set data-lsg-theme attribute, which may land one frame after\n // this RAF. Re-measure so Embla has the correct slide dimensions.\n if (axis === \"y\") {\n requestAnimationFrame(() => {\n if (viewport.isConnected) this.embla?.reInit();\n });\n }\n });\n });\n }\n\n readonly scrollPrev = (): void => {\n this.embla?.scrollPrev();\n if (this.opts.autoplay) this.startAutoplay();\n };\n\n readonly scrollNext = (): void => {\n this.embla?.scrollNext();\n if (this.opts.autoplay) this.startAutoplay();\n };\n\n private readonly handleScrollDown = (): void => {\n this.els.scrollDownTarget?.scrollIntoView({ behavior: \"smooth\" });\n };\n\n /** Start the autoplay interval (resets any existing timer). */\n readonly startAutoplay = (): void => {\n this.stopAutoplay();\n this.autoplayTimer = setInterval(this.scrollNext, this.opts.autoplayInterval);\n };\n\n /** Clear the autoplay interval. */\n readonly stopAutoplay = (): void => {\n if (this.autoplayTimer !== null) {\n clearInterval(this.autoplayTimer);\n this.autoplayTimer = null;\n }\n };\n\n /** Direct access to the underlying Embla instance for advanced usage. */\n get emblaApi(): EmblaCarouselType | null {\n return this.embla;\n }\n\n /** Tear down event listeners, autoplay, and the Embla instance. */\n destroy(): void {\n if (this.rafId !== null) {\n cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n this.stopAutoplay();\n this.contentObserver?.disconnect();\n this.contentObserver = null;\n if (this.embla) {\n this.embla.off(\"pointerDown\", this.stopAutoplay);\n this.embla.off(\"pointerUp\", this.startAutoplay);\n this.embla.destroy();\n this.embla = null;\n }\n this.els.prevBtn?.removeEventListener(\"click\", this.scrollPrev);\n this.els.nextBtn?.removeEventListener(\"click\", this.scrollNext);\n this.els.scrollDownBtn?.removeEventListener(\"click\", this.handleScrollDown);\n }\n}\n","import React, { useState } from \"react\";\nimport \"./LsgHeroCard.scss\";\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Types\n// ─────────────────────────────────────────────────────────────────────────────\n\n/** Token names that map to `--lsg-color-*` custom properties. */\nexport type LsgHeroColorToken =\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"light\"\n | \"dark\"\n | \"black\"\n | \"white\";\n\nexport interface LsgHeroCardProps {\n /** DAM/CDN URL for the background image. Used as poster/fallback for video. */\n imageSrc?: string;\n /** Alt text for the image. */\n imageAlt?: string;\n /** DAM/CDN URL for an mp4/webm video asset. */\n videoSrc?: string;\n /** YouTube video ID only (e.g. \"dQw4w9WgXcQ\"). */\n youtubeId?: string;\n /** Vimeo video ID only (e.g. \"148751763\"). */\n vimeoId?: string;\n /**\n * Background colour token for this card. Always tints the content text-box\n * (`lsg-hero-card--bg-{token}`). When the card has NO image/video, it instead\n * fills the whole card as a solid colour (`lsg-hero-card--fill-{token}`) with a\n * transparent content box.\n */\n cardBackground?: LsgHeroColorToken;\n /** Text colour token for this card's content (`lsg-hero-card--color-{token}`). */\n cardColor?: LsgHeroColorToken;\n /**\n * Content slot rendered on top of the media layer inside the white text-box\n * overlay. In AEM this is the parsys (container) inside each hero-card.\n * Accepts any LSG components: Title, Text, Button, etc.\n */\n children?: React.ReactNode;\n /** Index within the parent carousel — used for accessible label. */\n index?: number;\n /** Total slide count from the parent — used for accessible label. */\n total?: number;\n className?: string;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// LsgHeroCard\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const LsgHeroCard: React.FC<LsgHeroCardProps> = ({\n imageSrc,\n imageAlt = \"\",\n videoSrc,\n youtubeId,\n vimeoId,\n cardBackground,\n cardColor,\n children,\n index,\n total,\n className = \"\",\n}) => {\n const [videoReady, setVideoReady] = useState(false);\n\n // Video source priority: YouTube > Vimeo > DAM\n const hasYoutube = Boolean(youtubeId);\n const hasVimeo = !hasYoutube && Boolean(vimeoId);\n const hasDam = !hasYoutube && !hasVimeo && Boolean(videoSrc);\n\n // No image/video → the card renders as a solid colour (fill) instead of a\n // media backdrop; with media, cardBackground tints the content text-box.\n const hasMedia = Boolean(imageSrc || videoSrc || youtubeId || vimeoId);\n\n const youtubeEmbedSrc = youtubeId\n ? `https://www.youtube.com/embed/${youtubeId}?autoplay=1&mute=1&loop=1&controls=0&disablekb=1&fs=0&iv_load_policy=3&modestbranding=1&playlist=${youtubeId}&rel=0`\n : undefined;\n\n const vimeoEmbedSrc = vimeoId\n ? `https://player.vimeo.com/video/${vimeoId}?autoplay=1&loop=1&background=1&muted=1`\n : undefined;\n\n const ariaLabel =\n index !== undefined && total !== undefined\n ? `Slide ${index + 1} of ${total}`\n : undefined;\n\n const articleClasses = [\n \"lsg-hero-card\",\n // Background: tint the content box when there's media; fill the whole card when there isn't.\n cardBackground &&\n (hasMedia\n ? `lsg-hero-card--bg-${cardBackground}`\n : `lsg-hero-card--fill-${cardBackground}`),\n cardColor && `lsg-hero-card--color-${cardColor}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <article className={articleClasses} role=\"listitem\" aria-label={ariaLabel}>\n {/* ── Media layer ──────────────────────────────────────────────────── */}\n <div className=\"lsg-hero-card__media\" aria-hidden=\"true\">\n {imageSrc && (\n // eslint-disable-next-line @next/next/no-img-element\n <img\n className=\"lsg-hero-card__image\"\n src={imageSrc}\n alt={imageAlt}\n loading=\"eager\"\n />\n )}\n\n {hasDam && (\n <video\n className={`lsg-hero-card__video${videoReady ? \" lsg-hero-card__video--ready\" : \"\"}`}\n autoPlay\n muted\n loop\n playsInline\n onCanPlay={() => setVideoReady(true)}\n >\n <source src={videoSrc} />\n </video>\n )}\n\n {hasYoutube && (\n <div className=\"lsg-hero-card__video-embed lsg-hero-card__video-embed--youtube\">\n <iframe\n src={youtubeEmbedSrc}\n title=\"Hero background video\"\n allow=\"autoplay\"\n aria-hidden=\"true\"\n tabIndex={-1}\n />\n </div>\n )}\n\n {hasVimeo && (\n <div className=\"lsg-hero-card__video-embed lsg-hero-card__video-embed--vimeo\">\n <iframe\n src={vimeoEmbedSrc}\n title=\"Hero background video\"\n allow=\"autoplay\"\n aria-hidden=\"true\"\n tabIndex={-1}\n />\n </div>\n )}\n </div>\n\n {/* ── Content slot (text-box overlay) ──────────────────────────────── */}\n <div className=\"lsg-hero-card__content layout-container--medium\">\n <div className=\"lsg-hero-card__content-wrapper\">\n {children}\n </div>\n </div>\n </article>\n );\n};\n","import React, { useCallback, useEffect, useRef } from \"react\";\nimport { LsgHeroController } from \"./LsgHeroController\";\nimport { LsgHeroCard } from \"../LsgHeroCard/LsgHeroCard\";\nimport type { LsgHeroCardProps, LsgHeroColorToken } from \"../LsgHeroCard/LsgHeroCard\";\nimport \"./LsgHero.scss\";\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Types\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport type LsgHeroHeight = \"full\" | \"75vh\";\nexport type LsgHeroTransition = \"slide\" | \"fade\";\n\n/** Colour token type now lives on the card; re-exported here for back-compat. */\nexport type { LsgHeroColorToken };\n\n/**\n * A single hero slide. All media/content props are forwarded directly to\n * LsgHeroCard — see LsgHeroCardProps for full documentation.\n */\nexport type LsgHeroSlide = Omit<LsgHeroCardProps, \"index\" | \"total\">;\n\nexport interface LsgHeroProps {\n slides: LsgHeroSlide[];\n /** Minimum height of the hero. Defaults to \"full\" (100vh). */\n height?: LsgHeroHeight;\n /** Show previous/next arrow controls (only in carousel mode). */\n showArrows?: boolean;\n /** Slide transition. Defaults to \"slide\". */\n transition?: LsgHeroTransition;\n /** Render a scroll-down affordance at the bottom of the hero. */\n enableScrollDown?: boolean;\n /** Label for the scroll-down button. Icon-only when omitted. */\n scrollDownText?: string;\n /** Enable carousel autoplay. Defaults to true. */\n autoplay?: boolean;\n /** Autoplay interval in milliseconds. Defaults to 5000. */\n autoplayInterval?: number;\n className?: string;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// LsgHero\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const LsgHero: React.FC<LsgHeroProps> = ({\n slides = [],\n height = \"full\",\n showArrows = true,\n transition = \"slide\",\n enableScrollDown = false,\n scrollDownText,\n autoplay = true,\n autoplayInterval = 5000,\n className = \"\",\n}) => {\n const isCarousel = slides.length > 1;\n\n // ── Refs ──────────────────────────────────────────────────────────────────\n const sectionRef = useRef<HTMLElement>(null);\n const viewportRef = useRef<HTMLDivElement>(null);\n const prevBtnRef = useRef<HTMLButtonElement>(null);\n const nextBtnRef = useRef<HTMLButtonElement>(null);\n const controllerRef = useRef<LsgHeroController | null>(null);\n\n // ── Controller init (vanilla JS — same logic as AEM clientlib) ────────────\n useEffect(() => {\n if (!viewportRef.current || !isCarousel) return;\n\n controllerRef.current = new LsgHeroController(\n viewportRef.current,\n {\n prevBtn: showArrows ? prevBtnRef.current : undefined,\n nextBtn: showArrows ? nextBtnRef.current : undefined,\n },\n { transition, autoplay, autoplayInterval },\n );\n\n return () => {\n controllerRef.current?.destroy();\n controllerRef.current = null;\n };\n }, [isCarousel, showArrows, transition, autoplay, autoplayInterval]);\n\n // ── Scroll-down ───────────────────────────────────────────────────────────\n const handleScrollDown = useCallback(() => {\n const next = sectionRef.current?.nextElementSibling as HTMLElement | null;\n next?.scrollIntoView({ behavior: \"smooth\" });\n }, []);\n\n // ── Class names ───────────────────────────────────────────────────────────\n const sectionClasses = [\n \"lsg-hero\",\n `lsg-hero--${height}`,\n `lsg-hero--${transition}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n // ── Render ────────────────────────────────────────────────────────────────\n return (\n <section\n ref={sectionRef}\n className={sectionClasses}\n data-lsg-is=\"hero\"\n data-lsg-carousel={String(isCarousel)}\n data-lsg-transition={transition}\n data-lsg-arrows={String(showArrows)}\n >\n {/* Embla viewport */}\n <div className=\"lsg-hero__viewport\" ref={viewportRef}>\n <div className=\"lsg-hero__slides\" role=\"list\">\n {slides.map((slide, index) => (\n <LsgHeroCard\n key={index}\n {...slide}\n index={index}\n total={slides.length}\n />\n ))}\n </div>\n </div>\n\n {/* Carousel controls */}\n {isCarousel && showArrows && (\n <div className=\"lsg-hero__controls-wrap\">\n <nav className=\"lsg-hero__controls\" aria-label=\"Hero navigation\">\n <button\n ref={prevBtnRef}\n className=\"lsg-hero__prev\"\n type=\"button\"\n aria-label=\"Previous slide\"\n >\n <span className=\"lsg-hero__arrow-icon\" aria-hidden=\"true\" />\n </button>\n <button\n ref={nextBtnRef}\n className=\"lsg-hero__next\"\n type=\"button\"\n aria-label=\"Next slide\"\n >\n <span className=\"lsg-hero__arrow-icon\" aria-hidden=\"true\" />\n </button>\n </nav>\n </div>\n )}\n\n {/* Scroll-down affordance */}\n {enableScrollDown && (\n <div className=\"lsg-hero__scroll-down\">\n <button\n className=\"lsg-hero__scroll-down-btn\"\n type=\"button\"\n aria-label={scrollDownText ?? \"Scroll down\"}\n onClick={handleScrollDown}\n >\n {scrollDownText && (\n <span className=\"lsg-hero__scroll-down-text\">{scrollDownText}</span>\n )}\n <span className=\"lsg-hero__scroll-down-icon\" aria-hidden=\"true\" />\n </button>\n </div>\n )}\n </section>\n );\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport \"./LsgTabs.scss\";\n\n// Matches $lsg-tabs-accordion-breakpoint in LsgTabs.scss ($breakpoint-sm - 1px)\n// and MOBILE_MEDIA_QUERY in lsg-clientlib-runtime.ts.\nconst MOBILE_MEDIA_QUERY = \"(max-width: 767px)\";\n\n// Sub-pixel layout rounding when comparing scroll offsets against extents\nconst SCROLL_EPSILON = 1;\n\nconst CHEVRON_SVG = (\n <svg\n className=\"lsg-tabs__tab-icon-svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path\n d=\"M3 6L8 11L13 6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport interface LsgTabsItem {\n id: string;\n title: string;\n content: React.ReactNode;\n}\n\nexport type LsgTabsVariant = \"default\" | \"vertical\";\n\nexport interface LsgTabsProps {\n items: LsgTabsItem[];\n /** Id of the initially selected tab. Defaults to the first item. */\n activeId?: string;\n /** Visual variant. Default: \"default\" */\n variant?: LsgTabsVariant;\n /** Value of aria-label on the tablist. */\n accessibilityLabel?: string;\n className?: string;\n}\n\nexport const LsgTabs: React.FC<LsgTabsProps> = ({\n items,\n activeId,\n variant = \"default\",\n accessibilityLabel,\n className = \"\",\n}) => {\n const [selectedId, setSelectedId] = useState<string>(activeId ?? items[0]?.id ?? \"\");\n // Below the breakpoint the tabs render as a single-open accordion and the open\n // header can be collapsed. Tracked separately from selection so exactly one tab\n // stays selected at every width — resizing back to desktop just reveals it again.\n const [collapsed, setCollapsed] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n // Scroll-arrow state. The arrows themselves are ::before / ::after on the root\n // (see LsgTabs.scss) — these only say whether there is more to reveal.\n const [scrollStart, setScrollStart] = useState(false);\n const [scrollEnd, setScrollEnd] = useState(false);\n\n const tabRefs = useRef<Record<string, HTMLLIElement | null>>({});\n const stripRef = useRef<HTMLOListElement | null>(null);\n\n const isVertical = variant === \"vertical\";\n\n const selectedIndex = Math.max(\n 0,\n items.findIndex((item) => item.id === selectedId)\n );\n\n useEffect(() => {\n const mql = window.matchMedia(MOBILE_MEDIA_QUERY);\n const sync = (): void => setIsMobile(mql.matches);\n sync();\n mql.addEventListener(\"change\", sync);\n return () => mql.removeEventListener(\"change\", sync);\n }, []);\n\n const updateArrows = (): void => {\n const strip = stripRef.current;\n // Below the breakpoint this is an accordion — nothing scrolls, so the arrows\n // must not be offered.\n if (!strip || isMobile) {\n setScrollStart(false);\n setScrollEnd(false);\n return;\n }\n\n const offset = isVertical ? strip.scrollTop : strip.scrollLeft;\n const visible = isVertical ? strip.clientHeight : strip.clientWidth;\n const total = isVertical ? strip.scrollHeight : strip.scrollWidth;\n\n setScrollStart(offset > SCROLL_EPSILON);\n setScrollEnd(offset + visible < total - SCROLL_EPSILON);\n };\n\n useEffect(() => {\n updateArrows();\n }, [isMobile, isVertical, items, selectedIndex]);\n\n useEffect(() => {\n const strip = stripRef.current;\n if (!strip || typeof ResizeObserver === \"undefined\") return;\n // The strip can start overflowing because its container changed, with no\n // viewport resize at all.\n const observer = new ResizeObserver(() => updateArrows());\n observer.observe(strip);\n return () => observer.disconnect();\n }, [isMobile, isVertical]);\n\n useEffect(() => {\n // A late web-font swap widens the labels, growing scrollWidth without changing\n // the strip's own box — so ResizeObserver may never fire. Re-measure once the\n // fonts have settled, otherwise the arrows can be stale on first paint.\n let cancelled = false;\n document.fonts?.ready.then(() => {\n if (!cancelled) updateArrows();\n });\n return () => {\n cancelled = true;\n };\n }, [isMobile, isVertical]);\n\n const scrollStrip = (direction: -1 | 1): void => {\n const strip = stripRef.current;\n if (!strip) return;\n // A step just under one viewport keeps a sliver of context in view\n const visible = isVertical ? strip.clientHeight : strip.clientWidth;\n const step = Math.max(visible * 0.8, 1);\n if (isVertical) {\n strip.scrollTop += direction * step;\n } else {\n strip.scrollLeft += direction * step;\n }\n };\n\n // The arrows are pseudo-elements painted above the strip, so a click on one\n // hit-tests to the root rather than to a tab or panel. Nothing else on the root\n // is clickable, which is what makes this unambiguous.\n const onRootClick = (event: React.MouseEvent<HTMLDivElement>): void => {\n if (event.target !== event.currentTarget) return;\n const strip = stripRef.current;\n if (!strip) return;\n\n const rect = strip.getBoundingClientRect();\n const beforeMidpoint = isVertical\n ? event.clientY < rect.top + rect.height / 2\n : event.clientX < rect.left + rect.width / 2;\n\n scrollStrip(beforeMidpoint ? -1 : 1);\n };\n\n const select = (index: number, moveFocus: boolean): void => {\n const item = items[index];\n if (!item) return;\n setSelectedId(item.id);\n setCollapsed(false);\n const tab = tabRefs.current[item.id];\n // Arrow-key navigation can land on a tab that is scrolled out of the strip\n tab?.scrollIntoView({ block: \"nearest\", inline: \"nearest\" });\n if (moveFocus) tab?.focus();\n };\n\n const press = (index: number): void => {\n if (isMobile && index === selectedIndex) {\n setCollapsed((prev) => !prev);\n return;\n }\n select(index, false);\n };\n\n // Roving tabindex keyboard model for role=\"tab\" — see bootLsgTabs for the AEM twin.\n const onKeyDown = (event: React.KeyboardEvent<HTMLLIElement>, index: number): void => {\n const last = items.length - 1;\n\n switch (event.key) {\n case \"ArrowRight\":\n case \"ArrowDown\":\n event.preventDefault();\n select(selectedIndex === last ? 0 : selectedIndex + 1, true);\n break;\n case \"ArrowLeft\":\n case \"ArrowUp\":\n event.preventDefault();\n select(selectedIndex === 0 ? last : selectedIndex - 1, true);\n break;\n case \"Home\":\n event.preventDefault();\n select(0, true);\n break;\n case \"End\":\n event.preventDefault();\n select(last, true);\n break;\n case \"Enter\":\n case \" \":\n event.preventDefault();\n press(index);\n break;\n default:\n break;\n }\n };\n\n const rootClass = [\n \"lsg-tabs\",\n isVertical ? \"lsg-tabs--vertical\" : \"\",\n scrollStart ? \"lsg-tabs--scroll-start\" : \"\",\n scrollEnd ? \"lsg-tabs--scroll-end\" : \"\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div className={rootClass} onClick={onRootClick}>\n <ol\n ref={stripRef}\n className=\"lsg-tabs__tablist\"\n role=\"tablist\"\n aria-label={accessibilityLabel}\n aria-multiselectable=\"false\"\n onScroll={updateArrows}\n >\n {items.map((item, index) => {\n const isActive = index === selectedIndex;\n return (\n <li\n key={item.id}\n ref={(node) => {\n tabRefs.current[item.id] = node;\n }}\n role=\"tab\"\n id={`lsg-tab-${item.id}`}\n className={`lsg-tabs__tab${isActive ? \" lsg-tabs__tab--active\" : \"\"}`}\n aria-controls={`lsg-tabpanel-${item.id}`}\n aria-selected={isActive}\n // Desktop is a tab strip — aria-selected carries the state there, and\n // the collapsed class has no styling, so aria-expanded would mislead.\n aria-expanded={isMobile ? isActive && !collapsed : undefined}\n tabIndex={isActive ? 0 : -1}\n onClick={() => press(index)}\n onKeyDown={(event) => onKeyDown(event, index)}\n >\n <span className=\"lsg-tabs__tab-label\">{item.title}</span>\n <span className=\"lsg-tabs__tab-icon\" aria-hidden=\"true\">\n {CHEVRON_SVG}\n </span>\n </li>\n );\n })}\n </ol>\n\n {items.map((item, index) => {\n const isActive = index === selectedIndex;\n return (\n <div\n key={item.id}\n id={`lsg-tabpanel-${item.id}`}\n role=\"tabpanel\"\n aria-labelledby={`lsg-tab-${item.id}`}\n tabIndex={0}\n className={[\n \"lsg-tabs__panel\",\n isActive ? \"lsg-tabs__panel--active\" : \"\",\n isActive && collapsed ? \"lsg-tabs__panel--collapsed\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n {item.content}\n </div>\n );\n })}\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgTable.scss\";\n\nexport type LsgTableColor =\n | \"white\"\n | \"black\"\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"light\"\n | \"dark\";\n\nexport type LsgTableCell = React.ReactNode;\n\nexport interface LsgTableProps {\n headers: LsgTableCell[];\n rows: LsgTableCell[][];\n headerBackground?: LsgTableColor;\n accentColors?: LsgTableColor;\n noAlternatingRows?: boolean;\n caption?: React.ReactNode;\n id?: string;\n className?: string;\n}\n\n/**\n * Storybook representation of the AEM LSG table markup.\n * It deliberately emits the same Style System class contract as AEM.\n */\nexport const LsgTable: React.FC<LsgTableProps> = ({\n headers,\n rows,\n headerBackground = \"primary\",\n accentColors = \"black\",\n noAlternatingRows = false,\n caption,\n id,\n className,\n}) => {\n const wrapperClassName = [\n \"table-focus\",\n `background-color-${headerBackground}`,\n `accent-color-${accentColors}`,\n `no-alternating-rows-${noAlternatingRows}`,\n className,\n ].filter(Boolean).join(\" \");\n\n return (\n <>\n <div id={id} className={wrapperClassName}>\n <table>\n <tbody>\n <tr>\n {headers.map((cell, index) => (\n <td key={`header-${index}`}>{cell}</td>\n ))}\n </tr>\n {rows.map((row, rowIndex) => (\n <tr key={`row-${rowIndex}`}>\n {row.map((cell, cellIndex) => (\n <td key={`cell-${rowIndex}-${cellIndex}`}>{cell}</td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n <div className=\"table-caption\">{caption}</div>\n </>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldText.scss\";\n\nexport interface LsgFormFieldTextProps {\n id?: string;\n label: string;\n helpText?: string;\n placeholder?: string;\n defaultValue?: string;\n required?: boolean;\n disabled?: boolean;\n /** Shows inline error text and marks the input invalid */\n error?: string;\n autocomplete?: string;\n minLength?: number;\n maxLength?: number;\n name?: string;\n}\n\nexport const LsgFormFieldText: React.FC<LsgFormFieldTextProps> = ({\n id = \"field-text\",\n label,\n helpText,\n placeholder,\n defaultValue = \"\",\n required = false,\n disabled = false,\n error,\n autocomplete,\n minLength,\n maxLength,\n name,\n}) => {\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy = [helpId, error ? errorId : undefined]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--text\">\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <input\n type=\"text\"\n className=\"cmp-vtba-form__input\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n placeholder={placeholder}\n autoComplete={autocomplete}\n minLength={minLength}\n maxLength={maxLength}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n />\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldEmail.scss\";\n\nexport interface LsgFormFieldEmailProps {\n id?: string;\n label: string;\n helpText?: string;\n placeholder?: string;\n defaultValue?: string;\n required?: boolean;\n disabled?: boolean;\n error?: string;\n maxLength?: number;\n name?: string;\n}\n\nexport const LsgFormFieldEmail: React.FC<LsgFormFieldEmailProps> = ({\n id = \"field-email\",\n label,\n helpText,\n placeholder,\n defaultValue = \"\",\n required = false,\n disabled = false,\n error,\n maxLength,\n name,\n}) => {\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy = [helpId, error ? errorId : undefined]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--email\">\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <input\n type=\"email\"\n className=\"cmp-vtba-form__input\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n placeholder={placeholder}\n autoComplete=\"email\"\n maxLength={maxLength}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n />\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import B,{useMemo as We,useRef as qe,useState as Je}from\"react\";var M=[[\"Afghanistan\",\"af\",\"93\"],[\"Albania\",\"al\",\"355\"],[\"Algeria\",\"dz\",\"213\"],[\"Andorra\",\"ad\",\"376\"],[\"Angola\",\"ao\",\"244\"],[\"Antigua and Barbuda\",\"ag\",\"1268\"],[\"Argentina\",\"ar\",\"54\",{default:\"(..) .... ....\",\"/^11/\":\"(..) .... ....\",\"/^15/\":\"(..) ... ....\",\"/^(2|3|4|5)/\":\"(.) .... ....\",\"/^9/\":\"(.) .... .....\"},0],[\"Armenia\",\"am\",\"374\",\".. ......\"],[\"Aruba\",\"aw\",\"297\"],[\"Australia\",\"au\",\"61\",{default:\". .... ....\",\"/^4/\":\"... ... ...\",\"/^5(?!50)/\":\"... ... ...\",\"/^1(3|8)00/\":\".... ... ...\",\"/^13/\":\".. .. ..\",\"/^180/\":\"... ....\"},0,[]],[\"Austria\",\"at\",\"43\"],[\"Azerbaijan\",\"az\",\"994\",\"(..) ... .. ..\"],[\"Bahamas\",\"bs\",\"1242\"],[\"Bahrain\",\"bh\",\"973\",\".... ....\"],[\"Bangladesh\",\"bd\",\"880\"],[\"Barbados\",\"bb\",\"1246\"],[\"Belarus\",\"by\",\"375\",\"(..) ... .. ..\"],[\"Belgium\",\"be\",\"32\",\"... .. .. ..\"],[\"Belize\",\"bz\",\"501\"],[\"Benin\",\"bj\",\"229\"],[\"Bhutan\",\"bt\",\"975\"],[\"Bolivia\",\"bo\",\"591\"],[\"Bosnia and Herzegovina\",\"ba\",\"387\"],[\"Botswana\",\"bw\",\"267\"],[\"Brazil\",\"br\",\"55\",\"(..) .....-....\"],[\"British Indian Ocean Territory\",\"io\",\"246\"],[\"Brunei\",\"bn\",\"673\"],[\"Bulgaria\",\"bg\",\"359\"],[\"Burkina Faso\",\"bf\",\"226\"],[\"Burundi\",\"bi\",\"257\"],[\"Cambodia\",\"kh\",\"855\"],[\"Cameroon\",\"cm\",\"237\"],[\"Canada\",\"ca\",\"1\",\"(...) ...-....\",1,[\"204\",\"226\",\"236\",\"249\",\"250\",\"289\",\"306\",\"343\",\"365\",\"387\",\"403\",\"416\",\"418\",\"431\",\"437\",\"438\",\"450\",\"506\",\"514\",\"519\",\"548\",\"579\",\"581\",\"587\",\"604\",\"613\",\"639\",\"647\",\"672\",\"705\",\"709\",\"742\",\"778\",\"780\",\"782\",\"807\",\"819\",\"825\",\"867\",\"873\",\"902\",\"905\"]],[\"Cape Verde\",\"cv\",\"238\"],[\"Caribbean Netherlands\",\"bq\",\"599\",\"\",1],[\"Cayman Islands\",\"ky\",\"1\",\"... ... ....\",4,[\"345\"]],[\"Central African Republic\",\"cf\",\"236\"],[\"Chad\",\"td\",\"235\"],[\"Chile\",\"cl\",\"56\"],[\"China\",\"cn\",\"86\",\"... .... ....\"],[\"Colombia\",\"co\",\"57\",\"... ... ....\"],[\"Comoros\",\"km\",\"269\"],[\"Congo\",\"cd\",\"243\"],[\"Congo\",\"cg\",\"242\"],[\"Costa Rica\",\"cr\",\"506\",\"....-....\"],[\"C\\xF4te d'Ivoire\",\"ci\",\"225\",\".. .. .. .. ..\"],[\"Croatia\",\"hr\",\"385\"],[\"Cuba\",\"cu\",\"53\"],[\"Cura\\xE7ao\",\"cw\",\"599\",\"\",0],[\"Cyprus\",\"cy\",\"357\",\".. ......\"],[\"Czech Republic\",\"cz\",\"420\",\"... ... ...\"],[\"Denmark\",\"dk\",\"45\",\".. .. .. ..\"],[\"Djibouti\",\"dj\",\"253\",\".. .. ....\"],[\"Dominica\",\"dm\",\"1767\"],[\"Dominican Republic\",\"do\",\"1\",\"(...) ...-....\",2,[\"809\",\"829\",\"849\"]],[\"Ecuador\",\"ec\",\"593\"],[\"Egypt\",\"eg\",\"20\"],[\"El Salvador\",\"sv\",\"503\",\"....-....\"],[\"Equatorial Guinea\",\"gq\",\"240\"],[\"Eritrea\",\"er\",\"291\"],[\"Estonia\",\"ee\",\"372\",\".... ......\"],[\"Ethiopia\",\"et\",\"251\",\".. ... ....\"],[\"Faroe Islands\",\"fo\",\"298\",\".. .. ..\"],[\"Fiji\",\"fj\",\"679\"],[\"Finland\",\"fi\",\"358\",\".. ... .. ..\"],[\"France\",\"fr\",\"33\",\". .. .. .. ..\"],[\"French Guiana\",\"gf\",\"594\",\"... .. .. ..\"],[\"French Polynesia\",\"pf\",\"689\",{\"/^44/\":\".. .. ..\",\"/^80[0-5]/\":\"... .. .. ..\",default:\".. .. .. ..\"}],[\"Gabon\",\"ga\",\"241\"],[\"Gambia\",\"gm\",\"220\"],[\"Georgia\",\"ge\",\"995\"],[\"Germany\",\"de\",\"49\",\"... .........\"],[\"Ghana\",\"gh\",\"233\"],[\"Gibraltar\",\"gi\",\"350\"],[\"Greece\",\"gr\",\"30\"],[\"Greenland\",\"gl\",\"299\",\".. .. ..\"],[\"Grenada\",\"gd\",\"1473\"],[\"Guadeloupe\",\"gp\",\"590\",\"... .. .. ..\",0],[\"Guam\",\"gu\",\"1671\"],[\"Guatemala\",\"gt\",\"502\",\"....-....\"],[\"Guinea\",\"gn\",\"224\"],[\"Guinea-Bissau\",\"gw\",\"245\"],[\"Guyana\",\"gy\",\"592\"],[\"Haiti\",\"ht\",\"509\",\"....-....\"],[\"Honduras\",\"hn\",\"504\"],[\"Hong Kong\",\"hk\",\"852\",\".... ....\"],[\"Hungary\",\"hu\",\"36\"],[\"Iceland\",\"is\",\"354\",\"... ....\"],[\"India\",\"in\",\"91\",\".....-.....\"],[\"Indonesia\",\"id\",\"62\"],[\"Iran\",\"ir\",\"98\",\"... ... ....\"],[\"Iraq\",\"iq\",\"964\"],[\"Ireland\",\"ie\",\"353\",\".. .......\"],[\"Israel\",\"il\",\"972\",\"... ... ....\"],[\"Italy\",\"it\",\"39\",\"... .......\",0],[\"Jamaica\",\"jm\",\"1876\"],[\"Japan\",\"jp\",\"81\",\".. .... ....\"],[\"Jordan\",\"jo\",\"962\"],[\"Kazakhstan\",\"kz\",\"7\",\"... ...-..-..\",0],[\"Kenya\",\"ke\",\"254\"],[\"Kiribati\",\"ki\",\"686\"],[\"Kosovo\",\"xk\",\"383\"],[\"Kuwait\",\"kw\",\"965\",\".... ....\"],[\"Kyrgyzstan\",\"kg\",\"996\",\"... ... ...\"],[\"Laos\",\"la\",\"856\"],[\"Latvia\",\"lv\",\"371\",\".. ... ...\"],[\"Lebanon\",\"lb\",\"961\"],[\"Lesotho\",\"ls\",\"266\"],[\"Liberia\",\"lr\",\"231\"],[\"Libya\",\"ly\",\"218\"],[\"Liechtenstein\",\"li\",\"423\"],[\"Lithuania\",\"lt\",\"370\"],[\"Luxembourg\",\"lu\",\"352\"],[\"Macau\",\"mo\",\"853\"],[\"Macedonia\",\"mk\",\"389\"],[\"Madagascar\",\"mg\",\"261\"],[\"Malawi\",\"mw\",\"265\"],[\"Malaysia\",\"my\",\"60\",\"..-....-....\"],[\"Maldives\",\"mv\",\"960\"],[\"Mali\",\"ml\",\"223\"],[\"Malta\",\"mt\",\"356\"],[\"Marshall Islands\",\"mh\",\"692\"],[\"Martinique\",\"mq\",\"596\",\"... .. .. ..\"],[\"Mauritania\",\"mr\",\"222\"],[\"Mauritius\",\"mu\",\"230\"],[\"Mayotte\",\"yt\",\"262\",\"... .. .. ..\",1,[\"269\",\"639\"]],[\"Mexico\",\"mx\",\"52\",\"... ... ....\",0],[\"Micronesia\",\"fm\",\"691\"],[\"Moldova\",\"md\",\"373\",\"(..) ..-..-..\"],[\"Monaco\",\"mc\",\"377\"],[\"Mongolia\",\"mn\",\"976\"],[\"Montenegro\",\"me\",\"382\"],[\"Morocco\",\"ma\",\"212\"],[\"Mozambique\",\"mz\",\"258\"],[\"Myanmar\",\"mm\",\"95\"],[\"Namibia\",\"na\",\"264\"],[\"Nauru\",\"nr\",\"674\"],[\"Nepal\",\"np\",\"977\"],[\"Netherlands\",\"nl\",\"31\",{\"/^06/\":\"(.). .........\",\"/^6/\":\". .........\",\"/^0(10|13|14|15|20|23|24|26|30|33|35|36|38|40|43|44|45|46|50|53|55|58|70|71|72|73|74|75|76|77|78|79|82|84|85|87|88|91)/\":\"(.).. ........\",\"/^(10|13|14|15|20|23|24|26|30|33|35|36|38|40|43|44|45|46|50|53|55|58|70|71|72|73|74|75|76|77|78|79|82|84|85|87|88|91)/\":\".. ........\",\"/^0/\":\"(.)... .......\",default:\"... .......\"}],[\"New Caledonia\",\"nc\",\"687\"],[\"New Zealand\",\"nz\",\"64\",\"...-...-....\"],[\"Nicaragua\",\"ni\",\"505\"],[\"Niger\",\"ne\",\"227\"],[\"Nigeria\",\"ng\",\"234\"],[\"North Korea\",\"kp\",\"850\"],[\"Norway\",\"no\",\"47\",\"... .. ...\"],[\"Oman\",\"om\",\"968\",\".... ....\"],[\"Pakistan\",\"pk\",\"92\",\"...-.......\"],[\"Palau\",\"pw\",\"680\"],[\"Palestine\",\"ps\",\"970\"],[\"Panama\",\"pa\",\"507\"],[\"Papua New Guinea\",\"pg\",\"675\"],[\"Paraguay\",\"py\",\"595\"],[\"Peru\",\"pe\",\"51\"],[\"Philippines\",\"ph\",\"63\",\"... ... ....\"],[\"Poland\",\"pl\",\"48\",\"...-...-...\"],[\"Portugal\",\"pt\",\"351\"],[\"Puerto Rico\",\"pr\",\"1\",\"(...) ...-....\",3,[\"787\",\"939\"]],[\"Qatar\",\"qa\",\"974\",\".... ....\"],[\"R\\xE9union\",\"re\",\"262\",\"... .. .. ..\",0],[\"Romania\",\"ro\",\"40\"],[\"Russia\",\"ru\",\"7\",\"(...) ...-..-..\",1],[\"Rwanda\",\"rw\",\"250\"],[\"Saint Kitts and Nevis\",\"kn\",\"1869\"],[\"Saint Lucia\",\"lc\",\"1758\"],[\"Saint Pierre & Miquelon\",\"pm\",\"508\",{\"/^708/\":\"... ... ...\",\"/^8/\":\"... .. .. ..\",default:\".. .. ..\"}],[\"Saint Vincent and the Grenadines\",\"vc\",\"1784\"],[\"Samoa\",\"ws\",\"685\"],[\"San Marino\",\"sm\",\"378\"],[\"S\\xE3o Tom\\xE9 and Pr\\xEDncipe\",\"st\",\"239\"],[\"Saudi Arabia\",\"sa\",\"966\",\".. ... ....\"],[\"Senegal\",\"sn\",\"221\"],[\"Serbia\",\"rs\",\"381\"],[\"Seychelles\",\"sc\",\"248\"],[\"Sierra Leone\",\"sl\",\"232\"],[\"Singapore\",\"sg\",\"65\",\"....-....\"],[\"Slovakia\",\"sk\",\"421\"],[\"Slovenia\",\"si\",\"386\"],[\"Solomon Islands\",\"sb\",\"677\"],[\"Somalia\",\"so\",\"252\"],[\"South Africa\",\"za\",\"27\"],[\"South Korea\",\"kr\",\"82\",\"... .... ....\"],[\"South Sudan\",\"ss\",\"211\"],[\"Spain\",\"es\",\"34\",\"... ... ...\"],[\"Sri Lanka\",\"lk\",\"94\"],[\"Sudan\",\"sd\",\"249\"],[\"Suriname\",\"sr\",\"597\"],[\"Swaziland\",\"sz\",\"268\"],[\"Sweden\",\"se\",\"46\",\"... ... ...\"],[\"Switzerland\",\"ch\",\"41\",\".. ... .. ..\"],[\"Syria\",\"sy\",\"963\"],[\"Taiwan\",\"tw\",\"886\"],[\"Tajikistan\",\"tj\",\"992\"],[\"Tanzania\",\"tz\",\"255\"],[\"Thailand\",\"th\",\"66\"],[\"Timor-Leste\",\"tl\",\"670\"],[\"Togo\",\"tg\",\"228\"],[\"Tonga\",\"to\",\"676\"],[\"Trinidad and Tobago\",\"tt\",\"1868\"],[\"Tunisia\",\"tn\",\"216\"],[\"Turkey\",\"tr\",\"90\",\"... ... .. ..\"],[\"Turkmenistan\",\"tm\",\"993\"],[\"Tuvalu\",\"tv\",\"688\"],[\"Uganda\",\"ug\",\"256\"],[\"Ukraine\",\"ua\",\"380\",\"(..) ... .. ..\"],[\"United Arab Emirates\",\"ae\",\"971\",{default:\".. ... ....\",\"/^5[024568]/\":\".. ... ....\",\"/^[234679]/\":\". ... ....\"}],[\"United Kingdom\",\"gb\",\"44\",\".... ......\"],[\"United States\",\"us\",\"1\",\"(...) ...-....\",0],[\"Uruguay\",\"uy\",\"598\"],[\"Uzbekistan\",\"uz\",\"998\",\".. ... .. ..\"],[\"Vanuatu\",\"vu\",\"678\"],[\"Vatican City\",\"va\",\"39\",\".. .... ....\",1],[\"Venezuela\",\"ve\",\"58\"],[\"Vietnam\",\"vn\",\"84\"],[\"Wallis & Futuna\",\"wf\",\"681\",\".. .. ..\"],[\"Yemen\",\"ye\",\"967\"],[\"Zambia\",\"zm\",\"260\"],[\"Zimbabwe\",\"zw\",\"263\"]];var Ne=\"react-international-phone-\",de=(...t)=>t.filter(e=>!!e).join(\" \").trim(),Me=(...t)=>de(...t).split(\" \").map(e=>`${Ne}${e}`).join(\" \"),S=({addPrefix:t,rawClassNames:e})=>de(Me(...t),...e);var ce=({value:t,mask:e,maskSymbol:n,offset:s=0,trimNonMaskCharsLeftover:r=!1,allowMaskOverflow:a=!1})=>{if(t.length<s)return t;let p=t.slice(0,s),i=t.slice(s),o=e.split(\"\").filter(d=>d===n).length,u=i.slice(0,o),l=a?i.slice(o):\"\",m=p,y=0;for(let d of e.split(\"\")){if(y>=u.length){if(!r&&d!==n){m+=d;continue}break}d===n?(m+=u[y],y+=1):m+=d}return m+l};var O=t=>t?/^\\d+$/.test(t):!1;var V=t=>t.replace(/\\D/g,\"\");var pe=(t,e)=>{let n=t.style.display;n!==\"block\"&&(t.style.display=\"block\");let s=t.getBoundingClientRect(),r=e.getBoundingClientRect(),a=r.top-s.top,p=s.bottom-r.bottom;a>=0&&p>=0||(Math.abs(a)<Math.abs(p)?t.scrollTop+=a:t.scrollTop-=p),t.style.display=n};var Re=t=>{let{name:e,iso2:n,dialCode:s,format:r,priority:a,areaCodes:p}=t,i=[e,n,s,r,a,p];for(let o=0;o<i.length;o+=1){if(o===0)continue;let u=i[o-1],l=i[o];if(u===void 0&&l!==void 0){let m=JSON.stringify(i,(y,d)=>d===void 0?\"__undefined\":d).replace(/\"__undefined\"/g,\"undefined\");throw new Error(`[react-international-phone] invalid country values passed to buildCountryData. Check ${u} in: ${m}`)}}return i.filter(o=>o!==void 0)};import{useCallback as re,useEffect as xe,useMemo as $e,useRef as Fe,useState as ze}from\"react\";var me=()=>typeof window>\"u\"?!1:window.navigator.userAgent.toLowerCase().includes(\"macintosh\");var fe=({phone:t,dialCode:e,prefix:n=\"+\",charAfterDialCode:s=\" \"})=>{if(!t||!e)return t;let r=t;return r.startsWith(n)&&(r=r.replace(n,\"\")),r.startsWith(e)?(r=r.replace(e,\"\"),r.startsWith(s)&&(r=r.replace(s,\"\")),r):t};var Ce=(t,e)=>{let n=e.disableDialCodeAndPrefix?!1:e.forceDialCode,s=e.disableDialCodeAndPrefix?!1:e.insertDialCodeOnEmpty,r=t,a=u=>e.trimNonDigitsEnd?u.trim():u;if(!r)return s&&!r.length||n?a(`${e.prefix}${e.dialCode}${e.charAfterDialCode}`):a(r);if(r=V(r),r===e.dialCode&&!e.disableDialCodeAndPrefix)return a(`${e.prefix}${e.dialCode}${e.charAfterDialCode}`);if(e.dialCode.startsWith(r)&&!e.disableDialCodeAndPrefix)return a(n?`${e.prefix}${e.dialCode}${e.charAfterDialCode}`:`${e.prefix}${r}`);if(!r.startsWith(e.dialCode)&&!e.disableDialCodeAndPrefix){if(n)return a(`${e.prefix}${e.dialCode}${e.charAfterDialCode}`);if(r.length<e.dialCode.length)return a(`${e.prefix}${r}`)}let p=()=>{let u=e.dialCode.length,l=r.slice(0,u),m=r.slice(u);return{phoneLeftSide:l,phoneRightSide:m}},{phoneLeftSide:i,phoneRightSide:o}=p();return i=`${e.prefix}${i}${e.charAfterDialCode}`,o=ce({value:o,mask:e.mask,maskSymbol:e.maskChar,trimNonMaskCharsLeftover:e.trimNonDigitsEnd||e.disableDialCodeAndPrefix&&o.length===0,allowMaskOverflow:e.allowMaskOverflow}),e.disableDialCodeAndPrefix&&(i=\"\"),a(`${i}${o}`)};var he=({phoneBeforeInput:t,phoneAfterInput:e,phoneAfterFormatted:n,cursorPositionAfterInput:s,leftOffset:r=0,deletion:a})=>{if(s<r)return r;if(!t)return n.length;let p=null;for(let l=s-1;l>=0;l-=1)if(O(e[l])){p=l;break}if(p===null){for(let l=0;l<e.length;l+=1)if(O(n[l]))return l;return e.length}let i=0;for(let l=0;l<p;l+=1)O(e[l])&&(i+=1);let o=0,u=0;for(let l=0;l<n.length&&(o+=1,O(n[l])&&(u+=1),!(u>=i+1));l+=1);if(a!==\"backward\")for(;!O(n[o])&&o<n.length;)o+=1;return o};var G=({phone:t,prefix:e})=>t?`${e}${V(t)}`:\"\";function W({value:t,country:e,insertDialCodeOnEmpty:n,trimNonDigitsEnd:s,countries:r,prefix:a,charAfterDialCode:p,forceDialCode:i,disableDialCodeAndPrefix:o,defaultMask:u,countryGuessingEnabled:l,disableFormatting:m,allowMaskOverflow:y}){let d=t;o&&(d=d.startsWith(`${a}`)?d:`${a}${e.dialCode}${d}`);let w=l?ee({phone:d,countries:r,currentCountryIso2:e?.iso2}):void 0,f=w?.country??e,v=Ce(d,{prefix:a,mask:Y({phone:d,country:f,defaultMask:u,disableFormatting:m}),maskChar:J,dialCode:f.dialCode,trimNonDigitsEnd:s,charAfterDialCode:p,forceDialCode:i,insertDialCodeOnEmpty:n,disableDialCodeAndPrefix:o,allowMaskOverflow:y}),g=l&&!w?.fullDialCodeMatch?e:f;return{phone:G({phone:o?`${g.dialCode}${v}`:v,prefix:a}),inputValue:v,country:g}}var _e=t=>{if(t?.toLocaleLowerCase().includes(\"delete\")??!1)return t?.toLocaleLowerCase().includes(\"forward\")?\"forward\":\"backward\"},ye=(t,{country:e,insertDialCodeOnEmpty:n,phoneBeforeInput:s,prefix:r,charAfterDialCode:a,forceDialCode:p,disableDialCodeAndPrefix:i,countryGuessingEnabled:o,defaultMask:u,disableFormatting:l,countries:m,allowMaskOverflow:y})=>{let d=t.nativeEvent,w=d.inputType,f=_e(w),v=!!w?.startsWith(\"insertFrom\"),g=w===\"insertText\",D=d?.data||void 0,I=t.target.value,_=t.target.selectionStart??0;if(w?.includes(\"history\"))return{inputValue:s,phone:G({phone:s,prefix:r}),cursorPosition:s.length,country:e};if(g&&!O(D)&&I!==r)return{inputValue:s,phone:G({phone:i?`${e.dialCode}${s}`:s,prefix:r}),cursorPosition:_-(D?.length??0),country:e};if(p&&!I.startsWith(`${r}${e.dialCode}`)&&!v){let b=I?s:`${r}${e.dialCode}${a}`;return{inputValue:b,phone:G({phone:b,prefix:r}),cursorPosition:r.length+e.dialCode.length+a.length,country:e}}let{phone:c,inputValue:C,country:h}=W({value:I,country:e,trimNonDigitsEnd:f===\"backward\",insertDialCodeOnEmpty:n,countryGuessingEnabled:o,countries:m,prefix:r,charAfterDialCode:a,forceDialCode:p,disableDialCodeAndPrefix:i,disableFormatting:l,defaultMask:u,allowMaskOverflow:y}),P=he({cursorPositionAfterInput:_,phoneBeforeInput:s,phoneAfterInput:I,phoneAfterFormatted:C,leftOffset:p?r.length+e.dialCode.length+a.length:0,deletion:f});return{phone:c,inputValue:C,cursorPosition:P,country:h}};import{useCallback as te,useRef as ve,useState as Ee}from\"react\";var ge=(t,e)=>{let n=Object.keys(t),s=Object.keys(e);if(n.length!==s.length)return!1;for(let r of n)if(t[r]!==e[r])return!1;return!0};import{useCallback as Te,useMemo as Ae,useRef as be}from\"react\";var we=()=>{let t=be(),e=be(Date.now()),n=Te(()=>{let s=Date.now(),r=t.current?s-e.current:void 0;return t.current=e.current,e.current=s,r},[]);return Ae(()=>({check:n}),[n])};var Le={size:20,overrideLastItemDebounceMS:-1};function Pe(t,e){let{size:n,overrideLastItemDebounceMS:s,onChange:r}={...Le,...e},[a,p]=Ee(t),i=ve([a]),o=ve(0),u=we(),l=te((d,w)=>{let f=i.current[o.current];if(d===f||typeof d==\"object\"&&typeof f==\"object\"&&ge(d,f))return;let v=s>0,g=u.check(),E=v&&g!==void 0?g>s:!0;if(w?.overrideLastItem!==void 0?w.overrideLastItem:!E)i.current=[...i.current.slice(0,o.current),d];else{let I=i.current.length>=n;i.current=[...i.current.slice(I?1:0,o.current+1),d],I||(o.current+=1)}p(d),r?.(d)},[r,s,n,u]),m=te(()=>{if(o.current<=0)return{success:!1};let d=i.current[o.current-1];return p(d),o.current-=1,r?.(d),{success:!0,value:d}},[r]),y=te(()=>{if(o.current+1>=i.current.length)return{success:!1};let d=i.current[o.current+1];return p(d),o.current+=1,r?.(d),{success:!0,value:d}},[r]);return[a,l,m,y]}var J=\".\",R={defaultCountry:\"us\",value:\"\",prefix:\"+\",defaultMask:\"............\",charAfterDialCode:\" \",historySaveDebounceMS:200,disableCountryGuess:!1,disableDialCodePrefill:!1,forceDialCode:!1,disableDialCodeAndPrefix:!1,disableFormatting:!1,allowMaskOverflow:!1,countries:M,preferredCountries:[]},oe=({defaultCountry:t=R.defaultCountry,value:e=R.value,countries:n=R.countries,prefix:s=R.prefix,defaultMask:r=R.defaultMask,charAfterDialCode:a=R.charAfterDialCode,historySaveDebounceMS:p=R.historySaveDebounceMS,disableCountryGuess:i=R.disableCountryGuess,disableDialCodePrefill:o=R.disableDialCodePrefill,forceDialCode:u=R.forceDialCode,disableDialCodeAndPrefix:l=R.disableDialCodeAndPrefix,disableFormatting:m=R.disableFormatting,allowMaskOverflow:y=R.allowMaskOverflow,onChange:d,inputRef:w})=>{let g={countries:n,prefix:s,charAfterDialCode:a,forceDialCode:l?!1:u,disableDialCodeAndPrefix:l,defaultMask:r,countryGuessingEnabled:!i,disableFormatting:m,allowMaskOverflow:y},E=Fe(null),D=w||E,I=x=>{Promise.resolve().then(()=>{typeof window>\"u\"||D.current!==document?.activeElement||D.current?.setSelectionRange(x,x)})},_=re(x=>z({value:x,field:\"iso2\",countries:n}),[n]),c=re(({inputValue:x,phone:T,country:k})=>{if(!d)return;let F=_(k);d({phone:T,inputValue:x,country:F})},[_,d]),[{phone:C,inputValue:h,country:P},b,L,$]=Pe(()=>{let x=z({value:t,field:\"iso2\",countries:n});x||console.error(`[react-international-phone]: can not find a country with \"${t}\" iso2 code`);let T=x||z({value:\"us\",field:\"iso2\",countries:n}),{phone:k,inputValue:F,country:U}=W({value:e,country:T,insertDialCodeOnEmpty:!o,...g});return I(F.length),{phone:k,inputValue:F,country:U.iso2}},{overrideLastItemDebounceMS:p,onChange:c}),A=$e(()=>_(P),[P,_]);xe(()=>{let x=D.current;if(!x)return;let T=k=>{if(!k.key)return;let F=k.ctrlKey,U=k.metaKey,Ie=k.shiftKey;if(k.key.toLowerCase()===\"z\"){if(me()){if(!U)return}else if(!F)return;Ie?$():L()}};return x.addEventListener(\"keydown\",T),()=>{x.removeEventListener(\"keydown\",T)}},[D,L,$]);let K=x=>{x.preventDefault();let{phone:T,inputValue:k,country:F,cursorPosition:U}=ye(x,{country:A,phoneBeforeInput:h,insertDialCodeOnEmpty:!1,...g});return b({inputValue:k,phone:T,country:F.iso2}),I(U),e},Q=re((x,T={focusOnInput:!1})=>{let k=z({value:x,field:\"iso2\",countries:n});if(!k){console.error(`[react-international-phone]: can not find a country with \"${x}\" iso2 code`);return}let F=l?\"\":`${s}${k.dialCode}${a}`;b({inputValue:F,phone:`${s}${k.dialCode}`,country:k.iso2}),T.focusOnInput&&Promise.resolve().then(()=>{D.current?.focus()})},[n,l,s,a,b,D]),[X,j]=ze(!1);return xe(()=>{if(!X){j(!0),e!==C&&d?.({inputValue:h,phone:C,country:A});return}if(e===C)return;let{phone:x,inputValue:T,country:k}=W({value:e,country:A,insertDialCodeOnEmpty:!o,...g});b({phone:x,inputValue:T,country:k.iso2})},[e]),{phone:C,inputValue:h,country:A,setCountry:Q,handlePhoneValueChange:K,inputRef:D}};var Y=({phone:t,country:e,defaultMask:n=\"............\",disableFormatting:s=!1})=>{let r=e.format,a=i=>s?i.replace(new RegExp(`[^${J}]`,\"g\"),\"\"):i;if(!r)return a(n);if(typeof r==\"string\")return a(r);if(!r.default)return console.error(`[react-international-phone]: default mask for ${e.iso2} is not provided`),a(n);let p=Object.keys(r).find(i=>{if(i===\"default\")return!1;if(!(i.charAt(0)===\"/\"&&i.charAt(i.length-1)===\"/\"))return console.error(`[react-international-phone]: format regex \"${i}\" for ${e.iso2} is not valid`),!1;let u=new RegExp(i.substring(1,i.length-1)),l=t.replace(e.dialCode,\"\");return u.test(V(l))});return a(p?r[p]:r.default)};var N=t=>{let[e,n,s,r,a,p]=t;return{name:e,iso2:n,dialCode:s,format:r,priority:a,areaCodes:p}};var Oe=t=>`Field \"${t}\" is not supported`,z=({field:t,value:e,countries:n=M})=>{if([\"priority\"].includes(t))throw new Error(Oe(t));let s=n.find(r=>{let a=N(r);return e===a[t]});if(s)return N(s)};var ee=({phone:t,countries:e=M,currentCountryIso2:n})=>{let s={country:void 0,fullDialCodeMatch:!1};if(!t)return s;let r=V(t);if(!r)return s;let a=s,p=({country:i,fullDialCodeMatch:o})=>{let u=i.dialCode===a.country?.dialCode,l=(i.priority??0)<(a.country?.priority??0);(!u||l)&&(a={country:i,fullDialCodeMatch:o})};for(let i of e){let o=N(i),{dialCode:u,areaCodes:l}=o;if(r.startsWith(u)){let m=a.country?Number(u)>=Number(a.country.dialCode):!0;if(l){let y=r.substring(u.length);for(let d of l)if(y.startsWith(d))return{country:o,fullDialCodeMatch:!0}}(m||u===r||!a.fullDialCodeMatch)&&p({country:o,fullDialCodeMatch:!0})}a.fullDialCodeMatch||r.length<u.length&&u.startsWith(r)&&(!a.country||Number(u)<=Number(a.country.dialCode))&&p({country:o,fullDialCodeMatch:!1})}if(n){let i=z({value:n,field:\"iso2\",countries:e});if(!i)return a;let u=i?(m=>{if(!m?.areaCodes)return!1;let y=r.substring(m.dialCode.length);return m.areaCodes.some(d=>d.startsWith(y))})(i):!1;!!a&&a.country?.dialCode===i.dialCode&&a.country!==i&&a.fullDialCodeMatch&&(!i.areaCodes||u)&&(a={country:i,fullDialCodeMatch:!0})}return a};import Se from\"react\";var Ve=(t,e)=>{let n=parseInt(t,16);return Number(n+e).toString(16)},He=\"abcdefghijklmnopqrstuvwxyz\",je=\"1f1e6\",De=He.split(\"\").reduce((t,e,n)=>({...t,[e]:Ve(je,n)}),{}),Be=t=>[De[t[0]],De[t[1]]].join(\"-\"),q=({iso2:t,size:e,src:n,protocol:s=\"https\",disableLazyLoading:r,className:a,style:p,...i})=>{if(!t)return Se.createElement(\"img\",{className:S({addPrefix:[\"flag-emoji\"],rawClassNames:[a]}),width:e,height:e,...i});let o=()=>{if(n)return n;let u=Be(t);return`${s}://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/${u}.svg`};return Se.createElement(\"img\",{className:S({addPrefix:[\"flag-emoji\"],rawClassNames:[a]}),src:o(),width:e,height:e,draggable:!1,\"data-country\":t,loading:r?void 0:\"lazy\",style:{width:e,height:e,...p},alt:\"\",...i})};import H,{useCallback as ne,useEffect as ae,useMemo as Ge,useRef as ie,useState as Ke}from\"react\";var Ue=1e3,se=({show:t,dialCodePrefix:e=\"+\",selectedCountry:n,countries:s=M,preferredCountries:r=[],flags:a,onSelect:p,onClose:i,...o})=>{let u=ie(null),l=ie(),m=Ge(()=>{if(!r||!r.length)return s;let c=[],C=[...s];for(let h of r){let P=C.findIndex(b=>N(b).iso2===h);if(P!==-1){let b=C.splice(P,1)[0];c.push(b)}}return c.concat(C)},[s,r]),y=ie({updatedAt:void 0,value:\"\"}),d=c=>{let C=y.current.updatedAt&&new Date().getTime()-y.current.updatedAt.getTime()>Ue;y.current={value:C?c:`${y.current.value}${c}`,updatedAt:new Date};let h=m.findIndex(P=>N(P).name.toLowerCase().startsWith(y.current.value));h!==-1&&v(h)},w=ne(c=>m.findIndex(C=>N(C).iso2===c),[m]),[f,v]=Ke(w(n)),g=()=>{l.current!==n&&v(w(n))},E=ne(c=>{v(w(c.iso2)),p?.(c)},[p,w]),D=c=>{let C=m.length-1,h=P=>c===\"prev\"?P-1:c===\"next\"?P+1:c===\"last\"?C:0;v(P=>{let b=h(P);return b<0?0:b>C?C:b})},I=c=>{if(c.stopPropagation(),c.key===\"Enter\"){c.preventDefault();let C=N(m[f]);E(C);return}if(c.key===\"Escape\"){i?.();return}if(c.key===\"ArrowUp\"){c.preventDefault(),D(\"prev\");return}if(c.key===\"ArrowDown\"){c.preventDefault(),D(\"next\");return}if(c.key===\"PageUp\"){c.preventDefault(),D(\"first\");return}if(c.key===\"PageDown\"){c.preventDefault(),D(\"last\");return}c.key===\" \"&&c.preventDefault(),c.key.length===1&&!c.altKey&&!c.ctrlKey&&!c.metaKey&&d(c.key.toLocaleLowerCase())},_=ne(()=>{if(!u.current||f===void 0)return;let c=N(m[f]).iso2;if(c===l.current)return;let C=u.current.querySelector(`[data-country=\"${c}\"]`);C&&(pe(u.current,C),l.current=c)},[f,m]);return ae(()=>{_()},[f,_]),ae(()=>{u.current&&(t?u.current.focus():g())},[t]),ae(()=>{g()},[n]),H.createElement(\"ul\",{ref:u,role:\"listbox\",className:S({addPrefix:[\"country-selector-dropdown\"],rawClassNames:[o.className]}),style:{display:t?\"block\":\"none\",...o.style},onKeyDown:I,onBlur:i,tabIndex:-1,\"aria-activedescendant\":`react-international-phone__${N(m[f]).iso2}-option`},m.map((c,C)=>{let h=N(c),P=h.iso2===n,b=C===f,L=r.includes(h.iso2),$=C===r.length-1,A=a?.find(K=>K.iso2===h.iso2);return H.createElement(H.Fragment,{key:h.iso2},H.createElement(\"li\",{\"data-country\":h.iso2,role:\"option\",\"aria-selected\":P,\"aria-label\":`${h.name} ${e}${h.dialCode}`,id:`react-international-phone__${h.iso2}-option`,className:S({addPrefix:[\"country-selector-dropdown__list-item\",L&&\"country-selector-dropdown__list-item--preferred\",P&&\"country-selector-dropdown__list-item--selected\",b&&\"country-selector-dropdown__list-item--focused\"],rawClassNames:[o.listItemClassName,L&&o.listItemPreferredClassName,P&&o.listItemSelectedClassName,b&&o.listItemFocusedClassName]}),onClick:()=>E(h),style:o.listItemStyle,title:h.name},H.createElement(q,{iso2:h.iso2,src:A?.src,className:S({addPrefix:[\"country-selector-dropdown__list-item-flag-emoji\"],rawClassNames:[o.listItemFlagClassName]}),style:o.listItemFlagStyle}),H.createElement(\"span\",{className:S({addPrefix:[\"country-selector-dropdown__list-item-country-name\"],rawClassNames:[o.listItemCountryNameClassName]}),style:o.listItemCountryNameStyle},h.name),H.createElement(\"span\",{className:S({addPrefix:[\"country-selector-dropdown__list-item-dial-code\"],rawClassNames:[o.listItemDialCodeClassName]}),style:o.listItemDialCodeStyle},e,h.dialCode)),$?H.createElement(\"hr\",{className:S({addPrefix:[\"country-selector-dropdown__preferred-list-divider\"],rawClassNames:[o.preferredListDividerClassName]}),style:o.preferredListDividerStyle}):null)}))};var le=B.memo(({selectedCountry:t,onSelect:e,disabled:n,hideDropdown:s,countries:r=M,preferredCountries:a=[],flags:p,renderButtonWrapper:i,...o})=>{let[u,l]=Je(!1),m=We(()=>{if(t)return z({value:t,field:\"iso2\",countries:r})},[r,t]),y=qe(null),d=f=>{f.key&&[\"ArrowUp\",\"ArrowDown\"].includes(f.key)&&(f.preventDefault(),l(!0))},w=()=>{let f={title:m?.name,onClick:()=>l(g=>!g),onMouseDown:g=>g.preventDefault(),onKeyDown:d,disabled:s||n,role:\"combobox\",\"aria-label\":\"Country selector\",\"aria-haspopup\":\"listbox\",\"aria-expanded\":u},v=B.createElement(\"div\",{className:S({addPrefix:[\"country-selector-button__button-content\"],rawClassNames:[o.buttonContentWrapperClassName]}),style:o.buttonContentWrapperStyle},B.createElement(q,{iso2:t,src:p?.find(g=>g.iso2===t)?.src,className:S({addPrefix:[\"country-selector-button__flag-emoji\",n&&\"country-selector-button__flag-emoji--disabled\"],rawClassNames:[o.flagClassName]}),style:{visibility:t?\"visible\":\"hidden\",...o.flagStyle}}),!s&&B.createElement(\"div\",{className:S({addPrefix:[\"country-selector-button__dropdown-arrow\",n&&\"country-selector-button__dropdown-arrow--disabled\",u&&\"country-selector-button__dropdown-arrow--active\"],rawClassNames:[o.dropdownArrowClassName]}),style:o.dropdownArrowStyle}));return i?i({children:v,rootProps:f}):B.createElement(\"button\",{...f,type:\"button\",className:S({addPrefix:[\"country-selector-button\",u&&\"country-selector-button--active\",n&&\"country-selector-button--disabled\",s&&\"country-selector-button--hide-dropdown\"],rawClassNames:[o.buttonClassName]}),\"data-country\":t,style:o.buttonStyle},v)};return B.createElement(\"div\",{className:S({addPrefix:[\"country-selector\"],rawClassNames:[o.className]}),style:o.style,ref:y},w(),B.createElement(se,{show:u,countries:r,preferredCountries:a,flags:p,onSelect:f=>{l(!1),e?.(f)},selectedCountry:t,onClose:()=>{l(!1)},...o.dropdownStyleProps}))});import Ze from\"react\";var ue=({dialCode:t,prefix:e,disabled:n,style:s,className:r})=>Ze.createElement(\"div\",{className:S({addPrefix:[\"dial-code-preview\",n&&\"dial-code-preview--disabled\"],rawClassNames:[r]}),style:s},`${e}${t}`);import Z,{forwardRef as Qe,useCallback as ke,useImperativeHandle as Xe}from\"react\";var Ye=Qe(({value:t,onChange:e,countries:n=M,preferredCountries:s,hideDropdown:r,showDisabledDialCodeAndPrefix:a,disableFocusAfterCountrySelect:p,flags:i,style:o,className:u,inputStyle:l,inputClassName:m,countrySelectorStyleProps:y,dialCodePreviewStyleProps:d,inputProps:w,placeholder:f,disabled:v,name:g,onFocus:E,onBlur:D,required:I,autoFocus:_,...c},C)=>{let h=ke(j=>{e?.(j.phone,{country:j.country,inputValue:j.inputValue})},[e]),{phone:P,inputValue:b,inputRef:L,country:$,setCountry:A,handlePhoneValueChange:K}=oe({value:t,countries:n,...c,onChange:h}),Q=c.disableDialCodeAndPrefix&&a&&$?.dialCode,X=ke(j=>{A(j.iso2,{focusOnInput:!p})},[A,p]);return Xe(C,()=>L.current?Object.assign(L.current,{setCountry:A,state:{phone:P,inputValue:b,country:$}}):null,[L,A,P,b,$]),Z.createElement(\"div\",{ref:C,className:S({addPrefix:[\"input-container\"],rawClassNames:[u]}),style:o},Z.createElement(le,{onSelect:X,flags:i,selectedCountry:$?.iso2,countries:n,preferredCountries:s,disabled:v,hideDropdown:r,...y}),Q&&Z.createElement(ue,{dialCode:$.dialCode,prefix:c.prefix??\"+\",disabled:v,...d}),Z.createElement(\"input\",{onChange:K,value:b,type:\"tel\",ref:L,className:S({addPrefix:[\"input\",v&&\"input--disabled\"],rawClassNames:[m]}),placeholder:f,disabled:v,style:l,name:g,onFocus:E,onBlur:D,autoFocus:_,required:I,...w}))});export{le as CountrySelector,se as CountrySelectorDropdown,ue as DialCodePreview,q as FlagImage,Ye as PhoneInput,Re as buildCountryData,M as defaultCountries,Y as getActiveFormattingMask,z as getCountry,ee as guessCountryByPartialPhoneNumber,N as parseCountry,fe as removeDialCode,oe as usePhoneInput};\n","/**\n * Vanilla emoji-flag + dial-code picker for VTBA form tel fields.\n *\n * Framework-agnostic: this is the single source of truth for the phone flag\n * picker. It is used two ways:\n * 1. In AEM (server-rendered HTL) via the ac-react-app form runtime, which\n * calls {@link initTelPickers} on DOM-ready.\n * 2. In Storybook via the React {@link ../LsgFormFieldTel} component, which\n * calls it from a `useEffect`.\n *\n * It enhances `.cmp-vtba-form__field--tel input[type=\"tel\"]` with a country\n * toggle (Unicode emoji flag + dial code) and a searchable dropdown. Emoji flags\n * mean no image assets to ship. Country/dial-code data is reused from\n * `react-international-phone` (data only — no React needed at runtime here).\n *\n * DOM strategy (so it is safe inside React too): if the input already sits in a\n * `.cmp-vtba-tel` wrapper (React renders one), the picker only *appends* the\n * toggle + dropdown and never moves the React-managed input. Otherwise (plain\n * AEM markup) it creates the wrapper and moves the input in.\n *\n * On submit, the field value is the full international number\n * (`+<dialCode><nationalDigits>`) via {@link getTelValue}.\n */\nimport { defaultCountries } from \"react-international-phone\";\nimport \"./telPicker.scss\";\n\ninterface TelCountry {\n name: string;\n iso2: string;\n dialCode: string;\n}\n\n/** `defaultCountries` items are tuples `[name, iso2, dialCode, format?, ...]`. */\nconst COUNTRIES: TelCountry[] = (defaultCountries as unknown[])\n .map((c) => {\n const t = c as string[];\n return { name: t[0], iso2: t[1], dialCode: t[2] };\n })\n .filter((c: TelCountry) => !!c.iso2 && !!c.dialCode);\n\nconst DEFAULT_ISO2 = \"gb\";\n\n/** Converts an ISO-2 country code to its Unicode regional-indicator flag emoji. */\nfunction flagEmoji(iso2: string): string {\n return iso2\n .toUpperCase()\n .replace(/[A-Z]/g, (ch) => String.fromCodePoint(0x1f1e6 + ch.charCodeAt(0) - 65));\n}\n\nfunction findCountry(iso2: string): TelCountry | undefined {\n const target = (iso2 || \"\").toLowerCase();\n for (let i = 0; i < COUNTRIES.length; i++) {\n if (COUNTRIES[i].iso2 === target) {\n return COUNTRIES[i];\n }\n }\n return undefined;\n}\n\n/**\n * Enhances every tel field under {@code root} (or {@code root} itself when it is\n * a tel field). Idempotent per input. Works whether {@code root} is the whole\n * form (AEM) or a single field element (React component).\n */\nexport function initTelPickers(root: ParentNode | null): void {\n if (!root) {\n return;\n }\n const inputs = root.querySelectorAll(\"input[type='tel']\");\n for (let i = 0; i < inputs.length; i++) {\n const input = inputs[i] as HTMLInputElement;\n if (input.closest(\".cmp-vtba-form__field--tel\")) {\n enhance(input);\n }\n }\n}\n\n/**\n * Full international number for a picker-enhanced tel input:\n * `+<dialCode><nationalDigits>`. Falls back to the raw value if not enhanced.\n */\nexport function getTelValue(input: HTMLInputElement): string {\n const dial = input.getAttribute(\"data-dial-code\");\n if (!dial) {\n return input.value;\n }\n const national = (input.value || \"\").replace(/\\D/g, \"\");\n return national ? \"+\" + dial + national : \"\";\n}\n\nfunction enhance(input: HTMLInputElement): void {\n if (input.getAttribute(\"data-tel-picker\") === \"true\" || !input.parentElement) {\n return;\n }\n input.setAttribute(\"data-tel-picker\", \"true\");\n\n const initialIso2 = (input.getAttribute(\"data-country\") || DEFAULT_ISO2).toLowerCase();\n let selected = findCountry(initialIso2) || findCountry(DEFAULT_ISO2) || COUNTRIES[0];\n\n // Reuse a pre-rendered wrapper (React) — append-only, never move the input.\n // Otherwise create the wrapper and move the input (plain vanilla markup).\n let wrapper: HTMLElement;\n if (input.parentElement.classList.contains(\"cmp-vtba-tel\")) {\n wrapper = input.parentElement;\n } else {\n wrapper = document.createElement(\"div\");\n wrapper.className = \"cmp-vtba-tel\";\n input.parentElement.insertBefore(wrapper, input);\n wrapper.appendChild(input);\n }\n\n const toggle = document.createElement(\"button\");\n toggle.type = \"button\";\n toggle.className = \"cmp-vtba-tel__toggle\";\n toggle.setAttribute(\"aria-haspopup\", \"listbox\");\n toggle.setAttribute(\"aria-expanded\", \"false\");\n\n const dropdown = document.createElement(\"div\");\n dropdown.className = \"cmp-vtba-tel__dropdown\";\n dropdown.hidden = true;\n\n const search = document.createElement(\"input\");\n search.type = \"text\";\n search.className = \"cmp-vtba-tel__search\";\n search.placeholder = \"Search\";\n search.setAttribute(\"aria-label\", \"Search countries\");\n\n const list = document.createElement(\"ul\");\n list.className = \"cmp-vtba-tel__list\";\n list.setAttribute(\"role\", \"listbox\");\n\n dropdown.appendChild(search);\n dropdown.appendChild(list);\n\n // Toggle goes before the input; dropdown after — both inside the wrapper.\n wrapper.insertBefore(toggle, input);\n wrapper.appendChild(dropdown);\n\n function applySelected(country: TelCountry): void {\n selected = country;\n input.setAttribute(\"data-dial-code\", country.dialCode);\n input.setAttribute(\"data-iso2\", country.iso2);\n toggle.textContent = \"\";\n const flag = document.createElement(\"span\");\n flag.className = \"cmp-vtba-tel__flag\";\n flag.setAttribute(\"aria-hidden\", \"true\");\n flag.textContent = flagEmoji(country.iso2);\n const code = document.createElement(\"span\");\n code.className = \"cmp-vtba-tel__code\";\n code.textContent = \"+\" + country.dialCode;\n toggle.appendChild(flag);\n toggle.appendChild(code);\n toggle.setAttribute(\n \"aria-label\",\n \"Country calling code: \" + country.name + \" +\" + country.dialCode\n );\n }\n\n function renderList(filter: string): void {\n list.textContent = \"\";\n const f = filter.trim().toLowerCase();\n const digits = f.replace(/[^0-9]/g, \"\");\n for (let i = 0; i < COUNTRIES.length; i++) {\n const c = COUNTRIES[i];\n const match =\n !f ||\n c.name.toLowerCase().indexOf(f) !== -1 ||\n c.iso2 === f ||\n (!!digits && c.dialCode.indexOf(digits) === 0);\n if (!match) {\n continue;\n }\n const li = document.createElement(\"li\");\n li.className = \"cmp-vtba-tel__option\";\n li.setAttribute(\"role\", \"option\");\n li.tabIndex = -1;\n li.setAttribute(\"data-iso2\", c.iso2);\n li.setAttribute(\"aria-selected\", c.iso2 === selected.iso2 ? \"true\" : \"false\");\n li.textContent = flagEmoji(c.iso2) + \" \" + c.name + \" +\" + c.dialCode;\n li.addEventListener(\"click\", () => {\n applySelected(c);\n close();\n input.focus();\n });\n list.appendChild(li);\n }\n }\n\n function open(): void {\n dropdown.hidden = false;\n toggle.setAttribute(\"aria-expanded\", \"true\");\n search.value = \"\";\n renderList(\"\");\n search.focus();\n }\n function close(): void {\n dropdown.hidden = true;\n toggle.setAttribute(\"aria-expanded\", \"false\");\n }\n\n toggle.addEventListener(\"click\", () => {\n if (dropdown.hidden) {\n open();\n } else {\n close();\n }\n });\n\n search.addEventListener(\"input\", () => renderList(search.value));\n search.addEventListener(\"keydown\", (e) => {\n if (e.key === \"Escape\") {\n close();\n toggle.focus();\n } else if (e.key === \"ArrowDown\") {\n e.preventDefault();\n const first = list.querySelector(\".cmp-vtba-tel__option\") as HTMLElement | null;\n if (first) {\n first.focus();\n }\n }\n });\n\n list.addEventListener(\"keydown\", (e) => {\n const opts = Array.prototype.slice.call(\n list.querySelectorAll(\".cmp-vtba-tel__option\")\n ) as HTMLElement[];\n const idx = opts.indexOf(document.activeElement as HTMLElement);\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n (opts[idx + 1] || opts[0]).focus();\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n if (idx <= 0) {\n search.focus();\n } else {\n opts[idx - 1].focus();\n }\n } else if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n const iso2 = (document.activeElement as HTMLElement).getAttribute(\"data-iso2\");\n const c = iso2 ? findCountry(iso2) : undefined;\n if (c) {\n applySelected(c);\n close();\n input.focus();\n }\n } else if (e.key === \"Escape\") {\n close();\n toggle.focus();\n }\n });\n\n document.addEventListener(\"click\", (e) => {\n if (!wrapper.contains(e.target as Node)) {\n close();\n }\n });\n\n applySelected(selected);\n}\n","import React, { useEffect, useRef } from \"react\";\nimport \"./LsgFormFieldTel.scss\";\nimport { initTelPickers } from \"../telPicker\";\n\nexport interface LsgFormFieldTelProps {\n id?: string;\n label: string;\n helpText?: string;\n placeholder?: string;\n defaultValue?: string;\n required?: boolean;\n disabled?: boolean;\n error?: string;\n minLength?: number;\n maxLength?: number;\n pattern?: string;\n name?: string;\n /** ISO-2 country to preselect in the flag picker (e.g. \"gb\", \"us\"). */\n defaultCountry?: string;\n}\n\nexport const LsgFormFieldTel: React.FC<LsgFormFieldTelProps> = ({\n id = \"field-tel\",\n label,\n helpText,\n placeholder,\n defaultValue = \"\",\n required = false,\n disabled = false,\n error,\n minLength,\n maxLength,\n pattern,\n name,\n defaultCountry,\n}) => {\n const fieldRef = useRef<HTMLDivElement>(null);\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy =\n [helpId, error ? errorId : undefined].filter(Boolean).join(\" \") || undefined;\n\n // Enhance the tel input with the shared emoji-flag + dial-code picker.\n // The input is pre-wrapped in `.cmp-vtba-tel`, so the picker appends its\n // toggle/dropdown without moving the React-managed input.\n useEffect(() => {\n initTelPickers(fieldRef.current);\n }, []);\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--tel\" ref={fieldRef}>\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <span className=\"cmp-vtba-tel\">\n <input\n type=\"tel\"\n className=\"cmp-vtba-form__input\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n placeholder={placeholder}\n autoComplete=\"tel\"\n minLength={minLength}\n maxLength={maxLength}\n pattern={pattern}\n data-country={defaultCountry}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n />\n </span>\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldSelect.scss\";\n\nexport interface LsgFormSelectOption {\n value: string;\n label: string;\n}\n\nexport interface LsgFormFieldSelectProps {\n id?: string;\n label: string;\n helpText?: string;\n placeholder?: string;\n defaultValue?: string;\n options?: LsgFormSelectOption[];\n required?: boolean;\n disabled?: boolean;\n error?: string;\n name?: string;\n}\n\nexport const LsgFormFieldSelect: React.FC<LsgFormFieldSelectProps> = ({\n id = \"field-select\",\n label,\n helpText,\n placeholder = \"Please select\",\n defaultValue = \"\",\n options = [],\n required = false,\n disabled = false,\n error,\n name,\n}) => {\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy = [helpId, error ? errorId : undefined]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--select\">\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <div className=\"cmp-vtba-form__select-wrapper\">\n <select\n className=\"cmp-vtba-form__select\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n >\n <option value=\"\">{placeholder}</option>\n {options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n </div>\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldCountry.scss\";\n\nexport interface LsgFormFieldCountryOption {\n value: string;\n label: string;\n}\n\nexport interface LsgFormFieldCountryProps {\n id?: string;\n label: string;\n helpText?: string;\n defaultValue?: string;\n /** Fixture list; in AEM this is populated from /bin/vtba/country-list.json at runtime */\n countries?: LsgFormFieldCountryOption[];\n required?: boolean;\n disabled?: boolean;\n error?: string;\n name?: string;\n}\n\nconst COUNTRY_FIXTURE: LsgFormFieldCountryOption[] = [\n { value: \"us\", label: \"United States\" },\n { value: \"gb\", label: \"United Kingdom\" },\n { value: \"de\", label: \"Germany\" },\n { value: \"fr\", label: \"France\" },\n { value: \"se\", label: \"Sweden\" },\n { value: \"jp\", label: \"Japan\" },\n { value: \"cn\", label: \"China\" },\n { value: \"in\", label: \"India\" },\n { value: \"br\", label: \"Brazil\" },\n { value: \"au\", label: \"Australia\" },\n];\n\nexport const LsgFormFieldCountry: React.FC<LsgFormFieldCountryProps> = ({\n id = \"field-country\",\n label,\n helpText,\n defaultValue = \"\",\n countries = COUNTRY_FIXTURE,\n required = false,\n disabled = false,\n error,\n name,\n}) => {\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy = [helpId, error ? errorId : undefined]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--country\">\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <div className=\"cmp-vtba-form__select-wrapper\">\n <select\n className=\"cmp-vtba-form__select\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n data-country-list=\"true\"\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n >\n <option value=\"\">Select a country</option>\n {countries.map((c) => (\n <option key={c.value} value={c.value}>\n {c.label}\n </option>\n ))}\n </select>\n </div>\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldTextarea.scss\";\n\nexport interface LsgFormFieldTextareaProps {\n id?: string;\n label: string;\n helpText?: string;\n placeholder?: string;\n defaultValue?: string;\n required?: boolean;\n disabled?: boolean;\n error?: string;\n autocomplete?: string;\n maxLength?: number;\n rows?: number;\n name?: string;\n}\n\nexport const LsgFormFieldTextarea: React.FC<LsgFormFieldTextareaProps> = ({\n id = \"field-textarea\",\n label,\n helpText,\n placeholder,\n defaultValue = \"\",\n required = false,\n disabled = false,\n error,\n autocomplete,\n maxLength,\n rows = 4,\n name,\n}) => {\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy = [helpId, error ? errorId : undefined]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--textarea\">\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <textarea\n className=\"cmp-vtba-form__textarea\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n placeholder={placeholder}\n autoComplete={autocomplete}\n maxLength={maxLength}\n rows={rows}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n />\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldConsent.scss\";\n\nexport interface LsgFormFieldConsentProps {\n id?: string;\n /** Consent label — may contain inline HTML (use dangerouslySetInnerHTML) */\n label: string;\n required?: boolean;\n disabled?: boolean;\n error?: string;\n name?: string;\n}\n\nexport const LsgFormFieldConsent: React.FC<LsgFormFieldConsentProps> = ({\n id = \"field-consent\",\n label,\n required = false,\n disabled = false,\n error,\n name,\n}) => {\n const errorId = `${id}-error`;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--consent\">\n <div className=\"cmp-vtba-form__consent\">\n <input\n type=\"checkbox\"\n className=\"cmp-vtba-form__checkbox\"\n id={id}\n name={name}\n value=\"true\"\n data-consent=\"\"\n aria-describedby={error ? errorId : undefined}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n />\n {/* eslint-disable-next-line react/no-danger -- mirrors AEM rich-text label output */}\n <label\n className=\"cmp-vtba-form__consent-label\"\n htmlFor={id}\n dangerouslySetInnerHTML={{ __html: label }}\n />\n </div>\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormStep.scss\";\n\nexport interface LsgFormStepProps {\n title?: string;\n description?: string;\n children?: React.ReactNode;\n /** Matches data-step-id on the AEM fieldset */\n stepId?: string;\n}\n\nexport const LsgFormStep: React.FC<LsgFormStepProps> = ({\n title,\n description,\n children,\n stepId,\n}) => (\n <fieldset\n className=\"cmp-vtba-form__step\"\n data-form-step=\"\"\n data-step-id={stepId}\n >\n {title && <legend className=\"cmp-vtba-form__step-legend\">{title}</legend>}\n {description && (\n <p className=\"cmp-vtba-form__step-description\">{description}</p>\n )}\n <div className=\"cmp-vtba-form__fields\">{children}</div>\n </fieldset>\n);\n","import React from \"react\";\nimport \"./LsgFormContainer.scss\";\n\nexport interface LsgFormContainerProps {\n title?: string;\n /** Multi-step mode shows the progress indicator */\n multiStep?: boolean;\n /** 1-based index of the active step */\n currentStep?: number;\n steps?: string[];\n children?: React.ReactNode;\n /** Shows the form-level error banner */\n formError?: string;\n /** Shows the success message and hides the form */\n successMessage?: string;\n}\n\nexport const LsgFormContainer: React.FC<LsgFormContainerProps> = ({\n title,\n multiStep = false,\n currentStep = 1,\n steps = [],\n children,\n formError,\n successMessage,\n}) => (\n <div className=\"cmp-vtba-form\" data-vtba-form=\"\">\n <form\n className=\"cmp-vtba-form__form\"\n method=\"post\"\n noValidate\n aria-label={title}\n >\n {title && <h2 className=\"cmp-vtba-form__title\">{title}</h2>}\n\n {multiStep && steps.length > 0 && (\n <nav className=\"cmp-vtba-form__progress\" aria-label=\"Form progress\">\n <ol className=\"cmp-vtba-form__progress-list\">\n {steps.map((stepTitle, i) => (\n <li\n key={i}\n className=\"cmp-vtba-form__progress-step\"\n data-step-index={i}\n aria-current={i + 1 === currentStep ? \"step\" : undefined}\n >\n <span className=\"cmp-vtba-form__progress-number\">{i + 1}</span>\n <span className=\"cmp-vtba-form__progress-title\">{stepTitle}</span>\n </li>\n ))}\n </ol>\n </nav>\n )}\n\n <div className=\"cmp-vtba-form__steps\">{children}</div>\n\n <div className=\"cmp-vtba-form__actions\">\n {multiStep && (\n <button type=\"button\" className=\"cmp-vtba-form__prev\" data-form-prev=\"\" hidden={currentStep <= 1}>\n Back\n </button>\n )}\n {multiStep && currentStep < (steps.length || 1) ? (\n <button type=\"button\" className=\"cmp-vtba-form__next lsg-button lsg-button--primary\" data-form-next=\"\">\n Continue\n </button>\n ) : (\n <button type=\"submit\" className=\"cmp-vtba-form__submit lsg-button lsg-button--primary\" data-form-submit=\"\">\n Submit\n </button>\n )}\n </div>\n\n {formError && (\n <p className=\"cmp-vtba-form__error\" role=\"alert\" aria-live=\"assertive\">\n {formError}\n </p>\n )}\n\n {successMessage && (\n <div className=\"cmp-vtba-form__success\" role=\"status\" aria-live=\"polite\">\n {successMessage}\n </div>\n )}\n </form>\n </div>\n);\n","import React from \"react\";\nimport \"./LsgFormPolicyNotice.scss\";\n\nexport interface LsgFormPolicyNoticeProps {\n /** HTML content from AEM rich-text editor */\n text: string;\n /** AEM style policy — adds cmp-text--policy-notice-icon modifier */\n policyNoticeIcon?: boolean;\n}\n\nexport const LsgFormPolicyNotice: React.FC<LsgFormPolicyNoticeProps> = ({\n text,\n policyNoticeIcon = false,\n}) => (\n <div\n className={[\n \"cmp-text\",\n policyNoticeIcon ? \"cmp-text--policy-notice-icon\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n // eslint-disable-next-line react/no-danger -- mirrors AEM rich-text output\n dangerouslySetInnerHTML={{ __html: text }}\n />\n);\n","import React from \"react\";\n\nimport {\n LsgBanner,\n LsgBreadcrumb,\n LsgButton,\n LsgCard,\n LsgCards,\n LsgCarousel,\n LsgFooter,\n LsgFormContainer,\n LsgFormFieldConsent,\n LsgFormFieldCountry,\n LsgFormFieldEmail,\n LsgFormFieldSelect,\n LsgFormFieldTel,\n LsgFormFieldText,\n LsgFormFieldTextarea,\n LsgFormPolicyNotice,\n LsgFormStep,\n LsgHeader,\n LsgHero,\n LsgTabs,\n LsgTable,\n LsgLanguageSwitcher,\n LsgLogo,\n LsgNavigation,\n LsgQuickLinks,\n LsgSearchOverlay,\n LsgSearchTrigger,\n LsgSocialMediaIcons,\n} from \"../components/lsg\";\n\nconst BASE_COMPONENTS = {\n LsgButton,\n LsgBanner,\n LsgCarousel,\n LsgCard,\n LsgCards,\n LsgBreadcrumb,\n LsgLogo,\n LsgNavigation,\n LsgLanguageSwitcher,\n LsgSearchTrigger,\n LsgSearchOverlay,\n LsgHeader,\n LsgQuickLinks,\n LsgSocialMediaIcons,\n LsgFooter,\n LsgHero,\n LsgTabs,\n LsgTable,\n LsgFormContainer,\n LsgFormFieldText,\n LsgFormFieldEmail,\n LsgFormFieldTel,\n LsgFormFieldSelect,\n LsgFormFieldCountry,\n LsgFormFieldTextarea,\n LsgFormFieldConsent,\n LsgFormPolicyNotice,\n LsgFormStep,\n} as const;\n\ntype BaseComponents = typeof BASE_COMPONENTS;\n\nfunction createThemeComponent<Props extends object>(\n themeName: string,\n componentName: string,\n Component: React.ComponentType<Props>,\n): React.FC<Props> {\n const WrappedComponent: React.FC<Props> = (props) => (\n <div\n className={[\n \"lsg-themed-component\",\n `lsg-themed-component--${themeName}`,\n `lsg-themed-component--${componentName}`,\n ].join(\" \")}\n >\n <Component {...props} />\n </div>\n );\n\n WrappedComponent.displayName = `${themeName}-${componentName}`;\n\n return WrappedComponent;\n}\n\nexport function createThemeComponents(themeName: string): BaseComponents {\n return {\n LsgButton: createThemeComponent(themeName, \"button\", BASE_COMPONENTS.LsgButton),\n LsgBanner: createThemeComponent(themeName, \"banner\", BASE_COMPONENTS.LsgBanner),\n LsgCarousel: createThemeComponent(themeName, \"carousel\", BASE_COMPONENTS.LsgCarousel),\n LsgCard: createThemeComponent(themeName, \"card\", BASE_COMPONENTS.LsgCard),\n LsgCards: createThemeComponent(themeName, \"cards\", BASE_COMPONENTS.LsgCards),\n LsgBreadcrumb: createThemeComponent(themeName, \"breadcrumb\", BASE_COMPONENTS.LsgBreadcrumb),\n LsgLogo: createThemeComponent(themeName, \"logo\", BASE_COMPONENTS.LsgLogo),\n LsgNavigation: createThemeComponent(themeName, \"navigation\", BASE_COMPONENTS.LsgNavigation),\n LsgLanguageSwitcher: createThemeComponent(\n themeName,\n \"language-switcher\",\n BASE_COMPONENTS.LsgLanguageSwitcher,\n ),\n LsgSearchTrigger: createThemeComponent(\n themeName,\n \"search-trigger\",\n BASE_COMPONENTS.LsgSearchTrigger,\n ),\n LsgSearchOverlay: createThemeComponent(\n themeName,\n \"search-overlay\",\n BASE_COMPONENTS.LsgSearchOverlay,\n ),\n LsgHeader: createThemeComponent(themeName, \"header\", BASE_COMPONENTS.LsgHeader),\n LsgQuickLinks: createThemeComponent(themeName, \"quick-links\", BASE_COMPONENTS.LsgQuickLinks),\n LsgSocialMediaIcons: createThemeComponent(\n themeName,\n \"social-media-icons\",\n BASE_COMPONENTS.LsgSocialMediaIcons,\n ),\n LsgFooter: createThemeComponent(themeName, \"footer\", BASE_COMPONENTS.LsgFooter),\n LsgHero: createThemeComponent(themeName, \"hero\", BASE_COMPONENTS.LsgHero),\n LsgFormContainer: createThemeComponent(themeName, \"form-container\", BASE_COMPONENTS.LsgFormContainer),\n LsgFormFieldText: createThemeComponent(themeName, \"form-field-text\", BASE_COMPONENTS.LsgFormFieldText),\n LsgFormFieldEmail: createThemeComponent(themeName, \"form-field-email\", BASE_COMPONENTS.LsgFormFieldEmail),\n LsgFormFieldTel: createThemeComponent(themeName, \"form-field-tel\", BASE_COMPONENTS.LsgFormFieldTel),\n LsgFormFieldSelect: createThemeComponent(themeName, \"form-field-select\", BASE_COMPONENTS.LsgFormFieldSelect),\n LsgFormFieldCountry: createThemeComponent(themeName, \"form-field-country\", BASE_COMPONENTS.LsgFormFieldCountry),\n LsgFormFieldTextarea: createThemeComponent(themeName, \"form-field-textarea\", BASE_COMPONENTS.LsgFormFieldTextarea),\n LsgFormFieldConsent: createThemeComponent(themeName, \"form-field-consent\", BASE_COMPONENTS.LsgFormFieldConsent),\n LsgFormPolicyNotice: createThemeComponent(themeName, \"form-policy-notice\", BASE_COMPONENTS.LsgFormPolicyNotice),\n LsgFormStep: createThemeComponent(themeName, \"form-step\", BASE_COMPONENTS.LsgFormStep),\n LsgTabs: createThemeComponent(themeName, \"tabs\", BASE_COMPONENTS.LsgTabs),\n LsgTable: createThemeComponent(themeName, \"table\", BASE_COMPONENTS.LsgTable),\n };\n}\n","import { createThemeComponents } from \"../createThemeComponents\";\n\nexport const theme1Components = createThemeComponents(\"theme-1\");\n\nexport const {\n LsgButton: Theme1LsgButton,\n LsgBanner: Theme1LsgBanner,\n LsgCarousel: Theme1LsgCarousel,\n LsgCard: Theme1LsgCard,\n LsgCards: Theme1LsgCards,\n LsgBreadcrumb: Theme1LsgBreadcrumb,\n LsgLogo: Theme1LsgLogo,\n LsgNavigation: Theme1LsgNavigation,\n LsgLanguageSwitcher: Theme1LsgLanguageSwitcher,\n LsgSearchTrigger: Theme1LsgSearchTrigger,\n LsgSearchOverlay: Theme1LsgSearchOverlay,\n LsgHeader: Theme1LsgHeader,\n LsgQuickLinks: Theme1LsgQuickLinks,\n LsgSocialMediaIcons: Theme1LsgSocialMediaIcons,\n LsgFooter: Theme1LsgFooter,\n LsgHero: Theme1LsgHero,\n LsgTabs: Theme1LsgTabs,\n LsgTable: Theme1LsgTable,\n // Form components\n LsgFormContainer: Theme1LsgFormContainer,\n LsgFormFieldText: Theme1LsgFormFieldText,\n LsgFormFieldEmail: Theme1LsgFormFieldEmail,\n LsgFormFieldTel: Theme1LsgFormFieldTel,\n LsgFormFieldTextarea: Theme1LsgFormFieldTextarea,\n LsgFormFieldSelect: Theme1LsgFormFieldSelect,\n LsgFormFieldCountry: Theme1LsgFormFieldCountry,\n LsgFormFieldConsent: Theme1LsgFormFieldConsent,\n LsgFormPolicyNotice: Theme1LsgFormPolicyNotice,\n LsgFormStep: Theme1LsgFormStep,\n} = theme1Components;","import { createThemeComponents } from \"../createThemeComponents\";\n\nexport const theme2Components = createThemeComponents(\"theme-2\");\n\nexport const {\n LsgButton: Theme2LsgButton,\n LsgBanner: Theme2LsgBanner,\n LsgCarousel: Theme2LsgCarousel,\n LsgCard: Theme2LsgCard,\n LsgCards: Theme2LsgCards,\n LsgBreadcrumb: Theme2LsgBreadcrumb,\n LsgLogo: Theme2LsgLogo,\n LsgNavigation: Theme2LsgNavigation,\n LsgLanguageSwitcher: Theme2LsgLanguageSwitcher,\n LsgSearchTrigger: Theme2LsgSearchTrigger,\n LsgSearchOverlay: Theme2LsgSearchOverlay,\n LsgHeader: Theme2LsgHeader,\n LsgQuickLinks: Theme2LsgQuickLinks,\n LsgSocialMediaIcons: Theme2LsgSocialMediaIcons,\n LsgFooter: Theme2LsgFooter,\n LsgHero: Theme2LsgHero,\n LsgTable: Theme2LsgTable,\n // Form components\n LsgFormContainer: Theme2LsgFormContainer,\n LsgFormFieldText: Theme2LsgFormFieldText,\n LsgFormFieldEmail: Theme2LsgFormFieldEmail,\n LsgFormFieldTel: Theme2LsgFormFieldTel,\n LsgFormFieldTextarea: Theme2LsgFormFieldTextarea,\n LsgFormFieldSelect: Theme2LsgFormFieldSelect,\n LsgFormFieldCountry: Theme2LsgFormFieldCountry,\n LsgFormFieldConsent: Theme2LsgFormFieldConsent,\n LsgFormStep: Theme2LsgFormStep,\n} = theme2Components;","import { createThemeComponents } from \"../createThemeComponents\";\n\nexport const theme3Components = createThemeComponents(\"theme-3\");\n\nexport const {\n LsgButton: Theme3LsgButton,\n LsgBanner: Theme3LsgBanner,\n LsgCarousel: Theme3LsgCarousel,\n LsgCard: Theme3LsgCard,\n LsgCards: Theme3LsgCards,\n LsgBreadcrumb: Theme3LsgBreadcrumb,\n LsgLogo: Theme3LsgLogo,\n LsgNavigation: Theme3LsgNavigation,\n LsgLanguageSwitcher: Theme3LsgLanguageSwitcher,\n LsgSearchTrigger: Theme3LsgSearchTrigger,\n LsgSearchOverlay: Theme3LsgSearchOverlay,\n LsgHeader: Theme3LsgHeader,\n LsgQuickLinks: Theme3LsgQuickLinks,\n LsgSocialMediaIcons: Theme3LsgSocialMediaIcons,\n LsgFooter: Theme3LsgFooter,\n LsgHero: Theme3LsgHero,\n LsgTable: Theme3LsgTable,\n // Form components\n LsgFormContainer: Theme3LsgFormContainer,\n LsgFormFieldText: Theme3LsgFormFieldText,\n LsgFormFieldEmail: Theme3LsgFormFieldEmail,\n LsgFormFieldTel: Theme3LsgFormFieldTel,\n LsgFormFieldTextarea: Theme3LsgFormFieldTextarea,\n LsgFormFieldSelect: Theme3LsgFormFieldSelect,\n LsgFormFieldCountry: Theme3LsgFormFieldCountry,\n LsgFormFieldConsent: Theme3LsgFormFieldConsent,\n LsgFormStep: Theme3LsgFormStep,\n} = theme3Components;"],"names":["LsgButton","_a","children","_b","variant","_c","disabled","href","onClick","_d","type","_e","className","_f","external","classNames","concat","filter","Boolean","join","React","createElement","_extends","undefined","target","rel","bannerClassName","layout","mobileMediaPosition","background","LsgBanner","heading","preTitle","eyebrow","body","copy","ctas","cta","mediaType","imageUrl","imageAlt","videoUrl","videoPoster","videoControls","videoAutoPlay","videoMuted","videoLoop","_g","_h","_j","headingTag","resolvedPreTitle","resolvedBody","actions","length","slice","resolvedMediaType","hasMedia","HeadingTag","src","poster","controls","autoPlay","muted","loop","playsInline","alt","map","action","index","key","label","isSafeUrl","url","lower","toLowerCase","trim","startsWith","includes","LsgImage","srcset","sources","width","height","srcUriTemplate","lazyEnabled","displayPopupTitle","id","dataLayer","assetId","dmImage","tags","title","description","caption","text","visibleTags","Array","isArray","tag","visibleSources","source","rootClass","safeHref","linkLabel","showTitle","showCaption","String","itemScope","itemType","media","srcSet","itemProp","loading","content","buildUrl","base","params","url_1","URL","Object","keys","forEach","searchParams","set","toString","getEmbedInfo","opts","host","hostname","replace","path","pathname","split","get","test","autoplay","mute","playlist","baseHost","provider","embedUrl","match","PlayIcon","viewBox","fill","xmlns","focusable","cx","cy","r","fillOpacity","points","LsgVideo","onPlay","displayMode","showTags","_k","_l","useState","isRevealed","setIsRevealed","hasVideoSource","embedInfo","isEmbed","isNativeSource","showMedia","handleActivate","e","preventDefault","playLabel","renderPlayControl","allow","referrerPolicy","allowFullScreen","Fragment","i","isNumber","subject","isString","isBoolean","isObject","prototype","call","mathAbs","n","Math","abs","mathSign","sign","deltaAbs","valueB","valueA","factorAbs","diff","roundToTwoDecimals","num","round","arrayKeys","array","objectKeys","Number","arrayLast","arrayLastIndex","max","arrayIsLastIndex","arrayFromNumber","startAt","from","_","object","objectsMergeDeep","objectA","objectB","reduce","mergedObjects","currentObject","areObjects","isMouseEvent","evt","ownerWindow","MouseEvent","LsgCarouselController","viewport","elements","options","_this","embla","scrollPrev","canScrollPrev","lastSnap","scrollSnapList","scrollTo","scrollNext","canScrollNext","syncSelectedState","selected","selectedScrollSnap","paginationBtns","button","active","classList","toggle","setAttribute","els","EmblaCarousel","align","containScroll","direction","skipSnaps","slidesToScroll","paginationHandlers","prevBtn","addEventListener","nextBtn","on","defineProperty","destroy","removeEventListener","off","mediaTypeFor","item","directionForLayout","LsgCarousel","items","ariaLabel","rootRef","useRef","viewportRef","prevBtnRef","nextBtnRef","dotsRef","controllerRef","isCarousel","carouselDirection","useEffect","current","querySelectorAll","rootClasses","ref","dir","role","cardVariantClass","LsgCard","subtitle","iconUrl","iconAlt","resolvedIconUrl","actionLabel","cardClassName","LsgCards","cards","columns","listClassName","card","LSG_ICON_PATHS","bars","chevronLeft","chevronRight","close","globe","home","search","LsgIcon","name","d","isSafeHref","value","BreadcrumbSeparator","LsgBreadcrumb","showBreadcrumbs","includeHome","homeHref","homeLabel","visibleItems","rootClassName","safeHomeHref","isCurrent","LsgLogo","LsgNavigation","onItemClick","onItemHover","renderItems","navItems","level","hasChildren","open","onMouseEnter","event","preserveAspectRatio","stroke","strokeWidth","strokeLinecap","strokeLinejoin","ChevronIcon","LsgLanguageSwitcher","currentLanguage","languages","onLanguageChange","isOpen","setIsOpen","containerRef","reactId","useId","triggerId","dropdownId","handleClick","contains","document","handleKey","prev","lang","code","SearchIcon","x1","y1","x2","y2","LsgSearchTrigger","targetId","CloseIcon","LsgSearchOverlay","placeholder","onClose","onSearch","inputRef","inputId","focus","handleSubmit","query","overlayClass","style","position","inset","cursor","onSubmit","htmlFor","autoComplete","SEARCH_OVERLAY_ID","LsgHeaderIcon","getItemByPath","activePath","depth","currentItems","currentItem","find","getItemsAtLevel","getMegaColumns","maxDepth","activeItem","push","isCurrentOrActiveAtLevel","isSelectedAtLevel","hasOpenNavItem","some","clearMegaMenuBranch","scope","HTMLElement","remove","column","activateMegaMenuItem","parentColumn","parentElement","openItem","add","querySelector","HeaderActionButton","icon","LsgHeader","logo","searchLabel","searchPlaceholder","size","menuOpen","mobileLevel","mobileSelectedLabel","onMenuToggle","onNavItemHover","onDropdownClose","onMegaItemHover","onMobileItemClick","onMobileBreadcrumbClick","searchOpen","setSearchOpen","headerRef","mobileOpen","mobileItems","mobileBackLabel","dropdownOpen","closeOnOutsidePointerDown","megaItems","removeListeners","onFocusIn","removeListener","openSearch","renderActions","showMenu","renderMegaPanel","columnItems","columnIndex","renderMobileMenu","isSelected","LsgQuickLinks","links","link","platformIcons","linkedin","twitter","facebook","instagram","youtube","LsgSocialMediaIcons","platform","PhoneIcon","FaxIcon","MailIcon","LocationIcon","AiBadge","SocialIcon","icons","x","y","rx","ry","SocialIconsRow","l","color","display","alignItems","opacity","LsgFooter","simpleTwoRow","brandLine","complexColumns","showAiBadge","cookieSetting","contact","_m","quickLinks","copyright","colHeadings","socialLinks","_o","socialPosition","_p","year","Date","getFullYear","copyrightText","is3col","headings","about","contactAlt","bottomBar","address","phone","fax","email","clampNumber","number","min","isNaN","LsgHeroController","autoplayTimer","contentObserver","rafId","startAutoplay","handleScrollDown","scrollDownTarget","scrollIntoView","behavior","stopAutoplay","setInterval","autoplayInterval","clearInterval","transition","mount","scrollDownBtn","requestAnimationFrame","isConnected","section","closest","axis","getComputedStyle","getPropertyValue","plugins","EmblaCarouselFade","contentWrapper","ResizeObserver","setHeight_1","el","setProperty","offsetHeight","entries","observe","reInit","cancelAnimationFrame","disconnect","LsgHeroCard","imageSrc","videoSrc","youtubeId","vimeoId","cardBackground","cardColor","total","videoReady","setVideoReady","hasYoutube","hasVimeo","hasDam","youtubeEmbedSrc","vimeoEmbedSrc","articleClasses","onCanPlay","tabIndex","LsgHero","slides","showArrows","enableScrollDown","scrollDownText","sectionRef","useCallback","next","nextElementSibling","sectionClasses","slide","MOBILE_MEDIA_QUERY","SCROLL_EPSILON","CHEVRON_SVG","LsgTabs","activeId","accessibilityLabel","selectedId","setSelectedId","collapsed","setCollapsed","isMobile","setIsMobile","scrollStart","setScrollStart","scrollEnd","setScrollEnd","tabRefs","stripRef","isVertical","selectedIndex","findIndex","mql","window","matchMedia","sync","matches","updateArrows","strip","offset","scrollTop","scrollLeft","visible","clientHeight","clientWidth","scrollHeight","scrollWidth","observer","cancelled","fonts","ready","then","scrollStrip","step","onRootClick","currentTarget","rect","getBoundingClientRect","beforeMidpoint","clientY","top","clientX","left","select","moveFocus","tab","block","inline","press","onKeyDown","last","onScroll","isActive","node","LsgTable","headers","rows","headerBackground","accentColors","noAlternatingRows","wrapperClassName","cell","row","rowIndex","cellIndex","LsgFormFieldText","helpText","defaultValue","required","error","autocomplete","minLength","maxLength","helpId","errorId","ariaDescribedBy","hidden","LsgFormFieldEmail","be","Te","Ae","Ee","ve","te","Fe","re","$e","xe","ze","Se","ie","Ge","ne","Ke","ae","H","B","Je","We","qe","Ze","Qe","ke","Xe","Z","COUNTRIES","defaultCountries","c","t","iso2","dialCode","DEFAULT_ISO2","flagEmoji","toUpperCase","ch","fromCodePoint","charCodeAt","findCountry","initTelPickers","root","inputs","input","enhance","getTelValue","dial","getAttribute","national","initialIso2","wrapper","insertBefore","appendChild","dropdown","list","applySelected","country","textContent","flag","renderList","f","digits","indexOf","li","first","idx","activeElement","LsgFormFieldTel","pattern","defaultCountry","fieldRef","LsgFormFieldSelect","opt","COUNTRY_FIXTURE","LsgFormFieldCountry","countries","LsgFormFieldTextarea","LsgFormFieldConsent","dangerouslySetInnerHTML","__html","LsgFormStep","stepId","LsgFormContainer","multiStep","currentStep","steps","formError","successMessage","method","noValidate","stepTitle","LsgFormPolicyNotice","policyNoticeIcon","BASE_COMPONENTS","createThemeComponent","themeName","componentName","Component","WrappedComponent","props","displayName","createThemeComponents","theme1Components","Theme1LsgButton","Theme1LsgBanner","Theme1LsgCarousel","Theme1LsgCard","Theme1LsgCards","Theme1LsgBreadcrumb","Theme1LsgLogo","Theme1LsgNavigation","Theme1LsgLanguageSwitcher","Theme1LsgSearchTrigger","Theme1LsgSearchOverlay","Theme1LsgHeader","Theme1LsgQuickLinks","Theme1LsgSocialMediaIcons","Theme1LsgFooter","Theme1LsgHero","Theme1LsgTable","theme2Components","Theme2LsgButton","Theme2LsgBanner","Theme2LsgCarousel","Theme2LsgCard","Theme2LsgCards","Theme2LsgBreadcrumb","Theme2LsgLogo","Theme2LsgNavigation","Theme2LsgLanguageSwitcher","Theme2LsgSearchTrigger","Theme2LsgSearchOverlay","Theme2LsgHeader","Theme2LsgQuickLinks","Theme2LsgSocialMediaIcons","Theme2LsgFooter","Theme2LsgHero","Theme2LsgTable","theme3Components","Theme3LsgButton","Theme3LsgBanner","Theme3LsgCarousel","Theme3LsgCard","Theme3LsgCards","Theme3LsgBreadcrumb","Theme3LsgLogo","Theme3LsgNavigation","Theme3LsgLanguageSwitcher","Theme3LsgSearchTrigger","Theme3LsgSearchOverlay","Theme3LsgHeader","Theme3LsgQuickLinks","Theme3LsgSocialMediaIcons","Theme3LsgFooter","Theme3LsgHero","Theme3LsgTable"],"mappings":"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","x_google_ignoreList":[4,20,28]}
1
+ {"version":3,"file":"index.esm.js","sources":["../../src/components/lsg/LsgButton/LsgButton.tsx","../../src/components/lsg/LsgBanner/LsgBanner.tsx","../../src/components/lsg/LsgImage/LsgImage.tsx","../../src/components/lsg/LsgVideo/LsgVideo.tsx","../node_modules/embla-carousel/esm/embla-carousel.esm.js","../../src/components/lsg/LsgCarousel/LsgCarouselController.ts","../../src/components/lsg/LsgCarousel/LsgCarousel.tsx","../../src/components/lsg/LsgCard/LsgCard.tsx","../../src/utils/lsgIconPaths.ts","../../src/utils/LsgIcon.tsx","../../src/components/lsg/LsgBreadcrumb/LsgBreadcrumb.tsx","../../src/components/lsg/LsgLogo/LsgLogo.tsx","../../src/components/lsg/LsgNavigation/LsgNavigation.tsx","../../src/components/lsg/LsgLanguageSwitcher/LsgLanguageSwitcher.tsx","../../src/components/lsg/LsgSearchTrigger/LsgSearchTrigger.tsx","../../src/components/lsg/LsgSearchOverlay/LsgSearchOverlay.tsx","../../src/components/lsg/LsgHeader/LsgHeader.tsx","../../src/components/lsg/LsgQuickLinks/LsgQuickLinks.tsx","../../src/components/lsg/LsgSocialMediaIcons/LsgSocialMediaIcons.tsx","../../src/components/lsg/LsgFooter/LsgFooter.tsx","../node_modules/embla-carousel-fade/esm/embla-carousel-fade.esm.js","../../src/components/lsg/LsgHero/LsgHeroController.ts","../../src/components/lsg/LsgHeroCard/LsgHeroCard.tsx","../../src/components/lsg/LsgHero/LsgHero.tsx","../../src/components/lsg/LsgTabs/LsgTabs.tsx","../../src/components/lsg/LsgTable/LsgTable.tsx","../../src/components/lsg/LsgFormFieldText/LsgFormFieldText.tsx","../../src/components/lsg/LsgFormFieldEmail/LsgFormFieldEmail.tsx","../node_modules/react-international-phone/dist/index.mjs","../../src/components/lsg/telPicker/telPicker.ts","../../src/components/lsg/LsgFormFieldTel/LsgFormFieldTel.tsx","../../src/components/lsg/LsgFormFieldSelect/LsgFormFieldSelect.tsx","../../src/components/lsg/LsgFormFieldCountry/LsgFormFieldCountry.tsx","../../src/components/lsg/LsgFormFieldTextarea/LsgFormFieldTextarea.tsx","../../src/components/lsg/LsgFormFieldConsent/LsgFormFieldConsent.tsx","../../src/components/lsg/LsgFormStep/LsgFormStep.tsx","../../src/components/lsg/LsgFormContainer/LsgFormContainer.tsx","../../src/components/lsg/LsgFormPolicyNotice/LsgFormPolicyNotice.tsx","../../src/themes/createThemeComponents.tsx","../../src/themes/theme-1/components.tsx","../../src/themes/theme-2/components.tsx","../../src/themes/theme-3/components.tsx"],"sourcesContent":["import React from \"react\";\nimport \"./LsgButton.scss\";\n\nexport type LsgButtonVariant = \"primary\" | \"secondary\" | \"tertiary\" | \"outlined-white\" | \"outlined-black\";\n\nexport interface LsgButtonProps {\n children?: React.ReactNode;\n variant?: LsgButtonVariant;\n disabled?: boolean;\n /** Renders an <a> element when provided */\n href?: string;\n onClick?: (e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n type?: \"button\" | \"submit\" | \"reset\";\n className?: string;\n /** Opens in a new tab when used with href */\n external?: boolean;\n}\n\nexport const LsgButton: React.FC<LsgButtonProps> = ({\n children,\n variant = \"primary\",\n disabled = false,\n href,\n onClick,\n type = \"button\",\n className = \"\",\n external = false,\n}) => {\n const classNames = [\n \"lsg-button\",\n `lsg-button--${variant}`,\n disabled ? \"lsg-button--disabled\" : \"\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n if (href) {\n return (\n <a\n href={disabled ? undefined : href}\n className={classNames}\n aria-disabled={disabled || undefined}\n onClick={disabled ? undefined : (onClick as React.MouseEventHandler<HTMLAnchorElement>)}\n {...(external ? { target: \"_blank\", rel: \"noopener noreferrer\" } : {})}\n >\n <span className=\"lsg-button__text\">{children}</span>\n </a>\n );\n }\n\n return (\n <button\n type={type}\n className={classNames}\n disabled={disabled}\n onClick={onClick as React.MouseEventHandler<HTMLButtonElement>}\n >\n {children}\n </button>\n );\n};\n","import React from \"react\";\nimport \"./LsgBanner.scss\";\nimport { LsgButton } from \"../LsgButton\";\nimport type { LsgButtonVariant } from \"../LsgButton\";\n\nexport type LsgBannerLayout =\n | \"media-left\"\n | \"media-right\"\n | \"media-left-compact\"\n | \"media-right-compact\"\n | \"overlay\"\n | \"overlay-transparent\"\n | \"text-only\";\n\n/** Mirrors the AEM \"Background color\" style group on the banner policy. */\nexport type LsgBannerBackground =\n | \"white\"\n | \"light\"\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"dark\"\n | \"black\";\n\nexport type LsgBannerMobileMediaPosition = \"top\" | \"bottom\";\nexport type LsgBannerMediaType = \"image\" | \"video\";\nexport type LsgBannerHeadingTag = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n\nexport interface LsgBannerCta {\n label: string;\n href?: string;\n external?: boolean;\n variant?: LsgButtonVariant;\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;\n}\n\nexport interface LsgBannerProps {\n /** Mandatory banner title. */\n heading: string;\n /** Figma/AEM pre-title. `eyebrow` remains as a backwards-compatible alias. */\n preTitle?: string;\n eyebrow?: string;\n /** Optional body copy. `copy` remains as a backwards-compatible alias. */\n body?: string;\n copy?: string;\n /** Up to three CTAs. Theme/AEM policy may choose to expose fewer. */\n ctas?: LsgBannerCta[];\n /** Backwards-compatible single CTA alias. */\n cta?: LsgBannerCta;\n /** Image/video presentation controlled by the Banner authoring layout. */\n mediaType?: LsgBannerMediaType;\n imageUrl?: string;\n imageAlt?: string;\n videoUrl?: string;\n videoPoster?: string;\n videoControls?: boolean;\n videoAutoPlay?: boolean;\n videoMuted?: boolean;\n videoLoop?: boolean;\n /** Desktop visual layout matching the Figma Banner variants. */\n layout?: LsgBannerLayout;\n /** Mobile stack order for split/compact layouts. */\n mobileMediaPosition?: LsgBannerMobileMediaPosition;\n /**\n * Background colour, mirroring the AEM \"Background color\" style group.\n * Left undefined on purpose so no class is emitted and the banner keeps its\n * default light background. Each option carries its own legible foreground.\n */\n background?: LsgBannerBackground;\n headingTag?: LsgBannerHeadingTag;\n className?: string;\n}\n\nfunction bannerClassName(\n layout: LsgBannerLayout,\n mobileMediaPosition: LsgBannerMobileMediaPosition,\n background?: LsgBannerBackground,\n className?: string,\n): string {\n return [\n \"lsg-banner\",\n `lsg-banner--${layout}`,\n `lsg-banner--mobile-media-${mobileMediaPosition}`,\n // In AEM this class arrives on the decoration div instead; the SCSS only\n // sets inherited custom properties, so either position works.\n background ? `lsg-banner--bg-${background}` : \"\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n}\n\nexport const LsgBanner: React.FC<LsgBannerProps> = ({\n heading,\n preTitle,\n eyebrow,\n body,\n copy,\n ctas,\n cta,\n mediaType,\n imageUrl,\n imageAlt = \"\",\n videoUrl,\n videoPoster,\n videoControls = true,\n videoAutoPlay = false,\n videoMuted = true,\n videoLoop = false,\n layout = \"media-left\",\n mobileMediaPosition = \"top\",\n background,\n headingTag = \"h1\",\n className,\n}) => {\n const resolvedPreTitle = preTitle ?? eyebrow;\n const resolvedBody = body ?? copy;\n const actions = (ctas?.length ? ctas : cta ? [cta] : []).slice(0, 3);\n const resolvedMediaType: LsgBannerMediaType =\n mediaType ?? (videoUrl ? \"video\" : \"image\");\n const hasMedia =\n layout !== \"text-only\" &&\n (resolvedMediaType === \"video\" ? Boolean(videoUrl) : Boolean(imageUrl));\n const HeadingTag = headingTag;\n\n return (\n <section\n className={bannerClassName(layout, mobileMediaPosition, background, className)}\n data-lsg-is=\"banner\"\n data-lsg-banner-layout={layout}\n data-lsg-banner-mobile-media={mobileMediaPosition}\n data-lsg-banner-media={hasMedia ? resolvedMediaType : \"none\"}\n >\n <div className=\"lsg-banner__shell\">\n {hasMedia && (\n <div className=\"lsg-banner__media\">\n {resolvedMediaType === \"video\" && videoUrl ? (\n <video\n className=\"lsg-banner__video\"\n src={videoUrl}\n poster={videoPoster}\n controls={videoControls}\n autoPlay={videoAutoPlay}\n muted={videoMuted}\n loop={videoLoop}\n playsInline\n aria-label={imageAlt || heading}\n />\n ) : imageUrl ? (\n <img className=\"lsg-banner__image\" src={imageUrl} alt={imageAlt} />\n ) : null}\n </div>\n )}\n\n <div className=\"lsg-banner__content\">\n {resolvedPreTitle && (\n <div className=\"lsg-banner__pre-title\">\n <span className=\"lsg-banner__pre-title-marker\" aria-hidden=\"true\" />\n <span className=\"lsg-banner__pre-title-text\">{resolvedPreTitle}</span>\n </div>\n )}\n\n <HeadingTag className=\"lsg-banner__heading\">{heading}</HeadingTag>\n\n {resolvedBody && (\n <div className=\"lsg-banner__body\">\n <p>{resolvedBody}</p>\n </div>\n )}\n\n {actions.length > 0 && (\n <div className=\"lsg-banner__actions\">\n {actions.map((action, index) => (\n <LsgButton\n key={`${action.label}-${action.href ?? \"button\"}-${index}`}\n href={action.href}\n external={action.external}\n variant={action.variant ?? \"primary\"}\n onClick={action.onClick}\n className=\"lsg-banner__cta\"\n >\n {action.label}\n </LsgButton>\n ))}\n </div>\n )}\n </div>\n </div>\n </section>\n );\n};\n","import React from \"react\";\nimport \"./LsgImage.scss\";\n\nexport interface LsgImageTag {\n label: string;\n}\n\nexport interface LsgImageSource {\n /** Candidate set for this breakpoint. Maps to `<source srcset>`. */\n srcset: string;\n /** Media condition. Maps to `<source media>`. Omit for the fallback source. */\n media?: string;\n}\n\nexport interface LsgImageProps {\n /** Image URL rendered by the component. Maps to Core Image `src`. */\n imageUrl?: string;\n /** Alternative text for the image. Maps to Core Image `alt`. */\n imageAlt?: string;\n /** Candidate set for native adaptive loading. Maps to Core Image `srcset`. Ignored when `sources` is set, mirroring the AEM crops branch. */\n srcset?: string;\n /** Responsive `<source>` variants, as AEM emits from the Scene7 crop map. */\n sources?: LsgImageSource[];\n /** Intrinsic width of the image. Maps to Core Image `width`. */\n width?: number | string;\n /** Intrinsic height of the image. Maps to Core Image `height`. */\n height?: number | string;\n /** URI template used by AEM to request a rendition. Maps to Core Image `srcUriTemplate`. */\n srcUriTemplate?: string;\n /** Native lazy loading, as per the Core Image `disableLazyLoading` policy. Default: true. */\n lazyEnabled?: boolean;\n /** Render the title as the image tooltip instead of the caption. Maps to Core Image `displayPopupTitle`. */\n displayPopupTitle?: boolean;\n /** Component id. Maps to Core Image `id`. */\n id?: string;\n /** Serialised data layer payload. Maps to Core Image `data.json`. */\n dataLayer?: string;\n /** Asset UUID. Maps to Core Image `uuid`. */\n assetId?: string;\n /** Marks the image as a Dynamic Media image. Maps to Core Image `dmImage`. */\n dmImage?: boolean | string;\n /** Up to 3 tag pills overlaid on the image. */\n tags?: LsgImageTag[];\n /** Image title. Maps to the AEM Core Image caption/title. */\n title?: string;\n /** LSG-specific description revealed on hover/focus. */\n description?: string;\n /** Backward-compatible alias for description. */\n caption?: string;\n /** Optional image link. Maps to Core Image `imageLink`. */\n href?: string;\n className?: string;\n}\n\nfunction isSafeUrl(url: string | undefined): boolean {\n if (!url) return false;\n\n const lower = url.toLowerCase().trim();\n if (\n lower.startsWith(\"javascript:\") ||\n lower.startsWith(\"data:\") ||\n lower.startsWith(\"vbscript:\")\n ) {\n return false;\n }\n\n return (\n lower.startsWith(\"/\") ||\n lower.startsWith(\"http://\") ||\n lower.startsWith(\"https://\") ||\n lower.startsWith(\"mailto:\") ||\n lower.startsWith(\"tel:\") ||\n !lower.includes(\":\")\n );\n}\n\nexport const LsgImage: React.FC<LsgImageProps> = ({\n imageUrl,\n imageAlt = \"\",\n srcset,\n sources = [],\n width,\n height,\n srcUriTemplate,\n lazyEnabled = true,\n displayPopupTitle = false,\n id,\n dataLayer,\n assetId,\n dmImage,\n tags = [],\n title,\n description,\n caption,\n href,\n className = \"\",\n}) => {\n // Core Image v3 renders nothing without a src; the AEM LSG model gates on the\n // same condition via `model.ready`.\n if (!imageUrl) {\n return null;\n }\n\n const text = description ?? caption;\n\n const visibleTags: LsgImageTag[] = Array.isArray(tags)\n ? tags\n .filter(\n (tag): tag is LsgImageTag =>\n Boolean(tag) &&\n typeof tag.label === \"string\" &&\n tag.label.trim().length > 0,\n )\n .slice(0, 3)\n : [];\n\n const visibleSources: LsgImageSource[] = Array.isArray(sources)\n ? sources.filter(\n (source): source is LsgImageSource =>\n Boolean(source) &&\n typeof source.srcset === \"string\" &&\n source.srcset.trim().length > 0,\n )\n : [];\n\n const rootClass = [\"lsg-image\", \"cmp-image\", className]\n .filter(Boolean)\n .join(\" \");\n const safeHref = href && isSafeUrl(href) ? href : undefined;\n const linkLabel = title ? `View ${title}` : \"View image\";\n const showTitle = Boolean(title) && !displayPopupTitle;\n const showCaption = showTitle || Boolean(text);\n\n return (\n <div\n className={rootClass}\n id={id}\n data-cmp-data-layer={dataLayer}\n data-asset-id={assetId}\n data-cmp-dmimage={dmImage ? String(dmImage) : undefined}\n itemScope\n itemType=\"http://schema.org/ImageObject\"\n >\n <div className=\"lsg-image__media\">\n <div className=\"lsg-image__picture\">\n <picture>\n {visibleSources.map((source, index) => (\n <source\n key={`${source.media ?? \"default\"}-${index}`}\n media={source.media}\n srcSet={source.srcset}\n />\n ))}\n\n <img\n className=\"lsg-image__img cmp-image__image\"\n src={imageUrl}\n srcSet={visibleSources.length > 0 ? undefined : srcset}\n alt={imageAlt}\n title={displayPopupTitle ? title : undefined}\n width={width}\n height={height}\n data-cmp-src={srcUriTemplate}\n itemProp=\"contentUrl\"\n loading={lazyEnabled ? \"lazy\" : undefined}\n />\n </picture>\n </div>\n\n {safeHref && (\n <a\n className=\"lsg-image__link cmp-image__link\"\n href={safeHref}\n aria-label={linkLabel}\n data-cmp-clickable={dataLayer ? true : undefined}\n />\n )}\n\n {visibleTags.length > 0 && (\n <div className=\"lsg-image__tags\">\n {visibleTags.map((tag, index) => (\n <span\n key={`${tag.label}-${index}`}\n className=\"lsg-image__tag\"\n >\n {tag.label}\n </span>\n ))}\n </div>\n )}\n </div>\n\n {showCaption && (\n <div className=\"lsg-image__caption\">\n {showTitle && (\n <p className=\"lsg-image__title cmp-image__title\" itemProp=\"caption\">\n {title}\n </p>\n )}\n {text && <p className=\"lsg-image__text\">{text}</p>}\n </div>\n )}\n\n {title && displayPopupTitle && <meta itemProp=\"caption\" content={title} />}\n </div>\n );\n};\n","import React, { useState } from \"react\";\nimport \"./LsgVideo.scss\";\n\nexport interface LsgVideoTag {\n label: string;\n}\n\nexport type LsgVideoDisplayMode = \"inline\" | \"full-width\" | \"content\";\n\nexport interface LsgVideoProps {\n /** URL of the video thumbnail / poster image. Optional. */\n imageUrl?: string;\n /** Alt text for the poster image. */\n imageAlt?: string;\n /** Up to 3 tag pills overlaid on the poster. Extra entries are ignored. */\n tags?: LsgVideoTag[];\n /** Video title shown in the caption bar. Optional. */\n title?: string;\n /** Caption / description text below the title, revealed on hover / focus. */\n caption?: string;\n /** Href for the play action — used only when no video source is supplied. */\n href?: string;\n /** Fired when the play control is activated. */\n onPlay?: () => void;\n /** Native DAM/direct media URL, or an external YouTube/Vimeo URL. */\n videoUrl?: string;\n /** Autoplay the video/embed as soon as it renders. Default: false. */\n autoplay?: boolean;\n /** Loop playback. Default: false. */\n loop?: boolean;\n /** Mute playback. Default: false. */\n muted?: boolean;\n /** Show native/embed playback controls. Default: true. */\n controls?: boolean;\n /** Layout variant. Default: \"content\". */\n displayMode?: LsgVideoDisplayMode;\n /** Show or hide the tag pills overlay. Default: true. */\n showTags?: boolean;\n className?: string;\n}\n\ninterface EmbedInfo {\n provider: \"youtube\" | \"vimeo\";\n embedUrl: string;\n}\n\nfunction buildUrl(base: string, params: Record<string, string>): string {\n try {\n const url = new URL(base);\n Object.keys(params).forEach((key) => url.searchParams.set(key, params[key]));\n return url.toString();\n } catch {\n return base;\n }\n}\n\nfunction getEmbedInfo(\n videoUrl: string | undefined,\n opts: { autoplay: boolean; loop: boolean; muted: boolean; controls: boolean },\n): EmbedInfo | null {\n if (!videoUrl || typeof videoUrl !== \"string\") return null;\n\n try {\n const url = new URL(videoUrl);\n const host = url.hostname.replace(/^www\\./, \"\");\n const path = url.pathname;\n\n if (host === \"youtube.com\" || host === \"youtube-nocookie.com\" || host === \"youtu.be\") {\n let id: string | null = null;\n if (host === \"youtu.be\") {\n id = path.slice(1);\n } else if (path.startsWith(\"/embed/\") || path.startsWith(\"/shorts/\")) {\n id = path.split(\"/\")[2];\n } else if (path === \"/watch\") {\n id = url.searchParams.get(\"v\");\n }\n if (id && /^[A-Za-z0-9_-]{11}$/.test(id)) {\n const params: Record<string, string> = {\n autoplay: opts.autoplay ? \"1\" : \"0\",\n mute: opts.muted ? \"1\" : \"0\",\n controls: opts.controls ? \"1\" : \"0\",\n rel: \"0\",\n };\n if (opts.loop) { params.loop = \"1\"; params.playlist = id; }\n const baseHost = host === \"youtube-nocookie.com\" ? \"youtube-nocookie.com\" : \"youtube.com\";\n return { provider: \"youtube\", embedUrl: buildUrl(`https://www.${baseHost}/embed/${id}`, params) };\n }\n }\n\n if (host === \"vimeo.com\" || host === \"player.vimeo.com\") {\n let id: string | null = null;\n if (host === \"player.vimeo.com\" && path.startsWith(\"/video/\")) {\n id = path.split(\"/\")[2];\n } else {\n const match = path.match(/^\\/(\\d+)$/);\n if (match) id = match[1];\n }\n if (id && /^\\d+$/.test(id)) {\n const params: Record<string, string> = {\n autoplay: opts.autoplay ? \"1\" : \"0\",\n muted: opts.muted ? \"1\" : \"0\",\n loop: opts.loop ? \"1\" : \"0\",\n controls: opts.controls ? \"1\" : \"0\",\n };\n return { provider: \"vimeo\", embedUrl: buildUrl(`https://player.vimeo.com/video/${id}`, params) };\n }\n }\n } catch {\n return null;\n }\n return null;\n}\n\nfunction isSafeUrl(url: string | undefined): boolean {\n if (!url) return false;\n const lower = url.toLowerCase().trim();\n if (lower.startsWith(\"javascript:\") || lower.startsWith(\"data:\") || lower.startsWith(\"vbscript:\")) return false;\n return (\n lower.startsWith(\"/\") ||\n lower.startsWith(\"http://\") ||\n lower.startsWith(\"https://\") ||\n lower.startsWith(\"mailto:\") ||\n lower.startsWith(\"tel:\") ||\n !lower.includes(\":\")\n );\n}\n\nconst PlayIcon = (\n <svg\n className=\"lsg-video__play-svg\"\n width=\"60\"\n height=\"60\"\n viewBox=\"0 0 60 60\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <circle cx=\"30\" cy=\"30\" r=\"30\" fill=\"currentColor\" fillOpacity=\"0.15\" />\n <polygon points=\"24,18 46,30 24,42\" fill=\"currentColor\" />\n </svg>\n);\n\nexport const LsgVideo: React.FC<LsgVideoProps> = ({\n imageUrl,\n imageAlt = \"\",\n tags = [],\n title,\n caption,\n href,\n onPlay,\n videoUrl,\n autoplay = false,\n loop = false,\n muted = false,\n controls = true,\n displayMode = \"content\",\n showTags = true,\n className = \"\",\n}) => {\n const [isRevealed, setIsRevealed] = useState(false);\n\n const hasVideoSource = typeof videoUrl === \"string\" && videoUrl.length > 0;\n const embedInfo = hasVideoSource ? getEmbedInfo(videoUrl, { autoplay, loop, muted, controls }) : null;\n const isEmbed = embedInfo !== null;\n const isNativeSource = hasVideoSource && !isEmbed;\n const showMedia = hasVideoSource && (autoplay || isRevealed);\n\n const visibleTags: LsgVideoTag[] =\n showTags && Array.isArray(tags)\n ? tags\n .filter(\n (tag): tag is LsgVideoTag =>\n Boolean(tag) && typeof tag.label === \"string\" && tag.label.trim().length > 0,\n )\n .slice(0, 3)\n : [];\n\n const handleActivate = (e: React.MouseEvent) => {\n if (hasVideoSource) {\n e.preventDefault();\n setIsRevealed(true);\n onPlay?.();\n return;\n }\n if (href && isSafeUrl(href)) return;\n if (onPlay) { e.preventDefault(); onPlay(); }\n };\n\n const playLabel = title ? `Play ${title}` : \"Play video\";\n const rootClass = [\"lsg-video\", `lsg-video--${displayMode}`, className].filter(Boolean).join(\" \");\n const showCaption = Boolean(title) || Boolean(caption);\n\n const renderPlayControl = () => {\n if (hasVideoSource) {\n return (\n <button type=\"button\" className=\"lsg-video__play\" aria-label={playLabel} onClick={handleActivate}>\n {PlayIcon}\n </button>\n );\n }\n if (href && isSafeUrl(href)) {\n return (\n <a href={href} className=\"lsg-video__play\" aria-label={playLabel} onClick={handleActivate}>\n {PlayIcon}\n </a>\n );\n }\n return (\n <button type=\"button\" className=\"lsg-video__play\" aria-label={playLabel} onClick={handleActivate}>\n {PlayIcon}\n </button>\n );\n };\n\n return (\n <div className={rootClass}>\n <div className=\"lsg-video__media\">\n {showMedia ? (\n isEmbed ? (\n <div className=\"lsg-video__embed\">\n <iframe\n className=\"lsg-video__iframe\"\n src={embedInfo!.embedUrl}\n title={title || \"Video\"}\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n referrerPolicy=\"strict-origin-when-cross-origin\"\n allowFullScreen\n loading=\"lazy\"\n />\n </div>\n ) : (\n isNativeSource && (\n // eslint-disable-next-line jsx-a11y/media-has-caption\n <video\n className=\"lsg-video__native\"\n poster={imageUrl || undefined}\n controls={controls}\n autoPlay\n loop={loop}\n muted={muted}\n playsInline\n >\n <source src={videoUrl} />\n </video>\n )\n )\n ) : (\n <>\n <div className=\"lsg-video__poster\">\n {imageUrl && <img className=\"lsg-video__poster-img\" src={imageUrl} alt={imageAlt} loading=\"lazy\" />}\n </div>\n {visibleTags.length > 0 && (\n <div className=\"lsg-video__tags\">\n {visibleTags.map((tag, i) => (\n <span key={`${tag.label}-${i}`} className=\"lsg-video__tag\">\n {tag.label}\n </span>\n ))}\n </div>\n )}\n {renderPlayControl()}\n </>\n )}\n {/* Caption inside __media — positioned statically (T1) or absolutely at bottom (T2/T3) via CSS tokens */}\n {showCaption && (\n <div className=\"lsg-video__caption\">\n {title && <p className=\"lsg-video__title\">{title}</p>}\n {caption && <p className=\"lsg-video__text\">{caption}</p>}\n </div>\n )}\n </div>\n </div>\n );\n};\n","function isNumber(subject) {\n return typeof subject === 'number';\n}\nfunction isString(subject) {\n return typeof subject === 'string';\n}\nfunction isBoolean(subject) {\n return typeof subject === 'boolean';\n}\nfunction isObject(subject) {\n return Object.prototype.toString.call(subject) === '[object Object]';\n}\nfunction mathAbs(n) {\n return Math.abs(n);\n}\nfunction mathSign(n) {\n return Math.sign(n);\n}\nfunction deltaAbs(valueB, valueA) {\n return mathAbs(valueB - valueA);\n}\nfunction factorAbs(valueB, valueA) {\n if (valueB === 0 || valueA === 0) return 0;\n if (mathAbs(valueB) <= mathAbs(valueA)) return 0;\n const diff = deltaAbs(mathAbs(valueB), mathAbs(valueA));\n return mathAbs(diff / valueB);\n}\nfunction roundToTwoDecimals(num) {\n return Math.round(num * 100) / 100;\n}\nfunction arrayKeys(array) {\n return objectKeys(array).map(Number);\n}\nfunction arrayLast(array) {\n return array[arrayLastIndex(array)];\n}\nfunction arrayLastIndex(array) {\n return Math.max(0, array.length - 1);\n}\nfunction arrayIsLastIndex(array, index) {\n return index === arrayLastIndex(array);\n}\nfunction arrayFromNumber(n, startAt = 0) {\n return Array.from(Array(n), (_, i) => startAt + i);\n}\nfunction objectKeys(object) {\n return Object.keys(object);\n}\nfunction objectsMergeDeep(objectA, objectB) {\n return [objectA, objectB].reduce((mergedObjects, currentObject) => {\n objectKeys(currentObject).forEach(key => {\n const valueA = mergedObjects[key];\n const valueB = currentObject[key];\n const areObjects = isObject(valueA) && isObject(valueB);\n mergedObjects[key] = areObjects ? objectsMergeDeep(valueA, valueB) : valueB;\n });\n return mergedObjects;\n }, {});\n}\nfunction isMouseEvent(evt, ownerWindow) {\n return typeof ownerWindow.MouseEvent !== 'undefined' && evt instanceof ownerWindow.MouseEvent;\n}\n\nfunction Alignment(align, viewSize) {\n const predefined = {\n start,\n center,\n end\n };\n function start() {\n return 0;\n }\n function center(n) {\n return end(n) / 2;\n }\n function end(n) {\n return viewSize - n;\n }\n function measure(n, index) {\n if (isString(align)) return predefined[align](n);\n return align(viewSize, n, index);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction EventStore() {\n let listeners = [];\n function add(node, type, handler, options = {\n passive: true\n }) {\n let removeListener;\n if ('addEventListener' in node) {\n node.addEventListener(type, handler, options);\n removeListener = () => node.removeEventListener(type, handler, options);\n } else {\n const legacyMediaQueryList = node;\n legacyMediaQueryList.addListener(handler);\n removeListener = () => legacyMediaQueryList.removeListener(handler);\n }\n listeners.push(removeListener);\n return self;\n }\n function clear() {\n listeners = listeners.filter(remove => remove());\n }\n const self = {\n add,\n clear\n };\n return self;\n}\n\nfunction Animations(ownerDocument, ownerWindow, update, render) {\n const documentVisibleHandler = EventStore();\n const fixedTimeStep = 1000 / 60;\n let lastTimeStamp = null;\n let accumulatedTime = 0;\n let animationId = 0;\n function init() {\n documentVisibleHandler.add(ownerDocument, 'visibilitychange', () => {\n if (ownerDocument.hidden) reset();\n });\n }\n function destroy() {\n stop();\n documentVisibleHandler.clear();\n }\n function animate(timeStamp) {\n if (!animationId) return;\n if (!lastTimeStamp) {\n lastTimeStamp = timeStamp;\n update();\n update();\n }\n const timeElapsed = timeStamp - lastTimeStamp;\n lastTimeStamp = timeStamp;\n accumulatedTime += timeElapsed;\n while (accumulatedTime >= fixedTimeStep) {\n update();\n accumulatedTime -= fixedTimeStep;\n }\n const alpha = accumulatedTime / fixedTimeStep;\n render(alpha);\n if (animationId) {\n animationId = ownerWindow.requestAnimationFrame(animate);\n }\n }\n function start() {\n if (animationId) return;\n animationId = ownerWindow.requestAnimationFrame(animate);\n }\n function stop() {\n ownerWindow.cancelAnimationFrame(animationId);\n lastTimeStamp = null;\n accumulatedTime = 0;\n animationId = 0;\n }\n function reset() {\n lastTimeStamp = null;\n accumulatedTime = 0;\n }\n const self = {\n init,\n destroy,\n start,\n stop,\n update,\n render\n };\n return self;\n}\n\nfunction Axis(axis, contentDirection) {\n const isRightToLeft = contentDirection === 'rtl';\n const isVertical = axis === 'y';\n const scroll = isVertical ? 'y' : 'x';\n const cross = isVertical ? 'x' : 'y';\n const sign = !isVertical && isRightToLeft ? -1 : 1;\n const startEdge = getStartEdge();\n const endEdge = getEndEdge();\n function measureSize(nodeRect) {\n const {\n height,\n width\n } = nodeRect;\n return isVertical ? height : width;\n }\n function getStartEdge() {\n if (isVertical) return 'top';\n return isRightToLeft ? 'right' : 'left';\n }\n function getEndEdge() {\n if (isVertical) return 'bottom';\n return isRightToLeft ? 'left' : 'right';\n }\n function direction(n) {\n return n * sign;\n }\n const self = {\n scroll,\n cross,\n startEdge,\n endEdge,\n measureSize,\n direction\n };\n return self;\n}\n\nfunction Limit(min = 0, max = 0) {\n const length = mathAbs(min - max);\n function reachedMin(n) {\n return n < min;\n }\n function reachedMax(n) {\n return n > max;\n }\n function reachedAny(n) {\n return reachedMin(n) || reachedMax(n);\n }\n function constrain(n) {\n if (!reachedAny(n)) return n;\n return reachedMin(n) ? min : max;\n }\n function removeOffset(n) {\n if (!length) return n;\n return n - length * Math.ceil((n - max) / length);\n }\n const self = {\n length,\n max,\n min,\n constrain,\n reachedAny,\n reachedMax,\n reachedMin,\n removeOffset\n };\n return self;\n}\n\nfunction Counter(max, start, loop) {\n const {\n constrain\n } = Limit(0, max);\n const loopEnd = max + 1;\n let counter = withinLimit(start);\n function withinLimit(n) {\n return !loop ? constrain(n) : mathAbs((loopEnd + n) % loopEnd);\n }\n function get() {\n return counter;\n }\n function set(n) {\n counter = withinLimit(n);\n return self;\n }\n function add(n) {\n return clone().set(get() + n);\n }\n function clone() {\n return Counter(max, get(), loop);\n }\n const self = {\n get,\n set,\n add,\n clone\n };\n return self;\n}\n\nfunction DragHandler(axis, rootNode, ownerDocument, ownerWindow, target, dragTracker, location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, baseFriction, watchDrag) {\n const {\n cross: crossAxis,\n direction\n } = axis;\n const focusNodes = ['INPUT', 'SELECT', 'TEXTAREA'];\n const nonPassiveEvent = {\n passive: false\n };\n const initEvents = EventStore();\n const dragEvents = EventStore();\n const goToNextThreshold = Limit(50, 225).constrain(percentOfView.measure(20));\n const snapForceBoost = {\n mouse: 300,\n touch: 400\n };\n const freeForceBoost = {\n mouse: 500,\n touch: 600\n };\n const baseSpeed = dragFree ? 43 : 25;\n let isMoving = false;\n let startScroll = 0;\n let startCross = 0;\n let pointerIsDown = false;\n let preventScroll = false;\n let preventClick = false;\n let isMouse = false;\n function init(emblaApi) {\n if (!watchDrag) return;\n function downIfAllowed(evt) {\n if (isBoolean(watchDrag) || watchDrag(emblaApi, evt)) down(evt);\n }\n const node = rootNode;\n initEvents.add(node, 'dragstart', evt => evt.preventDefault(), nonPassiveEvent).add(node, 'touchmove', () => undefined, nonPassiveEvent).add(node, 'touchend', () => undefined).add(node, 'touchstart', downIfAllowed).add(node, 'mousedown', downIfAllowed).add(node, 'touchcancel', up).add(node, 'contextmenu', up).add(node, 'click', click, true);\n }\n function destroy() {\n initEvents.clear();\n dragEvents.clear();\n }\n function addDragEvents() {\n const node = isMouse ? ownerDocument : rootNode;\n dragEvents.add(node, 'touchmove', move, nonPassiveEvent).add(node, 'touchend', up).add(node, 'mousemove', move, nonPassiveEvent).add(node, 'mouseup', up);\n }\n function isFocusNode(node) {\n const nodeName = node.nodeName || '';\n return focusNodes.includes(nodeName);\n }\n function forceBoost() {\n const boost = dragFree ? freeForceBoost : snapForceBoost;\n const type = isMouse ? 'mouse' : 'touch';\n return boost[type];\n }\n function allowedForce(force, targetChanged) {\n const next = index.add(mathSign(force) * -1);\n const baseForce = scrollTarget.byDistance(force, !dragFree).distance;\n if (dragFree || mathAbs(force) < goToNextThreshold) return baseForce;\n if (skipSnaps && targetChanged) return baseForce * 0.5;\n return scrollTarget.byIndex(next.get(), 0).distance;\n }\n function down(evt) {\n const isMouseEvt = isMouseEvent(evt, ownerWindow);\n isMouse = isMouseEvt;\n preventClick = dragFree && isMouseEvt && !evt.buttons && isMoving;\n isMoving = deltaAbs(target.get(), location.get()) >= 2;\n if (isMouseEvt && evt.button !== 0) return;\n if (isFocusNode(evt.target)) return;\n pointerIsDown = true;\n dragTracker.pointerDown(evt);\n scrollBody.useFriction(0).useDuration(0);\n target.set(location);\n addDragEvents();\n startScroll = dragTracker.readPoint(evt);\n startCross = dragTracker.readPoint(evt, crossAxis);\n eventHandler.emit('pointerDown');\n }\n function move(evt) {\n const isTouchEvt = !isMouseEvent(evt, ownerWindow);\n if (isTouchEvt && evt.touches.length >= 2) return up(evt);\n const lastScroll = dragTracker.readPoint(evt);\n const lastCross = dragTracker.readPoint(evt, crossAxis);\n const diffScroll = deltaAbs(lastScroll, startScroll);\n const diffCross = deltaAbs(lastCross, startCross);\n if (!preventScroll && !isMouse) {\n if (!evt.cancelable) return up(evt);\n preventScroll = diffScroll > diffCross;\n if (!preventScroll) return up(evt);\n }\n const diff = dragTracker.pointerMove(evt);\n if (diffScroll > dragThreshold) preventClick = true;\n scrollBody.useFriction(0.3).useDuration(0.75);\n animation.start();\n target.add(direction(diff));\n evt.preventDefault();\n }\n function up(evt) {\n const currentLocation = scrollTarget.byDistance(0, false);\n const targetChanged = currentLocation.index !== index.get();\n const rawForce = dragTracker.pointerUp(evt) * forceBoost();\n const force = allowedForce(direction(rawForce), targetChanged);\n const forceFactor = factorAbs(rawForce, force);\n const speed = baseSpeed - 10 * forceFactor;\n const friction = baseFriction + forceFactor / 50;\n preventScroll = false;\n pointerIsDown = false;\n dragEvents.clear();\n scrollBody.useDuration(speed).useFriction(friction);\n scrollTo.distance(force, !dragFree);\n isMouse = false;\n eventHandler.emit('pointerUp');\n }\n function click(evt) {\n if (preventClick) {\n evt.stopPropagation();\n evt.preventDefault();\n preventClick = false;\n }\n }\n function pointerDown() {\n return pointerIsDown;\n }\n const self = {\n init,\n destroy,\n pointerDown\n };\n return self;\n}\n\nfunction DragTracker(axis, ownerWindow) {\n const logInterval = 170;\n let startEvent;\n let lastEvent;\n function readTime(evt) {\n return evt.timeStamp;\n }\n function readPoint(evt, evtAxis) {\n const property = evtAxis || axis.scroll;\n const coord = `client${property === 'x' ? 'X' : 'Y'}`;\n return (isMouseEvent(evt, ownerWindow) ? evt : evt.touches[0])[coord];\n }\n function pointerDown(evt) {\n startEvent = evt;\n lastEvent = evt;\n return readPoint(evt);\n }\n function pointerMove(evt) {\n const diff = readPoint(evt) - readPoint(lastEvent);\n const expired = readTime(evt) - readTime(startEvent) > logInterval;\n lastEvent = evt;\n if (expired) startEvent = evt;\n return diff;\n }\n function pointerUp(evt) {\n if (!startEvent || !lastEvent) return 0;\n const diffDrag = readPoint(lastEvent) - readPoint(startEvent);\n const diffTime = readTime(evt) - readTime(startEvent);\n const expired = readTime(evt) - readTime(lastEvent) > logInterval;\n const force = diffDrag / diffTime;\n const isFlick = diffTime && !expired && mathAbs(force) > 0.1;\n return isFlick ? force : 0;\n }\n const self = {\n pointerDown,\n pointerMove,\n pointerUp,\n readPoint\n };\n return self;\n}\n\nfunction NodeRects() {\n function measure(node) {\n const {\n offsetTop,\n offsetLeft,\n offsetWidth,\n offsetHeight\n } = node;\n const offset = {\n top: offsetTop,\n right: offsetLeft + offsetWidth,\n bottom: offsetTop + offsetHeight,\n left: offsetLeft,\n width: offsetWidth,\n height: offsetHeight\n };\n return offset;\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction PercentOfView(viewSize) {\n function measure(n) {\n return viewSize * (n / 100);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects) {\n const observeNodes = [container].concat(slides);\n let resizeObserver;\n let containerSize;\n let slideSizes = [];\n let destroyed = false;\n function readSize(node) {\n return axis.measureSize(nodeRects.measure(node));\n }\n function init(emblaApi) {\n if (!watchResize) return;\n containerSize = readSize(container);\n slideSizes = slides.map(readSize);\n function defaultCallback(entries) {\n for (const entry of entries) {\n if (destroyed) return;\n const isContainer = entry.target === container;\n const slideIndex = slides.indexOf(entry.target);\n const lastSize = isContainer ? containerSize : slideSizes[slideIndex];\n const newSize = readSize(isContainer ? container : slides[slideIndex]);\n const diffSize = mathAbs(newSize - lastSize);\n if (diffSize >= 0.5) {\n emblaApi.reInit();\n eventHandler.emit('resize');\n break;\n }\n }\n }\n resizeObserver = new ResizeObserver(entries => {\n if (isBoolean(watchResize) || watchResize(emblaApi, entries)) {\n defaultCallback(entries);\n }\n });\n ownerWindow.requestAnimationFrame(() => {\n observeNodes.forEach(node => resizeObserver.observe(node));\n });\n }\n function destroy() {\n destroyed = true;\n if (resizeObserver) resizeObserver.disconnect();\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction ScrollBody(location, offsetLocation, previousLocation, target, baseDuration, baseFriction) {\n let scrollVelocity = 0;\n let scrollDirection = 0;\n let scrollDuration = baseDuration;\n let scrollFriction = baseFriction;\n let rawLocation = location.get();\n let rawLocationPrevious = 0;\n function seek() {\n const displacement = target.get() - location.get();\n const isInstant = !scrollDuration;\n let scrollDistance = 0;\n if (isInstant) {\n scrollVelocity = 0;\n previousLocation.set(target);\n location.set(target);\n scrollDistance = displacement;\n } else {\n previousLocation.set(location);\n scrollVelocity += displacement / scrollDuration;\n scrollVelocity *= scrollFriction;\n rawLocation += scrollVelocity;\n location.add(scrollVelocity);\n scrollDistance = rawLocation - rawLocationPrevious;\n }\n scrollDirection = mathSign(scrollDistance);\n rawLocationPrevious = rawLocation;\n return self;\n }\n function settled() {\n const diff = target.get() - offsetLocation.get();\n return mathAbs(diff) < 0.001;\n }\n function duration() {\n return scrollDuration;\n }\n function direction() {\n return scrollDirection;\n }\n function velocity() {\n return scrollVelocity;\n }\n function useBaseDuration() {\n return useDuration(baseDuration);\n }\n function useBaseFriction() {\n return useFriction(baseFriction);\n }\n function useDuration(n) {\n scrollDuration = n;\n return self;\n }\n function useFriction(n) {\n scrollFriction = n;\n return self;\n }\n const self = {\n direction,\n duration,\n velocity,\n seek,\n settled,\n useBaseFriction,\n useBaseDuration,\n useFriction,\n useDuration\n };\n return self;\n}\n\nfunction ScrollBounds(limit, location, target, scrollBody, percentOfView) {\n const pullBackThreshold = percentOfView.measure(10);\n const edgeOffsetTolerance = percentOfView.measure(50);\n const frictionLimit = Limit(0.1, 0.99);\n let disabled = false;\n function shouldConstrain() {\n if (disabled) return false;\n if (!limit.reachedAny(target.get())) return false;\n if (!limit.reachedAny(location.get())) return false;\n return true;\n }\n function constrain(pointerDown) {\n if (!shouldConstrain()) return;\n const edge = limit.reachedMin(location.get()) ? 'min' : 'max';\n const diffToEdge = mathAbs(limit[edge] - location.get());\n const diffToTarget = target.get() - location.get();\n const friction = frictionLimit.constrain(diffToEdge / edgeOffsetTolerance);\n target.subtract(diffToTarget * friction);\n if (!pointerDown && mathAbs(diffToTarget) < pullBackThreshold) {\n target.set(limit.constrain(target.get()));\n scrollBody.useDuration(25).useBaseFriction();\n }\n }\n function toggleActive(active) {\n disabled = !active;\n }\n const self = {\n shouldConstrain,\n constrain,\n toggleActive\n };\n return self;\n}\n\nfunction ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance) {\n const scrollBounds = Limit(-contentSize + viewSize, 0);\n const snapsBounded = measureBounded();\n const scrollContainLimit = findScrollContainLimit();\n const snapsContained = measureContained();\n function usePixelTolerance(bound, snap) {\n return deltaAbs(bound, snap) <= 1;\n }\n function findScrollContainLimit() {\n const startSnap = snapsBounded[0];\n const endSnap = arrayLast(snapsBounded);\n const min = snapsBounded.lastIndexOf(startSnap);\n const max = snapsBounded.indexOf(endSnap) + 1;\n return Limit(min, max);\n }\n function measureBounded() {\n return snapsAligned.map((snapAligned, index) => {\n const {\n min,\n max\n } = scrollBounds;\n const snap = scrollBounds.constrain(snapAligned);\n const isFirst = !index;\n const isLast = arrayIsLastIndex(snapsAligned, index);\n if (isFirst) return max;\n if (isLast) return min;\n if (usePixelTolerance(min, snap)) return min;\n if (usePixelTolerance(max, snap)) return max;\n return snap;\n }).map(scrollBound => parseFloat(scrollBound.toFixed(3)));\n }\n function measureContained() {\n if (contentSize <= viewSize + pixelTolerance) return [scrollBounds.max];\n if (containScroll === 'keepSnaps') return snapsBounded;\n const {\n min,\n max\n } = scrollContainLimit;\n return snapsBounded.slice(min, max);\n }\n const self = {\n snapsContained,\n scrollContainLimit\n };\n return self;\n}\n\nfunction ScrollLimit(contentSize, scrollSnaps, loop) {\n const max = scrollSnaps[0];\n const min = loop ? max - contentSize : arrayLast(scrollSnaps);\n const limit = Limit(min, max);\n const self = {\n limit\n };\n return self;\n}\n\nfunction ScrollLooper(contentSize, limit, location, vectors) {\n const jointSafety = 0.1;\n const min = limit.min + jointSafety;\n const max = limit.max + jointSafety;\n const {\n reachedMin,\n reachedMax\n } = Limit(min, max);\n function shouldLoop(direction) {\n if (direction === 1) return reachedMax(location.get());\n if (direction === -1) return reachedMin(location.get());\n return false;\n }\n function loop(direction) {\n if (!shouldLoop(direction)) return;\n const loopDistance = contentSize * (direction * -1);\n vectors.forEach(v => v.add(loopDistance));\n }\n const self = {\n loop\n };\n return self;\n}\n\nfunction ScrollProgress(limit) {\n const {\n max,\n length\n } = limit;\n function get(n) {\n const currentLocation = n - max;\n return length ? currentLocation / -length : 0;\n }\n const self = {\n get\n };\n return self;\n}\n\nfunction ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll) {\n const {\n startEdge,\n endEdge\n } = axis;\n const {\n groupSlides\n } = slidesToScroll;\n const alignments = measureSizes().map(alignment.measure);\n const snaps = measureUnaligned();\n const snapsAligned = measureAligned();\n function measureSizes() {\n return groupSlides(slideRects).map(rects => arrayLast(rects)[endEdge] - rects[0][startEdge]).map(mathAbs);\n }\n function measureUnaligned() {\n return slideRects.map(rect => containerRect[startEdge] - rect[startEdge]).map(snap => -mathAbs(snap));\n }\n function measureAligned() {\n return groupSlides(snaps).map(g => g[0]).map((snap, index) => snap + alignments[index]);\n }\n const self = {\n snaps,\n snapsAligned\n };\n return self;\n}\n\nfunction SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes) {\n const {\n groupSlides\n } = slidesToScroll;\n const {\n min,\n max\n } = scrollContainLimit;\n const slideRegistry = createSlideRegistry();\n function createSlideRegistry() {\n const groupedSlideIndexes = groupSlides(slideIndexes);\n const doNotContain = !containSnaps || containScroll === 'keepSnaps';\n if (scrollSnaps.length === 1) return [slideIndexes];\n if (doNotContain) return groupedSlideIndexes;\n return groupedSlideIndexes.slice(min, max).map((group, index, groups) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(groups, index);\n if (isFirst) {\n const range = arrayLast(groups[0]) + 1;\n return arrayFromNumber(range);\n }\n if (isLast) {\n const range = arrayLastIndex(slideIndexes) - arrayLast(groups)[0] + 1;\n return arrayFromNumber(range, arrayLast(groups)[0]);\n }\n return group;\n });\n }\n const self = {\n slideRegistry\n };\n return self;\n}\n\nfunction ScrollTarget(loop, scrollSnaps, contentSize, limit, targetVector) {\n const {\n reachedAny,\n removeOffset,\n constrain\n } = limit;\n function minDistance(distances) {\n return distances.concat().sort((a, b) => mathAbs(a) - mathAbs(b))[0];\n }\n function findTargetSnap(target) {\n const distance = loop ? removeOffset(target) : constrain(target);\n const ascDiffsToSnaps = scrollSnaps.map((snap, index) => ({\n diff: shortcut(snap - distance, 0),\n index\n })).sort((d1, d2) => mathAbs(d1.diff) - mathAbs(d2.diff));\n const {\n index\n } = ascDiffsToSnaps[0];\n return {\n index,\n distance\n };\n }\n function shortcut(target, direction) {\n const targets = [target, target + contentSize, target - contentSize];\n if (!loop) return target;\n if (!direction) return minDistance(targets);\n const matchingTargets = targets.filter(t => mathSign(t) === direction);\n if (matchingTargets.length) return minDistance(matchingTargets);\n return arrayLast(targets) - contentSize;\n }\n function byIndex(index, direction) {\n const diffToSnap = scrollSnaps[index] - targetVector.get();\n const distance = shortcut(diffToSnap, direction);\n return {\n index,\n distance\n };\n }\n function byDistance(distance, snap) {\n const target = targetVector.get() + distance;\n const {\n index,\n distance: targetSnapDistance\n } = findTargetSnap(target);\n const reachedBound = !loop && reachedAny(target);\n if (!snap || reachedBound) return {\n index,\n distance\n };\n const diffToSnap = scrollSnaps[index] - targetSnapDistance;\n const snapDistance = distance + shortcut(diffToSnap, 0);\n return {\n index,\n distance: snapDistance\n };\n }\n const self = {\n byDistance,\n byIndex,\n shortcut\n };\n return self;\n}\n\nfunction ScrollTo(animation, indexCurrent, indexPrevious, scrollBody, scrollTarget, targetVector, eventHandler) {\n function scrollTo(target) {\n const distanceDiff = target.distance;\n const indexDiff = target.index !== indexCurrent.get();\n targetVector.add(distanceDiff);\n if (distanceDiff) {\n if (scrollBody.duration()) {\n animation.start();\n } else {\n animation.update();\n animation.render(1);\n animation.update();\n }\n }\n if (indexDiff) {\n indexPrevious.set(indexCurrent.get());\n indexCurrent.set(target.index);\n eventHandler.emit('select');\n }\n }\n function distance(n, snap) {\n const target = scrollTarget.byDistance(n, snap);\n scrollTo(target);\n }\n function index(n, direction) {\n const targetIndex = indexCurrent.clone().set(n);\n const target = scrollTarget.byIndex(targetIndex.get(), direction);\n scrollTo(target);\n }\n const self = {\n distance,\n index\n };\n return self;\n}\n\nfunction SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus) {\n const focusListenerOptions = {\n passive: true,\n capture: true\n };\n let lastTabPressTime = 0;\n function init(emblaApi) {\n if (!watchFocus) return;\n function defaultCallback(index) {\n const nowTime = new Date().getTime();\n const diffTime = nowTime - lastTabPressTime;\n if (diffTime > 10) return;\n eventHandler.emit('slideFocusStart');\n root.scrollLeft = 0;\n const group = slideRegistry.findIndex(group => group.includes(index));\n if (!isNumber(group)) return;\n scrollBody.useDuration(0);\n scrollTo.index(group, 0);\n eventHandler.emit('slideFocus');\n }\n eventStore.add(document, 'keydown', registerTabPress, false);\n slides.forEach((slide, slideIndex) => {\n eventStore.add(slide, 'focus', evt => {\n if (isBoolean(watchFocus) || watchFocus(emblaApi, evt)) {\n defaultCallback(slideIndex);\n }\n }, focusListenerOptions);\n });\n }\n function registerTabPress(event) {\n if (event.code === 'Tab') lastTabPressTime = new Date().getTime();\n }\n const self = {\n init\n };\n return self;\n}\n\nfunction Vector1D(initialValue) {\n let value = initialValue;\n function get() {\n return value;\n }\n function set(n) {\n value = normalizeInput(n);\n }\n function add(n) {\n value += normalizeInput(n);\n }\n function subtract(n) {\n value -= normalizeInput(n);\n }\n function normalizeInput(n) {\n return isNumber(n) ? n : n.get();\n }\n const self = {\n get,\n set,\n add,\n subtract\n };\n return self;\n}\n\nfunction Translate(axis, container) {\n const translate = axis.scroll === 'x' ? x : y;\n const containerStyle = container.style;\n let previousTarget = null;\n let disabled = false;\n function x(n) {\n return `translate3d(${n}px,0px,0px)`;\n }\n function y(n) {\n return `translate3d(0px,${n}px,0px)`;\n }\n function to(target) {\n if (disabled) return;\n const newTarget = roundToTwoDecimals(axis.direction(target));\n if (newTarget === previousTarget) return;\n containerStyle.transform = translate(newTarget);\n previousTarget = newTarget;\n }\n function toggleActive(active) {\n disabled = !active;\n }\n function clear() {\n if (disabled) return;\n containerStyle.transform = '';\n if (!container.getAttribute('style')) container.removeAttribute('style');\n }\n const self = {\n clear,\n to,\n toggleActive\n };\n return self;\n}\n\nfunction SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, location, slides) {\n const roundingSafety = 0.5;\n const ascItems = arrayKeys(slideSizesWithGaps);\n const descItems = arrayKeys(slideSizesWithGaps).reverse();\n const loopPoints = startPoints().concat(endPoints());\n function removeSlideSizes(indexes, from) {\n return indexes.reduce((a, i) => {\n return a - slideSizesWithGaps[i];\n }, from);\n }\n function slidesInGap(indexes, gap) {\n return indexes.reduce((a, i) => {\n const remainingGap = removeSlideSizes(a, gap);\n return remainingGap > 0 ? a.concat([i]) : a;\n }, []);\n }\n function findSlideBounds(offset) {\n return snaps.map((snap, index) => ({\n start: snap - slideSizes[index] + roundingSafety + offset,\n end: snap + viewSize - roundingSafety + offset\n }));\n }\n function findLoopPoints(indexes, offset, isEndEdge) {\n const slideBounds = findSlideBounds(offset);\n return indexes.map(index => {\n const initial = isEndEdge ? 0 : -contentSize;\n const altered = isEndEdge ? contentSize : 0;\n const boundEdge = isEndEdge ? 'end' : 'start';\n const loopPoint = slideBounds[index][boundEdge];\n return {\n index,\n loopPoint,\n slideLocation: Vector1D(-1),\n translate: Translate(axis, slides[index]),\n target: () => location.get() > loopPoint ? initial : altered\n };\n });\n }\n function startPoints() {\n const gap = scrollSnaps[0];\n const indexes = slidesInGap(descItems, gap);\n return findLoopPoints(indexes, contentSize, false);\n }\n function endPoints() {\n const gap = viewSize - scrollSnaps[0] - 1;\n const indexes = slidesInGap(ascItems, gap);\n return findLoopPoints(indexes, -contentSize, true);\n }\n function canLoop() {\n return loopPoints.every(({\n index\n }) => {\n const otherIndexes = ascItems.filter(i => i !== index);\n return removeSlideSizes(otherIndexes, viewSize) <= 0.1;\n });\n }\n function loop() {\n loopPoints.forEach(loopPoint => {\n const {\n target,\n translate,\n slideLocation\n } = loopPoint;\n const shiftLocation = target();\n if (shiftLocation === slideLocation.get()) return;\n translate.to(shiftLocation);\n slideLocation.set(shiftLocation);\n });\n }\n function clear() {\n loopPoints.forEach(loopPoint => loopPoint.translate.clear());\n }\n const self = {\n canLoop,\n clear,\n loop,\n loopPoints\n };\n return self;\n}\n\nfunction SlidesHandler(container, eventHandler, watchSlides) {\n let mutationObserver;\n let destroyed = false;\n function init(emblaApi) {\n if (!watchSlides) return;\n function defaultCallback(mutations) {\n for (const mutation of mutations) {\n if (mutation.type === 'childList') {\n emblaApi.reInit();\n eventHandler.emit('slidesChanged');\n break;\n }\n }\n }\n mutationObserver = new MutationObserver(mutations => {\n if (destroyed) return;\n if (isBoolean(watchSlides) || watchSlides(emblaApi, mutations)) {\n defaultCallback(mutations);\n }\n });\n mutationObserver.observe(container, {\n childList: true\n });\n }\n function destroy() {\n if (mutationObserver) mutationObserver.disconnect();\n destroyed = true;\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction SlidesInView(container, slides, eventHandler, threshold) {\n const intersectionEntryMap = {};\n let inViewCache = null;\n let notInViewCache = null;\n let intersectionObserver;\n let destroyed = false;\n function init() {\n intersectionObserver = new IntersectionObserver(entries => {\n if (destroyed) return;\n entries.forEach(entry => {\n const index = slides.indexOf(entry.target);\n intersectionEntryMap[index] = entry;\n });\n inViewCache = null;\n notInViewCache = null;\n eventHandler.emit('slidesInView');\n }, {\n root: container.parentElement,\n threshold\n });\n slides.forEach(slide => intersectionObserver.observe(slide));\n }\n function destroy() {\n if (intersectionObserver) intersectionObserver.disconnect();\n destroyed = true;\n }\n function createInViewList(inView) {\n return objectKeys(intersectionEntryMap).reduce((list, slideIndex) => {\n const index = parseInt(slideIndex);\n const {\n isIntersecting\n } = intersectionEntryMap[index];\n const inViewMatch = inView && isIntersecting;\n const notInViewMatch = !inView && !isIntersecting;\n if (inViewMatch || notInViewMatch) list.push(index);\n return list;\n }, []);\n }\n function get(inView = true) {\n if (inView && inViewCache) return inViewCache;\n if (!inView && notInViewCache) return notInViewCache;\n const slideIndexes = createInViewList(inView);\n if (inView) inViewCache = slideIndexes;\n if (!inView) notInViewCache = slideIndexes;\n return slideIndexes;\n }\n const self = {\n init,\n destroy,\n get\n };\n return self;\n}\n\nfunction SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow) {\n const {\n measureSize,\n startEdge,\n endEdge\n } = axis;\n const withEdgeGap = slideRects[0] && readEdgeGap;\n const startGap = measureStartGap();\n const endGap = measureEndGap();\n const slideSizes = slideRects.map(measureSize);\n const slideSizesWithGaps = measureWithGaps();\n function measureStartGap() {\n if (!withEdgeGap) return 0;\n const slideRect = slideRects[0];\n return mathAbs(containerRect[startEdge] - slideRect[startEdge]);\n }\n function measureEndGap() {\n if (!withEdgeGap) return 0;\n const style = ownerWindow.getComputedStyle(arrayLast(slides));\n return parseFloat(style.getPropertyValue(`margin-${endEdge}`));\n }\n function measureWithGaps() {\n return slideRects.map((rect, index, rects) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(rects, index);\n if (isFirst) return slideSizes[index] + startGap;\n if (isLast) return slideSizes[index] + endGap;\n return rects[index + 1][startEdge] - rect[startEdge];\n }).map(mathAbs);\n }\n const self = {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n };\n return self;\n}\n\nfunction SlidesToScroll(axis, viewSize, slidesToScroll, loop, containerRect, slideRects, startGap, endGap, pixelTolerance) {\n const {\n startEdge,\n endEdge,\n direction\n } = axis;\n const groupByNumber = isNumber(slidesToScroll);\n function byNumber(array, groupSize) {\n return arrayKeys(array).filter(i => i % groupSize === 0).map(i => array.slice(i, i + groupSize));\n }\n function bySize(array) {\n if (!array.length) return [];\n return arrayKeys(array).reduce((groups, rectB, index) => {\n const rectA = arrayLast(groups) || 0;\n const isFirst = rectA === 0;\n const isLast = rectB === arrayLastIndex(array);\n const edgeA = containerRect[startEdge] - slideRects[rectA][startEdge];\n const edgeB = containerRect[startEdge] - slideRects[rectB][endEdge];\n const gapA = !loop && isFirst ? direction(startGap) : 0;\n const gapB = !loop && isLast ? direction(endGap) : 0;\n const chunkSize = mathAbs(edgeB - gapB - (edgeA + gapA));\n if (index && chunkSize > viewSize + pixelTolerance) groups.push(rectB);\n if (isLast) groups.push(array.length);\n return groups;\n }, []).map((currentSize, index, groups) => {\n const previousSize = Math.max(groups[index - 1] || 0);\n return array.slice(previousSize, currentSize);\n });\n }\n function groupSlides(array) {\n return groupByNumber ? byNumber(array, slidesToScroll) : bySize(array);\n }\n const self = {\n groupSlides\n };\n return self;\n}\n\nfunction Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler) {\n // Options\n const {\n align,\n axis: scrollAxis,\n direction,\n startIndex,\n loop,\n duration,\n dragFree,\n dragThreshold,\n inViewThreshold,\n slidesToScroll: groupSlides,\n skipSnaps,\n containScroll,\n watchResize,\n watchSlides,\n watchDrag,\n watchFocus\n } = options;\n // Measurements\n const pixelTolerance = 2;\n const nodeRects = NodeRects();\n const containerRect = nodeRects.measure(container);\n const slideRects = slides.map(nodeRects.measure);\n const axis = Axis(scrollAxis, direction);\n const viewSize = axis.measureSize(containerRect);\n const percentOfView = PercentOfView(viewSize);\n const alignment = Alignment(align, viewSize);\n const containSnaps = !loop && !!containScroll;\n const readEdgeGap = loop || !!containScroll;\n const {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n } = SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow);\n const slidesToScroll = SlidesToScroll(axis, viewSize, groupSlides, loop, containerRect, slideRects, startGap, endGap, pixelTolerance);\n const {\n snaps,\n snapsAligned\n } = ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll);\n const contentSize = -arrayLast(snaps) + arrayLast(slideSizesWithGaps);\n const {\n snapsContained,\n scrollContainLimit\n } = ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance);\n const scrollSnaps = containSnaps ? snapsContained : snapsAligned;\n const {\n limit\n } = ScrollLimit(contentSize, scrollSnaps, loop);\n // Indexes\n const index = Counter(arrayLastIndex(scrollSnaps), startIndex, loop);\n const indexPrevious = index.clone();\n const slideIndexes = arrayKeys(slides);\n // Animation\n const update = ({\n dragHandler,\n scrollBody,\n scrollBounds,\n options: {\n loop\n }\n }) => {\n if (!loop) scrollBounds.constrain(dragHandler.pointerDown());\n scrollBody.seek();\n };\n const render = ({\n scrollBody,\n translate,\n location,\n offsetLocation,\n previousLocation,\n scrollLooper,\n slideLooper,\n dragHandler,\n animation,\n eventHandler,\n scrollBounds,\n options: {\n loop\n }\n }, alpha) => {\n const shouldSettle = scrollBody.settled();\n const withinBounds = !scrollBounds.shouldConstrain();\n const hasSettled = loop ? shouldSettle : shouldSettle && withinBounds;\n const hasSettledAndIdle = hasSettled && !dragHandler.pointerDown();\n if (hasSettledAndIdle) animation.stop();\n const interpolatedLocation = location.get() * alpha + previousLocation.get() * (1 - alpha);\n offsetLocation.set(interpolatedLocation);\n if (loop) {\n scrollLooper.loop(scrollBody.direction());\n slideLooper.loop();\n }\n translate.to(offsetLocation.get());\n if (hasSettledAndIdle) eventHandler.emit('settle');\n if (!hasSettled) eventHandler.emit('scroll');\n };\n const animation = Animations(ownerDocument, ownerWindow, () => update(engine), alpha => render(engine, alpha));\n // Shared\n const friction = 0.68;\n const startLocation = scrollSnaps[index.get()];\n const location = Vector1D(startLocation);\n const previousLocation = Vector1D(startLocation);\n const offsetLocation = Vector1D(startLocation);\n const target = Vector1D(startLocation);\n const scrollBody = ScrollBody(location, offsetLocation, previousLocation, target, duration, friction);\n const scrollTarget = ScrollTarget(loop, scrollSnaps, contentSize, limit, target);\n const scrollTo = ScrollTo(animation, index, indexPrevious, scrollBody, scrollTarget, target, eventHandler);\n const scrollProgress = ScrollProgress(limit);\n const eventStore = EventStore();\n const slidesInView = SlidesInView(container, slides, eventHandler, inViewThreshold);\n const {\n slideRegistry\n } = SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes);\n const slideFocus = SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus);\n // Engine\n const engine = {\n ownerDocument,\n ownerWindow,\n eventHandler,\n containerRect,\n slideRects,\n animation,\n axis,\n dragHandler: DragHandler(axis, root, ownerDocument, ownerWindow, target, DragTracker(axis, ownerWindow), location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, friction, watchDrag),\n eventStore,\n percentOfView,\n index,\n indexPrevious,\n limit,\n location,\n offsetLocation,\n previousLocation,\n options,\n resizeHandler: ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects),\n scrollBody,\n scrollBounds: ScrollBounds(limit, offsetLocation, target, scrollBody, percentOfView),\n scrollLooper: ScrollLooper(contentSize, limit, offsetLocation, [location, offsetLocation, previousLocation, target]),\n scrollProgress,\n scrollSnapList: scrollSnaps.map(scrollProgress.get),\n scrollSnaps,\n scrollTarget,\n scrollTo,\n slideLooper: SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, offsetLocation, slides),\n slideFocus,\n slidesHandler: SlidesHandler(container, eventHandler, watchSlides),\n slidesInView,\n slideIndexes,\n slideRegistry,\n slidesToScroll,\n target,\n translate: Translate(axis, container)\n };\n return engine;\n}\n\nfunction EventHandler() {\n let listeners = {};\n let api;\n function init(emblaApi) {\n api = emblaApi;\n }\n function getListeners(evt) {\n return listeners[evt] || [];\n }\n function emit(evt) {\n getListeners(evt).forEach(e => e(api, evt));\n return self;\n }\n function on(evt, cb) {\n listeners[evt] = getListeners(evt).concat([cb]);\n return self;\n }\n function off(evt, cb) {\n listeners[evt] = getListeners(evt).filter(e => e !== cb);\n return self;\n }\n function clear() {\n listeners = {};\n }\n const self = {\n init,\n emit,\n off,\n on,\n clear\n };\n return self;\n}\n\nconst defaultOptions = {\n align: 'center',\n axis: 'x',\n container: null,\n slides: null,\n containScroll: 'trimSnaps',\n direction: 'ltr',\n slidesToScroll: 1,\n inViewThreshold: 0,\n breakpoints: {},\n dragFree: false,\n dragThreshold: 10,\n loop: false,\n skipSnaps: false,\n duration: 25,\n startIndex: 0,\n active: true,\n watchDrag: true,\n watchResize: true,\n watchSlides: true,\n watchFocus: true\n};\n\nfunction OptionsHandler(ownerWindow) {\n function mergeOptions(optionsA, optionsB) {\n return objectsMergeDeep(optionsA, optionsB || {});\n }\n function optionsAtMedia(options) {\n const optionsAtMedia = options.breakpoints || {};\n const matchedMediaOptions = objectKeys(optionsAtMedia).filter(media => ownerWindow.matchMedia(media).matches).map(media => optionsAtMedia[media]).reduce((a, mediaOption) => mergeOptions(a, mediaOption), {});\n return mergeOptions(options, matchedMediaOptions);\n }\n function optionsMediaQueries(optionsList) {\n return optionsList.map(options => objectKeys(options.breakpoints || {})).reduce((acc, mediaQueries) => acc.concat(mediaQueries), []).map(ownerWindow.matchMedia);\n }\n const self = {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n };\n return self;\n}\n\nfunction PluginsHandler(optionsHandler) {\n let activePlugins = [];\n function init(emblaApi, plugins) {\n activePlugins = plugins.filter(({\n options\n }) => optionsHandler.optionsAtMedia(options).active !== false);\n activePlugins.forEach(plugin => plugin.init(emblaApi, optionsHandler));\n return plugins.reduce((map, plugin) => Object.assign(map, {\n [plugin.name]: plugin\n }), {});\n }\n function destroy() {\n activePlugins = activePlugins.filter(plugin => plugin.destroy());\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction EmblaCarousel(root, userOptions, userPlugins) {\n const ownerDocument = root.ownerDocument;\n const ownerWindow = ownerDocument.defaultView;\n const optionsHandler = OptionsHandler(ownerWindow);\n const pluginsHandler = PluginsHandler(optionsHandler);\n const mediaHandlers = EventStore();\n const eventHandler = EventHandler();\n const {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n } = optionsHandler;\n const {\n on,\n off,\n emit\n } = eventHandler;\n const reInit = reActivate;\n let destroyed = false;\n let engine;\n let optionsBase = mergeOptions(defaultOptions, EmblaCarousel.globalOptions);\n let options = mergeOptions(optionsBase);\n let pluginList = [];\n let pluginApis;\n let container;\n let slides;\n function storeElements() {\n const {\n container: userContainer,\n slides: userSlides\n } = options;\n const customContainer = isString(userContainer) ? root.querySelector(userContainer) : userContainer;\n container = customContainer || root.children[0];\n const customSlides = isString(userSlides) ? container.querySelectorAll(userSlides) : userSlides;\n slides = [].slice.call(customSlides || container.children);\n }\n function createEngine(options) {\n const engine = Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler);\n if (options.loop && !engine.slideLooper.canLoop()) {\n const optionsWithoutLoop = Object.assign({}, options, {\n loop: false\n });\n return createEngine(optionsWithoutLoop);\n }\n return engine;\n }\n function activate(withOptions, withPlugins) {\n if (destroyed) return;\n optionsBase = mergeOptions(optionsBase, withOptions);\n options = optionsAtMedia(optionsBase);\n pluginList = withPlugins || pluginList;\n storeElements();\n engine = createEngine(options);\n optionsMediaQueries([optionsBase, ...pluginList.map(({\n options\n }) => options)]).forEach(query => mediaHandlers.add(query, 'change', reActivate));\n if (!options.active) return;\n engine.translate.to(engine.location.get());\n engine.animation.init();\n engine.slidesInView.init();\n engine.slideFocus.init(self);\n engine.eventHandler.init(self);\n engine.resizeHandler.init(self);\n engine.slidesHandler.init(self);\n if (engine.options.loop) engine.slideLooper.loop();\n if (container.offsetParent && slides.length) engine.dragHandler.init(self);\n pluginApis = pluginsHandler.init(self, pluginList);\n }\n function reActivate(withOptions, withPlugins) {\n const startIndex = selectedScrollSnap();\n deActivate();\n activate(mergeOptions({\n startIndex\n }, withOptions), withPlugins);\n eventHandler.emit('reInit');\n }\n function deActivate() {\n engine.dragHandler.destroy();\n engine.eventStore.clear();\n engine.translate.clear();\n engine.slideLooper.clear();\n engine.resizeHandler.destroy();\n engine.slidesHandler.destroy();\n engine.slidesInView.destroy();\n engine.animation.destroy();\n pluginsHandler.destroy();\n mediaHandlers.clear();\n }\n function destroy() {\n if (destroyed) return;\n destroyed = true;\n mediaHandlers.clear();\n deActivate();\n eventHandler.emit('destroy');\n eventHandler.clear();\n }\n function scrollTo(index, jump, direction) {\n if (!options.active || destroyed) return;\n engine.scrollBody.useBaseFriction().useDuration(jump === true ? 0 : options.duration);\n engine.scrollTo.index(index, direction || 0);\n }\n function scrollNext(jump) {\n const next = engine.index.add(1).get();\n scrollTo(next, jump, -1);\n }\n function scrollPrev(jump) {\n const prev = engine.index.add(-1).get();\n scrollTo(prev, jump, 1);\n }\n function canScrollNext() {\n const next = engine.index.add(1).get();\n return next !== selectedScrollSnap();\n }\n function canScrollPrev() {\n const prev = engine.index.add(-1).get();\n return prev !== selectedScrollSnap();\n }\n function scrollSnapList() {\n return engine.scrollSnapList;\n }\n function scrollProgress() {\n return engine.scrollProgress.get(engine.offsetLocation.get());\n }\n function selectedScrollSnap() {\n return engine.index.get();\n }\n function previousScrollSnap() {\n return engine.indexPrevious.get();\n }\n function slidesInView() {\n return engine.slidesInView.get();\n }\n function slidesNotInView() {\n return engine.slidesInView.get(false);\n }\n function plugins() {\n return pluginApis;\n }\n function internalEngine() {\n return engine;\n }\n function rootNode() {\n return root;\n }\n function containerNode() {\n return container;\n }\n function slideNodes() {\n return slides;\n }\n const self = {\n canScrollNext,\n canScrollPrev,\n containerNode,\n internalEngine,\n destroy,\n off,\n on,\n emit,\n plugins,\n previousScrollSnap,\n reInit,\n rootNode,\n scrollNext,\n scrollPrev,\n scrollProgress,\n scrollSnapList,\n scrollTo,\n selectedScrollSnap,\n slideNodes,\n slidesInView,\n slidesNotInView\n };\n activate(userOptions, userPlugins);\n setTimeout(() => eventHandler.emit('init'), 0);\n return self;\n}\nEmblaCarousel.globalOptions = undefined;\n\nexport { EmblaCarousel as default };\n//# sourceMappingURL=embla-carousel.esm.js.map\n","import EmblaCarousel, { EmblaCarouselType } from \"embla-carousel\";\n\n/**\n * Framework-agnostic Embla controller shared by the React carousel and the AEM\n * clientlib runtime. Keep behaviour here so Storybook and server-rendered HTL\n * use exactly the same navigation and selected-state logic.\n */\nexport interface LsgCarouselControllerElements {\n prevBtn?: HTMLElement | null;\n nextBtn?: HTMLElement | null;\n paginationBtns?: Iterable<HTMLElement> | null;\n}\n\nexport type LsgCarouselDirection = \"ltr\" | \"rtl\";\n\nexport interface LsgCarouselControllerOptions {\n loop?: boolean;\n /**\n * Embla content direction. Media-left variants use RTL so the active media is\n * anchored on the right edge of the viewport and the adjacent slide peeks in\n * from the left, matching the mirrored Figma compositions.\n *\n * Embla requires the viewport/track CSS direction to match this value. The\n * React component sets `dir` on the viewport and the AEM boot path mirrors it.\n */\n direction?: LsgCarouselDirection;\n}\n\nexport class LsgCarouselController {\n private embla: EmblaCarouselType | null = null;\n private readonly els: LsgCarouselControllerElements;\n private readonly paginationBtns: HTMLElement[];\n private readonly paginationHandlers: Array<() => void>;\n\n constructor(\n viewport: HTMLElement,\n elements: LsgCarouselControllerElements = {},\n options: LsgCarouselControllerOptions = {},\n ) {\n this.els = elements;\n this.paginationBtns = elements.paginationBtns\n ? Array.from(elements.paginationBtns)\n : [];\n\n this.embla = EmblaCarousel(viewport, {\n align: \"start\",\n // Every authored media item owns a pagination dot. `trimSnaps` can remove\n // the final snap when two-up/peek layouts do not have enough overflow,\n // leaving the last authored item only partially reachable. Keep all snaps\n // so dot/item indexes stay 1:1 for 2, 3, 4, ... media items.\n containScroll: false,\n direction: options.direction ?? \"ltr\",\n loop: options.loop ?? true,\n skipSnaps: false,\n slidesToScroll: 1,\n });\n\n this.paginationHandlers = this.paginationBtns.map((_, index) => () => {\n this.embla?.scrollTo(index);\n });\n\n this.els.prevBtn?.addEventListener(\"click\", this.scrollPrev);\n this.els.nextBtn?.addEventListener(\"click\", this.scrollNext);\n this.paginationBtns.forEach((button, index) => {\n button.addEventListener(\"click\", this.paginationHandlers[index]);\n });\n\n this.embla.on(\"select\", this.syncSelectedState);\n this.embla.on(\"reInit\", this.syncSelectedState);\n this.syncSelectedState();\n }\n\n /**\n * Embla automatically falls back to non-looping mode when there is not enough\n * slide content to create a safe loop (most noticeable with two-up layouts and\n * only 2–3 authored items). Keep the arrow contract cyclic in that fallback:\n * when there is no native previous snap, jump to the final authored snap.\n */\n readonly scrollPrev = (): void => {\n if (!this.embla) return;\n\n if (this.embla.canScrollPrev()) {\n this.embla.scrollPrev();\n return;\n }\n\n const lastSnap = this.embla.scrollSnapList().length - 1;\n if (lastSnap >= 0) this.embla.scrollTo(lastSnap);\n };\n\n /** See `scrollPrev` for why the explicit wrap fallback is required. */\n readonly scrollNext = (): void => {\n if (!this.embla) return;\n\n if (this.embla.canScrollNext()) {\n this.embla.scrollNext();\n return;\n }\n\n if (this.embla.scrollSnapList().length > 0) this.embla.scrollTo(0);\n };\n\n private readonly syncSelectedState = (): void => {\n const selected = this.embla?.selectedScrollSnap() ?? 0;\n this.paginationBtns.forEach((button, index) => {\n const active = index === selected;\n button.classList.toggle(\"lsg-carousel__dot--active\", active);\n button.setAttribute(\"aria-current\", active ? \"true\" : \"false\");\n });\n };\n\n get emblaApi(): EmblaCarouselType | null {\n return this.embla;\n }\n\n destroy(): void {\n this.els.prevBtn?.removeEventListener(\"click\", this.scrollPrev);\n this.els.nextBtn?.removeEventListener(\"click\", this.scrollNext);\n this.paginationBtns.forEach((button, index) => {\n button.removeEventListener(\"click\", this.paginationHandlers[index]);\n });\n if (this.embla) {\n this.embla.off(\"select\", this.syncSelectedState);\n this.embla.off(\"reInit\", this.syncSelectedState);\n this.embla.destroy();\n this.embla = null;\n }\n }\n}\n","import React, { useEffect, useRef } from \"react\";\nimport { LsgButton } from \"../LsgButton\";\nimport type { LsgButtonVariant } from \"../LsgButton\";\nimport { LsgImage } from \"../LsgImage\";\nimport { LsgVideo } from \"../LsgVideo\";\nimport { LsgCarouselController } from \"./LsgCarouselController\";\nimport type { LsgCarouselDirection } from \"./LsgCarouselController\";\nimport \"./LsgCarousel.scss\";\n\nexport type LsgCarouselLayout = \"media-right\" | \"media-left\" | \"full-width\";\nexport type LsgCarouselHeadingTag = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\nexport type LsgCarouselMediaType = \"image\" | \"video\";\n\nexport interface LsgCarouselItem {\n /** Stable author/item identifier where available. */\n id?: string;\n type?: LsgCarouselMediaType;\n imageUrl?: string;\n imageAlt?: string;\n videoUrl?: string;\n videoPoster?: string;\n videoControls?: boolean;\n videoAutoPlay?: boolean;\n videoMuted?: boolean;\n videoLoop?: boolean;\n /** Optional per-media label used by layouts/themes that show a badge. */\n label?: string;\n}\n\nexport interface LsgCarouselCta {\n label: string;\n href?: string;\n external?: boolean;\n variant?: LsgButtonVariant;\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;\n}\n\nexport interface LsgCarouselProps {\n /** Mandatory carousel title. */\n heading: string;\n preTitle?: string;\n body?: string;\n cta?: LsgCarouselCta;\n items: LsgCarouselItem[];\n /** Desktop content/media position from the Figma variants. */\n layout?: LsgCarouselLayout;\n headingTag?: LsgCarouselHeadingTag;\n ariaLabel?: string;\n className?: string;\n}\n\nconst mediaTypeFor = (item: LsgCarouselItem): LsgCarouselMediaType =>\n item.type ?? (item.videoUrl ? \"video\" : \"image\");\n\nconst directionForLayout = (layout: LsgCarouselLayout): LsgCarouselDirection =>\n layout === \"media-left\" ? \"rtl\" : \"ltr\";\n\nexport const LsgCarousel: React.FC<LsgCarouselProps> = ({\n heading,\n preTitle,\n body,\n cta,\n items = [],\n layout = \"media-right\",\n headingTag = \"h2\",\n ariaLabel = \"Media carousel\",\n className = \"\",\n}) => {\n const rootRef = useRef<HTMLElement>(null);\n const viewportRef = useRef<HTMLDivElement>(null);\n const prevBtnRef = useRef<HTMLButtonElement>(null);\n const nextBtnRef = useRef<HTMLButtonElement>(null);\n const dotsRef = useRef<HTMLDivElement>(null);\n const controllerRef = useRef<LsgCarouselController | null>(null);\n const HeadingTag = headingTag;\n const isCarousel = items.length > 1;\n const carouselDirection = directionForLayout(layout);\n\n useEffect(() => {\n if (!viewportRef.current || !isCarousel) return;\n\n controllerRef.current = new LsgCarouselController(\n viewportRef.current,\n {\n prevBtn: prevBtnRef.current,\n nextBtn: nextBtnRef.current,\n paginationBtns:\n dotsRef.current?.querySelectorAll<HTMLElement>(\"[data-lsg-carousel-dot]\") ?? [],\n },\n { loop: true, direction: carouselDirection },\n );\n\n return () => {\n controllerRef.current?.destroy();\n controllerRef.current = null;\n };\n }, [carouselDirection, isCarousel, items.length]);\n\n const rootClasses = [\n \"lsg-carousel\",\n `lsg-carousel--${layout}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <section\n ref={rootRef}\n className={rootClasses}\n data-lsg-is=\"carousel\"\n data-lsg-carousel-layout={layout}\n data-lsg-carousel-direction={carouselDirection}\n data-lsg-carousel-count={items.length}\n aria-label={ariaLabel}\n >\n <div className=\"lsg-carousel__shell\">\n <div className=\"lsg-carousel__content\">\n {preTitle && (\n <div className=\"lsg-carousel__pre-title\">\n <span className=\"lsg-carousel__pre-title-marker\" aria-hidden=\"true\" />\n <span>{preTitle}</span>\n </div>\n )}\n\n <HeadingTag className=\"lsg-carousel__heading\">{heading}</HeadingTag>\n\n {body && <p className=\"lsg-carousel__body\">{body}</p>}\n\n {cta && (\n <div className=\"lsg-carousel__actions\">\n <LsgButton\n className=\"lsg-carousel__cta\"\n href={cta.href}\n external={cta.external}\n variant={cta.variant ?? \"primary\"}\n onClick={cta.onClick}\n >\n {cta.label}\n </LsgButton>\n </div>\n )}\n </div>\n\n <div className=\"lsg-carousel__media-column\">\n <div className=\"lsg-carousel__viewport\" ref={viewportRef} dir={carouselDirection}>\n <div className=\"lsg-carousel__track\" role=\"list\">\n {items.map((item, index) => {\n const type = mediaTypeFor(item);\n const key = item.id ?? `${type}-${item.imageUrl ?? item.videoUrl ?? index}-${index}`;\n\n return (\n <article\n key={key}\n className=\"lsg-carousel__slide\"\n role=\"listitem\"\n aria-label={`Slide ${index + 1} of ${items.length}`}\n data-lsg-carousel-item\n >\n <div className=\"lsg-carousel__media\">\n {type === \"video\" && item.videoUrl ? (\n <LsgVideo\n videoUrl={item.videoUrl}\n imageUrl={item.videoPoster}\n imageAlt={item.imageAlt}\n controls={item.videoControls ?? true}\n autoplay={item.videoAutoPlay ?? false}\n muted={item.videoMuted ?? true}\n loop={item.videoLoop ?? false}\n displayMode=\"content\"\n showTags={false}\n className=\"lsg-carousel__video-component\"\n />\n ) : item.imageUrl ? (\n <LsgImage\n imageUrl={item.imageUrl}\n imageAlt={item.imageAlt}\n className=\"lsg-carousel__image-component\"\n />\n ) : (\n <div className=\"lsg-carousel__media-placeholder\" aria-hidden=\"true\" />\n )}\n\n {item.label && (\n <span className=\"lsg-carousel__media-label\">{item.label}</span>\n )}\n </div>\n </article>\n );\n })}\n </div>\n </div>\n\n {isCarousel && (\n <div className=\"lsg-carousel__navigation\" aria-label=\"Carousel navigation\">\n <button\n ref={prevBtnRef}\n className=\"lsg-carousel__arrow lsg-carousel__arrow--prev\"\n type=\"button\"\n aria-label=\"Previous slide\"\n data-lsg-carousel-prev\n >\n <span className=\"lsg-carousel__arrow-icon\" aria-hidden=\"true\" />\n </button>\n\n <div className=\"lsg-carousel__pagination\" ref={dotsRef}>\n {items.map((item, index) => (\n <button\n key={item.id ?? `dot-${index}`}\n className={`lsg-carousel__dot${index === 0 ? \" lsg-carousel__dot--active\" : \"\"}`}\n type=\"button\"\n aria-label={`Go to slide ${index + 1}`}\n aria-current={index === 0 ? \"true\" : \"false\"}\n data-lsg-carousel-dot\n />\n ))}\n </div>\n\n <button\n ref={nextBtnRef}\n className=\"lsg-carousel__arrow lsg-carousel__arrow--next\"\n type=\"button\"\n aria-label=\"Next slide\"\n data-lsg-carousel-next\n >\n <span className=\"lsg-carousel__arrow-icon\" aria-hidden=\"true\" />\n </button>\n </div>\n )}\n </div>\n </div>\n </section>\n );\n};\n","import React from \"react\";\nimport \"./LsgCard.scss\";\n\nexport type LsgCardVariant = \"withImage\" | \"onlyText\" | \"withIcon\";\nexport type LsgCardColumns = 2 | 3 | 4 | 5;\n\nexport interface LsgCardCta {\n label: string;\n href: string;\n external?: boolean;\n}\n\nexport interface LsgCardProps {\n title: string;\n preTitle?: string;\n subtitle?: string;\n description?: string;\n imageUrl?: string;\n imageAlt?: string;\n iconUrl?: string;\n iconAlt?: string;\n /** Makes the complete card interactive when provided. */\n href?: string;\n cta?: LsgCardCta;\n variant?: LsgCardVariant;\n className?: string;\n}\n\nfunction cardVariantClass(variant: LsgCardVariant): string {\n switch (variant) {\n case \"onlyText\":\n return \"lsg-card--only-text\";\n case \"withIcon\":\n return \"lsg-card--with-icon\";\n case \"withImage\":\n default:\n return \"lsg-card--with-image\";\n }\n}\n\nexport const LsgCard: React.FC<LsgCardProps> = ({\n title,\n preTitle,\n subtitle,\n description,\n imageUrl,\n imageAlt = \"\",\n iconUrl,\n iconAlt = \"\",\n href,\n cta,\n variant = \"withImage\",\n className,\n}) => {\n const resolvedIconUrl = iconUrl ?? imageUrl;\n const actionLabel = cta?.label ?? \"Read more\";\n const cardClassName = [\"lsg-card\", cardVariantClass(variant), className]\n .filter(Boolean)\n .join(\" \");\n\n const content = (\n <>\n {variant === \"withImage\" && imageUrl && (\n <div className=\"lsg-card__media\">\n <img src={imageUrl} alt={imageAlt} loading=\"lazy\" />\n </div>\n )}\n <div className=\"lsg-card__content\">\n {variant === \"withIcon\" && resolvedIconUrl && (\n <div className=\"lsg-card__icon\" aria-hidden={iconAlt ? undefined : true}>\n <img src={resolvedIconUrl} alt={iconAlt} loading=\"lazy\" />\n </div>\n )}\n <div className=\"lsg-card__top\">\n {preTitle && (\n <span className=\"lsg-card__pre-title\">\n <span className=\"lsg-card__pre-title-dot\" aria-hidden=\"true\" />\n <span className=\"lsg-card__pre-title-text\">{preTitle}</span>\n <span className=\"lsg-card__pre-title-arrow\" aria-hidden=\"true\">→</span>\n </span>\n )}\n <h3 className=\"lsg-card__title\">{title}</h3>\n {subtitle && <h4 className=\"lsg-card__subtitle\">{subtitle}</h4>}\n </div>\n <div className=\"lsg-card__bottom\">\n {description && <p className=\"lsg-card__description\">{description}</p>}\n {(href || cta) && (\n href ? (\n <span className=\"lsg-card__cta\" aria-hidden=\"true\">\n <span className=\"lsg-card__cta-label\">{actionLabel}</span>\n <span className=\"lsg-card__cta-arrow\" aria-hidden=\"true\">→</span>\n </span>\n ) : (\n <a\n className=\"lsg-card__cta\"\n href={cta?.href}\n target={cta?.external ? \"_blank\" : undefined}\n rel={cta?.external ? \"noreferrer noopener\" : undefined}\n >\n <span className=\"lsg-card__cta-label\">{actionLabel}</span>\n <span className=\"lsg-card__cta-arrow\" aria-hidden=\"true\">→</span>\n </a>\n )\n )}\n </div>\n </div>\n </>\n );\n\n return (\n <article className={cardClassName} data-lsg-card-variant={variant}>\n {href ? (\n <a href={href} className=\"lsg-card__link\" aria-label={title}>\n {content}\n </a>\n ) : (\n <div className=\"lsg-card__link\">{content}</div>\n )}\n </article>\n );\n};\n\nexport interface LsgCardsProps {\n cards: LsgCardProps[];\n columns?: LsgCardColumns;\n className?: string;\n}\n\n/** Renders the AEM/Storybook compatible responsive card grid. */\nexport const LsgCards: React.FC<LsgCardsProps> = ({\n cards,\n columns = 3,\n className,\n}) => {\n const listClassName = [\n \"lsg-cards\",\n `lsg-cards--cols-${columns}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <ul className={listClassName} data-columns={columns}>\n {cards.map((card, index) => (\n <li className=\"lsg-cards__item\" key={card.href ?? card.cta?.href ?? `${card.title}-${index}`}>\n <LsgCard {...card} />\n </li>\n ))}\n </ul>\n );\n};\n","export type LsgIconName =\n | \"bars\"\n | \"chevronLeft\"\n | \"chevronRight\"\n | \"close\"\n | \"globe\"\n | \"home\"\n | \"search\";\n\nexport const LSG_ICON_PATHS: Record<LsgIconName, string> = {\n bars:\n \"M96 160C96 142.3 110.3 128 128 128L512 128C529.7 128 544 142.3 544 160C544 177.7 529.7 192 512 192L128 192C110.3 192 96 177.7 96 160zM96 320C96 302.3 110.3 288 128 288L512 288C529.7 288 544 302.3 544 320C544 337.7 529.7 352 512 352L128 352C110.3 352 96 337.7 96 320zM544 480C544 497.7 529.7 512 512 512L128 512C110.3 512 96 497.7 96 480C96 462.3 110.3 448 128 448L512 448C529.7 448 544 462.3 544 480z\",\n chevronLeft:\n \"M169.4 297.4C156.9 309.9 156.9 330.2 169.4 342.7L361.4 534.7C373.9 547.2 394.2 547.2 406.7 534.7C419.2 522.2 419.2 501.9 406.7 489.4L237.3 320L406.6 150.6C419.1 138.1 419.1 117.8 406.6 105.3C394.1 92.8 373.8 92.8 361.3 105.3L169.3 297.3z\",\n chevronRight:\n \"M471.1 297.4C483.6 309.9 483.6 330.2 471.1 342.7L279.1 534.7C266.6 547.2 246.3 547.2 233.8 534.7C221.3 522.2 221.3 501.9 233.8 489.4L403.2 320L233.9 150.6C221.4 138.1 221.4 117.8 233.9 105.3C246.4 92.8 266.7 92.8 279.2 105.3L471.2 297.3z\",\n close:\n \"M504.6 148.5C515.9 134.9 514.1 114.7 500.5 103.4C486.9 92.1 466.7 93.9 455.4 107.5L320 270L184.6 107.5C173.3 93.9 153.1 92.1 139.5 103.4C125.9 114.7 124.1 134.9 135.4 148.5L278.3 320L135.4 491.5C124.1 505.1 125.9 525.3 139.5 536.6C153.1 547.9 173.3 546.1 184.6 532.5L320 370L455.4 532.5C466.7 546.1 486.9 547.9 500.5 536.6C514.1 525.3 515.9 505.1 504.6 491.5L361.7 320L504.6 148.5z\",\n globe:\n \"M367.2 477C345.7 520.7 325.8 528 320 528C314.2 528 294.3 520.7 272.8 477C255.8 442.5 243.6 395.4 240.7 344L399.3 344C396.3 395.5 384.1 442.6 367.2 477zM399.3 296L240.7 296C243.7 244.5 255.9 197.4 272.8 163C294.3 119.3 314.2 112 320 112C325.8 112 345.7 119.3 367.2 163C384.2 197.5 396.4 244.6 399.3 296zM447.4 344L526.6 344C518 418.6 469.9 481.3 403.8 510.4C427.8 467.6 444.1 408 447.4 344zM526.6 296L447.4 296C444.1 232 427.8 172.4 403.8 129.6C469.9 158.8 518 221.4 526.6 296zM192.6 296L113.4 296C122 221.4 170.1 158.7 236.2 129.6C212.2 172.4 195.9 232 192.6 296zM113.4 344L192.6 344C195.9 408 212.2 467.6 236.2 510.4C170.1 481.2 122 418.6 113.4 344zM320 576C461.4 576 576 461.4 576 320C576 178.6 461.4 64 320 64C178.6 64 64 178.6 64 320C64 461.4 178.6 576 320 576z\",\n home: \"M96 320L320 128L544 320H480V528H352V384H288V528H160V320H96z\",\n search:\n \"M480 272C480 317.9 465.1 360.3 440 394.7L566.6 521.4C579.1 533.9 579.1 554.2 566.6 566.7C554.1 579.2 533.8 579.2 521.3 566.7L394.7 440C360.3 465.1 317.9 480 272 480C157.1 480 64 386.9 64 272C64 157.1 157.1 64 272 64C386.9 64 480 157.1 480 272zM272 416C351.5 416 416 351.5 416 272C416 192.5 351.5 128 272 128C192.5 128 128 192.5 128 272C128 351.5 192.5 416 272 416z\",\n};\n\n","import React from \"react\";\nimport { LSG_ICON_PATHS } from \"./lsgIconPaths\";\nimport type { LsgIconName } from \"./lsgIconPaths\";\n\nexport interface LsgIconProps {\n name: LsgIconName;\n className?: string;\n}\n\nexport const LsgIcon: React.FC<LsgIconProps> = ({ name, className }) => (\n <svg\n className={className}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 640 640\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d={LSG_ICON_PATHS[name]} />\n </svg>\n);\n","import React from \"react\";\nimport { LsgIcon } from \"../../../utils\";\nimport \"./LsgBreadcrumb.scss\";\n\nexport interface LsgBreadcrumbItem {\n label: string;\n href?: string;\n}\n\nexport interface LsgBreadcrumbProps {\n /** Breadcrumb items ordered from the nearest ancestor to the current page. */\n items?: LsgBreadcrumbItem[];\n /** Mirrors the AEM \"Show Breadcrumbs\" configuration. */\n showBreadcrumbs?: boolean;\n /** Mirrors the AEM \"Include Home Link\" configuration. */\n includeHome?: boolean;\n /** URL used by the home icon link. */\n homeHref?: string;\n /** Accessible label for the icon-only home link. */\n homeLabel?: string;\n className?: string;\n}\n\nfunction isSafeHref(href: string | undefined): boolean {\n if (!href) return false;\n\n const value = href.trim().toLowerCase();\n if (\n value.startsWith(\"javascript:\") ||\n value.startsWith(\"data:\") ||\n value.startsWith(\"vbscript:\")\n ) {\n return false;\n }\n\n return (\n value.startsWith(\"/\") ||\n value.startsWith(\"#\") ||\n value.startsWith(\"http://\") ||\n value.startsWith(\"https://\") ||\n !value.includes(\":\")\n );\n}\n\nconst BreadcrumbSeparator: React.FC = () => (\n <li className=\"lsg-breadcrumb__separator\" aria-hidden=\"true\">\n <LsgIcon name=\"chevronRight\" className=\"lsg-breadcrumb__separator-icon\" />\n </li>\n);\n\nexport const LsgBreadcrumb: React.FC<LsgBreadcrumbProps> = ({\n items = [],\n showBreadcrumbs = true,\n includeHome = true,\n homeHref = \"/\",\n homeLabel = \"Home\",\n className = \"\",\n}) => {\n if (!showBreadcrumbs) return null;\n\n const visibleItems = Array.isArray(items)\n ? items.filter(\n (item): item is LsgBreadcrumbItem =>\n Boolean(item) && typeof item.label === \"string\" && item.label.trim().length > 0,\n )\n : [];\n\n if (!includeHome && visibleItems.length === 0) return null;\n\n const rootClassName = [\"lsg-breadcrumb\", className].filter(Boolean).join(\" \");\n const safeHomeHref = isSafeHref(homeHref) ? homeHref : \"/\";\n\n return (\n <nav className={rootClassName} aria-label=\"Breadcrumb\">\n <ol className=\"lsg-breadcrumb__list\">\n {includeHome && (\n <li className=\"lsg-breadcrumb__item lsg-breadcrumb__item--home\">\n <a className=\"lsg-breadcrumb__home\" href={safeHomeHref} aria-label={homeLabel}>\n <LsgIcon name=\"home\" className=\"lsg-breadcrumb__home-icon\" />\n </a>\n </li>\n )}\n\n {visibleItems.map((item, index) => {\n const isCurrent = index === visibleItems.length - 1;\n const safeHref = isSafeHref(item.href) ? item.href : undefined;\n\n return (\n <React.Fragment key={`${item.label}-${index}`}>\n {(includeHome || index > 0) && <BreadcrumbSeparator />}\n <li\n className={[\n \"lsg-breadcrumb__item\",\n isCurrent ? \"lsg-breadcrumb__item--current\" : \"lsg-breadcrumb__item--ancestor\",\n ].join(\" \")}\n >\n {isCurrent ? (\n <span className=\"lsg-breadcrumb__current\" aria-current=\"page\">\n <span className=\"lsg-breadcrumb__current-marker\" aria-hidden=\"true\" />\n <span className=\"lsg-breadcrumb__label\">{item.label}</span>\n </span>\n ) : safeHref ? (\n <a className=\"lsg-breadcrumb__link\" href={safeHref}>\n {item.label}\n </a>\n ) : (\n <span className=\"lsg-breadcrumb__ancestor\">{item.label}</span>\n )}\n </li>\n </React.Fragment>\n );\n })}\n </ol>\n </nav>\n );\n};\n","import React from \"react\";\nimport \"./LsgLogo.scss\";\n\nexport interface LsgLogoProps {\n /** Image src. When omitted, renders a text logo. */\n src?: string;\n alt?: string;\n href?: string;\n width?: number;\n height?: number;\n /** Fallback text shown when no src is provided */\n text?: string;\n}\n\nexport const LsgLogo: React.FC<LsgLogoProps> = ({\n src,\n alt = \"Logo\",\n href = \"/\",\n width,\n height = 40,\n text = \"Atlas Copco\",\n}) => {\n const content = src ? (\n <img\n src={src}\n alt={alt}\n width={width}\n height={height}\n className=\"lsg-logo__image\"\n />\n ) : (\n <span className=\"lsg-logo__text\">{text}</span>\n );\n\n return (\n <a href={href} className=\"lsg-logo\" aria-label={src ? alt : undefined}>\n {content}\n </a>\n );\n};\n","import React from \"react\";\nimport \"./LsgNavigation.scss\";\n\nexport interface LsgNavItem {\n label: string;\n href: string;\n current?: boolean;\n open?: boolean;\n children?: LsgNavItem[];\n}\n\nexport interface LsgNavigationProps {\n items: LsgNavItem[];\n /** Accessible label for the <nav> landmark */\n label?: string;\n variant?: \"simple\" | \"dropdown\" | \"mega\";\n onItemClick?: (item: LsgNavItem, level: number) => void;\n onItemHover?: (item: LsgNavItem, level: number) => void;\n}\n\nexport const LsgNavigation: React.FC<LsgNavigationProps> = ({\n items,\n label = \"Main navigation\",\n variant = \"simple\",\n onItemClick,\n onItemHover,\n}) => {\n const renderItems = (navItems: LsgNavItem[], level = 0) => (\n <ul className={level === 0 ? \"lsg-nav__list\" : \"lsg-nav__dropdown\"} role=\"list\">\n {navItems.map((item) => {\n const hasChildren = Boolean(item.children?.length);\n\n return (\n <li\n key={`${item.href}-${level}`}\n className={[\n \"lsg-nav__item\",\n hasChildren ? \"lsg-nav__item--has-children\" : \"\",\n item.open ? \"lsg-nav__item--open\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n onMouseEnter={() => {\n if (onItemHover && hasChildren) {\n onItemHover(item, level);\n }\n }}\n >\n <a\n href={item.href}\n onClick={(event) => {\n if (onItemClick && hasChildren) {\n event.preventDefault();\n onItemClick(item, level);\n }\n }}\n className={[\"lsg-nav__link\", item.current ? \"lsg-nav__link--current\" : \"\"]\n .filter(Boolean)\n .join(\" \")}\n aria-current={item.current ? \"page\" : undefined}\n aria-expanded={variant === \"dropdown\" && hasChildren ? item.open : undefined}\n >\n <p>{item.label}</p>\n {hasChildren && (\n <span className=\"lsg-nav__chevron\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 10 5\" preserveAspectRatio=\"xMidYMid meet\" focusable=\"false\">\n <path\n d=\"M1 0.5L5 4.5L9 0.5\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </span>\n )}\n </a>\n {hasChildren && renderItems(item.children || [], level + 1)}\n </li>\n );\n })}\n </ul>\n );\n\n return (\n <nav className={[\"lsg-nav\", `lsg-nav--${variant}`].join(\" \")} aria-label={label}>\n {renderItems(items)}\n </nav>\n );\n};\n","import React, { useState, useRef, useEffect, useId } from \"react\";\nimport \"./LsgLanguageSwitcher.scss\";\nimport { LsgIcon } from \"../../../utils\";\n\nexport interface LsgLanguage {\n code: string;\n label: string;\n href: string;\n}\n\nexport interface LsgLanguageSwitcherProps {\n currentLanguage: string;\n languages: LsgLanguage[];\n /** Accessible label for the trigger button */\n label?: string;\n /** Called when a language is selected. Prevents link navigation when provided. */\n onLanguageChange?: (language: LsgLanguage) => void;\n}\n\nconst ChevronIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <polyline points=\"2 4 6 8 10 4\" />\n </svg>\n);\n\n/**\n * Language Switcher\n *\n * Hydrated: state managed by React (useState).\n * Clientlib-only: driven by lsg-clientlib.js targeting [data-lsg-lang-switcher].\n */\nexport const LsgLanguageSwitcher: React.FC<LsgLanguageSwitcherProps> = ({\n currentLanguage,\n languages,\n label = \"Select language\",\n onLanguageChange,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const reactId = useId();\n const triggerId = `lsg-lang-trigger-${reactId}`;\n const dropdownId = `lsg-lang-dropdown-${reactId}`;\n\n // Close on outside click\n useEffect(() => {\n if (!isOpen) return;\n const handleClick = (e: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(e.target as Node)) {\n setIsOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handleClick);\n return () => document.removeEventListener(\"mousedown\", handleClick);\n }, [isOpen]);\n\n // Close on Escape\n useEffect(() => {\n if (!isOpen) return;\n const handleKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") setIsOpen(false);\n };\n document.addEventListener(\"keydown\", handleKey);\n return () => document.removeEventListener(\"keydown\", handleKey);\n }, [isOpen]);\n\n return (\n <div className=\"lsg-lang-switcher\" ref={containerRef} data-lsg-lang-switcher>\n <button\n id={triggerId}\n type=\"button\"\n className=\"lsg-lang-switcher__trigger\"\n aria-label={label}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-controls={dropdownId}\n onClick={() => setIsOpen((prev) => !prev)}\n >\n <LsgIcon name=\"globe\" className=\"lsg-lang-switcher__globe\" />\n <span className=\"lsg-lang-switcher__current\">{currentLanguage}</span>\n <ChevronIcon />\n </button>\n\n {isOpen && (\n <ul\n id={dropdownId}\n className=\"lsg-lang-switcher__dropdown\"\n role=\"listbox\"\n aria-labelledby={triggerId}\n >\n {languages.map((lang) => (\n <li key={lang.code} className=\"lsg-lang-switcher__option\" role=\"option\">\n <a\n href={lang.href}\n className={[\n \"lsg-lang-switcher__option-link\",\n lang.code === currentLanguage ? \"lsg-lang-switcher__option-link--active\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n aria-current={lang.code === currentLanguage ? true : undefined}\n onClick={(event) => {\n if (!onLanguageChange) return;\n\n event.preventDefault();\n onLanguageChange(lang);\n setIsOpen(false);\n }}\n >\n {lang.label}\n </a>\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgSearchTrigger.scss\";\n\nexport interface LsgSearchTriggerProps {\n /** Accessible label for the button */\n label?: string;\n /** id of the search overlay this button controls */\n targetId?: string;\n onClick?: () => void;\n}\n\nconst SearchIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n);\n\nexport const LsgSearchTrigger: React.FC<LsgSearchTriggerProps> = ({\n label = \"Open search\",\n targetId,\n onClick,\n}) => {\n return (\n <button\n type=\"button\"\n className=\"lsg-search-trigger\"\n aria-label={label}\n aria-haspopup=\"dialog\"\n aria-controls={targetId}\n onClick={onClick}\n data-lsg-search-trigger\n >\n <SearchIcon />\n </button>\n );\n};\n","import React, { useEffect, useRef } from \"react\";\nimport \"./LsgSearchOverlay.scss\";\n\nexport interface LsgSearchOverlayProps {\n id?: string;\n placeholder?: string;\n /** Accessible label for the search input */\n label?: string;\n isOpen?: boolean;\n onClose?: () => void;\n onSearch?: (query: string) => void;\n}\n\nconst SearchIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n);\n\nconst CloseIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n);\n\n/**\n * Search Overlay\n *\n * Hydrated: isOpen/onClose controlled by parent (e.g. LsgHeader).\n * Clientlib-only: driven by lsg-clientlib.js targeting [data-lsg-search-overlay].\n * The CSS class lsg-search-overlay--open drives visibility in both modes.\n */\nexport const LsgSearchOverlay: React.FC<LsgSearchOverlayProps> = ({\n id = \"lsg-search-overlay\",\n placeholder = \"Search…\",\n label = \"Search\",\n isOpen = false,\n onClose,\n onSearch,\n}) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const inputId = `${id}-input`;\n\n // Focus the input when overlay opens\n useEffect(() => {\n if (isOpen) inputRef.current?.focus();\n }, [isOpen]);\n\n // Close on Escape\n useEffect(() => {\n if (!isOpen) return;\n const handleKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClose?.();\n };\n document.addEventListener(\"keydown\", handleKey);\n return () => document.removeEventListener(\"keydown\", handleKey);\n }, [isOpen, onClose]);\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n const query = inputRef.current?.value ?? \"\";\n if (query.trim()) onSearch?.(query.trim());\n };\n\n const overlayClass = [\"lsg-search-overlay\", isOpen ? \"lsg-search-overlay--open\" : \"\"]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div\n id={id}\n className={overlayClass}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={label}\n data-lsg-search-overlay\n >\n {/* Backdrop close */}\n <div\n className=\"lsg-search-overlay__backdrop\"\n aria-hidden=\"true\"\n onClick={onClose}\n style={{ position: \"absolute\", inset: 0, cursor: \"default\" }}\n />\n <div className=\"lsg-search-overlay__panel\">\n <form className=\"lsg-search-overlay__form\" role=\"search\" onSubmit={handleSubmit}>\n <label htmlFor={inputId} className=\"lsg-search-overlay__label\">\n <SearchIcon />\n <span className=\"lsg-visually-hidden\">{label}</span>\n </label>\n <input\n id={inputId}\n ref={inputRef}\n type=\"search\"\n className=\"lsg-search-overlay__input\"\n placeholder={placeholder}\n autoComplete=\"off\"\n />\n <button type=\"submit\" className=\"lsg-search-overlay__submit\" aria-label=\"Submit search\">\n <SearchIcon />\n </button>\n <button\n type=\"button\"\n className=\"lsg-search-overlay__close\"\n aria-label=\"Close search\"\n onClick={onClose}\n >\n <CloseIcon />\n </button>\n </form>\n </div>\n </div>\n );\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport \"./LsgHeader.scss\";\nimport { LsgLogo, LsgLogoProps } from \"../LsgLogo\";\nimport { LsgNavigation, LsgNavItem } from \"../LsgNavigation\";\nimport { LsgLanguage, LsgLanguageSwitcher } from \"../LsgLanguageSwitcher\";\nimport { LsgSearchOverlay } from \"../LsgSearchOverlay\";\nimport { LsgIcon, LsgIconName } from \"../../../utils\";\n\nexport type LsgHeaderSize = \"full-width\" | \"medium\" | \"narrow\";\n\nexport interface LsgHeaderProps {\n logo?: LsgLogoProps;\n navItems?: LsgNavItem[];\n languages?: LsgLanguage[];\n currentLanguage?: string;\n onLanguageChange?: (language: LsgLanguage) => void;\n searchLabel?: string;\n searchPlaceholder?: string;\n variant?: \"simple\" | \"dropdown\" | \"mega\";\n /**\n * Width of the header bar, mirroring the AEM `./headerSize` dialog select.\n * Left undefined on purpose so no modifier class is emitted and the theme's\n * own header width applies. Styled for theme 1 only.\n */\n size?: LsgHeaderSize;\n menuOpen?: boolean;\n mobileLevel?: 0 | 1 | 2 | 3 | 4;\n activePath?: string[];\n mobileSelectedLabel?: string;\n onMenuToggle?: () => void;\n onNavItemHover?: (item: LsgNavItem, level: number) => void;\n onDropdownClose?: () => void;\n onMegaItemHover?: (item: LsgNavItem, level: number) => void;\n onMobileItemClick?: (item: LsgNavItem, level: number) => void;\n onMobileBreadcrumbClick?: (level: 0 | 1 | 2 | 3 | 4) => void;\n children?: React.ReactNode;\n}\n\nconst SEARCH_OVERLAY_ID = \"lsg-header-search-overlay\";\n\nconst LsgHeaderIcon: React.FC<{ name: LsgIconName; className?: string }> = ({\n name,\n className,\n}) => {\n return (\n <LsgIcon\n name={name}\n className={[\"lsg-header__icon\", `lsg-header__icon--${name}`, className || \"\"]\n .filter(Boolean)\n .join(\" \")}\n />\n );\n};\n\nconst getItemByPath = (\n items: LsgNavItem[],\n activePath: string[],\n depth: number\n): LsgNavItem | undefined => {\n let currentItems = items;\n let currentItem: LsgNavItem | undefined;\n\n for (let i = 0; i <= depth; i += 1) {\n currentItem = currentItems.find((item) => item.label === activePath[i]);\n currentItems = currentItem?.children || [];\n }\n\n return currentItem;\n};\n\nconst getItemsAtLevel = (\n items: LsgNavItem[],\n activePath: string[],\n level: number\n): LsgNavItem[] => {\n if (level <= 1) {\n return items;\n }\n\n return getItemByPath(items, activePath, level - 2)?.children || [];\n};\n\nconst getMegaColumns = (\n items: LsgNavItem[],\n activePath: string[],\n maxDepth = 4\n): LsgNavItem[][] => {\n const columns: LsgNavItem[][] = [items];\n let currentItems = items;\n\n activePath.slice(0, maxDepth - 1).forEach((label) => {\n const activeItem = currentItems.find((item) => item.label === label);\n\n if (activeItem?.children?.length) {\n columns.push(activeItem.children);\n currentItems = activeItem.children;\n }\n });\n\n return columns.slice(0, maxDepth);\n};\n\nconst isCurrentOrActiveAtLevel = (item: LsgNavItem, activePath: string[], level: number) =>\n item.current || activePath[level] === item.label;\n\nconst isSelectedAtLevel = (item: LsgNavItem, activePath: string[], level: number) =>\n activePath[level] === item.label;\n\nconst hasOpenNavItem = (items: LsgNavItem[]): boolean =>\n items.some((item) => item.open || hasOpenNavItem(item.children || []));\n\nconst clearMegaMenuBranch = (scope: ParentNode): void => {\n if (scope instanceof HTMLElement) {\n scope.classList.remove(\"lsg-header__mega-item--open\");\n scope.classList.remove(\"lsg-header__mega-column--open\");\n }\n\n scope.querySelectorAll<HTMLElement>(\".lsg-header__mega-item--open\").forEach((item) => {\n item.classList.remove(\"lsg-header__mega-item--open\");\n });\n scope.querySelectorAll<HTMLElement>(\".lsg-header__mega-column--open\").forEach((column) => {\n column.classList.remove(\"lsg-header__mega-column--open\");\n });\n};\n\nconst activateMegaMenuItem = (item: HTMLElement): void => {\n const parentColumn = item.parentElement;\n\n if (parentColumn) {\n Array.from(parentColumn.children).forEach((openItem) => {\n if (openItem !== item) {\n clearMegaMenuBranch(openItem as HTMLElement);\n }\n });\n }\n\n item.classList.add(\"lsg-header__mega-item--open\");\n item\n .querySelector<HTMLElement>(\":scope > .lsg-header__mega-column\")\n ?.classList.add(\"lsg-header__mega-column--open\");\n};\n\nconst HeaderActionButton: React.FC<{\n label: string;\n icon: LsgIconName;\n onClick?: () => void;\n controls?: string;\n className?: string;\n}> = ({ label, icon, onClick, controls, className }) => (\n <button\n type=\"button\"\n className={[\"lsg-header__icon-button\", className || \"\"].filter(Boolean).join(\" \")}\n aria-label={label}\n aria-controls={controls}\n onClick={onClick}\n data-lsg-search-trigger={icon === \"search\" ? \"\" : undefined}\n >\n <LsgHeaderIcon name={icon} />\n </button>\n);\n\nexport const LsgHeader: React.FC<LsgHeaderProps> = ({\n logo,\n navItems = [],\n languages = [],\n currentLanguage = \"EN\",\n onLanguageChange,\n searchLabel = \"Open search\",\n searchPlaceholder = \"Search products, documents...\",\n variant = \"simple\",\n size,\n menuOpen = false,\n mobileLevel = 0,\n activePath = [],\n mobileSelectedLabel,\n onMenuToggle,\n onNavItemHover,\n onDropdownClose,\n onMegaItemHover,\n onMobileItemClick,\n onMobileBreadcrumbClick,\n children,\n}) => {\n const [searchOpen, setSearchOpen] = useState(false);\n const headerRef = useRef<HTMLElement>(null);\n const mobileOpen = menuOpen || mobileLevel > 0;\n const columns = children ? [] : getMegaColumns(navItems, activePath);\n const mobileItems = getItemsAtLevel(navItems, activePath, mobileLevel || 1);\n const mobileBackLabel = activePath[activePath.length - 1] || \"menu\";\n const dropdownOpen = variant === \"dropdown\" && hasOpenNavItem(navItems);\n\n useEffect(() => {\n if (!menuOpen && !dropdownOpen) {\n return undefined;\n }\n\n const closeOnOutsidePointerDown = (event: MouseEvent | TouchEvent) => {\n if (headerRef.current?.contains(event.target as Node)) {\n return;\n }\n\n if (menuOpen) {\n onMenuToggle?.();\n }\n\n if (dropdownOpen) {\n onDropdownClose?.();\n }\n };\n\n document.addEventListener(\"mousedown\", closeOnOutsidePointerDown);\n document.addEventListener(\"touchstart\", closeOnOutsidePointerDown);\n\n return () => {\n document.removeEventListener(\"mousedown\", closeOnOutsidePointerDown);\n document.removeEventListener(\"touchstart\", closeOnOutsidePointerDown);\n };\n }, [dropdownOpen, menuOpen, onDropdownClose, onMenuToggle]);\n\n useEffect(() => {\n if (variant !== \"mega\" || !children || !menuOpen || !headerRef.current) {\n return undefined;\n }\n\n const megaItems = Array.from(\n headerRef.current.querySelectorAll<HTMLElement>(\".lsg-header__mega-item--has-children\")\n );\n const removeListeners = megaItems.map((item) => {\n const onMouseEnter = () => activateMegaMenuItem(item);\n const onFocusIn = () => activateMegaMenuItem(item);\n\n item.addEventListener(\"mouseenter\", onMouseEnter);\n item.addEventListener(\"focusin\", onFocusIn);\n\n return () => {\n item.removeEventListener(\"mouseenter\", onMouseEnter);\n item.removeEventListener(\"focusin\", onFocusIn);\n };\n });\n\n return () => {\n removeListeners.forEach((removeListener) => removeListener());\n if (headerRef.current) {\n clearMegaMenuBranch(headerRef.current);\n }\n };\n }, [children, menuOpen, variant]);\n\n const openSearch = () => setSearchOpen(true);\n\n const renderActions = (showMenu = false) => (\n <div className=\"lsg-header__actions\">\n {showMenu && variant === \"mega\" && (\n <>\n <button\n type=\"button\"\n className=\"lsg-header__menu-trigger\"\n aria-label={menuOpen ? \"Close menu\" : \"Open menu\"}\n aria-expanded={menuOpen}\n onClick={onMenuToggle}\n data-lsg-menu-trigger\n >\n <LsgHeaderIcon name={menuOpen ? \"close\" : \"bars\"} />\n <span>{menuOpen ? \"CLOSE\" : \"MENU\"}</span>\n </button>\n <span className=\"lsg-header__separator\" aria-hidden=\"true\">\n |\n </span>\n </>\n )}\n <HeaderActionButton\n label={searchLabel}\n icon=\"search\"\n controls={SEARCH_OVERLAY_ID}\n onClick={openSearch}\n />\n {languages.length > 0 && (\n <LsgLanguageSwitcher\n currentLanguage={currentLanguage}\n languages={languages}\n label={`Current language: ${currentLanguage}`}\n onLanguageChange={onLanguageChange}\n />\n )}\n </div>\n );\n\n const renderMegaPanel = () => (\n <div className=\"lsg-header__mega-panel\">\n <div className=\"lsg-header__mega-inner\">\n {columns.map((columnItems, columnIndex) => (\n <ul key={`mega-column-${columnIndex}`} className=\"lsg-header__mega-column\" role=\"list\">\n {columnItems.map((item) => {\n const hasChildren = Boolean(item.children?.length);\n\n return (\n <li\n key={`${item.href}-${columnIndex}`}\n className={[\n \"lsg-header__mega-item\",\n hasChildren ? \"lsg-header__mega-item--has-children\" : \"\",\n isSelectedAtLevel(item, activePath, columnIndex)\n ? \"lsg-header__mega-item--active\"\n : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n onMouseEnter={() => {\n if (onMegaItemHover && hasChildren) {\n onMegaItemHover(item, columnIndex);\n }\n }}\n >\n <a href={item.href} className=\"lsg-header__mega-link\">\n <span>{item.label}</span>\n {hasChildren && <LsgHeaderIcon name=\"chevronRight\" />}\n </a>\n </li>\n );\n })}\n </ul>\n ))}\n </div>\n </div>\n );\n\n const renderMobileMenu = () => (\n <div className=\"lsg-header__mobile-panel\">\n {variant === \"dropdown\" ? (\n <LsgNavigation\n items={navItems}\n variant=\"dropdown\"\n onItemClick={(item, level) => onMobileItemClick?.(item, level + 1)}\n />\n ) : (\n <>\n {variant === \"mega\" && mobileLevel > 1 && (\n <nav className=\"lsg-header__mobile-back\" aria-label=\"Menu navigation\">\n <button\n type=\"button\"\n className=\"lsg-header__mobile-back-button\"\n aria-label={`Back to ${mobileBackLabel}`}\n onClick={() =>\n onMobileBreadcrumbClick?.(Math.max(1, mobileLevel - 1) as 1 | 2 | 3 | 4)\n }\n >\n <LsgHeaderIcon name=\"chevronRight\" />\n <span>Back to {mobileBackLabel}</span>\n </button>\n </nav>\n )}\n\n <ul className=\"lsg-header__mobile-list\" role=\"list\">\n {mobileItems.map((item, index) => {\n const hasChildren = Boolean(item.children?.length);\n const isSelected = mobileSelectedLabel\n ? item.label === mobileSelectedLabel\n : isCurrentOrActiveAtLevel(item, activePath, Math.max(0, mobileLevel - 1));\n\n return (\n <li\n key={`${item.href}-mobile-${index}`}\n className={[\n \"lsg-header__mobile-item\",\n hasChildren ? \"lsg-header__mobile-item--has-children\" : \"\",\n isSelected ? \"lsg-header__mobile-item--active\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n <a\n href={item.href}\n className=\"lsg-header__mobile-link\"\n onClick={(event) => {\n if (onMobileItemClick && hasChildren) {\n event.preventDefault();\n onMobileItemClick(item, Math.max(1, mobileLevel || 1));\n }\n }}\n >\n <span>{item.label}</span>\n {hasChildren && <LsgHeaderIcon name=\"chevronRight\" />}\n </a>\n </li>\n );\n })}\n </ul>\n </>\n )}\n </div>\n );\n\n return (\n <>\n <LsgSearchOverlay\n id={SEARCH_OVERLAY_ID}\n isOpen={searchOpen}\n onClose={() => setSearchOpen(false)}\n placeholder={searchPlaceholder}\n />\n <header\n ref={headerRef}\n className={[\n \"lsg-header\",\n `lsg-header--${variant}`,\n size ? `lsg-header--size-${size}` : \"\",\n menuOpen ? \"lsg-header--menu-open\" : \"\",\n `lsg-header--mobile-level-${mobileLevel}`,\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n <div className=\"lsg-header__inner\">\n <div className=\"lsg-logo-decorator\">\n <div className=\"lsg-logo\">\n <LsgLogo {...logo} />\n </div>\n </div>\n\n {variant !== \"mega\" && navItems.length > 0 && (\n <div className=\"lsg-header__nav\">\n <LsgNavigation items={navItems} variant={variant} onItemHover={onNavItemHover} />\n </div>\n )}\n\n {variant === \"mega\" && (\n <div className=\"lsg-header__desktop-menu\">{renderActions(true)}</div>\n )}\n\n {variant !== \"mega\" && (\n <div className=\"lsg-header__desktop-actions\">\n <span className=\"lsg-header__separator\" aria-hidden=\"true\">\n |\n </span>\n {renderActions(false)}\n </div>\n )}\n\n <div className=\"lsg-header__mobile-actions\">\n <HeaderActionButton\n label={searchLabel}\n icon=\"search\"\n controls={SEARCH_OVERLAY_ID}\n onClick={openSearch}\n />\n {languages.length > 0 && (\n <LsgLanguageSwitcher\n currentLanguage={currentLanguage}\n languages={languages}\n label={`Current language: ${currentLanguage}`}\n onLanguageChange={onLanguageChange}\n />\n )}\n <span className=\"lsg-header__separator\" aria-hidden=\"true\">\n |\n </span>\n <button\n type=\"button\"\n className=\"lsg-header__icon-button\"\n aria-label={mobileOpen ? \"Close menu\" : \"Open menu\"}\n aria-expanded={mobileOpen}\n onClick={onMenuToggle}\n data-lsg-menu-trigger\n >\n <LsgHeaderIcon name={mobileOpen ? \"close\" : \"bars\"} />\n </button>\n </div>\n </div>\n\n {variant === \"mega\" && menuOpen && (children || renderMegaPanel())}\n {mobileOpen && renderMobileMenu()}\n </header>\n\n \n </>\n );\n};\n","import React from \"react\";\nimport \"./LsgQuickLinks.scss\";\n\nexport interface LsgQuickLink {\n label: string;\n href: string;\n}\n\nexport interface LsgQuickLinksProps {\n heading?: string;\n links: LsgQuickLink[];\n}\n\nexport const LsgQuickLinks: React.FC<LsgQuickLinksProps> = ({ heading, links }) => {\n return (\n <nav className=\"lsg-quick-links\" aria-label={heading ?? \"Quick links\"}>\n {heading && <p className=\"lsg-quick-links__heading\" aria-hidden=\"true\">{heading}</p>}\n <ul className=\"lsg-quick-links__list\" role=\"list\">\n {links.map((link) => (\n <li key={link.href} className=\"lsg-quick-links__item\">\n <a href={link.href} className=\"lsg-quick-links__link\">\n {link.label}\n </a>\n </li>\n ))}\n </ul>\n </nav>\n );\n};\n","import React from \"react\";\nimport \"./LsgSocialMediaIcons.scss\";\n\nexport type LsgSocialPlatform =\n | \"linkedin\"\n | \"twitter\"\n | \"facebook\"\n | \"instagram\"\n | \"youtube\";\n\nexport interface LsgSocialItem {\n platform: LsgSocialPlatform;\n href: string;\n /** Screen-reader label, e.g. \"Atlas Copco on LinkedIn\" */\n label: string;\n}\n\nexport interface LsgSocialMediaIconsProps {\n items: LsgSocialItem[];\n}\n\nconst platformIcons: Record<LsgSocialPlatform, React.ReactElement> = {\n linkedin: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M20.45 20.45h-3.56v-5.57c0-1.33-.03-3.04-1.85-3.04-1.86 0-2.14 1.45-2.14 2.95v5.66H9.34V9h3.41v1.56h.05c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.45v6.29zM5.34 7.43a2.07 2.07 0 1 1 0-4.14 2.07 2.07 0 0 1 0 4.14zM7.12 20.45H3.55V9h3.57v11.45z\" />\n </svg>\n ),\n twitter: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\" />\n </svg>\n ),\n facebook: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M24 12.073C24 5.405 18.627 0 12 0S0 5.405 0 12.073C0 18.1 4.388 23.094 10.125 24v-8.437H7.078v-3.49h3.047V9.41c0-3.025 1.792-4.697 4.533-4.697 1.312 0 2.686.236 2.686.236v2.97h-1.513c-1.491 0-1.956.93-1.956 1.874v2.25h3.328l-.532 3.49h-2.796V24C19.612 23.094 24 18.1 24 12.073z\" />\n </svg>\n ),\n instagram: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6.406-11.845a1.44 1.44 0 1 0 0 2.881 1.44 1.44 0 0 0 0-2.881z\" />\n </svg>\n ),\n youtube: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z\" />\n </svg>\n ),\n};\n\nexport const LsgSocialMediaIcons: React.FC<LsgSocialMediaIconsProps> = ({ items }) => {\n return (\n <ul className=\"lsg-social-icons\" role=\"list\">\n {items.map((item) => (\n <li key={item.platform} className=\"lsg-social-icons__item\">\n <a\n href={item.href}\n className=\"lsg-social-icons__link\"\n aria-label={item.label}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {platformIcons[item.platform]}\n </a>\n </li>\n ))}\n </ul>\n );\n};\n","import React from \"react\";\nimport \"./LsgFooter.scss\";\nimport { LsgLogo, LsgLogoProps } from \"../LsgLogo\";\n\nexport interface LsgFooterNavItem {\n label: string;\n href: string;\n}\n\nexport interface LsgFooterContact {\n address?: string;\n phone?: string;\n fax?: string;\n email?: string;\n}\n\nexport interface LsgFooterColHeadings {\n contact?: string;\n quickLinks?: string;\n about?: string;\n contactAlt?: string;\n}\n\nexport interface LsgFooterProps {\n variant?: \"simple\" | \"complex\";\n /** 2-row simple variant (brand line top row, cookie+copyright+AI bottom row) */\n simpleTwoRow?: boolean;\n /** Brand line shown in simple 2-row top or complex footer below logo */\n brandLine?: string;\n /** Column layout for complex variant. Default: \"2col\" */\n complexColumns?: \"2col\" | \"3col\";\n /** Show \"This Website Is Translated With AI\" badge */\n showAiBadge?: boolean;\n /** Cookie settings link text (shown in 2-row simple or complex bottom bar) */\n cookieSetting?: string;\n logo?: LsgLogoProps;\n navItems?: LsgFooterNavItem[];\n contact?: LsgFooterContact;\n quickLinks?: LsgFooterNavItem[];\n copyright?: string;\n /** Column headings for complex footer */\n colHeadings?: LsgFooterColHeadings;\n /** Social icon links shown in complex footer */\n socialLinks?: {\n platform: \"facebook\" | \"twitter\" | \"linkedin\" | \"youtube\" | \"instagram\";\n href: string;\n }[];\n /** Where to show social icons in complex variant: \"body\" | \"bottom-bar\". Default: \"body\" */\n socialPosition?: \"body\" | \"bottom-bar\";\n className?: string;\n}\n\nconst PhoneIcon = () => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 640 640\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n {/* Font Awesome Pro v7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2026 Fonticons, Inc. */}\n <path\n d=\"M252.6 259L304.4 208L208.4 48L64.4 128L64.4 144C64.4 382.6 257.8 576 496.4 576L512.4 576L592.4 432L432.4 336L381.4 387.8C322.2 365 275.4 318.2 252.6 259zM440.1 396.6L527.9 449.3L484.3 527.8C281.9 521.5 118.9 358.6 112.6 156.1L191.1 112.5L243.8 200.3C226.8 217.1 211 232.6 196.5 246.9L207.8 276.3C235.5 348.2 292.3 404.9 364.1 432.6L393.5 443.9C407.8 429.4 423.3 413.6 440.1 396.6z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nconst FaxIcon = () => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M16 6h-1V2H5v4H4c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h1v2h10v-2h1c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zM7 4h6v2H7V4zm6 12H7v-4h6v4zm3-5H4V8h12v3z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nconst MailIcon = () => (\n <svg\n width=\"24\"\n height=\"20\"\n viewBox=\"0 0 640 640\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n {/* Font Awesome Pro v7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2026 Fonticons, Inc. */}\n <path\n d=\"M88 128L64 128L64 512L576 512L576 128L88 128zM528 192L528 196.1L320 353.9L112 196.1L112 176L528 176L528 192zM528 256.3L528 464L112 464L112 256.3L305.5 403.1L320 414.1L334.5 403.1L528 256.3z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nconst LocationIcon = () => (\n <svg\n width=\"18\"\n height=\"21\"\n viewBox=\"0 0 18 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M9 0C5.13 0 2 3.13 2 7c0 5.25 7 13 7 13s7-7.75 7-13C16 3.13 12.87 0 9 0zm0 9.5C7.62 9.5 6.5 8.38 6.5 7S7.62 4.5 9 4.5 11.5 5.62 11.5 7 10.38 9.5 9 9.5z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nconst AiBadge = () => (\n <span className=\"lsg-footer__ai-badge\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path\n d=\"M2 12h20M12 2a15.3 15.3 0 0 1 0 20M12 2a15.3 15.3 0 0 0 0 20\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n />\n </svg>\n This Website Is Translated With AI\n </span>\n);\n\nconst SocialIcon: React.FC<{ platform: string }> = ({ platform }) => {\n const icons: Record<string, React.ReactNode> = {\n facebook: (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 640 640\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n {/* Font Awesome Free v7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc. */}\n <path d=\"M240 363.3L240 576L356 576L356 363.3L442.5 363.3L460.5 265.5L356 265.5L356 230.9C356 179.2 376.3 159.4 428.7 159.4C445 159.4 458.1 159.8 465.7 160.6L465.7 71.9C451.4 68 416.4 64 396.2 64C289.3 64 240 114.5 240 223.4L240 265.5L174 265.5L174 363.3L240 363.3z\" />\n </svg>\n ),\n twitter: (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\" />\n </svg>\n ),\n linkedin: (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 640 640\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n {/* Font Awesome Free v7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc. */}\n <path d=\"M196.3 512L103.4 512L103.4 212.9L196.3 212.9L196.3 512zM149.8 172.1C120.1 172.1 96 147.5 96 117.8C96 103.5 101.7 89.9 111.8 79.8C121.9 69.7 135.6 64 149.8 64C164 64 177.7 69.7 187.8 79.8C197.9 89.9 203.6 103.6 203.6 117.8C203.6 147.5 179.5 172.1 149.8 172.1zM543.9 512L451.2 512L451.2 366.4C451.2 331.7 450.5 287.2 402.9 287.2C354.6 287.2 347.2 324.9 347.2 363.9L347.2 512L254.4 512L254.4 212.9L343.5 212.9L343.5 253.7L344.8 253.7C357.2 230.2 387.5 205.4 432.7 205.4C526.7 205.4 544 267.3 544 347.7L544 512L543.9 512z\" />\n </svg>\n ),\n youtube: (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 640 640\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n {/* Font Awesome Free v7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc. */}\n <path d=\"M581.7 188.1C575.5 164.4 556.9 145.8 533.4 139.5C490.9 128 320.1 128 320.1 128C320.1 128 149.3 128 106.7 139.5C83.2 145.8 64.7 164.4 58.4 188.1C47 231 47 320.4 47 320.4C47 320.4 47 409.8 58.4 452.7C64.7 476.3 83.2 494.2 106.7 500.5C149.3 512 320.1 512 320.1 512C320.1 512 490.9 512 533.5 500.5C557 494.2 575.5 476.3 581.8 452.7C593.2 409.8 593.2 320.4 593.2 320.4C593.2 320.4 593.2 231 581.8 188.1zM264.2 401.6L264.2 239.2L406.9 320.4L264.2 401.6z\" />\n </svg>\n ),\n instagram: (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 640 640\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n {/* Font Awesome Free v7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc. */}\n <path d=\"M320.3 205C256.8 204.8 205.2 256.2 205 319.7C204.8 383.2 256.2 434.8 319.7 435C383.2 435.2 434.8 383.8 435 320.3C435.2 256.8 383.8 205.2 320.3 205zM319.7 245.4C360.9 245.2 394.4 278.5 394.6 319.7C394.8 360.9 361.5 394.4 320.3 394.6C279.1 394.8 245.6 361.5 245.4 320.3C245.2 279.1 278.5 245.6 319.7 245.4zM413.1 200.3C413.1 185.5 425.1 173.5 439.9 173.5C454.7 173.5 466.7 185.5 466.7 200.3C466.7 215.1 454.7 227.1 439.9 227.1C425.1 227.1 413.1 215.1 413.1 200.3zM542.8 227.5C541.1 191.6 532.9 159.8 506.6 133.6C480.4 107.4 448.6 99.2 412.7 97.4C375.7 95.3 264.8 95.3 227.8 97.4C192 99.1 160.2 107.3 133.9 133.5C107.6 159.7 99.5 191.5 97.7 227.4C95.6 264.4 95.6 375.3 97.7 412.3C99.4 448.2 107.6 480 133.9 506.2C160.2 532.4 191.9 540.6 227.8 542.4C264.8 544.5 375.7 544.5 412.7 542.4C448.6 540.7 480.4 532.5 506.6 506.2C532.8 480 541 448.2 542.8 412.3C544.9 375.3 544.9 264.5 542.8 227.5zM495 452C487.2 471.6 472.1 486.7 452.4 494.6C422.9 506.3 352.9 503.6 320.3 503.6C287.7 503.6 217.6 506.2 188.2 494.6C168.6 486.8 153.5 471.7 145.6 452C133.9 422.5 136.6 352.5 136.6 319.9C136.6 287.3 134 217.2 145.6 187.8C153.4 168.2 168.5 153.1 188.2 145.2C217.7 133.5 287.7 136.2 320.3 136.2C352.9 136.2 423 133.6 452.4 145.2C472 153 487.1 168.1 495 187.8C506.7 217.3 504 287.3 504 319.9C504 352.5 506.7 422.6 495 452z\" />\n </svg>\n ),\n };\n return <>{icons[platform] ?? null}</>;\n};\n\nconst SocialIconsRow: React.FC<{ links: NonNullable<LsgFooterProps[\"socialLinks\"]> }> = ({\n links,\n}) => (\n <div className=\"lsg-footer__bottom-social\">\n {links.map((l) => (\n <a\n key={l.platform}\n href={l.href}\n aria-label={l.platform}\n style={{ color: \"inherit\", display: \"inline-flex\", alignItems: \"center\", opacity: 0.8 }}\n >\n <SocialIcon platform={l.platform} />\n </a>\n ))}\n </div>\n);\n\nexport const LsgFooter: React.FC<LsgFooterProps> = ({\n variant = \"simple\",\n simpleTwoRow = false,\n brandLine = \"Part of Atlas Copco Group\",\n complexColumns = \"2col\",\n showAiBadge = false,\n cookieSetting,\n logo,\n navItems = [],\n contact,\n quickLinks = [],\n copyright,\n colHeadings,\n socialLinks,\n socialPosition = \"body\",\n className = \"\",\n}) => {\n const year = new Date().getFullYear();\n const copyrightText = copyright ?? `© ${year} Brand - Part of Atlas Copco Group`;\n\n // ── Simple footer ──────────────────────────────────────────────────────────\n if (variant === \"simple\") {\n if (simpleTwoRow) {\n return (\n <footer\n className={`lsg-footer lsg-footer--simple lsg-footer--simple-tworow${\n className ? ` ${className}` : \"\"\n }`}\n >\n <div className=\"lsg-footer__simple-top\">\n <div className=\"lsg-footer__brand-line\">\n <span>{brandLine}</span>\n </div>\n {navItems.length > 0 && (\n <nav className=\"lsg-footer__simple-nav\" aria-label=\"Footer navigation\">\n {navItems.map((item, i) => (\n <React.Fragment key={item.href}>\n {i > 0 && (\n <span className=\"lsg-footer__pipe\" aria-hidden=\"true\">\n |\n </span>\n )}\n <a href={item.href} className=\"lsg-footer__simple-nav-item\">\n {item.label}\n </a>\n </React.Fragment>\n ))}\n </nav>\n )}\n </div>\n <div className=\"lsg-footer__simple-bottom\">\n <div className=\"lsg-footer__simple-bottom-left\">\n <p className=\"lsg-footer__copyright\">{copyrightText}</p>\n {\n // This renders a One Trust cookie settings button in AEM. The class \"lsg-footer__cookie-button\" is used for styling and is unrelated to the functionality of the button itself.\n cookieSetting && (\n <button className=\"lsg-footer__cookie-button\">{cookieSetting}</button>\n )\n }\n </div>\n {showAiBadge && <AiBadge />}\n </div>\n </footer>\n );\n }\n\n return (\n <footer className={`lsg-footer lsg-footer--simple${className ? ` ${className}` : \"\"}`}>\n <div className=\"lsg-footer__simple-inner\">\n <p className=\"lsg-footer__copyright\">{copyrightText}</p>\n <div className=\"lsg-footer__brand-line\">\n <span>{brandLine}</span>\n </div>\n {navItems.length > 0 && (\n <nav className=\"lsg-footer__simple-nav\" aria-label=\"Footer navigation\">\n {navItems.map((item, i) => (\n <React.Fragment key={item.href}>\n {i > 0 && (\n <>\n <span className=\"lsg-footer__pipe\" aria-hidden=\"true\">\n |\n </span>\n <hr className=\"lsg-footer__mobile-divider\" aria-hidden=\"true\" />\n </>\n )}\n <a href={item.href} className=\"lsg-footer__simple-nav-item\">\n {item.label}\n </a>\n </React.Fragment>\n ))}\n </nav>\n )}\n {\n // This renders a One Trust cookie settings button in AEM. The class \"lsg-footer__cookie-button\" is used for styling and is unrelated to the functionality of the button itself.\n cookieSetting && <button className=\"lsg-footer__cookie-button\">{cookieSetting}</button>\n }\n </div>\n </footer>\n );\n }\n\n // ── Complex footer ─────────────────────────────────────────────────────────\n const is3col = complexColumns === \"3col\";\n const headings = {\n contact: colHeadings?.contact ?? \"CONTACT\",\n quickLinks: colHeadings?.quickLinks ?? (is3col ? \"Quicklinks\" : \"QUICK LINKS\"),\n about: colHeadings?.about ?? \"About brand\",\n contactAlt: colHeadings?.contactAlt ?? \"Contact\",\n };\n\n const bottomTopBar = (\n <>\n <div className=\"lsg-footer__bottom-top\">\n <div className=\"lsg-footer__brand-line\">\n <span>\n Discover how the Atlas Copco Group enables technology that transforms the future.\n </span>\n </div>\n <div className=\"lsg-footer__body-social\">\n {socialPosition === \"body\" && socialLinks && socialLinks.length > 0 && (\n <SocialIconsRow links={socialLinks} />\n )}\n </div>\n </div>\n </>\n );\n\n const bottomBar = (\n <>\n <hr className=\"lsg-footer__bottom-divider\" />\n <div className=\"lsg-footer__bottom\">\n <div className=\"lsg-footer__bottom-left\">\n <p className=\"lsg-footer__copyright\">{copyrightText}</p>\n {\n // This renders a One Trust cookie settings button in AEM. The class \"lsg-footer__cookie-button\" is used for styling and is unrelated to the functionality of the button itself.\n cookieSetting && <button className=\"lsg-footer__cookie-button\">{cookieSetting}</button>\n }\n\n {is3col && showAiBadge && <AiBadge />}\n </div>\n {!is3col && showAiBadge && <AiBadge />}\n {socialPosition === \"bottom-bar\" && socialLinks && socialLinks.length > 0 && (\n <SocialIconsRow links={socialLinks} />\n )}\n </div>\n </>\n );\n\n if (is3col) {\n return (\n <footer className={`lsg-footer lsg-footer--complex${className ? ` ${className}` : \"\"}`}>\n <div className=\"lsg-footer__complex-inner\">\n {logo && (\n <div className=\"lsg-footer__logo-col\">\n <LsgLogo {...logo} />\n {brandLine && <span className=\"lsg-footer__brand-line\">{brandLine}</span>}\n </div>\n )}\n <div className=\"lsg-footer__content-cols lsg-footer__content-cols--3col\">\n <div className=\"lsg-footer__about-col\">\n <h3 className=\"lsg-footer__col-heading\">{headings.about}</h3>\n {contact?.address && (\n <div className=\"lsg-footer__address\">\n <LocationIcon />\n <p>{contact.address}</p>\n </div>\n )}\n </div>\n <div className=\"lsg-footer__contact-col\">\n <h3 className=\"lsg-footer__col-heading\">{headings.contactAlt}</h3>\n <div className=\"lsg-footer__contact-items\">\n {contact?.phone && (\n <div className=\"lsg-footer__contact-item\">\n <PhoneIcon />\n <span>{contact.phone}</span>\n </div>\n )}\n {contact?.fax && (\n <div className=\"lsg-footer__contact-item\">\n <FaxIcon />\n <span>{contact.fax}</span>\n </div>\n )}\n {contact?.email && (\n <div className=\"lsg-footer__contact-item\">\n <MailIcon />\n <a href={`mailto:${contact.email}`}>{contact.email}</a>\n </div>\n )}\n </div>\n </div>\n {quickLinks.length > 0 && (\n <div className=\"lsg-footer__quicklinks-col\">\n <h3 className=\"lsg-footer__col-heading\">{headings.quickLinks}</h3>\n <ul className=\"lsg-footer__quicklinks-list\">\n {quickLinks.map((link, i) => (\n <li key={link.href ?? i} className=\"lsg-footer__quicklink-item\">\n <a href={link.href} className=\"lsg-footer__quicklink\">\n {link.label}\n </a>\n <hr className=\"lsg-footer__divider\" />\n </li>\n ))}\n </ul>\n </div>\n )}\n </div>\n </div>\n {bottomTopBar}\n {bottomBar}\n </footer>\n );\n }\n\n return (\n <footer className={`lsg-footer lsg-footer--complex${className ? ` ${className}` : \"\"}`}>\n <div className=\"lsg-footer__complex-inner\">\n {logo && (\n <div className=\"lsg-footer__logo-col\">\n <LsgLogo {...logo} />\n {brandLine && <span className=\"lsg-footer__brand-line\">{brandLine}</span>}\n </div>\n )}\n <div className=\"lsg-footer__content-cols\">\n {contact && (\n <div className=\"lsg-footer__contact-col\">\n <h3 className=\"lsg-footer__col-heading\">{headings.contact}</h3>\n {contact.address && (\n <div className=\"lsg-footer__address\">\n <LocationIcon />\n <p>{contact.address}</p>\n </div>\n )}\n <hr className=\"lsg-footer__divider\" />\n <div className=\"lsg-footer__contact-items\">\n {contact.phone && (\n <div className=\"lsg-footer__contact-item\">\n <PhoneIcon />\n <span>{contact.phone}</span>\n </div>\n )}\n {contact.fax && (\n <div className=\"lsg-footer__contact-item\">\n <FaxIcon />\n <span>{contact.fax}</span>\n </div>\n )}\n {contact.email && (\n <div className=\"lsg-footer__contact-item\">\n <MailIcon />\n <a href={`mailto:${contact.email}`}>{contact.email}</a>\n </div>\n )}\n </div>\n </div>\n )}\n {quickLinks.length > 0 && (\n <div className=\"lsg-footer__quicklinks-col\">\n <h3 className=\"lsg-footer__col-heading\">{headings.quickLinks}</h3>\n <ul className=\"lsg-footer__quicklinks-list\">\n {quickLinks.map((link, i) => (\n <li key={link.href ?? i} className=\"lsg-footer__quicklink-item\">\n <a href={link.href} className=\"lsg-footer__quicklink\">\n {link.label}\n </a>\n <hr className=\"lsg-footer__divider\" />\n </li>\n ))}\n </ul>\n </div>\n )}\n </div>\n </div>\n {bottomTopBar}\n {bottomBar}\n </footer>\n );\n};\n","function clampNumber(number, min, max) {\n return Math.min(Math.max(number, min), max);\n}\nfunction isNumber(value) {\n return typeof value === 'number' && !isNaN(value);\n}\n\nfunction Fade(userOptions = {}) {\n const fullOpacity = 1;\n const noOpacity = 0;\n const fadeFriction = 0.68;\n let emblaApi;\n let opacities = [];\n let fadeToNextDistance;\n let distanceFromPointerDown = 0;\n let fadeVelocity = 0;\n let progress = 0;\n let shouldFadePair = false;\n let defaultSettledBehaviour;\n let defaultProgressBehaviour;\n function init(emblaApiInstance) {\n emblaApi = emblaApiInstance;\n const selectedSnap = emblaApi.selectedScrollSnap();\n const {\n scrollBody,\n containerRect,\n axis\n } = emblaApi.internalEngine();\n const containerSize = axis.measureSize(containerRect);\n fadeToNextDistance = clampNumber(containerSize * 0.75, 200, 500);\n shouldFadePair = false;\n opacities = emblaApi.scrollSnapList().map((_, index) => index === selectedSnap ? fullOpacity : noOpacity);\n defaultSettledBehaviour = scrollBody.settled;\n defaultProgressBehaviour = emblaApi.scrollProgress;\n scrollBody.settled = settled;\n emblaApi.scrollProgress = scrollProgress;\n emblaApi.on('select', select).on('slideFocus', fadeToSelectedSnapInstantly).on('pointerDown', pointerDown).on('pointerUp', pointerUp);\n disableScroll();\n fadeToSelectedSnapInstantly();\n }\n function destroy() {\n const {\n scrollBody\n } = emblaApi.internalEngine();\n scrollBody.settled = defaultSettledBehaviour;\n emblaApi.scrollProgress = defaultProgressBehaviour;\n emblaApi.off('select', select).off('slideFocus', fadeToSelectedSnapInstantly).off('pointerDown', pointerDown).off('pointerUp', pointerUp);\n emblaApi.slideNodes().forEach(slideNode => {\n const slideStyle = slideNode.style;\n slideStyle.opacity = '';\n slideStyle.transform = '';\n slideStyle.pointerEvents = '';\n if (!slideNode.getAttribute('style')) slideNode.removeAttribute('style');\n });\n }\n function fadeToSelectedSnapInstantly() {\n const selectedSnap = emblaApi.selectedScrollSnap();\n setOpacities(selectedSnap, fullOpacity);\n }\n function pointerUp() {\n shouldFadePair = false;\n }\n function pointerDown() {\n shouldFadePair = false;\n distanceFromPointerDown = 0;\n fadeVelocity = 0;\n }\n function select() {\n const duration = emblaApi.internalEngine().scrollBody.duration();\n fadeVelocity = duration ? 0 : fullOpacity;\n shouldFadePair = true;\n if (!duration) fadeToSelectedSnapInstantly();\n }\n function getSlideTransform(position) {\n const {\n axis\n } = emblaApi.internalEngine();\n const translateAxis = axis.scroll.toUpperCase();\n return `translate${translateAxis}(${axis.direction(position)}px)`;\n }\n function disableScroll() {\n const {\n translate,\n slideLooper\n } = emblaApi.internalEngine();\n translate.clear();\n translate.toggleActive(false);\n slideLooper.loopPoints.forEach(({\n translate\n }) => {\n translate.clear();\n translate.toggleActive(false);\n });\n }\n function lockExcessiveScroll(fadeIndex) {\n const {\n scrollSnaps,\n location,\n target\n } = emblaApi.internalEngine();\n if (!isNumber(fadeIndex) || opacities[fadeIndex] < 0.5) return;\n location.set(scrollSnaps[fadeIndex]);\n target.set(location);\n }\n function setOpacities(fadeIndex, velocity) {\n const scrollSnaps = emblaApi.scrollSnapList();\n scrollSnaps.forEach((_, indexA) => {\n const absVelocity = Math.abs(velocity);\n const currentOpacity = opacities[indexA];\n const isFadeIndex = indexA === fadeIndex;\n const nextOpacity = isFadeIndex ? currentOpacity + absVelocity : currentOpacity - absVelocity;\n const clampedOpacity = clampNumber(nextOpacity, noOpacity, fullOpacity);\n opacities[indexA] = clampedOpacity;\n const fadePair = isFadeIndex && shouldFadePair;\n const indexB = emblaApi.previousScrollSnap();\n if (fadePair) opacities[indexB] = 1 - clampedOpacity;\n if (isFadeIndex) setProgress(fadeIndex, clampedOpacity);\n setOpacity(indexA);\n });\n }\n function setOpacity(index) {\n const slidesInSnap = emblaApi.internalEngine().slideRegistry[index];\n const {\n scrollSnaps,\n containerRect\n } = emblaApi.internalEngine();\n const opacity = opacities[index];\n slidesInSnap.forEach(slideIndex => {\n const slideStyle = emblaApi.slideNodes()[slideIndex].style;\n const roundedOpacity = parseFloat(opacity.toFixed(2));\n const hasOpacity = roundedOpacity > noOpacity;\n const position = hasOpacity ? scrollSnaps[index] : containerRect.width + 2;\n const transform = getSlideTransform(position);\n if (hasOpacity) slideStyle.transform = transform;\n slideStyle.opacity = roundedOpacity.toString();\n slideStyle.pointerEvents = opacity > 0.5 ? 'auto' : 'none';\n if (!hasOpacity) slideStyle.transform = transform;\n });\n }\n function setProgress(fadeIndex, opacity) {\n const {\n index,\n dragHandler,\n scrollSnaps\n } = emblaApi.internalEngine();\n const pointerDown = dragHandler.pointerDown();\n const snapFraction = 1 / (scrollSnaps.length - 1);\n let indexA = fadeIndex;\n let indexB = pointerDown ? emblaApi.selectedScrollSnap() : emblaApi.previousScrollSnap();\n if (pointerDown && indexA === indexB) {\n const reverseSign = Math.sign(distanceFromPointerDown) * -1;\n indexA = indexB;\n indexB = index.clone().set(indexB).add(reverseSign).get();\n }\n const currentPosition = indexB * snapFraction;\n const diffPosition = (indexA - indexB) * snapFraction;\n progress = currentPosition + diffPosition * opacity;\n }\n function getFadeIndex() {\n const {\n dragHandler,\n index,\n scrollBody\n } = emblaApi.internalEngine();\n const selectedSnap = emblaApi.selectedScrollSnap();\n if (!dragHandler.pointerDown()) return selectedSnap;\n const directionSign = Math.sign(scrollBody.velocity());\n const distanceSign = Math.sign(distanceFromPointerDown);\n const nextSnap = index.clone().set(selectedSnap).add(directionSign * -1).get();\n if (!directionSign || !distanceSign) return null;\n return distanceSign === directionSign ? nextSnap : selectedSnap;\n }\n function fade(emblaApi) {\n const {\n dragHandler,\n scrollBody\n } = emblaApi.internalEngine();\n const pointerDown = dragHandler.pointerDown();\n const velocity = scrollBody.velocity();\n const duration = scrollBody.duration();\n const fadeIndex = getFadeIndex();\n const noFadeIndex = !isNumber(fadeIndex);\n if (pointerDown) {\n if (!velocity) return;\n distanceFromPointerDown += velocity;\n fadeVelocity = Math.abs(velocity / fadeToNextDistance);\n lockExcessiveScroll(fadeIndex);\n }\n if (!pointerDown) {\n if (!duration || noFadeIndex) return;\n fadeVelocity += (fullOpacity - opacities[fadeIndex]) / duration;\n fadeVelocity *= fadeFriction;\n }\n if (noFadeIndex) return;\n setOpacities(fadeIndex, fadeVelocity);\n }\n function settled() {\n const {\n target,\n location\n } = emblaApi.internalEngine();\n const diffToTarget = target.get() - location.get();\n const notReachedTarget = Math.abs(diffToTarget) >= 1;\n const fadeIndex = getFadeIndex();\n const noFadeIndex = !isNumber(fadeIndex);\n fade(emblaApi);\n if (noFadeIndex || notReachedTarget) return false;\n return opacities[fadeIndex] > 0.999;\n }\n function scrollProgress() {\n return progress;\n }\n const self = {\n name: 'fade',\n options: userOptions,\n init,\n destroy\n };\n return self;\n}\nFade.globalOptions = undefined;\n\nexport { Fade as default };\n//# sourceMappingURL=embla-carousel-fade.esm.js.map\n","import EmblaCarousel, { EmblaCarouselType } from \"embla-carousel\";\nimport EmblaCarouselFade from \"embla-carousel-fade\";\n\n// ─────────────────────────────────────────────────────────────────────────────\n// LsgHeroController — shared vanilla JS carousel controller\n// ─────────────────────────────────────────────────────────────────────────────\n//\n// Single source of truth for carousel behaviour. Used by:\n// 1. The React LsgHero component (via useEffect + refs)\n// 2. The AEM clientlib initHero function (directly on server-rendered DOM)\n//\n// This means carousel logic is written once and behaves identically in both\n// Storybook and AEM — no React-specific wrappers, no divergence.\n//\n// Usage:\n// const controller = new LsgHeroController(viewportEl, elements, options);\n// // later when unmounting:\n// controller.destroy();\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport type LsgHeroControllerTransition = \"slide\" | \"fade\";\n\nexport interface LsgHeroControllerOptions {\n /** Slide transition style. Defaults to \"slide\". */\n transition?: LsgHeroControllerTransition;\n /** Enable autoplay. Defaults to true. */\n autoplay?: boolean;\n /** Autoplay interval in milliseconds. Defaults to 5000. */\n autoplayInterval?: number;\n}\n\nexport interface LsgHeroControllerElements {\n /** Previous-slide button. */\n prevBtn?: HTMLElement | null;\n /** Next-slide button. */\n nextBtn?: HTMLElement | null;\n /** Scroll-down trigger button. */\n scrollDownBtn?: HTMLElement | null;\n /** Element to scroll into view when scroll-down is triggered. */\n scrollDownTarget?: HTMLElement | null;\n}\n\nexport class LsgHeroController {\n private embla: EmblaCarouselType | null = null;\n private autoplayTimer: ReturnType<typeof setInterval> | null = null;\n private contentObserver: ResizeObserver | null = null;\n private rafId: ReturnType<typeof requestAnimationFrame> | null = null;\n private readonly opts: Required<LsgHeroControllerOptions>;\n private readonly els: LsgHeroControllerElements;\n\n constructor(\n viewport: HTMLElement,\n elements: LsgHeroControllerElements = {},\n options: LsgHeroControllerOptions = {}\n ) {\n this.opts = {\n transition: options.transition ?? \"slide\",\n autoplay: options.autoplay ?? true,\n autoplayInterval: options.autoplayInterval ?? 5000,\n };\n this.els = elements;\n this.mount(viewport);\n }\n\n private mount(viewport: HTMLElement): void {\n this.els.prevBtn?.addEventListener(\"click\", this.scrollPrev);\n this.els.nextBtn?.addEventListener(\"click\", this.scrollNext);\n this.els.scrollDownBtn?.addEventListener(\"click\", this.handleScrollDown);\n\n // First frame lets React's initial paint settle; second guarantees that\n // async-injected stylesheets (e.g. --lsg-hero-axis) have been computed.\n this.rafId = requestAnimationFrame(() => {\n this.rafId = requestAnimationFrame(() => {\n this.rafId = null;\n if (!viewport.isConnected) return;\n\n const section = viewport.closest<HTMLElement>(\"[data-lsg-is='hero']\");\n const axis: \"x\" | \"y\" =\n section && getComputedStyle(section).getPropertyValue(\"--lsg-hero-axis\").trim() === \"y\"\n ? \"y\"\n : \"x\";\n\n const plugins = this.opts.transition === \"fade\" ? [EmblaCarouselFade()] : [];\n this.embla = EmblaCarousel(viewport, { loop: true, axis }, plugins);\n\n if (this.opts.autoplay) {\n this.startAutoplay();\n this.embla.on(\"pointerDown\", this.stopAutoplay);\n this.embla.on(\"pointerUp\", this.startAutoplay);\n }\n\n // Sync the first slide's content-wrapper height to a CSS custom property\n // on the section root so the controls column can match it dynamically.\n const contentWrapper = section?.querySelector<HTMLElement>(\".lsg-hero-card__content-wrapper\");\n if (section && contentWrapper && typeof ResizeObserver !== \"undefined\") {\n const setHeight = (el: Element): void => {\n (section as HTMLElement).style.setProperty(\n \"--lsg-hero-content-height\",\n `${(el as HTMLElement).offsetHeight}px`\n );\n };\n setHeight(contentWrapper);\n this.contentObserver = new ResizeObserver((entries) => {\n setHeight(entries[0].target);\n });\n this.contentObserver.observe(contentWrapper);\n }\n\n // For vertical carousels the section height (100svh) cascades from a\n // useEffect-set data-lsg-theme attribute, which may land one frame after\n // this RAF. Re-measure so Embla has the correct slide dimensions.\n if (axis === \"y\") {\n requestAnimationFrame(() => {\n if (viewport.isConnected) this.embla?.reInit();\n });\n }\n });\n });\n }\n\n readonly scrollPrev = (): void => {\n this.embla?.scrollPrev();\n if (this.opts.autoplay) this.startAutoplay();\n };\n\n readonly scrollNext = (): void => {\n this.embla?.scrollNext();\n if (this.opts.autoplay) this.startAutoplay();\n };\n\n private readonly handleScrollDown = (): void => {\n this.els.scrollDownTarget?.scrollIntoView({ behavior: \"smooth\" });\n };\n\n /** Start the autoplay interval (resets any existing timer). */\n readonly startAutoplay = (): void => {\n this.stopAutoplay();\n this.autoplayTimer = setInterval(this.scrollNext, this.opts.autoplayInterval);\n };\n\n /** Clear the autoplay interval. */\n readonly stopAutoplay = (): void => {\n if (this.autoplayTimer !== null) {\n clearInterval(this.autoplayTimer);\n this.autoplayTimer = null;\n }\n };\n\n /** Direct access to the underlying Embla instance for advanced usage. */\n get emblaApi(): EmblaCarouselType | null {\n return this.embla;\n }\n\n /** Tear down event listeners, autoplay, and the Embla instance. */\n destroy(): void {\n if (this.rafId !== null) {\n cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n this.stopAutoplay();\n this.contentObserver?.disconnect();\n this.contentObserver = null;\n if (this.embla) {\n this.embla.off(\"pointerDown\", this.stopAutoplay);\n this.embla.off(\"pointerUp\", this.startAutoplay);\n this.embla.destroy();\n this.embla = null;\n }\n this.els.prevBtn?.removeEventListener(\"click\", this.scrollPrev);\n this.els.nextBtn?.removeEventListener(\"click\", this.scrollNext);\n this.els.scrollDownBtn?.removeEventListener(\"click\", this.handleScrollDown);\n }\n}\n","import React, { useState } from \"react\";\nimport \"./LsgHeroCard.scss\";\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Types\n// ─────────────────────────────────────────────────────────────────────────────\n\n/** Token names that map to `--lsg-color-*` custom properties. */\nexport type LsgHeroColorToken =\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"light\"\n | \"dark\"\n | \"black\"\n | \"white\";\n\nexport interface LsgHeroCardProps {\n /** DAM/CDN URL for the background image. Used as poster/fallback for video. */\n imageSrc?: string;\n /** Alt text for the image. */\n imageAlt?: string;\n /** DAM/CDN URL for an mp4/webm video asset. */\n videoSrc?: string;\n /** YouTube video ID only (e.g. \"dQw4w9WgXcQ\"). */\n youtubeId?: string;\n /** Vimeo video ID only (e.g. \"148751763\"). */\n vimeoId?: string;\n /**\n * Background colour token for this card. Always tints the content text-box\n * (`lsg-hero-card--bg-{token}`). When the card has NO image/video, it instead\n * fills the whole card as a solid colour (`lsg-hero-card--fill-{token}`) with a\n * transparent content box.\n */\n cardBackground?: LsgHeroColorToken;\n /** Text colour token for this card's content (`lsg-hero-card--color-{token}`). */\n cardColor?: LsgHeroColorToken;\n /**\n * Content slot rendered on top of the media layer inside the white text-box\n * overlay. In AEM this is the parsys (container) inside each hero-card.\n * Accepts any LSG components: Title, Text, Button, etc.\n */\n children?: React.ReactNode;\n /** Index within the parent carousel — used for accessible label. */\n index?: number;\n /** Total slide count from the parent — used for accessible label. */\n total?: number;\n className?: string;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// LsgHeroCard\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const LsgHeroCard: React.FC<LsgHeroCardProps> = ({\n imageSrc,\n imageAlt = \"\",\n videoSrc,\n youtubeId,\n vimeoId,\n cardBackground,\n cardColor,\n children,\n index,\n total,\n className = \"\",\n}) => {\n const [videoReady, setVideoReady] = useState(false);\n\n // Video source priority: YouTube > Vimeo > DAM\n const hasYoutube = Boolean(youtubeId);\n const hasVimeo = !hasYoutube && Boolean(vimeoId);\n const hasDam = !hasYoutube && !hasVimeo && Boolean(videoSrc);\n\n // No image/video → the card renders as a solid colour (fill) instead of a\n // media backdrop; with media, cardBackground tints the content text-box.\n const hasMedia = Boolean(imageSrc || videoSrc || youtubeId || vimeoId);\n\n const youtubeEmbedSrc = youtubeId\n ? `https://www.youtube.com/embed/${youtubeId}?autoplay=1&mute=1&loop=1&controls=0&disablekb=1&fs=0&iv_load_policy=3&modestbranding=1&playlist=${youtubeId}&rel=0`\n : undefined;\n\n const vimeoEmbedSrc = vimeoId\n ? `https://player.vimeo.com/video/${vimeoId}?autoplay=1&loop=1&background=1&muted=1`\n : undefined;\n\n const ariaLabel =\n index !== undefined && total !== undefined\n ? `Slide ${index + 1} of ${total}`\n : undefined;\n\n const articleClasses = [\n \"lsg-hero-card\",\n // Background: tint the content box when there's media; fill the whole card when there isn't.\n cardBackground &&\n (hasMedia\n ? `lsg-hero-card--bg-${cardBackground}`\n : `lsg-hero-card--fill-${cardBackground}`),\n cardColor && `lsg-hero-card--color-${cardColor}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <article className={articleClasses} role=\"listitem\" aria-label={ariaLabel}>\n {/* ── Media layer ──────────────────────────────────────────────────── */}\n <div className=\"lsg-hero-card__media\" aria-hidden=\"true\">\n {imageSrc && (\n // eslint-disable-next-line @next/next/no-img-element\n <img\n className=\"lsg-hero-card__image\"\n src={imageSrc}\n alt={imageAlt}\n loading=\"eager\"\n />\n )}\n\n {hasDam && (\n <video\n className={`lsg-hero-card__video${videoReady ? \" lsg-hero-card__video--ready\" : \"\"}`}\n autoPlay\n muted\n loop\n playsInline\n onCanPlay={() => setVideoReady(true)}\n >\n <source src={videoSrc} />\n </video>\n )}\n\n {hasYoutube && (\n <div className=\"lsg-hero-card__video-embed lsg-hero-card__video-embed--youtube\">\n <iframe\n src={youtubeEmbedSrc}\n title=\"Hero background video\"\n allow=\"autoplay\"\n aria-hidden=\"true\"\n tabIndex={-1}\n />\n </div>\n )}\n\n {hasVimeo && (\n <div className=\"lsg-hero-card__video-embed lsg-hero-card__video-embed--vimeo\">\n <iframe\n src={vimeoEmbedSrc}\n title=\"Hero background video\"\n allow=\"autoplay\"\n aria-hidden=\"true\"\n tabIndex={-1}\n />\n </div>\n )}\n </div>\n\n {/* ── Content slot (text-box overlay) ──────────────────────────────── */}\n <div className=\"lsg-hero-card__content layout-container--medium\">\n <div className=\"lsg-hero-card__content-wrapper\">\n {children}\n </div>\n </div>\n </article>\n );\n};\n","import React, { useCallback, useEffect, useRef } from \"react\";\nimport { LsgHeroController } from \"./LsgHeroController\";\nimport { LsgHeroCard } from \"../LsgHeroCard/LsgHeroCard\";\nimport type { LsgHeroCardProps, LsgHeroColorToken } from \"../LsgHeroCard/LsgHeroCard\";\nimport \"./LsgHero.scss\";\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Types\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport type LsgHeroHeight = \"full\" | \"75vh\";\nexport type LsgHeroTransition = \"slide\" | \"fade\";\n\n/** Colour token type now lives on the card; re-exported here for back-compat. */\nexport type { LsgHeroColorToken };\n\n/**\n * A single hero slide. All media/content props are forwarded directly to\n * LsgHeroCard — see LsgHeroCardProps for full documentation.\n */\nexport type LsgHeroSlide = Omit<LsgHeroCardProps, \"index\" | \"total\">;\n\nexport interface LsgHeroProps {\n slides: LsgHeroSlide[];\n /** Minimum height of the hero. Defaults to \"full\" (100vh). */\n height?: LsgHeroHeight;\n /** Show previous/next arrow controls (only in carousel mode). */\n showArrows?: boolean;\n /** Slide transition. Defaults to \"slide\". */\n transition?: LsgHeroTransition;\n /** Render a scroll-down affordance at the bottom of the hero. */\n enableScrollDown?: boolean;\n /** Label for the scroll-down button. Icon-only when omitted. */\n scrollDownText?: string;\n /** Enable carousel autoplay. Defaults to true. */\n autoplay?: boolean;\n /** Autoplay interval in milliseconds. Defaults to 5000. */\n autoplayInterval?: number;\n className?: string;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// LsgHero\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const LsgHero: React.FC<LsgHeroProps> = ({\n slides = [],\n height = \"full\",\n showArrows = true,\n transition = \"slide\",\n enableScrollDown = false,\n scrollDownText,\n autoplay = true,\n autoplayInterval = 5000,\n className = \"\",\n}) => {\n const isCarousel = slides.length > 1;\n\n // ── Refs ──────────────────────────────────────────────────────────────────\n const sectionRef = useRef<HTMLElement>(null);\n const viewportRef = useRef<HTMLDivElement>(null);\n const prevBtnRef = useRef<HTMLButtonElement>(null);\n const nextBtnRef = useRef<HTMLButtonElement>(null);\n const controllerRef = useRef<LsgHeroController | null>(null);\n\n // ── Controller init (vanilla JS — same logic as AEM clientlib) ────────────\n useEffect(() => {\n if (!viewportRef.current || !isCarousel) return;\n\n controllerRef.current = new LsgHeroController(\n viewportRef.current,\n {\n prevBtn: showArrows ? prevBtnRef.current : undefined,\n nextBtn: showArrows ? nextBtnRef.current : undefined,\n },\n { transition, autoplay, autoplayInterval },\n );\n\n return () => {\n controllerRef.current?.destroy();\n controllerRef.current = null;\n };\n }, [isCarousel, showArrows, transition, autoplay, autoplayInterval]);\n\n // ── Scroll-down ───────────────────────────────────────────────────────────\n const handleScrollDown = useCallback(() => {\n const next = sectionRef.current?.nextElementSibling as HTMLElement | null;\n next?.scrollIntoView({ behavior: \"smooth\" });\n }, []);\n\n // ── Class names ───────────────────────────────────────────────────────────\n const sectionClasses = [\n \"lsg-hero\",\n `lsg-hero--${height}`,\n `lsg-hero--${transition}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n // ── Render ────────────────────────────────────────────────────────────────\n return (\n <section\n ref={sectionRef}\n className={sectionClasses}\n data-lsg-is=\"hero\"\n data-lsg-carousel={String(isCarousel)}\n data-lsg-transition={transition}\n data-lsg-arrows={String(showArrows)}\n >\n {/* Embla viewport */}\n <div className=\"lsg-hero__viewport\" ref={viewportRef}>\n <div className=\"lsg-hero__slides\" role=\"list\">\n {slides.map((slide, index) => (\n <LsgHeroCard\n key={index}\n {...slide}\n index={index}\n total={slides.length}\n />\n ))}\n </div>\n </div>\n\n {/* Carousel controls */}\n {isCarousel && showArrows && (\n <div className=\"lsg-hero__controls-wrap\">\n <nav className=\"lsg-hero__controls\" aria-label=\"Hero navigation\">\n <button\n ref={prevBtnRef}\n className=\"lsg-hero__prev\"\n type=\"button\"\n aria-label=\"Previous slide\"\n >\n <span className=\"lsg-hero__arrow-icon\" aria-hidden=\"true\" />\n </button>\n <button\n ref={nextBtnRef}\n className=\"lsg-hero__next\"\n type=\"button\"\n aria-label=\"Next slide\"\n >\n <span className=\"lsg-hero__arrow-icon\" aria-hidden=\"true\" />\n </button>\n </nav>\n </div>\n )}\n\n {/* Scroll-down affordance */}\n {enableScrollDown && (\n <div className=\"lsg-hero__scroll-down\">\n <button\n className=\"lsg-hero__scroll-down-btn\"\n type=\"button\"\n aria-label={scrollDownText ?? \"Scroll down\"}\n onClick={handleScrollDown}\n >\n {scrollDownText && (\n <span className=\"lsg-hero__scroll-down-text\">{scrollDownText}</span>\n )}\n <span className=\"lsg-hero__scroll-down-icon\" aria-hidden=\"true\" />\n </button>\n </div>\n )}\n </section>\n );\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport \"./LsgTabs.scss\";\n\n// Matches $lsg-tabs-accordion-breakpoint in LsgTabs.scss ($breakpoint-sm - 1px)\n// and MOBILE_MEDIA_QUERY in lsg-clientlib-runtime.ts.\nconst MOBILE_MEDIA_QUERY = \"(max-width: 767px)\";\n\n// Sub-pixel layout rounding when comparing scroll offsets against extents\nconst SCROLL_EPSILON = 1;\n\nconst CHEVRON_SVG = (\n <svg\n className=\"lsg-tabs__tab-icon-svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path\n d=\"M3 6L8 11L13 6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport interface LsgTabsItem {\n id: string;\n title: string;\n content: React.ReactNode;\n}\n\nexport type LsgTabsVariant = \"default\" | \"vertical\";\n\nexport interface LsgTabsProps {\n items: LsgTabsItem[];\n /** Id of the initially selected tab. Defaults to the first item. */\n activeId?: string;\n /** Visual variant. Default: \"default\" */\n variant?: LsgTabsVariant;\n /** Value of aria-label on the tablist. */\n accessibilityLabel?: string;\n className?: string;\n}\n\nexport const LsgTabs: React.FC<LsgTabsProps> = ({\n items,\n activeId,\n variant = \"default\",\n accessibilityLabel,\n className = \"\",\n}) => {\n const [selectedId, setSelectedId] = useState<string>(activeId ?? items[0]?.id ?? \"\");\n // Below the breakpoint the tabs render as a single-open accordion and the open\n // header can be collapsed. Tracked separately from selection so exactly one tab\n // stays selected at every width — resizing back to desktop just reveals it again.\n const [collapsed, setCollapsed] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n // Scroll-arrow state. The arrows themselves are ::before / ::after on the root\n // (see LsgTabs.scss) — these only say whether there is more to reveal.\n const [scrollStart, setScrollStart] = useState(false);\n const [scrollEnd, setScrollEnd] = useState(false);\n\n const tabRefs = useRef<Record<string, HTMLLIElement | null>>({});\n const stripRef = useRef<HTMLOListElement | null>(null);\n\n const isVertical = variant === \"vertical\";\n\n const selectedIndex = Math.max(\n 0,\n items.findIndex((item) => item.id === selectedId)\n );\n\n useEffect(() => {\n const mql = window.matchMedia(MOBILE_MEDIA_QUERY);\n const sync = (): void => setIsMobile(mql.matches);\n sync();\n mql.addEventListener(\"change\", sync);\n return () => mql.removeEventListener(\"change\", sync);\n }, []);\n\n const updateArrows = (): void => {\n const strip = stripRef.current;\n // Below the breakpoint this is an accordion — nothing scrolls, so the arrows\n // must not be offered.\n if (!strip || isMobile) {\n setScrollStart(false);\n setScrollEnd(false);\n return;\n }\n\n const offset = isVertical ? strip.scrollTop : strip.scrollLeft;\n const visible = isVertical ? strip.clientHeight : strip.clientWidth;\n const total = isVertical ? strip.scrollHeight : strip.scrollWidth;\n\n setScrollStart(offset > SCROLL_EPSILON);\n setScrollEnd(offset + visible < total - SCROLL_EPSILON);\n };\n\n useEffect(() => {\n updateArrows();\n }, [isMobile, isVertical, items, selectedIndex]);\n\n useEffect(() => {\n const strip = stripRef.current;\n if (!strip || typeof ResizeObserver === \"undefined\") return;\n // The strip can start overflowing because its container changed, with no\n // viewport resize at all.\n const observer = new ResizeObserver(() => updateArrows());\n observer.observe(strip);\n return () => observer.disconnect();\n }, [isMobile, isVertical]);\n\n useEffect(() => {\n // A late web-font swap widens the labels, growing scrollWidth without changing\n // the strip's own box — so ResizeObserver may never fire. Re-measure once the\n // fonts have settled, otherwise the arrows can be stale on first paint.\n let cancelled = false;\n document.fonts?.ready.then(() => {\n if (!cancelled) updateArrows();\n });\n return () => {\n cancelled = true;\n };\n }, [isMobile, isVertical]);\n\n const scrollStrip = (direction: -1 | 1): void => {\n const strip = stripRef.current;\n if (!strip) return;\n // A step just under one viewport keeps a sliver of context in view\n const visible = isVertical ? strip.clientHeight : strip.clientWidth;\n const step = Math.max(visible * 0.8, 1);\n if (isVertical) {\n strip.scrollTop += direction * step;\n } else {\n strip.scrollLeft += direction * step;\n }\n };\n\n // The arrows are pseudo-elements painted above the strip, so a click on one\n // hit-tests to the root rather than to a tab or panel. Nothing else on the root\n // is clickable, which is what makes this unambiguous.\n const onRootClick = (event: React.MouseEvent<HTMLDivElement>): void => {\n if (event.target !== event.currentTarget) return;\n const strip = stripRef.current;\n if (!strip) return;\n\n const rect = strip.getBoundingClientRect();\n const beforeMidpoint = isVertical\n ? event.clientY < rect.top + rect.height / 2\n : event.clientX < rect.left + rect.width / 2;\n\n scrollStrip(beforeMidpoint ? -1 : 1);\n };\n\n const select = (index: number, moveFocus: boolean): void => {\n const item = items[index];\n if (!item) return;\n setSelectedId(item.id);\n setCollapsed(false);\n const tab = tabRefs.current[item.id];\n // Arrow-key navigation can land on a tab that is scrolled out of the strip\n tab?.scrollIntoView({ block: \"nearest\", inline: \"nearest\" });\n if (moveFocus) tab?.focus();\n };\n\n const press = (index: number): void => {\n if (isMobile && index === selectedIndex) {\n setCollapsed((prev) => !prev);\n return;\n }\n select(index, false);\n };\n\n // Roving tabindex keyboard model for role=\"tab\" — see bootLsgTabs for the AEM twin.\n const onKeyDown = (event: React.KeyboardEvent<HTMLLIElement>, index: number): void => {\n const last = items.length - 1;\n\n switch (event.key) {\n case \"ArrowRight\":\n case \"ArrowDown\":\n event.preventDefault();\n select(selectedIndex === last ? 0 : selectedIndex + 1, true);\n break;\n case \"ArrowLeft\":\n case \"ArrowUp\":\n event.preventDefault();\n select(selectedIndex === 0 ? last : selectedIndex - 1, true);\n break;\n case \"Home\":\n event.preventDefault();\n select(0, true);\n break;\n case \"End\":\n event.preventDefault();\n select(last, true);\n break;\n case \"Enter\":\n case \" \":\n event.preventDefault();\n press(index);\n break;\n default:\n break;\n }\n };\n\n const rootClass = [\n \"lsg-tabs\",\n isVertical ? \"lsg-tabs--vertical\" : \"\",\n scrollStart ? \"lsg-tabs--scroll-start\" : \"\",\n scrollEnd ? \"lsg-tabs--scroll-end\" : \"\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div className={rootClass} onClick={onRootClick}>\n <ol\n ref={stripRef}\n className=\"lsg-tabs__tablist\"\n role=\"tablist\"\n aria-label={accessibilityLabel}\n aria-multiselectable=\"false\"\n onScroll={updateArrows}\n >\n {items.map((item, index) => {\n const isActive = index === selectedIndex;\n return (\n <li\n key={item.id}\n ref={(node) => {\n tabRefs.current[item.id] = node;\n }}\n role=\"tab\"\n id={`lsg-tab-${item.id}`}\n className={`lsg-tabs__tab${isActive ? \" lsg-tabs__tab--active\" : \"\"}`}\n aria-controls={`lsg-tabpanel-${item.id}`}\n aria-selected={isActive}\n // Desktop is a tab strip — aria-selected carries the state there, and\n // the collapsed class has no styling, so aria-expanded would mislead.\n aria-expanded={isMobile ? isActive && !collapsed : undefined}\n tabIndex={isActive ? 0 : -1}\n onClick={() => press(index)}\n onKeyDown={(event) => onKeyDown(event, index)}\n >\n <span className=\"lsg-tabs__tab-label\">{item.title}</span>\n <span className=\"lsg-tabs__tab-icon\" aria-hidden=\"true\">\n {CHEVRON_SVG}\n </span>\n </li>\n );\n })}\n </ol>\n\n {items.map((item, index) => {\n const isActive = index === selectedIndex;\n return (\n <div\n key={item.id}\n id={`lsg-tabpanel-${item.id}`}\n role=\"tabpanel\"\n aria-labelledby={`lsg-tab-${item.id}`}\n tabIndex={0}\n className={[\n \"lsg-tabs__panel\",\n isActive ? \"lsg-tabs__panel--active\" : \"\",\n isActive && collapsed ? \"lsg-tabs__panel--collapsed\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n {item.content}\n </div>\n );\n })}\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgTable.scss\";\n\nexport type LsgTableColor =\n | \"white\"\n | \"black\"\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"light\"\n | \"dark\";\n\nexport type LsgTableCell = React.ReactNode;\n\nexport interface LsgTableProps {\n headers: LsgTableCell[];\n rows: LsgTableCell[][];\n headerBackground?: LsgTableColor;\n accentColors?: LsgTableColor;\n noAlternatingRows?: boolean;\n caption?: React.ReactNode;\n id?: string;\n className?: string;\n}\n\n/**\n * Storybook representation of the AEM LSG table markup.\n * It deliberately emits the same Style System class contract as AEM.\n */\nexport const LsgTable: React.FC<LsgTableProps> = ({\n headers,\n rows,\n headerBackground = \"primary\",\n accentColors = \"black\",\n noAlternatingRows = false,\n caption,\n id,\n className,\n}) => {\n const wrapperClassName = [\n \"table-focus\",\n `background-color-${headerBackground}`,\n `accent-color-${accentColors}`,\n `no-alternating-rows-${noAlternatingRows}`,\n className,\n ].filter(Boolean).join(\" \");\n\n return (\n <>\n <div id={id} className={wrapperClassName}>\n <table>\n <tbody>\n <tr>\n {headers.map((cell, index) => (\n <td key={`header-${index}`}>{cell}</td>\n ))}\n </tr>\n {rows.map((row, rowIndex) => (\n <tr key={`row-${rowIndex}`}>\n {row.map((cell, cellIndex) => (\n <td key={`cell-${rowIndex}-${cellIndex}`}>{cell}</td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n <div className=\"table-caption\">{caption}</div>\n </>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldText.scss\";\n\nexport interface LsgFormFieldTextProps {\n id?: string;\n label: string;\n helpText?: string;\n placeholder?: string;\n defaultValue?: string;\n required?: boolean;\n disabled?: boolean;\n /** Shows inline error text and marks the input invalid */\n error?: string;\n autocomplete?: string;\n minLength?: number;\n maxLength?: number;\n name?: string;\n}\n\nexport const LsgFormFieldText: React.FC<LsgFormFieldTextProps> = ({\n id = \"field-text\",\n label,\n helpText,\n placeholder,\n defaultValue = \"\",\n required = false,\n disabled = false,\n error,\n autocomplete,\n minLength,\n maxLength,\n name,\n}) => {\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy = [helpId, error ? errorId : undefined]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--text\">\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <input\n type=\"text\"\n className=\"cmp-vtba-form__input\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n placeholder={placeholder}\n autoComplete={autocomplete}\n minLength={minLength}\n maxLength={maxLength}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n />\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldEmail.scss\";\n\nexport interface LsgFormFieldEmailProps {\n id?: string;\n label: string;\n helpText?: string;\n placeholder?: string;\n defaultValue?: string;\n required?: boolean;\n disabled?: boolean;\n error?: string;\n maxLength?: number;\n name?: string;\n}\n\nexport const LsgFormFieldEmail: React.FC<LsgFormFieldEmailProps> = ({\n id = \"field-email\",\n label,\n helpText,\n placeholder,\n defaultValue = \"\",\n required = false,\n disabled = false,\n error,\n maxLength,\n name,\n}) => {\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy = [helpId, error ? errorId : undefined]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--email\">\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <input\n type=\"email\"\n className=\"cmp-vtba-form__input\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n placeholder={placeholder}\n autoComplete=\"email\"\n maxLength={maxLength}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n />\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import B,{useMemo as We,useRef as qe,useState as Je}from\"react\";var M=[[\"Afghanistan\",\"af\",\"93\"],[\"Albania\",\"al\",\"355\"],[\"Algeria\",\"dz\",\"213\"],[\"Andorra\",\"ad\",\"376\"],[\"Angola\",\"ao\",\"244\"],[\"Antigua and Barbuda\",\"ag\",\"1268\"],[\"Argentina\",\"ar\",\"54\",{default:\"(..) .... ....\",\"/^11/\":\"(..) .... ....\",\"/^15/\":\"(..) ... ....\",\"/^(2|3|4|5)/\":\"(.) .... ....\",\"/^9/\":\"(.) .... .....\"},0],[\"Armenia\",\"am\",\"374\",\".. ......\"],[\"Aruba\",\"aw\",\"297\"],[\"Australia\",\"au\",\"61\",{default:\". .... ....\",\"/^4/\":\"... ... ...\",\"/^5(?!50)/\":\"... ... ...\",\"/^1(3|8)00/\":\".... ... ...\",\"/^13/\":\".. .. ..\",\"/^180/\":\"... ....\"},0,[]],[\"Austria\",\"at\",\"43\"],[\"Azerbaijan\",\"az\",\"994\",\"(..) ... .. ..\"],[\"Bahamas\",\"bs\",\"1242\"],[\"Bahrain\",\"bh\",\"973\",\".... ....\"],[\"Bangladesh\",\"bd\",\"880\"],[\"Barbados\",\"bb\",\"1246\"],[\"Belarus\",\"by\",\"375\",\"(..) ... .. ..\"],[\"Belgium\",\"be\",\"32\",\"... .. .. ..\"],[\"Belize\",\"bz\",\"501\"],[\"Benin\",\"bj\",\"229\"],[\"Bhutan\",\"bt\",\"975\"],[\"Bolivia\",\"bo\",\"591\"],[\"Bosnia and Herzegovina\",\"ba\",\"387\"],[\"Botswana\",\"bw\",\"267\"],[\"Brazil\",\"br\",\"55\",\"(..) .....-....\"],[\"British Indian Ocean Territory\",\"io\",\"246\"],[\"Brunei\",\"bn\",\"673\"],[\"Bulgaria\",\"bg\",\"359\"],[\"Burkina Faso\",\"bf\",\"226\"],[\"Burundi\",\"bi\",\"257\"],[\"Cambodia\",\"kh\",\"855\"],[\"Cameroon\",\"cm\",\"237\"],[\"Canada\",\"ca\",\"1\",\"(...) ...-....\",1,[\"204\",\"226\",\"236\",\"249\",\"250\",\"289\",\"306\",\"343\",\"365\",\"387\",\"403\",\"416\",\"418\",\"431\",\"437\",\"438\",\"450\",\"506\",\"514\",\"519\",\"548\",\"579\",\"581\",\"587\",\"604\",\"613\",\"639\",\"647\",\"672\",\"705\",\"709\",\"742\",\"778\",\"780\",\"782\",\"807\",\"819\",\"825\",\"867\",\"873\",\"902\",\"905\"]],[\"Cape Verde\",\"cv\",\"238\"],[\"Caribbean Netherlands\",\"bq\",\"599\",\"\",1],[\"Cayman Islands\",\"ky\",\"1\",\"... ... ....\",4,[\"345\"]],[\"Central African Republic\",\"cf\",\"236\"],[\"Chad\",\"td\",\"235\"],[\"Chile\",\"cl\",\"56\"],[\"China\",\"cn\",\"86\",\"... .... ....\"],[\"Colombia\",\"co\",\"57\",\"... ... ....\"],[\"Comoros\",\"km\",\"269\"],[\"Congo\",\"cd\",\"243\"],[\"Congo\",\"cg\",\"242\"],[\"Costa Rica\",\"cr\",\"506\",\"....-....\"],[\"C\\xF4te d'Ivoire\",\"ci\",\"225\",\".. .. .. .. ..\"],[\"Croatia\",\"hr\",\"385\"],[\"Cuba\",\"cu\",\"53\"],[\"Cura\\xE7ao\",\"cw\",\"599\",\"\",0],[\"Cyprus\",\"cy\",\"357\",\".. ......\"],[\"Czech Republic\",\"cz\",\"420\",\"... ... ...\"],[\"Denmark\",\"dk\",\"45\",\".. .. .. ..\"],[\"Djibouti\",\"dj\",\"253\",\".. .. ....\"],[\"Dominica\",\"dm\",\"1767\"],[\"Dominican Republic\",\"do\",\"1\",\"(...) ...-....\",2,[\"809\",\"829\",\"849\"]],[\"Ecuador\",\"ec\",\"593\"],[\"Egypt\",\"eg\",\"20\"],[\"El Salvador\",\"sv\",\"503\",\"....-....\"],[\"Equatorial Guinea\",\"gq\",\"240\"],[\"Eritrea\",\"er\",\"291\"],[\"Estonia\",\"ee\",\"372\",\".... ......\"],[\"Ethiopia\",\"et\",\"251\",\".. ... ....\"],[\"Faroe Islands\",\"fo\",\"298\",\".. .. ..\"],[\"Fiji\",\"fj\",\"679\"],[\"Finland\",\"fi\",\"358\",\".. ... .. ..\"],[\"France\",\"fr\",\"33\",\". .. .. .. ..\"],[\"French Guiana\",\"gf\",\"594\",\"... .. .. ..\"],[\"French Polynesia\",\"pf\",\"689\",{\"/^44/\":\".. .. ..\",\"/^80[0-5]/\":\"... .. .. ..\",default:\".. .. .. ..\"}],[\"Gabon\",\"ga\",\"241\"],[\"Gambia\",\"gm\",\"220\"],[\"Georgia\",\"ge\",\"995\"],[\"Germany\",\"de\",\"49\",\"... .........\"],[\"Ghana\",\"gh\",\"233\"],[\"Gibraltar\",\"gi\",\"350\"],[\"Greece\",\"gr\",\"30\"],[\"Greenland\",\"gl\",\"299\",\".. .. ..\"],[\"Grenada\",\"gd\",\"1473\"],[\"Guadeloupe\",\"gp\",\"590\",\"... .. .. ..\",0],[\"Guam\",\"gu\",\"1671\"],[\"Guatemala\",\"gt\",\"502\",\"....-....\"],[\"Guinea\",\"gn\",\"224\"],[\"Guinea-Bissau\",\"gw\",\"245\"],[\"Guyana\",\"gy\",\"592\"],[\"Haiti\",\"ht\",\"509\",\"....-....\"],[\"Honduras\",\"hn\",\"504\"],[\"Hong Kong\",\"hk\",\"852\",\".... ....\"],[\"Hungary\",\"hu\",\"36\"],[\"Iceland\",\"is\",\"354\",\"... ....\"],[\"India\",\"in\",\"91\",\".....-.....\"],[\"Indonesia\",\"id\",\"62\"],[\"Iran\",\"ir\",\"98\",\"... ... ....\"],[\"Iraq\",\"iq\",\"964\"],[\"Ireland\",\"ie\",\"353\",\".. .......\"],[\"Israel\",\"il\",\"972\",\"... ... ....\"],[\"Italy\",\"it\",\"39\",\"... .......\",0],[\"Jamaica\",\"jm\",\"1876\"],[\"Japan\",\"jp\",\"81\",\".. .... ....\"],[\"Jordan\",\"jo\",\"962\"],[\"Kazakhstan\",\"kz\",\"7\",\"... ...-..-..\",0],[\"Kenya\",\"ke\",\"254\"],[\"Kiribati\",\"ki\",\"686\"],[\"Kosovo\",\"xk\",\"383\"],[\"Kuwait\",\"kw\",\"965\",\".... ....\"],[\"Kyrgyzstan\",\"kg\",\"996\",\"... ... ...\"],[\"Laos\",\"la\",\"856\"],[\"Latvia\",\"lv\",\"371\",\".. ... ...\"],[\"Lebanon\",\"lb\",\"961\"],[\"Lesotho\",\"ls\",\"266\"],[\"Liberia\",\"lr\",\"231\"],[\"Libya\",\"ly\",\"218\"],[\"Liechtenstein\",\"li\",\"423\"],[\"Lithuania\",\"lt\",\"370\"],[\"Luxembourg\",\"lu\",\"352\"],[\"Macau\",\"mo\",\"853\"],[\"Macedonia\",\"mk\",\"389\"],[\"Madagascar\",\"mg\",\"261\"],[\"Malawi\",\"mw\",\"265\"],[\"Malaysia\",\"my\",\"60\",\"..-....-....\"],[\"Maldives\",\"mv\",\"960\"],[\"Mali\",\"ml\",\"223\"],[\"Malta\",\"mt\",\"356\"],[\"Marshall Islands\",\"mh\",\"692\"],[\"Martinique\",\"mq\",\"596\",\"... .. .. ..\"],[\"Mauritania\",\"mr\",\"222\"],[\"Mauritius\",\"mu\",\"230\"],[\"Mayotte\",\"yt\",\"262\",\"... .. .. ..\",1,[\"269\",\"639\"]],[\"Mexico\",\"mx\",\"52\",\"... ... ....\",0],[\"Micronesia\",\"fm\",\"691\"],[\"Moldova\",\"md\",\"373\",\"(..) ..-..-..\"],[\"Monaco\",\"mc\",\"377\"],[\"Mongolia\",\"mn\",\"976\"],[\"Montenegro\",\"me\",\"382\"],[\"Morocco\",\"ma\",\"212\"],[\"Mozambique\",\"mz\",\"258\"],[\"Myanmar\",\"mm\",\"95\"],[\"Namibia\",\"na\",\"264\"],[\"Nauru\",\"nr\",\"674\"],[\"Nepal\",\"np\",\"977\"],[\"Netherlands\",\"nl\",\"31\",{\"/^06/\":\"(.). .........\",\"/^6/\":\". .........\",\"/^0(10|13|14|15|20|23|24|26|30|33|35|36|38|40|43|44|45|46|50|53|55|58|70|71|72|73|74|75|76|77|78|79|82|84|85|87|88|91)/\":\"(.).. ........\",\"/^(10|13|14|15|20|23|24|26|30|33|35|36|38|40|43|44|45|46|50|53|55|58|70|71|72|73|74|75|76|77|78|79|82|84|85|87|88|91)/\":\".. ........\",\"/^0/\":\"(.)... .......\",default:\"... .......\"}],[\"New Caledonia\",\"nc\",\"687\"],[\"New Zealand\",\"nz\",\"64\",\"...-...-....\"],[\"Nicaragua\",\"ni\",\"505\"],[\"Niger\",\"ne\",\"227\"],[\"Nigeria\",\"ng\",\"234\"],[\"North Korea\",\"kp\",\"850\"],[\"Norway\",\"no\",\"47\",\"... .. ...\"],[\"Oman\",\"om\",\"968\",\".... ....\"],[\"Pakistan\",\"pk\",\"92\",\"...-.......\"],[\"Palau\",\"pw\",\"680\"],[\"Palestine\",\"ps\",\"970\"],[\"Panama\",\"pa\",\"507\"],[\"Papua New Guinea\",\"pg\",\"675\"],[\"Paraguay\",\"py\",\"595\"],[\"Peru\",\"pe\",\"51\"],[\"Philippines\",\"ph\",\"63\",\"... ... ....\"],[\"Poland\",\"pl\",\"48\",\"...-...-...\"],[\"Portugal\",\"pt\",\"351\"],[\"Puerto Rico\",\"pr\",\"1\",\"(...) ...-....\",3,[\"787\",\"939\"]],[\"Qatar\",\"qa\",\"974\",\".... ....\"],[\"R\\xE9union\",\"re\",\"262\",\"... .. .. ..\",0],[\"Romania\",\"ro\",\"40\"],[\"Russia\",\"ru\",\"7\",\"(...) ...-..-..\",1],[\"Rwanda\",\"rw\",\"250\"],[\"Saint Kitts and Nevis\",\"kn\",\"1869\"],[\"Saint Lucia\",\"lc\",\"1758\"],[\"Saint Pierre & Miquelon\",\"pm\",\"508\",{\"/^708/\":\"... ... ...\",\"/^8/\":\"... .. .. ..\",default:\".. .. ..\"}],[\"Saint Vincent and the Grenadines\",\"vc\",\"1784\"],[\"Samoa\",\"ws\",\"685\"],[\"San Marino\",\"sm\",\"378\"],[\"S\\xE3o Tom\\xE9 and Pr\\xEDncipe\",\"st\",\"239\"],[\"Saudi Arabia\",\"sa\",\"966\",\".. ... ....\"],[\"Senegal\",\"sn\",\"221\"],[\"Serbia\",\"rs\",\"381\"],[\"Seychelles\",\"sc\",\"248\"],[\"Sierra Leone\",\"sl\",\"232\"],[\"Singapore\",\"sg\",\"65\",\"....-....\"],[\"Slovakia\",\"sk\",\"421\"],[\"Slovenia\",\"si\",\"386\"],[\"Solomon Islands\",\"sb\",\"677\"],[\"Somalia\",\"so\",\"252\"],[\"South Africa\",\"za\",\"27\"],[\"South Korea\",\"kr\",\"82\",\"... .... ....\"],[\"South Sudan\",\"ss\",\"211\"],[\"Spain\",\"es\",\"34\",\"... ... ...\"],[\"Sri Lanka\",\"lk\",\"94\"],[\"Sudan\",\"sd\",\"249\"],[\"Suriname\",\"sr\",\"597\"],[\"Swaziland\",\"sz\",\"268\"],[\"Sweden\",\"se\",\"46\",\"... ... ...\"],[\"Switzerland\",\"ch\",\"41\",\".. ... .. ..\"],[\"Syria\",\"sy\",\"963\"],[\"Taiwan\",\"tw\",\"886\"],[\"Tajikistan\",\"tj\",\"992\"],[\"Tanzania\",\"tz\",\"255\"],[\"Thailand\",\"th\",\"66\"],[\"Timor-Leste\",\"tl\",\"670\"],[\"Togo\",\"tg\",\"228\"],[\"Tonga\",\"to\",\"676\"],[\"Trinidad and Tobago\",\"tt\",\"1868\"],[\"Tunisia\",\"tn\",\"216\"],[\"Turkey\",\"tr\",\"90\",\"... ... .. ..\"],[\"Turkmenistan\",\"tm\",\"993\"],[\"Tuvalu\",\"tv\",\"688\"],[\"Uganda\",\"ug\",\"256\"],[\"Ukraine\",\"ua\",\"380\",\"(..) ... .. ..\"],[\"United Arab Emirates\",\"ae\",\"971\",{default:\".. ... ....\",\"/^5[024568]/\":\".. ... ....\",\"/^[234679]/\":\". ... ....\"}],[\"United Kingdom\",\"gb\",\"44\",\".... ......\"],[\"United States\",\"us\",\"1\",\"(...) ...-....\",0],[\"Uruguay\",\"uy\",\"598\"],[\"Uzbekistan\",\"uz\",\"998\",\".. ... .. ..\"],[\"Vanuatu\",\"vu\",\"678\"],[\"Vatican City\",\"va\",\"39\",\".. .... ....\",1],[\"Venezuela\",\"ve\",\"58\"],[\"Vietnam\",\"vn\",\"84\"],[\"Wallis & Futuna\",\"wf\",\"681\",\".. .. ..\"],[\"Yemen\",\"ye\",\"967\"],[\"Zambia\",\"zm\",\"260\"],[\"Zimbabwe\",\"zw\",\"263\"]];var Ne=\"react-international-phone-\",de=(...t)=>t.filter(e=>!!e).join(\" \").trim(),Me=(...t)=>de(...t).split(\" \").map(e=>`${Ne}${e}`).join(\" \"),S=({addPrefix:t,rawClassNames:e})=>de(Me(...t),...e);var ce=({value:t,mask:e,maskSymbol:n,offset:s=0,trimNonMaskCharsLeftover:r=!1,allowMaskOverflow:a=!1})=>{if(t.length<s)return t;let p=t.slice(0,s),i=t.slice(s),o=e.split(\"\").filter(d=>d===n).length,u=i.slice(0,o),l=a?i.slice(o):\"\",m=p,y=0;for(let d of e.split(\"\")){if(y>=u.length){if(!r&&d!==n){m+=d;continue}break}d===n?(m+=u[y],y+=1):m+=d}return m+l};var O=t=>t?/^\\d+$/.test(t):!1;var V=t=>t.replace(/\\D/g,\"\");var pe=(t,e)=>{let n=t.style.display;n!==\"block\"&&(t.style.display=\"block\");let s=t.getBoundingClientRect(),r=e.getBoundingClientRect(),a=r.top-s.top,p=s.bottom-r.bottom;a>=0&&p>=0||(Math.abs(a)<Math.abs(p)?t.scrollTop+=a:t.scrollTop-=p),t.style.display=n};var Re=t=>{let{name:e,iso2:n,dialCode:s,format:r,priority:a,areaCodes:p}=t,i=[e,n,s,r,a,p];for(let o=0;o<i.length;o+=1){if(o===0)continue;let u=i[o-1],l=i[o];if(u===void 0&&l!==void 0){let m=JSON.stringify(i,(y,d)=>d===void 0?\"__undefined\":d).replace(/\"__undefined\"/g,\"undefined\");throw new Error(`[react-international-phone] invalid country values passed to buildCountryData. Check ${u} in: ${m}`)}}return i.filter(o=>o!==void 0)};import{useCallback as re,useEffect as xe,useMemo as $e,useRef as Fe,useState as ze}from\"react\";var me=()=>typeof window>\"u\"?!1:window.navigator.userAgent.toLowerCase().includes(\"macintosh\");var fe=({phone:t,dialCode:e,prefix:n=\"+\",charAfterDialCode:s=\" \"})=>{if(!t||!e)return t;let r=t;return r.startsWith(n)&&(r=r.replace(n,\"\")),r.startsWith(e)?(r=r.replace(e,\"\"),r.startsWith(s)&&(r=r.replace(s,\"\")),r):t};var Ce=(t,e)=>{let n=e.disableDialCodeAndPrefix?!1:e.forceDialCode,s=e.disableDialCodeAndPrefix?!1:e.insertDialCodeOnEmpty,r=t,a=u=>e.trimNonDigitsEnd?u.trim():u;if(!r)return s&&!r.length||n?a(`${e.prefix}${e.dialCode}${e.charAfterDialCode}`):a(r);if(r=V(r),r===e.dialCode&&!e.disableDialCodeAndPrefix)return a(`${e.prefix}${e.dialCode}${e.charAfterDialCode}`);if(e.dialCode.startsWith(r)&&!e.disableDialCodeAndPrefix)return a(n?`${e.prefix}${e.dialCode}${e.charAfterDialCode}`:`${e.prefix}${r}`);if(!r.startsWith(e.dialCode)&&!e.disableDialCodeAndPrefix){if(n)return a(`${e.prefix}${e.dialCode}${e.charAfterDialCode}`);if(r.length<e.dialCode.length)return a(`${e.prefix}${r}`)}let p=()=>{let u=e.dialCode.length,l=r.slice(0,u),m=r.slice(u);return{phoneLeftSide:l,phoneRightSide:m}},{phoneLeftSide:i,phoneRightSide:o}=p();return i=`${e.prefix}${i}${e.charAfterDialCode}`,o=ce({value:o,mask:e.mask,maskSymbol:e.maskChar,trimNonMaskCharsLeftover:e.trimNonDigitsEnd||e.disableDialCodeAndPrefix&&o.length===0,allowMaskOverflow:e.allowMaskOverflow}),e.disableDialCodeAndPrefix&&(i=\"\"),a(`${i}${o}`)};var he=({phoneBeforeInput:t,phoneAfterInput:e,phoneAfterFormatted:n,cursorPositionAfterInput:s,leftOffset:r=0,deletion:a})=>{if(s<r)return r;if(!t)return n.length;let p=null;for(let l=s-1;l>=0;l-=1)if(O(e[l])){p=l;break}if(p===null){for(let l=0;l<e.length;l+=1)if(O(n[l]))return l;return e.length}let i=0;for(let l=0;l<p;l+=1)O(e[l])&&(i+=1);let o=0,u=0;for(let l=0;l<n.length&&(o+=1,O(n[l])&&(u+=1),!(u>=i+1));l+=1);if(a!==\"backward\")for(;!O(n[o])&&o<n.length;)o+=1;return o};var G=({phone:t,prefix:e})=>t?`${e}${V(t)}`:\"\";function W({value:t,country:e,insertDialCodeOnEmpty:n,trimNonDigitsEnd:s,countries:r,prefix:a,charAfterDialCode:p,forceDialCode:i,disableDialCodeAndPrefix:o,defaultMask:u,countryGuessingEnabled:l,disableFormatting:m,allowMaskOverflow:y}){let d=t;o&&(d=d.startsWith(`${a}`)?d:`${a}${e.dialCode}${d}`);let w=l?ee({phone:d,countries:r,currentCountryIso2:e?.iso2}):void 0,f=w?.country??e,v=Ce(d,{prefix:a,mask:Y({phone:d,country:f,defaultMask:u,disableFormatting:m}),maskChar:J,dialCode:f.dialCode,trimNonDigitsEnd:s,charAfterDialCode:p,forceDialCode:i,insertDialCodeOnEmpty:n,disableDialCodeAndPrefix:o,allowMaskOverflow:y}),g=l&&!w?.fullDialCodeMatch?e:f;return{phone:G({phone:o?`${g.dialCode}${v}`:v,prefix:a}),inputValue:v,country:g}}var _e=t=>{if(t?.toLocaleLowerCase().includes(\"delete\")??!1)return t?.toLocaleLowerCase().includes(\"forward\")?\"forward\":\"backward\"},ye=(t,{country:e,insertDialCodeOnEmpty:n,phoneBeforeInput:s,prefix:r,charAfterDialCode:a,forceDialCode:p,disableDialCodeAndPrefix:i,countryGuessingEnabled:o,defaultMask:u,disableFormatting:l,countries:m,allowMaskOverflow:y})=>{let d=t.nativeEvent,w=d.inputType,f=_e(w),v=!!w?.startsWith(\"insertFrom\"),g=w===\"insertText\",D=d?.data||void 0,I=t.target.value,_=t.target.selectionStart??0;if(w?.includes(\"history\"))return{inputValue:s,phone:G({phone:s,prefix:r}),cursorPosition:s.length,country:e};if(g&&!O(D)&&I!==r)return{inputValue:s,phone:G({phone:i?`${e.dialCode}${s}`:s,prefix:r}),cursorPosition:_-(D?.length??0),country:e};if(p&&!I.startsWith(`${r}${e.dialCode}`)&&!v){let b=I?s:`${r}${e.dialCode}${a}`;return{inputValue:b,phone:G({phone:b,prefix:r}),cursorPosition:r.length+e.dialCode.length+a.length,country:e}}let{phone:c,inputValue:C,country:h}=W({value:I,country:e,trimNonDigitsEnd:f===\"backward\",insertDialCodeOnEmpty:n,countryGuessingEnabled:o,countries:m,prefix:r,charAfterDialCode:a,forceDialCode:p,disableDialCodeAndPrefix:i,disableFormatting:l,defaultMask:u,allowMaskOverflow:y}),P=he({cursorPositionAfterInput:_,phoneBeforeInput:s,phoneAfterInput:I,phoneAfterFormatted:C,leftOffset:p?r.length+e.dialCode.length+a.length:0,deletion:f});return{phone:c,inputValue:C,cursorPosition:P,country:h}};import{useCallback as te,useRef as ve,useState as Ee}from\"react\";var ge=(t,e)=>{let n=Object.keys(t),s=Object.keys(e);if(n.length!==s.length)return!1;for(let r of n)if(t[r]!==e[r])return!1;return!0};import{useCallback as Te,useMemo as Ae,useRef as be}from\"react\";var we=()=>{let t=be(),e=be(Date.now()),n=Te(()=>{let s=Date.now(),r=t.current?s-e.current:void 0;return t.current=e.current,e.current=s,r},[]);return Ae(()=>({check:n}),[n])};var Le={size:20,overrideLastItemDebounceMS:-1};function Pe(t,e){let{size:n,overrideLastItemDebounceMS:s,onChange:r}={...Le,...e},[a,p]=Ee(t),i=ve([a]),o=ve(0),u=we(),l=te((d,w)=>{let f=i.current[o.current];if(d===f||typeof d==\"object\"&&typeof f==\"object\"&&ge(d,f))return;let v=s>0,g=u.check(),E=v&&g!==void 0?g>s:!0;if(w?.overrideLastItem!==void 0?w.overrideLastItem:!E)i.current=[...i.current.slice(0,o.current),d];else{let I=i.current.length>=n;i.current=[...i.current.slice(I?1:0,o.current+1),d],I||(o.current+=1)}p(d),r?.(d)},[r,s,n,u]),m=te(()=>{if(o.current<=0)return{success:!1};let d=i.current[o.current-1];return p(d),o.current-=1,r?.(d),{success:!0,value:d}},[r]),y=te(()=>{if(o.current+1>=i.current.length)return{success:!1};let d=i.current[o.current+1];return p(d),o.current+=1,r?.(d),{success:!0,value:d}},[r]);return[a,l,m,y]}var J=\".\",R={defaultCountry:\"us\",value:\"\",prefix:\"+\",defaultMask:\"............\",charAfterDialCode:\" \",historySaveDebounceMS:200,disableCountryGuess:!1,disableDialCodePrefill:!1,forceDialCode:!1,disableDialCodeAndPrefix:!1,disableFormatting:!1,allowMaskOverflow:!1,countries:M,preferredCountries:[]},oe=({defaultCountry:t=R.defaultCountry,value:e=R.value,countries:n=R.countries,prefix:s=R.prefix,defaultMask:r=R.defaultMask,charAfterDialCode:a=R.charAfterDialCode,historySaveDebounceMS:p=R.historySaveDebounceMS,disableCountryGuess:i=R.disableCountryGuess,disableDialCodePrefill:o=R.disableDialCodePrefill,forceDialCode:u=R.forceDialCode,disableDialCodeAndPrefix:l=R.disableDialCodeAndPrefix,disableFormatting:m=R.disableFormatting,allowMaskOverflow:y=R.allowMaskOverflow,onChange:d,inputRef:w})=>{let g={countries:n,prefix:s,charAfterDialCode:a,forceDialCode:l?!1:u,disableDialCodeAndPrefix:l,defaultMask:r,countryGuessingEnabled:!i,disableFormatting:m,allowMaskOverflow:y},E=Fe(null),D=w||E,I=x=>{Promise.resolve().then(()=>{typeof window>\"u\"||D.current!==document?.activeElement||D.current?.setSelectionRange(x,x)})},_=re(x=>z({value:x,field:\"iso2\",countries:n}),[n]),c=re(({inputValue:x,phone:T,country:k})=>{if(!d)return;let F=_(k);d({phone:T,inputValue:x,country:F})},[_,d]),[{phone:C,inputValue:h,country:P},b,L,$]=Pe(()=>{let x=z({value:t,field:\"iso2\",countries:n});x||console.error(`[react-international-phone]: can not find a country with \"${t}\" iso2 code`);let T=x||z({value:\"us\",field:\"iso2\",countries:n}),{phone:k,inputValue:F,country:U}=W({value:e,country:T,insertDialCodeOnEmpty:!o,...g});return I(F.length),{phone:k,inputValue:F,country:U.iso2}},{overrideLastItemDebounceMS:p,onChange:c}),A=$e(()=>_(P),[P,_]);xe(()=>{let x=D.current;if(!x)return;let T=k=>{if(!k.key)return;let F=k.ctrlKey,U=k.metaKey,Ie=k.shiftKey;if(k.key.toLowerCase()===\"z\"){if(me()){if(!U)return}else if(!F)return;Ie?$():L()}};return x.addEventListener(\"keydown\",T),()=>{x.removeEventListener(\"keydown\",T)}},[D,L,$]);let K=x=>{x.preventDefault();let{phone:T,inputValue:k,country:F,cursorPosition:U}=ye(x,{country:A,phoneBeforeInput:h,insertDialCodeOnEmpty:!1,...g});return b({inputValue:k,phone:T,country:F.iso2}),I(U),e},Q=re((x,T={focusOnInput:!1})=>{let k=z({value:x,field:\"iso2\",countries:n});if(!k){console.error(`[react-international-phone]: can not find a country with \"${x}\" iso2 code`);return}let F=l?\"\":`${s}${k.dialCode}${a}`;b({inputValue:F,phone:`${s}${k.dialCode}`,country:k.iso2}),T.focusOnInput&&Promise.resolve().then(()=>{D.current?.focus()})},[n,l,s,a,b,D]),[X,j]=ze(!1);return xe(()=>{if(!X){j(!0),e!==C&&d?.({inputValue:h,phone:C,country:A});return}if(e===C)return;let{phone:x,inputValue:T,country:k}=W({value:e,country:A,insertDialCodeOnEmpty:!o,...g});b({phone:x,inputValue:T,country:k.iso2})},[e]),{phone:C,inputValue:h,country:A,setCountry:Q,handlePhoneValueChange:K,inputRef:D}};var Y=({phone:t,country:e,defaultMask:n=\"............\",disableFormatting:s=!1})=>{let r=e.format,a=i=>s?i.replace(new RegExp(`[^${J}]`,\"g\"),\"\"):i;if(!r)return a(n);if(typeof r==\"string\")return a(r);if(!r.default)return console.error(`[react-international-phone]: default mask for ${e.iso2} is not provided`),a(n);let p=Object.keys(r).find(i=>{if(i===\"default\")return!1;if(!(i.charAt(0)===\"/\"&&i.charAt(i.length-1)===\"/\"))return console.error(`[react-international-phone]: format regex \"${i}\" for ${e.iso2} is not valid`),!1;let u=new RegExp(i.substring(1,i.length-1)),l=t.replace(e.dialCode,\"\");return u.test(V(l))});return a(p?r[p]:r.default)};var N=t=>{let[e,n,s,r,a,p]=t;return{name:e,iso2:n,dialCode:s,format:r,priority:a,areaCodes:p}};var Oe=t=>`Field \"${t}\" is not supported`,z=({field:t,value:e,countries:n=M})=>{if([\"priority\"].includes(t))throw new Error(Oe(t));let s=n.find(r=>{let a=N(r);return e===a[t]});if(s)return N(s)};var ee=({phone:t,countries:e=M,currentCountryIso2:n})=>{let s={country:void 0,fullDialCodeMatch:!1};if(!t)return s;let r=V(t);if(!r)return s;let a=s,p=({country:i,fullDialCodeMatch:o})=>{let u=i.dialCode===a.country?.dialCode,l=(i.priority??0)<(a.country?.priority??0);(!u||l)&&(a={country:i,fullDialCodeMatch:o})};for(let i of e){let o=N(i),{dialCode:u,areaCodes:l}=o;if(r.startsWith(u)){let m=a.country?Number(u)>=Number(a.country.dialCode):!0;if(l){let y=r.substring(u.length);for(let d of l)if(y.startsWith(d))return{country:o,fullDialCodeMatch:!0}}(m||u===r||!a.fullDialCodeMatch)&&p({country:o,fullDialCodeMatch:!0})}a.fullDialCodeMatch||r.length<u.length&&u.startsWith(r)&&(!a.country||Number(u)<=Number(a.country.dialCode))&&p({country:o,fullDialCodeMatch:!1})}if(n){let i=z({value:n,field:\"iso2\",countries:e});if(!i)return a;let u=i?(m=>{if(!m?.areaCodes)return!1;let y=r.substring(m.dialCode.length);return m.areaCodes.some(d=>d.startsWith(y))})(i):!1;!!a&&a.country?.dialCode===i.dialCode&&a.country!==i&&a.fullDialCodeMatch&&(!i.areaCodes||u)&&(a={country:i,fullDialCodeMatch:!0})}return a};import Se from\"react\";var Ve=(t,e)=>{let n=parseInt(t,16);return Number(n+e).toString(16)},He=\"abcdefghijklmnopqrstuvwxyz\",je=\"1f1e6\",De=He.split(\"\").reduce((t,e,n)=>({...t,[e]:Ve(je,n)}),{}),Be=t=>[De[t[0]],De[t[1]]].join(\"-\"),q=({iso2:t,size:e,src:n,protocol:s=\"https\",disableLazyLoading:r,className:a,style:p,...i})=>{if(!t)return Se.createElement(\"img\",{className:S({addPrefix:[\"flag-emoji\"],rawClassNames:[a]}),width:e,height:e,...i});let o=()=>{if(n)return n;let u=Be(t);return`${s}://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/${u}.svg`};return Se.createElement(\"img\",{className:S({addPrefix:[\"flag-emoji\"],rawClassNames:[a]}),src:o(),width:e,height:e,draggable:!1,\"data-country\":t,loading:r?void 0:\"lazy\",style:{width:e,height:e,...p},alt:\"\",...i})};import H,{useCallback as ne,useEffect as ae,useMemo as Ge,useRef as ie,useState as Ke}from\"react\";var Ue=1e3,se=({show:t,dialCodePrefix:e=\"+\",selectedCountry:n,countries:s=M,preferredCountries:r=[],flags:a,onSelect:p,onClose:i,...o})=>{let u=ie(null),l=ie(),m=Ge(()=>{if(!r||!r.length)return s;let c=[],C=[...s];for(let h of r){let P=C.findIndex(b=>N(b).iso2===h);if(P!==-1){let b=C.splice(P,1)[0];c.push(b)}}return c.concat(C)},[s,r]),y=ie({updatedAt:void 0,value:\"\"}),d=c=>{let C=y.current.updatedAt&&new Date().getTime()-y.current.updatedAt.getTime()>Ue;y.current={value:C?c:`${y.current.value}${c}`,updatedAt:new Date};let h=m.findIndex(P=>N(P).name.toLowerCase().startsWith(y.current.value));h!==-1&&v(h)},w=ne(c=>m.findIndex(C=>N(C).iso2===c),[m]),[f,v]=Ke(w(n)),g=()=>{l.current!==n&&v(w(n))},E=ne(c=>{v(w(c.iso2)),p?.(c)},[p,w]),D=c=>{let C=m.length-1,h=P=>c===\"prev\"?P-1:c===\"next\"?P+1:c===\"last\"?C:0;v(P=>{let b=h(P);return b<0?0:b>C?C:b})},I=c=>{if(c.stopPropagation(),c.key===\"Enter\"){c.preventDefault();let C=N(m[f]);E(C);return}if(c.key===\"Escape\"){i?.();return}if(c.key===\"ArrowUp\"){c.preventDefault(),D(\"prev\");return}if(c.key===\"ArrowDown\"){c.preventDefault(),D(\"next\");return}if(c.key===\"PageUp\"){c.preventDefault(),D(\"first\");return}if(c.key===\"PageDown\"){c.preventDefault(),D(\"last\");return}c.key===\" \"&&c.preventDefault(),c.key.length===1&&!c.altKey&&!c.ctrlKey&&!c.metaKey&&d(c.key.toLocaleLowerCase())},_=ne(()=>{if(!u.current||f===void 0)return;let c=N(m[f]).iso2;if(c===l.current)return;let C=u.current.querySelector(`[data-country=\"${c}\"]`);C&&(pe(u.current,C),l.current=c)},[f,m]);return ae(()=>{_()},[f,_]),ae(()=>{u.current&&(t?u.current.focus():g())},[t]),ae(()=>{g()},[n]),H.createElement(\"ul\",{ref:u,role:\"listbox\",className:S({addPrefix:[\"country-selector-dropdown\"],rawClassNames:[o.className]}),style:{display:t?\"block\":\"none\",...o.style},onKeyDown:I,onBlur:i,tabIndex:-1,\"aria-activedescendant\":`react-international-phone__${N(m[f]).iso2}-option`},m.map((c,C)=>{let h=N(c),P=h.iso2===n,b=C===f,L=r.includes(h.iso2),$=C===r.length-1,A=a?.find(K=>K.iso2===h.iso2);return H.createElement(H.Fragment,{key:h.iso2},H.createElement(\"li\",{\"data-country\":h.iso2,role:\"option\",\"aria-selected\":P,\"aria-label\":`${h.name} ${e}${h.dialCode}`,id:`react-international-phone__${h.iso2}-option`,className:S({addPrefix:[\"country-selector-dropdown__list-item\",L&&\"country-selector-dropdown__list-item--preferred\",P&&\"country-selector-dropdown__list-item--selected\",b&&\"country-selector-dropdown__list-item--focused\"],rawClassNames:[o.listItemClassName,L&&o.listItemPreferredClassName,P&&o.listItemSelectedClassName,b&&o.listItemFocusedClassName]}),onClick:()=>E(h),style:o.listItemStyle,title:h.name},H.createElement(q,{iso2:h.iso2,src:A?.src,className:S({addPrefix:[\"country-selector-dropdown__list-item-flag-emoji\"],rawClassNames:[o.listItemFlagClassName]}),style:o.listItemFlagStyle}),H.createElement(\"span\",{className:S({addPrefix:[\"country-selector-dropdown__list-item-country-name\"],rawClassNames:[o.listItemCountryNameClassName]}),style:o.listItemCountryNameStyle},h.name),H.createElement(\"span\",{className:S({addPrefix:[\"country-selector-dropdown__list-item-dial-code\"],rawClassNames:[o.listItemDialCodeClassName]}),style:o.listItemDialCodeStyle},e,h.dialCode)),$?H.createElement(\"hr\",{className:S({addPrefix:[\"country-selector-dropdown__preferred-list-divider\"],rawClassNames:[o.preferredListDividerClassName]}),style:o.preferredListDividerStyle}):null)}))};var le=B.memo(({selectedCountry:t,onSelect:e,disabled:n,hideDropdown:s,countries:r=M,preferredCountries:a=[],flags:p,renderButtonWrapper:i,...o})=>{let[u,l]=Je(!1),m=We(()=>{if(t)return z({value:t,field:\"iso2\",countries:r})},[r,t]),y=qe(null),d=f=>{f.key&&[\"ArrowUp\",\"ArrowDown\"].includes(f.key)&&(f.preventDefault(),l(!0))},w=()=>{let f={title:m?.name,onClick:()=>l(g=>!g),onMouseDown:g=>g.preventDefault(),onKeyDown:d,disabled:s||n,role:\"combobox\",\"aria-label\":\"Country selector\",\"aria-haspopup\":\"listbox\",\"aria-expanded\":u},v=B.createElement(\"div\",{className:S({addPrefix:[\"country-selector-button__button-content\"],rawClassNames:[o.buttonContentWrapperClassName]}),style:o.buttonContentWrapperStyle},B.createElement(q,{iso2:t,src:p?.find(g=>g.iso2===t)?.src,className:S({addPrefix:[\"country-selector-button__flag-emoji\",n&&\"country-selector-button__flag-emoji--disabled\"],rawClassNames:[o.flagClassName]}),style:{visibility:t?\"visible\":\"hidden\",...o.flagStyle}}),!s&&B.createElement(\"div\",{className:S({addPrefix:[\"country-selector-button__dropdown-arrow\",n&&\"country-selector-button__dropdown-arrow--disabled\",u&&\"country-selector-button__dropdown-arrow--active\"],rawClassNames:[o.dropdownArrowClassName]}),style:o.dropdownArrowStyle}));return i?i({children:v,rootProps:f}):B.createElement(\"button\",{...f,type:\"button\",className:S({addPrefix:[\"country-selector-button\",u&&\"country-selector-button--active\",n&&\"country-selector-button--disabled\",s&&\"country-selector-button--hide-dropdown\"],rawClassNames:[o.buttonClassName]}),\"data-country\":t,style:o.buttonStyle},v)};return B.createElement(\"div\",{className:S({addPrefix:[\"country-selector\"],rawClassNames:[o.className]}),style:o.style,ref:y},w(),B.createElement(se,{show:u,countries:r,preferredCountries:a,flags:p,onSelect:f=>{l(!1),e?.(f)},selectedCountry:t,onClose:()=>{l(!1)},...o.dropdownStyleProps}))});import Ze from\"react\";var ue=({dialCode:t,prefix:e,disabled:n,style:s,className:r})=>Ze.createElement(\"div\",{className:S({addPrefix:[\"dial-code-preview\",n&&\"dial-code-preview--disabled\"],rawClassNames:[r]}),style:s},`${e}${t}`);import Z,{forwardRef as Qe,useCallback as ke,useImperativeHandle as Xe}from\"react\";var Ye=Qe(({value:t,onChange:e,countries:n=M,preferredCountries:s,hideDropdown:r,showDisabledDialCodeAndPrefix:a,disableFocusAfterCountrySelect:p,flags:i,style:o,className:u,inputStyle:l,inputClassName:m,countrySelectorStyleProps:y,dialCodePreviewStyleProps:d,inputProps:w,placeholder:f,disabled:v,name:g,onFocus:E,onBlur:D,required:I,autoFocus:_,...c},C)=>{let h=ke(j=>{e?.(j.phone,{country:j.country,inputValue:j.inputValue})},[e]),{phone:P,inputValue:b,inputRef:L,country:$,setCountry:A,handlePhoneValueChange:K}=oe({value:t,countries:n,...c,onChange:h}),Q=c.disableDialCodeAndPrefix&&a&&$?.dialCode,X=ke(j=>{A(j.iso2,{focusOnInput:!p})},[A,p]);return Xe(C,()=>L.current?Object.assign(L.current,{setCountry:A,state:{phone:P,inputValue:b,country:$}}):null,[L,A,P,b,$]),Z.createElement(\"div\",{ref:C,className:S({addPrefix:[\"input-container\"],rawClassNames:[u]}),style:o},Z.createElement(le,{onSelect:X,flags:i,selectedCountry:$?.iso2,countries:n,preferredCountries:s,disabled:v,hideDropdown:r,...y}),Q&&Z.createElement(ue,{dialCode:$.dialCode,prefix:c.prefix??\"+\",disabled:v,...d}),Z.createElement(\"input\",{onChange:K,value:b,type:\"tel\",ref:L,className:S({addPrefix:[\"input\",v&&\"input--disabled\"],rawClassNames:[m]}),placeholder:f,disabled:v,style:l,name:g,onFocus:E,onBlur:D,autoFocus:_,required:I,...w}))});export{le as CountrySelector,se as CountrySelectorDropdown,ue as DialCodePreview,q as FlagImage,Ye as PhoneInput,Re as buildCountryData,M as defaultCountries,Y as getActiveFormattingMask,z as getCountry,ee as guessCountryByPartialPhoneNumber,N as parseCountry,fe as removeDialCode,oe as usePhoneInput};\n","/**\n * Vanilla emoji-flag + dial-code picker for VTBA form tel fields.\n *\n * Framework-agnostic: this is the single source of truth for the phone flag\n * picker. It is used two ways:\n * 1. In AEM (server-rendered HTL) via the ac-react-app form runtime, which\n * calls {@link initTelPickers} on DOM-ready.\n * 2. In Storybook via the React {@link ../LsgFormFieldTel} component, which\n * calls it from a `useEffect`.\n *\n * It enhances `.cmp-vtba-form__field--tel input[type=\"tel\"]` with a country\n * toggle (Unicode emoji flag + dial code) and a searchable dropdown. Emoji flags\n * mean no image assets to ship. Country/dial-code data is reused from\n * `react-international-phone` (data only — no React needed at runtime here).\n *\n * DOM strategy (so it is safe inside React too): if the input already sits in a\n * `.cmp-vtba-tel` wrapper (React renders one), the picker only *appends* the\n * toggle + dropdown and never moves the React-managed input. Otherwise (plain\n * AEM markup) it creates the wrapper and moves the input in.\n *\n * On submit, the field value is the full international number\n * (`+<dialCode><nationalDigits>`) via {@link getTelValue}.\n */\nimport { defaultCountries } from \"react-international-phone\";\nimport \"./telPicker.scss\";\n\ninterface TelCountry {\n name: string;\n iso2: string;\n dialCode: string;\n}\n\n/** `defaultCountries` items are tuples `[name, iso2, dialCode, format?, ...]`. */\nconst COUNTRIES: TelCountry[] = (defaultCountries as unknown[])\n .map((c) => {\n const t = c as string[];\n return { name: t[0], iso2: t[1], dialCode: t[2] };\n })\n .filter((c: TelCountry) => !!c.iso2 && !!c.dialCode);\n\nconst DEFAULT_ISO2 = \"gb\";\n\n/** Converts an ISO-2 country code to its Unicode regional-indicator flag emoji. */\nfunction flagEmoji(iso2: string): string {\n return iso2\n .toUpperCase()\n .replace(/[A-Z]/g, (ch) => String.fromCodePoint(0x1f1e6 + ch.charCodeAt(0) - 65));\n}\n\nfunction findCountry(iso2: string): TelCountry | undefined {\n const target = (iso2 || \"\").toLowerCase();\n for (let i = 0; i < COUNTRIES.length; i++) {\n if (COUNTRIES[i].iso2 === target) {\n return COUNTRIES[i];\n }\n }\n return undefined;\n}\n\n/**\n * Enhances every tel field under {@code root} (or {@code root} itself when it is\n * a tel field). Idempotent per input. Works whether {@code root} is the whole\n * form (AEM) or a single field element (React component).\n */\nexport function initTelPickers(root: ParentNode | null): void {\n if (!root) {\n return;\n }\n const inputs = root.querySelectorAll(\"input[type='tel']\");\n for (let i = 0; i < inputs.length; i++) {\n const input = inputs[i] as HTMLInputElement;\n if (input.closest(\".cmp-vtba-form__field--tel\")) {\n enhance(input);\n }\n }\n}\n\n/**\n * Full international number for a picker-enhanced tel input:\n * `+<dialCode><nationalDigits>`. Falls back to the raw value if not enhanced.\n */\nexport function getTelValue(input: HTMLInputElement): string {\n const dial = input.getAttribute(\"data-dial-code\");\n if (!dial) {\n return input.value;\n }\n const national = (input.value || \"\").replace(/\\D/g, \"\");\n return national ? \"+\" + dial + national : \"\";\n}\n\nfunction enhance(input: HTMLInputElement): void {\n if (input.getAttribute(\"data-tel-picker\") === \"true\" || !input.parentElement) {\n return;\n }\n input.setAttribute(\"data-tel-picker\", \"true\");\n\n const initialIso2 = (input.getAttribute(\"data-country\") || DEFAULT_ISO2).toLowerCase();\n let selected = findCountry(initialIso2) || findCountry(DEFAULT_ISO2) || COUNTRIES[0];\n\n // Reuse a pre-rendered wrapper (React) — append-only, never move the input.\n // Otherwise create the wrapper and move the input (plain vanilla markup).\n let wrapper: HTMLElement;\n if (input.parentElement.classList.contains(\"cmp-vtba-tel\")) {\n wrapper = input.parentElement;\n } else {\n wrapper = document.createElement(\"div\");\n wrapper.className = \"cmp-vtba-tel\";\n input.parentElement.insertBefore(wrapper, input);\n wrapper.appendChild(input);\n }\n\n const toggle = document.createElement(\"button\");\n toggle.type = \"button\";\n toggle.className = \"cmp-vtba-tel__toggle\";\n toggle.setAttribute(\"aria-haspopup\", \"listbox\");\n toggle.setAttribute(\"aria-expanded\", \"false\");\n\n const dropdown = document.createElement(\"div\");\n dropdown.className = \"cmp-vtba-tel__dropdown\";\n dropdown.hidden = true;\n\n const search = document.createElement(\"input\");\n search.type = \"text\";\n search.className = \"cmp-vtba-tel__search\";\n search.placeholder = \"Search\";\n search.setAttribute(\"aria-label\", \"Search countries\");\n\n const list = document.createElement(\"ul\");\n list.className = \"cmp-vtba-tel__list\";\n list.setAttribute(\"role\", \"listbox\");\n\n dropdown.appendChild(search);\n dropdown.appendChild(list);\n\n // Toggle goes before the input; dropdown after — both inside the wrapper.\n wrapper.insertBefore(toggle, input);\n wrapper.appendChild(dropdown);\n\n function applySelected(country: TelCountry): void {\n selected = country;\n input.setAttribute(\"data-dial-code\", country.dialCode);\n input.setAttribute(\"data-iso2\", country.iso2);\n toggle.textContent = \"\";\n const flag = document.createElement(\"span\");\n flag.className = \"cmp-vtba-tel__flag\";\n flag.setAttribute(\"aria-hidden\", \"true\");\n flag.textContent = flagEmoji(country.iso2);\n const code = document.createElement(\"span\");\n code.className = \"cmp-vtba-tel__code\";\n code.textContent = \"+\" + country.dialCode;\n toggle.appendChild(flag);\n toggle.appendChild(code);\n toggle.setAttribute(\n \"aria-label\",\n \"Country calling code: \" + country.name + \" +\" + country.dialCode\n );\n }\n\n function renderList(filter: string): void {\n list.textContent = \"\";\n const f = filter.trim().toLowerCase();\n const digits = f.replace(/[^0-9]/g, \"\");\n for (let i = 0; i < COUNTRIES.length; i++) {\n const c = COUNTRIES[i];\n const match =\n !f ||\n c.name.toLowerCase().indexOf(f) !== -1 ||\n c.iso2 === f ||\n (!!digits && c.dialCode.indexOf(digits) === 0);\n if (!match) {\n continue;\n }\n const li = document.createElement(\"li\");\n li.className = \"cmp-vtba-tel__option\";\n li.setAttribute(\"role\", \"option\");\n li.tabIndex = -1;\n li.setAttribute(\"data-iso2\", c.iso2);\n li.setAttribute(\"aria-selected\", c.iso2 === selected.iso2 ? \"true\" : \"false\");\n li.textContent = flagEmoji(c.iso2) + \" \" + c.name + \" +\" + c.dialCode;\n li.addEventListener(\"click\", () => {\n applySelected(c);\n close();\n input.focus();\n });\n list.appendChild(li);\n }\n }\n\n function open(): void {\n dropdown.hidden = false;\n toggle.setAttribute(\"aria-expanded\", \"true\");\n search.value = \"\";\n renderList(\"\");\n search.focus();\n }\n function close(): void {\n dropdown.hidden = true;\n toggle.setAttribute(\"aria-expanded\", \"false\");\n }\n\n toggle.addEventListener(\"click\", () => {\n if (dropdown.hidden) {\n open();\n } else {\n close();\n }\n });\n\n search.addEventListener(\"input\", () => renderList(search.value));\n search.addEventListener(\"keydown\", (e) => {\n if (e.key === \"Escape\") {\n close();\n toggle.focus();\n } else if (e.key === \"ArrowDown\") {\n e.preventDefault();\n const first = list.querySelector(\".cmp-vtba-tel__option\") as HTMLElement | null;\n if (first) {\n first.focus();\n }\n }\n });\n\n list.addEventListener(\"keydown\", (e) => {\n const opts = Array.prototype.slice.call(\n list.querySelectorAll(\".cmp-vtba-tel__option\")\n ) as HTMLElement[];\n const idx = opts.indexOf(document.activeElement as HTMLElement);\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n (opts[idx + 1] || opts[0]).focus();\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n if (idx <= 0) {\n search.focus();\n } else {\n opts[idx - 1].focus();\n }\n } else if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n const iso2 = (document.activeElement as HTMLElement).getAttribute(\"data-iso2\");\n const c = iso2 ? findCountry(iso2) : undefined;\n if (c) {\n applySelected(c);\n close();\n input.focus();\n }\n } else if (e.key === \"Escape\") {\n close();\n toggle.focus();\n }\n });\n\n document.addEventListener(\"click\", (e) => {\n if (!wrapper.contains(e.target as Node)) {\n close();\n }\n });\n\n applySelected(selected);\n}\n","import React, { useEffect, useRef } from \"react\";\nimport \"./LsgFormFieldTel.scss\";\nimport { initTelPickers } from \"../telPicker\";\n\nexport interface LsgFormFieldTelProps {\n id?: string;\n label: string;\n helpText?: string;\n placeholder?: string;\n defaultValue?: string;\n required?: boolean;\n disabled?: boolean;\n error?: string;\n minLength?: number;\n maxLength?: number;\n pattern?: string;\n name?: string;\n /** ISO-2 country to preselect in the flag picker (e.g. \"gb\", \"us\"). */\n defaultCountry?: string;\n}\n\nexport const LsgFormFieldTel: React.FC<LsgFormFieldTelProps> = ({\n id = \"field-tel\",\n label,\n helpText,\n placeholder,\n defaultValue = \"\",\n required = false,\n disabled = false,\n error,\n minLength,\n maxLength,\n pattern,\n name,\n defaultCountry,\n}) => {\n const fieldRef = useRef<HTMLDivElement>(null);\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy =\n [helpId, error ? errorId : undefined].filter(Boolean).join(\" \") || undefined;\n\n // Enhance the tel input with the shared emoji-flag + dial-code picker.\n // The input is pre-wrapped in `.cmp-vtba-tel`, so the picker appends its\n // toggle/dropdown without moving the React-managed input.\n useEffect(() => {\n initTelPickers(fieldRef.current);\n }, []);\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--tel\" ref={fieldRef}>\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <span className=\"cmp-vtba-tel\">\n <input\n type=\"tel\"\n className=\"cmp-vtba-form__input\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n placeholder={placeholder}\n autoComplete=\"tel\"\n minLength={minLength}\n maxLength={maxLength}\n pattern={pattern}\n data-country={defaultCountry}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n />\n </span>\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldSelect.scss\";\n\nexport interface LsgFormSelectOption {\n value: string;\n label: string;\n}\n\nexport interface LsgFormFieldSelectProps {\n id?: string;\n label: string;\n helpText?: string;\n placeholder?: string;\n defaultValue?: string;\n options?: LsgFormSelectOption[];\n required?: boolean;\n disabled?: boolean;\n error?: string;\n name?: string;\n}\n\nexport const LsgFormFieldSelect: React.FC<LsgFormFieldSelectProps> = ({\n id = \"field-select\",\n label,\n helpText,\n placeholder = \"Please select\",\n defaultValue = \"\",\n options = [],\n required = false,\n disabled = false,\n error,\n name,\n}) => {\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy = [helpId, error ? errorId : undefined]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--select\">\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <div className=\"cmp-vtba-form__select-wrapper\">\n <select\n className=\"cmp-vtba-form__select\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n >\n <option value=\"\">{placeholder}</option>\n {options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n </div>\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldCountry.scss\";\n\nexport interface LsgFormFieldCountryOption {\n value: string;\n label: string;\n}\n\nexport interface LsgFormFieldCountryProps {\n id?: string;\n label: string;\n helpText?: string;\n defaultValue?: string;\n /** Fixture list; in AEM this is populated from /bin/vtba/country-list.json at runtime */\n countries?: LsgFormFieldCountryOption[];\n required?: boolean;\n disabled?: boolean;\n error?: string;\n name?: string;\n}\n\nconst COUNTRY_FIXTURE: LsgFormFieldCountryOption[] = [\n { value: \"us\", label: \"United States\" },\n { value: \"gb\", label: \"United Kingdom\" },\n { value: \"de\", label: \"Germany\" },\n { value: \"fr\", label: \"France\" },\n { value: \"se\", label: \"Sweden\" },\n { value: \"jp\", label: \"Japan\" },\n { value: \"cn\", label: \"China\" },\n { value: \"in\", label: \"India\" },\n { value: \"br\", label: \"Brazil\" },\n { value: \"au\", label: \"Australia\" },\n];\n\nexport const LsgFormFieldCountry: React.FC<LsgFormFieldCountryProps> = ({\n id = \"field-country\",\n label,\n helpText,\n defaultValue = \"\",\n countries = COUNTRY_FIXTURE,\n required = false,\n disabled = false,\n error,\n name,\n}) => {\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy = [helpId, error ? errorId : undefined]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--country\">\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <div className=\"cmp-vtba-form__select-wrapper\">\n <select\n className=\"cmp-vtba-form__select\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n data-country-list=\"true\"\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n >\n <option value=\"\">Select a country</option>\n {countries.map((c) => (\n <option key={c.value} value={c.value}>\n {c.label}\n </option>\n ))}\n </select>\n </div>\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldTextarea.scss\";\n\nexport interface LsgFormFieldTextareaProps {\n id?: string;\n label: string;\n helpText?: string;\n placeholder?: string;\n defaultValue?: string;\n required?: boolean;\n disabled?: boolean;\n error?: string;\n autocomplete?: string;\n maxLength?: number;\n rows?: number;\n name?: string;\n}\n\nexport const LsgFormFieldTextarea: React.FC<LsgFormFieldTextareaProps> = ({\n id = \"field-textarea\",\n label,\n helpText,\n placeholder,\n defaultValue = \"\",\n required = false,\n disabled = false,\n error,\n autocomplete,\n maxLength,\n rows = 4,\n name,\n}) => {\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy = [helpId, error ? errorId : undefined]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--textarea\">\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <textarea\n className=\"cmp-vtba-form__textarea\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n placeholder={placeholder}\n autoComplete={autocomplete}\n maxLength={maxLength}\n rows={rows}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n />\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldConsent.scss\";\n\nexport interface LsgFormFieldConsentProps {\n id?: string;\n /** Consent label — may contain inline HTML (use dangerouslySetInnerHTML) */\n label: string;\n required?: boolean;\n disabled?: boolean;\n error?: string;\n name?: string;\n}\n\nexport const LsgFormFieldConsent: React.FC<LsgFormFieldConsentProps> = ({\n id = \"field-consent\",\n label,\n required = false,\n disabled = false,\n error,\n name,\n}) => {\n const errorId = `${id}-error`;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--consent\">\n <div className=\"cmp-vtba-form__consent\">\n <input\n type=\"checkbox\"\n className=\"cmp-vtba-form__checkbox\"\n id={id}\n name={name}\n value=\"true\"\n data-consent=\"\"\n aria-describedby={error ? errorId : undefined}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n />\n {/* eslint-disable-next-line react/no-danger -- mirrors AEM rich-text label output */}\n <label\n className=\"cmp-vtba-form__consent-label\"\n htmlFor={id}\n dangerouslySetInnerHTML={{ __html: label }}\n />\n </div>\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormStep.scss\";\n\nexport interface LsgFormStepProps {\n title?: string;\n description?: string;\n children?: React.ReactNode;\n /** Matches data-step-id on the AEM fieldset */\n stepId?: string;\n}\n\nexport const LsgFormStep: React.FC<LsgFormStepProps> = ({\n title,\n description,\n children,\n stepId,\n}) => (\n <fieldset\n className=\"cmp-vtba-form__step\"\n data-form-step=\"\"\n data-step-id={stepId}\n >\n {title && <legend className=\"cmp-vtba-form__step-legend\">{title}</legend>}\n {description && (\n <p className=\"cmp-vtba-form__step-description\">{description}</p>\n )}\n <div className=\"cmp-vtba-form__fields\">{children}</div>\n </fieldset>\n);\n","import React from \"react\";\nimport \"./LsgFormContainer.scss\";\n\nexport interface LsgFormContainerProps {\n title?: string;\n /** Multi-step mode shows the progress indicator */\n multiStep?: boolean;\n /** 1-based index of the active step */\n currentStep?: number;\n steps?: string[];\n children?: React.ReactNode;\n /** Shows the form-level error banner */\n formError?: string;\n /** Shows the success message and hides the form */\n successMessage?: string;\n}\n\nexport const LsgFormContainer: React.FC<LsgFormContainerProps> = ({\n title,\n multiStep = false,\n currentStep = 1,\n steps = [],\n children,\n formError,\n successMessage,\n}) => (\n <div className=\"cmp-vtba-form\" data-vtba-form=\"\">\n <form\n className=\"cmp-vtba-form__form\"\n method=\"post\"\n noValidate\n aria-label={title}\n >\n {title && <h2 className=\"cmp-vtba-form__title\">{title}</h2>}\n\n {multiStep && steps.length > 0 && (\n <nav className=\"cmp-vtba-form__progress\" aria-label=\"Form progress\">\n <ol className=\"cmp-vtba-form__progress-list\">\n {steps.map((stepTitle, i) => (\n <li\n key={i}\n className=\"cmp-vtba-form__progress-step\"\n data-step-index={i}\n aria-current={i + 1 === currentStep ? \"step\" : undefined}\n >\n <span className=\"cmp-vtba-form__progress-number\">{i + 1}</span>\n <span className=\"cmp-vtba-form__progress-title\">{stepTitle}</span>\n </li>\n ))}\n </ol>\n </nav>\n )}\n\n <div className=\"cmp-vtba-form__steps\">{children}</div>\n\n <div className=\"cmp-vtba-form__actions\">\n {multiStep && (\n <button type=\"button\" className=\"cmp-vtba-form__prev\" data-form-prev=\"\" hidden={currentStep <= 1}>\n Back\n </button>\n )}\n {multiStep && currentStep < (steps.length || 1) ? (\n <button type=\"button\" className=\"cmp-vtba-form__next lsg-button lsg-button--primary\" data-form-next=\"\">\n Continue\n </button>\n ) : (\n <button type=\"submit\" className=\"cmp-vtba-form__submit lsg-button lsg-button--primary\" data-form-submit=\"\">\n Submit\n </button>\n )}\n </div>\n\n {formError && (\n <p className=\"cmp-vtba-form__error\" role=\"alert\" aria-live=\"assertive\">\n {formError}\n </p>\n )}\n\n {successMessage && (\n <div className=\"cmp-vtba-form__success\" role=\"status\" aria-live=\"polite\">\n {successMessage}\n </div>\n )}\n </form>\n </div>\n);\n","import React from \"react\";\nimport \"./LsgFormPolicyNotice.scss\";\n\nexport interface LsgFormPolicyNoticeProps {\n /** HTML content from AEM rich-text editor */\n text: string;\n /** AEM style policy — adds cmp-text--policy-notice-icon modifier */\n policyNoticeIcon?: boolean;\n}\n\nexport const LsgFormPolicyNotice: React.FC<LsgFormPolicyNoticeProps> = ({\n text,\n policyNoticeIcon = false,\n}) => (\n <div\n className={[\n \"cmp-text\",\n policyNoticeIcon ? \"cmp-text--policy-notice-icon\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n // eslint-disable-next-line react/no-danger -- mirrors AEM rich-text output\n dangerouslySetInnerHTML={{ __html: text }}\n />\n);\n","import React from \"react\";\n\nimport {\n LsgBanner,\n LsgBreadcrumb,\n LsgButton,\n LsgCard,\n LsgCards,\n LsgCarousel,\n LsgFooter,\n LsgFormContainer,\n LsgFormFieldConsent,\n LsgFormFieldCountry,\n LsgFormFieldEmail,\n LsgFormFieldSelect,\n LsgFormFieldTel,\n LsgFormFieldText,\n LsgFormFieldTextarea,\n LsgFormPolicyNotice,\n LsgFormStep,\n LsgHeader,\n LsgHero,\n LsgTabs,\n LsgTable,\n LsgLanguageSwitcher,\n LsgLogo,\n LsgNavigation,\n LsgQuickLinks,\n LsgSearchOverlay,\n LsgSearchTrigger,\n LsgSocialMediaIcons,\n} from \"../components/lsg\";\n\nconst BASE_COMPONENTS = {\n LsgButton,\n LsgBanner,\n LsgCarousel,\n LsgCard,\n LsgCards,\n LsgBreadcrumb,\n LsgLogo,\n LsgNavigation,\n LsgLanguageSwitcher,\n LsgSearchTrigger,\n LsgSearchOverlay,\n LsgHeader,\n LsgQuickLinks,\n LsgSocialMediaIcons,\n LsgFooter,\n LsgHero,\n LsgTabs,\n LsgTable,\n LsgFormContainer,\n LsgFormFieldText,\n LsgFormFieldEmail,\n LsgFormFieldTel,\n LsgFormFieldSelect,\n LsgFormFieldCountry,\n LsgFormFieldTextarea,\n LsgFormFieldConsent,\n LsgFormPolicyNotice,\n LsgFormStep,\n} as const;\n\ntype BaseComponents = typeof BASE_COMPONENTS;\n\nfunction createThemeComponent<Props extends object>(\n themeName: string,\n componentName: string,\n Component: React.ComponentType<Props>,\n): React.FC<Props> {\n const WrappedComponent: React.FC<Props> = (props) => (\n <div\n className={[\n \"lsg-themed-component\",\n `lsg-themed-component--${themeName}`,\n `lsg-themed-component--${componentName}`,\n ].join(\" \")}\n >\n <Component {...props} />\n </div>\n );\n\n WrappedComponent.displayName = `${themeName}-${componentName}`;\n\n return WrappedComponent;\n}\n\nexport function createThemeComponents(themeName: string): BaseComponents {\n return {\n LsgButton: createThemeComponent(themeName, \"button\", BASE_COMPONENTS.LsgButton),\n LsgBanner: createThemeComponent(themeName, \"banner\", BASE_COMPONENTS.LsgBanner),\n LsgCarousel: createThemeComponent(themeName, \"carousel\", BASE_COMPONENTS.LsgCarousel),\n LsgCard: createThemeComponent(themeName, \"card\", BASE_COMPONENTS.LsgCard),\n LsgCards: createThemeComponent(themeName, \"cards\", BASE_COMPONENTS.LsgCards),\n LsgBreadcrumb: createThemeComponent(themeName, \"breadcrumb\", BASE_COMPONENTS.LsgBreadcrumb),\n LsgLogo: createThemeComponent(themeName, \"logo\", BASE_COMPONENTS.LsgLogo),\n LsgNavigation: createThemeComponent(themeName, \"navigation\", BASE_COMPONENTS.LsgNavigation),\n LsgLanguageSwitcher: createThemeComponent(\n themeName,\n \"language-switcher\",\n BASE_COMPONENTS.LsgLanguageSwitcher,\n ),\n LsgSearchTrigger: createThemeComponent(\n themeName,\n \"search-trigger\",\n BASE_COMPONENTS.LsgSearchTrigger,\n ),\n LsgSearchOverlay: createThemeComponent(\n themeName,\n \"search-overlay\",\n BASE_COMPONENTS.LsgSearchOverlay,\n ),\n LsgHeader: createThemeComponent(themeName, \"header\", BASE_COMPONENTS.LsgHeader),\n LsgQuickLinks: createThemeComponent(themeName, \"quick-links\", BASE_COMPONENTS.LsgQuickLinks),\n LsgSocialMediaIcons: createThemeComponent(\n themeName,\n \"social-media-icons\",\n BASE_COMPONENTS.LsgSocialMediaIcons,\n ),\n LsgFooter: createThemeComponent(themeName, \"footer\", BASE_COMPONENTS.LsgFooter),\n LsgHero: createThemeComponent(themeName, \"hero\", BASE_COMPONENTS.LsgHero),\n LsgFormContainer: createThemeComponent(themeName, \"form-container\", BASE_COMPONENTS.LsgFormContainer),\n LsgFormFieldText: createThemeComponent(themeName, \"form-field-text\", BASE_COMPONENTS.LsgFormFieldText),\n LsgFormFieldEmail: createThemeComponent(themeName, \"form-field-email\", BASE_COMPONENTS.LsgFormFieldEmail),\n LsgFormFieldTel: createThemeComponent(themeName, \"form-field-tel\", BASE_COMPONENTS.LsgFormFieldTel),\n LsgFormFieldSelect: createThemeComponent(themeName, \"form-field-select\", BASE_COMPONENTS.LsgFormFieldSelect),\n LsgFormFieldCountry: createThemeComponent(themeName, \"form-field-country\", BASE_COMPONENTS.LsgFormFieldCountry),\n LsgFormFieldTextarea: createThemeComponent(themeName, \"form-field-textarea\", BASE_COMPONENTS.LsgFormFieldTextarea),\n LsgFormFieldConsent: createThemeComponent(themeName, \"form-field-consent\", BASE_COMPONENTS.LsgFormFieldConsent),\n LsgFormPolicyNotice: createThemeComponent(themeName, \"form-policy-notice\", BASE_COMPONENTS.LsgFormPolicyNotice),\n LsgFormStep: createThemeComponent(themeName, \"form-step\", BASE_COMPONENTS.LsgFormStep),\n LsgTabs: createThemeComponent(themeName, \"tabs\", BASE_COMPONENTS.LsgTabs),\n LsgTable: createThemeComponent(themeName, \"table\", BASE_COMPONENTS.LsgTable),\n };\n}\n","import { createThemeComponents } from \"../createThemeComponents\";\n\nexport const theme1Components = createThemeComponents(\"theme-1\");\n\nexport const {\n LsgButton: Theme1LsgButton,\n LsgBanner: Theme1LsgBanner,\n LsgCarousel: Theme1LsgCarousel,\n LsgCard: Theme1LsgCard,\n LsgCards: Theme1LsgCards,\n LsgBreadcrumb: Theme1LsgBreadcrumb,\n LsgLogo: Theme1LsgLogo,\n LsgNavigation: Theme1LsgNavigation,\n LsgLanguageSwitcher: Theme1LsgLanguageSwitcher,\n LsgSearchTrigger: Theme1LsgSearchTrigger,\n LsgSearchOverlay: Theme1LsgSearchOverlay,\n LsgHeader: Theme1LsgHeader,\n LsgQuickLinks: Theme1LsgQuickLinks,\n LsgSocialMediaIcons: Theme1LsgSocialMediaIcons,\n LsgFooter: Theme1LsgFooter,\n LsgHero: Theme1LsgHero,\n LsgTabs: Theme1LsgTabs,\n LsgTable: Theme1LsgTable,\n // Form components\n LsgFormContainer: Theme1LsgFormContainer,\n LsgFormFieldText: Theme1LsgFormFieldText,\n LsgFormFieldEmail: Theme1LsgFormFieldEmail,\n LsgFormFieldTel: Theme1LsgFormFieldTel,\n LsgFormFieldTextarea: Theme1LsgFormFieldTextarea,\n LsgFormFieldSelect: Theme1LsgFormFieldSelect,\n LsgFormFieldCountry: Theme1LsgFormFieldCountry,\n LsgFormFieldConsent: Theme1LsgFormFieldConsent,\n LsgFormPolicyNotice: Theme1LsgFormPolicyNotice,\n LsgFormStep: Theme1LsgFormStep,\n} = theme1Components;","import { createThemeComponents } from \"../createThemeComponents\";\n\nexport const theme2Components = createThemeComponents(\"theme-2\");\n\nexport const {\n LsgButton: Theme2LsgButton,\n LsgBanner: Theme2LsgBanner,\n LsgCarousel: Theme2LsgCarousel,\n LsgCard: Theme2LsgCard,\n LsgCards: Theme2LsgCards,\n LsgBreadcrumb: Theme2LsgBreadcrumb,\n LsgLogo: Theme2LsgLogo,\n LsgNavigation: Theme2LsgNavigation,\n LsgLanguageSwitcher: Theme2LsgLanguageSwitcher,\n LsgSearchTrigger: Theme2LsgSearchTrigger,\n LsgSearchOverlay: Theme2LsgSearchOverlay,\n LsgHeader: Theme2LsgHeader,\n LsgQuickLinks: Theme2LsgQuickLinks,\n LsgSocialMediaIcons: Theme2LsgSocialMediaIcons,\n LsgFooter: Theme2LsgFooter,\n LsgHero: Theme2LsgHero,\n LsgTable: Theme2LsgTable,\n // Form components\n LsgFormContainer: Theme2LsgFormContainer,\n LsgFormFieldText: Theme2LsgFormFieldText,\n LsgFormFieldEmail: Theme2LsgFormFieldEmail,\n LsgFormFieldTel: Theme2LsgFormFieldTel,\n LsgFormFieldTextarea: Theme2LsgFormFieldTextarea,\n LsgFormFieldSelect: Theme2LsgFormFieldSelect,\n LsgFormFieldCountry: Theme2LsgFormFieldCountry,\n LsgFormFieldConsent: Theme2LsgFormFieldConsent,\n LsgFormStep: Theme2LsgFormStep,\n} = theme2Components;","import { createThemeComponents } from \"../createThemeComponents\";\n\nexport const theme3Components = createThemeComponents(\"theme-3\");\n\nexport const {\n LsgButton: Theme3LsgButton,\n LsgBanner: Theme3LsgBanner,\n LsgCarousel: Theme3LsgCarousel,\n LsgCard: Theme3LsgCard,\n LsgCards: Theme3LsgCards,\n LsgBreadcrumb: Theme3LsgBreadcrumb,\n LsgLogo: Theme3LsgLogo,\n LsgNavigation: Theme3LsgNavigation,\n LsgLanguageSwitcher: Theme3LsgLanguageSwitcher,\n LsgSearchTrigger: Theme3LsgSearchTrigger,\n LsgSearchOverlay: Theme3LsgSearchOverlay,\n LsgHeader: Theme3LsgHeader,\n LsgQuickLinks: Theme3LsgQuickLinks,\n LsgSocialMediaIcons: Theme3LsgSocialMediaIcons,\n LsgFooter: Theme3LsgFooter,\n LsgHero: Theme3LsgHero,\n LsgTable: Theme3LsgTable,\n // Form components\n LsgFormContainer: Theme3LsgFormContainer,\n LsgFormFieldText: Theme3LsgFormFieldText,\n LsgFormFieldEmail: Theme3LsgFormFieldEmail,\n LsgFormFieldTel: Theme3LsgFormFieldTel,\n LsgFormFieldTextarea: Theme3LsgFormFieldTextarea,\n LsgFormFieldSelect: Theme3LsgFormFieldSelect,\n LsgFormFieldCountry: Theme3LsgFormFieldCountry,\n LsgFormFieldConsent: Theme3LsgFormFieldConsent,\n LsgFormStep: Theme3LsgFormStep,\n} = theme3Components;"],"names":["LsgButton","_a","children","_b","variant","_c","disabled","href","onClick","_d","type","_e","className","_f","external","classNames","concat","filter","Boolean","join","React","createElement","_extends","undefined","target","rel","bannerClassName","layout","mobileMediaPosition","background","LsgBanner","heading","preTitle","eyebrow","body","copy","ctas","cta","mediaType","imageUrl","imageAlt","videoUrl","videoPoster","videoControls","videoAutoPlay","videoMuted","videoLoop","_g","_h","_j","headingTag","resolvedPreTitle","resolvedBody","actions","length","slice","resolvedMediaType","hasMedia","HeadingTag","src","poster","controls","autoPlay","muted","loop","playsInline","alt","map","action","index","key","label","isSafeUrl","url","lower","toLowerCase","trim","startsWith","includes","LsgImage","srcset","sources","width","height","srcUriTemplate","lazyEnabled","displayPopupTitle","id","dataLayer","assetId","dmImage","tags","title","description","caption","text","visibleTags","Array","isArray","tag","visibleSources","source","rootClass","safeHref","linkLabel","showTitle","showCaption","String","itemScope","itemType","media","srcSet","itemProp","loading","content","buildUrl","base","params","url_1","URL","Object","keys","forEach","searchParams","set","toString","getEmbedInfo","opts","host","hostname","replace","path","pathname","split","get","test","autoplay","mute","playlist","baseHost","provider","embedUrl","match","PlayIcon","viewBox","fill","xmlns","focusable","cx","cy","r","fillOpacity","points","LsgVideo","onPlay","displayMode","showTags","_k","_l","useState","isRevealed","setIsRevealed","hasVideoSource","embedInfo","isEmbed","isNativeSource","showMedia","handleActivate","e","preventDefault","playLabel","renderPlayControl","allow","referrerPolicy","allowFullScreen","Fragment","i","isNumber","subject","isString","isBoolean","isObject","prototype","call","mathAbs","n","Math","abs","mathSign","sign","deltaAbs","valueB","valueA","factorAbs","diff","roundToTwoDecimals","num","round","arrayKeys","array","objectKeys","Number","arrayLast","arrayLastIndex","max","arrayIsLastIndex","arrayFromNumber","startAt","from","_","object","objectsMergeDeep","objectA","objectB","reduce","mergedObjects","currentObject","areObjects","isMouseEvent","evt","ownerWindow","MouseEvent","LsgCarouselController","viewport","elements","options","_this","embla","scrollPrev","canScrollPrev","lastSnap","scrollSnapList","scrollTo","scrollNext","canScrollNext","syncSelectedState","selected","selectedScrollSnap","paginationBtns","button","active","classList","toggle","setAttribute","els","EmblaCarousel","align","containScroll","direction","skipSnaps","slidesToScroll","paginationHandlers","prevBtn","addEventListener","nextBtn","on","defineProperty","destroy","removeEventListener","off","mediaTypeFor","item","directionForLayout","LsgCarousel","items","ariaLabel","rootRef","useRef","viewportRef","prevBtnRef","nextBtnRef","dotsRef","controllerRef","isCarousel","carouselDirection","useEffect","current","querySelectorAll","rootClasses","ref","dir","role","cardVariantClass","LsgCard","subtitle","iconUrl","iconAlt","resolvedIconUrl","actionLabel","cardClassName","LsgCards","cards","columns","listClassName","card","LSG_ICON_PATHS","bars","chevronLeft","chevronRight","close","globe","home","search","LsgIcon","name","d","isSafeHref","value","BreadcrumbSeparator","LsgBreadcrumb","showBreadcrumbs","includeHome","homeHref","homeLabel","visibleItems","rootClassName","safeHomeHref","isCurrent","LsgLogo","LsgNavigation","onItemClick","onItemHover","renderItems","navItems","level","hasChildren","open","onMouseEnter","event","preserveAspectRatio","stroke","strokeWidth","strokeLinecap","strokeLinejoin","ChevronIcon","LsgLanguageSwitcher","currentLanguage","languages","onLanguageChange","isOpen","setIsOpen","containerRef","reactId","useId","triggerId","dropdownId","handleClick","contains","document","handleKey","prev","lang","code","SearchIcon","x1","y1","x2","y2","LsgSearchTrigger","targetId","CloseIcon","LsgSearchOverlay","placeholder","onClose","onSearch","inputRef","inputId","focus","handleSubmit","query","overlayClass","style","position","inset","cursor","onSubmit","htmlFor","autoComplete","SEARCH_OVERLAY_ID","LsgHeaderIcon","getItemByPath","activePath","depth","currentItems","currentItem","find","getItemsAtLevel","getMegaColumns","maxDepth","activeItem","push","isCurrentOrActiveAtLevel","isSelectedAtLevel","hasOpenNavItem","some","clearMegaMenuBranch","scope","HTMLElement","remove","column","activateMegaMenuItem","parentColumn","parentElement","openItem","add","querySelector","HeaderActionButton","icon","LsgHeader","logo","searchLabel","searchPlaceholder","size","menuOpen","mobileLevel","mobileSelectedLabel","onMenuToggle","onNavItemHover","onDropdownClose","onMegaItemHover","onMobileItemClick","onMobileBreadcrumbClick","searchOpen","setSearchOpen","headerRef","mobileOpen","mobileItems","mobileBackLabel","dropdownOpen","closeOnOutsidePointerDown","megaItems","removeListeners","onFocusIn","removeListener","openSearch","renderActions","showMenu","renderMegaPanel","columnItems","columnIndex","renderMobileMenu","isSelected","LsgQuickLinks","links","link","platformIcons","linkedin","twitter","facebook","instagram","youtube","LsgSocialMediaIcons","platform","PhoneIcon","FaxIcon","MailIcon","LocationIcon","AiBadge","SocialIcon","icons","SocialIconsRow","l","color","display","alignItems","opacity","LsgFooter","simpleTwoRow","brandLine","complexColumns","showAiBadge","cookieSetting","contact","_m","quickLinks","copyright","colHeadings","socialLinks","_o","socialPosition","_p","year","Date","getFullYear","copyrightText","is3col","headings","about","contactAlt","bottomTopBar","bottomBar","address","phone","fax","email","clampNumber","number","min","isNaN","LsgHeroController","autoplayTimer","contentObserver","rafId","startAutoplay","handleScrollDown","scrollDownTarget","scrollIntoView","behavior","stopAutoplay","setInterval","autoplayInterval","clearInterval","transition","mount","scrollDownBtn","requestAnimationFrame","isConnected","section","closest","axis","getComputedStyle","getPropertyValue","plugins","EmblaCarouselFade","contentWrapper","ResizeObserver","setHeight_1","el","setProperty","offsetHeight","entries","observe","reInit","cancelAnimationFrame","disconnect","LsgHeroCard","imageSrc","videoSrc","youtubeId","vimeoId","cardBackground","cardColor","total","videoReady","setVideoReady","hasYoutube","hasVimeo","hasDam","youtubeEmbedSrc","vimeoEmbedSrc","articleClasses","onCanPlay","tabIndex","LsgHero","slides","showArrows","enableScrollDown","scrollDownText","sectionRef","useCallback","next","nextElementSibling","sectionClasses","slide","MOBILE_MEDIA_QUERY","SCROLL_EPSILON","CHEVRON_SVG","LsgTabs","activeId","accessibilityLabel","selectedId","setSelectedId","collapsed","setCollapsed","isMobile","setIsMobile","scrollStart","setScrollStart","scrollEnd","setScrollEnd","tabRefs","stripRef","isVertical","selectedIndex","findIndex","mql","window","matchMedia","sync","matches","updateArrows","strip","offset","scrollTop","scrollLeft","visible","clientHeight","clientWidth","scrollHeight","scrollWidth","observer","cancelled","fonts","ready","then","scrollStrip","step","onRootClick","currentTarget","rect","getBoundingClientRect","beforeMidpoint","clientY","top","clientX","left","select","moveFocus","tab","block","inline","press","onKeyDown","last","onScroll","isActive","node","LsgTable","headers","rows","headerBackground","accentColors","noAlternatingRows","wrapperClassName","cell","row","rowIndex","cellIndex","LsgFormFieldText","helpText","defaultValue","required","error","autocomplete","minLength","maxLength","helpId","errorId","ariaDescribedBy","hidden","LsgFormFieldEmail","be","Te","Ae","Ee","ve","te","Fe","re","$e","xe","ze","Se","ie","Ge","ne","Ke","ae","H","B","Je","We","qe","Ze","Qe","ke","Xe","Z","COUNTRIES","defaultCountries","c","t","iso2","dialCode","DEFAULT_ISO2","flagEmoji","toUpperCase","ch","fromCodePoint","charCodeAt","findCountry","initTelPickers","root","inputs","input","enhance","getTelValue","dial","getAttribute","national","initialIso2","wrapper","insertBefore","appendChild","dropdown","list","applySelected","country","textContent","flag","renderList","f","digits","indexOf","li","first","idx","activeElement","LsgFormFieldTel","pattern","defaultCountry","fieldRef","LsgFormFieldSelect","opt","COUNTRY_FIXTURE","LsgFormFieldCountry","countries","LsgFormFieldTextarea","LsgFormFieldConsent","dangerouslySetInnerHTML","__html","LsgFormStep","stepId","LsgFormContainer","multiStep","currentStep","steps","formError","successMessage","method","noValidate","stepTitle","LsgFormPolicyNotice","policyNoticeIcon","BASE_COMPONENTS","createThemeComponent","themeName","componentName","Component","WrappedComponent","props","displayName","createThemeComponents","theme1Components","Theme1LsgButton","Theme1LsgBanner","Theme1LsgCarousel","Theme1LsgCard","Theme1LsgCards","Theme1LsgBreadcrumb","Theme1LsgLogo","Theme1LsgNavigation","Theme1LsgLanguageSwitcher","Theme1LsgSearchTrigger","Theme1LsgSearchOverlay","Theme1LsgHeader","Theme1LsgQuickLinks","Theme1LsgSocialMediaIcons","Theme1LsgFooter","Theme1LsgHero","Theme1LsgTable","theme2Components","Theme2LsgButton","Theme2LsgBanner","Theme2LsgCarousel","Theme2LsgCard","Theme2LsgCards","Theme2LsgBreadcrumb","Theme2LsgLogo","Theme2LsgNavigation","Theme2LsgLanguageSwitcher","Theme2LsgSearchTrigger","Theme2LsgSearchOverlay","Theme2LsgHeader","Theme2LsgQuickLinks","Theme2LsgSocialMediaIcons","Theme2LsgFooter","Theme2LsgHero","Theme2LsgTable","theme3Components","Theme3LsgButton","Theme3LsgBanner","Theme3LsgCarousel","Theme3LsgCard","Theme3LsgCards","Theme3LsgBreadcrumb","Theme3LsgLogo","Theme3LsgNavigation","Theme3LsgLanguageSwitcher","Theme3LsgSearchTrigger","Theme3LsgSearchOverlay","Theme3LsgHeader","Theme3LsgQuickLinks","Theme3LsgSocialMediaIcons","Theme3LsgFooter","Theme3LsgHero","Theme3LsgTable"],"mappings":"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","x_google_ignoreList":[4,20,28]}