@ilo-org/react 0.1.1 → 0.2.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 (69) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/lib/cjs/{DailyMotion-97d1831a.js → DailyMotion-4f88e10b.js} +1 -1
  3. package/lib/cjs/{Facebook-ccb27d1d.js → Facebook-d993b91c.js} +1 -1
  4. package/lib/cjs/{FilePlayer-81b9fc3f.js → FilePlayer-8272a6ea.js} +1 -1
  5. package/lib/cjs/{Kaltura-d6c19814.js → Kaltura-fbd2c46f.js} +1 -1
  6. package/lib/cjs/{Mixcloud-f02a460e.js → Mixcloud-2b4ffb85.js} +1 -1
  7. package/lib/cjs/{SoundCloud-cd1b1590.js → SoundCloud-356fd92d.js} +1 -1
  8. package/lib/cjs/{Streamable-f47da42a.js → Streamable-407ca855.js} +1 -1
  9. package/lib/cjs/{Twitch-c503e140.js → Twitch-ca00faaf.js} +1 -1
  10. package/lib/cjs/{Vidyard-d9c2f073.js → Vidyard-9d037503.js} +1 -1
  11. package/lib/cjs/{Vimeo-009601ef.js → Vimeo-6898bfd9.js} +1 -1
  12. package/lib/cjs/{Wistia-8c9f4c58.js → Wistia-ed77bf25.js} +1 -1
  13. package/lib/cjs/{YouTube-ec5847d4.js → YouTube-909bd761.js} +1 -1
  14. package/lib/cjs/components/Footer/Footer.js +23 -0
  15. package/lib/cjs/components/Footer/index.js +18 -0
  16. package/lib/cjs/components/LocalNav/LocalNav.js +102 -0
  17. package/lib/cjs/components/LocalNav/index.js +14 -0
  18. package/lib/cjs/components/Video/Video.js +1 -1
  19. package/lib/cjs/components/Video/VideoPlayer.js +13 -13
  20. package/lib/cjs/components/Video/index.js +1 -1
  21. package/lib/cjs/components/index.js +5 -1
  22. package/lib/cjs/index.js +5 -1
  23. package/lib/cjs/{patterns-b55db71f.js → patterns-975adf3c.js} +1 -1
  24. package/lib/esm/{DailyMotion-b35dc8bb.js → DailyMotion-9a7aeab5.js} +1 -1
  25. package/lib/esm/{Facebook-c3c77787.js → Facebook-eb35da52.js} +1 -1
  26. package/lib/esm/{FilePlayer-540e4c5a.js → FilePlayer-22314795.js} +1 -1
  27. package/lib/esm/{Kaltura-4ac3cda3.js → Kaltura-b97bb455.js} +1 -1
  28. package/lib/esm/{Mixcloud-3d4e0760.js → Mixcloud-41d6dc0b.js} +1 -1
  29. package/lib/esm/{SoundCloud-306d6c78.js → SoundCloud-0fac2e7a.js} +1 -1
  30. package/lib/esm/{Streamable-aa3d544e.js → Streamable-46f19a16.js} +1 -1
  31. package/lib/esm/{Twitch-4a1a1565.js → Twitch-1be39438.js} +1 -1
  32. package/lib/esm/{Vidyard-fe74c274.js → Vidyard-6185c490.js} +1 -1
  33. package/lib/esm/{Vimeo-074f2c39.js → Vimeo-a807e7e1.js} +1 -1
  34. package/lib/esm/{Wistia-0a2b73b0.js → Wistia-eef03ce2.js} +1 -1
  35. package/lib/esm/{YouTube-d58f130b.js → YouTube-e030042e.js} +1 -1
  36. package/lib/esm/components/Footer/Footer.js +21 -0
  37. package/lib/esm/components/Footer/index.js +12 -0
  38. package/lib/esm/components/LocalNav/LocalNav.js +100 -0
  39. package/lib/esm/components/LocalNav/index.js +8 -0
  40. package/lib/esm/components/Video/Video.js +1 -1
  41. package/lib/esm/components/Video/VideoPlayer.js +13 -13
  42. package/lib/esm/components/Video/index.js +1 -1
  43. package/lib/esm/components/index.js +3 -1
  44. package/lib/esm/index.js +3 -1
  45. package/lib/esm/{patterns-3a3fa9d6.js → patterns-53247c1d.js} +1 -1
  46. package/lib/types/react/src/components/ContextMenu/ContextMenu.props.d.ts +1 -2
  47. package/lib/types/react/src/components/Footer/Footer.d.ts +4 -0
  48. package/lib/types/react/src/components/Footer/Footer.props.d.ts +70 -0
  49. package/lib/types/react/src/components/Footer/index.d.ts +1 -0
  50. package/lib/types/react/src/components/LinkList/LinkList.props.d.ts +2 -3
  51. package/lib/types/react/src/components/LocalNav/LocalNav.d.ts +4 -0
  52. package/lib/types/react/src/components/LocalNav/LocalNav.props.d.ts +50 -0
  53. package/lib/types/react/src/components/LocalNav/index.d.ts +1 -0
  54. package/lib/types/react/src/components/index.d.ts +2 -0
  55. package/lib/types/react/src/types/index.d.ts +1 -0
  56. package/package.json +15 -6
  57. package/src/components/ContextMenu/ContextMenu.props.ts +1 -1
  58. package/src/components/Footer/Footer.args.ts +105 -0
  59. package/src/components/Footer/Footer.props.ts +84 -0
  60. package/src/components/Footer/Footer.tsx +107 -0
  61. package/src/components/Footer/index.ts +1 -0
  62. package/src/components/LinkList/LinkList.props.ts +2 -2
  63. package/src/components/LocalNav/LocalNav.args.ts +64 -0
  64. package/src/components/LocalNav/LocalNav.props.ts +60 -0
  65. package/src/components/LocalNav/LocalNav.tsx +175 -0
  66. package/src/components/LocalNav/index.ts +1 -0
  67. package/src/components/index.ts +2 -0
  68. package/src/declarations.d.ts +14 -0
  69. package/src/types/index.ts +1 -0
