@digital-b2c/coreui-kit 0.14.7 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var clsx43 = require('clsx');
3
+ var clsx47 = require('clsx');
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
- var React69 = require('react');
5
+ var React70 = require('react');
6
6
  var gsap = require('gsap');
7
7
  var react = require('@gsap/react');
8
8
  var ScrollTrigger = require('gsap/ScrollTrigger');
@@ -13,8 +13,8 @@ var ReactPlayer = require('react-player');
13
13
 
14
14
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
15
15
 
16
- var clsx43__default = /*#__PURE__*/_interopDefault(clsx43);
17
- var React69__default = /*#__PURE__*/_interopDefault(React69);
16
+ var clsx47__default = /*#__PURE__*/_interopDefault(clsx47);
17
+ var React70__default = /*#__PURE__*/_interopDefault(React70);
18
18
  var gsap__default = /*#__PURE__*/_interopDefault(gsap);
19
19
  var ReactPlayer__default = /*#__PURE__*/_interopDefault(ReactPlayer);
20
20
 
@@ -68,7 +68,7 @@ var Picture = (_a) => {
68
68
  __spreadValues({
69
69
  src: desktop.src,
70
70
  alt: desktop.alt,
71
- className: clsx43__default.default(className, Picture_module_default["image-desktop"])
71
+ className: clsx47__default.default(className, Picture_module_default["image-desktop"])
72
72
  }, rest)
73
73
  ),
74
74
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -76,7 +76,7 @@ var Picture = (_a) => {
76
76
  __spreadValues({
77
77
  src: (_b2 = mobile == null ? void 0 : mobile.src) != null ? _b2 : desktop.src,
78
78
  alt: (_c = mobile == null ? void 0 : mobile.alt) != null ? _c : desktop.alt,
79
- className: clsx43__default.default(className, Picture_module_default["image-mobile"])
79
+ className: clsx47__default.default(className, Picture_module_default["image-mobile"])
80
80
  }, rest)
81
81
  )
82
82
  ] });
@@ -292,6 +292,21 @@ var SvgIconXWhite = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", __spreadPr
292
292
  /* @__PURE__ */ jsxRuntime.jsx("defs", { children: /* @__PURE__ */ jsxRuntime.jsx("clipPath", { id: "clip0_942_1878", children: /* @__PURE__ */ jsxRuntime.jsx("rect", { width: 24, height: 24, fill: "white" }) }) })
293
293
  ] }));
294
294
  var icon_x_white_default = SvgIconXWhite;
295
+ var SvgIconUser = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", __spreadProps(__spreadValues({ xmlns: "http://www.w3.org/2000/svg", width: 24, height: 24, viewBox: "0 0 24 24", fill: "none" }, props), { children: [
296
+ /* @__PURE__ */ jsxRuntime.jsx("defs", { children: /* @__PURE__ */ jsxRuntime.jsx("clipPath", { id: "avatar-clip", children: /* @__PURE__ */ jsxRuntime.jsx("rect", { x: 0.5, y: 0.5, width: 23, height: 23, rx: 11.5 }) }) }),
297
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { id: "user 1", children: [
298
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: 0.5, y: 0.5, width: 23, height: 23, rx: 11.5, fill: "#EEEEEE" }),
299
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { clipPath: "url(#avatar-clip)", children: [
300
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { id: "Vector", children: [
301
+ /* @__PURE__ */ jsxRuntime.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" }),
302
+ /* @__PURE__ */ jsxRuntime.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" })
303
+ ] }),
304
+ /* @__PURE__ */ jsxRuntime.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" })
305
+ ] }),
306
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: 0.5, y: 0.5, width: 23, height: 23, rx: 11.5, stroke: "#A8A8A8" })
307
+ ] })
308
+ ] }));
309
+ var icon_user_default = SvgIconUser;
295
310
  var SvgIconFilter = (props) => /* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.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" }) }));
296
311
  var icon_filter_default = SvgIconFilter;
297
312
  var SvgIconInternalFilter = (props) => /* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.jsx("path", { d: "M3 18V16H9V18H3ZM3 13V11H15V13H3ZM3 8V6H21V8H3Z", fill: "#080808" }) }));
@@ -394,9 +409,10 @@ var svgs = {
394
409
  right: icon_right_default,
395
410
  tiltedRight: icon_tilted_right_default,
396
411
  xBlack: icon_x_black_default,
397
- xWhite: icon_x_white_default
412
+ xWhite: icon_x_white_default,
413
+ user: icon_user_default
398
414
  };
399
- var Icon = React69__default.default.memo(
415
+ var Icon = React70__default.default.memo(
400
416
  (_a) => {
401
417
  var _b = _a, { type, size } = _b, props = __objRest(_b, ["type", "size"]);
402
418
  if (type) {
@@ -454,7 +470,7 @@ var Button = (_a) => {
454
470
  ]);
455
471
  const isLink = !!href;
456
472
  const props = __spreadValues(__spreadValues({
457
- className: clsx43__default.default(
473
+ className: clsx47__default.default(
458
474
  Button_module_default.button,
459
475
  variant ? Button_module_default[variant] : null,
460
476
  { [Button_module_default.fullWidth]: !!fullWidth },
@@ -510,21 +526,21 @@ var getDeviceType = (width) => {
510
526
  return "desktop";
511
527
  };
512
528
  var useViewPort = () => {
513
- const [device, setDevice] = React69.useState(
529
+ const [device, setDevice] = React70.useState(
514
530
  () => typeof window !== "undefined" ? getDeviceType(window.innerWidth) : "desktop"
515
531
  );
516
- const getOtherDevices = React69.useCallback(
532
+ const getOtherDevices = React70.useCallback(
517
533
  (list, what, includeSelf = false) => {
518
534
  const deviceIndex = list.indexOf(what) + (!includeSelf ? 1 : 0);
519
535
  return [...list].slice(deviceIndex);
520
536
  },
521
537
  []
522
538
  );
523
- const onWindowResize = React69.useCallback(() => {
539
+ const onWindowResize = React70.useCallback(() => {
524
540
  setDevice(getDeviceType(window.innerWidth));
525
541
  }, []);
526
542
  const onWindowResizeDebounce = useDebounce_default(onWindowResize, 100);
527
- React69.useEffect(() => {
543
+ React70.useEffect(() => {
528
544
  window.addEventListener("resize", onWindowResizeDebounce);
529
545
  return () => window.removeEventListener("resize", onWindowResizeDebounce);
530
546
  }, [onWindowResizeDebounce]);
@@ -577,13 +593,13 @@ var BrandsStrip = ({
577
593
  cta,
578
594
  size
579
595
  }) => {
580
- const [show, setShow] = React69.useState(false);
581
- const [shouldAnimate, setShouldAnimate] = React69.useState(false);
596
+ const [show, setShow] = React70.useState(false);
597
+ const [shouldAnimate, setShouldAnimate] = React70.useState(false);
582
598
  const { is } = useViewPort_default();
583
599
  const isTabletBelow = is("tablet", "below");
584
- const containerRef = React69.useRef(null);
585
- const marqueeRef = React69.useRef(null);
586
- const timeline = React69.useRef(null);
600
+ const containerRef = React70.useRef(null);
601
+ const marqueeRef = React70.useRef(null);
602
+ const timeline = React70.useRef(null);
587
603
  const horizontalLoop = (items, config) => {
588
604
  const itemsArray = gsap__default.default.utils.toArray(items);
589
605
  const cfg = config || {};
@@ -677,7 +693,7 @@ var BrandsStrip = ({
677
693
  timeline.current.play();
678
694
  }
679
695
  };
680
- const duplicatedLogos = React69.useMemo(() => {
696
+ const duplicatedLogos = React70.useMemo(() => {
681
697
  if (logos.length === 0) return [];
682
698
  if (!shouldAnimate) return [...logos];
683
699
  return [...logos, ...logos];
@@ -686,7 +702,7 @@ var BrandsStrip = ({
686
702
  "div",
687
703
  {
688
704
  ref: containerRef,
689
- className: clsx43__default.default(
705
+ className: clsx47__default.default(
690
706
  BrandsStrip_module_default.brandsStrip,
691
707
  BrandsStrip_module_default[variant],
692
708
  { [BrandsStrip_module_default.small]: size === "small" },
@@ -695,13 +711,13 @@ var BrandsStrip = ({
695
711
  onMouseEnter: handleMouseEnter,
696
712
  onMouseLeave: handleMouseLeave,
697
713
  children: [
698
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default(BrandsStrip_module_default.container, { [BrandsStrip_module_default.blurred]: show && logos.length > 1 }), children: [
699
- title && logos.length === 1 && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: clsx43__default.default("body", BrandsStrip_module_default.title), children: title }),
714
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default(BrandsStrip_module_default.container, { [BrandsStrip_module_default.blurred]: show && logos.length > 1 }), children: [
715
+ title && logos.length === 1 && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: clsx47__default.default("body", BrandsStrip_module_default.title), children: title }),
700
716
  logos.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
701
717
  "div",
702
718
  {
703
719
  ref: marqueeRef,
704
- className: clsx43__default.default(BrandsStrip_module_default.logos, { [BrandsStrip_module_default.marqueeGSAP]: shouldAnimate }),
720
+ className: clsx47__default.default(BrandsStrip_module_default.logos, { [BrandsStrip_module_default.marqueeGSAP]: shouldAnimate }),
705
721
  children: duplicatedLogos.map((logo, index) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: BrandsStrip_module_default.logoWrapper, children: /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: BrandsStrip_module_default.logo }, logo)) }, `${logo.alt}-${index}`))
706
722
  }
707
723
  )
@@ -730,8 +746,8 @@ var CardSubtitle = ({ children }) => {
730
746
  };
731
747
  function resolveCompoundSlots(children, slots) {
732
748
  const resolved = {};
733
- React69.Children.forEach(children, (child) => {
734
- if (!React69.isValidElement(child)) return;
749
+ React70.Children.forEach(children, (child) => {
750
+ if (!React70.isValidElement(child)) return;
735
751
  Object.entries(slots).forEach(([key, Component]) => {
736
752
  if (child.type === Component) {
737
753
  resolved[key] = child.props.children;
@@ -745,10 +761,10 @@ function resolveCompoundSlots(children, slots) {
745
761
  var Container_module_default = {
746
762
  container: "Container_module_container"
747
763
  };
748
- var Container = React69.forwardRef(
764
+ var Container = React70.forwardRef(
749
765
  (_a, ref) => {
750
766
  var _b = _a, { children, className } = _b, props = __objRest(_b, ["children", "className"]);
751
- return /* @__PURE__ */ jsxRuntime.jsx("div", __spreadProps(__spreadValues({ ref, className: clsx43__default.default(Container_module_default.container, className) }, props), { children }));
767
+ return /* @__PURE__ */ jsxRuntime.jsx("div", __spreadProps(__spreadValues({ ref, className: clsx47__default.default(Container_module_default.container, className) }, props), { children }));
752
768
  }
753
769
  );
754
770
  Container.displayName = "Container";
@@ -789,14 +805,14 @@ var Card = ({
789
805
  ConditionalWrapper,
790
806
  __spreadProps(__spreadValues({
791
807
  ref,
792
- className: clsx43__default.default(Card_module_default.card, Card_module_default[variant], className),
808
+ className: clsx47__default.default(Card_module_default.card, Card_module_default[variant], className),
793
809
  wrapper: Anchor,
794
810
  fallback: "div",
795
811
  condition: isLink
796
812
  }, href ? { href, isExternal } : {}), {
797
813
  children: [
798
814
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Card_module_default.logoContainer, children: [
799
- (logo == null ? void 0 : logo.src) ? /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: clsx43__default.default(Card_module_default.logo, isLink && Card_module_default.hideLogo) }, logo)) : icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: icon, className: clsx43__default.default(Card_module_default.logo, isLink && Card_module_default.hideLogo) }),
815
+ (logo == null ? void 0 : logo.src) ? /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: clsx47__default.default(Card_module_default.logo, isLink && Card_module_default.hideLogo) }, logo)) : icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: icon, className: clsx47__default.default(Card_module_default.logo, isLink && Card_module_default.hideLogo) }),
800
816
  isLink && /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "tiltedRightWhite", className: Card_module_default.logoHover })
801
817
  ] }),
802
818
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Card_module_default.content, children: [
@@ -831,10 +847,10 @@ var CountingCard = ({ className, title, count, image, children }) => {
831
847
  title: CountingCardTitle
832
848
  });
833
849
  const titleNode = (_a = slots.title) != null ? _a : title;
834
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default(CountingCard_module_default["counting-card"], className), children: [
850
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default(CountingCard_module_default["counting-card"], className), children: [
835
851
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: CountingCard_module_default.content, children: [
836
852
  titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "body", children: titleNode }),
837
- count && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default(CountingCard_module_default.count, "h1"), children: count })
853
+ count && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(CountingCard_module_default.count, "h1"), children: count })
838
854
  ] }),
839
855
  image && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: CountingCard_module_default.logo }, image))
840
856
  ] });
