@node-core/ui-components 1.0.1-ab0ba1dcb1d91392c44e91b1e74e9f565e460543 → 1.0.1-b2d4fae0fc29bf3aeebacb37572f47a0a81dd8ed
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 -0
- package/Common/AvatarGroup/Avatar/index.js +11 -0
- package/Common/AvatarGroup/Avatar/index.module.css +2 -0
- package/Common/AvatarGroup/Overlay/index.js +6 -0
- package/Common/AvatarGroup/Overlay/index.module.css +2 -0
- package/Common/AvatarGroup/index.js +21 -0
- package/Common/AvatarGroup/index.module.css +2 -0
- package/Common/Badge/index.js +5 -0
- package/Common/Badge/index.module.css +2 -0
- package/Common/BadgeGroup/index.js +6 -0
- package/Common/BadgeGroup/index.module.css +2 -0
- package/Common/Banner/index.js +4 -0
- package/Common/Banner/index.module.css +2 -0
- package/Common/BaseActiveLink/index.js +14 -0
- package/Common/BaseButton/index.js +10 -0
- package/Common/BaseButton/index.module.css +2 -0
- package/Common/BaseCodeBox/index.js +50 -0
- package/Common/BaseCodeBox/index.module.css +2 -0
- package/Common/BaseCrossLink/index.js +12 -0
- package/Common/BaseCrossLink/index.module.css +2 -0
- package/Common/BaseLinkTabs/index.js +5 -0
- package/Common/BaseLinkTabs/index.module.css +2 -0
- package/Common/BasePagination/Ellipsis/index.js +4 -0
- package/Common/BasePagination/Ellipsis/index.module.css +2 -0
- package/Common/BasePagination/PaginationListItem/index.js +6 -0
- package/Common/BasePagination/PaginationListItem/index.module.css +2 -0
- package/Common/BasePagination/PrevNextArrow.js +7 -0
- package/Common/BasePagination/index.js +10 -0
- package/Common/BasePagination/index.module.css +2 -0
- package/Common/BasePagination/useGetPageElements.js +77 -0
- package/Common/Blockquote/index.js +4 -0
- package/Common/Blockquote/index.module.css +2 -0
- package/Common/Breadcrumbs/BreadcrumbHomeLink/index.js +9 -0
- package/Common/Breadcrumbs/BreadcrumbHomeLink/index.module.css +2 -0
- package/Common/Breadcrumbs/BreadcrumbItem/index.js +6 -0
- package/Common/Breadcrumbs/BreadcrumbItem/index.module.css +2 -0
- package/Common/Breadcrumbs/BreadcrumbLink/index.js +5 -0
- package/Common/Breadcrumbs/BreadcrumbLink/index.module.css +2 -0
- package/Common/Breadcrumbs/BreadcrumbRoot/index.js +4 -0
- package/Common/Breadcrumbs/BreadcrumbRoot/index.module.css +2 -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 +2 -0
- package/Common/CodeTabs/index.js +5 -0
- package/Common/CodeTabs/index.module.css +2 -0
- package/Common/DataTag/index.js +18 -0
- package/Common/DataTag/index.module.css +2 -0
- package/Common/GlowingBackdrop/index.js +5 -0
- package/Common/GlowingBackdrop/index.module.css +2 -0
- package/Common/LanguageDropDown/index.js +11 -0
- package/Common/LanguageDropDown/index.module.css +2 -0
- package/Common/Modal/index.js +10 -0
- package/Common/Modal/index.module.css +2 -0
- package/Common/NodejsLogo/index.js +7 -0
- package/Common/NodejsLogo/index.module.css +2 -0
- package/Common/Notification/index.js +6 -0
- package/Common/Notification/index.module.css +2 -0
- package/Common/Preview/index.js +7 -0
- package/Common/Preview/index.module.css +2 -0
- package/Common/Select/index.js +47 -0
- package/Common/Select/index.module.css +2 -0
- package/Common/Separator/index.js +7 -0
- package/Common/Separator/index.module.css +2 -0
- package/Common/Skeleton/index.js +18 -0
- package/Common/Skeleton/index.module.css +2 -0
- package/Common/Tabs/index.js +6 -0
- package/Common/Tabs/index.module.css +2 -0
- package/Common/ThemeToggle/index.js +7 -0
- package/Common/ThemeToggle/index.module.css +2 -0
- package/Common/Tooltip/index.js +8 -0
- package/Common/Tooltip/index.module.css +2 -0
- package/Containers/Article/index.js +4 -0
- package/Containers/Article/index.module.css +2 -0
- package/Containers/Footer/index.js +21 -0
- package/Containers/Footer/index.module.css +2 -0
- package/Containers/MetaBar/index.js +12 -0
- package/Containers/MetaBar/index.module.css +2 -0
- package/Containers/NavBar/NavItem/index.js +7 -0
- package/Containers/NavBar/NavItem/index.module.css +2 -0
- package/Containers/NavBar/index.js +18 -0
- package/Containers/NavBar/index.module.css +2 -0
- package/Containers/Sidebar/ProgressionIcon/index.js +3 -0
- package/Containers/Sidebar/SidebarGroup/index.js +9 -0
- package/Containers/Sidebar/SidebarGroup/index.module.css +2 -0
- package/Containers/Sidebar/SidebarItem/index.js +11 -0
- package/Containers/Sidebar/SidebarItem/index.module.css +2 -0
- package/Containers/Sidebar/index.js +15 -0
- package/Containers/Sidebar/index.module.css +2 -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/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/{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 +25 -0
- package/Providers/NotificationProvider/index.js +16 -0
- package/Providers/NotificationProvider/index.module.css +2 -0
- package/package.json +5 -41
- package/stylelint/one-utility-class-per-line.mjs +48 -0
- package/{src/stylelint → stylelint}/utils.mjs +19 -25
- package/styles/index.css +2 -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/Logos/index.ts +0 -17
- 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
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as Toast from '@radix-ui/react-toast';
|
|
3
|
+
import { createContext, useContext, useEffect, useState } from 'react';
|
|
4
|
+
import Notification from '#ui/Common/Notification';
|
|
5
|
+
import styles from './index.module.css';
|
|
6
|
+
const NotificationContext = createContext(null);
|
|
7
|
+
export const NotificationDispatch = createContext(() => { });
|
|
8
|
+
export const useNotification = () => useContext(NotificationDispatch);
|
|
9
|
+
export const NotificationProvider = ({ children }) => {
|
|
10
|
+
const [notification, dispatch] = useState(null);
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
const timeout = setTimeout(() => dispatch(null), notification?.duration);
|
|
13
|
+
return () => clearTimeout(timeout);
|
|
14
|
+
}, [notification]);
|
|
15
|
+
return (_jsx(NotificationContext.Provider, { value: notification, children: _jsx(NotificationDispatch.Provider, { value: dispatch, children: _jsxs(Toast.Provider, { children: [children, notification && (_jsx(Notification, { duration: notification.duration, children: notification.message })), _jsx(Toast.Viewport, { className: styles.viewport })] }) }) }));
|
|
16
|
+
};
|
package/package.json
CHANGED
|
@@ -1,15 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@node-core/ui-components",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"exports": {
|
|
5
|
-
"./*": [
|
|
6
|
-
"./src/*",
|
|
7
|
-
"./src/*.tsx",
|
|
8
|
-
"./src/*/index.tsx",
|
|
9
|
-
"./src/*.ts",
|
|
10
|
-
"./src/*/index.ts"
|
|
11
|
-
]
|
|
12
|
-
},
|
|
13
4
|
"dependencies": {
|
|
14
5
|
"@heroicons/react": "^2.2.0",
|
|
15
6
|
"@radix-ui/react-avatar": "^1.1.10",
|
|
@@ -27,46 +18,19 @@
|
|
|
27
18
|
"postcss-calc": "^10.1.1",
|
|
28
19
|
"tailwindcss": "~4.0.17"
|
|
29
20
|
},
|
|
30
|
-
"devDependencies": {
|
|
31
|
-
"@storybook/addon-styling-webpack": "^2.0.0",
|
|
32
|
-
"@storybook/addon-themes": "^9.0.15",
|
|
33
|
-
"@storybook/addon-webpack5-compiler-swc": "^3.0.0",
|
|
34
|
-
"@storybook/react": "^9.0.15",
|
|
35
|
-
"@storybook/react-webpack5": "^9.0.15",
|
|
36
|
-
"@testing-library/user-event": "~14.6.1",
|
|
37
|
-
"@types/node": "22.15.3",
|
|
38
|
-
"@types/react": "^19.1.8",
|
|
39
|
-
"cross-env": "^7.0.3",
|
|
40
|
-
"css-loader": "~7.1.2",
|
|
41
|
-
"eslint-plugin-react": "~7.37.4",
|
|
42
|
-
"eslint-plugin-storybook": "~9.0.3",
|
|
43
|
-
"global-jsdom": "^26.0.0",
|
|
44
|
-
"postcss-loader": "~8.1.1",
|
|
45
|
-
"react": "^19.1.0",
|
|
46
|
-
"storybook": "^9.0.15",
|
|
47
|
-
"style-loader": "~4.0.0",
|
|
48
|
-
"stylelint": "^16.21.1",
|
|
49
|
-
"stylelint-config-standard": "^38.0.0",
|
|
50
|
-
"stylelint-order": "7.0.0",
|
|
51
|
-
"stylelint-selector-bem-pattern": "4.0.1",
|
|
52
|
-
"tsx": "^4.20.3",
|
|
53
|
-
"typescript": "~5.8.2",
|
|
54
|
-
"typescript-eslint": "~8.35.1"
|
|
55
|
-
},
|
|
56
21
|
"imports": {
|
|
57
22
|
"#ui/*": [
|
|
58
|
-
"
|
|
59
|
-
"./src/*.tsx",
|
|
60
|
-
"./src/*/index.tsx",
|
|
61
|
-
"./src/*.ts",
|
|
62
|
-
"./src/*/index.ts"
|
|
23
|
+
"./*"
|
|
63
24
|
]
|
|
64
25
|
},
|
|
65
26
|
"engines": {
|
|
66
27
|
"node": ">=20"
|
|
67
28
|
},
|
|
68
|
-
"version": "1.0.1-
|
|
29
|
+
"version": "1.0.1-b2d4fae0fc29bf3aeebacb37572f47a0a81dd8ed",
|
|
69
30
|
"scripts": {
|
|
31
|
+
"compile:ts": "tsc",
|
|
32
|
+
"compile:css": "postcss --dir dist --base src \"src/**/*.module.css\" src/styles/index.css",
|
|
33
|
+
"compile": "node --run compile:ts && node --run compile:css",
|
|
70
34
|
"lint": "turbo run lint:js lint:css",
|
|
71
35
|
"lint:css": "stylelint \"**/*.css\" --allow-empty-input --cache --cache-strategy=content --cache-location=.stylelintcache",
|
|
72
36
|
"lint:fix": "node --run lint -- -- --fix",
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import stylelint from 'stylelint';
|
|
2
|
+
import { indentClassNames } from './utils.mjs';
|
|
3
|
+
const { createPlugin, utils: { report, ruleMessages }, } = stylelint;
|
|
4
|
+
const name = 'nodejs/one-utility-class-per-line';
|
|
5
|
+
const messages = ruleMessages(name, {
|
|
6
|
+
className: classNames => `Each line should contain only one Tailwind utility class; "${classNames}"`,
|
|
7
|
+
spacing: classNames => `Each utility class used with @apply should be indented by 2 spaces on a new line; ${classNames}`,
|
|
8
|
+
});
|
|
9
|
+
const meta = {
|
|
10
|
+
url: 'https://github.com/nodejs/nodejs.org/blob/main/COLLABORATOR_GUIDE.md#styling-a-component',
|
|
11
|
+
fixable: true,
|
|
12
|
+
};
|
|
13
|
+
/** @type {import('stylelint').Rule} */
|
|
14
|
+
const rule = () => (root, result) => {
|
|
15
|
+
root.walkAtRules('apply', rule => {
|
|
16
|
+
if (!rule.params.includes(' ')) {
|
|
17
|
+
// If there are no spaces in the params, we don't need to check anything
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
// Since we use 2 spaces for indentation, each line in the apply rule
|
|
21
|
+
// should be indented with two extra whitespaces.
|
|
22
|
+
const classes = rule.params.split(`${rule.raws.before} `);
|
|
23
|
+
const classNames = classes.join('');
|
|
24
|
+
// Check if the params contain any spaces
|
|
25
|
+
if (classNames.includes(' ')) {
|
|
26
|
+
if (classNames.includes('\n')) {
|
|
27
|
+
return report({
|
|
28
|
+
ruleName: name,
|
|
29
|
+
result: result,
|
|
30
|
+
message: messages.spacing(JSON.stringify(rule.params)),
|
|
31
|
+
node: rule,
|
|
32
|
+
fix: indentClassNames(rule),
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return report({
|
|
36
|
+
ruleName: name,
|
|
37
|
+
result: result,
|
|
38
|
+
message: messages.className(rule.params),
|
|
39
|
+
node: rule,
|
|
40
|
+
fix: indentClassNames(rule),
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
rule.ruleName = name;
|
|
46
|
+
rule.messages = messages;
|
|
47
|
+
rule.meta = meta;
|
|
48
|
+
export default createPlugin(name, rule);
|
|
@@ -8,22 +8,17 @@
|
|
|
8
8
|
* @returns {Object|null} The modified rule with properly formatted class names, or null if the rule is invalid.
|
|
9
9
|
*/
|
|
10
10
|
export const indentClassNames = rule => {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
// Apply the indentation and join the class names back together
|
|
22
|
-
rule.params = applyIndentation(cleanedClasses, indent);
|
|
23
|
-
|
|
24
|
-
return rule;
|
|
11
|
+
// Ensure that the rule contains necessary properties
|
|
12
|
+
if (!rule || !rule.params || !rule.raws || !rule.raws.before) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
const indent = ' '.repeat(rule.raws.before.length + 1);
|
|
16
|
+
// Clean and split the class names
|
|
17
|
+
const cleanedClasses = cleanClassNames(rule.params);
|
|
18
|
+
// Apply the indentation and join the class names back together
|
|
19
|
+
rule.params = applyIndentation(cleanedClasses, indent);
|
|
20
|
+
return rule;
|
|
25
21
|
};
|
|
26
|
-
|
|
27
22
|
/**
|
|
28
23
|
* Cleans the input string by removing unnecessary whitespace and newlines.
|
|
29
24
|
*
|
|
@@ -31,12 +26,11 @@ export const indentClassNames = rule => {
|
|
|
31
26
|
* @returns {string} The cleaned class names string.
|
|
32
27
|
*/
|
|
33
28
|
export const cleanClassNames = params => {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
29
|
+
return params
|
|
30
|
+
.replace(/[\n\r]+/g, '') // Remove new lines
|
|
31
|
+
.replace(/\s+/g, ' ') // Replace multiple spaces with a single space
|
|
32
|
+
.trim(); // Trim leading/trailing spaces
|
|
38
33
|
};
|
|
39
|
-
|
|
40
34
|
/**
|
|
41
35
|
* Applies the correct indentation to each class name in the string.
|
|
42
36
|
*
|
|
@@ -45,9 +39,9 @@ export const cleanClassNames = params => {
|
|
|
45
39
|
* @returns {string} The class names string with applied indentation.
|
|
46
40
|
*/
|
|
47
41
|
export const applyIndentation = (classes, indent) => {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
42
|
+
return classes
|
|
43
|
+
.split(' ') // Split into an array of class names
|
|
44
|
+
.map(className => indent + className) // Add indentation to each class
|
|
45
|
+
.join('\n') // Join with new lines
|
|
46
|
+
.trim(); // Remove extra space at the end
|
|
53
47
|
};
|
package/styles/index.css
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-font-weight:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-leading:initial;--tw-tracking:initial;--tw-border-style:solid;--tw-border-spacing-x:0;--tw-border-spacing-y:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-green-100:#edf2eb;--color-green-200:#c5e5b4;--color-green-300:#99cc7d;--color-green-400:#84ba64;--color-green-600:#417e38;--color-green-700:#2c682c;--color-green-800:#2c682c;--color-green-900:#1a3f1d;--color-gray-200:oklch(92.8% .006 264.531);--color-neutral-100:#f6f7f9;--color-neutral-200:#e9edf0;--color-neutral-300:#d9e1e4;--color-neutral-400:#cbd4d9;--color-neutral-600:#929fa5;--color-neutral-700:#6e7b83;--color-neutral-800:#556066;--color-neutral-900:#2c3437;--color-neutral-950:#0d121c;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:1.33333;--text-sm:.875rem;--text-sm--line-height:1.42857;--text-base:1rem;--text-base--line-height:1.5;--text-lg:1.125rem;--text-lg--line-height:1.55556;--text-xl:1.25rem;--text-xl--line-height:1.4;--text-2xl:1.5rem;--text-2xl--line-height:1.33333;--text-3xl:1.875rem;--text-3xl--line-height:1.2;--text-4xl:2.25rem;--text-4xl--line-height:1.11111;--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-xs:.125rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-danger-100:#fbf1f0;--color-danger-200:#fad3d4;--color-danger-300:#fab6b7;--color-danger-400:#fa8e8e;--color-danger-600:#de1a1b;--color-danger-700:#b80c0c;--color-danger-800:#900e0e;--color-danger-900:#661514;--color-warning-100:#fdf3e7;--color-warning-200:#fad9b0;--color-warning-300:#f5bc75;--color-warning-400:#e99c40;--color-warning-600:#ae5f00;--color-warning-700:#8b4d04;--color-warning-800:#683d08;--color-warning-900:#4d2f0b;--color-info-100:#e9f4fa;--color-info-200:#bce6fc;--color-info-300:#8ed4f8;--color-info-400:#52baed;--color-info-600:#0c7bb3;--color-info-700:#066291;--color-info-800:#074d71;--color-info-900:#0a3953;--color-accent1-100:#f7f1fb;--color-accent1-200:#ead9fb;--color-accent1-300:#dbbdf9;--color-accent1-400:#c79bf2;--color-accent1-600:#9756d6;--color-accent1-700:#7d3cbe;--color-accent1-800:#642b9e;--color-accent1-900:#361b52;--color-accent2-100:#fbf0f4;--color-accent2-200:#fbd4e6;--color-accent2-300:#fbb4d2;--color-accent2-400:#f68bb7;--color-accent2-600:#d6246e;--color-accent2-700:#b01356;--color-accent2-800:#8b1245;--color-accent2-900:#411526;--color-pulse-100:#0000330f;--color-pulse-200:#00002d17;--color-pulse-300:#ddeaf814;--color-pulse-400:#d3edf81d;--color-shadow:#101828;--font-open-sans:var(--font-open-sans);--font-ibm-plex-mono:var(--font-ibm-plex-mono);--font-weight-regular:400}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentColor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--header-height:calc(var(--spacing,.25rem)*16)}*,:after,:before,::backdrop{border-color:var(--color-gray-200,currentColor)}::file-selector-button{border-color:var(--color-gray-200,currentColor)}:is(button,[role=button]):not(:disabled){cursor:pointer}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.relative{position:relative}.right-0{right:calc(var(--spacing)*0)}.container{width:100%}@media (min-width:670px){.container{max-width:670px}}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-1\.5{margin-inline:calc(var(--spacing)*1.5)}.mt-4{margin-top:calc(var(--spacing)*4)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-32{width:calc(var(--spacing)*32);height:calc(var(--spacing)*32)}.h-4{height:calc(var(--spacing)*4)}.h-20{height:calc(var(--spacing)*20)}.h-72{height:calc(var(--spacing)*72)}.h-full{height:100%}.w-4{width:calc(var(--spacing)*4)}.w-20{width:calc(var(--spacing)*20)}.w-72{width:calc(var(--spacing)*72)}.w-200{width:calc(var(--spacing)*200)}.w-\[150px\]{width:150px}.w-\[305px\]{width:305px}.w-\[600px\]{width:600px}.w-full{width:100%}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing)*1)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.bg-accent1-100{background-color:var(--color-accent1-100)}.bg-accent1-200{background-color:var(--color-accent1-200)}.bg-accent1-300{background-color:var(--color-accent1-300)}.bg-accent1-400{background-color:var(--color-accent1-400)}.bg-accent1-600{background-color:var(--color-accent1-600)}.bg-accent1-700{background-color:var(--color-accent1-700)}.bg-accent1-800{background-color:var(--color-accent1-800)}.bg-accent1-900{background-color:var(--color-accent1-900)}.bg-accent2-100{background-color:var(--color-accent2-100)}.bg-accent2-200{background-color:var(--color-accent2-200)}.bg-accent2-300{background-color:var(--color-accent2-300)}.bg-accent2-400{background-color:var(--color-accent2-400)}.bg-accent2-600{background-color:var(--color-accent2-600)}.bg-accent2-700{background-color:var(--color-accent2-700)}.bg-accent2-800{background-color:var(--color-accent2-800)}.bg-accent2-900{background-color:var(--color-accent2-900)}.bg-danger-100{background-color:var(--color-danger-100)}.bg-danger-200{background-color:var(--color-danger-200)}.bg-danger-300{background-color:var(--color-danger-300)}.bg-danger-400{background-color:var(--color-danger-400)}.bg-danger-600{background-color:var(--color-danger-600)}.bg-danger-700{background-color:var(--color-danger-700)}.bg-danger-800{background-color:var(--color-danger-800)}.bg-danger-900{background-color:var(--color-danger-900)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-200{background-color:var(--color-green-200)}.bg-green-300{background-color:var(--color-green-300)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-600{background-color:var(--color-green-600)}.bg-green-700{background-color:var(--color-green-700)}.bg-green-800{background-color:var(--color-green-800)}.bg-green-900{background-color:var(--color-green-900)}.bg-info-100{background-color:var(--color-info-100)}.bg-info-200{background-color:var(--color-info-200)}.bg-info-300{background-color:var(--color-info-300)}.bg-info-400{background-color:var(--color-info-400)}.bg-info-600{background-color:var(--color-info-600)}.bg-info-700{background-color:var(--color-info-700)}.bg-info-800{background-color:var(--color-info-800)}.bg-info-900{background-color:var(--color-info-900)}.bg-neutral-100{background-color:var(--color-neutral-100)}.bg-neutral-200{background-color:var(--color-neutral-200)}.bg-neutral-300{background-color:var(--color-neutral-300)}.bg-neutral-400{background-color:var(--color-neutral-400)}.bg-neutral-600{background-color:var(--color-neutral-600)}.bg-neutral-700{background-color:var(--color-neutral-700)}.bg-neutral-800{background-color:var(--color-neutral-800)}.bg-neutral-900{background-color:var(--color-neutral-900)}.bg-warning-100{background-color:var(--color-warning-100)}.bg-warning-200{background-color:var(--color-warning-200)}.bg-warning-300{background-color:var(--color-warning-300)}.bg-warning-400{background-color:var(--color-warning-400)}.bg-warning-600{background-color:var(--color-warning-600)}.bg-warning-700{background-color:var(--color-warning-700)}.bg-warning-800{background-color:var(--color-warning-800)}.bg-warning-900{background-color:var(--color-warning-900)}.fill-\[\#333333\]{fill:#333}.fill-neutral-700{fill:var(--color-neutral-700)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-4{padding-left:calc(var(--spacing)*4)}.text-center{text-align:center}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-regular{--tw-font-weight:var(--font-weight-regular);font-weight:var(--font-weight-regular)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.opacity-70{opacity:.7}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.group-open\:rotate-180:is(:where(.group):is([open],:popover-open,:open) *){rotate:180deg}.peer-checked\:flex:is(:where(.peer):checked~*){display:flex}@media (prefers-reduced-motion:no-preference){.motion-safe\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}.dark\:block:where([data-theme=dark],[data-theme=dark] *){display:block}.dark\:hidden:where([data-theme=dark],[data-theme=dark] *){display:none}.dark\:fill-neutral-100:where([data-theme=dark],[data-theme=dark] *){fill:var(--color-neutral-100)}.dark\:fill-white:where([data-theme=dark],[data-theme=dark] *){fill:var(--color-white)}*{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}html,body{height:100%}body{background-color:var(--color-white);font-family:var(--font-open-sans);color:var(--color-neutral-950)}@media (prefers-reduced-motion:no-preference){body{scroll-behavior:smooth}}body:where([data-theme=dark],[data-theme=dark] *){background-color:var(--color-neutral-950);color:var(--color-white)}main{gap:calc(var(--spacing)*6);flex-direction:column;width:100%;display:flex}main hr{border-top-style:var(--tw-border-style);border-top-width:1px;border-top-color:var(--color-neutral-200);background-color:var(--color-white);width:100%}main hr:where([data-theme=dark],[data-theme=dark] *){border-top-color:var(--color-neutral-900);background-color:var(--color-neutral-950)}main h1{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}main h2{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}main h3{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}main h4{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}main h5,main h6{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}main h1,main h2,main h3,main h4,main h5,main h6{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-neutral-900)}:is(main h1,main h2,main h3,main h4,main h5,main h6):where([data-theme=dark],[data-theme=dark] *){color:var(--color-white)}:is(main h1,main h2,main h3,main h4,main h5,main h6)[id] a{color:var(--color-neutral-900)}:is(main h1,main h2,main h3,main h4,main h5,main h6)[id] a:where([data-theme=dark],[data-theme=dark] *){color:var(--color-white)}main strong{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}main code{border-radius:var(--radius-xs);background-color:var(--color-neutral-100);padding-inline:calc(var(--spacing)*1);font-family:var(--font-ibm-plex-mono);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-neutral-900)}main code:where([data-theme=dark],[data-theme=dark] *){background-color:var(--color-neutral-900);color:var(--color-white)}main p{color:var(--color-neutral-900)}main p:where([data-theme=dark],[data-theme=dark] *){color:var(--color-white)}main a:not(h1>a):not(h2>a):not(h3>a):not(h4>a):not(h5>a):not(h6>a),main .anchor{color:var(--color-green-600)}@media not all and (min-width:670px){main a:not(h1>a):not(h2>a):not(h3>a):not(h4>a):not(h5>a):not(h6>a),main .anchor{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}}:is(main a:not(h1>a):not(h2>a):not(h3>a):not(h4>a):not(h5>a):not(h6>a),main .anchor):where([data-theme=dark],[data-theme=dark] *){color:var(--color-green-400)}:is(main a:not(h1>a):not(h2>a):not(h3>a):not(h4>a):not(h5>a):not(h6>a),main .anchor):hover{color:var(--color-green-900)}:is(main a:not(h1>a):not(h2>a):not(h3>a):not(h4>a):not(h5>a):not(h6>a),main .anchor):hover:where([data-theme=dark],[data-theme=dark] *){color:var(--color-green-200)}@media not all and (min-width:670px){:is(main a:not(h1>a):not(h2>a):not(h3>a):not(h4>a):not(h5>a):not(h6>a),main .anchor)[role=button]{--tw-font-weight:var(--font-weight-regular);font-weight:var(--font-weight-regular)}:is(main a:not(h1>a):not(h2>a):not(h3>a):not(h4>a):not(h5>a):not(h6>a),main .anchor):has(code){-webkit-text-decoration-color:var(--color-neutral-800);-webkit-text-decoration-color:var(--color-neutral-800);text-decoration-color:var(--color-neutral-800)}:is(main a:not(h1>a):not(h2>a):not(h3>a):not(h4>a):not(h5>a):not(h6>a),main .anchor):has(code):where([data-theme=dark],[data-theme=dark] *){-webkit-text-decoration-color:var(--color-neutral-200);-webkit-text-decoration-color:var(--color-neutral-200);text-decoration-color:var(--color-neutral-200)}}:is(main a:not(h1>a):not(h2>a):not(h3>a):not(h4>a):not(h5>a):not(h6>a),main .anchor):has(code) code{color:inherit}main ul{padding-right:calc(var(--spacing)*5);padding-left:calc(var(--spacing)*9);--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6);color:var(--color-neutral-900);list-style-type:disc}main ul:where([data-theme=dark],[data-theme=dark] *){color:var(--color-white)}main ul li div:has(>pre){margin-block:calc(var(--spacing)*1)!important}main ol{padding-inline:calc(var(--spacing)*5);--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6);color:var(--color-neutral-900);list-style-type:decimal}main ol:where([data-theme=dark],[data-theme=dark] *){color:var(--color-white)}main ol li div:has(>pre){margin-block:calc(var(--spacing)*1)!important}main table{margin-bottom:calc(var(--spacing)*1);border-collapse:separate;--tw-border-spacing-x:calc(var(--spacing)*0);--tw-border-spacing-y:calc(var(--spacing)*0);width:100%;border-spacing:var(--tw-border-spacing-x)var(--tw-border-spacing-y);border-radius:var(--radius-xs);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-200);text-align:left;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}main table:where([data-theme=dark],[data-theme=dark] *){border-color:var(--color-neutral-800)}main table th,main table td{border-style:var(--tw-border-style);border-width:1px;border-top-style:var(--tw-border-style);border-top-width:0;border-right-style:var(--tw-border-style);border-right-width:0;border-color:var(--color-neutral-200);padding-inline:calc(var(--spacing)*4);padding-block:calc(var(--spacing)*2);color:var(--color-neutral-900)}@media not all and (min-width:670px){main table th,main table td{border-left-style:var(--tw-border-style);border-left-width:0;display:block}}:is(main table th,main table td):where([data-theme=dark],[data-theme=dark] *){border-color:var(--color-neutral-800);color:var(--color-white)}:is(main table th,main table td)>a{padding-right:calc(var(--spacing)*2)}main table th{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}@media (min-width:40rem){main table tr:last-child>td{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}@media not all and (min-width:670px){main table tr:last-child>td:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}@media (min-width:40rem){main table td:first-child,main table th:first-child{border-left-style:var(--tw-border-style);border-left-width:0}}}h1.special{background-image:linear-gradient(180deg,var(--color-neutral-900)0%,#2c3437cc 100%)}@supports (color:color-mix(in lab, red, red)){h1.special{background-image:linear-gradient(180deg,var(--color-neutral-900)0%,color-mix(in oklab,var(--color-neutral-900)80%,transparent)100%)}}h1.special{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height));--tw-leading:3rem;--tw-tracking:-0.045rem;letter-spacing:-.045rem;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;line-height:3rem}@media (min-width:48rem){h1.special{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height));--tw-leading:4rem;--tw-tracking:-0.06rem;letter-spacing:-.06rem;line-height:4rem}}h1.special:where([data-theme=dark],[data-theme=dark] *){background-image:linear-gradient(180deg,var(--color-white)0%,#fffc 100%)}@supports (color:color-mix(in lab, red, red)){h1.special:where([data-theme=dark],[data-theme=dark] *){background-image:linear-gradient(180deg,var(--color-white)0%,color-mix(in oklab,var(--color-white)80%,transparent)100%)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-leading{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-border-spacing-x{syntax:"<length>";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:"<length>";inherits:false;initial-value:0}
|
package/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/.lintstagedrc.json
DELETED
package/.postcssrc.json
DELETED
package/.storybook/constants.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
// This defines "execution" modes that Chromatic will run on the each Storybook Story
|
|
2
|
-
// This allows us to test each Story with different parameters
|
|
3
|
-
// @see https://www.chromatic.com/blog/introducing-story-modes/
|
|
4
|
-
export const STORYBOOK_MODES = {
|
|
5
|
-
'dark mobile': {
|
|
6
|
-
theme: 'dark',
|
|
7
|
-
viewport: 'small',
|
|
8
|
-
},
|
|
9
|
-
'dark desktop': {
|
|
10
|
-
theme: 'dark',
|
|
11
|
-
viewport: 'large',
|
|
12
|
-
},
|
|
13
|
-
'light mobile': {
|
|
14
|
-
theme: 'light',
|
|
15
|
-
viewport: 'small',
|
|
16
|
-
},
|
|
17
|
-
'light desktop': {
|
|
18
|
-
theme: 'light',
|
|
19
|
-
viewport: 'large',
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
// These are the supported Viewports for our Storybook Stories
|
|
24
|
-
// It is also the different viewports that Chromatic will run the Visual Regression Tests
|
|
25
|
-
export const STORYBOOK_SIZES = {
|
|
26
|
-
small: { name: 'Small', styles: { width: '414px', height: '896px' } },
|
|
27
|
-
large: { name: 'Large', styles: { width: '1024px', height: '768px' } },
|
|
28
|
-
};
|
package/.storybook/main.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import type { StorybookConfig } from '@storybook/react-webpack5';
|
|
2
|
-
|
|
3
|
-
const config: StorybookConfig = {
|
|
4
|
-
stories: ['../**/*.stories.tsx'],
|
|
5
|
-
logLevel: 'error',
|
|
6
|
-
typescript: { reactDocgen: false, check: false },
|
|
7
|
-
core: { disableTelemetry: true, disableWhatsNewNotifications: true },
|
|
8
|
-
framework: '@storybook/react-webpack5',
|
|
9
|
-
swc: () => ({ jsc: { transform: { react: { runtime: 'automatic' } } } }),
|
|
10
|
-
addons: [
|
|
11
|
-
'@storybook/addon-webpack5-compiler-swc',
|
|
12
|
-
'@storybook/addon-themes',
|
|
13
|
-
{
|
|
14
|
-
name: '@storybook/addon-styling-webpack',
|
|
15
|
-
options: {
|
|
16
|
-
rules: [
|
|
17
|
-
// Replaces existing CSS rules to support PostCSS
|
|
18
|
-
{
|
|
19
|
-
test: /\.css$/,
|
|
20
|
-
use: [
|
|
21
|
-
'style-loader',
|
|
22
|
-
{
|
|
23
|
-
loader: 'css-loader',
|
|
24
|
-
options: {
|
|
25
|
-
esModule: false,
|
|
26
|
-
importLoaders: 1,
|
|
27
|
-
},
|
|
28
|
-
},
|
|
29
|
-
'postcss-loader',
|
|
30
|
-
],
|
|
31
|
-
},
|
|
32
|
-
],
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
],
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
export default config;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
2
|
-
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
3
|
-
|
|
4
|
-
<link
|
|
5
|
-
rel="stylesheet"
|
|
6
|
-
href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&family=Open+Sans:ital,wght@0,300..800;1,300..800"
|
|
7
|
-
/>
|
|
8
|
-
|
|
9
|
-
<style>
|
|
10
|
-
:root {
|
|
11
|
-
color-scheme: light;
|
|
12
|
-
|
|
13
|
-
--font-ibm-plex-mono: 'IBM Plex Mono';
|
|
14
|
-
--font-open-sans: 'Open Sans';
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
html[data-theme='dark'] {
|
|
18
|
-
color-scheme: dark;
|
|
19
|
-
}
|
|
20
|
-
</style>
|
package/.storybook/preview.tsx
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import * as Toast from '@radix-ui/react-toast';
|
|
2
|
-
import { withThemeByDataAttribute } from '@storybook/addon-themes';
|
|
3
|
-
import type { Preview, ReactRenderer } from '@storybook/react';
|
|
4
|
-
|
|
5
|
-
import { STORYBOOK_MODES, STORYBOOK_SIZES } from './constants';
|
|
6
|
-
|
|
7
|
-
import '#ui/styles/index.css';
|
|
8
|
-
|
|
9
|
-
const preview: Preview = {
|
|
10
|
-
parameters: {
|
|
11
|
-
chromatic: { modes: STORYBOOK_MODES },
|
|
12
|
-
viewport: { defaultViewport: 'large', viewports: STORYBOOK_SIZES },
|
|
13
|
-
},
|
|
14
|
-
decorators: [
|
|
15
|
-
Story => (
|
|
16
|
-
<Toast.Provider>
|
|
17
|
-
<Story />
|
|
18
|
-
<Toast.Viewport />
|
|
19
|
-
</Toast.Provider>
|
|
20
|
-
),
|
|
21
|
-
withThemeByDataAttribute<ReactRenderer>({
|
|
22
|
-
themes: { light: '', dark: 'dark' },
|
|
23
|
-
defaultTheme: 'light',
|
|
24
|
-
attributeName: 'data-theme',
|
|
25
|
-
}),
|
|
26
|
-
// TODO(@avivkeller): Once storybook fixes their types
|
|
27
|
-
// this can be removed, since `withThemeByDataAttribute`
|
|
28
|
-
// will return the same type that is accepted by `Preview`
|
|
29
|
-
] as Preview['decorators'],
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export default preview;
|
package/.stylelintignore
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
storybook-static
|
package/.stylelintrc.mjs
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
// These are all the custom `@` (at) rules that we use within our custom PostCSS plugins
|
|
2
|
-
const CUSTOM_AT_RULES = [
|
|
3
|
-
// Tailwind-specific at-rules
|
|
4
|
-
'apply',
|
|
5
|
-
'layer',
|
|
6
|
-
'responsive',
|
|
7
|
-
'reference',
|
|
8
|
-
'utility',
|
|
9
|
-
'theme',
|
|
10
|
-
'custom-variant',
|
|
11
|
-
'screen',
|
|
12
|
-
'source',
|
|
13
|
-
'tailwind',
|
|
14
|
-
'variants',
|
|
15
|
-
];
|
|
16
|
-
|
|
17
|
-
// Enforces certain selectors to be only in camelCase notation
|
|
18
|
-
// We use these for id selectors and classname selectors
|
|
19
|
-
const ONLY_ALLOW_CAMEL_CASE_SELECTORS = [
|
|
20
|
-
/^(?:[a-z]+(?:[A-Z][a-z]*)*)$/,
|
|
21
|
-
{ message: s => `Expected '${s}' to be in camelCase` },
|
|
22
|
-
];
|
|
23
|
-
|
|
24
|
-
export default {
|
|
25
|
-
extends: ['stylelint-config-standard'],
|
|
26
|
-
plugins: [
|
|
27
|
-
'stylelint-order',
|
|
28
|
-
'stylelint-selector-bem-pattern',
|
|
29
|
-
'#ui/stylelint/one-utility-class-per-line.mjs',
|
|
30
|
-
],
|
|
31
|
-
rules: {
|
|
32
|
-
// Enforces Element Class Names to be camelCase
|
|
33
|
-
'selector-class-pattern': ONLY_ALLOW_CAMEL_CASE_SELECTORS,
|
|
34
|
-
// Enforces Element IDs to be camelCase
|
|
35
|
-
'selector-id-pattern': ONLY_ALLOW_CAMEL_CASE_SELECTORS,
|
|
36
|
-
// Allow Tailwind-based CSS Rules
|
|
37
|
-
'at-rule-no-unknown': [true, { ignoreAtRules: CUSTOM_AT_RULES }],
|
|
38
|
-
// Allow the Global CSS Selector
|
|
39
|
-
'selector-pseudo-class-no-unknown': [
|
|
40
|
-
true,
|
|
41
|
-
{ ignorePseudoClasses: ['global'] },
|
|
42
|
-
],
|
|
43
|
-
// Enforces the order of the CSS properties to be in alphabetical order
|
|
44
|
-
'order/properties-alphabetical-order': true,
|
|
45
|
-
'no-descending-specificity': null,
|
|
46
|
-
// Disables the Level-4 Media Queries; Since they're more exotic and less known
|
|
47
|
-
'media-feature-range-notation': 'prefix',
|
|
48
|
-
// Adopts the import notation from `postcss-import`
|
|
49
|
-
'import-notation': 'string',
|
|
50
|
-
// Allow the `@apply` at rule as its part of Tailwind
|
|
51
|
-
'at-rule-no-deprecated': [true, { ignoreAtRules: CUSTOM_AT_RULES }],
|
|
52
|
-
'nodejs/one-utility-class-per-line': true,
|
|
53
|
-
// We need complex `:not()` for headings with anchor
|
|
54
|
-
'selector-not-notation': null,
|
|
55
|
-
},
|
|
56
|
-
};
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import type { Meta as MetaObj, StoryObj } from '@storybook/react';
|
|
2
|
-
|
|
3
|
-
export const Colors: StoryObj = {
|
|
4
|
-
render: () => (
|
|
5
|
-
<div className="flex flex-row justify-between">
|
|
6
|
-
<div className="flex w-full flex-col items-center justify-between gap-1">
|
|
7
|
-
<div className="flex flex-row gap-1">
|
|
8
|
-
<div className="h-20 w-20 bg-green-100" />
|
|
9
|
-
<div className="h-20 w-20 bg-green-200" />
|
|
10
|
-
<div className="h-20 w-20 bg-green-300" />
|
|
11
|
-
<div className="h-20 w-20 bg-green-400" />
|
|
12
|
-
<div className="h-20 w-20 bg-green-600" />
|
|
13
|
-
<div className="h-20 w-20 bg-green-700" />
|
|
14
|
-
<div className="h-20 w-20 bg-green-800" />
|
|
15
|
-
<div className="h-20 w-20 bg-green-900" />
|
|
16
|
-
</div>
|
|
17
|
-
<div className="flex flex-row gap-1">
|
|
18
|
-
<div className="h-20 w-20 bg-neutral-100" />
|
|
19
|
-
<div className="h-20 w-20 bg-neutral-200" />
|
|
20
|
-
<div className="h-20 w-20 bg-neutral-300" />
|
|
21
|
-
<div className="h-20 w-20 bg-neutral-400" />
|
|
22
|
-
<div className="h-20 w-20 bg-neutral-600" />
|
|
23
|
-
<div className="h-20 w-20 bg-neutral-700" />
|
|
24
|
-
<div className="h-20 w-20 bg-neutral-800" />
|
|
25
|
-
<div className="h-20 w-20 bg-neutral-900" />
|
|
26
|
-
</div>
|
|
27
|
-
<div className="flex flex-row gap-1">
|
|
28
|
-
<div className="bg-danger-100 h-20 w-20" />
|
|
29
|
-
<div className="bg-danger-200 h-20 w-20" />
|
|
30
|
-
<div className="bg-danger-300 h-20 w-20" />
|
|
31
|
-
<div className="bg-danger-400 h-20 w-20" />
|
|
32
|
-
<div className="bg-danger-600 h-20 w-20" />
|
|
33
|
-
<div className="bg-danger-700 h-20 w-20" />
|
|
34
|
-
<div className="bg-danger-800 h-20 w-20" />
|
|
35
|
-
<div className="bg-danger-900 h-20 w-20" />
|
|
36
|
-
</div>
|
|
37
|
-
<div className="flex flex-row gap-1">
|
|
38
|
-
<div className="bg-warning-100 h-20 w-20" />
|
|
39
|
-
<div className="bg-warning-200 h-20 w-20" />
|
|
40
|
-
<div className="bg-warning-300 h-20 w-20" />
|
|
41
|
-
<div className="bg-warning-400 h-20 w-20" />
|
|
42
|
-
<div className="bg-warning-600 h-20 w-20" />
|
|
43
|
-
<div className="bg-warning-700 h-20 w-20" />
|
|
44
|
-
<div className="bg-warning-800 h-20 w-20" />
|
|
45
|
-
<div className="bg-warning-900 h-20 w-20" />
|
|
46
|
-
</div>
|
|
47
|
-
<div className="flex flex-row gap-1">
|
|
48
|
-
<div className="bg-info-100 h-20 w-20" />
|
|
49
|
-
<div className="bg-info-200 h-20 w-20" />
|
|
50
|
-
<div className="bg-info-300 h-20 w-20" />
|
|
51
|
-
<div className="bg-info-400 h-20 w-20" />
|
|
52
|
-
<div className="bg-info-600 h-20 w-20" />
|
|
53
|
-
<div className="bg-info-700 h-20 w-20" />
|
|
54
|
-
<div className="bg-info-800 h-20 w-20" />
|
|
55
|
-
<div className="bg-info-900 h-20 w-20" />
|
|
56
|
-
</div>
|
|
57
|
-
<div className="flex flex-row gap-1">
|
|
58
|
-
<div className="bg-accent1-100 h-20 w-20" />
|
|
59
|
-
<div className="bg-accent1-200 h-20 w-20" />
|
|
60
|
-
<div className="bg-accent1-300 h-20 w-20" />
|
|
61
|
-
<div className="bg-accent1-400 h-20 w-20" />
|
|
62
|
-
<div className="bg-accent1-600 h-20 w-20" />
|
|
63
|
-
<div className="bg-accent1-700 h-20 w-20" />
|
|
64
|
-
<div className="bg-accent1-800 h-20 w-20" />
|
|
65
|
-
<div className="bg-accent1-900 h-20 w-20" />
|
|
66
|
-
</div>
|
|
67
|
-
<div className="flex flex-row gap-1">
|
|
68
|
-
<div className="bg-accent2-100 h-20 w-20" />
|
|
69
|
-
<div className="bg-accent2-200 h-20 w-20" />
|
|
70
|
-
<div className="bg-accent2-300 h-20 w-20" />
|
|
71
|
-
<div className="bg-accent2-400 h-20 w-20" />
|
|
72
|
-
<div className="bg-accent2-600 h-20 w-20" />
|
|
73
|
-
<div className="bg-accent2-700 h-20 w-20" />
|
|
74
|
-
<div className="bg-accent2-800 h-20 w-20" />
|
|
75
|
-
<div className="bg-accent2-900 h-20 w-20" />
|
|
76
|
-
</div>
|
|
77
|
-
</div>
|
|
78
|
-
</div>
|
|
79
|
-
),
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
export default { title: 'Design System' } as MetaObj;
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import type { Meta as MetaObj, StoryObj } from '@storybook/react';
|
|
2
|
-
|
|
3
|
-
export const FontFamily: StoryObj = {
|
|
4
|
-
render: () => (
|
|
5
|
-
<div className="align-center ga-1 flex h-full flex-row flex-wrap justify-start">
|
|
6
|
-
<div>
|
|
7
|
-
<p className="font-regular text-xs">Text XS/Regular</p>
|
|
8
|
-
<p className="text-xs font-medium">Text XS/Medium</p>
|
|
9
|
-
<p className="text-xs font-semibold">Text XS/SemiBold</p>
|
|
10
|
-
<p className="text-xs font-bold">Text XS/Bold</p>
|
|
11
|
-
</div>
|
|
12
|
-
<div>
|
|
13
|
-
<p className="font-regular text-sm">Text SM/Regular</p>
|
|
14
|
-
<p className="text-sm font-medium">Text SM/Medium</p>
|
|
15
|
-
<p className="text-sm font-semibold">Text SM/SemiBold</p>
|
|
16
|
-
<p className="text-sm font-bold">Text SM/Bold</p>
|
|
17
|
-
</div>
|
|
18
|
-
<div>
|
|
19
|
-
<p className="text-regular font-regular">Text Base/Regular</p>
|
|
20
|
-
<p className="text-regular font-medium">Text Base/Medium</p>
|
|
21
|
-
<p className="text-regular font-semibold">Text Base/SemiBold</p>
|
|
22
|
-
<p className="text-regular font-bold">Text Base/Bold</p>
|
|
23
|
-
</div>
|
|
24
|
-
<div>
|
|
25
|
-
<p className="font-regular text-lg">Text LG/Regular</p>
|
|
26
|
-
<p className="text-lg font-medium">Text LG/Medium</p>
|
|
27
|
-
<p className="text-lg font-semibold">Text LG/SemiBold</p>
|
|
28
|
-
<p className="text-lg font-bold">Text LG/Bold</p>
|
|
29
|
-
</div>
|
|
30
|
-
<div>
|
|
31
|
-
<p className="font-regular text-xl">Text XL/Regular</p>
|
|
32
|
-
<p className="text-xl font-medium">Text XL/Medium</p>
|
|
33
|
-
<p className="text-xl font-semibold">Text XL/SemiBold</p>
|
|
34
|
-
<p className="text-xl font-bold">Text XL/Bold</p>
|
|
35
|
-
</div>
|
|
36
|
-
<div>
|
|
37
|
-
<p className="font-regular text-2xl">Text 2XL/Regular</p>
|
|
38
|
-
<p className="text-2xl font-medium">Text 2XL/Medium</p>
|
|
39
|
-
<p className="text-2xl font-semibold">Text 2XL/SemiBold</p>
|
|
40
|
-
<p className="text-2xl font-bold">Text 2XL/Bold</p>
|
|
41
|
-
</div>
|
|
42
|
-
<div>
|
|
43
|
-
<p className="font-regular text-3xl">Text 3XL/Regular</p>
|
|
44
|
-
<p className="text-3xl font-medium">Text 3XL/Medium</p>
|
|
45
|
-
<p className="text-3xl font-semibold">Text 3XL/SemiBold</p>
|
|
46
|
-
<p className="text-3xl font-bold">Text 3XL/Bold</p>
|
|
47
|
-
</div>
|
|
48
|
-
<div>
|
|
49
|
-
<p className="font-regular text-4xl">Text 4XL/Regular</p>
|
|
50
|
-
<p className="text-4xl font-medium">Text 4XL/Medium</p>
|
|
51
|
-
<p className="text-4xl font-semibold">Text 4XL/SemiBold</p>
|
|
52
|
-
<p className="text-4xl font-bold">Text 4XL/Bold</p>
|
|
53
|
-
</div>
|
|
54
|
-
<div>
|
|
55
|
-
<p className="font-regular text-5xl">Text 5XL/Regular</p>
|
|
56
|
-
<p className="text-5xl font-medium">Text 5XL/Medium</p>
|
|
57
|
-
<p className="text-5xl font-semibold">Text 5XL/SemiBold</p>
|
|
58
|
-
<p className="text-5xl font-bold">Text 5XL/Bold</p>
|
|
59
|
-
</div>
|
|
60
|
-
<div>
|
|
61
|
-
<p className="font-regular text-6xl">Text 6XL/Regular</p>
|
|
62
|
-
<p className="text-6xl font-medium">Text 6XL/Medium</p>
|
|
63
|
-
<p className="text-6xl font-semibold">Text 6XL/SemiBold</p>
|
|
64
|
-
<p className="text-6xl font-bold">Text 6XL/Bold</p>
|
|
65
|
-
</div>
|
|
66
|
-
<div>
|
|
67
|
-
<p className="font-regular text-7xl">Text 7XL/Regular</p>
|
|
68
|
-
<p className="text-7xl font-medium">Text 7XL/Medium</p>
|
|
69
|
-
<p className="text-7xl font-semibold">Text 7XL/SemiBold</p>
|
|
70
|
-
<p className="text-7xl font-bold">Text 7XL/Bold</p>
|
|
71
|
-
</div>
|
|
72
|
-
</div>
|
|
73
|
-
),
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
export default { title: 'Design System' } as MetaObj;
|