@@ -0,0 +1,21 @@
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
+ import useGlobalSettings from '../../hooks/useGlobalSettings.js';
3
+ import classNames from 'classnames';
4
+ import LinkList from '../LinkList/LinkList.js';
5
+ import Button from '../Button/Button.js';
6
+ import 'tslib';
7
+ import 'react';
8
+ import '../../GlobalCtx-7fb23cfa.js';
9
+ import '../Link/Link.js';
10
+ import '../Icon/Icon.js';
11
+ import '@ilo-org/icons-react';
12
+
13
+ const Footer = ({ className, logo, tagline, subtagline, address, linkgroup, socials, subscribe, legal, secondarylinks, anchorlink, }) => {
14
+ const { prefix } = useGlobalSettings();
15
+ const baseClass = `${prefix}--footer`;
16
+ const footerClasses = classNames(className, baseClass);
17
+ return (jsxs("footer", Object.assign({ className: footerClasses }, { children: [jsxs("div", Object.assign({ className: `${baseClass}--main` }, { children: [jsxs("div", Object.assign({ className: "site--info" }, { children: [jsx("img", { className: `${baseClass}--logo`, src: logo, alt: "ILO Logo" }), jsx("h3", Object.assign({ className: `${baseClass}--headline` }, { children: tagline })), jsx("h4", Object.assign({ className: `${baseClass}--subhead` }, { children: subtagline }))] })), address && (jsx("div", Object.assign({ className: "address" }, { children: address.map((line, i) => (jsx("p", Object.assign({ className: "address--line" }, { children: line }), i))) }))), linkgroup && (jsx("nav", Object.assign({ className: "links" }, { children: jsx(LinkList, { linkgroup: linkgroup, theme: "dark" }) }))), (socials || subscribe) && (jsxs("div", Object.assign({ className: "connect" }, { children: [socials && (jsxs(Fragment, { children: [jsx("h5", Object.assign({ className: "social--headline" }, { children: socials === null || socials === void 0 ? void 0 : socials.headline })), jsx("ul", Object.assign({ className: "social--links" }, { children: socials.links &&
18
+ socials.links.map((link, index) => (jsx("li", Object.assign({ className: "social--links--item" }, { children: jsx("a", Object.assign({ className: `social--links--link ${link.type}`, href: link.url }, { children: link.type })) }), index))) }))] })), subscribe && (jsx(Button, { label: subscribe === null || subscribe === void 0 ? void 0 : subscribe.label, url: subscribe === null || subscribe === void 0 ? void 0 : subscribe.url, type: "primary", size: "large", target: "_blank" }))] })))] })), jsxs("div", Object.assign({ className: `${baseClass}--secondary` }, { children: [jsx("div", Object.assign({ className: "legal" }, { children: legal })), secondarylinks && (jsx("nav", Object.assign({ className: "secondarylinks" }, { children: jsx("ul", Object.assign({ className: "secondarylinks--list" }, { children: secondarylinks.map((link, i) => (jsx("li", Object.assign({ className: "secondarylinks--list--item" }, { children: jsx("a", Object.assign({ href: link.url, className: "secondarylinks--list--link" }, { children: link === null || link === void 0 ? void 0 : link.label }), i) })))) })) }))), jsx("a", Object.assign({ href: anchorlink === null || anchorlink === void 0 ? void 0 : anchorlink.url, className: "anchorlink" }, { children: anchorlink === null || anchorlink === void 0 ? void 0 : anchorlink.label }))] }))] })));
19
+ };
20
+
21
+ export { Footer as default };
@@ -0,0 +1,12 @@
1
+ export { default as Footer } from './Footer.js';
2
+ import 'react/jsx-runtime';
3
+ import '../../hooks/useGlobalSettings.js';
4
+ import 'tslib';
5
+ import 'react';
6
+ import '../../GlobalCtx-7fb23cfa.js';
7
+ import 'classnames';
8
+ import '../LinkList/LinkList.js';
9
+ import '../Button/Button.js';
10
+ import '../Link/Link.js';
11
+ import '../Icon/Icon.js';
12
+ import '@ilo-org/icons-react';
@@ -0,0 +1,100 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { useState } from 'react';
3
+ import useGlobalSettings from '../../hooks/useGlobalSettings.js';
4
+ import ContextMenu from '../ContextMenu/ContextMenu.js';
5
+ import classNames from 'classnames';
6
+ import 'tslib';
7
+ import '../../GlobalCtx-7fb23cfa.js';
8
+
9
+ var brand = {
10
+ "ilo-blue": {
11
+ value: "rgba(30, 45, 190, 1)"
12
+ },
13
+ "ilo-red": {
14
+ value: "rgba(250, 60, 75, 1)"
15
+ },
16
+ "ilo-dark-blue": {
17
+ value: "rgba(35, 0, 80, 1)"
18
+ },
19
+ "ilo-yellow": {
20
+ value: "rgba(255, 205, 45, 1)"
21
+ },
22
+ "ilo-green": {
23
+ value: "rgba(140, 225, 100, 1)"
24
+ },
25
+ "ilo-purple": {
26
+ value: "rgba(150, 10, 85, 1)"
27
+ },
28
+ "ilo-purple-light": {
29
+ value: "rgba(116, 96, 145, 1)"
30
+ },
31
+ "ilo-turquoise": {
32
+ value: "rgba(5, 210, 210, 1)"
33
+ },
34
+ "ilo-dark-red": {
35
+ value: "rgba(200, 48, 60, 1)"
36
+ },
37
+ "ilo-lighter-blue": {
38
+ value: "rgba(235, 245, 253, 1)"
39
+ },
40
+ "ilo-light-blue": {
41
+ value: "rgba(235, 245, 253, 1)"
42
+ },
43
+ "ilo-grey-light-alternate": {
44
+ value: "rgba(246, 247, 248, 1)"
45
+ },
46
+ "ilo-grey-light": {
47
+ value: "rgba(237, 240, 242, 1)"
48
+ },
49
+ "ilo-grey-ui": {
50
+ value: "rgba(184, 196, 204, 1)"
51
+ },
52
+ "ilo-grey-accessible": {
53
+ value: "rgba(109, 109, 109, 1)"
54
+ },
55
+ "ilo-grey-charcoal": {
56
+ value: "rgba(45, 45, 45, 1)"
57
+ },
58
+ "ilo-black": {
59
+ value: "rgba(45, 45, 45, 1)"
60
+ },
61
+ "ilo-white": {
62
+ value: "rgba(255, 255, 255, 1)"
63
+ },
64
+ "ilo-ramp-blue": {
65
+ value: "rgba(190, 220, 250, 1)"
66
+ },
67
+ "ilo-ramp-red": {
68
+ value: "rgba(254, 216, 219, 1)"
69
+ },
70
+ "ilo-ramp-green": {
71
+ value: "rgba(232, 249, 224, 1)"
72
+ },
73
+ "ilo-ramp-yellow": {
74
+ value: "rgba(255, 245, 200, 1)"
75
+ }
76
+ };
77
+
78
+ const LocalNav = ({ background, logo, siteurl, primarynav, mainlink, menucloselabel, languagelabel, languagecontextmenu, }) => {
79
+ const { prefix } = useGlobalSettings();
80
+ const [toggleMenuOpen, setMenuToggleOpen] = useState(false);
81
+ const [toggleLanguageOpen, setLanguageToggleOpen] = useState(false);
82
+ const baseClass = `${prefix}--header`;
83
+ const localNavClasses = classNames(baseClass, `${baseClass}--local`, {
84
+ [`${prefix}--mobile--open`]: toggleMenuOpen,
85
+ [`${prefix}--select--open`]: toggleLanguageOpen,
86
+ });
87
+ const bg = background ? background : brand["ilo-dark-blue"].value;
88
+ const handleMenuToggle = () => {
89
+ setMenuToggleOpen(!toggleMenuOpen);
90
+ };
91
+ const handleLanguageToggle = () => {
92
+ setLanguageToggleOpen(!toggleLanguageOpen);
93
+ };
94
+ return (jsx("header", Object.assign({ className: localNavClasses }, { children: jsxs("div", Object.assign({ className: `${baseClass}--utility-bar ${baseClass}--utility-bar--local`, style: { background: bg } }, { children: [jsxs("nav", Object.assign({ className: `${prefix}--nav--local` }, { children: [jsx("div", Object.assign({ className: `${prefix}--nav--local--logo-wrapper` }, { children: jsx("a", Object.assign({ href: siteurl, className: `${prefix}--nav--local--logo-link` }, { children: jsx("img", { src: logo, alt: "ILO Logo", className: `${prefix}--nav--local--logo` }) })) })), jsx("ul", Object.assign({ className: `${prefix}--nav--local--set` }, { children: (primarynav === null || primarynav === void 0 ? void 0 : primarynav.items) &&
95
+ primarynav.items.map((item, index) => (jsx("li", Object.assign({ className: `${prefix}--nav--local--item` }, { children: jsx("a", Object.assign({ href: item.url, className: `${prefix}--nav--local--link` }, { children: jsx("span", { children: item.label }) })) }), index))) }))] })), jsx("div", Object.assign({ className: `${prefix}--language-switcher` }, { children: jsxs("div", Object.assign({ className: `${prefix}--language-switcher--wrap` }, { children: [mainlink && (jsx("span", Object.assign({ className: `${prefix}--language-switcher--link--wrap` }, { children: jsx("a", Object.assign({ href: mainlink.url, className: `${prefix}--language-switcher--link` }, { children: mainlink.label })) }))), jsx("button", Object.assign({ className: `${prefix}--language-switcher--button`, type: "button" }, { children: languagelabel })), jsx(ContextMenu, { links: languagecontextmenu === null || languagecontextmenu === void 0 ? void 0 : languagecontextmenu.links })] })) })), jsx("button", Object.assign({ className: `${baseClass}--menu`, onClick: handleMenuToggle }, { children: "Menu" })), jsx("div", Object.assign({ className: `${baseClass}--navigation` }, { children: jsxs("div", Object.assign({ className: `${baseClass}--inner` }, { children: [jsxs("div", Object.assign({ className: `${prefix}--mobile--nav` }, { children: [jsxs("div", Object.assign({ className: `${prefix}--mobile--nav--logo` }, { children: [jsx("a", Object.assign({ href: siteurl, className: `${baseClass}--logo-link` }, { children: jsx("img", { className: `${baseClass}--logo`, src: logo, alt: "ILO Logo" }) })), jsx("button", Object.assign({ className: `${baseClass}--menu--close`, onClick: handleMenuToggle }, { children: menucloselabel }))] })), jsx("div", Object.assign({ className: `${prefix}--mobile--nav--language--switcher` }, { children: jsx("button", Object.assign({ className: `${prefix}--mobile--nav--language--switcher--button`, onClick: handleLanguageToggle, type: "button" }, { children: languagelabel })) })), jsx("div", Object.assign({ className: `${prefix}--mobile--nav--language--select` }, { children: jsxs("div", Object.assign({ className: `${baseClass}--inner` }, { children: [jsxs("div", Object.assign({ className: `${prefix}--mobile--subnav--menu` }, { children: [jsx("button", { className: `${prefix}--mobile--subnav--back`, onClick: handleLanguageToggle, type: "button" }), jsx("button", Object.assign({ className: `${baseClass}--menu--close`, onClick: handleMenuToggle }, { children: "Close" })), jsx("h6", Object.assign({ className: `${prefix}--mobile--subnav--label` }, { children: languagelabel }))] })), jsx("ul", Object.assign({ className: `${prefix}--nav--set` }, { children: (languagecontextmenu === null || languagecontextmenu === void 0 ? void 0 : languagecontextmenu.links) &&
96
+ languagecontextmenu.links.map((item, index) => (jsx("li", Object.assign({ className: `${prefix}--nav--items` }, { children: jsx("a", Object.assign({ href: item.url, className: `${prefix}--nav--link ${prefix}--nav--language` }, { children: item.label })) }), index))) }))] })) }))] })), jsxs("nav", Object.assign({ className: `${prefix}--nav`, "aria-labelledby": "primary-navigation" }, { children: [jsx("h2", Object.assign({ className: `${prefix}--nav--label`, id: "primary-navigation" }, { children: primarynav === null || primarynav === void 0 ? void 0 : primarynav.navlabel })), jsx("ul", Object.assign({ className: `${prefix}--nav--set` }, { children: (primarynav === null || primarynav === void 0 ? void 0 : primarynav.items) &&
97
+ primarynav.items.map((item, index) => (jsx("li", Object.assign({ className: `${prefix}--nav--items` }, { children: jsx("a", Object.assign({ href: item.url, className: `${prefix}--nav--link` }, { children: item.label })) }), index))) }))] }))] })) }))] })) })));
98
+ };
99
+
100
+ export { LocalNav as default };
@@ -0,0 +1,8 @@
1
+ export { default as LocalNav } from './LocalNav.js';
2
+ import 'react/jsx-runtime';
3
+ import 'react';
4
+ import '../../hooks/useGlobalSettings.js';
5
+ import 'tslib';
6
+ import '../../GlobalCtx-7fb23cfa.js';
7
+ import '../ContextMenu/ContextMenu.js';
8
+ import 'classnames';
@@ -6,7 +6,7 @@ import 'tslib';
6
6
  import 'react';
