@coinbase/cds-mcp-server 8.17.2 → 8.17.4

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 (284) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/mcp-docs/mobile/components/Accordion.txt +188 -0
  3. package/mcp-docs/mobile/components/AccordionItem.txt +29 -0
  4. package/mcp-docs/mobile/components/Alert.txt +155 -0
  5. package/mcp-docs/mobile/components/AreaChart.txt +265 -0
  6. package/mcp-docs/mobile/components/Avatar.txt +195 -0
  7. package/mcp-docs/mobile/components/AvatarButton.txt +225 -0
  8. package/mcp-docs/mobile/components/Banner.txt +221 -0
  9. package/mcp-docs/mobile/components/BarChart.txt +815 -0
  10. package/mcp-docs/mobile/components/Box.txt +173 -0
  11. package/mcp-docs/mobile/components/BrowserBar.txt +146 -0
  12. package/mcp-docs/mobile/components/Button.txt +198 -0
  13. package/mcp-docs/mobile/components/ButtonGroup.txt +79 -0
  14. package/mcp-docs/mobile/components/Carousel.txt +1083 -0
  15. package/mcp-docs/mobile/components/CartesianChart.txt +825 -0
  16. package/mcp-docs/mobile/components/CellMedia.txt +70 -0
  17. package/mcp-docs/mobile/components/Checkbox.txt +245 -0
  18. package/mcp-docs/mobile/components/CheckboxCell.txt +201 -0
  19. package/mcp-docs/mobile/components/CheckboxGroup.txt +284 -0
  20. package/mcp-docs/mobile/components/Chip.txt +194 -0
  21. package/mcp-docs/mobile/components/Coachmark.txt +157 -0
  22. package/mcp-docs/mobile/components/Collapsible.txt +104 -0
  23. package/mcp-docs/mobile/components/ContainedAssetCard.txt +134 -0
  24. package/mcp-docs/mobile/components/ContentCard.txt +365 -0
  25. package/mcp-docs/mobile/components/ContentCardBody.txt +135 -0
  26. package/mcp-docs/mobile/components/ContentCardFooter.txt +127 -0
  27. package/mcp-docs/mobile/components/ContentCardHeader.txt +145 -0
  28. package/mcp-docs/mobile/components/ContentCell.txt +226 -0
  29. package/mcp-docs/mobile/components/ControlGroup.txt +443 -0
  30. package/mcp-docs/mobile/components/DatePicker.txt +496 -0
  31. package/mcp-docs/mobile/components/Divider.txt +138 -0
  32. package/mcp-docs/mobile/components/DotCount.txt +145 -0
  33. package/mcp-docs/mobile/components/DotStatusColor.txt +58 -0
  34. package/mcp-docs/mobile/components/DotSymbol.txt +134 -0
  35. package/mcp-docs/mobile/components/Fallback.txt +157 -0
  36. package/mcp-docs/mobile/components/FloatingAssetCard.txt +155 -0
  37. package/mcp-docs/mobile/components/HStack.txt +234 -0
  38. package/mcp-docs/mobile/components/HeroSquare.txt +47 -0
  39. package/mcp-docs/mobile/components/Icon.txt +51 -0
  40. package/mcp-docs/mobile/components/IconButton.txt +268 -0
  41. package/mcp-docs/mobile/components/InputChip.txt +187 -0
  42. package/mcp-docs/mobile/components/Interactable.txt +186 -0
  43. package/mcp-docs/mobile/components/LineChart.txt +1324 -0
  44. package/mcp-docs/mobile/components/Link.txt +291 -0
  45. package/mcp-docs/mobile/components/ListCell.txt +412 -0
  46. package/mcp-docs/mobile/components/LogoMark.txt +84 -0
  47. package/mcp-docs/mobile/components/LogoWordMark.txt +93 -0
  48. package/mcp-docs/mobile/components/Lottie.txt +138 -0
  49. package/mcp-docs/mobile/components/LottieStatusAnimation.txt +46 -0
  50. package/mcp-docs/mobile/components/Modal.txt +83 -0
  51. package/mcp-docs/mobile/components/ModalBody.txt +33 -0
  52. package/mcp-docs/mobile/components/ModalFooter.txt +24 -0
  53. package/mcp-docs/mobile/components/ModalHeader.txt +27 -0
  54. package/mcp-docs/mobile/components/MultiContentModule.txt +379 -0
  55. package/mcp-docs/mobile/components/NavigationTitle.txt +131 -0
  56. package/mcp-docs/mobile/components/NavigationTitleSelect.txt +141 -0
  57. package/mcp-docs/mobile/components/NudgeCard.txt +89 -0
  58. package/mcp-docs/mobile/components/Numpad.txt +340 -0
  59. package/mcp-docs/mobile/components/Overlay.txt +151 -0
  60. package/mcp-docs/mobile/components/PageFooter.txt +160 -0
  61. package/mcp-docs/mobile/components/PageHeader.txt +185 -0
  62. package/mcp-docs/mobile/components/PeriodSelector.txt +407 -0
  63. package/mcp-docs/mobile/components/Pictogram.txt +47 -0
  64. package/mcp-docs/mobile/components/Point.txt +204 -0
  65. package/mcp-docs/mobile/components/PortalProvider.txt +78 -0
  66. package/mcp-docs/mobile/components/Pressable.txt +210 -0
  67. package/mcp-docs/mobile/components/ProgressBar.txt +129 -0
  68. package/mcp-docs/mobile/components/ProgressBarWithFixedLabels.txt +160 -0
  69. package/mcp-docs/mobile/components/ProgressBarWithFloatLabel.txt +137 -0
  70. package/mcp-docs/mobile/components/ProgressCircle.txt +236 -0
  71. package/mcp-docs/mobile/components/Radio.txt +241 -0
  72. package/mcp-docs/mobile/components/RadioCell.txt +201 -0
  73. package/mcp-docs/mobile/components/RadioGroup.txt +281 -0
  74. package/mcp-docs/mobile/components/ReferenceLine.txt +152 -0
  75. package/mcp-docs/mobile/components/RemoteImage.txt +105 -0
  76. package/mcp-docs/mobile/components/RemoteImageGroup.txt +60 -0
  77. package/mcp-docs/mobile/components/RollingNumber.txt +788 -0
  78. package/mcp-docs/mobile/components/Scrubber.txt +203 -0
  79. package/mcp-docs/mobile/components/SearchInput.txt +191 -0
  80. package/mcp-docs/mobile/components/SectionHeader.txt +204 -0
  81. package/mcp-docs/mobile/components/SegmentedTabs.txt +315 -0
  82. package/mcp-docs/mobile/components/Select.txt +211 -0
  83. package/mcp-docs/mobile/components/SelectChip.txt +323 -0
  84. package/mcp-docs/mobile/components/SelectOption.txt +84 -0
  85. package/mcp-docs/mobile/components/SlideButton.txt +330 -0
  86. package/mcp-docs/mobile/components/Spacer.txt +83 -0
  87. package/mcp-docs/mobile/components/Sparkline.txt +122 -0
  88. package/mcp-docs/mobile/components/SparklineGradient.txt +106 -0
  89. package/mcp-docs/mobile/components/SparklineInteractive.txt +156 -0
  90. package/mcp-docs/mobile/components/SparklineInteractiveHeader.txt +72 -0
  91. package/mcp-docs/mobile/components/Spinner.txt +48 -0
  92. package/mcp-docs/mobile/components/SpotIcon.txt +47 -0
  93. package/mcp-docs/mobile/components/SpotRectangle.txt +47 -0
  94. package/mcp-docs/mobile/components/SpotSquare.txt +47 -0
  95. package/mcp-docs/mobile/components/Stepper.txt +527 -0
  96. package/mcp-docs/mobile/components/SubBrandLogoMark.txt +125 -0
  97. package/mcp-docs/mobile/components/SubBrandLogoWordMark.txt +125 -0
  98. package/mcp-docs/mobile/components/Switch.txt +97 -0
  99. package/mcp-docs/mobile/components/TabIndicator.txt +48 -0
  100. package/mcp-docs/mobile/components/TabLabel.txt +153 -0
  101. package/mcp-docs/mobile/components/TabNavigation.txt +146 -0
  102. package/mcp-docs/mobile/components/TabbedChips.txt +142 -0
  103. package/mcp-docs/mobile/components/Tabs.txt +190 -0
  104. package/mcp-docs/mobile/components/Tag.txt +300 -0
  105. package/mcp-docs/mobile/components/Text.txt +211 -0
  106. package/mcp-docs/mobile/components/TextInput.txt +717 -0
  107. package/mcp-docs/mobile/components/ThemeProvider.txt +132 -0
  108. package/mcp-docs/mobile/components/Toast.txt +196 -0
  109. package/mcp-docs/mobile/components/Tooltip.txt +59 -0
  110. package/mcp-docs/mobile/components/TopNavBar.txt +161 -0
  111. package/mcp-docs/mobile/components/Tour.txt +158 -0
  112. package/mcp-docs/mobile/components/Tray.txt +252 -0
  113. package/mcp-docs/mobile/components/UpsellCard.txt +321 -0
  114. package/mcp-docs/mobile/components/VStack.txt +222 -0
  115. package/mcp-docs/mobile/components/XAxis.txt +621 -0
  116. package/mcp-docs/mobile/components/YAxis.txt +567 -0
  117. package/mcp-docs/mobile/getting-started/ai-overview.txt +108 -0
  118. package/mcp-docs/mobile/getting-started/installation.txt +57 -0
  119. package/mcp-docs/mobile/getting-started/introduction.txt +102 -0
  120. package/mcp-docs/mobile/getting-started/playground.txt +28 -0
  121. package/mcp-docs/mobile/getting-started/styling.txt +84 -0
  122. package/mcp-docs/mobile/getting-started/theming.txt +286 -0
  123. package/mcp-docs/mobile/hooks/useDimensions.txt +72 -0
  124. package/mcp-docs/mobile/hooks/useEventHandler.txt +120 -0
  125. package/mcp-docs/mobile/hooks/useMergeRefs.txt +116 -0
  126. package/mcp-docs/mobile/hooks/useOverlayContentContext.txt +280 -0
  127. package/mcp-docs/mobile/hooks/usePreviousValue.txt +74 -0
  128. package/mcp-docs/mobile/hooks/useRefMap.txt +178 -0
  129. package/mcp-docs/mobile/hooks/useTheme.txt +321 -0
  130. package/mcp-docs/mobile/routes.txt +139 -0
  131. package/mcp-docs/web/components/Accordion.txt +189 -0
  132. package/mcp-docs/web/components/AccordionItem.txt +31 -0
  133. package/mcp-docs/web/components/Alert.txt +164 -0
  134. package/mcp-docs/web/components/AreaChart.txt +510 -0
  135. package/mcp-docs/web/components/Avatar.txt +211 -0
  136. package/mcp-docs/web/components/AvatarButton.txt +240 -0
  137. package/mcp-docs/web/components/Banner.txt +226 -0
  138. package/mcp-docs/web/components/BarChart.txt +1267 -0
  139. package/mcp-docs/web/components/Box.txt +175 -0
  140. package/mcp-docs/web/components/Button.txt +212 -0
  141. package/mcp-docs/web/components/ButtonGroup.txt +79 -0
  142. package/mcp-docs/web/components/Calendar.txt +181 -0
  143. package/mcp-docs/web/components/Carousel.txt +1575 -0
  144. package/mcp-docs/web/components/CartesianChart.txt +1044 -0
  145. package/mcp-docs/web/components/CellMedia.txt +56 -0
  146. package/mcp-docs/web/components/Checkbox.txt +188 -0
  147. package/mcp-docs/web/components/CheckboxCell.txt +202 -0
  148. package/mcp-docs/web/components/CheckboxGroup.txt +219 -0
  149. package/mcp-docs/web/components/Chip.txt +196 -0
  150. package/mcp-docs/web/components/Coachmark.txt +188 -0
  151. package/mcp-docs/web/components/Collapsible.txt +119 -0
  152. package/mcp-docs/web/components/ContainedAssetCard.txt +232 -0
  153. package/mcp-docs/web/components/ContentCard.txt +367 -0
  154. package/mcp-docs/web/components/ContentCardBody.txt +137 -0
  155. package/mcp-docs/web/components/ContentCardFooter.txt +129 -0
  156. package/mcp-docs/web/components/ContentCardHeader.txt +147 -0
  157. package/mcp-docs/web/components/ContentCell.txt +219 -0
  158. package/mcp-docs/web/components/ControlGroup.txt +436 -0
  159. package/mcp-docs/web/components/DatePicker.txt +505 -0
  160. package/mcp-docs/web/components/Divider.txt +143 -0
  161. package/mcp-docs/web/components/DotCount.txt +149 -0
  162. package/mcp-docs/web/components/DotStatusColor.txt +58 -0
  163. package/mcp-docs/web/components/DotSymbol.txt +137 -0
  164. package/mcp-docs/web/components/Dropdown.txt +119 -0
  165. package/mcp-docs/web/components/Fallback.txt +163 -0
  166. package/mcp-docs/web/components/FloatingAssetCard.txt +250 -0
  167. package/mcp-docs/web/components/FullscreenAlert.txt +69 -0
  168. package/mcp-docs/web/components/FullscreenModal.txt +145 -0
  169. package/mcp-docs/web/components/FullscreenModalLayout.txt +187 -0
  170. package/mcp-docs/web/components/Grid.txt +236 -0
  171. package/mcp-docs/web/components/GridColumn.txt +209 -0
  172. package/mcp-docs/web/components/HStack.txt +236 -0
  173. package/mcp-docs/web/components/HeroSquare.txt +48 -0
  174. package/mcp-docs/web/components/Icon.txt +145 -0
  175. package/mcp-docs/web/components/IconButton.txt +390 -0
  176. package/mcp-docs/web/components/InputChip.txt +187 -0
  177. package/mcp-docs/web/components/Interactable.txt +193 -0
  178. package/mcp-docs/web/components/LineChart.txt +1576 -0
  179. package/mcp-docs/web/components/Link.txt +243 -0
  180. package/mcp-docs/web/components/ListCell.txt +418 -0
  181. package/mcp-docs/web/components/LogoMark.txt +84 -0
  182. package/mcp-docs/web/components/LogoWordMark.txt +93 -0
  183. package/mcp-docs/web/components/Lottie.txt +157 -0
  184. package/mcp-docs/web/components/LottieStatusAnimation.txt +57 -0
  185. package/mcp-docs/web/components/MediaQueryProvider.txt +108 -0
  186. package/mcp-docs/web/components/Modal.txt +196 -0
  187. package/mcp-docs/web/components/ModalBody.txt +117 -0
  188. package/mcp-docs/web/components/ModalFooter.txt +119 -0
  189. package/mcp-docs/web/components/ModalHeader.txt +123 -0
  190. package/mcp-docs/web/components/MultiContentModule.txt +381 -0
  191. package/mcp-docs/web/components/NavigationBar.txt +102 -0
  192. package/mcp-docs/web/components/NavigationTitle.txt +25 -0
  193. package/mcp-docs/web/components/NavigationTitleSelect.txt +45 -0
  194. package/mcp-docs/web/components/NudgeCard.txt +181 -0
  195. package/mcp-docs/web/components/Overlay.txt +171 -0
  196. package/mcp-docs/web/components/PageFooter.txt +184 -0
  197. package/mcp-docs/web/components/PageHeader.txt +243 -0
  198. package/mcp-docs/web/components/Pagination.txt +499 -0
  199. package/mcp-docs/web/components/PeriodSelector.txt +703 -0
  200. package/mcp-docs/web/components/Pictogram.txt +48 -0
  201. package/mcp-docs/web/components/Point.txt +460 -0
  202. package/mcp-docs/web/components/PortalProvider.txt +76 -0
  203. package/mcp-docs/web/components/Pressable.txt +193 -0
  204. package/mcp-docs/web/components/ProgressBar.txt +163 -0
  205. package/mcp-docs/web/components/ProgressBarWithFixedLabels.txt +212 -0
  206. package/mcp-docs/web/components/ProgressBarWithFloatLabel.txt +181 -0
  207. package/mcp-docs/web/components/ProgressCircle.txt +443 -0
  208. package/mcp-docs/web/components/Radio.txt +219 -0
  209. package/mcp-docs/web/components/RadioCell.txt +215 -0
  210. package/mcp-docs/web/components/RadioGroup.txt +288 -0
  211. package/mcp-docs/web/components/ReferenceLine.txt +451 -0
  212. package/mcp-docs/web/components/RemoteImage.txt +165 -0
  213. package/mcp-docs/web/components/RemoteImageGroup.txt +86 -0
  214. package/mcp-docs/web/components/RollingNumber.txt +1021 -0
  215. package/mcp-docs/web/components/Scrubber.txt +231 -0
  216. package/mcp-docs/web/components/SearchInput.txt +117 -0
  217. package/mcp-docs/web/components/SectionHeader.txt +217 -0
  218. package/mcp-docs/web/components/SegmentedTabs.txt +324 -0
  219. package/mcp-docs/web/components/Select.txt +224 -0
  220. package/mcp-docs/web/components/SelectChip.txt +314 -0
  221. package/mcp-docs/web/components/SelectOption.txt +165 -0
  222. package/mcp-docs/web/components/Sidebar.txt +349 -0
  223. package/mcp-docs/web/components/SidebarItem.txt +131 -0
  224. package/mcp-docs/web/components/SidebarMoreMenu.txt +30 -0
  225. package/mcp-docs/web/components/Spacer.txt +173 -0
  226. package/mcp-docs/web/components/Sparkline.txt +122 -0
  227. package/mcp-docs/web/components/SparklineGradient.txt +106 -0
  228. package/mcp-docs/web/components/SparklineInteractive.txt +153 -0
  229. package/mcp-docs/web/components/SparklineInteractiveHeader.txt +76 -0
  230. package/mcp-docs/web/components/Spinner.txt +128 -0
  231. package/mcp-docs/web/components/SpotIcon.txt +48 -0
  232. package/mcp-docs/web/components/SpotRectangle.txt +48 -0
  233. package/mcp-docs/web/components/SpotSquare.txt +48 -0
  234. package/mcp-docs/web/components/Stepper.txt +682 -0
  235. package/mcp-docs/web/components/SubBrandLogoMark.txt +125 -0
  236. package/mcp-docs/web/components/SubBrandLogoWordMark.txt +125 -0
  237. package/mcp-docs/web/components/Switch.txt +85 -0
  238. package/mcp-docs/web/components/TabIndicator.txt +48 -0
  239. package/mcp-docs/web/components/TabLabel.txt +158 -0
  240. package/mcp-docs/web/components/TabNavigation.txt +159 -0
  241. package/mcp-docs/web/components/TabbedChips.txt +155 -0
  242. package/mcp-docs/web/components/Table.txt +367 -0
  243. package/mcp-docs/web/components/TableBody.txt +83 -0
  244. package/mcp-docs/web/components/TableCaption.txt +102 -0
  245. package/mcp-docs/web/components/TableCell.txt +165 -0
  246. package/mcp-docs/web/components/TableCellFallback.txt +97 -0
  247. package/mcp-docs/web/components/TableFooter.txt +83 -0
  248. package/mcp-docs/web/components/TableHeader.txt +100 -0
  249. package/mcp-docs/web/components/TableRow.txt +140 -0
  250. package/mcp-docs/web/components/Tabs.txt +212 -0
  251. package/mcp-docs/web/components/Tag.txt +304 -0
  252. package/mcp-docs/web/components/Text.txt +232 -0
  253. package/mcp-docs/web/components/TextInput.txt +652 -0
  254. package/mcp-docs/web/components/ThemeProvider.txt +199 -0
  255. package/mcp-docs/web/components/TileButton.txt +158 -0
  256. package/mcp-docs/web/components/Toast.txt +203 -0
  257. package/mcp-docs/web/components/Tooltip.txt +89 -0
  258. package/mcp-docs/web/components/Tour.txt +179 -0
  259. package/mcp-docs/web/components/Tray.txt +288 -0
  260. package/mcp-docs/web/components/UpsellCard.txt +319 -0
  261. package/mcp-docs/web/components/VStack.txt +224 -0
  262. package/mcp-docs/web/components/XAxis.txt +619 -0
  263. package/mcp-docs/web/components/YAxis.txt +548 -0
  264. package/mcp-docs/web/getting-started/ai-overview.txt +108 -0
  265. package/mcp-docs/web/getting-started/installation.txt +103 -0
  266. package/mcp-docs/web/getting-started/introduction.txt +102 -0
  267. package/mcp-docs/web/getting-started/playground.txt +28 -0
  268. package/mcp-docs/web/getting-started/styling.txt +161 -0
  269. package/mcp-docs/web/getting-started/templates.txt +121 -0
  270. package/mcp-docs/web/getting-started/theming.txt +426 -0
  271. package/mcp-docs/web/hooks/useBreakpoints.txt +61 -0
  272. package/mcp-docs/web/hooks/useDimensions.txt +114 -0
  273. package/mcp-docs/web/hooks/useEventHandler.txt +120 -0
  274. package/mcp-docs/web/hooks/useHasMounted.txt +75 -0
  275. package/mcp-docs/web/hooks/useIsoEffect.txt +58 -0
  276. package/mcp-docs/web/hooks/useMediaQuery.txt +114 -0
  277. package/mcp-docs/web/hooks/useMergeRefs.txt +116 -0
  278. package/mcp-docs/web/hooks/useOverlayContentContext.txt +279 -0
  279. package/mcp-docs/web/hooks/usePreviousValue.txt +74 -0
  280. package/mcp-docs/web/hooks/useRefMap.txt +178 -0
  281. package/mcp-docs/web/hooks/useScrollBlocker.txt +82 -0
  282. package/mcp-docs/web/hooks/useTheme.txt +364 -0
  283. package/mcp-docs/web/routes.txt +163 -0
  284. package/package.json +1 -1
