@ilo-org/react 0.14.1 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/lib/cjs/components/Cards/CardGroup/CardGroup.js +7 -4
  2. package/lib/cjs/components/Cards/CardGroup/index.js +9 -8
  3. package/lib/cjs/components/Cards/DetailCard/DetailCard.js +2 -2
  4. package/lib/cjs/components/Cards/FactlistCard/FactListCard.js +2 -2
  5. package/lib/cjs/components/Cards/FeatureCard/FeatureCard.js +2 -2
  6. package/lib/cjs/components/Cards/MultilinkCard/MultiLinkCard.js +2 -2
  7. package/lib/cjs/components/Cards/PromoCard/PromoCard.js +2 -2
  8. package/lib/cjs/components/Cards/StatCard/StatCard.js +2 -2
  9. package/lib/cjs/components/Cards/TextCard/TextCard.js +2 -2
  10. package/lib/cjs/components/LogoGrid/LogoGrid.js +1 -1
  11. package/lib/cjs/components/Navigation/Navigation.js +34 -8
  12. package/lib/cjs/components/SocialMedia/SocialMedia.js +1 -1
  13. package/lib/cjs/hooks/index.js +0 -2
  14. package/lib/esm/components/Cards/CardGroup/CardGroup.js +7 -4
  15. package/lib/esm/components/Cards/CardGroup/index.js +9 -8
  16. package/lib/esm/components/Cards/DetailCard/DetailCard.js +2 -2
  17. package/lib/esm/components/Cards/FactlistCard/FactListCard.js +2 -2
  18. package/lib/esm/components/Cards/FeatureCard/FeatureCard.js +2 -2
  19. package/lib/esm/components/Cards/MultilinkCard/MultiLinkCard.js +2 -2
  20. package/lib/esm/components/Cards/PromoCard/PromoCard.js +2 -2
  21. package/lib/esm/components/Cards/StatCard/StatCard.js +2 -2
  22. package/lib/esm/components/Cards/TextCard/TextCard.js +2 -2
  23. package/lib/esm/components/LogoGrid/LogoGrid.js +1 -1
  24. package/lib/esm/components/Navigation/Navigation.js +35 -9
  25. package/lib/esm/components/SocialMedia/SocialMedia.js +1 -1
  26. package/lib/esm/hooks/index.js +0 -1
  27. package/lib/styles/components/accordion.css +1 -0
  28. package/lib/styles/components/breadcrumb.css +1 -0
  29. package/lib/styles/components/button.css +1 -0
  30. package/lib/styles/components/callout.css +1 -0
  31. package/lib/styles/components/card.css +1 -0
  32. package/lib/styles/components/cardgroup.css +1 -0
  33. package/lib/styles/components/checkbox.css +1 -0
  34. package/lib/styles/components/container.css +1 -0
  35. package/lib/styles/components/contextmenu.css +1 -0
  36. package/lib/styles/components/credit.css +1 -0
  37. package/lib/styles/components/datacard.css +1 -0
  38. package/lib/styles/components/datepicker.css +1 -0
  39. package/lib/styles/components/detailcard.css +1 -0
  40. package/lib/styles/components/dropdown.css +1 -0
  41. package/lib/styles/components/empty.css +1 -0
  42. package/lib/styles/components/factlistcard.css +1 -0
  43. package/lib/styles/components/featurecard.css +1 -0
  44. package/lib/styles/components/fieldset.css +1 -0
  45. package/lib/styles/components/file-upload.css +1 -0
  46. package/lib/styles/components/footer.css +1 -0
  47. package/lib/styles/components/form.css +1 -0
  48. package/lib/styles/components/formcontrol.css +1 -0
  49. package/lib/styles/components/heading.css +1 -0
  50. package/lib/styles/components/hero.css +1 -0
  51. package/lib/styles/components/herocard.css +1 -0
  52. package/lib/styles/components/icon.css +1 -0
  53. package/lib/styles/components/image.css +1 -0
  54. package/lib/styles/components/input.css +1 -0
  55. package/lib/styles/components/link.css +1 -0
  56. package/lib/styles/components/linklist.css +1 -0
  57. package/lib/styles/components/list.css +1 -0
  58. package/lib/styles/components/loading.css +1 -0
  59. package/lib/styles/components/logo.css +1 -0
  60. package/lib/styles/components/logogrid.css +1 -0
  61. package/lib/styles/components/modal.css +1 -0
  62. package/lib/styles/components/multilinkcard.css +1 -0
  63. package/lib/styles/components/navigation.css +1 -0
  64. package/lib/styles/components/notification.css +1 -0
  65. package/lib/styles/components/pagination.css +1 -0
  66. package/lib/styles/components/profile.css +1 -0
  67. package/lib/styles/components/promocard.css +1 -0
  68. package/lib/styles/components/radio.css +1 -0
  69. package/lib/styles/components/readmore.css +1 -0
  70. package/lib/styles/components/richtext.css +1 -0
  71. package/lib/styles/components/searchfield.css +1 -0
  72. package/lib/styles/components/socialmedia.css +1 -0
  73. package/lib/styles/components/statcard.css +1 -0
  74. package/lib/styles/components/table.css +1 -0
  75. package/lib/styles/components/tableofcontents.css +1 -0
  76. package/lib/styles/components/tabs.css +1 -0
  77. package/lib/styles/components/tag.css +1 -0
  78. package/lib/styles/components/textarea.css +1 -0
  79. package/lib/styles/components/textcard.css +1 -0
  80. package/lib/styles/components/textinput.css +1 -0
  81. package/lib/styles/components/toggle.css +1 -0
  82. package/lib/styles/components/tooltip.css +1 -0
  83. package/lib/styles/components/video.css +1 -0
  84. package/lib/styles/global.css +2 -0
  85. package/lib/styles/index.css +9 -0
  86. package/lib/styles/monorepo.css +9 -0
  87. package/lib/types/react/src/components/Cards/CardGroup/CardGroup.props.d.ts +28 -2
  88. package/lib/types/react/src/components/Cards/DetailCard/DetailCard.props.d.ts +5 -1
  89. package/lib/types/react/src/components/Cards/FactlistCard/FactListCard.props.d.ts +5 -1
  90. package/lib/types/react/src/components/Cards/FeatureCard/FeatureCard.props.d.ts +5 -1
  91. package/lib/types/react/src/components/Cards/MultilinkCard/MultilinkCard.props.d.ts +5 -1
  92. package/lib/types/react/src/components/Cards/PromoCard/PromoCard.props.d.ts +5 -1
  93. package/lib/types/react/src/components/Cards/StatCard/StatCard.props.d.ts +8 -1
  94. package/lib/types/react/src/components/Cards/TextCard/TextCard.props.d.ts +5 -1
  95. package/lib/types/react/src/hooks/index.d.ts +0 -1
  96. package/lib/types/react/src/types/index.d.ts +1 -0
  97. package/package.json +8 -5
  98. package/lib/cjs/hooks/useVideoPlayer.js +0 -75
  99. package/lib/esm/hooks/useVideoPlayer.js +0 -73
  100. package/lib/types/react/src/hooks/useVideoPlayer.d.ts +0 -12
@@ -30,12 +30,15 @@ const cardMapper = {
30
30
  factlist: components_Cards_FactlistCard_FactListCard,
31
31
  data: components_Cards_DataCard_DataCard,
32
32
  };
