@multiplatform.one/components 6.4.2 → 6.6.0

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 (421) hide show
  1. package/dist/cjs/Alert/index.native.js.map +1 -1
  2. package/dist/cjs/Avatar/index.cjs +4 -0
  3. package/dist/cjs/Avatar/index.native.js +4 -0
  4. package/dist/cjs/Avatar/index.native.js.map +1 -1
  5. package/dist/cjs/Badge/index.cjs +3 -0
  6. package/dist/cjs/Badge/index.native.js +3 -0
  7. package/dist/cjs/Badge/index.native.js.map +1 -1
  8. package/dist/cjs/Carousel/index.cjs +29 -16
  9. package/dist/cjs/Carousel/index.native.js +35 -18
  10. package/dist/cjs/Carousel/index.native.js.map +1 -1
  11. package/dist/cjs/DotIndicator/index.cjs +95 -36
  12. package/dist/cjs/DotIndicator/index.native.js +96 -36
  13. package/dist/cjs/DotIndicator/index.native.js.map +1 -1
  14. package/dist/cjs/Pagination.cjs +112 -163
  15. package/dist/cjs/Pagination.native.js +125 -176
  16. package/dist/cjs/Pagination.native.js.map +1 -1
  17. package/dist/cjs/ProgressSteps/index.cjs +5 -3
  18. package/dist/cjs/ProgressSteps/index.native.js +5 -3
  19. package/dist/cjs/ProgressSteps/index.native.js.map +1 -1
  20. package/dist/cjs/Wheel/index.cjs +1 -1
  21. package/dist/cjs/Wheel/index.native.js +1 -1
  22. package/dist/cjs/Wheel/index.native.js.map +1 -1
  23. package/dist/cjs/charts/Axis.cjs +1 -1
  24. package/dist/cjs/charts/Axis.native.js +1 -1
  25. package/dist/cjs/charts/Axis.native.js.map +1 -1
  26. package/dist/cjs/charts/BarChart.cjs +1 -1
  27. package/dist/cjs/charts/BarChart.native.js +1 -3
  28. package/dist/cjs/charts/BarChart.native.js.map +1 -1
  29. package/dist/cjs/charts/LineChart.cjs +1 -1
  30. package/dist/cjs/charts/LineChart.native.js +1 -3
  31. package/dist/cjs/charts/LineChart.native.js.map +1 -1
  32. package/dist/cjs/charts/PieChart.cjs +3 -2
  33. package/dist/cjs/charts/PieChart.native.js +9 -5
  34. package/dist/cjs/charts/PieChart.native.js.map +1 -1
  35. package/dist/cjs/charts/accessibility.native.js.map +1 -1
  36. package/dist/cjs/charts/index.cjs +1 -0
  37. package/dist/cjs/charts/index.native.js +1 -0
  38. package/dist/cjs/charts/index.native.js.map +1 -1
  39. package/dist/cjs/charts/math.cjs +6 -1
  40. package/dist/cjs/charts/math.native.js +6 -1
  41. package/dist/cjs/charts/math.native.js.map +1 -1
  42. package/dist/cjs/componentColors.cjs +11 -3
  43. package/dist/cjs/componentColors.native.js +11 -3
  44. package/dist/cjs/componentColors.native.js.map +1 -1
  45. package/dist/cjs/feedback/ConfirmDialog.cjs +1 -3
  46. package/dist/cjs/feedback/ConfirmDialog.native.js +1 -3
  47. package/dist/cjs/feedback/ConfirmDialog.native.js.map +1 -1
  48. package/dist/cjs/index.cjs +1 -0
  49. package/dist/cjs/index.native.js +1 -0
  50. package/dist/cjs/index.native.js.map +1 -1
  51. package/dist/cjs/layouts/ViewSwitcher.cjs +19 -0
  52. package/dist/cjs/layouts/ViewSwitcher.native.js +33 -0
  53. package/dist/cjs/layouts/ViewSwitcher.native.js.map +1 -1
  54. package/dist/cjs/layouts/attachments.cjs +4 -8
  55. package/dist/cjs/layouts/attachments.native.js +5 -8
  56. package/dist/cjs/layouts/attachments.native.js.map +1 -1
  57. package/dist/cjs/layouts/page.cjs +3 -4
  58. package/dist/cjs/layouts/page.native.js +6 -5
  59. package/dist/cjs/layouts/page.native.js.map +1 -1
  60. package/dist/cjs/layouts/tags.cjs +1 -0
  61. package/dist/cjs/layouts/tags.native.js +2 -0
  62. package/dist/cjs/layouts/tags.native.js.map +1 -1
  63. package/dist/cjs/layouts/timeline.cjs +0 -6
  64. package/dist/cjs/layouts/timeline.native.js +0 -6
  65. package/dist/cjs/layouts/timeline.native.js.map +1 -1
  66. package/dist/cjs/surfaces.cjs +21 -0
  67. package/dist/cjs/surfaces.native.js +22 -0
  68. package/dist/cjs/surfaces.native.js.map +1 -1
  69. package/dist/cjs/views/Calendar.cjs +15 -38
  70. package/dist/cjs/views/Calendar.native.js +21 -44
  71. package/dist/cjs/views/Calendar.native.js.map +1 -1
  72. package/dist/cjs/views/Dashboard.cjs +10 -10
  73. package/dist/cjs/views/Dashboard.native.js +12 -10
  74. package/dist/cjs/views/Dashboard.native.js.map +1 -1
  75. package/dist/cjs/views/Kanban.cjs +22 -13
  76. package/dist/cjs/views/Kanban.native.js +1 -0
  77. package/dist/cjs/views/Kanban.native.js.map +1 -1
  78. package/dist/cjs/views/ReportBuilder.cjs +29 -11
  79. package/dist/cjs/views/ReportBuilder.native.js +29 -11
  80. package/dist/cjs/views/ReportBuilder.native.js.map +1 -1
  81. package/dist/cjs/views/TreeView.cjs +1 -1
  82. package/dist/cjs/views/TreeView.native.js +1 -1
  83. package/dist/cjs/views/TreeView.native.js.map +1 -1
  84. package/dist/cjs/views/calendarMath.cjs +3 -9
  85. package/dist/cjs/views/calendarMath.native.js +3 -9
  86. package/dist/cjs/views/calendarMath.native.js.map +1 -1
  87. package/dist/cjs/views/ganttMath.cjs +14 -19
  88. package/dist/cjs/views/ganttMath.native.js +21 -20
  89. package/dist/cjs/views/ganttMath.native.js.map +1 -1
  90. package/dist/esm/Accordion/index.mjs.map +1 -1
  91. package/dist/esm/Alert/index.mjs.map +1 -1
  92. package/dist/esm/Alert/index.native.js.map +1 -1
  93. package/dist/esm/Avatar/index.mjs +5 -1
  94. package/dist/esm/Avatar/index.mjs.map +1 -1
  95. package/dist/esm/Avatar/index.native.js +5 -1
  96. package/dist/esm/Avatar/index.native.js.map +1 -1
  97. package/dist/esm/Badge/index.mjs +4 -1
  98. package/dist/esm/Badge/index.mjs.map +1 -1
  99. package/dist/esm/Badge/index.native.js +4 -1
  100. package/dist/esm/Badge/index.native.js.map +1 -1
  101. package/dist/esm/Carousel/index.mjs +29 -16
  102. package/dist/esm/Carousel/index.mjs.map +1 -1
  103. package/dist/esm/Carousel/index.native.js +35 -18
  104. package/dist/esm/Carousel/index.native.js.map +1 -1
  105. package/dist/esm/DotIndicator/index.mjs +96 -37
  106. package/dist/esm/DotIndicator/index.mjs.map +1 -1
  107. package/dist/esm/DotIndicator/index.native.js +97 -37
  108. package/dist/esm/DotIndicator/index.native.js.map +1 -1
  109. package/dist/esm/DropdownMenu/index.mjs.map +1 -1
  110. package/dist/esm/DropdownMenu/index.native.js.map +1 -1
  111. package/dist/esm/Pagination.mjs +113 -164
  112. package/dist/esm/Pagination.mjs.map +1 -1
  113. package/dist/esm/Pagination.native.js +126 -177
  114. package/dist/esm/Pagination.native.js.map +1 -1
  115. package/dist/esm/ProgressSteps/index.mjs +6 -4
  116. package/dist/esm/ProgressSteps/index.mjs.map +1 -1
  117. package/dist/esm/ProgressSteps/index.native.js +6 -4
  118. package/dist/esm/ProgressSteps/index.native.js.map +1 -1
  119. package/dist/esm/Wheel/index.mjs +1 -1
  120. package/dist/esm/Wheel/index.mjs.map +1 -1
  121. package/dist/esm/Wheel/index.native.js +1 -1
  122. package/dist/esm/Wheel/index.native.js.map +1 -1
  123. package/dist/esm/charts/Axis.mjs +2 -2
  124. package/dist/esm/charts/Axis.mjs.map +1 -1
  125. package/dist/esm/charts/Axis.native.js +2 -2
  126. package/dist/esm/charts/Axis.native.js.map +1 -1
  127. package/dist/esm/charts/BarChart.mjs +2 -2
  128. package/dist/esm/charts/BarChart.mjs.map +1 -1
  129. package/dist/esm/charts/BarChart.native.js +2 -4
  130. package/dist/esm/charts/BarChart.native.js.map +1 -1
  131. package/dist/esm/charts/LineChart.mjs +2 -2
  132. package/dist/esm/charts/LineChart.mjs.map +1 -1
  133. package/dist/esm/charts/LineChart.native.js +2 -4
  134. package/dist/esm/charts/LineChart.native.js.map +1 -1
  135. package/dist/esm/charts/PieChart.mjs +3 -2
  136. package/dist/esm/charts/PieChart.mjs.map +1 -1
  137. package/dist/esm/charts/PieChart.native.js +9 -5
  138. package/dist/esm/charts/PieChart.native.js.map +1 -1
  139. package/dist/esm/charts/accessibility.mjs.map +1 -1
  140. package/dist/esm/charts/accessibility.native.js.map +1 -1
  141. package/dist/esm/charts/index.mjs +2 -2
  142. package/dist/esm/charts/index.mjs.map +1 -1
  143. package/dist/esm/charts/index.native.js +2 -2
  144. package/dist/esm/charts/index.native.js.map +1 -1
  145. package/dist/esm/charts/math.mjs +6 -2
  146. package/dist/esm/charts/math.mjs.map +1 -1
  147. package/dist/esm/charts/math.native.js +6 -2
  148. package/dist/esm/charts/math.native.js.map +1 -1
  149. package/dist/esm/componentColors.mjs +11 -3
  150. package/dist/esm/componentColors.mjs.map +1 -1
  151. package/dist/esm/componentColors.native.js +11 -3
  152. package/dist/esm/componentColors.native.js.map +1 -1
  153. package/dist/esm/feedback/ConfirmDialog.mjs +2 -4
  154. package/dist/esm/feedback/ConfirmDialog.mjs.map +1 -1
  155. package/dist/esm/feedback/ConfirmDialog.native.js +2 -4
  156. package/dist/esm/feedback/ConfirmDialog.native.js.map +1 -1
  157. package/dist/esm/index.mjs +2 -2
  158. package/dist/esm/index.mjs.map +1 -1
  159. package/dist/esm/index.native.js +2 -2
  160. package/dist/esm/index.native.js.map +1 -1
  161. package/dist/esm/layouts/ViewSwitcher.mjs +20 -1
  162. package/dist/esm/layouts/ViewSwitcher.mjs.map +1 -1
  163. package/dist/esm/layouts/ViewSwitcher.native.js +34 -1
  164. package/dist/esm/layouts/ViewSwitcher.native.js.map +1 -1
  165. package/dist/esm/layouts/attachments.mjs +4 -8
  166. package/dist/esm/layouts/attachments.mjs.map +1 -1
  167. package/dist/esm/layouts/attachments.native.js +5 -8
  168. package/dist/esm/layouts/attachments.native.js.map +1 -1
  169. package/dist/esm/layouts/page.mjs +4 -5
  170. package/dist/esm/layouts/page.mjs.map +1 -1
  171. package/dist/esm/layouts/page.native.js +7 -6
  172. package/dist/esm/layouts/page.native.js.map +1 -1
  173. package/dist/esm/layouts/tags.mjs +1 -0
  174. package/dist/esm/layouts/tags.mjs.map +1 -1
  175. package/dist/esm/layouts/tags.native.js +2 -0
  176. package/dist/esm/layouts/tags.native.js.map +1 -1
  177. package/dist/esm/layouts/timeline.mjs +0 -6
  178. package/dist/esm/layouts/timeline.mjs.map +1 -1
  179. package/dist/esm/layouts/timeline.native.js +0 -6
  180. package/dist/esm/layouts/timeline.native.js.map +1 -1
  181. package/dist/esm/surfaces.mjs +21 -1
  182. package/dist/esm/surfaces.mjs.map +1 -1
  183. package/dist/esm/surfaces.native.js +22 -1
  184. package/dist/esm/surfaces.native.js.map +1 -1
  185. package/dist/esm/views/Calendar.mjs +6 -29
  186. package/dist/esm/views/Calendar.mjs.map +1 -1
  187. package/dist/esm/views/Calendar.native.js +12 -35
  188. package/dist/esm/views/Calendar.native.js.map +1 -1
  189. package/dist/esm/views/Dashboard.mjs +12 -12
  190. package/dist/esm/views/Dashboard.mjs.map +1 -1
  191. package/dist/esm/views/Dashboard.native.js +14 -12
  192. package/dist/esm/views/Dashboard.native.js.map +1 -1
  193. package/dist/esm/views/Kanban.mjs +23 -14
  194. package/dist/esm/views/Kanban.mjs.map +1 -1
  195. package/dist/esm/views/Kanban.native.js +2 -1
  196. package/dist/esm/views/Kanban.native.js.map +1 -1
  197. package/dist/esm/views/ReportBuilder.mjs +30 -12
  198. package/dist/esm/views/ReportBuilder.mjs.map +1 -1
  199. package/dist/esm/views/ReportBuilder.native.js +30 -12
  200. package/dist/esm/views/ReportBuilder.native.js.map +1 -1
  201. package/dist/esm/views/TreeView.mjs +1 -1
  202. package/dist/esm/views/TreeView.mjs.map +1 -1
  203. package/dist/esm/views/TreeView.native.js +1 -1
  204. package/dist/esm/views/TreeView.native.js.map +1 -1
  205. package/dist/esm/views/calendarMath.mjs +3 -9
  206. package/dist/esm/views/calendarMath.mjs.map +1 -1
  207. package/dist/esm/views/calendarMath.native.js +3 -9
  208. package/dist/esm/views/calendarMath.native.js.map +1 -1
  209. package/dist/esm/views/ganttMath.mjs +14 -19
  210. package/dist/esm/views/ganttMath.mjs.map +1 -1
  211. package/dist/esm/views/ganttMath.native.js +21 -20
  212. package/dist/esm/views/ganttMath.native.js.map +1 -1
  213. package/dist/esm/views/kanbanDnd.mjs.map +1 -1
  214. package/dist/jsx/Accordion/index.mjs.map +1 -1
  215. package/dist/jsx/Alert/index.mjs.map +1 -1
  216. package/dist/jsx/Alert/index.native.js.map +1 -1
  217. package/dist/jsx/Avatar/index.mjs +5 -1
  218. package/dist/jsx/Avatar/index.mjs.map +1 -1
  219. package/dist/jsx/Avatar/index.native.js +4 -0
  220. package/dist/jsx/Avatar/index.native.js.map +1 -1
  221. package/dist/jsx/Badge/index.mjs +4 -1
  222. package/dist/jsx/Badge/index.mjs.map +1 -1
  223. package/dist/jsx/Badge/index.native.js +3 -0
  224. package/dist/jsx/Badge/index.native.js.map +1 -1
  225. package/dist/jsx/Carousel/index.mjs +29 -16
  226. package/dist/jsx/Carousel/index.mjs.map +1 -1
  227. package/dist/jsx/Carousel/index.native.js +35 -18
  228. package/dist/jsx/Carousel/index.native.js.map +1 -1
  229. package/dist/jsx/DotIndicator/index.mjs +96 -37
  230. package/dist/jsx/DotIndicator/index.mjs.map +1 -1
  231. package/dist/jsx/DotIndicator/index.native.js +96 -36
  232. package/dist/jsx/DotIndicator/index.native.js.map +1 -1
  233. package/dist/jsx/DropdownMenu/index.mjs.map +1 -1
  234. package/dist/jsx/Pagination.mjs +113 -164
  235. package/dist/jsx/Pagination.mjs.map +1 -1
  236. package/dist/jsx/Pagination.native.js +125 -176
  237. package/dist/jsx/Pagination.native.js.map +1 -1
  238. package/dist/jsx/ProgressSteps/index.mjs +6 -4
  239. package/dist/jsx/ProgressSteps/index.mjs.map +1 -1
  240. package/dist/jsx/ProgressSteps/index.native.js +5 -3
  241. package/dist/jsx/ProgressSteps/index.native.js.map +1 -1
  242. package/dist/jsx/Wheel/index.mjs +1 -1
  243. package/dist/jsx/Wheel/index.mjs.map +1 -1
  244. package/dist/jsx/Wheel/index.native.js +1 -1
  245. package/dist/jsx/Wheel/index.native.js.map +1 -1
  246. package/dist/jsx/charts/Axis.mjs +2 -2
  247. package/dist/jsx/charts/Axis.mjs.map +1 -1
  248. package/dist/jsx/charts/Axis.native.js +1 -1
  249. package/dist/jsx/charts/Axis.native.js.map +1 -1
  250. package/dist/jsx/charts/BarChart.mjs +2 -2
  251. package/dist/jsx/charts/BarChart.mjs.map +1 -1
  252. package/dist/jsx/charts/BarChart.native.js +1 -3
  253. package/dist/jsx/charts/BarChart.native.js.map +1 -1
  254. package/dist/jsx/charts/LineChart.mjs +2 -2
  255. package/dist/jsx/charts/LineChart.mjs.map +1 -1
  256. package/dist/jsx/charts/LineChart.native.js +1 -3
  257. package/dist/jsx/charts/LineChart.native.js.map +1 -1
  258. package/dist/jsx/charts/PieChart.mjs +3 -2
  259. package/dist/jsx/charts/PieChart.mjs.map +1 -1
  260. package/dist/jsx/charts/PieChart.native.js +9 -5
  261. package/dist/jsx/charts/PieChart.native.js.map +1 -1
  262. package/dist/jsx/charts/accessibility.mjs.map +1 -1
  263. package/dist/jsx/charts/accessibility.native.js.map +1 -1
  264. package/dist/jsx/charts/index.mjs +2 -2
  265. package/dist/jsx/charts/index.mjs.map +1 -1
  266. package/dist/jsx/charts/index.native.js +1 -0
  267. package/dist/jsx/charts/index.native.js.map +1 -1
  268. package/dist/jsx/charts/math.mjs +6 -2
  269. package/dist/jsx/charts/math.mjs.map +1 -1
  270. package/dist/jsx/charts/math.native.js +6 -1
  271. package/dist/jsx/charts/math.native.js.map +1 -1
  272. package/dist/jsx/componentColors.mjs +11 -3
  273. package/dist/jsx/componentColors.mjs.map +1 -1
  274. package/dist/jsx/componentColors.native.js +11 -3
  275. package/dist/jsx/componentColors.native.js.map +1 -1
  276. package/dist/jsx/feedback/ConfirmDialog.mjs +2 -4
  277. package/dist/jsx/feedback/ConfirmDialog.mjs.map +1 -1
  278. package/dist/jsx/feedback/ConfirmDialog.native.js +1 -3
  279. package/dist/jsx/feedback/ConfirmDialog.native.js.map +1 -1
  280. package/dist/jsx/index.js +2 -2
  281. package/dist/jsx/index.js.map +1 -1
  282. package/dist/jsx/index.mjs +2 -2
  283. package/dist/jsx/index.mjs.map +1 -1
  284. package/dist/jsx/index.native.js +1 -0
  285. package/dist/jsx/index.native.js.map +1 -1
  286. package/dist/jsx/layouts/ViewSwitcher.mjs +20 -1
  287. package/dist/jsx/layouts/ViewSwitcher.mjs.map +1 -1
  288. package/dist/jsx/layouts/ViewSwitcher.native.js +33 -0
  289. package/dist/jsx/layouts/ViewSwitcher.native.js.map +1 -1
  290. package/dist/jsx/layouts/attachments.mjs +4 -8
  291. package/dist/jsx/layouts/attachments.mjs.map +1 -1
  292. package/dist/jsx/layouts/attachments.native.js +5 -8
  293. package/dist/jsx/layouts/attachments.native.js.map +1 -1
  294. package/dist/jsx/layouts/page.mjs +4 -5
  295. package/dist/jsx/layouts/page.mjs.map +1 -1
  296. package/dist/jsx/layouts/page.native.js +6 -5
  297. package/dist/jsx/layouts/page.native.js.map +1 -1
  298. package/dist/jsx/layouts/tags.mjs +1 -0
  299. package/dist/jsx/layouts/tags.mjs.map +1 -1
  300. package/dist/jsx/layouts/tags.native.js +2 -0
  301. package/dist/jsx/layouts/tags.native.js.map +1 -1
  302. package/dist/jsx/layouts/timeline.mjs +0 -6
  303. package/dist/jsx/layouts/timeline.mjs.map +1 -1
  304. package/dist/jsx/layouts/timeline.native.js +0 -6
  305. package/dist/jsx/layouts/timeline.native.js.map +1 -1
  306. package/dist/jsx/surfaces.mjs +21 -1
  307. package/dist/jsx/surfaces.mjs.map +1 -1
  308. package/dist/jsx/surfaces.native.js +22 -0
  309. package/dist/jsx/surfaces.native.js.map +1 -1
  310. package/dist/jsx/views/Calendar.mjs +6 -29
  311. package/dist/jsx/views/Calendar.mjs.map +1 -1
  312. package/dist/jsx/views/Calendar.native.js +21 -44
  313. package/dist/jsx/views/Calendar.native.js.map +1 -1
  314. package/dist/jsx/views/Dashboard.mjs +12 -12
  315. package/dist/jsx/views/Dashboard.mjs.map +1 -1
  316. package/dist/jsx/views/Dashboard.native.js +12 -10
  317. package/dist/jsx/views/Dashboard.native.js.map +1 -1
  318. package/dist/jsx/views/Kanban.mjs +23 -14
  319. package/dist/jsx/views/Kanban.mjs.map +1 -1
  320. package/dist/jsx/views/Kanban.native.js +1 -0
  321. package/dist/jsx/views/Kanban.native.js.map +1 -1
  322. package/dist/jsx/views/ReportBuilder.mjs +30 -12
  323. package/dist/jsx/views/ReportBuilder.mjs.map +1 -1
  324. package/dist/jsx/views/ReportBuilder.native.js +29 -11
  325. package/dist/jsx/views/ReportBuilder.native.js.map +1 -1
  326. package/dist/jsx/views/TreeView.mjs +1 -1
  327. package/dist/jsx/views/TreeView.mjs.map +1 -1
  328. package/dist/jsx/views/TreeView.native.js +1 -1
  329. package/dist/jsx/views/TreeView.native.js.map +1 -1
  330. package/dist/jsx/views/calendarMath.mjs +3 -9
  331. package/dist/jsx/views/calendarMath.mjs.map +1 -1
  332. package/dist/jsx/views/calendarMath.native.js +3 -9
  333. package/dist/jsx/views/calendarMath.native.js.map +1 -1
  334. package/dist/jsx/views/ganttMath.mjs +14 -19
  335. package/dist/jsx/views/ganttMath.mjs.map +1 -1
  336. package/dist/jsx/views/ganttMath.native.js +21 -20
  337. package/dist/jsx/views/ganttMath.native.js.map +1 -1
  338. package/dist/jsx/views/kanbanDnd.mjs.map +1 -1
  339. package/package.json +12 -12
  340. package/src/Accordion/Accordion.stories.tsx +7 -2
  341. package/src/Alert/index.tsx +1 -3
  342. package/src/Avatar/Avatar.spec.tsx +31 -0
  343. package/src/Avatar/index.tsx +19 -1
  344. package/src/Badge/Badge.stories.tsx +3 -1
  345. package/src/Badge/index.tsx +4 -1
  346. package/src/Carousel/Carousel.spec.tsx +271 -0
  347. package/src/Carousel/Carousel.stories.tsx +35 -0
  348. package/src/Carousel/index.tsx +45 -20
  349. package/src/DialogContent.stories.tsx +2 -2
  350. package/src/DotIndicator/dotIndicator.spec.tsx +43 -1
  351. package/src/DotIndicator/index.tsx +170 -37
  352. package/src/Pagination.api.spec.tsx +345 -0
  353. package/src/Pagination.tsx +138 -176
  354. package/src/Panel.stories.tsx +4 -4
  355. package/src/ProgressSteps/ProgressSteps.spec.tsx +40 -1
  356. package/src/ProgressSteps/ProgressSteps.stories.tsx +3 -1
  357. package/src/ProgressSteps/index.tsx +6 -1
  358. package/src/charts/PieChart.tsx +4 -1
  359. package/src/feedback/ConfirmDialog.tsx +2 -2
  360. package/src/index.ts +1 -0
  361. package/src/layouts/PageHeader.stories.tsx +21 -3
  362. package/src/layouts/ScreenToolbar.stories.tsx +12 -5
  363. package/src/layouts/ViewSwitcher.tsx +25 -6
  364. package/src/layouts/attachments.tsx +4 -1
  365. package/src/layouts/layouts.spec.tsx +77 -1
  366. package/src/layouts/page.tsx +5 -1
  367. package/src/layouts/pageTitleScale.spec.tsx +70 -0
  368. package/src/layouts/tags.tsx +2 -0
  369. package/src/layouts/timeline-radius.spec.tsx +21 -0
  370. package/src/layouts/timeline.tsx +7 -18
  371. package/src/shared/t.spec.ts +47 -0
  372. package/src/surfaces.tsx +33 -0
  373. package/src/views/Calendar.stories.tsx +4 -2
  374. package/src/views/Calendar.tsx +6 -1
  375. package/src/views/Gantt.stories.tsx +2 -2
  376. package/src/views/Kanban.native.tsx +8 -2
  377. package/src/views/Kanban.stories.tsx +3 -1
  378. package/src/views/Kanban.tsx +42 -13
  379. package/src/views/ReportBuilder.tsx +15 -2
  380. package/src/views/ganttMath.ts +2 -6
  381. package/types/Alert/index.d.ts.map +1 -1
  382. package/types/Avatar/index.d.ts.map +1 -1
  383. package/types/Badge/index.d.ts.map +1 -1
  384. package/types/Carousel/index.d.ts.map +1 -1
  385. package/types/DotIndicator/index.d.ts +44 -3
  386. package/types/DotIndicator/index.d.ts.map +1 -1
  387. package/types/Pagination.d.ts +6 -1
  388. package/types/Pagination.d.ts.map +1 -1
  389. package/types/ProgressSteps/index.d.ts.map +1 -1
  390. package/types/charts/Axis.d.ts.map +1 -1
  391. package/types/charts/BarChart.d.ts.map +1 -1
  392. package/types/charts/LineChart.d.ts.map +1 -1
  393. package/types/charts/PieChart.d.ts.map +1 -1
  394. package/types/charts/accessibility.d.ts +3 -2
  395. package/types/charts/accessibility.d.ts.map +1 -1
  396. package/types/charts/index.d.ts +1 -1
  397. package/types/charts/index.d.ts.map +1 -1
  398. package/types/charts/math.d.ts +16 -1
  399. package/types/charts/math.d.ts.map +1 -1
  400. package/types/componentColors.d.ts +11 -3
  401. package/types/componentColors.d.ts.map +1 -1
  402. package/types/index.d.ts +1 -1
  403. package/types/index.d.ts.map +1 -1
  404. package/types/layouts/ViewSwitcher.d.ts.map +1 -1
  405. package/types/layouts/attachments.d.ts.map +1 -1
  406. package/types/layouts/page.d.ts +8 -6
  407. package/types/layouts/page.d.ts.map +1 -1
  408. package/types/layouts/tags.d.ts.map +1 -1
  409. package/types/layouts/timeline.d.ts.map +1 -1
  410. package/types/surfaces.d.ts +17 -0
  411. package/types/surfaces.d.ts.map +1 -1
  412. package/types/views/Calendar.d.ts.map +1 -1
  413. package/types/views/Dashboard.d.ts.map +1 -1
  414. package/types/views/Kanban.d.ts +13 -1
  415. package/types/views/Kanban.d.ts.map +1 -1
  416. package/types/views/ReportBuilder.d.ts.map +1 -1
  417. package/types/views/TreeView.d.ts.map +1 -1
  418. package/types/views/calendarMath.d.ts +5 -1
  419. package/types/views/calendarMath.d.ts.map +1 -1
  420. package/types/views/ganttMath.d.ts +3 -0
  421. package/types/views/ganttMath.d.ts.map +1 -1
