@digital-b2c/coreui-kit 0.8.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var clsx22 = require('clsx');
3
+ var clsx23 = require('clsx');
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
5
  var React62 = require('react');
6
6
  var gsap = require('gsap');
@@ -12,7 +12,7 @@ require('swiper/css');
12
12
 
13
13
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
14
 
15
- var clsx22__default = /*#__PURE__*/_interopDefault(clsx22);
15
+ var clsx23__default = /*#__PURE__*/_interopDefault(clsx23);
16
16
  var React62__default = /*#__PURE__*/_interopDefault(React62);
17
17
  var gsap__default = /*#__PURE__*/_interopDefault(gsap);
18
18
 
@@ -66,7 +66,7 @@ var Picture = (_a) => {
66
66
  __spreadValues({
67
67
  src: desktop.src,
68
68
  alt: desktop.alt,
69
- className: clsx22__default.default(className, Picture_module_default["image-desktop"])
69
+ className: clsx23__default.default(className, Picture_module_default["image-desktop"])
70
70
  }, rest)
71
71
  ),
72
72
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -74,7 +74,7 @@ var Picture = (_a) => {
74
74
  __spreadValues({
75
75
  src: (_b2 = mobile == null ? void 0 : mobile.src) != null ? _b2 : desktop.src,
76
76
  alt: (_c = mobile == null ? void 0 : mobile.alt) != null ? _c : desktop.alt,
77
- className: clsx22__default.default(className, Picture_module_default["image-mobile"])
77
+ className: clsx23__default.default(className, Picture_module_default["image-mobile"])
78
78
  }, rest)
79
79
  )
80
80
  ] });
@@ -433,7 +433,7 @@ var Button = (_a) => {
433
433
  ]);
434
434
  const isLink = !!href;
435
435
  const props = __spreadValues(__spreadValues({
436
- className: clsx22__default.default(
436
+ className: clsx23__default.default(
437
437
  Button_module_default.button,
438
438
  variant ? Button_module_default[variant] : null,
439
439
  { [Button_module_default.fullWidth]: !!fullWidth },
@@ -665,7 +665,7 @@ var BrandsStrip = ({
665
665
  "div",
666
666
  {
667
667
  ref: containerRef,
668
- className: clsx22__default.default(
668
+ className: clsx23__default.default(
669
669
  BrandsStrip_module_default.brandsStrip,
670
670
  BrandsStrip_module_default[variant],
671
671
  { [BrandsStrip_module_default.small]: size === "small" },
@@ -674,13 +674,13 @@ var BrandsStrip = ({
674
674
  onMouseEnter: handleMouseEnter,
675
675
  onMouseLeave: handleMouseLeave,
676
676
  children: [
677
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx22__default.default(BrandsStrip_module_default.container, { [BrandsStrip_module_default.blurred]: show && logos.length > 1 }), children: [
678
- title && logos.length === 1 && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: clsx22__default.default("body", BrandsStrip_module_default.title), children: title }),
677
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx23__default.default(BrandsStrip_module_default.container, { [BrandsStrip_module_default.blurred]: show && logos.length > 1 }), children: [
678
+ title && logos.length === 1 && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: clsx23__default.default("body", BrandsStrip_module_default.title), children: title }),
679
679
  logos.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
680
680
  "div",
681
681
  {
682
682
  ref: marqueeRef,
683
- className: clsx22__default.default(BrandsStrip_module_default.logos, { [BrandsStrip_module_default.marqueeGSAP]: shouldAnimate }),
683
+ className: clsx23__default.default(BrandsStrip_module_default.logos, { [BrandsStrip_module_default.marqueeGSAP]: shouldAnimate }),
684
684
  children: duplicatedLogos.map((logo, index) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: BrandsStrip_module_default.logoWrapper, children: /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: BrandsStrip_module_default.logo }, logo)) }, `${logo.alt}-${index}`))
685
685
  }
686
686
  )
@@ -727,7 +727,7 @@ var Container_module_default = {
727
727
  var Container = React62.forwardRef(
728
728
  (_a, ref) => {
729
729
  var _b = _a, { children, className } = _b, props = __objRest(_b, ["children", "className"]);
730
- return /* @__PURE__ */ jsxRuntime.jsx("div", __spreadProps(__spreadValues({ ref, className: clsx22__default.default(Container_module_default.container, className) }, props), { children }));
730
+ return /* @__PURE__ */ jsxRuntime.jsx("div", __spreadProps(__spreadValues({ ref, className: clsx23__default.default(Container_module_default.container, className) }, props), { children }));
731
731
  }
732
732
  );
733
733
  Container.displayName = "Container";
@@ -768,14 +768,14 @@ var Card = ({
768
768
  ConditionalWrapper,
769
769
  __spreadProps(__spreadValues({
770
770
  ref,
771
- className: clsx22__default.default(Card_module_default.card, Card_module_default[variant], className),
771
+ className: clsx23__default.default(Card_module_default.card, Card_module_default[variant], className),
772
772
  wrapper: Anchor,
773
773
  fallback: "div",
774
774
  condition: isLink
775
775
  }, href ? { href, isExternal } : {}), {
776
776
  children: [
777
777
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Card_module_default.logoContainer, children: [
778
- (logo == null ? void 0 : logo.src) ? /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: clsx22__default.default(Card_module_default.logo, isLink && Card_module_default.hideLogo) }, logo)) : icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: icon, className: clsx22__default.default(Card_module_default.logo, isLink && Card_module_default.hideLogo) }),
778
+ (logo == null ? void 0 : logo.src) ? /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: clsx23__default.default(Card_module_default.logo, isLink && Card_module_default.hideLogo) }, logo)) : icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: icon, className: clsx23__default.default(Card_module_default.logo, isLink && Card_module_default.hideLogo) }),
779
779
  isLink && /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "tiltedRightWhite", className: Card_module_default.logoHover })
780
780
  ] }),
781
781
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Card_module_default.content, children: [
@@ -810,10 +810,10 @@ var CountingCard = ({ className, title, count, image, children }) => {
810
810
  title: CountingCardTitle
811
811
  });
812
812
  const titleNode = (_a = slots.title) != null ? _a : title;
813
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx22__default.default(CountingCard_module_default["counting-card"], className), children: [
813
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx23__default.default(CountingCard_module_default["counting-card"], className), children: [
814
814
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: CountingCard_module_default.content, children: [
815
815
  titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "body", children: titleNode }),
816
- count && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default(CountingCard_module_default.count, "h1"), children: count })
816
+ count && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(CountingCard_module_default.count, "h1"), children: count })
817
817
  ] }),
818
818
  image && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: CountingCard_module_default.logo }, image))
819
819
  ] });
@@ -845,9 +845,9 @@ var InfoCard = ({ className, title, subtitle, icon, badge, children }) => {
845
845
  });
846
846
  const titleNode = (_a = slots.title) != null ? _a : title;
847
847
  const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
848
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx22__default.default(InfoCard_module_default["info-card"], { [InfoCard_module_default.hasIcon]: !!icon }, className), children: [
848
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx23__default.default(InfoCard_module_default["info-card"], { [InfoCard_module_default.hasIcon]: !!icon }, className), children: [
849
849
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: InfoCard_module_default.header, children: [
850
- icon ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: icon }) : badge ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default(InfoCard_module_default.badge, "h4"), children: badge }) : null,
850
+ icon ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: icon }) : badge ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(InfoCard_module_default.badge, "h4"), children: badge }) : null,
851
851
  titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h4", children: titleNode })
852
852
  ] }),
853
853
  subtitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "body", children: subtitleNode })
@@ -909,7 +909,7 @@ var Pagination = ({
909
909
  setActivePage(page);
910
910
  onPageChange == null ? void 0 : onPageChange(page);
911
911
  };
912
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx22__default.default(Pagination_module_default.pagination, className), children: [
912
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx23__default.default(Pagination_module_default.pagination, className), children: [
913
913
  !disableArrows && /* @__PURE__ */ jsxRuntime.jsx(
914
914
  "button",
915
915
  {
@@ -926,7 +926,7 @@ var Pagination = ({
926
926
  "button",
927
927
  {
928
928
  onClick: () => goToPage(page),
929
- className: clsx22__default.default(Pagination_module_default.page, {
929
+ className: clsx23__default.default(Pagination_module_default.page, {
930
930
  [Pagination_module_default.active]: activePage === page,
931
931
  [Pagination_module_default.number]: hasNumber
932
932
  }),
@@ -962,7 +962,7 @@ var PracticeCard_module_default = {
962
962
  };
963
963
  var PracticeCard = ({ className, title, cta, image }) => {
964
964
  const { url: href, isExternal } = cta != null ? cta : {};
965
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default(PracticeCard_module_default["practice-card"], className), children: /* @__PURE__ */ jsxRuntime.jsxs(
965
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(PracticeCard_module_default["practice-card"], className), children: /* @__PURE__ */ jsxRuntime.jsxs(
966
966
  ConditionalWrapper,
967
967
  __spreadProps(__spreadValues({
968
968
  className: PracticeCard_module_default.wrapper,
@@ -973,7 +973,7 @@ var PracticeCard = ({ className, title, cta, image }) => {
973
973
  children: [
974
974
  image && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: PracticeCard_module_default.background }, image)),
975
975
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: PracticeCard_module_default.container, children: [
976
- title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default(PracticeCard_module_default.title, "h3"), children: title }),
976
+ title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(PracticeCard_module_default.title, "h3"), children: title }),
977
977
  href && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: PracticeCard_module_default.cta, children: [
978
978
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: PracticeCard_module_default.ctaRest, type: "right" }),
979
979
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: PracticeCard_module_default.ctaHover, type: "tiltedRight" })
@@ -983,6 +983,23 @@ var PracticeCard = ({ className, title, cta, image }) => {
983
983
  })
984
984
  ) });
985
985
  };
986
+
987
+ // src/components/LogoBar/LogoBar.module.scss
988
+ var LogoBar_module_default = {
989
+ logoBar: "LogoBar_module_logoBar",
990
+ logoWrapper: "LogoBar_module_logoWrapper",
991
+ logo: "LogoBar_module_logo",
992
+ logoHover: "LogoBar_module_logoHover"
993
+ };
994
+ var LogoBar = ({ className, items }) => {
995
+ if (!items || items.length === 0) return null;
996
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(LogoBar_module_default.logoBar, className), children: items.map((item, key) => {
997
+ return /* @__PURE__ */ jsxRuntime.jsx(Anchor, { href: item.url, isExternal: item.isExternal, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: LogoBar_module_default.logoWrapper, children: [
998
+ item.logo && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: LogoBar_module_default.logo }, item.logo)),
999
+ item.hoverLogo && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: LogoBar_module_default.logoHover }, item.hoverLogo))
1000
+ ] }) }, key);
1001
+ }) });
1002
+ };
986
1003
  var CardCollectionTitle = ({ children }) => {
987
1004
  return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
988
1005
  };