33
- const CardGroup = ({ cards, cardCount, cta, type }) => {
34
- const Cards = cardMapper[type];
33
+ const CardGroup = ({ cards, titleLevel = "p", cardCount, cta, type, alignment, size, theme, collapsed = false, }) => {
34
+ const Card = cardMapper[type];
35
35
  const { prefix } = hooks_useGlobalSettings();
36
36
  const baseClass = `${prefix}--cardgroup`;
37
- const cardGroupClasses = classNames(baseClass, `${baseClass}__count__${cardCount}`);
38
- return (jsxRuntime.jsxs("div", Object.assign({ className: cardGroupClasses }, { children: [jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--inner` }, { children: cards && cards.map((card, index) => jsxRuntime.jsx(Cards, Object.assign({}, card), index)) })), cta && (jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--button-wrap` }, { children: jsxRuntime.jsx("a", Object.assign({ className: `${prefix}--button ${prefix}--button--medium ${prefix}--button--secondary`, href: cta.url }, { children: jsxRuntime.jsx("span", Object.assign({ className: "button__label" }, { children: cta.label })) })) })))] })));
37
+ const cardGroupClasses = classNames(baseClass, `${baseClass}__count__${cardCount}`, {
38
+ [`${baseClass}__collapsed`]: collapsed,
39
+ });
40
+ return (jsxRuntime.jsxs("div", Object.assign({ className: cardGroupClasses }, { children: [jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--inner` }, { children: cards &&
41
+ cards.map((card, index) => (jsxRuntime.jsx(Card, Object.assign({}, card, { size: size, theme: theme, alignment: alignment, titleLevel: titleLevel }), index))) })), cta && (jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--button-wrap` }, { children: jsxRuntime.jsx("a", Object.assign({ className: `${prefix}--button ${prefix}--button--medium ${prefix}--button--secondary`, href: cta.url }, { children: jsxRuntime.jsx("span", Object.assign({ className: "button__label" }, { children: cta.label })) })) })))] })));
39
42
  };
40
43
 
41
44
  module.exports = CardGroup;
@@ -90,6 +90,7 @@ const textCardGroup = {
90
90
  ],
91
91
  cardCount: "three",
92
92
  type: "text",
93
+ size: "narrow",
93
94
  cta: {
94
95
  label: "Discover our unique mission",
95
96
  url: "https://www.ilo.org",
@@ -135,6 +136,7 @@ const statCardGroup = {
135
136
  },
136
137
  ],
137
138
  cardCount: "three",
139
+ size: "narrow",
138
140
  type: "stat",
139
141
  cta: {
140
142
  label: "Discover our unique mission",
@@ -262,6 +264,7 @@ const multilinkCardGroup = {
262
264
  ],
263
265
  type: "multilink",
264
266
  cardCount: "three",
267
+ size: "standard",
265
268
  cta: {
266
269
  label: "Discover our unique mission",
267
270
  url: "https://www.ilo.org",
@@ -270,7 +273,6 @@ const multilinkCardGroup = {
270
273
  const promoCardGroup = {
271
274
  cards: [
272
275
  {
273
- size: "standard",
274
276
  title: "ILO welcomes first global agreement on working conditions",
275
277
  eyebrow: "Report",
276
278
  theme: "dark",
@@ -283,7 +285,6 @@ const promoCardGroup = {
283
285
  },
284
286
  },
285
287
  {
286
- size: "standard",
287
288
  title: "Renewable energy jobs hits 12.7 million globally",
288
289
  eyebrow: "High-level meeting",
289
290
  theme: "dark",
@@ -296,7 +297,6 @@ const promoCardGroup = {
296
297
  },
297
298
  },
298
299
  {
299
- size: "standard",
300
300
  title: "ILO welcomes G7 call to make a just transition",
301
301
  eyebrow: "Podcast",
302
302
  theme: "dark",
@@ -309,7 +309,6 @@ const promoCardGroup = {
309
309
  },
310
310
  },
311
311
  {
312
- size: "standard",
313
312
  title: "Telangana and Andhra Pradesh launch pre-departure handbook",
314
313
  eyebrow: "High-level meeting",
315
314
  theme: "dark",
@@ -324,6 +323,7 @@ const promoCardGroup = {
324
323
  ],
325
324
  type: "promo",
326
325
  cardCount: "three",
326
+ size: "standard",
327
327
  cta: {
328
328
  label: "Discover our unique mission",
329
329
  url: "https://www.ilo.org",
@@ -418,6 +418,7 @@ const featureCardGroup = {
418
418
  ],
419
419
  cardCount: "three",
420
420
  type: "feature",
421
+ size: "narrow",
421
422
  cta: {
422
423
  label: "Discover our unique mission",
423
424
  url: "https://www.ilo.org",
@@ -476,6 +477,7 @@ const detailCardGroup = {
476
477
  ],
477
478
  type: "detail",
478
479
  cardCount: "three",
480
+ size: "narrow",
479
481
  cta: {
480
482
  label: "Discover our unique mission",
481
483
  url: "https://www.ilo.org",
@@ -522,6 +524,7 @@ const factListCardGroup = {
522
524
  ],
523
525
  type: "factlist",
524
526
  cardCount: "three",
527
+ size: "narrow",
525
528
  cta: {
526
529
  label: "Discover our unique mission",
527
530
  url: "https://www.ilo.org",
@@ -530,7 +533,7 @@ const factListCardGroup = {
530
533
  const dataCardGroup = {
531
534
  cards: [
532
535
  {
533
- size: "standard",
536
+ size: "narrow",
534
537
  eyebrow: "Press release",
535
538
  image: "/small.jpg",
536
539
  columns: "one",
@@ -593,7 +596,6 @@ const dataCardGroup = {
593
596
  },
594
597
  },
595
598
  {
596
- size: "standard",
597
599
  eyebrow: "Report",
598
600
  image: "/small.jpg",
599
601
  columns: "one",
@@ -652,7 +654,6 @@ const dataCardGroup = {
652
654
  },
653
655
  },
654
656
  {
655
- size: "standard",
656
657
  eyebrow: "Meeting",
657
658
  image: "/small.jpg",
658
659
  columns: "one",
@@ -707,7 +708,6 @@ const dataCardGroup = {
707
708
  },
708
709
  },
709
710
  {
710
- size: "standard",
711
711
  eyebrow: "Meeting",
712
712
  image: "/small.jpg",
713
713
  columns: "one",
@@ -776,6 +776,7 @@ const dataCardGroup = {
776
776
  ],
777
777
  cardCount: "three",
778
778
  type: "data",
779
+ size: "narrow",
779
780
  cta: {
780
781
  label: "Discover our unique mission",
781
782
  url: "https://www.ilo.org",
@@ -7,14 +7,14 @@ require('tslib');
7
7
  require('react');
8
8
  require('../../../GlobalCtx-10114bdd.js');
9
9
 
10
- const DetailCard = ({ eyebrow, title, size = "narrow", intro, date, eventdetails, link, image, }) => {
10
+ const DetailCard = ({ eyebrow, title, size = "narrow", intro, date, eventdetails, link, image, titleLevel: TitleElement, }) => {
11
11
  const { prefix } = hooks_useGlobalSettings();
12
12
  const baseClass = `${prefix}--card`;
13
13
  const cardClasses = classNames(baseClass, `${baseClass}__type__detail`, {
14
14
  [`${baseClass}__action`]: link,
15
15
  [`${baseClass}__size__${size}`]: size,
16
16
  });
17
- return (jsxRuntime.jsxs("div", Object.assign({ className: cardClasses }, { children: [link && (jsxRuntime.jsx("a", Object.assign({ className: `${baseClass}--link`, href: link, title: title }, { children: jsxRuntime.jsx("span", Object.assign({ className: `${baseClass}--link--text` }, { children: title })) }))), jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--wrap` }, { children: [image && (jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--image--wrapper` }, { children: jsxRuntime.jsx("picture", { children: jsxRuntime.jsx("img", { className: `${baseClass}--picture`, src: image, alt: title }) }) }))), jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--content` }, { children: [eyebrow && jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--eyebrow` }, { children: eyebrow })), title && jsxRuntime.jsx("h5", Object.assign({ className: `${baseClass}--title` }, { children: title })), intro && jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--intro` }, { children: intro })), date && (jsxRuntime.jsx("time", Object.assign({ className: `${baseClass}--date`, dateTime: date.unix }, { children: date.human }))), eventdetails && (jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--date-extra` }, { children: eventdetails })))] }))] }))] })));
17
+ return (jsxRuntime.jsxs("div", Object.assign({ className: cardClasses }, { children: [link && (jsxRuntime.jsx("a", Object.assign({ className: `${baseClass}--link`, href: link, title: title }, { children: jsxRuntime.jsx("span", Object.assign({ className: `${baseClass}--link--text` }, { children: title })) }))), jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--wrap` }, { children: [image && (jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--image--wrapper` }, { children: jsxRuntime.jsx("picture", { children: jsxRuntime.jsx("img", { className: `${baseClass}--picture`, src: image, alt: title }) }) }))), jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--content` }, { children: [eyebrow && jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--eyebrow` }, { children: eyebrow })), title && TitleElement ? (jsxRuntime.jsx(TitleElement, Object.assign({ className: `${baseClass}--title` }, { children: title }))) : (jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--title` }, { children: title }))), intro && jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--intro` }, { children: intro })), date && (jsxRuntime.jsx("time", Object.assign({ className: `${baseClass}--date`, dateTime: date.unix }, { children: date.human }))), eventdetails && (jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--date-extra` }, { children: eventdetails })))] }))] }))] })));
18
18
  };
19
19
 
20
20
  module.exports = DetailCard;
@@ -9,14 +9,14 @@ require('tslib');
9
9
  require('react');
10
10
  require('../../../GlobalCtx-10114bdd.js');
11
11
 
12
- const FactlistCard = ({ title, theme = "narrow", size, list, }) => {
12
+ const FactlistCard = ({ title, theme, size = "narrow", list, titleLevel: TitleElement, }) => {
13
13
  const { prefix } = hooks_useGlobalSettings();
14
14
  const baseClass = `${prefix}--card`;
15
15
  const cardClasses = classNames(baseClass, `${baseClass}__type__factlist`, {
16
16
  [`${baseClass}__size__${size}`]: size,
17
17
  [`${baseClass}__theme__${theme}`]: theme,
18
18
  });
19
- return (jsxRuntime.jsx("div", Object.assign({ className: cardClasses }, { children: jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--wrap` }, { children: jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--content` }, { children: [title && jsxRuntime.jsx("h5", Object.assign({ className: `${baseClass}--title` }, { children: title })), list && (jsxRuntime.jsx(components_List_List, Object.assign({ alignment: "default", ordered: "unordered" }, { children: list.map((item, index) => (jsxRuntime.jsx(components_List_ListItem, Object.assign({ id: `list${index}` }, { children: jsxRuntime.jsx("p", { children: item }) })))) })))] })) })) })));
19
+ return (jsxRuntime.jsx("div", Object.assign({ className: cardClasses }, { children: jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--wrap` }, { children: jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--content` }, { children: [title && TitleElement ? (jsxRuntime.jsx(TitleElement, Object.assign({ className: `${baseClass}--title` }, { children: title }))) : (jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--title` }, { children: title }))), list && (jsxRuntime.jsx(components_List_List, Object.assign({ alignment: "default", ordered: "unordered" }, { children: list.map((item, index) => (jsxRuntime.jsx(components_List_ListItem, Object.assign({ id: `list${index}` }, { children: jsxRuntime.jsx("p", { children: item }) })))) })))] })) })) })));
20
20
  };
