@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
@@ -78,7 +78,6 @@ var ArrowButton = (0, import_tamagui.styled)(import_tamagui.View, {
78
78
  });
79
79
  var ArrowVisual = (0, import_tamagui.styled)(import_tamagui.View, {
80
80
  name: "CarouselArrowVisual",
81
- borderRadius: 1e3,
82
81
  backgroundColor: "$background",
83
82
  alignItems: "center",
84
83
  justifyContent: "center",
@@ -102,8 +101,8 @@ function Carousel(param) {
102
101
  onSlideChange,
103
102
  initialSlide = 0
104
103
  } = param;
105
- var _ref;
106
- var _getTokens_size_knobProps_sizeToken, _getTokens_size;
104
+ var _ref, _ref1;
105
+ var _getTokens_space_gap, _getTokens_space, _getTokens_size_knobProps_sizeToken, _getTokens_size;
107
106
  var {
108
107
  t
109
108
  } = (0, import_react_i18next.useTranslation)();
@@ -112,24 +111,26 @@ function Carousel(param) {
112
111
  control
113
112
  } = (0, import_theme.useResolvedKnobs)();
114
113
  var gap = gapProp !== null && gapProp !== void 0 ? gapProp : knobProps.gap.gap;
115
- var arrowSize = (_ref = (_getTokens_size = (0, import_tamagui.getTokens)().size) === null || _getTokens_size === void 0 ? void 0 : (_getTokens_size_knobProps_sizeToken = _getTokens_size[knobProps.sizeToken]) === null || _getTokens_size_knobProps_sizeToken === void 0 ? void 0 : _getTokens_size_knobProps_sizeToken.val) !== null && _ref !== void 0 ? _ref : 40;
114
+ var gapPx = typeof gap === "number" ? gap : (_ref = (_getTokens_space = (0, import_tamagui.getTokens)().space) === null || _getTokens_space === void 0 ? void 0 : (_getTokens_space_gap = _getTokens_space[gap]) === null || _getTokens_space_gap === void 0 ? void 0 : _getTokens_space_gap.val) !== null && _ref !== void 0 ? _ref : 0;
115
+ var arrowSize = (_ref1 = (_getTokens_size = (0, import_tamagui.getTokens)().size) === null || _getTokens_size === void 0 ? void 0 : (_getTokens_size_knobProps_sizeToken = _getTokens_size[knobProps.sizeToken]) === null || _getTokens_size_knobProps_sizeToken === void 0 ? void 0 : _getTokens_size_knobProps_sizeToken.val) !== null && _ref1 !== void 0 ? _ref1 : 40;
116
116
  var arrowGlyphSize = Math.round(arrowSize / 2);
117
+ var arrowRadius = knobProps.pointy ? 0 : 1e3;
117
118
  var arrowTargetSize = Math.max(arrowSize, import_theme.MIN_PRESS_TARGET);
118
119
  var arrowEdgeInset = Math.max(0, 8 - Math.round((arrowTargetSize - arrowSize) / 2));
119
120
  var [activeIndex, setActiveIndex] = (0, import_react.useState)(initialSlide);
120
121
  var trackRef = (0, import_react.useRef)(null);
121
122
  var slideCount = import_react.Children.count(children);
122
- var slideWidthRef = (0, import_react.useRef)(0);
123
+ var [slideWidth, setSlideWidth] = (0, import_react.useState)(0);
123
124
  var autoPlayRef = (0, import_react.useRef)(null);
124
125
  var scrollToSlide = (0, import_react.useCallback)(function (index) {
125
126
  if (!trackRef.current) return;
126
127
  if (index < 0 || index >= slideCount) return;
127
- var offset = index * slideWidthRef.current;
128
+ var offset = index * (slideWidth + gapPx);
128
129
  trackRef.current.scrollTo({
129
130
  x: offset,
130
131
  animated: true
131
132
  });
132
- }, [slideCount]);
133
+ }, [slideCount, slideWidth, gapPx]);
133
134
  var goToSlide = (0, import_react.useCallback)(function (index) {
134
135
  var targetIndex = index;
135
136
  if (loop) {
@@ -150,14 +151,13 @@ function Carousel(param) {
150
151
  }, [activeIndex, goToSlide]);
151
152
  var handleScroll = (0, import_react.useCallback)(function (event) {
152
153
  var scrollX = event.nativeEvent.contentOffset.x;
153
- var width = slideWidthRef.current;
154
- if (!width) return;
155
- var newIndex = Math.round(scrollX / width);
154
+ if (!slideWidth) return;
155
+ var newIndex = Math.round(scrollX / (slideWidth + gapPx));
156
156
  if (newIndex !== activeIndex && newIndex >= 0 && newIndex < slideCount) {
157
157
  setActiveIndex(newIndex);
158
158
  onSlideChange === null || onSlideChange === void 0 ? void 0 : onSlideChange(newIndex);
159
159
  }
160
- }, [activeIndex, slideCount, onSlideChange]);
160
+ }, [activeIndex, slideCount, onSlideChange, slideWidth, gapPx]);
161
161
  (0, import_react.useEffect)(function () {
162
162
  if (autoPlay > 0) {
163
163
  autoPlayRef.current = setInterval(function () {
@@ -170,11 +170,16 @@ function Carousel(param) {
170
170
  };
171
171
  }
172
172
  }, [autoPlay, goNext]);
173
+ var activeIndexRef = (0, import_react.useRef)(activeIndex);
174
+ activeIndexRef.current = activeIndex;
173
175
  (0, import_react.useEffect)(function () {
174
- if (initialSlide > 0) {
175
- scrollToSlide(initialSlide);
176
- }
177
- }, [initialSlide, scrollToSlide]);
176
+ if (!slideWidth || slideCount === 0 || !trackRef.current) return;
177
+ var index = Math.max(0, Math.min(activeIndexRef.current, slideCount - 1));
178
+ trackRef.current.scrollTo({
179
+ x: index * (slideWidth + gapPx),
180
+ animated: false
181
+ });
182
+ }, [slideWidth, gapPx, slideCount]);
178
183
  var canGoPrev = loop || activeIndex > 0;