7
7
  import '../../GlobalCtx-7fb23cfa.js';
8
8
  import '../../_commonjsHelpers-849bcf65.js';
9
- import '../../patterns-3a3fa9d6.js';
9
+ import '../../patterns-53247c1d.js';
10
10
  import '../../index-8ebb2cc1.js';
11
11
  import 'react-dom';
12
12
  import '../../utils/hoursMinutesSeconds.js';
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import require$$0, { useState, createRef } from 'react';
3
3
  import { g as getAugmentedNamespace, c as commonjsGlobal, a as getDefaultExportFromCjs } from '../../_commonjsHelpers-849bcf65.js';
4
- import { u as utils, p as patterns, c as cjs } from '../../patterns-3a3fa9d6.js';
4
+ import { u as utils, p as patterns, c as cjs } from '../../patterns-53247c1d.js';
5
5
  import { p as propTypesExports } from '../../index-8ebb2cc1.js';
6
6
  import { findDOMNode } from 'react-dom';
7
7
  import classNames from 'classnames';
@@ -35,7 +35,7 @@ var players = {};
35
35
  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {
36
36
  return import(
37
37
  /* webpackChunkName: 'reactPlayerYouTube' */
38
- '../../YouTube-d58f130b.js').then(function (n) { return n.Y; });
38
+ '../../YouTube-e030042e.js').then(function (n) { return n.Y; });
39
39
  })