21
21
 
22
22
  module.exports = FactlistCard;
@@ -8,7 +8,7 @@ require('tslib');
8
8
  require('react');
9
9
  require('../../../GlobalCtx-10114bdd.js');
10
10
 
11
- const FeatureCard = ({ isvideo, eyebrow, title, theme, size = "narrow", date, link, linklist, image, }) => {
11
+ const FeatureCard = ({ isvideo, eyebrow, title, theme, size = "narrow", date, link, linklist, image, titleLevel: TitleElement, }) => {
12
12
  const { prefix } = hooks_useGlobalSettings();
13
13
  const baseClass = `${prefix}--card`;
14
14
  const cardClasses = classNames(baseClass, `${baseClass}__type__feature`, {
@@ -18,7 +18,7 @@ const FeatureCard = ({ isvideo, eyebrow, title, theme, size = "narrow", date, li
18
18
  [`${baseClass}__linklist`]: linklist,
19
19
  [`${baseClass}__theme__${theme}`]: theme,
20
20
  });
21
- return (jsxRuntime.jsxs("div", Object.assign({ className: cardClasses }, { children: [link && (jsxRuntime.jsx("a", Object.assign({ className: `${baseClass}--link`, href: link, title: title }, { children: jsxRuntime.jsx("span", Object.assign({ className: `${baseClass}--link--text` }, { children: title })) }))), jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--wrap` }, { children: [image && (jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--image--wrapper` }, { children: jsxRuntime.jsx("picture", { children: jsxRuntime.jsx("img", { className: `${baseClass}--picture`, src: image, alt: title }) }) }))), jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--content` }, { children: [eyebrow && jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--eyebrow` }, { children: eyebrow })), title && jsxRuntime.jsx("h5", Object.assign({ className: `${baseClass}--title` }, { children: title })), date && (jsxRuntime.jsx("time", Object.assign({ className: `${baseClass}--date`, dateTime: date.unix }, { children: date.human }))), linklist && (jsxRuntime.jsx(components_LinkList_LinkList, { headline: linklist.headline, linkgroup: linklist.linkgroup }))] }))] }))] })));
21
+ return (jsxRuntime.jsxs("div", Object.assign({ className: cardClasses }, { children: [link && (jsxRuntime.jsx("a", Object.assign({ className: `${baseClass}--link`, href: link, title: title }, { children: jsxRuntime.jsx("span", Object.assign({ className: `${baseClass}--link--text` }, { children: title })) }))), jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--wrap` }, { children: [image && (jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--image--wrapper` }, { children: jsxRuntime.jsx("picture", { children: jsxRuntime.jsx("img", { className: `${baseClass}--picture`, src: image, alt: title }) }) }))), jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--content` }, { children: [eyebrow && jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--eyebrow` }, { children: eyebrow })), title && TitleElement ? (jsxRuntime.jsx(TitleElement, Object.assign({ className: `${baseClass}--title` }, { children: title }))) : (jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--title` }, { children: title }))), date && (jsxRuntime.jsx("time", Object.assign({ className: `${baseClass}--date`, dateTime: date.unix }, { children: date.human }))), linklist && (jsxRuntime.jsx(components_LinkList_LinkList, { headline: linklist.headline, linkgroup: linklist.linkgroup }))] }))] }))] })));
22
22
  };
23
23
 
24
24
  module.exports = FeatureCard;
@@ -8,7 +8,7 @@ require('tslib');
8
8
  require('react');
9
9
  require('../../../GlobalCtx-10114bdd.js');
10
10
 
11
- const MultilinkCard = ({ isvideo, eyebrow, title, size = "narrow", alignment, intro, link, linklist, image, }) => {
11
+ const MultilinkCard = ({ isvideo, eyebrow, title, size = "standard", alignment, intro, link, linklist, image, titleLevel: TitleElement, }) => {
12
12
  const { prefix } = hooks_useGlobalSettings();
13
13
  const baseClass = `${prefix}--card`;
14
14
  const cardClasses = classNames(baseClass, `${baseClass}__type__multilink`, {
@@ -18,7 +18,7 @@ const MultilinkCard = ({ isvideo, eyebrow, title, size = "narrow", alignment, in
18
18
  [`${baseClass}__isvideo`]: isvideo,
19
19
  [`${baseClass}__linklist`]: linklist,
20
20
  });
21
- return (jsxRuntime.jsxs("div", Object.assign({ className: cardClasses }, { children: [link && (jsxRuntime.jsx("a", Object.assign({ className: `${baseClass}--link`, href: link, title: title }, { children: jsxRuntime.jsx("span", Object.assign({ className: `${baseClass}--link--text` }, { children: title })) }))), jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--wrap` }, { children: [image && (jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--image--wrapper` }, { children: jsxRuntime.jsx("picture", { children: jsxRuntime.jsx("img", { className: `${baseClass}--picture`, src: image, alt: title }) }) }))), jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--content` }, { children: [eyebrow && jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--eyebrow` }, { children: eyebrow })), title && jsxRuntime.jsx("h5", Object.assign({ className: `${baseClass}--title` }, { children: title })), image && (jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--image--wrapper` }, { children: jsxRuntime.jsx("picture", { children: jsxRuntime.jsx("img", { className: `${baseClass}--picture`, src: image, alt: title }) }) }))), intro && jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--intro` }, { children: intro })), linklist && (jsxRuntime.jsx(components_LinkList_LinkList, { headline: linklist.headline, linkgroup: linklist.linkgroup }))] }))] }))] })));
21
+ return (jsxRuntime.jsxs("div", Object.assign({ className: cardClasses }, { children: [link && (jsxRuntime.jsx("a", Object.assign({ className: `${baseClass}--link`, href: link, title: title }, { children: jsxRuntime.jsx("span", Object.assign({ className: `${baseClass}--link--text` }, { children: title })) }))), jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--wrap` }, { children: [image && (jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--image--wrapper` }, { children: jsxRuntime.jsx("picture", { children: jsxRuntime.jsx("img", { className: `${baseClass}--picture`, src: image, alt: title }) }) }))), jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--content` }, { children: [eyebrow && jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--eyebrow` }, { children: eyebrow })), title && TitleElement ? (jsxRuntime.jsx(TitleElement, Object.assign({ className: `${baseClass}--title` }, { children: title }))) : (jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--title` }, { children: title }))), image && (jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--image--wrapper` }, { children: jsxRuntime.jsx("picture", { children: jsxRuntime.jsx("img", { className: `${baseClass}--picture`, src: image, alt: title }) }) }))), intro && jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--intro` }, { children: intro })), linklist && (jsxRuntime.jsx(components_LinkList_LinkList, { headline: linklist.headline, linkgroup: linklist.linkgroup }))] }))] }))] })));
22
22
  };
