@digital-b2c/coreui-kit 0.14.6 → 0.15.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.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import clsx43 from 'clsx';
1
+ import clsx47 from 'clsx';
2
2
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
3
- import React69, { forwardRef, useId, useRef, useState, useCallback, useMemo, useEffect, Children, isValidElement, Fragment as Fragment$1 } from 'react';
3
+ import React70, { forwardRef, useId, useRef, useState, useCallback, useMemo, useEffect, Children, isValidElement, Fragment as Fragment$1 } from 'react';
4
4
  import gsap$1, { gsap } from 'gsap';
5
5
  import { useGSAP } from '@gsap/react';
6
6
  import { ScrollTrigger } from 'gsap/ScrollTrigger';
@@ -59,7 +59,7 @@ var Picture = (_a) => {
59
59
  __spreadValues({
60
60
  src: desktop.src,
61
61
  alt: desktop.alt,
62
- className: clsx43(className, Picture_module_default["image-desktop"])
62
+ className: clsx47(className, Picture_module_default["image-desktop"])
63
63
  }, rest)
64
64
  ),
65
65
  /* @__PURE__ */ jsx(
@@ -67,7 +67,7 @@ var Picture = (_a) => {
67
67
  __spreadValues({
68
68
  src: (_b2 = mobile == null ? void 0 : mobile.src) != null ? _b2 : desktop.src,
69
69
  alt: (_c = mobile == null ? void 0 : mobile.alt) != null ? _c : desktop.alt,
70
- className: clsx43(className, Picture_module_default["image-mobile"])
70
+ className: clsx47(className, Picture_module_default["image-mobile"])
71
71
  }, rest)
72
72
  )
73
73
  ] });
@@ -283,6 +283,21 @@ var SvgIconXWhite = (props) => /* @__PURE__ */ jsxs("svg", __spreadProps(__sprea
283
283
  /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("clipPath", { id: "clip0_942_1878", children: /* @__PURE__ */ jsx("rect", { width: 24, height: 24, fill: "white" }) }) })
284
284
  ] }));
285
285
  var icon_x_white_default = SvgIconXWhite;