@@ -32,6 +32,7 @@ var import_react2 = require("react");
32
32
  var import_react_i18next = require("react-i18next");
33
33
  var import_forms = require("@multiplatform.one/forms");
34
34
  var import_tamagui = require("tamagui");
35
+ var import_DotIndicator = require("./DotIndicator/index.cjs");
35
36
  var import_componentColors = require("./componentColors.cjs");
36
37
  var import_useDirection = require("./hooks/useDirection.cjs");
37
38
  var import_t = require("./shared/t.cjs");
@@ -60,6 +61,16 @@ function getPaginationItems(total, page, siblingCount = 1, boundaryCount = 1) {
60
61
  items.push(...endPages);
61
62
  return items;
62
63
  }
64
+ const stripSteps = {
65
+ base: {
66
+ mark: "$0.75",
67
+ active: "$2"
68
+ },
69
+ large: {
70
+ mark: "$1.5",
71
+ active: "$3"
72
+ }
73
+ };
63
74
  function Pagination({
64
75
  total,
65
76
  activeIndex,
@@ -121,181 +132,119 @@ function Pagination({
121
132
  if (enabled) fn();
122
133
  }
123
134
  };
124
- if (variant === "numbered") {
125
- const items = getPaginationItems(total, currentPage, siblingCount, boundaryCount);
126
- const canPrev = !disabled && currentPage > 1;
127
- const canNext = !disabled && currentPage < total;
128
- const summary = showSummary && totalItems != null && pageSize != null ? (0, import_t.bidiIsolate)(totalItems === 0 ? t("0 of 0") : (0, import_t.withInterp)(t("{{start}}\u2013{{end}} of {{total}}"), {
129
- start: (currentPage - 1) * pageSize + 1,
130
- end: Math.min(currentPage * pageSize, totalItems),
131
- total: totalItems
132
- })) : void 0;
133
- return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
134
- alignItems: "center",
135
- justifyContent: "center",
136
- role: "navigation",
137
- "aria-label": t("Pagination"),
138
- ...knobProps.gap,
139
- ...stackProps,
140
- children: [showFirstLast && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
141
- size: knobProps.sizeToken,
142
- variant: "outlined",
143
- icon: FirstIcon,
144
- onPress: () => goTo(0),
145
- disabled: !canPrev,
146
- "aria-label": t("Go to first page"),
147
- onKeyDown: activateOnEnterSpace(() => goTo(0), canPrev)
148
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
149
- size: knobProps.sizeToken,
150
- variant: "outlined",
151
- icon: PrevIcon,
152
- onPress: handlePrev,
153
- disabled: !canPrev,
154
- "aria-label": t("Go to previous page"),
155
- onKeyDown: activateOnEnterSpace(handlePrev, canPrev)
156
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
157
- alignItems: "center",
158
- gap: "$1",
159
- children: items.map(item => {
160
- if (typeof item !== "number") {
161
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
162
- "aria-hidden": true,
163
- userSelect: "none",
164
- textAlign: "center",
165
- minWidth: "$2",
166
- ...knobProps.body,
167
- color: import_componentColors.componentColors.text.muted,
168
- children: "\u2026"
169
- }, item);
170
- }
171
- const isCurrent = item === currentPage;
172
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
173
- size: knobProps.sizeToken,
174
- minWidth: knobProps.sizeToken,
175
- paddingHorizontal: "$2",
176
- accent: isCurrent,
177
- chromeless: !isCurrent,
178
- disabled,
179
- onPress: () => goTo(item - 1),
180
- "aria-label": (0, import_t.withInterp)(t("Page {{number}}"), {
181
- number: item
182
- }),
183
- "aria-current": isCurrent ? "page" : void 0,
184
- onKeyDown: activateOnEnterSpace(() => goTo(item - 1), !disabled),
185
- children: String(item)
186
- }, item);
187
- })
188
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
189
- size: knobProps.sizeToken,
190
- variant: "outlined",
191
- icon: NextIcon,
192
- onPress: handleNext,
193
- disabled: !canNext,
194
- "aria-label": t("Go to next page"),
195
- onKeyDown: activateOnEnterSpace(handleNext, canNext)
196
- }), showFirstLast && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
197
- size: knobProps.sizeToken,
198
- variant: "outlined",
199
- icon: LastIcon,
200
- onPress: () => goTo(total - 1),
201
- disabled: !canNext,
202
- "aria-label": t("Go to last page"),
203
- onKeyDown: activateOnEnterSpace(() => goTo(total - 1), canNext)
204
- }), summary && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
205
- ...knobProps.body,
206
- color: import_componentColors.componentColors.text.muted,
207
- "aria-live": "polite",
208
- userSelect: "none",
209
- children: summary
210
- })]
211
- });
212
- }
213
- const dotSize = variant === "bars" ? "$1.5" : "$0.75";
214
- const activeDotSize = variant === "bars" ? "$3" : "$2";
135
+ const isNumbered = variant === "numbered";
136
+ const canPrev = !disabled && index > 0;
137
+ const canNext = isNumbered ? !disabled && currentPage < total :
138
+ // dots/bars: an onSubmit makes the last step actionable, so the forward
139
+ // control is not dead there.
140
+ !(disabled || !isLastStep && index >= total - 1 && !onSubmit);
141
+ const submits = !isNumbered && isLastStep;
142
+ const items = isNumbered ? getPaginationItems(total, currentPage, siblingCount, boundaryCount) : [];
143
+ const summary = isNumbered && showSummary && totalItems != null && pageSize != null ? (0, import_t.bidiIsolate)(totalItems === 0 ? t("0 of 0") : (0, import_t.withInterp)(t("{{start}}\u2013{{end}} of {{total}}"), {
144
+ start: (currentPage - 1) * pageSize + 1,
145
+ end: Math.min(currentPage * pageSize, totalItems),
146
+ total: totalItems
147
+ })) : void 0;
148
+ const step = variant === "bars" ? stripSteps.large : stripSteps.base;
215
149
  return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
