@node-core/ui-components 1.0.1-1d5a7f279720e5e4da66f43d06a6a9a14cb7c2d2 → 1.0.1-2a5d26feb99da533fd0280486510163fa30d4322

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 (266) hide show
  1. package/Common/AlertBox/index.js +5 -0
  2. package/Common/AlertBox/index.module.css +53 -46
  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 -15
  9. package/Common/Badge/index.js +7 -0
  10. package/Common/Badge/index.module.css +48 -26
  11. package/Common/BadgeGroup/index.js +6 -0
  12. package/Common/BadgeGroup/index.module.css +130 -54
  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 -102
  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 +198 -0
  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 +49 -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 +188 -22
  88. package/Containers/Sidebar/SidebarItem/index.js +11 -0
  89. package/Containers/Sidebar/SidebarItem/index.module.css +60 -28
  90. package/Containers/Sidebar/index.js +15 -0
  91. package/Containers/Sidebar/index.module.css +44 -27
  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 +10 -58
  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 -73
  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 -87
  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/CodeTabs/index.stories.tsx +0 -73
  173. package/Common/CodeTabs/index.tsx +0 -16
  174. package/Common/DataTag/index.stories.tsx +0 -40
  175. package/Common/DataTag/index.tsx +0 -39
  176. package/Common/GlowingBackdrop/index.stories.tsx +0 -10
  177. package/Common/GlowingBackdrop/index.tsx +0 -13
  178. package/Common/LanguageDropDown/index.stories.tsx +0 -19
  179. package/Common/LanguageDropDown/index.tsx +0 -56
  180. package/Common/Modal/index.stories.tsx +0 -32
  181. package/Common/Modal/index.tsx +0 -48
  182. package/Common/NodejsLogo/index.stories.tsx +0 -14
  183. package/Common/NodejsLogo/index.tsx +0 -26
  184. package/Common/Notification/index.stories.tsx +0 -36
  185. package/Common/Notification/index.tsx +0 -34
  186. package/Common/Preview/index.stories.tsx +0 -44
  187. package/Common/Preview/index.tsx +0 -25
  188. package/Common/ProgressionSidebar/ProgressionSidebarGroup/index.module.css +0 -47
  189. package/Common/ProgressionSidebar/ProgressionSidebarGroup/index.tsx +0 -35
  190. package/Common/ProgressionSidebar/ProgressionSidebarIcon/index.tsx +0 -16
  191. package/Common/ProgressionSidebar/ProgressionSidebarItem/index.module.css +0 -39
  192. package/Common/ProgressionSidebar/ProgressionSidebarItem/index.tsx +0 -32
  193. package/Common/ProgressionSidebar/index.module.css +0 -30
  194. package/Common/ProgressionSidebar/index.stories.tsx +0 -79
  195. package/Common/ProgressionSidebar/index.tsx +0 -59
  196. package/Common/Select/__tests__/index.test.jsx +0 -67
  197. package/Common/Select/index.stories.tsx +0 -111
  198. package/Common/Select/index.tsx +0 -187
  199. package/Common/Separator/index.stories.tsx +0 -32
  200. package/Common/Separator/index.tsx +0 -27
  201. package/Common/Skeleton/index.tsx +0 -39
  202. package/Common/Tabs/__tests__/index.test.jsx +0 -52
  203. package/Common/Tabs/index.stories.tsx +0 -50
  204. package/Common/Tabs/index.tsx +0 -54
  205. package/Common/ThemeToggle/__tests__/index.test.jsx +0 -35
  206. package/Common/ThemeToggle/index.stories.tsx +0 -10
  207. package/Common/ThemeToggle/index.tsx +0 -15
  208. package/Common/Tooltip/index.stories.tsx +0 -73
  209. package/Common/Tooltip/index.tsx +0 -48
  210. package/Containers/Article/index.stories.tsx +0 -39
  211. package/Containers/Article/index.tsx +0 -9
  212. package/Containers/Footer/index.stories.tsx +0 -27
  213. package/Containers/Footer/index.tsx +0 -95
  214. package/Containers/MetaBar/__tests__/index.test.jsx +0 -63
  215. package/Containers/MetaBar/index.stories.tsx +0 -80
  216. package/Containers/MetaBar/index.tsx +0 -72
  217. package/Containers/NavBar/NavItem/index.stories.tsx +0 -38
  218. package/Containers/NavBar/NavItem/index.tsx +0 -44
  219. package/Containers/NavBar/index.stories.tsx +0 -45
  220. package/Containers/NavBar/index.tsx +0 -94
  221. package/Containers/Sidebar/SidebarGroup/index.stories.tsx +0 -36
  222. package/Containers/Sidebar/SidebarGroup/index.tsx +0 -30
  223. package/Containers/Sidebar/SidebarItem/index.stories.tsx +0 -15
  224. package/Containers/Sidebar/SidebarItem/index.tsx +0 -26
  225. package/Containers/Sidebar/index.stories.tsx +0 -84
  226. package/Containers/Sidebar/index.tsx +0 -58
  227. package/Icons/HexagonGrid.stories.tsx +0 -10
  228. package/Icons/HexagonGrid.tsx +0 -1434
  229. package/Icons/InstallationMethod/Choco.tsx +0 -78
  230. package/Icons/InstallationMethod/Devbox.tsx +0 -21
  231. package/Icons/InstallationMethod/Docker.tsx +0 -20
  232. package/Icons/InstallationMethod/FNM.tsx +0 -132
  233. package/Icons/InstallationMethod/Homebrew.tsx +0 -69
  234. package/Icons/InstallationMethod/N.tsx +0 -32
  235. package/Icons/InstallationMethod/NVM.tsx +0 -63
  236. package/Icons/InstallationMethod/Volta.tsx +0 -34
  237. package/Icons/Logos/JsGreen.tsx +0 -24
  238. package/Icons/Logos/JsWhite.tsx +0 -37
  239. package/Icons/Logos/Nodejs.tsx +0 -188
  240. package/Icons/Logos/NodejsStackedBlack.tsx +0 -98
  241. package/Icons/Logos/NodejsStackedDark.tsx +0 -124
  242. package/Icons/Logos/NodejsStackedLight.tsx +0 -123
  243. package/Icons/Logos/NodejsStackedWhite.tsx +0 -98
  244. package/Icons/Logos/index.ts +0 -17
  245. package/Icons/OperatingSystem/AIX.tsx +0 -46
  246. package/Icons/OperatingSystem/Apple.tsx +0 -23
  247. package/Icons/OperatingSystem/Linux.tsx +0 -969
  248. package/Icons/OperatingSystem/Microsoft.tsx +0 -19
  249. package/Icons/PackageManager/Npm.tsx +0 -21
  250. package/Icons/PackageManager/Pnpm.tsx +0 -22
  251. package/Icons/PackageManager/Yarn.tsx +0 -22
  252. package/Icons/Social/Bluesky.tsx +0 -19
  253. package/Icons/Social/Discord.tsx +0 -20
  254. package/Icons/Social/GitHub.tsx +0 -16
  255. package/Icons/Social/LinkedIn.tsx +0 -16
  256. package/Icons/Social/Mastodon.tsx +0 -36
  257. package/Icons/Social/Slack.tsx +0 -31
  258. package/Icons/Social/X.tsx +0 -16
  259. package/MDX/CodeTabs.tsx +0 -47
  260. package/stylelint/__tests__/index.test.mjs +0 -80
  261. package/styles/animations.css +0 -47
  262. package/styles/base.css +0 -17
  263. package/styles/effects.css +0 -12
  264. package/styles/markdown.css +0 -173
  265. package/styles/theme.css +0 -175
  266. package/types.ts +0 -25
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import classNames from 'classnames';
3
+ import PrevNextArrow from '#ui/Common/BasePagination/PrevNextArrow';
4
+ import styles from './index.module.css';
5
+ const BaseCrossLink = ({ type, label, text, link, as: Component = 'a', }) => {
6
+ return (_jsxs(Component, { className: styles.crossLink, href: link, children: [_jsxs("span", { className: classNames(styles.header, {
7
+ [styles.reverse]: type === 'next',
8
+ }), children: [_jsx(PrevNextArrow, { className: styles.icon, type: type }), label] }), _jsx("span", { className: classNames(styles.content, {
9
+ [styles.reverse]: type === 'next',
10
+ }), children: text })] }));
11
+ };
12
+ export default BaseCrossLink;
@@ -1,51 +1,69 @@
1
- @reference "../../styles/index.css";
2
-
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
3
2
  .crossLink {
4
- @apply flex
5
- flex-col
6
- items-start
7
- gap-2
8
- truncate
9
- rounded-sm
10
- border
11
- border-solid
12
- border-neutral-300
13
- bg-white
14
- p-3
15
- no-underline
16
- dark:border-neutral-900
17
- dark:bg-neutral-950;
18
-
3
+ display: flex;
4
+ flex-direction: column;
5
+ align-items: flex-start;
6
+ gap: calc(var(--spacing, 0.25rem)*2);
7
+ overflow: hidden;
8
+ text-overflow: ellipsis;
9
+ white-space: nowrap;
10
+ border-radius: var(--radius-sm, 0.25rem);
11
+ border-style: var(--tw-border-style);
12
+ border-width: 1px;
13
+ --tw-border-style: solid;
14
+ border-style: solid;
15
+ border-color: var(--color-neutral-300, #d9e1e4);
16
+ background-color: var(--color-white, #fff);
17
+ padding: calc(var(--spacing, 0.25rem)*3);
18
+ text-decoration-line: none;
19
+ &:where([data-theme=dark], [data-theme=dark] *) {
20
+ border-color: var(--color-neutral-900, #2c3437);
21
+ }
22
+ &:where([data-theme=dark], [data-theme=dark] *) {
23
+ background-color: var(--color-neutral-950, #0d121c);
24
+ }
19
25
  .header {
20
- @apply flex
21
- items-center
22
- gap-2
23
- self-stretch
24
- text-xs
25
- text-neutral-800
26
- dark:text-neutral-100;
27
-
26
+ display: flex;
27
+ align-items: center;
28
+ gap: calc(var(--spacing, 0.25rem)*2);
29
+ align-self: stretch;
30
+ font-size: var(--text-xs, 0.75rem);
31
+ line-height: var(--tw-leading, var(--text-xs--line-height, 1.33333));
32
+ color: var(--color-neutral-800, #556066);
33
+ &:where([data-theme=dark], [data-theme=dark] *) {
34
+ color: var(--color-neutral-100, #f6f7f9);
35
+ }
28
36
  &.reverse {
29
- @apply flex-row-reverse
30
- justify-start;
37
+ flex-direction: row-reverse;
38
+ justify-content: flex-start;
31
39
  }
32
-
33
40
  .icon {
34
- @apply size-4
35
- text-neutral-600
36
- dark:text-neutral-400;
41
+ width: calc(var(--spacing, 0.25rem)*4);
42
+ height: calc(var(--spacing, 0.25rem)*4);
43
+ color: var(--color-neutral-600, #929fa5);
44
+ &:where([data-theme=dark], [data-theme=dark] *) {
45
+ color: var(--color-neutral-400, #cbd4d9);
46
+ }
37
47
  }
38
48
  }
39
-
40
49
  .content {
41
- @apply self-stretch
42
- truncate
43
- text-sm
44
- text-neutral-900
45
- dark:text-white;
46
-
50
+ align-self: stretch;
51
+ overflow: hidden;
52
+ text-overflow: ellipsis;
53
+ white-space: nowrap;
54
+ font-size: var(--text-sm, 0.875rem);
55
+ line-height: var(--tw-leading, var(--text-sm--line-height, 1.42857));
56
+ color: var(--color-neutral-900, #2c3437);
57
+ &:where([data-theme=dark], [data-theme=dark] *) {
58
+ color: var(--color-white, #fff);
59
+ }
47
60
  &.reverse {
48
- @apply text-right;
61
+ text-align: right;
49
62
  }
50
63
  }
51
64
  }
65
+ @property --tw-border-style {
66
+ syntax: "*";
67
+ inherits: false;
68
+ initial-value: solid;
69
+ }
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import Select from '#ui/Common/Select';
3
+ import styles from './index.module.css';
4
+ const BaseLinkTabs = ({ tabs, label, activeTab, children, as: Component = 'a', onSelect, }) => (_jsxs(_Fragment, { children: [_jsx("div", { className: styles.tabsList, children: tabs.map(tab => (_jsx(Component, { href: tab.link, className: styles.tabsTrigger, "data-state": tab.key === activeTab ? 'active' : 'inactive', children: tab.label }, tab.key))) }), _jsx("div", { className: styles.tabsSelect, children: _jsx(Select, { label: label, defaultValue: tabs.find(tab => tab.key === activeTab)?.link, values: tabs.map(tab => ({ label: tab.label, value: tab.link })), onChange: onSelect }) }), children] }));
5
+ export default BaseLinkTabs;
@@ -1,43 +1,77 @@
1
- @reference "../../styles/index.css";
2
-
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
3
2
  .tabsList {
4
- @apply font-open-sans
5
- max-xs:hidden
6
- mb-6
7
- mt-10
8
- flex
9
- gap-2
10
- border-b
11
- border-b-neutral-200
12
- dark:border-b-neutral-800;
13
-
3
+ margin-top: calc(var(--spacing, 0.25rem)*10);
4
+ margin-bottom: calc(var(--spacing, 0.25rem)*6);
5
+ display: flex;
6
+ gap: calc(var(--spacing, 0.25rem)*2);
7
+ border-bottom-style: var(--tw-border-style);
8
+ border-bottom-width: 1px;
9
+ border-bottom-color: var(--color-neutral-200, #e9edf0);
10
+ font-family: var(--font-open-sans, var(--font-open-sans));
11
+ @media (width < 670px) {
12
+ display: none;
13
+ }
14
+ &:where([data-theme=dark], [data-theme=dark] *) {
15
+ border-bottom-color: var(--color-neutral-800, #556066);
16
+ }
14
17
  .tabsTrigger {
15
- @apply border-b-2
16
- border-b-transparent
17
- px-1
18
- pb-[11px]
19
- text-sm
20
- font-semibold
21
- text-neutral-800
22
- dark:text-neutral-200;
23
-
18
+ border-bottom-style: var(--tw-border-style);
19
+ border-bottom-width: 2px;
20
+ border-bottom-color: transparent;
21
+ padding-inline: calc(var(--spacing, 0.25rem)*1);
22
+ padding-bottom: 11px;
23
+ font-size: var(--text-sm, 0.875rem);
24
+ line-height: var(--tw-leading, var(--text-sm--line-height, 1.42857));
25
+ --tw-font-weight: var(--font-weight-semibold, 600);
26
+ font-weight: var(--font-weight-semibold, 600);
27
+ color: var(--color-neutral-800, #556066);
28
+ &:where([data-theme=dark], [data-theme=dark] *) {
29
+ color: var(--color-neutral-200, #e9edf0);
30
+ }
31
+ &:not([data-state='active']):hover {
32
+ border-bottom-color: var(--color-neutral-900, #2c3437);
33
+ color: var(--color-neutral-900, #2c3437);
34
+ &:where([data-theme=dark], [data-theme=dark] *) {
35
+ border-bottom-color: var(--color-neutral-300, #d9e1e4);
36
+ }
37
+ &:where([data-theme=dark], [data-theme=dark] *) {
38
+ color: var(--color-neutral-300, #d9e1e4);
39
+ }
40
+ }
24
41
  &[data-state='active'] {
25
- @apply border-b-green-600
26
- text-green-600
27
- dark:border-b-green-400
28
- dark:text-green-400;
42
+ border-bottom-color: var(--color-green-600, #417e38);
43
+ color: var(--color-green-600, #417e38);
44
+ &:where([data-theme=dark], [data-theme=dark] *) {
45
+ border-bottom-color: var(--color-green-400, #84ba64);
46
+ }
47
+ &:where([data-theme=dark], [data-theme=dark] *) {
48
+ color: var(--color-green-400, #84ba64);
49
+ }
29
50
  }
30
51
  }
31
52
  }
32
-
33
53
  .tabsSelect {
34
- @apply sm:visible
35
- md:hidden;
36
-
54
+ @media (width >= 40rem) {
55
+ visibility: visible;
56
+ }
57
+ @media (width >= 48rem) {
58
+ display: none;
59
+ }
37
60
  > span {
38
- @apply max-xs:flex
39
- my-6
40
- hidden
41
- w-full;
61
+ margin-block: calc(var(--spacing, 0.25rem)*6);
62
+ display: none;
63
+ width: 100%;
64
+ @media (width < 670px) {
65
+ display: flex;
66
+ }
42
67
  }
43
68
  }
69
+ @property --tw-border-style {
70
+ syntax: "*";
71
+ inherits: false;
72
+ initial-value: solid;
73
+ }
74
+ @property --tw-font-weight {
75
+ syntax: "*";
76
+ inherits: false;
77
+ }
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import styles from './index.module.css';
3
+ const Ellipsis = () => (_jsx("span", { "aria-hidden": "true", className: styles.ellipsis, children: "..." }));
4
+ export default Ellipsis;
@@ -1,10 +1,16 @@
1
- @reference "../../../styles/index.css";
2
-
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
3
2
  .ellipsis {
4
- @apply w-10
5
- px-3
6
- py-2.5
7
- leading-none
8
- text-neutral-800
9
- dark:text-neutral-200;
3
+ width: calc(var(--spacing, 0.25rem)*10);
4
+ padding-inline: calc(var(--spacing, 0.25rem)*3);
5
+ padding-block: calc(var(--spacing, 0.25rem)*2.5);
6
+ --tw-leading: 1;
7
+ line-height: 1;
8
+ color: var(--color-neutral-800, #556066);
9
+ &:where([data-theme=dark], [data-theme=dark] *) {
10
+ color: var(--color-neutral-200, #e9edf0);
11
+ }
12
+ }
13
+ @property --tw-leading {
14
+ syntax: "*";
15
+ inherits: false;
10
16
  }
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import styles from './index.module.css';
3
+ const PaginationListItem = ({ url, pageNumber, currentPage, totalPages, as: Component = 'a', label, }) => {
4
+ return (_jsx("li", { "aria-setsize": totalPages, "aria-posinset": pageNumber, children: _jsx(Component, { href: url, "aria-label": label, className: styles.listItem, ...(pageNumber === currentPage && { 'aria-current': 'page' }), children: _jsx("span", { children: pageNumber }) }) }, pageNumber));
5
+ };
6
+ export default PaginationListItem;
@@ -1,27 +1,42 @@
1
- @reference "../../../styles/index.css";
2
-
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
3
2
  .listItem,
4
3
  .listItem:link,
5
4
  .listItem:active {
6
- @apply aria-current:bg-green-600
7
- aria-current:text-white
8
- aria-current:cursor-default
9
- flex
10
- size-10
11
- cursor-pointer
12
- items-center
13
- justify-center
14
- rounded-sm
15
- px-3
16
- py-2.5
17
- text-neutral-800
18
- motion-safe:transition-colors
19
- dark:text-neutral-200;
20
-
5
+ display: flex;
6
+ width: calc(var(--spacing, 0.25rem)*10);
7
+ height: calc(var(--spacing, 0.25rem)*10);
8
+ cursor: pointer;
9
+ align-items: center;
10
+ justify-content: center;
11
+ border-radius: var(--radius-sm, 0.25rem);
12
+ padding-inline: calc(var(--spacing, 0.25rem)*3);
13
+ padding-block: calc(var(--spacing, 0.25rem)*2.5);
14
+ color: var(--color-neutral-800, #556066);
15
+ @media (prefers-reduced-motion: no-preference) {
16
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
17
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
18
+ transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
19
+ }
20
+ &:where([data-theme=dark], [data-theme=dark] *) {
21
+ color: var(--color-neutral-200, #e9edf0);
22
+ }
23
+ &[aria-current="page"] {
24
+ cursor: default;
25
+ }
26
+ &[aria-current="page"] {
27
+ background-color: var(--color-green-600, #417e38);
28
+ }
29
+ &[aria-current="page"] {
30
+ color: var(--color-white, #fff);
31
+ }
21
32
  &:hover:not([aria-current='page']) {
22
- @apply bg-neutral-100
23
- text-neutral-800
24
- dark:bg-neutral-900
25
- dark:text-neutral-200;
33
+ background-color: var(--color-neutral-100, #f6f7f9);
34
+ color: var(--color-neutral-800, #556066);
35
+ &:where([data-theme=dark], [data-theme=dark] *) {
36
+ background-color: var(--color-neutral-900, #2c3437);
37
+ }
38
+ &:where([data-theme=dark], [data-theme=dark] *) {
39
+ color: var(--color-neutral-200, #e9edf0);
40
+ }
26
41
  }
27
42
  }
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ChevronLeftIcon, ChevronRightIcon } from '@heroicons/react/24/solid';
3
+ const PrevNextArrow = ({ type, ...extra }) => {
4
+ const ChevronComponent = type === 'previous' ? ChevronLeftIcon : ChevronRightIcon;
5
+ return _jsx(ChevronComponent, { ...extra });
6
+ };
7
+ export default PrevNextArrow;
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ArrowRightIcon, ArrowLeftIcon } from '@heroicons/react/20/solid';
3
+ import Button from '#ui/Common/BaseButton';
4
+ import { useGetPageElements } from '#ui/Common/BasePagination/useGetPageElements';
5
+ import styles from './index.module.css';
6
+ const BasePagination = ({ currentPage, pages, as = 'a', currentPageSiblingsCount = 1, labels, getPageLabel, }) => {
7
+ const parsedPages = useGetPageElements(currentPage, pages, currentPageSiblingsCount, as, getPageLabel);
8
+ return (_jsxs("nav", { "aria-label": labels.aria, className: styles.pagination, children: [_jsxs(Button, { as: as, "aria-label": labels.prevAria, disabled: currentPage === 1, kind: "secondary", className: styles.previousButton, href: pages[currentPage - 2]?.url, children: [_jsx(ArrowLeftIcon, { className: styles.arrowIcon }), _jsx("span", { children: labels.prev })] }), _jsx("ol", { className: styles.list, children: parsedPages }), _jsxs(Button, { as: as, "aria-label": labels.nextAria, disabled: currentPage === pages.length, kind: "secondary", className: styles.nextButton, href: pages[currentPage]?.url, children: [_jsx("span", { children: labels.next }), _jsx(ArrowRightIcon, { className: styles.arrowIcon })] })] }));
9
+ };
10
+ export default BasePagination;
@@ -1,39 +1,40 @@
1
- @reference "../../styles/index.css";
2
-
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
3
2
  .pagination {
4
- @apply grid
5
- items-center
6
- justify-between
7
- gap-y-5
8
- [grid-template-areas:'pages_pages_pages''prev_._next']
9
- md:gap-y-0
10
- md:[grid-template-areas:'prev_pages_next'];
3
+ display: grid;
4
+ align-items: center;
5
+ justify-content: space-between;
6
+ row-gap: calc(var(--spacing, 0.25rem)*5);
7
+ grid-template-areas: 'pages pages pages''prev . next';
8
+ @media (width >= 48rem) {
9
+ row-gap: calc(var(--spacing, 0.25rem)*0);
10
+ }
11
+ @media (width >= 48rem) {
12
+ grid-template-areas: 'prev pages next';
13
+ }
11
14
  }
12
-
13
15
  .previousButton,
14
16
  .nextButton {
15
- @apply text-sm;
17
+ font-size: var(--text-sm, 0.875rem);
18
+ line-height: var(--tw-leading, var(--text-sm--line-height, 1.42857));
16
19
  }
17
-
18
20
  .previousButton {
19
- @apply [grid-area:prev];
21
+ grid-area: prev;
20
22
  }
21
-
22
23
  .nextButton {
23
- @apply [grid-area:next];
24
+ grid-area: next;
24
25
  }
25
-
26
26
  .arrowIcon {
27
- @apply h-5
28
- shrink-0
29
- text-neutral-600
30
- dark:text-neutral-400;
27
+ height: calc(var(--spacing, 0.25rem)*5);
28
+ flex-shrink: 0;
29
+ color: var(--color-neutral-600, #929fa5);
30
+ &:where([data-theme=dark], [data-theme=dark] *) {
31
+ color: var(--color-neutral-400, #cbd4d9);
32
+ }
31
33
  }
32
-
33
34
  .list {
34
- @apply flex
35
- list-none
36
- justify-center
37
- gap-1
38
- [grid-area:pages];
35
+ display: flex;
36
+ list-style-type: none;
37
+ justify-content: center;
38
+ gap: calc(var(--spacing, 0.25rem)*1);
39
+ grid-area: pages;
39
40
  }
@@ -0,0 +1,77 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import Ellipsis from '#ui/Common/BasePagination/Ellipsis';
3
+ import PaginationListItem from '#ui/Common/BasePagination/PaginationListItem';
4
+ const parsePages = (pages, currentPage, totalPages, as, getLabel) => pages.map(({ url }, index) => ({
5
+ url: url,
6
+ pageNumber: index + 1,
7
+ currentPage: currentPage,
8
+ totalPages: totalPages,
9
+ label: getLabel(index + 1),
10
+ as: as,
11
+ }));
12
+ const createPaginationListItems = (parsedPages) => parsedPages.map(page => _jsx(PaginationListItem, { ...page }, page.url));
13
+ // The minimum amount of elements are first page, current page, and last page
14
+ const MINIMUM_AMOUNT_OF_ELEMENTS = 3;
15
+ // Not more than two ellipses will be shown at the same time
16
+ const MAXIMUM_AMOUNT_OF_ELLIPSES = 2;
17
+ // The logic of this custom hook has taken the internal logic of
18
+ // React MUI's Pagination component as reference. More info here:
19
+ // https://github.com/mui/material-ui/blob/master/packages/mui-material/src/usePagination/usePagination.js
20
+ export const useGetPageElements = (currentPage, pages, currentPageSiblingsCount, as, getLabel) => {
21
+ const totalPages = pages.length;
22
+ const parsedPages = parsePages(pages, currentPage, totalPages, as, getLabel);
23
+ const currentPageIndex = currentPage - 1;
24
+ // We multiply it by two (2) as siblings are located on both left and right sides
25
+ // of the current page
26
+ const totalSiblingsCount = 2 * currentPageSiblingsCount;
27
+ const visiblePages = totalSiblingsCount +
28
+ MINIMUM_AMOUNT_OF_ELEMENTS +
29
+ MAXIMUM_AMOUNT_OF_ELLIPSES;
30
+ // When there are more pages than the visible pages to be shown
31
+ // we do not need to perform any calculations
32
+ if (totalPages <= visiblePages) {
33
+ return createPaginationListItems(parsedPages);
34
+ }
35
+ // The index of the far-left sibling of the current page
36
+ const leftSiblingsFirstIndex = Math.max(currentPageIndex - currentPageSiblingsCount, 1);
37
+ // The index of the far-right sibling of the current page
38
+ const rightSiblingsLastIndex = Math.min(currentPageIndex + currentPageSiblingsCount + 1, totalPages);
39
+ const firstIndex = 0;
40
+ const lastIndex = totalPages - 1;
41
+ // If there are at least two (2) elements between the far-left sibling of
42
+ // the current page, and the first page, we should show left ellipsis
43
+ // between them
44
+ const hasLeftEllipsis = leftSiblingsFirstIndex > firstIndex + 2;
45
+ // If there are at least two (2) elements between the far-right sibling of
46
+ // the current page, and the last page, we should show right ellipsis
47
+ // between them
48
+ const hasRightEllipsis = rightSiblingsLastIndex < lastIndex - 1;
49
+ if (!hasLeftEllipsis && hasRightEllipsis) {
50
+ const leftPagesLastIndex = MINIMUM_AMOUNT_OF_ELEMENTS + totalSiblingsCount;
51
+ const leftPages = parsedPages.slice(firstIndex, leftPagesLastIndex);
52
+ return [
53
+ ...createPaginationListItems(leftPages),
54
+ _jsx(Ellipsis, {}, "ellipsis"),
55
+ ...createPaginationListItems(parsedPages.slice(lastIndex)),
56
+ ];
57
+ }
58
+ if (hasLeftEllipsis && !hasRightEllipsis) {
59
+ const rightPagesFirstIndex = MINIMUM_AMOUNT_OF_ELEMENTS + totalSiblingsCount;
60
+ const rightPages = parsedPages.slice(totalPages - rightPagesFirstIndex);
61
+ return [
62
+ ...createPaginationListItems(parsedPages.slice(firstIndex, firstIndex + 1)),
63
+ _jsx(Ellipsis, {}, "ellipsis"),
64
+ ...createPaginationListItems(rightPages),
65
+ ];
66
+ }
67
+ if (hasLeftEllipsis && hasRightEllipsis) {
68
+ const middlePages = parsedPages.slice(leftSiblingsFirstIndex, rightSiblingsLastIndex);
69
+ return [
70
+ ...createPaginationListItems(parsedPages.slice(firstIndex, firstIndex + 1)),
71
+ _jsx(Ellipsis, {}, "ellipsis-1"),
72
+ ...createPaginationListItems(middlePages),
73
+ _jsx(Ellipsis, {}, "ellipsis-2"),
74
+ ...createPaginationListItems(parsedPages.slice(lastIndex)),
75
+ ];
76
+ }
77
+ };
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import styles from './index.module.css';
3
+ const Blockquote = ({ children }) => (_jsx("blockquote", { className: styles.wrapper, children: children }));
4
+ export default Blockquote;
@@ -1,29 +1,50 @@
1
- @reference "../../styles/index.css";
2
-
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
3
2
  .wrapper {
4
- @apply flex
5
- max-w-2xl
6
- flex-col
7
- items-start
8
- gap-4
9
- self-stretch
10
- border-l-2
11
- border-green-600
12
- py-2
13
- pl-5
14
- text-lg
15
- font-semibold
16
- text-neutral-900
17
- dark:border-green-400
18
- dark:text-white;
19
-
3
+ display: flex;
4
+ max-width: var(--container-2xl, 42rem);
5
+ flex-direction: column;
6
+ align-items: flex-start;
7
+ gap: calc(var(--spacing, 0.25rem)*4);
8
+ align-self: stretch;
9
+ border-left-style: var(--tw-border-style);
10
+ border-left-width: 2px;
11
+ border-color: var(--color-green-600, #417e38);
12
+ padding-block: calc(var(--spacing, 0.25rem)*2);
13
+ padding-left: calc(var(--spacing, 0.25rem)*5);
14
+ font-size: var(--text-lg, 1.125rem);
15
+ line-height: var(--tw-leading, var(--text-lg--line-height, 1.55556));
16
+ --tw-font-weight: var(--font-weight-semibold, 600);
17
+ font-weight: var(--font-weight-semibold, 600);
18
+ color: var(--color-neutral-900, #2c3437);
19
+ &:where([data-theme=dark], [data-theme=dark] *) {
20
+ border-color: var(--color-green-400, #84ba64);
21
+ }
22
+ &:where([data-theme=dark], [data-theme=dark] *) {
23
+ color: var(--color-white, #fff);
24
+ }
20
25
  & cite {
21
- @apply font-regular
22
- text-base
23
- not-italic;
24
-
26
+ font-size: var(--text-base, 1rem);
27
+ line-height: var(--tw-leading, var(--text-base--line-height, 1.5));
28
+ --tw-font-weight: var(--font-weight-regular, 400);
29
+ font-weight: var(--font-weight-regular, 400);
30
+ font-style: normal;
25
31
  &::before {
26
- @apply content-['—_'];
32
+ --tw-content: '— ';
33
+ content: var(--tw-content);
27
34
  }
28
35
  }
29
36
  }
37
+ @property --tw-border-style {
38
+ syntax: "*";
39
+ inherits: false;
40
+ initial-value: solid;
41
+ }
42
+ @property --tw-font-weight {
43
+ syntax: "*";
44
+ inherits: false;
45
+ }
46
+ @property --tw-content {
47
+ syntax: "*";
48
+ inherits: false;
49
+ initial-value: "";
50
+ }
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import HomeIcon from '@heroicons/react/24/outline/HomeIcon';
3
+ import BreadcrumbLink from '#ui/Common/Breadcrumbs/BreadcrumbLink';
4
+ import styles from './index.module.css';
5
+ const BreadcrumbHomeLink = ({ href = '/', ...props }) => {
6
+ const ariaLabel = props['aria-label'];
7
+ return (_jsx(BreadcrumbLink, { href: href, ...props, children: _jsx(HomeIcon, { title: ariaLabel, "aria-label": ariaLabel, className: styles.icon }) }));
8
+ };
9
+ export default BreadcrumbHomeLink;
@@ -1,5 +1,5 @@
1
- @reference "../../../styles/index.css";
2
-
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
3
2
  .icon {
4
- @apply size-4;
3
+ width: calc(var(--spacing, 0.25rem)*4);
4
+ height: calc(var(--spacing, 0.25rem)*4);
5
5
  }
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import ChevronRightIcon from '@heroicons/react/24/outline/ChevronRightIcon';
3
+ import classNames from 'classnames';
4
+ import styles from './index.module.css';
5
+ const BreadcrumbItem = ({ disableMicrodata, children, hidden = false, hideSeparator = false, position, ...props }) => (_jsxs("li", { ...props, itemProp: !disableMicrodata ? 'itemListElement' : undefined, itemScope: !disableMicrodata ? true : undefined, itemType: !disableMicrodata ? 'https://schema.org/ListItem' : undefined, className: classNames(styles.item, { [styles.visuallyHidden]: hidden }, props.className), "aria-hidden": hidden ? 'true' : undefined, children: [children, position && _jsx("meta", { itemProp: "position", content: `${position}` }), !hideSeparator && (_jsx(ChevronRightIcon, { "aria-hidden": "true", className: styles.separator }))] }));
6
+ export default BreadcrumbItem;