@node-core/ui-components 1.0.1-c0bc4dd7eb49f97f35ce0983849d17702404c76a → 1.0.1-da75492230302b0f459aab323d2f6fdac6269a06

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 (263) hide show
  1. package/Common/AlertBox/index.js +5 -0
  2. package/Common/AlertBox/index.module.css +2 -76
  3. package/Common/AvatarGroup/Avatar/index.js +11 -0
  4. package/Common/AvatarGroup/Avatar/index.module.css +2 -40
  5. package/Common/AvatarGroup/Overlay/index.js +6 -0
  6. package/Common/AvatarGroup/Overlay/index.module.css +2 -31
  7. package/Common/AvatarGroup/index.js +21 -0
  8. package/Common/AvatarGroup/index.module.css +2 -21
  9. package/Common/Badge/index.js +5 -0
  10. package/Common/Badge/index.module.css +2 -38
  11. package/Common/BadgeGroup/index.js +6 -0
  12. package/Common/BadgeGroup/index.module.css +2 -77
  13. package/Common/Banner/index.js +4 -0
  14. package/Common/Banner/index.module.css +2 -42
  15. package/Common/BaseActiveLink/index.js +14 -0
  16. package/Common/BaseButton/index.js +10 -0
  17. package/Common/BaseButton/index.module.css +2 -142
  18. package/Common/BaseCodeBox/index.js +50 -0
  19. package/Common/BaseCodeBox/index.module.css +2 -78
  20. package/Common/BaseCrossLink/index.js +12 -0
  21. package/Common/BaseCrossLink/index.module.css +2 -51
  22. package/Common/BaseLinkTabs/index.js +5 -0
  23. package/Common/BaseLinkTabs/index.module.css +2 -43
  24. package/Common/BasePagination/Ellipsis/index.js +4 -0
  25. package/Common/BasePagination/Ellipsis/index.module.css +2 -10
  26. package/Common/BasePagination/PaginationListItem/index.js +6 -0
  27. package/Common/BasePagination/PaginationListItem/index.module.css +2 -27
  28. package/Common/BasePagination/PrevNextArrow.js +7 -0
  29. package/Common/BasePagination/index.js +10 -0
  30. package/Common/BasePagination/index.module.css +2 -39
  31. package/Common/BasePagination/useGetPageElements.js +77 -0
  32. package/Common/Blockquote/index.js +4 -0
  33. package/Common/Blockquote/index.module.css +2 -29
  34. package/Common/Breadcrumbs/BreadcrumbHomeLink/index.js +9 -0
  35. package/Common/Breadcrumbs/BreadcrumbHomeLink/index.module.css +2 -5
  36. package/Common/Breadcrumbs/BreadcrumbItem/index.js +6 -0
  37. package/Common/Breadcrumbs/BreadcrumbItem/index.module.css +2 -41
  38. package/Common/Breadcrumbs/BreadcrumbLink/index.js +5 -0
  39. package/Common/Breadcrumbs/BreadcrumbLink/index.module.css +2 -22
  40. package/Common/Breadcrumbs/BreadcrumbRoot/index.js +4 -0
  41. package/Common/Breadcrumbs/BreadcrumbRoot/index.module.css +2 -9
  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 -83
  46. package/Common/CodeTabs/index.js +5 -0
  47. package/Common/CodeTabs/index.module.css +2 -56
  48. package/Common/DataTag/index.js +18 -0
  49. package/Common/DataTag/index.module.css +2 -56
  50. package/Common/GlowingBackdrop/index.js +5 -0
  51. package/Common/GlowingBackdrop/index.module.css +2 -32
  52. package/Common/LanguageDropDown/index.js +11 -0
  53. package/Common/LanguageDropDown/index.module.css +2 -53
  54. package/Common/Modal/index.js +10 -0
  55. package/Common/Modal/index.module.css +2 -79
  56. package/Common/NodejsLogo/index.js +7 -0
  57. package/Common/NodejsLogo/index.module.css +2 -6
  58. package/Common/Notification/index.js +6 -0
  59. package/Common/Notification/index.module.css +2 -20
  60. package/Common/Preview/index.js +7 -0
  61. package/Common/Preview/index.module.css +2 -79
  62. package/Common/Select/index.js +47 -0
  63. package/Common/Select/index.module.css +2 -161
  64. package/Common/Separator/index.js +7 -0
  65. package/Common/Separator/index.module.css +2 -16
  66. package/Common/Skeleton/index.js +18 -0
  67. package/Common/Skeleton/index.module.css +2 -30
  68. package/Common/Tabs/index.js +6 -0
  69. package/Common/Tabs/index.module.css +2 -54
  70. package/Common/ThemeToggle/index.js +7 -0
  71. package/Common/ThemeToggle/index.module.css +2 -15
  72. package/Common/Tooltip/index.js +8 -0
  73. package/Common/Tooltip/index.module.css +2 -43
  74. package/Containers/Article/index.js +4 -0
  75. package/Containers/Article/index.module.css +2 -70
  76. package/Containers/Footer/index.js +21 -0
  77. package/Containers/Footer/index.module.css +2 -46
  78. package/Containers/MetaBar/index.js +12 -0
  79. package/Containers/MetaBar/index.module.css +2 -91
  80. package/Containers/NavBar/NavItem/index.js +7 -0
  81. package/Containers/NavBar/NavItem/index.module.css +2 -60
  82. package/Containers/NavBar/index.js +18 -0
  83. package/Containers/NavBar/index.module.css +2 -125
  84. package/Containers/Sidebar/ProgressionIcon/index.js +3 -0
  85. package/Containers/Sidebar/SidebarGroup/index.js +9 -0
  86. package/Containers/Sidebar/SidebarGroup/index.module.css +2 -64
  87. package/Containers/Sidebar/SidebarItem/index.js +11 -0
  88. package/Containers/Sidebar/SidebarItem/index.module.css +2 -56
  89. package/Containers/Sidebar/index.js +15 -0
  90. package/Containers/Sidebar/index.module.css +2 -30
  91. package/Icons/HexagonGrid.js +3 -0
  92. package/Icons/InstallationMethod/Choco.js +3 -0
  93. package/Icons/InstallationMethod/Devbox.js +3 -0
  94. package/Icons/InstallationMethod/Docker.js +3 -0
  95. package/Icons/InstallationMethod/FNM.js +3 -0
  96. package/Icons/InstallationMethod/Homebrew.js +3 -0
  97. package/Icons/InstallationMethod/N.js +5 -0
  98. package/Icons/InstallationMethod/NVM.js +3 -0
  99. package/Icons/InstallationMethod/Volta.js +3 -0
  100. package/Icons/InstallationMethod/{index.ts → index.js} +0 -1
  101. package/Icons/Logos/JsWhite.js +3 -0
  102. package/Icons/Logos/Nodejs.js +12 -0
  103. package/Icons/Logos/index.js +3 -0
  104. package/Icons/OperatingSystem/AIX.js +3 -0
  105. package/Icons/OperatingSystem/Apple.js +3 -0
  106. package/Icons/OperatingSystem/Linux.js +3 -0
  107. package/Icons/OperatingSystem/Microsoft.js +3 -0
  108. package/Icons/OperatingSystem/{index.ts → index.js} +0 -1
  109. package/Icons/PackageManager/Npm.js +3 -0
  110. package/Icons/PackageManager/Pnpm.js +3 -0
  111. package/Icons/PackageManager/Yarn.js +3 -0
  112. package/Icons/PackageManager/{index.ts → index.js} +0 -1
  113. package/Icons/Social/Bluesky.js +3 -0
  114. package/Icons/Social/Discord.js +3 -0
  115. package/Icons/Social/GitHub.js +3 -0
  116. package/Icons/Social/LinkedIn.js +3 -0
  117. package/Icons/Social/Mastodon.js +3 -0
  118. package/Icons/Social/Slack.js +3 -0
  119. package/Icons/Social/X.js +3 -0
  120. package/Icons/Social/{index.ts → index.js} +0 -1
  121. package/MDX/CodeTabs.js +25 -0
  122. package/Providers/NotificationProvider/index.js +16 -0
  123. package/Providers/NotificationProvider/index.module.css +2 -0
  124. package/package.json +6 -51
  125. package/stylelint/one-utility-class-per-line.mjs +34 -50
  126. package/stylelint/utils.mjs +19 -25
  127. package/styles/index.css +2 -38
  128. package/types.js +1 -0
  129. package/Common/AlertBox/index.stories.tsx +0 -73
  130. package/Common/AlertBox/index.tsx +0 -24
  131. package/Common/AvatarGroup/Avatar/index.stories.tsx +0 -22
  132. package/Common/AvatarGroup/Avatar/index.tsx +0 -67
  133. package/Common/AvatarGroup/Overlay/index.stories.tsx +0 -33
  134. package/Common/AvatarGroup/Overlay/index.tsx +0 -37
  135. package/Common/AvatarGroup/__tests__/index.test.jsx +0 -55
  136. package/Common/AvatarGroup/index.stories.tsx +0 -56
  137. package/Common/AvatarGroup/index.tsx +0 -83
  138. package/Common/Badge/index.stories.tsx +0 -38
  139. package/Common/Badge/index.tsx +0 -35
  140. package/Common/BadgeGroup/index.stories.tsx +0 -35
  141. package/Common/BadgeGroup/index.tsx +0 -35
  142. package/Common/Banner/index.stories.tsx +0 -29
  143. package/Common/Banner/index.tsx +0 -18
  144. package/Common/BaseActiveLink/__tests__/index.test.jsx +0 -52
  145. package/Common/BaseActiveLink/index.tsx +0 -34
  146. package/Common/BaseButton/index.stories.tsx +0 -67
  147. package/Common/BaseButton/index.tsx +0 -59
  148. package/Common/BaseCodeBox/index.stories.tsx +0 -39
  149. package/Common/BaseCodeBox/index.tsx +0 -122
  150. package/Common/BaseCrossLink/index.stories.tsx +0 -38
  151. package/Common/BaseCrossLink/index.tsx +0 -46
  152. package/Common/BaseLinkTabs/index.stories.tsx +0 -34
  153. package/Common/BaseLinkTabs/index.tsx +0 -53
  154. package/Common/BasePagination/Ellipsis/index.stories.tsx +0 -10
  155. package/Common/BasePagination/Ellipsis/index.tsx +0 -11
  156. package/Common/BasePagination/PaginationListItem/__tests__/index.test.jsx +0 -58
  157. package/Common/BasePagination/PaginationListItem/index.stories.tsx +0 -40
  158. package/Common/BasePagination/PaginationListItem/index.tsx +0 -39
  159. package/Common/BasePagination/PrevNextArrow.tsx +0 -15
  160. package/Common/BasePagination/__tests__/index.test.jsx +0 -180
  161. package/Common/BasePagination/index.stories.tsx +0 -67
  162. package/Common/BasePagination/index.tsx +0 -77
  163. package/Common/BasePagination/useGetPageElements.tsx +0 -132
  164. package/Common/Blockquote/index.stories.tsx +0 -45
  165. package/Common/Blockquote/index.tsx +0 -11
  166. package/Common/Breadcrumbs/BreadcrumbHomeLink/index.tsx +0 -30
  167. package/Common/Breadcrumbs/BreadcrumbItem/index.tsx +0 -42
  168. package/Common/Breadcrumbs/BreadcrumbLink/index.tsx +0 -37
  169. package/Common/Breadcrumbs/BreadcrumbRoot/index.tsx +0 -20
  170. package/Common/Breadcrumbs/BreadcrumbTruncatedItem/index.tsx +0 -9
  171. package/Common/Breadcrumbs/index.stories.tsx +0 -94
  172. package/Common/Breadcrumbs/index.tsx +0 -81
  173. package/Common/ChangeHistory/index.stories.tsx +0 -130
  174. package/Common/ChangeHistory/index.tsx +0 -67
  175. package/Common/CodeTabs/index.stories.tsx +0 -73
  176. package/Common/CodeTabs/index.tsx +0 -16
  177. package/Common/DataTag/index.stories.tsx +0 -40
  178. package/Common/DataTag/index.tsx +0 -39
  179. package/Common/GlowingBackdrop/index.stories.tsx +0 -10
  180. package/Common/GlowingBackdrop/index.tsx +0 -13
  181. package/Common/LanguageDropDown/index.stories.tsx +0 -19
  182. package/Common/LanguageDropDown/index.tsx +0 -56
  183. package/Common/Modal/index.stories.tsx +0 -32
  184. package/Common/Modal/index.tsx +0 -48
  185. package/Common/NodejsLogo/index.stories.tsx +0 -14
  186. package/Common/NodejsLogo/index.tsx +0 -26
  187. package/Common/Notification/index.stories.tsx +0 -36
  188. package/Common/Notification/index.tsx +0 -34
  189. package/Common/Preview/index.stories.tsx +0 -44
  190. package/Common/Preview/index.tsx +0 -25
  191. package/Common/Select/__tests__/index.test.jsx +0 -67
  192. package/Common/Select/index.stories.tsx +0 -111
  193. package/Common/Select/index.tsx +0 -187
  194. package/Common/Separator/index.stories.tsx +0 -32
  195. package/Common/Separator/index.tsx +0 -27
  196. package/Common/Skeleton/index.tsx +0 -39
  197. package/Common/Tabs/__tests__/index.test.jsx +0 -52
  198. package/Common/Tabs/index.stories.tsx +0 -50
  199. package/Common/Tabs/index.tsx +0 -54
  200. package/Common/ThemeToggle/__tests__/index.test.jsx +0 -35
  201. package/Common/ThemeToggle/index.stories.tsx +0 -10
  202. package/Common/ThemeToggle/index.tsx +0 -15
  203. package/Common/Tooltip/index.stories.tsx +0 -73
  204. package/Common/Tooltip/index.tsx +0 -48
  205. package/Containers/Article/index.stories.tsx +0 -39
  206. package/Containers/Article/index.tsx +0 -9
  207. package/Containers/DocSideBar/index.tsx +0 -0
  208. package/Containers/Footer/index.stories.tsx +0 -27
  209. package/Containers/Footer/index.tsx +0 -95
  210. package/Containers/MetaBar/__tests__/index.test.jsx +0 -63
  211. package/Containers/MetaBar/index.stories.tsx +0 -80
  212. package/Containers/MetaBar/index.tsx +0 -72
  213. package/Containers/NavBar/NavItem/index.stories.tsx +0 -38
  214. package/Containers/NavBar/NavItem/index.tsx +0 -44
  215. package/Containers/NavBar/index.stories.tsx +0 -45
  216. package/Containers/NavBar/index.tsx +0 -94
  217. package/Containers/Sidebar/ProgressionIcon/index.tsx +0 -16
  218. package/Containers/Sidebar/SidebarGroup/index.stories.tsx +0 -36
  219. package/Containers/Sidebar/SidebarGroup/index.tsx +0 -49
  220. package/Containers/Sidebar/SidebarItem/index.stories.tsx +0 -15
  221. package/Containers/Sidebar/SidebarItem/index.tsx +0 -43
  222. package/Containers/Sidebar/index.stories.tsx +0 -88
  223. package/Containers/Sidebar/index.tsx +0 -70
  224. package/Icons/HexagonGrid.stories.tsx +0 -10
  225. package/Icons/HexagonGrid.tsx +0 -1434
  226. package/Icons/InstallationMethod/Choco.tsx +0 -78
  227. package/Icons/InstallationMethod/Devbox.tsx +0 -21
  228. package/Icons/InstallationMethod/Docker.tsx +0 -20
  229. package/Icons/InstallationMethod/FNM.tsx +0 -132
  230. package/Icons/InstallationMethod/Homebrew.tsx +0 -69
  231. package/Icons/InstallationMethod/N.tsx +0 -32
  232. package/Icons/InstallationMethod/NVM.tsx +0 -63
  233. package/Icons/InstallationMethod/Volta.tsx +0 -34
  234. package/Icons/Logos/JsGreen.tsx +0 -24
  235. package/Icons/Logos/JsWhite.tsx +0 -37
  236. package/Icons/Logos/Nodejs.tsx +0 -372
  237. package/Icons/Logos/NodejsStackedBlack.tsx +0 -98
  238. package/Icons/Logos/NodejsStackedDark.tsx +0 -124
  239. package/Icons/Logos/NodejsStackedLight.tsx +0 -123
  240. package/Icons/Logos/NodejsStackedWhite.tsx +0 -98
  241. package/Icons/Logos/index.ts +0 -17
  242. package/Icons/OperatingSystem/AIX.tsx +0 -46
  243. package/Icons/OperatingSystem/Apple.tsx +0 -23
  244. package/Icons/OperatingSystem/Linux.tsx +0 -969
  245. package/Icons/OperatingSystem/Microsoft.tsx +0 -19
  246. package/Icons/PackageManager/Npm.tsx +0 -21
  247. package/Icons/PackageManager/Pnpm.tsx +0 -22
  248. package/Icons/PackageManager/Yarn.tsx +0 -22
  249. package/Icons/Social/Bluesky.tsx +0 -19
  250. package/Icons/Social/Discord.tsx +0 -20
  251. package/Icons/Social/GitHub.tsx +0 -16
  252. package/Icons/Social/LinkedIn.tsx +0 -16
  253. package/Icons/Social/Mastodon.tsx +0 -36
  254. package/Icons/Social/Slack.tsx +0 -31
  255. package/Icons/Social/X.tsx +0 -16
  256. package/MDX/CodeTabs.tsx +0 -47
  257. package/stylelint/__tests__/index.test.mjs +0 -80
  258. package/styles/animations.css +0 -47
  259. package/styles/base.css +0 -17
  260. package/styles/effects.css +0 -12
  261. package/styles/markdown.css +0 -173
  262. package/styles/theme.css +0 -175
  263. package/types.ts +0 -25
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useMemo } from 'react';
3
+ import BreadcrumbHomeLink from '#ui/Common/Breadcrumbs/BreadcrumbHomeLink';
4
+ import BreadcrumbItem from '#ui/Common/Breadcrumbs/BreadcrumbItem';
5
+ import BreadcrumbLink from '#ui/Common/Breadcrumbs/BreadcrumbLink';
6
+ import BreadcrumbRoot from '#ui/Common/Breadcrumbs/BreadcrumbRoot';
7
+ import BreadcrumbTruncatedItem from '#ui/Common/Breadcrumbs/BreadcrumbTruncatedItem';
8
+ const Breadcrumbs = ({ links = [], maxLength = 5, hideHome = false, as = 'a', homeLinkAriaLabel, }) => {
9
+ const totalLength = links.length + +!hideHome;
10
+ const lengthOffset = maxLength - totalLength;
11
+ const isOverflow = lengthOffset < 0;
12
+ const items = useMemo(() => links.map((link, index, items) => {
13
+ const position = index + 1;
14
+ const isLastItem = index === items.length - 1;
15
+ const hidden =
16
+ // We add 1 here to take into account of the truncated breadcrumb.
17
+ position <= Math.abs(lengthOffset) + 1 && isOverflow && !isLastItem;
18
+ return (_jsx(BreadcrumbItem, { hidden: hidden, hideSeparator: isLastItem, position: position + +!hideHome, children: link.href || isLastItem ? (_jsx(BreadcrumbLink, { as: as, href: link.href || undefined, active: isLastItem, children: link.label })) : (_jsx("span", { className: "opacity-70", children: link.label })) }, link.label.toString()));
19
+ }), [hideHome, isOverflow, lengthOffset, links]);
20
+ return (_jsxs(BreadcrumbRoot, { children: [!hideHome && (_jsx(BreadcrumbItem, { position: 1, children: _jsx(BreadcrumbHomeLink, { as: as, "aria-label": homeLinkAriaLabel }) })), isOverflow && _jsx(BreadcrumbTruncatedItem, {}), items] }));
21
+ };
22
+ export default Breadcrumbs;
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ChevronDownIcon, ClockIcon } from '@heroicons/react/24/outline';
3
+ import classNames from 'classnames';
4
+ import styles from './index.module.css';
5
+ const ChangeHistory = ({ label = 'History', changes = [], className, as: As = 'a', 'aria-label': ariaLabel = label, ...props }) => (_jsx("div", { className: classNames('relative', 'inline-block', className), ...props, children: _jsxs("details", { className: "group", children: [_jsxs("summary", { className: styles.summary, role: "button", "aria-haspopup": "menu", children: [_jsx(ClockIcon, { className: "size-4" }), _jsx("span", { children: label }), _jsx(ChevronDownIcon, { className: "size-3 group-open:rotate-180 motion-safe:transition-transform" })] }), _jsx("div", { className: styles.dropdownContentWrapper, role: "menu", "aria-label": ariaLabel, children: _jsx("div", { className: styles.dropdownContentInner, children: changes.map((change, index) => {
6
+ const MenuItem = change.url ? As : 'div';
7
+ return (_jsxs(MenuItem, { className: styles.dropdownItem, role: "menuitem", tabIndex: 0, "aria-label": `${change.label}: ${change.versions.join(', ')}`, href: change.url, children: [_jsx("div", { className: styles.dropdownLabel, children: change.label }), _jsx("div", { className: styles.dropdownVersions, children: change.versions.join(', ') })] }, index));
8
+ }) }) })] }) }));
9
+ export default ChangeHistory;
@@ -1,83 +1,2 @@
1
- @reference "../../styles/index.css";
2
-
3
- .summary {
4
- @apply outline-hidden
5
- flex
6
- h-9
7
- cursor-pointer
8
- select-none
9
- items-center
10
- gap-2
11
- rounded-md
12
- border
13
- border-neutral-200
14
- p-2
15
- text-sm
16
- text-neutral-700
17
- motion-safe:transition-colors
18
- dark:border-neutral-900
19
- dark:text-neutral-300;
20
-
21
- &:hover,
22
- &:focus-visible {
23
- @apply bg-neutral-100
24
- dark:bg-neutral-900;
25
- }
26
- }
27
-
28
- .dropdownContentWrapper {
29
- @apply absolute
30
- right-0
31
- top-full
32
- z-50
33
- mt-1
34
- max-h-80
35
- w-52
36
- overflow-hidden
37
- rounded-sm
38
- border
39
- border-neutral-200
40
- bg-white
41
- shadow-lg
42
- dark:border-neutral-900
43
- dark:bg-neutral-950;
44
- }
45
-
46
- .dropdownContentInner {
47
- @apply max-h-80
48
- w-52
49
- overflow-y-auto;
50
- }
51
-
52
- .dropdownItem {
53
- @apply outline-hidden
54
- block
55
- px-2.5
56
- py-1.5
57
- text-sm
58
- font-medium
59
- text-neutral-800
60
- no-underline
61
- motion-safe:transition-colors
62
- dark:text-white;
63
-
64
- &:hover,
65
- &:focus-visible {
66
- @apply bg-green-600
67
- text-white;
68
- }
69
- }
70
-
71
- .dropdownLabel {
72
- @apply block
73
- text-sm
74
- font-medium
75
- leading-tight;
76
- }
77
-
78
- .dropdownVersions {
79
- @apply block
80
- text-xs
81
- leading-tight
82
- opacity-75;
83
- }
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
2
+ .summary{height:calc(var(--spacing,.25rem)*9);cursor:pointer;align-items:center;gap:calc(var(--spacing,.25rem)*2);border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-200,#e9edf0);padding:calc(var(--spacing,.25rem)*2);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,1.42857));color:var(--color-neutral-700,#6e7b83);--tw-outline-style:none;outline-style:none;display:flex}@media (forced-colors:active){.summary{outline-offset:2px;outline:2px solid #0000}}.summary{-webkit-user-select:none;user-select:none}@media (prefers-reduced-motion:no-preference){.summary{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}}.summary:where([data-theme=dark],[data-theme=dark] *){border-color:var(--color-neutral-900,#2c3437);color:var(--color-neutral-300,#d9e1e4)}.summary:hover,.summary:focus-visible{background-color:var(--color-neutral-100,#f6f7f9)}:is(.summary:hover,.summary:focus-visible):where([data-theme=dark],[data-theme=dark] *){background-color:var(--color-neutral-900,#2c3437)}.dropdownContentWrapper{top:100%;right:calc(var(--spacing,.25rem)*0);z-index:50;margin-top:calc(var(--spacing,.25rem)*1);max-height:calc(var(--spacing,.25rem)*80);width:calc(var(--spacing,.25rem)*52);border-radius:var(--radius-sm,.25rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-200,#e9edf0);background-color:var(--color-white,#fff);--tw-shadow:0px 4px 6px -2px var(--tw-shadow-color,#10182808),0px 12px 16px -4px var(--tw-shadow-color,#10182814);position:absolute;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.dropdownContentWrapper{--tw-shadow:0px 4px 6px -2px var(--tw-shadow-color,color-mix(in oklab,var(--color-shadow,#101828)3%,transparent)),0px 12px 16px -4px var(--tw-shadow-color,color-mix(in oklab,var(--color-shadow,#101828)8%,transparent))}}.dropdownContentWrapper{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dropdownContentWrapper:where([data-theme=dark],[data-theme=dark] *){border-color:var(--color-neutral-900,#2c3437);background-color:var(--color-neutral-950,#0d121c)}.dropdownContentInner{max-height:calc(var(--spacing,.25rem)*80);width:calc(var(--spacing,.25rem)*52);overflow-y:auto}.dropdownItem{padding-inline:calc(var(--spacing,.25rem)*2.5);padding-block:calc(var(--spacing,.25rem)*1.5);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,1.42857));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-neutral-800,#556066);--tw-outline-style:none;outline-style:none;text-decoration-line:none;display:block}@media (forced-colors:active){.dropdownItem{outline-offset:2px;outline:2px solid #0000}}@media (prefers-reduced-motion:no-preference){.dropdownItem{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}}.dropdownItem:where([data-theme=dark],[data-theme=dark] *){color:var(--color-white,#fff)}.dropdownItem:hover,.dropdownItem:focus-visible{background-color:var(--color-green-600,#417e38);color:var(--color-white,#fff)}.dropdownLabel{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,1.42857));--tw-leading:var(--leading-tight,1.25);line-height:var(--leading-tight,1.25);--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);display:block}.dropdownVersions{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,1.33333));--tw-leading:var(--leading-tight,1.25);line-height:var(--leading-tight,1.25);opacity:.75;display:block}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-leading{syntax:"*";inherits:false}
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import Tabs from '#ui/Common/Tabs';
3
+ import styles from './index.module.css';
4
+ const CodeTabs = ({ ...props }) => (_jsx(Tabs, { ...props, className: styles.root, triggerClassName: styles.trigger }));
5
+ export default CodeTabs;
@@ -1,56 +1,2 @@
1
- @reference "../../styles/index.css";
2
-
3
- .root {
4
- > [role='tabpanel'] > :first-child {
5
- @apply rounded-t-none;
6
- }
7
-
8
- > div:nth-of-type(1) {
9
- @apply flex
10
- rounded-t
11
- border-x
12
- border-t
13
- border-neutral-900
14
- bg-neutral-950
15
- px-2
16
- pt-3
17
- md:px-4;
18
-
19
- .trigger {
20
- @apply border-b
21
- border-b-transparent
22
- px-1
23
- text-neutral-200;
24
-
25
- &[data-state='active'] {
26
- @apply border-b-green-400
27
- text-green-400;
28
- }
29
- }
30
-
31
- .link {
32
- @apply hidden
33
- items-center
34
- gap-2
35
- text-center
36
- text-neutral-200
37
- motion-safe:transition-colors
38
- lg:flex;
39
-
40
- & > .icon {
41
- @apply size-4
42
- text-neutral-300;
43
- }
44
-
45
- &:is(:link, :visited) {
46
- &:hover {
47
- @apply text-neutral-400;
48
-
49
- & > .icon {
50
- @apply text-neutral-600;
51
- }
52
- }
53
- }
54
- }
55
- }
56
- }
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
2
+ .root>[role=tabpanel]>:first-child{border-top-left-radius:0;border-top-right-radius:0}.root>div:first-of-type{border-inline-style:var(--tw-border-style);border-inline-width:1px;border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-neutral-900,#2c3437);background-color:var(--color-neutral-950,#0d121c);padding-inline:calc(var(--spacing,.25rem)*2);padding-top:calc(var(--spacing,.25rem)*3);border-top-left-radius:.25rem;border-top-right-radius:.25rem;display:flex}@media (min-width:48rem){.root>div:first-of-type{padding-inline:calc(var(--spacing,.25rem)*4)}}.root>div:first-of-type .trigger{border-bottom-style:var(--tw-border-style);padding-inline:calc(var(--spacing,.25rem)*1);color:var(--color-neutral-200,#e9edf0);border-bottom-width:1px;border-bottom-color:#0000}.root>div:first-of-type .trigger[data-state=active]{border-bottom-color:var(--color-green-400,#84ba64);color:var(--color-green-400,#84ba64)}.root>div:first-of-type .link{align-items:center;gap:calc(var(--spacing,.25rem)*2);text-align:center;color:var(--color-neutral-200,#e9edf0);display:none}@media (prefers-reduced-motion:no-preference){.root>div:first-of-type .link{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}}@media (min-width:64rem){.root>div:first-of-type .link{display:flex}}.root>div:first-of-type .link>.icon{width:calc(var(--spacing,.25rem)*4);height:calc(var(--spacing,.25rem)*4);color:var(--color-neutral-300,#d9e1e4)}.root>div:first-of-type .link:is(:link,:visited):hover{color:var(--color-neutral-400,#cbd4d9)}.root>div:first-of-type .link:is(:link,:visited):hover>.icon{color:var(--color-neutral-600,#929fa5)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import classNames from 'classnames';
3
+ import styles from './index.module.css';
4
+ // These symbols match up with the types used in
5
+ // node core, and the ones defined at
6
+ // https://github.com/nodejs/api-docs-tooling/blob/main/src/types.d.ts#L22 (`HeadingMetadataEntry['type']`)
7
+ const symbolMap = {
8
+ event: 'E',
9
+ method: 'M',
10
+ property: 'P',
11
+ class: 'C',
12
+ module: 'M',
13
+ classMethod: 'S',
14
+ global: 'G',
15
+ ctor: 'C',
16
+ };
17
+ const DataTag = ({ kind, size = 'md' }) => (_jsx("div", { className: classNames(styles.dataTag, styles[size], styles[kind]), children: _jsx("span", { children: symbolMap[kind] }) }));
18
+ export default DataTag;
@@ -1,56 +1,2 @@
1
- @reference "../../styles/index.css";
2
-
3
- .dataTag {
4
- @apply flex
5
- items-center
6
- justify-center
7
- rounded-full
8
- font-semibold
9
- text-white;
10
-
11
- &.lg {
12
- @apply size-12
13
- text-2xl;
14
- }
15
-
16
- &.md {
17
- @apply size-10
18
- text-xl;
19
- }
20
-
21
- &.sm {
22
- @apply size-8;
23
- }
24
-
25
- &.event {
26
- @apply bg-accent1-600;
27
- }
28
-
29
- &.method {
30
- @apply bg-info-600;
31
- }
32
-
33
- &.property {
34
- @apply bg-green-600;
35
- }
36
-
37
- &.class {
38
- @apply bg-warning-600;
39
- }
40
-
41
- &.module {
42
- @apply bg-red-600;
43
- }
44
-
45
- &.classMethod {
46
- @apply bg-blue-600;
47
- }
48
-
49
- &.ctor {
50
- @apply bg-accent2-600;
51
- }
52
-
53
- &.global {
54
- @apply bg-amber-600;
55
- }
56
- }
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
2
+ .dataTag{--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-white,#fff);border-radius:3.40282e38px;justify-content:center;align-items:center;display:flex}.dataTag.lg{width:calc(var(--spacing,.25rem)*12);height:calc(var(--spacing,.25rem)*12);font-size:var(--text-2xl,1.5rem);line-height:var(--tw-leading,var(--text-2xl--line-height,1.33333))}.dataTag.md{width:calc(var(--spacing,.25rem)*10);height:calc(var(--spacing,.25rem)*10);font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,1.4))}.dataTag.sm{width:calc(var(--spacing,.25rem)*8);height:calc(var(--spacing,.25rem)*8)}.dataTag.event{background-color:var(--color-accent1-600,#9756d6)}.dataTag.method{background-color:var(--color-info-600,#0c7bb3)}.dataTag.property{background-color:var(--color-green-600,#417e38)}.dataTag.class{background-color:var(--color-warning-600,#ae5f00)}.dataTag.module{background-color:var(--color-red-600,oklch(57.7% .245 27.325))}.dataTag.classMethod{background-color:var(--color-blue-600,oklch(54.6% .245 262.881))}.dataTag.ctor{background-color:var(--color-accent2-600,#d6246e)}.dataTag.global{background-color:var(--color-amber-600,oklch(66.6% .179 58.318))}@property --tw-font-weight{syntax:"*";inherits:false}
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import HexagonGrid from '#ui/Icons/HexagonGrid';
3
+ import styles from './index.module.css';
4
+ const GlowingBackdrop = () => (_jsx("div", { className: styles.glowingBackdrop, children: _jsx(HexagonGrid, {}) }));
5
+ export default GlowingBackdrop;
@@ -1,32 +1,2 @@
1
- @reference "../../styles/index.css";
2
-
3
- .glowingBackdrop {
4
- @apply absolute
5
- left-0
6
- top-0
7
- -z-10
8
- size-full
9
- opacity-50
10
- after:absolute
11
- after:inset-0
12
- after:m-auto
13
- after:aspect-square
14
- after:w-[300px]
15
- after:rounded-full
16
- after:bg-green-300
17
- after:blur-[120px]
18
- after:content-['']
19
- md:opacity-100
20
- dark:after:bg-green-700;
21
-
22
- svg {
23
- @apply absolute
24
- inset-0
25
- m-auto
26
- aspect-[1.67]
27
- max-w-[1004px]
28
- object-cover
29
- text-neutral-300
30
- dark:text-neutral-900/75;
31
- }
32
- }
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
2
+ .glowingBackdrop{top:calc(var(--spacing,.25rem)*0);left:calc(var(--spacing,.25rem)*0);z-index:-10;opacity:.5;width:100%;height:100%;position:absolute}.glowingBackdrop:after{content:var(--tw-content);content:var(--tw-content);inset:calc(var(--spacing,.25rem)*0);content:var(--tw-content);content:var(--tw-content);aspect-ratio:1;content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);background-color:var(--color-green-300,#99cc7d);content:var(--tw-content);--tw-blur:blur(120px);width:300px;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,);content:var(--tw-content);--tw-content:"";content:var(--tw-content);border-radius:3.40282e38px;margin:auto;position:absolute}@media (min-width:48rem){.glowingBackdrop{opacity:1}}.glowingBackdrop:where([data-theme=dark],[data-theme=dark] *):after{content:var(--tw-content);background-color:var(--color-green-700,#2c682c)}.glowingBackdrop svg{inset:calc(var(--spacing,.25rem)*0);aspect-ratio:1.67;object-fit:cover;max-width:1004px;color:var(--color-neutral-300,#d9e1e4);margin:auto;position:absolute}.glowingBackdrop svg:where([data-theme=dark],[data-theme=dark] *){color:#2c3437bf}@supports (color:color-mix(in lab, red, red)){.glowingBackdrop svg:where([data-theme=dark],[data-theme=dark] *){color:color-mix(in oklab,var(--color-neutral-900,#2c3437)75%,transparent)}}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@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}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { LanguageIcon } from '@heroicons/react/24/outline';
3
+ import * as DropdownMenu from '@radix-ui/react-dropdown-menu';
4
+ import classNames from 'classnames';
5
+ import styles from './index.module.css';
6
+ const LanguageDropdown = ({ onChange = () => { }, currentLanguage, availableLanguages, ariaLabel, }) => {
7
+ return (_jsxs(DropdownMenu.Root, { children: [_jsx(DropdownMenu.Trigger, { asChild: true, children: _jsx("button", { className: styles.languageDropdown, "aria-label": ariaLabel, children: _jsx(LanguageIcon, { height: "20" }) }) }), _jsx(DropdownMenu.Portal, { children: _jsx(DropdownMenu.Content, { align: "start", className: styles.dropDownContent, sideOffset: 5, children: _jsx("div", { children: availableLanguages.map(({ name, code, localName }) => (_jsx(DropdownMenu.Item, { onClick: () => onChange({ name, code, localName }), className: classNames(styles.dropDownItem, {
8
+ [styles.currentDropDown]: code === currentLanguage,
9
+ }), children: localName }, code))) }) }) })] }));
10
+ };
11
+ export default LanguageDropdown;
@@ -1,53 +1,2 @@
1
- @reference "../../styles/index.css";
2
-
3
- .languageDropdown {
4
- @apply h-9
5
- w-9
6
- rounded-md
7
- p-2
8
- text-neutral-700
9
- motion-safe:transition-colors
10
- dark:text-neutral-300;
11
-
12
- &:hover {
13
- @apply bg-neutral-100
14
- dark:bg-neutral-900;
15
- }
16
- }
17
-
18
- .dropDownContent {
19
- @apply max-h-80
20
- w-48
21
- overflow-hidden
22
- rounded-sm
23
- border
24
- border-neutral-200
25
- bg-white
26
- shadow-lg
27
- dark:border-neutral-900
28
- dark:bg-neutral-950;
29
-
30
- > div {
31
- @apply max-h-80
32
- w-48
33
- overflow-y-auto;
34
- }
35
- }
36
-
37
- .dropDownItem {
38
- @apply outline-hidden
39
- cursor-pointer
40
- px-2.5
41
- py-1.5
42
- text-sm
43
- font-medium
44
- text-neutral-800
45
- data-[highlighted]:bg-green-600
46
- data-[highlighted]:text-white
47
- dark:text-white;
48
- }
49
-
50
- .currentDropDown {
51
- @apply bg-green-600
52
- text-white;
53
- }
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
2
+ .languageDropdown{height:calc(var(--spacing,.25rem)*9);width:calc(var(--spacing,.25rem)*9);border-radius:var(--radius-md,.375rem);padding:calc(var(--spacing,.25rem)*2);color:var(--color-neutral-700,#6e7b83)}@media (prefers-reduced-motion:no-preference){.languageDropdown{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}}.languageDropdown:where([data-theme=dark],[data-theme=dark] *){color:var(--color-neutral-300,#d9e1e4)}.languageDropdown:hover{background-color:var(--color-neutral-100,#f6f7f9)}.languageDropdown:hover:where([data-theme=dark],[data-theme=dark] *){background-color:var(--color-neutral-900,#2c3437)}.dropDownContent{max-height:calc(var(--spacing,.25rem)*80);width:calc(var(--spacing,.25rem)*48);border-radius:var(--radius-sm,.25rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-200,#e9edf0);background-color:var(--color-white,#fff);--tw-shadow:0px 4px 6px -2px var(--tw-shadow-color,#10182808),0px 12px 16px -4px var(--tw-shadow-color,#10182814);overflow:hidden}@supports (color:color-mix(in lab, red, red)){.dropDownContent{--tw-shadow:0px 4px 6px -2px var(--tw-shadow-color,color-mix(in oklab,var(--color-shadow,#101828)3%,transparent)),0px 12px 16px -4px var(--tw-shadow-color,color-mix(in oklab,var(--color-shadow,#101828)8%,transparent))}}.dropDownContent{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dropDownContent:where([data-theme=dark],[data-theme=dark] *){border-color:var(--color-neutral-900,#2c3437);background-color:var(--color-neutral-950,#0d121c)}.dropDownContent>div{max-height:calc(var(--spacing,.25rem)*80);width:calc(var(--spacing,.25rem)*48);overflow-y:auto}.dropDownItem{cursor:pointer;padding-inline:calc(var(--spacing,.25rem)*2.5);padding-block:calc(var(--spacing,.25rem)*1.5);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,1.42857));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-neutral-800,#556066);--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.dropDownItem{outline-offset:2px;outline:2px solid #0000}}.dropDownItem[data-highlighted]{background-color:var(--color-green-600,#417e38);color:var(--color-white,#fff)}.dropDownItem:where([data-theme=dark],[data-theme=dark] *){color:var(--color-white,#fff)}.currentDropDown{background-color:var(--color-green-600,#417e38);color:var(--color-white,#fff)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-font-weight{syntax:"*";inherits:false}
@@ -0,0 +1,10 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { XMarkIcon } from '@heroicons/react/24/outline';
4
+ import * as Dialog from '@radix-ui/react-dialog';
5
+ import styles from './index.module.css';
6
+ const Modal = ({ children, open = false, onOpenChange = () => { }, }) => (_jsx(Dialog.Root, { open: open, onOpenChange: onOpenChange, children: _jsx(Dialog.Portal, { children: _jsx(Dialog.Overlay, { className: styles.overlay, children: _jsxs(Dialog.Content, { className: styles.content, children: [_jsx(Dialog.Trigger, { className: styles.close, children: _jsx(XMarkIcon, {}) }), children, _jsx(Dialog.Close, {})] }) }) }) }));
7
+ const Title = ({ children }) => (_jsx(Dialog.Title, { className: styles.title, children: children }));
8
+ const Description = ({ children }) => (_jsx(Dialog.Description, { className: styles.description, children: children }));
9
+ const Content = ({ children }) => (_jsx("main", { className: styles.wrapper, children: children }));
10
+ export { Modal, Title, Description, Content };
@@ -1,79 +1,2 @@
1
- @reference "../../styles/index.css";
2
-
3
- .overlay {
4
- @apply fixed
5
- inset-0
6
- flex
7
- justify-center
8
- bg-white/40
9
- backdrop-blur-[2px]
10
- dark:bg-neutral-950/40;
11
-
12
- .content {
13
- @apply xs:p-6
14
- relative
15
- m-4
16
- inline-flex
17
- w-full
18
- max-w-3xl
19
- flex-col
20
- overflow-y-auto
21
- rounded
22
- border
23
- border-neutral-200
24
- bg-white
25
- p-8
26
- focus:outline-none
27
- sm:my-20
28
- xl:p-12
29
- dark:bg-neutral-950;
30
- }
31
-
32
- .close {
33
- @apply absolute
34
- right-3
35
- top-3
36
- block
37
- size-7
38
- cursor-pointer
39
- rounded-sm
40
- p-1
41
- hover:bg-neutral-100
42
- focus:outline-none
43
- focus:ring-2
44
- focus:ring-neutral-200
45
- dark:hover:bg-neutral-900
46
- dark:focus:ring-neutral-900;
47
- }
48
-
49
- .title {
50
- @apply mb-2
51
- text-3xl
52
- font-semibold
53
- text-neutral-900
54
- dark:text-white;
55
- }
56
-
57
- .description {
58
- @apply font-regular
59
- mb-4
60
- text-lg
61
- text-neutral-800
62
- dark:text-neutral-200;
63
- }
64
-
65
- .wrapper {
66
- @apply flex
67
- flex-col
68
- gap-4;
69
-
70
- pre {
71
- @apply overflow-auto;
72
- }
73
-
74
- code,
75
- a {
76
- @apply break-words;
77
- }
78
- }
79
- }
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
2
+ .overlay{inset:calc(var(--spacing,.25rem)*0);background-color:#fff6;justify-content:center;display:flex;position:fixed}@supports (color:color-mix(in lab, red, red)){.overlay{background-color:color-mix(in oklab,var(--color-white,#fff)40%,transparent)}}.overlay{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.overlay:where([data-theme=dark],[data-theme=dark] *){background-color:#0d121c66}@supports (color:color-mix(in lab, red, red)){.overlay:where([data-theme=dark],[data-theme=dark] *){background-color:color-mix(in oklab,var(--color-neutral-950,#0d121c)40%,transparent)}}.overlay .content{margin:calc(var(--spacing,.25rem)*4);width:100%;max-width:var(--container-3xl,48rem);gap:calc(var(--spacing,.25rem)*2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-200,#e9edf0);background-color:var(--color-white,#fff);padding:calc(var(--spacing,.25rem)*8);border-radius:.25rem;flex-direction:column;display:inline-flex;position:relative;overflow-y:auto}.overlay .content:focus{--tw-outline-style:none;outline-style:none}@media (min-width:670px){.overlay .content{padding:calc(var(--spacing,.25rem)*6)}}@media (min-width:40rem){.overlay .content{margin-block:calc(var(--spacing,.25rem)*20)}}@media (min-width:80rem){.overlay .content{padding:calc(var(--spacing,.25rem)*12)}}.overlay .content:where([data-theme=dark],[data-theme=dark] *){background-color:var(--color-neutral-950,#0d121c)}.overlay .close{top:calc(var(--spacing,.25rem)*3);right:calc(var(--spacing,.25rem)*3);width:calc(var(--spacing,.25rem)*7);height:calc(var(--spacing,.25rem)*7);cursor:pointer;border-radius:var(--radius-sm,.25rem);padding:calc(var(--spacing,.25rem)*1);display:block;position:absolute}@media (hover:hover){.overlay .close:hover{background-color:var(--color-neutral-100,#f6f7f9)}}.overlay .close:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--color-neutral-200,#e9edf0);--tw-outline-style:none;outline-style:none}@media (hover:hover){.overlay .close:where([data-theme=dark],[data-theme=dark] *):hover{background-color:var(--color-neutral-900,#2c3437)}}.overlay .close:where([data-theme=dark],[data-theme=dark] *):focus{--tw-ring-color:var(--color-neutral-900,#2c3437)}.overlay .title{font-size:var(--text-3xl,1.875rem);line-height:var(--tw-leading,var(--text-3xl--line-height,1.2));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-neutral-900,#2c3437)}.overlay .title:where([data-theme=dark],[data-theme=dark] *){color:var(--color-white,#fff)}.overlay .description{margin-bottom:calc(var(--spacing,.25rem)*2);font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,1.55556));--tw-font-weight:var(--font-weight-regular,400);font-weight:var(--font-weight-regular,400);color:var(--color-neutral-800,#556066)}.overlay .description:where([data-theme=dark],[data-theme=dark] *){color:var(--color-neutral-200,#e9edf0)}.overlay .wrapper{gap:calc(var(--spacing,.25rem)*4);flex-direction:column;display:flex}.overlay .wrapper pre{overflow:auto}.overlay .wrapper code,.overlay .wrapper a{overflow-wrap:break-word}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-font-weight{syntax:"*";inherits:false}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import NodejsIcon from '#ui/Icons/Logos/Nodejs';
3
+ import style from './index.module.css';
4
+ const NodejsLogo = props => {
5
+ return _jsx(NodejsIcon, { className: style.nodejsLogo, ...props });
6
+ };
7
+ export default NodejsLogo;
@@ -1,6 +1,2 @@
1
- @reference "../../styles/index.css";
2
-
3
- .nodejsLogo {
4
- @apply h-6
5
- w-20;
6
- }
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
2
+ .nodejsLogo{height:calc(var(--spacing,.25rem)*6);width:calc(var(--spacing,.25rem)*20)}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as ToastPrimitive from '@radix-ui/react-toast';
3
+ import classNames from 'classnames';
4
+ import styles from './index.module.css';
5
+ const Notification = ({ open, duration = 5000, onChange, children, className, }) => (_jsx(ToastPrimitive.Root, { open: open, duration: duration, onOpenChange: onChange, className: classNames(styles.root, className), children: _jsx(ToastPrimitive.Title, { className: styles.message, children: children }) }));
6
+ export default Notification;
@@ -1,20 +1,2 @@
1
- @reference "../../styles/index.css";
2
-
3
- .root {
4
- @apply m-6
5
- rounded-sm
6
- border
7
- border-neutral-200
8
- bg-white
9
- px-4
10
- py-3
11
- shadow-lg
12
- dark:border-neutral-800
13
- dark:bg-neutral-900;
14
- }
15
-
16
- .message {
17
- @apply font-medium
18
- text-green-600
19
- dark:text-white;
20
- }
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
2
+ .root{margin:calc(var(--spacing,.25rem)*6);border-radius:var(--radius-sm,.25rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-200,#e9edf0);background-color:var(--color-white,#fff);padding-inline:calc(var(--spacing,.25rem)*4);padding-block:calc(var(--spacing,.25rem)*3);--tw-shadow:0px 4px 6px -2px var(--tw-shadow-color,#10182808),0px 12px 16px -4px var(--tw-shadow-color,#10182814)}@supports (color:color-mix(in lab, red, red)){.root{--tw-shadow:0px 4px 6px -2px var(--tw-shadow-color,color-mix(in oklab,var(--color-shadow,#101828)3%,transparent)),0px 12px 16px -4px var(--tw-shadow-color,color-mix(in oklab,var(--color-shadow,#101828)8%,transparent))}}.root{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.root:where([data-theme=dark],[data-theme=dark] *){border-color:var(--color-neutral-800,#556066);background-color:var(--color-neutral-900,#2c3437)}.message{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-green-600,#417e38)}.message:where([data-theme=dark],[data-theme=dark] *){color:var(--color-white,#fff)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-font-weight{syntax:"*";inherits:false}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import classNames from 'classnames';
3
+ import HexagonGrid from '#ui/Icons/HexagonGrid';
4
+ import JsWhiteIcon from '#ui/Icons/Logos/JsWhite';
5
+ import styles from './index.module.css';
6
+ const Preview = ({ type = 'announcements', title }) => (_jsx("div", { className: classNames(styles.root, styles[type]), children: _jsxs("div", { className: styles.container, "aria-hidden": true, children: [_jsx(HexagonGrid, { className: styles.hexagon }), _jsx(JsWhiteIcon, { className: styles.logo }), title] }) }));
7
+ export default Preview;
@@ -1,79 +1,2 @@
1
- @reference "../../styles/index.css";
2
-
3
- .root {
4
- @apply after:bg-gradient-radial
5
- @container/preview
6
- relative
7
- flex
8
- aspect-[1.90/1]
9
- items-center
10
- rounded-sm
11
- border
12
- border-neutral-900
13
- bg-neutral-950
14
- after:absolute
15
- after:inset-0
16
- after:m-auto
17
- after:aspect-square
18
- after:w-1/3
19
- after:rounded-full
20
- after:blur-2xl
21
- after:content-[''];
22
-
23
- &.announcements {
24
- @apply after:from-green-700/90;
25
- }
26
-
27
- &.release {
28
- @apply after:from-info-600/90;
29
- }
30
-
31
- &.vulnerability {
32
- @apply after:from-warning-600/90;
33
- }
34
-
35
- .container {
36
- @apply @sm/preview:text-base
37
- @md/preview:gap-6
38
- @md/preview:text-lg
39
- @lg/preview:gap-8
40
- @lg/preview:text-xl
41
- @xl/preview:gap-12
42
- @xl/preview:text-2xl
43
- @2xl/preview:text-3xl
44
- z-10
45
- mx-auto
46
- flex
47
- w-2/3
48
- max-w-xl
49
- flex-col
50
- gap-4
51
- text-center
52
- text-xs
53
- font-semibold
54
- text-white;
55
-
56
- .hexagon {
57
- @apply @md/preview:h-3/5
58
- @md/preview:w-3/5
59
- @lg/preview:h-2/3
60
- @lg/preview:w-2/3
61
- @xl/preview:h-3/5
62
- @xl/preview:w-3/5
63
- @2xl/preview:h-2/3
64
- @2xl/preview:w-2/3
65
- absolute
66
- inset-0
67
- m-auto
68
- size-full;
69
- }
70
-
71
- .logo {
72
- @apply @md/preview:size-14
73
- @lg/preview:size-16
74
- @xl/preview:size-20
75
- mx-auto
76
- size-6;
77
- }
78
- }
79
- }
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
2
+ .root{aspect-ratio:1.9;border-radius:var(--radius-sm,.25rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-900,#2c3437);background-color:var(--color-neutral-950,#0d121c);align-items:center;display:flex;position:relative;container:preview/inline-size}.root:after{content:var(--tw-content);content:var(--tw-content);inset:calc(var(--spacing,.25rem)*0);content:var(--tw-content);content:var(--tw-content);aspect-ratio:1;content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);background-image:radial-gradient(var(--tw-gradient-from),var(--tw-gradient-to));content:var(--tw-content);--tw-blur:blur(var(--blur-2xl,40px));width:33.3333%;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,);content:var(--tw-content);--tw-content:"";content:var(--tw-content);border-radius:3.40282e38px;margin:auto;position:absolute}.root.announcements:after{content:var(--tw-content);--tw-gradient-from:#2c682ce6}@supports (color:color-mix(in lab, red, red)){.root.announcements:after{--tw-gradient-from:color-mix(in oklab,var(--color-green-700,#2c682c)90%,transparent)}}.root.announcements:after{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.root.release:after{content:var(--tw-content);--tw-gradient-from:#0c7bb3e6}@supports (color:color-mix(in lab, red, red)){.root.release:after{--tw-gradient-from:color-mix(in oklab,var(--color-info-600,#0c7bb3)90%,transparent)}}.root.release:after{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.root.vulnerability:after{content:var(--tw-content);--tw-gradient-from:#ae5f00e6}@supports (color:color-mix(in lab, red, red)){.root.vulnerability:after{--tw-gradient-from:color-mix(in oklab,var(--color-warning-600,#ae5f00)90%,transparent)}}.root.vulnerability:after{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.root .container{z-index:10;width:66.6667%;max-width:var(--container-xl,36rem);gap:calc(var(--spacing,.25rem)*4);text-align:center;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,1.33333));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-white,#fff);flex-direction:column;margin-inline:auto;display:flex}@container preview (min-width:24rem){.root .container{font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height,1.5))}}@container preview (min-width:28rem){.root .container{gap:calc(var(--spacing,.25rem)*6);font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,1.55556))}}@container preview (min-width:32rem){.root .container{gap:calc(var(--spacing,.25rem)*8);font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,1.4))}}@container preview (min-width:36rem){.root .container{gap:calc(var(--spacing,.25rem)*12);font-size:var(--text-2xl,1.5rem);line-height:var(--tw-leading,var(--text-2xl--line-height,1.33333))}}@container preview (min-width:42rem){.root .container{font-size:var(--text-3xl,1.875rem);line-height:var(--tw-leading,var(--text-3xl--line-height,1.2))}}.root .container .hexagon{inset:calc(var(--spacing,.25rem)*0);width:100%;height:100%;margin:auto;position:absolute}@container preview (min-width:28rem){.root .container .hexagon{width:60%;height:60%}}@container preview (min-width:32rem){.root .container .hexagon{width:66.6667%;height:66.6667%}}@container preview (min-width:36rem){.root .container .hexagon{width:60%;height:60%}}@container preview (min-width:42rem){.root .container .hexagon{width:66.6667%;height:66.6667%}}.root .container .logo{width:calc(var(--spacing,.25rem)*6);height:calc(var(--spacing,.25rem)*6);margin-inline:auto}@container preview (min-width:28rem){.root .container .logo{width:calc(var(--spacing,.25rem)*14);height:calc(var(--spacing,.25rem)*14)}}@container preview (min-width:32rem){.root .container .logo{width:calc(var(--spacing,.25rem)*16);height:calc(var(--spacing,.25rem)*16)}}@container preview (min-width:36rem){.root .container .logo{width:calc(var(--spacing,.25rem)*20);height:calc(var(--spacing,.25rem)*20)}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@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-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-font-weight{syntax:"*";inherits:false}