@asante-org/leybold-design-system 1.2.2 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +163 -163
  2. package/dist/.next/types/app/layout.d.ts +9 -0
  3. package/dist/.next/types/app/page.d.ts +9 -0
  4. package/dist/assets/.gitkeep +2 -2
  5. package/dist/assets/desktop-layout-alt.svg +27 -27
  6. package/dist/assets/desktop-layout.svg +29 -29
  7. package/dist/assets/globe.svg +7 -7
  8. package/dist/assets/leybold-footer-logo.svg +19 -19
  9. package/dist/assets/leybold-white.svg +18 -18
  10. package/dist/assets/list-product-overlay-tip-active.svg +3 -3
  11. package/dist/assets/list-product-overlay-tip.svg +3 -3
  12. package/dist/assets/logo-example.svg +9 -9
  13. package/dist/assets/logo.svg +19 -19
  14. package/dist/assets/phone-layout.svg +14 -14
  15. package/dist/assets/red-tip.svg +10 -10
  16. package/dist/assets/tablet-layout.svg +28 -28
  17. package/dist/index.esm.js +1359 -1147
  18. package/dist/index.esm.js.map +1 -1
  19. package/dist/index.esm.scss +238 -35
  20. package/dist/index.js +1403 -1194
  21. package/dist/index.js.map +1 -1
  22. package/dist/index.scss +238 -35
  23. package/dist/src/components/Button/Button.d.ts +2 -2
  24. package/dist/src/components/ContentCardBase/ContentCardBase.d.ts +3 -0
  25. package/dist/src/components/ContentCardBase/index.d.ts +2 -0
  26. package/dist/src/components/ContentCardHorizontal/ContentCardHorizontal.d.ts +2 -2
  27. package/dist/src/components/ContentCardVertical/ContentCardVertical.d.ts +3 -0
  28. package/dist/src/components/ContentCardVertical/ContentCardVertical.stories.d.ts +9 -0
  29. package/dist/src/experience/algolia-dynamic-search/AlgoliaDynamicSearch.stories.d.ts +2 -0
  30. package/dist/src/index.d.ts +2 -1
  31. package/dist/src/stories/foundation/Typography/TypographyComponents.d.ts +1 -0
  32. package/dist/src/types/cards.d.ts +28 -2
  33. package/dist/tsconfig.tsbuildinfo +1 -1
  34. package/package.json +115 -115
  35. package/dist/app/layout.d.ts +0 -9
  36. package/dist/app/page.d.ts +0 -2
  37. package/dist/index.css +0 -88
  38. package/dist/index.d.ts +0 -3
  39. package/dist/index.esm.css +0 -88
  40. package/dist/stories/components/Algolia-dynamic-search/algolia-dynamic-search.d.ts +0 -4
  41. package/dist/stories/components/Algolia-dynamic-search/algolia-dynamic-search.stories.d.ts +0 -7
  42. package/dist/stories/components/Button/Button.d.ts +0 -35
  43. package/dist/stories/components/Button/Button.stories.d.ts +0 -15
  44. package/dist/stories/components/Button/index.d.ts +0 -2
  45. package/dist/stories/components/QRFormJourney/Qr-form/Qr-form.d.ts +0 -2
  46. package/dist/stories/components/QRFormJourney/Qr-form/Qr-form.stories.d.ts +0 -7
  47. package/dist/utils/styles/index.d.ts +0 -1
package/dist/index.esm.js CHANGED
@@ -15,7 +15,46 @@ function _extends() {
15
15
  }, _extends.apply(null, arguments);
16
16
  }
17
17
 
18
- var styles$k = {"button":"Button-module__button___18Bed","button--primary":"Button-module__button--primary___VuF-P","button--disabled":"Button-module__button--disabled___IuOY8","button--secondary":"Button-module__button--secondary___lD5E3","button--solid-grey":"Button-module__button--solid-grey___oRbEy","button--solid-black":"Button-module__button--solid-black___1Ma5K","button--solid-white":"Button-module__button--solid-white___bE-Z0","button--outlined-grey":"Button-module__button--outlined-grey___xWGbB","button--outlined-black":"Button-module__button--outlined-black___qfX5o","button--outlined-white":"Button-module__button--outlined-white___QLXNP","button--link-text":"Button-module__button--link-text___R2kun","button__icon":"Button-module__button__icon___hlcHo","button--link-text-alt":"Button-module__button--link-text-alt___1p7wH","button--external-link":"Button-module__button--external-link___Mhxuk","button--carousel-arrow-left":"Button-module__button--carousel-arrow-left___Wx-Jo","button--carousel-arrow-right":"Button-module__button--carousel-arrow-right___3ZtgT","button__icon__default":"Button-module__button__icon__default___0qlF1","button__icon__hover":"Button-module__button__icon__hover___3xPGT","button--extra-small":"Button-module__button--extra-small___R0QTM","button--small":"Button-module__button--small___ADJQe","button--medium":"Button-module__button--medium___ZuR4Z","button--large":"Button-module__button--large___-FaV5","button__icon--left":"Button-module__button__icon--left___wMCeH","button__icon--right":"Button-module__button__icon--right___-pGHl"};
18
+ /******************************************************************************
19
+ Copyright (c) Microsoft Corporation.
20
+
21
+ Permission to use, copy, modify, and/or distribute this software for any
22
+ purpose with or without fee is hereby granted.
23
+
24
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
25
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
26
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
27
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
28
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
29
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
30
+ PERFORMANCE OF THIS SOFTWARE.
31
+ ***************************************************************************** */
32
+ /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
33
+
34
+ var __assign = function () {
35
+ __assign = Object.assign || function __assign(t) {
36
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
37
+ s = arguments[i];
38
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
39
+ }
40
+ return t;
41
+ };
42
+ return __assign.apply(this, arguments);
43
+ };
44
+ function __rest(s, e) {
45
+ var t = {};
46
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
47
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
48
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
49
+ }
50
+ return t;
51
+ }
52
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
53
+ var e = new Error(message);
54
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
55
+ };
56
+
57
+ var styles$l = {"button":"Button-module__button___18Bed","button--primary":"Button-module__button--primary___VuF-P","button--disabled":"Button-module__button--disabled___IuOY8","button--secondary":"Button-module__button--secondary___lD5E3","button--solid-grey":"Button-module__button--solid-grey___oRbEy","button--solid-black":"Button-module__button--solid-black___1Ma5K","button--solid-white":"Button-module__button--solid-white___bE-Z0","button--outlined-grey":"Button-module__button--outlined-grey___xWGbB","button--outlined-black":"Button-module__button--outlined-black___qfX5o","button--outlined-white":"Button-module__button--outlined-white___QLXNP","button--link-text":"Button-module__button--link-text___R2kun","button__icon":"Button-module__button__icon___hlcHo","button--link-text-alt":"Button-module__button--link-text-alt___1p7wH","button--external-link":"Button-module__button--external-link___Mhxuk","button--carousel-arrow-left":"Button-module__button--carousel-arrow-left___Wx-Jo","button--carousel-arrow-right":"Button-module__button--carousel-arrow-right___3ZtgT","button__icon__default":"Button-module__button__icon__default___0qlF1","button__icon__hover":"Button-module__button__icon__hover___3xPGT","button--extra-small":"Button-module__button--extra-small___R0QTM","button--small":"Button-module__button--small___ADJQe","button--medium":"Button-module__button--medium___ZuR4Z","button--large":"Button-module__button--large___-FaV5","button__icon--left":"Button-module__button__icon--left___wMCeH","button__icon--right":"Button-module__button__icon--right___-pGHl"};
19
58
 