@@ -0,0 +1,499 @@
1
+ # Pagination
2
+
3
+ Pagination is used to navigate through a list of items.
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import { Pagination } from '@coinbase/cds-web/pagination/Pagination'
9
+ ```
10
+
11
+ ## Examples
12
+
13
+ ### Basic Pagination
14
+
15
+ A simple example showing basic pagination with 10 total pages.
16
+
17
+ ```jsx live
18
+ function BasicPaginationExample() {
19
+ const [activePage, setActivePage] = useState(1);
20
+ const totalPages = 10;
21
+
22
+ return <Pagination totalPages={totalPages} activePage={activePage} onChange={setActivePage} />;
23
+ }
24
+ ```
25
+
26
+ ### Pagination with First/Last Buttons
27
+
28
+ Shows pagination with the optional First and Last page navigation buttons enabled.
29
+
30
+ ```jsx live
31
+ function FirstLastButtonsPaginationExample() {
32
+ const [activePage, setActivePage] = useState(5);
33
+ const totalPages = 15;
34
+
35
+ return (
36
+ <Pagination
37
+ totalPages={totalPages}
38
+ activePage={activePage}
39
+ onChange={setActivePage}
40
+ showFirstLastButtons
41
+ />
42
+ );
43
+ }
44
+ ```
45
+
46
+ ### Pagination with Custom Counts
47
+
48
+ Demonstrates using `siblingCount` and `boundaryCount` to adjust the number of pages displayed around the current page and at the boundaries, useful for larger page ranges.
49
+
50
+ ```jsx live
51
+ function CustomCountsPaginationExample() {
52
+ const [activePage, setActivePage] = useState(10);
53
+ const totalPages = 20;
54
+
55
+ return (
56
+ <Pagination
57
+ totalPages={totalPages}
58
+ activePage={activePage}
59
+ onChange={setActivePage}
60
+ showFirstLastButtons
61
+ siblingCount={2} // Show 2 pages on each side of the current page
62
+ boundaryCount={1} // Show 1 page at the start and end
63
+ />
64
+ );
65
+ }
66
+ ```
67
+
68
+ ### Controlled Pagination
69
+
70
+ This example explicitly manages the current page state, which might be necessary if the page change triggers other actions like fetching data.
71
+
72
+ ```jsx live
73
+ function ControlledPaginationExample() {
74
+ const [activePage, setActivePage] = useState(3);
75
+ const totalPages = 10;
76
+
77
+ const handlePageChange = (newPage) => {
78
+ console.log(`Navigating to page: ${newPage}`);
79
+ // Here you might fetch data for the new page
80
+ setActivePage(newPage);
81
+ };
82
+
83
+ return (
84
+ <Pagination
85
+ totalPages={totalPages}
86
+ activePage={activePage}
87
+ onChange={handlePageChange}
88
+ showFirstLastButtons
89
+ tooltipLabels={{
90
+ first: 'Jump to first page',
91
+ previous: 'Go back one page',
92
+ next: 'Go forward one page',
93
+ last: 'Jump to last page',
94
+ }}
95
+ />
96
+ );
97
+ }
98
+ ```
99
+
100
+ ### Using the `usePagination` Hook
101
+
102
+ This example shows how to use the headless `usePagination` hook to build a custom pagination interface. The hook provides the logic, and you render the UI.
103
+
104
+ ```jsx live
105
+ function UsePaginationHookExample() {
106
+ const [activePage, setActivePage] = useState(5);
107
+ const totalPages = 12;
108
+
109
+ const { items, goNextPage, goPrevPage, updateActivePage, isFirstPage, isLastPage } =
110
+ usePagination({
111
+ totalPages,
112
+ activePage,
113
+ onChange: setActivePage,
114
+ siblingCount: 1,
115
+ boundaryCount: 1,
116
+ });
117
+
118
+ return (
119
+ <HStack gap={0.5} alignItems="center" justifyContent="center">
120
+ <IconButton
121
+ name="caretLeft"
122
+ onClick={goPrevPage}
123
+ disabled={isFirstPage}
124
+ accessibilityLabel="Previous page"
125
+ compact
126
+ variant="secondary"
127
+ transparent
128
+ />
129
+ {items.map((item, index) => {
130
+ if (item.type === 'ellipsis') {
131
+ // Render ellipsis as simple text
132
+ return (
133
+ <Text
134
+ key={`ellipsis-${index}`}
135
+ aria-hidden="true"
136
+ color="fgMuted"
137
+ paddingX={1}
138
+ noWrap
139
+ testID={`pagination-ellipsis-${index}`}
140
+ >
141
+ ...
142
+ </Text>
143
+ );
144
+ }
145
+ // Render page buttons
146
+ return (
147
+ <Button
148
+ key={item.page}
149
+ onClick={() => updateActivePage(item.page)}
150
+ variant={item.selected ? 'primary' : 'secondary'}
151
+ compact
152
+ transparent={!item.selected}
153
+ aria-current={item.selected ? 'page' : undefined}
154
+ accessibilityLabel={`Page ${item.page}`}
155
+ >
156
+ {item.page}
157
+ </Button>
158
+ );
159
+ })}
160
+ <IconButton
161
+ name="caretRight"
162
+ onClick={goNextPage}
163
+ disabled={isLastPage}
164
+ accessibilityLabel="Next page"
165
+ compact
166
+ variant="secondary"
167
+ transparent
168
+ />
169
+ </HStack>
170
+ );
171
+ }
172
+ ```
173
+
174
+ ### Customized Components
175
+
176
+ This example demonstrates how to customize the appearance of pagination by providing custom components for page buttons, navigation buttons, and ellipsis.
177
+
178
+ ```jsx live
179
+ function CustomizedPaginationExample() {
180
+ const [activePage, setActivePage] = useState(5);
181
+ const totalPages = 20;
182
+
183
+ // Custom page button component
184
+ const CustomPageButton = forwardRef(
185
+ ({ page, isCurrentPage, onClick, accessibilityLabel }, ref) => (
186
+ <Box
187
+ ref={ref}
188
+ as="button"
189
+ aria-current={isCurrentPage ? 'page' : undefined}
190
+ aria-label={accessibilityLabel}
191
+ background={isCurrentPage ? 'bgSecondary' : 'bg'}
192
+ borderRadius={100}
193
+ color={isCurrentPage ? 'fgPrimary' : 'fgMuted'}
194
+ margin={0}
195
+ minWidth={8}
196
+ onClick={() => onClick(page)}
197
+ onKeyDown={(e) => {
198
+ if (e.key === 'Enter' || e.key === ' ') {
199
+ e.preventDefault();
200
+ onClick(page);
201
+ }
202
+ }}
203
+ padding={1}
204
+ role="button"
205
+ tabIndex={0}
206
+ style={{ cursor: 'pointer' }}
207
+ >
208
+ <Text font="body">{page}</Text>
209
+ </Box>
210
+ ),
211
+ );
212
+
213
+ // Custom navigation button component
214
+ const CustomNavButton = forwardRef(
215
+ ({ direction, disabled, onClick, accessibilityLabel }, ref) => {
216
+ // Direction-specific arrows
217
+ const getArrow = () => {
218
+ switch (direction) {
219
+ case 'first':
220
+ return '««';
221
+ case 'previous':
222
+ return '«';
223
+ case 'next':
224
+ return '»';
225
+ case 'last':
226
+ return '»»';
227
+ default:
228
+ return '';
229
+ }
230
+ };
231
+
232
+ return (
233
+ <Box
234
+ ref={ref}
235
+ aria-disabled={disabled}
236
+ aria-label={accessibilityLabel}
237
+ as="button"
238
+ background="bgSecondary"
239
+ borderRadius={100}
240
+ color={disabled ? 'fgMuted' : 'fgPrimary'}
241
+ disabled={disabled}
242
+ display="flex"
243
+ justifyContent="center"
244
+ alignItems="center"
245
+ margin={0}
246
+ minWidth={8}
247
+ onClick={disabled ? undefined : onClick}
248
+ onKeyDown={(e) => {
249
+ if (!disabled && (e.key === 'Enter' || e.key === ' ')) {
250
+ e.preventDefault();
251
+ onClick();
252
+ }
253
+ }}
254
+ opacity={disabled ? 0.7 : 1}
255
+ padding={1}
256
+ role="button"
257
+ tabIndex={disabled ? -1 : 0}
258
+ style={{ cursor: disabled ? 'not-allowed' : 'pointer' }}
259
+ >
260
+ {getArrow()}
261
+ </Box>
262
+ );
263
+ },
264
+ );
265
+
266
+ // Custom ellipsis component
267
+ const CustomEllipsis = ({ content = '•••', testID }) => (
268
+ <Box
269
+ alignItems="center"
270
+ aria-hidden="true"
271
+ color="fgMuted"
272
+ display="flex"
273
+ margin={0}
274
+ padding={1}
275
+ testID={testID}
276
+ >
277
+ <Text font="body" noWrap>
278
+ {content}
279
+ </Text>
280
+ </Box>
281
+ );
282
+
283
+ return (
284
+ <Pagination
285
+ activePage={activePage}
286
+ onChange={setActivePage}
287
+ totalPages={totalPages}
288
+ showFirstLastButtons
289
+ PaginationPageButtonComponent={CustomPageButton}
290
+ PaginationNavigationButtonComponent={CustomNavButton}
291
+ PaginationEllipsisComponent={CustomEllipsis}
292
+ />
293
+ );
294
+ }
295
+ ```
296
+
297
+ ### Pagination with Table
298
+
299
+ This example demonstrates integrating the Pagination component with a Table, a common use case for pagination.
300
+
301
+ ```jsx live
302
+ function TablePaginationExample() {
303
+ const totalResults = accounts.length;
304
+ const PAGE_SIZE = 5;
305
+ const [activePage, setActivePage] = useState(1);
306
+ const [isFixed, setIsFixed] = useState(false);
307
+
308
+ // Calculate pagination indexes
309
+ const startIdx = (activePage - 1) * PAGE_SIZE;
310
+ const endIdx = Math.min(startIdx + PAGE_SIZE, totalResults);
311
+ const paginatedAccounts = accounts.slice(startIdx, endIdx);
312
+ const totalPages = Math.ceil(totalResults / PAGE_SIZE);
313
+
314
+ const toggleFixed = () => setIsFixed(!isFixed);
315
+
316
+ return (
317
+ <VStack gap={4}>
318
+ <HStack justifyContent="flex-end">
319
+ <Switch onChange={toggleFixed} checked={isFixed}>
320
+ Fixed Layout
321
+ </Switch>
322
+ </HStack>
323
+
324
+ <Table bordered variant="ruled" tableLayout={isFixed ? 'fixed' : 'auto'}>
325
+ <TableCaption>Cryptocurrency Accounts</TableCaption>
326
+ <TableHeader>
327
+ <TableRow>
328
+ <TableCell title="Asset" width="30%" />
329
+ <TableCell title="Balance" width="40%" />
330
+ <TableCell title="Primary" alignItems="flex-end" width="30%" />
331
+ </TableRow>
332
+ </TableHeader>
333
+
334
+ <TableBody>
335
+ {paginatedAccounts.map((account) => (
336
+ <TableRow key={account.id}>
337
+ <TableCell
338
+ start={
339
+ <Icon name="currencies" size="m" color={account.currency?.color || 'fgMuted'} />
340
+ }
341
+ title={account.name}
342
+ subtitle={account.currency?.code}
343
+ />
344
+ <TableCell title={account.balance?.amount} subtitle={account.balance?.currency} />
345
+ <TableCell direction="horizontal" justifyContent="flex-end">
346
+ <Icon
347
+ name={account.primary ? 'circleCheckmark' : 'circleCross'}
348
+ size="m"
349
+ color={account.primary ? 'fgPositive' : 'fgNegative'}
350
+ />
351
+ </TableCell>
352
+ </TableRow>
353
+ ))}
354
+ </TableBody>
355
+
356
+ <TableFooter>
357
+ <TableRow fullWidth>
358
+ <TableCell colSpan={3} direction="horizontal">
359
+ <HStack gap={2} alignItems="center">
360
+ <Text color="fgMuted" font="body">
361
+ Page {startIdx + 1}-{endIdx}
362
+ </Text>
363
+ <Pagination
364
+ activePage={activePage}
365
+ onChange={setActivePage}
366
+ totalPages={totalPages}
367
+ showFirstLastButtons
368
+ tooltipLabels={{
369
+ first: 'First page of accounts',
370
+ previous: 'Previous page of accounts',
371
+ next: 'Next page of accounts',
372
+ last: 'Last page of accounts',
373
+ }}
374
+ />
375
+ </HStack>
376
+ </TableCell>
377
+ </TableRow>
378
+ </TableFooter>
379
+ </Table>
380
+ </VStack>
381
+ );
382
+ }
383
+ ```
384
+
385
+ ## Props
386
+
387
+ | Prop | Type | Required | Default | Description |
388
+ | --- | --- | --- | --- | --- |
389
+ | `activePage` | `number` | Yes | `-` | React state for the currently active page. Current active page number (1-based) |
390
+ | `onChange` | `(activePage: number) => void` | Yes | `-` | Callback that is fired when the active page changes. Use this callback to update the activePage state. |
391
+ | `totalPages` | `number` | Yes | `-` | Total number of pages. |
392
+ | `PaginationEllipsisComponent` | `PaginationEllipsisComponent` | No | `({ content = '...', testID }: PaginationEllipsisProps) => ( <Text noWrap aria-hidden="true" color="fgMuted" font="headline" testID={testID}> {content} </Text> )` | Custom component for rendering ellipsis |
393
+ | `PaginationNavigationButtonComponent` | `PaginationNavigationButtonComponent` | No | `forwardRef( ( { direction, onClick, disabled, accessibilityLabel, testID }: PaginationNavigationButtonProps, ref: React.ForwardedRef<HTMLButtonElement>, ) => { return ( <IconButton ref={ref} compact transparent accessibilityLabel={accessibilityLabel} disabled={disabled} name={iconMap[direction]} onClick={onClick} testID={testID} variant="secondary" /> ); }, )` | Custom component for rendering navigation buttons. Must use forwardRef to properly receive and forward the ref to a focusable DOM element for focus management to work correctly. |
394
+ | `PaginationPageButtonComponent` | `PaginationPageButtonComponent` | No | `forwardRef( ( { page, onClick, isCurrentPage, disabled, accessibilityLabel, testID, ...props }: PaginationPageButtonProps, ref: React.ForwardedRef<HTMLButtonElement>, ) => { const handleClick = useCallback(() => onClick(page), [onClick, page]); const isSingleDigit = page < 10; return ( <Button ref={ref} compact accessibilityLabel={accessibilityLabel} aria-current={isCurrentPage ? 'page' : undefined} className={cx(isSingleDigit && circularButtonCss)} disabled={disabled} onClick={handleClick} testID={testID} transparent={!isCurrentPage} variant={isCurrentPage ? 'primary' : 'secondary'} {...props} > {page} </Button> ); }, )` | Custom component for rendering page buttons. Must use forwardRef to properly receive and forward the ref to a focusable DOM element for focus management to work correctly. |
395
+ | `accessibilityLabel` | `string` | No | `Pagination` | - |
396
+ | `accessibilityLabels` | `{ next?: string; previous?: string \| undefined; first?: string \| undefined; last?: string \| undefined; page?: ((page: number) => string) \| undefined; } \| undefined` | No | `-` | Custom accessibility labels for navigation buttons |
397
+ | `alignContent` | `ResponsiveProp<center \| normal \| start \| end \| flex-start \| flex-end \| stretch \| baseline \| first baseline \| last baseline \| space-between \| space-around \| space-evenly>` | No | `-` | - |
398
+ | `alignItems` | `ResponsiveProp<center \| normal \| start \| end \| flex-start \| flex-end \| self-start \| self-end \| stretch \| baseline \| first baseline \| last baseline>` | No | `-` | - |
399
+ | `alignSelf` | `ResponsiveProp<center \| normal \| auto \| start \| end \| flex-start \| flex-end \| self-start \| self-end \| stretch \| baseline \| first baseline \| last baseline>` | No | `-` | - |
400
+ | `as` | `div` | No | `-` | - |
401
+ | `aspectRatio` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - |
402
+ | `background` | `currentColor \| fg \| fgMuted \| fgInverse \| fgPrimary \| fgWarning \| fgPositive \| fgNegative \| bg \| bgAlternate \| bgInverse \| bgOverlay \| bgElevation1 \| bgElevation2 \| bgPrimary \| bgPrimaryWash \| bgSecondary \| bgTertiary \| bgSecondaryWash \| bgNegative \| bgNegativeWash \| bgPositive \| bgPositiveWash \| bgWarning \| bgWarningWash \| bgLine \| bgLineHeavy \| bgLineInverse \| bgLinePrimary \| bgLinePrimarySubtle \| accentSubtleRed \| accentBoldRed \| accentSubtleGreen \| accentBoldGreen \| accentSubtleBlue \| accentBoldBlue \| accentSubtlePurple \| accentBoldPurple \| accentSubtleYellow \| accentBoldYellow \| accentSubtleGray \| accentBoldGray \| transparent` | No | `-` | - |
403
+ | `borderBottomLeftRadius` | `0 \| 100 \| 200 \| 300 \| 400 \| 500 \| 600 \| 700 \| 800 \| 900 \| 1000` | No | `-` | - |
404
+ | `borderBottomRightRadius` | `0 \| 100 \| 200 \| 300 \| 400 \| 500 \| 600 \| 700 \| 800 \| 900 \| 1000` | No | `-` | - |
405
+ | `borderBottomWidth` | `0 \| 100 \| 200 \| 300 \| 400 \| 500` | No | `-` | - |
406
+ | `borderColor` | `currentColor \| fg \| fgMuted \| fgInverse \| fgPrimary \| fgWarning \| fgPositive \| fgNegative \| bg \| bgAlternate \| bgInverse \| bgOverlay \| bgElevation1 \| bgElevation2 \| bgPrimary \| bgPrimaryWash \| bgSecondary \| bgTertiary \| bgSecondaryWash \| bgNegative \| bgNegativeWash \| bgPositive \| bgPositiveWash \| bgWarning \| bgWarningWash \| bgLine \| bgLineHeavy \| bgLineInverse \| bgLinePrimary \| bgLinePrimarySubtle \| accentSubtleRed \| accentBoldRed \| accentSubtleGreen \| accentBoldGreen \| accentSubtleBlue \| accentBoldBlue \| accentSubtlePurple \| accentBoldPurple \| accentSubtleYellow \| accentBoldYellow \| accentSubtleGray \| accentBoldGray \| transparent` | No | `-` | - |
407
+ | `borderEndWidth` | `0 \| 100 \| 200 \| 300 \| 400 \| 500` | No | `-` | - |
408
+ | `borderRadius` | `0 \| 100 \| 200 \| 300 \| 400 \| 500 \| 600 \| 700 \| 800 \| 900 \| 1000` | No | `-` | - |
409
+ | `borderStartWidth` | `0 \| 100 \| 200 \| 300 \| 400 \| 500` | No | `-` | - |
410
+ | `borderTopLeftRadius` | `0 \| 100 \| 200 \| 300 \| 400 \| 500 \| 600 \| 700 \| 800 \| 900 \| 1000` | No | `-` | - |
411
+ | `borderTopRightRadius` | `0 \| 100 \| 200 \| 300 \| 400 \| 500 \| 600 \| 700 \| 800 \| 900 \| 1000` | No | `-` | - |
412
+ | `borderTopWidth` | `0 \| 100 \| 200 \| 300 \| 400 \| 500` | No | `-` | - |
413
+ | `borderWidth` | `0 \| 100 \| 200 \| 300 \| 400 \| 500` | No | `-` | - |
414
+ | `bordered` | `boolean` | No | `-` | Add a border around all sides of the box. |
415
+ | `borderedBottom` | `boolean` | No | `-` | Add a border to the bottom side of the box. |
416
+ | `borderedEnd` | `boolean` | No | `-` | Add a border to the trailing side of the box. |
417
+ | `borderedHorizontal` | `boolean` | No | `-` | Add a border to the leading and trailing sides of the box. |
418
+ | `borderedStart` | `boolean` | No | `-` | Add a border to the leading side of the box. |
419
+ | `borderedTop` | `boolean` | No | `-` | Add a border to the top side of the box. |
420
+ | `borderedVertical` | `boolean` | No | `-` | Add a border to the top and bottom sides of the box. |
421
+ | `bottom` | `ResponsiveProp<Bottom<string \| number>>` | No | `-` | - |
422
+ | `boundaryCount` | `number` | No | `1` | Number of pages to show at the beginning and end of pagination. |
423
+ | `color` | `currentColor \| fg \| fgMuted \| fgInverse \| fgPrimary \| fgWarning \| fgPositive \| fgNegative \| bg \| bgAlternate \| bgInverse \| bgOverlay \| bgElevation1 \| bgElevation2 \| bgPrimary \| bgPrimaryWash \| bgSecondary \| bgTertiary \| bgSecondaryWash \| bgNegative \| bgNegativeWash \| bgPositive \| bgPositiveWash \| bgWarning \| bgWarningWash \| bgLine \| bgLineHeavy \| bgLineInverse \| bgLinePrimary \| bgLinePrimarySubtle \| accentSubtleRed \| accentBoldRed \| accentSubtleGreen \| accentBoldGreen \| accentSubtleBlue \| accentBoldBlue \| accentSubtlePurple \| accentBoldPurple \| accentSubtleYellow \| accentBoldYellow \| accentSubtleGray \| accentBoldGray \| transparent` | No | `-` | - |
424
+ | `columnGap` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - |
425
+ | `dangerouslySetBackground` | `string` | No | `-` | - |
426
+ | `disabled` | `boolean` | No | `-` | - |
427
+ | `display` | `ResponsiveProp<grid \| revert \| none \| block \| inline \| inline-block \| flex \| inline-flex \| inline-grid \| contents \| flow-root \| list-item>` | No | `-` | - |
428
+ | `elevation` | `0 \| 1 \| 2` | No | `-` | - |
429
+ | `flexBasis` | `ResponsiveProp<FlexBasis<string \| number>>` | No | `-` | - |
430
+ | `flexDirection` | `ResponsiveProp<column \| row \| row-reverse \| column-reverse>` | No | `-` | - |
431
+ | `flexGrow` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset` | No | `-` | - |
432
+ | `flexShrink` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset` | No | `-` | - |
433
+ | `flexWrap` | `ResponsiveProp<nowrap \| wrap \| wrap-reverse>` | No | `-` | - |
434
+ | `font` | `ResponsiveProp<FontFamily \| inherit>` | No | `-` | - |
435
+ | `fontFamily` | `ResponsiveProp<FontFamily \| inherit>` | No | `-` | - |
436
+ | `fontSize` | `ResponsiveProp<FontSize \| inherit>` | No | `-` | - |
437
+ | `fontWeight` | `ResponsiveProp<FontWeight \| inherit>` | No | `-` | - |
438
+ | `gap` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - |
439
+ | `grid` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| none` | No | `-` | - |
440
+ | `gridArea` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - |
441
+ | `gridAutoColumns` | `ResponsiveProp<GridAutoColumns<string \| number>>` | No | `-` | - |
442
+ | `gridAutoFlow` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| row \| column \| dense` | No | `-` | - |
443
+ | `gridAutoRows` | `ResponsiveProp<GridAutoRows<string \| number>>` | No | `-` | - |
444
+ | `gridColumn` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - |
445
+ | `gridColumnEnd` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - |
446
+ | `gridColumnStart` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - |
447
+ | `gridRow` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - |
448
+ | `gridRowEnd` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - |
449
+ | `gridRowStart` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - |
450
+ | `gridTemplate` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| none` | No | `-` | - |
451
+ | `gridTemplateAreas` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| none` | No | `-` | - |
452
+ | `gridTemplateColumns` | `ResponsiveProp<GridTemplateColumns<string \| number>>` | No | `-` | - |
453
+ | `gridTemplateRows` | `ResponsiveProp<GridTemplateRows<string \| number>>` | No | `-` | - |
454
+ | `height` | `ResponsiveProp<Height<string \| number>>` | No | `-` | - |
455
+ | `justifyContent` | `ResponsiveProp<left \| right \| center \| normal \| start \| end \| flex-start \| flex-end \| stretch \| space-between \| space-around \| space-evenly>` | No | `-` | - |
456
+ | `key` | `Key \| null` | No | `-` | - |
457
+ | `left` | `ResponsiveProp<Left<string \| number>>` | No | `-` | - |
458
+ | `lineHeight` | `ResponsiveProp<LineHeight \| inherit>` | No | `-` | - |
459
+ | `margin` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - |
460
+ | `marginBottom` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - |
461
+ | `marginEnd` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - |
462
+ | `marginStart` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - |
463
+ | `marginTop` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - |
464
+ | `marginX` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - |
465
+ | `marginY` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - |
466
+ | `maxHeight` | `ResponsiveProp<MaxHeight<string \| number>>` | No | `-` | - |
467
+ | `maxWidth` | `ResponsiveProp<MaxWidth<string \| number>>` | No | `-` | - |
468
+ | `minHeight` | `ResponsiveProp<MinHeight<string \| number>>` | No | `-` | - |
469
+ | `minWidth` | `ResponsiveProp<MinWidth<string \| number>>` | No | `-` | - |
470
+ | `opacity` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset` | No | `-` | - |
471
+ | `overflow` | `ResponsiveProp<hidden \| auto \| visible \| clip \| scroll>` | No | `-` | - |
472
+ | `padding` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - |
473
+ | `paddingBottom` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - |
474
+ | `paddingEnd` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - |
475
+ | `paddingStart` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - |
476
+ | `paddingTop` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - |
477
+ | `paddingX` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - |
478
+ | `paddingY` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - |
479
+ | `pin` | `top \| bottom \| left \| right \| all` | No | `-` | Direction in which to absolutely pin the box. |
480
+ | `position` | `ResponsiveProp<fixed \| static \| relative \| absolute \| sticky>` | No | `-` | - |
481
+ | `ref` | `RefObject<HTMLDivElement> \| ((instance: HTMLDivElement \| null) => void) \| null` | No | `-` | - |
482
+ | `right` | `ResponsiveProp<Right<string \| number>>` | No | `-` | - |
483
+ | `rowGap` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - |
484
+ | `showFirstLastButtons` | `boolean` | No | `-` | Whether to show first and last page navigation buttons |
485
+ | `siblingCount` | `number` | No | `1` | Number of pages to show on each side of current page. |
486
+ | `style` | `CSSProperties` | No | `-` | - |
487
+ | `testID` | `string` | No | `-` | Used to locate this element in unit and end-to-end tests. Under the hood, testID translates to data-testid on Web. On Mobile, testID stays the same - testID |
488
+ | `testIDMap` | `{ nav?: string; nextButton?: string \| undefined; prevButton?: string \| undefined; firstButton?: string \| undefined; lastButton?: string \| undefined; } \| undefined` | No | `-` | Custom test IDs for specific elements within pagination |
489
+ | `textAlign` | `ResponsiveProp<center \| start \| end \| justify>` | No | `-` | - |
490
+ | `textDecoration` | `ResponsiveProp<none \| underline \| overline \| line-through \| underline overline \| underline double>` | No | `-` | - |
491
+ | `textTransform` | `ResponsiveProp<capitalize \| lowercase \| none \| uppercase>` | No | `-` | - |
492
+ | `top` | `ResponsiveProp<Top<string \| number>>` | No | `-` | - |
493
+ | `transform` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| none` | No | `-` | - |
494
+ | `userSelect` | `ResponsiveProp<text \| none \| auto \| all>` | No | `-` | - |
495
+ | `visibility` | `ResponsiveProp<hidden \| visible>` | No | `-` | - |
496
+ | `width` | `ResponsiveProp<Width<string \| number>>` | No | `-` | - |
497
+ | `zIndex` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - |
498
+
499
+