216
150
  alignItems: "center",
217
151
  justifyContent: "center",
152
+ role: "navigation",
153
+ "aria-label": t("Pagination"),
218
154
  ...knobProps.gap,
219
155
  ...stackProps,
220
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
156
+ children: [isNumbered && showFirstLast && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
221
157
  size: knobProps.sizeToken,
222
- circular: true,
223
- icon: PrevArrowIcon,
224
- onPress: handlePrev,
225
- disabled: disabled || index === 0,
226
158
  variant: "outlined",
227
- "aria-label": t("Previous page"),
228
- onKeyDown: activateOnEnterSpace(handlePrev, !(disabled || index === 0))
229
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
159
+ icon: FirstIcon,
160
+ onPress: () => goTo(0),
161
+ disabled: !canPrev,
162
+ "aria-label": t("Go to first page"),
163
+ onKeyDown: activateOnEnterSpace(() => goTo(0), canPrev)
164
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
165
+ size: knobProps.sizeToken,
166
+ circular: !isNumbered,
167
+ variant: "outlined",
168
+ icon: isNumbered ? PrevIcon : PrevArrowIcon,
169
+ onPress: handlePrev,
170
+ disabled: !canPrev,
171
+ "aria-label": isNumbered ? t("Go to previous page") : t("Previous page"),
172
+ onKeyDown: activateOnEnterSpace(handlePrev, canPrev)
173
+ }), isNumbered ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
230
174
  alignItems: "center",
