@gunkin/uiify 0.0.19-alpha → 0.0.22-alpha

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 (439) hide show
  1. package/agents/components.md +14 -1
  2. package/agents/index.md +32 -1
  3. package/agents/reference/components/alert.md +44 -0
  4. package/agents/reference/components/aspect-ratio.md +26 -0
  5. package/agents/reference/components/avatar.md +32 -0
  6. package/agents/reference/components/badge.md +31 -0
  7. package/agents/reference/components/breadcrumb.md +11 -1
  8. package/agents/reference/components/button.md +4 -4
  9. package/agents/reference/components/candle-chart.md +20 -1
  10. package/agents/reference/components/card.md +24 -0
  11. package/agents/reference/components/carousel.md +3 -2
  12. package/agents/reference/components/checkbox.md +2 -0
  13. package/agents/reference/components/combobox.md +2 -1
  14. package/agents/reference/components/date-picker.md +23 -0
  15. package/agents/reference/components/description-list.md +38 -0
  16. package/agents/reference/components/drawer.md +8 -1
  17. package/agents/reference/components/dropdown-menu.md +1 -1
  18. package/agents/reference/components/empty.md +45 -0
  19. package/agents/reference/components/fieldset.md +31 -0
  20. package/agents/reference/components/file-upload.md +12 -1
  21. package/agents/reference/components/form-error-summary.md +33 -0
  22. package/agents/reference/components/input-group.md +33 -0
  23. package/agents/reference/components/item.md +52 -0
  24. package/agents/reference/components/line-chart.md +1 -0
  25. package/agents/reference/components/modal.md +8 -1
  26. package/agents/reference/components/number-field.md +14 -3
  27. package/agents/reference/components/pagination.md +22 -1
  28. package/agents/reference/components/progress.md +16 -0
  29. package/agents/reference/components/slider.md +9 -1
  30. package/agents/reference/components/spinner.md +8 -1
  31. package/agents/reference/components/toast.md +14 -1
  32. package/dist/components/alert/Alert.d.ts +15 -0
  33. package/dist/components/alert/Alert.d.ts.map +1 -0
  34. package/dist/components/alert/Alert.js +61 -0
  35. package/dist/components/alert/Alert.js.map +1 -0
  36. package/dist/components/alert/index.d.ts +3 -0
  37. package/dist/components/alert/index.d.ts.map +1 -0
  38. package/dist/components/alert/index.js +7 -0
  39. package/dist/components/alert/index.js.map +1 -0
  40. package/dist/components/alert/types.d.ts +20 -0
  41. package/dist/components/alert/types.d.ts.map +1 -0
  42. package/dist/components/alert/types.js +1 -0
  43. package/dist/components/alert/types.js.map +1 -0
  44. package/dist/components/alert.d.ts +1 -0
  45. package/dist/components/alert.js +1 -0
  46. package/dist/components/aspect-ratio/AspectRatio.d.ts +7 -0
  47. package/dist/components/aspect-ratio/AspectRatio.d.ts.map +1 -0
  48. package/dist/components/aspect-ratio/AspectRatio.js +26 -0
  49. package/dist/components/aspect-ratio/AspectRatio.js.map +1 -0
  50. package/dist/components/aspect-ratio/index.d.ts +3 -0
  51. package/dist/components/aspect-ratio/index.d.ts.map +1 -0
  52. package/dist/components/aspect-ratio/index.js +5 -0
  53. package/dist/components/aspect-ratio/index.js.map +1 -0
  54. package/dist/components/aspect-ratio/types.d.ts +9 -0
  55. package/dist/components/aspect-ratio/types.d.ts.map +1 -0
  56. package/dist/components/aspect-ratio/types.js +1 -0
  57. package/dist/components/aspect-ratio/types.js.map +1 -0
  58. package/dist/components/aspect-ratio.d.ts +1 -0
  59. package/dist/components/aspect-ratio.js +1 -0
  60. package/dist/components/avatar/Avatar.d.ts +7 -0
  61. package/dist/components/avatar/Avatar.d.ts.map +1 -0
  62. package/dist/components/avatar/Avatar.js +24 -0
  63. package/dist/components/avatar/Avatar.js.map +1 -0
  64. package/dist/components/avatar/index.d.ts +3 -0
  65. package/dist/components/avatar/index.d.ts.map +1 -0
  66. package/dist/components/avatar/index.js +5 -0
  67. package/dist/components/avatar/index.js.map +1 -0
  68. package/dist/components/avatar/types.d.ts +12 -0
  69. package/dist/components/avatar/types.d.ts.map +1 -0
  70. package/dist/components/avatar/types.js +1 -0
  71. package/dist/components/avatar/types.js.map +1 -0
  72. package/dist/components/avatar.d.ts +1 -0
  73. package/dist/components/avatar.js +1 -0
  74. package/dist/components/badge/Badge.d.ts +7 -0
  75. package/dist/components/badge/Badge.d.ts.map +1 -0
  76. package/dist/components/badge/Badge.js +21 -0
  77. package/dist/components/badge/Badge.js.map +1 -0
  78. package/dist/components/badge/index.d.ts +3 -0
  79. package/dist/components/badge/index.d.ts.map +1 -0
  80. package/dist/components/badge/index.js +5 -0
  81. package/dist/components/badge/index.js.map +1 -0
  82. package/dist/components/badge/types.d.ts +11 -0
  83. package/dist/components/badge/types.d.ts.map +1 -0
  84. package/dist/components/badge/types.js +1 -0
  85. package/dist/components/badge/types.js.map +1 -0
  86. package/dist/components/badge.d.ts +1 -0
  87. package/dist/components/badge.js +1 -0
  88. package/dist/components/behavior.css +21 -9
  89. package/dist/components/behavior.css.map +1 -1
  90. package/dist/components/breadcrumb/Breadcrumb.d.ts.map +1 -1
  91. package/dist/components/breadcrumb/Breadcrumb.js +21 -4
  92. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  93. package/dist/components/breadcrumb/index.d.ts +1 -1
  94. package/dist/components/breadcrumb/index.d.ts.map +1 -1
  95. package/dist/components/breadcrumb/index.js.map +1 -1
  96. package/dist/components/breadcrumb/types.d.ts +7 -0
  97. package/dist/components/breadcrumb/types.d.ts.map +1 -1
  98. package/dist/components/button/types.d.ts +4 -0
  99. package/dist/components/button/types.d.ts.map +1 -1
  100. package/dist/components/candle-chart/CandleChart.d.ts +1 -1
  101. package/dist/components/candle-chart/CandleChart.d.ts.map +1 -1
  102. package/dist/components/candle-chart/CandleChart.js +81 -46
  103. package/dist/components/candle-chart/CandleChart.js.map +1 -1
  104. package/dist/components/candle-chart/client/CandleChartClient.d.ts.map +1 -1
  105. package/dist/components/candle-chart/client/CandleChartClient.js +5 -0
  106. package/dist/components/candle-chart/client/CandleChartClient.js.map +1 -1
  107. package/dist/components/candle-chart/index.d.ts +1 -1
  108. package/dist/components/candle-chart/index.d.ts.map +1 -1
  109. package/dist/components/candle-chart/index.js.map +1 -1
  110. package/dist/components/candle-chart/types.d.ts +17 -0
  111. package/dist/components/candle-chart/types.d.ts.map +1 -1
  112. package/dist/components/card/Card.d.ts +7 -0
  113. package/dist/components/card/Card.d.ts.map +1 -0
  114. package/dist/components/card/Card.js +16 -0
  115. package/dist/components/card/Card.js.map +1 -0
  116. package/dist/components/card/index.d.ts +3 -0
  117. package/dist/components/card/index.d.ts.map +1 -0
  118. package/dist/components/card/index.js +5 -0
  119. package/dist/components/card/index.js.map +1 -0
  120. package/dist/components/card/types.d.ts +7 -0
  121. package/dist/components/card/types.d.ts.map +1 -0
  122. package/dist/components/card/types.js +1 -0
  123. package/dist/components/card/types.js.map +1 -0
  124. package/dist/components/card.d.ts +1 -0
  125. package/dist/components/card.js +1 -0
  126. package/dist/components/carousel/CarouselMarkup.d.ts.map +1 -1
  127. package/dist/components/carousel/CarouselMarkup.js +20 -3
  128. package/dist/components/carousel/CarouselMarkup.js.map +1 -1
  129. package/dist/components/carousel/carousel-markup.js +2 -2
  130. package/dist/components/carousel/carousel-markup.js.map +1 -1
  131. package/dist/components/carousel/types.d.ts +3 -2
  132. package/dist/components/carousel/types.d.ts.map +1 -1
  133. package/dist/components/checkbox/types.d.ts +2 -0
  134. package/dist/components/checkbox/types.d.ts.map +1 -1
  135. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  136. package/dist/components/combobox/Combobox.js +37 -23
  137. package/dist/components/combobox/Combobox.js.map +1 -1
  138. package/dist/components/combobox/combobox-store.d.ts.map +1 -1
  139. package/dist/components/combobox/combobox-store.js +5 -2
  140. package/dist/components/combobox/combobox-store.js.map +1 -1
  141. package/dist/components/combobox/types.d.ts +2 -3
  142. package/dist/components/combobox/types.d.ts.map +1 -1
  143. package/dist/components/context-menu/ContextMenu.d.ts.map +1 -1
  144. package/dist/components/context-menu/ContextMenu.js +25 -5
  145. package/dist/components/context-menu/ContextMenu.js.map +1 -1
  146. package/dist/components/date-picker/DatePicker.d.ts +7 -0
  147. package/dist/components/date-picker/DatePicker.d.ts.map +1 -0
  148. package/dist/components/date-picker/DatePicker.js +19 -0
  149. package/dist/components/date-picker/DatePicker.js.map +1 -0
  150. package/dist/components/date-picker/index.d.ts +3 -0
  151. package/dist/components/date-picker/index.d.ts.map +1 -0
  152. package/dist/components/date-picker/index.js +5 -0
  153. package/dist/components/date-picker/index.js.map +1 -0
  154. package/dist/components/date-picker/types.d.ts +5 -0
  155. package/dist/components/date-picker/types.d.ts.map +1 -0
  156. package/dist/components/date-picker/types.js +1 -0
  157. package/dist/components/date-picker/types.js.map +1 -0
  158. package/dist/components/date-picker.d.ts +1 -0
  159. package/dist/components/date-picker.js +1 -0
  160. package/dist/components/description-list/DescriptionList.d.ts +15 -0
  161. package/dist/components/description-list/DescriptionList.d.ts.map +1 -0
  162. package/dist/components/description-list/DescriptionList.js +48 -0
  163. package/dist/components/description-list/DescriptionList.js.map +1 -0
  164. package/dist/components/description-list/index.d.ts +3 -0
  165. package/dist/components/description-list/index.d.ts.map +1 -0
  166. package/dist/components/description-list/index.js +7 -0
  167. package/dist/components/description-list/index.js.map +1 -0
  168. package/dist/components/description-list/types.d.ts +15 -0
  169. package/dist/components/description-list/types.d.ts.map +1 -0
  170. package/dist/components/description-list/types.js +1 -0
  171. package/dist/components/description-list/types.js.map +1 -0
  172. package/dist/components/description-list.d.ts +1 -0
  173. package/dist/components/description-list.js +1 -0
  174. package/dist/components/drawer/DrawerNative.d.ts +1 -1
  175. package/dist/components/drawer/DrawerNative.d.ts.map +1 -1
  176. package/dist/components/drawer/DrawerNative.js +5 -2
  177. package/dist/components/drawer/DrawerNative.js.map +1 -1
  178. package/dist/components/drawer/index.d.ts +1 -1
  179. package/dist/components/drawer/index.d.ts.map +1 -1
  180. package/dist/components/drawer/index.js.map +1 -1
  181. package/dist/components/drawer/types.d.ts +4 -0
  182. package/dist/components/drawer/types.d.ts.map +1 -1
  183. package/dist/components/dropdown-menu/DropdownMenu.d.ts.map +1 -1
  184. package/dist/components/dropdown-menu/DropdownMenu.js +31 -15
  185. package/dist/components/dropdown-menu/DropdownMenu.js.map +1 -1
  186. package/dist/components/dropdown-menu/DropdownMenuBar.d.ts.map +1 -1
  187. package/dist/components/dropdown-menu/DropdownMenuBar.js +7 -5
  188. package/dist/components/dropdown-menu/DropdownMenuBar.js.map +1 -1
  189. package/dist/components/dropdown-menu/types.d.ts +1 -1
  190. package/dist/components/dropdown-menu/types.d.ts.map +1 -1
  191. package/dist/components/empty/Empty.d.ts +19 -0
  192. package/dist/components/empty/Empty.d.ts.map +1 -0
  193. package/dist/components/empty/Empty.js +56 -0
  194. package/dist/components/empty/Empty.js.map +1 -0
  195. package/dist/components/empty/index.d.ts +3 -0
  196. package/dist/components/empty/index.d.ts.map +1 -0
  197. package/dist/components/empty/index.js +8 -0
  198. package/dist/components/empty/index.js.map +1 -0
  199. package/dist/components/empty/types.d.ts +19 -0
  200. package/dist/components/empty/types.d.ts.map +1 -0
  201. package/dist/components/empty/types.js +1 -0
  202. package/dist/components/empty/types.js.map +1 -0
  203. package/dist/components/empty.d.ts +1 -0
  204. package/dist/components/empty.js +1 -0
  205. package/dist/components/fieldset/Fieldset.d.ts +11 -0
  206. package/dist/components/fieldset/Fieldset.d.ts.map +1 -0
  207. package/dist/components/fieldset/Fieldset.js +38 -0
  208. package/dist/components/fieldset/Fieldset.js.map +1 -0
  209. package/dist/components/fieldset/index.d.ts +3 -0
  210. package/dist/components/fieldset/index.d.ts.map +1 -0
  211. package/dist/components/fieldset/index.js +6 -0
  212. package/dist/components/fieldset/index.js.map +1 -0
  213. package/dist/components/fieldset/types.d.ts +11 -0
  214. package/dist/components/fieldset/types.d.ts.map +1 -0
  215. package/dist/components/fieldset/types.js +1 -0
  216. package/dist/components/fieldset/types.js.map +1 -0
  217. package/dist/components/fieldset.d.ts +1 -0
  218. package/dist/components/fieldset.js +1 -0
  219. package/dist/components/file-upload/FileUpload.d.ts.map +1 -1
  220. package/dist/components/file-upload/FileUpload.js +11 -4
  221. package/dist/components/file-upload/FileUpload.js.map +1 -1
  222. package/dist/components/file-upload/FileUploadRoot.d.ts +1 -1
  223. package/dist/components/file-upload/FileUploadRoot.d.ts.map +1 -1
  224. package/dist/components/file-upload/FileUploadRoot.js +9 -0
  225. package/dist/components/file-upload/FileUploadRoot.js.map +1 -1
  226. package/dist/components/file-upload/index.d.ts +1 -1
  227. package/dist/components/file-upload/index.d.ts.map +1 -1
  228. package/dist/components/file-upload/index.js.map +1 -1
  229. package/dist/components/file-upload/types.d.ts +8 -0
  230. package/dist/components/file-upload/types.d.ts.map +1 -1
  231. package/dist/components/form-error-summary/FormErrorSummary.d.ts +7 -0
  232. package/dist/components/form-error-summary/FormErrorSummary.d.ts.map +1 -0
  233. package/dist/components/form-error-summary/FormErrorSummary.js +25 -0
  234. package/dist/components/form-error-summary/FormErrorSummary.js.map +1 -0
  235. package/dist/components/form-error-summary/index.d.ts +3 -0
  236. package/dist/components/form-error-summary/index.d.ts.map +1 -0
  237. package/dist/components/form-error-summary/index.js +5 -0
  238. package/dist/components/form-error-summary/index.js.map +1 -0
  239. package/dist/components/form-error-summary/types.d.ts +12 -0
  240. package/dist/components/form-error-summary/types.d.ts.map +1 -0
  241. package/dist/components/form-error-summary/types.js +1 -0
  242. package/dist/components/form-error-summary/types.js.map +1 -0
  243. package/dist/components/form-error-summary.d.ts +1 -0
  244. package/dist/components/form-error-summary.js +1 -0
  245. package/dist/components/index.d.ts +13 -0
  246. package/dist/components/index.d.ts.map +1 -1
  247. package/dist/components/index.js +13 -0
  248. package/dist/components/index.js.map +1 -1
  249. package/dist/components/input-group/InputGroup.d.ts +5 -0
  250. package/dist/components/input-group/InputGroup.d.ts.map +1 -0
  251. package/dist/components/input-group/InputGroup.js +37 -0
  252. package/dist/components/input-group/InputGroup.js.map +1 -0
  253. package/dist/components/input-group/index.d.ts +3 -0
  254. package/dist/components/input-group/index.d.ts.map +1 -0
  255. package/dist/components/input-group/index.js +6 -0
  256. package/dist/components/input-group/index.js.map +1 -0
  257. package/dist/components/input-group/types.d.ts +12 -0
  258. package/dist/components/input-group/types.d.ts.map +1 -0
  259. package/dist/components/input-group/types.js +1 -0
  260. package/dist/components/input-group/types.js.map +1 -0
  261. package/dist/components/input-group.d.ts +1 -0
  262. package/dist/components/input-group.js +1 -0
  263. package/dist/components/internal/native-check-control/NativeCheckControl.d.ts.map +1 -1
  264. package/dist/components/internal/native-check-control/NativeCheckControl.js +4 -0
  265. package/dist/components/internal/native-check-control/NativeCheckControl.js.map +1 -1
  266. package/dist/components/internal/native-check-control/types.d.ts +2 -0
  267. package/dist/components/internal/native-check-control/types.d.ts.map +1 -1
  268. package/dist/components/item/Item.d.ts +23 -0
  269. package/dist/components/item/Item.d.ts.map +1 -0
  270. package/dist/components/item/Item.js +64 -0
  271. package/dist/components/item/Item.js.map +1 -0
  272. package/dist/components/item/index.d.ts +3 -0
  273. package/dist/components/item/index.d.ts.map +1 -0
  274. package/dist/components/item/index.js +9 -0
  275. package/dist/components/item/index.js.map +1 -0
  276. package/dist/components/item/types.d.ts +23 -0
  277. package/dist/components/item/types.d.ts.map +1 -0
  278. package/dist/components/item/types.js +1 -0
  279. package/dist/components/item/types.js.map +1 -0
  280. package/dist/components/item.d.ts +1 -0
  281. package/dist/components/item.js +1 -0
  282. package/dist/components/line-chart/LineChart.d.ts.map +1 -1
  283. package/dist/components/line-chart/LineChart.js +3 -2
  284. package/dist/components/line-chart/LineChart.js.map +1 -1
  285. package/dist/components/line-chart/line-chart-geometry.d.ts +2 -2
  286. package/dist/components/line-chart/line-chart-geometry.d.ts.map +1 -1
  287. package/dist/components/line-chart/line-chart-geometry.js +6 -6
  288. package/dist/components/line-chart/line-chart-geometry.js.map +1 -1
  289. package/dist/components/line-chart/types.d.ts +2 -0
  290. package/dist/components/line-chart/types.d.ts.map +1 -1
  291. package/dist/components/modal/Modal.d.ts +1 -1
  292. package/dist/components/modal/Modal.d.ts.map +1 -1
  293. package/dist/components/modal/Modal.js +5 -2
  294. package/dist/components/modal/Modal.js.map +1 -1
  295. package/dist/components/modal/index.d.ts +1 -1
  296. package/dist/components/modal/index.d.ts.map +1 -1
  297. package/dist/components/modal/index.js.map +1 -1
  298. package/dist/components/modal/types.d.ts +4 -0
  299. package/dist/components/modal/types.d.ts.map +1 -1
  300. package/dist/components/number-field/NumberField.d.ts +1 -1
  301. package/dist/components/number-field/NumberField.d.ts.map +1 -1
  302. package/dist/components/number-field/NumberField.js +25 -5
  303. package/dist/components/number-field/NumberField.js.map +1 -1
  304. package/dist/components/number-field/format.d.ts +1 -1
  305. package/dist/components/number-field/format.d.ts.map +1 -1
  306. package/dist/components/number-field/format.js +32 -7
  307. package/dist/components/number-field/format.js.map +1 -1
  308. package/dist/components/number-field/index.d.ts +1 -1
  309. package/dist/components/number-field/index.d.ts.map +1 -1
  310. package/dist/components/number-field/index.js.map +1 -1
  311. package/dist/components/number-field/types.d.ts +11 -2
  312. package/dist/components/number-field/types.d.ts.map +1 -1
  313. package/dist/components/otp-input/OtpInput.d.ts.map +1 -1
  314. package/dist/components/otp-input/OtpInput.js +2 -0
  315. package/dist/components/otp-input/OtpInput.js.map +1 -1
  316. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  317. package/dist/components/pagination/Pagination.js +93 -29
  318. package/dist/components/pagination/Pagination.js.map +1 -1
  319. package/dist/components/pagination/PaginationShell.d.ts +2 -1
  320. package/dist/components/pagination/PaginationShell.d.ts.map +1 -1
  321. package/dist/components/pagination/PaginationShell.js +44 -9
  322. package/dist/components/pagination/PaginationShell.js.map +1 -1
  323. package/dist/components/pagination/index.d.ts +1 -1
  324. package/dist/components/pagination/index.d.ts.map +1 -1
  325. package/dist/components/pagination/index.js.map +1 -1
  326. package/dist/components/pagination/types.d.ts +18 -0
  327. package/dist/components/pagination/types.d.ts.map +1 -1
  328. package/dist/components/progress/Progress.d.ts +7 -0
  329. package/dist/components/progress/Progress.d.ts.map +1 -0
  330. package/dist/components/progress/Progress.js +9 -0
  331. package/dist/components/progress/Progress.js.map +1 -0
  332. package/dist/components/progress/index.d.ts +3 -0
  333. package/dist/components/progress/index.d.ts.map +1 -0
  334. package/dist/components/progress/index.js +5 -0
  335. package/dist/components/progress/index.js.map +1 -0
  336. package/dist/components/progress/types.d.ts +3 -0
  337. package/dist/components/progress/types.d.ts.map +1 -0
  338. package/dist/components/progress/types.js +1 -0
  339. package/dist/components/progress/types.js.map +1 -0
  340. package/dist/components/progress.d.ts +1 -0
  341. package/dist/components/progress.js +1 -0
  342. package/dist/components/slider/client/SliderClient.d.ts.map +1 -1
  343. package/dist/components/slider/client/SliderClient.js +11 -2
  344. package/dist/components/slider/client/SliderClient.js.map +1 -1
  345. package/dist/components/slider/index.d.ts +1 -1
  346. package/dist/components/slider/index.d.ts.map +1 -1
  347. package/dist/components/slider/index.js.map +1 -1
  348. package/dist/components/slider/types.d.ts +5 -0
  349. package/dist/components/slider/types.d.ts.map +1 -1
  350. package/dist/components/spinner/Spinner.d.ts.map +1 -1
  351. package/dist/components/spinner/Spinner.js +6 -3
  352. package/dist/components/spinner/Spinner.js.map +1 -1
  353. package/dist/components/spinner/index.d.ts +1 -1
  354. package/dist/components/spinner/index.d.ts.map +1 -1
  355. package/dist/components/spinner/index.js.map +1 -1
  356. package/dist/components/spinner/types.d.ts +4 -0
  357. package/dist/components/spinner/types.d.ts.map +1 -1
  358. package/dist/components/tags-input/TagsInput.d.ts.map +1 -1
  359. package/dist/components/tags-input/TagsInput.js +2 -0
  360. package/dist/components/tags-input/TagsInput.js.map +1 -1
  361. package/dist/components/toast/Toast.d.ts +1 -1
  362. package/dist/components/toast/Toast.d.ts.map +1 -1
  363. package/dist/components/toast/Toast.js +33 -29
  364. package/dist/components/toast/Toast.js.map +1 -1
  365. package/dist/components/toast/ToastElements.d.ts.map +1 -1
  366. package/dist/components/toast/ToastElements.js +24 -12
  367. package/dist/components/toast/ToastElements.js.map +1 -1
  368. package/dist/components/toast/index.d.ts +1 -1
  369. package/dist/components/toast/index.d.ts.map +1 -1
  370. package/dist/components/toast/index.js.map +1 -1
  371. package/dist/components/toast/types.d.ts +10 -0
  372. package/dist/components/toast/types.d.ts.map +1 -1
  373. package/dist/components/toolbar/Toolbar.d.ts +2 -2
  374. package/dist/components/toolbar/Toolbar.d.ts.map +1 -1
  375. package/dist/components/toolbar/Toolbar.js +8 -4
  376. package/dist/components/toolbar/Toolbar.js.map +1 -1
  377. package/dist/core/direction.d.ts +2 -0
  378. package/dist/core/direction.d.ts.map +1 -1
  379. package/dist/core/direction.js +8 -3
  380. package/dist/core/direction.js.map +1 -1
  381. package/dist/core/dismissable-layer-registry.d.ts.map +1 -1
  382. package/dist/core/dismissable-layer-registry.js +3 -1
  383. package/dist/core/dismissable-layer-registry.js.map +1 -1
  384. package/dist/core/format-label.d.ts +2 -0
  385. package/dist/core/format-label.d.ts.map +1 -0
  386. package/dist/core/format-label.js +13 -0
  387. package/dist/core/format-label.js.map +1 -0
  388. package/dist/core/ime.d.ts +16 -0
  389. package/dist/core/ime.d.ts.map +1 -0
  390. package/dist/core/ime.js +7 -0
  391. package/dist/core/ime.js.map +1 -0
  392. package/dist/core/index.d.ts +3 -0
  393. package/dist/core/index.d.ts.map +1 -1
  394. package/dist/core/index.js +3 -0
  395. package/dist/core/index.js.map +1 -1
  396. package/dist/core/roving-focus-store.d.ts +3 -2
  397. package/dist/core/roving-focus-store.d.ts.map +1 -1
  398. package/dist/core/roving-focus-store.js +5 -3
  399. package/dist/core/roving-focus-store.js.map +1 -1
  400. package/dist/core/roving-focus.d.ts.map +1 -1
  401. package/dist/core/roving-focus.js +10 -5
  402. package/dist/core/roving-focus.js.map +1 -1
  403. package/dist/core/text-direction.d.ts +7 -0
  404. package/dist/core/text-direction.d.ts.map +1 -0
  405. package/dist/core/text-direction.js +7 -0
  406. package/dist/core/text-direction.js.map +1 -0
  407. package/dist/styles/index.css +1 -1
  408. package/package.json +2 -1
  409. package/skills/uiify/SKILL.md +43 -34
  410. package/skills/uiify/references/elements/alert-modal.md +5 -5
  411. package/skills/uiify/references/elements/aspect-ratio.md +59 -0
  412. package/skills/uiify/references/elements/avatar.md +10 -19
  413. package/skills/uiify/references/elements/badge.md +11 -19
  414. package/skills/uiify/references/elements/button.md +5 -5
  415. package/skills/uiify/references/elements/candle-chart.md +2 -0
  416. package/skills/uiify/references/elements/card.md +10 -21
  417. package/skills/uiify/references/elements/carousel.md +2 -0
  418. package/skills/uiify/references/elements/checkbox.md +1 -1
  419. package/skills/uiify/references/elements/date-picker.md +11 -15
  420. package/skills/uiify/references/elements/description-list.md +38 -0
  421. package/skills/uiify/references/elements/empty-state.md +12 -23
  422. package/skills/uiify/references/elements/field.md +2 -2
  423. package/skills/uiify/references/elements/fieldset.md +39 -0
  424. package/skills/uiify/references/elements/form-error-summary.md +39 -0
  425. package/skills/uiify/references/elements/inline-alert.md +11 -19
  426. package/skills/uiify/references/elements/input-group.md +39 -0
  427. package/skills/uiify/references/elements/item.md +39 -0
  428. package/skills/uiify/references/elements/modal.md +1 -1
  429. package/skills/uiify/references/elements/number-field.md +2 -0
  430. package/skills/uiify/references/elements/pagination.md +2 -0
  431. package/skills/uiify/references/elements/progress-bar.md +11 -20
  432. package/skills/uiify/references/elements/select.md +1 -1
  433. package/skills/uiify/references/examples/alert-confirmation.md +21 -9
  434. package/skills/uiify/references/examples/field-validation.md +2 -2
  435. package/skills/uiify/references/examples/select-basic.md +1 -1
  436. package/skills/uiify/references/examples/table-controls.md +3 -2
  437. package/skills/uiify/references/guides/i18n.md +21 -0
  438. package/skills/uiify/references/guides/verification.md +9 -0
  439. package/skills/uiify/scripts/static.mjs +79 -0