@@ -1062,13 +1079,13 @@ var CardCollection = ({
1062
1079
  Container,
1063
1080
  {
1064
1081
  ref: container,
1065
- className: clsx22__default.default(CardCollection_module_default["card-collection"], CardCollection_module_default[variant], className),
1082
+ className: clsx23__default.default(CardCollection_module_default["card-collection"], CardCollection_module_default[variant], className),
1066
1083
  children: [
1067
1084
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: CardCollection_module_default.content, children: [
1068
1085
  titleNode && /* @__PURE__ */ jsxRuntime.jsx("h2", { children: titleNode }),
1069
1086
  subtitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "subheading", children: subtitleNode })
1070
1087
  ] }),
1071
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: CardCollection_module_default.wrapper, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx22__default.default(CardCollection_module_default.cardWrapper, { [CardCollection_module_default["is-expanded"]]: isExpanded }), children: [
1088
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: CardCollection_module_default.wrapper, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx23__default.default(CardCollection_module_default.cardWrapper, { [CardCollection_module_default["is-expanded"]]: isExpanded }), children: [
1072
1089
  visibleCards.map((card, key) => /* @__PURE__ */ jsxRuntime.jsx(Card2, __spreadValues({ className: CardCollection_module_default.card, variant: theme }, card), key)),
1073
1090
  isExamCard && hiddenCards.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { ref: revealWrapper, className: CardCollection_module_default["reveal-wrapper"], children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: CardCollection_module_default["reveal-inner"], children: hiddenCards.map((card, key) => /* @__PURE__ */ jsxRuntime.jsx(
1074
1091
  Card2,
@@ -1169,7 +1186,7 @@ var ContactModule = ({
1169
1186
  },
1170
1187
  { scope: containerRef, dependencies: [blurred, animateBlur] }
1171
1188
  );
1172
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: containerRef, className: clsx22__default.default(ContactModule_module_default["contact-module"], className), children: [
1189
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: containerRef, className: clsx23__default.default(ContactModule_module_default["contact-module"], className), children: [
1173
1190
  blurred && /* @__PURE__ */ jsxRuntime.jsx(
1174
1191
  "div",
1175
1192
  {
@@ -1184,8 +1201,8 @@ var ContactModule = ({
1184
1201
  /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: ContactModule_module_default.container, children: [
1185
1202
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ContactModule_module_default.wrapper, children: [
1186
1203
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ContactModule_module_default.content, children: [
1187
- titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default(ContactModule_module_default.title, "h1"), children: titleNode }),
1188
- subtitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default(ContactModule_module_default.subtitle, "subheading"), children: subtitleNode })
1204
+ titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(ContactModule_module_default.title, "h1"), children: titleNode }),
1205
+ subtitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(ContactModule_module_default.subtitle, "subheading"), children: subtitleNode })
1189
1206
  ] }),
1190
1207
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: ContactModule_module_default["cta-wrapper"], children: ctas == null ? void 0 : ctas.map((cta, key) => /* @__PURE__ */ jsxRuntime.jsx(
1191
1208
  Button,
@@ -1246,7 +1263,7 @@ var Footer = ({
1246
1263
  disclaimer: FooterDisclaimer
1247
1264
  });
1248
1265
  const titleNode = (_a = slots.disclaimer) != null ? _a : disclaimer;
1249
- return /* @__PURE__ */ jsxRuntime.jsx("footer", { className: clsx22__default.default(Footer_module_default.footer, className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: Footer_module_default.container, children: [
1266
+ return /* @__PURE__ */ jsxRuntime.jsx("footer", { className: clsx23__default.default(Footer_module_default.footer, className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: Footer_module_default.container, children: [
1250
1267
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Footer_module_default.bottom, children: [
1251
1268
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Footer_module_default["bottom-left"], children: [
1252
1269
  supporters.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: Footer_module_default.supporters, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: Footer_module_default["supporters-logos"], children: supporters.map(
@@ -1262,7 +1279,7 @@ var Footer = ({
1262
1279
  index
1263
1280
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: Footer_module_default["supporter-link-primary"], children: /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({}, supporter.image)) }, index)
1264
1281
  ) }) }),
1265
- titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default(Footer_module_default.disclaimer, "p"), children: titleNode }),
1282
+ titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(Footer_module_default.disclaimer, "p"), children: titleNode }),
1266
1283
  copyright && /* @__PURE__ */ jsxRuntime.jsx("p", { className: Footer_module_default.copyright, children: copyright })
1267
1284
  ] }),
1268
1285
  columns.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("nav", { className: Footer_module_default["bottom-right"], children: columns.map((column, colIndex) => /* @__PURE__ */ jsxRuntime.jsx("ul", { className: Footer_module_default["nav-list"], children: column.map((link) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -1278,6 +1295,12 @@ var Footer = ({
1278
1295
  children
1279
1296
  ] }) });
1280
1297
  };
1298
+ var Text = (_a) => {
1299
+ var _b = _a, { tag = "p", promoteToH1 = false, ref, children } = _b, props = __objRest(_b, ["tag", "promoteToH1", "ref", "children"]);
1300
+ const Component = promoteToH1 ? "h1" : tag;
1301
+ return /* @__PURE__ */ jsxRuntime.jsx(Component, __spreadProps(__spreadValues({ ref }, props), { children }));
1302
+ };
1303
+ Text.displayName = "Text";
1281
1304
  var HeroBannerTitle = ({ children }) => {
1282
1305
  return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
1283
1306
  };
@@ -1288,26 +1311,23 @@ var HeroBannerSubtitle = ({ children }) => {
1288
1311
  // src/widgets/HeroBanner/HeroBanner.module.scss
1289
1312
  var HeroBanner_module_default = {
1290
1313
  heroBanner: "HeroBanner_module_heroBanner",
1291
- pageHeroBanner: "HeroBanner_module_pageHeroBanner",
1292
1314
  container: "HeroBanner_module_container",
1293
- bannerPodcast: "HeroBanner_module_bannerPodcast",
1294
1315
  banner: "HeroBanner_module_banner",
1295
1316
  text: "HeroBanner_module_text",
1317
+ titleLogo: "HeroBanner_module_titleLogo",
1296
1318
  title: "HeroBanner_module_title",
1297
1319
  subtitle: "HeroBanner_module_subtitle",
1298
- logoWrapper: "HeroBanner_module_logoWrapper",
1299
- logo: "HeroBanner_module_logo",
1300
- horizontalGradient: "HeroBanner_module_horizontalGradient",
1301
- lensCrafters: "HeroBanner_module_lensCrafters",
1302
- forEyes: "HeroBanner_module_forEyes",
1303
- optical: "HeroBanner_module_optical",
1304
- pearleVision: "HeroBanner_module_pearleVision",
1305
1320
  ctaContainer: "HeroBanner_module_ctaContainer",
1306
1321
  brandsStrip: "HeroBanner_module_brandsStrip",
1307
1322
  backgroundImage: "HeroBanner_module_backgroundImage",
1308
1323
  scrollDown: "HeroBanner_module_scrollDown",
1309
1324
  arrow: "HeroBanner_module_arrow",
1310
- mainHeroBanner: "HeroBanner_module_mainHeroBanner"
1325
+ mainHeroBanner: "HeroBanner_module_mainHeroBanner",
1326
+ bannerPodcast: "HeroBanner_module_bannerPodcast",
1327
+ logoWrapper: "HeroBanner_module_logoWrapper",
1328
+ logo: "HeroBanner_module_logo",
1329
+ horizontalGradient: "HeroBanner_module_horizontalGradient",
1330
+ logoBar: "HeroBanner_module_logoBar"
1311
1331
  };
1312
1332
  var HeroBanner = ({
1313
1333
  className,
@@ -1317,7 +1337,9 @@ var HeroBanner = ({
1317
1337
  backgroundImage,
1318
1338
  logo,
1319
1339
  cta,
1340
+ ctaLogo,
1320
1341
  brands,
1342
+ promoteToH1,
1321
1343
  children
1322
1344
  }) => {
1323
1345
  var _a, _b;
@@ -1325,18 +1347,42 @@ var HeroBanner = ({
1325
1347
  const isTabletBelow = is("tablet", "below");
1326
1348
  const vPageHeroBanner = variant === "pageHeroBanner";
1327
1349
  const vBannerPodcast = variant === "bannerPodcast";
1350
+ const isTitleLogo = (logo == null ? void 0 : logo.variant) === "titleLogo";
1351
+ const GRADIENT_BANDS = [
1352
+ { color: "var(--color-lenscrafter-blue)" },
1353
+ { color: "var(--color-foreyes-brown)" },
1354
+ { color: "var(--color-targetoptical-red)" },
1355
+ { color: "var(--color-pearlevision-green)" }
1356
+ ];
1328
1357
  const slots = resolveCompoundSlots(children, {
1329
1358
  title: HeroBannerTitle,
1330
1359
  subtitle: HeroBannerSubtitle
1331
1360
  });
1332
1361
  const titleNode = (_a = slots.title) != null ? _a : title;
1333
1362
  const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
1334
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx22__default.default(HeroBanner_module_default.heroBanner, HeroBanner_module_default[variant], className), children: [
1363
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx23__default.default(HeroBanner_module_default.heroBanner, HeroBanner_module_default[variant], className), children: [
1335
1364
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: HeroBanner_module_default.container, children: [
1336
1365
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: HeroBanner_module_default.banner, children: [
1337
1366
  (titleNode || subtitleNode) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: HeroBanner_module_default.text, children: [
1338
- titleNode && /* @__PURE__ */ jsxRuntime.jsx("h1", { className: clsx22__default.default(HeroBanner_module_default.title, "h1"), children: titleNode }),
1339
- subtitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default(HeroBanner_module_default.subtitle, "subtitle"), children: subtitleNode })
1367
+ isTitleLogo && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: HeroBanner_module_default.titleLogo }, logo)),
1368
+ titleNode && /* @__PURE__ */ jsxRuntime.jsx(
1369
+ Text,
1370
+ {
1371
+ tag: "h2",
1372
+ promoteToH1,
1373
+ className: clsx23__default.default(HeroBanner_module_default.title, vBannerPodcast ? "h3" : "h1"),
1374
+ children: titleNode
1375
+ }
1376
+ ),
1377
+ subtitleNode && /* @__PURE__ */ jsxRuntime.jsx(
1378
+ Text,
1379
+ {
1380
+ tag: "div",
1381
+ promoteToH1: promoteToH1 && !titleNode,
1382
+ className: clsx23__default.default(HeroBanner_module_default.subtitle, "subheading"),
1383
+ children: subtitleNode
1384
+ }
1385
+ )
1340
1386
  ] }),
1341
1387
  cta && cta.length > 0 && !vBannerPodcast && /* @__PURE__ */ jsxRuntime.jsx("div", { className: HeroBanner_module_default.ctaContainer, children: cta.slice(0, 2).map((cta2, key) => {
1342
1388
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -1351,9 +1397,10 @@ var HeroBanner = ({
1351
1397
  },
1352
1398
  key
1353
1399
  );
1354
- }) })
1400
+ }) }),
1401
+ ctaLogo && ctaLogo.length > 0 && vBannerPodcast && /* @__PURE__ */ jsxRuntime.jsx(LogoBar, { items: ctaLogo, className: HeroBanner_module_default.logoBar })
1355
1402
  ] }),
1356
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: HeroBanner_module_default.logoWrapper, children: logo && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: HeroBanner_module_default.logo }, logo)) }),
1403
+ logo && !isTitleLogo && /* @__PURE__ */ jsxRuntime.jsx("div", { className: HeroBanner_module_default.logoWrapper, children: /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: HeroBanner_module_default.logo }, logo)) }),
1357
1404
  !vBannerPodcast && /* @__PURE__ */ jsxRuntime.jsx(
1358
1405
  BrandsStrip,
1359
1406
  __spreadValues({
@@ -1362,14 +1409,9 @@ var HeroBanner = ({
1362
1409
  size: isTabletBelow || vPageHeroBanner ? "small" : void 0
1363
1410
  }, brands)
1364
1411
  ),
1365
- backgroundImage && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: HeroBanner_module_default.backgroundImage }, backgroundImage))
1366
- ] }),
1367
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: HeroBanner_module_default.horizontalGradient, children: [
1368
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: HeroBanner_module_default.lensCrafters }),
1369
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: HeroBanner_module_default.forEyes }),
1370
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: HeroBanner_module_default.optical }),
1371
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: HeroBanner_module_default.pearleVision })
1412
+ backgroundImage && !vBannerPodcast && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: HeroBanner_module_default.backgroundImage }, backgroundImage))
1372
1413
  ] }),