23
23
 
24
24
  module.exports = MultilinkCard;
@@ -7,7 +7,7 @@ require('tslib');
7
7
  require('react');
8
8
  require('../../../GlobalCtx-10114bdd.js');
9
9
 
10
- const PromoCard = ({ eyebrow, title, theme, size = "narrow", cornercut, intro, link, cta, }) => {
10
+ const PromoCard = ({ eyebrow, title, theme, size = "narrow", cornercut, intro, link, cta, titleLevel: TitleElement, }) => {
11
11
  const { prefix } = hooks_useGlobalSettings();
12
12
  const baseClass = `${prefix}--card`;
13
13
  const wrapperClass = classNames(`${baseClass}--wrapper`, `${baseClass}--wrapper__type__promo ${baseClass}--wrapper__type__promo__size__${size}`);
@@ -17,7 +17,7 @@ const PromoCard = ({ eyebrow, title, theme, size = "narrow", cornercut, intro, l
17
17
  [`${baseClass}__size__${size}`]: size,
18
18
  [`${baseClass}__theme__${theme}`]: theme,
19
19
  });
20
- return (jsxRuntime.jsx("div", Object.assign({ className: wrapperClass }, { children: jsxRuntime.jsxs("div", Object.assign({ className: cardClasses }, { children: [link && (jsxRuntime.jsx("a", Object.assign({ className: `${baseClass}--link`, href: link, title: title }, { children: jsxRuntime.jsx("span", Object.assign({ className: `${baseClass}--link--text` }, { children: title })) }))), jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--wrap` }, { children: jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--content` }, { children: [eyebrow && jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--eyebrow` }, { children: eyebrow })), title && jsxRuntime.jsx("h5", Object.assign({ className: `${baseClass}--title` }, { children: title })), intro && jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--intro` }, { children: intro })), cta && cta.label && (jsxRuntime.jsx("a", Object.assign({ className: `${baseClass}--cta ${prefix}--button ${prefix}--button--medium ${prefix}--button--primary`, href: cta.url }, { children: jsxRuntime.jsx("span", Object.assign({ className: "link__label" }, { children: cta.label })) })))] })) }))] })) })));
20
+ return (jsxRuntime.jsx("div", Object.assign({ className: wrapperClass }, { children: jsxRuntime.jsxs("div", Object.assign({ className: cardClasses }, { children: [link && (jsxRuntime.jsx("a", Object.assign({ className: `${baseClass}--link`, href: link, title: title }, { children: jsxRuntime.jsx("span", Object.assign({ className: `${baseClass}--link--text` }, { children: title })) }))), jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--wrap` }, { children: jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--content` }, { children: [eyebrow && jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--eyebrow` }, { children: eyebrow })), title && TitleElement ? (jsxRuntime.jsx(TitleElement, Object.assign({ className: `${baseClass}--title` }, { children: title }))) : (jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--title` }, { children: title }))), intro && jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--intro` }, { children: intro })), cta && cta.label && (jsxRuntime.jsx("a", Object.assign({ className: `${baseClass}--cta ${prefix}--button ${prefix}--button--medium ${prefix}--button--primary`, href: cta.url }, { children: jsxRuntime.jsx("span", Object.assign({ className: "link__label" }, { children: cta.label })) })))] })) }))] })) })));
21
21
  };
22
22
 
23
23
  module.exports = PromoCard;
@@ -8,14 +8,14 @@ require('tslib');
8
8
  require('react');
9
9
  require('../../../GlobalCtx-10114bdd.js');
10
10
 
11
- const StatCard = ({ title, color, size = "standard", intro, source, }) => {
11
+ const StatCard = ({ title, color, size = "standard", intro, source, titleLevel: TitleElement, }) => {
12
12
  const { prefix } = hooks_useGlobalSettings();
13
13
  const baseClass = `${prefix}--card`;
14
14
  const cardClasses = classNames(baseClass, `${baseClass}__type__stat`, {
15
15
  [`${baseClass}__color__${color}`]: color,
16
16
  [`${baseClass}__size__${size}`]: size,
17
17
  });
18
- return (jsxRuntime.jsx("div", Object.assign({ className: cardClasses }, { children: jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--wrap` }, { children: jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--content` }, { children: [title && jsxRuntime.jsx("h5", Object.assign({ className: `${baseClass}--title` }, { children: title })), intro && jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--intro` }, { children: intro })), source && jsxRuntime.jsx(components_Link_Link, Object.assign({ url: source.url }, { children: source.label }))] })) })) })));
18
+ return (jsxRuntime.jsx("div", Object.assign({ className: cardClasses }, { children: jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--wrap` }, { children: jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--content` }, { children: [title && TitleElement ? (jsxRuntime.jsx(TitleElement, Object.assign({ className: `${baseClass}--title` }, { children: title }))) : (jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--title` }, { children: title }))), intro && jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--intro` }, { children: intro })), source && jsxRuntime.jsx(components_Link_Link, Object.assign({ url: source.url }, { children: source.label }))] })) })) })));
19
19
  };
20
20
 
21
21
  module.exports = StatCard;
@@ -8,7 +8,7 @@ require('tslib');
8
8
  require('react');
9
9
  require('../../../GlobalCtx-10114bdd.js');
10
10
 
11
- const TextCard = ({ eyebrow, title, theme, size, date, profile, link, }) => {
11
+ const TextCard = ({ eyebrow, title, theme, size, date, profile, link, titleLevel: TitleElement, }) => {
12
12
  const { prefix } = hooks_useGlobalSettings();
13
13
  const baseClass = `${prefix}--card`;
14
14
  const wrapperClass = classNames(`${baseClass}--wrapper`);
@@ -17,7 +17,7 @@ const TextCard = ({ eyebrow, title, theme, size, date, profile, link, }) => {
17
17
  [`${baseClass}__size__${size}`]: size,
18
18
  [`${baseClass}__theme__${theme}`]: theme,
19
19
  });
20
- return (jsxRuntime.jsx("div", Object.assign({ className: wrapperClass }, { children: jsxRuntime.jsxs("div", Object.assign({ className: cardClasses }, { children: [link && (jsxRuntime.jsx("a", Object.assign({ className: `${baseClass}--link`, href: link, title: title }, { children: jsxRuntime.jsx("span", Object.assign({ className: `${baseClass}--link--text` }, { children: title })) }))), jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--wrap` }, { children: jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--content` }, { children: [eyebrow && jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--eyebrow` }, { children: eyebrow })), title && jsxRuntime.jsx("h5", Object.assign({ className: `${baseClass}--title` }, { children: title })), date && (jsxRuntime.jsx("time", Object.assign({ className: `${baseClass}--date`, dateTime: date.unix }, { children: date.human }))), profile && profile.avatar && (jsxRuntime.jsx(components_Profile_Profile, { avatar: profile.avatar, description: profile.description, link: profile.link, name: profile.name, role: profile.role, className: `${prefix}--profile__theme__${theme}` }))] })) }))] })) })));
20
+ return (jsxRuntime.jsx("div", Object.assign({ className: wrapperClass }, { children: jsxRuntime.jsxs("div", Object.assign({ className: cardClasses }, { children: [link && (jsxRuntime.jsx("a", Object.assign({ className: `${baseClass}--link`, href: link, title: title }, { children: jsxRuntime.jsx("span", Object.assign({ className: `${baseClass}--link--text` }, { children: title })) }))), jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--wrap` }, { children: jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--content` }, { children: [eyebrow && jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--eyebrow` }, { children: eyebrow })), title && TitleElement ? (jsxRuntime.jsx(TitleElement, Object.assign({ className: `${baseClass}--title` }, { children: title }))) : (jsxRuntime.jsx("p", Object.assign({ className: `${baseClass}--title` }, { children: title }))), date && (jsxRuntime.jsx("time", Object.assign({ className: `${baseClass}--date`, dateTime: date.unix }, { children: date.human }))), profile && profile.avatar && (jsxRuntime.jsx(components_Profile_Profile, { avatar: profile.avatar, description: profile.description, link: profile.link, name: profile.name, role: profile.role, className: `${prefix}--profile__theme__${theme}` }))] })) }))] })) })));
21
21
  };
