@asante-org/atlascopco-vt-litesitegenerator 3.6.19 → 3.6.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.
Files changed (37) hide show
  1. package/dist/index.esm.js +359 -545
  2. package/dist/index.esm.js.map +1 -1
  3. package/dist/index.esm.scss +295 -552
  4. package/dist/index.js +361 -543
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.scss +295 -552
  7. package/dist/lsg-clientlib.css +2106 -0
  8. package/dist/lsg-clientlib.css.map +1 -0
  9. package/dist/lsg-clientlib.js +524 -0
  10. package/dist/lsg-clientlib.js.map +1 -0
  11. package/dist/src/components/lsg/LsgCarousel/LsgCarousel.d.ts +12 -33
  12. package/dist/src/components/lsg/LsgCarousel/LsgCarousel.stories.d.ts +3 -18
  13. package/dist/src/components/lsg/LsgCarousel/LsgCarouselController.d.ts +1 -46
  14. package/dist/src/components/lsg/LsgCarousel/bootLsgCarousel.d.ts +9 -2
  15. package/dist/src/components/lsg/LsgTable/LsgTable.d.ts +19 -0
  16. package/dist/src/components/lsg/LsgTable/LsgTable.stories.d.ts +8 -0
  17. package/dist/src/components/lsg/LsgTable/index.d.ts +2 -0
  18. package/dist/src/components/lsg/index.d.ts +2 -0
  19. package/dist/src/index.d.ts +5 -5
  20. package/dist/src/themes/createThemeComponents.d.ts +1 -0
  21. package/dist/src/themes/theme-1/components.d.ts +2 -1
  22. package/dist/src/themes/theme-2/components.d.ts +2 -1
  23. package/dist/src/themes/theme-3/components.d.ts +2 -1
  24. package/dist/themes/theme-1.css +645 -298
  25. package/dist/themes/theme-1.css.map +1 -1
  26. package/dist/themes/theme-1.js +49 -217
  27. package/dist/themes/theme-1.js.map +1 -1
  28. package/dist/themes/theme-2.css +362 -479
  29. package/dist/themes/theme-2.css.map +1 -1
  30. package/dist/themes/theme-2.js +49 -217
  31. package/dist/themes/theme-2.js.map +1 -1
  32. package/dist/themes/theme-3.css +268 -495
  33. package/dist/themes/theme-3.css.map +1 -1
  34. package/dist/themes/theme-3.js +49 -217
  35. package/dist/themes/theme-3.js.map +1 -1
  36. package/dist/tsconfig.tsbuildinfo +1 -1
  37. package/package.json +1 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/components/lsg/LsgButton/LsgButton.tsx","../../src/components/lsg/LsgBanner/LsgBanner.tsx","../node_modules/tslib/tslib.es6.js","../../src/components/lsg/LsgImage/LsgImage.tsx","../../src/components/lsg/LsgVideo/LsgVideo.tsx","../node_modules/embla-carousel/esm/embla-carousel.esm.js","../node_modules/embla-carousel-fade/esm/embla-carousel-fade.esm.js","../../src/components/lsg/LsgCarousel/LsgCarouselController.ts","../../src/components/lsg/LsgCarousel/LsgCarousel.tsx","../../src/components/lsg/LsgCard/LsgCard.tsx","../../src/utils/lsgIconPaths.ts","../../src/utils/LsgIcon.tsx","../../src/components/lsg/LsgBreadcrumb/LsgBreadcrumb.tsx","../../src/components/lsg/LsgLogo/LsgLogo.tsx","../../src/components/lsg/LsgNavigation/LsgNavigation.tsx","../../src/components/lsg/LsgLanguageSwitcher/LsgLanguageSwitcher.tsx","../../src/components/lsg/LsgSearchTrigger/LsgSearchTrigger.tsx","../../src/components/lsg/LsgSearchOverlay/LsgSearchOverlay.tsx","../../src/components/lsg/LsgHeader/LsgHeader.tsx","../../src/components/lsg/LsgQuickLinks/LsgQuickLinks.tsx","../../src/components/lsg/LsgSocialMediaIcons/LsgSocialMediaIcons.tsx","../../src/components/lsg/LsgFooter/LsgFooter.tsx","../../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/components/lsg/LsgFormPolicyNotice/LsgFormPolicyNotice.tsx","../../src/themes/createThemeComponents.tsx","../../src/themes/theme-1/components.tsx","../../src/themes/theme-2/components.tsx","../../src/themes/theme-3/components.tsx"],"sourcesContent":["import React from \"react\";\nimport \"./LsgButton.scss\";\n\nexport type LsgButtonVariant = \"primary\" | \"secondary\" | \"tertiary\" | \"outlined-white\" | \"outlined-black\";\n\nexport interface LsgButtonProps {\n children?: React.ReactNode;\n variant?: LsgButtonVariant;\n disabled?: boolean;\n /** Renders an <a> element when provided */\n href?: string;\n onClick?: (e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n type?: \"button\" | \"submit\" | \"reset\";\n className?: string;\n /** Opens in a new tab when used with href */\n external?: boolean;\n}\n\nexport const LsgButton: React.FC<LsgButtonProps> = ({\n children,\n variant = \"primary\",\n disabled = false,\n href,\n onClick,\n type = \"button\",\n className = \"\",\n external = false,\n}) => {\n const classNames = [\n \"lsg-button\",\n `lsg-button--${variant}`,\n disabled ? \"lsg-button--disabled\" : \"\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n if (href) {\n return (\n <a\n href={disabled ? undefined : href}\n className={classNames}\n aria-disabled={disabled || undefined}\n onClick={disabled ? undefined : (onClick as React.MouseEventHandler<HTMLAnchorElement>)}\n {...(external ? { target: \"_blank\", rel: \"noopener noreferrer\" } : {})}\n >\n <span className=\"lsg-button__text\">{children}</span>\n </a>\n );\n }\n\n return (\n <button\n type={type}\n className={classNames}\n disabled={disabled}\n onClick={onClick as React.MouseEventHandler<HTMLButtonElement>}\n >\n {children}\n </button>\n );\n};\n","import React from \"react\";\nimport \"./LsgBanner.scss\";\nimport { LsgButton } from \"../LsgButton\";\nimport type { LsgButtonVariant } from \"../LsgButton\";\n\nexport type LsgBannerLayout =\n | \"media-left\"\n | \"media-right\"\n | \"media-left-compact\"\n | \"media-right-compact\"\n | \"overlay\"\n | \"overlay-transparent\"\n | \"text-only\";\n\n/** Mirrors the AEM \"Background color\" style group on the banner policy. */\nexport type LsgBannerBackground =\n | \"white\"\n | \"light\"\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"dark\"\n | \"black\";\n\nexport type LsgBannerMobileMediaPosition = \"top\" | \"bottom\";\nexport type LsgBannerMediaType = \"image\" | \"video\";\nexport type LsgBannerHeadingTag = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n\nexport interface LsgBannerCta {\n label: string;\n href?: string;\n external?: boolean;\n variant?: LsgButtonVariant;\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;\n}\n\nexport interface LsgBannerProps {\n /** Mandatory banner title. */\n heading: string;\n /** Figma/AEM pre-title. `eyebrow` remains as a backwards-compatible alias. */\n preTitle?: string;\n eyebrow?: string;\n /** Optional body copy. `copy` remains as a backwards-compatible alias. */\n body?: string;\n copy?: string;\n /** Up to three CTAs. Theme/AEM policy may choose to expose fewer. */\n ctas?: LsgBannerCta[];\n /** Backwards-compatible single CTA alias. */\n cta?: LsgBannerCta;\n /** Image/video presentation controlled by the Banner authoring layout. */\n mediaType?: LsgBannerMediaType;\n imageUrl?: string;\n imageAlt?: string;\n videoUrl?: string;\n videoPoster?: string;\n videoControls?: boolean;\n videoAutoPlay?: boolean;\n videoMuted?: boolean;\n videoLoop?: boolean;\n /** Desktop visual layout matching the Figma Banner variants. */\n layout?: LsgBannerLayout;\n /** Mobile stack order for split/compact layouts. */\n mobileMediaPosition?: LsgBannerMobileMediaPosition;\n /**\n * Background colour, mirroring the AEM \"Background color\" style group.\n * Left undefined on purpose so no class is emitted and the banner keeps its\n * default light background. Each option carries its own legible foreground.\n */\n background?: LsgBannerBackground;\n headingTag?: LsgBannerHeadingTag;\n className?: string;\n}\n\nfunction bannerClassName(\n layout: LsgBannerLayout,\n mobileMediaPosition: LsgBannerMobileMediaPosition,\n background?: LsgBannerBackground,\n className?: string,\n): string {\n return [\n \"lsg-banner\",\n `lsg-banner--${layout}`,\n `lsg-banner--mobile-media-${mobileMediaPosition}`,\n // In AEM this class arrives on the decoration div instead; the SCSS only\n // sets inherited custom properties, so either position works.\n background ? `lsg-banner--bg-${background}` : \"\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n}\n\nexport const LsgBanner: React.FC<LsgBannerProps> = ({\n heading,\n preTitle,\n eyebrow,\n body,\n copy,\n ctas,\n cta,\n mediaType,\n imageUrl,\n imageAlt = \"\",\n videoUrl,\n videoPoster,\n videoControls = true,\n videoAutoPlay = false,\n videoMuted = true,\n videoLoop = false,\n layout = \"media-left\",\n mobileMediaPosition = \"top\",\n background,\n headingTag = \"h1\",\n className,\n}) => {\n const resolvedPreTitle = preTitle ?? eyebrow;\n const resolvedBody = body ?? copy;\n const actions = (ctas?.length ? ctas : cta ? [cta] : []).slice(0, 3);\n const resolvedMediaType: LsgBannerMediaType =\n mediaType ?? (videoUrl ? \"video\" : \"image\");\n const hasMedia =\n layout !== \"text-only\" &&\n (resolvedMediaType === \"video\" ? Boolean(videoUrl) : Boolean(imageUrl));\n const HeadingTag = headingTag;\n\n return (\n <section\n className={bannerClassName(layout, mobileMediaPosition, background, className)}\n data-lsg-is=\"banner\"\n data-lsg-banner-layout={layout}\n data-lsg-banner-mobile-media={mobileMediaPosition}\n data-lsg-banner-media={hasMedia ? resolvedMediaType : \"none\"}\n >\n <div className=\"lsg-banner__shell\">\n {hasMedia && (\n <div className=\"lsg-banner__media\">\n {resolvedMediaType === \"video\" && videoUrl ? (\n <video\n className=\"lsg-banner__video\"\n src={videoUrl}\n poster={videoPoster}\n controls={videoControls}\n autoPlay={videoAutoPlay}\n muted={videoMuted}\n loop={videoLoop}\n playsInline\n aria-label={imageAlt || heading}\n />\n ) : imageUrl ? (\n <img className=\"lsg-banner__image\" src={imageUrl} alt={imageAlt} />\n ) : null}\n </div>\n )}\n\n <div className=\"lsg-banner__content\">\n {resolvedPreTitle && (\n <div className=\"lsg-banner__pre-title\">\n <span className=\"lsg-banner__pre-title-marker\" aria-hidden=\"true\" />\n <span className=\"lsg-banner__pre-title-text\">{resolvedPreTitle}</span>\n </div>\n )}\n\n <HeadingTag className=\"lsg-banner__heading\">{heading}</HeadingTag>\n\n {resolvedBody && (\n <div className=\"lsg-banner__body\">\n <p>{resolvedBody}</p>\n </div>\n )}\n\n {actions.length > 0 && (\n <div className=\"lsg-banner__actions\">\n {actions.map((action, index) => (\n <LsgButton\n key={`${action.label}-${action.href ?? \"button\"}-${index}`}\n href={action.href}\n external={action.external}\n variant={action.variant ?? \"primary\"}\n onClick={action.onClick}\n className=\"lsg-banner__cta\"\n >\n {action.label}\n </LsgButton>\n ))}\n </div>\n )}\n </div>\n </div>\n </section>\n );\n};\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import React from \"react\";\nimport \"./LsgImage.scss\";\n\nexport interface LsgImageTag {\n label: string;\n}\n\nexport interface LsgImageSource {\n /** Candidate set for this breakpoint. Maps to `<source srcset>`. */\n srcset: string;\n /** Media condition. Maps to `<source media>`. Omit for the fallback source. */\n media?: string;\n}\n\nexport interface LsgImageProps {\n /** Image URL rendered by the component. Maps to Core Image `src`. */\n imageUrl?: string;\n /** Alternative text for the image. Maps to Core Image `alt`. */\n imageAlt?: string;\n /** Candidate set for native adaptive loading. Maps to Core Image `srcset`. Ignored when `sources` is set, mirroring the AEM crops branch. */\n srcset?: string;\n /** Responsive `<source>` variants, as AEM emits from the Scene7 crop map. */\n sources?: LsgImageSource[];\n /** Intrinsic width of the image. Maps to Core Image `width`. */\n width?: number | string;\n /** Intrinsic height of the image. Maps to Core Image `height`. */\n height?: number | string;\n /** URI template used by AEM to request a rendition. Maps to Core Image `srcUriTemplate`. */\n srcUriTemplate?: string;\n /** Native lazy loading, as per the Core Image `disableLazyLoading` policy. Default: true. */\n lazyEnabled?: boolean;\n /** Render the title as the image tooltip instead of the caption. Maps to Core Image `displayPopupTitle`. */\n displayPopupTitle?: boolean;\n /** Component id. Maps to Core Image `id`. */\n id?: string;\n /** Serialised data layer payload. Maps to Core Image `data.json`. */\n dataLayer?: string;\n /** Asset UUID. Maps to Core Image `uuid`. */\n assetId?: string;\n /** Marks the image as a Dynamic Media image. Maps to Core Image `dmImage`. */\n dmImage?: boolean | string;\n /** Up to 3 tag pills overlaid on the image. */\n tags?: LsgImageTag[];\n /** Image title. Maps to the AEM Core Image caption/title. */\n title?: string;\n /** LSG-specific description revealed on hover/focus. */\n description?: string;\n /** Backward-compatible alias for description. */\n caption?: string;\n /** Optional image link. Maps to Core Image `imageLink`. */\n href?: string;\n className?: string;\n}\n\nfunction isSafeUrl(url: string | undefined): boolean {\n if (!url) return false;\n\n const lower = url.toLowerCase().trim();\n if (\n lower.startsWith(\"javascript:\") ||\n lower.startsWith(\"data:\") ||\n lower.startsWith(\"vbscript:\")\n ) {\n return false;\n }\n\n return (\n lower.startsWith(\"/\") ||\n lower.startsWith(\"http://\") ||\n lower.startsWith(\"https://\") ||\n lower.startsWith(\"mailto:\") ||\n lower.startsWith(\"tel:\") ||\n !lower.includes(\":\")\n );\n}\n\nexport const LsgImage: React.FC<LsgImageProps> = ({\n imageUrl,\n imageAlt = \"\",\n srcset,\n sources = [],\n width,\n height,\n srcUriTemplate,\n lazyEnabled = true,\n displayPopupTitle = false,\n id,\n dataLayer,\n assetId,\n dmImage,\n tags = [],\n title,\n description,\n caption,\n href,\n className = \"\",\n}) => {\n // Core Image v3 renders nothing without a src; the AEM LSG model gates on the\n // same condition via `model.ready`.\n if (!imageUrl) {\n return null;\n }\n\n const text = description ?? caption;\n\n const visibleTags: LsgImageTag[] = Array.isArray(tags)\n ? tags\n .filter(\n (tag): tag is LsgImageTag =>\n Boolean(tag) &&\n typeof tag.label === \"string\" &&\n tag.label.trim().length > 0,\n )\n .slice(0, 3)\n : [];\n\n const visibleSources: LsgImageSource[] = Array.isArray(sources)\n ? sources.filter(\n (source): source is LsgImageSource =>\n Boolean(source) &&\n typeof source.srcset === \"string\" &&\n source.srcset.trim().length > 0,\n )\n : [];\n\n const rootClass = [\"lsg-image\", \"cmp-image\", className]\n .filter(Boolean)\n .join(\" \");\n const safeHref = href && isSafeUrl(href) ? href : undefined;\n const linkLabel = title ? `View ${title}` : \"View image\";\n const showTitle = Boolean(title) && !displayPopupTitle;\n const showCaption = showTitle || Boolean(text);\n\n return (\n <div\n className={rootClass}\n id={id}\n data-cmp-data-layer={dataLayer}\n data-asset-id={assetId}\n data-cmp-dmimage={dmImage ? String(dmImage) : undefined}\n itemScope\n itemType=\"http://schema.org/ImageObject\"\n >\n <div className=\"lsg-image__media\">\n <div className=\"lsg-image__picture\">\n <picture>\n {visibleSources.map((source, index) => (\n <source\n key={`${source.media ?? \"default\"}-${index}`}\n media={source.media}\n srcSet={source.srcset}\n />\n ))}\n\n <img\n className=\"lsg-image__img cmp-image__image\"\n src={imageUrl}\n srcSet={visibleSources.length > 0 ? undefined : srcset}\n alt={imageAlt}\n title={displayPopupTitle ? title : undefined}\n width={width}\n height={height}\n data-cmp-src={srcUriTemplate}\n itemProp=\"contentUrl\"\n loading={lazyEnabled ? \"lazy\" : undefined}\n />\n </picture>\n </div>\n\n {safeHref && (\n <a\n className=\"lsg-image__link cmp-image__link\"\n href={safeHref}\n aria-label={linkLabel}\n data-cmp-clickable={dataLayer ? true : undefined}\n />\n )}\n\n {visibleTags.length > 0 && (\n <div className=\"lsg-image__tags\">\n {visibleTags.map((tag, index) => (\n <span\n key={`${tag.label}-${index}`}\n className=\"lsg-image__tag\"\n >\n {tag.label}\n </span>\n ))}\n </div>\n )}\n </div>\n\n {showCaption && (\n <div className=\"lsg-image__caption\">\n {showTitle && (\n <p className=\"lsg-image__title cmp-image__title\" itemProp=\"caption\">\n {title}\n </p>\n )}\n {text && <p className=\"lsg-image__text\">{text}</p>}\n </div>\n )}\n\n {title && displayPopupTitle && <meta itemProp=\"caption\" content={title} />}\n </div>\n );\n};\n","import React, { useState } from \"react\";\nimport \"./LsgVideo.scss\";\n\nexport interface LsgVideoTag {\n label: string;\n}\n\nexport type LsgVideoDisplayMode = \"inline\" | \"full-width\" | \"content\";\n\nexport interface LsgVideoProps {\n /** URL of the video thumbnail / poster image. Optional. */\n imageUrl?: string;\n /** Alt text for the poster image. */\n imageAlt?: string;\n /** Up to 3 tag pills overlaid on the poster. Extra entries are ignored. */\n tags?: LsgVideoTag[];\n /** Video title shown in the caption bar. Optional. */\n title?: string;\n /** Caption / description text below the title, revealed on hover / focus. */\n caption?: string;\n /** Href for the play action — used only when no video source is supplied. */\n href?: string;\n /** Fired when the play control is activated. */\n onPlay?: () => void;\n /** Native DAM/direct media URL, or an external YouTube/Vimeo URL. */\n videoUrl?: string;\n /** Autoplay the video/embed as soon as it renders. Default: false. */\n autoplay?: boolean;\n /** Loop playback. Default: false. */\n loop?: boolean;\n /** Mute playback. Default: false. */\n muted?: boolean;\n /** Show native/embed playback controls. Default: true. */\n controls?: boolean;\n /** Layout variant. Default: \"content\". */\n displayMode?: LsgVideoDisplayMode;\n /** Show or hide the tag pills overlay. Default: true. */\n showTags?: boolean;\n className?: string;\n}\n\ninterface EmbedInfo {\n provider: \"youtube\" | \"vimeo\";\n embedUrl: string;\n}\n\nfunction buildUrl(base: string, params: Record<string, string>): string {\n try {\n const url = new URL(base);\n Object.keys(params).forEach((key) => url.searchParams.set(key, params[key]));\n return url.toString();\n } catch {\n return base;\n }\n}\n\nfunction getEmbedInfo(\n videoUrl: string | undefined,\n opts: { autoplay: boolean; loop: boolean; muted: boolean; controls: boolean },\n): EmbedInfo | null {\n if (!videoUrl || typeof videoUrl !== \"string\") return null;\n\n try {\n const url = new URL(videoUrl);\n const host = url.hostname.replace(/^www\\./, \"\");\n const path = url.pathname;\n\n if (host === \"youtube.com\" || host === \"youtube-nocookie.com\" || host === \"youtu.be\") {\n let id: string | null = null;\n if (host === \"youtu.be\") {\n id = path.slice(1);\n } else if (path.startsWith(\"/embed/\") || path.startsWith(\"/shorts/\")) {\n id = path.split(\"/\")[2];\n } else if (path === \"/watch\") {\n id = url.searchParams.get(\"v\");\n }\n if (id && /^[A-Za-z0-9_-]{11}$/.test(id)) {\n const params: Record<string, string> = {\n autoplay: opts.autoplay ? \"1\" : \"0\",\n mute: opts.muted ? \"1\" : \"0\",\n controls: opts.controls ? \"1\" : \"0\",\n rel: \"0\",\n };\n if (opts.loop) { params.loop = \"1\"; params.playlist = id; }\n const baseHost = host === \"youtube-nocookie.com\" ? \"youtube-nocookie.com\" : \"youtube.com\";\n return { provider: \"youtube\", embedUrl: buildUrl(`https://www.${baseHost}/embed/${id}`, params) };\n }\n }\n\n if (host === \"vimeo.com\" || host === \"player.vimeo.com\") {\n let id: string | null = null;\n if (host === \"player.vimeo.com\" && path.startsWith(\"/video/\")) {\n id = path.split(\"/\")[2];\n } else {\n const match = path.match(/^\\/(\\d+)$/);\n if (match) id = match[1];\n }\n if (id && /^\\d+$/.test(id)) {\n const params: Record<string, string> = {\n autoplay: opts.autoplay ? \"1\" : \"0\",\n muted: opts.muted ? \"1\" : \"0\",\n loop: opts.loop ? \"1\" : \"0\",\n controls: opts.controls ? \"1\" : \"0\",\n };\n return { provider: \"vimeo\", embedUrl: buildUrl(`https://player.vimeo.com/video/${id}`, params) };\n }\n }\n } catch {\n return null;\n }\n return null;\n}\n\nfunction isSafeUrl(url: string | undefined): boolean {\n if (!url) return false;\n const lower = url.toLowerCase().trim();\n if (lower.startsWith(\"javascript:\") || lower.startsWith(\"data:\") || lower.startsWith(\"vbscript:\")) return false;\n return (\n lower.startsWith(\"/\") ||\n lower.startsWith(\"http://\") ||\n lower.startsWith(\"https://\") ||\n lower.startsWith(\"mailto:\") ||\n lower.startsWith(\"tel:\") ||\n !lower.includes(\":\")\n );\n}\n\nconst PlayIcon = (\n <svg\n className=\"lsg-video__play-svg\"\n width=\"60\"\n height=\"60\"\n viewBox=\"0 0 60 60\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <circle cx=\"30\" cy=\"30\" r=\"30\" fill=\"currentColor\" fillOpacity=\"0.15\" />\n <polygon points=\"24,18 46,30 24,42\" fill=\"currentColor\" />\n </svg>\n);\n\nexport const LsgVideo: React.FC<LsgVideoProps> = ({\n imageUrl,\n imageAlt = \"\",\n tags = [],\n title,\n caption,\n href,\n onPlay,\n videoUrl,\n autoplay = false,\n loop = false,\n muted = false,\n controls = true,\n displayMode = \"content\",\n showTags = true,\n className = \"\",\n}) => {\n const [isRevealed, setIsRevealed] = useState(false);\n\n const hasVideoSource = typeof videoUrl === \"string\" && videoUrl.length > 0;\n const embedInfo = hasVideoSource ? getEmbedInfo(videoUrl, { autoplay, loop, muted, controls }) : null;\n const isEmbed = embedInfo !== null;\n const isNativeSource = hasVideoSource && !isEmbed;\n const showMedia = hasVideoSource && (autoplay || isRevealed);\n\n const visibleTags: LsgVideoTag[] =\n showTags && Array.isArray(tags)\n ? tags\n .filter(\n (tag): tag is LsgVideoTag =>\n Boolean(tag) && typeof tag.label === \"string\" && tag.label.trim().length > 0,\n )\n .slice(0, 3)\n : [];\n\n const handleActivate = (e: React.MouseEvent) => {\n if (hasVideoSource) {\n e.preventDefault();\n setIsRevealed(true);\n onPlay?.();\n return;\n }\n if (href && isSafeUrl(href)) return;\n if (onPlay) { e.preventDefault(); onPlay(); }\n };\n\n const playLabel = title ? `Play ${title}` : \"Play video\";\n const rootClass = [\"lsg-video\", `lsg-video--${displayMode}`, className].filter(Boolean).join(\" \");\n const showCaption = Boolean(title) || Boolean(caption);\n\n const renderPlayControl = () => {\n if (hasVideoSource) {\n return (\n <button type=\"button\" className=\"lsg-video__play\" aria-label={playLabel} onClick={handleActivate}>\n {PlayIcon}\n </button>\n );\n }\n if (href && isSafeUrl(href)) {\n return (\n <a href={href} className=\"lsg-video__play\" aria-label={playLabel} onClick={handleActivate}>\n {PlayIcon}\n </a>\n );\n }\n return (\n <button type=\"button\" className=\"lsg-video__play\" aria-label={playLabel} onClick={handleActivate}>\n {PlayIcon}\n </button>\n );\n };\n\n return (\n <div className={rootClass}>\n <div className=\"lsg-video__media\">\n {showMedia ? (\n isEmbed ? (\n <div className=\"lsg-video__embed\">\n <iframe\n className=\"lsg-video__iframe\"\n src={embedInfo!.embedUrl}\n title={title || \"Video\"}\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n referrerPolicy=\"strict-origin-when-cross-origin\"\n allowFullScreen\n loading=\"lazy\"\n />\n </div>\n ) : (\n isNativeSource && (\n // eslint-disable-next-line jsx-a11y/media-has-caption\n <video\n className=\"lsg-video__native\"\n poster={imageUrl || undefined}\n controls={controls}\n autoPlay\n loop={loop}\n muted={muted}\n playsInline\n >\n <source src={videoUrl} />\n </video>\n )\n )\n ) : (\n <>\n <div className=\"lsg-video__poster\">\n {imageUrl && <img className=\"lsg-video__poster-img\" src={imageUrl} alt={imageAlt} loading=\"lazy\" />}\n </div>\n {visibleTags.length > 0 && (\n <div className=\"lsg-video__tags\">\n {visibleTags.map((tag, i) => (\n <span key={`${tag.label}-${i}`} className=\"lsg-video__tag\">\n {tag.label}\n </span>\n ))}\n </div>\n )}\n {renderPlayControl()}\n </>\n )}\n {/* Caption inside __media — positioned statically (T1) or absolutely at bottom (T2/T3) via CSS tokens */}\n {showCaption && (\n <div className=\"lsg-video__caption\">\n {title && <p className=\"lsg-video__title\">{title}</p>}\n {caption && <p className=\"lsg-video__text\">{caption}</p>}\n </div>\n )}\n </div>\n </div>\n );\n};\n","function isNumber(subject) {\n return typeof subject === 'number';\n}\nfunction isString(subject) {\n return typeof subject === 'string';\n}\nfunction isBoolean(subject) {\n return typeof subject === 'boolean';\n}\nfunction isObject(subject) {\n return Object.prototype.toString.call(subject) === '[object Object]';\n}\nfunction mathAbs(n) {\n return Math.abs(n);\n}\nfunction mathSign(n) {\n return Math.sign(n);\n}\nfunction deltaAbs(valueB, valueA) {\n return mathAbs(valueB - valueA);\n}\nfunction factorAbs(valueB, valueA) {\n if (valueB === 0 || valueA === 0) return 0;\n if (mathAbs(valueB) <= mathAbs(valueA)) return 0;\n const diff = deltaAbs(mathAbs(valueB), mathAbs(valueA));\n return mathAbs(diff / valueB);\n}\nfunction roundToTwoDecimals(num) {\n return Math.round(num * 100) / 100;\n}\nfunction arrayKeys(array) {\n return objectKeys(array).map(Number);\n}\nfunction arrayLast(array) {\n return array[arrayLastIndex(array)];\n}\nfunction arrayLastIndex(array) {\n return Math.max(0, array.length - 1);\n}\nfunction arrayIsLastIndex(array, index) {\n return index === arrayLastIndex(array);\n}\nfunction arrayFromNumber(n, startAt = 0) {\n return Array.from(Array(n), (_, i) => startAt + i);\n}\nfunction objectKeys(object) {\n return Object.keys(object);\n}\nfunction objectsMergeDeep(objectA, objectB) {\n return [objectA, objectB].reduce((mergedObjects, currentObject) => {\n objectKeys(currentObject).forEach(key => {\n const valueA = mergedObjects[key];\n const valueB = currentObject[key];\n const areObjects = isObject(valueA) && isObject(valueB);\n mergedObjects[key] = areObjects ? objectsMergeDeep(valueA, valueB) : valueB;\n });\n return mergedObjects;\n }, {});\n}\nfunction isMouseEvent(evt, ownerWindow) {\n return typeof ownerWindow.MouseEvent !== 'undefined' && evt instanceof ownerWindow.MouseEvent;\n}\n\nfunction Alignment(align, viewSize) {\n const predefined = {\n start,\n center,\n end\n };\n function start() {\n return 0;\n }\n function center(n) {\n return end(n) / 2;\n }\n function end(n) {\n return viewSize - n;\n }\n function measure(n, index) {\n if (isString(align)) return predefined[align](n);\n return align(viewSize, n, index);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction EventStore() {\n let listeners = [];\n function add(node, type, handler, options = {\n passive: true\n }) {\n let removeListener;\n if ('addEventListener' in node) {\n node.addEventListener(type, handler, options);\n removeListener = () => node.removeEventListener(type, handler, options);\n } else {\n const legacyMediaQueryList = node;\n legacyMediaQueryList.addListener(handler);\n removeListener = () => legacyMediaQueryList.removeListener(handler);\n }\n listeners.push(removeListener);\n return self;\n }\n function clear() {\n listeners = listeners.filter(remove => remove());\n }\n const self = {\n add,\n clear\n };\n return self;\n}\n\nfunction Animations(ownerDocument, ownerWindow, update, render) {\n const documentVisibleHandler = EventStore();\n const fixedTimeStep = 1000 / 60;\n let lastTimeStamp = null;\n let accumulatedTime = 0;\n let animationId = 0;\n function init() {\n documentVisibleHandler.add(ownerDocument, 'visibilitychange', () => {\n if (ownerDocument.hidden) reset();\n });\n }\n function destroy() {\n stop();\n documentVisibleHandler.clear();\n }\n function animate(timeStamp) {\n if (!animationId) return;\n if (!lastTimeStamp) {\n lastTimeStamp = timeStamp;\n update();\n update();\n }\n const timeElapsed = timeStamp - lastTimeStamp;\n lastTimeStamp = timeStamp;\n accumulatedTime += timeElapsed;\n while (accumulatedTime >= fixedTimeStep) {\n update();\n accumulatedTime -= fixedTimeStep;\n }\n const alpha = accumulatedTime / fixedTimeStep;\n render(alpha);\n if (animationId) {\n animationId = ownerWindow.requestAnimationFrame(animate);\n }\n }\n function start() {\n if (animationId) return;\n animationId = ownerWindow.requestAnimationFrame(animate);\n }\n function stop() {\n ownerWindow.cancelAnimationFrame(animationId);\n lastTimeStamp = null;\n accumulatedTime = 0;\n animationId = 0;\n }\n function reset() {\n lastTimeStamp = null;\n accumulatedTime = 0;\n }\n const self = {\n init,\n destroy,\n start,\n stop,\n update,\n render\n };\n return self;\n}\n\nfunction Axis(axis, contentDirection) {\n const isRightToLeft = contentDirection === 'rtl';\n const isVertical = axis === 'y';\n const scroll = isVertical ? 'y' : 'x';\n const cross = isVertical ? 'x' : 'y';\n const sign = !isVertical && isRightToLeft ? -1 : 1;\n const startEdge = getStartEdge();\n const endEdge = getEndEdge();\n function measureSize(nodeRect) {\n const {\n height,\n width\n } = nodeRect;\n return isVertical ? height : width;\n }\n function getStartEdge() {\n if (isVertical) return 'top';\n return isRightToLeft ? 'right' : 'left';\n }\n function getEndEdge() {\n if (isVertical) return 'bottom';\n return isRightToLeft ? 'left' : 'right';\n }\n function direction(n) {\n return n * sign;\n }\n const self = {\n scroll,\n cross,\n startEdge,\n endEdge,\n measureSize,\n direction\n };\n return self;\n}\n\nfunction Limit(min = 0, max = 0) {\n const length = mathAbs(min - max);\n function reachedMin(n) {\n return n < min;\n }\n function reachedMax(n) {\n return n > max;\n }\n function reachedAny(n) {\n return reachedMin(n) || reachedMax(n);\n }\n function constrain(n) {\n if (!reachedAny(n)) return n;\n return reachedMin(n) ? min : max;\n }\n function removeOffset(n) {\n if (!length) return n;\n return n - length * Math.ceil((n - max) / length);\n }\n const self = {\n length,\n max,\n min,\n constrain,\n reachedAny,\n reachedMax,\n reachedMin,\n removeOffset\n };\n return self;\n}\n\nfunction Counter(max, start, loop) {\n const {\n constrain\n } = Limit(0, max);\n const loopEnd = max + 1;\n let counter = withinLimit(start);\n function withinLimit(n) {\n return !loop ? constrain(n) : mathAbs((loopEnd + n) % loopEnd);\n }\n function get() {\n return counter;\n }\n function set(n) {\n counter = withinLimit(n);\n return self;\n }\n function add(n) {\n return clone().set(get() + n);\n }\n function clone() {\n return Counter(max, get(), loop);\n }\n const self = {\n get,\n set,\n add,\n clone\n };\n return self;\n}\n\nfunction DragHandler(axis, rootNode, ownerDocument, ownerWindow, target, dragTracker, location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, baseFriction, watchDrag) {\n const {\n cross: crossAxis,\n direction\n } = axis;\n const focusNodes = ['INPUT', 'SELECT', 'TEXTAREA'];\n const nonPassiveEvent = {\n passive: false\n };\n const initEvents = EventStore();\n const dragEvents = EventStore();\n const goToNextThreshold = Limit(50, 225).constrain(percentOfView.measure(20));\n const snapForceBoost = {\n mouse: 300,\n touch: 400\n };\n const freeForceBoost = {\n mouse: 500,\n touch: 600\n };\n const baseSpeed = dragFree ? 43 : 25;\n let isMoving = false;\n let startScroll = 0;\n let startCross = 0;\n let pointerIsDown = false;\n let preventScroll = false;\n let preventClick = false;\n let isMouse = false;\n function init(emblaApi) {\n if (!watchDrag) return;\n function downIfAllowed(evt) {\n if (isBoolean(watchDrag) || watchDrag(emblaApi, evt)) down(evt);\n }\n const node = rootNode;\n initEvents.add(node, 'dragstart', evt => evt.preventDefault(), nonPassiveEvent).add(node, 'touchmove', () => undefined, nonPassiveEvent).add(node, 'touchend', () => undefined).add(node, 'touchstart', downIfAllowed).add(node, 'mousedown', downIfAllowed).add(node, 'touchcancel', up).add(node, 'contextmenu', up).add(node, 'click', click, true);\n }\n function destroy() {\n initEvents.clear();\n dragEvents.clear();\n }\n function addDragEvents() {\n const node = isMouse ? ownerDocument : rootNode;\n dragEvents.add(node, 'touchmove', move, nonPassiveEvent).add(node, 'touchend', up).add(node, 'mousemove', move, nonPassiveEvent).add(node, 'mouseup', up);\n }\n function isFocusNode(node) {\n const nodeName = node.nodeName || '';\n return focusNodes.includes(nodeName);\n }\n function forceBoost() {\n const boost = dragFree ? freeForceBoost : snapForceBoost;\n const type = isMouse ? 'mouse' : 'touch';\n return boost[type];\n }\n function allowedForce(force, targetChanged) {\n const next = index.add(mathSign(force) * -1);\n const baseForce = scrollTarget.byDistance(force, !dragFree).distance;\n if (dragFree || mathAbs(force) < goToNextThreshold) return baseForce;\n if (skipSnaps && targetChanged) return baseForce * 0.5;\n return scrollTarget.byIndex(next.get(), 0).distance;\n }\n function down(evt) {\n const isMouseEvt = isMouseEvent(evt, ownerWindow);\n isMouse = isMouseEvt;\n preventClick = dragFree && isMouseEvt && !evt.buttons && isMoving;\n isMoving = deltaAbs(target.get(), location.get()) >= 2;\n if (isMouseEvt && evt.button !== 0) return;\n if (isFocusNode(evt.target)) return;\n pointerIsDown = true;\n dragTracker.pointerDown(evt);\n scrollBody.useFriction(0).useDuration(0);\n target.set(location);\n addDragEvents();\n startScroll = dragTracker.readPoint(evt);\n startCross = dragTracker.readPoint(evt, crossAxis);\n eventHandler.emit('pointerDown');\n }\n function move(evt) {\n const isTouchEvt = !isMouseEvent(evt, ownerWindow);\n if (isTouchEvt && evt.touches.length >= 2) return up(evt);\n const lastScroll = dragTracker.readPoint(evt);\n const lastCross = dragTracker.readPoint(evt, crossAxis);\n const diffScroll = deltaAbs(lastScroll, startScroll);\n const diffCross = deltaAbs(lastCross, startCross);\n if (!preventScroll && !isMouse) {\n if (!evt.cancelable) return up(evt);\n preventScroll = diffScroll > diffCross;\n if (!preventScroll) return up(evt);\n }\n const diff = dragTracker.pointerMove(evt);\n if (diffScroll > dragThreshold) preventClick = true;\n scrollBody.useFriction(0.3).useDuration(0.75);\n animation.start();\n target.add(direction(diff));\n evt.preventDefault();\n }\n function up(evt) {\n const currentLocation = scrollTarget.byDistance(0, false);\n const targetChanged = currentLocation.index !== index.get();\n const rawForce = dragTracker.pointerUp(evt) * forceBoost();\n const force = allowedForce(direction(rawForce), targetChanged);\n const forceFactor = factorAbs(rawForce, force);\n const speed = baseSpeed - 10 * forceFactor;\n const friction = baseFriction + forceFactor / 50;\n preventScroll = false;\n pointerIsDown = false;\n dragEvents.clear();\n scrollBody.useDuration(speed).useFriction(friction);\n scrollTo.distance(force, !dragFree);\n isMouse = false;\n eventHandler.emit('pointerUp');\n }\n function click(evt) {\n if (preventClick) {\n evt.stopPropagation();\n evt.preventDefault();\n preventClick = false;\n }\n }\n function pointerDown() {\n return pointerIsDown;\n }\n const self = {\n init,\n destroy,\n pointerDown\n };\n return self;\n}\n\nfunction DragTracker(axis, ownerWindow) {\n const logInterval = 170;\n let startEvent;\n let lastEvent;\n function readTime(evt) {\n return evt.timeStamp;\n }\n function readPoint(evt, evtAxis) {\n const property = evtAxis || axis.scroll;\n const coord = `client${property === 'x' ? 'X' : 'Y'}`;\n return (isMouseEvent(evt, ownerWindow) ? evt : evt.touches[0])[coord];\n }\n function pointerDown(evt) {\n startEvent = evt;\n lastEvent = evt;\n return readPoint(evt);\n }\n function pointerMove(evt) {\n const diff = readPoint(evt) - readPoint(lastEvent);\n const expired = readTime(evt) - readTime(startEvent) > logInterval;\n lastEvent = evt;\n if (expired) startEvent = evt;\n return diff;\n }\n function pointerUp(evt) {\n if (!startEvent || !lastEvent) return 0;\n const diffDrag = readPoint(lastEvent) - readPoint(startEvent);\n const diffTime = readTime(evt) - readTime(startEvent);\n const expired = readTime(evt) - readTime(lastEvent) > logInterval;\n const force = diffDrag / diffTime;\n const isFlick = diffTime && !expired && mathAbs(force) > 0.1;\n return isFlick ? force : 0;\n }\n const self = {\n pointerDown,\n pointerMove,\n pointerUp,\n readPoint\n };\n return self;\n}\n\nfunction NodeRects() {\n function measure(node) {\n const {\n offsetTop,\n offsetLeft,\n offsetWidth,\n offsetHeight\n } = node;\n const offset = {\n top: offsetTop,\n right: offsetLeft + offsetWidth,\n bottom: offsetTop + offsetHeight,\n left: offsetLeft,\n width: offsetWidth,\n height: offsetHeight\n };\n return offset;\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction PercentOfView(viewSize) {\n function measure(n) {\n return viewSize * (n / 100);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects) {\n const observeNodes = [container].concat(slides);\n let resizeObserver;\n let containerSize;\n let slideSizes = [];\n let destroyed = false;\n function readSize(node) {\n return axis.measureSize(nodeRects.measure(node));\n }\n function init(emblaApi) {\n if (!watchResize) return;\n containerSize = readSize(container);\n slideSizes = slides.map(readSize);\n function defaultCallback(entries) {\n for (const entry of entries) {\n if (destroyed) return;\n const isContainer = entry.target === container;\n const slideIndex = slides.indexOf(entry.target);\n const lastSize = isContainer ? containerSize : slideSizes[slideIndex];\n const newSize = readSize(isContainer ? container : slides[slideIndex]);\n const diffSize = mathAbs(newSize - lastSize);\n if (diffSize >= 0.5) {\n emblaApi.reInit();\n eventHandler.emit('resize');\n break;\n }\n }\n }\n resizeObserver = new ResizeObserver(entries => {\n if (isBoolean(watchResize) || watchResize(emblaApi, entries)) {\n defaultCallback(entries);\n }\n });\n ownerWindow.requestAnimationFrame(() => {\n observeNodes.forEach(node => resizeObserver.observe(node));\n });\n }\n function destroy() {\n destroyed = true;\n if (resizeObserver) resizeObserver.disconnect();\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction ScrollBody(location, offsetLocation, previousLocation, target, baseDuration, baseFriction) {\n let scrollVelocity = 0;\n let scrollDirection = 0;\n let scrollDuration = baseDuration;\n let scrollFriction = baseFriction;\n let rawLocation = location.get();\n let rawLocationPrevious = 0;\n function seek() {\n const displacement = target.get() - location.get();\n const isInstant = !scrollDuration;\n let scrollDistance = 0;\n if (isInstant) {\n scrollVelocity = 0;\n previousLocation.set(target);\n location.set(target);\n scrollDistance = displacement;\n } else {\n previousLocation.set(location);\n scrollVelocity += displacement / scrollDuration;\n scrollVelocity *= scrollFriction;\n rawLocation += scrollVelocity;\n location.add(scrollVelocity);\n scrollDistance = rawLocation - rawLocationPrevious;\n }\n scrollDirection = mathSign(scrollDistance);\n rawLocationPrevious = rawLocation;\n return self;\n }\n function settled() {\n const diff = target.get() - offsetLocation.get();\n return mathAbs(diff) < 0.001;\n }\n function duration() {\n return scrollDuration;\n }\n function direction() {\n return scrollDirection;\n }\n function velocity() {\n return scrollVelocity;\n }\n function useBaseDuration() {\n return useDuration(baseDuration);\n }\n function useBaseFriction() {\n return useFriction(baseFriction);\n }\n function useDuration(n) {\n scrollDuration = n;\n return self;\n }\n function useFriction(n) {\n scrollFriction = n;\n return self;\n }\n const self = {\n direction,\n duration,\n velocity,\n seek,\n settled,\n useBaseFriction,\n useBaseDuration,\n useFriction,\n useDuration\n };\n return self;\n}\n\nfunction ScrollBounds(limit, location, target, scrollBody, percentOfView) {\n const pullBackThreshold = percentOfView.measure(10);\n const edgeOffsetTolerance = percentOfView.measure(50);\n const frictionLimit = Limit(0.1, 0.99);\n let disabled = false;\n function shouldConstrain() {\n if (disabled) return false;\n if (!limit.reachedAny(target.get())) return false;\n if (!limit.reachedAny(location.get())) return false;\n return true;\n }\n function constrain(pointerDown) {\n if (!shouldConstrain()) return;\n const edge = limit.reachedMin(location.get()) ? 'min' : 'max';\n const diffToEdge = mathAbs(limit[edge] - location.get());\n const diffToTarget = target.get() - location.get();\n const friction = frictionLimit.constrain(diffToEdge / edgeOffsetTolerance);\n target.subtract(diffToTarget * friction);\n if (!pointerDown && mathAbs(diffToTarget) < pullBackThreshold) {\n target.set(limit.constrain(target.get()));\n scrollBody.useDuration(25).useBaseFriction();\n }\n }\n function toggleActive(active) {\n disabled = !active;\n }\n const self = {\n shouldConstrain,\n constrain,\n toggleActive\n };\n return self;\n}\n\nfunction ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance) {\n const scrollBounds = Limit(-contentSize + viewSize, 0);\n const snapsBounded = measureBounded();\n const scrollContainLimit = findScrollContainLimit();\n const snapsContained = measureContained();\n function usePixelTolerance(bound, snap) {\n return deltaAbs(bound, snap) <= 1;\n }\n function findScrollContainLimit() {\n const startSnap = snapsBounded[0];\n const endSnap = arrayLast(snapsBounded);\n const min = snapsBounded.lastIndexOf(startSnap);\n const max = snapsBounded.indexOf(endSnap) + 1;\n return Limit(min, max);\n }\n function measureBounded() {\n return snapsAligned.map((snapAligned, index) => {\n const {\n min,\n max\n } = scrollBounds;\n const snap = scrollBounds.constrain(snapAligned);\n const isFirst = !index;\n const isLast = arrayIsLastIndex(snapsAligned, index);\n if (isFirst) return max;\n if (isLast) return min;\n if (usePixelTolerance(min, snap)) return min;\n if (usePixelTolerance(max, snap)) return max;\n return snap;\n }).map(scrollBound => parseFloat(scrollBound.toFixed(3)));\n }\n function measureContained() {\n if (contentSize <= viewSize + pixelTolerance) return [scrollBounds.max];\n if (containScroll === 'keepSnaps') return snapsBounded;\n const {\n min,\n max\n } = scrollContainLimit;\n return snapsBounded.slice(min, max);\n }\n const self = {\n snapsContained,\n scrollContainLimit\n };\n return self;\n}\n\nfunction ScrollLimit(contentSize, scrollSnaps, loop) {\n const max = scrollSnaps[0];\n const min = loop ? max - contentSize : arrayLast(scrollSnaps);\n const limit = Limit(min, max);\n const self = {\n limit\n };\n return self;\n}\n\nfunction ScrollLooper(contentSize, limit, location, vectors) {\n const jointSafety = 0.1;\n const min = limit.min + jointSafety;\n const max = limit.max + jointSafety;\n const {\n reachedMin,\n reachedMax\n } = Limit(min, max);\n function shouldLoop(direction) {\n if (direction === 1) return reachedMax(location.get());\n if (direction === -1) return reachedMin(location.get());\n return false;\n }\n function loop(direction) {\n if (!shouldLoop(direction)) return;\n const loopDistance = contentSize * (direction * -1);\n vectors.forEach(v => v.add(loopDistance));\n }\n const self = {\n loop\n };\n return self;\n}\n\nfunction ScrollProgress(limit) {\n const {\n max,\n length\n } = limit;\n function get(n) {\n const currentLocation = n - max;\n return length ? currentLocation / -length : 0;\n }\n const self = {\n get\n };\n return self;\n}\n\nfunction ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll) {\n const {\n startEdge,\n endEdge\n } = axis;\n const {\n groupSlides\n } = slidesToScroll;\n const alignments = measureSizes().map(alignment.measure);\n const snaps = measureUnaligned();\n const snapsAligned = measureAligned();\n function measureSizes() {\n return groupSlides(slideRects).map(rects => arrayLast(rects)[endEdge] - rects[0][startEdge]).map(mathAbs);\n }\n function measureUnaligned() {\n return slideRects.map(rect => containerRect[startEdge] - rect[startEdge]).map(snap => -mathAbs(snap));\n }\n function measureAligned() {\n return groupSlides(snaps).map(g => g[0]).map((snap, index) => snap + alignments[index]);\n }\n const self = {\n snaps,\n snapsAligned\n };\n return self;\n}\n\nfunction SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes) {\n const {\n groupSlides\n } = slidesToScroll;\n const {\n min,\n max\n } = scrollContainLimit;\n const slideRegistry = createSlideRegistry();\n function createSlideRegistry() {\n const groupedSlideIndexes = groupSlides(slideIndexes);\n const doNotContain = !containSnaps || containScroll === 'keepSnaps';\n if (scrollSnaps.length === 1) return [slideIndexes];\n if (doNotContain) return groupedSlideIndexes;\n return groupedSlideIndexes.slice(min, max).map((group, index, groups) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(groups, index);\n if (isFirst) {\n const range = arrayLast(groups[0]) + 1;\n return arrayFromNumber(range);\n }\n if (isLast) {\n const range = arrayLastIndex(slideIndexes) - arrayLast(groups)[0] + 1;\n return arrayFromNumber(range, arrayLast(groups)[0]);\n }\n return group;\n });\n }\n const self = {\n slideRegistry\n };\n return self;\n}\n\nfunction ScrollTarget(loop, scrollSnaps, contentSize, limit, targetVector) {\n const {\n reachedAny,\n removeOffset,\n constrain\n } = limit;\n function minDistance(distances) {\n return distances.concat().sort((a, b) => mathAbs(a) - mathAbs(b))[0];\n }\n function findTargetSnap(target) {\n const distance = loop ? removeOffset(target) : constrain(target);\n const ascDiffsToSnaps = scrollSnaps.map((snap, index) => ({\n diff: shortcut(snap - distance, 0),\n index\n })).sort((d1, d2) => mathAbs(d1.diff) - mathAbs(d2.diff));\n const {\n index\n } = ascDiffsToSnaps[0];\n return {\n index,\n distance\n };\n }\n function shortcut(target, direction) {\n const targets = [target, target + contentSize, target - contentSize];\n if (!loop) return target;\n if (!direction) return minDistance(targets);\n const matchingTargets = targets.filter(t => mathSign(t) === direction);\n if (matchingTargets.length) return minDistance(matchingTargets);\n return arrayLast(targets) - contentSize;\n }\n function byIndex(index, direction) {\n const diffToSnap = scrollSnaps[index] - targetVector.get();\n const distance = shortcut(diffToSnap, direction);\n return {\n index,\n distance\n };\n }\n function byDistance(distance, snap) {\n const target = targetVector.get() + distance;\n const {\n index,\n distance: targetSnapDistance\n } = findTargetSnap(target);\n const reachedBound = !loop && reachedAny(target);\n if (!snap || reachedBound) return {\n index,\n distance\n };\n const diffToSnap = scrollSnaps[index] - targetSnapDistance;\n const snapDistance = distance + shortcut(diffToSnap, 0);\n return {\n index,\n distance: snapDistance\n };\n }\n const self = {\n byDistance,\n byIndex,\n shortcut\n };\n return self;\n}\n\nfunction ScrollTo(animation, indexCurrent, indexPrevious, scrollBody, scrollTarget, targetVector, eventHandler) {\n function scrollTo(target) {\n const distanceDiff = target.distance;\n const indexDiff = target.index !== indexCurrent.get();\n targetVector.add(distanceDiff);\n if (distanceDiff) {\n if (scrollBody.duration()) {\n animation.start();\n } else {\n animation.update();\n animation.render(1);\n animation.update();\n }\n }\n if (indexDiff) {\n indexPrevious.set(indexCurrent.get());\n indexCurrent.set(target.index);\n eventHandler.emit('select');\n }\n }\n function distance(n, snap) {\n const target = scrollTarget.byDistance(n, snap);\n scrollTo(target);\n }\n function index(n, direction) {\n const targetIndex = indexCurrent.clone().set(n);\n const target = scrollTarget.byIndex(targetIndex.get(), direction);\n scrollTo(target);\n }\n const self = {\n distance,\n index\n };\n return self;\n}\n\nfunction SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus) {\n const focusListenerOptions = {\n passive: true,\n capture: true\n };\n let lastTabPressTime = 0;\n function init(emblaApi) {\n if (!watchFocus) return;\n function defaultCallback(index) {\n const nowTime = new Date().getTime();\n const diffTime = nowTime - lastTabPressTime;\n if (diffTime > 10) return;\n eventHandler.emit('slideFocusStart');\n root.scrollLeft = 0;\n const group = slideRegistry.findIndex(group => group.includes(index));\n if (!isNumber(group)) return;\n scrollBody.useDuration(0);\n scrollTo.index(group, 0);\n eventHandler.emit('slideFocus');\n }\n eventStore.add(document, 'keydown', registerTabPress, false);\n slides.forEach((slide, slideIndex) => {\n eventStore.add(slide, 'focus', evt => {\n if (isBoolean(watchFocus) || watchFocus(emblaApi, evt)) {\n defaultCallback(slideIndex);\n }\n }, focusListenerOptions);\n });\n }\n function registerTabPress(event) {\n if (event.code === 'Tab') lastTabPressTime = new Date().getTime();\n }\n const self = {\n init\n };\n return self;\n}\n\nfunction Vector1D(initialValue) {\n let value = initialValue;\n function get() {\n return value;\n }\n function set(n) {\n value = normalizeInput(n);\n }\n function add(n) {\n value += normalizeInput(n);\n }\n function subtract(n) {\n value -= normalizeInput(n);\n }\n function normalizeInput(n) {\n return isNumber(n) ? n : n.get();\n }\n const self = {\n get,\n set,\n add,\n subtract\n };\n return self;\n}\n\nfunction Translate(axis, container) {\n const translate = axis.scroll === 'x' ? x : y;\n const containerStyle = container.style;\n let previousTarget = null;\n let disabled = false;\n function x(n) {\n return `translate3d(${n}px,0px,0px)`;\n }\n function y(n) {\n return `translate3d(0px,${n}px,0px)`;\n }\n function to(target) {\n if (disabled) return;\n const newTarget = roundToTwoDecimals(axis.direction(target));\n if (newTarget === previousTarget) return;\n containerStyle.transform = translate(newTarget);\n previousTarget = newTarget;\n }\n function toggleActive(active) {\n disabled = !active;\n }\n function clear() {\n if (disabled) return;\n containerStyle.transform = '';\n if (!container.getAttribute('style')) container.removeAttribute('style');\n }\n const self = {\n clear,\n to,\n toggleActive\n };\n return self;\n}\n\nfunction SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, location, slides) {\n const roundingSafety = 0.5;\n const ascItems = arrayKeys(slideSizesWithGaps);\n const descItems = arrayKeys(slideSizesWithGaps).reverse();\n const loopPoints = startPoints().concat(endPoints());\n function removeSlideSizes(indexes, from) {\n return indexes.reduce((a, i) => {\n return a - slideSizesWithGaps[i];\n }, from);\n }\n function slidesInGap(indexes, gap) {\n return indexes.reduce((a, i) => {\n const remainingGap = removeSlideSizes(a, gap);\n return remainingGap > 0 ? a.concat([i]) : a;\n }, []);\n }\n function findSlideBounds(offset) {\n return snaps.map((snap, index) => ({\n start: snap - slideSizes[index] + roundingSafety + offset,\n end: snap + viewSize - roundingSafety + offset\n }));\n }\n function findLoopPoints(indexes, offset, isEndEdge) {\n const slideBounds = findSlideBounds(offset);\n return indexes.map(index => {\n const initial = isEndEdge ? 0 : -contentSize;\n const altered = isEndEdge ? contentSize : 0;\n const boundEdge = isEndEdge ? 'end' : 'start';\n const loopPoint = slideBounds[index][boundEdge];\n return {\n index,\n loopPoint,\n slideLocation: Vector1D(-1),\n translate: Translate(axis, slides[index]),\n target: () => location.get() > loopPoint ? initial : altered\n };\n });\n }\n function startPoints() {\n const gap = scrollSnaps[0];\n const indexes = slidesInGap(descItems, gap);\n return findLoopPoints(indexes, contentSize, false);\n }\n function endPoints() {\n const gap = viewSize - scrollSnaps[0] - 1;\n const indexes = slidesInGap(ascItems, gap);\n return findLoopPoints(indexes, -contentSize, true);\n }\n function canLoop() {\n return loopPoints.every(({\n index\n }) => {\n const otherIndexes = ascItems.filter(i => i !== index);\n return removeSlideSizes(otherIndexes, viewSize) <= 0.1;\n });\n }\n function loop() {\n loopPoints.forEach(loopPoint => {\n const {\n target,\n translate,\n slideLocation\n } = loopPoint;\n const shiftLocation = target();\n if (shiftLocation === slideLocation.get()) return;\n translate.to(shiftLocation);\n slideLocation.set(shiftLocation);\n });\n }\n function clear() {\n loopPoints.forEach(loopPoint => loopPoint.translate.clear());\n }\n const self = {\n canLoop,\n clear,\n loop,\n loopPoints\n };\n return self;\n}\n\nfunction SlidesHandler(container, eventHandler, watchSlides) {\n let mutationObserver;\n let destroyed = false;\n function init(emblaApi) {\n if (!watchSlides) return;\n function defaultCallback(mutations) {\n for (const mutation of mutations) {\n if (mutation.type === 'childList') {\n emblaApi.reInit();\n eventHandler.emit('slidesChanged');\n break;\n }\n }\n }\n mutationObserver = new MutationObserver(mutations => {\n if (destroyed) return;\n if (isBoolean(watchSlides) || watchSlides(emblaApi, mutations)) {\n defaultCallback(mutations);\n }\n });\n mutationObserver.observe(container, {\n childList: true\n });\n }\n function destroy() {\n if (mutationObserver) mutationObserver.disconnect();\n destroyed = true;\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction SlidesInView(container, slides, eventHandler, threshold) {\n const intersectionEntryMap = {};\n let inViewCache = null;\n let notInViewCache = null;\n let intersectionObserver;\n let destroyed = false;\n function init() {\n intersectionObserver = new IntersectionObserver(entries => {\n if (destroyed) return;\n entries.forEach(entry => {\n const index = slides.indexOf(entry.target);\n intersectionEntryMap[index] = entry;\n });\n inViewCache = null;\n notInViewCache = null;\n eventHandler.emit('slidesInView');\n }, {\n root: container.parentElement,\n threshold\n });\n slides.forEach(slide => intersectionObserver.observe(slide));\n }\n function destroy() {\n if (intersectionObserver) intersectionObserver.disconnect();\n destroyed = true;\n }\n function createInViewList(inView) {\n return objectKeys(intersectionEntryMap).reduce((list, slideIndex) => {\n const index = parseInt(slideIndex);\n const {\n isIntersecting\n } = intersectionEntryMap[index];\n const inViewMatch = inView && isIntersecting;\n const notInViewMatch = !inView && !isIntersecting;\n if (inViewMatch || notInViewMatch) list.push(index);\n return list;\n }, []);\n }\n function get(inView = true) {\n if (inView && inViewCache) return inViewCache;\n if (!inView && notInViewCache) return notInViewCache;\n const slideIndexes = createInViewList(inView);\n if (inView) inViewCache = slideIndexes;\n if (!inView) notInViewCache = slideIndexes;\n return slideIndexes;\n }\n const self = {\n init,\n destroy,\n get\n };\n return self;\n}\n\nfunction SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow) {\n const {\n measureSize,\n startEdge,\n endEdge\n } = axis;\n const withEdgeGap = slideRects[0] && readEdgeGap;\n const startGap = measureStartGap();\n const endGap = measureEndGap();\n const slideSizes = slideRects.map(measureSize);\n const slideSizesWithGaps = measureWithGaps();\n function measureStartGap() {\n if (!withEdgeGap) return 0;\n const slideRect = slideRects[0];\n return mathAbs(containerRect[startEdge] - slideRect[startEdge]);\n }\n function measureEndGap() {\n if (!withEdgeGap) return 0;\n const style = ownerWindow.getComputedStyle(arrayLast(slides));\n return parseFloat(style.getPropertyValue(`margin-${endEdge}`));\n }\n function measureWithGaps() {\n return slideRects.map((rect, index, rects) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(rects, index);\n if (isFirst) return slideSizes[index] + startGap;\n if (isLast) return slideSizes[index] + endGap;\n return rects[index + 1][startEdge] - rect[startEdge];\n }).map(mathAbs);\n }\n const self = {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n };\n return self;\n}\n\nfunction SlidesToScroll(axis, viewSize, slidesToScroll, loop, containerRect, slideRects, startGap, endGap, pixelTolerance) {\n const {\n startEdge,\n endEdge,\n direction\n } = axis;\n const groupByNumber = isNumber(slidesToScroll);\n function byNumber(array, groupSize) {\n return arrayKeys(array).filter(i => i % groupSize === 0).map(i => array.slice(i, i + groupSize));\n }\n function bySize(array) {\n if (!array.length) return [];\n return arrayKeys(array).reduce((groups, rectB, index) => {\n const rectA = arrayLast(groups) || 0;\n const isFirst = rectA === 0;\n const isLast = rectB === arrayLastIndex(array);\n const edgeA = containerRect[startEdge] - slideRects[rectA][startEdge];\n const edgeB = containerRect[startEdge] - slideRects[rectB][endEdge];\n const gapA = !loop && isFirst ? direction(startGap) : 0;\n const gapB = !loop && isLast ? direction(endGap) : 0;\n const chunkSize = mathAbs(edgeB - gapB - (edgeA + gapA));\n if (index && chunkSize > viewSize + pixelTolerance) groups.push(rectB);\n if (isLast) groups.push(array.length);\n return groups;\n }, []).map((currentSize, index, groups) => {\n const previousSize = Math.max(groups[index - 1] || 0);\n return array.slice(previousSize, currentSize);\n });\n }\n function groupSlides(array) {\n return groupByNumber ? byNumber(array, slidesToScroll) : bySize(array);\n }\n const self = {\n groupSlides\n };\n return self;\n}\n\nfunction Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler) {\n // Options\n const {\n align,\n axis: scrollAxis,\n direction,\n startIndex,\n loop,\n duration,\n dragFree,\n dragThreshold,\n inViewThreshold,\n slidesToScroll: groupSlides,\n skipSnaps,\n containScroll,\n watchResize,\n watchSlides,\n watchDrag,\n watchFocus\n } = options;\n // Measurements\n const pixelTolerance = 2;\n const nodeRects = NodeRects();\n const containerRect = nodeRects.measure(container);\n const slideRects = slides.map(nodeRects.measure);\n const axis = Axis(scrollAxis, direction);\n const viewSize = axis.measureSize(containerRect);\n const percentOfView = PercentOfView(viewSize);\n const alignment = Alignment(align, viewSize);\n const containSnaps = !loop && !!containScroll;\n const readEdgeGap = loop || !!containScroll;\n const {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n } = SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow);\n const slidesToScroll = SlidesToScroll(axis, viewSize, groupSlides, loop, containerRect, slideRects, startGap, endGap, pixelTolerance);\n const {\n snaps,\n snapsAligned\n } = ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll);\n const contentSize = -arrayLast(snaps) + arrayLast(slideSizesWithGaps);\n const {\n snapsContained,\n scrollContainLimit\n } = ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance);\n const scrollSnaps = containSnaps ? snapsContained : snapsAligned;\n const {\n limit\n } = ScrollLimit(contentSize, scrollSnaps, loop);\n // Indexes\n const index = Counter(arrayLastIndex(scrollSnaps), startIndex, loop);\n const indexPrevious = index.clone();\n const slideIndexes = arrayKeys(slides);\n // Animation\n const update = ({\n dragHandler,\n scrollBody,\n scrollBounds,\n options: {\n loop\n }\n }) => {\n if (!loop) scrollBounds.constrain(dragHandler.pointerDown());\n scrollBody.seek();\n };\n const render = ({\n scrollBody,\n translate,\n location,\n offsetLocation,\n previousLocation,\n scrollLooper,\n slideLooper,\n dragHandler,\n animation,\n eventHandler,\n scrollBounds,\n options: {\n loop\n }\n }, alpha) => {\n const shouldSettle = scrollBody.settled();\n const withinBounds = !scrollBounds.shouldConstrain();\n const hasSettled = loop ? shouldSettle : shouldSettle && withinBounds;\n const hasSettledAndIdle = hasSettled && !dragHandler.pointerDown();\n if (hasSettledAndIdle) animation.stop();\n const interpolatedLocation = location.get() * alpha + previousLocation.get() * (1 - alpha);\n offsetLocation.set(interpolatedLocation);\n if (loop) {\n scrollLooper.loop(scrollBody.direction());\n slideLooper.loop();\n }\n translate.to(offsetLocation.get());\n if (hasSettledAndIdle) eventHandler.emit('settle');\n if (!hasSettled) eventHandler.emit('scroll');\n };\n const animation = Animations(ownerDocument, ownerWindow, () => update(engine), alpha => render(engine, alpha));\n // Shared\n const friction = 0.68;\n const startLocation = scrollSnaps[index.get()];\n const location = Vector1D(startLocation);\n const previousLocation = Vector1D(startLocation);\n const offsetLocation = Vector1D(startLocation);\n const target = Vector1D(startLocation);\n const scrollBody = ScrollBody(location, offsetLocation, previousLocation, target, duration, friction);\n const scrollTarget = ScrollTarget(loop, scrollSnaps, contentSize, limit, target);\n const scrollTo = ScrollTo(animation, index, indexPrevious, scrollBody, scrollTarget, target, eventHandler);\n const scrollProgress = ScrollProgress(limit);\n const eventStore = EventStore();\n const slidesInView = SlidesInView(container, slides, eventHandler, inViewThreshold);\n const {\n slideRegistry\n } = SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes);\n const slideFocus = SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus);\n // Engine\n const engine = {\n ownerDocument,\n ownerWindow,\n eventHandler,\n containerRect,\n slideRects,\n animation,\n axis,\n dragHandler: DragHandler(axis, root, ownerDocument, ownerWindow, target, DragTracker(axis, ownerWindow), location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, friction, watchDrag),\n eventStore,\n percentOfView,\n index,\n indexPrevious,\n limit,\n location,\n offsetLocation,\n previousLocation,\n options,\n resizeHandler: ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects),\n scrollBody,\n scrollBounds: ScrollBounds(limit, offsetLocation, target, scrollBody, percentOfView),\n scrollLooper: ScrollLooper(contentSize, limit, offsetLocation, [location, offsetLocation, previousLocation, target]),\n scrollProgress,\n scrollSnapList: scrollSnaps.map(scrollProgress.get),\n scrollSnaps,\n scrollTarget,\n scrollTo,\n slideLooper: SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, offsetLocation, slides),\n slideFocus,\n slidesHandler: SlidesHandler(container, eventHandler, watchSlides),\n slidesInView,\n slideIndexes,\n slideRegistry,\n slidesToScroll,\n target,\n translate: Translate(axis, container)\n };\n return engine;\n}\n\nfunction EventHandler() {\n let listeners = {};\n let api;\n function init(emblaApi) {\n api = emblaApi;\n }\n function getListeners(evt) {\n return listeners[evt] || [];\n }\n function emit(evt) {\n getListeners(evt).forEach(e => e(api, evt));\n return self;\n }\n function on(evt, cb) {\n listeners[evt] = getListeners(evt).concat([cb]);\n return self;\n }\n function off(evt, cb) {\n listeners[evt] = getListeners(evt).filter(e => e !== cb);\n return self;\n }\n function clear() {\n listeners = {};\n }\n const self = {\n init,\n emit,\n off,\n on,\n clear\n };\n return self;\n}\n\nconst defaultOptions = {\n align: 'center',\n axis: 'x',\n container: null,\n slides: null,\n containScroll: 'trimSnaps',\n direction: 'ltr',\n slidesToScroll: 1,\n inViewThreshold: 0,\n breakpoints: {},\n dragFree: false,\n dragThreshold: 10,\n loop: false,\n skipSnaps: false,\n duration: 25,\n startIndex: 0,\n active: true,\n watchDrag: true,\n watchResize: true,\n watchSlides: true,\n watchFocus: true\n};\n\nfunction OptionsHandler(ownerWindow) {\n function mergeOptions(optionsA, optionsB) {\n return objectsMergeDeep(optionsA, optionsB || {});\n }\n function optionsAtMedia(options) {\n const optionsAtMedia = options.breakpoints || {};\n const matchedMediaOptions = objectKeys(optionsAtMedia).filter(media => ownerWindow.matchMedia(media).matches).map(media => optionsAtMedia[media]).reduce((a, mediaOption) => mergeOptions(a, mediaOption), {});\n return mergeOptions(options, matchedMediaOptions);\n }\n function optionsMediaQueries(optionsList) {\n return optionsList.map(options => objectKeys(options.breakpoints || {})).reduce((acc, mediaQueries) => acc.concat(mediaQueries), []).map(ownerWindow.matchMedia);\n }\n const self = {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n };\n return self;\n}\n\nfunction PluginsHandler(optionsHandler) {\n let activePlugins = [];\n function init(emblaApi, plugins) {\n activePlugins = plugins.filter(({\n options\n }) => optionsHandler.optionsAtMedia(options).active !== false);\n activePlugins.forEach(plugin => plugin.init(emblaApi, optionsHandler));\n return plugins.reduce((map, plugin) => Object.assign(map, {\n [plugin.name]: plugin\n }), {});\n }\n function destroy() {\n activePlugins = activePlugins.filter(plugin => plugin.destroy());\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction EmblaCarousel(root, userOptions, userPlugins) {\n const ownerDocument = root.ownerDocument;\n const ownerWindow = ownerDocument.defaultView;\n const optionsHandler = OptionsHandler(ownerWindow);\n const pluginsHandler = PluginsHandler(optionsHandler);\n const mediaHandlers = EventStore();\n const eventHandler = EventHandler();\n const {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n } = optionsHandler;\n const {\n on,\n off,\n emit\n } = eventHandler;\n const reInit = reActivate;\n let destroyed = false;\n let engine;\n let optionsBase = mergeOptions(defaultOptions, EmblaCarousel.globalOptions);\n let options = mergeOptions(optionsBase);\n let pluginList = [];\n let pluginApis;\n let container;\n let slides;\n function storeElements() {\n const {\n container: userContainer,\n slides: userSlides\n } = options;\n const customContainer = isString(userContainer) ? root.querySelector(userContainer) : userContainer;\n container = customContainer || root.children[0];\n const customSlides = isString(userSlides) ? container.querySelectorAll(userSlides) : userSlides;\n slides = [].slice.call(customSlides || container.children);\n }\n function createEngine(options) {\n const engine = Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler);\n if (options.loop && !engine.slideLooper.canLoop()) {\n const optionsWithoutLoop = Object.assign({}, options, {\n loop: false\n });\n return createEngine(optionsWithoutLoop);\n }\n return engine;\n }\n function activate(withOptions, withPlugins) {\n if (destroyed) return;\n optionsBase = mergeOptions(optionsBase, withOptions);\n options = optionsAtMedia(optionsBase);\n pluginList = withPlugins || pluginList;\n storeElements();\n engine = createEngine(options);\n optionsMediaQueries([optionsBase, ...pluginList.map(({\n options\n }) => options)]).forEach(query => mediaHandlers.add(query, 'change', reActivate));\n if (!options.active) return;\n engine.translate.to(engine.location.get());\n engine.animation.init();\n engine.slidesInView.init();\n engine.slideFocus.init(self);\n engine.eventHandler.init(self);\n engine.resizeHandler.init(self);\n engine.slidesHandler.init(self);\n if (engine.options.loop) engine.slideLooper.loop();\n if (container.offsetParent && slides.length) engine.dragHandler.init(self);\n pluginApis = pluginsHandler.init(self, pluginList);\n }\n function reActivate(withOptions, withPlugins) {\n const startIndex = selectedScrollSnap();\n deActivate();\n activate(mergeOptions({\n startIndex\n }, withOptions), withPlugins);\n eventHandler.emit('reInit');\n }\n function deActivate() {\n engine.dragHandler.destroy();\n engine.eventStore.clear();\n engine.translate.clear();\n engine.slideLooper.clear();\n engine.resizeHandler.destroy();\n engine.slidesHandler.destroy();\n engine.slidesInView.destroy();\n engine.animation.destroy();\n pluginsHandler.destroy();\n mediaHandlers.clear();\n }\n function destroy() {\n if (destroyed) return;\n destroyed = true;\n mediaHandlers.clear();\n deActivate();\n eventHandler.emit('destroy');\n eventHandler.clear();\n }\n function scrollTo(index, jump, direction) {\n if (!options.active || destroyed) return;\n engine.scrollBody.useBaseFriction().useDuration(jump === true ? 0 : options.duration);\n engine.scrollTo.index(index, direction || 0);\n }\n function scrollNext(jump) {\n const next = engine.index.add(1).get();\n scrollTo(next, jump, -1);\n }\n function scrollPrev(jump) {\n const prev = engine.index.add(-1).get();\n scrollTo(prev, jump, 1);\n }\n function canScrollNext() {\n const next = engine.index.add(1).get();\n return next !== selectedScrollSnap();\n }\n function canScrollPrev() {\n const prev = engine.index.add(-1).get();\n return prev !== selectedScrollSnap();\n }\n function scrollSnapList() {\n return engine.scrollSnapList;\n }\n function scrollProgress() {\n return engine.scrollProgress.get(engine.offsetLocation.get());\n }\n function selectedScrollSnap() {\n return engine.index.get();\n }\n function previousScrollSnap() {\n return engine.indexPrevious.get();\n }\n function slidesInView() {\n return engine.slidesInView.get();\n }\n function slidesNotInView() {\n return engine.slidesInView.get(false);\n }\n function plugins() {\n return pluginApis;\n }\n function internalEngine() {\n return engine;\n }\n function rootNode() {\n return root;\n }\n function containerNode() {\n return container;\n }\n function slideNodes() {\n return slides;\n }\n const self = {\n canScrollNext,\n canScrollPrev,\n containerNode,\n internalEngine,\n destroy,\n off,\n on,\n emit,\n plugins,\n previousScrollSnap,\n reInit,\n rootNode,\n scrollNext,\n scrollPrev,\n scrollProgress,\n scrollSnapList,\n scrollTo,\n selectedScrollSnap,\n slideNodes,\n slidesInView,\n slidesNotInView\n };\n activate(userOptions, userPlugins);\n setTimeout(() => eventHandler.emit('init'), 0);\n return self;\n}\nEmblaCarousel.globalOptions = undefined;\n\nexport { EmblaCarousel as default };\n//# sourceMappingURL=embla-carousel.esm.js.map\n","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 * Framework-agnostic Embla controller shared by the React carousel and the AEM\n * clientlib runtime. Keep behaviour here so Storybook and server-rendered HTL\n * use exactly the same navigation and selected-state logic.\n *\n * The carousel drives TWO Embla instances from a single index:\n *\n * media - the peek / three-up track. Owns drag, arrows and dots.\n * content - a 100%-wide crossfade track holding one text block per item.\n * Index-driven only; never a source of truth.\n *\n * Both tracks are generated from the same authored item list with no filtering,\n * so index i always means the same item in both. See `syncSelectedState`.\n */\nexport interface LsgCarouselControllerElements {\n prevBtn?: HTMLElement | null;\n nextBtn?: HTMLElement | null;\n paginationBtns?: Iterable<HTMLElement> | null;\n /**\n * Root of the crossfade text track. Omit for a media-only carousel; the\n * controller then behaves exactly as it did before the text track existed.\n */\n contentViewport?: HTMLElement | null;\n}\n\nexport type LsgCarouselDirection = \"ltr\" | \"rtl\";\n\nexport interface LsgCarouselControllerOptions {\n loop?: boolean;\n /**\n * Embla content direction. Media-left variants use RTL so the active media is\n * anchored on the right edge of the viewport and the adjacent slide peeks in\n * from the left, matching the mirrored Figma compositions.\n *\n * Embla requires the viewport/track CSS direction to match this value. The\n * React component sets `dir` on the viewport and the AEM boot path mirrors it.\n *\n * Only the media track is mirrored. The text track crossfades in place, so it\n * has no spatial direction and always stays LTR.\n */\n direction?: LsgCarouselDirection;\n}\n\nconst MOBILE_MEDIA_QUERY = \"(max-width: 767px)\";\n\n/** Media track slides. Also the dot/aria-label source of truth. */\nconst MEDIA_ITEM_SELECTOR = \"[data-lsg-carousel-item]\";\n/** Text track slides, one per media slide. */\nconst CONTENT_ITEM_SELECTOR = \"[data-lsg-carousel-content-item]\";\n\nconst directChildren = (\n container: HTMLElement | null,\n selector: string,\n): HTMLElement[] =>\n container\n ? Array.from(container.children).filter((el): el is HTMLElement =>\n el instanceof HTMLElement && el.matches(selector),\n )\n : [];\n\nexport class LsgCarouselController {\n private media: EmblaCarouselType | null = null;\n private content: EmblaCarouselType | null = null;\n private syncing = false;\n private readonly mediaViewport: HTMLElement;\n private readonly contentSlides: HTMLElement[];\n private readonly els: LsgCarouselControllerElements;\n private readonly paginationBtns: HTMLElement[];\n private readonly paginationHandlers: Array<() => void>;\n\n constructor(\n viewport: HTMLElement,\n elements: LsgCarouselControllerElements = {},\n options: LsgCarouselControllerOptions = {},\n ) {\n this.els = elements;\n this.mediaViewport = viewport;\n this.paginationBtns = elements.paginationBtns\n ? Array.from(elements.paginationBtns)\n : [];\n\n const mediaTrack = viewport.firstElementChild as HTMLElement | null;\n const mediaSlides = directChildren(mediaTrack, MEDIA_ITEM_SELECTOR);\n\n // Embla resolves `container` as `root.children[0]` and `slides` as its\n // element children. Passing both explicitly instead makes the instance\n // immune to AEM injecting its own nodes (e.g. the edit-mode\n // `div.new.section.aem-Grid-newComponent` drop target) into the track.\n this.media = EmblaCarousel(\n viewport,\n {\n align: \"start\",\n // Every authored media item owns a pagination dot. `trimSnaps` can remove\n // the final snap when two-up/peek layouts do not have enough overflow,\n // leaving the last authored item only partially reachable. Keep all snaps\n // so dot/item indexes stay 1:1 for 2, 3, 4, ... media items.\n //\n // This is ALSO load-bearing for the text/media sync: `containSnaps` is\n // `!loop && !!containScroll`, so with this `false` the snap list is\n // always `snapsAligned` - one snap per slide, whatever the slide's\n // flex-basis. That is the only reason a 380px peek track and a 100%-wide\n // crossfade track can share one index. Reverting this to `trimSnaps`\n // drops trailing snaps on the media track alone and desyncs the tail.\n containScroll: false,\n direction: options.direction ?? \"ltr\",\n loop: options.loop ?? true,\n skipSnaps: false,\n slidesToScroll: 1,\n container: mediaTrack ?? undefined,\n slides: mediaSlides.length ? mediaSlides : undefined,\n // All layouts collapse to the same mobile stack, which is never\n // mirrored. Embla restores the selected index when a breakpoint\n // re-activates, so the flip is not visible to the reader.\n breakpoints: { [MOBILE_MEDIA_QUERY]: { direction: \"ltr\" } },\n },\n );\n\n const contentViewport = elements.contentViewport ?? null;\n const contentTrack = contentViewport?.firstElementChild as HTMLElement | null;\n this.contentSlides = directChildren(contentTrack, CONTENT_ITEM_SELECTOR);\n\n // Unequal counts are the one remaining way the two tracks can desync, and a\n // text block silently paired with the wrong image is worse than no text\n // animation at all. Degrade to media-only rather than risk it.\n const countsMatch =\n mediaSlides.length > 0 && this.contentSlides.length === mediaSlides.length;\n\n if (contentViewport && contentTrack && countsMatch) {\n this.content = EmblaCarousel(\n contentViewport,\n {\n align: \"start\",\n // Must match the media track's snap arithmetic - see above.\n containScroll: false,\n // The text crossfades in place, so there is nothing to mirror.\n direction: \"ltr\",\n // Inert on a fade instance: the plugin calls `disableScroll()`, which\n // deactivates the translate and every loop point. Set for config\n // symmetry with the media track, not for behaviour.\n loop: options.loop ?? true,\n skipSnaps: false,\n slidesToScroll: 1,\n // The reader drags the media, never the text. Without this the text\n // track would fight the media track for the same pointer.\n watchDrag: false,\n container: contentTrack,\n slides: this.contentSlides,\n },\n [EmblaCarouselFade()],\n );\n }\n\n this.paginationHandlers = this.paginationBtns.map((_, index) => () => {\n this.media?.scrollTo(index);\n });\n\n this.els.prevBtn?.addEventListener(\"click\", this.scrollPrev);\n this.els.nextBtn?.addEventListener(\"click\", this.scrollNext);\n this.paginationBtns.forEach((button, index) => {\n button.addEventListener(\"click\", this.paginationHandlers[index]);\n });\n\n this.media.on(\"select\", this.handleMediaSelect);\n this.media.on(\"reInit\", this.handleResync);\n this.media.on(\"slidesChanged\", this.handleResync);\n this.content?.on(\"select\", this.handleContentSelect);\n\n // Initial alignment is a hard cut - there is nothing to crossfade from.\n this.handleResync();\n }\n\n /**\n * Embla automatically falls back to non-looping mode when there is not enough\n * slide content to create a safe loop (most noticeable with two-up layouts and\n * only 2–3 authored items). Keep the arrow contract cyclic in that fallback:\n * when there is no native previous snap, jump to the final authored snap.\n */\n readonly scrollPrev = (): void => {\n if (!this.media) return;\n\n if (this.media.canScrollPrev()) {\n this.media.scrollPrev();\n return;\n }\n\n const lastSnap = this.media.scrollSnapList().length - 1;\n if (lastSnap >= 0) this.media.scrollTo(lastSnap);\n };\n\n /** See `scrollPrev` for why the explicit wrap fallback is required. */\n readonly scrollNext = (): void => {\n if (!this.media) return;\n\n if (this.media.canScrollNext()) {\n this.media.scrollNext();\n return;\n }\n\n if (this.media.scrollSnapList().length > 0) this.media.scrollTo(0);\n };\n\n /**\n * Drive the text track from the media index.\n *\n * `jump` skips the crossfade (Embla sets duration 0, and the fade plugin then\n * snaps opacity instantly). Use it only for re-measure events, never for\n * reader-initiated navigation, or the text hard-cuts instead of fading.\n */\n private pushToContent(jump = false): void {\n if (!this.media || !this.content || this.syncing) return;\n\n const target = this.media.selectedScrollSnap();\n if (this.content.selectedScrollSnap() === target) return;\n\n this.syncing = true;\n try {\n this.content.scrollTo(target, jump);\n } finally {\n this.syncing = false;\n }\n }\n\n /**\n * The text track never initiates navigation, but it owns its own resize and\n * mutation observers. If one instance re-measures without the other, this pulls\n * the media track back onto the text track's index rather than letting them drift.\n */\n private readonly handleContentSelect = (): void => {\n if (!this.media || !this.content || this.syncing) return;\n\n const target = this.content.selectedScrollSnap();\n if (this.media.selectedScrollSnap() === target) return;\n\n this.syncing = true;\n try {\n this.media.scrollTo(target, true);\n } finally {\n this.syncing = false;\n }\n };\n\n /** Reader-initiated navigation: repaint state, then crossfade the text. */\n private readonly handleMediaSelect = (): void => {\n this.syncSelectedState();\n this.pushToContent();\n };\n\n /**\n * Re-measure events (breakpoint flip, resize, authored items added/removed).\n * The text is realigned with a hard cut because nothing moved for the reader.\n */\n private readonly handleResync = (): void => {\n this.syncSelectedState();\n this.pushToContent(true);\n };\n\n /** Repaints dot/arrow/a11y state from the media index. Never navigates. */\n private readonly syncSelectedState = (): void => {\n const selected = this.media?.selectedScrollSnap() ?? 0;\n const snapCount = this.media?.scrollSnapList().length ?? 0;\n\n this.paginationBtns.forEach((button, index) => {\n const active = index === selected;\n button.classList.toggle(\"lsg-carousel__dot--active\", active);\n button.setAttribute(\"aria-current\", active ? \"true\" : \"false\");\n });\n\n // Cosmetic only. Looping plus the cyclic wrap above mean both arrows always\n // act, so `disabled`/`aria-disabled` would misreport them to assistive tech.\n // Themes use these classes to mute the leading/trailing half of the pill.\n this.els.prevBtn?.classList.toggle(\n \"lsg-carousel__arrow--at-start\",\n selected === 0,\n );\n this.els.nextBtn?.classList.toggle(\n \"lsg-carousel__arrow--at-end\",\n snapCount > 0 && selected === snapCount - 1,\n );\n\n // The fade plugin only sets opacity and pointer-events, so without this every\n // faded-out text block keeps its heading in the accessibility tree and its CTA\n // in the tab order - N copies of the same landmark for a sighted-equivalent\n // view of one.\n this.contentSlides.forEach((slide, index) => {\n const active = index === selected;\n slide.toggleAttribute(\"inert\", !active);\n if (active) slide.removeAttribute(\"aria-hidden\");\n else slide.setAttribute(\"aria-hidden\", \"true\");\n });\n };\n\n get emblaApi(): EmblaCarouselType | null {\n return this.media;\n }\n\n /** Text track handle. Exposed for the index-parity checks in the test plan. */\n get contentApi(): EmblaCarouselType | null {\n return this.content;\n }\n\n destroy(): void {\n this.els.prevBtn?.removeEventListener(\"click\", this.scrollPrev);\n this.els.nextBtn?.removeEventListener(\"click\", this.scrollNext);\n this.paginationBtns.forEach((button, index) => {\n button.removeEventListener(\"click\", this.paginationHandlers[index]);\n });\n\n // Content first: its plugin restores the inline opacity/transform it wrote,\n // and it reads `internalEngine()` while doing so.\n if (this.content) {\n this.content.off(\"select\", this.handleContentSelect);\n this.content.destroy();\n this.content = null;\n }\n\n if (this.media) {\n this.media.off(\"select\", this.handleMediaSelect);\n this.media.off(\"reInit\", this.handleResync);\n this.media.off(\"slidesChanged\", this.handleResync);\n this.media.destroy();\n this.media = null;\n }\n\n // Embla restores what Embla wrote. Everything below is ours, and leaving it\n // behind would make server-rendered markup re-initialise into a stale state.\n this.paginationBtns.forEach((button) => {\n button.classList.remove(\"lsg-carousel__dot--active\");\n button.removeAttribute(\"aria-current\");\n });\n this.els.prevBtn?.classList.remove(\"lsg-carousel__arrow--at-start\");\n this.els.nextBtn?.classList.remove(\"lsg-carousel__arrow--at-end\");\n this.contentSlides.forEach((slide) => {\n slide.removeAttribute(\"inert\");\n slide.removeAttribute(\"aria-hidden\");\n });\n }\n}\n","import React, { useEffect, useMemo, useRef } from \"react\";\nimport { LsgButton } from \"../LsgButton\";\nimport type { LsgButtonVariant } from \"../LsgButton\";\nimport { LsgImage } from \"../LsgImage\";\nimport { LsgVideo } from \"../LsgVideo\";\nimport { LsgCarouselController } from \"./LsgCarouselController\";\nimport type { LsgCarouselDirection } from \"./LsgCarouselController\";\nimport \"./LsgCarousel.scss\";\n\nexport type LsgCarouselLayout = \"media-right\" | \"media-left\" | \"full-width\";\nexport type LsgCarouselHeadingTag = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\nexport type LsgCarouselMediaType = \"image\" | \"video\";\n\n/** Mirrors the AEM \"Background color\" style group on the carousel policy. */\nexport type LsgCarouselBackground =\n | \"white\"\n | \"light\"\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"dark\"\n | \"black\";\n\nexport interface LsgCarouselCta {\n label: string;\n href?: string;\n external?: boolean;\n variant?: LsgButtonVariant;\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;\n}\n\nexport interface LsgCarouselItem {\n /** Stable author/item identifier where available. */\n id?: string;\n\n // --- text, crossfaded in step with this item's media ---\n preTitle?: string;\n heading?: string;\n body?: string;\n cta?: LsgCarouselCta;\n\n // --- media ---\n type?: LsgCarouselMediaType;\n imageUrl?: string;\n imageAlt?: string;\n videoUrl?: string;\n videoPoster?: string;\n videoControls?: boolean;\n videoAutoPlay?: boolean;\n videoMuted?: boolean;\n videoLoop?: boolean;\n /** Optional per-media label used by layouts/themes that show a badge. */\n label?: string;\n}\n\nexport interface LsgCarouselProps {\n items: LsgCarouselItem[];\n /** Desktop content/media position from the Figma variants. */\n layout?: LsgCarouselLayout;\n /**\n * Background colour, mirroring the AEM \"Background color\" style group on the\n * carousel policy. Left undefined on purpose so no class is emitted and the\n * carousel keeps its default panel colour. Each option carries its own\n * legible foreground, which the nested Title/Text/Button inherit unless their\n * own policy overrides it.\n */\n background?: LsgCarouselBackground;\n headingTag?: LsgCarouselHeadingTag;\n ariaLabel?: string;\n className?: string;\n\n /**\n * @deprecated Text is authored per item. These apply to the first item only,\n * as a fallback for callers written against the single-content-block carousel,\n * and will be removed in the next major.\n */\n heading?: string;\n /** @deprecated See `heading`. */\n preTitle?: string;\n /** @deprecated See `heading`. */\n body?: string;\n /** @deprecated See `heading`. */\n cta?: LsgCarouselCta;\n}\n\nconst mediaTypeFor = (item: LsgCarouselItem): LsgCarouselMediaType =>\n item.type ?? (item.videoUrl ? \"video\" : \"image\");\n\nconst directionForLayout = (layout: LsgCarouselLayout): LsgCarouselDirection =>\n layout === \"media-left\" ? \"rtl\" : \"ltr\";\n\nconst hasText = (item: LsgCarouselItem): boolean =>\n Boolean(item.preTitle || item.heading || item.body || item.cta);\n\nexport const LsgCarousel: React.FC<LsgCarouselProps> = ({\n items = [],\n layout = \"media-right\",\n background,\n headingTag = \"h2\",\n ariaLabel = \"Media carousel\",\n className = \"\",\n heading,\n preTitle,\n body,\n cta,\n}) => {\n const viewportRef = useRef<HTMLDivElement>(null);\n const contentViewportRef = useRef<HTMLDivElement>(null);\n const prevBtnRef = useRef<HTMLButtonElement>(null);\n const nextBtnRef = useRef<HTMLButtonElement>(null);\n const dotsRef = useRef<HTMLDivElement>(null);\n const controllerRef = useRef<LsgCarouselController | null>(null);\n const HeadingTag = headingTag;\n const isCarousel = items.length > 1;\n const carouselDirection = directionForLayout(layout);\n\n // Legacy single-content-block callers passed the text alongside `items`. Fold\n // it onto the first item so their carousel still renders its copy.\n const resolvedItems = useMemo<LsgCarouselItem[]>(() => {\n const legacy = { preTitle, heading, body, cta };\n const hasLegacy = Boolean(legacy.preTitle || legacy.heading || legacy.body || legacy.cta);\n if (!hasLegacy || !items.length || hasText(items[0])) return items;\n return items.map((item, index) => (index === 0 ? { ...legacy, ...item } : item));\n }, [items, preTitle, heading, body, cta]);\n\n useEffect(() => {\n if (!viewportRef.current || !isCarousel) return;\n\n controllerRef.current = new LsgCarouselController(\n viewportRef.current,\n {\n prevBtn: prevBtnRef.current,\n nextBtn: nextBtnRef.current,\n paginationBtns:\n dotsRef.current?.querySelectorAll<HTMLElement>(\"[data-lsg-carousel-dot]\") ?? [],\n contentViewport: contentViewportRef.current,\n },\n { loop: true, direction: carouselDirection },\n );\n\n return () => {\n controllerRef.current?.destroy();\n controllerRef.current = null;\n };\n }, [carouselDirection, isCarousel, resolvedItems.length]);\n\n const rootClasses = [\n \"lsg-carousel\",\n `lsg-carousel--${layout}`,\n // In AEM this class arrives on the decoration div instead; the SCSS only\n // sets inherited custom properties, so either position works.\n background ? `lsg-carousel--bg-${background}` : \"\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n const keyFor = (item: LsgCarouselItem, index: number): string =>\n item.id ??\n `${mediaTypeFor(item)}-${item.imageUrl ?? item.videoUrl ?? index}-${index}`;\n\n return (\n <section\n className={rootClasses}\n data-lsg-is=\"carousel\"\n data-lsg-carousel-layout={layout}\n data-lsg-carousel-direction={carouselDirection}\n data-lsg-carousel-count={resolvedItems.length}\n aria-label={ariaLabel}\n >\n {/*\n Both tracks are generated from the same item list with no filtering, so\n index i is the same authored item in both. An item with no text still\n emits an empty content slide and an item with no media still emits a\n placeholder slide - dropping either would desync the shared index.\n */}\n <div className=\"lsg-carousel__shell\">\n <div\n className=\"lsg-carousel__content\"\n ref={contentViewportRef}\n data-lsg-carousel-content-viewport\n >\n <div className=\"lsg-carousel__content-track\">\n {resolvedItems.map((item, index) => (\n <div\n key={keyFor(item, index)}\n className=\"lsg-carousel__content-slide\"\n data-lsg-carousel-content-item\n >\n {item.preTitle && (\n <div className=\"lsg-carousel__pre-title\">\n <span className=\"lsg-carousel__pre-title-marker\" aria-hidden=\"true\" />\n <span>{item.preTitle}</span>\n </div>\n )}\n\n {item.heading && (\n <HeadingTag className=\"lsg-carousel__heading\">{item.heading}</HeadingTag>\n )}\n\n {item.body && <p className=\"lsg-carousel__body\">{item.body}</p>}\n\n {item.cta && (\n <div className=\"lsg-carousel__actions\">\n <LsgButton\n className=\"lsg-carousel__cta\"\n href={item.cta.href}\n external={item.cta.external}\n variant={item.cta.variant ?? \"primary\"}\n onClick={item.cta.onClick}\n >\n {item.cta.label}\n </LsgButton>\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n\n <div className=\"lsg-carousel__media-column\">\n <div\n className=\"lsg-carousel__viewport\"\n ref={viewportRef}\n dir={carouselDirection}\n data-lsg-carousel-media-viewport\n >\n <div className=\"lsg-carousel__track\" role=\"list\">\n {resolvedItems.map((item, index) => {\n const type = mediaTypeFor(item);\n\n return (\n <article\n key={keyFor(item, index)}\n className=\"lsg-carousel__slide\"\n role=\"listitem\"\n aria-label={`Slide ${index + 1} of ${resolvedItems.length}`}\n data-lsg-carousel-item\n >\n <div className=\"lsg-carousel__media\">\n {type === \"video\" && item.videoUrl ? (\n <LsgVideo\n videoUrl={item.videoUrl}\n imageUrl={item.videoPoster}\n imageAlt={item.imageAlt}\n controls={item.videoControls ?? true}\n autoplay={item.videoAutoPlay ?? false}\n muted={item.videoMuted ?? true}\n loop={item.videoLoop ?? false}\n displayMode=\"content\"\n showTags={false}\n className=\"lsg-carousel__video-component\"\n />\n ) : item.imageUrl ? (\n <LsgImage\n imageUrl={item.imageUrl}\n imageAlt={item.imageAlt}\n className=\"lsg-carousel__image-component\"\n />\n ) : (\n <div className=\"lsg-carousel__media-placeholder\" aria-hidden=\"true\" />\n )}\n\n {item.label && (\n <span className=\"lsg-carousel__media-label\">{item.label}</span>\n )}\n </div>\n </article>\n );\n })}\n </div>\n </div>\n\n {isCarousel && (\n <div className=\"lsg-carousel__controls\" aria-label=\"Carousel navigation\">\n <div className=\"lsg-carousel__nav\">\n <button\n ref={prevBtnRef}\n className=\"lsg-carousel__arrow lsg-carousel__arrow--prev\"\n type=\"button\"\n aria-label=\"Previous slide\"\n data-lsg-carousel-prev\n >\n <span className=\"lsg-carousel__arrow-icon\" aria-hidden=\"true\" />\n </button>\n\n <button\n ref={nextBtnRef}\n className=\"lsg-carousel__arrow lsg-carousel__arrow--next\"\n type=\"button\"\n aria-label=\"Next slide\"\n data-lsg-carousel-next\n >\n <span className=\"lsg-carousel__arrow-icon\" aria-hidden=\"true\" />\n </button>\n </div>\n\n <div className=\"lsg-carousel__pagination\" ref={dotsRef}>\n {resolvedItems.map((item, index) => (\n <button\n key={item.id ?? `dot-${index}`}\n className={`lsg-carousel__dot${index === 0 ? \" lsg-carousel__dot--active\" : \"\"}`}\n type=\"button\"\n aria-label={`Go to slide ${index + 1}`}\n aria-current={index === 0 ? \"true\" : \"false\"}\n data-lsg-carousel-dot\n />\n ))}\n </div>\n </div>\n )}\n </div>\n </div>\n </section>\n );\n};\n","import React from \"react\";\nimport \"./LsgCard.scss\";\n\nexport type LsgCardVariant = \"withImage\" | \"onlyText\" | \"withIcon\";\nexport type LsgCardColumns = 2 | 3 | 4 | 5;\n\nexport interface LsgCardCta {\n label: string;\n href: string;\n external?: boolean;\n}\n\nexport interface LsgCardProps {\n title: string;\n preTitle?: string;\n subtitle?: string;\n description?: string;\n imageUrl?: string;\n imageAlt?: string;\n iconUrl?: string;\n iconAlt?: string;\n /** Makes the complete card interactive when provided. */\n href?: string;\n cta?: LsgCardCta;\n variant?: LsgCardVariant;\n className?: string;\n}\n\nfunction cardVariantClass(variant: LsgCardVariant): string {\n switch (variant) {\n case \"onlyText\":\n return \"lsg-card--only-text\";\n case \"withIcon\":\n return \"lsg-card--with-icon\";\n case \"withImage\":\n default:\n return \"lsg-card--with-image\";\n }\n}\n\nexport const LsgCard: React.FC<LsgCardProps> = ({\n title,\n preTitle,\n subtitle,\n description,\n imageUrl,\n imageAlt = \"\",\n iconUrl,\n iconAlt = \"\",\n href,\n cta,\n variant = \"withImage\",\n className,\n}) => {\n const resolvedIconUrl = iconUrl ?? imageUrl;\n const actionLabel = cta?.label ?? \"Read more\";\n const cardClassName = [\"lsg-card\", cardVariantClass(variant), className]\n .filter(Boolean)\n .join(\" \");\n\n const content = (\n <>\n {variant === \"withImage\" && imageUrl && (\n <div className=\"lsg-card__media\">\n <img src={imageUrl} alt={imageAlt} loading=\"lazy\" />\n </div>\n )}\n <div className=\"lsg-card__content\">\n {variant === \"withIcon\" && resolvedIconUrl && (\n <div className=\"lsg-card__icon\" aria-hidden={iconAlt ? undefined : true}>\n <img src={resolvedIconUrl} alt={iconAlt} loading=\"lazy\" />\n </div>\n )}\n <div className=\"lsg-card__top\">\n {preTitle && (\n <span className=\"lsg-card__pre-title\">\n <span className=\"lsg-card__pre-title-dot\" aria-hidden=\"true\" />\n <span className=\"lsg-card__pre-title-text\">{preTitle}</span>\n <span className=\"lsg-card__pre-title-arrow\" aria-hidden=\"true\">→</span>\n </span>\n )}\n <h3 className=\"lsg-card__title\">{title}</h3>\n {subtitle && <h4 className=\"lsg-card__subtitle\">{subtitle}</h4>}\n </div>\n <div className=\"lsg-card__bottom\">\n {description && <p className=\"lsg-card__description\">{description}</p>}\n {(href || cta) && (\n href ? (\n <span className=\"lsg-card__cta\" aria-hidden=\"true\">\n <span className=\"lsg-card__cta-label\">{actionLabel}</span>\n <span className=\"lsg-card__cta-arrow\" aria-hidden=\"true\">→</span>\n </span>\n ) : (\n <a\n className=\"lsg-card__cta\"\n href={cta?.href}\n target={cta?.external ? \"_blank\" : undefined}\n rel={cta?.external ? \"noreferrer noopener\" : undefined}\n >\n <span className=\"lsg-card__cta-label\">{actionLabel}</span>\n <span className=\"lsg-card__cta-arrow\" aria-hidden=\"true\">→</span>\n </a>\n )\n )}\n </div>\n </div>\n </>\n );\n\n return (\n <article className={cardClassName} data-lsg-card-variant={variant}>\n {href ? (\n <a href={href} className=\"lsg-card__link\" aria-label={title}>\n {content}\n </a>\n ) : (\n <div className=\"lsg-card__link\">{content}</div>\n )}\n </article>\n );\n};\n\nexport interface LsgCardsProps {\n cards: LsgCardProps[];\n columns?: LsgCardColumns;\n className?: string;\n}\n\n/** Renders the AEM/Storybook compatible responsive card grid. */\nexport const LsgCards: React.FC<LsgCardsProps> = ({\n cards,\n columns = 3,\n className,\n}) => {\n const listClassName = [\n \"lsg-cards\",\n `lsg-cards--cols-${columns}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <ul className={listClassName} data-columns={columns}>\n {cards.map((card, index) => (\n <li className=\"lsg-cards__item\" key={card.href ?? card.cta?.href ?? `${card.title}-${index}`}>\n <LsgCard {...card} />\n </li>\n ))}\n </ul>\n );\n};\n","export type LsgIconName =\n | \"bars\"\n | \"chevronLeft\"\n | \"chevronRight\"\n | \"close\"\n | \"globe\"\n | \"home\"\n | \"search\";\n\nexport const LSG_ICON_PATHS: Record<LsgIconName, string> = {\n bars:\n \"M96 160C96 142.3 110.3 128 128 128L512 128C529.7 128 544 142.3 544 160C544 177.7 529.7 192 512 192L128 192C110.3 192 96 177.7 96 160zM96 320C96 302.3 110.3 288 128 288L512 288C529.7 288 544 302.3 544 320C544 337.7 529.7 352 512 352L128 352C110.3 352 96 337.7 96 320zM544 480C544 497.7 529.7 512 512 512L128 512C110.3 512 96 497.7 96 480C96 462.3 110.3 448 128 448L512 448C529.7 448 544 462.3 544 480z\",\n chevronLeft:\n \"M169.4 297.4C156.9 309.9 156.9 330.2 169.4 342.7L361.4 534.7C373.9 547.2 394.2 547.2 406.7 534.7C419.2 522.2 419.2 501.9 406.7 489.4L237.3 320L406.6 150.6C419.1 138.1 419.1 117.8 406.6 105.3C394.1 92.8 373.8 92.8 361.3 105.3L169.3 297.3z\",\n chevronRight:\n \"M471.1 297.4C483.6 309.9 483.6 330.2 471.1 342.7L279.1 534.7C266.6 547.2 246.3 547.2 233.8 534.7C221.3 522.2 221.3 501.9 233.8 489.4L403.2 320L233.9 150.6C221.4 138.1 221.4 117.8 233.9 105.3C246.4 92.8 266.7 92.8 279.2 105.3L471.2 297.3z\",\n close:\n \"M504.6 148.5C515.9 134.9 514.1 114.7 500.5 103.4C486.9 92.1 466.7 93.9 455.4 107.5L320 270L184.6 107.5C173.3 93.9 153.1 92.1 139.5 103.4C125.9 114.7 124.1 134.9 135.4 148.5L278.3 320L135.4 491.5C124.1 505.1 125.9 525.3 139.5 536.6C153.1 547.9 173.3 546.1 184.6 532.5L320 370L455.4 532.5C466.7 546.1 486.9 547.9 500.5 536.6C514.1 525.3 515.9 505.1 504.6 491.5L361.7 320L504.6 148.5z\",\n globe:\n \"M367.2 477C345.7 520.7 325.8 528 320 528C314.2 528 294.3 520.7 272.8 477C255.8 442.5 243.6 395.4 240.7 344L399.3 344C396.3 395.5 384.1 442.6 367.2 477zM399.3 296L240.7 296C243.7 244.5 255.9 197.4 272.8 163C294.3 119.3 314.2 112 320 112C325.8 112 345.7 119.3 367.2 163C384.2 197.5 396.4 244.6 399.3 296zM447.4 344L526.6 344C518 418.6 469.9 481.3 403.8 510.4C427.8 467.6 444.1 408 447.4 344zM526.6 296L447.4 296C444.1 232 427.8 172.4 403.8 129.6C469.9 158.8 518 221.4 526.6 296zM192.6 296L113.4 296C122 221.4 170.1 158.7 236.2 129.6C212.2 172.4 195.9 232 192.6 296zM113.4 344L192.6 344C195.9 408 212.2 467.6 236.2 510.4C170.1 481.2 122 418.6 113.4 344zM320 576C461.4 576 576 461.4 576 320C576 178.6 461.4 64 320 64C178.6 64 64 178.6 64 320C64 461.4 178.6 576 320 576z\",\n home: \"M96 320L320 128L544 320H480V528H352V384H288V528H160V320H96z\",\n search:\n \"M480 272C480 317.9 465.1 360.3 440 394.7L566.6 521.4C579.1 533.9 579.1 554.2 566.6 566.7C554.1 579.2 533.8 579.2 521.3 566.7L394.7 440C360.3 465.1 317.9 480 272 480C157.1 480 64 386.9 64 272C64 157.1 157.1 64 272 64C386.9 64 480 157.1 480 272zM272 416C351.5 416 416 351.5 416 272C416 192.5 351.5 128 272 128C192.5 128 128 192.5 128 272C128 351.5 192.5 416 272 416z\",\n};\n\n","import React from \"react\";\nimport { LSG_ICON_PATHS } from \"./lsgIconPaths\";\nimport type { LsgIconName } from \"./lsgIconPaths\";\n\nexport interface LsgIconProps {\n name: LsgIconName;\n className?: string;\n}\n\nexport const LsgIcon: React.FC<LsgIconProps> = ({ name, className }) => (\n <svg\n className={className}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 640 640\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d={LSG_ICON_PATHS[name]} />\n </svg>\n);\n","import React from \"react\";\nimport { LsgIcon } from \"../../../utils\";\nimport \"./LsgBreadcrumb.scss\";\n\nexport interface LsgBreadcrumbItem {\n label: string;\n href?: string;\n}\n\nexport interface LsgBreadcrumbProps {\n /** Breadcrumb items ordered from the nearest ancestor to the current page. */\n items?: LsgBreadcrumbItem[];\n /** Mirrors the AEM \"Show Breadcrumbs\" configuration. */\n showBreadcrumbs?: boolean;\n /** Mirrors the AEM \"Include Home Link\" configuration. */\n includeHome?: boolean;\n /** URL used by the home icon link. */\n homeHref?: string;\n /** Accessible label for the icon-only home link. */\n homeLabel?: string;\n className?: string;\n}\n\nfunction isSafeHref(href: string | undefined): boolean {\n if (!href) return false;\n\n const value = href.trim().toLowerCase();\n if (\n value.startsWith(\"javascript:\") ||\n value.startsWith(\"data:\") ||\n value.startsWith(\"vbscript:\")\n ) {\n return false;\n }\n\n return (\n value.startsWith(\"/\") ||\n value.startsWith(\"#\") ||\n value.startsWith(\"http://\") ||\n value.startsWith(\"https://\") ||\n !value.includes(\":\")\n );\n}\n\nconst BreadcrumbSeparator: React.FC = () => (\n <li className=\"lsg-breadcrumb__separator\" aria-hidden=\"true\">\n <LsgIcon name=\"chevronRight\" className=\"lsg-breadcrumb__separator-icon\" />\n </li>\n);\n\nexport const LsgBreadcrumb: React.FC<LsgBreadcrumbProps> = ({\n items = [],\n showBreadcrumbs = true,\n includeHome = true,\n homeHref = \"/\",\n homeLabel = \"Home\",\n className = \"\",\n}) => {\n if (!showBreadcrumbs) return null;\n\n const visibleItems = Array.isArray(items)\n ? items.filter(\n (item): item is LsgBreadcrumbItem =>\n Boolean(item) && typeof item.label === \"string\" && item.label.trim().length > 0,\n )\n : [];\n\n if (!includeHome && visibleItems.length === 0) return null;\n\n const rootClassName = [\"lsg-breadcrumb\", className].filter(Boolean).join(\" \");\n const safeHomeHref = isSafeHref(homeHref) ? homeHref : \"/\";\n\n return (\n <nav className={rootClassName} aria-label=\"Breadcrumb\">\n <ol className=\"lsg-breadcrumb__list\">\n {includeHome && (\n <li className=\"lsg-breadcrumb__item lsg-breadcrumb__item--home\">\n <a className=\"lsg-breadcrumb__home\" href={safeHomeHref} aria-label={homeLabel}>\n <LsgIcon name=\"home\" className=\"lsg-breadcrumb__home-icon\" />\n </a>\n </li>\n )}\n\n {visibleItems.map((item, index) => {\n const isCurrent = index === visibleItems.length - 1;\n const safeHref = isSafeHref(item.href) ? item.href : undefined;\n\n return (\n <React.Fragment key={`${item.label}-${index}`}>\n {(includeHome || index > 0) && <BreadcrumbSeparator />}\n <li\n className={[\n \"lsg-breadcrumb__item\",\n isCurrent ? \"lsg-breadcrumb__item--current\" : \"lsg-breadcrumb__item--ancestor\",\n ].join(\" \")}\n >\n {isCurrent ? (\n <span className=\"lsg-breadcrumb__current\" aria-current=\"page\">\n <span className=\"lsg-breadcrumb__current-marker\" aria-hidden=\"true\" />\n <span className=\"lsg-breadcrumb__label\">{item.label}</span>\n </span>\n ) : safeHref ? (\n <a className=\"lsg-breadcrumb__link\" href={safeHref}>\n {item.label}\n </a>\n ) : (\n <span className=\"lsg-breadcrumb__ancestor\">{item.label}</span>\n )}\n </li>\n </React.Fragment>\n );\n })}\n </ol>\n </nav>\n );\n};\n","import React from \"react\";\nimport \"./LsgLogo.scss\";\n\nexport interface LsgLogoProps {\n /** Image src. When omitted, renders a text logo. */\n src?: string;\n alt?: string;\n href?: string;\n width?: number;\n height?: number;\n /** Fallback text shown when no src is provided */\n text?: string;\n}\n\nexport const LsgLogo: React.FC<LsgLogoProps> = ({\n src,\n alt = \"Logo\",\n href = \"/\",\n width,\n height = 40,\n text = \"Atlas Copco\",\n}) => {\n const content = src ? (\n <img\n src={src}\n alt={alt}\n width={width}\n height={height}\n className=\"lsg-logo__image\"\n />\n ) : (\n <span className=\"lsg-logo__text\">{text}</span>\n );\n\n return (\n <a href={href} className=\"lsg-logo\" aria-label={src ? alt : undefined}>\n {content}\n </a>\n );\n};\n","import React from \"react\";\nimport \"./LsgNavigation.scss\";\n\nexport interface LsgNavItem {\n label: string;\n href: string;\n current?: boolean;\n open?: boolean;\n children?: LsgNavItem[];\n}\n\nexport interface LsgNavigationProps {\n items: LsgNavItem[];\n /** Accessible label for the <nav> landmark */\n label?: string;\n variant?: \"simple\" | \"dropdown\" | \"mega\";\n onItemClick?: (item: LsgNavItem, level: number) => void;\n onItemHover?: (item: LsgNavItem, level: number) => void;\n}\n\nexport const LsgNavigation: React.FC<LsgNavigationProps> = ({\n items,\n label = \"Main navigation\",\n variant = \"simple\",\n onItemClick,\n onItemHover,\n}) => {\n const renderItems = (navItems: LsgNavItem[], level = 0) => (\n <ul className={level === 0 ? \"lsg-nav__list\" : \"lsg-nav__dropdown\"} role=\"list\">\n {navItems.map((item) => {\n const hasChildren = Boolean(item.children?.length);\n\n return (\n <li\n key={`${item.href}-${level}`}\n className={[\n \"lsg-nav__item\",\n hasChildren ? \"lsg-nav__item--has-children\" : \"\",\n item.open ? \"lsg-nav__item--open\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n onMouseEnter={() => {\n if (onItemHover && hasChildren) {\n onItemHover(item, level);\n }\n }}\n >\n <a\n href={item.href}\n onClick={(event) => {\n if (onItemClick && hasChildren) {\n event.preventDefault();\n onItemClick(item, level);\n }\n }}\n className={[\"lsg-nav__link\", item.current ? \"lsg-nav__link--current\" : \"\"]\n .filter(Boolean)\n .join(\" \")}\n aria-current={item.current ? \"page\" : undefined}\n aria-expanded={variant === \"dropdown\" && hasChildren ? item.open : undefined}\n >\n <p>{item.label}</p>\n {hasChildren && (\n <span className=\"lsg-nav__chevron\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 10 5\" preserveAspectRatio=\"xMidYMid meet\" focusable=\"false\">\n <path\n d=\"M1 0.5L5 4.5L9 0.5\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </span>\n )}\n </a>\n {hasChildren && renderItems(item.children || [], level + 1)}\n </li>\n );\n })}\n </ul>\n );\n\n return (\n <nav className={[\"lsg-nav\", `lsg-nav--${variant}`].join(\" \")} aria-label={label}>\n {renderItems(items)}\n </nav>\n );\n};\n","import React, { useState, useRef, useEffect, useId } from \"react\";\nimport \"./LsgLanguageSwitcher.scss\";\nimport { LsgIcon } from \"../../../utils\";\n\nexport interface LsgLanguage {\n code: string;\n label: string;\n href: string;\n}\n\nexport interface LsgLanguageSwitcherProps {\n currentLanguage: string;\n languages: LsgLanguage[];\n /** Accessible label for the trigger button */\n label?: string;\n /** Called when a language is selected. Prevents link navigation when provided. */\n onLanguageChange?: (language: LsgLanguage) => void;\n}\n\nconst ChevronIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <polyline points=\"2 4 6 8 10 4\" />\n </svg>\n);\n\n/**\n * Language Switcher\n *\n * Hydrated: state managed by React (useState).\n * Clientlib-only: driven by lsg-clientlib.js targeting [data-lsg-lang-switcher].\n */\nexport const LsgLanguageSwitcher: React.FC<LsgLanguageSwitcherProps> = ({\n currentLanguage,\n languages,\n label = \"Select language\",\n onLanguageChange,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const reactId = useId();\n const triggerId = `lsg-lang-trigger-${reactId}`;\n const dropdownId = `lsg-lang-dropdown-${reactId}`;\n\n // Close on outside click\n useEffect(() => {\n if (!isOpen) return;\n const handleClick = (e: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(e.target as Node)) {\n setIsOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handleClick);\n return () => document.removeEventListener(\"mousedown\", handleClick);\n }, [isOpen]);\n\n // Close on Escape\n useEffect(() => {\n if (!isOpen) return;\n const handleKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") setIsOpen(false);\n };\n document.addEventListener(\"keydown\", handleKey);\n return () => document.removeEventListener(\"keydown\", handleKey);\n }, [isOpen]);\n\n return (\n <div className=\"lsg-lang-switcher\" ref={containerRef} data-lsg-lang-switcher>\n <button\n id={triggerId}\n type=\"button\"\n className=\"lsg-lang-switcher__trigger\"\n aria-label={label}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-controls={dropdownId}\n onClick={() => setIsOpen((prev) => !prev)}\n >\n <LsgIcon name=\"globe\" className=\"lsg-lang-switcher__globe\" />\n <span className=\"lsg-lang-switcher__current\">{currentLanguage}</span>\n <ChevronIcon />\n </button>\n\n {isOpen && (\n <ul\n id={dropdownId}\n className=\"lsg-lang-switcher__dropdown\"\n role=\"listbox\"\n aria-labelledby={triggerId}\n >\n {languages.map((lang) => (\n <li key={lang.code} className=\"lsg-lang-switcher__option\" role=\"option\">\n <a\n href={lang.href}\n className={[\n \"lsg-lang-switcher__option-link\",\n lang.code === currentLanguage ? \"lsg-lang-switcher__option-link--active\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n aria-current={lang.code === currentLanguage ? true : undefined}\n onClick={(event) => {\n if (!onLanguageChange) return;\n\n event.preventDefault();\n onLanguageChange(lang);\n setIsOpen(false);\n }}\n >\n {lang.label}\n </a>\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgSearchTrigger.scss\";\n\nexport interface LsgSearchTriggerProps {\n /** Accessible label for the button */\n label?: string;\n /** id of the search overlay this button controls */\n targetId?: string;\n onClick?: () => void;\n}\n\nconst SearchIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n);\n\nexport const LsgSearchTrigger: React.FC<LsgSearchTriggerProps> = ({\n label = \"Open search\",\n targetId,\n onClick,\n}) => {\n return (\n <button\n type=\"button\"\n className=\"lsg-search-trigger\"\n aria-label={label}\n aria-haspopup=\"dialog\"\n aria-controls={targetId}\n onClick={onClick}\n data-lsg-search-trigger\n >\n <SearchIcon />\n </button>\n );\n};\n","import React, { useEffect, useRef } from \"react\";\nimport \"./LsgSearchOverlay.scss\";\n\nexport interface LsgSearchOverlayProps {\n id?: string;\n placeholder?: string;\n /** Accessible label for the search input */\n label?: string;\n isOpen?: boolean;\n onClose?: () => void;\n onSearch?: (query: string) => void;\n}\n\nconst SearchIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n);\n\nconst CloseIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n);\n\n/**\n * Search Overlay\n *\n * Hydrated: isOpen/onClose controlled by parent (e.g. LsgHeader).\n * Clientlib-only: driven by lsg-clientlib.js targeting [data-lsg-search-overlay].\n * The CSS class lsg-search-overlay--open drives visibility in both modes.\n */\nexport const LsgSearchOverlay: React.FC<LsgSearchOverlayProps> = ({\n id = \"lsg-search-overlay\",\n placeholder = \"Search…\",\n label = \"Search\",\n isOpen = false,\n onClose,\n onSearch,\n}) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const inputId = `${id}-input`;\n\n // Focus the input when overlay opens\n useEffect(() => {\n if (isOpen) inputRef.current?.focus();\n }, [isOpen]);\n\n // Close on Escape\n useEffect(() => {\n if (!isOpen) return;\n const handleKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClose?.();\n };\n document.addEventListener(\"keydown\", handleKey);\n return () => document.removeEventListener(\"keydown\", handleKey);\n }, [isOpen, onClose]);\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n const query = inputRef.current?.value ?? \"\";\n if (query.trim()) onSearch?.(query.trim());\n };\n\n const overlayClass = [\"lsg-search-overlay\", isOpen ? \"lsg-search-overlay--open\" : \"\"]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div\n id={id}\n className={overlayClass}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={label}\n data-lsg-search-overlay\n >\n {/* Backdrop close */}\n <div\n className=\"lsg-search-overlay__backdrop\"\n aria-hidden=\"true\"\n onClick={onClose}\n style={{ position: \"absolute\", inset: 0, cursor: \"default\" }}\n />\n <div className=\"lsg-search-overlay__panel\">\n <form className=\"lsg-search-overlay__form\" role=\"search\" onSubmit={handleSubmit}>\n <label htmlFor={inputId} className=\"lsg-search-overlay__label\">\n <SearchIcon />\n <span className=\"lsg-visually-hidden\">{label}</span>\n </label>\n <input\n id={inputId}\n ref={inputRef}\n type=\"search\"\n className=\"lsg-search-overlay__input\"\n placeholder={placeholder}\n autoComplete=\"off\"\n />\n <button type=\"submit\" className=\"lsg-search-overlay__submit\" aria-label=\"Submit search\">\n <SearchIcon />\n </button>\n <button\n type=\"button\"\n className=\"lsg-search-overlay__close\"\n aria-label=\"Close search\"\n onClick={onClose}\n >\n <CloseIcon />\n </button>\n </form>\n </div>\n </div>\n );\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport \"./LsgHeader.scss\";\nimport { LsgLogo, LsgLogoProps } from \"../LsgLogo\";\nimport { LsgNavigation, LsgNavItem } from \"../LsgNavigation\";\nimport { LsgLanguage, LsgLanguageSwitcher } from \"../LsgLanguageSwitcher\";\nimport { LsgSearchOverlay } from \"../LsgSearchOverlay\";\nimport { LsgIcon, LsgIconName } from \"../../../utils\";\n\nexport type LsgHeaderSize = \"full-width\" | \"medium\" | \"narrow\";\n\nexport interface LsgHeaderProps {\n logo?: LsgLogoProps;\n navItems?: LsgNavItem[];\n languages?: LsgLanguage[];\n currentLanguage?: string;\n onLanguageChange?: (language: LsgLanguage) => void;\n searchLabel?: string;\n searchPlaceholder?: string;\n variant?: \"simple\" | \"dropdown\" | \"mega\";\n /**\n * Width of the header bar, mirroring the AEM `./headerSize` dialog select.\n * Left undefined on purpose so no modifier class is emitted and the theme's\n * own header width applies. Styled for theme 1 only.\n */\n size?: LsgHeaderSize;\n menuOpen?: boolean;\n mobileLevel?: 0 | 1 | 2 | 3 | 4;\n activePath?: string[];\n mobileSelectedLabel?: string;\n onMenuToggle?: () => void;\n onNavItemHover?: (item: LsgNavItem, level: number) => void;\n onDropdownClose?: () => void;\n onMegaItemHover?: (item: LsgNavItem, level: number) => void;\n onMobileItemClick?: (item: LsgNavItem, level: number) => void;\n onMobileBreadcrumbClick?: (level: 0 | 1 | 2 | 3 | 4) => void;\n children?: React.ReactNode;\n}\n\nconst SEARCH_OVERLAY_ID = \"lsg-header-search-overlay\";\n\nconst LsgHeaderIcon: React.FC<{ name: LsgIconName; className?: string }> = ({\n name,\n className,\n}) => {\n return (\n <LsgIcon\n name={name}\n className={[\"lsg-header__icon\", `lsg-header__icon--${name}`, className || \"\"]\n .filter(Boolean)\n .join(\" \")}\n />\n );\n};\n\nconst getItemByPath = (\n items: LsgNavItem[],\n activePath: string[],\n depth: number\n): LsgNavItem | undefined => {\n let currentItems = items;\n let currentItem: LsgNavItem | undefined;\n\n for (let i = 0; i <= depth; i += 1) {\n currentItem = currentItems.find((item) => item.label === activePath[i]);\n currentItems = currentItem?.children || [];\n }\n\n return currentItem;\n};\n\nconst getItemsAtLevel = (\n items: LsgNavItem[],\n activePath: string[],\n level: number\n): LsgNavItem[] => {\n if (level <= 1) {\n return items;\n }\n\n return getItemByPath(items, activePath, level - 2)?.children || [];\n};\n\nconst getMegaColumns = (\n items: LsgNavItem[],\n activePath: string[],\n maxDepth = 4\n): LsgNavItem[][] => {\n const columns: LsgNavItem[][] = [items];\n let currentItems = items;\n\n activePath.slice(0, maxDepth - 1).forEach((label) => {\n const activeItem = currentItems.find((item) => item.label === label);\n\n if (activeItem?.children?.length) {\n columns.push(activeItem.children);\n currentItems = activeItem.children;\n }\n });\n\n return columns.slice(0, maxDepth);\n};\n\nconst isCurrentOrActiveAtLevel = (item: LsgNavItem, activePath: string[], level: number) =>\n item.current || activePath[level] === item.label;\n\nconst isSelectedAtLevel = (item: LsgNavItem, activePath: string[], level: number) =>\n activePath[level] === item.label;\n\nconst hasOpenNavItem = (items: LsgNavItem[]): boolean =>\n items.some((item) => item.open || hasOpenNavItem(item.children || []));\n\nconst clearMegaMenuBranch = (scope: ParentNode): void => {\n if (scope instanceof HTMLElement) {\n scope.classList.remove(\"lsg-header__mega-item--open\");\n scope.classList.remove(\"lsg-header__mega-column--open\");\n }\n\n scope.querySelectorAll<HTMLElement>(\".lsg-header__mega-item--open\").forEach((item) => {\n item.classList.remove(\"lsg-header__mega-item--open\");\n });\n scope.querySelectorAll<HTMLElement>(\".lsg-header__mega-column--open\").forEach((column) => {\n column.classList.remove(\"lsg-header__mega-column--open\");\n });\n};\n\nconst activateMegaMenuItem = (item: HTMLElement): void => {\n const parentColumn = item.parentElement;\n\n if (parentColumn) {\n Array.from(parentColumn.children).forEach((openItem) => {\n if (openItem !== item) {\n clearMegaMenuBranch(openItem as HTMLElement);\n }\n });\n }\n\n item.classList.add(\"lsg-header__mega-item--open\");\n item\n .querySelector<HTMLElement>(\":scope > .lsg-header__mega-column\")\n ?.classList.add(\"lsg-header__mega-column--open\");\n};\n\nconst HeaderActionButton: React.FC<{\n label: string;\n icon: LsgIconName;\n onClick?: () => void;\n controls?: string;\n className?: string;\n}> = ({ label, icon, onClick, controls, className }) => (\n <button\n type=\"button\"\n className={[\"lsg-header__icon-button\", className || \"\"].filter(Boolean).join(\" \")}\n aria-label={label}\n aria-controls={controls}\n onClick={onClick}\n data-lsg-search-trigger={icon === \"search\" ? \"\" : undefined}\n >\n <LsgHeaderIcon name={icon} />\n </button>\n);\n\nexport const LsgHeader: React.FC<LsgHeaderProps> = ({\n logo,\n navItems = [],\n languages = [],\n currentLanguage = \"EN\",\n onLanguageChange,\n searchLabel = \"Open search\",\n searchPlaceholder = \"Search products, documents...\",\n variant = \"simple\",\n size,\n menuOpen = false,\n mobileLevel = 0,\n activePath = [],\n mobileSelectedLabel,\n onMenuToggle,\n onNavItemHover,\n onDropdownClose,\n onMegaItemHover,\n onMobileItemClick,\n onMobileBreadcrumbClick,\n children,\n}) => {\n const [searchOpen, setSearchOpen] = useState(false);\n const headerRef = useRef<HTMLElement>(null);\n const mobileOpen = menuOpen || mobileLevel > 0;\n const columns = children ? [] : getMegaColumns(navItems, activePath);\n const mobileItems = getItemsAtLevel(navItems, activePath, mobileLevel || 1);\n const mobileBackLabel = activePath[activePath.length - 1] || \"menu\";\n const dropdownOpen = variant === \"dropdown\" && hasOpenNavItem(navItems);\n\n useEffect(() => {\n if (!menuOpen && !dropdownOpen) {\n return undefined;\n }\n\n const closeOnOutsidePointerDown = (event: MouseEvent | TouchEvent) => {\n if (headerRef.current?.contains(event.target as Node)) {\n return;\n }\n\n if (menuOpen) {\n onMenuToggle?.();\n }\n\n if (dropdownOpen) {\n onDropdownClose?.();\n }\n };\n\n document.addEventListener(\"mousedown\", closeOnOutsidePointerDown);\n document.addEventListener(\"touchstart\", closeOnOutsidePointerDown);\n\n return () => {\n document.removeEventListener(\"mousedown\", closeOnOutsidePointerDown);\n document.removeEventListener(\"touchstart\", closeOnOutsidePointerDown);\n };\n }, [dropdownOpen, menuOpen, onDropdownClose, onMenuToggle]);\n\n useEffect(() => {\n if (variant !== \"mega\" || !children || !menuOpen || !headerRef.current) {\n return undefined;\n }\n\n const megaItems = Array.from(\n headerRef.current.querySelectorAll<HTMLElement>(\".lsg-header__mega-item--has-children\")\n );\n const removeListeners = megaItems.map((item) => {\n const onMouseEnter = () => activateMegaMenuItem(item);\n const onFocusIn = () => activateMegaMenuItem(item);\n\n item.addEventListener(\"mouseenter\", onMouseEnter);\n item.addEventListener(\"focusin\", onFocusIn);\n\n return () => {\n item.removeEventListener(\"mouseenter\", onMouseEnter);\n item.removeEventListener(\"focusin\", onFocusIn);\n };\n });\n\n return () => {\n removeListeners.forEach((removeListener) => removeListener());\n if (headerRef.current) {\n clearMegaMenuBranch(headerRef.current);\n }\n };\n }, [children, menuOpen, variant]);\n\n const openSearch = () => setSearchOpen(true);\n\n const renderActions = (showMenu = false) => (\n <div className=\"lsg-header__actions\">\n {showMenu && variant === \"mega\" && (\n <>\n <button\n type=\"button\"\n className=\"lsg-header__menu-trigger\"\n aria-label={menuOpen ? \"Close menu\" : \"Open menu\"}\n aria-expanded={menuOpen}\n onClick={onMenuToggle}\n data-lsg-menu-trigger\n >\n <LsgHeaderIcon name={menuOpen ? \"close\" : \"bars\"} />\n <span>{menuOpen ? \"CLOSE\" : \"MENU\"}</span>\n </button>\n <span className=\"lsg-header__separator\" aria-hidden=\"true\">\n |\n </span>\n </>\n )}\n <HeaderActionButton\n label={searchLabel}\n icon=\"search\"\n controls={SEARCH_OVERLAY_ID}\n onClick={openSearch}\n />\n {languages.length > 0 && (\n <LsgLanguageSwitcher\n currentLanguage={currentLanguage}\n languages={languages}\n label={`Current language: ${currentLanguage}`}\n onLanguageChange={onLanguageChange}\n />\n )}\n </div>\n );\n\n const renderMegaPanel = () => (\n <div className=\"lsg-header__mega-panel\">\n <div className=\"lsg-header__mega-inner\">\n {columns.map((columnItems, columnIndex) => (\n <ul key={`mega-column-${columnIndex}`} className=\"lsg-header__mega-column\" role=\"list\">\n {columnItems.map((item) => {\n const hasChildren = Boolean(item.children?.length);\n\n return (\n <li\n key={`${item.href}-${columnIndex}`}\n className={[\n \"lsg-header__mega-item\",\n hasChildren ? \"lsg-header__mega-item--has-children\" : \"\",\n isSelectedAtLevel(item, activePath, columnIndex)\n ? \"lsg-header__mega-item--active\"\n : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n onMouseEnter={() => {\n if (onMegaItemHover && hasChildren) {\n onMegaItemHover(item, columnIndex);\n }\n }}\n >\n <a href={item.href} className=\"lsg-header__mega-link\">\n <span>{item.label}</span>\n {hasChildren && <LsgHeaderIcon name=\"chevronRight\" />}\n </a>\n </li>\n );\n })}\n </ul>\n ))}\n </div>\n </div>\n );\n\n const renderMobileMenu = () => (\n <div className=\"lsg-header__mobile-panel\">\n {variant === \"dropdown\" ? (\n <LsgNavigation\n items={navItems}\n variant=\"dropdown\"\n onItemClick={(item, level) => onMobileItemClick?.(item, level + 1)}\n />\n ) : (\n <>\n {variant === \"mega\" && mobileLevel > 1 && (\n <nav className=\"lsg-header__mobile-back\" aria-label=\"Menu navigation\">\n <button\n type=\"button\"\n className=\"lsg-header__mobile-back-button\"\n aria-label={`Back to ${mobileBackLabel}`}\n onClick={() =>\n onMobileBreadcrumbClick?.(Math.max(1, mobileLevel - 1) as 1 | 2 | 3 | 4)\n }\n >\n <LsgHeaderIcon name=\"chevronRight\" />\n <span>Back to {mobileBackLabel}</span>\n </button>\n </nav>\n )}\n\n <ul className=\"lsg-header__mobile-list\" role=\"list\">\n {mobileItems.map((item, index) => {\n const hasChildren = Boolean(item.children?.length);\n const isSelected = mobileSelectedLabel\n ? item.label === mobileSelectedLabel\n : isCurrentOrActiveAtLevel(item, activePath, Math.max(0, mobileLevel - 1));\n\n return (\n <li\n key={`${item.href}-mobile-${index}`}\n className={[\n \"lsg-header__mobile-item\",\n hasChildren ? \"lsg-header__mobile-item--has-children\" : \"\",\n isSelected ? \"lsg-header__mobile-item--active\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n <a\n href={item.href}\n className=\"lsg-header__mobile-link\"\n onClick={(event) => {\n if (onMobileItemClick && hasChildren) {\n event.preventDefault();\n onMobileItemClick(item, Math.max(1, mobileLevel || 1));\n }\n }}\n >\n <span>{item.label}</span>\n {hasChildren && <LsgHeaderIcon name=\"chevronRight\" />}\n </a>\n </li>\n );\n })}\n </ul>\n </>\n )}\n </div>\n );\n\n return (\n <>\n <LsgSearchOverlay\n id={SEARCH_OVERLAY_ID}\n isOpen={searchOpen}\n onClose={() => setSearchOpen(false)}\n placeholder={searchPlaceholder}\n />\n <header\n ref={headerRef}\n className={[\n \"lsg-header\",\n `lsg-header--${variant}`,\n size ? `lsg-header--size-${size}` : \"\",\n menuOpen ? \"lsg-header--menu-open\" : \"\",\n `lsg-header--mobile-level-${mobileLevel}`,\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n <div className=\"lsg-header__inner\">\n <div className=\"lsg-logo-decorator\">\n <div className=\"lsg-logo\">\n <LsgLogo {...logo} />\n </div>\n </div>\n\n {variant !== \"mega\" && navItems.length > 0 && (\n <div className=\"lsg-header__nav\">\n <LsgNavigation items={navItems} variant={variant} onItemHover={onNavItemHover} />\n </div>\n )}\n\n {variant === \"mega\" && (\n <div className=\"lsg-header__desktop-menu\">{renderActions(true)}</div>\n )}\n\n {variant !== \"mega\" && (\n <div className=\"lsg-header__desktop-actions\">\n <span className=\"lsg-header__separator\" aria-hidden=\"true\">\n |\n </span>\n {renderActions(false)}\n </div>\n )}\n\n <div className=\"lsg-header__mobile-actions\">\n <HeaderActionButton\n label={searchLabel}\n icon=\"search\"\n controls={SEARCH_OVERLAY_ID}\n onClick={openSearch}\n />\n {languages.length > 0 && (\n <LsgLanguageSwitcher\n currentLanguage={currentLanguage}\n languages={languages}\n label={`Current language: ${currentLanguage}`}\n onLanguageChange={onLanguageChange}\n />\n )}\n <span className=\"lsg-header__separator\" aria-hidden=\"true\">\n |\n </span>\n <button\n type=\"button\"\n className=\"lsg-header__icon-button\"\n aria-label={mobileOpen ? \"Close menu\" : \"Open menu\"}\n aria-expanded={mobileOpen}\n onClick={onMenuToggle}\n data-lsg-menu-trigger\n >\n <LsgHeaderIcon name={mobileOpen ? \"close\" : \"bars\"} />\n </button>\n </div>\n </div>\n\n {variant === \"mega\" && menuOpen && (children || renderMegaPanel())}\n {mobileOpen && renderMobileMenu()}\n </header>\n\n \n </>\n );\n};\n","import React from \"react\";\nimport \"./LsgQuickLinks.scss\";\n\nexport interface LsgQuickLink {\n label: string;\n href: string;\n}\n\nexport interface LsgQuickLinksProps {\n heading?: string;\n links: LsgQuickLink[];\n}\n\nexport const LsgQuickLinks: React.FC<LsgQuickLinksProps> = ({ heading, links }) => {\n return (\n <nav className=\"lsg-quick-links\" aria-label={heading ?? \"Quick links\"}>\n {heading && <p className=\"lsg-quick-links__heading\" aria-hidden=\"true\">{heading}</p>}\n <ul className=\"lsg-quick-links__list\" role=\"list\">\n {links.map((link) => (\n <li key={link.href} className=\"lsg-quick-links__item\">\n <a href={link.href} className=\"lsg-quick-links__link\">\n {link.label}\n </a>\n </li>\n ))}\n </ul>\n </nav>\n );\n};\n","import React from \"react\";\nimport \"./LsgSocialMediaIcons.scss\";\n\nexport type LsgSocialPlatform =\n | \"linkedin\"\n | \"twitter\"\n | \"facebook\"\n | \"instagram\"\n | \"youtube\";\n\nexport interface LsgSocialItem {\n platform: LsgSocialPlatform;\n href: string;\n /** Screen-reader label, e.g. \"Atlas Copco on LinkedIn\" */\n label: string;\n}\n\nexport interface LsgSocialMediaIconsProps {\n items: LsgSocialItem[];\n}\n\nconst platformIcons: Record<LsgSocialPlatform, React.ReactElement> = {\n linkedin: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M20.45 20.45h-3.56v-5.57c0-1.33-.03-3.04-1.85-3.04-1.86 0-2.14 1.45-2.14 2.95v5.66H9.34V9h3.41v1.56h.05c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.45v6.29zM5.34 7.43a2.07 2.07 0 1 1 0-4.14 2.07 2.07 0 0 1 0 4.14zM7.12 20.45H3.55V9h3.57v11.45z\" />\n </svg>\n ),\n twitter: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\" />\n </svg>\n ),\n facebook: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M24 12.073C24 5.405 18.627 0 12 0S0 5.405 0 12.073C0 18.1 4.388 23.094 10.125 24v-8.437H7.078v-3.49h3.047V9.41c0-3.025 1.792-4.697 4.533-4.697 1.312 0 2.686.236 2.686.236v2.97h-1.513c-1.491 0-1.956.93-1.956 1.874v2.25h3.328l-.532 3.49h-2.796V24C19.612 23.094 24 18.1 24 12.073z\" />\n </svg>\n ),\n instagram: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6.406-11.845a1.44 1.44 0 1 0 0 2.881 1.44 1.44 0 0 0 0-2.881z\" />\n </svg>\n ),\n youtube: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z\" />\n </svg>\n ),\n};\n\nexport const LsgSocialMediaIcons: React.FC<LsgSocialMediaIconsProps> = ({ items }) => {\n return (\n <ul className=\"lsg-social-icons\" role=\"list\">\n {items.map((item) => (\n <li key={item.platform} className=\"lsg-social-icons__item\">\n <a\n href={item.href}\n className=\"lsg-social-icons__link\"\n aria-label={item.label}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {platformIcons[item.platform]}\n </a>\n </li>\n ))}\n </ul>\n );\n};\n","import React from \"react\";\nimport \"./LsgFooter.scss\";\nimport { LsgLogo, LsgLogoProps } from \"../LsgLogo\";\n\nexport interface LsgFooterNavItem {\n label: string;\n href: string;\n}\n\nexport interface LsgFooterContact {\n address?: string;\n phone?: string;\n fax?: string;\n email?: string;\n}\n\nexport interface LsgFooterColHeadings {\n contact?: string;\n quickLinks?: string;\n about?: string;\n contactAlt?: string;\n}\n\nexport interface LsgFooterProps {\n variant?: \"simple\" | \"complex\";\n /** 2-row simple variant (brand line top row, cookie+copyright+AI bottom row) */\n simpleTwoRow?: boolean;\n /** Brand line shown in simple 2-row top or complex footer below logo */\n brandLine?: string;\n /** Column layout for complex variant. Default: \"2col\" */\n complexColumns?: \"2col\" | \"3col\";\n /** Show \"This Website Is Translated With AI\" badge */\n showAiBadge?: boolean;\n /** Cookie settings link text (shown in 2-row simple or complex bottom bar) */\n cookieSetting?: string;\n logo?: LsgLogoProps;\n navItems?: LsgFooterNavItem[];\n contact?: LsgFooterContact;\n quickLinks?: LsgFooterNavItem[];\n copyright?: string;\n /** Column headings for complex footer */\n colHeadings?: LsgFooterColHeadings;\n /** Social icon links shown in complex footer */\n socialLinks?: { platform: \"facebook\" | \"twitter\" | \"linkedin\" | \"youtube\" | \"instagram\"; href: string }[];\n /** Where to show social icons in complex variant: \"body\" | \"bottom-bar\". Default: \"body\" */\n socialPosition?: \"body\" | \"bottom-bar\";\n className?: string;\n}\n\nconst PhoneIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path d=\"M15.833 13.483c-.417-.416-1.25-.833-1.875-1.083-.625-.25-1.042-.167-1.458.208l-.834.833c-.208.209-.5.209-.708.042-.625-.5-1.833-1.583-2.583-2.333-.75-.75-1.75-1.875-2.25-2.583-.167-.208-.125-.5.083-.709l.834-.833c.416-.417.5-.833.25-1.458-.25-.625-.667-1.458-1.084-1.875C8.791 3.25 8.208 3 7.583 3c-.416 0-.833.167-1.125.458L5.625 4.292C4.5 5.417 4.708 7.125 5.333 8.833c.625 1.708 2 3.833 3.625 5.458 1.625 1.625 3.75 3 5.458 3.625 1.709.625 3.417.833 4.542-.292l.833-.833c.292-.292.458-.708.458-1.125 0-.625-.25-1.208-.416-1.583z\" fill=\"currentColor\"/>\n </svg>\n);\n\nconst FaxIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path d=\"M16 6h-1V2H5v4H4c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h1v2h10v-2h1c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zM7 4h6v2H7V4zm6 12H7v-4h6v4zm3-5H4V8h12v3z\" fill=\"currentColor\"/>\n </svg>\n);\n\nconst MailIcon = () => (\n <svg width=\"24\" height=\"20\" viewBox=\"0 0 24 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path d=\"M20 0H4C2.9 0 2 .9 2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V2l8 5 8-5v2z\" fill=\"currentColor\"/>\n </svg>\n);\n\nconst LocationIcon = () => (\n <svg width=\"18\" height=\"21\" viewBox=\"0 0 18 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path d=\"M9 0C5.13 0 2 3.13 2 7c0 5.25 7 13 7 13s7-7.75 7-13C16 3.13 12.87 0 9 0zm0 9.5C7.62 9.5 6.5 8.38 6.5 7S7.62 4.5 9 4.5 11.5 5.62 11.5 7 10.38 9.5 9 9.5z\" fill=\"currentColor\"/>\n </svg>\n);\n\nconst AiBadge = () => (\n <span className=\"lsg-footer__ai-badge\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"1.5\"/>\n <path d=\"M2 12h20M12 2a15.3 15.3 0 0 1 0 20M12 2a15.3 15.3 0 0 0 0 20\" stroke=\"currentColor\" strokeWidth=\"1.5\"/>\n </svg>\n This Website Is Translated With AI\n </span>\n);\n\nconst SocialIcon: React.FC<{ platform: string }> = ({ platform }) => {\n const icons: Record<string, React.ReactNode> = {\n facebook: <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\"/></svg>,\n twitter: <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"/></svg>,\n linkedin: <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6zM2 9h4v12H2z\"/><circle cx=\"4\" cy=\"4\" r=\"2\"/></svg>,\n youtube: <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M22.54 6.42a2.78 2.78 0 0 0-1.95-1.96C18.88 4 12 4 12 4s-6.88 0-8.59.46a2.78 2.78 0 0 0-1.95 1.96A29 29 0 0 0 1 12a29 29 0 0 0 .46 5.58A2.78 2.78 0 0 0 3.41 19.6C5.12 20 12 20 12 20s6.88 0 8.59-.4a2.78 2.78 0 0 0 1.95-1.95A29 29 0 0 0 23 12a29 29 0 0 0-.46-5.58zM9.75 15.02V8.98L15.5 12l-5.75 3.02z\"/></svg>,\n instagram:<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><rect x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" ry=\"5\"/><circle cx=\"12\" cy=\"12\" r=\"4\"/><circle cx=\"17.5\" cy=\"6.5\" r=\"0.5\" fill=\"currentColor\"/></svg>,\n };\n return <>{icons[platform] ?? null}</>;\n};\n\nconst SocialIconsRow: React.FC<{ links: NonNullable<LsgFooterProps[\"socialLinks\"]> }> = ({ links }) => (\n <div className=\"lsg-footer__bottom-social\">\n {links.map((l) => (\n <a key={l.platform} href={l.href} aria-label={l.platform} style={{ color: \"inherit\", display: \"inline-flex\", alignItems: \"center\", opacity: 0.8 }}>\n <SocialIcon platform={l.platform} />\n </a>\n ))}\n </div>\n);\n\nexport const LsgFooter: React.FC<LsgFooterProps> = ({\n variant = \"simple\",\n simpleTwoRow = false,\n brandLine = \"Part of Atlas Copco Group\",\n complexColumns = \"2col\",\n showAiBadge = false,\n cookieSetting,\n logo,\n navItems = [],\n contact,\n quickLinks = [],\n copyright,\n colHeadings,\n socialLinks,\n socialPosition = \"body\",\n className = \"\",\n}) => {\n const year = new Date().getFullYear();\n const copyrightText = copyright ?? `© ${year} Brand - Part of Atlas Copco Group`;\n\n // ── Simple footer ──────────────────────────────────────────────────────────\n if (variant === \"simple\") {\n if (simpleTwoRow) {\n return (\n <footer className={`lsg-footer lsg-footer--simple lsg-footer--simple-tworow${className ? ` ${className}` : \"\"}`}>\n <div className=\"lsg-footer__simple-top\">\n <span className=\"lsg-footer__brand-line\">{brandLine}</span>\n {navItems.length > 0 && (\n <nav className=\"lsg-footer__simple-nav\" aria-label=\"Footer navigation\">\n {navItems.map((item, i) => (\n <React.Fragment key={item.href}>\n {i > 0 && <span className=\"lsg-footer__pipe\" aria-hidden=\"true\">|</span>}\n <a href={item.href} className=\"lsg-footer__simple-nav-item\">{item.label}</a>\n </React.Fragment>\n ))}\n </nav>\n )}\n </div>\n <div className=\"lsg-footer__simple-bottom\">\n <div className=\"lsg-footer__simple-bottom-left\">\n {cookieSetting && <a href=\"#\" className=\"lsg-footer__cookie-link\">{cookieSetting}</a>}\n <p className=\"lsg-footer__copyright\">{copyrightText}</p>\n </div>\n {showAiBadge && <AiBadge />}\n </div>\n </footer>\n );\n }\n\n return (\n <footer className={`lsg-footer lsg-footer--simple${className ? ` ${className}` : \"\"}`}>\n <div className=\"lsg-footer__simple-inner\">\n <p className=\"lsg-footer__copyright\">{copyrightText}</p>\n {navItems.length > 0 && (\n <nav className=\"lsg-footer__simple-nav\" aria-label=\"Footer navigation\">\n {navItems.map((item, i) => (\n <React.Fragment key={item.href}>\n {i > 0 && (\n <>\n <span className=\"lsg-footer__pipe\" aria-hidden=\"true\">|</span>\n <hr className=\"lsg-footer__mobile-divider\" aria-hidden=\"true\" />\n </>\n )}\n <a href={item.href} className=\"lsg-footer__simple-nav-item\">{item.label}</a>\n </React.Fragment>\n ))}\n </nav>\n )}\n </div>\n </footer>\n );\n }\n\n // ── Complex footer ─────────────────────────────────────────────────────────\n const is3col = complexColumns === \"3col\";\n const headings = {\n contact: colHeadings?.contact ?? \"CONTACT\",\n quickLinks: colHeadings?.quickLinks ?? (is3col ? \"Quicklinks\" : \"QUICK LINKS\"),\n about: colHeadings?.about ?? \"About brand\",\n contactAlt: colHeadings?.contactAlt ?? \"Contact\",\n };\n\n const bottomBar = (\n <>\n <hr className=\"lsg-footer__bottom-divider\" />\n <div className=\"lsg-footer__bottom\">\n <div className=\"lsg-footer__bottom-left\">\n {cookieSetting && <a href=\"#\" className=\"lsg-footer__cookie-link\">{cookieSetting}</a>}\n <p className=\"lsg-footer__copyright\">{copyrightText}</p>\n {is3col && showAiBadge && <AiBadge />}\n </div>\n {!is3col && showAiBadge && <AiBadge />}\n {socialPosition === \"bottom-bar\" && socialLinks && socialLinks.length > 0 && (\n <SocialIconsRow links={socialLinks} />\n )}\n </div>\n </>\n );\n\n if (is3col) {\n return (\n <footer className={`lsg-footer lsg-footer--complex${className ? ` ${className}` : \"\"}`}>\n <div className=\"lsg-footer__complex-inner\">\n {logo && (\n <div className=\"lsg-footer__logo-col\">\n <LsgLogo {...logo} />\n {brandLine && <span className=\"lsg-footer__brand-line\">{brandLine}</span>}\n </div>\n )}\n <div className=\"lsg-footer__content-cols lsg-footer__content-cols--3col\">\n <div className=\"lsg-footer__about-col\">\n <h3 className=\"lsg-footer__col-heading\">{headings.about}</h3>\n {contact?.address && (\n <div className=\"lsg-footer__address\">\n <LocationIcon />\n <p>{contact.address}</p>\n </div>\n )}\n </div>\n <div className=\"lsg-footer__contact-col\">\n <h3 className=\"lsg-footer__col-heading\">{headings.contactAlt}</h3>\n <div className=\"lsg-footer__contact-items\">\n {contact?.phone && (\n <div className=\"lsg-footer__contact-item\"><PhoneIcon /><span>{contact.phone}</span></div>\n )}\n {contact?.fax && (\n <div className=\"lsg-footer__contact-item\"><FaxIcon /><span>{contact.fax}</span></div>\n )}\n {contact?.email && (\n <div className=\"lsg-footer__contact-item\"><MailIcon /><a href={`mailto:${contact.email}`}>{contact.email}</a></div>\n )}\n </div>\n </div>\n {quickLinks.length > 0 && (\n <div className=\"lsg-footer__quicklinks-col\">\n <h3 className=\"lsg-footer__col-heading\">{headings.quickLinks}</h3>\n <ul className=\"lsg-footer__quicklinks-list\">\n {quickLinks.map((link, i) => (\n <li key={link.href ?? i} className=\"lsg-footer__quicklink-item\">\n <a href={link.href} className=\"lsg-footer__quicklink\">{link.label}</a>\n <hr className=\"lsg-footer__divider\" />\n </li>\n ))}\n </ul>\n {socialPosition === \"body\" && socialLinks && socialLinks.length > 0 && (\n <div className=\"lsg-footer__body-social\"><SocialIconsRow links={socialLinks} /></div>\n )}\n </div>\n )}\n </div>\n </div>\n {bottomBar}\n </footer>\n );\n }\n\n return (\n <footer className={`lsg-footer lsg-footer--complex${className ? ` ${className}` : \"\"}`}>\n <div className=\"lsg-footer__complex-inner\">\n {logo && (\n <div className=\"lsg-footer__logo-col\">\n <LsgLogo {...logo} />\n {brandLine && <span className=\"lsg-footer__brand-line\">{brandLine}</span>}\n </div>\n )}\n <div className=\"lsg-footer__content-cols\">\n {contact && (\n <div className=\"lsg-footer__contact-col\">\n <h3 className=\"lsg-footer__col-heading\">{headings.contact}</h3>\n {contact.address && (\n <div className=\"lsg-footer__address\">\n <LocationIcon />\n <p>{contact.address}</p>\n </div>\n )}\n <hr className=\"lsg-footer__divider\" />\n <div className=\"lsg-footer__contact-items\">\n {contact.phone && (\n <div className=\"lsg-footer__contact-item\"><PhoneIcon /><span>{contact.phone}</span></div>\n )}\n {contact.fax && (\n <div className=\"lsg-footer__contact-item\"><FaxIcon /><span>{contact.fax}</span></div>\n )}\n {contact.email && (\n <div className=\"lsg-footer__contact-item\"><MailIcon /><a href={`mailto:${contact.email}`}>{contact.email}</a></div>\n )}\n </div>\n </div>\n )}\n {quickLinks.length > 0 && (\n <div className=\"lsg-footer__quicklinks-col\">\n <h3 className=\"lsg-footer__col-heading\">{headings.quickLinks}</h3>\n <ul className=\"lsg-footer__quicklinks-list\">\n {quickLinks.map((link, i) => (\n <li key={link.href ?? i} className=\"lsg-footer__quicklink-item\">\n <a href={link.href} className=\"lsg-footer__quicklink\">{link.label}</a>\n <hr className=\"lsg-footer__divider\" />\n </li>\n ))}\n </ul>\n {socialPosition === \"body\" && socialLinks && socialLinks.length > 0 && (\n <div className=\"lsg-footer__body-social\"><SocialIconsRow links={socialLinks} /></div>\n )}\n </div>\n )}\n </div>\n </div>\n {bottomBar}\n </footer>\n );\n};\n","import EmblaCarousel, { EmblaCarouselType } from \"embla-carousel\";\nimport EmblaCarouselFade from \"embla-carousel-fade\";\n\n// ─────────────────────────────────────────────────────────────────────────────\n// LsgHeroController — shared vanilla JS carousel controller\n// ─────────────────────────────────────────────────────────────────────────────\n//\n// Single source of truth for carousel behaviour. Used by:\n// 1. The React LsgHero component (via useEffect + refs)\n// 2. The AEM clientlib initHero function (directly on server-rendered DOM)\n//\n// This means carousel logic is written once and behaves identically in both\n// Storybook and AEM — no React-specific wrappers, no divergence.\n//\n// Usage:\n// const controller = new LsgHeroController(viewportEl, elements, options);\n// // later when unmounting:\n// controller.destroy();\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport type LsgHeroControllerTransition = \"slide\" | \"fade\";\n\nexport interface LsgHeroControllerOptions {\n /** Slide transition style. Defaults to \"slide\". */\n transition?: LsgHeroControllerTransition;\n /** Enable autoplay. Defaults to true. */\n autoplay?: boolean;\n /** Autoplay interval in milliseconds. Defaults to 5000. */\n autoplayInterval?: number;\n}\n\nexport interface LsgHeroControllerElements {\n /** Previous-slide button. */\n prevBtn?: HTMLElement | null;\n /** Next-slide button. */\n nextBtn?: HTMLElement | null;\n /** Scroll-down trigger button. */\n scrollDownBtn?: HTMLElement | null;\n /** Element to scroll into view when scroll-down is triggered. */\n scrollDownTarget?: HTMLElement | null;\n}\n\nexport class LsgHeroController {\n private embla: EmblaCarouselType | null = null;\n private autoplayTimer: ReturnType<typeof setInterval> | null = null;\n private contentObserver: ResizeObserver | null = null;\n private rafId: ReturnType<typeof requestAnimationFrame> | null = null;\n private readonly opts: Required<LsgHeroControllerOptions>;\n private readonly els: LsgHeroControllerElements;\n\n constructor(\n viewport: HTMLElement,\n elements: LsgHeroControllerElements = {},\n options: LsgHeroControllerOptions = {}\n ) {\n this.opts = {\n transition: options.transition ?? \"slide\",\n autoplay: options.autoplay ?? true,\n autoplayInterval: options.autoplayInterval ?? 5000,\n };\n this.els = elements;\n this.mount(viewport);\n }\n\n private mount(viewport: HTMLElement): void {\n this.els.prevBtn?.addEventListener(\"click\", this.scrollPrev);\n this.els.nextBtn?.addEventListener(\"click\", this.scrollNext);\n this.els.scrollDownBtn?.addEventListener(\"click\", this.handleScrollDown);\n\n // First frame lets React's initial paint settle; second guarantees that\n // async-injected stylesheets (e.g. --lsg-hero-axis) have been computed.\n this.rafId = requestAnimationFrame(() => {\n this.rafId = requestAnimationFrame(() => {\n this.rafId = null;\n if (!viewport.isConnected) return;\n\n const section = viewport.closest<HTMLElement>(\"[data-lsg-is='hero']\");\n const axis: \"x\" | \"y\" =\n section && getComputedStyle(section).getPropertyValue(\"--lsg-hero-axis\").trim() === \"y\"\n ? \"y\"\n : \"x\";\n\n const plugins = this.opts.transition === \"fade\" ? [EmblaCarouselFade()] : [];\n this.embla = EmblaCarousel(viewport, { loop: true, axis }, plugins);\n\n if (this.opts.autoplay) {\n this.startAutoplay();\n this.embla.on(\"pointerDown\", this.stopAutoplay);\n this.embla.on(\"pointerUp\", this.startAutoplay);\n }\n\n // Sync the first slide's content-wrapper height to a CSS custom property\n // on the section root so the controls column can match it dynamically.\n const contentWrapper = section?.querySelector<HTMLElement>(\".lsg-hero-card__content-wrapper\");\n if (section && contentWrapper && typeof ResizeObserver !== \"undefined\") {\n const setHeight = (el: Element): void => {\n (section as HTMLElement).style.setProperty(\n \"--lsg-hero-content-height\",\n `${(el as HTMLElement).offsetHeight}px`\n );\n };\n setHeight(contentWrapper);\n this.contentObserver = new ResizeObserver((entries) => {\n setHeight(entries[0].target);\n });\n this.contentObserver.observe(contentWrapper);\n }\n\n // For vertical carousels the section height (100svh) cascades from a\n // useEffect-set data-lsg-theme attribute, which may land one frame after\n // this RAF. Re-measure so Embla has the correct slide dimensions.\n if (axis === \"y\") {\n requestAnimationFrame(() => {\n if (viewport.isConnected) this.embla?.reInit();\n });\n }\n });\n });\n }\n\n readonly scrollPrev = (): void => {\n this.embla?.scrollPrev();\n if (this.opts.autoplay) this.startAutoplay();\n };\n\n readonly scrollNext = (): void => {\n this.embla?.scrollNext();\n if (this.opts.autoplay) this.startAutoplay();\n };\n\n private readonly handleScrollDown = (): void => {\n this.els.scrollDownTarget?.scrollIntoView({ behavior: \"smooth\" });\n };\n\n /** Start the autoplay interval (resets any existing timer). */\n readonly startAutoplay = (): void => {\n this.stopAutoplay();\n this.autoplayTimer = setInterval(this.scrollNext, this.opts.autoplayInterval);\n };\n\n /** Clear the autoplay interval. */\n readonly stopAutoplay = (): void => {\n if (this.autoplayTimer !== null) {\n clearInterval(this.autoplayTimer);\n this.autoplayTimer = null;\n }\n };\n\n /** Direct access to the underlying Embla instance for advanced usage. */\n get emblaApi(): EmblaCarouselType | null {\n return this.embla;\n }\n\n /** Tear down event listeners, autoplay, and the Embla instance. */\n destroy(): void {\n if (this.rafId !== null) {\n cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n this.stopAutoplay();\n this.contentObserver?.disconnect();\n this.contentObserver = null;\n if (this.embla) {\n this.embla.off(\"pointerDown\", this.stopAutoplay);\n this.embla.off(\"pointerUp\", this.startAutoplay);\n this.embla.destroy();\n this.embla = null;\n }\n this.els.prevBtn?.removeEventListener(\"click\", this.scrollPrev);\n this.els.nextBtn?.removeEventListener(\"click\", this.scrollNext);\n this.els.scrollDownBtn?.removeEventListener(\"click\", this.handleScrollDown);\n }\n}\n","import React, { useState } from \"react\";\nimport \"./LsgHeroCard.scss\";\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Types\n// ─────────────────────────────────────────────────────────────────────────────\n\n/** Token names that map to `--lsg-color-*` custom properties. */\nexport type LsgHeroColorToken =\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"light\"\n | \"dark\"\n | \"black\"\n | \"white\";\n\nexport interface LsgHeroCardProps {\n /** DAM/CDN URL for the background image. Used as poster/fallback for video. */\n imageSrc?: string;\n /** Alt text for the image. */\n imageAlt?: string;\n /** DAM/CDN URL for an mp4/webm video asset. */\n videoSrc?: string;\n /** YouTube video ID only (e.g. \"dQw4w9WgXcQ\"). */\n youtubeId?: string;\n /** Vimeo video ID only (e.g. \"148751763\"). */\n vimeoId?: string;\n /**\n * Background colour token for this card. Always tints the content text-box\n * (`lsg-hero-card--bg-{token}`). When the card has NO image/video, it instead\n * fills the whole card as a solid colour (`lsg-hero-card--fill-{token}`) with a\n * transparent content box.\n */\n cardBackground?: LsgHeroColorToken;\n /** Text colour token for this card's content (`lsg-hero-card--color-{token}`). */\n cardColor?: LsgHeroColorToken;\n /**\n * Content slot rendered on top of the media layer inside the white text-box\n * overlay. In AEM this is the parsys (container) inside each hero-card.\n * Accepts any LSG components: Title, Text, Button, etc.\n */\n children?: React.ReactNode;\n /** Index within the parent carousel — used for accessible label. */\n index?: number;\n /** Total slide count from the parent — used for accessible label. */\n total?: number;\n className?: string;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// LsgHeroCard\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const LsgHeroCard: React.FC<LsgHeroCardProps> = ({\n imageSrc,\n imageAlt = \"\",\n videoSrc,\n youtubeId,\n vimeoId,\n cardBackground,\n cardColor,\n children,\n index,\n total,\n className = \"\",\n}) => {\n const [videoReady, setVideoReady] = useState(false);\n\n // Video source priority: YouTube > Vimeo > DAM\n const hasYoutube = Boolean(youtubeId);\n const hasVimeo = !hasYoutube && Boolean(vimeoId);\n const hasDam = !hasYoutube && !hasVimeo && Boolean(videoSrc);\n\n // No image/video → the card renders as a solid colour (fill) instead of a\n // media backdrop; with media, cardBackground tints the content text-box.\n const hasMedia = Boolean(imageSrc || videoSrc || youtubeId || vimeoId);\n\n const youtubeEmbedSrc = youtubeId\n ? `https://www.youtube.com/embed/${youtubeId}?autoplay=1&mute=1&loop=1&controls=0&disablekb=1&fs=0&iv_load_policy=3&modestbranding=1&playlist=${youtubeId}&rel=0`\n : undefined;\n\n const vimeoEmbedSrc = vimeoId\n ? `https://player.vimeo.com/video/${vimeoId}?autoplay=1&loop=1&background=1&muted=1`\n : undefined;\n\n const ariaLabel =\n index !== undefined && total !== undefined\n ? `Slide ${index + 1} of ${total}`\n : undefined;\n\n const articleClasses = [\n \"lsg-hero-card\",\n // Background: tint the content box when there's media; fill the whole card when there isn't.\n cardBackground &&\n (hasMedia\n ? `lsg-hero-card--bg-${cardBackground}`\n : `lsg-hero-card--fill-${cardBackground}`),\n cardColor && `lsg-hero-card--color-${cardColor}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <article className={articleClasses} role=\"listitem\" aria-label={ariaLabel}>\n {/* ── Media layer ──────────────────────────────────────────────────── */}\n <div className=\"lsg-hero-card__media\" aria-hidden=\"true\">\n {imageSrc && (\n // eslint-disable-next-line @next/next/no-img-element\n <img\n className=\"lsg-hero-card__image\"\n src={imageSrc}\n alt={imageAlt}\n loading=\"eager\"\n />\n )}\n\n {hasDam && (\n <video\n className={`lsg-hero-card__video${videoReady ? \" lsg-hero-card__video--ready\" : \"\"}`}\n autoPlay\n muted\n loop\n playsInline\n onCanPlay={() => setVideoReady(true)}\n >\n <source src={videoSrc} />\n </video>\n )}\n\n {hasYoutube && (\n <div className=\"lsg-hero-card__video-embed lsg-hero-card__video-embed--youtube\">\n <iframe\n src={youtubeEmbedSrc}\n title=\"Hero background video\"\n allow=\"autoplay\"\n aria-hidden=\"true\"\n tabIndex={-1}\n />\n </div>\n )}\n\n {hasVimeo && (\n <div className=\"lsg-hero-card__video-embed lsg-hero-card__video-embed--vimeo\">\n <iframe\n src={vimeoEmbedSrc}\n title=\"Hero background video\"\n allow=\"autoplay\"\n aria-hidden=\"true\"\n tabIndex={-1}\n />\n </div>\n )}\n </div>\n\n {/* ── Content slot (text-box overlay) ──────────────────────────────── */}\n <div className=\"lsg-hero-card__content layout-container--medium\">\n <div className=\"lsg-hero-card__content-wrapper\">\n {children}\n </div>\n </div>\n </article>\n );\n};\n","import React, { useCallback, useEffect, useRef } from \"react\";\nimport { LsgHeroController } from \"./LsgHeroController\";\nimport { LsgHeroCard } from \"../LsgHeroCard/LsgHeroCard\";\nimport type { LsgHeroCardProps, LsgHeroColorToken } from \"../LsgHeroCard/LsgHeroCard\";\nimport \"./LsgHero.scss\";\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Types\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport type LsgHeroHeight = \"full\" | \"75vh\";\nexport type LsgHeroTransition = \"slide\" | \"fade\";\n\n/** Colour token type now lives on the card; re-exported here for back-compat. */\nexport type { LsgHeroColorToken };\n\n/**\n * A single hero slide. All media/content props are forwarded directly to\n * LsgHeroCard — see LsgHeroCardProps for full documentation.\n */\nexport type LsgHeroSlide = Omit<LsgHeroCardProps, \"index\" | \"total\">;\n\nexport interface LsgHeroProps {\n slides: LsgHeroSlide[];\n /** Minimum height of the hero. Defaults to \"full\" (100vh). */\n height?: LsgHeroHeight;\n /** Show previous/next arrow controls (only in carousel mode). */\n showArrows?: boolean;\n /** Slide transition. Defaults to \"slide\". */\n transition?: LsgHeroTransition;\n /** Render a scroll-down affordance at the bottom of the hero. */\n enableScrollDown?: boolean;\n /** Label for the scroll-down button. Icon-only when omitted. */\n scrollDownText?: string;\n /** Enable carousel autoplay. Defaults to true. */\n autoplay?: boolean;\n /** Autoplay interval in milliseconds. Defaults to 5000. */\n autoplayInterval?: number;\n className?: string;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// LsgHero\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const LsgHero: React.FC<LsgHeroProps> = ({\n slides = [],\n height = \"full\",\n showArrows = true,\n transition = \"slide\",\n enableScrollDown = false,\n scrollDownText,\n autoplay = true,\n autoplayInterval = 5000,\n className = \"\",\n}) => {\n const isCarousel = slides.length > 1;\n\n // ── Refs ──────────────────────────────────────────────────────────────────\n const sectionRef = useRef<HTMLElement>(null);\n const viewportRef = useRef<HTMLDivElement>(null);\n const prevBtnRef = useRef<HTMLButtonElement>(null);\n const nextBtnRef = useRef<HTMLButtonElement>(null);\n const controllerRef = useRef<LsgHeroController | null>(null);\n\n // ── Controller init (vanilla JS — same logic as AEM clientlib) ────────────\n useEffect(() => {\n if (!viewportRef.current || !isCarousel) return;\n\n controllerRef.current = new LsgHeroController(\n viewportRef.current,\n {\n prevBtn: showArrows ? prevBtnRef.current : undefined,\n nextBtn: showArrows ? nextBtnRef.current : undefined,\n },\n { transition, autoplay, autoplayInterval },\n );\n\n return () => {\n controllerRef.current?.destroy();\n controllerRef.current = null;\n };\n }, [isCarousel, showArrows, transition, autoplay, autoplayInterval]);\n\n // ── Scroll-down ───────────────────────────────────────────────────────────\n const handleScrollDown = useCallback(() => {\n const next = sectionRef.current?.nextElementSibling as HTMLElement | null;\n next?.scrollIntoView({ behavior: \"smooth\" });\n }, []);\n\n // ── Class names ───────────────────────────────────────────────────────────\n const sectionClasses = [\n \"lsg-hero\",\n `lsg-hero--${height}`,\n `lsg-hero--${transition}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n // ── Render ────────────────────────────────────────────────────────────────\n return (\n <section\n ref={sectionRef}\n className={sectionClasses}\n data-lsg-is=\"hero\"\n data-lsg-carousel={String(isCarousel)}\n data-lsg-transition={transition}\n data-lsg-arrows={String(showArrows)}\n >\n {/* Embla viewport */}\n <div className=\"lsg-hero__viewport\" ref={viewportRef}>\n <div className=\"lsg-hero__slides\" role=\"list\">\n {slides.map((slide, index) => (\n <LsgHeroCard\n key={index}\n {...slide}\n index={index}\n total={slides.length}\n />\n ))}\n </div>\n </div>\n\n {/* Carousel controls */}\n {isCarousel && showArrows && (\n <div className=\"lsg-hero__controls-wrap\">\n <nav className=\"lsg-hero__controls\" aria-label=\"Hero navigation\">\n <button\n ref={prevBtnRef}\n className=\"lsg-hero__prev\"\n type=\"button\"\n aria-label=\"Previous slide\"\n >\n <span className=\"lsg-hero__arrow-icon\" aria-hidden=\"true\" />\n </button>\n <button\n ref={nextBtnRef}\n className=\"lsg-hero__next\"\n type=\"button\"\n aria-label=\"Next slide\"\n >\n <span className=\"lsg-hero__arrow-icon\" aria-hidden=\"true\" />\n </button>\n </nav>\n </div>\n )}\n\n {/* Scroll-down affordance */}\n {enableScrollDown && (\n <div className=\"lsg-hero__scroll-down\">\n <button\n className=\"lsg-hero__scroll-down-btn\"\n type=\"button\"\n aria-label={scrollDownText ?? \"Scroll down\"}\n onClick={handleScrollDown}\n >\n {scrollDownText && (\n <span className=\"lsg-hero__scroll-down-text\">{scrollDownText}</span>\n )}\n <span className=\"lsg-hero__scroll-down-icon\" aria-hidden=\"true\" />\n </button>\n </div>\n )}\n </section>\n );\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport \"./LsgTabs.scss\";\n\n// Matches $lsg-tabs-accordion-breakpoint in LsgTabs.scss ($breakpoint-sm - 1px)\n// and MOBILE_MEDIA_QUERY in lsg-clientlib-runtime.ts.\nconst MOBILE_MEDIA_QUERY = \"(max-width: 767px)\";\n\n// Sub-pixel layout rounding when comparing scroll offsets against extents\nconst SCROLL_EPSILON = 1;\n\nconst CHEVRON_SVG = (\n <svg\n className=\"lsg-tabs__tab-icon-svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path\n d=\"M3 6L8 11L13 6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport interface LsgTabsItem {\n id: string;\n title: string;\n content: React.ReactNode;\n}\n\nexport type LsgTabsVariant = \"default\" | \"vertical\";\n\nexport interface LsgTabsProps {\n items: LsgTabsItem[];\n /** Id of the initially selected tab. Defaults to the first item. */\n activeId?: string;\n /** Visual variant. Default: \"default\" */\n variant?: LsgTabsVariant;\n /** Value of aria-label on the tablist. */\n accessibilityLabel?: string;\n className?: string;\n}\n\nexport const LsgTabs: React.FC<LsgTabsProps> = ({\n items,\n activeId,\n variant = \"default\",\n accessibilityLabel,\n className = \"\",\n}) => {\n const [selectedId, setSelectedId] = useState<string>(activeId ?? items[0]?.id ?? \"\");\n // Below the breakpoint the tabs render as a single-open accordion and the open\n // header can be collapsed. Tracked separately from selection so exactly one tab\n // stays selected at every width — resizing back to desktop just reveals it again.\n const [collapsed, setCollapsed] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n // Scroll-arrow state. The arrows themselves are ::before / ::after on the root\n // (see LsgTabs.scss) — these only say whether there is more to reveal.\n const [scrollStart, setScrollStart] = useState(false);\n const [scrollEnd, setScrollEnd] = useState(false);\n\n const tabRefs = useRef<Record<string, HTMLLIElement | null>>({});\n const stripRef = useRef<HTMLOListElement | null>(null);\n\n const isVertical = variant === \"vertical\";\n\n const selectedIndex = Math.max(\n 0,\n items.findIndex((item) => item.id === selectedId)\n );\n\n useEffect(() => {\n const mql = window.matchMedia(MOBILE_MEDIA_QUERY);\n const sync = (): void => setIsMobile(mql.matches);\n sync();\n mql.addEventListener(\"change\", sync);\n return () => mql.removeEventListener(\"change\", sync);\n }, []);\n\n const updateArrows = (): void => {\n const strip = stripRef.current;\n // Below the breakpoint this is an accordion — nothing scrolls, so the arrows\n // must not be offered.\n if (!strip || isMobile) {\n setScrollStart(false);\n setScrollEnd(false);\n return;\n }\n\n const offset = isVertical ? strip.scrollTop : strip.scrollLeft;\n const visible = isVertical ? strip.clientHeight : strip.clientWidth;\n const total = isVertical ? strip.scrollHeight : strip.scrollWidth;\n\n setScrollStart(offset > SCROLL_EPSILON);\n setScrollEnd(offset + visible < total - SCROLL_EPSILON);\n };\n\n useEffect(() => {\n updateArrows();\n }, [isMobile, isVertical, items, selectedIndex]);\n\n useEffect(() => {\n const strip = stripRef.current;\n if (!strip || typeof ResizeObserver === \"undefined\") return;\n // The strip can start overflowing because its container changed, with no\n // viewport resize at all.\n const observer = new ResizeObserver(() => updateArrows());\n observer.observe(strip);\n return () => observer.disconnect();\n }, [isMobile, isVertical]);\n\n useEffect(() => {\n // A late web-font swap widens the labels, growing scrollWidth without changing\n // the strip's own box — so ResizeObserver may never fire. Re-measure once the\n // fonts have settled, otherwise the arrows can be stale on first paint.\n let cancelled = false;\n document.fonts?.ready.then(() => {\n if (!cancelled) updateArrows();\n });\n return () => {\n cancelled = true;\n };\n }, [isMobile, isVertical]);\n\n const scrollStrip = (direction: -1 | 1): void => {\n const strip = stripRef.current;\n if (!strip) return;\n // A step just under one viewport keeps a sliver of context in view\n const visible = isVertical ? strip.clientHeight : strip.clientWidth;\n const step = Math.max(visible * 0.8, 1);\n if (isVertical) {\n strip.scrollTop += direction * step;\n } else {\n strip.scrollLeft += direction * step;\n }\n };\n\n // The arrows are pseudo-elements painted above the strip, so a click on one\n // hit-tests to the root rather than to a tab or panel. Nothing else on the root\n // is clickable, which is what makes this unambiguous.\n const onRootClick = (event: React.MouseEvent<HTMLDivElement>): void => {\n if (event.target !== event.currentTarget) return;\n const strip = stripRef.current;\n if (!strip) return;\n\n const rect = strip.getBoundingClientRect();\n const beforeMidpoint = isVertical\n ? event.clientY < rect.top + rect.height / 2\n : event.clientX < rect.left + rect.width / 2;\n\n scrollStrip(beforeMidpoint ? -1 : 1);\n };\n\n const select = (index: number, moveFocus: boolean): void => {\n const item = items[index];\n if (!item) return;\n setSelectedId(item.id);\n setCollapsed(false);\n const tab = tabRefs.current[item.id];\n // Arrow-key navigation can land on a tab that is scrolled out of the strip\n tab?.scrollIntoView({ block: \"nearest\", inline: \"nearest\" });\n if (moveFocus) tab?.focus();\n };\n\n const press = (index: number): void => {\n if (isMobile && index === selectedIndex) {\n setCollapsed((prev) => !prev);\n return;\n }\n select(index, false);\n };\n\n // Roving tabindex keyboard model for role=\"tab\" — see bootLsgTabs for the AEM twin.\n const onKeyDown = (event: React.KeyboardEvent<HTMLLIElement>, index: number): void => {\n const last = items.length - 1;\n\n switch (event.key) {\n case \"ArrowRight\":\n case \"ArrowDown\":\n event.preventDefault();\n select(selectedIndex === last ? 0 : selectedIndex + 1, true);\n break;\n case \"ArrowLeft\":\n case \"ArrowUp\":\n event.preventDefault();\n select(selectedIndex === 0 ? last : selectedIndex - 1, true);\n break;\n case \"Home\":\n event.preventDefault();\n select(0, true);\n break;\n case \"End\":\n event.preventDefault();\n select(last, true);\n break;\n case \"Enter\":\n case \" \":\n event.preventDefault();\n press(index);\n break;\n default:\n break;\n }\n };\n\n const rootClass = [\n \"lsg-tabs\",\n isVertical ? \"lsg-tabs--vertical\" : \"\",\n scrollStart ? \"lsg-tabs--scroll-start\" : \"\",\n scrollEnd ? \"lsg-tabs--scroll-end\" : \"\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div className={rootClass} onClick={onRootClick}>\n <ol\n ref={stripRef}\n className=\"lsg-tabs__tablist\"\n role=\"tablist\"\n aria-label={accessibilityLabel}\n aria-multiselectable=\"false\"\n onScroll={updateArrows}\n >\n {items.map((item, index) => {\n const isActive = index === selectedIndex;\n return (\n <li\n key={item.id}\n ref={(node) => {\n tabRefs.current[item.id] = node;\n }}\n role=\"tab\"\n id={`lsg-tab-${item.id}`}\n className={`lsg-tabs__tab${isActive ? \" lsg-tabs__tab--active\" : \"\"}`}\n aria-controls={`lsg-tabpanel-${item.id}`}\n aria-selected={isActive}\n // Desktop is a tab strip — aria-selected carries the state there, and\n // the collapsed class has no styling, so aria-expanded would mislead.\n aria-expanded={isMobile ? isActive && !collapsed : undefined}\n tabIndex={isActive ? 0 : -1}\n onClick={() => press(index)}\n onKeyDown={(event) => onKeyDown(event, index)}\n >\n <span className=\"lsg-tabs__tab-label\">{item.title}</span>\n <span className=\"lsg-tabs__tab-icon\" aria-hidden=\"true\">\n {CHEVRON_SVG}\n </span>\n </li>\n );\n })}\n </ol>\n\n {items.map((item, index) => {\n const isActive = index === selectedIndex;\n return (\n <div\n key={item.id}\n id={`lsg-tabpanel-${item.id}`}\n role=\"tabpanel\"\n aria-labelledby={`lsg-tab-${item.id}`}\n tabIndex={0}\n className={[\n \"lsg-tabs__panel\",\n isActive ? \"lsg-tabs__panel--active\" : \"\",\n isActive && collapsed ? \"lsg-tabs__panel--collapsed\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n {item.content}\n </div>\n );\n })}\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldText.scss\";\n\nexport interface LsgFormFieldTextProps {\n id?: string;\n label: string;\n helpText?: string;\n placeholder?: string;\n defaultValue?: string;\n required?: boolean;\n disabled?: boolean;\n /** Shows inline error text and marks the input invalid */\n error?: string;\n autocomplete?: string;\n minLength?: number;\n maxLength?: number;\n name?: string;\n}\n\nexport const LsgFormFieldText: React.FC<LsgFormFieldTextProps> = ({\n id = \"field-text\",\n label,\n helpText,\n placeholder,\n defaultValue = \"\",\n required = false,\n disabled = false,\n error,\n autocomplete,\n minLength,\n maxLength,\n name,\n}) => {\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy = [helpId, error ? errorId : undefined]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--text\">\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <input\n type=\"text\"\n className=\"cmp-vtba-form__input\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n placeholder={placeholder}\n autoComplete={autocomplete}\n minLength={minLength}\n maxLength={maxLength}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n />\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldEmail.scss\";\n\nexport interface LsgFormFieldEmailProps {\n id?: string;\n label: string;\n helpText?: string;\n placeholder?: string;\n defaultValue?: string;\n required?: boolean;\n disabled?: boolean;\n error?: string;\n maxLength?: number;\n name?: string;\n}\n\nexport const LsgFormFieldEmail: React.FC<LsgFormFieldEmailProps> = ({\n id = \"field-email\",\n label,\n helpText,\n placeholder,\n defaultValue = \"\",\n required = false,\n disabled = false,\n error,\n maxLength,\n name,\n}) => {\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy = [helpId, error ? errorId : undefined]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--email\">\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <input\n type=\"email\"\n className=\"cmp-vtba-form__input\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n placeholder={placeholder}\n autoComplete=\"email\"\n maxLength={maxLength}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n />\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import B,{useMemo as We,useRef as qe,useState as Je}from\"react\";var M=[[\"Afghanistan\",\"af\",\"93\"],[\"Albania\",\"al\",\"355\"],[\"Algeria\",\"dz\",\"213\"],[\"Andorra\",\"ad\",\"376\"],[\"Angola\",\"ao\",\"244\"],[\"Antigua and Barbuda\",\"ag\",\"1268\"],[\"Argentina\",\"ar\",\"54\",{default:\"(..) .... ....\",\"/^11/\":\"(..) .... ....\",\"/^15/\":\"(..) ... ....\",\"/^(2|3|4|5)/\":\"(.) .... ....\",\"/^9/\":\"(.) .... .....\"},0],[\"Armenia\",\"am\",\"374\",\".. ......\"],[\"Aruba\",\"aw\",\"297\"],[\"Australia\",\"au\",\"61\",{default:\". .... ....\",\"/^4/\":\"... ... ...\",\"/^5(?!50)/\":\"... ... ...\",\"/^1(3|8)00/\":\".... ... ...\",\"/^13/\":\".. .. ..\",\"/^180/\":\"... ....\"},0,[]],[\"Austria\",\"at\",\"43\"],[\"Azerbaijan\",\"az\",\"994\",\"(..) ... .. ..\"],[\"Bahamas\",\"bs\",\"1242\"],[\"Bahrain\",\"bh\",\"973\",\".... ....\"],[\"Bangladesh\",\"bd\",\"880\"],[\"Barbados\",\"bb\",\"1246\"],[\"Belarus\",\"by\",\"375\",\"(..) ... .. ..\"],[\"Belgium\",\"be\",\"32\",\"... .. .. ..\"],[\"Belize\",\"bz\",\"501\"],[\"Benin\",\"bj\",\"229\"],[\"Bhutan\",\"bt\",\"975\"],[\"Bolivia\",\"bo\",\"591\"],[\"Bosnia and Herzegovina\",\"ba\",\"387\"],[\"Botswana\",\"bw\",\"267\"],[\"Brazil\",\"br\",\"55\",\"(..) .....-....\"],[\"British Indian Ocean Territory\",\"io\",\"246\"],[\"Brunei\",\"bn\",\"673\"],[\"Bulgaria\",\"bg\",\"359\"],[\"Burkina Faso\",\"bf\",\"226\"],[\"Burundi\",\"bi\",\"257\"],[\"Cambodia\",\"kh\",\"855\"],[\"Cameroon\",\"cm\",\"237\"],[\"Canada\",\"ca\",\"1\",\"(...) ...-....\",1,[\"204\",\"226\",\"236\",\"249\",\"250\",\"289\",\"306\",\"343\",\"365\",\"387\",\"403\",\"416\",\"418\",\"431\",\"437\",\"438\",\"450\",\"506\",\"514\",\"519\",\"548\",\"579\",\"581\",\"587\",\"604\",\"613\",\"639\",\"647\",\"672\",\"705\",\"709\",\"742\",\"778\",\"780\",\"782\",\"807\",\"819\",\"825\",\"867\",\"873\",\"902\",\"905\"]],[\"Cape Verde\",\"cv\",\"238\"],[\"Caribbean Netherlands\",\"bq\",\"599\",\"\",1],[\"Cayman Islands\",\"ky\",\"1\",\"... ... ....\",4,[\"345\"]],[\"Central African Republic\",\"cf\",\"236\"],[\"Chad\",\"td\",\"235\"],[\"Chile\",\"cl\",\"56\"],[\"China\",\"cn\",\"86\",\"... .... ....\"],[\"Colombia\",\"co\",\"57\",\"... ... ....\"],[\"Comoros\",\"km\",\"269\"],[\"Congo\",\"cd\",\"243\"],[\"Congo\",\"cg\",\"242\"],[\"Costa Rica\",\"cr\",\"506\",\"....-....\"],[\"C\\xF4te d'Ivoire\",\"ci\",\"225\",\".. .. .. .. ..\"],[\"Croatia\",\"hr\",\"385\"],[\"Cuba\",\"cu\",\"53\"],[\"Cura\\xE7ao\",\"cw\",\"599\",\"\",0],[\"Cyprus\",\"cy\",\"357\",\".. ......\"],[\"Czech Republic\",\"cz\",\"420\",\"... ... ...\"],[\"Denmark\",\"dk\",\"45\",\".. .. .. ..\"],[\"Djibouti\",\"dj\",\"253\",\".. .. ....\"],[\"Dominica\",\"dm\",\"1767\"],[\"Dominican Republic\",\"do\",\"1\",\"(...) ...-....\",2,[\"809\",\"829\",\"849\"]],[\"Ecuador\",\"ec\",\"593\"],[\"Egypt\",\"eg\",\"20\"],[\"El Salvador\",\"sv\",\"503\",\"....-....\"],[\"Equatorial Guinea\",\"gq\",\"240\"],[\"Eritrea\",\"er\",\"291\"],[\"Estonia\",\"ee\",\"372\",\".... ......\"],[\"Ethiopia\",\"et\",\"251\",\".. ... ....\"],[\"Faroe Islands\",\"fo\",\"298\",\".. .. ..\"],[\"Fiji\",\"fj\",\"679\"],[\"Finland\",\"fi\",\"358\",\".. ... .. ..\"],[\"France\",\"fr\",\"33\",\". .. .. .. ..\"],[\"French Guiana\",\"gf\",\"594\",\"... .. .. ..\"],[\"French Polynesia\",\"pf\",\"689\",{\"/^44/\":\".. .. ..\",\"/^80[0-5]/\":\"... .. .. ..\",default:\".. .. .. ..\"}],[\"Gabon\",\"ga\",\"241\"],[\"Gambia\",\"gm\",\"220\"],[\"Georgia\",\"ge\",\"995\"],[\"Germany\",\"de\",\"49\",\"... .........\"],[\"Ghana\",\"gh\",\"233\"],[\"Gibraltar\",\"gi\",\"350\"],[\"Greece\",\"gr\",\"30\"],[\"Greenland\",\"gl\",\"299\",\".. .. ..\"],[\"Grenada\",\"gd\",\"1473\"],[\"Guadeloupe\",\"gp\",\"590\",\"... .. .. ..\",0],[\"Guam\",\"gu\",\"1671\"],[\"Guatemala\",\"gt\",\"502\",\"....-....\"],[\"Guinea\",\"gn\",\"224\"],[\"Guinea-Bissau\",\"gw\",\"245\"],[\"Guyana\",\"gy\",\"592\"],[\"Haiti\",\"ht\",\"509\",\"....-....\"],[\"Honduras\",\"hn\",\"504\"],[\"Hong Kong\",\"hk\",\"852\",\".... ....\"],[\"Hungary\",\"hu\",\"36\"],[\"Iceland\",\"is\",\"354\",\"... ....\"],[\"India\",\"in\",\"91\",\".....-.....\"],[\"Indonesia\",\"id\",\"62\"],[\"Iran\",\"ir\",\"98\",\"... ... ....\"],[\"Iraq\",\"iq\",\"964\"],[\"Ireland\",\"ie\",\"353\",\".. .......\"],[\"Israel\",\"il\",\"972\",\"... ... ....\"],[\"Italy\",\"it\",\"39\",\"... .......\",0],[\"Jamaica\",\"jm\",\"1876\"],[\"Japan\",\"jp\",\"81\",\".. .... ....\"],[\"Jordan\",\"jo\",\"962\"],[\"Kazakhstan\",\"kz\",\"7\",\"... ...-..-..\",0],[\"Kenya\",\"ke\",\"254\"],[\"Kiribati\",\"ki\",\"686\"],[\"Kosovo\",\"xk\",\"383\"],[\"Kuwait\",\"kw\",\"965\",\".... ....\"],[\"Kyrgyzstan\",\"kg\",\"996\",\"... ... ...\"],[\"Laos\",\"la\",\"856\"],[\"Latvia\",\"lv\",\"371\",\".. ... ...\"],[\"Lebanon\",\"lb\",\"961\"],[\"Lesotho\",\"ls\",\"266\"],[\"Liberia\",\"lr\",\"231\"],[\"Libya\",\"ly\",\"218\"],[\"Liechtenstein\",\"li\",\"423\"],[\"Lithuania\",\"lt\",\"370\"],[\"Luxembourg\",\"lu\",\"352\"],[\"Macau\",\"mo\",\"853\"],[\"Macedonia\",\"mk\",\"389\"],[\"Madagascar\",\"mg\",\"261\"],[\"Malawi\",\"mw\",\"265\"],[\"Malaysia\",\"my\",\"60\",\"..-....-....\"],[\"Maldives\",\"mv\",\"960\"],[\"Mali\",\"ml\",\"223\"],[\"Malta\",\"mt\",\"356\"],[\"Marshall Islands\",\"mh\",\"692\"],[\"Martinique\",\"mq\",\"596\",\"... .. .. ..\"],[\"Mauritania\",\"mr\",\"222\"],[\"Mauritius\",\"mu\",\"230\"],[\"Mayotte\",\"yt\",\"262\",\"... .. .. ..\",1,[\"269\",\"639\"]],[\"Mexico\",\"mx\",\"52\",\"... ... ....\",0],[\"Micronesia\",\"fm\",\"691\"],[\"Moldova\",\"md\",\"373\",\"(..) ..-..-..\"],[\"Monaco\",\"mc\",\"377\"],[\"Mongolia\",\"mn\",\"976\"],[\"Montenegro\",\"me\",\"382\"],[\"Morocco\",\"ma\",\"212\"],[\"Mozambique\",\"mz\",\"258\"],[\"Myanmar\",\"mm\",\"95\"],[\"Namibia\",\"na\",\"264\"],[\"Nauru\",\"nr\",\"674\"],[\"Nepal\",\"np\",\"977\"],[\"Netherlands\",\"nl\",\"31\",{\"/^06/\":\"(.). .........\",\"/^6/\":\". .........\",\"/^0(10|13|14|15|20|23|24|26|30|33|35|36|38|40|43|44|45|46|50|53|55|58|70|71|72|73|74|75|76|77|78|79|82|84|85|87|88|91)/\":\"(.).. ........\",\"/^(10|13|14|15|20|23|24|26|30|33|35|36|38|40|43|44|45|46|50|53|55|58|70|71|72|73|74|75|76|77|78|79|82|84|85|87|88|91)/\":\".. ........\",\"/^0/\":\"(.)... .......\",default:\"... .......\"}],[\"New Caledonia\",\"nc\",\"687\"],[\"New Zealand\",\"nz\",\"64\",\"...-...-....\"],[\"Nicaragua\",\"ni\",\"505\"],[\"Niger\",\"ne\",\"227\"],[\"Nigeria\",\"ng\",\"234\"],[\"North Korea\",\"kp\",\"850\"],[\"Norway\",\"no\",\"47\",\"... .. ...\"],[\"Oman\",\"om\",\"968\",\".... ....\"],[\"Pakistan\",\"pk\",\"92\",\"...-.......\"],[\"Palau\",\"pw\",\"680\"],[\"Palestine\",\"ps\",\"970\"],[\"Panama\",\"pa\",\"507\"],[\"Papua New Guinea\",\"pg\",\"675\"],[\"Paraguay\",\"py\",\"595\"],[\"Peru\",\"pe\",\"51\"],[\"Philippines\",\"ph\",\"63\",\"... ... ....\"],[\"Poland\",\"pl\",\"48\",\"...-...-...\"],[\"Portugal\",\"pt\",\"351\"],[\"Puerto Rico\",\"pr\",\"1\",\"(...) ...-....\",3,[\"787\",\"939\"]],[\"Qatar\",\"qa\",\"974\",\".... ....\"],[\"R\\xE9union\",\"re\",\"262\",\"... .. .. ..\",0],[\"Romania\",\"ro\",\"40\"],[\"Russia\",\"ru\",\"7\",\"(...) ...-..-..\",1],[\"Rwanda\",\"rw\",\"250\"],[\"Saint Kitts and Nevis\",\"kn\",\"1869\"],[\"Saint Lucia\",\"lc\",\"1758\"],[\"Saint Pierre & Miquelon\",\"pm\",\"508\",{\"/^708/\":\"... ... ...\",\"/^8/\":\"... .. .. ..\",default:\".. .. ..\"}],[\"Saint Vincent and the Grenadines\",\"vc\",\"1784\"],[\"Samoa\",\"ws\",\"685\"],[\"San Marino\",\"sm\",\"378\"],[\"S\\xE3o Tom\\xE9 and Pr\\xEDncipe\",\"st\",\"239\"],[\"Saudi Arabia\",\"sa\",\"966\",\".. ... ....\"],[\"Senegal\",\"sn\",\"221\"],[\"Serbia\",\"rs\",\"381\"],[\"Seychelles\",\"sc\",\"248\"],[\"Sierra Leone\",\"sl\",\"232\"],[\"Singapore\",\"sg\",\"65\",\"....-....\"],[\"Slovakia\",\"sk\",\"421\"],[\"Slovenia\",\"si\",\"386\"],[\"Solomon Islands\",\"sb\",\"677\"],[\"Somalia\",\"so\",\"252\"],[\"South Africa\",\"za\",\"27\"],[\"South Korea\",\"kr\",\"82\",\"... .... ....\"],[\"South Sudan\",\"ss\",\"211\"],[\"Spain\",\"es\",\"34\",\"... ... ...\"],[\"Sri Lanka\",\"lk\",\"94\"],[\"Sudan\",\"sd\",\"249\"],[\"Suriname\",\"sr\",\"597\"],[\"Swaziland\",\"sz\",\"268\"],[\"Sweden\",\"se\",\"46\",\"... ... ...\"],[\"Switzerland\",\"ch\",\"41\",\".. ... .. ..\"],[\"Syria\",\"sy\",\"963\"],[\"Taiwan\",\"tw\",\"886\"],[\"Tajikistan\",\"tj\",\"992\"],[\"Tanzania\",\"tz\",\"255\"],[\"Thailand\",\"th\",\"66\"],[\"Timor-Leste\",\"tl\",\"670\"],[\"Togo\",\"tg\",\"228\"],[\"Tonga\",\"to\",\"676\"],[\"Trinidad and Tobago\",\"tt\",\"1868\"],[\"Tunisia\",\"tn\",\"216\"],[\"Turkey\",\"tr\",\"90\",\"... ... .. ..\"],[\"Turkmenistan\",\"tm\",\"993\"],[\"Tuvalu\",\"tv\",\"688\"],[\"Uganda\",\"ug\",\"256\"],[\"Ukraine\",\"ua\",\"380\",\"(..) ... .. ..\"],[\"United Arab Emirates\",\"ae\",\"971\",{default:\".. ... ....\",\"/^5[024568]/\":\".. ... ....\",\"/^[234679]/\":\". ... ....\"}],[\"United Kingdom\",\"gb\",\"44\",\".... ......\"],[\"United States\",\"us\",\"1\",\"(...) ...-....\",0],[\"Uruguay\",\"uy\",\"598\"],[\"Uzbekistan\",\"uz\",\"998\",\".. ... .. ..\"],[\"Vanuatu\",\"vu\",\"678\"],[\"Vatican City\",\"va\",\"39\",\".. .... ....\",1],[\"Venezuela\",\"ve\",\"58\"],[\"Vietnam\",\"vn\",\"84\"],[\"Wallis & Futuna\",\"wf\",\"681\",\".. .. ..\"],[\"Yemen\",\"ye\",\"967\"],[\"Zambia\",\"zm\",\"260\"],[\"Zimbabwe\",\"zw\",\"263\"]];var Ne=\"react-international-phone-\",de=(...t)=>t.filter(e=>!!e).join(\" \").trim(),Me=(...t)=>de(...t).split(\" \").map(e=>`${Ne}${e}`).join(\" \"),S=({addPrefix:t,rawClassNames:e})=>de(Me(...t),...e);var ce=({value:t,mask:e,maskSymbol:n,offset:s=0,trimNonMaskCharsLeftover:r=!1,allowMaskOverflow:a=!1})=>{if(t.length<s)return t;let p=t.slice(0,s),i=t.slice(s),o=e.split(\"\").filter(d=>d===n).length,u=i.slice(0,o),l=a?i.slice(o):\"\",m=p,y=0;for(let d of e.split(\"\")){if(y>=u.length){if(!r&&d!==n){m+=d;continue}break}d===n?(m+=u[y],y+=1):m+=d}return m+l};var O=t=>t?/^\\d+$/.test(t):!1;var V=t=>t.replace(/\\D/g,\"\");var pe=(t,e)=>{let n=t.style.display;n!==\"block\"&&(t.style.display=\"block\");let s=t.getBoundingClientRect(),r=e.getBoundingClientRect(),a=r.top-s.top,p=s.bottom-r.bottom;a>=0&&p>=0||(Math.abs(a)<Math.abs(p)?t.scrollTop+=a:t.scrollTop-=p),t.style.display=n};var Re=t=>{let{name:e,iso2:n,dialCode:s,format:r,priority:a,areaCodes:p}=t,i=[e,n,s,r,a,p];for(let o=0;o<i.length;o+=1){if(o===0)continue;let u=i[o-1],l=i[o];if(u===void 0&&l!==void 0){let m=JSON.stringify(i,(y,d)=>d===void 0?\"__undefined\":d).replace(/\"__undefined\"/g,\"undefined\");throw new Error(`[react-international-phone] invalid country values passed to buildCountryData. Check ${u} in: ${m}`)}}return i.filter(o=>o!==void 0)};import{useCallback as re,useEffect as xe,useMemo as $e,useRef as Fe,useState as ze}from\"react\";var me=()=>typeof window>\"u\"?!1:window.navigator.userAgent.toLowerCase().includes(\"macintosh\");var fe=({phone:t,dialCode:e,prefix:n=\"+\",charAfterDialCode:s=\" \"})=>{if(!t||!e)return t;let r=t;return r.startsWith(n)&&(r=r.replace(n,\"\")),r.startsWith(e)?(r=r.replace(e,\"\"),r.startsWith(s)&&(r=r.replace(s,\"\")),r):t};var Ce=(t,e)=>{let n=e.disableDialCodeAndPrefix?!1:e.forceDialCode,s=e.disableDialCodeAndPrefix?!1:e.insertDialCodeOnEmpty,r=t,a=u=>e.trimNonDigitsEnd?u.trim():u;if(!r)return s&&!r.length||n?a(`${e.prefix}${e.dialCode}${e.charAfterDialCode}`):a(r);if(r=V(r),r===e.dialCode&&!e.disableDialCodeAndPrefix)return a(`${e.prefix}${e.dialCode}${e.charAfterDialCode}`);if(e.dialCode.startsWith(r)&&!e.disableDialCodeAndPrefix)return a(n?`${e.prefix}${e.dialCode}${e.charAfterDialCode}`:`${e.prefix}${r}`);if(!r.startsWith(e.dialCode)&&!e.disableDialCodeAndPrefix){if(n)return a(`${e.prefix}${e.dialCode}${e.charAfterDialCode}`);if(r.length<e.dialCode.length)return a(`${e.prefix}${r}`)}let p=()=>{let u=e.dialCode.length,l=r.slice(0,u),m=r.slice(u);return{phoneLeftSide:l,phoneRightSide:m}},{phoneLeftSide:i,phoneRightSide:o}=p();return i=`${e.prefix}${i}${e.charAfterDialCode}`,o=ce({value:o,mask:e.mask,maskSymbol:e.maskChar,trimNonMaskCharsLeftover:e.trimNonDigitsEnd||e.disableDialCodeAndPrefix&&o.length===0,allowMaskOverflow:e.allowMaskOverflow}),e.disableDialCodeAndPrefix&&(i=\"\"),a(`${i}${o}`)};var he=({phoneBeforeInput:t,phoneAfterInput:e,phoneAfterFormatted:n,cursorPositionAfterInput:s,leftOffset:r=0,deletion:a})=>{if(s<r)return r;if(!t)return n.length;let p=null;for(let l=s-1;l>=0;l-=1)if(O(e[l])){p=l;break}if(p===null){for(let l=0;l<e.length;l+=1)if(O(n[l]))return l;return e.length}let i=0;for(let l=0;l<p;l+=1)O(e[l])&&(i+=1);let o=0,u=0;for(let l=0;l<n.length&&(o+=1,O(n[l])&&(u+=1),!(u>=i+1));l+=1);if(a!==\"backward\")for(;!O(n[o])&&o<n.length;)o+=1;return o};var G=({phone:t,prefix:e})=>t?`${e}${V(t)}`:\"\";function W({value:t,country:e,insertDialCodeOnEmpty:n,trimNonDigitsEnd:s,countries:r,prefix:a,charAfterDialCode:p,forceDialCode:i,disableDialCodeAndPrefix:o,defaultMask:u,countryGuessingEnabled:l,disableFormatting:m,allowMaskOverflow:y}){let d=t;o&&(d=d.startsWith(`${a}`)?d:`${a}${e.dialCode}${d}`);let w=l?ee({phone:d,countries:r,currentCountryIso2:e?.iso2}):void 0,f=w?.country??e,v=Ce(d,{prefix:a,mask:Y({phone:d,country:f,defaultMask:u,disableFormatting:m}),maskChar:J,dialCode:f.dialCode,trimNonDigitsEnd:s,charAfterDialCode:p,forceDialCode:i,insertDialCodeOnEmpty:n,disableDialCodeAndPrefix:o,allowMaskOverflow:y}),g=l&&!w?.fullDialCodeMatch?e:f;return{phone:G({phone:o?`${g.dialCode}${v}`:v,prefix:a}),inputValue:v,country:g}}var _e=t=>{if(t?.toLocaleLowerCase().includes(\"delete\")??!1)return t?.toLocaleLowerCase().includes(\"forward\")?\"forward\":\"backward\"},ye=(t,{country:e,insertDialCodeOnEmpty:n,phoneBeforeInput:s,prefix:r,charAfterDialCode:a,forceDialCode:p,disableDialCodeAndPrefix:i,countryGuessingEnabled:o,defaultMask:u,disableFormatting:l,countries:m,allowMaskOverflow:y})=>{let d=t.nativeEvent,w=d.inputType,f=_e(w),v=!!w?.startsWith(\"insertFrom\"),g=w===\"insertText\",D=d?.data||void 0,I=t.target.value,_=t.target.selectionStart??0;if(w?.includes(\"history\"))return{inputValue:s,phone:G({phone:s,prefix:r}),cursorPosition:s.length,country:e};if(g&&!O(D)&&I!==r)return{inputValue:s,phone:G({phone:i?`${e.dialCode}${s}`:s,prefix:r}),cursorPosition:_-(D?.length??0),country:e};if(p&&!I.startsWith(`${r}${e.dialCode}`)&&!v){let b=I?s:`${r}${e.dialCode}${a}`;return{inputValue:b,phone:G({phone:b,prefix:r}),cursorPosition:r.length+e.dialCode.length+a.length,country:e}}let{phone:c,inputValue:C,country:h}=W({value:I,country:e,trimNonDigitsEnd:f===\"backward\",insertDialCodeOnEmpty:n,countryGuessingEnabled:o,countries:m,prefix:r,charAfterDialCode:a,forceDialCode:p,disableDialCodeAndPrefix:i,disableFormatting:l,defaultMask:u,allowMaskOverflow:y}),P=he({cursorPositionAfterInput:_,phoneBeforeInput:s,phoneAfterInput:I,phoneAfterFormatted:C,leftOffset:p?r.length+e.dialCode.length+a.length:0,deletion:f});return{phone:c,inputValue:C,cursorPosition:P,country:h}};import{useCallback as te,useRef as ve,useState as Ee}from\"react\";var ge=(t,e)=>{let n=Object.keys(t),s=Object.keys(e);if(n.length!==s.length)return!1;for(let r of n)if(t[r]!==e[r])return!1;return!0};import{useCallback as Te,useMemo as Ae,useRef as be}from\"react\";var we=()=>{let t=be(),e=be(Date.now()),n=Te(()=>{let s=Date.now(),r=t.current?s-e.current:void 0;return t.current=e.current,e.current=s,r},[]);return Ae(()=>({check:n}),[n])};var Le={size:20,overrideLastItemDebounceMS:-1};function Pe(t,e){let{size:n,overrideLastItemDebounceMS:s,onChange:r}={...Le,...e},[a,p]=Ee(t),i=ve([a]),o=ve(0),u=we(),l=te((d,w)=>{let f=i.current[o.current];if(d===f||typeof d==\"object\"&&typeof f==\"object\"&&ge(d,f))return;let v=s>0,g=u.check(),E=v&&g!==void 0?g>s:!0;if(w?.overrideLastItem!==void 0?w.overrideLastItem:!E)i.current=[...i.current.slice(0,o.current),d];else{let I=i.current.length>=n;i.current=[...i.current.slice(I?1:0,o.current+1),d],I||(o.current+=1)}p(d),r?.(d)},[r,s,n,u]),m=te(()=>{if(o.current<=0)return{success:!1};let d=i.current[o.current-1];return p(d),o.current-=1,r?.(d),{success:!0,value:d}},[r]),y=te(()=>{if(o.current+1>=i.current.length)return{success:!1};let d=i.current[o.current+1];return p(d),o.current+=1,r?.(d),{success:!0,value:d}},[r]);return[a,l,m,y]}var J=\".\",R={defaultCountry:\"us\",value:\"\",prefix:\"+\",defaultMask:\"............\",charAfterDialCode:\" \",historySaveDebounceMS:200,disableCountryGuess:!1,disableDialCodePrefill:!1,forceDialCode:!1,disableDialCodeAndPrefix:!1,disableFormatting:!1,allowMaskOverflow:!1,countries:M,preferredCountries:[]},oe=({defaultCountry:t=R.defaultCountry,value:e=R.value,countries:n=R.countries,prefix:s=R.prefix,defaultMask:r=R.defaultMask,charAfterDialCode:a=R.charAfterDialCode,historySaveDebounceMS:p=R.historySaveDebounceMS,disableCountryGuess:i=R.disableCountryGuess,disableDialCodePrefill:o=R.disableDialCodePrefill,forceDialCode:u=R.forceDialCode,disableDialCodeAndPrefix:l=R.disableDialCodeAndPrefix,disableFormatting:m=R.disableFormatting,allowMaskOverflow:y=R.allowMaskOverflow,onChange:d,inputRef:w})=>{let g={countries:n,prefix:s,charAfterDialCode:a,forceDialCode:l?!1:u,disableDialCodeAndPrefix:l,defaultMask:r,countryGuessingEnabled:!i,disableFormatting:m,allowMaskOverflow:y},E=Fe(null),D=w||E,I=x=>{Promise.resolve().then(()=>{typeof window>\"u\"||D.current!==document?.activeElement||D.current?.setSelectionRange(x,x)})},_=re(x=>z({value:x,field:\"iso2\",countries:n}),[n]),c=re(({inputValue:x,phone:T,country:k})=>{if(!d)return;let F=_(k);d({phone:T,inputValue:x,country:F})},[_,d]),[{phone:C,inputValue:h,country:P},b,L,$]=Pe(()=>{let x=z({value:t,field:\"iso2\",countries:n});x||console.error(`[react-international-phone]: can not find a country with \"${t}\" iso2 code`);let T=x||z({value:\"us\",field:\"iso2\",countries:n}),{phone:k,inputValue:F,country:U}=W({value:e,country:T,insertDialCodeOnEmpty:!o,...g});return I(F.length),{phone:k,inputValue:F,country:U.iso2}},{overrideLastItemDebounceMS:p,onChange:c}),A=$e(()=>_(P),[P,_]);xe(()=>{let x=D.current;if(!x)return;let T=k=>{if(!k.key)return;let F=k.ctrlKey,U=k.metaKey,Ie=k.shiftKey;if(k.key.toLowerCase()===\"z\"){if(me()){if(!U)return}else if(!F)return;Ie?$():L()}};return x.addEventListener(\"keydown\",T),()=>{x.removeEventListener(\"keydown\",T)}},[D,L,$]);let K=x=>{x.preventDefault();let{phone:T,inputValue:k,country:F,cursorPosition:U}=ye(x,{country:A,phoneBeforeInput:h,insertDialCodeOnEmpty:!1,...g});return b({inputValue:k,phone:T,country:F.iso2}),I(U),e},Q=re((x,T={focusOnInput:!1})=>{let k=z({value:x,field:\"iso2\",countries:n});if(!k){console.error(`[react-international-phone]: can not find a country with \"${x}\" iso2 code`);return}let F=l?\"\":`${s}${k.dialCode}${a}`;b({inputValue:F,phone:`${s}${k.dialCode}`,country:k.iso2}),T.focusOnInput&&Promise.resolve().then(()=>{D.current?.focus()})},[n,l,s,a,b,D]),[X,j]=ze(!1);return xe(()=>{if(!X){j(!0),e!==C&&d?.({inputValue:h,phone:C,country:A});return}if(e===C)return;let{phone:x,inputValue:T,country:k}=W({value:e,country:A,insertDialCodeOnEmpty:!o,...g});b({phone:x,inputValue:T,country:k.iso2})},[e]),{phone:C,inputValue:h,country:A,setCountry:Q,handlePhoneValueChange:K,inputRef:D}};var Y=({phone:t,country:e,defaultMask:n=\"............\",disableFormatting:s=!1})=>{let r=e.format,a=i=>s?i.replace(new RegExp(`[^${J}]`,\"g\"),\"\"):i;if(!r)return a(n);if(typeof r==\"string\")return a(r);if(!r.default)return console.error(`[react-international-phone]: default mask for ${e.iso2} is not provided`),a(n);let p=Object.keys(r).find(i=>{if(i===\"default\")return!1;if(!(i.charAt(0)===\"/\"&&i.charAt(i.length-1)===\"/\"))return console.error(`[react-international-phone]: format regex \"${i}\" for ${e.iso2} is not valid`),!1;let u=new RegExp(i.substring(1,i.length-1)),l=t.replace(e.dialCode,\"\");return u.test(V(l))});return a(p?r[p]:r.default)};var N=t=>{let[e,n,s,r,a,p]=t;return{name:e,iso2:n,dialCode:s,format:r,priority:a,areaCodes:p}};var Oe=t=>`Field \"${t}\" is not supported`,z=({field:t,value:e,countries:n=M})=>{if([\"priority\"].includes(t))throw new Error(Oe(t));let s=n.find(r=>{let a=N(r);return e===a[t]});if(s)return N(s)};var ee=({phone:t,countries:e=M,currentCountryIso2:n})=>{let s={country:void 0,fullDialCodeMatch:!1};if(!t)return s;let r=V(t);if(!r)return s;let a=s,p=({country:i,fullDialCodeMatch:o})=>{let u=i.dialCode===a.country?.dialCode,l=(i.priority??0)<(a.country?.priority??0);(!u||l)&&(a={country:i,fullDialCodeMatch:o})};for(let i of e){let o=N(i),{dialCode:u,areaCodes:l}=o;if(r.startsWith(u)){let m=a.country?Number(u)>=Number(a.country.dialCode):!0;if(l){let y=r.substring(u.length);for(let d of l)if(y.startsWith(d))return{country:o,fullDialCodeMatch:!0}}(m||u===r||!a.fullDialCodeMatch)&&p({country:o,fullDialCodeMatch:!0})}a.fullDialCodeMatch||r.length<u.length&&u.startsWith(r)&&(!a.country||Number(u)<=Number(a.country.dialCode))&&p({country:o,fullDialCodeMatch:!1})}if(n){let i=z({value:n,field:\"iso2\",countries:e});if(!i)return a;let u=i?(m=>{if(!m?.areaCodes)return!1;let y=r.substring(m.dialCode.length);return m.areaCodes.some(d=>d.startsWith(y))})(i):!1;!!a&&a.country?.dialCode===i.dialCode&&a.country!==i&&a.fullDialCodeMatch&&(!i.areaCodes||u)&&(a={country:i,fullDialCodeMatch:!0})}return a};import Se from\"react\";var Ve=(t,e)=>{let n=parseInt(t,16);return Number(n+e).toString(16)},He=\"abcdefghijklmnopqrstuvwxyz\",je=\"1f1e6\",De=He.split(\"\").reduce((t,e,n)=>({...t,[e]:Ve(je,n)}),{}),Be=t=>[De[t[0]],De[t[1]]].join(\"-\"),q=({iso2:t,size:e,src:n,protocol:s=\"https\",disableLazyLoading:r,className:a,style:p,...i})=>{if(!t)return Se.createElement(\"img\",{className:S({addPrefix:[\"flag-emoji\"],rawClassNames:[a]}),width:e,height:e,...i});let o=()=>{if(n)return n;let u=Be(t);return`${s}://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/${u}.svg`};return Se.createElement(\"img\",{className:S({addPrefix:[\"flag-emoji\"],rawClassNames:[a]}),src:o(),width:e,height:e,draggable:!1,\"data-country\":t,loading:r?void 0:\"lazy\",style:{width:e,height:e,...p},alt:\"\",...i})};import H,{useCallback as ne,useEffect as ae,useMemo as Ge,useRef as ie,useState as Ke}from\"react\";var Ue=1e3,se=({show:t,dialCodePrefix:e=\"+\",selectedCountry:n,countries:s=M,preferredCountries:r=[],flags:a,onSelect:p,onClose:i,...o})=>{let u=ie(null),l=ie(),m=Ge(()=>{if(!r||!r.length)return s;let c=[],C=[...s];for(let h of r){let P=C.findIndex(b=>N(b).iso2===h);if(P!==-1){let b=C.splice(P,1)[0];c.push(b)}}return c.concat(C)},[s,r]),y=ie({updatedAt:void 0,value:\"\"}),d=c=>{let C=y.current.updatedAt&&new Date().getTime()-y.current.updatedAt.getTime()>Ue;y.current={value:C?c:`${y.current.value}${c}`,updatedAt:new Date};let h=m.findIndex(P=>N(P).name.toLowerCase().startsWith(y.current.value));h!==-1&&v(h)},w=ne(c=>m.findIndex(C=>N(C).iso2===c),[m]),[f,v]=Ke(w(n)),g=()=>{l.current!==n&&v(w(n))},E=ne(c=>{v(w(c.iso2)),p?.(c)},[p,w]),D=c=>{let C=m.length-1,h=P=>c===\"prev\"?P-1:c===\"next\"?P+1:c===\"last\"?C:0;v(P=>{let b=h(P);return b<0?0:b>C?C:b})},I=c=>{if(c.stopPropagation(),c.key===\"Enter\"){c.preventDefault();let C=N(m[f]);E(C);return}if(c.key===\"Escape\"){i?.();return}if(c.key===\"ArrowUp\"){c.preventDefault(),D(\"prev\");return}if(c.key===\"ArrowDown\"){c.preventDefault(),D(\"next\");return}if(c.key===\"PageUp\"){c.preventDefault(),D(\"first\");return}if(c.key===\"PageDown\"){c.preventDefault(),D(\"last\");return}c.key===\" \"&&c.preventDefault(),c.key.length===1&&!c.altKey&&!c.ctrlKey&&!c.metaKey&&d(c.key.toLocaleLowerCase())},_=ne(()=>{if(!u.current||f===void 0)return;let c=N(m[f]).iso2;if(c===l.current)return;let C=u.current.querySelector(`[data-country=\"${c}\"]`);C&&(pe(u.current,C),l.current=c)},[f,m]);return ae(()=>{_()},[f,_]),ae(()=>{u.current&&(t?u.current.focus():g())},[t]),ae(()=>{g()},[n]),H.createElement(\"ul\",{ref:u,role:\"listbox\",className:S({addPrefix:[\"country-selector-dropdown\"],rawClassNames:[o.className]}),style:{display:t?\"block\":\"none\",...o.style},onKeyDown:I,onBlur:i,tabIndex:-1,\"aria-activedescendant\":`react-international-phone__${N(m[f]).iso2}-option`},m.map((c,C)=>{let h=N(c),P=h.iso2===n,b=C===f,L=r.includes(h.iso2),$=C===r.length-1,A=a?.find(K=>K.iso2===h.iso2);return H.createElement(H.Fragment,{key:h.iso2},H.createElement(\"li\",{\"data-country\":h.iso2,role:\"option\",\"aria-selected\":P,\"aria-label\":`${h.name} ${e}${h.dialCode}`,id:`react-international-phone__${h.iso2}-option`,className:S({addPrefix:[\"country-selector-dropdown__list-item\",L&&\"country-selector-dropdown__list-item--preferred\",P&&\"country-selector-dropdown__list-item--selected\",b&&\"country-selector-dropdown__list-item--focused\"],rawClassNames:[o.listItemClassName,L&&o.listItemPreferredClassName,P&&o.listItemSelectedClassName,b&&o.listItemFocusedClassName]}),onClick:()=>E(h),style:o.listItemStyle,title:h.name},H.createElement(q,{iso2:h.iso2,src:A?.src,className:S({addPrefix:[\"country-selector-dropdown__list-item-flag-emoji\"],rawClassNames:[o.listItemFlagClassName]}),style:o.listItemFlagStyle}),H.createElement(\"span\",{className:S({addPrefix:[\"country-selector-dropdown__list-item-country-name\"],rawClassNames:[o.listItemCountryNameClassName]}),style:o.listItemCountryNameStyle},h.name),H.createElement(\"span\",{className:S({addPrefix:[\"country-selector-dropdown__list-item-dial-code\"],rawClassNames:[o.listItemDialCodeClassName]}),style:o.listItemDialCodeStyle},e,h.dialCode)),$?H.createElement(\"hr\",{className:S({addPrefix:[\"country-selector-dropdown__preferred-list-divider\"],rawClassNames:[o.preferredListDividerClassName]}),style:o.preferredListDividerStyle}):null)}))};var le=B.memo(({selectedCountry:t,onSelect:e,disabled:n,hideDropdown:s,countries:r=M,preferredCountries:a=[],flags:p,renderButtonWrapper:i,...o})=>{let[u,l]=Je(!1),m=We(()=>{if(t)return z({value:t,field:\"iso2\",countries:r})},[r,t]),y=qe(null),d=f=>{f.key&&[\"ArrowUp\",\"ArrowDown\"].includes(f.key)&&(f.preventDefault(),l(!0))},w=()=>{let f={title:m?.name,onClick:()=>l(g=>!g),onMouseDown:g=>g.preventDefault(),onKeyDown:d,disabled:s||n,role:\"combobox\",\"aria-label\":\"Country selector\",\"aria-haspopup\":\"listbox\",\"aria-expanded\":u},v=B.createElement(\"div\",{className:S({addPrefix:[\"country-selector-button__button-content\"],rawClassNames:[o.buttonContentWrapperClassName]}),style:o.buttonContentWrapperStyle},B.createElement(q,{iso2:t,src:p?.find(g=>g.iso2===t)?.src,className:S({addPrefix:[\"country-selector-button__flag-emoji\",n&&\"country-selector-button__flag-emoji--disabled\"],rawClassNames:[o.flagClassName]}),style:{visibility:t?\"visible\":\"hidden\",...o.flagStyle}}),!s&&B.createElement(\"div\",{className:S({addPrefix:[\"country-selector-button__dropdown-arrow\",n&&\"country-selector-button__dropdown-arrow--disabled\",u&&\"country-selector-button__dropdown-arrow--active\"],rawClassNames:[o.dropdownArrowClassName]}),style:o.dropdownArrowStyle}));return i?i({children:v,rootProps:f}):B.createElement(\"button\",{...f,type:\"button\",className:S({addPrefix:[\"country-selector-button\",u&&\"country-selector-button--active\",n&&\"country-selector-button--disabled\",s&&\"country-selector-button--hide-dropdown\"],rawClassNames:[o.buttonClassName]}),\"data-country\":t,style:o.buttonStyle},v)};return B.createElement(\"div\",{className:S({addPrefix:[\"country-selector\"],rawClassNames:[o.className]}),style:o.style,ref:y},w(),B.createElement(se,{show:u,countries:r,preferredCountries:a,flags:p,onSelect:f=>{l(!1),e?.(f)},selectedCountry:t,onClose:()=>{l(!1)},...o.dropdownStyleProps}))});import Ze from\"react\";var ue=({dialCode:t,prefix:e,disabled:n,style:s,className:r})=>Ze.createElement(\"div\",{className:S({addPrefix:[\"dial-code-preview\",n&&\"dial-code-preview--disabled\"],rawClassNames:[r]}),style:s},`${e}${t}`);import Z,{forwardRef as Qe,useCallback as ke,useImperativeHandle as Xe}from\"react\";var Ye=Qe(({value:t,onChange:e,countries:n=M,preferredCountries:s,hideDropdown:r,showDisabledDialCodeAndPrefix:a,disableFocusAfterCountrySelect:p,flags:i,style:o,className:u,inputStyle:l,inputClassName:m,countrySelectorStyleProps:y,dialCodePreviewStyleProps:d,inputProps:w,placeholder:f,disabled:v,name:g,onFocus:E,onBlur:D,required:I,autoFocus:_,...c},C)=>{let h=ke(j=>{e?.(j.phone,{country:j.country,inputValue:j.inputValue})},[e]),{phone:P,inputValue:b,inputRef:L,country:$,setCountry:A,handlePhoneValueChange:K}=oe({value:t,countries:n,...c,onChange:h}),Q=c.disableDialCodeAndPrefix&&a&&$?.dialCode,X=ke(j=>{A(j.iso2,{focusOnInput:!p})},[A,p]);return Xe(C,()=>L.current?Object.assign(L.current,{setCountry:A,state:{phone:P,inputValue:b,country:$}}):null,[L,A,P,b,$]),Z.createElement(\"div\",{ref:C,className:S({addPrefix:[\"input-container\"],rawClassNames:[u]}),style:o},Z.createElement(le,{onSelect:X,flags:i,selectedCountry:$?.iso2,countries:n,preferredCountries:s,disabled:v,hideDropdown:r,...y}),Q&&Z.createElement(ue,{dialCode:$.dialCode,prefix:c.prefix??\"+\",disabled:v,...d}),Z.createElement(\"input\",{onChange:K,value:b,type:\"tel\",ref:L,className:S({addPrefix:[\"input\",v&&\"input--disabled\"],rawClassNames:[m]}),placeholder:f,disabled:v,style:l,name:g,onFocus:E,onBlur:D,autoFocus:_,required:I,...w}))});export{le as CountrySelector,se as CountrySelectorDropdown,ue as DialCodePreview,q as FlagImage,Ye as PhoneInput,Re as buildCountryData,M as defaultCountries,Y as getActiveFormattingMask,z as getCountry,ee as guessCountryByPartialPhoneNumber,N as parseCountry,fe as removeDialCode,oe as usePhoneInput};\n","/**\n * Vanilla emoji-flag + dial-code picker for VTBA form tel fields.\n *\n * Framework-agnostic: this is the single source of truth for the phone flag\n * picker. It is used two ways:\n * 1. In AEM (server-rendered HTL) via the ac-react-app form runtime, which\n * calls {@link initTelPickers} on DOM-ready.\n * 2. In Storybook via the React {@link ../LsgFormFieldTel} component, which\n * calls it from a `useEffect`.\n *\n * It enhances `.cmp-vtba-form__field--tel input[type=\"tel\"]` with a country\n * toggle (Unicode emoji flag + dial code) and a searchable dropdown. Emoji flags\n * mean no image assets to ship. Country/dial-code data is reused from\n * `react-international-phone` (data only — no React needed at runtime here).\n *\n * DOM strategy (so it is safe inside React too): if the input already sits in a\n * `.cmp-vtba-tel` wrapper (React renders one), the picker only *appends* the\n * toggle + dropdown and never moves the React-managed input. Otherwise (plain\n * AEM markup) it creates the wrapper and moves the input in.\n *\n * On submit, the field value is the full international number\n * (`+<dialCode><nationalDigits>`) via {@link getTelValue}.\n */\nimport { defaultCountries } from \"react-international-phone\";\nimport \"./telPicker.scss\";\n\ninterface TelCountry {\n name: string;\n iso2: string;\n dialCode: string;\n}\n\n/** `defaultCountries` items are tuples `[name, iso2, dialCode, format?, ...]`. */\nconst COUNTRIES: TelCountry[] = (defaultCountries as unknown[])\n .map((c) => {\n const t = c as string[];\n return { name: t[0], iso2: t[1], dialCode: t[2] };\n })\n .filter((c: TelCountry) => !!c.iso2 && !!c.dialCode);\n\nconst DEFAULT_ISO2 = \"gb\";\n\n/** Converts an ISO-2 country code to its Unicode regional-indicator flag emoji. */\nfunction flagEmoji(iso2: string): string {\n return iso2\n .toUpperCase()\n .replace(/[A-Z]/g, (ch) => String.fromCodePoint(0x1f1e6 + ch.charCodeAt(0) - 65));\n}\n\nfunction findCountry(iso2: string): TelCountry | undefined {\n const target = (iso2 || \"\").toLowerCase();\n for (let i = 0; i < COUNTRIES.length; i++) {\n if (COUNTRIES[i].iso2 === target) {\n return COUNTRIES[i];\n }\n }\n return undefined;\n}\n\n/**\n * Enhances every tel field under {@code root} (or {@code root} itself when it is\n * a tel field). Idempotent per input. Works whether {@code root} is the whole\n * form (AEM) or a single field element (React component).\n */\nexport function initTelPickers(root: ParentNode | null): void {\n if (!root) {\n return;\n }\n const inputs = root.querySelectorAll(\"input[type='tel']\");\n for (let i = 0; i < inputs.length; i++) {\n const input = inputs[i] as HTMLInputElement;\n if (input.closest(\".cmp-vtba-form__field--tel\")) {\n enhance(input);\n }\n }\n}\n\n/**\n * Full international number for a picker-enhanced tel input:\n * `+<dialCode><nationalDigits>`. Falls back to the raw value if not enhanced.\n */\nexport function getTelValue(input: HTMLInputElement): string {\n const dial = input.getAttribute(\"data-dial-code\");\n if (!dial) {\n return input.value;\n }\n const national = (input.value || \"\").replace(/\\D/g, \"\");\n return national ? \"+\" + dial + national : \"\";\n}\n\nfunction enhance(input: HTMLInputElement): void {\n if (input.getAttribute(\"data-tel-picker\") === \"true\" || !input.parentElement) {\n return;\n }\n input.setAttribute(\"data-tel-picker\", \"true\");\n\n const initialIso2 = (input.getAttribute(\"data-country\") || DEFAULT_ISO2).toLowerCase();\n let selected = findCountry(initialIso2) || findCountry(DEFAULT_ISO2) || COUNTRIES[0];\n\n // Reuse a pre-rendered wrapper (React) — append-only, never move the input.\n // Otherwise create the wrapper and move the input (plain vanilla markup).\n let wrapper: HTMLElement;\n if (input.parentElement.classList.contains(\"cmp-vtba-tel\")) {\n wrapper = input.parentElement;\n } else {\n wrapper = document.createElement(\"div\");\n wrapper.className = \"cmp-vtba-tel\";\n input.parentElement.insertBefore(wrapper, input);\n wrapper.appendChild(input);\n }\n\n const toggle = document.createElement(\"button\");\n toggle.type = \"button\";\n toggle.className = \"cmp-vtba-tel__toggle\";\n toggle.setAttribute(\"aria-haspopup\", \"listbox\");\n toggle.setAttribute(\"aria-expanded\", \"false\");\n\n const dropdown = document.createElement(\"div\");\n dropdown.className = \"cmp-vtba-tel__dropdown\";\n dropdown.hidden = true;\n\n const search = document.createElement(\"input\");\n search.type = \"text\";\n search.className = \"cmp-vtba-tel__search\";\n search.placeholder = \"Search\";\n search.setAttribute(\"aria-label\", \"Search countries\");\n\n const list = document.createElement(\"ul\");\n list.className = \"cmp-vtba-tel__list\";\n list.setAttribute(\"role\", \"listbox\");\n\n dropdown.appendChild(search);\n dropdown.appendChild(list);\n\n // Toggle goes before the input; dropdown after — both inside the wrapper.\n wrapper.insertBefore(toggle, input);\n wrapper.appendChild(dropdown);\n\n function applySelected(country: TelCountry): void {\n selected = country;\n input.setAttribute(\"data-dial-code\", country.dialCode);\n input.setAttribute(\"data-iso2\", country.iso2);\n toggle.textContent = \"\";\n const flag = document.createElement(\"span\");\n flag.className = \"cmp-vtba-tel__flag\";\n flag.setAttribute(\"aria-hidden\", \"true\");\n flag.textContent = flagEmoji(country.iso2);\n const code = document.createElement(\"span\");\n code.className = \"cmp-vtba-tel__code\";\n code.textContent = \"+\" + country.dialCode;\n toggle.appendChild(flag);\n toggle.appendChild(code);\n toggle.setAttribute(\n \"aria-label\",\n \"Country calling code: \" + country.name + \" +\" + country.dialCode\n );\n }\n\n function renderList(filter: string): void {\n list.textContent = \"\";\n const f = filter.trim().toLowerCase();\n const digits = f.replace(/[^0-9]/g, \"\");\n for (let i = 0; i < COUNTRIES.length; i++) {\n const c = COUNTRIES[i];\n const match =\n !f ||\n c.name.toLowerCase().indexOf(f) !== -1 ||\n c.iso2 === f ||\n (!!digits && c.dialCode.indexOf(digits) === 0);\n if (!match) {\n continue;\n }\n const li = document.createElement(\"li\");\n li.className = \"cmp-vtba-tel__option\";\n li.setAttribute(\"role\", \"option\");\n li.tabIndex = -1;\n li.setAttribute(\"data-iso2\", c.iso2);\n li.setAttribute(\"aria-selected\", c.iso2 === selected.iso2 ? \"true\" : \"false\");\n li.textContent = flagEmoji(c.iso2) + \" \" + c.name + \" +\" + c.dialCode;\n li.addEventListener(\"click\", () => {\n applySelected(c);\n close();\n input.focus();\n });\n list.appendChild(li);\n }\n }\n\n function open(): void {\n dropdown.hidden = false;\n toggle.setAttribute(\"aria-expanded\", \"true\");\n search.value = \"\";\n renderList(\"\");\n search.focus();\n }\n function close(): void {\n dropdown.hidden = true;\n toggle.setAttribute(\"aria-expanded\", \"false\");\n }\n\n toggle.addEventListener(\"click\", () => {\n if (dropdown.hidden) {\n open();\n } else {\n close();\n }\n });\n\n search.addEventListener(\"input\", () => renderList(search.value));\n search.addEventListener(\"keydown\", (e) => {\n if (e.key === \"Escape\") {\n close();\n toggle.focus();\n } else if (e.key === \"ArrowDown\") {\n e.preventDefault();\n const first = list.querySelector(\".cmp-vtba-tel__option\") as HTMLElement | null;\n if (first) {\n first.focus();\n }\n }\n });\n\n list.addEventListener(\"keydown\", (e) => {\n const opts = Array.prototype.slice.call(\n list.querySelectorAll(\".cmp-vtba-tel__option\")\n ) as HTMLElement[];\n const idx = opts.indexOf(document.activeElement as HTMLElement);\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n (opts[idx + 1] || opts[0]).focus();\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n if (idx <= 0) {\n search.focus();\n } else {\n opts[idx - 1].focus();\n }\n } else if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n const iso2 = (document.activeElement as HTMLElement).getAttribute(\"data-iso2\");\n const c = iso2 ? findCountry(iso2) : undefined;\n if (c) {\n applySelected(c);\n close();\n input.focus();\n }\n } else if (e.key === \"Escape\") {\n close();\n toggle.focus();\n }\n });\n\n document.addEventListener(\"click\", (e) => {\n if (!wrapper.contains(e.target as Node)) {\n close();\n }\n });\n\n applySelected(selected);\n}\n","import React, { useEffect, useRef } from \"react\";\nimport \"./LsgFormFieldTel.scss\";\nimport { initTelPickers } from \"../telPicker\";\n\nexport interface LsgFormFieldTelProps {\n id?: string;\n label: string;\n helpText?: string;\n placeholder?: string;\n defaultValue?: string;\n required?: boolean;\n disabled?: boolean;\n error?: string;\n minLength?: number;\n maxLength?: number;\n pattern?: string;\n name?: string;\n /** ISO-2 country to preselect in the flag picker (e.g. \"gb\", \"us\"). */\n defaultCountry?: string;\n}\n\nexport const LsgFormFieldTel: React.FC<LsgFormFieldTelProps> = ({\n id = \"field-tel\",\n label,\n helpText,\n placeholder,\n defaultValue = \"\",\n required = false,\n disabled = false,\n error,\n minLength,\n maxLength,\n pattern,\n name,\n defaultCountry,\n}) => {\n const fieldRef = useRef<HTMLDivElement>(null);\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy =\n [helpId, error ? errorId : undefined].filter(Boolean).join(\" \") || undefined;\n\n // Enhance the tel input with the shared emoji-flag + dial-code picker.\n // The input is pre-wrapped in `.cmp-vtba-tel`, so the picker appends its\n // toggle/dropdown without moving the React-managed input.\n useEffect(() => {\n initTelPickers(fieldRef.current);\n }, []);\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--tel\" ref={fieldRef}>\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <span className=\"cmp-vtba-tel\">\n <input\n type=\"tel\"\n className=\"cmp-vtba-form__input\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n placeholder={placeholder}\n autoComplete=\"tel\"\n minLength={minLength}\n maxLength={maxLength}\n pattern={pattern}\n data-country={defaultCountry}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n />\n </span>\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldSelect.scss\";\n\nexport interface LsgFormSelectOption {\n value: string;\n label: string;\n}\n\nexport interface LsgFormFieldSelectProps {\n id?: string;\n label: string;\n helpText?: string;\n placeholder?: string;\n defaultValue?: string;\n options?: LsgFormSelectOption[];\n required?: boolean;\n disabled?: boolean;\n error?: string;\n name?: string;\n}\n\nexport const LsgFormFieldSelect: React.FC<LsgFormFieldSelectProps> = ({\n id = \"field-select\",\n label,\n helpText,\n placeholder = \"Please select\",\n defaultValue = \"\",\n options = [],\n required = false,\n disabled = false,\n error,\n name,\n}) => {\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy = [helpId, error ? errorId : undefined]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--select\">\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <div className=\"cmp-vtba-form__select-wrapper\">\n <select\n className=\"cmp-vtba-form__select\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n >\n <option value=\"\">{placeholder}</option>\n {options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n </div>\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldCountry.scss\";\n\nexport interface LsgFormFieldCountryOption {\n value: string;\n label: string;\n}\n\nexport interface LsgFormFieldCountryProps {\n id?: string;\n label: string;\n helpText?: string;\n defaultValue?: string;\n /** Fixture list; in AEM this is populated from /bin/vtba/country-list.json at runtime */\n countries?: LsgFormFieldCountryOption[];\n required?: boolean;\n disabled?: boolean;\n error?: string;\n name?: string;\n}\n\nconst COUNTRY_FIXTURE: LsgFormFieldCountryOption[] = [\n { value: \"us\", label: \"United States\" },\n { value: \"gb\", label: \"United Kingdom\" },\n { value: \"de\", label: \"Germany\" },\n { value: \"fr\", label: \"France\" },\n { value: \"se\", label: \"Sweden\" },\n { value: \"jp\", label: \"Japan\" },\n { value: \"cn\", label: \"China\" },\n { value: \"in\", label: \"India\" },\n { value: \"br\", label: \"Brazil\" },\n { value: \"au\", label: \"Australia\" },\n];\n\nexport const LsgFormFieldCountry: React.FC<LsgFormFieldCountryProps> = ({\n id = \"field-country\",\n label,\n helpText,\n defaultValue = \"\",\n countries = COUNTRY_FIXTURE,\n required = false,\n disabled = false,\n error,\n name,\n}) => {\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy = [helpId, error ? errorId : undefined]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--country\">\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <div className=\"cmp-vtba-form__select-wrapper\">\n <select\n className=\"cmp-vtba-form__select\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n data-country-list=\"true\"\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n >\n <option value=\"\">Select a country</option>\n {countries.map((c) => (\n <option key={c.value} value={c.value}>\n {c.label}\n </option>\n ))}\n </select>\n </div>\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldTextarea.scss\";\n\nexport interface LsgFormFieldTextareaProps {\n id?: string;\n label: string;\n helpText?: string;\n placeholder?: string;\n defaultValue?: string;\n required?: boolean;\n disabled?: boolean;\n error?: string;\n autocomplete?: string;\n maxLength?: number;\n rows?: number;\n name?: string;\n}\n\nexport const LsgFormFieldTextarea: React.FC<LsgFormFieldTextareaProps> = ({\n id = \"field-textarea\",\n label,\n helpText,\n placeholder,\n defaultValue = \"\",\n required = false,\n disabled = false,\n error,\n autocomplete,\n maxLength,\n rows = 4,\n name,\n}) => {\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy = [helpId, error ? errorId : undefined]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--textarea\">\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <textarea\n className=\"cmp-vtba-form__textarea\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n placeholder={placeholder}\n autoComplete={autocomplete}\n maxLength={maxLength}\n rows={rows}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n />\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldConsent.scss\";\n\nexport interface LsgFormFieldConsentProps {\n id?: string;\n /** Consent label — may contain inline HTML (use dangerouslySetInnerHTML) */\n label: string;\n required?: boolean;\n disabled?: boolean;\n error?: string;\n name?: string;\n}\n\nexport const LsgFormFieldConsent: React.FC<LsgFormFieldConsentProps> = ({\n id = \"field-consent\",\n label,\n required = false,\n disabled = false,\n error,\n name,\n}) => {\n const errorId = `${id}-error`;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--consent\">\n <div className=\"cmp-vtba-form__consent\">\n <input\n type=\"checkbox\"\n className=\"cmp-vtba-form__checkbox\"\n id={id}\n name={name}\n value=\"true\"\n data-consent=\"\"\n aria-describedby={error ? errorId : undefined}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n />\n {/* eslint-disable-next-line react/no-danger -- mirrors AEM rich-text label output */}\n <label\n className=\"cmp-vtba-form__consent-label\"\n htmlFor={id}\n dangerouslySetInnerHTML={{ __html: label }}\n />\n </div>\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormStep.scss\";\n\nexport interface LsgFormStepProps {\n title?: string;\n description?: string;\n children?: React.ReactNode;\n /** Matches data-step-id on the AEM fieldset */\n stepId?: string;\n}\n\nexport const LsgFormStep: React.FC<LsgFormStepProps> = ({\n title,\n description,\n children,\n stepId,\n}) => (\n <fieldset\n className=\"cmp-vtba-form__step\"\n data-form-step=\"\"\n data-step-id={stepId}\n >\n {title && <legend className=\"cmp-vtba-form__step-legend\">{title}</legend>}\n {description && (\n <p className=\"cmp-vtba-form__step-description\">{description}</p>\n )}\n <div className=\"cmp-vtba-form__fields\">{children}</div>\n </fieldset>\n);\n","import React from \"react\";\nimport \"./LsgFormContainer.scss\";\n\nexport interface LsgFormContainerProps {\n title?: string;\n /** Multi-step mode shows the progress indicator */\n multiStep?: boolean;\n /** 1-based index of the active step */\n currentStep?: number;\n steps?: string[];\n children?: React.ReactNode;\n /** Shows the form-level error banner */\n formError?: string;\n /** Shows the success message and hides the form */\n successMessage?: string;\n}\n\nexport const LsgFormContainer: React.FC<LsgFormContainerProps> = ({\n title,\n multiStep = false,\n currentStep = 1,\n steps = [],\n children,\n formError,\n successMessage,\n}) => (\n <div className=\"cmp-vtba-form\" data-vtba-form=\"\">\n <form\n className=\"cmp-vtba-form__form\"\n method=\"post\"\n noValidate\n aria-label={title}\n >\n {title && <h2 className=\"cmp-vtba-form__title\">{title}</h2>}\n\n {multiStep && steps.length > 0 && (\n <nav className=\"cmp-vtba-form__progress\" aria-label=\"Form progress\">\n <ol className=\"cmp-vtba-form__progress-list\">\n {steps.map((stepTitle, i) => (\n <li\n key={i}\n className=\"cmp-vtba-form__progress-step\"\n data-step-index={i}\n aria-current={i + 1 === currentStep ? \"step\" : undefined}\n >\n <span className=\"cmp-vtba-form__progress-number\">{i + 1}</span>\n <span className=\"cmp-vtba-form__progress-title\">{stepTitle}</span>\n </li>\n ))}\n </ol>\n </nav>\n )}\n\n <div className=\"cmp-vtba-form__steps\">{children}</div>\n\n <div className=\"cmp-vtba-form__actions\">\n {multiStep && (\n <button type=\"button\" className=\"cmp-vtba-form__prev\" data-form-prev=\"\" hidden={currentStep <= 1}>\n Back\n </button>\n )}\n {multiStep && currentStep < (steps.length || 1) ? (\n <button type=\"button\" className=\"cmp-vtba-form__next lsg-button lsg-button--primary\" data-form-next=\"\">\n Continue\n </button>\n ) : (\n <button type=\"submit\" className=\"cmp-vtba-form__submit lsg-button lsg-button--primary\" data-form-submit=\"\">\n Submit\n </button>\n )}\n </div>\n\n {formError && (\n <p className=\"cmp-vtba-form__error\" role=\"alert\" aria-live=\"assertive\">\n {formError}\n </p>\n )}\n\n {successMessage && (\n <div className=\"cmp-vtba-form__success\" role=\"status\" aria-live=\"polite\">\n {successMessage}\n </div>\n )}\n </form>\n </div>\n);\n","import React from \"react\";\nimport \"./LsgFormPolicyNotice.scss\";\n\nexport interface LsgFormPolicyNoticeProps {\n /** HTML content from AEM rich-text editor */\n text: string;\n /** AEM style policy — adds cmp-text--policy-notice-icon modifier */\n policyNoticeIcon?: boolean;\n}\n\nexport const LsgFormPolicyNotice: React.FC<LsgFormPolicyNoticeProps> = ({\n text,\n policyNoticeIcon = false,\n}) => (\n <div\n className={[\n \"cmp-text\",\n policyNoticeIcon ? \"cmp-text--policy-notice-icon\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n // eslint-disable-next-line react/no-danger -- mirrors AEM rich-text output\n dangerouslySetInnerHTML={{ __html: text }}\n />\n);\n","import React from \"react\";\n\nimport {\n LsgBanner,\n LsgBreadcrumb,\n LsgButton,\n LsgCard,\n LsgCards,\n LsgCarousel,\n LsgFooter,\n LsgFormContainer,\n LsgFormFieldConsent,\n LsgFormFieldCountry,\n LsgFormFieldEmail,\n LsgFormFieldSelect,\n LsgFormFieldTel,\n LsgFormFieldText,\n LsgFormFieldTextarea,\n LsgFormPolicyNotice,\n LsgFormStep,\n LsgHeader,\n LsgHero,\n LsgTabs,\n LsgLanguageSwitcher,\n LsgLogo,\n LsgNavigation,\n LsgQuickLinks,\n LsgSearchOverlay,\n LsgSearchTrigger,\n LsgSocialMediaIcons,\n} from \"../components/lsg\";\n\nconst BASE_COMPONENTS = {\n LsgButton,\n LsgBanner,\n LsgCarousel,\n LsgCard,\n LsgCards,\n LsgBreadcrumb,\n LsgLogo,\n LsgNavigation,\n LsgLanguageSwitcher,\n LsgSearchTrigger,\n LsgSearchOverlay,\n LsgHeader,\n LsgQuickLinks,\n LsgSocialMediaIcons,\n LsgFooter,\n LsgHero,\n LsgTabs,\n LsgFormContainer,\n LsgFormFieldText,\n LsgFormFieldEmail,\n LsgFormFieldTel,\n LsgFormFieldSelect,\n LsgFormFieldCountry,\n LsgFormFieldTextarea,\n LsgFormFieldConsent,\n LsgFormPolicyNotice,\n LsgFormStep,\n} as const;\n\ntype BaseComponents = typeof BASE_COMPONENTS;\n\nfunction createThemeComponent<Props extends object>(\n themeName: string,\n componentName: string,\n Component: React.ComponentType<Props>,\n): React.FC<Props> {\n const WrappedComponent: React.FC<Props> = (props) => (\n <div\n className={[\n \"lsg-themed-component\",\n `lsg-themed-component--${themeName}`,\n `lsg-themed-component--${componentName}`,\n ].join(\" \")}\n >\n <Component {...props} />\n </div>\n );\n\n WrappedComponent.displayName = `${themeName}-${componentName}`;\n\n return WrappedComponent;\n}\n\nexport function createThemeComponents(themeName: string): BaseComponents {\n return {\n LsgButton: createThemeComponent(themeName, \"button\", BASE_COMPONENTS.LsgButton),\n LsgBanner: createThemeComponent(themeName, \"banner\", BASE_COMPONENTS.LsgBanner),\n LsgCarousel: createThemeComponent(themeName, \"carousel\", BASE_COMPONENTS.LsgCarousel),\n LsgCard: createThemeComponent(themeName, \"card\", BASE_COMPONENTS.LsgCard),\n LsgCards: createThemeComponent(themeName, \"cards\", BASE_COMPONENTS.LsgCards),\n LsgBreadcrumb: createThemeComponent(themeName, \"breadcrumb\", BASE_COMPONENTS.LsgBreadcrumb),\n LsgLogo: createThemeComponent(themeName, \"logo\", BASE_COMPONENTS.LsgLogo),\n LsgNavigation: createThemeComponent(themeName, \"navigation\", BASE_COMPONENTS.LsgNavigation),\n LsgLanguageSwitcher: createThemeComponent(\n themeName,\n \"language-switcher\",\n BASE_COMPONENTS.LsgLanguageSwitcher,\n ),\n LsgSearchTrigger: createThemeComponent(\n themeName,\n \"search-trigger\",\n BASE_COMPONENTS.LsgSearchTrigger,\n ),\n LsgSearchOverlay: createThemeComponent(\n themeName,\n \"search-overlay\",\n BASE_COMPONENTS.LsgSearchOverlay,\n ),\n LsgHeader: createThemeComponent(themeName, \"header\", BASE_COMPONENTS.LsgHeader),\n LsgQuickLinks: createThemeComponent(themeName, \"quick-links\", BASE_COMPONENTS.LsgQuickLinks),\n LsgSocialMediaIcons: createThemeComponent(\n themeName,\n \"social-media-icons\",\n BASE_COMPONENTS.LsgSocialMediaIcons,\n ),\n LsgFooter: createThemeComponent(themeName, \"footer\", BASE_COMPONENTS.LsgFooter),\n LsgHero: createThemeComponent(themeName, \"hero\", BASE_COMPONENTS.LsgHero),\n LsgFormContainer: createThemeComponent(themeName, \"form-container\", BASE_COMPONENTS.LsgFormContainer),\n LsgFormFieldText: createThemeComponent(themeName, \"form-field-text\", BASE_COMPONENTS.LsgFormFieldText),\n LsgFormFieldEmail: createThemeComponent(themeName, \"form-field-email\", BASE_COMPONENTS.LsgFormFieldEmail),\n LsgFormFieldTel: createThemeComponent(themeName, \"form-field-tel\", BASE_COMPONENTS.LsgFormFieldTel),\n LsgFormFieldSelect: createThemeComponent(themeName, \"form-field-select\", BASE_COMPONENTS.LsgFormFieldSelect),\n LsgFormFieldCountry: createThemeComponent(themeName, \"form-field-country\", BASE_COMPONENTS.LsgFormFieldCountry),\n LsgFormFieldTextarea: createThemeComponent(themeName, \"form-field-textarea\", BASE_COMPONENTS.LsgFormFieldTextarea),\n LsgFormFieldConsent: createThemeComponent(themeName, \"form-field-consent\", BASE_COMPONENTS.LsgFormFieldConsent),\n LsgFormPolicyNotice: createThemeComponent(themeName, \"form-policy-notice\", BASE_COMPONENTS.LsgFormPolicyNotice),\n LsgFormStep: createThemeComponent(themeName, \"form-step\", BASE_COMPONENTS.LsgFormStep),\n LsgTabs: createThemeComponent(themeName, \"tabs\", BASE_COMPONENTS.LsgTabs),\n };\n}\n","import { createThemeComponents } from \"../createThemeComponents\";\n\nexport const theme1Components = createThemeComponents(\"theme-1\");\n\nexport const {\n LsgButton: Theme1LsgButton,\n LsgBanner: Theme1LsgBanner,\n LsgCarousel: Theme1LsgCarousel,\n LsgCard: Theme1LsgCard,\n LsgCards: Theme1LsgCards,\n LsgBreadcrumb: Theme1LsgBreadcrumb,\n LsgLogo: Theme1LsgLogo,\n LsgNavigation: Theme1LsgNavigation,\n LsgLanguageSwitcher: Theme1LsgLanguageSwitcher,\n LsgSearchTrigger: Theme1LsgSearchTrigger,\n LsgSearchOverlay: Theme1LsgSearchOverlay,\n LsgHeader: Theme1LsgHeader,\n LsgQuickLinks: Theme1LsgQuickLinks,\n LsgSocialMediaIcons: Theme1LsgSocialMediaIcons,\n LsgFooter: Theme1LsgFooter,\n LsgHero: Theme1LsgHero,\n LsgTabs: Theme1LsgTabs,\n // Form components\n LsgFormContainer: Theme1LsgFormContainer,\n LsgFormFieldText: Theme1LsgFormFieldText,\n LsgFormFieldEmail: Theme1LsgFormFieldEmail,\n LsgFormFieldTel: Theme1LsgFormFieldTel,\n LsgFormFieldTextarea: Theme1LsgFormFieldTextarea,\n LsgFormFieldSelect: Theme1LsgFormFieldSelect,\n LsgFormFieldCountry: Theme1LsgFormFieldCountry,\n LsgFormFieldConsent: Theme1LsgFormFieldConsent,\n LsgFormPolicyNotice: Theme1LsgFormPolicyNotice,\n LsgFormStep: Theme1LsgFormStep,\n} = theme1Components;","import { createThemeComponents } from \"../createThemeComponents\";\n\nexport const theme2Components = createThemeComponents(\"theme-2\");\n\nexport const {\n LsgButton: Theme2LsgButton,\n LsgBanner: Theme2LsgBanner,\n LsgCarousel: Theme2LsgCarousel,\n LsgCard: Theme2LsgCard,\n LsgCards: Theme2LsgCards,\n LsgBreadcrumb: Theme2LsgBreadcrumb,\n LsgLogo: Theme2LsgLogo,\n LsgNavigation: Theme2LsgNavigation,\n LsgLanguageSwitcher: Theme2LsgLanguageSwitcher,\n LsgSearchTrigger: Theme2LsgSearchTrigger,\n LsgSearchOverlay: Theme2LsgSearchOverlay,\n LsgHeader: Theme2LsgHeader,\n LsgQuickLinks: Theme2LsgQuickLinks,\n LsgSocialMediaIcons: Theme2LsgSocialMediaIcons,\n LsgFooter: Theme2LsgFooter,\n LsgHero: Theme2LsgHero,\n // Form components\n LsgFormContainer: Theme2LsgFormContainer,\n LsgFormFieldText: Theme2LsgFormFieldText,\n LsgFormFieldEmail: Theme2LsgFormFieldEmail,\n LsgFormFieldTel: Theme2LsgFormFieldTel,\n LsgFormFieldTextarea: Theme2LsgFormFieldTextarea,\n LsgFormFieldSelect: Theme2LsgFormFieldSelect,\n LsgFormFieldCountry: Theme2LsgFormFieldCountry,\n LsgFormFieldConsent: Theme2LsgFormFieldConsent,\n LsgFormStep: Theme2LsgFormStep,\n} = theme2Components;","import { createThemeComponents } from \"../createThemeComponents\";\n\nexport const theme3Components = createThemeComponents(\"theme-3\");\n\nexport const {\n LsgButton: Theme3LsgButton,\n LsgBanner: Theme3LsgBanner,\n LsgCarousel: Theme3LsgCarousel,\n LsgCard: Theme3LsgCard,\n LsgCards: Theme3LsgCards,\n LsgBreadcrumb: Theme3LsgBreadcrumb,\n LsgLogo: Theme3LsgLogo,\n LsgNavigation: Theme3LsgNavigation,\n LsgLanguageSwitcher: Theme3LsgLanguageSwitcher,\n LsgSearchTrigger: Theme3LsgSearchTrigger,\n LsgSearchOverlay: Theme3LsgSearchOverlay,\n LsgHeader: Theme3LsgHeader,\n LsgQuickLinks: Theme3LsgQuickLinks,\n LsgSocialMediaIcons: Theme3LsgSocialMediaIcons,\n LsgFooter: Theme3LsgFooter,\n LsgHero: Theme3LsgHero,\n // Form components\n LsgFormContainer: Theme3LsgFormContainer,\n LsgFormFieldText: Theme3LsgFormFieldText,\n LsgFormFieldEmail: Theme3LsgFormFieldEmail,\n LsgFormFieldTel: Theme3LsgFormFieldTel,\n LsgFormFieldTextarea: Theme3LsgFormFieldTextarea,\n LsgFormFieldSelect: Theme3LsgFormFieldSelect,\n LsgFormFieldCountry: Theme3LsgFormFieldCountry,\n LsgFormFieldConsent: Theme3LsgFormFieldConsent,\n LsgFormStep: Theme3LsgFormStep,\n} = theme3Components;"],"names":["LsgButton","_a","children","_b","variant","_c","disabled","href","onClick","_d","type","_e","className","_f","external","classNames","concat","filter","Boolean","join","React","createElement","_extends","undefined","target","rel","bannerClassName","layout","mobileMediaPosition","background","LsgBanner","heading","preTitle","eyebrow","body","copy","ctas","cta","mediaType","imageUrl","imageAlt","videoUrl","videoPoster","videoControls","videoAutoPlay","videoMuted","videoLoop","_g","_h","_j","headingTag","resolvedPreTitle","resolvedBody","actions","length","slice","resolvedMediaType","hasMedia","HeadingTag","src","poster","controls","autoPlay","muted","loop","playsInline","alt","map","action","index","key","label","__assign","Object","assign","t","s","i","n","arguments","p","prototype","hasOwnProperty","call","apply","SuppressedError","error","suppressed","message","e","Error","name","isSafeUrl","url","lower","toLowerCase","trim","startsWith","includes","LsgImage","srcset","sources","width","height","srcUriTemplate","lazyEnabled","displayPopupTitle","id","dataLayer","assetId","dmImage","tags","title","description","caption","text","visibleTags","Array","isArray","tag","visibleSources","source","rootClass","safeHref","linkLabel","showTitle","showCaption","String","itemScope","itemType","media","srcSet","itemProp","loading","content","buildUrl","base","params","url_1","URL","keys","forEach","searchParams","set","toString","getEmbedInfo","opts","host","hostname","replace","path","pathname","split","get","test","autoplay","mute","playlist","baseHost","provider","embedUrl","match","PlayIcon","viewBox","fill","xmlns","focusable","cx","cy","r","fillOpacity","points","LsgVideo","onPlay","displayMode","showTags","_k","_l","useState","isRevealed","setIsRevealed","hasVideoSource","embedInfo","isEmbed","isNativeSource","showMedia","handleActivate","preventDefault","playLabel","renderPlayControl","allow","referrerPolicy","allowFullScreen","Fragment","isNumber","subject","isString","isBoolean","isObject","mathAbs","Math","abs","mathSign","sign","deltaAbs","valueB","valueA","factorAbs","diff","roundToTwoDecimals","num","round","arrayKeys","array","objectKeys","Number","arrayLast","arrayLastIndex","max","arrayIsLastIndex","arrayFromNumber","startAt","from","_","object","objectsMergeDeep","objectA","objectB","reduce","mergedObjects","currentObject","areObjects","isMouseEvent","evt","ownerWindow","MouseEvent","clampNumber","number","min","value","isNaN","MOBILE_MEDIA_QUERY","MEDIA_ITEM_SELECTOR","CONTENT_ITEM_SELECTOR","directChildren","container","selector","el","HTMLElement","matches","LsgCarouselController","viewport","elements","options","_this","syncing","scrollPrev","canScrollPrev","lastSnap","scrollSnapList","scrollTo","scrollNext","canScrollNext","handleContentSelect","selectedScrollSnap","handleMediaSelect","syncSelectedState","pushToContent","handleResync","selected","snapCount","paginationBtns","button","active","classList","toggle","setAttribute","els","prevBtn","nextBtn","contentSlides","slide","toggleAttribute","removeAttribute","mediaViewport","mediaTrack","firstElementChild","mediaSlides","EmblaCarousel","align","containScroll","direction","skipSnaps","slidesToScroll","slides","breakpoints","contentViewport","contentTrack","countsMatch","watchDrag","EmblaCarouselFade","paginationHandlers","addEventListener","on","jump","defineProperty","destroy","removeEventListener","off","remove","mediaTypeFor","item","directionForLayout","hasText","LsgCarousel","items","ariaLabel","viewportRef","useRef","contentViewportRef","prevBtnRef","nextBtnRef","dotsRef","controllerRef","isCarousel","carouselDirection","resolvedItems","useMemo","legacy","hasLegacy","useEffect","current","querySelectorAll","rootClasses","keyFor","ref","dir","role","cardVariantClass","LsgCard","subtitle","iconUrl","iconAlt","resolvedIconUrl","actionLabel","cardClassName","LsgCards","cards","columns","listClassName","card","LSG_ICON_PATHS","bars","chevronLeft","chevronRight","close","globe","home","search","LsgIcon","d","isSafeHref","BreadcrumbSeparator","LsgBreadcrumb","showBreadcrumbs","includeHome","homeHref","homeLabel","visibleItems","rootClassName","safeHomeHref","isCurrent","LsgLogo","LsgNavigation","onItemClick","onItemHover","renderItems","navItems","level","hasChildren","open","onMouseEnter","event","preserveAspectRatio","stroke","strokeWidth","strokeLinecap","strokeLinejoin","ChevronIcon","LsgLanguageSwitcher","currentLanguage","languages","onLanguageChange","isOpen","setIsOpen","containerRef","reactId","useId","triggerId","dropdownId","handleClick","contains","document","handleKey","prev","lang","code","SearchIcon","x1","y1","x2","y2","LsgSearchTrigger","targetId","CloseIcon","LsgSearchOverlay","placeholder","onClose","onSearch","inputRef","inputId","focus","handleSubmit","query","overlayClass","style","position","inset","cursor","onSubmit","htmlFor","autoComplete","SEARCH_OVERLAY_ID","LsgHeaderIcon","getItemByPath","activePath","depth","currentItems","currentItem","find","getItemsAtLevel","getMegaColumns","maxDepth","activeItem","push","isCurrentOrActiveAtLevel","isSelectedAtLevel","hasOpenNavItem","some","clearMegaMenuBranch","scope","column","activateMegaMenuItem","parentColumn","parentElement","openItem","add","querySelector","HeaderActionButton","icon","LsgHeader","logo","searchLabel","searchPlaceholder","size","menuOpen","mobileLevel","mobileSelectedLabel","onMenuToggle","onNavItemHover","onDropdownClose","onMegaItemHover","onMobileItemClick","onMobileBreadcrumbClick","searchOpen","setSearchOpen","headerRef","mobileOpen","mobileItems","mobileBackLabel","dropdownOpen","closeOnOutsidePointerDown","megaItems","removeListeners","onFocusIn","removeListener","openSearch","renderActions","showMenu","renderMegaPanel","columnItems","columnIndex","renderMobileMenu","isSelected","LsgQuickLinks","links","link","platformIcons","linkedin","twitter","facebook","instagram","youtube","LsgSocialMediaIcons","platform","PhoneIcon","FaxIcon","MailIcon","LocationIcon","AiBadge","SocialIcon","icons","x","y","rx","ry","SocialIconsRow","l","color","display","alignItems","opacity","LsgFooter","simpleTwoRow","brandLine","complexColumns","showAiBadge","cookieSetting","contact","_m","quickLinks","copyright","colHeadings","socialLinks","_o","socialPosition","_p","year","Date","getFullYear","copyrightText","is3col","headings","about","contactAlt","bottomBar","address","phone","fax","email","LsgHeroController","embla","autoplayTimer","contentObserver","rafId","startAutoplay","handleScrollDown","scrollDownTarget","scrollIntoView","behavior","stopAutoplay","setInterval","autoplayInterval","clearInterval","transition","mount","scrollDownBtn","requestAnimationFrame","isConnected","section","closest","axis","getComputedStyle","getPropertyValue","plugins","contentWrapper","ResizeObserver","setHeight_1","setProperty","offsetHeight","entries","observe","reInit","cancelAnimationFrame","disconnect","LsgHeroCard","imageSrc","videoSrc","youtubeId","vimeoId","cardBackground","cardColor","total","videoReady","setVideoReady","hasYoutube","hasVimeo","hasDam","youtubeEmbedSrc","vimeoEmbedSrc","articleClasses","onCanPlay","tabIndex","LsgHero","showArrows","enableScrollDown","scrollDownText","sectionRef","useCallback","next","nextElementSibling","sectionClasses","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","updateArrows","strip","offset","scrollTop","scrollLeft","visible","clientHeight","clientWidth","scrollHeight","scrollWidth","observer","cancelled","fonts","ready","then","scrollStrip","step","onRootClick","currentTarget","rect","getBoundingClientRect","beforeMidpoint","clientY","top","clientX","left","select","moveFocus","tab","block","inline","press","onKeyDown","last","onScroll","isActive","node","LsgFormFieldText","helpText","defaultValue","required","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","iso2","dialCode","DEFAULT_ISO2","flagEmoji","toUpperCase","ch","fromCodePoint","charCodeAt","findCountry","initTelPickers","root","inputs","input","enhance","getTelValue","dial","getAttribute","national","initialIso2","wrapper","insertBefore","appendChild","dropdown","list","applySelected","country","textContent","flag","renderList","f","digits","indexOf","li","first","idx","activeElement","LsgFormFieldTel","pattern","defaultCountry","fieldRef","LsgFormFieldSelect","opt","COUNTRY_FIXTURE","LsgFormFieldCountry","countries","LsgFormFieldTextarea","rows","LsgFormFieldConsent","dangerouslySetInnerHTML","__html","LsgFormStep","stepId","LsgFormContainer","multiStep","currentStep","steps","formError","successMessage","method","noValidate","stepTitle","LsgFormPolicyNotice","policyNoticeIcon","BASE_COMPONENTS","createThemeComponent","themeName","componentName","Component","WrappedComponent","props","displayName","createThemeComponents","theme1Components","Theme1LsgButton","Theme1LsgBanner","Theme1LsgCarousel","Theme1LsgCard","Theme1LsgCards","Theme1LsgBreadcrumb","Theme1LsgLogo","Theme1LsgNavigation","Theme1LsgLanguageSwitcher","Theme1LsgSearchTrigger","Theme1LsgSearchOverlay","Theme1LsgHeader","Theme1LsgQuickLinks","Theme1LsgSocialMediaIcons","Theme1LsgFooter","Theme1LsgHero","theme2Components","Theme2LsgButton","Theme2LsgBanner","Theme2LsgCarousel","Theme2LsgCard","Theme2LsgCards","Theme2LsgBreadcrumb","Theme2LsgLogo","Theme2LsgNavigation","Theme2LsgLanguageSwitcher","Theme2LsgSearchTrigger","Theme2LsgSearchOverlay","Theme2LsgHeader","Theme2LsgQuickLinks","Theme2LsgSocialMediaIcons","Theme2LsgFooter","Theme2LsgHero","theme3Components","Theme3LsgButton","Theme3LsgBanner","Theme3LsgCarousel","Theme3LsgCard","Theme3LsgCards","Theme3LsgBreadcrumb","Theme3LsgLogo","Theme3LsgNavigation","Theme3LsgLanguageSwitcher","Theme3LsgSearchTrigger","Theme3LsgSearchOverlay","Theme3LsgHeader","Theme3LsgQuickLinks","Theme3LsgSocialMediaIcons","Theme3LsgFooter","Theme3LsgHero"],"mappings":"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YC,WAAW,CAACC,UAAU;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","x_google_ignoreList":[2,5,6,28]}
1
+ {"version":3,"file":"index.js","sources":["../../src/components/lsg/LsgButton/LsgButton.tsx","../../src/components/lsg/LsgBanner/LsgBanner.tsx","../../src/components/lsg/LsgImage/LsgImage.tsx","../../src/components/lsg/LsgVideo/LsgVideo.tsx","../node_modules/embla-carousel/esm/embla-carousel.esm.js","../../src/components/lsg/LsgCarousel/LsgCarouselController.ts","../../src/components/lsg/LsgCarousel/LsgCarousel.tsx","../../src/components/lsg/LsgCard/LsgCard.tsx","../../src/utils/lsgIconPaths.ts","../../src/utils/LsgIcon.tsx","../../src/components/lsg/LsgBreadcrumb/LsgBreadcrumb.tsx","../../src/components/lsg/LsgLogo/LsgLogo.tsx","../../src/components/lsg/LsgNavigation/LsgNavigation.tsx","../../src/components/lsg/LsgLanguageSwitcher/LsgLanguageSwitcher.tsx","../../src/components/lsg/LsgSearchTrigger/LsgSearchTrigger.tsx","../../src/components/lsg/LsgSearchOverlay/LsgSearchOverlay.tsx","../../src/components/lsg/LsgHeader/LsgHeader.tsx","../../src/components/lsg/LsgQuickLinks/LsgQuickLinks.tsx","../../src/components/lsg/LsgSocialMediaIcons/LsgSocialMediaIcons.tsx","../../src/components/lsg/LsgFooter/LsgFooter.tsx","../node_modules/embla-carousel-fade/esm/embla-carousel-fade.esm.js","../../src/components/lsg/LsgHero/LsgHeroController.ts","../../src/components/lsg/LsgHeroCard/LsgHeroCard.tsx","../../src/components/lsg/LsgHero/LsgHero.tsx","../../src/components/lsg/LsgTabs/LsgTabs.tsx","../../src/components/lsg/LsgTable/LsgTable.tsx","../../src/components/lsg/LsgFormFieldText/LsgFormFieldText.tsx","../../src/components/lsg/LsgFormFieldEmail/LsgFormFieldEmail.tsx","../node_modules/react-international-phone/dist/index.mjs","../../src/components/lsg/telPicker/telPicker.ts","../../src/components/lsg/LsgFormFieldTel/LsgFormFieldTel.tsx","../../src/components/lsg/LsgFormFieldSelect/LsgFormFieldSelect.tsx","../../src/components/lsg/LsgFormFieldCountry/LsgFormFieldCountry.tsx","../../src/components/lsg/LsgFormFieldTextarea/LsgFormFieldTextarea.tsx","../../src/components/lsg/LsgFormFieldConsent/LsgFormFieldConsent.tsx","../../src/components/lsg/LsgFormStep/LsgFormStep.tsx","../../src/components/lsg/LsgFormContainer/LsgFormContainer.tsx","../../src/components/lsg/LsgFormPolicyNotice/LsgFormPolicyNotice.tsx","../../src/themes/createThemeComponents.tsx","../../src/themes/theme-1/components.tsx","../../src/themes/theme-2/components.tsx","../../src/themes/theme-3/components.tsx"],"sourcesContent":["import React from \"react\";\nimport \"./LsgButton.scss\";\n\nexport type LsgButtonVariant = \"primary\" | \"secondary\" | \"tertiary\" | \"outlined-white\" | \"outlined-black\";\n\nexport interface LsgButtonProps {\n children?: React.ReactNode;\n variant?: LsgButtonVariant;\n disabled?: boolean;\n /** Renders an <a> element when provided */\n href?: string;\n onClick?: (e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n type?: \"button\" | \"submit\" | \"reset\";\n className?: string;\n /** Opens in a new tab when used with href */\n external?: boolean;\n}\n\nexport const LsgButton: React.FC<LsgButtonProps> = ({\n children,\n variant = \"primary\",\n disabled = false,\n href,\n onClick,\n type = \"button\",\n className = \"\",\n external = false,\n}) => {\n const classNames = [\n \"lsg-button\",\n `lsg-button--${variant}`,\n disabled ? \"lsg-button--disabled\" : \"\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n if (href) {\n return (\n <a\n href={disabled ? undefined : href}\n className={classNames}\n aria-disabled={disabled || undefined}\n onClick={disabled ? undefined : (onClick as React.MouseEventHandler<HTMLAnchorElement>)}\n {...(external ? { target: \"_blank\", rel: \"noopener noreferrer\" } : {})}\n >\n <span className=\"lsg-button__text\">{children}</span>\n </a>\n );\n }\n\n return (\n <button\n type={type}\n className={classNames}\n disabled={disabled}\n onClick={onClick as React.MouseEventHandler<HTMLButtonElement>}\n >\n {children}\n </button>\n );\n};\n","import React from \"react\";\nimport \"./LsgBanner.scss\";\nimport { LsgButton } from \"../LsgButton\";\nimport type { LsgButtonVariant } from \"../LsgButton\";\n\nexport type LsgBannerLayout =\n | \"media-left\"\n | \"media-right\"\n | \"media-left-compact\"\n | \"media-right-compact\"\n | \"overlay\"\n | \"overlay-transparent\"\n | \"text-only\";\n\n/** Mirrors the AEM \"Background color\" style group on the banner policy. */\nexport type LsgBannerBackground =\n | \"white\"\n | \"light\"\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"dark\"\n | \"black\";\n\nexport type LsgBannerMobileMediaPosition = \"top\" | \"bottom\";\nexport type LsgBannerMediaType = \"image\" | \"video\";\nexport type LsgBannerHeadingTag = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n\nexport interface LsgBannerCta {\n label: string;\n href?: string;\n external?: boolean;\n variant?: LsgButtonVariant;\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;\n}\n\nexport interface LsgBannerProps {\n /** Mandatory banner title. */\n heading: string;\n /** Figma/AEM pre-title. `eyebrow` remains as a backwards-compatible alias. */\n preTitle?: string;\n eyebrow?: string;\n /** Optional body copy. `copy` remains as a backwards-compatible alias. */\n body?: string;\n copy?: string;\n /** Up to three CTAs. Theme/AEM policy may choose to expose fewer. */\n ctas?: LsgBannerCta[];\n /** Backwards-compatible single CTA alias. */\n cta?: LsgBannerCta;\n /** Image/video presentation controlled by the Banner authoring layout. */\n mediaType?: LsgBannerMediaType;\n imageUrl?: string;\n imageAlt?: string;\n videoUrl?: string;\n videoPoster?: string;\n videoControls?: boolean;\n videoAutoPlay?: boolean;\n videoMuted?: boolean;\n videoLoop?: boolean;\n /** Desktop visual layout matching the Figma Banner variants. */\n layout?: LsgBannerLayout;\n /** Mobile stack order for split/compact layouts. */\n mobileMediaPosition?: LsgBannerMobileMediaPosition;\n /**\n * Background colour, mirroring the AEM \"Background color\" style group.\n * Left undefined on purpose so no class is emitted and the banner keeps its\n * default light background. Each option carries its own legible foreground.\n */\n background?: LsgBannerBackground;\n headingTag?: LsgBannerHeadingTag;\n className?: string;\n}\n\nfunction bannerClassName(\n layout: LsgBannerLayout,\n mobileMediaPosition: LsgBannerMobileMediaPosition,\n background?: LsgBannerBackground,\n className?: string,\n): string {\n return [\n \"lsg-banner\",\n `lsg-banner--${layout}`,\n `lsg-banner--mobile-media-${mobileMediaPosition}`,\n // In AEM this class arrives on the decoration div instead; the SCSS only\n // sets inherited custom properties, so either position works.\n background ? `lsg-banner--bg-${background}` : \"\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n}\n\nexport const LsgBanner: React.FC<LsgBannerProps> = ({\n heading,\n preTitle,\n eyebrow,\n body,\n copy,\n ctas,\n cta,\n mediaType,\n imageUrl,\n imageAlt = \"\",\n videoUrl,\n videoPoster,\n videoControls = true,\n videoAutoPlay = false,\n videoMuted = true,\n videoLoop = false,\n layout = \"media-left\",\n mobileMediaPosition = \"top\",\n background,\n headingTag = \"h1\",\n className,\n}) => {\n const resolvedPreTitle = preTitle ?? eyebrow;\n const resolvedBody = body ?? copy;\n const actions = (ctas?.length ? ctas : cta ? [cta] : []).slice(0, 3);\n const resolvedMediaType: LsgBannerMediaType =\n mediaType ?? (videoUrl ? \"video\" : \"image\");\n const hasMedia =\n layout !== \"text-only\" &&\n (resolvedMediaType === \"video\" ? Boolean(videoUrl) : Boolean(imageUrl));\n const HeadingTag = headingTag;\n\n return (\n <section\n className={bannerClassName(layout, mobileMediaPosition, background, className)}\n data-lsg-is=\"banner\"\n data-lsg-banner-layout={layout}\n data-lsg-banner-mobile-media={mobileMediaPosition}\n data-lsg-banner-media={hasMedia ? resolvedMediaType : \"none\"}\n >\n <div className=\"lsg-banner__shell\">\n {hasMedia && (\n <div className=\"lsg-banner__media\">\n {resolvedMediaType === \"video\" && videoUrl ? (\n <video\n className=\"lsg-banner__video\"\n src={videoUrl}\n poster={videoPoster}\n controls={videoControls}\n autoPlay={videoAutoPlay}\n muted={videoMuted}\n loop={videoLoop}\n playsInline\n aria-label={imageAlt || heading}\n />\n ) : imageUrl ? (\n <img className=\"lsg-banner__image\" src={imageUrl} alt={imageAlt} />\n ) : null}\n </div>\n )}\n\n <div className=\"lsg-banner__content\">\n {resolvedPreTitle && (\n <div className=\"lsg-banner__pre-title\">\n <span className=\"lsg-banner__pre-title-marker\" aria-hidden=\"true\" />\n <span className=\"lsg-banner__pre-title-text\">{resolvedPreTitle}</span>\n </div>\n )}\n\n <HeadingTag className=\"lsg-banner__heading\">{heading}</HeadingTag>\n\n {resolvedBody && (\n <div className=\"lsg-banner__body\">\n <p>{resolvedBody}</p>\n </div>\n )}\n\n {actions.length > 0 && (\n <div className=\"lsg-banner__actions\">\n {actions.map((action, index) => (\n <LsgButton\n key={`${action.label}-${action.href ?? \"button\"}-${index}`}\n href={action.href}\n external={action.external}\n variant={action.variant ?? \"primary\"}\n onClick={action.onClick}\n className=\"lsg-banner__cta\"\n >\n {action.label}\n </LsgButton>\n ))}\n </div>\n )}\n </div>\n </div>\n </section>\n );\n};\n","import React from \"react\";\nimport \"./LsgImage.scss\";\n\nexport interface LsgImageTag {\n label: string;\n}\n\nexport interface LsgImageSource {\n /** Candidate set for this breakpoint. Maps to `<source srcset>`. */\n srcset: string;\n /** Media condition. Maps to `<source media>`. Omit for the fallback source. */\n media?: string;\n}\n\nexport interface LsgImageProps {\n /** Image URL rendered by the component. Maps to Core Image `src`. */\n imageUrl?: string;\n /** Alternative text for the image. Maps to Core Image `alt`. */\n imageAlt?: string;\n /** Candidate set for native adaptive loading. Maps to Core Image `srcset`. Ignored when `sources` is set, mirroring the AEM crops branch. */\n srcset?: string;\n /** Responsive `<source>` variants, as AEM emits from the Scene7 crop map. */\n sources?: LsgImageSource[];\n /** Intrinsic width of the image. Maps to Core Image `width`. */\n width?: number | string;\n /** Intrinsic height of the image. Maps to Core Image `height`. */\n height?: number | string;\n /** URI template used by AEM to request a rendition. Maps to Core Image `srcUriTemplate`. */\n srcUriTemplate?: string;\n /** Native lazy loading, as per the Core Image `disableLazyLoading` policy. Default: true. */\n lazyEnabled?: boolean;\n /** Render the title as the image tooltip instead of the caption. Maps to Core Image `displayPopupTitle`. */\n displayPopupTitle?: boolean;\n /** Component id. Maps to Core Image `id`. */\n id?: string;\n /** Serialised data layer payload. Maps to Core Image `data.json`. */\n dataLayer?: string;\n /** Asset UUID. Maps to Core Image `uuid`. */\n assetId?: string;\n /** Marks the image as a Dynamic Media image. Maps to Core Image `dmImage`. */\n dmImage?: boolean | string;\n /** Up to 3 tag pills overlaid on the image. */\n tags?: LsgImageTag[];\n /** Image title. Maps to the AEM Core Image caption/title. */\n title?: string;\n /** LSG-specific description revealed on hover/focus. */\n description?: string;\n /** Backward-compatible alias for description. */\n caption?: string;\n /** Optional image link. Maps to Core Image `imageLink`. */\n href?: string;\n className?: string;\n}\n\nfunction isSafeUrl(url: string | undefined): boolean {\n if (!url) return false;\n\n const lower = url.toLowerCase().trim();\n if (\n lower.startsWith(\"javascript:\") ||\n lower.startsWith(\"data:\") ||\n lower.startsWith(\"vbscript:\")\n ) {\n return false;\n }\n\n return (\n lower.startsWith(\"/\") ||\n lower.startsWith(\"http://\") ||\n lower.startsWith(\"https://\") ||\n lower.startsWith(\"mailto:\") ||\n lower.startsWith(\"tel:\") ||\n !lower.includes(\":\")\n );\n}\n\nexport const LsgImage: React.FC<LsgImageProps> = ({\n imageUrl,\n imageAlt = \"\",\n srcset,\n sources = [],\n width,\n height,\n srcUriTemplate,\n lazyEnabled = true,\n displayPopupTitle = false,\n id,\n dataLayer,\n assetId,\n dmImage,\n tags = [],\n title,\n description,\n caption,\n href,\n className = \"\",\n}) => {\n // Core Image v3 renders nothing without a src; the AEM LSG model gates on the\n // same condition via `model.ready`.\n if (!imageUrl) {\n return null;\n }\n\n const text = description ?? caption;\n\n const visibleTags: LsgImageTag[] = Array.isArray(tags)\n ? tags\n .filter(\n (tag): tag is LsgImageTag =>\n Boolean(tag) &&\n typeof tag.label === \"string\" &&\n tag.label.trim().length > 0,\n )\n .slice(0, 3)\n : [];\n\n const visibleSources: LsgImageSource[] = Array.isArray(sources)\n ? sources.filter(\n (source): source is LsgImageSource =>\n Boolean(source) &&\n typeof source.srcset === \"string\" &&\n source.srcset.trim().length > 0,\n )\n : [];\n\n const rootClass = [\"lsg-image\", \"cmp-image\", className]\n .filter(Boolean)\n .join(\" \");\n const safeHref = href && isSafeUrl(href) ? href : undefined;\n const linkLabel = title ? `View ${title}` : \"View image\";\n const showTitle = Boolean(title) && !displayPopupTitle;\n const showCaption = showTitle || Boolean(text);\n\n return (\n <div\n className={rootClass}\n id={id}\n data-cmp-data-layer={dataLayer}\n data-asset-id={assetId}\n data-cmp-dmimage={dmImage ? String(dmImage) : undefined}\n itemScope\n itemType=\"http://schema.org/ImageObject\"\n >\n <div className=\"lsg-image__media\">\n <div className=\"lsg-image__picture\">\n <picture>\n {visibleSources.map((source, index) => (\n <source\n key={`${source.media ?? \"default\"}-${index}`}\n media={source.media}\n srcSet={source.srcset}\n />\n ))}\n\n <img\n className=\"lsg-image__img cmp-image__image\"\n src={imageUrl}\n srcSet={visibleSources.length > 0 ? undefined : srcset}\n alt={imageAlt}\n title={displayPopupTitle ? title : undefined}\n width={width}\n height={height}\n data-cmp-src={srcUriTemplate}\n itemProp=\"contentUrl\"\n loading={lazyEnabled ? \"lazy\" : undefined}\n />\n </picture>\n </div>\n\n {safeHref && (\n <a\n className=\"lsg-image__link cmp-image__link\"\n href={safeHref}\n aria-label={linkLabel}\n data-cmp-clickable={dataLayer ? true : undefined}\n />\n )}\n\n {visibleTags.length > 0 && (\n <div className=\"lsg-image__tags\">\n {visibleTags.map((tag, index) => (\n <span\n key={`${tag.label}-${index}`}\n className=\"lsg-image__tag\"\n >\n {tag.label}\n </span>\n ))}\n </div>\n )}\n </div>\n\n {showCaption && (\n <div className=\"lsg-image__caption\">\n {showTitle && (\n <p className=\"lsg-image__title cmp-image__title\" itemProp=\"caption\">\n {title}\n </p>\n )}\n {text && <p className=\"lsg-image__text\">{text}</p>}\n </div>\n )}\n\n {title && displayPopupTitle && <meta itemProp=\"caption\" content={title} />}\n </div>\n );\n};\n","import React, { useState } from \"react\";\nimport \"./LsgVideo.scss\";\n\nexport interface LsgVideoTag {\n label: string;\n}\n\nexport type LsgVideoDisplayMode = \"inline\" | \"full-width\" | \"content\";\n\nexport interface LsgVideoProps {\n /** URL of the video thumbnail / poster image. Optional. */\n imageUrl?: string;\n /** Alt text for the poster image. */\n imageAlt?: string;\n /** Up to 3 tag pills overlaid on the poster. Extra entries are ignored. */\n tags?: LsgVideoTag[];\n /** Video title shown in the caption bar. Optional. */\n title?: string;\n /** Caption / description text below the title, revealed on hover / focus. */\n caption?: string;\n /** Href for the play action — used only when no video source is supplied. */\n href?: string;\n /** Fired when the play control is activated. */\n onPlay?: () => void;\n /** Native DAM/direct media URL, or an external YouTube/Vimeo URL. */\n videoUrl?: string;\n /** Autoplay the video/embed as soon as it renders. Default: false. */\n autoplay?: boolean;\n /** Loop playback. Default: false. */\n loop?: boolean;\n /** Mute playback. Default: false. */\n muted?: boolean;\n /** Show native/embed playback controls. Default: true. */\n controls?: boolean;\n /** Layout variant. Default: \"content\". */\n displayMode?: LsgVideoDisplayMode;\n /** Show or hide the tag pills overlay. Default: true. */\n showTags?: boolean;\n className?: string;\n}\n\ninterface EmbedInfo {\n provider: \"youtube\" | \"vimeo\";\n embedUrl: string;\n}\n\nfunction buildUrl(base: string, params: Record<string, string>): string {\n try {\n const url = new URL(base);\n Object.keys(params).forEach((key) => url.searchParams.set(key, params[key]));\n return url.toString();\n } catch {\n return base;\n }\n}\n\nfunction getEmbedInfo(\n videoUrl: string | undefined,\n opts: { autoplay: boolean; loop: boolean; muted: boolean; controls: boolean },\n): EmbedInfo | null {\n if (!videoUrl || typeof videoUrl !== \"string\") return null;\n\n try {\n const url = new URL(videoUrl);\n const host = url.hostname.replace(/^www\\./, \"\");\n const path = url.pathname;\n\n if (host === \"youtube.com\" || host === \"youtube-nocookie.com\" || host === \"youtu.be\") {\n let id: string | null = null;\n if (host === \"youtu.be\") {\n id = path.slice(1);\n } else if (path.startsWith(\"/embed/\") || path.startsWith(\"/shorts/\")) {\n id = path.split(\"/\")[2];\n } else if (path === \"/watch\") {\n id = url.searchParams.get(\"v\");\n }\n if (id && /^[A-Za-z0-9_-]{11}$/.test(id)) {\n const params: Record<string, string> = {\n autoplay: opts.autoplay ? \"1\" : \"0\",\n mute: opts.muted ? \"1\" : \"0\",\n controls: opts.controls ? \"1\" : \"0\",\n rel: \"0\",\n };\n if (opts.loop) { params.loop = \"1\"; params.playlist = id; }\n const baseHost = host === \"youtube-nocookie.com\" ? \"youtube-nocookie.com\" : \"youtube.com\";\n return { provider: \"youtube\", embedUrl: buildUrl(`https://www.${baseHost}/embed/${id}`, params) };\n }\n }\n\n if (host === \"vimeo.com\" || host === \"player.vimeo.com\") {\n let id: string | null = null;\n if (host === \"player.vimeo.com\" && path.startsWith(\"/video/\")) {\n id = path.split(\"/\")[2];\n } else {\n const match = path.match(/^\\/(\\d+)$/);\n if (match) id = match[1];\n }\n if (id && /^\\d+$/.test(id)) {\n const params: Record<string, string> = {\n autoplay: opts.autoplay ? \"1\" : \"0\",\n muted: opts.muted ? \"1\" : \"0\",\n loop: opts.loop ? \"1\" : \"0\",\n controls: opts.controls ? \"1\" : \"0\",\n };\n return { provider: \"vimeo\", embedUrl: buildUrl(`https://player.vimeo.com/video/${id}`, params) };\n }\n }\n } catch {\n return null;\n }\n return null;\n}\n\nfunction isSafeUrl(url: string | undefined): boolean {\n if (!url) return false;\n const lower = url.toLowerCase().trim();\n if (lower.startsWith(\"javascript:\") || lower.startsWith(\"data:\") || lower.startsWith(\"vbscript:\")) return false;\n return (\n lower.startsWith(\"/\") ||\n lower.startsWith(\"http://\") ||\n lower.startsWith(\"https://\") ||\n lower.startsWith(\"mailto:\") ||\n lower.startsWith(\"tel:\") ||\n !lower.includes(\":\")\n );\n}\n\nconst PlayIcon = (\n <svg\n className=\"lsg-video__play-svg\"\n width=\"60\"\n height=\"60\"\n viewBox=\"0 0 60 60\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <circle cx=\"30\" cy=\"30\" r=\"30\" fill=\"currentColor\" fillOpacity=\"0.15\" />\n <polygon points=\"24,18 46,30 24,42\" fill=\"currentColor\" />\n </svg>\n);\n\nexport const LsgVideo: React.FC<LsgVideoProps> = ({\n imageUrl,\n imageAlt = \"\",\n tags = [],\n title,\n caption,\n href,\n onPlay,\n videoUrl,\n autoplay = false,\n loop = false,\n muted = false,\n controls = true,\n displayMode = \"content\",\n showTags = true,\n className = \"\",\n}) => {\n const [isRevealed, setIsRevealed] = useState(false);\n\n const hasVideoSource = typeof videoUrl === \"string\" && videoUrl.length > 0;\n const embedInfo = hasVideoSource ? getEmbedInfo(videoUrl, { autoplay, loop, muted, controls }) : null;\n const isEmbed = embedInfo !== null;\n const isNativeSource = hasVideoSource && !isEmbed;\n const showMedia = hasVideoSource && (autoplay || isRevealed);\n\n const visibleTags: LsgVideoTag[] =\n showTags && Array.isArray(tags)\n ? tags\n .filter(\n (tag): tag is LsgVideoTag =>\n Boolean(tag) && typeof tag.label === \"string\" && tag.label.trim().length > 0,\n )\n .slice(0, 3)\n : [];\n\n const handleActivate = (e: React.MouseEvent) => {\n if (hasVideoSource) {\n e.preventDefault();\n setIsRevealed(true);\n onPlay?.();\n return;\n }\n if (href && isSafeUrl(href)) return;\n if (onPlay) { e.preventDefault(); onPlay(); }\n };\n\n const playLabel = title ? `Play ${title}` : \"Play video\";\n const rootClass = [\"lsg-video\", `lsg-video--${displayMode}`, className].filter(Boolean).join(\" \");\n const showCaption = Boolean(title) || Boolean(caption);\n\n const renderPlayControl = () => {\n if (hasVideoSource) {\n return (\n <button type=\"button\" className=\"lsg-video__play\" aria-label={playLabel} onClick={handleActivate}>\n {PlayIcon}\n </button>\n );\n }\n if (href && isSafeUrl(href)) {\n return (\n <a href={href} className=\"lsg-video__play\" aria-label={playLabel} onClick={handleActivate}>\n {PlayIcon}\n </a>\n );\n }\n return (\n <button type=\"button\" className=\"lsg-video__play\" aria-label={playLabel} onClick={handleActivate}>\n {PlayIcon}\n </button>\n );\n };\n\n return (\n <div className={rootClass}>\n <div className=\"lsg-video__media\">\n {showMedia ? (\n isEmbed ? (\n <div className=\"lsg-video__embed\">\n <iframe\n className=\"lsg-video__iframe\"\n src={embedInfo!.embedUrl}\n title={title || \"Video\"}\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n referrerPolicy=\"strict-origin-when-cross-origin\"\n allowFullScreen\n loading=\"lazy\"\n />\n </div>\n ) : (\n isNativeSource && (\n // eslint-disable-next-line jsx-a11y/media-has-caption\n <video\n className=\"lsg-video__native\"\n poster={imageUrl || undefined}\n controls={controls}\n autoPlay\n loop={loop}\n muted={muted}\n playsInline\n >\n <source src={videoUrl} />\n </video>\n )\n )\n ) : (\n <>\n <div className=\"lsg-video__poster\">\n {imageUrl && <img className=\"lsg-video__poster-img\" src={imageUrl} alt={imageAlt} loading=\"lazy\" />}\n </div>\n {visibleTags.length > 0 && (\n <div className=\"lsg-video__tags\">\n {visibleTags.map((tag, i) => (\n <span key={`${tag.label}-${i}`} className=\"lsg-video__tag\">\n {tag.label}\n </span>\n ))}\n </div>\n )}\n {renderPlayControl()}\n </>\n )}\n {/* Caption inside __media — positioned statically (T1) or absolutely at bottom (T2/T3) via CSS tokens */}\n {showCaption && (\n <div className=\"lsg-video__caption\">\n {title && <p className=\"lsg-video__title\">{title}</p>}\n {caption && <p className=\"lsg-video__text\">{caption}</p>}\n </div>\n )}\n </div>\n </div>\n );\n};\n","function isNumber(subject) {\n return typeof subject === 'number';\n}\nfunction isString(subject) {\n return typeof subject === 'string';\n}\nfunction isBoolean(subject) {\n return typeof subject === 'boolean';\n}\nfunction isObject(subject) {\n return Object.prototype.toString.call(subject) === '[object Object]';\n}\nfunction mathAbs(n) {\n return Math.abs(n);\n}\nfunction mathSign(n) {\n return Math.sign(n);\n}\nfunction deltaAbs(valueB, valueA) {\n return mathAbs(valueB - valueA);\n}\nfunction factorAbs(valueB, valueA) {\n if (valueB === 0 || valueA === 0) return 0;\n if (mathAbs(valueB) <= mathAbs(valueA)) return 0;\n const diff = deltaAbs(mathAbs(valueB), mathAbs(valueA));\n return mathAbs(diff / valueB);\n}\nfunction roundToTwoDecimals(num) {\n return Math.round(num * 100) / 100;\n}\nfunction arrayKeys(array) {\n return objectKeys(array).map(Number);\n}\nfunction arrayLast(array) {\n return array[arrayLastIndex(array)];\n}\nfunction arrayLastIndex(array) {\n return Math.max(0, array.length - 1);\n}\nfunction arrayIsLastIndex(array, index) {\n return index === arrayLastIndex(array);\n}\nfunction arrayFromNumber(n, startAt = 0) {\n return Array.from(Array(n), (_, i) => startAt + i);\n}\nfunction objectKeys(object) {\n return Object.keys(object);\n}\nfunction objectsMergeDeep(objectA, objectB) {\n return [objectA, objectB].reduce((mergedObjects, currentObject) => {\n objectKeys(currentObject).forEach(key => {\n const valueA = mergedObjects[key];\n const valueB = currentObject[key];\n const areObjects = isObject(valueA) && isObject(valueB);\n mergedObjects[key] = areObjects ? objectsMergeDeep(valueA, valueB) : valueB;\n });\n return mergedObjects;\n }, {});\n}\nfunction isMouseEvent(evt, ownerWindow) {\n return typeof ownerWindow.MouseEvent !== 'undefined' && evt instanceof ownerWindow.MouseEvent;\n}\n\nfunction Alignment(align, viewSize) {\n const predefined = {\n start,\n center,\n end\n };\n function start() {\n return 0;\n }\n function center(n) {\n return end(n) / 2;\n }\n function end(n) {\n return viewSize - n;\n }\n function measure(n, index) {\n if (isString(align)) return predefined[align](n);\n return align(viewSize, n, index);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction EventStore() {\n let listeners = [];\n function add(node, type, handler, options = {\n passive: true\n }) {\n let removeListener;\n if ('addEventListener' in node) {\n node.addEventListener(type, handler, options);\n removeListener = () => node.removeEventListener(type, handler, options);\n } else {\n const legacyMediaQueryList = node;\n legacyMediaQueryList.addListener(handler);\n removeListener = () => legacyMediaQueryList.removeListener(handler);\n }\n listeners.push(removeListener);\n return self;\n }\n function clear() {\n listeners = listeners.filter(remove => remove());\n }\n const self = {\n add,\n clear\n };\n return self;\n}\n\nfunction Animations(ownerDocument, ownerWindow, update, render) {\n const documentVisibleHandler = EventStore();\n const fixedTimeStep = 1000 / 60;\n let lastTimeStamp = null;\n let accumulatedTime = 0;\n let animationId = 0;\n function init() {\n documentVisibleHandler.add(ownerDocument, 'visibilitychange', () => {\n if (ownerDocument.hidden) reset();\n });\n }\n function destroy() {\n stop();\n documentVisibleHandler.clear();\n }\n function animate(timeStamp) {\n if (!animationId) return;\n if (!lastTimeStamp) {\n lastTimeStamp = timeStamp;\n update();\n update();\n }\n const timeElapsed = timeStamp - lastTimeStamp;\n lastTimeStamp = timeStamp;\n accumulatedTime += timeElapsed;\n while (accumulatedTime >= fixedTimeStep) {\n update();\n accumulatedTime -= fixedTimeStep;\n }\n const alpha = accumulatedTime / fixedTimeStep;\n render(alpha);\n if (animationId) {\n animationId = ownerWindow.requestAnimationFrame(animate);\n }\n }\n function start() {\n if (animationId) return;\n animationId = ownerWindow.requestAnimationFrame(animate);\n }\n function stop() {\n ownerWindow.cancelAnimationFrame(animationId);\n lastTimeStamp = null;\n accumulatedTime = 0;\n animationId = 0;\n }\n function reset() {\n lastTimeStamp = null;\n accumulatedTime = 0;\n }\n const self = {\n init,\n destroy,\n start,\n stop,\n update,\n render\n };\n return self;\n}\n\nfunction Axis(axis, contentDirection) {\n const isRightToLeft = contentDirection === 'rtl';\n const isVertical = axis === 'y';\n const scroll = isVertical ? 'y' : 'x';\n const cross = isVertical ? 'x' : 'y';\n const sign = !isVertical && isRightToLeft ? -1 : 1;\n const startEdge = getStartEdge();\n const endEdge = getEndEdge();\n function measureSize(nodeRect) {\n const {\n height,\n width\n } = nodeRect;\n return isVertical ? height : width;\n }\n function getStartEdge() {\n if (isVertical) return 'top';\n return isRightToLeft ? 'right' : 'left';\n }\n function getEndEdge() {\n if (isVertical) return 'bottom';\n return isRightToLeft ? 'left' : 'right';\n }\n function direction(n) {\n return n * sign;\n }\n const self = {\n scroll,\n cross,\n startEdge,\n endEdge,\n measureSize,\n direction\n };\n return self;\n}\n\nfunction Limit(min = 0, max = 0) {\n const length = mathAbs(min - max);\n function reachedMin(n) {\n return n < min;\n }\n function reachedMax(n) {\n return n > max;\n }\n function reachedAny(n) {\n return reachedMin(n) || reachedMax(n);\n }\n function constrain(n) {\n if (!reachedAny(n)) return n;\n return reachedMin(n) ? min : max;\n }\n function removeOffset(n) {\n if (!length) return n;\n return n - length * Math.ceil((n - max) / length);\n }\n const self = {\n length,\n max,\n min,\n constrain,\n reachedAny,\n reachedMax,\n reachedMin,\n removeOffset\n };\n return self;\n}\n\nfunction Counter(max, start, loop) {\n const {\n constrain\n } = Limit(0, max);\n const loopEnd = max + 1;\n let counter = withinLimit(start);\n function withinLimit(n) {\n return !loop ? constrain(n) : mathAbs((loopEnd + n) % loopEnd);\n }\n function get() {\n return counter;\n }\n function set(n) {\n counter = withinLimit(n);\n return self;\n }\n function add(n) {\n return clone().set(get() + n);\n }\n function clone() {\n return Counter(max, get(), loop);\n }\n const self = {\n get,\n set,\n add,\n clone\n };\n return self;\n}\n\nfunction DragHandler(axis, rootNode, ownerDocument, ownerWindow, target, dragTracker, location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, baseFriction, watchDrag) {\n const {\n cross: crossAxis,\n direction\n } = axis;\n const focusNodes = ['INPUT', 'SELECT', 'TEXTAREA'];\n const nonPassiveEvent = {\n passive: false\n };\n const initEvents = EventStore();\n const dragEvents = EventStore();\n const goToNextThreshold = Limit(50, 225).constrain(percentOfView.measure(20));\n const snapForceBoost = {\n mouse: 300,\n touch: 400\n };\n const freeForceBoost = {\n mouse: 500,\n touch: 600\n };\n const baseSpeed = dragFree ? 43 : 25;\n let isMoving = false;\n let startScroll = 0;\n let startCross = 0;\n let pointerIsDown = false;\n let preventScroll = false;\n let preventClick = false;\n let isMouse = false;\n function init(emblaApi) {\n if (!watchDrag) return;\n function downIfAllowed(evt) {\n if (isBoolean(watchDrag) || watchDrag(emblaApi, evt)) down(evt);\n }\n const node = rootNode;\n initEvents.add(node, 'dragstart', evt => evt.preventDefault(), nonPassiveEvent).add(node, 'touchmove', () => undefined, nonPassiveEvent).add(node, 'touchend', () => undefined).add(node, 'touchstart', downIfAllowed).add(node, 'mousedown', downIfAllowed).add(node, 'touchcancel', up).add(node, 'contextmenu', up).add(node, 'click', click, true);\n }\n function destroy() {\n initEvents.clear();\n dragEvents.clear();\n }\n function addDragEvents() {\n const node = isMouse ? ownerDocument : rootNode;\n dragEvents.add(node, 'touchmove', move, nonPassiveEvent).add(node, 'touchend', up).add(node, 'mousemove', move, nonPassiveEvent).add(node, 'mouseup', up);\n }\n function isFocusNode(node) {\n const nodeName = node.nodeName || '';\n return focusNodes.includes(nodeName);\n }\n function forceBoost() {\n const boost = dragFree ? freeForceBoost : snapForceBoost;\n const type = isMouse ? 'mouse' : 'touch';\n return boost[type];\n }\n function allowedForce(force, targetChanged) {\n const next = index.add(mathSign(force) * -1);\n const baseForce = scrollTarget.byDistance(force, !dragFree).distance;\n if (dragFree || mathAbs(force) < goToNextThreshold) return baseForce;\n if (skipSnaps && targetChanged) return baseForce * 0.5;\n return scrollTarget.byIndex(next.get(), 0).distance;\n }\n function down(evt) {\n const isMouseEvt = isMouseEvent(evt, ownerWindow);\n isMouse = isMouseEvt;\n preventClick = dragFree && isMouseEvt && !evt.buttons && isMoving;\n isMoving = deltaAbs(target.get(), location.get()) >= 2;\n if (isMouseEvt && evt.button !== 0) return;\n if (isFocusNode(evt.target)) return;\n pointerIsDown = true;\n dragTracker.pointerDown(evt);\n scrollBody.useFriction(0).useDuration(0);\n target.set(location);\n addDragEvents();\n startScroll = dragTracker.readPoint(evt);\n startCross = dragTracker.readPoint(evt, crossAxis);\n eventHandler.emit('pointerDown');\n }\n function move(evt) {\n const isTouchEvt = !isMouseEvent(evt, ownerWindow);\n if (isTouchEvt && evt.touches.length >= 2) return up(evt);\n const lastScroll = dragTracker.readPoint(evt);\n const lastCross = dragTracker.readPoint(evt, crossAxis);\n const diffScroll = deltaAbs(lastScroll, startScroll);\n const diffCross = deltaAbs(lastCross, startCross);\n if (!preventScroll && !isMouse) {\n if (!evt.cancelable) return up(evt);\n preventScroll = diffScroll > diffCross;\n if (!preventScroll) return up(evt);\n }\n const diff = dragTracker.pointerMove(evt);\n if (diffScroll > dragThreshold) preventClick = true;\n scrollBody.useFriction(0.3).useDuration(0.75);\n animation.start();\n target.add(direction(diff));\n evt.preventDefault();\n }\n function up(evt) {\n const currentLocation = scrollTarget.byDistance(0, false);\n const targetChanged = currentLocation.index !== index.get();\n const rawForce = dragTracker.pointerUp(evt) * forceBoost();\n const force = allowedForce(direction(rawForce), targetChanged);\n const forceFactor = factorAbs(rawForce, force);\n const speed = baseSpeed - 10 * forceFactor;\n const friction = baseFriction + forceFactor / 50;\n preventScroll = false;\n pointerIsDown = false;\n dragEvents.clear();\n scrollBody.useDuration(speed).useFriction(friction);\n scrollTo.distance(force, !dragFree);\n isMouse = false;\n eventHandler.emit('pointerUp');\n }\n function click(evt) {\n if (preventClick) {\n evt.stopPropagation();\n evt.preventDefault();\n preventClick = false;\n }\n }\n function pointerDown() {\n return pointerIsDown;\n }\n const self = {\n init,\n destroy,\n pointerDown\n };\n return self;\n}\n\nfunction DragTracker(axis, ownerWindow) {\n const logInterval = 170;\n let startEvent;\n let lastEvent;\n function readTime(evt) {\n return evt.timeStamp;\n }\n function readPoint(evt, evtAxis) {\n const property = evtAxis || axis.scroll;\n const coord = `client${property === 'x' ? 'X' : 'Y'}`;\n return (isMouseEvent(evt, ownerWindow) ? evt : evt.touches[0])[coord];\n }\n function pointerDown(evt) {\n startEvent = evt;\n lastEvent = evt;\n return readPoint(evt);\n }\n function pointerMove(evt) {\n const diff = readPoint(evt) - readPoint(lastEvent);\n const expired = readTime(evt) - readTime(startEvent) > logInterval;\n lastEvent = evt;\n if (expired) startEvent = evt;\n return diff;\n }\n function pointerUp(evt) {\n if (!startEvent || !lastEvent) return 0;\n const diffDrag = readPoint(lastEvent) - readPoint(startEvent);\n const diffTime = readTime(evt) - readTime(startEvent);\n const expired = readTime(evt) - readTime(lastEvent) > logInterval;\n const force = diffDrag / diffTime;\n const isFlick = diffTime && !expired && mathAbs(force) > 0.1;\n return isFlick ? force : 0;\n }\n const self = {\n pointerDown,\n pointerMove,\n pointerUp,\n readPoint\n };\n return self;\n}\n\nfunction NodeRects() {\n function measure(node) {\n const {\n offsetTop,\n offsetLeft,\n offsetWidth,\n offsetHeight\n } = node;\n const offset = {\n top: offsetTop,\n right: offsetLeft + offsetWidth,\n bottom: offsetTop + offsetHeight,\n left: offsetLeft,\n width: offsetWidth,\n height: offsetHeight\n };\n return offset;\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction PercentOfView(viewSize) {\n function measure(n) {\n return viewSize * (n / 100);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects) {\n const observeNodes = [container].concat(slides);\n let resizeObserver;\n let containerSize;\n let slideSizes = [];\n let destroyed = false;\n function readSize(node) {\n return axis.measureSize(nodeRects.measure(node));\n }\n function init(emblaApi) {\n if (!watchResize) return;\n containerSize = readSize(container);\n slideSizes = slides.map(readSize);\n function defaultCallback(entries) {\n for (const entry of entries) {\n if (destroyed) return;\n const isContainer = entry.target === container;\n const slideIndex = slides.indexOf(entry.target);\n const lastSize = isContainer ? containerSize : slideSizes[slideIndex];\n const newSize = readSize(isContainer ? container : slides[slideIndex]);\n const diffSize = mathAbs(newSize - lastSize);\n if (diffSize >= 0.5) {\n emblaApi.reInit();\n eventHandler.emit('resize');\n break;\n }\n }\n }\n resizeObserver = new ResizeObserver(entries => {\n if (isBoolean(watchResize) || watchResize(emblaApi, entries)) {\n defaultCallback(entries);\n }\n });\n ownerWindow.requestAnimationFrame(() => {\n observeNodes.forEach(node => resizeObserver.observe(node));\n });\n }\n function destroy() {\n destroyed = true;\n if (resizeObserver) resizeObserver.disconnect();\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction ScrollBody(location, offsetLocation, previousLocation, target, baseDuration, baseFriction) {\n let scrollVelocity = 0;\n let scrollDirection = 0;\n let scrollDuration = baseDuration;\n let scrollFriction = baseFriction;\n let rawLocation = location.get();\n let rawLocationPrevious = 0;\n function seek() {\n const displacement = target.get() - location.get();\n const isInstant = !scrollDuration;\n let scrollDistance = 0;\n if (isInstant) {\n scrollVelocity = 0;\n previousLocation.set(target);\n location.set(target);\n scrollDistance = displacement;\n } else {\n previousLocation.set(location);\n scrollVelocity += displacement / scrollDuration;\n scrollVelocity *= scrollFriction;\n rawLocation += scrollVelocity;\n location.add(scrollVelocity);\n scrollDistance = rawLocation - rawLocationPrevious;\n }\n scrollDirection = mathSign(scrollDistance);\n rawLocationPrevious = rawLocation;\n return self;\n }\n function settled() {\n const diff = target.get() - offsetLocation.get();\n return mathAbs(diff) < 0.001;\n }\n function duration() {\n return scrollDuration;\n }\n function direction() {\n return scrollDirection;\n }\n function velocity() {\n return scrollVelocity;\n }\n function useBaseDuration() {\n return useDuration(baseDuration);\n }\n function useBaseFriction() {\n return useFriction(baseFriction);\n }\n function useDuration(n) {\n scrollDuration = n;\n return self;\n }\n function useFriction(n) {\n scrollFriction = n;\n return self;\n }\n const self = {\n direction,\n duration,\n velocity,\n seek,\n settled,\n useBaseFriction,\n useBaseDuration,\n useFriction,\n useDuration\n };\n return self;\n}\n\nfunction ScrollBounds(limit, location, target, scrollBody, percentOfView) {\n const pullBackThreshold = percentOfView.measure(10);\n const edgeOffsetTolerance = percentOfView.measure(50);\n const frictionLimit = Limit(0.1, 0.99);\n let disabled = false;\n function shouldConstrain() {\n if (disabled) return false;\n if (!limit.reachedAny(target.get())) return false;\n if (!limit.reachedAny(location.get())) return false;\n return true;\n }\n function constrain(pointerDown) {\n if (!shouldConstrain()) return;\n const edge = limit.reachedMin(location.get()) ? 'min' : 'max';\n const diffToEdge = mathAbs(limit[edge] - location.get());\n const diffToTarget = target.get() - location.get();\n const friction = frictionLimit.constrain(diffToEdge / edgeOffsetTolerance);\n target.subtract(diffToTarget * friction);\n if (!pointerDown && mathAbs(diffToTarget) < pullBackThreshold) {\n target.set(limit.constrain(target.get()));\n scrollBody.useDuration(25).useBaseFriction();\n }\n }\n function toggleActive(active) {\n disabled = !active;\n }\n const self = {\n shouldConstrain,\n constrain,\n toggleActive\n };\n return self;\n}\n\nfunction ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance) {\n const scrollBounds = Limit(-contentSize + viewSize, 0);\n const snapsBounded = measureBounded();\n const scrollContainLimit = findScrollContainLimit();\n const snapsContained = measureContained();\n function usePixelTolerance(bound, snap) {\n return deltaAbs(bound, snap) <= 1;\n }\n function findScrollContainLimit() {\n const startSnap = snapsBounded[0];\n const endSnap = arrayLast(snapsBounded);\n const min = snapsBounded.lastIndexOf(startSnap);\n const max = snapsBounded.indexOf(endSnap) + 1;\n return Limit(min, max);\n }\n function measureBounded() {\n return snapsAligned.map((snapAligned, index) => {\n const {\n min,\n max\n } = scrollBounds;\n const snap = scrollBounds.constrain(snapAligned);\n const isFirst = !index;\n const isLast = arrayIsLastIndex(snapsAligned, index);\n if (isFirst) return max;\n if (isLast) return min;\n if (usePixelTolerance(min, snap)) return min;\n if (usePixelTolerance(max, snap)) return max;\n return snap;\n }).map(scrollBound => parseFloat(scrollBound.toFixed(3)));\n }\n function measureContained() {\n if (contentSize <= viewSize + pixelTolerance) return [scrollBounds.max];\n if (containScroll === 'keepSnaps') return snapsBounded;\n const {\n min,\n max\n } = scrollContainLimit;\n return snapsBounded.slice(min, max);\n }\n const self = {\n snapsContained,\n scrollContainLimit\n };\n return self;\n}\n\nfunction ScrollLimit(contentSize, scrollSnaps, loop) {\n const max = scrollSnaps[0];\n const min = loop ? max - contentSize : arrayLast(scrollSnaps);\n const limit = Limit(min, max);\n const self = {\n limit\n };\n return self;\n}\n\nfunction ScrollLooper(contentSize, limit, location, vectors) {\n const jointSafety = 0.1;\n const min = limit.min + jointSafety;\n const max = limit.max + jointSafety;\n const {\n reachedMin,\n reachedMax\n } = Limit(min, max);\n function shouldLoop(direction) {\n if (direction === 1) return reachedMax(location.get());\n if (direction === -1) return reachedMin(location.get());\n return false;\n }\n function loop(direction) {\n if (!shouldLoop(direction)) return;\n const loopDistance = contentSize * (direction * -1);\n vectors.forEach(v => v.add(loopDistance));\n }\n const self = {\n loop\n };\n return self;\n}\n\nfunction ScrollProgress(limit) {\n const {\n max,\n length\n } = limit;\n function get(n) {\n const currentLocation = n - max;\n return length ? currentLocation / -length : 0;\n }\n const self = {\n get\n };\n return self;\n}\n\nfunction ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll) {\n const {\n startEdge,\n endEdge\n } = axis;\n const {\n groupSlides\n } = slidesToScroll;\n const alignments = measureSizes().map(alignment.measure);\n const snaps = measureUnaligned();\n const snapsAligned = measureAligned();\n function measureSizes() {\n return groupSlides(slideRects).map(rects => arrayLast(rects)[endEdge] - rects[0][startEdge]).map(mathAbs);\n }\n function measureUnaligned() {\n return slideRects.map(rect => containerRect[startEdge] - rect[startEdge]).map(snap => -mathAbs(snap));\n }\n function measureAligned() {\n return groupSlides(snaps).map(g => g[0]).map((snap, index) => snap + alignments[index]);\n }\n const self = {\n snaps,\n snapsAligned\n };\n return self;\n}\n\nfunction SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes) {\n const {\n groupSlides\n } = slidesToScroll;\n const {\n min,\n max\n } = scrollContainLimit;\n const slideRegistry = createSlideRegistry();\n function createSlideRegistry() {\n const groupedSlideIndexes = groupSlides(slideIndexes);\n const doNotContain = !containSnaps || containScroll === 'keepSnaps';\n if (scrollSnaps.length === 1) return [slideIndexes];\n if (doNotContain) return groupedSlideIndexes;\n return groupedSlideIndexes.slice(min, max).map((group, index, groups) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(groups, index);\n if (isFirst) {\n const range = arrayLast(groups[0]) + 1;\n return arrayFromNumber(range);\n }\n if (isLast) {\n const range = arrayLastIndex(slideIndexes) - arrayLast(groups)[0] + 1;\n return arrayFromNumber(range, arrayLast(groups)[0]);\n }\n return group;\n });\n }\n const self = {\n slideRegistry\n };\n return self;\n}\n\nfunction ScrollTarget(loop, scrollSnaps, contentSize, limit, targetVector) {\n const {\n reachedAny,\n removeOffset,\n constrain\n } = limit;\n function minDistance(distances) {\n return distances.concat().sort((a, b) => mathAbs(a) - mathAbs(b))[0];\n }\n function findTargetSnap(target) {\n const distance = loop ? removeOffset(target) : constrain(target);\n const ascDiffsToSnaps = scrollSnaps.map((snap, index) => ({\n diff: shortcut(snap - distance, 0),\n index\n })).sort((d1, d2) => mathAbs(d1.diff) - mathAbs(d2.diff));\n const {\n index\n } = ascDiffsToSnaps[0];\n return {\n index,\n distance\n };\n }\n function shortcut(target, direction) {\n const targets = [target, target + contentSize, target - contentSize];\n if (!loop) return target;\n if (!direction) return minDistance(targets);\n const matchingTargets = targets.filter(t => mathSign(t) === direction);\n if (matchingTargets.length) return minDistance(matchingTargets);\n return arrayLast(targets) - contentSize;\n }\n function byIndex(index, direction) {\n const diffToSnap = scrollSnaps[index] - targetVector.get();\n const distance = shortcut(diffToSnap, direction);\n return {\n index,\n distance\n };\n }\n function byDistance(distance, snap) {\n const target = targetVector.get() + distance;\n const {\n index,\n distance: targetSnapDistance\n } = findTargetSnap(target);\n const reachedBound = !loop && reachedAny(target);\n if (!snap || reachedBound) return {\n index,\n distance\n };\n const diffToSnap = scrollSnaps[index] - targetSnapDistance;\n const snapDistance = distance + shortcut(diffToSnap, 0);\n return {\n index,\n distance: snapDistance\n };\n }\n const self = {\n byDistance,\n byIndex,\n shortcut\n };\n return self;\n}\n\nfunction ScrollTo(animation, indexCurrent, indexPrevious, scrollBody, scrollTarget, targetVector, eventHandler) {\n function scrollTo(target) {\n const distanceDiff = target.distance;\n const indexDiff = target.index !== indexCurrent.get();\n targetVector.add(distanceDiff);\n if (distanceDiff) {\n if (scrollBody.duration()) {\n animation.start();\n } else {\n animation.update();\n animation.render(1);\n animation.update();\n }\n }\n if (indexDiff) {\n indexPrevious.set(indexCurrent.get());\n indexCurrent.set(target.index);\n eventHandler.emit('select');\n }\n }\n function distance(n, snap) {\n const target = scrollTarget.byDistance(n, snap);\n scrollTo(target);\n }\n function index(n, direction) {\n const targetIndex = indexCurrent.clone().set(n);\n const target = scrollTarget.byIndex(targetIndex.get(), direction);\n scrollTo(target);\n }\n const self = {\n distance,\n index\n };\n return self;\n}\n\nfunction SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus) {\n const focusListenerOptions = {\n passive: true,\n capture: true\n };\n let lastTabPressTime = 0;\n function init(emblaApi) {\n if (!watchFocus) return;\n function defaultCallback(index) {\n const nowTime = new Date().getTime();\n const diffTime = nowTime - lastTabPressTime;\n if (diffTime > 10) return;\n eventHandler.emit('slideFocusStart');\n root.scrollLeft = 0;\n const group = slideRegistry.findIndex(group => group.includes(index));\n if (!isNumber(group)) return;\n scrollBody.useDuration(0);\n scrollTo.index(group, 0);\n eventHandler.emit('slideFocus');\n }\n eventStore.add(document, 'keydown', registerTabPress, false);\n slides.forEach((slide, slideIndex) => {\n eventStore.add(slide, 'focus', evt => {\n if (isBoolean(watchFocus) || watchFocus(emblaApi, evt)) {\n defaultCallback(slideIndex);\n }\n }, focusListenerOptions);\n });\n }\n function registerTabPress(event) {\n if (event.code === 'Tab') lastTabPressTime = new Date().getTime();\n }\n const self = {\n init\n };\n return self;\n}\n\nfunction Vector1D(initialValue) {\n let value = initialValue;\n function get() {\n return value;\n }\n function set(n) {\n value = normalizeInput(n);\n }\n function add(n) {\n value += normalizeInput(n);\n }\n function subtract(n) {\n value -= normalizeInput(n);\n }\n function normalizeInput(n) {\n return isNumber(n) ? n : n.get();\n }\n const self = {\n get,\n set,\n add,\n subtract\n };\n return self;\n}\n\nfunction Translate(axis, container) {\n const translate = axis.scroll === 'x' ? x : y;\n const containerStyle = container.style;\n let previousTarget = null;\n let disabled = false;\n function x(n) {\n return `translate3d(${n}px,0px,0px)`;\n }\n function y(n) {\n return `translate3d(0px,${n}px,0px)`;\n }\n function to(target) {\n if (disabled) return;\n const newTarget = roundToTwoDecimals(axis.direction(target));\n if (newTarget === previousTarget) return;\n containerStyle.transform = translate(newTarget);\n previousTarget = newTarget;\n }\n function toggleActive(active) {\n disabled = !active;\n }\n function clear() {\n if (disabled) return;\n containerStyle.transform = '';\n if (!container.getAttribute('style')) container.removeAttribute('style');\n }\n const self = {\n clear,\n to,\n toggleActive\n };\n return self;\n}\n\nfunction SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, location, slides) {\n const roundingSafety = 0.5;\n const ascItems = arrayKeys(slideSizesWithGaps);\n const descItems = arrayKeys(slideSizesWithGaps).reverse();\n const loopPoints = startPoints().concat(endPoints());\n function removeSlideSizes(indexes, from) {\n return indexes.reduce((a, i) => {\n return a - slideSizesWithGaps[i];\n }, from);\n }\n function slidesInGap(indexes, gap) {\n return indexes.reduce((a, i) => {\n const remainingGap = removeSlideSizes(a, gap);\n return remainingGap > 0 ? a.concat([i]) : a;\n }, []);\n }\n function findSlideBounds(offset) {\n return snaps.map((snap, index) => ({\n start: snap - slideSizes[index] + roundingSafety + offset,\n end: snap + viewSize - roundingSafety + offset\n }));\n }\n function findLoopPoints(indexes, offset, isEndEdge) {\n const slideBounds = findSlideBounds(offset);\n return indexes.map(index => {\n const initial = isEndEdge ? 0 : -contentSize;\n const altered = isEndEdge ? contentSize : 0;\n const boundEdge = isEndEdge ? 'end' : 'start';\n const loopPoint = slideBounds[index][boundEdge];\n return {\n index,\n loopPoint,\n slideLocation: Vector1D(-1),\n translate: Translate(axis, slides[index]),\n target: () => location.get() > loopPoint ? initial : altered\n };\n });\n }\n function startPoints() {\n const gap = scrollSnaps[0];\n const indexes = slidesInGap(descItems, gap);\n return findLoopPoints(indexes, contentSize, false);\n }\n function endPoints() {\n const gap = viewSize - scrollSnaps[0] - 1;\n const indexes = slidesInGap(ascItems, gap);\n return findLoopPoints(indexes, -contentSize, true);\n }\n function canLoop() {\n return loopPoints.every(({\n index\n }) => {\n const otherIndexes = ascItems.filter(i => i !== index);\n return removeSlideSizes(otherIndexes, viewSize) <= 0.1;\n });\n }\n function loop() {\n loopPoints.forEach(loopPoint => {\n const {\n target,\n translate,\n slideLocation\n } = loopPoint;\n const shiftLocation = target();\n if (shiftLocation === slideLocation.get()) return;\n translate.to(shiftLocation);\n slideLocation.set(shiftLocation);\n });\n }\n function clear() {\n loopPoints.forEach(loopPoint => loopPoint.translate.clear());\n }\n const self = {\n canLoop,\n clear,\n loop,\n loopPoints\n };\n return self;\n}\n\nfunction SlidesHandler(container, eventHandler, watchSlides) {\n let mutationObserver;\n let destroyed = false;\n function init(emblaApi) {\n if (!watchSlides) return;\n function defaultCallback(mutations) {\n for (const mutation of mutations) {\n if (mutation.type === 'childList') {\n emblaApi.reInit();\n eventHandler.emit('slidesChanged');\n break;\n }\n }\n }\n mutationObserver = new MutationObserver(mutations => {\n if (destroyed) return;\n if (isBoolean(watchSlides) || watchSlides(emblaApi, mutations)) {\n defaultCallback(mutations);\n }\n });\n mutationObserver.observe(container, {\n childList: true\n });\n }\n function destroy() {\n if (mutationObserver) mutationObserver.disconnect();\n destroyed = true;\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction SlidesInView(container, slides, eventHandler, threshold) {\n const intersectionEntryMap = {};\n let inViewCache = null;\n let notInViewCache = null;\n let intersectionObserver;\n let destroyed = false;\n function init() {\n intersectionObserver = new IntersectionObserver(entries => {\n if (destroyed) return;\n entries.forEach(entry => {\n const index = slides.indexOf(entry.target);\n intersectionEntryMap[index] = entry;\n });\n inViewCache = null;\n notInViewCache = null;\n eventHandler.emit('slidesInView');\n }, {\n root: container.parentElement,\n threshold\n });\n slides.forEach(slide => intersectionObserver.observe(slide));\n }\n function destroy() {\n if (intersectionObserver) intersectionObserver.disconnect();\n destroyed = true;\n }\n function createInViewList(inView) {\n return objectKeys(intersectionEntryMap).reduce((list, slideIndex) => {\n const index = parseInt(slideIndex);\n const {\n isIntersecting\n } = intersectionEntryMap[index];\n const inViewMatch = inView && isIntersecting;\n const notInViewMatch = !inView && !isIntersecting;\n if (inViewMatch || notInViewMatch) list.push(index);\n return list;\n }, []);\n }\n function get(inView = true) {\n if (inView && inViewCache) return inViewCache;\n if (!inView && notInViewCache) return notInViewCache;\n const slideIndexes = createInViewList(inView);\n if (inView) inViewCache = slideIndexes;\n if (!inView) notInViewCache = slideIndexes;\n return slideIndexes;\n }\n const self = {\n init,\n destroy,\n get\n };\n return self;\n}\n\nfunction SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow) {\n const {\n measureSize,\n startEdge,\n endEdge\n } = axis;\n const withEdgeGap = slideRects[0] && readEdgeGap;\n const startGap = measureStartGap();\n const endGap = measureEndGap();\n const slideSizes = slideRects.map(measureSize);\n const slideSizesWithGaps = measureWithGaps();\n function measureStartGap() {\n if (!withEdgeGap) return 0;\n const slideRect = slideRects[0];\n return mathAbs(containerRect[startEdge] - slideRect[startEdge]);\n }\n function measureEndGap() {\n if (!withEdgeGap) return 0;\n const style = ownerWindow.getComputedStyle(arrayLast(slides));\n return parseFloat(style.getPropertyValue(`margin-${endEdge}`));\n }\n function measureWithGaps() {\n return slideRects.map((rect, index, rects) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(rects, index);\n if (isFirst) return slideSizes[index] + startGap;\n if (isLast) return slideSizes[index] + endGap;\n return rects[index + 1][startEdge] - rect[startEdge];\n }).map(mathAbs);\n }\n const self = {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n };\n return self;\n}\n\nfunction SlidesToScroll(axis, viewSize, slidesToScroll, loop, containerRect, slideRects, startGap, endGap, pixelTolerance) {\n const {\n startEdge,\n endEdge,\n direction\n } = axis;\n const groupByNumber = isNumber(slidesToScroll);\n function byNumber(array, groupSize) {\n return arrayKeys(array).filter(i => i % groupSize === 0).map(i => array.slice(i, i + groupSize));\n }\n function bySize(array) {\n if (!array.length) return [];\n return arrayKeys(array).reduce((groups, rectB, index) => {\n const rectA = arrayLast(groups) || 0;\n const isFirst = rectA === 0;\n const isLast = rectB === arrayLastIndex(array);\n const edgeA = containerRect[startEdge] - slideRects[rectA][startEdge];\n const edgeB = containerRect[startEdge] - slideRects[rectB][endEdge];\n const gapA = !loop && isFirst ? direction(startGap) : 0;\n const gapB = !loop && isLast ? direction(endGap) : 0;\n const chunkSize = mathAbs(edgeB - gapB - (edgeA + gapA));\n if (index && chunkSize > viewSize + pixelTolerance) groups.push(rectB);\n if (isLast) groups.push(array.length);\n return groups;\n }, []).map((currentSize, index, groups) => {\n const previousSize = Math.max(groups[index - 1] || 0);\n return array.slice(previousSize, currentSize);\n });\n }\n function groupSlides(array) {\n return groupByNumber ? byNumber(array, slidesToScroll) : bySize(array);\n }\n const self = {\n groupSlides\n };\n return self;\n}\n\nfunction Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler) {\n // Options\n const {\n align,\n axis: scrollAxis,\n direction,\n startIndex,\n loop,\n duration,\n dragFree,\n dragThreshold,\n inViewThreshold,\n slidesToScroll: groupSlides,\n skipSnaps,\n containScroll,\n watchResize,\n watchSlides,\n watchDrag,\n watchFocus\n } = options;\n // Measurements\n const pixelTolerance = 2;\n const nodeRects = NodeRects();\n const containerRect = nodeRects.measure(container);\n const slideRects = slides.map(nodeRects.measure);\n const axis = Axis(scrollAxis, direction);\n const viewSize = axis.measureSize(containerRect);\n const percentOfView = PercentOfView(viewSize);\n const alignment = Alignment(align, viewSize);\n const containSnaps = !loop && !!containScroll;\n const readEdgeGap = loop || !!containScroll;\n const {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n } = SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow);\n const slidesToScroll = SlidesToScroll(axis, viewSize, groupSlides, loop, containerRect, slideRects, startGap, endGap, pixelTolerance);\n const {\n snaps,\n snapsAligned\n } = ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll);\n const contentSize = -arrayLast(snaps) + arrayLast(slideSizesWithGaps);\n const {\n snapsContained,\n scrollContainLimit\n } = ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance);\n const scrollSnaps = containSnaps ? snapsContained : snapsAligned;\n const {\n limit\n } = ScrollLimit(contentSize, scrollSnaps, loop);\n // Indexes\n const index = Counter(arrayLastIndex(scrollSnaps), startIndex, loop);\n const indexPrevious = index.clone();\n const slideIndexes = arrayKeys(slides);\n // Animation\n const update = ({\n dragHandler,\n scrollBody,\n scrollBounds,\n options: {\n loop\n }\n }) => {\n if (!loop) scrollBounds.constrain(dragHandler.pointerDown());\n scrollBody.seek();\n };\n const render = ({\n scrollBody,\n translate,\n location,\n offsetLocation,\n previousLocation,\n scrollLooper,\n slideLooper,\n dragHandler,\n animation,\n eventHandler,\n scrollBounds,\n options: {\n loop\n }\n }, alpha) => {\n const shouldSettle = scrollBody.settled();\n const withinBounds = !scrollBounds.shouldConstrain();\n const hasSettled = loop ? shouldSettle : shouldSettle && withinBounds;\n const hasSettledAndIdle = hasSettled && !dragHandler.pointerDown();\n if (hasSettledAndIdle) animation.stop();\n const interpolatedLocation = location.get() * alpha + previousLocation.get() * (1 - alpha);\n offsetLocation.set(interpolatedLocation);\n if (loop) {\n scrollLooper.loop(scrollBody.direction());\n slideLooper.loop();\n }\n translate.to(offsetLocation.get());\n if (hasSettledAndIdle) eventHandler.emit('settle');\n if (!hasSettled) eventHandler.emit('scroll');\n };\n const animation = Animations(ownerDocument, ownerWindow, () => update(engine), alpha => render(engine, alpha));\n // Shared\n const friction = 0.68;\n const startLocation = scrollSnaps[index.get()];\n const location = Vector1D(startLocation);\n const previousLocation = Vector1D(startLocation);\n const offsetLocation = Vector1D(startLocation);\n const target = Vector1D(startLocation);\n const scrollBody = ScrollBody(location, offsetLocation, previousLocation, target, duration, friction);\n const scrollTarget = ScrollTarget(loop, scrollSnaps, contentSize, limit, target);\n const scrollTo = ScrollTo(animation, index, indexPrevious, scrollBody, scrollTarget, target, eventHandler);\n const scrollProgress = ScrollProgress(limit);\n const eventStore = EventStore();\n const slidesInView = SlidesInView(container, slides, eventHandler, inViewThreshold);\n const {\n slideRegistry\n } = SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes);\n const slideFocus = SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus);\n // Engine\n const engine = {\n ownerDocument,\n ownerWindow,\n eventHandler,\n containerRect,\n slideRects,\n animation,\n axis,\n dragHandler: DragHandler(axis, root, ownerDocument, ownerWindow, target, DragTracker(axis, ownerWindow), location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, friction, watchDrag),\n eventStore,\n percentOfView,\n index,\n indexPrevious,\n limit,\n location,\n offsetLocation,\n previousLocation,\n options,\n resizeHandler: ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects),\n scrollBody,\n scrollBounds: ScrollBounds(limit, offsetLocation, target, scrollBody, percentOfView),\n scrollLooper: ScrollLooper(contentSize, limit, offsetLocation, [location, offsetLocation, previousLocation, target]),\n scrollProgress,\n scrollSnapList: scrollSnaps.map(scrollProgress.get),\n scrollSnaps,\n scrollTarget,\n scrollTo,\n slideLooper: SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, offsetLocation, slides),\n slideFocus,\n slidesHandler: SlidesHandler(container, eventHandler, watchSlides),\n slidesInView,\n slideIndexes,\n slideRegistry,\n slidesToScroll,\n target,\n translate: Translate(axis, container)\n };\n return engine;\n}\n\nfunction EventHandler() {\n let listeners = {};\n let api;\n function init(emblaApi) {\n api = emblaApi;\n }\n function getListeners(evt) {\n return listeners[evt] || [];\n }\n function emit(evt) {\n getListeners(evt).forEach(e => e(api, evt));\n return self;\n }\n function on(evt, cb) {\n listeners[evt] = getListeners(evt).concat([cb]);\n return self;\n }\n function off(evt, cb) {\n listeners[evt] = getListeners(evt).filter(e => e !== cb);\n return self;\n }\n function clear() {\n listeners = {};\n }\n const self = {\n init,\n emit,\n off,\n on,\n clear\n };\n return self;\n}\n\nconst defaultOptions = {\n align: 'center',\n axis: 'x',\n container: null,\n slides: null,\n containScroll: 'trimSnaps',\n direction: 'ltr',\n slidesToScroll: 1,\n inViewThreshold: 0,\n breakpoints: {},\n dragFree: false,\n dragThreshold: 10,\n loop: false,\n skipSnaps: false,\n duration: 25,\n startIndex: 0,\n active: true,\n watchDrag: true,\n watchResize: true,\n watchSlides: true,\n watchFocus: true\n};\n\nfunction OptionsHandler(ownerWindow) {\n function mergeOptions(optionsA, optionsB) {\n return objectsMergeDeep(optionsA, optionsB || {});\n }\n function optionsAtMedia(options) {\n const optionsAtMedia = options.breakpoints || {};\n const matchedMediaOptions = objectKeys(optionsAtMedia).filter(media => ownerWindow.matchMedia(media).matches).map(media => optionsAtMedia[media]).reduce((a, mediaOption) => mergeOptions(a, mediaOption), {});\n return mergeOptions(options, matchedMediaOptions);\n }\n function optionsMediaQueries(optionsList) {\n return optionsList.map(options => objectKeys(options.breakpoints || {})).reduce((acc, mediaQueries) => acc.concat(mediaQueries), []).map(ownerWindow.matchMedia);\n }\n const self = {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n };\n return self;\n}\n\nfunction PluginsHandler(optionsHandler) {\n let activePlugins = [];\n function init(emblaApi, plugins) {\n activePlugins = plugins.filter(({\n options\n }) => optionsHandler.optionsAtMedia(options).active !== false);\n activePlugins.forEach(plugin => plugin.init(emblaApi, optionsHandler));\n return plugins.reduce((map, plugin) => Object.assign(map, {\n [plugin.name]: plugin\n }), {});\n }\n function destroy() {\n activePlugins = activePlugins.filter(plugin => plugin.destroy());\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction EmblaCarousel(root, userOptions, userPlugins) {\n const ownerDocument = root.ownerDocument;\n const ownerWindow = ownerDocument.defaultView;\n const optionsHandler = OptionsHandler(ownerWindow);\n const pluginsHandler = PluginsHandler(optionsHandler);\n const mediaHandlers = EventStore();\n const eventHandler = EventHandler();\n const {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n } = optionsHandler;\n const {\n on,\n off,\n emit\n } = eventHandler;\n const reInit = reActivate;\n let destroyed = false;\n let engine;\n let optionsBase = mergeOptions(defaultOptions, EmblaCarousel.globalOptions);\n let options = mergeOptions(optionsBase);\n let pluginList = [];\n let pluginApis;\n let container;\n let slides;\n function storeElements() {\n const {\n container: userContainer,\n slides: userSlides\n } = options;\n const customContainer = isString(userContainer) ? root.querySelector(userContainer) : userContainer;\n container = customContainer || root.children[0];\n const customSlides = isString(userSlides) ? container.querySelectorAll(userSlides) : userSlides;\n slides = [].slice.call(customSlides || container.children);\n }\n function createEngine(options) {\n const engine = Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler);\n if (options.loop && !engine.slideLooper.canLoop()) {\n const optionsWithoutLoop = Object.assign({}, options, {\n loop: false\n });\n return createEngine(optionsWithoutLoop);\n }\n return engine;\n }\n function activate(withOptions, withPlugins) {\n if (destroyed) return;\n optionsBase = mergeOptions(optionsBase, withOptions);\n options = optionsAtMedia(optionsBase);\n pluginList = withPlugins || pluginList;\n storeElements();\n engine = createEngine(options);\n optionsMediaQueries([optionsBase, ...pluginList.map(({\n options\n }) => options)]).forEach(query => mediaHandlers.add(query, 'change', reActivate));\n if (!options.active) return;\n engine.translate.to(engine.location.get());\n engine.animation.init();\n engine.slidesInView.init();\n engine.slideFocus.init(self);\n engine.eventHandler.init(self);\n engine.resizeHandler.init(self);\n engine.slidesHandler.init(self);\n if (engine.options.loop) engine.slideLooper.loop();\n if (container.offsetParent && slides.length) engine.dragHandler.init(self);\n pluginApis = pluginsHandler.init(self, pluginList);\n }\n function reActivate(withOptions, withPlugins) {\n const startIndex = selectedScrollSnap();\n deActivate();\n activate(mergeOptions({\n startIndex\n }, withOptions), withPlugins);\n eventHandler.emit('reInit');\n }\n function deActivate() {\n engine.dragHandler.destroy();\n engine.eventStore.clear();\n engine.translate.clear();\n engine.slideLooper.clear();\n engine.resizeHandler.destroy();\n engine.slidesHandler.destroy();\n engine.slidesInView.destroy();\n engine.animation.destroy();\n pluginsHandler.destroy();\n mediaHandlers.clear();\n }\n function destroy() {\n if (destroyed) return;\n destroyed = true;\n mediaHandlers.clear();\n deActivate();\n eventHandler.emit('destroy');\n eventHandler.clear();\n }\n function scrollTo(index, jump, direction) {\n if (!options.active || destroyed) return;\n engine.scrollBody.useBaseFriction().useDuration(jump === true ? 0 : options.duration);\n engine.scrollTo.index(index, direction || 0);\n }\n function scrollNext(jump) {\n const next = engine.index.add(1).get();\n scrollTo(next, jump, -1);\n }\n function scrollPrev(jump) {\n const prev = engine.index.add(-1).get();\n scrollTo(prev, jump, 1);\n }\n function canScrollNext() {\n const next = engine.index.add(1).get();\n return next !== selectedScrollSnap();\n }\n function canScrollPrev() {\n const prev = engine.index.add(-1).get();\n return prev !== selectedScrollSnap();\n }\n function scrollSnapList() {\n return engine.scrollSnapList;\n }\n function scrollProgress() {\n return engine.scrollProgress.get(engine.offsetLocation.get());\n }\n function selectedScrollSnap() {\n return engine.index.get();\n }\n function previousScrollSnap() {\n return engine.indexPrevious.get();\n }\n function slidesInView() {\n return engine.slidesInView.get();\n }\n function slidesNotInView() {\n return engine.slidesInView.get(false);\n }\n function plugins() {\n return pluginApis;\n }\n function internalEngine() {\n return engine;\n }\n function rootNode() {\n return root;\n }\n function containerNode() {\n return container;\n }\n function slideNodes() {\n return slides;\n }\n const self = {\n canScrollNext,\n canScrollPrev,\n containerNode,\n internalEngine,\n destroy,\n off,\n on,\n emit,\n plugins,\n previousScrollSnap,\n reInit,\n rootNode,\n scrollNext,\n scrollPrev,\n scrollProgress,\n scrollSnapList,\n scrollTo,\n selectedScrollSnap,\n slideNodes,\n slidesInView,\n slidesNotInView\n };\n activate(userOptions, userPlugins);\n setTimeout(() => eventHandler.emit('init'), 0);\n return self;\n}\nEmblaCarousel.globalOptions = undefined;\n\nexport { EmblaCarousel as default };\n//# sourceMappingURL=embla-carousel.esm.js.map\n","import EmblaCarousel, { EmblaCarouselType } from \"embla-carousel\";\n\n/**\n * Framework-agnostic Embla controller shared by the React carousel and the AEM\n * clientlib runtime. Keep behaviour here so Storybook and server-rendered HTL\n * use exactly the same navigation and selected-state logic.\n */\nexport interface LsgCarouselControllerElements {\n prevBtn?: HTMLElement | null;\n nextBtn?: HTMLElement | null;\n paginationBtns?: Iterable<HTMLElement> | null;\n}\n\nexport type LsgCarouselDirection = \"ltr\" | \"rtl\";\n\nexport interface LsgCarouselControllerOptions {\n loop?: boolean;\n /**\n * Embla content direction. Media-left variants use RTL so the active media is\n * anchored on the right edge of the viewport and the adjacent slide peeks in\n * from the left, matching the mirrored Figma compositions.\n *\n * Embla requires the viewport/track CSS direction to match this value. The\n * React component sets `dir` on the viewport and the AEM boot path mirrors it.\n */\n direction?: LsgCarouselDirection;\n}\n\nexport class LsgCarouselController {\n private embla: EmblaCarouselType | null = null;\n private readonly els: LsgCarouselControllerElements;\n private readonly paginationBtns: HTMLElement[];\n private readonly paginationHandlers: Array<() => void>;\n\n constructor(\n viewport: HTMLElement,\n elements: LsgCarouselControllerElements = {},\n options: LsgCarouselControllerOptions = {},\n ) {\n this.els = elements;\n this.paginationBtns = elements.paginationBtns\n ? Array.from(elements.paginationBtns)\n : [];\n\n this.embla = EmblaCarousel(viewport, {\n align: \"start\",\n // Every authored media item owns a pagination dot. `trimSnaps` can remove\n // the final snap when two-up/peek layouts do not have enough overflow,\n // leaving the last authored item only partially reachable. Keep all snaps\n // so dot/item indexes stay 1:1 for 2, 3, 4, ... media items.\n containScroll: false,\n direction: options.direction ?? \"ltr\",\n loop: options.loop ?? true,\n skipSnaps: false,\n slidesToScroll: 1,\n });\n\n this.paginationHandlers = this.paginationBtns.map((_, index) => () => {\n this.embla?.scrollTo(index);\n });\n\n this.els.prevBtn?.addEventListener(\"click\", this.scrollPrev);\n this.els.nextBtn?.addEventListener(\"click\", this.scrollNext);\n this.paginationBtns.forEach((button, index) => {\n button.addEventListener(\"click\", this.paginationHandlers[index]);\n });\n\n this.embla.on(\"select\", this.syncSelectedState);\n this.embla.on(\"reInit\", this.syncSelectedState);\n this.syncSelectedState();\n }\n\n /**\n * Embla automatically falls back to non-looping mode when there is not enough\n * slide content to create a safe loop (most noticeable with two-up layouts and\n * only 2–3 authored items). Keep the arrow contract cyclic in that fallback:\n * when there is no native previous snap, jump to the final authored snap.\n */\n readonly scrollPrev = (): void => {\n if (!this.embla) return;\n\n if (this.embla.canScrollPrev()) {\n this.embla.scrollPrev();\n return;\n }\n\n const lastSnap = this.embla.scrollSnapList().length - 1;\n if (lastSnap >= 0) this.embla.scrollTo(lastSnap);\n };\n\n /** See `scrollPrev` for why the explicit wrap fallback is required. */\n readonly scrollNext = (): void => {\n if (!this.embla) return;\n\n if (this.embla.canScrollNext()) {\n this.embla.scrollNext();\n return;\n }\n\n if (this.embla.scrollSnapList().length > 0) this.embla.scrollTo(0);\n };\n\n private readonly syncSelectedState = (): void => {\n const selected = this.embla?.selectedScrollSnap() ?? 0;\n this.paginationBtns.forEach((button, index) => {\n const active = index === selected;\n button.classList.toggle(\"lsg-carousel__dot--active\", active);\n button.setAttribute(\"aria-current\", active ? \"true\" : \"false\");\n });\n };\n\n get emblaApi(): EmblaCarouselType | null {\n return this.embla;\n }\n\n destroy(): void {\n this.els.prevBtn?.removeEventListener(\"click\", this.scrollPrev);\n this.els.nextBtn?.removeEventListener(\"click\", this.scrollNext);\n this.paginationBtns.forEach((button, index) => {\n button.removeEventListener(\"click\", this.paginationHandlers[index]);\n });\n if (this.embla) {\n this.embla.off(\"select\", this.syncSelectedState);\n this.embla.off(\"reInit\", this.syncSelectedState);\n this.embla.destroy();\n this.embla = null;\n }\n }\n}\n","import React, { useEffect, useRef } from \"react\";\nimport { LsgButton } from \"../LsgButton\";\nimport type { LsgButtonVariant } from \"../LsgButton\";\nimport { LsgImage } from \"../LsgImage\";\nimport { LsgVideo } from \"../LsgVideo\";\nimport { LsgCarouselController } from \"./LsgCarouselController\";\nimport type { LsgCarouselDirection } from \"./LsgCarouselController\";\nimport \"./LsgCarousel.scss\";\n\nexport type LsgCarouselLayout = \"media-right\" | \"media-left\" | \"full-width\";\nexport type LsgCarouselHeadingTag = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\nexport type LsgCarouselMediaType = \"image\" | \"video\";\n\nexport interface LsgCarouselItem {\n /** Stable author/item identifier where available. */\n id?: string;\n type?: LsgCarouselMediaType;\n imageUrl?: string;\n imageAlt?: string;\n videoUrl?: string;\n videoPoster?: string;\n videoControls?: boolean;\n videoAutoPlay?: boolean;\n videoMuted?: boolean;\n videoLoop?: boolean;\n /** Optional per-media label used by layouts/themes that show a badge. */\n label?: string;\n}\n\nexport interface LsgCarouselCta {\n label: string;\n href?: string;\n external?: boolean;\n variant?: LsgButtonVariant;\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;\n}\n\nexport interface LsgCarouselProps {\n /** Mandatory carousel title. */\n heading: string;\n preTitle?: string;\n body?: string;\n cta?: LsgCarouselCta;\n items: LsgCarouselItem[];\n /** Desktop content/media position from the Figma variants. */\n layout?: LsgCarouselLayout;\n headingTag?: LsgCarouselHeadingTag;\n ariaLabel?: string;\n className?: string;\n}\n\nconst mediaTypeFor = (item: LsgCarouselItem): LsgCarouselMediaType =>\n item.type ?? (item.videoUrl ? \"video\" : \"image\");\n\nconst directionForLayout = (layout: LsgCarouselLayout): LsgCarouselDirection =>\n layout === \"media-left\" ? \"rtl\" : \"ltr\";\n\nexport const LsgCarousel: React.FC<LsgCarouselProps> = ({\n heading,\n preTitle,\n body,\n cta,\n items = [],\n layout = \"media-right\",\n headingTag = \"h2\",\n ariaLabel = \"Media carousel\",\n className = \"\",\n}) => {\n const rootRef = useRef<HTMLElement>(null);\n const viewportRef = useRef<HTMLDivElement>(null);\n const prevBtnRef = useRef<HTMLButtonElement>(null);\n const nextBtnRef = useRef<HTMLButtonElement>(null);\n const dotsRef = useRef<HTMLDivElement>(null);\n const controllerRef = useRef<LsgCarouselController | null>(null);\n const HeadingTag = headingTag;\n const isCarousel = items.length > 1;\n const carouselDirection = directionForLayout(layout);\n\n useEffect(() => {\n if (!viewportRef.current || !isCarousel) return;\n\n controllerRef.current = new LsgCarouselController(\n viewportRef.current,\n {\n prevBtn: prevBtnRef.current,\n nextBtn: nextBtnRef.current,\n paginationBtns:\n dotsRef.current?.querySelectorAll<HTMLElement>(\"[data-lsg-carousel-dot]\") ?? [],\n },\n { loop: true, direction: carouselDirection },\n );\n\n return () => {\n controllerRef.current?.destroy();\n controllerRef.current = null;\n };\n }, [carouselDirection, isCarousel, items.length]);\n\n const rootClasses = [\n \"lsg-carousel\",\n `lsg-carousel--${layout}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <section\n ref={rootRef}\n className={rootClasses}\n data-lsg-is=\"carousel\"\n data-lsg-carousel-layout={layout}\n data-lsg-carousel-direction={carouselDirection}\n data-lsg-carousel-count={items.length}\n aria-label={ariaLabel}\n >\n <div className=\"lsg-carousel__shell\">\n <div className=\"lsg-carousel__content\">\n {preTitle && (\n <div className=\"lsg-carousel__pre-title\">\n <span className=\"lsg-carousel__pre-title-marker\" aria-hidden=\"true\" />\n <span>{preTitle}</span>\n </div>\n )}\n\n <HeadingTag className=\"lsg-carousel__heading\">{heading}</HeadingTag>\n\n {body && <p className=\"lsg-carousel__body\">{body}</p>}\n\n {cta && (\n <div className=\"lsg-carousel__actions\">\n <LsgButton\n className=\"lsg-carousel__cta\"\n href={cta.href}\n external={cta.external}\n variant={cta.variant ?? \"primary\"}\n onClick={cta.onClick}\n >\n {cta.label}\n </LsgButton>\n </div>\n )}\n </div>\n\n <div className=\"lsg-carousel__media-column\">\n <div className=\"lsg-carousel__viewport\" ref={viewportRef} dir={carouselDirection}>\n <div className=\"lsg-carousel__track\" role=\"list\">\n {items.map((item, index) => {\n const type = mediaTypeFor(item);\n const key = item.id ?? `${type}-${item.imageUrl ?? item.videoUrl ?? index}-${index}`;\n\n return (\n <article\n key={key}\n className=\"lsg-carousel__slide\"\n role=\"listitem\"\n aria-label={`Slide ${index + 1} of ${items.length}`}\n data-lsg-carousel-item\n >\n <div className=\"lsg-carousel__media\">\n {type === \"video\" && item.videoUrl ? (\n <LsgVideo\n videoUrl={item.videoUrl}\n imageUrl={item.videoPoster}\n imageAlt={item.imageAlt}\n controls={item.videoControls ?? true}\n autoplay={item.videoAutoPlay ?? false}\n muted={item.videoMuted ?? true}\n loop={item.videoLoop ?? false}\n displayMode=\"content\"\n showTags={false}\n className=\"lsg-carousel__video-component\"\n />\n ) : item.imageUrl ? (\n <LsgImage\n imageUrl={item.imageUrl}\n imageAlt={item.imageAlt}\n className=\"lsg-carousel__image-component\"\n />\n ) : (\n <div className=\"lsg-carousel__media-placeholder\" aria-hidden=\"true\" />\n )}\n\n {item.label && (\n <span className=\"lsg-carousel__media-label\">{item.label}</span>\n )}\n </div>\n </article>\n );\n })}\n </div>\n </div>\n\n {isCarousel && (\n <div className=\"lsg-carousel__navigation\" aria-label=\"Carousel navigation\">\n <button\n ref={prevBtnRef}\n className=\"lsg-carousel__arrow lsg-carousel__arrow--prev\"\n type=\"button\"\n aria-label=\"Previous slide\"\n data-lsg-carousel-prev\n >\n <span className=\"lsg-carousel__arrow-icon\" aria-hidden=\"true\" />\n </button>\n\n <div className=\"lsg-carousel__pagination\" ref={dotsRef}>\n {items.map((item, index) => (\n <button\n key={item.id ?? `dot-${index}`}\n className={`lsg-carousel__dot${index === 0 ? \" lsg-carousel__dot--active\" : \"\"}`}\n type=\"button\"\n aria-label={`Go to slide ${index + 1}`}\n aria-current={index === 0 ? \"true\" : \"false\"}\n data-lsg-carousel-dot\n />\n ))}\n </div>\n\n <button\n ref={nextBtnRef}\n className=\"lsg-carousel__arrow lsg-carousel__arrow--next\"\n type=\"button\"\n aria-label=\"Next slide\"\n data-lsg-carousel-next\n >\n <span className=\"lsg-carousel__arrow-icon\" aria-hidden=\"true\" />\n </button>\n </div>\n )}\n </div>\n </div>\n </section>\n );\n};\n","import React from \"react\";\nimport \"./LsgCard.scss\";\n\nexport type LsgCardVariant = \"withImage\" | \"onlyText\" | \"withIcon\";\nexport type LsgCardColumns = 2 | 3 | 4 | 5;\n\nexport interface LsgCardCta {\n label: string;\n href: string;\n external?: boolean;\n}\n\nexport interface LsgCardProps {\n title: string;\n preTitle?: string;\n subtitle?: string;\n description?: string;\n imageUrl?: string;\n imageAlt?: string;\n iconUrl?: string;\n iconAlt?: string;\n /** Makes the complete card interactive when provided. */\n href?: string;\n cta?: LsgCardCta;\n variant?: LsgCardVariant;\n className?: string;\n}\n\nfunction cardVariantClass(variant: LsgCardVariant): string {\n switch (variant) {\n case \"onlyText\":\n return \"lsg-card--only-text\";\n case \"withIcon\":\n return \"lsg-card--with-icon\";\n case \"withImage\":\n default:\n return \"lsg-card--with-image\";\n }\n}\n\nexport const LsgCard: React.FC<LsgCardProps> = ({\n title,\n preTitle,\n subtitle,\n description,\n imageUrl,\n imageAlt = \"\",\n iconUrl,\n iconAlt = \"\",\n href,\n cta,\n variant = \"withImage\",\n className,\n}) => {\n const resolvedIconUrl = iconUrl ?? imageUrl;\n const actionLabel = cta?.label ?? \"Read more\";\n const cardClassName = [\"lsg-card\", cardVariantClass(variant), className]\n .filter(Boolean)\n .join(\" \");\n\n const content = (\n <>\n {variant === \"withImage\" && imageUrl && (\n <div className=\"lsg-card__media\">\n <img src={imageUrl} alt={imageAlt} loading=\"lazy\" />\n </div>\n )}\n <div className=\"lsg-card__content\">\n {variant === \"withIcon\" && resolvedIconUrl && (\n <div className=\"lsg-card__icon\" aria-hidden={iconAlt ? undefined : true}>\n <img src={resolvedIconUrl} alt={iconAlt} loading=\"lazy\" />\n </div>\n )}\n <div className=\"lsg-card__top\">\n {preTitle && (\n <span className=\"lsg-card__pre-title\">\n <span className=\"lsg-card__pre-title-dot\" aria-hidden=\"true\" />\n <span className=\"lsg-card__pre-title-text\">{preTitle}</span>\n <span className=\"lsg-card__pre-title-arrow\" aria-hidden=\"true\">→</span>\n </span>\n )}\n <h3 className=\"lsg-card__title\">{title}</h3>\n {subtitle && <h4 className=\"lsg-card__subtitle\">{subtitle}</h4>}\n </div>\n <div className=\"lsg-card__bottom\">\n {description && <p className=\"lsg-card__description\">{description}</p>}\n {(href || cta) && (\n href ? (\n <span className=\"lsg-card__cta\" aria-hidden=\"true\">\n <span className=\"lsg-card__cta-label\">{actionLabel}</span>\n <span className=\"lsg-card__cta-arrow\" aria-hidden=\"true\">→</span>\n </span>\n ) : (\n <a\n className=\"lsg-card__cta\"\n href={cta?.href}\n target={cta?.external ? \"_blank\" : undefined}\n rel={cta?.external ? \"noreferrer noopener\" : undefined}\n >\n <span className=\"lsg-card__cta-label\">{actionLabel}</span>\n <span className=\"lsg-card__cta-arrow\" aria-hidden=\"true\">→</span>\n </a>\n )\n )}\n </div>\n </div>\n </>\n );\n\n return (\n <article className={cardClassName} data-lsg-card-variant={variant}>\n {href ? (\n <a href={href} className=\"lsg-card__link\" aria-label={title}>\n {content}\n </a>\n ) : (\n <div className=\"lsg-card__link\">{content}</div>\n )}\n </article>\n );\n};\n\nexport interface LsgCardsProps {\n cards: LsgCardProps[];\n columns?: LsgCardColumns;\n className?: string;\n}\n\n/** Renders the AEM/Storybook compatible responsive card grid. */\nexport const LsgCards: React.FC<LsgCardsProps> = ({\n cards,\n columns = 3,\n className,\n}) => {\n const listClassName = [\n \"lsg-cards\",\n `lsg-cards--cols-${columns}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <ul className={listClassName} data-columns={columns}>\n {cards.map((card, index) => (\n <li className=\"lsg-cards__item\" key={card.href ?? card.cta?.href ?? `${card.title}-${index}`}>\n <LsgCard {...card} />\n </li>\n ))}\n </ul>\n );\n};\n","export type LsgIconName =\n | \"bars\"\n | \"chevronLeft\"\n | \"chevronRight\"\n | \"close\"\n | \"globe\"\n | \"home\"\n | \"search\";\n\nexport const LSG_ICON_PATHS: Record<LsgIconName, string> = {\n bars:\n \"M96 160C96 142.3 110.3 128 128 128L512 128C529.7 128 544 142.3 544 160C544 177.7 529.7 192 512 192L128 192C110.3 192 96 177.7 96 160zM96 320C96 302.3 110.3 288 128 288L512 288C529.7 288 544 302.3 544 320C544 337.7 529.7 352 512 352L128 352C110.3 352 96 337.7 96 320zM544 480C544 497.7 529.7 512 512 512L128 512C110.3 512 96 497.7 96 480C96 462.3 110.3 448 128 448L512 448C529.7 448 544 462.3 544 480z\",\n chevronLeft:\n \"M169.4 297.4C156.9 309.9 156.9 330.2 169.4 342.7L361.4 534.7C373.9 547.2 394.2 547.2 406.7 534.7C419.2 522.2 419.2 501.9 406.7 489.4L237.3 320L406.6 150.6C419.1 138.1 419.1 117.8 406.6 105.3C394.1 92.8 373.8 92.8 361.3 105.3L169.3 297.3z\",\n chevronRight:\n \"M471.1 297.4C483.6 309.9 483.6 330.2 471.1 342.7L279.1 534.7C266.6 547.2 246.3 547.2 233.8 534.7C221.3 522.2 221.3 501.9 233.8 489.4L403.2 320L233.9 150.6C221.4 138.1 221.4 117.8 233.9 105.3C246.4 92.8 266.7 92.8 279.2 105.3L471.2 297.3z\",\n close:\n \"M504.6 148.5C515.9 134.9 514.1 114.7 500.5 103.4C486.9 92.1 466.7 93.9 455.4 107.5L320 270L184.6 107.5C173.3 93.9 153.1 92.1 139.5 103.4C125.9 114.7 124.1 134.9 135.4 148.5L278.3 320L135.4 491.5C124.1 505.1 125.9 525.3 139.5 536.6C153.1 547.9 173.3 546.1 184.6 532.5L320 370L455.4 532.5C466.7 546.1 486.9 547.9 500.5 536.6C514.1 525.3 515.9 505.1 504.6 491.5L361.7 320L504.6 148.5z\",\n globe:\n \"M367.2 477C345.7 520.7 325.8 528 320 528C314.2 528 294.3 520.7 272.8 477C255.8 442.5 243.6 395.4 240.7 344L399.3 344C396.3 395.5 384.1 442.6 367.2 477zM399.3 296L240.7 296C243.7 244.5 255.9 197.4 272.8 163C294.3 119.3 314.2 112 320 112C325.8 112 345.7 119.3 367.2 163C384.2 197.5 396.4 244.6 399.3 296zM447.4 344L526.6 344C518 418.6 469.9 481.3 403.8 510.4C427.8 467.6 444.1 408 447.4 344zM526.6 296L447.4 296C444.1 232 427.8 172.4 403.8 129.6C469.9 158.8 518 221.4 526.6 296zM192.6 296L113.4 296C122 221.4 170.1 158.7 236.2 129.6C212.2 172.4 195.9 232 192.6 296zM113.4 344L192.6 344C195.9 408 212.2 467.6 236.2 510.4C170.1 481.2 122 418.6 113.4 344zM320 576C461.4 576 576 461.4 576 320C576 178.6 461.4 64 320 64C178.6 64 64 178.6 64 320C64 461.4 178.6 576 320 576z\",\n home: \"M96 320L320 128L544 320H480V528H352V384H288V528H160V320H96z\",\n search:\n \"M480 272C480 317.9 465.1 360.3 440 394.7L566.6 521.4C579.1 533.9 579.1 554.2 566.6 566.7C554.1 579.2 533.8 579.2 521.3 566.7L394.7 440C360.3 465.1 317.9 480 272 480C157.1 480 64 386.9 64 272C64 157.1 157.1 64 272 64C386.9 64 480 157.1 480 272zM272 416C351.5 416 416 351.5 416 272C416 192.5 351.5 128 272 128C192.5 128 128 192.5 128 272C128 351.5 192.5 416 272 416z\",\n};\n\n","import React from \"react\";\nimport { LSG_ICON_PATHS } from \"./lsgIconPaths\";\nimport type { LsgIconName } from \"./lsgIconPaths\";\n\nexport interface LsgIconProps {\n name: LsgIconName;\n className?: string;\n}\n\nexport const LsgIcon: React.FC<LsgIconProps> = ({ name, className }) => (\n <svg\n className={className}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 640 640\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d={LSG_ICON_PATHS[name]} />\n </svg>\n);\n","import React from \"react\";\nimport { LsgIcon } from \"../../../utils\";\nimport \"./LsgBreadcrumb.scss\";\n\nexport interface LsgBreadcrumbItem {\n label: string;\n href?: string;\n}\n\nexport interface LsgBreadcrumbProps {\n /** Breadcrumb items ordered from the nearest ancestor to the current page. */\n items?: LsgBreadcrumbItem[];\n /** Mirrors the AEM \"Show Breadcrumbs\" configuration. */\n showBreadcrumbs?: boolean;\n /** Mirrors the AEM \"Include Home Link\" configuration. */\n includeHome?: boolean;\n /** URL used by the home icon link. */\n homeHref?: string;\n /** Accessible label for the icon-only home link. */\n homeLabel?: string;\n className?: string;\n}\n\nfunction isSafeHref(href: string | undefined): boolean {\n if (!href) return false;\n\n const value = href.trim().toLowerCase();\n if (\n value.startsWith(\"javascript:\") ||\n value.startsWith(\"data:\") ||\n value.startsWith(\"vbscript:\")\n ) {\n return false;\n }\n\n return (\n value.startsWith(\"/\") ||\n value.startsWith(\"#\") ||\n value.startsWith(\"http://\") ||\n value.startsWith(\"https://\") ||\n !value.includes(\":\")\n );\n}\n\nconst BreadcrumbSeparator: React.FC = () => (\n <li className=\"lsg-breadcrumb__separator\" aria-hidden=\"true\">\n <LsgIcon name=\"chevronRight\" className=\"lsg-breadcrumb__separator-icon\" />\n </li>\n);\n\nexport const LsgBreadcrumb: React.FC<LsgBreadcrumbProps> = ({\n items = [],\n showBreadcrumbs = true,\n includeHome = true,\n homeHref = \"/\",\n homeLabel = \"Home\",\n className = \"\",\n}) => {\n if (!showBreadcrumbs) return null;\n\n const visibleItems = Array.isArray(items)\n ? items.filter(\n (item): item is LsgBreadcrumbItem =>\n Boolean(item) && typeof item.label === \"string\" && item.label.trim().length > 0,\n )\n : [];\n\n if (!includeHome && visibleItems.length === 0) return null;\n\n const rootClassName = [\"lsg-breadcrumb\", className].filter(Boolean).join(\" \");\n const safeHomeHref = isSafeHref(homeHref) ? homeHref : \"/\";\n\n return (\n <nav className={rootClassName} aria-label=\"Breadcrumb\">\n <ol className=\"lsg-breadcrumb__list\">\n {includeHome && (\n <li className=\"lsg-breadcrumb__item lsg-breadcrumb__item--home\">\n <a className=\"lsg-breadcrumb__home\" href={safeHomeHref} aria-label={homeLabel}>\n <LsgIcon name=\"home\" className=\"lsg-breadcrumb__home-icon\" />\n </a>\n </li>\n )}\n\n {visibleItems.map((item, index) => {\n const isCurrent = index === visibleItems.length - 1;\n const safeHref = isSafeHref(item.href) ? item.href : undefined;\n\n return (\n <React.Fragment key={`${item.label}-${index}`}>\n {(includeHome || index > 0) && <BreadcrumbSeparator />}\n <li\n className={[\n \"lsg-breadcrumb__item\",\n isCurrent ? \"lsg-breadcrumb__item--current\" : \"lsg-breadcrumb__item--ancestor\",\n ].join(\" \")}\n >\n {isCurrent ? (\n <span className=\"lsg-breadcrumb__current\" aria-current=\"page\">\n <span className=\"lsg-breadcrumb__current-marker\" aria-hidden=\"true\" />\n <span className=\"lsg-breadcrumb__label\">{item.label}</span>\n </span>\n ) : safeHref ? (\n <a className=\"lsg-breadcrumb__link\" href={safeHref}>\n {item.label}\n </a>\n ) : (\n <span className=\"lsg-breadcrumb__ancestor\">{item.label}</span>\n )}\n </li>\n </React.Fragment>\n );\n })}\n </ol>\n </nav>\n );\n};\n","import React from \"react\";\nimport \"./LsgLogo.scss\";\n\nexport interface LsgLogoProps {\n /** Image src. When omitted, renders a text logo. */\n src?: string;\n alt?: string;\n href?: string;\n width?: number;\n height?: number;\n /** Fallback text shown when no src is provided */\n text?: string;\n}\n\nexport const LsgLogo: React.FC<LsgLogoProps> = ({\n src,\n alt = \"Logo\",\n href = \"/\",\n width,\n height = 40,\n text = \"Atlas Copco\",\n}) => {\n const content = src ? (\n <img\n src={src}\n alt={alt}\n width={width}\n height={height}\n className=\"lsg-logo__image\"\n />\n ) : (\n <span className=\"lsg-logo__text\">{text}</span>\n );\n\n return (\n <a href={href} className=\"lsg-logo\" aria-label={src ? alt : undefined}>\n {content}\n </a>\n );\n};\n","import React from \"react\";\nimport \"./LsgNavigation.scss\";\n\nexport interface LsgNavItem {\n label: string;\n href: string;\n current?: boolean;\n open?: boolean;\n children?: LsgNavItem[];\n}\n\nexport interface LsgNavigationProps {\n items: LsgNavItem[];\n /** Accessible label for the <nav> landmark */\n label?: string;\n variant?: \"simple\" | \"dropdown\" | \"mega\";\n onItemClick?: (item: LsgNavItem, level: number) => void;\n onItemHover?: (item: LsgNavItem, level: number) => void;\n}\n\nexport const LsgNavigation: React.FC<LsgNavigationProps> = ({\n items,\n label = \"Main navigation\",\n variant = \"simple\",\n onItemClick,\n onItemHover,\n}) => {\n const renderItems = (navItems: LsgNavItem[], level = 0) => (\n <ul className={level === 0 ? \"lsg-nav__list\" : \"lsg-nav__dropdown\"} role=\"list\">\n {navItems.map((item) => {\n const hasChildren = Boolean(item.children?.length);\n\n return (\n <li\n key={`${item.href}-${level}`}\n className={[\n \"lsg-nav__item\",\n hasChildren ? \"lsg-nav__item--has-children\" : \"\",\n item.open ? \"lsg-nav__item--open\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n onMouseEnter={() => {\n if (onItemHover && hasChildren) {\n onItemHover(item, level);\n }\n }}\n >\n <a\n href={item.href}\n onClick={(event) => {\n if (onItemClick && hasChildren) {\n event.preventDefault();\n onItemClick(item, level);\n }\n }}\n className={[\"lsg-nav__link\", item.current ? \"lsg-nav__link--current\" : \"\"]\n .filter(Boolean)\n .join(\" \")}\n aria-current={item.current ? \"page\" : undefined}\n aria-expanded={variant === \"dropdown\" && hasChildren ? item.open : undefined}\n >\n <p>{item.label}</p>\n {hasChildren && (\n <span className=\"lsg-nav__chevron\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 10 5\" preserveAspectRatio=\"xMidYMid meet\" focusable=\"false\">\n <path\n d=\"M1 0.5L5 4.5L9 0.5\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </span>\n )}\n </a>\n {hasChildren && renderItems(item.children || [], level + 1)}\n </li>\n );\n })}\n </ul>\n );\n\n return (\n <nav className={[\"lsg-nav\", `lsg-nav--${variant}`].join(\" \")} aria-label={label}>\n {renderItems(items)}\n </nav>\n );\n};\n","import React, { useState, useRef, useEffect, useId } from \"react\";\nimport \"./LsgLanguageSwitcher.scss\";\nimport { LsgIcon } from \"../../../utils\";\n\nexport interface LsgLanguage {\n code: string;\n label: string;\n href: string;\n}\n\nexport interface LsgLanguageSwitcherProps {\n currentLanguage: string;\n languages: LsgLanguage[];\n /** Accessible label for the trigger button */\n label?: string;\n /** Called when a language is selected. Prevents link navigation when provided. */\n onLanguageChange?: (language: LsgLanguage) => void;\n}\n\nconst ChevronIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <polyline points=\"2 4 6 8 10 4\" />\n </svg>\n);\n\n/**\n * Language Switcher\n *\n * Hydrated: state managed by React (useState).\n * Clientlib-only: driven by lsg-clientlib.js targeting [data-lsg-lang-switcher].\n */\nexport const LsgLanguageSwitcher: React.FC<LsgLanguageSwitcherProps> = ({\n currentLanguage,\n languages,\n label = \"Select language\",\n onLanguageChange,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const reactId = useId();\n const triggerId = `lsg-lang-trigger-${reactId}`;\n const dropdownId = `lsg-lang-dropdown-${reactId}`;\n\n // Close on outside click\n useEffect(() => {\n if (!isOpen) return;\n const handleClick = (e: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(e.target as Node)) {\n setIsOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handleClick);\n return () => document.removeEventListener(\"mousedown\", handleClick);\n }, [isOpen]);\n\n // Close on Escape\n useEffect(() => {\n if (!isOpen) return;\n const handleKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") setIsOpen(false);\n };\n document.addEventListener(\"keydown\", handleKey);\n return () => document.removeEventListener(\"keydown\", handleKey);\n }, [isOpen]);\n\n return (\n <div className=\"lsg-lang-switcher\" ref={containerRef} data-lsg-lang-switcher>\n <button\n id={triggerId}\n type=\"button\"\n className=\"lsg-lang-switcher__trigger\"\n aria-label={label}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-controls={dropdownId}\n onClick={() => setIsOpen((prev) => !prev)}\n >\n <LsgIcon name=\"globe\" className=\"lsg-lang-switcher__globe\" />\n <span className=\"lsg-lang-switcher__current\">{currentLanguage}</span>\n <ChevronIcon />\n </button>\n\n {isOpen && (\n <ul\n id={dropdownId}\n className=\"lsg-lang-switcher__dropdown\"\n role=\"listbox\"\n aria-labelledby={triggerId}\n >\n {languages.map((lang) => (\n <li key={lang.code} className=\"lsg-lang-switcher__option\" role=\"option\">\n <a\n href={lang.href}\n className={[\n \"lsg-lang-switcher__option-link\",\n lang.code === currentLanguage ? \"lsg-lang-switcher__option-link--active\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n aria-current={lang.code === currentLanguage ? true : undefined}\n onClick={(event) => {\n if (!onLanguageChange) return;\n\n event.preventDefault();\n onLanguageChange(lang);\n setIsOpen(false);\n }}\n >\n {lang.label}\n </a>\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgSearchTrigger.scss\";\n\nexport interface LsgSearchTriggerProps {\n /** Accessible label for the button */\n label?: string;\n /** id of the search overlay this button controls */\n targetId?: string;\n onClick?: () => void;\n}\n\nconst SearchIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n);\n\nexport const LsgSearchTrigger: React.FC<LsgSearchTriggerProps> = ({\n label = \"Open search\",\n targetId,\n onClick,\n}) => {\n return (\n <button\n type=\"button\"\n className=\"lsg-search-trigger\"\n aria-label={label}\n aria-haspopup=\"dialog\"\n aria-controls={targetId}\n onClick={onClick}\n data-lsg-search-trigger\n >\n <SearchIcon />\n </button>\n );\n};\n","import React, { useEffect, useRef } from \"react\";\nimport \"./LsgSearchOverlay.scss\";\n\nexport interface LsgSearchOverlayProps {\n id?: string;\n placeholder?: string;\n /** Accessible label for the search input */\n label?: string;\n isOpen?: boolean;\n onClose?: () => void;\n onSearch?: (query: string) => void;\n}\n\nconst SearchIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n);\n\nconst CloseIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n);\n\n/**\n * Search Overlay\n *\n * Hydrated: isOpen/onClose controlled by parent (e.g. LsgHeader).\n * Clientlib-only: driven by lsg-clientlib.js targeting [data-lsg-search-overlay].\n * The CSS class lsg-search-overlay--open drives visibility in both modes.\n */\nexport const LsgSearchOverlay: React.FC<LsgSearchOverlayProps> = ({\n id = \"lsg-search-overlay\",\n placeholder = \"Search…\",\n label = \"Search\",\n isOpen = false,\n onClose,\n onSearch,\n}) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const inputId = `${id}-input`;\n\n // Focus the input when overlay opens\n useEffect(() => {\n if (isOpen) inputRef.current?.focus();\n }, [isOpen]);\n\n // Close on Escape\n useEffect(() => {\n if (!isOpen) return;\n const handleKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClose?.();\n };\n document.addEventListener(\"keydown\", handleKey);\n return () => document.removeEventListener(\"keydown\", handleKey);\n }, [isOpen, onClose]);\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n const query = inputRef.current?.value ?? \"\";\n if (query.trim()) onSearch?.(query.trim());\n };\n\n const overlayClass = [\"lsg-search-overlay\", isOpen ? \"lsg-search-overlay--open\" : \"\"]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div\n id={id}\n className={overlayClass}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={label}\n data-lsg-search-overlay\n >\n {/* Backdrop close */}\n <div\n className=\"lsg-search-overlay__backdrop\"\n aria-hidden=\"true\"\n onClick={onClose}\n style={{ position: \"absolute\", inset: 0, cursor: \"default\" }}\n />\n <div className=\"lsg-search-overlay__panel\">\n <form className=\"lsg-search-overlay__form\" role=\"search\" onSubmit={handleSubmit}>\n <label htmlFor={inputId} className=\"lsg-search-overlay__label\">\n <SearchIcon />\n <span className=\"lsg-visually-hidden\">{label}</span>\n </label>\n <input\n id={inputId}\n ref={inputRef}\n type=\"search\"\n className=\"lsg-search-overlay__input\"\n placeholder={placeholder}\n autoComplete=\"off\"\n />\n <button type=\"submit\" className=\"lsg-search-overlay__submit\" aria-label=\"Submit search\">\n <SearchIcon />\n </button>\n <button\n type=\"button\"\n className=\"lsg-search-overlay__close\"\n aria-label=\"Close search\"\n onClick={onClose}\n >\n <CloseIcon />\n </button>\n </form>\n </div>\n </div>\n );\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport \"./LsgHeader.scss\";\nimport { LsgLogo, LsgLogoProps } from \"../LsgLogo\";\nimport { LsgNavigation, LsgNavItem } from \"../LsgNavigation\";\nimport { LsgLanguage, LsgLanguageSwitcher } from \"../LsgLanguageSwitcher\";\nimport { LsgSearchOverlay } from \"../LsgSearchOverlay\";\nimport { LsgIcon, LsgIconName } from \"../../../utils\";\n\nexport type LsgHeaderSize = \"full-width\" | \"medium\" | \"narrow\";\n\nexport interface LsgHeaderProps {\n logo?: LsgLogoProps;\n navItems?: LsgNavItem[];\n languages?: LsgLanguage[];\n currentLanguage?: string;\n onLanguageChange?: (language: LsgLanguage) => void;\n searchLabel?: string;\n searchPlaceholder?: string;\n variant?: \"simple\" | \"dropdown\" | \"mega\";\n /**\n * Width of the header bar, mirroring the AEM `./headerSize` dialog select.\n * Left undefined on purpose so no modifier class is emitted and the theme's\n * own header width applies. Styled for theme 1 only.\n */\n size?: LsgHeaderSize;\n menuOpen?: boolean;\n mobileLevel?: 0 | 1 | 2 | 3 | 4;\n activePath?: string[];\n mobileSelectedLabel?: string;\n onMenuToggle?: () => void;\n onNavItemHover?: (item: LsgNavItem, level: number) => void;\n onDropdownClose?: () => void;\n onMegaItemHover?: (item: LsgNavItem, level: number) => void;\n onMobileItemClick?: (item: LsgNavItem, level: number) => void;\n onMobileBreadcrumbClick?: (level: 0 | 1 | 2 | 3 | 4) => void;\n children?: React.ReactNode;\n}\n\nconst SEARCH_OVERLAY_ID = \"lsg-header-search-overlay\";\n\nconst LsgHeaderIcon: React.FC<{ name: LsgIconName; className?: string }> = ({\n name,\n className,\n}) => {\n return (\n <LsgIcon\n name={name}\n className={[\"lsg-header__icon\", `lsg-header__icon--${name}`, className || \"\"]\n .filter(Boolean)\n .join(\" \")}\n />\n );\n};\n\nconst getItemByPath = (\n items: LsgNavItem[],\n activePath: string[],\n depth: number\n): LsgNavItem | undefined => {\n let currentItems = items;\n let currentItem: LsgNavItem | undefined;\n\n for (let i = 0; i <= depth; i += 1) {\n currentItem = currentItems.find((item) => item.label === activePath[i]);\n currentItems = currentItem?.children || [];\n }\n\n return currentItem;\n};\n\nconst getItemsAtLevel = (\n items: LsgNavItem[],\n activePath: string[],\n level: number\n): LsgNavItem[] => {\n if (level <= 1) {\n return items;\n }\n\n return getItemByPath(items, activePath, level - 2)?.children || [];\n};\n\nconst getMegaColumns = (\n items: LsgNavItem[],\n activePath: string[],\n maxDepth = 4\n): LsgNavItem[][] => {\n const columns: LsgNavItem[][] = [items];\n let currentItems = items;\n\n activePath.slice(0, maxDepth - 1).forEach((label) => {\n const activeItem = currentItems.find((item) => item.label === label);\n\n if (activeItem?.children?.length) {\n columns.push(activeItem.children);\n currentItems = activeItem.children;\n }\n });\n\n return columns.slice(0, maxDepth);\n};\n\nconst isCurrentOrActiveAtLevel = (item: LsgNavItem, activePath: string[], level: number) =>\n item.current || activePath[level] === item.label;\n\nconst isSelectedAtLevel = (item: LsgNavItem, activePath: string[], level: number) =>\n activePath[level] === item.label;\n\nconst hasOpenNavItem = (items: LsgNavItem[]): boolean =>\n items.some((item) => item.open || hasOpenNavItem(item.children || []));\n\nconst clearMegaMenuBranch = (scope: ParentNode): void => {\n if (scope instanceof HTMLElement) {\n scope.classList.remove(\"lsg-header__mega-item--open\");\n scope.classList.remove(\"lsg-header__mega-column--open\");\n }\n\n scope.querySelectorAll<HTMLElement>(\".lsg-header__mega-item--open\").forEach((item) => {\n item.classList.remove(\"lsg-header__mega-item--open\");\n });\n scope.querySelectorAll<HTMLElement>(\".lsg-header__mega-column--open\").forEach((column) => {\n column.classList.remove(\"lsg-header__mega-column--open\");\n });\n};\n\nconst activateMegaMenuItem = (item: HTMLElement): void => {\n const parentColumn = item.parentElement;\n\n if (parentColumn) {\n Array.from(parentColumn.children).forEach((openItem) => {\n if (openItem !== item) {\n clearMegaMenuBranch(openItem as HTMLElement);\n }\n });\n }\n\n item.classList.add(\"lsg-header__mega-item--open\");\n item\n .querySelector<HTMLElement>(\":scope > .lsg-header__mega-column\")\n ?.classList.add(\"lsg-header__mega-column--open\");\n};\n\nconst HeaderActionButton: React.FC<{\n label: string;\n icon: LsgIconName;\n onClick?: () => void;\n controls?: string;\n className?: string;\n}> = ({ label, icon, onClick, controls, className }) => (\n <button\n type=\"button\"\n className={[\"lsg-header__icon-button\", className || \"\"].filter(Boolean).join(\" \")}\n aria-label={label}\n aria-controls={controls}\n onClick={onClick}\n data-lsg-search-trigger={icon === \"search\" ? \"\" : undefined}\n >\n <LsgHeaderIcon name={icon} />\n </button>\n);\n\nexport const LsgHeader: React.FC<LsgHeaderProps> = ({\n logo,\n navItems = [],\n languages = [],\n currentLanguage = \"EN\",\n onLanguageChange,\n searchLabel = \"Open search\",\n searchPlaceholder = \"Search products, documents...\",\n variant = \"simple\",\n size,\n menuOpen = false,\n mobileLevel = 0,\n activePath = [],\n mobileSelectedLabel,\n onMenuToggle,\n onNavItemHover,\n onDropdownClose,\n onMegaItemHover,\n onMobileItemClick,\n onMobileBreadcrumbClick,\n children,\n}) => {\n const [searchOpen, setSearchOpen] = useState(false);\n const headerRef = useRef<HTMLElement>(null);\n const mobileOpen = menuOpen || mobileLevel > 0;\n const columns = children ? [] : getMegaColumns(navItems, activePath);\n const mobileItems = getItemsAtLevel(navItems, activePath, mobileLevel || 1);\n const mobileBackLabel = activePath[activePath.length - 1] || \"menu\";\n const dropdownOpen = variant === \"dropdown\" && hasOpenNavItem(navItems);\n\n useEffect(() => {\n if (!menuOpen && !dropdownOpen) {\n return undefined;\n }\n\n const closeOnOutsidePointerDown = (event: MouseEvent | TouchEvent) => {\n if (headerRef.current?.contains(event.target as Node)) {\n return;\n }\n\n if (menuOpen) {\n onMenuToggle?.();\n }\n\n if (dropdownOpen) {\n onDropdownClose?.();\n }\n };\n\n document.addEventListener(\"mousedown\", closeOnOutsidePointerDown);\n document.addEventListener(\"touchstart\", closeOnOutsidePointerDown);\n\n return () => {\n document.removeEventListener(\"mousedown\", closeOnOutsidePointerDown);\n document.removeEventListener(\"touchstart\", closeOnOutsidePointerDown);\n };\n }, [dropdownOpen, menuOpen, onDropdownClose, onMenuToggle]);\n\n useEffect(() => {\n if (variant !== \"mega\" || !children || !menuOpen || !headerRef.current) {\n return undefined;\n }\n\n const megaItems = Array.from(\n headerRef.current.querySelectorAll<HTMLElement>(\".lsg-header__mega-item--has-children\")\n );\n const removeListeners = megaItems.map((item) => {\n const onMouseEnter = () => activateMegaMenuItem(item);\n const onFocusIn = () => activateMegaMenuItem(item);\n\n item.addEventListener(\"mouseenter\", onMouseEnter);\n item.addEventListener(\"focusin\", onFocusIn);\n\n return () => {\n item.removeEventListener(\"mouseenter\", onMouseEnter);\n item.removeEventListener(\"focusin\", onFocusIn);\n };\n });\n\n return () => {\n removeListeners.forEach((removeListener) => removeListener());\n if (headerRef.current) {\n clearMegaMenuBranch(headerRef.current);\n }\n };\n }, [children, menuOpen, variant]);\n\n const openSearch = () => setSearchOpen(true);\n\n const renderActions = (showMenu = false) => (\n <div className=\"lsg-header__actions\">\n {showMenu && variant === \"mega\" && (\n <>\n <button\n type=\"button\"\n className=\"lsg-header__menu-trigger\"\n aria-label={menuOpen ? \"Close menu\" : \"Open menu\"}\n aria-expanded={menuOpen}\n onClick={onMenuToggle}\n data-lsg-menu-trigger\n >\n <LsgHeaderIcon name={menuOpen ? \"close\" : \"bars\"} />\n <span>{menuOpen ? \"CLOSE\" : \"MENU\"}</span>\n </button>\n <span className=\"lsg-header__separator\" aria-hidden=\"true\">\n |\n </span>\n </>\n )}\n <HeaderActionButton\n label={searchLabel}\n icon=\"search\"\n controls={SEARCH_OVERLAY_ID}\n onClick={openSearch}\n />\n {languages.length > 0 && (\n <LsgLanguageSwitcher\n currentLanguage={currentLanguage}\n languages={languages}\n label={`Current language: ${currentLanguage}`}\n onLanguageChange={onLanguageChange}\n />\n )}\n </div>\n );\n\n const renderMegaPanel = () => (\n <div className=\"lsg-header__mega-panel\">\n <div className=\"lsg-header__mega-inner\">\n {columns.map((columnItems, columnIndex) => (\n <ul key={`mega-column-${columnIndex}`} className=\"lsg-header__mega-column\" role=\"list\">\n {columnItems.map((item) => {\n const hasChildren = Boolean(item.children?.length);\n\n return (\n <li\n key={`${item.href}-${columnIndex}`}\n className={[\n \"lsg-header__mega-item\",\n hasChildren ? \"lsg-header__mega-item--has-children\" : \"\",\n isSelectedAtLevel(item, activePath, columnIndex)\n ? \"lsg-header__mega-item--active\"\n : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n onMouseEnter={() => {\n if (onMegaItemHover && hasChildren) {\n onMegaItemHover(item, columnIndex);\n }\n }}\n >\n <a href={item.href} className=\"lsg-header__mega-link\">\n <span>{item.label}</span>\n {hasChildren && <LsgHeaderIcon name=\"chevronRight\" />}\n </a>\n </li>\n );\n })}\n </ul>\n ))}\n </div>\n </div>\n );\n\n const renderMobileMenu = () => (\n <div className=\"lsg-header__mobile-panel\">\n {variant === \"dropdown\" ? (\n <LsgNavigation\n items={navItems}\n variant=\"dropdown\"\n onItemClick={(item, level) => onMobileItemClick?.(item, level + 1)}\n />\n ) : (\n <>\n {variant === \"mega\" && mobileLevel > 1 && (\n <nav className=\"lsg-header__mobile-back\" aria-label=\"Menu navigation\">\n <button\n type=\"button\"\n className=\"lsg-header__mobile-back-button\"\n aria-label={`Back to ${mobileBackLabel}`}\n onClick={() =>\n onMobileBreadcrumbClick?.(Math.max(1, mobileLevel - 1) as 1 | 2 | 3 | 4)\n }\n >\n <LsgHeaderIcon name=\"chevronRight\" />\n <span>Back to {mobileBackLabel}</span>\n </button>\n </nav>\n )}\n\n <ul className=\"lsg-header__mobile-list\" role=\"list\">\n {mobileItems.map((item, index) => {\n const hasChildren = Boolean(item.children?.length);\n const isSelected = mobileSelectedLabel\n ? item.label === mobileSelectedLabel\n : isCurrentOrActiveAtLevel(item, activePath, Math.max(0, mobileLevel - 1));\n\n return (\n <li\n key={`${item.href}-mobile-${index}`}\n className={[\n \"lsg-header__mobile-item\",\n hasChildren ? \"lsg-header__mobile-item--has-children\" : \"\",\n isSelected ? \"lsg-header__mobile-item--active\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n <a\n href={item.href}\n className=\"lsg-header__mobile-link\"\n onClick={(event) => {\n if (onMobileItemClick && hasChildren) {\n event.preventDefault();\n onMobileItemClick(item, Math.max(1, mobileLevel || 1));\n }\n }}\n >\n <span>{item.label}</span>\n {hasChildren && <LsgHeaderIcon name=\"chevronRight\" />}\n </a>\n </li>\n );\n })}\n </ul>\n </>\n )}\n </div>\n );\n\n return (\n <>\n <LsgSearchOverlay\n id={SEARCH_OVERLAY_ID}\n isOpen={searchOpen}\n onClose={() => setSearchOpen(false)}\n placeholder={searchPlaceholder}\n />\n <header\n ref={headerRef}\n className={[\n \"lsg-header\",\n `lsg-header--${variant}`,\n size ? `lsg-header--size-${size}` : \"\",\n menuOpen ? \"lsg-header--menu-open\" : \"\",\n `lsg-header--mobile-level-${mobileLevel}`,\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n <div className=\"lsg-header__inner\">\n <div className=\"lsg-logo-decorator\">\n <div className=\"lsg-logo\">\n <LsgLogo {...logo} />\n </div>\n </div>\n\n {variant !== \"mega\" && navItems.length > 0 && (\n <div className=\"lsg-header__nav\">\n <LsgNavigation items={navItems} variant={variant} onItemHover={onNavItemHover} />\n </div>\n )}\n\n {variant === \"mega\" && (\n <div className=\"lsg-header__desktop-menu\">{renderActions(true)}</div>\n )}\n\n {variant !== \"mega\" && (\n <div className=\"lsg-header__desktop-actions\">\n <span className=\"lsg-header__separator\" aria-hidden=\"true\">\n |\n </span>\n {renderActions(false)}\n </div>\n )}\n\n <div className=\"lsg-header__mobile-actions\">\n <HeaderActionButton\n label={searchLabel}\n icon=\"search\"\n controls={SEARCH_OVERLAY_ID}\n onClick={openSearch}\n />\n {languages.length > 0 && (\n <LsgLanguageSwitcher\n currentLanguage={currentLanguage}\n languages={languages}\n label={`Current language: ${currentLanguage}`}\n onLanguageChange={onLanguageChange}\n />\n )}\n <span className=\"lsg-header__separator\" aria-hidden=\"true\">\n |\n </span>\n <button\n type=\"button\"\n className=\"lsg-header__icon-button\"\n aria-label={mobileOpen ? \"Close menu\" : \"Open menu\"}\n aria-expanded={mobileOpen}\n onClick={onMenuToggle}\n data-lsg-menu-trigger\n >\n <LsgHeaderIcon name={mobileOpen ? \"close\" : \"bars\"} />\n </button>\n </div>\n </div>\n\n {variant === \"mega\" && menuOpen && (children || renderMegaPanel())}\n {mobileOpen && renderMobileMenu()}\n </header>\n\n \n </>\n );\n};\n","import React from \"react\";\nimport \"./LsgQuickLinks.scss\";\n\nexport interface LsgQuickLink {\n label: string;\n href: string;\n}\n\nexport interface LsgQuickLinksProps {\n heading?: string;\n links: LsgQuickLink[];\n}\n\nexport const LsgQuickLinks: React.FC<LsgQuickLinksProps> = ({ heading, links }) => {\n return (\n <nav className=\"lsg-quick-links\" aria-label={heading ?? \"Quick links\"}>\n {heading && <p className=\"lsg-quick-links__heading\" aria-hidden=\"true\">{heading}</p>}\n <ul className=\"lsg-quick-links__list\" role=\"list\">\n {links.map((link) => (\n <li key={link.href} className=\"lsg-quick-links__item\">\n <a href={link.href} className=\"lsg-quick-links__link\">\n {link.label}\n </a>\n </li>\n ))}\n </ul>\n </nav>\n );\n};\n","import React from \"react\";\nimport \"./LsgSocialMediaIcons.scss\";\n\nexport type LsgSocialPlatform =\n | \"linkedin\"\n | \"twitter\"\n | \"facebook\"\n | \"instagram\"\n | \"youtube\";\n\nexport interface LsgSocialItem {\n platform: LsgSocialPlatform;\n href: string;\n /** Screen-reader label, e.g. \"Atlas Copco on LinkedIn\" */\n label: string;\n}\n\nexport interface LsgSocialMediaIconsProps {\n items: LsgSocialItem[];\n}\n\nconst platformIcons: Record<LsgSocialPlatform, React.ReactElement> = {\n linkedin: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M20.45 20.45h-3.56v-5.57c0-1.33-.03-3.04-1.85-3.04-1.86 0-2.14 1.45-2.14 2.95v5.66H9.34V9h3.41v1.56h.05c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.45v6.29zM5.34 7.43a2.07 2.07 0 1 1 0-4.14 2.07 2.07 0 0 1 0 4.14zM7.12 20.45H3.55V9h3.57v11.45z\" />\n </svg>\n ),\n twitter: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\" />\n </svg>\n ),\n facebook: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M24 12.073C24 5.405 18.627 0 12 0S0 5.405 0 12.073C0 18.1 4.388 23.094 10.125 24v-8.437H7.078v-3.49h3.047V9.41c0-3.025 1.792-4.697 4.533-4.697 1.312 0 2.686.236 2.686.236v2.97h-1.513c-1.491 0-1.956.93-1.956 1.874v2.25h3.328l-.532 3.49h-2.796V24C19.612 23.094 24 18.1 24 12.073z\" />\n </svg>\n ),\n instagram: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6.406-11.845a1.44 1.44 0 1 0 0 2.881 1.44 1.44 0 0 0 0-2.881z\" />\n </svg>\n ),\n youtube: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z\" />\n </svg>\n ),\n};\n\nexport const LsgSocialMediaIcons: React.FC<LsgSocialMediaIconsProps> = ({ items }) => {\n return (\n <ul className=\"lsg-social-icons\" role=\"list\">\n {items.map((item) => (\n <li key={item.platform} className=\"lsg-social-icons__item\">\n <a\n href={item.href}\n className=\"lsg-social-icons__link\"\n aria-label={item.label}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {platformIcons[item.platform]}\n </a>\n </li>\n ))}\n </ul>\n );\n};\n","import React from \"react\";\nimport \"./LsgFooter.scss\";\nimport { LsgLogo, LsgLogoProps } from \"../LsgLogo\";\n\nexport interface LsgFooterNavItem {\n label: string;\n href: string;\n}\n\nexport interface LsgFooterContact {\n address?: string;\n phone?: string;\n fax?: string;\n email?: string;\n}\n\nexport interface LsgFooterColHeadings {\n contact?: string;\n quickLinks?: string;\n about?: string;\n contactAlt?: string;\n}\n\nexport interface LsgFooterProps {\n variant?: \"simple\" | \"complex\";\n /** 2-row simple variant (brand line top row, cookie+copyright+AI bottom row) */\n simpleTwoRow?: boolean;\n /** Brand line shown in simple 2-row top or complex footer below logo */\n brandLine?: string;\n /** Column layout for complex variant. Default: \"2col\" */\n complexColumns?: \"2col\" | \"3col\";\n /** Show \"This Website Is Translated With AI\" badge */\n showAiBadge?: boolean;\n /** Cookie settings link text (shown in 2-row simple or complex bottom bar) */\n cookieSetting?: string;\n logo?: LsgLogoProps;\n navItems?: LsgFooterNavItem[];\n contact?: LsgFooterContact;\n quickLinks?: LsgFooterNavItem[];\n copyright?: string;\n /** Column headings for complex footer */\n colHeadings?: LsgFooterColHeadings;\n /** Social icon links shown in complex footer */\n socialLinks?: { platform: \"facebook\" | \"twitter\" | \"linkedin\" | \"youtube\" | \"instagram\"; href: string }[];\n /** Where to show social icons in complex variant: \"body\" | \"bottom-bar\". Default: \"body\" */\n socialPosition?: \"body\" | \"bottom-bar\";\n className?: string;\n}\n\nconst PhoneIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path d=\"M15.833 13.483c-.417-.416-1.25-.833-1.875-1.083-.625-.25-1.042-.167-1.458.208l-.834.833c-.208.209-.5.209-.708.042-.625-.5-1.833-1.583-2.583-2.333-.75-.75-1.75-1.875-2.25-2.583-.167-.208-.125-.5.083-.709l.834-.833c.416-.417.5-.833.25-1.458-.25-.625-.667-1.458-1.084-1.875C8.791 3.25 8.208 3 7.583 3c-.416 0-.833.167-1.125.458L5.625 4.292C4.5 5.417 4.708 7.125 5.333 8.833c.625 1.708 2 3.833 3.625 5.458 1.625 1.625 3.75 3 5.458 3.625 1.709.625 3.417.833 4.542-.292l.833-.833c.292-.292.458-.708.458-1.125 0-.625-.25-1.208-.416-1.583z\" fill=\"currentColor\"/>\n </svg>\n);\n\nconst FaxIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path d=\"M16 6h-1V2H5v4H4c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h1v2h10v-2h1c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zM7 4h6v2H7V4zm6 12H7v-4h6v4zm3-5H4V8h12v3z\" fill=\"currentColor\"/>\n </svg>\n);\n\nconst MailIcon = () => (\n <svg width=\"24\" height=\"20\" viewBox=\"0 0 24 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path d=\"M20 0H4C2.9 0 2 .9 2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V2l8 5 8-5v2z\" fill=\"currentColor\"/>\n </svg>\n);\n\nconst LocationIcon = () => (\n <svg width=\"18\" height=\"21\" viewBox=\"0 0 18 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path d=\"M9 0C5.13 0 2 3.13 2 7c0 5.25 7 13 7 13s7-7.75 7-13C16 3.13 12.87 0 9 0zm0 9.5C7.62 9.5 6.5 8.38 6.5 7S7.62 4.5 9 4.5 11.5 5.62 11.5 7 10.38 9.5 9 9.5z\" fill=\"currentColor\"/>\n </svg>\n);\n\nconst AiBadge = () => (\n <span className=\"lsg-footer__ai-badge\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"1.5\"/>\n <path d=\"M2 12h20M12 2a15.3 15.3 0 0 1 0 20M12 2a15.3 15.3 0 0 0 0 20\" stroke=\"currentColor\" strokeWidth=\"1.5\"/>\n </svg>\n This Website Is Translated With AI\n </span>\n);\n\nconst SocialIcon: React.FC<{ platform: string }> = ({ platform }) => {\n const icons: Record<string, React.ReactNode> = {\n facebook: <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\"/></svg>,\n twitter: <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"/></svg>,\n linkedin: <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6zM2 9h4v12H2z\"/><circle cx=\"4\" cy=\"4\" r=\"2\"/></svg>,\n youtube: <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M22.54 6.42a2.78 2.78 0 0 0-1.95-1.96C18.88 4 12 4 12 4s-6.88 0-8.59.46a2.78 2.78 0 0 0-1.95 1.96A29 29 0 0 0 1 12a29 29 0 0 0 .46 5.58A2.78 2.78 0 0 0 3.41 19.6C5.12 20 12 20 12 20s6.88 0 8.59-.4a2.78 2.78 0 0 0 1.95-1.95A29 29 0 0 0 23 12a29 29 0 0 0-.46-5.58zM9.75 15.02V8.98L15.5 12l-5.75 3.02z\"/></svg>,\n instagram:<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><rect x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" ry=\"5\"/><circle cx=\"12\" cy=\"12\" r=\"4\"/><circle cx=\"17.5\" cy=\"6.5\" r=\"0.5\" fill=\"currentColor\"/></svg>,\n };\n return <>{icons[platform] ?? null}</>;\n};\n\nconst SocialIconsRow: React.FC<{ links: NonNullable<LsgFooterProps[\"socialLinks\"]> }> = ({ links }) => (\n <div className=\"lsg-footer__bottom-social\">\n {links.map((l) => (\n <a key={l.platform} href={l.href} aria-label={l.platform} style={{ color: \"inherit\", display: \"inline-flex\", alignItems: \"center\", opacity: 0.8 }}>\n <SocialIcon platform={l.platform} />\n </a>\n ))}\n </div>\n);\n\nexport const LsgFooter: React.FC<LsgFooterProps> = ({\n variant = \"simple\",\n simpleTwoRow = false,\n brandLine = \"Part of Atlas Copco Group\",\n complexColumns = \"2col\",\n showAiBadge = false,\n cookieSetting,\n logo,\n navItems = [],\n contact,\n quickLinks = [],\n copyright,\n colHeadings,\n socialLinks,\n socialPosition = \"body\",\n className = \"\",\n}) => {\n const year = new Date().getFullYear();\n const copyrightText = copyright ?? `© ${year} Brand - Part of Atlas Copco Group`;\n\n // ── Simple footer ──────────────────────────────────────────────────────────\n if (variant === \"simple\") {\n if (simpleTwoRow) {\n return (\n <footer className={`lsg-footer lsg-footer--simple lsg-footer--simple-tworow${className ? ` ${className}` : \"\"}`}>\n <div className=\"lsg-footer__simple-top\">\n <span className=\"lsg-footer__brand-line\">{brandLine}</span>\n {navItems.length > 0 && (\n <nav className=\"lsg-footer__simple-nav\" aria-label=\"Footer navigation\">\n {navItems.map((item, i) => (\n <React.Fragment key={item.href}>\n {i > 0 && <span className=\"lsg-footer__pipe\" aria-hidden=\"true\">|</span>}\n <a href={item.href} className=\"lsg-footer__simple-nav-item\">{item.label}</a>\n </React.Fragment>\n ))}\n </nav>\n )}\n </div>\n <div className=\"lsg-footer__simple-bottom\">\n <div className=\"lsg-footer__simple-bottom-left\">\n {cookieSetting && <a href=\"#\" className=\"lsg-footer__cookie-link\">{cookieSetting}</a>}\n <p className=\"lsg-footer__copyright\">{copyrightText}</p>\n </div>\n {showAiBadge && <AiBadge />}\n </div>\n </footer>\n );\n }\n\n return (\n <footer className={`lsg-footer lsg-footer--simple${className ? ` ${className}` : \"\"}`}>\n <div className=\"lsg-footer__simple-inner\">\n <p className=\"lsg-footer__copyright\">{copyrightText}</p>\n {navItems.length > 0 && (\n <nav className=\"lsg-footer__simple-nav\" aria-label=\"Footer navigation\">\n {navItems.map((item, i) => (\n <React.Fragment key={item.href}>\n {i > 0 && (\n <>\n <span className=\"lsg-footer__pipe\" aria-hidden=\"true\">|</span>\n <hr className=\"lsg-footer__mobile-divider\" aria-hidden=\"true\" />\n </>\n )}\n <a href={item.href} className=\"lsg-footer__simple-nav-item\">{item.label}</a>\n </React.Fragment>\n ))}\n </nav>\n )}\n </div>\n </footer>\n );\n }\n\n // ── Complex footer ─────────────────────────────────────────────────────────\n const is3col = complexColumns === \"3col\";\n const headings = {\n contact: colHeadings?.contact ?? \"CONTACT\",\n quickLinks: colHeadings?.quickLinks ?? (is3col ? \"Quicklinks\" : \"QUICK LINKS\"),\n about: colHeadings?.about ?? \"About brand\",\n contactAlt: colHeadings?.contactAlt ?? \"Contact\",\n };\n\n const bottomBar = (\n <>\n <hr className=\"lsg-footer__bottom-divider\" />\n <div className=\"lsg-footer__bottom\">\n <div className=\"lsg-footer__bottom-left\">\n {cookieSetting && <a href=\"#\" className=\"lsg-footer__cookie-link\">{cookieSetting}</a>}\n <p className=\"lsg-footer__copyright\">{copyrightText}</p>\n {is3col && showAiBadge && <AiBadge />}\n </div>\n {!is3col && showAiBadge && <AiBadge />}\n {socialPosition === \"bottom-bar\" && socialLinks && socialLinks.length > 0 && (\n <SocialIconsRow links={socialLinks} />\n )}\n </div>\n </>\n );\n\n if (is3col) {\n return (\n <footer className={`lsg-footer lsg-footer--complex${className ? ` ${className}` : \"\"}`}>\n <div className=\"lsg-footer__complex-inner\">\n {logo && (\n <div className=\"lsg-footer__logo-col\">\n <LsgLogo {...logo} />\n {brandLine && <span className=\"lsg-footer__brand-line\">{brandLine}</span>}\n </div>\n )}\n <div className=\"lsg-footer__content-cols lsg-footer__content-cols--3col\">\n <div className=\"lsg-footer__about-col\">\n <h3 className=\"lsg-footer__col-heading\">{headings.about}</h3>\n {contact?.address && (\n <div className=\"lsg-footer__address\">\n <LocationIcon />\n <p>{contact.address}</p>\n </div>\n )}\n </div>\n <div className=\"lsg-footer__contact-col\">\n <h3 className=\"lsg-footer__col-heading\">{headings.contactAlt}</h3>\n <div className=\"lsg-footer__contact-items\">\n {contact?.phone && (\n <div className=\"lsg-footer__contact-item\"><PhoneIcon /><span>{contact.phone}</span></div>\n )}\n {contact?.fax && (\n <div className=\"lsg-footer__contact-item\"><FaxIcon /><span>{contact.fax}</span></div>\n )}\n {contact?.email && (\n <div className=\"lsg-footer__contact-item\"><MailIcon /><a href={`mailto:${contact.email}`}>{contact.email}</a></div>\n )}\n </div>\n </div>\n {quickLinks.length > 0 && (\n <div className=\"lsg-footer__quicklinks-col\">\n <h3 className=\"lsg-footer__col-heading\">{headings.quickLinks}</h3>\n <ul className=\"lsg-footer__quicklinks-list\">\n {quickLinks.map((link, i) => (\n <li key={link.href ?? i} className=\"lsg-footer__quicklink-item\">\n <a href={link.href} className=\"lsg-footer__quicklink\">{link.label}</a>\n <hr className=\"lsg-footer__divider\" />\n </li>\n ))}\n </ul>\n {socialPosition === \"body\" && socialLinks && socialLinks.length > 0 && (\n <div className=\"lsg-footer__body-social\"><SocialIconsRow links={socialLinks} /></div>\n )}\n </div>\n )}\n </div>\n </div>\n {bottomBar}\n </footer>\n );\n }\n\n return (\n <footer className={`lsg-footer lsg-footer--complex${className ? ` ${className}` : \"\"}`}>\n <div className=\"lsg-footer__complex-inner\">\n {logo && (\n <div className=\"lsg-footer__logo-col\">\n <LsgLogo {...logo} />\n {brandLine && <span className=\"lsg-footer__brand-line\">{brandLine}</span>}\n </div>\n )}\n <div className=\"lsg-footer__content-cols\">\n {contact && (\n <div className=\"lsg-footer__contact-col\">\n <h3 className=\"lsg-footer__col-heading\">{headings.contact}</h3>\n {contact.address && (\n <div className=\"lsg-footer__address\">\n <LocationIcon />\n <p>{contact.address}</p>\n </div>\n )}\n <hr className=\"lsg-footer__divider\" />\n <div className=\"lsg-footer__contact-items\">\n {contact.phone && (\n <div className=\"lsg-footer__contact-item\"><PhoneIcon /><span>{contact.phone}</span></div>\n )}\n {contact.fax && (\n <div className=\"lsg-footer__contact-item\"><FaxIcon /><span>{contact.fax}</span></div>\n )}\n {contact.email && (\n <div className=\"lsg-footer__contact-item\"><MailIcon /><a href={`mailto:${contact.email}`}>{contact.email}</a></div>\n )}\n </div>\n </div>\n )}\n {quickLinks.length > 0 && (\n <div className=\"lsg-footer__quicklinks-col\">\n <h3 className=\"lsg-footer__col-heading\">{headings.quickLinks}</h3>\n <ul className=\"lsg-footer__quicklinks-list\">\n {quickLinks.map((link, i) => (\n <li key={link.href ?? i} className=\"lsg-footer__quicklink-item\">\n <a href={link.href} className=\"lsg-footer__quicklink\">{link.label}</a>\n <hr className=\"lsg-footer__divider\" />\n </li>\n ))}\n </ul>\n {socialPosition === \"body\" && socialLinks && socialLinks.length > 0 && (\n <div className=\"lsg-footer__body-social\"><SocialIconsRow links={socialLinks} /></div>\n )}\n </div>\n )}\n </div>\n </div>\n {bottomBar}\n </footer>\n );\n};\n","function clampNumber(number, min, max) {\n return Math.min(Math.max(number, min), max);\n}\nfunction isNumber(value) {\n return typeof value === 'number' && !isNaN(value);\n}\n\nfunction Fade(userOptions = {}) {\n const fullOpacity = 1;\n const noOpacity = 0;\n const fadeFriction = 0.68;\n let emblaApi;\n let opacities = [];\n let fadeToNextDistance;\n let distanceFromPointerDown = 0;\n let fadeVelocity = 0;\n let progress = 0;\n let shouldFadePair = false;\n let defaultSettledBehaviour;\n let defaultProgressBehaviour;\n function init(emblaApiInstance) {\n emblaApi = emblaApiInstance;\n const selectedSnap = emblaApi.selectedScrollSnap();\n const {\n scrollBody,\n containerRect,\n axis\n } = emblaApi.internalEngine();\n const containerSize = axis.measureSize(containerRect);\n fadeToNextDistance = clampNumber(containerSize * 0.75, 200, 500);\n shouldFadePair = false;\n opacities = emblaApi.scrollSnapList().map((_, index) => index === selectedSnap ? fullOpacity : noOpacity);\n defaultSettledBehaviour = scrollBody.settled;\n defaultProgressBehaviour = emblaApi.scrollProgress;\n scrollBody.settled = settled;\n emblaApi.scrollProgress = scrollProgress;\n emblaApi.on('select', select).on('slideFocus', fadeToSelectedSnapInstantly).on('pointerDown', pointerDown).on('pointerUp', pointerUp);\n disableScroll();\n fadeToSelectedSnapInstantly();\n }\n function destroy() {\n const {\n scrollBody\n } = emblaApi.internalEngine();\n scrollBody.settled = defaultSettledBehaviour;\n emblaApi.scrollProgress = defaultProgressBehaviour;\n emblaApi.off('select', select).off('slideFocus', fadeToSelectedSnapInstantly).off('pointerDown', pointerDown).off('pointerUp', pointerUp);\n emblaApi.slideNodes().forEach(slideNode => {\n const slideStyle = slideNode.style;\n slideStyle.opacity = '';\n slideStyle.transform = '';\n slideStyle.pointerEvents = '';\n if (!slideNode.getAttribute('style')) slideNode.removeAttribute('style');\n });\n }\n function fadeToSelectedSnapInstantly() {\n const selectedSnap = emblaApi.selectedScrollSnap();\n setOpacities(selectedSnap, fullOpacity);\n }\n function pointerUp() {\n shouldFadePair = false;\n }\n function pointerDown() {\n shouldFadePair = false;\n distanceFromPointerDown = 0;\n fadeVelocity = 0;\n }\n function select() {\n const duration = emblaApi.internalEngine().scrollBody.duration();\n fadeVelocity = duration ? 0 : fullOpacity;\n shouldFadePair = true;\n if (!duration) fadeToSelectedSnapInstantly();\n }\n function getSlideTransform(position) {\n const {\n axis\n } = emblaApi.internalEngine();\n const translateAxis = axis.scroll.toUpperCase();\n return `translate${translateAxis}(${axis.direction(position)}px)`;\n }\n function disableScroll() {\n const {\n translate,\n slideLooper\n } = emblaApi.internalEngine();\n translate.clear();\n translate.toggleActive(false);\n slideLooper.loopPoints.forEach(({\n translate\n }) => {\n translate.clear();\n translate.toggleActive(false);\n });\n }\n function lockExcessiveScroll(fadeIndex) {\n const {\n scrollSnaps,\n location,\n target\n } = emblaApi.internalEngine();\n if (!isNumber(fadeIndex) || opacities[fadeIndex] < 0.5) return;\n location.set(scrollSnaps[fadeIndex]);\n target.set(location);\n }\n function setOpacities(fadeIndex, velocity) {\n const scrollSnaps = emblaApi.scrollSnapList();\n scrollSnaps.forEach((_, indexA) => {\n const absVelocity = Math.abs(velocity);\n const currentOpacity = opacities[indexA];\n const isFadeIndex = indexA === fadeIndex;\n const nextOpacity = isFadeIndex ? currentOpacity + absVelocity : currentOpacity - absVelocity;\n const clampedOpacity = clampNumber(nextOpacity, noOpacity, fullOpacity);\n opacities[indexA] = clampedOpacity;\n const fadePair = isFadeIndex && shouldFadePair;\n const indexB = emblaApi.previousScrollSnap();\n if (fadePair) opacities[indexB] = 1 - clampedOpacity;\n if (isFadeIndex) setProgress(fadeIndex, clampedOpacity);\n setOpacity(indexA);\n });\n }\n function setOpacity(index) {\n const slidesInSnap = emblaApi.internalEngine().slideRegistry[index];\n const {\n scrollSnaps,\n containerRect\n } = emblaApi.internalEngine();\n const opacity = opacities[index];\n slidesInSnap.forEach(slideIndex => {\n const slideStyle = emblaApi.slideNodes()[slideIndex].style;\n const roundedOpacity = parseFloat(opacity.toFixed(2));\n const hasOpacity = roundedOpacity > noOpacity;\n const position = hasOpacity ? scrollSnaps[index] : containerRect.width + 2;\n const transform = getSlideTransform(position);\n if (hasOpacity) slideStyle.transform = transform;\n slideStyle.opacity = roundedOpacity.toString();\n slideStyle.pointerEvents = opacity > 0.5 ? 'auto' : 'none';\n if (!hasOpacity) slideStyle.transform = transform;\n });\n }\n function setProgress(fadeIndex, opacity) {\n const {\n index,\n dragHandler,\n scrollSnaps\n } = emblaApi.internalEngine();\n const pointerDown = dragHandler.pointerDown();\n const snapFraction = 1 / (scrollSnaps.length - 1);\n let indexA = fadeIndex;\n let indexB = pointerDown ? emblaApi.selectedScrollSnap() : emblaApi.previousScrollSnap();\n if (pointerDown && indexA === indexB) {\n const reverseSign = Math.sign(distanceFromPointerDown) * -1;\n indexA = indexB;\n indexB = index.clone().set(indexB).add(reverseSign).get();\n }\n const currentPosition = indexB * snapFraction;\n const diffPosition = (indexA - indexB) * snapFraction;\n progress = currentPosition + diffPosition * opacity;\n }\n function getFadeIndex() {\n const {\n dragHandler,\n index,\n scrollBody\n } = emblaApi.internalEngine();\n const selectedSnap = emblaApi.selectedScrollSnap();\n if (!dragHandler.pointerDown()) return selectedSnap;\n const directionSign = Math.sign(scrollBody.velocity());\n const distanceSign = Math.sign(distanceFromPointerDown);\n const nextSnap = index.clone().set(selectedSnap).add(directionSign * -1).get();\n if (!directionSign || !distanceSign) return null;\n return distanceSign === directionSign ? nextSnap : selectedSnap;\n }\n function fade(emblaApi) {\n const {\n dragHandler,\n scrollBody\n } = emblaApi.internalEngine();\n const pointerDown = dragHandler.pointerDown();\n const velocity = scrollBody.velocity();\n const duration = scrollBody.duration();\n const fadeIndex = getFadeIndex();\n const noFadeIndex = !isNumber(fadeIndex);\n if (pointerDown) {\n if (!velocity) return;\n distanceFromPointerDown += velocity;\n fadeVelocity = Math.abs(velocity / fadeToNextDistance);\n lockExcessiveScroll(fadeIndex);\n }\n if (!pointerDown) {\n if (!duration || noFadeIndex) return;\n fadeVelocity += (fullOpacity - opacities[fadeIndex]) / duration;\n fadeVelocity *= fadeFriction;\n }\n if (noFadeIndex) return;\n setOpacities(fadeIndex, fadeVelocity);\n }\n function settled() {\n const {\n target,\n location\n } = emblaApi.internalEngine();\n const diffToTarget = target.get() - location.get();\n const notReachedTarget = Math.abs(diffToTarget) >= 1;\n const fadeIndex = getFadeIndex();\n const noFadeIndex = !isNumber(fadeIndex);\n fade(emblaApi);\n if (noFadeIndex || notReachedTarget) return false;\n return opacities[fadeIndex] > 0.999;\n }\n function scrollProgress() {\n return progress;\n }\n const self = {\n name: 'fade',\n options: userOptions,\n init,\n destroy\n };\n return self;\n}\nFade.globalOptions = undefined;\n\nexport { Fade as default };\n//# sourceMappingURL=embla-carousel-fade.esm.js.map\n","import EmblaCarousel, { EmblaCarouselType } from \"embla-carousel\";\nimport EmblaCarouselFade from \"embla-carousel-fade\";\n\n// ─────────────────────────────────────────────────────────────────────────────\n// LsgHeroController — shared vanilla JS carousel controller\n// ─────────────────────────────────────────────────────────────────────────────\n//\n// Single source of truth for carousel behaviour. Used by:\n// 1. The React LsgHero component (via useEffect + refs)\n// 2. The AEM clientlib initHero function (directly on server-rendered DOM)\n//\n// This means carousel logic is written once and behaves identically in both\n// Storybook and AEM — no React-specific wrappers, no divergence.\n//\n// Usage:\n// const controller = new LsgHeroController(viewportEl, elements, options);\n// // later when unmounting:\n// controller.destroy();\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport type LsgHeroControllerTransition = \"slide\" | \"fade\";\n\nexport interface LsgHeroControllerOptions {\n /** Slide transition style. Defaults to \"slide\". */\n transition?: LsgHeroControllerTransition;\n /** Enable autoplay. Defaults to true. */\n autoplay?: boolean;\n /** Autoplay interval in milliseconds. Defaults to 5000. */\n autoplayInterval?: number;\n}\n\nexport interface LsgHeroControllerElements {\n /** Previous-slide button. */\n prevBtn?: HTMLElement | null;\n /** Next-slide button. */\n nextBtn?: HTMLElement | null;\n /** Scroll-down trigger button. */\n scrollDownBtn?: HTMLElement | null;\n /** Element to scroll into view when scroll-down is triggered. */\n scrollDownTarget?: HTMLElement | null;\n}\n\nexport class LsgHeroController {\n private embla: EmblaCarouselType | null = null;\n private autoplayTimer: ReturnType<typeof setInterval> | null = null;\n private contentObserver: ResizeObserver | null = null;\n private rafId: ReturnType<typeof requestAnimationFrame> | null = null;\n private readonly opts: Required<LsgHeroControllerOptions>;\n private readonly els: LsgHeroControllerElements;\n\n constructor(\n viewport: HTMLElement,\n elements: LsgHeroControllerElements = {},\n options: LsgHeroControllerOptions = {}\n ) {\n this.opts = {\n transition: options.transition ?? \"slide\",\n autoplay: options.autoplay ?? true,\n autoplayInterval: options.autoplayInterval ?? 5000,\n };\n this.els = elements;\n this.mount(viewport);\n }\n\n private mount(viewport: HTMLElement): void {\n this.els.prevBtn?.addEventListener(\"click\", this.scrollPrev);\n this.els.nextBtn?.addEventListener(\"click\", this.scrollNext);\n this.els.scrollDownBtn?.addEventListener(\"click\", this.handleScrollDown);\n\n // First frame lets React's initial paint settle; second guarantees that\n // async-injected stylesheets (e.g. --lsg-hero-axis) have been computed.\n this.rafId = requestAnimationFrame(() => {\n this.rafId = requestAnimationFrame(() => {\n this.rafId = null;\n if (!viewport.isConnected) return;\n\n const section = viewport.closest<HTMLElement>(\"[data-lsg-is='hero']\");\n const axis: \"x\" | \"y\" =\n section && getComputedStyle(section).getPropertyValue(\"--lsg-hero-axis\").trim() === \"y\"\n ? \"y\"\n : \"x\";\n\n const plugins = this.opts.transition === \"fade\" ? [EmblaCarouselFade()] : [];\n this.embla = EmblaCarousel(viewport, { loop: true, axis }, plugins);\n\n if (this.opts.autoplay) {\n this.startAutoplay();\n this.embla.on(\"pointerDown\", this.stopAutoplay);\n this.embla.on(\"pointerUp\", this.startAutoplay);\n }\n\n // Sync the first slide's content-wrapper height to a CSS custom property\n // on the section root so the controls column can match it dynamically.\n const contentWrapper = section?.querySelector<HTMLElement>(\".lsg-hero-card__content-wrapper\");\n if (section && contentWrapper && typeof ResizeObserver !== \"undefined\") {\n const setHeight = (el: Element): void => {\n (section as HTMLElement).style.setProperty(\n \"--lsg-hero-content-height\",\n `${(el as HTMLElement).offsetHeight}px`\n );\n };\n setHeight(contentWrapper);\n this.contentObserver = new ResizeObserver((entries) => {\n setHeight(entries[0].target);\n });\n this.contentObserver.observe(contentWrapper);\n }\n\n // For vertical carousels the section height (100svh) cascades from a\n // useEffect-set data-lsg-theme attribute, which may land one frame after\n // this RAF. Re-measure so Embla has the correct slide dimensions.\n if (axis === \"y\") {\n requestAnimationFrame(() => {\n if (viewport.isConnected) this.embla?.reInit();\n });\n }\n });\n });\n }\n\n readonly scrollPrev = (): void => {\n this.embla?.scrollPrev();\n if (this.opts.autoplay) this.startAutoplay();\n };\n\n readonly scrollNext = (): void => {\n this.embla?.scrollNext();\n if (this.opts.autoplay) this.startAutoplay();\n };\n\n private readonly handleScrollDown = (): void => {\n this.els.scrollDownTarget?.scrollIntoView({ behavior: \"smooth\" });\n };\n\n /** Start the autoplay interval (resets any existing timer). */\n readonly startAutoplay = (): void => {\n this.stopAutoplay();\n this.autoplayTimer = setInterval(this.scrollNext, this.opts.autoplayInterval);\n };\n\n /** Clear the autoplay interval. */\n readonly stopAutoplay = (): void => {\n if (this.autoplayTimer !== null) {\n clearInterval(this.autoplayTimer);\n this.autoplayTimer = null;\n }\n };\n\n /** Direct access to the underlying Embla instance for advanced usage. */\n get emblaApi(): EmblaCarouselType | null {\n return this.embla;\n }\n\n /** Tear down event listeners, autoplay, and the Embla instance. */\n destroy(): void {\n if (this.rafId !== null) {\n cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n this.stopAutoplay();\n this.contentObserver?.disconnect();\n this.contentObserver = null;\n if (this.embla) {\n this.embla.off(\"pointerDown\", this.stopAutoplay);\n this.embla.off(\"pointerUp\", this.startAutoplay);\n this.embla.destroy();\n this.embla = null;\n }\n this.els.prevBtn?.removeEventListener(\"click\", this.scrollPrev);\n this.els.nextBtn?.removeEventListener(\"click\", this.scrollNext);\n this.els.scrollDownBtn?.removeEventListener(\"click\", this.handleScrollDown);\n }\n}\n","import React, { useState } from \"react\";\nimport \"./LsgHeroCard.scss\";\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Types\n// ─────────────────────────────────────────────────────────────────────────────\n\n/** Token names that map to `--lsg-color-*` custom properties. */\nexport type LsgHeroColorToken =\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"light\"\n | \"dark\"\n | \"black\"\n | \"white\";\n\nexport interface LsgHeroCardProps {\n /** DAM/CDN URL for the background image. Used as poster/fallback for video. */\n imageSrc?: string;\n /** Alt text for the image. */\n imageAlt?: string;\n /** DAM/CDN URL for an mp4/webm video asset. */\n videoSrc?: string;\n /** YouTube video ID only (e.g. \"dQw4w9WgXcQ\"). */\n youtubeId?: string;\n /** Vimeo video ID only (e.g. \"148751763\"). */\n vimeoId?: string;\n /**\n * Background colour token for this card. Always tints the content text-box\n * (`lsg-hero-card--bg-{token}`). When the card has NO image/video, it instead\n * fills the whole card as a solid colour (`lsg-hero-card--fill-{token}`) with a\n * transparent content box.\n */\n cardBackground?: LsgHeroColorToken;\n /** Text colour token for this card's content (`lsg-hero-card--color-{token}`). */\n cardColor?: LsgHeroColorToken;\n /**\n * Content slot rendered on top of the media layer inside the white text-box\n * overlay. In AEM this is the parsys (container) inside each hero-card.\n * Accepts any LSG components: Title, Text, Button, etc.\n */\n children?: React.ReactNode;\n /** Index within the parent carousel — used for accessible label. */\n index?: number;\n /** Total slide count from the parent — used for accessible label. */\n total?: number;\n className?: string;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// LsgHeroCard\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const LsgHeroCard: React.FC<LsgHeroCardProps> = ({\n imageSrc,\n imageAlt = \"\",\n videoSrc,\n youtubeId,\n vimeoId,\n cardBackground,\n cardColor,\n children,\n index,\n total,\n className = \"\",\n}) => {\n const [videoReady, setVideoReady] = useState(false);\n\n // Video source priority: YouTube > Vimeo > DAM\n const hasYoutube = Boolean(youtubeId);\n const hasVimeo = !hasYoutube && Boolean(vimeoId);\n const hasDam = !hasYoutube && !hasVimeo && Boolean(videoSrc);\n\n // No image/video → the card renders as a solid colour (fill) instead of a\n // media backdrop; with media, cardBackground tints the content text-box.\n const hasMedia = Boolean(imageSrc || videoSrc || youtubeId || vimeoId);\n\n const youtubeEmbedSrc = youtubeId\n ? `https://www.youtube.com/embed/${youtubeId}?autoplay=1&mute=1&loop=1&controls=0&disablekb=1&fs=0&iv_load_policy=3&modestbranding=1&playlist=${youtubeId}&rel=0`\n : undefined;\n\n const vimeoEmbedSrc = vimeoId\n ? `https://player.vimeo.com/video/${vimeoId}?autoplay=1&loop=1&background=1&muted=1`\n : undefined;\n\n const ariaLabel =\n index !== undefined && total !== undefined\n ? `Slide ${index + 1} of ${total}`\n : undefined;\n\n const articleClasses = [\n \"lsg-hero-card\",\n // Background: tint the content box when there's media; fill the whole card when there isn't.\n cardBackground &&\n (hasMedia\n ? `lsg-hero-card--bg-${cardBackground}`\n : `lsg-hero-card--fill-${cardBackground}`),\n cardColor && `lsg-hero-card--color-${cardColor}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <article className={articleClasses} role=\"listitem\" aria-label={ariaLabel}>\n {/* ── Media layer ──────────────────────────────────────────────────── */}\n <div className=\"lsg-hero-card__media\" aria-hidden=\"true\">\n {imageSrc && (\n // eslint-disable-next-line @next/next/no-img-element\n <img\n className=\"lsg-hero-card__image\"\n src={imageSrc}\n alt={imageAlt}\n loading=\"eager\"\n />\n )}\n\n {hasDam && (\n <video\n className={`lsg-hero-card__video${videoReady ? \" lsg-hero-card__video--ready\" : \"\"}`}\n autoPlay\n muted\n loop\n playsInline\n onCanPlay={() => setVideoReady(true)}\n >\n <source src={videoSrc} />\n </video>\n )}\n\n {hasYoutube && (\n <div className=\"lsg-hero-card__video-embed lsg-hero-card__video-embed--youtube\">\n <iframe\n src={youtubeEmbedSrc}\n title=\"Hero background video\"\n allow=\"autoplay\"\n aria-hidden=\"true\"\n tabIndex={-1}\n />\n </div>\n )}\n\n {hasVimeo && (\n <div className=\"lsg-hero-card__video-embed lsg-hero-card__video-embed--vimeo\">\n <iframe\n src={vimeoEmbedSrc}\n title=\"Hero background video\"\n allow=\"autoplay\"\n aria-hidden=\"true\"\n tabIndex={-1}\n />\n </div>\n )}\n </div>\n\n {/* ── Content slot (text-box overlay) ──────────────────────────────── */}\n <div className=\"lsg-hero-card__content layout-container--medium\">\n <div className=\"lsg-hero-card__content-wrapper\">\n {children}\n </div>\n </div>\n </article>\n );\n};\n","import React, { useCallback, useEffect, useRef } from \"react\";\nimport { LsgHeroController } from \"./LsgHeroController\";\nimport { LsgHeroCard } from \"../LsgHeroCard/LsgHeroCard\";\nimport type { LsgHeroCardProps, LsgHeroColorToken } from \"../LsgHeroCard/LsgHeroCard\";\nimport \"./LsgHero.scss\";\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Types\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport type LsgHeroHeight = \"full\" | \"75vh\";\nexport type LsgHeroTransition = \"slide\" | \"fade\";\n\n/** Colour token type now lives on the card; re-exported here for back-compat. */\nexport type { LsgHeroColorToken };\n\n/**\n * A single hero slide. All media/content props are forwarded directly to\n * LsgHeroCard — see LsgHeroCardProps for full documentation.\n */\nexport type LsgHeroSlide = Omit<LsgHeroCardProps, \"index\" | \"total\">;\n\nexport interface LsgHeroProps {\n slides: LsgHeroSlide[];\n /** Minimum height of the hero. Defaults to \"full\" (100vh). */\n height?: LsgHeroHeight;\n /** Show previous/next arrow controls (only in carousel mode). */\n showArrows?: boolean;\n /** Slide transition. Defaults to \"slide\". */\n transition?: LsgHeroTransition;\n /** Render a scroll-down affordance at the bottom of the hero. */\n enableScrollDown?: boolean;\n /** Label for the scroll-down button. Icon-only when omitted. */\n scrollDownText?: string;\n /** Enable carousel autoplay. Defaults to true. */\n autoplay?: boolean;\n /** Autoplay interval in milliseconds. Defaults to 5000. */\n autoplayInterval?: number;\n className?: string;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// LsgHero\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const LsgHero: React.FC<LsgHeroProps> = ({\n slides = [],\n height = \"full\",\n showArrows = true,\n transition = \"slide\",\n enableScrollDown = false,\n scrollDownText,\n autoplay = true,\n autoplayInterval = 5000,\n className = \"\",\n}) => {\n const isCarousel = slides.length > 1;\n\n // ── Refs ──────────────────────────────────────────────────────────────────\n const sectionRef = useRef<HTMLElement>(null);\n const viewportRef = useRef<HTMLDivElement>(null);\n const prevBtnRef = useRef<HTMLButtonElement>(null);\n const nextBtnRef = useRef<HTMLButtonElement>(null);\n const controllerRef = useRef<LsgHeroController | null>(null);\n\n // ── Controller init (vanilla JS — same logic as AEM clientlib) ────────────\n useEffect(() => {\n if (!viewportRef.current || !isCarousel) return;\n\n controllerRef.current = new LsgHeroController(\n viewportRef.current,\n {\n prevBtn: showArrows ? prevBtnRef.current : undefined,\n nextBtn: showArrows ? nextBtnRef.current : undefined,\n },\n { transition, autoplay, autoplayInterval },\n );\n\n return () => {\n controllerRef.current?.destroy();\n controllerRef.current = null;\n };\n }, [isCarousel, showArrows, transition, autoplay, autoplayInterval]);\n\n // ── Scroll-down ───────────────────────────────────────────────────────────\n const handleScrollDown = useCallback(() => {\n const next = sectionRef.current?.nextElementSibling as HTMLElement | null;\n next?.scrollIntoView({ behavior: \"smooth\" });\n }, []);\n\n // ── Class names ───────────────────────────────────────────────────────────\n const sectionClasses = [\n \"lsg-hero\",\n `lsg-hero--${height}`,\n `lsg-hero--${transition}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n // ── Render ────────────────────────────────────────────────────────────────\n return (\n <section\n ref={sectionRef}\n className={sectionClasses}\n data-lsg-is=\"hero\"\n data-lsg-carousel={String(isCarousel)}\n data-lsg-transition={transition}\n data-lsg-arrows={String(showArrows)}\n >\n {/* Embla viewport */}\n <div className=\"lsg-hero__viewport\" ref={viewportRef}>\n <div className=\"lsg-hero__slides\" role=\"list\">\n {slides.map((slide, index) => (\n <LsgHeroCard\n key={index}\n {...slide}\n index={index}\n total={slides.length}\n />\n ))}\n </div>\n </div>\n\n {/* Carousel controls */}\n {isCarousel && showArrows && (\n <div className=\"lsg-hero__controls-wrap\">\n <nav className=\"lsg-hero__controls\" aria-label=\"Hero navigation\">\n <button\n ref={prevBtnRef}\n className=\"lsg-hero__prev\"\n type=\"button\"\n aria-label=\"Previous slide\"\n >\n <span className=\"lsg-hero__arrow-icon\" aria-hidden=\"true\" />\n </button>\n <button\n ref={nextBtnRef}\n className=\"lsg-hero__next\"\n type=\"button\"\n aria-label=\"Next slide\"\n >\n <span className=\"lsg-hero__arrow-icon\" aria-hidden=\"true\" />\n </button>\n </nav>\n </div>\n )}\n\n {/* Scroll-down affordance */}\n {enableScrollDown && (\n <div className=\"lsg-hero__scroll-down\">\n <button\n className=\"lsg-hero__scroll-down-btn\"\n type=\"button\"\n aria-label={scrollDownText ?? \"Scroll down\"}\n onClick={handleScrollDown}\n >\n {scrollDownText && (\n <span className=\"lsg-hero__scroll-down-text\">{scrollDownText}</span>\n )}\n <span className=\"lsg-hero__scroll-down-icon\" aria-hidden=\"true\" />\n </button>\n </div>\n )}\n </section>\n );\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport \"./LsgTabs.scss\";\n\n// Matches $lsg-tabs-accordion-breakpoint in LsgTabs.scss ($breakpoint-sm - 1px)\n// and MOBILE_MEDIA_QUERY in lsg-clientlib-runtime.ts.\nconst MOBILE_MEDIA_QUERY = \"(max-width: 767px)\";\n\n// Sub-pixel layout rounding when comparing scroll offsets against extents\nconst SCROLL_EPSILON = 1;\n\nconst CHEVRON_SVG = (\n <svg\n className=\"lsg-tabs__tab-icon-svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path\n d=\"M3 6L8 11L13 6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport interface LsgTabsItem {\n id: string;\n title: string;\n content: React.ReactNode;\n}\n\nexport type LsgTabsVariant = \"default\" | \"vertical\";\n\nexport interface LsgTabsProps {\n items: LsgTabsItem[];\n /** Id of the initially selected tab. Defaults to the first item. */\n activeId?: string;\n /** Visual variant. Default: \"default\" */\n variant?: LsgTabsVariant;\n /** Value of aria-label on the tablist. */\n accessibilityLabel?: string;\n className?: string;\n}\n\nexport const LsgTabs: React.FC<LsgTabsProps> = ({\n items,\n activeId,\n variant = \"default\",\n accessibilityLabel,\n className = \"\",\n}) => {\n const [selectedId, setSelectedId] = useState<string>(activeId ?? items[0]?.id ?? \"\");\n // Below the breakpoint the tabs render as a single-open accordion and the open\n // header can be collapsed. Tracked separately from selection so exactly one tab\n // stays selected at every width — resizing back to desktop just reveals it again.\n const [collapsed, setCollapsed] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n // Scroll-arrow state. The arrows themselves are ::before / ::after on the root\n // (see LsgTabs.scss) — these only say whether there is more to reveal.\n const [scrollStart, setScrollStart] = useState(false);\n const [scrollEnd, setScrollEnd] = useState(false);\n\n const tabRefs = useRef<Record<string, HTMLLIElement | null>>({});\n const stripRef = useRef<HTMLOListElement | null>(null);\n\n const isVertical = variant === \"vertical\";\n\n const selectedIndex = Math.max(\n 0,\n items.findIndex((item) => item.id === selectedId)\n );\n\n useEffect(() => {\n const mql = window.matchMedia(MOBILE_MEDIA_QUERY);\n const sync = (): void => setIsMobile(mql.matches);\n sync();\n mql.addEventListener(\"change\", sync);\n return () => mql.removeEventListener(\"change\", sync);\n }, []);\n\n const updateArrows = (): void => {\n const strip = stripRef.current;\n // Below the breakpoint this is an accordion — nothing scrolls, so the arrows\n // must not be offered.\n if (!strip || isMobile) {\n setScrollStart(false);\n setScrollEnd(false);\n return;\n }\n\n const offset = isVertical ? strip.scrollTop : strip.scrollLeft;\n const visible = isVertical ? strip.clientHeight : strip.clientWidth;\n const total = isVertical ? strip.scrollHeight : strip.scrollWidth;\n\n setScrollStart(offset > SCROLL_EPSILON);\n setScrollEnd(offset + visible < total - SCROLL_EPSILON);\n };\n\n useEffect(() => {\n updateArrows();\n }, [isMobile, isVertical, items, selectedIndex]);\n\n useEffect(() => {\n const strip = stripRef.current;\n if (!strip || typeof ResizeObserver === \"undefined\") return;\n // The strip can start overflowing because its container changed, with no\n // viewport resize at all.\n const observer = new ResizeObserver(() => updateArrows());\n observer.observe(strip);\n return () => observer.disconnect();\n }, [isMobile, isVertical]);\n\n useEffect(() => {\n // A late web-font swap widens the labels, growing scrollWidth without changing\n // the strip's own box — so ResizeObserver may never fire. Re-measure once the\n // fonts have settled, otherwise the arrows can be stale on first paint.\n let cancelled = false;\n document.fonts?.ready.then(() => {\n if (!cancelled) updateArrows();\n });\n return () => {\n cancelled = true;\n };\n }, [isMobile, isVertical]);\n\n const scrollStrip = (direction: -1 | 1): void => {\n const strip = stripRef.current;\n if (!strip) return;\n // A step just under one viewport keeps a sliver of context in view\n const visible = isVertical ? strip.clientHeight : strip.clientWidth;\n const step = Math.max(visible * 0.8, 1);\n if (isVertical) {\n strip.scrollTop += direction * step;\n } else {\n strip.scrollLeft += direction * step;\n }\n };\n\n // The arrows are pseudo-elements painted above the strip, so a click on one\n // hit-tests to the root rather than to a tab or panel. Nothing else on the root\n // is clickable, which is what makes this unambiguous.\n const onRootClick = (event: React.MouseEvent<HTMLDivElement>): void => {\n if (event.target !== event.currentTarget) return;\n const strip = stripRef.current;\n if (!strip) return;\n\n const rect = strip.getBoundingClientRect();\n const beforeMidpoint = isVertical\n ? event.clientY < rect.top + rect.height / 2\n : event.clientX < rect.left + rect.width / 2;\n\n scrollStrip(beforeMidpoint ? -1 : 1);\n };\n\n const select = (index: number, moveFocus: boolean): void => {\n const item = items[index];\n if (!item) return;\n setSelectedId(item.id);\n setCollapsed(false);\n const tab = tabRefs.current[item.id];\n // Arrow-key navigation can land on a tab that is scrolled out of the strip\n tab?.scrollIntoView({ block: \"nearest\", inline: \"nearest\" });\n if (moveFocus) tab?.focus();\n };\n\n const press = (index: number): void => {\n if (isMobile && index === selectedIndex) {\n setCollapsed((prev) => !prev);\n return;\n }\n select(index, false);\n };\n\n // Roving tabindex keyboard model for role=\"tab\" — see bootLsgTabs for the AEM twin.\n const onKeyDown = (event: React.KeyboardEvent<HTMLLIElement>, index: number): void => {\n const last = items.length - 1;\n\n switch (event.key) {\n case \"ArrowRight\":\n case \"ArrowDown\":\n event.preventDefault();\n select(selectedIndex === last ? 0 : selectedIndex + 1, true);\n break;\n case \"ArrowLeft\":\n case \"ArrowUp\":\n event.preventDefault();\n select(selectedIndex === 0 ? last : selectedIndex - 1, true);\n break;\n case \"Home\":\n event.preventDefault();\n select(0, true);\n break;\n case \"End\":\n event.preventDefault();\n select(last, true);\n break;\n case \"Enter\":\n case \" \":\n event.preventDefault();\n press(index);\n break;\n default:\n break;\n }\n };\n\n const rootClass = [\n \"lsg-tabs\",\n isVertical ? \"lsg-tabs--vertical\" : \"\",\n scrollStart ? \"lsg-tabs--scroll-start\" : \"\",\n scrollEnd ? \"lsg-tabs--scroll-end\" : \"\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div className={rootClass} onClick={onRootClick}>\n <ol\n ref={stripRef}\n className=\"lsg-tabs__tablist\"\n role=\"tablist\"\n aria-label={accessibilityLabel}\n aria-multiselectable=\"false\"\n onScroll={updateArrows}\n >\n {items.map((item, index) => {\n const isActive = index === selectedIndex;\n return (\n <li\n key={item.id}\n ref={(node) => {\n tabRefs.current[item.id] = node;\n }}\n role=\"tab\"\n id={`lsg-tab-${item.id}`}\n className={`lsg-tabs__tab${isActive ? \" lsg-tabs__tab--active\" : \"\"}`}\n aria-controls={`lsg-tabpanel-${item.id}`}\n aria-selected={isActive}\n // Desktop is a tab strip — aria-selected carries the state there, and\n // the collapsed class has no styling, so aria-expanded would mislead.\n aria-expanded={isMobile ? isActive && !collapsed : undefined}\n tabIndex={isActive ? 0 : -1}\n onClick={() => press(index)}\n onKeyDown={(event) => onKeyDown(event, index)}\n >\n <span className=\"lsg-tabs__tab-label\">{item.title}</span>\n <span className=\"lsg-tabs__tab-icon\" aria-hidden=\"true\">\n {CHEVRON_SVG}\n </span>\n </li>\n );\n })}\n </ol>\n\n {items.map((item, index) => {\n const isActive = index === selectedIndex;\n return (\n <div\n key={item.id}\n id={`lsg-tabpanel-${item.id}`}\n role=\"tabpanel\"\n aria-labelledby={`lsg-tab-${item.id}`}\n tabIndex={0}\n className={[\n \"lsg-tabs__panel\",\n isActive ? \"lsg-tabs__panel--active\" : \"\",\n isActive && collapsed ? \"lsg-tabs__panel--collapsed\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n {item.content}\n </div>\n );\n })}\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgTable.scss\";\n\nexport type LsgTableColor =\n | \"white\"\n | \"black\"\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"light\"\n | \"dark\";\n\nexport type LsgTableCell = React.ReactNode;\n\nexport interface LsgTableProps {\n headers: LsgTableCell[];\n rows: LsgTableCell[][];\n headerBackground?: LsgTableColor;\n accentColors?: LsgTableColor;\n noAlternatingRows?: boolean;\n caption?: React.ReactNode;\n id?: string;\n className?: string;\n}\n\n/**\n * Storybook representation of the AEM LSG table markup.\n * It deliberately emits the same Style System class contract as AEM.\n */\nexport const LsgTable: React.FC<LsgTableProps> = ({\n headers,\n rows,\n headerBackground = \"primary\",\n accentColors = \"black\",\n noAlternatingRows = false,\n caption,\n id,\n className,\n}) => {\n const wrapperClassName = [\n \"table-focus\",\n `background-color-${headerBackground}`,\n `accent-color-${accentColors}`,\n `no-alternating-rows-${noAlternatingRows}`,\n className,\n ].filter(Boolean).join(\" \");\n\n return (\n <>\n <div id={id} className={wrapperClassName}>\n <table>\n <tbody>\n <tr>\n {headers.map((cell, index) => (\n <td key={`header-${index}`}>{cell}</td>\n ))}\n </tr>\n {rows.map((row, rowIndex) => (\n <tr key={`row-${rowIndex}`}>\n {row.map((cell, cellIndex) => (\n <td key={`cell-${rowIndex}-${cellIndex}`}>{cell}</td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n <div className=\"table-caption\">{caption}</div>\n </>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldText.scss\";\n\nexport interface LsgFormFieldTextProps {\n id?: string;\n label: string;\n helpText?: string;\n placeholder?: string;\n defaultValue?: string;\n required?: boolean;\n disabled?: boolean;\n /** Shows inline error text and marks the input invalid */\n error?: string;\n autocomplete?: string;\n minLength?: number;\n maxLength?: number;\n name?: string;\n}\n\nexport const LsgFormFieldText: React.FC<LsgFormFieldTextProps> = ({\n id = \"field-text\",\n label,\n helpText,\n placeholder,\n defaultValue = \"\",\n required = false,\n disabled = false,\n error,\n autocomplete,\n minLength,\n maxLength,\n name,\n}) => {\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy = [helpId, error ? errorId : undefined]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--text\">\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <input\n type=\"text\"\n className=\"cmp-vtba-form__input\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n placeholder={placeholder}\n autoComplete={autocomplete}\n minLength={minLength}\n maxLength={maxLength}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n />\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldEmail.scss\";\n\nexport interface LsgFormFieldEmailProps {\n id?: string;\n label: string;\n helpText?: string;\n placeholder?: string;\n defaultValue?: string;\n required?: boolean;\n disabled?: boolean;\n error?: string;\n maxLength?: number;\n name?: string;\n}\n\nexport const LsgFormFieldEmail: React.FC<LsgFormFieldEmailProps> = ({\n id = \"field-email\",\n label,\n helpText,\n placeholder,\n defaultValue = \"\",\n required = false,\n disabled = false,\n error,\n maxLength,\n name,\n}) => {\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy = [helpId, error ? errorId : undefined]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--email\">\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <input\n type=\"email\"\n className=\"cmp-vtba-form__input\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n placeholder={placeholder}\n autoComplete=\"email\"\n maxLength={maxLength}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n />\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import B,{useMemo as We,useRef as qe,useState as Je}from\"react\";var M=[[\"Afghanistan\",\"af\",\"93\"],[\"Albania\",\"al\",\"355\"],[\"Algeria\",\"dz\",\"213\"],[\"Andorra\",\"ad\",\"376\"],[\"Angola\",\"ao\",\"244\"],[\"Antigua and Barbuda\",\"ag\",\"1268\"],[\"Argentina\",\"ar\",\"54\",{default:\"(..) .... ....\",\"/^11/\":\"(..) .... ....\",\"/^15/\":\"(..) ... ....\",\"/^(2|3|4|5)/\":\"(.) .... ....\",\"/^9/\":\"(.) .... .....\"},0],[\"Armenia\",\"am\",\"374\",\".. ......\"],[\"Aruba\",\"aw\",\"297\"],[\"Australia\",\"au\",\"61\",{default:\". .... ....\",\"/^4/\":\"... ... ...\",\"/^5(?!50)/\":\"... ... ...\",\"/^1(3|8)00/\":\".... ... ...\",\"/^13/\":\".. .. ..\",\"/^180/\":\"... ....\"},0,[]],[\"Austria\",\"at\",\"43\"],[\"Azerbaijan\",\"az\",\"994\",\"(..) ... .. ..\"],[\"Bahamas\",\"bs\",\"1242\"],[\"Bahrain\",\"bh\",\"973\",\".... ....\"],[\"Bangladesh\",\"bd\",\"880\"],[\"Barbados\",\"bb\",\"1246\"],[\"Belarus\",\"by\",\"375\",\"(..) ... .. ..\"],[\"Belgium\",\"be\",\"32\",\"... .. .. ..\"],[\"Belize\",\"bz\",\"501\"],[\"Benin\",\"bj\",\"229\"],[\"Bhutan\",\"bt\",\"975\"],[\"Bolivia\",\"bo\",\"591\"],[\"Bosnia and Herzegovina\",\"ba\",\"387\"],[\"Botswana\",\"bw\",\"267\"],[\"Brazil\",\"br\",\"55\",\"(..) .....-....\"],[\"British Indian Ocean Territory\",\"io\",\"246\"],[\"Brunei\",\"bn\",\"673\"],[\"Bulgaria\",\"bg\",\"359\"],[\"Burkina Faso\",\"bf\",\"226\"],[\"Burundi\",\"bi\",\"257\"],[\"Cambodia\",\"kh\",\"855\"],[\"Cameroon\",\"cm\",\"237\"],[\"Canada\",\"ca\",\"1\",\"(...) ...-....\",1,[\"204\",\"226\",\"236\",\"249\",\"250\",\"289\",\"306\",\"343\",\"365\",\"387\",\"403\",\"416\",\"418\",\"431\",\"437\",\"438\",\"450\",\"506\",\"514\",\"519\",\"548\",\"579\",\"581\",\"587\",\"604\",\"613\",\"639\",\"647\",\"672\",\"705\",\"709\",\"742\",\"778\",\"780\",\"782\",\"807\",\"819\",\"825\",\"867\",\"873\",\"902\",\"905\"]],[\"Cape Verde\",\"cv\",\"238\"],[\"Caribbean Netherlands\",\"bq\",\"599\",\"\",1],[\"Cayman Islands\",\"ky\",\"1\",\"... ... ....\",4,[\"345\"]],[\"Central African Republic\",\"cf\",\"236\"],[\"Chad\",\"td\",\"235\"],[\"Chile\",\"cl\",\"56\"],[\"China\",\"cn\",\"86\",\"... .... ....\"],[\"Colombia\",\"co\",\"57\",\"... ... ....\"],[\"Comoros\",\"km\",\"269\"],[\"Congo\",\"cd\",\"243\"],[\"Congo\",\"cg\",\"242\"],[\"Costa Rica\",\"cr\",\"506\",\"....-....\"],[\"C\\xF4te d'Ivoire\",\"ci\",\"225\",\".. .. .. .. ..\"],[\"Croatia\",\"hr\",\"385\"],[\"Cuba\",\"cu\",\"53\"],[\"Cura\\xE7ao\",\"cw\",\"599\",\"\",0],[\"Cyprus\",\"cy\",\"357\",\".. ......\"],[\"Czech Republic\",\"cz\",\"420\",\"... ... ...\"],[\"Denmark\",\"dk\",\"45\",\".. .. .. ..\"],[\"Djibouti\",\"dj\",\"253\",\".. .. ....\"],[\"Dominica\",\"dm\",\"1767\"],[\"Dominican Republic\",\"do\",\"1\",\"(...) ...-....\",2,[\"809\",\"829\",\"849\"]],[\"Ecuador\",\"ec\",\"593\"],[\"Egypt\",\"eg\",\"20\"],[\"El Salvador\",\"sv\",\"503\",\"....-....\"],[\"Equatorial Guinea\",\"gq\",\"240\"],[\"Eritrea\",\"er\",\"291\"],[\"Estonia\",\"ee\",\"372\",\".... ......\"],[\"Ethiopia\",\"et\",\"251\",\".. ... ....\"],[\"Faroe Islands\",\"fo\",\"298\",\".. .. ..\"],[\"Fiji\",\"fj\",\"679\"],[\"Finland\",\"fi\",\"358\",\".. ... .. ..\"],[\"France\",\"fr\",\"33\",\". .. .. .. ..\"],[\"French Guiana\",\"gf\",\"594\",\"... .. .. ..\"],[\"French Polynesia\",\"pf\",\"689\",{\"/^44/\":\".. .. ..\",\"/^80[0-5]/\":\"... .. .. ..\",default:\".. .. .. ..\"}],[\"Gabon\",\"ga\",\"241\"],[\"Gambia\",\"gm\",\"220\"],[\"Georgia\",\"ge\",\"995\"],[\"Germany\",\"de\",\"49\",\"... .........\"],[\"Ghana\",\"gh\",\"233\"],[\"Gibraltar\",\"gi\",\"350\"],[\"Greece\",\"gr\",\"30\"],[\"Greenland\",\"gl\",\"299\",\".. .. ..\"],[\"Grenada\",\"gd\",\"1473\"],[\"Guadeloupe\",\"gp\",\"590\",\"... .. .. ..\",0],[\"Guam\",\"gu\",\"1671\"],[\"Guatemala\",\"gt\",\"502\",\"....-....\"],[\"Guinea\",\"gn\",\"224\"],[\"Guinea-Bissau\",\"gw\",\"245\"],[\"Guyana\",\"gy\",\"592\"],[\"Haiti\",\"ht\",\"509\",\"....-....\"],[\"Honduras\",\"hn\",\"504\"],[\"Hong Kong\",\"hk\",\"852\",\".... ....\"],[\"Hungary\",\"hu\",\"36\"],[\"Iceland\",\"is\",\"354\",\"... ....\"],[\"India\",\"in\",\"91\",\".....-.....\"],[\"Indonesia\",\"id\",\"62\"],[\"Iran\",\"ir\",\"98\",\"... ... ....\"],[\"Iraq\",\"iq\",\"964\"],[\"Ireland\",\"ie\",\"353\",\".. .......\"],[\"Israel\",\"il\",\"972\",\"... ... ....\"],[\"Italy\",\"it\",\"39\",\"... .......\",0],[\"Jamaica\",\"jm\",\"1876\"],[\"Japan\",\"jp\",\"81\",\".. .... ....\"],[\"Jordan\",\"jo\",\"962\"],[\"Kazakhstan\",\"kz\",\"7\",\"... ...-..-..\",0],[\"Kenya\",\"ke\",\"254\"],[\"Kiribati\",\"ki\",\"686\"],[\"Kosovo\",\"xk\",\"383\"],[\"Kuwait\",\"kw\",\"965\",\".... ....\"],[\"Kyrgyzstan\",\"kg\",\"996\",\"... ... ...\"],[\"Laos\",\"la\",\"856\"],[\"Latvia\",\"lv\",\"371\",\".. ... ...\"],[\"Lebanon\",\"lb\",\"961\"],[\"Lesotho\",\"ls\",\"266\"],[\"Liberia\",\"lr\",\"231\"],[\"Libya\",\"ly\",\"218\"],[\"Liechtenstein\",\"li\",\"423\"],[\"Lithuania\",\"lt\",\"370\"],[\"Luxembourg\",\"lu\",\"352\"],[\"Macau\",\"mo\",\"853\"],[\"Macedonia\",\"mk\",\"389\"],[\"Madagascar\",\"mg\",\"261\"],[\"Malawi\",\"mw\",\"265\"],[\"Malaysia\",\"my\",\"60\",\"..-....-....\"],[\"Maldives\",\"mv\",\"960\"],[\"Mali\",\"ml\",\"223\"],[\"Malta\",\"mt\",\"356\"],[\"Marshall Islands\",\"mh\",\"692\"],[\"Martinique\",\"mq\",\"596\",\"... .. .. ..\"],[\"Mauritania\",\"mr\",\"222\"],[\"Mauritius\",\"mu\",\"230\"],[\"Mayotte\",\"yt\",\"262\",\"... .. .. ..\",1,[\"269\",\"639\"]],[\"Mexico\",\"mx\",\"52\",\"... ... ....\",0],[\"Micronesia\",\"fm\",\"691\"],[\"Moldova\",\"md\",\"373\",\"(..) ..-..-..\"],[\"Monaco\",\"mc\",\"377\"],[\"Mongolia\",\"mn\",\"976\"],[\"Montenegro\",\"me\",\"382\"],[\"Morocco\",\"ma\",\"212\"],[\"Mozambique\",\"mz\",\"258\"],[\"Myanmar\",\"mm\",\"95\"],[\"Namibia\",\"na\",\"264\"],[\"Nauru\",\"nr\",\"674\"],[\"Nepal\",\"np\",\"977\"],[\"Netherlands\",\"nl\",\"31\",{\"/^06/\":\"(.). .........\",\"/^6/\":\". .........\",\"/^0(10|13|14|15|20|23|24|26|30|33|35|36|38|40|43|44|45|46|50|53|55|58|70|71|72|73|74|75|76|77|78|79|82|84|85|87|88|91)/\":\"(.).. ........\",\"/^(10|13|14|15|20|23|24|26|30|33|35|36|38|40|43|44|45|46|50|53|55|58|70|71|72|73|74|75|76|77|78|79|82|84|85|87|88|91)/\":\".. ........\",\"/^0/\":\"(.)... .......\",default:\"... .......\"}],[\"New Caledonia\",\"nc\",\"687\"],[\"New Zealand\",\"nz\",\"64\",\"...-...-....\"],[\"Nicaragua\",\"ni\",\"505\"],[\"Niger\",\"ne\",\"227\"],[\"Nigeria\",\"ng\",\"234\"],[\"North Korea\",\"kp\",\"850\"],[\"Norway\",\"no\",\"47\",\"... .. ...\"],[\"Oman\",\"om\",\"968\",\".... ....\"],[\"Pakistan\",\"pk\",\"92\",\"...-.......\"],[\"Palau\",\"pw\",\"680\"],[\"Palestine\",\"ps\",\"970\"],[\"Panama\",\"pa\",\"507\"],[\"Papua New Guinea\",\"pg\",\"675\"],[\"Paraguay\",\"py\",\"595\"],[\"Peru\",\"pe\",\"51\"],[\"Philippines\",\"ph\",\"63\",\"... ... ....\"],[\"Poland\",\"pl\",\"48\",\"...-...-...\"],[\"Portugal\",\"pt\",\"351\"],[\"Puerto Rico\",\"pr\",\"1\",\"(...) ...-....\",3,[\"787\",\"939\"]],[\"Qatar\",\"qa\",\"974\",\".... ....\"],[\"R\\xE9union\",\"re\",\"262\",\"... .. .. ..\",0],[\"Romania\",\"ro\",\"40\"],[\"Russia\",\"ru\",\"7\",\"(...) ...-..-..\",1],[\"Rwanda\",\"rw\",\"250\"],[\"Saint Kitts and Nevis\",\"kn\",\"1869\"],[\"Saint Lucia\",\"lc\",\"1758\"],[\"Saint Pierre & Miquelon\",\"pm\",\"508\",{\"/^708/\":\"... ... ...\",\"/^8/\":\"... .. .. ..\",default:\".. .. ..\"}],[\"Saint Vincent and the Grenadines\",\"vc\",\"1784\"],[\"Samoa\",\"ws\",\"685\"],[\"San Marino\",\"sm\",\"378\"],[\"S\\xE3o Tom\\xE9 and Pr\\xEDncipe\",\"st\",\"239\"],[\"Saudi Arabia\",\"sa\",\"966\",\".. ... ....\"],[\"Senegal\",\"sn\",\"221\"],[\"Serbia\",\"rs\",\"381\"],[\"Seychelles\",\"sc\",\"248\"],[\"Sierra Leone\",\"sl\",\"232\"],[\"Singapore\",\"sg\",\"65\",\"....-....\"],[\"Slovakia\",\"sk\",\"421\"],[\"Slovenia\",\"si\",\"386\"],[\"Solomon Islands\",\"sb\",\"677\"],[\"Somalia\",\"so\",\"252\"],[\"South Africa\",\"za\",\"27\"],[\"South Korea\",\"kr\",\"82\",\"... .... ....\"],[\"South Sudan\",\"ss\",\"211\"],[\"Spain\",\"es\",\"34\",\"... ... ...\"],[\"Sri Lanka\",\"lk\",\"94\"],[\"Sudan\",\"sd\",\"249\"],[\"Suriname\",\"sr\",\"597\"],[\"Swaziland\",\"sz\",\"268\"],[\"Sweden\",\"se\",\"46\",\"... ... ...\"],[\"Switzerland\",\"ch\",\"41\",\".. ... .. ..\"],[\"Syria\",\"sy\",\"963\"],[\"Taiwan\",\"tw\",\"886\"],[\"Tajikistan\",\"tj\",\"992\"],[\"Tanzania\",\"tz\",\"255\"],[\"Thailand\",\"th\",\"66\"],[\"Timor-Leste\",\"tl\",\"670\"],[\"Togo\",\"tg\",\"228\"],[\"Tonga\",\"to\",\"676\"],[\"Trinidad and Tobago\",\"tt\",\"1868\"],[\"Tunisia\",\"tn\",\"216\"],[\"Turkey\",\"tr\",\"90\",\"... ... .. ..\"],[\"Turkmenistan\",\"tm\",\"993\"],[\"Tuvalu\",\"tv\",\"688\"],[\"Uganda\",\"ug\",\"256\"],[\"Ukraine\",\"ua\",\"380\",\"(..) ... .. ..\"],[\"United Arab Emirates\",\"ae\",\"971\",{default:\".. ... ....\",\"/^5[024568]/\":\".. ... ....\",\"/^[234679]/\":\". ... ....\"}],[\"United Kingdom\",\"gb\",\"44\",\".... ......\"],[\"United States\",\"us\",\"1\",\"(...) ...-....\",0],[\"Uruguay\",\"uy\",\"598\"],[\"Uzbekistan\",\"uz\",\"998\",\".. ... .. ..\"],[\"Vanuatu\",\"vu\",\"678\"],[\"Vatican City\",\"va\",\"39\",\".. .... ....\",1],[\"Venezuela\",\"ve\",\"58\"],[\"Vietnam\",\"vn\",\"84\"],[\"Wallis & Futuna\",\"wf\",\"681\",\".. .. ..\"],[\"Yemen\",\"ye\",\"967\"],[\"Zambia\",\"zm\",\"260\"],[\"Zimbabwe\",\"zw\",\"263\"]];var Ne=\"react-international-phone-\",de=(...t)=>t.filter(e=>!!e).join(\" \").trim(),Me=(...t)=>de(...t).split(\" \").map(e=>`${Ne}${e}`).join(\" \"),S=({addPrefix:t,rawClassNames:e})=>de(Me(...t),...e);var ce=({value:t,mask:e,maskSymbol:n,offset:s=0,trimNonMaskCharsLeftover:r=!1,allowMaskOverflow:a=!1})=>{if(t.length<s)return t;let p=t.slice(0,s),i=t.slice(s),o=e.split(\"\").filter(d=>d===n).length,u=i.slice(0,o),l=a?i.slice(o):\"\",m=p,y=0;for(let d of e.split(\"\")){if(y>=u.length){if(!r&&d!==n){m+=d;continue}break}d===n?(m+=u[y],y+=1):m+=d}return m+l};var O=t=>t?/^\\d+$/.test(t):!1;var V=t=>t.replace(/\\D/g,\"\");var pe=(t,e)=>{let n=t.style.display;n!==\"block\"&&(t.style.display=\"block\");let s=t.getBoundingClientRect(),r=e.getBoundingClientRect(),a=r.top-s.top,p=s.bottom-r.bottom;a>=0&&p>=0||(Math.abs(a)<Math.abs(p)?t.scrollTop+=a:t.scrollTop-=p),t.style.display=n};var Re=t=>{let{name:e,iso2:n,dialCode:s,format:r,priority:a,areaCodes:p}=t,i=[e,n,s,r,a,p];for(let o=0;o<i.length;o+=1){if(o===0)continue;let u=i[o-1],l=i[o];if(u===void 0&&l!==void 0){let m=JSON.stringify(i,(y,d)=>d===void 0?\"__undefined\":d).replace(/\"__undefined\"/g,\"undefined\");throw new Error(`[react-international-phone] invalid country values passed to buildCountryData. Check ${u} in: ${m}`)}}return i.filter(o=>o!==void 0)};import{useCallback as re,useEffect as xe,useMemo as $e,useRef as Fe,useState as ze}from\"react\";var me=()=>typeof window>\"u\"?!1:window.navigator.userAgent.toLowerCase().includes(\"macintosh\");var fe=({phone:t,dialCode:e,prefix:n=\"+\",charAfterDialCode:s=\" \"})=>{if(!t||!e)return t;let r=t;return r.startsWith(n)&&(r=r.replace(n,\"\")),r.startsWith(e)?(r=r.replace(e,\"\"),r.startsWith(s)&&(r=r.replace(s,\"\")),r):t};var Ce=(t,e)=>{let n=e.disableDialCodeAndPrefix?!1:e.forceDialCode,s=e.disableDialCodeAndPrefix?!1:e.insertDialCodeOnEmpty,r=t,a=u=>e.trimNonDigitsEnd?u.trim():u;if(!r)return s&&!r.length||n?a(`${e.prefix}${e.dialCode}${e.charAfterDialCode}`):a(r);if(r=V(r),r===e.dialCode&&!e.disableDialCodeAndPrefix)return a(`${e.prefix}${e.dialCode}${e.charAfterDialCode}`);if(e.dialCode.startsWith(r)&&!e.disableDialCodeAndPrefix)return a(n?`${e.prefix}${e.dialCode}${e.charAfterDialCode}`:`${e.prefix}${r}`);if(!r.startsWith(e.dialCode)&&!e.disableDialCodeAndPrefix){if(n)return a(`${e.prefix}${e.dialCode}${e.charAfterDialCode}`);if(r.length<e.dialCode.length)return a(`${e.prefix}${r}`)}let p=()=>{let u=e.dialCode.length,l=r.slice(0,u),m=r.slice(u);return{phoneLeftSide:l,phoneRightSide:m}},{phoneLeftSide:i,phoneRightSide:o}=p();return i=`${e.prefix}${i}${e.charAfterDialCode}`,o=ce({value:o,mask:e.mask,maskSymbol:e.maskChar,trimNonMaskCharsLeftover:e.trimNonDigitsEnd||e.disableDialCodeAndPrefix&&o.length===0,allowMaskOverflow:e.allowMaskOverflow}),e.disableDialCodeAndPrefix&&(i=\"\"),a(`${i}${o}`)};var he=({phoneBeforeInput:t,phoneAfterInput:e,phoneAfterFormatted:n,cursorPositionAfterInput:s,leftOffset:r=0,deletion:a})=>{if(s<r)return r;if(!t)return n.length;let p=null;for(let l=s-1;l>=0;l-=1)if(O(e[l])){p=l;break}if(p===null){for(let l=0;l<e.length;l+=1)if(O(n[l]))return l;return e.length}let i=0;for(let l=0;l<p;l+=1)O(e[l])&&(i+=1);let o=0,u=0;for(let l=0;l<n.length&&(o+=1,O(n[l])&&(u+=1),!(u>=i+1));l+=1);if(a!==\"backward\")for(;!O(n[o])&&o<n.length;)o+=1;return o};var G=({phone:t,prefix:e})=>t?`${e}${V(t)}`:\"\";function W({value:t,country:e,insertDialCodeOnEmpty:n,trimNonDigitsEnd:s,countries:r,prefix:a,charAfterDialCode:p,forceDialCode:i,disableDialCodeAndPrefix:o,defaultMask:u,countryGuessingEnabled:l,disableFormatting:m,allowMaskOverflow:y}){let d=t;o&&(d=d.startsWith(`${a}`)?d:`${a}${e.dialCode}${d}`);let w=l?ee({phone:d,countries:r,currentCountryIso2:e?.iso2}):void 0,f=w?.country??e,v=Ce(d,{prefix:a,mask:Y({phone:d,country:f,defaultMask:u,disableFormatting:m}),maskChar:J,dialCode:f.dialCode,trimNonDigitsEnd:s,charAfterDialCode:p,forceDialCode:i,insertDialCodeOnEmpty:n,disableDialCodeAndPrefix:o,allowMaskOverflow:y}),g=l&&!w?.fullDialCodeMatch?e:f;return{phone:G({phone:o?`${g.dialCode}${v}`:v,prefix:a}),inputValue:v,country:g}}var _e=t=>{if(t?.toLocaleLowerCase().includes(\"delete\")??!1)return t?.toLocaleLowerCase().includes(\"forward\")?\"forward\":\"backward\"},ye=(t,{country:e,insertDialCodeOnEmpty:n,phoneBeforeInput:s,prefix:r,charAfterDialCode:a,forceDialCode:p,disableDialCodeAndPrefix:i,countryGuessingEnabled:o,defaultMask:u,disableFormatting:l,countries:m,allowMaskOverflow:y})=>{let d=t.nativeEvent,w=d.inputType,f=_e(w),v=!!w?.startsWith(\"insertFrom\"),g=w===\"insertText\",D=d?.data||void 0,I=t.target.value,_=t.target.selectionStart??0;if(w?.includes(\"history\"))return{inputValue:s,phone:G({phone:s,prefix:r}),cursorPosition:s.length,country:e};if(g&&!O(D)&&I!==r)return{inputValue:s,phone:G({phone:i?`${e.dialCode}${s}`:s,prefix:r}),cursorPosition:_-(D?.length??0),country:e};if(p&&!I.startsWith(`${r}${e.dialCode}`)&&!v){let b=I?s:`${r}${e.dialCode}${a}`;return{inputValue:b,phone:G({phone:b,prefix:r}),cursorPosition:r.length+e.dialCode.length+a.length,country:e}}let{phone:c,inputValue:C,country:h}=W({value:I,country:e,trimNonDigitsEnd:f===\"backward\",insertDialCodeOnEmpty:n,countryGuessingEnabled:o,countries:m,prefix:r,charAfterDialCode:a,forceDialCode:p,disableDialCodeAndPrefix:i,disableFormatting:l,defaultMask:u,allowMaskOverflow:y}),P=he({cursorPositionAfterInput:_,phoneBeforeInput:s,phoneAfterInput:I,phoneAfterFormatted:C,leftOffset:p?r.length+e.dialCode.length+a.length:0,deletion:f});return{phone:c,inputValue:C,cursorPosition:P,country:h}};import{useCallback as te,useRef as ve,useState as Ee}from\"react\";var ge=(t,e)=>{let n=Object.keys(t),s=Object.keys(e);if(n.length!==s.length)return!1;for(let r of n)if(t[r]!==e[r])return!1;return!0};import{useCallback as Te,useMemo as Ae,useRef as be}from\"react\";var we=()=>{let t=be(),e=be(Date.now()),n=Te(()=>{let s=Date.now(),r=t.current?s-e.current:void 0;return t.current=e.current,e.current=s,r},[]);return Ae(()=>({check:n}),[n])};var Le={size:20,overrideLastItemDebounceMS:-1};function Pe(t,e){let{size:n,overrideLastItemDebounceMS:s,onChange:r}={...Le,...e},[a,p]=Ee(t),i=ve([a]),o=ve(0),u=we(),l=te((d,w)=>{let f=i.current[o.current];if(d===f||typeof d==\"object\"&&typeof f==\"object\"&&ge(d,f))return;let v=s>0,g=u.check(),E=v&&g!==void 0?g>s:!0;if(w?.overrideLastItem!==void 0?w.overrideLastItem:!E)i.current=[...i.current.slice(0,o.current),d];else{let I=i.current.length>=n;i.current=[...i.current.slice(I?1:0,o.current+1),d],I||(o.current+=1)}p(d),r?.(d)},[r,s,n,u]),m=te(()=>{if(o.current<=0)return{success:!1};let d=i.current[o.current-1];return p(d),o.current-=1,r?.(d),{success:!0,value:d}},[r]),y=te(()=>{if(o.current+1>=i.current.length)return{success:!1};let d=i.current[o.current+1];return p(d),o.current+=1,r?.(d),{success:!0,value:d}},[r]);return[a,l,m,y]}var J=\".\",R={defaultCountry:\"us\",value:\"\",prefix:\"+\",defaultMask:\"............\",charAfterDialCode:\" \",historySaveDebounceMS:200,disableCountryGuess:!1,disableDialCodePrefill:!1,forceDialCode:!1,disableDialCodeAndPrefix:!1,disableFormatting:!1,allowMaskOverflow:!1,countries:M,preferredCountries:[]},oe=({defaultCountry:t=R.defaultCountry,value:e=R.value,countries:n=R.countries,prefix:s=R.prefix,defaultMask:r=R.defaultMask,charAfterDialCode:a=R.charAfterDialCode,historySaveDebounceMS:p=R.historySaveDebounceMS,disableCountryGuess:i=R.disableCountryGuess,disableDialCodePrefill:o=R.disableDialCodePrefill,forceDialCode:u=R.forceDialCode,disableDialCodeAndPrefix:l=R.disableDialCodeAndPrefix,disableFormatting:m=R.disableFormatting,allowMaskOverflow:y=R.allowMaskOverflow,onChange:d,inputRef:w})=>{let g={countries:n,prefix:s,charAfterDialCode:a,forceDialCode:l?!1:u,disableDialCodeAndPrefix:l,defaultMask:r,countryGuessingEnabled:!i,disableFormatting:m,allowMaskOverflow:y},E=Fe(null),D=w||E,I=x=>{Promise.resolve().then(()=>{typeof window>\"u\"||D.current!==document?.activeElement||D.current?.setSelectionRange(x,x)})},_=re(x=>z({value:x,field:\"iso2\",countries:n}),[n]),c=re(({inputValue:x,phone:T,country:k})=>{if(!d)return;let F=_(k);d({phone:T,inputValue:x,country:F})},[_,d]),[{phone:C,inputValue:h,country:P},b,L,$]=Pe(()=>{let x=z({value:t,field:\"iso2\",countries:n});x||console.error(`[react-international-phone]: can not find a country with \"${t}\" iso2 code`);let T=x||z({value:\"us\",field:\"iso2\",countries:n}),{phone:k,inputValue:F,country:U}=W({value:e,country:T,insertDialCodeOnEmpty:!o,...g});return I(F.length),{phone:k,inputValue:F,country:U.iso2}},{overrideLastItemDebounceMS:p,onChange:c}),A=$e(()=>_(P),[P,_]);xe(()=>{let x=D.current;if(!x)return;let T=k=>{if(!k.key)return;let F=k.ctrlKey,U=k.metaKey,Ie=k.shiftKey;if(k.key.toLowerCase()===\"z\"){if(me()){if(!U)return}else if(!F)return;Ie?$():L()}};return x.addEventListener(\"keydown\",T),()=>{x.removeEventListener(\"keydown\",T)}},[D,L,$]);let K=x=>{x.preventDefault();let{phone:T,inputValue:k,country:F,cursorPosition:U}=ye(x,{country:A,phoneBeforeInput:h,insertDialCodeOnEmpty:!1,...g});return b({inputValue:k,phone:T,country:F.iso2}),I(U),e},Q=re((x,T={focusOnInput:!1})=>{let k=z({value:x,field:\"iso2\",countries:n});if(!k){console.error(`[react-international-phone]: can not find a country with \"${x}\" iso2 code`);return}let F=l?\"\":`${s}${k.dialCode}${a}`;b({inputValue:F,phone:`${s}${k.dialCode}`,country:k.iso2}),T.focusOnInput&&Promise.resolve().then(()=>{D.current?.focus()})},[n,l,s,a,b,D]),[X,j]=ze(!1);return xe(()=>{if(!X){j(!0),e!==C&&d?.({inputValue:h,phone:C,country:A});return}if(e===C)return;let{phone:x,inputValue:T,country:k}=W({value:e,country:A,insertDialCodeOnEmpty:!o,...g});b({phone:x,inputValue:T,country:k.iso2})},[e]),{phone:C,inputValue:h,country:A,setCountry:Q,handlePhoneValueChange:K,inputRef:D}};var Y=({phone:t,country:e,defaultMask:n=\"............\",disableFormatting:s=!1})=>{let r=e.format,a=i=>s?i.replace(new RegExp(`[^${J}]`,\"g\"),\"\"):i;if(!r)return a(n);if(typeof r==\"string\")return a(r);if(!r.default)return console.error(`[react-international-phone]: default mask for ${e.iso2} is not provided`),a(n);let p=Object.keys(r).find(i=>{if(i===\"default\")return!1;if(!(i.charAt(0)===\"/\"&&i.charAt(i.length-1)===\"/\"))return console.error(`[react-international-phone]: format regex \"${i}\" for ${e.iso2} is not valid`),!1;let u=new RegExp(i.substring(1,i.length-1)),l=t.replace(e.dialCode,\"\");return u.test(V(l))});return a(p?r[p]:r.default)};var N=t=>{let[e,n,s,r,a,p]=t;return{name:e,iso2:n,dialCode:s,format:r,priority:a,areaCodes:p}};var Oe=t=>`Field \"${t}\" is not supported`,z=({field:t,value:e,countries:n=M})=>{if([\"priority\"].includes(t))throw new Error(Oe(t));let s=n.find(r=>{let a=N(r);return e===a[t]});if(s)return N(s)};var ee=({phone:t,countries:e=M,currentCountryIso2:n})=>{let s={country:void 0,fullDialCodeMatch:!1};if(!t)return s;let r=V(t);if(!r)return s;let a=s,p=({country:i,fullDialCodeMatch:o})=>{let u=i.dialCode===a.country?.dialCode,l=(i.priority??0)<(a.country?.priority??0);(!u||l)&&(a={country:i,fullDialCodeMatch:o})};for(let i of e){let o=N(i),{dialCode:u,areaCodes:l}=o;if(r.startsWith(u)){let m=a.country?Number(u)>=Number(a.country.dialCode):!0;if(l){let y=r.substring(u.length);for(let d of l)if(y.startsWith(d))return{country:o,fullDialCodeMatch:!0}}(m||u===r||!a.fullDialCodeMatch)&&p({country:o,fullDialCodeMatch:!0})}a.fullDialCodeMatch||r.length<u.length&&u.startsWith(r)&&(!a.country||Number(u)<=Number(a.country.dialCode))&&p({country:o,fullDialCodeMatch:!1})}if(n){let i=z({value:n,field:\"iso2\",countries:e});if(!i)return a;let u=i?(m=>{if(!m?.areaCodes)return!1;let y=r.substring(m.dialCode.length);return m.areaCodes.some(d=>d.startsWith(y))})(i):!1;!!a&&a.country?.dialCode===i.dialCode&&a.country!==i&&a.fullDialCodeMatch&&(!i.areaCodes||u)&&(a={country:i,fullDialCodeMatch:!0})}return a};import Se from\"react\";var Ve=(t,e)=>{let n=parseInt(t,16);return Number(n+e).toString(16)},He=\"abcdefghijklmnopqrstuvwxyz\",je=\"1f1e6\",De=He.split(\"\").reduce((t,e,n)=>({...t,[e]:Ve(je,n)}),{}),Be=t=>[De[t[0]],De[t[1]]].join(\"-\"),q=({iso2:t,size:e,src:n,protocol:s=\"https\",disableLazyLoading:r,className:a,style:p,...i})=>{if(!t)return Se.createElement(\"img\",{className:S({addPrefix:[\"flag-emoji\"],rawClassNames:[a]}),width:e,height:e,...i});let o=()=>{if(n)return n;let u=Be(t);return`${s}://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/${u}.svg`};return Se.createElement(\"img\",{className:S({addPrefix:[\"flag-emoji\"],rawClassNames:[a]}),src:o(),width:e,height:e,draggable:!1,\"data-country\":t,loading:r?void 0:\"lazy\",style:{width:e,height:e,...p},alt:\"\",...i})};import H,{useCallback as ne,useEffect as ae,useMemo as Ge,useRef as ie,useState as Ke}from\"react\";var Ue=1e3,se=({show:t,dialCodePrefix:e=\"+\",selectedCountry:n,countries:s=M,preferredCountries:r=[],flags:a,onSelect:p,onClose:i,...o})=>{let u=ie(null),l=ie(),m=Ge(()=>{if(!r||!r.length)return s;let c=[],C=[...s];for(let h of r){let P=C.findIndex(b=>N(b).iso2===h);if(P!==-1){let b=C.splice(P,1)[0];c.push(b)}}return c.concat(C)},[s,r]),y=ie({updatedAt:void 0,value:\"\"}),d=c=>{let C=y.current.updatedAt&&new Date().getTime()-y.current.updatedAt.getTime()>Ue;y.current={value:C?c:`${y.current.value}${c}`,updatedAt:new Date};let h=m.findIndex(P=>N(P).name.toLowerCase().startsWith(y.current.value));h!==-1&&v(h)},w=ne(c=>m.findIndex(C=>N(C).iso2===c),[m]),[f,v]=Ke(w(n)),g=()=>{l.current!==n&&v(w(n))},E=ne(c=>{v(w(c.iso2)),p?.(c)},[p,w]),D=c=>{let C=m.length-1,h=P=>c===\"prev\"?P-1:c===\"next\"?P+1:c===\"last\"?C:0;v(P=>{let b=h(P);return b<0?0:b>C?C:b})},I=c=>{if(c.stopPropagation(),c.key===\"Enter\"){c.preventDefault();let C=N(m[f]);E(C);return}if(c.key===\"Escape\"){i?.();return}if(c.key===\"ArrowUp\"){c.preventDefault(),D(\"prev\");return}if(c.key===\"ArrowDown\"){c.preventDefault(),D(\"next\");return}if(c.key===\"PageUp\"){c.preventDefault(),D(\"first\");return}if(c.key===\"PageDown\"){c.preventDefault(),D(\"last\");return}c.key===\" \"&&c.preventDefault(),c.key.length===1&&!c.altKey&&!c.ctrlKey&&!c.metaKey&&d(c.key.toLocaleLowerCase())},_=ne(()=>{if(!u.current||f===void 0)return;let c=N(m[f]).iso2;if(c===l.current)return;let C=u.current.querySelector(`[data-country=\"${c}\"]`);C&&(pe(u.current,C),l.current=c)},[f,m]);return ae(()=>{_()},[f,_]),ae(()=>{u.current&&(t?u.current.focus():g())},[t]),ae(()=>{g()},[n]),H.createElement(\"ul\",{ref:u,role:\"listbox\",className:S({addPrefix:[\"country-selector-dropdown\"],rawClassNames:[o.className]}),style:{display:t?\"block\":\"none\",...o.style},onKeyDown:I,onBlur:i,tabIndex:-1,\"aria-activedescendant\":`react-international-phone__${N(m[f]).iso2}-option`},m.map((c,C)=>{let h=N(c),P=h.iso2===n,b=C===f,L=r.includes(h.iso2),$=C===r.length-1,A=a?.find(K=>K.iso2===h.iso2);return H.createElement(H.Fragment,{key:h.iso2},H.createElement(\"li\",{\"data-country\":h.iso2,role:\"option\",\"aria-selected\":P,\"aria-label\":`${h.name} ${e}${h.dialCode}`,id:`react-international-phone__${h.iso2}-option`,className:S({addPrefix:[\"country-selector-dropdown__list-item\",L&&\"country-selector-dropdown__list-item--preferred\",P&&\"country-selector-dropdown__list-item--selected\",b&&\"country-selector-dropdown__list-item--focused\"],rawClassNames:[o.listItemClassName,L&&o.listItemPreferredClassName,P&&o.listItemSelectedClassName,b&&o.listItemFocusedClassName]}),onClick:()=>E(h),style:o.listItemStyle,title:h.name},H.createElement(q,{iso2:h.iso2,src:A?.src,className:S({addPrefix:[\"country-selector-dropdown__list-item-flag-emoji\"],rawClassNames:[o.listItemFlagClassName]}),style:o.listItemFlagStyle}),H.createElement(\"span\",{className:S({addPrefix:[\"country-selector-dropdown__list-item-country-name\"],rawClassNames:[o.listItemCountryNameClassName]}),style:o.listItemCountryNameStyle},h.name),H.createElement(\"span\",{className:S({addPrefix:[\"country-selector-dropdown__list-item-dial-code\"],rawClassNames:[o.listItemDialCodeClassName]}),style:o.listItemDialCodeStyle},e,h.dialCode)),$?H.createElement(\"hr\",{className:S({addPrefix:[\"country-selector-dropdown__preferred-list-divider\"],rawClassNames:[o.preferredListDividerClassName]}),style:o.preferredListDividerStyle}):null)}))};var le=B.memo(({selectedCountry:t,onSelect:e,disabled:n,hideDropdown:s,countries:r=M,preferredCountries:a=[],flags:p,renderButtonWrapper:i,...o})=>{let[u,l]=Je(!1),m=We(()=>{if(t)return z({value:t,field:\"iso2\",countries:r})},[r,t]),y=qe(null),d=f=>{f.key&&[\"ArrowUp\",\"ArrowDown\"].includes(f.key)&&(f.preventDefault(),l(!0))},w=()=>{let f={title:m?.name,onClick:()=>l(g=>!g),onMouseDown:g=>g.preventDefault(),onKeyDown:d,disabled:s||n,role:\"combobox\",\"aria-label\":\"Country selector\",\"aria-haspopup\":\"listbox\",\"aria-expanded\":u},v=B.createElement(\"div\",{className:S({addPrefix:[\"country-selector-button__button-content\"],rawClassNames:[o.buttonContentWrapperClassName]}),style:o.buttonContentWrapperStyle},B.createElement(q,{iso2:t,src:p?.find(g=>g.iso2===t)?.src,className:S({addPrefix:[\"country-selector-button__flag-emoji\",n&&\"country-selector-button__flag-emoji--disabled\"],rawClassNames:[o.flagClassName]}),style:{visibility:t?\"visible\":\"hidden\",...o.flagStyle}}),!s&&B.createElement(\"div\",{className:S({addPrefix:[\"country-selector-button__dropdown-arrow\",n&&\"country-selector-button__dropdown-arrow--disabled\",u&&\"country-selector-button__dropdown-arrow--active\"],rawClassNames:[o.dropdownArrowClassName]}),style:o.dropdownArrowStyle}));return i?i({children:v,rootProps:f}):B.createElement(\"button\",{...f,type:\"button\",className:S({addPrefix:[\"country-selector-button\",u&&\"country-selector-button--active\",n&&\"country-selector-button--disabled\",s&&\"country-selector-button--hide-dropdown\"],rawClassNames:[o.buttonClassName]}),\"data-country\":t,style:o.buttonStyle},v)};return B.createElement(\"div\",{className:S({addPrefix:[\"country-selector\"],rawClassNames:[o.className]}),style:o.style,ref:y},w(),B.createElement(se,{show:u,countries:r,preferredCountries:a,flags:p,onSelect:f=>{l(!1),e?.(f)},selectedCountry:t,onClose:()=>{l(!1)},...o.dropdownStyleProps}))});import Ze from\"react\";var ue=({dialCode:t,prefix:e,disabled:n,style:s,className:r})=>Ze.createElement(\"div\",{className:S({addPrefix:[\"dial-code-preview\",n&&\"dial-code-preview--disabled\"],rawClassNames:[r]}),style:s},`${e}${t}`);import Z,{forwardRef as Qe,useCallback as ke,useImperativeHandle as Xe}from\"react\";var Ye=Qe(({value:t,onChange:e,countries:n=M,preferredCountries:s,hideDropdown:r,showDisabledDialCodeAndPrefix:a,disableFocusAfterCountrySelect:p,flags:i,style:o,className:u,inputStyle:l,inputClassName:m,countrySelectorStyleProps:y,dialCodePreviewStyleProps:d,inputProps:w,placeholder:f,disabled:v,name:g,onFocus:E,onBlur:D,required:I,autoFocus:_,...c},C)=>{let h=ke(j=>{e?.(j.phone,{country:j.country,inputValue:j.inputValue})},[e]),{phone:P,inputValue:b,inputRef:L,country:$,setCountry:A,handlePhoneValueChange:K}=oe({value:t,countries:n,...c,onChange:h}),Q=c.disableDialCodeAndPrefix&&a&&$?.dialCode,X=ke(j=>{A(j.iso2,{focusOnInput:!p})},[A,p]);return Xe(C,()=>L.current?Object.assign(L.current,{setCountry:A,state:{phone:P,inputValue:b,country:$}}):null,[L,A,P,b,$]),Z.createElement(\"div\",{ref:C,className:S({addPrefix:[\"input-container\"],rawClassNames:[u]}),style:o},Z.createElement(le,{onSelect:X,flags:i,selectedCountry:$?.iso2,countries:n,preferredCountries:s,disabled:v,hideDropdown:r,...y}),Q&&Z.createElement(ue,{dialCode:$.dialCode,prefix:c.prefix??\"+\",disabled:v,...d}),Z.createElement(\"input\",{onChange:K,value:b,type:\"tel\",ref:L,className:S({addPrefix:[\"input\",v&&\"input--disabled\"],rawClassNames:[m]}),placeholder:f,disabled:v,style:l,name:g,onFocus:E,onBlur:D,autoFocus:_,required:I,...w}))});export{le as CountrySelector,se as CountrySelectorDropdown,ue as DialCodePreview,q as FlagImage,Ye as PhoneInput,Re as buildCountryData,M as defaultCountries,Y as getActiveFormattingMask,z as getCountry,ee as guessCountryByPartialPhoneNumber,N as parseCountry,fe as removeDialCode,oe as usePhoneInput};\n","/**\n * Vanilla emoji-flag + dial-code picker for VTBA form tel fields.\n *\n * Framework-agnostic: this is the single source of truth for the phone flag\n * picker. It is used two ways:\n * 1. In AEM (server-rendered HTL) via the ac-react-app form runtime, which\n * calls {@link initTelPickers} on DOM-ready.\n * 2. In Storybook via the React {@link ../LsgFormFieldTel} component, which\n * calls it from a `useEffect`.\n *\n * It enhances `.cmp-vtba-form__field--tel input[type=\"tel\"]` with a country\n * toggle (Unicode emoji flag + dial code) and a searchable dropdown. Emoji flags\n * mean no image assets to ship. Country/dial-code data is reused from\n * `react-international-phone` (data only — no React needed at runtime here).\n *\n * DOM strategy (so it is safe inside React too): if the input already sits in a\n * `.cmp-vtba-tel` wrapper (React renders one), the picker only *appends* the\n * toggle + dropdown and never moves the React-managed input. Otherwise (plain\n * AEM markup) it creates the wrapper and moves the input in.\n *\n * On submit, the field value is the full international number\n * (`+<dialCode><nationalDigits>`) via {@link getTelValue}.\n */\nimport { defaultCountries } from \"react-international-phone\";\nimport \"./telPicker.scss\";\n\ninterface TelCountry {\n name: string;\n iso2: string;\n dialCode: string;\n}\n\n/** `defaultCountries` items are tuples `[name, iso2, dialCode, format?, ...]`. */\nconst COUNTRIES: TelCountry[] = (defaultCountries as unknown[])\n .map((c) => {\n const t = c as string[];\n return { name: t[0], iso2: t[1], dialCode: t[2] };\n })\n .filter((c: TelCountry) => !!c.iso2 && !!c.dialCode);\n\nconst DEFAULT_ISO2 = \"gb\";\n\n/** Converts an ISO-2 country code to its Unicode regional-indicator flag emoji. */\nfunction flagEmoji(iso2: string): string {\n return iso2\n .toUpperCase()\n .replace(/[A-Z]/g, (ch) => String.fromCodePoint(0x1f1e6 + ch.charCodeAt(0) - 65));\n}\n\nfunction findCountry(iso2: string): TelCountry | undefined {\n const target = (iso2 || \"\").toLowerCase();\n for (let i = 0; i < COUNTRIES.length; i++) {\n if (COUNTRIES[i].iso2 === target) {\n return COUNTRIES[i];\n }\n }\n return undefined;\n}\n\n/**\n * Enhances every tel field under {@code root} (or {@code root} itself when it is\n * a tel field). Idempotent per input. Works whether {@code root} is the whole\n * form (AEM) or a single field element (React component).\n */\nexport function initTelPickers(root: ParentNode | null): void {\n if (!root) {\n return;\n }\n const inputs = root.querySelectorAll(\"input[type='tel']\");\n for (let i = 0; i < inputs.length; i++) {\n const input = inputs[i] as HTMLInputElement;\n if (input.closest(\".cmp-vtba-form__field--tel\")) {\n enhance(input);\n }\n }\n}\n\n/**\n * Full international number for a picker-enhanced tel input:\n * `+<dialCode><nationalDigits>`. Falls back to the raw value if not enhanced.\n */\nexport function getTelValue(input: HTMLInputElement): string {\n const dial = input.getAttribute(\"data-dial-code\");\n if (!dial) {\n return input.value;\n }\n const national = (input.value || \"\").replace(/\\D/g, \"\");\n return national ? \"+\" + dial + national : \"\";\n}\n\nfunction enhance(input: HTMLInputElement): void {\n if (input.getAttribute(\"data-tel-picker\") === \"true\" || !input.parentElement) {\n return;\n }\n input.setAttribute(\"data-tel-picker\", \"true\");\n\n const initialIso2 = (input.getAttribute(\"data-country\") || DEFAULT_ISO2).toLowerCase();\n let selected = findCountry(initialIso2) || findCountry(DEFAULT_ISO2) || COUNTRIES[0];\n\n // Reuse a pre-rendered wrapper (React) — append-only, never move the input.\n // Otherwise create the wrapper and move the input (plain vanilla markup).\n let wrapper: HTMLElement;\n if (input.parentElement.classList.contains(\"cmp-vtba-tel\")) {\n wrapper = input.parentElement;\n } else {\n wrapper = document.createElement(\"div\");\n wrapper.className = \"cmp-vtba-tel\";\n input.parentElement.insertBefore(wrapper, input);\n wrapper.appendChild(input);\n }\n\n const toggle = document.createElement(\"button\");\n toggle.type = \"button\";\n toggle.className = \"cmp-vtba-tel__toggle\";\n toggle.setAttribute(\"aria-haspopup\", \"listbox\");\n toggle.setAttribute(\"aria-expanded\", \"false\");\n\n const dropdown = document.createElement(\"div\");\n dropdown.className = \"cmp-vtba-tel__dropdown\";\n dropdown.hidden = true;\n\n const search = document.createElement(\"input\");\n search.type = \"text\";\n search.className = \"cmp-vtba-tel__search\";\n search.placeholder = \"Search\";\n search.setAttribute(\"aria-label\", \"Search countries\");\n\n const list = document.createElement(\"ul\");\n list.className = \"cmp-vtba-tel__list\";\n list.setAttribute(\"role\", \"listbox\");\n\n dropdown.appendChild(search);\n dropdown.appendChild(list);\n\n // Toggle goes before the input; dropdown after — both inside the wrapper.\n wrapper.insertBefore(toggle, input);\n wrapper.appendChild(dropdown);\n\n function applySelected(country: TelCountry): void {\n selected = country;\n input.setAttribute(\"data-dial-code\", country.dialCode);\n input.setAttribute(\"data-iso2\", country.iso2);\n toggle.textContent = \"\";\n const flag = document.createElement(\"span\");\n flag.className = \"cmp-vtba-tel__flag\";\n flag.setAttribute(\"aria-hidden\", \"true\");\n flag.textContent = flagEmoji(country.iso2);\n const code = document.createElement(\"span\");\n code.className = \"cmp-vtba-tel__code\";\n code.textContent = \"+\" + country.dialCode;\n toggle.appendChild(flag);\n toggle.appendChild(code);\n toggle.setAttribute(\n \"aria-label\",\n \"Country calling code: \" + country.name + \" +\" + country.dialCode\n );\n }\n\n function renderList(filter: string): void {\n list.textContent = \"\";\n const f = filter.trim().toLowerCase();\n const digits = f.replace(/[^0-9]/g, \"\");\n for (let i = 0; i < COUNTRIES.length; i++) {\n const c = COUNTRIES[i];\n const match =\n !f ||\n c.name.toLowerCase().indexOf(f) !== -1 ||\n c.iso2 === f ||\n (!!digits && c.dialCode.indexOf(digits) === 0);\n if (!match) {\n continue;\n }\n const li = document.createElement(\"li\");\n li.className = \"cmp-vtba-tel__option\";\n li.setAttribute(\"role\", \"option\");\n li.tabIndex = -1;\n li.setAttribute(\"data-iso2\", c.iso2);\n li.setAttribute(\"aria-selected\", c.iso2 === selected.iso2 ? \"true\" : \"false\");\n li.textContent = flagEmoji(c.iso2) + \" \" + c.name + \" +\" + c.dialCode;\n li.addEventListener(\"click\", () => {\n applySelected(c);\n close();\n input.focus();\n });\n list.appendChild(li);\n }\n }\n\n function open(): void {\n dropdown.hidden = false;\n toggle.setAttribute(\"aria-expanded\", \"true\");\n search.value = \"\";\n renderList(\"\");\n search.focus();\n }\n function close(): void {\n dropdown.hidden = true;\n toggle.setAttribute(\"aria-expanded\", \"false\");\n }\n\n toggle.addEventListener(\"click\", () => {\n if (dropdown.hidden) {\n open();\n } else {\n close();\n }\n });\n\n search.addEventListener(\"input\", () => renderList(search.value));\n search.addEventListener(\"keydown\", (e) => {\n if (e.key === \"Escape\") {\n close();\n toggle.focus();\n } else if (e.key === \"ArrowDown\") {\n e.preventDefault();\n const first = list.querySelector(\".cmp-vtba-tel__option\") as HTMLElement | null;\n if (first) {\n first.focus();\n }\n }\n });\n\n list.addEventListener(\"keydown\", (e) => {\n const opts = Array.prototype.slice.call(\n list.querySelectorAll(\".cmp-vtba-tel__option\")\n ) as HTMLElement[];\n const idx = opts.indexOf(document.activeElement as HTMLElement);\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n (opts[idx + 1] || opts[0]).focus();\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n if (idx <= 0) {\n search.focus();\n } else {\n opts[idx - 1].focus();\n }\n } else if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n const iso2 = (document.activeElement as HTMLElement).getAttribute(\"data-iso2\");\n const c = iso2 ? findCountry(iso2) : undefined;\n if (c) {\n applySelected(c);\n close();\n input.focus();\n }\n } else if (e.key === \"Escape\") {\n close();\n toggle.focus();\n }\n });\n\n document.addEventListener(\"click\", (e) => {\n if (!wrapper.contains(e.target as Node)) {\n close();\n }\n });\n\n applySelected(selected);\n}\n","import React, { useEffect, useRef } from \"react\";\nimport \"./LsgFormFieldTel.scss\";\nimport { initTelPickers } from \"../telPicker\";\n\nexport interface LsgFormFieldTelProps {\n id?: string;\n label: string;\n helpText?: string;\n placeholder?: string;\n defaultValue?: string;\n required?: boolean;\n disabled?: boolean;\n error?: string;\n minLength?: number;\n maxLength?: number;\n pattern?: string;\n name?: string;\n /** ISO-2 country to preselect in the flag picker (e.g. \"gb\", \"us\"). */\n defaultCountry?: string;\n}\n\nexport const LsgFormFieldTel: React.FC<LsgFormFieldTelProps> = ({\n id = \"field-tel\",\n label,\n helpText,\n placeholder,\n defaultValue = \"\",\n required = false,\n disabled = false,\n error,\n minLength,\n maxLength,\n pattern,\n name,\n defaultCountry,\n}) => {\n const fieldRef = useRef<HTMLDivElement>(null);\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy =\n [helpId, error ? errorId : undefined].filter(Boolean).join(\" \") || undefined;\n\n // Enhance the tel input with the shared emoji-flag + dial-code picker.\n // The input is pre-wrapped in `.cmp-vtba-tel`, so the picker appends its\n // toggle/dropdown without moving the React-managed input.\n useEffect(() => {\n initTelPickers(fieldRef.current);\n }, []);\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--tel\" ref={fieldRef}>\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <span className=\"cmp-vtba-tel\">\n <input\n type=\"tel\"\n className=\"cmp-vtba-form__input\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n placeholder={placeholder}\n autoComplete=\"tel\"\n minLength={minLength}\n maxLength={maxLength}\n pattern={pattern}\n data-country={defaultCountry}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n />\n </span>\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldSelect.scss\";\n\nexport interface LsgFormSelectOption {\n value: string;\n label: string;\n}\n\nexport interface LsgFormFieldSelectProps {\n id?: string;\n label: string;\n helpText?: string;\n placeholder?: string;\n defaultValue?: string;\n options?: LsgFormSelectOption[];\n required?: boolean;\n disabled?: boolean;\n error?: string;\n name?: string;\n}\n\nexport const LsgFormFieldSelect: React.FC<LsgFormFieldSelectProps> = ({\n id = \"field-select\",\n label,\n helpText,\n placeholder = \"Please select\",\n defaultValue = \"\",\n options = [],\n required = false,\n disabled = false,\n error,\n name,\n}) => {\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy = [helpId, error ? errorId : undefined]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--select\">\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <div className=\"cmp-vtba-form__select-wrapper\">\n <select\n className=\"cmp-vtba-form__select\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n >\n <option value=\"\">{placeholder}</option>\n {options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n </div>\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldCountry.scss\";\n\nexport interface LsgFormFieldCountryOption {\n value: string;\n label: string;\n}\n\nexport interface LsgFormFieldCountryProps {\n id?: string;\n label: string;\n helpText?: string;\n defaultValue?: string;\n /** Fixture list; in AEM this is populated from /bin/vtba/country-list.json at runtime */\n countries?: LsgFormFieldCountryOption[];\n required?: boolean;\n disabled?: boolean;\n error?: string;\n name?: string;\n}\n\nconst COUNTRY_FIXTURE: LsgFormFieldCountryOption[] = [\n { value: \"us\", label: \"United States\" },\n { value: \"gb\", label: \"United Kingdom\" },\n { value: \"de\", label: \"Germany\" },\n { value: \"fr\", label: \"France\" },\n { value: \"se\", label: \"Sweden\" },\n { value: \"jp\", label: \"Japan\" },\n { value: \"cn\", label: \"China\" },\n { value: \"in\", label: \"India\" },\n { value: \"br\", label: \"Brazil\" },\n { value: \"au\", label: \"Australia\" },\n];\n\nexport const LsgFormFieldCountry: React.FC<LsgFormFieldCountryProps> = ({\n id = \"field-country\",\n label,\n helpText,\n defaultValue = \"\",\n countries = COUNTRY_FIXTURE,\n required = false,\n disabled = false,\n error,\n name,\n}) => {\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy = [helpId, error ? errorId : undefined]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--country\">\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <div className=\"cmp-vtba-form__select-wrapper\">\n <select\n className=\"cmp-vtba-form__select\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n data-country-list=\"true\"\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n >\n <option value=\"\">Select a country</option>\n {countries.map((c) => (\n <option key={c.value} value={c.value}>\n {c.label}\n </option>\n ))}\n </select>\n </div>\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldTextarea.scss\";\n\nexport interface LsgFormFieldTextareaProps {\n id?: string;\n label: string;\n helpText?: string;\n placeholder?: string;\n defaultValue?: string;\n required?: boolean;\n disabled?: boolean;\n error?: string;\n autocomplete?: string;\n maxLength?: number;\n rows?: number;\n name?: string;\n}\n\nexport const LsgFormFieldTextarea: React.FC<LsgFormFieldTextareaProps> = ({\n id = \"field-textarea\",\n label,\n helpText,\n placeholder,\n defaultValue = \"\",\n required = false,\n disabled = false,\n error,\n autocomplete,\n maxLength,\n rows = 4,\n name,\n}) => {\n const helpId = helpText ? `${id}-help` : undefined;\n const errorId = `${id}-error`;\n const ariaDescribedBy = [helpId, error ? errorId : undefined]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--textarea\">\n <label className=\"cmp-vtba-form__label\" htmlFor={id}>\n {label}\n {required && (\n <abbr className=\"cmp-vtba-form__required\" title=\"required\">\n *\n </abbr>\n )}\n </label>\n <textarea\n className=\"cmp-vtba-form__textarea\"\n id={id}\n name={name}\n defaultValue={defaultValue}\n placeholder={placeholder}\n autoComplete={autocomplete}\n maxLength={maxLength}\n rows={rows}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n />\n {helpText && (\n <span className=\"cmp-vtba-form__help\" id={helpId}>\n {helpText}\n </span>\n )}\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormFieldConsent.scss\";\n\nexport interface LsgFormFieldConsentProps {\n id?: string;\n /** Consent label — may contain inline HTML (use dangerouslySetInnerHTML) */\n label: string;\n required?: boolean;\n disabled?: boolean;\n error?: string;\n name?: string;\n}\n\nexport const LsgFormFieldConsent: React.FC<LsgFormFieldConsentProps> = ({\n id = \"field-consent\",\n label,\n required = false,\n disabled = false,\n error,\n name,\n}) => {\n const errorId = `${id}-error`;\n\n return (\n <div className=\"cmp-vtba-form__field cmp-vtba-form__field--consent\">\n <div className=\"cmp-vtba-form__consent\">\n <input\n type=\"checkbox\"\n className=\"cmp-vtba-form__checkbox\"\n id={id}\n name={name}\n value=\"true\"\n data-consent=\"\"\n aria-describedby={error ? errorId : undefined}\n aria-invalid={error ? \"true\" : undefined}\n required={required}\n disabled={disabled}\n />\n {/* eslint-disable-next-line react/no-danger -- mirrors AEM rich-text label output */}\n <label\n className=\"cmp-vtba-form__consent-label\"\n htmlFor={id}\n dangerouslySetInnerHTML={{ __html: label }}\n />\n </div>\n <span\n className=\"cmp-vtba-form__field-error\"\n id={errorId}\n role=\"alert\"\n aria-live=\"assertive\"\n hidden={!error}\n >\n {error}\n </span>\n </div>\n );\n};\n","import React from \"react\";\nimport \"./LsgFormStep.scss\";\n\nexport interface LsgFormStepProps {\n title?: string;\n description?: string;\n children?: React.ReactNode;\n /** Matches data-step-id on the AEM fieldset */\n stepId?: string;\n}\n\nexport const LsgFormStep: React.FC<LsgFormStepProps> = ({\n title,\n description,\n children,\n stepId,\n}) => (\n <fieldset\n className=\"cmp-vtba-form__step\"\n data-form-step=\"\"\n data-step-id={stepId}\n >\n {title && <legend className=\"cmp-vtba-form__step-legend\">{title}</legend>}\n {description && (\n <p className=\"cmp-vtba-form__step-description\">{description}</p>\n )}\n <div className=\"cmp-vtba-form__fields\">{children}</div>\n </fieldset>\n);\n","import React from \"react\";\nimport \"./LsgFormContainer.scss\";\n\nexport interface LsgFormContainerProps {\n title?: string;\n /** Multi-step mode shows the progress indicator */\n multiStep?: boolean;\n /** 1-based index of the active step */\n currentStep?: number;\n steps?: string[];\n children?: React.ReactNode;\n /** Shows the form-level error banner */\n formError?: string;\n /** Shows the success message and hides the form */\n successMessage?: string;\n}\n\nexport const LsgFormContainer: React.FC<LsgFormContainerProps> = ({\n title,\n multiStep = false,\n currentStep = 1,\n steps = [],\n children,\n formError,\n successMessage,\n}) => (\n <div className=\"cmp-vtba-form\" data-vtba-form=\"\">\n <form\n className=\"cmp-vtba-form__form\"\n method=\"post\"\n noValidate\n aria-label={title}\n >\n {title && <h2 className=\"cmp-vtba-form__title\">{title}</h2>}\n\n {multiStep && steps.length > 0 && (\n <nav className=\"cmp-vtba-form__progress\" aria-label=\"Form progress\">\n <ol className=\"cmp-vtba-form__progress-list\">\n {steps.map((stepTitle, i) => (\n <li\n key={i}\n className=\"cmp-vtba-form__progress-step\"\n data-step-index={i}\n aria-current={i + 1 === currentStep ? \"step\" : undefined}\n >\n <span className=\"cmp-vtba-form__progress-number\">{i + 1}</span>\n <span className=\"cmp-vtba-form__progress-title\">{stepTitle}</span>\n </li>\n ))}\n </ol>\n </nav>\n )}\n\n <div className=\"cmp-vtba-form__steps\">{children}</div>\n\n <div className=\"cmp-vtba-form__actions\">\n {multiStep && (\n <button type=\"button\" className=\"cmp-vtba-form__prev\" data-form-prev=\"\" hidden={currentStep <= 1}>\n Back\n </button>\n )}\n {multiStep && currentStep < (steps.length || 1) ? (\n <button type=\"button\" className=\"cmp-vtba-form__next lsg-button lsg-button--primary\" data-form-next=\"\">\n Continue\n </button>\n ) : (\n <button type=\"submit\" className=\"cmp-vtba-form__submit lsg-button lsg-button--primary\" data-form-submit=\"\">\n Submit\n </button>\n )}\n </div>\n\n {formError && (\n <p className=\"cmp-vtba-form__error\" role=\"alert\" aria-live=\"assertive\">\n {formError}\n </p>\n )}\n\n {successMessage && (\n <div className=\"cmp-vtba-form__success\" role=\"status\" aria-live=\"polite\">\n {successMessage}\n </div>\n )}\n </form>\n </div>\n);\n","import React from \"react\";\nimport \"./LsgFormPolicyNotice.scss\";\n\nexport interface LsgFormPolicyNoticeProps {\n /** HTML content from AEM rich-text editor */\n text: string;\n /** AEM style policy — adds cmp-text--policy-notice-icon modifier */\n policyNoticeIcon?: boolean;\n}\n\nexport const LsgFormPolicyNotice: React.FC<LsgFormPolicyNoticeProps> = ({\n text,\n policyNoticeIcon = false,\n}) => (\n <div\n className={[\n \"cmp-text\",\n policyNoticeIcon ? \"cmp-text--policy-notice-icon\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n // eslint-disable-next-line react/no-danger -- mirrors AEM rich-text output\n dangerouslySetInnerHTML={{ __html: text }}\n />\n);\n","import React from \"react\";\n\nimport {\n LsgBanner,\n LsgBreadcrumb,\n LsgButton,\n LsgCard,\n LsgCards,\n LsgCarousel,\n LsgFooter,\n LsgFormContainer,\n LsgFormFieldConsent,\n LsgFormFieldCountry,\n LsgFormFieldEmail,\n LsgFormFieldSelect,\n LsgFormFieldTel,\n LsgFormFieldText,\n LsgFormFieldTextarea,\n LsgFormPolicyNotice,\n LsgFormStep,\n LsgHeader,\n LsgHero,\n LsgTabs,\n LsgTable,\n LsgLanguageSwitcher,\n LsgLogo,\n LsgNavigation,\n LsgQuickLinks,\n LsgSearchOverlay,\n LsgSearchTrigger,\n LsgSocialMediaIcons,\n} from \"../components/lsg\";\n\nconst BASE_COMPONENTS = {\n LsgButton,\n LsgBanner,\n LsgCarousel,\n LsgCard,\n LsgCards,\n LsgBreadcrumb,\n LsgLogo,\n LsgNavigation,\n LsgLanguageSwitcher,\n LsgSearchTrigger,\n LsgSearchOverlay,\n LsgHeader,\n LsgQuickLinks,\n LsgSocialMediaIcons,\n LsgFooter,\n LsgHero,\n LsgTabs,\n LsgTable,\n LsgFormContainer,\n LsgFormFieldText,\n LsgFormFieldEmail,\n LsgFormFieldTel,\n LsgFormFieldSelect,\n LsgFormFieldCountry,\n LsgFormFieldTextarea,\n LsgFormFieldConsent,\n LsgFormPolicyNotice,\n LsgFormStep,\n} as const;\n\ntype BaseComponents = typeof BASE_COMPONENTS;\n\nfunction createThemeComponent<Props extends object>(\n themeName: string,\n componentName: string,\n Component: React.ComponentType<Props>,\n): React.FC<Props> {\n const WrappedComponent: React.FC<Props> = (props) => (\n <div\n className={[\n \"lsg-themed-component\",\n `lsg-themed-component--${themeName}`,\n `lsg-themed-component--${componentName}`,\n ].join(\" \")}\n >\n <Component {...props} />\n </div>\n );\n\n WrappedComponent.displayName = `${themeName}-${componentName}`;\n\n return WrappedComponent;\n}\n\nexport function createThemeComponents(themeName: string): BaseComponents {\n return {\n LsgButton: createThemeComponent(themeName, \"button\", BASE_COMPONENTS.LsgButton),\n LsgBanner: createThemeComponent(themeName, \"banner\", BASE_COMPONENTS.LsgBanner),\n LsgCarousel: createThemeComponent(themeName, \"carousel\", BASE_COMPONENTS.LsgCarousel),\n LsgCard: createThemeComponent(themeName, \"card\", BASE_COMPONENTS.LsgCard),\n LsgCards: createThemeComponent(themeName, \"cards\", BASE_COMPONENTS.LsgCards),\n LsgBreadcrumb: createThemeComponent(themeName, \"breadcrumb\", BASE_COMPONENTS.LsgBreadcrumb),\n LsgLogo: createThemeComponent(themeName, \"logo\", BASE_COMPONENTS.LsgLogo),\n LsgNavigation: createThemeComponent(themeName, \"navigation\", BASE_COMPONENTS.LsgNavigation),\n LsgLanguageSwitcher: createThemeComponent(\n themeName,\n \"language-switcher\",\n BASE_COMPONENTS.LsgLanguageSwitcher,\n ),\n LsgSearchTrigger: createThemeComponent(\n themeName,\n \"search-trigger\",\n BASE_COMPONENTS.LsgSearchTrigger,\n ),\n LsgSearchOverlay: createThemeComponent(\n themeName,\n \"search-overlay\",\n BASE_COMPONENTS.LsgSearchOverlay,\n ),\n LsgHeader: createThemeComponent(themeName, \"header\", BASE_COMPONENTS.LsgHeader),\n LsgQuickLinks: createThemeComponent(themeName, \"quick-links\", BASE_COMPONENTS.LsgQuickLinks),\n LsgSocialMediaIcons: createThemeComponent(\n themeName,\n \"social-media-icons\",\n BASE_COMPONENTS.LsgSocialMediaIcons,\n ),\n LsgFooter: createThemeComponent(themeName, \"footer\", BASE_COMPONENTS.LsgFooter),\n LsgHero: createThemeComponent(themeName, \"hero\", BASE_COMPONENTS.LsgHero),\n LsgFormContainer: createThemeComponent(themeName, \"form-container\", BASE_COMPONENTS.LsgFormContainer),\n LsgFormFieldText: createThemeComponent(themeName, \"form-field-text\", BASE_COMPONENTS.LsgFormFieldText),\n LsgFormFieldEmail: createThemeComponent(themeName, \"form-field-email\", BASE_COMPONENTS.LsgFormFieldEmail),\n LsgFormFieldTel: createThemeComponent(themeName, \"form-field-tel\", BASE_COMPONENTS.LsgFormFieldTel),\n LsgFormFieldSelect: createThemeComponent(themeName, \"form-field-select\", BASE_COMPONENTS.LsgFormFieldSelect),\n LsgFormFieldCountry: createThemeComponent(themeName, \"form-field-country\", BASE_COMPONENTS.LsgFormFieldCountry),\n LsgFormFieldTextarea: createThemeComponent(themeName, \"form-field-textarea\", BASE_COMPONENTS.LsgFormFieldTextarea),\n LsgFormFieldConsent: createThemeComponent(themeName, \"form-field-consent\", BASE_COMPONENTS.LsgFormFieldConsent),\n LsgFormPolicyNotice: createThemeComponent(themeName, \"form-policy-notice\", BASE_COMPONENTS.LsgFormPolicyNotice),\n LsgFormStep: createThemeComponent(themeName, \"form-step\", BASE_COMPONENTS.LsgFormStep),\n LsgTabs: createThemeComponent(themeName, \"tabs\", BASE_COMPONENTS.LsgTabs),\n LsgTable: createThemeComponent(themeName, \"table\", BASE_COMPONENTS.LsgTable),\n };\n}\n","import { createThemeComponents } from \"../createThemeComponents\";\n\nexport const theme1Components = createThemeComponents(\"theme-1\");\n\nexport const {\n LsgButton: Theme1LsgButton,\n LsgBanner: Theme1LsgBanner,\n LsgCarousel: Theme1LsgCarousel,\n LsgCard: Theme1LsgCard,\n LsgCards: Theme1LsgCards,\n LsgBreadcrumb: Theme1LsgBreadcrumb,\n LsgLogo: Theme1LsgLogo,\n LsgNavigation: Theme1LsgNavigation,\n LsgLanguageSwitcher: Theme1LsgLanguageSwitcher,\n LsgSearchTrigger: Theme1LsgSearchTrigger,\n LsgSearchOverlay: Theme1LsgSearchOverlay,\n LsgHeader: Theme1LsgHeader,\n LsgQuickLinks: Theme1LsgQuickLinks,\n LsgSocialMediaIcons: Theme1LsgSocialMediaIcons,\n LsgFooter: Theme1LsgFooter,\n LsgHero: Theme1LsgHero,\n LsgTabs: Theme1LsgTabs,\n LsgTable: Theme1LsgTable,\n // Form components\n LsgFormContainer: Theme1LsgFormContainer,\n LsgFormFieldText: Theme1LsgFormFieldText,\n LsgFormFieldEmail: Theme1LsgFormFieldEmail,\n LsgFormFieldTel: Theme1LsgFormFieldTel,\n LsgFormFieldTextarea: Theme1LsgFormFieldTextarea,\n LsgFormFieldSelect: Theme1LsgFormFieldSelect,\n LsgFormFieldCountry: Theme1LsgFormFieldCountry,\n LsgFormFieldConsent: Theme1LsgFormFieldConsent,\n LsgFormPolicyNotice: Theme1LsgFormPolicyNotice,\n LsgFormStep: Theme1LsgFormStep,\n} = theme1Components;","import { createThemeComponents } from \"../createThemeComponents\";\n\nexport const theme2Components = createThemeComponents(\"theme-2\");\n\nexport const {\n LsgButton: Theme2LsgButton,\n LsgBanner: Theme2LsgBanner,\n LsgCarousel: Theme2LsgCarousel,\n LsgCard: Theme2LsgCard,\n LsgCards: Theme2LsgCards,\n LsgBreadcrumb: Theme2LsgBreadcrumb,\n LsgLogo: Theme2LsgLogo,\n LsgNavigation: Theme2LsgNavigation,\n LsgLanguageSwitcher: Theme2LsgLanguageSwitcher,\n LsgSearchTrigger: Theme2LsgSearchTrigger,\n LsgSearchOverlay: Theme2LsgSearchOverlay,\n LsgHeader: Theme2LsgHeader,\n LsgQuickLinks: Theme2LsgQuickLinks,\n LsgSocialMediaIcons: Theme2LsgSocialMediaIcons,\n LsgFooter: Theme2LsgFooter,\n LsgHero: Theme2LsgHero,\n LsgTable: Theme2LsgTable,\n // Form components\n LsgFormContainer: Theme2LsgFormContainer,\n LsgFormFieldText: Theme2LsgFormFieldText,\n LsgFormFieldEmail: Theme2LsgFormFieldEmail,\n LsgFormFieldTel: Theme2LsgFormFieldTel,\n LsgFormFieldTextarea: Theme2LsgFormFieldTextarea,\n LsgFormFieldSelect: Theme2LsgFormFieldSelect,\n LsgFormFieldCountry: Theme2LsgFormFieldCountry,\n LsgFormFieldConsent: Theme2LsgFormFieldConsent,\n LsgFormStep: Theme2LsgFormStep,\n} = theme2Components;","import { createThemeComponents } from \"../createThemeComponents\";\n\nexport const theme3Components = createThemeComponents(\"theme-3\");\n\nexport const {\n LsgButton: Theme3LsgButton,\n LsgBanner: Theme3LsgBanner,\n LsgCarousel: Theme3LsgCarousel,\n LsgCard: Theme3LsgCard,\n LsgCards: Theme3LsgCards,\n LsgBreadcrumb: Theme3LsgBreadcrumb,\n LsgLogo: Theme3LsgLogo,\n LsgNavigation: Theme3LsgNavigation,\n LsgLanguageSwitcher: Theme3LsgLanguageSwitcher,\n LsgSearchTrigger: Theme3LsgSearchTrigger,\n LsgSearchOverlay: Theme3LsgSearchOverlay,\n LsgHeader: Theme3LsgHeader,\n LsgQuickLinks: Theme3LsgQuickLinks,\n LsgSocialMediaIcons: Theme3LsgSocialMediaIcons,\n LsgFooter: Theme3LsgFooter,\n LsgHero: Theme3LsgHero,\n LsgTable: Theme3LsgTable,\n // Form components\n LsgFormContainer: Theme3LsgFormContainer,\n LsgFormFieldText: Theme3LsgFormFieldText,\n LsgFormFieldEmail: Theme3LsgFormFieldEmail,\n LsgFormFieldTel: Theme3LsgFormFieldTel,\n LsgFormFieldTextarea: Theme3LsgFormFieldTextarea,\n LsgFormFieldSelect: Theme3LsgFormFieldSelect,\n LsgFormFieldCountry: Theme3LsgFormFieldCountry,\n LsgFormFieldConsent: Theme3LsgFormFieldConsent,\n LsgFormStep: Theme3LsgFormStep,\n} = theme3Components;"],"names":["LsgButton","_a","children","_b","variant","_c","disabled","href","onClick","_d","type","_e","className","_f","external","classNames","concat","filter","Boolean","join","React","createElement","_extends","undefined","target","rel","bannerClassName","layout","mobileMediaPosition","background","LsgBanner","heading","preTitle","eyebrow","body","copy","ctas","cta","mediaType","imageUrl","imageAlt","videoUrl","videoPoster","videoControls","videoAutoPlay","videoMuted","videoLoop","_g","_h","_j","headingTag","resolvedPreTitle","resolvedBody","actions","length","slice","resolvedMediaType","hasMedia","HeadingTag","src","poster","controls","autoPlay","muted","loop","playsInline","alt","map","action","index","key","label","isSafeUrl","url","lower","toLowerCase","trim","startsWith","includes","LsgImage","srcset","sources","width","height","srcUriTemplate","lazyEnabled","displayPopupTitle","id","dataLayer","assetId","dmImage","tags","title","description","caption","text","visibleTags","Array","isArray","tag","visibleSources","source","rootClass","safeHref","linkLabel","showTitle","showCaption","String","itemScope","itemType","media","srcSet","itemProp","loading","content","buildUrl","base","params","url_1","URL","Object","keys","forEach","searchParams","set","toString","getEmbedInfo","opts","host","hostname","replace","path","pathname","split","get","test","autoplay","mute","playlist","baseHost","provider","embedUrl","match","PlayIcon","viewBox","fill","xmlns","focusable","cx","cy","r","fillOpacity","points","LsgVideo","onPlay","displayMode","showTags","_k","_l","useState","isRevealed","setIsRevealed","hasVideoSource","embedInfo","isEmbed","isNativeSource","showMedia","handleActivate","e","preventDefault","playLabel","renderPlayControl","allow","referrerPolicy","allowFullScreen","Fragment","i","isNumber","subject","isString","isBoolean","isObject","prototype","call","mathAbs","n","Math","abs","mathSign","sign","deltaAbs","valueB","valueA","factorAbs","diff","roundToTwoDecimals","num","round","arrayKeys","array","objectKeys","Number","arrayLast","arrayLastIndex","max","arrayIsLastIndex","arrayFromNumber","startAt","from","_","object","objectsMergeDeep","objectA","objectB","reduce","mergedObjects","currentObject","areObjects","isMouseEvent","evt","ownerWindow","MouseEvent","LsgCarouselController","viewport","elements","options","_this","embla","scrollPrev","canScrollPrev","lastSnap","scrollSnapList","scrollTo","scrollNext","canScrollNext","syncSelectedState","selected","selectedScrollSnap","paginationBtns","button","active","classList","toggle","setAttribute","els","EmblaCarousel","align","containScroll","direction","skipSnaps","slidesToScroll","paginationHandlers","prevBtn","addEventListener","nextBtn","on","defineProperty","destroy","removeEventListener","off","mediaTypeFor","item","directionForLayout","LsgCarousel","items","ariaLabel","rootRef","useRef","viewportRef","prevBtnRef","nextBtnRef","dotsRef","controllerRef","isCarousel","carouselDirection","useEffect","current","querySelectorAll","rootClasses","ref","dir","role","cardVariantClass","LsgCard","subtitle","iconUrl","iconAlt","resolvedIconUrl","actionLabel","cardClassName","LsgCards","cards","columns","listClassName","card","LSG_ICON_PATHS","bars","chevronLeft","chevronRight","close","globe","home","search","LsgIcon","name","d","isSafeHref","value","BreadcrumbSeparator","LsgBreadcrumb","showBreadcrumbs","includeHome","homeHref","homeLabel","visibleItems","rootClassName","safeHomeHref","isCurrent","LsgLogo","LsgNavigation","onItemClick","onItemHover","renderItems","navItems","level","hasChildren","open","onMouseEnter","event","preserveAspectRatio","stroke","strokeWidth","strokeLinecap","strokeLinejoin","ChevronIcon","LsgLanguageSwitcher","currentLanguage","languages","onLanguageChange","isOpen","setIsOpen","containerRef","reactId","useId","triggerId","dropdownId","handleClick","contains","document","handleKey","prev","lang","code","SearchIcon","x1","y1","x2","y2","LsgSearchTrigger","targetId","CloseIcon","LsgSearchOverlay","placeholder","onClose","onSearch","inputRef","inputId","focus","handleSubmit","query","overlayClass","style","position","inset","cursor","onSubmit","htmlFor","autoComplete","SEARCH_OVERLAY_ID","LsgHeaderIcon","getItemByPath","activePath","depth","currentItems","currentItem","find","getItemsAtLevel","getMegaColumns","maxDepth","activeItem","push","isCurrentOrActiveAtLevel","isSelectedAtLevel","hasOpenNavItem","some","clearMegaMenuBranch","scope","HTMLElement","remove","column","activateMegaMenuItem","parentColumn","parentElement","openItem","add","querySelector","HeaderActionButton","icon","LsgHeader","logo","searchLabel","searchPlaceholder","size","menuOpen","mobileLevel","mobileSelectedLabel","onMenuToggle","onNavItemHover","onDropdownClose","onMegaItemHover","onMobileItemClick","onMobileBreadcrumbClick","searchOpen","setSearchOpen","headerRef","mobileOpen","mobileItems","mobileBackLabel","dropdownOpen","closeOnOutsidePointerDown","megaItems","removeListeners","onFocusIn","removeListener","openSearch","renderActions","showMenu","renderMegaPanel","columnItems","columnIndex","renderMobileMenu","isSelected","LsgQuickLinks","links","link","platformIcons","linkedin","twitter","facebook","instagram","youtube","LsgSocialMediaIcons","platform","PhoneIcon","FaxIcon","MailIcon","LocationIcon","AiBadge","SocialIcon","icons","x","y","rx","ry","SocialIconsRow","l","color","display","alignItems","opacity","LsgFooter","simpleTwoRow","brandLine","complexColumns","showAiBadge","cookieSetting","contact","_m","quickLinks","copyright","colHeadings","socialLinks","_o","socialPosition","_p","year","Date","getFullYear","copyrightText","is3col","headings","about","contactAlt","bottomBar","address","phone","fax","email","clampNumber","number","min","isNaN","LsgHeroController","autoplayTimer","contentObserver","rafId","startAutoplay","handleScrollDown","scrollDownTarget","scrollIntoView","behavior","stopAutoplay","setInterval","autoplayInterval","clearInterval","transition","mount","scrollDownBtn","requestAnimationFrame","isConnected","section","closest","axis","getComputedStyle","getPropertyValue","plugins","EmblaCarouselFade","contentWrapper","ResizeObserver","setHeight_1","el","setProperty","offsetHeight","entries","observe","reInit","cancelAnimationFrame","disconnect","LsgHeroCard","imageSrc","videoSrc","youtubeId","vimeoId","cardBackground","cardColor","total","videoReady","setVideoReady","hasYoutube","hasVimeo","hasDam","youtubeEmbedSrc","vimeoEmbedSrc","articleClasses","onCanPlay","tabIndex","LsgHero","slides","showArrows","enableScrollDown","scrollDownText","sectionRef","useCallback","next","nextElementSibling","sectionClasses","slide","MOBILE_MEDIA_QUERY","SCROLL_EPSILON","CHEVRON_SVG","LsgTabs","activeId","accessibilityLabel","selectedId","setSelectedId","collapsed","setCollapsed","isMobile","setIsMobile","scrollStart","setScrollStart","scrollEnd","setScrollEnd","tabRefs","stripRef","isVertical","selectedIndex","findIndex","mql","window","matchMedia","sync","matches","updateArrows","strip","offset","scrollTop","scrollLeft","visible","clientHeight","clientWidth","scrollHeight","scrollWidth","observer","cancelled","fonts","ready","then","scrollStrip","step","onRootClick","currentTarget","rect","getBoundingClientRect","beforeMidpoint","clientY","top","clientX","left","select","moveFocus","tab","block","inline","press","onKeyDown","last","onScroll","isActive","node","LsgTable","headers","rows","headerBackground","accentColors","noAlternatingRows","wrapperClassName","cell","row","rowIndex","cellIndex","LsgFormFieldText","helpText","defaultValue","required","error","autocomplete","minLength","maxLength","helpId","errorId","ariaDescribedBy","hidden","LsgFormFieldEmail","be","Te","Ae","Ee","ve","te","Fe","re","$e","xe","ze","Se","ie","Ge","ne","Ke","ae","H","B","Je","We","qe","Ze","Qe","ke","Xe","Z","COUNTRIES","defaultCountries","c","t","iso2","dialCode","DEFAULT_ISO2","flagEmoji","toUpperCase","ch","fromCodePoint","charCodeAt","findCountry","initTelPickers","root","inputs","input","enhance","getTelValue","dial","getAttribute","national","initialIso2","wrapper","insertBefore","appendChild","dropdown","list","applySelected","country","textContent","flag","renderList","f","digits","indexOf","li","first","idx","activeElement","LsgFormFieldTel","pattern","defaultCountry","fieldRef","LsgFormFieldSelect","opt","COUNTRY_FIXTURE","LsgFormFieldCountry","countries","LsgFormFieldTextarea","LsgFormFieldConsent","dangerouslySetInnerHTML","__html","LsgFormStep","stepId","LsgFormContainer","multiStep","currentStep","steps","formError","successMessage","method","noValidate","stepTitle","LsgFormPolicyNotice","policyNoticeIcon","BASE_COMPONENTS","createThemeComponent","themeName","componentName","Component","WrappedComponent","props","displayName","createThemeComponents","theme1Components","Theme1LsgButton","Theme1LsgBanner","Theme1LsgCarousel","Theme1LsgCard","Theme1LsgCards","Theme1LsgBreadcrumb","Theme1LsgLogo","Theme1LsgNavigation","Theme1LsgLanguageSwitcher","Theme1LsgSearchTrigger","Theme1LsgSearchOverlay","Theme1LsgHeader","Theme1LsgQuickLinks","Theme1LsgSocialMediaIcons","Theme1LsgFooter","Theme1LsgHero","Theme1LsgTable","theme2Components","Theme2LsgButton","Theme2LsgBanner","Theme2LsgCarousel","Theme2LsgCard","Theme2LsgCards","Theme2LsgBreadcrumb","Theme2LsgLogo","Theme2LsgNavigation","Theme2LsgLanguageSwitcher","Theme2LsgSearchTrigger","Theme2LsgSearchOverlay","Theme2LsgHeader","Theme2LsgQuickLinks","Theme2LsgSocialMediaIcons","Theme2LsgFooter","Theme2LsgHero","Theme2LsgTable","theme3Components","Theme3LsgButton","Theme3LsgBanner","Theme3LsgCarousel","Theme3LsgCard","Theme3LsgCards","Theme3LsgBreadcrumb","Theme3LsgLogo","Theme3LsgNavigation","Theme3LsgLanguageSwitcher","Theme3LsgSearchTrigger","Theme3LsgSearchOverlay","Theme3LsgHeader","Theme3LsgQuickLinks","Theme3LsgSocialMediaIcons","Theme3LsgFooter","Theme3LsgHero","Theme3LsgTable"],"mappings":"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","x_google_ignoreList":[4,20,28]}