@asantemedia-org/leybold-design-system 1.0.12 → 1.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../node_modules/classnames/index.js","../src/components/Button/Button.tsx","../src/experience/Footer/icons/ExternalLinkIcon.tsx","../src/experience/Footer/icons/AtlasCopcoIcon.tsx","../src/experience/Footer/Footer.tsx","../src/components/Pagination/PaginationItem.tsx","../src/components/Pagination/PaginationButton.tsx","../src/components/Pagination/PaginationEllipsis.tsx","../src/components/Pagination/Pagination.tsx","../src/components/Image/Image.tsx","../src/components/ProductCardHorizontal/ProductCardHorizontal.tsx","../src/components/ProductCardDetails/ProductCardDetails.tsx","../src/experience/algolia-dynamic-search/AlgoliaDynamicSearch.tsx","../src/experience/qr-form-journey/QrFormJourney.tsx","../src/components/SearchModal/ModalCloseButton.tsx","../src/components/SearchModal/SearchModal.tsx","../src/components/SearchBar/SearchIcon.tsx","../src/components/SearchBar/SearchInput.tsx","../src/components/SearchBar/SearchSubmitButton.tsx","../src/components/SearchBar/SearchBar.tsx","../src/components/ResultsCount/ResultsCount.tsx","../src/components/SeeAllLinkButton/SeeAllLinkButton.tsx","../src/components/ResultsColumn/ResultsColumn.tsx","../src/components/ContentCardHorizontal/ContentCardHorizontal.tsx","../src/components/InstantResults/FederatedInstantResultsLayout.tsx","../src/components/Filters/FilterSearch.tsx","../src/components/Filters/FilterItem.tsx","../src/components/Filters/FilterAccordion.tsx","../src/components/Filters/AppliedFilterTag.tsx","../src/components/Filters/AppliedFilters.tsx","../src/components/Filters/FiltersPanel.tsx","../src/components/ResultsView/ResultsList.tsx","../src/components/ResultsView/FederatedResultsView.tsx","../src/experience/federated-search/FederatedSearchExperience.tsx","../src/components/SearchTriggerButton/SearchTriggerButton.tsx"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React from \"react\";\nimport styles from \"./Button.module.scss\";\nimport classNames from \"classnames\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport type { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n faArrowRight,\n faArrowLeft,\n faArrowRightLong,\n faArrowLeftLong,\n faArrowUpRightFromSquare,\n faChevronLeft,\n faChevronRight,\n} from \"@fortawesome/free-solid-svg-icons\";\n\n/**\n * Button variant types\n */\nexport type ButtonVariant =\n // Default/Primary variants\n | \"default\"\n | \"primary\"\n | \"secondary\"\n // Solid variants (High Emphasis)\n | \"solid-red\"\n | \"solid-grey\"\n | \"solid-black\"\n | \"solid-white\"\n // Outlined variants (Medium/Low Emphasis)\n | \"outlined-red\"\n | \"outlined-grey\"\n | \"outlined-black\"\n | \"outlined-white\"\n // Backward compatibility aliases\n | \"outline\"\n | \"text\"\n // Link variants\n | \"link-text\"\n | \"link-text-alt\"\n | \"external-link\"\n // Carousel variants\n | \"carousel-arrow-left\"\n | \"carousel-arrow-right\";\n\n/**\n * Icon types for button\n */\nexport type ButtonIcon = \"arrow-right\" | \"external\" | \"chevron-left\" | \"chevron-right\" | \"none\";\n\n/**\n * Icon position\n */\nexport type IconPosition = \"left\" | \"right\";\n\nexport interface ButtonProps {\n /**\n * Button content (text label)\n */\n children?: React.ReactNode;\n /**\n * Button variant - determines visual style\n */\n variant?: ButtonVariant;\n /**\n * Button size\n */\n size?: \"extra-small\" | \"small\" | \"medium\" | \"large\";\n /**\n * Is button disabled?\n */\n disabled?: boolean;\n /**\n * Optional click handler\n */\n onClick?: (e?: React.MouseEvent<HTMLButtonElement>) => void;\n /**\n * Button type attribute\n */\n type?: \"button\" | \"submit\" | \"reset\";\n /**\n * Additional CSS classes\n */\n className?: string;\n /**\n * Icon to display\n */\n icon?: ButtonIcon;\n /**\n * Icon position (left or right of text)\n */\n iconPosition?: IconPosition;\n /**\n * Accessible label for icon-only buttons\n */\n ariaLabel?: string;\n /**\n * Opens link in new tab (for external links)\n */\n opensInNewTab?: boolean;\n /**\n * Inline styles\n */\n style?: React.CSSProperties;\n /**\n * Force a specific state for documentation purposes\n * @internal\n */\n 'data-force-state'?: 'hover' | 'focus';\n /**\n * Data attribute for page target\n */\n 'data-page_target'?: string | number;\n /**\n * Tab index for focus order\n */\n tabIndex?: number;\n}\n\n/**\n * Get the icon component based on icon type\n */\nconst getIcon = (icon: ButtonIcon) => {\n switch (icon) {\n case \"arrow-right\":\n return <FontAwesomeIcon icon={faArrowRight as IconProp} />;\n case \"external\":\n return <FontAwesomeIcon icon={faArrowUpRightFromSquare as IconProp} />;\n case \"chevron-left\":\n return <FontAwesomeIcon icon={faChevronLeft as IconProp} />;\n case \"chevron-right\":\n return <FontAwesomeIcon icon={faChevronRight as IconProp} />;\n default:\n return null;\n }\n};\n\n/**\n * Get default icon for certain variants\n */\nconst getDefaultIcon = (variant: ButtonVariant): ButtonIcon => {\n switch (variant) {\n case \"link-text\":\n case \"link-text-alt\":\n case \"text\": // Alias\n return \"arrow-right\";\n case \"external-link\":\n return \"external\";\n case \"carousel-arrow-left\":\n return \"chevron-left\";\n case \"carousel-arrow-right\":\n return \"chevron-right\";\n default:\n return \"none\";\n }\n};\n\n/**\n * Map alias variants to their actual CSS class variants\n */\nconst mapVariantToClass = (variant: ButtonVariant): string => {\n switch (variant) {\n case \"outline\":\n return \"outlined-red\";\n case \"text\":\n return \"link-text\";\n default:\n return variant;\n }\n};\n\n/**\n * Primary UI component for user interaction\n */\nexport const Button: React.FC<ButtonProps> = ({\n children,\n variant = \"primary\",\n size = \"medium\",\n disabled = false,\n onClick,\n type = \"button\",\n className,\n icon,\n iconPosition = \"right\",\n ariaLabel,\n opensInNewTab,\n ...props\n}) => {\n // Map alias variants to actual class names\n const cssVariant = mapVariantToClass(variant);\n \n // Determine the icon to display\n const displayIcon = icon ?? getDefaultIcon(variant);\n const iconElement = getIcon(displayIcon);\n\n // Check if this is an icon-only button (carousel arrows)\n const isIconOnly = variant === \"carousel-arrow-left\" || variant === \"carousel-arrow-right\";\n const isCarouselLeft = variant === \"carousel-arrow-left\";\n const isCarouselRight = variant === \"carousel-arrow-right\";\n\n const buttonClasses = classNames(\n styles.button,\n styles[`button--${cssVariant}`],\n styles[`button--${size}`],\n {\n [styles[\"button--disabled\"]]: disabled,\n },\n className\n );\n\n const iconClasses = classNames(styles.button__icon, styles[`button__icon--${iconPosition}`]);\n\n // Generate accessible label for icon-only buttons\n const accessibleLabel =\n ariaLabel ||\n (isIconOnly ? (variant === \"carousel-arrow-left\" ? \"Previous\" : \"Next\") : undefined);\n\n return (\n <button\n type={type}\n className={buttonClasses}\n disabled={disabled}\n onClick={onClick}\n aria-label={accessibleLabel}\n data-force-state={props['data-force-state']}\n {...props}\n >\n {!isIconOnly && children}\n {isCarouselLeft && (\n <span className={iconClasses}>\n <FontAwesomeIcon icon={faArrowLeft as IconProp} className={styles.button__icon__default} />\n <FontAwesomeIcon icon={faArrowLeftLong as IconProp} className={styles.button__icon__hover} />\n </span>\n )}\n {isCarouselRight && (\n <span className={iconClasses}>\n <FontAwesomeIcon icon={faArrowRight as IconProp} className={styles.button__icon__default} />\n <FontAwesomeIcon icon={faArrowRightLong as IconProp} className={styles.button__icon__hover} />\n </span>\n )}\n {!isIconOnly && iconElement && <span className={iconClasses}>{iconElement}</span>}\n </button>\n );\n};\n","import React from 'react';\n\ninterface ExternalLinkIconProps {\n className?: string;\n size?: number;\n}\n\n/**\n * External link icon (↗) for footer links that open in new tabs\n */\nexport const ExternalLinkIcon: React.FC<ExternalLinkIconProps> = ({\n className,\n size = 15,\n}) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n aria-hidden=\"true\"\n >\n <path\n d=\"M11.25 8.125V11.875C11.25 12.2065 11.1183 12.5245 10.8839 12.7589C10.6495 12.9933 10.3315 13.125 10 13.125H3.125C2.79348 13.125 2.47554 12.9933 2.24112 12.7589C2.0067 12.5245 1.875 12.2065 1.875 11.875V5C1.875 4.66848 2.0067 4.35054 2.24112 4.11612C2.47554 3.8817 2.79348 3.75 3.125 3.75H6.875M9.375 1.875H13.125M13.125 1.875V5.625M13.125 1.875L6.25 8.75\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import React from 'react';\n\ninterface AtlasCopcoIconProps {\n className?: string;\n size?: number;\n}\n\n/**\n * Atlas Copco Group badge icon (square)\n */\nexport const AtlasCopcoIcon: React.FC<AtlasCopcoIconProps> = ({\n className,\n size = 14,\n}) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n aria-hidden=\"true\"\n >\n <rect\n x=\"0.5\"\n y=\"0.5\"\n width=\"13\"\n height=\"13\"\n rx=\"1.5\"\n fill=\"#D9D9D9\"\n stroke=\"#D9D9D9\"\n />\n </svg>\n);\n","import React from 'react';\nimport styles from './Footer.module.scss';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport type { IconProp } from '@fortawesome/fontawesome-svg-core';\nimport { faFacebookF, faXTwitter, faLinkedinIn, faYoutube, faInstagram } from '@fortawesome/free-brands-svg-icons';\nimport { faGlobe } from '@fortawesome/free-solid-svg-icons';\nimport { Button } from '../../components/Button/Button';\nimport {\n ExternalLinkIcon,\n AtlasCopcoIcon,\n} from './icons';\n\n// =============================================================================\n// TYPE DEFINITIONS\n// =============================================================================\n\nexport interface FooterLinkItem {\n /**\n * Link text label\n */\n label: string;\n /**\n * Link URL\n */\n href: string;\n /**\n * Whether this is an external link (shows external icon)\n */\n external?: boolean;\n /**\n * Optional click handler (useful for cookie settings etc.)\n */\n onClick?: () => void;\n}\n\nexport interface SocialLinkItem {\n /**\n * Social media platform\n */\n platform: 'facebook' | 'x' | 'linkedin' | 'youtube' | 'instagram';\n /**\n * Link URL\n */\n href: string;\n /**\n * Accessible label for screen readers\n */\n ariaLabel: string;\n}\n\nexport interface FooterLogoProps {\n /**\n * Logo image source URL\n */\n src: string;\n /**\n * Logo alt text\n */\n alt: string;\n /**\n * Optional link URL for logo\n */\n href?: string;\n}\n\nexport interface FooterProps {\n /**\n * Layout variant - 'desktop' (logo top) or 'mobile' (logo bottom)\n */\n variant?: 'desktop' | 'mobile';\n /**\n * Logo configuration\n */\n logo: FooterLogoProps;\n /**\n * Brand motto/tagline\n */\n motto: string;\n /**\n * Atlas Copco badge configuration\n */\n atlasCopcoBadge?: {\n text: string;\n showIcon?: boolean;\n };\n /**\n * Quick links section\n */\n quickLinks: FooterLinkItem[];\n /**\n * Quick links section heading\n */\n quickLinksHeading?: string;\n /**\n * Contact links section\n */\n contactLinks: FooterLinkItem[];\n /**\n * Contact section heading\n */\n contactHeading?: string;\n /**\n * Social media links\n */\n socialLinks: SocialLinkItem[];\n /**\n * Contact form CTA button (mobile only)\n */\n contactFormButton?: {\n label: string;\n href: string;\n };\n /**\n * Bottom navigation links\n */\n bottomLinks: FooterLinkItem[];\n /**\n * Copyright text\n */\n copyright: string;\n /**\n * Country selector configuration\n */\n countrySelector?: {\n label: string;\n href?: string;\n showIcon?: boolean;\n };\n /**\n * Additional CSS classes\n */\n className?: string;\n}\n\n// =============================================================================\n// SOCIAL ICON COMPONENT\n// =============================================================================\n\nconst SocialIconComponent: React.FC<{ platform: SocialLinkItem['platform'] }> = ({\n platform,\n}) => {\n const iconMap = {\n facebook: faFacebookF,\n x: faXTwitter,\n linkedin: faLinkedinIn,\n youtube: faYoutube,\n instagram: faInstagram,\n };\n\n return <FontAwesomeIcon icon={iconMap[platform] as IconProp} />;\n};\n\n// =============================================================================\n// FOOTER LINK COMPONENT\n// =============================================================================\n\nexport interface FooterLinkProps {\n /**\n * Link item data\n */\n item: FooterLinkItem;\n /**\n * Additional CSS classes\n */\n className?: string;\n /**\n * Variant style\n */\n variant?: 'default' | 'bottom';\n}\n\nexport const FooterLink: React.FC<FooterLinkProps> = ({\n item,\n className,\n variant = 'default',\n}) => {\n const baseClass = variant === 'bottom' ? styles.footer__bottomLink : styles.footer__link;\n const linkClasses = classNames(\n baseClass,\n className\n );\n\n const handleClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n if (item.onClick) {\n e.preventDefault();\n item.onClick();\n }\n };\n\n return (\n <a\n href={item.href}\n className={linkClasses}\n onClick={item.onClick ? handleClick : undefined}\n {...(item.external && {\n target: '_blank',\n rel: 'noopener noreferrer',\n })}\n >\n <span className={styles.footer__linkText}>{item.label}</span>\n {item.external && (\n <span className={styles.footer__linkIcon}>\n <ExternalLinkIcon size={15} />\n </span>\n )}\n </a>\n );\n};\n\n// =============================================================================\n// FOOTER LINK GROUP COMPONENT\n// =============================================================================\n\nexport interface FooterLinkGroupProps {\n /**\n * Section heading\n */\n heading: string;\n /**\n * Array of links\n */\n links: FooterLinkItem[];\n /**\n * Additional CSS classes\n */\n className?: string;\n /**\n * Children to render after links (e.g., social icons)\n */\n children?: React.ReactNode;\n}\n\nexport const FooterLinkGroup: React.FC<FooterLinkGroupProps> = ({\n heading,\n links,\n className,\n children,\n}) => {\n return (\n <div className={classNames(styles.footer__linkGroup, className)}>\n <h3 className={styles.footer__linkHeading}>{heading}</h3>\n <ul className={styles.footer__linkList}>\n {links.map((link, index) => (\n <li key={index}>\n <FooterLink item={link} />\n </li>\n ))}\n </ul>\n {children}\n </div>\n );\n};\n\n// =============================================================================\n// FOOTER SOCIAL ICONS COMPONENT\n// =============================================================================\n\nexport interface FooterSocialIconsProps {\n /**\n * Array of social links\n */\n links: SocialLinkItem[];\n /**\n * Additional CSS classes\n */\n className?: string;\n}\n\nexport const FooterSocialIcons: React.FC<FooterSocialIconsProps> = ({\n links,\n className,\n}) => {\n return (\n <div className={classNames(styles.footer__socialIcons, className)}>\n {links.map((link, index) => (\n <a\n key={index}\n href={link.href}\n className={styles.footer__socialIcon}\n aria-label={link.ariaLabel}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <SocialIconComponent platform={link.platform} />\n </a>\n ))}\n </div>\n );\n};\n\n// =============================================================================\n// FOOTER SOCIAL ICON (STANDALONE) COMPONENT\n// =============================================================================\n\nexport interface FooterSocialIconProps {\n /**\n * Social media platform\n */\n platform: SocialLinkItem['platform'];\n /**\n * Additional CSS classes\n */\n className?: string;\n}\n\nexport const FooterSocialIcon: React.FC<FooterSocialIconProps> = ({\n platform,\n className,\n}) => {\n const iconClasses = classNames(\n styles.footer__socialIcon,\n className\n );\n\n return (\n <span className={iconClasses}>\n <SocialIconComponent platform={platform} />\n </span>\n );\n};\n\n// =============================================================================\n// FOOTER BOTTOM COMPONENT\n// =============================================================================\n\nexport interface FooterBottomProps {\n /**\n * Bottom navigation links\n */\n links: FooterLinkItem[];\n /**\n * Copyright text\n */\n copyright: string;\n /**\n * Country selector configuration\n */\n countrySelector?: {\n label: string;\n href?: string;\n showIcon?: boolean;\n };\n /**\n * Additional CSS classes\n */\n className?: string;\n}\n\nexport const FooterBottom: React.FC<FooterBottomProps> = ({\n links,\n copyright,\n countrySelector,\n className,\n}) => {\n return (\n <div className={classNames(styles.footer__bottom, className)}>\n <div className={styles.footer__bottomLeft}>\n <div className={styles.footer__bottomLinks}>\n {links.map((link, index) => (\n <FooterLink key={index} item={link} variant=\"bottom\" />\n ))}\n </div>\n <p className={styles.footer__copyright}>{copyright}</p>\n </div>\n {countrySelector && (\n <a\n href={countrySelector.href || '#'}\n className={styles.footer__countrySelector}\n >\n {countrySelector.showIcon !== false && (\n <span className={styles.footer__countrySelectorIcon}>\n <FontAwesomeIcon icon={faGlobe as IconProp} />\n </span>\n )}\n {countrySelector.label}\n </a>\n )}\n </div>\n );\n};\n\n// =============================================================================\n// MAIN FOOTER COMPONENT\n// =============================================================================\n\n/**\n * Footer component with brand identity, navigation links, social icons, and legal information.\n * Supports two layout variants:\n * - desktop: Logo at top, 3-column main content\n * - mobile: Logo at bottom, stacked layout with CTA button\n */\nexport const Footer: React.FC<FooterProps> = ({\n variant = 'desktop',\n logo,\n motto,\n atlasCopcoBadge,\n quickLinks,\n quickLinksHeading = 'Quick links',\n contactLinks,\n contactHeading = 'Contact us',\n socialLinks,\n contactFormButton,\n bottomLinks,\n copyright,\n countrySelector,\n className,\n}) => {\n const isMobile = variant === 'mobile';\n const footerClasses = classNames(\n styles.footer,\n isMobile && styles['footer--mobile'],\n className\n );\n\n const LogoWrapper = logo.href ? 'a' : 'div';\n const logoProps = logo.href\n ? { href: logo.href, className: styles.footer__logo }\n : { className: styles.footer__logo };\n\n // Logo + Motto + Badge component (used in both layouts)\n const LogoSection = () => (\n <>\n <LogoWrapper {...logoProps}>\n <img src={logo.src} alt={logo.alt} />\n </LogoWrapper>\n <div className={styles.footer__leftCol}>\n <h2 className={styles.footer__motto}>{motto}</h2>\n {atlasCopcoBadge && (\n <div className={styles.footer__badge}>\n {atlasCopcoBadge.showIcon !== false && (\n <span className={styles.footer__badgeIcon}>\n <AtlasCopcoIcon size={14} />\n </span>\n )}\n <span className={styles.footer__badgeText}>\n {atlasCopcoBadge.text}\n </span>\n </div>\n )}\n </div>\n </>\n );\n\n // Mobile layout: Links at top, logo/motto at bottom\n if (isMobile) {\n return (\n <footer className={footerClasses}>\n <div className={styles.footer__container}>\n {/* Links Section - AT TOP for mobile */}\n <div className={styles.footer__links}>\n {/* Quick Links */}\n <FooterLinkGroup heading={quickLinksHeading} links={quickLinks} />\n\n {/* Contact Us */}\n <FooterLinkGroup heading={contactHeading} links={contactLinks} />\n </div>\n\n {/* Mobile CTA Button */}\n {contactFormButton && (\n <div className={styles.footer__cta}>\n <a href={contactFormButton.href} style={{ textDecoration: 'none', width: '100%' }}>\n <Button variant=\"solid-red\" style={{ width: '100%' }}>\n {contactFormButton.label}\n </Button>\n </a>\n </div>\n )}\n\n {/* Social Icons */}\n {socialLinks.length > 0 && (\n <FooterSocialIcons links={socialLinks} />\n )}\n\n {/* Bottom Bar (includes country selector for mobile) */}\n <FooterBottom\n links={bottomLinks}\n copyright={copyright}\n countrySelector={countrySelector}\n />\n\n {/* Logo + Motto + Badge - AT BOTTOM for mobile */}\n <div className={styles.footer__brandSection}>\n <LogoSection />\n </div>\n </div>\n </footer>\n );\n }\n\n // Desktop layout: Logo at top, 3-column main content\n return (\n <footer className={footerClasses}>\n <div className={styles.footer__container}>\n {/* Logo - AT TOP for desktop */}\n <LogoWrapper {...logoProps}>\n <img src={logo.src} alt={logo.alt} />\n </LogoWrapper>\n\n {/* Main Content */}\n <div className={styles.footer__main}>\n {/* Left Column: Motto + Atlas Copco Badge */}\n <div className={styles.footer__leftCol}>\n <h2 className={styles.footer__motto}>{motto}</h2>\n {atlasCopcoBadge && (\n <div className={styles.footer__badge}>\n {atlasCopcoBadge.showIcon !== false && (\n <span className={styles.footer__badgeIcon}>\n <AtlasCopcoIcon size={14} />\n </span>\n )}\n <span className={styles.footer__badgeText}>\n {atlasCopcoBadge.text}\n </span>\n </div>\n )}\n </div>\n\n {/* Links Section */}\n <div className={styles.footer__links}>\n {/* Quick Links */}\n <FooterLinkGroup heading={quickLinksHeading} links={quickLinks} />\n\n {/* Contact Us */}\n <FooterLinkGroup heading={contactHeading} links={contactLinks}>\n {/* Social Icons */}\n {socialLinks.length > 0 && (\n <FooterSocialIcons links={socialLinks} />\n )}\n </FooterLinkGroup>\n </div>\n </div>\n\n {/* Bottom Bar */}\n <FooterBottom\n links={bottomLinks}\n copyright={copyright}\n countrySelector={countrySelector}\n />\n </div>\n </footer>\n );\n};\n","import React from \"react\";\nimport { PaginationItemProps } from \"./Pagination.types\";\nimport styles from \"./Pagination.module.scss\";\n\nexport const PaginationItem: React.FC<PaginationItemProps> = ({\n page,\n isActive,\n onClick,\n className,\n}) => {\n const handleClick = () => {\n if (!isActive) {\n onClick(page);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n handleClick();\n }\n };\n\n return (\n <li className={styles.paginationItem}>\n <button\n type=\"button\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n className={`${styles.pageButton} ${isActive ? styles.pageButtonActive : \"\"} ${className || \"\"}`}\n aria-current={isActive ? \"page\" : undefined}\n aria-label={`Page ${page}`}\n disabled={isActive}\n tabIndex={isActive ? -1 : 0}\n >\n {page}\n </button>\n </li>\n );\n};\n\n","import React from \"react\";\nimport { PaginationButtonProps } from \"./Pagination.types\";\nimport styles from \"./Pagination.module.scss\";\n\nexport const PaginationButton: React.FC<PaginationButtonProps> = ({\n label,\n disabled,\n onClick,\n direction,\n className,\n ariaLabel,\n}) => {\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n if (!disabled) {\n onClick();\n }\n }\n };\n\n return (\n <li className={styles.paginationItem}>\n <button\n type=\"button\"\n onClick={onClick}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n className={`${styles.navButton} ${styles[`navButton--${direction}`]} ${disabled ? styles.navButtonDisabled : \"\"} ${className || \"\"}`}\n aria-label={ariaLabel || label}\n tabIndex={disabled ? -1 : 0}\n >\n {direction === \"previous\" && (\n <svg\n className={styles.navIcon}\n width=\"8\"\n height=\"12\"\n viewBox=\"0 0 8 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M6 10L2 6L6 2\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n <span>{label}</span>\n {direction === \"next\" && (\n <svg\n className={styles.navIcon}\n width=\"8\"\n height=\"12\"\n viewBox=\"0 0 8 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M2 2L6 6L2 10\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </button>\n </li>\n );\n};\n\n","import React from \"react\";\nimport { PaginationEllipsisProps } from \"./Pagination.types\";\nimport styles from \"./Pagination.module.scss\";\n\nexport const PaginationEllipsis: React.FC<PaginationEllipsisProps> = ({ className }) => {\n return (\n <li className={`${styles.paginationItem} ${styles.ellipsis}`} aria-hidden=\"true\">\n <span className={`${styles.ellipsisText} ${className || \"\"}`}>...</span>\n </li>\n );\n};\n\n","import React, { useMemo } from \"react\";\nimport { PaginationProps } from \"./Pagination.types\";\nimport { PaginationItem } from \"./PaginationItem\";\nimport { PaginationButton } from \"./PaginationButton\";\nimport { PaginationEllipsis } from \"./PaginationEllipsis\";\nimport styles from \"./Pagination.module.scss\";\n\n/**\n * Generate page numbers to display with ellipsis logic\n */\nconst generatePageNumbers = (\n currentPage: number,\n totalPages: number,\n maxVisiblePages: number\n): (number | \"ellipsis-start\" | \"ellipsis-end\")[] => {\n if (totalPages <= maxVisiblePages) {\n return Array.from({ length: totalPages }, (_, i) => i + 1);\n }\n\n const pages: (number | \"ellipsis-start\" | \"ellipsis-end\")[] = [];\n const halfVisible = Math.floor(maxVisiblePages / 2);\n\n // Always show first page\n pages.push(1);\n\n let startPage = Math.max(2, currentPage - halfVisible);\n let endPage = Math.min(totalPages - 1, currentPage + halfVisible);\n\n // Adjust if we're near the start\n if (currentPage <= halfVisible + 1) {\n endPage = Math.min(maxVisiblePages - 1, totalPages - 1);\n startPage = 2;\n }\n\n // Adjust if we're near the end\n if (currentPage >= totalPages - halfVisible) {\n startPage = Math.max(2, totalPages - maxVisiblePages + 2);\n endPage = totalPages - 1;\n }\n\n // Add ellipsis after first page if needed\n if (startPage > 2) {\n pages.push(\"ellipsis-start\");\n }\n\n // Add middle pages\n for (let i = startPage; i <= endPage; i++) {\n pages.push(i);\n }\n\n // Add ellipsis before last page if needed\n if (endPage < totalPages - 1) {\n pages.push(\"ellipsis-end\");\n }\n\n // Always show last page\n if (totalPages > 1) {\n pages.push(totalPages);\n }\n\n return pages;\n};\n\nexport const Pagination: React.FC<PaginationProps> = ({\n currentPage,\n totalPages,\n onPageChange,\n maxVisiblePages = 10,\n showPrevious = true,\n showNext = true,\n previousLabel = \"Previous\",\n nextLabel = \"Next\",\n className,\n ariaLabel = \"Pagination\",\n}) => {\n const pageNumbers = useMemo(\n () => generatePageNumbers(currentPage, totalPages, maxVisiblePages),\n [currentPage, totalPages, maxVisiblePages]\n );\n\n const handlePageChange = (page: number) => {\n if (page >= 1 && page <= totalPages && page !== currentPage) {\n onPageChange(page);\n }\n };\n\n const handlePrevious = () => {\n handlePageChange(currentPage - 1);\n };\n\n const handleNext = () => {\n handlePageChange(currentPage + 1);\n };\n\n // Don't render if there's only one page or no pages\n if (totalPages <= 1) {\n return null;\n }\n\n return (\n <nav\n className={`${styles.pagination} ${className || \"\"}`}\n aria-label={ariaLabel}\n role=\"navigation\"\n >\n <ul className={styles.paginationList}>\n {showPrevious && (\n <PaginationButton\n label={previousLabel}\n disabled={currentPage === 1}\n onClick={handlePrevious}\n direction=\"previous\"\n ariaLabel=\"Go to previous page\"\n />\n )}\n\n {pageNumbers.map((page, index) => {\n if (page === \"ellipsis-start\" || page === \"ellipsis-end\") {\n return <PaginationEllipsis key={`ellipsis-${index}`} />;\n }\n\n return (\n <PaginationItem\n key={page}\n page={page}\n isActive={page === currentPage}\n onClick={handlePageChange}\n />\n );\n })}\n\n {showNext && (\n <PaginationButton\n label={nextLabel}\n disabled={currentPage === totalPages}\n onClick={handleNext}\n direction=\"next\"\n ariaLabel=\"Go to next page\"\n />\n )}\n </ul>\n </nav>\n );\n};\n\n","import React, { useState, useCallback } from \"react\";\nimport { ImageProps } from \"./Image.types\";\nimport styles from \"./Image.module.scss\";\n\nexport const Image: React.FC<ImageProps> = ({\n src,\n alt,\n width,\n height,\n loading = \"lazy\",\n decoding = \"async\",\n objectFit = \"cover\",\n objectPosition = \"center\",\n aspectRatio,\n isDecorative = false,\n fallbackSrc,\n onLoad,\n onError,\n className = \"\",\n srcSet,\n sizes,\n}) => {\n const [isLoading, setIsLoading] = useState(true);\n const [hasError, setHasError] = useState(false);\n const [currentSrc, setCurrentSrc] = useState(src);\n\n const handleLoad = useCallback(() => {\n setIsLoading(false);\n setHasError(false);\n onLoad?.();\n }, [onLoad]);\n\n const handleError = useCallback(() => {\n setIsLoading(false);\n setHasError(true);\n\n // Try fallback if available and not already using it\n if (fallbackSrc && currentSrc !== fallbackSrc) {\n setCurrentSrc(fallbackSrc);\n setHasError(false);\n setIsLoading(true);\n } else {\n onError?.();\n }\n }, [fallbackSrc, currentSrc, onError]);\n\n // Accessibility: decorative images should have empty alt and be hidden from screen readers\n const accessibilityProps = isDecorative\n ? { alt: \"\", \"aria-hidden\": true as const, role: \"presentation\" as const }\n : { alt };\n\n const containerStyle: React.CSSProperties = {\n ...(aspectRatio && { aspectRatio }),\n ...(width && { width: typeof width === \"number\" ? `${width}px` : width }),\n ...(height && { height: typeof height === \"number\" ? `${height}px` : height }),\n };\n\n const imageStyle: React.CSSProperties = {\n objectFit,\n objectPosition,\n };\n\n return (\n <div\n className={`${styles.imageContainer} ${className} ${isLoading ? styles.loading : \"\"} ${hasError ? styles.error : \"\"}`}\n style={containerStyle}\n >\n {isLoading && (\n <div className={styles.skeleton} aria-hidden=\"true\">\n <div className={styles.shimmer} />\n </div>\n )}\n\n {hasError && !fallbackSrc ? (\n <div className={styles.errorState} role=\"img\" aria-label={alt || \"Image failed to load\"}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={styles.errorIcon}\n aria-hidden=\"true\"\n >\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\" />\n <circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\" />\n <polyline points=\"21 15 16 10 5 21\" />\n </svg>\n <span className={styles.errorText}>Image unavailable</span>\n </div>\n ) : (\n <img\n src={currentSrc}\n {...accessibilityProps}\n width={width}\n height={height}\n loading={loading}\n decoding={decoding}\n onLoad={handleLoad}\n onError={handleError}\n className={styles.image}\n style={imageStyle}\n srcSet={srcSet}\n sizes={sizes}\n />\n )}\n </div>\n );\n};\n\nexport default Image;\n\n","import React from \"react\";\nimport { ProductCardHorizontalProps } from \"../../types/cards\";\nimport styles from \"./ProductCardHorizontal.module.scss\";\nimport { Button } from \"../Button\";\nimport { Image } from \"../Image\";\n\nexport const ProductCardHorizontal: React.FC<ProductCardHorizontalProps> = ({\n id,\n imageUrl,\n url,\n title,\n description,\n price,\n button,\n className = \"\",\n}) => {\n if (!title) {\n return null;\n }\n\n return (\n <a\n href={url}\n className={`${styles.productCard} ${className}`}\n aria-label={`View product: ${title}`}\n >\n <div className={`${styles.productWrapper} ${imageUrl ? styles.withImage : \"\"}`}>\n {imageUrl && (\n <div className={styles.productImage}>\n <Image src={imageUrl} alt={title} />\n </div>\n )}\n <div className={styles.productTitleDescriptionWrapper}>\n <h3 className={styles.productTitle}>{title}</h3>\n {description && <p className={styles.productDescription}>{description}</p>}\n </div>\n <div className={styles.productPriceCtaWrapper}>\n <p className={styles.productPrice}>{price || \" \"}</p>\n {button && (\n <Button className={styles.productButton} onClick={button.onClick} size=\"extra-small\">\n {button.label}\n </Button>\n )}\n </div>\n </div>\n </a>\n );\n};\n\n// Alias for backward compatibility\nexport const ProductCardHorizontalParts = ProductCardHorizontal;\n","import React from \"react\";\n// @ts-ignore - ProductDetailsCard is exported but types may not be updated yet\nimport { ProductDetailsCard as ProductDetailsCardBase } from \"@asantemedia-org/edwardsvacuum-design-system\";\nimport { ProductCardHorizontalParts } from \"../ProductCardHorizontal/ProductCardHorizontal\";\nimport { ProductCardDetailsProps } from \"../../types/cards\";\nimport styles from \"./ProductCardDetails.module.scss\";\n\n// Adapter to map design system props to ProductCardHorizontalParts props\nconst SpareCardAdapter = (props: any) => {\n const { spare, ...rest } = props;\n\n return (\n <ProductCardHorizontalParts\n url={spare?.url || spare?.link || \"#\"}\n title={spare?.name || spare?.title || \"\"}\n description={spare?.description || \"\"}\n price={spare?.priceValue || spare?.price || \"\"}\n imageUrl={spare?.[\"img-product\"] || spare?.image || \"\"}\n button={{\n label: rest.cta || \"View Product\",\n onClick: () => window.open(spare?.url || spare?.link || \"#\", \"_blank\"),\n }}\n />\n );\n};\n\n// Re-export the design system component with Leybold styling\nexport const ProductCardDetails: React.FC<ProductCardDetailsProps> = ({\n id,\n imageUrl,\n title,\n description,\n price,\n code,\n facets,\n hit,\n className = \"\",\n ProductCardComponent,\n}) => {\n // Build the hit object expected by ProductDetailsCard\n const hitData = hit || {\n id,\n title,\n description,\n price,\n code,\n image: imageUrl,\n };\n\n return (\n <div className={styles.productDetails}>\n <ProductDetailsCardBase\n className={`${className}`}\n title={title}\n imageUrl={imageUrl}\n imageAlt={title}\n hit={hitData}\n facets={facets}\n usePlainClasses={true}\n ProductCardComponent={ProductCardComponent || SpareCardAdapter}\n />\n </div>\n );\n};\n\nexport default ProductCardDetails;\n","import React from \"react\";\nimport { AlgoliaDynamicSearchRaw } from \"@asantemedia-org/edwardsvacuum-design-system\";\n\nimport {\n ProductCardHorizontal,\n ProductCardHorizontalParts,\n} from \"../../components/ProductCardHorizontal/ProductCardHorizontal\";\n\nimport { ProductCardDetails } from \"../../components/ProductCardDetails/ProductCardDetails\";\n\nimport \"./AlgoliaDynamicSearch.scss\";\n\n// Adapter component that maps props from AlgoliaDynamicSearchRaw to ProductCardHorizontal\n// AlgoliaDynamicSearchRaw passes: title, cardLink, productPrice, cta, hit (original data)\nconst ProductCardAdapter = (props: any) => {\n const { hit, title, cardLink, productPrice, cta, showProductPrice, className, code } = props;\n console.log(props);\n // Get values from direct props or fallback to hit object\n const url = cardLink || hit?.link || \"#\";\n const imageUrl = \"\";\n const price = showProductPrice ? productPrice || hit?.price || \"\" : \"\";\n const productTitle = title || hit?.title || \"\";\n const productCode = code || hit?.code || \"\";\n const buttonLabel = cta || \"View Product\";\n\n return (\n <ProductCardHorizontalParts\n imageUrl={imageUrl}\n url={url}\n title={productTitle}\n description={productCode}\n price={price}\n button={{ label: buttonLabel, onClick: () => window.open(url, \"_blank\") }}\n className={className}\n />\n );\n};\n\nconst ProductCardDetailsAdapter = (props: any) => {\n const {\n hit,\n title,\n cardLink,\n productPrice,\n cta,\n showProductPrice,\n className,\n code,\n facets,\n related_products,\n } = props;\n if (!title) {\n return null;\n }\n return (\n <ProductCardDetails\n imageUrl={hit?.image || \"\"}\n title={title}\n description={hit?.description || \"\"}\n price={hit?.price || \"\" || productPrice}\n code={hit?.code || \"\" || code}\n hit={hit}\n className={className}\n facets={facets}\n relatedProducts={hit?.related_products || related_products}\n />\n );\n};\n\nexport const AlgoliaDynamicSearchLeybold = (props: any) => {\n const innerComponents = {\n ProductCard: ProductCardAdapter,\n ProductDetailsCard: ProductCardDetailsAdapter,\n };\n\n return <AlgoliaDynamicSearchRaw {...props} innerComponents={innerComponents} />;\n};\n\nexport default AlgoliaDynamicSearchLeybold;\n","import React from \"react\";\nimport { QrForm } from \"@asantemedia-org/edwardsvacuum-design-system\";\nimport \"./QrFormJourney.scss\";\nimport { Button } from \"../../components/Button\";\n\n// Adapter to map QrForm's expected button props to our Button component\ninterface QrFormButtonProps {\n label?: string;\n onClick?: (e: React.MouseEvent) => void;\n buttonStyle?: \"primary\" | \"secondary\";\n href?: string;\n target?: string;\n type?: \"button\" | \"submit\";\n element?: \"a\" | \"button\";\n \"data-page_target\"?: number;\n className?: string;\n}\n\nconst QrFormButtonAdapter: React.FC<QrFormButtonProps> = ({\n label,\n onClick,\n buttonStyle = \"primary\",\n href,\n target,\n type = \"button\",\n element,\n \"data-page_target\": pageTarget,\n className,\n}) => {\n // Map buttonStyle to our variant\n const variant = buttonStyle === \"secondary\" ? \"secondary\" : \"primary\";\n\n // If it's an anchor element (has href or element='a'), render as link\n if (element === \"a\" || href) {\n return (\n <a\n href={href}\n target={target}\n className={className}\n data-page_target={pageTarget}\n onClick={onClick}\n style={{\n display: \"inline-block\",\n textDecoration: \"none\",\n }}\n >\n <Button variant={variant} type={type} size=\"small\">\n {label}\n </Button>\n </a>\n );\n }\n\n // Otherwise render as button\n return (\n <Button\n variant={variant}\n type={type}\n onClick={onClick ? (e) => onClick(e as React.MouseEvent) : undefined}\n className={className}\n data-page_target={pageTarget}\n size=\"small\"\n >\n {label}\n </Button>\n );\n};\n\nexport const QrFormLeybold = (props: any) => {\n return (\n <div className=\"qr-journey-form-wrapper\">\n <QrForm {...props} ButtonComponent={QrFormButtonAdapter} />\n </div>\n );\n};\n","import React from 'react';\nimport styles from './SearchModal.module.scss';\n\nexport interface ModalCloseButtonProps {\n onClick(): void;\n ariaLabel?: string;\n className?: string;\n}\n\nexport const ModalCloseButton: React.FC<ModalCloseButtonProps> = ({\n onClick,\n ariaLabel = 'Close search',\n className = '',\n}) => {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n aria-label={ariaLabel}\n className={`${styles.closeButton} ${className}`}\n >\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 >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n );\n};\n\n","import React, { useEffect, useRef } from 'react';\nimport { SearchModalProps } from '../../types/search';\nimport { ModalCloseButton } from './ModalCloseButton';\nimport styles from './SearchModal.module.scss';\n\nexport const SearchModal: React.FC<SearchModalProps> = ({\n isOpen,\n onClose,\n title = 'Search',\n children,\n className = '',\n}) => {\n const modalRef = useRef<HTMLDivElement>(null);\n const previouslyFocusedElement = useRef<HTMLElement | null>(null);\n\n useEffect(() => {\n if (isOpen) {\n // Store the previously focused element\n previouslyFocusedElement.current = document.activeElement as HTMLElement;\n\n // Focus the modal\n if (modalRef.current) {\n modalRef.current.focus();\n }\n\n // Prevent body scroll\n document.body.style.overflow = 'hidden';\n } else {\n // Restore body scroll\n document.body.style.overflow = '';\n\n // Return focus to previously focused element\n if (previouslyFocusedElement.current) {\n previouslyFocusedElement.current.focus();\n }\n }\n\n return () => {\n document.body.style.overflow = '';\n };\n }, [isOpen]);\n\n useEffect(() => {\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && isOpen) {\n onClose();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => document.removeEventListener('keydown', handleEscape);\n }, [isOpen, onClose]);\n\n // Focus trap implementation\n useEffect(() => {\n if (!isOpen || !modalRef.current) return;\n\n const modal = modalRef.current;\n const focusableElements = modal.querySelectorAll<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n const firstElement = focusableElements[0];\n const lastElement = focusableElements[focusableElements.length - 1];\n\n const handleTab = (event: KeyboardEvent) => {\n if (event.key !== 'Tab') return;\n\n if (event.shiftKey) {\n // Shift + Tab\n if (document.activeElement === firstElement) {\n event.preventDefault();\n lastElement?.focus();\n }\n } else {\n // Tab\n if (document.activeElement === lastElement) {\n event.preventDefault();\n firstElement?.focus();\n }\n }\n };\n\n modal.addEventListener('keydown', handleTab);\n return () => modal.removeEventListener('keydown', handleTab);\n }, [isOpen]);\n\n if (!isOpen) return null;\n\n const handleOverlayClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (event.target === event.currentTarget) {\n onClose();\n }\n };\n\n return (\n <div\n className={styles.overlay}\n onClick={handleOverlayClick}\n aria-hidden=\"true\"\n >\n <div\n ref={modalRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={title}\n tabIndex={-1}\n className={`${styles.modal} ${className}`}\n >\n <div className={styles.header}>\n <h2 className={styles.title}>{title}</h2>\n <ModalCloseButton onClick={onClose} />\n </div>\n <div className={styles.content}>{children}</div>\n </div>\n </div>\n );\n};\n\n","import React from 'react';\nimport styles from './SearchBar.module.scss';\n\nexport interface SearchIconProps {\n className?: string;\n}\n\nexport const SearchIcon: React.FC<SearchIconProps> = ({ className = '' }) => {\n return (\n <svg\n className={`${styles.searchIcon} ${className}`}\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 >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"m21 21-4.35-4.35\" />\n </svg>\n );\n};\n\n","import React from 'react';\nimport styles from './SearchBar.module.scss';\n\nexport interface SearchInputProps {\n value: string;\n onChange(value: string): void;\n onKeyDown?(event: React.KeyboardEvent<HTMLInputElement>): void;\n placeholder?: string;\n autoFocus?: boolean;\n className?: string;\n}\n\nexport const SearchInput: React.FC<SearchInputProps> = ({\n value,\n onChange,\n onKeyDown,\n placeholder = 'Discover products, innovations, and resources...',\n autoFocus = false,\n className = '',\n}) => {\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange(event.target.value);\n };\n\n return (\n <input\n type=\"text\"\n value={value}\n onChange={handleChange}\n onKeyDown={onKeyDown}\n placeholder={placeholder}\n autoFocus={autoFocus}\n aria-label=\"Search\"\n className={`${styles.searchInput} ${className}`}\n />\n );\n};\n\n","import React from 'react';\nimport styles from './SearchBar.module.scss';\n\nexport interface SearchSubmitButtonProps {\n onClick(): void;\n disabled?: boolean;\n ariaLabel?: string;\n label?: string;\n className?: string;\n}\n\nexport const SearchSubmitButton: React.FC<SearchSubmitButtonProps> = ({\n onClick,\n disabled = false,\n ariaLabel = 'Search',\n label = 'Search',\n className = '',\n}) => {\n return (\n <button\n type=\"submit\"\n onClick={onClick}\n disabled={disabled}\n aria-label={ariaLabel}\n className={`${styles.submitButton} ${className}`}\n >\n {label}\n </button>\n );\n};\n\n","import React from 'react';\nimport { SearchBarProps } from '../../types/search';\nimport { SearchIcon } from './SearchIcon';\nimport { SearchInput } from './SearchInput';\nimport { SearchSubmitButton } from './SearchSubmitButton';\nimport styles from './SearchBar.module.scss';\n\nexport const SearchBar: React.FC<SearchBarProps> = ({\n value,\n onChange,\n onSubmit,\n placeholder,\n autoFocus = false,\n className = '',\n}) => {\n const handleSubmit = (event: React.FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n onSubmit();\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n onSubmit();\n }\n };\n\n return (\n <form onSubmit={handleSubmit} className={`${styles.searchBar} ${className}`}>\n <div className={styles.inputWrapper}>\n <SearchIcon />\n <SearchInput\n value={value}\n onChange={onChange}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n autoFocus={autoFocus}\n />\n </div>\n <SearchSubmitButton onClick={onSubmit} />\n </form>\n );\n};\n\n","import React from 'react';\nimport styles from './ResultsCount.module.scss';\n\nexport interface ResultsCountProps {\n count: number;\n type: 'products' | 'content' | 'results';\n className?: string;\n}\n\nexport const ResultsCount: React.FC<ResultsCountProps> = ({\n count,\n type,\n className = '',\n}) => {\n const label = count === 1 ? type.slice(0, -1) : type;\n \n return (\n <span className={`${styles.resultsCount} ${className}`}>\n {count} {label}\n </span>\n );\n};\n\n","import React from 'react';\nimport styles from './SeeAllLinkButton.module.scss';\n\nexport interface SeeAllLinkButtonProps {\n onClick(): void;\n label?: string;\n className?: string;\n}\n\nexport const SeeAllLinkButton: React.FC<SeeAllLinkButtonProps> = ({\n onClick,\n label = 'See all results',\n className = '',\n}) => {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n className={`${styles.seeAllButton} ${className}`}\n >\n {label}\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 >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n </button>\n );\n};\n\n","import React from 'react';\nimport { ResultsColumnProps } from '../../types/search';\nimport { ResultsCount } from '../ResultsCount/ResultsCount';\nimport { SeeAllLinkButton } from '../SeeAllLinkButton/SeeAllLinkButton';\nimport styles from './ResultsColumn.module.scss';\n\nexport const ResultsColumn: React.FC<ResultsColumnProps> = ({\n title,\n count,\n isLoading,\n error,\n onSeeAll,\n children,\n className = '',\n}) => {\n return (\n <div className={`${styles.resultsColumn} ${className}`}>\n <div className={styles.columnHeader}>\n <h3 className={styles.columnTitle}>{title}</h3>\n {!isLoading && !error && count > 0 && (\n <ResultsCount\n count={count}\n type={title.toLowerCase().includes('product') ? 'products' : 'content'}\n />\n )}\n </div>\n\n {isLoading && (\n <div className={styles.loadingState}>\n <div className={styles.spinner} aria-label=\"Loading...\" />\n <p>Loading {title.toLowerCase()}...</p>\n </div>\n )}\n\n {error && (\n <div className={styles.errorState}>\n <p>{error}</p>\n </div>\n )}\n\n {!isLoading && !error && count === 0 && (\n <div className={styles.emptyState}>\n <p>No {title.toLowerCase()} found</p>\n </div>\n )}\n\n {!isLoading && !error && count > 0 && (\n <>\n <div className={styles.resultsList}>{children}</div>\n <div className={styles.columnFooter}>\n <SeeAllLinkButton onClick={onSeeAll} label={`See all ${title.toLowerCase()}`} />\n </div>\n </>\n )}\n </div>\n );\n};\n\n","import React from \"react\";\nimport { ContentCardHorizontalProps } from \"../../types/cards\";\nimport styles from \"./ContentCardHorizontal.module.scss\";\n\nexport const ContentCardHorizontal: React.FC<ContentCardHorizontalProps> = ({\n id,\n title,\n url,\n category,\n meta,\n excerpt,\n className = \"\",\n}) => {\n return (\n <a\n href={url}\n className={`${styles.contentCard} ${className}`}\n aria-label={`View content: ${title}`}\n >\n <div className={styles.contentMeta}>\n {category && <span className={styles.contentCategory}>{category}</span>}\n {meta && <span className={styles.contentMetaText}>{meta}</span>}\n </div>\n <h3 className={styles.contentTitle}>{title}</h3>\n {excerpt && <p className={styles.contentExcerpt}>{excerpt}</p>}\n </a>\n );\n};\n","import React from \"react\";\nimport { FederatedInstantResultsLayoutProps } from \"../../types/search\";\nimport { ResultsColumn } from \"../ResultsColumn/ResultsColumn\";\nimport { ProductCardHorizontal } from \"../ProductCardHorizontal/ProductCardHorizontal\";\nimport { ContentCardHorizontal } from \"../ContentCardHorizontal/ContentCardHorizontal\";\nimport { SeeAllLinkButton } from \"../SeeAllLinkButton/SeeAllLinkButton\";\nimport styles from \"./InstantResults.module.scss\";\n\nexport const FederatedInstantResultsLayout: React.FC<FederatedInstantResultsLayoutProps> = ({\n query,\n products,\n contents,\n isLoadingProducts,\n isLoadingContents,\n productsError,\n contentsError,\n onSeeAllProducts,\n onSeeAllContents,\n onSeeAllCombined,\n}) => {\n const totalResults = products.length + contents.length;\n const hasResults = totalResults > 0;\n const showCombinedButton = hasResults && !isLoadingProducts && !isLoadingContents;\n\n // Show first 3 results from each category\n const displayProducts = products.slice(0, 3);\n const displayContents = contents.slice(0, 3);\n\n return (\n <div className={styles.instantResultsLayout}>\n {query && (\n <div className={styles.queryHeader}>\n <h2 className={styles.queryText}>\n Results for <span className={styles.queryHighlight}>\"{query}\"</span>\n </h2>\n {showCombinedButton && (\n <SeeAllLinkButton onClick={onSeeAllCombined} label=\"See all results\" />\n )}\n </div>\n )}\n\n <div className={styles.columnsGrid}>\n <ResultsColumn\n title=\"Products\"\n count={products.length}\n isLoading={isLoadingProducts}\n error={productsError}\n onSeeAll={onSeeAllProducts}\n >\n {displayProducts.map((product) => (\n <ProductCardHorizontal key={product.id} {...product} />\n ))}\n </ResultsColumn>\n\n <ResultsColumn\n title=\"Content\"\n count={contents.length}\n isLoading={isLoadingContents}\n error={contentsError}\n onSeeAll={onSeeAllContents}\n >\n {displayContents.map((content) => (\n <ContentCardHorizontal key={content.id} {...content} />\n ))}\n </ResultsColumn>\n </div>\n </div>\n );\n};\n","import React from \"react\";\nimport { FilterSearchProps } from \"./Filter.types\";\nimport styles from \"./Filters.module.scss\";\n\n/**\n * FilterSearch - Search input for filtering facet values\n */\nexport const FilterSearch: React.FC<FilterSearchProps> = ({\n value,\n onChange,\n placeholder = \"Search\",\n className,\n}) => {\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange(e.target.value);\n };\n\n const handleClear = () => {\n onChange(\"\");\n };\n\n return (\n <div className={`${styles.filterSearch} ${className || \"\"}`}>\n <svg\n className={styles.searchIcon}\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 >\n <path\n d=\"M7 13C10.3137 13 13 10.3137 13 7C13 3.68629 10.3137 1 7 1C3.68629 1 1 3.68629 1 7C1 10.3137 3.68629 13 7 13Z\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M15 15L11.5 11.5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <input\n type=\"text\"\n value={value}\n onChange={handleChange}\n placeholder={placeholder}\n className={styles.searchInput}\n aria-label={placeholder}\n />\n {value && (\n <button\n type=\"button\"\n onClick={handleClear}\n className={styles.clearButton}\n aria-label=\"Clear search\"\n >\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9 3L3 9M3 3L9 9\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n )}\n </div>\n );\n};\n","import React from \"react\";\nimport { FilterItemProps } from \"./Filter.types\";\nimport styles from \"./Filters.module.scss\";\n\n/**\n * FilterItem - Individual facet item with checkbox and count\n */\nexport const FilterItem: React.FC<FilterItemProps> = ({ value, onToggle, className }) => {\n const handleChange = () => {\n onToggle(value.value);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onToggle(value.value);\n }\n };\n\n return (\n <label className={`${styles.filterItem} ${className || \"\"}`} onKeyDown={handleKeyDown}>\n <input\n type=\"checkbox\"\n checked={value.isRefined}\n onChange={handleChange}\n className={styles.filterCheckbox}\n aria-label={`${value.value} (${value.count} results)`}\n />\n <span className={styles.filterLabel}>{value.value}</span>\n <span className={styles.filterCount}>({value.count})</span>\n </label>\n );\n};\n\n","import React, { useState, useMemo } from \"react\";\nimport { FilterAccordionProps } from \"./Filter.types\";\nimport { FilterSearch } from \"./FilterSearch\";\nimport { FilterItem } from \"./FilterItem\";\nimport styles from \"./Filters.module.scss\";\n\n/**\n * FilterAccordion - Collapsible facet section with optional search\n */\nexport const FilterAccordion: React.FC<FilterAccordionProps> = ({\n facet,\n isExpanded,\n onToggle,\n onValueToggle,\n className,\n}) => {\n const [searchQuery, setSearchQuery] = useState(\"\");\n\n // Filter facet values based on search query\n const filteredValues = useMemo(() => {\n if (!searchQuery.trim()) {\n return facet.values;\n }\n const query = searchQuery.toLowerCase();\n return facet.values.filter((value) => value.value.toLowerCase().includes(query));\n }, [facet.values, searchQuery]);\n\n const handleToggle = () => {\n onToggle();\n // Clear search when collapsing\n if (isExpanded) {\n setSearchQuery(\"\");\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleToggle();\n }\n };\n\n const handleValueToggle = (value: string) => {\n onValueToggle(facet.attribute, value);\n };\n\n return (\n <div className={`${styles.filterAccordion} ${className || \"\"}`}>\n <button\n type=\"button\"\n className={`${styles.accordionHeader} ${isExpanded ? styles.accordionHeaderExpanded : \"\"}`}\n onClick={handleToggle}\n onKeyDown={handleKeyDown}\n aria-expanded={isExpanded}\n aria-controls={`accordion-${facet.id}`}\n >\n <span className={styles.accordionTitle}>{facet.label}</span>\n <svg\n className={`${styles.accordionIcon} ${isExpanded ? styles.accordionIconExpanded : \"\"}`}\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 >\n <path\n d=\"M4 6L8 10L12 6\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n\n {isExpanded && (\n <div id={`accordion-${facet.id}`} className={styles.accordionContent}>\n {/* Search input for searchable facets */}\n {facet.searchable && facet.values.length > 5 && (\n <div className={styles.accordionSearch}>\n <FilterSearch value={searchQuery} onChange={setSearchQuery} placeholder=\"Search\" />\n </div>\n )}\n\n {/* Facet values list */}\n <div className={styles.filterList}>\n {filteredValues.length > 0 ? (\n filteredValues.map((value) => (\n <FilterItem key={value.value} value={value} onToggle={handleValueToggle} />\n ))\n ) : (\n <div className={styles.noResults}>No results found</div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n};\n","import React from \"react\";\nimport styles from \"./Filters.module.scss\";\n\nexport interface AppliedFilterTagProps {\n /**\n * Facet attribute (e.g., \"category\")\n */\n attribute: string;\n /**\n * Facet value (e.g., \"Kits\")\n */\n value: string;\n /**\n * Display label (optional, defaults to value)\n */\n label?: string;\n /**\n * Callback when tag is removed\n */\n onRemove: (attribute: string, value: string) => void;\n /**\n * Additional CSS class\n */\n className?: string;\n}\n\n/**\n * AppliedFilterTag - Individual removable filter tag/chip\n */\nexport const AppliedFilterTag: React.FC<AppliedFilterTagProps> = ({\n attribute,\n value,\n label,\n onRemove,\n className,\n}) => {\n const handleRemove = () => {\n onRemove(attribute, value);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleRemove();\n }\n };\n\n return (\n <div className={`${styles.appliedFilterTag} ${className || \"\"}`}>\n <span className={styles.tagLabel}>{label || value}</span>\n <button\n type=\"button\"\n onClick={handleRemove}\n onKeyDown={handleKeyDown}\n className={styles.tagRemoveButton}\n aria-label={`Remove ${label || value} filter`}\n >\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M9 3L3 9M3 3L9 9\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n </div>\n );\n};\n\n","import React, { useMemo } from \"react\";\nimport { AppliedFilterTag } from \"./AppliedFilterTag\";\nimport { Facet } from \"./Filter.types\";\nimport styles from \"./Filters.module.scss\";\n\nexport interface AppliedFiltersProps {\n /**\n * List of facets with selected values\n */\n facets: Facet[];\n /**\n * Callback when a filter is removed\n */\n onRemove: (attribute: string, value: string) => void;\n /**\n * Callback when all filters are cleared\n */\n onClearAll?: () => void;\n /**\n * Additional CSS class\n */\n className?: string;\n}\n\n/**\n * AppliedFilters - Shows all active filters as removable tags\n */\nexport const AppliedFilters: React.FC<AppliedFiltersProps> = ({\n facets,\n onRemove,\n onClearAll,\n className,\n}) => {\n // Extract all refined (selected) filters\n const appliedFilters = useMemo(() => {\n const filters: Array<{ attribute: string; value: string; label: string; facetLabel: string }> =\n [];\n\n facets.forEach((facet) => {\n facet.values.forEach((value) => {\n if (value.isRefined) {\n filters.push({\n attribute: facet.attribute,\n value: value.value,\n label: value.value,\n facetLabel: facet.label,\n });\n }\n });\n });\n\n return filters;\n }, [facets]);\n\n // Don't render if no filters are applied\n if (appliedFilters.length === 0) {\n return null;\n }\n\n const handleClearAll = () => {\n if (onClearAll) {\n onClearAll();\n } else {\n // If no clearAll handler, remove each filter individually\n appliedFilters.forEach((filter) => {\n onRemove(filter.attribute, filter.value);\n });\n }\n };\n\n return (\n <div className={`${styles.appliedFilters} ${className || \"\"}`}>\n <div className={styles.appliedFiltersHeader}>\n <h4 className={styles.appliedFiltersTitle}>\n Applied filters\n {appliedFilters.length > 0 && (\n <span className={styles.appliedFiltersCount}>({appliedFilters.length})</span>\n )}\n </h4>\n {appliedFilters.length > 1 && (\n <button\n type=\"button\"\n onClick={handleClearAll}\n className={styles.clearAllButton}\n aria-label=\"Clear all filters\"\n >\n Clear all\n </button>\n )}\n </div>\n\n <div className={styles.appliedFiltersList}>\n {appliedFilters.map((filter) => (\n <AppliedFilterTag\n key={`${filter.attribute}-${filter.value}`}\n attribute={filter.attribute}\n value={filter.value}\n label={filter.label}\n onRemove={onRemove}\n />\n ))}\n </div>\n </div>\n );\n};\n","import React, { useState, useCallback } from \"react\";\nimport { FiltersPanelProps } from \"./Filter.types\";\nimport { FilterAccordion } from \"./FilterAccordion\";\nimport { AppliedFilters } from \"./AppliedFilters\";\nimport styles from \"./Filters.module.scss\";\n\n/**\n * FiltersPanel - Main container for all filters\n */\nexport const FiltersPanel: React.FC<FiltersPanelProps> = ({\n facets,\n onFacetToggle,\n isLoading = false,\n className,\n}) => {\n // Track which accordions are expanded\n const [expandedAccordions, setExpandedAccordions] = useState<Set<string>>(() => {\n // Initialize with default expanded facets\n const expanded = new Set<string>();\n facets.forEach((facet) => {\n if (facet.defaultExpanded) {\n expanded.add(facet.id);\n }\n });\n return expanded;\n });\n\n const handleAccordionToggle = useCallback((facetId: string) => {\n setExpandedAccordions((prev) => {\n const next = new Set(prev);\n if (next.has(facetId)) {\n next.delete(facetId);\n } else {\n next.add(facetId);\n }\n return next;\n });\n }, []);\n\n const handleValueToggle = useCallback(\n (attribute: string, value: string) => {\n onFacetToggle(attribute, value);\n },\n [onFacetToggle]\n );\n\n const handleRemoveFilter = useCallback(\n (attribute: string, value: string) => {\n onFacetToggle(attribute, value);\n },\n [onFacetToggle]\n );\n\n const handleClearAll = useCallback(() => {\n // Remove all refined facets\n facets.forEach((facet) => {\n facet.values.forEach((value) => {\n if (value.isRefined) {\n onFacetToggle(facet.attribute, value.value);\n }\n });\n });\n }, [facets, onFacetToggle]);\n\n if (isLoading) {\n return (\n <div className={`${styles.filtersPanel} ${className || \"\"}`}>\n <div className={styles.filtersPanelHeader}>\n <h3 className={styles.filtersPanelTitle}>Filters</h3>\n </div>\n <div className={styles.loadingState}>\n <div className={styles.spinner} />\n <p>Loading filters...</p>\n </div>\n </div>\n );\n }\n\n if (!facets || facets.length === 0) {\n return null;\n }\n\n return (\n <div className={`${styles.filtersPanel} ${className || \"\"}`}>\n <div className={styles.filtersPanelHeader}>\n <h3 className={styles.filtersPanelTitle}>Filters</h3>\n </div>\n\n {/* Applied Filters Section */}\n <AppliedFilters facets={facets} onRemove={handleRemoveFilter} onClearAll={handleClearAll} />\n\n <div className={styles.filtersList}>\n {facets.map((facet) => (\n <FilterAccordion\n key={facet.id}\n facet={facet}\n isExpanded={expandedAccordions.has(facet.id)}\n onToggle={() => handleAccordionToggle(facet.id)}\n onValueToggle={handleValueToggle}\n />\n ))}\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport { ResultsListProps } from '../../types/search';\nimport { ProductCardHorizontal } from '../ProductCardHorizontal/ProductCardHorizontal';\nimport { ContentCardHorizontal } from '../ContentCardHorizontal/ContentCardHorizontal';\nimport styles from './ResultsView.module.scss';\n\nexport const ResultsList: React.FC<ResultsListProps> = ({\n type,\n products = [],\n contents = [],\n isLoading,\n error,\n className = '',\n}) => {\n if (isLoading) {\n return (\n <div className={`${styles.loadingState} ${className}`}>\n <div className={styles.spinner} aria-label=\"Loading...\" />\n <p>Loading results...</p>\n </div>\n );\n }\n\n if (error) {\n return (\n <div className={`${styles.errorState} ${className}`}>\n <p>{error}</p>\n </div>\n );\n }\n\n const hasProducts = products.length > 0;\n const hasContents = contents.length > 0;\n const hasResults = hasProducts || hasContents;\n\n if (!hasResults) {\n return (\n <div className={`${styles.emptyState} ${className}`}>\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 className={styles.emptyIcon}\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"m21 21-4.35-4.35\" />\n </svg>\n <h3>No results found</h3>\n <p>Try adjusting your search or filters to find what you're looking for.</p>\n </div>\n );\n }\n\n // Render based on type\n if (type === 'products') {\n return (\n <div className={`${styles.resultsList} ${className}`}>\n {products.map((product) => (\n <ProductCardHorizontal key={product.id} {...product} />\n ))}\n </div>\n );\n }\n\n if (type === 'content') {\n return (\n <div className={`${styles.resultsList} ${className}`}>\n {contents.map((content) => (\n <ContentCardHorizontal key={content.id} {...content} />\n ))}\n </div>\n );\n }\n\n // type === 'all' - Show mixed results\n return (\n <div className={`${styles.resultsList} ${className}`}>\n {hasProducts && (\n <div className={styles.resultsSection}>\n <h3 className={styles.sectionTitle}>Products ({products.length})</h3>\n {products.map((product) => (\n <ProductCardHorizontal key={product.id} {...product} />\n ))}\n </div>\n )}\n {hasContents && (\n <div className={styles.resultsSection}>\n <h3 className={styles.sectionTitle}>Content ({contents.length})</h3>\n {contents.map((content) => (\n <ContentCardHorizontal key={content.id} {...content} />\n ))}\n </div>\n )}\n </div>\n );\n};\n\n","import React from \"react\";\nimport { FederatedResultsViewProps } from \"../../types/search\";\nimport { SearchBar } from \"../SearchBar/SearchBar\";\nimport { FiltersPanel } from \"../Filters\";\nimport { ResultsList } from \"./ResultsList\";\nimport { Pagination } from \"../Pagination\";\nimport styles from \"./ResultsView.module.scss\";\n\nexport const FederatedResultsView: React.FC<FederatedResultsViewProps> = ({\n query,\n onQueryChange,\n onSearchSubmit,\n activeTab,\n onTabChange,\n products,\n contents,\n isLoadingProducts,\n isLoadingContents,\n productsError,\n contentsError,\n currentPage,\n totalPages,\n onPageChange,\n facets,\n onFacetToggle,\n}) => {\n const tabs = [\n { id: \"products\" as const, label: \"Products\", count: products.length },\n { id: \"content\" as const, label: \"Content\", count: contents.length },\n ];\n\n const isLoading =\n (activeTab === \"products\" && isLoadingProducts) ||\n (activeTab === \"content\" && isLoadingContents);\n\n const error = activeTab === \"products\" ? productsError : contentsError;\n\n // Filter results based on active tab\n const displayProducts = activeTab === \"content\" ? [] : products;\n const displayContents = activeTab === \"products\" ? [] : contents;\n\n return (\n <div className={styles.resultsView}>\n <div className={styles.searchBarWrapper}>\n <SearchBar\n value={query}\n onChange={onQueryChange}\n onSubmit={onSearchSubmit}\n placeholder=\"Refine your search...\"\n />\n </div>\n\n <div className={styles.tabsContainer}>\n <div className={styles.tabs} role=\"tablist\">\n {tabs.map((tab) => (\n <button\n key={tab.id}\n type=\"button\"\n role=\"tab\"\n aria-selected={activeTab === tab.id}\n aria-controls={`tabpanel-${tab.id}`}\n onClick={() => onTabChange(tab.id)}\n className={`${styles.tab} ${activeTab === tab.id ? styles.tabActive : \"\"}`}\n >\n {tab.label}\n {tab.count > 0 && <span className={styles.tabCount}>{tab.count}</span>}\n </button>\n ))}\n </div>\n </div>\n\n <div className={styles.resultsContainer}>\n <aside className={styles.sidebar}>\n <FiltersPanel facets={facets} onFacetToggle={onFacetToggle} />\n </aside>\n\n <main className={styles.mainContent}>\n <div id={`tabpanel-${activeTab}`} role=\"tabpanel\" aria-labelledby={`tab-${activeTab}`}>\n <ResultsList\n type={activeTab}\n products={displayProducts}\n contents={displayContents}\n isLoading={isLoading}\n error={error}\n />\n\n {/* Pagination - only show when not loading and no errors */}\n {!isLoading && !error && (displayProducts.length > 0 || displayContents.length > 0) && (\n <div className={styles.paginationWrapper}>\n <Pagination\n currentPage={currentPage}\n totalPages={totalPages}\n onPageChange={onPageChange}\n maxVisiblePages={10}\n ariaLabel={`${activeTab === \"products\" ? \"Products\" : \"Content\"} pagination`}\n />\n </div>\n )}\n </div>\n </main>\n </div>\n </div>\n );\n};\n","import React from \"react\";\nimport { FederatedSearchProps } from \"../../types/search\";\nimport { SearchModal } from \"../../components/SearchModal/SearchModal\";\nimport { SearchBar } from \"../../components/SearchBar/SearchBar\";\nimport { FederatedInstantResultsLayout } from \"../../components/InstantResults/FederatedInstantResultsLayout\";\nimport { FederatedResultsView } from \"../../components/ResultsView/FederatedResultsView\";\nimport styles from \"./FederatedSearchExperience.module.scss\";\n\n/**\n * FederatedSearchExperience - Top-level search experience component\n *\n * This component orchestrates the entire federated search experience, including:\n * - Modal container\n * - Search input\n * - Instant results (2-column layout)\n * - Full results view with tabs and filters\n *\n * The component is fully controlled and does not contain any data fetching logic.\n * All data and callbacks are passed in via props, making it suitable for use in AEM\n * where a controller layer will handle Algolia integration.\n *\n * @example\n * ```tsx\n * <FederatedSearchExperience\n * isOpen={isOpen}\n * onOpen={handleOpen}\n * onClose={handleClose}\n * query={query}\n * onQueryChange={setQuery}\n * onSearchSubmit={handleSubmit}\n * products={products}\n * contents={contents}\n * isLoadingProducts={isLoadingProducts}\n * isLoadingContents={isLoadingContents}\n * onSeeAllProducts={handleSeeAllProducts}\n * onSeeAllContents={handleSeeAllContents}\n * onSeeAllCombined={handleSeeAllCombined}\n * activeView={activeView}\n * onChangeView={setActiveView}\n * activeTab={activeTab}\n * onTabChange={setActiveTab}\n * />\n * ```\n */\nexport const FederatedSearchExperience: React.FC<FederatedSearchProps> = ({\n isOpen,\n onClose,\n query,\n onQueryChange,\n onSearchSubmit,\n products,\n contents,\n isLoadingProducts,\n isLoadingContents,\n productsError,\n contentsError,\n onSeeAllProducts,\n onSeeAllContents,\n onSeeAllCombined,\n activeView,\n onChangeView,\n activeTab,\n onTabChange,\n currentPage,\n totalPages,\n onPageChange,\n facets,\n onFacetToggle,\n}) => {\n return (\n <SearchModal isOpen={isOpen} onClose={onClose} title=\"Search\">\n <div className={styles.searchExperience}>\n {/* Search Bar - Always visible */}\n {activeView === \"instant\" && (\n <div className={styles.searchBarSection}>\n <SearchBar\n value={query}\n onChange={onQueryChange}\n onSubmit={onSearchSubmit}\n placeholder=\"Discover products, innovations, and resources...\"\n autoFocus\n />\n </div>\n )}\n\n {/* Instant Results View */}\n {activeView === \"instant\" && (\n <div className={styles.instantResultsSection}>\n {query ? (\n <FederatedInstantResultsLayout\n query={query}\n products={products}\n contents={contents}\n isLoadingProducts={isLoadingProducts}\n isLoadingContents={isLoadingContents}\n productsError={productsError}\n contentsError={contentsError}\n onSeeAllProducts={onSeeAllProducts}\n onSeeAllContents={onSeeAllContents}\n onSeeAllCombined={onSeeAllCombined}\n />\n ) : (\n <></>\n // <div className={styles.emptyState}>\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 // className={styles.emptyIcon}\n // >\n // <circle cx=\"11\" cy=\"11\" r=\"8\" />\n // <path d=\"m21 21-4.35-4.35\" />\n // </svg>\n // <h3>Start searching</h3>\n // <p>\n // Search for vacuum pumps, accessories, technical documentation, and more.\n // </p>\n // </div>\n )}\n </div>\n )}\n\n {/* Full Results View */}\n {activeView === \"results\" && (\n <div className={styles.fullResultsSection}>\n <FederatedResultsView\n query={query}\n onQueryChange={onQueryChange}\n onSearchSubmit={onSearchSubmit}\n activeTab={activeTab}\n onTabChange={onTabChange}\n products={products}\n contents={contents}\n isLoadingProducts={isLoadingProducts}\n isLoadingContents={isLoadingContents}\n productsError={productsError}\n contentsError={contentsError}\n currentPage={currentPage}\n totalPages={totalPages}\n onPageChange={onPageChange}\n facets={facets}\n onFacetToggle={onFacetToggle}\n />\n </div>\n )}\n </div>\n </SearchModal>\n );\n};\n","import React from 'react';\nimport { SearchTriggerButtonProps } from '../../types/search';\nimport styles from './SearchTriggerButton.module.scss';\n\nexport const SearchTriggerButton: React.FC<SearchTriggerButtonProps> = ({\n onOpen,\n ariaLabel = 'Open search',\n label,\n className = '',\n}) => {\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onOpen();\n }\n };\n\n return (\n <button\n type=\"button\"\n onClick={onOpen}\n onKeyDown={handleKeyDown}\n aria-label={ariaLabel}\n className={`${styles.searchTrigger} ${className}`}\n >\n <svg\n className={styles.searchIcon}\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 >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"m21 21-4.35-4.35\" />\n </svg>\n {label && <span className={styles.label}>{label}</span>}\n </button>\n );\n};\n\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","appendClass","parseValue","Array","isArray","apply","toString","Object","prototype","includes","key","call","value","newClass","module","exports","default","window","getIcon","icon","React","createElement","FontAwesomeIcon","faArrowRight","faArrowUpRightFromSquare","faChevronLeft","faChevronRight","getDefaultIcon","variant","mapVariantToClass","Button","children","size","disabled","onClick","type","className","iconPosition","ariaLabel","opensInNewTab","props","cssVariant","displayIcon","iconElement","isIconOnly","isCarouselLeft","isCarouselRight","buttonClasses","styles","button","iconClasses","button__icon","accessibleLabel","undefined","_extends","faArrowLeft","button__icon__default","faArrowLeftLong","button__icon__hover","faArrowRightLong","ExternalLinkIcon","width","height","viewBox","fill","xmlns","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","AtlasCopcoIcon","x","y","rx","SocialIconComponent","platform","iconMap","facebook","faFacebookF","faXTwitter","linkedin","faLinkedinIn","youtube","faYoutube","instagram","faInstagram","FooterLink","item","baseClass","footer__bottomLink","footer__link","linkClasses","handleClick","e","preventDefault","href","external","target","rel","footer__linkText","label","footer__linkIcon","FooterLinkGroup","heading","links","footer__linkGroup","footer__linkHeading","footer__linkList","map","link","index","FooterSocialIcons","footer__socialIcons","footer__socialIcon","FooterSocialIcon","FooterBottom","copyright","countrySelector","footer__bottom","footer__bottomLeft","footer__bottomLinks","footer__copyright","footer__countrySelector","showIcon","footer__countrySelectorIcon","faGlobe","Footer","logo","motto","atlasCopcoBadge","quickLinks","quickLinksHeading","contactLinks","contactHeading","socialLinks","contactFormButton","bottomLinks","isMobile","footerClasses","footer","LogoWrapper","logoProps","footer__logo","LogoSection","Fragment","src","alt","footer__leftCol","footer__motto","footer__badge","footer__badgeIcon","footer__badgeText","text","footer__container","footer__links","footer__cta","style","textDecoration","footer__brandSection","footer__main","PaginationItem","page","isActive","handleKeyDown","event","paginationItem","onKeyDown","pageButton","pageButtonActive","tabIndex","PaginationButton","direction","navButton","navButtonDisabled","navIcon","PaginationEllipsis","ellipsis","ellipsisText","generatePageNumbers","currentPage","totalPages","maxVisiblePages","from","_","pages","halfVisible","Math","floor","push","startPage","max","endPage","min","Pagination","onPageChange","showPrevious","showNext","previousLabel","nextLabel","pageNumbers","useMemo","handlePageChange","handlePrevious","handleNext","pagination","role","paginationList","Image","loading","decoding","objectFit","objectPosition","aspectRatio","isDecorative","fallbackSrc","onLoad","onError","srcSet","sizes","isLoading","setIsLoading","useState","hasError","setHasError","currentSrc","setCurrentSrc","handleLoad","useCallback","handleError","accessibilityProps","containerStyle","imageStyle","imageContainer","error","skeleton","shimmer","errorState","errorIcon","ry","cx","cy","r","points","errorText","image","ProductCardHorizontal","id","imageUrl","url","title","description","price","productCard","productWrapper","withImage","productImage","productTitleDescriptionWrapper","productTitle","productDescription","productPriceCtaWrapper","productPrice","productButton","ProductCardHorizontalParts","SpareCardAdapter","spare","rest","name","priceValue","cta","open","ProductCardDetails","code","facets","hit","ProductCardComponent","hitData","productDetails","ProductDetailsCardBase","imageAlt","usePlainClasses","ProductCardAdapter","cardLink","showProductPrice","console","log","productCode","buttonLabel","ProductCardDetailsAdapter","related_products","relatedProducts","AlgoliaDynamicSearchLeybold","innerComponents","ProductCard","ProductDetailsCard","AlgoliaDynamicSearchRaw","QrFormButtonAdapter","buttonStyle","element","pageTarget","display","QrFormLeybold","QrForm","ButtonComponent","ModalCloseButton","closeButton","x1","y1","x2","y2","SearchModal","isOpen","onClose","modalRef","useRef","previouslyFocusedElement","useEffect","current","document","activeElement","focus","body","overflow","handleEscape","addEventListener","removeEventListener","modal","focusableElements","querySelectorAll","firstElement","lastElement","handleTab","shiftKey","handleOverlayClick","currentTarget","overlay","ref","header","content","SearchIcon","searchIcon","SearchInput","onChange","placeholder","autoFocus","handleChange","searchInput","SearchSubmitButton","submitButton","SearchBar","onSubmit","handleSubmit","searchBar","inputWrapper","ResultsCount","count","slice","resultsCount","SeeAllLinkButton","seeAllButton","ResultsColumn","onSeeAll","resultsColumn","columnHeader","columnTitle","toLowerCase","loadingState","spinner","emptyState","resultsList","columnFooter","ContentCardHorizontal","category","meta","excerpt","contentCard","contentMeta","contentCategory","contentMetaText","contentTitle","contentExcerpt","FederatedInstantResultsLayout","query","products","contents","isLoadingProducts","isLoadingContents","productsError","contentsError","onSeeAllProducts","onSeeAllContents","onSeeAllCombined","totalResults","hasResults","showCombinedButton","displayProducts","displayContents","instantResultsLayout","queryHeader","queryText","queryHighlight","columnsGrid","product","FilterSearch","handleClear","filterSearch","clearButton","FilterItem","onToggle","filterItem","checked","isRefined","filterCheckbox","filterLabel","filterCount","FilterAccordion","facet","isExpanded","onValueToggle","searchQuery","setSearchQuery","filteredValues","trim","values","filter","handleToggle","handleValueToggle","attribute","filterAccordion","accordionHeader","accordionHeaderExpanded","accordionTitle","accordionIcon","accordionIconExpanded","accordionContent","searchable","accordionSearch","filterList","noResults","AppliedFilterTag","onRemove","handleRemove","appliedFilterTag","tagLabel","tagRemoveButton","AppliedFilters","onClearAll","appliedFilters","filters","forEach","facetLabel","handleClearAll","appliedFiltersHeader","appliedFiltersTitle","appliedFiltersCount","clearAllButton","appliedFiltersList","FiltersPanel","onFacetToggle","expandedAccordions","setExpandedAccordions","expanded","Set","defaultExpanded","add","handleAccordionToggle","facetId","prev","next","has","delete","handleRemoveFilter","filtersPanel","filtersPanelHeader","filtersPanelTitle","filtersList","ResultsList","hasProducts","hasContents","emptyIcon","resultsSection","sectionTitle","FederatedResultsView","onQueryChange","onSearchSubmit","activeTab","onTabChange","tabs","resultsView","searchBarWrapper","tabsContainer","tab","tabActive","tabCount","resultsContainer","sidebar","mainContent","paginationWrapper","FederatedSearchExperience","activeView","onChangeView","searchExperience","searchBarSection","instantResultsSection","fullResultsSection","SearchTriggerButton","onOpen","searchTrigger"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA;;IAEC,CAAA,YAAY;;AAGZ,MAAA,IAAIA,MAAM,GAAG,EAAE,CAACC,cAAc;MAE9B,SAASC,UAAUA,GAAI;QACtB,IAAIC,OAAO,GAAG,EAAE;AAEhB,QAAA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGC,SAAS,CAACC,MAAM,EAAEF,CAAC,EAAE,EAAE;AAC1C,UAAA,IAAIG,GAAG,GAAGF,SAAS,CAACD,CAAC,CAAC;AACtB,UAAA,IAAIG,GAAG,EAAE;YACRJ,OAAO,GAAGK,WAAW,CAACL,OAAO,EAAEM,UAAU,CAACF,GAAG,CAAC,CAAC;AACnD,UAAA;AACA,QAAA;AAEE,QAAA,OAAOJ,OAAO;AAChB,MAAA;MAEC,SAASM,UAAUA,CAAEF,GAAG,EAAE;QACzB,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;AACvD,UAAA,OAAOA,GAAG;AACb,QAAA;AAEE,QAAA,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;AAC5B,UAAA,OAAO,EAAE;AACZ,QAAA;AAEE,QAAA,IAAIG,KAAK,CAACC,OAAO,CAACJ,GAAG,CAAC,EAAE;AACvB,UAAA,OAAOL,UAAU,CAACU,KAAK,CAAC,IAAI,EAAEL,GAAG,CAAC;AACrC,QAAA;QAEE,IAAIA,GAAG,CAACM,QAAQ,KAAKC,MAAM,CAACC,SAAS,CAACF,QAAQ,IAAI,CAACN,GAAG,CAACM,QAAQ,CAACA,QAAQ,EAAE,CAACG,QAAQ,CAAC,eAAe,CAAC,EAAE;AACrG,UAAA,OAAOT,GAAG,CAACM,QAAQ,EAAE;AACxB,QAAA;QAEE,IAAIV,OAAO,GAAG,EAAE;AAEhB,QAAA,KAAK,IAAIc,GAAG,IAAIV,GAAG,EAAE;AACpB,UAAA,IAAIP,MAAM,CAACkB,IAAI,CAACX,GAAG,EAAEU,GAAG,CAAC,IAAIV,GAAG,CAACU,GAAG,CAAC,EAAE;AACtCd,YAAAA,OAAO,GAAGK,WAAW,CAACL,OAAO,EAAEc,GAAG,CAAC;AACvC,UAAA;AACA,QAAA;AAEE,QAAA,OAAOd,OAAO;AAChB,MAAA;AAEC,MAAA,SAASK,WAAWA,CAAEW,KAAK,EAAEC,QAAQ,EAAE;QACtC,IAAI,CAACA,QAAQ,EAAE;AACd,UAAA,OAAOD,KAAK;AACf,QAAA;AAEE,QAAA,IAAIA,KAAK,EAAE;AACV,UAAA,OAAOA,KAAK,GAAG,GAAG,GAAGC,QAAQ;AAChC,QAAA;QAEE,OAAOD,KAAK,GAAGC,QAAQ;AACzB,MAAA;AAEC,MAAA,IAAqCC,MAAM,CAACC,OAAO,EAAE;QACpDpB,UAAU,CAACqB,OAAO,GAAGrB,UAAU;QAC/BmB,iBAAiBnB,UAAU;AAC7B,MAAA,CAAE,MAKM;QACNsB,MAAM,CAACtB,UAAU,GAAGA,UAAU;AAChC,MAAA;AACA,IAAA,CAAC,GAAE;;;;;;;;AC7DH;AACA;AACA;;AA2BA;AACA;AACA;;AAGA;AACA;AACA;;AAmEA;AACA;AACA;AACA,MAAMuB,OAAO,GAAIC,IAAgB,IAAK;AACpC,EAAA,QAAQA,IAAI;AACV,IAAA,KAAK,aAAa;AAChB,MAAA,oBAAOC,KAAA,CAAAC,aAAA,CAACC,eAAe,EAAA;AAACH,QAAAA,IAAI,EAAEI;AAAyB,OAAE,CAAC;AAC5D,IAAA,KAAK,UAAU;AACb,MAAA,oBAAOH,KAAA,CAAAC,aAAA,CAACC,eAAe,EAAA;AAACH,QAAAA,IAAI,EAAEK;AAAqC,OAAE,CAAC;AACxE,IAAA,KAAK,cAAc;AACjB,MAAA,oBAAOJ,KAAA,CAAAC,aAAA,CAACC,eAAe,EAAA;AAACH,QAAAA,IAAI,EAAEM;AAA0B,OAAE,CAAC;AAC7D,IAAA,KAAK,eAAe;AAClB,MAAA,oBAAOL,KAAA,CAAAC,aAAA,CAACC,eAAe,EAAA;AAACH,QAAAA,IAAI,EAAEO;AAA2B,OAAE,CAAC;AAC9D,IAAA;AACE,MAAA,OAAO,IAAI;AACf;AACF,CAAC;;AAED;AACA;AACA;AACA,MAAMC,cAAc,GAAIC,OAAsB,IAAiB;AAC7D,EAAA,QAAQA,OAAO;AACb,IAAA,KAAK,WAAW;AAChB,IAAA,KAAK,eAAe;AACpB,IAAA,KAAK,MAAM;AAAE;AACX,MAAA,OAAO,aAAa;AACtB,IAAA,KAAK,eAAe;AAClB,MAAA,OAAO,UAAU;AACnB,IAAA,KAAK,qBAAqB;AACxB,MAAA,OAAO,cAAc;AACvB,IAAA,KAAK,sBAAsB;AACzB,MAAA,OAAO,eAAe;AACxB,IAAA;AACE,MAAA,OAAO,MAAM;AACjB;AACF,CAAC;;AAED;AACA;AACA;AACA,MAAMC,iBAAiB,GAAID,OAAsB,IAAa;AAC5D,EAAA,QAAQA,OAAO;AACb,IAAA,KAAK,SAAS;AACZ,MAAA,OAAO,cAAc;AACvB,IAAA,KAAK,MAAM;AACT,MAAA,OAAO,WAAW;AACpB,IAAA;AACE,MAAA,OAAOA,OAAO;AAClB;AACF,CAAC;;AAED;AACA;AACA;AACO,MAAME,MAA6B,GAAGA,CAAC;EAC5CC,QAAQ;AACRH,EAAAA,OAAO,GAAG,SAAS;AACnBI,EAAAA,IAAI,GAAG,QAAQ;AACfC,EAAAA,QAAQ,GAAG,KAAK;EAChBC,OAAO;AACPC,EAAAA,IAAI,GAAG,QAAQ;EACfC,SAAS;EACTjB,IAAI;AACJkB,EAAAA,YAAY,GAAG,OAAO;EACtBC,SAAS;EACTC,aAAa;EACb,GAAGC;AACL,CAAC,KAAK;AACJ;AACA,EAAA,MAAMC,UAAU,GAAGZ,iBAAiB,CAACD,OAAO,CAAC;;AAE7C;AACA,EAAA,MAAMc,WAAW,GAAGvB,IAAI,IAAIQ,cAAc,CAACC,OAAO,CAAC;AACnD,EAAA,MAAMe,WAAW,GAAGzB,OAAO,CAACwB,WAAW,CAAC;;AAExC;EACA,MAAME,UAAU,GAAGhB,OAAO,KAAK,qBAAqB,IAAIA,OAAO,KAAK,sBAAsB;AAC1F,EAAA,MAAMiB,cAAc,GAAGjB,OAAO,KAAK,qBAAqB;AACxD,EAAA,MAAMkB,eAAe,GAAGlB,OAAO,KAAK,sBAAsB;EAE1D,MAAMmB,aAAa,GAAGpD,UAAU,CAC9BqD,QAAM,CAACC,MAAM,EACbD,QAAM,CAAC,WAAWP,UAAU,CAAA,CAAE,CAAC,EAC/BO,QAAM,CAAC,CAAA,QAAA,EAAWhB,IAAI,CAAA,CAAE,CAAC,EACzB;AACE,IAAA,CAACgB,QAAM,CAAC,kBAAkB,CAAC,GAAGf;GAC/B,EACDG,SACF,CAAC;AAED,EAAA,MAAMc,WAAW,GAAGvD,UAAU,CAACqD,QAAM,CAACG,YAAY,EAAEH,QAAM,CAAC,CAAA,cAAA,EAAiBX,YAAY,CAAA,CAAE,CAAC,CAAC;;AAE5F;AACA,EAAA,MAAMe,eAAe,GACnBd,SAAS,KACRM,UAAU,GAAIhB,OAAO,KAAK,qBAAqB,GAAG,UAAU,GAAG,MAAM,GAAIyB,SAAS,CAAC;AAEtF,EAAA,oBACEjC,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAAiC,QAAA,CAAA;AACEnB,IAAAA,IAAI,EAAEA,IAAK;AACXC,IAAAA,SAAS,EAAEW,aAAc;AACzBd,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,OAAO,EAAEA,OAAQ;AACjB,IAAA,YAAA,EAAYkB,eAAgB;IAC5B,kBAAA,EAAkBZ,KAAK,CAAC,kBAAkB;GAAE,EACxCA,KAAK,CAAA,EAER,CAACI,UAAU,IAAIb,QAAQ,EACvBc,cAAc,iBACbzB,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMe,IAAAA,SAAS,EAAEc;AAAY,GAAA,eAC3B9B,KAAA,CAAAC,aAAA,CAACC,eAAe,EAAA;AAACH,IAAAA,IAAI,EAAEoC,WAAwB;IAACnB,SAAS,EAAEY,QAAM,CAACQ;AAAsB,GAAE,CAAC,eAC3FpC,KAAA,CAAAC,aAAA,CAACC,eAAe,EAAA;AAACH,IAAAA,IAAI,EAAEsC,eAA4B;IAACrB,SAAS,EAAEY,QAAM,CAACU;AAAoB,GAAE,CACxF,CACP,EACAZ,eAAe,iBACd1B,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMe,IAAAA,SAAS,EAAEc;AAAY,GAAA,eAC3B9B,KAAA,CAAAC,aAAA,CAACC,eAAe,EAAA;AAACH,IAAAA,IAAI,EAAEI,YAAyB;IAACa,SAAS,EAAEY,QAAM,CAACQ;AAAsB,GAAE,CAAC,eAC5FpC,KAAA,CAAAC,aAAA,CAACC,eAAe,EAAA;AAACH,IAAAA,IAAI,EAAEwC,gBAA6B;IAACvB,SAAS,EAAEY,QAAM,CAACU;GAAsB,CACzF,CACP,EACA,CAACd,UAAU,IAAID,WAAW,iBAAIvB,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMe,IAAAA,SAAS,EAAEc;GAAY,EAAEP,WAAkB,CAC1E,CAAC;AAEb;;;;AC3OA;AACA;AACA;AACO,MAAMiB,gBAAiD,GAAGA,CAAC;EAChExB,SAAS;AACTJ,EAAAA,IAAI,GAAG;AACT,CAAC,kBACCZ,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEwC,EAAAA,KAAK,EAAE7B,IAAK;AACZ8B,EAAAA,MAAM,EAAE9B,IAAK;AACb+B,EAAAA,OAAO,EAAC,WAAW;AACnBC,EAAAA,IAAI,EAAC,MAAM;AACXC,EAAAA,KAAK,EAAC,4BAA4B;AAClC7B,EAAAA,SAAS,EAAEA,SAAU;EACrB,aAAA,EAAY;AAAM,CAAA,eAElBhB,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AACE6C,EAAAA,CAAC,EAAC,oWAAoW;AACtWC,EAAAA,MAAM,EAAC,cAAc;AACrBC,EAAAA,WAAW,EAAC,KAAK;AACjBC,EAAAA,aAAa,EAAC,OAAO;AACrBC,EAAAA,cAAc,EAAC;AAAO,CACvB,CACE,CACN;;ACxBD;AACA;AACA;AACO,MAAMC,cAA6C,GAAGA,CAAC;EAC5DnC,SAAS;AACTJ,EAAAA,IAAI,GAAG;AACT,CAAC,kBACCZ,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEwC,EAAAA,KAAK,EAAE7B,IAAK;AACZ8B,EAAAA,MAAM,EAAE9B,IAAK;AACb+B,EAAAA,OAAO,EAAC,WAAW;AACnBC,EAAAA,IAAI,EAAC,MAAM;AACXC,EAAAA,KAAK,EAAC,4BAA4B;AAClC7B,EAAAA,SAAS,EAAEA,SAAU;EACrB,aAAA,EAAY;AAAM,CAAA,eAElBhB,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AACEmD,EAAAA,CAAC,EAAC,KAAK;AACPC,EAAAA,CAAC,EAAC,KAAK;AACPZ,EAAAA,KAAK,EAAC,IAAI;AACVC,EAAAA,MAAM,EAAC,IAAI;AACXY,EAAAA,EAAE,EAAC,KAAK;AACRV,EAAAA,IAAI,EAAC,SAAS;AACdG,EAAAA,MAAM,EAAC;AAAS,CACjB,CACE,CACN;;ACpBD;AACA;AACA;;AAwHA;AACA;AACA;;AAEA,MAAMQ,mBAAuE,GAAGA,CAAC;AAC/EC,EAAAA;AACF,CAAC,KAAK;AACJ,EAAA,MAAMC,OAAO,GAAG;AACdC,IAAAA,QAAQ,EAAEC,WAAW;AACrBP,IAAAA,CAAC,EAAEQ,UAAU;AACbC,IAAAA,QAAQ,EAAEC,YAAY;AACtBC,IAAAA,OAAO,EAAEC,SAAS;AAClBC,IAAAA,SAAS,EAAEC;GACZ;AAED,EAAA,oBAAOlE,KAAA,CAAAC,aAAA,CAACC,eAAe,EAAA;IAACH,IAAI,EAAE0D,OAAO,CAACD,QAAQ;AAAc,GAAE,CAAC;AACjE,CAAC;;AAED;AACA;AACA;;AAiBO,MAAMW,UAAqC,GAAGA,CAAC;EACpDC,IAAI;EACJpD,SAAS;AACTR,EAAAA,OAAO,GAAG;AACZ,CAAC,KAAK;AACJ,EAAA,MAAM6D,SAAS,GAAG7D,OAAO,KAAK,QAAQ,GAAGoB,QAAM,CAAC0C,kBAAkB,GAAG1C,QAAM,CAAC2C,YAAY;AACxF,EAAA,MAAMC,WAAW,GAAGjG,UAAU,CAC5B8F,SAAS,EACTrD,SACF,CAAC;EAED,MAAMyD,WAAW,GAAIC,CAAsC,IAAK;IAC9D,IAAIN,IAAI,CAACtD,OAAO,EAAE;MAChB4D,CAAC,CAACC,cAAc,EAAE;MAClBP,IAAI,CAACtD,OAAO,EAAE;AAChB,IAAA;EACF,CAAC;AAED,EAAA,oBACEd,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAAiC,QAAA,CAAA;IACE0C,IAAI,EAAER,IAAI,CAACQ,IAAK;AAChB5D,IAAAA,SAAS,EAAEwD,WAAY;AACvB1D,IAAAA,OAAO,EAAEsD,IAAI,CAACtD,OAAO,GAAG2D,WAAW,GAAGxC;GAAU,EAC3CmC,IAAI,CAACS,QAAQ,IAAI;AACpBC,IAAAA,MAAM,EAAE,QAAQ;AAChBC,IAAAA,GAAG,EAAE;GACN,CAAA,eAED/E,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMe,SAAS,EAAEY,QAAM,CAACoD;GAAiB,EAAEZ,IAAI,CAACa,KAAY,CAAC,EAC5Db,IAAI,CAACS,QAAQ,iBACZ7E,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMe,SAAS,EAAEY,QAAM,CAACsD;AAAiB,GAAA,eACvClF,KAAA,CAAAC,aAAA,CAACuC,gBAAgB,EAAA;AAAC5B,IAAAA,IAAI,EAAE;GAAK,CACzB,CAEP,CAAC;AAER;;AAEA;AACA;AACA;;AAqBO,MAAMuE,eAA+C,GAAGA,CAAC;EAC9DC,OAAO;EACPC,KAAK;EACLrE,SAAS;AACTL,EAAAA;AACF,CAAC,KAAK;EACJ,oBACEX,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKe,IAAAA,SAAS,EAAEzC,UAAU,CAACqD,QAAM,CAAC0D,iBAAiB,EAAEtE,SAAS;GAAE,eAC9DhB,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIe,SAAS,EAAEY,QAAM,CAAC2D;AAAoB,GAAA,EAAEH,OAAY,CAAC,eACzDpF,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIe,SAAS,EAAEY,QAAM,CAAC4D;GAAiB,EACpCH,KAAK,CAACI,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,kBACrB3F,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAIX,IAAAA,GAAG,EAAEqG;AAAM,GAAA,eACb3F,KAAA,CAAAC,aAAA,CAACkE,UAAU,EAAA;AAACC,IAAAA,IAAI,EAAEsB;AAAK,GAAE,CACvB,CACL,CACC,CAAC,EACJ/E,QACE,CAAC;AAEV;;AAEA;AACA;AACA;;AAaO,MAAMiF,iBAAmD,GAAGA,CAAC;EAClEP,KAAK;AACLrE,EAAAA;AACF,CAAC,KAAK;EACJ,oBACEhB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKe,IAAAA,SAAS,EAAEzC,UAAU,CAACqD,QAAM,CAACiE,mBAAmB,EAAE7E,SAAS;GAAE,EAC/DqE,KAAK,CAACI,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,kBACrB3F,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;AACEX,IAAAA,GAAG,EAAEqG,KAAM;IACXf,IAAI,EAAEc,IAAI,CAACd,IAAK;IAChB5D,SAAS,EAAEY,QAAM,CAACkE,kBAAmB;IACrC,YAAA,EAAYJ,IAAI,CAACxE,SAAU;AAC3B4D,IAAAA,MAAM,EAAC,QAAQ;AACfC,IAAAA,GAAG,EAAC;AAAqB,GAAA,eAEzB/E,KAAA,CAAAC,aAAA,CAACsD,mBAAmB,EAAA;IAACC,QAAQ,EAAEkC,IAAI,CAAClC;GAAW,CAC9C,CACJ,CACE,CAAC;AAEV;;AAEA;AACA;AACA;;AAaO,MAAMuC,gBAAiD,GAAGA,CAAC;EAChEvC,QAAQ;AACRxC,EAAAA;AACF,CAAC,KAAK;EACJ,MAAMc,WAAW,GAAGvD,UAAU,CAC5BqD,QAAM,CAACkE,kBAAkB,EACzB9E,SACF,CAAC;EAED,oBACEhB,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMe,IAAAA,SAAS,EAAEc;AAAY,GAAA,eAC3B9B,KAAA,CAAAC,aAAA,CAACsD,mBAAmB,EAAA;AAACC,IAAAA,QAAQ,EAAEA;AAAS,GAAE,CACtC,CAAC;AAEX;;AAEA;AACA;AACA;;AAyBO,MAAMwC,YAAyC,GAAGA,CAAC;EACxDX,KAAK;EACLY,SAAS;EACTC,eAAe;AACflF,EAAAA;AACF,CAAC,KAAK;EACJ,oBACEhB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKe,IAAAA,SAAS,EAAEzC,UAAU,CAACqD,QAAM,CAACuE,cAAc,EAAEnF,SAAS;GAAE,eAC3DhB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACwE;GAAmB,eACxCpG,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACyE;AAAoB,GAAA,EACxChB,KAAK,CAACI,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,kBACrB3F,KAAA,CAAAC,aAAA,CAACkE,UAAU,EAAA;AAAC7E,IAAAA,GAAG,EAAEqG,KAAM;AAACvB,IAAAA,IAAI,EAAEsB,IAAK;AAAClF,IAAAA,OAAO,EAAC;AAAQ,GAAE,CACvD,CACE,CAAC,eACNR,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;IAAGe,SAAS,EAAEY,QAAM,CAAC0E;GAAkB,EAAEL,SAAa,CACnD,CAAC,EACLC,eAAe,iBACdlG,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;AACE2E,IAAAA,IAAI,EAAEsB,eAAe,CAACtB,IAAI,IAAI,GAAI;IAClC5D,SAAS,EAAEY,QAAM,CAAC2E;GAAwB,EAEzCL,eAAe,CAACM,QAAQ,KAAK,KAAK,iBACjCxG,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMe,SAAS,EAAEY,QAAM,CAAC6E;AAA4B,GAAA,eAClDzG,KAAA,CAAAC,aAAA,CAACC,eAAe,EAAA;AAACH,IAAAA,IAAI,EAAE2G;AAAoB,GAAE,CACzC,CACP,EACAR,eAAe,CAACjB,KAChB,CAEF,CAAC;AAEV;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM0B,MAA6B,GAAGA,CAAC;AAC5CnG,EAAAA,OAAO,GAAG,SAAS;EACnBoG,IAAI;EACJC,KAAK;EACLC,eAAe;EACfC,UAAU;AACVC,EAAAA,iBAAiB,GAAG,aAAa;EACjCC,YAAY;AACZC,EAAAA,cAAc,GAAG,YAAY;EAC7BC,WAAW;EACXC,iBAAiB;EACjBC,WAAW;EACXpB,SAAS;EACTC,eAAe;AACflF,EAAAA;AACF,CAAC,KAAK;AACJ,EAAA,MAAMsG,QAAQ,GAAG9G,OAAO,KAAK,QAAQ;AACrC,EAAA,MAAM+G,aAAa,GAAGhJ,UAAU,CAC9BqD,QAAM,CAAC4F,MAAM,EACbF,QAAQ,IAAI1F,QAAM,CAAC,gBAAgB,CAAC,EACpCZ,SACF,CAAC;EAED,MAAMyG,WAAW,GAAGb,IAAI,CAAChC,IAAI,GAAG,GAAG,GAAG,KAAK;AAC3C,EAAA,MAAM8C,SAAS,GAAGd,IAAI,CAAChC,IAAI,GACvB;IAAEA,IAAI,EAAEgC,IAAI,CAAChC,IAAI;IAAE5D,SAAS,EAAEY,QAAM,CAAC+F;AAAa,GAAC,GACnD;IAAE3G,SAAS,EAAEY,QAAM,CAAC+F;GAAc;;AAEtC;EACA,MAAMC,WAAW,GAAGA,mBAClB5H,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA6H,QAAA,qBACE7H,KAAA,CAAAC,aAAA,CAACwH,WAAW,EAAKC,SAAS,eACxB1H,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAK6H,GAAG,EAAElB,IAAI,CAACkB,GAAI;IAACC,GAAG,EAAEnB,IAAI,CAACmB;AAAI,GAAE,CACzB,CAAC,eACd/H,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACoG;GAAgB,eACrChI,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIe,SAAS,EAAEY,QAAM,CAACqG;AAAc,GAAA,EAAEpB,KAAU,CAAC,EAChDC,eAAe,iBACd9G,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACsG;GAAc,EAClCpB,eAAe,CAACN,QAAQ,KAAK,KAAK,iBACjCxG,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMe,SAAS,EAAEY,QAAM,CAACuG;AAAkB,GAAA,eACxCnI,KAAA,CAAAC,aAAA,CAACkD,cAAc,EAAA;AAACvC,IAAAA,IAAI,EAAE;AAAG,GAAE,CACvB,CACP,eACDZ,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMe,SAAS,EAAEY,QAAM,CAACwG;AAAkB,GAAA,EACvCtB,eAAe,CAACuB,IACb,CACH,CAEJ,CACL,CACH;;AAED;AACA,EAAA,IAAIf,QAAQ,EAAE;IACZ,oBACEtH,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQe,MAAAA,SAAS,EAAEuG;KAAc,eAC/BvH,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;MAAKe,SAAS,EAAEY,QAAM,CAAC0G;KAAkB,eAEvCtI,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;MAAKe,SAAS,EAAEY,QAAM,CAAC2G;AAAc,KAAA,eAEnCvI,KAAA,CAAAC,aAAA,CAACkF,eAAe,EAAA;AAACC,MAAAA,OAAO,EAAE4B,iBAAkB;AAAC3B,MAAAA,KAAK,EAAE0B;AAAW,KAAE,CAAC,eAGlE/G,KAAA,CAAAC,aAAA,CAACkF,eAAe,EAAA;AAACC,MAAAA,OAAO,EAAE8B,cAAe;AAAC7B,MAAAA,KAAK,EAAE4B;AAAa,KAAE,CAC7D,CAAC,EAGLG,iBAAiB,iBAChBpH,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;MAAKe,SAAS,EAAEY,QAAM,CAAC4G;KAAY,eACjCxI,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;MAAG2E,IAAI,EAAEwC,iBAAiB,CAACxC,IAAK;AAAC6D,MAAAA,KAAK,EAAE;AAAEC,QAAAA,cAAc,EAAE,MAAM;AAAEjG,QAAAA,KAAK,EAAE;AAAO;AAAE,KAAA,eAChFzC,KAAA,CAAAC,aAAA,CAACS,MAAM,EAAA;AAACF,MAAAA,OAAO,EAAC,WAAW;AAACiI,MAAAA,KAAK,EAAE;AAAEhG,QAAAA,KAAK,EAAE;AAAO;AAAE,KAAA,EAClD2E,iBAAiB,CAACnC,KACb,CACP,CACA,CACN,EAGAkC,WAAW,CAACxI,MAAM,GAAG,CAAC,iBACrBqB,KAAA,CAAAC,aAAA,CAAC2F,iBAAiB,EAAA;AAACP,MAAAA,KAAK,EAAE8B;AAAY,KAAE,CACzC,eAGDnH,KAAA,CAAAC,aAAA,CAAC+F,YAAY,EAAA;AACXX,MAAAA,KAAK,EAAEgC,WAAY;AACnBpB,MAAAA,SAAS,EAAEA,SAAU;AACrBC,MAAAA,eAAe,EAAEA;AAAgB,KAClC,CAAC,eAGFlG,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;MAAKe,SAAS,EAAEY,QAAM,CAAC+G;KAAqB,eAC1C3I,KAAA,CAAAC,aAAA,CAAC2H,WAAW,EAAA,IAAE,CACX,CACF,CACC,CAAC;AAEb,EAAA;;AAEA;EACA,oBACE5H,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQe,IAAAA,SAAS,EAAEuG;GAAc,eAC/BvH,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAAC0G;GAAkB,eAEvCtI,KAAA,CAAAC,aAAA,CAACwH,WAAW,EAAKC,SAAS,eACxB1H,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAK6H,GAAG,EAAElB,IAAI,CAACkB,GAAI;IAACC,GAAG,EAAEnB,IAAI,CAACmB;AAAI,GAAE,CACzB,CAAC,eAGd/H,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACgH;GAAa,eAElC5I,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACoG;GAAgB,eACrChI,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIe,SAAS,EAAEY,QAAM,CAACqG;AAAc,GAAA,EAAEpB,KAAU,CAAC,EAChDC,eAAe,iBACd9G,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACsG;GAAc,EAClCpB,eAAe,CAACN,QAAQ,KAAK,KAAK,iBACjCxG,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMe,SAAS,EAAEY,QAAM,CAACuG;AAAkB,GAAA,eACxCnI,KAAA,CAAAC,aAAA,CAACkD,cAAc,EAAA;AAACvC,IAAAA,IAAI,EAAE;AAAG,GAAE,CACvB,CACP,eACDZ,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMe,SAAS,EAAEY,QAAM,CAACwG;GAAkB,EACvCtB,eAAe,CAACuB,IACb,CACH,CAEJ,CAAC,eAGNrI,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAAC2G;AAAc,GAAA,eAEnCvI,KAAA,CAAAC,aAAA,CAACkF,eAAe,EAAA;AAACC,IAAAA,OAAO,EAAE4B,iBAAkB;AAAC3B,IAAAA,KAAK,EAAE0B;AAAW,GAAE,CAAC,eAGlE/G,KAAA,CAAAC,aAAA,CAACkF,eAAe,EAAA;AAACC,IAAAA,OAAO,EAAE8B,cAAe;AAAC7B,IAAAA,KAAK,EAAE4B;GAAa,EAE3DE,WAAW,CAACxI,MAAM,GAAG,CAAC,iBACrBqB,KAAA,CAAAC,aAAA,CAAC2F,iBAAiB,EAAA;AAACP,IAAAA,KAAK,EAAE8B;GAAc,CAE3B,CACd,CACF,CAAC,eAGNnH,KAAA,CAAAC,aAAA,CAAC+F,YAAY,EAAA;AACXX,IAAAA,KAAK,EAAEgC,WAAY;AACnBpB,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,eAAe,EAAEA;GAClB,CACE,CACC,CAAC;AAEb;;;;AC1hBO,MAAM2C,cAA6C,GAAGA,CAAC;EAC5DC,IAAI;EACJC,QAAQ;EACRjI,OAAO;AACPE,EAAAA;AACF,CAAC,KAAK;EACJ,MAAMyD,WAAW,GAAGA,MAAM;IACxB,IAAI,CAACsE,QAAQ,EAAE;MACbjI,OAAO,CAACgI,IAAI,CAAC;AACf,IAAA;EACF,CAAC;EAED,MAAME,aAAa,GAAIC,KAA0B,IAAK;IACpD,IAAIA,KAAK,CAAC3J,GAAG,KAAK,OAAO,IAAI2J,KAAK,CAAC3J,GAAG,KAAK,GAAG,EAAE;MAC9C2J,KAAK,CAACtE,cAAc,EAAE;AACtBF,MAAAA,WAAW,EAAE;AACf,IAAA;EACF,CAAC;EAED,oBACEzE,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIe,SAAS,EAAEY,QAAM,CAACsH;GAAe,eACnClJ,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AACEc,IAAAA,IAAI,EAAC,QAAQ;AACbD,IAAAA,OAAO,EAAE2D,WAAY;AACrB0E,IAAAA,SAAS,EAAEH,aAAc;AACzBhI,IAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAACwH,UAAU,IAAIL,QAAQ,GAAGnH,QAAM,CAACyH,gBAAgB,GAAG,EAAE,IAAIrI,SAAS,IAAI,EAAE,CAAA,CAAG;AAChG,IAAA,cAAA,EAAc+H,QAAQ,GAAG,MAAM,GAAG9G,SAAU;IAC5C,YAAA,EAAY,CAAA,KAAA,EAAQ6G,IAAI,CAAA,CAAG;AAC3BjI,IAAAA,QAAQ,EAAEkI,QAAS;AACnBO,IAAAA,QAAQ,EAAEP,QAAQ,GAAG,EAAE,GAAG;GAAE,EAE3BD,IACK,CACN,CAAC;AAET;;ACnCO,MAAMS,gBAAiD,GAAGA,CAAC;EAChEtE,KAAK;EACLpE,QAAQ;EACRC,OAAO;EACP0I,SAAS;EACTxI,SAAS;AACTE,EAAAA;AACF,CAAC,KAAK;EACJ,MAAM8H,aAAa,GAAIC,KAA0B,IAAK;IACpD,IAAIA,KAAK,CAAC3J,GAAG,KAAK,OAAO,IAAI2J,KAAK,CAAC3J,GAAG,KAAK,GAAG,EAAE;MAC9C2J,KAAK,CAACtE,cAAc,EAAE;MACtB,IAAI,CAAC9D,QAAQ,EAAE;AACbC,QAAAA,OAAO,EAAE;AACX,MAAA;AACF,IAAA;EACF,CAAC;EAED,oBACEd,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIe,SAAS,EAAEY,QAAM,CAACsH;GAAe,eACnClJ,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AACEc,IAAAA,IAAI,EAAC,QAAQ;AACbD,IAAAA,OAAO,EAAEA,OAAQ;AACjBqI,IAAAA,SAAS,EAAEH,aAAc;AACzBnI,IAAAA,QAAQ,EAAEA,QAAS;IACnBG,SAAS,EAAE,CAAA,EAAGY,QAAM,CAAC6H,SAAS,IAAI7H,QAAM,CAAC,CAAA,WAAA,EAAc4H,SAAS,CAAA,CAAE,CAAC,IAAI3I,QAAQ,GAAGe,QAAM,CAAC8H,iBAAiB,GAAG,EAAE,CAAA,CAAA,EAAI1I,SAAS,IAAI,EAAE,CAAA,CAAG;IACrI,YAAA,EAAYE,SAAS,IAAI+D,KAAM;AAC/BqE,IAAAA,QAAQ,EAAEzI,QAAQ,GAAG,EAAE,GAAG;AAAE,GAAA,EAE3B2I,SAAS,KAAK,UAAU,iBACvBxJ,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACEe,SAAS,EAAEY,QAAM,CAAC+H,OAAQ;AAC1BlH,IAAAA,KAAK,EAAC,GAAG;AACTC,IAAAA,MAAM,EAAC,IAAI;AACXC,IAAAA,OAAO,EAAC,UAAU;AAClBC,IAAAA,IAAI,EAAC,MAAM;AACXC,IAAAA,KAAK,EAAC,4BAA4B;IAClC,aAAA,EAAY;GAAM,eAElB7C,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AACE6C,IAAAA,CAAC,EAAC,eAAe;AACjBC,IAAAA,MAAM,EAAC,cAAc;AACrBC,IAAAA,WAAW,EAAC,GAAG;AACfC,IAAAA,aAAa,EAAC,OAAO;AACrBC,IAAAA,cAAc,EAAC;AAAO,GACvB,CACE,CACN,eACDlD,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA,IAAA,EAAOgF,KAAY,CAAC,EACnBuE,SAAS,KAAK,MAAM,iBACnBxJ,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACEe,SAAS,EAAEY,QAAM,CAAC+H,OAAQ;AAC1BlH,IAAAA,KAAK,EAAC,GAAG;AACTC,IAAAA,MAAM,EAAC,IAAI;AACXC,IAAAA,OAAO,EAAC,UAAU;AAClBC,IAAAA,IAAI,EAAC,MAAM;AACXC,IAAAA,KAAK,EAAC,4BAA4B;IAClC,aAAA,EAAY;GAAM,eAElB7C,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AACE6C,IAAAA,CAAC,EAAC,eAAe;AACjBC,IAAAA,MAAM,EAAC,cAAc;AACrBC,IAAAA,WAAW,EAAC,GAAG;AACfC,IAAAA,aAAa,EAAC,OAAO;AACrBC,IAAAA,cAAc,EAAC;GAChB,CACE,CAED,CACN,CAAC;AAET;;ACtEO,MAAM0G,kBAAqD,GAAGA,CAAC;AAAE5I,EAAAA;AAAU,CAAC,KAAK;EACtF,oBACEhB,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIe,SAAS,EAAE,GAAGY,QAAM,CAACsH,cAAc,CAAA,CAAA,EAAItH,QAAM,CAACiI,QAAQ,CAAA,CAAG;IAAC,aAAA,EAAY;GAAM,eAC9E7J,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMe,SAAS,EAAE,GAAGY,QAAM,CAACkI,YAAY,CAAA,CAAA,EAAI9I,SAAS,IAAI,EAAE,CAAA;GAAG,EAAC,KAAS,CACrE,CAAC;AAET;;ACHA;AACA;AACA;AACA,MAAM+I,mBAAmB,GAAGA,CAC1BC,WAAmB,EACnBC,UAAkB,EAClBC,eAAuB,KAC4B;EACnD,IAAID,UAAU,IAAIC,eAAe,EAAE;IACjC,OAAOnL,KAAK,CAACoL,IAAI,CAAC;AAAExL,MAAAA,MAAM,EAAEsL;KAAY,EAAE,CAACG,CAAC,EAAE3L,CAAC,KAAKA,CAAC,GAAG,CAAC,CAAC;AAC5D,EAAA;EAEA,MAAM4L,KAAqD,GAAG,EAAE;EAChE,MAAMC,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACN,eAAe,GAAG,CAAC,CAAC;;AAEnD;AACAG,EAAAA,KAAK,CAACI,IAAI,CAAC,CAAC,CAAC;EAEb,IAAIC,SAAS,GAAGH,IAAI,CAACI,GAAG,CAAC,CAAC,EAAEX,WAAW,GAAGM,WAAW,CAAC;AACtD,EAAA,IAAIM,OAAO,GAAGL,IAAI,CAACM,GAAG,CAACZ,UAAU,GAAG,CAAC,EAAED,WAAW,GAAGM,WAAW,CAAC;;AAEjE;AACA,EAAA,IAAIN,WAAW,IAAIM,WAAW,GAAG,CAAC,EAAE;AAClCM,IAAAA,OAAO,GAAGL,IAAI,CAACM,GAAG,CAACX,eAAe,GAAG,CAAC,EAAED,UAAU,GAAG,CAAC,CAAC;AACvDS,IAAAA,SAAS,GAAG,CAAC;AACf,EAAA;;AAEA;AACA,EAAA,IAAIV,WAAW,IAAIC,UAAU,GAAGK,WAAW,EAAE;AAC3CI,IAAAA,SAAS,GAAGH,IAAI,CAACI,GAAG,CAAC,CAAC,EAAEV,UAAU,GAAGC,eAAe,GAAG,CAAC,CAAC;IACzDU,OAAO,GAAGX,UAAU,GAAG,CAAC;AAC1B,EAAA;;AAEA;EACA,IAAIS,SAAS,GAAG,CAAC,EAAE;AACjBL,IAAAA,KAAK,CAACI,IAAI,CAAC,gBAAgB,CAAC;AAC9B,EAAA;;AAEA;EACA,KAAK,IAAIhM,CAAC,GAAGiM,SAAS,EAAEjM,CAAC,IAAImM,OAAO,EAAEnM,CAAC,EAAE,EAAE;AACzC4L,IAAAA,KAAK,CAACI,IAAI,CAAChM,CAAC,CAAC;AACf,EAAA;;AAEA;AACA,EAAA,IAAImM,OAAO,GAAGX,UAAU,GAAG,CAAC,EAAE;AAC5BI,IAAAA,KAAK,CAACI,IAAI,CAAC,cAAc,CAAC;AAC5B,EAAA;;AAEA;EACA,IAAIR,UAAU,GAAG,CAAC,EAAE;AAClBI,IAAAA,KAAK,CAACI,IAAI,CAACR,UAAU,CAAC;AACxB,EAAA;AAEA,EAAA,OAAOI,KAAK;AACd,CAAC;AAEM,MAAMS,UAAqC,GAAGA,CAAC;EACpDd,WAAW;EACXC,UAAU;EACVc,YAAY;AACZb,EAAAA,eAAe,GAAG,EAAE;AACpBc,EAAAA,YAAY,GAAG,IAAI;AACnBC,EAAAA,QAAQ,GAAG,IAAI;AACfC,EAAAA,aAAa,GAAG,UAAU;AAC1BC,EAAAA,SAAS,GAAG,MAAM;EAClBnK,SAAS;AACTE,EAAAA,SAAS,GAAG;AACd,CAAC,KAAK;EACJ,MAAMkK,WAAW,GAAGC,OAAO,CACzB,MAAMtB,mBAAmB,CAACC,WAAW,EAAEC,UAAU,EAAEC,eAAe,CAAC,EACnE,CAACF,WAAW,EAAEC,UAAU,EAAEC,eAAe,CAC3C,CAAC;EAED,MAAMoB,gBAAgB,GAAIxC,IAAY,IAAK;IACzC,IAAIA,IAAI,IAAI,CAAC,IAAIA,IAAI,IAAImB,UAAU,IAAInB,IAAI,KAAKkB,WAAW,EAAE;MAC3De,YAAY,CAACjC,IAAI,CAAC;AACpB,IAAA;EACF,CAAC;EAED,MAAMyC,cAAc,GAAGA,MAAM;AAC3BD,IAAAA,gBAAgB,CAACtB,WAAW,GAAG,CAAC,CAAC;EACnC,CAAC;EAED,MAAMwB,UAAU,GAAGA,MAAM;AACvBF,IAAAA,gBAAgB,CAACtB,WAAW,GAAG,CAAC,CAAC;EACnC,CAAC;;AAED;EACA,IAAIC,UAAU,IAAI,CAAC,EAAE;AACnB,IAAA,OAAO,IAAI;AACb,EAAA;EAEA,oBACEjK,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACEe,SAAS,EAAE,GAAGY,QAAM,CAAC6J,UAAU,CAAA,CAAA,EAAIzK,SAAS,IAAI,EAAE,CAAA,CAAG;AACrD,IAAA,YAAA,EAAYE,SAAU;AACtBwK,IAAAA,IAAI,EAAC;GAAY,eAEjB1L,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIe,SAAS,EAAEY,QAAM,CAAC+J;AAAe,GAAA,EAClCX,YAAY,iBACXhL,KAAA,CAAAC,aAAA,CAACsJ,gBAAgB,EAAA;AACftE,IAAAA,KAAK,EAAEiG,aAAc;IACrBrK,QAAQ,EAAEmJ,WAAW,KAAK,CAAE;AAC5BlJ,IAAAA,OAAO,EAAEyK,cAAe;AACxB/B,IAAAA,SAAS,EAAC,UAAU;AACpBtI,IAAAA,SAAS,EAAC;GACX,CACF,EAEAkK,WAAW,CAAC3F,GAAG,CAAC,CAACqD,IAAI,EAAEnD,KAAK,KAAK;AAChC,IAAA,IAAImD,IAAI,KAAK,gBAAgB,IAAIA,IAAI,KAAK,cAAc,EAAE;AACxD,MAAA,oBAAO9I,KAAA,CAAAC,aAAA,CAAC2J,kBAAkB,EAAA;QAACtK,GAAG,EAAE,YAAYqG,KAAK,CAAA;AAAG,OAAE,CAAC;AACzD,IAAA;AAEA,IAAA,oBACE3F,KAAA,CAAAC,aAAA,CAAC4I,cAAc,EAAA;AACbvJ,MAAAA,GAAG,EAAEwJ,IAAK;AACVA,MAAAA,IAAI,EAAEA,IAAK;MACXC,QAAQ,EAAED,IAAI,KAAKkB,WAAY;AAC/BlJ,MAAAA,OAAO,EAAEwK;AAAiB,KAC3B,CAAC;EAEN,CAAC,CAAC,EAEDL,QAAQ,iBACPjL,KAAA,CAAAC,aAAA,CAACsJ,gBAAgB,EAAA;AACftE,IAAAA,KAAK,EAAEkG,SAAU;IACjBtK,QAAQ,EAAEmJ,WAAW,KAAKC,UAAW;AACrCnJ,IAAAA,OAAO,EAAE0K,UAAW;AACpBhC,IAAAA,SAAS,EAAC,MAAM;AAChBtI,IAAAA,SAAS,EAAC;GACX,CAED,CACD,CAAC;AAEV;;;;;;AC3IO,MAAM0K,KAA2B,GAAGA,CAAC;EAC1C9D,GAAG;EACHC,GAAG;EACHtF,KAAK;EACLC,MAAM;AACNmJ,EAAAA,OAAO,GAAG,MAAM;AAChBC,EAAAA,QAAQ,GAAG,OAAO;AAClBC,EAAAA,SAAS,GAAG,OAAO;AACnBC,EAAAA,cAAc,GAAG,QAAQ;EACzBC,WAAW;AACXC,EAAAA,YAAY,GAAG,KAAK;EACpBC,WAAW;EACXC,MAAM;EACNC,OAAO;AACPrL,EAAAA,SAAS,GAAG,EAAE;EACdsL,MAAM;AACNC,EAAAA;AACF,CAAC,KAAK;EACJ,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGC,QAAQ,CAAC,IAAI,CAAC;EAChD,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGF,QAAQ,CAAC,KAAK,CAAC;EAC/C,MAAM,CAACG,UAAU,EAAEC,aAAa,CAAC,GAAGJ,QAAQ,CAAC5E,GAAG,CAAC;AAEjD,EAAA,MAAMiF,UAAU,GAAGC,WAAW,CAAC,MAAM;IACnCP,YAAY,CAAC,KAAK,CAAC;IACnBG,WAAW,CAAC,KAAK,CAAC;AAClBR,IAAAA,MAAM,IAAI;AACZ,EAAA,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;AAEZ,EAAA,MAAMa,WAAW,GAAGD,WAAW,CAAC,MAAM;IACpCP,YAAY,CAAC,KAAK,CAAC;IACnBG,WAAW,CAAC,IAAI,CAAC;;AAEjB;AACA,IAAA,IAAIT,WAAW,IAAIU,UAAU,KAAKV,WAAW,EAAE;MAC7CW,aAAa,CAACX,WAAW,CAAC;MAC1BS,WAAW,CAAC,KAAK,CAAC;MAClBH,YAAY,CAAC,IAAI,CAAC;AACpB,IAAA,CAAC,MAAM;AACLJ,MAAAA,OAAO,IAAI;AACb,IAAA;EACF,CAAC,EAAE,CAACF,WAAW,EAAEU,UAAU,EAAER,OAAO,CAAC,CAAC;;AAEtC;EACA,MAAMa,kBAAkB,GAAGhB,YAAY,GACnC;AAAEnE,IAAAA,GAAG,EAAE,EAAE;AAAE,IAAA,aAAa,EAAE,IAAa;AAAE2D,IAAAA,IAAI,EAAE;AAAwB,GAAC,GACxE;AAAE3D,IAAAA;GAAK;AAEX,EAAA,MAAMoF,cAAmC,GAAG;AAC1C,IAAA,IAAIlB,WAAW,IAAI;AAAEA,MAAAA;AAAY,KAAC,CAAC;AACnC,IAAA,IAAIxJ,KAAK,IAAI;MAAEA,KAAK,EAAE,OAAOA,KAAK,KAAK,QAAQ,GAAG,CAAA,EAAGA,KAAK,CAAA,EAAA,CAAI,GAAGA;AAAM,KAAC,CAAC;AACzE,IAAA,IAAIC,MAAM,IAAI;MAAEA,MAAM,EAAE,OAAOA,MAAM,KAAK,QAAQ,GAAG,CAAA,EAAGA,MAAM,CAAA,EAAA,CAAI,GAAGA;KAAQ;GAC9E;AAED,EAAA,MAAM0K,UAA+B,GAAG;IACtCrB,SAAS;AACTC,IAAAA;GACD;EAED,oBACEhM,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACEe,SAAS,EAAE,GAAGY,QAAM,CAACyL,cAAc,CAAA,CAAA,EAAIrM,SAAS,CAAA,CAAA,EAAIwL,SAAS,GAAG5K,QAAM,CAACiK,OAAO,GAAG,EAAE,CAAA,CAAA,EAAIc,QAAQ,GAAG/K,QAAM,CAAC0L,KAAK,GAAG,EAAE,CAAA,CAAG;AACtH7E,IAAAA,KAAK,EAAE0E;AAAe,GAAA,EAErBX,SAAS,iBACRxM,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAAC2L,QAAS;IAAC,aAAA,EAAY;GAAM,eACjDvN,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAAC4L;GAAU,CAC9B,CACN,EAEAb,QAAQ,IAAI,CAACR,WAAW,gBACvBnM,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAAC6L,UAAW;AAAC/B,IAAAA,IAAI,EAAC,KAAK;AAAC,IAAA,YAAA,EAAY3D,GAAG,IAAI;GAAuB,eACtF/H,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACE4C,IAAAA,KAAK,EAAC,4BAA4B;AAClCF,IAAAA,OAAO,EAAC,WAAW;AACnBC,IAAAA,IAAI,EAAC,MAAM;AACXG,IAAAA,MAAM,EAAC,cAAc;AACrBC,IAAAA,WAAW,EAAC,KAAK;AACjBC,IAAAA,aAAa,EAAC,OAAO;AACrBC,IAAAA,cAAc,EAAC,OAAO;IACtBlC,SAAS,EAAEY,QAAM,CAAC8L,SAAU;IAC5B,aAAA,EAAY;GAAM,eAElB1N,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMmD,IAAAA,CAAC,EAAC,GAAG;AAACC,IAAAA,CAAC,EAAC,GAAG;AAACZ,IAAAA,KAAK,EAAC,IAAI;AAACC,IAAAA,MAAM,EAAC,IAAI;AAACY,IAAAA,EAAE,EAAC,GAAG;AAACqK,IAAAA,EAAE,EAAC;AAAG,GAAE,CAAC,eACzD3N,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQ2N,IAAAA,EAAE,EAAC,KAAK;AAACC,IAAAA,EAAE,EAAC,KAAK;AAACC,IAAAA,CAAC,EAAC;AAAK,GAAE,CAAC,eACpC9N,KAAA,CAAAC,aAAA,CAAA,UAAA,EAAA;AAAU8N,IAAAA,MAAM,EAAC;AAAkB,GAAE,CAClC,CAAC,eACN/N,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMe,SAAS,EAAEY,QAAM,CAACoM;GAAU,EAAC,mBAAuB,CACvD,CAAC,gBAENhO,KAAA,CAAAC,aAAA,QAAAiC,QAAA,CAAA;AACE4F,IAAAA,GAAG,EAAE+E;AAAW,GAAA,EACZK,kBAAkB,EAAA;AACtBzK,IAAAA,KAAK,EAAEA,KAAM;AACbC,IAAAA,MAAM,EAAEA,MAAO;AACfmJ,IAAAA,OAAO,EAAEA,OAAQ;AACjBC,IAAAA,QAAQ,EAAEA,QAAS;AACnBM,IAAAA,MAAM,EAAEW,UAAW;AACnBV,IAAAA,OAAO,EAAEY,WAAY;IACrBjM,SAAS,EAAEY,QAAM,CAACqM,KAAM;AACxBxF,IAAAA,KAAK,EAAE2E,UAAW;AAClBd,IAAAA,MAAM,EAAEA,MAAO;AACfC,IAAAA,KAAK,EAAEA;AAAM,GAAA,CACd,CAEA,CAAC;AAEV,CAAC;;ACxGM,MAAM2B,qBAA2D,GAAGA,CAAC;EAC1EC,EAAE;EACFC,QAAQ;EACRC,GAAG;EACHC,KAAK;EACLC,WAAW;EACXC,KAAK;EACL3M,MAAM;AACNb,EAAAA,SAAS,GAAG;AACd,CAAC,KAAK;EACJ,IAAI,CAACsN,KAAK,EAAE;AACV,IAAA,OAAO,IAAI;AACb,EAAA;EAEA,oBACEtO,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;AACE2E,IAAAA,IAAI,EAAEyJ,GAAI;AACVrN,IAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAAC6M,WAAW,CAAA,CAAA,EAAIzN,SAAS,CAAA,CAAG;AAChD,IAAA,YAAA,EAAY,iBAAiBsN,KAAK,CAAA;GAAG,eAErCtO,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKe,IAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAAC8M,cAAc,CAAA,CAAA,EAAIN,QAAQ,GAAGxM,QAAM,CAAC+M,SAAS,GAAG,EAAE,CAAA;AAAG,GAAA,EAC5EP,QAAQ,iBACPpO,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACgN;AAAa,GAAA,eAClC5O,KAAA,CAAAC,aAAA,CAAC2L,KAAK,EAAA;AAAC9D,IAAAA,GAAG,EAAEsG,QAAS;AAACrG,IAAAA,GAAG,EAAEuG;AAAM,GAAE,CAChC,CACN,eACDtO,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACiN;GAA+B,eACpD7O,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIe,SAAS,EAAEY,QAAM,CAACkN;AAAa,GAAA,EAAER,KAAU,CAAC,EAC/CC,WAAW,iBAAIvO,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;IAAGe,SAAS,EAAEY,QAAM,CAACmN;AAAmB,GAAA,EAAER,WAAe,CACtE,CAAC,eACNvO,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACoN;GAAuB,eAC5ChP,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;IAAGe,SAAS,EAAEY,QAAM,CAACqN;GAAa,EAAET,KAAK,IAAI,GAAO,CAAC,EACpD3M,MAAM,iBACL7B,KAAA,CAAAC,aAAA,CAACS,MAAM,EAAA;IAACM,SAAS,EAAEY,QAAM,CAACsN,aAAc;IAACpO,OAAO,EAAEe,MAAM,CAACf,OAAQ;AAACF,IAAAA,IAAI,EAAC;AAAa,GAAA,EACjFiB,MAAM,CAACoD,KACF,CAEP,CACF,CACJ,CAAC;AAER;;AAEA;AACO,MAAMkK,0BAA0B,GAAGjB,qBAAqB;;;;AC3C/D;AACA,MAAMkB,gBAAgB,GAAIhO,KAAU,IAAK;EACvC,MAAM;IAAEiO,KAAK;IAAE,GAAGC;AAAK,GAAC,GAAGlO,KAAK;AAEhC,EAAA,oBACEpB,KAAA,CAAAC,aAAA,CAACkP,0BAA0B,EAAA;IACzBd,GAAG,EAAEgB,KAAK,EAAEhB,GAAG,IAAIgB,KAAK,EAAE3J,IAAI,IAAI,GAAI;IACtC4I,KAAK,EAAEe,KAAK,EAAEE,IAAI,IAAIF,KAAK,EAAEf,KAAK,IAAI,EAAG;AACzCC,IAAAA,WAAW,EAAEc,KAAK,EAAEd,WAAW,IAAI,EAAG;IACtCC,KAAK,EAAEa,KAAK,EAAEG,UAAU,IAAIH,KAAK,EAAEb,KAAK,IAAI,EAAG;IAC/CJ,QAAQ,EAAEiB,KAAK,GAAG,aAAa,CAAC,IAAIA,KAAK,EAAEpB,KAAK,IAAI,EAAG;AACvDpM,IAAAA,MAAM,EAAE;AACNoD,MAAAA,KAAK,EAAEqK,IAAI,CAACG,GAAG,IAAI,cAAc;AACjC3O,MAAAA,OAAO,EAAEA,MAAMjB,MAAM,CAAC6P,IAAI,CAACL,KAAK,EAAEhB,GAAG,IAAIgB,KAAK,EAAE3J,IAAI,IAAI,GAAG,EAAE,QAAQ;AACvE;AAAE,GACH,CAAC;AAEN,CAAC;;AAED;AACO,MAAMiK,kBAAqD,GAAGA,CAAC;EACpExB,EAAE;EACFC,QAAQ;EACRE,KAAK;EACLC,WAAW;EACXC,KAAK;EACLoB,IAAI;EACJC,MAAM;EACNC,GAAG;AACH9O,EAAAA,SAAS,GAAG,EAAE;AACd+O,EAAAA;AACF,CAAC,KAAK;AACJ;EACA,MAAMC,OAAO,GAAGF,GAAG,IAAI;IACrB3B,EAAE;IACFG,KAAK;IACLC,WAAW;IACXC,KAAK;IACLoB,IAAI;AACJ3B,IAAAA,KAAK,EAAEG;GACR;EAED,oBACEpO,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACqO;AAAe,GAAA,eACpCjQ,KAAA,CAAAC,aAAA,CAACiQ,kBAAsB,EAAA;IACrBlP,SAAS,EAAE,CAAA,EAAGA,SAAS,CAAA,CAAG;AAC1BsN,IAAAA,KAAK,EAAEA,KAAM;AACbF,IAAAA,QAAQ,EAAEA,QAAS;AACnB+B,IAAAA,QAAQ,EAAE7B,KAAM;AAChBwB,IAAAA,GAAG,EAAEE,OAAQ;AACbH,IAAAA,MAAM,EAAEA,MAAO;AACfO,IAAAA,eAAe,EAAE,IAAK;IACtBL,oBAAoB,EAAEA,oBAAoB,IAAIX;AAAiB,GAChE,CACE,CAAC;AAEV,CAAC;;ACnDD;AACA;AACA,MAAMiB,kBAAkB,GAAIjP,KAAU,IAAK;EACzC,MAAM;IAAE0O,GAAG;IAAExB,KAAK;IAAEgC,QAAQ;IAAErB,YAAY;IAAEQ,GAAG;IAAEc,gBAAgB;IAAEvP,SAAS;AAAE4O,IAAAA;AAAK,GAAC,GAAGxO,KAAK;AAC5FoP,EAAAA,OAAO,CAACC,GAAG,CAACrP,KAAK,CAAC;AAClB;EACA,MAAMiN,GAAG,GAAGiC,QAAQ,IAAIR,GAAG,EAAEpK,IAAI,IAAI,GAAG;EACxC,MAAM0I,QAAQ,GAAG,EAAE;AACnB,EAAA,MAAMI,KAAK,GAAG+B,gBAAgB,GAAGtB,YAAY,IAAIa,GAAG,EAAEtB,KAAK,IAAI,EAAE,GAAG,EAAE;EACtE,MAAMM,YAAY,GAAGR,KAAK,IAAIwB,GAAG,EAAExB,KAAK,IAAI,EAAE;EAC9C,MAAMoC,WAAW,GAAGd,IAAI,IAAIE,GAAG,EAAEF,IAAI,IAAI,EAAE;AAC3C,EAAA,MAAMe,WAAW,GAAGlB,GAAG,IAAI,cAAc;AAEzC,EAAA,oBACEzP,KAAA,CAAAC,aAAA,CAACkP,0BAA0B,EAAA;AACzBf,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,GAAG,EAAEA,GAAI;AACTC,IAAAA,KAAK,EAAEQ,YAAa;AACpBP,IAAAA,WAAW,EAAEmC,WAAY;AACzBlC,IAAAA,KAAK,EAAEA,KAAM;AACb3M,IAAAA,MAAM,EAAE;AAAEoD,MAAAA,KAAK,EAAE0L,WAAW;MAAE7P,OAAO,EAAEA,MAAMjB,MAAM,CAAC6P,IAAI,CAACrB,GAAG,EAAE,QAAQ;KAAI;AAC1ErN,IAAAA,SAAS,EAAEA;AAAU,GACtB,CAAC;AAEN,CAAC;AAED,MAAM4P,yBAAyB,GAAIxP,KAAU,IAAK;EAChD,MAAM;IACJ0O,GAAG;IACHxB,KAAK;IACLgC,QAAQ;IACRrB,YAAY;IACZQ,GAAG;IACHc,gBAAgB;IAChBvP,SAAS;IACT4O,IAAI;IACJC,MAAM;AACNgB,IAAAA;AACF,GAAC,GAAGzP,KAAK;EACT,IAAI,CAACkN,KAAK,EAAE;AACV,IAAA,OAAO,IAAI;AACb,EAAA;AACA,EAAA,oBACEtO,KAAA,CAAAC,aAAA,CAAC0P,kBAAkB,EAAA;AACjBvB,IAAAA,QAAQ,EAAE0B,GAAG,EAAE7B,KAAK,IAAI,EAAG;AAC3BK,IAAAA,KAAK,EAAEA,KAAM;AACbC,IAAAA,WAAW,EAAEuB,GAAG,EAAEvB,WAAW,IAAI,EAAG;AACpCC,IAAAA,KAAK,EAAEsB,GAAG,EAAEtB,KAAK,IAAI,EAAE,IAAIS,YAAa;AACxCW,IAAAA,IAAI,EAAEE,GAAG,EAAEF,IAAI,IAAI,EAAE,IAAIA,IAAK;AAC9BE,IAAAA,GAAG,EAAEA,GAAI;AACT9O,IAAAA,SAAS,EAAEA,SAAU;AACrB6O,IAAAA,MAAM,EAAEA,MAAO;AACfiB,IAAAA,eAAe,EAAEhB,GAAG,EAAEe,gBAAgB,IAAIA;AAAiB,GAC5D,CAAC;AAEN,CAAC;AAEM,MAAME,2BAA2B,GAAI3P,KAAU,IAAK;AACzD,EAAA,MAAM4P,eAAe,GAAG;AACtBC,IAAAA,WAAW,EAAEZ,kBAAkB;AAC/Ba,IAAAA,kBAAkB,EAAEN;GACrB;EAED,oBAAO5Q,KAAA,CAAAC,aAAA,CAACkR,uBAAuB,EAAAjP,QAAA,KAAKd,KAAK,EAAA;AAAE4P,IAAAA,eAAe,EAAEA;AAAgB,GAAA,CAAE,CAAC;AACjF;;ACvEA;;AAaA,MAAMI,mBAAgD,GAAGA,CAAC;EACxDnM,KAAK;EACLnE,OAAO;AACPuQ,EAAAA,WAAW,GAAG,SAAS;EACvBzM,IAAI;EACJE,MAAM;AACN/D,EAAAA,IAAI,GAAG,QAAQ;EACfuQ,OAAO;AACP,EAAA,kBAAkB,EAAEC,UAAU;AAC9BvQ,EAAAA;AACF,CAAC,KAAK;AACJ;EACA,MAAMR,OAAO,GAAG6Q,WAAW,KAAK,WAAW,GAAG,WAAW,GAAG,SAAS;;AAErE;AACA,EAAA,IAAIC,OAAO,KAAK,GAAG,IAAI1M,IAAI,EAAE;IAC3B,oBACE5E,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;AACE2E,MAAAA,IAAI,EAAEA,IAAK;AACXE,MAAAA,MAAM,EAAEA,MAAO;AACf9D,MAAAA,SAAS,EAAEA,SAAU;AACrB,MAAA,kBAAA,EAAkBuQ,UAAW;AAC7BzQ,MAAAA,OAAO,EAAEA,OAAQ;AACjB2H,MAAAA,KAAK,EAAE;AACL+I,QAAAA,OAAO,EAAE,cAAc;AACvB9I,QAAAA,cAAc,EAAE;AAClB;AAAE,KAAA,eAEF1I,KAAA,CAAAC,aAAA,CAACS,MAAM,EAAA;AAACF,MAAAA,OAAO,EAAEA,OAAQ;AAACO,MAAAA,IAAI,EAAEA,IAAK;AAACH,MAAAA,IAAI,EAAC;KAAO,EAC/CqE,KACK,CACP,CAAC;AAER,EAAA;;AAEA;AACA,EAAA,oBACEjF,KAAA,CAAAC,aAAA,CAACS,MAAM,EAAA;AACLF,IAAAA,OAAO,EAAEA,OAAQ;AACjBO,IAAAA,IAAI,EAAEA,IAAK;IACXD,OAAO,EAAEA,OAAO,GAAI4D,CAAC,IAAK5D,OAAO,CAAC4D,CAAqB,CAAC,GAAGzC,SAAU;AACrEjB,IAAAA,SAAS,EAAEA,SAAU;AACrB,IAAA,kBAAA,EAAkBuQ,UAAW;AAC7B3Q,IAAAA,IAAI,EAAC;AAAO,GAAA,EAEXqE,KACK,CAAC;AAEb,CAAC;AAEM,MAAMwM,aAAa,GAAIrQ,KAAU,IAAK;EAC3C,oBACEpB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKe,IAAAA,SAAS,EAAC;GAAyB,eACtChB,KAAA,CAAAC,aAAA,CAACyR,MAAM,EAAAxP,QAAA,KAAKd,KAAK,EAAA;AAAEuQ,IAAAA,eAAe,EAAEP;AAAoB,GAAA,CAAE,CACvD,CAAC;AAEV;;;;ACjEO,MAAMQ,gBAAiD,GAAGA,CAAC;EAChE9Q,OAAO;AACPI,EAAAA,SAAS,GAAG,cAAc;AAC1BF,EAAAA,SAAS,GAAG;AACd,CAAC,KAAK;EACJ,oBACEhB,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AACEc,IAAAA,IAAI,EAAC,QAAQ;AACbD,IAAAA,OAAO,EAAEA,OAAQ;AACjB,IAAA,YAAA,EAAYI,SAAU;AACtBF,IAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAACiQ,WAAW,IAAI7Q,SAAS,CAAA;GAAG,eAEhDhB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACE4C,IAAAA,KAAK,EAAC,4BAA4B;AAClCF,IAAAA,OAAO,EAAC,WAAW;AACnBC,IAAAA,IAAI,EAAC,MAAM;AACXG,IAAAA,MAAM,EAAC,cAAc;AACrBC,IAAAA,WAAW,EAAC,GAAG;AACfC,IAAAA,aAAa,EAAC,OAAO;AACrBC,IAAAA,cAAc,EAAC,OAAO;IACtB,aAAA,EAAY;GAAM,eAElBlD,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAM6R,IAAAA,EAAE,EAAC,IAAI;AAACC,IAAAA,EAAE,EAAC,GAAG;AAACC,IAAAA,EAAE,EAAC,GAAG;AAACC,IAAAA,EAAE,EAAC;AAAI,GAAE,CAAC,eACtCjS,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAM6R,IAAAA,EAAE,EAAC,GAAG;AAACC,IAAAA,EAAE,EAAC,GAAG;AAACC,IAAAA,EAAE,EAAC,IAAI;AAACC,IAAAA,EAAE,EAAC;GAAM,CAClC,CACC,CAAC;AAEb;;AC/BO,MAAMC,WAAuC,GAAGA,CAAC;EACtDC,MAAM;EACNC,OAAO;AACP9D,EAAAA,KAAK,GAAG,QAAQ;EAChB3N,QAAQ;AACRK,EAAAA,SAAS,GAAG;AACd,CAAC,KAAK;AACJ,EAAA,MAAMqR,QAAQ,GAAGC,MAAM,CAAiB,IAAI,CAAC;AAC7C,EAAA,MAAMC,wBAAwB,GAAGD,MAAM,CAAqB,IAAI,CAAC;AAEjEE,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIL,MAAM,EAAE;AACV;AACAI,MAAAA,wBAAwB,CAACE,OAAO,GAAGC,QAAQ,CAACC,aAA4B;;AAExE;MACA,IAAIN,QAAQ,CAACI,OAAO,EAAE;AACpBJ,QAAAA,QAAQ,CAACI,OAAO,CAACG,KAAK,EAAE;AAC1B,MAAA;;AAEA;AACAF,MAAAA,QAAQ,CAACG,IAAI,CAACpK,KAAK,CAACqK,QAAQ,GAAG,QAAQ;AACzC,IAAA,CAAC,MAAM;AACL;AACAJ,MAAAA,QAAQ,CAACG,IAAI,CAACpK,KAAK,CAACqK,QAAQ,GAAG,EAAE;;AAEjC;MACA,IAAIP,wBAAwB,CAACE,OAAO,EAAE;AACpCF,QAAAA,wBAAwB,CAACE,OAAO,CAACG,KAAK,EAAE;AAC1C,MAAA;AACF,IAAA;AAEA,IAAA,OAAO,MAAM;AACXF,MAAAA,QAAQ,CAACG,IAAI,CAACpK,KAAK,CAACqK,QAAQ,GAAG,EAAE;IACnC,CAAC;AACH,EAAA,CAAC,EAAE,CAACX,MAAM,CAAC,CAAC;AAEZK,EAAAA,SAAS,CAAC,MAAM;IACd,MAAMO,YAAY,GAAI9J,KAAoB,IAAK;AAC7C,MAAA,IAAIA,KAAK,CAAC3J,GAAG,KAAK,QAAQ,IAAI6S,MAAM,EAAE;AACpCC,QAAAA,OAAO,EAAE;AACX,MAAA;IACF,CAAC;AAEDM,IAAAA,QAAQ,CAACM,gBAAgB,CAAC,SAAS,EAAED,YAAY,CAAC;IAClD,OAAO,MAAML,QAAQ,CAACO,mBAAmB,CAAC,SAAS,EAAEF,YAAY,CAAC;AACpE,EAAA,CAAC,EAAE,CAACZ,MAAM,EAAEC,OAAO,CAAC,CAAC;;AAErB;AACAI,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI,CAACL,MAAM,IAAI,CAACE,QAAQ,CAACI,OAAO,EAAE;AAElC,IAAA,MAAMS,KAAK,GAAGb,QAAQ,CAACI,OAAO;AAC9B,IAAA,MAAMU,iBAAiB,GAAGD,KAAK,CAACE,gBAAgB,CAC9C,0EACF,CAAC;AACD,IAAA,MAAMC,YAAY,GAAGF,iBAAiB,CAAC,CAAC,CAAC;IACzC,MAAMG,WAAW,GAAGH,iBAAiB,CAACA,iBAAiB,CAACxU,MAAM,GAAG,CAAC,CAAC;IAEnE,MAAM4U,SAAS,GAAItK,KAAoB,IAAK;AAC1C,MAAA,IAAIA,KAAK,CAAC3J,GAAG,KAAK,KAAK,EAAE;MAEzB,IAAI2J,KAAK,CAACuK,QAAQ,EAAE;AAClB;AACA,QAAA,IAAId,QAAQ,CAACC,aAAa,KAAKU,YAAY,EAAE;UAC3CpK,KAAK,CAACtE,cAAc,EAAE;UACtB2O,WAAW,EAAEV,KAAK,EAAE;AACtB,QAAA;AACF,MAAA,CAAC,MAAM;AACL;AACA,QAAA,IAAIF,QAAQ,CAACC,aAAa,KAAKW,WAAW,EAAE;UAC1CrK,KAAK,CAACtE,cAAc,EAAE;UACtB0O,YAAY,EAAET,KAAK,EAAE;AACvB,QAAA;AACF,MAAA;IACF,CAAC;AAEDM,IAAAA,KAAK,CAACF,gBAAgB,CAAC,SAAS,EAAEO,SAAS,CAAC;IAC5C,OAAO,MAAML,KAAK,CAACD,mBAAmB,CAAC,SAAS,EAAEM,SAAS,CAAC;AAC9D,EAAA,CAAC,EAAE,CAACpB,MAAM,CAAC,CAAC;AAEZ,EAAA,IAAI,CAACA,MAAM,EAAE,OAAO,IAAI;EAExB,MAAMsB,kBAAkB,GAAIxK,KAAuC,IAAK;AACtE,IAAA,IAAIA,KAAK,CAACnE,MAAM,KAAKmE,KAAK,CAACyK,aAAa,EAAE;AACxCtB,MAAAA,OAAO,EAAE;AACX,IAAA;EACF,CAAC;EAED,oBACEpS,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACEe,SAAS,EAAEY,QAAM,CAAC+R,OAAQ;AAC1B7S,IAAAA,OAAO,EAAE2S,kBAAmB;IAC5B,aAAA,EAAY;GAAM,eAElBzT,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACE2T,IAAAA,GAAG,EAAEvB,QAAS;AACd3G,IAAAA,IAAI,EAAC,QAAQ;AACb,IAAA,YAAA,EAAW,MAAM;AACjB,IAAA,YAAA,EAAY4C,KAAM;IAClBhF,QAAQ,EAAE,EAAG;AACbtI,IAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAACsR,KAAK,IAAIlS,SAAS,CAAA;GAAG,eAE1ChB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACiS;GAAO,eAC5B7T,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIe,SAAS,EAAEY,QAAM,CAAC0M;AAAM,GAAA,EAAEA,KAAU,CAAC,eACzCtO,KAAA,CAAAC,aAAA,CAAC2R,gBAAgB,EAAA;AAAC9Q,IAAAA,OAAO,EAAEsR;AAAQ,GAAE,CAClC,CAAC,eACNpS,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACkS;GAAQ,EAAEnT,QAAc,CAC5C,CACF,CAAC;AAEV;;;;AC7GO,MAAMoT,UAAqC,GAAGA,CAAC;AAAE/S,EAAAA,SAAS,GAAG;AAAG,CAAC,KAAK;EAC3E,oBACEhB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEe,IAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAACoS,UAAU,CAAA,CAAA,EAAIhT,SAAS,CAAA,CAAG;AAC/C6B,IAAAA,KAAK,EAAC,4BAA4B;AAClCF,IAAAA,OAAO,EAAC,WAAW;AACnBC,IAAAA,IAAI,EAAC,MAAM;AACXG,IAAAA,MAAM,EAAC,cAAc;AACrBC,IAAAA,WAAW,EAAC,GAAG;AACfC,IAAAA,aAAa,EAAC,OAAO;AACrBC,IAAAA,cAAc,EAAC,OAAO;IACtB,aAAA,EAAY;GAAM,eAElBlD,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQ2N,IAAAA,EAAE,EAAC,IAAI;AAACC,IAAAA,EAAE,EAAC,IAAI;AAACC,IAAAA,CAAC,EAAC;AAAG,GAAE,CAAC,eAChC9N,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAM6C,IAAAA,CAAC,EAAC;AAAkB,GAAE,CACzB,CAAC;AAEV;;ACZO,MAAMmR,WAAuC,GAAGA,CAAC;EACtDzU,KAAK;EACL0U,QAAQ;EACR/K,SAAS;AACTgL,EAAAA,WAAW,GAAG,kDAAkD;AAChEC,EAAAA,SAAS,GAAG,KAAK;AACjBpT,EAAAA,SAAS,GAAG;AACd,CAAC,KAAK;EACJ,MAAMqT,YAAY,GAAIpL,KAA0C,IAAK;AACnEiL,IAAAA,QAAQ,CAACjL,KAAK,CAACnE,MAAM,CAACtF,KAAK,CAAC;EAC9B,CAAC;EAED,oBACEQ,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;AACEc,IAAAA,IAAI,EAAC,MAAM;AACXvB,IAAAA,KAAK,EAAEA,KAAM;AACb0U,IAAAA,QAAQ,EAAEG,YAAa;AACvBlL,IAAAA,SAAS,EAAEA,SAAU;AACrBgL,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,SAAS,EAAEA,SAAU;AACrB,IAAA,YAAA,EAAW,QAAQ;AACnBpT,IAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAAC0S,WAAW,IAAItT,SAAS,CAAA;AAAG,GACjD,CAAC;AAEN;;ACzBO,MAAMuT,kBAAqD,GAAGA,CAAC;EACpEzT,OAAO;AACPD,EAAAA,QAAQ,GAAG,KAAK;AAChBK,EAAAA,SAAS,GAAG,QAAQ;AACpB+D,EAAAA,KAAK,GAAG,QAAQ;AAChBjE,EAAAA,SAAS,GAAG;AACd,CAAC,KAAK;EACJ,oBACEhB,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AACEc,IAAAA,IAAI,EAAC,QAAQ;AACbD,IAAAA,OAAO,EAAEA,OAAQ;AACjBD,IAAAA,QAAQ,EAAEA,QAAS;AACnB,IAAA,YAAA,EAAYK,SAAU;AACtBF,IAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAAC4S,YAAY,IAAIxT,SAAS,CAAA;AAAG,GAAA,EAEhDiE,KACK,CAAC;AAEb;;ACtBO,MAAMwP,SAAmC,GAAGA,CAAC;EAClDjV,KAAK;EACL0U,QAAQ;EACRQ,QAAQ;EACRP,WAAW;AACXC,EAAAA,SAAS,GAAG,KAAK;AACjBpT,EAAAA,SAAS,GAAG;AACd,CAAC,KAAK;EACJ,MAAM2T,YAAY,GAAI1L,KAAuC,IAAK;IAChEA,KAAK,CAACtE,cAAc,EAAE;AACtB+P,IAAAA,QAAQ,EAAE;EACZ,CAAC;EAED,MAAM1L,aAAa,GAAIC,KAA4C,IAAK;AACtE,IAAA,IAAIA,KAAK,CAAC3J,GAAG,KAAK,OAAO,EAAE;MACzB2J,KAAK,CAACtE,cAAc,EAAE;AACtB+P,MAAAA,QAAQ,EAAE;AACZ,IAAA;EACF,CAAC;EAED,oBACE1U,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMyU,IAAAA,QAAQ,EAAEC,YAAa;AAAC3T,IAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAACgT,SAAS,IAAI5T,SAAS,CAAA;GAAG,eAC1EhB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACiT;AAAa,GAAA,eAClC7U,KAAA,CAAAC,aAAA,CAAC8T,UAAU,EAAA,IAAE,CAAC,eACd/T,KAAA,CAAAC,aAAA,CAACgU,WAAW,EAAA;AACVzU,IAAAA,KAAK,EAAEA,KAAM;AACb0U,IAAAA,QAAQ,EAAEA,QAAS;AACnB/K,IAAAA,SAAS,EAAEH,aAAc;AACzBmL,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,SAAS,EAAEA;AAAU,GACtB,CACE,CAAC,eACNpU,KAAA,CAAAC,aAAA,CAACsU,kBAAkB,EAAA;AAACzT,IAAAA,OAAO,EAAE4T;AAAS,GAAE,CACpC,CAAC;AAEX;;;;ACjCO,MAAMI,YAAyC,GAAGA,CAAC;EACxDC,KAAK;EACLhU,IAAI;AACJC,EAAAA,SAAS,GAAG;AACd,CAAC,KAAK;AACJ,EAAA,MAAMiE,KAAK,GAAG8P,KAAK,KAAK,CAAC,GAAGhU,IAAI,CAACiU,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAGjU,IAAI;EAEpD,oBACEf,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMe,IAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAACqT,YAAY,IAAIjU,SAAS,CAAA;AAAG,GAAA,EACpD+T,KAAK,EAAC,GAAC,EAAC9P,KACL,CAAC;AAEX;;;;ACZO,MAAMiQ,gBAAiD,GAAGA,CAAC;EAChEpU,OAAO;AACPmE,EAAAA,KAAK,GAAG,iBAAiB;AACzBjE,EAAAA,SAAS,GAAG;AACd,CAAC,KAAK;EACJ,oBACEhB,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AACEc,IAAAA,IAAI,EAAC,QAAQ;AACbD,IAAAA,OAAO,EAAEA,OAAQ;AACjBE,IAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAACuT,YAAY,IAAInU,SAAS,CAAA;AAAG,GAAA,EAEhDiE,KAAK,eACNjF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACE4C,IAAAA,KAAK,EAAC,4BAA4B;AAClCF,IAAAA,OAAO,EAAC,WAAW;AACnBC,IAAAA,IAAI,EAAC,MAAM;AACXG,IAAAA,MAAM,EAAC,cAAc;AACrBC,IAAAA,WAAW,EAAC,GAAG;AACfC,IAAAA,aAAa,EAAC,OAAO;AACrBC,IAAAA,cAAc,EAAC,OAAO;IACtB,aAAA,EAAY;GAAM,eAElBlD,KAAA,CAAAC,aAAA,CAAA,UAAA,EAAA;AAAU8N,IAAAA,MAAM,EAAC;GAAkB,CAChC,CACC,CAAC;AAEb;;;;AC7BO,MAAMqH,aAA2C,GAAGA,CAAC;EAC1D9G,KAAK;EACLyG,KAAK;EACLvI,SAAS;EACTc,KAAK;EACL+H,QAAQ;EACR1U,QAAQ;AACRK,EAAAA,SAAS,GAAG;AACd,CAAC,KAAK;EACJ,oBACEhB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKe,IAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAAC0T,aAAa,IAAItU,SAAS,CAAA;GAAG,eACrDhB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAAC2T;GAAa,eAClCvV,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIe,SAAS,EAAEY,QAAM,CAAC4T;AAAY,GAAA,EAAElH,KAAU,CAAC,EAC9C,CAAC9B,SAAS,IAAI,CAACc,KAAK,IAAIyH,KAAK,GAAG,CAAC,iBAChC/U,KAAA,CAAAC,aAAA,CAAC6U,YAAY,EAAA;AACXC,IAAAA,KAAK,EAAEA,KAAM;AACbhU,IAAAA,IAAI,EAAEuN,KAAK,CAACmH,WAAW,EAAE,CAACpW,QAAQ,CAAC,SAAS,CAAC,GAAG,UAAU,GAAG;AAAU,GACxE,CAEA,CAAC,EAELmN,SAAS,iBACRxM,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAAC8T;GAAa,eAClC1V,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAAC+T,OAAQ;IAAC,YAAA,EAAW;GAAc,CAAC,eAC1D3V,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA,IAAA,EAAG,UAAQ,EAACqO,KAAK,CAACmH,WAAW,EAAE,EAAC,KAAM,CACnC,CACN,EAEAnI,KAAK,iBACJtN,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAAC6L;GAAW,eAChCzN,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA,IAAA,EAAIqN,KAAS,CACV,CACN,EAEA,CAACd,SAAS,IAAI,CAACc,KAAK,IAAIyH,KAAK,KAAK,CAAC,iBAClC/U,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACgU;AAAW,GAAA,eAChC5V,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA,IAAA,EAAG,KAAG,EAACqO,KAAK,CAACmH,WAAW,EAAE,EAAC,QAAS,CACjC,CACN,EAEA,CAACjJ,SAAS,IAAI,CAACc,KAAK,IAAIyH,KAAK,GAAG,CAAC,iBAChC/U,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA6H,QAAA,EAAA,IAAA,eACE7H,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACiU;AAAY,GAAA,EAAElV,QAAc,CAAC,eACpDX,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACkU;AAAa,GAAA,eAClC9V,KAAA,CAAAC,aAAA,CAACiV,gBAAgB,EAAA;AAACpU,IAAAA,OAAO,EAAEuU,QAAS;AAACpQ,IAAAA,KAAK,EAAE,CAAA,QAAA,EAAWqJ,KAAK,CAACmH,WAAW,EAAE,CAAA;GAAK,CAC5E,CACL,CAED,CAAC;AAEV;;;;ACpDO,MAAMM,qBAA2D,GAAGA,CAAC;EAC1E5H,EAAE;EACFG,KAAK;EACLD,GAAG;EACH2H,QAAQ;EACRC,IAAI;EACJC,OAAO;AACPlV,EAAAA,SAAS,GAAG;AACd,CAAC,KAAK;EACJ,oBACEhB,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;AACE2E,IAAAA,IAAI,EAAEyJ,GAAI;AACVrN,IAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAACuU,WAAW,CAAA,CAAA,EAAInV,SAAS,CAAA,CAAG;AAChD,IAAA,YAAA,EAAY,iBAAiBsN,KAAK,CAAA;GAAG,eAErCtO,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACwU;AAAY,GAAA,EAChCJ,QAAQ,iBAAIhW,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMe,SAAS,EAAEY,QAAM,CAACyU;AAAgB,GAAA,EAAEL,QAAe,CAAC,EACtEC,IAAI,iBAAIjW,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMe,SAAS,EAAEY,QAAM,CAAC0U;AAAgB,GAAA,EAAEL,IAAW,CAC3D,CAAC,eACNjW,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIe,SAAS,EAAEY,QAAM,CAAC2U;AAAa,GAAA,EAAEjI,KAAU,CAAC,EAC/C4H,OAAO,iBAAIlW,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;IAAGe,SAAS,EAAEY,QAAM,CAAC4U;GAAe,EAAEN,OAAW,CAC5D,CAAC;AAER;;;;ACnBO,MAAMO,6BAA2E,GAAGA,CAAC;EAC1FC,KAAK;EACLC,QAAQ;EACRC,QAAQ;EACRC,iBAAiB;EACjBC,iBAAiB;EACjBC,aAAa;EACbC,aAAa;EACbC,gBAAgB;EAChBC,gBAAgB;AAChBC,EAAAA;AACF,CAAC,KAAK;EACJ,MAAMC,YAAY,GAAGT,QAAQ,CAAChY,MAAM,GAAGiY,QAAQ,CAACjY,MAAM;AACtD,EAAA,MAAM0Y,UAAU,GAAGD,YAAY,GAAG,CAAC;EACnC,MAAME,kBAAkB,GAAGD,UAAU,IAAI,CAACR,iBAAiB,IAAI,CAACC,iBAAiB;;AAEjF;EACA,MAAMS,eAAe,GAAGZ,QAAQ,CAAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;EAC5C,MAAMwC,eAAe,GAAGZ,QAAQ,CAAC5B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;EAE5C,oBACEhV,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAAC6V;AAAqB,GAAA,EACzCf,KAAK,iBACJ1W,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAAC8V;GAAY,eACjC1X,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIe,SAAS,EAAEY,QAAM,CAAC+V;AAAU,GAAA,EAAC,cACnB,eAAA3X,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMe,SAAS,EAAEY,QAAM,CAACgW;AAAe,GAAA,EAAC,IAAC,EAAClB,KAAK,EAAC,IAAO,CACjE,CAAC,EACJY,kBAAkB,iBACjBtX,KAAA,CAAAC,aAAA,CAACiV,gBAAgB,EAAA;AAACpU,IAAAA,OAAO,EAAEqW,gBAAiB;AAAClS,IAAAA,KAAK,EAAC;AAAiB,GAAE,CAErE,CACN,eAEDjF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACiW;AAAY,GAAA,eACjC7X,KAAA,CAAAC,aAAA,CAACmV,aAAa,EAAA;AACZ9G,IAAAA,KAAK,EAAC,UAAU;IAChByG,KAAK,EAAE4B,QAAQ,CAAChY,MAAO;AACvB6N,IAAAA,SAAS,EAAEqK,iBAAkB;AAC7BvJ,IAAAA,KAAK,EAAEyJ,aAAc;AACrB1B,IAAAA,QAAQ,EAAE4B;AAAiB,GAAA,EAE1BM,eAAe,CAAC9R,GAAG,CAAEqS,OAAO,iBAC3B9X,KAAA,CAAAC,aAAA,CAACiO,qBAAqB,EAAAhM,QAAA,CAAA;IAAC5C,GAAG,EAAEwY,OAAO,CAAC3J;GAAG,EAAK2J,OAAO,CAAG,CACvD,CACY,CAAC,eAEhB9X,KAAA,CAAAC,aAAA,CAACmV,aAAa,EAAA;AACZ9G,IAAAA,KAAK,EAAC,SAAS;IACfyG,KAAK,EAAE6B,QAAQ,CAACjY,MAAO;AACvB6N,IAAAA,SAAS,EAAEsK,iBAAkB;AAC7BxJ,IAAAA,KAAK,EAAE0J,aAAc;AACrB3B,IAAAA,QAAQ,EAAE6B;AAAiB,GAAA,EAE1BM,eAAe,CAAC/R,GAAG,CAAEqO,OAAO,iBAC3B9T,KAAA,CAAAC,aAAA,CAAC8V,qBAAqB,EAAA7T,QAAA,CAAA;IAAC5C,GAAG,EAAEwU,OAAO,CAAC3F;AAAG,GAAA,EAAK2F,OAAO,CAAG,CACvD,CACY,CACZ,CACF,CAAC;AAEV;;;;AChEA;AACA;AACA;AACO,MAAMiE,YAAyC,GAAGA,CAAC;EACxDvY,KAAK;EACL0U,QAAQ;AACRC,EAAAA,WAAW,GAAG,QAAQ;AACtBnT,EAAAA;AACF,CAAC,KAAK;EACJ,MAAMqT,YAAY,GAAI3P,CAAsC,IAAK;AAC/DwP,IAAAA,QAAQ,CAACxP,CAAC,CAACI,MAAM,CAACtF,KAAK,CAAC;EAC1B,CAAC;EAED,MAAMwY,WAAW,GAAGA,MAAM;IACxB9D,QAAQ,CAAC,EAAE,CAAC;EACd,CAAC;EAED,oBACElU,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAE,GAAGY,QAAM,CAACqW,YAAY,CAAA,CAAA,EAAIjX,SAAS,IAAI,EAAE,CAAA;GAAG,eAC1DhB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACEe,SAAS,EAAEY,QAAM,CAACoS,UAAW;AAC7BvR,IAAAA,KAAK,EAAC,IAAI;AACVC,IAAAA,MAAM,EAAC,IAAI;AACXC,IAAAA,OAAO,EAAC,WAAW;AACnBC,IAAAA,IAAI,EAAC,MAAM;AACXC,IAAAA,KAAK,EAAC,4BAA4B;IAClC,aAAA,EAAY;GAAM,eAElB7C,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AACE6C,IAAAA,CAAC,EAAC,8GAA8G;AAChHC,IAAAA,MAAM,EAAC,cAAc;AACrBC,IAAAA,WAAW,EAAC,GAAG;AACfC,IAAAA,aAAa,EAAC,OAAO;AACrBC,IAAAA,cAAc,EAAC;AAAO,GACvB,CAAC,eACFlD,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AACE6C,IAAAA,CAAC,EAAC,kBAAkB;AACpBC,IAAAA,MAAM,EAAC,cAAc;AACrBC,IAAAA,WAAW,EAAC,GAAG;AACfC,IAAAA,aAAa,EAAC,OAAO;AACrBC,IAAAA,cAAc,EAAC;AAAO,GACvB,CACE,CAAC,eACNlD,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;AACEc,IAAAA,IAAI,EAAC,MAAM;AACXvB,IAAAA,KAAK,EAAEA,KAAM;AACb0U,IAAAA,QAAQ,EAAEG,YAAa;AACvBF,IAAAA,WAAW,EAAEA,WAAY;IACzBnT,SAAS,EAAEY,QAAM,CAAC0S,WAAY;IAC9B,YAAA,EAAYH;AAAY,GACzB,CAAC,EACD3U,KAAK,iBACJQ,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AACEc,IAAAA,IAAI,EAAC,QAAQ;AACbD,IAAAA,OAAO,EAAEkX,WAAY;IACrBhX,SAAS,EAAEY,QAAM,CAACsW,WAAY;IAC9B,YAAA,EAAW;GAAc,eAEzBlY,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEwC,IAAAA,KAAK,EAAC,IAAI;AACVC,IAAAA,MAAM,EAAC,IAAI;AACXC,IAAAA,OAAO,EAAC,WAAW;AACnBC,IAAAA,IAAI,EAAC,MAAM;AACXC,IAAAA,KAAK,EAAC;GAA4B,eAElC7C,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AACE6C,IAAAA,CAAC,EAAC,kBAAkB;AACpBC,IAAAA,MAAM,EAAC,cAAc;AACrBC,IAAAA,WAAW,EAAC,GAAG;AACfC,IAAAA,aAAa,EAAC,OAAO;AACrBC,IAAAA,cAAc,EAAC;GAChB,CACE,CACC,CAEP,CAAC;AAEV;;AC7EA;AACA;AACA;AACO,MAAMiV,UAAqC,GAAGA,CAAC;EAAE3Y,KAAK;EAAE4Y,QAAQ;AAAEpX,EAAAA;AAAU,CAAC,KAAK;EACvF,MAAMqT,YAAY,GAAGA,MAAM;AACzB+D,IAAAA,QAAQ,CAAC5Y,KAAK,CAACA,KAAK,CAAC;EACvB,CAAC;EAED,MAAMwJ,aAAa,GAAItE,CAAsB,IAAK;IAChD,IAAIA,CAAC,CAACpF,GAAG,KAAK,OAAO,IAAIoF,CAAC,CAACpF,GAAG,KAAK,GAAG,EAAE;MACtCoF,CAAC,CAACC,cAAc,EAAE;AAClByT,MAAAA,QAAQ,CAAC5Y,KAAK,CAACA,KAAK,CAAC;AACvB,IAAA;EACF,CAAC;EAED,oBACEQ,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;IAAOe,SAAS,EAAE,GAAGY,QAAM,CAACyW,UAAU,CAAA,CAAA,EAAIrX,SAAS,IAAI,EAAE,CAAA,CAAG;AAACmI,IAAAA,SAAS,EAAEH;GAAc,eACpFhJ,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;AACEc,IAAAA,IAAI,EAAC,UAAU;IACfuX,OAAO,EAAE9Y,KAAK,CAAC+Y,SAAU;AACzBrE,IAAAA,QAAQ,EAAEG,YAAa;IACvBrT,SAAS,EAAEY,QAAM,CAAC4W,cAAe;AACjC,IAAA,YAAA,EAAY,GAAGhZ,KAAK,CAACA,KAAK,CAAA,EAAA,EAAKA,KAAK,CAACuV,KAAK,CAAA,SAAA;AAAY,GACvD,CAAC,eACF/U,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMe,SAAS,EAAEY,QAAM,CAAC6W;AAAY,GAAA,EAAEjZ,KAAK,CAACA,KAAY,CAAC,eACzDQ,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMe,SAAS,EAAEY,QAAM,CAAC8W;GAAY,EAAC,GAAC,EAAClZ,KAAK,CAACuV,KAAK,EAAC,GAAO,CACrD,CAAC;AAEZ;;AC1BA;AACA;AACA;AACO,MAAM4D,eAA+C,GAAGA,CAAC;EAC9DC,KAAK;EACLC,UAAU;EACVT,QAAQ;EACRU,aAAa;AACb9X,EAAAA;AACF,CAAC,KAAK;EACJ,MAAM,CAAC+X,WAAW,EAAEC,cAAc,CAAC,GAAGtM,QAAQ,CAAC,EAAE,CAAC;;AAElD;AACA,EAAA,MAAMuM,cAAc,GAAG5N,OAAO,CAAC,MAAM;AACnC,IAAA,IAAI,CAAC0N,WAAW,CAACG,IAAI,EAAE,EAAE;MACvB,OAAON,KAAK,CAACO,MAAM;AACrB,IAAA;AACA,IAAA,MAAMzC,KAAK,GAAGqC,WAAW,CAACtD,WAAW,EAAE;IACvC,OAAOmD,KAAK,CAACO,MAAM,CAACC,MAAM,CAAE5Z,KAAK,IAAKA,KAAK,CAACA,KAAK,CAACiW,WAAW,EAAE,CAACpW,QAAQ,CAACqX,KAAK,CAAC,CAAC;EAClF,CAAC,EAAE,CAACkC,KAAK,CAACO,MAAM,EAAEJ,WAAW,CAAC,CAAC;EAE/B,MAAMM,YAAY,GAAGA,MAAM;AACzBjB,IAAAA,QAAQ,EAAE;AACV;AACA,IAAA,IAAIS,UAAU,EAAE;MACdG,cAAc,CAAC,EAAE,CAAC;AACpB,IAAA;EACF,CAAC;EAED,MAAMhQ,aAAa,GAAItE,CAAsB,IAAK;IAChD,IAAIA,CAAC,CAACpF,GAAG,KAAK,OAAO,IAAIoF,CAAC,CAACpF,GAAG,KAAK,GAAG,EAAE;MACtCoF,CAAC,CAACC,cAAc,EAAE;AAClB0U,MAAAA,YAAY,EAAE;AAChB,IAAA;EACF,CAAC;EAED,MAAMC,iBAAiB,GAAI9Z,KAAa,IAAK;AAC3CsZ,IAAAA,aAAa,CAACF,KAAK,CAACW,SAAS,EAAE/Z,KAAK,CAAC;EACvC,CAAC;EAED,oBACEQ,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAE,GAAGY,QAAM,CAAC4X,eAAe,CAAA,CAAA,EAAIxY,SAAS,IAAI,EAAE,CAAA;GAAG,eAC7DhB,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AACEc,IAAAA,IAAI,EAAC,QAAQ;AACbC,IAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAAC6X,eAAe,CAAA,CAAA,EAAIZ,UAAU,GAAGjX,QAAM,CAAC8X,uBAAuB,GAAG,EAAE,CAAA,CAAG;AAC3F5Y,IAAAA,OAAO,EAAEuY,YAAa;AACtBlQ,IAAAA,SAAS,EAAEH,aAAc;AACzB,IAAA,eAAA,EAAe6P,UAAW;IAC1B,eAAA,EAAe,CAAA,UAAA,EAAaD,KAAK,CAACzK,EAAE,CAAA;GAAG,eAEvCnO,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMe,SAAS,EAAEY,QAAM,CAAC+X;AAAe,GAAA,EAAEf,KAAK,CAAC3T,KAAY,CAAC,eAC5DjF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEe,IAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAACgY,aAAa,CAAA,CAAA,EAAIf,UAAU,GAAGjX,QAAM,CAACiY,qBAAqB,GAAG,EAAE,CAAA,CAAG;AACvFpX,IAAAA,KAAK,EAAC,IAAI;AACVC,IAAAA,MAAM,EAAC,IAAI;AACXC,IAAAA,OAAO,EAAC,WAAW;AACnBC,IAAAA,IAAI,EAAC,MAAM;AACXC,IAAAA,KAAK,EAAC,4BAA4B;IAClC,aAAA,EAAY;GAAM,eAElB7C,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AACE6C,IAAAA,CAAC,EAAC,gBAAgB;AAClBC,IAAAA,MAAM,EAAC,cAAc;AACrBC,IAAAA,WAAW,EAAC,GAAG;AACfC,IAAAA,aAAa,EAAC,OAAO;AACrBC,IAAAA,cAAc,EAAC;GAChB,CACE,CACC,CAAC,EAER2V,UAAU,iBACT7Y,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKkO,IAAAA,EAAE,EAAE,CAAA,UAAA,EAAayK,KAAK,CAACzK,EAAE,CAAA,CAAG;IAACnN,SAAS,EAAEY,QAAM,CAACkY;AAAiB,GAAA,EAElElB,KAAK,CAACmB,UAAU,IAAInB,KAAK,CAACO,MAAM,CAACxa,MAAM,GAAG,CAAC,iBAC1CqB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACoY;AAAgB,GAAA,eACrCha,KAAA,CAAAC,aAAA,CAAC8X,YAAY,EAAA;AAACvY,IAAAA,KAAK,EAAEuZ,WAAY;AAAC7E,IAAAA,QAAQ,EAAE8E,cAAe;AAAC7E,IAAAA,WAAW,EAAC;AAAQ,GAAE,CAC/E,CACN,eAGDnU,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACqY;AAAW,GAAA,EAC/BhB,cAAc,CAACta,MAAM,GAAG,CAAC,GACxBsa,cAAc,CAACxT,GAAG,CAAEjG,KAAK,iBACvBQ,KAAA,CAAAC,aAAA,CAACkY,UAAU,EAAA;IAAC7Y,GAAG,EAAEE,KAAK,CAACA,KAAM;AAACA,IAAAA,KAAK,EAAEA,KAAM;AAAC4Y,IAAAA,QAAQ,EAAEkB;AAAkB,GAAE,CAC3E,CAAC,gBAEFtZ,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACsY;AAAU,GAAA,EAAC,kBAAqB,CAEtD,CACF,CAEJ,CAAC;AAEV;;ACzEA;AACA;AACA;AACO,MAAMC,gBAAiD,GAAGA,CAAC;EAChEZ,SAAS;EACT/Z,KAAK;EACLyF,KAAK;EACLmV,QAAQ;AACRpZ,EAAAA;AACF,CAAC,KAAK;EACJ,MAAMqZ,YAAY,GAAGA,MAAM;AACzBD,IAAAA,QAAQ,CAACb,SAAS,EAAE/Z,KAAK,CAAC;EAC5B,CAAC;EAED,MAAMwJ,aAAa,GAAItE,CAAsB,IAAK;IAChD,IAAIA,CAAC,CAACpF,GAAG,KAAK,OAAO,IAAIoF,CAAC,CAACpF,GAAG,KAAK,GAAG,EAAE;MACtCoF,CAAC,CAACC,cAAc,EAAE;AAClB0V,MAAAA,YAAY,EAAE;AAChB,IAAA;EACF,CAAC;EAED,oBACEra,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAE,GAAGY,QAAM,CAAC0Y,gBAAgB,CAAA,CAAA,EAAItZ,SAAS,IAAI,EAAE,CAAA;GAAG,eAC9DhB,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMe,SAAS,EAAEY,QAAM,CAAC2Y;AAAS,GAAA,EAAEtV,KAAK,IAAIzF,KAAY,CAAC,eACzDQ,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AACEc,IAAAA,IAAI,EAAC,QAAQ;AACbD,IAAAA,OAAO,EAAEuZ,YAAa;AACtBlR,IAAAA,SAAS,EAAEH,aAAc;IACzBhI,SAAS,EAAEY,QAAM,CAAC4Y,eAAgB;IAClC,YAAA,EAAY,CAAA,OAAA,EAAUvV,KAAK,IAAIzF,KAAK,CAAA,OAAA;GAAU,eAE9CQ,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEwC,IAAAA,KAAK,EAAC,IAAI;AACVC,IAAAA,MAAM,EAAC,IAAI;AACXC,IAAAA,OAAO,EAAC,WAAW;AACnBC,IAAAA,IAAI,EAAC,MAAM;AACXC,IAAAA,KAAK,EAAC,4BAA4B;IAClC,aAAA,EAAY;GAAM,eAElB7C,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AACE6C,IAAAA,CAAC,EAAC,kBAAkB;AACpBC,IAAAA,MAAM,EAAC,cAAc;AACrBC,IAAAA,WAAW,EAAC,GAAG;AACfC,IAAAA,aAAa,EAAC,OAAO;AACrBC,IAAAA,cAAc,EAAC;GAChB,CACE,CACC,CACL,CAAC;AAEV;;ACpDA;AACA;AACA;AACO,MAAMuX,cAA6C,GAAGA,CAAC;EAC5D5K,MAAM;EACNuK,QAAQ;EACRM,UAAU;AACV1Z,EAAAA;AACF,CAAC,KAAK;AACJ;AACA,EAAA,MAAM2Z,cAAc,GAAGtP,OAAO,CAAC,MAAM;IACnC,MAAMuP,OAAuF,GAC3F,EAAE;AAEJ/K,IAAAA,MAAM,CAACgL,OAAO,CAAEjC,KAAK,IAAK;AACxBA,MAAAA,KAAK,CAACO,MAAM,CAAC0B,OAAO,CAAErb,KAAK,IAAK;QAC9B,IAAIA,KAAK,CAAC+Y,SAAS,EAAE;UACnBqC,OAAO,CAACnQ,IAAI,CAAC;YACX8O,SAAS,EAAEX,KAAK,CAACW,SAAS;YAC1B/Z,KAAK,EAAEA,KAAK,CAACA,KAAK;YAClByF,KAAK,EAAEzF,KAAK,CAACA,KAAK;YAClBsb,UAAU,EAAElC,KAAK,CAAC3T;AACpB,WAAC,CAAC;AACJ,QAAA;AACF,MAAA,CAAC,CAAC;AACJ,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO2V,OAAO;AAChB,EAAA,CAAC,EAAE,CAAC/K,MAAM,CAAC,CAAC;;AAEZ;AACA,EAAA,IAAI8K,cAAc,CAAChc,MAAM,KAAK,CAAC,EAAE;AAC/B,IAAA,OAAO,IAAI;AACb,EAAA;EAEA,MAAMoc,cAAc,GAAGA,MAAM;AAC3B,IAAA,IAAIL,UAAU,EAAE;AACdA,MAAAA,UAAU,EAAE;AACd,IAAA,CAAC,MAAM;AACL;AACAC,MAAAA,cAAc,CAACE,OAAO,CAAEzB,MAAM,IAAK;QACjCgB,QAAQ,CAAChB,MAAM,CAACG,SAAS,EAAEH,MAAM,CAAC5Z,KAAK,CAAC;AAC1C,MAAA,CAAC,CAAC;AACJ,IAAA;EACF,CAAC;EAED,oBACEQ,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAE,GAAGY,QAAM,CAAC+Y,cAAc,CAAA,CAAA,EAAI3Z,SAAS,IAAI,EAAE,CAAA;GAAG,eAC5DhB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACoZ;GAAqB,eAC1Chb,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIe,SAAS,EAAEY,QAAM,CAACqZ;GAAoB,EAAC,iBAEzC,EAACN,cAAc,CAAChc,MAAM,GAAG,CAAC,iBACxBqB,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMe,SAAS,EAAEY,QAAM,CAACsZ;AAAoB,GAAA,EAAC,GAAC,EAACP,cAAc,CAAChc,MAAM,EAAC,GAAO,CAE5E,CAAC,EACJgc,cAAc,CAAChc,MAAM,GAAG,CAAC,iBACxBqB,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AACEc,IAAAA,IAAI,EAAC,QAAQ;AACbD,IAAAA,OAAO,EAAEia,cAAe;IACxB/Z,SAAS,EAAEY,QAAM,CAACuZ,cAAe;IACjC,YAAA,EAAW;AAAmB,GAAA,EAC/B,WAEO,CAEP,CAAC,eAENnb,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACwZ;GAAmB,EACvCT,cAAc,CAAClV,GAAG,CAAE2T,MAAM,iBACzBpZ,KAAA,CAAAC,aAAA,CAACka,gBAAgB,EAAA;IACf7a,GAAG,EAAE,GAAG8Z,MAAM,CAACG,SAAS,CAAA,CAAA,EAAIH,MAAM,CAAC5Z,KAAK,CAAA,CAAG;IAC3C+Z,SAAS,EAAEH,MAAM,CAACG,SAAU;IAC5B/Z,KAAK,EAAE4Z,MAAM,CAAC5Z,KAAM;IACpByF,KAAK,EAAEmU,MAAM,CAACnU,KAAM;AACpBmV,IAAAA,QAAQ,EAAEA;GACX,CACF,CACE,CACF,CAAC;AAEV;;AClGA;AACA;AACA;AACO,MAAMiB,YAAyC,GAAGA,CAAC;EACxDxL,MAAM;EACNyL,aAAa;AACb9O,EAAAA,SAAS,GAAG,KAAK;AACjBxL,EAAAA;AACF,CAAC,KAAK;AACJ;EACA,MAAM,CAACua,kBAAkB,EAAEC,qBAAqB,CAAC,GAAG9O,QAAQ,CAAc,MAAM;AAC9E;AACA,IAAA,MAAM+O,QAAQ,GAAG,IAAIC,GAAG,EAAU;AAClC7L,IAAAA,MAAM,CAACgL,OAAO,CAAEjC,KAAK,IAAK;MACxB,IAAIA,KAAK,CAAC+C,eAAe,EAAE;AACzBF,QAAAA,QAAQ,CAACG,GAAG,CAAChD,KAAK,CAACzK,EAAE,CAAC;AACxB,MAAA;AACF,IAAA,CAAC,CAAC;AACF,IAAA,OAAOsN,QAAQ;AACjB,EAAA,CAAC,CAAC;AAEF,EAAA,MAAMI,qBAAqB,GAAG7O,WAAW,CAAE8O,OAAe,IAAK;IAC7DN,qBAAqB,CAAEO,IAAI,IAAK;AAC9B,MAAA,MAAMC,IAAI,GAAG,IAAIN,GAAG,CAACK,IAAI,CAAC;AAC1B,MAAA,IAAIC,IAAI,CAACC,GAAG,CAACH,OAAO,CAAC,EAAE;AACrBE,QAAAA,IAAI,CAACE,MAAM,CAACJ,OAAO,CAAC;AACtB,MAAA,CAAC,MAAM;AACLE,QAAAA,IAAI,CAACJ,GAAG,CAACE,OAAO,CAAC;AACnB,MAAA;AACA,MAAA,OAAOE,IAAI;AACb,IAAA,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM1C,iBAAiB,GAAGtM,WAAW,CACnC,CAACuM,SAAiB,EAAE/Z,KAAa,KAAK;AACpC8b,IAAAA,aAAa,CAAC/B,SAAS,EAAE/Z,KAAK,CAAC;AACjC,EAAA,CAAC,EACD,CAAC8b,aAAa,CAChB,CAAC;EAED,MAAMa,kBAAkB,GAAGnP,WAAW,CACpC,CAACuM,SAAiB,EAAE/Z,KAAa,KAAK;AACpC8b,IAAAA,aAAa,CAAC/B,SAAS,EAAE/Z,KAAK,CAAC;AACjC,EAAA,CAAC,EACD,CAAC8b,aAAa,CAChB,CAAC;AAED,EAAA,MAAMP,cAAc,GAAG/N,WAAW,CAAC,MAAM;AACvC;AACA6C,IAAAA,MAAM,CAACgL,OAAO,CAAEjC,KAAK,IAAK;AACxBA,MAAAA,KAAK,CAACO,MAAM,CAAC0B,OAAO,CAAErb,KAAK,IAAK;QAC9B,IAAIA,KAAK,CAAC+Y,SAAS,EAAE;UACnB+C,aAAa,CAAC1C,KAAK,CAACW,SAAS,EAAE/Z,KAAK,CAACA,KAAK,CAAC;AAC7C,QAAA;AACF,MAAA,CAAC,CAAC;AACJ,IAAA,CAAC,CAAC;AACJ,EAAA,CAAC,EAAE,CAACqQ,MAAM,EAAEyL,aAAa,CAAC,CAAC;AAE3B,EAAA,IAAI9O,SAAS,EAAE;IACb,oBACExM,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;MAAKe,SAAS,EAAE,GAAGY,QAAM,CAACwa,YAAY,CAAA,CAAA,EAAIpb,SAAS,IAAI,EAAE,CAAA;KAAG,eAC1DhB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;MAAKe,SAAS,EAAEY,QAAM,CAACya;KAAmB,eACxCrc,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;MAAIe,SAAS,EAAEY,QAAM,CAAC0a;AAAkB,KAAA,EAAC,SAAW,CACjD,CAAC,eACNtc,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;MAAKe,SAAS,EAAEY,QAAM,CAAC8T;KAAa,eAClC1V,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;MAAKe,SAAS,EAAEY,QAAM,CAAC+T;KAAU,CAAC,eAClC3V,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA,IAAA,EAAG,oBAAqB,CACrB,CACF,CAAC;AAEV,EAAA;EAEA,IAAI,CAAC4P,MAAM,IAAIA,MAAM,CAAClR,MAAM,KAAK,CAAC,EAAE;AAClC,IAAA,OAAO,IAAI;AACb,EAAA;EAEA,oBACEqB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAE,GAAGY,QAAM,CAACwa,YAAY,CAAA,CAAA,EAAIpb,SAAS,IAAI,EAAE,CAAA;GAAG,eAC1DhB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACya;GAAmB,eACxCrc,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIe,SAAS,EAAEY,QAAM,CAAC0a;GAAkB,EAAC,SAAW,CACjD,CAAC,eAGNtc,KAAA,CAAAC,aAAA,CAACwa,cAAc,EAAA;AAAC5K,IAAAA,MAAM,EAAEA,MAAO;AAACuK,IAAAA,QAAQ,EAAE+B,kBAAmB;AAACzB,IAAAA,UAAU,EAAEK;AAAe,GAAE,CAAC,eAE5F/a,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAAC2a;GAAY,EAChC1M,MAAM,CAACpK,GAAG,CAAEmT,KAAK,iBAChB5Y,KAAA,CAAAC,aAAA,CAAC0Y,eAAe,EAAA;IACdrZ,GAAG,EAAEsZ,KAAK,CAACzK,EAAG;AACdyK,IAAAA,KAAK,EAAEA,KAAM;IACbC,UAAU,EAAE0C,kBAAkB,CAACU,GAAG,CAACrD,KAAK,CAACzK,EAAE,CAAE;IAC7CiK,QAAQ,EAAEA,MAAMyD,qBAAqB,CAACjD,KAAK,CAACzK,EAAE,CAAE;AAChD2K,IAAAA,aAAa,EAAEQ;GAChB,CACF,CACE,CACF,CAAC;AAEV;;;;AClGO,MAAMkD,WAAuC,GAAGA,CAAC;EACtDzb,IAAI;AACJ4V,EAAAA,QAAQ,GAAG,EAAE;AACbC,EAAAA,QAAQ,GAAG,EAAE;EACbpK,SAAS;EACTc,KAAK;AACLtM,EAAAA,SAAS,GAAG;AACd,CAAC,KAAK;AACJ,EAAA,IAAIwL,SAAS,EAAE;IACb,oBACExM,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKe,MAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAAC8T,YAAY,IAAI1U,SAAS,CAAA;KAAG,eACpDhB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;MAAKe,SAAS,EAAEY,QAAM,CAAC+T,OAAQ;MAAC,YAAA,EAAW;KAAc,CAAC,eAC1D3V,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA,IAAA,EAAG,oBAAqB,CACrB,CAAC;AAEV,EAAA;AAEA,EAAA,IAAIqN,KAAK,EAAE;IACT,oBACEtN,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKe,MAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAAC6L,UAAU,IAAIzM,SAAS,CAAA;AAAG,KAAA,eAClDhB,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA,IAAA,EAAIqN,KAAS,CACV,CAAC;AAEV,EAAA;AAEA,EAAA,MAAMmP,WAAW,GAAG9F,QAAQ,CAAChY,MAAM,GAAG,CAAC;AACvC,EAAA,MAAM+d,WAAW,GAAG9F,QAAQ,CAACjY,MAAM,GAAG,CAAC;AACvC,EAAA,MAAM0Y,UAAU,GAAGoF,WAAW,IAAIC,WAAW;EAE7C,IAAI,CAACrF,UAAU,EAAE;IACf,oBACErX,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKe,MAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAACgU,UAAU,IAAI5U,SAAS,CAAA;KAAG,eAClDhB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACE4C,MAAAA,KAAK,EAAC,4BAA4B;AAClCF,MAAAA,OAAO,EAAC,WAAW;AACnBC,MAAAA,IAAI,EAAC,MAAM;AACXG,MAAAA,MAAM,EAAC,cAAc;AACrBC,MAAAA,WAAW,EAAC,GAAG;AACfC,MAAAA,aAAa,EAAC,OAAO;AACrBC,MAAAA,cAAc,EAAC,OAAO;MACtBlC,SAAS,EAAEY,QAAM,CAAC+a;KAAU,eAE5B3c,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQ2N,MAAAA,EAAE,EAAC,IAAI;AAACC,MAAAA,EAAE,EAAC,IAAI;AAACC,MAAAA,CAAC,EAAC;AAAG,KAAE,CAAC,eAChC9N,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAM6C,MAAAA,CAAC,EAAC;AAAkB,KAAE,CACzB,CAAC,eACN9C,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA,IAAA,EAAI,kBAAoB,CAAC,eACzBD,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA,IAAA,EAAG,uEAAwE,CACxE,CAAC;AAEV,EAAA;;AAEA;EACA,IAAIc,IAAI,KAAK,UAAU,EAAE;IACvB,oBACEf,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKe,MAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAACiU,WAAW,IAAI7U,SAAS,CAAA;AAAG,KAAA,EAClD2V,QAAQ,CAAClR,GAAG,CAAEqS,OAAO,iBACpB9X,KAAA,CAAAC,aAAA,CAACiO,qBAAqB,EAAAhM,QAAA,CAAA;MAAC5C,GAAG,EAAEwY,OAAO,CAAC3J;AAAG,KAAA,EAAK2J,OAAO,CAAG,CACvD,CACE,CAAC;AAEV,EAAA;EAEA,IAAI/W,IAAI,KAAK,SAAS,EAAE;IACtB,oBACEf,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKe,MAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAACiU,WAAW,IAAI7U,SAAS,CAAA;AAAG,KAAA,EAClD4V,QAAQ,CAACnR,GAAG,CAAEqO,OAAO,iBACpB9T,KAAA,CAAAC,aAAA,CAAC8V,qBAAqB,EAAA7T,QAAA,CAAA;MAAC5C,GAAG,EAAEwU,OAAO,CAAC3F;AAAG,KAAA,EAAK2F,OAAO,CAAG,CACvD,CACE,CAAC;AAEV,EAAA;;AAEA;EACA,oBACE9T,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKe,IAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAACiU,WAAW,IAAI7U,SAAS,CAAA;AAAG,GAAA,EAClDyb,WAAW,iBACVzc,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACgb;GAAe,eACpC5c,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIe,SAAS,EAAEY,QAAM,CAACib;GAAa,EAAC,YAAU,EAAClG,QAAQ,CAAChY,MAAM,EAAC,GAAK,CAAC,EACpEgY,QAAQ,CAAClR,GAAG,CAAEqS,OAAO,iBACpB9X,KAAA,CAAAC,aAAA,CAACiO,qBAAqB,EAAAhM,QAAA,CAAA;IAAC5C,GAAG,EAAEwY,OAAO,CAAC3J;GAAG,EAAK2J,OAAO,CAAG,CACvD,CACE,CACN,EACA4E,WAAW,iBACV1c,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACgb;GAAe,eACpC5c,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIe,SAAS,EAAEY,QAAM,CAACib;GAAa,EAAC,WAAS,EAACjG,QAAQ,CAACjY,MAAM,EAAC,GAAK,CAAC,EACnEiY,QAAQ,CAACnR,GAAG,CAAEqO,OAAO,iBACpB9T,KAAA,CAAAC,aAAA,CAAC8V,qBAAqB,EAAA7T,QAAA,CAAA;IAAC5C,GAAG,EAAEwU,OAAO,CAAC3F;AAAG,GAAA,EAAK2F,OAAO,CAAG,CACvD,CACE,CAEJ,CAAC;AAEV;;AC3FO,MAAMgJ,oBAAyD,GAAGA,CAAC;EACxEpG,KAAK;EACLqG,aAAa;EACbC,cAAc;EACdC,SAAS;EACTC,WAAW;EACXvG,QAAQ;EACRC,QAAQ;EACRC,iBAAiB;EACjBC,iBAAiB;EACjBC,aAAa;EACbC,aAAa;EACbhN,WAAW;EACXC,UAAU;EACVc,YAAY;EACZ8E,MAAM;AACNyL,EAAAA;AACF,CAAC,KAAK;EACJ,MAAM6B,IAAI,GAAG,CACX;AAAEhP,IAAAA,EAAE,EAAE,UAAmB;AAAElJ,IAAAA,KAAK,EAAE,UAAU;IAAE8P,KAAK,EAAE4B,QAAQ,CAAChY;AAAO,GAAC,EACtE;AAAEwP,IAAAA,EAAE,EAAE,SAAkB;AAAElJ,IAAAA,KAAK,EAAE,SAAS;IAAE8P,KAAK,EAAE6B,QAAQ,CAACjY;AAAO,GAAC,CACrE;AAED,EAAA,MAAM6N,SAAS,GACZyQ,SAAS,KAAK,UAAU,IAAIpG,iBAAiB,IAC7CoG,SAAS,KAAK,SAAS,IAAInG,iBAAkB;EAEhD,MAAMxJ,KAAK,GAAG2P,SAAS,KAAK,UAAU,GAAGlG,aAAa,GAAGC,aAAa;;AAEtE;EACA,MAAMO,eAAe,GAAG0F,SAAS,KAAK,SAAS,GAAG,EAAE,GAAGtG,QAAQ;EAC/D,MAAMa,eAAe,GAAGyF,SAAS,KAAK,UAAU,GAAG,EAAE,GAAGrG,QAAQ;EAEhE,oBACE5W,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACwb;GAAY,eACjCpd,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACyb;AAAiB,GAAA,eACtCrd,KAAA,CAAAC,aAAA,CAACwU,SAAS,EAAA;AACRjV,IAAAA,KAAK,EAAEkX,KAAM;AACbxC,IAAAA,QAAQ,EAAE6I,aAAc;AACxBrI,IAAAA,QAAQ,EAAEsI,cAAe;AACzB7I,IAAAA,WAAW,EAAC;AAAuB,GACpC,CACE,CAAC,eAENnU,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAAC0b;GAAc,eACnCtd,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACub,IAAK;AAACzR,IAAAA,IAAI,EAAC;GAAS,EACxCyR,IAAI,CAAC1X,GAAG,CAAE8X,GAAG,iBACZvd,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;IACEX,GAAG,EAAEie,GAAG,CAACpP,EAAG;AACZpN,IAAAA,IAAI,EAAC,QAAQ;AACb2K,IAAAA,IAAI,EAAC,KAAK;AACV,IAAA,eAAA,EAAeuR,SAAS,KAAKM,GAAG,CAACpP,EAAG;AACpC,IAAA,eAAA,EAAe,CAAA,SAAA,EAAYoP,GAAG,CAACpP,EAAE,CAAA,CAAG;IACpCrN,OAAO,EAAEA,MAAMoc,WAAW,CAACK,GAAG,CAACpP,EAAE,CAAE;AACnCnN,IAAAA,SAAS,EAAE,CAAA,EAAGY,QAAM,CAAC2b,GAAG,IAAIN,SAAS,KAAKM,GAAG,CAACpP,EAAE,GAAGvM,QAAM,CAAC4b,SAAS,GAAG,EAAE,CAAA;AAAG,GAAA,EAE1ED,GAAG,CAACtY,KAAK,EACTsY,GAAG,CAACxI,KAAK,GAAG,CAAC,iBAAI/U,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMe,SAAS,EAAEY,QAAM,CAAC6b;GAAS,EAAEF,GAAG,CAACxI,KAAY,CAC/D,CACT,CACE,CACF,CAAC,eAEN/U,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAAC8b;GAAiB,eACtC1d,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;IAAOe,SAAS,EAAEY,QAAM,CAAC+b;AAAQ,GAAA,eAC/B3d,KAAA,CAAAC,aAAA,CAACob,YAAY,EAAA;AAACxL,IAAAA,MAAM,EAAEA,MAAO;AAACyL,IAAAA,aAAa,EAAEA;AAAc,GAAE,CACxD,CAAC,eAERtb,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMe,SAAS,EAAEY,QAAM,CAACgc;GAAY,eAClC5d,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKkO,EAAE,EAAE,CAAA,SAAA,EAAY8O,SAAS,CAAA,CAAG;AAACvR,IAAAA,IAAI,EAAC,UAAU;AAAC,IAAA,iBAAA,EAAiB,OAAOuR,SAAS,CAAA;AAAG,GAAA,eACpFjd,KAAA,CAAAC,aAAA,CAACuc,WAAW,EAAA;AACVzb,IAAAA,IAAI,EAAEkc,SAAU;AAChBtG,IAAAA,QAAQ,EAAEY,eAAgB;AAC1BX,IAAAA,QAAQ,EAAEY,eAAgB;AAC1BhL,IAAAA,SAAS,EAAEA,SAAU;AACrBc,IAAAA,KAAK,EAAEA;GACR,CAAC,EAGD,CAACd,SAAS,IAAI,CAACc,KAAK,KAAKiK,eAAe,CAAC5Y,MAAM,GAAG,CAAC,IAAI6Y,eAAe,CAAC7Y,MAAM,GAAG,CAAC,CAAC,iBACjFqB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACic;AAAkB,GAAA,eACvC7d,KAAA,CAAAC,aAAA,CAAC6K,UAAU,EAAA;AACTd,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,UAAU,EAAEA,UAAW;AACvBc,IAAAA,YAAY,EAAEA,YAAa;AAC3Bb,IAAAA,eAAe,EAAE,EAAG;IACpBhJ,SAAS,EAAE,GAAG+b,SAAS,KAAK,UAAU,GAAG,UAAU,GAAG,SAAS,CAAA,WAAA;AAAc,GAC9E,CACE,CAEJ,CACD,CACH,CACF,CAAC;AAEV;;;;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMa,yBAAyD,GAAGA,CAAC;EACxE3L,MAAM;EACNC,OAAO;EACPsE,KAAK;EACLqG,aAAa;EACbC,cAAc;EACdrG,QAAQ;EACRC,QAAQ;EACRC,iBAAiB;EACjBC,iBAAiB;EACjBC,aAAa;EACbC,aAAa;EACbC,gBAAgB;EAChBC,gBAAgB;EAChBC,gBAAgB;EAChB4G,UAAU;EACVC,YAAY;EACZf,SAAS;EACTC,WAAW;EACXlT,WAAW;EACXC,UAAU;EACVc,YAAY;EACZ8E,MAAM;AACNyL,EAAAA;AACF,CAAC,KAAK;AACJ,EAAA,oBACEtb,KAAA,CAAAC,aAAA,CAACiS,WAAW,EAAA;AAACC,IAAAA,MAAM,EAAEA,MAAO;AAACC,IAAAA,OAAO,EAAEA,OAAQ;AAAC9D,IAAAA,KAAK,EAAC;GAAQ,eAC3DtO,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACqc;AAAiB,GAAA,EAErCF,UAAU,KAAK,SAAS,iBACvB/d,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACsc;AAAiB,GAAA,eACtCle,KAAA,CAAAC,aAAA,CAACwU,SAAS,EAAA;AACRjV,IAAAA,KAAK,EAAEkX,KAAM;AACbxC,IAAAA,QAAQ,EAAE6I,aAAc;AACxBrI,IAAAA,QAAQ,EAAEsI,cAAe;AACzB7I,IAAAA,WAAW,EAAC,kDAAkD;IAC9DC,SAAS,EAAA;GACV,CACE,CACN,EAGA2J,UAAU,KAAK,SAAS,iBACvB/d,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACuc;AAAsB,GAAA,EAC1CzH,KAAK,gBACJ1W,KAAA,CAAAC,aAAA,CAACwW,6BAA6B,EAAA;AAC5BC,IAAAA,KAAK,EAAEA,KAAM;AACbC,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCC,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCC,IAAAA,aAAa,EAAEA,aAAc;AAC7BC,IAAAA,aAAa,EAAEA,aAAc;AAC7BC,IAAAA,gBAAgB,EAAEA,gBAAiB;AACnCC,IAAAA,gBAAgB,EAAEA,gBAAiB;AACnCC,IAAAA,gBAAgB,EAAEA;GACnB,CAAC,gBAEFnX,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA6H,QAAA,EAAA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEC,GACN,EAGAkW,UAAU,KAAK,SAAS,iBACvB/d,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAEY,QAAM,CAACwc;AAAmB,GAAA,eACxCpe,KAAA,CAAAC,aAAA,CAAC6c,oBAAoB,EAAA;AACnBpG,IAAAA,KAAK,EAAEA,KAAM;AACbqG,IAAAA,aAAa,EAAEA,aAAc;AAC7BC,IAAAA,cAAc,EAAEA,cAAe;AAC/BC,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,WAAW,EAAEA,WAAY;AACzBvG,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCC,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCC,IAAAA,aAAa,EAAEA,aAAc;AAC7BC,IAAAA,aAAa,EAAEA,aAAc;AAC7BhN,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,UAAU,EAAEA,UAAW;AACvBc,IAAAA,YAAY,EAAEA,YAAa;AAC3B8E,IAAAA,MAAM,EAAEA,MAAO;AACfyL,IAAAA,aAAa,EAAEA;GAChB,CACE,CAEJ,CACM,CAAC;AAElB;;;;ACpJO,MAAM+C,mBAAuD,GAAGA,CAAC;EACtEC,MAAM;AACNpd,EAAAA,SAAS,GAAG,aAAa;EACzB+D,KAAK;AACLjE,EAAAA,SAAS,GAAG;AACd,CAAC,KAAK;EACJ,MAAMgI,aAAa,GAAIC,KAA6C,IAAK;IACvE,IAAIA,KAAK,CAAC3J,GAAG,KAAK,OAAO,IAAI2J,KAAK,CAAC3J,GAAG,KAAK,GAAG,EAAE;MAC9C2J,KAAK,CAACtE,cAAc,EAAE;AACtB2Z,MAAAA,MAAM,EAAE;AACV,IAAA;EACF,CAAC;EAED,oBACEte,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AACEc,IAAAA,IAAI,EAAC,QAAQ;AACbD,IAAAA,OAAO,EAAEwd,MAAO;AAChBnV,IAAAA,SAAS,EAAEH,aAAc;AACzB,IAAA,YAAA,EAAY9H,SAAU;AACtBF,IAAAA,SAAS,EAAE,CAAA,EAAGY,MAAM,CAAC2c,aAAa,IAAIvd,SAAS,CAAA;GAAG,eAElDhB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACEe,SAAS,EAAEY,MAAM,CAACoS,UAAW;AAC7BnR,IAAAA,KAAK,EAAC,4BAA4B;AAClCF,IAAAA,OAAO,EAAC,WAAW;AACnBC,IAAAA,IAAI,EAAC,MAAM;AACXG,IAAAA,MAAM,EAAC,cAAc;AACrBC,IAAAA,WAAW,EAAC,GAAG;AACfC,IAAAA,aAAa,EAAC,OAAO;AACrBC,IAAAA,cAAc,EAAC,OAAO;IACtB,aAAA,EAAY;GAAM,eAElBlD,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQ2N,IAAAA,EAAE,EAAC,IAAI;AAACC,IAAAA,EAAE,EAAC,IAAI;AAACC,IAAAA,CAAC,EAAC;AAAG,GAAE,CAAC,eAChC9N,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAM6C,IAAAA,CAAC,EAAC;AAAkB,GAAE,CACzB,CAAC,EACLmC,KAAK,iBAAIjF,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMe,SAAS,EAAEY,MAAM,CAACqD;GAAM,EAAEA,KAAY,CAChD,CAAC;AAEb;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.esm.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/classnames/index.js","../../src/components/Button/Button.tsx","../../src/experience/Footer/icons/ExternalLinkIcon.tsx","../../src/experience/Footer/icons/AtlasCopcoIcon.tsx","../../src/experience/Footer/Footer.tsx","../../src/components/Pagination/PaginationItem.tsx","../../src/components/Pagination/PaginationButton.tsx","../../src/components/Pagination/PaginationEllipsis.tsx","../../src/components/Pagination/Pagination.tsx","../../src/components/Image/Image.tsx","../../src/components/ProductCardHorizontal/ProductCardHorizontal.tsx","../../src/components/ProductCardDetails/ProductCardDetails.tsx","../../src/experience/algolia-dynamic-search/AlgoliaDynamicSearch.tsx","../../src/experience/qr-form-journey/QrFormJourney.tsx","../../src/components/SearchModal/ModalCloseButton.tsx","../../src/components/SearchModal/SearchModal.tsx","../../src/components/SearchBar/SearchIcon.tsx","../../src/components/SearchBar/SearchInput.tsx","../../src/components/SearchBar/SearchSubmitButton.tsx","../../src/components/SearchBar/SearchBar.tsx","../../src/components/ResultsCount/ResultsCount.tsx","../../src/components/SeeAllLinkButton/SeeAllLinkButton.tsx","../../src/components/ResultsColumn/ResultsColumn.tsx","../../src/components/ContentCardHorizontal/ContentCardHorizontal.tsx","../../src/components/InstantResults/FederatedInstantResultsLayout.tsx","../../src/components/Filters/FilterSearch.tsx","../../src/components/Filters/FilterItem.tsx","../../src/components/Filters/FilterAccordion.tsx","../../src/components/Filters/AppliedFilterTag.tsx","../../src/components/Filters/AppliedFilters.tsx","../../src/components/Filters/FiltersPanel.tsx","../../src/components/ResultsView/ResultsList.tsx","../../src/components/ResultsView/FederatedResultsView.tsx","../../src/experience/federated-search/FederatedSearchExperience.tsx","../../src/components/SearchTriggerButton/SearchTriggerButton.tsx"],"sourcesContent":["/******************************************************************************\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","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React from \"react\";\nimport styles from \"./Button.module.scss\";\nimport classNames from \"classnames\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport type { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n faArrowRight,\n faArrowLeft,\n faArrowRightLong,\n faArrowLeftLong,\n faArrowUpRightFromSquare,\n faChevronLeft,\n faChevronRight,\n} from \"@fortawesome/free-solid-svg-icons\";\n\n/**\n * Button variant types\n */\nexport type ButtonVariant =\n // Default/Primary variants\n | \"default\"\n | \"primary\"\n | \"secondary\"\n // Solid variants (High Emphasis)\n | \"solid-red\"\n | \"solid-grey\"\n | \"solid-black\"\n | \"solid-white\"\n // Outlined variants (Medium/Low Emphasis)\n | \"outlined-red\"\n | \"outlined-grey\"\n | \"outlined-black\"\n | \"outlined-white\"\n // Backward compatibility aliases\n | \"outline\"\n | \"text\"\n // Link variants\n | \"link-text\"\n | \"link-text-alt\"\n | \"external-link\"\n // Carousel variants\n | \"carousel-arrow-left\"\n | \"carousel-arrow-right\";\n\n/**\n * Icon types for button\n */\nexport type ButtonIcon = \"arrow-right\" | \"external\" | \"chevron-left\" | \"chevron-right\" | \"none\";\n\n/**\n * Icon position\n */\nexport type IconPosition = \"left\" | \"right\";\n\nexport interface ButtonProps {\n /**\n * Button content (text label)\n */\n children?: React.ReactNode;\n /**\n * Button variant - determines visual style\n */\n variant?: ButtonVariant;\n /**\n * Button size\n */\n size?: \"extra-small\" | \"small\" | \"medium\" | \"large\";\n /**\n * Is button disabled?\n */\n disabled?: boolean;\n /**\n * Optional click handler\n */\n onClick?: (e?: React.MouseEvent<HTMLButtonElement>) => void;\n /**\n * Button type attribute\n */\n type?: \"button\" | \"submit\" | \"reset\";\n /**\n * Additional CSS classes\n */\n className?: string;\n /**\n * Icon to display\n */\n icon?: ButtonIcon;\n /**\n * Icon position (left or right of text)\n */\n iconPosition?: IconPosition;\n /**\n * Accessible label for icon-only buttons\n */\n ariaLabel?: string;\n /**\n * Opens link in new tab (for external links)\n */\n opensInNewTab?: boolean;\n /**\n * Inline styles\n */\n style?: React.CSSProperties;\n /**\n * Force a specific state for documentation purposes\n * @internal\n */\n 'data-force-state'?: 'hover' | 'focus';\n /**\n * Data attribute for page target\n */\n 'data-page_target'?: string | number;\n /**\n * Tab index for focus order\n */\n tabIndex?: number;\n}\n\n/**\n * Get the icon component based on icon type\n */\nconst getIcon = (icon: ButtonIcon) => {\n switch (icon) {\n case \"arrow-right\":\n return <FontAwesomeIcon icon={faArrowRight as IconProp} />;\n case \"external\":\n return <FontAwesomeIcon icon={faArrowUpRightFromSquare as IconProp} />;\n case \"chevron-left\":\n return <FontAwesomeIcon icon={faChevronLeft as IconProp} />;\n case \"chevron-right\":\n return <FontAwesomeIcon icon={faChevronRight as IconProp} />;\n default:\n return null;\n }\n};\n\n/**\n * Get default icon for certain variants\n */\nconst getDefaultIcon = (variant: ButtonVariant): ButtonIcon => {\n switch (variant) {\n case \"link-text\":\n case \"link-text-alt\":\n case \"text\": // Alias\n return \"arrow-right\";\n case \"external-link\":\n return \"external\";\n case \"carousel-arrow-left\":\n return \"chevron-left\";\n case \"carousel-arrow-right\":\n return \"chevron-right\";\n default:\n return \"none\";\n }\n};\n\n/**\n * Map alias variants to their actual CSS class variants\n */\nconst mapVariantToClass = (variant: ButtonVariant): string => {\n switch (variant) {\n case \"outline\":\n return \"outlined-red\";\n case \"text\":\n return \"link-text\";\n default:\n return variant;\n }\n};\n\n/**\n * Primary UI component for user interaction\n */\nexport const Button: React.FC<ButtonProps> = ({\n children,\n variant = \"primary\",\n size = \"medium\",\n disabled = false,\n onClick,\n type = \"button\",\n className,\n icon,\n iconPosition = \"right\",\n ariaLabel,\n opensInNewTab,\n ...props\n}) => {\n // Map alias variants to actual class names\n const cssVariant = mapVariantToClass(variant);\n \n // Determine the icon to display\n const displayIcon = icon ?? getDefaultIcon(variant);\n const iconElement = getIcon(displayIcon);\n\n // Check if this is an icon-only button (carousel arrows)\n const isIconOnly = variant === \"carousel-arrow-left\" || variant === \"carousel-arrow-right\";\n const isCarouselLeft = variant === \"carousel-arrow-left\";\n const isCarouselRight = variant === \"carousel-arrow-right\";\n\n const buttonClasses = classNames(\n styles.button,\n styles[`button--${cssVariant}`],\n styles[`button--${size}`],\n {\n [styles[\"button--disabled\"]]: disabled,\n },\n className\n );\n\n const iconClasses = classNames(styles.button__icon, styles[`button__icon--${iconPosition}`]);\n\n // Generate accessible label for icon-only buttons\n const accessibleLabel =\n ariaLabel ||\n (isIconOnly ? (variant === \"carousel-arrow-left\" ? \"Previous\" : \"Next\") : undefined);\n\n return (\n <button\n type={type}\n className={buttonClasses}\n disabled={disabled}\n onClick={onClick}\n aria-label={accessibleLabel}\n data-force-state={props['data-force-state']}\n {...props}\n >\n {!isIconOnly && children}\n {isCarouselLeft && (\n <span className={iconClasses}>\n <FontAwesomeIcon icon={faArrowLeft as IconProp} className={styles.button__icon__default} />\n <FontAwesomeIcon icon={faArrowLeftLong as IconProp} className={styles.button__icon__hover} />\n </span>\n )}\n {isCarouselRight && (\n <span className={iconClasses}>\n <FontAwesomeIcon icon={faArrowRight as IconProp} className={styles.button__icon__default} />\n <FontAwesomeIcon icon={faArrowRightLong as IconProp} className={styles.button__icon__hover} />\n </span>\n )}\n {!isIconOnly && iconElement && <span className={iconClasses}>{iconElement}</span>}\n </button>\n );\n};\n","import React from 'react';\n\ninterface ExternalLinkIconProps {\n className?: string;\n size?: number;\n}\n\n/**\n * External link icon (↗) for footer links that open in new tabs\n */\nexport const ExternalLinkIcon: React.FC<ExternalLinkIconProps> = ({\n className,\n size = 15,\n}) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n aria-hidden=\"true\"\n >\n <path\n d=\"M11.25 8.125V11.875C11.25 12.2065 11.1183 12.5245 10.8839 12.7589C10.6495 12.9933 10.3315 13.125 10 13.125H3.125C2.79348 13.125 2.47554 12.9933 2.24112 12.7589C2.0067 12.5245 1.875 12.2065 1.875 11.875V5C1.875 4.66848 2.0067 4.35054 2.24112 4.11612C2.47554 3.8817 2.79348 3.75 3.125 3.75H6.875M9.375 1.875H13.125M13.125 1.875V5.625M13.125 1.875L6.25 8.75\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import React from 'react';\n\ninterface AtlasCopcoIconProps {\n className?: string;\n size?: number;\n}\n\n/**\n * Atlas Copco Group badge icon (square)\n */\nexport const AtlasCopcoIcon: React.FC<AtlasCopcoIconProps> = ({\n className,\n size = 14,\n}) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n aria-hidden=\"true\"\n >\n <rect\n x=\"0.5\"\n y=\"0.5\"\n width=\"13\"\n height=\"13\"\n rx=\"1.5\"\n fill=\"#D9D9D9\"\n stroke=\"#D9D9D9\"\n />\n </svg>\n);\n","import React from 'react';\nimport styles from './Footer.module.scss';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport type { IconProp } from '@fortawesome/fontawesome-svg-core';\nimport { faFacebookF, faXTwitter, faLinkedinIn, faYoutube, faInstagram } from '@fortawesome/free-brands-svg-icons';\nimport { faGlobe } from '@fortawesome/free-solid-svg-icons';\nimport { Button } from '../../components/Button/Button';\nimport {\n ExternalLinkIcon,\n AtlasCopcoIcon,\n} from './icons';\n\n// =============================================================================\n// TYPE DEFINITIONS\n// =============================================================================\n\nexport interface FooterLinkItem {\n /**\n * Link text label\n */\n label: string;\n /**\n * Link URL\n */\n href: string;\n /**\n * Whether this is an external link (shows external icon)\n */\n external?: boolean;\n /**\n * Optional click handler (useful for cookie settings etc.)\n */\n onClick?: () => void;\n}\n\nexport interface SocialLinkItem {\n /**\n * Social media platform\n */\n platform: 'facebook' | 'x' | 'linkedin' | 'youtube' | 'instagram';\n /**\n * Link URL\n */\n href: string;\n /**\n * Accessible label for screen readers\n */\n ariaLabel: string;\n}\n\nexport interface FooterLogoProps {\n /**\n * Logo image source URL\n */\n src: string;\n /**\n * Logo alt text\n */\n alt: string;\n /**\n * Optional link URL for logo\n */\n href?: string;\n}\n\nexport interface FooterProps {\n /**\n * Layout variant - 'desktop' (logo top) or 'mobile' (logo bottom)\n */\n variant?: 'desktop' | 'mobile';\n /**\n * Logo configuration\n */\n logo: FooterLogoProps;\n /**\n * Brand motto/tagline\n */\n motto: string;\n /**\n * Atlas Copco badge configuration\n */\n atlasCopcoBadge?: {\n text: string;\n showIcon?: boolean;\n };\n /**\n * Quick links section\n */\n quickLinks: FooterLinkItem[];\n /**\n * Quick links section heading\n */\n quickLinksHeading?: string;\n /**\n * Contact links section\n */\n contactLinks: FooterLinkItem[];\n /**\n * Contact section heading\n */\n contactHeading?: string;\n /**\n * Social media links\n */\n socialLinks: SocialLinkItem[];\n /**\n * Contact form CTA button (mobile only)\n */\n contactFormButton?: {\n label: string;\n href: string;\n };\n /**\n * Bottom navigation links\n */\n bottomLinks: FooterLinkItem[];\n /**\n * Copyright text\n */\n copyright: string;\n /**\n * Country selector configuration\n */\n countrySelector?: {\n label: string;\n href?: string;\n showIcon?: boolean;\n };\n /**\n * Additional CSS classes\n */\n className?: string;\n}\n\n// =============================================================================\n// SOCIAL ICON COMPONENT\n// =============================================================================\n\nconst SocialIconComponent: React.FC<{ platform: SocialLinkItem['platform'] }> = ({\n platform,\n}) => {\n const iconMap = {\n facebook: faFacebookF,\n x: faXTwitter,\n linkedin: faLinkedinIn,\n youtube: faYoutube,\n instagram: faInstagram,\n };\n\n return <FontAwesomeIcon icon={iconMap[platform] as IconProp} />;\n};\n\n// =============================================================================\n// FOOTER LINK COMPONENT\n// =============================================================================\n\nexport interface FooterLinkProps {\n /**\n * Link item data\n */\n item: FooterLinkItem;\n /**\n * Additional CSS classes\n */\n className?: string;\n /**\n * Variant style\n */\n variant?: 'default' | 'bottom';\n}\n\nexport const FooterLink: React.FC<FooterLinkProps> = ({\n item,\n className,\n variant = 'default',\n}) => {\n const baseClass = variant === 'bottom' ? styles.footer__bottomLink : styles.footer__link;\n const linkClasses = classNames(\n baseClass,\n className\n );\n\n const handleClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n if (item.onClick) {\n e.preventDefault();\n item.onClick();\n }\n };\n\n return (\n <a\n href={item.href}\n className={linkClasses}\n onClick={item.onClick ? handleClick : undefined}\n {...(item.external && {\n target: '_blank',\n rel: 'noopener noreferrer',\n })}\n >\n <span className={styles.footer__linkText}>{item.label}</span>\n {item.external && (\n <span className={styles.footer__linkIcon}>\n <ExternalLinkIcon size={15} />\n </span>\n )}\n </a>\n );\n};\n\n// =============================================================================\n// FOOTER LINK GROUP COMPONENT\n// =============================================================================\n\nexport interface FooterLinkGroupProps {\n /**\n * Section heading\n */\n heading: string;\n /**\n * Array of links\n */\n links: FooterLinkItem[];\n /**\n * Additional CSS classes\n */\n className?: string;\n /**\n * Children to render after links (e.g., social icons)\n */\n children?: React.ReactNode;\n}\n\nexport const FooterLinkGroup: React.FC<FooterLinkGroupProps> = ({\n heading,\n links,\n className,\n children,\n}) => {\n return (\n <div className={classNames(styles.footer__linkGroup, className)}>\n <h3 className={styles.footer__linkHeading}>{heading}</h3>\n <ul className={styles.footer__linkList}>\n {links.map((link, index) => (\n <li key={index}>\n <FooterLink item={link} />\n </li>\n ))}\n </ul>\n {children}\n </div>\n );\n};\n\n// =============================================================================\n// FOOTER SOCIAL ICONS COMPONENT\n// =============================================================================\n\nexport interface FooterSocialIconsProps {\n /**\n * Array of social links\n */\n links: SocialLinkItem[];\n /**\n * Additional CSS classes\n */\n className?: string;\n}\n\nexport const FooterSocialIcons: React.FC<FooterSocialIconsProps> = ({\n links,\n className,\n}) => {\n return (\n <div className={classNames(styles.footer__socialIcons, className)}>\n {links.map((link, index) => (\n <a\n key={index}\n href={link.href}\n className={styles.footer__socialIcon}\n aria-label={link.ariaLabel}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <SocialIconComponent platform={link.platform} />\n </a>\n ))}\n </div>\n );\n};\n\n// =============================================================================\n// FOOTER SOCIAL ICON (STANDALONE) COMPONENT\n// =============================================================================\n\nexport interface FooterSocialIconProps {\n /**\n * Social media platform\n */\n platform: SocialLinkItem['platform'];\n /**\n * Additional CSS classes\n */\n className?: string;\n}\n\nexport const FooterSocialIcon: React.FC<FooterSocialIconProps> = ({\n platform,\n className,\n}) => {\n const iconClasses = classNames(\n styles.footer__socialIcon,\n className\n );\n\n return (\n <span className={iconClasses}>\n <SocialIconComponent platform={platform} />\n </span>\n );\n};\n\n// =============================================================================\n// FOOTER BOTTOM COMPONENT\n// =============================================================================\n\nexport interface FooterBottomProps {\n /**\n * Bottom navigation links\n */\n links: FooterLinkItem[];\n /**\n * Copyright text\n */\n copyright: string;\n /**\n * Country selector configuration\n */\n countrySelector?: {\n label: string;\n href?: string;\n showIcon?: boolean;\n };\n /**\n * Additional CSS classes\n */\n className?: string;\n}\n\nexport const FooterBottom: React.FC<FooterBottomProps> = ({\n links,\n copyright,\n countrySelector,\n className,\n}) => {\n return (\n <div className={classNames(styles.footer__bottom, className)}>\n <div className={styles.footer__bottomLeft}>\n <div className={styles.footer__bottomLinks}>\n {links.map((link, index) => (\n <FooterLink key={index} item={link} variant=\"bottom\" />\n ))}\n </div>\n <p className={styles.footer__copyright}>{copyright}</p>\n </div>\n {countrySelector && (\n <a\n href={countrySelector.href || '#'}\n className={styles.footer__countrySelector}\n >\n {countrySelector.showIcon !== false && (\n <span className={styles.footer__countrySelectorIcon}>\n <FontAwesomeIcon icon={faGlobe as IconProp} />\n </span>\n )}\n {countrySelector.label}\n </a>\n )}\n </div>\n );\n};\n\n// =============================================================================\n// MAIN FOOTER COMPONENT\n// =============================================================================\n\n/**\n * Footer component with brand identity, navigation links, social icons, and legal information.\n * Supports two layout variants:\n * - desktop: Logo at top, 3-column main content\n * - mobile: Logo at bottom, stacked layout with CTA button\n */\nexport const Footer: React.FC<FooterProps> = ({\n variant = 'desktop',\n logo,\n motto,\n atlasCopcoBadge,\n quickLinks,\n quickLinksHeading = 'Quick links',\n contactLinks,\n contactHeading = 'Contact us',\n socialLinks,\n contactFormButton,\n bottomLinks,\n copyright,\n countrySelector,\n className,\n}) => {\n const isMobile = variant === 'mobile';\n const footerClasses = classNames(\n styles.footer,\n isMobile && styles['footer--mobile'],\n className\n );\n\n const LogoWrapper = logo.href ? 'a' : 'div';\n const logoProps = logo.href\n ? { href: logo.href, className: styles.footer__logo }\n : { className: styles.footer__logo };\n\n // Logo + Motto + Badge component (used in both layouts)\n const LogoSection = () => (\n <>\n <LogoWrapper {...logoProps}>\n <img src={logo.src} alt={logo.alt} />\n </LogoWrapper>\n <div className={styles.footer__leftCol}>\n <h2 className={styles.footer__motto}>{motto}</h2>\n {atlasCopcoBadge && (\n <div className={styles.footer__badge}>\n {atlasCopcoBadge.showIcon !== false && (\n <span className={styles.footer__badgeIcon}>\n <AtlasCopcoIcon size={14} />\n </span>\n )}\n <span className={styles.footer__badgeText}>\n {atlasCopcoBadge.text}\n </span>\n </div>\n )}\n </div>\n </>\n );\n\n // Mobile layout: Links at top, logo/motto at bottom\n if (isMobile) {\n return (\n <footer className={footerClasses}>\n <div className={styles.footer__container}>\n {/* Links Section - AT TOP for mobile */}\n <div className={styles.footer__links}>\n {/* Quick Links */}\n <FooterLinkGroup heading={quickLinksHeading} links={quickLinks} />\n\n {/* Contact Us */}\n <FooterLinkGroup heading={contactHeading} links={contactLinks} />\n </div>\n\n {/* Mobile CTA Button */}\n {contactFormButton && (\n <div className={styles.footer__cta}>\n <a href={contactFormButton.href} style={{ textDecoration: 'none', width: '100%' }}>\n <Button variant=\"solid-red\" style={{ width: '100%' }}>\n {contactFormButton.label}\n </Button>\n </a>\n </div>\n )}\n\n {/* Social Icons */}\n {socialLinks.length > 0 && (\n <FooterSocialIcons links={socialLinks} />\n )}\n\n {/* Bottom Bar (includes country selector for mobile) */}\n <FooterBottom\n links={bottomLinks}\n copyright={copyright}\n countrySelector={countrySelector}\n />\n\n {/* Logo + Motto + Badge - AT BOTTOM for mobile */}\n <div className={styles.footer__brandSection}>\n <LogoSection />\n </div>\n </div>\n </footer>\n );\n }\n\n // Desktop layout: Logo at top, 3-column main content\n return (\n <footer className={footerClasses}>\n <div className={styles.footer__container}>\n {/* Logo - AT TOP for desktop */}\n <LogoWrapper {...logoProps}>\n <img src={logo.src} alt={logo.alt} />\n </LogoWrapper>\n\n {/* Main Content */}\n <div className={styles.footer__main}>\n {/* Left Column: Motto + Atlas Copco Badge */}\n <div className={styles.footer__leftCol}>\n <h2 className={styles.footer__motto}>{motto}</h2>\n {atlasCopcoBadge && (\n <div className={styles.footer__badge}>\n {atlasCopcoBadge.showIcon !== false && (\n <span className={styles.footer__badgeIcon}>\n <AtlasCopcoIcon size={14} />\n </span>\n )}\n <span className={styles.footer__badgeText}>\n {atlasCopcoBadge.text}\n </span>\n </div>\n )}\n </div>\n\n {/* Links Section */}\n <div className={styles.footer__links}>\n {/* Quick Links */}\n <FooterLinkGroup heading={quickLinksHeading} links={quickLinks} />\n\n {/* Contact Us */}\n <FooterLinkGroup heading={contactHeading} links={contactLinks}>\n {/* Social Icons */}\n {socialLinks.length > 0 && (\n <FooterSocialIcons links={socialLinks} />\n )}\n </FooterLinkGroup>\n </div>\n </div>\n\n {/* Bottom Bar */}\n <FooterBottom\n links={bottomLinks}\n copyright={copyright}\n countrySelector={countrySelector}\n />\n </div>\n </footer>\n );\n};\n","import React from \"react\";\nimport { PaginationItemProps } from \"./Pagination.types\";\nimport styles from \"./Pagination.module.scss\";\n\nexport const PaginationItem: React.FC<PaginationItemProps> = ({\n page,\n isActive,\n onClick,\n className,\n}) => {\n const handleClick = () => {\n if (!isActive) {\n onClick(page);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n handleClick();\n }\n };\n\n return (\n <li className={styles.paginationItem}>\n <button\n type=\"button\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n className={`${styles.pageButton} ${isActive ? styles.pageButtonActive : \"\"} ${className || \"\"}`}\n aria-current={isActive ? \"page\" : undefined}\n aria-label={`Page ${page}`}\n disabled={isActive}\n tabIndex={isActive ? -1 : 0}\n >\n {page}\n </button>\n </li>\n );\n};\n\n","import React from \"react\";\nimport { PaginationButtonProps } from \"./Pagination.types\";\nimport styles from \"./Pagination.module.scss\";\n\nexport const PaginationButton: React.FC<PaginationButtonProps> = ({\n label,\n disabled,\n onClick,\n direction,\n className,\n ariaLabel,\n}) => {\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n if (!disabled) {\n onClick();\n }\n }\n };\n\n return (\n <li className={styles.paginationItem}>\n <button\n type=\"button\"\n onClick={onClick}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n className={`${styles.navButton} ${styles[`navButton--${direction}`]} ${disabled ? styles.navButtonDisabled : \"\"} ${className || \"\"}`}\n aria-label={ariaLabel || label}\n tabIndex={disabled ? -1 : 0}\n >\n {direction === \"previous\" && (\n <svg\n className={styles.navIcon}\n width=\"8\"\n height=\"12\"\n viewBox=\"0 0 8 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M6 10L2 6L6 2\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n <span>{label}</span>\n {direction === \"next\" && (\n <svg\n className={styles.navIcon}\n width=\"8\"\n height=\"12\"\n viewBox=\"0 0 8 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M2 2L6 6L2 10\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </button>\n </li>\n );\n};\n\n","import React from \"react\";\nimport { PaginationEllipsisProps } from \"./Pagination.types\";\nimport styles from \"./Pagination.module.scss\";\n\nexport const PaginationEllipsis: React.FC<PaginationEllipsisProps> = ({ className }) => {\n return (\n <li className={`${styles.paginationItem} ${styles.ellipsis}`} aria-hidden=\"true\">\n <span className={`${styles.ellipsisText} ${className || \"\"}`}>...</span>\n </li>\n );\n};\n\n","import React, { useMemo } from \"react\";\nimport { PaginationProps } from \"./Pagination.types\";\nimport { PaginationItem } from \"./PaginationItem\";\nimport { PaginationButton } from \"./PaginationButton\";\nimport { PaginationEllipsis } from \"./PaginationEllipsis\";\nimport styles from \"./Pagination.module.scss\";\n\n/**\n * Generate page numbers to display with ellipsis logic\n */\nconst generatePageNumbers = (\n currentPage: number,\n totalPages: number,\n maxVisiblePages: number\n): (number | \"ellipsis-start\" | \"ellipsis-end\")[] => {\n if (totalPages <= maxVisiblePages) {\n return Array.from({ length: totalPages }, (_, i) => i + 1);\n }\n\n const pages: (number | \"ellipsis-start\" | \"ellipsis-end\")[] = [];\n const halfVisible = Math.floor(maxVisiblePages / 2);\n\n // Always show first page\n pages.push(1);\n\n let startPage = Math.max(2, currentPage - halfVisible);\n let endPage = Math.min(totalPages - 1, currentPage + halfVisible);\n\n // Adjust if we're near the start\n if (currentPage <= halfVisible + 1) {\n endPage = Math.min(maxVisiblePages - 1, totalPages - 1);\n startPage = 2;\n }\n\n // Adjust if we're near the end\n if (currentPage >= totalPages - halfVisible) {\n startPage = Math.max(2, totalPages - maxVisiblePages + 2);\n endPage = totalPages - 1;\n }\n\n // Add ellipsis after first page if needed\n if (startPage > 2) {\n pages.push(\"ellipsis-start\");\n }\n\n // Add middle pages\n for (let i = startPage; i <= endPage; i++) {\n pages.push(i);\n }\n\n // Add ellipsis before last page if needed\n if (endPage < totalPages - 1) {\n pages.push(\"ellipsis-end\");\n }\n\n // Always show last page\n if (totalPages > 1) {\n pages.push(totalPages);\n }\n\n return pages;\n};\n\nexport const Pagination: React.FC<PaginationProps> = ({\n currentPage,\n totalPages,\n onPageChange,\n maxVisiblePages = 10,\n showPrevious = true,\n showNext = true,\n previousLabel = \"Previous\",\n nextLabel = \"Next\",\n className,\n ariaLabel = \"Pagination\",\n}) => {\n const pageNumbers = useMemo(\n () => generatePageNumbers(currentPage, totalPages, maxVisiblePages),\n [currentPage, totalPages, maxVisiblePages]\n );\n\n const handlePageChange = (page: number) => {\n if (page >= 1 && page <= totalPages && page !== currentPage) {\n onPageChange(page);\n }\n };\n\n const handlePrevious = () => {\n handlePageChange(currentPage - 1);\n };\n\n const handleNext = () => {\n handlePageChange(currentPage + 1);\n };\n\n // Don't render if there's only one page or no pages\n if (totalPages <= 1) {\n return null;\n }\n\n return (\n <nav\n className={`${styles.pagination} ${className || \"\"}`}\n aria-label={ariaLabel}\n role=\"navigation\"\n >\n <ul className={styles.paginationList}>\n {showPrevious && (\n <PaginationButton\n label={previousLabel}\n disabled={currentPage === 1}\n onClick={handlePrevious}\n direction=\"previous\"\n ariaLabel=\"Go to previous page\"\n />\n )}\n\n {pageNumbers.map((page, index) => {\n if (page === \"ellipsis-start\" || page === \"ellipsis-end\") {\n return <PaginationEllipsis key={`ellipsis-${index}`} />;\n }\n\n return (\n <PaginationItem\n key={page}\n page={page}\n isActive={page === currentPage}\n onClick={handlePageChange}\n />\n );\n })}\n\n {showNext && (\n <PaginationButton\n label={nextLabel}\n disabled={currentPage === totalPages}\n onClick={handleNext}\n direction=\"next\"\n ariaLabel=\"Go to next page\"\n />\n )}\n </ul>\n </nav>\n );\n};\n\n","import React, { useState, useCallback } from \"react\";\nimport { ImageProps } from \"./Image.types\";\nimport styles from \"./Image.module.scss\";\n\nexport const Image: React.FC<ImageProps> = ({\n src,\n alt,\n width,\n height,\n loading = \"lazy\",\n decoding = \"async\",\n objectFit = \"cover\",\n objectPosition = \"center\",\n aspectRatio,\n isDecorative = false,\n fallbackSrc,\n onLoad,\n onError,\n className = \"\",\n srcSet,\n sizes,\n}) => {\n const [isLoading, setIsLoading] = useState(true);\n const [hasError, setHasError] = useState(false);\n const [currentSrc, setCurrentSrc] = useState(src);\n\n const handleLoad = useCallback(() => {\n setIsLoading(false);\n setHasError(false);\n onLoad?.();\n }, [onLoad]);\n\n const handleError = useCallback(() => {\n setIsLoading(false);\n setHasError(true);\n\n // Try fallback if available and not already using it\n if (fallbackSrc && currentSrc !== fallbackSrc) {\n setCurrentSrc(fallbackSrc);\n setHasError(false);\n setIsLoading(true);\n } else {\n onError?.();\n }\n }, [fallbackSrc, currentSrc, onError]);\n\n // Accessibility: decorative images should have empty alt and be hidden from screen readers\n const accessibilityProps = isDecorative\n ? { alt: \"\", \"aria-hidden\": true as const, role: \"presentation\" as const }\n : { alt };\n\n const containerStyle: React.CSSProperties = {\n ...(aspectRatio && { aspectRatio }),\n ...(width && { width: typeof width === \"number\" ? `${width}px` : width }),\n ...(height && { height: typeof height === \"number\" ? `${height}px` : height }),\n };\n\n const imageStyle: React.CSSProperties = {\n objectFit,\n objectPosition,\n };\n\n return (\n <div\n className={`${styles.imageContainer} ${className} ${isLoading ? styles.loading : \"\"} ${hasError ? styles.error : \"\"}`}\n style={containerStyle}\n >\n {isLoading && (\n <div className={styles.skeleton} aria-hidden=\"true\">\n <div className={styles.shimmer} />\n </div>\n )}\n\n {hasError && !fallbackSrc ? (\n <div className={styles.errorState} role=\"img\" aria-label={alt || \"Image failed to load\"}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={styles.errorIcon}\n aria-hidden=\"true\"\n >\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\" />\n <circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\" />\n <polyline points=\"21 15 16 10 5 21\" />\n </svg>\n <span className={styles.errorText}>Image unavailable</span>\n </div>\n ) : (\n <img\n src={currentSrc}\n {...accessibilityProps}\n width={width}\n height={height}\n loading={loading}\n decoding={decoding}\n onLoad={handleLoad}\n onError={handleError}\n className={styles.image}\n style={imageStyle}\n srcSet={srcSet}\n sizes={sizes}\n />\n )}\n </div>\n );\n};\n\nexport default Image;\n\n","import React from \"react\";\nimport { ProductCardHorizontalProps } from \"../../types/cards\";\nimport styles from \"./ProductCardHorizontal.module.scss\";\nimport { Button } from \"../Button\";\nimport { Image } from \"../Image\";\n\nexport const ProductCardHorizontal: React.FC<ProductCardHorizontalProps> = ({\n id,\n imageUrl,\n url,\n title,\n description,\n price,\n button,\n className = \"\",\n}) => {\n if (!title) {\n return null;\n }\n\n return (\n <a\n href={url}\n className={`${styles.productCard} ${className}`}\n aria-label={`View product: ${title}`}\n >\n <div className={`${styles.productWrapper} ${imageUrl ? styles.withImage : \"\"}`}>\n {imageUrl && (\n <div className={styles.productImage}>\n <Image src={imageUrl} alt={title} />\n </div>\n )}\n <div className={styles.productTitleDescriptionWrapper}>\n <h3 className={styles.productTitle}>{title}</h3>\n {description && <p className={styles.productDescription}>{description}</p>}\n </div>\n <div className={styles.productPriceCtaWrapper}>\n <p className={styles.productPrice}>{price || \" \"}</p>\n {button && (\n <Button className={styles.productButton} onClick={button.onClick} size=\"extra-small\">\n {button.label}\n </Button>\n )}\n </div>\n </div>\n </a>\n );\n};\n\n// Alias for backward compatibility\nexport const ProductCardHorizontalParts = ProductCardHorizontal;\n","import React from \"react\";\n// @ts-ignore - ProductDetailsCard is exported but types may not be updated yet\nimport { ProductDetailsCard as ProductDetailsCardBase } from \"@asantemedia-org/edwardsvacuum-design-system\";\nimport { ProductCardHorizontalParts } from \"../ProductCardHorizontal/ProductCardHorizontal\";\nimport { ProductCardDetailsProps } from \"../../types/cards\";\nimport styles from \"./ProductCardDetails.module.scss\";\n\n// Adapter to map design system props to ProductCardHorizontalParts props\nconst SpareCardAdapter = (props: any) => {\n const { spare, ...rest } = props;\n\n return (\n <ProductCardHorizontalParts\n url={spare?.url || spare?.link || \"#\"}\n title={spare?.name || spare?.title || \"\"}\n description={spare?.description || \"\"}\n price={spare?.priceValue || spare?.price || \"\"}\n imageUrl={spare?.[\"img-product\"] || spare?.image || \"\"}\n button={{\n label: rest.cta || \"View Product\",\n onClick: () => window.open(spare?.url || spare?.link || \"#\", \"_blank\"),\n }}\n />\n );\n};\n\n// Re-export the design system component with Leybold styling\nexport const ProductCardDetails: React.FC<ProductCardDetailsProps> = ({\n id,\n imageUrl,\n title,\n description,\n price,\n code,\n facets,\n hit,\n className = \"\",\n ProductCardComponent,\n}) => {\n // Build the hit object expected by ProductDetailsCard\n const hitData = hit || {\n id,\n title,\n description,\n price,\n code,\n image: imageUrl,\n };\n\n return (\n <div className={styles.productDetails}>\n <ProductDetailsCardBase\n className={`${className}`}\n title={title}\n imageUrl={imageUrl}\n imageAlt={title}\n hit={hitData}\n facets={facets}\n usePlainClasses={true}\n ProductCardComponent={ProductCardComponent || SpareCardAdapter}\n />\n </div>\n );\n};\n\nexport default ProductCardDetails;\n","import React from \"react\";\nimport { AlgoliaDynamicSearchRaw } from \"@asantemedia-org/edwardsvacuum-design-system\";\n\nimport {\n ProductCardHorizontal,\n ProductCardHorizontalParts,\n} from \"../../components/ProductCardHorizontal/ProductCardHorizontal\";\n\nimport { ProductCardDetails } from \"../../components/ProductCardDetails/ProductCardDetails\";\n\nimport \"./AlgoliaDynamicSearch.scss\";\n\n// Adapter component that maps props from AlgoliaDynamicSearchRaw to ProductCardHorizontal\n// AlgoliaDynamicSearchRaw passes: title, cardLink, productPrice, cta, hit (original data)\nconst ProductCardAdapter = (props: any) => {\n const { hit, title, cardLink, productPrice, cta, showProductPrice, className, code } = props;\n console.log(props);\n // Get values from direct props or fallback to hit object\n const url = cardLink || hit?.link || \"#\";\n const imageUrl = \"\";\n const price = showProductPrice ? productPrice || hit?.price || \"\" : \"\";\n const productTitle = title || hit?.title || \"\";\n const productCode = code || hit?.code || \"\";\n const buttonLabel = cta || \"View Product\";\n\n return (\n <ProductCardHorizontalParts\n imageUrl={imageUrl}\n url={url}\n title={productTitle}\n description={productCode}\n price={price}\n button={{ label: buttonLabel, onClick: () => window.open(url, \"_blank\") }}\n className={className}\n />\n );\n};\n\nconst ProductCardDetailsAdapter = (props: any) => {\n const {\n hit,\n title,\n cardLink,\n productPrice,\n cta,\n showProductPrice,\n className,\n code,\n facets,\n related_products,\n } = props;\n if (!title) {\n return null;\n }\n return (\n <ProductCardDetails\n imageUrl={hit?.image || \"\"}\n title={title}\n description={hit?.description || \"\"}\n price={hit?.price || \"\" || productPrice}\n code={hit?.code || \"\" || code}\n hit={hit}\n className={className}\n facets={facets}\n relatedProducts={hit?.related_products || related_products}\n />\n );\n};\n\nexport const AlgoliaDynamicSearchLeybold = (props: any) => {\n const innerComponents = {\n ProductCard: ProductCardAdapter,\n ProductDetailsCard: ProductCardDetailsAdapter,\n };\n\n return <AlgoliaDynamicSearchRaw {...props} innerComponents={innerComponents} />;\n};\n\nexport default AlgoliaDynamicSearchLeybold;\n","import React from \"react\";\nimport { QrForm } from \"@asantemedia-org/edwardsvacuum-design-system\";\nimport \"./QrFormJourney.scss\";\nimport { Button } from \"../../components/Button\";\n\n// Adapter to map QrForm's expected button props to our Button component\ninterface QrFormButtonProps {\n label?: string;\n onClick?: (e: React.MouseEvent) => void;\n buttonStyle?: \"primary\" | \"secondary\";\n href?: string;\n target?: string;\n type?: \"button\" | \"submit\";\n element?: \"a\" | \"button\";\n \"data-page_target\"?: number;\n className?: string;\n}\n\nconst QrFormButtonAdapter: React.FC<QrFormButtonProps> = ({\n label,\n onClick,\n buttonStyle = \"primary\",\n href,\n target,\n type = \"button\",\n element,\n \"data-page_target\": pageTarget,\n className,\n}) => {\n // Map buttonStyle to our variant\n const variant = buttonStyle === \"secondary\" ? \"secondary\" : \"primary\";\n\n // If it's an anchor element (has href or element='a'), render as link\n if (element === \"a\" || href) {\n return (\n <a\n href={href}\n target={target}\n className={className}\n data-page_target={pageTarget}\n onClick={onClick}\n style={{\n display: \"inline-block\",\n textDecoration: \"none\",\n }}\n >\n <Button variant={variant} type={type} size=\"small\">\n {label}\n </Button>\n </a>\n );\n }\n\n // Otherwise render as button\n return (\n <Button\n variant={variant}\n type={type}\n onClick={onClick ? (e) => onClick(e as React.MouseEvent) : undefined}\n className={className}\n data-page_target={pageTarget}\n size=\"small\"\n >\n {label}\n </Button>\n );\n};\n\nexport const QrFormLeybold = (props: any) => {\n return (\n <div className=\"qr-journey-form-wrapper\">\n <QrForm {...props} ButtonComponent={QrFormButtonAdapter} />\n </div>\n );\n};\n","import React from 'react';\nimport styles from './SearchModal.module.scss';\n\nexport interface ModalCloseButtonProps {\n onClick(): void;\n ariaLabel?: string;\n className?: string;\n}\n\nexport const ModalCloseButton: React.FC<ModalCloseButtonProps> = ({\n onClick,\n ariaLabel = 'Close search',\n className = '',\n}) => {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n aria-label={ariaLabel}\n className={`${styles.closeButton} ${className}`}\n >\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 >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n );\n};\n\n","import React, { useEffect, useRef } from 'react';\nimport { SearchModalProps } from '../../types/search';\nimport { ModalCloseButton } from './ModalCloseButton';\nimport styles from './SearchModal.module.scss';\n\nexport const SearchModal: React.FC<SearchModalProps> = ({\n isOpen,\n onClose,\n title = 'Search',\n children,\n className = '',\n}) => {\n const modalRef = useRef<HTMLDivElement>(null);\n const previouslyFocusedElement = useRef<HTMLElement | null>(null);\n\n useEffect(() => {\n if (isOpen) {\n // Store the previously focused element\n previouslyFocusedElement.current = document.activeElement as HTMLElement;\n\n // Focus the modal\n if (modalRef.current) {\n modalRef.current.focus();\n }\n\n // Prevent body scroll\n document.body.style.overflow = 'hidden';\n } else {\n // Restore body scroll\n document.body.style.overflow = '';\n\n // Return focus to previously focused element\n if (previouslyFocusedElement.current) {\n previouslyFocusedElement.current.focus();\n }\n }\n\n return () => {\n document.body.style.overflow = '';\n };\n }, [isOpen]);\n\n useEffect(() => {\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && isOpen) {\n onClose();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => document.removeEventListener('keydown', handleEscape);\n }, [isOpen, onClose]);\n\n // Focus trap implementation\n useEffect(() => {\n if (!isOpen || !modalRef.current) return;\n\n const modal = modalRef.current;\n const focusableElements = modal.querySelectorAll<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n const firstElement = focusableElements[0];\n const lastElement = focusableElements[focusableElements.length - 1];\n\n const handleTab = (event: KeyboardEvent) => {\n if (event.key !== 'Tab') return;\n\n if (event.shiftKey) {\n // Shift + Tab\n if (document.activeElement === firstElement) {\n event.preventDefault();\n lastElement?.focus();\n }\n } else {\n // Tab\n if (document.activeElement === lastElement) {\n event.preventDefault();\n firstElement?.focus();\n }\n }\n };\n\n modal.addEventListener('keydown', handleTab);\n return () => modal.removeEventListener('keydown', handleTab);\n }, [isOpen]);\n\n if (!isOpen) return null;\n\n const handleOverlayClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (event.target === event.currentTarget) {\n onClose();\n }\n };\n\n return (\n <div\n className={styles.overlay}\n onClick={handleOverlayClick}\n aria-hidden=\"true\"\n >\n <div\n ref={modalRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={title}\n tabIndex={-1}\n className={`${styles.modal} ${className}`}\n >\n <div className={styles.header}>\n <h2 className={styles.title}>{title}</h2>\n <ModalCloseButton onClick={onClose} />\n </div>\n <div className={styles.content}>{children}</div>\n </div>\n </div>\n );\n};\n\n","import React from 'react';\nimport styles from './SearchBar.module.scss';\n\nexport interface SearchIconProps {\n className?: string;\n}\n\nexport const SearchIcon: React.FC<SearchIconProps> = ({ className = '' }) => {\n return (\n <svg\n className={`${styles.searchIcon} ${className}`}\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 >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"m21 21-4.35-4.35\" />\n </svg>\n );\n};\n\n","import React from 'react';\nimport styles from './SearchBar.module.scss';\n\nexport interface SearchInputProps {\n value: string;\n onChange(value: string): void;\n onKeyDown?(event: React.KeyboardEvent<HTMLInputElement>): void;\n placeholder?: string;\n autoFocus?: boolean;\n className?: string;\n}\n\nexport const SearchInput: React.FC<SearchInputProps> = ({\n value,\n onChange,\n onKeyDown,\n placeholder = 'Discover products, innovations, and resources...',\n autoFocus = false,\n className = '',\n}) => {\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange(event.target.value);\n };\n\n return (\n <input\n type=\"text\"\n value={value}\n onChange={handleChange}\n onKeyDown={onKeyDown}\n placeholder={placeholder}\n autoFocus={autoFocus}\n aria-label=\"Search\"\n className={`${styles.searchInput} ${className}`}\n />\n );\n};\n\n","import React from 'react';\nimport styles from './SearchBar.module.scss';\n\nexport interface SearchSubmitButtonProps {\n onClick(): void;\n disabled?: boolean;\n ariaLabel?: string;\n label?: string;\n className?: string;\n}\n\nexport const SearchSubmitButton: React.FC<SearchSubmitButtonProps> = ({\n onClick,\n disabled = false,\n ariaLabel = 'Search',\n label = 'Search',\n className = '',\n}) => {\n return (\n <button\n type=\"submit\"\n onClick={onClick}\n disabled={disabled}\n aria-label={ariaLabel}\n className={`${styles.submitButton} ${className}`}\n >\n {label}\n </button>\n );\n};\n\n","import React from 'react';\nimport { SearchBarProps } from '../../types/search';\nimport { SearchIcon } from './SearchIcon';\nimport { SearchInput } from './SearchInput';\nimport { SearchSubmitButton } from './SearchSubmitButton';\nimport styles from './SearchBar.module.scss';\n\nexport const SearchBar: React.FC<SearchBarProps> = ({\n value,\n onChange,\n onSubmit,\n placeholder,\n autoFocus = false,\n className = '',\n}) => {\n const handleSubmit = (event: React.FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n onSubmit();\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n onSubmit();\n }\n };\n\n return (\n <form onSubmit={handleSubmit} className={`${styles.searchBar} ${className}`}>\n <div className={styles.inputWrapper}>\n <SearchIcon />\n <SearchInput\n value={value}\n onChange={onChange}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n autoFocus={autoFocus}\n />\n </div>\n <SearchSubmitButton onClick={onSubmit} />\n </form>\n );\n};\n\n","import React from 'react';\nimport styles from './ResultsCount.module.scss';\n\nexport interface ResultsCountProps {\n count: number;\n type: 'products' | 'content' | 'results';\n className?: string;\n}\n\nexport const ResultsCount: React.FC<ResultsCountProps> = ({\n count,\n type,\n className = '',\n}) => {\n const label = count === 1 ? type.slice(0, -1) : type;\n \n return (\n <span className={`${styles.resultsCount} ${className}`}>\n {count} {label}\n </span>\n );\n};\n\n","import React from 'react';\nimport styles from './SeeAllLinkButton.module.scss';\n\nexport interface SeeAllLinkButtonProps {\n onClick(): void;\n label?: string;\n className?: string;\n}\n\nexport const SeeAllLinkButton: React.FC<SeeAllLinkButtonProps> = ({\n onClick,\n label = 'See all results',\n className = '',\n}) => {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n className={`${styles.seeAllButton} ${className}`}\n >\n {label}\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 >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n </button>\n );\n};\n\n","import React from 'react';\nimport { ResultsColumnProps } from '../../types/search';\nimport { ResultsCount } from '../ResultsCount/ResultsCount';\nimport { SeeAllLinkButton } from '../SeeAllLinkButton/SeeAllLinkButton';\nimport styles from './ResultsColumn.module.scss';\n\nexport const ResultsColumn: React.FC<ResultsColumnProps> = ({\n title,\n count,\n isLoading,\n error,\n onSeeAll,\n children,\n className = '',\n}) => {\n return (\n <div className={`${styles.resultsColumn} ${className}`}>\n <div className={styles.columnHeader}>\n <h3 className={styles.columnTitle}>{title}</h3>\n {!isLoading && !error && count > 0 && (\n <ResultsCount\n count={count}\n type={title.toLowerCase().includes('product') ? 'products' : 'content'}\n />\n )}\n </div>\n\n {isLoading && (\n <div className={styles.loadingState}>\n <div className={styles.spinner} aria-label=\"Loading...\" />\n <p>Loading {title.toLowerCase()}...</p>\n </div>\n )}\n\n {error && (\n <div className={styles.errorState}>\n <p>{error}</p>\n </div>\n )}\n\n {!isLoading && !error && count === 0 && (\n <div className={styles.emptyState}>\n <p>No {title.toLowerCase()} found</p>\n </div>\n )}\n\n {!isLoading && !error && count > 0 && (\n <>\n <div className={styles.resultsList}>{children}</div>\n <div className={styles.columnFooter}>\n <SeeAllLinkButton onClick={onSeeAll} label={`See all ${title.toLowerCase()}`} />\n </div>\n </>\n )}\n </div>\n );\n};\n\n","import React from \"react\";\nimport { ContentCardHorizontalProps } from \"../../types/cards\";\nimport styles from \"./ContentCardHorizontal.module.scss\";\n\nexport const ContentCardHorizontal: React.FC<ContentCardHorizontalProps> = ({\n id,\n title,\n url,\n category,\n meta,\n excerpt,\n className = \"\",\n}) => {\n return (\n <a\n href={url}\n className={`${styles.contentCard} ${className}`}\n aria-label={`View content: ${title}`}\n >\n <div className={styles.contentMeta}>\n {category && <span className={styles.contentCategory}>{category}</span>}\n {meta && <span className={styles.contentMetaText}>{meta}</span>}\n </div>\n <h3 className={styles.contentTitle}>{title}</h3>\n {excerpt && <p className={styles.contentExcerpt}>{excerpt}</p>}\n </a>\n );\n};\n","import React from \"react\";\nimport { FederatedInstantResultsLayoutProps } from \"../../types/search\";\nimport { ResultsColumn } from \"../ResultsColumn/ResultsColumn\";\nimport { ProductCardHorizontal } from \"../ProductCardHorizontal/ProductCardHorizontal\";\nimport { ContentCardHorizontal } from \"../ContentCardHorizontal/ContentCardHorizontal\";\nimport { SeeAllLinkButton } from \"../SeeAllLinkButton/SeeAllLinkButton\";\nimport styles from \"./InstantResults.module.scss\";\n\nexport const FederatedInstantResultsLayout: React.FC<FederatedInstantResultsLayoutProps> = ({\n query,\n products,\n contents,\n isLoadingProducts,\n isLoadingContents,\n productsError,\n contentsError,\n onSeeAllProducts,\n onSeeAllContents,\n onSeeAllCombined,\n}) => {\n const totalResults = products.length + contents.length;\n const hasResults = totalResults > 0;\n const showCombinedButton = hasResults && !isLoadingProducts && !isLoadingContents;\n\n // Show first 3 results from each category\n const displayProducts = products.slice(0, 3);\n const displayContents = contents.slice(0, 3);\n\n return (\n <div className={styles.instantResultsLayout}>\n {query && (\n <div className={styles.queryHeader}>\n <h2 className={styles.queryText}>\n Results for <span className={styles.queryHighlight}>\"{query}\"</span>\n </h2>\n {showCombinedButton && (\n <SeeAllLinkButton onClick={onSeeAllCombined} label=\"See all results\" />\n )}\n </div>\n )}\n\n <div className={styles.columnsGrid}>\n <ResultsColumn\n title=\"Products\"\n count={products.length}\n isLoading={isLoadingProducts}\n error={productsError}\n onSeeAll={onSeeAllProducts}\n >\n {displayProducts.map((product) => (\n <ProductCardHorizontal key={product.id} {...product} />\n ))}\n </ResultsColumn>\n\n <ResultsColumn\n title=\"Content\"\n count={contents.length}\n isLoading={isLoadingContents}\n error={contentsError}\n onSeeAll={onSeeAllContents}\n >\n {displayContents.map((content) => (\n <ContentCardHorizontal key={content.id} {...content} />\n ))}\n </ResultsColumn>\n </div>\n </div>\n );\n};\n","import React from \"react\";\nimport { FilterSearchProps } from \"./Filter.types\";\nimport styles from \"./Filters.module.scss\";\n\n/**\n * FilterSearch - Search input for filtering facet values\n */\nexport const FilterSearch: React.FC<FilterSearchProps> = ({\n value,\n onChange,\n placeholder = \"Search\",\n className,\n}) => {\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange(e.target.value);\n };\n\n const handleClear = () => {\n onChange(\"\");\n };\n\n return (\n <div className={`${styles.filterSearch} ${className || \"\"}`}>\n <svg\n className={styles.searchIcon}\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 >\n <path\n d=\"M7 13C10.3137 13 13 10.3137 13 7C13 3.68629 10.3137 1 7 1C3.68629 1 1 3.68629 1 7C1 10.3137 3.68629 13 7 13Z\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M15 15L11.5 11.5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <input\n type=\"text\"\n value={value}\n onChange={handleChange}\n placeholder={placeholder}\n className={styles.searchInput}\n aria-label={placeholder}\n />\n {value && (\n <button\n type=\"button\"\n onClick={handleClear}\n className={styles.clearButton}\n aria-label=\"Clear search\"\n >\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9 3L3 9M3 3L9 9\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n )}\n </div>\n );\n};\n","import React from \"react\";\nimport { FilterItemProps } from \"./Filter.types\";\nimport styles from \"./Filters.module.scss\";\n\n/**\n * FilterItem - Individual facet item with checkbox and count\n */\nexport const FilterItem: React.FC<FilterItemProps> = ({ value, onToggle, className }) => {\n const handleChange = () => {\n onToggle(value.value);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onToggle(value.value);\n }\n };\n\n return (\n <label className={`${styles.filterItem} ${className || \"\"}`} onKeyDown={handleKeyDown}>\n <input\n type=\"checkbox\"\n checked={value.isRefined}\n onChange={handleChange}\n className={styles.filterCheckbox}\n aria-label={`${value.value} (${value.count} results)`}\n />\n <span className={styles.filterLabel}>{value.value}</span>\n <span className={styles.filterCount}>({value.count})</span>\n </label>\n );\n};\n\n","import React, { useState, useMemo } from \"react\";\nimport { FilterAccordionProps } from \"./Filter.types\";\nimport { FilterSearch } from \"./FilterSearch\";\nimport { FilterItem } from \"./FilterItem\";\nimport styles from \"./Filters.module.scss\";\n\n/**\n * FilterAccordion - Collapsible facet section with optional search\n */\nexport const FilterAccordion: React.FC<FilterAccordionProps> = ({\n facet,\n isExpanded,\n onToggle,\n onValueToggle,\n className,\n}) => {\n const [searchQuery, setSearchQuery] = useState(\"\");\n\n // Filter facet values based on search query\n const filteredValues = useMemo(() => {\n if (!searchQuery.trim()) {\n return facet.values;\n }\n const query = searchQuery.toLowerCase();\n return facet.values.filter((value) => value.value.toLowerCase().includes(query));\n }, [facet.values, searchQuery]);\n\n const handleToggle = () => {\n onToggle();\n // Clear search when collapsing\n if (isExpanded) {\n setSearchQuery(\"\");\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleToggle();\n }\n };\n\n const handleValueToggle = (value: string) => {\n onValueToggle(facet.attribute, value);\n };\n\n return (\n <div className={`${styles.filterAccordion} ${className || \"\"}`}>\n <button\n type=\"button\"\n className={`${styles.accordionHeader} ${isExpanded ? styles.accordionHeaderExpanded : \"\"}`}\n onClick={handleToggle}\n onKeyDown={handleKeyDown}\n aria-expanded={isExpanded}\n aria-controls={`accordion-${facet.id}`}\n >\n <span className={styles.accordionTitle}>{facet.label}</span>\n <svg\n className={`${styles.accordionIcon} ${isExpanded ? styles.accordionIconExpanded : \"\"}`}\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 >\n <path\n d=\"M4 6L8 10L12 6\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n\n {isExpanded && (\n <div id={`accordion-${facet.id}`} className={styles.accordionContent}>\n {/* Search input for searchable facets */}\n {facet.searchable && facet.values.length > 5 && (\n <div className={styles.accordionSearch}>\n <FilterSearch value={searchQuery} onChange={setSearchQuery} placeholder=\"Search\" />\n </div>\n )}\n\n {/* Facet values list */}\n <div className={styles.filterList}>\n {filteredValues.length > 0 ? (\n filteredValues.map((value) => (\n <FilterItem key={value.value} value={value} onToggle={handleValueToggle} />\n ))\n ) : (\n <div className={styles.noResults}>No results found</div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n};\n","import React from \"react\";\nimport styles from \"./Filters.module.scss\";\n\nexport interface AppliedFilterTagProps {\n /**\n * Facet attribute (e.g., \"category\")\n */\n attribute: string;\n /**\n * Facet value (e.g., \"Kits\")\n */\n value: string;\n /**\n * Display label (optional, defaults to value)\n */\n label?: string;\n /**\n * Callback when tag is removed\n */\n onRemove: (attribute: string, value: string) => void;\n /**\n * Additional CSS class\n */\n className?: string;\n}\n\n/**\n * AppliedFilterTag - Individual removable filter tag/chip\n */\nexport const AppliedFilterTag: React.FC<AppliedFilterTagProps> = ({\n attribute,\n value,\n label,\n onRemove,\n className,\n}) => {\n const handleRemove = () => {\n onRemove(attribute, value);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleRemove();\n }\n };\n\n return (\n <div className={`${styles.appliedFilterTag} ${className || \"\"}`}>\n <span className={styles.tagLabel}>{label || value}</span>\n <button\n type=\"button\"\n onClick={handleRemove}\n onKeyDown={handleKeyDown}\n className={styles.tagRemoveButton}\n aria-label={`Remove ${label || value} filter`}\n >\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M9 3L3 9M3 3L9 9\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n </div>\n );\n};\n\n","import React, { useMemo } from \"react\";\nimport { AppliedFilterTag } from \"./AppliedFilterTag\";\nimport { Facet } from \"./Filter.types\";\nimport styles from \"./Filters.module.scss\";\n\nexport interface AppliedFiltersProps {\n /**\n * List of facets with selected values\n */\n facets: Facet[];\n /**\n * Callback when a filter is removed\n */\n onRemove: (attribute: string, value: string) => void;\n /**\n * Callback when all filters are cleared\n */\n onClearAll?: () => void;\n /**\n * Additional CSS class\n */\n className?: string;\n}\n\n/**\n * AppliedFilters - Shows all active filters as removable tags\n */\nexport const AppliedFilters: React.FC<AppliedFiltersProps> = ({\n facets,\n onRemove,\n onClearAll,\n className,\n}) => {\n // Extract all refined (selected) filters\n const appliedFilters = useMemo(() => {\n const filters: Array<{ attribute: string; value: string; label: string; facetLabel: string }> =\n [];\n\n facets.forEach((facet) => {\n facet.values.forEach((value) => {\n if (value.isRefined) {\n filters.push({\n attribute: facet.attribute,\n value: value.value,\n label: value.value,\n facetLabel: facet.label,\n });\n }\n });\n });\n\n return filters;\n }, [facets]);\n\n // Don't render if no filters are applied\n if (appliedFilters.length === 0) {\n return null;\n }\n\n const handleClearAll = () => {\n if (onClearAll) {\n onClearAll();\n } else {\n // If no clearAll handler, remove each filter individually\n appliedFilters.forEach((filter) => {\n onRemove(filter.attribute, filter.value);\n });\n }\n };\n\n return (\n <div className={`${styles.appliedFilters} ${className || \"\"}`}>\n <div className={styles.appliedFiltersHeader}>\n <h4 className={styles.appliedFiltersTitle}>\n Applied filters\n {appliedFilters.length > 0 && (\n <span className={styles.appliedFiltersCount}>({appliedFilters.length})</span>\n )}\n </h4>\n {appliedFilters.length > 1 && (\n <button\n type=\"button\"\n onClick={handleClearAll}\n className={styles.clearAllButton}\n aria-label=\"Clear all filters\"\n >\n Clear all\n </button>\n )}\n </div>\n\n <div className={styles.appliedFiltersList}>\n {appliedFilters.map((filter) => (\n <AppliedFilterTag\n key={`${filter.attribute}-${filter.value}`}\n attribute={filter.attribute}\n value={filter.value}\n label={filter.label}\n onRemove={onRemove}\n />\n ))}\n </div>\n </div>\n );\n};\n","import React, { useState, useCallback } from \"react\";\nimport { FiltersPanelProps } from \"./Filter.types\";\nimport { FilterAccordion } from \"./FilterAccordion\";\nimport { AppliedFilters } from \"./AppliedFilters\";\nimport styles from \"./Filters.module.scss\";\n\n/**\n * FiltersPanel - Main container for all filters\n */\nexport const FiltersPanel: React.FC<FiltersPanelProps> = ({\n facets,\n onFacetToggle,\n isLoading = false,\n className,\n}) => {\n // Track which accordions are expanded\n const [expandedAccordions, setExpandedAccordions] = useState<Set<string>>(() => {\n // Initialize with default expanded facets\n const expanded = new Set<string>();\n facets.forEach((facet) => {\n if (facet.defaultExpanded) {\n expanded.add(facet.id);\n }\n });\n return expanded;\n });\n\n const handleAccordionToggle = useCallback((facetId: string) => {\n setExpandedAccordions((prev) => {\n const next = new Set(prev);\n if (next.has(facetId)) {\n next.delete(facetId);\n } else {\n next.add(facetId);\n }\n return next;\n });\n }, []);\n\n const handleValueToggle = useCallback(\n (attribute: string, value: string) => {\n onFacetToggle(attribute, value);\n },\n [onFacetToggle]\n );\n\n const handleRemoveFilter = useCallback(\n (attribute: string, value: string) => {\n onFacetToggle(attribute, value);\n },\n [onFacetToggle]\n );\n\n const handleClearAll = useCallback(() => {\n // Remove all refined facets\n facets.forEach((facet) => {\n facet.values.forEach((value) => {\n if (value.isRefined) {\n onFacetToggle(facet.attribute, value.value);\n }\n });\n });\n }, [facets, onFacetToggle]);\n\n if (isLoading) {\n return (\n <div className={`${styles.filtersPanel} ${className || \"\"}`}>\n <div className={styles.filtersPanelHeader}>\n <h3 className={styles.filtersPanelTitle}>Filters</h3>\n </div>\n <div className={styles.loadingState}>\n <div className={styles.spinner} />\n <p>Loading filters...</p>\n </div>\n </div>\n );\n }\n\n if (!facets || facets.length === 0) {\n return null;\n }\n\n return (\n <div className={`${styles.filtersPanel} ${className || \"\"}`}>\n <div className={styles.filtersPanelHeader}>\n <h3 className={styles.filtersPanelTitle}>Filters</h3>\n </div>\n\n {/* Applied Filters Section */}\n <AppliedFilters facets={facets} onRemove={handleRemoveFilter} onClearAll={handleClearAll} />\n\n <div className={styles.filtersList}>\n {facets.map((facet) => (\n <FilterAccordion\n key={facet.id}\n facet={facet}\n isExpanded={expandedAccordions.has(facet.id)}\n onToggle={() => handleAccordionToggle(facet.id)}\n onValueToggle={handleValueToggle}\n />\n ))}\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport { ResultsListProps } from '../../types/search';\nimport { ProductCardHorizontal } from '../ProductCardHorizontal/ProductCardHorizontal';\nimport { ContentCardHorizontal } from '../ContentCardHorizontal/ContentCardHorizontal';\nimport styles from './ResultsView.module.scss';\n\nexport const ResultsList: React.FC<ResultsListProps> = ({\n type,\n products = [],\n contents = [],\n isLoading,\n error,\n className = '',\n}) => {\n if (isLoading) {\n return (\n <div className={`${styles.loadingState} ${className}`}>\n <div className={styles.spinner} aria-label=\"Loading...\" />\n <p>Loading results...</p>\n </div>\n );\n }\n\n if (error) {\n return (\n <div className={`${styles.errorState} ${className}`}>\n <p>{error}</p>\n </div>\n );\n }\n\n const hasProducts = products.length > 0;\n const hasContents = contents.length > 0;\n const hasResults = hasProducts || hasContents;\n\n if (!hasResults) {\n return (\n <div className={`${styles.emptyState} ${className}`}>\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 className={styles.emptyIcon}\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"m21 21-4.35-4.35\" />\n </svg>\n <h3>No results found</h3>\n <p>Try adjusting your search or filters to find what you're looking for.</p>\n </div>\n );\n }\n\n // Render based on type\n if (type === 'products') {\n return (\n <div className={`${styles.resultsList} ${className}`}>\n {products.map((product) => (\n <ProductCardHorizontal key={product.id} {...product} />\n ))}\n </div>\n );\n }\n\n if (type === 'content') {\n return (\n <div className={`${styles.resultsList} ${className}`}>\n {contents.map((content) => (\n <ContentCardHorizontal key={content.id} {...content} />\n ))}\n </div>\n );\n }\n\n // type === 'all' - Show mixed results\n return (\n <div className={`${styles.resultsList} ${className}`}>\n {hasProducts && (\n <div className={styles.resultsSection}>\n <h3 className={styles.sectionTitle}>Products ({products.length})</h3>\n {products.map((product) => (\n <ProductCardHorizontal key={product.id} {...product} />\n ))}\n </div>\n )}\n {hasContents && (\n <div className={styles.resultsSection}>\n <h3 className={styles.sectionTitle}>Content ({contents.length})</h3>\n {contents.map((content) => (\n <ContentCardHorizontal key={content.id} {...content} />\n ))}\n </div>\n )}\n </div>\n );\n};\n\n","import React from \"react\";\nimport { FederatedResultsViewProps } from \"../../types/search\";\nimport { SearchBar } from \"../SearchBar/SearchBar\";\nimport { FiltersPanel } from \"../Filters\";\nimport { ResultsList } from \"./ResultsList\";\nimport { Pagination } from \"../Pagination\";\nimport styles from \"./ResultsView.module.scss\";\n\nexport const FederatedResultsView: React.FC<FederatedResultsViewProps> = ({\n query,\n onQueryChange,\n onSearchSubmit,\n activeTab,\n onTabChange,\n products,\n contents,\n isLoadingProducts,\n isLoadingContents,\n productsError,\n contentsError,\n currentPage,\n totalPages,\n onPageChange,\n facets,\n onFacetToggle,\n}) => {\n const tabs = [\n { id: \"products\" as const, label: \"Products\", count: products.length },\n { id: \"content\" as const, label: \"Content\", count: contents.length },\n ];\n\n const isLoading =\n (activeTab === \"products\" && isLoadingProducts) ||\n (activeTab === \"content\" && isLoadingContents);\n\n const error = activeTab === \"products\" ? productsError : contentsError;\n\n // Filter results based on active tab\n const displayProducts = activeTab === \"content\" ? [] : products;\n const displayContents = activeTab === \"products\" ? [] : contents;\n\n return (\n <div className={styles.resultsView}>\n <div className={styles.searchBarWrapper}>\n <SearchBar\n value={query}\n onChange={onQueryChange}\n onSubmit={onSearchSubmit}\n placeholder=\"Refine your search...\"\n />\n </div>\n\n <div className={styles.tabsContainer}>\n <div className={styles.tabs} role=\"tablist\">\n {tabs.map((tab) => (\n <button\n key={tab.id}\n type=\"button\"\n role=\"tab\"\n aria-selected={activeTab === tab.id}\n aria-controls={`tabpanel-${tab.id}`}\n onClick={() => onTabChange(tab.id)}\n className={`${styles.tab} ${activeTab === tab.id ? styles.tabActive : \"\"}`}\n >\n {tab.label}\n {tab.count > 0 && <span className={styles.tabCount}>{tab.count}</span>}\n </button>\n ))}\n </div>\n </div>\n\n <div className={styles.resultsContainer}>\n <aside className={styles.sidebar}>\n <FiltersPanel facets={facets} onFacetToggle={onFacetToggle} />\n </aside>\n\n <main className={styles.mainContent}>\n <div id={`tabpanel-${activeTab}`} role=\"tabpanel\" aria-labelledby={`tab-${activeTab}`}>\n <ResultsList\n type={activeTab}\n products={displayProducts}\n contents={displayContents}\n isLoading={isLoading}\n error={error}\n />\n\n {/* Pagination - only show when not loading and no errors */}\n {!isLoading && !error && (displayProducts.length > 0 || displayContents.length > 0) && (\n <div className={styles.paginationWrapper}>\n <Pagination\n currentPage={currentPage}\n totalPages={totalPages}\n onPageChange={onPageChange}\n maxVisiblePages={10}\n ariaLabel={`${activeTab === \"products\" ? \"Products\" : \"Content\"} pagination`}\n />\n </div>\n )}\n </div>\n </main>\n </div>\n </div>\n );\n};\n","import React from \"react\";\nimport { FederatedSearchProps } from \"../../types/search\";\nimport { SearchModal } from \"../../components/SearchModal/SearchModal\";\nimport { SearchBar } from \"../../components/SearchBar/SearchBar\";\nimport { FederatedInstantResultsLayout } from \"../../components/InstantResults/FederatedInstantResultsLayout\";\nimport { FederatedResultsView } from \"../../components/ResultsView/FederatedResultsView\";\nimport styles from \"./FederatedSearchExperience.module.scss\";\n\n/**\n * FederatedSearchExperience - Top-level search experience component\n *\n * This component orchestrates the entire federated search experience, including:\n * - Modal container\n * - Search input\n * - Instant results (2-column layout)\n * - Full results view with tabs and filters\n *\n * The component is fully controlled and does not contain any data fetching logic.\n * All data and callbacks are passed in via props, making it suitable for use in AEM\n * where a controller layer will handle Algolia integration.\n *\n * @example\n * ```tsx\n * <FederatedSearchExperience\n * isOpen={isOpen}\n * onOpen={handleOpen}\n * onClose={handleClose}\n * query={query}\n * onQueryChange={setQuery}\n * onSearchSubmit={handleSubmit}\n * products={products}\n * contents={contents}\n * isLoadingProducts={isLoadingProducts}\n * isLoadingContents={isLoadingContents}\n * onSeeAllProducts={handleSeeAllProducts}\n * onSeeAllContents={handleSeeAllContents}\n * onSeeAllCombined={handleSeeAllCombined}\n * activeView={activeView}\n * onChangeView={setActiveView}\n * activeTab={activeTab}\n * onTabChange={setActiveTab}\n * />\n * ```\n */\nexport const FederatedSearchExperience: React.FC<FederatedSearchProps> = ({\n isOpen,\n onClose,\n query,\n onQueryChange,\n onSearchSubmit,\n products,\n contents,\n isLoadingProducts,\n isLoadingContents,\n productsError,\n contentsError,\n onSeeAllProducts,\n onSeeAllContents,\n onSeeAllCombined,\n activeView,\n onChangeView,\n activeTab,\n onTabChange,\n currentPage,\n totalPages,\n onPageChange,\n facets,\n onFacetToggle,\n}) => {\n return (\n <SearchModal isOpen={isOpen} onClose={onClose} title=\"Search\">\n <div className={styles.searchExperience}>\n {/* Search Bar - Always visible */}\n {activeView === \"instant\" && (\n <div className={styles.searchBarSection}>\n <SearchBar\n value={query}\n onChange={onQueryChange}\n onSubmit={onSearchSubmit}\n placeholder=\"Discover products, innovations, and resources...\"\n autoFocus\n />\n </div>\n )}\n\n {/* Instant Results View */}\n {activeView === \"instant\" && (\n <div className={styles.instantResultsSection}>\n {query ? (\n <FederatedInstantResultsLayout\n query={query}\n products={products}\n contents={contents}\n isLoadingProducts={isLoadingProducts}\n isLoadingContents={isLoadingContents}\n productsError={productsError}\n contentsError={contentsError}\n onSeeAllProducts={onSeeAllProducts}\n onSeeAllContents={onSeeAllContents}\n onSeeAllCombined={onSeeAllCombined}\n />\n ) : (\n <></>\n // <div className={styles.emptyState}>\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 // className={styles.emptyIcon}\n // >\n // <circle cx=\"11\" cy=\"11\" r=\"8\" />\n // <path d=\"m21 21-4.35-4.35\" />\n // </svg>\n // <h3>Start searching</h3>\n // <p>\n // Search for vacuum pumps, accessories, technical documentation, and more.\n // </p>\n // </div>\n )}\n </div>\n )}\n\n {/* Full Results View */}\n {activeView === \"results\" && (\n <div className={styles.fullResultsSection}>\n <FederatedResultsView\n query={query}\n onQueryChange={onQueryChange}\n onSearchSubmit={onSearchSubmit}\n activeTab={activeTab}\n onTabChange={onTabChange}\n products={products}\n contents={contents}\n isLoadingProducts={isLoadingProducts}\n isLoadingContents={isLoadingContents}\n productsError={productsError}\n contentsError={contentsError}\n currentPage={currentPage}\n totalPages={totalPages}\n onPageChange={onPageChange}\n facets={facets}\n onFacetToggle={onFacetToggle}\n />\n </div>\n )}\n </div>\n </SearchModal>\n );\n};\n","import React from 'react';\nimport { SearchTriggerButtonProps } from '../../types/search';\nimport styles from './SearchTriggerButton.module.scss';\n\nexport const SearchTriggerButton: React.FC<SearchTriggerButtonProps> = ({\n onOpen,\n ariaLabel = 'Open search',\n label,\n className = '',\n}) => {\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onOpen();\n }\n };\n\n return (\n <button\n type=\"button\"\n onClick={onOpen}\n onKeyDown={handleKeyDown}\n aria-label={ariaLabel}\n className={`${styles.searchTrigger} ${className}`}\n >\n <svg\n className={styles.searchIcon}\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 >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"m21 21-4.35-4.35\" />\n </svg>\n {label && <span className={styles.label}>{label}</span>}\n </button>\n );\n};\n\n"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","SuppressedError","error","suppressed","message","Error","name","hasOwn","classNames","classes","arg","appendClass","parseValue","Array","isArray","toString","includes","key","value","newClass","module","exports","default","window","getIcon","icon","React","createElement","FontAwesomeIcon","faArrowRight","faArrowUpRightFromSquare","faChevronLeft","faChevronRight","getDefaultIcon","variant","mapVariantToClass","Button","_a","children","_c","_d","size","_e","disabled","onClick","_f","type","className","_g","iconPosition","ariaLabel","opensInNewTab","props","cssVariant","displayIcon","iconElement","isIconOnly","isCarouselLeft","isCarouselRight","buttonClasses","styles","button","concat","_b","iconClasses","button__icon","accessibleLabel","undefined","_extends","faArrowLeft","button__icon__default","faArrowLeftLong","button__icon__hover","faArrowRightLong","ExternalLinkIcon","width","height","viewBox","fill","xmlns","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","AtlasCopcoIcon","x","y","rx","SocialIconComponent","platform","iconMap","facebook","faFacebookF","faXTwitter","linkedin","faLinkedinIn","youtube","faYoutube","instagram","faInstagram","FooterLink","item","baseClass","footer__bottomLink","footer__link","linkClasses","handleClick","preventDefault","href","external","target","rel","footer__linkText","label","footer__linkIcon","FooterLinkGroup","heading","links","footer__linkGroup","footer__linkHeading","footer__linkList","map","link","index","FooterSocialIcons","footer__socialIcons","footer__socialIcon","FooterSocialIcon","FooterBottom","copyright","countrySelector","footer__bottom","footer__bottomLeft","footer__bottomLinks","footer__copyright","footer__countrySelector","showIcon","footer__countrySelectorIcon","faGlobe","Footer","logo","motto","atlasCopcoBadge","quickLinks","quickLinksHeading","contactLinks","contactHeading","socialLinks","contactFormButton","bottomLinks","isMobile","footerClasses","footer","LogoWrapper","logoProps","footer__logo","LogoSection","Fragment","src","alt","footer__leftCol","footer__motto","footer__badge","footer__badgeIcon","footer__badgeText","text","footer__container","footer__links","footer__cta","style","textDecoration","footer__brandSection","footer__main","PaginationItem","page","isActive","handleKeyDown","event","paginationItem","onKeyDown","pageButton","pageButtonActive","tabIndex","PaginationButton","direction","navButton","navButtonDisabled","navIcon","PaginationEllipsis","ellipsis","ellipsisText","generatePageNumbers","currentPage","totalPages","maxVisiblePages","from","_","pages","halfVisible","Math","floor","push","startPage","max","endPage","min","Pagination","onPageChange","showPrevious","showNext","previousLabel","nextLabel","pageNumbers","useMemo","handlePageChange","handlePrevious","handleNext","pagination","role","paginationList","Image","loading","decoding","objectFit","objectPosition","aspectRatio","isDecorative","fallbackSrc","onLoad","onError","srcSet","sizes","_h","useState","isLoading","setIsLoading","_j","hasError","setHasError","_k","currentSrc","setCurrentSrc","handleLoad","useCallback","handleError","accessibilityProps","containerStyle","imageStyle","imageContainer","skeleton","shimmer","errorState","errorIcon","ry","cx","cy","r","points","errorText","image","ProductCardHorizontal","id","imageUrl","url","title","description","price","productCard","productWrapper","withImage","productImage","productTitleDescriptionWrapper","productTitle","productDescription","productPriceCtaWrapper","productPrice","productButton","ProductCardHorizontalParts","SpareCardAdapter","spare","rest","priceValue","cta","open","ProductCardDetails","code","facets","hit","ProductCardComponent","hitData","productDetails","ProductDetailsCardBase","imageAlt","usePlainClasses","ProductCardAdapter","cardLink","showProductPrice","console","log","productCode","buttonLabel","ProductCardDetailsAdapter","related_products","relatedProducts","AlgoliaDynamicSearchLeybold","innerComponents","ProductCard","ProductDetailsCard","AlgoliaDynamicSearchRaw","QrFormButtonAdapter","buttonStyle","element","pageTarget","display","QrFormLeybold","QrForm","ButtonComponent","ModalCloseButton","closeButton","x1","y1","x2","y2","SearchModal","isOpen","onClose","modalRef","useRef","previouslyFocusedElement","useEffect","current","document","activeElement","focus","body","overflow","handleEscape","addEventListener","removeEventListener","modal","focusableElements","querySelectorAll","firstElement","lastElement","handleTab","shiftKey","handleOverlayClick","currentTarget","overlay","ref","header","content","SearchIcon","searchIcon","SearchInput","onChange","placeholder","autoFocus","handleChange","searchInput","SearchSubmitButton","submitButton","SearchBar","onSubmit","handleSubmit","searchBar","inputWrapper","ResultsCount","count","slice","resultsCount","SeeAllLinkButton","seeAllButton","ResultsColumn","onSeeAll","resultsColumn","columnHeader","columnTitle","toLowerCase","loadingState","spinner","emptyState","resultsList","columnFooter","ContentCardHorizontal","category","meta","excerpt","contentCard","contentMeta","contentCategory","contentMetaText","contentTitle","contentExcerpt","FederatedInstantResultsLayout","query","products","contents","isLoadingProducts","isLoadingContents","productsError","contentsError","onSeeAllProducts","onSeeAllContents","onSeeAllCombined","totalResults","hasResults","showCombinedButton","displayProducts","displayContents","instantResultsLayout","queryHeader","queryText","queryHighlight","columnsGrid","product","FilterSearch","handleClear","filterSearch","clearButton","FilterItem","onToggle","filterItem","checked","isRefined","filterCheckbox","filterLabel","filterCount","FilterAccordion","facet","isExpanded","onValueToggle","searchQuery","setSearchQuery","filteredValues","trim","values","filter","handleToggle","handleValueToggle","attribute","filterAccordion","accordionHeader","accordionHeaderExpanded","accordionTitle","accordionIcon","accordionIconExpanded","accordionContent","searchable","accordionSearch","filterList","noResults","AppliedFilterTag","onRemove","handleRemove","appliedFilterTag","tagLabel","tagRemoveButton","AppliedFilters","onClearAll","appliedFilters","filters","forEach","facetLabel","handleClearAll","appliedFiltersHeader","appliedFiltersTitle","appliedFiltersCount","clearAllButton","appliedFiltersList","FiltersPanel","onFacetToggle","expanded","Set","defaultExpanded","add","expandedAccordions","setExpandedAccordions","handleAccordionToggle","facetId","prev","next","has","delete","handleRemoveFilter","filtersPanel","filtersPanelHeader","filtersPanelTitle","filtersList","ResultsList","hasProducts","hasContents","emptyIcon","resultsSection","sectionTitle","FederatedResultsView","onQueryChange","onSearchSubmit","activeTab","onTabChange","tabs","resultsView","searchBarWrapper","tabsContainer","tab","tabActive","tabCount","resultsContainer","sidebar","mainContent","paginationWrapper","FederatedSearchExperience","activeView","onChangeView","searchExperience","searchBarSection","instantResultsSection","fullResultsSection","SearchTriggerButton","onOpen","searchTrigger"],"mappings":"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","x_google_ignoreList":[0,1]}