40
40
  }, {
41
41
  key: 'soundcloud',
@@ -44,7 +44,7 @@ var players = {};
44
44
  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {
45
45
  return import(
46
46
  /* webpackChunkName: 'reactPlayerSoundCloud' */
47
- '../../SoundCloud-306d6c78.js').then(function (n) { return n.S; });
47
+ '../../SoundCloud-0fac2e7a.js').then(function (n) { return n.S; });
48
48
  })
49
49
  }, {
50
50
  key: 'vimeo',
@@ -53,7 +53,7 @@ var players = {};
53
53
  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {
54
54
  return import(
55
55
  /* webpackChunkName: 'reactPlayerVimeo' */
56
- '../../Vimeo-074f2c39.js').then(function (n) { return n.V; });
56
+ '../../Vimeo-a807e7e1.js').then(function (n) { return n.V; });
57
57
  })
58
58
  }, {
59
59
  key: 'facebook',
@@ -62,7 +62,7 @@ var players = {};
62
62
  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {
63
63
  return import(
64
64
  /* webpackChunkName: 'reactPlayerFacebook' */
65
- '../../Facebook-c3c77787.js').then(function (n) { return n.F; });
65
+ '../../Facebook-eb35da52.js').then(function (n) { return n.F; });
66
66
  })
