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

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 (327) hide show
  1. package/.lintstagedrc.json +5 -0
  2. package/.postcssrc.json +6 -0
  3. package/.storybook/constants.ts +28 -0
  4. package/.storybook/main.ts +38 -0
  5. package/.storybook/preview-head.html +20 -0
  6. package/.storybook/preview.tsx +32 -0
  7. package/.stylelintignore +1 -0
  8. package/.stylelintrc.mjs +56 -0
  9. package/__design__/colors.stories.tsx +82 -0
  10. package/__design__/effects.stories.tsx +7 -0
  11. package/__design__/font-family.stories.tsx +76 -0
  12. package/__design__/list.stories.tsx +27 -0
  13. package/__design__/node-logos.stories.tsx +61 -0
  14. package/__design__/platform-logos.stories.tsx +31 -0
  15. package/__design__/social-logos.stories.tsx +33 -0
  16. package/__design__/table.stories.tsx +56 -0
  17. package/__design__/text.stories.tsx +100 -0
  18. package/eslint.config.js +61 -0
  19. package/package.json +45 -6
  20. package/src/Common/AlertBox/index.module.css +83 -0
  21. package/src/Common/AlertBox/index.stories.tsx +96 -0
  22. package/src/Common/AlertBox/index.tsx +24 -0
  23. package/src/Common/AvatarGroup/Avatar/index.module.css +40 -0
  24. package/src/Common/AvatarGroup/Avatar/index.stories.tsx +22 -0
  25. package/src/Common/AvatarGroup/Avatar/index.tsx +67 -0
  26. package/src/Common/AvatarGroup/Overlay/index.module.css +31 -0
  27. package/src/Common/AvatarGroup/Overlay/index.stories.tsx +33 -0
  28. package/src/Common/AvatarGroup/Overlay/index.tsx +37 -0
  29. package/src/Common/AvatarGroup/__tests__/index.test.jsx +55 -0
  30. package/src/Common/AvatarGroup/index.module.css +21 -0
  31. package/src/Common/AvatarGroup/index.stories.tsx +56 -0
  32. package/src/Common/AvatarGroup/index.tsx +83 -0
  33. package/src/Common/Badge/index.module.css +38 -0
  34. package/src/Common/Badge/index.stories.tsx +38 -0
  35. package/src/Common/Badge/index.tsx +35 -0
  36. package/src/Common/BadgeGroup/index.module.css +77 -0
  37. package/src/Common/BadgeGroup/index.stories.tsx +35 -0
  38. package/src/Common/BadgeGroup/index.tsx +35 -0
  39. package/src/Common/Banner/index.module.css +42 -0
  40. package/src/Common/Banner/index.stories.tsx +29 -0
  41. package/src/Common/Banner/index.tsx +18 -0
  42. package/src/Common/BaseActiveLink/__tests__/index.test.jsx +52 -0
  43. package/src/Common/BaseActiveLink/index.tsx +34 -0
  44. package/src/Common/BaseButton/index.module.css +145 -0
  45. package/src/Common/BaseButton/index.stories.tsx +67 -0
  46. package/src/Common/BaseButton/index.tsx +59 -0
  47. package/src/Common/BaseCodeBox/index.module.css +78 -0
  48. package/src/Common/BaseCodeBox/index.stories.tsx +39 -0
  49. package/src/Common/BaseCodeBox/index.tsx +122 -0
  50. package/src/Common/BaseCrossLink/index.module.css +51 -0
  51. package/src/Common/BaseCrossLink/index.stories.tsx +38 -0
  52. package/src/Common/BaseCrossLink/index.tsx +46 -0
  53. package/src/Common/BaseLinkTabs/index.module.css +43 -0
  54. package/src/Common/BaseLinkTabs/index.stories.tsx +34 -0
  55. package/src/Common/BaseLinkTabs/index.tsx +53 -0
  56. package/src/Common/BasePagination/Ellipsis/index.module.css +10 -0
  57. package/src/Common/BasePagination/Ellipsis/index.stories.tsx +10 -0
  58. package/src/Common/BasePagination/Ellipsis/index.tsx +11 -0
  59. package/src/Common/BasePagination/PaginationListItem/__tests__/index.test.jsx +58 -0
  60. package/src/Common/BasePagination/PaginationListItem/index.module.css +27 -0
  61. package/src/Common/BasePagination/PaginationListItem/index.stories.tsx +40 -0
  62. package/src/Common/BasePagination/PaginationListItem/index.tsx +39 -0
  63. package/src/Common/BasePagination/PrevNextArrow.tsx +15 -0
  64. package/src/Common/BasePagination/__tests__/index.test.jsx +180 -0
  65. package/src/Common/BasePagination/index.module.css +39 -0
  66. package/src/Common/BasePagination/index.stories.tsx +67 -0
  67. package/src/Common/BasePagination/index.tsx +77 -0
  68. package/src/Common/BasePagination/useGetPageElements.tsx +132 -0
  69. package/src/Common/Blockquote/index.module.css +29 -0
  70. package/src/Common/Blockquote/index.stories.tsx +45 -0
  71. package/src/Common/Blockquote/index.tsx +11 -0
  72. package/src/Common/Breadcrumbs/BreadcrumbHomeLink/index.module.css +5 -0
  73. package/src/Common/Breadcrumbs/BreadcrumbHomeLink/index.tsx +30 -0
  74. package/src/Common/Breadcrumbs/BreadcrumbItem/index.module.css +41 -0
  75. package/src/Common/Breadcrumbs/BreadcrumbItem/index.tsx +42 -0
  76. package/src/Common/Breadcrumbs/BreadcrumbLink/index.module.css +22 -0
  77. package/src/Common/Breadcrumbs/BreadcrumbLink/index.tsx +37 -0
  78. package/src/Common/Breadcrumbs/BreadcrumbRoot/index.module.css +9 -0
  79. package/src/Common/Breadcrumbs/BreadcrumbRoot/index.tsx +20 -0
  80. package/src/Common/Breadcrumbs/BreadcrumbTruncatedItem/index.tsx +9 -0
  81. package/src/Common/Breadcrumbs/index.stories.tsx +94 -0
  82. package/src/Common/Breadcrumbs/index.tsx +81 -0
  83. package/src/Common/ChangeHistory/index.module.css +83 -0
  84. package/src/Common/ChangeHistory/index.stories.tsx +130 -0
  85. package/src/Common/ChangeHistory/index.tsx +67 -0
  86. package/src/Common/CodeTabs/index.module.css +56 -0
  87. package/src/Common/CodeTabs/index.stories.tsx +73 -0
  88. package/src/Common/CodeTabs/index.tsx +16 -0
  89. package/src/Common/DataTag/index.module.css +56 -0
  90. package/src/Common/DataTag/index.stories.tsx +40 -0
  91. package/src/Common/DataTag/index.tsx +39 -0
  92. package/src/Common/GlowingBackdrop/index.module.css +32 -0
  93. package/src/Common/GlowingBackdrop/index.stories.tsx +10 -0
  94. package/src/Common/GlowingBackdrop/index.tsx +13 -0
  95. package/src/Common/LanguageDropDown/index.module.css +53 -0
  96. package/src/Common/LanguageDropDown/index.stories.tsx +19 -0
  97. package/src/Common/LanguageDropDown/index.tsx +56 -0
  98. package/src/Common/Modal/index.module.css +79 -0
  99. package/src/Common/Modal/index.stories.tsx +34 -0
  100. package/src/Common/Modal/index.tsx +50 -0
  101. package/src/Common/NodejsLogo/index.module.css +6 -0
  102. package/src/Common/NodejsLogo/index.stories.tsx +14 -0
  103. package/src/Common/NodejsLogo/index.tsx +26 -0
  104. package/src/Common/Notification/index.module.css +20 -0
  105. package/src/Common/Notification/index.stories.tsx +36 -0
  106. package/src/Common/Notification/index.tsx +34 -0
  107. package/src/Common/Preview/index.module.css +79 -0
  108. package/src/Common/Preview/index.stories.tsx +44 -0
  109. package/src/Common/Preview/index.tsx +25 -0
  110. package/src/Common/Select/__tests__/index.test.jsx +67 -0
  111. package/src/Common/Select/index.module.css +161 -0
  112. package/src/Common/Select/index.stories.tsx +111 -0
  113. package/src/Common/Select/index.tsx +187 -0
  114. package/src/Common/Separator/index.module.css +16 -0
  115. package/src/Common/Separator/index.stories.tsx +32 -0
  116. package/src/Common/Separator/index.tsx +27 -0
  117. package/src/Common/Skeleton/index.module.css +30 -0
  118. package/src/Common/Skeleton/index.tsx +39 -0
  119. package/src/Common/Tabs/__tests__/index.test.jsx +52 -0
  120. package/src/Common/Tabs/index.module.css +54 -0
  121. package/src/Common/Tabs/index.stories.tsx +50 -0
  122. package/src/Common/Tabs/index.tsx +54 -0
  123. package/src/Common/ThemeToggle/__tests__/index.test.jsx +35 -0
  124. package/src/Common/ThemeToggle/index.module.css +15 -0
  125. package/src/Common/ThemeToggle/index.stories.tsx +10 -0
  126. package/src/Common/ThemeToggle/index.tsx +15 -0
  127. package/src/Common/Tooltip/index.module.css +43 -0
  128. package/src/Common/Tooltip/index.stories.tsx +73 -0
  129. package/src/Common/Tooltip/index.tsx +48 -0
  130. package/src/Containers/Article/index.module.css +70 -0
  131. package/src/Containers/Article/index.stories.tsx +39 -0
  132. package/src/Containers/Article/index.tsx +9 -0
  133. package/src/Containers/DocSideBar/index.tsx +0 -0
  134. package/src/Containers/Footer/index.module.css +46 -0
  135. package/src/Containers/Footer/index.stories.tsx +27 -0
  136. package/src/Containers/Footer/index.tsx +95 -0
  137. package/src/Containers/MetaBar/__tests__/index.test.jsx +63 -0
  138. package/src/Containers/MetaBar/index.module.css +91 -0
  139. package/src/Containers/MetaBar/index.stories.tsx +80 -0
  140. package/src/Containers/MetaBar/index.tsx +72 -0
  141. package/src/Containers/NavBar/NavItem/index.module.css +60 -0
  142. package/src/Containers/NavBar/NavItem/index.stories.tsx +38 -0
  143. package/src/Containers/NavBar/NavItem/index.tsx +44 -0
  144. package/src/Containers/NavBar/index.module.css +125 -0
  145. package/src/Containers/NavBar/index.stories.tsx +45 -0
  146. package/src/Containers/NavBar/index.tsx +94 -0
  147. package/src/Containers/Sidebar/ProgressionIcon/index.tsx +16 -0
  148. package/src/Containers/Sidebar/SidebarGroup/index.module.css +64 -0
  149. package/src/Containers/Sidebar/SidebarGroup/index.stories.tsx +36 -0
  150. package/src/Containers/Sidebar/SidebarGroup/index.tsx +49 -0
  151. package/src/Containers/Sidebar/SidebarItem/index.module.css +56 -0
  152. package/src/Containers/Sidebar/SidebarItem/index.stories.tsx +15 -0
  153. package/src/Containers/Sidebar/SidebarItem/index.tsx +43 -0
  154. package/src/Containers/Sidebar/index.module.css +30 -0
  155. package/src/Containers/Sidebar/index.stories.tsx +88 -0
  156. package/src/Containers/Sidebar/index.tsx +70 -0
  157. package/src/Icons/HexagonGrid.stories.tsx +10 -0
  158. package/src/Icons/HexagonGrid.tsx +1434 -0
  159. package/src/Icons/InstallationMethod/Choco.tsx +78 -0
  160. package/src/Icons/InstallationMethod/Devbox.tsx +21 -0
  161. package/src/Icons/InstallationMethod/Docker.tsx +20 -0
  162. package/src/Icons/InstallationMethod/FNM.tsx +132 -0
  163. package/src/Icons/InstallationMethod/Homebrew.tsx +69 -0
  164. package/src/Icons/InstallationMethod/N.tsx +32 -0
  165. package/src/Icons/InstallationMethod/NVM.tsx +63 -0
  166. package/src/Icons/InstallationMethod/Volta.tsx +34 -0
  167. package/{Icons/InstallationMethod/index.js → src/Icons/InstallationMethod/index.ts} +1 -0
  168. package/src/Icons/Logos/JsGreen.tsx +24 -0
  169. package/src/Icons/Logos/JsWhite.tsx +37 -0
  170. package/src/Icons/Logos/Nodejs.tsx +372 -0
  171. package/src/Icons/Logos/NodejsStackedBlack.tsx +98 -0
  172. package/src/Icons/Logos/NodejsStackedDark.tsx +124 -0
  173. package/src/Icons/Logos/NodejsStackedLight.tsx +123 -0
  174. package/src/Icons/Logos/NodejsStackedWhite.tsx +98 -0
  175. package/src/Icons/Logos/index.ts +17 -0
  176. package/src/Icons/OperatingSystem/AIX.tsx +46 -0
  177. package/src/Icons/OperatingSystem/Apple.tsx +23 -0
  178. package/src/Icons/OperatingSystem/Linux.tsx +969 -0
  179. package/src/Icons/OperatingSystem/Microsoft.tsx +19 -0
  180. package/{Icons/OperatingSystem/index.js → src/Icons/OperatingSystem/index.ts} +1 -0
  181. package/src/Icons/PackageManager/Npm.tsx +21 -0
  182. package/src/Icons/PackageManager/Pnpm.tsx +22 -0
  183. package/src/Icons/PackageManager/Yarn.tsx +22 -0
  184. package/{Icons/PackageManager/index.js → src/Icons/PackageManager/index.ts} +1 -0
  185. package/src/Icons/Social/Bluesky.tsx +19 -0
  186. package/src/Icons/Social/Discord.tsx +20 -0
  187. package/src/Icons/Social/GitHub.tsx +16 -0
  188. package/src/Icons/Social/LinkedIn.tsx +16 -0
  189. package/src/Icons/Social/Mastodon.tsx +36 -0
  190. package/src/Icons/Social/Slack.tsx +31 -0
  191. package/src/Icons/Social/X.tsx +16 -0
  192. package/{Icons/Social/index.js → src/Icons/Social/index.ts} +1 -0
  193. package/src/MDX/CodeTabs.tsx +47 -0
  194. package/src/global.d.ts +4 -0
  195. package/src/stylelint/__tests__/index.test.mjs +80 -0
  196. package/src/stylelint/one-utility-class-per-line.mjs +64 -0
  197. package/{stylelint → src/stylelint}/utils.mjs +25 -19
  198. package/src/styles/animations.css +47 -0
  199. package/src/styles/base.css +17 -0
  200. package/src/styles/effects.css +12 -0
  201. package/src/styles/index.css +38 -0
  202. package/src/styles/markdown.css +173 -0
  203. package/src/styles/theme.css +175 -0
  204. package/src/types.ts +25 -0
  205. package/tsconfig.json +20 -0
  206. package/turbo.json +31 -0
  207. package/Common/AlertBox/index.js +0 -5
  208. package/Common/AlertBox/index.module.css +0 -77
  209. package/Common/AvatarGroup/Avatar/index.js +0 -11
  210. package/Common/AvatarGroup/Avatar/index.module.css +0 -60
  211. package/Common/AvatarGroup/Overlay/index.js +0 -6
  212. package/Common/AvatarGroup/Overlay/index.module.css +0 -38
  213. package/Common/AvatarGroup/index.js +0 -21
  214. package/Common/AvatarGroup/index.module.css +0 -22
  215. package/Common/Badge/index.js +0 -7
  216. package/Common/Badge/index.module.css +0 -46
  217. package/Common/BadgeGroup/index.js +0 -6
  218. package/Common/BadgeGroup/index.module.css +0 -101
  219. package/Common/Banner/index.js +0 -4
  220. package/Common/Banner/index.module.css +0 -45
  221. package/Common/BaseActiveLink/index.js +0 -14
  222. package/Common/BaseButton/index.js +0 -10
  223. package/Common/BaseButton/index.module.css +0 -372
  224. package/Common/BaseCodeBox/index.js +0 -50
  225. package/Common/BaseCodeBox/index.module.css +0 -96
  226. package/Common/BaseCrossLink/index.js +0 -12
  227. package/Common/BaseCrossLink/index.module.css +0 -69
  228. package/Common/BaseLinkTabs/index.js +0 -5
  229. package/Common/BaseLinkTabs/index.module.css +0 -77
  230. package/Common/BasePagination/Ellipsis/index.js +0 -4
  231. package/Common/BasePagination/Ellipsis/index.module.css +0 -16
  232. package/Common/BasePagination/PaginationListItem/index.js +0 -6
  233. package/Common/BasePagination/PaginationListItem/index.module.css +0 -42
  234. package/Common/BasePagination/PrevNextArrow.js +0 -7
  235. package/Common/BasePagination/index.js +0 -10
  236. package/Common/BasePagination/index.module.css +0 -40
  237. package/Common/BasePagination/useGetPageElements.js +0 -77
  238. package/Common/Blockquote/index.js +0 -4
  239. package/Common/Blockquote/index.module.css +0 -50
  240. package/Common/Breadcrumbs/BreadcrumbHomeLink/index.js +0 -9
  241. package/Common/Breadcrumbs/BreadcrumbHomeLink/index.module.css +0 -5
  242. package/Common/Breadcrumbs/BreadcrumbItem/index.js +0 -6
  243. package/Common/Breadcrumbs/BreadcrumbItem/index.module.css +0 -52
  244. package/Common/Breadcrumbs/BreadcrumbLink/index.js +0 -5
  245. package/Common/Breadcrumbs/BreadcrumbLink/index.module.css +0 -32
  246. package/Common/Breadcrumbs/BreadcrumbRoot/index.js +0 -4
  247. package/Common/Breadcrumbs/BreadcrumbRoot/index.module.css +0 -10
  248. package/Common/Breadcrumbs/BreadcrumbTruncatedItem/index.js +0 -4
  249. package/Common/Breadcrumbs/index.js +0 -22
  250. package/Common/ChangeHistory/index.js +0 -9
  251. package/Common/ChangeHistory/index.module.css +0 -198
  252. package/Common/CodeTabs/index.js +0 -5
  253. package/Common/CodeTabs/index.module.css +0 -67
  254. package/Common/DataTag/index.js +0 -18
  255. package/Common/DataTag/index.module.css +0 -54
  256. package/Common/GlowingBackdrop/index.js +0 -5
  257. package/Common/GlowingBackdrop/index.module.css +0 -130
  258. package/Common/LanguageDropDown/index.js +0 -11
  259. package/Common/LanguageDropDown/index.module.css +0 -151
  260. package/Common/Modal/index.js +0 -10
  261. package/Common/Modal/index.module.css +0 -234
  262. package/Common/NodejsLogo/index.js +0 -7
  263. package/Common/NodejsLogo/index.module.css +0 -5
  264. package/Common/Notification/index.js +0 -6
  265. package/Common/Notification/index.module.css +0 -104
  266. package/Common/Preview/index.js +0 -7
  267. package/Common/Preview/index.module.css +0 -283
  268. package/Common/Select/index.js +0 -49
  269. package/Common/Select/index.module.css +0 -328
  270. package/Common/Separator/index.js +0 -7
  271. package/Common/Separator/index.module.css +0 -13
  272. package/Common/Skeleton/index.js +0 -18
  273. package/Common/Skeleton/index.module.css +0 -127
  274. package/Common/Tabs/index.js +0 -6
  275. package/Common/Tabs/index.module.css +0 -72
  276. package/Common/ThemeToggle/index.js +0 -7
  277. package/Common/ThemeToggle/index.module.css +0 -22
  278. package/Common/Tooltip/index.js +0 -8
  279. package/Common/Tooltip/index.module.css +0 -133
  280. package/Containers/Article/index.js +0 -4
  281. package/Containers/Article/index.module.css +0 -139
  282. package/Containers/DocSideBar/index.js +0 -1
  283. package/Containers/Footer/index.js +0 -22
  284. package/Containers/Footer/index.module.css +0 -61
  285. package/Containers/MetaBar/index.js +0 -12
  286. package/Containers/MetaBar/index.module.css +0 -123
  287. package/Containers/NavBar/NavItem/index.js +0 -7
  288. package/Containers/NavBar/NavItem/index.module.css +0 -74
  289. package/Containers/NavBar/index.js +0 -18
  290. package/Containers/NavBar/index.module.css +0 -205
  291. package/Containers/Sidebar/ProgressionIcon/index.js +0 -3
  292. package/Containers/Sidebar/SidebarGroup/index.js +0 -9
  293. package/Containers/Sidebar/SidebarGroup/index.module.css +0 -192
  294. package/Containers/Sidebar/SidebarItem/index.js +0 -11
  295. package/Containers/Sidebar/SidebarItem/index.module.css +0 -67
  296. package/Containers/Sidebar/index.js +0 -15
  297. package/Containers/Sidebar/index.module.css +0 -48
  298. package/Icons/HexagonGrid.js +0 -3
  299. package/Icons/InstallationMethod/Choco.js +0 -3
  300. package/Icons/InstallationMethod/Devbox.js +0 -3
  301. package/Icons/InstallationMethod/Docker.js +0 -3
  302. package/Icons/InstallationMethod/FNM.js +0 -3
  303. package/Icons/InstallationMethod/Homebrew.js +0 -3
  304. package/Icons/InstallationMethod/N.js +0 -5
  305. package/Icons/InstallationMethod/NVM.js +0 -3
  306. package/Icons/InstallationMethod/Volta.js +0 -3
  307. package/Icons/Logos/JsWhite.js +0 -3
  308. package/Icons/Logos/Nodejs.js +0 -12
  309. package/Icons/Logos/index.js +0 -3
  310. package/Icons/OperatingSystem/AIX.js +0 -3
  311. package/Icons/OperatingSystem/Apple.js +0 -3
  312. package/Icons/OperatingSystem/Linux.js +0 -3
  313. package/Icons/OperatingSystem/Microsoft.js +0 -3
  314. package/Icons/PackageManager/Npm.js +0 -3
  315. package/Icons/PackageManager/Pnpm.js +0 -3
  316. package/Icons/PackageManager/Yarn.js +0 -3
  317. package/Icons/Social/Bluesky.js +0 -3
  318. package/Icons/Social/Discord.js +0 -3
  319. package/Icons/Social/GitHub.js +0 -3
  320. package/Icons/Social/LinkedIn.js +0 -3
  321. package/Icons/Social/Mastodon.js +0 -3
  322. package/Icons/Social/Slack.js +0 -3
  323. package/Icons/Social/X.js +0 -3
  324. package/MDX/CodeTabs.js +0 -16
  325. package/stylelint/one-utility-class-per-line.mjs +0 -48
  326. package/styles/index.css +0 -1136
  327. package/types.js +0 -1