@@ -886,11 +902,11 @@ function FilterBar({
886
902
  searchValue,
887
903
  onSearchChange
888
904
  }) {
889
- const [openDropdown, setOpenDropdown] = React69.useState(null);
890
- const [searchState, setSearchState] = React69.useState("closed");
891
- const filterRef = React69.useRef(null);
892
- const sortRef = React69.useRef(null);
893
- const searchInputRef = React69.useRef(null);
905
+ const [openDropdown, setOpenDropdown] = React70.useState(null);
906
+ const [searchState, setSearchState] = React70.useState("closed");
907
+ const filterRef = React70.useRef(null);
908
+ const sortRef = React70.useRef(null);
909
+ const searchInputRef = React70.useRef(null);
894
910
  const closeSearch = () => {
895
911
  setSearchState("closing");
896
912
  onSearchChange("");
@@ -900,7 +916,7 @@ function FilterBar({
900
916
  onSearchChange("");
901
917
  (_a = searchInputRef.current) == null ? void 0 : _a.focus();
902
918
  };
903
- React69.useEffect(() => {
919
+ React70.useEffect(() => {
904
920
  const handleMouseDown = (e) => {
905
921
  var _a, _b;
906
922
  const target = e.target;
@@ -910,7 +926,7 @@ function FilterBar({
910
926
  document.addEventListener("mousedown", handleMouseDown);
911
927
  return () => document.removeEventListener("mousedown", handleMouseDown);
912
928
  }, []);
913
- React69.useEffect(() => {
929
+ React70.useEffect(() => {
914
930
  var _a;
915
931
  if (searchState === "open") (_a = searchInputRef.current) == null ? void 0 : _a.focus();
916
932
  }, [searchState]);
@@ -920,7 +936,7 @@ function FilterBar({
920
936
  "button",
921
937
  {
922
938
  type: "button",
923
- className: clsx43__default.default(FilterBar_module_default.chip, view === "grid" && FilterBar_module_default.active),
939
+ className: clsx47__default.default(FilterBar_module_default.chip, view === "grid" && FilterBar_module_default.active),
924
940
  onClick: () => onViewChange("grid"),
925
941
  "aria-pressed": view === "grid",
926
942
  children: [
@@ -933,7 +949,7 @@ function FilterBar({
933
949
  "button",
934
950
  {
935
951
  type: "button",
936
- className: clsx43__default.default(FilterBar_module_default.chip, view === "list" && FilterBar_module_default.active),
952
+ className: clsx47__default.default(FilterBar_module_default.chip, view === "list" && FilterBar_module_default.active),
937
953
  onClick: () => onViewChange("list"),
938
954
  "aria-pressed": view === "list",
939
955
  children: [
@@ -947,7 +963,7 @@ function FilterBar({
947
963
  /* @__PURE__ */ jsxRuntime.jsxs(
948
964
  "div",
949
965
  {
950
- className: clsx43__default.default(
966
+ className: clsx47__default.default(
951
967
  FilterBar_module_default.dropdownWrapper,
952
968
  isMobile && searchState === "open" && FilterBar_module_default.filterFaded,
953
969
  isMobile && searchState === "closing" && FilterBar_module_default.filterFading
@@ -958,7 +974,7 @@ function FilterBar({
958
974
  "button",
959
975
  {
960
976
  type: "button",
961
- className: clsx43__default.default(FilterBar_module_default.chip, filterValue !== "all" && FilterBar_module_default.active),
977
+ className: clsx47__default.default(FilterBar_module_default.chip, filterValue !== "all" && FilterBar_module_default.active),
962
978
  onClick: () => setOpenDropdown(openDropdown === "filter" ? null : "filter"),
963
979
  "aria-expanded": openDropdown === "filter",
964
980
  children: [
@@ -973,7 +989,7 @@ function FilterBar({
973
989
  type: "button",
974
990
  role: "option",
975
991
  "aria-selected": filterValue === opt.value,
976
- className: clsx43__default.default(
992
+ className: clsx47__default.default(
977
993
  FilterBar_module_default.dropdownOption,
978
994
  filterValue === opt.value && FilterBar_module_default.selected
979
995
  ),
@@ -994,7 +1010,7 @@ function FilterBar({
994
1010
  /* @__PURE__ */ jsxRuntime.jsxs(
995
1011
  "div",
996
1012
  {
997
- className: clsx43__default.default(
1013
+ className: clsx47__default.default(
998
1014
  FilterBar_module_default.dropdownWrapper,
999
1015
  isMobile && searchState === "open" && FilterBar_module_default.filterFaded,
1000
1016
  isMobile && searchState === "closing" && FilterBar_module_default.filterFading
@@ -1020,7 +1036,7 @@ function FilterBar({
1020
1036
  type: "button",
1021
1037
  role: "option",
1022
1038
  "aria-selected": sortValue === opt.value,
1023
- className: clsx43__default.default(
1039
+ className: clsx47__default.default(
1024
1040
  FilterBar_module_default.dropdownOption,
1025
1041
  sortValue === opt.value && FilterBar_module_default.selected
1026
1042
  ),
@@ -1038,7 +1054,7 @@ function FilterBar({
1038
1054
  searchState !== "closed" ? /* @__PURE__ */ jsxRuntime.jsxs(
1039
1055
  "div",
1040
1056
  {
1041
- className: clsx43__default.default(
1057
+ className: clsx47__default.default(
1042
1058
  FilterBar_module_default.searchExpanded,
1043
1059
  searchState === "closing" && FilterBar_module_default.searchCollapsing
1044
1060
  ),
@@ -1120,9 +1136,9 @@ var InfoCard = ({ className, title, subtitle, icon, badge, children }) => {
1120
1136
  });
1121
1137
  const titleNode = (_a = slots.title) != null ? _a : title;
1122
1138
  const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
1123
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default(InfoCard_module_default["info-card"], { [InfoCard_module_default.hasIcon]: !!icon }, className), children: [
1139
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default(InfoCard_module_default["info-card"], { [InfoCard_module_default.hasIcon]: !!icon }, className), children: [
1124
1140
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: InfoCard_module_default.header, children: [
1125
- icon ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: icon }) : badge ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default(InfoCard_module_default.badge, "h4"), children: badge }) : null,
1141
+ icon ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: icon }) : badge ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(InfoCard_module_default.badge, "h4"), children: badge }) : null,
1126
1142
  titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h4", children: titleNode })
1127
1143
  ] }),
1128
1144
  subtitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "body", children: subtitleNode })
@@ -1186,7 +1202,7 @@ var Pagination = ({
1186
1202
  hidePagesBorder = false,
1187
1203
  renderLink
1188
1204
  }) => {
1189
- const [activePage, setActivePage] = React69.useState(currentPage);
1205
+ const [activePage, setActivePage] = React70.useState(currentPage);
1190
1206
  const goToPage = (page) => {
1191
1207
  if (page < 1 || page > totalPages) return;
1192
1208
  setActivePage(page);
@@ -1219,7 +1235,7 @@ var Pagination = ({
1219
1235
  const prevPage = activePage === 1 ? loop ? totalPages : 1 : activePage - 1;
1220
1236
  const nextPage = activePage === totalPages ? loop ? 1 : totalPages : activePage + 1;
1221
1237
  const pageItems = showEllipsis ? getPaginationRange(totalPages, activePage, siblingCount, boundaryCount) : Array.from({ length: totalPages }, (_, i) => i + 1);
1222
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default(Pagination_module_default.pagination, className), children: [
1238
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default(Pagination_module_default.pagination, className), children: [
1223
1239
  !disableArrows && (renderLink ? renderLink({
1224
1240
  page: prevPage,
1225
1241
  className: Pagination_module_default.prev,
@@ -1240,12 +1256,12 @@ var Pagination = ({
1240
1256
  return /* @__PURE__ */ jsxRuntime.jsx("span", { className: Pagination_module_default.dots, "aria-hidden": "true", children: "\u2026" }, `dots-${index}`);
1241
1257
  }
1242
1258
  const page = item;
1243
- const pageClassName = clsx43__default.default(Pagination_module_default.page, {
1259
+ const pageClassName = clsx47__default.default(Pagination_module_default.page, {
1244
1260
  [Pagination_module_default.active]: activePage === page,
1245
1261
  [Pagination_module_default.number]: hasNumber,
1246
1262
  [Pagination_module_default["no-border"]]: hidePagesBorder
1247
1263
  });
1248
- return renderLink ? /* @__PURE__ */ jsxRuntime.jsx(React69.Fragment, { children: renderLink({
1264
+ return renderLink ? /* @__PURE__ */ jsxRuntime.jsx(React70.Fragment, { children: renderLink({
1249
1265
  page,
1250
1266
  className: pageClassName,
1251
1267
  "aria-label": `Go to page ${page}`,
@@ -1292,7 +1308,7 @@ var PracticeCard_module_default = {
1292
1308
  };
1293
1309
  var PracticeCard = ({ className, title, cta, image }) => {
1294
1310
  const { url: href, isExternal } = cta != null ? cta : {};
1295
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default(PracticeCard_module_default["practice-card"], className), children: /* @__PURE__ */ jsxRuntime.jsxs(
1311
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(PracticeCard_module_default["practice-card"], className), children: /* @__PURE__ */ jsxRuntime.jsxs(
1296
1312
  ConditionalWrapper,
1297
1313
  __spreadProps(__spreadValues({
1298
1314
  className: PracticeCard_module_default.wrapper,
@@ -1303,7 +1319,7 @@ var PracticeCard = ({ className, title, cta, image }) => {
1303
1319
  children: [
1304
1320
  image && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: PracticeCard_module_default.background }, image)),
1305
1321
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: PracticeCard_module_default.container, children: [
1306
- title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default(PracticeCard_module_default.title, "h3"), children: title }),
1322
+ title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(PracticeCard_module_default.title, "h3"), children: title }),
1307
1323
  href && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: PracticeCard_module_default.cta, children: [
1308
1324
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: PracticeCard_module_default.ctaRest, type: "right" }),
1309
1325
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: PracticeCard_module_default.ctaHover, type: "tiltedRight" })
@@ -1347,15 +1363,15 @@ var ResourceCardItem = ({ item, view, variant, renderLink }) => {
1347
1363
  "aria-disabled": isRestricted
1348
1364
  } : null;
1349
1365
  const cardLink = linkProps && isGlobalSearchVariant ? renderLink ? renderLink(__spreadProps(__spreadValues({}, linkProps), {
1350
- className: clsx43__default.default(ResourceCardItem_module_default.cardLink, isGlobalSearchVariant && ResourceCardItem_module_default[variant]),
1366
+ className: clsx47__default.default(ResourceCardItem_module_default.cardLink, isGlobalSearchVariant && ResourceCardItem_module_default[variant]),
1351
1367
  children: null
1352
1368
  })) : /* @__PURE__ */ jsxRuntime.jsx(
1353
1369
  "a",
1354
1370
  __spreadProps(__spreadValues({}, linkProps), {
1355
- className: clsx43__default.default(ResourceCardItem_module_default.cardLink, isGlobalSearchVariant && ResourceCardItem_module_default[variant])
1371
+ className: clsx47__default.default(ResourceCardItem_module_default.cardLink, isGlobalSearchVariant && ResourceCardItem_module_default[variant])
1356
1372
  })
1357
1373
  ) : null;
1358
- const linkWrapper = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx("a", __spreadProps(__spreadValues({}, linkProps), { tabIndex: isGlobalSearchVariant ? -1 : 0, className: clsx43__default.default(ResourceCardItem_module_default.cardLink), children }));
1374
+ const linkWrapper = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx("a", __spreadProps(__spreadValues({}, linkProps), { tabIndex: isGlobalSearchVariant ? -1 : 0, className: clsx47__default.default(ResourceCardItem_module_default.cardLink), children }));
1359
1375
  function getIcon() {
1360
1376
  switch (item.type) {
1361
1377
  case "pdf":
@@ -1372,7 +1388,7 @@ var ResourceCardItem = ({ item, view, variant, renderLink }) => {
1372
1388
  return /* @__PURE__ */ jsxRuntime.jsxs(
1373
1389
  "article",
1374
1390
  {
1375
- className: clsx43__default.default(
1391
+ className: clsx47__default.default(
1376
1392
  ResourceCardItem_module_default.cardGrid,
1377
1393
  isGlobalSearchVariant && ResourceCardItem_module_default[variant],
1378
1394
  isGlobalSearchVariant && isRestricted ? ResourceCardItem_module_default["restricted"] : null
@@ -1449,7 +1465,7 @@ var Sidebar = ({
1449
1465
  return /* @__PURE__ */ jsxRuntime.jsxs(
1450
1466
  "li",
1451
1467
  {
1452
- className: clsx43__default.default(Sidebar_module_default.sidebarItem, i === selectedIndex && Sidebar_module_default.active),
1468
+ className: clsx47__default.default(Sidebar_module_default.sidebarItem, i === selectedIndex && Sidebar_module_default.active),
1453
1469
  role: "button",
1454
1470
  tabIndex: 0,
1455
1471
  "aria-pressed": i === selectedIndex,
@@ -1507,7 +1523,7 @@ var UpcomingEventCard = ({
1507
1523
  return /* @__PURE__ */ jsxRuntime.jsxs(
1508
1524
  "article",
1509
1525
  {
1510
- className: clsx43__default.default(
1526
+ className: clsx47__default.default(
1511
1527
  "card",
1512
1528
  UpcomingEventCard_module_default["event-card"],
1513
1529
  UpcomingEventCard_module_default[direction],
@@ -1515,26 +1531,26 @@ var UpcomingEventCard = ({
1515
1531
  className
1516
1532
  ),
1517
1533
  children: [
1518
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default("card-content", UpcomingEventCard_module_default["event-card-content"]), children: [
1519
- showImage && image && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadProps(__spreadValues({}, image), { className: clsx43__default.default("card-image", UpcomingEventCard_module_default["event-card-image"]) })),
1534
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default("card-content", UpcomingEventCard_module_default["event-card-content"]), children: [
1535
+ showImage && image && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadProps(__spreadValues({}, image), { className: clsx47__default.default("card-image", UpcomingEventCard_module_default["event-card-image"]) })),
1520
1536
  /* @__PURE__ */ jsxRuntime.jsxs(
1521
1537
  "div",
1522
1538
  {
1523
- className: clsx43__default.default(
1539
+ className: clsx47__default.default(
1524
1540
  "card-text-content",
1525
1541
  UpcomingEventCard_module_default["event-card-text-content"],
1526
1542
  (!showImage || !hasImage) && UpcomingEventCard_module_default["event-card-show-image"]
1527
1543
  ),
1528
1544
  children: [
1529
1545
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: UpcomingEventCard_module_default.date, children: date }),
1530
- title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: clsx43__default.default("card-text-title"), children: title }),
1546
+ title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: clsx47__default.default("card-text-title"), children: title }),
1531
1547
  location && /* @__PURE__ */ jsxRuntime.jsx("span", { className: UpcomingEventCard_module_default.location, children: location }),
1532
- description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default("card-text-description", UpcomingEventCard_module_default.description), children: description }),
1533
- cta && cta.url && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default("card-cta-wrapper", UpcomingEventCard_module_default["event-card-cta-wrapper"]), children: /* @__PURE__ */ jsxRuntime.jsx(
1548
+ description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default("card-text-description", UpcomingEventCard_module_default.description), children: description }),
1549
+ cta && cta.url && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default("card-cta-wrapper", UpcomingEventCard_module_default["event-card-cta-wrapper"]), children: /* @__PURE__ */ jsxRuntime.jsx(
1534
1550
  Button,
1535
1551
  {
1536
1552
  variant: "secondary",
1537
- className: clsx43__default.default(
1553
+ className: clsx47__default.default(
1538
1554
  "card-cta",
1539
1555
  UpcomingEventCard_module_default["event-card-cta"],
1540
1556
  !hasCTAandImage && UpcomingEventCard_module_default.hidden
@@ -1553,12 +1569,12 @@ var UpcomingEventCard = ({
1553
1569
  cta && cta.url && /* @__PURE__ */ jsxRuntime.jsx(
1554
1570
  "div",
1555
1571
  {
1556
- className: clsx43__default.default("card-footer", UpcomingEventCard_module_default["event-card-footer"], hasImage && UpcomingEventCard_module_default.hidden),
1572
+ className: clsx47__default.default("card-footer", UpcomingEventCard_module_default["event-card-footer"], hasImage && UpcomingEventCard_module_default.hidden),
1557
1573
  children: /* @__PURE__ */ jsxRuntime.jsx(
1558
1574
  Button,
1559
1575
  {
1560
1576
  variant: "secondary",
1561
- className: clsx43__default.default("card-cta", UpcomingEventCard_module_default["event-card-cta"]),
1577
+ className: clsx47__default.default("card-cta", UpcomingEventCard_module_default["event-card-cta"]),
1562
1578
  fullWidth: isBelowMobile,
1563
1579
  href: cta.url,
1564
1580
  icon: cta.icon,
@@ -1585,7 +1601,7 @@ var Badge_module_default = {
1585
1601
  icon: "Badge_module_icon",
1586
1602
  iconOnly: "Badge_module_iconOnly"
1587
1603
  };
1588
- var Badge = React69.forwardRef(
1604
+ var Badge = React70.forwardRef(
1589
1605
  (_a, ref) => {
1590
1606
  var _b = _a, {
1591
1607
  children,
@@ -1606,7 +1622,7 @@ var Badge = React69.forwardRef(
1606
1622
  "live",
1607
1623
  "clickable"
1608
1624
  ]);
1609
- const classes = clsx43__default.default(
1625
+ const classes = clsx47__default.default(
1610
1626
  Badge_module_default.badge,
1611
1627
  Badge_module_default[variant],
1612
1628
  Badge_module_default[size],
@@ -1617,7 +1633,7 @@ var Badge = React69.forwardRef(
1617
1633
  className
1618
1634
  );
1619
1635
  const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1620
- icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, __spreadValues({ className: clsx43__default.default("badge-icon", Badge_module_default["badge-icon"]) }, icon)),
1636
+ icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, __spreadValues({ className: clsx47__default.default("badge-icon", Badge_module_default["badge-icon"]) }, icon)),
1621
1637
  !iconOnly && /* @__PURE__ */ jsxRuntime.jsx("span", { className: Badge_module_default.label, children })
1622
1638
  ] });
1623
1639
  if (clickable) {
@@ -1659,7 +1675,7 @@ var Input_module_default = {
1659
1675
  error: "Input_module_error",
1660
1676
  "input-field--error": "Input_module_input-field--error",
1661
1677
  "input-field--disabled": "Input_module_input-field--disabled"};
1662
- var Input = React69.forwardRef(
1678
+ var Input = React70.forwardRef(
1663
1679
  (_a, ref) => {
1664
1680
  var _b = _a, {
1665
1681
  id,
@@ -1690,7 +1706,7 @@ var Input = React69.forwardRef(
1690
1706
  "hideLabel",
1691
1707
  "type"
1692
1708
  ]);
1693
- const generatedId = React69.useId();
1709
+ const generatedId = React70.useId();
1694
1710
  const inputId = id || generatedId;
1695
1711
  const helperTextId = `${inputId}-helper`;
1696
1712
  const errorId = `${inputId}-error`;
@@ -1698,7 +1714,7 @@ var Input = React69.forwardRef(
1698
1714
  return /* @__PURE__ */ jsxRuntime.jsxs(
1699
1715
  "div",
1700
1716
  {
1701
- className: clsx43__default.default(
1717
+ className: clsx47__default.default(
1702
1718
  "input-field",
1703
1719
  Input_module_default["input-field"],
1704
1720
  {
@@ -1712,17 +1728,17 @@ var Input = React69.forwardRef(
1712
1728
  "label",
1713
1729
  {
1714
1730
  htmlFor: inputId,
1715
- className: clsx43__default.default("input-label", Input_module_default.label, {
1731
+ className: clsx47__default.default("input-label", Input_module_default.label, {
1716
1732
  ["sr-only"]: hideLabel
1717
1733
  }),
1718
1734
  children: [
1719
1735
  label,
1720
- required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx43__default.default("input-required", Input_module_default.required), "aria-hidden": "true", children: "*" })
1736
+ required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx47__default.default("input-required", Input_module_default.required), "aria-hidden": "true", children: "*" })
1721
1737
  ]
1722
1738
  }
1723
1739
  ),
1724
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default("input-wrapper", Input_module_default.wrapper), children: [
1725
- startAdornment && /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx43__default.default("input-adornment", Input_module_default.adornment), "aria-hidden": "true", children: startAdornment }),
1740
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default("input-wrapper", Input_module_default.wrapper), children: [
1741
+ startAdornment && /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx47__default.default("input-adornment", Input_module_default.adornment), "aria-hidden": "true", children: startAdornment }),
1726
1742
  /* @__PURE__ */ jsxRuntime.jsx(
1727
1743
  "input",
1728
1744
  __spreadValues({
@@ -1733,7 +1749,7 @@ var Input = React69.forwardRef(
1733
1749
  disabled,
1734
1750
  "aria-invalid": !!error,
1735
1751
  "aria-describedby": describedBy || void 0,
1736
- className: clsx43__default.default(
1752
+ className: clsx47__default.default(
1737
1753
  "input",
1738
1754
  Input_module_default.input,
1739
1755
  {
@@ -1744,11 +1760,11 @@ var Input = React69.forwardRef(
1744
1760
  )
1745
1761
  }, props)
1746
1762
  ),
1747
- endAdornment && /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx43__default.default("input-adornment", Input_module_default.adornment), "aria-hidden": "true", children: endAdornment }),
1748
- endAction && /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx43__default.default("input-end-action"), children: endAction })
1763
+ endAdornment && /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx47__default.default("input-adornment", Input_module_default.adornment), "aria-hidden": "true", children: endAdornment }),
1764
+ endAction && /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx47__default.default("input-end-action"), children: endAction })
1749
1765
  ] }),
1750
- helperText && !error && /* @__PURE__ */ jsxRuntime.jsx("p", { id: helperTextId, className: clsx43__default.default("input-helper-text", Input_module_default["helper-text"]), children: helperText }),
1751
- error && /* @__PURE__ */ jsxRuntime.jsx("p", { id: errorId, className: clsx43__default.default("input-error", Input_module_default.error), role: "alert", children: error })
1766
+ helperText && !error && /* @__PURE__ */ jsxRuntime.jsx("p", { id: helperTextId, className: clsx47__default.default("input-helper-text", Input_module_default["helper-text"]), children: helperText }),
1767
+ error && /* @__PURE__ */ jsxRuntime.jsx("p", { id: errorId, className: clsx47__default.default("input-error", Input_module_default.error), role: "alert", children: error })
1752
1768
  ]
1753
1769
  }
1754
1770
  );
@@ -1788,14 +1804,14 @@ var NewsCard = ({
1788
1804
  href: cta.url,
1789
1805
  target: cta.isExternal ? "_blank" : void 0,
1790
1806
  rel: cta.isExternal ? "noopener noreferrer" : void 0,
1791
- className: clsx43__default.default("news-card-link", NewsCard_module_default["news-card-link"]),
1807
+ className: clsx47__default.default("news-card-link", NewsCard_module_default["news-card-link"]),
1792
1808
  "aria-label": `${title}${cta.label ? ` \u2014 ${cta.label}` : ""}`
1793
1809
  } : null;
1794
1810
  const cardLink = linkProps ? renderLink ? renderLink(__spreadProps(__spreadValues({}, linkProps), { children: null })) : /* @__PURE__ */ jsxRuntime.jsx("a", __spreadValues({}, linkProps)) : null;
1795
1811
  return /* @__PURE__ */ jsxRuntime.jsxs(
1796
1812
  "article",
1797
1813
  {
1798
- className: clsx43__default.default(
1814
+ className: clsx47__default.default(
1799
1815
  "news-card",
1800
1816
  NewsCard_module_default["news-card"],
1801
1817
  NewsCard_module_default[`news-card--${direction}`],
@@ -1803,28 +1819,28 @@ var NewsCard = ({
1803
1819
  ),
1804
1820
  children: [
1805
1821
  cardLink,
1806
- image && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadProps(__spreadValues({}, image), { className: clsx43__default.default("news-card-image", NewsCard_module_default["news-card-image"]) })),
1822
+ image && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadProps(__spreadValues({}, image), { className: clsx47__default.default("news-card-image", NewsCard_module_default["news-card-image"]) })),
1807
1823
  /* @__PURE__ */ jsxRuntime.jsxs(
1808
1824
  "div",
1809
1825
  {
1810
- className: clsx43__default.default("news-card-content", NewsCard_module_default["news-card-content"]),
1826
+ className: clsx47__default.default("news-card-content", NewsCard_module_default["news-card-content"]),
1811
1827
  style: {
1812
1828
  "--no-image-padding": image && image.src ? 0 : "1rem"
1813
1829
  },
1814
1830
  children: [
1815
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default("news-card-top-content", NewsCard_module_default["news-card-top-content"]), children: [
1816
- /* @__PURE__ */ jsxRuntime.jsx(Badge, { className: clsx43__default.default("news-card-badge", NewsCard_module_default["news-card-badge"]), children: tag }),
1817
- /* @__PURE__ */ jsxRuntime.jsx("time", { dateTime: date.value, className: clsx43__default.default("news-card-date", NewsCard_module_default["news-card-date"]), children: date.label })
1831
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default("news-card-top-content", NewsCard_module_default["news-card-top-content"]), children: [
1832
+ /* @__PURE__ */ jsxRuntime.jsx(Badge, { className: clsx47__default.default("news-card-badge", NewsCard_module_default["news-card-badge"]), children: tag }),
1833
+ /* @__PURE__ */ jsxRuntime.jsx("time", { dateTime: date.value, className: clsx47__default.default("news-card-date", NewsCard_module_default["news-card-date"]), children: date.label })
1818
1834
  ] }),
1819
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default("news-card-main-content", NewsCard_module_default["news-card-main-content"]), children: [
1820
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: clsx43__default.default("news-card-title", NewsCard_module_default["news-card-title"]), children: title }),
1821
- typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: clsx43__default.default("news-card-description", NewsCard_module_default["news-card-description"]), children: description }) : description
1835
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default("news-card-main-content", NewsCard_module_default["news-card-main-content"]), children: [
1836
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: clsx47__default.default("news-card-title", NewsCard_module_default["news-card-title"]), children: title }),
1837
+ typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: clsx47__default.default("news-card-description", NewsCard_module_default["news-card-description"]), children: description }) : description
1822
1838
  ] }),
1823
- cta && cta.url && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default("news-card-cta-wrapper", NewsCard_module_default["news-card-cta-wrapper"]), children: /* @__PURE__ */ jsxRuntime.jsx(
1839
+ cta && cta.url && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default("news-card-cta-wrapper", NewsCard_module_default["news-card-cta-wrapper"]), children: /* @__PURE__ */ jsxRuntime.jsx(
1824
1840
  Button,
1825
1841
  {
1826
1842
  variant: "secondary",
1827
- className: clsx43__default.default("news-card-cta", NewsCard_module_default["news-card-cta"]),
1843
+ className: clsx47__default.default("news-card-cta", NewsCard_module_default["news-card-cta"]),
1828
1844
  href: cta.url,
1829
1845
  icon: cta.icon,
1830
1846
  isExternal: cta == null ? void 0 : cta.isExternal,
@@ -1855,13 +1871,278 @@ var BlogPostContent = ({ className, body, children }) => {
1855
1871
  body: BlogPostContentBody
1856
1872
  });
1857
1873
  const bodyNode = (_a = slots.body) != null ? _a : body;
1858
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default("blog-post-content", BlogPostContent_module_default["blog-post-content"], className), children: bodyNode });
1874
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default("blog-post-content", BlogPostContent_module_default["blog-post-content"], className), children: bodyNode });
1859
1875
  };
1860
1876
 
1861
1877
  // src/components/BlogPostContent/index.ts
1862
1878
  var BlogPostContent2 = Object.assign(BlogPostContent, {
1863
1879
  Body: BlogPostContentBody
1864
1880
  });
1881
+
1882
+ // src/components/Search/Search.module.scss
1883
+ var Search_module_default = {
1884
+ search: "Search_module_search",
1885
+ searchButton: "Search_module_searchButton",
1886
+ searchField: "Search_module_searchField",
1887
+ searchFieldLine: "Search_module_searchFieldLine",
1888
+ searchInput: "Search_module_searchInput",
1889
+ searchFieldPill: "Search_module_searchFieldPill",
1890
+ searchSubmit: "Search_module_searchSubmit"
1891
+ };
1892
+ var Search = ({
1893
+ placeholder = "Search",
1894
+ searchCta,
1895
+ onSearch,
1896
+ variant = "expandable",
1897
+ className
1898
+ }) => {
1899
+ const isPill = variant === "pill";
1900
+ const [isOpen, setIsOpen] = React70.useState(isPill);
1901
+ const [query, setQuery] = React70.useState("");
1902
+ const inputRef = React70.useRef(null);
1903
+ React70.useEffect(() => {
1904
+ var _a;
1905
+ if (isOpen && !isPill) (_a = inputRef.current) == null ? void 0 : _a.focus();
1906
+ }, [isOpen, isPill]);
1907
+ const submit = () => {
1908
+ const value = query.trim();
1909
+ if (!value) return;
1910
+ onSearch == null ? void 0 : onSearch(value);
1911
+ if (searchCta == null ? void 0 : searchCta.url) {
1912
+ const separator = searchCta.url.includes("?") ? "&" : "?";
1913
+ window.location.href = `${searchCta.url}${separator}q=${encodeURIComponent(value)}`;
1914
+ }
1915
+ };
1916
+ const handleKeyDown = (e) => {
1917
+ if (e.key === "Enter") {
1918
+ e.preventDefault();
1919
+ submit();
1920
+ } else if (e.key === "Escape" && !isPill) {
1921
+ setIsOpen(false);
1922
+ }
1923
+ };
1924
+ if (!isOpen) {
1925
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(Search_module_default.search, className), children: /* @__PURE__ */ jsxRuntime.jsx(
1926
+ "button",
1927
+ {
1928
+ type: "button",
1929
+ className: Search_module_default.searchButton,
1930
+ "aria-label": (searchCta == null ? void 0 : searchCta.label) || "Search",
1931
+ "aria-expanded": false,
1932
+ onClick: () => setIsOpen(true),
1933
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "search", size: 32, "aria-hidden": "true" })
1934
+ }
1935
+ ) });
1936
+ }
1937
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(Search_module_default.search, className), children: /* @__PURE__ */ jsxRuntime.jsxs(
1938
+ "div",
1939
+ {
1940
+ className: clsx47__default.default(
1941
+ Search_module_default.searchField,
1942
+ isPill ? Search_module_default.searchFieldPill : Search_module_default.searchFieldLine
1943
+ ),
1944
+ children: [
1945
+ isPill && /* @__PURE__ */ jsxRuntime.jsx(
1946
+ "button",
1947
+ {
1948
+ type: "button",
1949
+ className: Search_module_default.searchSubmit,
1950
+ "aria-label": (searchCta == null ? void 0 : searchCta.label) || "Search",
1951
+ onClick: submit,
1952
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "search", size: 24, "aria-hidden": "true" })
1953
+ }
1954
+ ),
1955
+ /* @__PURE__ */ jsxRuntime.jsx(
1956
+ "input",
1957
+ {
1958
+ ref: inputRef,
1959
+ type: "search",
1960
+ className: Search_module_default.searchInput,
1961
+ placeholder,
1962
+ value: query,
1963
+ "aria-label": placeholder,
1964
+ onChange: (e) => setQuery(e.target.value),
1965
+ onKeyDown: handleKeyDown,
1966
+ onBlur: () => !isPill && !query && setIsOpen(false)
1967
+ }
1968
+ ),
1969
+ !isPill ? /* @__PURE__ */ jsxRuntime.jsx(
1970
+ "button",
1971
+ {
1972
+ type: "button",
1973
+ className: Search_module_default.searchSubmit,
1974
+ "aria-label": (searchCta == null ? void 0 : searchCta.label) || "Search",
1975
+ onClick: submit,
1976
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "search", size: 24, "aria-hidden": "true" })
1977
+ }
1978
+ ) : query && /* @__PURE__ */ jsxRuntime.jsx(
1979
+ "button",
1980
+ {
1981
+ type: "button",
1982
+ className: Search_module_default.searchSubmit,
1983
+ "aria-label": "Submit search",
1984
+ onClick: submit,
1985
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "rightBlack", size: 24, "aria-hidden": "true" })
1986
+ }
1987
+ )
1988
+ ]
1989
+ }
1990
+ ) });
1991
+ };
1992
+
1993
+ // src/components/UserMenu/UserMenu.module.scss
1994
+ var UserMenu_module_default = {
1995
+ userButton: "UserMenu_module_userButton",
1996
+ userMenuWrapper: "UserMenu_module_userMenuWrapper",
1997
+ fullWidth: "UserMenu_module_fullWidth",
1998
+ userChevron: "UserMenu_module_userChevron",
1999
+ userChevronOpen: "UserMenu_module_userChevronOpen",
2000
+ userMenu: "UserMenu_module_userMenu",
2001
+ userMenuUp: "UserMenu_module_userMenuUp",
2002
+ userMenuItem: "UserMenu_module_userMenuItem",
2003
+ userMenuItemDanger: "UserMenu_module_userMenuItemDanger",
2004
+ userAvatar: "UserMenu_module_userAvatar",
2005
+ userInner: "UserMenu_module_userInner",
2006
+ userLabel: "UserMenu_module_userLabel"
2007
+ };
2008
+ var UserMenu = ({ user, className, dropUp, fullWidth }) => {
2009
+ var _a, _b, _c;
2010
+ const [isOpen, setIsOpen] = React70.useState(false);
2011
+ const wrapperRef = React70.useRef(null);
2012
+ const closeTimer = React70.useRef(null);
2013
+ const hasMenu = !!((_a = user.menuItems) == null ? void 0 : _a.length);
2014
+ const openMenu = () => {
2015
+ if (closeTimer.current) clearTimeout(closeTimer.current);
2016
+ setIsOpen(true);
2017
+ };
2018
+ const scheduleClose = () => {
2019
+ if (closeTimer.current) clearTimeout(closeTimer.current);
2020
+ closeTimer.current = setTimeout(() => setIsOpen(false), 120);
2021
+ };
2022
+ const handleBlur = (e) => {
2023
+ var _a2;
2024
+ if (!((_a2 = wrapperRef.current) == null ? void 0 : _a2.contains(e.relatedTarget))) {
2025
+ setIsOpen(false);
2026
+ }
2027
+ };
2028
+ React70.useEffect(() => {
2029
+ return () => {
2030
+ if (closeTimer.current) clearTimeout(closeTimer.current);
2031
+ };
2032
+ }, []);
2033
+ React70.useEffect(() => {
2034
+ if (!isOpen) return;
2035
+ const handleKey = (e) => {
2036
+ if (e.key === "Escape") setIsOpen(false);
2037
+ };
2038
+ const handleOutside = (e) => {
2039
+ if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {
2040
+ setIsOpen(false);
2041
+ }
2042
+ };
2043
+ document.addEventListener("keydown", handleKey);
2044
+ document.addEventListener("pointerdown", handleOutside);
2045
+ return () => {
2046
+ document.removeEventListener("keydown", handleKey);
2047
+ document.removeEventListener("pointerdown", handleOutside);
2048
+ };
2049
+ }, [isOpen]);
2050
+ const avatar = user.avatar ? /* @__PURE__ */ jsxRuntime.jsx(Picture, { className: UserMenu_module_default.userAvatar, src: user.avatar.src, alt: (_b = user.avatar.alt) != null ? _b : "" }) : /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "user", size: 24, className: UserMenu_module_default.userAvatar, "aria-hidden": "true" });
2051
+ if (!hasMenu) {
2052
+ const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2053
+ avatar,
2054
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: UserMenu_module_default.userInner, children: [
2055
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: UserMenu_module_default.userLabel, children: user.label }),
2056
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "downChevronBlack", size: 13, "aria-hidden": "true" })
2057
+ ] })
2058
+ ] });
2059
+ const rootClass = clsx47__default.default(UserMenu_module_default.userButton, fullWidth && UserMenu_module_default.fullWidth, className);
2060
+ return user.url ? /* @__PURE__ */ jsxRuntime.jsx(
2061
+ "a",
2062
+ {
2063
+ href: user.url,
2064
+ className: rootClass,
2065
+ target: user.isExternal ? "_blank" : void 0,
2066
+ rel: user.isExternal ? "noopener noreferrer" : void 0,
2067
+ children: content
2068
+ }
2069
+ ) : /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: rootClass, children: content });
2070
+ }
2071
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2072
+ "div",
2073
+ {
2074
+ className: clsx47__default.default(UserMenu_module_default.userMenuWrapper, fullWidth && UserMenu_module_default.fullWidth, className),
2075
+ ref: wrapperRef,
2076
+ onMouseLeave: scheduleClose,
2077
+ onBlur: handleBlur,
2078
+ children: [
2079
+ /* @__PURE__ */ jsxRuntime.jsxs(
2080
+ Button,
2081
+ {
2082
+ variant: "grey",
2083
+ type: "button",
2084
+ className: UserMenu_module_default.userButton,
2085
+ "aria-haspopup": "menu",
2086
+ "aria-expanded": isOpen,
2087
+ onMouseEnter: openMenu,
2088
+ onFocus: openMenu,
2089
+ onClick: () => setIsOpen((prev) => !prev),
2090
+ children: [
2091
+ avatar,
2092
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: UserMenu_module_default.userInner, children: [
2093
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: UserMenu_module_default.userLabel, children: user.label }),
2094
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx47__default.default(UserMenu_module_default.userChevron, isOpen && UserMenu_module_default.userChevronOpen), children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "downChevronBlack", size: 13, "aria-hidden": "true" }) })
2095
+ ] })
2096
+ ]
2097
+ }
2098
+ ),
2099
+ isOpen && /* @__PURE__ */ jsxRuntime.jsx(
2100
+ "div",
2101
+ {
2102
+ className: clsx47__default.default(UserMenu_module_default.userMenu, dropUp && UserMenu_module_default.userMenuUp),
2103
+ role: "menu",
2104
+ onMouseEnter: openMenu,
2105
+ onMouseLeave: scheduleClose,
2106
+ children: (_c = user.menuItems) == null ? void 0 : _c.map((item, i) => {
2107
+ const itemClass = clsx47__default.default(
2108
+ UserMenu_module_default.userMenuItem,
2109
+ item.variant === "danger" && UserMenu_module_default.userMenuItemDanger
2110
+ );
2111
+ const handleClick = () => {
2112
+ var _a2;
2113
+ (_a2 = item.onClick) == null ? void 0 : _a2.call(item);
2114
+ setIsOpen(false);
2115
+ };
2116
+ return item.url ? /* @__PURE__ */ jsxRuntime.jsx(
2117
+ "a",
2118
+ {
2119
+ href: item.url,
2120
+ role: "menuitem",
2121
+ className: itemClass,
2122
+ target: item.isExternal ? "_blank" : void 0,
2123
+ rel: item.isExternal ? "noopener noreferrer" : void 0,
2124
+ onClick: handleClick,
2125
+ children: item.label
2126
+ },
2127
+ i
2128
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
2129
+ "button",
2130
+ {
2131
+ type: "button",
2132
+ role: "menuitem",
2133
+ className: itemClass,
2134
+ onClick: handleClick,
2135
+ children: item.label
2136
+ },
2137
+ i
2138
+ );
2139
+ })
2140
+ }
2141
+ )
2142
+ ]
2143
+ }
2144
+ );
2145
+ };
1865
2146
  var CardCollectionTitle = ({ children }) => {
1866
2147
  return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
1867
2148
  };
@@ -1895,10 +2176,10 @@ var CardCollection = ({
1895
2176
  children
1896
2177
  }) => {
1897
2178
  var _a, _b;
1898
- const container = React69.useRef(null);
1899
- const revealWrapper = React69.useRef(null);
1900
- const extraCard = React69.useRef(null);
1901
- const [isExpanded, setIsExpanded] = React69.useState(false);
2179
+ const container = React70.useRef(null);
2180
+ const revealWrapper = React70.useRef(null);
2181
+ const extraCard = React70.useRef(null);
2182
+ const [isExpanded, setIsExpanded] = React70.useState(false);
1902
2183
  const slots = resolveCompoundSlots(children, {
1903
2184
  title: CardCollectionTitle,
1904
2185
  subtitle: CardCollectionSubtitle
@@ -1909,7 +2190,7 @@ var CardCollection = ({
1909
2190
  const visibleCards = isExamCard ? cards.slice(0, 8) : cards;
1910
2191
  const hiddenCards = isExamCard ? cards.slice(8) : [];
1911
2192
  const { contextSafe } = react.useGSAP({ scope: container });
1912
- const handleShowMore = React69.useCallback(() => {
2193
+ const handleShowMore = React70.useCallback(() => {
1913
2194
  contextSafe(() => {
1914
2195
  setIsExpanded(true);
1915
2196
  const tl = gsap__default.default.timeline({ defaults: { ease: "power3.inOut" } });
@@ -1941,13 +2222,13 @@ var CardCollection = ({
1941
2222
  Container,
1942
2223
  {
1943
2224
  ref: container,
1944
- className: clsx43__default.default(CardCollection_module_default["card-collection"], CardCollection_module_default[variant], className),
2225
+ className: clsx47__default.default(CardCollection_module_default["card-collection"], CardCollection_module_default[variant], className),
1945
2226
  children: [
1946
2227
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: CardCollection_module_default.content, children: [
1947
2228
  titleNode && /* @__PURE__ */ jsxRuntime.jsx("h2", { children: titleNode }),
1948
2229
  subtitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "subheading", children: subtitleNode })
1949
2230
  ] }),
1950
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: CardCollection_module_default.wrapper, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default(CardCollection_module_default.cardWrapper, { [CardCollection_module_default["is-expanded"]]: isExpanded }), children: [
2231
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: CardCollection_module_default.wrapper, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default(CardCollection_module_default.cardWrapper, { [CardCollection_module_default["is-expanded"]]: isExpanded }), children: [
1951
2232
  visibleCards.map((card, key) => /* @__PURE__ */ jsxRuntime.jsx(Card2, __spreadValues({ className: CardCollection_module_default.card, variant: theme }, card), key)),
1952
2233
  isExamCard && hiddenCards.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { ref: revealWrapper, className: CardCollection_module_default["reveal-wrapper"], children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: CardCollection_module_default["reveal-inner"], children: hiddenCards.map((card, key) => /* @__PURE__ */ jsxRuntime.jsx(
1953
2234
  Card2,
@@ -2013,8 +2294,8 @@ var ContactModule = ({
2013
2294
  animateBlur = true
2014
2295
  }) => {
2015
2296
  var _a, _b;
2016
- const containerRef = React69.useRef(null);
2017
- const blurRef = React69.useRef(null);
2297
+ const containerRef = React70.useRef(null);
2298
+ const blurRef = React70.useRef(null);
2018
2299
  const slots = resolveCompoundSlots(children, {
2019
2300
  title: ContactModuleTitle,
2020
2301
  subtitle: ContactModuleSubtitle
@@ -2048,7 +2329,7 @@ var ContactModule = ({
2048
2329
  },
2049
2330
  { scope: containerRef, dependencies: [blurred, animateBlur] }
2050
2331
  );
2051
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: containerRef, className: clsx43__default.default(ContactModule_module_default["contact-module"], className), children: [
2332
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: containerRef, className: clsx47__default.default(ContactModule_module_default["contact-module"], className), children: [
2052
2333
  blurred && /* @__PURE__ */ jsxRuntime.jsx(
2053
2334
  "div",
2054
2335
  {
@@ -2063,8 +2344,8 @@ var ContactModule = ({
2063
2344
  /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: ContactModule_module_default.container, children: [
2064
2345
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ContactModule_module_default.wrapper, children: [
2065
2346
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ContactModule_module_default.content, children: [
2066
- titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default(ContactModule_module_default.title, "h1"), children: titleNode }),
2067
- subtitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default(ContactModule_module_default.subtitle, "subheading"), children: subtitleNode })
2347
+ titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(ContactModule_module_default.title, "h1"), children: titleNode }),
2348
+ subtitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(ContactModule_module_default.subtitle, "subheading"), children: subtitleNode })
2068
2349
  ] }),
2069
2350
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: ContactModule_module_default["cta-wrapper"], children: ctas == null ? void 0 : ctas.map((cta, key) => /* @__PURE__ */ jsxRuntime.jsx(
2070
2351
  Button,
@@ -2133,7 +2414,7 @@ var Footer = ({
2133
2414
  disclaimer: FooterDisclaimer
2134
2415
  });
2135
2416
  const titleNode = (_a = slots.disclaimer) != null ? _a : disclaimer;
2136
- return /* @__PURE__ */ jsxRuntime.jsx("footer", { className: clsx43__default.default(Footer_module_default.footer, className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: Footer_module_default.container, children: [
2417
+ return /* @__PURE__ */ jsxRuntime.jsx("footer", { className: clsx47__default.default(Footer_module_default.footer, className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: Footer_module_default.container, children: [
2137
2418
  supportContacts.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Footer_module_default["support-section"], children: [
2138
2419
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: Footer_module_default["support-heading"], children: "SUPPORT" }),
2139
2420
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: Footer_module_default.support, children: supportColumns.map((column, colIdx) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: Footer_module_default["support-column"], children: column.map((group, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Footer_module_default["support-group"], children: [
@@ -2162,7 +2443,7 @@ var Footer = ({
2162
2443
  index
2163
2444
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: Footer_module_default["supporter-link-primary"], children: /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({}, supporter.image)) }, index)
2164
2445
  ) }) }),
2165
- titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default(Footer_module_default.disclaimer, "p"), children: titleNode }),
2446
+ titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(Footer_module_default.disclaimer, "p"), children: titleNode }),
2166
2447
  copyright && /* @__PURE__ */ jsxRuntime.jsx("p", { className: Footer_module_default.copyright, children: copyright })
2167
2448
  ] }),
2168
2449
  navigationLinks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("nav", { className: Footer_module_default["bottom-right"], children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: Footer_module_default["nav-list"], children: navigationLinks.map((link) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -2188,7 +2469,7 @@ var LogoBar_module_default = {
2188
2469
  };
2189
2470
  var LogoBar = ({ className, items }) => {
2190
2471
  if (!items || items.length === 0) return null;
2191
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default(LogoBar_module_default.logoBar, className), children: items.map((item, key) => {
2472
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(LogoBar_module_default.logoBar, className), children: items.map((item, key) => {
2192
2473
  return /* @__PURE__ */ jsxRuntime.jsx(Anchor, { href: item.url, isExternal: item.isExternal, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: LogoBar_module_default.logoWrapper, children: [
2193
2474
  item.logo && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: LogoBar_module_default.logo }, item.logo)),
2194
2475
  item.hoverLogo && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: LogoBar_module_default.logoHover }, item.hoverLogo))
@@ -2260,7 +2541,7 @@ var HeroBanner = ({
2260
2541
  });
2261
2542
  const titleNode = (_a = slots.title) != null ? _a : title;
2262
2543
  const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
2263
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default(HeroBanner_module_default.heroBanner, HeroBanner_module_default[variant], className), children: [
2544
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default(HeroBanner_module_default.heroBanner, HeroBanner_module_default[variant], className), children: [
2264
2545
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: HeroBanner_module_default.container, children: [
2265
2546
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: HeroBanner_module_default.banner, children: [
2266
2547
  (titleNode || subtitleNode) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: HeroBanner_module_default.text, children: [
@@ -2270,7 +2551,7 @@ var HeroBanner = ({
2270
2551
  {
2271
2552
  tag: "h2",
2272
2553
  promoteToH1,
2273
- className: clsx43__default.default(HeroBanner_module_default.title, vBannerPodcast ? "h3" : "h1"),
2554
+ className: clsx47__default.default(HeroBanner_module_default.title, vBannerPodcast ? "h3" : "h1"),
2274
2555
  children: titleNode
2275
2556
  }
2276
2557
  ),
@@ -2279,7 +2560,7 @@ var HeroBanner = ({
2279
2560
  {
2280
2561
  tag: "div",
2281
2562
  promoteToH1: promoteToH1 && !titleNode,
2282
- className: clsx43__default.default(HeroBanner_module_default.subtitle, "subheading"),
2563
+ className: clsx47__default.default(HeroBanner_module_default.subtitle, "subheading"),
2283
2564
  children: subtitleNode
2284
2565
  }
2285
2566
  )
@@ -2353,10 +2634,10 @@ var HeroBannerCarousel = ({
2353
2634
  }) => {
2354
2635
  const { is } = useViewPort_default();
2355
2636
  const isMobile = is("tablet", "below");
2356
- const [swiperInstance, setSwiperInstance] = React69.useState(null);
2357
- const [activeIndex, setActiveIndex] = React69.useState(0);
2637
+ const [swiperInstance, setSwiperInstance] = React70.useState(null);
2638
+ const [activeIndex, setActiveIndex] = React70.useState(0);
2358
2639
  if (!items.length) return null;
2359
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default(HeroBannerCarousel_module_default.heroBannerCarousel, className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: HeroBannerCarousel_module_default.inner, children: [
2640
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(HeroBannerCarousel_module_default.heroBannerCarousel, className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: HeroBannerCarousel_module_default.inner, children: [
2360
2641
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: HeroBannerCarousel_module_default.swiperContainer, children: /* @__PURE__ */ jsxRuntime.jsx(
2361
2642
  react$1.Swiper,
2362
2643
  {
@@ -2403,7 +2684,7 @@ var HeroBannerCarousel = ({
2403
2684
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: HeroBannerCarousel_module_default.pagination, children: items.map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
2404
2685
  "button",
2405
2686
  {
2406
- className: clsx43__default.default(HeroBannerCarousel_module_default.dot, index === activeIndex && HeroBannerCarousel_module_default.dotActive),
2687
+ className: clsx47__default.default(HeroBannerCarousel_module_default.dot, index === activeIndex && HeroBannerCarousel_module_default.dotActive),
2407
2688
  onClick: () => swiperInstance == null ? void 0 : swiperInstance.slideTo(index),
2408
2689
  "aria-label": `Go to slide ${index + 1}`
2409
2690
  },
@@ -2443,16 +2724,16 @@ var AccordionItem = ({
2443
2724
  onToggle,
2444
2725
  className
2445
2726
  }) => {
2446
- const contentRef = React69.useRef(null);
2447
- const contentInnerRef = React69.useRef(null);
2448
- const timelineRef = React69.useRef(null);
2449
- const [contentHeight, setContentHeight] = React69.useState(0);
2450
- React69.useEffect(() => {
2727
+ const contentRef = React70.useRef(null);
2728
+ const contentInnerRef = React70.useRef(null);
2729
+ const timelineRef = React70.useRef(null);
2730
+ const [contentHeight, setContentHeight] = React70.useState(0);
2731
+ React70.useEffect(() => {
2451
2732
  if (contentInnerRef.current) {
2452
2733
  setContentHeight(contentInnerRef.current.scrollHeight);
2453
2734
  }
2454
2735
  }, [children]);
2455
- React69.useEffect(() => {
2736
+ React70.useEffect(() => {
2456
2737
  if (contentRef.current && contentHeight > 0) {
2457
2738
  if (timelineRef.current) {
2458
2739
  timelineRef.current.kill();
@@ -2483,7 +2764,7 @@ var AccordionItem = ({
2483
2764
  return /* @__PURE__ */ jsxRuntime.jsxs(
2484
2765
  "div",
2485
2766
  {
2486
- className: clsx43__default.default(
2767
+ className: clsx47__default.default(
2487
2768
  Accordion_module_default.accordionItem,
2488
2769
  {
2489
2770
  [Accordion_module_default.accordionItemOpen]: isOpen
@@ -2494,18 +2775,18 @@ var AccordionItem = ({
2494
2775
  /* @__PURE__ */ jsxRuntime.jsxs(
2495
2776
  "button",
2496
2777
  {
2497
- className: clsx43__default.default(Accordion_module_default.accordionHeader, {
2778
+ className: clsx47__default.default(Accordion_module_default.accordionHeader, {
2498
2779
  [Accordion_module_default.accordionHeaderOpen]: isOpen
2499
2780
  }),
2500
2781
  onClick: handleToggle,
2501
2782
  "aria-expanded": isOpen,
2502
2783
  "aria-label": `Toggle ${title}`,
2503
2784
  children: [
2504
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: Accordion_module_default.accordionHeaderLeft, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx43__default.default("body", Accordion_module_default.accordionTitle), children: title }) }),
2785
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: Accordion_module_default.accordionHeaderLeft, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx47__default.default("body", Accordion_module_default.accordionTitle), children: title }) }),
2505
2786
  /* @__PURE__ */ jsxRuntime.jsx(
2506
2787
  "span",
2507
2788
  {
2508
- className: clsx43__default.default(Accordion_module_default.accordionChevron, {
2789
+ className: clsx47__default.default(Accordion_module_default.accordionChevron, {
2509
2790
  [Accordion_module_default.accordionChevronOpen]: isOpen
2510
2791
  }),
2511
2792
  children: isOpen ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "filledChevronUpBlack", size: 40 }) : /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "circleChevronDown", size: 40 })
@@ -2537,7 +2818,7 @@ var Accordion = ({
2537
2818
  allowMultiple = false,
2538
2819
  onItemToggle
2539
2820
  }) => {
2540
- const [openIds, setOpenIds] = React69.useState(defaultOpenIds);
2821
+ const [openIds, setOpenIds] = React70.useState(defaultOpenIds);
2541
2822
  const handleToggle = (id) => {
2542
2823
  setOpenIds((prev) => {
2543
2824
  let newOpenIds;
@@ -2557,7 +2838,7 @@ var Accordion = ({
2557
2838
  if (items.length === 0) {
2558
2839
  return null;
2559
2840
  }
2560
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default(Accordion_module_default.accordion, className), children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
2841
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(Accordion_module_default.accordion, className), children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
2561
2842
  AccordionItem,
2562
2843
  {
2563
2844
  id: item.id,
@@ -2598,10 +2879,10 @@ var InternalBrandsTab_module_default = {
2598
2879
  var InternalBrandsTab = (props) => {
2599
2880
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A;
2600
2881
  const { title, subTitle, className, tabs } = props;
2601
- const [activeIndex, setActiveIndex] = React69.useState(0);
2882
+ const [activeIndex, setActiveIndex] = React70.useState(0);
2602
2883
  const { is } = useViewPort_default();
2603
2884
  const isTabletBelow = is("tablet", "below");
2604
- const accordionItems = React69.useMemo(() => {
2885
+ const accordionItems = React70.useMemo(() => {
2605
2886
  return (tabs == null ? void 0 : tabs.map((tab, index) => {
2606
2887
  var _a2, _b2, _c2, _d2, _e2, _f2, _g2, _h2, _i2, _j2, _k2, _l2, _m2, _n2;
2607
2888
  return {
@@ -2647,7 +2928,7 @@ var InternalBrandsTab = (props) => {
2647
2928
  };
2648
2929
  })) || [];
2649
2930
  }, [tabs]);
2650
- return /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx43__default.default(InternalBrandsTab_module_default.internalBrandsTab, className), children: [
2931
+ return /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx47__default.default(InternalBrandsTab_module_default.internalBrandsTab, className), children: [
2651
2932
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: InternalBrandsTab_module_default.textsContainer, children: [
2652
2933
  title && /* @__PURE__ */ jsxRuntime.jsx(Text, { tag: "h2", className: InternalBrandsTab_module_default.title, children: title }),
2653
2934
  subTitle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: InternalBrandsTab_module_default.subTitle, children: subTitle })
@@ -2663,7 +2944,7 @@ var InternalBrandsTab = (props) => {
2663
2944
  },
2664
2945
  index
2665
2946
  )) }),
2666
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default(InternalBrandsTab_module_default.contentArea), children: ((_a = tabs == null ? void 0 : tabs[activeIndex]) == null ? void 0 : _a.topContent) && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2947
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(InternalBrandsTab_module_default.contentArea), children: ((_a = tabs == null ? void 0 : tabs[activeIndex]) == null ? void 0 : _a.topContent) && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2667
2948
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: InternalBrandsTab_module_default.topContent, children: [
2668
2949
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2669
2950
  ((_b = tabs[activeIndex].topContent) == null ? void 0 : _b.title) && /* @__PURE__ */ jsxRuntime.jsx("p", { className: InternalBrandsTab_module_default.topContentTitle, children: (_c = tabs[activeIndex].topContent) == null ? void 0 : _c.title }),
@@ -2761,22 +3042,22 @@ var MiniBanner = ({
2761
3042
  const titleNode = (_b = slots.title) != null ? _b : title;
2762
3043
  const subtitleNode = (_c = slots.subtitle) != null ? _c : subtitle;
2763
3044
  const goBackNode = slots == null ? void 0 : slots.goBack;
2764
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default(MiniBanner_module_default.minibanner, MiniBanner_module_default[variant], className), children: [
3045
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default(MiniBanner_module_default.minibanner, MiniBanner_module_default[variant], className), children: [
2765
3046
  ((background == null ? void 0 : background.src) || ((_d = background == null ? void 0 : background.desktop) == null ? void 0 : _d.src) || ((_e = background == null ? void 0 : background.mobile) == null ? void 0 : _e.src)) && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: MiniBanner_module_default.background }, background)),
2766
- /* @__PURE__ */ jsxRuntime.jsx(Container, { className: clsx43__default.default(goBackNode && MiniBanner_module_default.container), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: MiniBanner_module_default.wrapper, children: [
3047
+ /* @__PURE__ */ jsxRuntime.jsx(Container, { className: clsx47__default.default(goBackNode && MiniBanner_module_default.container), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: MiniBanner_module_default.wrapper, children: [
2767
3048
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: MiniBanner_module_default.textContainer, children: [
2768
3049
  (logo == null ? void 0 : logo.src) && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: MiniBanner_module_default.logo }, logo)),
2769
- pretitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default(MiniBanner_module_default.pretitle, "small"), children: pretitleNode }),
3050
+ pretitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(MiniBanner_module_default.pretitle, "small"), children: pretitleNode }),
2770
3051
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: MiniBanner_module_default.headingWrapper, children: [
2771
- goBackNode ? React69__default.default.cloneElement(goBackNode, {
2772
- className: clsx43__default.default("back-button", MiniBanner_module_default["back-button"])
3052
+ goBackNode ? React70__default.default.cloneElement(goBackNode, {
3053
+ className: clsx47__default.default("back-button", MiniBanner_module_default["back-button"])
2773
3054
  }) : null,
2774
- titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default(MiniBanner_module_default.title, isMiniBannerTextLeft ? "h1" : "h4"), children: titleNode })
3055
+ titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(MiniBanner_module_default.title, isMiniBannerTextLeft ? "h1" : "h4"), children: titleNode })
2775
3056
  ] }),
2776
3057
  subtitleNode && /* @__PURE__ */ jsxRuntime.jsx(
2777
3058
  "div",
2778
3059
  {
2779
- className: clsx43__default.default(MiniBanner_module_default.title, {
3060
+ className: clsx47__default.default(MiniBanner_module_default.title, {
2780
3061
  subheading: isMiniBannerNoBG,
2781
3062
  h1: !isMiniBannerNoBG && !isMiniBannerTextLeft,
2782
3063
  h4: isMiniBannerTextLeft
@@ -2849,14 +3130,14 @@ var MiniSectionCta = ({
2849
3130
  return /* @__PURE__ */ jsxRuntime.jsx(
2850
3131
  "div",
2851
3132
  {
2852
- className: clsx43__default.default(MiniSectionCta_module_default.miniSectionCta, MiniSectionCta_module_default[variant], theme && MiniSectionCta_module_default[theme], className),
3133
+ className: clsx47__default.default(MiniSectionCta_module_default.miniSectionCta, MiniSectionCta_module_default[variant], theme && MiniSectionCta_module_default[theme], className),
2853
3134
  children: /* @__PURE__ */ jsxRuntime.jsx(Container, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: MiniSectionCta_module_default.wrapper, children: [
2854
3135
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: MiniSectionCta_module_default.col, children: [
2855
3136
  titleNode && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: variant === "BgColorBlack" || variant === "BgColorGrey" ? "h3" : "h2", children: titleNode }),
2856
3137
  subtitleNode && /* @__PURE__ */ jsxRuntime.jsx(
2857
3138
  "div",
2858
3139
  {
2859
- className: clsx43__default.default(MiniSectionCta_module_default.subtitle, variant === "infoCallout" ? "h4" : "subheading"),
3140
+ className: clsx47__default.default(MiniSectionCta_module_default.subtitle, variant === "infoCallout" ? "h4" : "subheading"),
2860
3141
  children: subtitleNode
2861
3142
  }
2862
3143
  )
@@ -2882,37 +3163,9 @@ var MiniSectionCta2 = Object.assign(MiniSectionCta, {
2882
3163
  Title: MiniSectionCtaTitle,
2883
3164
  Subtitle: MiniSectionCtaSubtitle
2884
3165
  });
2885
- function useIntersectionObserver({
2886
- animateOnce = false,
2887
- options = {}
2888
- } = {}) {
2889
- const observeRef = React69.useRef(null);
2890
- const [isVisible, setIsVisible] = React69.useState(false);
2891
- if (typeof IntersectionObserver === "undefined") {
2892
- console.warn("IntersectionObserver is not supported in this browser.");
2893
- return { observeRef, isVisible: true };
2894
- }
2895
- React69.useEffect(() => {
2896
- const currentRef = observeRef.current;
2897
- if (!currentRef) return;
2898
- const observer = new IntersectionObserver((entries) => {
2899
- const entry = entries[0];
2900
- if (!entry) return;
2901
- setIsVisible(entry.isIntersecting);
2902
- if (entry.isIntersecting && animateOnce) {
2903
- observer.disconnect();
2904
- }
2905
- }, options);
2906
- observer.observe(currentRef);
2907
- return () => {
2908
- observer.disconnect();
2909
- };
2910
- }, [observeRef, animateOnce, options]);
2911
- return { observeRef, isVisible };
2912
- }
2913
3166
  var useIsAtTop = () => {
2914
- const [isAtTop, setIsAtTop] = React69.useState(true);
2915
- React69.useEffect(() => {
3167
+ const [isAtTop, setIsAtTop] = React70.useState(true);
3168
+ React70.useEffect(() => {
2916
3169
  const handleScroll = () => setIsAtTop(window.scrollY === 0);
2917
3170
  window.addEventListener("scroll", handleScroll, { passive: true });
2918
3171
  return () => window.removeEventListener("scroll", handleScroll);
@@ -2923,31 +3176,17 @@ var useIsAtTop = () => {
2923
3176
  // src/widgets/Navigation/Navigation.module.scss
2924
3177
  var Navigation_module_default = {
2925
3178
  dropdownTitle: "Navigation_module_dropdownTitle",
2926
- dropdownLink: "Navigation_module_dropdownLink",
2927
- dropdownDescription: "Navigation_module_dropdownDescription",
2928
3179
  mobileItemLink: "Navigation_module_mobileItemLink",
2929
3180
  mobileItemTrigger: "Navigation_module_mobileItemTrigger",
2930
3181
  mobileSubLink: "Navigation_module_mobileSubLink",
2931
- navigationWrapper: "Navigation_module_navigationWrapper",
2932
3182
  dropdownOpen: "Navigation_module_dropdownOpen",
2933
3183
  variantTransparent: "Navigation_module_variantTransparent",
2934
3184
  transparent: "Navigation_module_transparent",
2935
- navigation: "Navigation_module_navigation",
2936
- upperNav: "Navigation_module_upperNav",
2937
- mainLogo: "Navigation_module_mainLogo",
2938
- mainLogoLink: "Navigation_module_mainLogoLink",
3185
+ logo: "Navigation_module_logo",
2939
3186
  upperRight: "Navigation_module_upperRight",
2940
- lowerNav: "Navigation_module_lowerNav",
2941
- lowerNavItem: "Navigation_module_lowerNavItem",
2942
3187
  overlay: "Navigation_module_overlay",
2943
- dropdownTrigger: "Navigation_module_dropdownTrigger",
2944
- dropdownTriggerOpen: "Navigation_module_dropdownTriggerOpen",
2945
- dropdownPanel: "Navigation_module_dropdownPanel",
2946
- dropdownPanelOpen: "Navigation_module_dropdownPanelOpen",
2947
- dropdownInner: "Navigation_module_dropdownInner",
2948
- dropdownLinks: "Navigation_module_dropdownLinks",
2949
- dropdownLinkContainer: "Navigation_module_dropdownLinkContainer",
2950
- dropdownInfo: "Navigation_module_dropdownInfo",
3188
+ mainLogoLink: "Navigation_module_mainLogoLink",
3189
+ dropdownLinkSpacer: "Navigation_module_dropdownLinkSpacer",
2951
3190
  mainLogoMobile: "Navigation_module_mainLogoMobile",
2952
3191
  hamburgerButton: "Navigation_module_hamburgerButton",
2953
3192
  mobileMenu: "Navigation_module_mobileMenu",
@@ -2960,116 +3199,53 @@ var Navigation_module_default = {
2960
3199
  mobileSubItems: "Navigation_module_mobileSubItems",
2961
3200
  mobileSubItemsOpen: "Navigation_module_mobileSubItemsOpen",
2962
3201
  mobileSubItemsInner: "Navigation_module_mobileSubItemsInner",
2963
- mobileMenuCtas: "Navigation_module_mobileMenuCtas"
2964
- };
2965
- var NavigationDesktop = ({
2966
- navigationItems,
2967
- isTransparent,
2968
- onDropdownOpenChange
2969
- }) => {
2970
- var _a;
2971
- const [activeDropdown, setActiveDropdown] = React69.useState(null);
2972
- const closeTimer = React69.useRef(null);
2973
- const dropdownWrapperRefs = React69.useRef([]);
2974
- const baseId = React69.useId();
2975
- const setDropdown = (index) => {
2976
- setActiveDropdown(index);
2977
- onDropdownOpenChange == null ? void 0 : onDropdownOpenChange(index !== null);
2978
- };
2979
- const handleDropdownEnter = (index) => {
2980
- if (closeTimer.current) clearTimeout(closeTimer.current);
2981
- setDropdown(index);
2982
- };
2983
- const handleDropdownLeave = () => {
2984
- closeTimer.current = setTimeout(() => setDropdown(null), 100);
2985
- };
2986
- const handleDropdownBlur = (e, index) => {
2987
- if (!e.currentTarget.contains(e.relatedTarget)) {
2988
- if (activeDropdown === index) setDropdown(null);
2989
- }
2990
- };
2991
- const handleTriggerKeyDown = (e, index) => {
2992
- if (e.key === "Escape") {
2993
- setDropdown(null);
2994
- } else if ((e.key === "Enter" || e.key === " ") && activeDropdown !== index) {
2995
- e.preventDefault();
2996
- setDropdown(index);
2997
- }
2998
- };
2999
- const handleDropdownKeyDown = (e, index) => {
3000
- var _a2, _b;
3001
- if (e.key === "Escape") {
3002
- setDropdown(null);
3003
- (_b = (_a2 = dropdownWrapperRefs.current[index]) == null ? void 0 : _a2.querySelector("button")) == null ? void 0 : _b.focus();
3004
- }
3005
- };
3006
- if (!((_a = navigationItems == null ? void 0 : navigationItems.items) == null ? void 0 : _a.length)) return null;
3007
- return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: Navigation_module_default.lowerNav, children: navigationItems.items.map((item, index) => {
3008
- var _a2, _b, _c;
3009
- const panelId = `${baseId}-panel-${index}`;
3010
- const isOpen = activeDropdown === index;
3011
- return item.type === "dropdown" ? /* @__PURE__ */ jsxRuntime.jsxs(
3012
- "li",
3013
- {
3014
- className: Navigation_module_default.lowerNavItem,
3015
- ref: (el) => {
3016
- dropdownWrapperRefs.current[index] = el;
3017
- },
3018
- onBlur: (e) => handleDropdownBlur(e, index),
3019
- children: [
3020
- /* @__PURE__ */ jsxRuntime.jsx(
3021
- Button,
3022
- {
3023
- variant: "navnofillblack",
3024
- className: clsx43__default.default(Navigation_module_default.dropdownTrigger, { [Navigation_module_default.dropdownTriggerOpen]: isOpen }),
3025
- icon: isTransparent ? "downChevronWhite" : "downChevronBlack",
3026
- isActive: isOpen,
3027
- "aria-expanded": isOpen,
3028
- "aria-haspopup": "true",
3029
- "aria-controls": panelId,
3030
- onMouseEnter: () => handleDropdownEnter(index),
3031
- onMouseLeave: handleDropdownLeave,
3032
- onClick: () => setDropdown(isOpen ? null : index),
3033
- onKeyDown: (e) => handleTriggerKeyDown(e, index),
3034
- children: item.title
3035
- }
3036
- ),
3037
- /* @__PURE__ */ jsxRuntime.jsx(
3038
- "div",
3039
- {
3040
- id: panelId,
3041
- className: clsx43__default.default(Navigation_module_default.dropdownPanel, { [Navigation_module_default.dropdownPanelOpen]: isOpen }),
3042
- "aria-hidden": !isOpen,
3043
- onMouseEnter: () => handleDropdownEnter(index),
3044
- onMouseLeave: handleDropdownLeave,
3045
- onKeyDown: (e) => handleDropdownKeyDown(e, index),
3046
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Navigation_module_default.dropdownInner, children: [
3047
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: Navigation_module_default.dropdownLinks, children: item.items.map(
3048
- (subItem, i) => {
3049
- var _a3, _b2;
3050
- return subItem.type === "link" ? /* @__PURE__ */ jsxRuntime.jsx("li", { className: Navigation_module_default.dropdownLinkContainer, children: /* @__PURE__ */ jsxRuntime.jsx(
3051
- "a",
3052
- {
3053
- href: (_a3 = subItem.cta) == null ? void 0 : _a3.url,
3054
- className: Navigation_module_default.dropdownLink,
3055
- tabIndex: isOpen ? void 0 : -1,
3056
- children: (_b2 = subItem.cta) == null ? void 0 : _b2.label
3057
- }
3058
- ) }, i) : null;
3059
- }
3060
- ) }),
3061
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Navigation_module_default.dropdownInfo, children: [
3062
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: Navigation_module_default.dropdownTitle, children: item.title }),
3063
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: Navigation_module_default.dropdownDescription, children: item.description })
3064
- ] })
3065
- ] })
3066
- }
3067
- )
3068
- ]
3069
- },
3070
- index
3071
- ) : /* @__PURE__ */ jsxRuntime.jsx("li", { className: Navigation_module_default.lowerNavItem, children: /* @__PURE__ */ jsxRuntime.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);
3072
- }) });
3202
+ mobileMenuCtas: "Navigation_module_mobileMenuCtas",
3203
+ Navigation: "Navigation_module_Navigation",
3204
+ mainBar: "Navigation_module_mainBar",
3205
+ navTabLink: "Navigation_module_navTabLink",
3206
+ navTabActive: "Navigation_module_navTabActive",
3207
+ inner: "Navigation_module_inner",
3208
+ topRow: "Navigation_module_topRow",
3209
+ logoLink: "Navigation_module_logoLink",
3210
+ logoMobile: "Navigation_module_logoMobile",
3211
+ hamburger: "Navigation_module_hamburger",
3212
+ bottomRow: "Navigation_module_bottomRow",
3213
+ navTabs: "Navigation_module_navTabs",
3214
+ navTab: "Navigation_module_navTab",
3215
+ navTabTrigger: "Navigation_module_navTabTrigger",
3216
+ navTabTriggerOpen: "Navigation_module_navTabTriggerOpen",
3217
+ dropdownPanel: "Navigation_module_dropdownPanel",
3218
+ dropdownInner: "Navigation_module_dropdownInner",
3219
+ dropdownLinks: "Navigation_module_dropdownLinks",
3220
+ dropdownLinkItem: "Navigation_module_dropdownLinkItem",
3221
+ dropdownLink: "Navigation_module_dropdownLink",
3222
+ dropdownDivider: "Navigation_module_dropdownDivider",
3223
+ dropdownInfo: "Navigation_module_dropdownInfo",
3224
+ dropdownDescription: "Navigation_module_dropdownDescription",
3225
+ brandBars: "Navigation_module_brandBars",
3226
+ brandBar: "Navigation_module_brandBar",
3227
+ brandBarsUnfolded: "Navigation_module_brandBarsUnfolded",
3228
+ brandLogo: "Navigation_module_brandLogo",
3229
+ lenscrafters: "Navigation_module_lenscrafters",
3230
+ forEyes: "Navigation_module_forEyes",
3231
+ optical: "Navigation_module_optical",
3232
+ pearleVision: "Navigation_module_pearleVision",
3233
+ internalMobileMenu: "Navigation_module_internalMobileMenu",
3234
+ internalMobileMenuOpen: "Navigation_module_internalMobileMenuOpen",
3235
+ mobileHeader: "Navigation_module_mobileHeader",
3236
+ mobileClose: "Navigation_module_mobileClose",
3237
+ mobileBrandBars: "Navigation_module_mobileBrandBars",
3238
+ mobileItems: "Navigation_module_mobileItems",
3239
+ internalMobileItem: "Navigation_module_internalMobileItem",
3240
+ internalMobileItemLink: "Navigation_module_internalMobileItemLink",
3241
+ internalMobileItemTrigger: "Navigation_module_internalMobileItemTrigger",
3242
+ internalMobileItemChevron: "Navigation_module_internalMobileItemChevron",
3243
+ internalMobileItemChevronOpen: "Navigation_module_internalMobileItemChevronOpen",
3244
+ internalMobileSubItems: "Navigation_module_internalMobileSubItems",
3245
+ internalMobileSubItemsOpen: "Navigation_module_internalMobileSubItemsOpen",
3246
+ internalMobileSubItemsInner: "Navigation_module_internalMobileSubItemsInner",
3247
+ internalMobileSubLink: "Navigation_module_internalMobileSubLink",
3248
+ mobileFooter: "Navigation_module_mobileFooter"
3073
3249
  };
3074
3250
  var NavigationLogo = ({
3075
3251
  mainLogo,
@@ -3095,63 +3271,369 @@ var NavigationCtas = ({
3095
3271
  (rightButton == null ? void 0 : rightButton.label) && /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "primary", href: rightButton.url, isExternal: rightButton.isExternal, children: rightButton.label })
3096
3272
  ] });
3097
3273
  };
3274
+ var BRANDS = [
3275
+ { key: "lenscrafters", className: Navigation_module_default.lenscrafters, label: "LensCrafters" },
3276
+ { key: "forEyes", className: Navigation_module_default.forEyes, label: "For Eyes" },
3277
+ { key: "optical", className: Navigation_module_default.optical, label: "Target Optical" },
3278
+ { key: "pearleVision", className: Navigation_module_default.pearleVision, label: "Pearle Vision" }
3279
+ ];
3280
+ var NavigationBrandBars = ({
3281
+ brandLogos,
3282
+ unfolded = false,
3283
+ className
3284
+ }) => {
3285
+ const hasLogos = !!brandLogos;
3286
+ const isUnfolded = hasLogos && unfolded;
3287
+ return /* @__PURE__ */ jsxRuntime.jsx(
3288
+ "div",
3289
+ {
3290
+ className: clsx47__default.default(Navigation_module_default.brandBars, isUnfolded && Navigation_module_default.brandBarsUnfolded, className),
3291
+ "aria-hidden": "true",
3292
+ children: BRANDS.map((brand) => {
3293
+ var _a;
3294
+ const logo = brandLogos == null ? void 0 : brandLogos[brand.key];
3295
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx47__default.default(Navigation_module_default.brandBar, brand.className), children: logo && /* @__PURE__ */ jsxRuntime.jsx("img", { className: Navigation_module_default.brandLogo, src: logo.src, alt: (_a = logo.alt) != null ? _a : brand.label }) }, brand.key);
3296
+ })
3297
+ }
3298
+ );
3299
+ };
3300
+ var NavigationDesktop = ({
3301
+ navItems,
3302
+ openIndex,
3303
+ onOpen,
3304
+ onScheduleClose,
3305
+ baseId,
3306
+ isTransparent = false
3307
+ }) => {
3308
+ if (!(navItems == null ? void 0 : navItems.length)) return null;
3309
+ const handleTriggerKeyDown = (e, index) => {
3310
+ var _a;
3311
+ if (e.key === "Escape") {
3312
+ onOpen(null);
3313
+ } else if ((e.key === "Enter" || e.key === " ") && openIndex !== index) {
3314
+ e.preventDefault();
3315
+ onOpen(index);
3316
+ } else if (e.key === "Tab" && !e.shiftKey && openIndex === index) {
3317
+ const firstLink = (_a = document.getElementById(`${baseId}-panel-${index}`)) == null ? void 0 : _a.querySelector("a, button");
3318
+ if (firstLink) {
3319
+ e.preventDefault();
3320
+ firstLink.focus();
3321
+ }
3322
+ }
3323
+ };
3324
+ return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: Navigation_module_default.navTabs, children: navItems.map((item, index) => {
3325
+ var _a, _b, _c, _d;
3326
+ const isOpen = openIndex === index;
3327
+ if (item.type === "link") {
3328
+ return /* @__PURE__ */ jsxRuntime.jsx("li", { className: Navigation_module_default.navTab, children: /* @__PURE__ */ jsxRuntime.jsx(
3329
+ "a",
3330
+ {
3331
+ href: (_a = item.cta) == null ? void 0 : _a.url,
3332
+ className: clsx47__default.default(Navigation_module_default.navTabLink, item.isActive && Navigation_module_default.navTabActive),
3333
+ "aria-current": item.isActive ? "page" : void 0,
3334
+ target: ((_b = item.cta) == null ? void 0 : _b.isExternal) ? "_blank" : void 0,
3335
+ rel: ((_c = item.cta) == null ? void 0 : _c.isExternal) ? "noopener noreferrer" : void 0,
3336
+ onMouseEnter: () => onOpen(null),
3337
+ onFocus: () => onOpen(null),
3338
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { children: (_d = item.cta) == null ? void 0 : _d.label })
3339
+ }
3340
+ ) }, index);
3341
+ }
3342
+ return /* @__PURE__ */ jsxRuntime.jsx("li", { className: Navigation_module_default.navTab, children: /* @__PURE__ */ jsxRuntime.jsxs(
3343
+ "button",
3344
+ {
3345
+ type: "button",
3346
+ id: `${baseId}-trigger-${index}`,
3347
+ className: clsx47__default.default(
3348
+ Navigation_module_default.navTabLink,
3349
+ Navigation_module_default.navTabTrigger,
3350
+ (item.isActive || isOpen) && Navigation_module_default.navTabActive,
3351
+ isOpen && Navigation_module_default.navTabTriggerOpen
3352
+ ),
3353
+ "aria-expanded": isOpen,
3354
+ "aria-haspopup": "true",
3355
+ "aria-controls": `${baseId}-panel-${index}`,
3356
+ onMouseEnter: () => onOpen(index),
3357
+ onMouseLeave: onScheduleClose,
3358
+ onFocus: () => onOpen(index),
3359
+ onClick: () => onOpen(isOpen ? null : index),
3360
+ onKeyDown: (e) => handleTriggerKeyDown(e, index),
3361
+ children: [
3362
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: item.title }),
3363
+ /* @__PURE__ */ jsxRuntime.jsx(
3364
+ Icon,
3365
+ {
3366
+ type: isTransparent ? "downChevronWhite" : "downChevronBlack",
3367
+ size: 24,
3368
+ "aria-hidden": "true"
3369
+ }
3370
+ )
3371
+ ]
3372
+ }
3373
+ ) }, index);
3374
+ }) });
3375
+ };
3376
+ var NavigationDropdown = ({
3377
+ item,
3378
+ panelId,
3379
+ baseId,
3380
+ activeIndex,
3381
+ onClose,
3382
+ onMouseEnter,
3383
+ onMouseLeave
3384
+ }) => {
3385
+ if (item.type !== "dropdown") return null;
3386
+ const { title, description, items } = item;
3387
+ const links = items.filter((sub) => sub.type === "link");
3388
+ const handleLinkKeyDown = (e, isFirst, isLast) => {
3389
+ if (e.key !== "Tab") return;
3390
+ const trigger = document.getElementById(`${baseId}-trigger-${activeIndex}`);
3391
+ if (e.shiftKey && isFirst) {
3392
+ e.preventDefault();
3393
+ trigger == null ? void 0 : trigger.focus();
3394
+ } else if (!e.shiftKey && isLast) {
3395
+ const nav = trigger == null ? void 0 : trigger.closest("nav");
3396
+ const panel = document.getElementById(panelId);
3397
+ const focusables = nav ? Array.from(
3398
+ nav.querySelectorAll(
3399
+ 'a[href], button:not([disabled]), input:not([disabled]), select, textarea, [tabindex]:not([tabindex="-1"])'
3400
+ )
3401
+ ).filter((el) => !(panel == null ? void 0 : panel.contains(el))) : [];
3402
+ const next = trigger ? focusables[focusables.indexOf(trigger) + 1] : void 0;
3403
+ onClose();
3404
+ if (next) {
3405
+ e.preventDefault();
3406
+ next.focus();
3407
+ }
3408
+ }
3409
+ };
3410
+ return /* @__PURE__ */ jsxRuntime.jsx(
3411
+ "div",
3412
+ {
3413
+ id: panelId,
3414
+ className: clsx47__default.default(Navigation_module_default.dropdownPanel, Navigation_module_default.dropdownPanelOpen),
3415
+ onMouseEnter,
3416
+ onMouseLeave,
3417
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Navigation_module_default.dropdownInner, children: [
3418
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { className: Navigation_module_default.dropdownLinks, children: links.map((sub, i) => {
3419
+ var _a, _b, _c, _d;
3420
+ return /* @__PURE__ */ jsxRuntime.jsx(
3421
+ "li",
3422
+ {
3423
+ className: clsx47__default.default(Navigation_module_default.dropdownLinkItem, {
3424
+ [Navigation_module_default.dropdownLinkSpacer]: sub.variant === "subMenuSpacer"
3425
+ }),
3426
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3427
+ "a",
3428
+ {
3429
+ href: (_a = sub.cta) == null ? void 0 : _a.url,
3430
+ className: Navigation_module_default.dropdownLink,
3431
+ target: ((_b = sub.cta) == null ? void 0 : _b.isExternal) ? "_blank" : void 0,
3432
+ rel: ((_c = sub.cta) == null ? void 0 : _c.isExternal) ? "noopener noreferrer" : void 0,
3433
+ onKeyDown: (e) => handleLinkKeyDown(e, i === 0, i === links.length - 1),
3434
+ children: (_d = sub.cta) == null ? void 0 : _d.label
3435
+ }
3436
+ )
3437
+ },
3438
+ i
3439
+ );
3440
+ }) }),
3441
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: Navigation_module_default.dropdownDivider, "aria-hidden": "true" }),
3442
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Navigation_module_default.dropdownInfo, children: [
3443
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: Navigation_module_default.dropdownTitle, children: title }),
3444
+ description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: Navigation_module_default.dropdownDescription, children: description })
3445
+ ] })
3446
+ ] })
3447
+ }
3448
+ );
3449
+ };
3098
3450
  var NavigationMobile = ({
3099
3451
  id,
3100
- navigationItems,
3452
+ navItems,
3101
3453
  mainLogo,
3454
+ logoAlt = "EssilorLuxottica Eye Care",
3102
3455
  homeCta,
3103
- loginCta,
3104
- rightButton,
3456
+ user,
3457
+ searchPlaceholder,
3458
+ searchCta,
3459
+ onSearch,
3105
3460
  isOpen,
3106
- onClose
3461
+ onClose,
3462
+ isExternal = false,
3463
+ loginCta,
3464
+ rightButton
3107
3465
  }) => {
3108
- var _a;
3109
- const [expanded, setExpanded] = React69.useState([]);
3110
- const baseId = React69.useId();
3466
+ const [expanded, setExpanded] = React70.useState([]);
3467
+ const baseId = React70.useId();
3111
3468
  const toggleExpanded = (index) => {
3112
3469
  setExpanded((prev) => prev.includes(index) ? prev.filter((i) => i !== index) : [...prev, index]);
3113
3470
  };
3471
+ const expandItem = (index) => {
3472
+ setExpanded((prev) => prev.includes(index) ? prev : [...prev, index]);
3473
+ };
3474
+ const collapseItem = (index) => {
3475
+ setExpanded((prev) => prev.filter((i) => i !== index));
3476
+ };
3477
+ const hoverFocusProps = (index) => ({
3478
+ onMouseEnter: () => expandItem(index),
3479
+ onMouseLeave: () => collapseItem(index),
3480
+ onFocus: () => expandItem(index),
3481
+ onBlur: (e) => {
3482
+ if (!e.currentTarget.contains(e.relatedTarget)) collapseItem(index);
3483
+ }
3484
+ });
3485
+ const logo = mainLogo ? /* @__PURE__ */ jsxRuntime.jsx(Picture, { className: Navigation_module_default.logoMobile, src: mainLogo, alt: logoAlt }) : null;
3486
+ if (isExternal) {
3487
+ return /* @__PURE__ */ jsxRuntime.jsxs(
3488
+ "div",
3489
+ {
3490
+ id,
3491
+ className: clsx47__default.default(Navigation_module_default.mobileMenu, isOpen && Navigation_module_default.mobileMenuOpen),
3492
+ role: "dialog",
3493
+ "aria-modal": "true",
3494
+ "aria-label": "Navigation menu",
3495
+ "aria-hidden": !isOpen,
3496
+ children: [
3497
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Navigation_module_default.mobileMenuHeader, children: [
3498
+ /* @__PURE__ */ jsxRuntime.jsx(
3499
+ NavigationLogo,
3500
+ {
3501
+ mainLogo,
3502
+ homeCta,
3503
+ className: Navigation_module_default.mainLogoMobile,
3504
+ onClick: onClose
3505
+ }
3506
+ ),
3507
+ /* @__PURE__ */ jsxRuntime.jsx(
3508
+ Button,
3509
+ {
3510
+ type: "button",
3511
+ variant: "nofill",
3512
+ className: Navigation_module_default.hamburgerButton,
3513
+ onClick: onClose,
3514
+ "aria-label": "Close navigation menu",
3515
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "xBlack", size: 24, "aria-hidden": "true" })
3516
+ }
3517
+ )
3518
+ ] }),
3519
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { className: Navigation_module_default.mobileMenuItems, children: navItems == null ? void 0 : navItems.map((item, index) => {
3520
+ var _a, _b;
3521
+ const subMenuId = `${baseId}-submenu-${index}`;
3522
+ const isExpanded = expanded.includes(index);
3523
+ return item.type === "dropdown" ? /* @__PURE__ */ jsxRuntime.jsxs("li", __spreadProps(__spreadValues({ className: Navigation_module_default.mobileItem }, hoverFocusProps(index)), { children: [
3524
+ /* @__PURE__ */ jsxRuntime.jsxs(
3525
+ "button",
3526
+ {
3527
+ type: "button",
3528
+ className: Navigation_module_default.mobileItemTrigger,
3529
+ onClick: () => toggleExpanded(index),
3530
+ "aria-expanded": isExpanded,
3531
+ "aria-controls": subMenuId,
3532
+ children: [
3533
+ item.title,
3534
+ /* @__PURE__ */ jsxRuntime.jsx(
3535
+ "span",
3536
+ {
3537
+ className: clsx47__default.default(
3538
+ Navigation_module_default.mobileItemChevron,
3539
+ isExpanded && Navigation_module_default.mobileItemChevronOpen
3540
+ ),
3541
+ "aria-hidden": "true",
3542
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "downChevronBlack", size: 24 })
3543
+ }
3544
+ )
3545
+ ]
3546
+ }
3547
+ ),
3548
+ /* @__PURE__ */ jsxRuntime.jsx(
3549
+ "div",
3550
+ {
3551
+ id: subMenuId,
3552
+ className: clsx47__default.default(Navigation_module_default.mobileSubItems, isExpanded && Navigation_module_default.mobileSubItemsOpen),
3553
+ children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: Navigation_module_default.mobileSubItemsInner, children: item.items.map(
3554
+ (subItem, i) => {
3555
+ var _a2, _b2;
3556
+ return subItem.type === "link" ? /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
3557
+ "a",
3558
+ {
3559
+ href: (_a2 = subItem.cta) == null ? void 0 : _a2.url,
3560
+ className: Navigation_module_default.mobileSubLink,
3561
+ onClick: onClose,
3562
+ children: (_b2 = subItem.cta) == null ? void 0 : _b2.label
3563
+ }
3564
+ ) }, i) : null;
3565
+ }
3566
+ ) })
3567
+ }
3568
+ )
3569
+ ] }), index) : /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.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);
3570
+ }) }),
3571
+ /* @__PURE__ */ jsxRuntime.jsx(
3572
+ NavigationCtas,
3573
+ {
3574
+ className: Navigation_module_default.mobileMenuCtas,
3575
+ loginCta,
3576
+ rightButton,
3577
+ loginVariant: "nofillblack"
3578
+ }
3579
+ )
3580
+ ]
3581
+ }
3582
+ );
3583
+ }
3114
3584
  return /* @__PURE__ */ jsxRuntime.jsxs(
3115
3585
  "div",
3116
3586
  {
3117
3587
  id,
3118
- className: clsx43__default.default(Navigation_module_default.mobileMenu, isOpen && Navigation_module_default.mobileMenuOpen),
3588
+ className: clsx47__default.default(Navigation_module_default.internalMobileMenu, isOpen && Navigation_module_default.internalMobileMenuOpen),
3119
3589
  role: "dialog",
3120
3590
  "aria-modal": "true",
3121
3591
  "aria-label": "Navigation menu",
3122
3592
  "aria-hidden": !isOpen,
3123
3593
  children: [
3124
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Navigation_module_default.mobileMenuHeader, children: [
3594
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Navigation_module_default.mobileHeader, children: [
3595
+ homeCta && logo ? /* @__PURE__ */ jsxRuntime.jsx("a", { href: homeCta, className: Navigation_module_default.logoLink, "aria-label": logoAlt, onClick: onClose, children: logo }) : logo,
3125
3596
  /* @__PURE__ */ jsxRuntime.jsx(
3126
- NavigationLogo,
3127
- {
3128
- mainLogo,
3129
- homeCta,
3130
- className: Navigation_module_default.mainLogoMobile,
3131
- onClick: onClose
3132
- }
3133
- ),
3134
- /* @__PURE__ */ jsxRuntime.jsx(
3135
- "button",
3597
+ Button,
3136
3598
  {
3599
+ variant: "ghost",
3137
3600
  type: "button",
3138
- className: Navigation_module_default.hamburgerButton,
3601
+ className: Navigation_module_default.mobileClose,
3139
3602
  onClick: onClose,
3140
3603
  "aria-label": "Close navigation menu",
3141
3604
  children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "xBlack", size: 24, "aria-hidden": "true" })
3142
3605
  }
3143
3606
  )
3144
3607
  ] }),
3145
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: Navigation_module_default.mobileMenuItems, children: (_a = navigationItems == null ? void 0 : navigationItems.items) == null ? void 0 : _a.map((item, index) => {
3146
- var _a2, _b;
3608
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Navigation_module_default.mobileBrandBars, "aria-hidden": "true", children: [
3609
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx47__default.default(Navigation_module_default.brandBar, Navigation_module_default.lenscrafters) }),
3610
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx47__default.default(Navigation_module_default.brandBar, Navigation_module_default.forEyes) }),
3611
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx47__default.default(Navigation_module_default.brandBar, Navigation_module_default.optical) }),
3612
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx47__default.default(Navigation_module_default.brandBar, Navigation_module_default.pearleVision) })
3613
+ ] }),
3614
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { className: Navigation_module_default.mobileItems, children: navItems == null ? void 0 : navItems.map((item, index) => {
3615
+ var _a, _b, _c, _d;
3147
3616
  const subMenuId = `${baseId}-submenu-${index}`;
3148
3617
  const isExpanded = expanded.includes(index);
3149
- return item.type === "dropdown" ? /* @__PURE__ */ jsxRuntime.jsxs("li", { className: Navigation_module_default.mobileItem, children: [
3618
+ if (item.type === "link") {
3619
+ return /* @__PURE__ */ jsxRuntime.jsx("li", { className: Navigation_module_default.internalMobileItem, children: /* @__PURE__ */ jsxRuntime.jsx(
3620
+ "a",
3621
+ {
3622
+ href: (_a = item.cta) == null ? void 0 : _a.url,
3623
+ className: Navigation_module_default.internalMobileItemLink,
3624
+ target: ((_b = item.cta) == null ? void 0 : _b.isExternal) ? "_blank" : void 0,
3625
+ rel: ((_c = item.cta) == null ? void 0 : _c.isExternal) ? "noopener noreferrer" : void 0,
3626
+ onClick: onClose,
3627
+ children: (_d = item.cta) == null ? void 0 : _d.label
3628
+ }
3629
+ ) }, index);
3630
+ }
3631
+ return /* @__PURE__ */ jsxRuntime.jsxs("li", __spreadProps(__spreadValues({ className: Navigation_module_default.internalMobileItem }, hoverFocusProps(index)), { children: [
3150
3632
  /* @__PURE__ */ jsxRuntime.jsxs(
3151
3633
  "button",
3152
3634
  {
3153
3635
  type: "button",
3154
- className: Navigation_module_default.mobileItemTrigger,
3636
+ className: Navigation_module_default.internalMobileItemTrigger,
3155
3637
  onClick: () => toggleExpanded(index),
3156
3638
  "aria-expanded": isExpanded,
3157
3639
  "aria-controls": subMenuId,
@@ -3160,9 +3642,9 @@ var NavigationMobile = ({
3160
3642
  /* @__PURE__ */ jsxRuntime.jsx(
3161
3643
  "span",
3162
3644
  {
3163
- className: clsx43__default.default(
3164
- Navigation_module_default.mobileItemChevron,
3165
- isExpanded && Navigation_module_default.mobileItemChevronOpen
3645
+ className: clsx47__default.default(
3646
+ Navigation_module_default.internalMobileItemChevron,
3647
+ isExpanded && Navigation_module_default.internalMobileItemChevronOpen
3166
3648
  ),
3167
3649
  "aria-hidden": "true",
3168
3650
  children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "downChevronBlack", size: 24 })
@@ -3175,129 +3657,273 @@ var NavigationMobile = ({
3175
3657
  "div",
3176
3658
  {
3177
3659
  id: subMenuId,
3178
- className: clsx43__default.default(Navigation_module_default.mobileSubItems, isExpanded && Navigation_module_default.mobileSubItemsOpen),
3179
- children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: Navigation_module_default.mobileSubItemsInner, children: item.items.map(
3180
- (subItem, i) => {
3181
- var _a3, _b2;
3182
- return subItem.type === "link" ? /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
3660
+ className: clsx47__default.default(
3661
+ Navigation_module_default.internalMobileSubItems,
3662
+ isExpanded && Navigation_module_default.internalMobileSubItemsOpen
3663
+ ),
3664
+ children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: Navigation_module_default.internalMobileSubItemsInner, children: item.items.map(
3665
+ (sub, i) => {
3666
+ var _a2, _b2, _c2, _d2;
3667
+ return sub.type === "link" ? /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
3183
3668
  "a",
3184
3669
  {
3185
- href: (_a3 = subItem.cta) == null ? void 0 : _a3.url,
3186
- className: Navigation_module_default.mobileSubLink,
3670
+ href: (_a2 = sub.cta) == null ? void 0 : _a2.url,
3671
+ className: Navigation_module_default.internalMobileSubLink,
3672
+ target: ((_b2 = sub.cta) == null ? void 0 : _b2.isExternal) ? "_blank" : void 0,
3673
+ rel: ((_c2 = sub.cta) == null ? void 0 : _c2.isExternal) ? "noopener noreferrer" : void 0,
3187
3674
  onClick: onClose,
3188
- children: (_b2 = subItem.cta) == null ? void 0 : _b2.label
3675
+ children: (_d2 = sub.cta) == null ? void 0 : _d2.label
3189
3676
  }
3190
3677
  ) }, i) : null;
3191
3678
  }
3192
3679
  ) })
3193
3680
  }
3194
3681
  )
3195
- ] }, index) : /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.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);
3682
+ ] }), index);
3196
3683
  }) }),
3197
- /* @__PURE__ */ jsxRuntime.jsx(
3198
- NavigationCtas,
3199
- {
3200
- className: Navigation_module_default.mobileMenuCtas,
3201
- loginCta,
3202
- rightButton,
3203
- loginVariant: "nofillblack"
3204
- }
3205
- )
3684
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Navigation_module_default.mobileFooter, children: [
3685
+ /* @__PURE__ */ jsxRuntime.jsx(
3686
+ Search,
3687
+ {
3688
+ variant: "pill",
3689
+ placeholder: searchPlaceholder,
3690
+ searchCta,
3691
+ onSearch
3692
+ }
3693
+ ),
3694
+ user && /* @__PURE__ */ jsxRuntime.jsx(UserMenu, { user, dropUp: true, fullWidth: true })
3695
+ ] })
3206
3696
  ]
3207
3697
  }
3208
3698
  );
3209
3699
  };
3700
+ var FOCUSABLE_SELECTOR = 'a[href], button:not([disabled]), input:not([disabled]), [tabindex]:not([tabindex="-1"])';
3701
+ var getFocusable = (root) => Array.from(root.querySelectorAll(FOCUSABLE_SELECTOR)).filter(
3702
+ (el) => el.tabIndex !== -1 && el.offsetParent !== null
3703
+ );
3210
3704
  var Navigation2 = (props) => {
3211
- const { className, variant, homeCta, loginCta, mainLogo, rightButton, navigationItems } = props;
3212
- const [isHovered, setIsHovered] = React69.useState(false);
3213
- const [hasOpenDropdown, setHasOpenDropdown] = React69.useState(false);
3214
- const [isMobileMenuOpen, setIsMobileMenuOpen] = React69.useState(false);
3705
+ var _a;
3706
+ const {
3707
+ className,
3708
+ variant,
3709
+ transparent,
3710
+ mainLogo,
3711
+ logoAlt = "EssilorLuxottica Eye Care",
3712
+ homeCta,
3713
+ loginCta,
3714
+ rightButton,
3715
+ navigationItems,
3716
+ user,
3717
+ searchPlaceholder = "Search resources",
3718
+ searchCta,
3719
+ onSearch,
3720
+ brandLogos
3721
+ } = props;
3722
+ const isExternal = variant !== "internal";
3723
+ const [isHovered, setIsHovered] = React70.useState(false);
3724
+ const [openIndex, setOpenIndex] = React70.useState(null);
3725
+ const [isMobileMenuOpen, setIsMobileMenuOpen] = React70.useState(false);
3726
+ const navRef = React70.useRef(null);
3727
+ const closeTimer = React70.useRef(null);
3215
3728
  const isAtTop = useIsAtTop();
3216
3729
  const { is } = useViewPort_default();
3217
- const mobileMenuId = React69.useId();
3730
+ const mobileMenuId = React70.useId();
3731
+ const baseId = React70.useId();
3218
3732
  const isTabletBelow = is("tablet", "below");
3219
- const isTransparent = variant === "transparent" && isAtTop && !isHovered && !hasOpenDropdown;
3220
- React69.useEffect(() => {
3733
+ const dropdownOpen = openIndex !== null && !isTabletBelow;
3734
+ const isTransparent = !!transparent && isAtTop && !isHovered && !dropdownOpen;
3735
+ const openItem = openIndex !== null ? (_a = navigationItems == null ? void 0 : navigationItems.items) == null ? void 0 : _a[openIndex] : void 0;
3736
+ const showLogoUnfolded = !!brandLogos && isAtTop && !dropdownOpen;
3737
+ const openDropdown = (index) => {
3738
+ if (closeTimer.current) clearTimeout(closeTimer.current);
3739
+ setOpenIndex(index);
3740
+ };
3741
+ const scheduleClose = () => {
3742
+ if (closeTimer.current) clearTimeout(closeTimer.current);
3743
+ closeTimer.current = setTimeout(() => setOpenIndex(null), 120);
3744
+ };
3745
+ const handleNavKeyDown = (e) => {
3746
+ if (e.key !== "Tab" || openIndex === null || !navRef.current) return;
3747
+ const nav = navRef.current;
3748
+ const panelId = `${baseId}-panel-${openIndex}`;
3749
+ const panel = nav.querySelector(`#${CSS.escape(panelId)}`);
3750
+ const trigger = nav.querySelector(`[aria-controls="${panelId}"]`);
3751
+ if (!panel || !trigger) return;
3752
+ const panelItems = getFocusable(panel);
3753
+ if (!panelItems.length) return;
3754
+ const first = panelItems[0];
3755
+ const last = panelItems[panelItems.length - 1];
3756
+ const active = document.activeElement;
3757
+ if (!e.shiftKey && active === trigger) {
3758
+ e.preventDefault();
3759
+ first.focus();
3760
+ return;
3761
+ }
3762
+ if (e.shiftKey && active === first) {
3763
+ e.preventDefault();
3764
+ trigger.focus();
3765
+ return;
3766
+ }
3767
+ if (!e.shiftKey && active === last) {
3768
+ const navItems = getFocusable(nav).filter((el) => !panel.contains(el));
3769
+ const idx = navItems.indexOf(trigger);
3770
+ const next = idx !== -1 ? navItems[idx + 1] : void 0;
3771
+ if (next) {
3772
+ e.preventDefault();
3773
+ next.focus();
3774
+ setOpenIndex(null);
3775
+ }
3776
+ }
3777
+ };
3778
+ React70.useEffect(() => {
3221
3779
  document.body.style.overflow = isMobileMenuOpen ? "hidden" : "";
3222
3780
  return () => {
3223
3781
  document.body.style.overflow = "";
3224
3782
  };
3225
3783
  }, [isMobileMenuOpen]);
3784
+ React70.useEffect(() => {
3785
+ if (!dropdownOpen) return;
3786
+ const handleKey = (e) => {
3787
+ if (e.key === "Escape") setOpenIndex(null);
3788
+ };
3789
+ const handleOutside = (e) => {
3790
+ if (navRef.current && !navRef.current.contains(e.target)) {
3791
+ setOpenIndex(null);
3792
+ }
3793
+ };
3794
+ document.addEventListener("keydown", handleKey);
3795
+ document.addEventListener("pointerdown", handleOutside);
3796
+ document.addEventListener("focusin", handleOutside);
3797
+ return () => {
3798
+ document.removeEventListener("keydown", handleKey);
3799
+ document.removeEventListener("pointerdown", handleOutside);
3800
+ document.removeEventListener("focusin", handleOutside);
3801
+ };
3802
+ }, [dropdownOpen]);
3803
+ const logo = mainLogo ? /* @__PURE__ */ jsxRuntime.jsx(
3804
+ Picture,
3805
+ {
3806
+ className: clsx47__default.default(Navigation_module_default.logo, isTabletBelow && Navigation_module_default.logoMobile),
3807
+ src: mainLogo,
3808
+ alt: logoAlt
3809
+ }
3810
+ ) : null;
3226
3811
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3227
- /* @__PURE__ */ jsxRuntime.jsx(
3228
- "div",
3812
+ /* @__PURE__ */ jsxRuntime.jsxs(
3813
+ "nav",
3229
3814
  {
3230
- className: clsx43__default.default(
3231
- Navigation_module_default.navigationWrapper,
3232
- variant === "transparent" && Navigation_module_default.variantTransparent,
3233
- isTransparent && Navigation_module_default.transparent,
3234
- hasOpenDropdown && !isTabletBelow && Navigation_module_default.dropdownOpen
3815
+ ref: navRef,
3816
+ className: clsx47__default.default(
3817
+ Navigation_module_default.Navigation,
3818
+ dropdownOpen && Navigation_module_default.dropdownOpen,
3819
+ // External-only transparent / hover treatment.
3820
+ isExternal && transparent && Navigation_module_default.variantTransparent,
3821
+ isExternal && isTransparent && Navigation_module_default.transparent,
3822
+ className
3235
3823
  ),
3236
- onMouseEnter: () => setIsHovered(true),
3237
- onMouseLeave: () => setIsHovered(false),
3238
- children: /* @__PURE__ */ jsxRuntime.jsxs("nav", { className: clsx43__default.default(Navigation_module_default.navigation, className), "aria-label": "Main", children: [
3239
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Navigation_module_default.upperNav, children: [
3240
- /* @__PURE__ */ jsxRuntime.jsx(
3241
- NavigationLogo,
3242
- {
3243
- mainLogo,
3244
- homeCta,
3245
- className: clsx43__default.default(Navigation_module_default.mainLogo, isTabletBelow && Navigation_module_default.mainLogoMobile)
3246
- }
3247
- ),
3248
- isTabletBelow ? /* @__PURE__ */ jsxRuntime.jsx(
3249
- "button",
3250
- {
3251
- type: "button",
3252
- className: Navigation_module_default.hamburgerButton,
3253
- onClick: () => setIsMobileMenuOpen(true),
3254
- "aria-label": "Open navigation menu",
3255
- "aria-haspopup": "dialog",
3256
- "aria-expanded": isMobileMenuOpen,
3257
- "aria-controls": mobileMenuId,
3258
- children: /* @__PURE__ */ jsxRuntime.jsx(
3259
- Icon,
3260
- {
3261
- type: isTransparent ? "menuWhite" : "menuBlack",
3262
- size: 24,
3263
- "aria-hidden": "true"
3264
- }
3265
- )
3266
- }
3267
- ) : /* @__PURE__ */ jsxRuntime.jsx(
3268
- NavigationCtas,
3269
- {
3270
- className: Navigation_module_default.upperRight,
3271
- loginCta,
3272
- rightButton,
3273
- loginVariant: isTransparent ? "ghost" : "nofillblack"
3274
- }
3275
- )
3276
- ] }),
3277
- isTabletBelow ? /* @__PURE__ */ jsxRuntime.jsx(
3278
- NavigationMobile,
3279
- {
3280
- id: mobileMenuId,
3281
- navigationItems,
3282
- mainLogo,
3283
- homeCta,
3284
- loginCta,
3285
- rightButton,
3286
- isOpen: isMobileMenuOpen,
3287
- onClose: () => setIsMobileMenuOpen(false)
3288
- }
3289
- ) : /* @__PURE__ */ jsxRuntime.jsx(
3290
- NavigationDesktop,
3824
+ "aria-label": "Main",
3825
+ onKeyDown: handleNavKeyDown,
3826
+ onMouseEnter: isExternal ? () => setIsHovered(true) : void 0,
3827
+ onMouseLeave: isExternal ? () => setIsHovered(false) : scheduleClose,
3828
+ children: [
3829
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: Navigation_module_default.mainBar, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Navigation_module_default.inner, children: [
3830
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Navigation_module_default.topRow, children: [
3831
+ homeCta && logo ? /* @__PURE__ */ jsxRuntime.jsx(
3832
+ NavigationLogo,
3833
+ {
3834
+ mainLogo,
3835
+ homeCta,
3836
+ className: clsx47__default.default(Navigation_module_default.logo, isTabletBelow && Navigation_module_default.logoMobile)
3837
+ }
3838
+ ) : logo,
3839
+ isTabletBelow ? /* @__PURE__ */ jsxRuntime.jsx(
3840
+ Button,
3841
+ {
3842
+ variant: "nofill",
3843
+ type: "button",
3844
+ className: isExternal ? Navigation_module_default.hamburgerButton : Navigation_module_default.hamburger,
3845
+ onClick: () => setIsMobileMenuOpen(true),
3846
+ "aria-label": "Open navigation menu",
3847
+ "aria-haspopup": "dialog",
3848
+ "aria-expanded": isMobileMenuOpen,
3849
+ "aria-controls": mobileMenuId,
3850
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3851
+ Icon,
3852
+ {
3853
+ type: isExternal && isTransparent ? "menuWhite" : "menuBlack",
3854
+ size: 24,
3855
+ "aria-hidden": "true"
3856
+ }
3857
+ )
3858
+ }
3859
+ ) : isExternal ? /* @__PURE__ */ jsxRuntime.jsx(
3860
+ NavigationCtas,
3861
+ {
3862
+ className: Navigation_module_default.upperRight,
3863
+ loginCta,
3864
+ rightButton,
3865
+ loginVariant: isTransparent ? "ghost" : "nofillblack"
3866
+ }
3867
+ ) : user && /* @__PURE__ */ jsxRuntime.jsx(UserMenu, { user })
3868
+ ] }),
3869
+ !isTabletBelow && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Navigation_module_default.bottomRow, children: [
3870
+ /* @__PURE__ */ jsxRuntime.jsx(
3871
+ NavigationDesktop,
3872
+ {
3873
+ navItems: navigationItems == null ? void 0 : navigationItems.items,
3874
+ openIndex,
3875
+ onOpen: openDropdown,
3876
+ onScheduleClose: scheduleClose,
3877
+ baseId,
3878
+ isTransparent
3879
+ }
3880
+ ),
3881
+ !isExternal && /* @__PURE__ */ jsxRuntime.jsx(
3882
+ Search,
3883
+ {
3884
+ placeholder: searchPlaceholder,
3885
+ searchCta,
3886
+ onSearch
3887
+ }
3888
+ )
3889
+ ] })
3890
+ ] }) }),
3891
+ !isExternal && /* @__PURE__ */ jsxRuntime.jsx(NavigationBrandBars, { brandLogos, unfolded: showLogoUnfolded }),
3892
+ dropdownOpen && (openItem == null ? void 0 : openItem.type) === "dropdown" && /* @__PURE__ */ jsxRuntime.jsx(
3893
+ NavigationDropdown,
3291
3894
  {
3292
- navigationItems,
3293
- isTransparent,
3294
- onDropdownOpenChange: setHasOpenDropdown
3895
+ item: openItem,
3896
+ panelId: `${baseId}-panel-${openIndex}`,
3897
+ baseId,
3898
+ activeIndex: openIndex,
3899
+ onClose: () => setOpenIndex(null),
3900
+ onMouseEnter: () => openDropdown(openIndex),
3901
+ onMouseLeave: scheduleClose
3295
3902
  }
3296
3903
  )
3297
- ] })
3904
+ ]
3298
3905
  }
3299
3906
  ),
3300
- hasOpenDropdown && !isTabletBelow && /* @__PURE__ */ jsxRuntime.jsx("div", { className: Navigation_module_default.overlay, "aria-hidden": "true" })
3907
+ dropdownOpen && /* @__PURE__ */ jsxRuntime.jsx("div", { className: Navigation_module_default.overlay, "aria-hidden": "true" }),
3908
+ isTabletBelow && /* @__PURE__ */ jsxRuntime.jsx(
3909
+ NavigationMobile,
3910
+ {
3911
+ id: mobileMenuId,
3912
+ navItems: navigationItems == null ? void 0 : navigationItems.items,
3913
+ mainLogo,
3914
+ logoAlt,
3915
+ homeCta,
3916
+ user,
3917
+ searchPlaceholder,
3918
+ searchCta,
3919
+ onSearch,
3920
+ isOpen: isMobileMenuOpen,
3921
+ onClose: () => setIsMobileMenuOpen(false),
3922
+ isExternal,
3923
+ loginCta,
3924
+ rightButton
3925
+ }
3926
+ )
3301
3927
  ] });
3302
3928
  };
3303
3929
  var PracticePathCardsFooter = ({ children }) => {
@@ -3339,7 +3965,7 @@ var PracticePathCards = ({
3339
3965
  const titleNode = (_a = slots.title) != null ? _a : title;
3340
3966
  const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
3341
3967
  const footerNode = (_c = slots.footer) != null ? _c : footer;
3342
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default(PracticePathCards_module_default["practice-path-cards"], className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: PracticePathCards_module_default.container, children: [
3968
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(PracticePathCards_module_default["practice-path-cards"], className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: PracticePathCards_module_default.container, children: [
3343
3969
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: PracticePathCards_module_default.wrapper, children: [
3344
3970
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: PracticePathCards_module_default.content, children: [
3345
3971
  titleNode && /* @__PURE__ */ jsxRuntime.jsx("h2", { children: titleNode }),
@@ -3393,8 +4019,8 @@ var Teaser5050With3Text = ({
3393
4019
  title: Teaser5050With3TextTitle
3394
4020
  });
3395
4021
  const titleNode = (_a = slots.title) != null ? _a : title;
3396
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default(Teaser5050With3Text_module_default["teaser5050-3text"], Teaser5050With3Text_module_default[variant], className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: Teaser5050With3Text_module_default.container, children: [
3397
- titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default(Teaser5050With3Text_module_default.title, "h3"), children: titleNode }),
4022
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(Teaser5050With3Text_module_default["teaser5050-3text"], Teaser5050With3Text_module_default[variant], className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: Teaser5050With3Text_module_default.container, children: [
4023
+ titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(Teaser5050With3Text_module_default.title, "h3"), children: titleNode }),
3398
4024
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Teaser5050With3Text_module_default.content, children: [
3399
4025
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: Teaser5050With3Text_module_default.cards, children: cards == null ? void 0 : cards.map((card, key) => /* @__PURE__ */ jsxRuntime.jsx(InfoCard2, __spreadValues({}, card), key)) }),
3400
4026
  image && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: Teaser5050With3Text_module_default.image }, image))
@@ -3444,12 +4070,12 @@ var Teaser5050WithCta = ({
3444
4070
  return /* @__PURE__ */ jsxRuntime.jsx(
3445
4071
  "div",
3446
4072
  {
3447
- className: clsx43__default.default(Teaser5050WithCta_module_default.teaser5050, Teaser5050WithCta_module_default[variant], className),
4073
+ className: clsx47__default.default(Teaser5050WithCta_module_default.teaser5050, Teaser5050WithCta_module_default[variant], className),
3448
4074
  style: { backgroundColor: bgColor ? bgColor : "#ffffff" },
3449
4075
  children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: Teaser5050WithCta_module_default.container, children: [
3450
4076
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Teaser5050WithCta_module_default.wrapper, children: [
3451
4077
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Teaser5050WithCta_module_default.content, children: [
3452
- titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default(Teaser5050WithCta_module_default.title, "h3"), children: titleNode }),
4078
+ titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(Teaser5050WithCta_module_default.title, "h3"), children: titleNode }),
3453
4079
  subtitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "subheading", children: subtitleNode })
3454
4080
  ] }),
3455
4081
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: Teaser5050WithCta_module_default.ctaWrapper, children: ctas.map((cta, key) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -3501,7 +4127,7 @@ var Carousel = (_a) => {
3501
4127
  },
3502
4128
  role: "region",
3503
4129
  "aria-label": ariaLabel,
3504
- className: clsx43__default.default(Carousel_module_default.carousel, className),
4130
+ className: clsx47__default.default(Carousel_module_default.carousel, className),
3505
4131
  spaceBetween: 0,
3506
4132
  slidesPerView: "auto",
3507
4133
  modules: [modules.FreeMode, modules.A11y],
@@ -3511,7 +4137,7 @@ var Carousel = (_a) => {
3511
4137
  children: slides.map((slide, index) => /* @__PURE__ */ jsxRuntime.jsx(
3512
4138
  react$1.SwiperSlide,
3513
4139
  {
3514
- className: clsx43__default.default(Carousel_module_default["carousel-item"], props.slideClass),
4140
+ className: clsx47__default.default(Carousel_module_default["carousel-item"], props.slideClass),
3515
4141
  children: slide
3516
4142
  },
3517
4143
  index
@@ -3568,13 +4194,13 @@ var EventList = ({
3568
4194
  return /* @__PURE__ */ jsxRuntime.jsx(
3569
4195
  "div",
3570
4196
  {
3571
- className: clsx43__default.default("event-list-module", EventList_module_default["event-list-module"], className),
4197
+ className: clsx47__default.default("event-list-module", EventList_module_default["event-list-module"], className),
3572
4198
  style: {
3573
4199
  backgroundColor
3574
4200
  },
3575
- children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx43__default.default(EventList_module_default["event-list-container"]), children: [
4201
+ children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx47__default.default(EventList_module_default["event-list-container"]), children: [
3576
4202
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: EventList_module_default["event-list-header-container"], children: [
3577
- titleNode && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: clsx43__default.default(EventList_module_default["event-list-title"]), children: titleNode }),
4203
+ titleNode && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: clsx47__default.default(EventList_module_default["event-list-title"]), children: titleNode }),
3578
4204
  cta && cta.url && /* @__PURE__ */ jsxRuntime.jsx(
3579
4205
  Button,
3580
4206
  {
@@ -3592,7 +4218,7 @@ var EventList = ({
3592
4218
  Carousel,
3593
4219
  {
3594
4220
  "aria-label": "Upcoming events",
3595
- wrapperClass: clsx43__default.default(EventList_module_default["carousel-wrapper"], EventList_module_default[variant]),
4221
+ wrapperClass: clsx47__default.default(EventList_module_default["carousel-wrapper"], EventList_module_default[variant]),
3596
4222
  slideClass: EventList_module_default["carousel-list-item"],
3597
4223
  spaceBetween: 16,
3598
4224
  slides: items.map((item) => {
@@ -3600,7 +4226,7 @@ var EventList = ({
3600
4226
  return /* @__PURE__ */ jsxRuntime.jsx(
3601
4227
  UpcomingEventCard,
3602
4228
  __spreadValues({
3603
- className: clsx43__default.default(EventList_module_default["event-card"]),
4229
+ className: clsx47__default.default(EventList_module_default["event-card"]),
3604
4230
  direction: "vertical",
3605
4231
  showImage: false
3606
4232
  }, item),
@@ -3613,7 +4239,7 @@ var EventList = ({
3613
4239
  "ul",
3614
4240
  {
3615
4241
  "aria-label": "Upcoming events",
3616
- className: clsx43__default.default(
4242
+ className: clsx47__default.default(
3617
4243
  EventList_module_default["event-list-wrapper"],
3618
4244
  EventList_module_default["horizontal"],
3619
4245
  EventList_module_default[variant]
@@ -3623,11 +4249,11 @@ var EventList = ({
3623
4249
  return /* @__PURE__ */ jsxRuntime.jsx(
3624
4250
  "li",
3625
4251
  {
3626
- className: clsx43__default.default(EventList_module_default["card-list-item"]),
4252
+ className: clsx47__default.default(EventList_module_default["card-list-item"]),
3627
4253
  children: /* @__PURE__ */ jsxRuntime.jsx(
3628
4254
  UpcomingEventCard,
3629
4255
  __spreadProps(__spreadValues({}, item), {
3630
- className: clsx43__default.default(EventList_module_default["card-item"]),
4256
+ className: clsx47__default.default(EventList_module_default["card-item"]),
3631
4257
  showImage: false,
3632
4258
  direction: "vertical"
3633
4259
  })
@@ -3642,7 +4268,7 @@ var EventList = ({
3642
4268
  "ul",
3643
4269
  {
3644
4270
  "aria-label": "Upcoming events",
3645
- className: clsx43__default.default(EventList_module_default["event-list-wrapper"], EventList_module_default[listDirection]),
4271
+ className: clsx47__default.default(EventList_module_default["event-list-wrapper"], EventList_module_default[listDirection]),
3646
4272
  children: items == null ? void 0 : items.map((item, index) => {
3647
4273
  var _a2, _b, _c;
3648
4274
  return /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(UpcomingEventCard, __spreadProps(__spreadValues({}, item), { direction: cardDirection })) }, (_c = (_b = (_a2 = item.title) != null ? _a2 : item.date) != null ? _b : item.location) != null ? _c : index);
@@ -3650,8 +4276,8 @@ var EventList = ({
3650
4276
  }
3651
4277
  )
3652
4278
  ] }),
3653
- !isNotEmpty && emptyNode ? React69__default.default.cloneElement(emptyNode, {
3654
- className: clsx43__default.default("empty-search-result", EventList_module_default["empty-search-result"])
4279
+ !isNotEmpty && emptyNode ? React70__default.default.cloneElement(emptyNode, {
4280
+ className: clsx47__default.default("empty-search-result", EventList_module_default["empty-search-result"])
3655
4281
  }) : null
3656
4282
  ] })
3657
4283
  }
@@ -3695,9 +4321,9 @@ var TextEvent = (props) => {
3695
4321
  });
3696
4322
  const titleNode = (_a = slots.title) != null ? _a : title;
3697
4323
  const richTextNode = (_b = slots.richText) != null ? _b : richText;
3698
- return /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx43__default.default(TextEvent_module_default.textEvent, className), children: [
4324
+ return /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx47__default.default(TextEvent_module_default.textEvent, className), children: [
3699
4325
  /* @__PURE__ */ jsxRuntime.jsx(Text, { tag: "h2", className: TextEvent_module_default.title, children: titleNode }),
3700
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default(TextEvent_module_default.richText, TextEvent_module_default[variant != null ? variant : ""]), children: richTextNode })
4326
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(TextEvent_module_default.richText, TextEvent_module_default[variant != null ? variant : ""]), children: richTextNode })
3701
4327
  ] });
3702
4328
  };
3703
4329
 
@@ -3728,7 +4354,7 @@ var TextBody = (props) => {
3728
4354
  });
3729
4355
  const titleNode = (_a = slots.title) != null ? _a : title;
3730
4356
  const bodyNode = (_b = slots.body) != null ? _b : body;
3731
- return /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx43__default.default(TextBody_module_default.textBody, className), children: [
4357
+ return /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx47__default.default(TextBody_module_default.textBody, className), children: [
3732
4358
  titleNode && /* @__PURE__ */ jsxRuntime.jsx(Text, { tag: "h2", className: TextBody_module_default.title, children: titleNode }),
3733
4359
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: TextBody_module_default.body, children: bodyNode })
3734
4360
  ] });
@@ -3771,7 +4397,7 @@ var TextCenterCtaInBottom = ({
3771
4397
  });
3772
4398
  const titleNode = (_a = slots.title) != null ? _a : title;
3773
4399
  const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
3774
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default(TextCenterCtaInBottom_module_default.textCenterCta, className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: TextCenterCtaInBottom_module_default.container, children: [
4400
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(TextCenterCtaInBottom_module_default.textCenterCta, className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: TextCenterCtaInBottom_module_default.container, children: [
3775
4401
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: TextCenterCtaInBottom_module_default.content, children: [
3776
4402
  titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: TextCenterCtaInBottom_module_default.title, children: titleNode }),
3777
4403
  subtitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: TextCenterCtaInBottom_module_default.subtitle, children: subtitleNode })
@@ -3779,7 +4405,7 @@ var TextCenterCtaInBottom = ({
3779
4405
  !!(ctas == null ? void 0 : ctas.length) && /* @__PURE__ */ jsxRuntime.jsx(
3780
4406
  "div",
3781
4407
  {
3782
- className: clsx43__default.default(
4408
+ className: clsx47__default.default(
3783
4409
  TextCenterCtaInBottom_module_default.ctaWrapper,
3784
4410
  ctas.every((cta) => !cta.label && cta.logo) && TextCenterCtaInBottom_module_default.iconOnly
3785
4411
  ),
@@ -3833,17 +4459,17 @@ var ResourcesGridList = ({
3833
4459
  defaultSort = "latest"
3834
4460
  }) => {
3835
4461
  var _a;
3836
- const [view, setView] = React69.useState(defaultView);
3837
- const [isSidebarOpen, setIsSidebarOpen] = React69.useState(false);
3838
- const [filterValue, setFilterValue] = React69.useState(defaultFilter);
3839
- const [sortValue, setSortValue] = React69.useState(defaultSort);
3840
- const [searchQuery, setSearchQuery] = React69.useState("");
3841
- const [currentPage, setCurrentPage] = React69.useState(1);
3842
- const [selectedCategory, setSelectedCategory] = React69.useState(() => {
4462
+ const [view, setView] = React70.useState(defaultView);
4463
+ const [isSidebarOpen, setIsSidebarOpen] = React70.useState(false);
4464
+ const [filterValue, setFilterValue] = React70.useState(defaultFilter);
4465
+ const [sortValue, setSortValue] = React70.useState(defaultSort);
4466
+ const [searchQuery, setSearchQuery] = React70.useState("");
4467
+ const [currentPage, setCurrentPage] = React70.useState(1);
4468
+ const [selectedCategory, setSelectedCategory] = React70.useState(() => {
3843
4469
  const activeIndex = categories.findIndex((cat) => cat.active);
3844
4470
  return activeIndex === -1 ? 0 : activeIndex;
3845
4471
  });
3846
- const widgetRef = React69.useRef(null);
4472
+ const widgetRef = React70.useRef(null);
3847
4473
  const { is } = useViewPort_default();
3848
4474
  const isMobile = is("tablet", "below");
3849
4475
  const selectedValue = (_a = categories[selectedCategory]) == null ? void 0 : _a.value;
@@ -3891,7 +4517,7 @@ var ResourcesGridList = ({
3891
4517
  const safeCurrentPage = Math.min(currentPage, totalPages);
3892
4518
  const pageStart = (safeCurrentPage - 1) * ITEMS_PER_PAGE;
3893
4519
  const paginatedItems = displayedItems.slice(pageStart, pageStart + ITEMS_PER_PAGE);
3894
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: widgetRef, className: clsx43__default.default(ResourcesGridList_module_default.widget, className), children: [
4520
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: widgetRef, className: clsx47__default.default(ResourcesGridList_module_default.widget, className), children: [
3895
4521
  /* @__PURE__ */ jsxRuntime.jsx(
3896
4522
  FilterBar,
3897
4523
  {
@@ -3910,7 +4536,7 @@ var ResourcesGridList = ({
3910
4536
  isMobile && /* @__PURE__ */ jsxRuntime.jsxs(
3911
4537
  "div",
3912
4538
  {
3913
- className: clsx43__default.default(
4539
+ className: clsx47__default.default(
3914
4540
  ResourcesGridList_module_default.mobileSidebarOverlay,
3915
4541
  isSidebarOpen && ResourcesGridList_module_default.mobileSidebarOverlayOpen
3916
4542
  ),
@@ -3921,7 +4547,7 @@ var ResourcesGridList = ({
3921
4547
  return /* @__PURE__ */ jsxRuntime.jsxs(
3922
4548
  "li",
3923
4549
  {
3924
- className: clsx43__default.default(
4550
+ className: clsx47__default.default(
3925
4551
  ResourcesGridList_module_default.mobileSidebarItem,
3926
4552
  i === selectedCategory && ResourcesGridList_module_default.active
3927
4553
  ),
@@ -3966,7 +4592,7 @@ var ResourcesGridList = ({
3966
4592
  onSelect: handleSelectCategory
3967
4593
  }
3968
4594
  ),
3969
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default(ResourcesGridList_module_default.cardsArea, ResourcesGridList_module_default[view]), children: paginatedItems.map((item) => /* @__PURE__ */ jsxRuntime.jsx(ResourceCardItem, { item, view }, item.id)) })
4595
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(ResourcesGridList_module_default.cardsArea, ResourcesGridList_module_default[view]), children: paginatedItems.map((item) => /* @__PURE__ */ jsxRuntime.jsx(ResourceCardItem, { item, view }, item.id)) })
3970
4596
  ] }),
3971
4597
  totalPages > 1 && /* @__PURE__ */ jsxRuntime.jsx(
3972
4598
  Pagination,
@@ -3999,7 +4625,7 @@ var Grid = ({
3999
4625
  return /* @__PURE__ */ jsxRuntime.jsx(
4000
4626
  Component,
4001
4627
  {
4002
- className: clsx43__default.default("grid", Grid_module_default.grid, className),
4628
+ className: clsx47__default.default("grid", Grid_module_default.grid, className),
4003
4629
  role,
4004
4630
  "aria-label": ariaLabel,
4005
4631
  "aria-labelledby": ariaLabelledBy,
@@ -4024,7 +4650,7 @@ var GridItem = ({
4024
4650
  return /* @__PURE__ */ jsxRuntime.jsx(
4025
4651
  Component,
4026
4652
  {
4027
- className: clsx43__default.default("grid-item", Grid_module_default["grid-item"], className),
4653
+ className: clsx47__default.default("grid-item", Grid_module_default["grid-item"], className),
4028
4654
  role,
4029
4655
  "aria-label": ariaLabel,
4030
4656
  "aria-labelledby": ariaLabelledBy,
@@ -4072,13 +4698,13 @@ var BlogCardGrid = ({
4072
4698
  title: BlogCardGridTitle
4073
4699
  });
4074
4700
  const titleNode = (_a = slots.title) != null ? _a : title;
4075
- const content = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default("wrapper", BlogCardGrid_module_default["wrapper"]), children: [
4076
- title && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default("header-container", BlogCardGrid_module_default["header-container"]), children: [
4077
- titleNode && typeof titleNode === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Text, { tag: "h4", className: clsx43__default.default("title", BlogCardGrid_module_default["title"]), children: titleNode }) : titleNode,
4078
- cta && (cta == null ? void 0 : cta.url) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default("cta-wrapper", BlogCardGrid_module_default["cta-wrapper"]), children: /* @__PURE__ */ jsxRuntime.jsx(
4701
+ const content = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default("wrapper", BlogCardGrid_module_default["wrapper"]), children: [
4702
+ title && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default("header-container", BlogCardGrid_module_default["header-container"]), children: [
4703
+ titleNode && typeof titleNode === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Text, { tag: "h4", className: clsx47__default.default("title", BlogCardGrid_module_default["title"]), children: titleNode }) : titleNode,
4704
+ cta && (cta == null ? void 0 : cta.url) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default("cta-wrapper", BlogCardGrid_module_default["cta-wrapper"]), children: /* @__PURE__ */ jsxRuntime.jsx(
4079
4705
  Button,
4080
4706
  {
4081
- className: clsx43__default.default("cta", BlogCardGrid_module_default["cta"]),
4707
+ className: clsx47__default.default("cta", BlogCardGrid_module_default["cta"]),
4082
4708
  variant: "nofillblack",
4083
4709
  href: cta.url,
4084
4710
  isExternal: cta == null ? void 0 : cta.isExternal,
@@ -4104,11 +4730,11 @@ var BlogCardGrid = ({
4104
4730
  return /* @__PURE__ */ jsxRuntime.jsx(
4105
4731
  "div",
4106
4732
  {
4107
- className: clsx43__default.default("blog-card-grid", BlogCardGrid_module_default["blog-card-grid"], className),
4733
+ className: clsx47__default.default("blog-card-grid", BlogCardGrid_module_default["blog-card-grid"], className),
4108
4734
  style: {
4109
4735
  backgroundColor
4110
4736
  },
4111
- children: hasContainer ? /* @__PURE__ */ jsxRuntime.jsx(Container, { className: clsx43__default.default("container", BlogCardGrid_module_default["container"]), children: content }) : content
4737
+ children: hasContainer ? /* @__PURE__ */ jsxRuntime.jsx(Container, { className: clsx47__default.default("container", BlogCardGrid_module_default["container"]), children: content }) : content
4112
4738
  }
4113
4739
  );
4114
4740
  };
@@ -4156,13 +4782,13 @@ var FeaturedNewsHighlights = ({
4156
4782
  const sideCards = items.slice(1);
4157
4783
  const isVariantHome = variant === "home";
4158
4784
  const isBelowTablet = is("tablet", "below");
4159
- const content = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default("wrapper", FeaturedNewsHighlights_module_default["wrapper"]), children: [
4160
- title && cta && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default("header-container", FeaturedNewsHighlights_module_default["header-container"]), children: [
4785
+ const content = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default("wrapper", FeaturedNewsHighlights_module_default["wrapper"]), children: [
4786
+ title && cta && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default("header-container", FeaturedNewsHighlights_module_default["header-container"]), children: [
4161
4787
  titleNode && typeof titleNode === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Text, { tag: "h2", children: titleNode }) : titleNode,
4162
- cta && (cta == null ? void 0 : cta.url) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default("cta-wrapper", FeaturedNewsHighlights_module_default["cta-wrapper"]), children: /* @__PURE__ */ jsxRuntime.jsx(
4788
+ cta && (cta == null ? void 0 : cta.url) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default("cta-wrapper", FeaturedNewsHighlights_module_default["cta-wrapper"]), children: /* @__PURE__ */ jsxRuntime.jsx(
4163
4789
  Button,
4164
4790
  {
4165
- className: clsx43__default.default("cta", FeaturedNewsHighlights_module_default["cta"]),
4791
+ className: clsx47__default.default("cta", FeaturedNewsHighlights_module_default["cta"]),
4166
4792
  variant: "nofillblack",
4167
4793
  href: cta.url,
4168
4794
  isExternal: cta == null ? void 0 : cta.isExternal,
@@ -4174,9 +4800,9 @@ var FeaturedNewsHighlights = ({
4174
4800
  isVariantHome && isBelowTablet && /* @__PURE__ */ jsxRuntime.jsx(
4175
4801
  Carousel,
4176
4802
  {
4177
- className: clsx43__default.default("carousel", FeaturedNewsHighlights_module_default["carousel"]),
4803
+ className: clsx47__default.default("carousel", FeaturedNewsHighlights_module_default["carousel"]),
4178
4804
  "aria-label": "featured news",
4179
- wrapperClass: clsx43__default.default(FeaturedNewsHighlights_module_default["carousel-wrapper"]),
4805
+ wrapperClass: clsx47__default.default(FeaturedNewsHighlights_module_default["carousel-wrapper"]),
4180
4806
  slideClass: FeaturedNewsHighlights_module_default["carousel-list-item"],
4181
4807
  spaceBetween: 16,
4182
4808
  slides: items.map((item, index) => {
@@ -4185,27 +4811,27 @@ var FeaturedNewsHighlights = ({
4185
4811
  NewsCard,
4186
4812
  __spreadProps(__spreadValues({}, item), {
4187
4813
  direction: "vertical",
4188
- className: clsx43__default.default("carousel-news-card", FeaturedNewsHighlights_module_default["carousel-news-card"])
4814
+ className: clsx47__default.default("carousel-news-card", FeaturedNewsHighlights_module_default["carousel-news-card"])
4189
4815
  }),
4190
4816
  (_a2 = item == null ? void 0 : item.title) != null ? _a2 : index
4191
4817
  );
4192
4818
  })
4193
4819
  }
4194
4820
  ),
4195
- (!isVariantHome || isVariantHome && !isBelowTablet) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default("content-wrapper", FeaturedNewsHighlights_module_default["content-wrapper"]), children: [
4821
+ (!isVariantHome || isVariantHome && !isBelowTablet) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default("content-wrapper", FeaturedNewsHighlights_module_default["content-wrapper"]), children: [
4196
4822
  featuredCard && /* @__PURE__ */ jsxRuntime.jsx(
4197
4823
  NewsCard,
4198
4824
  __spreadProps(__spreadValues({}, featuredCard), {
4199
- className: clsx43__default.default("featured-card", FeaturedNewsHighlights_module_default["featured-card"]),
4825
+ className: clsx47__default.default("featured-card", FeaturedNewsHighlights_module_default["featured-card"]),
4200
4826
  renderLink
4201
4827
  })
4202
4828
  ),
4203
- sideCards && sideCards.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default("side-content", FeaturedNewsHighlights_module_default["side-content"]), children: sideCards.map((card, index) => {
4829
+ sideCards && sideCards.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default("side-content", FeaturedNewsHighlights_module_default["side-content"]), children: sideCards.map((card, index) => {
4204
4830
  var _a2;
4205
4831
  return /* @__PURE__ */ jsxRuntime.jsx(
4206
4832
  NewsCard,
4207
4833
  __spreadProps(__spreadValues({}, card), {
4208
- className: clsx43__default.default("side-cards", FeaturedNewsHighlights_module_default["side-cards"]),
4834
+ className: clsx47__default.default("side-cards", FeaturedNewsHighlights_module_default["side-cards"]),
4209
4835
  direction: "horizontal",
4210
4836
  renderLink
4211
4837
  }),
@@ -4217,11 +4843,11 @@ var FeaturedNewsHighlights = ({
4217
4843
  return /* @__PURE__ */ jsxRuntime.jsx(
4218
4844
  "div",
4219
4845
  {
4220
- className: clsx43__default.default("featured-news-higlights", FeaturedNewsHighlights_module_default["featured-news-higlights"], className),
4846
+ className: clsx47__default.default("featured-news-higlights", FeaturedNewsHighlights_module_default["featured-news-higlights"], className),
4221
4847
  style: {
4222
4848
  backgroundColor
4223
4849
  },
4224
- children: hasContainer ? /* @__PURE__ */ jsxRuntime.jsx(Container, { className: clsx43__default.default("container", FeaturedNewsHighlights_module_default["container"]), children: content }) : content
4850
+ children: hasContainer ? /* @__PURE__ */ jsxRuntime.jsx(Container, { className: clsx47__default.default("container", FeaturedNewsHighlights_module_default["container"]), children: content }) : content
4225
4851
  }
4226
4852
  );
4227
4853
  };
@@ -4265,23 +4891,23 @@ var NewsCardList = ({
4265
4891
  return /* @__PURE__ */ jsxRuntime.jsx(
4266
4892
  "div",
4267
4893
  {
4268
- className: clsx43__default.default("news-card-list", NewsCardList_module_default["news-card-list"], className),
4894
+ className: clsx47__default.default("news-card-list", NewsCardList_module_default["news-card-list"], className),
4269
4895
  style: {
4270
4896
  backgroundColor
4271
4897
  },
4272
- children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx43__default.default("container", NewsCardList_module_default["container"]), children: [
4273
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default("wrapper", NewsCardList_module_default["wrapper"]), children: [
4898
+ children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx47__default.default("container", NewsCardList_module_default["container"]), children: [
4899
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default("wrapper", NewsCardList_module_default["wrapper"]), children: [
4274
4900
  /* @__PURE__ */ jsxRuntime.jsx(
4275
4901
  Input,
4276
4902
  __spreadValues({
4277
- className: clsx43__default.default("search-input", NewsCardList_module_default["search-input"]),
4903
+ className: clsx47__default.default("search-input", NewsCardList_module_default["search-input"]),
4278
4904
  startAdornment: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "search" }),
4279
4905
  placeholder: "Search News",
4280
4906
  endAction: searchValue ? /* @__PURE__ */ jsxRuntime.jsx(
4281
4907
  Button,
4282
4908
  {
4283
4909
  variant: "nofillblack",
4284
- className: clsx43__default.default(NewsCardList_module_default["end-action-button"]),
4910
+ className: clsx47__default.default(NewsCardList_module_default["end-action-button"]),
4285
4911
  "aria-label": "Search",
4286
4912
  onClick: onSearchSubmit ? () => onSearchSubmit(searchValue || "") : void 0,
4287
4913
  children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "rightBlack" })
@@ -4293,7 +4919,7 @@ var NewsCardList = ({
4293
4919
  } : void 0
4294
4920
  }, searchInputProps)
4295
4921
  ),
4296
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default("card-wrapper", NewsCardList_module_default["card-wrapper"]), children: [
4922
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default("card-wrapper", NewsCardList_module_default["card-wrapper"]), children: [
4297
4923
  currentPage === 1 && /* @__PURE__ */ jsxRuntime.jsx(
4298
4924
  FeaturedNewsHighlights2,
4299
4925
  {
@@ -4306,8 +4932,8 @@ var NewsCardList = ({
4306
4932
  /* @__PURE__ */ jsxRuntime.jsx(BlogCardGrid2, { items: cards, hasContainer: false, renderLink })
4307
4933
  ] })
4308
4934
  ] }),
4309
- paginationNode ? React69__default.default.cloneElement(paginationNode, {
4310
- className: clsx43__default.default("pagination", NewsCardList_module_default["pagination"])
4935
+ paginationNode ? React70__default.default.cloneElement(paginationNode, {
4936
+ className: clsx47__default.default("pagination", NewsCardList_module_default["pagination"])
4311
4937
  }) : null
4312
4938
  ] })
4313
4939
  }
@@ -4352,15 +4978,15 @@ var BlogPost = ({
4352
4978
  });
4353
4979
  const titleNode = (_a = slots.title) != null ? _a : title;
4354
4980
  const bodyNode = (_b = slots.body) != null ? _b : body;
4355
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default("blog-post", BlogPost_module_default["blog-post"], className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx43__default.default("container", BlogPost_module_default["container"]), children: [
4356
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default("header", BlogPost_module_default["header"]), children: [
4981
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default("blog-post", BlogPost_module_default["blog-post"], className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx47__default.default("container", BlogPost_module_default["container"]), children: [
4982
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default("header", BlogPost_module_default["header"]), children: [
4357
4983
  titleNode && typeof titleNode === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Text, { tag: "h1", children: titleNode }) : titleNode,
4358
- image && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadProps(__spreadValues({}, image), { className: clsx43__default.default("image", BlogPost_module_default["image"]) }))
4984
+ image && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadProps(__spreadValues({}, image), { className: clsx47__default.default("image", BlogPost_module_default["image"]) }))
4359
4985
  ] }),
4360
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default("content", BlogPost_module_default["content"]), children: [
4361
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default("content-top", BlogPost_module_default["content-top"]), children: [
4986
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default("content", BlogPost_module_default["content"]), children: [
4987
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default("content-top", BlogPost_module_default["content-top"]), children: [
4362
4988
  /* @__PURE__ */ jsxRuntime.jsx(Badge, { size: "sm", children: tag }),
4363
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: clsx43__default.default("content-date", BlogPost_module_default["content-date"]), children: [
4989
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: clsx47__default.default("content-date", BlogPost_module_default["content-date"]), children: [
4364
4990
  "Published ",
4365
4991
  /* @__PURE__ */ jsxRuntime.jsx("time", { dateTime: date.value, children: date.label })
4366
4992
  ] })
@@ -4373,7 +4999,7 @@ var BlogPost = ({
4373
4999
  title: "More News",
4374
5000
  items: relatedArticles,
4375
5001
  hasContainer: false,
4376
- className: clsx43__default.default("related-articles", BlogPost_module_default["related-articles"])
5002
+ className: clsx47__default.default("related-articles", BlogPost_module_default["related-articles"])
4377
5003
  }
4378
5004
  )
4379
5005
  ] }) });
@@ -4421,22 +5047,22 @@ var BlogSearchResultsList = ({
4421
5047
  });
4422
5048
  const searchNode = (_a = slots.search) != null ? _a : searchResult;
4423
5049
  const paginationNode = slots.pagination;
4424
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default("search-results-list", BlogSearchResultsList_module_default["search-results-list"], className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx43__default.default("container", BlogSearchResultsList_module_default["container"]), children: [
4425
- typeof searchNode === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx43__default.default("search-result", BlogSearchResultsList_module_default["search-result"]), children: searchNode }) : React69__default.default.isValidElement(searchNode) ? React69__default.default.cloneElement(searchNode, {
4426
- className: clsx43__default.default("search-result", BlogSearchResultsList_module_default["search-result"])
5050
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default("search-results-list", BlogSearchResultsList_module_default["search-results-list"], className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx47__default.default("container", BlogSearchResultsList_module_default["container"]), children: [
5051
+ typeof searchNode === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx47__default.default("search-result", BlogSearchResultsList_module_default["search-result"]), children: searchNode }) : React70__default.default.isValidElement(searchNode) ? React70__default.default.cloneElement(searchNode, {
5052
+ className: clsx47__default.default("search-result", BlogSearchResultsList_module_default["search-result"])
4427
5053
  }) : null,
4428
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx43__default.default("wrapper", BlogSearchResultsList_module_default["wrapper"]), children: [
5054
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx47__default.default("wrapper", BlogSearchResultsList_module_default["wrapper"]), children: [
4429
5055
  /* @__PURE__ */ jsxRuntime.jsx(
4430
5056
  Input,
4431
5057
  __spreadValues({
4432
- className: clsx43__default.default("search-input", BlogSearchResultsList_module_default["search-input"]),
5058
+ className: clsx47__default.default("search-input", BlogSearchResultsList_module_default["search-input"]),
4433
5059
  startAdornment: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "search" }),
4434
5060
  placeholder: "Search News",
4435
5061
  endAction: searchValue ? /* @__PURE__ */ jsxRuntime.jsx(
4436
5062
  Button,
4437
5063
  {
4438
5064
  variant: "nofillblack",
4439
- className: clsx43__default.default(BlogSearchResultsList_module_default["end-action-button"]),
5065
+ className: clsx47__default.default(BlogSearchResultsList_module_default["end-action-button"]),
4440
5066
  "aria-label": "Search",
4441
5067
  onClick: () => onSearchSubmit(searchValue),
4442
5068
  children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "rightBlack" })
@@ -4450,8 +5076,8 @@ var BlogSearchResultsList = ({
4450
5076
  ),
4451
5077
  /* @__PURE__ */ jsxRuntime.jsx(BlogCardGrid2, { items, hasContainer: false, renderLink })
4452
5078
  ] }),
4453
- paginationNode ? React69__default.default.cloneElement(paginationNode, {
4454
- className: clsx43__default.default("pagination", BlogSearchResultsList_module_default["pagination"])
5079
+ paginationNode ? React70__default.default.cloneElement(paginationNode, {
5080
+ className: clsx47__default.default("pagination", BlogSearchResultsList_module_default["pagination"])
4455
5081
  }) : null
4456
5082
  ] }) });
4457
5083
  };
@@ -4492,11 +5118,11 @@ var GlobalSearchResultsList = ({
4492
5118
  });
4493
5119
  const searchNode = (_a = slots.search) != null ? _a : searchResult;
4494
5120
  const paginationNode = slots.pagination;
4495
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default("search-results-list", GlobalSearchResultsList_module_default["search-results-list"], className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx43__default.default("container", GlobalSearchResultsList_module_default["container"]), children: [
4496
- typeof searchNode === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx43__default.default("search-result", GlobalSearchResultsList_module_default["search-result"]), children: searchNode }) : React69__default.default.isValidElement(searchNode) ? React69__default.default.cloneElement(searchNode, {
4497
- className: clsx43__default.default("search-result", GlobalSearchResultsList_module_default["search-result"])
5121
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default("search-results-list", GlobalSearchResultsList_module_default["search-results-list"], className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx47__default.default("container", GlobalSearchResultsList_module_default["container"]), children: [
5122
+ typeof searchNode === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx47__default.default("search-result", GlobalSearchResultsList_module_default["search-result"]), children: searchNode }) : React70__default.default.isValidElement(searchNode) ? React70__default.default.cloneElement(searchNode, {
5123
+ className: clsx47__default.default("search-result", GlobalSearchResultsList_module_default["search-result"])
4498
5124
  }) : null,
4499
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx43__default.default("wrapper", GlobalSearchResultsList_module_default["wrapper"]), children: /* @__PURE__ */ jsxRuntime.jsx(Grid, { role: "list", columns: 3, children: items.map((item, index) => {
5125
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default("wrapper", GlobalSearchResultsList_module_default["wrapper"]), children: /* @__PURE__ */ jsxRuntime.jsx(Grid, { role: "list", columns: 3, children: items.map((item, index) => {
4500
5126
  var _a2;
4501
5127
  return /* @__PURE__ */ jsxRuntime.jsx(
4502
5128
  GridItem,
@@ -4516,8 +5142,8 @@ var GlobalSearchResultsList = ({
4516
5142
  item.title ? `${item.title}-${(_a2 = item == null ? void 0 : item.id) != null ? _a2 : index}` : index
4517
5143
  );
4518
5144
  }) }) }),
4519
- paginationNode ? React69__default.default.cloneElement(paginationNode, {
4520
- className: clsx43__default.default("pagination", GlobalSearchResultsList_module_default["pagination"])
5145
+ paginationNode ? React70__default.default.cloneElement(paginationNode, {
5146
+ className: clsx47__default.default("pagination", GlobalSearchResultsList_module_default["pagination"])
4521
5147
  }) : null
4522
5148
  ] }) });
4523
5149
  };
@@ -4555,10 +5181,10 @@ var TextCenterWithMedia = ({
4555
5181
  children
4556
5182
  }) => {
4557
5183
  var _a;
4558
- const [isOpen, setIsOpen] = React69.useState(false);
4559
- const dialogRef = React69.useRef(null);
4560
- const videoRef = React69.useRef(null);
4561
- React69.useEffect(() => {
5184
+ const [isOpen, setIsOpen] = React70.useState(false);
5185
+ const dialogRef = React70.useRef(null);
5186
+ const videoRef = React70.useRef(null);
5187
+ React70.useEffect(() => {
4562
5188
  var _a2, _b;
4563
5189
  if (isOpen) {
4564
5190
  (_a2 = dialogRef.current) == null ? void 0 : _a2.showModal();
@@ -4575,7 +5201,7 @@ var TextCenterWithMedia = ({
4575
5201
  };
4576
5202
  const slots = resolveCompoundSlots(children, { title: TextCenterWithMediaTitle });
4577
5203
  const titleNode = (_a = slots.title) != null ? _a : title;
4578
- return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: clsx43__default.default(TextCenterWithMedia_module_default.textCenterWithMedia, className), children: [
5204
+ return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: clsx47__default.default(TextCenterWithMedia_module_default.textCenterWithMedia, className), children: [
4579
5205
  /* @__PURE__ */ jsxRuntime.jsxs(Container, { children: [
4580
5206
  titleNode && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "h2", children: titleNode }),
4581
5207
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: TextCenterWithMedia_module_default.thumbnailWrapper, children: thumbnail && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
@@ -4616,6 +5242,99 @@ var TextCenterWithMedia2 = Object.assign(TextCenterWithMedia, {
4616
5242
  Title: TextCenterWithMediaTitle
4617
5243
  });
4618
5244
 
5245
+ // src/widgets/QuoteSectionBlock/QuoteSectionBlock.module.scss
5246
+ var QuoteSectionBlock_module_default = {
5247
+ quoteSectionBlock: "QuoteSectionBlock_module_quoteSectionBlock",
5248
+ inner: "QuoteSectionBlock_module_inner",
5249
+ title: "QuoteSectionBlock_module_title",
5250
+ swiperContainer: "QuoteSectionBlock_module_swiperContainer",
5251
+ card: "QuoteSectionBlock_module_card",
5252
+ quoteLogo: "QuoteSectionBlock_module_quoteLogo",
5253
+ bodyText: "QuoteSectionBlock_module_bodyText",
5254
+ attribution: "QuoteSectionBlock_module_attribution",
5255
+ displayPhoto: "QuoteSectionBlock_module_displayPhoto",
5256
+ displayName: "QuoteSectionBlock_module_displayName",
5257
+ attributionText: "QuoteSectionBlock_module_attributionText",
5258
+ jobTitleLogo: "QuoteSectionBlock_module_jobTitleLogo",
5259
+ controls: "QuoteSectionBlock_module_controls"
5260
+ };
5261
+ var QuoteSectionBlock = ({ className, title, items = [] }) => {
5262
+ const { is } = useViewPort_default();
5263
+ const isMobile = is("tablet", "below");
5264
+ const [swiperInstance, setSwiperInstance] = React70.useState(null);
5265
+ const [activeIndex, setActiveIndex] = React70.useState(0);
5266
+ if (!items.length) return null;
5267
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx47__default.default(QuoteSectionBlock_module_default.quoteSectionBlock, className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: QuoteSectionBlock_module_default.inner, children: [
5268
+ title && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: QuoteSectionBlock_module_default.title, children: title }),
5269
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: QuoteSectionBlock_module_default.swiperContainer, children: /* @__PURE__ */ jsxRuntime.jsx(
5270
+ react$1.Swiper,
5271
+ {
5272
+ slidesPerView: "auto",
5273
+ spaceBetween: isMobile ? 8 : 32,
5274
+ onSwiper: setSwiperInstance,
5275
+ onSlideChange: (swiper) => setActiveIndex(swiper.activeIndex),
5276
+ children: items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(react$1.SwiperSlide, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: QuoteSectionBlock_module_default.card, children: [
5277
+ (item == null ? void 0 : item.quoteLogo) && /* @__PURE__ */ jsxRuntime.jsx("img", { src: item.quoteLogo, alt: "", className: QuoteSectionBlock_module_default.quoteLogo }),
5278
+ (item == null ? void 0 : item.bodyText) && /* @__PURE__ */ jsxRuntime.jsx("p", { className: QuoteSectionBlock_module_default.bodyText, children: item.bodyText }),
5279
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: QuoteSectionBlock_module_default.attribution, children: [
5280
+ (item == null ? void 0 : item.displayPhoto) && /* @__PURE__ */ jsxRuntime.jsx(
5281
+ "img",
5282
+ {
5283
+ src: item.displayPhoto,
5284
+ alt: item.displayName,
5285
+ className: QuoteSectionBlock_module_default.displayPhoto
5286
+ }
5287
+ ),
5288
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: QuoteSectionBlock_module_default.attributionText, children: [
5289
+ (item == null ? void 0 : item.displayName) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: QuoteSectionBlock_module_default.displayName, children: item.displayName }),
5290
+ (item == null ? void 0 : item.jobTitleLogo) && /* @__PURE__ */ jsxRuntime.jsx("img", { src: item.jobTitleLogo, alt: "", className: QuoteSectionBlock_module_default.jobTitleLogo })
5291
+ ] })
5292
+ ] })
5293
+ ] }) }, index))
5294
+ }
5295
+ ) }),
5296
+ /* @__PURE__ */ jsxRuntime.jsx(
5297
+ Pagination,
5298
+ {
5299
+ className: QuoteSectionBlock_module_default.controls,
5300
+ totalPages: items.length,
5301
+ currentPage: activeIndex + 1,
5302
+ loop: true,
5303
+ onPageChange: (page) => swiperInstance == null ? void 0 : swiperInstance.slideTo(page - 1)
5304
+ },
5305
+ activeIndex
5306
+ )
5307
+ ] }) });
5308
+ };
5309
+ function useIntersectionObserver({
5310
+ animateOnce = false,
5311
+ options = {}
5312
+ } = {}) {
5313
+ const observeRef = React70.useRef(null);
5314
+ const [isVisible, setIsVisible] = React70.useState(false);
5315
+ if (typeof IntersectionObserver === "undefined") {
5316
+ console.warn("IntersectionObserver is not supported in this browser.");
5317
+ return { observeRef, isVisible: true };
5318
+ }
5319
+ React70.useEffect(() => {
5320
+ const currentRef = observeRef.current;
5321
+ if (!currentRef) return;
5322
+ const observer = new IntersectionObserver((entries) => {
5323
+ const entry = entries[0];
5324
+ if (!entry) return;
5325
+ setIsVisible(entry.isIntersecting);
5326
+ if (entry.isIntersecting && animateOnce) {
5327
+ observer.disconnect();
5328
+ }
5329
+ }, options);
5330
+ observer.observe(currentRef);
5331
+ return () => {
5332
+ observer.disconnect();
5333
+ };
5334
+ }, [observeRef, animateOnce, options]);
5335
+ return { observeRef, isVisible };
5336
+ }
5337
+
4619
5338
  exports.Anchor = Anchor;
4620
5339
  exports.Badge = Badge;
4621
5340
  exports.BlogCardGrid = BlogCardGrid2;
@@ -4650,8 +5369,10 @@ exports.Pagination = Pagination;
4650
5369
  exports.Picture = Picture;
4651
5370
  exports.PracticeCard = PracticeCard;
4652
5371
  exports.PracticePathCards = PracticePathCards2;
5372
+ exports.QuoteSectionBlock = QuoteSectionBlock;
4653
5373
  exports.ResourceCardItem = ResourceCardItem;
4654
5374
  exports.ResourcesGridList = ResourcesGridList;
5375
+ exports.Search = Search;
4655
5376
  exports.Sidebar = Sidebar;
4656
5377
  exports.Teaser5050With3Text = Teaser5050With3Text2;
4657
5378
  exports.Teaser5050WithCta = Teaser5050WithCta2;
@@ -4660,6 +5381,7 @@ exports.TextCenterCtaInBottom = TextCenterCtaInBottom2;
4660
5381
  exports.TextCenterWithMedia = TextCenterWithMedia2;
4661
5382
  exports.TextEvent = TextEvent2;
4662
5383
  exports.UpcomingEventCard = UpcomingEventCard;
5384
+ exports.UserMenu = UserMenu;
4663
5385
  exports.resolveCompoundSlots = resolveCompoundSlots;
4664
5386
  exports.svgs = svgs;
4665
5387
  exports.useIntersectionObserver = useIntersectionObserver;