Skip to content

Commit a3030e8

Browse files
committed
feat: icons with versions
1 parent 33aed03 commit a3030e8

File tree

7 files changed

+45
-8
lines changed

7 files changed

+45
-8
lines changed

apps/site/next.mdx.use.mjs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
'use strict';
22

3+
import BadgeGroup from '@node-core/ui-components/Common/BadgeGroup';
4+
35
import DownloadReleasesTable from './components/Downloads/DownloadReleasesTable';
46
import UpcomingMeetings from './components/MDX/Calendar/UpcomingMeetings';
57
import WithBadgeGroup from './components/withBadgeGroup';
@@ -21,4 +23,6 @@ export const mdxComponents = {
2123
WithBadgeGroup: WithBadgeGroup,
2224
// Renders an container for Upcoming Node.js Meetings
2325
UpcomingMeetings: UpcomingMeetings,
26+
// Standalone Badge Group
27+
BadgeGroup: BadgeGroup,
2428
};

apps/site/pages/en/index.mdx

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,22 @@ layout: home
2626
<br />
2727
<small className="!text-xs">for Node.js 18 and below</small>
2828
</Button>
29+
30+
<div className="flex flex-row gap-2 justify-center mt-6">
31+
<WithNodeRelease status="Current">
32+
{({ release }) =>
33+
<BadgeGroup as="span" size="small" badgeText={release.versionWithPrefix}>
34+
<Link href={`/blog/release/${release.versionWithPrefix}`}>Node.js Current</Link>
35+
</BadgeGroup>}
36+
</WithNodeRelease>
37+
38+
<WithNodeRelease status="LTS">
39+
{({ release }) =>
40+
<BadgeGroup as="span" size="small" kind="warning" badgeText={release.versionWithPrefix}>
41+
<Link href={`/blog/release/${release.versionWithPrefix}`}>Node.js LTS</Link>
42+
</BadgeGroup>}
43+
</WithNodeRelease>
44+
</div>
2945
</div>
3046

3147
</div>

packages/ui-components/src/Common/Badge/index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ import type { FC, HTMLAttributes, PropsWithChildren } from 'react';
44
import styles from './index.module.css';
55

66
type BadgeKind = 'default' | 'warning' | 'error';
7+
type BadgeSize = 'small' | 'medium';
78

89
type BadgeProps = HTMLAttributes<HTMLSpanElement> & {
9-
size?: 'small' | 'medium';
10+
size?: BadgeSize;
1011
kind?: BadgeKind;
1112
};
1213

packages/ui-components/src/Common/BadgeGroup/index.module.css

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@
3535
dark:text-green-300;
3636
}
3737

38-
.message {
38+
.message,
39+
.message a:not(:hover) {
3940
@apply text-green-700
4041
dark:text-green-300;
4142
}
@@ -52,7 +53,8 @@
5253
dark:text-danger-300;
5354
}
5455

55-
.message {
56+
.message,
57+
.message a:not(:hover) {
5658
@apply text-danger-700
5759
dark:text-danger-300;
5860
}
@@ -69,7 +71,8 @@
6971
dark:text-warning-300;
7072
}
7173

72-
.message {
74+
.message,
75+
.message a:not(:hover) {
7376
@apply text-warning-700
7477
dark:text-warning-300;
7578
}

packages/ui-components/src/Common/BadgeGroup/index.stories.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,16 @@ export const Default: Story = {
1414
},
1515
};
1616

17+
export const SmallDefault: Story = {
18+
args: {
19+
href: '/',
20+
children: 'OpenJS Foundation Certification 2023',
21+
kind: 'default',
22+
badgeText: 'New',
23+
size: 'small',
24+
},
25+
};
26+
1727
export const Error: Story = {
1828
args: {
1929
href: '/',

packages/ui-components/src/Common/BadgeGroup/index.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,30 @@ import type { LinkLike } from '#ui/types';
66

77
import styles from './index.module.css';
88

9-
type BadgeGroupKind = 'default' | 'warning' | 'error';
10-
119
type BadgeGroupProps = {
12-
kind?: BadgeGroupKind;
10+
kind?: ComponentProps<typeof Badge>['kind'];
11+
size?: ComponentProps<typeof Badge>['size'];
1312
badgeText?: string;
1413
as: LinkLike;
1514
} & ComponentProps<LinkLike>;
1615

1716
const BadgeGroup: FC<PropsWithChildren<BadgeGroupProps>> = ({
1817
kind = 'default',
18+
size = 'medium',
1919
badgeText,
2020
children,
2121
as: Component = 'a',
2222
...args
2323
}) => (
2424
<Component className={`${styles.wrapper} ${styles[kind]}`} {...args}>
2525
{badgeText && (
26-
<Badge kind={kind} className={styles.badge}>
26+
<Badge kind={kind} size={size} className={styles.badge}>
2727
{badgeText}
2828
</Badge>
2929
)}
30+
3031
<span className={styles.message}>{children}</span>
32+
3133
{args.href && <ArrowRightIcon className={styles.icon} />}
3234
</Component>
3335
);

turbo.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"$schema": "https://turbo.build/schema.json",
33
"dangerouslyDisablePackageManagerCheck": true,
4+
"ui": "tui",
45
"tasks": {
56
"//#prettier": {
67
"outputs": [".prettiercache"]

0 commit comments

Comments
 (0)