@multiplatform.one/components 7.11.0 → 7.15.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 (413) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/Accordion/index.cjs +2 -6
  3. package/dist/cjs/Accordion/index.native.js +2 -6
  4. package/dist/cjs/Accordion/index.native.js.map +1 -1
  5. package/dist/cjs/AnimateHeight/index.cjs +1 -3
  6. package/dist/cjs/AnimateHeight/index.native.js +1 -3
  7. package/dist/cjs/AnimateHeight/index.native.js.map +1 -1
  8. package/dist/cjs/Chip/index.cjs +8 -1
  9. package/dist/cjs/Chip/index.native.js +8 -1
  10. package/dist/cjs/Chip/index.native.js.map +1 -1
  11. package/dist/cjs/SheetModal/index.native.js +70 -22
  12. package/dist/cjs/SheetModal/index.native.js.map +1 -1
  13. package/dist/cjs/Tabs/index.cjs +2 -6
  14. package/dist/cjs/Tabs/index.native.js +2 -6
  15. package/dist/cjs/Tabs/index.native.js.map +1 -1
  16. package/dist/cjs/Text.cjs +2 -0
  17. package/dist/cjs/Text.native.js +2 -0
  18. package/dist/cjs/Text.native.js.map +1 -1
  19. package/dist/cjs/TreeSelect/index.cjs +55 -52
  20. package/dist/cjs/TreeSelect/index.native.js +55 -52
  21. package/dist/cjs/TreeSelect/index.native.js.map +1 -1
  22. package/dist/cjs/Video/PlayerChrome.cjs +3 -9
  23. package/dist/cjs/Video/PlayerChrome.native.js +3 -9
  24. package/dist/cjs/Video/PlayerChrome.native.js.map +1 -1
  25. package/dist/cjs/code/Code/index.cjs +6 -0
  26. package/dist/cjs/code/Code/index.native.js +7 -4
  27. package/dist/cjs/code/Code/index.native.js.map +1 -1
  28. package/dist/cjs/code/CodeBlock/index.cjs +4 -5
  29. package/dist/cjs/code/CodeBlock/index.native.js +4 -5
  30. package/dist/cjs/code/CodeBlock/index.native.js.map +1 -1
  31. package/dist/cjs/icons/themed.cjs +2 -1
  32. package/dist/cjs/icons/themed.native.js +2 -1
  33. package/dist/cjs/icons/themed.native.js.map +1 -1
  34. package/dist/cjs/knobImmuneExports.cjs +3 -3
  35. package/dist/cjs/knobImmuneExports.native.js +3 -3
  36. package/dist/cjs/layouts/PaneScaffold.cjs +70 -42
  37. package/dist/cjs/layouts/PaneScaffold.native.js +75 -48
  38. package/dist/cjs/layouts/PaneScaffold.native.js.map +1 -1
  39. package/dist/cjs/layouts/page.cjs +2 -1
  40. package/dist/cjs/layouts/page.native.js +2 -1
  41. package/dist/cjs/layouts/page.native.js.map +1 -1
  42. package/dist/cjs/layouts/sidebar.cjs +1 -3
  43. package/dist/cjs/layouts/sidebar.native.js +1 -3
  44. package/dist/cjs/layouts/sidebar.native.js.map +1 -1
  45. package/dist/cjs/surfaces.cjs +0 -32
  46. package/dist/cjs/surfaces.native.js +0 -32
  47. package/dist/cjs/surfaces.native.js.map +1 -1
  48. package/dist/cjs/views/List.cjs +1 -3
  49. package/dist/cjs/views/List.native.js +1 -3
  50. package/dist/cjs/views/List.native.js.map +1 -1
  51. package/dist/cjs/views/Matrix.cjs +568 -0
  52. package/dist/cjs/views/Matrix.native.js +612 -0
  53. package/dist/cjs/views/Matrix.native.js.map +1 -0
  54. package/dist/cjs/views/ganttMath.cjs +2 -0
  55. package/dist/cjs/views/ganttMath.native.js +2 -0
  56. package/dist/cjs/views/ganttMath.native.js.map +1 -1
  57. package/dist/cjs/views/index.cjs +16 -0
  58. package/dist/cjs/views/index.native.js +16 -0
  59. package/dist/cjs/views/index.native.js.map +1 -1
  60. package/dist/cjs/views/matrixMath.cjs +157 -0
  61. package/dist/cjs/views/matrixMath.native.js +229 -0
  62. package/dist/cjs/views/matrixMath.native.js.map +1 -0
  63. package/dist/esm/Accordion/index.mjs +3 -7
  64. package/dist/esm/Accordion/index.mjs.map +1 -1
  65. package/dist/esm/Accordion/index.native.js +3 -7
  66. package/dist/esm/Accordion/index.native.js.map +1 -1
  67. package/dist/esm/AnimateHeight/index.mjs +2 -4
  68. package/dist/esm/AnimateHeight/index.mjs.map +1 -1
  69. package/dist/esm/AnimateHeight/index.native.js +2 -4
  70. package/dist/esm/AnimateHeight/index.native.js.map +1 -1
  71. package/dist/esm/Avatar/getInitials.native.js.map +1 -1
  72. package/dist/esm/Avatar/index.native.js.map +1 -1
  73. package/dist/esm/Badge/index.native.js.map +1 -1
  74. package/dist/esm/Button.native.js.map +1 -1
  75. package/dist/esm/Carousel/index.native.js.map +1 -1
  76. package/dist/esm/Chip/index.mjs +9 -2
  77. package/dist/esm/Chip/index.mjs.map +1 -1
  78. package/dist/esm/Chip/index.native.js +9 -2
  79. package/dist/esm/Chip/index.native.js.map +1 -1
  80. package/dist/esm/Collapsible.native.js.map +1 -1
  81. package/dist/esm/ContextMenu/index.native.js.map +1 -1
  82. package/dist/esm/CopyField/index.native.js.map +1 -1
  83. package/dist/esm/DotIndicator/index.native.js.map +1 -1
  84. package/dist/esm/DropdownMenu/index.native.js.map +1 -1
  85. package/dist/esm/ErrorBoundary/index.native.js.map +1 -1
  86. package/dist/esm/Heading.native.js.map +1 -1
  87. package/dist/esm/Meter/index.native.js.map +1 -1
  88. package/dist/esm/Meter/meter.native.js.map +1 -1
  89. package/dist/esm/Pagination.native.js.map +1 -1
  90. package/dist/esm/ProgressSteps/index.native.js.map +1 -1
  91. package/dist/esm/Quote/index.native.js.map +1 -1
  92. package/dist/esm/Separator/index.native.js.map +1 -1
  93. package/dist/esm/SheetModal/detents.native.js.map +1 -1
  94. package/dist/esm/SheetModal/index.native.js +71 -23
  95. package/dist/esm/SheetModal/index.native.js.map +1 -1
  96. package/dist/esm/Skeleton/index.native.js.map +1 -1
  97. package/dist/esm/SkipLink/index.native.js.map +1 -1
  98. package/dist/esm/SortableList/SortableHandle.native.js.map +1 -1
  99. package/dist/esm/SortableList/index.native.js.map +1 -1
  100. package/dist/esm/SortableList/useSortableRows.native.js.map +1 -1
  101. package/dist/esm/Tabs/index.mjs +3 -7
  102. package/dist/esm/Tabs/index.mjs.map +1 -1
  103. package/dist/esm/Tabs/index.native.js +3 -7
  104. package/dist/esm/Tabs/index.native.js.map +1 -1
  105. package/dist/esm/Text.mjs +3 -1
  106. package/dist/esm/Text.mjs.map +1 -1
  107. package/dist/esm/Text.native.js +3 -1
  108. package/dist/esm/Text.native.js.map +1 -1
  109. package/dist/esm/Toast/index.native.js.map +1 -1
  110. package/dist/esm/Toast/store.native.js.map +1 -1
  111. package/dist/esm/Tooltip/nativePress.native.js.map +1 -1
  112. package/dist/esm/Tooltip/tooltipShared.native.js.map +1 -1
  113. package/dist/esm/TreeSelect/index.mjs +56 -53
  114. package/dist/esm/TreeSelect/index.mjs.map +1 -1
  115. package/dist/esm/TreeSelect/index.native.js +56 -53
  116. package/dist/esm/TreeSelect/index.native.js.map +1 -1
  117. package/dist/esm/TreeSelect/treeSelectModel.native.js.map +1 -1
  118. package/dist/esm/Video/PlayerChrome.mjs +4 -10
  119. package/dist/esm/Video/PlayerChrome.mjs.map +1 -1
  120. package/dist/esm/Video/PlayerChrome.native.js +4 -10
  121. package/dist/esm/Video/PlayerChrome.native.js.map +1 -1
  122. package/dist/esm/Video/VideoFrame.native.js.map +1 -1
  123. package/dist/esm/Video/types.native.js.map +1 -1
  124. package/dist/esm/Wheel/index.native.js.map +1 -1
  125. package/dist/esm/Wizard/index.native.js.map +1 -1
  126. package/dist/esm/actions/ActionBar.native.js.map +1 -1
  127. package/dist/esm/actions/DestructiveAction.native.js.map +1 -1
  128. package/dist/esm/actions/devWarn.native.js.map +1 -1
  129. package/dist/esm/actions/index.native.js.map +1 -1
  130. package/dist/esm/actions/severity.native.js.map +1 -1
  131. package/dist/esm/charts/Axis.native.js.map +1 -1
  132. package/dist/esm/charts/BarChart.native.js.map +1 -1
  133. package/dist/esm/charts/ChartDataView.native.js.map +1 -1
  134. package/dist/esm/charts/ChartSurface.native.js.map +1 -1
  135. package/dist/esm/charts/LineChart.native.js.map +1 -1
  136. package/dist/esm/charts/PieChart.native.js.map +1 -1
  137. package/dist/esm/charts/Sparkline.native.js.map +1 -1
  138. package/dist/esm/charts/accessibility.native.js.map +1 -1
  139. package/dist/esm/charts/composeChart.native.js.map +1 -1
  140. package/dist/esm/charts/index.native.js.map +1 -1
  141. package/dist/esm/charts/math.native.js.map +1 -1
  142. package/dist/esm/charts/series.native.js.map +1 -1
  143. package/dist/esm/charts/svg.native.js.map +1 -1
  144. package/dist/esm/charts/types.native.js.map +1 -1
  145. package/dist/esm/charts/useChartTheme.native.js.map +1 -1
  146. package/dist/esm/code/Code/index.mjs +6 -0
  147. package/dist/esm/code/Code/index.mjs.map +1 -1
  148. package/dist/esm/code/Code/index.native.js +10 -7
  149. package/dist/esm/code/Code/index.native.js.map +1 -1
  150. package/dist/esm/code/CodeBlock/index.mjs +5 -6
  151. package/dist/esm/code/CodeBlock/index.mjs.map +1 -1
  152. package/dist/esm/code/CodeBlock/index.native.js +5 -6
  153. package/dist/esm/code/CodeBlock/index.native.js.map +1 -1
  154. package/dist/esm/code/HighlightedCode/index.native.js.map +1 -1
  155. package/dist/esm/code/Highlighter/index.native.js.map +1 -1
  156. package/dist/esm/code/Pre/index.native.js.map +1 -1
  157. package/dist/esm/code/index.native.js.map +1 -1
  158. package/dist/esm/componentColors.native.js.map +1 -1
  159. package/dist/esm/feedback/ConfirmDialog.native.js.map +1 -1
  160. package/dist/esm/feedback/NotifyHost.native.js.map +1 -1
  161. package/dist/esm/feedback/copy.native.js.map +1 -1
  162. package/dist/esm/feedback/index.native.js.map +1 -1
  163. package/dist/esm/feedback/notify.native.js.map +1 -1
  164. package/dist/esm/feedback/route.native.js.map +1 -1
  165. package/dist/esm/feedback/store.native.js.map +1 -1
  166. package/dist/esm/hooks/index.native.js.map +1 -1
  167. package/dist/esm/hooks/useClipboard.native.js.map +1 -1
  168. package/dist/esm/hooks/useDocumentTitle.native.js.map +1 -1
  169. package/dist/esm/icons/CheckRegular.native.js.map +1 -1
  170. package/dist/esm/icons/MinusRegular.native.js.map +1 -1
  171. package/dist/esm/icons/index.native.js.map +1 -1
  172. package/dist/esm/icons/lucide.native.js.map +1 -1
  173. package/dist/esm/icons/themed.mjs +3 -2
  174. package/dist/esm/icons/themed.mjs.map +1 -1
  175. package/dist/esm/icons/themed.native.js +3 -2
  176. package/dist/esm/icons/themed.native.js.map +1 -1
  177. package/dist/esm/images/Image/ImageFrame.native.js.map +1 -1
  178. package/dist/esm/images/Image/shared.native.js.map +1 -1
  179. package/dist/esm/images/Image/types.native.js.map +1 -1
  180. package/dist/esm/images/index.native.js.map +1 -1
  181. package/dist/esm/index.native.js.map +1 -1
  182. package/dist/esm/knobImmuneExports.mjs +3 -3
  183. package/dist/esm/knobImmuneExports.native.js +3 -3
  184. package/dist/esm/knobImmuneExports.native.js.map +1 -1
  185. package/dist/esm/layouts/AsyncBoundary.native.js.map +1 -1
  186. package/dist/esm/layouts/Debug/index.native.js.map +1 -1
  187. package/dist/esm/layouts/EmptyState.native.js.map +1 -1
  188. package/dist/esm/layouts/KeyboardAvoidingWrapper/behavior.native.js.map +1 -1
  189. package/dist/esm/layouts/PageTemplates.native.js.map +1 -1
  190. package/dist/esm/layouts/PaneScaffold.mjs +70 -42
  191. package/dist/esm/layouts/PaneScaffold.mjs.map +1 -1
  192. package/dist/esm/layouts/PaneScaffold.native.js +75 -48
  193. package/dist/esm/layouts/PaneScaffold.native.js.map +1 -1
  194. package/dist/esm/layouts/SafeAreaWrapper/insets.native.js.map +1 -1
  195. package/dist/esm/layouts/ViewSwitcher.native.js.map +1 -1
  196. package/dist/esm/layouts/attachments.native.js.map +1 -1
  197. package/dist/esm/layouts/breadcrumbs.native.js.map +1 -1
  198. package/dist/esm/layouts/index.native.js.map +1 -1
  199. package/dist/esm/layouts/page.mjs +3 -2
  200. package/dist/esm/layouts/page.mjs.map +1 -1
  201. package/dist/esm/layouts/page.native.js +3 -2
  202. package/dist/esm/layouts/page.native.js.map +1 -1
  203. package/dist/esm/layouts/pageHeadingScope.native.js.map +1 -1
  204. package/dist/esm/layouts/sidebar.mjs +2 -4
  205. package/dist/esm/layouts/sidebar.mjs.map +1 -1
  206. package/dist/esm/layouts/sidebar.native.js +2 -4
  207. package/dist/esm/layouts/sidebar.native.js.map +1 -1
  208. package/dist/esm/layouts/tags.native.js.map +1 -1
  209. package/dist/esm/layouts/timeline.native.js.map +1 -1
  210. package/dist/esm/layouts/toolbar.native.js.map +1 -1
  211. package/dist/esm/shared/actionScan.native.js.map +1 -1
  212. package/dist/esm/shared/i18n.native.js.map +1 -1
  213. package/dist/esm/shared/t.native.js.map +1 -1
  214. package/dist/esm/shared/textRidesText.native.js.map +1 -1
  215. package/dist/esm/shared/useReturnFocusOnClose.native.js.map +1 -1
  216. package/dist/esm/surfaces.mjs +1 -33
  217. package/dist/esm/surfaces.mjs.map +1 -1
  218. package/dist/esm/surfaces.native.js +1 -33
  219. package/dist/esm/surfaces.native.js.map +1 -1
  220. package/dist/esm/tamagui.native.js.map +1 -1
  221. package/dist/esm/testSetup.native.js.map +1 -1
  222. package/dist/esm/utils/setTinted.native.js.map +1 -1
  223. package/dist/esm/utils/unwrapText.native.js.map +1 -1
  224. package/dist/esm/views/Calendar.native.js.map +1 -1
  225. package/dist/esm/views/Dashboard.native.js.map +1 -1
  226. package/dist/esm/views/Gantt.native.js.map +1 -1
  227. package/dist/esm/views/ImageGrid.native.js.map +1 -1
  228. package/dist/esm/views/List.mjs +2 -4
  229. package/dist/esm/views/List.mjs.map +1 -1
  230. package/dist/esm/views/List.native.js +2 -4
  231. package/dist/esm/views/List.native.js.map +1 -1
  232. package/dist/esm/views/Matrix.mjs +543 -0
  233. package/dist/esm/views/Matrix.mjs.map +1 -0
  234. package/dist/esm/views/Matrix.native.js +573 -0
  235. package/dist/esm/views/Matrix.native.js.map +1 -0
  236. package/dist/esm/views/ReportBuilder.native.js.map +1 -1
  237. package/dist/esm/views/TreeView.native.js.map +1 -1
  238. package/dist/esm/views/calendarMath.native.js.map +1 -1
  239. package/dist/esm/views/ganttMath.mjs +1 -1
  240. package/dist/esm/views/ganttMath.mjs.map +1 -1
  241. package/dist/esm/views/ganttMath.native.js +1 -1
  242. package/dist/esm/views/ganttMath.native.js.map +1 -1
  243. package/dist/esm/views/index.mjs +4 -2
  244. package/dist/esm/views/index.mjs.map +1 -1
  245. package/dist/esm/views/index.native.js +4 -2
  246. package/dist/esm/views/index.native.js.map +1 -1
  247. package/dist/esm/views/kanbanDnd.native.js.map +1 -1
  248. package/dist/esm/views/matrixMath.mjs +122 -0
  249. package/dist/esm/views/matrixMath.mjs.map +1 -0
  250. package/dist/esm/views/matrixMath.native.js +191 -0
  251. package/dist/esm/views/matrixMath.native.js.map +1 -0
  252. package/dist/esm/views/treeViewDnd.native.js.map +1 -1
  253. package/dist/esm/views/treeViewLayout.native.js.map +1 -1
  254. package/dist/esm/views/treeViewMotion.native.js.map +1 -1
  255. package/dist/esm/views/treeViewReveal.native.js.map +1 -1
  256. package/dist/jsx/Accordion/index.mjs +3 -7
  257. package/dist/jsx/Accordion/index.mjs.map +1 -1
  258. package/dist/jsx/Accordion/index.native.js +2 -6
  259. package/dist/jsx/Accordion/index.native.js.map +1 -1
  260. package/dist/jsx/AnimateHeight/index.mjs +2 -4
  261. package/dist/jsx/AnimateHeight/index.mjs.map +1 -1
  262. package/dist/jsx/AnimateHeight/index.native.js +1 -3
  263. package/dist/jsx/AnimateHeight/index.native.js.map +1 -1
  264. package/dist/jsx/Chip/index.mjs +9 -2
  265. package/dist/jsx/Chip/index.mjs.map +1 -1
  266. package/dist/jsx/Chip/index.native.js +8 -1
  267. package/dist/jsx/Chip/index.native.js.map +1 -1
  268. package/dist/jsx/SheetModal/index.native.js +70 -22
  269. package/dist/jsx/SheetModal/index.native.js.map +1 -1
  270. package/dist/jsx/Tabs/index.mjs +3 -7
  271. package/dist/jsx/Tabs/index.mjs.map +1 -1
  272. package/dist/jsx/Tabs/index.native.js +2 -6
  273. package/dist/jsx/Tabs/index.native.js.map +1 -1
  274. package/dist/jsx/Text.mjs +3 -1
  275. package/dist/jsx/Text.mjs.map +1 -1
  276. package/dist/jsx/Text.native.js +2 -0
  277. package/dist/jsx/Text.native.js.map +1 -1
  278. package/dist/jsx/TreeSelect/index.mjs +56 -53
  279. package/dist/jsx/TreeSelect/index.mjs.map +1 -1
  280. package/dist/jsx/TreeSelect/index.native.js +55 -52
  281. package/dist/jsx/TreeSelect/index.native.js.map +1 -1
  282. package/dist/jsx/Video/PlayerChrome.mjs +4 -10
  283. package/dist/jsx/Video/PlayerChrome.mjs.map +1 -1
  284. package/dist/jsx/Video/PlayerChrome.native.js +3 -9
  285. package/dist/jsx/Video/PlayerChrome.native.js.map +1 -1
  286. package/dist/jsx/code/Code/index.mjs +6 -0
  287. package/dist/jsx/code/Code/index.mjs.map +1 -1
  288. package/dist/jsx/code/Code/index.native.js +7 -4
  289. package/dist/jsx/code/Code/index.native.js.map +1 -1
  290. package/dist/jsx/code/CodeBlock/index.mjs +5 -6
  291. package/dist/jsx/code/CodeBlock/index.mjs.map +1 -1
  292. package/dist/jsx/code/CodeBlock/index.native.js +4 -5
  293. package/dist/jsx/code/CodeBlock/index.native.js.map +1 -1
  294. package/dist/jsx/icons/themed.mjs +3 -2
  295. package/dist/jsx/icons/themed.mjs.map +1 -1
  296. package/dist/jsx/icons/themed.native.js +2 -1
  297. package/dist/jsx/icons/themed.native.js.map +1 -1
  298. package/dist/jsx/knobImmuneExports.mjs +3 -3
  299. package/dist/jsx/knobImmuneExports.native.js +3 -3
  300. package/dist/jsx/layouts/PaneScaffold.mjs +70 -42
  301. package/dist/jsx/layouts/PaneScaffold.mjs.map +1 -1
  302. package/dist/jsx/layouts/PaneScaffold.native.js +75 -48
  303. package/dist/jsx/layouts/PaneScaffold.native.js.map +1 -1
  304. package/dist/jsx/layouts/page.mjs +3 -2
  305. package/dist/jsx/layouts/page.mjs.map +1 -1
  306. package/dist/jsx/layouts/page.native.js +2 -1
  307. package/dist/jsx/layouts/page.native.js.map +1 -1
  308. package/dist/jsx/layouts/sidebar.mjs +2 -4
  309. package/dist/jsx/layouts/sidebar.mjs.map +1 -1
  310. package/dist/jsx/layouts/sidebar.native.js +1 -3
  311. package/dist/jsx/layouts/sidebar.native.js.map +1 -1
  312. package/dist/jsx/surfaces.mjs +1 -33
  313. package/dist/jsx/surfaces.mjs.map +1 -1
  314. package/dist/jsx/surfaces.native.js +0 -32
  315. package/dist/jsx/surfaces.native.js.map +1 -1
  316. package/dist/jsx/views/List.mjs +2 -4
  317. package/dist/jsx/views/List.mjs.map +1 -1
  318. package/dist/jsx/views/List.native.js +1 -3
  319. package/dist/jsx/views/List.native.js.map +1 -1
  320. package/dist/jsx/views/Matrix.mjs +543 -0
  321. package/dist/jsx/views/Matrix.mjs.map +1 -0
  322. package/dist/jsx/views/Matrix.native.js +612 -0
  323. package/dist/jsx/views/Matrix.native.js.map +1 -0
  324. package/dist/jsx/views/ganttMath.mjs +1 -1
  325. package/dist/jsx/views/ganttMath.mjs.map +1 -1
  326. package/dist/jsx/views/ganttMath.native.js +2 -0
  327. package/dist/jsx/views/ganttMath.native.js.map +1 -1
  328. package/dist/jsx/views/index.mjs +4 -2
  329. package/dist/jsx/views/index.mjs.map +1 -1
  330. package/dist/jsx/views/index.native.js +16 -0
  331. package/dist/jsx/views/index.native.js.map +1 -1
  332. package/dist/jsx/views/matrixMath.mjs +122 -0
  333. package/dist/jsx/views/matrixMath.mjs.map +1 -0
  334. package/dist/jsx/views/matrixMath.native.js +229 -0
  335. package/dist/jsx/views/matrixMath.native.js.map +1 -0
  336. package/package.json +10 -10
  337. package/src/Accordion/Accordion.spec.tsx +20 -0
  338. package/src/Accordion/index.tsx +7 -3
  339. package/src/AnimateHeight/index.tsx +143 -142
  340. package/src/Chip/Chip.borderLadder.spec.tsx +54 -0
  341. package/src/Chip/Chip.pressSlop.spec.tsx +57 -0
  342. package/src/Chip/index.tsx +15 -1
  343. package/src/Heading.native.spec.tsx +1 -1
  344. package/src/Separator/index.tsx +3 -3
  345. package/src/SheetModal/SheetModal.detentLayout.spec.tsx +173 -0
  346. package/src/SheetModal/SheetModal.touch.spec.tsx +63 -0
  347. package/src/SheetModal/index.native.tsx +95 -17
  348. package/src/Tabs/Tabs.hydration.spec.tsx +123 -0
  349. package/src/Tabs/index.tsx +3 -2
  350. package/src/Text.spec.tsx +32 -2
  351. package/src/Text.tsx +7 -6
  352. package/src/Toast/Toast.spec.tsx +50 -0
  353. package/src/Tooltip/Tooltip.spec.tsx +55 -2
  354. package/src/TreeSelect/TreeSelect.spec.tsx +15 -15
  355. package/src/TreeSelect/index.tsx +53 -50
  356. package/src/Video/PlayerChrome.tsx +4 -3
  357. package/src/Wheel/Wheel.spec.tsx +4 -4
  358. package/src/adjacency.l1.spec.tsx +175 -0
  359. package/src/code/Code/code.spec.tsx +2 -19
  360. package/src/code/Code/index.tsx +0 -6
  361. package/src/code/CodeBlock/index.tsx +5 -3
  362. package/src/code/highlightedCode.spec.tsx +2 -2
  363. package/src/code/hostProps.spec.tsx +55 -0
  364. package/src/icons/themed.hydration.spec.tsx +60 -0
  365. package/src/icons/themed.tsx +3 -6
  366. package/src/knobImmuneExports.ts +3 -3
  367. package/src/layouts/PaneScaffold.spec.tsx +148 -2
  368. package/src/layouts/PaneScaffold.stories.tsx +33 -1
  369. package/src/layouts/PaneScaffold.tsx +101 -48
  370. package/src/layouts/page.designLaw.spec.tsx +20 -0
  371. package/src/layouts/page.tsx +2 -0
  372. package/src/layouts/sidebar.tsx +2 -3
  373. package/src/overlayElevation.spec.tsx +39 -51
  374. package/src/surfaces.spec.tsx +13 -10
  375. package/src/surfaces.tsx +4 -33
  376. package/src/tamagui.spec.ts +4 -3
  377. package/src/textAccentSecondary.spec.tsx +100 -2
  378. package/src/views/List.tsx +2 -1
  379. package/src/views/Matrix.spec.tsx +339 -0
  380. package/src/views/Matrix.stories.spec.tsx +68 -0
  381. package/src/views/Matrix.stories.tsx +153 -0
  382. package/src/views/Matrix.tsx +738 -0
  383. package/src/views/ganttMath.ts +4 -2
  384. package/src/views/index.ts +30 -0
  385. package/src/views/matrixMath.spec.ts +237 -0
  386. package/src/views/matrixMath.ts +251 -0
  387. package/src/views/views.spec.tsx +3 -1
  388. package/types/Accordion/index.d.ts.map +1 -1
  389. package/types/AnimateHeight/index.d.ts.map +1 -1
  390. package/types/Chip/index.d.ts.map +1 -1
  391. package/types/Separator/index.d.ts +3 -3
  392. package/types/SheetModal/index.native.d.ts.map +1 -1
  393. package/types/Tabs/index.d.ts.map +1 -1
  394. package/types/Text.d.ts.map +1 -1
  395. package/types/TreeSelect/index.d.ts.map +1 -1
  396. package/types/Video/PlayerChrome.d.ts.map +1 -1
  397. package/types/code/Code/index.d.ts.map +1 -1
  398. package/types/code/CodeBlock/index.d.ts.map +1 -1
  399. package/types/icons/themed.d.ts.map +1 -1
  400. package/types/layouts/PaneScaffold.d.ts +14 -1
  401. package/types/layouts/PaneScaffold.d.ts.map +1 -1
  402. package/types/layouts/page.d.ts.map +1 -1
  403. package/types/layouts/sidebar.d.ts.map +1 -1
  404. package/types/surfaces.d.ts.map +1 -1
  405. package/types/views/List.d.ts.map +1 -1
  406. package/types/views/Matrix.d.ts +102 -0
  407. package/types/views/Matrix.d.ts.map +1 -0
  408. package/types/views/ganttMath.d.ts +4 -0
  409. package/types/views/ganttMath.d.ts.map +1 -1
  410. package/types/views/index.d.ts +3 -1
  411. package/types/views/index.d.ts.map +1 -1
  412. package/types/views/matrixMath.d.ts +114 -0
  413. package/types/views/matrixMath.d.ts.map +1 -0