231
- justifyContent: "center",
232
- gap: "$2",
233
- backgroundColor: import_componentColors.componentColors.interactive.background,
234
- paddingHorizontal: knobProps.panelPadding.padding,
235
- height: knobProps.sizeToken,
236
- borderRadius: "$10",
237
- children: Array.from({
238
- length: total
239
- }).map((_, dotIndex) => {
240
- const isActive = dotIndex === index;
241
- const isCompleted = completedSteps?.has(dotIndex);
242
- const canJump = allowJumpTo && !disabled;
243
- const dotProps = {
244
- width: isActive ? activeDotSize : dotSize,
245
- height: dotSize,
246
- borderRadius: "$10",
247
- backgroundColor: isCompleted && !isActive ? import_componentColors.componentColors.indicator.completed : isActive ? import_componentColors.componentColors.indicator.current : import_componentColors.componentColors.indicator.track,
248
- transition: motionTransition,
249
- cursor: canJump ? "pointer" : void 0,
250
- alignItems: "center",
251
- justifyContent: "center",
252
- "aria-current": isActive ? "step" : void 0,
253
- "data-pagination-dot": isActive ? "active" : "idle",
254
- // Belt-and-suspenders for the CSS driver: named `transition` covers
255
- // Tamagui layout props; explicit width/bg ensures measurable intermediates.
256
- style: {
257
- transition: `width var(--mp-transition, 100ms) ease, height var(--mp-transition, 100ms) ease, background-color var(--mp-transition, 100ms) ease`
258
- },
259
- ...(canJump ? {
260
- onPress: () => goTo(dotIndex),
261
- role: "button",
262
- "aria-label": (0, import_t.withInterp)(t("Go to step {{number}}"), {
263
- number: dotIndex + 1
264
- }),
265
- tabIndex: 0,
266
- focusVisibleStyle: {
267
- outlineColor: "$outlineColor",
268
- outlineWidth: 2,
269
- outlineStyle: "solid",
270
- outlineOffset: 1
271
- },
272
- onKeyDown: e => {
273
- if (e.key === "Enter" || e.key === " ") {
274
- e.preventDefault();
275
- goTo(dotIndex);
276
- }
277
- }
278
- } : {})
279
- };
280
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
281
- ...dotProps,
282
- children: isCompleted && !isActive && variant === "dots" && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.CheckIcon, {
283
- size: 8,
284
- color: "white",
285
- weight: "bold"
286
- })
287
- }, dotIndex);
175
+ gap: "$1",
176
+ children: items.map(item => {
177
+ if (typeof item !== "number") {
178
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
179
+ "aria-hidden": true,
180
+ userSelect: "none",
181
+ textAlign: "center",
182
+ minWidth: "$2",
183
+ ...knobProps.body,
184
+ color: import_componentColors.componentColors.text.muted,
185
+ children: "\u2026"
186
+ }, item);
187
+ }
188
+ const isCurrent = item === currentPage;
189
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
190
+ size: knobProps.sizeToken,
191
+ minWidth: knobProps.sizeToken,
192
+ paddingHorizontal: "$2",
193
+ accent: isCurrent,
194
+ chromeless: !isCurrent,
195
+ disabled,
196
+ onPress: () => goTo(item - 1),
197
+ "aria-label": (0, import_t.withInterp)(t("Page {{number}}"), {
198
+ number: item
199
+ }),
200
+ "aria-current": isCurrent ? "page" : void 0,
201
+ onKeyDown: activateOnEnterSpace(() => goTo(item - 1), !disabled),
202
+ children: String(item)
203
+ }, item);
288
204
  })