@@ -0,0 +1,5 @@
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
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "plugins": {
3
+ "postcss-calc": {},
4
+ "@tailwindcss/postcss": {}
5
+ }
6
+ }
@@ -0,0 +1,28 @@
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
+ };
@@ -0,0 +1,38 @@
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;
@@ -0,0 +1,20 @@
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>
@@ -0,0 +1,32 @@
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;
@@ -0,0 +1 @@
1
+ storybook-static
@@ -0,0 +1,56 @@
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
+ };
@@ -0,0 +1,82 @@
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;
@@ -0,0 +1,7 @@
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;
@@ -0,0 +1,76 @@
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;
@@ -0,0 +1,27 @@
1
+ import type { Meta as MetaObj, StoryObj } from '@storybook/react';
2
+
3
+ export const OrderedLists: StoryObj = {
4
+ render: () => (
5
+ <main>
6
+ <ol>
7
+ <li>Ordered lists</li>
8
+ <li>Like this</li>
9
+ <li>with numbers</li>
10
+ </ol>
11
+ </main>
12
+ ),
13
+ };
14
+
15
+ export const UnorderedLists: StoryObj = {
16
+ render: () => (
17
+ <main>
18
+ <ul>
19
+ <li>Unordered lists</li>
20
+ <li>those without</li>
21
+ <li>numbers</li>
22
+ </ul>
23
+ </main>
24
+ ),
25
+ };
26
+
27
+ export default { title: 'Design System' } as MetaObj;
@@ -0,0 +1,61 @@
1
+ import type { Meta as MetaObj, StoryObj } from '@storybook/react';
2
+
3
+ import {
4
+ JsGreen,
5
+ JsWhite,
6
+ Nodejs,
7
+ NodejsStackedBlack,
8
+ NodejsStackedDark,
9
+ NodejsStackedLight,
10
+ NodejsStackedWhite,
11
+ } from '#ui/Icons/Logos';
12
+
13
+ export const HorizontalLogo: StoryObj = {
14
+ render: () => <Nodejs width={267} height={80} />,
15
+ };
16
+
17
+ export const PrideLogo: StoryObj = {
18
+ render: () => <Nodejs variant="pride" width={267} height={80} />,
19
+ };
20
+
21
+ export const StackedLogos: StoryObj = {
22
+ render: () => (
23
+ <div className="flex flex-row gap-4">
24
+ <div className="flex flex-col gap-2">
25
+ {[NodejsStackedDark, NodejsStackedBlack].map((Icon, index) => (
26
+ <Icon
27
+ key={index}
28
+ className="block dark:hidden"
29
+ width={267}
30
+ height={164}
31
+ />
32
+ ))}
33
+ {[NodejsStackedLight, NodejsStackedWhite].map((Icon, index) => (
34
+ <Icon
35
+ key={index}
36
+ className="hidden dark:block"
37
+ width={267}
38
+ height={164}
39
+ />
40
+ ))}
41
+ </div>
42
+ </div>
43
+ ),
44
+ };
45
+
46
+ export const JSSymbols: StoryObj = {
47
+ render: () => (
48
+ <div className="flex flex-row gap-4">
49
+ {[JsWhite, JsGreen].map((Icon, index) => (
50
+ <Icon
51
+ key={index}
52
+ className={index === 0 ? 'hidden dark:block' : 'block dark:hidden'}
53
+ width={30}
54
+ height={30}
55
+ />
56
+ ))}
57
+ </div>
58
+ ),
59
+ };
60
+
61
+ export default { title: 'Design System' } as MetaObj;
@@ -0,0 +1,31 @@
1
+ import type { Meta as MetaObj, StoryObj } from '@storybook/react';
2
+
3
+ import {
4
+ Docker,
5
+ Homebrew,
6
+ NVM,
7
+ Devbox,
8
+ Choco,
9
+ N,
10
+ Volta,
11
+ } from '#ui/Icons/InstallationMethod';
12
+ import { Apple, Linux, Microsoft, AIX } from '#ui/Icons/OperatingSystem';
13
+
14
+ const osIcons = [Apple, Linux, Microsoft, AIX];
15
+ const installMethodIcons = [Docker, Homebrew, NVM, Devbox, Choco, N, Volta];
16
+
17
+ export const PlatformLogos: StoryObj = {
18
+ render: () => (
19
+ <div className="flex flex-row gap-4">
20
+ {[osIcons, installMethodIcons].map((icons, idx) => (
21
+ <div key={idx} className="flex flex-col items-center gap-4">
22
+ {icons.map((Icon, index) => (
23
+ <Icon key={index} width={64} height={64} />
24
+ ))}
25
+ </div>
26
+ ))}
27
+ </div>
28
+ ),
29
+ };
30
+
31
+ export default { title: 'Design System' } as MetaObj;
@@ -0,0 +1,33 @@
1
+ import type { Meta as MetaObj, StoryObj } from '@storybook/react';
2
+
3
+ import {
4
+ Bluesky,
5
+ Discord,
6
+ GitHub,
7
+ LinkedIn,
8
+ Mastodon,
9
+ Slack,
10
+ X,
11
+ } from '#ui/Icons/Social';
12
+
13
+ const socialIcons = [
14
+ [GitHub, Mastodon, LinkedIn],
15
+ [Slack, X, Bluesky],
16
+ [Discord],
17
+ ];
18
+
19
+ export const SocialMediaLogos: StoryObj = {
20
+ render: () => (
21
+ <div className="flex flex-row gap-4">
22
+ {socialIcons.map((group, idx) => (
23
+ <div key={idx} className="flex flex-col items-center gap-4">
24
+ {group.map((Icon, index) => (
25
+ <Icon key={index} width={64} height={64} />
26
+ ))}
27
+ </div>
28
+ ))}
29
+ </div>
30
+ ),
31
+ };
32
+
33
+ export default { title: 'Design System' } as MetaObj;
@@ -0,0 +1,56 @@
1
+ import type { Meta as MetaObj, StoryObj } from '@storybook/react';
2
+
3
+ const tableData = [
4
+ ['Data 1', 'Data 2', 'Data 3'],
5
+ ['Data 1', 'Data 2', 'Data 3'],
6
+ ['Data 1', 'Data 2', 'Data 3'],
7
+ ];
8
+
9
+ export const Table: StoryObj = {
10
+ render: () => (
11
+ <main>
12
+ <table>
13
+ <thead>
14
+ <tr>
15
+ {['Column 1', 'Column 2', 'Column 3'].map((col, idx) => (
16
+ <th key={idx}>{col}</th>
17
+ ))}
18
+ </tr>
19
+ </thead>
20
+ <tbody>
21
+ {tableData.map((row, rowIndex) => (
22
+ <tr key={rowIndex}>
23
+ {row.map((cell, cellIndex) => (
24
+ <td key={cellIndex}>{cell}</td>
25
+ ))}
26
+ </tr>
27
+ ))}
28
+ <tr>
29
+ <td colSpan={3}>
30
+ <table>
31
+ <thead>
32
+ <tr>
33
+ <th>Sub 1</th>
34
+ <th>Sub 2</th>
35
+ </tr>
36
+ </thead>
37
+ <tbody>
38
+ <tr>
39
+ <td>Sub A</td>
40
+ <td>Sub B</td>
41
+ </tr>
42
+ <tr>
43
+ <td>Sub C</td>
44
+ <td>Sub D</td>
45
+ </tr>
46
+ </tbody>
47
+ </table>
48
+ </td>
49
+ </tr>
50
+ </tbody>
51
+ </table>
52
+ </main>
53
+ ),
54
+ };
55
+
56
+ export default { title: 'Design System' } as MetaObj;
@@ -0,0 +1,100 @@
1
+ import type { Meta as MetaObj, StoryObj } from '@storybook/react';
2
+
3
+ export const Anchor: StoryObj = {
4
+ render: () => (
5
+ <main>
6
+ <p>
7
+ The current Node.js security policy can be found at{' '}
8
+ <a href="https://github.com/nodejs/node/security/policy#security">
9
+ https://github.com/nodejs/node/security/policy#security
10
+ </a>
11
+ , including information on how to report a vulnerability in Node.js.
12
+ Subscribe to the low-volume announcement-only nodejs-sec mailing list at{' '}
13
+ <a href="https://groups.google.com/forum/#!forum/nodejs-sec">
14
+ https://groups.google.com/forum/#!forum/nodejs-sec
15
+ </a>{' '}
16
+ to stay up to date on security vulnerabilities and security-related
17
+ releases of Node.js and the projects maintained in the nodejs GitHub
18
+ organization.
19
+ </p>
20
+ </main>
21
+ ),
22
+ };
23
+
24
+ export const InlineCode: StoryObj = {
25
+ render: () => (
26
+ <main>
27
+ <p>
28
+ This is an example of <code>inline code block</code>
29
+ </p>
30
+ <p>
31
+ This is an example of{' '}
32
+ <a href="https://nodejs.org/">
33
+ <code>inline code block inside link</code>
34
+ </a>
35
+ </p>
36
+ </main>
37
+ ),
38
+ };
39
+
40
+ export const Headings: StoryObj = {
41
+ render: () => (
42
+ <main>
43
+ <h1>HTML Section Heading 1</h1>
44
+ <h2>HTML Section Heading 2</h2>
45
+ <h3>HTML Section Heading 3</h3>
46
+ <h4>HTML Section Heading 4</h4>
47
+ <h5>HTML Section Heading 5</h5>
48
+ <h6>HTML Section Heading 6</h6>
49
+ </main>
50
+ ),
51
+ };
52
+
53
+ // Create the behavior of the headings with links
54
+ // on nodejs.org, this is happening due to `rehype-autolink-headings`
55
+ export const HeadingsWithLinks: StoryObj = {
56
+ render: () => (
57
+ <main>
58
+ <h1 id="heading-1">
59
+ <a href="#heading-1">HTML Section Heading 1</a>
60
+ </h1>
61
+ <h2 id="heading-2">
62
+ <a href="#heading-2">HTML Section Heading 2</a>
63
+ </h2>
64
+ <h3 id="heading-3">
65
+ <a href="#heading-3">HTML Section Heading 3</a>
66
+ </h3>
67
+ <h4 id="heading-4">
68
+ <a href="#heading-4">HTML Section Heading 4</a>
69
+ </h4>
70
+ <h5 id="heading-5">
71
+ <a href="#heading-5">HTML Section Heading 5</a>
72
+ </h5>
73
+ <h6 id="heading-6">
74
+ <a href="#heading-6">HTML Section Heading 6</a>
75
+ </h6>
76
+ </main>
77
+ ),
78
+ };
79
+
80
+ export const BoldAndLinks: StoryObj = {
81
+ render: () => (
82
+ <main>
83
+ <p>
84
+ <strong>Bold text (should inherit normal text color)</strong>
85
+ </p>
86
+ <p>
87
+ <strong>
88
+ <a href="#">Bold green link (link inside bold)</a>
89
+ </strong>
90
+ </p>
91
+ <p>
92
+ <a href="#">
93
+ <strong>Bold green link (bold inside link)</strong>
94
+ </a>
95
+ </p>
96
+ </main>
97
+ ),
98
+ };
99
+
100
+ export default { title: 'Design System' } as MetaObj;