22
22
 
23
23
  module.exports = TextCard;
@@ -3,8 +3,8 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var classNames = require('classnames');
5
5
  var hooks_useGlobalSettings = require('../../hooks/useGlobalSettings.js');
6
- require('react');
7
6
  require('tslib');
7
+ require('react');
8
8
  require('../../GlobalCtx-10114bdd.js');
9
9
 
10
10
  const LogoGridItem = ({ url, label, src }) => {
@@ -20,31 +20,57 @@ const Navigation = ({ logo, mobilelogo, siteurl, tagline, primarynav, subnav, me
20
20
  const { prefix } = hooks_useGlobalSettings();
21
21
  const [toggleMenuOpen, setMenuToggleOpen] = React.useState(false);
22
22
  const [toggleSearchOpen, setSearchToggleOpen] = React.useState(false);
23
+ const [searchTabbable, setSearchTabbable] = React.useState(false);
23
24
  const [toggleSubnavOpen, setSubnavToggleOpen] = React.useState(false);
25
+ const [subnavTabbable, setSubnavTabbable] = React.useState(false);
24
26
  const [toggleLanguageOpen, setLanguageToggleOpen] = React.useState(false);
25
27
  const baseClass = `${prefix}--header`;
26
28
  const NavigationClasses = classNames(baseClass, {
27
29
  [`${prefix}--mobile--open`]: toggleMenuOpen,
28
- [`${prefix}--select--open`]: toggleLanguageOpen,
29
30
  [`${prefix}--search--open`]: toggleSearchOpen,
30
31
  [`${prefix}--subnav--open`]: toggleSubnavOpen,
32
+ [`${prefix}--select--open`]: toggleLanguageOpen,
33
+ [`${prefix}--context--open`]: toggleLanguageOpen,
31
34
  });
32
35
  const handleMenuToggle = () => {
33
36
  setMenuToggleOpen(!toggleMenuOpen);
34
37
  };
35
- const handleLanguageToggle = () => {
38
+ const handleLanguageToggle = React.useCallback(() => {
36
39
  setLanguageToggleOpen(!toggleLanguageOpen);
37
- };
40
+ }, [toggleLanguageOpen]);
38
41
  const handleSearchToggle = () => {
39
- setSearchToggleOpen(!toggleSearchOpen);
42
+ if (toggleSearchOpen) {
43
+ setSearchToggleOpen(false);
44
+ setTimeout(() => setSearchTabbable(false), 225);
45
+ return;
46
+ }
47
+ setSearchTabbable(true);
48
+ setTimeout(() => setSearchToggleOpen(true), 10);
40
49
  };
41
50
  const handleSubnavToggle = () => {
42
- setSubnavToggleOpen(!toggleSubnavOpen);
51
+ if (toggleSubnavOpen) {
52
+ setSubnavToggleOpen(false);
53
+ setTimeout(() => setSubnavTabbable(false), 125);
54
+ return;
55
+ }
56
+ setSubnavTabbable(true);
57
+ setTimeout(() => setSubnavToggleOpen(true), 10);
43
58
  };
44
- return (jsxRuntime.jsxs("header", Object.assign({ className: NavigationClasses }, { children: [jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--utility-bar` }, { children: jsxRuntime.jsx("div", Object.assign({ className: `${prefix}--language-switcher` }, { children: jsxRuntime.jsxs("div", Object.assign({ className: `${prefix}--language-switcher--wrap` }, { children: [jsxRuntime.jsx("button", Object.assign({ className: `${prefix}--language-switcher--button`, type: "button" }, { children: languagelabel })), jsxRuntime.jsx(components_ContextMenu_ContextMenu, { links: languagecontextmenu === null || languagecontextmenu === void 0 ? void 0 : languagecontextmenu.links })] })) })) })), jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--logo-bar` }, { children: jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--inner ${prefix}--container` }, { children: [jsxRuntime.jsx("a", Object.assign({ href: siteurl, className: `${baseClass}--logo-link` }, { children: jsxRuntime.jsx("img", { className: `${baseClass}--logo`, src: logo, alt: "ILO Logo" }) })), jsxRuntime.jsxs("p", Object.assign({ className: `${baseClass}--logo-tagline` }, { children: [tagline === null || tagline === void 0 ? void 0 : tagline.tag, jsxRuntime.jsx("span", Object.assign({ className: `${baseClass}--logo-tagline--small` }, { children: tagline === null || tagline === void 0 ? void 0 : tagline.small }))] })), jsxRuntime.jsx("button", Object.assign({ className: `${baseClass}--menu`, onClick: handleMenuToggle }, { children: menulabel }))] })) })), jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--navigation` }, { children: [jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--inner ${prefix}--container` }, { children: [jsxRuntime.jsxs("div", Object.assign({ className: `${prefix}--mobile--nav` }, { children: [jsxRuntime.jsxs("div", Object.assign({ className: `${prefix}--mobile--nav--logo` }, { children: [jsxRuntime.jsx("a", Object.assign({ href: siteurl, className: `${baseClass}--logo-link` }, { children: jsxRuntime.jsx("img", { className: `${baseClass}--logo`, src: mobilelogo, alt: "ILO Logo" }) })), jsxRuntime.jsx("button", Object.assign({ className: `${baseClass}--menu--close`, onClick: handleMenuToggle }, { children: menucloselabel }))] })), jsxRuntime.jsx("div", Object.assign({ className: `${prefix}--mobile--nav--search` }, { children: jsxRuntime.jsx(components_SearchField_SearchField, { input: searchfield === null || searchfield === void 0 ? void 0 : searchfield.input, action: searchfield === null || searchfield === void 0 ? void 0 : searchfield.action }) })), jsxRuntime.jsx("div", Object.assign({ className: `${prefix}--mobile--nav--language--switcher` }, { children: jsxRuntime.jsx("button", Object.assign({ className: `${prefix}--mobile--nav--language--switcher--button`, onClick: handleLanguageToggle, type: "button" }, { children: languagelabel })) })), jsxRuntime.jsx("div", Object.assign({ className: `${prefix}--mobile--nav--language--select` }, { children: jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--inner ${prefix}--container` }, { children: [jsxRuntime.jsxs("div", Object.assign({ className: `${prefix}--mobile--subnav--menu` }, { children: [jsxRuntime.jsx("button", Object.assign({ className: `${prefix}--mobile--subnav--back`, onClick: handleLanguageToggle, type: "button" }, { children: subnav === null || subnav === void 0 ? void 0 : subnav.mobilebacklabel })), jsxRuntime.jsx("button", Object.assign({ className: `${baseClass}--menu--close`, onClick: handleMenuToggle }, { children: subnav === null || subnav === void 0 ? void 0 : subnav.mobilecloselabel })), jsxRuntime.jsx("h6", Object.assign({ className: `${prefix}--mobile--subnav--label` }, { children: languagelabel }))] })), jsxRuntime.jsx("ul", Object.assign({ className: `${prefix}--nav--set` }, { children: (languagecontextmenu === null || languagecontextmenu === void 0 ? void 0 : languagecontextmenu.links) &&
59
+ React.useEffect(() => {
60
+ if (window) {
61
+ if (toggleLanguageOpen) {
62
+ window.addEventListener("click", handleLanguageToggle);
63
+ }
64
+ else {
65
+ window.removeEventListener("click", handleLanguageToggle);
66
+ }
67
+ return () => window.removeEventListener("click", handleLanguageToggle);
68
+ }
69
+ }, [toggleLanguageOpen, handleLanguageToggle]);
70
+ return (jsxRuntime.jsxs("header", Object.assign({ className: NavigationClasses }, { children: [jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--utility-bar` }, { children: jsxRuntime.jsx("div", Object.assign({ className: `${prefix}--language-switcher` }, { children: jsxRuntime.jsxs("div", Object.assign({ className: `${prefix}--language-switcher--wrap` }, { children: [jsxRuntime.jsx("button", Object.assign({ className: `${prefix}--language-switcher--button`, type: "button", onClick: handleLanguageToggle }, { children: languagelabel })), jsxRuntime.jsx(components_ContextMenu_ContextMenu, { links: languagecontextmenu === null || languagecontextmenu === void 0 ? void 0 : languagecontextmenu.links })] })) })) })), jsxRuntime.jsx("div", Object.assign({ className: `${baseClass}--logo-bar` }, { children: jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--inner ${prefix}--container` }, { children: [jsxRuntime.jsx("a", Object.assign({ href: siteurl, className: `${baseClass}--logo-link` }, { children: jsxRuntime.jsx("img", { className: `${baseClass}--logo`, src: logo, alt: "ILO Logo" }) })), jsxRuntime.jsxs("p", Object.assign({ className: `${baseClass}--logo-tagline` }, { children: [tagline === null || tagline === void 0 ? void 0 : tagline.tag, jsxRuntime.jsx("span", Object.assign({ className: `${baseClass}--logo-tagline--small` }, { children: tagline === null || tagline === void 0 ? void 0 : tagline.small }))] })), jsxRuntime.jsx("button", Object.assign({ className: `${baseClass}--menu`, onClick: handleMenuToggle }, { children: menulabel }))] })) })), jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--navigation` }, { children: [jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--inner ${prefix}--container` }, { children: [jsxRuntime.jsxs("div", Object.assign({ className: `${prefix}--mobile--nav` }, { children: [jsxRuntime.jsxs("div", Object.assign({ className: `${prefix}--mobile--nav--logo` }, { children: [jsxRuntime.jsx("a", Object.assign({ href: siteurl, className: `${baseClass}--logo-link` }, { children: jsxRuntime.jsx("img", { className: `${baseClass}--logo`, src: mobilelogo, alt: "ILO Logo" }) })), jsxRuntime.jsx("button", Object.assign({ className: `${baseClass}--menu--close`, onClick: handleMenuToggle }, { children: menucloselabel }))] })), jsxRuntime.jsx("div", Object.assign({ className: `${prefix}--mobile--nav--search` }, { children: jsxRuntime.jsx(components_SearchField_SearchField, { input: searchfield === null || searchfield === void 0 ? void 0 : searchfield.input, action: searchfield === null || searchfield === void 0 ? void 0 : searchfield.action }) })), jsxRuntime.jsx("div", Object.assign({ className: `${prefix}--mobile--nav--language--switcher` }, { children: jsxRuntime.jsx("button", Object.assign({ className: `${prefix}--mobile--nav--language--switcher--button`, onClick: handleLanguageToggle, type: "button" }, { children: languagelabel })) })), jsxRuntime.jsx("div", Object.assign({ className: `${prefix}--mobile--nav--language--select` }, { children: jsxRuntime.jsxs("div", Object.assign({ className: `${baseClass}--inner ${prefix}--container` }, { children: [jsxRuntime.jsxs("div", Object.assign({ className: `${prefix}--mobile--subnav--menu` }, { children: [jsxRuntime.jsx("button", Object.assign({ className: `${prefix}--mobile--subnav--back`, onClick: handleLanguageToggle, type: "button" }, { children: subnav === null || subnav === void 0 ? void 0 : subnav.mobilebacklabel })), jsxRuntime.jsx("button", Object.assign({ className: `${baseClass}--menu--close`, onClick: handleMenuToggle }, { children: subnav === null || subnav === void 0 ? void 0 : subnav.mobilecloselabel })), jsxRuntime.jsx("h6", Object.assign({ className: `${prefix}--mobile--subnav--label` }, { children: languagelabel }))] })), jsxRuntime.jsx("ul", Object.assign({ className: `${prefix}--nav--set` }, { children: (languagecontextmenu === null || languagecontextmenu === void 0 ? void 0 : languagecontextmenu.links) &&
45
71
  languagecontextmenu.links.map((item, index) => (jsxRuntime.jsx("li", Object.assign({ className: `${prefix}--nav--items` }, { children: jsxRuntime.jsx("a", Object.assign({ href: item.url, className: `${prefix}--nav--link ${prefix}--nav--language` }, { children: item.label })) }), index))) }))] })) }))] })), jsxRuntime.jsxs("nav", Object.assign({ className: `${prefix}--nav`, "aria-labelledby": "primary-navigation" }, { children: [jsxRuntime.jsx("h2", Object.assign({ className: `${prefix}--nav--label`, id: "primary-navigation" }, { children: primarynav === null || primarynav === void 0 ? void 0 : primarynav.navlabel })), jsxRuntime.jsxs("ul", Object.assign({ className: `${prefix}--nav--set` }, { children: [(primarynav === null || primarynav === void 0 ? void 0 : primarynav.items) &&
46
- primarynav.items.map((item, index) => (jsxRuntime.jsx("li", Object.assign({ className: `${prefix}--nav--items` }, { children: jsxRuntime.jsx("a", Object.assign({ href: item.url, className: `${prefix}--nav--link` }, { children: item.label })) }), index))), subnav && (jsxRuntime.jsx("li", Object.assign({ className: `${prefix}--nav--items` }, { children: jsxRuntime.jsx("button", Object.assign({ className: `${prefix}--nav--trigger`, onClick: handleSubnavToggle }, { children: subnav.buttonlabel })) })))] }))] })), jsxRuntime.jsx("div", Object.assign({ className: `${prefix}--search` }, { children: jsxRuntime.jsx("button", Object.assign({ className: `${prefix}--search--button`, type: "button", onClick: handleSearchToggle }, { children: searchlabel })) }))] })), subnav && (jsxRuntime.jsx("nav", Object.assign({ className: `${prefix}--subnav`, "aria-labelledby": "secondary-navigation" }, { children: jsxRuntime.jsxs("div", Object.assign({ className: `${prefix}--subnav--inner ${prefix}--container` }, { children: [jsxRuntime.jsx("div", Object.assign({ className: `${prefix}--mobile--subnav` }, { children: jsxRuntime.jsxs("div", Object.assign({ className: `${prefix}--mobile--subnav--menu` }, { children: [jsxRuntime.jsx("button", Object.assign({ className: `${prefix}--mobile--subnav--back`, onClick: handleSubnavToggle, type: "button" }, { children: subnav.mobilebacklabel })), jsxRuntime.jsx("button", Object.assign({ className: `${prefix}--header--menu--close`, onClick: handleMenuToggle }, { children: subnav.mobilecloselabel })), jsxRuntime.jsx("h6", Object.assign({ className: `${prefix}--mobile--subnav--label` }, { children: subnav.buttonlabel }))] })) })), jsxRuntime.jsx("h2", Object.assign({ className: `${prefix}--nav--label`, id: "secondary-navigation" }, { children: subnav.navlabel })), jsxRuntime.jsx("ul", Object.assign({ className: `${prefix}--subnav--set` }, { children: (subnav === null || subnav === void 0 ? void 0 : subnav.items) &&
47
- subnav.items.map((item, index) => (jsxRuntime.jsx("li", Object.assign({ className: `${prefix}--subnav--items` }, { children: jsxRuntime.jsx("a", Object.assign({ href: item.url, className: `${prefix}--subnav--link` }, { children: item.label })) }), index))) }))] })) }))), jsxRuntime.jsx("div", Object.assign({ className: `${prefix}--search-box` }, { children: jsxRuntime.jsx("div", Object.assign({ className: `${prefix}--header--inner ${prefix}--container` }, { children: jsxRuntime.jsx(components_SearchField_SearchField, { input: searchfield === null || searchfield === void 0 ? void 0 : searchfield.input, action: searchfield === null || searchfield === void 0 ? void 0 : searchfield.action }) })) }))] }))] })));
72
+ primarynav.items.map((item, index) => (jsxRuntime.jsx("li", Object.assign({ className: `${prefix}--nav--items` }, { children: jsxRuntime.jsx("a", Object.assign({ href: item.url, className: `${prefix}--nav--link` }, { children: item.label })) }), index))), subnav && (jsxRuntime.jsx("li", Object.assign({ className: `${prefix}--nav--items` }, { children: jsxRuntime.jsx("button", Object.assign({ className: `${prefix}--nav--trigger`, onClick: handleSubnavToggle }, { children: subnav.buttonlabel })) })))] }))] })), jsxRuntime.jsx("div", Object.assign({ className: `${prefix}--search` }, { children: jsxRuntime.jsx("button", Object.assign({ className: `${prefix}--search--button`, type: "button", onClick: handleSearchToggle }, { children: searchlabel })) }))] })), subnav && (jsxRuntime.jsx("nav", Object.assign({ style: { display: subnavTabbable ? "block" : "none" }, className: `${prefix}--subnav`, "aria-labelledby": "secondary-navigation" }, { children: jsxRuntime.jsxs("div", Object.assign({ className: `${prefix}--subnav--inner ${prefix}--container` }, { children: [jsxRuntime.jsx("div", Object.assign({ className: `${prefix}--mobile--subnav` }, { children: jsxRuntime.jsxs("div", Object.assign({ className: `${prefix}--mobile--subnav--menu` }, { children: [jsxRuntime.jsx("button", Object.assign({ className: `${prefix}--mobile--subnav--back`, onClick: handleSubnavToggle, type: "button" }, { children: subnav.mobilebacklabel })), jsxRuntime.jsx("button", Object.assign({ className: `${prefix}--header--menu--close`, onClick: handleMenuToggle }, { children: subnav.mobilecloselabel })), jsxRuntime.jsx("h6", Object.assign({ className: `${prefix}--mobile--subnav--label` }, { children: subnav.buttonlabel }))] })) })), jsxRuntime.jsx("h2", Object.assign({ className: `${prefix}--nav--label`, id: "secondary-navigation" }, { children: subnav.navlabel })), jsxRuntime.jsx("ul", Object.assign({ className: `${prefix}--subnav--set` }, { children: (subnav === null || subnav === void 0 ? void 0 : subnav.items) &&
73
+ subnav.items.map((item, index) => (jsxRuntime.jsx("li", Object.assign({ className: `${prefix}--subnav--items` }, { children: jsxRuntime.jsx("a", Object.assign({ href: item.url, className: `${prefix}--subnav--link` }, { children: item.label })) }), index))) }))] })) }))), jsxRuntime.jsx("div", Object.assign({ style: { display: searchTabbable ? "block" : "none" }, className: `${prefix}--search-box` }, { children: jsxRuntime.jsx("div", Object.assign({ className: `${prefix}--header--inner ${prefix}--container` }, { children: jsxRuntime.jsx(components_SearchField_SearchField, { input: searchfield === null || searchfield === void 0 ? void 0 : searchfield.input, action: searchfield === null || searchfield === void 0 ? void 0 : searchfield.action }) })) }))] }))] })));
48
74
  };
