@ilo-org/react 0.12.0 → 0.14.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 (260) hide show
  1. package/.storybook/main.ts +41 -0
  2. package/.storybook/manager-head.html +92 -0
  3. package/.storybook/manager.ts +6 -0
  4. package/.storybook/preview-head.html +5 -0
  5. package/.storybook/preview.tsx +81 -0
  6. package/.storybook/styles.scss +25 -0
  7. package/.storybook/theme.ts +46 -0
  8. package/.turbo/turbo-build:lib.log +15 -0
  9. package/CHANGELOG.md +43 -0
  10. package/lib/cjs/components/Cards/CardGroup/CardGroup.js +41 -0
  11. package/lib/cjs/components/Cards/CardGroup/index.js +796 -0
  12. package/lib/cjs/components/Cards/DataCard/DataCard.js +27 -0
  13. package/lib/cjs/components/Cards/DataCard/index.js +73 -19
  14. package/lib/cjs/components/Cards/DetailCard/DetailCard.js +20 -0
  15. package/lib/cjs/components/Cards/DetailCard/index.js +17 -12
  16. package/lib/cjs/components/Cards/FactlistCard/FactListCard.js +22 -0
  17. package/lib/cjs/components/Cards/FactlistCard/index.js +16 -15
  18. package/lib/cjs/components/Cards/FeatureCard/FeatureCard.js +24 -0
  19. package/lib/cjs/components/Cards/FeatureCard/index.js +31 -16
  20. package/lib/cjs/components/Cards/MultilinkCard/MultiLinkCard.js +24 -0
  21. package/lib/cjs/components/Cards/MultilinkCard/index.js +35 -16
  22. package/lib/cjs/components/Cards/PromoCard/PromoCard.js +23 -0
  23. package/lib/cjs/components/Cards/PromoCard/index.js +18 -15
  24. package/lib/cjs/components/Cards/StatCard/StatCard.js +21 -0
  25. package/lib/cjs/components/Cards/StatCard/index.js +15 -13
  26. package/lib/cjs/components/Cards/TextCard/TextCard.js +23 -0
  27. package/lib/cjs/components/Cards/TextCard/index.js +22 -17
  28. package/lib/cjs/components/Footer/Footer.js +1 -1
  29. package/lib/cjs/components/List/List.js +9 -11
  30. package/lib/cjs/components/List/ListItem.js +4 -7
  31. package/lib/cjs/components/List/index.js +1 -2
  32. package/lib/cjs/components/Navigation/Navigation.js +3 -3
  33. package/lib/cjs/components/Pagination/Pagination.js +1 -1
  34. package/lib/cjs/components/index.js +10 -13
  35. package/lib/cjs/index.js +10 -13
  36. package/lib/esm/components/Cards/CardGroup/CardGroup.js +39 -0
  37. package/lib/esm/components/Cards/CardGroup/index.js +793 -0
  38. package/lib/esm/components/Cards/DataCard/DataCard.js +25 -0
  39. package/lib/esm/components/Cards/DataCard/index.js +72 -19
  40. package/lib/esm/components/Cards/DetailCard/DetailCard.js +18 -0
  41. package/lib/esm/components/Cards/DetailCard/index.js +16 -12
  42. package/lib/esm/components/Cards/FactlistCard/FactListCard.js +20 -0
  43. package/lib/esm/components/Cards/FactlistCard/index.js +15 -15
  44. package/lib/esm/components/Cards/FeatureCard/FeatureCard.js +22 -0
  45. package/lib/esm/components/Cards/FeatureCard/index.js +30 -16
  46. package/lib/esm/components/Cards/MultilinkCard/MultiLinkCard.js +22 -0
  47. package/lib/esm/components/Cards/MultilinkCard/index.js +34 -16
  48. package/lib/esm/components/Cards/PromoCard/PromoCard.js +21 -0
  49. package/lib/esm/components/Cards/PromoCard/index.js +17 -15
  50. package/lib/esm/components/Cards/StatCard/StatCard.js +19 -0
  51. package/lib/esm/components/Cards/StatCard/index.js +14 -13
  52. package/lib/esm/components/Cards/TextCard/TextCard.js +21 -0
  53. package/lib/esm/components/Cards/TextCard/index.js +21 -17
  54. package/lib/esm/components/Footer/Footer.js +1 -1
  55. package/lib/esm/components/List/List.js +10 -12
  56. package/lib/esm/components/List/ListItem.js +4 -7
  57. package/lib/esm/components/List/index.js +1 -2
  58. package/lib/esm/components/Navigation/Navigation.js +3 -3
  59. package/lib/esm/components/Pagination/Pagination.js +1 -1
  60. package/lib/esm/components/index.js +9 -11
  61. package/lib/esm/index.js +9 -11
  62. package/lib/types/react/src/components/Cards/CardGroup/CardGroup.args.d.ts +13 -0
  63. package/lib/types/react/src/components/Cards/CardGroup/CardGroup.props.d.ts +58 -0
  64. package/lib/types/react/src/components/Cards/CardGroup/index.d.ts +3 -0
  65. package/lib/types/react/src/components/Cards/DataCard/DataCard.args.d.ts +2 -0
  66. package/lib/types/react/src/components/Cards/DataCard/DataCard.d.ts +4 -0
  67. package/lib/types/react/src/components/Cards/DataCard/DataCard.props.d.ts +50 -0
  68. package/lib/types/react/src/components/Cards/DataCard/index.d.ts +3 -4
  69. package/lib/types/react/src/components/Cards/DetailCard/DetailCard.args.d.ts +3 -0
  70. package/lib/types/react/src/components/Cards/DetailCard/DetailCard.d.ts +4 -0
  71. package/lib/types/react/src/components/Cards/DetailCard/DetailCard.props.d.ts +35 -0
  72. package/lib/types/react/src/components/Cards/DetailCard/index.d.ts +3 -4
  73. package/lib/types/react/src/components/Cards/FactlistCard/FactListCard.args.d.ts +3 -0
  74. package/lib/types/react/src/components/Cards/FactlistCard/FactListCard.d.ts +4 -0
  75. package/lib/types/react/src/components/Cards/FactlistCard/FactListCard.props.d.ts +16 -0
  76. package/lib/types/react/src/components/Cards/FactlistCard/index.d.ts +3 -4
  77. package/lib/types/react/src/components/Cards/FeatureCard/FeatureCard.args.d.ts +3 -0
  78. package/lib/types/react/src/components/Cards/FeatureCard/FeatureCard.d.ts +4 -0
  79. package/lib/types/react/src/components/Cards/FeatureCard/FeatureCard.props.d.ts +31 -0
  80. package/lib/types/react/src/components/Cards/FeatureCard/index.d.ts +3 -4
  81. package/lib/types/react/src/components/Cards/MultilinkCard/MultiLinkCard.d.ts +4 -0
  82. package/lib/types/react/src/components/Cards/MultilinkCard/MultilinkCard.args.d.ts +2 -0
  83. package/lib/types/react/src/components/Cards/MultilinkCard/MultilinkCard.props.d.ts +25 -0
  84. package/lib/types/react/src/components/Cards/MultilinkCard/index.d.ts +3 -4
  85. package/lib/types/react/src/components/Cards/PromoCard/PromoCard.args.d.ts +3 -0
  86. package/lib/types/react/src/components/Cards/PromoCard/PromoCard.d.ts +4 -0
  87. package/lib/types/react/src/components/Cards/PromoCard/PromoCard.props.d.ts +30 -0
  88. package/lib/types/react/src/components/Cards/PromoCard/index.d.ts +3 -4
  89. package/lib/types/react/src/components/Cards/StatCard/StatCard.args.d.ts +3 -0
  90. package/lib/types/react/src/components/Cards/StatCard/StatCard.d.ts +4 -0
  91. package/lib/types/react/src/components/Cards/StatCard/StatCard.props.d.ts +18 -0
  92. package/lib/types/react/src/components/Cards/StatCard/index.d.ts +3 -4
  93. package/lib/types/react/src/components/Cards/TextCard/TextCard.args.d.ts +3 -0
  94. package/lib/types/react/src/components/Cards/TextCard/TextCard.d.ts +4 -0
  95. package/lib/types/react/src/components/Cards/TextCard/TextCard.props.d.ts +26 -0
  96. package/lib/types/react/src/components/Cards/TextCard/index.d.ts +3 -4
  97. package/lib/types/react/src/components/List/List.props.d.ts +2 -9
  98. package/lib/types/react/src/components/List/ListItem.props.d.ts +0 -6
  99. package/lib/types/react/src/components/index.d.ts +1 -1
  100. package/lib/types/react/src/types/index.d.ts +4 -2
  101. package/package.json +32 -12
  102. package/public/react.svg +8 -0
  103. package/rollup.config.mjs +2 -0
  104. package/src/__tests__/Accordion.test.tsx +16 -0
  105. package/src/__tests__/Button.test.tsx +60 -0
  106. package/src/__tests__/Callout.test.tsx +43 -0
  107. package/src/__tests__/ContextMenu.test.tsx +19 -0
  108. package/src/__tests__/Dropdown.test.tsx +38 -0
  109. package/src/__tests__/Heading.test.tsx +51 -0
  110. package/src/__tests__/Image.test.tsx +21 -0
  111. package/src/__tests__/LinkList.test.tsx +17 -0
  112. package/src/__tests__/List.test.tsx +25 -0
  113. package/src/__tests__/Loading.test.tsx +33 -0
  114. package/src/__tests__/Notification.test.tsx +39 -0
  115. package/src/__tests__/Pagination.test.tsx +58 -0
  116. package/src/__tests__/Profile.test.tsx +48 -0
  117. package/src/__tests__/ReadMore.test.tsx +43 -0
  118. package/src/__tests__/RichText.test.tsx +16 -0
  119. package/src/__tests__/SearchField.test.tsx +35 -0
  120. package/src/__tests__/TableOfContents.test.tsx +12 -0
  121. package/src/__tests__/Tag.test.tsx +10 -0
  122. package/src/components/Cards/{CardGroup.args.ts → CardGroup/CardGroup.args.ts} +299 -437
  123. package/src/components/Cards/CardGroup/CardGroup.props.ts +78 -0
  124. package/src/components/Cards/CardGroup/CardGroup.tsx +54 -0
  125. package/src/components/Cards/CardGroup/index.tsx +3 -0
  126. package/src/components/Cards/DataCard/DataCard.args.ts +69 -0
  127. package/src/components/Cards/DataCard/DataCard.props.ts +60 -0
  128. package/src/components/Cards/DataCard/DataCard.tsx +107 -0
  129. package/src/components/Cards/DataCard/index.tsx +3 -107
  130. package/src/components/Cards/DetailCard/DetailCard.args.ts +17 -0
  131. package/src/components/Cards/DetailCard/DetailCard.props.ts +43 -0
  132. package/src/components/Cards/DetailCard/DetailCard.tsx +62 -0
  133. package/src/components/Cards/DetailCard/index.tsx +3 -62
  134. package/src/components/Cards/FactlistCard/FactListCard.args.ts +14 -0
  135. package/src/components/Cards/FactlistCard/FactListCard.props.ts +19 -0
  136. package/src/components/Cards/FactlistCard/FactListCard.tsx +42 -0
  137. package/src/components/Cards/FactlistCard/index.tsx +3 -42
  138. package/src/components/Cards/FeatureCard/FeatureCard.args.ts +30 -0
  139. package/src/components/Cards/FeatureCard/FeatureCard.props.ts +38 -0
  140. package/src/components/Cards/FeatureCard/FeatureCard.tsx +69 -0
  141. package/src/components/Cards/FeatureCard/index.tsx +3 -69
  142. package/src/components/Cards/MultilinkCard/MultiLinkCard.tsx +76 -0
  143. package/src/components/Cards/MultilinkCard/MultilinkCard.args.ts +33 -0
  144. package/src/components/Cards/MultilinkCard/MultilinkCard.props.ts +30 -0
  145. package/src/components/Cards/MultilinkCard/index.tsx +3 -76
  146. package/src/components/Cards/PromoCard/PromoCard.args.ts +19 -0
  147. package/src/components/Cards/PromoCard/PromoCard.props.ts +36 -0
  148. package/src/components/Cards/PromoCard/PromoCard.tsx +60 -0
  149. package/src/components/Cards/PromoCard/index.tsx +3 -60
  150. package/src/components/Cards/StatCard/StatCard.args.ts +14 -0
  151. package/src/components/Cards/StatCard/StatCard.props.ts +21 -0
  152. package/src/components/Cards/StatCard/StatCard.tsx +36 -0
  153. package/src/components/Cards/StatCard/index.tsx +3 -36
  154. package/src/components/Cards/TextCard/TextCard.args.ts +21 -0
  155. package/src/components/Cards/TextCard/TextCard.props.ts +32 -0
  156. package/src/components/Cards/TextCard/TextCard.tsx +62 -0
  157. package/src/components/Cards/TextCard/index.tsx +3 -63
  158. package/src/components/Footer/Footer.args.ts +4 -16
  159. package/src/components/Footer/Footer.tsx +41 -37
  160. package/src/components/List/List.props.ts +2 -10
  161. package/src/components/List/List.tsx +17 -22
  162. package/src/components/List/ListItem.props.ts +0 -7
  163. package/src/components/List/ListItem.tsx +6 -11
  164. package/src/components/Navigation/Navigation.tsx +5 -5
  165. package/src/components/Pagination/Pagination.tsx +2 -1
  166. package/src/components/index.ts +1 -1
  167. package/src/setup.ts +6 -0
  168. package/src/stories/Accordion/Accordion.stories.tsx +145 -0
  169. package/src/stories/Breadcrumb/Breadcrumb.mdx +17 -0
  170. package/src/stories/Breadcrumb/Breadcrumb.stories.tsx +20 -0
  171. package/src/stories/Button/Button.mdx +94 -0
  172. package/src/stories/Button/Button.stories.tsx +68 -0
  173. package/src/stories/Callout/Callout.mdx +35 -0
  174. package/src/stories/Callout/Callout.stories.tsx +43 -0
  175. package/src/stories/Card/DataCard.stories.tsx +45 -0
  176. package/src/stories/Card/DetailCard.stories.tsx +41 -0
  177. package/src/stories/Card/FactlistCard.stories.tsx +48 -0
  178. package/src/stories/Card/FeatureCard.stories.tsx +56 -0
  179. package/src/stories/Card/MultilinkCard.stories.tsx +48 -0
  180. package/src/stories/Card/PromoCard.stories.tsx +48 -0
  181. package/src/stories/Card/StatCard.stories.tsx +45 -0
  182. package/src/stories/Card/TextCard.stories.tsx +45 -0
  183. package/src/stories/CardGroup/CardGroup.mdx +17 -0
  184. package/src/stories/CardGroup/CardGroup.stories.tsx +50 -0
  185. package/src/stories/Checkbox/Checkbox.stories.tsx +118 -0
  186. package/src/stories/ContextMenu/ContextMenu.stories.tsx +83 -0
  187. package/src/stories/DatePicker/DatePicker.stories.tsx +110 -0
  188. package/src/stories/Dropdown/Dropdown.stories.tsx +145 -0
  189. package/src/stories/Empty/Empty.stories.tsx +53 -0
  190. package/src/stories/Fieldset/Fieldset.stories.tsx +167 -0
  191. package/src/stories/FileUpload/FileUpload.stories.tsx +103 -0
  192. package/src/stories/Footer/Footer.mdx +17 -0
  193. package/src/stories/Footer/Footer.stories.tsx +15 -0
  194. package/src/stories/Form/Form.mdx +58 -0
  195. package/src/stories/Form/Form.stories.tsx +162 -0
  196. package/src/stories/GetStarted.mdx +57 -0
  197. package/src/stories/Heading/Heading.stories.tsx +193 -0
  198. package/src/stories/Hero/Hero.stories.tsx +68 -0
  199. package/src/stories/Image/Image.stories.tsx +50 -0
  200. package/src/stories/Link/Link.stories.tsx +81 -0
  201. package/src/stories/LinkList/LinkList.args.ts +190 -0
  202. package/src/stories/LinkList/LinkList.stories.tsx +60 -0
  203. package/src/stories/List/List.stories.tsx +167 -0
  204. package/src/stories/Loading/Loading.stories.tsx +97 -0
  205. package/src/stories/LocalNav/LocalNav.mdx +17 -0
  206. package/src/stories/LocalNav/LocalNav.stories.tsx +15 -0
  207. package/src/stories/Logo/Logo.stories.tsx +172 -0
  208. package/src/stories/LogoGrid/LogoGrid.stories.tsx +59 -0
  209. package/src/stories/Navigation/Navigation.mdx +17 -0
  210. package/src/stories/Navigation/Navigation.stories.tsx +15 -0
  211. package/src/stories/Notification/Notification.stories.tsx +187 -0
  212. package/src/stories/NumberPicker/NumberPicker.stories.tsx +69 -0
  213. package/src/stories/Pagination/Pagination.stories.tsx +86 -0
  214. package/src/stories/Profile/Profile.stories.tsx +64 -0
  215. package/src/stories/Radio/Radio.stories.tsx +232 -0
  216. package/src/stories/ReadMore/ReadMore.stories.tsx +59 -0
  217. package/src/stories/RichText/RichText.stories.tsx +63 -0
  218. package/src/stories/SearchField/SearchField.stories.tsx +91 -0
  219. package/src/stories/SocialMedia/SocialMedia.stories.tsx +60 -0
  220. package/src/stories/TableOfContents/TableOfContents.stories.tsx +55 -0
  221. package/src/stories/Tabs/Tabs.mdx +17 -0
  222. package/src/stories/Tabs/Tabs.stories.tsx +25 -0
  223. package/src/stories/Tag/Tag.stories.tsx +130 -0
  224. package/src/stories/TextInput/TextInput.stories.tsx +100 -0
  225. package/src/stories/Textarea/Textarea.stories.tsx +147 -0
  226. package/src/stories/Toggle/Toggle.stories.tsx +99 -0
  227. package/src/stories/Tooltip/Tooltip.stories.tsx +82 -0
  228. package/src/stories/Video/Video.stories.tsx +71 -0
  229. package/src/stories/Welcome.stories.mdx +37 -0
  230. package/src/stories/assets/code-brackets.svg +1 -0
  231. package/src/stories/assets/colors.svg +1 -0
  232. package/src/stories/assets/comments.svg +1 -0
  233. package/src/stories/assets/direction.svg +1 -0
  234. package/src/stories/assets/flow.svg +1 -0
  235. package/src/stories/assets/plugin.svg +1 -0
  236. package/src/stories/assets/repo.svg +1 -0
  237. package/src/stories/assets/stackalt.svg +1 -0
  238. package/src/stories/welcome.scss +133 -0
  239. package/src/types/index.ts +6 -2
  240. package/lib/cjs/ListCtx-14aa546f.js +0 -9
  241. package/lib/cjs/components/Cards/Card.js +0 -40
  242. package/lib/cjs/components/Cards/CardGroup.js +0 -33
  243. package/lib/cjs/components/Cards/index.js +0 -37
  244. package/lib/esm/ListCtx-da435fdf.js +0 -6
  245. package/lib/esm/components/Cards/Card.js +0 -38
  246. package/lib/esm/components/Cards/CardGroup.js +0 -31
  247. package/lib/esm/components/Cards/index.js +0 -22
  248. package/lib/types/react/src/components/Cards/Card.d.ts +0 -4
  249. package/lib/types/react/src/components/Cards/Card.props.d.ts +0 -307
  250. package/lib/types/react/src/components/Cards/CardGroup.props.d.ts +0 -16
  251. package/lib/types/react/src/components/Cards/index.d.ts +0 -11
  252. package/lib/types/react/src/components/List/ListCtx.d.ts +0 -4
  253. package/src/components/Cards/Card.args.ts +0 -220
  254. package/src/components/Cards/Card.props.ts +0 -382
  255. package/src/components/Cards/Card.tsx +0 -36
  256. package/src/components/Cards/CardGroup.props.ts +0 -19
  257. package/src/components/Cards/CardGroup.tsx +0 -54
  258. package/src/components/Cards/index.ts +0 -22
  259. package/src/components/List/ListCtx.ts +0 -7
  260. /package/lib/types/react/src/components/Cards/{CardGroup.d.ts → CardGroup/CardGroup.d.ts} +0 -0
