@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.
- package/.storybook/main.ts +41 -0
- package/.storybook/manager-head.html +92 -0
- package/.storybook/manager.ts +6 -0
- package/.storybook/preview-head.html +5 -0
- package/.storybook/preview.tsx +81 -0
- package/.storybook/styles.scss +25 -0
- package/.storybook/theme.ts +46 -0
- package/.turbo/turbo-build:lib.log +15 -0
- package/CHANGELOG.md +43 -0
- package/lib/cjs/components/Cards/CardGroup/CardGroup.js +41 -0
- package/lib/cjs/components/Cards/CardGroup/index.js +796 -0
- package/lib/cjs/components/Cards/DataCard/DataCard.js +27 -0
- package/lib/cjs/components/Cards/DataCard/index.js +73 -19
- package/lib/cjs/components/Cards/DetailCard/DetailCard.js +20 -0
- package/lib/cjs/components/Cards/DetailCard/index.js +17 -12
- package/lib/cjs/components/Cards/FactlistCard/FactListCard.js +22 -0
- package/lib/cjs/components/Cards/FactlistCard/index.js +16 -15
- package/lib/cjs/components/Cards/FeatureCard/FeatureCard.js +24 -0
- package/lib/cjs/components/Cards/FeatureCard/index.js +31 -16
- package/lib/cjs/components/Cards/MultilinkCard/MultiLinkCard.js +24 -0
- package/lib/cjs/components/Cards/MultilinkCard/index.js +35 -16
- package/lib/cjs/components/Cards/PromoCard/PromoCard.js +23 -0
- package/lib/cjs/components/Cards/PromoCard/index.js +18 -15
- package/lib/cjs/components/Cards/StatCard/StatCard.js +21 -0
- package/lib/cjs/components/Cards/StatCard/index.js +15 -13
- package/lib/cjs/components/Cards/TextCard/TextCard.js +23 -0
- package/lib/cjs/components/Cards/TextCard/index.js +22 -17
- package/lib/cjs/components/Footer/Footer.js +1 -1
- package/lib/cjs/components/List/List.js +9 -11
- package/lib/cjs/components/List/ListItem.js +4 -7
- package/lib/cjs/components/List/index.js +1 -2
- package/lib/cjs/components/Navigation/Navigation.js +3 -3
- package/lib/cjs/components/Pagination/Pagination.js +1 -1
- package/lib/cjs/components/index.js +10 -13
- package/lib/cjs/index.js +10 -13
- package/lib/esm/components/Cards/CardGroup/CardGroup.js +39 -0
- package/lib/esm/components/Cards/CardGroup/index.js +793 -0
- package/lib/esm/components/Cards/DataCard/DataCard.js +25 -0
- package/lib/esm/components/Cards/DataCard/index.js +72 -19
- package/lib/esm/components/Cards/DetailCard/DetailCard.js +18 -0
- package/lib/esm/components/Cards/DetailCard/index.js +16 -12
- package/lib/esm/components/Cards/FactlistCard/FactListCard.js +20 -0
- package/lib/esm/components/Cards/FactlistCard/index.js +15 -15
- package/lib/esm/components/Cards/FeatureCard/FeatureCard.js +22 -0
- package/lib/esm/components/Cards/FeatureCard/index.js +30 -16
- package/lib/esm/components/Cards/MultilinkCard/MultiLinkCard.js +22 -0
- package/lib/esm/components/Cards/MultilinkCard/index.js +34 -16
- package/lib/esm/components/Cards/PromoCard/PromoCard.js +21 -0
- package/lib/esm/components/Cards/PromoCard/index.js +17 -15
- package/lib/esm/components/Cards/StatCard/StatCard.js +19 -0
- package/lib/esm/components/Cards/StatCard/index.js +14 -13
- package/lib/esm/components/Cards/TextCard/TextCard.js +21 -0
- package/lib/esm/components/Cards/TextCard/index.js +21 -17
- package/lib/esm/components/Footer/Footer.js +1 -1
- package/lib/esm/components/List/List.js +10 -12
- package/lib/esm/components/List/ListItem.js +4 -7
- package/lib/esm/components/List/index.js +1 -2
- package/lib/esm/components/Navigation/Navigation.js +3 -3
- package/lib/esm/components/Pagination/Pagination.js +1 -1
- package/lib/esm/components/index.js +9 -11
- package/lib/esm/index.js +9 -11
- package/lib/types/react/src/components/Cards/CardGroup/CardGroup.args.d.ts +13 -0
- package/lib/types/react/src/components/Cards/CardGroup/CardGroup.props.d.ts +58 -0
- package/lib/types/react/src/components/Cards/CardGroup/index.d.ts +3 -0
- package/lib/types/react/src/components/Cards/DataCard/DataCard.args.d.ts +2 -0
- package/lib/types/react/src/components/Cards/DataCard/DataCard.d.ts +4 -0
- package/lib/types/react/src/components/Cards/DataCard/DataCard.props.d.ts +50 -0
- package/lib/types/react/src/components/Cards/DataCard/index.d.ts +3 -4
- package/lib/types/react/src/components/Cards/DetailCard/DetailCard.args.d.ts +3 -0
- package/lib/types/react/src/components/Cards/DetailCard/DetailCard.d.ts +4 -0
- package/lib/types/react/src/components/Cards/DetailCard/DetailCard.props.d.ts +35 -0
- package/lib/types/react/src/components/Cards/DetailCard/index.d.ts +3 -4
- package/lib/types/react/src/components/Cards/FactlistCard/FactListCard.args.d.ts +3 -0
- package/lib/types/react/src/components/Cards/FactlistCard/FactListCard.d.ts +4 -0
- package/lib/types/react/src/components/Cards/FactlistCard/FactListCard.props.d.ts +16 -0
- package/lib/types/react/src/components/Cards/FactlistCard/index.d.ts +3 -4
- package/lib/types/react/src/components/Cards/FeatureCard/FeatureCard.args.d.ts +3 -0
- package/lib/types/react/src/components/Cards/FeatureCard/FeatureCard.d.ts +4 -0
- package/lib/types/react/src/components/Cards/FeatureCard/FeatureCard.props.d.ts +31 -0
- package/lib/types/react/src/components/Cards/FeatureCard/index.d.ts +3 -4
- package/lib/types/react/src/components/Cards/MultilinkCard/MultiLinkCard.d.ts +4 -0
- package/lib/types/react/src/components/Cards/MultilinkCard/MultilinkCard.args.d.ts +2 -0
- package/lib/types/react/src/components/Cards/MultilinkCard/MultilinkCard.props.d.ts +25 -0
- package/lib/types/react/src/components/Cards/MultilinkCard/index.d.ts +3 -4
- package/lib/types/react/src/components/Cards/PromoCard/PromoCard.args.d.ts +3 -0
- package/lib/types/react/src/components/Cards/PromoCard/PromoCard.d.ts +4 -0
- package/lib/types/react/src/components/Cards/PromoCard/PromoCard.props.d.ts +30 -0
- package/lib/types/react/src/components/Cards/PromoCard/index.d.ts +3 -4
- package/lib/types/react/src/components/Cards/StatCard/StatCard.args.d.ts +3 -0
- package/lib/types/react/src/components/Cards/StatCard/StatCard.d.ts +4 -0
- package/lib/types/react/src/components/Cards/StatCard/StatCard.props.d.ts +18 -0
- package/lib/types/react/src/components/Cards/StatCard/index.d.ts +3 -4
- package/lib/types/react/src/components/Cards/TextCard/TextCard.args.d.ts +3 -0
- package/lib/types/react/src/components/Cards/TextCard/TextCard.d.ts +4 -0
- package/lib/types/react/src/components/Cards/TextCard/TextCard.props.d.ts +26 -0
- package/lib/types/react/src/components/Cards/TextCard/index.d.ts +3 -4
- package/lib/types/react/src/components/List/List.props.d.ts +2 -9
- package/lib/types/react/src/components/List/ListItem.props.d.ts +0 -6
- package/lib/types/react/src/components/index.d.ts +1 -1
- package/lib/types/react/src/types/index.d.ts +4 -2
- package/package.json +32 -12
- package/public/react.svg +8 -0
- package/rollup.config.mjs +2 -0
- package/src/__tests__/Accordion.test.tsx +16 -0
- package/src/__tests__/Button.test.tsx +60 -0
- package/src/__tests__/Callout.test.tsx +43 -0
- package/src/__tests__/ContextMenu.test.tsx +19 -0
- package/src/__tests__/Dropdown.test.tsx +38 -0
- package/src/__tests__/Heading.test.tsx +51 -0
- package/src/__tests__/Image.test.tsx +21 -0
- package/src/__tests__/LinkList.test.tsx +17 -0
- package/src/__tests__/List.test.tsx +25 -0
- package/src/__tests__/Loading.test.tsx +33 -0
- package/src/__tests__/Notification.test.tsx +39 -0
- package/src/__tests__/Pagination.test.tsx +58 -0
- package/src/__tests__/Profile.test.tsx +48 -0
- package/src/__tests__/ReadMore.test.tsx +43 -0
- package/src/__tests__/RichText.test.tsx +16 -0
- package/src/__tests__/SearchField.test.tsx +35 -0
- package/src/__tests__/TableOfContents.test.tsx +12 -0
- package/src/__tests__/Tag.test.tsx +10 -0
- package/src/components/Cards/{CardGroup.args.ts → CardGroup/CardGroup.args.ts} +299 -437
- package/src/components/Cards/CardGroup/CardGroup.props.ts +78 -0
- package/src/components/Cards/CardGroup/CardGroup.tsx +54 -0
- package/src/components/Cards/CardGroup/index.tsx +3 -0
- package/src/components/Cards/DataCard/DataCard.args.ts +69 -0
- package/src/components/Cards/DataCard/DataCard.props.ts +60 -0
- package/src/components/Cards/DataCard/DataCard.tsx +107 -0
- package/src/components/Cards/DataCard/index.tsx +3 -107
- package/src/components/Cards/DetailCard/DetailCard.args.ts +17 -0
- package/src/components/Cards/DetailCard/DetailCard.props.ts +43 -0
- package/src/components/Cards/DetailCard/DetailCard.tsx +62 -0
- package/src/components/Cards/DetailCard/index.tsx +3 -62
- package/src/components/Cards/FactlistCard/FactListCard.args.ts +14 -0
- package/src/components/Cards/FactlistCard/FactListCard.props.ts +19 -0
- package/src/components/Cards/FactlistCard/FactListCard.tsx +42 -0
- package/src/components/Cards/FactlistCard/index.tsx +3 -42
- package/src/components/Cards/FeatureCard/FeatureCard.args.ts +30 -0
- package/src/components/Cards/FeatureCard/FeatureCard.props.ts +38 -0
- package/src/components/Cards/FeatureCard/FeatureCard.tsx +69 -0
- package/src/components/Cards/FeatureCard/index.tsx +3 -69
- package/src/components/Cards/MultilinkCard/MultiLinkCard.tsx +76 -0
- package/src/components/Cards/MultilinkCard/MultilinkCard.args.ts +33 -0
- package/src/components/Cards/MultilinkCard/MultilinkCard.props.ts +30 -0
- package/src/components/Cards/MultilinkCard/index.tsx +3 -76
- package/src/components/Cards/PromoCard/PromoCard.args.ts +19 -0
- package/src/components/Cards/PromoCard/PromoCard.props.ts +36 -0
- package/src/components/Cards/PromoCard/PromoCard.tsx +60 -0
- package/src/components/Cards/PromoCard/index.tsx +3 -60
- package/src/components/Cards/StatCard/StatCard.args.ts +14 -0
- package/src/components/Cards/StatCard/StatCard.props.ts +21 -0
- package/src/components/Cards/StatCard/StatCard.tsx +36 -0
- package/src/components/Cards/StatCard/index.tsx +3 -36
- package/src/components/Cards/TextCard/TextCard.args.ts +21 -0
- package/src/components/Cards/TextCard/TextCard.props.ts +32 -0
- package/src/components/Cards/TextCard/TextCard.tsx +62 -0
- package/src/components/Cards/TextCard/index.tsx +3 -63
- package/src/components/Footer/Footer.args.ts +4 -16
- package/src/components/Footer/Footer.tsx +41 -37
- package/src/components/List/List.props.ts +2 -10
- package/src/components/List/List.tsx +17 -22
- package/src/components/List/ListItem.props.ts +0 -7
- package/src/components/List/ListItem.tsx +6 -11
- package/src/components/Navigation/Navigation.tsx +5 -5
- package/src/components/Pagination/Pagination.tsx +2 -1
- package/src/components/index.ts +1 -1
- package/src/setup.ts +6 -0
- package/src/stories/Accordion/Accordion.stories.tsx +145 -0
- package/src/stories/Breadcrumb/Breadcrumb.mdx +17 -0
- package/src/stories/Breadcrumb/Breadcrumb.stories.tsx +20 -0
- package/src/stories/Button/Button.mdx +94 -0
- package/src/stories/Button/Button.stories.tsx +68 -0
- package/src/stories/Callout/Callout.mdx +35 -0
- package/src/stories/Callout/Callout.stories.tsx +43 -0
- package/src/stories/Card/DataCard.stories.tsx +45 -0
- package/src/stories/Card/DetailCard.stories.tsx +41 -0
- package/src/stories/Card/FactlistCard.stories.tsx +48 -0
- package/src/stories/Card/FeatureCard.stories.tsx +56 -0
- package/src/stories/Card/MultilinkCard.stories.tsx +48 -0
- package/src/stories/Card/PromoCard.stories.tsx +48 -0
- package/src/stories/Card/StatCard.stories.tsx +45 -0
- package/src/stories/Card/TextCard.stories.tsx +45 -0
- package/src/stories/CardGroup/CardGroup.mdx +17 -0
- package/src/stories/CardGroup/CardGroup.stories.tsx +50 -0
- package/src/stories/Checkbox/Checkbox.stories.tsx +118 -0
- package/src/stories/ContextMenu/ContextMenu.stories.tsx +83 -0
- package/src/stories/DatePicker/DatePicker.stories.tsx +110 -0
- package/src/stories/Dropdown/Dropdown.stories.tsx +145 -0
- package/src/stories/Empty/Empty.stories.tsx +53 -0
- package/src/stories/Fieldset/Fieldset.stories.tsx +167 -0
- package/src/stories/FileUpload/FileUpload.stories.tsx +103 -0
- package/src/stories/Footer/Footer.mdx +17 -0
- package/src/stories/Footer/Footer.stories.tsx +15 -0
- package/src/stories/Form/Form.mdx +58 -0
- package/src/stories/Form/Form.stories.tsx +162 -0
- package/src/stories/GetStarted.mdx +57 -0
- package/src/stories/Heading/Heading.stories.tsx +193 -0
- package/src/stories/Hero/Hero.stories.tsx +68 -0
- package/src/stories/Image/Image.stories.tsx +50 -0
- package/src/stories/Link/Link.stories.tsx +81 -0
- package/src/stories/LinkList/LinkList.args.ts +190 -0
- package/src/stories/LinkList/LinkList.stories.tsx +60 -0
- package/src/stories/List/List.stories.tsx +167 -0
- package/src/stories/Loading/Loading.stories.tsx +97 -0
- package/src/stories/LocalNav/LocalNav.mdx +17 -0
- package/src/stories/LocalNav/LocalNav.stories.tsx +15 -0
- package/src/stories/Logo/Logo.stories.tsx +172 -0
- package/src/stories/LogoGrid/LogoGrid.stories.tsx +59 -0
- package/src/stories/Navigation/Navigation.mdx +17 -0
- package/src/stories/Navigation/Navigation.stories.tsx +15 -0
- package/src/stories/Notification/Notification.stories.tsx +187 -0
- package/src/stories/NumberPicker/NumberPicker.stories.tsx +69 -0
- package/src/stories/Pagination/Pagination.stories.tsx +86 -0
- package/src/stories/Profile/Profile.stories.tsx +64 -0
- package/src/stories/Radio/Radio.stories.tsx +232 -0
- package/src/stories/ReadMore/ReadMore.stories.tsx +59 -0
- package/src/stories/RichText/RichText.stories.tsx +63 -0
- package/src/stories/SearchField/SearchField.stories.tsx +91 -0
- package/src/stories/SocialMedia/SocialMedia.stories.tsx +60 -0
- package/src/stories/TableOfContents/TableOfContents.stories.tsx +55 -0
- package/src/stories/Tabs/Tabs.mdx +17 -0
- package/src/stories/Tabs/Tabs.stories.tsx +25 -0
- package/src/stories/Tag/Tag.stories.tsx +130 -0
- package/src/stories/TextInput/TextInput.stories.tsx +100 -0
- package/src/stories/Textarea/Textarea.stories.tsx +147 -0
- package/src/stories/Toggle/Toggle.stories.tsx +99 -0
- package/src/stories/Tooltip/Tooltip.stories.tsx +82 -0
- package/src/stories/Video/Video.stories.tsx +71 -0
- package/src/stories/Welcome.stories.mdx +37 -0
- package/src/stories/assets/code-brackets.svg +1 -0
- package/src/stories/assets/colors.svg +1 -0
- package/src/stories/assets/comments.svg +1 -0
- package/src/stories/assets/direction.svg +1 -0
- package/src/stories/assets/flow.svg +1 -0
- package/src/stories/assets/plugin.svg +1 -0
- package/src/stories/assets/repo.svg +1 -0
- package/src/stories/assets/stackalt.svg +1 -0
- package/src/stories/welcome.scss +133 -0
- package/src/types/index.ts +6 -2
- package/lib/cjs/ListCtx-14aa546f.js +0 -9
- package/lib/cjs/components/Cards/Card.js +0 -40
- package/lib/cjs/components/Cards/CardGroup.js +0 -33
- package/lib/cjs/components/Cards/index.js +0 -37
- package/lib/esm/ListCtx-da435fdf.js +0 -6
- package/lib/esm/components/Cards/Card.js +0 -38
- package/lib/esm/components/Cards/CardGroup.js +0 -31
- package/lib/esm/components/Cards/index.js +0 -22
- package/lib/types/react/src/components/Cards/Card.d.ts +0 -4
- package/lib/types/react/src/components/Cards/Card.props.d.ts +0 -307
- package/lib/types/react/src/components/Cards/CardGroup.props.d.ts +0 -16
- package/lib/types/react/src/components/Cards/index.d.ts +0 -11
- package/lib/types/react/src/components/List/ListCtx.d.ts +0 -4
- package/src/components/Cards/Card.args.ts +0 -220
- package/src/components/Cards/Card.props.ts +0 -382
- package/src/components/Cards/Card.tsx +0 -36
- package/src/components/Cards/CardGroup.props.ts +0 -19
- package/src/components/Cards/CardGroup.tsx +0 -54
- package/src/components/Cards/index.ts +0 -22
- package/src/components/List/ListCtx.ts +0 -7
- /package/lib/types/react/src/components/Cards/{CardGroup.d.ts → CardGroup/CardGroup.d.ts} +0 -0
|
@@ -1,60 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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: "
|
|
20
|
+
label: "Contact us",
|
|
21
21
|
url: "https://www.ilo.org",
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
|
-
label: "
|
|
24
|
+
label: "Contact us",
|
|
25
25
|
url: "https://www.ilo.org",
|
|
26
26
|
},
|
|
27
27
|
{
|
|
28
|
-
label: "
|
|
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
|
-
{
|
|
49
|
+
{socialmedia && (
|
|
50
50
|
<div className="connect">
|
|
51
|
-
|
|
52
|
-
<
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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=
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
<
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
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?:
|
|
13
|
+
ordered?: "unordered" | "ordered" | "unstyled";
|
|
15
14
|
|
|
16
15
|
/**
|
|
17
16
|
* Declare horizontal or default
|
|
18
17
|
*/
|
|
19
|
-
alignment?:
|
|
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
|
|
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
|
|
15
|
+
const unstyledClass = `${baseClass}__unstyled`;
|
|
16
|
+
const horizontalClass = `${baseClass}__horizontal`;
|
|
17
|
+
const titleClass = `${baseClass}--title`;
|
|
17
18
|
|
|
18
|
-
const listClasses = classNames(className, {
|
|
19
|
-
[
|
|
20
|
-
[
|
|
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
|
-
<
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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,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,
|
|
6
|
+
const ListItem: FC<ListItemProps> = ({ children, className, ...rest }) => {
|
|
8
7
|
const { prefix } = useGlobalSettings();
|
|
9
|
-
const baseClass = `${prefix}--
|
|
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
|
-
<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
</li>
|
|
18
|
-
</ListItemContext.Provider>
|
|
11
|
+
<li className={listItemClasses} {...rest}>
|
|
12
|
+
{children}
|
|
13
|
+
</li>
|
|
19
14
|
);
|
|
20
15
|
};
|
|
21
16
|
|