@ilo-org/react 0.1.2 → 0.2.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.
Files changed (74) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/lib/cjs/{DailyMotion-4f88e10b.js → DailyMotion-2aa7f048.js} +4 -5
  3. package/lib/cjs/{Facebook-d993b91c.js → Facebook-87e24af8.js} +4 -5
  4. package/lib/cjs/{FilePlayer-8272a6ea.js → FilePlayer-e1216cc8.js} +4 -5
  5. package/lib/cjs/{Kaltura-fbd2c46f.js → Kaltura-a673a8e9.js} +4 -5
  6. package/lib/cjs/{Mixcloud-2b4ffb85.js → Mixcloud-f9575c31.js} +4 -5
  7. package/lib/cjs/{Preview-8238ea6e.js → Preview-468c3a7f.js} +2 -2
  8. package/lib/cjs/{SoundCloud-356fd92d.js → SoundCloud-7c59f293.js} +4 -5
  9. package/lib/cjs/{Streamable-407ca855.js → Streamable-83e516e5.js} +4 -5
  10. package/lib/cjs/{Twitch-ca00faaf.js → Twitch-fdfa1c77.js} +4 -5
  11. package/lib/cjs/VideoPlayer-9ce35136.js +2059 -0
  12. package/lib/cjs/{Vidyard-9d037503.js → Vidyard-096bba3c.js} +4 -5
  13. package/lib/cjs/{Vimeo-6898bfd9.js → Vimeo-2cb7476f.js} +4 -5
  14. package/lib/cjs/{Wistia-ed77bf25.js → Wistia-5e830ac8.js} +4 -5
  15. package/lib/cjs/{YouTube-909bd761.js → YouTube-25a1d9a0.js} +4 -5
  16. package/lib/cjs/components/Footer/Footer.js +23 -0
  17. package/lib/cjs/components/Footer/index.js +18 -0
  18. package/lib/cjs/components/LocalNav/LocalNav.js +102 -0
  19. package/lib/cjs/components/LocalNav/index.js +14 -0
  20. package/lib/cjs/components/Video/Video.js +2 -4
  21. package/lib/cjs/components/Video/VideoPlayer.js +10 -1445
  22. package/lib/cjs/components/Video/index.js +1 -3
  23. package/lib/cjs/components/index.js +6 -4
  24. package/lib/cjs/index.js +5 -3
  25. package/lib/esm/{DailyMotion-9a7aeab5.js → DailyMotion-66b6eff2.js} +1 -2
  26. package/lib/esm/{Facebook-eb35da52.js → Facebook-dbd1003d.js} +1 -2
  27. package/lib/esm/{FilePlayer-22314795.js → FilePlayer-617ed2ce.js} +1 -2
  28. package/lib/esm/{Kaltura-b97bb455.js → Kaltura-bbcec33d.js} +1 -2
  29. package/lib/esm/{Mixcloud-41d6dc0b.js → Mixcloud-a681ec69.js} +1 -2
  30. package/lib/esm/{Preview-6d2a6792.js → Preview-407cc648.js} +1 -1
  31. package/lib/esm/{SoundCloud-0fac2e7a.js → SoundCloud-16e78ee5.js} +1 -2
  32. package/lib/esm/{Streamable-46f19a16.js → Streamable-ecb225c1.js} +1 -2
  33. package/lib/esm/{Twitch-1be39438.js → Twitch-8d1b6769.js} +1 -2
  34. package/lib/esm/VideoPlayer-62e0ce79.js +2054 -0
  35. package/lib/esm/{Vidyard-6185c490.js → Vidyard-57e2834a.js} +1 -2
  36. package/lib/esm/{Vimeo-a807e7e1.js → Vimeo-faa058a2.js} +1 -2
  37. package/lib/esm/{Wistia-eef03ce2.js → Wistia-24fb5120.js} +1 -2
  38. package/lib/esm/{YouTube-e030042e.js → YouTube-01b3e51f.js} +1 -2
  39. package/lib/esm/components/Footer/Footer.js +21 -0
  40. package/lib/esm/components/Footer/index.js +12 -0
  41. package/lib/esm/components/LocalNav/LocalNav.js +100 -0
  42. package/lib/esm/components/LocalNav/index.js +8 -0
  43. package/lib/esm/components/Video/Video.js +1 -3
  44. package/lib/esm/components/Video/VideoPlayer.js +9 -1448
  45. package/lib/esm/components/Video/index.js +1 -3
  46. package/lib/esm/components/index.js +4 -4
  47. package/lib/esm/index.js +3 -3
  48. package/lib/types/react/src/components/ContextMenu/ContextMenu.props.d.ts +1 -2
  49. package/lib/types/react/src/components/Footer/Footer.d.ts +4 -0
  50. package/lib/types/react/src/components/Footer/Footer.props.d.ts +70 -0
  51. package/lib/types/react/src/components/Footer/index.d.ts +1 -0
  52. package/lib/types/react/src/components/LinkList/LinkList.props.d.ts +2 -3
  53. package/lib/types/react/src/components/LocalNav/LocalNav.d.ts +4 -0
  54. package/lib/types/react/src/components/LocalNav/LocalNav.props.d.ts +50 -0
  55. package/lib/types/react/src/components/LocalNav/index.d.ts +1 -0
  56. package/lib/types/react/src/components/index.d.ts +2 -0
  57. package/lib/types/react/src/types/index.d.ts +1 -0
  58. package/package.json +4 -4
  59. package/src/components/ContextMenu/ContextMenu.props.ts +1 -1
  60. package/src/components/Footer/Footer.args.ts +105 -0
  61. package/src/components/Footer/Footer.props.ts +84 -0
  62. package/src/components/Footer/Footer.tsx +107 -0
  63. package/src/components/Footer/index.ts +1 -0
  64. package/src/components/LinkList/LinkList.props.ts +2 -2
  65. package/src/components/LocalNav/LocalNav.args.ts +64 -0
  66. package/src/components/LocalNav/LocalNav.props.ts +60 -0
  67. package/src/components/LocalNav/LocalNav.tsx +175 -0
  68. package/src/components/LocalNav/index.ts +1 -0
  69. package/src/components/index.ts +2 -0
  70. package/src/types/index.ts +1 -0
  71. package/lib/cjs/_commonjsHelpers-9f9f50a8.js +0 -39
  72. package/lib/cjs/patterns-975adf3c.js +0 -579
  73. package/lib/esm/_commonjsHelpers-849bcf65.js +0 -35
  74. package/lib/esm/patterns-53247c1d.js +0 -575
