@asante-org/atlascopco-vt-litesitegenerator 3.0.20 → 3.0.21

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/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/esm/embla-carousel.esm.js","../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/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/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 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\";\n\nexport interface LsgBannerCta {\n label: string;\n href: string;\n external?: boolean;\n}\n\nexport interface LsgBannerProps {\n heading: string;\n eyebrow?: string;\n copy?: string;\n cta?: LsgBannerCta;\n /** Background image URL */\n imageUrl?: string;\n imageAlt?: string;\n}\n\nexport const LsgBanner: React.FC<LsgBannerProps> = ({\n heading,\n eyebrow,\n copy,\n cta,\n imageUrl,\n imageAlt = \"\",\n}) => {\n return (\n <section className=\"lsg-banner\">\n {imageUrl && (\n <div className=\"lsg-banner__background\" aria-hidden=\"true\">\n <img src={imageUrl} alt={imageAlt} />\n </div>\n )}\n <div className=\"lsg-banner__inner\">\n {eyebrow && <span className=\"lsg-banner__eyebrow\">{eyebrow}</span>}\n <h1 className=\"lsg-banner__heading\">{heading}</h1>\n {copy && <p className=\"lsg-banner__copy\">{copy}</p>}\n {cta && (\n <LsgButton\n href={cta.href}\n external={cta.external}\n variant=\"primary\"\n className=\"lsg-banner__cta\"\n >\n {cta.label}\n </LsgButton>\n )}\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\n className={level === 0 ? \"lsg-nav__list\" : \"lsg-nav__dropdown\"}\n role=\"list\"\n >\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={[\n \"lsg-nav__link\",\n item.current ? \"lsg-nav__link--current\" : \"\",\n ]\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 640 640\" focusable=\"false\">\n <path d=\"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 </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\n className={[\"lsg-nav\", `lsg-nav--${variant}`].join(\" \")}\n aria-label={label}\n >\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 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 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 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 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 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","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 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 const plugins = this.opts.transition === \"fade\" ? [EmblaCarouselFade()] : [];\n this.embla = EmblaCarousel(viewport, { loop: true }, 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 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 // 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 section = viewport.closest<HTMLElement>(\"[data-lsg-is='hero']\");\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\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 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 \"./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\" data-form-next=\"\">\n Continue\n </button>\n ) : (\n <button type=\"submit\" className=\"cmp-vtba-form__submit\" 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\";\n\nimport {\n LsgBanner,\n LsgBreadcrumb,\n LsgButton,\n LsgCard,\n LsgCards,\n LsgFooter,\n LsgFormContainer,\n LsgFormFieldConsent,\n LsgFormFieldCountry,\n LsgFormFieldEmail,\n LsgFormFieldSelect,\n LsgFormFieldTel,\n LsgFormFieldText,\n LsgFormFieldTextarea,\n LsgFormStep,\n LsgHeader,\n LsgHero,\n LsgTabs,\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 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 LsgFormContainer,\n LsgFormFieldText,\n LsgFormFieldEmail,\n LsgFormFieldTel,\n LsgFormFieldSelect,\n LsgFormFieldCountry,\n LsgFormFieldTextarea,\n LsgFormFieldConsent,\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 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 LsgFormStep: createThemeComponent(themeName, \"form-step\", BASE_COMPONENTS.LsgFormStep),\n LsgTabs: createThemeComponent(themeName, \"tabs\", BASE_COMPONENTS.LsgTabs),\n };\n}\n","import { createThemeComponents } from \"../createThemeComponents\";\n\nexport const theme1Components = createThemeComponents(\"theme-1\");\n\nexport const {\n LsgButton: Theme1LsgButton,\n LsgBanner: Theme1LsgBanner,\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 // 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 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 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 // 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 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 // 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","variant","_c","disabled","href","onClick","_d","type","_e","className","_f","external","classNames","filter","Boolean","join","React","createElement","_extends","undefined","target","rel","LsgBanner","heading","eyebrow","copy","cta","imageUrl","_b","imageAlt","src","alt","label","cardVariantClass","LsgCard","title","preTitle","subtitle","description","iconUrl","iconAlt","resolvedIconUrl","actionLabel","cardClassName","content","Fragment","loading","LsgCards","cards","columns","listClassName","concat","map","card","index","key","LSG_ICON_PATHS","bars","chevronLeft","chevronRight","close","globe","home","search","LsgIcon","name","xmlns","viewBox","focusable","d","isSafeHref","value","trim","toLowerCase","startsWith","includes","BreadcrumbSeparator","LsgBreadcrumb","items","showBreadcrumbs","includeHome","homeHref","homeLabel","_g","visibleItems","Array","isArray","item","length","rootClassName","safeHomeHref","isCurrent","safeHref","LsgLogo","width","height","text","LsgNavigation","onItemClick","onItemHover","renderItems","navItems","level","role","hasChildren","open","onMouseEnter","event","preventDefault","current","ChevronIcon","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","points","LsgLanguageSwitcher","currentLanguage","languages","onLanguageChange","useState","isOpen","setIsOpen","containerRef","useRef","reactId","useId","triggerId","dropdownId","useEffect","handleClick","e","contains","document","addEventListener","removeEventListener","handleKey","ref","id","prev","lang","code","SearchIcon","cx","cy","r","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","i","find","getItemsAtLevel","getMegaColumns","maxDepth","slice","forEach","activeItem","push","isCurrentOrActiveAtLevel","isSelectedAtLevel","hasOpenNavItem","some","clearMegaMenuBranch","scope","HTMLElement","classList","remove","querySelectorAll","column","activateMegaMenuItem","parentColumn","parentElement","from","openItem","add","querySelector","HeaderActionButton","icon","controls","LsgHeader","logo","searchLabel","searchPlaceholder","_h","menuOpen","_j","mobileLevel","_k","mobileSelectedLabel","onMenuToggle","onNavItemHover","onDropdownClose","onMegaItemHover","onMobileItemClick","onMobileBreadcrumbClick","_l","searchOpen","setSearchOpen","headerRef","mobileOpen","mobileItems","mobileBackLabel","dropdownOpen","closeOnOutsidePointerDown","megaItems","removeListeners","onFocusIn","removeListener","openSearch","renderActions","showMenu","renderMegaPanel","columnItems","columnIndex","renderMobileMenu","Math","max","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","isNumber","subject","isString","isBoolean","isObject","Object","prototype","toString","call","mathAbs","n","abs","mathSign","sign","deltaAbs","valueB","valueA","factorAbs","diff","roundToTwoDecimals","num","round","arrayKeys","array","objectKeys","Number","arrayLast","arrayLastIndex","arrayIsLastIndex","arrayFromNumber","startAt","_","object","keys","objectsMergeDeep","objectA","objectB","reduce","mergedObjects","currentObject","areObjects","isMouseEvent","evt","ownerWindow","MouseEvent","clampNumber","number","min","isNaN","LsgHeroController","viewport","elements","options","_this","embla","autoplayTimer","contentObserver","scrollPrev","opts","autoplay","startAutoplay","scrollNext","handleScrollDown","els","scrollDownTarget","scrollIntoView","behavior","stopAutoplay","setInterval","autoplayInterval","clearInterval","transition","mount","plugins","EmblaCarouselFade","EmblaCarousel","loop","on","prevBtn","nextBtn","scrollDownBtn","section","closest","contentWrapper","ResizeObserver","setHeight_1","el","setProperty","offsetHeight","entries","observe","defineProperty","get","destroy","disconnect","off","LsgHeroCard","imageSrc","videoSrc","youtubeId","vimeoId","cardBackground","cardColor","total","videoReady","setVideoReady","hasYoutube","hasVimeo","hasDam","hasMedia","youtubeEmbedSrc","vimeoEmbedSrc","ariaLabel","articleClasses","autoPlay","muted","playsInline","onCanPlay","allow","tabIndex","LsgHero","slides","showArrows","enableScrollDown","scrollDownText","isCarousel","sectionRef","viewportRef","prevBtnRef","nextBtnRef","controllerRef","useCallback","next","nextElementSibling","sectionClasses","String","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","direction","step","onRootClick","currentTarget","rect","getBoundingClientRect","beforeMidpoint","clientY","top","clientX","left","select","moveFocus","tab","block","inline","press","onKeyDown","last","rootClass","onScroll","isActive","node","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","replace","ch","fromCodePoint","charCodeAt","findCountry","initTelPickers","root","inputs","input","enhance","getTelValue","dial","getAttribute","national","setAttribute","initialIso2","selected","wrapper","insertBefore","appendChild","toggle","dropdown","list","applySelected","country","textContent","flag","renderList","f","digits","match","indexOf","li","first","idx","activeElement","LsgFormFieldTel","pattern","defaultCountry","fieldRef","LsgFormFieldSelect","opt","COUNTRY_FIXTURE","LsgFormFieldCountry","countries","LsgFormFieldTextarea","rows","LsgFormFieldConsent","dangerouslySetInnerHTML","__html","LsgFormStep","stepId","LsgFormContainer","multiStep","currentStep","steps","formError","successMessage","method","noValidate","stepTitle","BASE_COMPONENTS","createThemeComponent","themeName","componentName","Component","WrappedComponent","props","displayName","createThemeComponents","theme1Components","Theme1LsgButton","Theme1LsgBanner","Theme1LsgCard","Theme1LsgCards","Theme1LsgBreadcrumb","Theme1LsgLogo","Theme1LsgNavigation","Theme1LsgLanguageSwitcher","Theme1LsgSearchTrigger","Theme1LsgSearchOverlay","Theme1LsgHeader","Theme1LsgQuickLinks","Theme1LsgSocialMediaIcons","Theme1LsgFooter","Theme1LsgHero","theme2Components","Theme2LsgButton","Theme2LsgBanner","Theme2LsgCard","Theme2LsgCards","Theme2LsgBreadcrumb","Theme2LsgLogo","Theme2LsgNavigation","Theme2LsgLanguageSwitcher","Theme2LsgSearchTrigger","Theme2LsgSearchOverlay","Theme2LsgHeader","Theme2LsgQuickLinks","Theme2LsgSocialMediaIcons","Theme2LsgFooter","Theme2LsgHero","theme3Components","Theme3LsgButton","Theme3LsgBanner","Theme3LsgCard","Theme3LsgCards","Theme3LsgBreadcrumb","Theme3LsgLogo","Theme3LsgNavigation","Theme3LsgLanguageSwitcher","Theme3LsgSearchTrigger","Theme3LsgSearchOverlay","Theme3LsgHeader","Theme3LsgQuickLinks","Theme3LsgSocialMediaIcons","Theme3LsgFooter","Theme3LsgHero"],"mappings":"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","x_google_ignoreList":[15,16,23]}
1
+ {"version":3,"file":"index.esm.js","sources":["../../src/components/lsg/LsgButton/LsgButton.tsx","../../src/components/lsg/LsgBanner/LsgBanner.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/esm/embla-carousel.esm.js","../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/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/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\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 headingTag?: LsgBannerHeadingTag;\n className?: string;\n}\n\nfunction bannerClassName(\n layout: LsgBannerLayout,\n mobileMediaPosition: LsgBannerMobileMediaPosition,\n className?: string,\n): string {\n return [\n \"lsg-banner\",\n `lsg-banner--${layout}`,\n `lsg-banner--mobile-media-${mobileMediaPosition}`,\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 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, 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 \"./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\n className={level === 0 ? \"lsg-nav__list\" : \"lsg-nav__dropdown\"}\n role=\"list\"\n >\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={[\n \"lsg-nav__link\",\n item.current ? \"lsg-nav__link--current\" : \"\",\n ]\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 640 640\" focusable=\"false\">\n <path d=\"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 </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\n className={[\"lsg-nav\", `lsg-nav--${variant}`].join(\" \")}\n aria-label={label}\n >\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 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 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 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 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 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","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 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 const plugins = this.opts.transition === \"fade\" ? [EmblaCarouselFade()] : [];\n this.embla = EmblaCarousel(viewport, { loop: true }, 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 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 // 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 section = viewport.closest<HTMLElement>(\"[data-lsg-is='hero']\");\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\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 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 \"./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\" data-form-next=\"\">\n Continue\n </button>\n ) : (\n <button type=\"submit\" className=\"cmp-vtba-form__submit\" 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\";\n\nimport {\n LsgBanner,\n LsgBreadcrumb,\n LsgButton,\n LsgCard,\n LsgCards,\n LsgFooter,\n LsgFormContainer,\n LsgFormFieldConsent,\n LsgFormFieldCountry,\n LsgFormFieldEmail,\n LsgFormFieldSelect,\n LsgFormFieldTel,\n LsgFormFieldText,\n LsgFormFieldTextarea,\n LsgFormStep,\n LsgHeader,\n LsgHero,\n LsgTabs,\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 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 LsgFormContainer,\n LsgFormFieldText,\n LsgFormFieldEmail,\n LsgFormFieldTel,\n LsgFormFieldSelect,\n LsgFormFieldCountry,\n LsgFormFieldTextarea,\n LsgFormFieldConsent,\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 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 LsgFormStep: createThemeComponent(themeName, \"form-step\", BASE_COMPONENTS.LsgFormStep),\n LsgTabs: createThemeComponent(themeName, \"tabs\", BASE_COMPONENTS.LsgTabs),\n };\n}\n","import { createThemeComponents } from \"../createThemeComponents\";\n\nexport const theme1Components = createThemeComponents(\"theme-1\");\n\nexport const {\n LsgButton: Theme1LsgButton,\n LsgBanner: Theme1LsgBanner,\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 // 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 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 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 // 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 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 // 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","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","cardVariantClass","LsgCard","title","subtitle","description","iconUrl","iconAlt","resolvedIconUrl","actionLabel","cardClassName","content","Fragment","loading","LsgCards","cards","columns","listClassName","card","LSG_ICON_PATHS","bars","chevronLeft","chevronRight","close","globe","home","search","LsgIcon","name","xmlns","viewBox","focusable","d","isSafeHref","value","trim","toLowerCase","startsWith","includes","BreadcrumbSeparator","LsgBreadcrumb","items","showBreadcrumbs","includeHome","homeHref","homeLabel","visibleItems","Array","isArray","item","rootClassName","safeHomeHref","isCurrent","safeHref","LsgLogo","width","height","text","LsgNavigation","onItemClick","onItemHover","renderItems","navItems","level","role","hasChildren","open","onMouseEnter","event","preventDefault","current","ChevronIcon","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","points","LsgLanguageSwitcher","currentLanguage","languages","onLanguageChange","useState","isOpen","setIsOpen","containerRef","useRef","reactId","useId","triggerId","dropdownId","useEffect","handleClick","e","contains","document","addEventListener","removeEventListener","handleKey","ref","id","prev","lang","code","SearchIcon","cx","cy","r","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","i","find","getItemsAtLevel","getMegaColumns","maxDepth","forEach","activeItem","push","isCurrentOrActiveAtLevel","isSelectedAtLevel","hasOpenNavItem","some","clearMegaMenuBranch","scope","HTMLElement","classList","remove","querySelectorAll","column","activateMegaMenuItem","parentColumn","parentElement","from","openItem","add","querySelector","HeaderActionButton","icon","LsgHeader","logo","searchLabel","searchPlaceholder","menuOpen","mobileLevel","_k","mobileSelectedLabel","onMenuToggle","onNavItemHover","onDropdownClose","onMegaItemHover","onMobileItemClick","onMobileBreadcrumbClick","_l","searchOpen","setSearchOpen","headerRef","mobileOpen","mobileItems","mobileBackLabel","dropdownOpen","closeOnOutsidePointerDown","megaItems","removeListeners","onFocusIn","removeListener","openSearch","renderActions","showMenu","renderMegaPanel","columnItems","columnIndex","renderMobileMenu","Math","max","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","isNumber","subject","isString","isBoolean","isObject","Object","prototype","toString","call","mathAbs","n","abs","mathSign","sign","deltaAbs","valueB","valueA","factorAbs","diff","roundToTwoDecimals","num","round","arrayKeys","array","objectKeys","Number","arrayLast","arrayLastIndex","arrayIsLastIndex","arrayFromNumber","startAt","_","object","keys","objectsMergeDeep","objectA","objectB","reduce","mergedObjects","currentObject","areObjects","isMouseEvent","evt","ownerWindow","MouseEvent","clampNumber","number","min","isNaN","LsgHeroController","viewport","elements","options","_this","embla","autoplayTimer","contentObserver","scrollPrev","opts","autoplay","startAutoplay","scrollNext","handleScrollDown","els","scrollDownTarget","scrollIntoView","behavior","stopAutoplay","setInterval","autoplayInterval","clearInterval","transition","mount","plugins","EmblaCarouselFade","EmblaCarousel","on","prevBtn","nextBtn","scrollDownBtn","section","closest","contentWrapper","ResizeObserver","setHeight_1","el","setProperty","offsetHeight","entries","observe","defineProperty","get","destroy","disconnect","off","LsgHeroCard","imageSrc","videoSrc","youtubeId","vimeoId","cardBackground","cardColor","total","videoReady","setVideoReady","hasYoutube","hasVimeo","hasDam","youtubeEmbedSrc","vimeoEmbedSrc","ariaLabel","articleClasses","onCanPlay","allow","tabIndex","LsgHero","slides","showArrows","enableScrollDown","scrollDownText","isCarousel","sectionRef","viewportRef","prevBtnRef","nextBtnRef","controllerRef","useCallback","next","nextElementSibling","sectionClasses","String","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","direction","step","onRootClick","currentTarget","rect","getBoundingClientRect","beforeMidpoint","clientY","top","clientX","left","select","moveFocus","tab","block","inline","press","onKeyDown","last","rootClass","onScroll","isActive","node","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","replace","ch","fromCodePoint","charCodeAt","findCountry","initTelPickers","root","inputs","input","enhance","getTelValue","dial","getAttribute","national","setAttribute","initialIso2","selected","wrapper","insertBefore","appendChild","toggle","dropdown","list","applySelected","country","textContent","flag","renderList","f","digits","match","indexOf","li","first","idx","activeElement","LsgFormFieldTel","pattern","defaultCountry","fieldRef","LsgFormFieldSelect","opt","COUNTRY_FIXTURE","LsgFormFieldCountry","countries","LsgFormFieldTextarea","rows","LsgFormFieldConsent","dangerouslySetInnerHTML","__html","LsgFormStep","stepId","LsgFormContainer","multiStep","currentStep","steps","formError","successMessage","method","noValidate","stepTitle","BASE_COMPONENTS","createThemeComponent","themeName","componentName","Component","WrappedComponent","props","displayName","createThemeComponents","theme1Components","Theme1LsgButton","Theme1LsgBanner","Theme1LsgCard","Theme1LsgCards","Theme1LsgBreadcrumb","Theme1LsgLogo","Theme1LsgNavigation","Theme1LsgLanguageSwitcher","Theme1LsgSearchTrigger","Theme1LsgSearchOverlay","Theme1LsgHeader","Theme1LsgQuickLinks","Theme1LsgSocialMediaIcons","Theme1LsgFooter","Theme1LsgHero","theme2Components","Theme2LsgButton","Theme2LsgBanner","Theme2LsgCard","Theme2LsgCards","Theme2LsgBreadcrumb","Theme2LsgLogo","Theme2LsgNavigation","Theme2LsgLanguageSwitcher","Theme2LsgSearchTrigger","Theme2LsgSearchOverlay","Theme2LsgHeader","Theme2LsgQuickLinks","Theme2LsgSocialMediaIcons","Theme2LsgFooter","Theme2LsgHero","theme3Components","Theme3LsgButton","Theme3LsgBanner","Theme3LsgCard","Theme3LsgCards","Theme3LsgBreadcrumb","Theme3LsgLogo","Theme3LsgNavigation","Theme3LsgLanguageSwitcher","Theme3LsgSearchTrigger","Theme3LsgSearchOverlay","Theme3LsgHeader","Theme3LsgQuickLinks","Theme3LsgSocialMediaIcons","Theme3LsgFooter","Theme3LsgHero"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","x_google_ignoreList":[15,16,23]}