@digital-b2c/coreui-kit 0.9.0 → 0.10.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,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var clsx23 = require('clsx');
3
+ var clsx25 = require('clsx');
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
5
  var React62 = require('react');
6
6
  var gsap = require('gsap');
@@ -12,7 +12,7 @@ require('swiper/css');
12
12
 
13
13
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
14
 
15
- var clsx23__default = /*#__PURE__*/_interopDefault(clsx23);
15
+ var clsx25__default = /*#__PURE__*/_interopDefault(clsx25);
16
16
  var React62__default = /*#__PURE__*/_interopDefault(React62);
17
17
  var gsap__default = /*#__PURE__*/_interopDefault(gsap);
18
18
 
@@ -66,7 +66,7 @@ var Picture = (_a) => {
66
66
  __spreadValues({
67
67
  src: desktop.src,
68
68
  alt: desktop.alt,
69
- className: clsx23__default.default(className, Picture_module_default["image-desktop"])
69
+ className: clsx25__default.default(className, Picture_module_default["image-desktop"])
70
70
  }, rest)
71
71
  ),
72
72
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -74,7 +74,7 @@ var Picture = (_a) => {
74
74
  __spreadValues({
75
75
  src: (_b2 = mobile == null ? void 0 : mobile.src) != null ? _b2 : desktop.src,
76
76
  alt: (_c = mobile == null ? void 0 : mobile.alt) != null ? _c : desktop.alt,
77
- className: clsx23__default.default(className, Picture_module_default["image-mobile"])
77
+ className: clsx25__default.default(className, Picture_module_default["image-mobile"])
78
78
  }, rest)
79
79
  )
80
80
  ] });
@@ -433,7 +433,7 @@ var Button = (_a) => {
433
433
  ]);
434
434
  const isLink = !!href;
435
435
  const props = __spreadValues(__spreadValues({
436
- className: clsx23__default.default(
436
+ className: clsx25__default.default(
437
437
  Button_module_default.button,
438
438
  variant ? Button_module_default[variant] : null,
439
439
  { [Button_module_default.fullWidth]: !!fullWidth },
@@ -665,7 +665,7 @@ var BrandsStrip = ({
665
665
  "div",
666
666
  {
667
667
  ref: containerRef,
668
- className: clsx23__default.default(
668
+ className: clsx25__default.default(
669
669
  BrandsStrip_module_default.brandsStrip,
670
670
  BrandsStrip_module_default[variant],
671
671
  { [BrandsStrip_module_default.small]: size === "small" },
@@ -674,13 +674,13 @@ var BrandsStrip = ({
674
674
  onMouseEnter: handleMouseEnter,
675
675
  onMouseLeave: handleMouseLeave,
676
676
  children: [
677
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx23__default.default(BrandsStrip_module_default.container, { [BrandsStrip_module_default.blurred]: show && logos.length > 1 }), children: [
678
- title && logos.length === 1 && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: clsx23__default.default("body", BrandsStrip_module_default.title), children: title }),
677
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx25__default.default(BrandsStrip_module_default.container, { [BrandsStrip_module_default.blurred]: show && logos.length > 1 }), children: [
678
+ title && logos.length === 1 && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: clsx25__default.default("body", BrandsStrip_module_default.title), children: title }),
679
679
  logos.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
680
680
  "div",
681
681
  {
682
682
  ref: marqueeRef,
683
- className: clsx23__default.default(BrandsStrip_module_default.logos, { [BrandsStrip_module_default.marqueeGSAP]: shouldAnimate }),
683
+ className: clsx25__default.default(BrandsStrip_module_default.logos, { [BrandsStrip_module_default.marqueeGSAP]: shouldAnimate }),
684
684
  children: duplicatedLogos.map((logo, index) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: BrandsStrip_module_default.logoWrapper, children: /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: BrandsStrip_module_default.logo }, logo)) }, `${logo.alt}-${index}`))
685
685
  }
686
686
  )
@@ -727,7 +727,7 @@ var Container_module_default = {
727
727
  var Container = React62.forwardRef(
728
728
  (_a, ref) => {
729
729
  var _b = _a, { children, className } = _b, props = __objRest(_b, ["children", "className"]);
730
- return /* @__PURE__ */ jsxRuntime.jsx("div", __spreadProps(__spreadValues({ ref, className: clsx23__default.default(Container_module_default.container, className) }, props), { children }));
730
+ return /* @__PURE__ */ jsxRuntime.jsx("div", __spreadProps(__spreadValues({ ref, className: clsx25__default.default(Container_module_default.container, className) }, props), { children }));
731
731
  }
732
732
  );
733
733
  Container.displayName = "Container";
@@ -768,14 +768,14 @@ var Card = ({
768
768
  ConditionalWrapper,
769
769
  __spreadProps(__spreadValues({
770
770
  ref,
771
- className: clsx23__default.default(Card_module_default.card, Card_module_default[variant], className),
771
+ className: clsx25__default.default(Card_module_default.card, Card_module_default[variant], className),
772
772
  wrapper: Anchor,
773
773
  fallback: "div",
774
774
  condition: isLink
775
775
  }, href ? { href, isExternal } : {}), {
776
776
  children: [
777
777
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Card_module_default.logoContainer, children: [
778
- (logo == null ? void 0 : logo.src) ? /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: clsx23__default.default(Card_module_default.logo, isLink && Card_module_default.hideLogo) }, logo)) : icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: icon, className: clsx23__default.default(Card_module_default.logo, isLink && Card_module_default.hideLogo) }),
778
+ (logo == null ? void 0 : logo.src) ? /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: clsx25__default.default(Card_module_default.logo, isLink && Card_module_default.hideLogo) }, logo)) : icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: icon, className: clsx25__default.default(Card_module_default.logo, isLink && Card_module_default.hideLogo) }),
779
779
  isLink && /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "tiltedRightWhite", className: Card_module_default.logoHover })
780
780
  ] }),
781
781
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Card_module_default.content, children: [
@@ -810,10 +810,10 @@ var CountingCard = ({ className, title, count, image, children }) => {
810
810
  title: CountingCardTitle
811
811
  });
812
812
  const titleNode = (_a = slots.title) != null ? _a : title;
813
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx23__default.default(CountingCard_module_default["counting-card"], className), children: [
813
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx25__default.default(CountingCard_module_default["counting-card"], className), children: [
814
814
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: CountingCard_module_default.content, children: [
815
815
  titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "body", children: titleNode }),
816
- count && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(CountingCard_module_default.count, "h1"), children: count })
816
+ count && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__default.default(CountingCard_module_default.count, "h1"), children: count })
817
817
  ] }),
818
818
  image && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: CountingCard_module_default.logo }, image))
819
819
  ] });