49
75
 
50
76
  module.exports = Navigation;
@@ -3,8 +3,8 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var classNames = require('classnames');
5
5
  var hooks_useGlobalSettings = require('../../hooks/useGlobalSettings.js');
6
- require('react');
7
6
  require('tslib');
7
+ require('react');
8
8
  require('../../GlobalCtx-10114bdd.js');
9
9
 
10
10
  const SocialMedia = ({ className, theme = "light", justify = "start", headline, icons, }) => {
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  var hooks_useGlobalSettings = require('./useGlobalSettings.js');
4
- var hooks_useVideoPlayer = require('./useVideoPlayer.js');
5
4
  require('tslib');
6
5
  require('react');
7
6
  require('react/jsx-runtime');
@@ -10,4 +9,3 @@ require('../GlobalCtx-10114bdd.js');
10
9
 
11
10
 
12
11
  exports.useGlobalSettings = hooks_useGlobalSettings;
13
- exports.useVideoPlayer = hooks_useVideoPlayer;
@@ -28,12 +28,15 @@ const cardMapper = {
28
28
  factlist: FactlistCard,
29
29
  data: DataCard,
30
30
  };
31
- const CardGroup = ({ cards, cardCount, cta, type }) => {
32
- const Cards = cardMapper[type];
31
+ const CardGroup = ({ cards, titleLevel = "p", cardCount, cta, type, alignment, size, theme, collapsed = false, }) => {
32
+ const Card = cardMapper[type];
33
33
  const { prefix } = useGlobalSettings();
34
34
  const baseClass = `${prefix}--cardgroup`;
35
- const cardGroupClasses = classNames(baseClass, `${baseClass}__count__${cardCount}`);
36
- return (jsxs("div", Object.assign({ className: cardGroupClasses }, { children: [jsx("div", Object.assign({ className: `${baseClass}--inner` }, { children: cards && cards.map((card, index) => jsx(Cards, Object.assign({}, card), index)) })), cta && (jsx("div", Object.assign({ className: `${baseClass}--button-wrap` }, { children: jsx("a", Object.assign({ className: `${prefix}--button ${prefix}--button--medium ${prefix}--button--secondary`, href: cta.url }, { children: jsx("span", Object.assign({ className: "button__label" }, { children: cta.label })) })) })))] })));
35
+ const cardGroupClasses = classNames(baseClass, `${baseClass}__count__${cardCount}`, {
36
+ [`${baseClass}__collapsed`]: collapsed,
37
+ });
38
+ return (jsxs("div", Object.assign({ className: cardGroupClasses }, { children: [jsx("div", Object.assign({ className: `${baseClass}--inner` }, { children: cards &&
39
+ cards.map((card, index) => (jsx(Card, Object.assign({}, card, { size: size, theme: theme, alignment: alignment, titleLevel: titleLevel }), index))) })), cta && (jsx("div", Object.assign({ className: `${baseClass}--button-wrap` }, { children: jsx("a", Object.assign({ className: `${prefix}--button ${prefix}--button--medium ${prefix}--button--secondary`, href: cta.url }, { children: jsx("span", Object.assign({ className: "button__label" }, { children: cta.label })) })) })))] })));
37
40
  };
38
41
 
39
42
  export { CardGroup as default };
@@ -88,6 +88,7 @@ const textCardGroup = {
88
88
  ],
89
89
  cardCount: "three",
90
90
  type: "text",
91
+ size: "narrow",
91
92
  cta: {
92
93
  label: "Discover our unique mission",
93
94
  url: "https://www.ilo.org",
@@ -133,6 +134,7 @@ const statCardGroup = {
133
134
  },
134
135
  ],
135
136
  cardCount: "three",
137
+ size: "narrow",
136
138
  type: "stat",
137
139
  cta: {
138
140
  label: "Discover our unique mission",
@@ -260,6 +262,7 @@ const multilinkCardGroup = {
260
262
  ],
261
263
  type: "multilink",
262
264
  cardCount: "three",
265
+ size: "standard",
263
266
  cta: {
264
267
  label: "Discover our unique mission",
265
268
  url: "https://www.ilo.org",
@@ -268,7 +271,6 @@ const multilinkCardGroup = {
268
271
  const promoCardGroup = {
269
272
  cards: [
270
273
  {
271
- size: "standard",
272
274
  title: "ILO welcomes first global agreement on working conditions",
273
275
  eyebrow: "Report",
274
276
  theme: "dark",
@@ -281,7 +283,6 @@ const promoCardGroup = {
281
283
  },
282
284
  },
283
285
  {
284
- size: "standard",
285
286
  title: "Renewable energy jobs hits 12.7 million globally",
286
287
  eyebrow: "High-level meeting",
287
288
  theme: "dark",
@@ -294,7 +295,6 @@ const promoCardGroup = {
294
295
  },
295
296
  },
296
297
  {
297
- size: "standard",
298
298
  title: "ILO welcomes G7 call to make a just transition",
299
299
  eyebrow: "Podcast",
300
300
  theme: "dark",
@@ -307,7 +307,6 @@ const promoCardGroup = {
307
307
  },
308
308
  },
309
309
  {
310
- size: "standard",
311
310
  title: "Telangana and Andhra Pradesh launch pre-departure handbook",
312
311
  eyebrow: "High-level meeting",
313
312
  theme: "dark",
@@ -322,6 +321,7 @@ const promoCardGroup = {
322
321
  ],
323
322
  type: "promo",
324
323
  cardCount: "three",
324
+ size: "standard",
325
325
  cta: {
326
326
  label: "Discover our unique mission",
327
327
  url: "https://www.ilo.org",
@@ -416,6 +416,7 @@ const featureCardGroup = {
416
416
  ],
417
417
  cardCount: "three",
418
418
  type: "feature",
419
+ size: "narrow",
419
420
  cta: {
420
421
  label: "Discover our unique mission",
421
422
  url: "https://www.ilo.org",
@@ -474,6 +475,7 @@ const detailCardGroup = {
474
475
  ],
475
476
  type: "detail",
476
477
  cardCount: "three",
478
+ size: "narrow",
477
479
  cta: {
478
480
  label: "Discover our unique mission",
479
481
  url: "https://www.ilo.org",
@@ -520,6 +522,7 @@ const factListCardGroup = {
520
522
  ],
521
523
  type: "factlist",
522
524
  cardCount: "three",
525
+ size: "narrow",
523
526
  cta: {
524
527
  label: "Discover our unique mission",
525
528
  url: "https://www.ilo.org",
@@ -528,7 +531,7 @@ const factListCardGroup = {
528
531
  const dataCardGroup = {
529
532
  cards: [
530
533
  {
531
- size: "standard",
534
+ size: "narrow",
532
535
  eyebrow: "Press release",
533
536
  image: "/small.jpg",
534
537
  columns: "one",
@@ -591,7 +594,6 @@ const dataCardGroup = {
591
594
  },
592
595
  },
593
596
  {
594
- size: "standard",
595
597
  eyebrow: "Report",
596
598
  image: "/small.jpg",
597
599
  columns: "one",
@@ -650,7 +652,6 @@ const dataCardGroup = {
650
652
  },
651
653
  },
652
654
  {
653
- size: "standard",
654
655
  eyebrow: "Meeting",
655
656
  image: "/small.jpg",
656
657
  columns: "one",
@@ -705,7 +706,6 @@ const dataCardGroup = {
705
706
  },
706
707
  },
707
708
  {
708
- size: "standard",
709
709
  eyebrow: "Meeting",
710
710
  image: "/small.jpg",
711
711
  columns: "one",
@@ -774,6 +774,7 @@ const dataCardGroup = {
774
774
  ],
775
775
  cardCount: "three",
776
776
  type: "data",
777
+ size: "narrow",
777
778
  cta: {
778
779
  label: "Discover our unique mission",
779
780
  url: "https://www.ilo.org",
@@ -5,14 +5,14 @@ import 'tslib';
5
5
  import 'react';
6
6
  import '../../../GlobalCtx-7fb23cfa.js';
7
7
 
8
- const DetailCard = ({ eyebrow, title, size = "narrow", intro, date, eventdetails, link, image, }) => {
8
+ const DetailCard = ({ eyebrow, title, size = "narrow", intro, date, eventdetails, link, image, titleLevel: TitleElement, }) => {
9
9
  const { prefix } = useGlobalSettings();
10
10
  const baseClass = `${prefix}--card`;
11
11
  const cardClasses = classNames(baseClass, `${baseClass}__type__detail`, {
12
12
  [`${baseClass}__action`]: link,
13
13
  [`${baseClass}__size__${size}`]: size,
14
14
  });
15
- return (jsxs("div", Object.assign({ className: cardClasses }, { children: [link && (jsx("a", Object.assign({ className: `${baseClass}--link`, href: link, title: title }, { children: jsx("span", Object.assign({ className: `${baseClass}--link--text` }, { children: title })) }))), jsxs("div", Object.assign({ className: `${baseClass}--wrap` }, { children: [image && (jsx("div", Object.assign({ className: `${baseClass}--image--wrapper` }, { children: jsx("picture", { children: jsx("img", { className: `${baseClass}--picture`, src: image, alt: title }) }) }))), jsxs("div", Object.assign({ className: `${baseClass}--content` }, { children: [eyebrow && jsx("p", Object.assign({ className: `${baseClass}--eyebrow` }, { children: eyebrow })), title && jsx("h5", Object.assign({ className: `${baseClass}--title` }, { children: title })), intro && jsx("p", Object.assign({ className: `${baseClass}--intro` }, { children: intro })), date && (jsx("time", Object.assign({ className: `${baseClass}--date`, dateTime: date.unix }, { children: date.human }))), eventdetails && (jsx("p", Object.assign({ className: `${baseClass}--date-extra` }, { children: eventdetails })))] }))] }))] })));
15
+ return (jsxs("div", Object.assign({ className: cardClasses }, { children: [link && (jsx("a", Object.assign({ className: `${baseClass}--link`, href: link, title: title }, { children: jsx("span", Object.assign({ className: `${baseClass}--link--text` }, { children: title })) }))), jsxs("div", Object.assign({ className: `${baseClass}--wrap` }, { children: [image && (jsx("div", Object.assign({ className: `${baseClass}--image--wrapper` }, { children: jsx("picture", { children: jsx("img", { className: `${baseClass}--picture`, src: image, alt: title }) }) }))), jsxs("div", Object.assign({ className: `${baseClass}--content` }, { children: [eyebrow && jsx("p", Object.assign({ className: `${baseClass}--eyebrow` }, { children: eyebrow })), title && TitleElement ? (jsx(TitleElement, Object.assign({ className: `${baseClass}--title` }, { children: title }))) : (jsx("p", Object.assign({ className: `${baseClass}--title` }, { children: title }))), intro && jsx("p", Object.assign({ className: `${baseClass}--intro` }, { children: intro })), date && (jsx("time", Object.assign({ className: `${baseClass}--date`, dateTime: date.unix }, { children: date.human }))), eventdetails && (jsx("p", Object.assign({ className: `${baseClass}--date-extra` }, { children: eventdetails })))] }))] }))] })));
16
16
  };
17
17
 
18
18
  export { DetailCard as default };
@@ -7,14 +7,14 @@ import 'tslib';
7
7
  import 'react';
8
8
  import '../../../GlobalCtx-7fb23cfa.js';
9
9
 
10
- const FactlistCard = ({ title, theme = "narrow", size, list, }) => {
10
+ const FactlistCard = ({ title, theme, size = "narrow", list, titleLevel: TitleElement, }) => {
11
11
  const { prefix } = useGlobalSettings();
12
12
  const baseClass = `${prefix}--card`;
13
13
  const cardClasses = classNames(baseClass, `${baseClass}__type__factlist`, {
14
14
  [`${baseClass}__size__${size}`]: size,
15
15
  [`${baseClass}__theme__${theme}`]: theme,
16
16
  });
17
- return (jsx("div", Object.assign({ className: cardClasses }, { children: jsx("div", Object.assign({ className: `${baseClass}--wrap` }, { children: jsxs("div", Object.assign({ className: `${baseClass}--content` }, { children: [title && jsx("h5", Object.assign({ className: `${baseClass}--title` }, { children: title })), list && (jsx(List, Object.assign({ alignment: "default", ordered: "unordered" }, { children: list.map((item, index) => (jsx(ListItem, Object.assign({ id: `list${index}` }, { children: jsx("p", { children: item }) })))) })))] })) })) })));
17
+ return (jsx("div", Object.assign({ className: cardClasses }, { children: jsx("div", Object.assign({ className: `${baseClass}--wrap` }, { children: jsxs("div", Object.assign({ className: `${baseClass}--content` }, { children: [title && TitleElement ? (jsx(TitleElement, Object.assign({ className: `${baseClass}--title` }, { children: title }))) : (jsx("p", Object.assign({ className: `${baseClass}--title` }, { children: title }))), list && (jsx(List, Object.assign({ alignment: "default", ordered: "unordered" }, { children: list.map((item, index) => (jsx(ListItem, Object.assign({ id: `list${index}` }, { children: jsx("p", { children: item }) })))) })))] })) })) })));
18
18
  };
19
19
 
20
20
  export { FactlistCard as default };