1414
+ vBannerPodcast && /* @__PURE__ */ jsxRuntime.jsx("div", { className: HeroBanner_module_default.horizontalGradient, children: GRADIENT_BANDS.map((band, index) => /* @__PURE__ */ jsxRuntime.jsx("div", { style: { backgroundColor: band.color } }, index)) }),
1373
1415
  !vBannerPodcast && /* @__PURE__ */ jsxRuntime.jsx("div", { className: HeroBanner_module_default.scrollDown, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "downChevronBlack", className: HeroBanner_module_default.arrow }) })
1374
1416
  ] });
1375
1417
  };
@@ -1414,7 +1456,7 @@ var HeroBannerCarousel = ({
1414
1456
  const [swiperInstance, setSwiperInstance] = React62.useState(null);
1415
1457
  const [activeIndex, setActiveIndex] = React62.useState(0);
1416
1458
  if (!items.length) return null;
1417
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default(HeroBannerCarousel_module_default.heroBannerCarousel, className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: HeroBannerCarousel_module_default.inner, children: [
1459
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(HeroBannerCarousel_module_default.heroBannerCarousel, className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: HeroBannerCarousel_module_default.inner, children: [
1418
1460
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: HeroBannerCarousel_module_default.swiperContainer, children: /* @__PURE__ */ jsxRuntime.jsx(
1419
1461
  react$1.Swiper,
1420
1462
  {
@@ -1461,7 +1503,7 @@ var HeroBannerCarousel = ({
1461
1503
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: HeroBannerCarousel_module_default.pagination, children: items.map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
1462
1504
  "button",
1463
1505
  {
1464
- className: clsx22__default.default(HeroBannerCarousel_module_default.dot, index === activeIndex && HeroBannerCarousel_module_default.dotActive),
1506
+ className: clsx23__default.default(HeroBannerCarousel_module_default.dot, index === activeIndex && HeroBannerCarousel_module_default.dotActive),
1465
1507
  onClick: () => swiperInstance == null ? void 0 : swiperInstance.slideTo(index),
1466
1508
  "aria-label": `Go to slide ${index + 1}`
1467
1509
  },
@@ -1480,12 +1522,6 @@ var HeroBannerCarousel = ({
1480
1522
  ] })
1481
1523
  ] }) });
1482
1524
  };
1483
- var Text = (_a) => {
1484
- var _b = _a, { tag = "p", promoteToH1 = false, ref, children } = _b, props = __objRest(_b, ["tag", "promoteToH1", "ref", "children"]);
1485
- const Component = promoteToH1 ? "h1" : tag;
1486
- return /* @__PURE__ */ jsxRuntime.jsx(Component, __spreadProps(__spreadValues({ ref }, props), { children }));
1487
- };
1488
- Text.displayName = "Text";
1489
1525
 
1490
1526
  // src/components/Accordion/Accordion.module.scss
1491
1527
  var Accordion_module_default = {
@@ -1547,7 +1583,7 @@ var AccordionItem = ({
1547
1583
  return /* @__PURE__ */ jsxRuntime.jsxs(
1548
1584
  "div",
1549
1585
  {
1550
- className: clsx22__default.default(
1586
+ className: clsx23__default.default(
1551
1587
  Accordion_module_default.accordionItem,
1552
1588
  {
1553
1589
  [Accordion_module_default.accordionItemOpen]: isOpen
@@ -1558,18 +1594,18 @@ var AccordionItem = ({
1558
1594
  /* @__PURE__ */ jsxRuntime.jsxs(
1559
1595
  "button",
1560
1596
  {
1561
- className: clsx22__default.default(Accordion_module_default.accordionHeader, {
1597
+ className: clsx23__default.default(Accordion_module_default.accordionHeader, {
1562
1598
  [Accordion_module_default.accordionHeaderOpen]: isOpen
1563
1599
  }),
1564
1600
  onClick: handleToggle,
1565
1601
  "aria-expanded": isOpen,
1566
1602
  "aria-label": `Toggle ${title}`,
1567
1603
  children: [
1568
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: Accordion_module_default.accordionHeaderLeft, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx22__default.default("body", Accordion_module_default.accordionTitle), children: title }) }),
1604
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: Accordion_module_default.accordionHeaderLeft, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx23__default.default("body", Accordion_module_default.accordionTitle), children: title }) }),
1569
1605
  /* @__PURE__ */ jsxRuntime.jsx(
1570
1606
  "span",
1571
1607
  {
1572
- className: clsx22__default.default(Accordion_module_default.accordionChevron, {
1608
+ className: clsx23__default.default(Accordion_module_default.accordionChevron, {
1573
1609
  [Accordion_module_default.accordionChevronOpen]: isOpen
1574
1610
  }),
1575
1611
  children: isOpen ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "filledChevronUpBlack", size: 40 }) : /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "circleChevronDown", size: 40 })
@@ -1621,7 +1657,7 @@ var Accordion = ({
1621
1657
  if (items.length === 0) {
1622
1658
  return null;
1623
1659
  }
1624
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default(Accordion_module_default.accordion, className), children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
1660
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(Accordion_module_default.accordion, className), children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
1625
1661
  AccordionItem,
1626
1662
  {
1627
1663
  id: item.id,
@@ -1711,7 +1747,7 @@ var InternalBrandsTab = (props) => {
1711
1747
  };
1712
1748
  })) || [];
1713
1749
  }, [tabs]);
1714
- return /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx22__default.default(InternalBrandsTab_module_default.internalBrandsTab, className), children: [
1750
+ return /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx23__default.default(InternalBrandsTab_module_default.internalBrandsTab, className), children: [
1715
1751
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: InternalBrandsTab_module_default.textsContainer, children: [
1716
1752
  title && /* @__PURE__ */ jsxRuntime.jsx(Text, { tag: "h2", className: InternalBrandsTab_module_default.title, children: title }),
1717
1753
  subTitle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: InternalBrandsTab_module_default.subTitle, children: subTitle })
@@ -1727,7 +1763,7 @@ var InternalBrandsTab = (props) => {
1727
1763
  },
1728
1764
  index
1729
1765
  )) }),
1730
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default(InternalBrandsTab_module_default.contentArea), children: ((_a = tabs == null ? void 0 : tabs[activeIndex]) == null ? void 0 : _a.topContent) && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1766
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(InternalBrandsTab_module_default.contentArea), children: ((_a = tabs == null ? void 0 : tabs[activeIndex]) == null ? void 0 : _a.topContent) && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1731
1767
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: InternalBrandsTab_module_default.topContent, children: [
1732
1768
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1733
1769
  ((_b = tabs[activeIndex].topContent) == null ? void 0 : _b.title) && /* @__PURE__ */ jsxRuntime.jsx("p", { className: InternalBrandsTab_module_default.topContentTitle, children: (_c = tabs[activeIndex].topContent) == null ? void 0 : _c.title }),
@@ -1818,17 +1854,17 @@ var MiniBanner = ({
1818
1854
  const pretitleNode = (_a = slots.pretitle) != null ? _a : pretitle;
1819
1855
  const titleNode = (_b = slots.title) != null ? _b : title;
1820
1856
  const subtitleNode = (_c = slots.subtitle) != null ? _c : subtitle;
1821
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx22__default.default(MiniBanner_module_default.minibanner, MiniBanner_module_default[variant], className), children: [
1857
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx23__default.default(MiniBanner_module_default.minibanner, MiniBanner_module_default[variant], className), children: [
1822
1858
  ((background == null ? void 0 : background.src) || ((_d = background == null ? void 0 : background.desktop) == null ? void 0 : _d.src) || ((_e = background == null ? void 0 : background.mobile) == null ? void 0 : _e.src)) && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: MiniBanner_module_default.background }, background)),
1823
1859
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: MiniBanner_module_default.wrapper, children: [
1824
1860
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: MiniBanner_module_default.textContainer, children: [
1825
1861
  (logo == null ? void 0 : logo.src) && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: MiniBanner_module_default.logo }, logo)),
1826
- pretitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default(MiniBanner_module_default.pretitle, "small"), children: pretitleNode }),
1827
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: MiniBanner_module_default.headingWrapper, children: titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default(MiniBanner_module_default.title, isMiniBannerTextLeft ? "h1" : "h4"), children: titleNode }) }),
1862
+ pretitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(MiniBanner_module_default.pretitle, "small"), children: pretitleNode }),
1863
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: MiniBanner_module_default.headingWrapper, children: titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(MiniBanner_module_default.title, isMiniBannerTextLeft ? "h1" : "h4"), children: titleNode }) }),
1828
1864
  subtitleNode && /* @__PURE__ */ jsxRuntime.jsx(
1829
1865
  "div",
1830
1866
  {
1831
- className: clsx22__default.default(MiniBanner_module_default.title, {
1867
+ className: clsx23__default.default(MiniBanner_module_default.title, {
1832
1868
  subheading: isMiniBannerNoBG || isMiniBannerTextLeft,
1833
1869
  h1: !isMiniBannerNoBG && !isMiniBannerTextLeft
1834
1870
  }),
@@ -1899,14 +1935,14 @@ var MiniSectionCta = ({
1899
1935
  return /* @__PURE__ */ jsxRuntime.jsx(
1900
1936
  "div",
1901
1937
  {
1902
- className: clsx22__default.default(MiniSectionCta_module_default.miniSectionCta, MiniSectionCta_module_default[variant], theme && MiniSectionCta_module_default[theme], className),
1938
+ className: clsx23__default.default(MiniSectionCta_module_default.miniSectionCta, MiniSectionCta_module_default[variant], theme && MiniSectionCta_module_default[theme], className),
1903
1939
  children: /* @__PURE__ */ jsxRuntime.jsx(Container, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: MiniSectionCta_module_default.wrapper, children: [
1904
1940
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: MiniSectionCta_module_default.col, children: [
1905
1941
  titleNode && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: variant === "BgColorBlack" || variant === "BgColorGrey" ? "h3" : "h2", children: titleNode }),
1906
1942
  subtitleNode && /* @__PURE__ */ jsxRuntime.jsx(
1907
1943
  "div",
1908
1944
  {
1909
- className: clsx22__default.default(MiniSectionCta_module_default.subtitle, variant === "infoCallout" ? "h4" : "subheading"),
1945
+ className: clsx23__default.default(MiniSectionCta_module_default.subtitle, variant === "infoCallout" ? "h4" : "subheading"),
1910
1946
  children: subtitleNode
1911
1947
  }
1912
1948
  )
@@ -1971,7 +2007,7 @@ var PracticePathCards = ({
1971
2007
  const titleNode = (_a = slots.title) != null ? _a : title;
1972
2008
  const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
1973
2009
  const footerNode = (_c = slots.footer) != null ? _c : footer;
1974
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default(PracticePathCards_module_default["practice-path-cards"], className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: PracticePathCards_module_default.container, children: [
2010
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(PracticePathCards_module_default["practice-path-cards"], className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: PracticePathCards_module_default.container, children: [
1975
2011
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: PracticePathCards_module_default.wrapper, children: [
1976
2012
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: PracticePathCards_module_default.content, children: [
1977
2013
  titleNode && /* @__PURE__ */ jsxRuntime.jsx("h2", { children: titleNode }),
@@ -2025,8 +2061,8 @@ var Teaser5050With3Text = ({
2025
2061
  title: Teaser5050With3TextTitle
2026
2062
  });
2027
2063
  const titleNode = (_a = slots.title) != null ? _a : title;
2028
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default(Teaser5050With3Text_module_default["teaser5050-3text"], Teaser5050With3Text_module_default[variant], className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: Teaser5050With3Text_module_default.container, children: [
2029
- titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default(Teaser5050With3Text_module_default.title, "h3"), children: titleNode }),
2064
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(Teaser5050With3Text_module_default["teaser5050-3text"], Teaser5050With3Text_module_default[variant], className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: Teaser5050With3Text_module_default.container, children: [
2065
+ titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(Teaser5050With3Text_module_default.title, "h3"), children: titleNode }),
2030
2066
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Teaser5050With3Text_module_default.content, children: [
2031
2067
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: Teaser5050With3Text_module_default.cards, children: cards == null ? void 0 : cards.map((card, key) => /* @__PURE__ */ jsxRuntime.jsx(InfoCard2, __spreadValues({}, card), key)) }),
2032
2068
  image && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: Teaser5050With3Text_module_default.image }, image))
@@ -2076,12 +2112,12 @@ var Teaser5050WithCta = ({
2076
2112
  return /* @__PURE__ */ jsxRuntime.jsx(
2077
2113
  "div",
2078
2114
  {
2079
- className: clsx22__default.default(Teaser5050WithCta_module_default.teaser5050, Teaser5050WithCta_module_default[variant], className),
2115
+ className: clsx23__default.default(Teaser5050WithCta_module_default.teaser5050, Teaser5050WithCta_module_default[variant], className),
2080
2116
  style: { backgroundColor: bgColor ? bgColor : "#ffffff" },
2081
2117
  children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: Teaser5050WithCta_module_default.container, children: [
2082
2118
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Teaser5050WithCta_module_default.wrapper, children: [
2083
2119
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Teaser5050WithCta_module_default.content, children: [
2084
- titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default(Teaser5050WithCta_module_default.title, "h3"), children: titleNode }),
2120
+ titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(Teaser5050WithCta_module_default.title, "h3"), children: titleNode }),
2085
2121
  subtitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "subheading", children: subtitleNode })
2086
2122
  ] }),
2087
2123
  (ctas == null ? void 0 : ctas.length) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: Teaser5050WithCta_module_default.ctaWrapper, children: ctas.map((cta, key) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -2145,7 +2181,7 @@ var UpcomingEventCard = ({
2145
2181
  return /* @__PURE__ */ jsxRuntime.jsxs(
2146
2182
  "article",
2147
2183
  {
2148
- className: clsx22__default.default(
2184
+ className: clsx23__default.default(
2149
2185
  "card",
2150
2186
  UpcomingEventCard_module_default["event-card"],
2151
2187
  UpcomingEventCard_module_default[direction],
@@ -2153,26 +2189,26 @@ var UpcomingEventCard = ({
2153
2189
  className
2154
2190
  ),
2155
2191
  children: [
2156
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx22__default.default("card-content", UpcomingEventCard_module_default["event-card-content"]), children: [
2157
- showImage && image && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadProps(__spreadValues({}, image), { className: clsx22__default.default("card-image", UpcomingEventCard_module_default["event-card-image"]) })),
2192
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx23__default.default("card-content", UpcomingEventCard_module_default["event-card-content"]), children: [
2193
+ showImage && image && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadProps(__spreadValues({}, image), { className: clsx23__default.default("card-image", UpcomingEventCard_module_default["event-card-image"]) })),
2158
2194
  /* @__PURE__ */ jsxRuntime.jsxs(
2159
2195
  "div",
2160
2196
  {
2161
- className: clsx22__default.default(
2197
+ className: clsx23__default.default(
2162
2198
  "card-text-content",
2163
2199
  UpcomingEventCard_module_default["event-card-text-content"],
2164
2200
  (!showImage || !hasImage) && UpcomingEventCard_module_default["event-card-show-image"]
2165
2201
  ),
2166
2202
  children: [
2167
2203
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: UpcomingEventCard_module_default.date, children: date }),
2168
- title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: clsx22__default.default("card-text-title"), children: title }),
2204
+ title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: clsx23__default.default("card-text-title"), children: title }),
2169
2205
  location && /* @__PURE__ */ jsxRuntime.jsx("span", { className: UpcomingEventCard_module_default.location, children: location }),
2170
- description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default("card-text-description", UpcomingEventCard_module_default.description), children: description }),
2206
+ description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default("card-text-description", UpcomingEventCard_module_default.description), children: description }),
2171
2207
  cta && cta.url && /* @__PURE__ */ jsxRuntime.jsx(
2172
2208
  Button,
2173
2209
  {
2174
2210
  variant: "secondary",
2175
- className: clsx22__default.default(
2211
+ className: clsx23__default.default(
2176
2212
  "card-cta",
2177
2213
  UpcomingEventCard_module_default["event-card-cta"],
2178
2214
  !hasCTAandImage && UpcomingEventCard_module_default.hidden
@@ -2191,12 +2227,12 @@ var UpcomingEventCard = ({
2191
2227
  cta && cta.url && /* @__PURE__ */ jsxRuntime.jsx(
2192
2228
  "div",
2193
2229
  {
2194
- className: clsx22__default.default("card-footer", UpcomingEventCard_module_default["event-card-footer"], hasImage && UpcomingEventCard_module_default.hidden),
2230
+ className: clsx23__default.default("card-footer", UpcomingEventCard_module_default["event-card-footer"], hasImage && UpcomingEventCard_module_default.hidden),
2195
2231
  children: /* @__PURE__ */ jsxRuntime.jsx(
2196
2232
  Button,
2197
2233
  {
2198
2234
  variant: "secondary",
2199
- className: clsx22__default.default("card-cta", UpcomingEventCard_module_default["event-card-cta"]),
2235
+ className: clsx23__default.default("card-cta", UpcomingEventCard_module_default["event-card-cta"]),
2200
2236
  fullWidth: isBelowMobile,
2201
2237
  href: cta.url,
2202
2238
  icon: cta.icon,
@@ -2233,7 +2269,7 @@ var Carousel = (_a) => {
2233
2269
  },
2234
2270
  role: "region",
2235
2271
  "aria-label": ariaLabel,
2236
- className: clsx22__default.default(Carousel_module_default.carousel, className),
2272
+ className: clsx23__default.default(Carousel_module_default.carousel, className),
2237
2273
  spaceBetween: 0,
2238
2274
  slidesPerView: "auto",
2239
2275
  modules: [modules.FreeMode, modules.A11y],
@@ -2243,7 +2279,7 @@ var Carousel = (_a) => {
2243
2279
  children: slides.map((slide, index) => /* @__PURE__ */ jsxRuntime.jsx(
2244
2280
  react$1.SwiperSlide,
2245
2281
  {
2246
- className: clsx22__default.default(Carousel_module_default["carousel-item"], props.slideClass),
2282
+ className: clsx23__default.default(Carousel_module_default["carousel-item"], props.slideClass),
2247
2283
  children: slide
2248
2284
  },
2249
2285
  index
@@ -2293,13 +2329,13 @@ var EventList = ({
2293
2329
  return /* @__PURE__ */ jsxRuntime.jsx(
2294
2330
  "div",
2295
2331
  {
2296
- className: clsx22__default.default("event-list-module", EventList_module_default["event-list-module"], className),
2332
+ className: clsx23__default.default("event-list-module", EventList_module_default["event-list-module"], className),
2297
2333
  style: {
2298
2334
  backgroundColor
2299
2335
  },
2300
- children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx22__default.default(EventList_module_default["event-list-container"]), children: [
2336
+ children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx23__default.default(EventList_module_default["event-list-container"]), children: [
2301
2337
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: EventList_module_default["event-list-header-container"], children: [
2302
- titleNode && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: clsx22__default.default(EventList_module_default["event-list-title"]), children: titleNode }),
2338
+ titleNode && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: clsx23__default.default(EventList_module_default["event-list-title"]), children: titleNode }),
2303
2339
  cta && cta.url && /* @__PURE__ */ jsxRuntime.jsx(
2304
2340
  Button,
2305
2341
  {
@@ -2316,7 +2352,7 @@ var EventList = ({
2316
2352
  Carousel,
2317
2353
  {
2318
2354
  "aria-label": "Upcoming events",
2319
- wrapperClass: clsx22__default.default(EventList_module_default["carousel-wrapper"], EventList_module_default[variant]),
2355
+ wrapperClass: clsx23__default.default(EventList_module_default["carousel-wrapper"], EventList_module_default[variant]),
2320
2356
  slideClass: EventList_module_default["carousel-list-item"],
2321
2357
  spaceBetween: 16,
2322
2358
  slides: items.map((item) => {
@@ -2324,7 +2360,7 @@ var EventList = ({
2324
2360
  return /* @__PURE__ */ jsxRuntime.jsx(
2325
2361
  UpcomingEventCard,
2326
2362
  __spreadValues({
2327
- className: clsx22__default.default(EventList_module_default["event-card"]),
2363
+ className: clsx23__default.default(EventList_module_default["event-card"]),
2328
2364
  direction: "vertical",
2329
2365
  showImage: false
2330
2366
  }, item),
@@ -2337,17 +2373,17 @@ var EventList = ({
2337
2373
  "ul",
2338
2374
  {
2339
2375
  "aria-label": "Upcoming events",
2340
- className: clsx22__default.default(EventList_module_default["event-list-wrapper"], EventList_module_default["horizontal"], EventList_module_default[variant]),
2376
+ className: clsx23__default.default(EventList_module_default["event-list-wrapper"], EventList_module_default["horizontal"], EventList_module_default[variant]),
2341
2377
  children: items == null ? void 0 : items.map((item, index) => {
2342
2378
  var _a2, _b, _c;
2343
2379
  return /* @__PURE__ */ jsxRuntime.jsx(
2344
2380
  "li",
2345
2381
  {
2346
- className: clsx22__default.default(EventList_module_default["card-list-item"]),
2382
+ className: clsx23__default.default(EventList_module_default["card-list-item"]),
2347
2383
  children: /* @__PURE__ */ jsxRuntime.jsx(
2348
2384
  UpcomingEventCard,
2349
2385
  __spreadProps(__spreadValues({}, item), {
2350
- className: clsx22__default.default(EventList_module_default["card-item"]),
2386
+ className: clsx23__default.default(EventList_module_default["card-item"]),
2351
2387
  showImage: false,
2352
2388
  direction: "vertical"
2353
2389
  })
@@ -2362,7 +2398,7 @@ var EventList = ({
2362
2398
  "ul",
2363
2399
  {
2364
2400
  "aria-label": "Upcoming events",
2365
- className: clsx22__default.default(EventList_module_default["event-list-wrapper"], EventList_module_default[listDirection]),
2401
+ className: clsx23__default.default(EventList_module_default["event-list-wrapper"], EventList_module_default[listDirection]),
2366
2402
  children: items == null ? void 0 : items.map((item, index) => {
2367
2403
  var _a2, _b, _c;
2368
2404
  return /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(UpcomingEventCard, __spreadProps(__spreadValues({}, item), { direction: cardDirection })) }, (_c = (_b = (_a2 = item.title) != null ? _a2 : item.date) != null ? _b : item.location) != null ? _c : index);
@@ -2409,9 +2445,9 @@ var TextEvent = (props) => {
2409
2445
  });
2410
2446
  const titleNode = (_a = slots.title) != null ? _a : title;
2411
2447
  const richTextNode = (_b = slots.richText) != null ? _b : richText;
2412
- return /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx22__default.default(TextEvent_module_default.textEvent, className), children: [
2448
+ return /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx23__default.default(TextEvent_module_default.textEvent, className), children: [
2413
2449
  /* @__PURE__ */ jsxRuntime.jsx(Text, { tag: "h2", className: TextEvent_module_default.title, children: titleNode }),
2414
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default(TextEvent_module_default.richText, TextEvent_module_default[variant != null ? variant : ""]), children: richTextNode })
2450
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(TextEvent_module_default.richText, TextEvent_module_default[variant != null ? variant : ""]), children: richTextNode })
2415
2451
  ] });
2416
2452
  };
2417
2453
 
@@ -2442,7 +2478,7 @@ var TextBody = (props) => {
2442
2478
  });
2443
2479
  const titleNode = (_a = slots.title) != null ? _a : title;
2444
2480
  const bodyNode = (_b = slots.body) != null ? _b : body;
2445
- return /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx22__default.default(TextBody_module_default.textBody, className), children: [
2481
+ return /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx23__default.default(TextBody_module_default.textBody, className), children: [
2446
2482
  titleNode && /* @__PURE__ */ jsxRuntime.jsx(Text, { tag: "h2", className: TextBody_module_default.title, children: titleNode }),
2447
2483
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: TextBody_module_default.body, children: bodyNode })
2448
2484
  ] });
@@ -2485,7 +2521,7 @@ var TextCenterCtaInBottom = ({
2485
2521
  });
2486
2522
  const titleNode = (_a = slots.title) != null ? _a : title;
2487
2523
  const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
2488
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default(TextCenterCtaInBottom_module_default.textCenterCta, className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: TextCenterCtaInBottom_module_default.container, children: [
2524
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(TextCenterCtaInBottom_module_default.textCenterCta, className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: TextCenterCtaInBottom_module_default.container, children: [
2489
2525
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: TextCenterCtaInBottom_module_default.content, children: [
2490
2526
  titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: TextCenterCtaInBottom_module_default.title, children: titleNode }),
2491
2527
  subtitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: TextCenterCtaInBottom_module_default.subtitle, children: subtitleNode })
@@ -2493,7 +2529,7 @@ var TextCenterCtaInBottom = ({
2493
2529
  !!(ctas == null ? void 0 : ctas.length) && /* @__PURE__ */ jsxRuntime.jsx(
2494
2530
  "div",
2495
2531
  {
2496
- className: clsx22__default.default(
2532
+ className: clsx23__default.default(
2497
2533
  TextCenterCtaInBottom_module_default.ctaWrapper,
2498
2534
  ctas.every((cta) => !cta.label && cta.logo) && TextCenterCtaInBottom_module_default.iconOnly
2499
2535
  ),
@@ -2536,7 +2572,9 @@ var ResourcesGridList_module_default = {
2536
2572
  searchCollapse: "ResourcesGridList_module_searchCollapse",
2537
2573
  searchIconInner: "ResourcesGridList_module_searchIconInner",
2538
2574
  searchInput: "ResourcesGridList_module_searchInput",
2575
+ searchClear: "ResourcesGridList_module_searchClear",
2539
2576
  dropdownPanel: "ResourcesGridList_module_dropdownPanel",
2577
+ searchPanel: "ResourcesGridList_module_searchPanel",
2540
2578
  dropdownOption: "ResourcesGridList_module_dropdownOption",
2541
2579
  selected: "ResourcesGridList_module_selected",
2542
2580
  content: "ResourcesGridList_module_content",
@@ -2553,6 +2591,7 @@ var ResourcesGridList_module_default = {
2553
2591
  cardsArea: "ResourcesGridList_module_cardsArea",
2554
2592
  grid: "ResourcesGridList_module_grid",
2555
2593
  list: "ResourcesGridList_module_list",
2594
+ cardLink: "ResourcesGridList_module_cardLink",
2556
2595
  cardGrid: "ResourcesGridList_module_cardGrid",
2557
2596
  cardBody: "ResourcesGridList_module_cardBody",
2558
2597
  cardIconTitle: "ResourcesGridList_module_cardIconTitle",
@@ -2586,23 +2625,31 @@ function FilterBar({
2586
2625
  filterValue,
2587
2626
  onFilterChange,
2588
2627
  sortValue,
2589
- onSortChange
2628
+ onSortChange,
2629
+ searchValue,
2630
+ onSearchChange
2590
2631
  }) {
2591
2632
  const [openDropdown, setOpenDropdown] = React62.useState(null);
2592
2633
  const [searchState, setSearchState] = React62.useState("closed");
2593
- const [searchQuery, setSearchQuery] = React62.useState("");
2594
2634
  const filterRef = React62.useRef(null);
2595
2635
  const sortRef = React62.useRef(null);
2636
+ const searchRef = React62.useRef(null);
2596
2637
  const searchInputRef = React62.useRef(null);
2597
2638
  const closeSearch = () => {
2598
2639
  setSearchState("closing");
2599
- setSearchQuery("");
2640
+ onSearchChange("");
2641
+ };
2642
+ const clearSearch = () => {
2643
+ var _a;
2644
+ onSearchChange("");
2645
+ (_a = searchInputRef.current) == null ? void 0 : _a.focus();
2600
2646
  };
2601
2647
  React62.useEffect(() => {
2602
2648
  const handleMouseDown = (e) => {
2603
- var _a, _b;
2649
+ var _a, _b, _c;
2604
2650
  const target = e.target;
2605
- if (((_a = filterRef.current) == null ? void 0 : _a.contains(target)) || ((_b = sortRef.current) == null ? void 0 : _b.contains(target))) return;
2651
+ if (((_a = filterRef.current) == null ? void 0 : _a.contains(target)) || ((_b = sortRef.current) == null ? void 0 : _b.contains(target)) || ((_c = searchRef.current) == null ? void 0 : _c.contains(target)))
2652
+ return;
2606
2653
  setOpenDropdown(null);
2607
2654
  };
2608
2655
  document.addEventListener("mousedown", handleMouseDown);
@@ -2612,13 +2659,17 @@ function FilterBar({
2612
2659
  var _a;
2613
2660
  if (searchState === "open") (_a = searchInputRef.current) == null ? void 0 : _a.focus();
2614
2661
  }, [searchState]);
2662
+ React62.useEffect(() => {
2663
+ var _a;
2664
+ if (openDropdown === "search") (_a = searchInputRef.current) == null ? void 0 : _a.focus();
2665
+ }, [openDropdown]);
2615
2666
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.filterBar, children: [
2616
2667
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.viewToggle, children: [
2617
2668
  /* @__PURE__ */ jsxRuntime.jsxs(
2618
2669
  "button",
2619
2670
  {
2620
2671
  type: "button",
2621
- className: clsx22__default.default(ResourcesGridList_module_default.chip, view === "grid" && ResourcesGridList_module_default.active),
2672
+ className: clsx23__default.default(ResourcesGridList_module_default.chip, view === "grid" && ResourcesGridList_module_default.active),
2622
2673
  onClick: () => onViewChange("grid"),
2623
2674
  "aria-pressed": view === "grid",
2624
2675
  children: [
@@ -2631,7 +2682,7 @@ function FilterBar({
2631
2682
  "button",
2632
2683
  {
2633
2684
  type: "button",
2634
- className: clsx22__default.default(ResourcesGridList_module_default.chip, view === "list" && ResourcesGridList_module_default.active),
2685
+ className: clsx23__default.default(ResourcesGridList_module_default.chip, view === "list" && ResourcesGridList_module_default.active),
2635
2686
  onClick: () => onViewChange("list"),
2636
2687
  "aria-pressed": view === "list",
2637
2688
  children: [
@@ -2647,7 +2698,7 @@ function FilterBar({
2647
2698
  "button",
2648
2699
  {
2649
2700
  type: "button",
2650
- className: clsx22__default.default(ResourcesGridList_module_default.chip, filterValue !== "all" && ResourcesGridList_module_default.active),
2701
+ className: clsx23__default.default(ResourcesGridList_module_default.chip, filterValue !== "all" && ResourcesGridList_module_default.active),
2651
2702
  onClick: () => setOpenDropdown(openDropdown === "filter" ? null : "filter"),
2652
2703
  "aria-expanded": openDropdown === "filter",
2653
2704
  children: [
@@ -2662,7 +2713,7 @@ function FilterBar({
2662
2713
  type: "button",
2663
2714
  role: "option",
2664
2715
  "aria-selected": filterValue === opt.value,
2665
- className: clsx22__default.default(
2716
+ className: clsx23__default.default(
2666
2717
  ResourcesGridList_module_default.dropdownOption,
2667
2718
  filterValue === opt.value && ResourcesGridList_module_default.selected
2668
2719
  ),
@@ -2698,7 +2749,7 @@ function FilterBar({
2698
2749
  type: "button",
2699
2750
  role: "option",
2700
2751
  "aria-selected": sortValue === opt.value,
2701
- className: clsx22__default.default(
2752
+ className: clsx23__default.default(
2702
2753
  ResourcesGridList_module_default.dropdownOption,
2703
2754
  sortValue === opt.value && ResourcesGridList_module_default.selected
2704
2755
  ),
@@ -2711,17 +2762,21 @@ function FilterBar({
2711
2762
  opt.value
2712
2763
  )) })
2713
2764
  ] }),
2714
- searchState !== "closed" ? /* @__PURE__ */ jsxRuntime.jsxs(
2715
- "div",
2716
- {
2717
- className: clsx22__default.default(
2718
- ResourcesGridList_module_default.searchExpanded,
2719
- searchState === "closing" && ResourcesGridList_module_default.searchCollapsing
2765
+ isMobile ? (
2766
+ /* Mobile — popup panel, mirroring the Filter/Sort dropdowns */
2767
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.dropdownWrapper, ref: searchRef, children: [
2768
+ /* @__PURE__ */ jsxRuntime.jsx(
2769
+ "button",
2770
+ {
2771
+ type: "button",
2772
+ className: clsx23__default.default(ResourcesGridList_module_default.chip, searchValue !== "" && ResourcesGridList_module_default.active),
2773
+ onClick: () => setOpenDropdown(openDropdown === "search" ? null : "search"),
2774
+ "aria-expanded": openDropdown === "search",
2775
+ "aria-label": "Search",
2776
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "search", size: 20, "aria-hidden": "true" })
2777
+ }
2720
2778
  ),
2721
- onAnimationEnd: () => {
2722
- if (searchState === "closing") setSearchState("closed");
2723
- },
2724
- children: [
2779
+ openDropdown === "search" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.searchPanel, children: [
2725
2780
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.searchIconInner, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "search", size: 20, "aria-hidden": "true" }) }),
2726
2781
  /* @__PURE__ */ jsxRuntime.jsx(
2727
2782
  "input",
@@ -2730,24 +2785,90 @@ function FilterBar({
2730
2785
  type: "text",
2731
2786
  className: ResourcesGridList_module_default.searchInput,
2732
2787
  placeholder: "Search\u2026",
2733
- value: searchQuery,
2734
- onChange: (e) => setSearchQuery(e.target.value),
2788
+ value: searchValue,
2789
+ onChange: (e) => onSearchChange(e.target.value),
2735
2790
  onKeyDown: (e) => {
2736
- if (e.key === "Escape") closeSearch();
2737
- },
2738
- onBlur: closeSearch
2791
+ if (e.key === "Escape") {
2792
+ if (searchValue) clearSearch();
2793
+ else setOpenDropdown(null);
2794
+ }
2795
+ }
2796
+ }
2797
+ ),
2798
+ searchValue && /* @__PURE__ */ jsxRuntime.jsx(
2799
+ "button",
2800
+ {
2801
+ type: "button",
2802
+ className: ResourcesGridList_module_default.searchClear,
2803
+ "aria-label": "Clear search",
2804
+ onClick: clearSearch,
2805
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "xBlack", size: 16, "aria-hidden": "true" })
2739
2806
  }
2740
2807
  )
2741
- ]
2742
- }
2808
+ ] })
2809
+ ] })
2810
+ ) : searchState !== "closed" ? (
2811
+ /* Desktop — animated inline expand */
2812
+ /* @__PURE__ */ jsxRuntime.jsxs(
2813
+ "div",
2814
+ {
2815
+ className: clsx23__default.default(
2816
+ ResourcesGridList_module_default.searchExpanded,
2817
+ searchState === "closing" && ResourcesGridList_module_default.searchCollapsing
2818
+ ),
2819
+ onAnimationEnd: () => {
2820
+ if (searchState === "closing") setSearchState("closed");
2821
+ },
2822
+ children: [
2823
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.searchIconInner, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "search", size: 20, "aria-hidden": "true" }) }),
2824
+ /* @__PURE__ */ jsxRuntime.jsx(
2825
+ "input",
2826
+ {
2827
+ ref: searchInputRef,
2828
+ type: "text",
2829
+ className: ResourcesGridList_module_default.searchInput,
2830
+ placeholder: "Search\u2026",
2831
+ value: searchValue,
2832
+ onChange: (e) => onSearchChange(e.target.value),
2833
+ onKeyDown: (e) => {
2834
+ if (e.key === "Escape") {
2835
+ if (searchValue) clearSearch();
2836
+ else closeSearch();
2837
+ }
2838
+ },
2839
+ onBlur: () => {
2840
+ if (!searchValue) closeSearch();
2841
+ }
2842
+ }
2843
+ ),
2844
+ searchValue && /* @__PURE__ */ jsxRuntime.jsx(
2845
+ "button",
2846
+ {
2847
+ type: "button",
2848
+ className: ResourcesGridList_module_default.searchClear,
2849
+ "aria-label": "Clear search",
2850
+ onMouseDown: (e) => e.preventDefault(),
2851
+ onClick: clearSearch,
2852
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "xBlack", size: 16, "aria-hidden": "true" })
2853
+ }
2854
+ )
2855
+ ]
2856
+ }
2857
+ )
2743
2858
  ) : /* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", className: ResourcesGridList_module_default.chip, onClick: () => setSearchState("open"), children: [
2744
2859
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "search", size: 20, "aria-hidden": "true" }),
2745
- !isMobile && /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.chipLabel, children: "Search" })
2860
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.chipLabel, children: "Search" })
2746
2861
  ] })
2747
2862
  ] })
2748
2863
  ] });
2749
2864
  }
2750
- var Sidebar = ({ categories, isMobile, onToggle }) => {
2865
+ var Sidebar = ({
2866
+ categories,
2867
+ isMobile,
2868
+ onToggle,
2869
+ selectedIndex,
2870
+ onSelect
2871
+ }) => {
2751
2872
  if (isMobile) {
2752
2873
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: ResourcesGridList_module_default.sidebarMobile, children: /* @__PURE__ */ jsxRuntime.jsx(
2753
2874
  "button",
@@ -2765,7 +2886,17 @@ var Sidebar = ({ categories, isMobile, onToggle }) => {
2765
2886
  return /* @__PURE__ */ jsxRuntime.jsxs(
2766
2887
  "li",
2767
2888
  {
2768
- className: clsx22__default.default(ResourcesGridList_module_default.sidebarItem, cat.active && ResourcesGridList_module_default.active),
2889
+ className: clsx23__default.default(ResourcesGridList_module_default.sidebarItem, i === selectedIndex && ResourcesGridList_module_default.active),
2890
+ role: "button",
2891
+ tabIndex: 0,
2892
+ "aria-pressed": i === selectedIndex,
2893
+ onClick: () => onSelect(i),
2894
+ onKeyDown: (e) => {
2895
+ if (e.key === "Enter" || e.key === " ") {
2896
+ e.preventDefault();
2897
+ onSelect(i);
2898
+ }
2899
+ },
2769
2900
  children: [
2770
2901
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: cat.label }),
2771
2902
  cat.hasNotification && /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.notificationDot, "aria-label": "New" })
@@ -2775,14 +2906,19 @@ var Sidebar = ({ categories, isMobile, onToggle }) => {
2775
2906
  );
2776
2907
  }) }) });
2777
2908
  };
2778
- var ResourceIcon = ({ type }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: ResourcesGridList_module_default.iconWrapper, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: type === "pdf" ? "pdf" : "externalLink", size: 32, "aria-hidden": "true" }) });
2909
+ var ResourceIcon = ({ image, type }) => {
2910
+ if (!image) return null;
2911
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: ResourcesGridList_module_default.iconWrapper, children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: image, alt: type != null ? type : "", width: 32, height: 32 }) });
2912
+ };
2779
2913
  var ResourceCardItem = ({ item, view }) => {
2914
+ const hasHref = Boolean(item.href);
2915
+ const linkWrapper = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx("a", { href: item.href, className: ResourcesGridList_module_default.cardLink, target: "_blank", rel: "noopener noreferrer", children });
2780
2916
  if (view === "grid") {
2781
2917
  return /* @__PURE__ */ jsxRuntime.jsx("article", { className: ResourcesGridList_module_default.cardGrid, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.cardBody, children: [
2782
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.cardIconTitle, children: [
2783
- /* @__PURE__ */ jsxRuntime.jsx(ResourceIcon, { type: item.type }),
2918
+ /* @__PURE__ */ jsxRuntime.jsx(ConditionalWrapper, { condition: hasHref, wrapper: linkWrapper, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.cardIconTitle, children: [
2919
+ /* @__PURE__ */ jsxRuntime.jsx(ResourceIcon, { image: item.image, type: item.type }),
2784
2920
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.cardTitle, children: item.title })
2785
- ] }),
2921
+ ] }) }),
2786
2922
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.cardMeta, children: [
2787
2923
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.cardDate, children: item.date }),
2788
2924
  item.hasNotification && /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.notificationDot, "aria-label": "New" })
@@ -2791,22 +2927,59 @@ var ResourceCardItem = ({ item, view }) => {
2791
2927
  }
2792
2928
  return /* @__PURE__ */ jsxRuntime.jsxs("article", { className: ResourcesGridList_module_default.cardList, children: [
2793
2929
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.cardListLeft, children: [
2794
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.cardDate, children: item.date }),
2795
- item.hasNotification && /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.notificationDot, "aria-label": "New" })
2930
+ item.hasNotification && /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.notificationDot, "aria-label": "New" }),
2931
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.cardDate, children: item.date })
2796
2932
  ] }),
2797
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.cardListRight, children: [
2798
- /* @__PURE__ */ jsxRuntime.jsx(ResourceIcon, { type: item.type }),
2933
+ /* @__PURE__ */ jsxRuntime.jsx(ConditionalWrapper, { condition: hasHref, wrapper: linkWrapper, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.cardListRight, children: [
2934
+ /* @__PURE__ */ jsxRuntime.jsx(ResourceIcon, { image: item.image, type: item.type }),
2799
2935
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.cardTitle, children: item.title })
2800
- ] })
2936
+ ] }) })
2801
2937
  ] });
2802
2938
  };
2803
- var Pagination3 = () => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.pagination, "aria-label": "Pagination", children: [
2804
- /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: ResourcesGridList_module_default.pageArrow, "aria-label": "Previous page", children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "chevronLeftBlack", size: 32, "aria-hidden": "true" }) }),
2805
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.pageDotActive, "aria-current": "page" }),
2806
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.pageDot }),
2807
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.pageDot }),
2808
- /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: ResourcesGridList_module_default.pageArrow, "aria-label": "Next page", children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "chevronRightBlack", size: 32, "aria-hidden": "true" }) })
2809
- ] });
2939
+ var Pagination3 = ({ currentPage, totalPages, onPageChange }) => {
2940
+ const isFirst = currentPage <= 1;
2941
+ const isLast = currentPage >= totalPages;
2942
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.pagination, "aria-label": "Pagination", children: [
2943
+ /* @__PURE__ */ jsxRuntime.jsx(
2944
+ "button",
2945
+ {
2946
+ type: "button",
2947
+ className: ResourcesGridList_module_default.pageArrow,
2948
+ "aria-label": "Previous page",
2949
+ disabled: isFirst,
2950
+ onClick: () => onPageChange(currentPage - 1),
2951
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "chevronLeftBlack", size: 32, "aria-hidden": "true" })
2952
+ }
2953
+ ),
2954
+ Array.from({ length: totalPages }, (_, i) => {
2955
+ const page = i + 1;
2956
+ const isActive = page === currentPage;
2957
+ return /* @__PURE__ */ jsxRuntime.jsx(
2958
+ "button",
2959
+ {
2960
+ type: "button",
2961
+ className: clsx23__default.default(isActive ? ResourcesGridList_module_default.pageDotActive : ResourcesGridList_module_default.pageDot),
2962
+ "aria-label": `Page ${page}`,
2963
+ "aria-current": isActive ? "page" : void 0,
2964
+ onClick: () => onPageChange(page)
2965
+ },
2966
+ page
2967
+ );
2968
+ }),
2969
+ /* @__PURE__ */ jsxRuntime.jsx(
2970
+ "button",
2971
+ {
2972
+ type: "button",
2973
+ className: ResourcesGridList_module_default.pageArrow,
2974
+ "aria-label": "Next page",
2975
+ disabled: isLast,
2976
+ onClick: () => onPageChange(currentPage + 1),
2977
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "chevronRightBlack", size: 32, "aria-hidden": "true" })
2978
+ }
2979
+ )
2980
+ ] });
2981
+ };
2982
+ var ITEMS_PER_PAGE = 12;
2810
2983
  var ResourcesGridList = ({
2811
2984
  className,
2812
2985
  items = [],
@@ -2815,20 +2988,52 @@ var ResourcesGridList = ({
2815
2988
  defaultFilter = "all",
2816
2989
  defaultSort = "latest"
2817
2990
  }) => {
2991
+ var _a;
2818
2992
  const [view, setView] = React62.useState(defaultView);
2819
2993
  const [isSidebarOpen, setIsSidebarOpen] = React62.useState(false);
2820
2994
  const [filterValue, setFilterValue] = React62.useState(defaultFilter);
2821
2995
  const [sortValue, setSortValue] = React62.useState(defaultSort);
2996
+ const [searchQuery, setSearchQuery] = React62.useState("");
2997
+ const [currentPage, setCurrentPage] = React62.useState(1);
2998
+ const [selectedCategory, setSelectedCategory] = React62.useState(() => {
2999
+ const activeIndex = categories.findIndex((cat) => cat.active);
3000
+ return activeIndex === -1 ? 0 : activeIndex;
3001
+ });
2822
3002
  const { is } = useViewPort_default();
2823
3003
  const isMobile = is("tablet", "below");
2824
- const displayedItems = [...items].filter((item) => filterValue === "all" || item.type === filterValue).sort((a, b) => {
3004
+ const selectedValue = (_a = categories[selectedCategory]) == null ? void 0 : _a.value;
3005
+ const handleSelectCategory = (index) => {
3006
+ setSelectedCategory(index);
3007
+ setCurrentPage(1);
3008
+ if (isMobile) setIsSidebarOpen(false);
3009
+ };
3010
+ const handleFilterChange = (value) => {
3011
+ setFilterValue(value);
3012
+ setCurrentPage(1);
3013
+ };
3014
+ const handleSortChange = (value) => {
3015
+ setSortValue(value);
3016
+ setCurrentPage(1);
3017
+ };
3018
+ const handleSearchChange = (value) => {
3019
+ setSearchQuery(value);
3020
+ setCurrentPage(1);
3021
+ };
3022
+ const displayedItems = [...items].filter((item) => filterValue === "all" || item.type === filterValue).filter((item) => selectedValue == null || item.category === selectedValue).filter((item) => {
3023
+ const q = searchQuery.trim().toLowerCase();
3024
+ return q === "" || item.title.toLowerCase().includes(q);
3025
+ }).sort((a, b) => {
2825
3026
  if (sortValue === "latest") return new Date(b.date).getTime() - new Date(a.date).getTime();
2826
3027
  if (sortValue === "oldest") return new Date(a.date).getTime() - new Date(b.date).getTime();
2827
3028
  if (sortValue === "az") return a.title.localeCompare(b.title);
2828
3029
  if (sortValue === "za") return b.title.localeCompare(a.title);
2829
3030
  return 0;
2830
3031
  });
2831
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx22__default.default(ResourcesGridList_module_default.widget, className), children: [
3032
+ const totalPages = Math.max(1, Math.ceil(displayedItems.length / ITEMS_PER_PAGE));
3033
+ const safeCurrentPage = Math.min(currentPage, totalPages);
3034
+ const pageStart = (safeCurrentPage - 1) * ITEMS_PER_PAGE;
3035
+ const paginatedItems = displayedItems.slice(pageStart, pageStart + ITEMS_PER_PAGE);
3036
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx23__default.default(ResourcesGridList_module_default.widget, className), children: [
2832
3037
  /* @__PURE__ */ jsxRuntime.jsx(
2833
3038
  FilterBar,
2834
3039
  {
@@ -2836,33 +3041,48 @@ var ResourcesGridList = ({
2836
3041
  onViewChange: setView,
2837
3042
  isMobile,
2838
3043
  filterValue,
2839
- onFilterChange: setFilterValue,
3044
+ onFilterChange: handleFilterChange,
2840
3045
  sortValue,
2841
- onSortChange: setSortValue
3046
+ onSortChange: handleSortChange,
3047
+ searchValue: searchQuery,
3048
+ onSearchChange: handleSearchChange
2842
3049
  }
2843
3050
  ),
2844
3051
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.content, children: [
2845
3052
  isMobile && /* @__PURE__ */ jsxRuntime.jsxs(
2846
3053
  "div",
2847
3054
  {
2848
- className: clsx22__default.default(
3055
+ className: clsx23__default.default(
2849
3056
  ResourcesGridList_module_default.mobileSidebarOverlay,
2850
3057
  isSidebarOpen && ResourcesGridList_module_default.mobileSidebarOverlayOpen
2851
3058
  ),
2852
3059
  "aria-hidden": !isSidebarOpen,
2853
3060
  children: [
2854
3061
  /* @__PURE__ */ jsxRuntime.jsx("nav", { className: ResourcesGridList_module_default.mobileCategoriesPanel, "aria-label": "Resource categories", children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: ResourcesGridList_module_default.mobileCategoriesList, children: categories.map((cat, i) => {
2855
- var _a;
3062
+ var _a2;
2856
3063
  return /* @__PURE__ */ jsxRuntime.jsxs(
2857
3064
  "li",
2858
3065
  {
2859
- className: clsx22__default.default(ResourcesGridList_module_default.mobileSidebarItem, cat.active && ResourcesGridList_module_default.active),
3066
+ className: clsx23__default.default(
3067
+ ResourcesGridList_module_default.mobileSidebarItem,
3068
+ i === selectedCategory && ResourcesGridList_module_default.active
3069
+ ),
3070
+ role: "button",
3071
+ tabIndex: 0,
3072
+ "aria-pressed": i === selectedCategory,
3073
+ onClick: () => handleSelectCategory(i),
3074
+ onKeyDown: (e) => {
3075
+ if (e.key === "Enter" || e.key === " ") {
3076
+ e.preventDefault();
3077
+ handleSelectCategory(i);
3078
+ }
3079
+ },
2860
3080
  children: [
2861
3081
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: cat.label }),
2862
3082
  cat.hasNotification && /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.notificationDot, "aria-label": "New" })
2863
3083
  ]
2864
3084
  },
2865
- (_a = cat.label) != null ? _a : i
3085
+ (_a2 = cat.label) != null ? _a2 : i
2866
3086
  );
2867
3087
  }) }) }),
2868
3088
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: ResourcesGridList_module_default.mobileSidebarCloseColumn, children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -2883,15 +3103,24 @@ var ResourcesGridList = ({
2883
3103
  {
2884
3104
  categories,
2885
3105
  isMobile,
2886
- onToggle: () => setIsSidebarOpen(true)
3106
+ onToggle: () => setIsSidebarOpen(true),
3107
+ selectedIndex: selectedCategory,
3108
+ onSelect: handleSelectCategory
2887
3109
  }
2888
3110
  ),
2889
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx22__default.default(ResourcesGridList_module_default.cardsArea, ResourcesGridList_module_default[view]), children: displayedItems.map((item, i) => {
2890
- var _a;
2891
- return /* @__PURE__ */ jsxRuntime.jsx(ResourceCardItem, { item, view }, (_a = item.title) != null ? _a : i);
3111
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(ResourcesGridList_module_default.cardsArea, ResourcesGridList_module_default[view]), children: paginatedItems.map((item, i) => {
3112
+ var _a2;
3113
+ return /* @__PURE__ */ jsxRuntime.jsx(ResourceCardItem, { item, view }, (_a2 = item.title) != null ? _a2 : i);
2892
3114
  }) })
2893
3115
  ] }),
2894
- /* @__PURE__ */ jsxRuntime.jsx(Pagination3, {})
3116
+ totalPages > 1 && /* @__PURE__ */ jsxRuntime.jsx(
3117
+ Pagination3,
3118
+ {
3119
+ currentPage: safeCurrentPage,
3120
+ totalPages,
3121
+ onPageChange: setCurrentPage
3122
+ }
3123
+ )
2895
3124
  ] });
2896
3125
  };
2897
3126
  function useIntersectionObserver({
@@ -2939,6 +3168,7 @@ exports.HeroBannerCarousel = HeroBannerCarousel;
2939
3168
  exports.Icon = Icon;
2940
3169
  exports.InfoCard = InfoCard2;
2941
3170
  exports.InternalBrandsTab = InternalBrandsTab2;
3171
+ exports.LogoBar = LogoBar;
2942
3172
  exports.MiniBanner = MiniBanner2;
2943
3173
  exports.MiniSectionCta = MiniSectionCta2;
2944
3174
  exports.Pagination = Pagination;