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

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/app/layout.d.ts +9 -0
  3. package/dist/app/page.d.ts +2 -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.css +88 -0
  18. package/dist/index.d.ts +3 -0
  19. package/dist/index.esm.css +88 -0
  20. package/dist/index.esm.js +1147 -1359
  21. package/dist/index.esm.js.map +1 -1
  22. package/dist/index.esm.scss +35 -238
  23. package/dist/index.js +1148 -1361
  24. package/dist/index.js.map +1 -1
  25. package/dist/index.scss +35 -238
  26. package/dist/src/components/Button/Button.d.ts +2 -2
  27. package/dist/src/components/ContentCardHorizontal/ContentCardHorizontal.d.ts +2 -2
  28. package/dist/src/experience/algolia-dynamic-search/AlgoliaDynamicSearch.stories.d.ts +0 -2
  29. package/dist/src/index.d.ts +1 -2
  30. package/dist/src/stories/foundation/Typography/TypographyComponents.d.ts +0 -1
  31. package/dist/src/types/cards.d.ts +2 -28
  32. package/dist/stories/components/Algolia-dynamic-search/algolia-dynamic-search.d.ts +4 -0
  33. package/dist/stories/components/Algolia-dynamic-search/algolia-dynamic-search.stories.d.ts +7 -0
  34. package/dist/stories/components/Button/Button.d.ts +35 -0
  35. package/dist/stories/components/Button/Button.stories.d.ts +15 -0
  36. package/dist/stories/components/Button/index.d.ts +2 -0
  37. package/dist/stories/components/QRFormJourney/Qr-form/Qr-form.d.ts +2 -0
  38. package/dist/stories/components/QRFormJourney/Qr-form/Qr-form.stories.d.ts +7 -0
  39. package/dist/tsconfig.tsbuildinfo +1 -1
  40. package/dist/utils/styles/index.d.ts +1 -0
  41. package/package.json +115 -115
  42. package/dist/.next/types/app/layout.d.ts +0 -9
  43. package/dist/.next/types/app/page.d.ts +0 -9
  44. package/dist/src/components/ContentCardBase/ContentCardBase.d.ts +0 -3
  45. package/dist/src/components/ContentCardBase/index.d.ts +0 -2
  46. package/dist/src/components/ContentCardVertical/ContentCardVertical.d.ts +0 -3
  47. package/dist/src/components/ContentCardVertical/ContentCardVertical.stories.d.ts +0 -9
package/dist/index.esm.js CHANGED
@@ -15,46 +15,7 @@ function _extends() {
15
15
  }, _extends.apply(null, arguments);
16
16
  }
17
17
 
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"};
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"};
58
19
 
59
20
  function getDefaultExportFromCjs (x) {
60
21
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
@@ -131,10 +92,22 @@ function requireClassnames() {
131
92
  var classnamesExports = requireClassnames();
132
93
  var classNames = /*@__PURE__*/getDefaultExportFromCjs(classnamesExports);
133
94
 
134
- /**
135
- * Get the icon component based on icon type
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
136
109
  */
137
- var getIcon = function (icon) {
110
+ const getIcon = icon => {
138
111
  switch (icon) {
139
112
  case "arrow-right":
140
113
  return /*#__PURE__*/React.createElement(FontAwesomeIcon, {
@@ -156,10 +129,11 @@ var getIcon = function (icon) {
156
129
  return null;
157
130
  }
158
131
  };
159
- /**
160
- * Get default icon for certain variants
132
+
133
+ /**
134
+ * Get default icon for certain variants
161
135
  */
162
- var getDefaultIcon = function (variant) {
136
+ const getDefaultIcon = variant => {
163
137
  switch (variant) {
164
138
  case "link-text":
165
139
  case "link-text-alt":
@@ -176,10 +150,11 @@ var getDefaultIcon = function (variant) {
176
150
  return "none";
177
151
  }
178
152
  };
179
- /**
180
- * Map alias variants to their actual CSS class variants
153
+
154
+ /**
155
+ * Map alias variants to their actual CSS class variants
181
156
  */
182
- var mapVariantToClass = function (variant) {
157
+ const mapVariantToClass = variant => {
183
158
  switch (variant) {
184
159
  case "text":
185
160
  return "link-text";
@@ -187,127 +162,130 @@ var mapVariantToClass = function (variant) {
187
162
  return variant;
188
163
  }
189
164
  };
190
- /**
191
- * Primary UI component for user interaction
165
+
166
+ /**
167
+ * Primary UI component for user interaction
192
168
  */
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"]);
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
+ }) => {
212
183
  // Map alias variants to actual class names
213
- var cssVariant = mapVariantToClass(variant);
184
+ const cssVariant = mapVariantToClass(variant);
185
+
214
186
  // Determine the icon to display
215
- var displayIcon = icon !== null && icon !== void 0 ? icon : getDefaultIcon(variant);
216
- var iconElement = getIcon(displayIcon);
187
+ const displayIcon = icon ?? getDefaultIcon(variant);
188
+ const iconElement = getIcon(displayIcon);
189
+
217
190
  // Check if this is an icon-only button (carousel arrows)
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)]);
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
+
223
199
  // Generate accessible label for icon-only buttons
224
- var accessibleLabel = ariaLabel || (isIconOnly ? variant === "carousel-arrow-left" ? "Previous" : "Next" : undefined);
200
+ const accessibleLabel = ariaLabel || (isIconOnly ? variant === "carousel-arrow-left" ? "Previous" : "Next" : undefined);
225
201
  return /*#__PURE__*/React.createElement("button", _extends({
226
202
  type: type,
227
203
  className: buttonClasses,
228
204
  disabled: disabled,
229
205
  onClick: onClick,
230
206
  "aria-label": accessibleLabel,
231
- "data-force-state": props["data-force-state"]
207
+ "data-force-state": props['data-force-state']
232
208
  }, props), !isIconOnly && children, isCarouselLeft && /*#__PURE__*/React.createElement("span", {
233
209
  className: iconClasses
234
210
  }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
235
211
  icon: faArrowLeft,
236
- className: styles$l.button__icon__default
212
+ className: styles$k.button__icon__default
237
213
  }), /*#__PURE__*/React.createElement(FontAwesomeIcon, {
238
214
  icon: faArrowLeftLong,
239
- className: styles$l.button__icon__hover
215
+ className: styles$k.button__icon__hover
240
216
  })), isCarouselRight && /*#__PURE__*/React.createElement("span", {
241
217
  className: iconClasses
242
218
  }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
243
219
  icon: faArrowRight,
244
- className: styles$l.button__icon__default
220
+ className: styles$k.button__icon__default
245
221
  }), /*#__PURE__*/React.createElement(FontAwesomeIcon, {
246
222
  icon: faArrowRightLong,
247
- className: styles$l.button__icon__hover
223
+ className: styles$k.button__icon__hover
248
224
  })), !isIconOnly && iconElement && /*#__PURE__*/React.createElement("span", {
249
225
  className: iconClasses
250
226
  }, iconElement));
251
227
  };
252
228
 
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"};
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"};
254
230
 
255
- /**
256
- * External link icon (↗) for footer links that open in new tabs
231
+ /**
232
+ * External link icon (↗) for footer links that open in new tabs
257
233
  */
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
- };
278
-
279
- /**
280
- * Atlas Copco Group badge icon (square)
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)
281
255
  */
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
- };
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
+ }));
276
+
277
+ // =============================================================================
278
+ // TYPE DEFINITIONS
279
+ // =============================================================================
304
280
 
305
281
  // =============================================================================
306
282
  // SOCIAL ICON COMPONENT
307
283
  // =============================================================================
308
- var SocialIconComponent = function (_a) {
309
- var platform = _a.platform;
310
- var iconMap = {
284
+
285
+ const SocialIconComponent = ({
286
+ platform
287
+ }) => {
288
+ const iconMap = {
311
289
  facebook: faFacebookF,
312
290
  x: faXTwitter,
313
291
  linkedin: faLinkedinIn,
@@ -318,14 +296,19 @@ var SocialIconComponent = function (_a) {
318
296
  icon: iconMap[platform]
319
297
  });
320
298
  };
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) {
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 => {
329
312
  if (item.onClick) {
330
313
  e.preventDefault();
331
314
  item.onClick();
@@ -339,151 +322,169 @@ var FooterLink = function (_a) {
339
322
  target: '_blank',
340
323
  rel: 'noopener noreferrer'
341
324
  }), /*#__PURE__*/React.createElement("span", {
342
- className: styles$k.footer__linkText
325
+ className: styles$j.footer__linkText
343
326
  }, item.label), item.external && /*#__PURE__*/React.createElement("span", {
344
- className: styles$k.footer__linkIcon
327
+ className: styles$j.footer__linkIcon
345
328
  }, /*#__PURE__*/React.createElement(ExternalLinkIcon, {
346
329
  size: 15
347
330
  })));
348
331
  };
349
- var FooterLinkGroup = function (_a) {
350
- var heading = _a.heading,
351
- links = _a.links,
352
- className = _a.className,
353
- children = _a.children;
332
+
333
+ // =============================================================================
334
+ // FOOTER LINK GROUP COMPONENT
335
+ // =============================================================================
336
+
337
+ const FooterLinkGroup = ({
338
+ heading,
339
+ links,
340
+ className,
341
+ children
342
+ }) => {
354
343
  return /*#__PURE__*/React.createElement("div", {
355
- className: classNames(styles$k.footer__linkGroup, className)
344
+ className: classNames(styles$j.footer__linkGroup, className)
356
345
  }, /*#__PURE__*/React.createElement("h3", {
357
- className: styles$k.footer__linkHeading
346
+ className: styles$j.footer__linkHeading
358
347
  }, heading), /*#__PURE__*/React.createElement("ul", {
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);
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);
367
354
  };
368
- var FooterSocialIcons = function (_a) {
369
- var links = _a.links,
370
- className = _a.className;
355
+
356
+ // =============================================================================
357
+ // FOOTER SOCIAL ICONS COMPONENT
358
+ // =============================================================================
359
+
360
+ const FooterSocialIcons = ({
361
+ links,
362
+ className
363
+ }) => {
371
364
  return /*#__PURE__*/React.createElement("div", {
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
- }));
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
+ }))));
385
376
  };
386
- var FooterSocialIcon = function (_a) {
387
- var platform = _a.platform,
388
- className = _a.className;
389
- var iconClasses = classNames(styles$k.footer__socialIcon, className);
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);
390
387
  return /*#__PURE__*/React.createElement("span", {
391
388
  className: iconClasses
392
389
  }, /*#__PURE__*/React.createElement(SocialIconComponent, {
393
390
  platform: platform
394
391
  }));
395
392
  };
