@multiplatform.one/components 7.7.6 → 7.10.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 (885) hide show
  1. package/dist/cjs/Accordion/index.cjs +3 -3
  2. package/dist/cjs/Accordion/index.native.js +4 -4
  3. package/dist/cjs/Accordion/index.native.js.map +1 -1
  4. package/dist/cjs/Button.native.js.map +1 -1
  5. package/dist/cjs/Card.cjs +7 -1
  6. package/dist/cjs/Card.native.js +11 -1
  7. package/dist/cjs/Card.native.js.map +1 -1
  8. package/dist/cjs/CardFooter.cjs +1 -0
  9. package/dist/cjs/CardFooter.native.js +1 -0
  10. package/dist/cjs/CardFooter.native.js.map +1 -1
  11. package/dist/cjs/Chip/index.cjs +1 -1
  12. package/dist/cjs/Chip/index.native.js +1 -1
  13. package/dist/cjs/Chip/index.native.js.map +1 -1
  14. package/dist/cjs/ContextMenu/index.cjs +3 -3
  15. package/dist/cjs/ContextMenu/index.native.js +3 -3
  16. package/dist/cjs/ContextMenu/index.native.js.map +1 -1
  17. package/dist/cjs/CopyField/index.cjs +6 -1
  18. package/dist/cjs/CopyField/index.native.js +6 -1
  19. package/dist/cjs/CopyField/index.native.js.map +1 -1
  20. package/dist/cjs/DropdownMenu/index.cjs +34 -4
  21. package/dist/cjs/DropdownMenu/index.native.js +34 -4
  22. package/dist/cjs/DropdownMenu/index.native.js.map +1 -1
  23. package/dist/cjs/Meter/index.cjs +15 -7
  24. package/dist/cjs/Meter/index.native.js +15 -7
  25. package/dist/cjs/Meter/index.native.js.map +1 -1
  26. package/dist/cjs/Meter/meter.cjs +1 -2
  27. package/dist/cjs/Meter/meter.native.js +1 -2
  28. package/dist/cjs/Meter/meter.native.js.map +1 -1
  29. package/dist/cjs/Pagination.cjs +2 -2
  30. package/dist/cjs/Pagination.native.js +2 -2
  31. package/dist/cjs/Pagination.native.js.map +1 -1
  32. package/dist/cjs/ProgressSteps/index.cjs +3 -3
  33. package/dist/cjs/ProgressSteps/index.native.js +3 -3
  34. package/dist/cjs/ProgressSteps/index.native.js.map +1 -1
  35. package/dist/cjs/Quote/index.cjs +1 -2
  36. package/dist/cjs/Quote/index.native.js +1 -2
  37. package/dist/cjs/Quote/index.native.js.map +1 -1
  38. package/dist/cjs/Tabs/index.cjs +8 -7
  39. package/dist/cjs/Tabs/index.native.js +9 -8
  40. package/dist/cjs/Tabs/index.native.js.map +1 -1
  41. package/dist/cjs/Toast/index.cjs +57 -7
  42. package/dist/cjs/Toast/index.native.js +59 -7
  43. package/dist/cjs/Toast/index.native.js.map +1 -1
  44. package/dist/cjs/TreeSelect/index.cjs +46 -7
  45. package/dist/cjs/TreeSelect/index.native.js +58 -7
  46. package/dist/cjs/TreeSelect/index.native.js.map +1 -1
  47. package/dist/cjs/actions/DestructiveAction.cjs +7 -13
  48. package/dist/cjs/actions/DestructiveAction.native.js +7 -15
  49. package/dist/cjs/actions/DestructiveAction.native.js.map +1 -1
  50. package/dist/cjs/charts/Axis.cjs +5 -0
  51. package/dist/cjs/charts/Axis.native.js +5 -0
  52. package/dist/cjs/charts/Axis.native.js.map +1 -1
  53. package/dist/cjs/charts/BarChart.cjs +71 -57
  54. package/dist/cjs/charts/BarChart.native.js +81 -67
  55. package/dist/cjs/charts/BarChart.native.js.map +1 -1
  56. package/dist/cjs/charts/ChartDataView.cjs +212 -0
  57. package/dist/cjs/charts/ChartDataView.native.js +224 -0
  58. package/dist/cjs/charts/ChartDataView.native.js.map +1 -0
  59. package/dist/cjs/charts/ChartSurface.cjs +5 -1
  60. package/dist/cjs/charts/ChartSurface.native.js +5 -1
  61. package/dist/cjs/charts/ChartSurface.native.js.map +1 -1
  62. package/dist/cjs/charts/LineChart.cjs +81 -67
  63. package/dist/cjs/charts/LineChart.native.js +94 -80
  64. package/dist/cjs/charts/LineChart.native.js.map +1 -1
  65. package/dist/cjs/charts/PieChart.cjs +98 -74
  66. package/dist/cjs/charts/PieChart.native.js +109 -85
  67. package/dist/cjs/charts/PieChart.native.js.map +1 -1
  68. package/dist/cjs/charts/Sparkline.cjs +10 -1
  69. package/dist/cjs/charts/Sparkline.native.js +10 -1
  70. package/dist/cjs/charts/Sparkline.native.js.map +1 -1
  71. package/dist/cjs/charts/accessibility.cjs +4 -0
  72. package/dist/cjs/charts/accessibility.native.js +7 -0
  73. package/dist/cjs/charts/accessibility.native.js.map +1 -1
  74. package/dist/cjs/charts/index.cjs +3 -1
  75. package/dist/cjs/charts/index.native.js +2 -0
  76. package/dist/cjs/charts/index.native.js.map +1 -1
  77. package/dist/cjs/charts/math.cjs +16 -0
  78. package/dist/cjs/charts/math.native.js +18 -0
  79. package/dist/cjs/charts/math.native.js.map +1 -1
  80. package/dist/cjs/charts/series.cjs +49 -7
  81. package/dist/cjs/charts/series.native.js +53 -11
  82. package/dist/cjs/charts/series.native.js.map +1 -1
  83. package/dist/cjs/charts/svg.cjs +46 -3
  84. package/dist/cjs/charts/svg.native.js +46 -3
  85. package/dist/cjs/charts/svg.native.js.map +1 -1
  86. package/dist/cjs/code/CodeBlock/index.cjs +6 -1
  87. package/dist/cjs/code/CodeBlock/index.native.js +6 -1
  88. package/dist/cjs/code/CodeBlock/index.native.js.map +1 -1
  89. package/dist/cjs/code/HighlightedCode/index.cjs +1 -1
  90. package/dist/cjs/code/HighlightedCode/index.native.js +1 -1
  91. package/dist/cjs/code/HighlightedCode/index.native.js.map +1 -1
  92. package/dist/cjs/componentColors.cjs +6 -4
  93. package/dist/cjs/componentColors.native.js +6 -4
  94. package/dist/cjs/componentColors.native.js.map +1 -1
  95. package/dist/cjs/feedback/ConfirmDialog.cjs +7 -21
  96. package/dist/cjs/feedback/ConfirmDialog.native.js +7 -22
  97. package/dist/cjs/feedback/ConfirmDialog.native.js.map +1 -1
  98. package/dist/cjs/feedback/NotifyHost.cjs +2 -1
  99. package/dist/cjs/feedback/NotifyHost.native.js +3 -2
  100. package/dist/cjs/feedback/NotifyHost.native.js.map +1 -1
  101. package/dist/cjs/feedback/copy.cjs +36 -4
  102. package/dist/cjs/feedback/copy.native.js +38 -4
  103. package/dist/cjs/feedback/copy.native.js.map +1 -1
  104. package/dist/cjs/feedback/index.cjs +1 -0
  105. package/dist/cjs/feedback/index.native.js +1 -0
  106. package/dist/cjs/feedback/index.native.js.map +1 -1
  107. package/dist/cjs/feedback/notify.cjs +1 -0
  108. package/dist/cjs/feedback/notify.native.js +1 -0
  109. package/dist/cjs/feedback/notify.native.js.map +1 -1
  110. package/dist/cjs/feedback/route.cjs +3 -0
  111. package/dist/cjs/feedback/route.native.js +3 -0
  112. package/dist/cjs/feedback/route.native.js.map +1 -1
  113. package/dist/cjs/feedback/store.cjs +6 -0
  114. package/dist/cjs/feedback/store.native.js +8 -0
  115. package/dist/cjs/feedback/store.native.js.map +1 -1
  116. package/dist/cjs/icons/lucide.cjs +2 -1
  117. package/dist/cjs/icons/lucide.native.js +2 -1
  118. package/dist/cjs/icons/lucide.native.js.map +1 -1
  119. package/dist/cjs/images/Image/ImageFrame.cjs +4 -2
  120. package/dist/cjs/images/Image/ImageFrame.native.js +4 -2
  121. package/dist/cjs/images/Image/ImageFrame.native.js.map +1 -1
  122. package/dist/cjs/layouts/AsyncBoundary.cjs +1 -2
  123. package/dist/cjs/layouts/AsyncBoundary.native.js +1 -2
  124. package/dist/cjs/layouts/AsyncBoundary.native.js.map +1 -1
  125. package/dist/cjs/layouts/EmptyState.cjs +6 -2
  126. package/dist/cjs/layouts/EmptyState.native.js +10 -6
  127. package/dist/cjs/layouts/EmptyState.native.js.map +1 -1
  128. package/dist/cjs/layouts/PaneScaffold.cjs +96 -41
  129. package/dist/cjs/layouts/PaneScaffold.native.js +97 -41
  130. package/dist/cjs/layouts/PaneScaffold.native.js.map +1 -1
  131. package/dist/cjs/layouts/attachments.cjs +4 -4
  132. package/dist/cjs/layouts/attachments.native.js +4 -4
  133. package/dist/cjs/layouts/attachments.native.js.map +1 -1
  134. package/dist/cjs/layouts/breadcrumbs.cjs +1 -2
  135. package/dist/cjs/layouts/breadcrumbs.native.js +1 -2
  136. package/dist/cjs/layouts/breadcrumbs.native.js.map +1 -1
  137. package/dist/cjs/layouts/index.cjs +2 -0
  138. package/dist/cjs/layouts/index.native.js +2 -0
  139. package/dist/cjs/layouts/index.native.js.map +1 -1
  140. package/dist/cjs/layouts/page.cjs +50 -9
  141. package/dist/cjs/layouts/page.native.js +52 -9
  142. package/dist/cjs/layouts/page.native.js.map +1 -1
  143. package/dist/cjs/layouts/sidebar.cjs +2 -2
  144. package/dist/cjs/layouts/sidebar.native.js +2 -2
  145. package/dist/cjs/layouts/sidebar.native.js.map +1 -1
  146. package/dist/cjs/layouts/tags.cjs +6 -7
  147. package/dist/cjs/layouts/tags.native.js +6 -9
  148. package/dist/cjs/layouts/tags.native.js.map +1 -1
  149. package/dist/cjs/layouts/timeline.cjs +5 -5
  150. package/dist/cjs/layouts/timeline.native.js +5 -5
  151. package/dist/cjs/layouts/timeline.native.js.map +1 -1
  152. package/dist/cjs/shared/useKeyboardInset.cjs +1 -19
  153. package/dist/cjs/shared/useKeyboardInset.native.js +3 -3
  154. package/dist/cjs/shared/useKeyboardInset.native.js.map +1 -1
  155. package/dist/cjs/surfaces.cjs +1 -0
  156. package/dist/cjs/surfaces.native.js +1 -0
  157. package/dist/cjs/surfaces.native.js.map +1 -1
  158. package/dist/cjs/views/Calendar.cjs +11 -8
  159. package/dist/cjs/views/Calendar.native.js +11 -8
  160. package/dist/cjs/views/Calendar.native.js.map +1 -1
  161. package/dist/cjs/views/Dashboard.cjs +116 -23
  162. package/dist/cjs/views/Dashboard.native.js +158 -52
  163. package/dist/cjs/views/Dashboard.native.js.map +1 -1
  164. package/dist/cjs/views/Gantt.cjs +377 -94
  165. package/dist/cjs/views/Gantt.native.js +446 -97
  166. package/dist/cjs/views/Gantt.native.js.map +1 -1
  167. package/dist/cjs/views/Kanban.cjs +2 -2
  168. package/dist/cjs/views/Kanban.native.js +2 -2
  169. package/dist/cjs/views/Kanban.native.js.map +1 -1
  170. package/dist/cjs/views/ReportBuilder.cjs +4 -4
  171. package/dist/cjs/views/ReportBuilder.native.js +4 -4
  172. package/dist/cjs/views/ReportBuilder.native.js.map +1 -1
  173. package/dist/cjs/views/TreeView.cjs +103 -6
  174. package/dist/cjs/views/TreeView.native.js +115 -6
  175. package/dist/cjs/views/TreeView.native.js.map +1 -1
  176. package/dist/cjs/views/ganttMath.cjs +91 -2
  177. package/dist/cjs/views/ganttMath.native.js +113 -3
  178. package/dist/cjs/views/ganttMath.native.js.map +1 -1
  179. package/dist/cjs/views/index.cjs +20 -1
  180. package/dist/cjs/views/index.native.js +20 -1
  181. package/dist/cjs/views/index.native.js.map +1 -1
  182. package/dist/cjs/views/treeViewReveal.cjs +55 -0
  183. package/dist/cjs/views/treeViewReveal.native.js +80 -0
  184. package/dist/cjs/views/treeViewReveal.native.js.map +1 -0
  185. package/dist/esm/Accordion/index.mjs +3 -3
  186. package/dist/esm/Accordion/index.mjs.map +1 -1
  187. package/dist/esm/Accordion/index.native.js +4 -4
  188. package/dist/esm/Accordion/index.native.js.map +1 -1
  189. package/dist/esm/Button.mjs.map +1 -1
  190. package/dist/esm/Button.native.js.map +1 -1
  191. package/dist/esm/Card.mjs +8 -2
  192. package/dist/esm/Card.mjs.map +1 -1
  193. package/dist/esm/Card.native.js +12 -2
  194. package/dist/esm/Card.native.js.map +1 -1
  195. package/dist/esm/CardFooter.mjs +1 -0
  196. package/dist/esm/CardFooter.mjs.map +1 -1
  197. package/dist/esm/CardFooter.native.js +1 -0
  198. package/dist/esm/CardFooter.native.js.map +1 -1
  199. package/dist/esm/Chip/index.mjs +1 -1
  200. package/dist/esm/Chip/index.mjs.map +1 -1
  201. package/dist/esm/Chip/index.native.js +1 -1
  202. package/dist/esm/Chip/index.native.js.map +1 -1
  203. package/dist/esm/ContextMenu/index.mjs +3 -3
  204. package/dist/esm/ContextMenu/index.mjs.map +1 -1
  205. package/dist/esm/ContextMenu/index.native.js +3 -3
  206. package/dist/esm/ContextMenu/index.native.js.map +1 -1
  207. package/dist/esm/CopyField/index.mjs +7 -2
  208. package/dist/esm/CopyField/index.mjs.map +1 -1
  209. package/dist/esm/CopyField/index.native.js +7 -2
  210. package/dist/esm/CopyField/index.native.js.map +1 -1
  211. package/dist/esm/DropdownMenu/index.mjs +35 -5
  212. package/dist/esm/DropdownMenu/index.mjs.map +1 -1
  213. package/dist/esm/DropdownMenu/index.native.js +35 -5
  214. package/dist/esm/DropdownMenu/index.native.js.map +1 -1
  215. package/dist/esm/Meter/index.mjs +15 -7
  216. package/dist/esm/Meter/index.mjs.map +1 -1
  217. package/dist/esm/Meter/index.native.js +15 -7
  218. package/dist/esm/Meter/index.native.js.map +1 -1
  219. package/dist/esm/Meter/meter.mjs +1 -2
  220. package/dist/esm/Meter/meter.mjs.map +1 -1
  221. package/dist/esm/Meter/meter.native.js +1 -2
  222. package/dist/esm/Meter/meter.native.js.map +1 -1
  223. package/dist/esm/Pagination.mjs +2 -2
  224. package/dist/esm/Pagination.mjs.map +1 -1
  225. package/dist/esm/Pagination.native.js +2 -2
  226. package/dist/esm/Pagination.native.js.map +1 -1
  227. package/dist/esm/ProgressSteps/index.mjs +3 -3
  228. package/dist/esm/ProgressSteps/index.mjs.map +1 -1
  229. package/dist/esm/ProgressSteps/index.native.js +3 -3
  230. package/dist/esm/ProgressSteps/index.native.js.map +1 -1
  231. package/dist/esm/Quote/index.mjs +1 -2
  232. package/dist/esm/Quote/index.mjs.map +1 -1
  233. package/dist/esm/Quote/index.native.js +1 -2
  234. package/dist/esm/Quote/index.native.js.map +1 -1
  235. package/dist/esm/Tabs/index.mjs +8 -7
  236. package/dist/esm/Tabs/index.mjs.map +1 -1
  237. package/dist/esm/Tabs/index.native.js +9 -8
  238. package/dist/esm/Tabs/index.native.js.map +1 -1
  239. package/dist/esm/Toast/index.mjs +56 -8
  240. package/dist/esm/Toast/index.mjs.map +1 -1
  241. package/dist/esm/Toast/index.native.js +58 -8
  242. package/dist/esm/Toast/index.native.js.map +1 -1
  243. package/dist/esm/TreeSelect/index.mjs +46 -7
  244. package/dist/esm/TreeSelect/index.mjs.map +1 -1
  245. package/dist/esm/TreeSelect/index.native.js +58 -7
  246. package/dist/esm/TreeSelect/index.native.js.map +1 -1
  247. package/dist/esm/actions/DestructiveAction.mjs +8 -14
  248. package/dist/esm/actions/DestructiveAction.mjs.map +1 -1
  249. package/dist/esm/actions/DestructiveAction.native.js +8 -16
  250. package/dist/esm/actions/DestructiveAction.native.js.map +1 -1
  251. package/dist/esm/charts/Axis.mjs +6 -1
  252. package/dist/esm/charts/Axis.mjs.map +1 -1
  253. package/dist/esm/charts/Axis.native.js +6 -1
  254. package/dist/esm/charts/Axis.native.js.map +1 -1
  255. package/dist/esm/charts/BarChart.mjs +72 -58
  256. package/dist/esm/charts/BarChart.mjs.map +1 -1
  257. package/dist/esm/charts/BarChart.native.js +82 -68
  258. package/dist/esm/charts/BarChart.native.js.map +1 -1
  259. package/dist/esm/charts/ChartDataView.mjs +185 -0
  260. package/dist/esm/charts/ChartDataView.mjs.map +1 -0
  261. package/dist/esm/charts/ChartDataView.native.js +194 -0
  262. package/dist/esm/charts/ChartDataView.native.js.map +1 -0
  263. package/dist/esm/charts/ChartSurface.mjs +5 -1
  264. package/dist/esm/charts/ChartSurface.mjs.map +1 -1
  265. package/dist/esm/charts/ChartSurface.native.js +5 -1
  266. package/dist/esm/charts/ChartSurface.native.js.map +1 -1
  267. package/dist/esm/charts/LineChart.mjs +82 -68
  268. package/dist/esm/charts/LineChart.mjs.map +1 -1
  269. package/dist/esm/charts/LineChart.native.js +95 -81
  270. package/dist/esm/charts/LineChart.native.js.map +1 -1
  271. package/dist/esm/charts/PieChart.mjs +100 -76
  272. package/dist/esm/charts/PieChart.mjs.map +1 -1
  273. package/dist/esm/charts/PieChart.native.js +111 -87
  274. package/dist/esm/charts/PieChart.native.js.map +1 -1
  275. package/dist/esm/charts/Sparkline.mjs +11 -2
  276. package/dist/esm/charts/Sparkline.mjs.map +1 -1
  277. package/dist/esm/charts/Sparkline.native.js +11 -2
  278. package/dist/esm/charts/Sparkline.native.js.map +1 -1
  279. package/dist/esm/charts/accessibility.mjs +4 -1
  280. package/dist/esm/charts/accessibility.mjs.map +1 -1
  281. package/dist/esm/charts/accessibility.native.js +7 -1
  282. package/dist/esm/charts/accessibility.native.js.map +1 -1
  283. package/dist/esm/charts/index.mjs +2 -1
  284. package/dist/esm/charts/index.mjs.map +1 -1
  285. package/dist/esm/charts/index.native.js +2 -1
  286. package/dist/esm/charts/index.native.js.map +1 -1
  287. package/dist/esm/charts/math.mjs +16 -1
  288. package/dist/esm/charts/math.mjs.map +1 -1
  289. package/dist/esm/charts/math.native.js +18 -1
  290. package/dist/esm/charts/math.native.js.map +1 -1
  291. package/dist/esm/charts/series.mjs +51 -9
  292. package/dist/esm/charts/series.mjs.map +1 -1
  293. package/dist/esm/charts/series.native.js +55 -13
  294. package/dist/esm/charts/series.native.js.map +1 -1
  295. package/dist/esm/charts/svg.mjs +40 -4
  296. package/dist/esm/charts/svg.mjs.map +1 -1
  297. package/dist/esm/charts/svg.native.js +40 -4
  298. package/dist/esm/charts/svg.native.js.map +1 -1
  299. package/dist/esm/code/CodeBlock/index.mjs +7 -2
  300. package/dist/esm/code/CodeBlock/index.mjs.map +1 -1
  301. package/dist/esm/code/CodeBlock/index.native.js +7 -2
  302. package/dist/esm/code/CodeBlock/index.native.js.map +1 -1
  303. package/dist/esm/code/HighlightedCode/index.mjs +1 -1
  304. package/dist/esm/code/HighlightedCode/index.mjs.map +1 -1
  305. package/dist/esm/code/HighlightedCode/index.native.js +1 -1
  306. package/dist/esm/code/HighlightedCode/index.native.js.map +1 -1
  307. package/dist/esm/componentColors.mjs +6 -4
  308. package/dist/esm/componentColors.mjs.map +1 -1
  309. package/dist/esm/componentColors.native.js +6 -4
  310. package/dist/esm/componentColors.native.js.map +1 -1
  311. package/dist/esm/feedback/ConfirmDialog.mjs +8 -22
  312. package/dist/esm/feedback/ConfirmDialog.mjs.map +1 -1
  313. package/dist/esm/feedback/ConfirmDialog.native.js +8 -23
  314. package/dist/esm/feedback/ConfirmDialog.native.js.map +1 -1
  315. package/dist/esm/feedback/NotifyHost.mjs +2 -1
  316. package/dist/esm/feedback/NotifyHost.mjs.map +1 -1
  317. package/dist/esm/feedback/NotifyHost.native.js +3 -2
  318. package/dist/esm/feedback/NotifyHost.native.js.map +1 -1
  319. package/dist/esm/feedback/copy.mjs +35 -4
  320. package/dist/esm/feedback/copy.mjs.map +1 -1
  321. package/dist/esm/feedback/copy.native.js +37 -4
  322. package/dist/esm/feedback/copy.native.js.map +1 -1
  323. package/dist/esm/feedback/index.mjs +2 -2
  324. package/dist/esm/feedback/index.mjs.map +1 -1
  325. package/dist/esm/feedback/index.native.js +2 -2
  326. package/dist/esm/feedback/index.native.js.map +1 -1
  327. package/dist/esm/feedback/notify.mjs +1 -0
  328. package/dist/esm/feedback/notify.mjs.map +1 -1
  329. package/dist/esm/feedback/notify.native.js +1 -0
  330. package/dist/esm/feedback/notify.native.js.map +1 -1
  331. package/dist/esm/feedback/route.mjs +3 -0
  332. package/dist/esm/feedback/route.mjs.map +1 -1
  333. package/dist/esm/feedback/route.native.js +3 -0
  334. package/dist/esm/feedback/route.native.js.map +1 -1
  335. package/dist/esm/feedback/store.mjs +6 -1
  336. package/dist/esm/feedback/store.mjs.map +1 -1
  337. package/dist/esm/feedback/store.native.js +8 -1
  338. package/dist/esm/feedback/store.native.js.map +1 -1
  339. package/dist/esm/icons/lucide.mjs +2 -2
  340. package/dist/esm/icons/lucide.mjs.map +1 -1
  341. package/dist/esm/icons/lucide.native.js +2 -2
  342. package/dist/esm/icons/lucide.native.js.map +1 -1
  343. package/dist/esm/images/Image/ImageFrame.mjs +4 -2
  344. package/dist/esm/images/Image/ImageFrame.mjs.map +1 -1
  345. package/dist/esm/images/Image/ImageFrame.native.js +4 -2
  346. package/dist/esm/images/Image/ImageFrame.native.js.map +1 -1
  347. package/dist/esm/layouts/AsyncBoundary.mjs +1 -2
  348. package/dist/esm/layouts/AsyncBoundary.mjs.map +1 -1
  349. package/dist/esm/layouts/AsyncBoundary.native.js +1 -2
  350. package/dist/esm/layouts/AsyncBoundary.native.js.map +1 -1
  351. package/dist/esm/layouts/EmptyState.mjs +7 -3
  352. package/dist/esm/layouts/EmptyState.mjs.map +1 -1
  353. package/dist/esm/layouts/EmptyState.native.js +11 -7
  354. package/dist/esm/layouts/EmptyState.native.js.map +1 -1
  355. package/dist/esm/layouts/PaneScaffold.mjs +97 -42
  356. package/dist/esm/layouts/PaneScaffold.mjs.map +1 -1
  357. package/dist/esm/layouts/PaneScaffold.native.js +98 -42
  358. package/dist/esm/layouts/PaneScaffold.native.js.map +1 -1
  359. package/dist/esm/layouts/attachments.mjs +4 -4
  360. package/dist/esm/layouts/attachments.mjs.map +1 -1
  361. package/dist/esm/layouts/attachments.native.js +4 -4
  362. package/dist/esm/layouts/attachments.native.js.map +1 -1
  363. package/dist/esm/layouts/breadcrumbs.mjs +1 -2
  364. package/dist/esm/layouts/breadcrumbs.mjs.map +1 -1
  365. package/dist/esm/layouts/breadcrumbs.native.js +1 -2
  366. package/dist/esm/layouts/breadcrumbs.native.js.map +1 -1
  367. package/dist/esm/layouts/index.mjs +2 -1
  368. package/dist/esm/layouts/index.mjs.map +1 -1
  369. package/dist/esm/layouts/index.native.js +2 -1
  370. package/dist/esm/layouts/index.native.js.map +1 -1
  371. package/dist/esm/layouts/page.mjs +51 -10
  372. package/dist/esm/layouts/page.mjs.map +1 -1
  373. package/dist/esm/layouts/page.native.js +53 -10
  374. package/dist/esm/layouts/page.native.js.map +1 -1
  375. package/dist/esm/layouts/sidebar.mjs +2 -2
  376. package/dist/esm/layouts/sidebar.mjs.map +1 -1
  377. package/dist/esm/layouts/sidebar.native.js +2 -2
  378. package/dist/esm/layouts/sidebar.native.js.map +1 -1
  379. package/dist/esm/layouts/tags.mjs +6 -7
  380. package/dist/esm/layouts/tags.mjs.map +1 -1
  381. package/dist/esm/layouts/tags.native.js +6 -9
  382. package/dist/esm/layouts/tags.native.js.map +1 -1
  383. package/dist/esm/layouts/timeline.mjs +5 -5
  384. package/dist/esm/layouts/timeline.mjs.map +1 -1
  385. package/dist/esm/layouts/timeline.native.js +5 -5
  386. package/dist/esm/layouts/timeline.native.js.map +1 -1
  387. package/dist/esm/shared/useKeyboardInset.mjs +1 -19
  388. package/dist/esm/shared/useKeyboardInset.mjs.map +1 -1
  389. package/dist/esm/shared/useKeyboardInset.native.js.map +1 -1
  390. package/dist/esm/surfaces.mjs +1 -0
  391. package/dist/esm/surfaces.mjs.map +1 -1
  392. package/dist/esm/surfaces.native.js +1 -0
  393. package/dist/esm/surfaces.native.js.map +1 -1
  394. package/dist/esm/views/Calendar.mjs +11 -8
  395. package/dist/esm/views/Calendar.mjs.map +1 -1
  396. package/dist/esm/views/Calendar.native.js +11 -8
  397. package/dist/esm/views/Calendar.native.js.map +1 -1
  398. package/dist/esm/views/Dashboard.mjs +118 -25
  399. package/dist/esm/views/Dashboard.mjs.map +1 -1
  400. package/dist/esm/views/Dashboard.native.js +160 -54
  401. package/dist/esm/views/Dashboard.native.js.map +1 -1
  402. package/dist/esm/views/Gantt.mjs +379 -96
  403. package/dist/esm/views/Gantt.mjs.map +1 -1
  404. package/dist/esm/views/Gantt.native.js +448 -99
  405. package/dist/esm/views/Gantt.native.js.map +1 -1
  406. package/dist/esm/views/Kanban.mjs +2 -2
  407. package/dist/esm/views/Kanban.mjs.map +1 -1
  408. package/dist/esm/views/Kanban.native.js +2 -2
  409. package/dist/esm/views/Kanban.native.js.map +1 -1
  410. package/dist/esm/views/ReportBuilder.mjs +4 -4
  411. package/dist/esm/views/ReportBuilder.mjs.map +1 -1
  412. package/dist/esm/views/ReportBuilder.native.js +4 -4
  413. package/dist/esm/views/ReportBuilder.native.js.map +1 -1
  414. package/dist/esm/views/TreeView.mjs +104 -7
  415. package/dist/esm/views/TreeView.mjs.map +1 -1
  416. package/dist/esm/views/TreeView.native.js +116 -7
  417. package/dist/esm/views/TreeView.native.js.map +1 -1
  418. package/dist/esm/views/ganttMath.mjs +84 -3
  419. package/dist/esm/views/ganttMath.mjs.map +1 -1
  420. package/dist/esm/views/ganttMath.native.js +106 -4
  421. package/dist/esm/views/ganttMath.native.js.map +1 -1
  422. package/dist/esm/views/index.mjs +2 -2
  423. package/dist/esm/views/index.mjs.map +1 -1
  424. package/dist/esm/views/index.native.js +2 -2
  425. package/dist/esm/views/index.native.js.map +1 -1
  426. package/dist/esm/views/treeViewReveal.mjs +29 -0
  427. package/dist/esm/views/treeViewReveal.mjs.map +1 -0
  428. package/dist/esm/views/treeViewReveal.native.js +51 -0
  429. package/dist/esm/views/treeViewReveal.native.js.map +1 -0
  430. package/dist/jsx/Accordion/index.mjs +3 -3
  431. package/dist/jsx/Accordion/index.mjs.map +1 -1
  432. package/dist/jsx/Accordion/index.native.js +4 -4
  433. package/dist/jsx/Accordion/index.native.js.map +1 -1
  434. package/dist/jsx/Button.mjs.map +1 -1
  435. package/dist/jsx/Button.native.js.map +1 -1
  436. package/dist/jsx/Card.mjs +8 -2
  437. package/dist/jsx/Card.mjs.map +1 -1
  438. package/dist/jsx/Card.native.js +11 -1
  439. package/dist/jsx/Card.native.js.map +1 -1
  440. package/dist/jsx/CardFooter.mjs +1 -0
  441. package/dist/jsx/CardFooter.mjs.map +1 -1
  442. package/dist/jsx/CardFooter.native.js +1 -0
  443. package/dist/jsx/CardFooter.native.js.map +1 -1
  444. package/dist/jsx/Chip/index.mjs +1 -1
  445. package/dist/jsx/Chip/index.mjs.map +1 -1
  446. package/dist/jsx/Chip/index.native.js +1 -1
  447. package/dist/jsx/Chip/index.native.js.map +1 -1
  448. package/dist/jsx/ContextMenu/index.mjs +3 -3
  449. package/dist/jsx/ContextMenu/index.mjs.map +1 -1
  450. package/dist/jsx/ContextMenu/index.native.js +3 -3
  451. package/dist/jsx/ContextMenu/index.native.js.map +1 -1
  452. package/dist/jsx/CopyField/index.mjs +7 -2
  453. package/dist/jsx/CopyField/index.mjs.map +1 -1
  454. package/dist/jsx/CopyField/index.native.js +6 -1
  455. package/dist/jsx/CopyField/index.native.js.map +1 -1
  456. package/dist/jsx/DropdownMenu/index.mjs +35 -5
  457. package/dist/jsx/DropdownMenu/index.mjs.map +1 -1
  458. package/dist/jsx/DropdownMenu/index.native.js +34 -4
  459. package/dist/jsx/DropdownMenu/index.native.js.map +1 -1
  460. package/dist/jsx/Meter/index.mjs +15 -7
  461. package/dist/jsx/Meter/index.mjs.map +1 -1
  462. package/dist/jsx/Meter/index.native.js +15 -7
  463. package/dist/jsx/Meter/index.native.js.map +1 -1
  464. package/dist/jsx/Meter/meter.mjs +1 -2
  465. package/dist/jsx/Meter/meter.mjs.map +1 -1
  466. package/dist/jsx/Meter/meter.native.js +1 -2
  467. package/dist/jsx/Meter/meter.native.js.map +1 -1
  468. package/dist/jsx/Pagination.mjs +2 -2
  469. package/dist/jsx/Pagination.mjs.map +1 -1
  470. package/dist/jsx/Pagination.native.js +2 -2
  471. package/dist/jsx/Pagination.native.js.map +1 -1
  472. package/dist/jsx/ProgressSteps/index.mjs +3 -3
  473. package/dist/jsx/ProgressSteps/index.mjs.map +1 -1
  474. package/dist/jsx/ProgressSteps/index.native.js +3 -3
  475. package/dist/jsx/ProgressSteps/index.native.js.map +1 -1
  476. package/dist/jsx/Quote/index.mjs +1 -2
  477. package/dist/jsx/Quote/index.mjs.map +1 -1
  478. package/dist/jsx/Quote/index.native.js +1 -2
  479. package/dist/jsx/Quote/index.native.js.map +1 -1
  480. package/dist/jsx/Tabs/index.mjs +8 -7
  481. package/dist/jsx/Tabs/index.mjs.map +1 -1
  482. package/dist/jsx/Tabs/index.native.js +9 -8
  483. package/dist/jsx/Tabs/index.native.js.map +1 -1
  484. package/dist/jsx/Toast/index.mjs +56 -8
  485. package/dist/jsx/Toast/index.mjs.map +1 -1
  486. package/dist/jsx/Toast/index.native.js +59 -7
  487. package/dist/jsx/Toast/index.native.js.map +1 -1
  488. package/dist/jsx/TreeSelect/index.mjs +46 -7
  489. package/dist/jsx/TreeSelect/index.mjs.map +1 -1
  490. package/dist/jsx/TreeSelect/index.native.js +58 -7
  491. package/dist/jsx/TreeSelect/index.native.js.map +1 -1
  492. package/dist/jsx/actions/DestructiveAction.mjs +8 -14
  493. package/dist/jsx/actions/DestructiveAction.mjs.map +1 -1
  494. package/dist/jsx/actions/DestructiveAction.native.js +7 -15
  495. package/dist/jsx/actions/DestructiveAction.native.js.map +1 -1
  496. package/dist/jsx/charts/Axis.mjs +6 -1
  497. package/dist/jsx/charts/Axis.mjs.map +1 -1
  498. package/dist/jsx/charts/Axis.native.js +5 -0
  499. package/dist/jsx/charts/Axis.native.js.map +1 -1
  500. package/dist/jsx/charts/BarChart.mjs +72 -58
  501. package/dist/jsx/charts/BarChart.mjs.map +1 -1
  502. package/dist/jsx/charts/BarChart.native.js +81 -67
  503. package/dist/jsx/charts/BarChart.native.js.map +1 -1
  504. package/dist/jsx/charts/ChartDataView.mjs +185 -0
  505. package/dist/jsx/charts/ChartDataView.mjs.map +1 -0
  506. package/dist/jsx/charts/ChartDataView.native.js +224 -0
  507. package/dist/jsx/charts/ChartDataView.native.js.map +1 -0
  508. package/dist/jsx/charts/ChartSurface.mjs +5 -1
  509. package/dist/jsx/charts/ChartSurface.mjs.map +1 -1
  510. package/dist/jsx/charts/ChartSurface.native.js +5 -1
  511. package/dist/jsx/charts/ChartSurface.native.js.map +1 -1
  512. package/dist/jsx/charts/LineChart.mjs +82 -68
  513. package/dist/jsx/charts/LineChart.mjs.map +1 -1
  514. package/dist/jsx/charts/LineChart.native.js +94 -80
  515. package/dist/jsx/charts/LineChart.native.js.map +1 -1
  516. package/dist/jsx/charts/PieChart.mjs +100 -76
  517. package/dist/jsx/charts/PieChart.mjs.map +1 -1
  518. package/dist/jsx/charts/PieChart.native.js +109 -85
  519. package/dist/jsx/charts/PieChart.native.js.map +1 -1
  520. package/dist/jsx/charts/Sparkline.mjs +11 -2
  521. package/dist/jsx/charts/Sparkline.mjs.map +1 -1
  522. package/dist/jsx/charts/Sparkline.native.js +10 -1
  523. package/dist/jsx/charts/Sparkline.native.js.map +1 -1
  524. package/dist/jsx/charts/accessibility.mjs +4 -1
  525. package/dist/jsx/charts/accessibility.mjs.map +1 -1
  526. package/dist/jsx/charts/accessibility.native.js +7 -0
  527. package/dist/jsx/charts/accessibility.native.js.map +1 -1
  528. package/dist/jsx/charts/index.mjs +2 -1
  529. package/dist/jsx/charts/index.mjs.map +1 -1
  530. package/dist/jsx/charts/index.native.js +2 -0
  531. package/dist/jsx/charts/index.native.js.map +1 -1
  532. package/dist/jsx/charts/math.mjs +16 -1
  533. package/dist/jsx/charts/math.mjs.map +1 -1
  534. package/dist/jsx/charts/math.native.js +18 -0
  535. package/dist/jsx/charts/math.native.js.map +1 -1
  536. package/dist/jsx/charts/series.mjs +51 -9
  537. package/dist/jsx/charts/series.mjs.map +1 -1
  538. package/dist/jsx/charts/series.native.js +53 -11
  539. package/dist/jsx/charts/series.native.js.map +1 -1
  540. package/dist/jsx/charts/svg.mjs +40 -4
  541. package/dist/jsx/charts/svg.mjs.map +1 -1
  542. package/dist/jsx/charts/svg.native.js +46 -3
  543. package/dist/jsx/charts/svg.native.js.map +1 -1
  544. package/dist/jsx/code/CodeBlock/index.mjs +7 -2
  545. package/dist/jsx/code/CodeBlock/index.mjs.map +1 -1
  546. package/dist/jsx/code/CodeBlock/index.native.js +6 -1
  547. package/dist/jsx/code/CodeBlock/index.native.js.map +1 -1
  548. package/dist/jsx/code/HighlightedCode/index.mjs +1 -1
  549. package/dist/jsx/code/HighlightedCode/index.mjs.map +1 -1
  550. package/dist/jsx/code/HighlightedCode/index.native.js +1 -1
  551. package/dist/jsx/code/HighlightedCode/index.native.js.map +1 -1
  552. package/dist/jsx/componentColors.mjs +6 -4
  553. package/dist/jsx/componentColors.mjs.map +1 -1
  554. package/dist/jsx/componentColors.native.js +6 -4
  555. package/dist/jsx/componentColors.native.js.map +1 -1
  556. package/dist/jsx/feedback/ConfirmDialog.mjs +8 -22
  557. package/dist/jsx/feedback/ConfirmDialog.mjs.map +1 -1
  558. package/dist/jsx/feedback/ConfirmDialog.native.js +7 -22
  559. package/dist/jsx/feedback/ConfirmDialog.native.js.map +1 -1
  560. package/dist/jsx/feedback/NotifyHost.mjs +2 -1
  561. package/dist/jsx/feedback/NotifyHost.mjs.map +1 -1
  562. package/dist/jsx/feedback/NotifyHost.native.js +3 -2
  563. package/dist/jsx/feedback/NotifyHost.native.js.map +1 -1
  564. package/dist/jsx/feedback/copy.mjs +35 -4
  565. package/dist/jsx/feedback/copy.mjs.map +1 -1
  566. package/dist/jsx/feedback/copy.native.js +38 -4
  567. package/dist/jsx/feedback/copy.native.js.map +1 -1
  568. package/dist/jsx/feedback/index.mjs +2 -2
  569. package/dist/jsx/feedback/index.mjs.map +1 -1
  570. package/dist/jsx/feedback/index.native.js +1 -0
  571. package/dist/jsx/feedback/index.native.js.map +1 -1
  572. package/dist/jsx/feedback/notify.mjs +1 -0
  573. package/dist/jsx/feedback/notify.mjs.map +1 -1
  574. package/dist/jsx/feedback/notify.native.js +1 -0
  575. package/dist/jsx/feedback/notify.native.js.map +1 -1
  576. package/dist/jsx/feedback/route.mjs +3 -0
  577. package/dist/jsx/feedback/route.mjs.map +1 -1
  578. package/dist/jsx/feedback/route.native.js +3 -0
  579. package/dist/jsx/feedback/route.native.js.map +1 -1
  580. package/dist/jsx/feedback/store.mjs +6 -1
  581. package/dist/jsx/feedback/store.mjs.map +1 -1
  582. package/dist/jsx/feedback/store.native.js +8 -0
  583. package/dist/jsx/feedback/store.native.js.map +1 -1
  584. package/dist/jsx/icons/lucide.mjs +2 -2
  585. package/dist/jsx/icons/lucide.mjs.map +1 -1
  586. package/dist/jsx/icons/lucide.native.js +2 -1
  587. package/dist/jsx/images/Image/ImageFrame.mjs +4 -2
  588. package/dist/jsx/images/Image/ImageFrame.mjs.map +1 -1
  589. package/dist/jsx/images/Image/ImageFrame.native.js +4 -2
  590. package/dist/jsx/images/Image/ImageFrame.native.js.map +1 -1
  591. package/dist/jsx/layouts/AsyncBoundary.mjs +1 -2
  592. package/dist/jsx/layouts/AsyncBoundary.mjs.map +1 -1
  593. package/dist/jsx/layouts/AsyncBoundary.native.js +1 -2
  594. package/dist/jsx/layouts/AsyncBoundary.native.js.map +1 -1
  595. package/dist/jsx/layouts/EmptyState.mjs +7 -3
  596. package/dist/jsx/layouts/EmptyState.mjs.map +1 -1
  597. package/dist/jsx/layouts/EmptyState.native.js +10 -6
  598. package/dist/jsx/layouts/EmptyState.native.js.map +1 -1
  599. package/dist/jsx/layouts/PaneScaffold.mjs +97 -42
  600. package/dist/jsx/layouts/PaneScaffold.mjs.map +1 -1
  601. package/dist/jsx/layouts/PaneScaffold.native.js +97 -41
  602. package/dist/jsx/layouts/PaneScaffold.native.js.map +1 -1
  603. package/dist/jsx/layouts/attachments.mjs +4 -4
  604. package/dist/jsx/layouts/attachments.mjs.map +1 -1
  605. package/dist/jsx/layouts/attachments.native.js +4 -4
  606. package/dist/jsx/layouts/attachments.native.js.map +1 -1
  607. package/dist/jsx/layouts/breadcrumbs.mjs +1 -2
  608. package/dist/jsx/layouts/breadcrumbs.mjs.map +1 -1
  609. package/dist/jsx/layouts/breadcrumbs.native.js +1 -2
  610. package/dist/jsx/layouts/breadcrumbs.native.js.map +1 -1
  611. package/dist/jsx/layouts/index.mjs +2 -1
  612. package/dist/jsx/layouts/index.mjs.map +1 -1
  613. package/dist/jsx/layouts/index.native.js +2 -0
  614. package/dist/jsx/layouts/index.native.js.map +1 -1
  615. package/dist/jsx/layouts/page.mjs +51 -10
  616. package/dist/jsx/layouts/page.mjs.map +1 -1
  617. package/dist/jsx/layouts/page.native.js +52 -9
  618. package/dist/jsx/layouts/page.native.js.map +1 -1
  619. package/dist/jsx/layouts/sidebar.mjs +2 -2
  620. package/dist/jsx/layouts/sidebar.mjs.map +1 -1
  621. package/dist/jsx/layouts/sidebar.native.js +2 -2
  622. package/dist/jsx/layouts/sidebar.native.js.map +1 -1
  623. package/dist/jsx/layouts/tags.mjs +6 -7
  624. package/dist/jsx/layouts/tags.mjs.map +1 -1
  625. package/dist/jsx/layouts/tags.native.js +6 -9
  626. package/dist/jsx/layouts/tags.native.js.map +1 -1
  627. package/dist/jsx/layouts/timeline.mjs +5 -5
  628. package/dist/jsx/layouts/timeline.mjs.map +1 -1
  629. package/dist/jsx/layouts/timeline.native.js +5 -5
  630. package/dist/jsx/layouts/timeline.native.js.map +1 -1
  631. package/dist/jsx/shared/useKeyboardInset.mjs +1 -19
  632. package/dist/jsx/shared/useKeyboardInset.mjs.map +1 -1
  633. package/dist/jsx/shared/useKeyboardInset.native.js +3 -3
  634. package/dist/jsx/shared/useKeyboardInset.native.js.map +1 -1
  635. package/dist/jsx/surfaces.mjs +1 -0
  636. package/dist/jsx/surfaces.mjs.map +1 -1
  637. package/dist/jsx/surfaces.native.js +1 -0
  638. package/dist/jsx/surfaces.native.js.map +1 -1
  639. package/dist/jsx/views/Calendar.mjs +11 -8
  640. package/dist/jsx/views/Calendar.mjs.map +1 -1
  641. package/dist/jsx/views/Calendar.native.js +11 -8
  642. package/dist/jsx/views/Calendar.native.js.map +1 -1
  643. package/dist/jsx/views/Dashboard.mjs +118 -25
  644. package/dist/jsx/views/Dashboard.mjs.map +1 -1
  645. package/dist/jsx/views/Dashboard.native.js +158 -52
  646. package/dist/jsx/views/Dashboard.native.js.map +1 -1
  647. package/dist/jsx/views/Gantt.mjs +379 -96
  648. package/dist/jsx/views/Gantt.mjs.map +1 -1
  649. package/dist/jsx/views/Gantt.native.js +446 -97
  650. package/dist/jsx/views/Gantt.native.js.map +1 -1
  651. package/dist/jsx/views/Kanban.mjs +2 -2
  652. package/dist/jsx/views/Kanban.mjs.map +1 -1
  653. package/dist/jsx/views/Kanban.native.js +2 -2
  654. package/dist/jsx/views/Kanban.native.js.map +1 -1
  655. package/dist/jsx/views/ReportBuilder.mjs +4 -4
  656. package/dist/jsx/views/ReportBuilder.mjs.map +1 -1
  657. package/dist/jsx/views/ReportBuilder.native.js +4 -4
  658. package/dist/jsx/views/ReportBuilder.native.js.map +1 -1
  659. package/dist/jsx/views/TreeView.mjs +104 -7
  660. package/dist/jsx/views/TreeView.mjs.map +1 -1
  661. package/dist/jsx/views/TreeView.native.js +115 -6
  662. package/dist/jsx/views/TreeView.native.js.map +1 -1
  663. package/dist/jsx/views/ganttMath.mjs +84 -3
  664. package/dist/jsx/views/ganttMath.mjs.map +1 -1
  665. package/dist/jsx/views/ganttMath.native.js +113 -3
  666. package/dist/jsx/views/ganttMath.native.js.map +1 -1
  667. package/dist/jsx/views/index.mjs +2 -2
  668. package/dist/jsx/views/index.mjs.map +1 -1
  669. package/dist/jsx/views/index.native.js +20 -1
  670. package/dist/jsx/views/index.native.js.map +1 -1
  671. package/dist/jsx/views/treeViewReveal.mjs +29 -0
  672. package/dist/jsx/views/treeViewReveal.mjs.map +1 -0
  673. package/dist/jsx/views/treeViewReveal.native.js +80 -0
  674. package/dist/jsx/views/treeViewReveal.native.js.map +1 -0
  675. package/package.json +11 -9
  676. package/src/Accordion/index.tsx +4 -6
  677. package/src/Button.tsx +10 -2
  678. package/src/Card.spec.tsx +76 -3
  679. package/src/Card.stories.tsx +1 -1
  680. package/src/Card.tsx +13 -1
  681. package/src/CardFooter.stories.tsx +3 -7
  682. package/src/CardFooter.tsx +3 -1
  683. package/src/CardHeader.stories.tsx +1 -3
  684. package/src/Chip/index.tsx +1 -1
  685. package/src/Collapsible.stories.tsx +2 -2
  686. package/src/ContextMenu/index.tsx +3 -3
  687. package/src/CopyField/CopyField.spec.tsx +66 -1
  688. package/src/CopyField/index.tsx +4 -3
  689. package/src/DropdownMenu/DropdownMenu.spec.tsx +112 -1
  690. package/src/DropdownMenu/DropdownMenu.stories.tsx +1 -3
  691. package/src/DropdownMenu/index.tsx +70 -9
  692. package/src/LinearGradient.stories.tsx +2 -2
  693. package/src/Meter/Meter.spec.tsx +71 -6
  694. package/src/Meter/Meter.stories.tsx +38 -0
  695. package/src/Meter/index.tsx +12 -6
  696. package/src/Meter/meter.ts +6 -1
  697. package/src/Pagination.tsx +2 -2
  698. package/src/Panel.stories.tsx +1 -1
  699. package/src/ProgressSteps/index.tsx +3 -3
  700. package/src/Quote/index.tsx +1 -3
  701. package/src/SortableList/SortableList.spec.tsx +3 -3
  702. package/src/Tabs/Tabs.spec.tsx +43 -3
  703. package/src/Tabs/Tabs.stories.tsx +10 -1
  704. package/src/Tabs/index.tsx +21 -15
  705. package/src/Toast/Toast.spec.tsx +176 -49
  706. package/src/Toast/index.tsx +73 -6
  707. package/src/TreeSelect/index.tsx +61 -1
  708. package/src/Unspaced.stories.tsx +2 -2
  709. package/src/VisuallyHidden.stories.tsx +2 -2
  710. package/src/actions/DestructiveAction.spec.tsx +19 -3
  711. package/src/actions/DestructiveAction.tsx +9 -14
  712. package/src/charts/Axis.tsx +6 -1
  713. package/src/charts/BarChart.tsx +82 -67
  714. package/src/charts/ChartDataView.spec.tsx +104 -0
  715. package/src/charts/ChartDataView.tsx +158 -0
  716. package/src/charts/ChartSurface.tsx +7 -2
  717. package/src/charts/Charts.stories.tsx +213 -9
  718. package/src/charts/LineChart.tsx +90 -75
  719. package/src/charts/PieChart.knobs.spec.tsx +25 -0
  720. package/src/charts/PieChart.tsx +51 -10
  721. package/src/charts/Sparkline.tsx +25 -3
  722. package/src/charts/accessibility.ts +8 -0
  723. package/src/charts/charts.spec.tsx +77 -3
  724. package/src/charts/index.ts +2 -0
  725. package/src/charts/math.spec.ts +19 -0
  726. package/src/charts/math.ts +36 -0
  727. package/src/charts/series.tsx +101 -21
  728. package/src/charts/svg.spec.ts +28 -0
  729. package/src/charts/svg.ts +56 -2
  730. package/src/code/CodeBlock/CodeBlock.copy.spec.tsx +23 -0
  731. package/src/code/CodeBlock/index.tsx +4 -3
  732. package/src/code/HighlightedCode/index.tsx +1 -1
  733. package/src/componentColors.ts +6 -4
  734. package/src/feedback/ConfirmDialog.nativeFocus.spec.tsx +52 -0
  735. package/src/feedback/ConfirmDialog.spec.tsx +20 -0
  736. package/src/feedback/ConfirmDialog.tsx +9 -15
  737. package/src/feedback/NotifyHost.tsx +11 -2
  738. package/src/feedback/copy.ts +36 -4
  739. package/src/feedback/index.ts +1 -0
  740. package/src/feedback/notify.spec.ts +15 -1
  741. package/src/feedback/notify.ts +1 -0
  742. package/src/feedback/route.ts +4 -0
  743. package/src/feedback/store.ts +7 -0
  744. package/src/icons/lucide.ts +1 -1
  745. package/src/images/Image/ImageFrame.tsx +2 -2
  746. package/src/images/SvgUri/index.native.ts +11 -3
  747. package/src/layouts/AsyncBoundary.tsx +1 -2
  748. package/src/layouts/EmptyState.spec.tsx +58 -1
  749. package/src/layouts/EmptyState.stories.tsx +2 -2
  750. package/src/layouts/EmptyState.tsx +11 -7
  751. package/src/layouts/KeyboardAvoidingWrapper/KeyboardAvoidingWrapper.stories.tsx +3 -3
  752. package/src/layouts/Page.weight.spec.tsx +75 -0
  753. package/src/layouts/PageHeader.stories.tsx +4 -4
  754. package/src/layouts/PageTemplates.stories.tsx +2 -2
  755. package/src/layouts/PaneScaffold.spec.tsx +144 -4
  756. package/src/layouts/PaneScaffold.stories.tsx +61 -10
  757. package/src/layouts/PaneScaffold.tsx +156 -58
  758. package/src/layouts/SafeAreaWrapper/SafeAreaWrapper.stories.tsx +3 -3
  759. package/src/layouts/ScreenToolbar.stories.tsx +6 -23
  760. package/src/layouts/attachments.tsx +4 -4
  761. package/src/layouts/breadcrumbs.tsx +1 -2
  762. package/src/layouts/index.tsx +11 -0
  763. package/src/layouts/layouts.spec.tsx +51 -0
  764. package/src/layouts/page.designLaw.spec.tsx +25 -0
  765. package/src/layouts/page.tsx +48 -11
  766. package/src/layouts/sidebar.tsx +2 -2
  767. package/src/layouts/tags-trigger.spec.tsx +32 -0
  768. package/src/layouts/tags.tsx +6 -9
  769. package/src/layouts/timeline.tsx +5 -5
  770. package/src/shared/useKeyboardInset.native.ts +43 -0
  771. package/src/shared/useKeyboardInset.ts +2 -41
  772. package/src/surfaces.spec.tsx +97 -3
  773. package/src/surfaces.tsx +4 -2
  774. package/src/tamagui.spec.ts +63 -0
  775. package/src/textAccentSecondary.spec.tsx +187 -0
  776. package/src/views/Calendar.tsx +9 -8
  777. package/src/views/Dashboard.stories.tsx +38 -1
  778. package/src/views/Dashboard.tsx +132 -29
  779. package/src/views/Gantt.scroll.spec.tsx +120 -0
  780. package/src/views/Gantt.spec.tsx +376 -0
  781. package/src/views/Gantt.stories.tsx +75 -2
  782. package/src/views/Gantt.tsx +567 -99
  783. package/src/views/Kanban.native.tsx +2 -2
  784. package/src/views/Kanban.spec.tsx +11 -0
  785. package/src/views/Kanban.tsx +2 -2
  786. package/src/views/ReportBuilder.tsx +4 -4
  787. package/src/views/TreeView.reveal.spec.tsx +167 -0
  788. package/src/views/TreeView.reveal.stories.tsx +115 -0
  789. package/src/views/TreeView.scroll.spec.tsx +196 -0
  790. package/src/views/TreeView.spec.tsx +1 -1
  791. package/src/views/TreeView.tsx +159 -16
  792. package/src/views/ganttMath.ts +142 -4
  793. package/src/views/index.ts +44 -1
  794. package/src/views/treeViewReveal.spec.ts +83 -0
  795. package/src/views/treeViewReveal.ts +45 -0
  796. package/src/views/views.spec.tsx +52 -12
  797. package/types/Accordion/index.d.ts.map +1 -1
  798. package/types/Button.d.ts +12 -2
  799. package/types/Button.d.ts.map +1 -1
  800. package/types/Card.d.ts.map +1 -1
  801. package/types/CardFooter.d.ts +2 -1
  802. package/types/CardFooter.d.ts.map +1 -1
  803. package/types/CopyField/index.d.ts.map +1 -1
  804. package/types/DropdownMenu/index.d.ts +22 -0
  805. package/types/DropdownMenu/index.d.ts.map +1 -1
  806. package/types/Meter/index.d.ts.map +1 -1
  807. package/types/Meter/meter.d.ts +5 -1
  808. package/types/Meter/meter.d.ts.map +1 -1
  809. package/types/Quote/index.d.ts.map +1 -1
  810. package/types/Tabs/index.d.ts +1 -1
  811. package/types/Tabs/index.d.ts.map +1 -1
  812. package/types/Toast/index.d.ts +16 -0
  813. package/types/Toast/index.d.ts.map +1 -1
  814. package/types/TreeSelect/index.d.ts +9 -1
  815. package/types/TreeSelect/index.d.ts.map +1 -1
  816. package/types/actions/DestructiveAction.d.ts.map +1 -1
  817. package/types/charts/Axis.d.ts.map +1 -1
  818. package/types/charts/BarChart.d.ts.map +1 -1
  819. package/types/charts/ChartDataView.d.ts +22 -0
  820. package/types/charts/ChartDataView.d.ts.map +1 -0
  821. package/types/charts/ChartSurface.d.ts +4 -1
  822. package/types/charts/ChartSurface.d.ts.map +1 -1
  823. package/types/charts/LineChart.d.ts.map +1 -1
  824. package/types/charts/PieChart.d.ts +1 -1
  825. package/types/charts/PieChart.d.ts.map +1 -1
  826. package/types/charts/Sparkline.d.ts +3 -1
  827. package/types/charts/Sparkline.d.ts.map +1 -1
  828. package/types/charts/accessibility.d.ts +3 -0
  829. package/types/charts/accessibility.d.ts.map +1 -1
  830. package/types/charts/index.d.ts +1 -0
  831. package/types/charts/index.d.ts.map +1 -1
  832. package/types/charts/math.d.ts +12 -0
  833. package/types/charts/math.d.ts.map +1 -1
  834. package/types/charts/series.d.ts +1 -1
  835. package/types/charts/series.d.ts.map +1 -1
  836. package/types/charts/svg.d.ts +18 -2
  837. package/types/charts/svg.d.ts.map +1 -1
  838. package/types/code/CodeBlock/index.d.ts.map +1 -1
  839. package/types/componentColors.d.ts +1 -4
  840. package/types/componentColors.d.ts.map +1 -1
  841. package/types/feedback/ConfirmDialog.d.ts.map +1 -1
  842. package/types/feedback/NotifyHost.d.ts +3 -1
  843. package/types/feedback/NotifyHost.d.ts.map +1 -1
  844. package/types/feedback/copy.d.ts +12 -2
  845. package/types/feedback/copy.d.ts.map +1 -1
  846. package/types/feedback/index.d.ts +1 -1
  847. package/types/feedback/index.d.ts.map +1 -1
  848. package/types/feedback/notify.d.ts.map +1 -1
  849. package/types/feedback/route.d.ts +3 -0
  850. package/types/feedback/route.d.ts.map +1 -1
  851. package/types/feedback/store.d.ts +2 -0
  852. package/types/feedback/store.d.ts.map +1 -1
  853. package/types/icons/lucide.d.ts +1 -1
  854. package/types/icons/lucide.d.ts.map +1 -1
  855. package/types/images/Image/ImageFrame.d.ts.map +1 -1
  856. package/types/images/SvgUri/index.native.d.ts +4 -3
  857. package/types/images/SvgUri/index.native.d.ts.map +1 -1
  858. package/types/layouts/AsyncBoundary.d.ts.map +1 -1
  859. package/types/layouts/EmptyState.d.ts.map +1 -1
  860. package/types/layouts/PaneScaffold.d.ts +27 -5
  861. package/types/layouts/PaneScaffold.d.ts.map +1 -1
  862. package/types/layouts/breadcrumbs.d.ts.map +1 -1
  863. package/types/layouts/index.d.ts +1 -0
  864. package/types/layouts/index.d.ts.map +1 -1
  865. package/types/layouts/page.d.ts +10 -5
  866. package/types/layouts/page.d.ts.map +1 -1
  867. package/types/layouts/tags.d.ts.map +1 -1
  868. package/types/shared/useKeyboardInset.d.ts +1 -14
  869. package/types/shared/useKeyboardInset.d.ts.map +1 -1
  870. package/types/shared/useKeyboardInset.native.d.ts +16 -0
  871. package/types/shared/useKeyboardInset.native.d.ts.map +1 -0
  872. package/types/surfaces.d.ts.map +1 -1
  873. package/types/views/Calendar.d.ts.map +1 -1
  874. package/types/views/Dashboard.d.ts +7 -3
  875. package/types/views/Dashboard.d.ts.map +1 -1
  876. package/types/views/Gantt.d.ts +132 -13
  877. package/types/views/Gantt.d.ts.map +1 -1
  878. package/types/views/TreeView.d.ts +10 -1
  879. package/types/views/TreeView.d.ts.map +1 -1
  880. package/types/views/ganttMath.d.ts +73 -0
  881. package/types/views/ganttMath.d.ts.map +1 -1
  882. package/types/views/index.d.ts +2 -2
  883. package/types/views/index.d.ts.map +1 -1
  884. package/types/views/treeViewReveal.d.ts +11 -0
  885. package/types/views/treeViewReveal.d.ts.map +1 -0