205
+ }) :
206
+ // LC-16: the dot strip IS `DotIndicator` — this component owns the
207
+ // pager frame around it, not a second strip. `completedSteps`, the
208
+ // wizard a11y idiom and the rail all ride the primitive, so the two
209
+ // strips in the catalog cannot drift apart again.
210
+ /* @__PURE__ */
211
+ (0, import_jsx_runtime.jsx)(import_DotIndicator.DotIndicator, {
212
+ total,
213
+ activeIndex: index,
214
+ variant,
215
+ idiom: "step",
216
+ rail: true,
217
+ completedSteps,
218
+ dotSize: step.mark,
219
+ activeDotSize: step.active,
220
+ transition: motionTransition,
221
+ dotStateAttribute: "data-pagination-dot",
222
+ onChange: allowJumpTo && !disabled ? goTo : void 0,
223
+ disabled: allowJumpTo && disabled
289
224
  }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
290
225
  size: knobProps.sizeToken,
291
- circular: true,
292
- icon: isLastStep ? import_react.CheckIcon : NextArrowIcon,
226
+ circular: !isNumbered,
227
+ variant: submits ? void 0 : "outlined",
228
+ theme: submits ? "active" : void 0,
229
+ icon: isNumbered ? NextIcon : submits ? import_react.CheckIcon : NextArrowIcon,
293
230
  onPress: handleNext,
294
- disabled: disabled || !isLastStep && index >= total - 1 && !onSubmit,
295
- variant: isLastStep ? void 0 : "outlined",
296
- theme: isLastStep ? "active" : void 0,
297
- "aria-label": isLastStep ? t("Submit") : t("Next page"),
298
- onKeyDown: activateOnEnterSpace(handleNext, !(disabled || !isLastStep && index >= total - 1 && !onSubmit))
231
+ disabled: !canNext,
232
+ "aria-label": isNumbered ? t("Go to next page") : submits ? t("Submit") : t("Next page"),
233
+ onKeyDown: activateOnEnterSpace(handleNext, canNext)
234
+ }), isNumbered && showFirstLast && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
235
+ size: knobProps.sizeToken,
236
+ variant: "outlined",
237
+ icon: LastIcon,
238
+ onPress: () => goTo(total - 1),
239
+ disabled: !canNext,
240
+ "aria-label": t("Go to last page"),
241
+ onKeyDown: activateOnEnterSpace(() => goTo(total - 1), canNext)
242
+ }), summary && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
243
+ ...knobProps.body,
244
+ color: import_componentColors.componentColors.text.muted,
245
+ "aria-live": "polite",
246
+ userSelect: "none",
247
+ children: summary
299
248
  })]
