@node-core/ui-components 1.0.1-ab0ba1dcb1d91392c44e91b1e74e9f565e460543 → 1.0.1-bc3f4a79ab5f54e7ed1ee525005e7e9f1030495c
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/Common/AlertBox/index.js +5 -0
- package/Common/AlertBox/index.module.css +77 -0
- package/Common/AvatarGroup/Avatar/index.js +11 -0
- package/Common/AvatarGroup/Avatar/index.module.css +60 -0
- package/Common/AvatarGroup/Overlay/index.js +6 -0
- package/Common/AvatarGroup/Overlay/index.module.css +38 -0
- package/Common/AvatarGroup/index.js +21 -0
- package/Common/AvatarGroup/index.module.css +22 -0
- package/Common/Badge/index.js +7 -0
- package/Common/Badge/index.module.css +46 -0
- package/Common/BadgeGroup/index.js +6 -0
- package/Common/BadgeGroup/index.module.css +101 -0
- package/Common/Banner/index.js +4 -0
- package/Common/Banner/index.module.css +45 -0
- package/Common/BaseActiveLink/index.js +14 -0
- package/Common/BaseButton/index.js +10 -0
- package/Common/BaseButton/index.module.css +372 -0
- package/Common/BaseCodeBox/index.js +50 -0
- package/Common/BaseCodeBox/index.module.css +96 -0
- package/Common/BaseCrossLink/index.js +12 -0
- package/Common/BaseCrossLink/index.module.css +69 -0
- package/Common/BaseLinkTabs/index.js +5 -0
- package/Common/BaseLinkTabs/index.module.css +77 -0
- package/Common/BasePagination/Ellipsis/index.js +4 -0
- package/Common/BasePagination/Ellipsis/index.module.css +16 -0
- package/Common/BasePagination/PaginationListItem/index.js +6 -0
- package/Common/BasePagination/PaginationListItem/index.module.css +42 -0
- package/Common/BasePagination/PrevNextArrow.js +7 -0
- package/Common/BasePagination/index.js +10 -0
- package/Common/BasePagination/index.module.css +40 -0
- package/Common/BasePagination/useGetPageElements.js +77 -0
- package/Common/Blockquote/index.js +4 -0
- package/Common/Blockquote/index.module.css +50 -0
- package/Common/Breadcrumbs/BreadcrumbHomeLink/index.js +9 -0
- package/Common/Breadcrumbs/BreadcrumbHomeLink/index.module.css +5 -0
- package/Common/Breadcrumbs/BreadcrumbItem/index.js +6 -0
- package/Common/Breadcrumbs/BreadcrumbItem/index.module.css +52 -0
- package/Common/Breadcrumbs/BreadcrumbLink/index.js +5 -0
- package/Common/Breadcrumbs/BreadcrumbLink/index.module.css +32 -0
- package/Common/Breadcrumbs/BreadcrumbRoot/index.js +4 -0
- package/Common/Breadcrumbs/BreadcrumbRoot/index.module.css +10 -0
- package/Common/Breadcrumbs/BreadcrumbTruncatedItem/index.js +4 -0
- package/Common/Breadcrumbs/index.js +22 -0
- package/Common/ChangeHistory/index.js +9 -0
- package/Common/ChangeHistory/index.module.css +198 -0
- package/Common/CodeTabs/index.js +5 -0
- package/Common/CodeTabs/index.module.css +67 -0
- package/Common/DataTag/index.js +18 -0
- package/Common/DataTag/index.module.css +54 -0
- package/Common/GlowingBackdrop/index.js +5 -0
- package/Common/GlowingBackdrop/index.module.css +130 -0
- package/Common/LanguageDropDown/index.js +11 -0
- package/Common/LanguageDropDown/index.module.css +151 -0
- package/Common/Modal/index.js +10 -0
- package/Common/Modal/index.module.css +234 -0
- package/Common/NodejsLogo/index.js +7 -0
- package/Common/NodejsLogo/index.module.css +5 -0
- package/Common/Notification/index.js +6 -0
- package/Common/Notification/index.module.css +104 -0
- package/Common/Preview/index.js +7 -0
- package/Common/Preview/index.module.css +283 -0
- package/Common/Select/index.js +46 -0
- package/Common/Select/index.module.css +328 -0
- package/Common/Separator/index.js +7 -0
- package/Common/Separator/index.module.css +13 -0
- package/Common/Skeleton/index.js +18 -0
- package/Common/Skeleton/index.module.css +127 -0
- package/Common/Tabs/index.js +6 -0
- package/Common/Tabs/index.module.css +72 -0
- package/Common/ThemeToggle/index.js +7 -0
- package/Common/ThemeToggle/index.module.css +22 -0
- package/Common/Tooltip/index.js +8 -0
- package/Common/Tooltip/index.module.css +133 -0
- package/Containers/Article/index.js +4 -0
- package/Containers/Article/index.module.css +139 -0
- package/Containers/DocSideBar/index.js +1 -0
- package/Containers/Footer/index.js +22 -0
- package/Containers/Footer/index.module.css +61 -0
- package/Containers/MetaBar/index.js +12 -0
- package/Containers/MetaBar/index.module.css +123 -0
- package/Containers/NavBar/NavItem/index.js +7 -0
- package/Containers/NavBar/NavItem/index.module.css +74 -0
- package/Containers/NavBar/index.js +18 -0
- package/Containers/NavBar/index.module.css +205 -0
- package/Containers/Sidebar/ProgressionIcon/index.js +3 -0
- package/Containers/Sidebar/SidebarGroup/index.js +9 -0
- package/Containers/Sidebar/SidebarGroup/index.module.css +192 -0
- package/Containers/Sidebar/SidebarItem/index.js +11 -0
- package/Containers/Sidebar/SidebarItem/index.module.css +67 -0
- package/Containers/Sidebar/index.js +15 -0
- package/Containers/Sidebar/index.module.css +48 -0
- package/Icons/HexagonGrid.js +3 -0
- package/Icons/InstallationMethod/Choco.js +3 -0
- package/Icons/InstallationMethod/Devbox.js +3 -0
- package/Icons/InstallationMethod/Docker.js +3 -0
- package/Icons/InstallationMethod/FNM.js +3 -0
- package/Icons/InstallationMethod/Homebrew.js +3 -0
- package/Icons/InstallationMethod/N.js +5 -0
- package/Icons/InstallationMethod/NVM.js +3 -0
- package/Icons/InstallationMethod/Volta.js +3 -0
- package/{src/Icons/InstallationMethod/index.ts → Icons/InstallationMethod/index.js} +0 -1
- package/Icons/Logos/JsGreen.js +3 -0
- package/Icons/Logos/JsWhite.js +3 -0
- package/Icons/Logos/Nodejs.js +6 -0
- package/Icons/Logos/NodejsStackedBlack.js +3 -0
- package/Icons/Logos/NodejsStackedDark.js +3 -0
- package/Icons/Logos/NodejsStackedLight.js +3 -0
- package/Icons/Logos/NodejsStackedWhite.js +3 -0
- package/{src/Icons/Logos/index.ts → Icons/Logos/index.js} +1 -10
- package/Icons/OperatingSystem/AIX.js +3 -0
- package/Icons/OperatingSystem/Apple.js +3 -0
- package/Icons/OperatingSystem/Linux.js +3 -0
- package/Icons/OperatingSystem/Microsoft.js +3 -0
- package/{src/Icons/OperatingSystem/index.ts → Icons/OperatingSystem/index.js} +0 -1
- package/Icons/PackageManager/Npm.js +3 -0
- package/Icons/PackageManager/Pnpm.js +3 -0
- package/Icons/PackageManager/Yarn.js +3 -0
- package/{src/Icons/PackageManager/index.ts → Icons/PackageManager/index.js} +0 -1
- package/Icons/Social/Bluesky.js +3 -0
- package/Icons/Social/Discord.js +3 -0
- package/Icons/Social/GitHub.js +3 -0
- package/Icons/Social/LinkedIn.js +3 -0
- package/Icons/Social/Mastodon.js +3 -0
- package/Icons/Social/Slack.js +3 -0
- package/Icons/Social/X.js +3 -0
- package/{src/Icons/Social/index.ts → Icons/Social/index.js} +0 -1
- package/MDX/CodeTabs.js +16 -0
- package/package.json +6 -45
- package/stylelint/one-utility-class-per-line.mjs +48 -0
- package/{src/stylelint → stylelint}/utils.mjs +19 -25
- package/styles/index.css +1139 -0
- package/types.js +1 -0
- package/.lintstagedrc.json +0 -5
- package/.postcssrc.json +0 -6
- package/.storybook/constants.ts +0 -28
- package/.storybook/main.ts +0 -38
- package/.storybook/preview-head.html +0 -20
- package/.storybook/preview.tsx +0 -32
- package/.stylelintignore +0 -1
- package/.stylelintrc.mjs +0 -56
- package/__design__/colors.stories.tsx +0 -82
- package/__design__/effects.stories.tsx +0 -7
- package/__design__/font-family.stories.tsx +0 -76
- package/__design__/list.stories.tsx +0 -27
- package/__design__/node-logos.stories.tsx +0 -61
- package/__design__/platform-logos.stories.tsx +0 -31
- package/__design__/social-logos.stories.tsx +0 -33
- package/__design__/table.stories.tsx +0 -56
- package/__design__/text.stories.tsx +0 -100
- package/eslint.config.js +0 -61
- package/src/Common/AlertBox/index.module.css +0 -83
- package/src/Common/AlertBox/index.stories.tsx +0 -96
- package/src/Common/AlertBox/index.tsx +0 -24
- package/src/Common/AvatarGroup/Avatar/index.module.css +0 -40
- package/src/Common/AvatarGroup/Avatar/index.stories.tsx +0 -22
- package/src/Common/AvatarGroup/Avatar/index.tsx +0 -67
- package/src/Common/AvatarGroup/Overlay/index.module.css +0 -31
- package/src/Common/AvatarGroup/Overlay/index.stories.tsx +0 -33
- package/src/Common/AvatarGroup/Overlay/index.tsx +0 -37
- package/src/Common/AvatarGroup/__tests__/index.test.jsx +0 -55
- package/src/Common/AvatarGroup/index.module.css +0 -21
- package/src/Common/AvatarGroup/index.stories.tsx +0 -56
- package/src/Common/AvatarGroup/index.tsx +0 -83
- package/src/Common/Badge/index.module.css +0 -38
- package/src/Common/Badge/index.stories.tsx +0 -38
- package/src/Common/Badge/index.tsx +0 -35
- package/src/Common/BadgeGroup/index.module.css +0 -77
- package/src/Common/BadgeGroup/index.stories.tsx +0 -35
- package/src/Common/BadgeGroup/index.tsx +0 -35
- package/src/Common/Banner/index.module.css +0 -42
- package/src/Common/Banner/index.stories.tsx +0 -29
- package/src/Common/Banner/index.tsx +0 -18
- package/src/Common/BaseActiveLink/__tests__/index.test.jsx +0 -52
- package/src/Common/BaseActiveLink/index.tsx +0 -34
- package/src/Common/BaseButton/index.module.css +0 -145
- package/src/Common/BaseButton/index.stories.tsx +0 -67
- package/src/Common/BaseButton/index.tsx +0 -59
- package/src/Common/BaseCodeBox/index.module.css +0 -78
- package/src/Common/BaseCodeBox/index.stories.tsx +0 -39
- package/src/Common/BaseCodeBox/index.tsx +0 -122
- package/src/Common/BaseCrossLink/index.module.css +0 -51
- package/src/Common/BaseCrossLink/index.stories.tsx +0 -38
- package/src/Common/BaseCrossLink/index.tsx +0 -46
- package/src/Common/BaseLinkTabs/index.module.css +0 -43
- package/src/Common/BaseLinkTabs/index.stories.tsx +0 -34
- package/src/Common/BaseLinkTabs/index.tsx +0 -53
- package/src/Common/BasePagination/Ellipsis/index.module.css +0 -10
- package/src/Common/BasePagination/Ellipsis/index.stories.tsx +0 -10
- package/src/Common/BasePagination/Ellipsis/index.tsx +0 -11
- package/src/Common/BasePagination/PaginationListItem/__tests__/index.test.jsx +0 -58
- package/src/Common/BasePagination/PaginationListItem/index.module.css +0 -27
- package/src/Common/BasePagination/PaginationListItem/index.stories.tsx +0 -40
- package/src/Common/BasePagination/PaginationListItem/index.tsx +0 -39
- package/src/Common/BasePagination/PrevNextArrow.tsx +0 -15
- package/src/Common/BasePagination/__tests__/index.test.jsx +0 -180
- package/src/Common/BasePagination/index.module.css +0 -39
- package/src/Common/BasePagination/index.stories.tsx +0 -67
- package/src/Common/BasePagination/index.tsx +0 -77
- package/src/Common/BasePagination/useGetPageElements.tsx +0 -132
- package/src/Common/Blockquote/index.module.css +0 -29
- package/src/Common/Blockquote/index.stories.tsx +0 -45
- package/src/Common/Blockquote/index.tsx +0 -11
- package/src/Common/Breadcrumbs/BreadcrumbHomeLink/index.module.css +0 -5
- package/src/Common/Breadcrumbs/BreadcrumbHomeLink/index.tsx +0 -30
- package/src/Common/Breadcrumbs/BreadcrumbItem/index.module.css +0 -41
- package/src/Common/Breadcrumbs/BreadcrumbItem/index.tsx +0 -42
- package/src/Common/Breadcrumbs/BreadcrumbLink/index.module.css +0 -22
- package/src/Common/Breadcrumbs/BreadcrumbLink/index.tsx +0 -37
- package/src/Common/Breadcrumbs/BreadcrumbRoot/index.module.css +0 -9
- package/src/Common/Breadcrumbs/BreadcrumbRoot/index.tsx +0 -20
- package/src/Common/Breadcrumbs/BreadcrumbTruncatedItem/index.tsx +0 -9
- package/src/Common/Breadcrumbs/index.stories.tsx +0 -94
- package/src/Common/Breadcrumbs/index.tsx +0 -81
- package/src/Common/ChangeHistory/index.module.css +0 -83
- package/src/Common/ChangeHistory/index.stories.tsx +0 -130
- package/src/Common/ChangeHistory/index.tsx +0 -67
- package/src/Common/CodeTabs/index.module.css +0 -56
- package/src/Common/CodeTabs/index.stories.tsx +0 -73
- package/src/Common/CodeTabs/index.tsx +0 -16
- package/src/Common/DataTag/index.module.css +0 -56
- package/src/Common/DataTag/index.stories.tsx +0 -40
- package/src/Common/DataTag/index.tsx +0 -39
- package/src/Common/GlowingBackdrop/index.module.css +0 -32
- package/src/Common/GlowingBackdrop/index.stories.tsx +0 -10
- package/src/Common/GlowingBackdrop/index.tsx +0 -13
- package/src/Common/LanguageDropDown/index.module.css +0 -53
- package/src/Common/LanguageDropDown/index.stories.tsx +0 -19
- package/src/Common/LanguageDropDown/index.tsx +0 -56
- package/src/Common/Modal/index.module.css +0 -79
- package/src/Common/Modal/index.stories.tsx +0 -34
- package/src/Common/Modal/index.tsx +0 -50
- package/src/Common/NodejsLogo/index.module.css +0 -6
- package/src/Common/NodejsLogo/index.stories.tsx +0 -14
- package/src/Common/NodejsLogo/index.tsx +0 -26
- package/src/Common/Notification/index.module.css +0 -20
- package/src/Common/Notification/index.stories.tsx +0 -36
- package/src/Common/Notification/index.tsx +0 -34
- package/src/Common/Preview/index.module.css +0 -79
- package/src/Common/Preview/index.stories.tsx +0 -44
- package/src/Common/Preview/index.tsx +0 -25
- package/src/Common/Select/__tests__/index.test.jsx +0 -67
- package/src/Common/Select/index.module.css +0 -161
- package/src/Common/Select/index.stories.tsx +0 -111
- package/src/Common/Select/index.tsx +0 -187
- package/src/Common/Separator/index.module.css +0 -16
- package/src/Common/Separator/index.stories.tsx +0 -32
- package/src/Common/Separator/index.tsx +0 -27
- package/src/Common/Skeleton/index.module.css +0 -30
- package/src/Common/Skeleton/index.tsx +0 -39
- package/src/Common/Tabs/__tests__/index.test.jsx +0 -52
- package/src/Common/Tabs/index.module.css +0 -54
- package/src/Common/Tabs/index.stories.tsx +0 -50
- package/src/Common/Tabs/index.tsx +0 -54
- package/src/Common/ThemeToggle/__tests__/index.test.jsx +0 -35
- package/src/Common/ThemeToggle/index.module.css +0 -15
- package/src/Common/ThemeToggle/index.stories.tsx +0 -10
- package/src/Common/ThemeToggle/index.tsx +0 -15
- package/src/Common/Tooltip/index.module.css +0 -43
- package/src/Common/Tooltip/index.stories.tsx +0 -73
- package/src/Common/Tooltip/index.tsx +0 -48
- package/src/Containers/Article/index.module.css +0 -70
- package/src/Containers/Article/index.stories.tsx +0 -39
- package/src/Containers/Article/index.tsx +0 -9
- package/src/Containers/DocSideBar/index.tsx +0 -0
- package/src/Containers/Footer/index.module.css +0 -46
- package/src/Containers/Footer/index.stories.tsx +0 -27
- package/src/Containers/Footer/index.tsx +0 -95
- package/src/Containers/MetaBar/__tests__/index.test.jsx +0 -63
- package/src/Containers/MetaBar/index.module.css +0 -91
- package/src/Containers/MetaBar/index.stories.tsx +0 -80
- package/src/Containers/MetaBar/index.tsx +0 -72
- package/src/Containers/NavBar/NavItem/index.module.css +0 -60
- package/src/Containers/NavBar/NavItem/index.stories.tsx +0 -38
- package/src/Containers/NavBar/NavItem/index.tsx +0 -44
- package/src/Containers/NavBar/index.module.css +0 -125
- package/src/Containers/NavBar/index.stories.tsx +0 -45
- package/src/Containers/NavBar/index.tsx +0 -94
- package/src/Containers/Sidebar/ProgressionIcon/index.tsx +0 -16
- package/src/Containers/Sidebar/SidebarGroup/index.module.css +0 -64
- package/src/Containers/Sidebar/SidebarGroup/index.stories.tsx +0 -36
- package/src/Containers/Sidebar/SidebarGroup/index.tsx +0 -49
- package/src/Containers/Sidebar/SidebarItem/index.module.css +0 -56
- package/src/Containers/Sidebar/SidebarItem/index.stories.tsx +0 -15
- package/src/Containers/Sidebar/SidebarItem/index.tsx +0 -43
- package/src/Containers/Sidebar/index.module.css +0 -30
- package/src/Containers/Sidebar/index.stories.tsx +0 -88
- package/src/Containers/Sidebar/index.tsx +0 -70
- package/src/Icons/HexagonGrid.stories.tsx +0 -10
- package/src/Icons/HexagonGrid.tsx +0 -1434
- package/src/Icons/InstallationMethod/Choco.tsx +0 -78
- package/src/Icons/InstallationMethod/Devbox.tsx +0 -21
- package/src/Icons/InstallationMethod/Docker.tsx +0 -20
- package/src/Icons/InstallationMethod/FNM.tsx +0 -132
- package/src/Icons/InstallationMethod/Homebrew.tsx +0 -69
- package/src/Icons/InstallationMethod/N.tsx +0 -32
- package/src/Icons/InstallationMethod/NVM.tsx +0 -63
- package/src/Icons/InstallationMethod/Volta.tsx +0 -34
- package/src/Icons/Logos/JsGreen.tsx +0 -24
- package/src/Icons/Logos/JsWhite.tsx +0 -37
- package/src/Icons/Logos/Nodejs.tsx +0 -372
- package/src/Icons/Logos/NodejsStackedBlack.tsx +0 -98
- package/src/Icons/Logos/NodejsStackedDark.tsx +0 -124
- package/src/Icons/Logos/NodejsStackedLight.tsx +0 -123
- package/src/Icons/Logos/NodejsStackedWhite.tsx +0 -98
- package/src/Icons/OperatingSystem/AIX.tsx +0 -46
- package/src/Icons/OperatingSystem/Apple.tsx +0 -23
- package/src/Icons/OperatingSystem/Linux.tsx +0 -969
- package/src/Icons/OperatingSystem/Microsoft.tsx +0 -19
- package/src/Icons/PackageManager/Npm.tsx +0 -21
- package/src/Icons/PackageManager/Pnpm.tsx +0 -22
- package/src/Icons/PackageManager/Yarn.tsx +0 -22
- package/src/Icons/Social/Bluesky.tsx +0 -19
- package/src/Icons/Social/Discord.tsx +0 -20
- package/src/Icons/Social/GitHub.tsx +0 -16
- package/src/Icons/Social/LinkedIn.tsx +0 -16
- package/src/Icons/Social/Mastodon.tsx +0 -36
- package/src/Icons/Social/Slack.tsx +0 -31
- package/src/Icons/Social/X.tsx +0 -16
- package/src/MDX/CodeTabs.tsx +0 -47
- package/src/global.d.ts +0 -4
- package/src/stylelint/__tests__/index.test.mjs +0 -80
- package/src/stylelint/one-utility-class-per-line.mjs +0 -64
- package/src/styles/animations.css +0 -47
- package/src/styles/base.css +0 -17
- package/src/styles/effects.css +0 -12
- package/src/styles/index.css +0 -38
- package/src/styles/markdown.css +0 -173
- package/src/styles/theme.css +0 -175
- package/src/types.ts +0 -25
- package/tsconfig.json +0 -20
- package/turbo.json +0 -31
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import type { Meta as MetaObj, StoryObj } from '@storybook/react';
|
|
2
|
-
|
|
3
|
-
export const Anchor: StoryObj = {
|
|
4
|
-
render: () => (
|
|
5
|
-
<main>
|
|
6
|
-
<p>
|
|
7
|
-
The current Node.js security policy can be found at{' '}
|
|
8
|
-
<a href="https://github.com/nodejs/node/security/policy#security">
|
|
9
|
-
https://github.com/nodejs/node/security/policy#security
|
|
10
|
-
</a>
|
|
11
|
-
, including information on how to report a vulnerability in Node.js.
|
|
12
|
-
Subscribe to the low-volume announcement-only nodejs-sec mailing list at{' '}
|
|
13
|
-
<a href="https://groups.google.com/forum/#!forum/nodejs-sec">
|
|
14
|
-
https://groups.google.com/forum/#!forum/nodejs-sec
|
|
15
|
-
</a>{' '}
|
|
16
|
-
to stay up to date on security vulnerabilities and security-related
|
|
17
|
-
releases of Node.js and the projects maintained in the nodejs GitHub
|
|
18
|
-
organization.
|
|
19
|
-
</p>
|
|
20
|
-
</main>
|
|
21
|
-
),
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export const InlineCode: StoryObj = {
|
|
25
|
-
render: () => (
|
|
26
|
-
<main>
|
|
27
|
-
<p>
|
|
28
|
-
This is an example of <code>inline code block</code>
|
|
29
|
-
</p>
|
|
30
|
-
<p>
|
|
31
|
-
This is an example of{' '}
|
|
32
|
-
<a href="https://nodejs.org/">
|
|
33
|
-
<code>inline code block inside link</code>
|
|
34
|
-
</a>
|
|
35
|
-
</p>
|
|
36
|
-
</main>
|
|
37
|
-
),
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
export const Headings: StoryObj = {
|
|
41
|
-
render: () => (
|
|
42
|
-
<main>
|
|
43
|
-
<h1>HTML Section Heading 1</h1>
|
|
44
|
-
<h2>HTML Section Heading 2</h2>
|
|
45
|
-
<h3>HTML Section Heading 3</h3>
|
|
46
|
-
<h4>HTML Section Heading 4</h4>
|
|
47
|
-
<h5>HTML Section Heading 5</h5>
|
|
48
|
-
<h6>HTML Section Heading 6</h6>
|
|
49
|
-
</main>
|
|
50
|
-
),
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
// Create the behavior of the headings with links
|
|
54
|
-
// on nodejs.org, this is happening due to `rehype-autolink-headings`
|
|
55
|
-
export const HeadingsWithLinks: StoryObj = {
|
|
56
|
-
render: () => (
|
|
57
|
-
<main>
|
|
58
|
-
<h1 id="heading-1">
|
|
59
|
-
<a href="#heading-1">HTML Section Heading 1</a>
|
|
60
|
-
</h1>
|
|
61
|
-
<h2 id="heading-2">
|
|
62
|
-
<a href="#heading-2">HTML Section Heading 2</a>
|
|
63
|
-
</h2>
|
|
64
|
-
<h3 id="heading-3">
|
|
65
|
-
<a href="#heading-3">HTML Section Heading 3</a>
|
|
66
|
-
</h3>
|
|
67
|
-
<h4 id="heading-4">
|
|
68
|
-
<a href="#heading-4">HTML Section Heading 4</a>
|
|
69
|
-
</h4>
|
|
70
|
-
<h5 id="heading-5">
|
|
71
|
-
<a href="#heading-5">HTML Section Heading 5</a>
|
|
72
|
-
</h5>
|
|
73
|
-
<h6 id="heading-6">
|
|
74
|
-
<a href="#heading-6">HTML Section Heading 6</a>
|
|
75
|
-
</h6>
|
|
76
|
-
</main>
|
|
77
|
-
),
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
export const BoldAndLinks: StoryObj = {
|
|
81
|
-
render: () => (
|
|
82
|
-
<main>
|
|
83
|
-
<p>
|
|
84
|
-
<strong>Bold text (should inherit normal text color)</strong>
|
|
85
|
-
</p>
|
|
86
|
-
<p>
|
|
87
|
-
<strong>
|
|
88
|
-
<a href="#">Bold green link (link inside bold)</a>
|
|
89
|
-
</strong>
|
|
90
|
-
</p>
|
|
91
|
-
<p>
|
|
92
|
-
<a href="#">
|
|
93
|
-
<strong>Bold green link (bold inside link)</strong>
|
|
94
|
-
</a>
|
|
95
|
-
</p>
|
|
96
|
-
</main>
|
|
97
|
-
),
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
export default { title: 'Design System' } as MetaObj;
|
package/eslint.config.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { flatConfigs } from 'eslint-plugin-import-x';
|
|
2
|
-
import react from 'eslint-plugin-react';
|
|
3
|
-
import storybook from 'eslint-plugin-storybook';
|
|
4
|
-
import tseslint from 'typescript-eslint';
|
|
5
|
-
|
|
6
|
-
import baseConfig from '../../eslint.config.js';
|
|
7
|
-
|
|
8
|
-
export default tseslint.config(
|
|
9
|
-
...baseConfig,
|
|
10
|
-
{
|
|
11
|
-
extends: [
|
|
12
|
-
react.configs.flat['jsx-runtime'],
|
|
13
|
-
...tseslint.configs.recommended,
|
|
14
|
-
flatConfigs.typescript,
|
|
15
|
-
],
|
|
16
|
-
files: ['**/*.{js,mjs,ts,tsx}'],
|
|
17
|
-
rules: {
|
|
18
|
-
'@typescript-eslint/array-type': ['error', { default: 'generic' }],
|
|
19
|
-
'@typescript-eslint/consistent-type-imports': 'error',
|
|
20
|
-
'@typescript-eslint/no-require-imports': 'off',
|
|
21
|
-
},
|
|
22
|
-
settings: {
|
|
23
|
-
react: {
|
|
24
|
-
version: 'detect',
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
files: ['**/*.{tsx}'],
|
|
30
|
-
rules: {
|
|
31
|
-
'@typescript-eslint/consistent-type-definitions': ['error', 'type'],
|
|
32
|
-
'react/no-unescaped-entities': 'off',
|
|
33
|
-
'react/function-component-definition': [
|
|
34
|
-
'error',
|
|
35
|
-
{
|
|
36
|
-
namedComponents: 'arrow-function',
|
|
37
|
-
unnamedComponents: 'arrow-function',
|
|
38
|
-
},
|
|
39
|
-
],
|
|
40
|
-
'no-restricted-syntax': [
|
|
41
|
-
'error',
|
|
42
|
-
{
|
|
43
|
-
selector:
|
|
44
|
-
"ImportDeclaration[source.value='react'][specifiers.0.type='ImportDefaultSpecifier']",
|
|
45
|
-
message:
|
|
46
|
-
'Default React import not allowed since we use the TypeScript jsx-transform. If you need a global type that collides with a React named export (such as `MouseEvent`), try using `globalThis.MouseHandler`',
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
selector:
|
|
50
|
-
"ImportDeclaration[source.value='react'] :matches(ImportNamespaceSpecifier)",
|
|
51
|
-
message:
|
|
52
|
-
'Named * React import is not allowed. Please import what you need from React with Named Imports',
|
|
53
|
-
},
|
|
54
|
-
],
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
files: ['components/**/*.stories.tsx'],
|
|
59
|
-
extends: [...storybook.configs['flat/recommended']],
|
|
60
|
-
}
|
|
61
|
-
);
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
@reference "../../styles/index.css";
|
|
2
|
-
|
|
3
|
-
.alertBox {
|
|
4
|
-
@apply flex
|
|
5
|
-
flex-row
|
|
6
|
-
items-center
|
|
7
|
-
gap-2
|
|
8
|
-
rounded-sm
|
|
9
|
-
px-4
|
|
10
|
-
py-3
|
|
11
|
-
text-sm
|
|
12
|
-
text-white;
|
|
13
|
-
|
|
14
|
-
a {
|
|
15
|
-
@apply font-bold
|
|
16
|
-
text-white
|
|
17
|
-
underline
|
|
18
|
-
hover:text-white;
|
|
19
|
-
|
|
20
|
-
&:hover {
|
|
21
|
-
@apply no-underline;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
&.small {
|
|
26
|
-
@apply gap-1
|
|
27
|
-
py-2
|
|
28
|
-
text-xs;
|
|
29
|
-
|
|
30
|
-
.title {
|
|
31
|
-
@apply px-1;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
.title {
|
|
36
|
-
@apply rounded-xs
|
|
37
|
-
px-1.5;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
svg {
|
|
41
|
-
@apply inline
|
|
42
|
-
size-5;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
&.info {
|
|
46
|
-
@apply bg-info-600;
|
|
47
|
-
|
|
48
|
-
.title {
|
|
49
|
-
@apply bg-info-700;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
&.success {
|
|
54
|
-
@apply bg-green-600;
|
|
55
|
-
|
|
56
|
-
.title {
|
|
57
|
-
@apply bg-green-700;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
&.warning {
|
|
62
|
-
@apply bg-warning-600;
|
|
63
|
-
|
|
64
|
-
.title {
|
|
65
|
-
@apply bg-warning-700;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
&.danger {
|
|
70
|
-
@apply bg-danger-600;
|
|
71
|
-
|
|
72
|
-
.title {
|
|
73
|
-
@apply bg-danger-700;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
code {
|
|
78
|
-
/* Ignore the styles from `markdown.css` */
|
|
79
|
-
all: unset;
|
|
80
|
-
|
|
81
|
-
@apply font-ibm-plex-mono;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { ExclamationCircleIcon } from '@heroicons/react/24/solid';
|
|
2
|
-
import type { Meta as MetaObj, StoryObj } from '@storybook/react';
|
|
3
|
-
|
|
4
|
-
import AlertBox from '#ui/Common/AlertBox';
|
|
5
|
-
|
|
6
|
-
type Story = StoryObj<typeof AlertBox>;
|
|
7
|
-
type Meta = MetaObj<typeof AlertBox>;
|
|
8
|
-
|
|
9
|
-
const withMain = (args: React.ComponentProps<typeof AlertBox>) => (
|
|
10
|
-
<main>
|
|
11
|
-
<AlertBox {...args} />
|
|
12
|
-
</main>
|
|
13
|
-
);
|
|
14
|
-
|
|
15
|
-
export const Info: Story = {
|
|
16
|
-
args: {
|
|
17
|
-
level: 'info',
|
|
18
|
-
title: '3',
|
|
19
|
-
children:
|
|
20
|
-
'Legacy. Although this feature is unlikely to be removed and is still covered by semantic versioning guarantees, it is no longer actively maintained, and other alternatives are available.',
|
|
21
|
-
size: 'default',
|
|
22
|
-
},
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export const Success: Story = {
|
|
26
|
-
args: {
|
|
27
|
-
level: 'success',
|
|
28
|
-
title: '2',
|
|
29
|
-
children:
|
|
30
|
-
'Stable. Compatibility with the npm ecosystem is a high priority.',
|
|
31
|
-
size: 'default',
|
|
32
|
-
},
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
export const Warning: Story = {
|
|
36
|
-
args: {
|
|
37
|
-
level: 'warning',
|
|
38
|
-
title: '1',
|
|
39
|
-
children:
|
|
40
|
-
'Experimental. The feature is not subject to semantic versioning rules. Non-backward compatible changes or removal may occur in any future release. Use of the feature is not recommended in production environments. Experimental features are subdivided into stages:',
|
|
41
|
-
size: 'default',
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
export const Danger: Story = {
|
|
46
|
-
args: {
|
|
47
|
-
level: 'danger',
|
|
48
|
-
title: '0',
|
|
49
|
-
children:
|
|
50
|
-
'Deprecated. The feature may emit warnings. Backward compatibility is not guaranteed.',
|
|
51
|
-
size: 'default',
|
|
52
|
-
},
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
export const InMarkdown: Story = {
|
|
56
|
-
args: {
|
|
57
|
-
level: 'danger',
|
|
58
|
-
title: '0',
|
|
59
|
-
children: (
|
|
60
|
-
<>
|
|
61
|
-
In a markdown component, <code>Code renders correctly,</code>{' '}
|
|
62
|
-
<a href="#">
|
|
63
|
-
<code>even when in a link</code>
|
|
64
|
-
</a>
|
|
65
|
-
</>
|
|
66
|
-
),
|
|
67
|
-
size: 'default',
|
|
68
|
-
},
|
|
69
|
-
render: withMain,
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
export const WithIcon: Story = {
|
|
73
|
-
args: {
|
|
74
|
-
level: 'info',
|
|
75
|
-
title: '3',
|
|
76
|
-
children: (
|
|
77
|
-
<p>
|
|
78
|
-
Lorem ipsum dolor sit amet <ExclamationCircleIcon /> consectetur
|
|
79
|
-
adipisicing elit. Inventore, quasi doloremque. Totam, earum velit, sunt
|
|
80
|
-
voluptates fugiat beatae praesentium quis magni explicabo repudiandae
|
|
81
|
-
nam aut molestias ex ad sequi eum!
|
|
82
|
-
</p>
|
|
83
|
-
),
|
|
84
|
-
size: 'default',
|
|
85
|
-
},
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
export default {
|
|
89
|
-
component: AlertBox,
|
|
90
|
-
argTypes: {
|
|
91
|
-
size: {
|
|
92
|
-
options: ['default', 'small'],
|
|
93
|
-
control: { type: 'radio' },
|
|
94
|
-
},
|
|
95
|
-
},
|
|
96
|
-
} as Meta;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import classNames from 'classnames';
|
|
2
|
-
import type { FC, PropsWithChildren } from 'react';
|
|
3
|
-
|
|
4
|
-
import styles from './index.module.css';
|
|
5
|
-
|
|
6
|
-
type AlertBoxProps = PropsWithChildren<{
|
|
7
|
-
level: 'info' | 'success' | 'warning' | 'danger';
|
|
8
|
-
title: string;
|
|
9
|
-
size?: 'default' | 'small';
|
|
10
|
-
}>;
|
|
11
|
-
|
|
12
|
-
const AlertBox: FC<AlertBoxProps> = ({
|
|
13
|
-
level,
|
|
14
|
-
title,
|
|
15
|
-
children,
|
|
16
|
-
size = 'default',
|
|
17
|
-
}) => (
|
|
18
|
-
<div className={classNames(styles.alertBox, styles[level], styles[size])}>
|
|
19
|
-
<span className={styles.title}>{title}</span>
|
|
20
|
-
<span>{children}</span>
|
|
21
|
-
</div>
|
|
22
|
-
);
|
|
23
|
-
|
|
24
|
-
export default AlertBox;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
@reference "../../../styles/index.css";
|
|
2
|
-
|
|
3
|
-
.item {
|
|
4
|
-
@apply xs:max-h-10
|
|
5
|
-
xs:max-w-10
|
|
6
|
-
flex
|
|
7
|
-
h-full
|
|
8
|
-
max-h-12
|
|
9
|
-
w-full
|
|
10
|
-
max-w-12
|
|
11
|
-
items-center
|
|
12
|
-
justify-center
|
|
13
|
-
rounded-full
|
|
14
|
-
border-2
|
|
15
|
-
border-transparent
|
|
16
|
-
bg-neutral-100
|
|
17
|
-
object-cover
|
|
18
|
-
text-xs
|
|
19
|
-
text-neutral-800
|
|
20
|
-
dark:bg-neutral-900
|
|
21
|
-
dark:text-neutral-300;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
.avatar {
|
|
25
|
-
@apply size-8;
|
|
26
|
-
|
|
27
|
-
.wrapper {
|
|
28
|
-
@apply max-xs:block
|
|
29
|
-
max-xs:py-0;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.small {
|
|
34
|
-
@apply xs:size-8
|
|
35
|
-
size-10;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.medium {
|
|
39
|
-
@apply size-10;
|
|
40
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { Meta as MetaObj, StoryObj } from '@storybook/react';
|
|
2
|
-
|
|
3
|
-
import Avatar from '#ui/Common/AvatarGroup/Avatar';
|
|
4
|
-
|
|
5
|
-
type Story = StoryObj<typeof Avatar>;
|
|
6
|
-
type Meta = MetaObj<typeof Avatar>;
|
|
7
|
-
|
|
8
|
-
export const Default: Story = {
|
|
9
|
-
args: {
|
|
10
|
-
image: 'https://avatars.githubusercontent.com/ghost',
|
|
11
|
-
nickname: 'ghost',
|
|
12
|
-
},
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export const NoSquare: Story = {
|
|
16
|
-
args: {
|
|
17
|
-
image: '/static/images/logo-hexagon-card.png',
|
|
18
|
-
nickname: 'SD',
|
|
19
|
-
},
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export default { component: Avatar } as Meta;
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import * as RadixAvatar from '@radix-ui/react-avatar';
|
|
2
|
-
import classNames from 'classnames';
|
|
3
|
-
import type { HTMLAttributes } from 'react';
|
|
4
|
-
import { forwardRef } from 'react';
|
|
5
|
-
|
|
6
|
-
import type { LinkLike } from '#ui/types';
|
|
7
|
-
|
|
8
|
-
import styles from './index.module.css';
|
|
9
|
-
|
|
10
|
-
export type AvatarProps = {
|
|
11
|
-
image?: string;
|
|
12
|
-
name?: string;
|
|
13
|
-
nickname: string;
|
|
14
|
-
fallback?: string;
|
|
15
|
-
size?: 'small' | 'medium';
|
|
16
|
-
url?: string;
|
|
17
|
-
as?: LinkLike | 'div';
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
const Avatar = forwardRef<
|
|
21
|
-
HTMLSpanElement,
|
|
22
|
-
HTMLAttributes<HTMLSpanElement> & AvatarProps
|
|
23
|
-
>(
|
|
24
|
-
(
|
|
25
|
-
{
|
|
26
|
-
image,
|
|
27
|
-
nickname,
|
|
28
|
-
name,
|
|
29
|
-
fallback,
|
|
30
|
-
url,
|
|
31
|
-
size = 'small',
|
|
32
|
-
as: Component = 'a',
|
|
33
|
-
...props
|
|
34
|
-
},
|
|
35
|
-
ref
|
|
36
|
-
) => {
|
|
37
|
-
if (!url) Component = 'div';
|
|
38
|
-
return (
|
|
39
|
-
<RadixAvatar.Root
|
|
40
|
-
{...props}
|
|
41
|
-
ref={ref}
|
|
42
|
-
className={classNames(styles.avatar, styles[size], props.className)}
|
|
43
|
-
>
|
|
44
|
-
<Component
|
|
45
|
-
href={url || undefined}
|
|
46
|
-
target={url ? '_blank' : undefined}
|
|
47
|
-
className={styles.wrapper}
|
|
48
|
-
>
|
|
49
|
-
<RadixAvatar.Image
|
|
50
|
-
loading="lazy"
|
|
51
|
-
decoding="async"
|
|
52
|
-
src={image}
|
|
53
|
-
alt={name || nickname}
|
|
54
|
-
className={styles.item}
|
|
55
|
-
/>
|
|
56
|
-
<RadixAvatar.Fallback
|
|
57
|
-
className={classNames(styles.item, styles[size])}
|
|
58
|
-
>
|
|
59
|
-
{fallback}
|
|
60
|
-
</RadixAvatar.Fallback>
|
|
61
|
-
</Component>
|
|
62
|
-
</RadixAvatar.Root>
|
|
63
|
-
);
|
|
64
|
-
}
|
|
65
|
-
);
|
|
66
|
-
|
|
67
|
-
export default Avatar;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
@reference "../../../styles/index.css";
|
|
2
|
-
|
|
3
|
-
.overlay {
|
|
4
|
-
@apply flex
|
|
5
|
-
min-w-56
|
|
6
|
-
items-center
|
|
7
|
-
gap-2
|
|
8
|
-
p-3;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
.user {
|
|
12
|
-
@apply grow;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
.name {
|
|
16
|
-
@apply font-semibold
|
|
17
|
-
text-neutral-900
|
|
18
|
-
dark:text-neutral-300;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
.nickname {
|
|
22
|
-
@apply font-medium
|
|
23
|
-
text-neutral-700
|
|
24
|
-
dark:text-neutral-500;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.arrow {
|
|
28
|
-
@apply w-3
|
|
29
|
-
fill-neutral-600
|
|
30
|
-
dark:fill-white;
|
|
31
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import type { Meta as MetaObj, StoryObj } from '@storybook/react';
|
|
2
|
-
|
|
3
|
-
import AvatarOverlay from '#ui/Common/AvatarGroup/Overlay';
|
|
4
|
-
|
|
5
|
-
type Story = StoryObj<typeof AvatarOverlay>;
|
|
6
|
-
type Meta = MetaObj<typeof AvatarOverlay>;
|
|
7
|
-
|
|
8
|
-
const author = {
|
|
9
|
-
image: 'https://avatars.githubusercontent.com/ghost',
|
|
10
|
-
name: 'Ghost User',
|
|
11
|
-
nickname: 'ghost',
|
|
12
|
-
fallback: 'GU',
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export const Default: Story = {
|
|
16
|
-
args: author,
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export const FallBack: Story = {
|
|
20
|
-
args: {
|
|
21
|
-
nickname: author.nickname,
|
|
22
|
-
fallback: author.fallback,
|
|
23
|
-
},
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export const WithoutName: Story = {
|
|
27
|
-
args: {
|
|
28
|
-
...author,
|
|
29
|
-
name: undefined,
|
|
30
|
-
},
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
export default { component: AvatarOverlay } as Meta;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { ArrowUpRightIcon } from '@heroicons/react/24/solid';
|
|
2
|
-
import type { ComponentProps, FC } from 'react';
|
|
3
|
-
|
|
4
|
-
import Avatar from '#ui/Common/AvatarGroup/Avatar';
|
|
5
|
-
|
|
6
|
-
import styles from './index.module.css';
|
|
7
|
-
|
|
8
|
-
export type AvatarOverlayProps = ComponentProps<typeof Avatar> & {
|
|
9
|
-
url?: string;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
const AvatarOverlay: FC<AvatarOverlayProps> = ({
|
|
13
|
-
image,
|
|
14
|
-
name,
|
|
15
|
-
nickname,
|
|
16
|
-
fallback,
|
|
17
|
-
url,
|
|
18
|
-
as: Component = 'a',
|
|
19
|
-
}) => (
|
|
20
|
-
<Component className={styles.overlay} href={url} target="_blank">
|
|
21
|
-
<Avatar
|
|
22
|
-
image={image}
|
|
23
|
-
name={name}
|
|
24
|
-
nickname={nickname}
|
|
25
|
-
fallback={fallback}
|
|
26
|
-
size="medium"
|
|
27
|
-
/>
|
|
28
|
-
|
|
29
|
-
<div className={styles.user}>
|
|
30
|
-
{name && <div className={styles.name}>{name}</div>}
|
|
31
|
-
{nickname && <div className={styles.nickname}>{nickname}</div>}
|
|
32
|
-
</div>
|
|
33
|
-
<ArrowUpRightIcon className={styles.arrow} />
|
|
34
|
-
</Component>
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
export default AvatarOverlay;
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { describe, it } from 'node:test';
|
|
2
|
-
import assert from 'node:assert/strict';
|
|
3
|
-
|
|
4
|
-
import { render, fireEvent } from '@testing-library/react';
|
|
5
|
-
|
|
6
|
-
import AvatarGroup from '../index';
|
|
7
|
-
|
|
8
|
-
const names = [
|
|
9
|
-
'ovflowd',
|
|
10
|
-
'bmuenzenmeyer',
|
|
11
|
-
'AugustinMauroy',
|
|
12
|
-
'HinataKah0',
|
|
13
|
-
'Harkunwar',
|
|
14
|
-
'rodion-arr',
|
|
15
|
-
'avivkeller',
|
|
16
|
-
'mikeesto',
|
|
17
|
-
'bnb',
|
|
18
|
-
'benhalverson',
|
|
19
|
-
'aymen94',
|
|
20
|
-
'shanpriyan',
|
|
21
|
-
'Wai-Dung',
|
|
22
|
-
'manishprivet',
|
|
23
|
-
'araujogui',
|
|
24
|
-
];
|
|
25
|
-
|
|
26
|
-
const avatars = names.map(name => ({
|
|
27
|
-
image: `https://avatars.githubusercontent.com/${name}`,
|
|
28
|
-
nickname: name,
|
|
29
|
-
}));
|
|
30
|
-
|
|
31
|
-
const limit = 2;
|
|
32
|
-
const remaining = names.length - limit;
|
|
33
|
-
|
|
34
|
-
describe('AvatarGroup', () => {
|
|
35
|
-
it('renders the AvatarGroup component properly', () => {
|
|
36
|
-
const { getByText } = render(
|
|
37
|
-
<AvatarGroup avatars={avatars} limit={limit} />
|
|
38
|
-
);
|
|
39
|
-
|
|
40
|
-
const showMoreButton = getByText(`+${remaining}`);
|
|
41
|
-
assert.ok(showMoreButton.ownerDocument);
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
it('displays the rest of the avatars when "show more" button is clicked', () => {
|
|
45
|
-
const { getByText } = render(
|
|
46
|
-
<AvatarGroup avatars={avatars} limit={limit} />
|
|
47
|
-
);
|
|
48
|
-
|
|
49
|
-
const showMoreButton = getByText(`+${remaining}`);
|
|
50
|
-
fireEvent.click(showMoreButton);
|
|
51
|
-
|
|
52
|
-
const hideMoreButton = getByText(`-${remaining}`);
|
|
53
|
-
assert.ok(hideMoreButton.ownerDocument);
|
|
54
|
-
});
|
|
55
|
-
});
|