@node-core/ui-components 1.0.1-cc5c2626b0639fe2088a736f54169ea3e10ed325 → 1.0.1-e1f87bde264af01e260a8efa4fab1749a2c6bc29

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 (262) hide show
  1. package/Common/AlertBox/index.js +5 -0
  2. package/Common/AlertBox/index.module.css +44 -50
  3. package/Common/AvatarGroup/Avatar/index.js +11 -0
  4. package/Common/AvatarGroup/Avatar/index.module.css +50 -30
  5. package/Common/AvatarGroup/Overlay/index.js +6 -0
  6. package/Common/AvatarGroup/Overlay/index.module.css +28 -21
  7. package/Common/AvatarGroup/index.js +21 -0
  8. package/Common/AvatarGroup/index.module.css +12 -11
  9. package/Common/Badge/index.js +7 -0
  10. package/Common/Badge/index.module.css +34 -26
  11. package/Common/BadgeGroup/index.js +6 -0
  12. package/Common/BadgeGroup/index.module.css +75 -51
  13. package/Common/Banner/index.js +4 -0
  14. package/Common/Banner/index.module.css +30 -27
  15. package/Common/BaseActiveLink/index.js +14 -0
  16. package/Common/BaseButton/index.js +10 -0
  17. package/Common/BaseButton/index.module.css +332 -105
  18. package/Common/BaseCodeBox/index.js +50 -0
  19. package/Common/BaseCodeBox/index.module.css +76 -58
  20. package/Common/BaseCrossLink/index.js +12 -0
  21. package/Common/BaseCrossLink/index.module.css +57 -39
  22. package/Common/BaseLinkTabs/index.js +5 -0
  23. package/Common/BaseLinkTabs/index.module.css +67 -33
  24. package/Common/BasePagination/Ellipsis/index.js +4 -0
  25. package/Common/BasePagination/Ellipsis/index.module.css +14 -8
  26. package/Common/BasePagination/PaginationListItem/index.js +6 -0
  27. package/Common/BasePagination/PaginationListItem/index.module.css +36 -21
  28. package/Common/BasePagination/PrevNextArrow.js +7 -0
  29. package/Common/BasePagination/index.js +10 -0
  30. package/Common/BasePagination/index.module.css +27 -26
  31. package/Common/BasePagination/useGetPageElements.js +77 -0
  32. package/Common/Blockquote/index.js +4 -0
  33. package/Common/Blockquote/index.module.css +44 -23
  34. package/Common/Breadcrumbs/BreadcrumbHomeLink/index.js +9 -0
  35. package/Common/Breadcrumbs/BreadcrumbHomeLink/index.module.css +3 -3
  36. package/Common/Breadcrumbs/BreadcrumbItem/index.js +6 -0
  37. package/Common/Breadcrumbs/BreadcrumbItem/index.module.css +38 -27
  38. package/Common/Breadcrumbs/BreadcrumbLink/index.js +5 -0
  39. package/Common/Breadcrumbs/BreadcrumbLink/index.module.css +26 -16
  40. package/Common/Breadcrumbs/BreadcrumbRoot/index.js +4 -0
  41. package/Common/Breadcrumbs/BreadcrumbRoot/index.module.css +8 -7
  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 +181 -66
  46. package/Common/CodeTabs/index.js +5 -0
  47. package/Common/CodeTabs/index.module.css +47 -36
  48. package/Common/DataTag/index.js +18 -0
  49. package/Common/DataTag/index.module.css +30 -32
  50. package/Common/GlowingBackdrop/index.js +5 -0
  51. package/Common/GlowingBackdrop/index.module.css +126 -28
  52. package/Common/LanguageDropDown/index.js +11 -0
  53. package/Common/LanguageDropDown/index.module.css +140 -42
  54. package/Common/Modal/index.js +10 -0
  55. package/Common/Modal/index.module.css +217 -62
  56. package/Common/NodejsLogo/index.js +7 -0
  57. package/Common/NodejsLogo/index.module.css +3 -4
  58. package/Common/Notification/index.js +6 -0
  59. package/Common/Notification/index.module.css +101 -17
  60. package/Common/Preview/index.js +7 -0
  61. package/Common/Preview/index.module.css +269 -65
  62. package/Common/Select/index.js +46 -0
  63. package/Common/Select/index.module.css +294 -127
  64. package/Common/Separator/index.js +7 -0
  65. package/Common/Separator/index.module.css +7 -10
  66. package/Common/Skeleton/index.js +18 -0
  67. package/Common/Skeleton/index.module.css +118 -21
  68. package/Common/Tabs/index.js +6 -0
  69. package/Common/Tabs/index.module.css +58 -40
  70. package/Common/ThemeToggle/index.js +7 -0
  71. package/Common/ThemeToggle/index.module.css +18 -11
  72. package/Common/Tooltip/index.js +8 -0
  73. package/Common/Tooltip/index.module.css +119 -29
  74. package/Containers/Article/index.js +4 -0
  75. package/Containers/Article/index.module.css +127 -58
  76. package/Containers/DocSideBar/index.js +1 -0
  77. package/Containers/Footer/index.js +22 -0
  78. package/Containers/Footer/index.module.css +51 -36
  79. package/Containers/MetaBar/index.js +12 -0
  80. package/Containers/MetaBar/index.module.css +101 -69
  81. package/Containers/NavBar/NavItem/index.js +7 -0
  82. package/Containers/NavBar/NavItem/index.module.css +50 -36
  83. package/Containers/NavBar/index.js +18 -0
  84. package/Containers/NavBar/index.module.css +176 -96
  85. package/Containers/Sidebar/ProgressionIcon/index.js +3 -0
  86. package/Containers/Sidebar/SidebarGroup/index.js +9 -0
  87. package/Containers/Sidebar/SidebarGroup/index.module.css +180 -52
  88. package/Containers/Sidebar/SidebarItem/index.js +11 -0
  89. package/Containers/Sidebar/SidebarItem/index.module.css +49 -38
  90. package/Containers/Sidebar/index.js +15 -0
  91. package/Containers/Sidebar/index.module.css +42 -24
  92. package/Icons/HexagonGrid.js +3 -0
  93. package/Icons/InstallationMethod/Choco.js +3 -0
  94. package/Icons/InstallationMethod/Devbox.js +3 -0
  95. package/Icons/InstallationMethod/Docker.js +3 -0
  96. package/Icons/InstallationMethod/FNM.js +3 -0
  97. package/Icons/InstallationMethod/Homebrew.js +3 -0
  98. package/Icons/InstallationMethod/N.js +5 -0
  99. package/Icons/InstallationMethod/NVM.js +3 -0
  100. package/Icons/InstallationMethod/Volta.js +3 -0
  101. package/Icons/InstallationMethod/{index.ts → index.js} +0 -1
  102. package/Icons/Logos/JsWhite.js +3 -0
  103. package/Icons/Logos/Nodejs.js +12 -0
  104. package/Icons/Logos/index.js +3 -0
  105. package/Icons/OperatingSystem/AIX.js +3 -0
  106. package/Icons/OperatingSystem/Apple.js +3 -0
  107. package/Icons/OperatingSystem/Linux.js +3 -0
  108. package/Icons/OperatingSystem/Microsoft.js +3 -0
  109. package/Icons/OperatingSystem/{index.ts → index.js} +0 -1
  110. package/Icons/PackageManager/Npm.js +3 -0
  111. package/Icons/PackageManager/Pnpm.js +3 -0
  112. package/Icons/PackageManager/Yarn.js +3 -0
  113. package/Icons/PackageManager/{index.ts → index.js} +0 -1
  114. package/Icons/Social/Bluesky.js +3 -0
  115. package/Icons/Social/Discord.js +3 -0
  116. package/Icons/Social/GitHub.js +3 -0
  117. package/Icons/Social/LinkedIn.js +3 -0
  118. package/Icons/Social/Mastodon.js +3 -0
  119. package/Icons/Social/Slack.js +3 -0
  120. package/Icons/Social/X.js +3 -0
  121. package/Icons/Social/{index.ts → index.js} +0 -1
  122. package/MDX/CodeTabs.js +16 -0
  123. package/package.json +6 -54
  124. package/stylelint/one-utility-class-per-line.mjs +34 -50
  125. package/stylelint/utils.mjs +19 -25
  126. package/styles/index.css +1124 -26
  127. package/types.js +1 -0
  128. package/Common/AlertBox/index.stories.tsx +0 -96
  129. package/Common/AlertBox/index.tsx +0 -24
  130. package/Common/AvatarGroup/Avatar/index.stories.tsx +0 -22
  131. package/Common/AvatarGroup/Avatar/index.tsx +0 -67
  132. package/Common/AvatarGroup/Overlay/index.stories.tsx +0 -33
  133. package/Common/AvatarGroup/Overlay/index.tsx +0 -37
  134. package/Common/AvatarGroup/__tests__/index.test.jsx +0 -55
  135. package/Common/AvatarGroup/index.stories.tsx +0 -56
  136. package/Common/AvatarGroup/index.tsx +0 -83
  137. package/Common/Badge/index.stories.tsx +0 -38
  138. package/Common/Badge/index.tsx +0 -35
  139. package/Common/BadgeGroup/index.stories.tsx +0 -35
  140. package/Common/BadgeGroup/index.tsx +0 -35
  141. package/Common/Banner/index.stories.tsx +0 -29
  142. package/Common/Banner/index.tsx +0 -18
  143. package/Common/BaseActiveLink/__tests__/index.test.jsx +0 -52
  144. package/Common/BaseActiveLink/index.tsx +0 -34
  145. package/Common/BaseButton/index.stories.tsx +0 -67
  146. package/Common/BaseButton/index.tsx +0 -59
  147. package/Common/BaseCodeBox/index.stories.tsx +0 -39
  148. package/Common/BaseCodeBox/index.tsx +0 -122
  149. package/Common/BaseCrossLink/index.stories.tsx +0 -38
  150. package/Common/BaseCrossLink/index.tsx +0 -46
  151. package/Common/BaseLinkTabs/index.stories.tsx +0 -34
  152. package/Common/BaseLinkTabs/index.tsx +0 -53
  153. package/Common/BasePagination/Ellipsis/index.stories.tsx +0 -10
  154. package/Common/BasePagination/Ellipsis/index.tsx +0 -11
  155. package/Common/BasePagination/PaginationListItem/__tests__/index.test.jsx +0 -58
  156. package/Common/BasePagination/PaginationListItem/index.stories.tsx +0 -40
  157. package/Common/BasePagination/PaginationListItem/index.tsx +0 -39
  158. package/Common/BasePagination/PrevNextArrow.tsx +0 -15
  159. package/Common/BasePagination/__tests__/index.test.jsx +0 -180
  160. package/Common/BasePagination/index.stories.tsx +0 -67
  161. package/Common/BasePagination/index.tsx +0 -77
  162. package/Common/BasePagination/useGetPageElements.tsx +0 -132
  163. package/Common/Blockquote/index.stories.tsx +0 -45
  164. package/Common/Blockquote/index.tsx +0 -11
  165. package/Common/Breadcrumbs/BreadcrumbHomeLink/index.tsx +0 -30
  166. package/Common/Breadcrumbs/BreadcrumbItem/index.tsx +0 -42
  167. package/Common/Breadcrumbs/BreadcrumbLink/index.tsx +0 -37
  168. package/Common/Breadcrumbs/BreadcrumbRoot/index.tsx +0 -20
  169. package/Common/Breadcrumbs/BreadcrumbTruncatedItem/index.tsx +0 -9
  170. package/Common/Breadcrumbs/index.stories.tsx +0 -94
  171. package/Common/Breadcrumbs/index.tsx +0 -81
  172. package/Common/ChangeHistory/index.stories.tsx +0 -130
  173. package/Common/ChangeHistory/index.tsx +0 -67
  174. package/Common/CodeTabs/index.stories.tsx +0 -73
  175. package/Common/CodeTabs/index.tsx +0 -16
  176. package/Common/DataTag/index.stories.tsx +0 -40
  177. package/Common/DataTag/index.tsx +0 -39
  178. package/Common/GlowingBackdrop/index.stories.tsx +0 -10
  179. package/Common/GlowingBackdrop/index.tsx +0 -13
  180. package/Common/LanguageDropDown/index.stories.tsx +0 -19
  181. package/Common/LanguageDropDown/index.tsx +0 -56
  182. package/Common/Modal/index.stories.tsx +0 -34
  183. package/Common/Modal/index.tsx +0 -50
  184. package/Common/NodejsLogo/index.stories.tsx +0 -14
  185. package/Common/NodejsLogo/index.tsx +0 -26
  186. package/Common/Notification/index.stories.tsx +0 -36
  187. package/Common/Notification/index.tsx +0 -34
  188. package/Common/Preview/index.stories.tsx +0 -44
  189. package/Common/Preview/index.tsx +0 -25
  190. package/Common/Select/__tests__/index.test.jsx +0 -67
  191. package/Common/Select/index.stories.tsx +0 -111
  192. package/Common/Select/index.tsx +0 -187
  193. package/Common/Separator/index.stories.tsx +0 -32
  194. package/Common/Separator/index.tsx +0 -27
  195. package/Common/Skeleton/index.tsx +0 -39
  196. package/Common/Tabs/__tests__/index.test.jsx +0 -52
  197. package/Common/Tabs/index.stories.tsx +0 -50
  198. package/Common/Tabs/index.tsx +0 -54
  199. package/Common/ThemeToggle/__tests__/index.test.jsx +0 -35
  200. package/Common/ThemeToggle/index.stories.tsx +0 -10
  201. package/Common/ThemeToggle/index.tsx +0 -15
  202. package/Common/Tooltip/index.stories.tsx +0 -73
  203. package/Common/Tooltip/index.tsx +0 -48
  204. package/Containers/Article/index.stories.tsx +0 -39
  205. package/Containers/Article/index.tsx +0 -9
  206. package/Containers/DocSideBar/index.tsx +0 -0
  207. package/Containers/Footer/index.stories.tsx +0 -27
  208. package/Containers/Footer/index.tsx +0 -95
  209. package/Containers/MetaBar/__tests__/index.test.jsx +0 -63
  210. package/Containers/MetaBar/index.stories.tsx +0 -80
  211. package/Containers/MetaBar/index.tsx +0 -72
  212. package/Containers/NavBar/NavItem/index.stories.tsx +0 -38
  213. package/Containers/NavBar/NavItem/index.tsx +0 -44
  214. package/Containers/NavBar/index.stories.tsx +0 -45
  215. package/Containers/NavBar/index.tsx +0 -94
  216. package/Containers/Sidebar/ProgressionIcon/index.tsx +0 -16
  217. package/Containers/Sidebar/SidebarGroup/index.stories.tsx +0 -36
  218. package/Containers/Sidebar/SidebarGroup/index.tsx +0 -49
  219. package/Containers/Sidebar/SidebarItem/index.stories.tsx +0 -15
  220. package/Containers/Sidebar/SidebarItem/index.tsx +0 -43
  221. package/Containers/Sidebar/index.stories.tsx +0 -88
  222. package/Containers/Sidebar/index.tsx +0 -70
  223. package/Icons/HexagonGrid.stories.tsx +0 -10
  224. package/Icons/HexagonGrid.tsx +0 -1434
  225. package/Icons/InstallationMethod/Choco.tsx +0 -78
  226. package/Icons/InstallationMethod/Devbox.tsx +0 -21
  227. package/Icons/InstallationMethod/Docker.tsx +0 -20
  228. package/Icons/InstallationMethod/FNM.tsx +0 -132
  229. package/Icons/InstallationMethod/Homebrew.tsx +0 -69
  230. package/Icons/InstallationMethod/N.tsx +0 -32
  231. package/Icons/InstallationMethod/NVM.tsx +0 -63
  232. package/Icons/InstallationMethod/Volta.tsx +0 -34
  233. package/Icons/Logos/JsGreen.tsx +0 -24
  234. package/Icons/Logos/JsWhite.tsx +0 -37
  235. package/Icons/Logos/Nodejs.tsx +0 -372
  236. package/Icons/Logos/NodejsStackedBlack.tsx +0 -98
  237. package/Icons/Logos/NodejsStackedDark.tsx +0 -124
  238. package/Icons/Logos/NodejsStackedLight.tsx +0 -123
  239. package/Icons/Logos/NodejsStackedWhite.tsx +0 -98
  240. package/Icons/Logos/index.ts +0 -17
  241. package/Icons/OperatingSystem/AIX.tsx +0 -46
  242. package/Icons/OperatingSystem/Apple.tsx +0 -23
  243. package/Icons/OperatingSystem/Linux.tsx +0 -969
  244. package/Icons/OperatingSystem/Microsoft.tsx +0 -19
  245. package/Icons/PackageManager/Npm.tsx +0 -21
  246. package/Icons/PackageManager/Pnpm.tsx +0 -22
  247. package/Icons/PackageManager/Yarn.tsx +0 -22
  248. package/Icons/Social/Bluesky.tsx +0 -19
  249. package/Icons/Social/Discord.tsx +0 -20
  250. package/Icons/Social/GitHub.tsx +0 -16
  251. package/Icons/Social/LinkedIn.tsx +0 -16
  252. package/Icons/Social/Mastodon.tsx +0 -36
  253. package/Icons/Social/Slack.tsx +0 -31
  254. package/Icons/Social/X.tsx +0 -16
  255. package/MDX/CodeTabs.tsx +0 -47
  256. package/stylelint/__tests__/index.test.mjs +0 -80
  257. package/styles/animations.css +0 -47
  258. package/styles/base.css +0 -17
  259. package/styles/effects.css +0 -12
  260. package/styles/markdown.css +0 -173
  261. package/styles/theme.css +0 -175
  262. package/types.ts +0 -25
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Fragment, useMemo } from 'react';
3
+ import styles from './index.module.css';
4
+ const MetaBar = ({ items, headings, as: Component = 'a', heading, }) => {
5
+ // The default depth of headings to display in the table of contents.
6
+ const { minDepth = 2, items: headingItems = [] } = headings || {};
7
+ const filteredHeadings = useMemo(() => headingItems.filter(({ depth }) => depth >= minDepth && depth <= 4), [minDepth, headingItems]);
8
+ return (_jsx("div", { className: styles.wrapper, children: _jsxs("dl", { children: [Object.entries(items)
9
+ .filter(([, value]) => !!value)
10
+ .map(([key, value]) => (_jsxs(Fragment, { children: [_jsx("dt", { children: key }), _jsx("dd", { children: value })] }, key))), filteredHeadings.length > 0 && (_jsxs(_Fragment, { children: [_jsx("dt", { children: heading }), _jsx("dd", { children: _jsx("ol", { children: filteredHeadings.map(head => (_jsx("li", { className: head.depth === 3 ? 'pl-2' : head.depth === 4 ? 'pl-4' : '', children: _jsxs(Component, { href: `#${head?.data?.id}`, children: [' ', head.value] }) }, head.value))) }) })] }))] }) }));
11
+ };
12
+ export default MetaBar;
@@ -1,91 +1,123 @@
1
- @reference "../../styles/index.css";
2
-
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
3
2
  .wrapper {
4
- @apply flex
5
- w-full
6
- flex-col
7
- items-start
8
- gap-8
9
- border-neutral-200
10
- px-4
11
- py-6
12
- [overflow-wrap:anywhere]
13
- lg:sticky
14
- lg:top-0
15
- lg:max-h-screen
16
- lg:px-6
17
- dark:border-neutral-900;
18
-
3
+ display: flex;
4
+ width: 100%;
5
+ flex-direction: column;
6
+ align-items: flex-start;
7
+ gap: calc(var(--spacing, 0.25rem)*8);
8
+ border-color: var(--color-neutral-200, #e9edf0);
9
+ padding-inline: calc(var(--spacing, 0.25rem)*4);
10
+ padding-block: calc(var(--spacing, 0.25rem)*6);
11
+ overflow-wrap: anywhere;
12
+ @media (width >= 64rem) {
13
+ position: sticky;
14
+ }
15
+ @media (width >= 64rem) {
16
+ top: calc(var(--spacing, 0.25rem)*0);
17
+ }
18
+ @media (width >= 64rem) {
19
+ max-height: 100vh;
20
+ }
21
+ @media (width >= 64rem) {
22
+ padding-inline: calc(var(--spacing, 0.25rem)*6);
23
+ }
24
+ &:where([data-theme=dark], [data-theme=dark] *) {
25
+ border-color: var(--color-neutral-900, #2c3437);
26
+ }
19
27
  dl {
20
- @apply flex
21
- w-full
22
- flex-col
23
- gap-1.5
24
- pb-12
25
- [scrollbar-width:none]
26
- lg:max-h-[calc(100vh-var(--header-height))]
27
- lg:overflow-y-auto
28
- [&::-webkit-scrollbar]:hidden;
28
+ display: flex;
29
+ width: 100%;
30
+ flex-direction: column;
31
+ gap: calc(var(--spacing, 0.25rem)*1.5);
32
+ padding-bottom: calc(var(--spacing, 0.25rem)*12);
33
+ scrollbar-width: none;
34
+ @media (width >= 64rem) {
35
+ max-height: calc(100vh - var(--header-height));
36
+ }
37
+ @media (width >= 64rem) {
38
+ overflow-y: auto;
39
+ }
40
+ &::-webkit-scrollbar {
41
+ display: none;
42
+ }
29
43
  }
30
-
31
44
  dt {
32
- @apply mb-2
33
- text-sm
34
- font-medium
35
- text-neutral-800
36
- dark:text-neutral-200;
45
+ margin-bottom: calc(var(--spacing, 0.25rem)*2);
46
+ font-size: var(--text-sm, 0.875rem);
47
+ line-height: var(--tw-leading, var(--text-sm--line-height, 1.42857));
48
+ --tw-font-weight: var(--font-weight-medium, 500);
49
+ font-weight: var(--font-weight-medium, 500);
50
+ color: var(--color-neutral-800, #556066);
51
+ &:where([data-theme=dark], [data-theme=dark] *) {
52
+ color: var(--color-neutral-200, #e9edf0);
53
+ }
37
54
  }
38
-
39
55
  dd {
40
- @apply mb-8
41
- flex
42
- items-center
43
- gap-2
44
- text-sm
45
- text-neutral-900
46
- dark:text-white;
47
-
56
+ margin-bottom: calc(var(--spacing, 0.25rem)*8);
57
+ display: flex;
58
+ align-items: center;
59
+ gap: calc(var(--spacing, 0.25rem)*2);
60
+ font-size: var(--text-sm, 0.875rem);
61
+ line-height: var(--tw-leading, var(--text-sm--line-height, 1.42857));
62
+ color: var(--color-neutral-900, #2c3437);
63
+ &:where([data-theme=dark], [data-theme=dark] *) {
64
+ color: var(--color-white, #fff);
65
+ }
48
66
  a {
49
- @apply max-xs:inline-block
50
- max-xs:py-1
51
- font-semibold
52
- text-neutral-900
53
- underline
54
- dark:text-white;
55
-
67
+ --tw-font-weight: var(--font-weight-semibold, 600);
68
+ font-weight: var(--font-weight-semibold, 600);
69
+ color: var(--color-neutral-900, #2c3437);
70
+ text-decoration-line: underline;
71
+ @media (width < 670px) {
72
+ display: inline-block;
73
+ }
74
+ @media (width < 670px) {
75
+ padding-block: calc(var(--spacing, 0.25rem)*1);
76
+ }
77
+ &:where([data-theme=dark], [data-theme=dark] *) {
78
+ color: var(--color-white, #fff);
79
+ }
56
80
  &:hover {
57
- @apply text-neutral-800
58
- dark:text-neutral-200;
81
+ color: var(--color-neutral-700, #6e7b83);
82
+ &:where([data-theme=dark], [data-theme=dark] *) {
83
+ color: var(--color-neutral-500, #b1bcc2);
84
+ }
59
85
  }
60
86
  }
61
-
62
87
  ol {
63
- @apply flex
64
- w-full
65
- list-none
66
- flex-col
67
- gap-1.5
68
- p-0;
88
+ display: flex;
89
+ width: 100%;
90
+ list-style-type: none;
91
+ flex-direction: column;
92
+ gap: calc(var(--spacing, 0.25rem)*1.5);
93
+ padding: calc(var(--spacing, 0.25rem)*0);
69
94
  }
70
-
71
95
  svg {
72
- @apply size-4
73
- text-neutral-600
74
- dark:text-neutral-400;
96
+ width: calc(var(--spacing, 0.25rem)*4);
97
+ height: calc(var(--spacing, 0.25rem)*4);
98
+ color: var(--color-neutral-600, #929fa5);
99
+ &:where([data-theme=dark], [data-theme=dark] *) {
100
+ color: var(--color-neutral-400, #cbd4d9);
101
+ }
75
102
  }
76
-
77
103
  &:last-child {
78
- @apply mb-0;
104
+ margin-bottom: calc(var(--spacing, 0.25rem)*0);
79
105
  }
80
106
  }
81
-
82
107
  [data-on-dark] {
83
- @apply hidden
84
- dark:block;
108
+ display: none;
109
+ &:where([data-theme=dark], [data-theme=dark] *) {
110
+ display: block;
111
+ }
85
112
  }
86
-
87
113
  [data-on-light] {
88
- @apply block
89
- dark:hidden;
114
+ display: block;
115
+ &:where([data-theme=dark], [data-theme=dark] *) {
116
+ display: none;
117
+ }
90
118
  }
91
119
  }
120
+ @property --tw-font-weight {
121
+ syntax: "*";
122
+ inherits: false;
123
+ }
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ArrowUpRightIcon } from '@heroicons/react/24/solid';
3
+ import classNames from 'classnames';
4
+ import BaseActiveLink from '#ui/Common/BaseActiveLink';
5
+ import styles from './index.module.css';
6
+ const NavItem = ({ href = '', type = 'nav', children, className, target, ...props }) => (_jsxs(BaseActiveLink, { target: target, href: href, className: classNames(styles.navItem, styles[type], className), activeClassName: styles.active, allowSubPath: href.startsWith('/'), ...props, children: [_jsx("span", { className: styles.label, children: children }), target === '_blank' && _jsx(ArrowUpRightIcon, { className: styles.icon })] }));
7
+ export default NavItem;
@@ -1,60 +1,74 @@
1
- @reference "../../../styles/index.css";
2
-
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
3
2
  .navItem {
4
- @apply inline-flex
5
- items-center
6
- gap-2
7
- rounded-sm
8
- px-3
9
- py-2
10
- motion-safe:transition-colors;
11
-
3
+ display: inline-flex;
4
+ align-items: center;
5
+ gap: calc(var(--spacing, 0.25rem)*2);
6
+ border-radius: var(--radius-sm, 0.25rem);
7
+ padding-inline: calc(var(--spacing, 0.25rem)*3);
8
+ padding-block: calc(var(--spacing, 0.25rem)*2);
9
+ @media (prefers-reduced-motion: no-preference) {
10
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
11
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
12
+ transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
13
+ }
12
14
  .label {
13
- @apply text-base
14
- font-medium
15
- lg:text-sm;
15
+ font-size: var(--text-base, 1rem);
16
+ line-height: var(--tw-leading, var(--text-base--line-height, 1.5));
17
+ --tw-font-weight: var(--font-weight-medium, 500);
18
+ font-weight: var(--font-weight-medium, 500);
19
+ @media (width >= 64rem) {
20
+ font-size: var(--text-sm, 0.875rem);
21
+ line-height: var(--tw-leading, var(--text-sm--line-height, 1.42857));
22
+ }
16
23
  }
17
-
18
24
  .icon {
19
- @apply size-3
20
- text-neutral-500
21
- dark:text-neutral-200;
25
+ width: calc(var(--spacing, 0.25rem)*3);
26
+ height: calc(var(--spacing, 0.25rem)*3);
27
+ color: var(--color-neutral-500, #b1bcc2);
28
+ &:where([data-theme=dark], [data-theme=dark] *) {
29
+ color: var(--color-neutral-200, #e9edf0);
30
+ }
22
31
  }
23
-
24
32
  &:hover {
25
- @apply bg-neutral-100
26
- dark:bg-neutral-900;
33
+ background-color: var(--color-neutral-100, #f6f7f9);
34
+ &:where([data-theme=dark], [data-theme=dark] *) {
35
+ background-color: var(--color-neutral-900, #2c3437);
36
+ }
27
37
  }
28
-
29
38
  &.nav {
30
39
  .label {
31
- @apply text-neutral-900
32
- dark:text-white;
40
+ color: var(--color-neutral-900, #2c3437);
41
+ &:where([data-theme=dark], [data-theme=dark] *) {
42
+ color: var(--color-white, #fff);
43
+ }
33
44
  }
34
-
35
45
  &.active {
36
- @apply bg-green-600;
37
-
46
+ background-color: var(--color-green-600, #417e38);
38
47
  .label {
39
- @apply text-white;
48
+ color: var(--color-white, #fff);
40
49
  }
41
-
42
50
  .icon {
43
- @apply text-white
44
- opacity-50;
51
+ color: var(--color-white, #fff);
52
+ opacity: 50%;
45
53
  }
46
54
  }
47
55
  }
48
-
49
56
  &.footer {
50
57
  .label {
51
- @apply text-neutral-800
52
- dark:text-white;
58
+ color: var(--color-neutral-800, #556066);
59
+ &:where([data-theme=dark], [data-theme=dark] *) {
60
+ color: var(--color-white, #fff);
61
+ }
53
62
  }
54
-
55
63
  &:hover {
56
- @apply bg-neutral-100
57
- dark:bg-neutral-900;
64
+ background-color: var(--color-neutral-100, #f6f7f9);
65
+ &:where([data-theme=dark], [data-theme=dark] *) {
66
+ background-color: var(--color-neutral-900, #2c3437);
67
+ }
58
68
  }
59
69
  }
60
70
  }
71
+ @property --tw-font-weight {
72
+ syntax: "*";
73
+ inherits: false;
74
+ }
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import Hamburger from '@heroicons/react/24/solid/Bars3Icon';
4
+ import XMark from '@heroicons/react/24/solid/XMarkIcon';
5
+ import * as Label from '@radix-ui/react-label';
6
+ import classNames from 'classnames';
7
+ import { useState } from 'react';
8
+ import NavItem from '#ui/Containers/NavBar/NavItem';
9
+ import style from './index.module.css';
10
+ const navInteractionIcons = {
11
+ show: _jsx(Hamburger, { className: style.navInteractionIcon }),
12
+ close: _jsx(XMark, { className: style.navInteractionIcon }),
13
+ };
14
+ const NavBar = ({ children, Logo, as: Component = 'a', navItems, pathname, sidebarItemTogglerAriaLabel, }) => {
15
+ const [isMenuOpen, setIsMenuOpen] = useState(false);
16
+ return (_jsxs("nav", { className: style.container, children: [_jsxs("div", { className: style.nodeIconAndMobileItemsToggler, children: [_jsx(Component, { className: style.nodeIconWrapper, href: "/", "aria-label": "Home", children: _jsx(Logo, {}) }), _jsx(Label.Root, { className: style.sidebarItemTogglerLabel, htmlFor: "sidebarItemToggler", role: "button", "aria-label": sidebarItemTogglerAriaLabel, children: navInteractionIcons[isMenuOpen ? 'close' : 'show'] })] }), _jsx("input", { className: classNames(['peer', style.sidebarItemToggler]), id: "sidebarItemToggler", type: "checkbox", onChange: e => setIsMenuOpen(() => e.target.checked), "aria-label": sidebarItemTogglerAriaLabel, tabIndex: -1 }), _jsxs("div", { className: `${style.main} hidden peer-checked:flex`, children: [_jsx("div", { className: style.navItems, children: navItems.map(({ text, link, target }) => (_jsx(NavItem, { pathname: pathname, as: Component, href: link, target: target, children: text }, link))) }), _jsx("div", { className: style.actionsWrapper, children: children })] })] }));
17
+ };
18
+ export default NavBar;
@@ -1,125 +1,205 @@
1
- @reference "../../styles/index.css";
2
-
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
3
2
  .container {
4
- @apply border-neutral-200
5
- bg-white
6
- lg:flex
7
- lg:h-16
8
- lg:flex-row
9
- lg:items-center
10
- lg:gap-8
11
- lg:border-b
12
- lg:px-8
13
- dark:border-neutral-900
14
- dark:bg-neutral-950;
3
+ border-color: var(--color-neutral-200, #e9edf0);
4
+ background-color: var(--color-white, #fff);
5
+ @media (width >= 64rem) {
6
+ display: flex;
7
+ }
8
+ @media (width >= 64rem) {
9
+ height: calc(var(--spacing, 0.25rem)*16);
10
+ }
11
+ @media (width >= 64rem) {
12
+ flex-direction: row;
13
+ }
14
+ @media (width >= 64rem) {
15
+ align-items: center;
16
+ }
17
+ @media (width >= 64rem) {
18
+ gap: calc(var(--spacing, 0.25rem)*8);
19
+ }
20
+ @media (width >= 64rem) {
21
+ border-bottom-style: var(--tw-border-style);
22
+ border-bottom-width: 1px;
23
+ }
24
+ @media (width >= 64rem) {
25
+ padding-inline: calc(var(--spacing, 0.25rem)*8);
26
+ }
27
+ &:where([data-theme=dark], [data-theme=dark] *) {
28
+ border-color: var(--color-neutral-900, #2c3437);
29
+ }
30
+ &:where([data-theme=dark], [data-theme=dark] *) {
31
+ background-color: var(--color-neutral-950, #0d121c);
32
+ }
15
33
  }
16
-
17
34
  .nodeIconAndMobileItemsToggler {
18
- @apply flex
19
- h-16
20
- shrink-0
21
- items-center
22
- border-b
23
- border-neutral-200
24
- px-4
25
- lg:flex
26
- lg:h-full
27
- lg:items-center
28
- lg:border-0
29
- lg:px-0
30
- dark:border-neutral-900;
35
+ display: flex;
36
+ height: calc(var(--spacing, 0.25rem)*16);
37
+ flex-shrink: 0;
38
+ align-items: center;
39
+ border-bottom-style: var(--tw-border-style);
40
+ border-bottom-width: 1px;
41
+ border-color: var(--color-neutral-200, #e9edf0);
42
+ padding-inline: calc(var(--spacing, 0.25rem)*4);
43
+ @media (width >= 64rem) {
44
+ display: flex;
45
+ }
46
+ @media (width >= 64rem) {
47
+ height: 100%;
48
+ }
49
+ @media (width >= 64rem) {
50
+ align-items: center;
51
+ }
52
+ @media (width >= 64rem) {
53
+ border-style: var(--tw-border-style);
54
+ border-width: 0px;
55
+ }
56
+ @media (width >= 64rem) {
57
+ padding-inline: calc(var(--spacing, 0.25rem)*0);
58
+ }
59
+ &:where([data-theme=dark], [data-theme=dark] *) {
60
+ border-color: var(--color-neutral-900, #2c3437);
61
+ }
31
62
  }
32
-
33
63
  .sidebarItemToggler {
34
- @apply absolute
35
- right-4
36
- -z-10
37
- -translate-y-[200%]
38
- appearance-none
39
- opacity-0;
64
+ position: absolute;
65
+ right: calc(var(--spacing, 0.25rem)*4);
66
+ z-index: -10;
67
+ --tw-translate-y: -200%;
68
+ translate: var(--tw-translate-x) var(--tw-translate-y);
69
+ appearance: none;
70
+ opacity: 0%;
40
71
  }
41
-
42
72
  .nodeIconWrapper {
43
- @apply h-[30px]
44
- flex-1;
73
+ height: 30px;
74
+ flex: 1;
45
75
  }
46
-
47
76
  .navInteractionIcon,
48
77
  .sidebarItemToggler {
49
- @apply size-6;
78
+ width: calc(var(--spacing, 0.25rem)*6);
79
+ height: calc(var(--spacing, 0.25rem)*6);
50
80
  }
51
-
52
81
  .sidebarItemTogglerLabel {
53
- @apply block
54
- cursor-pointer
55
- lg:hidden;
82
+ display: block;
83
+ cursor: pointer;
84
+ @media (width >= 64rem) {
85
+ display: none;
86
+ }
56
87
  }
57
-
58
88
  .main {
59
- @apply flex-1
60
- flex-col
61
- justify-between
62
- gap-4
63
- lg:flex
64
- lg:flex-row
65
- lg:items-center;
89
+ flex: 1;
90
+ flex-direction: column;
91
+ justify-content: space-between;
92
+ gap: calc(var(--spacing, 0.25rem)*4);
93
+ @media (width >= 64rem) {
94
+ display: flex;
95
+ }
96
+ @media (width >= 64rem) {
97
+ flex-direction: row;
98
+ }
99
+ @media (width >= 64rem) {
100
+ align-items: center;
101
+ }
66
102
  }
67
-
68
103
  .navItems {
69
- @apply flex
70
- flex-col
71
- gap-0
72
- border-b
73
- border-neutral-200
74
- p-4
75
- lg:flex-1
76
- lg:flex-row
77
- lg:gap-1
78
- lg:border-0
79
- lg:p-0
80
- dark:border-neutral-900;
104
+ display: flex;
105
+ flex-direction: column;
106
+ gap: calc(var(--spacing, 0.25rem)*0);
107
+ border-bottom-style: var(--tw-border-style);
108
+ border-bottom-width: 1px;
109
+ border-color: var(--color-neutral-200, #e9edf0);
110
+ padding: calc(var(--spacing, 0.25rem)*4);
111
+ @media (width >= 64rem) {
112
+ flex: 1;
113
+ }
114
+ @media (width >= 64rem) {
115
+ flex-direction: row;
116
+ }
117
+ @media (width >= 64rem) {
118
+ gap: calc(var(--spacing, 0.25rem)*1);
119
+ }
120
+ @media (width >= 64rem) {
121
+ border-style: var(--tw-border-style);
122
+ border-width: 0px;
123
+ }
124
+ @media (width >= 64rem) {
125
+ padding: calc(var(--spacing, 0.25rem)*0);
126
+ }
127
+ &:where([data-theme=dark], [data-theme=dark] *) {
128
+ border-color: var(--color-neutral-900, #2c3437);
129
+ }
81
130
  }
82
-
83
131
  .actionsWrapper {
84
- @apply flex
85
- flex-row
86
- flex-wrap
87
- items-center
88
- justify-between
89
- gap-2
90
- border-b
91
- border-neutral-200
92
- p-4
93
- sm:flex-nowrap
94
- lg:basis-96
95
- lg:border-0
96
- lg:p-0
97
- dark:border-neutral-900;
132
+ display: flex;
133
+ flex-direction: row;
134
+ flex-wrap: wrap;
135
+ align-items: center;
136
+ justify-content: space-between;
137
+ gap: calc(var(--spacing, 0.25rem)*2);
138
+ border-bottom-style: var(--tw-border-style);
139
+ border-bottom-width: 1px;
140
+ border-color: var(--color-neutral-200, #e9edf0);
141
+ padding: calc(var(--spacing, 0.25rem)*4);
142
+ @media (width >= 40rem) {
143
+ flex-wrap: nowrap;
144
+ }
145
+ @media (width >= 64rem) {
146
+ flex-basis: calc(var(--spacing, 0.25rem)*96);
147
+ }
148
+ @media (width >= 64rem) {
149
+ border-style: var(--tw-border-style);
150
+ border-width: 0px;
151
+ }
152
+ @media (width >= 64rem) {
153
+ padding: calc(var(--spacing, 0.25rem)*0);
154
+ }
155
+ &:where([data-theme=dark], [data-theme=dark] *) {
156
+ border-color: var(--color-neutral-900, #2c3437);
157
+ }
98
158
  }
99
-
100
159
  span.searchButtonSkeleton {
101
- @apply my-px
102
- mr-2
103
- flex-grow
104
- rounded-xl;
105
-
160
+ margin-block: 1px;
161
+ margin-right: calc(var(--spacing, 0.25rem)*2);
162
+ flex-grow: 1;
163
+ border-radius: var(--radius-xl, 0.75rem);
106
164
  &:empty {
107
- @apply h-10;
165
+ height: calc(var(--spacing, 0.25rem)*10);
108
166
  }
109
167
  }
110
-
111
168
  .ghIconWrapper {
112
- @apply size-9
113
- rounded-md
114
- p-2;
115
-
169
+ width: calc(var(--spacing, 0.25rem)*9);
170
+ height: calc(var(--spacing, 0.25rem)*9);
171
+ border-radius: var(--radius-md, 0.375rem);
172
+ padding: calc(var(--spacing, 0.25rem)*2);
116
173
  svg {
117
- @apply fill-neutral-700
118
- dark:fill-neutral-300;
174
+ fill: var(--color-neutral-700, #6e7b83);
175
+ &:where([data-theme=dark], [data-theme=dark] *) {
176
+ fill: var(--color-neutral-300, #d9e1e4);
177
+ }
119
178
  }
120
-
121
179
  &:hover {
122
- @apply bg-neutral-100
123
- dark:bg-neutral-900;
180
+ background-color: var(--color-neutral-100, #f6f7f9);
181
+ &:where([data-theme=dark], [data-theme=dark] *) {
182
+ background-color: var(--color-neutral-900, #2c3437);
183
+ }
124
184
  }
125
185
  }
186
+ @property --tw-border-style {
187
+ syntax: "*";
188
+ inherits: false;
189
+ initial-value: solid;
190
+ }
191
+ @property --tw-translate-x {
192
+ syntax: "*";
193
+ inherits: false;
194
+ initial-value: 0;
195
+ }
196
+ @property --tw-translate-y {
197
+ syntax: "*";
198
+ inherits: false;
199
+ initial-value: 0;
200
+ }
201
+ @property --tw-translate-z {
202
+ syntax: "*";
203
+ inherits: false;
204
+ initial-value: 0;
205
+ }
@@ -0,0 +1,3 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ const ProgressionIcon = props => (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "18", viewBox: "0 0 16 18", fill: "none", ...props, children: _jsx("path", { d: "M9 3.26795L8 2.6906L7 3.26795L3.5359 5.26795L2.5359 5.8453V7V11V12.1547L3.5359 12.7321L7 14.7321L8 15.3094L9 14.7321L12.4641 12.7321L13.4641 12.1547V11V7V5.8453L12.4641 5.26795L9 3.26795Z" }) }));
3
+ export default ProgressionIcon;
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import classNames from 'classnames';
3
+ import SidebarItem from '#ui/Containers/Sidebar/SidebarItem';
4
+ import styles from './index.module.css';
5
+ const SidebarGroup = ({ groupName, items, showProgressionIcons, className, ...props }) => (_jsxs("section", { className: classNames({
6
+ [styles.group]: true,
7
+ [styles.progression]: showProgressionIcons,
8
+ }, className), children: [_jsx("label", { className: styles.groupName, children: groupName }), _jsx("ul", { className: styles.itemList, children: items.map(({ label, link }) => (_jsx(SidebarItem, { label: label, link: link, showProgressionIcons: showProgressionIcons, ...props }, link))) })] }));
9
+ export default SidebarGroup;