300
249
  });
301
250
  }
@@ -35,6 +35,7 @@ var import_react2 = require("react");
35
35
  var import_react_i18next = require("react-i18next");
36
36
  var import_forms = require("@multiplatform.one/forms");
37
37
  var import_tamagui = require("tamagui");
38
+ var import_DotIndicator = require("./DotIndicator/index.native.js");
38
39
  var import_componentColors = require("./componentColors.native.js");
39
40
  var import_useDirection = require("./hooks/useDirection.native.js");
40
41
  var import_t = require("./shared/t.native.js");
@@ -68,6 +69,16 @@ function getPaginationItems(total, page) {
68
69
  items.push(...endPages);
69
70
  return items;
70
71
  }
72
+ var stripSteps = {
73
+ base: {
74
+ mark: "$0.75",
75
+ active: "$2"
76
+ },
77
+ large: {
78
+ mark: "$1.5",
79
+ active: "$3"
80
+ }
81
+ };
71
82
  function Pagination(param) {
72
83
  var {
73
84
  total,
@@ -132,197 +143,135 @@ function Pagination(param) {
132
143
  }
133
144
  };
134
145
  };
135
- if (variant === "numbered") {
136
- var items = getPaginationItems(total, currentPage, siblingCount, boundaryCount);
137
- var canPrev = !disabled && currentPage > 1;
138
- var canNext = !disabled && currentPage < total;
139
- var summary = showSummary && totalItems != null && pageSize != null ? (0, import_t.bidiIsolate)(totalItems === 0 ? t("0 of 0") : (0, import_t.withInterp)(t("{{start}}\u2013{{end}} of {{total}}"), {
140
- start: (currentPage - 1) * pageSize + 1,
141
- end: Math.min(currentPage * pageSize, totalItems),
142
- total: totalItems
143
- })) : void 0;
144
- return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
145
- alignItems: "center",
146
- justifyContent: "center",
147
- role: "navigation",
148
- "aria-label": t("Pagination"),
149
- ...knobProps.gap,
150
- ...stackProps,
151
- children: [showFirstLast && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
152
- size: knobProps.sizeToken,
153
- variant: "outlined",
154
- icon: FirstIcon,
155
- onPress: function onPress() {
156
- return goTo(0);
157
- },
158
- disabled: !canPrev,
159
- "aria-label": t("Go to first page"),
160
- onKeyDown: activateOnEnterSpace(function () {
161
- return goTo(0);
162
- }, canPrev)
163
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
164
- size: knobProps.sizeToken,
165
- variant: "outlined",
166
- icon: PrevIcon,
167
- onPress: handlePrev,
168
- disabled: !canPrev,
169
- "aria-label": t("Go to previous page"),
170
- onKeyDown: activateOnEnterSpace(handlePrev, canPrev)
171
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
172
- alignItems: "center",
173
- gap: "$1",
174
- children: items.map(function (item) {
175
- if (typeof item !== "number") {
176
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
177
- "aria-hidden": true,
178
- userSelect: "none",
179
- textAlign: "center",
180
- minWidth: "$2",
181
- ...knobProps.body,
182
- color: import_componentColors.componentColors.text.muted,
183
- children: "\u2026"
184
- }, item);
185
- }
186
- var isCurrent = item === currentPage;
187
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
188
- size: knobProps.sizeToken,
189
- minWidth: knobProps.sizeToken,
190
- paddingHorizontal: "$2",
191
- accent: isCurrent,
192
- chromeless: !isCurrent,
193
- disabled,
194
- onPress: function onPress() {
195
- return goTo(item - 1);
196
- },
197
- "aria-label": (0, import_t.withInterp)(t("Page {{number}}"), {
198
- number: item
199
- }),
200
- "aria-current": isCurrent ? "page" : void 0,
201
- onKeyDown: activateOnEnterSpace(function () {
202
- return goTo(item - 1);
203
- }, !disabled),
204
- children: String(item)
205
- }, item);
206
- })
207
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
208
- size: knobProps.sizeToken,
209
- variant: "outlined",
210
- icon: NextIcon,
211
- onPress: handleNext,
212
- disabled: !canNext,
213
- "aria-label": t("Go to next page"),
214
- onKeyDown: activateOnEnterSpace(handleNext, canNext)
215
- }), showFirstLast && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
216
- size: knobProps.sizeToken,
217
- variant: "outlined",
218
- icon: LastIcon,
219
- onPress: function onPress() {
220
- return goTo(total - 1);
221
- },
222
- disabled: !canNext,
223
- "aria-label": t("Go to last page"),
224
- onKeyDown: activateOnEnterSpace(function () {
225
- return goTo(total - 1);
226
- }, canNext)
227
- }), summary && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
228
- ...knobProps.body,
229
- color: import_componentColors.componentColors.text.muted,
230
- "aria-live": "polite",
231
- userSelect: "none",
232
- children: summary
233
- })]
234
- });
235
- }
236
- var dotSize = variant === "bars" ? "$1.5" : "$0.75";
237
- var activeDotSize = variant === "bars" ? "$3" : "$2";
146
+ var isNumbered = variant === "numbered";
147
+ var canPrev = !disabled && index > 0;
148
+ var canNext = isNumbered ? !disabled && currentPage < total :
149
+ // dots/bars: an onSubmit makes the last step actionable, so the forward
150
+ // control is not dead there.
151
+ !(disabled || !isLastStep && index >= total - 1 && !onSubmit);
152
+ var submits = !isNumbered && isLastStep;
153
+ var items = isNumbered ? getPaginationItems(total, currentPage, siblingCount, boundaryCount) : [];
154
+ var summary = isNumbered && showSummary && totalItems != null && pageSize != null ? (0, import_t.bidiIsolate)(totalItems === 0 ? t("0 of 0") : (0, import_t.withInterp)(t("{{start}}\u2013{{end}} of {{total}}"), {
155
+ start: (currentPage - 1) * pageSize + 1,
156
+ end: Math.min(currentPage * pageSize, totalItems),
157
+ total: totalItems
158
+ })) : void 0;
159
+ var step = variant === "bars" ? stripSteps.large : stripSteps.base;
238
160
  return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