67
67
  }, {
68
68
  key: 'streamable',
@@ -71,7 +71,7 @@ var players = {};
71
71
  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {
72
72
  return import(
73
73
  /* webpackChunkName: 'reactPlayerStreamable' */
74
- '../../Streamable-aa3d544e.js').then(function (n) { return n.S; });
74
+ '../../Streamable-46f19a16.js').then(function (n) { return n.S; });
75
75
  })
76
76
  }, {
77
77
  key: 'wistia',
@@ -80,7 +80,7 @@ var players = {};
80
80
  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {
81
81
  return import(
82
82
  /* webpackChunkName: 'reactPlayerWistia' */
83
- '../../Wistia-0a2b73b0.js').then(function (n) { return n.W; });
83
+ '../../Wistia-eef03ce2.js').then(function (n) { return n.W; });
84
84
  })
85
85
  }, {
86
86
  key: 'twitch',
@@ -89,7 +89,7 @@ var players = {};
89
89
  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {
90
90
  return import(
91
91
  /* webpackChunkName: 'reactPlayerTwitch' */
92
- '../../Twitch-4a1a1565.js').then(function (n) { return n.T; });
92
+ '../../Twitch-1be39438.js').then(function (n) { return n.T; });
93
93
  })
94
94
  }, {
95
95
  key: 'dailymotion',
@@ -98,7 +98,7 @@ var players = {};
98
98
  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {
99
99
  return import(
100
100
  /* webpackChunkName: 'reactPlayerDailyMotion' */
101
- '../../DailyMotion-b35dc8bb.js').then(function (n) { return n.D; });
101
+ '../../DailyMotion-9a7aeab5.js').then(function (n) { return n.D; });
102
102
  })
