@node-core/ui-components 1.0.1-df203d0fe21ee5d80d258c60dc821e8ac0601ce4 → 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 (263) hide show
  1. package/Common/AlertBox/index.js +5 -0
  2. package/Common/AlertBox/index.module.css +47 -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 +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 -102
  18. package/Common/BaseCodeBox/index.js +50 -0
  19. package/Common/BaseCodeBox/index.module.css +76 -64
  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 +54 -0
  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 +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 +19 -69
  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 -133
  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 -74
  173. package/Common/CodeTabs/index.tsx +0 -16
  174. package/Common/GlowingBackdrop/index.stories.tsx +0 -10
  175. package/Common/GlowingBackdrop/index.tsx +0 -13
  176. package/Common/LanguageDropDown/index.stories.tsx +0 -19
  177. package/Common/LanguageDropDown/index.tsx +0 -56
  178. package/Common/Modal/index.stories.tsx +0 -32
  179. package/Common/Modal/index.tsx +0 -48
  180. package/Common/NodejsLogo/index.stories.tsx +0 -14
  181. package/Common/NodejsLogo/index.tsx +0 -26
  182. package/Common/Notification/index.stories.tsx +0 -36
  183. package/Common/Notification/index.tsx +0 -34
  184. package/Common/Preview/index.stories.tsx +0 -44
  185. package/Common/Preview/index.tsx +0 -25
  186. package/Common/ProgressionSidebar/ProgressionSidebarGroup/index.module.css +0 -47
  187. package/Common/ProgressionSidebar/ProgressionSidebarGroup/index.tsx +0 -35
  188. package/Common/ProgressionSidebar/ProgressionSidebarIcon/index.tsx +0 -16
  189. package/Common/ProgressionSidebar/ProgressionSidebarItem/index.module.css +0 -39
  190. package/Common/ProgressionSidebar/ProgressionSidebarItem/index.tsx +0 -32
  191. package/Common/ProgressionSidebar/index.module.css +0 -30
  192. package/Common/ProgressionSidebar/index.stories.tsx +0 -79
  193. package/Common/ProgressionSidebar/index.tsx +0 -59
  194. package/Common/Select/__tests__/index.test.jsx +0 -67
  195. package/Common/Select/index.stories.tsx +0 -111
  196. package/Common/Select/index.tsx +0 -187
  197. package/Common/Separator/index.stories.tsx +0 -32
  198. package/Common/Separator/index.tsx +0 -27
  199. package/Common/Skeleton/index.tsx +0 -39
  200. package/Common/Tabs/__tests__/index.test.jsx +0 -52
  201. package/Common/Tabs/index.stories.tsx +0 -50
  202. package/Common/Tabs/index.tsx +0 -54
  203. package/Common/ThemeToggle/__tests__/index.test.jsx +0 -35
  204. package/Common/ThemeToggle/index.stories.tsx +0 -10
  205. package/Common/ThemeToggle/index.tsx +0 -15
  206. package/Common/Tooltip/index.stories.tsx +0 -73
  207. package/Common/Tooltip/index.tsx +0 -48
  208. package/Containers/Article/index.stories.tsx +0 -39
  209. package/Containers/Article/index.tsx +0 -9
  210. package/Containers/Footer/index.stories.tsx +0 -27
  211. package/Containers/Footer/index.tsx +0 -95
  212. package/Containers/MetaBar/__tests__/index.test.jsx +0 -63
  213. package/Containers/MetaBar/index.stories.tsx +0 -80
  214. package/Containers/MetaBar/index.tsx +0 -72
  215. package/Containers/NavBar/NavItem/index.stories.tsx +0 -38
  216. package/Containers/NavBar/NavItem/index.tsx +0 -44
  217. package/Containers/NavBar/index.stories.tsx +0 -45
  218. package/Containers/NavBar/index.tsx +0 -94
  219. package/Containers/Sidebar/SidebarGroup/index.stories.tsx +0 -36
  220. package/Containers/Sidebar/SidebarGroup/index.tsx +0 -30
  221. package/Containers/Sidebar/SidebarItem/index.stories.tsx +0 -15
  222. package/Containers/Sidebar/SidebarItem/index.tsx +0 -26
  223. package/Containers/Sidebar/index.stories.tsx +0 -84
  224. package/Containers/Sidebar/index.tsx +0 -58
  225. package/Icons/HexagonGrid.stories.tsx +0 -10
  226. package/Icons/HexagonGrid.tsx +0 -1434
  227. package/Icons/InstallationMethod/Choco.tsx +0 -78
  228. package/Icons/InstallationMethod/Devbox.tsx +0 -21
  229. package/Icons/InstallationMethod/Docker.tsx +0 -20
  230. package/Icons/InstallationMethod/FNM.tsx +0 -132
  231. package/Icons/InstallationMethod/Homebrew.tsx +0 -69
  232. package/Icons/InstallationMethod/N.tsx +0 -32
  233. package/Icons/InstallationMethod/NVM.tsx +0 -63
  234. package/Icons/InstallationMethod/Volta.tsx +0 -34
  235. package/Icons/Logos/JsGreen.tsx +0 -24
  236. package/Icons/Logos/JsWhite.tsx +0 -37
  237. package/Icons/Logos/Nodejs.tsx +0 -188
  238. package/Icons/Logos/NodejsStackedBlack.tsx +0 -98
  239. package/Icons/Logos/NodejsStackedDark.tsx +0 -124
  240. package/Icons/Logos/NodejsStackedLight.tsx +0 -123
  241. package/Icons/Logos/NodejsStackedWhite.tsx +0 -98
  242. package/Icons/Logos/index.ts +0 -17
  243. package/Icons/OperatingSystem/AIX.tsx +0 -46
  244. package/Icons/OperatingSystem/Apple.tsx +0 -23
  245. package/Icons/OperatingSystem/Linux.tsx +0 -969
  246. package/Icons/OperatingSystem/Microsoft.tsx +0 -19
  247. package/Icons/PackageManager/Npm.tsx +0 -21
  248. package/Icons/PackageManager/Pnpm.tsx +0 -22
  249. package/Icons/PackageManager/Yarn.tsx +0 -22
  250. package/Icons/Social/Bluesky.tsx +0 -19
  251. package/Icons/Social/Discord.tsx +0 -20
  252. package/Icons/Social/GitHub.tsx +0 -16
  253. package/Icons/Social/LinkedIn.tsx +0 -16
  254. package/Icons/Social/Mastodon.tsx +0 -36
  255. package/Icons/Social/Slack.tsx +0 -31
  256. package/Icons/Social/X.tsx +0 -16
  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,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,