239
161
  alignItems: "center",
240
162
  justifyContent: "center",
163
+ role: "navigation",
164
+ "aria-label": t("Pagination"),
241
165
  ...knobProps.gap,
242
166
  ...stackProps,
243
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
167
+ children: [isNumbered && showFirstLast && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
244
168
  size: knobProps.sizeToken,
245
- circular: true,
246
- icon: PrevArrowIcon,
247
- onPress: handlePrev,
248
- disabled: disabled || index === 0,
249
169
  variant: "outlined",
170
+ icon: FirstIcon,
171
+ onPress: function onPress() {
172
+ return goTo(0);
173
+ },
174
+ disabled: !canPrev,
175
+ "aria-label": t("Go to first page"),
176
+ onKeyDown: activateOnEnterSpace(function () {
177
+ return goTo(0);
178
+ }, canPrev)
179
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
180
+ size: knobProps.sizeToken,
181
+ circular: !isNumbered,
182
+ variant: "outlined",
183
+ icon: isNumbered ? PrevIcon : PrevArrowIcon,
184
+ onPress: handlePrev,
185
+ disabled: !canPrev,
250
186
  // LC-40: the Button's own disabled wash owns the treatment — the
251
187
  // legacy opacity 0.3 dim stacked on top of it (double-dim).
252
- "aria-label": t("Previous page"),
253
- onKeyDown: activateOnEnterSpace(handlePrev, !(disabled || index === 0))
254
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
188
+ "aria-label": isNumbered ? t("Go to previous page") : t("Previous page"),
189
+ onKeyDown: activateOnEnterSpace(handlePrev, canPrev)
190
+ }), isNumbered ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
255
191
  alignItems: "center",