103
103
  }, {
104
104
  key: 'mixcloud',
@@ -107,7 +107,7 @@ var players = {};
107
107
  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {
108
108
  return import(
109
109
  /* webpackChunkName: 'reactPlayerMixcloud' */
110
- '../../Mixcloud-3d4e0760.js').then(function (n) { return n.M; });
110
+ '../../Mixcloud-41d6dc0b.js').then(function (n) { return n.M; });
111
111
  })
112
112
  }, {
113
113
  key: 'vidyard',
@@ -116,7 +116,7 @@ var players = {};
116
116
  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {
117
117
  return import(
118
118
  /* webpackChunkName: 'reactPlayerVidyard' */
119
- '../../Vidyard-fe74c274.js').then(function (n) { return n.V; });
119
+ '../../Vidyard-6185c490.js').then(function (n) { return n.V; });
120
120
  })
121
121
  }, {
122
122
  key: 'kaltura',
@@ -125,7 +125,7 @@ var players = {};
125
125
  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {
126
126
  return import(
127
127
  /* webpackChunkName: 'reactPlayerKaltura' */
128
- '../../Kaltura-4ac3cda3.js').then(function (n) { return n.K; });
128
+ '../../Kaltura-b97bb455.js').then(function (n) { return n.K; });
129
129
  })