@@ -3,9 +3,11 @@ import { Fragment, jsx } from "react/jsx-runtime";
3
3
  import { useMemo } from "react";
4
4
  import { createPartContext } from "@gunkin/uiify/core";
5
5
  import { composeEventHandlers } from "@gunkin/uiify/core/compose-event-handlers";
6
+ import { formatLabel } from "@gunkin/uiify/core/format-label";
6
7
  import { useRenderElement } from "@gunkin/uiify/core/render";
7
8
  import {
8
9
  PaginationEllipsis as PaginationEllipsisElement,
10
+ DEFAULT_PAGINATION_LABELS,
9
11
  PaginationItemPart,
10
12
  PaginationList as PaginationListElement
11
13
  } from "./PaginationShell.js";
@@ -16,18 +18,21 @@ function PaginationRoot(props) {
16
18
  const {
17
19
  as,
18
20
  render,
19
- "aria-label": ariaLabel = "Pagination",
21
+ "aria-label": ariaLabel,
20
22
  boundaryCount,
21
23
  count,
22
24
  defaultPage,
23
25
  disabled,
24
26
  onPageChange,
25
27
  page,
28
+ labels,
29
+ locale,
26
30
  showFirstLast,
27
31
  siblingCount,
28
32
  children,
29
33
  ...consumerProps
30
34
  } = props;
35
+ const mergedLabels = { ...DEFAULT_PAGINATION_LABELS, ...labels };
31
36
  const {
32
37
  items,
33
38
  page: currentPage,
@@ -43,15 +48,22 @@ function PaginationRoot(props) {
43
48
  ...siblingCount !== void 0 ? { siblingCount } : {}
44
49
  });
45
50
  const contextValue = useMemo(
46
- () => ({ count, items, page: currentPage, setPage }),
47
- [count, currentPage, items, setPage]
51
+ () => ({
52
+ count,
53
+ items,
54
+ labels: mergedLabels,
55
+ ...locale !== void 0 ? { locale } : {},
56
+ page: currentPage,
57
+ setPage
58
+ }),
59
+ [count, currentPage, items, labels, locale, setPage]
48
60
  );
49
61
  const element = useRenderElement({
50
62
  as,
51
63
  defaultTag: "nav",
52
64
  props: {
53
65
  ...consumerProps,
54
- "aria-label": ariaLabel,
66
+ "aria-label": ariaLabel ?? mergedLabels.root,
55
67
  children: children ?? /* @__PURE__ */ jsx("ol", { children: /* @__PURE__ */ jsx(PaginationListItems, {}) }),
56
68
  "data-uiify-pagination": ""
57
69
  },
@@ -62,30 +74,59 @@ function PaginationRoot(props) {
62
74
  }
63
75
  PaginationRoot.displayName = "PaginationRoot";
64
76
  function PaginationListItems() {
65
- const { items } = usePaginationContext("List");
66
- return /* @__PURE__ */ jsx(Fragment, { children: items.map((item, index) => /* @__PURE__ */ jsx(PaginationItemRenderer, { item }, `${item.type}-${item.page ?? index}`)) });
77
+ const { items, labels, locale } = usePaginationContext("List");
78
+ return /* @__PURE__ */ jsx(Fragment, { children: items.map((item, index) => /* @__PURE__ */ jsx(
79
+ PaginationItemRenderer,
80
+ {
81
+ item,
82
+ labels,
83
+ ...locale !== void 0 ? { locale } : {}
84
+ },
85
+ `${item.type}-${item.page ?? index}`
86
+ )) });
67
87
  }
68
88
  PaginationListItems.displayName = "PaginationListItems";
69
- function PaginationItemRenderer({ item }) {
89
+ function PaginationItemRenderer({
90
+ item,
91
+ labels,
92
+ locale
93
+ }) {
70
94
  switch (item.type) {
71
95
  case "ellipsis":
72
96
  return /* @__PURE__ */ jsx(PaginationEllipsisElement, {});
73
97
  case "previous":
74
- return /* @__PURE__ */ jsx(PaginationPrevious, { disabled: item.disabled });
98
+ return /* @__PURE__ */ jsx(PaginationPrevious, { disabled: item.disabled, labels });
75
99
  case "next":
76
- return /* @__PURE__ */ jsx(PaginationNext, { disabled: item.disabled });
100
+ return /* @__PURE__ */ jsx(PaginationNext, { disabled: item.disabled, labels });
77
101
  case "first":
78
- return /* @__PURE__ */ jsx(PaginationFirst, { disabled: item.disabled });
102
+ return /* @__PURE__ */ jsx(PaginationFirst, { disabled: item.disabled, labels });
79
103
  case "last":
80
- return /* @__PURE__ */ jsx(PaginationLast, { disabled: item.disabled });
104
+ return /* @__PURE__ */ jsx(PaginationLast, { disabled: item.disabled, labels });
81
105
  default:
82
- return /* @__PURE__ */ jsx(PaginationItemPart, { children: /* @__PURE__ */ jsx(PaginationLink, { disabled: item.disabled, page: item.page ?? 1, selected: item.selected }) });
106
+ return /* @__PURE__ */ jsx(PaginationItemPart, { children: /* @__PURE__ */ jsx(
107
+ PaginationLink,
108
+ {
109
+ disabled: item.disabled,
110
+ ...locale !== void 0 ? { locale } : {},
111
+ pageLabelTemplate: labels.page,
112
+ page: item.page ?? 1,
113
+ selected: item.selected
114
+ }
115
+ ) });
83
116
  }
84
117
  }
85
118
  PaginationItemRenderer.displayName = "PaginationItemRenderer";
86
119
  function PaginationList() {
87
- const { items } = usePaginationContext("List");
88
- return /* @__PURE__ */ jsx(PaginationListElement, { children: items.map((item, index) => /* @__PURE__ */ jsx(PaginationItemRenderer, { item }, `${item.type}-${item.page ?? index}`)) });
120
+ const { items, labels, locale } = usePaginationContext("List");
121
+ return /* @__PURE__ */ jsx(PaginationListElement, { children: items.map((item, index) => /* @__PURE__ */ jsx(
122
+ PaginationItemRenderer,
123
+ {
124
+ item,
125
+ labels,
126
+ ...locale !== void 0 ? { locale } : {}
127
+ },
128
+ `${item.type}-${item.page ?? index}`
129
+ )) });
89
130
  }
90
131
  PaginationList.displayName = "PaginationList";
91
132
  function PaginationLink(props) {
@@ -93,11 +134,16 @@ function PaginationLink(props) {
93
134
  as,
94
135
  render,
95
136
  disabled = false,
137
+ locale,
138
+ pageLabelTemplate,
96
139
  page,
97
140
  selected = false,
98
141
  ...consumerProps
99
142
  } = props;
100
- const { setPage } = usePaginationContext("Link");
143
+ const context = usePaginationContext("Link");
144
+ const { setPage } = context;
145
+ const activeLocale = locale ?? context.locale;
146
+ const activePageLabelTemplate = pageLabelTemplate ?? context.labels.page;
101
147
  const onClick = consumerProps.onClick;
102
148
  return useRenderElement({
103
149
  as,
@@ -105,7 +151,7 @@ function PaginationLink(props) {
105
151
  props: {
106
152
  ...consumerProps,
107
153
  "aria-current": selected ? "page" : void 0,
108
- "aria-label": `Page ${page}`,
154
+ "aria-label": formatPageLabel(activePageLabelTemplate, page, activeLocale),
109
155
  "data-selected": selected ? "" : void 0,
110
156
  "data-size": "icon",
111
157
  "data-type": "page",
@@ -114,80 +160,98 @@ function PaginationLink(props) {
114
160
  disabled: disabled || void 0,
115
161
  onClick: composeEventHandlers(onClick, () => setPage(page)),
116
162
  type: "button",
117
- children: page
163
+ children: formatPageNumber(page, activeLocale)
118
164
  },
119
165
  render,
120
166
  state: { selected }
121
167
  });
122
168
  }
123
- function PaginationPrevious({ disabled }) {
169
+ function PaginationPrevious({
170
+ disabled,
171
+ labels
172
+ }) {
124
173
  const { page, setPage } = usePaginationContext("Previous");
125
174
  return /* @__PURE__ */ jsx(PaginationItemPart, { children: /* @__PURE__ */ jsx(
126
175
  "button",
127
176
  {
128
- "aria-label": "Previous page",
177
+ "aria-label": labels.previous,
129
178
  "data-type": "previous",
130
179
  "data-uiify-button": "",
131
180
  "data-variant": "ghost",
132
181
  disabled,
133
182
  onClick: () => setPage(page - 1),
134
183
  type: "button",
135
- children: "Previous"
184
+ children: labels.previousText
136
185
  }
137
186
  ) });
138
187
  }
139
188
  PaginationPrevious.displayName = "PaginationPrevious";
140
- function PaginationNext({ disabled }) {
189
+ function PaginationNext({
190
+ disabled,
191
+ labels
192
+ }) {
141
193
  const { page, setPage } = usePaginationContext("Next");
142
194
  return /* @__PURE__ */ jsx(PaginationItemPart, { children: /* @__PURE__ */ jsx(
143
195
  "button",
144
196
  {
145
- "aria-label": "Next page",
197
+ "aria-label": labels.next,
146
198
  "data-type": "next",
147
199
  "data-uiify-button": "",
148
200
  "data-variant": "ghost",
149
201
  disabled,
150
202
  onClick: () => setPage(page + 1),
151
203
  type: "button",
152
- children: "Next"
204
+ children: labels.nextText
153
205
  }
154
206
  ) });
155
207
  }
156
208
  PaginationNext.displayName = "PaginationNext";
157
- function PaginationFirst({ disabled }) {
209
+ function PaginationFirst({
210
+ disabled,
211
+ labels
212
+ }) {
158
213
  const { setPage } = usePaginationContext("First");
159
214
  return /* @__PURE__ */ jsx(PaginationItemPart, { children: /* @__PURE__ */ jsx(
160
215
  "button",
161
216
  {
162
- "aria-label": "First page",
217
+ "aria-label": labels.first,
163
218
  "data-type": "first",
164
219
  "data-uiify-button": "",
165
220
  "data-variant": "ghost",
166
221
  disabled,
167
222
  onClick: () => setPage(1),
168
223
  type: "button",
169
- children: "First"
224
+ children: labels.firstText
170
225
  }
171
226
  ) });
172
227
  }
173
228
  PaginationFirst.displayName = "PaginationFirst";
174
- function PaginationLast({ disabled }) {
229
+ function PaginationLast({
230
+ disabled,
231
+ labels
232
+ }) {
175
233
  const { count, setPage } = usePaginationContext("Last");
176
234
  return /* @__PURE__ */ jsx(PaginationItemPart, { children: /* @__PURE__ */ jsx(
177
235
  "button",
178
236
  {
179
- "aria-label": "Last page",
237
+ "aria-label": labels.last,
180
238
  "data-type": "last",
181
239
  "data-uiify-button": "",
182
240
  "data-variant": "ghost",
183
241
  disabled,
184
242
  onClick: () => setPage(count),
185
243
  type: "button",
186
- children: "Last"
244
+ children: labels.lastText
187
245
  }
188
246
  ) });
189
247
  }
190
248
  PaginationLast.displayName = "PaginationLast";
249
+ function formatPageNumber(page, locale) {
250
+ return locale ? new Intl.NumberFormat(locale).format(page) : String(page);
251
+ }
252
+ function formatPageLabel(template, page, locale) {
253
+ return formatLabel(template, { page: locale === void 0 ? String(page) : page }, locale);
254
+ }
191
255
  const Pagination = {
192
256
  Ellipsis: PaginationEllipsisElement,
193
257
  Item: PaginationItemPart,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/pagination/Pagination.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo } from \"react\";\nimport type { ElementType, MouseEvent, ReactElement } from \"react\";\nimport { createPartContext } from \"@gunkin/uiify/core\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport {\n PaginationEllipsis as PaginationEllipsisElement,\n PaginationItemPart,\n PaginationList as PaginationListElement,\n} from \"./PaginationShell.js\";\nimport { usePagination } from \"./use-pagination.js\";\nimport type {\n PaginationContextValue,\n PaginationItem,\n PaginationLinkProps,\n PaginationRootProps,\n} from \"./types.js\";\n\nexport type { PaginationItem } from \"./types.js\";\n\nexport { PaginationEllipsis, PaginationItemPart } from \"./PaginationShell.js\";\n\nconst [PaginationProvider, usePaginationContext] =\n createPartContext<PaginationContextValue>(\"Pagination\");\n\nexport function PaginationRoot<TAs extends ElementType = \"nav\">(\n props: PaginationRootProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n \"aria-label\": ariaLabel = \"Pagination\",\n boundaryCount,\n count,\n defaultPage,\n disabled,\n onPageChange,\n page,\n showFirstLast,\n siblingCount,\n children,\n ...consumerProps\n } = props as PaginationRootProps<\"nav\">;\n\n const {\n items,\n page: currentPage,\n setPage,\n } = usePagination({\n count,\n ...(boundaryCount !== undefined ? { boundaryCount } : {}),\n ...(defaultPage !== undefined ? { defaultPage } : {}),\n ...(disabled !== undefined ? { disabled } : {}),\n ...(onPageChange !== undefined ? { onPageChange } : {}),\n ...(page !== undefined ? { page } : {}),\n ...(showFirstLast !== undefined ? { showFirstLast } : {}),\n ...(siblingCount !== undefined ? { siblingCount } : {}),\n });\n\n const contextValue = useMemo(\n () => ({ count, items, page: currentPage, setPage }),\n [count, currentPage, items, setPage],\n );\n\n const element = useRenderElement({\n as,\n defaultTag: \"nav\",\n props: {\n ...consumerProps,\n \"aria-label\": ariaLabel,\n children: children ?? (\n <ol>\n <PaginationListItems />\n </ol>\n ),\n \"data-uiify-pagination\": \"\",\n },\n render,\n state: { page: currentPage },\n });\n\n return <PaginationProvider value={contextValue}>{element}</PaginationProvider>;\n}\nPaginationRoot.displayName = \"PaginationRoot\";\n\nfunction PaginationListItems(): ReactElement {\n const { items } = usePaginationContext(\"List\");\n return (\n <>\n {items.map((item, index) => (\n <PaginationItemRenderer item={item} key={`${item.type}-${item.page ?? index}`} />\n ))}\n </>\n );\n}\nPaginationListItems.displayName = \"PaginationListItems\";\n\nfunction PaginationItemRenderer({ item }: { readonly item: PaginationItem }): ReactElement {\n switch (item.type) {\n case \"ellipsis\":\n return <PaginationEllipsisElement />;\n case \"previous\":\n return <PaginationPrevious disabled={item.disabled} />;\n case \"next\":\n return <PaginationNext disabled={item.disabled} />;\n case \"first\":\n return <PaginationFirst disabled={item.disabled} />;\n case \"last\":\n return <PaginationLast disabled={item.disabled} />;\n default:\n return (\n <PaginationItemPart>\n <PaginationLink disabled={item.disabled} page={item.page ?? 1} selected={item.selected} />\n </PaginationItemPart>\n );\n }\n}\nPaginationItemRenderer.displayName = \"PaginationItemRenderer\";\n\nexport function PaginationList(): ReactElement | null {\n const { items } = usePaginationContext(\"List\");\n\n return (\n <PaginationListElement>\n {items.map((item, index) => (\n <PaginationItemRenderer item={item} key={`${item.type}-${item.page ?? index}`} />\n ))}\n </PaginationListElement>\n );\n}\nPaginationList.displayName = \"PaginationList\";\n\nexport function PaginationLink<TAs extends ElementType = \"button\">(\n props: PaginationLinkProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n disabled = false,\n page,\n selected = false,\n ...consumerProps\n } = props as PaginationLinkProps<\"button\">;\n const { setPage } = usePaginationContext(\"Link\");\n const onClick = (consumerProps as { onClick?: (event: MouseEvent<HTMLButtonElement>) => void })\n .onClick;\n\n return useRenderElement({\n as,\n defaultTag: \"button\",\n props: {\n ...consumerProps,\n \"aria-current\": selected ? \"page\" : undefined,\n \"aria-label\": `Page ${page}`,\n \"data-selected\": selected ? \"\" : undefined,\n \"data-size\": \"icon\",\n \"data-type\": \"page\",\n \"data-uiify-button\": \"\",\n \"data-variant\": \"ghost\",\n disabled: disabled || undefined,\n onClick: composeEventHandlers(onClick, () => setPage(page)),\n type: \"button\",\n children: page,\n },\n render,\n state: { selected },\n });\n}\n\nfunction PaginationPrevious({ disabled }: { readonly disabled: boolean }): ReactElement {\n const { page, setPage } = usePaginationContext(\"Previous\");\n return (\n <PaginationItemPart>\n <button\n aria-label=\"Previous page\"\n data-type=\"previous\"\n data-uiify-button=\"\"\n data-variant=\"ghost\"\n disabled={disabled}\n onClick={() => setPage(page - 1)}\n type=\"button\"\n >\n Previous\n </button>\n </PaginationItemPart>\n );\n}\nPaginationPrevious.displayName = \"PaginationPrevious\";\n\nfunction PaginationNext({ disabled }: { readonly disabled: boolean }): ReactElement {\n const { page, setPage } = usePaginationContext(\"Next\");\n return (\n <PaginationItemPart>\n <button\n aria-label=\"Next page\"\n data-type=\"next\"\n data-uiify-button=\"\"\n data-variant=\"ghost\"\n disabled={disabled}\n onClick={() => setPage(page + 1)}\n type=\"button\"\n >\n Next\n </button>\n </PaginationItemPart>\n );\n}\nPaginationNext.displayName = \"PaginationNext\";\n\nfunction PaginationFirst({ disabled }: { readonly disabled: boolean }): ReactElement {\n const { setPage } = usePaginationContext(\"First\");\n return (\n <PaginationItemPart>\n <button\n aria-label=\"First page\"\n data-type=\"first\"\n data-uiify-button=\"\"\n data-variant=\"ghost\"\n disabled={disabled}\n onClick={() => setPage(1)}\n type=\"button\"\n >\n First\n </button>\n </PaginationItemPart>\n );\n}\nPaginationFirst.displayName = \"PaginationFirst\";\n\nfunction PaginationLast({ disabled }: { readonly disabled: boolean }): ReactElement {\n const { count, setPage } = usePaginationContext(\"Last\");\n return (\n <PaginationItemPart>\n <button\n aria-label=\"Last page\"\n data-type=\"last\"\n data-uiify-button=\"\"\n data-variant=\"ghost\"\n disabled={disabled}\n onClick={() => setPage(count)}\n type=\"button\"\n >\n Last\n </button>\n </PaginationItemPart>\n );\n}\nPaginationLast.displayName = \"PaginationLast\";\n\nexport const Pagination = {\n Ellipsis: PaginationEllipsisElement,\n Item: PaginationItemPart,\n Link: PaginationLink,\n List: PaginationList,\n Root: PaginationRoot,\n};\n"],"mappings":"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","names":["PaginationItemPart"]}
1
+ {"version":3,"sources":["../../../src/components/pagination/Pagination.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo } from \"react\";\nimport type { ElementType, MouseEvent, ReactElement } from \"react\";\nimport { createPartContext } from \"@gunkin/uiify/core\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { formatLabel } from \"@gunkin/uiify/core/format-label\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport {\n PaginationEllipsis as PaginationEllipsisElement,\n DEFAULT_PAGINATION_LABELS,\n PaginationItemPart,\n PaginationList as PaginationListElement,\n} from \"./PaginationShell.js\";\nimport { usePagination } from \"./use-pagination.js\";\nimport type {\n PaginationContextValue,\n PaginationItem,\n PaginationLinkProps,\n PaginationRootProps,\n} from \"./types.js\";\n\nexport type { PaginationItem } from \"./types.js\";\n\nexport { PaginationEllipsis, PaginationItemPart } from \"./PaginationShell.js\";\n\nconst [PaginationProvider, usePaginationContext] =\n createPartContext<PaginationContextValue>(\"Pagination\");\n\nexport function PaginationRoot<TAs extends ElementType = \"nav\">(\n props: PaginationRootProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n \"aria-label\": ariaLabel,\n boundaryCount,\n count,\n defaultPage,\n disabled,\n onPageChange,\n page,\n labels,\n locale,\n showFirstLast,\n siblingCount,\n children,\n ...consumerProps\n } = props as PaginationRootProps<\"nav\">;\n const mergedLabels = { ...DEFAULT_PAGINATION_LABELS, ...labels };\n\n const {\n items,\n page: currentPage,\n setPage,\n } = usePagination({\n count,\n ...(boundaryCount !== undefined ? { boundaryCount } : {}),\n ...(defaultPage !== undefined ? { defaultPage } : {}),\n ...(disabled !== undefined ? { disabled } : {}),\n ...(onPageChange !== undefined ? { onPageChange } : {}),\n ...(page !== undefined ? { page } : {}),\n ...(showFirstLast !== undefined ? { showFirstLast } : {}),\n ...(siblingCount !== undefined ? { siblingCount } : {}),\n });\n\n const contextValue = useMemo(\n () => ({\n count,\n items,\n labels: mergedLabels,\n ...(locale !== undefined ? { locale } : {}),\n page: currentPage,\n setPage,\n }),\n [count, currentPage, items, labels, locale, setPage],\n );\n\n const element = useRenderElement({\n as,\n defaultTag: \"nav\",\n props: {\n ...consumerProps,\n \"aria-label\": ariaLabel ?? mergedLabels.root,\n children: children ?? (\n <ol>\n <PaginationListItems />\n </ol>\n ),\n \"data-uiify-pagination\": \"\",\n },\n render,\n state: { page: currentPage },\n });\n\n return <PaginationProvider value={contextValue}>{element}</PaginationProvider>;\n}\nPaginationRoot.displayName = \"PaginationRoot\";\n\nfunction PaginationListItems(): ReactElement {\n const { items, labels, locale } = usePaginationContext(\"List\");\n return (\n <>\n {items.map((item, index) => (\n <PaginationItemRenderer\n item={item}\n key={`${item.type}-${item.page ?? index}`}\n labels={labels}\n {...(locale !== undefined ? { locale } : {})}\n />\n ))}\n </>\n );\n}\nPaginationListItems.displayName = \"PaginationListItems\";\n\nfunction PaginationItemRenderer({\n item,\n labels,\n locale,\n}: {\n readonly item: PaginationItem;\n readonly labels: PaginationContextValue[\"labels\"];\n readonly locale?: string;\n}): ReactElement {\n switch (item.type) {\n case \"ellipsis\":\n return <PaginationEllipsisElement />;\n case \"previous\":\n return <PaginationPrevious disabled={item.disabled} labels={labels} />;\n case \"next\":\n return <PaginationNext disabled={item.disabled} labels={labels} />;\n case \"first\":\n return <PaginationFirst disabled={item.disabled} labels={labels} />;\n case \"last\":\n return <PaginationLast disabled={item.disabled} labels={labels} />;\n default:\n return (\n <PaginationItemPart>\n <PaginationLink\n disabled={item.disabled}\n {...(locale !== undefined ? { locale } : {})}\n pageLabelTemplate={labels.page}\n page={item.page ?? 1}\n selected={item.selected}\n />\n </PaginationItemPart>\n );\n }\n}\nPaginationItemRenderer.displayName = \"PaginationItemRenderer\";\n\nexport function PaginationList(): ReactElement | null {\n const { items, labels, locale } = usePaginationContext(\"List\");\n\n return (\n <PaginationListElement>\n {items.map((item, index) => (\n <PaginationItemRenderer\n item={item}\n key={`${item.type}-${item.page ?? index}`}\n labels={labels}\n {...(locale !== undefined ? { locale } : {})}\n />\n ))}\n </PaginationListElement>\n );\n}\nPaginationList.displayName = \"PaginationList\";\n\nexport function PaginationLink<TAs extends ElementType = \"button\">(\n props: PaginationLinkProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n disabled = false,\n locale,\n pageLabelTemplate,\n page,\n selected = false,\n ...consumerProps\n } = props as PaginationLinkProps<\"button\">;\n const context = usePaginationContext(\"Link\");\n const { setPage } = context;\n const activeLocale = locale ?? context.locale;\n const activePageLabelTemplate = pageLabelTemplate ?? context.labels.page;\n const onClick = (consumerProps as { onClick?: (event: MouseEvent<HTMLButtonElement>) => void })\n .onClick;\n\n return useRenderElement({\n as,\n defaultTag: \"button\",\n props: {\n ...consumerProps,\n \"aria-current\": selected ? \"page\" : undefined,\n \"aria-label\": formatPageLabel(activePageLabelTemplate, page, activeLocale),\n \"data-selected\": selected ? \"\" : undefined,\n \"data-size\": \"icon\",\n \"data-type\": \"page\",\n \"data-uiify-button\": \"\",\n \"data-variant\": \"ghost\",\n disabled: disabled || undefined,\n onClick: composeEventHandlers(onClick, () => setPage(page)),\n type: \"button\",\n children: formatPageNumber(page, activeLocale),\n },\n render,\n state: { selected },\n });\n}\n\nfunction PaginationPrevious({\n disabled,\n labels,\n}: {\n readonly disabled: boolean;\n readonly labels: PaginationContextValue[\"labels\"];\n}): ReactElement {\n const { page, setPage } = usePaginationContext(\"Previous\");\n return (\n <PaginationItemPart>\n <button\n aria-label={labels.previous}\n data-type=\"previous\"\n data-uiify-button=\"\"\n data-variant=\"ghost\"\n disabled={disabled}\n onClick={() => setPage(page - 1)}\n type=\"button\"\n >\n {labels.previousText}\n </button>\n </PaginationItemPart>\n );\n}\nPaginationPrevious.displayName = \"PaginationPrevious\";\n\nfunction PaginationNext({\n disabled,\n labels,\n}: {\n readonly disabled: boolean;\n readonly labels: PaginationContextValue[\"labels\"];\n}): ReactElement {\n const { page, setPage } = usePaginationContext(\"Next\");\n return (\n <PaginationItemPart>\n <button\n aria-label={labels.next}\n data-type=\"next\"\n data-uiify-button=\"\"\n data-variant=\"ghost\"\n disabled={disabled}\n onClick={() => setPage(page + 1)}\n type=\"button\"\n >\n {labels.nextText}\n </button>\n </PaginationItemPart>\n );\n}\nPaginationNext.displayName = \"PaginationNext\";\n\nfunction PaginationFirst({\n disabled,\n labels,\n}: {\n readonly disabled: boolean;\n readonly labels: PaginationContextValue[\"labels\"];\n}): ReactElement {\n const { setPage } = usePaginationContext(\"First\");\n return (\n <PaginationItemPart>\n <button\n aria-label={labels.first}\n data-type=\"first\"\n data-uiify-button=\"\"\n data-variant=\"ghost\"\n disabled={disabled}\n onClick={() => setPage(1)}\n type=\"button\"\n >\n {labels.firstText}\n </button>\n </PaginationItemPart>\n );\n}\nPaginationFirst.displayName = \"PaginationFirst\";\n\nfunction PaginationLast({\n disabled,\n labels,\n}: {\n readonly disabled: boolean;\n readonly labels: PaginationContextValue[\"labels\"];\n}): ReactElement {\n const { count, setPage } = usePaginationContext(\"Last\");\n return (\n <PaginationItemPart>\n <button\n aria-label={labels.last}\n data-type=\"last\"\n data-uiify-button=\"\"\n data-variant=\"ghost\"\n disabled={disabled}\n onClick={() => setPage(count)}\n type=\"button\"\n >\n {labels.lastText}\n </button>\n </PaginationItemPart>\n );\n}\nPaginationLast.displayName = \"PaginationLast\";\n\nfunction formatPageNumber(page: number, locale?: string): string {\n return locale ? new Intl.NumberFormat(locale).format(page) : String(page);\n}\n\nfunction formatPageLabel(template: string, page: number, locale?: string): string {\n return formatLabel(template, { page: locale === undefined ? String(page) : page }, locale);\n}\n\nexport const Pagination = {\n Ellipsis: PaginationEllipsisElement,\n Item: PaginationItemPart,\n Link: PaginationLink,\n List: PaginationList,\n Root: PaginationRoot,\n};\n"],"mappings":"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","names":["PaginationItemPart"]}
@@ -1,6 +1,7 @@
1
1
  import type { ElementType, ReactElement } from "react";
2
- import type { PaginationRootProps, PaginationListProps, PaginationItemProps, PaginationLinkProps, PaginationEllipsisProps } from "./types.js";
2
+ import type { PaginationLabels, PaginationRootProps, PaginationListProps, PaginationItemProps, PaginationLinkProps, PaginationEllipsisProps } from "./types.js";
3
3
  export { buildPaginationItems } from "./pagination-engine.js";
4
+ export declare const DEFAULT_PAGINATION_LABELS: PaginationLabels;
4
5
  export declare function PaginationRoot<TAs extends ElementType = "nav">(props: PaginationRootProps<TAs>): ReactElement | null;
5
6
  export declare namespace PaginationRoot {
6
7
  var displayName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"PaginationShell.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/PaginationShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAIvD,OAAO,KAAK,EAEV,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,EAC5D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CAoDrB;yBAtDe,cAAc;;;AAkI9B,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EAC3D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CAUrB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EAC/D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CAUrB;AAED,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,GAAG,EAC1D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CAkCrB;AAsDD,wBAAgB,kBAAkB,CAAC,GAAG,SAAS,WAAW,GAAG,MAAM,EACjE,KAAK,EAAE,uBAAuB,CAAC,GAAG,CAAC,GAClC,YAAY,GAAG,IAAI,CAgBrB;yBAlBe,kBAAkB;;;AAqBlC,eAAO,MAAM,UAAU;;;;;;CAMtB,CAAC"}
1
+ {"version":3,"file":"PaginationShell.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/PaginationShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAKvD,OAAO,KAAK,EAEV,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,eAAO,MAAM,yBAAyB,EAAE,gBAWvC,CAAC;AAEF,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,EAC5D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CAyDrB;yBA3De,cAAc;;;AAiJ9B,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EAC3D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CAUrB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EAC/D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CAUrB;AAED,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,GAAG,EAC1D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CAoCrB;AAuDD,wBAAgB,kBAAkB,CAAC,GAAG,SAAS,WAAW,GAAG,MAAM,EACjE,KAAK,EAAE,uBAAuB,CAAC,GAAG,CAAC,GAClC,YAAY,GAAG,IAAI,CAgBrB;yBAlBe,kBAAkB;;;AAqBlC,eAAO,MAAM,UAAU;;;;;;CAMtB,CAAC"}
@@ -1,16 +1,31 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
+ import { formatLabel } from "@gunkin/uiify/core/format-label";
2
3
  import { useRenderElement } from "@gunkin/uiify/core/render";
3
4
  import { buildPaginationItems } from "./pagination-engine.js";
4
5
  import { buildPaginationItems as buildPaginationItems2 } from "./pagination-engine.js";
6
+ const DEFAULT_PAGINATION_LABELS = {
7
+ root: "Pagination",
8
+ page: "Page {page}",
9
+ previous: "Previous page",
10
+ next: "Next page",
11
+ first: "First page",
12
+ last: "Last page",
13
+ previousText: "Previous",
14
+ nextText: "Next",
15
+ firstText: "First",
16
+ lastText: "Last"
17
+ };
5
18
  function PaginationRoot(props) {
6
19
  const {
7
20
  as,
8
21
  render,
9
- "aria-label": ariaLabel = "Pagination",
22
+ "aria-label": ariaLabel,
10
23
  boundaryCount = 1,
11
24
  count,
12
25
  disabled = false,
13
26
  getPageHref,
27
+ labels,
28
+ locale,
14
29
  page = 1,
15
30
  showFirstLast = false,
16
31
  siblingCount = 1,
@@ -19,6 +34,7 @@ function PaginationRoot(props) {
19
34
  onPageChange: _onPageChange,
20
35
  ...consumerProps
21
36
  } = props;
37
+ const mergedLabels = { ...DEFAULT_PAGINATION_LABELS, ...labels };
22
38
  const items = buildPaginationItems(
23
39
  count,
24
40
  page,
@@ -31,6 +47,8 @@ function PaginationRoot(props) {
31
47
  PaginationItemRenderer,
32
48
  {
33
49
  item,
50
+ labels: mergedLabels,
51
+ ...locale !== void 0 ? { locale } : {},
34
52
  page,
35
53
  ...paginationHrefProps(getPageHref)
36
54
  },
@@ -41,7 +59,7 @@ function PaginationRoot(props) {
41
59
  defaultTag: "nav",
42
60
  props: {
43
61
  ...consumerProps,
44
- "aria-label": ariaLabel,
62
+ "aria-label": ariaLabel ?? mergedLabels.root,
45
63
  children: content,
46
64
  "data-uiify-pagination": ""
47
65
  },
@@ -56,6 +74,8 @@ function paginationHrefProps(getPageHref) {
56
74
  function PaginationItemRenderer({
57
75
  getPageHref,
58
76
  item,
77
+ labels,
78
+ locale,
59
79
  page
60
80
  }) {
61
81
  const hrefProps = paginationHrefProps(getPageHref);
@@ -67,7 +87,8 @@ function PaginationItemRenderer({
67
87
  PaginationNavControl,
68
88
  {
69
89
  disabled: item.disabled,
70
- label: "Previous page",
90
+ label: labels.previous,
91
+ labelText: labels.previousText,
71
92
  page: page - 1,
72
93
  type: "previous",
73
94
  ...hrefProps
@@ -78,7 +99,8 @@ function PaginationItemRenderer({
78
99
  PaginationNavControl,
79
100
  {
80
101
  disabled: item.disabled,
81
- label: "Next page",
102
+ label: labels.next,
103
+ labelText: labels.nextText,
82
104
  page: page + 1,
83
105
  type: "next",
84
106
  ...hrefProps
@@ -89,7 +111,8 @@ function PaginationItemRenderer({
89
111
  PaginationNavControl,
90
112
  {
91
113
  disabled: item.disabled,
92
- label: "First page",
114
+ label: labels.first,
115
+ labelText: labels.firstText,
93
116
  page: 1,
94
117
  type: "first",
95
118
  ...hrefProps
@@ -100,7 +123,8 @@ function PaginationItemRenderer({
100
123
  PaginationNavControl,
101
124
  {
102
125
  disabled: item.disabled,
103
- label: "Last page",
126
+ label: labels.last,
127
+ labelText: labels.lastText,
104
128
  page: item.page ?? page,
105
129
  type: "last",
106
130
  ...hrefProps
@@ -111,6 +135,8 @@ function PaginationItemRenderer({
111
135
  PaginationLink,
112
136
  {
113
137
  disabled: item.disabled,
138
+ ...locale !== void 0 ? { locale } : {},
139
+ pageLabelTemplate: labels.page,
114
140
  page: item.page ?? 1,
115
141
  selected: item.selected,
116
142
  ...hrefProps
@@ -145,6 +171,8 @@ function PaginationLink(props) {
145
171
  render,
146
172
  disabled = false,
147
173
  getPageHref,
174
+ locale,
175
+ pageLabelTemplate = DEFAULT_PAGINATION_LABELS.page,
148
176
  page,
149
177
  selected = false,
150
178
  ...consumerProps
@@ -157,7 +185,7 @@ function PaginationLink(props) {
157
185
  props: {
158
186
  ...consumerProps,
159
187
  "aria-current": selected ? "page" : void 0,
160
- "aria-label": `Page ${page}`,
188
+ "aria-label": formatPageLabel(pageLabelTemplate, page, locale),
161
189
  "aria-disabled": disabled ? true : void 0,
162
190
  "data-disabled": disabled ? "" : void 0,
163
191
  "data-selected": selected ? "" : void 0,
@@ -166,7 +194,7 @@ function PaginationLink(props) {
166
194
  "data-uiify-button": "",
167
195
  "data-variant": "ghost",
168
196
  href,
169
- children: page
197
+ children: formatPageNumber(page, locale)
170
198
  },
171
199
  render,
172
200
  state: { selected }
@@ -176,11 +204,11 @@ function PaginationNavControl({
176
204
  disabled,
177
205
  getPageHref,
178
206
  label,
207
+ labelText,
179
208
  page,
180
209
  type
181
210
  }) {
182
211
  const href = !disabled && getPageHref ? getPageHref(page) : void 0;
183
- const labelText = type === "previous" ? "Previous" : type === "next" ? "Next" : type === "first" ? "First" : "Last";
184
212
  return /* @__PURE__ */ jsx(PaginationItemPart, { children: href ? /* @__PURE__ */ jsx(
185
213
  "a",
186
214
  {
@@ -205,6 +233,12 @@ function PaginationNavControl({
205
233
  ) });
206
234
  }
207
235
  PaginationNavControl.displayName = "PaginationNavControl";
236
+ function formatPageNumber(page, locale) {
237
+ return locale ? new Intl.NumberFormat(locale).format(page) : String(page);
238
+ }
239
+ function formatPageLabel(template, page, locale) {
240
+ return formatLabel(template, { page: locale === void 0 ? String(page) : page }, locale);
241
+ }
208
242
  function PaginationEllipsis(props) {
209
243
  const { as, render, ...consumerProps } = props;
210
244
  const element = useRenderElement({
@@ -230,6 +264,7 @@ const Pagination = {
230
264
  Root: PaginationRoot
231
265
  };
232
266
  export {
267
+ DEFAULT_PAGINATION_LABELS,
233
268
  Pagination,
234
269
  PaginationEllipsis,
235
270
  PaginationItemPart,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/pagination/PaginationShell.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { buildPaginationItems } from \"./pagination-engine.js\";\n\nimport type {\n PaginationItem,\n PaginationRootProps,\n PaginationListProps,\n PaginationItemProps,\n PaginationLinkProps,\n PaginationEllipsisProps,\n} from \"./types.js\";\n\nexport { buildPaginationItems } from \"./pagination-engine.js\";\n\nexport function PaginationRoot<TAs extends ElementType = \"nav\">(\n props: PaginationRootProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n \"aria-label\": ariaLabel = \"Pagination\",\n boundaryCount = 1,\n count,\n disabled = false,\n getPageHref,\n page = 1,\n showFirstLast = false,\n siblingCount = 1,\n children,\n defaultPage: _defaultPage,\n onPageChange: _onPageChange,\n ...consumerProps\n } = props as PaginationRootProps<\"nav\">;\n\n const items = buildPaginationItems(\n count,\n page,\n siblingCount,\n boundaryCount,\n disabled,\n showFirstLast,\n );\n\n const content = children ?? (\n <ol>\n {items.map((item, index) => (\n <PaginationItemRenderer\n item={item}\n key={`${item.type}-${item.page ?? index}`}\n page={page}\n {...paginationHrefProps(getPageHref)}\n />\n ))}\n </ol>\n );\n\n return useRenderElement({\n as,\n defaultTag: \"nav\",\n props: {\n ...consumerProps,\n \"aria-label\": ariaLabel,\n children: content,\n \"data-uiify-pagination\": \"\",\n },\n render,\n state: { page },\n });\n}\nPaginationRoot.displayName = \"PaginationRoot\";\n\nfunction paginationHrefProps(getPageHref?: (page: number) => string): {\n readonly getPageHref?: (page: number) => string;\n} {\n return getPageHref ? { getPageHref } : {};\n}\n\nfunction PaginationItemRenderer({\n getPageHref,\n item,\n page,\n}: {\n readonly getPageHref?: (page: number) => string;\n readonly item: PaginationItem;\n readonly page: number;\n}): ReactElement {\n const hrefProps = paginationHrefProps(getPageHref);\n\n switch (item.type) {\n case \"ellipsis\":\n return <PaginationEllipsis />;\n case \"previous\":\n return (\n <PaginationNavControl\n disabled={item.disabled}\n label=\"Previous page\"\n page={page - 1}\n type=\"previous\"\n {...hrefProps}\n />\n );\n case \"next\":\n return (\n <PaginationNavControl\n disabled={item.disabled}\n label=\"Next page\"\n page={page + 1}\n type=\"next\"\n {...hrefProps}\n />\n );\n case \"first\":\n return (\n <PaginationNavControl\n disabled={item.disabled}\n label=\"First page\"\n page={1}\n type=\"first\"\n {...hrefProps}\n />\n );\n case \"last\":\n return (\n <PaginationNavControl\n disabled={item.disabled}\n label=\"Last page\"\n page={item.page ?? page}\n type=\"last\"\n {...hrefProps}\n />\n );\n default:\n return (\n <PaginationLink\n disabled={item.disabled}\n page={item.page ?? 1}\n selected={item.selected}\n {...hrefProps}\n />\n );\n }\n}\nPaginationItemRenderer.displayName = \"PaginationItemRenderer\";\n\nexport function PaginationList<TAs extends ElementType = \"ol\">(\n props: PaginationListProps<TAs>,\n): ReactElement | null {\n const { as, render, ...consumerProps } = props as PaginationListProps<\"ol\">;\n\n return useRenderElement({\n as,\n defaultTag: \"ol\",\n props: consumerProps,\n render,\n state: {},\n });\n}\n\nexport function PaginationItemPart<TAs extends ElementType = \"li\">(\n props: PaginationItemProps<TAs>,\n): ReactElement | null {\n const { as, render, children, ...consumerProps } = props as PaginationItemProps<\"li\">;\n\n return useRenderElement({\n as,\n defaultTag: \"li\",\n props: { ...consumerProps, children },\n render,\n state: {},\n });\n}\n\nexport function PaginationLink<TAs extends ElementType = \"a\">(\n props: PaginationLinkProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n disabled = false,\n getPageHref,\n page,\n selected = false,\n ...consumerProps\n } = props as PaginationLinkProps<\"a\">;\n\n const href = !disabled && getPageHref ? getPageHref(page) : undefined;\n const Tag = href ? \"a\" : \"span\";\n\n return useRenderElement({\n as: as ?? Tag,\n defaultTag: Tag,\n props: {\n ...consumerProps,\n \"aria-current\": selected ? \"page\" : undefined,\n \"aria-label\": `Page ${page}`,\n \"aria-disabled\": disabled ? true : undefined,\n \"data-disabled\": disabled ? \"\" : undefined,\n \"data-selected\": selected ? \"\" : undefined,\n \"data-size\": \"icon\",\n \"data-type\": \"page\",\n \"data-uiify-button\": \"\",\n \"data-variant\": \"ghost\",\n href,\n children: page,\n },\n render,\n state: { selected },\n });\n}\n\nfunction PaginationNavControl({\n disabled,\n getPageHref,\n label,\n page,\n type,\n}: {\n readonly disabled: boolean;\n readonly getPageHref?: (page: number) => string;\n readonly label: string;\n readonly page: number;\n readonly type: \"previous\" | \"next\" | \"first\" | \"last\";\n}): ReactElement {\n const href = !disabled && getPageHref ? getPageHref(page) : undefined;\n const labelText =\n type === \"previous\"\n ? \"Previous\"\n : type === \"next\"\n ? \"Next\"\n : type === \"first\"\n ? \"First\"\n : \"Last\";\n\n return (\n <PaginationItemPart>\n {href ? (\n <a\n aria-label={label}\n data-type={type}\n data-uiify-button=\"\"\n data-variant=\"ghost\"\n href={href}\n >\n {labelText}\n </a>\n ) : (\n <span\n aria-disabled={disabled ? true : undefined}\n aria-label={label}\n data-disabled={disabled ? \"\" : undefined}\n data-type={type}\n data-uiify-button=\"\"\n data-variant=\"ghost\"\n >\n {labelText}\n </span>\n )}\n </PaginationItemPart>\n );\n}\nPaginationNavControl.displayName = \"PaginationNavControl\";\n\nexport function PaginationEllipsis<TAs extends ElementType = \"span\">(\n props: PaginationEllipsisProps<TAs>,\n): ReactElement | null {\n const { as, render, ...consumerProps } = props as PaginationEllipsisProps<\"span\">;\n const element = useRenderElement({\n as,\n defaultTag: \"span\",\n props: {\n ...consumerProps,\n \"aria-hidden\": true,\n \"data-type\": \"ellipsis\",\n children: \"…\",\n },\n render,\n state: {},\n });\n\n return <PaginationItemPart>{element}</PaginationItemPart>;\n}\nPaginationEllipsis.displayName = \"PaginationEllipsis\";\n\nexport const Pagination = {\n Ellipsis: PaginationEllipsis,\n Item: PaginationItemPart,\n Link: PaginationLink,\n List: PaginationList,\n Root: PaginationRoot,\n};\n"],"mappings":"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","names":["buildPaginationItems"]}
1
+ {"version":3,"sources":["../../../src/components/pagination/PaginationShell.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport { formatLabel } from \"@gunkin/uiify/core/format-label\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { buildPaginationItems } from \"./pagination-engine.js\";\n\nimport type {\n PaginationItem,\n PaginationLabels,\n PaginationRootProps,\n PaginationListProps,\n PaginationItemProps,\n PaginationLinkProps,\n PaginationEllipsisProps,\n} from \"./types.js\";\n\nexport { buildPaginationItems } from \"./pagination-engine.js\";\n\nexport const DEFAULT_PAGINATION_LABELS: PaginationLabels = {\n root: \"Pagination\",\n page: \"Page {page}\",\n previous: \"Previous page\",\n next: \"Next page\",\n first: \"First page\",\n last: \"Last page\",\n previousText: \"Previous\",\n nextText: \"Next\",\n firstText: \"First\",\n lastText: \"Last\",\n};\n\nexport function PaginationRoot<TAs extends ElementType = \"nav\">(\n props: PaginationRootProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n \"aria-label\": ariaLabel,\n boundaryCount = 1,\n count,\n disabled = false,\n getPageHref,\n labels,\n locale,\n page = 1,\n showFirstLast = false,\n siblingCount = 1,\n children,\n defaultPage: _defaultPage,\n onPageChange: _onPageChange,\n ...consumerProps\n } = props as PaginationRootProps<\"nav\">;\n const mergedLabels = { ...DEFAULT_PAGINATION_LABELS, ...labels };\n\n const items = buildPaginationItems(\n count,\n page,\n siblingCount,\n boundaryCount,\n disabled,\n showFirstLast,\n );\n\n const content = children ?? (\n <ol>\n {items.map((item, index) => (\n <PaginationItemRenderer\n item={item}\n key={`${item.type}-${item.page ?? index}`}\n labels={mergedLabels}\n {...(locale !== undefined ? { locale } : {})}\n page={page}\n {...paginationHrefProps(getPageHref)}\n />\n ))}\n </ol>\n );\n\n return useRenderElement({\n as,\n defaultTag: \"nav\",\n props: {\n ...consumerProps,\n \"aria-label\": ariaLabel ?? mergedLabels.root,\n children: content,\n \"data-uiify-pagination\": \"\",\n },\n render,\n state: { page },\n });\n}\nPaginationRoot.displayName = \"PaginationRoot\";\n\nfunction paginationHrefProps(getPageHref?: (page: number) => string): {\n readonly getPageHref?: (page: number) => string;\n} {\n return getPageHref ? { getPageHref } : {};\n}\n\nfunction PaginationItemRenderer({\n getPageHref,\n item,\n labels,\n locale,\n page,\n}: {\n readonly getPageHref?: (page: number) => string;\n readonly item: PaginationItem;\n readonly labels: PaginationLabels;\n readonly locale?: string;\n readonly page: number;\n}): ReactElement {\n const hrefProps = paginationHrefProps(getPageHref);\n\n switch (item.type) {\n case \"ellipsis\":\n return <PaginationEllipsis />;\n case \"previous\":\n return (\n <PaginationNavControl\n disabled={item.disabled}\n label={labels.previous}\n labelText={labels.previousText}\n page={page - 1}\n type=\"previous\"\n {...hrefProps}\n />\n );\n case \"next\":\n return (\n <PaginationNavControl\n disabled={item.disabled}\n label={labels.next}\n labelText={labels.nextText}\n page={page + 1}\n type=\"next\"\n {...hrefProps}\n />\n );\n case \"first\":\n return (\n <PaginationNavControl\n disabled={item.disabled}\n label={labels.first}\n labelText={labels.firstText}\n page={1}\n type=\"first\"\n {...hrefProps}\n />\n );\n case \"last\":\n return (\n <PaginationNavControl\n disabled={item.disabled}\n label={labels.last}\n labelText={labels.lastText}\n page={item.page ?? page}\n type=\"last\"\n {...hrefProps}\n />\n );\n default:\n return (\n <PaginationLink\n disabled={item.disabled}\n {...(locale !== undefined ? { locale } : {})}\n pageLabelTemplate={labels.page}\n page={item.page ?? 1}\n selected={item.selected}\n {...hrefProps}\n />\n );\n }\n}\nPaginationItemRenderer.displayName = \"PaginationItemRenderer\";\n\nexport function PaginationList<TAs extends ElementType = \"ol\">(\n props: PaginationListProps<TAs>,\n): ReactElement | null {\n const { as, render, ...consumerProps } = props as PaginationListProps<\"ol\">;\n\n return useRenderElement({\n as,\n defaultTag: \"ol\",\n props: consumerProps,\n render,\n state: {},\n });\n}\n\nexport function PaginationItemPart<TAs extends ElementType = \"li\">(\n props: PaginationItemProps<TAs>,\n): ReactElement | null {\n const { as, render, children, ...consumerProps } = props as PaginationItemProps<\"li\">;\n\n return useRenderElement({\n as,\n defaultTag: \"li\",\n props: { ...consumerProps, children },\n render,\n state: {},\n });\n}\n\nexport function PaginationLink<TAs extends ElementType = \"a\">(\n props: PaginationLinkProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n disabled = false,\n getPageHref,\n locale,\n pageLabelTemplate = DEFAULT_PAGINATION_LABELS.page,\n page,\n selected = false,\n ...consumerProps\n } = props as PaginationLinkProps<\"a\">;\n\n const href = !disabled && getPageHref ? getPageHref(page) : undefined;\n const Tag = href ? \"a\" : \"span\";\n\n return useRenderElement({\n as: as ?? Tag,\n defaultTag: Tag,\n props: {\n ...consumerProps,\n \"aria-current\": selected ? \"page\" : undefined,\n \"aria-label\": formatPageLabel(pageLabelTemplate, page, locale),\n \"aria-disabled\": disabled ? true : undefined,\n \"data-disabled\": disabled ? \"\" : undefined,\n \"data-selected\": selected ? \"\" : undefined,\n \"data-size\": \"icon\",\n \"data-type\": \"page\",\n \"data-uiify-button\": \"\",\n \"data-variant\": \"ghost\",\n href,\n children: formatPageNumber(page, locale),\n },\n render,\n state: { selected },\n });\n}\n\nfunction PaginationNavControl({\n disabled,\n getPageHref,\n label,\n labelText,\n page,\n type,\n}: {\n readonly disabled: boolean;\n readonly getPageHref?: (page: number) => string;\n readonly label: string;\n readonly labelText: string;\n readonly page: number;\n readonly type: \"previous\" | \"next\" | \"first\" | \"last\";\n}): ReactElement {\n const href = !disabled && getPageHref ? getPageHref(page) : undefined;\n return (\n <PaginationItemPart>\n {href ? (\n <a\n aria-label={label}\n data-type={type}\n data-uiify-button=\"\"\n data-variant=\"ghost\"\n href={href}\n >\n {labelText}\n </a>\n ) : (\n <span\n aria-disabled={disabled ? true : undefined}\n aria-label={label}\n data-disabled={disabled ? \"\" : undefined}\n data-type={type}\n data-uiify-button=\"\"\n data-variant=\"ghost\"\n >\n {labelText}\n </span>\n )}\n </PaginationItemPart>\n );\n}\nPaginationNavControl.displayName = \"PaginationNavControl\";\n\nfunction formatPageNumber(page: number, locale?: string): string {\n return locale ? new Intl.NumberFormat(locale).format(page) : String(page);\n}\n\nfunction formatPageLabel(template: string, page: number, locale?: string): string {\n return formatLabel(template, { page: locale === undefined ? String(page) : page }, locale);\n}\n\nexport function PaginationEllipsis<TAs extends ElementType = \"span\">(\n props: PaginationEllipsisProps<TAs>,\n): ReactElement | null {\n const { as, render, ...consumerProps } = props as PaginationEllipsisProps<\"span\">;\n const element = useRenderElement({\n as,\n defaultTag: \"span\",\n props: {\n ...consumerProps,\n \"aria-hidden\": true,\n \"data-type\": \"ellipsis\",\n children: \"…\",\n },\n render,\n state: {},\n });\n\n return <PaginationItemPart>{element}</PaginationItemPart>;\n}\nPaginationEllipsis.displayName = \"PaginationEllipsis\";\n\nexport const Pagination = {\n Ellipsis: PaginationEllipsis,\n Item: PaginationItemPart,\n Link: PaginationLink,\n List: PaginationList,\n Root: PaginationRoot,\n};\n"],"mappings":"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","names":["buildPaginationItems"]}
@@ -1,5 +1,5 @@
1
1
  export { buildPaginationItems } from "./pagination-engine.js";
2
2
  export type { PaginationItem as PaginationItemDescriptor, PaginationItemType, UsePaginationParams, } from "./types.js";
3
3
  export { Pagination, PaginationEllipsis, PaginationItemPart as PaginationItem, PaginationLink, PaginationList, PaginationRoot, } from "./Pagination.js";
4
- export type { PaginationEllipsisProps, PaginationEllipsisOwnProps, PaginationItemProps, PaginationItemOwnProps, PaginationLinkOwnProps, PaginationLinkProps, PaginationListOwnProps, PaginationListProps, PaginationRootOwnProps, PaginationRootProps, } from "./types.js";
4
+ export type { PaginationEllipsisProps, PaginationEllipsisOwnProps, PaginationItemProps, PaginationItemOwnProps, PaginationLinkOwnProps, PaginationLinkProps, PaginationListOwnProps, PaginationListProps, PaginationRootOwnProps, PaginationRootProps, PaginationLabels, } from "./types.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EACV,cAAc,IAAI,wBAAwB,EAC1C,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,kBAAkB,IAAI,cAAc,EACpC,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EACV,cAAc,IAAI,wBAAwB,EAC1C,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,kBAAkB,IAAI,cAAc,EACpC,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/pagination/index.ts"],"sourcesContent":["export { buildPaginationItems } from \"./pagination-engine.js\";\nexport type {\n PaginationItem as PaginationItemDescriptor,\n PaginationItemType,\n UsePaginationParams,\n} from \"./types.js\";\nexport {\n Pagination,\n PaginationEllipsis,\n PaginationItemPart as PaginationItem,\n PaginationLink,\n PaginationList,\n PaginationRoot,\n} from \"./Pagination.js\";\nexport type {\n PaginationEllipsisProps,\n PaginationEllipsisOwnProps,\n PaginationItemProps,\n PaginationItemOwnProps,\n PaginationLinkOwnProps,\n PaginationLinkProps,\n PaginationListOwnProps,\n PaginationListProps,\n PaginationRootOwnProps,\n PaginationRootProps,\n} from \"./types.js\";\n"],"mappings":"AAAA,SAAS,4BAA4B;AAMrC;AAAA,EACE;AAAA,EACA;AAAA,EACsB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/pagination/index.ts"],"sourcesContent":["export { buildPaginationItems } from \"./pagination-engine.js\";\nexport type {\n PaginationItem as PaginationItemDescriptor,\n PaginationItemType,\n UsePaginationParams,\n} from \"./types.js\";\nexport {\n Pagination,\n PaginationEllipsis,\n PaginationItemPart as PaginationItem,\n PaginationLink,\n PaginationList,\n PaginationRoot,\n} from \"./Pagination.js\";\nexport type {\n PaginationEllipsisProps,\n PaginationEllipsisOwnProps,\n PaginationItemProps,\n PaginationItemOwnProps,\n PaginationLinkOwnProps,\n PaginationLinkProps,\n PaginationListOwnProps,\n PaginationListProps,\n PaginationRootOwnProps,\n PaginationRootProps,\n PaginationLabels,\n} from \"./types.js\";\n"],"mappings":"AAAA,SAAS,4BAA4B;AAMrC;AAAA,EACE;AAAA,EACA;AAAA,EACsB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
@@ -14,6 +14,18 @@ export interface PaginationControlItem {
14
14
  readonly type: Exclude<PaginationItemType, "page">;
15
15
  }
16
16
  export type PaginationItem = PaginationPageItem | PaginationControlItem;
17
+ export interface PaginationLabels {
18
+ readonly root: string;
19
+ readonly page: string;
20
+ readonly previous: string;
21
+ readonly next: string;
22
+ readonly first: string;
23
+ readonly last: string;
24
+ readonly previousText: string;
25
+ readonly nextText: string;
26
+ readonly firstText: string;
27
+ readonly lastText: string;
28
+ }
17
29
  export interface UsePaginationParams {
18
30
  readonly boundaryCount?: number;
19
31
  readonly count: number;
@@ -32,6 +44,8 @@ export interface UsePaginationReturn {
32
44
  export interface PaginationContextValue {
33
45
  readonly count: number;
34
46
  readonly items: readonly PaginationItem[];
47
+ readonly labels: PaginationLabels;
48
+ readonly locale?: string;
35
49
  readonly page: number;
36
50
  readonly setPage: (page: number) => void;
37
51
  }
@@ -39,6 +53,8 @@ export interface PaginationRootOwnProps extends UsePaginationParams {
39
53
  readonly "aria-label"?: string;
40
54
  readonly children?: ReactNode;
41
55
  readonly getPageHref?: (page: number) => string;
56
+ readonly labels?: Partial<PaginationLabels>;
57
+ readonly locale?: string;
42
58
  }
43
59
  export type PaginationRootProps<TAs extends ElementType = "nav"> = RenderableProps<TAs, PaginationRootOwnProps, {
44
60
  page: number;
@@ -54,6 +70,8 @@ export type PaginationItemProps<TAs extends ElementType = "li"> = RenderableProp
54
70
  export interface PaginationLinkOwnProps {
55
71
  readonly disabled?: boolean;
56
72
  readonly getPageHref?: (page: number) => string;
73
+ readonly locale?: string;
74
+ readonly pageLabelTemplate?: string;
57
75
  readonly page: number;
58
76
  readonly selected?: boolean;
59
77
  }