396
- var FooterBottom = function (_a) {
397
- var links = _a.links,
398
- copyright = _a.copyright,
399
- countrySelector = _a.countrySelector,
400
- className = _a.className;
393
+
394
+ // =============================================================================
395
+ // FOOTER BOTTOM COMPONENT
396
+ // =============================================================================
397
+
398
+ const FooterBottom = ({
399
+ links,
400
+ copyright,
401
+ countrySelector,
402
+ className
403
+ }) => {
401
404
  return /*#__PURE__*/React.createElement("div", {
402
- className: classNames(styles$k.footer__bottom, className)
405
+ className: classNames(styles$j.footer__bottom, className)
403
406
  }, /*#__PURE__*/React.createElement("div", {
404
- className: styles$k.footer__bottomLeft
407
+ className: styles$j.footer__bottomLeft
405
408
  }, /*#__PURE__*/React.createElement("div", {
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
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
415
416
  }, copyright)), countrySelector && /*#__PURE__*/React.createElement("a", {
416
417
  href: countrySelector.href || '#',
417
- className: styles$k.footer__countrySelector
418
+ className: styles$j.footer__countrySelector
418
419
  }, countrySelector.showIcon !== false && /*#__PURE__*/React.createElement("span", {
419
- className: styles$k.footer__countrySelectorIcon
420
+ className: styles$j.footer__countrySelectorIcon
420
421
  }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
421
422
  icon: faGlobe
422
423
  })), countrySelector.label));
423
424
  };
425
+
424
426
  // =============================================================================
425
427
  // MAIN FOOTER COMPONENT
426
428
  // =============================================================================
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
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
432
435
  */
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 ? {
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 ? {
455
456
  href: logo.href,
456
- className: styles$k.footer__logo
457
+ className: styles$j.footer__logo
457
458
  } : {
458
- className: styles$k.footer__logo
459
+ className: styles$j.footer__logo
459
460
  };
461
+
460
462
  // Logo + Motto + Badge component (used in both layouts)
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
- };
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
+
479
480
  // Mobile layout: Links at top, logo/motto at bottom