@@ -5,9 +5,7 @@ import '../../hooks/useGlobalSettings.js';
5
5
  import 'tslib';
6
6
  import 'react';
7
7
  import '../../GlobalCtx-7fb23cfa.js';
8
- import './VideoPlayer.js';
9
- import '../../_commonjsHelpers-849bcf65.js';
10
- import '../../patterns-53247c1d.js';
8
+ import '../../VideoPlayer-62e0ce79.js';
11
9
  import '../../index-8ebb2cc1.js';
12
10
  import 'react-dom';
13
11
  import '../../utils/hoursMinutesSeconds.js';
@@ -48,6 +48,8 @@ export { default as List } from './List/List.js';
48
48
  import '../ListCtx-da435fdf.js';
49
49
  export { default as Profile } from './Profile/Profile.js';
50
50
  export { default as TableOfContents } from './TableOfContents/TableOfContents.js';
51
+ export { default as Footer } from './Footer/Footer.js';
52
+ export { default as LocalNav } from './LocalNav/LocalNav.js';
51
53
  import '../hooks/useGlobalSettings.js';
52
54
  import '../AccordionCtx-8c051900.js';
53
55
  import '@ilo-org/utils';
@@ -59,10 +61,8 @@ import '../utils/getDefaultDimensionValue.js';
59
61
  import '../css-7414f50b.js';
60
62
  import '../utils/transitionEndListener.js';
61
63
  import '../utils/triggerBrowserReflow.js';
62
- import '@ilo-org/icons-react';
63
64
  import './Hero/HeroCard.js';
64
- import './Video/VideoPlayer.js';
65
- import '../_commonjsHelpers-849bcf65.js';
66
- import '../patterns-53247c1d.js';
65
+ import '../VideoPlayer-62e0ce79.js';
67
66
  import '../utils/hoursMinutesSeconds.js';