@@ -52,6 +52,7 @@ import {
52
52
  } from "@tamagui/toast";
53
53
  import { useEffect, useId, useLayoutEffect, useMemo, useRef, useSyncExternalStore } from "react";
54
54
  import type { CSSProperties, ReactNode } from "react";
55
+ import { AccessibilityInfo } from "react-native";
55
56
  import { useTranslation } from "../shared/i18n";
56
57
  import {
57
58
  SizableText,
@@ -221,6 +222,9 @@ function paintToastFrame(
221
222
  attrs: { size: string; density: string; nestedPx: number; edgeColor?: string },
222
223
  ) {
223
224
  if (!node) return;
225
+ // Native host refs are not HTMLElements. Native already binds testID /
226
+ // data-* via dataAttrs and the intent edge via borderStartWidth.
227
+ if (typeof node.setAttribute !== "function") return;
224
228
  node.setAttribute("data-testid", "toast");
225
229
  node.setAttribute("data-size", attrs.size);
226
230
  node.setAttribute("data-density", attrs.density);
@@ -230,6 +234,42 @@ function paintToastFrame(
230
234
  if (attrs.edgeColor) node.style.borderInlineStartColor = attrs.edgeColor;
231
235
  }
232
236
 
237
+ /**
238
+ * Spoken confirm. Tamagui's ToastAnnounce portal is web-only
239
+ * (`announceTextContent` is null off-web in ToastImpl), so native VoiceOver
240
+ * never heard CopyField's "Copied to clipboard." Put the title on the
241
+ * frame and announce it the same way field errors do.
242
+ */
243
+ function spokenToastText(title: ReactNode, description?: ReactNode): string | undefined {
244
+ const chunks: string[] = [];
245
+ if (typeof title === "string" && title.trim()) chunks.push(title.trim());
246
+ if (typeof description === "string" && description.trim()) chunks.push(description.trim());
247
+ return chunks.length ? chunks.join(". ") : undefined;
248
+ }
249
+
250
+ function useAnnounceToast(text: string | undefined) {
251
+ useEffect(() => {
252
+ if (isWeb || !text) return;
253
+ AccessibilityInfo.announceForAccessibility(text);
254
+ }, [text]);
255
+ }
256
+
257
+ export function nativeToastA11y(text: string | undefined, hasControls: boolean, web = isWeb) {
258
+ if (web) return {};
259
+ // ToastImplFrame defaults to tabIndex:0, which Tamagui maps to accessible.
260
+ // Explicit false keeps native controls from disappearing inside that group.
261
+ if (!text || hasControls) return { accessible: false as const };
262
+ return {
263
+ accessible: true as const,
264
+ accessibilityLabel: text,
265
+ };
266
+ }
267
+
268
+ /** Native View controls need accessible as well as their button role and label. */
269
+ export function nativeToastControlA11y(web = isWeb) {
270
+ return web ? {} : { accessible: true as const };
271
+ }
272
+
233
273
  // Grown transparent press target. Stays UNPAINTED — LC-71 ring lives on the
234
274
  // inner pill via `.mp-chip-dismiss:focus-visible .mp-chip-dismiss-ring`.
235
275
  const ToastActionTarget = styled(View, {
@@ -243,12 +283,14 @@ const ToastActionTarget = styled(View, {
243
283
  alignItems: "center",
244
284
  justifyContent: "center",
245
285
  flexShrink: 0,
246
- opacity: 0.9,
286
+ // No REST dim. The label is $color11 — the lowest AA-safe step of the hue —
287
+ // sitting straight on the toast fill, so it carries no headroom for a
288
+ // multiplier: 0.9 composited every light intent under 4.5 (MPO-128). Hover
289
+ // and press read off the pill's own fill instead.
247
290
  outlineWidth: 0,
248
- hoverStyle: { opacity: 1 },
249
291
  pressStyle: { opacity: 0.95 },
250
292
  focusStyle: { outlineWidth: 0 },
251
- focusVisibleStyle: { opacity: 1, outlineWidth: 0 },
293
+ focusVisibleStyle: { outlineWidth: 0 },
252
294
  });
253
295
 
254
296
  const ToastActionPill = styled(View, {
@@ -423,7 +465,15 @@ function ToastBody({
423
465
  }
424
466
  return (
425
467
  <>
426
- <View flexShrink={0} height={iconPx} justifyContent="center" marginTop={1}>
468
+ <View
469
+ flexShrink={0}
470
+ height={iconPx}
471
+ justifyContent="center"
472
+ marginTop={1}
473
+ accessible={false}
474
+ accessibilityElementsHidden
475
+ importantForAccessibility="no"
476
+ >
427
477
  <Icon size={iconPx} weight="fill" color={iconColor} />
428
478
  </View>
429
479
  <YStack flexGrow={1} flexShrink={1} gap="$1" minWidth={0} justifyContent="center">
@@ -512,6 +562,8 @@ function ToastInner({
512
562
  edgeColor,
513
563
  } = useToastVisuals(intent, compact);
514
564
  const showClose = dismissible ?? onDismiss != null;
565
+ const spoken = spokenToastText(title, description);
566
+ useAnnounceToast(spoken);
515
567
  const frameRef = useRef<HTMLElement | null>(null);
516
568
  useLayoutEffect(() => {
517
569
  paintToastFrame(frameRef.current, {
@@ -527,8 +579,15 @@ function ToastInner({
527
579
  : undefined;
528
580
  return (
529
581
  <XStack
530
- role="status"
531
- aria-live="polite"
582
+ {...(isWeb
583
+ ? {
584
+ role: "status" as const,
585
+ "aria-live": "polite" as const,
586
+ "aria-atomic": true,
587
+ "aria-label": spoken,
588
+ }
589
+ : {})}
590
+ {...nativeToastA11y(spoken, action != null || showClose)}
532
591
  className="mp-toast"
533
592
  transition={knobProps.transition}
534
593
  {...frameProps}
@@ -550,6 +609,7 @@ function ToastInner({
550
609
  />
551
610
  {action && (
552
611
  <ToastActionTarget
612
+ {...nativeToastControlA11y()}
553
613
  className="mp-chip-dismiss"
554
614
  {...toastActionPressProps(nestedPx)}
555
615
  aria-label={action.altText ?? action.label}
@@ -571,6 +631,7 @@ function ToastInner({
571
631
  )}
572
632
  {showClose && (
573
633
  <ToastCloseTarget
634
+ {...nativeToastControlA11y()}
574
635
  className="mp-chip-dismiss"
575
636
  aria-label={t("Dismiss notification")}
576
637
  alignSelf={description ? "flex-start" : "center"}
@@ -628,6 +689,8 @@ function ToastItemInner({ entry, isTop, compact }: ToastItemProps) {
628
689
  // Store-resolved policy: 0 = sticky/persistent (never auto-expires).
629
690
  const duration = entry.duration === 0 ? Number.POSITIVE_INFINITY : entry.duration;
630
691
  const assertive = entry.intent === "error" || entry.intent === "warning";
692
+ const spoken = spokenToastText(entry.title, entry.description);
693
+ useAnnounceToast(entry.open ? spoken : undefined);
631
694
  const frameRef = useRef<HTMLElement | null>(null);
632
695
  useLayoutEffect(() => {
633
696
  paintToastFrame(frameRef.current, {
@@ -645,6 +708,8 @@ function ToastItemInner({ entry, isTop, compact }: ToastItemProps) {
645
708
  }}
646
709
  duration={duration}
647
710
  type={assertive ? "foreground" : "background"}
711
+ {...(isWeb ? { "aria-label": spoken } : {})}
712
+ {...nativeToastA11y(spoken, entry.action != null || entry.dismissible)}
648
713
  className="mp-toast"
649
714
  transition={knobProps.transition}
650
715
  enterStyle={enterExit}
@@ -668,6 +733,7 @@ function ToastItemInner({ entry, isTop, compact }: ToastItemProps) {
668
733
  {entry.action && (
669
734
  <TamaguiToast.Action altText={entry.action.altText ?? entry.action.label} asChild>
670
735
  <ToastActionTarget
736
+ {...nativeToastControlA11y()}
671
737
  className="mp-chip-dismiss"
672
738
  {...toastActionPressProps(nestedPx)}
673
739
  // Toast.Action defaults to aria-label "Close"; announce the action.
@@ -692,6 +758,7 @@ function ToastItemInner({ entry, isTop, compact }: ToastItemProps) {
692
758
  {entry.dismissible && (
693
759
  <TamaguiToast.Close asChild>
694
760
  <ToastCloseTarget
761
+ {...nativeToastControlA11y()}
695
762
  className="mp-chip-dismiss"
696
763
  aria-label={t("Dismiss notification")}
697
764
  {...toastClosePressProps(entry.action != null, closeVisual)}
@@ -66,6 +66,14 @@ export interface TreeSelectProps extends Omit<GetProps<typeof YStack>, "children
66
66
  open?: boolean;
67
67
  onOpenChange?: (open: boolean) => void;
68
68
  defaultExpandedIds?: string[];
69
+ /**
70
+ * MPO-283 — accessible name for the trigger. `GetProps<typeof YStack>`
71
+ * already admitted this prop, but it landed on the outer wrapper, which is
72
+ * not an accessibility element on iOS, so nothing read it. It is routed to
73
+ * the trigger now. `aria-label` is accepted as an alias.
74
+ */
75
+ accessibilityLabel?: string;
76
+ "aria-label"?: string;
69
77
  }
70
78
 
71
79
  function defaultNodeIcon(hasChildren: boolean, isExpanded: boolean, iconSize: number) {
@@ -134,6 +142,24 @@ function TreeSelectRows({
134
142
  aria-expanded={hasChildren ? isExpanded : undefined}
135
143
  aria-selected={isSelected}
136
144
  aria-level={depth + 1}
145
+ // MPO-283: the aria-* above are web-only. Without the RN spellings
146
+ // a row is not an accessibility element on iOS, so the whole tree
147
+ // came back as loose StaticText with no role and no selected state.
148
+ // `role` is overridden too: RN prefers it over accessibilityRole,
149
+ // and `treeitem` leaves the element out of the iOS tree the same
150
+ // way `radio` does (measured, iOS 26.2).
151
+ {...(!isWeb
152
+ ? {
153
+ accessible: true,
154
+ role: "button" as const,
155
+ accessibilityRole: "button" as const,
156
+ accessibilityLabel: node.label,
157
+ accessibilityState: {
158
+ selected: isSelected,
159
+ ...(hasChildren ? { expanded: isExpanded } : undefined),
160
+ },
161
+ }
162
+ : undefined)}
137
163
  data-treeselect-row={node.id}
138
164
  data-treeselect-index={String(index)}
139
165
  data-depth={String(depth)}
@@ -181,6 +207,16 @@ function TreeSelectRows({
181
207
  ? t("Collapse {{label}}", { label: node.label })
182
208
  : t("Expand {{label}}", { label: node.label })
183
209
  }
210
+ // MPO-283: the aria-label above never reaches native.
211
+ {...(!isWeb
212
+ ? {
213
+ accessible: true,
214
+ accessibilityRole: "button" as const,
215
+ accessibilityLabel: isExpanded
216
+ ? t("Collapse {{label}}", { label: node.label })
217
+ : t("Expand {{label}}", { label: node.label }),
218
+ }
219
+ : undefined)}
184
220
  width={expandIconSize}
185
221
  height={expandIconSize}
186
222
  alignItems="center"
@@ -321,6 +357,7 @@ function Trigger({
321
357
  triggerRef,
322
358
  sizeToken,
323
359
  borderRadius,
360
+ accessibilityLabel,
324
361
  }: {
325
362
  display?: string;
326
363
  placeholder: string;
@@ -328,6 +365,7 @@ function Trigger({
328
365
  disabled: boolean;
329
366
  id?: string;
330
367
  labelled: boolean;
368
+ accessibilityLabel?: string;
331
369
  onToggle: () => void;
332
370
  triggerRef: (node: HTMLElement | null) => void;
333
371
  sizeToken: string;
@@ -349,8 +387,21 @@ function Trigger({
349
387
  role="combobox"
350
388
  aria-haspopup="tree"
351
389
  aria-expanded={open}
352
- aria-label={labelled ? undefined : placeholder}
390
+ aria-label={accessibilityLabel ?? (labelled ? undefined : placeholder)}
353
391
  id={id}
392
+ // MPO-283 (same family as ToggleGroup / RadioGroup): every semantic on
393
+ // this trigger above is a web attribute, and tamagui does not map any
394
+ // of them onto React Native, so on iOS the control reached the
395
+ // accessibility tree with no role, no name and no expanded state.
396
+ {...(!isWeb
397
+ ? {
398
+ accessible: true,
399
+ role: "button" as const,
400
+ accessibilityRole: "button" as const,
401
+ accessibilityLabel: accessibilityLabel ?? display ?? placeholder,
402
+ accessibilityState: { disabled, expanded: open },
403
+ }
404
+ : undefined)}
354
405
  tabIndex={disabled || open ? -1 : 0}
355
406
  disabled={disabled}
356
407
  cursor={disabled ? "not-allowed" : "pointer"}
@@ -582,6 +633,7 @@ function FloatingTreeSelect({
582
633
  sizeToken,
583
634
  borderRadius,
584
635
  loading,
636
+ accessibilityLabel,
585
637
  }: {
586
638
  nodes: TreeNode[];
587
639
  value?: string;
@@ -599,6 +651,7 @@ function FloatingTreeSelect({
599
651
  sizeToken: string;
600
652
  borderRadius: number | string;
601
653
  loading?: boolean;
654
+ accessibilityLabel?: string;
602
655
  }) {
603
656
  const treeId = useId();
604
657
  const searchRef = useRef<HTMLInputElement | null>(null);
@@ -695,6 +748,7 @@ function FloatingTreeSelect({
695
748
  triggerRef={panel.setReferenceRef}
696
749
  sizeToken={sizeToken}
697
750
  borderRadius={borderRadius}
751
+ accessibilityLabel={accessibilityLabel}
698
752
  />
699
753
  {panel.mounted && (
700
754
  <FloatingFocusManager context={panel.context} modal={false} initialFocus={-1}>
@@ -772,6 +826,7 @@ function SheetTreeSelect({
772
826
  sizeToken,
773
827
  borderRadius,
774
828
  loading,
829
+ accessibilityLabel,
775
830
  }: {
776
831
  nodes: TreeNode[];
777
832
  value?: string;
@@ -789,6 +844,7 @@ function SheetTreeSelect({
789
844
  sizeToken: string;
790
845
  borderRadius: number | string;
791
846
  loading?: boolean;
847
+ accessibilityLabel?: string;
792
848
  }) {
793
849
  const treeId = useId();
794
850
  const searchRef = useRef<HTMLInputElement | null>(null);
@@ -844,6 +900,7 @@ function SheetTreeSelect({
844
900
  }}
845
901
  sizeToken={sizeToken}
846
902
  borderRadius={borderRadius}
903
+ accessibilityLabel={accessibilityLabel}
847
904
  />
848
905
  }
849
906
  header={
@@ -902,6 +959,8 @@ export function TreeSelect({
902
959
  onOpenChange,
903
960
  defaultExpandedIds,
904
961
  id: idProp,
962
+ accessibilityLabel,
963
+ "aria-label": ariaLabel,
905
964
  ...stackProps
906
965
  }: TreeSelectProps) {
907
966
  if (isWeb) ensureKeyboardModalityTracking();
@@ -965,6 +1024,7 @@ export function TreeSelect({
965
1024
  sizeToken: String(knobProps.sizeToken),
966
1025
  borderRadius: knobProps.borderRadius.borderRadius,
967
1026
  loading,
1027
+ accessibilityLabel: accessibilityLabel ?? ariaLabel,
968
1028
  };
969
1029
 
970
1030
  const core = shouldUseSheet ? (
@@ -1,6 +1,6 @@
1
1
  import type { Meta, StoryObj } from "@storybook/react-native-web-vite";
2
- import { Text, YStack } from "tamagui";
3
- import { Unspaced } from "./tamagui";
2
+ import { Text } from "./Text";
3
+ import { Unspaced, YStack } from "./tamagui";
4
4
 
5
5
  const meta: Meta<typeof Unspaced> = {
6
6
  title: "Components/Unspaced",
@@ -1,6 +1,6 @@
1
1
  import type { Meta, StoryObj } from "@storybook/react-native-web-vite";
2
- import { Text, YStack } from "tamagui";
3
- import { VisuallyHidden } from "./tamagui";
2
+ import { Text } from "./Text";
3
+ import { VisuallyHidden, YStack } from "./tamagui";
4
4
 
5
5
  const meta: Meta<typeof VisuallyHidden> = {
6
6
  title: "Components/VisuallyHidden",
@@ -2,6 +2,8 @@
2
2
  * @vitest-environment jsdom
3
3
  */
4
4
 
5
+ import { readFileSync } from "node:fs";
6
+ import { resolve } from "node:path";
5
7
  import { fireEvent, screen, waitFor } from "@testing-library/react";
6
8
  import { renderWithProviders } from "@multiplatform.one/test-utils";
7
9
  import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
@@ -252,7 +254,7 @@ describe("DestructiveAction", () => {
252
254
  await waitFor(() => expect(onAction).toHaveBeenCalledTimes(1));
253
255
  });
254
256
 
255
- it("typed-confirm input border uses theme tokens, not #ccc", async () => {
257
+ it("typed-confirm field is a Tamagui Input (native-safe), not a raw HTML input with #ccc", async () => {
256
258
  renderWithProviders(
257
259
  <DestructiveAction
258
260
  severity="high"
@@ -264,8 +266,22 @@ describe("DestructiveAction", () => {
264
266
  );
265
267
  fireEvent.click(screen.getByText("Delete project"));
266
268
  await waitFor(() => expect(alertdialog()).toBeTruthy());
267
- const input = alertdialog()?.querySelector("input") as HTMLInputElement;
269
+ const marked = alertdialog()?.querySelector("[data-mp-confirm-expected]");
270
+ expect(marked).toBeTruthy();
271
+ const input =
272
+ marked instanceof HTMLInputElement
273
+ ? marked
274
+ : (marked?.querySelector("input") as HTMLInputElement | null);
268
275
  expect(input).toBeTruthy();
269
- expect(input.getAttribute("style") ?? input.style.cssText).not.toMatch(/#ccc/i);
276
+ expect(input!.getAttribute("style") ?? input!.style.cssText).not.toMatch(/#ccc/i);
277
+ expect(alertdialog()?.querySelector("[data-mp-confirm-prompt]")?.textContent).toContain(
278
+ 'Type "my-project" to confirm.',
279
+ );
280
+ });
281
+
282
+ it("typed-confirm TSX has no HTML span/input hosts (MPO-165)", () => {
283
+ const src = readFileSync(resolve(process.cwd(), "src/actions/DestructiveAction.tsx"), "utf8");
284
+ expect(src).not.toMatch(/<span[\s>]/);
285
+ expect(src).not.toMatch(/<input[\s>]/);
270
286
  });
271
287
  });
@@ -8,7 +8,7 @@
8
8
  import { Button, formatActionLabel, type ButtonProps } from "@multiplatform.one/forms";
9
9
  import { useCallback, useState, type ReactNode } from "react";
10
10
  import { useTranslation } from "../shared/i18n";
11
- import { Paragraph, YStack } from "tamagui";
11
+ import { Input, Paragraph, YStack } from "tamagui";
12
12
  import { ConfirmDialog } from "../feedback/ConfirmDialog";
13
13
  import { withInterp } from "../shared/t";
14
14
  import {
@@ -211,24 +211,19 @@ export function DestructiveAction({
211
211
  dialogCtx.expectedText != null ? (
212
212
  <YStack gap="$3">
213
213
  {consequence ? <Paragraph size="$3">{consequence}</Paragraph> : null}
214
- <span data-mp-confirm-prompt="">{typedPrompt}</span>
215
- <input
214
+ <Paragraph size="$3" data-mp-confirm-prompt="">
215
+ {typedPrompt}
216
+ </Paragraph>
217
+ <Input
216
218
  value={typedText}
217
- onChange={(e) => setTypedText(e.target.value)}
219
+ onChangeText={setTypedText}
218
220
  placeholder={dialogCtx.expectedText}
219
221
  autoCapitalize="none"
220
- autoCorrect="off"
222
+ autoCorrect={false}
221
223
  spellCheck={false}
222
224
  data-mp-confirm-expected=""
223
- style={{
224
- width: "100%",
225
- padding: "8px 12px",
226
- borderRadius: 8,
227
- border: "1px solid var(--borderColor, var(--c-color6, currentColor))",
228
- background: "var(--background, transparent)",
229
- color: "inherit",
230
- font: "inherit",
231
- }}
225
+ accessibilityLabel={typedPrompt ?? undefined}
226
+ width="100%"
232
227
  />
233
228
  </YStack>
234
229
  ) : (
@@ -1,6 +1,6 @@
1
1
  import type { ScaleBand, ScaleLinear, ScalePoint } from "d3-scale";
2
2
  import { formatAxisTick, getLinearTicks, truncateLabel } from "./math";
3
- import { G, Line, SvgText } from "./svg";
3
+ import { G, Line, SvgText, chartChromeProps } from "./svg";
4
4
  import type { PlotArea } from "./types";
5
5
  import { useChartTheme } from "./useChartTheme";
6
6
 
@@ -47,6 +47,7 @@ export function XAxis({
47
47
  <G>
48
48
  {showLine ? (
49
49
  <Line
50
+ {...chartChromeProps("axis")}
50
51
  x1={plot.x}
51
52
  y1={y}
52
53
  x2={plot.x + plot.width}
@@ -64,6 +65,7 @@ export function XAxis({
64
65
  <G key={`${value}-${index}`}>
65
66
  {showTicks ? (
66
67
  <Line
68
+ {...chartChromeProps("axis")}
67
69
  x1={center}
68
70
  y1={y}
69
71
  x2={center}
@@ -130,6 +132,7 @@ export function YAxis({
130
132
  <G>
131
133
  {showLine ? (
132
134
  <Line
135
+ {...chartChromeProps("axis")}
133
136
  x1={plot.x}
134
137
  y1={plot.y}
135
138
  x2={plot.x}
@@ -144,6 +147,7 @@ export function YAxis({
144
147
  <G key={`${value}-${index}`}>
145
148
  {showGrid ? (
146
149
  <Line
150
+ {...chartChromeProps("grid")}
147
151
  x1={plot.x}
148
152
  y1={y}
149
153
  x2={plot.x + plot.width}
@@ -154,6 +158,7 @@ export function YAxis({
154
158
  ) : null}
155
159
  {showTicks ? (
156
160
  <Line
161
+ {...chartChromeProps("axis")}
157
162
  x1={plot.x - TICK_LENGTH}
158
163
  y1={y}
159
164
  x2={plot.x}
@@ -1,8 +1,9 @@
1
1
  import { useTranslation } from "../shared/i18n";
2
2
  import type { YStackProps } from "tamagui";
3
3
  import { XAxis, YAxis } from "./Axis";
4
+ import { ChartDataFrame } from "./ChartDataView";
4
5
  import { ChartSurface } from "./ChartSurface";
5
- import { describeChart, describeDatum } from "./accessibility";
6
+ import { chartDatumText, describeChart, describeDatum } from "./accessibility";
6
7
  import { computeCartesianPlot, resolveSeriesFills, thinCategories } from "./composeChart";
7
8
  import {
8
9
  createBandScale,
@@ -83,73 +84,87 @@ export function BarChart({
83
84
  const interactive = Boolean(onDatumPress || onDatumHoverIn || onDatumHoverOut);
84
85
 
85
86
  return (
86
- <ChartSurface label={ariaLabel} height={height} width={width} {...stackProps}>
87
- {(size) => {
88
- const domain = domainProp ?? valueDomain(data.map((datum) => datum.value));
89
- // Explicit domains stay literal (nice: false) so a shared 0–255
90
- // scale does not drift to 0–260. Auto domains still nice for ticks.
91
- const nice = domainProp ? false : undefined;
92
- // Ticks come from the domain alone, so the margin scale needs no
93
- // meaningful range yet — the plot rectangle depends on label widths.
94
- const marginScale = createLinearScale({ domain, range: [0, 1], nice });
95
- const tickValues = getLinearTicks(marginScale, yTicks);
96
- const plot = computeCartesianPlot(size, {
97
- showXAxis,
98
- showYAxis,
99
- yTickLabels: tickValues.map((value) => format(value)),
100
- fontSize: labelFontSize,
101
- });
102
- if (plot.width <= 0 || plot.height <= 0 || data.length === 0) return null;
103
- const xScale = createBandScale({
104
- domain: data.map((datum) => datum.label),
105
- range: [plot.x, plot.x + plot.width],
106
- });
107
- const yScale = createLinearScale({
108
- domain,
109
- range: [plot.y + plot.height, plot.y],
110
- nice,
111
- });
112
- return (
113
- <>
114
- {showYAxis || showGrid ? (
115
- <YAxis
87
+ <ChartDataFrame data={data} title={title} valueFormatter={valueFormatter} width={width}>
88
+ <ChartSurface
89
+ label={ariaLabel}
90
+ proof={{
91
+ kind: "bar",
92
+ separated: true,
93
+ datumText: false,
94
+ datumValues: chartDatumText(data, valueFormatter),
95
+ datumCount: data.length,
96
+ }}
97
+ height={height}
98
+ width={width}
99
+ {...stackProps}
100
+ >
101
+ {(size) => {
102
+ const domain = domainProp ?? valueDomain(data.map((datum) => datum.value));
103
+ // Explicit domains stay literal (nice: false) so a shared 0–255
104
+ // scale does not drift to 0–260. Auto domains still nice for ticks.
105
+ const nice = domainProp ? false : undefined;
106
+ // Ticks come from the domain alone, so the margin scale needs no
107
+ // meaningful range yet — the plot rectangle depends on label widths.
108
+ const marginScale = createLinearScale({ domain, range: [0, 1], nice });
109
+ const tickValues = getLinearTicks(marginScale, yTicks);
110
+ const plot = computeCartesianPlot(size, {
111
+ showXAxis,
112
+ showYAxis,
113
+ yTickLabels: tickValues.map((value) => format(value)),
114
+ fontSize: labelFontSize,
115
+ });
116
+ if (plot.width <= 0 || plot.height <= 0 || data.length === 0) return null;
117
+ const xScale = createBandScale({
118
+ domain: data.map((datum) => datum.label),
119
+ range: [plot.x, plot.x + plot.width],
120
+ });
121
+ const yScale = createLinearScale({
122
+ domain,
123
+ range: [plot.y + plot.height, plot.y],
124
+ nice,
125
+ });
126
+ return (
127
+ <>
128
+ {showYAxis || showGrid ? (
129
+ <YAxis
130
+ plot={plot}
131
+ scale={yScale}
132
+ ticks={yTicks}
133
+ tickFormat={(value) => format(value)}
134
+ showLabels={showYAxis}
135
+ showGrid={showGrid}
136
+ />
137
+ ) : null}
138
+ <BarSeries
139
+ data={data}
140
+ xScale={xScale}
141
+ yScale={yScale}
116
142
  plot={plot}
117
- scale={yScale}
118
- ticks={yTicks}
119
- tickFormat={(value) => format(value)}
120
- showLabels={showYAxis}
121
- showGrid={showGrid}
143
+ fills={fills}
144
+ onDatumPress={onDatumPress}
145
+ onDatumHoverIn={onDatumHoverIn}
146
+ onDatumHoverOut={onDatumHoverOut}
147
+ datumLabel={
148
+ interactive
149
+ ? (datum) => describeDatum({ datum, formatValue: valueFormatter })
150
+ : undefined
151
+ }
122
152
  />
123
- ) : null}
124
- <BarSeries
125
- data={data}
126
- xScale={xScale}
127
- yScale={yScale}
128
- plot={plot}
129
- fills={fills}
130
- onDatumPress={onDatumPress}
131
- onDatumHoverIn={onDatumHoverIn}
132
- onDatumHoverOut={onDatumHoverOut}
133
- datumLabel={
134
- interactive
135
- ? (datum) => describeDatum({ datum, formatValue: valueFormatter })
136
- : undefined
137
- }
138
- />
139
- {showXAxis ? (
140
- <XAxis
141
- plot={plot}
142
- scale={xScale}
143
- tickValues={thinCategories(
144
- data.map((datum) => datum.label),
145
- plot.width,
146
- labelFontSize,
147
- )}
148
- />
149
- ) : null}
150
- </>
151
- );
152
- }}
153
- </ChartSurface>
153
+ {showXAxis ? (
154
+ <XAxis
155
+ plot={plot}
156
+ scale={xScale}
157
+ tickValues={thinCategories(
158
+ data.map((datum) => datum.label),
159
+ plot.width,
160
+ labelFontSize,
161
+ )}
162
+ />
163
+ ) : null}
164
+ </>
165
+ );
166
+ }}
167
+ </ChartSurface>
168
+ </ChartDataFrame>
154
169
  );
155
170
  }