@@ -823,6 +823,280 @@ var CountingCard = ({ className, title, count, image, children }) => {
823
823
  var CountingCard2 = Object.assign(CountingCard, {
824
824
  Title: CountingCardTitle
825
825
  });
826
+
827
+ // src/components/FilterBar/FilterBar.module.scss
828
+ var FilterBar_module_default = {
829
+ filterBar: "FilterBar_module_filterBar",
830
+ viewToggle: "FilterBar_module_viewToggle",
831
+ filterActions: "FilterBar_module_filterActions",
832
+ chip: "FilterBar_module_chip",
833
+ active: "FilterBar_module_active",
834
+ chipLabel: "FilterBar_module_chipLabel",
835
+ dropdownWrapper: "FilterBar_module_dropdownWrapper",
836
+ searchExpanded: "FilterBar_module_searchExpanded",
837
+ searchCollapsing: "FilterBar_module_searchCollapsing",
838
+ searchIconInner: "FilterBar_module_searchIconInner",
839
+ searchInput: "FilterBar_module_searchInput",
840
+ searchClear: "FilterBar_module_searchClear",
841
+ dropdownPanel: "FilterBar_module_dropdownPanel",
842
+ searchPanel: "FilterBar_module_searchPanel",
843
+ dropdownOption: "FilterBar_module_dropdownOption",
844
+ selected: "FilterBar_module_selected"
845
+ };
846
+ var FILTER_OPTIONS = [
847
+ { value: "link", label: "Link", icon: "externalLink" },
848
+ { value: "pdf", label: "PDF", icon: "pdf" }
849
+ ];
850
+ var SORT_OPTIONS = [
851
+ { value: "latest", label: "Latest" },
852
+ { value: "oldest", label: "Oldest" },
853
+ { value: "az", label: "A \u2192 Z" },
854
+ { value: "za", label: "Z \u2192 A" }
855
+ ];
856
+ function FilterBar({
857
+ view,
858
+ onViewChange,
859
+ isMobile,
860
+ filterValue,
861
+ onFilterChange,
862
+ sortValue,
863
+ onSortChange,
864
+ searchValue,
865
+ onSearchChange
866
+ }) {
867
+ const [openDropdown, setOpenDropdown] = React62.useState(null);
868
+ const [searchState, setSearchState] = React62.useState("closed");
869
+ const filterRef = React62.useRef(null);
870
+ const sortRef = React62.useRef(null);
871
+ const searchRef = React62.useRef(null);
872
+ const searchInputRef = React62.useRef(null);
873
+ const closeSearch = () => {
874
+ setSearchState("closing");
875
+ onSearchChange("");
876
+ };
877
+ const clearSearch = () => {
878
+ var _a;
879
+ onSearchChange("");
880
+ (_a = searchInputRef.current) == null ? void 0 : _a.focus();
881
+ };
882
+ React62.useEffect(() => {
883
+ const handleMouseDown = (e) => {
884
+ var _a, _b, _c;
885
+ const target = e.target;
886
+ if (((_a = filterRef.current) == null ? void 0 : _a.contains(target)) || ((_b = sortRef.current) == null ? void 0 : _b.contains(target)) || ((_c = searchRef.current) == null ? void 0 : _c.contains(target)))
887
+ return;
888
+ setOpenDropdown(null);
889
+ };
890
+ document.addEventListener("mousedown", handleMouseDown);
891
+ return () => document.removeEventListener("mousedown", handleMouseDown);
892
+ }, []);
893
+ React62.useEffect(() => {
894
+ var _a;
895
+ if (searchState === "open") (_a = searchInputRef.current) == null ? void 0 : _a.focus();
896
+ }, [searchState]);
897
+ React62.useEffect(() => {
898
+ var _a;
899
+ if (openDropdown === "search") (_a = searchInputRef.current) == null ? void 0 : _a.focus();
900
+ }, [openDropdown]);
901
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: FilterBar_module_default.filterBar, children: [
902
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: FilterBar_module_default.viewToggle, children: [
903
+ /* @__PURE__ */ jsxRuntime.jsxs(
904
+ "button",
905
+ {
906
+ type: "button",
907
+ className: clsx25__default.default(FilterBar_module_default.chip, view === "grid" && FilterBar_module_default.active),
908
+ onClick: () => onViewChange("grid"),
909
+ "aria-pressed": view === "grid",
910
+ children: [
911
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "grid", size: 20, "aria-hidden": "true" }),
912
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: FilterBar_module_default.chipLabel, children: "Grid" })
913
+ ]
914
+ }
915
+ ),
916
+ /* @__PURE__ */ jsxRuntime.jsxs(
917
+ "button",
918
+ {
919
+ type: "button",
920
+ className: clsx25__default.default(FilterBar_module_default.chip, view === "list" && FilterBar_module_default.active),
921
+ onClick: () => onViewChange("list"),
922
+ "aria-pressed": view === "list",
923
+ children: [
924
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "list", size: 20, "aria-hidden": "true" }),
925
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: FilterBar_module_default.chipLabel, children: "List" })
926
+ ]
927
+ }
928
+ )
929
+ ] }),
930
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: FilterBar_module_default.filterActions, children: [
931
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: FilterBar_module_default.dropdownWrapper, ref: filterRef, children: [
932
+ /* @__PURE__ */ jsxRuntime.jsxs(
933
+ "button",
934
+ {
935
+ type: "button",
936
+ className: clsx25__default.default(FilterBar_module_default.chip, filterValue !== "all" && FilterBar_module_default.active),
937
+ onClick: () => setOpenDropdown(openDropdown === "filter" ? null : "filter"),
938
+ "aria-expanded": openDropdown === "filter",
939
+ children: [
940
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "filter", size: 20, "aria-hidden": "true" }),
941
+ !isMobile && /* @__PURE__ */ jsxRuntime.jsx("span", { className: FilterBar_module_default.chipLabel, children: "Filter" })
942
+ ]
943
+ }
944
+ ),
945
+ openDropdown === "filter" && /* @__PURE__ */ jsxRuntime.jsx("div", { className: FilterBar_module_default.dropdownPanel, role: "listbox", "aria-label": "Filter by type", children: FILTER_OPTIONS.map((opt) => /* @__PURE__ */ jsxRuntime.jsxs(
946
+ "button",
947
+ {
948
+ type: "button",
949
+ role: "option",
950
+ "aria-selected": filterValue === opt.value,
951
+ className: clsx25__default.default(
952
+ FilterBar_module_default.dropdownOption,
953
+ filterValue === opt.value && FilterBar_module_default.selected
954
+ ),
955
+ onClick: () => {
956
+ onFilterChange(filterValue === opt.value ? "all" : opt.value);
957
+ setOpenDropdown(null);
958
+ },
959
+ children: [
960
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: opt.icon, size: 20, "aria-hidden": "true" }),
961
+ opt.label
962
+ ]
963
+ },
964
+ opt.value
965
+ )) })
966
+ ] }),
967
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: FilterBar_module_default.dropdownWrapper, ref: sortRef, children: [
968
+ /* @__PURE__ */ jsxRuntime.jsxs(
969
+ "button",
970
+ {
971
+ type: "button",
972
+ className: FilterBar_module_default.chip,
973
+ onClick: () => setOpenDropdown(openDropdown === "sort" ? null : "sort"),
974
+ "aria-expanded": openDropdown === "sort",
975
+ children: [
976
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "internalFilter", size: 20, "aria-hidden": "true" }),
977
+ !isMobile && /* @__PURE__ */ jsxRuntime.jsx("span", { className: FilterBar_module_default.chipLabel, children: "Sort" })
978
+ ]
979
+ }
980
+ ),
981
+ openDropdown === "sort" && /* @__PURE__ */ jsxRuntime.jsx("div", { className: FilterBar_module_default.dropdownPanel, role: "listbox", "aria-label": "Sort by", children: SORT_OPTIONS.map((opt) => /* @__PURE__ */ jsxRuntime.jsx(
982
+ "button",
983
+ {
984
+ type: "button",
985
+ role: "option",
986
+ "aria-selected": sortValue === opt.value,
987
+ className: clsx25__default.default(
988
+ FilterBar_module_default.dropdownOption,
989
+ sortValue === opt.value && FilterBar_module_default.selected
990
+ ),
991
+ onClick: () => {
992
+ onSortChange(opt.value);
993
+ setOpenDropdown(null);
994
+ },
995
+ children: opt.label
996
+ },
997
+ opt.value
998
+ )) })
999
+ ] }),
1000
+ isMobile ? (
1001
+ /* Mobile — popup panel, mirroring the Filter/Sort dropdowns */
1002
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: FilterBar_module_default.dropdownWrapper, ref: searchRef, children: [
1003
+ /* @__PURE__ */ jsxRuntime.jsx(
1004
+ "button",
1005
+ {
1006
+ type: "button",
1007
+ className: clsx25__default.default(FilterBar_module_default.chip, searchValue !== "" && FilterBar_module_default.active),
1008
+ onClick: () => setOpenDropdown(openDropdown === "search" ? null : "search"),
1009
+ "aria-expanded": openDropdown === "search",
1010
+ "aria-label": "Search",
1011
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "search", size: 20, "aria-hidden": "true" })
1012
+ }
1013
+ ),
1014
+ openDropdown === "search" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: FilterBar_module_default.searchPanel, children: [
1015
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: FilterBar_module_default.searchIconInner, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "search", size: 20, "aria-hidden": "true" }) }),
1016
+ /* @__PURE__ */ jsxRuntime.jsx(
1017
+ "input",
1018
+ {
1019
+ ref: searchInputRef,
1020
+ type: "text",
1021
+ className: FilterBar_module_default.searchInput,
1022
+ placeholder: "Search\u2026",
1023
+ value: searchValue,
1024
+ onChange: (e) => onSearchChange(e.target.value),
1025
+ onKeyDown: (e) => {
1026
+ if (e.key === "Escape") {
1027
+ if (searchValue) clearSearch();
1028
+ else setOpenDropdown(null);
1029
+ }
1030
+ }
1031
+ }
1032
+ ),
1033
+ searchValue && /* @__PURE__ */ jsxRuntime.jsx(
1034
+ "button",
1035
+ {
1036
+ type: "button",
1037
+ className: FilterBar_module_default.searchClear,
1038
+ "aria-label": "Clear search",
1039
+ onClick: clearSearch,
1040
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "xBlack", size: 16, "aria-hidden": "true" })
1041
+ }
1042
+ )
1043
+ ] })
1044
+ ] })
1045
+ ) : searchState !== "closed" ? (
1046
+ /* Desktop — animated inline expand */
1047
+ /* @__PURE__ */ jsxRuntime.jsxs(
1048
+ "div",
1049
+ {
1050
+ className: clsx25__default.default(
1051
+ FilterBar_module_default.searchExpanded,
1052
+ searchState === "closing" && FilterBar_module_default.searchCollapsing
1053
+ ),
1054
+ onAnimationEnd: () => {
1055
+ if (searchState === "closing") setSearchState("closed");
1056
+ },
1057
+ children: [
1058
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: FilterBar_module_default.searchIconInner, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "search", size: 20, "aria-hidden": "true" }) }),
1059
+ /* @__PURE__ */ jsxRuntime.jsx(
1060
+ "input",
1061
+ {
1062
+ ref: searchInputRef,
1063
+ type: "text",
1064
+ className: FilterBar_module_default.searchInput,
1065
+ placeholder: "Search\u2026",
1066
+ value: searchValue,
1067
+ onChange: (e) => onSearchChange(e.target.value),
1068
+ onKeyDown: (e) => {
1069
+ if (e.key === "Escape") {
1070
+ if (searchValue) clearSearch();
1071
+ else closeSearch();
1072
+ }
1073
+ },
1074
+ onBlur: () => {
1075
+ if (!searchValue) closeSearch();
1076
+ }
1077
+ }
1078
+ ),
1079
+ searchValue && /* @__PURE__ */ jsxRuntime.jsx(
1080
+ "button",
1081
+ {
1082
+ type: "button",
1083
+ className: FilterBar_module_default.searchClear,
1084
+ "aria-label": "Clear search",
1085
+ onMouseDown: (e) => e.preventDefault(),
1086
+ onClick: clearSearch,
1087
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "xBlack", size: 16, "aria-hidden": "true" })
1088
+ }
1089
+ )
1090
+ ]
1091
+ }
1092
+ )
1093
+ ) : /* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", className: FilterBar_module_default.chip, onClick: () => setSearchState("open"), children: [
1094
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "search", size: 20, "aria-hidden": "true" }),
1095
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: FilterBar_module_default.chipLabel, children: "Search" })
1096
+ ] })
1097
+ ] })
1098
+ ] });
1099
+ }
826
1100
  var InfoCardTitle = ({ children }) => {
827
1101
  return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
828
1102
  };
@@ -845,9 +1119,9 @@ var InfoCard = ({ className, title, subtitle, icon, badge, children }) => {
845
1119
  });
846
1120
  const titleNode = (_a = slots.title) != null ? _a : title;
847
1121
  const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
848
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx23__default.default(InfoCard_module_default["info-card"], { [InfoCard_module_default.hasIcon]: !!icon }, className), children: [
1122
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx25__default.default(InfoCard_module_default["info-card"], { [InfoCard_module_default.hasIcon]: !!icon }, className), children: [
849
1123
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: InfoCard_module_default.header, children: [
850
- icon ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: icon }) : badge ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(InfoCard_module_default.badge, "h4"), children: badge }) : null,
1124
+ icon ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: icon }) : badge ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__default.default(InfoCard_module_default.badge, "h4"), children: badge }) : null,
851
1125
  titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h4", children: titleNode })
852
1126
  ] }),
853
1127
  subtitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "body", children: subtitleNode })
@@ -909,7 +1183,7 @@ var Pagination = ({
909
1183
  setActivePage(page);
910
1184
  onPageChange == null ? void 0 : onPageChange(page);
911
1185
  };
912
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx23__default.default(Pagination_module_default.pagination, className), children: [
1186
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx25__default.default(Pagination_module_default.pagination, className), children: [
913
1187
  !disableArrows && /* @__PURE__ */ jsxRuntime.jsx(
914
1188
  "button",
915
1189
  {
@@ -926,7 +1200,7 @@ var Pagination = ({
926
1200
  "button",
927
1201
  {
928
1202
  onClick: () => goToPage(page),
929
- className: clsx23__default.default(Pagination_module_default.page, {
1203
+ className: clsx25__default.default(Pagination_module_default.page, {
930
1204
  [Pagination_module_default.active]: activePage === page,
931
1205
  [Pagination_module_default.number]: hasNumber
932
1206
  }),
@@ -962,7 +1236,7 @@ var PracticeCard_module_default = {
962
1236
  };
963
1237
  var PracticeCard = ({ className, title, cta, image }) => {
964
1238
  const { url: href, isExternal } = cta != null ? cta : {};
965
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(PracticeCard_module_default["practice-card"], className), children: /* @__PURE__ */ jsxRuntime.jsxs(
1239
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__default.default(PracticeCard_module_default["practice-card"], className), children: /* @__PURE__ */ jsxRuntime.jsxs(
966
1240
  ConditionalWrapper,
967
1241
  __spreadProps(__spreadValues({
968
1242
  className: PracticeCard_module_default.wrapper,
@@ -973,7 +1247,7 @@ var PracticeCard = ({ className, title, cta, image }) => {
973
1247
  children: [
974
1248
  image && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: PracticeCard_module_default.background }, image)),
975
1249
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: PracticeCard_module_default.container, children: [
976
- title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(PracticeCard_module_default.title, "h3"), children: title }),
1250
+ title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__default.default(PracticeCard_module_default.title, "h3"), children: title }),
977
1251
  href && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: PracticeCard_module_default.cta, children: [
978
1252
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: PracticeCard_module_default.ctaRest, type: "right" }),
979
1253
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: PracticeCard_module_default.ctaHover, type: "tiltedRight" })
@@ -984,6 +1258,106 @@ var PracticeCard = ({ className, title, cta, image }) => {
984
1258
  ) });
985
1259
  };
986
1260
 
1261
+ // src/components/ResourceCardItem/ResourceCardItem.module.scss
1262
+ var ResourceCardItem_module_default = {
1263
+ cardLink: "ResourceCardItem_module_cardLink",
1264
+ cardGrid: "ResourceCardItem_module_cardGrid",
1265
+ cardBody: "ResourceCardItem_module_cardBody",
1266
+ cardIconTitle: "ResourceCardItem_module_cardIconTitle",
1267
+ cardTitle: "ResourceCardItem_module_cardTitle",
1268
+ cardMeta: "ResourceCardItem_module_cardMeta",
1269
+ cardDate: "ResourceCardItem_module_cardDate",
1270
+ cardList: "ResourceCardItem_module_cardList",
1271
+ cardListLeft: "ResourceCardItem_module_cardListLeft",
1272
+ cardListRight: "ResourceCardItem_module_cardListRight",
1273
+ notificationDot: "ResourceCardItem_module_notificationDot",
1274
+ iconWrapper: "ResourceCardItem_module_iconWrapper"
1275
+ };
1276
+ var ResourceIcon = ({ image, type }) => {
1277
+ if (!image) return null;
1278
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: ResourceCardItem_module_default.iconWrapper, children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: image, alt: type != null ? type : "", width: 32, height: 32 }) });
1279
+ };
1280
+ var ResourceCardItem = ({ item, view }) => {
1281
+ const hasHref = Boolean(item.href);
1282
+ const linkWrapper = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx("a", { href: item.href, className: ResourceCardItem_module_default.cardLink, target: "_blank", rel: "noopener noreferrer", children });
1283
+ if (view === "grid") {
1284
+ return /* @__PURE__ */ jsxRuntime.jsx("article", { className: ResourceCardItem_module_default.cardGrid, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourceCardItem_module_default.cardBody, children: [
1285
+ /* @__PURE__ */ jsxRuntime.jsx(ConditionalWrapper, { condition: hasHref, wrapper: linkWrapper, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourceCardItem_module_default.cardIconTitle, children: [
1286
+ /* @__PURE__ */ jsxRuntime.jsx(ResourceIcon, { image: item.image, type: item.type }),
1287
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourceCardItem_module_default.cardTitle, children: item.title })
1288
+ ] }) }),
1289
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourceCardItem_module_default.cardMeta, children: [
1290
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourceCardItem_module_default.cardDate, children: item.date }),
1291
+ item.hasNotification && /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourceCardItem_module_default.notificationDot, "aria-label": "New" })
1292
+ ] })
1293
+ ] }) });
1294
+ }
1295
+ return /* @__PURE__ */ jsxRuntime.jsxs("article", { className: ResourceCardItem_module_default.cardList, children: [
1296
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourceCardItem_module_default.cardListLeft, children: [
1297
+ item.hasNotification && /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourceCardItem_module_default.notificationDot, "aria-label": "New" }),
1298
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourceCardItem_module_default.cardDate, children: item.date })
1299
+ ] }),
1300
+ /* @__PURE__ */ jsxRuntime.jsx(ConditionalWrapper, { condition: hasHref, wrapper: linkWrapper, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourceCardItem_module_default.cardListRight, children: [
1301
+ /* @__PURE__ */ jsxRuntime.jsx(ResourceIcon, { image: item.image, type: item.type }),
1302
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourceCardItem_module_default.cardTitle, children: item.title })
1303
+ ] }) })
1304
+ ] });
1305
+ };
1306
+
1307
+ // src/components/Sidebar/Sidebar.module.scss
1308
+ var Sidebar_module_default = {
1309
+ sidebar: "Sidebar_module_sidebar",
1310
+ sidebarItem: "Sidebar_module_sidebarItem",
1311
+ active: "Sidebar_module_active",
1312
+ sidebarMobile: "Sidebar_module_sidebarMobile",
1313
+ hamburger: "Sidebar_module_hamburger",
1314
+ notificationDot: "Sidebar_module_notificationDot"
1315
+ };
1316
+ var Sidebar = ({
1317
+ categories,
1318
+ isMobile,
1319
+ onToggle,
1320
+ selectedIndex,
1321
+ onSelect
1322
+ }) => {
1323
+ if (isMobile) {
1324
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: Sidebar_module_default.sidebarMobile, children: /* @__PURE__ */ jsxRuntime.jsx(
1325
+ "button",
1326
+ {
1327
+ type: "button",
1328
+ className: Sidebar_module_default.hamburger,
1329
+ "aria-label": "Open categories",
1330
+ onClick: onToggle,
1331
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "menuBlack", size: 20, "aria-hidden": "true" })
1332
+ }
1333
+ ) });
1334
+ }
1335
+ return /* @__PURE__ */ jsxRuntime.jsx("nav", { className: Sidebar_module_default.sidebar, "aria-label": "Resource categories", children: /* @__PURE__ */ jsxRuntime.jsx("ul", { children: categories.map((cat, i) => {
1336
+ var _a;
1337
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1338
+ "li",
1339
+ {
1340
+ className: clsx25__default.default(Sidebar_module_default.sidebarItem, i === selectedIndex && Sidebar_module_default.active),
1341
+ role: "button",
1342
+ tabIndex: 0,
1343
+ "aria-pressed": i === selectedIndex,
1344
+ onClick: () => onSelect(i),
1345
+ onKeyDown: (e) => {
1346
+ if (e.key === "Enter" || e.key === " ") {
1347
+ e.preventDefault();
1348
+ onSelect(i);
1349
+ }
1350
+ },
1351
+ children: [
1352
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: cat.label }),
1353
+ cat.hasNotification && /* @__PURE__ */ jsxRuntime.jsx("span", { className: Sidebar_module_default.notificationDot, "aria-label": "New" })
1354
+ ]
1355
+ },
1356
+ (_a = cat.label) != null ? _a : i
1357
+ );
1358
+ }) }) });
1359
+ };
1360
+
987
1361
  // src/components/LogoBar/LogoBar.module.scss