@@ -0,0 +1,573 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { componentColors, sectionHeading } from "../componentColors.native.js";
3
+ import { AsyncBoundary } from "../layouts/AsyncBoundary.native.js";
4
+ import { Skeleton } from "../Skeleton/index.native.js";
5
+ import { ViewSwitcher } from "../layouts/ViewSwitcher.native.js";
6
+ import { withInterp } from "../shared/t.native.js";
7
+ import { Intent, MIN_PRESS_TARGET, ensureKeyboardModalityTracking, formatNumber, hairline, hairlineWidth, keyboardFocusRingProps, useReadableTextOn, useResolvedKnobs, wasKeyboardFocus } from "@multiplatform.one/theme";
8
+ import React, { useCallback, useMemo, useRef, useState } from "react";
9
+ import { useTranslation } from "../shared/i18n.native.js";
10
+ import { ScrollView as RNScrollView } from "react-native";
11
+ import { ScrollView, Text, XStack, YStack, isWeb } from "tamagui";
12
+ import { formatRangeLabel } from "./ganttMath.native.js";
13
+ import { alignMatrixRange, matrixCellIntensity, matrixCellKey, computeMatrixRange, generateBuckets, matrixMaxValue, summarizeMatrixCells } from "./matrixMath.native.js";
14
+ var CanvasScroller = isWeb ? ScrollView : RNScrollView;
15
+ var hairlineEnd = isWeb ? {
16
+ borderInlineEndWidth: hairlineWidth,
17
+ borderInlineEndStyle: "solid",
18
+ className: "mp-hairline-ie"
19
+ } : {
20
+ borderEndWidth: hairlineWidth
21
+ };
22
+ var FILL_FLOOR = 0.14;
23
+ var ON_FILL_INK_FROM = 0.55;
24
+ var LEGEND_STEPS = [0, 0.25, 0.5, 0.75, 1];
25
+ function CellIntentWrap(param) {
26
+ var {
27
+ intent,
28
+ children
29
+ } = param;
30
+ if (!intent || intent === "accent") return /* @__PURE__ */_jsx(_Fragment, {
31
+ children
32
+ });
33
+ return /* @__PURE__ */_jsx(Intent, {
34
+ name: intent,
35
+ children
36
+ });
37
+ }
38
+ function resolveFill(color, intent) {
39
+ return color !== null && color !== void 0 ? color : intent && intent !== "accent" ? "$color9" : "$accentBackground";
40
+ }
41
+ function fillOpacity(intensity) {
42
+ return FILL_FLOOR + (1 - FILL_FLOOR) * intensity;
43
+ }
44
+ function MatrixCellBox(param) {
45
+ var {
46
+ row,
47
+ bucket,
48
+ summary,
49
+ intensity,
50
+ fill,
51
+ text,
52
+ name,
53
+ width,
54
+ height,
55
+ lastColumn,
56
+ onPress
57
+ } = param;
58
+ var {
59
+ knobProps
60
+ } = useResolvedKnobs();
61
+ var readable = useReadableTextOn(fill);
62
+ var [keyboardRing, setKeyboardRing] = useState(false);
63
+ var empty = summary === void 0;
64
+ var state = summary === void 0 ? "empty" : summary.value === 0 ? "zero" : "value";
65
+ var ink = !empty && intensity >= ON_FILL_INK_FROM && readable ? readable : "$color";
66
+ var pressable = onPress !== void 0;
67
+ return /* @__PURE__ */_jsxs(YStack, {
68
+ width,
69
+ height,
70
+ alignItems: "center",
71
+ justifyContent: "center",
72
+ position: "relative",
73
+ overflow: "hidden",
74
+ ...(lastColumn ? null : hairlineEnd),
75
+ borderColor: componentColors.divider,
76
+ cursor: pressable ? "pointer" : void 0,
77
+ hoverStyle: pressable ? {
78
+ backgroundColor: componentColors.interactive.hover
79
+ } : void 0,
80
+ pressStyle: pressable ? {
81
+ opacity: 0.8
82
+ } : void 0,
83
+ role: pressable ? "button" : void 0,
84
+ tabIndex: pressable ? 0 : void 0,
85
+ "aria-label": name,
86
+ // LC-71: one ring on the cell (the perceived control), keyboard-only.
87
+ ...(keyboardRing ? keyboardFocusRingProps : {
88
+ outlineWidth: 0
89
+ }),
90
+ onFocus: pressable ? function () {
91
+ return setKeyboardRing(wasKeyboardFocus());
92
+ } : void 0,
93
+ onBlur: pressable ? function () {
94
+ return setKeyboardRing(false);
95
+ } : void 0,
96
+ onPress,
97
+ onKeyDown: pressable ? function (ke) {
98
+ var _ke_preventDefault;
99
+ if (ke.key !== "Enter" && ke.key !== " ") return;
100
+ (_ke_preventDefault = ke.preventDefault) === null || _ke_preventDefault === void 0 ? void 0 : _ke_preventDefault.call(ke);
101
+ onPress();
102
+ } : void 0,
103
+ "data-matrix-cell": `${row.id}:${bucket.key}`,
104
+ "data-matrix-cell-state": state,
105
+ ...((summary === null || summary === void 0 ? void 0 : summary.intent) ? {
106
+ "data-matrix-cell-intent": summary.intent
107
+ } : null),
108
+ children: [!empty && /* @__PURE__ */_jsx(YStack, {
109
+ position: "absolute",
110
+ top: 0,
111
+ left: 0,
112
+ right: 0,
113
+ bottom: 0,
114
+ backgroundColor: fill,
115
+ opacity: fillOpacity(intensity),
116
+ pointerEvents: "none",
117
+ "data-matrix-fill": String(intensity)
118
+ }), /* @__PURE__ */_jsx(Text, {
119
+ ...knobProps.label,
120
+ color: empty ? componentColors.text.subtle : ink,
121
+ numberOfLines: 1,
122
+ pointerEvents: "none",
123
+ zIndex: 1,
124
+ "aria-hidden": true,
125
+ children: empty ? "\xB7" : text
126
+ })]
127
+ });
128
+ }
129
+ function LegendSwatch(param) {
130
+ var {
131
+ intensity,
132
+ fill,
133
+ empty
134
+ } = param;
135
+ var {
136
+ knobProps
137
+ } = useResolvedKnobs();
138
+ return /* @__PURE__ */_jsx(YStack, {
139
+ width: 14,
140
+ height: 14,
141
+ ...knobProps.borderRadius,
142
+ position: "relative",
143
+ overflow: "hidden",
144
+ alignItems: "center",
145
+ justifyContent: "center",
146
+ borderWidth: hairlineWidth,
147
+ borderColor: componentColors.surface.border,
148
+ "data-matrix-legend-swatch": empty ? "empty" : String(intensity !== null && intensity !== void 0 ? intensity : 1),
149
+ children: empty ? /* @__PURE__ */_jsx(Text, {
150
+ fontSize: 10,
151
+ lineHeight: 10,
152
+ color: componentColors.text.subtle,
153
+ "aria-hidden": true,
154
+ children: "\xB7"
155
+ }) : /* @__PURE__ */_jsx(YStack, {
156
+ position: "absolute",
157
+ top: 0,
158
+ left: 0,
159
+ right: 0,
160
+ bottom: 0,
161
+ backgroundColor: fill !== null && fill !== void 0 ? fill : "$accentBackground",
162
+ opacity: fillOpacity(intensity !== null && intensity !== void 0 ? intensity : 1)
163
+ })
164
+ });
165
+ }
166
+ var SKELETON_ROWS = [96, 72, 112, 64, 88];
167
+ function MatrixSkeleton(param) {
168
+ var {
169
+ labelWidth,
170
+ columnWidth,
171
+ rowHeight
172
+ } = param;
173
+ var {
174
+ t
175
+ } = useTranslation();
176
+ var {
177
+ knobProps
178
+ } = useResolvedKnobs();
179
+ var edgePad = knobProps.panelPadding.padding;
180
+ var columns = [0, 1, 2, 3, 4, 5];
181
+ return /* @__PURE__ */_jsxs(YStack, {
182
+ width: "100%",
183
+ "aria-busy": true,
184
+ "aria-label": t("Loading"),
185
+ "data-matrix-skeleton": "true",
186
+ "data-async-skeleton": "matrix",
187
+ children: [/* @__PURE__ */_jsxs(XStack, {
188
+ height: rowHeight,
189
+ alignItems: "center",
190
+ ...hairline.bottom,
191
+ borderColor: "$borderColor",
192
+ children: [/* @__PURE__ */_jsx(XStack, {
193
+ width: labelWidth,
194
+ paddingHorizontal: edgePad,
195
+ children: /* @__PURE__ */_jsx(Skeleton, {
196
+ width: 64,
197
+ height: 12
198
+ })
199
+ }), columns.map(function (column) {
200
+ return /* @__PURE__ */_jsx(XStack, {
201
+ width: columnWidth,
202
+ justifyContent: "center",
203
+ children: /* @__PURE__ */_jsx(Skeleton, {
204
+ width: Math.max(24, columnWidth - 24),
205
+ height: 12
206
+ })
207
+ }, column);
208
+ })]
209
+ }), SKELETON_ROWS.map(function (labelSkeletonWidth, index) {
210
+ return /* @__PURE__ */_jsxs(XStack, {
211
+ height: rowHeight,
212
+ alignItems: "center",
213
+ ...(index < SKELETON_ROWS.length - 1 ? hairline.bottom : null),
214
+ borderColor: componentColors.divider,
215
+ children: [/* @__PURE__ */_jsx(XStack, {
216
+ width: labelWidth,
217
+ paddingHorizontal: edgePad,
218
+ children: /* @__PURE__ */_jsx(Skeleton, {
219
+ width: labelSkeletonWidth,
220
+ height: 12
221
+ })
222
+ }), columns.map(function (column) {
223
+ return /* @__PURE__ */_jsx(XStack, {
224
+ width: columnWidth,
225
+ justifyContent: "center",
226
+ children: (column + index) % 3 === 0 ? null : /* @__PURE__ */_jsx(Skeleton, {
227
+ variant: "rounded",
228
+ width: Math.max(16, columnWidth - 16),
229
+ height: Math.max(10, rowHeight - 20)
230
+ })
231
+ }, column);
232
+ })]
233
+ }, index);
234
+ })]
235
+ });
236
+ }
237
+ function MatrixView(param) {
238
+ var {
239
+ rows,
240
+ cells,
241
+ rule: initialRule = "month",
242
+ onRuleChange,
243
+ range: rangeProp,
244
+ firstDayOfWeek = 0,
245
+ onCellPress,
246
+ formatCell,
247
+ isLoading = false,
248
+ error = null,
249
+ onRetry,
250
+ emptyTitle,
251
+ emptyDescription,
252
+ height: heightProp,
253
+ labelWidth = 180,
254
+ columnWidth: columnWidthProp,
255
+ subjectLabel,
256
+ showRuleSwitcher = true,
257
+ showLegend = true,
258
+ legendItems,
259
+ ...stackProps
260
+ } = param;
261
+ var {
262
+ t
263
+ } = useTranslation();
264
+ var {
265
+ knobProps
266
+ } = useResolvedKnobs();
267
+ var [rule, setRule] = useState(initialRule);
268
+ if (typeof document !== "undefined") ensureKeyboardModalityTracking();
269
+ var sz = knobProps.sizeToken;
270
+ var height = heightProp !== null && heightProp !== void 0 ? heightProp : sz === "$3" ? 400 : sz === "$5" ? 560 : 480;
271
+ var rowHeight = Math.max(MIN_PRESS_TARGET, sz === "$3" ? 44 : sz === "$5" ? 56 : 48);
272
+ var columnWidth = Math.max(MIN_PRESS_TARGET, columnWidthProp !== null && columnWidthProp !== void 0 ? columnWidthProp : sz === "$3" ? 56 : sz === "$5" ? 72 : 64);
273
+ var axisHeight = sz === "$3" ? 40 : sz === "$5" ? 52 : 46;
274
+ var range = useMemo(function () {
275
+ return rangeProp ? alignMatrixRange(rangeProp, rule, firstDayOfWeek) : computeMatrixRange(cells.map(function (cell) {
276
+ return cell.date;
277
+ }), rule, firstDayOfWeek);
278
+ }, [rangeProp, cells, rule, firstDayOfWeek]);
279
+ var buckets = useMemo(function () {
280
+ return generateBuckets(range, rule, firstDayOfWeek);
281
+ }, [range, rule, firstDayOfWeek]);
282
+ var summaries = useMemo(function () {
283
+ return summarizeMatrixCells(cells, rule, firstDayOfWeek);
284
+ }, [cells, rule, firstDayOfWeek]);
285
+ var maxValue = useMemo(function () {
286
+ var rowIds = new Set(rows.map(function (row) {
287
+ return row.id;
288
+ }));
289
+ var bucketKeys = new Set(buckets.map(function (bucket) {
290
+ return bucket.key;
291
+ }));
292
+ return matrixMaxValue(Array.from(summaries.values()).filter(function (summary) {
293
+ return rowIds.has(summary.rowId) && bucketKeys.has(summary.bucketKey);
294
+ }));
295
+ }, [summaries, rows, buckets]);
296
+ var gridWidth = buckets.length * columnWidth;
297
+ var rangeLabel = useMemo(function () {
298
+ return formatRangeLabel(range);
299
+ }, [range]);
300
+ var changeRule = useCallback(function (next) {
301
+ setRule(next);
302
+ onRuleChange === null || onRuleChange === void 0 ? void 0 : onRuleChange(next);
303
+ }, [onRuleChange]);
304
+ var cellText = useCallback(function (summary) {
305
+ var _summary_value;
306
+ if (formatCell) return formatCell(summary);
307
+ if (summary.label !== void 0) return summary.label;
308
+ return formatNumber((_summary_value = summary.value) !== null && _summary_value !== void 0 ? _summary_value : summary.count);
309
+ }, [formatCell]);
310
+ var axisScrollRef = useRef(null);
311
+ var handleCanvasScroll = useCallback(function (event) {
312
+ var _ref;
313
+ var _event_nativeEvent_contentOffset, _event_nativeEvent, _axisScrollRef_current_scrollTo, _axisScrollRef_current;
314
+ var x = (_ref = event === null || event === void 0 ? void 0 : (_event_nativeEvent = event.nativeEvent) === null || _event_nativeEvent === void 0 ? void 0 : (_event_nativeEvent_contentOffset = _event_nativeEvent.contentOffset) === null || _event_nativeEvent_contentOffset === void 0 ? void 0 : _event_nativeEvent_contentOffset.x) !== null && _ref !== void 0 ? _ref : 0;
315
+ (_axisScrollRef_current = axisScrollRef.current) === null || _axisScrollRef_current === void 0 ? void 0 : (_axisScrollRef_current_scrollTo = _axisScrollRef_current.scrollTo) === null || _axisScrollRef_current_scrollTo === void 0 ? void 0 : _axisScrollRef_current_scrollTo.call(_axisScrollRef_current, {
316
+ x,
317
+ animated: false
318
+ });
319
+ }, []);
320
+ var scrollerDirection = {
321
+ direction: "ltr"
322
+ };
323
+ var showSkeleton = !error && isLoading && rows.length === 0;
324
+ return /* @__PURE__ */_jsx(AsyncBoundary, {
325
+ loading: showSkeleton ? /* @__PURE__ */_jsx(MatrixSkeleton, {
326
+ labelWidth,
327
+ columnWidth,
328
+ rowHeight
329
+ }) : false,
330
+ empty: !error && !isLoading && rows.length === 0,
331
+ error,
332
+ onRetry,
333
+ emptyTitle: emptyTitle !== null && emptyTitle !== void 0 ? emptyTitle : t("No subjects"),
334
+ emptyDescription,
335
+ ...stackProps,
336
+ children: /* @__PURE__ */_jsxs(YStack, {
337
+ height,
338
+ overflow: "hidden",
339
+ backgroundColor: "$background",
340
+ elevation: knobProps.elevation,
341
+ ...knobProps.containerRadius,
342
+ "data-matrix-view": rule,
343
+ "data-size": knobProps.size,
344
+ "data-density": knobProps.density,
345
+ children: [/* Header */
346
+ /* @__PURE__ */_jsxs(XStack, {
347
+ ...knobProps.panelPadding,
348
+ alignItems: "center",
349
+ justifyContent: "space-between",
350
+ ...knobProps.gap,
351
+ ...hairline.bottom,
352
+ borderColor: "$borderColor",
353
+ children: [/* @__PURE__ */_jsx(Text, {
354
+ ...knobProps.heading,
355
+ ...sectionHeading,
356
+ numberOfLines: 1,
357
+ children: rangeLabel
358
+ }), showRuleSwitcher && /* @__PURE__ */_jsx(ViewSwitcher, {
359
+ views: [{
360
+ type: "day",
361
+ label: t("Day")
362
+ }, {
363
+ type: "week",
364
+ label: t("Week")
365
+ }, {
366
+ type: "month",
367
+ label: t("Month")
368
+ }],
369
+ currentView: rule,
370
+ onViewChange: function onViewChange(val) {
371
+ return changeRule(val);
372
+ }
373
+ })]
374
+ }),
375
+ /* Pinned axis row: the subject header cell + the bucket header strip
376
+ stay put while rows scroll vertically. The strip follows the grid
377
+ scroller, so headers and cells can never drift apart. */
378
+ /* @__PURE__ */
379
+ _jsxs(XStack, {
380
+ ...hairline.bottom,
381
+ borderColor: "$borderColor",
382
+ "data-matrix-axis-row": "true",
383
+ children: [/* @__PURE__ */_jsx(XStack, {
384
+ width: labelWidth,
385
+ flexShrink: 0,
386
+ height: axisHeight,
387
+ alignItems: "center",
388
+ paddingHorizontal: knobProps.panelPadding.padding,
389
+ ...hairlineEnd,
390
+ borderColor: "$borderColor",
391
+ backgroundColor: componentColors.surface.background,
392
+ children: /* @__PURE__ */_jsx(Text, {
393
+ ...knobProps.label,
394
+ color: knobProps.textAccentColor,
395
+ numberOfLines: 1,
396
+ children: subjectLabel !== null && subjectLabel !== void 0 ? subjectLabel : t("Subject")
397
+ })
398
+ }), /* @__PURE__ */_jsx(ScrollView, {
399
+ ref: axisScrollRef,
400
+ horizontal: true,
401
+ flex: 1,
402
+ scrollEnabled: false,
403
+ showsHorizontalScrollIndicator: false,
404
+ style: scrollerDirection,
405
+ children: /* @__PURE__ */_jsx(XStack, {
406
+ width: gridWidth,
407
+ height: axisHeight,
408
+ backgroundColor: componentColors.surface.background,
409
+ "data-matrix-axis": rule,
410
+ children: buckets.map(function (bucket, index) {
411
+ return /* @__PURE__ */_jsx(XStack, {
412
+ width: columnWidth,
413
+ height: axisHeight,
414
+ alignItems: "center",
415
+ justifyContent: "center",
416
+ ...(index === buckets.length - 1 ? null : hairlineEnd),
417
+ borderColor: componentColors.divider,
418
+ "aria-label": bucket.name,
419
+ "data-matrix-column": bucket.key,
420
+ children: /* @__PURE__ */_jsx(Text, {
421
+ ...knobProps.label,
422
+ color: knobProps.textAccentColor,
423
+ numberOfLines: 1,
424
+ children: bucket.label
425
+ })
426
+ }, bucket.key);
427
+ })
428
+ })
429
+ })]
430
+ }),
431
+ /* Body: subject labels + grid share one vertical scroller so rows stay
432
+ aligned; the grid owns its horizontal scroller (LC-10). */
433
+ /* @__PURE__ */
434
+ _jsx(ScrollView, {
435
+ flex: 1,
436
+ children: /* @__PURE__ */_jsxs(XStack, {
437
+ "data-matrix-scroll-body": "true",
438
+ children: [/* @__PURE__ */_jsx(YStack, {
439
+ width: labelWidth,
440
+ flexShrink: 0,
441
+ ...hairlineEnd,
442
+ borderColor: "$borderColor",
443
+ "data-matrix-labels": "true",
444
+ children: rows.map(function (row, index) {
445
+ return /* @__PURE__ */_jsx(XStack, {
446
+ height: rowHeight,
447
+ alignItems: "center",
448
+ paddingHorizontal: knobProps.panelPadding.padding,
449
+ ...(index === rows.length - 1 ? null : hairline.bottom),
450
+ borderColor: componentColors.divider,
451
+ "data-matrix-row-label": row.id,
452
+ children: /* @__PURE__ */_jsx(Text, {
453
+ ...knobProps.body,
454
+ numberOfLines: 1,
455
+ color: "$color",
456
+ children: row.label
457
+ })
458
+ }, row.id);
459
+ })
460
+ }), /* @__PURE__ */_jsx(CanvasScroller, {
461
+ horizontal: true,
462
+ ...(isWeb ? {
463
+ flex: 1
464
+ } : null),
465
+ showsHorizontalScrollIndicator: true,
466
+ onScroll: handleCanvasScroll,
467
+ scrollEventThrottle: 16,
468
+ style: isWeb ? scrollerDirection : [{
469
+ flex: 1
470
+ }, scrollerDirection],
471
+ children: /* @__PURE__ */_jsx(YStack, {
472
+ width: gridWidth,
473
+ "data-matrix-canvas": "true",
474
+ children: rows.map(function (row, rowIndex) {
475
+ return /* @__PURE__ */_jsx(XStack, {
476
+ height: rowHeight,
477
+ ...(rowIndex === rows.length - 1 ? null : hairline.bottom),
478
+ borderColor: componentColors.divider,
479
+ "data-matrix-row": row.id,
480
+ children: buckets.map(function (bucket, columnIndex) {
481
+ var summary = summaries.get(matrixCellKey(row.id, bucket.key));
482
+ var intensity = summary ? matrixCellIntensity(summary, maxValue) : 0;
483
+ var fill = resolveFill(summary === null || summary === void 0 ? void 0 : summary.color, summary === null || summary === void 0 ? void 0 : summary.intent);
484
+ var text = summary ? cellText(summary) : t("No data");
485
+ var name = withInterp(t("{{subject}}, {{bucket}}: {{value}}"), {
486
+ subject: row.label,
487
+ bucket: bucket.name,
488
+ value: text
489
+ });
490
+ return /* @__PURE__ */_jsx(CellIntentWrap, {
491
+ intent: (summary === null || summary === void 0 ? void 0 : summary.color) ? void 0 : summary === null || summary === void 0 ? void 0 : summary.intent,
492
+ children: /* @__PURE__ */_jsx(MatrixCellBox, {
493
+ row,
494
+ bucket,
495
+ summary,
496
+ intensity,
497
+ fill,
498
+ text,
499
+ name,
500
+ width: columnWidth,
501
+ height: rowHeight,
502
+ lastColumn: columnIndex === buckets.length - 1,
503
+ onPress: onCellPress ? function () {
504
+ return onCellPress({
505
+ row,
506
+ bucket,
507
+ summary
508
+ });
509
+ } : void 0
510
+ })
511
+ }, bucket.key);
512
+ })
513
+ }, row.id);
514
+ })
515
+ })
516
+ })]
517
+ })
518
+ }), showLegend && /* @__PURE__ */_jsxs(XStack, {
519
+ ...knobProps.panelPadding,
520
+ alignItems: "center",
521
+ flexWrap: "wrap",
522
+ ...knobProps.gap,
523
+ ...hairline.top,
524
+ borderColor: "$borderColor",
525
+ "data-matrix-legend": "true",
526
+ children: [/* @__PURE__ */_jsxs(XStack, {
527
+ alignItems: "center",
528
+ gap: "$1.5",
529
+ children: [/* @__PURE__ */_jsx(LegendSwatch, {
530
+ empty: true
531
+ }), /* @__PURE__ */_jsx(Text, {
532
+ ...knobProps.label,
533
+ color: knobProps.textAccentColor,
534
+ children: t("No data")
535
+ })]
536
+ }), /* @__PURE__ */_jsxs(XStack, {
537
+ alignItems: "center",
538
+ gap: "$1.5",
539
+ children: [/* @__PURE__ */_jsx(Text, {
540
+ ...knobProps.label,
541
+ color: knobProps.textAccentColor,
542
+ children: t("Less")
543
+ }), LEGEND_STEPS.map(function (step) {
544
+ return /* @__PURE__ */_jsx(LegendSwatch, {
545
+ intensity: step
546
+ }, step);
547
+ }), /* @__PURE__ */_jsx(Text, {
548
+ ...knobProps.label,
549
+ color: knobProps.textAccentColor,
550
+ children: t("More")
551
+ })]
552
+ }), legendItems === null || legendItems === void 0 ? void 0 : legendItems.map(function (item, index) {
553
+ return /* @__PURE__ */_jsx(CellIntentWrap, {
554
+ intent: item.color ? void 0 : item.intent,
555
+ children: /* @__PURE__ */_jsxs(XStack, {
556
+ alignItems: "center",
557
+ gap: "$1.5",
558
+ children: [/* @__PURE__ */_jsx(LegendSwatch, {
559
+ fill: resolveFill(item.color, item.intent)
560
+ }), /* @__PURE__ */_jsx(Text, {
561
+ ...knobProps.label,
562
+ color: knobProps.textAccentColor,
563
+ children: item.label
564
+ })]
565
+ })
566
+ }, `${item.label}-${index}`);
567
+ })]
568
+ })]
569
+ })
570
+ });
571
+ }
572
+ export { MatrixView };
573
+ //# sourceMappingURL=Matrix.native.js.map