@node-core/ui-components 1.0.1-ab0ba1dcb1d91392c44e91b1e74e9f565e460543 → 1.0.1-b8e314e799e27da854d47f211c1fed36810b969a

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.
Files changed (331) hide show
  1. package/Common/AlertBox/index.js +5 -0
  2. package/Common/AlertBox/index.module.css +2 -0
  3. package/Common/AvatarGroup/Avatar/index.js +11 -0
  4. package/Common/AvatarGroup/Avatar/index.module.css +2 -0
  5. package/Common/AvatarGroup/Overlay/index.js +6 -0
  6. package/Common/AvatarGroup/Overlay/index.module.css +2 -0
  7. package/Common/AvatarGroup/index.js +21 -0
  8. package/Common/AvatarGroup/index.module.css +2 -0
  9. package/Common/Badge/index.js +5 -0
  10. package/Common/Badge/index.module.css +2 -0
  11. package/Common/BadgeGroup/index.js +6 -0
  12. package/Common/BadgeGroup/index.module.css +2 -0
  13. package/Common/Banner/index.js +4 -0
  14. package/Common/Banner/index.module.css +2 -0
  15. package/Common/BaseActiveLink/index.js +14 -0
  16. package/Common/BaseButton/index.js +10 -0
  17. package/Common/BaseButton/index.module.css +2 -0
  18. package/Common/BaseCodeBox/index.js +50 -0
  19. package/Common/BaseCodeBox/index.module.css +2 -0
  20. package/Common/BaseCrossLink/index.js +12 -0
  21. package/Common/BaseCrossLink/index.module.css +2 -0
  22. package/Common/BaseLinkTabs/index.js +5 -0
  23. package/Common/BaseLinkTabs/index.module.css +2 -0
  24. package/Common/BasePagination/Ellipsis/index.js +4 -0
  25. package/Common/BasePagination/Ellipsis/index.module.css +2 -0
  26. package/Common/BasePagination/PaginationListItem/index.js +6 -0
  27. package/Common/BasePagination/PaginationListItem/index.module.css +2 -0
  28. package/Common/BasePagination/PrevNextArrow.js +7 -0
  29. package/Common/BasePagination/index.js +10 -0
  30. package/Common/BasePagination/index.module.css +2 -0
  31. package/Common/BasePagination/useGetPageElements.js +77 -0
  32. package/Common/Blockquote/index.js +4 -0
  33. package/Common/Blockquote/index.module.css +2 -0
  34. package/Common/Breadcrumbs/BreadcrumbHomeLink/index.js +9 -0
  35. package/Common/Breadcrumbs/BreadcrumbHomeLink/index.module.css +2 -0
  36. package/Common/Breadcrumbs/BreadcrumbItem/index.js +6 -0
  37. package/Common/Breadcrumbs/BreadcrumbItem/index.module.css +2 -0
  38. package/Common/Breadcrumbs/BreadcrumbLink/index.js +5 -0
  39. package/Common/Breadcrumbs/BreadcrumbLink/index.module.css +2 -0
  40. package/Common/Breadcrumbs/BreadcrumbRoot/index.js +4 -0
  41. package/Common/Breadcrumbs/BreadcrumbRoot/index.module.css +2 -0
  42. package/Common/Breadcrumbs/BreadcrumbTruncatedItem/index.js +4 -0
  43. package/Common/Breadcrumbs/index.js +22 -0
  44. package/Common/ChangeHistory/index.js +9 -0
  45. package/Common/ChangeHistory/index.module.css +2 -0
  46. package/Common/CodeTabs/index.js +5 -0
  47. package/Common/CodeTabs/index.module.css +2 -0
  48. package/Common/DataTag/index.js +18 -0
  49. package/Common/DataTag/index.module.css +2 -0
  50. package/Common/GlowingBackdrop/index.js +5 -0
  51. package/Common/GlowingBackdrop/index.module.css +2 -0
  52. package/Common/LanguageDropDown/index.js +11 -0
  53. package/Common/LanguageDropDown/index.module.css +2 -0
  54. package/Common/Modal/index.js +10 -0
  55. package/Common/Modal/index.module.css +2 -0
  56. package/Common/NodejsLogo/index.js +7 -0
  57. package/Common/NodejsLogo/index.module.css +2 -0
  58. package/Common/Notification/index.js +6 -0
  59. package/Common/Notification/index.module.css +2 -0
  60. package/Common/Preview/index.js +7 -0
  61. package/Common/Preview/index.module.css +2 -0
  62. package/Common/Select/NoScriptSelect/index.js +10 -0
  63. package/Common/Select/StatelessSelect/index.js +31 -0
  64. package/Common/Select/index.js +46 -0
  65. package/Common/Select/index.module.css +2 -0
  66. package/Common/Separator/index.js +7 -0
  67. package/Common/Separator/index.module.css +2 -0
  68. package/Common/Skeleton/index.js +18 -0
  69. package/Common/Skeleton/index.module.css +2 -0
  70. package/Common/Tabs/index.js +6 -0
  71. package/Common/Tabs/index.module.css +2 -0
  72. package/Common/ThemeToggle/index.js +7 -0
  73. package/Common/ThemeToggle/index.module.css +2 -0
  74. package/Common/Tooltip/index.js +8 -0
  75. package/Common/Tooltip/index.module.css +2 -0
  76. package/Containers/Article/index.js +4 -0
  77. package/Containers/Article/index.module.css +2 -0
  78. package/Containers/Footer/index.js +21 -0
  79. package/Containers/Footer/index.module.css +2 -0
  80. package/Containers/MetaBar/index.js +12 -0
  81. package/Containers/MetaBar/index.module.css +2 -0
  82. package/Containers/NavBar/NavItem/index.js +7 -0
  83. package/Containers/NavBar/NavItem/index.module.css +2 -0
  84. package/Containers/NavBar/index.js +18 -0
  85. package/Containers/NavBar/index.module.css +2 -0
  86. package/Containers/Sidebar/ProgressionIcon/index.js +3 -0
  87. package/Containers/Sidebar/SidebarGroup/index.js +9 -0
  88. package/Containers/Sidebar/SidebarGroup/index.module.css +2 -0
  89. package/Containers/Sidebar/SidebarItem/index.js +11 -0
  90. package/Containers/Sidebar/SidebarItem/index.module.css +2 -0
  91. package/Containers/Sidebar/index.js +15 -0
  92. package/Containers/Sidebar/index.module.css +2 -0
  93. package/Icons/HexagonGrid.js +3 -0
  94. package/Icons/InstallationMethod/Choco.js +3 -0
  95. package/Icons/InstallationMethod/Devbox.js +3 -0
  96. package/Icons/InstallationMethod/Docker.js +3 -0
  97. package/Icons/InstallationMethod/FNM.js +3 -0
  98. package/Icons/InstallationMethod/Homebrew.js +3 -0
  99. package/Icons/InstallationMethod/N.js +5 -0
  100. package/Icons/InstallationMethod/NVM.js +3 -0
  101. package/Icons/InstallationMethod/Volta.js +3 -0
  102. package/{src/Icons/InstallationMethod/index.ts → Icons/InstallationMethod/index.js} +0 -1
  103. package/Icons/Logos/JsWhite.js +3 -0
  104. package/Icons/Logos/Nodejs.js +12 -0
  105. package/Icons/Logos/index.js +3 -0
  106. package/Icons/OperatingSystem/AIX.js +3 -0
  107. package/Icons/OperatingSystem/Apple.js +3 -0
  108. package/Icons/OperatingSystem/Linux.js +3 -0
  109. package/Icons/OperatingSystem/Microsoft.js +3 -0
  110. package/{src/Icons/OperatingSystem/index.ts → Icons/OperatingSystem/index.js} +0 -1
  111. package/Icons/PackageManager/Npm.js +3 -0
  112. package/Icons/PackageManager/Pnpm.js +3 -0
  113. package/Icons/PackageManager/Yarn.js +3 -0
  114. package/{src/Icons/PackageManager/index.ts → Icons/PackageManager/index.js} +0 -1
  115. package/Icons/Social/Bluesky.js +3 -0
  116. package/Icons/Social/Discord.js +3 -0
  117. package/Icons/Social/GitHub.js +3 -0
  118. package/Icons/Social/LinkedIn.js +3 -0
  119. package/Icons/Social/Mastodon.js +3 -0
  120. package/Icons/Social/Slack.js +3 -0
  121. package/Icons/Social/X.js +3 -0
  122. package/{src/Icons/Social/index.ts → Icons/Social/index.js} +0 -1
  123. package/MDX/CodeTabs.js +29 -0
  124. package/Providers/NotificationProvider/index.js +16 -0
  125. package/Providers/NotificationProvider/index.module.css +2 -0
  126. package/package.json +9 -43
  127. package/stylelint/one-utility-class-per-line.mjs +48 -0
  128. package/{src/stylelint → stylelint}/utils.mjs +19 -25
  129. package/styles/index.css +2 -0
  130. package/types.js +1 -0
  131. package/util/array.js +2 -0
  132. package/.lintstagedrc.json +0 -5
  133. package/.postcssrc.json +0 -6
  134. package/.storybook/constants.ts +0 -28
  135. package/.storybook/main.ts +0 -38
  136. package/.storybook/preview-head.html +0 -20
  137. package/.storybook/preview.tsx +0 -32
  138. package/.stylelintignore +0 -1
  139. package/.stylelintrc.mjs +0 -56
  140. package/__design__/colors.stories.tsx +0 -82
  141. package/__design__/effects.stories.tsx +0 -7
  142. package/__design__/font-family.stories.tsx +0 -76
  143. package/__design__/list.stories.tsx +0 -27
  144. package/__design__/node-logos.stories.tsx +0 -61
  145. package/__design__/platform-logos.stories.tsx +0 -31
  146. package/__design__/social-logos.stories.tsx +0 -33
  147. package/__design__/table.stories.tsx +0 -56
  148. package/__design__/text.stories.tsx +0 -100
  149. package/eslint.config.js +0 -61
  150. package/src/Common/AlertBox/index.module.css +0 -83
  151. package/src/Common/AlertBox/index.stories.tsx +0 -96
  152. package/src/Common/AlertBox/index.tsx +0 -24
  153. package/src/Common/AvatarGroup/Avatar/index.module.css +0 -40
  154. package/src/Common/AvatarGroup/Avatar/index.stories.tsx +0 -22
  155. package/src/Common/AvatarGroup/Avatar/index.tsx +0 -67
  156. package/src/Common/AvatarGroup/Overlay/index.module.css +0 -31
  157. package/src/Common/AvatarGroup/Overlay/index.stories.tsx +0 -33
  158. package/src/Common/AvatarGroup/Overlay/index.tsx +0 -37
  159. package/src/Common/AvatarGroup/__tests__/index.test.jsx +0 -55
  160. package/src/Common/AvatarGroup/index.module.css +0 -21
  161. package/src/Common/AvatarGroup/index.stories.tsx +0 -56
  162. package/src/Common/AvatarGroup/index.tsx +0 -83
  163. package/src/Common/Badge/index.module.css +0 -38
  164. package/src/Common/Badge/index.stories.tsx +0 -38
  165. package/src/Common/Badge/index.tsx +0 -35
  166. package/src/Common/BadgeGroup/index.module.css +0 -77
  167. package/src/Common/BadgeGroup/index.stories.tsx +0 -35
  168. package/src/Common/BadgeGroup/index.tsx +0 -35
  169. package/src/Common/Banner/index.module.css +0 -42
  170. package/src/Common/Banner/index.stories.tsx +0 -29
  171. package/src/Common/Banner/index.tsx +0 -18
  172. package/src/Common/BaseActiveLink/__tests__/index.test.jsx +0 -52
  173. package/src/Common/BaseActiveLink/index.tsx +0 -34
  174. package/src/Common/BaseButton/index.module.css +0 -145
  175. package/src/Common/BaseButton/index.stories.tsx +0 -67
  176. package/src/Common/BaseButton/index.tsx +0 -59
  177. package/src/Common/BaseCodeBox/index.module.css +0 -78
  178. package/src/Common/BaseCodeBox/index.stories.tsx +0 -39
  179. package/src/Common/BaseCodeBox/index.tsx +0 -122
  180. package/src/Common/BaseCrossLink/index.module.css +0 -51
  181. package/src/Common/BaseCrossLink/index.stories.tsx +0 -38
  182. package/src/Common/BaseCrossLink/index.tsx +0 -46
  183. package/src/Common/BaseLinkTabs/index.module.css +0 -43
  184. package/src/Common/BaseLinkTabs/index.stories.tsx +0 -34
  185. package/src/Common/BaseLinkTabs/index.tsx +0 -53
  186. package/src/Common/BasePagination/Ellipsis/index.module.css +0 -10
  187. package/src/Common/BasePagination/Ellipsis/index.stories.tsx +0 -10
  188. package/src/Common/BasePagination/Ellipsis/index.tsx +0 -11
  189. package/src/Common/BasePagination/PaginationListItem/__tests__/index.test.jsx +0 -58
  190. package/src/Common/BasePagination/PaginationListItem/index.module.css +0 -27
  191. package/src/Common/BasePagination/PaginationListItem/index.stories.tsx +0 -40
  192. package/src/Common/BasePagination/PaginationListItem/index.tsx +0 -39
  193. package/src/Common/BasePagination/PrevNextArrow.tsx +0 -15
  194. package/src/Common/BasePagination/__tests__/index.test.jsx +0 -180
  195. package/src/Common/BasePagination/index.module.css +0 -39
  196. package/src/Common/BasePagination/index.stories.tsx +0 -67
  197. package/src/Common/BasePagination/index.tsx +0 -77
  198. package/src/Common/BasePagination/useGetPageElements.tsx +0 -132
  199. package/src/Common/Blockquote/index.module.css +0 -29
  200. package/src/Common/Blockquote/index.stories.tsx +0 -45
  201. package/src/Common/Blockquote/index.tsx +0 -11
  202. package/src/Common/Breadcrumbs/BreadcrumbHomeLink/index.module.css +0 -5
  203. package/src/Common/Breadcrumbs/BreadcrumbHomeLink/index.tsx +0 -30
  204. package/src/Common/Breadcrumbs/BreadcrumbItem/index.module.css +0 -41
  205. package/src/Common/Breadcrumbs/BreadcrumbItem/index.tsx +0 -42
  206. package/src/Common/Breadcrumbs/BreadcrumbLink/index.module.css +0 -22
  207. package/src/Common/Breadcrumbs/BreadcrumbLink/index.tsx +0 -37
  208. package/src/Common/Breadcrumbs/BreadcrumbRoot/index.module.css +0 -9
  209. package/src/Common/Breadcrumbs/BreadcrumbRoot/index.tsx +0 -20
  210. package/src/Common/Breadcrumbs/BreadcrumbTruncatedItem/index.tsx +0 -9
  211. package/src/Common/Breadcrumbs/index.stories.tsx +0 -94
  212. package/src/Common/Breadcrumbs/index.tsx +0 -81
  213. package/src/Common/ChangeHistory/index.module.css +0 -83
  214. package/src/Common/ChangeHistory/index.stories.tsx +0 -130
  215. package/src/Common/ChangeHistory/index.tsx +0 -67
  216. package/src/Common/CodeTabs/index.module.css +0 -56
  217. package/src/Common/CodeTabs/index.stories.tsx +0 -73
  218. package/src/Common/CodeTabs/index.tsx +0 -16
  219. package/src/Common/DataTag/index.module.css +0 -56
  220. package/src/Common/DataTag/index.stories.tsx +0 -40
  221. package/src/Common/DataTag/index.tsx +0 -39
  222. package/src/Common/GlowingBackdrop/index.module.css +0 -32
  223. package/src/Common/GlowingBackdrop/index.stories.tsx +0 -10
  224. package/src/Common/GlowingBackdrop/index.tsx +0 -13
  225. package/src/Common/LanguageDropDown/index.module.css +0 -53
  226. package/src/Common/LanguageDropDown/index.stories.tsx +0 -19
  227. package/src/Common/LanguageDropDown/index.tsx +0 -56
  228. package/src/Common/Modal/index.module.css +0 -79
  229. package/src/Common/Modal/index.stories.tsx +0 -34
  230. package/src/Common/Modal/index.tsx +0 -50
  231. package/src/Common/NodejsLogo/index.module.css +0 -6
  232. package/src/Common/NodejsLogo/index.stories.tsx +0 -14
  233. package/src/Common/NodejsLogo/index.tsx +0 -26
  234. package/src/Common/Notification/index.module.css +0 -20
  235. package/src/Common/Notification/index.stories.tsx +0 -36
  236. package/src/Common/Notification/index.tsx +0 -34
  237. package/src/Common/Preview/index.module.css +0 -79
  238. package/src/Common/Preview/index.stories.tsx +0 -44
  239. package/src/Common/Preview/index.tsx +0 -25
  240. package/src/Common/Select/__tests__/index.test.jsx +0 -67
  241. package/src/Common/Select/index.module.css +0 -161
  242. package/src/Common/Select/index.stories.tsx +0 -111
  243. package/src/Common/Select/index.tsx +0 -187
  244. package/src/Common/Separator/index.module.css +0 -16
  245. package/src/Common/Separator/index.stories.tsx +0 -32
  246. package/src/Common/Separator/index.tsx +0 -27
  247. package/src/Common/Skeleton/index.module.css +0 -30
  248. package/src/Common/Skeleton/index.tsx +0 -39
  249. package/src/Common/Tabs/__tests__/index.test.jsx +0 -52
  250. package/src/Common/Tabs/index.module.css +0 -54
  251. package/src/Common/Tabs/index.stories.tsx +0 -50
  252. package/src/Common/Tabs/index.tsx +0 -54
  253. package/src/Common/ThemeToggle/__tests__/index.test.jsx +0 -35
  254. package/src/Common/ThemeToggle/index.module.css +0 -15
  255. package/src/Common/ThemeToggle/index.stories.tsx +0 -10
  256. package/src/Common/ThemeToggle/index.tsx +0 -15
  257. package/src/Common/Tooltip/index.module.css +0 -43
  258. package/src/Common/Tooltip/index.stories.tsx +0 -73
  259. package/src/Common/Tooltip/index.tsx +0 -48
  260. package/src/Containers/Article/index.module.css +0 -70
  261. package/src/Containers/Article/index.stories.tsx +0 -39
  262. package/src/Containers/Article/index.tsx +0 -9
  263. package/src/Containers/DocSideBar/index.tsx +0 -0
  264. package/src/Containers/Footer/index.module.css +0 -46
  265. package/src/Containers/Footer/index.stories.tsx +0 -27
  266. package/src/Containers/Footer/index.tsx +0 -95
  267. package/src/Containers/MetaBar/__tests__/index.test.jsx +0 -63
  268. package/src/Containers/MetaBar/index.module.css +0 -91
  269. package/src/Containers/MetaBar/index.stories.tsx +0 -80
  270. package/src/Containers/MetaBar/index.tsx +0 -72
  271. package/src/Containers/NavBar/NavItem/index.module.css +0 -60
  272. package/src/Containers/NavBar/NavItem/index.stories.tsx +0 -38
  273. package/src/Containers/NavBar/NavItem/index.tsx +0 -44
  274. package/src/Containers/NavBar/index.module.css +0 -125
  275. package/src/Containers/NavBar/index.stories.tsx +0 -45
  276. package/src/Containers/NavBar/index.tsx +0 -94
  277. package/src/Containers/Sidebar/ProgressionIcon/index.tsx +0 -16
  278. package/src/Containers/Sidebar/SidebarGroup/index.module.css +0 -64
  279. package/src/Containers/Sidebar/SidebarGroup/index.stories.tsx +0 -36
  280. package/src/Containers/Sidebar/SidebarGroup/index.tsx +0 -49
  281. package/src/Containers/Sidebar/SidebarItem/index.module.css +0 -56
  282. package/src/Containers/Sidebar/SidebarItem/index.stories.tsx +0 -15
  283. package/src/Containers/Sidebar/SidebarItem/index.tsx +0 -43
  284. package/src/Containers/Sidebar/index.module.css +0 -30
  285. package/src/Containers/Sidebar/index.stories.tsx +0 -88
  286. package/src/Containers/Sidebar/index.tsx +0 -70
  287. package/src/Icons/HexagonGrid.stories.tsx +0 -10
  288. package/src/Icons/HexagonGrid.tsx +0 -1434
  289. package/src/Icons/InstallationMethod/Choco.tsx +0 -78
  290. package/src/Icons/InstallationMethod/Devbox.tsx +0 -21
  291. package/src/Icons/InstallationMethod/Docker.tsx +0 -20
  292. package/src/Icons/InstallationMethod/FNM.tsx +0 -132
  293. package/src/Icons/InstallationMethod/Homebrew.tsx +0 -69
  294. package/src/Icons/InstallationMethod/N.tsx +0 -32
  295. package/src/Icons/InstallationMethod/NVM.tsx +0 -63
  296. package/src/Icons/InstallationMethod/Volta.tsx +0 -34
  297. package/src/Icons/Logos/JsGreen.tsx +0 -24
  298. package/src/Icons/Logos/JsWhite.tsx +0 -37
  299. package/src/Icons/Logos/Nodejs.tsx +0 -372
  300. package/src/Icons/Logos/NodejsStackedBlack.tsx +0 -98
  301. package/src/Icons/Logos/NodejsStackedDark.tsx +0 -124
  302. package/src/Icons/Logos/NodejsStackedLight.tsx +0 -123
  303. package/src/Icons/Logos/NodejsStackedWhite.tsx +0 -98
  304. package/src/Icons/Logos/index.ts +0 -17
  305. package/src/Icons/OperatingSystem/AIX.tsx +0 -46
  306. package/src/Icons/OperatingSystem/Apple.tsx +0 -23
  307. package/src/Icons/OperatingSystem/Linux.tsx +0 -969
  308. package/src/Icons/OperatingSystem/Microsoft.tsx +0 -19
  309. package/src/Icons/PackageManager/Npm.tsx +0 -21
  310. package/src/Icons/PackageManager/Pnpm.tsx +0 -22
  311. package/src/Icons/PackageManager/Yarn.tsx +0 -22
  312. package/src/Icons/Social/Bluesky.tsx +0 -19
  313. package/src/Icons/Social/Discord.tsx +0 -20
  314. package/src/Icons/Social/GitHub.tsx +0 -16
  315. package/src/Icons/Social/LinkedIn.tsx +0 -16
  316. package/src/Icons/Social/Mastodon.tsx +0 -36
  317. package/src/Icons/Social/Slack.tsx +0 -31
  318. package/src/Icons/Social/X.tsx +0 -16
  319. package/src/MDX/CodeTabs.tsx +0 -47
  320. package/src/global.d.ts +0 -4
  321. package/src/stylelint/__tests__/index.test.mjs +0 -80
  322. package/src/stylelint/one-utility-class-per-line.mjs +0 -64
  323. package/src/styles/animations.css +0 -47
  324. package/src/styles/base.css +0 -17
  325. package/src/styles/effects.css +0 -12
  326. package/src/styles/index.css +0 -38
  327. package/src/styles/markdown.css +0 -173
  328. package/src/styles/theme.css +0 -175
  329. package/src/types.ts +0 -25
  330. package/tsconfig.json +0 -20
  331. 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