20
59
  function getDefaultExportFromCjs (x) {
21
60
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
@@ -92,22 +131,10 @@ function requireClassnames() {
92
131
  var classnamesExports = requireClassnames();
93
132
  var classNames = /*@__PURE__*/getDefaultExportFromCjs(classnamesExports);
94
133
 
95
- /**
96
- * Button variant types
97
- */
98
-
99
- /**
100
- * Icon types for button
101
- */
102
-
103
- /**
104
- * Icon position
105
- */
106
-
107
- /**
108
- * Get the icon component based on icon type
134
+ /**
135
+ * Get the icon component based on icon type
109
136
  */
110
- const getIcon = icon => {
137
+ var getIcon = function (icon) {
111
138
  switch (icon) {
112
139
  case "arrow-right":
113
140
  return /*#__PURE__*/React.createElement(FontAwesomeIcon, {
@@ -129,11 +156,10 @@ const getIcon = icon => {
129
156
  return null;
130
157
  }
131
158
  };
132
-
133
- /**
134
- * Get default icon for certain variants
159
+ /**
160
+ * Get default icon for certain variants
135
161
  */
136
- const getDefaultIcon = variant => {
162
+ var getDefaultIcon = function (variant) {
137
163
  switch (variant) {
138
164
  case "link-text":
139
165
  case "link-text-alt":
@@ -150,11 +176,10 @@ const getDefaultIcon = variant => {
150
176
  return "none";
151
177
  }
152
178
  };
153
-
154
- /**
155
- * Map alias variants to their actual CSS class variants
179
+ /**
180
+ * Map alias variants to their actual CSS class variants
156
181
  */
157
- const mapVariantToClass = variant => {
182
+ var mapVariantToClass = function (variant) {
158
183
  switch (variant) {
159
184
  case "text":
160
185
  return "link-text";
@@ -162,130 +187,127 @@ const mapVariantToClass = variant => {
162
187
  return variant;
163
188
  }
164
189
  };
165
-
166
- /**
167
- * Primary UI component for user interaction
190
+ /**
191
+ * Primary UI component for user interaction
168
192
  */
169
- const Button = ({
170
- children,
171
- variant = "primary",
172
- size = "medium",
173
- disabled = false,
174
- onClick,
175
- type = "button",
176
- className,
177
- icon,
178
- iconPosition = "right",
179
- ariaLabel,
180
- opensInNewTab,
181
- ...props
182
- }) => {
193
+ var Button = function (_a) {
194
+ var _b;
195
+ var children = _a.children,
196
+ _c = _a.variant,
197
+ variant = _c === void 0 ? "primary" : _c,
198
+ _d = _a.size,
199
+ size = _d === void 0 ? "medium" : _d,
200
+ _e = _a.disabled,
201
+ disabled = _e === void 0 ? false : _e,
202
+ onClick = _a.onClick,
203
+ _f = _a.type,
204
+ type = _f === void 0 ? "button" : _f,
205
+ className = _a.className,
206
+ icon = _a.icon,
207
+ _g = _a.iconPosition,
208
+ iconPosition = _g === void 0 ? "right" : _g,
209
+ ariaLabel = _a.ariaLabel;
210
+ _a.opensInNewTab;
211
+ var props = __rest(_a, ["children", "variant", "size", "disabled", "onClick", "type", "className", "icon", "iconPosition", "ariaLabel", "opensInNewTab"]);
183
212
  // Map alias variants to actual class names
184
- const cssVariant = mapVariantToClass(variant);
185
-
213
+ var cssVariant = mapVariantToClass(variant);
186
214
  // Determine the icon to display
187
- const displayIcon = icon ?? getDefaultIcon(variant);
188
- const iconElement = getIcon(displayIcon);
189
-
215
+ var displayIcon = icon !== null && icon !== void 0 ? icon : getDefaultIcon(variant);
216
+ var iconElement = getIcon(displayIcon);
190
217
  // Check if this is an icon-only button (carousel arrows)
191
- const isIconOnly = variant === "carousel-arrow-left" || variant === "carousel-arrow-right";
192
- const isCarouselLeft = variant === "carousel-arrow-left";
193
- const isCarouselRight = variant === "carousel-arrow-right";
194
- const buttonClasses = classNames(styles$k.button, styles$k[`button--${cssVariant}`], styles$k[`button--${size}`], {
195
- [styles$k["button--disabled"]]: disabled
196
- }, className);
197
- const iconClasses = classNames(styles$k.button__icon, styles$k[`button__icon--${iconPosition}`]);
198
-
218
+ var isIconOnly = variant === "carousel-arrow-left" || variant === "carousel-arrow-right";
219
+ var isCarouselLeft = variant === "carousel-arrow-left";
220
+ var isCarouselRight = variant === "carousel-arrow-right";
221
+ var buttonClasses = classNames(styles$l.button, styles$l["button--".concat(cssVariant)], styles$l["button--".concat(size)], (_b = {}, _b[styles$l["button--disabled"]] = disabled, _b), className);
222
+ var iconClasses = classNames(styles$l.button__icon, styles$l["button__icon--".concat(iconPosition)]);
199
223
  // Generate accessible label for icon-only buttons
200
- const accessibleLabel = ariaLabel || (isIconOnly ? variant === "carousel-arrow-left" ? "Previous" : "Next" : undefined);
224
+ var accessibleLabel = ariaLabel || (isIconOnly ? variant === "carousel-arrow-left" ? "Previous" : "Next" : undefined);
201
225
  return /*#__PURE__*/React.createElement("button", _extends({
202
226
  type: type,
203
227
  className: buttonClasses,
204
228
  disabled: disabled,
205
229
  onClick: onClick,
206
230
  "aria-label": accessibleLabel,
207
- "data-force-state": props['data-force-state']
231
+ "data-force-state": props["data-force-state"]
208
232
  }, props), !isIconOnly && children, isCarouselLeft && /*#__PURE__*/React.createElement("span", {
209
233
  className: iconClasses
210
234
  }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
211
235
  icon: faArrowLeft,
212
- className: styles$k.button__icon__default
236
+ className: styles$l.button__icon__default
213
237
  }), /*#__PURE__*/React.createElement(FontAwesomeIcon, {
214
238
  icon: faArrowLeftLong,
215
- className: styles$k.button__icon__hover
239
+ className: styles$l.button__icon__hover
216
240
  })), isCarouselRight && /*#__PURE__*/React.createElement("span", {
217
241
  className: iconClasses
218
242
  }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
219
243
  icon: faArrowRight,
220
- className: styles$k.button__icon__default
244
+ className: styles$l.button__icon__default
221
245
  }), /*#__PURE__*/React.createElement(FontAwesomeIcon, {
222
246
  icon: faArrowRightLong,
223
- className: styles$k.button__icon__hover
247
+ className: styles$l.button__icon__hover
224
248
  })), !isIconOnly && iconElement && /*#__PURE__*/React.createElement("span", {
225
249
  className: iconClasses
226
250
  }, iconElement));
227
251
  };
228
252
 
229
- var styles$j = {"footer":"Footer-module__footer___Oavyx","footer--mobile":"Footer-module__footer--mobile___9HQC-","footer__container":"Footer-module__footer__container___ohvnm","footer__links":"Footer-module__footer__links___DdVK8","footer__linkGroup":"Footer-module__footer__linkGroup___1B7JA","footer__linkList":"Footer-module__footer__linkList___j-DWF","footer__linkHeading":"Footer-module__footer__linkHeading___LtE6X","footer__link":"Footer-module__footer__link___G5HPW","footer__cta":"Footer-module__footer__cta___MRJLr","footer__socialIcons":"Footer-module__footer__socialIcons___j0aRp","footer__socialIcon":"Footer-module__footer__socialIcon___1uVTm","footer__countrySelector":"Footer-module__footer__countrySelector___pVtN5","footer__bottom":"Footer-module__footer__bottom___77bPL","footer__bottomLeft":"Footer-module__footer__bottomLeft___tlst1","footer__bottomLinks":"Footer-module__footer__bottomLinks___s22h7","footer__bottomLink":"Footer-module__footer__bottomLink___SLzwY","footer__copyright":"Footer-module__footer__copyright___4bZOF","footer__brandSection":"Footer-module__footer__brandSection___BBr5f","footer__logo":"Footer-module__footer__logo___mv-9M","footer__leftCol":"Footer-module__footer__leftCol___vmKNN","footer__motto":"Footer-module__footer__motto___QtB2m","footer__main":"Footer-module__footer__main___NSU9d","footer__badge":"Footer-module__footer__badge___faejb","footer__badgeIcon":"Footer-module__footer__badgeIcon___xJ519","footer__badgeText":"Footer-module__footer__badgeText___imXgG","footer__linkText":"Footer-module__footer__linkText___Gc18Z","footer__linkIcon":"Footer-module__footer__linkIcon___IZzJM","footer__countrySelectorIcon":"Footer-module__footer__countrySelectorIcon___hhEd4"};
253
+ var styles$k = {"footer":"Footer-module__footer___Oavyx","footer--mobile":"Footer-module__footer--mobile___9HQC-","footer__container":"Footer-module__footer__container___ohvnm","footer__links":"Footer-module__footer__links___DdVK8","footer__linkGroup":"Footer-module__footer__linkGroup___1B7JA","footer__linkList":"Footer-module__footer__linkList___j-DWF","footer__linkHeading":"Footer-module__footer__linkHeading___LtE6X","footer__link":"Footer-module__footer__link___G5HPW","footer__cta":"Footer-module__footer__cta___MRJLr","footer__socialIcons":"Footer-module__footer__socialIcons___j0aRp","footer__socialIcon":"Footer-module__footer__socialIcon___1uVTm","footer__countrySelector":"Footer-module__footer__countrySelector___pVtN5","footer__bottom":"Footer-module__footer__bottom___77bPL","footer__bottomLeft":"Footer-module__footer__bottomLeft___tlst1","footer__bottomLinks":"Footer-module__footer__bottomLinks___s22h7","footer__bottomLink":"Footer-module__footer__bottomLink___SLzwY","footer__copyright":"Footer-module__footer__copyright___4bZOF","footer__brandSection":"Footer-module__footer__brandSection___BBr5f","footer__logo":"Footer-module__footer__logo___mv-9M","footer__leftCol":"Footer-module__footer__leftCol___vmKNN","footer__motto":"Footer-module__footer__motto___QtB2m","footer__main":"Footer-module__footer__main___NSU9d","footer__badge":"Footer-module__footer__badge___faejb","footer__badgeIcon":"Footer-module__footer__badgeIcon___xJ519","footer__badgeText":"Footer-module__footer__badgeText___imXgG","footer__linkText":"Footer-module__footer__linkText___Gc18Z","footer__linkIcon":"Footer-module__footer__linkIcon___IZzJM","footer__countrySelectorIcon":"Footer-module__footer__countrySelectorIcon___hhEd4"};
230
254
 
231
- /**
232
- * External link icon (↗) for footer links that open in new tabs
233
- */
234
- const ExternalLinkIcon = ({
235
- className,
236
- size = 15
237
- }) => /*#__PURE__*/React.createElement("svg", {
238
- width: size,
239
- height: size,
240
- viewBox: "0 0 15 15",
241
- fill: "none",
242
- xmlns: "http://www.w3.org/2000/svg",
243
- className: className,
244
- "aria-hidden": "true"
245
- }, /*#__PURE__*/React.createElement("path", {
246
- 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",
247
- stroke: "currentColor",
248
- strokeWidth: "1.5",
249
- strokeLinecap: "round",
250
- strokeLinejoin: "round"
251
- }));
252
-
253
- /**
254
- * Atlas Copco Group badge icon (square)
255
+ /**
256
+ * External link icon (↗) for footer links that open in new tabs
255
257
  */
256
- const AtlasCopcoIcon = ({
257
- className,
258
- size = 14
259
- }) => /*#__PURE__*/React.createElement("svg", {
260
- width: size,
261
- height: size,
262
- viewBox: "0 0 14 14",
263
- fill: "none",
264
- xmlns: "http://www.w3.org/2000/svg",
265
- className: className,
266
- "aria-hidden": "true"
267
- }, /*#__PURE__*/React.createElement("rect", {
268
- x: "0.5",
269
- y: "0.5",
270
- width: "13",
271
- height: "13",
272
- rx: "1.5",
273
- fill: "#D9D9D9",
274
- stroke: "#D9D9D9"
275
- }));
258
+ var ExternalLinkIcon = function (_a) {
259
+ var className = _a.className,
260
+ _b = _a.size,
261
+ size = _b === void 0 ? 15 : _b;
262
+ return /*#__PURE__*/React.createElement("svg", {
263
+ width: size,
264
+ height: size,
265
+ viewBox: "0 0 15 15",
266
+ fill: "none",
267
+ xmlns: "http://www.w3.org/2000/svg",
268
+ className: className,
269
+ "aria-hidden": "true"
270
+ }, /*#__PURE__*/React.createElement("path", {
271
+ 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",
272
+ stroke: "currentColor",
273
+ strokeWidth: "1.5",
274
+ strokeLinecap: "round",
275
+ strokeLinejoin: "round"
276
+ }));
277
+ };
276
278
 
277
- // =============================================================================
278
- // TYPE DEFINITIONS
279
- // =============================================================================
279
+ /**
280
+ * Atlas Copco Group badge icon (square)
281
+ */
282
+ var AtlasCopcoIcon = function (_a) {
283
+ var className = _a.className,
284
+ _b = _a.size,
285
+ size = _b === void 0 ? 14 : _b;
286
+ return /*#__PURE__*/React.createElement("svg", {
287
+ width: size,
288
+ height: size,
289
+ viewBox: "0 0 14 14",
290
+ fill: "none",
291
+ xmlns: "http://www.w3.org/2000/svg",
292
+ className: className,
293
+ "aria-hidden": "true"
294
+ }, /*#__PURE__*/React.createElement("rect", {
295
+ x: "0.5",
296
+ y: "0.5",
297
+ width: "13",
298
+ height: "13",
299
+ rx: "1.5",
300
+ fill: "#D9D9D9",
301
+ stroke: "#D9D9D9"
302
+ }));
303
+ };
280
304
 
281
305
  // =============================================================================
282
306
  // SOCIAL ICON COMPONENT
283
307
  // =============================================================================
284
-
285
- const SocialIconComponent = ({
286
- platform
287
- }) => {
288
- const iconMap = {
308
+ var SocialIconComponent = function (_a) {
309
+ var platform = _a.platform;
310
+ var iconMap = {
289
311
  facebook: faFacebookF,
290
312
  x: faXTwitter,
291
313
  linkedin: faLinkedinIn,
@@ -296,19 +318,14 @@ const SocialIconComponent = ({
296
318
  icon: iconMap[platform]
297
319
  });
298
320
  };
299
-
300
- // =============================================================================
301
- // FOOTER LINK COMPONENT
302
- // =============================================================================
303
-
304
- const FooterLink = ({
305
- item,
306
- className,
307
- variant = 'default'
308
- }) => {
309
- const baseClass = variant === 'bottom' ? styles$j.footer__bottomLink : styles$j.footer__link;
310
- const linkClasses = classNames(baseClass, className);
311
- const handleClick = e => {
321
+ var FooterLink = function (_a) {
322
+ var item = _a.item,
323
+ className = _a.className,
324
+ _b = _a.variant,
325
+ variant = _b === void 0 ? 'default' : _b;
326
+ var baseClass = variant === 'bottom' ? styles$k.footer__bottomLink : styles$k.footer__link;
327
+ var linkClasses = classNames(baseClass, className);
328
+ var handleClick = function (e) {
312
329
  if (item.onClick) {
313
330
  e.preventDefault();
314
331
  item.onClick();
@@ -322,169 +339,151 @@ const FooterLink = ({
322
339
  target: '_blank',
323
340
  rel: 'noopener noreferrer'
324
341
  }), /*#__PURE__*/React.createElement("span", {
325
- className: styles$j.footer__linkText
342
+ className: styles$k.footer__linkText
326
343
  }, item.label), item.external && /*#__PURE__*/React.createElement("span", {
327
- className: styles$j.footer__linkIcon
344
+ className: styles$k.footer__linkIcon
328
345
  }, /*#__PURE__*/React.createElement(ExternalLinkIcon, {
329
346
  size: 15
330
347
  })));
331
348
  };
332
-
333
- // =============================================================================
334
- // FOOTER LINK GROUP COMPONENT
335
- // =============================================================================
336
-
337
- const FooterLinkGroup = ({
338
- heading,
339
- links,
340
- className,
341
- children
342
- }) => {
349
+ var FooterLinkGroup = function (_a) {
350
+ var heading = _a.heading,
351
+ links = _a.links,
352
+ className = _a.className,
353
+ children = _a.children;
343
354
  return /*#__PURE__*/React.createElement("div", {
344
- className: classNames(styles$j.footer__linkGroup, className)
355
+ className: classNames(styles$k.footer__linkGroup, className)
345
356
  }, /*#__PURE__*/React.createElement("h3", {
346
- className: styles$j.footer__linkHeading
357
+ className: styles$k.footer__linkHeading
347
358
  }, heading), /*#__PURE__*/React.createElement("ul", {
348
- className: styles$j.footer__linkList
349
- }, links.map((link, index) => /*#__PURE__*/React.createElement("li", {
350
- key: index
351
- }, /*#__PURE__*/React.createElement(FooterLink, {
352
- item: link
353
- })))), children);
359
+ className: styles$k.footer__linkList
360
+ }, links.map(function (link, index) {
361
+ return /*#__PURE__*/React.createElement("li", {
362
+ key: index
363
+ }, /*#__PURE__*/React.createElement(FooterLink, {
364
+ item: link
365
+ }));
366
+ })), children);
354
367
  };
355
-
356
- // =============================================================================
357
- // FOOTER SOCIAL ICONS COMPONENT
358
- // =============================================================================
359
-
360
- const FooterSocialIcons = ({
361
- links,
362
- className
363
- }) => {
368
+ var FooterSocialIcons = function (_a) {
369
+ var links = _a.links,
370
+ className = _a.className;
364
371
  return /*#__PURE__*/React.createElement("div", {
365
- className: classNames(styles$j.footer__socialIcons, className)
366
- }, links.map((link, index) => /*#__PURE__*/React.createElement("a", {
367
- key: index,
368
- href: link.href,
369
- className: styles$j.footer__socialIcon,
370
- "aria-label": link.ariaLabel,
371
- target: "_blank",
372
- rel: "noopener noreferrer"
373
- }, /*#__PURE__*/React.createElement(SocialIconComponent, {
374
- platform: link.platform
375
- }))));
372
+ className: classNames(styles$k.footer__socialIcons, className)
373
+ }, links.map(function (link, index) {
374
+ return /*#__PURE__*/React.createElement("a", {
375
+ key: index,
376
+ href: link.href,
377
+ className: styles$k.footer__socialIcon,
378
+ "aria-label": link.ariaLabel,
379
+ target: "_blank",
380
+ rel: "noopener noreferrer"
381
+ }, /*#__PURE__*/React.createElement(SocialIconComponent, {
382
+ platform: link.platform
383
+ }));
384
+ }));
376
385
  };
377
-
378
- // =============================================================================
379
- // FOOTER SOCIAL ICON (STANDALONE) COMPONENT
380
- // =============================================================================
381
-
382
- const FooterSocialIcon = ({
383
- platform,
384
- className
385
- }) => {
386
- const iconClasses = classNames(styles$j.footer__socialIcon, className);
386
+ var FooterSocialIcon = function (_a) {
387
+ var platform = _a.platform,
388
+ className = _a.className;
389
+ var iconClasses = classNames(styles$k.footer__socialIcon, className);
387
390
  return /*#__PURE__*/React.createElement("span", {
388
391
  className: iconClasses
389
392
  }, /*#__PURE__*/React.createElement(SocialIconComponent, {
390
393
  platform: platform
391
394
  }));
392
395
  };
393
-
394
- // =============================================================================
395
- // FOOTER BOTTOM COMPONENT
396
- // =============================================================================
397
-
398
- const FooterBottom = ({
399
- links,
400
- copyright,
401
- countrySelector,
402
- className
403
- }) => {
396
+ var FooterBottom = function (_a) {
397
+ var links = _a.links,
398
+ copyright = _a.copyright,
399
+ countrySelector = _a.countrySelector,
400
+ className = _a.className;
404
401
  return /*#__PURE__*/React.createElement("div", {
405
- className: classNames(styles$j.footer__bottom, className)
402
+ className: classNames(styles$k.footer__bottom, className)
406
403
  }, /*#__PURE__*/React.createElement("div", {
407
- className: styles$j.footer__bottomLeft
404
+ className: styles$k.footer__bottomLeft
408
405
  }, /*#__PURE__*/React.createElement("div", {
409
- className: styles$j.footer__bottomLinks
410
- }, links.map((link, index) => /*#__PURE__*/React.createElement(FooterLink, {
411
- key: index,
412
- item: link,
413
- variant: "bottom"
414
- }))), /*#__PURE__*/React.createElement("p", {
415
- className: styles$j.footer__copyright
406
+ className: styles$k.footer__bottomLinks
407
+ }, links.map(function (link, index) {
408
+ return /*#__PURE__*/React.createElement(FooterLink, {
409
+ key: index,
410
+ item: link,
411
+ variant: "bottom"
412
+ });
413
+ })), /*#__PURE__*/React.createElement("p", {
414
+ className: styles$k.footer__copyright
416
415
  }, copyright)), countrySelector && /*#__PURE__*/React.createElement("a", {
417
416
  href: countrySelector.href || '#',
418
- className: styles$j.footer__countrySelector
417
+ className: styles$k.footer__countrySelector
419
418
  }, countrySelector.showIcon !== false && /*#__PURE__*/React.createElement("span", {
420
- className: styles$j.footer__countrySelectorIcon
419
+ className: styles$k.footer__countrySelectorIcon
421
420
  }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
422
421
  icon: faGlobe
423
422
  })), countrySelector.label));
424
423
  };
425
-
426
424
  // =============================================================================
427
425
  // MAIN FOOTER COMPONENT
428
426
  // =============================================================================
429
-
430
- /**
431
- * Footer component with brand identity, navigation links, social icons, and legal information.
432
- * Supports two layout variants:
433
- * - desktop: Logo at top, 3-column main content
434
- * - mobile: Logo at bottom, stacked layout with CTA button
427
+ /**
428
+ * Footer component with brand identity, navigation links, social icons, and legal information.
429
+ * Supports two layout variants:
430
+ * - desktop: Logo at top, 3-column main content
431
+ * - mobile: Logo at bottom, stacked layout with CTA button
435
432
  */
436
- const Footer = ({
437
- variant = 'desktop',
438
- logo,
439
- motto,
440
- atlasCopcoBadge,
441
- quickLinks,
442
- quickLinksHeading = 'Quick links',
443
- contactLinks,
444
- contactHeading = 'Contact us',
445
- socialLinks,
446
- contactFormButton,
447
- bottomLinks,
448
- copyright,
449
- countrySelector,
450
- className
451
- }) => {
452
- const isMobile = variant === 'mobile';
453
- const footerClasses = classNames(styles$j.footer, isMobile && styles$j['footer--mobile'], className);
454
- const LogoWrapper = logo.href ? 'a' : 'div';
455
- const logoProps = logo.href ? {
433
+ var Footer = function (_a) {
434
+ var _b = _a.variant,
435
+ variant = _b === void 0 ? 'desktop' : _b,
436
+ logo = _a.logo,
437
+ motto = _a.motto,
438
+ atlasCopcoBadge = _a.atlasCopcoBadge,
439
+ quickLinks = _a.quickLinks,
440
+ _c = _a.quickLinksHeading,
441
+ quickLinksHeading = _c === void 0 ? 'Quick links' : _c,
442
+ contactLinks = _a.contactLinks,
443
+ _d = _a.contactHeading,
444
+ contactHeading = _d === void 0 ? 'Contact us' : _d,
445
+ socialLinks = _a.socialLinks,
446
+ contactFormButton = _a.contactFormButton,
447
+ bottomLinks = _a.bottomLinks,
448
+ copyright = _a.copyright,
449
+ countrySelector = _a.countrySelector,
450
+ className = _a.className;
451
+ var isMobile = variant === 'mobile';
452
+ var footerClasses = classNames(styles$k.footer, isMobile && styles$k['footer--mobile'], className);
453
+ var LogoWrapper = logo.href ? 'a' : 'div';
454
+ var logoProps = logo.href ? {
456
455
  href: logo.href,
457
- className: styles$j.footer__logo
456
+ className: styles$k.footer__logo
458
457
  } : {
459
- className: styles$j.footer__logo
458
+ className: styles$k.footer__logo
460
459
  };
461
-
462
460
  // Logo + Motto + Badge component (used in both layouts)
463
- const LogoSection = () => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(LogoWrapper, logoProps, /*#__PURE__*/React.createElement("img", {
464
- src: logo.src,
465
- alt: logo.alt
466
- })), /*#__PURE__*/React.createElement("div", {
467
- className: styles$j.footer__leftCol
468
- }, /*#__PURE__*/React.createElement("h2", {
469
- className: styles$j.footer__motto
470
- }, motto), atlasCopcoBadge && /*#__PURE__*/React.createElement("div", {
471
- className: styles$j.footer__badge
472
- }, atlasCopcoBadge.showIcon !== false && /*#__PURE__*/React.createElement("span", {
473
- className: styles$j.footer__badgeIcon
474
- }, /*#__PURE__*/React.createElement(AtlasCopcoIcon, {
475
- size: 14
476
- })), /*#__PURE__*/React.createElement("span", {
477
- className: styles$j.footer__badgeText
478
- }, atlasCopcoBadge.text))));
479
-
461
+ var LogoSection = function () {
462
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(LogoWrapper, logoProps, /*#__PURE__*/React.createElement("img", {
463
+ src: logo.src,
464
+ alt: logo.alt
465
+ })), /*#__PURE__*/React.createElement("div", {
466
+ className: styles$k.footer__leftCol
467
+ }, /*#__PURE__*/React.createElement("h2", {
468
+ className: styles$k.footer__motto
469
+ }, motto), atlasCopcoBadge && /*#__PURE__*/React.createElement("div", {
470
+ className: styles$k.footer__badge
471
+ }, atlasCopcoBadge.showIcon !== false && /*#__PURE__*/React.createElement("span", {
472
+ className: styles$k.footer__badgeIcon
473
+ }, /*#__PURE__*/React.createElement(AtlasCopcoIcon, {
474
+ size: 14
475
+ })), /*#__PURE__*/React.createElement("span", {
476
+ className: styles$k.footer__badgeText
477
+ }, atlasCopcoBadge.text))));
478
+ };
480
479
  // Mobile layout: Links at top, logo/motto at bottom
481
480
  if (isMobile) {
482
481
  return /*#__PURE__*/React.createElement("footer", {
483
482
  className: footerClasses
484
483
  }, /*#__PURE__*/React.createElement("div", {
485
- className: styles$j.footer__container
484
+ className: styles$k.footer__container
486
485
  }, /*#__PURE__*/React.createElement("div", {
487
- className: styles$j.footer__links
486
+ className: styles$k.footer__links
488
487
  }, /*#__PURE__*/React.createElement(FooterLinkGroup, {
489
488
  heading: quickLinksHeading,
490
489
  links: quickLinks
@@ -492,7 +491,7 @@ const Footer = ({
492
491
  heading: contactHeading,
493
492
  links: contactLinks
494
493
  })), contactFormButton && /*#__PURE__*/React.createElement("div", {
495
- className: styles$j.footer__cta
494
+ className: styles$k.footer__cta
496
495
  }, /*#__PURE__*/React.createElement("a", {
497
496
  href: contactFormButton.href,
498
497
  style: {
@@ -511,34 +510,33 @@ const Footer = ({
511
510
  copyright: copyright,
512
511
  countrySelector: countrySelector
513
512
  }), /*#__PURE__*/React.createElement("div", {
514
- className: styles$j.footer__brandSection
513
+ className: styles$k.footer__brandSection
515
514
  }, /*#__PURE__*/React.createElement(LogoSection, null))));
516
515
  }
517
-
518
516
  // Desktop layout: Logo at top, 3-column main content
519
517
  return /*#__PURE__*/React.createElement("footer", {
520
518
  className: footerClasses
521
519
  }, /*#__PURE__*/React.createElement("div", {
522
- className: styles$j.footer__container
520
+ className: styles$k.footer__container
523
521
  }, /*#__PURE__*/React.createElement(LogoWrapper, logoProps, /*#__PURE__*/React.createElement("img", {
524
522
  src: logo.src,
525
523
  alt: logo.alt
526
524
  })), /*#__PURE__*/React.createElement("div", {
527
- className: styles$j.footer__main
525
+ className: styles$k.footer__main
528
526
  }, /*#__PURE__*/React.createElement("div", {
529
- className: styles$j.footer__leftCol
527
+ className: styles$k.footer__leftCol
530
528
  }, /*#__PURE__*/React.createElement("h2", {
531
- className: styles$j.footer__motto
529
+ className: styles$k.footer__motto
532
530
  }, motto), atlasCopcoBadge && /*#__PURE__*/React.createElement("div", {
533
- className: styles$j.footer__badge
531
+ className: styles$k.footer__badge
534
532
  }, atlasCopcoBadge.showIcon !== false && /*#__PURE__*/React.createElement("span", {
535
- className: styles$j.footer__badgeIcon
533
+ className: styles$k.footer__badgeIcon
536
534
  }, /*#__PURE__*/React.createElement(AtlasCopcoIcon, {
537
535
  size: 14
538
536
  })), /*#__PURE__*/React.createElement("span", {
539
- className: styles$j.footer__badgeText
537
+ className: styles$k.footer__badgeText
540
538
  }, atlasCopcoBadge.text))), /*#__PURE__*/React.createElement("div", {
541
- className: styles$j.footer__links
539
+ className: styles$k.footer__links
542
540
  }, /*#__PURE__*/React.createElement(FooterLinkGroup, {
543
541
  heading: quickLinksHeading,
544
542
  links: quickLinks
@@ -554,48 +552,46 @@ const Footer = ({
554
552
  })));
555
553
  };
556
554
 
557
- var styles$i = {"pagination":"Pagination-module__pagination___Kih79","dividerLine":"Pagination-module__dividerLine___85LAX","paginationList":"Pagination-module__paginationList___-lZpm","paginationItem":"Pagination-module__paginationItem___VsGFa","pageButton":"Pagination-module__pageButton___b6UNF","pageButtonActive":"Pagination-module__pageButtonActive___D9m18","navButton":"Pagination-module__navButton___ZCIai","navButtonDisabled":"Pagination-module__navButtonDisabled___IZK8H","navIcon":"Pagination-module__navIcon___-BVJ3","ellipsis":"Pagination-module__ellipsis___iAsGN","ellipsisText":"Pagination-module__ellipsisText___fd6u1"};
555
+ var styles$j = {"pagination":"Pagination-module__pagination___Kih79","dividerLine":"Pagination-module__dividerLine___85LAX","paginationList":"Pagination-module__paginationList___-lZpm","paginationItem":"Pagination-module__paginationItem___VsGFa","pageButton":"Pagination-module__pageButton___b6UNF","pageButtonActive":"Pagination-module__pageButtonActive___D9m18","navButton":"Pagination-module__navButton___ZCIai","navButtonDisabled":"Pagination-module__navButtonDisabled___IZK8H","navIcon":"Pagination-module__navIcon___-BVJ3","ellipsis":"Pagination-module__ellipsis___iAsGN","ellipsisText":"Pagination-module__ellipsisText___fd6u1"};
558
556
 
559
- const PaginationItem = ({
560
- page,
561
- isActive,
562
- onClick,
563
- className
564
- }) => {
565
- const handleClick = () => {
557
+ var PaginationItem = function (_a) {
558
+ var page = _a.page,
559
+ isActive = _a.isActive,
560
+ onClick = _a.onClick,
561
+ className = _a.className;
562
+ var handleClick = function () {
566
563
  if (!isActive) {
567
564
  onClick(page);
568
565
  }
569
566
  };
570
- const handleKeyDown = event => {
567
+ var handleKeyDown = function (event) {
571
568
  if (event.key === "Enter" || event.key === " ") {
572
569
  event.preventDefault();
573
570
  handleClick();
574
571
  }
575
572
  };
576
573
  return /*#__PURE__*/React.createElement("li", {
577
- className: styles$i.paginationItem
574
+ className: styles$j.paginationItem
578
575
  }, /*#__PURE__*/React.createElement("button", {
579
576
  type: "button",
580
577
  onClick: handleClick,
581
578
  onKeyDown: handleKeyDown,
582
- className: `${styles$i.pageButton} ${isActive ? styles$i.pageButtonActive : ""} ${className || ""}`,
579
+ className: "".concat(styles$j.pageButton, " ").concat(isActive ? styles$j.pageButtonActive : "", " ").concat(className || ""),
583
580
  "aria-current": isActive ? "page" : undefined,
584
- "aria-label": `Page ${page}`,
581
+ "aria-label": "Page ".concat(page),
585
582
  disabled: isActive,
586
583
  tabIndex: isActive ? -1 : 0
587
584
  }, page));
588
585
  };
589
586
 
590
- const PaginationButton = ({
591
- label,
592
- disabled,
593
- onClick,
594
- direction,
595
- className,
596
- ariaLabel
597
- }) => {
598
- const handleKeyDown = event => {
587
+ var PaginationButton = function (_a) {
588
+ var label = _a.label,
589
+ disabled = _a.disabled,
590
+ onClick = _a.onClick,
591
+ direction = _a.direction,
592
+ className = _a.className,
593
+ ariaLabel = _a.ariaLabel;
594
+ var handleKeyDown = function (event) {
599
595
  if (event.key === "Enter" || event.key === " ") {
600
596
  event.preventDefault();
601
597
  if (!disabled) {
@@ -604,130 +600,130 @@ const PaginationButton = ({
604
600
  }
605
601
  };
606
602
  return /*#__PURE__*/React.createElement("li", {
607
- className: styles$i.paginationItem
603
+ className: styles$j.paginationItem
608
604
  }, /*#__PURE__*/React.createElement("button", {
609
605
  type: "button",
610
606
  onClick: onClick,
611
607
  onKeyDown: handleKeyDown,
612
608
  disabled: disabled,
613
- className: `${styles$i.navButton} ${styles$i[`navButton--${direction}`]} ${disabled ? styles$i.navButtonDisabled : ""} ${className || ""}`,
609
+ className: "".concat(styles$j.navButton, " ").concat(styles$j["navButton--".concat(direction)], " ").concat(disabled ? styles$j.navButtonDisabled : "", " ").concat(className || ""),
614
610
  "aria-label": ariaLabel || label,
615
611
  tabIndex: disabled ? -1 : 0
616
612
  }, /*#__PURE__*/React.createElement("span", null, label), direction === "next" && /*#__PURE__*/React.createElement(FontAwesomeIcon, {
617
613
  icon: faChevronRight$1,
618
- className: styles$i.navIcon,
614
+ className: styles$j.navIcon,
619
615
  "aria-hidden": "true"
620
616
  })));
621
617
  };
622
618
 
623
- const PaginationEllipsis = ({
624
- className
625
- }) => {
619
+ var PaginationEllipsis = function (_a) {
620
+ var className = _a.className;
626
621
  return /*#__PURE__*/React.createElement("li", {
627
- className: `${styles$i.paginationItem} ${styles$i.ellipsis}`,
622
+ className: "".concat(styles$j.paginationItem, " ").concat(styles$j.ellipsis),
628
623
  "aria-hidden": "true"
629
624
  }, /*#__PURE__*/React.createElement("span", {
630
- className: `${styles$i.ellipsisText} ${className || ""}`
625
+ className: "".concat(styles$j.ellipsisText, " ").concat(className || "")
631
626
  }, "..."));
632
627
  };
633
628
 
634
- /**
635
- * Generate page numbers to display with ellipsis logic
629
+ /**
630
+ * Generate page numbers to display with ellipsis logic
636
631
  */
637
- const generatePageNumbers = (currentPage, totalPages, maxVisiblePages) => {
632
+ var generatePageNumbers = function (currentPage, totalPages, maxVisiblePages) {
638
633
  if (totalPages <= maxVisiblePages) {
639
634
  return Array.from({
640
635
  length: totalPages
641
- }, (_, i) => i + 1);
636
+ }, function (_, i) {
637
+ return i + 1;
638
+ });
642
639
  }
643
- const pages = [];
644
- const halfVisible = Math.floor(maxVisiblePages / 2);
645
-
640
+ var pages = [];
641
+ var halfVisible = Math.floor(maxVisiblePages / 2);
646
642
  // Always show first page
647
643
  pages.push(1);
648
- let startPage = Math.max(2, currentPage - halfVisible);
649
- let endPage = Math.min(totalPages - 1, currentPage + halfVisible);
650
-
644
+ var startPage = Math.max(2, currentPage - halfVisible);
645
+ var endPage = Math.min(totalPages - 1, currentPage + halfVisible);
651
646
  // Adjust if we're near the start
652
647
  if (currentPage <= halfVisible + 1) {
653
648
  endPage = Math.min(maxVisiblePages - 1, totalPages - 1);
654
649
  startPage = 2;
655
650
  }
656
-
657
651
  // Adjust if we're near the end
658
652
  if (currentPage >= totalPages - halfVisible) {
659
653
  startPage = Math.max(2, totalPages - maxVisiblePages + 2);
660
654
  endPage = totalPages - 1;
661
655
  }
662
-
663
656
  // Add ellipsis after first page if needed
664
657
  if (startPage > 2) {
665
658
  pages.push("ellipsis-start");
666
659
  }
667
-
668
660
  // Add middle pages
669
- for (let i = startPage; i <= endPage; i++) {
661
+ for (var i = startPage; i <= endPage; i++) {
670
662
  pages.push(i);
671
663
  }
672
-
673
664
  // Add ellipsis before last page if needed
674
665
  if (endPage < totalPages - 1) {
675
666
  pages.push("ellipsis-end");
676
667
  }
677
-
678
668
  // Always show last page
679
669
  if (totalPages > 1) {
680
670
  pages.push(totalPages);
681
671
  }
682
672
  return pages;
683
673
  };
684
- const Pagination = ({
685
- currentPage,
686
- totalPages,
687
- onPageChange,
688
- maxVisiblePages = 10,
689
- showPrevious = true,
690
- showNext = true,
691
- previousLabel = "Previous",
692
- nextLabel = "Next",
693
- className,
694
- ariaLabel = "Pagination"
695
- }) => {
696
- const pageNumbers = useMemo(() => generatePageNumbers(currentPage, totalPages, maxVisiblePages), [currentPage, totalPages, maxVisiblePages]);
697
- const handlePageChange = page => {
674
+ var Pagination = function (_a) {
675
+ var currentPage = _a.currentPage,
676
+ totalPages = _a.totalPages,
677
+ onPageChange = _a.onPageChange,
678
+ _b = _a.maxVisiblePages,
679
+ maxVisiblePages = _b === void 0 ? 10 : _b,
680
+ _c = _a.showPrevious,
681
+ showPrevious = _c === void 0 ? true : _c,
682
+ _d = _a.showNext,
683
+ showNext = _d === void 0 ? true : _d,
684
+ _e = _a.previousLabel,
685
+ previousLabel = _e === void 0 ? "Previous" : _e,
686
+ _f = _a.nextLabel,
687
+ nextLabel = _f === void 0 ? "Next" : _f,
688
+ className = _a.className,
689
+ _g = _a.ariaLabel,
690
+ ariaLabel = _g === void 0 ? "Pagination" : _g;
691
+ var pageNumbers = useMemo(function () {
692
+ return generatePageNumbers(currentPage, totalPages, maxVisiblePages);
693
+ }, [currentPage, totalPages, maxVisiblePages]);
694
+ var handlePageChange = function (page) {
698
695
  if (page >= 1 && page <= totalPages && page !== currentPage) {
699
696
  onPageChange(page);
700
697
  }
701
698
  };
702
- const handlePrevious = () => {
699
+ var handlePrevious = function () {
703
700
  handlePageChange(currentPage - 1);
704
701
  };
705
- const handleNext = () => {
702
+ var handleNext = function () {
706
703
  handlePageChange(currentPage + 1);
707
704
  };
708
-
709
705
  // Don't render if there's only one page or no pages
710
706
  if (totalPages <= 1) {
711
707
  return null;
712
708
  }
713
709
  return /*#__PURE__*/React.createElement("nav", {
714
- className: `${styles$i.pagination} ${className || ""}`,
710
+ className: "".concat(styles$j.pagination, " ").concat(className || ""),
715
711
  "aria-label": ariaLabel,
716
712
  role: "navigation"
717
713
  }, /*#__PURE__*/React.createElement("div", {
718
- className: styles$i.dividerLine
714
+ className: styles$j.dividerLine
719
715
  }), /*#__PURE__*/React.createElement("ul", {
720
- className: styles$i.paginationList
716
+ className: styles$j.paginationList
721
717
  }, showPrevious && /*#__PURE__*/React.createElement(PaginationButton, {
722
718
  label: previousLabel,
723
719
  disabled: currentPage === 1,
724
720
  onClick: handlePrevious,
725
721
  direction: "previous",
726
722
  ariaLabel: "Go to previous page"
727
- }), pageNumbers.map((page, index) => {
723
+ }), pageNumbers.map(function (page, index) {
728
724
  if (page === "ellipsis-start" || page === "ellipsis-end") {
729
725
  return /*#__PURE__*/React.createElement(PaginationEllipsis, {
730
- key: `ellipsis-${index}`
726
+ key: "ellipsis-".concat(index)
731
727
  });
732
728
  }
733
729
  return /*#__PURE__*/React.createElement(PaginationItem, {
@@ -745,83 +741,88 @@ const Pagination = ({
745
741
  })));
746
742
  };
747
743
 
748
- var styles$h = {"productCard":"ProductCardHorizontal-module__productCard___Nl4jK","productWrapper":"ProductCardHorizontal-module__productWrapper___gs8fn","withImage":"ProductCardHorizontal-module__withImage___pPFw2","productTitle":"ProductCardHorizontal-module__productTitle___xBuu7","productPrice":"ProductCardHorizontal-module__productPrice___lf32A","productImage":"ProductCardHorizontal-module__productImage___sQsUO","productId":"ProductCardHorizontal-module__productId___3oOQV","productTitleDescriptionWrapper":"ProductCardHorizontal-module__productTitleDescriptionWrapper___Obv-j","productPriceCtaWrapper":"ProductCardHorizontal-module__productPriceCtaWrapper___Npkfl","productArrowIcon":"ProductCardHorizontal-module__productArrowIcon___1-A76"};
749
-
750
- var styles$g = {"imageContainer":"Image-module__imageContainer___iD5Kd","loading":"Image-module__loading___Sh1zO","image":"Image-module__image___1pa50","error":"Image-module__error___0LGZ2","skeleton":"Image-module__skeleton___0bGS6","shimmer":"Image-module__shimmer___aanrl","errorState":"Image-module__errorState___TjV-8","errorIcon":"Image-module__errorIcon___QCKvj","errorText":"Image-module__errorText___Q8pnb"};
751
-
752
- const Image = ({
753
- src,
754
- alt,
755
- width,
756
- height,
757
- loading = "lazy",
758
- decoding = "async",
759
- objectFit = "cover",
760
- objectPosition = "center",
761
- aspectRatio,
762
- isDecorative = false,
763
- fallbackSrc,
764
- onLoad,
765
- onError,
766
- className = "",
767
- srcSet,
768
- sizes
769
- }) => {
770
- const [isLoading, setIsLoading] = useState(true);
771
- const [hasError, setHasError] = useState(false);
772
- const [currentSrc, setCurrentSrc] = useState(src);
773
- const handleLoad = useCallback(() => {
744
+ var styles$i = {"productCard":"ProductCardHorizontal-module__productCard___Nl4jK","productWrapper":"ProductCardHorizontal-module__productWrapper___gs8fn","withImage":"ProductCardHorizontal-module__withImage___pPFw2","withPlaceholder":"ProductCardHorizontal-module__withPlaceholder___x8IUh","productTitle":"ProductCardHorizontal-module__productTitle___xBuu7","productPrice":"ProductCardHorizontal-module__productPrice___lf32A","productImage":"ProductCardHorizontal-module__productImage___sQsUO","placeholderImage":"ProductCardHorizontal-module__placeholderImage___kT1sp","productId":"ProductCardHorizontal-module__productId___3oOQV","productTitleDescriptionWrapper":"ProductCardHorizontal-module__productTitleDescriptionWrapper___Obv-j","productPriceCtaWrapper":"ProductCardHorizontal-module__productPriceCtaWrapper___Npkfl","productArrowIcon":"ProductCardHorizontal-module__productArrowIcon___1-A76"};
745
+
746
+ var styles$h = {"imageContainer":"Image-module__imageContainer___iD5Kd","loading":"Image-module__loading___Sh1zO","image":"Image-module__image___1pa50","error":"Image-module__error___0LGZ2","skeleton":"Image-module__skeleton___0bGS6","shimmer":"Image-module__shimmer___aanrl","errorState":"Image-module__errorState___TjV-8","errorIcon":"Image-module__errorIcon___QCKvj","errorText":"Image-module__errorText___Q8pnb"};
747
+
748
+ var Image = function (_a) {
749
+ var src = _a.src,
750
+ alt = _a.alt,
751
+ width = _a.width,
752
+ height = _a.height,
753
+ _b = _a.loading,
754
+ loading = _b === void 0 ? "lazy" : _b,
755
+ _c = _a.decoding,
756
+ decoding = _c === void 0 ? "async" : _c,
757
+ _d = _a.objectFit,
758
+ objectFit = _d === void 0 ? "cover" : _d,
759
+ _e = _a.objectPosition,
760
+ objectPosition = _e === void 0 ? "center" : _e,
761
+ aspectRatio = _a.aspectRatio,
762
+ _f = _a.isDecorative,
763
+ isDecorative = _f === void 0 ? false : _f,
764
+ fallbackSrc = _a.fallbackSrc,
765
+ onLoad = _a.onLoad,
766
+ onError = _a.onError,
767
+ _g = _a.className,
768
+ className = _g === void 0 ? "" : _g,
769
+ srcSet = _a.srcSet,
770
+ sizes = _a.sizes;
771
+ var _h = useState(true),
772
+ isLoading = _h[0],
773
+ setIsLoading = _h[1];
774
+ var _j = useState(false),
775
+ hasError = _j[0],
776
+ setHasError = _j[1];
777
+ var _k = useState(src),
778
+ currentSrc = _k[0],
779
+ setCurrentSrc = _k[1];
780
+ var handleLoad = useCallback(function () {
774
781
  setIsLoading(false);
775
782
  setHasError(false);
776
- onLoad?.();
783
+ onLoad === null || onLoad === void 0 ? void 0 : onLoad();
777
784
  }, [onLoad]);
778
- const handleError = useCallback(() => {
785
+ var handleError = useCallback(function () {
779
786
  setIsLoading(false);
780
787
  setHasError(true);
781
-
782
788
  // Try fallback if available and not already using it
783
789
  if (fallbackSrc && currentSrc !== fallbackSrc) {
784
790
  setCurrentSrc(fallbackSrc);
785
791
  setHasError(false);
786
792
  setIsLoading(true);
787
793
  } else {
788
- onError?.();
794
+ onError === null || onError === void 0 ? void 0 : onError();
789
795
  }
790
796
  }, [fallbackSrc, currentSrc, onError]);
791
-
792
797
  // Accessibility: decorative images should have empty alt and be hidden from screen readers
793
- const accessibilityProps = isDecorative ? {
798
+ var accessibilityProps = isDecorative ? {
794
799
  alt: "",
795
800
  "aria-hidden": true,
796
801
  role: "presentation"
797
802
  } : {
798
- alt
799
- };
800
- const containerStyle = {
801
- ...(aspectRatio && {
802
- aspectRatio
803
- }),
804
- ...(width && {
805
- width: typeof width === "number" ? `${width}px` : width
806
- }),
807
- ...(height && {
808
- height: typeof height === "number" ? `${height}px` : height
809
- })
803
+ alt: alt
810
804
  };
811
- const imageStyle = {
812
- objectFit,
813
- objectPosition
805
+ var containerStyle = __assign(__assign(__assign({}, aspectRatio && {
806
+ aspectRatio: aspectRatio
807
+ }), width && {
808
+ width: typeof width === "number" ? "".concat(width, "px") : width
809
+ }), height && {
810
+ height: typeof height === "number" ? "".concat(height, "px") : height
811
+ });
812
+ var imageStyle = {
813
+ objectFit: objectFit,
814
+ objectPosition: objectPosition
814
815
  };
815
816
  return /*#__PURE__*/React.createElement("div", {
816
- className: `${styles$g.imageContainer} ${className} ${isLoading ? styles$g.loading : ""} ${hasError ? styles$g.error : ""}`,
817
+ className: "".concat(styles$h.imageContainer, " ").concat(className, " ").concat(isLoading ? styles$h.loading : "", " ").concat(hasError ? styles$h.error : ""),
817
818
  style: containerStyle
818
819
  }, isLoading && /*#__PURE__*/React.createElement("div", {
819
- className: styles$g.skeleton,
820
+ className: styles$h.skeleton,
820
821
  "aria-hidden": "true"
821
822
  }, /*#__PURE__*/React.createElement("div", {
822
- className: styles$g.shimmer
823
+ className: styles$h.shimmer
823
824
  })), hasError && !fallbackSrc ? /*#__PURE__*/React.createElement("div", {
824
- className: styles$g.errorState,
825
+ className: styles$h.errorState,
825
826
  role: "img",
826
827
  "aria-label": alt || "Image failed to load"
827
828
  }, /*#__PURE__*/React.createElement("svg", {
@@ -832,7 +833,7 @@ const Image = ({
832
833
  strokeWidth: "1.5",
833
834
  strokeLinecap: "round",
834
835
  strokeLinejoin: "round",
835
- className: styles$g.errorIcon,
836
+ className: styles$h.errorIcon,
836
837
  "aria-hidden": "true"
837
838
  }, /*#__PURE__*/React.createElement("rect", {
838
839
  x: "3",
@@ -848,7 +849,7 @@ const Image = ({
848
849
  }), /*#__PURE__*/React.createElement("polyline", {
849
850
  points: "21 15 16 10 5 21"
850
851
  })), /*#__PURE__*/React.createElement("span", {
851
- className: styles$g.errorText
852
+ className: styles$h.errorText
852
853
  }, "Image unavailable")) : /*#__PURE__*/React.createElement("img", _extends({
853
854
  src: currentSrc
854
855
  }, accessibilityProps, {
@@ -858,7 +859,7 @@ const Image = ({
858
859
  decoding: decoding,
859
860
  onLoad: handleLoad,
860
861
  onError: handleError,
861
- className: styles$g.image,
862
+ className: styles$h.image,
862
863
  style: imageStyle,
863
864
  srcSet: srcSet,
864
865
  sizes: sizes
@@ -876,144 +877,285 @@ const faArrowUpRight = {
876
877
  icon: [384, 512, [], "e09f", "M328 96c13.3 0 24 10.7 24 24l0 240c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-182.1L73 409c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l231-231L88 144c-13.3 0-24-10.7-24-24s10.7-24 24-24l240 0z"]
877
878
  };
878
879
 
879
- const ProductCardHorizontal = ({
880
- id,
881
- imageUrl,
882
- url,
883
- title,
884
- description,
885
- price,
886
- productId,
887
- button,
888
- utm,
889
- className = ""
890
- }) => {
880
+ var PLACEHOLDER_INDICATOR = "?placeholder-storybook";
881
+ var PLACEHOLDER_SVG = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"440\" height=\"133\" viewBox=\"218.446 219.139 440 133\" role=\"img\" aria-label=\"Leybold placeholder logo\"><g fill=\"#ffff\"><path d=\"M290.317,313.442h37.784v12.782h-53.654v-70.62h15.87V313.442z\"/><path d=\"M386.309,310.883c-3.912,12.593-15.135,16.722-24.761,16.722c-15.878,0-28.046-7.084-28.046-28.62c0-6.296,2.322-26.458,26.98-26.458c11.116,0,26.457,4.917,26.457,28.819v2.457h-38.626c0.428,3.935,1.274,12.785,13.232,12.785c4.125,0,8.356-1.965,9.521-5.704L386.309,310.883L386.309,310.883z M371.709,294.852c-0.85-8.456-6.666-11.017-11.434-11.017c-6.979,0-10.686,4.129-11.532,11.017H371.709z\"/><path d=\"M423.556,325.343c-6.986,19.374-8.892,21.932-21.799,21.932c-2.014,0-4.553-0.096-6.665-0.194v-11.02c0.629,0.104,1.582,0.197,2.854,0.197c5.397,0,8.36-0.688,9.737-7.864l-20.741-54.488h16.508l12.062,38.553h0.209l11.539-38.553h15.658L423.556,325.343z\"/><path d=\"M463.54,280.689h0.213c2.328-3.344,6.775-8.164,16.297-8.164c12.385,0,23.389,8.854,23.389,26.949c0,14.359-6.98,28.129-23.703,28.129c-6.141,0-12.701-2.067-16.299-7.968h-0.211v6.589h-14.498v-70.62h14.812V280.689z M475.604,284.427c-10.158,0-12.701,8.455-12.701,16.815c0,7.773,3.707,15.049,13.129,15.049c9.521,0,12.168-9.641,12.168-15.83C488.198,292.192,485.02,284.427,475.604,284.427z\"/><path d=\"M538.094,327.604c-15.141,0-28.787-8.652-28.787-27.542c0-18.881,13.646-27.536,28.787-27.536c15.129,0,28.785,8.655,28.785,27.536C566.88,318.95,553.223,327.604,538.094,327.604z M538.094,284.129c-11.434,0-13.547,9.244-13.547,15.934c0,6.691,2.113,15.939,13.547,15.939c11.426,0,13.547-9.248,13.547-15.939C551.641,293.373,549.52,284.129,538.094,284.129z\"/><path d=\"M588.811,326.225h-14.814v-70.62h14.814V326.225z\"/><path d=\"M651.969,326.225h-14.5v-6.589h-0.213c-3.598,5.898-10.156,7.968-16.295,7.968c-16.727,0-23.703-13.77-23.703-28.129c0-18.097,11.004-26.949,23.381-26.949c9.523,0,13.975,4.82,16.295,8.164h0.221v-25.085h14.814V326.225z M624.663,316.291c9.418,0,13.121-7.273,13.121-15.05c0-8.359-2.537-16.814-12.703-16.814c-9.416,0-12.592,7.767-12.592,16.034C612.49,306.651,615.135,316.291,624.663,316.291z\"/></g><g fill=\"#ffff\"><path d=\"M268.323,226.771h-41.551v39.685C230.996,246.516,247.442,230.811,268.323,226.771z\"/><path d=\"M226.771,286.726v39.688h41.551C247.442,322.371,230.996,306.67,226.771,286.726z\"/><path d=\"M331.122,266.455V226.77h-41.552C310.449,230.811,326.892,246.516,331.122,266.455z\"/></g></svg>";
882
+ var PLACEHOLDER_IMAGE_DATA_URI = "data:image/svg+xml,".concat(encodeURIComponent(PLACEHOLDER_SVG));
883
+ var isPlaceholderImg = function (url) {
884
+ return !!url && url.includes(PLACEHOLDER_INDICATOR);
885
+ };
886
+ var ProductCardHorizontal = function (_a) {
887
+ _a.id;
888
+ var imageUrl = _a.imageUrl,
889
+ _b = _a.showProductImage,
890
+ showProductImage = _b === void 0 ? true : _b,
891
+ url = _a.url,
892
+ title = _a.title;
893
+ _a.description;
894
+ var price = _a.price,
895
+ productId = _a.productId,
896
+ button = _a.button,
897
+ utm = _a.utm,
898
+ _c = _a.className,
899
+ className = _c === void 0 ? "" : _c,
900
+ style = _a.style,
901
+ code = _a.code,
902
+ showProductPrice = _a.showProductPrice;
891
903
  if (!title) {
892
904
  return null;
893
905
  }
894
- const href = !utm || url && url.indexOf("utm") > -1 ? url : url + `?utm_source=${utm.utmSource}&utm_medium=${utm.utmMedium}&utm_campaign=${utm.utmCampaign}`;
906
+ console.log("Rendering ProductCardHorizontal with props:", {
907
+ showProductPrice: showProductPrice,
908
+ price: price
909
+ });
910
+ var hasPlaceholderImage = showProductImage && (!imageUrl || isPlaceholderImg(imageUrl));
911
+ var productImage = hasPlaceholderImage ? PLACEHOLDER_IMAGE_DATA_URI : imageUrl;
912
+ var href = !utm || url && url.indexOf("utm") > -1 ? url : url + "?utm_source=".concat(utm.utmSource, "&utm_medium=").concat(utm.utmMedium, "&utm_campaign=").concat(utm.utmCampaign);
895
913
  return /*#__PURE__*/React.createElement("a", {
896
914
  href: href,
897
- className: `${styles$h.productCard} ${className}`,
898
- "aria-label": `View product: ${title}`
915
+ className: "".concat(styles$i.productCard, " ").concat(className),
916
+ "aria-label": "View product: ".concat(title)
899
917
  }, /*#__PURE__*/React.createElement("div", {
900
- className: `${styles$h.productWrapper} ${imageUrl ? styles$h.withImage : ""}`
901
- }, imageUrl && /*#__PURE__*/React.createElement("div", {
902
- className: styles$h.productImage
918
+ className: "".concat(styles$i.productWrapper, " ").concat(showProductImage ? hasPlaceholderImage ? styles$i.withPlaceholder : styles$i.withImage : ""),
919
+ style: style
920
+ }, showProductImage && /*#__PURE__*/React.createElement("div", {
921
+ className: styles$i.productImage
903
922
  }, /*#__PURE__*/React.createElement(Image, {
904
- src: imageUrl,
905
- alt: title
923
+ src: productImage || PLACEHOLDER_IMAGE_DATA_URI,
924
+ alt: title,
925
+ className: hasPlaceholderImage ? styles$i.placeholderImage : "",
926
+ objectFit: hasPlaceholderImage ? "contain" : "cover",
927
+ fallbackSrc: PLACEHOLDER_IMAGE_DATA_URI
906
928
  })), /*#__PURE__*/React.createElement("div", {
907
- className: styles$h.productTitleDescriptionWrapper
929
+ className: styles$i.productTitleDescriptionWrapper
908
930
  }, /*#__PURE__*/React.createElement("h3", {
909
- className: styles$h.productTitle
910
- }, title), productId && /*#__PURE__*/React.createElement("p", {
911
- className: styles$h.productId
912
- }, productId)), /*#__PURE__*/React.createElement("div", {
913
- className: styles$h.productPriceCtaWrapper
931
+ className: styles$i.productTitle
932
+ }, title), productId || code ? /*#__PURE__*/React.createElement("p", {
933
+ className: styles$i.productId
934
+ }, productId || code) : null), /*#__PURE__*/React.createElement("div", {
935
+ className: styles$i.productPriceCtaWrapper
914
936
  }, /*#__PURE__*/React.createElement("p", {
915
- className: styles$h.productPrice
916
- }, price || " "), button ? /*#__PURE__*/React.createElement(Button, {
917
- className: styles$h.productButton,
937
+ className: styles$i.productPrice
938
+ }, showProductPrice ? price || "" : ""), button ? /*#__PURE__*/React.createElement(Button, {
939
+ className: styles$i.productButton,
918
940
  onClick: button.onClick,
919
941
  size: "extra-small"
920
942
  }, button.label) : /*#__PURE__*/React.createElement(FontAwesomeIcon, {
921
943
  icon: faArrowUpRight,
922
- className: styles$h.productArrowIcon,
944
+ className: styles$i.productArrowIcon,
923
945
  "aria-hidden": "true"
924
946
  }))));
925
947
  };
926
-
927
948
  // Alias for backward compatibility
928
- const ProductCardHorizontalParts = ProductCardHorizontal;
949
+ var ProductCardHorizontalParts = ProductCardHorizontal;
929
950
 
930
- var styles$f = {"productDetails":"ProductCardDetails-module__productDetails___-sx2l","spareCard":"ProductCardDetails-module__spareCard___vC1Ju"};
951
+ var styles$g = {"productDetails":"ProductCardDetails-module__productDetails___-sx2l","spareCard":"ProductCardDetails-module__spareCard___vC1Ju"};
931
952
 
932
953
  // Adapter to map design system props to ProductCardHorizontalParts props
933
- const SpareCardAdapter = props => {
934
- const {
935
- spare,
936
- ...rest
937
- } = props;
954
+ var SpareCardAdapter = function (props) {
955
+ var spare = props.spare,
956
+ rest = __rest(props, ["spare"]);
938
957
  return /*#__PURE__*/React.createElement(ProductCardHorizontalParts, {
939
- className: styles$f.spareCard,
940
- url: spare?.url || spare?.link || "#",
941
- title: spare?.name || spare?.title || "",
942
- description: spare?.description || "",
943
- price: spare?.priceValue || spare?.price || "",
944
- imageUrl: spare?.["img-product"] || spare?.image || "",
958
+ className: styles$g.spareCard,
959
+ url: (spare === null || spare === void 0 ? void 0 : spare.url) || (spare === null || spare === void 0 ? void 0 : spare.link) || "#",
960
+ title: (spare === null || spare === void 0 ? void 0 : spare.name) || (spare === null || spare === void 0 ? void 0 : spare.title) || "",
961
+ description: (spare === null || spare === void 0 ? void 0 : spare.description) || "",
962
+ price: (spare === null || spare === void 0 ? void 0 : spare.priceValue) || (spare === null || spare === void 0 ? void 0 : spare.price) || (props === null || props === void 0 ? void 0 : props.productPrice) || ""
963
+ // imageUrl={spare?.["img-product"] || spare?.image || ""}
964
+ ,
945
965
  utm: props.utm,
966
+ showProductPrice: props.showProductPrice,
967
+ showProductImage: false,
946
968
  button: {
947
969
  label: rest.cta || "View Product",
948
- onClick: () => window.open(spare?.url || spare?.link || "#", "_blank")
970
+ onClick: function () {
971
+ return window.open((spare === null || spare === void 0 ? void 0 : spare.url) || (spare === null || spare === void 0 ? void 0 : spare.link) || "#", "_blank");
972
+ }
949
973
  }
950
974
  });
951
975
  };
952
-
953
976
  // Re-export the design system component with Leybold styling
954
- const ProductCardDetails = ({
955
- id,
956
- imageUrl,
957
- title,
958
- description,
959
- price,
960
- code,
961
- facets,
962
- hit,
963
- utm,
964
- className = "",
965
- ProductCardComponent,
966
- hidespares
967
- }) => {
977
+ var ProductCardDetails = function (_a) {
978
+ var id = _a.id,
979
+ imageUrl = _a.imageUrl,
980
+ title = _a.title,
981
+ description = _a.description,
982
+ price = _a.price,
983
+ code = _a.code,
984
+ facets = _a.facets,
985
+ hit = _a.hit,
986
+ utm = _a.utm,
987
+ _b = _a.className,
988
+ className = _b === void 0 ? "" : _b,
989
+ ProductCardComponent = _a.ProductCardComponent,
990
+ hidespares = _a.hidespares,
991
+ showProductPrice = _a.showProductPrice,
992
+ _c = _a.showProductImage,
993
+ showProductImage = _c === void 0 ? true : _c;
968
994
  // Build the hit object expected by ProductDetailsCard
969
- const hitData = hit || {
970
- id,
971
- title,
972
- description,
973
- price,
974
- code,
995
+ var hitData = hit || {
996
+ id: id,
997
+ title: title,
998
+ description: description,
999
+ price: price,
1000
+ code: code,
975
1001
  image: imageUrl
976
1002
  };
977
1003
  return /*#__PURE__*/React.createElement("div", {
978
- className: styles$f.productDetails
1004
+ className: styles$g.productDetails
979
1005
  }, /*#__PURE__*/React.createElement(ProductDetailsCard, {
980
- className: `${className}`,
1006
+ className: "".concat(className),
981
1007
  title: title,
982
- imageUrl: imageUrl,
1008
+ imageUrl: showProductImage ? imageUrl : "",
983
1009
  imageAlt: title,
984
1010
  hit: hitData,
985
1011
  utm: utm,
986
1012
  facets: facets,
987
1013
  usePlainClasses: true,
988
1014
  ProductCardComponent: ProductCardComponent || SpareCardAdapter,
989
- hidespares: hidespares
1015
+ hidespares: hidespares,
1016
+ showProductPrice: showProductPrice,
1017
+ showProductImage: showProductImage
990
1018
  }));
991
1019
  };
992
1020
 
1021
+ var ContentCardBase = function (_a) {
1022
+ var title = _a.title,
1023
+ variant = _a.variant,
1024
+ url = _a.url,
1025
+ imageUrl = _a.imageUrl,
1026
+ category = _a.category,
1027
+ meta = _a.meta,
1028
+ excerpt = _a.excerpt,
1029
+ _b = _a.className,
1030
+ className = _b === void 0 ? "" : _b,
1031
+ style = _a.style,
1032
+ ariaLabel = _a.ariaLabel,
1033
+ contentMetaClassName = _a.contentMetaClassName,
1034
+ contentCategoryClassName = _a.contentCategoryClassName,
1035
+ contentMetaTextClassName = _a.contentMetaTextClassName,
1036
+ contentTitleClassName = _a.contentTitleClassName,
1037
+ contentExcerptClassName = _a.contentExcerptClassName;
1038
+ console.log("variant in ContentCardBase:", variant);
1039
+ var fallbackImage = "/assets/list-card.png";
1040
+ var isCareerView = variant === "career-view";
1041
+ var defaultAriaLabel = isCareerView ? "View career opportunity: ".concat(title) : "View content: ".concat(title);
1042
+ return /*#__PURE__*/React.createElement("a", {
1043
+ href: url,
1044
+ className: className,
1045
+ style: style,
1046
+ "aria-label": ariaLabel || defaultAriaLabel
1047
+ }, imageUrl && /*#__PURE__*/React.createElement("div", {
1048
+ className: "content-card-image-wrapper"
1049
+ }, /*#__PURE__*/React.createElement(Image, {
1050
+ src: imageUrl,
1051
+ alt: title,
1052
+ className: "content-card-image",
1053
+ aspectRatio: "16 / 9",
1054
+ loading: "lazy",
1055
+ decoding: "async",
1056
+ fallbackSrc: fallbackImage
1057
+ })), isCareerView ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h3", {
1058
+ className: contentTitleClassName
1059
+ }, title), category && /*#__PURE__*/React.createElement("span", {
1060
+ className: contentCategoryClassName
1061
+ }, category), meta && /*#__PURE__*/React.createElement("span", {
1062
+ className: contentMetaTextClassName
1063
+ }, meta), /*#__PURE__*/React.createElement(Button, {
1064
+ "aria-label": ariaLabel || defaultAriaLabel,
1065
+ variant: "link-text-alt",
1066
+ className: "career-button"
1067
+ }, "See more")) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
1068
+ className: contentMetaClassName
1069
+ }, category && /*#__PURE__*/React.createElement("span", {
1070
+ className: contentCategoryClassName
1071
+ }, category), meta && /*#__PURE__*/React.createElement("span", {
1072
+ className: contentMetaTextClassName
1073
+ }, meta)), /*#__PURE__*/React.createElement("h3", {
1074
+ className: contentTitleClassName
1075
+ }, title), excerpt && /*#__PURE__*/React.createElement("p", {
1076
+ className: contentExcerptClassName
1077
+ }, excerpt), /*#__PURE__*/React.createElement(Button, {
1078
+ "aria-label": ariaLabel || defaultAriaLabel
1079
+ }, "Read More")));
1080
+ };
1081
+
1082
+ var styles$f = {"contentCard":"ContentCardVertical-module__contentCard___EoYej","contentCard--instant-view":"ContentCardVertical-module__contentCard--instant-view___dsIUf","contentCard--results-view":"ContentCardVertical-module__contentCard--results-view___6mSHQ","contentMeta":"ContentCardVertical-module__contentMeta___l2GtO","contentCategory":"ContentCardVertical-module__contentCategory___78vrj","contentMetaText":"ContentCardVertical-module__contentMetaText___Rl-ln","contentTitle":"ContentCardVertical-module__contentTitle___rEiHm","contentExcerpt":"ContentCardVertical-module__contentExcerpt___5Gb2G"};
1083
+
1084
+ var ContentCardVertical = function (_a) {
1085
+ var id = _a.id,
1086
+ title = _a.title,
1087
+ url = _a.url,
1088
+ imageUrl = _a.imageUrl,
1089
+ category = _a.category,
1090
+ meta = _a.meta,
1091
+ excerpt = _a.excerpt,
1092
+ _b = _a.className,
1093
+ className = _b === void 0 ? "" : _b,
1094
+ variant = _a.variant;
1095
+ var cardClasses = classNames(styles$f.contentCard, styles$f["contentCard--".concat(variant)], className);
1096
+ console.log("Rendering ContentCardVertical with variant:", variant);
1097
+ return /*#__PURE__*/React.createElement(ContentCardBase, {
1098
+ id: id,
1099
+ variant: variant,
1100
+ title: title,
1101
+ url: url,
1102
+ imageUrl: imageUrl,
1103
+ category: category,
1104
+ meta: meta,
1105
+ excerpt: excerpt,
1106
+ className: cardClasses,
1107
+ contentMetaClassName: styles$f.contentMeta,
1108
+ contentCategoryClassName: styles$f.contentCategory,
1109
+ contentMetaTextClassName: styles$f.contentMetaText,
1110
+ contentTitleClassName: styles$f.contentTitle,
1111
+ contentExcerptClassName: styles$f.contentExcerpt
1112
+ });
1113
+ };
1114
+
993
1115
  // Adapter component that maps props from AlgoliaDynamicSearchRaw to ProductCardHorizontal
994
1116
  // AlgoliaDynamicSearchRaw passes: title, cardLink, productPrice, cta, hit (original data)
995
- const ProductCardAdapter = props => {
996
- const {
997
- hit,
998
- title,
999
- cardLink,
1000
- productPrice,
1001
- cta,
1002
- showProductPrice,
1003
- className,
1004
- code,
1005
- utm
1006
- } = props;
1007
- console.log(props);
1117
+ var cardAdapter = function (props) {
1118
+ var hit = props.hit,
1119
+ title = props.title,
1120
+ cardLink = props.cardLink,
1121
+ productPrice = props.productPrice;
1122
+ props.cta;
1123
+ var showProductPrice = props.showProductPrice,
1124
+ className = props.className,
1125
+ queryType = props.queryType;
1126
+ return /*#__PURE__*/React.createElement(ContentCardVertical, {
1127
+ id: (hit === null || hit === void 0 ? void 0 : hit.id) || "",
1128
+ variant: queryType && queryType === "careers" ? "career-view" : "content-view",
1129
+ title: title || (hit === null || hit === void 0 ? void 0 : hit.title) || "",
1130
+ url: cardLink || (hit === null || hit === void 0 ? void 0 : hit.link) || "#",
1131
+ imageUrl: (hit === null || hit === void 0 ? void 0 : hit.image) || "",
1132
+ category: (hit === null || hit === void 0 ? void 0 : hit.category) || "",
1133
+ meta: showProductPrice ? productPrice || (hit === null || hit === void 0 ? void 0 : hit.price) || "" : "",
1134
+ excerpt: (hit === null || hit === void 0 ? void 0 : hit.description) || "",
1135
+ className: className
1136
+ });
1137
+ };
1138
+ var ProductCardAdapter = function (props) {
1139
+ var hit = props.hit,
1140
+ title = props.title,
1141
+ cardLink = props.cardLink,
1142
+ productPrice = props.productPrice,
1143
+ cta = props.cta,
1144
+ showProductPrice = props.showProductPrice,
1145
+ showProductImage = props.showProductImage,
1146
+ className = props.className,
1147
+ code = props.code,
1148
+ utm = props.utm;
1008
1149
  // Get values from direct props or fallback to hit object
1009
- const url = cardLink || hit?.link || "#";
1010
- const imageUrl = "";
1011
- const price = showProductPrice ? productPrice || hit?.price || "" : "";
1012
- const productTitle = title || hit?.title || "";
1013
- const productCode = code || hit?.code || "";
1014
- const buttonLabel = cta || "View Product";
1150
+ var url = cardLink || (hit === null || hit === void 0 ? void 0 : hit.link) || "#";
1151
+ var imageUrl = (hit === null || hit === void 0 ? void 0 : hit.image) || "";
1152
+ var price = showProductPrice ? productPrice || (hit === null || hit === void 0 ? void 0 : hit.price) || "" : "";
1153
+ var productTitle = title || (hit === null || hit === void 0 ? void 0 : hit.title) || "";
1154
+ var productCode = code || (hit === null || hit === void 0 ? void 0 : hit.code) || "";
1155
+ var buttonLabel = cta || "View Product";
1015
1156
  return /*#__PURE__*/React.createElement(ProductCardHorizontalParts, {
1016
1157
  imageUrl: imageUrl,
1158
+ showProductImage: showProductImage,
1017
1159
  url: url,
1018
1160
  utm: utm,
1019
1161
  title: productTitle,
@@ -1021,69 +1163,99 @@ const ProductCardAdapter = props => {
1021
1163
  price: price,
1022
1164
  button: {
1023
1165
  label: buttonLabel,
1024
- onClick: () => window.open(url, "_blank")
1166
+ onClick: function () {
1167
+ return window.open(url, "_blank");
1168
+ }
1025
1169
  },
1026
- className: className
1170
+ className: className,
1171
+ style: __assign({}, showProductImage ? {
1172
+ minHeight: "130px"
1173
+ } : {}),
1174
+ code: productCode,
1175
+ showProductPrice: showProductPrice
1027
1176
  });
1028
1177
  };
1029
- const ProductCardDetailsAdapter = props => {
1030
- const {
1031
- hit,
1032
- title,
1033
- cardLink,
1034
- productPrice,
1035
- cta,
1036
- showProductPrice,
1037
- className,
1038
- code,
1039
- utm,
1040
- facets,
1041
- related_products,
1042
- hidespares
1043
- } = props;
1178
+ var ProductCardDetailsAdapter = function (props) {
1179
+ var hit = props.hit,
1180
+ title = props.title;
1181
+ props.cardLink;
1182
+ var productPrice = props.productPrice;
1183
+ props.cta;
1184
+ var showProductPrice = props.showProductPrice,
1185
+ showProductImage = props.showProductImage,
1186
+ className = props.className,
1187
+ code = props.code,
1188
+ utm = props.utm,
1189
+ facets = props.facets,
1190
+ related_products = props.related_products,
1191
+ hidespares = props.hidespares;
1044
1192
  if (!title) {
1045
1193
  return null;
1046
1194
  }
1047
1195
  return /*#__PURE__*/React.createElement(ProductCardDetails, {
1048
- imageUrl: hit?.image || "",
1196
+ imageUrl: (hit === null || hit === void 0 ? void 0 : hit.image) || "",
1049
1197
  title: title,
1050
- description: hit?.description || "",
1051
- price: hit?.price || "" || productPrice,
1052
- code: hit?.code || "" || code,
1198
+ description: (hit === null || hit === void 0 ? void 0 : hit.description) || "",
1199
+ price: (hit === null || hit === void 0 ? void 0 : hit.price) || "" || productPrice,
1200
+ code: (hit === null || hit === void 0 ? void 0 : hit.code) || "" || code,
1053
1201
  hit: hit,
1054
1202
  utm: utm,
1055
1203
  className: className,
1056
1204
  facets: facets,
1057
- relatedProducts: hit?.related_products || related_products,
1058
- hidespares: hidespares
1205
+ relatedProducts: (hit === null || hit === void 0 ? void 0 : hit.related_products) || related_products,
1206
+ hidespares: hidespares,
1207
+ showProductPrice: showProductPrice,
1208
+ showProductImage: showProductImage
1059
1209
  });
1060
1210
  };
1061
- const AlgoliaDynamicSearchLeybold = props => {
1062
- const innerComponents = {
1063
- ProductCard: ProductCardAdapter,
1064
- ProductDetailsCard: ProductCardDetailsAdapter
1211
+ var ButtonAdapter = function (props) {
1212
+ var label = props.label,
1213
+ onClick = props.onClick,
1214
+ className = props.className;
1215
+ return /*#__PURE__*/React.createElement(Button, {
1216
+ className: className,
1217
+ onClick: onClick
1218
+ }, label);
1219
+ };
1220
+ var AlgoliaDynamicSearchLeybold = function (props) {
1221
+ var parentComponentProps = {
1222
+ queryType: props === null || props === void 0 ? void 0 : props.queryType,
1223
+ showProductPrice: props === null || props === void 0 ? void 0 : props.showProductPrice,
1224
+ showProductImage: props === null || props === void 0 ? void 0 : props.showProductImage,
1225
+ hitCta: props === null || props === void 0 ? void 0 : props.hitCta,
1226
+ hidespares: props === null || props === void 0 ? void 0 : props.hidespares
1227
+ };
1228
+ var innerComponents = {
1229
+ Card: function (innerProps) {
1230
+ return cardAdapter(__assign(__assign({}, parentComponentProps), innerProps));
1231
+ },
1232
+ ProductCard: function (innerProps) {
1233
+ return ProductCardAdapter(__assign(__assign({}, parentComponentProps), innerProps));
1234
+ },
1235
+ ProductDetailsCard: function (innerProps) {
1236
+ return ProductCardDetailsAdapter(__assign(__assign({}, parentComponentProps), innerProps));
1237
+ },
1238
+ Button: ButtonAdapter
1065
1239
  };
1066
1240
  return /*#__PURE__*/React.createElement(AlgoliaDynamicSearchRaw, _extends({}, props, {
1067
1241
  innerComponents: innerComponents
1068
1242
  }));
1069
1243
  };
1070
1244
 
1071
- // Adapter to map QrForm's expected button props to our Button component
1072
-
1073
- const QrFormButtonAdapter = ({
1074
- label,
1075
- onClick,
1076
- buttonStyle = "primary",
1077
- href,
1078
- target,
1079
- type = "button",
1080
- element,
1081
- "data-page_target": pageTarget,
1082
- className
1083
- }) => {
1245
+ var QrFormButtonAdapter = function (_a) {
1246
+ var label = _a.label,
1247
+ onClick = _a.onClick,
1248
+ _b = _a.buttonStyle,
1249
+ buttonStyle = _b === void 0 ? "primary" : _b,
1250
+ href = _a.href,
1251
+ target = _a.target,
1252
+ _c = _a.type,
1253
+ type = _c === void 0 ? "button" : _c,
1254
+ element = _a.element,
1255
+ pageTarget = _a["data-page_target"],
1256
+ className = _a.className;
1084
1257
  // Map buttonStyle to our variant
1085
- const variant = buttonStyle === "secondary" ? "secondary" : "primary";
1086
-
1258
+ var variant = buttonStyle === "secondary" ? "secondary" : "primary";
1087
1259
  // If it's an anchor element (has href or element='a'), render as link
1088
1260
  if (element === "a" || href) {
1089
1261
  return /*#__PURE__*/React.createElement("a", {
@@ -1102,18 +1274,19 @@ const QrFormButtonAdapter = ({
1102
1274
  size: "small"
1103
1275
  }, label));
1104
1276
  }
1105
-
1106
1277
  // Otherwise render as button
1107
1278
  return /*#__PURE__*/React.createElement(Button, {
1108
1279
  variant: variant,
1109
1280
  type: type,
1110
- onClick: onClick ? e => onClick(e) : undefined,
1281
+ onClick: onClick ? function (e) {
1282
+ return onClick(e);
1283
+ } : undefined,
1111
1284
  className: className,
1112
1285
  "data-page_target": pageTarget,
1113
1286
  size: "small"
1114
1287
  }, label);
1115
1288
  };
1116
- const QrFormLeybold = props => {
1289
+ var QrFormLeybold = function (props) {
1117
1290
  return /*#__PURE__*/React.createElement("div", {
1118
1291
  className: "qr-journey-form-wrapper"
1119
1292
  }, /*#__PURE__*/React.createElement(QrForm, _extends({}, props, {
@@ -1123,16 +1296,17 @@ const QrFormLeybold = props => {
1123
1296
 
1124
1297
  var styles$e = {"overlay":"SearchModal-module__overlay___Vbvg9","modal":"SearchModal-module__modal___1k5gO","closeButton":"SearchModal-module__closeButton___AN0zt","closeButton__icon":"SearchModal-module__closeButton__icon___vISSw","closeButton__text":"SearchModal-module__closeButton__text___-4EH1","closeButtonDesktop":"SearchModal-module__closeButtonDesktop___Lxxb0","closeButtonMobile":"SearchModal-module__closeButtonMobile___WIIMS","stickyHeader":"SearchModal-module__stickyHeader___wp-gA","scrollableContent":"SearchModal-module__scrollableContent___lrZP3"};
1125
1298
 
1126
- const ModalCloseButton = ({
1127
- onClick,
1128
- ariaLabel = 'Close search',
1129
- className = ''
1130
- }) => {
1299
+ var ModalCloseButton = function (_a) {
1300
+ var onClick = _a.onClick,
1301
+ _b = _a.ariaLabel,
1302
+ ariaLabel = _b === void 0 ? 'Close search' : _b,
1303
+ _c = _a.className,
1304
+ className = _c === void 0 ? '' : _c;
1131
1305
  return /*#__PURE__*/React.createElement("button", {
1132
1306
  type: "button",
1133
1307
  onClick: onClick,
1134
1308
  "aria-label": ariaLabel,
1135
- className: `${styles$e.closeButton} ${className}`
1309
+ className: "".concat(styles$e.closeButton, " ").concat(className)
1136
1310
  }, /*#__PURE__*/React.createElement("span", {
1137
1311
  className: styles$e.closeButton__icon
1138
1312
  }, /*#__PURE__*/React.createElement("svg", {
@@ -1159,79 +1333,80 @@ const ModalCloseButton = ({
1159
1333
  }, "CLOSE X"));
1160
1334
  };
1161
1335
 
1162
- const SearchModal = ({
1163
- isOpen,
1164
- onClose,
1165
- title = 'Search',
1166
- children,
1167
- className = '',
1168
- stickyHeaderContent
1169
- }) => {
1170
- const modalRef = useRef(null);
1171
- const previouslyFocusedElement = useRef(null);
1172
- useEffect(() => {
1336
+ var SearchModal = function (_a) {
1337
+ var isOpen = _a.isOpen,
1338
+ onClose = _a.onClose,
1339
+ _b = _a.title,
1340
+ title = _b === void 0 ? 'Search' : _b,
1341
+ children = _a.children,
1342
+ _c = _a.className,
1343
+ className = _c === void 0 ? '' : _c,
1344
+ stickyHeaderContent = _a.stickyHeaderContent;
1345
+ var modalRef = useRef(null);
1346
+ var previouslyFocusedElement = useRef(null);
1347
+ useEffect(function () {
1173
1348
  if (isOpen) {
1174
1349
  // Store the previously focused element
1175
1350
  previouslyFocusedElement.current = document.activeElement;
1176
-
1177
1351
  // Focus the modal
1178
1352
  if (modalRef.current) {
1179
1353
  modalRef.current.focus();
1180
1354
  }
1181
-
1182
1355
  // Prevent body scroll
1183
1356
  document.body.style.overflow = 'hidden';
1184
1357
  } else {
1185
1358
  // Restore body scroll
1186
1359
  document.body.style.overflow = '';
1187
-
1188
1360
  // Return focus to previously focused element
1189
1361
  if (previouslyFocusedElement.current) {
1190
1362
  previouslyFocusedElement.current.focus();
1191
1363
  }
1192
1364
  }
1193
- return () => {
1365
+ return function () {
1194
1366
  document.body.style.overflow = '';
1195
1367
  };
1196
1368
  }, [isOpen]);
1197
- useEffect(() => {
1198
- const handleEscape = event => {
1369
+ useEffect(function () {
1370
+ var handleEscape = function (event) {
1199
1371
  if (event.key === 'Escape' && isOpen) {
1200
1372
  onClose();
1201
1373
  }
1202
1374
  };
1203
1375
  document.addEventListener('keydown', handleEscape);
1204
- return () => document.removeEventListener('keydown', handleEscape);
1376
+ return function () {
1377
+ return document.removeEventListener('keydown', handleEscape);
1378
+ };
1205
1379
  }, [isOpen, onClose]);
1206
-
1207
1380
  // Focus trap implementation
1208
- useEffect(() => {
1381
+ useEffect(function () {
1209
1382
  if (!isOpen || !modalRef.current) return;
1210
- const modal = modalRef.current;
1211
- const focusableElements = modal.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
1212
- const firstElement = focusableElements[0];
1213
- const lastElement = focusableElements[focusableElements.length - 1];
1214
- const handleTab = event => {
1383
+ var modal = modalRef.current;
1384
+ var focusableElements = modal.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
1385
+ var firstElement = focusableElements[0];
1386
+ var lastElement = focusableElements[focusableElements.length - 1];
1387
+ var handleTab = function (event) {
1215
1388
  if (event.key !== 'Tab') return;
1216
1389
  if (event.shiftKey) {
1217
1390
  // Shift + Tab
1218
1391
  if (document.activeElement === firstElement) {
1219
1392
  event.preventDefault();
1220
- lastElement?.focus();
1393
+ lastElement === null || lastElement === void 0 ? void 0 : lastElement.focus();
1221
1394
  }
1222
1395
  } else {
1223
1396
  // Tab
1224
1397
  if (document.activeElement === lastElement) {
1225
1398
  event.preventDefault();
1226
- firstElement?.focus();
1399
+ firstElement === null || firstElement === void 0 ? void 0 : firstElement.focus();
1227
1400
  }
1228
1401
  }
1229
1402
  };
1230
1403
  modal.addEventListener('keydown', handleTab);
1231
- return () => modal.removeEventListener('keydown', handleTab);
1404
+ return function () {
1405
+ return modal.removeEventListener('keydown', handleTab);
1406
+ };
1232
1407
  }, [isOpen]);
1233
1408
  if (!isOpen) return null;
1234
- const handleOverlayClick = event => {
1409
+ var handleOverlayClick = function (event) {
1235
1410
  if (event.target === event.currentTarget) {
1236
1411
  onClose();
1237
1412
  }
@@ -1246,7 +1421,7 @@ const SearchModal = ({
1246
1421
  "aria-modal": "true",
1247
1422
  "aria-label": title,
1248
1423
  tabIndex: -1,
1249
- className: `${styles$e.modal} ${className}`
1424
+ className: "".concat(styles$e.modal, " ").concat(className)
1250
1425
  }, /*#__PURE__*/React.createElement("div", {
1251
1426
  className: styles$e.stickyHeader
1252
1427
  }, /*#__PURE__*/React.createElement(ModalCloseButton, {
@@ -1262,11 +1437,11 @@ const SearchModal = ({
1262
1437
 
1263
1438
  var styles$d = {"searchBar":"SearchBar-module__searchBar___5ak1g","inputWrapper":"SearchBar-module__inputWrapper___-4wrM","searchIcon":"SearchBar-module__searchIcon___VAuDz","searchInput":"SearchBar-module__searchInput___1K4GN","clearButton":"SearchBar-module__clearButton___JQYg-","submitButton":"SearchBar-module__submitButton___DZWsQ","submitButton__text":"SearchBar-module__submitButton__text___WkUsL","submitButton__icon":"SearchBar-module__submitButton__icon___s-ltv"};
1264
1439
 
1265
- const SearchIcon = ({
1266
- className = ''
1267
- }) => {
1440
+ var SearchIcon = function (_a) {
1441
+ var _b = _a.className,
1442
+ className = _b === void 0 ? '' : _b;
1268
1443
  return /*#__PURE__*/React.createElement("svg", {
1269
- className: `${styles$d.searchIcon} ${className}`,
1444
+ className: "".concat(styles$d.searchIcon, " ").concat(className),
1270
1445
  xmlns: "http://www.w3.org/2000/svg",
1271
1446
  viewBox: "0 0 24 24",
1272
1447
  fill: "none",
@@ -1284,15 +1459,17 @@ const SearchIcon = ({
1284
1459
  }));
1285
1460
  };
1286
1461
 
1287
- const SearchInput = ({
1288
- value,
1289
- onChange,
1290
- onKeyDown,
1291
- placeholder = 'Discover products, innovations, and resources...',
1292
- autoFocus = false,
1293
- className = ''
1294
- }) => {
1295
- const handleChange = event => {
1462
+ var SearchInput = function (_a) {
1463
+ var value = _a.value,
1464
+ onChange = _a.onChange,
1465
+ onKeyDown = _a.onKeyDown,
1466
+ _b = _a.placeholder,
1467
+ placeholder = _b === void 0 ? 'Discover products, innovations, and resources...' : _b,
1468
+ _c = _a.autoFocus,
1469
+ autoFocus = _c === void 0 ? false : _c,
1470
+ _d = _a.className,
1471
+ className = _d === void 0 ? '' : _d;
1472
+ var handleChange = function (event) {
1296
1473
  onChange(event.target.value);
1297
1474
  };
1298
1475
  return /*#__PURE__*/React.createElement("input", {
@@ -1303,24 +1480,27 @@ const SearchInput = ({
1303
1480
  placeholder: placeholder,
1304
1481
  autoFocus: autoFocus,
1305
1482
  "aria-label": "Search",
1306
- className: `${styles$d.searchInput} ${className}`
1483
+ className: "".concat(styles$d.searchInput, " ").concat(className)
1307
1484
  });
1308
1485
  };
1309
1486
 
1310
- const SearchSubmitButton = ({
1311
- onClick,
1312
- disabled = false,
1313
- ariaLabel = 'Search',
1314
- label = 'Search',
1315
- variant = 'instant',
1316
- className = ''
1317
- }) => {
1487
+ var SearchSubmitButton = function (_a) {
1488
+ var onClick = _a.onClick,
1489
+ _b = _a.disabled,
1490
+ disabled = _b === void 0 ? false : _b,
1491
+ _c = _a.ariaLabel,
1492
+ ariaLabel = _c === void 0 ? 'Search' : _c,
1493
+ _d = _a.label,
1494
+ label = _d === void 0 ? 'Search' : _d;
1495
+ _a.variant;
1496
+ var _f = _a.className,
1497
+ className = _f === void 0 ? '' : _f;
1318
1498
  return /*#__PURE__*/React.createElement("button", {
1319
1499
  type: "submit",
1320
1500
  onClick: onClick,
1321
1501
  disabled: disabled,
1322
1502
  "aria-label": ariaLabel,
1323
- className: `${styles$d.submitButton} ${className}`
1503
+ className: "".concat(styles$d.submitButton, " ").concat(className)
1324
1504
  }, /*#__PURE__*/React.createElement("span", {
1325
1505
  className: styles$d.submitButton__text
1326
1506
  }, label), /*#__PURE__*/React.createElement("span", {
@@ -1328,32 +1508,34 @@ const SearchSubmitButton = ({
1328
1508
  }, /*#__PURE__*/React.createElement(SearchIcon, null)));
1329
1509
  };
1330
1510
 
1331
- const SearchBar = ({
1332
- value,
1333
- onChange,
1334
- onSubmit,
1335
- placeholder,
1336
- autoFocus = false,
1337
- className = '',
1338
- variant = 'instant'
1339
- }) => {
1340
- const handleSubmit = event => {
1511
+ var SearchBar = function (_a) {
1512
+ var value = _a.value,
1513
+ onChange = _a.onChange,
1514
+ onSubmit = _a.onSubmit,
1515
+ placeholder = _a.placeholder,
1516
+ _b = _a.autoFocus,
1517
+ autoFocus = _b === void 0 ? false : _b,
1518
+ _c = _a.className,
1519
+ className = _c === void 0 ? '' : _c,
1520
+ _d = _a.variant,
1521
+ variant = _d === void 0 ? 'instant' : _d;
1522
+ var handleSubmit = function (event) {
1341
1523
  event.preventDefault();
1342
1524
  onSubmit();
1343
1525
  };
1344
- const handleKeyDown = event => {
1526
+ var handleKeyDown = function (event) {
1345
1527
  if (event.key === 'Enter') {
1346
1528
  event.preventDefault();
1347
1529
  onSubmit();
1348
1530
  }
1349
1531
  };
1350
- const handleClear = () => {
1532
+ var handleClear = function () {
1351
1533
  onChange('');
1352
1534
  };
1353
- const showClearButton = value.length > 0;
1535
+ var showClearButton = value.length > 0;
1354
1536
  return /*#__PURE__*/React.createElement("form", {
1355
1537
  onSubmit: handleSubmit,
1356
- className: `${styles$d.searchBar} ${className}`
1538
+ className: "".concat(styles$d.searchBar, " ").concat(className)
1357
1539
  }, /*#__PURE__*/React.createElement("div", {
1358
1540
  className: styles$d.inputWrapper
1359
1541
  }, /*#__PURE__*/React.createElement(SearchIcon, null), /*#__PURE__*/React.createElement(SearchInput, {
@@ -1376,53 +1558,51 @@ const SearchBar = ({
1376
1558
 
1377
1559
  var styles$c = {"contentCard":"ContentCardHorizontal-module__contentCard___l-Kim","contentCard--instant-view":"ContentCardHorizontal-module__contentCard--instant-view___4wK9-","contentExcerpt":"ContentCardHorizontal-module__contentExcerpt___tqg1v","contentCard--results-view":"ContentCardHorizontal-module__contentCard--results-view___oBP2u","contentMeta":"ContentCardHorizontal-module__contentMeta___rEW-X","contentCategory":"ContentCardHorizontal-module__contentCategory___NssVD","contentMetaText":"ContentCardHorizontal-module__contentMetaText___muYBN","contentTitle":"ContentCardHorizontal-module__contentTitle___54gEo"};
1378
1560
 
1379
- const ContentCardHorizontal = ({
1380
- id,
1381
- title,
1382
- url,
1383
- category,
1384
- meta,
1385
- excerpt,
1386
- className = "",
1387
- variant = "instant-view"
1388
- }) => {
1389
- const cardClasses = classNames(styles$c.contentCard, styles$c[`contentCard--${variant}`], className);
1390
- return /*#__PURE__*/React.createElement("a", {
1391
- href: url,
1561
+ var ContentCardHorizontal = function (_a) {
1562
+ var id = _a.id,
1563
+ title = _a.title,
1564
+ url = _a.url,
1565
+ category = _a.category,
1566
+ meta = _a.meta,
1567
+ excerpt = _a.excerpt,
1568
+ _b = _a.className,
1569
+ className = _b === void 0 ? "" : _b,
1570
+ _c = _a.variant,
1571
+ variant = _c === void 0 ? "instant-view" : _c;
1572
+ var cardClasses = classNames(styles$c.contentCard, styles$c["contentCard--".concat(variant)], className);
1573
+ return /*#__PURE__*/React.createElement(ContentCardBase, {
1574
+ id: id,
1575
+ title: title,
1576
+ url: url,
1577
+ category: category,
1578
+ meta: meta,
1579
+ excerpt: excerpt,
1392
1580
  className: cardClasses,
1393
- "aria-label": `View content: ${title}`
1394
- }, /*#__PURE__*/React.createElement("div", {
1395
- className: styles$c.contentMeta
1396
- }, category && /*#__PURE__*/React.createElement("span", {
1397
- className: styles$c.contentCategory
1398
- }, category), meta && /*#__PURE__*/React.createElement("span", {
1399
- className: styles$c.contentMetaText
1400
- }, meta)), /*#__PURE__*/React.createElement("h3", {
1401
- className: styles$c.contentTitle
1402
- }, title), excerpt && /*#__PURE__*/React.createElement("p", {
1403
- className: styles$c.contentExcerpt
1404
- }, excerpt));
1581
+ contentMetaClassName: styles$c.contentMeta,
1582
+ contentCategoryClassName: styles$c.contentCategory,
1583
+ contentMetaTextClassName: styles$c.contentMetaText,
1584
+ contentTitleClassName: styles$c.contentTitle,
1585
+ contentExcerptClassName: styles$c.contentExcerpt
1586
+ });
1405
1587
  };
1406
1588
 
1407
1589
  var styles$b = {"instantResultsLayout":"InstantResults-module__instantResultsLayout___oy-o4","columnsGrid":"InstantResults-module__columnsGrid___bHRUM","resultsColumn":"InstantResults-module__resultsColumn___ZBSlT","columnHeader":"InstantResults-module__columnHeader___VYYhi","showingText":"InstantResults-module__showingText___lECiA","seeAllButton":"InstantResults-module__seeAllButton___xEDAX","chevronIcon":"InstantResults-module__chevronIcon___bjb3q","resultsList":"InstantResults-module__resultsList___7s3PT","divider":"InstantResults-module__divider___Ky6zK","loadingState":"InstantResults-module__loadingState___l0fMq","errorState":"InstantResults-module__errorState___hTBbE","spinner":"InstantResults-module__spinner___85jF-"};
1408
1590
 
1409
- const FederatedInstantResultsLayout = ({
1410
- query,
1411
- products,
1412
- contents,
1413
- isLoadingProducts,
1414
- isLoadingContents,
1415
- productsError,
1416
- contentsError,
1417
- onSeeAllProducts,
1418
- onSeeAllContents,
1419
- onSeeAllCombined
1420
- }) => {
1591
+ var FederatedInstantResultsLayout = function (_a) {
1592
+ _a.query;
1593
+ var products = _a.products,
1594
+ contents = _a.contents,
1595
+ isLoadingProducts = _a.isLoadingProducts,
1596
+ isLoadingContents = _a.isLoadingContents,
1597
+ productsError = _a.productsError,
1598
+ contentsError = _a.contentsError,
1599
+ onSeeAllProducts = _a.onSeeAllProducts,
1600
+ onSeeAllContents = _a.onSeeAllContents;
1601
+ _a.onSeeAllCombined;
1421
1602
  products.length + contents.length;
1422
-
1423
1603
  // Show first 3 results from each category
1424
- const displayProducts = products.slice(0, 3);
1425
- const displayContents = contents.slice(0, 3);
1604
+ var displayProducts = products.slice(0, 3);
1605
+ var displayContents = contents.slice(0, 3);
1426
1606
  return /*#__PURE__*/React.createElement("div", {
1427
1607
  className: styles$b.instantResultsLayout
1428
1608
  }, /*#__PURE__*/React.createElement("div", {
@@ -1460,11 +1640,13 @@ const FederatedInstantResultsLayout = ({
1460
1640
  className: styles$b.errorState
1461
1641
  }, /*#__PURE__*/React.createElement("p", null, productsError)) : displayProducts.length > 0 ? /*#__PURE__*/React.createElement("div", {
1462
1642
  className: styles$b.resultsList
1463
- }, displayProducts.map((product, index) => /*#__PURE__*/React.createElement(React.Fragment, {
1464
- key: product.id
1465
- }, /*#__PURE__*/React.createElement(ProductCardHorizontal, product), index < displayProducts.length - 1 && /*#__PURE__*/React.createElement("hr", {
1466
- className: styles$b.divider
1467
- })))) : null), /*#__PURE__*/React.createElement("div", {
1643
+ }, displayProducts.map(function (product, index) {
1644
+ return /*#__PURE__*/React.createElement(React.Fragment, {
1645
+ key: product.id
1646
+ }, /*#__PURE__*/React.createElement(ProductCardHorizontal, product), index < displayProducts.length - 1 && /*#__PURE__*/React.createElement("hr", {
1647
+ className: styles$b.divider
1648
+ }));
1649
+ })) : null), /*#__PURE__*/React.createElement("div", {
1468
1650
  className: styles$b.resultsColumn
1469
1651
  }, /*#__PURE__*/React.createElement("div", {
1470
1652
  className: styles$b.columnHeader
@@ -1497,39 +1679,42 @@ const FederatedInstantResultsLayout = ({
1497
1679
  className: styles$b.errorState
1498
1680
  }, /*#__PURE__*/React.createElement("p", null, contentsError)) : displayContents.length > 0 ? /*#__PURE__*/React.createElement("div", {
1499
1681
  className: styles$b.resultsList
1500
- }, displayContents.map((content, index) => /*#__PURE__*/React.createElement(React.Fragment, {
1501
- key: content.id
1502
- }, /*#__PURE__*/React.createElement(ContentCardHorizontal, _extends({}, content, {
1503
- variant: "instant-view"
1504
- })), index < displayContents.length - 1 && /*#__PURE__*/React.createElement("hr", {
1505
- className: styles$b.divider
1506
- })))) : null)));
1682
+ }, displayContents.map(function (content, index) {
1683
+ return /*#__PURE__*/React.createElement(React.Fragment, {
1684
+ key: content.id
1685
+ }, /*#__PURE__*/React.createElement(ContentCardHorizontal, _extends({}, content, {
1686
+ variant: "instant-view"
1687
+ })), index < displayContents.length - 1 && /*#__PURE__*/React.createElement("hr", {
1688
+ className: styles$b.divider
1689
+ }));
1690
+ })) : null)));
1507
1691
  };
1508
1692
 
1509
1693
  var styles$a = {"resultsCount":"ResultsCount-module__resultsCount___cNM6f"};
1510
1694
 
1511
- const ResultsCount = ({
1512
- count,
1513
- type,
1514
- className = ''
1515
- }) => {
1516
- const label = count === 1 ? type.slice(0, -1) : type;
1695
+ var ResultsCount = function (_a) {
1696
+ var count = _a.count,
1697
+ type = _a.type,
1698
+ _b = _a.className,
1699
+ className = _b === void 0 ? '' : _b;
1700
+ var label = count === 1 ? type.slice(0, -1) : type;
1517
1701
  return /*#__PURE__*/React.createElement("span", {
1518
- className: `${styles$a.resultsCount} ${className}`
1702
+ className: "".concat(styles$a.resultsCount, " ").concat(className)
1519
1703
  }, count, " ", label);
1520
1704
  };
1521
1705
 
1522
1706
  var styles$9 = {"seeAllButton":"SeeAllLinkButton-module__seeAllButton___eAQqJ"};
1523
1707
 
1524
- const SeeAllLinkButton = ({
1525
- onClick,
1526
- label = 'See all results',
1527
- className = ''
1528
- }) => {
1708
+ var SeeAllLinkButton = function (_a) {
1709
+ var onClick = _a.onClick,
1710
+ _b = _a.label,
1711
+ label = _b === void 0 ? 'See all results' : _b,
1712
+ _c = _a.className,
1713
+ className = _c === void 0 ? '' : _c;
1529
1714
  return /*#__PURE__*/React.createElement("button", {
1530
1715
  type: "button",
1531
1716
  onClick: onClick,
1532
- className: `${styles$9.seeAllButton} ${className}`
1717
+ className: "".concat(styles$9.seeAllButton, " ").concat(className)
1533
1718
  }, label, /*#__PURE__*/React.createElement("svg", {
1534
1719
  xmlns: "http://www.w3.org/2000/svg",
1535
1720
  viewBox: "0 0 24 24",
@@ -1546,17 +1731,17 @@ const SeeAllLinkButton = ({
1546
1731
 
1547
1732
  var styles$8 = {"resultsColumn":"ResultsColumn-module__resultsColumn___AexF5","columnHeader":"ResultsColumn-module__columnHeader___-aUWU","columnTitle":"ResultsColumn-module__columnTitle___Gddr-","resultsList":"ResultsColumn-module__resultsList___BkEie","columnFooter":"ResultsColumn-module__columnFooter___4zJUp","loadingState":"ResultsColumn-module__loadingState___wme5F","errorState":"ResultsColumn-module__errorState___NI4fW","emptyState":"ResultsColumn-module__emptyState___tvefj","spinner":"ResultsColumn-module__spinner___hhntn"};
1548
1733
 
1549
- const ResultsColumn = ({
1550
- title,
1551
- count,
1552
- isLoading,
1553
- error,
1554
- onSeeAll,
1555
- children,
1556
- className = ''
1557
- }) => {
1734
+ var ResultsColumn = function (_a) {
1735
+ var title = _a.title,
1736
+ count = _a.count,
1737
+ isLoading = _a.isLoading,
1738
+ error = _a.error,
1739
+ onSeeAll = _a.onSeeAll,
1740
+ children = _a.children,
1741
+ _b = _a.className,
1742
+ className = _b === void 0 ? '' : _b;
1558
1743
  return /*#__PURE__*/React.createElement("div", {
1559
- className: `${styles$8.resultsColumn} ${className}`
1744
+ className: "".concat(styles$8.resultsColumn, " ").concat(className)
1560
1745
  }, /*#__PURE__*/React.createElement("div", {
1561
1746
  className: styles$8.columnHeader
1562
1747
  }, /*#__PURE__*/React.createElement("h3", {
@@ -1579,7 +1764,7 @@ const ResultsColumn = ({
1579
1764
  className: styles$8.columnFooter
1580
1765
  }, /*#__PURE__*/React.createElement(SeeAllLinkButton, {
1581
1766
  onClick: onSeeAll,
1582
- label: `See all ${title.toLowerCase()}`
1767
+ label: "See all ".concat(title.toLowerCase())
1583
1768
  }))));
1584
1769
  };
1585
1770
 
@@ -1601,23 +1786,23 @@ const faXmark = {
1601
1786
  icon: [384, 512, [128473, 10005, 10006, 10060, 215, "close", "multiply", "remove", "times"], "f00d", "M324.5 411.1c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L214.6 256 347.1 123.5c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L192 233.4 59.6 100.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L169.4 256 36.9 388.5c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L192 278.6 324.5 411.1z"]
1602
1787
  };
1603
1788
 
1604
- /**
1605
- * FilterSearch - Search input for filtering facet values
1789
+ /**
1790
+ * FilterSearch - Search input for filtering facet values
1606
1791
  */
1607
- const FilterSearch = ({
1608
- value,
1609
- onChange,
1610
- placeholder = "Search",
1611
- className
1612
- }) => {
1613
- const handleChange = e => {
1792
+ var FilterSearch = function (_a) {
1793
+ var value = _a.value,
1794
+ onChange = _a.onChange,
1795
+ _b = _a.placeholder,
1796
+ placeholder = _b === void 0 ? "Search" : _b,
1797
+ className = _a.className;
1798
+ var handleChange = function (e) {
1614
1799
  onChange(e.target.value);
1615
1800
  };
1616
- const handleClear = () => {
1801
+ var handleClear = function () {
1617
1802
  onChange("");
1618
1803
  };
1619
1804
  return /*#__PURE__*/React.createElement("div", {
1620
- className: `${styles$7.filterSearch} ${className || ""}`
1805
+ className: "".concat(styles$7.filterSearch, " ").concat(className || "")
1621
1806
  }, !value && /*#__PURE__*/React.createElement(FontAwesomeIcon, {
1622
1807
  icon: faMagnifyingGlass,
1623
1808
  className: styles$7.searchIcon,
@@ -1639,42 +1824,43 @@ const FilterSearch = ({
1639
1824
  })));
1640
1825
  };
1641
1826
 
1642
- const CheckIcon = () => /*#__PURE__*/React.createElement("svg", {
1643
- xmlns: "http://www.w3.org/2000/svg",
1644
- width: "9",
1645
- height: "7",
1646
- viewBox: "0 0 9 7",
1647
- fill: "none"
1648
- }, /*#__PURE__*/React.createElement("path", {
1649
- d: "M8.73456 0.104504C9.02185 0.279451 9.08614 0.615889 8.8772 0.856441L3.7342 6.77774C3.62371 6.90558 3.45294 6.98465 3.2641 6.99811C3.07525 7.01156 2.89244 6.95269 2.75984 6.84166L0.188342 4.68846C-0.0627808 4.47819 -0.0627808 4.13671 0.188342 3.92643C0.439465 3.71616 0.847289 3.71616 1.09841 3.92643L3.13753 5.63385L7.83856 0.222257C8.04749 -0.0182957 8.44929 -0.0721258 8.73658 0.102822L8.73456 0.104504Z",
1650
- fill: "#E2001A"
1651
- }));
1652
-
1653
- /**
1654
- * FilterItem - Individual facet item with checkbox and count
1827
+ var CheckIcon = function () {
1828
+ return /*#__PURE__*/React.createElement("svg", {
1829
+ xmlns: "http://www.w3.org/2000/svg",
1830
+ width: "9",
1831
+ height: "7",
1832
+ viewBox: "0 0 9 7",
1833
+ fill: "none"
1834
+ }, /*#__PURE__*/React.createElement("path", {
1835
+ d: "M8.73456 0.104504C9.02185 0.279451 9.08614 0.615889 8.8772 0.856441L3.7342 6.77774C3.62371 6.90558 3.45294 6.98465 3.2641 6.99811C3.07525 7.01156 2.89244 6.95269 2.75984 6.84166L0.188342 4.68846C-0.0627808 4.47819 -0.0627808 4.13671 0.188342 3.92643C0.439465 3.71616 0.847289 3.71616 1.09841 3.92643L3.13753 5.63385L7.83856 0.222257C8.04749 -0.0182957 8.44929 -0.0721258 8.73658 0.102822L8.73456 0.104504Z",
1836
+ fill: "#E2001A"
1837
+ }));
1838
+ };
1839
+ /**
1840
+ * FilterItem - Individual facet item with checkbox and count
1655
1841
  */
1656
- const FilterItem = ({
1657
- value,
1658
- onToggle,
1659
- className,
1660
- variant = 'desktop',
1661
- showCheckbox = true
1662
- }) => {
1663
- const handleChange = () => {
1842
+ var FilterItem = function (_a) {
1843
+ var value = _a.value,
1844
+ onToggle = _a.onToggle,
1845
+ className = _a.className,
1846
+ _b = _a.variant,
1847
+ variant = _b === void 0 ? 'desktop' : _b,
1848
+ _c = _a.showCheckbox,
1849
+ showCheckbox = _c === void 0 ? true : _c;
1850
+ var handleChange = function () {
1664
1851
  onToggle(value.value);
1665
1852
  };
1666
- const handleKeyDown = e => {
1853
+ var handleKeyDown = function (e) {
1667
1854
  if (e.key === "Enter" || e.key === " ") {
1668
1855
  e.preventDefault();
1669
1856
  onToggle(value.value);
1670
1857
  }
1671
1858
  };
1672
-
1673
1859
  // Mobile variant: Plain button (no checkbox)
1674
1860
  if (variant === 'mobile') {
1675
1861
  return /*#__PURE__*/React.createElement("button", {
1676
1862
  type: "button",
1677
- className: `${styles$7.filterItemMobile} ${value.isRefined ? styles$7.filterItemMobileRefined : ''} ${className || ""}`,
1863
+ className: "".concat(styles$7.filterItemMobile, " ").concat(value.isRefined ? styles$7.filterItemMobileRefined : '', " ").concat(className || ""),
1678
1864
  onClick: handleChange,
1679
1865
  onKeyDown: handleKeyDown,
1680
1866
  "aria-pressed": value.isRefined
@@ -1684,12 +1870,11 @@ const FilterItem = ({
1684
1870
  className: styles$7.filterCount
1685
1871
  }, "(", value.count, ")"));
1686
1872
  }
1687
-
1688
1873
  // Desktop without checkbox (Content tab): Plain button with red text when selected
1689
1874
  if (!showCheckbox) {
1690
1875
  return /*#__PURE__*/React.createElement("button", {
1691
1876
  type: "button",
1692
- className: `${styles$7.filterItemDesktopNoCheckbox} ${value.isRefined ? styles$7.filterItemDesktopRefined : ''} ${className || ""}`,
1877
+ className: "".concat(styles$7.filterItemDesktopNoCheckbox, " ").concat(value.isRefined ? styles$7.filterItemDesktopRefined : '', " ").concat(className || ""),
1693
1878
  onClick: handleChange,
1694
1879
  onKeyDown: handleKeyDown,
1695
1880
  "aria-pressed": value.isRefined
@@ -1699,17 +1884,16 @@ const FilterItem = ({
1699
1884
  className: styles$7.filterCount
1700
1885
  }, "(", value.count, ")"));
1701
1886
  }
1702
-
1703
1887
  // Desktop with checkbox (Products tab): Multi-select checkboxes
1704
1888
  return /*#__PURE__*/React.createElement("label", {
1705
- className: `${styles$7.filterItem} ${className || ""}`,
1889
+ className: "".concat(styles$7.filterItem, " ").concat(className || ""),
1706
1890
  onKeyDown: handleKeyDown
1707
1891
  }, /*#__PURE__*/React.createElement("input", {
1708
1892
  type: "checkbox",
1709
1893
  checked: value.isRefined,
1710
1894
  onChange: handleChange,
1711
1895
  className: styles$7.filterCheckboxInput,
1712
- "aria-label": `${value.value} (${value.count} results)`
1896
+ "aria-label": "".concat(value.value, " (").concat(value.count, " results)")
1713
1897
  }), /*#__PURE__*/React.createElement("div", {
1714
1898
  className: styles$7.filterCheckbox
1715
1899
  }, value.isRefined && /*#__PURE__*/React.createElement(CheckIcon, null)), /*#__PURE__*/React.createElement("span", {
@@ -1719,57 +1903,61 @@ const FilterItem = ({
1719
1903
  }, "(", value.count, ")"));
1720
1904
  };
1721
1905
 
1722
- /**
1723
- * FilterAccordion - Collapsible facet section with optional search
1906
+ /**
1907
+ * FilterAccordion - Collapsible facet section with optional search
1724
1908
  */
1725
- const FilterAccordion = ({
1726
- facet,
1727
- isExpanded,
1728
- onToggle,
1729
- onValueToggle,
1730
- className,
1731
- variant = 'desktop',
1732
- showCheckbox = true
1733
- }) => {
1734
- const [searchQuery, setSearchQuery] = useState("");
1735
-
1909
+ var FilterAccordion = function (_a) {
1910
+ var facet = _a.facet,
1911
+ isExpanded = _a.isExpanded,
1912
+ onToggle = _a.onToggle,
1913
+ onValueToggle = _a.onValueToggle,
1914
+ className = _a.className,
1915
+ _b = _a.variant,
1916
+ variant = _b === void 0 ? 'desktop' : _b,
1917
+ _c = _a.showCheckbox,
1918
+ showCheckbox = _c === void 0 ? true : _c;
1919
+ var _d = useState(""),
1920
+ searchQuery = _d[0],
1921
+ setSearchQuery = _d[1];
1736
1922
  // Filter facet values based on search query
1737
- const filteredValues = useMemo(() => {
1923
+ var filteredValues = useMemo(function () {
1738
1924
  if (!searchQuery.trim()) {
1739
1925
  return facet.values;
1740
1926
  }
1741
- const query = searchQuery.toLowerCase();
1742
- return facet.values.filter(value => value.value.toLowerCase().includes(query));
1927
+ var query = searchQuery.toLowerCase();
1928
+ return facet.values.filter(function (value) {
1929
+ return value.value.toLowerCase().includes(query);
1930
+ });
1743
1931
  }, [facet.values, searchQuery]);
1744
- const handleToggle = () => {
1932
+ var handleToggle = function () {
1745
1933
  onToggle();
1746
1934
  // Clear search when collapsing
1747
1935
  if (isExpanded) {
1748
1936
  setSearchQuery("");
1749
1937
  }
1750
1938
  };
1751
- const handleKeyDown = e => {
1939
+ var handleKeyDown = function (e) {
1752
1940
  if (e.key === "Enter" || e.key === " ") {
1753
1941
  e.preventDefault();
1754
1942
  handleToggle();
1755
1943
  }
1756
1944
  };
1757
- const handleValueToggle = value => {
1945
+ var handleValueToggle = function (value) {
1758
1946
  onValueToggle(facet.attribute, value);
1759
1947
  };
1760
1948
  return /*#__PURE__*/React.createElement("div", {
1761
- className: `${styles$7.filterAccordion} ${className || ""}`
1949
+ className: "".concat(styles$7.filterAccordion, " ").concat(className || "")
1762
1950
  }, /*#__PURE__*/React.createElement("button", {
1763
1951
  type: "button",
1764
- className: `${styles$7.accordionHeader} ${isExpanded ? styles$7.accordionHeaderExpanded : ""}`,
1952
+ className: "".concat(styles$7.accordionHeader, " ").concat(isExpanded ? styles$7.accordionHeaderExpanded : ""),
1765
1953
  onClick: handleToggle,
1766
1954
  onKeyDown: handleKeyDown,
1767
1955
  "aria-expanded": isExpanded,
1768
- "aria-controls": `accordion-${facet.id}`
1956
+ "aria-controls": "accordion-".concat(facet.id)
1769
1957
  }, /*#__PURE__*/React.createElement("span", {
1770
1958
  className: styles$7.accordionTitle
1771
1959
  }, facet.label), /*#__PURE__*/React.createElement("svg", {
1772
- className: `${styles$7.accordionIcon} ${isExpanded ? styles$7.accordionIconExpanded : ""}`,
1960
+ className: "".concat(styles$7.accordionIcon, " ").concat(isExpanded ? styles$7.accordionIconExpanded : ""),
1773
1961
  width: "16",
1774
1962
  height: "16",
1775
1963
  viewBox: "0 0 16 16",
@@ -1783,7 +1971,7 @@ const FilterAccordion = ({
1783
1971
  strokeLinecap: "round",
1784
1972
  strokeLinejoin: "round"
1785
1973
  }))), isExpanded && /*#__PURE__*/React.createElement("div", {
1786
- id: `accordion-${facet.id}`,
1974
+ id: "accordion-".concat(facet.id),
1787
1975
  className: styles$7.accordionContent
1788
1976
  }, variant === 'desktop' && facet.searchable && facet.values.length > 5 && /*#__PURE__*/React.createElement("div", {
1789
1977
  className: styles$7.accordionSearch
@@ -1793,38 +1981,39 @@ const FilterAccordion = ({
1793
1981
  placeholder: "Search"
1794
1982
  })), /*#__PURE__*/React.createElement("div", {
1795
1983
  className: styles$7.filterList
1796
- }, filteredValues.length > 0 ? filteredValues.map(value => /*#__PURE__*/React.createElement(FilterItem, {
1797
- key: value.value,
1798
- value: value,
1799
- onToggle: handleValueToggle,
1800
- variant: variant,
1801
- showCheckbox: showCheckbox
1802
- })) : /*#__PURE__*/React.createElement("div", {
1984
+ }, filteredValues.length > 0 ? filteredValues.map(function (value) {
1985
+ return /*#__PURE__*/React.createElement(FilterItem, {
1986
+ key: value.value,
1987
+ value: value,
1988
+ onToggle: handleValueToggle,
1989
+ variant: variant,
1990
+ showCheckbox: showCheckbox
1991
+ });
1992
+ }) : /*#__PURE__*/React.createElement("div", {
1803
1993
  className: styles$7.noResults
1804
1994
  }, "No results found"))));
1805
1995
  };
1806
1996
 
1807
- /**
1808
- * AppliedFilterTag - Individual removable filter tag/chip
1997
+ /**
1998
+ * AppliedFilterTag - Individual removable filter tag/chip
1809
1999
  */
1810
- const AppliedFilterTag = ({
1811
- attribute,
1812
- value,
1813
- label,
1814
- onRemove,
1815
- className
1816
- }) => {
1817
- const handleRemove = () => {
2000
+ var AppliedFilterTag = function (_a) {
2001
+ var attribute = _a.attribute,
2002
+ value = _a.value,
2003
+ label = _a.label,
2004
+ onRemove = _a.onRemove,
2005
+ className = _a.className;
2006
+ var handleRemove = function () {
1818
2007
  onRemove(attribute, value);
1819
2008
  };
1820
- const handleKeyDown = e => {
2009
+ var handleKeyDown = function (e) {
1821
2010
  if (e.key === "Enter" || e.key === " ") {
1822
2011
  e.preventDefault();
1823
2012
  handleRemove();
1824
2013
  }
1825
2014
  };
1826
2015
  return /*#__PURE__*/React.createElement("div", {
1827
- className: `${styles$7.appliedFilterTag} ${className || ""}`
2016
+ className: "".concat(styles$7.appliedFilterTag, " ").concat(className || "")
1828
2017
  }, /*#__PURE__*/React.createElement("span", {
1829
2018
  className: styles$7.tagLabel
1830
2019
  }, label || value), /*#__PURE__*/React.createElement("button", {
@@ -1832,7 +2021,7 @@ const AppliedFilterTag = ({
1832
2021
  onClick: handleRemove,
1833
2022
  onKeyDown: handleKeyDown,
1834
2023
  className: styles$7.tagRemoveButton,
1835
- "aria-label": `Remove ${label || value} filter`
2024
+ "aria-label": "Remove ".concat(label || value, " filter")
1836
2025
  }, /*#__PURE__*/React.createElement("svg", {
1837
2026
  width: "10",
1838
2027
  height: "10",
@@ -1849,20 +2038,19 @@ const AppliedFilterTag = ({
1849
2038
  }))));
1850
2039
  };
1851
2040
 
1852
- /**
1853
- * AppliedFilters - Shows all active filters as removable tags
2041
+ /**
2042
+ * AppliedFilters - Shows all active filters as removable tags
1854
2043
  */
1855
- const AppliedFilters = ({
1856
- facets,
1857
- onRemove,
1858
- onClearAll,
1859
- className
1860
- }) => {
2044
+ var AppliedFilters = function (_a) {
2045
+ var facets = _a.facets,
2046
+ onRemove = _a.onRemove;
2047
+ _a.onClearAll;
2048
+ var className = _a.className;
1861
2049
  // Extract all refined (selected) filters
1862
- const appliedFilters = useMemo(() => {
1863
- const filters = [];
1864
- facets.forEach(facet => {
1865
- facet.values.forEach(value => {
2050
+ var appliedFilters = useMemo(function () {
2051
+ var filters = [];
2052
+ facets.forEach(function (facet) {
2053
+ facet.values.forEach(function (value) {
1866
2054
  if (value.isRefined) {
1867
2055
  filters.push({
1868
2056
  attribute: facet.attribute,
@@ -1875,66 +2063,72 @@ const AppliedFilters = ({
1875
2063
  });
1876
2064
  return filters;
1877
2065
  }, [facets]);
1878
-
1879
2066
  // Don't render if no filters are applied
1880
2067
  if (appliedFilters.length === 0) {
1881
2068
  return null;
1882
2069
  }
1883
2070
  return /*#__PURE__*/React.createElement("div", {
1884
- className: `${styles$7.appliedFilters} ${className || ""}`
2071
+ className: "".concat(styles$7.appliedFilters, " ").concat(className || "")
1885
2072
  }, /*#__PURE__*/React.createElement("h4", {
1886
2073
  className: styles$7.appliedFiltersTitle
1887
2074
  }, "Applied filters"), /*#__PURE__*/React.createElement("div", {
1888
2075
  className: styles$7.appliedFiltersList
1889
- }, appliedFilters.map(filter => /*#__PURE__*/React.createElement(AppliedFilterTag, {
1890
- key: `${filter.attribute}-${filter.value}`,
1891
- attribute: filter.attribute,
1892
- value: filter.value,
1893
- label: filter.label,
1894
- onRemove: onRemove
1895
- }))));
2076
+ }, appliedFilters.map(function (filter) {
2077
+ return /*#__PURE__*/React.createElement(AppliedFilterTag, {
2078
+ key: "".concat(filter.attribute, "-").concat(filter.value),
2079
+ attribute: filter.attribute,
2080
+ value: filter.value,
2081
+ label: filter.label,
2082
+ onRemove: onRemove
2083
+ });
2084
+ })));
1896
2085
  };
1897
2086
 
1898
- /**
1899
- * FiltersPanel - Main container for all filters
1900
- *
1901
- * Fully controlled component - renders based on facets prop.
1902
- * When facets change (e.g., after API refetch), component re-renders with new data.
1903
- * Accordion expansion state persists across refetches, with new facets respecting defaultExpanded.
2087
+ /**
2088
+ * FiltersPanel - Main container for all filters
2089
+ *
2090
+ * Fully controlled component - renders based on facets prop.
2091
+ * When facets change (e.g., after API refetch), component re-renders with new data.
2092
+ * Accordion expansion state persists across refetches, with new facets respecting defaultExpanded.
1904
2093
  */
1905
- const FiltersPanel = ({
1906
- facets,
1907
- onFacetToggle,
1908
- isLoading = false,
1909
- className,
1910
- variant = 'desktop',
1911
- showCheckbox = true
1912
- }) => {
2094
+ var FiltersPanel = function (_a) {
2095
+ var facets = _a.facets,
2096
+ onFacetToggle = _a.onFacetToggle,
2097
+ _b = _a.isLoading,
2098
+ isLoading = _b === void 0 ? false : _b,
2099
+ className = _a.className,
2100
+ _c = _a.variant,
2101
+ variant = _c === void 0 ? 'desktop' : _c,
2102
+ _d = _a.showCheckbox,
2103
+ showCheckbox = _d === void 0 ? true : _d;
1913
2104
  // Track which accordions are expanded (transient UI state)
1914
- const [expandedAccordions, setExpandedAccordions] = useState(() => {
1915
- // Initialize with default expanded facets
1916
- const expanded = new Set();
1917
- facets.forEach(facet => {
1918
- if (facet.defaultExpanded) {
1919
- expanded.add(facet.id);
1920
- }
1921
- });
1922
- return expanded;
1923
- });
1924
-
2105
+ var _e = useState(function () {
2106
+ // Initialize with default expanded facets
2107
+ var expanded = new Set();
2108
+ facets.forEach(function (facet) {
2109
+ if (facet.defaultExpanded) {
2110
+ expanded.add(facet.id);
2111
+ }
2112
+ });
2113
+ return expanded;
2114
+ }),
2115
+ expandedAccordions = _e[0],
2116
+ setExpandedAccordions = _e[1];
1925
2117
  // Sync expansion state when facets change (e.g., new facets appear after refetch)
1926
- useEffect(() => {
1927
- setExpandedAccordions(prev => {
1928
- const next = new Set(prev);
2118
+ useEffect(function () {
2119
+ setExpandedAccordions(function (prev) {
2120
+ var next = new Set(prev);
1929
2121
  // Add new facets with defaultExpanded
1930
- facets.forEach(facet => {
2122
+ facets.forEach(function (facet) {
1931
2123
  if (facet.defaultExpanded && !next.has(facet.id)) {
1932
2124
  next.add(facet.id);
1933
2125
  }
1934
2126
  });
1935
2127
  // Remove facets that no longer exist
1936
- const currentFacetIds = new Set(facets.map(f => f.id));
1937
- next.forEach(id => {
2128
+ var currentFacetIds = new Set(facets.map(function (f) {
2129
+ return f.id;
2130
+ }));
2131
+ next.forEach(function (id) {
1938
2132
  if (!currentFacetIds.has(id)) {
1939
2133
  next.delete(id);
1940
2134
  }
@@ -1942,9 +2136,9 @@ const FiltersPanel = ({
1942
2136
  return next;
1943
2137
  });
1944
2138
  }, [facets]);
1945
- const handleAccordionToggle = useCallback(facetId => {
1946
- setExpandedAccordions(prev => {
1947
- const next = new Set(prev);
2139
+ var handleAccordionToggle = useCallback(function (facetId) {
2140
+ setExpandedAccordions(function (prev) {
2141
+ var next = new Set(prev);
1948
2142
  if (next.has(facetId)) {
1949
2143
  next.delete(facetId);
1950
2144
  } else {
@@ -1953,16 +2147,16 @@ const FiltersPanel = ({
1953
2147
  return next;
1954
2148
  });
1955
2149
  }, []);
1956
- const handleValueToggle = useCallback((attribute, value) => {
2150
+ var handleValueToggle = useCallback(function (attribute, value) {
1957
2151
  onFacetToggle(attribute, value);
1958
2152
  }, [onFacetToggle]);
1959
- const handleRemoveFilter = useCallback((attribute, value) => {
2153
+ var handleRemoveFilter = useCallback(function (attribute, value) {
1960
2154
  onFacetToggle(attribute, value);
1961
2155
  }, [onFacetToggle]);
1962
- const handleClearAll = useCallback(() => {
2156
+ var handleClearAll = useCallback(function () {
1963
2157
  // Remove all refined facets
1964
- facets.forEach(facet => {
1965
- facet.values.forEach(value => {
2158
+ facets.forEach(function (facet) {
2159
+ facet.values.forEach(function (value) {
1966
2160
  if (value.isRefined) {
1967
2161
  onFacetToggle(facet.attribute, value.value);
1968
2162
  }
@@ -1971,7 +2165,7 @@ const FiltersPanel = ({
1971
2165
  }, [facets, onFacetToggle]);
1972
2166
  if (isLoading) {
1973
2167
  return /*#__PURE__*/React.createElement("div", {
1974
- className: `${styles$7.filtersPanel} ${className || ""}`
2168
+ className: "".concat(styles$7.filtersPanel, " ").concat(className || "")
1975
2169
  }, /*#__PURE__*/React.createElement("div", {
1976
2170
  className: styles$7.loadingState
1977
2171
  }, /*#__PURE__*/React.createElement("div", {
@@ -1982,70 +2176,73 @@ const FiltersPanel = ({
1982
2176
  return null;
1983
2177
  }
1984
2178
  return /*#__PURE__*/React.createElement("div", {
1985
- className: `${styles$7.filtersPanel} ${className || ""}`
2179
+ className: "".concat(styles$7.filtersPanel, " ").concat(className || "")
1986
2180
  }, showCheckbox && /*#__PURE__*/React.createElement(AppliedFilters, {
1987
2181
  facets: facets,
1988
2182
  onRemove: handleRemoveFilter,
1989
2183
  onClearAll: handleClearAll
1990
2184
  }), /*#__PURE__*/React.createElement("div", {
1991
2185
  className: styles$7.filtersList
1992
- }, facets.map(facet => /*#__PURE__*/React.createElement(FilterAccordion, {
1993
- key: facet.id,
1994
- facet: facet,
1995
- isExpanded: expandedAccordions.has(facet.id),
1996
- onToggle: () => handleAccordionToggle(facet.id),
1997
- onValueToggle: handleValueToggle,
1998
- variant: variant,
1999
- showCheckbox: showCheckbox
2000
- }))));
2186
+ }, facets.map(function (facet) {
2187
+ return /*#__PURE__*/React.createElement(FilterAccordion, {
2188
+ key: facet.id,
2189
+ facet: facet,
2190
+ isExpanded: expandedAccordions.has(facet.id),
2191
+ onToggle: function () {
2192
+ return handleAccordionToggle(facet.id);
2193
+ },
2194
+ onValueToggle: handleValueToggle,
2195
+ variant: variant,
2196
+ showCheckbox: showCheckbox
2197
+ });
2198
+ })));
2001
2199
  };
2002
2200
 
2003
2201
  var styles$6 = {"productCardVertical":"ProductCardVertical-module__productCardVertical___kXgmt","productCardVertical--hover":"ProductCardVertical-module__productCardVertical--hover___8Nsyp","productCardVertical__button":"ProductCardVertical-module__productCardVertical__button___oQPJG","productCardVertical--focus":"ProductCardVertical-module__productCardVertical--focus___8U57I","productCardVertical__imageWrapper":"ProductCardVertical-module__productCardVertical__imageWrapper___SgKoZ","productCardVertical__image":"ProductCardVertical-module__productCardVertical__image___kg-QU","productCardVertical__content":"ProductCardVertical-module__productCardVertical__content___sZdOs","productCardVertical__title":"ProductCardVertical-module__productCardVertical__title___PPKWb","productCardVertical__description":"ProductCardVertical-module__productCardVertical__description___Ai90p","productCardVertical__footer":"ProductCardVertical-module__productCardVertical__footer___rv6BH"};
2004
2202
 
2005
- /**
2006
- * ProductCardVertical - Vertical product card for grid layouts
2007
- *
2008
- * Used in full results view with 4-column grid (desktop) or 2-column grid (mobile).
2009
- * Figma spec: Default (no shadow) → Hover (shadow + grey button) → Focus (border + shadow)
2010
- *
2011
- * @example
2012
- * ```tsx
2013
- * <ProductCardVertical
2014
- * title="TURBOVAC i - High vacuum turbopump"
2015
- * url="/products/turbovac-i"
2016
- * imageUrl="/assets/search-product.png"
2017
- * productId="21312VISH"
2018
- * description="Premium high-performance turbomolecular pump"
2019
- * buttonLabel="BUY ONLINE"
2020
- * />
2021
- * ```
2203
+ /**
2204
+ * ProductCardVertical - Vertical product card for grid layouts
2205
+ *
2206
+ * Used in full results view with 4-column grid (desktop) or 2-column grid (mobile).
2207
+ * Figma spec: Default (no shadow) → Hover (shadow + grey button) → Focus (border + shadow)
2208
+ *
2209
+ * @example
2210
+ * ```tsx
2211
+ * <ProductCardVertical
2212
+ * title="TURBOVAC i - High vacuum turbopump"
2213
+ * url="/products/turbovac-i"
2214
+ * imageUrl="/assets/search-product.png"
2215
+ * productId="21312VISH"
2216
+ * description="Premium high-performance turbomolecular pump"
2217
+ * buttonLabel="BUY ONLINE"
2218
+ * />
2219
+ * ```
2022
2220
  */
2023
- const ProductCardVertical = ({
2024
- id,
2025
- title,
2026
- url,
2027
- imageUrl,
2028
- productId,
2029
- description,
2030
- buttonLabel = 'BUY ONLINE',
2031
- onButtonClick,
2032
- className,
2033
- variant = 'desktop',
2034
- 'data-force-state': forceState
2035
- }) => {
2036
- const handleButtonClick = e => {
2221
+ var ProductCardVertical = function (_a) {
2222
+ var _b;
2223
+ var id = _a.id,
2224
+ title = _a.title,
2225
+ url = _a.url,
2226
+ imageUrl = _a.imageUrl;
2227
+ _a.productId;
2228
+ var description = _a.description,
2229
+ _c = _a.buttonLabel,
2230
+ buttonLabel = _c === void 0 ? 'BUY ONLINE' : _c,
2231
+ onButtonClick = _a.onButtonClick,
2232
+ className = _a.className,
2233
+ _d = _a.variant,
2234
+ variant = _d === void 0 ? 'desktop' : _d,
2235
+ forceState = _a["data-force-state"];
2236
+ var handleButtonClick = function (e) {
2037
2237
  e.preventDefault(); // Prevent card link navigation
2038
2238
  e.stopPropagation(); // Stop event bubbling
2039
- onButtonClick?.();
2239
+ onButtonClick === null || onButtonClick === void 0 ? void 0 : onButtonClick();
2040
2240
  };
2041
- const cardClasses = classNames(styles$6.productCardVertical, styles$6[`productCardVertical--${variant}`], {
2042
- [styles$6['productCardVertical--hover']]: forceState === 'hover',
2043
- [styles$6['productCardVertical--focus']]: forceState === 'focus'
2044
- }, className);
2241
+ var cardClasses = classNames(styles$6.productCardVertical, styles$6["productCardVertical--".concat(variant)], (_b = {}, _b[styles$6['productCardVertical--hover']] = forceState === 'hover', _b[styles$6['productCardVertical--focus']] = forceState === 'focus', _b), className);
2045
2242
  return /*#__PURE__*/React.createElement("a", {
2046
2243
  href: url,
2047
2244
  className: cardClasses,
2048
- "aria-label": `View product: ${title}`,
2245
+ "aria-label": "View product: ".concat(title),
2049
2246
  "data-product-id": id
2050
2247
  }, imageUrl && /*#__PURE__*/React.createElement("div", {
2051
2248
  className: styles$6.productCardVertical__imageWrapper
@@ -2066,7 +2263,7 @@ const ProductCardVertical = ({
2066
2263
  type: "button",
2067
2264
  onClick: handleButtonClick,
2068
2265
  className: styles$6.productCardVertical__button,
2069
- "aria-label": `${buttonLabel} - ${title}`,
2266
+ "aria-label": "".concat(buttonLabel, " - ").concat(title),
2070
2267
  tabIndex: -1
2071
2268
  }, /*#__PURE__*/React.createElement("span", null, buttonLabel), /*#__PURE__*/React.createElement(FontAwesomeIcon, {
2072
2269
  icon: faArrowUpRightFromSquare$1,
@@ -2076,17 +2273,19 @@ const ProductCardVertical = ({
2076
2273
 
2077
2274
  var styles$5 = {"resultsView":"ResultsView-module__resultsView___S4Wh2","searchBarWrapper":"ResultsView-module__searchBarWrapper___XNtwR","tabsContainer":"ResultsView-module__tabsContainer___mB-Q2","tabs":"ResultsView-module__tabs___rOexd","tabSeparator":"ResultsView-module__tabSeparator___MSq9p","mobileFilterButton":"ResultsView-module__mobileFilterButton___ZrMQY","resultsContainer":"ResultsView-module__resultsContainer___J4URa","sidebar":"ResultsView-module__sidebar___nQq5J","assistanceBanner":"ResultsView-module__assistanceBanner___1r72a","mainContent":"ResultsView-module__mainContent___S9eIG","productsGrid":"ResultsView-module__productsGrid___gnAQ-","contentsList":"ResultsView-module__contentsList___tcfNG","contentDivider":"ResultsView-module__contentDivider___5n6sl","resultsList":"ResultsView-module__resultsList___8eYNX","resultsSection":"ResultsView-module__resultsSection___sCUaO","sectionTitle":"ResultsView-module__sectionTitle___mfvH3","loadingState":"ResultsView-module__loadingState___W5YXx","errorState":"ResultsView-module__errorState___UkkG-","emptyState":"ResultsView-module__emptyState___D0Iyn","spinner":"ResultsView-module__spinner___nk8E5","emptyIcon":"ResultsView-module__emptyIcon___fes8T","paginationWrapper":"ResultsView-module__paginationWrapper___mDTyl","searchBarDesktopOnly":"ResultsView-module__searchBarDesktopOnly___dZHUw","tabsContainerDesktopOnly":"ResultsView-module__tabsContainerDesktopOnly___-MQpa"};
2078
2275
 
2079
- const ResultsList = ({
2080
- type,
2081
- products = [],
2082
- contents = [],
2083
- isLoading,
2084
- error,
2085
- className = ''
2086
- }) => {
2276
+ var ResultsList = function (_a) {
2277
+ var type = _a.type,
2278
+ _b = _a.products,
2279
+ products = _b === void 0 ? [] : _b,
2280
+ _c = _a.contents,
2281
+ contents = _c === void 0 ? [] : _c,
2282
+ isLoading = _a.isLoading,
2283
+ error = _a.error,
2284
+ _d = _a.className,
2285
+ className = _d === void 0 ? '' : _d;
2087
2286
  if (isLoading) {
2088
2287
  return /*#__PURE__*/React.createElement("div", {
2089
- className: `${styles$5.loadingState} ${className}`
2288
+ className: "".concat(styles$5.loadingState, " ").concat(className)
2090
2289
  }, /*#__PURE__*/React.createElement("div", {
2091
2290
  className: styles$5.spinner,
2092
2291
  "aria-label": "Loading..."
@@ -2094,15 +2293,15 @@ const ResultsList = ({
2094
2293
  }
2095
2294
  if (error) {
2096
2295
  return /*#__PURE__*/React.createElement("div", {
2097
- className: `${styles$5.errorState} ${className}`
2296
+ className: "".concat(styles$5.errorState, " ").concat(className)
2098
2297
  }, /*#__PURE__*/React.createElement("p", null, error));
2099
2298
  }
2100
- const hasProducts = products.length > 0;
2101
- const hasContents = contents.length > 0;
2102
- const hasResults = hasProducts || hasContents;
2299
+ var hasProducts = products.length > 0;
2300
+ var hasContents = contents.length > 0;
2301
+ var hasResults = hasProducts || hasContents;
2103
2302
  if (!hasResults) {
2104
2303
  return /*#__PURE__*/React.createElement("div", {
2105
- className: `${styles$5.emptyState} ${className}`
2304
+ className: "".concat(styles$5.emptyState, " ").concat(className)
2106
2305
  }, /*#__PURE__*/React.createElement("svg", {
2107
2306
  xmlns: "http://www.w3.org/2000/svg",
2108
2307
  viewBox: "0 0 24 24",
@@ -2120,107 +2319,111 @@ const ResultsList = ({
2120
2319
  d: "m21 21-4.35-4.35"
2121
2320
  })), /*#__PURE__*/React.createElement("h3", null, "No results found"), /*#__PURE__*/React.createElement("p", null, "Try adjusting your search or filters to find what you're looking for."));
2122
2321
  }
2123
-
2124
2322
  // Render based on type
2125
2323
  if (type === 'products') {
2126
2324
  return /*#__PURE__*/React.createElement("div", {
2127
- className: `${styles$5.productsGrid} ${className}`
2128
- }, products.map(product => /*#__PURE__*/React.createElement(ProductCardVertical, _extends({
2129
- key: product.id
2130
- }, product, {
2131
- buttonLabel: "BUY ONLINE"
2132
- }))));
2325
+ className: "".concat(styles$5.productsGrid, " ").concat(className)
2326
+ }, products.map(function (product) {
2327
+ return /*#__PURE__*/React.createElement(ProductCardVertical, _extends({
2328
+ key: product.id
2329
+ }, product, {
2330
+ buttonLabel: "BUY ONLINE"
2331
+ }));
2332
+ }));
2133
2333
  }
2134
2334
  if (type === 'content') {
2135
2335
  return /*#__PURE__*/React.createElement("div", {
2136
- className: `${styles$5.contentsList} ${className}`
2137
- }, contents.map((content, index) => /*#__PURE__*/React.createElement(React.Fragment, {
2138
- key: content.id
2139
- }, index > 0 && /*#__PURE__*/React.createElement("hr", {
2140
- className: styles$5.contentDivider
2141
- }), /*#__PURE__*/React.createElement(ContentCardHorizontal, _extends({}, content, {
2142
- variant: "results-view"
2143
- })))));
2336
+ className: "".concat(styles$5.contentsList, " ").concat(className)
2337
+ }, contents.map(function (content, index) {
2338
+ return /*#__PURE__*/React.createElement(React.Fragment, {
2339
+ key: content.id
2340
+ }, index > 0 && /*#__PURE__*/React.createElement("hr", {
2341
+ className: styles$5.contentDivider
2342
+ }), /*#__PURE__*/React.createElement(ContentCardHorizontal, _extends({}, content, {
2343
+ variant: "results-view"
2344
+ })));
2345
+ }));
2144
2346
  }
2145
-
2146
2347
  // type === 'all' - Show mixed results (not in current Figma design, but keep for compatibility)
2147
2348
  return /*#__PURE__*/React.createElement("div", {
2148
- className: `${styles$5.resultsList} ${className}`
2349
+ className: "".concat(styles$5.resultsList, " ").concat(className)
2149
2350
  }, hasProducts && /*#__PURE__*/React.createElement("div", {
2150
2351
  className: styles$5.resultsSection
2151
2352
  }, /*#__PURE__*/React.createElement("h3", {
2152
2353
  className: styles$5.sectionTitle
2153
2354
  }, "Products (", products.length, ")"), /*#__PURE__*/React.createElement("div", {
2154
2355
  className: styles$5.productsGrid
2155
- }, products.map(product => /*#__PURE__*/React.createElement(ProductCardVertical, _extends({
2156
- key: product.id
2157
- }, product, {
2158
- buttonLabel: "BUY ONLINE"
2159
- }))))), hasContents && /*#__PURE__*/React.createElement("div", {
2356
+ }, products.map(function (product) {
2357
+ return /*#__PURE__*/React.createElement(ProductCardVertical, _extends({
2358
+ key: product.id
2359
+ }, product, {
2360
+ buttonLabel: "BUY ONLINE"
2361
+ }));
2362
+ }))), hasContents && /*#__PURE__*/React.createElement("div", {
2160
2363
  className: styles$5.resultsSection
2161
2364
  }, /*#__PURE__*/React.createElement("h3", {
2162
2365
  className: styles$5.sectionTitle
2163
2366
  }, "Content (", contents.length, ")"), /*#__PURE__*/React.createElement("div", {
2164
2367
  className: styles$5.contentsList
2165
- }, contents.map((content, index) => /*#__PURE__*/React.createElement(React.Fragment, {
2166
- key: content.id
2167
- }, index > 0 && /*#__PURE__*/React.createElement("hr", {
2168
- className: styles$5.contentDivider
2169
- }), /*#__PURE__*/React.createElement(ContentCardHorizontal, _extends({}, content, {
2170
- variant: "results-view"
2171
- })))))));
2368
+ }, contents.map(function (content, index) {
2369
+ return /*#__PURE__*/React.createElement(React.Fragment, {
2370
+ key: content.id
2371
+ }, index > 0 && /*#__PURE__*/React.createElement("hr", {
2372
+ className: styles$5.contentDivider
2373
+ }), /*#__PURE__*/React.createElement(ContentCardHorizontal, _extends({}, content, {
2374
+ variant: "results-view"
2375
+ })));
2376
+ }))));
2172
2377
  };
2173
2378
 
2174
2379
  var styles$4 = {"tabButton":"TabButton-module__tabButton___cMU45","tabButton__count":"TabButton-module__tabButton__count___nlS1p","tabButton__label":"TabButton-module__tabButton__label___YGpiC","tabButton__results":"TabButton-module__tabButton__results___Nr6gr","tabButton--desktop":"TabButton-module__tabButton--desktop___fbAaC","tabButton--active":"TabButton-module__tabButton--active___gj6Jp","tabButton--mobile":"TabButton-module__tabButton--mobile___AnLwy"};
2175
2380
 
2176
- /**
2177
- * TabButton - Tab navigation component with result counts
2178
- *
2179
- * Supports two layout variants:
2180
- * - Desktop: Background colours, top red underline when active, rounded corners
2181
- * - Mobile: Text-only with bottom border underline when active
2182
- *
2183
- * @example
2184
- * ```tsx
2185
- * // Desktop variant
2186
- * <TabButton
2187
- * label="WEB SHOP RESULTS"
2188
- * count={542}
2189
- * isActive={true}
2190
- * onClick={() => setActiveTab('products')}
2191
- * variant="desktop"
2192
- * />
2193
- *
2194
- * // Mobile variant
2195
- * <TabButton
2196
- * label="WEB SHOP"
2197
- * isActive={false}
2198
- * onClick={() => setActiveTab('content')}
2199
- * variant="mobile"
2200
- * />
2201
- * ```
2381
+ /**
2382
+ * TabButton - Tab navigation component with result counts
2383
+ *
2384
+ * Supports two layout variants:
2385
+ * - Desktop: Background colours, top red underline when active, rounded corners
2386
+ * - Mobile: Text-only with bottom border underline when active
2387
+ *
2388
+ * @example
2389
+ * ```tsx
2390
+ * // Desktop variant
2391
+ * <TabButton
2392
+ * label="WEB SHOP RESULTS"
2393
+ * count={542}
2394
+ * isActive={true}
2395
+ * onClick={() => setActiveTab('products')}
2396
+ * variant="desktop"
2397
+ * />
2398
+ *
2399
+ * // Mobile variant
2400
+ * <TabButton
2401
+ * label="WEB SHOP"
2402
+ * isActive={false}
2403
+ * onClick={() => setActiveTab('content')}
2404
+ * variant="mobile"
2405
+ * />
2406
+ * ```
2202
2407
  */
2203
- const TabButton = ({
2204
- label,
2205
- count,
2206
- isActive,
2207
- onClick,
2208
- variant = 'desktop',
2209
- className
2210
- }) => {
2211
- const buttonClasses = classNames(styles$4.tabButton, styles$4[`tabButton--${variant}`], {
2212
- [styles$4['tabButton--active']]: isActive
2213
- }, className);
2214
-
2408
+ var TabButton = function (_a) {
2409
+ var _b;
2410
+ var label = _a.label,
2411
+ count = _a.count,
2412
+ isActive = _a.isActive,
2413
+ onClick = _a.onClick,
2414
+ _c = _a.variant,
2415
+ variant = _c === void 0 ? 'desktop' : _c,
2416
+ className = _a.className;
2417
+ var buttonClasses = classNames(styles$4.tabButton, styles$4["tabButton--".concat(variant)], (_b = {}, _b[styles$4['tabButton--active']] = isActive, _b), className);
2215
2418
  // Split label to hide " RESULTS" on mobile
2216
- const labelParts = label.split(' RESULTS');
2217
- const mainLabel = labelParts[0];
2218
- const hasResults = labelParts.length > 1;
2419
+ var labelParts = label.split(' RESULTS');
2420
+ var mainLabel = labelParts[0];
2421
+ var hasResults = labelParts.length > 1;
2219
2422
  return /*#__PURE__*/React.createElement("button", {
2220
2423
  type: "button",
2221
2424
  role: "tab",
2222
2425
  "aria-selected": isActive,
2223
- "aria-controls": `tabpanel-${label.toLowerCase().replace(/\s+/g, '-')}`,
2426
+ "aria-controls": "tabpanel-".concat(label.toLowerCase().replace(/\s+/g, '-')),
2224
2427
  onClick: onClick,
2225
2428
  className: buttonClasses
2226
2429
  }, count !== undefined && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
@@ -2232,7 +2435,7 @@ const TabButton = ({
2232
2435
  }, " RESULTS")));
2233
2436
  };
2234
2437
 
2235
- const AssistanceIcon = props => {
2438
+ var AssistanceIcon = function (props) {
2236
2439
  return /*#__PURE__*/React.createElement("svg", _extends({
2237
2440
  xmlns: "http://www.w3.org/2000/svg",
2238
2441
  width: "87",
@@ -2247,39 +2450,42 @@ const AssistanceIcon = props => {
2247
2450
 
2248
2451
  var styles$3 = {"assistanceBanner":"AssistanceBanner-module__assistanceBanner___b97es","assistanceBanner__icon":"AssistanceBanner-module__assistanceBanner__icon___8NzJj","assistanceBanner__title":"AssistanceBanner-module__assistanceBanner__title___Wtkkt","assistanceBanner__description":"AssistanceBanner-module__assistanceBanner__description___AjoOr","assistanceBanner__link":"AssistanceBanner-module__assistanceBanner__link___5L45N","assistanceBanner__chevron":"AssistanceBanner-module__assistanceBanner__chevron___4km-f"};
2249
2452
 
2250
- /**
2251
- * AssistanceBanner - Help widget for search sidebar
2252
- *
2253
- * Displays a call-to-action for users who need assistance finding products.
2254
- * Features chat icon, heading, description, and contact link with chevron.
2255
- *
2256
- * Desktop only - hidden on mobile to save space.
2257
- *
2258
- * @example
2259
- * ```tsx
2260
- * <AssistanceBanner
2261
- * title="Need Assistance?"
2262
- * description="Can't find what you're looking for? Our team is ready to help."
2263
- * linkText="Contact support"
2264
- * linkUrl="/contact"
2265
- * />
2266
- * ```
2453
+ /**
2454
+ * AssistanceBanner - Help widget for search sidebar
2455
+ *
2456
+ * Displays a call-to-action for users who need assistance finding products.
2457
+ * Features chat icon, heading, description, and contact link with chevron.
2458
+ *
2459
+ * Desktop only - hidden on mobile to save space.
2460
+ *
2461
+ * @example
2462
+ * ```tsx
2463
+ * <AssistanceBanner
2464
+ * title="Need Assistance?"
2465
+ * description="Can't find what you're looking for? Our team is ready to help."
2466
+ * linkText="Contact support"
2467
+ * linkUrl="/contact"
2468
+ * />
2469
+ * ```
2267
2470
  */
2268
- const AssistanceBanner = ({
2269
- title = 'Need Assistance?',
2270
- description = "Can't find what you're looking for? Our team is ready to help.",
2271
- linkText = 'Contact support',
2272
- linkUrl = '/contact',
2273
- onLinkClick,
2274
- className
2275
- }) => {
2276
- const handleLinkClick = e => {
2471
+ var AssistanceBanner = function (_a) {
2472
+ var _b = _a.title,
2473
+ title = _b === void 0 ? 'Need Assistance?' : _b,
2474
+ _c = _a.description,
2475
+ description = _c === void 0 ? "Can't find what you're looking for? Our team is ready to help." : _c,
2476
+ _d = _a.linkText,
2477
+ linkText = _d === void 0 ? 'Contact support' : _d,
2478
+ _e = _a.linkUrl,
2479
+ linkUrl = _e === void 0 ? '/contact' : _e,
2480
+ onLinkClick = _a.onLinkClick,
2481
+ className = _a.className;
2482
+ var handleLinkClick = function (e) {
2277
2483
  if (onLinkClick) {
2278
2484
  e.preventDefault();
2279
2485
  onLinkClick();
2280
2486
  }
2281
2487
  };
2282
- const bannerClasses = classNames(styles$3.assistanceBanner, className);
2488
+ var bannerClasses = classNames(styles$3.assistanceBanner, className);
2283
2489
  return /*#__PURE__*/React.createElement("div", {
2284
2490
  className: bannerClasses
2285
2491
  }, /*#__PURE__*/React.createElement(AssistanceIcon, {
@@ -2312,111 +2518,105 @@ const AssistanceBanner = ({
2312
2518
 
2313
2519
  var styles$2 = {"drawerOverlay":"FilterDrawer-module__drawerOverlay___P6M4y","drawerOverlay--open":"FilterDrawer-module__drawerOverlay--open___blJZo","drawerPanel":"FilterDrawer-module__drawerPanel___35h-U","drawerPanel--open":"FilterDrawer-module__drawerPanel--open___Fw1SY","drawerCloseButton":"FilterDrawer-module__drawerCloseButton___cfMmf","drawerContent":"FilterDrawer-module__drawerContent___KBff6"};
2314
2520
 
2315
- /**
2316
- * FilterDrawer - Mobile slide-in filter panel
2317
- *
2318
- * Slides in from the right with a dark overlay. Used on mobile to show filters
2319
- * when screen space is limited. Includes focus trap, escape key handling, and
2320
- * body scroll prevention.
2321
- *
2322
- * Desktop: Hidden (filters shown in sidebar)
2323
- * Mobile: Slide-in drawer overlay
2324
- *
2325
- * @example
2326
- * ```tsx
2327
- * <FilterDrawer
2328
- * isOpen={isFilterDrawerOpen}
2329
- * onClose={() => setIsFilterDrawerOpen(false)}
2330
- * >
2331
- * <FiltersPanel facets={facets} onFacetToggle={handleToggle} />
2332
- * </FilterDrawer>
2333
- * ```
2521
+ /**
2522
+ * FilterDrawer - Mobile slide-in filter panel
2523
+ *
2524
+ * Slides in from the right with a dark overlay. Used on mobile to show filters
2525
+ * when screen space is limited. Includes focus trap, escape key handling, and
2526
+ * body scroll prevention.
2527
+ *
2528
+ * Desktop: Hidden (filters shown in sidebar)
2529
+ * Mobile: Slide-in drawer overlay
2530
+ *
2531
+ * @example
2532
+ * ```tsx
2533
+ * <FilterDrawer
2534
+ * isOpen={isFilterDrawerOpen}
2535
+ * onClose={() => setIsFilterDrawerOpen(false)}
2536
+ * >
2537
+ * <FiltersPanel facets={facets} onFacetToggle={handleToggle} />
2538
+ * </FilterDrawer>
2539
+ * ```
2334
2540
  */
2335
- const FilterDrawer = ({
2336
- isOpen,
2337
- onClose,
2338
- children,
2339
- className
2340
- }) => {
2341
- const drawerRef = useRef(null);
2342
- const previouslyFocusedElement = useRef(null);
2343
-
2541
+ var FilterDrawer = function (_a) {
2542
+ var _b, _c;
2543
+ var isOpen = _a.isOpen,
2544
+ onClose = _a.onClose,
2545
+ children = _a.children,
2546
+ className = _a.className;
2547
+ var drawerRef = useRef(null);
2548
+ var previouslyFocusedElement = useRef(null);
2344
2549
  // Focus management
2345
- useEffect(() => {
2550
+ useEffect(function () {
2346
2551
  if (isOpen) {
2347
2552
  // Store previously focused element
2348
2553
  previouslyFocusedElement.current = document.activeElement;
2349
-
2350
2554
  // Focus the drawer
2351
2555
  if (drawerRef.current) {
2352
2556
  drawerRef.current.focus();
2353
2557
  }
2354
-
2355
2558
  // Prevent body scroll
2356
2559
  document.body.style.overflow = 'hidden';
2357
2560
  } else {
2358
2561
  // Restore body scroll
2359
2562
  document.body.style.overflow = '';
2360
-
2361
2563
  // Return focus to previously focused element
2362
2564
  if (previouslyFocusedElement.current) {
2363
2565
  previouslyFocusedElement.current.focus();
2364
2566
  }
2365
2567
  }
2366
- return () => {
2568
+ return function () {
2367
2569
  document.body.style.overflow = '';
2368
2570
  };
2369
2571
  }, [isOpen]);
2370
-
2371
2572
  // Escape key handler
2372
- useEffect(() => {
2373
- const handleEscape = event => {
2573
+ useEffect(function () {
2574
+ var handleEscape = function (event) {
2374
2575
  if (event.key === 'Escape' && isOpen) {
2375
2576
  onClose();
2376
2577
  }
2377
2578
  };
2378
2579
  document.addEventListener('keydown', handleEscape);
2379
- return () => document.removeEventListener('keydown', handleEscape);
2580
+ return function () {
2581
+ return document.removeEventListener('keydown', handleEscape);
2582
+ };
2380
2583
  }, [isOpen, onClose]);
2381
-
2382
2584
  // Focus trap implementation
2383
- useEffect(() => {
2585
+ useEffect(function () {
2384
2586
  if (!isOpen || !drawerRef.current) return;
2385
- const drawer = drawerRef.current;
2386
- const focusableElements = drawer.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
2387
- const firstElement = focusableElements[0];
2388
- const lastElement = focusableElements[focusableElements.length - 1];
2389
- const handleTab = event => {
2587
+ var drawer = drawerRef.current;
2588
+ var focusableElements = drawer.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
2589
+ var firstElement = focusableElements[0];
2590
+ var lastElement = focusableElements[focusableElements.length - 1];
2591
+ var handleTab = function (event) {
2390
2592
  if (event.key !== 'Tab') return;
2391
2593
  if (event.shiftKey) {
2392
2594
  // Shift + Tab
2393
2595
  if (document.activeElement === firstElement) {
2394
2596
  event.preventDefault();
2395
- lastElement?.focus();
2597
+ lastElement === null || lastElement === void 0 ? void 0 : lastElement.focus();
2396
2598
  }
2397
2599
  } else {
2398
2600
  // Tab
2399
2601
  if (document.activeElement === lastElement) {
2400
2602
  event.preventDefault();
2401
- firstElement?.focus();
2603
+ firstElement === null || firstElement === void 0 ? void 0 : firstElement.focus();
2402
2604
  }
2403
2605
  }
2404
2606
  };
2405
2607
  drawer.addEventListener('keydown', handleTab);
2406
- return () => drawer.removeEventListener('keydown', handleTab);
2608
+ return function () {
2609
+ return drawer.removeEventListener('keydown', handleTab);
2610
+ };
2407
2611
  }, [isOpen]);
2408
2612
  if (!isOpen) return null;
2409
- const handleOverlayClick = event => {
2613
+ var handleOverlayClick = function (event) {
2410
2614
  if (event.target === event.currentTarget) {
2411
2615
  onClose();
2412
2616
  }
2413
2617
  };
2414
- const overlayClasses = classNames(styles$2.drawerOverlay, {
2415
- [styles$2['drawerOverlay--open']]: isOpen
2416
- });
2417
- const panelClasses = classNames(styles$2.drawerPanel, {
2418
- [styles$2['drawerPanel--open']]: isOpen
2419
- }, className);
2618
+ var overlayClasses = classNames(styles$2.drawerOverlay, (_b = {}, _b[styles$2['drawerOverlay--open']] = isOpen, _b));
2619
+ var panelClasses = classNames(styles$2.drawerPanel, (_c = {}, _c[styles$2['drawerPanel--open']] = isOpen, _c), className);
2420
2620
  return /*#__PURE__*/React.createElement("div", {
2421
2621
  className: overlayClasses,
2422
2622
  onClick: handleOverlayClick,
@@ -2440,63 +2640,63 @@ const FilterDrawer = ({
2440
2640
  }, children)));
2441
2641
  };
2442
2642
 
2443
- const FederatedResultsView = ({
2444
- query,
2445
- onQueryChange,
2446
- onSearchSubmit,
2447
- activeTab,
2448
- onTabChange,
2449
- products,
2450
- contents,
2451
- isLoadingProducts,
2452
- isLoadingContents,
2453
- productsError,
2454
- contentsError,
2455
- currentPage,
2456
- totalPages,
2457
- onPageChange,
2458
- facets,
2459
- onFacetToggle,
2460
- isFilterDrawerOpen,
2461
- onFilterDrawerToggle,
2462
- onFilterDrawerClose
2463
- }) => {
2464
- const isLoading = activeTab === "products" && isLoadingProducts || activeTab === "content" && isLoadingContents;
2465
- const error = activeTab === "products" ? productsError : contentsError;
2466
-
2643
+ var FederatedResultsView = function (_a) {
2644
+ var query = _a.query,
2645
+ onQueryChange = _a.onQueryChange,
2646
+ onSearchSubmit = _a.onSearchSubmit,
2647
+ activeTab = _a.activeTab,
2648
+ onTabChange = _a.onTabChange,
2649
+ products = _a.products,
2650
+ contents = _a.contents,
2651
+ isLoadingProducts = _a.isLoadingProducts,
2652
+ isLoadingContents = _a.isLoadingContents,
2653
+ productsError = _a.productsError,
2654
+ contentsError = _a.contentsError,
2655
+ currentPage = _a.currentPage,
2656
+ totalPages = _a.totalPages,
2657
+ onPageChange = _a.onPageChange,
2658
+ facets = _a.facets,
2659
+ onFacetToggle = _a.onFacetToggle,
2660
+ isFilterDrawerOpen = _a.isFilterDrawerOpen,
2661
+ onFilterDrawerToggle = _a.onFilterDrawerToggle,
2662
+ onFilterDrawerClose = _a.onFilterDrawerClose;
2663
+ var isLoading = activeTab === "products" && isLoadingProducts || activeTab === "content" && isLoadingContents;
2664
+ var error = activeTab === "products" ? productsError : contentsError;
2467
2665
  // Filter results based on active tab
2468
- const displayProducts = activeTab === "content" ? [] : products;
2469
- const displayContents = activeTab === "products" ? [] : contents;
2470
-
2666
+ var displayProducts = activeTab === "content" ? [] : products;
2667
+ var displayContents = activeTab === "products" ? [] : contents;
2471
2668
  // Content tab single-select handler (clears all others when selecting)
2472
- const handleContentCategorySelect = useCallback((attribute, value) => {
2473
- const facet = facets.find(f => f.attribute === attribute);
2669
+ var handleContentCategorySelect = useCallback(function (attribute, value) {
2670
+ var facet = facets.find(function (f) {
2671
+ return f.attribute === attribute;
2672
+ });
2474
2673
  if (!facet) return;
2475
-
2476
2674
  // Clear ALL values in this facet first
2477
- facet.values.forEach(v => {
2675
+ facet.values.forEach(function (v) {
2478
2676
  if (v.isRefined) {
2479
2677
  onFacetToggle(attribute, v.value); // Unselect
2480
2678
  }
2481
2679
  });
2482
-
2483
2680
  // Then select the clicked value (if not already selected)
2484
- const clickedValue = facet.values.find(v => v.value === value);
2681
+ var clickedValue = facet.values.find(function (v) {
2682
+ return v.value === value;
2683
+ });
2485
2684
  if (clickedValue && !clickedValue.isRefined) {
2486
2685
  onFacetToggle(attribute, value); // Select
2487
2686
  }
2488
2687
  }, [facets, onFacetToggle]);
2489
-
2490
2688
  // Track if any filters applied
2491
- const hasAppliedFilters = useMemo(() => {
2492
- return facets.some(facet => facet.values.some(value => value.isRefined));
2689
+ var hasAppliedFilters = useMemo(function () {
2690
+ return facets.some(function (facet) {
2691
+ return facet.values.some(function (value) {
2692
+ return value.isRefined;
2693
+ });
2694
+ });
2493
2695
  }, [facets]);
2494
-
2495
2696
  // Track previous filter state to detect transitions
2496
- const prevHasAppliedFilters = useRef(hasAppliedFilters);
2497
-
2697
+ var prevHasAppliedFilters = useRef(hasAppliedFilters);
2498
2698
  // Auto-close drawer when transitioning FROM filters applied TO no filters (mobile only)
2499
- useEffect(() => {
2699
+ useEffect(function () {
2500
2700
  // Only close if we HAD filters and now have NONE (not on initial open)
2501
2701
  if (prevHasAppliedFilters.current && !hasAppliedFilters && isFilterDrawerOpen && onFilterDrawerClose) {
2502
2702
  onFilterDrawerClose();
@@ -2506,7 +2706,7 @@ const FederatedResultsView = ({
2506
2706
  return /*#__PURE__*/React.createElement("div", {
2507
2707
  className: styles$5.resultsView
2508
2708
  }, /*#__PURE__*/React.createElement("div", {
2509
- className: `${styles$5.searchBarWrapper} ${styles$5.searchBarDesktopOnly}`
2709
+ className: "".concat(styles$5.searchBarWrapper, " ").concat(styles$5.searchBarDesktopOnly)
2510
2710
  }, /*#__PURE__*/React.createElement(SearchBar, {
2511
2711
  value: query,
2512
2712
  onChange: onQueryChange,
@@ -2514,7 +2714,7 @@ const FederatedResultsView = ({
2514
2714
  placeholder: "Refine your search...",
2515
2715
  variant: "results"
2516
2716
  })), /*#__PURE__*/React.createElement("div", {
2517
- className: `${styles$5.tabsContainer} ${styles$5.tabsContainerDesktopOnly}`
2717
+ className: "".concat(styles$5.tabsContainer, " ").concat(styles$5.tabsContainerDesktopOnly)
2518
2718
  }, /*#__PURE__*/React.createElement("div", {
2519
2719
  className: styles$5.tabs,
2520
2720
  role: "tablist"
@@ -2522,7 +2722,9 @@ const FederatedResultsView = ({
2522
2722
  label: "WEB SHOP RESULTS",
2523
2723
  count: products.length,
2524
2724
  isActive: activeTab === "products",
2525
- onClick: () => onTabChange("products"),
2725
+ onClick: function () {
2726
+ return onTabChange("products");
2727
+ },
2526
2728
  variant: "desktop"
2527
2729
  }), /*#__PURE__*/React.createElement("div", {
2528
2730
  className: styles$5.tabSeparator
@@ -2530,7 +2732,9 @@ const FederatedResultsView = ({
2530
2732
  label: "WEBSITE RESULTS",
2531
2733
  count: contents.length,
2532
2734
  isActive: activeTab === "content",
2533
- onClick: () => onTabChange("content"),
2735
+ onClick: function () {
2736
+ return onTabChange("content");
2737
+ },
2534
2738
  variant: "desktop"
2535
2739
  })), onFilterDrawerToggle && /*#__PURE__*/React.createElement("button", {
2536
2740
  type: "button",
@@ -2559,9 +2763,9 @@ const FederatedResultsView = ({
2559
2763
  })), /*#__PURE__*/React.createElement("main", {
2560
2764
  className: styles$5.mainContent
2561
2765
  }, /*#__PURE__*/React.createElement("div", {
2562
- id: `tabpanel-${activeTab}`,
2766
+ id: "tabpanel-".concat(activeTab),
2563
2767
  role: "tabpanel",
2564
- "aria-labelledby": `tab-${activeTab}`
2768
+ "aria-labelledby": "tab-".concat(activeTab)
2565
2769
  }, /*#__PURE__*/React.createElement(ResultsList, {
2566
2770
  type: activeTab,
2567
2771
  products: displayProducts,
@@ -2576,7 +2780,7 @@ const FederatedResultsView = ({
2576
2780
  onPageChange: onPageChange,
2577
2781
  maxVisiblePages: 10,
2578
2782
  showPrevious: false,
2579
- ariaLabel: `${activeTab === "products" ? "Products" : "Content"} pagination`
2783
+ ariaLabel: "".concat(activeTab === "products" ? "Products" : "Content", " pagination")
2580
2784
  }))))), onFilterDrawerClose && /*#__PURE__*/React.createElement(FilterDrawer, {
2581
2785
  isOpen: isFilterDrawerOpen || false,
2582
2786
  onClose: onFilterDrawerClose
@@ -2590,73 +2794,76 @@ const FederatedResultsView = ({
2590
2794
 
2591
2795
  var styles$1 = {"searchExperience":"FederatedSearchExperience-module__searchExperience___gug9X","searchBarSection":"FederatedSearchExperience-module__searchBarSection___f0Ykq","searchBarDesktopOnly":"FederatedSearchExperience-module__searchBarDesktopOnly___CetKZ","searchBarMobileOnly":"FederatedSearchExperience-module__searchBarMobileOnly___Ityxp","resultsHeaderMobileOnly":"FederatedSearchExperience-module__resultsHeaderMobileOnly___09ef-","tabsContainerSticky":"FederatedSearchExperience-module__tabsContainerSticky___-HdY5","tabs":"FederatedSearchExperience-module__tabs___Vatv8","tabSeparator":"FederatedSearchExperience-module__tabSeparator___AUjhW","mobileFilterButtonWrapper":"FederatedSearchExperience-module__mobileFilterButtonWrapper___JkRtk","mobileFilterButton":"FederatedSearchExperience-module__mobileFilterButton___sRc-w","filterIndicatorDot":"FederatedSearchExperience-module__filterIndicatorDot___vqVi2","instantResultsSection":"FederatedSearchExperience-module__instantResultsSection___AG3qn","fullResultsSection":"FederatedSearchExperience-module__fullResultsSection___NH16U"};
2592
2796
 
2593
- /**
2594
- * FederatedSearchExperience - Top-level search experience component
2595
- *
2596
- * This component orchestrates the entire federated search experience, including:
2597
- * - Modal container
2598
- * - Search input
2599
- * - Instant results (2-column layout)
2600
- * - Full results view with tabs and filters
2601
- *
2602
- * The component is fully controlled and does not contain any data fetching logic.
2603
- * All data and callbacks are passed in via props, making it suitable for use in AEM
2604
- * where a controller layer will handle Algolia integration.
2605
- *
2606
- * @example
2607
- * ```tsx
2608
- * <FederatedSearchExperience
2609
- * isOpen={isOpen}
2610
- * onOpen={handleOpen}
2611
- * onClose={handleClose}
2612
- * query={query}
2613
- * onQueryChange={setQuery}
2614
- * onSearchSubmit={handleSubmit}
2615
- * products={products}
2616
- * contents={contents}
2617
- * isLoadingProducts={isLoadingProducts}
2618
- * isLoadingContents={isLoadingContents}
2619
- * onSeeAllProducts={handleSeeAllProducts}
2620
- * onSeeAllContents={handleSeeAllContents}
2621
- * onSeeAllCombined={handleSeeAllCombined}
2622
- * activeView={activeView}
2623
- * onChangeView={setActiveView}
2624
- * activeTab={activeTab}
2625
- * onTabChange={setActiveTab}
2626
- * />
2627
- * ```
2797
+ /**
2798
+ * FederatedSearchExperience - Top-level search experience component
2799
+ *
2800
+ * This component orchestrates the entire federated search experience, including:
2801
+ * - Modal container
2802
+ * - Search input
2803
+ * - Instant results (2-column layout)
2804
+ * - Full results view with tabs and filters
2805
+ *
2806
+ * The component is fully controlled and does not contain any data fetching logic.
2807
+ * All data and callbacks are passed in via props, making it suitable for use in AEM
2808
+ * where a controller layer will handle Algolia integration.
2809
+ *
2810
+ * @example
2811
+ * ```tsx
2812
+ * <FederatedSearchExperience
2813
+ * isOpen={isOpen}
2814
+ * onOpen={handleOpen}
2815
+ * onClose={handleClose}
2816
+ * query={query}
2817
+ * onQueryChange={setQuery}
2818
+ * onSearchSubmit={handleSubmit}
2819
+ * products={products}
2820
+ * contents={contents}
2821
+ * isLoadingProducts={isLoadingProducts}
2822
+ * isLoadingContents={isLoadingContents}
2823
+ * onSeeAllProducts={handleSeeAllProducts}
2824
+ * onSeeAllContents={handleSeeAllContents}
2825
+ * onSeeAllCombined={handleSeeAllCombined}
2826
+ * activeView={activeView}
2827
+ * onChangeView={setActiveView}
2828
+ * activeTab={activeTab}
2829
+ * onTabChange={setActiveTab}
2830
+ * />
2831
+ * ```
2628
2832
  */
2629
- const FederatedSearchExperience = ({
2630
- isOpen,
2631
- onClose,
2632
- query,
2633
- onQueryChange,
2634
- onSearchSubmit,
2635
- products,
2636
- contents,
2637
- isLoadingProducts,
2638
- isLoadingContents,
2639
- productsError,
2640
- contentsError,
2641
- onSeeAllProducts,
2642
- onSeeAllContents,
2643
- onSeeAllCombined,
2644
- activeView,
2645
- onChangeView,
2646
- activeTab,
2647
- onTabChange,
2648
- currentPage,
2649
- totalPages,
2650
- onPageChange,
2651
- facets,
2652
- onFacetToggle,
2653
- isFilterDrawerOpen,
2654
- onFilterDrawerToggle,
2655
- onFilterDrawerClose
2656
- }) => {
2833
+ var FederatedSearchExperience = function (_a) {
2834
+ var isOpen = _a.isOpen,
2835
+ onClose = _a.onClose,
2836
+ query = _a.query,
2837
+ onQueryChange = _a.onQueryChange,
2838
+ onSearchSubmit = _a.onSearchSubmit,
2839
+ products = _a.products,
2840
+ contents = _a.contents,
2841
+ isLoadingProducts = _a.isLoadingProducts,
2842
+ isLoadingContents = _a.isLoadingContents,
2843
+ productsError = _a.productsError,
2844
+ contentsError = _a.contentsError,
2845
+ onSeeAllProducts = _a.onSeeAllProducts,
2846
+ onSeeAllContents = _a.onSeeAllContents,
2847
+ onSeeAllCombined = _a.onSeeAllCombined,
2848
+ activeView = _a.activeView;
2849
+ _a.onChangeView;
2850
+ var activeTab = _a.activeTab,
2851
+ onTabChange = _a.onTabChange,
2852
+ currentPage = _a.currentPage,
2853
+ totalPages = _a.totalPages,
2854
+ onPageChange = _a.onPageChange,
2855
+ facets = _a.facets,
2856
+ onFacetToggle = _a.onFacetToggle,
2857
+ isFilterDrawerOpen = _a.isFilterDrawerOpen,
2858
+ onFilterDrawerToggle = _a.onFilterDrawerToggle,
2859
+ onFilterDrawerClose = _a.onFilterDrawerClose;
2657
2860
  // Track if any filters are active (for red dot indicator)
2658
- const hasAppliedFilters = useMemo(() => {
2659
- return facets.some(facet => facet.values.some(value => value.isRefined));
2861
+ var hasAppliedFilters = useMemo(function () {
2862
+ return facets.some(function (facet) {
2863
+ return facet.values.some(function (value) {
2864
+ return value.isRefined;
2865
+ });
2866
+ });
2660
2867
  }, [facets]);
2661
2868
  return /*#__PURE__*/React.createElement(SearchModal, {
2662
2869
  isOpen: isOpen,
@@ -2688,7 +2895,9 @@ const FederatedSearchExperience = ({
2688
2895
  label: "WEB SHOP RESULTS",
2689
2896
  count: products.length,
2690
2897
  isActive: activeTab === "products",
2691
- onClick: () => onTabChange("products"),
2898
+ onClick: function () {
2899
+ return onTabChange("products");
2900
+ },
2692
2901
  variant: "mobile"
2693
2902
  }), /*#__PURE__*/React.createElement("div", {
2694
2903
  className: styles$1.tabSeparator
@@ -2696,7 +2905,9 @@ const FederatedSearchExperience = ({
2696
2905
  label: "WEBSITE RESULTS",
2697
2906
  count: contents.length,
2698
2907
  isActive: activeTab === "content",
2699
- onClick: () => onTabChange("content"),
2908
+ onClick: function () {
2909
+ return onTabChange("content");
2910
+ },
2700
2911
  variant: "mobile"
2701
2912
  })), /*#__PURE__*/React.createElement("div", {
2702
2913
  className: styles$1.mobileFilterButtonWrapper
@@ -2721,7 +2932,7 @@ const FederatedSearchExperience = ({
2721
2932
  }, /*#__PURE__*/React.createElement("div", {
2722
2933
  className: styles$1.searchExperience
2723
2934
  }, activeView === "instant" && /*#__PURE__*/React.createElement("div", {
2724
- className: `${styles$1.searchBarSection} ${styles$1.searchBarDesktopOnly}`
2935
+ className: "".concat(styles$1.searchBarSection, " ").concat(styles$1.searchBarDesktopOnly)
2725
2936
  }, /*#__PURE__*/React.createElement(SearchBar, {
2726
2937
  value: query,
2727
2938
  onChange: onQueryChange,
@@ -2789,13 +3000,14 @@ const FederatedSearchExperience = ({
2789
3000
 
2790
3001
  var styles = {"searchTrigger":"SearchTriggerButton-module__searchTrigger___PDbDB","searchIcon":"SearchTriggerButton-module__searchIcon___izByW","label":"SearchTriggerButton-module__label___mkS7T"};
2791
3002
 
2792
- const SearchTriggerButton = ({
2793
- onOpen,
2794
- ariaLabel = 'Open search',
2795
- label,
2796
- className = ''
2797
- }) => {
2798
- const handleKeyDown = event => {
3003
+ var SearchTriggerButton = function (_a) {
3004
+ var onOpen = _a.onOpen,
3005
+ _b = _a.ariaLabel,
3006
+ ariaLabel = _b === void 0 ? 'Open search' : _b,
3007
+ label = _a.label,
3008
+ _c = _a.className,
3009
+ className = _c === void 0 ? '' : _c;
3010
+ var handleKeyDown = function (event) {
2799
3011
  if (event.key === 'Enter' || event.key === ' ') {
2800
3012
  event.preventDefault();
2801
3013
  onOpen();
@@ -2806,7 +3018,7 @@ const SearchTriggerButton = ({
2806
3018
  onClick: onOpen,
2807
3019
  onKeyDown: handleKeyDown,
2808
3020
  "aria-label": ariaLabel,
2809
- className: `${styles.searchTrigger} ${className}`
3021
+ className: "".concat(styles.searchTrigger, " ").concat(className)
2810
3022
  }, /*#__PURE__*/React.createElement("svg", {
2811
3023
  className: styles.searchIcon,
2812
3024
  xmlns: "http://www.w3.org/2000/svg",
@@ -2828,5 +3040,5 @@ const SearchTriggerButton = ({
2828
3040
  }, label));
2829
3041
  };
2830
3042
 
2831
- export { AlgoliaDynamicSearchLeybold as AlgoliaDynamicSearch, AlgoliaDynamicSearchLeybold, AppliedFilterTag, AppliedFilters, Button, ContentCardHorizontal, FederatedInstantResultsLayout, FederatedResultsView, FederatedSearchExperience, FilterAccordion, FilterItem, FilterSearch, FiltersPanel, Footer, FooterBottom, FooterLink, FooterLinkGroup, FooterSocialIcon, FooterSocialIcons, ModalCloseButton, Pagination, PaginationButton, PaginationEllipsis, PaginationItem, ProductCardHorizontal, ProductCardVertical, QrFormLeybold as QrForm, QrFormLeybold, ResultsColumn, ResultsCount, ResultsList, SearchBar, SearchIcon, SearchInput, SearchModal, SearchSubmitButton, SearchTriggerButton, SeeAllLinkButton };
3043
+ export { AlgoliaDynamicSearchLeybold as AlgoliaDynamicSearch, AlgoliaDynamicSearchLeybold, AppliedFilterTag, AppliedFilters, Button, ContentCardBase, ContentCardHorizontal, FederatedInstantResultsLayout, FederatedResultsView, FederatedSearchExperience, FilterAccordion, FilterItem, FilterSearch, FiltersPanel, Footer, FooterBottom, FooterLink, FooterLinkGroup, FooterSocialIcon, FooterSocialIcons, ModalCloseButton, Pagination, PaginationButton, PaginationEllipsis, PaginationItem, ProductCardHorizontal, ProductCardVertical, QrFormLeybold as QrForm, QrFormLeybold, ResultsColumn, ResultsCount, ResultsList, SearchBar, SearchIcon, SearchInput, SearchModal, SearchSubmitButton, SearchTriggerButton, SeeAllLinkButton };
2832
3044
  //# sourceMappingURL=index.esm.js.map