480
481
  if (isMobile) {
481
482
  return /*#__PURE__*/React.createElement("footer", {
482
483
  className: footerClasses
483
484
  }, /*#__PURE__*/React.createElement("div", {
484
- className: styles$k.footer__container
485
+ className: styles$j.footer__container
485
486
  }, /*#__PURE__*/React.createElement("div", {
486
- className: styles$k.footer__links
487
+ className: styles$j.footer__links
487
488
  }, /*#__PURE__*/React.createElement(FooterLinkGroup, {
488
489
  heading: quickLinksHeading,
489
490
  links: quickLinks
@@ -491,7 +492,7 @@ var Footer = function (_a) {
491
492
  heading: contactHeading,
492
493
  links: contactLinks
493
494
  })), contactFormButton && /*#__PURE__*/React.createElement("div", {
494
- className: styles$k.footer__cta
495
+ className: styles$j.footer__cta
495
496
  }, /*#__PURE__*/React.createElement("a", {
496
497
  href: contactFormButton.href,
497
498
  style: {
@@ -510,33 +511,34 @@ var Footer = function (_a) {
510
511
  copyright: copyright,
511
512
  countrySelector: countrySelector
512
513
  }), /*#__PURE__*/React.createElement("div", {
513
- className: styles$k.footer__brandSection
514
+ className: styles$j.footer__brandSection
514
515
  }, /*#__PURE__*/React.createElement(LogoSection, null))));
515
516
  }
517
+
516
518
  // Desktop layout: Logo at top, 3-column main content
517
519
  return /*#__PURE__*/React.createElement("footer", {
518
520
  className: footerClasses
519
521
  }, /*#__PURE__*/React.createElement("div", {
520
- className: styles$k.footer__container
522
+ className: styles$j.footer__container
521
523
  }, /*#__PURE__*/React.createElement(LogoWrapper, logoProps, /*#__PURE__*/React.createElement("img", {
522
524
  src: logo.src,
523
525
  alt: logo.alt
524
526
  })), /*#__PURE__*/React.createElement("div", {
525
- className: styles$k.footer__main
527
+ className: styles$j.footer__main
526
528
  }, /*#__PURE__*/React.createElement("div", {
527
- className: styles$k.footer__leftCol
529
+ className: styles$j.footer__leftCol
528
530
  }, /*#__PURE__*/React.createElement("h2", {
529
- className: styles$k.footer__motto
531
+ className: styles$j.footer__motto
530
532
  }, motto), atlasCopcoBadge && /*#__PURE__*/React.createElement("div", {
531
- className: styles$k.footer__badge
533
+ className: styles$j.footer__badge
532
534
  }, atlasCopcoBadge.showIcon !== false && /*#__PURE__*/React.createElement("span", {
533
- className: styles$k.footer__badgeIcon
535
+ className: styles$j.footer__badgeIcon
534
536
  }, /*#__PURE__*/React.createElement(AtlasCopcoIcon, {
535
537
  size: 14
536
538
  })), /*#__PURE__*/React.createElement("span", {
537
- className: styles$k.footer__badgeText
539
+ className: styles$j.footer__badgeText
538
540
  }, atlasCopcoBadge.text))), /*#__PURE__*/React.createElement("div", {
539
- className: styles$k.footer__links
541
+ className: styles$j.footer__links
540
542
  }, /*#__PURE__*/React.createElement(FooterLinkGroup, {
541
543
  heading: quickLinksHeading,
542
544
  links: quickLinks
@@ -552,46 +554,48 @@ var Footer = function (_a) {
552
554
  })));
553
555
  };
554
556
 
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"};
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"};
556
558
 
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 () {
559
+ const PaginationItem = ({
560
+ page,
561
+ isActive,
562
+ onClick,
563
+ className
564
+ }) => {
565
+ const handleClick = () => {
563
566
  if (!isActive) {
564
567
  onClick(page);
565
568
  }
566
569
  };
567
- var handleKeyDown = function (event) {
570
+ const handleKeyDown = event => {
568
571
  if (event.key === "Enter" || event.key === " ") {
569
572
  event.preventDefault();
570
573
  handleClick();
571
574
  }
572
575
  };
573
576
  return /*#__PURE__*/React.createElement("li", {
574
- className: styles$j.paginationItem
577
+ className: styles$i.paginationItem
575
578
  }, /*#__PURE__*/React.createElement("button", {
576
579
  type: "button",
577
580
  onClick: handleClick,
578
581
  onKeyDown: handleKeyDown,
579
- className: "".concat(styles$j.pageButton, " ").concat(isActive ? styles$j.pageButtonActive : "", " ").concat(className || ""),
582
+ className: `${styles$i.pageButton} ${isActive ? styles$i.pageButtonActive : ""} ${className || ""}`,
580
583
  "aria-current": isActive ? "page" : undefined,
581
- "aria-label": "Page ".concat(page),
584
+ "aria-label": `Page ${page}`,
582
585
  disabled: isActive,
583
586
  tabIndex: isActive ? -1 : 0
584
587
  }, page));
585
588
  };
586
589
 
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) {
590
+ const PaginationButton = ({
591
+ label,
592
+ disabled,
593
+ onClick,
594
+ direction,
595
+ className,
596
+ ariaLabel
597
+ }) => {
598
+ const handleKeyDown = event => {
595
599
  if (event.key === "Enter" || event.key === " ") {
596
600
  event.preventDefault();
597
601
  if (!disabled) {
@@ -600,130 +604,130 @@ var PaginationButton = function (_a) {
600
604
  }
601
605
  };
602
606
  return /*#__PURE__*/React.createElement("li", {
603
- className: styles$j.paginationItem
607
+ className: styles$i.paginationItem
604
608
  }, /*#__PURE__*/React.createElement("button", {
605
609
  type: "button",
606
610
  onClick: onClick,
607
611
  onKeyDown: handleKeyDown,
608
612
  disabled: disabled,
609
- className: "".concat(styles$j.navButton, " ").concat(styles$j["navButton--".concat(direction)], " ").concat(disabled ? styles$j.navButtonDisabled : "", " ").concat(className || ""),
613
+ className: `${styles$i.navButton} ${styles$i[`navButton--${direction}`]} ${disabled ? styles$i.navButtonDisabled : ""} ${className || ""}`,
610
614
  "aria-label": ariaLabel || label,
611
615
  tabIndex: disabled ? -1 : 0
612
616
  }, /*#__PURE__*/React.createElement("span", null, label), direction === "next" && /*#__PURE__*/React.createElement(FontAwesomeIcon, {
613
617
  icon: faChevronRight$1,
614
- className: styles$j.navIcon,
618
+ className: styles$i.navIcon,
615
619
  "aria-hidden": "true"
616
620
  })));
617
621
  };
618
622
 
619
- var PaginationEllipsis = function (_a) {
620
- var className = _a.className;
623
+ const PaginationEllipsis = ({
624
+ className
625
+ }) => {
621
626
  return /*#__PURE__*/React.createElement("li", {
622
- className: "".concat(styles$j.paginationItem, " ").concat(styles$j.ellipsis),
627
+ className: `${styles$i.paginationItem} ${styles$i.ellipsis}`,
623
628
  "aria-hidden": "true"
624
629
  }, /*#__PURE__*/React.createElement("span", {
625
- className: "".concat(styles$j.ellipsisText, " ").concat(className || "")
630
+ className: `${styles$i.ellipsisText} ${className || ""}`
626
631
  }, "..."));
627
632
  };
628
633
 
629
- /**
630
- * Generate page numbers to display with ellipsis logic
634
+ /**
635
+ * Generate page numbers to display with ellipsis logic
631
636
  */
632
- var generatePageNumbers = function (currentPage, totalPages, maxVisiblePages) {
637
+ const generatePageNumbers = (currentPage, totalPages, maxVisiblePages) => {
633
638
  if (totalPages <= maxVisiblePages) {
634
639
  return Array.from({
635
640
  length: totalPages
636
- }, function (_, i) {
637
- return i + 1;
638
- });
641
+ }, (_, i) => i + 1);
639
642
  }
640
- var pages = [];
641
- var halfVisible = Math.floor(maxVisiblePages / 2);
643
+ const pages = [];
644
+ const halfVisible = Math.floor(maxVisiblePages / 2);
645
+
642
646
  // Always show first page
643
647
  pages.push(1);
644
- var startPage = Math.max(2, currentPage - halfVisible);
645
- var endPage = Math.min(totalPages - 1, currentPage + halfVisible);
648
+ let startPage = Math.max(2, currentPage - halfVisible);
649
+ let endPage = Math.min(totalPages - 1, currentPage + halfVisible);
650
+
646
651
  // Adjust if we're near the start
647
652
  if (currentPage <= halfVisible + 1) {
648
653
  endPage = Math.min(maxVisiblePages - 1, totalPages - 1);
649
654
  startPage = 2;
650
655
  }
656
+
651
657
  // Adjust if we're near the end
652
658
  if (currentPage >= totalPages - halfVisible) {
653
659
  startPage = Math.max(2, totalPages - maxVisiblePages + 2);
654
660
  endPage = totalPages - 1;
655
661
  }
662
+
656
663
  // Add ellipsis after first page if needed
657
664
  if (startPage > 2) {
658
665
  pages.push("ellipsis-start");
659
666
  }
667
+
660
668
  // Add middle pages
661
- for (var i = startPage; i <= endPage; i++) {
669
+ for (let i = startPage; i <= endPage; i++) {
662
670
  pages.push(i);
663
671
  }
672
+
664
673
  // Add ellipsis before last page if needed
665
674
  if (endPage < totalPages - 1) {
666
675
  pages.push("ellipsis-end");
667
676
  }
677
+
668
678
  // Always show last page
669
679
  if (totalPages > 1) {
670
680
  pages.push(totalPages);
671
681
  }
672
682
  return pages;
673
683
  };
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) {
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 => {
695
698
  if (page >= 1 && page <= totalPages && page !== currentPage) {
696
699
  onPageChange(page);
697
700
  }
698
701
  };
699
- var handlePrevious = function () {
702
+ const handlePrevious = () => {
700
703
  handlePageChange(currentPage - 1);
701
704
  };
702
- var handleNext = function () {
705
+ const handleNext = () => {
703
706
  handlePageChange(currentPage + 1);
704
707
  };
708
+
705
709
  // Don't render if there's only one page or no pages
706
710
  if (totalPages <= 1) {
707
711
  return null;
708
712
  }
709
713
  return /*#__PURE__*/React.createElement("nav", {
710
- className: "".concat(styles$j.pagination, " ").concat(className || ""),
714
+ className: `${styles$i.pagination} ${className || ""}`,
711
715
  "aria-label": ariaLabel,
712
716
  role: "navigation"
713
717
  }, /*#__PURE__*/React.createElement("div", {
714
- className: styles$j.dividerLine
718
+ className: styles$i.dividerLine
715
719
  }), /*#__PURE__*/React.createElement("ul", {
716
- className: styles$j.paginationList
720
+ className: styles$i.paginationList
717
721
  }, showPrevious && /*#__PURE__*/React.createElement(PaginationButton, {
718
722
  label: previousLabel,
719
723
  disabled: currentPage === 1,
720
724
  onClick: handlePrevious,
721
725
  direction: "previous",
722
726
  ariaLabel: "Go to previous page"
723
- }), pageNumbers.map(function (page, index) {
727
+ }), pageNumbers.map((page, index) => {
724
728
  if (page === "ellipsis-start" || page === "ellipsis-end") {
725
729
  return /*#__PURE__*/React.createElement(PaginationEllipsis, {
726
- key: "ellipsis-".concat(index)
730
+ key: `ellipsis-${index}`
727
731
  });
728
732
  }
729
733
  return /*#__PURE__*/React.createElement(PaginationItem, {
@@ -741,88 +745,83 @@ var Pagination = function (_a) {
741
745
  })));
742
746
  };
743
747
 
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 () {
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(() => {
781
774
  setIsLoading(false);
782
775
  setHasError(false);
783
- onLoad === null || onLoad === void 0 ? void 0 : onLoad();
776
+ onLoad?.();
784
777
  }, [onLoad]);
785
- var handleError = useCallback(function () {
778
+ const handleError = useCallback(() => {
786
779
  setIsLoading(false);
787
780
  setHasError(true);
781
+
788
782
  // Try fallback if available and not already using it
789
783
  if (fallbackSrc && currentSrc !== fallbackSrc) {
790
784
  setCurrentSrc(fallbackSrc);
791
785
  setHasError(false);
792
786
  setIsLoading(true);
793
787
  } else {
794
- onError === null || onError === void 0 ? void 0 : onError();
788
+ onError?.();
795
789
  }
796
790
  }, [fallbackSrc, currentSrc, onError]);
791
+
797
792
  // Accessibility: decorative images should have empty alt and be hidden from screen readers
798
- var accessibilityProps = isDecorative ? {
793
+ const accessibilityProps = isDecorative ? {
799
794
  alt: "",
800
795
  "aria-hidden": true,
801
796
  role: "presentation"
802
797
  } : {
803
- alt: alt
798
+ alt
804
799
  };
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
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
+ })
810
+ };
811
+ const imageStyle = {
812
+ objectFit,
813
+ objectPosition
815
814
  };
816
815
  return /*#__PURE__*/React.createElement("div", {
817
- className: "".concat(styles$h.imageContainer, " ").concat(className, " ").concat(isLoading ? styles$h.loading : "", " ").concat(hasError ? styles$h.error : ""),
816
+ className: `${styles$g.imageContainer} ${className} ${isLoading ? styles$g.loading : ""} ${hasError ? styles$g.error : ""}`,
818
817
  style: containerStyle
819
818
  }, isLoading && /*#__PURE__*/React.createElement("div", {
820
- className: styles$h.skeleton,
819
+ className: styles$g.skeleton,
821
820
  "aria-hidden": "true"
822
821
  }, /*#__PURE__*/React.createElement("div", {
823
- className: styles$h.shimmer
822
+ className: styles$g.shimmer
824
823
  })), hasError && !fallbackSrc ? /*#__PURE__*/React.createElement("div", {
825
- className: styles$h.errorState,
824
+ className: styles$g.errorState,
826
825
  role: "img",
827
826
  "aria-label": alt || "Image failed to load"
828
827
  }, /*#__PURE__*/React.createElement("svg", {
@@ -833,7 +832,7 @@ var Image = function (_a) {
833
832
  strokeWidth: "1.5",
834
833
  strokeLinecap: "round",
835
834
  strokeLinejoin: "round",
836
- className: styles$h.errorIcon,
835
+ className: styles$g.errorIcon,
837
836
  "aria-hidden": "true"
838
837
  }, /*#__PURE__*/React.createElement("rect", {
839
838
  x: "3",
@@ -849,7 +848,7 @@ var Image = function (_a) {
849
848
  }), /*#__PURE__*/React.createElement("polyline", {
850
849
  points: "21 15 16 10 5 21"
851
850
  })), /*#__PURE__*/React.createElement("span", {
852
- className: styles$h.errorText
851
+ className: styles$g.errorText
853
852
  }, "Image unavailable")) : /*#__PURE__*/React.createElement("img", _extends({
854
853
  src: currentSrc
855
854
  }, accessibilityProps, {
@@ -859,7 +858,7 @@ var Image = function (_a) {
859
858
  decoding: decoding,
860
859
  onLoad: handleLoad,
861
860
  onError: handleError,
862
- className: styles$h.image,
861
+ className: styles$g.image,
863
862
  style: imageStyle,
864
863
  srcSet: srcSet,
865
864
  sizes: sizes
@@ -877,285 +876,144 @@ const faArrowUpRight = {
877
876
  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"]
878
877
  };
879
878
 
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;
879
+ const ProductCardHorizontal = ({
880
+ id,
881
+ imageUrl,
882
+ url,
883
+ title,
884
+ description,
885
+ price,
886
+ productId,
887
+ button,
888
+ utm,
889
+ className = ""
890
+ }) => {
903
891
  if (!title) {
904
892
  return null;
905
893
  }
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);
894
+ const href = !utm || url && url.indexOf("utm") > -1 ? url : url + `?utm_source=${utm.utmSource}&utm_medium=${utm.utmMedium}&utm_campaign=${utm.utmCampaign}`;
913
895
  return /*#__PURE__*/React.createElement("a", {
914
896
  href: href,
915
- className: "".concat(styles$i.productCard, " ").concat(className),
916
- "aria-label": "View product: ".concat(title)
897
+ className: `${styles$h.productCard} ${className}`,
898
+ "aria-label": `View product: ${title}`
917
899
  }, /*#__PURE__*/React.createElement("div", {
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
900
+ className: `${styles$h.productWrapper} ${imageUrl ? styles$h.withImage : ""}`
901
+ }, imageUrl && /*#__PURE__*/React.createElement("div", {
902
+ className: styles$h.productImage
922
903
  }, /*#__PURE__*/React.createElement(Image, {
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
904
+ src: imageUrl,
905
+ alt: title
928
906
  })), /*#__PURE__*/React.createElement("div", {
929
- className: styles$i.productTitleDescriptionWrapper
907
+ className: styles$h.productTitleDescriptionWrapper
930
908
  }, /*#__PURE__*/React.createElement("h3", {
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
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
936
914
  }, /*#__PURE__*/React.createElement("p", {
937
- className: styles$i.productPrice
938
- }, showProductPrice ? price || "" : ""), button ? /*#__PURE__*/React.createElement(Button, {
939
- className: styles$i.productButton,
915
+ className: styles$h.productPrice
916
+ }, price || " "), button ? /*#__PURE__*/React.createElement(Button, {
917
+ className: styles$h.productButton,
940
918
  onClick: button.onClick,
941
919
  size: "extra-small"
942
920
  }, button.label) : /*#__PURE__*/React.createElement(FontAwesomeIcon, {
943
921
  icon: faArrowUpRight,
944
- className: styles$i.productArrowIcon,
922
+ className: styles$h.productArrowIcon,
945
923
  "aria-hidden": "true"
946
924
  }))));
947
925
  };
926
+
948
927
  // Alias for backward compatibility
949
- var ProductCardHorizontalParts = ProductCardHorizontal;
928
+ const ProductCardHorizontalParts = ProductCardHorizontal;
950
929
 
951
- var styles$g = {"productDetails":"ProductCardDetails-module__productDetails___-sx2l","spareCard":"ProductCardDetails-module__spareCard___vC1Ju"};
930
+ var styles$f = {"productDetails":"ProductCardDetails-module__productDetails___-sx2l","spareCard":"ProductCardDetails-module__spareCard___vC1Ju"};
952
931
 
953
932
  // Adapter to map design system props to ProductCardHorizontalParts props
954
- var SpareCardAdapter = function (props) {
955
- var spare = props.spare,
956
- rest = __rest(props, ["spare"]);
933
+ const SpareCardAdapter = props => {
934
+ const {
935
+ spare,
936
+ ...rest
937
+ } = props;
957
938
  return /*#__PURE__*/React.createElement(ProductCardHorizontalParts, {
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
- ,
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 || "",
965
945
  utm: props.utm,
966
- showProductPrice: props.showProductPrice,
967
- showProductImage: false,
968
946
  button: {
969
947
  label: rest.cta || "View Product",
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
- }
948
+ onClick: () => window.open(spare?.url || spare?.link || "#", "_blank")
973
949
  }
974
950
  });
975
951
  };
952
+
976
953
  // Re-export the design system component with Leybold styling
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;
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
+ }) => {
994
968
  // Build the hit object expected by ProductDetailsCard
995
- var hitData = hit || {
996
- id: id,
997
- title: title,
998
- description: description,
999
- price: price,
1000
- code: code,
969
+ const hitData = hit || {
970
+ id,
971
+ title,
972
+ description,
973
+ price,
974
+ code,
1001
975
  image: imageUrl
1002
976
  };
1003
977
  return /*#__PURE__*/React.createElement("div", {
1004
- className: styles$g.productDetails
978
+ className: styles$f.productDetails
1005
979
  }, /*#__PURE__*/React.createElement(ProductDetailsCard, {
1006
- className: "".concat(className),
980
+ className: `${className}`,
1007
981
  title: title,
1008
- imageUrl: showProductImage ? imageUrl : "",
982
+ imageUrl: imageUrl,
1009
983
  imageAlt: title,
1010
984
  hit: hitData,
1011
985
  utm: utm,
1012
986
  facets: facets,
1013
987
  usePlainClasses: true,
1014
988
  ProductCardComponent: ProductCardComponent || SpareCardAdapter,
1015
- hidespares: hidespares,
1016
- showProductPrice: showProductPrice,
1017
- showProductImage: showProductImage
989
+ hidespares: hidespares
1018
990
  }));
1019
991
  };
1020
992
 
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
-
1115
993
  // Adapter component that maps props from AlgoliaDynamicSearchRaw to ProductCardHorizontal
1116
994
  // AlgoliaDynamicSearchRaw passes: title, cardLink, productPrice, cta, hit (original data)
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;
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);
1149
1008
  // Get values from direct props or fallback to hit object
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";
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";
1156
1015
  return /*#__PURE__*/React.createElement(ProductCardHorizontalParts, {
1157
1016
  imageUrl: imageUrl,
1158
- showProductImage: showProductImage,
1159
1017
  url: url,
1160
1018
  utm: utm,
1161
1019
  title: productTitle,
@@ -1163,99 +1021,69 @@ var ProductCardAdapter = function (props) {
1163
1021
  price: price,
1164
1022
  button: {
1165
1023
  label: buttonLabel,
1166
- onClick: function () {
1167
- return window.open(url, "_blank");
1168
- }
1024
+ onClick: () => window.open(url, "_blank")
1169
1025
  },
1170
- className: className,
1171
- style: __assign({}, showProductImage ? {
1172
- minHeight: "130px"
1173
- } : {}),
1174
- code: productCode,
1175
- showProductPrice: showProductPrice
1026
+ className: className
1176
1027
  });
1177
1028
  };
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;
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;
1192
1044
  if (!title) {
1193
1045
  return null;
1194
1046
  }
1195
1047
  return /*#__PURE__*/React.createElement(ProductCardDetails, {
1196
- imageUrl: (hit === null || hit === void 0 ? void 0 : hit.image) || "",
1048
+ imageUrl: hit?.image || "",
1197
1049
  title: title,
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,
1050
+ description: hit?.description || "",
1051
+ price: hit?.price || "" || productPrice,
1052
+ code: hit?.code || "" || code,
1201
1053
  hit: hit,
1202
1054
  utm: utm,
1203
1055
  className: className,
1204
1056
  facets: facets,
1205
- relatedProducts: (hit === null || hit === void 0 ? void 0 : hit.related_products) || related_products,
1206
- hidespares: hidespares,
1207
- showProductPrice: showProductPrice,
1208
- showProductImage: showProductImage
1057
+ relatedProducts: hit?.related_products || related_products,
1058
+ hidespares: hidespares
1209
1059
  });
1210
1060
  };
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
1061
+ const AlgoliaDynamicSearchLeybold = props => {
1062
+ const innerComponents = {
1063
+ ProductCard: ProductCardAdapter,
1064
+ ProductDetailsCard: ProductCardDetailsAdapter
1239
1065
  };
1240
1066
  return /*#__PURE__*/React.createElement(AlgoliaDynamicSearchRaw, _extends({}, props, {
1241
1067
  innerComponents: innerComponents
1242
1068
  }));
1243
1069
  };
1244
1070
 
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;
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
+ }) => {
1257
1084
  // Map buttonStyle to our variant
1258
- var variant = buttonStyle === "secondary" ? "secondary" : "primary";
1085
+ const variant = buttonStyle === "secondary" ? "secondary" : "primary";
1086
+
1259
1087
  // If it's an anchor element (has href or element='a'), render as link
1260
1088
  if (element === "a" || href) {
1261
1089
  return /*#__PURE__*/React.createElement("a", {
@@ -1274,19 +1102,18 @@ var QrFormButtonAdapter = function (_a) {
1274
1102
  size: "small"
1275
1103
  }, label));
1276
1104
  }
1105
+
1277
1106
  // Otherwise render as button
1278
1107
  return /*#__PURE__*/React.createElement(Button, {
1279
1108
  variant: variant,
1280
1109
  type: type,
1281
- onClick: onClick ? function (e) {
1282
- return onClick(e);
1283
- } : undefined,
1110
+ onClick: onClick ? e => onClick(e) : undefined,
1284
1111
  className: className,
1285
1112
  "data-page_target": pageTarget,
1286
1113
  size: "small"
1287
1114
  }, label);
1288
1115
  };
1289
- var QrFormLeybold = function (props) {
1116
+ const QrFormLeybold = props => {
1290
1117
  return /*#__PURE__*/React.createElement("div", {
1291
1118
  className: "qr-journey-form-wrapper"
1292
1119
  }, /*#__PURE__*/React.createElement(QrForm, _extends({}, props, {
@@ -1296,17 +1123,16 @@ var QrFormLeybold = function (props) {
1296
1123
 
1297
1124
  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"};
1298
1125
 
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;
1126
+ const ModalCloseButton = ({
1127
+ onClick,
1128
+ ariaLabel = 'Close search',
1129
+ className = ''
1130
+ }) => {
1305
1131
  return /*#__PURE__*/React.createElement("button", {
1306
1132
  type: "button",
1307
1133
  onClick: onClick,
1308
1134
  "aria-label": ariaLabel,
1309
- className: "".concat(styles$e.closeButton, " ").concat(className)
1135
+ className: `${styles$e.closeButton} ${className}`
1310
1136
  }, /*#__PURE__*/React.createElement("span", {
1311
1137
  className: styles$e.closeButton__icon
1312
1138
  }, /*#__PURE__*/React.createElement("svg", {
@@ -1333,80 +1159,79 @@ var ModalCloseButton = function (_a) {
1333
1159
  }, "CLOSE X"));
1334
1160
  };
1335
1161
 
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 () {
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(() => {
1348
1173
  if (isOpen) {
1349
1174
  // Store the previously focused element
1350
1175
  previouslyFocusedElement.current = document.activeElement;
1176
+
1351
1177
  // Focus the modal
1352
1178
  if (modalRef.current) {
1353
1179
  modalRef.current.focus();
1354
1180
  }
1181
+
1355
1182
  // Prevent body scroll
1356
1183
  document.body.style.overflow = 'hidden';
1357
1184
  } else {
1358
1185
  // Restore body scroll
1359
1186
  document.body.style.overflow = '';
1187
+
1360
1188
  // Return focus to previously focused element
1361
1189
  if (previouslyFocusedElement.current) {
1362
1190
  previouslyFocusedElement.current.focus();
1363
1191
  }
1364
1192
  }
1365
- return function () {
1193
+ return () => {
1366
1194
  document.body.style.overflow = '';
1367
1195
  };
1368
1196
  }, [isOpen]);
1369
- useEffect(function () {
1370
- var handleEscape = function (event) {
1197
+ useEffect(() => {
1198
+ const handleEscape = event => {
1371
1199
  if (event.key === 'Escape' && isOpen) {
1372
1200
  onClose();
1373
1201
  }
1374
1202
  };
1375
1203
  document.addEventListener('keydown', handleEscape);
1376
- return function () {
1377
- return document.removeEventListener('keydown', handleEscape);
1378
- };
1204
+ return () => document.removeEventListener('keydown', handleEscape);
1379
1205
  }, [isOpen, onClose]);
1206
+
1380
1207
  // Focus trap implementation
1381
- useEffect(function () {
1208
+ useEffect(() => {
1382
1209
  if (!isOpen || !modalRef.current) return;
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) {
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 => {
1388
1215
  if (event.key !== 'Tab') return;
1389
1216
  if (event.shiftKey) {
1390
1217
  // Shift + Tab
1391
1218
  if (document.activeElement === firstElement) {
1392
1219
  event.preventDefault();
1393
- lastElement === null || lastElement === void 0 ? void 0 : lastElement.focus();
1220
+ lastElement?.focus();
1394
1221
  }
1395
1222
  } else {
1396
1223
  // Tab
1397
1224
  if (document.activeElement === lastElement) {
1398
1225
  event.preventDefault();
1399
- firstElement === null || firstElement === void 0 ? void 0 : firstElement.focus();
1226
+ firstElement?.focus();
1400
1227
  }
1401
1228
  }
1402
1229
  };
1403
1230
  modal.addEventListener('keydown', handleTab);
1404
- return function () {
1405
- return modal.removeEventListener('keydown', handleTab);
1406
- };
1231
+ return () => modal.removeEventListener('keydown', handleTab);
1407
1232
  }, [isOpen]);
1408
1233
  if (!isOpen) return null;
1409
- var handleOverlayClick = function (event) {
1234
+ const handleOverlayClick = event => {
1410
1235
  if (event.target === event.currentTarget) {
1411
1236
  onClose();
1412
1237
  }
@@ -1421,7 +1246,7 @@ var SearchModal = function (_a) {
1421
1246
  "aria-modal": "true",
1422
1247
  "aria-label": title,
1423
1248
  tabIndex: -1,
1424
- className: "".concat(styles$e.modal, " ").concat(className)
1249
+ className: `${styles$e.modal} ${className}`
1425
1250
  }, /*#__PURE__*/React.createElement("div", {
1426
1251
  className: styles$e.stickyHeader
1427
1252
  }, /*#__PURE__*/React.createElement(ModalCloseButton, {
@@ -1437,11 +1262,11 @@ var SearchModal = function (_a) {
1437
1262
 
1438
1263
  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"};
1439
1264
 
1440
- var SearchIcon = function (_a) {
1441
- var _b = _a.className,
1442
- className = _b === void 0 ? '' : _b;
1265
+ const SearchIcon = ({
1266
+ className = ''
1267
+ }) => {
1443
1268
  return /*#__PURE__*/React.createElement("svg", {
1444
- className: "".concat(styles$d.searchIcon, " ").concat(className),
1269
+ className: `${styles$d.searchIcon} ${className}`,
1445
1270
  xmlns: "http://www.w3.org/2000/svg",
1446
1271
  viewBox: "0 0 24 24",
1447
1272
  fill: "none",
@@ -1459,17 +1284,15 @@ var SearchIcon = function (_a) {
1459
1284
  }));
1460
1285
  };
1461
1286
 
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) {
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 => {
1473
1296
  onChange(event.target.value);
1474
1297
  };
1475
1298
  return /*#__PURE__*/React.createElement("input", {
@@ -1480,27 +1303,24 @@ var SearchInput = function (_a) {
1480
1303
  placeholder: placeholder,
1481
1304
  autoFocus: autoFocus,
1482
1305
  "aria-label": "Search",
1483
- className: "".concat(styles$d.searchInput, " ").concat(className)
1306
+ className: `${styles$d.searchInput} ${className}`
1484
1307
  });
1485
1308
  };
1486
1309
 
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;
1310
+ const SearchSubmitButton = ({
1311
+ onClick,
1312
+ disabled = false,
1313
+ ariaLabel = 'Search',
1314
+ label = 'Search',
1315
+ variant = 'instant',
1316
+ className = ''
1317
+ }) => {
1498
1318
  return /*#__PURE__*/React.createElement("button", {
1499
1319
  type: "submit",
1500
1320
  onClick: onClick,
1501
1321
  disabled: disabled,
1502
1322
  "aria-label": ariaLabel,
1503
- className: "".concat(styles$d.submitButton, " ").concat(className)
1323
+ className: `${styles$d.submitButton} ${className}`
1504
1324
  }, /*#__PURE__*/React.createElement("span", {
1505
1325
  className: styles$d.submitButton__text
1506
1326
  }, label), /*#__PURE__*/React.createElement("span", {
@@ -1508,34 +1328,32 @@ var SearchSubmitButton = function (_a) {
1508
1328
  }, /*#__PURE__*/React.createElement(SearchIcon, null)));
1509
1329
  };
1510
1330
 
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) {
1331
+ const SearchBar = ({
1332
+ value,
1333
+ onChange,
1334
+ onSubmit,
1335
+ placeholder,
1336
+ autoFocus = false,
1337
+ className = '',
1338
+ variant = 'instant'
1339
+ }) => {
1340
+ const handleSubmit = event => {
1523
1341
  event.preventDefault();
1524
1342
  onSubmit();
1525
1343
  };
1526
- var handleKeyDown = function (event) {
1344
+ const handleKeyDown = event => {
1527
1345
  if (event.key === 'Enter') {
1528
1346
  event.preventDefault();
1529
1347
  onSubmit();
1530
1348
  }
1531
1349
  };
1532
- var handleClear = function () {
1350
+ const handleClear = () => {
1533
1351
  onChange('');
1534
1352
  };
1535
- var showClearButton = value.length > 0;
1353
+ const showClearButton = value.length > 0;
1536
1354
  return /*#__PURE__*/React.createElement("form", {
1537
1355
  onSubmit: handleSubmit,
1538
- className: "".concat(styles$d.searchBar, " ").concat(className)
1356
+ className: `${styles$d.searchBar} ${className}`
1539
1357
  }, /*#__PURE__*/React.createElement("div", {
1540
1358
  className: styles$d.inputWrapper
1541
1359
  }, /*#__PURE__*/React.createElement(SearchIcon, null), /*#__PURE__*/React.createElement(SearchInput, {
@@ -1558,51 +1376,53 @@ var SearchBar = function (_a) {
1558
1376
 
1559
1377
  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"};
1560
1378
 
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,
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,
1580
1392
  className: cardClasses,
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
- });
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));
1587
1405
  };
1588
1406
 
1589
1407
  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-"};
1590
1408
 
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;
1409
+ const FederatedInstantResultsLayout = ({
1410
+ query,
1411
+ products,
1412
+ contents,
1413
+ isLoadingProducts,
1414
+ isLoadingContents,
1415
+ productsError,
1416
+ contentsError,
1417
+ onSeeAllProducts,
1418
+ onSeeAllContents,
1419
+ onSeeAllCombined
1420
+ }) => {
1602
1421
  products.length + contents.length;
1422
+
1603
1423
  // Show first 3 results from each category
1604
- var displayProducts = products.slice(0, 3);
1605
- var displayContents = contents.slice(0, 3);
1424
+ const displayProducts = products.slice(0, 3);
1425
+ const displayContents = contents.slice(0, 3);
1606
1426
  return /*#__PURE__*/React.createElement("div", {
1607
1427
  className: styles$b.instantResultsLayout
1608
1428
  }, /*#__PURE__*/React.createElement("div", {
@@ -1640,13 +1460,11 @@ var FederatedInstantResultsLayout = function (_a) {
1640
1460
  className: styles$b.errorState
1641
1461
  }, /*#__PURE__*/React.createElement("p", null, productsError)) : displayProducts.length > 0 ? /*#__PURE__*/React.createElement("div", {
1642
1462
  className: styles$b.resultsList
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", {
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", {
1650
1468
  className: styles$b.resultsColumn
1651
1469
  }, /*#__PURE__*/React.createElement("div", {
1652
1470
  className: styles$b.columnHeader
@@ -1679,42 +1497,39 @@ var FederatedInstantResultsLayout = function (_a) {
1679
1497
  className: styles$b.errorState
1680
1498
  }, /*#__PURE__*/React.createElement("p", null, contentsError)) : displayContents.length > 0 ? /*#__PURE__*/React.createElement("div", {
1681
1499
  className: styles$b.resultsList
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)));
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)));
1691
1507
  };
1692
1508
 
1693
1509
  var styles$a = {"resultsCount":"ResultsCount-module__resultsCount___cNM6f"};
1694
1510
 
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;
1511
+ const ResultsCount = ({
1512
+ count,
1513
+ type,
1514
+ className = ''
1515
+ }) => {
1516
+ const label = count === 1 ? type.slice(0, -1) : type;
1701
1517
  return /*#__PURE__*/React.createElement("span", {
1702
- className: "".concat(styles$a.resultsCount, " ").concat(className)
1518
+ className: `${styles$a.resultsCount} ${className}`
1703
1519
  }, count, " ", label);
1704
1520
  };
1705
1521
 
1706
1522
  var styles$9 = {"seeAllButton":"SeeAllLinkButton-module__seeAllButton___eAQqJ"};
1707
1523
 
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;
1524
+ const SeeAllLinkButton = ({
1525
+ onClick,
1526
+ label = 'See all results',
1527
+ className = ''
1528
+ }) => {
1714
1529
  return /*#__PURE__*/React.createElement("button", {
1715
1530
  type: "button",
1716
1531
  onClick: onClick,
1717
- className: "".concat(styles$9.seeAllButton, " ").concat(className)
1532
+ className: `${styles$9.seeAllButton} ${className}`
1718
1533
  }, label, /*#__PURE__*/React.createElement("svg", {
1719
1534
  xmlns: "http://www.w3.org/2000/svg",
1720
1535
  viewBox: "0 0 24 24",
@@ -1731,17 +1546,17 @@ var SeeAllLinkButton = function (_a) {
1731
1546
 
1732
1547
  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"};
1733
1548
 
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;
1549
+ const ResultsColumn = ({
1550
+ title,
1551
+ count,
1552
+ isLoading,
1553
+ error,
1554
+ onSeeAll,
1555
+ children,
1556
+ className = ''
1557
+ }) => {
1743
1558
  return /*#__PURE__*/React.createElement("div", {
1744
- className: "".concat(styles$8.resultsColumn, " ").concat(className)
1559
+ className: `${styles$8.resultsColumn} ${className}`
1745
1560
  }, /*#__PURE__*/React.createElement("div", {
1746
1561
  className: styles$8.columnHeader
1747
1562
  }, /*#__PURE__*/React.createElement("h3", {
@@ -1764,7 +1579,7 @@ var ResultsColumn = function (_a) {
1764
1579
  className: styles$8.columnFooter
1765
1580
  }, /*#__PURE__*/React.createElement(SeeAllLinkButton, {
1766
1581
  onClick: onSeeAll,
1767
- label: "See all ".concat(title.toLowerCase())
1582
+ label: `See all ${title.toLowerCase()}`
1768
1583
  }))));
1769
1584
  };
1770
1585
 
@@ -1786,23 +1601,23 @@ const faXmark = {
1786
1601
  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"]
1787
1602
  };
1788
1603
 
1789
- /**
1790
- * FilterSearch - Search input for filtering facet values
1604
+ /**
1605
+ * FilterSearch - Search input for filtering facet values
1791
1606
  */
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) {
1607
+ const FilterSearch = ({
1608
+ value,
1609
+ onChange,
1610
+ placeholder = "Search",
1611
+ className
1612
+ }) => {
1613
+ const handleChange = e => {
1799
1614
  onChange(e.target.value);
1800
1615
  };
1801
- var handleClear = function () {
1616
+ const handleClear = () => {
1802
1617
  onChange("");
1803
1618
  };
1804
1619
  return /*#__PURE__*/React.createElement("div", {
1805
- className: "".concat(styles$7.filterSearch, " ").concat(className || "")
1620
+ className: `${styles$7.filterSearch} ${className || ""}`
1806
1621
  }, !value && /*#__PURE__*/React.createElement(FontAwesomeIcon, {
1807
1622
  icon: faMagnifyingGlass,
1808
1623
  className: styles$7.searchIcon,
@@ -1824,43 +1639,42 @@ var FilterSearch = function (_a) {
1824
1639
  })));
1825
1640
  };
1826
1641
 
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
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
1841
1655
  */
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 () {
1656
+ const FilterItem = ({
1657
+ value,
1658
+ onToggle,
1659
+ className,
1660
+ variant = 'desktop',
1661
+ showCheckbox = true
1662
+ }) => {
1663
+ const handleChange = () => {
1851
1664
  onToggle(value.value);
1852
1665
  };
1853
- var handleKeyDown = function (e) {
1666
+ const handleKeyDown = e => {
1854
1667
  if (e.key === "Enter" || e.key === " ") {
1855
1668
  e.preventDefault();
1856
1669
  onToggle(value.value);
1857
1670
  }
1858
1671
  };
1672
+
1859
1673
  // Mobile variant: Plain button (no checkbox)
1860
1674
  if (variant === 'mobile') {
1861
1675
  return /*#__PURE__*/React.createElement("button", {
1862
1676
  type: "button",
1863
- className: "".concat(styles$7.filterItemMobile, " ").concat(value.isRefined ? styles$7.filterItemMobileRefined : '', " ").concat(className || ""),
1677
+ className: `${styles$7.filterItemMobile} ${value.isRefined ? styles$7.filterItemMobileRefined : ''} ${className || ""}`,
1864
1678
  onClick: handleChange,
1865
1679
  onKeyDown: handleKeyDown,
1866
1680
  "aria-pressed": value.isRefined
@@ -1870,11 +1684,12 @@ var FilterItem = function (_a) {
1870
1684
  className: styles$7.filterCount
1871
1685
  }, "(", value.count, ")"));
1872
1686
  }
1687
+
1873
1688
  // Desktop without checkbox (Content tab): Plain button with red text when selected
1874
1689
  if (!showCheckbox) {
1875
1690
  return /*#__PURE__*/React.createElement("button", {
1876
1691
  type: "button",
1877
- className: "".concat(styles$7.filterItemDesktopNoCheckbox, " ").concat(value.isRefined ? styles$7.filterItemDesktopRefined : '', " ").concat(className || ""),
1692
+ className: `${styles$7.filterItemDesktopNoCheckbox} ${value.isRefined ? styles$7.filterItemDesktopRefined : ''} ${className || ""}`,
1878
1693
  onClick: handleChange,
1879
1694
  onKeyDown: handleKeyDown,
1880
1695
  "aria-pressed": value.isRefined
@@ -1884,16 +1699,17 @@ var FilterItem = function (_a) {
1884
1699
  className: styles$7.filterCount
1885
1700
  }, "(", value.count, ")"));
1886
1701
  }
1702
+
1887
1703
  // Desktop with checkbox (Products tab): Multi-select checkboxes
1888
1704
  return /*#__PURE__*/React.createElement("label", {
1889
- className: "".concat(styles$7.filterItem, " ").concat(className || ""),
1705
+ className: `${styles$7.filterItem} ${className || ""}`,
1890
1706
  onKeyDown: handleKeyDown
1891
1707
  }, /*#__PURE__*/React.createElement("input", {
1892
1708
  type: "checkbox",
1893
1709
  checked: value.isRefined,
1894
1710
  onChange: handleChange,
1895
1711
  className: styles$7.filterCheckboxInput,
1896
- "aria-label": "".concat(value.value, " (").concat(value.count, " results)")
1712
+ "aria-label": `${value.value} (${value.count} results)`
1897
1713
  }), /*#__PURE__*/React.createElement("div", {
1898
1714
  className: styles$7.filterCheckbox
1899
1715
  }, value.isRefined && /*#__PURE__*/React.createElement(CheckIcon, null)), /*#__PURE__*/React.createElement("span", {
@@ -1903,61 +1719,57 @@ var FilterItem = function (_a) {
1903
1719
  }, "(", value.count, ")"));
1904
1720
  };
1905
1721
 
1906
- /**
1907
- * FilterAccordion - Collapsible facet section with optional search
1722
+ /**
1723
+ * FilterAccordion - Collapsible facet section with optional search
1908
1724
  */
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];
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
+
1922
1736
  // Filter facet values based on search query
1923
- var filteredValues = useMemo(function () {
1737
+ const filteredValues = useMemo(() => {
1924
1738
  if (!searchQuery.trim()) {
1925
1739
  return facet.values;
1926
1740
  }
1927
- var query = searchQuery.toLowerCase();
1928
- return facet.values.filter(function (value) {
1929
- return value.value.toLowerCase().includes(query);
1930
- });
1741
+ const query = searchQuery.toLowerCase();
1742
+ return facet.values.filter(value => value.value.toLowerCase().includes(query));
1931
1743
  }, [facet.values, searchQuery]);
1932
- var handleToggle = function () {
1744
+ const handleToggle = () => {
1933
1745
  onToggle();
1934
1746
  // Clear search when collapsing
1935
1747
  if (isExpanded) {
1936
1748
  setSearchQuery("");
1937
1749
  }
1938
1750
  };
1939
- var handleKeyDown = function (e) {
1751
+ const handleKeyDown = e => {
1940
1752
  if (e.key === "Enter" || e.key === " ") {
1941
1753
  e.preventDefault();
1942
1754
  handleToggle();
1943
1755
  }
1944
1756
  };
1945
- var handleValueToggle = function (value) {
1757
+ const handleValueToggle = value => {
1946
1758
  onValueToggle(facet.attribute, value);
1947
1759
  };
1948
1760
  return /*#__PURE__*/React.createElement("div", {
1949
- className: "".concat(styles$7.filterAccordion, " ").concat(className || "")
1761
+ className: `${styles$7.filterAccordion} ${className || ""}`
1950
1762
  }, /*#__PURE__*/React.createElement("button", {
1951
1763
  type: "button",
1952
- className: "".concat(styles$7.accordionHeader, " ").concat(isExpanded ? styles$7.accordionHeaderExpanded : ""),
1764
+ className: `${styles$7.accordionHeader} ${isExpanded ? styles$7.accordionHeaderExpanded : ""}`,
1953
1765
  onClick: handleToggle,
1954
1766
  onKeyDown: handleKeyDown,
1955
1767
  "aria-expanded": isExpanded,
1956
- "aria-controls": "accordion-".concat(facet.id)
1768
+ "aria-controls": `accordion-${facet.id}`
1957
1769
  }, /*#__PURE__*/React.createElement("span", {
1958
1770
  className: styles$7.accordionTitle
1959
1771
  }, facet.label), /*#__PURE__*/React.createElement("svg", {
1960
- className: "".concat(styles$7.accordionIcon, " ").concat(isExpanded ? styles$7.accordionIconExpanded : ""),
1772
+ className: `${styles$7.accordionIcon} ${isExpanded ? styles$7.accordionIconExpanded : ""}`,
1961
1773
  width: "16",
1962
1774
  height: "16",
1963
1775
  viewBox: "0 0 16 16",
@@ -1971,7 +1783,7 @@ var FilterAccordion = function (_a) {
1971
1783
  strokeLinecap: "round",
1972
1784
  strokeLinejoin: "round"
1973
1785
  }))), isExpanded && /*#__PURE__*/React.createElement("div", {
1974
- id: "accordion-".concat(facet.id),
1786
+ id: `accordion-${facet.id}`,
1975
1787
  className: styles$7.accordionContent
1976
1788
  }, variant === 'desktop' && facet.searchable && facet.values.length > 5 && /*#__PURE__*/React.createElement("div", {
1977
1789
  className: styles$7.accordionSearch
@@ -1981,39 +1793,38 @@ var FilterAccordion = function (_a) {
1981
1793
  placeholder: "Search"
1982
1794
  })), /*#__PURE__*/React.createElement("div", {
1983
1795
  className: styles$7.filterList
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", {
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", {
1993
1803
  className: styles$7.noResults
1994
1804
  }, "No results found"))));
1995
1805
  };
1996
1806
 
1997
- /**
1998
- * AppliedFilterTag - Individual removable filter tag/chip
1807
+ /**
1808
+ * AppliedFilterTag - Individual removable filter tag/chip
1999
1809
  */
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 () {
1810
+ const AppliedFilterTag = ({
1811
+ attribute,
1812
+ value,
1813
+ label,
1814
+ onRemove,
1815
+ className
1816
+ }) => {
1817
+ const handleRemove = () => {
2007
1818
  onRemove(attribute, value);
2008
1819
  };
2009
- var handleKeyDown = function (e) {
1820
+ const handleKeyDown = e => {
2010
1821
  if (e.key === "Enter" || e.key === " ") {
2011
1822
  e.preventDefault();
2012
1823
  handleRemove();
2013
1824
  }
2014
1825
  };
2015
1826
  return /*#__PURE__*/React.createElement("div", {
2016
- className: "".concat(styles$7.appliedFilterTag, " ").concat(className || "")
1827
+ className: `${styles$7.appliedFilterTag} ${className || ""}`
2017
1828
  }, /*#__PURE__*/React.createElement("span", {
2018
1829
  className: styles$7.tagLabel
2019
1830
  }, label || value), /*#__PURE__*/React.createElement("button", {
@@ -2021,7 +1832,7 @@ var AppliedFilterTag = function (_a) {
2021
1832
  onClick: handleRemove,
2022
1833
  onKeyDown: handleKeyDown,
2023
1834
  className: styles$7.tagRemoveButton,
2024
- "aria-label": "Remove ".concat(label || value, " filter")
1835
+ "aria-label": `Remove ${label || value} filter`
2025
1836
  }, /*#__PURE__*/React.createElement("svg", {
2026
1837
  width: "10",
2027
1838
  height: "10",
@@ -2038,19 +1849,20 @@ var AppliedFilterTag = function (_a) {
2038
1849
  }))));
2039
1850
  };
2040
1851
 
2041
- /**
2042
- * AppliedFilters - Shows all active filters as removable tags
1852
+ /**
1853
+ * AppliedFilters - Shows all active filters as removable tags
2043
1854
  */
2044
- var AppliedFilters = function (_a) {
2045
- var facets = _a.facets,
2046
- onRemove = _a.onRemove;
2047
- _a.onClearAll;
2048
- var className = _a.className;
1855
+ const AppliedFilters = ({
1856
+ facets,
1857
+ onRemove,
1858
+ onClearAll,
1859
+ className
1860
+ }) => {
2049
1861
  // Extract all refined (selected) filters
2050
- var appliedFilters = useMemo(function () {
2051
- var filters = [];
2052
- facets.forEach(function (facet) {
2053
- facet.values.forEach(function (value) {
1862
+ const appliedFilters = useMemo(() => {
1863
+ const filters = [];
1864
+ facets.forEach(facet => {
1865
+ facet.values.forEach(value => {
2054
1866
  if (value.isRefined) {
2055
1867
  filters.push({
2056
1868
  attribute: facet.attribute,
@@ -2063,72 +1875,66 @@ var AppliedFilters = function (_a) {
2063
1875
  });
2064
1876
  return filters;
2065
1877
  }, [facets]);
1878
+
2066
1879
  // Don't render if no filters are applied
2067
1880
  if (appliedFilters.length === 0) {
2068
1881
  return null;
2069
1882
  }
2070
1883
  return /*#__PURE__*/React.createElement("div", {
2071
- className: "".concat(styles$7.appliedFilters, " ").concat(className || "")
1884
+ className: `${styles$7.appliedFilters} ${className || ""}`
2072
1885
  }, /*#__PURE__*/React.createElement("h4", {
2073
1886
  className: styles$7.appliedFiltersTitle
2074
1887
  }, "Applied filters"), /*#__PURE__*/React.createElement("div", {
2075
1888
  className: styles$7.appliedFiltersList
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
- })));
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
+ }))));
2085
1896
  };
2086
1897
 
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.
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.
2093
1904
  */
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;
1905
+ const FiltersPanel = ({
1906
+ facets,
1907
+ onFacetToggle,
1908
+ isLoading = false,
1909
+ className,
1910
+ variant = 'desktop',
1911
+ showCheckbox = true
1912
+ }) => {
2104
1913
  // Track which accordions are expanded (transient UI state)
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];
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
+
2117
1925
  // Sync expansion state when facets change (e.g., new facets appear after refetch)
2118
- useEffect(function () {
2119
- setExpandedAccordions(function (prev) {
2120
- var next = new Set(prev);
1926
+ useEffect(() => {
1927
+ setExpandedAccordions(prev => {
1928
+ const next = new Set(prev);
2121
1929
  // Add new facets with defaultExpanded
2122
- facets.forEach(function (facet) {
1930
+ facets.forEach(facet => {
2123
1931
  if (facet.defaultExpanded && !next.has(facet.id)) {
2124
1932
  next.add(facet.id);
2125
1933
  }
2126
1934
  });
2127
1935
  // Remove facets that no longer exist
2128
- var currentFacetIds = new Set(facets.map(function (f) {
2129
- return f.id;
2130
- }));
2131
- next.forEach(function (id) {
1936
+ const currentFacetIds = new Set(facets.map(f => f.id));
1937
+ next.forEach(id => {
2132
1938
  if (!currentFacetIds.has(id)) {
2133
1939
  next.delete(id);
2134
1940
  }
@@ -2136,9 +1942,9 @@ var FiltersPanel = function (_a) {
2136
1942
  return next;
2137
1943
  });
2138
1944
  }, [facets]);
2139
- var handleAccordionToggle = useCallback(function (facetId) {
2140
- setExpandedAccordions(function (prev) {
2141
- var next = new Set(prev);
1945
+ const handleAccordionToggle = useCallback(facetId => {
1946
+ setExpandedAccordions(prev => {
1947
+ const next = new Set(prev);
2142
1948
  if (next.has(facetId)) {
2143
1949
  next.delete(facetId);
2144
1950
  } else {
@@ -2147,16 +1953,16 @@ var FiltersPanel = function (_a) {
2147
1953
  return next;
2148
1954
  });
2149
1955
  }, []);
2150
- var handleValueToggle = useCallback(function (attribute, value) {
1956
+ const handleValueToggle = useCallback((attribute, value) => {
2151
1957
  onFacetToggle(attribute, value);
2152
1958
  }, [onFacetToggle]);
2153
- var handleRemoveFilter = useCallback(function (attribute, value) {
1959
+ const handleRemoveFilter = useCallback((attribute, value) => {
2154
1960
  onFacetToggle(attribute, value);
2155
1961
  }, [onFacetToggle]);
2156
- var handleClearAll = useCallback(function () {
1962
+ const handleClearAll = useCallback(() => {
2157
1963
  // Remove all refined facets
2158
- facets.forEach(function (facet) {
2159
- facet.values.forEach(function (value) {
1964
+ facets.forEach(facet => {
1965
+ facet.values.forEach(value => {
2160
1966
  if (value.isRefined) {
2161
1967
  onFacetToggle(facet.attribute, value.value);
2162
1968
  }
@@ -2165,7 +1971,7 @@ var FiltersPanel = function (_a) {
2165
1971
  }, [facets, onFacetToggle]);
2166
1972
  if (isLoading) {
2167
1973
  return /*#__PURE__*/React.createElement("div", {
2168
- className: "".concat(styles$7.filtersPanel, " ").concat(className || "")
1974
+ className: `${styles$7.filtersPanel} ${className || ""}`
2169
1975
  }, /*#__PURE__*/React.createElement("div", {
2170
1976
  className: styles$7.loadingState
2171
1977
  }, /*#__PURE__*/React.createElement("div", {
@@ -2176,73 +1982,70 @@ var FiltersPanel = function (_a) {
2176
1982
  return null;
2177
1983
  }
2178
1984
  return /*#__PURE__*/React.createElement("div", {
2179
- className: "".concat(styles$7.filtersPanel, " ").concat(className || "")
1985
+ className: `${styles$7.filtersPanel} ${className || ""}`
2180
1986
  }, showCheckbox && /*#__PURE__*/React.createElement(AppliedFilters, {
2181
1987
  facets: facets,
2182
1988
  onRemove: handleRemoveFilter,
2183
1989
  onClearAll: handleClearAll
2184
1990
  }), /*#__PURE__*/React.createElement("div", {
2185
1991
  className: styles$7.filtersList
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
- })));
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
+ }))));
2199
2001
  };
2200
2002
 
2201
2003
  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"};
2202
2004
 
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
- * ```
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
+ * ```
2220
2022
  */
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) {
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 => {
2237
2037
  e.preventDefault(); // Prevent card link navigation
2238
2038
  e.stopPropagation(); // Stop event bubbling
2239
- onButtonClick === null || onButtonClick === void 0 ? void 0 : onButtonClick();
2039
+ onButtonClick?.();
2240
2040
  };
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);
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);
2242
2045
  return /*#__PURE__*/React.createElement("a", {
2243
2046
  href: url,
2244
2047
  className: cardClasses,
2245
- "aria-label": "View product: ".concat(title),
2048
+ "aria-label": `View product: ${title}`,
2246
2049
  "data-product-id": id
2247
2050
  }, imageUrl && /*#__PURE__*/React.createElement("div", {
2248
2051
  className: styles$6.productCardVertical__imageWrapper
@@ -2263,7 +2066,7 @@ var ProductCardVertical = function (_a) {
2263
2066
  type: "button",
2264
2067
  onClick: handleButtonClick,
2265
2068
  className: styles$6.productCardVertical__button,
2266
- "aria-label": "".concat(buttonLabel, " - ").concat(title),
2069
+ "aria-label": `${buttonLabel} - ${title}`,
2267
2070
  tabIndex: -1
2268
2071
  }, /*#__PURE__*/React.createElement("span", null, buttonLabel), /*#__PURE__*/React.createElement(FontAwesomeIcon, {
2269
2072
  icon: faArrowUpRightFromSquare$1,
@@ -2273,19 +2076,17 @@ var ProductCardVertical = function (_a) {
2273
2076
 
2274
2077
  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"};
2275
2078
 
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;
2079
+ const ResultsList = ({
2080
+ type,
2081
+ products = [],
2082
+ contents = [],
2083
+ isLoading,
2084
+ error,
2085
+ className = ''
2086
+ }) => {
2286
2087
  if (isLoading) {
2287
2088
  return /*#__PURE__*/React.createElement("div", {
2288
- className: "".concat(styles$5.loadingState, " ").concat(className)
2089
+ className: `${styles$5.loadingState} ${className}`
2289
2090
  }, /*#__PURE__*/React.createElement("div", {
2290
2091
  className: styles$5.spinner,
2291
2092
  "aria-label": "Loading..."
@@ -2293,15 +2094,15 @@ var ResultsList = function (_a) {
2293
2094
  }
2294
2095
  if (error) {
2295
2096
  return /*#__PURE__*/React.createElement("div", {
2296
- className: "".concat(styles$5.errorState, " ").concat(className)
2097
+ className: `${styles$5.errorState} ${className}`
2297
2098
  }, /*#__PURE__*/React.createElement("p", null, error));
2298
2099
  }
2299
- var hasProducts = products.length > 0;
2300
- var hasContents = contents.length > 0;
2301
- var hasResults = hasProducts || hasContents;
2100
+ const hasProducts = products.length > 0;
2101
+ const hasContents = contents.length > 0;
2102
+ const hasResults = hasProducts || hasContents;
2302
2103
  if (!hasResults) {
2303
2104
  return /*#__PURE__*/React.createElement("div", {
2304
- className: "".concat(styles$5.emptyState, " ").concat(className)
2105
+ className: `${styles$5.emptyState} ${className}`
2305
2106
  }, /*#__PURE__*/React.createElement("svg", {
2306
2107
  xmlns: "http://www.w3.org/2000/svg",
2307
2108
  viewBox: "0 0 24 24",
@@ -2319,111 +2120,107 @@ var ResultsList = function (_a) {
2319
2120
  d: "m21 21-4.35-4.35"
2320
2121
  })), /*#__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."));
2321
2122
  }
2123
+
2322
2124
  // Render based on type
2323
2125
  if (type === 'products') {
2324
2126
  return /*#__PURE__*/React.createElement("div", {
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
- }));
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
+ }))));
2333
2133
  }
2334
2134
  if (type === 'content') {
2335
2135
  return /*#__PURE__*/React.createElement("div", {
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
- }));
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
+ })))));
2346
2144
  }
2145
+
2347
2146
  // type === 'all' - Show mixed results (not in current Figma design, but keep for compatibility)
2348
2147
  return /*#__PURE__*/React.createElement("div", {
2349
- className: "".concat(styles$5.resultsList, " ").concat(className)
2148
+ className: `${styles$5.resultsList} ${className}`
2350
2149
  }, hasProducts && /*#__PURE__*/React.createElement("div", {
2351
2150
  className: styles$5.resultsSection
2352
2151
  }, /*#__PURE__*/React.createElement("h3", {
2353
2152
  className: styles$5.sectionTitle
2354
2153
  }, "Products (", products.length, ")"), /*#__PURE__*/React.createElement("div", {
2355
2154
  className: styles$5.productsGrid
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", {
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", {
2363
2160
  className: styles$5.resultsSection
2364
2161
  }, /*#__PURE__*/React.createElement("h3", {
2365
2162
  className: styles$5.sectionTitle
2366
2163
  }, "Content (", contents.length, ")"), /*#__PURE__*/React.createElement("div", {
2367
2164
  className: styles$5.contentsList
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
- }))));
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
+ })))))));
2377
2172
  };
2378
2173
 
2379
2174
  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"};
2380
2175
 
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
- * ```
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
+ * ```
2407
2202
  */
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);
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
+
2418
2215
  // Split label to hide " RESULTS" on mobile
2419
- var labelParts = label.split(' RESULTS');
2420
- var mainLabel = labelParts[0];
2421
- var hasResults = labelParts.length > 1;
2216
+ const labelParts = label.split(' RESULTS');
2217
+ const mainLabel = labelParts[0];
2218
+ const hasResults = labelParts.length > 1;
2422
2219
  return /*#__PURE__*/React.createElement("button", {
2423
2220
  type: "button",
2424
2221
  role: "tab",
2425
2222
  "aria-selected": isActive,
2426
- "aria-controls": "tabpanel-".concat(label.toLowerCase().replace(/\s+/g, '-')),
2223
+ "aria-controls": `tabpanel-${label.toLowerCase().replace(/\s+/g, '-')}`,
2427
2224
  onClick: onClick,
2428
2225
  className: buttonClasses
2429
2226
  }, count !== undefined && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
@@ -2435,7 +2232,7 @@ var TabButton = function (_a) {
2435
2232
  }, " RESULTS")));
2436
2233
  };
2437
2234
 
2438
- var AssistanceIcon = function (props) {
2235
+ const AssistanceIcon = props => {
2439
2236
  return /*#__PURE__*/React.createElement("svg", _extends({
2440
2237
  xmlns: "http://www.w3.org/2000/svg",
2441
2238
  width: "87",
@@ -2450,42 +2247,39 @@ var AssistanceIcon = function (props) {
2450
2247
 
2451
2248
  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"};
2452
2249
 
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
- * ```
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
+ * ```
2470
2267
  */
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) {
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 => {
2483
2277
  if (onLinkClick) {
2484
2278
  e.preventDefault();
2485
2279
  onLinkClick();
2486
2280
  }
2487
2281
  };
2488
- var bannerClasses = classNames(styles$3.assistanceBanner, className);
2282
+ const bannerClasses = classNames(styles$3.assistanceBanner, className);
2489
2283
  return /*#__PURE__*/React.createElement("div", {
2490
2284
  className: bannerClasses
2491
2285
  }, /*#__PURE__*/React.createElement(AssistanceIcon, {
@@ -2518,105 +2312,111 @@ var AssistanceBanner = function (_a) {
2518
2312
 
2519
2313
  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"};
2520
2314
 
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
- * ```
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
+ * ```
2540
2334
  */
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);
2335
+ const FilterDrawer = ({
2336
+ isOpen,
2337
+ onClose,
2338
+ children,
2339
+ className
2340
+ }) => {
2341
+ const drawerRef = useRef(null);
2342
+ const previouslyFocusedElement = useRef(null);
2343
+
2549
2344
  // Focus management
2550
- useEffect(function () {
2345
+ useEffect(() => {
2551
2346
  if (isOpen) {
2552
2347
  // Store previously focused element
2553
2348
  previouslyFocusedElement.current = document.activeElement;
2349
+
2554
2350
  // Focus the drawer
2555
2351
  if (drawerRef.current) {
2556
2352
  drawerRef.current.focus();
2557
2353
  }
2354
+
2558
2355
  // Prevent body scroll
2559
2356
  document.body.style.overflow = 'hidden';
2560
2357
  } else {
2561
2358
  // Restore body scroll
2562
2359
  document.body.style.overflow = '';
2360
+
2563
2361
  // Return focus to previously focused element
2564
2362
  if (previouslyFocusedElement.current) {
2565
2363
  previouslyFocusedElement.current.focus();
2566
2364
  }
2567
2365
  }
2568
- return function () {
2366
+ return () => {
2569
2367
  document.body.style.overflow = '';
2570
2368
  };
2571
2369
  }, [isOpen]);
2370
+
2572
2371
  // Escape key handler
2573
- useEffect(function () {
2574
- var handleEscape = function (event) {
2372
+ useEffect(() => {
2373
+ const handleEscape = event => {
2575
2374
  if (event.key === 'Escape' && isOpen) {
2576
2375
  onClose();
2577
2376
  }
2578
2377
  };
2579
2378
  document.addEventListener('keydown', handleEscape);
2580
- return function () {
2581
- return document.removeEventListener('keydown', handleEscape);
2582
- };
2379
+ return () => document.removeEventListener('keydown', handleEscape);
2583
2380
  }, [isOpen, onClose]);
2381
+
2584
2382
  // Focus trap implementation
2585
- useEffect(function () {
2383
+ useEffect(() => {
2586
2384
  if (!isOpen || !drawerRef.current) return;
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) {
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 => {
2592
2390
  if (event.key !== 'Tab') return;
2593
2391
  if (event.shiftKey) {
2594
2392
  // Shift + Tab
2595
2393
  if (document.activeElement === firstElement) {
2596
2394
  event.preventDefault();
2597
- lastElement === null || lastElement === void 0 ? void 0 : lastElement.focus();
2395
+ lastElement?.focus();
2598
2396
  }
2599
2397
  } else {
2600
2398
  // Tab
2601
2399
  if (document.activeElement === lastElement) {
2602
2400
  event.preventDefault();
2603
- firstElement === null || firstElement === void 0 ? void 0 : firstElement.focus();
2401
+ firstElement?.focus();
2604
2402
  }
2605
2403
  }
2606
2404
  };
2607
2405
  drawer.addEventListener('keydown', handleTab);
2608
- return function () {
2609
- return drawer.removeEventListener('keydown', handleTab);
2610
- };
2406
+ return () => drawer.removeEventListener('keydown', handleTab);
2611
2407
  }, [isOpen]);
2612
2408
  if (!isOpen) return null;
2613
- var handleOverlayClick = function (event) {
2409
+ const handleOverlayClick = event => {
2614
2410
  if (event.target === event.currentTarget) {
2615
2411
  onClose();
2616
2412
  }
2617
2413
  };
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);
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);
2620
2420
  return /*#__PURE__*/React.createElement("div", {
2621
2421
  className: overlayClasses,
2622
2422
  onClick: handleOverlayClick,
@@ -2640,63 +2440,63 @@ var FilterDrawer = function (_a) {
2640
2440
  }, children)));
2641
2441
  };
2642
2442
 
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;
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
+
2665
2467
  // Filter results based on active tab
2666
- var displayProducts = activeTab === "content" ? [] : products;
2667
- var displayContents = activeTab === "products" ? [] : contents;
2468
+ const displayProducts = activeTab === "content" ? [] : products;
2469
+ const displayContents = activeTab === "products" ? [] : contents;
2470
+
2668
2471
  // Content tab single-select handler (clears all others when selecting)
2669
- var handleContentCategorySelect = useCallback(function (attribute, value) {
2670
- var facet = facets.find(function (f) {
2671
- return f.attribute === attribute;
2672
- });
2472
+ const handleContentCategorySelect = useCallback((attribute, value) => {
2473
+ const facet = facets.find(f => f.attribute === attribute);
2673
2474
  if (!facet) return;
2475
+
2674
2476
  // Clear ALL values in this facet first
2675
- facet.values.forEach(function (v) {
2477
+ facet.values.forEach(v => {
2676
2478
  if (v.isRefined) {
2677
2479
  onFacetToggle(attribute, v.value); // Unselect
2678
2480
  }
2679
2481
  });
2482
+
2680
2483
  // Then select the clicked value (if not already selected)
2681
- var clickedValue = facet.values.find(function (v) {
2682
- return v.value === value;
2683
- });
2484
+ const clickedValue = facet.values.find(v => v.value === value);
2684
2485
  if (clickedValue && !clickedValue.isRefined) {
2685
2486
  onFacetToggle(attribute, value); // Select
2686
2487
  }
2687
2488
  }, [facets, onFacetToggle]);
2489
+
2688
2490
  // Track if any filters applied
2689
- var hasAppliedFilters = useMemo(function () {
2690
- return facets.some(function (facet) {
2691
- return facet.values.some(function (value) {
2692
- return value.isRefined;
2693
- });
2694
- });
2491
+ const hasAppliedFilters = useMemo(() => {
2492
+ return facets.some(facet => facet.values.some(value => value.isRefined));
2695
2493
  }, [facets]);
2494
+
2696
2495
  // Track previous filter state to detect transitions
2697
- var prevHasAppliedFilters = useRef(hasAppliedFilters);
2496
+ const prevHasAppliedFilters = useRef(hasAppliedFilters);
2497
+
2698
2498
  // Auto-close drawer when transitioning FROM filters applied TO no filters (mobile only)
2699
- useEffect(function () {
2499
+ useEffect(() => {
2700
2500
  // Only close if we HAD filters and now have NONE (not on initial open)
2701
2501
  if (prevHasAppliedFilters.current && !hasAppliedFilters && isFilterDrawerOpen && onFilterDrawerClose) {
2702
2502
  onFilterDrawerClose();
@@ -2706,7 +2506,7 @@ var FederatedResultsView = function (_a) {
2706
2506
  return /*#__PURE__*/React.createElement("div", {
2707
2507
  className: styles$5.resultsView
2708
2508
  }, /*#__PURE__*/React.createElement("div", {
2709
- className: "".concat(styles$5.searchBarWrapper, " ").concat(styles$5.searchBarDesktopOnly)
2509
+ className: `${styles$5.searchBarWrapper} ${styles$5.searchBarDesktopOnly}`
2710
2510
  }, /*#__PURE__*/React.createElement(SearchBar, {
2711
2511
  value: query,
2712
2512
  onChange: onQueryChange,
@@ -2714,7 +2514,7 @@ var FederatedResultsView = function (_a) {
2714
2514
  placeholder: "Refine your search...",
2715
2515
  variant: "results"
2716
2516
  })), /*#__PURE__*/React.createElement("div", {
2717
- className: "".concat(styles$5.tabsContainer, " ").concat(styles$5.tabsContainerDesktopOnly)
2517
+ className: `${styles$5.tabsContainer} ${styles$5.tabsContainerDesktopOnly}`
2718
2518
  }, /*#__PURE__*/React.createElement("div", {
2719
2519
  className: styles$5.tabs,
2720
2520
  role: "tablist"
@@ -2722,9 +2522,7 @@ var FederatedResultsView = function (_a) {
2722
2522
  label: "WEB SHOP RESULTS",
2723
2523
  count: products.length,
2724
2524
  isActive: activeTab === "products",
2725
- onClick: function () {
2726
- return onTabChange("products");
2727
- },
2525
+ onClick: () => onTabChange("products"),
2728
2526
  variant: "desktop"
2729
2527
  }), /*#__PURE__*/React.createElement("div", {
2730
2528
  className: styles$5.tabSeparator
@@ -2732,9 +2530,7 @@ var FederatedResultsView = function (_a) {
2732
2530
  label: "WEBSITE RESULTS",
2733
2531
  count: contents.length,
2734
2532
  isActive: activeTab === "content",
2735
- onClick: function () {
2736
- return onTabChange("content");
2737
- },
2533
+ onClick: () => onTabChange("content"),
2738
2534
  variant: "desktop"
2739
2535
  })), onFilterDrawerToggle && /*#__PURE__*/React.createElement("button", {
2740
2536
  type: "button",
@@ -2763,9 +2559,9 @@ var FederatedResultsView = function (_a) {
2763
2559
  })), /*#__PURE__*/React.createElement("main", {
2764
2560
  className: styles$5.mainContent
2765
2561
  }, /*#__PURE__*/React.createElement("div", {
2766
- id: "tabpanel-".concat(activeTab),
2562
+ id: `tabpanel-${activeTab}`,
2767
2563
  role: "tabpanel",
2768
- "aria-labelledby": "tab-".concat(activeTab)
2564
+ "aria-labelledby": `tab-${activeTab}`
2769
2565
  }, /*#__PURE__*/React.createElement(ResultsList, {
2770
2566
  type: activeTab,
2771
2567
  products: displayProducts,
@@ -2780,7 +2576,7 @@ var FederatedResultsView = function (_a) {
2780
2576
  onPageChange: onPageChange,
2781
2577
  maxVisiblePages: 10,
2782
2578
  showPrevious: false,
2783
- ariaLabel: "".concat(activeTab === "products" ? "Products" : "Content", " pagination")
2579
+ ariaLabel: `${activeTab === "products" ? "Products" : "Content"} pagination`
2784
2580
  }))))), onFilterDrawerClose && /*#__PURE__*/React.createElement(FilterDrawer, {
2785
2581
  isOpen: isFilterDrawerOpen || false,
2786
2582
  onClose: onFilterDrawerClose
@@ -2794,76 +2590,73 @@ var FederatedResultsView = function (_a) {
2794
2590
 
2795
2591
  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"};
2796
2592
 
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
- * ```
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
+ * ```
2832
2628
  */
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;
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
+ }) => {
2860
2657
  // Track if any filters are active (for red dot indicator)
2861
- var hasAppliedFilters = useMemo(function () {
2862
- return facets.some(function (facet) {
2863
- return facet.values.some(function (value) {
2864
- return value.isRefined;
2865
- });
2866
- });
2658
+ const hasAppliedFilters = useMemo(() => {
2659
+ return facets.some(facet => facet.values.some(value => value.isRefined));
2867
2660
  }, [facets]);
2868
2661
  return /*#__PURE__*/React.createElement(SearchModal, {
2869
2662
  isOpen: isOpen,
@@ -2895,9 +2688,7 @@ var FederatedSearchExperience = function (_a) {
2895
2688
  label: "WEB SHOP RESULTS",
2896
2689
  count: products.length,
2897
2690
  isActive: activeTab === "products",
2898
- onClick: function () {
2899
- return onTabChange("products");
2900
- },
2691
+ onClick: () => onTabChange("products"),
2901
2692
  variant: "mobile"
2902
2693
  }), /*#__PURE__*/React.createElement("div", {
2903
2694
  className: styles$1.tabSeparator
@@ -2905,9 +2696,7 @@ var FederatedSearchExperience = function (_a) {
2905
2696
  label: "WEBSITE RESULTS",
2906
2697
  count: contents.length,
2907
2698
  isActive: activeTab === "content",
2908
- onClick: function () {
2909
- return onTabChange("content");
2910
- },
2699
+ onClick: () => onTabChange("content"),
2911
2700
  variant: "mobile"
2912
2701
  })), /*#__PURE__*/React.createElement("div", {
2913
2702
  className: styles$1.mobileFilterButtonWrapper
@@ -2932,7 +2721,7 @@ var FederatedSearchExperience = function (_a) {
2932
2721
  }, /*#__PURE__*/React.createElement("div", {
2933
2722
  className: styles$1.searchExperience
2934
2723
  }, activeView === "instant" && /*#__PURE__*/React.createElement("div", {
2935
- className: "".concat(styles$1.searchBarSection, " ").concat(styles$1.searchBarDesktopOnly)
2724
+ className: `${styles$1.searchBarSection} ${styles$1.searchBarDesktopOnly}`
2936
2725
  }, /*#__PURE__*/React.createElement(SearchBar, {
2937
2726
  value: query,
2938
2727
  onChange: onQueryChange,
@@ -3000,14 +2789,13 @@ var FederatedSearchExperience = function (_a) {
3000
2789
 
3001
2790
  var styles = {"searchTrigger":"SearchTriggerButton-module__searchTrigger___PDbDB","searchIcon":"SearchTriggerButton-module__searchIcon___izByW","label":"SearchTriggerButton-module__label___mkS7T"};
3002
2791
 
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) {
2792
+ const SearchTriggerButton = ({
2793
+ onOpen,
2794
+ ariaLabel = 'Open search',
2795
+ label,
2796
+ className = ''
2797
+ }) => {
2798
+ const handleKeyDown = event => {
3011
2799
  if (event.key === 'Enter' || event.key === ' ') {
3012
2800
  event.preventDefault();
3013
2801
  onOpen();
@@ -3018,7 +2806,7 @@ var SearchTriggerButton = function (_a) {
3018
2806
  onClick: onOpen,
3019
2807
  onKeyDown: handleKeyDown,
3020
2808
  "aria-label": ariaLabel,
3021
- className: "".concat(styles.searchTrigger, " ").concat(className)
2809
+ className: `${styles.searchTrigger} ${className}`
3022
2810
  }, /*#__PURE__*/React.createElement("svg", {
3023
2811
  className: styles.searchIcon,
3024
2812
  xmlns: "http://www.w3.org/2000/svg",
@@ -3040,5 +2828,5 @@ var SearchTriggerButton = function (_a) {
3040
2828
  }, label));
3041
2829
  };
3042
2830
 
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 };
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 };
3044
2832
  //# sourceMappingURL=index.esm.js.map