988
1362
  var LogoBar_module_default = {
989
1363
  logoBar: "LogoBar_module_logoBar",
@@ -993,7 +1367,7 @@ var LogoBar_module_default = {
993
1367
  };
994
1368
  var LogoBar = ({ className, items }) => {
995
1369
  if (!items || items.length === 0) return null;
996
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(LogoBar_module_default.logoBar, className), children: items.map((item, key) => {
1370
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__default.default(LogoBar_module_default.logoBar, className), children: items.map((item, key) => {
997
1371
  return /* @__PURE__ */ jsxRuntime.jsx(Anchor, { href: item.url, isExternal: item.isExternal, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: LogoBar_module_default.logoWrapper, children: [
998
1372
  item.logo && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: LogoBar_module_default.logo }, item.logo)),
999
1373
  item.hoverLogo && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: LogoBar_module_default.logoHover }, item.hoverLogo))
@@ -1079,13 +1453,13 @@ var CardCollection = ({
1079
1453
  Container,
1080
1454
  {
1081
1455
  ref: container,
1082
- className: clsx23__default.default(CardCollection_module_default["card-collection"], CardCollection_module_default[variant], className),
1456
+ className: clsx25__default.default(CardCollection_module_default["card-collection"], CardCollection_module_default[variant], className),
1083
1457
  children: [
1084
1458
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: CardCollection_module_default.content, children: [
1085
1459
  titleNode && /* @__PURE__ */ jsxRuntime.jsx("h2", { children: titleNode }),
1086
1460
  subtitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "subheading", children: subtitleNode })
1087
1461
  ] }),
1088
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: CardCollection_module_default.wrapper, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx23__default.default(CardCollection_module_default.cardWrapper, { [CardCollection_module_default["is-expanded"]]: isExpanded }), children: [
1462
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: CardCollection_module_default.wrapper, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx25__default.default(CardCollection_module_default.cardWrapper, { [CardCollection_module_default["is-expanded"]]: isExpanded }), children: [
1089
1463
  visibleCards.map((card, key) => /* @__PURE__ */ jsxRuntime.jsx(Card2, __spreadValues({ className: CardCollection_module_default.card, variant: theme }, card), key)),
1090
1464
  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(
1091
1465
  Card2,
@@ -1186,7 +1560,7 @@ var ContactModule = ({
1186
1560
  },
1187
1561
  { scope: containerRef, dependencies: [blurred, animateBlur] }
1188
1562
  );
1189
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: containerRef, className: clsx23__default.default(ContactModule_module_default["contact-module"], className), children: [
1563
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: containerRef, className: clsx25__default.default(ContactModule_module_default["contact-module"], className), children: [
1190
1564
  blurred && /* @__PURE__ */ jsxRuntime.jsx(
1191
1565
  "div",
1192
1566
  {
@@ -1201,8 +1575,8 @@ var ContactModule = ({
1201
1575
  /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: ContactModule_module_default.container, children: [
1202
1576
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ContactModule_module_default.wrapper, children: [
1203
1577
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ContactModule_module_default.content, children: [
1204
- titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(ContactModule_module_default.title, "h1"), children: titleNode }),
1205
- subtitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(ContactModule_module_default.subtitle, "subheading"), children: subtitleNode })
1578
+ titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__default.default(ContactModule_module_default.title, "h1"), children: titleNode }),
1579
+ subtitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__default.default(ContactModule_module_default.subtitle, "subheading"), children: subtitleNode })
1206
1580
  ] }),
1207
1581
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: ContactModule_module_default["cta-wrapper"], children: ctas == null ? void 0 : ctas.map((cta, key) => /* @__PURE__ */ jsxRuntime.jsx(
1208
1582
  Button,
@@ -1263,7 +1637,7 @@ var Footer = ({
1263
1637
  disclaimer: FooterDisclaimer
1264
1638
  });
1265
1639
  const titleNode = (_a = slots.disclaimer) != null ? _a : disclaimer;
1266
- return /* @__PURE__ */ jsxRuntime.jsx("footer", { className: clsx23__default.default(Footer_module_default.footer, className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: Footer_module_default.container, children: [
1640
+ return /* @__PURE__ */ jsxRuntime.jsx("footer", { className: clsx25__default.default(Footer_module_default.footer, className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: Footer_module_default.container, children: [
1267
1641
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Footer_module_default.bottom, children: [
1268
1642
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Footer_module_default["bottom-left"], children: [
1269
1643
  supporters.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: Footer_module_default.supporters, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: Footer_module_default["supporters-logos"], children: supporters.map(
@@ -1279,7 +1653,7 @@ var Footer = ({
1279
1653
  index
1280
1654
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: Footer_module_default["supporter-link-primary"], children: /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({}, supporter.image)) }, index)
1281
1655
  ) }) }),
1282
- titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(Footer_module_default.disclaimer, "p"), children: titleNode }),
1656
+ titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__default.default(Footer_module_default.disclaimer, "p"), children: titleNode }),
1283
1657
  copyright && /* @__PURE__ */ jsxRuntime.jsx("p", { className: Footer_module_default.copyright, children: copyright })
1284
1658
  ] }),
1285
1659
  columns.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("nav", { className: Footer_module_default["bottom-right"], children: columns.map((column, colIndex) => /* @__PURE__ */ jsxRuntime.jsx("ul", { className: Footer_module_default["nav-list"], children: column.map((link) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -1345,7 +1719,7 @@ var HeroBanner = ({
1345
1719
  var _a, _b;
1346
1720
  const { is } = useViewPort_default();
1347
1721
  const isTabletBelow = is("tablet", "below");
1348
- const vPageHeroBanner = variant === "pageHeroBanner";
1722
+ const vMainHeroBanner = variant === "mainHeroBanner";
1349
1723
  const vBannerPodcast = variant === "bannerPodcast";
1350
1724
  const isTitleLogo = (logo == null ? void 0 : logo.variant) === "titleLogo";
1351
1725
  const GRADIENT_BANDS = [
@@ -1360,7 +1734,7 @@ var HeroBanner = ({
1360
1734
  });
1361
1735
  const titleNode = (_a = slots.title) != null ? _a : title;
1362
1736
  const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
1363
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx23__default.default(HeroBanner_module_default.heroBanner, HeroBanner_module_default[variant], className), children: [
1737
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx25__default.default(HeroBanner_module_default.heroBanner, HeroBanner_module_default[variant], className), children: [
1364
1738
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: HeroBanner_module_default.container, children: [
1365
1739
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: HeroBanner_module_default.banner, children: [
1366
1740
  (titleNode || subtitleNode) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: HeroBanner_module_default.text, children: [
@@ -1370,7 +1744,7 @@ var HeroBanner = ({
1370
1744
  {
1371
1745
  tag: "h2",
1372
1746
  promoteToH1,
1373
- className: clsx23__default.default(HeroBanner_module_default.title, vBannerPodcast ? "h3" : "h1"),
1747
+ className: clsx25__default.default(HeroBanner_module_default.title, vBannerPodcast ? "h3" : "h1"),
1374
1748
  children: titleNode
1375
1749
  }
1376
1750
  ),
@@ -1379,7 +1753,7 @@ var HeroBanner = ({
1379
1753
  {
1380
1754
  tag: "div",
1381
1755
  promoteToH1: promoteToH1 && !titleNode,
1382
- className: clsx23__default.default(HeroBanner_module_default.subtitle, "subheading"),
1756
+ className: clsx25__default.default(HeroBanner_module_default.subtitle, "subheading"),
1383
1757
  children: subtitleNode
1384
1758
  }
1385
1759
  )
@@ -1390,7 +1764,7 @@ var HeroBanner = ({
1390
1764
  {
1391
1765
  href: cta2.url,
1392
1766
  isExternal: cta2.isExternal,
1393
- variant: key % 2 ? vPageHeroBanner && !isTabletBelow ? "nofill" : "grey" : "primary",
1767
+ variant: key % 2 ? vMainHeroBanner && !isTabletBelow ? "grey" : "nofill" : "primary",
1394
1768
  fullWidth: isTabletBelow,
1395
1769
  logo: cta2.logo,
1396
1770
  children: cta2.label
@@ -1406,7 +1780,7 @@ var HeroBanner = ({
1406
1780
  __spreadValues({
1407
1781
  className: HeroBanner_module_default.brandsStrip,
1408
1782
  variant: "light",
1409
- size: isTabletBelow || vPageHeroBanner ? "small" : void 0
1783
+ size: isTabletBelow || vMainHeroBanner ? void 0 : "small"
1410
1784
  }, brands)
1411
1785
  ),
1412
1786
  backgroundImage && !vBannerPodcast && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: HeroBanner_module_default.backgroundImage }, backgroundImage))
@@ -1456,7 +1830,7 @@ var HeroBannerCarousel = ({
1456
1830
  const [swiperInstance, setSwiperInstance] = React62.useState(null);
1457
1831
  const [activeIndex, setActiveIndex] = React62.useState(0);
1458
1832
  if (!items.length) return null;
1459
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(HeroBannerCarousel_module_default.heroBannerCarousel, className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: HeroBannerCarousel_module_default.inner, children: [
1833
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__default.default(HeroBannerCarousel_module_default.heroBannerCarousel, className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: HeroBannerCarousel_module_default.inner, children: [
1460
1834
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: HeroBannerCarousel_module_default.swiperContainer, children: /* @__PURE__ */ jsxRuntime.jsx(
1461
1835
  react$1.Swiper,
1462
1836
  {
@@ -1503,7 +1877,7 @@ var HeroBannerCarousel = ({
1503
1877
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: HeroBannerCarousel_module_default.pagination, children: items.map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
1504
1878
  "button",
1505
1879
  {
1506
- className: clsx23__default.default(HeroBannerCarousel_module_default.dot, index === activeIndex && HeroBannerCarousel_module_default.dotActive),
1880
+ className: clsx25__default.default(HeroBannerCarousel_module_default.dot, index === activeIndex && HeroBannerCarousel_module_default.dotActive),
1507
1881
  onClick: () => swiperInstance == null ? void 0 : swiperInstance.slideTo(index),
1508
1882
  "aria-label": `Go to slide ${index + 1}`
1509
1883
  },
@@ -1583,7 +1957,7 @@ var AccordionItem = ({
1583
1957
  return /* @__PURE__ */ jsxRuntime.jsxs(
1584
1958
  "div",
1585
1959
  {
1586
- className: clsx23__default.default(
1960
+ className: clsx25__default.default(
1587
1961
  Accordion_module_default.accordionItem,
1588
1962
  {
1589
1963
  [Accordion_module_default.accordionItemOpen]: isOpen
@@ -1594,18 +1968,18 @@ var AccordionItem = ({
1594
1968
  /* @__PURE__ */ jsxRuntime.jsxs(
1595
1969
  "button",
1596
1970
  {
1597
- className: clsx23__default.default(Accordion_module_default.accordionHeader, {
1971
+ className: clsx25__default.default(Accordion_module_default.accordionHeader, {
1598
1972
  [Accordion_module_default.accordionHeaderOpen]: isOpen
1599
1973
  }),
1600
1974
  onClick: handleToggle,
1601
1975
  "aria-expanded": isOpen,
1602
1976
  "aria-label": `Toggle ${title}`,
1603
1977
  children: [
1604
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: Accordion_module_default.accordionHeaderLeft, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx23__default.default("body", Accordion_module_default.accordionTitle), children: title }) }),
1978
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: Accordion_module_default.accordionHeaderLeft, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx25__default.default("body", Accordion_module_default.accordionTitle), children: title }) }),
1605
1979
  /* @__PURE__ */ jsxRuntime.jsx(
1606
1980
  "span",
1607
1981
  {
1608
- className: clsx23__default.default(Accordion_module_default.accordionChevron, {
1982
+ className: clsx25__default.default(Accordion_module_default.accordionChevron, {
1609
1983
  [Accordion_module_default.accordionChevronOpen]: isOpen
1610
1984
  }),
1611
1985
  children: isOpen ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "filledChevronUpBlack", size: 40 }) : /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "circleChevronDown", size: 40 })
@@ -1657,7 +2031,7 @@ var Accordion = ({
1657
2031
  if (items.length === 0) {
1658
2032
  return null;
1659
2033
  }
1660
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(Accordion_module_default.accordion, className), children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
2034
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__default.default(Accordion_module_default.accordion, className), children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
1661
2035
  AccordionItem,
1662
2036
  {
1663
2037
  id: item.id,
@@ -1747,7 +2121,7 @@ var InternalBrandsTab = (props) => {
1747
2121
  };
1748
2122
  })) || [];
1749
2123
  }, [tabs]);
1750
- return /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx23__default.default(InternalBrandsTab_module_default.internalBrandsTab, className), children: [
2124
+ return /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx25__default.default(InternalBrandsTab_module_default.internalBrandsTab, className), children: [
1751
2125
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: InternalBrandsTab_module_default.textsContainer, children: [
1752
2126
  title && /* @__PURE__ */ jsxRuntime.jsx(Text, { tag: "h2", className: InternalBrandsTab_module_default.title, children: title }),
1753
2127
  subTitle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: InternalBrandsTab_module_default.subTitle, children: subTitle })
@@ -1763,7 +2137,7 @@ var InternalBrandsTab = (props) => {
1763
2137
  },
1764
2138
  index
1765
2139
  )) }),
1766
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(InternalBrandsTab_module_default.contentArea), children: ((_a = tabs == null ? void 0 : tabs[activeIndex]) == null ? void 0 : _a.topContent) && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2140
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__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: [
1767
2141
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: InternalBrandsTab_module_default.topContent, children: [
1768
2142
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1769
2143
  ((_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 }),
@@ -1854,17 +2228,17 @@ var MiniBanner = ({
1854
2228
  const pretitleNode = (_a = slots.pretitle) != null ? _a : pretitle;
1855
2229
  const titleNode = (_b = slots.title) != null ? _b : title;
1856
2230
  const subtitleNode = (_c = slots.subtitle) != null ? _c : subtitle;
1857
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx23__default.default(MiniBanner_module_default.minibanner, MiniBanner_module_default[variant], className), children: [
2231
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx25__default.default(MiniBanner_module_default.minibanner, MiniBanner_module_default[variant], className), children: [
1858
2232
  ((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)),
1859
2233
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: MiniBanner_module_default.wrapper, children: [
1860
2234
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: MiniBanner_module_default.textContainer, children: [
1861
2235
  (logo == null ? void 0 : logo.src) && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: MiniBanner_module_default.logo }, logo)),
1862
- pretitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(MiniBanner_module_default.pretitle, "small"), children: pretitleNode }),
1863
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: MiniBanner_module_default.headingWrapper, children: titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(MiniBanner_module_default.title, isMiniBannerTextLeft ? "h1" : "h4"), children: titleNode }) }),
2236
+ pretitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__default.default(MiniBanner_module_default.pretitle, "small"), children: pretitleNode }),
2237
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: MiniBanner_module_default.headingWrapper, children: titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__default.default(MiniBanner_module_default.title, isMiniBannerTextLeft ? "h1" : "h4"), children: titleNode }) }),
1864
2238
  subtitleNode && /* @__PURE__ */ jsxRuntime.jsx(
1865
2239
  "div",
1866
2240
  {
1867
- className: clsx23__default.default(MiniBanner_module_default.title, {
2241
+ className: clsx25__default.default(MiniBanner_module_default.title, {
1868
2242
  subheading: isMiniBannerNoBG || isMiniBannerTextLeft,
1869
2243
  h1: !isMiniBannerNoBG && !isMiniBannerTextLeft
1870
2244
  }),
@@ -1935,14 +2309,14 @@ var MiniSectionCta = ({
1935
2309
  return /* @__PURE__ */ jsxRuntime.jsx(
1936
2310
  "div",
1937
2311
  {
1938
- className: clsx23__default.default(MiniSectionCta_module_default.miniSectionCta, MiniSectionCta_module_default[variant], theme && MiniSectionCta_module_default[theme], className),
2312
+ className: clsx25__default.default(MiniSectionCta_module_default.miniSectionCta, MiniSectionCta_module_default[variant], theme && MiniSectionCta_module_default[theme], className),
1939
2313
  children: /* @__PURE__ */ jsxRuntime.jsx(Container, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: MiniSectionCta_module_default.wrapper, children: [
1940
2314
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: MiniSectionCta_module_default.col, children: [
1941
2315
  titleNode && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: variant === "BgColorBlack" || variant === "BgColorGrey" ? "h3" : "h2", children: titleNode }),
1942
2316
  subtitleNode && /* @__PURE__ */ jsxRuntime.jsx(
1943
2317
  "div",
1944
2318
  {
1945
- className: clsx23__default.default(MiniSectionCta_module_default.subtitle, variant === "infoCallout" ? "h4" : "subheading"),
2319
+ className: clsx25__default.default(MiniSectionCta_module_default.subtitle, variant === "infoCallout" ? "h4" : "subheading"),
1946
2320
  children: subtitleNode
1947
2321
  }
1948
2322
  )
@@ -2007,7 +2381,7 @@ var PracticePathCards = ({
2007
2381
  const titleNode = (_a = slots.title) != null ? _a : title;
2008
2382
  const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
2009
2383
  const footerNode = (_c = slots.footer) != null ? _c : footer;
2010
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(PracticePathCards_module_default["practice-path-cards"], className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: PracticePathCards_module_default.container, children: [
2384
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__default.default(PracticePathCards_module_default["practice-path-cards"], className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: PracticePathCards_module_default.container, children: [
2011
2385
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: PracticePathCards_module_default.wrapper, children: [
2012
2386
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: PracticePathCards_module_default.content, children: [
2013
2387
  titleNode && /* @__PURE__ */ jsxRuntime.jsx("h2", { children: titleNode }),
@@ -2061,8 +2435,8 @@ var Teaser5050With3Text = ({
2061
2435
  title: Teaser5050With3TextTitle
2062
2436
  });
2063
2437
  const titleNode = (_a = slots.title) != null ? _a : title;
2064
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(Teaser5050With3Text_module_default["teaser5050-3text"], Teaser5050With3Text_module_default[variant], className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: Teaser5050With3Text_module_default.container, children: [
2065
- titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(Teaser5050With3Text_module_default.title, "h3"), children: titleNode }),
2438
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__default.default(Teaser5050With3Text_module_default["teaser5050-3text"], Teaser5050With3Text_module_default[variant], className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: Teaser5050With3Text_module_default.container, children: [
2439
+ titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__default.default(Teaser5050With3Text_module_default.title, "h3"), children: titleNode }),
2066
2440
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Teaser5050With3Text_module_default.content, children: [
2067
2441
  /* @__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)) }),
2068
2442
  image && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadValues({ className: Teaser5050With3Text_module_default.image }, image))
@@ -2112,12 +2486,12 @@ var Teaser5050WithCta = ({
2112
2486
  return /* @__PURE__ */ jsxRuntime.jsx(
2113
2487
  "div",
2114
2488
  {
2115
- className: clsx23__default.default(Teaser5050WithCta_module_default.teaser5050, Teaser5050WithCta_module_default[variant], className),
2489
+ className: clsx25__default.default(Teaser5050WithCta_module_default.teaser5050, Teaser5050WithCta_module_default[variant], className),
2116
2490
  style: { backgroundColor: bgColor ? bgColor : "#ffffff" },
2117
2491
  children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: Teaser5050WithCta_module_default.container, children: [
2118
2492
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Teaser5050WithCta_module_default.wrapper, children: [
2119
2493
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Teaser5050WithCta_module_default.content, children: [
2120
- titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(Teaser5050WithCta_module_default.title, "h3"), children: titleNode }),
2494
+ titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__default.default(Teaser5050WithCta_module_default.title, "h3"), children: titleNode }),
2121
2495
  subtitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "subheading", children: subtitleNode })
2122
2496
  ] }),
2123
2497
  (ctas == null ? void 0 : ctas.length) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: Teaser5050WithCta_module_default.ctaWrapper, children: ctas.map((cta, key) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -2181,7 +2555,7 @@ var UpcomingEventCard = ({
2181
2555
  return /* @__PURE__ */ jsxRuntime.jsxs(
2182
2556
  "article",
2183
2557
  {
2184
- className: clsx23__default.default(
2558
+ className: clsx25__default.default(
2185
2559
  "card",
2186
2560
  UpcomingEventCard_module_default["event-card"],
2187
2561
  UpcomingEventCard_module_default[direction],
@@ -2189,26 +2563,26 @@ var UpcomingEventCard = ({
2189
2563
  className
2190
2564
  ),
2191
2565
  children: [
2192
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx23__default.default("card-content", UpcomingEventCard_module_default["event-card-content"]), children: [
2193
- showImage && image && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadProps(__spreadValues({}, image), { className: clsx23__default.default("card-image", UpcomingEventCard_module_default["event-card-image"]) })),
2566
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx25__default.default("card-content", UpcomingEventCard_module_default["event-card-content"]), children: [
2567
+ showImage && image && /* @__PURE__ */ jsxRuntime.jsx(Picture, __spreadProps(__spreadValues({}, image), { className: clsx25__default.default("card-image", UpcomingEventCard_module_default["event-card-image"]) })),
2194
2568
  /* @__PURE__ */ jsxRuntime.jsxs(
2195
2569
  "div",
2196
2570
  {
2197
- className: clsx23__default.default(
2571
+ className: clsx25__default.default(
2198
2572
  "card-text-content",
2199
2573
  UpcomingEventCard_module_default["event-card-text-content"],
2200
2574
  (!showImage || !hasImage) && UpcomingEventCard_module_default["event-card-show-image"]
2201
2575
  ),
2202
2576
  children: [
2203
2577
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: UpcomingEventCard_module_default.date, children: date }),
2204
- title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: clsx23__default.default("card-text-title"), children: title }),
2578
+ title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: clsx25__default.default("card-text-title"), children: title }),
2205
2579
  location && /* @__PURE__ */ jsxRuntime.jsx("span", { className: UpcomingEventCard_module_default.location, children: location }),
2206
- description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default("card-text-description", UpcomingEventCard_module_default.description), children: description }),
2580
+ description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__default.default("card-text-description", UpcomingEventCard_module_default.description), children: description }),
2207
2581
  cta && cta.url && /* @__PURE__ */ jsxRuntime.jsx(
2208
2582
  Button,
2209
2583
  {
2210
2584
  variant: "secondary",
2211
- className: clsx23__default.default(
2585
+ className: clsx25__default.default(
2212
2586
  "card-cta",
2213
2587
  UpcomingEventCard_module_default["event-card-cta"],
2214
2588
  !hasCTAandImage && UpcomingEventCard_module_default.hidden
@@ -2227,12 +2601,12 @@ var UpcomingEventCard = ({
2227
2601
  cta && cta.url && /* @__PURE__ */ jsxRuntime.jsx(
2228
2602
  "div",
2229
2603
  {
2230
- className: clsx23__default.default("card-footer", UpcomingEventCard_module_default["event-card-footer"], hasImage && UpcomingEventCard_module_default.hidden),
2604
+ className: clsx25__default.default("card-footer", UpcomingEventCard_module_default["event-card-footer"], hasImage && UpcomingEventCard_module_default.hidden),
2231
2605
  children: /* @__PURE__ */ jsxRuntime.jsx(
2232
2606
  Button,
2233
2607
  {
2234
2608
  variant: "secondary",
2235
- className: clsx23__default.default("card-cta", UpcomingEventCard_module_default["event-card-cta"]),
2609
+ className: clsx25__default.default("card-cta", UpcomingEventCard_module_default["event-card-cta"]),
2236
2610
  fullWidth: isBelowMobile,
2237
2611
  href: cta.url,
2238
2612
  icon: cta.icon,
@@ -2269,7 +2643,7 @@ var Carousel = (_a) => {
2269
2643
  },
2270
2644
  role: "region",
2271
2645
  "aria-label": ariaLabel,
2272
- className: clsx23__default.default(Carousel_module_default.carousel, className),
2646
+ className: clsx25__default.default(Carousel_module_default.carousel, className),
2273
2647
  spaceBetween: 0,
2274
2648
  slidesPerView: "auto",
2275
2649
  modules: [modules.FreeMode, modules.A11y],
@@ -2279,7 +2653,7 @@ var Carousel = (_a) => {
2279
2653
  children: slides.map((slide, index) => /* @__PURE__ */ jsxRuntime.jsx(
2280
2654
  react$1.SwiperSlide,
2281
2655
  {
2282
- className: clsx23__default.default(Carousel_module_default["carousel-item"], props.slideClass),
2656
+ className: clsx25__default.default(Carousel_module_default["carousel-item"], props.slideClass),
2283
2657
  children: slide
2284
2658
  },
2285
2659
  index
@@ -2329,13 +2703,13 @@ var EventList = ({
2329
2703
  return /* @__PURE__ */ jsxRuntime.jsx(
2330
2704
  "div",
2331
2705
  {
2332
- className: clsx23__default.default("event-list-module", EventList_module_default["event-list-module"], className),
2706
+ className: clsx25__default.default("event-list-module", EventList_module_default["event-list-module"], className),
2333
2707
  style: {
2334
2708
  backgroundColor
2335
2709
  },
2336
- children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx23__default.default(EventList_module_default["event-list-container"]), children: [
2710
+ children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx25__default.default(EventList_module_default["event-list-container"]), children: [
2337
2711
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: EventList_module_default["event-list-header-container"], children: [
2338
- titleNode && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: clsx23__default.default(EventList_module_default["event-list-title"]), children: titleNode }),
2712
+ titleNode && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: clsx25__default.default(EventList_module_default["event-list-title"]), children: titleNode }),
2339
2713
  cta && cta.url && /* @__PURE__ */ jsxRuntime.jsx(
2340
2714
  Button,
2341
2715
  {
@@ -2352,7 +2726,7 @@ var EventList = ({
2352
2726
  Carousel,
2353
2727
  {
2354
2728
  "aria-label": "Upcoming events",
2355
- wrapperClass: clsx23__default.default(EventList_module_default["carousel-wrapper"], EventList_module_default[variant]),
2729
+ wrapperClass: clsx25__default.default(EventList_module_default["carousel-wrapper"], EventList_module_default[variant]),
2356
2730
  slideClass: EventList_module_default["carousel-list-item"],
2357
2731
  spaceBetween: 16,
2358
2732
  slides: items.map((item) => {
@@ -2360,7 +2734,7 @@ var EventList = ({
2360
2734
  return /* @__PURE__ */ jsxRuntime.jsx(
2361
2735
  UpcomingEventCard,
2362
2736
  __spreadValues({
2363
- className: clsx23__default.default(EventList_module_default["event-card"]),
2737
+ className: clsx25__default.default(EventList_module_default["event-card"]),
2364
2738
  direction: "vertical",
2365
2739
  showImage: false
2366
2740
  }, item),
@@ -2373,17 +2747,17 @@ var EventList = ({
2373
2747
  "ul",
2374
2748
  {
2375
2749
  "aria-label": "Upcoming events",
2376
- className: clsx23__default.default(EventList_module_default["event-list-wrapper"], EventList_module_default["horizontal"], EventList_module_default[variant]),
2750
+ className: clsx25__default.default(EventList_module_default["event-list-wrapper"], EventList_module_default["horizontal"], EventList_module_default[variant]),
2377
2751
  children: items == null ? void 0 : items.map((item, index) => {
2378
2752
  var _a2, _b, _c;
2379
2753
  return /* @__PURE__ */ jsxRuntime.jsx(
2380
2754
  "li",
2381
2755
  {
2382
- className: clsx23__default.default(EventList_module_default["card-list-item"]),
2756
+ className: clsx25__default.default(EventList_module_default["card-list-item"]),
2383
2757
  children: /* @__PURE__ */ jsxRuntime.jsx(
2384
2758
  UpcomingEventCard,
2385
2759
  __spreadProps(__spreadValues({}, item), {
2386
- className: clsx23__default.default(EventList_module_default["card-item"]),
2760
+ className: clsx25__default.default(EventList_module_default["card-item"]),
2387
2761
  showImage: false,
2388
2762
  direction: "vertical"
2389
2763
  })
@@ -2398,7 +2772,7 @@ var EventList = ({
2398
2772
  "ul",
2399
2773
  {
2400
2774
  "aria-label": "Upcoming events",
2401
- className: clsx23__default.default(EventList_module_default["event-list-wrapper"], EventList_module_default[listDirection]),
2775
+ className: clsx25__default.default(EventList_module_default["event-list-wrapper"], EventList_module_default[listDirection]),
2402
2776
  children: items == null ? void 0 : items.map((item, index) => {
2403
2777
  var _a2, _b, _c;
2404
2778
  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);
@@ -2445,9 +2819,9 @@ var TextEvent = (props) => {
2445
2819
  });
2446
2820
  const titleNode = (_a = slots.title) != null ? _a : title;
2447
2821
  const richTextNode = (_b = slots.richText) != null ? _b : richText;
2448
- return /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx23__default.default(TextEvent_module_default.textEvent, className), children: [
2822
+ return /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx25__default.default(TextEvent_module_default.textEvent, className), children: [
2449
2823
  /* @__PURE__ */ jsxRuntime.jsx(Text, { tag: "h2", className: TextEvent_module_default.title, children: titleNode }),
2450
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(TextEvent_module_default.richText, TextEvent_module_default[variant != null ? variant : ""]), children: richTextNode })
2824
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__default.default(TextEvent_module_default.richText, TextEvent_module_default[variant != null ? variant : ""]), children: richTextNode })
2451
2825
  ] });
2452
2826
  };
2453
2827
 
@@ -2478,7 +2852,7 @@ var TextBody = (props) => {
2478
2852
  });
2479
2853
  const titleNode = (_a = slots.title) != null ? _a : title;
2480
2854
  const bodyNode = (_b = slots.body) != null ? _b : body;
2481
- return /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx23__default.default(TextBody_module_default.textBody, className), children: [
2855
+ return /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: clsx25__default.default(TextBody_module_default.textBody, className), children: [
2482
2856
  titleNode && /* @__PURE__ */ jsxRuntime.jsx(Text, { tag: "h2", className: TextBody_module_default.title, children: titleNode }),
2483
2857
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: TextBody_module_default.body, children: bodyNode })
2484
2858
  ] });
@@ -2521,7 +2895,7 @@ var TextCenterCtaInBottom = ({
2521
2895
  });
2522
2896
  const titleNode = (_a = slots.title) != null ? _a : title;
2523
2897
  const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
2524
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(TextCenterCtaInBottom_module_default.textCenterCta, className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: TextCenterCtaInBottom_module_default.container, children: [
2898
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__default.default(TextCenterCtaInBottom_module_default.textCenterCta, className), children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { className: TextCenterCtaInBottom_module_default.container, children: [
2525
2899
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: TextCenterCtaInBottom_module_default.content, children: [
2526
2900
  titleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: TextCenterCtaInBottom_module_default.title, children: titleNode }),
2527
2901
  subtitleNode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: TextCenterCtaInBottom_module_default.subtitle, children: subtitleNode })
@@ -2529,7 +2903,7 @@ var TextCenterCtaInBottom = ({
2529
2903
  !!(ctas == null ? void 0 : ctas.length) && /* @__PURE__ */ jsxRuntime.jsx(
2530
2904
  "div",
2531
2905
  {
2532
- className: clsx23__default.default(
2906
+ className: clsx25__default.default(
2533
2907
  TextCenterCtaInBottom_module_default.ctaWrapper,
2534
2908
  ctas.every((cta) => !cta.label && cta.logo) && TextCenterCtaInBottom_module_default.iconOnly
2535
2909
  ),
@@ -2559,290 +2933,21 @@ var TextCenterCtaInBottom2 = Object.assign(TextCenterCtaInBottom, {
2559
2933
  // src/widgets/ResourcesGridList/ResourcesGridList.module.scss
2560
2934
  var ResourcesGridList_module_default = {
2561
2935
  widget: "ResourcesGridList_module_widget",
2562
- filterBar: "ResourcesGridList_module_filterBar",
2563
- viewToggle: "ResourcesGridList_module_viewToggle",
2564
- filterActions: "ResourcesGridList_module_filterActions",
2565
- chip: "ResourcesGridList_module_chip",
2566
- active: "ResourcesGridList_module_active",
2567
- chipLabel: "ResourcesGridList_module_chipLabel",
2568
- dropdownWrapper: "ResourcesGridList_module_dropdownWrapper",
2569
- searchExpanded: "ResourcesGridList_module_searchExpanded",
2570
- searchExpand: "ResourcesGridList_module_searchExpand",
2571
- searchCollapsing: "ResourcesGridList_module_searchCollapsing",
2572
- searchCollapse: "ResourcesGridList_module_searchCollapse",
2573
- searchIconInner: "ResourcesGridList_module_searchIconInner",
2574
- searchInput: "ResourcesGridList_module_searchInput",
2575
- dropdownPanel: "ResourcesGridList_module_dropdownPanel",
2576
- dropdownOption: "ResourcesGridList_module_dropdownOption",
2577
- selected: "ResourcesGridList_module_selected",
2578
2936
  content: "ResourcesGridList_module_content",
2579
2937
  mobileSidebarOverlay: "ResourcesGridList_module_mobileSidebarOverlay",
2580
2938
  mobileSidebarOverlayOpen: "ResourcesGridList_module_mobileSidebarOverlayOpen",
2581
2939
  mobileCategoriesPanel: "ResourcesGridList_module_mobileCategoriesPanel",
2582
2940
  mobileCategoriesList: "ResourcesGridList_module_mobileCategoriesList",
2583
2941
  mobileSidebarItem: "ResourcesGridList_module_mobileSidebarItem",
2942
+ active: "ResourcesGridList_module_active",
2584
2943
  mobileSidebarCloseColumn: "ResourcesGridList_module_mobileSidebarCloseColumn",
2585
- sidebar: "ResourcesGridList_module_sidebar",
2586
- sidebarItem: "ResourcesGridList_module_sidebarItem",
2587
- sidebarMobile: "ResourcesGridList_module_sidebarMobile",
2588
2944
  hamburger: "ResourcesGridList_module_hamburger",
2589
2945
  cardsArea: "ResourcesGridList_module_cardsArea",
2590
2946
  grid: "ResourcesGridList_module_grid",
2591
2947
  list: "ResourcesGridList_module_list",
2592
- cardGrid: "ResourcesGridList_module_cardGrid",
2593
- cardBody: "ResourcesGridList_module_cardBody",
2594
- cardIconTitle: "ResourcesGridList_module_cardIconTitle",
2595
- cardTitle: "ResourcesGridList_module_cardTitle",
2596
- cardMeta: "ResourcesGridList_module_cardMeta",
2597
- cardDate: "ResourcesGridList_module_cardDate",
2598
- cardList: "ResourcesGridList_module_cardList",
2599
- cardListLeft: "ResourcesGridList_module_cardListLeft",
2600
- cardListRight: "ResourcesGridList_module_cardListRight",
2601
- notificationDot: "ResourcesGridList_module_notificationDot",
2602
- iconWrapper: "ResourcesGridList_module_iconWrapper",
2603
- pagination: "ResourcesGridList_module_pagination",
2604
- pageArrow: "ResourcesGridList_module_pageArrow",
2605
- pageDotActive: "ResourcesGridList_module_pageDotActive",
2606
- pageDot: "ResourcesGridList_module_pageDot"
2948
+ notificationDot: "ResourcesGridList_module_notificationDot"
2607
2949
  };
2608
- var FILTER_OPTIONS = [
2609
- { value: "link", label: "Link", icon: "externalLink" },
2610
- { value: "pdf", label: "PDF", icon: "pdf" }
2611
- ];
2612
- var SORT_OPTIONS = [
2613
- { value: "latest", label: "Latest" },
2614
- { value: "oldest", label: "Oldest" },
2615
- { value: "az", label: "A \u2192 Z" },
2616
- { value: "za", label: "Z \u2192 A" }
2617
- ];
2618
- function FilterBar({
2619
- view,
2620
- onViewChange,
2621
- isMobile,
2622
- filterValue,
2623
- onFilterChange,
2624
- sortValue,
2625
- onSortChange
2626
- }) {
2627
- const [openDropdown, setOpenDropdown] = React62.useState(null);
2628
- const [searchState, setSearchState] = React62.useState("closed");
2629
- const [searchQuery, setSearchQuery] = React62.useState("");
2630
- const filterRef = React62.useRef(null);
2631
- const sortRef = React62.useRef(null);
2632
- const searchInputRef = React62.useRef(null);
2633
- const closeSearch = () => {
2634
- setSearchState("closing");
2635
- setSearchQuery("");
2636
- };
2637
- React62.useEffect(() => {
2638
- const handleMouseDown = (e) => {
2639
- var _a, _b;
2640
- const target = e.target;
2641
- if (((_a = filterRef.current) == null ? void 0 : _a.contains(target)) || ((_b = sortRef.current) == null ? void 0 : _b.contains(target))) return;
2642
- setOpenDropdown(null);
2643
- };
2644
- document.addEventListener("mousedown", handleMouseDown);
2645
- return () => document.removeEventListener("mousedown", handleMouseDown);
2646
- }, []);
2647
- React62.useEffect(() => {
2648
- var _a;
2649
- if (searchState === "open") (_a = searchInputRef.current) == null ? void 0 : _a.focus();
2650
- }, [searchState]);
2651
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.filterBar, children: [
2652
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.viewToggle, children: [
2653
- /* @__PURE__ */ jsxRuntime.jsxs(
2654
- "button",
2655
- {
2656
- type: "button",
2657
- className: clsx23__default.default(ResourcesGridList_module_default.chip, view === "grid" && ResourcesGridList_module_default.active),
2658
- onClick: () => onViewChange("grid"),
2659
- "aria-pressed": view === "grid",
2660
- children: [
2661
- /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "grid", size: 20, "aria-hidden": "true" }),
2662
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.chipLabel, children: "Grid" })
2663
- ]
2664
- }
2665
- ),
2666
- /* @__PURE__ */ jsxRuntime.jsxs(
2667
- "button",
2668
- {
2669
- type: "button",
2670
- className: clsx23__default.default(ResourcesGridList_module_default.chip, view === "list" && ResourcesGridList_module_default.active),
2671
- onClick: () => onViewChange("list"),
2672
- "aria-pressed": view === "list",
2673
- children: [
2674
- /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "list", size: 20, "aria-hidden": "true" }),
2675
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.chipLabel, children: "List" })
2676
- ]
2677
- }
2678
- )
2679
- ] }),
2680
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.filterActions, children: [
2681
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.dropdownWrapper, ref: filterRef, children: [
2682
- /* @__PURE__ */ jsxRuntime.jsxs(
2683
- "button",
2684
- {
2685
- type: "button",
2686
- className: clsx23__default.default(ResourcesGridList_module_default.chip, filterValue !== "all" && ResourcesGridList_module_default.active),
2687
- onClick: () => setOpenDropdown(openDropdown === "filter" ? null : "filter"),
2688
- "aria-expanded": openDropdown === "filter",
2689
- children: [
2690
- /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "filter", size: 20, "aria-hidden": "true" }),
2691
- !isMobile && /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.chipLabel, children: "Filter" })
2692
- ]
2693
- }
2694
- ),
2695
- openDropdown === "filter" && /* @__PURE__ */ jsxRuntime.jsx("div", { className: ResourcesGridList_module_default.dropdownPanel, role: "listbox", "aria-label": "Filter by type", children: FILTER_OPTIONS.map((opt) => /* @__PURE__ */ jsxRuntime.jsxs(
2696
- "button",
2697
- {
2698
- type: "button",
2699
- role: "option",
2700
- "aria-selected": filterValue === opt.value,
2701
- className: clsx23__default.default(
2702
- ResourcesGridList_module_default.dropdownOption,
2703
- filterValue === opt.value && ResourcesGridList_module_default.selected
2704
- ),
2705
- onClick: () => {
2706
- onFilterChange(filterValue === opt.value ? "all" : opt.value);
2707
- setOpenDropdown(null);
2708
- },
2709
- children: [
2710
- /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: opt.icon, size: 20, "aria-hidden": "true" }),
2711
- opt.label
2712
- ]
2713
- },
2714
- opt.value
2715
- )) })
2716
- ] }),
2717
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.dropdownWrapper, ref: sortRef, children: [
2718
- /* @__PURE__ */ jsxRuntime.jsxs(
2719
- "button",
2720
- {
2721
- type: "button",
2722
- className: ResourcesGridList_module_default.chip,
2723
- onClick: () => setOpenDropdown(openDropdown === "sort" ? null : "sort"),
2724
- "aria-expanded": openDropdown === "sort",
2725
- children: [
2726
- /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "internalFilter", size: 20, "aria-hidden": "true" }),
2727
- !isMobile && /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.chipLabel, children: "Sort" })
2728
- ]
2729
- }
2730
- ),
2731
- openDropdown === "sort" && /* @__PURE__ */ jsxRuntime.jsx("div", { className: ResourcesGridList_module_default.dropdownPanel, role: "listbox", "aria-label": "Sort by", children: SORT_OPTIONS.map((opt) => /* @__PURE__ */ jsxRuntime.jsx(
2732
- "button",
2733
- {
2734
- type: "button",
2735
- role: "option",
2736
- "aria-selected": sortValue === opt.value,
2737
- className: clsx23__default.default(
2738
- ResourcesGridList_module_default.dropdownOption,
2739
- sortValue === opt.value && ResourcesGridList_module_default.selected
2740
- ),
2741
- onClick: () => {
2742
- onSortChange(opt.value);
2743
- setOpenDropdown(null);
2744
- },
2745
- children: opt.label
2746
- },
2747
- opt.value
2748
- )) })
2749
- ] }),
2750
- searchState !== "closed" ? /* @__PURE__ */ jsxRuntime.jsxs(
2751
- "div",
2752
- {
2753
- className: clsx23__default.default(
2754
- ResourcesGridList_module_default.searchExpanded,
2755
- searchState === "closing" && ResourcesGridList_module_default.searchCollapsing
2756
- ),
2757
- onAnimationEnd: () => {
2758
- if (searchState === "closing") setSearchState("closed");
2759
- },
2760
- children: [
2761
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.searchIconInner, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "search", size: 20, "aria-hidden": "true" }) }),
2762
- /* @__PURE__ */ jsxRuntime.jsx(
2763
- "input",
2764
- {
2765
- ref: searchInputRef,
2766
- type: "text",
2767
- className: ResourcesGridList_module_default.searchInput,
2768
- placeholder: "Search\u2026",
2769
- value: searchQuery,
2770
- onChange: (e) => setSearchQuery(e.target.value),
2771
- onKeyDown: (e) => {
2772
- if (e.key === "Escape") closeSearch();
2773
- },
2774
- onBlur: closeSearch
2775
- }
2776
- )
2777
- ]
2778
- }
2779
- ) : /* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", className: ResourcesGridList_module_default.chip, onClick: () => setSearchState("open"), children: [
2780
- /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "search", size: 20, "aria-hidden": "true" }),
2781
- !isMobile && /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.chipLabel, children: "Search" })
2782
- ] })
2783
- ] })
2784
- ] });
2785
- }
2786
- var Sidebar = ({ categories, isMobile, onToggle }) => {
2787
- if (isMobile) {
2788
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: ResourcesGridList_module_default.sidebarMobile, children: /* @__PURE__ */ jsxRuntime.jsx(
2789
- "button",
2790
- {
2791
- type: "button",
2792
- className: ResourcesGridList_module_default.hamburger,
2793
- "aria-label": "Open categories",
2794
- onClick: onToggle,
2795
- children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "menuBlack", size: 20, "aria-hidden": "true" })
2796
- }
2797
- ) });
2798
- }
2799
- return /* @__PURE__ */ jsxRuntime.jsx("nav", { className: ResourcesGridList_module_default.sidebar, "aria-label": "Resource categories", children: /* @__PURE__ */ jsxRuntime.jsx("ul", { children: categories.map((cat, i) => {
2800
- var _a;
2801
- return /* @__PURE__ */ jsxRuntime.jsxs(
2802
- "li",
2803
- {
2804
- className: clsx23__default.default(ResourcesGridList_module_default.sidebarItem, cat.active && ResourcesGridList_module_default.active),
2805
- children: [
2806
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: cat.label }),
2807
- cat.hasNotification && /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.notificationDot, "aria-label": "New" })
2808
- ]
2809
- },
2810
- (_a = cat.label) != null ? _a : i
2811
- );
2812
- }) }) });
2813
- };
2814
- var ResourceIcon = ({ type }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: ResourcesGridList_module_default.iconWrapper, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: type === "pdf" ? "pdf" : "externalLink", size: 32, "aria-hidden": "true" }) });
2815
- var ResourceCardItem = ({ item, view }) => {
2816
- if (view === "grid") {
2817
- return /* @__PURE__ */ jsxRuntime.jsx("article", { className: ResourcesGridList_module_default.cardGrid, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.cardBody, children: [
2818
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.cardIconTitle, children: [
2819
- /* @__PURE__ */ jsxRuntime.jsx(ResourceIcon, { type: item.type }),
2820
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.cardTitle, children: item.title })
2821
- ] }),
2822
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.cardMeta, children: [
2823
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.cardDate, children: item.date }),
2824
- item.hasNotification && /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.notificationDot, "aria-label": "New" })
2825
- ] })
2826
- ] }) });
2827
- }
2828
- return /* @__PURE__ */ jsxRuntime.jsxs("article", { className: ResourcesGridList_module_default.cardList, children: [
2829
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.cardListLeft, children: [
2830
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.cardDate, children: item.date }),
2831
- item.hasNotification && /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.notificationDot, "aria-label": "New" })
2832
- ] }),
2833
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.cardListRight, children: [
2834
- /* @__PURE__ */ jsxRuntime.jsx(ResourceIcon, { type: item.type }),
2835
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.cardTitle, children: item.title })
2836
- ] })
2837
- ] });
2838
- };
2839
- var Pagination3 = () => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.pagination, "aria-label": "Pagination", children: [
2840
- /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: ResourcesGridList_module_default.pageArrow, "aria-label": "Previous page", children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "chevronLeftBlack", size: 32, "aria-hidden": "true" }) }),
2841
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.pageDotActive, "aria-current": "page" }),
2842
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.pageDot }),
2843
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.pageDot }),
2844
- /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: ResourcesGridList_module_default.pageArrow, "aria-label": "Next page", children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { type: "chevronRightBlack", size: 32, "aria-hidden": "true" }) })
2845
- ] });
2950
+ var ITEMS_PER_PAGE = 12;
2846
2951
  var ResourcesGridList = ({
2847
2952
  className,
2848
2953
  items = [],
@@ -2851,20 +2956,52 @@ var ResourcesGridList = ({
2851
2956
  defaultFilter = "all",
2852
2957
  defaultSort = "latest"
2853
2958
  }) => {
2959
+ var _a;
2854
2960
  const [view, setView] = React62.useState(defaultView);
2855
2961
  const [isSidebarOpen, setIsSidebarOpen] = React62.useState(false);
2856
2962
  const [filterValue, setFilterValue] = React62.useState(defaultFilter);
2857
2963
  const [sortValue, setSortValue] = React62.useState(defaultSort);
2964
+ const [searchQuery, setSearchQuery] = React62.useState("");
2965
+ const [currentPage, setCurrentPage] = React62.useState(1);
2966
+ const [selectedCategory, setSelectedCategory] = React62.useState(() => {
2967
+ const activeIndex = categories.findIndex((cat) => cat.active);
2968
+ return activeIndex === -1 ? 0 : activeIndex;
2969
+ });
2858
2970
  const { is } = useViewPort_default();
2859
2971
  const isMobile = is("tablet", "below");
2860
- const displayedItems = [...items].filter((item) => filterValue === "all" || item.type === filterValue).sort((a, b) => {
2972
+ const selectedValue = (_a = categories[selectedCategory]) == null ? void 0 : _a.value;
2973
+ const handleSelectCategory = (index) => {
2974
+ setSelectedCategory(index);
2975
+ setCurrentPage(1);
2976
+ if (isMobile) setIsSidebarOpen(false);
2977
+ };
2978
+ const handleFilterChange = (value) => {
2979
+ setFilterValue(value);
2980
+ setCurrentPage(1);
2981
+ };
2982
+ const handleSortChange = (value) => {
2983
+ setSortValue(value);
2984
+ setCurrentPage(1);
2985
+ };
2986
+ const handleSearchChange = (value) => {
2987
+ setSearchQuery(value);
2988
+ setCurrentPage(1);
2989
+ };
2990
+ const displayedItems = [...items].filter((item) => filterValue === "all" || item.type === filterValue).filter((item) => selectedValue == null || item.category === selectedValue).filter((item) => {
2991
+ const q = searchQuery.trim().toLowerCase();
2992
+ return q === "" || item.title.toLowerCase().includes(q);
2993
+ }).sort((a, b) => {
2861
2994
  if (sortValue === "latest") return new Date(b.date).getTime() - new Date(a.date).getTime();
2862
2995
  if (sortValue === "oldest") return new Date(a.date).getTime() - new Date(b.date).getTime();
2863
2996
  if (sortValue === "az") return a.title.localeCompare(b.title);
2864
2997
  if (sortValue === "za") return b.title.localeCompare(a.title);
2865
2998
  return 0;
2866
2999
  });
2867
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx23__default.default(ResourcesGridList_module_default.widget, className), children: [
3000
+ const totalPages = Math.max(1, Math.ceil(displayedItems.length / ITEMS_PER_PAGE));
3001
+ const safeCurrentPage = Math.min(currentPage, totalPages);
3002
+ const pageStart = (safeCurrentPage - 1) * ITEMS_PER_PAGE;
3003
+ const paginatedItems = displayedItems.slice(pageStart, pageStart + ITEMS_PER_PAGE);
3004
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx25__default.default(ResourcesGridList_module_default.widget, className), children: [
2868
3005
  /* @__PURE__ */ jsxRuntime.jsx(
2869
3006
  FilterBar,
2870
3007
  {
@@ -2872,33 +3009,48 @@ var ResourcesGridList = ({
2872
3009
  onViewChange: setView,
2873
3010
  isMobile,
2874
3011
  filterValue,
2875
- onFilterChange: setFilterValue,
3012
+ onFilterChange: handleFilterChange,
2876
3013
  sortValue,
2877
- onSortChange: setSortValue
3014
+ onSortChange: handleSortChange,
3015
+ searchValue: searchQuery,
3016
+ onSearchChange: handleSearchChange
2878
3017
  }
2879
3018
  ),
2880
3019
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ResourcesGridList_module_default.content, children: [
2881
3020
  isMobile && /* @__PURE__ */ jsxRuntime.jsxs(
2882
3021
  "div",
2883
3022
  {
2884
- className: clsx23__default.default(
3023
+ className: clsx25__default.default(
2885
3024
  ResourcesGridList_module_default.mobileSidebarOverlay,
2886
3025
  isSidebarOpen && ResourcesGridList_module_default.mobileSidebarOverlayOpen
2887
3026
  ),
2888
3027
  "aria-hidden": !isSidebarOpen,
2889
3028
  children: [
2890
3029
  /* @__PURE__ */ jsxRuntime.jsx("nav", { className: ResourcesGridList_module_default.mobileCategoriesPanel, "aria-label": "Resource categories", children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: ResourcesGridList_module_default.mobileCategoriesList, children: categories.map((cat, i) => {
2891
- var _a;
3030
+ var _a2;
2892
3031
  return /* @__PURE__ */ jsxRuntime.jsxs(
2893
3032
  "li",
2894
3033
  {
2895
- className: clsx23__default.default(ResourcesGridList_module_default.mobileSidebarItem, cat.active && ResourcesGridList_module_default.active),
3034
+ className: clsx25__default.default(
3035
+ ResourcesGridList_module_default.mobileSidebarItem,
3036
+ i === selectedCategory && ResourcesGridList_module_default.active
3037
+ ),
3038
+ role: "button",
3039
+ tabIndex: 0,
3040
+ "aria-pressed": i === selectedCategory,
3041
+ onClick: () => handleSelectCategory(i),
3042
+ onKeyDown: (e) => {
3043
+ if (e.key === "Enter" || e.key === " ") {
3044
+ e.preventDefault();
3045
+ handleSelectCategory(i);
3046
+ }
3047
+ },
2896
3048
  children: [
2897
3049
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: cat.label }),
2898
3050
  cat.hasNotification && /* @__PURE__ */ jsxRuntime.jsx("span", { className: ResourcesGridList_module_default.notificationDot, "aria-label": "New" })
2899
3051
  ]
2900
3052
  },
2901
- (_a = cat.label) != null ? _a : i
3053
+ (_a2 = cat.label) != null ? _a2 : i
2902
3054
  );
2903
3055
  }) }) }),
2904
3056
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: ResourcesGridList_module_default.mobileSidebarCloseColumn, children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -2919,15 +3071,26 @@ var ResourcesGridList = ({
2919
3071
  {
2920
3072
  categories,
2921
3073
  isMobile,
2922
- onToggle: () => setIsSidebarOpen(true)
3074
+ onToggle: () => setIsSidebarOpen(true),
3075
+ selectedIndex: selectedCategory,
3076
+ onSelect: handleSelectCategory
2923
3077
  }
2924
3078
  ),
2925
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx23__default.default(ResourcesGridList_module_default.cardsArea, ResourcesGridList_module_default[view]), children: displayedItems.map((item, i) => {
2926
- var _a;
2927
- return /* @__PURE__ */ jsxRuntime.jsx(ResourceCardItem, { item, view }, (_a = item.title) != null ? _a : i);
3079
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx25__default.default(ResourcesGridList_module_default.cardsArea, ResourcesGridList_module_default[view]), children: paginatedItems.map((item, i) => {
3080
+ var _a2;
3081
+ return /* @__PURE__ */ jsxRuntime.jsx(ResourceCardItem, { item, view }, (_a2 = item.title) != null ? _a2 : i);
2928
3082
  }) })
2929
3083
  ] }),
2930
- /* @__PURE__ */ jsxRuntime.jsx(Pagination3, {})
3084
+ totalPages > 1 && /* @__PURE__ */ jsxRuntime.jsx(
3085
+ Pagination,
3086
+ {
3087
+ currentPage: safeCurrentPage,
3088
+ totalPages,
3089
+ loop: false,
3090
+ onPageChange: setCurrentPage
3091
+ },
3092
+ `${selectedCategory}-${filterValue}-${sortValue}-${searchQuery}`
3093
+ )
2931
3094
  ] });
2932
3095
  };
2933
3096
  function useIntersectionObserver({
@@ -2969,6 +3132,7 @@ exports.ContactModule = ContactModule2;
2969
3132
  exports.Container = Container;
2970
3133
  exports.CountingCard = CountingCard2;
2971
3134
  exports.EventList = EventList2;
3135
+ exports.FilterBar = FilterBar;
2972
3136
  exports.Footer = Footer;
2973
3137
  exports.HeroBanner = HeroBanner2;
2974
3138
  exports.HeroBannerCarousel = HeroBannerCarousel;
@@ -2982,7 +3146,9 @@ exports.Pagination = Pagination;
2982
3146
  exports.Picture = Picture;
2983
3147
  exports.PracticeCard = PracticeCard;
2984
3148
  exports.PracticePathCards = PracticePathCards2;
3149
+ exports.ResourceCardItem = ResourceCardItem;
2985
3150
  exports.ResourcesGridList = ResourcesGridList;
3151
+ exports.Sidebar = Sidebar;
2986
3152
  exports.Teaser5050With3Text = Teaser5050With3Text2;
2987
3153
  exports.Teaser5050WithCta = Teaser5050WithCta2;
2988
3154
  exports.TextBody = TextBody2;