256
- justifyContent: "center",
257
- gap: "$2",
258
- backgroundColor: import_componentColors.componentColors.interactive.background,
259
- paddingHorizontal: knobProps.panelPadding.padding,
260
- height: knobProps.sizeToken,
261
- borderRadius: "$10",
262
- children: Array.from({
263
- length: total
264
- }).map(function (_, dotIndex) {
265
- var isActive = dotIndex === index;
266
- var isCompleted = completedSteps === null || completedSteps === void 0 ? void 0 : completedSteps.has(dotIndex);
267
- var canJump = allowJumpTo && !disabled;
268
- var dotProps = {
269
- width: isActive ? activeDotSize : dotSize,
270
- height: dotSize,
271
- borderRadius: "$10",
272
- backgroundColor: isCompleted && !isActive ? import_componentColors.componentColors.indicator.completed : isActive ? import_componentColors.componentColors.indicator.current : import_componentColors.componentColors.indicator.track,
273
- transition: motionTransition,
274
- cursor: canJump ? "pointer" : void 0,
275
- alignItems: "center",
276
- justifyContent: "center",
277
- "aria-current": isActive ? "step" : void 0,
278
- "data-pagination-dot": isActive ? "active" : "idle",
279
- // Belt-and-suspenders for the CSS driver: named `transition` covers
280
- // Tamagui layout props; explicit width/bg ensures measurable intermediates.
281
- style: {
282
- transition: `width var(--mp-transition, 100ms) ease, height var(--mp-transition, 100ms) ease, background-color var(--mp-transition, 100ms) ease`
192
+ gap: "$1",
193
+ children: items.map(function (item) {
194
+ if (typeof item !== "number") {
195
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
196
+ "aria-hidden": true,
197
+ userSelect: "none",
198
+ textAlign: "center",
199
+ minWidth: "$2",
200
+ ...knobProps.body,
201
+ color: import_componentColors.componentColors.text.muted,
202
+ children: "\u2026"
203
+ }, item);
204
+ }
205
+ var isCurrent = item === currentPage;
206
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
207
+ size: knobProps.sizeToken,
208
+ minWidth: knobProps.sizeToken,
209
+ paddingHorizontal: "$2",
210
+ accent: isCurrent,
211
+ chromeless: !isCurrent,
212
+ disabled,
213
+ onPress: function onPress() {
214
+ return goTo(item - 1);
283
215
  },
284
- ...(canJump ? {
285
- onPress: function onPress() {
286
- return goTo(dotIndex);
287
- },
288
- role: "button",
289
- "aria-label": (0, import_t.withInterp)(t("Go to step {{number}}"), {
290
- number: dotIndex + 1
291
- }),
292
- tabIndex: 0,
293
- focusVisibleStyle: {
294
- outlineColor: "$outlineColor",
295
- outlineWidth: 2,
296
- outlineStyle: "solid",
297
- outlineOffset: 1
298
- },
299
- onKeyDown: function onKeyDown(e) {
300
- if (e.key === "Enter" || e.key === " ") {
301
- e.preventDefault();
302
- goTo(dotIndex);
303
- }
304
- }
305
- } : {})
306
- };
307
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
308
- ...dotProps,
309
- children: isCompleted && !isActive && variant === "dots" && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.CheckIcon, {
310
- size: 8,
311
- color: "white",
312
- weight: "bold"
313
- })
314
- }, dotIndex);
216
+ "aria-label": (0, import_t.withInterp)(t("Page {{number}}"), {
217
+ number: item
218
+ }),
219
+ "aria-current": isCurrent ? "page" : void 0,
220
+ onKeyDown: activateOnEnterSpace(function () {
221
+ return goTo(item - 1);
222
+ }, !disabled),
223
+ children: String(item)
224
+ }, item);
315
225
  })
226
+ }) :
227
+ // LC-16: the dot strip IS `DotIndicator` — this component owns the
228
+ // pager frame around it, not a second strip. `completedSteps`, the
229
+ // wizard a11y idiom and the rail all ride the primitive, so the two
230
+ // strips in the catalog cannot drift apart again.
231
+ /* @__PURE__ */
232
+ (0, import_jsx_runtime.jsx)(import_DotIndicator.DotIndicator, {
233
+ total,
234
+ activeIndex: index,
235
+ variant,
236
+ idiom: "step",
237
+ rail: true,
238
+ completedSteps,
239
+ dotSize: step.mark,
240
+ activeDotSize: step.active,
241
+ transition: motionTransition,
242
+ dotStateAttribute: "data-pagination-dot",
243
+ onChange: allowJumpTo && !disabled ? goTo : void 0,
244
+ // A strip nobody can press has no disabled state — only a jumpable
245
+ // one is "interactive but blocked".
246
+ disabled: allowJumpTo && disabled
316
247
  }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
317
248
  size: knobProps.sizeToken,
318
- circular: true,
319
- icon: isLastStep ? import_react.CheckIcon : NextArrowIcon,
249
+ circular: !isNumbered,
250
+ variant: submits ? void 0 : "outlined",
251
+ theme: submits ? "active" : void 0,
252
+ icon: isNumbered ? NextIcon : submits ? import_react.CheckIcon : NextArrowIcon,
320
253
  onPress: handleNext,
321
- disabled: disabled || !isLastStep && index >= total - 1 && !onSubmit,
322
- variant: isLastStep ? void 0 : "outlined",
323
- theme: isLastStep ? "active" : void 0,
324
- "aria-label": isLastStep ? t("Submit") : t("Next page"),
325
- onKeyDown: activateOnEnterSpace(handleNext, !(disabled || !isLastStep && index >= total - 1 && !onSubmit))
254
+ disabled: !canNext,
255
+ "aria-label": isNumbered ? t("Go to next page") : submits ? t("Submit") : t("Next page"),
256
+ onKeyDown: activateOnEnterSpace(handleNext, canNext)
257
+ }), isNumbered && showFirstLast && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
258
+ size: knobProps.sizeToken,
259
+ variant: "outlined",
260
+ icon: LastIcon,
261
+ onPress: function onPress() {
262
+ return goTo(total - 1);
263
+ },
264
+ disabled: !canNext,
265
+ "aria-label": t("Go to last page"),
266
+ onKeyDown: activateOnEnterSpace(function () {
267
+ return goTo(total - 1);
268
+ }, canNext)
269
+ }), summary && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
270
+ ...knobProps.body,
271
+ color: import_componentColors.componentColors.text.muted,
272
+ "aria-live": "polite",
273
+ userSelect: "none",
274
+ children: summary
326
275
  })]
327
276
  });
328
277
  }