130
130
  }, {
131
131
  key: 'file',
@@ -137,7 +137,7 @@ var players = {};
137
137
  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {
138
138
  return import(
139
139
  /* webpackChunkName: 'reactPlayerFilePlayer' */
140
- '../../FilePlayer-540e4c5a.js').then(function (n) { return n.F; });
140
+ '../../FilePlayer-22314795.js').then(function (n) { return n.F; });
141
141
  })
142
142
  }];
143
143
  exports["default"] = _default;
@@ -7,7 +7,7 @@ import 'react';
7
7
  import '../../GlobalCtx-7fb23cfa.js';
8
8
  import './VideoPlayer.js';
9
9
  import '../../_commonjsHelpers-849bcf65.js';
10
- import '../../patterns-3a3fa9d6.js';
10
+ import '../../patterns-53247c1d.js';
11
11
  import '../../index-8ebb2cc1.js';
12
12
  import 'react-dom';
13
13
  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';
@@ -63,6 +65,6 @@ import '@ilo-org/icons-react';
63
65
  import './Hero/HeroCard.js';
64
66
  import './Video/VideoPlayer.js';
65
67
  import '../_commonjsHelpers-849bcf65.js';
66
- import '../patterns-3a3fa9d6.js';
68
+ import '../patterns-53247c1d.js';
67
69
  import '../utils/hoursMinutesSeconds.js';
68
70
  import 'screenfull';
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';
@@ -62,7 +64,7 @@ import './utils/triggerBrowserReflow.js';
62
64
  import './components/Hero/HeroCard.js';
63
65
  import './components/Video/VideoPlayer.js';
64
66
  import './_commonjsHelpers-849bcf65.js';
65
- import './patterns-3a3fa9d6.js';
67
+ import './patterns-53247c1d.js';
66
68
  import './utils/hoursMinutesSeconds.js';
67
69
  import 'screenfull';