286
+ var SvgIconUser = (props) => /* @__PURE__ */ jsxs("svg", __spreadProps(__spreadValues({ xmlns: "http://www.w3.org/2000/svg", width: 24, height: 24, viewBox: "0 0 24 24", fill: "none" }, props), { children: [
287
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("clipPath", { id: "avatar-clip", children: /* @__PURE__ */ jsx("rect", { x: 0.5, y: 0.5, width: 23, height: 23, rx: 11.5 }) }) }),
288
+ /* @__PURE__ */ jsxs("g", { id: "user 1", children: [
289
+ /* @__PURE__ */ jsx("rect", { x: 0.5, y: 0.5, width: 23, height: 23, rx: 11.5, fill: "#EEEEEE" }),
290
+ /* @__PURE__ */ jsxs("g", { clipPath: "url(#avatar-clip)", children: [
291
+ /* @__PURE__ */ jsxs("g", { id: "Vector", children: [
292
+ /* @__PURE__ */ jsx("path", { d: "M21 23V20.6667C21 19.429 20.5259 18.242 19.682 17.3668C18.8381 16.4917 17.6935 16 16.5 16H7.5C6.30653 16 5.16193 16.4917 4.31802 17.3668C3.47411 18.242 3 19.429 3 20.6667V23", fill: "#B5B5B5" }),
293
+ /* @__PURE__ */ jsx("path", { d: "M21 23V20.6667C21 19.429 20.5259 18.242 19.682 17.3668C18.8381 16.4917 17.6935 16 16.5 16H7.5C6.30653 16 5.16193 16.4917 4.31802 17.3668C3.47411 18.242 3 19.429 3 20.6667V23", stroke: "#A8A8A8", strokeLinecap: "round", strokeLinejoin: "round" })
294
+ ] }),
295
+ /* @__PURE__ */ jsx("path", { id: "Vector_2", d: "M12 13C14.2091 13 16 11.2091 16 9C16 6.79086 14.2091 5 12 5C9.79086 5 8 6.79086 8 9C8 11.2091 9.79086 13 12 13Z", fill: "#B5B5B5", stroke: "#A8A8A8", strokeLinecap: "round", strokeLinejoin: "round" })
296
+ ] }),
297
+ /* @__PURE__ */ jsx("rect", { x: 0.5, y: 0.5, width: 23, height: 23, rx: 11.5, stroke: "#A8A8A8" })
298
+ ] })
299
+ ] }));
300
+ var icon_user_default = SvgIconUser;
286
301
  var SvgIconFilter = (props) => /* @__PURE__ */ jsx("svg", __spreadProps(__spreadValues({ width: 24, height: 24, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, props), { children: /* @__PURE__ */ jsx("path", { d: "M10.9991 20C10.7158 20 10.4783 19.9042 10.2866 19.7125C10.0949 19.5208 9.9991 19.2833 9.9991 19V13L4.1991 5.6C3.9491 5.26667 3.9116 4.91667 4.0866 4.55C4.2616 4.18333 4.56577 4 4.9991 4H18.9991C19.4324 4 19.7366 4.18333 19.9116 4.55C20.0866 4.91667 20.0491 5.26667 19.7991 5.6L13.9991 13V19C13.9991 19.2833 13.9033 19.5208 13.7116 19.7125C13.5199 19.9042 13.2824 20 12.9991 20H10.9991Z", fill: "#080808" }) }));
287
302
  var icon_filter_default = SvgIconFilter;
288
303
  var SvgIconInternalFilter = (props) => /* @__PURE__ */ jsx("svg", __spreadProps(__spreadValues({ width: 24, height: 24, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, props), { children: /* @__PURE__ */ jsx("path", { d: "M3 18V16H9V18H3ZM3 13V11H15V13H3ZM3 8V6H21V8H3Z", fill: "#080808" }) }));
@@ -385,9 +400,10 @@ var svgs = {
385
400
  right: icon_right_default,
386
401
  tiltedRight: icon_tilted_right_default,
387
402
  xBlack: icon_x_black_default,
388
- xWhite: icon_x_white_default
403
+ xWhite: icon_x_white_default,
404
+ user: icon_user_default
389
405
  };
390
- var Icon = React69.memo(
406
+ var Icon = React70.memo(
391
407
  (_a) => {
392
408
  var _b = _a, { type, size } = _b, props = __objRest(_b, ["type", "size"]);
393
409
  if (type) {
@@ -445,7 +461,7 @@ var Button = (_a) => {
445
461
  ]);
446
462
  const isLink = !!href;
447
463
  const props = __spreadValues(__spreadValues({
448
- className: clsx43(
464
+ className: clsx47(
449
465
  Button_module_default.button,
450
466
  variant ? Button_module_default[variant] : null,
451
467
  { [Button_module_default.fullWidth]: !!fullWidth },
@@ -677,7 +693,7 @@ var BrandsStrip = ({
677
693
  "div",
678
694
  {
679
695
  ref: containerRef,
680
- className: clsx43(
696
+ className: clsx47(
681
697
  BrandsStrip_module_default.brandsStrip,
682
698
  BrandsStrip_module_default[variant],
683
699
  { [BrandsStrip_module_default.small]: size === "small" },
@@ -686,13 +702,13 @@ var BrandsStrip = ({
686
702
  onMouseEnter: handleMouseEnter,
687
703
  onMouseLeave: handleMouseLeave,
688
704
  children: [
689
- /* @__PURE__ */ jsxs("div", { className: clsx43(BrandsStrip_module_default.container, { [BrandsStrip_module_default.blurred]: show && logos.length > 1 }), children: [
690
- title && logos.length === 1 && /* @__PURE__ */ jsx("h2", { className: clsx43("body", BrandsStrip_module_default.title), children: title }),
705
+ /* @__PURE__ */ jsxs("div", { className: clsx47(BrandsStrip_module_default.container, { [BrandsStrip_module_default.blurred]: show && logos.length > 1 }), children: [
706
+ title && logos.length === 1 && /* @__PURE__ */ jsx("h2", { className: clsx47("body", BrandsStrip_module_default.title), children: title }),
691
707
  logos.length > 0 && /* @__PURE__ */ jsx(
692
708
  "div",
693
709
  {
694
710
  ref: marqueeRef,
695
- className: clsx43(BrandsStrip_module_default.logos, { [BrandsStrip_module_default.marqueeGSAP]: shouldAnimate }),
711
+ className: clsx47(BrandsStrip_module_default.logos, { [BrandsStrip_module_default.marqueeGSAP]: shouldAnimate }),
696
712
  children: duplicatedLogos.map((logo, index) => /* @__PURE__ */ jsx("div", { className: BrandsStrip_module_default.logoWrapper, children: /* @__PURE__ */ jsx(Picture, __spreadValues({ className: BrandsStrip_module_default.logo }, logo)) }, `${logo.alt}-${index}`))
697
713
  }
698
714
  )
@@ -739,7 +755,7 @@ var Container_module_default = {
739
755
  var Container = forwardRef(
740
756
  (_a, ref) => {
741
757
  var _b = _a, { children, className } = _b, props = __objRest(_b, ["children", "className"]);
742
- return /* @__PURE__ */ jsx("div", __spreadProps(__spreadValues({ ref, className: clsx43(Container_module_default.container, className) }, props), { children }));
758
+ return /* @__PURE__ */ jsx("div", __spreadProps(__spreadValues({ ref, className: clsx47(Container_module_default.container, className) }, props), { children }));
743
759
  }
744
760
  );
745
761
  Container.displayName = "Container";
@@ -780,14 +796,14 @@ var Card = ({
780
796
  ConditionalWrapper,
781
797
  __spreadProps(__spreadValues({
782
798
  ref,
783
- className: clsx43(Card_module_default.card, Card_module_default[variant], className),
799
+ className: clsx47(Card_module_default.card, Card_module_default[variant], className),
784
800
  wrapper: Anchor,
785
801
  fallback: "div",
786
802
  condition: isLink
787
803
  }, href ? { href, isExternal } : {}), {
788
804
  children: [
789
805
  /* @__PURE__ */ jsxs("div", { className: Card_module_default.logoContainer, children: [
790
- (logo == null ? void 0 : logo.src) ? /* @__PURE__ */ jsx(Picture, __spreadValues({ className: clsx43(Card_module_default.logo, isLink && Card_module_default.hideLogo) }, logo)) : icon && /* @__PURE__ */ jsx(Icon, { type: icon, className: clsx43(Card_module_default.logo, isLink && Card_module_default.hideLogo) }),
806
+ (logo == null ? void 0 : logo.src) ? /* @__PURE__ */ jsx(Picture, __spreadValues({ className: clsx47(Card_module_default.logo, isLink && Card_module_default.hideLogo) }, logo)) : icon && /* @__PURE__ */ jsx(Icon, { type: icon, className: clsx47(Card_module_default.logo, isLink && Card_module_default.hideLogo) }),
791
807
  isLink && /* @__PURE__ */ jsx(Icon, { type: "tiltedRightWhite", className: Card_module_default.logoHover })
792
808
  ] }),
793
809
  /* @__PURE__ */ jsxs("div", { className: Card_module_default.content, children: [
@@ -822,10 +838,10 @@ var CountingCard = ({ className, title, count, image, children }) => {
822
838
  title: CountingCardTitle
823
839
  });
824
840
  const titleNode = (_a = slots.title) != null ? _a : title;
825
- return /* @__PURE__ */ jsxs("div", { className: clsx43(CountingCard_module_default["counting-card"], className), children: [
841
+ return /* @__PURE__ */ jsxs("div", { className: clsx47(CountingCard_module_default["counting-card"], className), children: [
826
842
  /* @__PURE__ */ jsxs("div", { className: CountingCard_module_default.content, children: [
827
843
  titleNode && /* @__PURE__ */ jsx("div", { className: "body", children: titleNode }),
828
- count && /* @__PURE__ */ jsx("div", { className: clsx43(CountingCard_module_default.count, "h1"), children: count })
844
+ count && /* @__PURE__ */ jsx("div", { className: clsx47(CountingCard_module_default.count, "h1"), children: count })
829
845
  ] }),
830
846
  image && /* @__PURE__ */ jsx(Picture, __spreadValues({ className: CountingCard_module_default.logo }, image))
831
847
  ] });
@@ -911,7 +927,7 @@ function FilterBar({
911
927
  "button",
912
928
  {
913
929
  type: "button",
914
- className: clsx43(FilterBar_module_default.chip, view === "grid" && FilterBar_module_default.active),
930
+ className: clsx47(FilterBar_module_default.chip, view === "grid" && FilterBar_module_default.active),
915
931
  onClick: () => onViewChange("grid"),
916
932
  "aria-pressed": view === "grid",
917
933
  children: [
@@ -924,7 +940,7 @@ function FilterBar({
924
940
  "button",
925
941
  {
926
942
  type: "button",
927
- className: clsx43(FilterBar_module_default.chip, view === "list" && FilterBar_module_default.active),
943
+ className: clsx47(FilterBar_module_default.chip, view === "list" && FilterBar_module_default.active),
928
944
  onClick: () => onViewChange("list"),
929
945
  "aria-pressed": view === "list",
930
946
  children: [
@@ -938,7 +954,7 @@ function FilterBar({
938
954
  /* @__PURE__ */ jsxs(
939
955
  "div",
940
956
  {
941
- className: clsx43(
957
+ className: clsx47(
942
958
  FilterBar_module_default.dropdownWrapper,
943
959
  isMobile && searchState === "open" && FilterBar_module_default.filterFaded,
944
960
  isMobile && searchState === "closing" && FilterBar_module_default.filterFading
@@ -949,7 +965,7 @@ function FilterBar({
949
965
  "button",
950
966
  {
951
967
  type: "button",
952
- className: clsx43(FilterBar_module_default.chip, filterValue !== "all" && FilterBar_module_default.active),
968
+ className: clsx47(FilterBar_module_default.chip, filterValue !== "all" && FilterBar_module_default.active),
953
969
  onClick: () => setOpenDropdown(openDropdown === "filter" ? null : "filter"),
954
970
  "aria-expanded": openDropdown === "filter",
955
971
  children: [
@@ -964,7 +980,7 @@ function FilterBar({
964
980
  type: "button",
965
981
  role: "option",
966
982
  "aria-selected": filterValue === opt.value,
967
- className: clsx43(
983
+ className: clsx47(
968
984
  FilterBar_module_default.dropdownOption,
969
985
  filterValue === opt.value && FilterBar_module_default.selected
970
986
  ),
@@ -985,7 +1001,7 @@ function FilterBar({
985
1001
  /* @__PURE__ */ jsxs(
986
1002
  "div",
987
1003
  {
988
- className: clsx43(
1004
+ className: clsx47(
989
1005
  FilterBar_module_default.dropdownWrapper,
990
1006
  isMobile && searchState === "open" && FilterBar_module_default.filterFaded,
991
1007
  isMobile && searchState === "closing" && FilterBar_module_default.filterFading
@@ -1011,7 +1027,7 @@ function FilterBar({
1011
1027
  type: "button",
1012
1028
  role: "option",
1013
1029
  "aria-selected": sortValue === opt.value,
1014
- className: clsx43(
1030
+ className: clsx47(
1015
1031
  FilterBar_module_default.dropdownOption,
1016
1032
  sortValue === opt.value && FilterBar_module_default.selected
1017
1033
  ),
@@ -1029,7 +1045,7 @@ function FilterBar({
1029
1045
  searchState !== "closed" ? /* @__PURE__ */ jsxs(
1030
1046
  "div",
1031
1047
  {
1032
- className: clsx43(
1048
+ className: clsx47(
1033
1049
  FilterBar_module_default.searchExpanded,
1034
1050
  searchState === "closing" && FilterBar_module_default.searchCollapsing
1035
1051
  ),
@@ -1111,9 +1127,9 @@ var InfoCard = ({ className, title, subtitle, icon, badge, children }) => {
1111
1127
  });
1112
1128
  const titleNode = (_a = slots.title) != null ? _a : title;
1113
1129
  const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
1114
- return /* @__PURE__ */ jsxs("div", { className: clsx43(InfoCard_module_default["info-card"], { [InfoCard_module_default.hasIcon]: !!icon }, className), children: [
1130
+ return /* @__PURE__ */ jsxs("div", { className: clsx47(InfoCard_module_default["info-card"], { [InfoCard_module_default.hasIcon]: !!icon }, className), children: [
1115
1131
  /* @__PURE__ */ jsxs("div", { className: InfoCard_module_default.header, children: [
1116
- icon ? /* @__PURE__ */ jsx(Icon, { type: icon }) : badge ? /* @__PURE__ */ jsx("div", { className: clsx43(InfoCard_module_default.badge, "h4"), children: badge }) : null,
1132
+ icon ? /* @__PURE__ */ jsx(Icon, { type: icon }) : badge ? /* @__PURE__ */ jsx("div", { className: clsx47(InfoCard_module_default.badge, "h4"), children: badge }) : null,
1117
1133
  titleNode && /* @__PURE__ */ jsx("div", { className: "h4", children: titleNode })
1118
1134
  ] }),
1119
1135
  subtitleNode && /* @__PURE__ */ jsx("div", { className: "body", children: subtitleNode })
@@ -1210,7 +1226,7 @@ var Pagination = ({
1210
1226
  const prevPage = activePage === 1 ? loop ? totalPages : 1 : activePage - 1;
1211
1227
  const nextPage = activePage === totalPages ? loop ? 1 : totalPages : activePage + 1;
1212
1228
  const pageItems = showEllipsis ? getPaginationRange(totalPages, activePage, siblingCount, boundaryCount) : Array.from({ length: totalPages }, (_, i) => i + 1);
1213
- return /* @__PURE__ */ jsxs("div", { className: clsx43(Pagination_module_default.pagination, className), children: [
1229
+ return /* @__PURE__ */ jsxs("div", { className: clsx47(Pagination_module_default.pagination, className), children: [
1214
1230
  !disableArrows && (renderLink ? renderLink({
1215
1231
  page: prevPage,
1216
1232
  className: Pagination_module_default.prev,
@@ -1231,7 +1247,7 @@ var Pagination = ({
1231
1247
  return /* @__PURE__ */ jsx("span", { className: Pagination_module_default.dots, "aria-hidden": "true", children: "\u2026" }, `dots-${index}`);
1232
1248
  }
1233
1249
  const page = item;
1234
- const pageClassName = clsx43(Pagination_module_default.page, {
1250
+ const pageClassName = clsx47(Pagination_module_default.page, {
1235
1251
  [Pagination_module_default.active]: activePage === page,
1236
1252
  [Pagination_module_default.number]: hasNumber,
1237
1253
  [Pagination_module_default["no-border"]]: hidePagesBorder
@@ -1283,7 +1299,7 @@ var PracticeCard_module_default = {
1283
1299
  };
1284
1300
  var PracticeCard = ({ className, title, cta, image }) => {
1285
1301
  const { url: href, isExternal } = cta != null ? cta : {};
1286
- return /* @__PURE__ */ jsx("div", { className: clsx43(PracticeCard_module_default["practice-card"], className), children: /* @__PURE__ */ jsxs(
1302
+ return /* @__PURE__ */ jsx("div", { className: clsx47(PracticeCard_module_default["practice-card"], className), children: /* @__PURE__ */ jsxs(
1287
1303
  ConditionalWrapper,
1288
1304
  __spreadProps(__spreadValues({
1289
1305
  className: PracticeCard_module_default.wrapper,
@@ -1294,7 +1310,7 @@ var PracticeCard = ({ className, title, cta, image }) => {
1294
1310
  children: [
1295
1311
  image && /* @__PURE__ */ jsx(Picture, __spreadValues({ className: PracticeCard_module_default.background }, image)),
1296
1312
  /* @__PURE__ */ jsxs("div", { className: PracticeCard_module_default.container, children: [
1297
- title && /* @__PURE__ */ jsx("div", { className: clsx43(PracticeCard_module_default.title, "h3"), children: title }),
1313
+ title && /* @__PURE__ */ jsx("div", { className: clsx47(PracticeCard_module_default.title, "h3"), children: title }),
1298
1314
  href && /* @__PURE__ */ jsxs("div", { className: PracticeCard_module_default.cta, children: [
1299
1315
  /* @__PURE__ */ jsx(Icon, { className: PracticeCard_module_default.ctaRest, type: "right" }),
1300
1316
  /* @__PURE__ */ jsx(Icon, { className: PracticeCard_module_default.ctaHover, type: "tiltedRight" })
@@ -1338,15 +1354,15 @@ var ResourceCardItem = ({ item, view, variant, renderLink }) => {
1338
1354
  "aria-disabled": isRestricted
1339
1355
  } : null;
1340
1356
  const cardLink = linkProps && isGlobalSearchVariant ? renderLink ? renderLink(__spreadProps(__spreadValues({}, linkProps), {
1341
- className: clsx43(ResourceCardItem_module_default.cardLink, isGlobalSearchVariant && ResourceCardItem_module_default[variant]),
1357
+ className: clsx47(ResourceCardItem_module_default.cardLink, isGlobalSearchVariant && ResourceCardItem_module_default[variant]),
1342
1358
  children: null
1343
1359
  })) : /* @__PURE__ */ jsx(
1344
1360
  "a",
1345
1361
  __spreadProps(__spreadValues({}, linkProps), {
1346
- className: clsx43(ResourceCardItem_module_default.cardLink, isGlobalSearchVariant && ResourceCardItem_module_default[variant])
1362
+ className: clsx47(ResourceCardItem_module_default.cardLink, isGlobalSearchVariant && ResourceCardItem_module_default[variant])
1347
1363
  })
1348
1364
  ) : null;
1349
- const linkWrapper = ({ children }) => /* @__PURE__ */ jsx("a", __spreadProps(__spreadValues({}, linkProps), { tabIndex: isGlobalSearchVariant ? -1 : 0, className: clsx43(ResourceCardItem_module_default.cardLink), children }));
1365
+ const linkWrapper = ({ children }) => /* @__PURE__ */ jsx("a", __spreadProps(__spreadValues({}, linkProps), { tabIndex: isGlobalSearchVariant ? -1 : 0, className: clsx47(ResourceCardItem_module_default.cardLink), children }));
1350
1366
  function getIcon() {
1351
1367
  switch (item.type) {
1352
1368
  case "pdf":
@@ -1363,7 +1379,7 @@ var ResourceCardItem = ({ item, view, variant, renderLink }) => {
1363
1379
  return /* @__PURE__ */ jsxs(
1364
1380
  "article",
1365
1381
  {
1366
- className: clsx43(
1382
+ className: clsx47(
1367
1383
  ResourceCardItem_module_default.cardGrid,
1368
1384
  isGlobalSearchVariant && ResourceCardItem_module_default[variant],
1369
1385
  isGlobalSearchVariant && isRestricted ? ResourceCardItem_module_default["restricted"] : null
@@ -1440,7 +1456,7 @@ var Sidebar = ({
1440
1456
  return /* @__PURE__ */ jsxs(
1441
1457
  "li",
1442
1458
  {
1443
- className: clsx43(Sidebar_module_default.sidebarItem, i === selectedIndex && Sidebar_module_default.active),
1459
+ className: clsx47(Sidebar_module_default.sidebarItem, i === selectedIndex && Sidebar_module_default.active),
1444
1460
  role: "button",
1445
1461
  tabIndex: 0,
1446
1462
  "aria-pressed": i === selectedIndex,
@@ -1498,7 +1514,7 @@ var UpcomingEventCard = ({
1498
1514
  return /* @__PURE__ */ jsxs(
1499
1515
  "article",
1500
1516
  {
1501
- className: clsx43(
1517
+ className: clsx47(
1502
1518
  "card",
1503
1519
  UpcomingEventCard_module_default["event-card"],
1504
1520
  UpcomingEventCard_module_default[direction],
@@ -1506,26 +1522,26 @@ var UpcomingEventCard = ({
1506
1522
  className
1507
1523
  ),
1508
1524
  children: [
1509
- /* @__PURE__ */ jsxs("div", { className: clsx43("card-content", UpcomingEventCard_module_default["event-card-content"]), children: [
1510
- showImage && image && /* @__PURE__ */ jsx(Picture, __spreadProps(__spreadValues({}, image), { className: clsx43("card-image", UpcomingEventCard_module_default["event-card-image"]) })),
1525
+ /* @__PURE__ */ jsxs("div", { className: clsx47("card-content", UpcomingEventCard_module_default["event-card-content"]), children: [
1526
+ showImage && image && /* @__PURE__ */ jsx(Picture, __spreadProps(__spreadValues({}, image), { className: clsx47("card-image", UpcomingEventCard_module_default["event-card-image"]) })),
1511
1527
  /* @__PURE__ */ jsxs(
1512
1528
  "div",
1513
1529
  {
1514
- className: clsx43(
1530
+ className: clsx47(
1515
1531
  "card-text-content",
1516
1532
  UpcomingEventCard_module_default["event-card-text-content"],
1517
1533
  (!showImage || !hasImage) && UpcomingEventCard_module_default["event-card-show-image"]
1518
1534
  ),
1519
1535
  children: [
1520
1536
  /* @__PURE__ */ jsx("span", { className: UpcomingEventCard_module_default.date, children: date }),
1521
- title && /* @__PURE__ */ jsx("h3", { className: clsx43("card-text-title"), children: title }),
1537
+ title && /* @__PURE__ */ jsx("h3", { className: clsx47("card-text-title"), children: title }),
1522
1538
  location && /* @__PURE__ */ jsx("span", { className: UpcomingEventCard_module_default.location, children: location }),
1523
- description && /* @__PURE__ */ jsx("div", { className: clsx43("card-text-description", UpcomingEventCard_module_default.description), children: description }),
1524
- cta && cta.url && /* @__PURE__ */ jsx("div", { className: clsx43("card-cta-wrapper", UpcomingEventCard_module_default["event-card-cta-wrapper"]), children: /* @__PURE__ */ jsx(
1539
+ description && /* @__PURE__ */ jsx("div", { className: clsx47("card-text-description", UpcomingEventCard_module_default.description), children: description }),
1540
+ cta && cta.url && /* @__PURE__ */ jsx("div", { className: clsx47("card-cta-wrapper", UpcomingEventCard_module_default["event-card-cta-wrapper"]), children: /* @__PURE__ */ jsx(
1525
1541
  Button,
1526
1542
  {
1527
1543
  variant: "secondary",
1528
- className: clsx43(
1544
+ className: clsx47(
1529
1545
  "card-cta",
1530
1546
  UpcomingEventCard_module_default["event-card-cta"],
1531
1547
  !hasCTAandImage && UpcomingEventCard_module_default.hidden
@@ -1544,12 +1560,12 @@ var UpcomingEventCard = ({
1544
1560
  cta && cta.url && /* @__PURE__ */ jsx(
1545
1561
  "div",
1546
1562
  {
1547
- className: clsx43("card-footer", UpcomingEventCard_module_default["event-card-footer"], hasImage && UpcomingEventCard_module_default.hidden),
1563
+ className: clsx47("card-footer", UpcomingEventCard_module_default["event-card-footer"], hasImage && UpcomingEventCard_module_default.hidden),
1548
1564
  children: /* @__PURE__ */ jsx(
1549
1565
  Button,
1550
1566
  {
1551
1567
  variant: "secondary",
1552
- className: clsx43("card-cta", UpcomingEventCard_module_default["event-card-cta"]),
1568
+ className: clsx47("card-cta", UpcomingEventCard_module_default["event-card-cta"]),
1553
1569
  fullWidth: isBelowMobile,
1554
1570
  href: cta.url,
1555
1571
  icon: cta.icon,
@@ -1597,7 +1613,7 @@ var Badge = forwardRef(
1597
1613
  "live",
1598
1614
  "clickable"
1599
1615
  ]);
1600
- const classes = clsx43(
1616
+ const classes = clsx47(
1601
1617
  Badge_module_default.badge,
1602
1618
  Badge_module_default[variant],
1603
1619
  Badge_module_default[size],
@@ -1608,7 +1624,7 @@ var Badge = forwardRef(
1608
1624
  className
1609
1625
  );
1610
1626
  const content = /* @__PURE__ */ jsxs(Fragment, { children: [
1611
- icon && /* @__PURE__ */ jsx(Icon, __spreadValues({ className: clsx43("badge-icon", Badge_module_default["badge-icon"]) }, icon)),
1627
+ icon && /* @__PURE__ */ jsx(Icon, __spreadValues({ className: clsx47("badge-icon", Badge_module_default["badge-icon"]) }, icon)),
1612
1628
  !iconOnly && /* @__PURE__ */ jsx("span", { className: Badge_module_default.label, children })
1613
1629
  ] });
1614
1630
  if (clickable) {
@@ -1689,7 +1705,7 @@ var Input = forwardRef(
1689
1705
  return /* @__PURE__ */ jsxs(
1690
1706
  "div",
1691
1707
  {
1692
- className: clsx43(
1708
+ className: clsx47(
1693
1709
  "input-field",
1694
1710
  Input_module_default["input-field"],
1695
1711
  {
@@ -1703,17 +1719,17 @@ var Input = forwardRef(
1703
1719
  "label",
1704
1720
  {
1705
1721
  htmlFor: inputId,
1706
- className: clsx43("input-label", Input_module_default.label, {
1722
+ className: clsx47("input-label", Input_module_default.label, {
1707
1723
  ["sr-only"]: hideLabel
1708
1724
  }),
1709
1725
  children: [
1710
1726
  label,
1711
- required && /* @__PURE__ */ jsx("span", { className: clsx43("input-required", Input_module_default.required), "aria-hidden": "true", children: "*" })
1727
+ required && /* @__PURE__ */ jsx("span", { className: clsx47("input-required", Input_module_default.required), "aria-hidden": "true", children: "*" })
1712
1728
  ]
1713
1729
  }
1714
1730
  ),
1715
- /* @__PURE__ */ jsxs("div", { className: clsx43("input-wrapper", Input_module_default.wrapper), children: [
1716
- startAdornment && /* @__PURE__ */ jsx("span", { className: clsx43("input-adornment", Input_module_default.adornment), "aria-hidden": "true", children: startAdornment }),
1731
+ /* @__PURE__ */ jsxs("div", { className: clsx47("input-wrapper", Input_module_default.wrapper), children: [
1732
+ startAdornment && /* @__PURE__ */ jsx("span", { className: clsx47("input-adornment", Input_module_default.adornment), "aria-hidden": "true", children: startAdornment }),
1717
1733
  /* @__PURE__ */ jsx(
1718
1734
  "input",
1719
1735
  __spreadValues({
@@ -1724,7 +1740,7 @@ var Input = forwardRef(
1724
1740
  disabled,
1725
1741
  "aria-invalid": !!error,
1726
1742
  "aria-describedby": describedBy || void 0,
1727
- className: clsx43(
1743
+ className: clsx47(
1728
1744
  "input",
1729
1745
  Input_module_default.input,
1730
1746
  {
@@ -1735,11 +1751,11 @@ var Input = forwardRef(
1735
1751
  )
1736
1752
  }, props)
1737
1753
  ),
1738
- endAdornment && /* @__PURE__ */ jsx("span", { className: clsx43("input-adornment", Input_module_default.adornment), "aria-hidden": "true", children: endAdornment }),
1739
- endAction && /* @__PURE__ */ jsx("span", { className: clsx43("input-end-action"), children: endAction })
1754
+ endAdornment && /* @__PURE__ */ jsx("span", { className: clsx47("input-adornment", Input_module_default.adornment), "aria-hidden": "true", children: endAdornment }),
1755
+ endAction && /* @__PURE__ */ jsx("span", { className: clsx47("input-end-action"), children: endAction })
1740
1756
  ] }),
1741
- helperText && !error && /* @__PURE__ */ jsx("p", { id: helperTextId, className: clsx43("input-helper-text", Input_module_default["helper-text"]), children: helperText }),
1742
- error && /* @__PURE__ */ jsx("p", { id: errorId, className: clsx43("input-error", Input_module_default.error), role: "alert", children: error })
1757
+ helperText && !error && /* @__PURE__ */ jsx("p", { id: helperTextId, className: clsx47("input-helper-text", Input_module_default["helper-text"]), children: helperText }),
1758
+ error && /* @__PURE__ */ jsx("p", { id: errorId, className: clsx47("input-error", Input_module_default.error), role: "alert", children: error })
1743
1759
  ]
1744
1760
  }
1745
1761
  );
@@ -1779,14 +1795,14 @@ var NewsCard = ({
1779
1795
  href: cta.url,
1780
1796
  target: cta.isExternal ? "_blank" : void 0,
1781
1797
  rel: cta.isExternal ? "noopener noreferrer" : void 0,
1782
- className: clsx43("news-card-link", NewsCard_module_default["news-card-link"]),
1798
+ className: clsx47("news-card-link", NewsCard_module_default["news-card-link"]),
1783
1799
  "aria-label": `${title}${cta.label ? ` \u2014 ${cta.label}` : ""}`
1784
1800
  } : null;
1785
1801
  const cardLink = linkProps ? renderLink ? renderLink(__spreadProps(__spreadValues({}, linkProps), { children: null })) : /* @__PURE__ */ jsx("a", __spreadValues({}, linkProps)) : null;
1786
1802
  return /* @__PURE__ */ jsxs(
1787
1803
  "article",
1788
1804
  {
1789
- className: clsx43(
1805
+ className: clsx47(
1790
1806
  "news-card",
1791
1807
  NewsCard_module_default["news-card"],
1792
1808
  NewsCard_module_default[`news-card--${direction}`],
@@ -1794,28 +1810,28 @@ var NewsCard = ({
1794
1810
  ),
1795
1811
  children: [
1796
1812
  cardLink,
1797
- image && /* @__PURE__ */ jsx(Picture, __spreadProps(__spreadValues({}, image), { className: clsx43("news-card-image", NewsCard_module_default["news-card-image"]) })),
1813
+ image && /* @__PURE__ */ jsx(Picture, __spreadProps(__spreadValues({}, image), { className: clsx47("news-card-image", NewsCard_module_default["news-card-image"]) })),
1798
1814
  /* @__PURE__ */ jsxs(
1799
1815
  "div",
1800
1816
  {
1801
- className: clsx43("news-card-content", NewsCard_module_default["news-card-content"]),
1817
+ className: clsx47("news-card-content", NewsCard_module_default["news-card-content"]),
1802
1818
  style: {
1803
1819
  "--no-image-padding": image && image.src ? 0 : "1rem"
1804
1820
  },
1805
1821
  children: [
1806
- /* @__PURE__ */ jsxs("div", { className: clsx43("news-card-top-content", NewsCard_module_default["news-card-top-content"]), children: [
1807
- /* @__PURE__ */ jsx(Badge, { className: clsx43("news-card-badge", NewsCard_module_default["news-card-badge"]), children: tag }),
1808
- /* @__PURE__ */ jsx("time", { dateTime: date.value, className: clsx43("news-card-date", NewsCard_module_default["news-card-date"]), children: date.label })
1822
+ /* @__PURE__ */ jsxs("div", { className: clsx47("news-card-top-content", NewsCard_module_default["news-card-top-content"]), children: [
1823
+ /* @__PURE__ */ jsx(Badge, { className: clsx47("news-card-badge", NewsCard_module_default["news-card-badge"]), children: tag }),
1824
+ /* @__PURE__ */ jsx("time", { dateTime: date.value, className: clsx47("news-card-date", NewsCard_module_default["news-card-date"]), children: date.label })
1809
1825
  ] }),
1810
- /* @__PURE__ */ jsxs("div", { className: clsx43("news-card-main-content", NewsCard_module_default["news-card-main-content"]), children: [
1811
- /* @__PURE__ */ jsx("h3", { className: clsx43("news-card-title", NewsCard_module_default["news-card-title"]), children: title }),
1812
- typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: clsx43("news-card-description", NewsCard_module_default["news-card-description"]), children: description }) : description
1826
+ /* @__PURE__ */ jsxs("div", { className: clsx47("news-card-main-content", NewsCard_module_default["news-card-main-content"]), children: [
1827
+ /* @__PURE__ */ jsx("h3", { className: clsx47("news-card-title", NewsCard_module_default["news-card-title"]), children: title }),
1828
+ typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: clsx47("news-card-description", NewsCard_module_default["news-card-description"]), children: description }) : description
1813
1829
  ] }),
1814
- cta && cta.url && /* @__PURE__ */ jsx("div", { className: clsx43("news-card-cta-wrapper", NewsCard_module_default["news-card-cta-wrapper"]), children: /* @__PURE__ */ jsx(
1830
+ cta && cta.url && /* @__PURE__ */ jsx("div", { className: clsx47("news-card-cta-wrapper", NewsCard_module_default["news-card-cta-wrapper"]), children: /* @__PURE__ */ jsx(
1815
1831
  Button,
1816
1832
  {
1817
1833
  variant: "secondary",
1818
- className: clsx43("news-card-cta", NewsCard_module_default["news-card-cta"]),
1834
+ className: clsx47("news-card-cta", NewsCard_module_default["news-card-cta"]),
1819
1835
  href: cta.url,
1820
1836
  icon: cta.icon,
1821
1837
  isExternal: cta == null ? void 0 : cta.isExternal,
@@ -1846,13 +1862,278 @@ var BlogPostContent = ({ className, body, children }) => {
1846
1862
  body: BlogPostContentBody
1847
1863
  });
1848
1864
  const bodyNode = (_a = slots.body) != null ? _a : body;
1849
- return /* @__PURE__ */ jsx("div", { className: clsx43("blog-post-content", BlogPostContent_module_default["blog-post-content"], className), children: bodyNode });
1865
+ return /* @__PURE__ */ jsx("div", { className: clsx47("blog-post-content", BlogPostContent_module_default["blog-post-content"], className), children: bodyNode });
1850
1866
  };
1851
1867
 
1852
1868
  // src/components/BlogPostContent/index.ts
1853
1869
  var BlogPostContent2 = Object.assign(BlogPostContent, {
1854
1870
  Body: BlogPostContentBody
1855
1871
  });
1872
+
1873
+ // src/components/Search/Search.module.scss
1874
+ var Search_module_default = {
1875
+ search: "Search_module_search",
1876
+ searchButton: "Search_module_searchButton",
1877
+ searchField: "Search_module_searchField",
1878
+ searchFieldLine: "Search_module_searchFieldLine",
1879
+ searchInput: "Search_module_searchInput",
1880
+ searchFieldPill: "Search_module_searchFieldPill",
1881
+ searchSubmit: "Search_module_searchSubmit"
1882
+ };
1883
+ var Search = ({
1884
+ placeholder = "Search",
1885
+ searchCta,
1886
+ onSearch,
1887
+ variant = "expandable",
1888
+ className
1889
+ }) => {
1890
+ const isPill = variant === "pill";
1891
+ const [isOpen, setIsOpen] = useState(isPill);
1892
+ const [query, setQuery] = useState("");
1893
+ const inputRef = useRef(null);
1894
+ useEffect(() => {
1895
+ var _a;
1896
+ if (isOpen && !isPill) (_a = inputRef.current) == null ? void 0 : _a.focus();
1897
+ }, [isOpen, isPill]);
1898
+ const submit = () => {
1899
+ const value = query.trim();
1900
+ if (!value) return;
1901
+ onSearch == null ? void 0 : onSearch(value);
1902
+ if (searchCta == null ? void 0 : searchCta.url) {
1903
+ const separator = searchCta.url.includes("?") ? "&" : "?";
1904
+ window.location.href = `${searchCta.url}${separator}q=${encodeURIComponent(value)}`;
1905
+ }
1906
+ };
1907
+ const handleKeyDown = (e) => {
1908
+ if (e.key === "Enter") {
1909
+ e.preventDefault();
1910
+ submit();
1911
+ } else if (e.key === "Escape" && !isPill) {
1912
+ setIsOpen(false);
1913
+ }
1914
+ };
1915
+ if (!isOpen) {
1916
+ return /* @__PURE__ */ jsx("div", { className: clsx47(Search_module_default.search, className), children: /* @__PURE__ */ jsx(
1917
+ "button",
1918
+ {
1919
+ type: "button",
1920
+ className: Search_module_default.searchButton,
1921
+ "aria-label": (searchCta == null ? void 0 : searchCta.label) || "Search",
1922
+ "aria-expanded": false,
1923
+ onClick: () => setIsOpen(true),
1924
+ children: /* @__PURE__ */ jsx(Icon, { type: "search", size: 32, "aria-hidden": "true" })
1925
+ }
1926
+ ) });
1927
+ }
1928
+ return /* @__PURE__ */ jsx("div", { className: clsx47(Search_module_default.search, className), children: /* @__PURE__ */ jsxs(
1929
+ "div",
1930
+ {
1931
+ className: clsx47(
1932
+ Search_module_default.searchField,
1933
+ isPill ? Search_module_default.searchFieldPill : Search_module_default.searchFieldLine
1934
+ ),
1935
+ children: [
1936
+ isPill && /* @__PURE__ */ jsx(
1937
+ "button",
1938
+ {
1939
+ type: "button",
1940
+ className: Search_module_default.searchSubmit,
1941
+ "aria-label": (searchCta == null ? void 0 : searchCta.label) || "Search",
1942
+ onClick: submit,
1943
+ children: /* @__PURE__ */ jsx(Icon, { type: "search", size: 24, "aria-hidden": "true" })
1944
+ }
1945
+ ),
1946
+ /* @__PURE__ */ jsx(
1947
+ "input",
1948
+ {
1949
+ ref: inputRef,
1950
+ type: "search",
1951
+ className: Search_module_default.searchInput,
1952
+ placeholder,
1953
+ value: query,
1954
+ "aria-label": placeholder,
1955
+ onChange: (e) => setQuery(e.target.value),
1956
+ onKeyDown: handleKeyDown,
1957
+ onBlur: () => !isPill && !query && setIsOpen(false)
1958
+ }
1959
+ ),
1960
+ !isPill ? /* @__PURE__ */ jsx(
1961
+ "button",
1962
+ {
1963
+ type: "button",
1964
+ className: Search_module_default.searchSubmit,
1965
+ "aria-label": (searchCta == null ? void 0 : searchCta.label) || "Search",
1966
+ onClick: submit,
1967
+ children: /* @__PURE__ */ jsx(Icon, { type: "search", size: 24, "aria-hidden": "true" })
1968
+ }
1969
+ ) : query && /* @__PURE__ */ jsx(
1970
+ "button",
1971
+ {
1972
+ type: "button",
1973
+ className: Search_module_default.searchSubmit,
1974
+ "aria-label": "Submit search",
1975
+ onClick: submit,
1976
+ children: /* @__PURE__ */ jsx(Icon, { type: "rightBlack", size: 24, "aria-hidden": "true" })
1977
+ }
1978
+ )
1979
+ ]
1980
+ }
1981
+ ) });
1982
+ };
1983
+
1984
+ // src/components/UserMenu/UserMenu.module.scss
1985
+ var UserMenu_module_default = {
1986
+ userButton: "UserMenu_module_userButton",
1987
+ userMenuWrapper: "UserMenu_module_userMenuWrapper",
1988
+ fullWidth: "UserMenu_module_fullWidth",
1989
+ userChevron: "UserMenu_module_userChevron",
1990
+ userChevronOpen: "UserMenu_module_userChevronOpen",
1991
+ userMenu: "UserMenu_module_userMenu",
1992
+ userMenuUp: "UserMenu_module_userMenuUp",
1993
+ userMenuItem: "UserMenu_module_userMenuItem",
1994
+ userMenuItemDanger: "UserMenu_module_userMenuItemDanger",
1995
+ userAvatar: "UserMenu_module_userAvatar",
1996
+ userInner: "UserMenu_module_userInner",
1997
+ userLabel: "UserMenu_module_userLabel"
1998
+ };
1999
+ var UserMenu = ({ user, className, dropUp, fullWidth }) => {
2000
+ var _a, _b, _c;
2001
+ const [isOpen, setIsOpen] = useState(false);
2002
+ const wrapperRef = useRef(null);
2003
+ const closeTimer = useRef(null);
2004
+ const hasMenu = !!((_a = user.menuItems) == null ? void 0 : _a.length);
2005
+ const openMenu = () => {
2006
+ if (closeTimer.current) clearTimeout(closeTimer.current);
2007
+ setIsOpen(true);
2008
+ };
2009
+ const scheduleClose = () => {
2010
+ if (closeTimer.current) clearTimeout(closeTimer.current);
2011
+ closeTimer.current = setTimeout(() => setIsOpen(false), 120);
2012
+ };
2013
+ const handleBlur = (e) => {
2014
+ var _a2;
2015
+ if (!((_a2 = wrapperRef.current) == null ? void 0 : _a2.contains(e.relatedTarget))) {
2016
+ setIsOpen(false);
2017
+ }
2018
+ };
2019
+ useEffect(() => {
2020
+ return () => {
2021
+ if (closeTimer.current) clearTimeout(closeTimer.current);
2022
+ };
2023
+ }, []);
2024
+ useEffect(() => {
2025
+ if (!isOpen) return;
2026
+ const handleKey = (e) => {
2027
+ if (e.key === "Escape") setIsOpen(false);
2028
+ };
2029
+ const handleOutside = (e) => {
2030
+ if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {
2031
+ setIsOpen(false);
2032
+ }
2033
+ };
2034
+ document.addEventListener("keydown", handleKey);
2035
+ document.addEventListener("pointerdown", handleOutside);
2036
+ return () => {
2037
+ document.removeEventListener("keydown", handleKey);
2038
+ document.removeEventListener("pointerdown", handleOutside);
2039
+ };
2040
+ }, [isOpen]);
2041
+ const avatar = user.avatar ? /* @__PURE__ */ jsx(Picture, { className: UserMenu_module_default.userAvatar, src: user.avatar.src, alt: (_b = user.avatar.alt) != null ? _b : "" }) : /* @__PURE__ */ jsx(Icon, { type: "user", size: 24, className: UserMenu_module_default.userAvatar, "aria-hidden": "true" });
2042
+ if (!hasMenu) {
2043
+ const content = /* @__PURE__ */ jsxs(Fragment, { children: [
2044
+ avatar,
2045
+ /* @__PURE__ */ jsxs("span", { className: UserMenu_module_default.userInner, children: [
2046
+ /* @__PURE__ */ jsx("span", { className: UserMenu_module_default.userLabel, children: user.label }),
2047
+ /* @__PURE__ */ jsx(Icon, { type: "downChevronBlack", size: 13, "aria-hidden": "true" })
2048
+ ] })
2049
+ ] });
2050
+ const rootClass = clsx47(UserMenu_module_default.userButton, fullWidth && UserMenu_module_default.fullWidth, className);
2051
+ return user.url ? /* @__PURE__ */ jsx(
2052
+ "a",
2053
+ {
2054
+ href: user.url,
2055
+ className: rootClass,
2056
+ target: user.isExternal ? "_blank" : void 0,
2057
+ rel: user.isExternal ? "noopener noreferrer" : void 0,
2058
+ children: content
2059
+ }
2060
+ ) : /* @__PURE__ */ jsx("button", { type: "button", className: rootClass, children: content });
2061
+ }
2062
+ return /* @__PURE__ */ jsxs(
2063
+ "div",
2064
+ {
2065
+ className: clsx47(UserMenu_module_default.userMenuWrapper, fullWidth && UserMenu_module_default.fullWidth, className),
2066
+ ref: wrapperRef,
2067
+ onMouseLeave: scheduleClose,
2068
+ onBlur: handleBlur,
2069
+ children: [
2070
+ /* @__PURE__ */ jsxs(
2071
+ Button,
2072
+ {
2073
+ variant: "grey",
2074
+ type: "button",
2075
+ className: UserMenu_module_default.userButton,
2076
+ "aria-haspopup": "menu",
2077
+ "aria-expanded": isOpen,
2078
+ onMouseEnter: openMenu,
2079
+ onFocus: openMenu,
2080
+ onClick: () => setIsOpen((prev) => !prev),
2081
+ children: [
2082
+ avatar,
2083
+ /* @__PURE__ */ jsxs("span", { className: UserMenu_module_default.userInner, children: [
2084
+ /* @__PURE__ */ jsx("span", { className: UserMenu_module_default.userLabel, children: user.label }),
2085
+ /* @__PURE__ */ jsx("span", { className: clsx47(UserMenu_module_default.userChevron, isOpen && UserMenu_module_default.userChevronOpen), children: /* @__PURE__ */ jsx(Icon, { type: "downChevronBlack", size: 13, "aria-hidden": "true" }) })
2086
+ ] })
2087
+ ]
2088
+ }
2089
+ ),
2090
+ isOpen && /* @__PURE__ */ jsx(
2091
+ "div",
2092
+ {
2093
+ className: clsx47(UserMenu_module_default.userMenu, dropUp && UserMenu_module_default.userMenuUp),
2094
+ role: "menu",
2095
+ onMouseEnter: openMenu,
2096
+ onMouseLeave: scheduleClose,
2097
+ children: (_c = user.menuItems) == null ? void 0 : _c.map((item, i) => {
2098
+ const itemClass = clsx47(
2099
+ UserMenu_module_default.userMenuItem,
2100
+ item.variant === "danger" && UserMenu_module_default.userMenuItemDanger
2101
+ );
2102
+ const handleClick = () => {
2103
+ var _a2;
2104
+ (_a2 = item.onClick) == null ? void 0 : _a2.call(item);
2105
+ setIsOpen(false);
2106
+ };
2107
+ return item.url ? /* @__PURE__ */ jsx(
2108
+ "a",
2109
+ {
2110
+ href: item.url,
2111
+ role: "menuitem",
2112
+ className: itemClass,
2113
+ target: item.isExternal ? "_blank" : void 0,
2114
+ rel: item.isExternal ? "noopener noreferrer" : void 0,
2115
+ onClick: handleClick,
2116
+ children: item.label
2117
+ },
2118
+ i
2119
+ ) : /* @__PURE__ */ jsx(
2120
+ "button",
2121
+ {
2122
+ type: "button",
2123
+ role: "menuitem",
2124
+ className: itemClass,
2125
+ onClick: handleClick,
2126
+ children: item.label
2127
+ },
2128
+ i
2129
+ );
2130
+ })
2131
+ }
2132
+ )
2133
+ ]
2134
+ }
2135
+ );
2136
+ };
1856
2137
  var CardCollectionTitle = ({ children }) => {
1857
2138
  return /* @__PURE__ */ jsx(Fragment, { children });
1858
2139
  };
@@ -1932,13 +2213,13 @@ var CardCollection = ({
1932
2213
  Container,
1933
2214
  {
1934
2215
  ref: container,
1935
- className: clsx43(CardCollection_module_default["card-collection"], CardCollection_module_default[variant], className),
2216
+ className: clsx47(CardCollection_module_default["card-collection"], CardCollection_module_default[variant], className),
1936
2217
  children: [
1937
2218
  /* @__PURE__ */ jsxs("div", { className: CardCollection_module_default.content, children: [
1938
2219
  titleNode && /* @__PURE__ */ jsx("h2", { children: titleNode }),
1939
2220
  subtitleNode && /* @__PURE__ */ jsx("div", { className: "subheading", children: subtitleNode })
1940
2221
  ] }),
1941
- /* @__PURE__ */ jsx("div", { className: CardCollection_module_default.wrapper, children: /* @__PURE__ */ jsxs("div", { className: clsx43(CardCollection_module_default.cardWrapper, { [CardCollection_module_default["is-expanded"]]: isExpanded }), children: [
2222
+ /* @__PURE__ */ jsx("div", { className: CardCollection_module_default.wrapper, children: /* @__PURE__ */ jsxs("div", { className: clsx47(CardCollection_module_default.cardWrapper, { [CardCollection_module_default["is-expanded"]]: isExpanded }), children: [
1942
2223
  visibleCards.map((card, key) => /* @__PURE__ */ jsx(Card2, __spreadValues({ className: CardCollection_module_default.card, variant: theme }, card), key)),
1943
2224
  isExamCard && hiddenCards.length > 0 && /* @__PURE__ */ jsx("div", { ref: revealWrapper, className: CardCollection_module_default["reveal-wrapper"], children: /* @__PURE__ */ jsx("div", { className: CardCollection_module_default["reveal-inner"], children: hiddenCards.map((card, key) => /* @__PURE__ */ jsx(
1944
2225
  Card2,
@@ -2039,7 +2320,7 @@ var ContactModule = ({
2039
2320
  },
2040
2321
  { scope: containerRef, dependencies: [blurred, animateBlur] }
2041
2322
  );
2042
- return /* @__PURE__ */ jsxs("div", { ref: containerRef, className: clsx43(ContactModule_module_default["contact-module"], className), children: [
2323
+ return /* @__PURE__ */ jsxs("div", { ref: containerRef, className: clsx47(ContactModule_module_default["contact-module"], className), children: [
2043
2324
  blurred && /* @__PURE__ */ jsx(
2044
2325
  "div",
2045
2326
  {
@@ -2054,8 +2335,8 @@ var ContactModule = ({
2054
2335
  /* @__PURE__ */ jsxs(Container, { className: ContactModule_module_default.container, children: [
2055
2336
  /* @__PURE__ */ jsxs("div", { className: ContactModule_module_default.wrapper, children: [
2056
2337
  /* @__PURE__ */ jsxs("div", { className: ContactModule_module_default.content, children: [
2057
- titleNode && /* @__PURE__ */ jsx("div", { className: clsx43(ContactModule_module_default.title, "h1"), children: titleNode }),
2058
- subtitleNode && /* @__PURE__ */ jsx("div", { className: clsx43(ContactModule_module_default.subtitle, "subheading"), children: subtitleNode })
2338
+ titleNode && /* @__PURE__ */ jsx("div", { className: clsx47(ContactModule_module_default.title, "h1"), children: titleNode }),
2339
+ subtitleNode && /* @__PURE__ */ jsx("div", { className: clsx47(ContactModule_module_default.subtitle, "subheading"), children: subtitleNode })
2059
2340
  ] }),
2060
2341
  /* @__PURE__ */ jsx("div", { className: ContactModule_module_default["cta-wrapper"], children: ctas == null ? void 0 : ctas.map((cta, key) => /* @__PURE__ */ jsx(
2061
2342
  Button,
@@ -2124,7 +2405,7 @@ var Footer = ({
2124
2405
  disclaimer: FooterDisclaimer
2125
2406
  });
2126
2407
  const titleNode = (_a = slots.disclaimer) != null ? _a : disclaimer;
2127
- return /* @__PURE__ */ jsx("footer", { className: clsx43(Footer_module_default.footer, className), children: /* @__PURE__ */ jsxs(Container, { className: Footer_module_default.container, children: [
2408
+ return /* @__PURE__ */ jsx("footer", { className: clsx47(Footer_module_default.footer, className), children: /* @__PURE__ */ jsxs(Container, { className: Footer_module_default.container, children: [
2128
2409
  supportContacts.length > 0 && /* @__PURE__ */ jsxs("div", { className: Footer_module_default["support-section"], children: [
2129
2410
  /* @__PURE__ */ jsx("p", { className: Footer_module_default["support-heading"], children: "SUPPORT" }),
2130
2411
  /* @__PURE__ */ jsx("div", { className: Footer_module_default.support, children: supportColumns.map((column, colIdx) => /* @__PURE__ */ jsx("div", { className: Footer_module_default["support-column"], children: column.map((group, i) => /* @__PURE__ */ jsxs("div", { className: Footer_module_default["support-group"], children: [
@@ -2153,7 +2434,7 @@ var Footer = ({
2153
2434
  index
2154
2435
  ) : /* @__PURE__ */ jsx("div", { className: Footer_module_default["supporter-link-primary"], children: /* @__PURE__ */ jsx(Picture, __spreadValues({}, supporter.image)) }, index)
2155
2436
  ) }) }),
2156
- titleNode && /* @__PURE__ */ jsx("div", { className: clsx43(Footer_module_default.disclaimer, "p"), children: titleNode }),
2437
+ titleNode && /* @__PURE__ */ jsx("div", { className: clsx47(Footer_module_default.disclaimer, "p"), children: titleNode }),
2157
2438
  copyright && /* @__PURE__ */ jsx("p", { className: Footer_module_default.copyright, children: copyright })
2158
2439
  ] }),
2159
2440
  navigationLinks.length > 0 && /* @__PURE__ */ jsx("nav", { className: Footer_module_default["bottom-right"], children: /* @__PURE__ */ jsx("ul", { className: Footer_module_default["nav-list"], children: navigationLinks.map((link) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
@@ -2179,7 +2460,7 @@ var LogoBar_module_default = {
2179
2460
  };
2180
2461
  var LogoBar = ({ className, items }) => {
2181
2462
  if (!items || items.length === 0) return null;
2182
- return /* @__PURE__ */ jsx("div", { className: clsx43(LogoBar_module_default.logoBar, className), children: items.map((item, key) => {
2463
+ return /* @__PURE__ */ jsx("div", { className: clsx47(LogoBar_module_default.logoBar, className), children: items.map((item, key) => {
2183
2464
  return /* @__PURE__ */ jsx(Anchor, { href: item.url, isExternal: item.isExternal, children: /* @__PURE__ */ jsxs("div", { className: LogoBar_module_default.logoWrapper, children: [
2184
2465
  item.logo && /* @__PURE__ */ jsx(Picture, __spreadValues({ className: LogoBar_module_default.logo }, item.logo)),
2185
2466
  item.hoverLogo && /* @__PURE__ */ jsx(Picture, __spreadValues({ className: LogoBar_module_default.logoHover }, item.hoverLogo))
@@ -2251,7 +2532,7 @@ var HeroBanner = ({
2251
2532
  });
2252
2533
  const titleNode = (_a = slots.title) != null ? _a : title;
2253
2534
  const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
2254
- return /* @__PURE__ */ jsxs("div", { className: clsx43(HeroBanner_module_default.heroBanner, HeroBanner_module_default[variant], className), children: [
2535
+ return /* @__PURE__ */ jsxs("div", { className: clsx47(HeroBanner_module_default.heroBanner, HeroBanner_module_default[variant], className), children: [
2255
2536
  /* @__PURE__ */ jsxs("div", { className: HeroBanner_module_default.container, children: [
2256
2537
  /* @__PURE__ */ jsxs("div", { className: HeroBanner_module_default.banner, children: [
2257
2538
  (titleNode || subtitleNode) && /* @__PURE__ */ jsxs("div", { className: HeroBanner_module_default.text, children: [
@@ -2261,7 +2542,7 @@ var HeroBanner = ({
2261
2542
  {
2262
2543
  tag: "h2",
2263
2544
  promoteToH1,
2264
- className: clsx43(HeroBanner_module_default.title, vBannerPodcast ? "h3" : "h1"),
2545
+ className: clsx47(HeroBanner_module_default.title, vBannerPodcast ? "h3" : "h1"),
2265
2546
  children: titleNode
2266
2547
  }
2267
2548
  ),
@@ -2270,7 +2551,7 @@ var HeroBanner = ({
2270
2551
  {
2271
2552
  tag: "div",
2272
2553
  promoteToH1: promoteToH1 && !titleNode,
2273
- className: clsx43(HeroBanner_module_default.subtitle, "subheading"),
2554
+ className: clsx47(HeroBanner_module_default.subtitle, "subheading"),
2274
2555
  children: subtitleNode
2275
2556
  }
2276
2557
  )
@@ -2347,7 +2628,7 @@ var HeroBannerCarousel = ({
2347
2628
  const [swiperInstance, setSwiperInstance] = useState(null);
2348
2629
  const [activeIndex, setActiveIndex] = useState(0);
2349
2630
  if (!items.length) return null;
2350
- return /* @__PURE__ */ jsx("div", { className: clsx43(HeroBannerCarousel_module_default.heroBannerCarousel, className), children: /* @__PURE__ */ jsxs("div", { className: HeroBannerCarousel_module_default.inner, children: [
2631
+ return /* @__PURE__ */ jsx("div", { className: clsx47(HeroBannerCarousel_module_default.heroBannerCarousel, className), children: /* @__PURE__ */ jsxs("div", { className: HeroBannerCarousel_module_default.inner, children: [
2351
2632
  /* @__PURE__ */ jsx("div", { className: HeroBannerCarousel_module_default.swiperContainer, children: /* @__PURE__ */ jsx(
2352
2633
  Swiper,
2353
2634
  {
@@ -2394,7 +2675,7 @@ var HeroBannerCarousel = ({
2394
2675
  /* @__PURE__ */ jsx("div", { className: HeroBannerCarousel_module_default.pagination, children: items.map((_, index) => /* @__PURE__ */ jsx(
2395
2676
  "button",
2396
2677
  {
2397
- className: clsx43(HeroBannerCarousel_module_default.dot, index === activeIndex && HeroBannerCarousel_module_default.dotActive),
2678
+ className: clsx47(HeroBannerCarousel_module_default.dot, index === activeIndex && HeroBannerCarousel_module_default.dotActive),
2398
2679
  onClick: () => swiperInstance == null ? void 0 : swiperInstance.slideTo(index),
2399
2680
  "aria-label": `Go to slide ${index + 1}`
2400
2681
  },
@@ -2474,7 +2755,7 @@ var AccordionItem = ({
2474
2755
  return /* @__PURE__ */ jsxs(
2475
2756
  "div",
2476
2757
  {
2477
- className: clsx43(
2758
+ className: clsx47(
2478
2759
  Accordion_module_default.accordionItem,
2479
2760
  {
2480
2761
  [Accordion_module_default.accordionItemOpen]: isOpen
@@ -2485,18 +2766,18 @@ var AccordionItem = ({
2485
2766
  /* @__PURE__ */ jsxs(
2486
2767
  "button",
2487
2768
  {
2488
- className: clsx43(Accordion_module_default.accordionHeader, {
2769
+ className: clsx47(Accordion_module_default.accordionHeader, {
2489
2770
  [Accordion_module_default.accordionHeaderOpen]: isOpen
2490
2771
  }),
2491
2772
  onClick: handleToggle,
2492
2773
  "aria-expanded": isOpen,
2493
2774
  "aria-label": `Toggle ${title}`,
2494
2775
  children: [
2495
- /* @__PURE__ */ jsx("div", { className: Accordion_module_default.accordionHeaderLeft, children: /* @__PURE__ */ jsx("span", { className: clsx43("body", Accordion_module_default.accordionTitle), children: title }) }),
2776
+ /* @__PURE__ */ jsx("div", { className: Accordion_module_default.accordionHeaderLeft, children: /* @__PURE__ */ jsx("span", { className: clsx47("body", Accordion_module_default.accordionTitle), children: title }) }),
2496
2777
  /* @__PURE__ */ jsx(
2497
2778
  "span",
2498
2779
  {
2499
- className: clsx43(Accordion_module_default.accordionChevron, {
2780
+ className: clsx47(Accordion_module_default.accordionChevron, {
2500
2781
  [Accordion_module_default.accordionChevronOpen]: isOpen
2501
2782
  }),
2502
2783
  children: isOpen ? /* @__PURE__ */ jsx(Icon, { type: "filledChevronUpBlack", size: 40 }) : /* @__PURE__ */ jsx(Icon, { type: "circleChevronDown", size: 40 })
@@ -2548,7 +2829,7 @@ var Accordion = ({
2548
2829
  if (items.length === 0) {
2549
2830
  return null;
2550
2831
  }
2551
- return /* @__PURE__ */ jsx("div", { className: clsx43(Accordion_module_default.accordion, className), children: items.map((item) => /* @__PURE__ */ jsx(
2832
+ return /* @__PURE__ */ jsx("div", { className: clsx47(Accordion_module_default.accordion, className), children: items.map((item) => /* @__PURE__ */ jsx(
2552
2833
  AccordionItem,
2553
2834
  {
2554
2835
  id: item.id,
@@ -2638,7 +2919,7 @@ var InternalBrandsTab = (props) => {
2638
2919
  };
2639
2920
  })) || [];
2640
2921
  }, [tabs]);
2641
- return /* @__PURE__ */ jsxs(Container, { className: clsx43(InternalBrandsTab_module_default.internalBrandsTab, className), children: [
2922
+ return /* @__PURE__ */ jsxs(Container, { className: clsx47(InternalBrandsTab_module_default.internalBrandsTab, className), children: [
2642
2923
  /* @__PURE__ */ jsxs("div", { className: InternalBrandsTab_module_default.textsContainer, children: [
2643
2924
  title && /* @__PURE__ */ jsx(Text, { tag: "h2", className: InternalBrandsTab_module_default.title, children: title }),
2644
2925
  subTitle && /* @__PURE__ */ jsx("div", { className: InternalBrandsTab_module_default.subTitle, children: subTitle })
@@ -2654,7 +2935,7 @@ var InternalBrandsTab = (props) => {
2654
2935
  },
2655
2936
  index
2656
2937
  )) }),
2657
- /* @__PURE__ */ jsx("div", { className: clsx43(InternalBrandsTab_module_default.contentArea), children: ((_a = tabs == null ? void 0 : tabs[activeIndex]) == null ? void 0 : _a.topContent) && /* @__PURE__ */ jsxs(Fragment, { children: [
2938
+ /* @__PURE__ */ jsx("div", { className: clsx47(InternalBrandsTab_module_default.contentArea), children: ((_a = tabs == null ? void 0 : tabs[activeIndex]) == null ? void 0 : _a.topContent) && /* @__PURE__ */ jsxs(Fragment, { children: [
2658
2939
  /* @__PURE__ */ jsxs("div", { className: InternalBrandsTab_module_default.topContent, children: [
2659
2940
  /* @__PURE__ */ jsxs("div", { children: [
2660
2941
  ((_b = tabs[activeIndex].topContent) == null ? void 0 : _b.title) && /* @__PURE__ */ jsx("p", { className: InternalBrandsTab_module_default.topContentTitle, children: (_c = tabs[activeIndex].topContent) == null ? void 0 : _c.title }),
@@ -2752,22 +3033,22 @@ var MiniBanner = ({
2752
3033
  const titleNode = (_b = slots.title) != null ? _b : title;
2753
3034
  const subtitleNode = (_c = slots.subtitle) != null ? _c : subtitle;
2754
3035
  const goBackNode = slots == null ? void 0 : slots.goBack;
2755
- return /* @__PURE__ */ jsxs("div", { className: clsx43(MiniBanner_module_default.minibanner, MiniBanner_module_default[variant], className), children: [
3036
+ return /* @__PURE__ */ jsxs("div", { className: clsx47(MiniBanner_module_default.minibanner, MiniBanner_module_default[variant], className), children: [
2756
3037
  ((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__ */ jsx(Picture, __spreadValues({ className: MiniBanner_module_default.background }, background)),
2757
- /* @__PURE__ */ jsx(Container, { className: clsx43(goBackNode && MiniBanner_module_default.container), children: /* @__PURE__ */ jsxs("div", { className: MiniBanner_module_default.wrapper, children: [
3038
+ /* @__PURE__ */ jsx(Container, { className: clsx47(goBackNode && MiniBanner_module_default.container), children: /* @__PURE__ */ jsxs("div", { className: MiniBanner_module_default.wrapper, children: [
2758
3039
  /* @__PURE__ */ jsxs("div", { className: MiniBanner_module_default.textContainer, children: [
2759
3040
  (logo == null ? void 0 : logo.src) && /* @__PURE__ */ jsx(Picture, __spreadValues({ className: MiniBanner_module_default.logo }, logo)),
2760
- pretitleNode && /* @__PURE__ */ jsx("div", { className: clsx43(MiniBanner_module_default.pretitle, "small"), children: pretitleNode }),
3041
+ pretitleNode && /* @__PURE__ */ jsx("div", { className: clsx47(MiniBanner_module_default.pretitle, "small"), children: pretitleNode }),
2761
3042
  /* @__PURE__ */ jsxs("div", { className: MiniBanner_module_default.headingWrapper, children: [
2762
- goBackNode ? React69.cloneElement(goBackNode, {
2763
- className: clsx43("back-button", MiniBanner_module_default["back-button"])
3043
+ goBackNode ? React70.cloneElement(goBackNode, {
3044
+ className: clsx47("back-button", MiniBanner_module_default["back-button"])
2764
3045
  }) : null,
2765
- titleNode && /* @__PURE__ */ jsx("div", { className: clsx43(MiniBanner_module_default.title, isMiniBannerTextLeft ? "h1" : "h4"), children: titleNode })
3046
+ titleNode && /* @__PURE__ */ jsx("div", { className: clsx47(MiniBanner_module_default.title, isMiniBannerTextLeft ? "h1" : "h4"), children: titleNode })
2766
3047
  ] }),
2767
3048
  subtitleNode && /* @__PURE__ */ jsx(
2768
3049
  "div",
2769
3050
  {
2770
- className: clsx43(MiniBanner_module_default.title, {
3051
+ className: clsx47(MiniBanner_module_default.title, {
2771
3052
  subheading: isMiniBannerNoBG,
2772
3053
  h1: !isMiniBannerNoBG && !isMiniBannerTextLeft,
2773
3054
  h4: isMiniBannerTextLeft
@@ -2840,14 +3121,14 @@ var MiniSectionCta = ({
2840
3121
  return /* @__PURE__ */ jsx(
2841
3122
  "div",
2842
3123
  {
2843
- className: clsx43(MiniSectionCta_module_default.miniSectionCta, MiniSectionCta_module_default[variant], theme && MiniSectionCta_module_default[theme], className),
3124
+ className: clsx47(MiniSectionCta_module_default.miniSectionCta, MiniSectionCta_module_default[variant], theme && MiniSectionCta_module_default[theme], className),
2844
3125
  children: /* @__PURE__ */ jsx(Container, { children: /* @__PURE__ */ jsxs("div", { className: MiniSectionCta_module_default.wrapper, children: [
2845
3126
  /* @__PURE__ */ jsxs("div", { className: MiniSectionCta_module_default.col, children: [
2846
3127
  titleNode && /* @__PURE__ */ jsx("h2", { className: variant === "BgColorBlack" || variant === "BgColorGrey" ? "h3" : "h2", children: titleNode }),
2847
3128
  subtitleNode && /* @__PURE__ */ jsx(
2848
3129
  "div",
2849
3130
  {
2850
- className: clsx43(MiniSectionCta_module_default.subtitle, variant === "infoCallout" ? "h4" : "subheading"),
3131
+ className: clsx47(MiniSectionCta_module_default.subtitle, variant === "infoCallout" ? "h4" : "subheading"),
2851
3132
  children: subtitleNode
2852
3133
  }
2853
3134
  )
@@ -2873,34 +3154,6 @@ var MiniSectionCta2 = Object.assign(MiniSectionCta, {
2873
3154
  Title: MiniSectionCtaTitle,
2874
3155
  Subtitle: MiniSectionCtaSubtitle
2875
3156
  });
2876
- function useIntersectionObserver({
2877
- animateOnce = false,
2878
- options = {}
2879
- } = {}) {
2880
- const observeRef = useRef(null);
2881
- const [isVisible, setIsVisible] = useState(false);
2882
- if (typeof IntersectionObserver === "undefined") {
2883
- console.warn("IntersectionObserver is not supported in this browser.");
2884
- return { observeRef, isVisible: true };
2885
- }
2886
- useEffect(() => {
2887
- const currentRef = observeRef.current;
2888
- if (!currentRef) return;
2889
- const observer = new IntersectionObserver((entries) => {
2890
- const entry = entries[0];
2891
- if (!entry) return;
2892
- setIsVisible(entry.isIntersecting);
2893
- if (entry.isIntersecting && animateOnce) {
2894
- observer.disconnect();
2895
- }
2896
- }, options);
2897
- observer.observe(currentRef);
2898
- return () => {
2899
- observer.disconnect();
2900
- };
2901
- }, [observeRef, animateOnce, options]);
2902
- return { observeRef, isVisible };
2903
- }
2904
3157
  var useIsAtTop = () => {
2905
3158
  const [isAtTop, setIsAtTop] = useState(true);
2906
3159
  useEffect(() => {
@@ -2913,32 +3166,18 @@ var useIsAtTop = () => {
2913
3166
 
2914
3167
  // src/widgets/Navigation/Navigation.module.scss
2915
3168
  var Navigation_module_default = {
2916
- dropdownTitle: "Navigation_module_dropdownTitle",
2917
- dropdownLink: "Navigation_module_dropdownLink",
2918
- dropdownDescription: "Navigation_module_dropdownDescription",
3169
+ internalDropdownTitle: "Navigation_module_internalDropdownTitle",
2919
3170
  mobileItemLink: "Navigation_module_mobileItemLink",
2920
3171
  mobileItemTrigger: "Navigation_module_mobileItemTrigger",
2921
3172
  mobileSubLink: "Navigation_module_mobileSubLink",
2922
- navigationWrapper: "Navigation_module_navigationWrapper",
2923
3173
  dropdownOpen: "Navigation_module_dropdownOpen",
2924
3174
  variantTransparent: "Navigation_module_variantTransparent",
2925
3175
  transparent: "Navigation_module_transparent",
2926
- navigation: "Navigation_module_navigation",
2927
- upperNav: "Navigation_module_upperNav",
2928
- mainLogo: "Navigation_module_mainLogo",
2929
- mainLogoLink: "Navigation_module_mainLogoLink",
3176
+ logo: "Navigation_module_logo",
2930
3177
  upperRight: "Navigation_module_upperRight",
2931
- lowerNav: "Navigation_module_lowerNav",
2932
- lowerNavItem: "Navigation_module_lowerNavItem",
2933
3178
  overlay: "Navigation_module_overlay",
2934
- dropdownTrigger: "Navigation_module_dropdownTrigger",
2935
- dropdownTriggerOpen: "Navigation_module_dropdownTriggerOpen",
2936
- dropdownPanel: "Navigation_module_dropdownPanel",
2937
- dropdownPanelOpen: "Navigation_module_dropdownPanelOpen",
2938
- dropdownInner: "Navigation_module_dropdownInner",
2939
- dropdownLinks: "Navigation_module_dropdownLinks",
2940
- dropdownLinkContainer: "Navigation_module_dropdownLinkContainer",
2941
- dropdownInfo: "Navigation_module_dropdownInfo",
3179
+ mainLogoLink: "Navigation_module_mainLogoLink",
3180
+ dropdownLinkSpacer: "Navigation_module_dropdownLinkSpacer",
2942
3181
  mainLogoMobile: "Navigation_module_mainLogoMobile",
2943
3182
  hamburgerButton: "Navigation_module_hamburgerButton",
2944
3183
  mobileMenu: "Navigation_module_mobileMenu",
@@ -2951,116 +3190,53 @@ var Navigation_module_default = {
2951
3190
  mobileSubItems: "Navigation_module_mobileSubItems",
2952
3191
  mobileSubItemsOpen: "Navigation_module_mobileSubItemsOpen",
2953
3192
  mobileSubItemsInner: "Navigation_module_mobileSubItemsInner",
2954
- mobileMenuCtas: "Navigation_module_mobileMenuCtas"
2955
- };
2956
- var NavigationDesktop = ({
2957
- navigationItems,
2958
- isTransparent,
2959
- onDropdownOpenChange
2960
- }) => {
2961
- var _a;
2962
- const [activeDropdown, setActiveDropdown] = useState(null);
2963
- const closeTimer = useRef(null);
2964
- const dropdownWrapperRefs = useRef([]);
2965
- const baseId = useId();
2966
- const setDropdown = (index) => {
2967
- setActiveDropdown(index);
2968
- onDropdownOpenChange == null ? void 0 : onDropdownOpenChange(index !== null);
2969
- };
2970
- const handleDropdownEnter = (index) => {
2971
- if (closeTimer.current) clearTimeout(closeTimer.current);
2972
- setDropdown(index);
2973
- };
2974
- const handleDropdownLeave = () => {
2975
- closeTimer.current = setTimeout(() => setDropdown(null), 100);
2976
- };
2977
- const handleDropdownBlur = (e, index) => {
2978
- if (!e.currentTarget.contains(e.relatedTarget)) {
2979
- if (activeDropdown === index) setDropdown(null);
2980
- }
2981
- };
2982
- const handleTriggerKeyDown = (e, index) => {
2983
- if (e.key === "Escape") {
2984
- setDropdown(null);
2985
- } else if ((e.key === "Enter" || e.key === " ") && activeDropdown !== index) {
2986
- e.preventDefault();
2987
- setDropdown(index);
2988
- }
2989
- };
2990
- const handleDropdownKeyDown = (e, index) => {
2991
- var _a2, _b;
2992
- if (e.key === "Escape") {
2993
- setDropdown(null);
2994
- (_b = (_a2 = dropdownWrapperRefs.current[index]) == null ? void 0 : _a2.querySelector("button")) == null ? void 0 : _b.focus();
2995
- }
2996
- };
2997
- if (!((_a = navigationItems == null ? void 0 : navigationItems.items) == null ? void 0 : _a.length)) return null;
2998
- return /* @__PURE__ */ jsx("ul", { className: Navigation_module_default.lowerNav, children: navigationItems.items.map((item, index) => {
2999
- var _a2, _b, _c;
3000
- const panelId = `${baseId}-panel-${index}`;
3001
- const isOpen = activeDropdown === index;
3002
- return item.type === "dropdown" ? /* @__PURE__ */ jsxs(
3003
- "li",
3004
- {
3005
- className: Navigation_module_default.lowerNavItem,
3006
- ref: (el) => {
3007
- dropdownWrapperRefs.current[index] = el;
3008
- },
3009
- onBlur: (e) => handleDropdownBlur(e, index),
3010
- children: [
3011
- /* @__PURE__ */ jsx(
3012
- Button,
3013
- {
3014
- variant: "navnofillblack",
3015
- className: clsx43(Navigation_module_default.dropdownTrigger, { [Navigation_module_default.dropdownTriggerOpen]: isOpen }),
3016
- icon: isTransparent ? "downChevronWhite" : "downChevronBlack",
3017
- isActive: isOpen,
3018
- "aria-expanded": isOpen,
3019
- "aria-haspopup": "true",
3020
- "aria-controls": panelId,
3021
- onMouseEnter: () => handleDropdownEnter(index),
3022
- onMouseLeave: handleDropdownLeave,
3023
- onClick: () => setDropdown(isOpen ? null : index),
3024
- onKeyDown: (e) => handleTriggerKeyDown(e, index),
3025
- children: item.title
3026
- }
3027
- ),
3028
- /* @__PURE__ */ jsx(
3029
- "div",
3030
- {
3031
- id: panelId,
3032
- className: clsx43(Navigation_module_default.dropdownPanel, { [Navigation_module_default.dropdownPanelOpen]: isOpen }),
3033
- "aria-hidden": !isOpen,
3034
- onMouseEnter: () => handleDropdownEnter(index),
3035
- onMouseLeave: handleDropdownLeave,
3036
- onKeyDown: (e) => handleDropdownKeyDown(e, index),
3037
- children: /* @__PURE__ */ jsxs("div", { className: Navigation_module_default.dropdownInner, children: [
3038
- /* @__PURE__ */ jsx("ul", { className: Navigation_module_default.dropdownLinks, children: item.items.map(
3039
- (subItem, i) => {
3040
- var _a3, _b2;
3041
- return subItem.type === "link" ? /* @__PURE__ */ jsx("li", { className: Navigation_module_default.dropdownLinkContainer, children: /* @__PURE__ */ jsx(
3042
- "a",
3043
- {
3044
- href: (_a3 = subItem.cta) == null ? void 0 : _a3.url,
3045
- className: Navigation_module_default.dropdownLink,
3046
- tabIndex: isOpen ? void 0 : -1,
3047
- children: (_b2 = subItem.cta) == null ? void 0 : _b2.label
3048
- }
3049
- ) }, i) : null;
3050
- }
3051
- ) }),
3052
- /* @__PURE__ */ jsxs("div", { className: Navigation_module_default.dropdownInfo, children: [
3053
- /* @__PURE__ */ jsx("h3", { className: Navigation_module_default.dropdownTitle, children: item.title }),
3054
- /* @__PURE__ */ jsx("p", { className: Navigation_module_default.dropdownDescription, children: item.description })
3055
- ] })
3056
- ] })
3057
- }
3058
- )
3059
- ]
3060
- },
3061
- index
3062
- ) : /* @__PURE__ */ jsx("li", { className: Navigation_module_default.lowerNavItem, children: /* @__PURE__ */ jsx(Button, { variant: "navnofillblack", href: (_a2 = item.cta) == null ? void 0 : _a2.url, isExternal: (_b = item.cta) == null ? void 0 : _b.isExternal, children: (_c = item.cta) == null ? void 0 : _c.label }) }, index);
3063
- }) });
3193
+ mobileMenuCtas: "Navigation_module_mobileMenuCtas",
3194
+ Navigation: "Navigation_module_Navigation",
3195
+ mainBar: "Navigation_module_mainBar",
3196
+ navTabLink: "Navigation_module_navTabLink",
3197
+ inner: "Navigation_module_inner",
3198
+ topRow: "Navigation_module_topRow",
3199
+ logoLink: "Navigation_module_logoLink",
3200
+ logoMobile: "Navigation_module_logoMobile",
3201
+ hamburger: "Navigation_module_hamburger",
3202
+ bottomRow: "Navigation_module_bottomRow",
3203
+ navTabs: "Navigation_module_navTabs",
3204
+ navTab: "Navigation_module_navTab",
3205
+ navTabTrigger: "Navigation_module_navTabTrigger",
3206
+ navTabTriggerOpen: "Navigation_module_navTabTriggerOpen",
3207
+ navTabActive: "Navigation_module_navTabActive",
3208
+ internalDropdownPanel: "Navigation_module_internalDropdownPanel",
3209
+ internalDropdownInner: "Navigation_module_internalDropdownInner",
3210
+ internalDropdownLinks: "Navigation_module_internalDropdownLinks",
3211
+ dropdownLinkItem: "Navigation_module_dropdownLinkItem",
3212
+ internalDropdownLink: "Navigation_module_internalDropdownLink",
3213
+ dropdownDivider: "Navigation_module_dropdownDivider",
3214
+ internalDropdownInfo: "Navigation_module_internalDropdownInfo",
3215
+ internalDropdownDescription: "Navigation_module_internalDropdownDescription",
3216
+ brandBars: "Navigation_module_brandBars",
3217
+ brandBar: "Navigation_module_brandBar",
3218
+ brandBarsUnfolded: "Navigation_module_brandBarsUnfolded",
3219
+ brandLogo: "Navigation_module_brandLogo",
3220
+ lenscrafters: "Navigation_module_lenscrafters",
3221
+ forEyes: "Navigation_module_forEyes",
3222
+ optical: "Navigation_module_optical",
3223
+ pearleVision: "Navigation_module_pearleVision",
3224
+ internalMobileMenu: "Navigation_module_internalMobileMenu",
3225
+ internalMobileMenuOpen: "Navigation_module_internalMobileMenuOpen",
3226
+ mobileHeader: "Navigation_module_mobileHeader",
3227
+ mobileClose: "Navigation_module_mobileClose",
3228
+ mobileBrandBars: "Navigation_module_mobileBrandBars",
3229
+ mobileItems: "Navigation_module_mobileItems",
3230
+ internalMobileItem: "Navigation_module_internalMobileItem",
3231
+ internalMobileItemLink: "Navigation_module_internalMobileItemLink",
3232
+ internalMobileItemTrigger: "Navigation_module_internalMobileItemTrigger",
3233
+ internalMobileItemChevron: "Navigation_module_internalMobileItemChevron",
3234
+ internalMobileItemChevronOpen: "Navigation_module_internalMobileItemChevronOpen",
3235
+ internalMobileSubItems: "Navigation_module_internalMobileSubItems",
3236
+ internalMobileSubItemsOpen: "Navigation_module_internalMobileSubItemsOpen",
3237
+ internalMobileSubItemsInner: "Navigation_module_internalMobileSubItemsInner",
3238
+ internalMobileSubLink: "Navigation_module_internalMobileSubLink",
3239
+ mobileFooter: "Navigation_module_mobileFooter"
3064
3240
  };
3065
3241
  var NavigationLogo = ({
3066
3242
  mainLogo,
@@ -3086,63 +3262,355 @@ var NavigationCtas = ({
3086
3262
  (rightButton == null ? void 0 : rightButton.label) && /* @__PURE__ */ jsx(Button, { variant: "primary", href: rightButton.url, isExternal: rightButton.isExternal, children: rightButton.label })
3087
3263
  ] });
3088
3264
  };
3265
+ var BRANDS = [
3266
+ { key: "lenscrafters", className: Navigation_module_default.lenscrafters, label: "LensCrafters" },
3267
+ { key: "forEyes", className: Navigation_module_default.forEyes, label: "For Eyes" },
3268
+ { key: "optical", className: Navigation_module_default.optical, label: "Target Optical" },
3269
+ { key: "pearleVision", className: Navigation_module_default.pearleVision, label: "Pearle Vision" }
3270
+ ];
3271
+ var NavigationBrandBars = ({
3272
+ brandLogos,
3273
+ unfolded = false,
3274
+ className
3275
+ }) => {
3276
+ const hasLogos = !!brandLogos;
3277
+ const isUnfolded = hasLogos && unfolded;
3278
+ return /* @__PURE__ */ jsx(
3279
+ "div",
3280
+ {
3281
+ className: clsx47(Navigation_module_default.brandBars, isUnfolded && Navigation_module_default.brandBarsUnfolded, className),
3282
+ "aria-hidden": "true",
3283
+ children: BRANDS.map((brand) => {
3284
+ var _a;
3285
+ const logo = brandLogos == null ? void 0 : brandLogos[brand.key];
3286
+ return /* @__PURE__ */ jsx("span", { className: clsx47(Navigation_module_default.brandBar, brand.className), children: logo && /* @__PURE__ */ jsx("img", { className: Navigation_module_default.brandLogo, src: logo.src, alt: (_a = logo.alt) != null ? _a : brand.label }) }, brand.key);
3287
+ })
3288
+ }
3289
+ );
3290
+ };
3291
+ var NavigationDesktop = ({
3292
+ navItems,
3293
+ openIndex,
3294
+ onOpen,
3295
+ onScheduleClose,
3296
+ baseId,
3297
+ isTransparent = false
3298
+ }) => {
3299
+ if (!(navItems == null ? void 0 : navItems.length)) return null;
3300
+ const handleTriggerKeyDown = (e, index) => {
3301
+ var _a;
3302
+ if (e.key === "Escape") {
3303
+ onOpen(null);
3304
+ } else if ((e.key === "Enter" || e.key === " ") && openIndex !== index) {
3305
+ e.preventDefault();
3306
+ onOpen(index);
3307
+ } else if (e.key === "Tab" && !e.shiftKey && openIndex === index) {
3308
+ const firstLink = (_a = document.getElementById(`${baseId}-panel-${index}`)) == null ? void 0 : _a.querySelector("a, button");
3309
+ if (firstLink) {
3310
+ e.preventDefault();
3311
+ firstLink.focus();
3312
+ }
3313
+ }
3314
+ };
3315
+ return /* @__PURE__ */ jsx("ul", { className: Navigation_module_default.navTabs, children: navItems.map((item, index) => {
3316
+ var _a, _b, _c, _d;
3317
+ const isOpen = openIndex === index;
3318
+ if (item.type === "link") {
3319
+ return /* @__PURE__ */ jsx("li", { className: Navigation_module_default.navTab, children: /* @__PURE__ */ jsx(
3320
+ "a",
3321
+ {
3322
+ href: (_a = item.cta) == null ? void 0 : _a.url,
3323
+ className: clsx47(Navigation_module_default.navTabLink, item.isActive && Navigation_module_default.navTabActive),
3324
+ "aria-current": item.isActive ? "page" : void 0,
3325
+ target: ((_b = item.cta) == null ? void 0 : _b.isExternal) ? "_blank" : void 0,
3326
+ rel: ((_c = item.cta) == null ? void 0 : _c.isExternal) ? "noopener noreferrer" : void 0,
3327
+ onMouseEnter: () => onOpen(null),
3328
+ onFocus: () => onOpen(null),
3329
+ children: /* @__PURE__ */ jsx("span", { children: (_d = item.cta) == null ? void 0 : _d.label })
3330
+ }
3331
+ ) }, index);
3332
+ }
3333
+ return /* @__PURE__ */ jsx("li", { className: Navigation_module_default.navTab, children: /* @__PURE__ */ jsxs(
3334
+ "button",
3335
+ {
3336
+ type: "button",
3337
+ id: `${baseId}-trigger-${index}`,
3338
+ className: clsx47(
3339
+ Navigation_module_default.navTabLink,
3340
+ Navigation_module_default.navTabTrigger,
3341
+ (item.isActive || isOpen) && Navigation_module_default.navTabActive,
3342
+ isOpen && Navigation_module_default.navTabTriggerOpen
3343
+ ),
3344
+ "aria-expanded": isOpen,
3345
+ "aria-haspopup": "true",
3346
+ "aria-controls": `${baseId}-panel-${index}`,
3347
+ onMouseEnter: () => onOpen(index),
3348
+ onMouseLeave: onScheduleClose,
3349
+ onFocus: () => onOpen(index),
3350
+ onClick: () => onOpen(isOpen ? null : index),
3351
+ onKeyDown: (e) => handleTriggerKeyDown(e, index),
3352
+ children: [
3353
+ /* @__PURE__ */ jsx("span", { children: item.title }),
3354
+ /* @__PURE__ */ jsx(
3355
+ Icon,
3356
+ {
3357
+ type: isTransparent ? "downChevronWhite" : "downChevronBlack",
3358
+ size: 24,
3359
+ "aria-hidden": "true"
3360
+ }
3361
+ )
3362
+ ]
3363
+ }
3364
+ ) }, index);
3365
+ }) });
3366
+ };
3367
+ var NavigationDropdown = ({
3368
+ item,
3369
+ panelId,
3370
+ baseId,
3371
+ activeIndex,
3372
+ onClose,
3373
+ onMouseEnter,
3374
+ onMouseLeave
3375
+ }) => {
3376
+ if (item.type !== "dropdown") return null;
3377
+ const { title, description, items } = item;
3378
+ const links = items.filter((sub) => sub.type === "link");
3379
+ const handleLinkKeyDown = (e, isFirst, isLast) => {
3380
+ if (e.key !== "Tab") return;
3381
+ const trigger = document.getElementById(`${baseId}-trigger-${activeIndex}`);
3382
+ if (e.shiftKey && isFirst) {
3383
+ e.preventDefault();
3384
+ trigger == null ? void 0 : trigger.focus();
3385
+ } else if (!e.shiftKey && isLast) {
3386
+ const nav = trigger == null ? void 0 : trigger.closest("nav");
3387
+ const panel = document.getElementById(panelId);
3388
+ const focusables = nav ? Array.from(
3389
+ nav.querySelectorAll(
3390
+ 'a[href], button:not([disabled]), input:not([disabled]), select, textarea, [tabindex]:not([tabindex="-1"])'
3391
+ )
3392
+ ).filter((el) => !(panel == null ? void 0 : panel.contains(el))) : [];
3393
+ const next = trigger ? focusables[focusables.indexOf(trigger) + 1] : void 0;
3394
+ onClose();
3395
+ if (next) {
3396
+ e.preventDefault();
3397
+ next.focus();
3398
+ }
3399
+ }
3400
+ };
3401
+ return /* @__PURE__ */ jsx(
3402
+ "div",
3403
+ {
3404
+ id: panelId,
3405
+ className: clsx47(Navigation_module_default.internalDropdownPanel, Navigation_module_default.internalDropdownPanelOpen),
3406
+ onMouseEnter,
3407
+ onMouseLeave,
3408
+ children: /* @__PURE__ */ jsxs("div", { className: Navigation_module_default.internalDropdownInner, children: [
3409
+ /* @__PURE__ */ jsx("ul", { className: Navigation_module_default.internalDropdownLinks, children: links.map((sub, i) => {
3410
+ var _a, _b, _c, _d;
3411
+ return /* @__PURE__ */ jsx(
3412
+ "li",
3413
+ {
3414
+ className: clsx47(Navigation_module_default.dropdownLinkItem, {
3415
+ [Navigation_module_default.dropdownLinkSpacer]: sub.variant === "subMenuSpacer"
3416
+ }),
3417
+ children: /* @__PURE__ */ jsx(
3418
+ "a",
3419
+ {
3420
+ href: (_a = sub.cta) == null ? void 0 : _a.url,
3421
+ className: Navigation_module_default.internalDropdownLink,
3422
+ target: ((_b = sub.cta) == null ? void 0 : _b.isExternal) ? "_blank" : void 0,
3423
+ rel: ((_c = sub.cta) == null ? void 0 : _c.isExternal) ? "noopener noreferrer" : void 0,
3424
+ onKeyDown: (e) => handleLinkKeyDown(e, i === 0, i === links.length - 1),
3425
+ children: (_d = sub.cta) == null ? void 0 : _d.label
3426
+ }
3427
+ )
3428
+ },
3429
+ i
3430
+ );
3431
+ }) }),
3432
+ /* @__PURE__ */ jsx("span", { className: Navigation_module_default.dropdownDivider, "aria-hidden": "true" }),
3433
+ /* @__PURE__ */ jsxs("div", { className: Navigation_module_default.internalDropdownInfo, children: [
3434
+ /* @__PURE__ */ jsx("h2", { className: Navigation_module_default.internalDropdownTitle, children: title }),
3435
+ description && /* @__PURE__ */ jsx("p", { className: Navigation_module_default.internalDropdownDescription, children: description })
3436
+ ] })
3437
+ ] })
3438
+ }
3439
+ );
3440
+ };
3089
3441
  var NavigationMobile = ({
3090
3442
  id,
3091
- navigationItems,
3443
+ navItems,
3092
3444
  mainLogo,
3445
+ logoAlt = "EssilorLuxottica Eye Care",
3093
3446
  homeCta,
3094
- loginCta,
3095
- rightButton,
3447
+ user,
3448
+ searchPlaceholder,
3449
+ searchCta,
3450
+ onSearch,
3096
3451
  isOpen,
3097
- onClose
3452
+ onClose,
3453
+ isExternal = false,
3454
+ loginCta,
3455
+ rightButton
3098
3456
  }) => {
3099
- var _a;
3100
3457
  const [expanded, setExpanded] = useState([]);
3101
3458
  const baseId = useId();
3102
3459
  const toggleExpanded = (index) => {
3103
3460
  setExpanded((prev) => prev.includes(index) ? prev.filter((i) => i !== index) : [...prev, index]);
3104
3461
  };
3462
+ const logo = mainLogo ? /* @__PURE__ */ jsx(Picture, { className: Navigation_module_default.logoMobile, src: mainLogo, alt: logoAlt }) : null;
3463
+ if (isExternal) {
3464
+ return /* @__PURE__ */ jsxs(
3465
+ "div",
3466
+ {
3467
+ id,
3468
+ className: clsx47(Navigation_module_default.mobileMenu, isOpen && Navigation_module_default.mobileMenuOpen),
3469
+ role: "dialog",
3470
+ "aria-modal": "true",
3471
+ "aria-label": "Navigation menu",
3472
+ "aria-hidden": !isOpen,
3473
+ children: [
3474
+ /* @__PURE__ */ jsxs("div", { className: Navigation_module_default.mobileMenuHeader, children: [
3475
+ /* @__PURE__ */ jsx(
3476
+ NavigationLogo,
3477
+ {
3478
+ mainLogo,
3479
+ homeCta,
3480
+ className: Navigation_module_default.mainLogoMobile,
3481
+ onClick: onClose
3482
+ }
3483
+ ),
3484
+ /* @__PURE__ */ jsx(
3485
+ Button,
3486
+ {
3487
+ type: "button",
3488
+ variant: "nofill",
3489
+ className: Navigation_module_default.hamburgerButton,
3490
+ onClick: onClose,
3491
+ "aria-label": "Close navigation menu",
3492
+ children: /* @__PURE__ */ jsx(Icon, { type: "xBlack", size: 24, "aria-hidden": "true" })
3493
+ }
3494
+ )
3495
+ ] }),
3496
+ /* @__PURE__ */ jsx("ul", { className: Navigation_module_default.mobileMenuItems, children: navItems == null ? void 0 : navItems.map((item, index) => {
3497
+ var _a, _b;
3498
+ const subMenuId = `${baseId}-submenu-${index}`;
3499
+ const isExpanded = expanded.includes(index);
3500
+ return item.type === "dropdown" ? /* @__PURE__ */ jsxs("li", { className: Navigation_module_default.mobileItem, children: [
3501
+ /* @__PURE__ */ jsxs(
3502
+ "button",
3503
+ {
3504
+ type: "button",
3505
+ className: Navigation_module_default.mobileItemTrigger,
3506
+ onClick: () => toggleExpanded(index),
3507
+ "aria-expanded": isExpanded,
3508
+ "aria-controls": subMenuId,
3509
+ children: [
3510
+ item.title,
3511
+ /* @__PURE__ */ jsx(
3512
+ "span",
3513
+ {
3514
+ className: clsx47(
3515
+ Navigation_module_default.mobileItemChevron,
3516
+ isExpanded && Navigation_module_default.mobileItemChevronOpen
3517
+ ),
3518
+ "aria-hidden": "true",
3519
+ children: /* @__PURE__ */ jsx(Icon, { type: "downChevronBlack", size: 24 })
3520
+ }
3521
+ )
3522
+ ]
3523
+ }
3524
+ ),
3525
+ /* @__PURE__ */ jsx(
3526
+ "div",
3527
+ {
3528
+ id: subMenuId,
3529
+ className: clsx47(Navigation_module_default.mobileSubItems, isExpanded && Navigation_module_default.mobileSubItemsOpen),
3530
+ children: /* @__PURE__ */ jsx("ul", { className: Navigation_module_default.mobileSubItemsInner, children: item.items.map(
3531
+ (subItem, i) => {
3532
+ var _a2, _b2;
3533
+ return subItem.type === "link" ? /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
3534
+ "a",
3535
+ {
3536
+ href: (_a2 = subItem.cta) == null ? void 0 : _a2.url,
3537
+ className: Navigation_module_default.mobileSubLink,
3538
+ onClick: onClose,
3539
+ children: (_b2 = subItem.cta) == null ? void 0 : _b2.label
3540
+ }
3541
+ ) }, i) : null;
3542
+ }
3543
+ ) })
3544
+ }
3545
+ )
3546
+ ] }, index) : /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("a", { href: (_a = item.cta) == null ? void 0 : _a.url, className: Navigation_module_default.mobileItemLink, onClick: onClose, children: (_b = item.cta) == null ? void 0 : _b.label }) }, index);
3547
+ }) }),
3548
+ /* @__PURE__ */ jsx(
3549
+ NavigationCtas,
3550
+ {
3551
+ className: Navigation_module_default.mobileMenuCtas,
3552
+ loginCta,
3553
+ rightButton,
3554
+ loginVariant: "nofillblack"
3555
+ }
3556
+ )
3557
+ ]
3558
+ }
3559
+ );
3560
+ }
3105
3561
  return /* @__PURE__ */ jsxs(
3106
3562
  "div",
3107
3563
  {
3108
3564
  id,
3109
- className: clsx43(Navigation_module_default.mobileMenu, isOpen && Navigation_module_default.mobileMenuOpen),
3565
+ className: clsx47(Navigation_module_default.internalMobileMenu, isOpen && Navigation_module_default.internalMobileMenuOpen),
3110
3566
  role: "dialog",
3111
3567
  "aria-modal": "true",
3112
3568
  "aria-label": "Navigation menu",
3113
3569
  "aria-hidden": !isOpen,
3114
3570
  children: [
3115
- /* @__PURE__ */ jsxs("div", { className: Navigation_module_default.mobileMenuHeader, children: [
3571
+ /* @__PURE__ */ jsxs("div", { className: Navigation_module_default.mobileHeader, children: [
3572
+ homeCta && logo ? /* @__PURE__ */ jsx("a", { href: homeCta, className: Navigation_module_default.logoLink, "aria-label": logoAlt, onClick: onClose, children: logo }) : logo,
3116
3573
  /* @__PURE__ */ jsx(
3117
- NavigationLogo,
3118
- {
3119
- mainLogo,
3120
- homeCta,
3121
- className: Navigation_module_default.mainLogoMobile,
3122
- onClick: onClose
3123
- }
3124
- ),
3125
- /* @__PURE__ */ jsx(
3126
- "button",
3574
+ Button,
3127
3575
  {
3576
+ variant: "ghost",
3128
3577
  type: "button",
3129
- className: Navigation_module_default.hamburgerButton,
3578
+ className: Navigation_module_default.mobileClose,
3130
3579
  onClick: onClose,
3131
3580
  "aria-label": "Close navigation menu",
3132
3581
  children: /* @__PURE__ */ jsx(Icon, { type: "xBlack", size: 24, "aria-hidden": "true" })
3133
3582
  }
3134
3583
  )
3135
3584
  ] }),
3136
- /* @__PURE__ */ jsx("ul", { className: Navigation_module_default.mobileMenuItems, children: (_a = navigationItems == null ? void 0 : navigationItems.items) == null ? void 0 : _a.map((item, index) => {
3137
- var _a2, _b;
3585
+ /* @__PURE__ */ jsxs("div", { className: Navigation_module_default.mobileBrandBars, "aria-hidden": "true", children: [
3586
+ /* @__PURE__ */ jsx("span", { className: clsx47(Navigation_module_default.brandBar, Navigation_module_default.lenscrafters) }),
3587
+ /* @__PURE__ */ jsx("span", { className: clsx47(Navigation_module_default.brandBar, Navigation_module_default.forEyes) }),
3588
+ /* @__PURE__ */ jsx("span", { className: clsx47(Navigation_module_default.brandBar, Navigation_module_default.optical) }),
3589
+ /* @__PURE__ */ jsx("span", { className: clsx47(Navigation_module_default.brandBar, Navigation_module_default.pearleVision) })
3590
+ ] }),
3591
+ /* @__PURE__ */ jsx("ul", { className: Navigation_module_default.mobileItems, children: navItems == null ? void 0 : navItems.map((item, index) => {
3592
+ var _a, _b, _c, _d;
3138
3593
  const subMenuId = `${baseId}-submenu-${index}`;
3139
3594
  const isExpanded = expanded.includes(index);
3140
- return item.type === "dropdown" ? /* @__PURE__ */ jsxs("li", { className: Navigation_module_default.mobileItem, children: [
3595
+ if (item.type === "link") {
3596
+ return /* @__PURE__ */ jsx("li", { className: Navigation_module_default.internalMobileItem, children: /* @__PURE__ */ jsx(
3597
+ "a",
3598
+ {
3599
+ href: (_a = item.cta) == null ? void 0 : _a.url,
3600
+ className: Navigation_module_default.internalMobileItemLink,
3601
+ target: ((_b = item.cta) == null ? void 0 : _b.isExternal) ? "_blank" : void 0,
3602
+ rel: ((_c = item.cta) == null ? void 0 : _c.isExternal) ? "noopener noreferrer" : void 0,
3603
+ onClick: onClose,
3604
+ children: (_d = item.cta) == null ? void 0 : _d.label
3605
+ }
3606
+ ) }, index);
3607
+ }
3608
+ return /* @__PURE__ */ jsxs("li", { className: Navigation_module_default.internalMobileItem, children: [
3141
3609
  /* @__PURE__ */ jsxs(
3142
3610
  "button",
3143
3611
  {
3144
3612
  type: "button",
3145
- className: Navigation_module_default.mobileItemTrigger,
3613
+ className: Navigation_module_default.internalMobileItemTrigger,
3146
3614
  onClick: () => toggleExpanded(index),
3147
3615
  "aria-expanded": isExpanded,
3148
3616
  "aria-controls": subMenuId,
@@ -3151,9 +3619,9 @@ var NavigationMobile = ({
3151
3619
  /* @__PURE__ */ jsx(
3152
3620
  "span",
3153
3621
  {
3154
- className: clsx43(
3155
- Navigation_module_default.mobileItemChevron,
3156
- isExpanded && Navigation_module_default.mobileItemChevronOpen
3622
+ className: clsx47(
3623
+ Navigation_module_default.internalMobileItemChevron,
3624
+ isExpanded && Navigation_module_default.internalMobileItemChevronOpen
3157
3625
  ),
3158
3626
  "aria-hidden": "true",
3159
3627
  children: /* @__PURE__ */ jsx(Icon, { type: "downChevronBlack", size: 24 })
@@ -3166,129 +3634,273 @@ var NavigationMobile = ({
3166
3634
  "div",
3167
3635
  {
3168
3636
  id: subMenuId,
3169
- className: clsx43(Navigation_module_default.mobileSubItems, isExpanded && Navigation_module_default.mobileSubItemsOpen),
3170
- children: /* @__PURE__ */ jsx("ul", { className: Navigation_module_default.mobileSubItemsInner, children: item.items.map(
3171
- (subItem, i) => {
3172
- var _a3, _b2;
3173
- return subItem.type === "link" ? /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
3637
+ className: clsx47(
3638
+ Navigation_module_default.internalMobileSubItems,
3639
+ isExpanded && Navigation_module_default.internalMobileSubItemsOpen
3640
+ ),
3641
+ children: /* @__PURE__ */ jsx("ul", { className: Navigation_module_default.internalMobileSubItemsInner, children: item.items.map(
3642
+ (sub, i) => {
3643
+ var _a2, _b2, _c2, _d2;
3644
+ return sub.type === "link" ? /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
3174
3645
  "a",
3175
3646
  {
3176
- href: (_a3 = subItem.cta) == null ? void 0 : _a3.url,
3177
- className: Navigation_module_default.mobileSubLink,
3647
+ href: (_a2 = sub.cta) == null ? void 0 : _a2.url,
3648
+ className: Navigation_module_default.internalMobileSubLink,
3649
+ target: ((_b2 = sub.cta) == null ? void 0 : _b2.isExternal) ? "_blank" : void 0,
3650
+ rel: ((_c2 = sub.cta) == null ? void 0 : _c2.isExternal) ? "noopener noreferrer" : void 0,
3178
3651
  onClick: onClose,
3179
- children: (_b2 = subItem.cta) == null ? void 0 : _b2.label
3652
+ children: (_d2 = sub.cta) == null ? void 0 : _d2.label
3180
3653
  }
3181
3654
  ) }, i) : null;
3182
3655
  }
3183
3656
  ) })
3184
3657
  }
3185
3658
  )
3186
- ] }, index) : /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("a", { href: (_a2 = item.cta) == null ? void 0 : _a2.url, className: Navigation_module_default.mobileItemLink, onClick: onClose, children: (_b = item.cta) == null ? void 0 : _b.label }) }, index);
3659
+ ] }, index);
3187
3660
  }) }),
3188
- /* @__PURE__ */ jsx(
3189
- NavigationCtas,
3190
- {
3191
- className: Navigation_module_default.mobileMenuCtas,
3192
- loginCta,
3193
- rightButton,
3194
- loginVariant: "nofillblack"
3195
- }
3196
- )
3661
+ /* @__PURE__ */ jsxs("div", { className: Navigation_module_default.mobileFooter, children: [
3662
+ /* @__PURE__ */ jsx(
3663
+ Search,
3664
+ {
3665
+ variant: "pill",
3666
+ placeholder: searchPlaceholder,
3667
+ searchCta,
3668
+ onSearch
3669
+ }
3670
+ ),
3671
+ user && /* @__PURE__ */ jsx(UserMenu, { user, dropUp: true, fullWidth: true })
3672
+ ] })
3197
3673
  ]
3198
3674
  }
3199
3675
  );
3200
3676
  };
3677
+ var FOCUSABLE_SELECTOR = 'a[href], button:not([disabled]), input:not([disabled]), [tabindex]:not([tabindex="-1"])';
3678
+ var getFocusable = (root) => Array.from(root.querySelectorAll(FOCUSABLE_SELECTOR)).filter(
3679
+ (el) => el.tabIndex !== -1 && el.offsetParent !== null
3680
+ );
3201
3681
  var Navigation2 = (props) => {
3202
- const { className, variant, homeCta, loginCta, mainLogo, rightButton, navigationItems } = props;
3682
+ var _a;
3683
+ const {
3684
+ className,
3685
+ variant,
3686
+ transparent,
3687
+ mainLogo,
3688
+ logoAlt = "EssilorLuxottica Eye Care",
3689
+ homeCta,
3690
+ loginCta,
3691
+ rightButton,
3692
+ navigationItems,
3693
+ user,
3694
+ searchPlaceholder = "Search resources",
3695
+ searchCta,
3696
+ onSearch,
3697
+ brandLogos
3698
+ } = props;
3699
+ const isExternal = variant !== "internal";
3203
3700
  const [isHovered, setIsHovered] = useState(false);
3204
- const [hasOpenDropdown, setHasOpenDropdown] = useState(false);
3701
+ const [openIndex, setOpenIndex] = useState(null);
3205
3702
  const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
3703
+ const navRef = useRef(null);
3704
+ const closeTimer = useRef(null);
3206
3705
  const isAtTop = useIsAtTop();
3207
3706
  const { is } = useViewPort_default();
3208
3707
  const mobileMenuId = useId();
3708
+ const baseId = useId();
3209
3709
  const isTabletBelow = is("tablet", "below");
3210
- const isTransparent = variant === "transparent" && isAtTop && !isHovered && !hasOpenDropdown;
3710
+ const dropdownOpen = openIndex !== null && !isTabletBelow;
3711
+ const isTransparent = !!transparent && isAtTop && !isHovered && !dropdownOpen;
3712
+ const openItem = openIndex !== null ? (_a = navigationItems == null ? void 0 : navigationItems.items) == null ? void 0 : _a[openIndex] : void 0;
3713
+ const showLogoUnfolded = !!brandLogos && isAtTop && !dropdownOpen;
3714
+ const openDropdown = (index) => {
3715
+ if (closeTimer.current) clearTimeout(closeTimer.current);
3716
+ setOpenIndex(index);
3717
+ };
3718
+ const scheduleClose = () => {
3719
+ if (closeTimer.current) clearTimeout(closeTimer.current);
3720
+ closeTimer.current = setTimeout(() => setOpenIndex(null), 120);
3721
+ };
3722
+ const handleNavKeyDown = (e) => {
3723
+ if (e.key !== "Tab" || openIndex === null || !navRef.current) return;
3724
+ const nav = navRef.current;
3725
+ const panelId = `${baseId}-panel-${openIndex}`;
3726
+ const panel = nav.querySelector(`#${CSS.escape(panelId)}`);
3727
+ const trigger = nav.querySelector(`[aria-controls="${panelId}"]`);
3728
+ if (!panel || !trigger) return;
3729
+ const panelItems = getFocusable(panel);
3730
+ if (!panelItems.length) return;
3731
+ const first = panelItems[0];
3732
+ const last = panelItems[panelItems.length - 1];
3733
+ const active = document.activeElement;
3734
+ if (!e.shiftKey && active === trigger) {
3735
+ e.preventDefault();
3736
+ first.focus();
3737
+ return;
3738
+ }
3739
+ if (e.shiftKey && active === first) {
3740
+ e.preventDefault();
3741
+ trigger.focus();
3742
+ return;
3743
+ }
3744
+ if (!e.shiftKey && active === last) {
3745
+ const navItems = getFocusable(nav).filter((el) => !panel.contains(el));
3746
+ const idx = navItems.indexOf(trigger);
3747
+ const next = idx !== -1 ? navItems[idx + 1] : void 0;
3748
+ if (next) {
3749
+ e.preventDefault();
3750
+ next.focus();
3751
+ setOpenIndex(null);
3752
+ }
3753
+ }
3754
+ };
3211
3755
  useEffect(() => {
3212
3756
  document.body.style.overflow = isMobileMenuOpen ? "hidden" : "";
3213
3757
  return () => {
3214
3758
  document.body.style.overflow = "";
3215
3759
  };
3216
3760
  }, [isMobileMenuOpen]);
3761
+ useEffect(() => {
3762
+ if (!dropdownOpen) return;
3763
+ const handleKey = (e) => {
3764
+ if (e.key === "Escape") setOpenIndex(null);
3765
+ };
3766
+ const handleOutside = (e) => {
3767
+ if (navRef.current && !navRef.current.contains(e.target)) {
3768
+ setOpenIndex(null);
3769
+ }
3770
+ };
3771
+ document.addEventListener("keydown", handleKey);
3772
+ document.addEventListener("pointerdown", handleOutside);
3773
+ document.addEventListener("focusin", handleOutside);
3774
+ return () => {
3775
+ document.removeEventListener("keydown", handleKey);
3776
+ document.removeEventListener("pointerdown", handleOutside);
3777
+ document.removeEventListener("focusin", handleOutside);
3778
+ };
3779
+ }, [dropdownOpen]);
3780
+ const logo = mainLogo ? /* @__PURE__ */ jsx(
3781
+ Picture,
3782
+ {
3783
+ className: clsx47(Navigation_module_default.logo, isTabletBelow && Navigation_module_default.logoMobile),
3784
+ src: mainLogo,
3785
+ alt: logoAlt
3786
+ }
3787
+ ) : null;
3217
3788
  return /* @__PURE__ */ jsxs(Fragment, { children: [
3218
- /* @__PURE__ */ jsx(
3219
- "div",
3789
+ /* @__PURE__ */ jsxs(
3790
+ "nav",
3220
3791
  {
3221
- className: clsx43(
3222
- Navigation_module_default.navigationWrapper,
3223
- variant === "transparent" && Navigation_module_default.variantTransparent,
3224
- isTransparent && Navigation_module_default.transparent,
3225
- hasOpenDropdown && !isTabletBelow && Navigation_module_default.dropdownOpen
3792
+ ref: navRef,
3793
+ className: clsx47(
3794
+ Navigation_module_default.Navigation,
3795
+ dropdownOpen && Navigation_module_default.dropdownOpen,
3796
+ // External-only transparent / hover treatment.
3797
+ isExternal && transparent && Navigation_module_default.variantTransparent,
3798
+ isExternal && isTransparent && Navigation_module_default.transparent,
3799
+ className
3226
3800
  ),
3227
- onMouseEnter: () => setIsHovered(true),
3228
- onMouseLeave: () => setIsHovered(false),
3229
- children: /* @__PURE__ */ jsxs("nav", { className: clsx43(Navigation_module_default.navigation, className), "aria-label": "Main", children: [
3230
- /* @__PURE__ */ jsxs("div", { className: Navigation_module_default.upperNav, children: [
3231
- /* @__PURE__ */ jsx(
3232
- NavigationLogo,
3233
- {
3234
- mainLogo,
3235
- homeCta,
3236
- className: clsx43(Navigation_module_default.mainLogo, isTabletBelow && Navigation_module_default.mainLogoMobile)
3237
- }
3238
- ),
3239
- isTabletBelow ? /* @__PURE__ */ jsx(
3240
- "button",
3241
- {
3242
- type: "button",
3243
- className: Navigation_module_default.hamburgerButton,
3244
- onClick: () => setIsMobileMenuOpen(true),
3245
- "aria-label": "Open navigation menu",
3246
- "aria-haspopup": "dialog",
3247
- "aria-expanded": isMobileMenuOpen,
3248
- "aria-controls": mobileMenuId,
3249
- children: /* @__PURE__ */ jsx(
3250
- Icon,
3251
- {
3252
- type: isTransparent ? "menuWhite" : "menuBlack",
3253
- size: 24,
3254
- "aria-hidden": "true"
3255
- }
3256
- )
3257
- }
3258
- ) : /* @__PURE__ */ jsx(
3259
- NavigationCtas,
3260
- {
3261
- className: Navigation_module_default.upperRight,
3262
- loginCta,
3263
- rightButton,
3264
- loginVariant: isTransparent ? "ghost" : "nofillblack"
3265
- }
3266
- )
3267
- ] }),
3268
- isTabletBelow ? /* @__PURE__ */ jsx(
3269
- NavigationMobile,
3270
- {
3271
- id: mobileMenuId,
3272
- navigationItems,
3273
- mainLogo,
3274
- homeCta,
3275
- loginCta,
3276
- rightButton,
3277
- isOpen: isMobileMenuOpen,
3278
- onClose: () => setIsMobileMenuOpen(false)
3279
- }
3280
- ) : /* @__PURE__ */ jsx(
3281
- NavigationDesktop,
3801
+ "aria-label": "Main",
3802
+ onKeyDown: handleNavKeyDown,
3803
+ onMouseEnter: isExternal ? () => setIsHovered(true) : void 0,
3804
+ onMouseLeave: isExternal ? () => setIsHovered(false) : scheduleClose,
3805
+ children: [
3806
+ /* @__PURE__ */ jsx("div", { className: Navigation_module_default.mainBar, children: /* @__PURE__ */ jsxs("div", { className: Navigation_module_default.inner, children: [
3807
+ /* @__PURE__ */ jsxs("div", { className: Navigation_module_default.topRow, children: [
3808
+ homeCta && logo ? /* @__PURE__ */ jsx(
3809
+ NavigationLogo,
3810
+ {
3811
+ mainLogo,
3812
+ homeCta,
3813
+ className: clsx47(Navigation_module_default.logo, isTabletBelow && Navigation_module_default.logoMobile)
3814
+ }
3815
+ ) : logo,
3816
+ isTabletBelow ? /* @__PURE__ */ jsx(
3817
+ Button,
3818
+ {
3819
+ variant: "nofill",
3820
+ type: "button",
3821
+ className: isExternal ? Navigation_module_default.hamburgerButton : Navigation_module_default.hamburger,
3822
+ onClick: () => setIsMobileMenuOpen(true),
3823
+ "aria-label": "Open navigation menu",
3824
+ "aria-haspopup": "dialog",
3825
+ "aria-expanded": isMobileMenuOpen,
3826
+ "aria-controls": mobileMenuId,
3827
+ children: /* @__PURE__ */ jsx(
3828
+ Icon,
3829
+ {
3830
+ type: isExternal && isTransparent ? "menuWhite" : "menuBlack",
3831
+ size: 24,
3832
+ "aria-hidden": "true"
3833
+ }
3834
+ )
3835
+ }
3836
+ ) : isExternal ? /* @__PURE__ */ jsx(
3837
+ NavigationCtas,
3838
+ {
3839
+ className: Navigation_module_default.upperRight,
3840
+ loginCta,
3841
+ rightButton,
3842
+ loginVariant: isTransparent ? "ghost" : "nofillblack"
3843
+ }
3844
+ ) : user && /* @__PURE__ */ jsx(UserMenu, { user })
3845
+ ] }),
3846
+ !isTabletBelow && /* @__PURE__ */ jsxs("div", { className: Navigation_module_default.bottomRow, children: [
3847
+ /* @__PURE__ */ jsx(
3848
+ NavigationDesktop,
3849
+ {
3850
+ navItems: navigationItems == null ? void 0 : navigationItems.items,
3851
+ openIndex,
3852
+ onOpen: openDropdown,
3853
+ onScheduleClose: scheduleClose,
3854
+ baseId,
3855
+ isTransparent
3856
+ }
3857
+ ),
3858
+ !isExternal && /* @__PURE__ */ jsx(
3859
+ Search,
3860
+ {
3861
+ placeholder: searchPlaceholder,
3862
+ searchCta,
3863
+ onSearch
3864
+ }
3865
+ )
3866
+ ] })
3867
+ ] }) }),
3868
+ !isExternal && /* @__PURE__ */ jsx(NavigationBrandBars, { brandLogos, unfolded: showLogoUnfolded }),
3869
+ dropdownOpen && (openItem == null ? void 0 : openItem.type) === "dropdown" && /* @__PURE__ */ jsx(
3870
+ NavigationDropdown,
3282
3871
  {
3283
- navigationItems,
3284
- isTransparent,
3285
- onDropdownOpenChange: setHasOpenDropdown
3872
+ item: openItem,
3873
+ panelId: `${baseId}-panel-${openIndex}`,
3874
+ baseId,
3875
+ activeIndex: openIndex,
3876
+ onClose: () => setOpenIndex(null),
3877
+ onMouseEnter: () => openDropdown(openIndex),
3878
+ onMouseLeave: scheduleClose
3286
3879
  }
3287
3880
  )
3288
- ] })
3881
+ ]
3289
3882
  }
3290
3883
  ),
3291
- hasOpenDropdown && !isTabletBelow && /* @__PURE__ */ jsx("div", { className: Navigation_module_default.overlay, "aria-hidden": "true" })
3884
+ dropdownOpen && /* @__PURE__ */ jsx("div", { className: Navigation_module_default.overlay, "aria-hidden": "true" }),
3885
+ isTabletBelow && /* @__PURE__ */ jsx(
3886
+ NavigationMobile,
3887
+ {
3888
+ id: mobileMenuId,
3889
+ navItems: navigationItems == null ? void 0 : navigationItems.items,
3890
+ mainLogo,
3891
+ logoAlt,
3892
+ homeCta,
3893
+ user,
3894
+ searchPlaceholder,
3895
+ searchCta,
3896
+ onSearch,
3897
+ isOpen: isMobileMenuOpen,
3898
+ onClose: () => setIsMobileMenuOpen(false),
3899
+ isExternal,
3900
+ loginCta,
3901
+ rightButton
3902
+ }
3903
+ )
3292
3904
  ] });
3293
3905
  };
3294
3906
  var PracticePathCardsFooter = ({ children }) => {
@@ -3330,7 +3942,7 @@ var PracticePathCards = ({
3330
3942
  const titleNode = (_a = slots.title) != null ? _a : title;
3331
3943
  const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
3332
3944
  const footerNode = (_c = slots.footer) != null ? _c : footer;
3333
- return /* @__PURE__ */ jsx("div", { className: clsx43(PracticePathCards_module_default["practice-path-cards"], className), children: /* @__PURE__ */ jsxs(Container, { className: PracticePathCards_module_default.container, children: [
3945
+ return /* @__PURE__ */ jsx("div", { className: clsx47(PracticePathCards_module_default["practice-path-cards"], className), children: /* @__PURE__ */ jsxs(Container, { className: PracticePathCards_module_default.container, children: [
3334
3946
  /* @__PURE__ */ jsxs("div", { className: PracticePathCards_module_default.wrapper, children: [
3335
3947
  /* @__PURE__ */ jsxs("div", { className: PracticePathCards_module_default.content, children: [
3336
3948
  titleNode && /* @__PURE__ */ jsx("h2", { children: titleNode }),
@@ -3384,8 +3996,8 @@ var Teaser5050With3Text = ({
3384
3996
  title: Teaser5050With3TextTitle
3385
3997
  });
3386
3998
  const titleNode = (_a = slots.title) != null ? _a : title;
3387
- return /* @__PURE__ */ jsx("div", { className: clsx43(Teaser5050With3Text_module_default["teaser5050-3text"], Teaser5050With3Text_module_default[variant], className), children: /* @__PURE__ */ jsxs(Container, { className: Teaser5050With3Text_module_default.container, children: [
3388
- titleNode && /* @__PURE__ */ jsx("div", { className: clsx43(Teaser5050With3Text_module_default.title, "h3"), children: titleNode }),
3999
+ return /* @__PURE__ */ jsx("div", { className: clsx47(Teaser5050With3Text_module_default["teaser5050-3text"], Teaser5050With3Text_module_default[variant], className), children: /* @__PURE__ */ jsxs(Container, { className: Teaser5050With3Text_module_default.container, children: [
4000
+ titleNode && /* @__PURE__ */ jsx("div", { className: clsx47(Teaser5050With3Text_module_default.title, "h3"), children: titleNode }),
3389
4001
  /* @__PURE__ */ jsxs("div", { className: Teaser5050With3Text_module_default.content, children: [
3390
4002
  /* @__PURE__ */ jsx("div", { className: Teaser5050With3Text_module_default.cards, children: cards == null ? void 0 : cards.map((card, key) => /* @__PURE__ */ jsx(InfoCard2, __spreadValues({}, card), key)) }),
3391
4003
  image && /* @__PURE__ */ jsx(Picture, __spreadValues({ className: Teaser5050With3Text_module_default.image }, image))
@@ -3435,12 +4047,12 @@ var Teaser5050WithCta = ({
3435
4047
  return /* @__PURE__ */ jsx(
3436
4048
  "div",
3437
4049
  {
3438
- className: clsx43(Teaser5050WithCta_module_default.teaser5050, Teaser5050WithCta_module_default[variant], className),
4050
+ className: clsx47(Teaser5050WithCta_module_default.teaser5050, Teaser5050WithCta_module_default[variant], className),
3439
4051
  style: { backgroundColor: bgColor ? bgColor : "#ffffff" },
3440
4052
  children: /* @__PURE__ */ jsxs(Container, { className: Teaser5050WithCta_module_default.container, children: [
3441
4053
  /* @__PURE__ */ jsxs("div", { className: Teaser5050WithCta_module_default.wrapper, children: [
3442
4054
  /* @__PURE__ */ jsxs("div", { className: Teaser5050WithCta_module_default.content, children: [
3443
- titleNode && /* @__PURE__ */ jsx("div", { className: clsx43(Teaser5050WithCta_module_default.title, "h3"), children: titleNode }),
4055
+ titleNode && /* @__PURE__ */ jsx("div", { className: clsx47(Teaser5050WithCta_module_default.title, "h3"), children: titleNode }),
3444
4056
  subtitleNode && /* @__PURE__ */ jsx("div", { className: "subheading", children: subtitleNode })
3445
4057
  ] }),
3446
4058
  /* @__PURE__ */ jsx("div", { className: Teaser5050WithCta_module_default.ctaWrapper, children: ctas.map((cta, key) => /* @__PURE__ */ jsx(
@@ -3492,7 +4104,7 @@ var Carousel = (_a) => {
3492
4104
  },
3493
4105
  role: "region",
3494
4106
  "aria-label": ariaLabel,
3495
- className: clsx43(Carousel_module_default.carousel, className),
4107
+ className: clsx47(Carousel_module_default.carousel, className),
3496
4108
  spaceBetween: 0,
3497
4109
  slidesPerView: "auto",
3498
4110
  modules: [FreeMode, A11y],
@@ -3502,7 +4114,7 @@ var Carousel = (_a) => {
3502
4114
  children: slides.map((slide, index) => /* @__PURE__ */ jsx(
3503
4115
  SwiperSlide,
3504
4116
  {
3505
- className: clsx43(Carousel_module_default["carousel-item"], props.slideClass),
4117
+ className: clsx47(Carousel_module_default["carousel-item"], props.slideClass),
3506
4118
  children: slide
3507
4119
  },
3508
4120
  index
@@ -3559,13 +4171,13 @@ var EventList = ({
3559
4171
  return /* @__PURE__ */ jsx(
3560
4172
  "div",
3561
4173
  {
3562
- className: clsx43("event-list-module", EventList_module_default["event-list-module"], className),
4174
+ className: clsx47("event-list-module", EventList_module_default["event-list-module"], className),
3563
4175
  style: {
3564
4176
  backgroundColor
3565
4177
  },
3566
- children: /* @__PURE__ */ jsxs(Container, { className: clsx43(EventList_module_default["event-list-container"]), children: [
4178
+ children: /* @__PURE__ */ jsxs(Container, { className: clsx47(EventList_module_default["event-list-container"]), children: [
3567
4179
  /* @__PURE__ */ jsxs("div", { className: EventList_module_default["event-list-header-container"], children: [
3568
- titleNode && /* @__PURE__ */ jsx("h2", { className: clsx43(EventList_module_default["event-list-title"]), children: titleNode }),
4180
+ titleNode && /* @__PURE__ */ jsx("h2", { className: clsx47(EventList_module_default["event-list-title"]), children: titleNode }),
3569
4181
  cta && cta.url && /* @__PURE__ */ jsx(
3570
4182
  Button,
3571
4183
  {
@@ -3583,7 +4195,7 @@ var EventList = ({
3583
4195
  Carousel,
3584
4196
  {
3585
4197
  "aria-label": "Upcoming events",
3586
- wrapperClass: clsx43(EventList_module_default["carousel-wrapper"], EventList_module_default[variant]),
4198
+ wrapperClass: clsx47(EventList_module_default["carousel-wrapper"], EventList_module_default[variant]),
3587
4199
  slideClass: EventList_module_default["carousel-list-item"],
3588
4200
  spaceBetween: 16,
3589
4201
  slides: items.map((item) => {
@@ -3591,7 +4203,7 @@ var EventList = ({
3591
4203
  return /* @__PURE__ */ jsx(
3592
4204
  UpcomingEventCard,
3593
4205
  __spreadValues({
3594
- className: clsx43(EventList_module_default["event-card"]),
4206
+ className: clsx47(EventList_module_default["event-card"]),
3595
4207
  direction: "vertical",
3596
4208
  showImage: false
3597
4209
  }, item),
@@ -3604,7 +4216,7 @@ var EventList = ({
3604
4216
  "ul",
3605
4217
  {
3606
4218
  "aria-label": "Upcoming events",
3607
- className: clsx43(
4219
+ className: clsx47(
3608
4220
  EventList_module_default["event-list-wrapper"],
3609
4221
  EventList_module_default["horizontal"],
3610
4222
  EventList_module_default[variant]
@@ -3614,11 +4226,11 @@ var EventList = ({
3614
4226
  return /* @__PURE__ */ jsx(
3615
4227
  "li",
3616
4228
  {
3617
- className: clsx43(EventList_module_default["card-list-item"]),
4229
+ className: clsx47(EventList_module_default["card-list-item"]),
3618
4230
  children: /* @__PURE__ */ jsx(
3619
4231
  UpcomingEventCard,
3620
4232
  __spreadProps(__spreadValues({}, item), {
3621
- className: clsx43(EventList_module_default["card-item"]),
4233
+ className: clsx47(EventList_module_default["card-item"]),
3622
4234
  showImage: false,
3623
4235
  direction: "vertical"
3624
4236
  })
@@ -3633,7 +4245,7 @@ var EventList = ({
3633
4245
  "ul",
3634
4246
  {
3635
4247
  "aria-label": "Upcoming events",
3636
- className: clsx43(EventList_module_default["event-list-wrapper"], EventList_module_default[listDirection]),
4248
+ className: clsx47(EventList_module_default["event-list-wrapper"], EventList_module_default[listDirection]),
3637
4249
  children: items == null ? void 0 : items.map((item, index) => {
3638
4250
  var _a2, _b, _c;
3639
4251
  return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(UpcomingEventCard, __spreadProps(__spreadValues({}, item), { direction: cardDirection })) }, (_c = (_b = (_a2 = item.title) != null ? _a2 : item.date) != null ? _b : item.location) != null ? _c : index);
@@ -3641,8 +4253,8 @@ var EventList = ({
3641
4253
  }
3642
4254
  )
3643
4255
  ] }),
3644
- !isNotEmpty && emptyNode ? React69.cloneElement(emptyNode, {
3645
- className: clsx43("empty-search-result", EventList_module_default["empty-search-result"])
4256
+ !isNotEmpty && emptyNode ? React70.cloneElement(emptyNode, {
4257
+ className: clsx47("empty-search-result", EventList_module_default["empty-search-result"])
3646
4258
  }) : null
3647
4259
  ] })
3648
4260
  }
@@ -3686,9 +4298,9 @@ var TextEvent = (props) => {
3686
4298
  });
3687
4299
  const titleNode = (_a = slots.title) != null ? _a : title;
3688
4300
  const richTextNode = (_b = slots.richText) != null ? _b : richText;
3689
- return /* @__PURE__ */ jsxs(Container, { className: clsx43(TextEvent_module_default.textEvent, className), children: [
4301
+ return /* @__PURE__ */ jsxs(Container, { className: clsx47(TextEvent_module_default.textEvent, className), children: [
3690
4302
  /* @__PURE__ */ jsx(Text, { tag: "h2", className: TextEvent_module_default.title, children: titleNode }),
3691
- /* @__PURE__ */ jsx("div", { className: clsx43(TextEvent_module_default.richText, TextEvent_module_default[variant != null ? variant : ""]), children: richTextNode })
4303
+ /* @__PURE__ */ jsx("div", { className: clsx47(TextEvent_module_default.richText, TextEvent_module_default[variant != null ? variant : ""]), children: richTextNode })
3692
4304
  ] });
3693
4305
  };
3694
4306
 
@@ -3719,7 +4331,7 @@ var TextBody = (props) => {
3719
4331
  });
3720
4332
  const titleNode = (_a = slots.title) != null ? _a : title;
3721
4333
  const bodyNode = (_b = slots.body) != null ? _b : body;
3722
- return /* @__PURE__ */ jsxs(Container, { className: clsx43(TextBody_module_default.textBody, className), children: [
4334
+ return /* @__PURE__ */ jsxs(Container, { className: clsx47(TextBody_module_default.textBody, className), children: [
3723
4335
  titleNode && /* @__PURE__ */ jsx(Text, { tag: "h2", className: TextBody_module_default.title, children: titleNode }),
3724
4336
  /* @__PURE__ */ jsx("div", { className: TextBody_module_default.body, children: bodyNode })
3725
4337
  ] });
@@ -3762,7 +4374,7 @@ var TextCenterCtaInBottom = ({
3762
4374
  });
3763
4375
  const titleNode = (_a = slots.title) != null ? _a : title;
3764
4376
  const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
3765
- return /* @__PURE__ */ jsx("div", { className: clsx43(TextCenterCtaInBottom_module_default.textCenterCta, className), children: /* @__PURE__ */ jsxs(Container, { className: TextCenterCtaInBottom_module_default.container, children: [
4377
+ return /* @__PURE__ */ jsx("div", { className: clsx47(TextCenterCtaInBottom_module_default.textCenterCta, className), children: /* @__PURE__ */ jsxs(Container, { className: TextCenterCtaInBottom_module_default.container, children: [
3766
4378
  /* @__PURE__ */ jsxs("div", { className: TextCenterCtaInBottom_module_default.content, children: [
3767
4379
  titleNode && /* @__PURE__ */ jsx("div", { className: TextCenterCtaInBottom_module_default.title, children: titleNode }),
3768
4380
  subtitleNode && /* @__PURE__ */ jsx("div", { className: TextCenterCtaInBottom_module_default.subtitle, children: subtitleNode })
@@ -3770,7 +4382,7 @@ var TextCenterCtaInBottom = ({
3770
4382
  !!(ctas == null ? void 0 : ctas.length) && /* @__PURE__ */ jsx(
3771
4383
  "div",
3772
4384
  {
3773
- className: clsx43(
4385
+ className: clsx47(
3774
4386
  TextCenterCtaInBottom_module_default.ctaWrapper,
3775
4387
  ctas.every((cta) => !cta.label && cta.logo) && TextCenterCtaInBottom_module_default.iconOnly
3776
4388
  ),
@@ -3882,7 +4494,7 @@ var ResourcesGridList = ({
3882
4494
  const safeCurrentPage = Math.min(currentPage, totalPages);
3883
4495
  const pageStart = (safeCurrentPage - 1) * ITEMS_PER_PAGE;
3884
4496
  const paginatedItems = displayedItems.slice(pageStart, pageStart + ITEMS_PER_PAGE);
3885
- return /* @__PURE__ */ jsxs("div", { ref: widgetRef, className: clsx43(ResourcesGridList_module_default.widget, className), children: [
4497
+ return /* @__PURE__ */ jsxs("div", { ref: widgetRef, className: clsx47(ResourcesGridList_module_default.widget, className), children: [
3886
4498
  /* @__PURE__ */ jsx(
3887
4499
  FilterBar,
3888
4500
  {
@@ -3901,7 +4513,7 @@ var ResourcesGridList = ({
3901
4513
  isMobile && /* @__PURE__ */ jsxs(
3902
4514
  "div",
3903
4515
  {
3904
- className: clsx43(
4516
+ className: clsx47(
3905
4517
  ResourcesGridList_module_default.mobileSidebarOverlay,
3906
4518
  isSidebarOpen && ResourcesGridList_module_default.mobileSidebarOverlayOpen
3907
4519
  ),
@@ -3912,7 +4524,7 @@ var ResourcesGridList = ({
3912
4524
  return /* @__PURE__ */ jsxs(
3913
4525
  "li",
3914
4526
  {
3915
- className: clsx43(
4527
+ className: clsx47(
3916
4528
  ResourcesGridList_module_default.mobileSidebarItem,
3917
4529
  i === selectedCategory && ResourcesGridList_module_default.active
3918
4530
  ),
@@ -3957,7 +4569,7 @@ var ResourcesGridList = ({
3957
4569
  onSelect: handleSelectCategory
3958
4570
  }
3959
4571
  ),
3960
- /* @__PURE__ */ jsx("div", { className: clsx43(ResourcesGridList_module_default.cardsArea, ResourcesGridList_module_default[view]), children: paginatedItems.map((item) => /* @__PURE__ */ jsx(ResourceCardItem, { item, view }, item.id)) })
4572
+ /* @__PURE__ */ jsx("div", { className: clsx47(ResourcesGridList_module_default.cardsArea, ResourcesGridList_module_default[view]), children: paginatedItems.map((item) => /* @__PURE__ */ jsx(ResourceCardItem, { item, view }, item.id)) })
3961
4573
  ] }),
3962
4574
  totalPages > 1 && /* @__PURE__ */ jsx(
3963
4575
  Pagination,
@@ -3990,7 +4602,7 @@ var Grid = ({
3990
4602
  return /* @__PURE__ */ jsx(
3991
4603
  Component,
3992
4604
  {
3993
- className: clsx43("grid", Grid_module_default.grid, className),
4605
+ className: clsx47("grid", Grid_module_default.grid, className),
3994
4606
  role,
3995
4607
  "aria-label": ariaLabel,
3996
4608
  "aria-labelledby": ariaLabelledBy,
@@ -4015,7 +4627,7 @@ var GridItem = ({
4015
4627
  return /* @__PURE__ */ jsx(
4016
4628
  Component,
4017
4629
  {
4018
- className: clsx43("grid-item", Grid_module_default["grid-item"], className),
4630
+ className: clsx47("grid-item", Grid_module_default["grid-item"], className),
4019
4631
  role,
4020
4632
  "aria-label": ariaLabel,
4021
4633
  "aria-labelledby": ariaLabelledBy,
@@ -4063,13 +4675,13 @@ var BlogCardGrid = ({
4063
4675
  title: BlogCardGridTitle
4064
4676
  });
4065
4677
  const titleNode = (_a = slots.title) != null ? _a : title;
4066
- const content = /* @__PURE__ */ jsxs("div", { className: clsx43("wrapper", BlogCardGrid_module_default["wrapper"]), children: [
4067
- title && /* @__PURE__ */ jsxs("div", { className: clsx43("header-container", BlogCardGrid_module_default["header-container"]), children: [
4068
- titleNode && typeof titleNode === "string" ? /* @__PURE__ */ jsx(Text, { tag: "h4", className: clsx43("title", BlogCardGrid_module_default["title"]), children: titleNode }) : titleNode,
4069
- cta && (cta == null ? void 0 : cta.url) && /* @__PURE__ */ jsx("div", { className: clsx43("cta-wrapper", BlogCardGrid_module_default["cta-wrapper"]), children: /* @__PURE__ */ jsx(
4678
+ const content = /* @__PURE__ */ jsxs("div", { className: clsx47("wrapper", BlogCardGrid_module_default["wrapper"]), children: [
4679
+ title && /* @__PURE__ */ jsxs("div", { className: clsx47("header-container", BlogCardGrid_module_default["header-container"]), children: [
4680
+ titleNode && typeof titleNode === "string" ? /* @__PURE__ */ jsx(Text, { tag: "h4", className: clsx47("title", BlogCardGrid_module_default["title"]), children: titleNode }) : titleNode,
4681
+ cta && (cta == null ? void 0 : cta.url) && /* @__PURE__ */ jsx("div", { className: clsx47("cta-wrapper", BlogCardGrid_module_default["cta-wrapper"]), children: /* @__PURE__ */ jsx(
4070
4682
  Button,
4071
4683
  {
4072
- className: clsx43("cta", BlogCardGrid_module_default["cta"]),
4684
+ className: clsx47("cta", BlogCardGrid_module_default["cta"]),
4073
4685
  variant: "nofillblack",
4074
4686
  href: cta.url,
4075
4687
  isExternal: cta == null ? void 0 : cta.isExternal,
@@ -4095,11 +4707,11 @@ var BlogCardGrid = ({
4095
4707
  return /* @__PURE__ */ jsx(
4096
4708
  "div",
4097
4709
  {
4098
- className: clsx43("blog-card-grid", BlogCardGrid_module_default["blog-card-grid"], className),
4710
+ className: clsx47("blog-card-grid", BlogCardGrid_module_default["blog-card-grid"], className),
4099
4711
  style: {
4100
4712
  backgroundColor
4101
4713
  },
4102
- children: hasContainer ? /* @__PURE__ */ jsx(Container, { className: clsx43("container", BlogCardGrid_module_default["container"]), children: content }) : content
4714
+ children: hasContainer ? /* @__PURE__ */ jsx(Container, { className: clsx47("container", BlogCardGrid_module_default["container"]), children: content }) : content
4103
4715
  }
4104
4716
  );
4105
4717
  };
@@ -4147,13 +4759,13 @@ var FeaturedNewsHighlights = ({
4147
4759
  const sideCards = items.slice(1);
4148
4760
  const isVariantHome = variant === "home";
4149
4761
  const isBelowTablet = is("tablet", "below");
4150
- const content = /* @__PURE__ */ jsxs("div", { className: clsx43("wrapper", FeaturedNewsHighlights_module_default["wrapper"]), children: [
4151
- title && cta && /* @__PURE__ */ jsxs("div", { className: clsx43("header-container", FeaturedNewsHighlights_module_default["header-container"]), children: [
4762
+ const content = /* @__PURE__ */ jsxs("div", { className: clsx47("wrapper", FeaturedNewsHighlights_module_default["wrapper"]), children: [
4763
+ title && cta && /* @__PURE__ */ jsxs("div", { className: clsx47("header-container", FeaturedNewsHighlights_module_default["header-container"]), children: [
4152
4764
  titleNode && typeof titleNode === "string" ? /* @__PURE__ */ jsx(Text, { tag: "h2", children: titleNode }) : titleNode,
4153
- cta && (cta == null ? void 0 : cta.url) && /* @__PURE__ */ jsx("div", { className: clsx43("cta-wrapper", FeaturedNewsHighlights_module_default["cta-wrapper"]), children: /* @__PURE__ */ jsx(
4765
+ cta && (cta == null ? void 0 : cta.url) && /* @__PURE__ */ jsx("div", { className: clsx47("cta-wrapper", FeaturedNewsHighlights_module_default["cta-wrapper"]), children: /* @__PURE__ */ jsx(
4154
4766
  Button,
4155
4767
  {
4156
- className: clsx43("cta", FeaturedNewsHighlights_module_default["cta"]),
4768
+ className: clsx47("cta", FeaturedNewsHighlights_module_default["cta"]),
4157
4769
  variant: "nofillblack",
4158
4770
  href: cta.url,
4159
4771
  isExternal: cta == null ? void 0 : cta.isExternal,
@@ -4165,9 +4777,9 @@ var FeaturedNewsHighlights = ({
4165
4777
  isVariantHome && isBelowTablet && /* @__PURE__ */ jsx(
4166
4778
  Carousel,
4167
4779
  {
4168
- className: clsx43("carousel", FeaturedNewsHighlights_module_default["carousel"]),
4780
+ className: clsx47("carousel", FeaturedNewsHighlights_module_default["carousel"]),
4169
4781
  "aria-label": "featured news",
4170
- wrapperClass: clsx43(FeaturedNewsHighlights_module_default["carousel-wrapper"]),
4782
+ wrapperClass: clsx47(FeaturedNewsHighlights_module_default["carousel-wrapper"]),
4171
4783
  slideClass: FeaturedNewsHighlights_module_default["carousel-list-item"],
4172
4784
  spaceBetween: 16,
4173
4785
  slides: items.map((item, index) => {
@@ -4176,27 +4788,27 @@ var FeaturedNewsHighlights = ({
4176
4788
  NewsCard,
4177
4789
  __spreadProps(__spreadValues({}, item), {
4178
4790
  direction: "vertical",
4179
- className: clsx43("carousel-news-card", FeaturedNewsHighlights_module_default["carousel-news-card"])
4791
+ className: clsx47("carousel-news-card", FeaturedNewsHighlights_module_default["carousel-news-card"])
4180
4792
  }),
4181
4793
  (_a2 = item == null ? void 0 : item.title) != null ? _a2 : index
4182
4794
  );
4183
4795
  })
4184
4796
  }
4185
4797
  ),
4186
- (!isVariantHome || isVariantHome && !isBelowTablet) && /* @__PURE__ */ jsxs("div", { className: clsx43("content-wrapper", FeaturedNewsHighlights_module_default["content-wrapper"]), children: [
4798
+ (!isVariantHome || isVariantHome && !isBelowTablet) && /* @__PURE__ */ jsxs("div", { className: clsx47("content-wrapper", FeaturedNewsHighlights_module_default["content-wrapper"]), children: [
4187
4799
  featuredCard && /* @__PURE__ */ jsx(
4188
4800
  NewsCard,
4189
4801
  __spreadProps(__spreadValues({}, featuredCard), {
4190
- className: clsx43("featured-card", FeaturedNewsHighlights_module_default["featured-card"]),
4802
+ className: clsx47("featured-card", FeaturedNewsHighlights_module_default["featured-card"]),
4191
4803
  renderLink
4192
4804
  })
4193
4805
  ),
4194
- sideCards && sideCards.length > 0 && /* @__PURE__ */ jsx("div", { className: clsx43("side-content", FeaturedNewsHighlights_module_default["side-content"]), children: sideCards.map((card, index) => {
4806
+ sideCards && sideCards.length > 0 && /* @__PURE__ */ jsx("div", { className: clsx47("side-content", FeaturedNewsHighlights_module_default["side-content"]), children: sideCards.map((card, index) => {
4195
4807
  var _a2;
4196
4808
  return /* @__PURE__ */ jsx(
4197
4809
  NewsCard,
4198
4810
  __spreadProps(__spreadValues({}, card), {
4199
- className: clsx43("side-cards", FeaturedNewsHighlights_module_default["side-cards"]),
4811
+ className: clsx47("side-cards", FeaturedNewsHighlights_module_default["side-cards"]),
4200
4812
  direction: "horizontal",
4201
4813
  renderLink
4202
4814
  }),
@@ -4208,11 +4820,11 @@ var FeaturedNewsHighlights = ({
4208
4820
  return /* @__PURE__ */ jsx(
4209
4821
  "div",
4210
4822
  {
4211
- className: clsx43("featured-news-higlights", FeaturedNewsHighlights_module_default["featured-news-higlights"], className),
4823
+ className: clsx47("featured-news-higlights", FeaturedNewsHighlights_module_default["featured-news-higlights"], className),
4212
4824
  style: {
4213
4825
  backgroundColor
4214
4826
  },
4215
- children: hasContainer ? /* @__PURE__ */ jsx(Container, { className: clsx43("container", FeaturedNewsHighlights_module_default["container"]), children: content }) : content
4827
+ children: hasContainer ? /* @__PURE__ */ jsx(Container, { className: clsx47("container", FeaturedNewsHighlights_module_default["container"]), children: content }) : content
4216
4828
  }
4217
4829
  );
4218
4830
  };
@@ -4256,23 +4868,23 @@ var NewsCardList = ({
4256
4868
  return /* @__PURE__ */ jsx(
4257
4869
  "div",
4258
4870
  {
4259
- className: clsx43("news-card-list", NewsCardList_module_default["news-card-list"], className),
4871
+ className: clsx47("news-card-list", NewsCardList_module_default["news-card-list"], className),
4260
4872
  style: {
4261
4873
  backgroundColor
4262
4874
  },
4263
- children: /* @__PURE__ */ jsxs(Container, { className: clsx43("container", NewsCardList_module_default["container"]), children: [
4264
- /* @__PURE__ */ jsxs("div", { className: clsx43("wrapper", NewsCardList_module_default["wrapper"]), children: [
4875
+ children: /* @__PURE__ */ jsxs(Container, { className: clsx47("container", NewsCardList_module_default["container"]), children: [
4876
+ /* @__PURE__ */ jsxs("div", { className: clsx47("wrapper", NewsCardList_module_default["wrapper"]), children: [
4265
4877
  /* @__PURE__ */ jsx(
4266
4878
  Input,
4267
4879
  __spreadValues({
4268
- className: clsx43("search-input", NewsCardList_module_default["search-input"]),
4880
+ className: clsx47("search-input", NewsCardList_module_default["search-input"]),
4269
4881
  startAdornment: /* @__PURE__ */ jsx(Icon, { type: "search" }),
4270
4882
  placeholder: "Search News",
4271
4883
  endAction: searchValue ? /* @__PURE__ */ jsx(
4272
4884
  Button,
4273
4885
  {
4274
4886
  variant: "nofillblack",
4275
- className: clsx43(NewsCardList_module_default["end-action-button"]),
4887
+ className: clsx47(NewsCardList_module_default["end-action-button"]),
4276
4888
  "aria-label": "Search",
4277
4889
  onClick: onSearchSubmit ? () => onSearchSubmit(searchValue || "") : void 0,
4278
4890
  children: /* @__PURE__ */ jsx(Icon, { type: "rightBlack" })
@@ -4284,7 +4896,7 @@ var NewsCardList = ({
4284
4896
  } : void 0
4285
4897
  }, searchInputProps)
4286
4898
  ),
4287
- /* @__PURE__ */ jsxs("div", { className: clsx43("card-wrapper", NewsCardList_module_default["card-wrapper"]), children: [
4899
+ /* @__PURE__ */ jsxs("div", { className: clsx47("card-wrapper", NewsCardList_module_default["card-wrapper"]), children: [
4288
4900
  currentPage === 1 && /* @__PURE__ */ jsx(
4289
4901
  FeaturedNewsHighlights2,
4290
4902
  {
@@ -4297,8 +4909,8 @@ var NewsCardList = ({
4297
4909
  /* @__PURE__ */ jsx(BlogCardGrid2, { items: cards, hasContainer: false, renderLink })
4298
4910
  ] })
4299
4911
  ] }),
4300
- paginationNode ? React69.cloneElement(paginationNode, {
4301
- className: clsx43("pagination", NewsCardList_module_default["pagination"])
4912
+ paginationNode ? React70.cloneElement(paginationNode, {
4913
+ className: clsx47("pagination", NewsCardList_module_default["pagination"])
4302
4914
  }) : null
4303
4915
  ] })
4304
4916
  }
@@ -4343,15 +4955,15 @@ var BlogPost = ({
4343
4955
  });
4344
4956
  const titleNode = (_a = slots.title) != null ? _a : title;
4345
4957
  const bodyNode = (_b = slots.body) != null ? _b : body;
4346
- return /* @__PURE__ */ jsx("div", { className: clsx43("blog-post", BlogPost_module_default["blog-post"], className), children: /* @__PURE__ */ jsxs(Container, { className: clsx43("container", BlogPost_module_default["container"]), children: [
4347
- /* @__PURE__ */ jsxs("div", { className: clsx43("header", BlogPost_module_default["header"]), children: [
4958
+ return /* @__PURE__ */ jsx("div", { className: clsx47("blog-post", BlogPost_module_default["blog-post"], className), children: /* @__PURE__ */ jsxs(Container, { className: clsx47("container", BlogPost_module_default["container"]), children: [
4959
+ /* @__PURE__ */ jsxs("div", { className: clsx47("header", BlogPost_module_default["header"]), children: [
4348
4960
  titleNode && typeof titleNode === "string" ? /* @__PURE__ */ jsx(Text, { tag: "h1", children: titleNode }) : titleNode,
4349
- image && /* @__PURE__ */ jsx(Picture, __spreadProps(__spreadValues({}, image), { className: clsx43("image", BlogPost_module_default["image"]) }))
4961
+ image && /* @__PURE__ */ jsx(Picture, __spreadProps(__spreadValues({}, image), { className: clsx47("image", BlogPost_module_default["image"]) }))
4350
4962
  ] }),
4351
- /* @__PURE__ */ jsxs("div", { className: clsx43("content", BlogPost_module_default["content"]), children: [
4352
- /* @__PURE__ */ jsxs("div", { className: clsx43("content-top", BlogPost_module_default["content-top"]), children: [
4963
+ /* @__PURE__ */ jsxs("div", { className: clsx47("content", BlogPost_module_default["content"]), children: [
4964
+ /* @__PURE__ */ jsxs("div", { className: clsx47("content-top", BlogPost_module_default["content-top"]), children: [
4353
4965
  /* @__PURE__ */ jsx(Badge, { size: "sm", children: tag }),
4354
- /* @__PURE__ */ jsxs("span", { className: clsx43("content-date", BlogPost_module_default["content-date"]), children: [
4966
+ /* @__PURE__ */ jsxs("span", { className: clsx47("content-date", BlogPost_module_default["content-date"]), children: [
4355
4967
  "Published ",
4356
4968
  /* @__PURE__ */ jsx("time", { dateTime: date.value, children: date.label })
4357
4969
  ] })
@@ -4364,7 +4976,7 @@ var BlogPost = ({
4364
4976
  title: "More News",
4365
4977
  items: relatedArticles,
4366
4978
  hasContainer: false,
4367
- className: clsx43("related-articles", BlogPost_module_default["related-articles"])
4979
+ className: clsx47("related-articles", BlogPost_module_default["related-articles"])
4368
4980
  }
4369
4981
  )
4370
4982
  ] }) });
@@ -4412,22 +5024,22 @@ var BlogSearchResultsList = ({
4412
5024
  });
4413
5025
  const searchNode = (_a = slots.search) != null ? _a : searchResult;
4414
5026
  const paginationNode = slots.pagination;
4415
- return /* @__PURE__ */ jsx("div", { className: clsx43("search-results-list", BlogSearchResultsList_module_default["search-results-list"], className), children: /* @__PURE__ */ jsxs(Container, { className: clsx43("container", BlogSearchResultsList_module_default["container"]), children: [
4416
- typeof searchNode === "string" ? /* @__PURE__ */ jsx("span", { className: clsx43("search-result", BlogSearchResultsList_module_default["search-result"]), children: searchNode }) : React69.isValidElement(searchNode) ? React69.cloneElement(searchNode, {
4417
- className: clsx43("search-result", BlogSearchResultsList_module_default["search-result"])
5027
+ return /* @__PURE__ */ jsx("div", { className: clsx47("search-results-list", BlogSearchResultsList_module_default["search-results-list"], className), children: /* @__PURE__ */ jsxs(Container, { className: clsx47("container", BlogSearchResultsList_module_default["container"]), children: [
5028
+ typeof searchNode === "string" ? /* @__PURE__ */ jsx("span", { className: clsx47("search-result", BlogSearchResultsList_module_default["search-result"]), children: searchNode }) : React70.isValidElement(searchNode) ? React70.cloneElement(searchNode, {
5029
+ className: clsx47("search-result", BlogSearchResultsList_module_default["search-result"])
4418
5030
  }) : null,
4419
- /* @__PURE__ */ jsxs("div", { className: clsx43("wrapper", BlogSearchResultsList_module_default["wrapper"]), children: [
5031
+ /* @__PURE__ */ jsxs("div", { className: clsx47("wrapper", BlogSearchResultsList_module_default["wrapper"]), children: [
4420
5032
  /* @__PURE__ */ jsx(
4421
5033
  Input,
4422
5034
  __spreadValues({
4423
- className: clsx43("search-input", BlogSearchResultsList_module_default["search-input"]),
5035
+ className: clsx47("search-input", BlogSearchResultsList_module_default["search-input"]),
4424
5036
  startAdornment: /* @__PURE__ */ jsx(Icon, { type: "search" }),
4425
5037
  placeholder: "Search News",
4426
5038
  endAction: searchValue ? /* @__PURE__ */ jsx(
4427
5039
  Button,
4428
5040
  {
4429
5041
  variant: "nofillblack",
4430
- className: clsx43(BlogSearchResultsList_module_default["end-action-button"]),
5042
+ className: clsx47(BlogSearchResultsList_module_default["end-action-button"]),
4431
5043
  "aria-label": "Search",
4432
5044
  onClick: () => onSearchSubmit(searchValue),
4433
5045
  children: /* @__PURE__ */ jsx(Icon, { type: "rightBlack" })
@@ -4441,8 +5053,8 @@ var BlogSearchResultsList = ({
4441
5053
  ),
4442
5054
  /* @__PURE__ */ jsx(BlogCardGrid2, { items, hasContainer: false, renderLink })
4443
5055
  ] }),
4444
- paginationNode ? React69.cloneElement(paginationNode, {
4445
- className: clsx43("pagination", BlogSearchResultsList_module_default["pagination"])
5056
+ paginationNode ? React70.cloneElement(paginationNode, {
5057
+ className: clsx47("pagination", BlogSearchResultsList_module_default["pagination"])
4446
5058
  }) : null
4447
5059
  ] }) });
4448
5060
  };
@@ -4483,11 +5095,11 @@ var GlobalSearchResultsList = ({
4483
5095
  });
4484
5096
  const searchNode = (_a = slots.search) != null ? _a : searchResult;
4485
5097
  const paginationNode = slots.pagination;
4486
- return /* @__PURE__ */ jsx("div", { className: clsx43("search-results-list", GlobalSearchResultsList_module_default["search-results-list"], className), children: /* @__PURE__ */ jsxs(Container, { className: clsx43("container", GlobalSearchResultsList_module_default["container"]), children: [
4487
- typeof searchNode === "string" ? /* @__PURE__ */ jsx("span", { className: clsx43("search-result", GlobalSearchResultsList_module_default["search-result"]), children: searchNode }) : React69.isValidElement(searchNode) ? React69.cloneElement(searchNode, {
4488
- className: clsx43("search-result", GlobalSearchResultsList_module_default["search-result"])
5098
+ return /* @__PURE__ */ jsx("div", { className: clsx47("search-results-list", GlobalSearchResultsList_module_default["search-results-list"], className), children: /* @__PURE__ */ jsxs(Container, { className: clsx47("container", GlobalSearchResultsList_module_default["container"]), children: [
5099
+ typeof searchNode === "string" ? /* @__PURE__ */ jsx("span", { className: clsx47("search-result", GlobalSearchResultsList_module_default["search-result"]), children: searchNode }) : React70.isValidElement(searchNode) ? React70.cloneElement(searchNode, {
5100
+ className: clsx47("search-result", GlobalSearchResultsList_module_default["search-result"])
4489
5101
  }) : null,
4490
- /* @__PURE__ */ jsx("div", { className: clsx43("wrapper", GlobalSearchResultsList_module_default["wrapper"]), children: /* @__PURE__ */ jsx(Grid, { role: "list", columns: 3, children: items.map((item, index) => {
5102
+ /* @__PURE__ */ jsx("div", { className: clsx47("wrapper", GlobalSearchResultsList_module_default["wrapper"]), children: /* @__PURE__ */ jsx(Grid, { role: "list", columns: 3, children: items.map((item, index) => {
4491
5103
  var _a2;
4492
5104
  return /* @__PURE__ */ jsx(
4493
5105
  GridItem,
@@ -4507,8 +5119,8 @@ var GlobalSearchResultsList = ({
4507
5119
  item.title ? `${item.title}-${(_a2 = item == null ? void 0 : item.id) != null ? _a2 : index}` : index
4508
5120
  );
4509
5121
  }) }) }),
4510
- paginationNode ? React69.cloneElement(paginationNode, {
4511
- className: clsx43("pagination", GlobalSearchResultsList_module_default["pagination"])
5122
+ paginationNode ? React70.cloneElement(paginationNode, {
5123
+ className: clsx47("pagination", GlobalSearchResultsList_module_default["pagination"])
4512
5124
  }) : null
4513
5125
  ] }) });
4514
5126
  };
@@ -4566,7 +5178,7 @@ var TextCenterWithMedia = ({
4566
5178
  };
4567
5179
  const slots = resolveCompoundSlots(children, { title: TextCenterWithMediaTitle });
4568
5180
  const titleNode = (_a = slots.title) != null ? _a : title;
4569
- return /* @__PURE__ */ jsxs("section", { className: clsx43(TextCenterWithMedia_module_default.textCenterWithMedia, className), children: [
5181
+ return /* @__PURE__ */ jsxs("section", { className: clsx47(TextCenterWithMedia_module_default.textCenterWithMedia, className), children: [
4570
5182
  /* @__PURE__ */ jsxs(Container, { children: [
4571
5183
  titleNode && /* @__PURE__ */ jsx("h2", { className: "h2", children: titleNode }),
4572
5184
  /* @__PURE__ */ jsx("div", { className: TextCenterWithMedia_module_default.thumbnailWrapper, children: thumbnail && /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -4607,6 +5219,99 @@ var TextCenterWithMedia2 = Object.assign(TextCenterWithMedia, {
4607
5219
  Title: TextCenterWithMediaTitle
4608
5220
  });
4609
5221
 
4610
- export { Anchor, Badge, BlogCardGrid2 as BlogCardGrid, BlogPost2 as BlogPost, BlogPostContent2 as BlogPostContent, BlogSearchResultsList2 as BlogSearchResultsList, BrandsStrip, Button, Card2 as Card, CardCollection2 as CardCollection, ConditionalWrapper, ContactModule2 as ContactModule, Container, CountingCard2 as CountingCard, EventList2 as EventList, FeaturedNewsHighlights2 as FeaturedNewsHighlights, FilterBar, Footer, GlobalSearchResultsList2 as GlobalSearchResultsList, HeroBanner2 as HeroBanner, HeroBannerCarousel, Icon, InfoCard2 as InfoCard, Input, InternalBrandsTab2 as InternalBrandsTab, MiniBanner2 as MiniBanner, MiniSectionCta2 as MiniSectionCta, Navigation2 as Navigation, NewsCard, NewsCardList2 as NewsCardList, Pagination, Picture, PracticeCard, PracticePathCards2 as PracticePathCards, ResourceCardItem, ResourcesGridList, Sidebar, Teaser5050With3Text2 as Teaser5050With3Text, Teaser5050WithCta2 as Teaser5050WithCta, TextBody2 as TextBody, TextCenterCtaInBottom2 as TextCenterCtaInBottom, TextCenterWithMedia2 as TextCenterWithMedia, TextEvent2 as TextEvent, UpcomingEventCard, resolveCompoundSlots, svgs, useIntersectionObserver, useIsAtTop };
5222
+ // src/widgets/QuoteSectionBlock/QuoteSectionBlock.module.scss
5223
+ var QuoteSectionBlock_module_default = {
5224
+ quoteSectionBlock: "QuoteSectionBlock_module_quoteSectionBlock",
5225
+ inner: "QuoteSectionBlock_module_inner",
5226
+ title: "QuoteSectionBlock_module_title",
5227
+ swiperContainer: "QuoteSectionBlock_module_swiperContainer",
5228
+ card: "QuoteSectionBlock_module_card",
5229
+ quoteLogo: "QuoteSectionBlock_module_quoteLogo",
5230
+ bodyText: "QuoteSectionBlock_module_bodyText",
5231
+ attribution: "QuoteSectionBlock_module_attribution",
5232
+ displayPhoto: "QuoteSectionBlock_module_displayPhoto",
5233
+ displayName: "QuoteSectionBlock_module_displayName",
5234
+ attributionText: "QuoteSectionBlock_module_attributionText",
5235
+ jobTitleLogo: "QuoteSectionBlock_module_jobTitleLogo",
5236
+ controls: "QuoteSectionBlock_module_controls"
5237
+ };
5238
+ var QuoteSectionBlock = ({ className, title, items = [] }) => {
5239
+ const { is } = useViewPort_default();
5240
+ const isMobile = is("tablet", "below");
5241
+ const [swiperInstance, setSwiperInstance] = useState(null);
5242
+ const [activeIndex, setActiveIndex] = useState(0);
5243
+ if (!items.length) return null;
5244
+ return /* @__PURE__ */ jsx("div", { className: clsx47(QuoteSectionBlock_module_default.quoteSectionBlock, className), children: /* @__PURE__ */ jsxs("div", { className: QuoteSectionBlock_module_default.inner, children: [
5245
+ title && /* @__PURE__ */ jsx("h2", { className: QuoteSectionBlock_module_default.title, children: title }),
5246
+ /* @__PURE__ */ jsx("div", { className: QuoteSectionBlock_module_default.swiperContainer, children: /* @__PURE__ */ jsx(
5247
+ Swiper,
5248
+ {
5249
+ slidesPerView: "auto",
5250
+ spaceBetween: isMobile ? 8 : 32,
5251
+ onSwiper: setSwiperInstance,
5252
+ onSlideChange: (swiper) => setActiveIndex(swiper.activeIndex),
5253
+ children: items.map((item, index) => /* @__PURE__ */ jsx(SwiperSlide, { children: /* @__PURE__ */ jsxs("div", { className: QuoteSectionBlock_module_default.card, children: [
5254
+ (item == null ? void 0 : item.quoteLogo) && /* @__PURE__ */ jsx("img", { src: item.quoteLogo, alt: "", className: QuoteSectionBlock_module_default.quoteLogo }),
5255
+ (item == null ? void 0 : item.bodyText) && /* @__PURE__ */ jsx("p", { className: QuoteSectionBlock_module_default.bodyText, children: item.bodyText }),
5256
+ /* @__PURE__ */ jsxs("div", { className: QuoteSectionBlock_module_default.attribution, children: [
5257
+ (item == null ? void 0 : item.displayPhoto) && /* @__PURE__ */ jsx(
5258
+ "img",
5259
+ {
5260
+ src: item.displayPhoto,
5261
+ alt: item.displayName,
5262
+ className: QuoteSectionBlock_module_default.displayPhoto
5263
+ }
5264
+ ),
5265
+ /* @__PURE__ */ jsxs("div", { className: QuoteSectionBlock_module_default.attributionText, children: [
5266
+ (item == null ? void 0 : item.displayName) && /* @__PURE__ */ jsx("span", { className: QuoteSectionBlock_module_default.displayName, children: item.displayName }),
5267
+ (item == null ? void 0 : item.jobTitleLogo) && /* @__PURE__ */ jsx("img", { src: item.jobTitleLogo, alt: "", className: QuoteSectionBlock_module_default.jobTitleLogo })
5268
+ ] })
5269
+ ] })
5270
+ ] }) }, index))
5271
+ }
5272
+ ) }),
5273
+ /* @__PURE__ */ jsx(
5274
+ Pagination,
5275
+ {
5276
+ className: QuoteSectionBlock_module_default.controls,
5277
+ totalPages: items.length,
5278
+ currentPage: activeIndex + 1,
5279
+ loop: true,
5280
+ onPageChange: (page) => swiperInstance == null ? void 0 : swiperInstance.slideTo(page - 1)
5281
+ },
5282
+ activeIndex
5283
+ )
5284
+ ] }) });
5285
+ };
5286
+ function useIntersectionObserver({
5287
+ animateOnce = false,
5288
+ options = {}
5289
+ } = {}) {
5290
+ const observeRef = useRef(null);
5291
+ const [isVisible, setIsVisible] = useState(false);
5292
+ if (typeof IntersectionObserver === "undefined") {
5293
+ console.warn("IntersectionObserver is not supported in this browser.");
5294
+ return { observeRef, isVisible: true };
5295
+ }
5296
+ useEffect(() => {
5297
+ const currentRef = observeRef.current;
5298
+ if (!currentRef) return;
5299
+ const observer = new IntersectionObserver((entries) => {
5300
+ const entry = entries[0];
5301
+ if (!entry) return;
5302
+ setIsVisible(entry.isIntersecting);
5303
+ if (entry.isIntersecting && animateOnce) {
5304
+ observer.disconnect();
5305
+ }
5306
+ }, options);
5307
+ observer.observe(currentRef);
5308
+ return () => {
5309
+ observer.disconnect();
5310
+ };
5311
+ }, [observeRef, animateOnce, options]);
5312
+ return { observeRef, isVisible };
5313
+ }
5314
+
5315
+ export { Anchor, Badge, BlogCardGrid2 as BlogCardGrid, BlogPost2 as BlogPost, BlogPostContent2 as BlogPostContent, BlogSearchResultsList2 as BlogSearchResultsList, BrandsStrip, Button, Card2 as Card, CardCollection2 as CardCollection, ConditionalWrapper, ContactModule2 as ContactModule, Container, CountingCard2 as CountingCard, EventList2 as EventList, FeaturedNewsHighlights2 as FeaturedNewsHighlights, FilterBar, Footer, GlobalSearchResultsList2 as GlobalSearchResultsList, HeroBanner2 as HeroBanner, HeroBannerCarousel, Icon, InfoCard2 as InfoCard, Input, InternalBrandsTab2 as InternalBrandsTab, MiniBanner2 as MiniBanner, MiniSectionCta2 as MiniSectionCta, Navigation2 as Navigation, NewsCard, NewsCardList2 as NewsCardList, Pagination, Picture, PracticeCard, PracticePathCards2 as PracticePathCards, QuoteSectionBlock, ResourceCardItem, ResourcesGridList, Search, Sidebar, Teaser5050With3Text2 as Teaser5050With3Text, Teaser5050WithCta2 as Teaser5050WithCta, TextBody2 as TextBody, TextCenterCtaInBottom2 as TextCenterCtaInBottom, TextCenterWithMedia2 as TextCenterWithMedia, TextEvent2 as TextEvent, UpcomingEventCard, UserMenu, resolveCompoundSlots, svgs, useIntersectionObserver, useIsAtTop };
4611
5316
  //# sourceMappingURL=index.mjs.map
4612
5317
  //# sourceMappingURL=index.mjs.map