6
+ pageNumber: index + 1,
7
+ currentPage,
8
+ totalPages,
9
+ label: getLabel(index + 1),
10
+ 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;
@@ -1,41 +1,52 @@
1
- @reference "../../../styles/index.css";
2
-
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
3
2
  .item {
4
- @apply flex
5
- max-w-fit
6
- items-center
7
- gap-5
8
- truncate
9
- text-sm
10
- font-medium;
11
-
3
+ display: flex;
4
+ max-width: fit-content;
5
+ align-items: center;
6
+ gap: calc(var(--spacing, 0.25rem)*5);
7
+ overflow: hidden;
8
+ text-overflow: ellipsis;
9
+ white-space: nowrap;
10
+ font-size: var(--text-sm, 0.875rem);
11
+ line-height: var(--tw-leading, var(--text-sm--line-height, 1.42857));
12
+ --tw-font-weight: var(--font-weight-medium, 500);
13
+ font-weight: var(--font-weight-medium, 500);
12
14
  &:last-child {
13
- @apply w-full;
15
+ width: 100%;
14
16
  }
15
-
16
17
  a {
17
- @apply shrink
18
- grow;
18
+ flex-shrink: 1;
19
+ flex-grow: 1;
19
20
  }
20
-
21
21
  &,
22
22
  > a,
23
23
  > a:hover {
24
- @apply text-neutral-800
25
- motion-safe:transition-colors
26
- dark:text-neutral-200;
24
+ color: var(--color-neutral-800, #556066);
25
+ @media (prefers-reduced-motion: no-preference) {
26
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
27
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
28
+ transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
29
+ }
30
+ &:where([data-theme=dark], [data-theme=dark] *) {
31
+ color: var(--color-neutral-200, #e9edf0);
32
+ }
27
33
  }
28
-
29
34
  &.visuallyHidden {
30
- @apply hidden;
35
+ display: none;
31
36
  }
32
-
33
37
  .separator {
34
- @apply size-4
35
- max-w-fit
36
- shrink-0
37
- grow
38
- text-neutral-600
39
- dark:text-neutral-400;
38
+ width: calc(var(--spacing, 0.25rem)*4);
39
+ height: calc(var(--spacing, 0.25rem)*4);
40
+ max-width: fit-content;
41
+ flex-shrink: 0;
42
+ flex-grow: 1;
43
+ color: var(--color-neutral-600, #929fa5);
44
+ &:where([data-theme=dark], [data-theme=dark] *) {
45
+ color: var(--color-neutral-400, #cbd4d9);
46
+ }
40
47
  }
41
48
  }
49
+ @property --tw-font-weight {
50
+ syntax: "*";
51
+ inherits: false;
52
+ }
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import classNames from 'classnames';
3
+ import styles from './index.module.css';
4
+ const BreadcrumbLink = ({ href, active, as: Component = 'a', ...props }) => (_jsx(Component, { itemScope: true, itemType: "http://schema.org/Thing", itemProp: "item", itemID: href?.toString(), href: href, className: classNames(styles.link, { [styles.active]: active }, props.className), "aria-current": active ? 'page' : undefined, ...props, children: _jsx("span", { itemProp: "name", children: props.children }) }));
5
+ export default BreadcrumbLink;
@@ -1,22 +1,32 @@
1
- @reference "../../../styles/index.css";
2
-
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
3
2
  .link {
4
- @apply max-w-fit
5
- truncate;
6
-
3
+ max-width: fit-content;
4
+ overflow: hidden;
5
+ text-overflow: ellipsis;
6
+ white-space: nowrap;
7
7
  &.active {
8
- @apply rounded
9
- bg-green-600
10
- px-2
11
- py-1
12
- font-semibold
13
- text-white
14
- motion-safe:transition-colors
15
- dark:text-white;
16
-
8
+ border-radius: 0.25rem;
9
+ background-color: var(--color-green-600, #417e38);
10
+ padding-inline: calc(var(--spacing, 0.25rem)*2);
11
+ padding-block: calc(var(--spacing, 0.25rem)*1);
12
+ --tw-font-weight: var(--font-weight-semibold, 600);
13
+ font-weight: var(--font-weight-semibold, 600);
14
+ color: var(--color-white, #fff);
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-white, #fff);
22
+ }
17
23
  &:hover {
18
- @apply bg-green-700
19
- text-white;
24
+ background-color: var(--color-green-700, #2c682c);
25
+ color: var(--color-white, #fff);
20
26
  }
21
27
  }
22
28
  }
29
+ @property --tw-font-weight {
30
+ syntax: "*";
31
+ inherits: false;
32
+ }
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import styles from './index.module.css';
3
+ const BreadcrumbRoot = ({ children, ...props }) => (_jsx("nav", { "aria-label": "breadcrumb", ...props, children: _jsx("ol", { itemScope: true, itemType: "https://schema.org/BreadcrumbList", className: styles.list, children: children }) }));
4
+ export default BreadcrumbRoot;
@@ -1,9 +1,10 @@
1
- @reference "../../../styles/index.css";
2
-
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
3
2
  .list {
4
- @apply xs:w-full
5
- flex
6
- w-screen
7
- gap-5
8
- px-6;
3
+ display: flex;
4
+ width: 100vw;
5
+ gap: calc(var(--spacing, 0.25rem)*5);
6
+ padding-inline: calc(var(--spacing, 0.25rem)*6);
7
+ @media (width >= 670px) {
8
+ width: 100%;
9
+ }
9
10
  }
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import BreadcrumbItem from '#ui/Common/Breadcrumbs/BreadcrumbItem';
3
+ const BreadcrumbTruncatedItem = () => (_jsx(BreadcrumbItem, { disableMicrodata: true, children: _jsx("button", { disabled: true, children: "\u2026" }) }));
4
+ export default BreadcrumbTruncatedItem;
@@ -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;
@@ -0,0 +1,198 @@
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
2
+ .summary {
3
+ display: flex;
4
+ height: calc(var(--spacing, 0.25rem)*9);
5
+ cursor: pointer;
6
+ align-items: center;
7
+ gap: calc(var(--spacing, 0.25rem)*2);
8
+ border-radius: var(--radius-md, 0.375rem);
9
+ border-style: var(--tw-border-style);
10
+ border-width: 1px;
11
+ border-color: var(--color-neutral-200, #e9edf0);
12
+ padding: calc(var(--spacing, 0.25rem)*2);
13
+ font-size: var(--text-sm, 0.875rem);
14
+ line-height: var(--tw-leading, var(--text-sm--line-height, 1.42857));
15
+ color: var(--color-neutral-700, #6e7b83);
16
+ --tw-outline-style: none;
17
+ outline-style: none;
18
+ @media (forced-colors: active) {
19
+ outline: 2px solid transparent;
20
+ outline-offset: 2px;
21
+ }
22
+ -webkit-user-select: none;
23
+ user-select: none;
24
+ @media (prefers-reduced-motion: no-preference) {
25
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
26
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
27
+ transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
28
+ }
29
+ &:where([data-theme=dark], [data-theme=dark] *) {
30
+ border-color: var(--color-neutral-900, #2c3437);
31
+ }
32
+ &:where([data-theme=dark], [data-theme=dark] *) {
33
+ color: var(--color-neutral-300, #d9e1e4);
34
+ }
35
+ &:hover,
36
+ &:focus-visible {
37
+ background-color: var(--color-neutral-100, #f6f7f9);
38
+ &:where([data-theme=dark], [data-theme=dark] *) {
39
+ background-color: var(--color-neutral-900, #2c3437);
40
+ }
41
+ }
42
+ }
43
+ .dropdownContentWrapper {
44
+ position: absolute;
45
+ top: 100%;
46
+ right: calc(var(--spacing, 0.25rem)*0);
47
+ z-index: 50;
48
+ margin-top: calc(var(--spacing, 0.25rem)*1);
49
+ max-height: calc(var(--spacing, 0.25rem)*80);
50
+ width: calc(var(--spacing, 0.25rem)*52);
51
+ overflow: hidden;
52
+ border-radius: var(--radius-sm, 0.25rem);
53
+ border-style: var(--tw-border-style);
54
+ border-width: 1px;
55
+ border-color: var(--color-neutral-200, #e9edf0);
56
+ background-color: var(--color-white, #fff);
57
+ --tw-shadow: 0px 4px 6px -2px var(--tw-shadow-color, color-mix(in srgb, #101828 3%, transparent)), 0px 12px 16px -4px var(--tw-shadow-color, color-mix(in srgb, #101828 8%, transparent));
58
+ @supports (color: color-mix(in lab, red, red)) {
59
+ --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));
60
+ }
61
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
62
+ &:where([data-theme=dark], [data-theme=dark] *) {
63
+ border-color: var(--color-neutral-900, #2c3437);
64
+ }
65
+ &:where([data-theme=dark], [data-theme=dark] *) {
66
+ background-color: var(--color-neutral-950, #0d121c);
67
+ }
68
+ }
69
+ .dropdownContentInner {
70
+ max-height: calc(var(--spacing, 0.25rem)*80);
71
+ width: calc(var(--spacing, 0.25rem)*52);
72
+ overflow-y: auto;
73
+ }
74
+ .dropdownItem {
75
+ display: block;
76
+ padding-inline: calc(var(--spacing, 0.25rem)*2.5);
77
+ padding-block: calc(var(--spacing, 0.25rem)*1.5);
78
+ font-size: var(--text-sm, 0.875rem);
79
+ line-height: var(--tw-leading, var(--text-sm--line-height, 1.42857));
80
+ --tw-font-weight: var(--font-weight-medium, 500);
81
+ font-weight: var(--font-weight-medium, 500);
82
+ color: var(--color-neutral-800, #556066);
83
+ text-decoration-line: none;
84
+ --tw-outline-style: none;
85
+ outline-style: none;
86
+ @media (forced-colors: active) {
87
+ outline: 2px solid transparent;
88
+ outline-offset: 2px;
89
+ }
90
+ @media (prefers-reduced-motion: no-preference) {
91
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
92
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
93
+ transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
94
+ }
95
+ &:where([data-theme=dark], [data-theme=dark] *) {
96
+ color: var(--color-white, #fff);
97
+ }
98
+ &:hover,
99
+ &:focus-visible {
100
+ background-color: var(--color-green-600, #417e38);
101
+ color: var(--color-white, #fff);
102
+ }
103
+ }
104
+ .dropdownLabel {
105
+ display: block;
106
+ font-size: var(--text-sm, 0.875rem);
107
+ line-height: var(--tw-leading, var(--text-sm--line-height, 1.42857));
108
+ --tw-leading: var(--leading-tight, 1.25);
109
+ line-height: var(--leading-tight, 1.25);
110
+ --tw-font-weight: var(--font-weight-medium, 500);
111
+ font-weight: var(--font-weight-medium, 500);
112
+ }
113
+ .dropdownVersions {
114
+ display: block;
115
+ font-size: var(--text-xs, 0.75rem);
116
+ line-height: var(--tw-leading, var(--text-xs--line-height, 1.33333));
117
+ --tw-leading: var(--leading-tight, 1.25);
118
+ line-height: var(--leading-tight, 1.25);
119
+ opacity: 75%;
120
+ }
121
+ @property --tw-border-style {
122
+ syntax: "*";
123
+ inherits: false;
124
+ initial-value: solid;
125
+ }
126
+ @property --tw-shadow {
127
+ syntax: "*";
128
+ inherits: false;
129
+ initial-value: 0 0 #0000;
130
+ }
131
+ @property --tw-shadow-color {
132
+ syntax: "*";
133
+ inherits: false;
134
+ }
135
+ @property --tw-shadow-alpha {
136
+ syntax: "<percentage>";
137
+ inherits: false;
138
+ initial-value: 100%;
139
+ }
140
+ @property --tw-inset-shadow {
141
+ syntax: "*";
142
+ inherits: false;
143
+ initial-value: 0 0 #0000;
144
+ }
145
+ @property --tw-inset-shadow-color {
146
+ syntax: "*";
147
+ inherits: false;
148
+ }
149
+ @property --tw-inset-shadow-alpha {
150
+ syntax: "<percentage>";
151
+ inherits: false;
152
+ initial-value: 100%;
153
+ }
154
+ @property --tw-ring-color {
155
+ syntax: "*";
156
+ inherits: false;
157
+ }
158
+ @property --tw-ring-shadow {
159
+ syntax: "*";
160
+ inherits: false;
161
+ initial-value: 0 0 #0000;
162
+ }
163
+ @property --tw-inset-ring-color {
164
+ syntax: "*";
165
+ inherits: false;
166
+ }
167
+ @property --tw-inset-ring-shadow {
168
+ syntax: "*";
169
+ inherits: false;
170
+ initial-value: 0 0 #0000;
171
+ }
172
+ @property --tw-ring-inset {
173
+ syntax: "*";
174
+ inherits: false;
175
+ }
176
+ @property --tw-ring-offset-width {
177
+ syntax: "<length>";
178
+ inherits: false;
179
+ initial-value: 0px;
180
+ }
181
+ @property --tw-ring-offset-color {
182
+ syntax: "*";
183
+ inherits: false;
184
+ initial-value: #fff;
185
+ }
186
+ @property --tw-ring-offset-shadow {
187
+ syntax: "*";
188
+ inherits: false;
189
+ initial-value: 0 0 #0000;
190
+ }
191
+ @property --tw-font-weight {
192
+ syntax: "*";
193
+ inherits: false;
194
+ }
195
+ @property --tw-leading {
196
+ syntax: "*";
197
+ inherits: false;
198
+ }
@@ -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;