68
67
  import 'screenfull';
68
+ import '@ilo-org/icons-react';
package/lib/esm/index.js CHANGED
@@ -48,6 +48,8 @@ export { default as List } from './components/List/List.js';
48
48
  import './ListCtx-da435fdf.js';
49
49
  export { default as Profile } from './components/Profile/Profile.js';
50
50
  export { default as TableOfContents } from './components/TableOfContents/TableOfContents.js';
51
+ export { default as Footer } from './components/Footer/Footer.js';
52
+ export { default as LocalNav } from './components/LocalNav/LocalNav.js';
51
53
  import './hooks/useGlobalSettings.js';
52
54
  import './AccordionCtx-8c051900.js';
53
55
  import '@ilo-org/utils';
@@ -60,9 +62,7 @@ import './css-7414f50b.js';
60
62
  import './utils/transitionEndListener.js';
61
63
  import './utils/triggerBrowserReflow.js';
62
64
  import './components/Hero/HeroCard.js';
63
- import './components/Video/VideoPlayer.js';
64
- import './_commonjsHelpers-849bcf65.js';
65
- import './patterns-53247c1d.js';
65
+ import './VideoPlayer-62e0ce79.js';
66
66
  import './utils/hoursMinutesSeconds.js';
67
67
  import 'screenfull';
68
68
  import '@ilo-org/icons-react';
