@node-core/ui-components 1.0.1-ed840c2c5b3a7f7a58ec6d75280c2b34129fb5dc → 1.0.1-f1580a0a3365d3d4d0236b80ce9eff447d2890dd
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 +2 -76
- package/Common/AvatarGroup/Avatar/index.js +11 -0
- package/Common/AvatarGroup/Avatar/index.module.css +2 -40
- package/Common/AvatarGroup/Overlay/index.js +6 -0
- package/Common/AvatarGroup/Overlay/index.module.css +2 -31
- package/Common/AvatarGroup/index.js +21 -0
- package/Common/AvatarGroup/index.module.css +2 -21
- package/Common/Badge/index.js +5 -0
- package/Common/Badge/index.module.css +2 -38
- package/Common/BadgeGroup/index.js +6 -0
- package/Common/BadgeGroup/index.module.css +2 -77
- package/Common/Banner/index.js +4 -0
- package/Common/Banner/index.module.css +2 -42
- package/Common/BaseActiveLink/index.js +14 -0
- package/Common/BaseButton/index.js +10 -0
- package/Common/BaseButton/index.module.css +2 -142
- package/Common/BaseCodeBox/index.js +50 -0
- package/Common/BaseCodeBox/index.module.css +2 -78
- package/Common/BaseCrossLink/index.js +12 -0
- package/Common/BaseCrossLink/index.module.css +2 -51
- package/Common/BaseLinkTabs/index.js +5 -0
- package/Common/BaseLinkTabs/index.module.css +2 -43
- package/Common/BasePagination/Ellipsis/index.js +4 -0
- package/Common/BasePagination/Ellipsis/index.module.css +2 -10
- package/Common/BasePagination/PaginationListItem/index.js +6 -0
- package/Common/BasePagination/PaginationListItem/index.module.css +2 -27
- package/Common/BasePagination/PrevNextArrow.js +7 -0
- package/Common/BasePagination/index.js +10 -0
- package/Common/BasePagination/index.module.css +2 -39
- package/Common/BasePagination/useGetPageElements.js +77 -0
- package/Common/Blockquote/index.js +4 -0
- package/Common/Blockquote/index.module.css +2 -29
- package/Common/Breadcrumbs/BreadcrumbHomeLink/index.js +9 -0
- package/Common/Breadcrumbs/BreadcrumbHomeLink/index.module.css +2 -5
- package/Common/Breadcrumbs/BreadcrumbItem/index.js +6 -0
- package/Common/Breadcrumbs/BreadcrumbItem/index.module.css +2 -41
- package/Common/Breadcrumbs/BreadcrumbLink/index.js +5 -0
- package/Common/Breadcrumbs/BreadcrumbLink/index.module.css +2 -22
- package/Common/Breadcrumbs/BreadcrumbRoot/index.js +4 -0
- package/Common/Breadcrumbs/BreadcrumbRoot/index.module.css +2 -9
- 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 +2 -0
- package/Common/CodeTabs/index.js +5 -0
- package/Common/CodeTabs/index.module.css +2 -56
- package/Common/DataTag/index.js +18 -0
- package/Common/DataTag/index.module.css +2 -56
- package/Common/GlowingBackdrop/index.js +5 -0
- package/Common/GlowingBackdrop/index.module.css +2 -32
- package/Common/LanguageDropDown/index.js +11 -0
- package/Common/LanguageDropDown/index.module.css +2 -53
- package/Common/Modal/index.js +10 -0
- package/Common/Modal/index.module.css +2 -79
- package/Common/NodejsLogo/index.js +7 -0
- package/Common/NodejsLogo/index.module.css +2 -6
- package/Common/Notification/index.js +6 -0
- package/Common/Notification/index.module.css +2 -20
- package/Common/Preview/index.js +7 -0
- package/Common/Preview/index.module.css +2 -79
- package/Common/Select/NoScriptSelect/index.js +10 -0
- package/Common/Select/StatelessSelect/index.js +31 -0
- package/Common/Select/index.js +46 -0
- package/Common/Select/index.module.css +2 -161
- package/Common/Separator/index.js +7 -0
- package/Common/Separator/index.module.css +2 -16
- package/Common/Skeleton/index.js +18 -0
- package/Common/Skeleton/index.module.css +2 -30
- package/Common/Tabs/index.js +6 -0
- package/Common/Tabs/index.module.css +2 -54
- package/Common/ThemeToggle/index.js +7 -0
- package/Common/ThemeToggle/index.module.css +2 -15
- package/Common/Tooltip/index.js +8 -0
- package/Common/Tooltip/index.module.css +2 -43
- package/Containers/Article/index.js +4 -0
- package/Containers/Article/index.module.css +2 -70
- package/Containers/Footer/index.js +21 -0
- package/Containers/Footer/index.module.css +2 -46
- package/Containers/MetaBar/index.js +12 -0
- package/Containers/MetaBar/index.module.css +2 -91
- package/Containers/NavBar/NavItem/index.js +7 -0
- package/Containers/NavBar/NavItem/index.module.css +2 -60
- package/Containers/NavBar/index.js +18 -0
- package/Containers/NavBar/index.module.css +2 -125
- package/Containers/Sidebar/ProgressionIcon/index.js +3 -0
- package/Containers/Sidebar/SidebarGroup/index.js +9 -0
- package/Containers/Sidebar/SidebarGroup/index.module.css +2 -26
- package/Containers/Sidebar/SidebarItem/index.js +11 -0
- package/Containers/Sidebar/SidebarItem/index.module.css +2 -35
- package/Containers/Sidebar/index.js +15 -0
- package/Containers/Sidebar/index.module.css +2 -31
- 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/Icons/InstallationMethod/{index.ts → index.js} +0 -1
- package/Icons/Logos/JsWhite.js +3 -0
- package/Icons/Logos/Nodejs.js +12 -0
- package/Icons/Logos/index.js +3 -0
- 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/Icons/OperatingSystem/{index.ts → 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/Icons/PackageManager/{index.ts → 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/Icons/Social/{index.ts → index.js} +0 -1
- package/MDX/CodeTabs.js +29 -0
- package/Providers/NotificationProvider/index.js +16 -0
- package/Providers/NotificationProvider/index.module.css +2 -0
- package/package.json +10 -55
- package/stylelint/one-utility-class-per-line.mjs +34 -50
- package/stylelint/utils.mjs +19 -25
- package/styles/index.css +2 -38
- package/types.js +1 -0
- package/util/array.js +2 -0
- package/Common/AlertBox/index.stories.tsx +0 -73
- package/Common/AlertBox/index.tsx +0 -24
- package/Common/AvatarGroup/Avatar/index.stories.tsx +0 -22
- package/Common/AvatarGroup/Avatar/index.tsx +0 -67
- package/Common/AvatarGroup/Overlay/index.stories.tsx +0 -33
- package/Common/AvatarGroup/Overlay/index.tsx +0 -37
- package/Common/AvatarGroup/__tests__/index.test.jsx +0 -55
- package/Common/AvatarGroup/index.stories.tsx +0 -56
- package/Common/AvatarGroup/index.tsx +0 -83
- package/Common/Badge/index.stories.tsx +0 -38
- package/Common/Badge/index.tsx +0 -35
- package/Common/BadgeGroup/index.stories.tsx +0 -35
- package/Common/BadgeGroup/index.tsx +0 -35
- package/Common/Banner/index.stories.tsx +0 -29
- package/Common/Banner/index.tsx +0 -18
- package/Common/BaseActiveLink/__tests__/index.test.jsx +0 -52
- package/Common/BaseActiveLink/index.tsx +0 -34
- package/Common/BaseButton/index.stories.tsx +0 -67
- package/Common/BaseButton/index.tsx +0 -59
- package/Common/BaseCodeBox/index.stories.tsx +0 -39
- package/Common/BaseCodeBox/index.tsx +0 -122
- package/Common/BaseCrossLink/index.stories.tsx +0 -38
- package/Common/BaseCrossLink/index.tsx +0 -46
- package/Common/BaseLinkTabs/index.stories.tsx +0 -34
- package/Common/BaseLinkTabs/index.tsx +0 -53
- package/Common/BasePagination/Ellipsis/index.stories.tsx +0 -10
- package/Common/BasePagination/Ellipsis/index.tsx +0 -11
- package/Common/BasePagination/PaginationListItem/__tests__/index.test.jsx +0 -58
- package/Common/BasePagination/PaginationListItem/index.stories.tsx +0 -40
- package/Common/BasePagination/PaginationListItem/index.tsx +0 -39
- package/Common/BasePagination/PrevNextArrow.tsx +0 -15
- package/Common/BasePagination/__tests__/index.test.jsx +0 -180
- package/Common/BasePagination/index.stories.tsx +0 -67
- package/Common/BasePagination/index.tsx +0 -77
- package/Common/BasePagination/useGetPageElements.tsx +0 -132
- package/Common/Blockquote/index.stories.tsx +0 -45
- package/Common/Blockquote/index.tsx +0 -11
- package/Common/Breadcrumbs/BreadcrumbHomeLink/index.tsx +0 -30
- package/Common/Breadcrumbs/BreadcrumbItem/index.tsx +0 -42
- package/Common/Breadcrumbs/BreadcrumbLink/index.tsx +0 -37
- package/Common/Breadcrumbs/BreadcrumbRoot/index.tsx +0 -20
- package/Common/Breadcrumbs/BreadcrumbTruncatedItem/index.tsx +0 -9
- package/Common/Breadcrumbs/index.stories.tsx +0 -94
- package/Common/Breadcrumbs/index.tsx +0 -81
- package/Common/CodeTabs/index.stories.tsx +0 -73
- package/Common/CodeTabs/index.tsx +0 -16
- package/Common/DataTag/index.stories.tsx +0 -40
- package/Common/DataTag/index.tsx +0 -39
- package/Common/GlowingBackdrop/index.stories.tsx +0 -10
- package/Common/GlowingBackdrop/index.tsx +0 -13
- package/Common/LanguageDropDown/index.stories.tsx +0 -19
- package/Common/LanguageDropDown/index.tsx +0 -56
- package/Common/Modal/index.stories.tsx +0 -32
- package/Common/Modal/index.tsx +0 -48
- package/Common/NodejsLogo/index.stories.tsx +0 -14
- package/Common/NodejsLogo/index.tsx +0 -26
- package/Common/Notification/index.stories.tsx +0 -36
- package/Common/Notification/index.tsx +0 -34
- package/Common/Preview/index.stories.tsx +0 -44
- package/Common/Preview/index.tsx +0 -25
- package/Common/ProgressionSidebar/ProgressionSidebarGroup/index.module.css +0 -47
- package/Common/ProgressionSidebar/ProgressionSidebarGroup/index.tsx +0 -35
- package/Common/ProgressionSidebar/ProgressionSidebarIcon/index.tsx +0 -16
- package/Common/ProgressionSidebar/ProgressionSidebarItem/index.module.css +0 -39
- package/Common/ProgressionSidebar/ProgressionSidebarItem/index.tsx +0 -32
- package/Common/ProgressionSidebar/index.module.css +0 -30
- package/Common/ProgressionSidebar/index.stories.tsx +0 -79
- package/Common/ProgressionSidebar/index.tsx +0 -59
- package/Common/Select/__tests__/index.test.jsx +0 -67
- package/Common/Select/index.stories.tsx +0 -111
- package/Common/Select/index.tsx +0 -187
- package/Common/Separator/index.stories.tsx +0 -32
- package/Common/Separator/index.tsx +0 -27
- package/Common/Skeleton/index.tsx +0 -39
- package/Common/Tabs/__tests__/index.test.jsx +0 -52
- package/Common/Tabs/index.stories.tsx +0 -50
- package/Common/Tabs/index.tsx +0 -54
- package/Common/ThemeToggle/__tests__/index.test.jsx +0 -35
- package/Common/ThemeToggle/index.stories.tsx +0 -10
- package/Common/ThemeToggle/index.tsx +0 -15
- package/Common/Tooltip/index.stories.tsx +0 -73
- package/Common/Tooltip/index.tsx +0 -48
- package/Containers/Article/index.stories.tsx +0 -39
- package/Containers/Article/index.tsx +0 -9
- package/Containers/Footer/index.stories.tsx +0 -27
- package/Containers/Footer/index.tsx +0 -95
- package/Containers/MetaBar/__tests__/index.test.jsx +0 -63
- package/Containers/MetaBar/index.stories.tsx +0 -80
- package/Containers/MetaBar/index.tsx +0 -72
- package/Containers/NavBar/NavItem/index.stories.tsx +0 -38
- package/Containers/NavBar/NavItem/index.tsx +0 -44
- package/Containers/NavBar/index.stories.tsx +0 -45
- package/Containers/NavBar/index.tsx +0 -94
- package/Containers/Sidebar/SidebarGroup/index.stories.tsx +0 -36
- package/Containers/Sidebar/SidebarGroup/index.tsx +0 -30
- package/Containers/Sidebar/SidebarItem/index.stories.tsx +0 -15
- package/Containers/Sidebar/SidebarItem/index.tsx +0 -26
- package/Containers/Sidebar/index.stories.tsx +0 -84
- package/Containers/Sidebar/index.tsx +0 -58
- package/Icons/HexagonGrid.stories.tsx +0 -10
- package/Icons/HexagonGrid.tsx +0 -1434
- package/Icons/InstallationMethod/Choco.tsx +0 -78
- package/Icons/InstallationMethod/Devbox.tsx +0 -21
- package/Icons/InstallationMethod/Docker.tsx +0 -20
- package/Icons/InstallationMethod/FNM.tsx +0 -132
- package/Icons/InstallationMethod/Homebrew.tsx +0 -69
- package/Icons/InstallationMethod/N.tsx +0 -32
- package/Icons/InstallationMethod/NVM.tsx +0 -63
- package/Icons/InstallationMethod/Volta.tsx +0 -34
- package/Icons/Logos/JsGreen.tsx +0 -24
- package/Icons/Logos/JsWhite.tsx +0 -37
- package/Icons/Logos/Nodejs.tsx +0 -188
- package/Icons/Logos/NodejsStackedBlack.tsx +0 -98
- package/Icons/Logos/NodejsStackedDark.tsx +0 -124
- package/Icons/Logos/NodejsStackedLight.tsx +0 -123
- package/Icons/Logos/NodejsStackedWhite.tsx +0 -98
- package/Icons/Logos/index.ts +0 -17
- package/Icons/OperatingSystem/AIX.tsx +0 -46
- package/Icons/OperatingSystem/Apple.tsx +0 -23
- package/Icons/OperatingSystem/Linux.tsx +0 -969
- package/Icons/OperatingSystem/Microsoft.tsx +0 -19
- package/Icons/PackageManager/Npm.tsx +0 -21
- package/Icons/PackageManager/Pnpm.tsx +0 -22
- package/Icons/PackageManager/Yarn.tsx +0 -22
- package/Icons/Social/Bluesky.tsx +0 -19
- package/Icons/Social/Discord.tsx +0 -20
- package/Icons/Social/GitHub.tsx +0 -16
- package/Icons/Social/LinkedIn.tsx +0 -16
- package/Icons/Social/Mastodon.tsx +0 -36
- package/Icons/Social/Slack.tsx +0 -31
- package/Icons/Social/X.tsx +0 -16
- package/MDX/CodeTabs.tsx +0 -47
- package/stylelint/__tests__/index.test.mjs +0 -80
- package/styles/animations.css +0 -47
- package/styles/base.css +0 -17
- package/styles/effects.css +0 -12
- package/styles/markdown.css +0 -173
- package/styles/theme.css +0 -175
- package/types.ts +0 -25
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import type { ComponentProps } from 'react';
|
|
2
|
-
|
|
3
|
-
import type BasePagination from '#ui/Common/BasePagination';
|
|
4
|
-
import Ellipsis from '#ui/Common/BasePagination/Ellipsis';
|
|
5
|
-
import type { PaginationListItemProps } from '#ui/Common/BasePagination/PaginationListItem';
|
|
6
|
-
import PaginationListItem from '#ui/Common/BasePagination/PaginationListItem';
|
|
7
|
-
import type { LinkLike } from '#ui/types';
|
|
8
|
-
|
|
9
|
-
const parsePages = (
|
|
10
|
-
pages: ComponentProps<typeof BasePagination>['pages'],
|
|
11
|
-
currentPage: number,
|
|
12
|
-
totalPages: number,
|
|
13
|
-
as: LinkLike,
|
|
14
|
-
getLabel: (pageNumber: number) => string
|
|
15
|
-
): Array<PaginationListItemProps> =>
|
|
16
|
-
pages.map(({ url }, index) => ({
|
|
17
|
-
url,
|
|
18
|
-
pageNumber: index + 1,
|
|
19
|
-
currentPage,
|
|
20
|
-
totalPages,
|
|
21
|
-
label: getLabel(index + 1),
|
|
22
|
-
as,
|
|
23
|
-
}));
|
|
24
|
-
|
|
25
|
-
const createPaginationListItems = (
|
|
26
|
-
parsedPages: Array<PaginationListItemProps>
|
|
27
|
-
) => parsedPages.map(page => <PaginationListItem key={page.url} {...page} />);
|
|
28
|
-
|
|
29
|
-
// The minimum amount of elements are first page, current page, and last page
|
|
30
|
-
const MINIMUM_AMOUNT_OF_ELEMENTS = 3;
|
|
31
|
-
|
|
32
|
-
// Not more than two ellipses will be shown at the same time
|
|
33
|
-
const MAXIMUM_AMOUNT_OF_ELLIPSES = 2;
|
|
34
|
-
|
|
35
|
-
// The logic of this custom hook has taken the internal logic of
|
|
36
|
-
// React MUI's Pagination component as reference. More info here:
|
|
37
|
-
// https://github.com/mui/material-ui/blob/master/packages/mui-material/src/usePagination/usePagination.js
|
|
38
|
-
export const useGetPageElements = (
|
|
39
|
-
currentPage: ComponentProps<typeof BasePagination>['currentPage'],
|
|
40
|
-
pages: ComponentProps<typeof BasePagination>['pages'],
|
|
41
|
-
currentPageSiblingsCount: number,
|
|
42
|
-
as: LinkLike,
|
|
43
|
-
getLabel: (pageNumber: number) => string
|
|
44
|
-
) => {
|
|
45
|
-
const totalPages = pages.length;
|
|
46
|
-
const parsedPages = parsePages(pages, currentPage, totalPages, as, getLabel);
|
|
47
|
-
const currentPageIndex = currentPage - 1;
|
|
48
|
-
|
|
49
|
-
// We multiply it by two (2) as siblings are located on both left and right sides
|
|
50
|
-
// of the current page
|
|
51
|
-
const totalSiblingsCount = 2 * currentPageSiblingsCount;
|
|
52
|
-
|
|
53
|
-
const visiblePages =
|
|
54
|
-
totalSiblingsCount +
|
|
55
|
-
MINIMUM_AMOUNT_OF_ELEMENTS +
|
|
56
|
-
MAXIMUM_AMOUNT_OF_ELLIPSES;
|
|
57
|
-
|
|
58
|
-
// When there are more pages than the visible pages to be shown
|
|
59
|
-
// we do not need to perform any calculations
|
|
60
|
-
if (totalPages <= visiblePages) {
|
|
61
|
-
return createPaginationListItems(parsedPages);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
// The index of the far-left sibling of the current page
|
|
65
|
-
const leftSiblingsFirstIndex = Math.max(
|
|
66
|
-
currentPageIndex - currentPageSiblingsCount,
|
|
67
|
-
1
|
|
68
|
-
);
|
|
69
|
-
|
|
70
|
-
// The index of the far-right sibling of the current page
|
|
71
|
-
const rightSiblingsLastIndex = Math.min(
|
|
72
|
-
currentPageIndex + currentPageSiblingsCount + 1,
|
|
73
|
-
totalPages
|
|
74
|
-
);
|
|
75
|
-
|
|
76
|
-
const firstIndex = 0;
|
|
77
|
-
const lastIndex = totalPages - 1;
|
|
78
|
-
|
|
79
|
-
// If there are at least two (2) elements between the far-left sibling of
|
|
80
|
-
// the current page, and the first page, we should show left ellipsis
|
|
81
|
-
// between them
|
|
82
|
-
const hasLeftEllipsis = leftSiblingsFirstIndex > firstIndex + 2;
|
|
83
|
-
|
|
84
|
-
// If there are at least two (2) elements between the far-right sibling of
|
|
85
|
-
// the current page, and the last page, we should show right ellipsis
|
|
86
|
-
// between them
|
|
87
|
-
const hasRightEllipsis = rightSiblingsLastIndex < lastIndex - 1;
|
|
88
|
-
|
|
89
|
-
if (!hasLeftEllipsis && hasRightEllipsis) {
|
|
90
|
-
const leftPagesLastIndex = MINIMUM_AMOUNT_OF_ELEMENTS + totalSiblingsCount;
|
|
91
|
-
|
|
92
|
-
const leftPages = parsedPages.slice(firstIndex, leftPagesLastIndex);
|
|
93
|
-
|
|
94
|
-
return [
|
|
95
|
-
...createPaginationListItems(leftPages),
|
|
96
|
-
<Ellipsis key="ellipsis" />,
|
|
97
|
-
...createPaginationListItems(parsedPages.slice(lastIndex)),
|
|
98
|
-
];
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
if (hasLeftEllipsis && !hasRightEllipsis) {
|
|
102
|
-
const rightPagesFirstIndex =
|
|
103
|
-
MINIMUM_AMOUNT_OF_ELEMENTS + totalSiblingsCount;
|
|
104
|
-
|
|
105
|
-
const rightPages = parsedPages.slice(totalPages - rightPagesFirstIndex);
|
|
106
|
-
|
|
107
|
-
return [
|
|
108
|
-
...createPaginationListItems(
|
|
109
|
-
parsedPages.slice(firstIndex, firstIndex + 1)
|
|
110
|
-
),
|
|
111
|
-
<Ellipsis key="ellipsis" />,
|
|
112
|
-
...createPaginationListItems(rightPages),
|
|
113
|
-
];
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
if (hasLeftEllipsis && hasRightEllipsis) {
|
|
117
|
-
const middlePages = parsedPages.slice(
|
|
118
|
-
leftSiblingsFirstIndex,
|
|
119
|
-
rightSiblingsLastIndex
|
|
120
|
-
);
|
|
121
|
-
|
|
122
|
-
return [
|
|
123
|
-
...createPaginationListItems(
|
|
124
|
-
parsedPages.slice(firstIndex, firstIndex + 1)
|
|
125
|
-
),
|
|
126
|
-
<Ellipsis key="ellipsis-1" />,
|
|
127
|
-
...createPaginationListItems(middlePages),
|
|
128
|
-
<Ellipsis key="ellipsis-2" />,
|
|
129
|
-
...createPaginationListItems(parsedPages.slice(lastIndex)),
|
|
130
|
-
];
|
|
131
|
-
}
|
|
132
|
-
};
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import type { Meta as MetaObj, StoryObj } from '@storybook/react';
|
|
2
|
-
|
|
3
|
-
import Blockquote from '#ui/Common/Blockquote';
|
|
4
|
-
|
|
5
|
-
type Story = StoryObj<typeof Blockquote>;
|
|
6
|
-
type Meta = MetaObj<typeof Blockquote>;
|
|
7
|
-
|
|
8
|
-
export const Default: Story = {
|
|
9
|
-
args: {
|
|
10
|
-
children: (
|
|
11
|
-
<>
|
|
12
|
-
“An expert is a person who has made all the mistakes that can be made in
|
|
13
|
-
a very narrow field.”
|
|
14
|
-
<cite>Niels Bohr</cite>
|
|
15
|
-
</>
|
|
16
|
-
),
|
|
17
|
-
},
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
export const WithoutAttribution: Story = {
|
|
21
|
-
args: {
|
|
22
|
-
children:
|
|
23
|
-
'“Commander Keen soared through the stars, leaving behind a galaxy of memories, adventure, and boundless imagination. In the realm of gaming, his farewell echoes as a timeless voyage into the hearts of those who dare to dream and explore the unknown.”',
|
|
24
|
-
},
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
export const Nested: Story = {
|
|
28
|
-
args: {
|
|
29
|
-
children: (
|
|
30
|
-
<>
|
|
31
|
-
“Words can be like X-rays, if you use them properly—they’ll go through
|
|
32
|
-
anything. You read and you’re pierced.”
|
|
33
|
-
<Blockquote>
|
|
34
|
-
“A thinker sees his own actions as experiments and questions--as
|
|
35
|
-
attempts to find out something. Success and failure are for him
|
|
36
|
-
answers above all.”
|
|
37
|
-
<cite>Friedrich Nietzsche</cite>
|
|
38
|
-
</Blockquote>
|
|
39
|
-
<cite>Aldous Huxley, Brave New World</cite>
|
|
40
|
-
</>
|
|
41
|
-
),
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
export default { component: Blockquote } as Meta;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { ComponentProps, FC, PropsWithChildren } from 'react';
|
|
2
|
-
|
|
3
|
-
import styles from './index.module.css';
|
|
4
|
-
|
|
5
|
-
type BlockquoteProps = ComponentProps<'blockquote'>;
|
|
6
|
-
|
|
7
|
-
const Blockquote: FC<PropsWithChildren<BlockquoteProps>> = ({ children }) => (
|
|
8
|
-
<blockquote className={styles.wrapper}>{children}</blockquote>
|
|
9
|
-
);
|
|
10
|
-
|
|
11
|
-
export default Blockquote;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import HomeIcon from '@heroicons/react/24/outline/HomeIcon';
|
|
2
|
-
import type { ComponentProps, FC } from 'react';
|
|
3
|
-
|
|
4
|
-
import BreadcrumbLink from '#ui/Common/Breadcrumbs/BreadcrumbLink';
|
|
5
|
-
|
|
6
|
-
import styles from './index.module.css';
|
|
7
|
-
|
|
8
|
-
type BreadcrumbHomeLinkProps = Omit<
|
|
9
|
-
ComponentProps<typeof BreadcrumbLink>,
|
|
10
|
-
'href'
|
|
11
|
-
> &
|
|
12
|
-
Partial<Pick<ComponentProps<typeof BreadcrumbLink>, 'href'>>;
|
|
13
|
-
|
|
14
|
-
const BreadcrumbHomeLink: FC<BreadcrumbHomeLinkProps> = ({
|
|
15
|
-
href = '/',
|
|
16
|
-
...props
|
|
17
|
-
}) => {
|
|
18
|
-
const ariaLabel = props['aria-label'];
|
|
19
|
-
return (
|
|
20
|
-
<BreadcrumbLink href={href} {...props}>
|
|
21
|
-
<HomeIcon
|
|
22
|
-
title={ariaLabel}
|
|
23
|
-
aria-label={ariaLabel}
|
|
24
|
-
className={styles.icon}
|
|
25
|
-
/>
|
|
26
|
-
</BreadcrumbLink>
|
|
27
|
-
);
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export default BreadcrumbHomeLink;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import ChevronRightIcon from '@heroicons/react/24/outline/ChevronRightIcon';
|
|
2
|
-
import classNames from 'classnames';
|
|
3
|
-
import type { ComponentProps, FC, PropsWithChildren } from 'react';
|
|
4
|
-
|
|
5
|
-
import styles from './index.module.css';
|
|
6
|
-
|
|
7
|
-
type BreadcrumbItemProps = {
|
|
8
|
-
disableMicrodata?: boolean;
|
|
9
|
-
hidden?: boolean;
|
|
10
|
-
hideSeparator?: boolean;
|
|
11
|
-
position?: number;
|
|
12
|
-
} & ComponentProps<'li'>;
|
|
13
|
-
|
|
14
|
-
const BreadcrumbItem: FC<PropsWithChildren<BreadcrumbItemProps>> = ({
|
|
15
|
-
disableMicrodata,
|
|
16
|
-
children,
|
|
17
|
-
hidden = false,
|
|
18
|
-
hideSeparator = false,
|
|
19
|
-
position,
|
|
20
|
-
...props
|
|
21
|
-
}) => (
|
|
22
|
-
<li
|
|
23
|
-
{...props}
|
|
24
|
-
itemProp={!disableMicrodata ? 'itemListElement' : undefined}
|
|
25
|
-
itemScope={!disableMicrodata ? true : undefined}
|
|
26
|
-
itemType={!disableMicrodata ? 'https://schema.org/ListItem' : undefined}
|
|
27
|
-
className={classNames(
|
|
28
|
-
styles.item,
|
|
29
|
-
{ [styles.visuallyHidden]: hidden },
|
|
30
|
-
props.className
|
|
31
|
-
)}
|
|
32
|
-
aria-hidden={hidden ? 'true' : undefined}
|
|
33
|
-
>
|
|
34
|
-
{children}
|
|
35
|
-
{position && <meta itemProp="position" content={`${position}`} />}
|
|
36
|
-
{!hideSeparator && (
|
|
37
|
-
<ChevronRightIcon aria-hidden="true" className={styles.separator} />
|
|
38
|
-
)}
|
|
39
|
-
</li>
|
|
40
|
-
);
|
|
41
|
-
|
|
42
|
-
export default BreadcrumbItem;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import classNames from 'classnames';
|
|
2
|
-
import type { ComponentProps, FC } from 'react';
|
|
3
|
-
|
|
4
|
-
import type { LinkLike } from '#ui/types';
|
|
5
|
-
|
|
6
|
-
import styles from './index.module.css';
|
|
7
|
-
|
|
8
|
-
type BreadcrumbLinkProps = {
|
|
9
|
-
active?: boolean;
|
|
10
|
-
as: LinkLike;
|
|
11
|
-
} & ComponentProps<LinkLike>;
|
|
12
|
-
|
|
13
|
-
const BreadcrumbLink: FC<BreadcrumbLinkProps> = ({
|
|
14
|
-
href,
|
|
15
|
-
active,
|
|
16
|
-
as: Component = 'a',
|
|
17
|
-
...props
|
|
18
|
-
}) => (
|
|
19
|
-
<Component
|
|
20
|
-
itemScope
|
|
21
|
-
itemType="http://schema.org/Thing"
|
|
22
|
-
itemProp="item"
|
|
23
|
-
itemID={href?.toString()}
|
|
24
|
-
href={href}
|
|
25
|
-
className={classNames(
|
|
26
|
-
styles.link,
|
|
27
|
-
{ [styles.active]: active },
|
|
28
|
-
props.className
|
|
29
|
-
)}
|
|
30
|
-
aria-current={active ? 'page' : undefined}
|
|
31
|
-
{...props}
|
|
32
|
-
>
|
|
33
|
-
<span itemProp="name">{props.children}</span>
|
|
34
|
-
</Component>
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
export default BreadcrumbLink;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { FC, PropsWithChildren, ComponentProps } from 'react';
|
|
2
|
-
|
|
3
|
-
import styles from './index.module.css';
|
|
4
|
-
|
|
5
|
-
const BreadcrumbRoot: FC<PropsWithChildren<ComponentProps<'nav'>>> = ({
|
|
6
|
-
children,
|
|
7
|
-
...props
|
|
8
|
-
}) => (
|
|
9
|
-
<nav aria-label="breadcrumb" {...props}>
|
|
10
|
-
<ol
|
|
11
|
-
itemScope
|
|
12
|
-
itemType="https://schema.org/BreadcrumbList"
|
|
13
|
-
className={styles.list}
|
|
14
|
-
>
|
|
15
|
-
{children}
|
|
16
|
-
</ol>
|
|
17
|
-
</nav>
|
|
18
|
-
);
|
|
19
|
-
|
|
20
|
-
export default BreadcrumbRoot;
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import type { Meta as MetaObj, StoryObj } from '@storybook/react';
|
|
2
|
-
|
|
3
|
-
import Breadcrumbs from '#ui/Common/Breadcrumbs';
|
|
4
|
-
|
|
5
|
-
type Story = StoryObj<typeof Breadcrumbs>;
|
|
6
|
-
type Meta = MetaObj<typeof Breadcrumbs>;
|
|
7
|
-
|
|
8
|
-
export const Default: Story = {
|
|
9
|
-
args: {
|
|
10
|
-
links: [
|
|
11
|
-
{
|
|
12
|
-
label: 'Learn',
|
|
13
|
-
href: '/learn',
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
label: 'Getting Started',
|
|
17
|
-
href: '/learn/getting-started',
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
label: 'Introduction to Node.js',
|
|
21
|
-
href: '/learn/getting-started/intro',
|
|
22
|
-
},
|
|
23
|
-
],
|
|
24
|
-
},
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
export const Linkless: Story = {
|
|
28
|
-
args: {
|
|
29
|
-
links: [
|
|
30
|
-
{
|
|
31
|
-
label: 'Learn',
|
|
32
|
-
href: '',
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
label: 'Getting Started',
|
|
36
|
-
href: '',
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
label: 'Introduction to Node.js',
|
|
40
|
-
href: '',
|
|
41
|
-
},
|
|
42
|
-
],
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
export const Truncate: Story = {
|
|
47
|
-
args: {
|
|
48
|
-
links: [
|
|
49
|
-
{
|
|
50
|
-
label: 'Learn',
|
|
51
|
-
href: '/learn',
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
label: 'Getting Started',
|
|
55
|
-
href: '/learn/getting-started',
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
label: 'Introduction to Node.js',
|
|
59
|
-
href: '/learn/getting-started/intro',
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
label: 'Installation',
|
|
63
|
-
href: '/learn/getting-started/intro/installation',
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
label: 'Documentation',
|
|
67
|
-
href: '/learn/getting-started/intro/installation/documentation',
|
|
68
|
-
},
|
|
69
|
-
],
|
|
70
|
-
maxLength: 1,
|
|
71
|
-
},
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
export const HiddenHome: Story = {
|
|
75
|
-
args: {
|
|
76
|
-
hideHome: true,
|
|
77
|
-
links: [
|
|
78
|
-
{
|
|
79
|
-
label: 'Learn',
|
|
80
|
-
href: '/learn',
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
label: 'Getting Started',
|
|
84
|
-
href: '/learn/getting-started',
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
label: 'Introduction to Node.js',
|
|
88
|
-
href: '/learn/getting-started/intro',
|
|
89
|
-
},
|
|
90
|
-
],
|
|
91
|
-
},
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
export default { component: Breadcrumbs } as Meta;
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import type { FC } from 'react';
|
|
2
|
-
import { useMemo } from 'react';
|
|
3
|
-
|
|
4
|
-
import BreadcrumbHomeLink from '#ui/Common/Breadcrumbs/BreadcrumbHomeLink';
|
|
5
|
-
import BreadcrumbItem from '#ui/Common/Breadcrumbs/BreadcrumbItem';
|
|
6
|
-
import BreadcrumbLink from '#ui/Common/Breadcrumbs/BreadcrumbLink';
|
|
7
|
-
import BreadcrumbRoot from '#ui/Common/Breadcrumbs/BreadcrumbRoot';
|
|
8
|
-
import BreadcrumbTruncatedItem from '#ui/Common/Breadcrumbs/BreadcrumbTruncatedItem';
|
|
9
|
-
import type { FormattedMessage, LinkLike } from '#ui/types';
|
|
10
|
-
|
|
11
|
-
export type BreadcrumbLink = {
|
|
12
|
-
label: FormattedMessage;
|
|
13
|
-
href: string | undefined;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
type BreadcrumbsProps = {
|
|
17
|
-
links: Array<BreadcrumbLink>;
|
|
18
|
-
maxLength?: number;
|
|
19
|
-
hideHome?: boolean;
|
|
20
|
-
as: LinkLike;
|
|
21
|
-
homeLinkAriaLabel?: string;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const Breadcrumbs: FC<BreadcrumbsProps> = ({
|
|
25
|
-
links = [],
|
|
26
|
-
maxLength = 5,
|
|
27
|
-
hideHome = false,
|
|
28
|
-
as = 'a',
|
|
29
|
-
homeLinkAriaLabel,
|
|
30
|
-
}) => {
|
|
31
|
-
const totalLength = links.length + +!hideHome;
|
|
32
|
-
const lengthOffset = maxLength - totalLength;
|
|
33
|
-
const isOverflow = lengthOffset < 0;
|
|
34
|
-
|
|
35
|
-
const items = useMemo(
|
|
36
|
-
() =>
|
|
37
|
-
links.map((link, index, items) => {
|
|
38
|
-
const position = index + 1;
|
|
39
|
-
const isLastItem = index === items.length - 1;
|
|
40
|
-
const hidden =
|
|
41
|
-
// We add 1 here to take into account of the truncated breadcrumb.
|
|
42
|
-
position <= Math.abs(lengthOffset) + 1 && isOverflow && !isLastItem;
|
|
43
|
-
|
|
44
|
-
return (
|
|
45
|
-
<BreadcrumbItem
|
|
46
|
-
key={link.label.toString()}
|
|
47
|
-
hidden={hidden}
|
|
48
|
-
hideSeparator={isLastItem}
|
|
49
|
-
position={position + +!hideHome}
|
|
50
|
-
>
|
|
51
|
-
{link.href || isLastItem ? (
|
|
52
|
-
<BreadcrumbLink
|
|
53
|
-
as={as}
|
|
54
|
-
href={link.href || undefined}
|
|
55
|
-
active={isLastItem}
|
|
56
|
-
>
|
|
57
|
-
{link.label}
|
|
58
|
-
</BreadcrumbLink>
|
|
59
|
-
) : (
|
|
60
|
-
<span className="opacity-70">{link.label}</span>
|
|
61
|
-
)}
|
|
62
|
-
</BreadcrumbItem>
|
|
63
|
-
);
|
|
64
|
-
}),
|
|
65
|
-
[hideHome, isOverflow, lengthOffset, links]
|
|
66
|
-
);
|
|
67
|
-
|
|
68
|
-
return (
|
|
69
|
-
<BreadcrumbRoot>
|
|
70
|
-
{!hideHome && (
|
|
71
|
-
<BreadcrumbItem position={1}>
|
|
72
|
-
<BreadcrumbHomeLink as={as} aria-label={homeLinkAriaLabel} />
|
|
73
|
-
</BreadcrumbItem>
|
|
74
|
-
)}
|
|
75
|
-
{isOverflow && <BreadcrumbTruncatedItem />}
|
|
76
|
-
{items}
|
|
77
|
-
</BreadcrumbRoot>
|
|
78
|
-
);
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
export default Breadcrumbs;
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
2
|
-
import type { Meta as MetaObj, StoryObj } from '@storybook/react';
|
|
3
|
-
import type { FC } from 'react';
|
|
4
|
-
|
|
5
|
-
import BaseCodeBox from '#ui/Common/BaseCodeBox';
|
|
6
|
-
import CodeTabs from '#ui/Common/CodeTabs';
|
|
7
|
-
|
|
8
|
-
type Story = StoryObj<typeof CodeTabs>;
|
|
9
|
-
type Meta = MetaObj<typeof CodeTabs>;
|
|
10
|
-
|
|
11
|
-
const mjsContent = `import * as http from 'http';
|
|
12
|
-
|
|
13
|
-
const hostname = '127.0.0.1';
|
|
14
|
-
const port = 3000;
|
|
15
|
-
|
|
16
|
-
const server = http.createServer((req, res) => {
|
|
17
|
-
res.statusCode = 200;
|
|
18
|
-
res.setHeader('Content-Type', 'text/plain');
|
|
19
|
-
res.end('Hello World');
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
server.listen(port, hostname, () => {
|
|
23
|
-
console.log(\`Server running at http://\${hostname}:\${port}/\`);
|
|
24
|
-
});`;
|
|
25
|
-
|
|
26
|
-
const cjsContent = `const http = require('http');
|
|
27
|
-
|
|
28
|
-
const hostname = '127.0.0.1';
|
|
29
|
-
const port = 3000;
|
|
30
|
-
|
|
31
|
-
const server = http.createServer((req, res) => {
|
|
32
|
-
res.statusCode = 200;
|
|
33
|
-
res.setHeader('Content-Type', 'text/plain');
|
|
34
|
-
res.end('Hello World');
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
server.listen(port, hostname, () => {
|
|
38
|
-
console.log(\`Server running at http://\${hostname}:\${port}/\`);
|
|
39
|
-
});`;
|
|
40
|
-
|
|
41
|
-
const boxProps = {
|
|
42
|
-
onCopy: console.log,
|
|
43
|
-
buttonText: '[Button Text]',
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
const TabsContent: FC = () => (
|
|
47
|
-
<>
|
|
48
|
-
<TabsPrimitive.Content key="mjs" value="mjs">
|
|
49
|
-
<BaseCodeBox language="JavaScript (MJS)" {...boxProps}>
|
|
50
|
-
<code>{mjsContent}</code>
|
|
51
|
-
</BaseCodeBox>
|
|
52
|
-
</TabsPrimitive.Content>
|
|
53
|
-
<TabsPrimitive.Content key="cjs" value="cjs">
|
|
54
|
-
<BaseCodeBox language="JavaScript (CJS)" {...boxProps}>
|
|
55
|
-
<code>{cjsContent}</code>
|
|
56
|
-
</BaseCodeBox>
|
|
57
|
-
</TabsPrimitive.Content>
|
|
58
|
-
</>
|
|
59
|
-
);
|
|
60
|
-
|
|
61
|
-
export const Default: Story = {};
|
|
62
|
-
|
|
63
|
-
export default {
|
|
64
|
-
component: CodeTabs,
|
|
65
|
-
args: {
|
|
66
|
-
children: <TabsContent />,
|
|
67
|
-
defaultValue: 'mjs',
|
|
68
|
-
tabs: [
|
|
69
|
-
{ key: 'mjs', label: 'MJS' },
|
|
70
|
-
{ key: 'cjs', label: 'CJS' },
|
|
71
|
-
],
|
|
72
|
-
},
|
|
73
|
-
} as Meta;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { ComponentProps, FC } from 'react';
|
|
2
|
-
|
|
3
|
-
import Tabs from '#ui/Common/Tabs';
|
|
4
|
-
|
|
5
|
-
import styles from './index.module.css';
|
|
6
|
-
|
|
7
|
-
type CodeTabsProps = Pick<
|
|
8
|
-
ComponentProps<typeof Tabs>,
|
|
9
|
-
'tabs' | 'defaultValue' | 'children' | 'addons'
|
|
10
|
-
>;
|
|
11
|
-
|
|
12
|
-
const CodeTabs: FC<CodeTabsProps> = ({ ...props }) => (
|
|
13
|
-
<Tabs {...props} className={styles.root} triggerClassName={styles.trigger} />
|
|
14
|
-
);
|
|
15
|
-
|
|
16
|
-
export default CodeTabs;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import type { Meta as MetaObj, StoryObj } from '@storybook/react';
|
|
2
|
-
|
|
3
|
-
import DataTag, { type DataTagProps } from '#ui/Common/DataTag';
|
|
4
|
-
|
|
5
|
-
type Story = StoryObj<typeof DataTag>;
|
|
6
|
-
type Meta = MetaObj<typeof DataTag>;
|
|
7
|
-
|
|
8
|
-
export const DataTags: Story = {
|
|
9
|
-
render: () => (
|
|
10
|
-
<div className="grid grid-cols-3 gap-6 p-6">
|
|
11
|
-
{[
|
|
12
|
-
'event',
|
|
13
|
-
'method',
|
|
14
|
-
'property',
|
|
15
|
-
'class',
|
|
16
|
-
'module',
|
|
17
|
-
'classMethod',
|
|
18
|
-
'ctor',
|
|
19
|
-
'global',
|
|
20
|
-
]
|
|
21
|
-
.map(kind =>
|
|
22
|
-
['sm', 'md', 'lg'].map(size => (
|
|
23
|
-
<div
|
|
24
|
-
key={`${kind}-${size}`}
|
|
25
|
-
className="flex justify-center"
|
|
26
|
-
title={kind}
|
|
27
|
-
>
|
|
28
|
-
<DataTag
|
|
29
|
-
kind={kind as DataTagProps['kind']}
|
|
30
|
-
size={size as DataTagProps['size']}
|
|
31
|
-
/>
|
|
32
|
-
</div>
|
|
33
|
-
))
|
|
34
|
-
)
|
|
35
|
-
.flat()}
|
|
36
|
-
</div>
|
|
37
|
-
),
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
export default { component: DataTag } as Meta;
|
package/Common/DataTag/index.tsx
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import classNames from 'classnames';
|
|
2
|
-
import type { FC } from 'react';
|
|
3
|
-
|
|
4
|
-
import styles from './index.module.css';
|
|
5
|
-
|
|
6
|
-
export type DataTagProps = {
|
|
7
|
-
kind:
|
|
8
|
-
| 'event'
|
|
9
|
-
| 'method'
|
|
10
|
-
| 'property'
|
|
11
|
-
| 'class'
|
|
12
|
-
| 'module'
|
|
13
|
-
| 'classMethod'
|
|
14
|
-
| 'global'
|
|
15
|
-
| 'ctor';
|
|
16
|
-
size?: 'lg' | 'md' | 'sm';
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
// These symbols match up with the types used in
|
|
20
|
-
// node core, and the ones defined at
|
|
21
|
-
// https://github.com/nodejs/api-docs-tooling/blob/main/src/types.d.ts#L22 (`HeadingMetadataEntry['type']`)
|
|
22
|
-
const symbolMap = {
|
|
23
|
-
event: 'E',
|
|
24
|
-
method: 'M',
|
|
25
|
-
property: 'P',
|
|
26
|
-
class: 'C',
|
|
27
|
-
module: 'M',
|
|
28
|
-
classMethod: 'S',
|
|
29
|
-
global: 'G',
|
|
30
|
-
ctor: 'C',
|
|
31
|
-
} as const;
|
|
32
|
-
|
|
33
|
-
const DataTag: FC<DataTagProps> = ({ kind, size = 'md' }) => (
|
|
34
|
-
<div className={classNames(styles.dataTag, styles[size], styles[kind])}>
|
|
35
|
-
<span>{symbolMap[kind]}</span>
|
|
36
|
-
</div>
|
|
37
|
-
);
|
|
38
|
-
|
|
39
|
-
export default DataTag;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { Meta as MetaObj, StoryObj } from '@storybook/react';
|
|
2
|
-
|
|
3
|
-
import GlowingBackdrop from '#ui/Common/GlowingBackdrop';
|
|
4
|
-
|
|
5
|
-
type Story = StoryObj<typeof GlowingBackdrop>;
|
|
6
|
-
type Meta = MetaObj<typeof GlowingBackdrop>;
|
|
7
|
-
|
|
8
|
-
export const Default: Story = {};
|
|
9
|
-
|
|
10
|
-
export default { component: GlowingBackdrop } as Meta;
|