@@ -1,60 +1,3 @@
1
- import { FC } from "react";
2
- import classnames from "classnames";
3
- import useGlobalSettings from "../../../hooks/useGlobalSettings";
4
- import { PromoCardProps } from "../Card.props";
5
-
6
- const PromoCard: FC<PromoCardProps> = ({
7
- eyebrow,
8
- title,
9
- theme,
10
- size = "narrow",
11
- cornercut,
12
- intro,
13
- link,
14
- cta,
15
- }) => {
16
- const { prefix } = useGlobalSettings();
17
-
18
- const baseClass = `${prefix}--card`;
19
-
20
- const wrapperClass = classnames(
21
- `${baseClass}--wrapper`,
22
- `${baseClass}--wrapper__type__promo ${baseClass}--wrapper__type__promo__size__${size}`
23
- );
24
-
25
- const cardClasses = classnames(baseClass, `${baseClass}__type__promo`, {
26
- [`${baseClass}__cornercut`]: cornercut,
27
- [`${baseClass}__action`]: link,
28
- [`${baseClass}__size__${size}`]: size,
29
- [`${baseClass}__theme__${theme}`]: theme,
30
- });
31
-
32
- return (
33
- <div className={wrapperClass}>
34
- <div className={cardClasses}>
35
- {link && (
36
- <a className={`${baseClass}--link`} href={link} title={title}>
37
- <span className={`${baseClass}--link--text`}>{title}</span>
38
- </a>
39
- )}
40
- <div className={`${baseClass}--wrap`}>
41
- <div className={`${baseClass}--content`}>
42
- {eyebrow && <p className={`${baseClass}--eyebrow`}>{eyebrow}</p>}
43
- {title && <h5 className={`${baseClass}--title`}>{title}</h5>}
44
- {intro && <p className={`${baseClass}--intro`}>{intro}</p>}
45
- {cta && cta.label && (
46
- <a
47
- className={`${baseClass}--cta ${prefix}--button ${prefix}--button--medium ${prefix}--button--primary`}
48
- href={cta.url}
49
- >
50
- <span className="link__label">{cta.label}</span>
51
- </a>
52
- )}
53
- </div>
54
- </div>
55
- </div>
56
- </div>
57
- );
58
- };
59
-
60
- export default PromoCard;
1
+ export { default as PromoCard } from "./PromoCard";
2
+ export type { PromoCardProps } from "./PromoCard.props";
3
+ export { PromoCardArgs } from "./PromoCard.args";
@@ -0,0 +1,14 @@
1
+ import { StatCardProps } from ".";
2
+
3
+ export const StatCardArgs: StatCardProps = {
4
+ title: "Global employment growth down by half in 2023",
5
+ intro:
6
+ "The current global economic slowdown is likely to force more workers to accept lower quality, poorly paid jobs which lack job security and social protection, so accentuating inequalities exacerbated by the COVID-19 crisis.",
7
+ color: "turquoise",
8
+ source: {
9
+ label: "World Employment and Social Outlook: Trends 2023",
10
+ url: "https://www.ilo.org",
11
+ },
12
+ };
13
+
14
+ export default StatCardArgs;
@@ -0,0 +1,21 @@
1
+ import { CardColor, CardSize } from "../../../types";
2
+ import { LinkProps } from "../../LinkList/LinkList.props";
3
+
4
+ export type StatCardProps = {
5
+ /**
6
+ * The title of the card
7
+ */
8
+ title: string;
9
+ color?: CardColor;
10
+
11
+ /**
12
+ * How big should the card be
13
+ */
14
+ size?: Omit<CardSize, "narrow" | "wide">;
15
+
16
+ /**
17
+ * Introductory text in the card
18
+ */
19
+ intro?: string;
20
+ source?: LinkProps;
21
+ };
@@ -0,0 +1,36 @@
1
+ import { FC } from "react";
2
+ import classnames from "classnames";
3
+ import useGlobalSettings from "../../../hooks/useGlobalSettings";
4
+ import { StatCardProps } from "./StatCard.props";
5
+ import { Link } from "../../Link";
6
+
7
+ const StatCard: FC<StatCardProps> = ({
8
+ title,
9
+ color,
10
+ size = "standard",
11
+ intro,
12
+ source,
13
+ }) => {
14
+ const { prefix } = useGlobalSettings();
15
+
16
+ const baseClass = `${prefix}--card`;
17
+
18
+ const cardClasses = classnames(baseClass, `${baseClass}__type__stat`, {
19
+ [`${baseClass}__color__${color}`]: color,
20
+ [`${baseClass}__size__${size}`]: size,
21
+ });
22
+
23
+ return (
24
+ <div className={cardClasses}>
25
+ <div className={`${baseClass}--wrap`}>
26
+ <div className={`${baseClass}--content`}>
27
+ {title && <h5 className={`${baseClass}--title`}>{title}</h5>}
28
+ {intro && <p className={`${baseClass}--intro`}>{intro}</p>}
29
+ {source && <Link url={source.url}>{source.label}</Link>}
30
+ </div>
31
+ </div>
32
+ </div>
33
+ );
34
+ };
35
+
36
+ export default StatCard;
@@ -1,36 +1,3 @@
1
- import { FC } from "react";
2
- import classnames from "classnames";
3
- import useGlobalSettings from "../../../hooks/useGlobalSettings";
4
- import { StatCardProps } from "../Card.props";
5
- import { Link } from "../../Link";
6
-
7
- const StatCard: FC<StatCardProps> = ({
8
- title,
9
- color,
10
- size = "standard",
11
- intro,
12
- source,
13
- }) => {
14
- const { prefix } = useGlobalSettings();
15
-
16
- const baseClass = `${prefix}--card`;
17
-
18
- const cardClasses = classnames(baseClass, `${baseClass}__type__stat`, {
19
- [`${baseClass}__color__${color}`]: color,
20
- [`${baseClass}__size__${size}`]: size,
21
- });
22
-
23
- return (
24
- <div className={cardClasses}>
25
- <div className={`${baseClass}--wrap`}>
26
- <div className={`${baseClass}--content`}>
27
- {title && <h5 className={`${baseClass}--title`}>{title}</h5>}
28
- {intro && <p className={`${baseClass}--intro`}>{intro}</p>}
29
- {source && <Link url={source.url}>{source.label}</Link>}
30
- </div>
31
- </div>
32
- </div>
33
- );
34
- };
35
-
36
- export default StatCard;
1
+ export { default as StatCard } from "./StatCard";
2
+ export type { StatCardProps } from "./StatCard.props";
3
+ export { StatCardArgs } from "./StatCard.args";
@@ -0,0 +1,21 @@
1
+ import { TextCardProps } from ".";
2
+
3
+ export const TextCardArgs: TextCardProps = {
4
+ title: "Why we need greater social justice",
5
+ eyebrow: "Podcast",
6
+ date: {
7
+ human: "20 September 2022",
8
+ unix: "1670389200",
9
+ },
10
+ theme: "light",
11
+ link: "https:/www.ilo.org",
12
+ profile: {
13
+ avatar: "/ilo-dg.jpg",
14
+ description:
15
+ "Gilbert Houngbo is the Director-General of the International Labour Organization",
16
+ name: "Gilbert Houngbo",
17
+ role: "ILO Director-General",
18
+ },
19
+ };
20
+
21
+ export default TextCardArgs;
@@ -0,0 +1,32 @@
1
+ import { ThemeTypes, CardSize, EventDate } from "../../../types";
2
+
3
+ import { ProfileProps } from "../../Profile/Profile.props";
4
+
5
+ export type TextCardProps = {
6
+ /**
7
+ * A line of text that appears as a small heading above the title of the card
8
+ */
9
+ eyebrow?: string;
10
+
11
+ /**
12
+ * The title of the card
13
+ */
14
+ title: string;
15
+
16
+ /**
17
+ * Will render the card to appear on light or dark backgrounds
18
+ */
19
+ theme?: ThemeTypes;
20
+
21
+ /**
22
+ * How big should the card be
23
+ */
24
+ size?: Omit<CardSize, "standard">;
25
+
26
+ /**
27
+ * Specify the event Date, in both human and Unix format.
28
+ */
29
+ date?: EventDate;
30
+ profile: ProfileProps;
31
+ link?: string;
32
+ };
@@ -0,0 +1,62 @@
1
+ import { FC } from "react";
2
+ import classnames from "classnames";
3
+ import useGlobalSettings from "../../../hooks/useGlobalSettings";
4
+ import { TextCardProps } from "./TextCard.props";
5
+ import { Profile } from "../../Profile";
6
+
7
+ const TextCard: FC<TextCardProps> = ({
8
+ eyebrow,
9
+ title,
10
+ theme,
11
+ size,
12
+ date,
13
+ profile,
14
+ link,
15
+ }) => {
16
+ const { prefix } = useGlobalSettings();
17
+
18
+ const baseClass = `${prefix}--card`;
19
+
20
+ const wrapperClass = classnames(`${baseClass}--wrapper`);
21
+
22
+ const cardClasses = classnames(baseClass, `${baseClass}__type__text`, {
23
+ [`${baseClass}__action`]: link,
24
+ [`${baseClass}__size__${size}`]: size,
25
+ [`${baseClass}__theme__${theme}`]: theme,
26
+ });
27
+
28
+ return (
29
+ <div className={wrapperClass}>
30
+ <div className={cardClasses}>
31
+ {link && (
32
+ <a className={`${baseClass}--link`} href={link} title={title}>
33
+ <span className={`${baseClass}--link--text`}>{title}</span>
34
+ </a>
35
+ )}
36
+ <div className={`${baseClass}--wrap`}>
37
+ <div className={`${baseClass}--content`}>
38
+ {eyebrow && <p className={`${baseClass}--eyebrow`}>{eyebrow}</p>}
39
+ {title && <h5 className={`${baseClass}--title`}>{title}</h5>}
40
+ {date && (
41
+ <time className={`${baseClass}--date`} dateTime={date.unix}>
42
+ {date.human}
43
+ </time>
44
+ )}
45
+ {profile && profile.avatar && (
46
+ <Profile
47
+ avatar={profile.avatar}
48
+ description={profile.description}
49
+ link={profile.link}
50
+ name={profile.name}
51
+ role={profile.role}
52
+ className={`${prefix}--profile__theme__${theme}`}
53
+ />
54
+ )}
55
+ </div>
56
+ </div>
57
+ </div>
58
+ </div>
59
+ );
60
+ };
61
+
62
+ export default TextCard;
@@ -1,63 +1,3 @@
1
- import { FC } from "react";
2
- import classnames from "classnames";
3
- import useGlobalSettings from "../../../hooks/useGlobalSettings";
4
- import { TextCardProps } from "../Card.props";
5
- import { Profile } from "../../Profile";
6
-
7
- const TextCard: FC<TextCardProps> = ({
8
- eyebrow,
9
- title,
10
- theme,
11
- size,
12
- date,
13
- profile,
14
- link,
15
- }) => {
16
- const { prefix } = useGlobalSettings();
17
-
18
- const baseClass = `${prefix}--card`;
19
-
20
- const wrapperClass = classnames(`${baseClass}--wrapper`);
21
-
22
- const cardClasses = classnames(baseClass, `${baseClass}__type__text`, {
23
- [`${baseClass}__action`]: link,
24
- [`${baseClass}__size__${size}`]: size,
25
- [`${baseClass}__theme__${theme}`]: theme,
26
- });
27
- console.log("heloo");
28
- console.log(profile);
29
- return (
30
- <div className={wrapperClass}>
31
- <div className={cardClasses}>
32
- {link && (
33
- <a className={`${baseClass}--link`} href={link} title={title}>
34
- <span className={`${baseClass}--link--text`}>{title}</span>
35
- </a>
36
- )}
37
- <div className={`${baseClass}--wrap`}>
38
- <div className={`${baseClass}--content`}>
39
- {eyebrow && <p className={`${baseClass}--eyebrow`}>{eyebrow}</p>}
40
- {title && <h5 className={`${baseClass}--title`}>{title}</h5>}
41
- {date && (
42
- <time className={`${baseClass}--date`} dateTime={date.unix}>
43
- {date.human}
44
- </time>
45
- )}
46
- {profile && profile.avatar && (
47
- <Profile
48
- avatar={profile.avatar}
49
- description={profile.description}
50
- link={profile.link}
51
- name={profile.name}
52
- role={profile.role}
53
- className={`${prefix}--profile--contents--${theme}`}
54
- />
55
- )}
56
- </div>
57
- </div>
58
- </div>
59
- </div>
60
- );
61
- };
62
-
63
- export default TextCard;
1
+ export { default as TextCard } from "./TextCard";
2
+ export type { TextCardProps } from "./TextCard.props";
3
+ export { TextCardArgs } from "./TextCard.args";
@@ -17,27 +17,15 @@ const basic: FooterProps = {
17
17
  {
18
18
  links: [
19
19
  {
20
- label: "Link One",
20
+ label: "Contact us",
21
21
  url: "https://www.ilo.org",
22
22
  },
23
23
  {
24
- label: "Link Two",
24
+ label: "Contact us",
25
25
  url: "https://www.ilo.org",
26
26
  },
27
27
  {
28
- label: "Link Three",
29
- url: "https://www.ilo.org",
30
- },
31
- {
32
- label: "Link Four",
33
- url: "https://www.ilo.org",
34
- },
35
- {
36
- label: "Link Five",
37
- url: "https://www.ilo.org",
38
- },
39
- {
40
- label: "Link Six",
28
+ label: "Contact us",
41
29
  url: "https://www.ilo.org",
42
30
  },
43
31
  ],
@@ -45,7 +33,7 @@ const basic: FooterProps = {
45
33
  ],
46
34
  socialmedia: socialMediaArgs,
47
35
  subscribe: {
48
- label: "Subscribe",
36
+ label: "Subscribe for updates",
49
37
  url: "https://www.ilo.org",
50
38
  },
51
39
  legal: "© 1996-2023 International Labour Organization (ILO)",
@@ -26,7 +26,7 @@ const Footer: FC<FooterProps> = ({
26
26
 
27
27
  return (
28
28
  <footer className={footerClasses}>
29
- <div className={`${baseClass}--main`}>
29
+ <div className={`${baseClass}--main ${prefix}--container`}>
30
30
  <div className="site--info">
31
31
  <img className={`${baseClass}--logo`} src={logo} alt="ILO Logo" />
32
32
  <h3 className={`${baseClass}--headline`}>{tagline}</h3>
@@ -46,47 +46,51 @@ const Footer: FC<FooterProps> = ({
46
46
  <LinkList linkgroup={linkgroup} theme="dark"></LinkList>
47
47
  </nav>
48
48
  )}
49
- {(socialmedia || subscribe) && (
49
+ {socialmedia && (
50
50
  <div className="connect">
51
- {socialmedia && (
52
- <div className="social--links">
53
- <SocialMedia {...socialmedia} theme="dark" />
54
- </div>
55
- )}
56
- {subscribe && (
57
- <Button
58
- label={subscribe?.label}
59
- url={subscribe?.url}
60
- type="primary"
61
- size="large"
62
- target="_blank"
63
- ></Button>
64
- )}
51
+ <div className="social--links">
52
+ <SocialMedia {...socialmedia} theme="dark" />
53
+ </div>
54
+ </div>
55
+ )}
56
+ {subscribe && (
57
+ <div className="subscribe">
58
+ <Button
59
+ label={subscribe?.label}
60
+ url={subscribe?.url}
61
+ type="primary"
62
+ size="large"
63
+ target="_blank"
64
+ ></Button>
65
65
  </div>
66
66
  )}
67
67
  </div>
68
68
  <div className={`${baseClass}--secondary`}>
69
- <div className="legal">{legal}</div>
70
- {secondarylinks && (
71
- <nav className="secondarylinks">
72
- <ul className="secondarylinks--list">
73
- {secondarylinks.map((link, i) => (
74
- <li className="secondarylinks--list--item">
75
- <a
76
- key={i}
77
- href={link.url}
78
- className="secondarylinks--list--link"
79
- >
80
- {link?.label}
81
- </a>
82
- </li>
83
- ))}
84
- </ul>
85
- </nav>
86
- )}
87
- <a href={anchorlink?.url} className="anchorlink">
88
- {anchorlink?.label}
89
- </a>
69
+ <div className={`${prefix}--container`}>
70
+ <div className={`${baseClass}--secondary--details`}>
71
+ <div className="legal">{legal}</div>
72
+ {secondarylinks && (
73
+ <nav className="secondarylinks">
74
+ <ul className="secondarylinks--list">
75
+ {secondarylinks.map((link, i) => (
76
+ <li className="secondarylinks--list--item">
77
+ <a
78
+ key={i}
79
+ href={link.url}
80
+ className="secondarylinks--list--link"
81
+ >
82
+ {link?.label}
83
+ </a>
84
+ </li>
85
+ ))}
86
+ </ul>
87
+ </nav>
88
+ )}
89
+ </div>
90
+ <a href={anchorlink?.url} className="anchorlink">
91
+ {anchorlink?.label}
92
+ </a>
93
+ </div>
90
94
  </div>
91
95
  </footer>
92
96
  );
@@ -1,5 +1,4 @@
1
1
  import { ReactElement } from "react";
2
- import { HeadingLevel, ListAlignment, ListOrder } from "../../types";
3
2
  import { ListItemProps } from "./ListItem.props";
4
3
 
5
4
  export interface ListProps {
@@ -11,12 +10,12 @@ export interface ListProps {
11
10
  /**
12
11
  * Declare ordered, unordered or unstyled
13
12
  */
14
- ordered?: ListOrder;
13
+ ordered?: "unordered" | "ordered" | "unstyled";
15
14
 
16
15
  /**
17
16
  * Declare horizontal or default
18
17
  */
19
- alignment?: ListAlignment;
18
+ alignment?: "default" | "horizontal";
20
19
 
21
20
  /**
22
21
  * Specify an optional title
@@ -28,10 +27,3 @@ export interface ListProps {
28
27
  */
29
28
  className?: string;
30
29
  }
31
-
32
- export interface ListContextProps {
33
- activeItems: string[];
34
- alignment?: ListAlignment;
35
- ordered?: ListOrder;
36
- headingLevel?: HeadingLevel;
37
- }
@@ -1,40 +1,35 @@
1
1
  import classNames from "classnames";
2
- import { FC, useState } from "react";
2
+ import { FC } from "react";
3
3
  import useGlobalSettings from "../../hooks/useGlobalSettings";
4
4
  import { ListProps } from "./List.props";
5
- import { ListContext } from "./ListCtx";
6
5
 
7
6
  const List: FC<ListProps> = ({
8
7
  children,
9
8
  className,
10
- alignment,
11
- ordered,
9
+ alignment = "default",
10
+ ordered = "unstyled",
12
11
  title,
13
12
  }) => {
14
13
  const { prefix } = useGlobalSettings();
15
14
  const baseClass = `${prefix}--list`;
16
- const [activeItems] = useState<string[]>([]);
15
+ const unstyledClass = `${baseClass}__unstyled`;
16
+ const horizontalClass = `${baseClass}__horizontal`;
17
+ const titleClass = `${baseClass}--title`;
17
18
 
18
- const listClasses = classNames(className, {
19
- [baseClass]: true,
20
- [`${baseClass}--${alignment}`]: alignment,
21
- [`${baseClass}--${ordered}`]: true,
19
+ const listClasses = classNames(className, baseClass, {
20
+ [unstyledClass]: ordered === "unstyled",
21
+ [horizontalClass]: alignment === "horizontal",
22
22
  });
23
23
 
24
24
  return (
25
- <ListContext.Provider
26
- value={{
27
- activeItems,
28
- }}
29
- >
30
- <div className={listClasses}>
31
- {title && <h5 className={`${baseClass}__title`}>{title}</h5>}
32
- {ordered && ordered === "ordered" && <ol>{children}</ol>}
33
- {ordered && ordered !== "ordered" && (
34
- <ul className={`${baseClass}--${alignment}`}>{children}</ul>
35
- )}
36
- </div>
37
- </ListContext.Provider>
25
+ <div className={listClasses}>
26
+ {title && <h2 className={titleClass}>{title}</h2>}
27
+ {ordered && ordered === "ordered" ? (
28
+ <ol>{children}</ol>
29
+ ) : (
30
+ <ul>{children}</ul>
31
+ )}
32
+ </div>
38
33
  );
39
34
  };
40
35
 
@@ -1,12 +1,5 @@
1
1
  import { ReactNode } from "react";
2
2
 
3
- export interface ListItemContextProps {
4
- /**
5
- * The list item's unique id.
6
- */
7
- id: string;
8
- }
9
-
10
3
  export interface ListItemProps {
11
4
  /**
12
5
  * Specify the id of the List item.
@@ -1,21 +1,16 @@
1
1
  import classNames from "classnames";
2
2
  import { FC } from "react";
3
3
  import useGlobalSettings from "../../hooks/useGlobalSettings";
4
- import { ListItemContext } from "./ListCtx";
5
4
  import { ListItemProps } from "./ListItem.props";
6
5
 
7
- const ListItem: FC<ListItemProps> = ({ children, id, className, ...rest }) => {
6
+ const ListItem: FC<ListItemProps> = ({ children, className, ...rest }) => {
8
7
  const { prefix } = useGlobalSettings();
9
- const baseClass = `${prefix}--list__item`;
10
- const listItemClasses = classNames(className, {
11
- [baseClass]: true,
12
- });
8
+ const baseClass = `${prefix}--list--item`;
9
+ const listItemClasses = classNames(className, baseClass);
13
10
  return (
14
- <ListItemContext.Provider value={{ id }}>
15
- <li className={listItemClasses} {...rest}>
16
- {children}
17
- </li>
18
- </ListItemContext.Provider>
11
+ <li className={listItemClasses} {...rest}>
12
+ {children}
13
+ </li>
19
14
  );
20
15
  };
21
16