179
184
  var canGoNext = loop || activeIndex < slideCount - 1;
180
185
  var isRTL = (0, import_useDirection.useDirection)() === "rtl";
@@ -184,7 +189,7 @@ function Carousel(param) {
184
189
  var NextGlyph = isRTL ? import_react2.CaretLeftIcon : import_react2.CaretRightIcon;
185
190
  return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.View, {
186
191
  children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(CarouselContainer, {
187
- ...knobProps.borderRadius,
192
+ ...knobProps.containerRadius,
188
193
  children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.ScrollView, {
189
194
  ref: trackRef,
190
195
  horizontal: true,
@@ -195,16 +200,26 @@ function Carousel(param) {
195
200
  onScroll: handleScroll,
196
201
  scrollEventThrottle: 16,
197
202
  onLayout: function onLayout(e) {
198
- slideWidthRef.current = e.nativeEvent.layout.width;
203
+ return setSlideWidth(e.nativeEvent.layout.width);
204
+ },
205
+ ...{
206
+ dataSet: {
207
+ carouselTrack: "true"
208
+ }
199
209
  },
200
210
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
201
211
  gap,
202
212
  children: import_react.Children.map(children, function (child, index) {
203
213
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(CarouselSlide, {
204
- width: "100%",
214
+ // Measured-viewport width (LC-62), never a percentage; slides
215
+ // stay content-sized only for the pre-measure frame.
216
+ width: slideWidth > 0 ? slideWidth : void 0,
205
217
  style: {
206
218
  scrollSnapAlign: "start"
207
219
  },
220
+ ...{
221
+ "data-carousel-slide": index
222
+ },
208
223
  children: child
209
224
  }, index);
210
225
  })
@@ -237,6 +252,7 @@ function Carousel(param) {
237
252
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(ArrowVisual, {
238
253
  width: arrowSize,
239
254
  height: arrowSize,
255
+ borderRadius: arrowRadius,
240
256
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(PrevGlyph, {
241
257
  size: arrowGlyphSize
242
258
  })
@@ -266,6 +282,7 @@ function Carousel(param) {
266
282
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(ArrowVisual, {
267
283
  width: arrowSize,
268
284
  height: arrowSize,
285
+ borderRadius: arrowRadius,
269
286
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(NextGlyph, {
270
287
  size: arrowGlyphSize
271
288
  })
@@ -1 +1 @@
1
- {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","Carousel_exports","Carousel","module","exports","import_jsx_runtime","require","import_react","import_react_i18next","import_react2","import_forms","import_theme","import_tamagui","import_DotIndicator","import_useDirection","CarouselContainer","styled","View","position","width","overflow","CarouselSlide","flexShrink","ArrowButton","top","transform","translateY","zIndex","localTop","alignItems","justifyContent","backgroundColor","cursor","opacity","hoverStyle","scale","pressStyle","variants","disabled","true","ArrowVisual","borderRadius","shadowColor","shadowRadius","shadowOpacity","DotsWrapper","paddingVertical","param","children","showArrows","showDots","autoPlay","loop","gap","gapProp","onSlideChange","initialSlide","_ref","_getTokens_size_knobProps_sizeToken","_getTokens_size","t","useTranslation","knobProps","control","useResolvedKnobs","arrowSize","getTokens","size","sizeToken","val","arrowGlyphSize","Math","round","arrowTargetSize","max","MIN_PRESS_TARGET","arrowEdgeInset","activeIndex","setActiveIndex","useState","trackRef","useRef","slideCount","Children","count","slideWidthRef","autoPlayRef","scrollToSlide","useCallback","index","current","offset","scrollTo","x","animated","goToSlide","targetIndex","min","goNext","goPrev","handleScroll","event","scrollX","nativeEvent","contentOffset","newIndex","useEffect","setInterval","clearInterval","canGoPrev","canGoNext","isRTL","useDirection","prevSide","nextSide","PrevGlyph","CaretRightIcon","CaretLeftIcon","NextGlyph","jsxs","jsx","ScrollView","ref","horizontal","showsHorizontalScrollIndicator","style","scrollSnapType","onScroll","scrollEventThrottle","onLayout","e","layout","XStack","map","child","scrollSnapAlign"],"sources":["../../../src/Carousel/index.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","Carousel_exports","Carousel","module","exports","import_jsx_runtime","require","import_react","import_react_i18next","import_react2","import_forms","import_theme","import_tamagui","import_DotIndicator","import_useDirection","CarouselContainer","styled","View","position","width","overflow","CarouselSlide","flexShrink","ArrowButton","top","transform","translateY","zIndex","localTop","alignItems","justifyContent","backgroundColor","cursor","opacity","hoverStyle","scale","pressStyle","variants","disabled","true","ArrowVisual","shadowColor","shadowRadius","shadowOpacity","DotsWrapper","paddingVertical","param","children","showArrows","showDots","autoPlay","loop","gap","gapProp","onSlideChange","initialSlide","_ref","_ref1","_getTokens_space_gap","_getTokens_space","_getTokens_size_knobProps_sizeToken","_getTokens_size","t","useTranslation","knobProps","control","useResolvedKnobs","gapPx","getTokens","space","val","arrowSize","size","sizeToken","arrowGlyphSize","Math","round","arrowRadius","pointy","arrowTargetSize","max","MIN_PRESS_TARGET","arrowEdgeInset","activeIndex","setActiveIndex","useState","trackRef","useRef","slideCount","Children","count","slideWidth","setSlideWidth","autoPlayRef","scrollToSlide","useCallback","index","current","offset","scrollTo","x","animated","goToSlide","targetIndex","min","goNext","goPrev","handleScroll","event","scrollX","nativeEvent","contentOffset","newIndex","useEffect","setInterval","clearInterval","activeIndexRef","canGoPrev","canGoNext","isRTL","useDirection","prevSide","nextSide","PrevGlyph","CaretRightIcon","CaretLeftIcon","NextGlyph","jsxs","containerRadius","jsx","ScrollView","ref","horizontal","showsHorizontalScrollIndicator","style","scrollSnapType","onScroll","scrollEventThrottle","onLayout","e","layout","dataSet","carouselTrack","XStack","map","child"],"sources":["../../../src/Carousel/index.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,5 @@
1
- import { MIN_PRESS_TARGET, useResolvedKnobs } from "@multiplatform.one/theme";
1
+ import { MIN_PRESS_TARGET, radiusClassProps, useResolvedKnobs } from "@multiplatform.one/theme";
2
+ import { CheckIcon } from "@phosphor-icons/react";
2
3
  import { useTranslation } from "react-i18next";
3
4
  import { View, XStack, getTokens, styled } from "tamagui";
4
5
  import { componentColors } from "../componentColors.mjs";
@@ -26,11 +27,36 @@ const dotGeometryMap = {
26
27
  active: 30
27
28
  }
28
29
  };
30
+ const CHECK_MIN_DOT = 8;
31
+ function sizePx(value, fallback) {
32
+ if (typeof value === "number") return value;
33
+ if (typeof value === "string") {
34
+ const token = getTokens().size?.[value]?.val;
35
+ if (typeof token === "number") return token;
36
+ }
37
+ return fallback;
38
+ }
29
39
  const DotsContainer = styled(XStack, {
30
40
  name: "DotIndicator",
31
41
  alignItems: "center",
32
42
  justifyContent: "center",
33
- gap: "$2"
43
+ gap: "$2",
44
+ variants: {
45
+ // A rail seats the strip on a filled capsule instead of the page. It is a
46
+ // variant of the strip rather than host chrome because the rail and the
47
+ // idle dot color are ONE decision: idle dots have to step up the ramp to
48
+ // stay visible on the rail's fill, and split across two files that pairing
49
+ // drifts (LC-16).
50
+ rail: {
51
+ true: {
52
+ backgroundColor: componentColors.interactive.background,
53
+ // R-PILL (D-09 / LC-60): the rail is a capsule at every radius value,
54
+ // like the dots it holds.
55
+ ...radiusClassProps("R-PILL", "DotIndicator rail"),
56
+ borderRadius: "$10"
57
+ }
58
+ }
59
+ }
34
60
  });
35
61
  const DotTarget = styled(View, {
36
62
  name: "DotTarget",
@@ -46,6 +72,13 @@ const DotTarget = styled(View, {
46
72
  });
47
73
  const Dot = styled(View, {
48
74
  name: "Dot",
75
+ // R-PILL (D-09 / LC-60): an ornamental dot is a circle at every radius
76
+ // value — the knob moves its size, never its shape — so it declares the
77
+ // class the `radius:none` sweep licenses it under.
78
+ ...radiusClassProps("R-PILL", "DotIndicator dot"),
79
+ // Centers the completion checkmark; inert for the empty dots.
80
+ alignItems: "center",
81
+ justifyContent: "center",
49
82
  borderRadius: 1e3,
50
83
  backgroundColor: componentColors.indicator.inactive,
51
84
  hoverStyle: {
@@ -54,34 +87,16 @@ const Dot = styled(View, {
54
87
  variants: {
55
88
  active: {
56
89
  true: {
57
- backgroundColor: componentColors.indicator.active
58
- }
59
- },
60
- variant: {
61
- dots: {
62
- width: 8,
63
- height: 8
64
- },
65
- bars: {
66
- width: 6,
67
- height: 6
68
- },
69
- pills: {
70
- width: 8,
71
- height: 8
72
- }
73
- },
74
- activeVariant: {
75
- dots: {
76
- width: 24
77
- },
78
- bars: {
79
- width: 24
80
- },
81
- pills: {
82
- width: 24
90
+ // LC-05: the active dot is the selected mark, so it carries the accent
91
+ // (it read $color9 neutral — indistinguishable from idle chrome).
92
+ backgroundColor: componentColors.indicator.selected
83
93
  }
84
94
  },
95
+ // No `variant` geometry here: the mark's width/height are always passed
96
+ // explicitly from the one size channel below, so a per-variant pixel table
97
+ // on the styled component could only ever be a second, silently-losing
98
+ // definition of the same thing (it already disagreed with the scale at
99
+ // size knob `$3`, where a tick is 5px, not 6).
85
100
  disabled: {
86
101
  true: {
87
102
  opacity: 0.5
@@ -95,7 +110,14 @@ function DotIndicator({
95
110
  onChange,
96
111
  variant = "dots",
97
112
  gap: gapProp,
98
- disabled = false
113
+ disabled = false,
114
+ completedSteps,
115
+ idiom = "item",
116
+ rail = false,
117
+ dotSize,
118
+ activeDotSize,
119
+ transition,
120
+ dotStateAttribute = "data-dot-state"
99
121
  }) {
100
122
  const {
101
123
  t
@@ -105,18 +127,36 @@ function DotIndicator({
105
127
  } = useResolvedKnobs();
106
128
  const gap = gapProp ?? dotGapMap[knobProps.space] ?? "$2";
107
129
  const geometry = dotGeometryMap[knobProps.sizeToken] ?? dotGeometryMap.$4;
108
- const itemSize = variant === "bars" ? geometry.bar : geometry.dot;
130
+ const isTick = variant === "bars";
131
+ const itemSize = sizePx(dotSize, isTick ? geometry.bar : geometry.dot);
132
+ const activeSize = sizePx(activeDotSize, geometry.active);
109
133
  const gapPx = typeof gap === "number" ? gap : getTokens().space?.[gap]?.val ?? 7;
110
134
  const slopX = Math.max(0, Math.floor((gapPx - 1) / 2));
111
- const outsetY = Math.ceil((MIN_PRESS_TARGET - itemSize) / 2);
135
+ const outsetY = Math.max(0, Math.ceil((MIN_PRESS_TARGET - itemSize) / 2));
112
136
  const interactive = !disabled && !!onChange;
137
+ const isStep = idiom === "step";
138
+ const label = isStep ? t("Go to step {{number}}") : t("Go to item {{number}}");
139
+ const currentValue = isStep ? "step" : "true";
140
+ const motionStyle = transition ? {
141
+ transition: "width var(--mp-transition, 100ms) ease, height var(--mp-transition, 100ms) ease, background-color var(--mp-transition, 100ms) ease"
142
+ } : void 0;
113
143
  return /* @__PURE__ */jsx(DotsContainer, {
114
144
  gap,
145
+ rail,
146
+ ...(rail ? {
147
+ paddingHorizontal: knobProps.panelPadding.padding,
148
+ height: knobProps.sizeToken
149
+ } : void 0),
115
150
  children: Array.from({
116
151
  length: total
117
152
  }).map((_, index) => {
118
153
  const isActive = index === activeIndex;
119
- const dotWidth = isActive ? geometry.active : itemSize;
154
+ const isCompleted = !isActive && !!completedSteps?.has(index);
155
+ const dotWidth = isActive ? activeSize : itemSize;
156
+ const restingFill = isCompleted ? componentColors.indicator.completed : rail ?
157
+ // Idle chrome steps up the ramp on a rail so the dot still
158
+ // separates from the capsule fill it sits on.
159
+ componentColors.indicator.track : componentColors.indicator.inactive;
120
160
  return /* @__PURE__ */jsx(DotTarget, {
121
161
  width: dotWidth + slopX * 2,
122
162
  minHeight: MIN_PRESS_TARGET,
@@ -124,11 +164,11 @@ function DotIndicator({
124
164
  marginVertical: -outsetY,
125
165
  cursor: interactive ? "pointer" : disabled ? "not-allowed" : "default",
126
166
  onPress: interactive ? () => onChange?.(index) : void 0,
127
- "aria-label": withInterp(t("Go to item {{number}}"), {
167
+ "aria-label": withInterp(label, {
128
168
  number: index + 1
129
169
  }),
130
170
  ...(isActive ? {
131
- "aria-current": "true"
171
+ "aria-current": currentValue
132
172
  } : void 0),
133
173
  ...(interactive ? {
134
174
  role: "button",
@@ -143,12 +183,31 @@ function DotIndicator({
143
183
  role: "button"
144
184
  } : void 0),
145
185
  children: /* @__PURE__ */jsx(Dot, {
146
- variant,
147
186
  active: isActive,
148
- activeVariant: isActive ? variant : void 0,
187
+ ...(isActive ? void 0 : {
188
+ backgroundColor: restingFill,
189
+ // A completed dot and a rail dot both hold their fill on
190
+ // hover: the neutral hover step is PALER than either, so
191
+ // the page-level hover would read as a dim.
192
+ ...(isCompleted || rail ? {
193
+ hoverStyle: {
194
+ backgroundColor: restingFill
195
+ }
196
+ } : void 0)
197
+ }),
149
198
  width: dotWidth,
150
199
  height: itemSize,
151
- disabled
200
+ disabled,
201
+ transition,
202
+ style: motionStyle,
203
+ ...{
204
+ [dotStateAttribute]: isActive ? "active" : "idle"
205
+ },
206
+ children: isCompleted && !isTick && itemSize >= CHECK_MIN_DOT && /* @__PURE__ */jsx(CheckIcon, {
207
+ size: 8,
208
+ color: "white",
209
+ weight: "bold"
210
+ })
152
211
  })
153
212
  }, index);
154
213
  })
@@ -1 +1 @@
1
- {"version":3,"names":["MIN_PRESS_TARGET","useResolvedKnobs","useTranslation","View","XStack","getTokens","styled","componentColors","withInterp","jsx","dotGapMap","small","medium","large","dotGeometryMap","$3","dot","bar","active","$4","$5","DotsContainer","name","alignItems","justifyContent","gap","DotTarget","backgroundColor","focusVisibleStyle","outlineColor","outlineWidth","outlineStyle","outlineOffset","Dot","borderRadius","indicator","inactive","hoverStyle","hover","variants","true","variant","dots","width","height","bars","pills","activeVariant","disabled","opacity","DotIndicator","total","activeIndex","onChange","gapProp","t","knobProps","space","geometry","sizeToken","itemSize","gapPx","val","slopX","Math","max","floor","outsetY","ceil","interactive","children","Array","from","length","map","_","index","isActive","dotWidth","minHeight","marginHorizontal","marginVertical","cursor","onPress","number","role","tabIndex","onKeyDown","e","key","preventDefault"],"sources":["../../../src/DotIndicator/index.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["MIN_PRESS_TARGET","radiusClassProps","useResolvedKnobs","CheckIcon","useTranslation","View","XStack","getTokens","styled","componentColors","withInterp","jsx","dotGapMap","small","medium","large","dotGeometryMap","$3","dot","bar","active","$4","$5","CHECK_MIN_DOT","sizePx","value","fallback","token","size","val","DotsContainer","name","alignItems","justifyContent","gap","variants","rail","true","backgroundColor","interactive","background","borderRadius","DotTarget","focusVisibleStyle","outlineColor","outlineWidth","outlineStyle","outlineOffset","Dot","indicator","inactive","hoverStyle","hover","selected","disabled","opacity","DotIndicator","total","activeIndex","onChange","variant","gapProp","completedSteps","idiom","dotSize","activeDotSize","transition","dotStateAttribute","t","knobProps","space","geometry","sizeToken","isTick","itemSize","activeSize","gapPx","slopX","Math","max","floor","outsetY","ceil","isStep","label","currentValue","motionStyle","paddingHorizontal","panelPadding","padding","height","children","Array","from","length","map","_","index","isActive","isCompleted","has","dotWidth","restingFill","completed","track","width","minHeight","marginHorizontal","marginVertical","cursor","onPress","number","role","tabIndex","onKeyDown","e","key","preventDefault","style","color","weight"],"sources":["../../../src/DotIndicator/index.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -29,6 +29,7 @@ __export(DotIndicator_exports, {
29
29
  module.exports = __toCommonJS(DotIndicator_exports);
30
30
  var import_jsx_runtime = require("react/jsx-runtime");
31
31
  var import_theme = require("@multiplatform.one/theme");
32
+ var import_react = require("@phosphor-icons/react");
32
33
  var import_react_i18next = require("react-i18next");
33
34
  var import_tamagui = require("tamagui");
34
35
  var import_componentColors = require("../componentColors.native.js");
@@ -55,11 +56,37 @@ var dotGeometryMap = {
55
56
  active: 30
56
57
  }
57
58
  };
59
+ var CHECK_MIN_DOT = 8;
60
+ function sizePx(value, fallback) {
61
+ if (typeof value === "number") return value;
62
+ if (typeof value === "string") {
63
+ var _getTokens_size_value, _getTokens_size;
64
+ var token = (_getTokens_size = (0, import_tamagui.getTokens)().size) === null || _getTokens_size === void 0 ? void 0 : (_getTokens_size_value = _getTokens_size[value]) === null || _getTokens_size_value === void 0 ? void 0 : _getTokens_size_value.val;
65
+ if (typeof token === "number") return token;
66
+ }
67
+ return fallback;
68
+ }
58
69
  var DotsContainer = (0, import_tamagui.styled)(import_tamagui.XStack, {
59
70
  name: "DotIndicator",
60
71
  alignItems: "center",
61
72
  justifyContent: "center",
62
- gap: "$2"
73
+ gap: "$2",
74
+ variants: {
75
+ // A rail seats the strip on a filled capsule instead of the page. It is a
76
+ // variant of the strip rather than host chrome because the rail and the
77
+ // idle dot color are ONE decision: idle dots have to step up the ramp to
78
+ // stay visible on the rail's fill, and split across two files that pairing
79
+ // drifts (LC-16).
80
+ rail: {
81
+ true: {
82
+ backgroundColor: import_componentColors.componentColors.interactive.background,
83
+ // R-PILL (D-09 / LC-60): the rail is a capsule at every radius value,
84
+ // like the dots it holds.
85
+ ...(0, import_theme.radiusClassProps)("R-PILL", "DotIndicator rail"),
86
+ borderRadius: "$10"
87
+ }
88
+ }
89
+ }
63
90
  });
64
91
  var DotTarget = (0, import_tamagui.styled)(import_tamagui.View, {
65
92
  name: "DotTarget",
@@ -75,6 +102,13 @@ var DotTarget = (0, import_tamagui.styled)(import_tamagui.View, {
75
102
  });
76
103
  var Dot = (0, import_tamagui.styled)(import_tamagui.View, {
77
104
  name: "Dot",
105
+ // R-PILL (D-09 / LC-60): an ornamental dot is a circle at every radius
106
+ // value — the knob moves its size, never its shape — so it declares the
107
+ // class the `radius:none` sweep licenses it under.
108
+ ...(0, import_theme.radiusClassProps)("R-PILL", "DotIndicator dot"),
109
+ // Centers the completion checkmark; inert for the empty dots.
110
+ alignItems: "center",
111
+ justifyContent: "center",
78
112
  borderRadius: 1e3,
79
113
  backgroundColor: import_componentColors.componentColors.indicator.inactive,
80
114
  hoverStyle: {
@@ -83,34 +117,16 @@ var Dot = (0, import_tamagui.styled)(import_tamagui.View, {
83
117
  variants: {
84
118
  active: {
85
119
  true: {
86
- backgroundColor: import_componentColors.componentColors.indicator.active
87
- }
88
- },
89
- variant: {
90
- dots: {
91
- width: 8,
92
- height: 8
93
- },
94
- bars: {
95
- width: 6,
96
- height: 6
97
- },
98
- pills: {
99
- width: 8,
100
- height: 8
101
- }
102
- },
103
- activeVariant: {
104
- dots: {
105
- width: 24
106
- },
107
- bars: {
108
- width: 24
109
- },
110
- pills: {
111
- width: 24
120
+ // LC-05: the active dot is the selected mark, so it carries the accent
121
+ // (it read $color9 neutral — indistinguishable from idle chrome).
122
+ backgroundColor: import_componentColors.componentColors.indicator.selected
112
123
  }
113
124
  },
125
+ // No `variant` geometry here: the mark's width/height are always passed
126
+ // explicitly from the one size channel below, so a per-variant pixel table
127
+ // on the styled component could only ever be a second, silently-losing
128
+ // definition of the same thing (it already disagreed with the scale at
129
+ // size knob `$3`, where a tick is 5px, not 6).
114
130
  disabled: {
115
131
  true: {
116
132
  opacity: 0.5
@@ -125,7 +141,14 @@ function DotIndicator(param) {
125
141
  onChange,
126
142
  variant = "dots",
127
143
  gap: gapProp,
128
- disabled = false
144
+ disabled = false,
145
+ completedSteps,
146
+ idiom = "item",
147
+ rail = false,
148
+ dotSize,
149
+ activeDotSize,
150
+ transition,
151
+ dotStateAttribute = "data-dot-state"
129
152
  } = param;
130
153
  var _ref, _dotGeometryMap_knobProps_sizeToken, _ref1;
131
154
  var _getTokens_space_gap, _getTokens_space;
@@ -137,18 +160,36 @@ function DotIndicator(param) {
137
160
  } = (0, import_theme.useResolvedKnobs)();
138
161
  var gap = (_ref = gapProp !== null && gapProp !== void 0 ? gapProp : dotGapMap[knobProps.space]) !== null && _ref !== void 0 ? _ref : "$2";
139
162
  var geometry = (_dotGeometryMap_knobProps_sizeToken = dotGeometryMap[knobProps.sizeToken]) !== null && _dotGeometryMap_knobProps_sizeToken !== void 0 ? _dotGeometryMap_knobProps_sizeToken : dotGeometryMap.$4;
140
- var itemSize = variant === "bars" ? geometry.bar : geometry.dot;
163
+ var isTick = variant === "bars";
164
+ var itemSize = sizePx(dotSize, isTick ? geometry.bar : geometry.dot);
165
+ var activeSize = sizePx(activeDotSize, geometry.active);
141
166
  var gapPx = typeof gap === "number" ? gap : (_ref1 = (_getTokens_space = (0, import_tamagui.getTokens)().space) === null || _getTokens_space === void 0 ? void 0 : (_getTokens_space_gap = _getTokens_space[gap]) === null || _getTokens_space_gap === void 0 ? void 0 : _getTokens_space_gap.val) !== null && _ref1 !== void 0 ? _ref1 : 7;
142
167
  var slopX = Math.max(0, Math.floor((gapPx - 1) / 2));
143
- var outsetY = Math.ceil((import_theme.MIN_PRESS_TARGET - itemSize) / 2);
168
+ var outsetY = Math.max(0, Math.ceil((import_theme.MIN_PRESS_TARGET - itemSize) / 2));
144
169
  var interactive = !disabled && !!onChange;
170
+ var isStep = idiom === "step";
171
+ var label = isStep ? t("Go to step {{number}}") : t("Go to item {{number}}");
172
+ var currentValue = isStep ? "step" : "true";
173
+ var motionStyle = transition ? {
174
+ transition: "width var(--mp-transition, 100ms) ease, height var(--mp-transition, 100ms) ease, background-color var(--mp-transition, 100ms) ease"
175
+ } : void 0;
145
176
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(DotsContainer, {
146
177
  gap,
178
+ rail,
179
+ ...(rail ? {
180
+ paddingHorizontal: knobProps.panelPadding.padding,
181
+ height: knobProps.sizeToken
182
+ } : void 0),
147
183
  children: Array.from({
148
184
  length: total
149
185
  }).map(function (_, index) {
150
186
  var isActive = index === activeIndex;
151
- var dotWidth = isActive ? geometry.active : itemSize;
187
+ var isCompleted = !isActive && !!(completedSteps === null || completedSteps === void 0 ? void 0 : completedSteps.has(index));
188
+ var dotWidth = isActive ? activeSize : itemSize;
189
+ var restingFill = isCompleted ? import_componentColors.componentColors.indicator.completed : rail ?
190
+ // Idle chrome steps up the ramp on a rail so the dot still
191
+ // separates from the capsule fill it sits on.
192
+ import_componentColors.componentColors.indicator.track : import_componentColors.componentColors.indicator.inactive;
152
193
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(DotTarget, {
153
194
  width: dotWidth + slopX * 2,
154
195
  minHeight: import_theme.MIN_PRESS_TARGET,
@@ -158,11 +199,11 @@ function DotIndicator(param) {
158
199
  onPress: interactive ? function () {
159
200
  return onChange === null || onChange === void 0 ? void 0 : onChange(index);
160
201
  } : void 0,
161
- "aria-label": (0, import_t.withInterp)(t("Go to item {{number}}"), {
202
+ "aria-label": (0, import_t.withInterp)(label, {
162
203
  number: index + 1
163
204
  }),
164
205
  ...(isActive ? {
165
- "aria-current": "true"
206
+ "aria-current": currentValue
166
207
  } : void 0),
167
208
  ...(interactive ? {
168
209
  role: "button",
@@ -177,12 +218,31 @@ function DotIndicator(param) {
177
218
  role: "button"
178
219
  } : void 0),
179
220
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(Dot, {
180
- variant,
181
221
  active: isActive,
182
- activeVariant: isActive ? variant : void 0,
222
+ ...(isActive ? void 0 : {
223
+ backgroundColor: restingFill,
224
+ // A completed dot and a rail dot both hold their fill on
225
+ // hover: the neutral hover step is PALER than either, so
226
+ // the page-level hover would read as a dim.
227
+ ...(isCompleted || rail ? {
228
+ hoverStyle: {
229
+ backgroundColor: restingFill
230
+ }
231
+ } : void 0)
232
+ }),
183
233
  width: dotWidth,
184
234
  height: itemSize,
185
- disabled
235
+ disabled,
236
+ transition,
237
+ style: motionStyle,
238
+ ...{
239
+ [dotStateAttribute]: isActive ? "active" : "idle"
240
+ },
241
+ children: isCompleted && !isTick && itemSize >= CHECK_MIN_DOT && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.CheckIcon, {
242
+ size: 8,
243
+ color: "white",
244
+ weight: "bold"
245
+ })
186
246
  })
187
247
  }, index);
188
248
  })