+ };
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
2
+ .viewport{right:calc(var(--spacing,.25rem)*0);bottom:calc(var(--spacing,.25rem)*0);list-style-type:none;position:fixed}
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,50 +18,25 @@
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
- "./src/*",
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-ab0ba1dcb1d91392c44e91b1e74e9f565e460543",
29
+ "version": "1.0.1-b8e314e799e27da854d47f211c1fed36810b969a",
69
30
  "scripts": {
70
- "lint": "turbo run lint:js lint:css",
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",
34
+ "lint": "node --run lint:js && node --run lint:css",
71
35
  "lint:css": "stylelint \"**/*.css\" --allow-empty-input --cache --cache-strategy=content --cache-location=.stylelintcache",
72
- "lint:fix": "node --run lint -- -- --fix",
36
+ "lint:css:fix": "node --run lint:css -- --fix",
37
+ "lint:fix": "node --run lint:js:fix && node --run lint:css:fix",
73
38
  "lint:js": "eslint \"**/*.{js,mjs,ts,tsx}\"",
39
+ "lint:js:fix": "node --run lint:js -- --fix",
74
40
  "lint:types": "tsc --noEmit",
75
41
  "storybook": "cross-env NODE_NO_WARNINGS=1 storybook dev -p 6006 --quiet",
76
42
  "storybook:build": "cross-env NODE_NO_WARNINGS=1 storybook build --quiet --webpack-stats-json",
@@ -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
- // Ensure that the rule contains necessary properties
12
- if (!rule || !rule.params || !rule.raws || !rule.raws.before) {
13
- return null;
14
- }
15
-
16
- const indent = ' '.repeat(rule.raws.before.length + 1);
17
-
18
- // Clean and split the class names
19
- const cleanedClasses = cleanClassNames(rule.params);
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
- return params
35
- .replace(/[\n\r]+/g, '') // Remove new lines
36
- .replace(/\s+/g, ' ') // Replace multiple spaces with a single space
37
- .trim(); // Trim leading/trailing spaces
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
- return classes
49
- .split(' ') // Split into an array of class names
50
- .map(className => indent + className) // Add indentation to each class
51
- .join('\n') // Join with new lines
52
- .trim(); // Remove extra space at the end
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
  };
@@ -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/util/array.js ADDED
@@ -0,0 +1,2 @@
1
+ export const isStringArray = (values) => Boolean(values[0] && typeof values[0] === 'string');
2
+ export const isValuesArray = (values) => Boolean(values[0] && typeof values[0] === 'object' && 'value' in values[0]);
@@ -1,5 +0,0 @@
1
- {
2
- "**/*.{js,mjs,ts,tsx,md,mdx}": ["prettier --check --write", "eslint --fix"],
3
- "**/*.css": ["stylelint --allow-empty-input --fix", "prettier --write"],
4
- "**/*.{json,yml}": ["prettier --check --write"]
5
- }
package/.postcssrc.json DELETED
@@ -1,6 +0,0 @@
1
- {
2
- "plugins": {
3
- "postcss-calc": {},
4
- "@tailwindcss/postcss": {}
5
- }
6
- }
@@ -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
- };
@@ -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>
@@ -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,7 +0,0 @@
1
- import type { Meta as MetaObj, StoryObj } from '@storybook/react';
2
-
3
- export const H1Special: StoryObj = {
4
- render: () => <h1 className="special">Special H1</h1>,
5
- };
6
-
7
- 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;