68
70
  import '@ilo-org/icons-react';
@@ -117,7 +117,7 @@ function getMergeFunction(key, options) {
117
117
  function getEnumerableOwnPropertySymbols(target) {
118
118
  return Object.getOwnPropertySymbols
119
119
  ? Object.getOwnPropertySymbols(target).filter(function(symbol) {
120
- return target.propertyIsEnumerable(symbol)
120
+ return Object.propertyIsEnumerable.call(target, symbol)
121
121
  })
122
122
  : []
123
123
  }
@@ -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.1",
3
+ "version": "0.2.0",
4
4
  "description": "React components for the ILO's Design System",
5
5
  "keywords": [
6
6
  "ui_patterns",
@@ -49,6 +49,11 @@
49
49
  "module": "lib/esm/index.js",
50
50
  "type": "module",
51
51
  "types": "lib/types/react/src/index.d.ts",
52
+ "jest": {
53
+ "moduleNameMapper": {
54
+ ".+\\.(css|styl|less|sass|scss|png|jpg|svg|ttf|woff|woff2)$": "identity-obj-proxy"
55
+ }
56
+ },
52
57
  "browserslist": {
53
58
  "production": [
54
59
  ">0.2%",
@@ -66,10 +71,10 @@
66
71
  "dom-helpers": "^5.2.1",
67
72
  "react-player": "2.10.1",
68
73
  "react-transition-group": "^4.4.1",
69
- "@ilo-org/brand-assets": "0.0.2",
70
- "@ilo-org/fonts": "0.0.7",
74
+ "@ilo-org/brand-assets": "0.1.0",
75
+ "@ilo-org/fonts": "0.1.0",
71
76
  "@ilo-org/icons-react": "0.0.18",
72
- "@ilo-org/styles": "0.1.16",
77
+ "@ilo-org/styles": "0.1.18",
73
78
  "@ilo-org/themes": "0.1.15",
74
79
  "@ilo-org/utils": "0.0.11"
75
80
  },
@@ -86,6 +91,7 @@
86
91
  "@storybook/blocks": "next",
87
92
  "@storybook/builder-webpack5": "next",
88
93
  "@storybook/client-api": "next",
94
+ "@storybook/manager-api": "next",
89
95
  "@storybook/manager-webpack5": "6.5.15",
90
96
  "@storybook/node-logger": "next",
91
97
  "@storybook/preset-create-react-app": "4.1.2",
@@ -103,10 +109,12 @@
103
109
  "@types/react": "17.0.11",
104
110
  "@types/react-dom": "^17.0.13",
105
111
  "http-server": "^14.1.0",
112
+ "identity-obj-proxy": "^3.0.0",
106
113
  "jest-environment-jsdom": "^27.5.1",
107
114
  "nodemon": "^2.0.20",
108
115
  "react": "17.0.2",
109
116
  "react-dom": "17.0.2",
117
+ "react-element-to-jsx-string": "^15.0.0",
110
118
  "react-scripts": "5.0.1",
111
119
  "remark-gfm": "^3.0.1",
112
120
  "rollup": "^3.9.0",
@@ -121,12 +129,13 @@
121
129
  "screenfull": "^5.2.0",
122
130
  "storybook": "next",
123
131
  "storybook-addon-performance": "^0.16.1",
132
+ "ts-dedent": "^2.2.0",
124
133
  "ts-jest": "^27.1.3",
125
134
  "tslib": "^2.3.1",
126
135
  "typescript": "4.9.3",
127
136
  "webpack": "^5.68.0",
128
- "@ilo-org/eslint-config": "0.0.2",
129
- "@ilo-org/prettier-config": "0.0.1",
137
+ "@ilo-org/eslint-config": "0.0.3",
138
+ "@ilo-org/prettier-config": "0.0.2",
130
139
  "@ilo-org/typescript-config": "0.0.1"
131
140
  },
132
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
  */