@@ -1,4 +1,4 @@
1
- interface LinkProps {
1
+ export interface LinkProps {
2
2
  /**
3
3
  * Specify whether this link marks the end of a section
4
4
  */
@@ -22,4 +22,3 @@ export interface ContextMenuProps {
22
22
  */
23
23
  links?: Required<Array<LinkProps>>;
24
24
  }
25
- export {};
@@ -0,0 +1,4 @@
1
+ import { FC } from "react";
2
+ import { FooterProps } from "./Footer.props";
3
+ declare const Footer: FC<FooterProps>;
4
+ export default Footer;
@@ -0,0 +1,70 @@
1
+ import { LinkGroupProps } from "../LinkList/LinkList.props";
2
+ import { LinkProps } from "../LinkList/LinkList.props";
3
+ import { SocialTypes } from "../../types";
4
+ export interface FooterProps {
5
+ /**
6
+ * Specify an optional className to be added to your Footer.
7
+ */
8
+ className?: string;
9
+ /**
10
+ * Props for the logo of the Footer
11
+ */
12
+ logo?: string;
13
+ /**
14
+ * Specify the tagline for the Footer
15
+ */
16
+ tagline?: string;
17
+ /**
18
+ * Specify the subtagline for the Footer
19
+ */
20
+ subtagline?: string;
21
+ /**
22
+ * Specify the address for the Footer, in multiple lines
23
+ */
24
+ address?: string[];
25
+ /**
26
+ * Specify the linkgroup for the Footer's links
27
+ */
28
+ linkgroup?: Required<Array<LinkGroupProps>>;
29
+ /**
30
+ * Specify the links to be displayed in this link group
31
+ */
32
+ socials?: FooterSocialProps;
33
+ /**
34
+ * Specify the legal statement for the Footer
35
+ */
36
+ subscribe?: LinkProps;
37
+ /**
38
+ * Specify the legal statement for the Footer
39
+ */
40
+ legal?: string;
41
+ /**
42
+ * Specify the secondary links for the Footer
43
+ */
44
+ secondarylinks?: LinkProps[];
45
+ /**
46
+ * Specify the anchor link for the Footer
47
+ */
48
+ anchorlink?: LinkProps;
49
+ }
50
+ interface FooterSocialProps {
51
+ /**
52
+ * Specify the headline for social links
53
+ */
54
+ headline?: Required<string>;
55
+ /**
56
+ * Specify the social links
57
+ */
58
+ links?: Required<SocialLinkProps>[];
59
+ }
60
+ interface SocialLinkProps {
61
+ /**
62
+ * Specify the type for social link
63
+ */
64
+ type?: Required<SocialTypes>;
65
+ /**
66
+ * Specify the url for social link
67
+ */
68
+ url?: Required<string>;
69
+ }
70
+ export {};
@@ -0,0 +1 @@
1
+ export { default as Footer } from "./Footer";
@@ -1,5 +1,5 @@
1
1
  import { LinkListThemes } from "../../types";
2
- interface LinkProps {
2
+ export interface LinkProps {
3
3
  /**
4
4
  * Specify if this link should indent and have a triangle icon
5
5
  */
@@ -13,7 +13,7 @@ interface LinkProps {
13
13
  */
14
14
  url?: Required<string>;
15
15
  }
16
- interface LinkGroupProps {
16
+ export interface LinkGroupProps {
17
17
  /**
18
18
  * Specify an optional headline for this link group
19
19
  */
@@ -41,4 +41,3 @@ export interface LinkListProps {
41
41
  */
42
42
  theme?: Required<LinkListThemes>;
43
43
  }
44
- export {};
@@ -0,0 +1,4 @@
1
+ import { FC } from "react";
2
+ import { LocalNavProps } from "./LocalNav.props";
3
+ declare const LocalNav: FC<LocalNavProps>;
4
+ export default LocalNav;
@@ -0,0 +1,50 @@
1
+ import { LinkProps, ContextMenuProps } from "../ContextMenu/ContextMenu.props";
2
+ export interface LocalNavProps {
3
+ /**
4
+ * Props for the background colour of the LocalNav
5
+ */
6
+ background?: string;
7
+ /**
8
+ * Props for the logo of the LocalNav
9
+ */
10
+ logo?: Required<string>;
11
+ /**
12
+ * Props for the home url of the LocalNav
13
+ */
14
+ siteurl?: Required<string>;
15
+ /**
16
+ * Specify the primary items for the LocalNav
17
+ */
18
+ primarynav?: Required<PrimaryNavProps>;
19
+ /**
20
+ * Specify the main link for the LocalNav
21
+ */
22
+ mainlink?: LinkProps;
23
+ /**
24
+ * Specify the menu close label for the LocalNav
25
+ */
26
+ menucloselabel?: string;
27
+ /**
28
+ * Specify the language label for the LocalNav
29
+ */
30
+ languagelabel?: string;
31
+ /**
32
+ * Specify the language context menu for the LocalNav
33
+ */
34
+ languagecontextmenu?: ContextMenuProps;
35
+ }
36
+ interface PrimaryNavProps {
37
+ /**
38
+ * Specify the label for local nav
39
+ */
40
+ navlabel?: Required<string>;
41
+ /**
42
+ * Specify the close label for mobile local nav
43
+ */
44
+ mobilecloselabel?: Required<string>;
45
+ /**
46
+ * Specify the social links
47
+ */
48
+ items?: Required<Array<LinkProps>>;
49
+ }
50
+ export {};
@@ -0,0 +1 @@
1
+ export { default as LocalNav } from "./LocalNav";
@@ -37,3 +37,5 @@ export { Icon } from "./Icon";
37
37
  export { List } from "./List";
38
38
  export { Profile } from "./Profile";
39
39
  export { TableOfContents } from "./TableOfContents";
40
+ export { Footer } from "./Footer";
41
+ export { LocalNav } from "./LocalNav";
@@ -24,3 +24,4 @@ export type NotificationTypes = "error" | "info" | "success" | "warning";
24
24
  export type PositionTypes = "top" | "bottom" | "left" | "right";
25
25
  export type SizeTypes = "small" | "medium" | "large";
26
26
  export type TagTypes = "anchor" | "display" | "button";
27
+ export type SocialTypes = "instagram" | "facebook" | "twitter" | "youtube";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ilo-org/react",
3
- "version": "0.1.2",
3
+ "version": "0.2.1",
4
4
  "description": "React components for the ILO's Design System",
5
5
  "keywords": [
6
6
  "ui_patterns",
@@ -74,7 +74,7 @@
74
74
  "@ilo-org/brand-assets": "0.1.0",
75
75
  "@ilo-org/fonts": "0.1.0",
76
76
  "@ilo-org/icons-react": "0.0.18",
77
- "@ilo-org/styles": "0.1.17",
77
+ "@ilo-org/styles": "0.1.19",
78
78
  "@ilo-org/themes": "0.1.15",
79
79
  "@ilo-org/utils": "0.0.11"
80
80
  },
@@ -134,8 +134,8 @@
134
134
  "tslib": "^2.3.1",
135
135
  "typescript": "4.9.3",
136
136
  "webpack": "^5.68.0",
137
- "@ilo-org/eslint-config": "0.0.2",
138
- "@ilo-org/prettier-config": "0.0.1",
137
+ "@ilo-org/eslint-config": "0.0.3",
138
+ "@ilo-org/prettier-config": "0.0.2",
139
139
  "@ilo-org/typescript-config": "0.0.1"
140
140
  },
141
141
  "peerDependencies": {
@@ -1,4 +1,4 @@
1
- interface LinkProps {
1
+ export interface LinkProps {
2
2
  /**
3
3
  * Specify whether this link marks the end of a section
4
4
  */
@@ -0,0 +1,105 @@
1
+ import { FooterProps } from "./Footer.props";
2
+ import ilo_logo_white from "@ilo-org/brand-assets/logo_en_horizontal_white.svg";
3
+
4
+ const basic: FooterProps = {
5
+ className: "footer",
6
+ logo: ilo_logo_white,
7
+ tagline: "Advancing social justice, promoting decent work",
8
+ subtagline: "ILO is a specialized agency of the United Nations",
9
+ address: [
10
+ "International Labour Organization",
11
+ "4 route des Morillons",
12
+ "CH-1211 Genève 22",
13
+ "Switzerland",
14
+ ],
15
+ linkgroup: [
16
+ {
17
+ links: [
18
+ {
19
+ label: "Link One",
20
+ url: "https://www.ilo.org",
21
+ },
22
+ {
23
+ label: "Link Two",
24
+ url: "https://www.ilo.org",
25
+ },
26
+ {
27
+ label: "Link Three",
28
+ url: "https://www.ilo.org",
29
+ },
30
+ {
31
+ label: "Link Four",
32
+ url: "https://www.ilo.org",
33
+ },
34
+ {
35
+ label: "Link Five",
36
+ url: "https://www.ilo.org",
37
+ },
38
+ {
39
+ label: "Link Six",
40
+ url: "https://www.ilo.org",
41
+ },
42
+ ],
43
+ },
44
+ ],
45
+ socials: {
46
+ headline: "Social Links Headline",
47
+ links: [
48
+ {
49
+ type: "instagram",
50
+ url: "https://www.instagram.com/iloinfo/",
51
+ },
52
+ {
53
+ type: "facebook",
54
+ url: "https://www.facebook.com/ILO.ORG/",
55
+ },
56
+ {
57
+ type: "twitter",
58
+ url: "https://twitter.com/ILO/",
59
+ },
60
+ {
61
+ type: "youtube",
62
+ url: "https://youtube.com/@ILO/featured/",
63
+ },
64
+ ],
65
+ },
66
+ subscribe: {
67
+ label: "Subscribe",
68
+ url: "https://www.ilo.org",
69
+ },
70
+ legal: "© 1996-2023 International Labour Organization (ILO)",
71
+ secondarylinks: [
72
+ {
73
+ label: "Link One",
74
+ url: "https://www.ilo.org",
75
+ },
76
+ {
77
+ label: "Link Two",
78
+ url: "https://www.ilo.org",
79
+ },
80
+ {
81
+ label: "Link Three",
82
+ url: "https://www.ilo.org",
83
+ },
84
+ {
85
+ label: "Link Four",
86
+ url: "https://www.ilo.org",
87
+ },
88
+ {
89
+ label: "Link Five",
90
+ url: "https://www.ilo.org",
91
+ },
92
+ {
93
+ label: "Link Six",
94
+ url: "https://www.ilo.org",
95
+ },
96
+ ],
97
+ anchorlink: {
98
+ label: "Back to Top",
99
+ url: "#anchor",
100
+ },
101
+ };
102
+
103
+ const FooterArgs = { basic };
104
+
105
+ export default FooterArgs;
@@ -0,0 +1,84 @@
1
+ import { LinkGroupProps } from "../LinkList/LinkList.props";
2
+ import { LinkProps } from "../LinkList/LinkList.props";
3
+ import { SocialTypes } from "../../types";
4
+
5
+ export interface FooterProps {
6
+ /**
7
+ * Specify an optional className to be added to your Footer.
8
+ */
9
+ className?: string;
10
+
11
+ /**
12
+ * Props for the logo of the Footer
13
+ */
14
+ logo?: string;
15
+
16
+ /**
17
+ * Specify the tagline for the Footer
18
+ */
19
+ tagline?: string;
20
+
21
+ /**
22
+ * Specify the subtagline for the Footer
23
+ */
24
+ subtagline?: string;
25
+
26
+ /**
27
+ * Specify the address for the Footer, in multiple lines
28
+ */
29
+ address?: string[];
30
+
31
+ /**
32
+ * Specify the linkgroup for the Footer's links
33
+ */
34
+ linkgroup?: Required<Array<LinkGroupProps>>;
35
+
36
+ /**
37
+ * Specify the links to be displayed in this link group
38
+ */
39
+ socials?: FooterSocialProps;
40
+
41
+ /**
42
+ * Specify the legal statement for the Footer
43
+ */
44
+ subscribe?: LinkProps;
45
+
46
+ /**
47
+ * Specify the legal statement for the Footer
48
+ */
49
+ legal?: string;
50
+
51
+ /**
52
+ * Specify the secondary links for the Footer
53
+ */
54
+ secondarylinks?: LinkProps[];
55
+
56
+ /**
57
+ * Specify the anchor link for the Footer
58
+ */
59
+ anchorlink?: LinkProps;
60
+ }
61
+
62
+ interface FooterSocialProps {
63
+ /**
64
+ * Specify the headline for social links
65
+ */
66
+ headline?: Required<string>;
67
+
68
+ /**
69
+ * Specify the social links
70
+ */
71
+ links?: Required<SocialLinkProps>[];
72
+ }
73
+
74
+ interface SocialLinkProps {
75
+ /**
76
+ * Specify the type for social link
77
+ */
78
+ type?: Required<SocialTypes>;
79
+
80
+ /**
81
+ * Specify the url for social link
82
+ */
83
+ url?: Required<string>;
84
+ }
@@ -0,0 +1,107 @@
1
+ import { FC } from "react";
2
+ import useGlobalSettings from "../../hooks/useGlobalSettings";
3
+ import classnames from "classnames";
4
+ import { FooterProps } from "./Footer.props";
5
+ import { LinkList } from "../LinkList";
6
+ import { Button } from "../Button";
7
+
8
+ const Footer: FC<FooterProps> = ({
9
+ className,
10
+ logo,
11
+ tagline,
12
+ subtagline,
13
+ address,
14
+ linkgroup,
15
+ socials,
16
+ subscribe,
17
+ legal,
18
+ secondarylinks,
19
+ anchorlink,
20
+ }) => {
21
+ const { prefix } = useGlobalSettings();
22
+
23
+ const baseClass = `${prefix}--footer`;
24
+ const footerClasses = classnames(className, baseClass);
25
+
26
+ return (
27
+ <footer className={footerClasses}>
28
+ <div className={`${baseClass}--main`}>
29
+ <div className="site--info">
30
+ <img className={`${baseClass}--logo`} src={logo} alt="ILO Logo" />
31
+ <h3 className={`${baseClass}--headline`}>{tagline}</h3>
32
+ <h4 className={`${baseClass}--subhead`}>{subtagline}</h4>
33
+ </div>
34
+ {address && (
35
+ <div className="address">
36
+ {address.map((line, i) => (
37
+ <p key={i} className="address--line">
38
+ {line}
39
+ </p>
40
+ ))}
41
+ </div>
42
+ )}
43
+ {linkgroup && (
44
+ <nav className="links">
45
+ <LinkList linkgroup={linkgroup} theme="dark"></LinkList>
46
+ </nav>
47
+ )}
48
+ {(socials || subscribe) && (
49
+ <div className="connect">
50
+ {socials && (
51
+ <>
52
+ <h5 className="social--headline">{socials?.headline}</h5>
53
+ <ul className="social--links">
54
+ {socials.links &&
55
+ socials.links.map((link, index) => (
56
+ <li className="social--links--item" key={index}>
57
+ <a
58
+ className={`social--links--link ${link.type}`}
59
+ href={link.url}
60
+ >
61
+ {link.type}
62
+ </a>
63
+ </li>
64
+ ))}
65
+ </ul>
66
+ </>
67
+ )}
68
+ {subscribe && (
69
+ <Button
70
+ label={subscribe?.label}
71
+ url={subscribe?.url}
72
+ type="primary"
73
+ size="large"
74
+ target="_blank"
75
+ ></Button>
76
+ )}
77
+ </div>
78
+ )}
79
+ </div>
80
+ <div className={`${baseClass}--secondary`}>
81
+ <div className="legal">{legal}</div>
82
+ {secondarylinks && (
83
+ <nav className="secondarylinks">
84
+ <ul className="secondarylinks--list">
85
+ {secondarylinks.map((link, i) => (
86
+ <li className="secondarylinks--list--item">
87
+ <a
88
+ key={i}
89
+ href={link.url}
90
+ className="secondarylinks--list--link"
91
+ >
92
+ {link?.label}
93
+ </a>
94
+ </li>
95
+ ))}
96
+ </ul>
97
+ </nav>
98
+ )}
99
+ <a href={anchorlink?.url} className="anchorlink">
100
+ {anchorlink?.label}
101
+ </a>
102
+ </div>
103
+ </footer>
104
+ );
105
+ };
106
+
107
+ export default Footer;
@@ -0,0 +1 @@
1
+ export { default as Footer } from "./Footer";
@@ -1,6 +1,6 @@
1
1
  import { LinkListThemes } from "../../types";
2
2
 
3
- interface LinkProps {
3
+ export interface LinkProps {
4
4
  /**
5
5
  * Specify if this link should indent and have a triangle icon
6
6
  */
@@ -17,7 +17,7 @@ interface LinkProps {
17
17
  url?: Required<string>;
18
18
  }
19
19
 
20
- interface LinkGroupProps {
20
+ export interface LinkGroupProps {
21
21
  /**
22
22
  * Specify an optional headline for this link group
23
23
  */
@@ -0,0 +1,64 @@
1
+ import { LocalNavProps } from "./LocalNav.props";
2
+ import ilo_logo_white from "@ilo-org/brand-assets/logo_en_horizontal_white.svg";
3
+
4
+ const basic: LocalNavProps = {
5
+ background: "#960A55",
6
+ logo: ilo_logo_white,
7
+ siteurl: "https://www.ilo.org/",
8
+ primarynav: {
9
+ navlabel: "Primary Nav Menu",
10
+ mobilecloselabel: "Close",
11
+ items: [
12
+ {
13
+ label: "Menu Item 1",
14
+ url: "https://www.ilo.org",
15
+ },
16
+ {
17
+ label: "Menu Item 2",
18
+ url: "https://www.ilo.org",
19
+ },
20
+ {
21
+ label: "Menu Item 3",
22
+ url: "https://www.ilo.org",
23
+ },
24
+ {
25
+ label: "Menu Item 4",
26
+ url: "https://www.ilo.org",
27
+ },
28
+ {
29
+ label: "Menu Item 5",
30
+ url: "https://www.ilo.org",
31
+ },
32
+ ],
33
+ },
34
+ mainlink: {
35
+ label: "Go to main website",
36
+ url: "https://www.ilo.org",
37
+ },
38
+ languagelabel: "English",
39
+ menucloselabel: "Close",
40
+ languagecontextmenu: {
41
+ links: [
42
+ {
43
+ label: "Français",
44
+ url: "https://www.ilo.org",
45
+ },
46
+ {
47
+ label: "Español",
48
+ url: "https://www.ilo.org",
49
+ },
50
+ {
51
+ label: "中文",
52
+ url: "https://www.ilo.org",
53
+ },
54
+ {
55
+ label: "Русский",
56
+ url: "https://www.ilo.org",
57
+ },
58
+ ],
59
+ },
60
+ };
61
+
62
+ const LocalNavArgs = { basic };
63
+
64
+ export default LocalNavArgs;