@multiplatform.one/components 7.11.0 → 7.16.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 (691) 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 +3 -7
  4. package/dist/cjs/Accordion/index.native.js.map +1 -1
  5. package/dist/cjs/Alert/index.native.js.map +1 -1
  6. package/dist/cjs/AnimateHeight/index.cjs +1 -3
  7. package/dist/cjs/AnimateHeight/index.native.js +1 -3
  8. package/dist/cjs/AnimateHeight/index.native.js.map +1 -1
  9. package/dist/cjs/Avatar/getInitials.native.js.map +1 -1
  10. package/dist/cjs/Avatar/index.native.js.map +1 -1
  11. package/dist/cjs/Badge/index.native.js.map +1 -1
  12. package/dist/cjs/Button.native.js.map +1 -1
  13. package/dist/cjs/Card.native.js.map +1 -1
  14. package/dist/cjs/CardFooter.native.js.map +1 -1
  15. package/dist/cjs/CardHeader.native.js.map +1 -1
  16. package/dist/cjs/Carousel/index.cjs +2 -1
  17. package/dist/cjs/Carousel/index.native.js +3 -2
  18. package/dist/cjs/Carousel/index.native.js.map +1 -1
  19. package/dist/cjs/Chip/index.cjs +13 -3
  20. package/dist/cjs/Chip/index.native.js +13 -3
  21. package/dist/cjs/Chip/index.native.js.map +1 -1
  22. package/dist/cjs/Collapsible.native.js.map +1 -1
  23. package/dist/cjs/ContextMenu/index.native.js.map +1 -1
  24. package/dist/cjs/CopyField/index.native.js.map +1 -1
  25. package/dist/cjs/DotIndicator/index.native.js.map +1 -1
  26. package/dist/cjs/DropdownMenu/index.native.js.map +1 -1
  27. package/dist/cjs/ErrorBoundary/index.native.js.map +1 -1
  28. package/dist/cjs/Heading.native.js.map +1 -1
  29. package/dist/cjs/Meter/index.native.js +1 -1
  30. package/dist/cjs/Meter/index.native.js.map +1 -1
  31. package/dist/cjs/Meter/meter.native.js.map +1 -1
  32. package/dist/cjs/Pagination.native.js +1 -1
  33. package/dist/cjs/Pagination.native.js.map +1 -1
  34. package/dist/cjs/ProgressSteps/index.native.js.map +1 -1
  35. package/dist/cjs/Quote/index.native.js.map +1 -1
  36. package/dist/cjs/ScrollView/index.cjs +28 -0
  37. package/dist/cjs/ScrollView/index.native.js +72 -0
  38. package/dist/cjs/ScrollView/index.native.js.map +1 -0
  39. package/dist/cjs/Separator/index.native.js.map +1 -1
  40. package/dist/cjs/SheetModal/detents.native.js.map +1 -1
  41. package/dist/cjs/SheetModal/index.native.js +70 -22
  42. package/dist/cjs/SheetModal/index.native.js.map +1 -1
  43. package/dist/cjs/Skeleton/index.cjs +1 -13
  44. package/dist/cjs/Skeleton/index.native.js +1 -13
  45. package/dist/cjs/Skeleton/index.native.js.map +1 -1
  46. package/dist/cjs/SkipLink/index.native.js.map +1 -1
  47. package/dist/cjs/SortableList/SortableHandle.native.js.map +1 -1
  48. package/dist/cjs/SortableList/index.native.js.map +1 -1
  49. package/dist/cjs/SortableList/useSortableRows.native.js.map +1 -1
  50. package/dist/cjs/Tabs/index.cjs +4 -7
  51. package/dist/cjs/Tabs/index.native.js +4 -7
  52. package/dist/cjs/Tabs/index.native.js.map +1 -1
  53. package/dist/cjs/Text.cjs +2 -0
  54. package/dist/cjs/Text.native.js +2 -0
  55. package/dist/cjs/Text.native.js.map +1 -1
  56. package/dist/cjs/Toast/index.native.js.map +1 -1
  57. package/dist/cjs/Toast/store.native.js.map +1 -1
  58. package/dist/cjs/Tooltip/nativePress.native.js.map +1 -1
  59. package/dist/cjs/Tooltip/tooltipShared.native.js.map +1 -1
  60. package/dist/cjs/TreeSelect/index.cjs +55 -52
  61. package/dist/cjs/TreeSelect/index.native.js +56 -53
  62. package/dist/cjs/TreeSelect/index.native.js.map +1 -1
  63. package/dist/cjs/TreeSelect/treeSelectModel.native.js.map +1 -1
  64. package/dist/cjs/Video/PlayerChrome.cjs +3 -9
  65. package/dist/cjs/Video/PlayerChrome.native.js +3 -9
  66. package/dist/cjs/Video/PlayerChrome.native.js.map +1 -1
  67. package/dist/cjs/Video/VideoFrame.native.js.map +1 -1
  68. package/dist/cjs/Video/types.native.js.map +1 -1
  69. package/dist/cjs/Wheel/index.native.js.map +1 -1
  70. package/dist/cjs/Wizard/index.native.js +2 -2
  71. package/dist/cjs/Wizard/index.native.js.map +1 -1
  72. package/dist/cjs/actions/ActionBar.native.js.map +1 -1
  73. package/dist/cjs/actions/DestructiveAction.native.js.map +1 -1
  74. package/dist/cjs/actions/devWarn.native.js.map +1 -1
  75. package/dist/cjs/actions/index.native.js.map +1 -1
  76. package/dist/cjs/actions/severity.native.js.map +1 -1
  77. package/dist/cjs/charts/Axis.native.js.map +1 -1
  78. package/dist/cjs/charts/BarChart.native.js.map +1 -1
  79. package/dist/cjs/charts/ChartDataView.native.js.map +1 -1
  80. package/dist/cjs/charts/ChartSurface.native.js.map +1 -1
  81. package/dist/cjs/charts/LineChart.native.js.map +1 -1
  82. package/dist/cjs/charts/PieChart.native.js.map +1 -1
  83. package/dist/cjs/charts/Sparkline.native.js.map +1 -1
  84. package/dist/cjs/charts/accessibility.native.js.map +1 -1
  85. package/dist/cjs/charts/composeChart.native.js.map +1 -1
  86. package/dist/cjs/charts/index.native.js.map +1 -1
  87. package/dist/cjs/charts/math.cjs +18 -0
  88. package/dist/cjs/charts/math.native.js +18 -0
  89. package/dist/cjs/charts/math.native.js.map +1 -1
  90. package/dist/cjs/charts/series.cjs +17 -8
  91. package/dist/cjs/charts/series.native.js +17 -8
  92. package/dist/cjs/charts/series.native.js.map +1 -1
  93. package/dist/cjs/charts/svg.cjs +6 -0
  94. package/dist/cjs/charts/svg.native.js +6 -0
  95. package/dist/cjs/charts/svg.native.js.map +1 -1
  96. package/dist/cjs/charts/types.native.js.map +1 -1
  97. package/dist/cjs/charts/useChartTheme.cjs +3 -9
  98. package/dist/cjs/charts/useChartTheme.native.js +4 -10
  99. package/dist/cjs/charts/useChartTheme.native.js.map +1 -1
  100. package/dist/cjs/code/Code/index.cjs +6 -0
  101. package/dist/cjs/code/Code/index.native.js +7 -4
  102. package/dist/cjs/code/Code/index.native.js.map +1 -1
  103. package/dist/cjs/code/CodeBlock/index.cjs +4 -5
  104. package/dist/cjs/code/CodeBlock/index.native.js +10 -11
  105. package/dist/cjs/code/CodeBlock/index.native.js.map +1 -1
  106. package/dist/cjs/code/HighlightedCode/index.native.js.map +1 -1
  107. package/dist/cjs/code/Highlighter/index.native.js.map +1 -1
  108. package/dist/cjs/code/Pre/index.native.js.map +1 -1
  109. package/dist/cjs/code/index.native.js +5 -5
  110. package/dist/cjs/code/index.native.js.map +1 -1
  111. package/dist/cjs/componentColors.native.js.map +1 -1
  112. package/dist/cjs/feedback/ConfirmDialog.native.js.map +1 -1
  113. package/dist/cjs/feedback/NotifyHost.native.js +2 -2
  114. package/dist/cjs/feedback/NotifyHost.native.js.map +1 -1
  115. package/dist/cjs/feedback/copy.native.js.map +1 -1
  116. package/dist/cjs/feedback/index.native.js.map +1 -1
  117. package/dist/cjs/feedback/notify.native.js.map +1 -1
  118. package/dist/cjs/feedback/route.native.js.map +1 -1
  119. package/dist/cjs/feedback/store.native.js.map +1 -1
  120. package/dist/cjs/hooks/index.native.js +1 -1
  121. package/dist/cjs/hooks/index.native.js.map +1 -1
  122. package/dist/cjs/hooks/useClipboard.native.js.map +1 -1
  123. package/dist/cjs/hooks/useDocumentTitle.native.js.map +1 -1
  124. package/dist/cjs/icons/CheckRegular.native.js.map +1 -1
  125. package/dist/cjs/icons/MinusRegular.native.js.map +1 -1
  126. package/dist/cjs/icons/index.native.js.map +1 -1
  127. package/dist/cjs/icons/lucide.native.js.map +1 -1
  128. package/dist/cjs/icons/themed.cjs +2 -1
  129. package/dist/cjs/icons/themed.native.js +2 -1
  130. package/dist/cjs/icons/themed.native.js.map +1 -1
  131. package/dist/cjs/images/Image/ImageFrame.native.js +1 -1
  132. package/dist/cjs/images/Image/ImageFrame.native.js.map +1 -1
  133. package/dist/cjs/images/Image/index.native.js +1 -1
  134. package/dist/cjs/images/Image/shared.native.js +1 -1
  135. package/dist/cjs/images/Image/shared.native.js.map +1 -1
  136. package/dist/cjs/images/Image/types.native.js.map +1 -1
  137. package/dist/cjs/images/index.native.js.map +1 -1
  138. package/dist/cjs/index.native.js +29 -29
  139. package/dist/cjs/index.native.js.map +1 -1
  140. package/dist/cjs/knobImmuneExports.cjs +3 -3
  141. package/dist/cjs/knobImmuneExports.native.js +3 -3
  142. package/dist/cjs/knobImmuneExports.native.js.map +1 -1
  143. package/dist/cjs/layouts/AsyncBoundary.native.js +2 -2
  144. package/dist/cjs/layouts/AsyncBoundary.native.js.map +1 -1
  145. package/dist/cjs/layouts/Debug/index.native.js.map +1 -1
  146. package/dist/cjs/layouts/EmptyState.native.js.map +1 -1
  147. package/dist/cjs/layouts/KeyboardAvoidingWrapper/behavior.native.js.map +1 -1
  148. package/dist/cjs/layouts/PageTemplates.native.js.map +1 -1
  149. package/dist/cjs/layouts/PaneScaffold.cjs +70 -42
  150. package/dist/cjs/layouts/PaneScaffold.native.js +75 -48
  151. package/dist/cjs/layouts/PaneScaffold.native.js.map +1 -1
  152. package/dist/cjs/layouts/SafeAreaWrapper/insets.native.js.map +1 -1
  153. package/dist/cjs/layouts/ViewSwitcher.native.js.map +1 -1
  154. package/dist/cjs/layouts/attachments.cjs +2 -1
  155. package/dist/cjs/layouts/attachments.native.js +3 -2
  156. package/dist/cjs/layouts/attachments.native.js.map +1 -1
  157. package/dist/cjs/layouts/breadcrumbs.native.js.map +1 -1
  158. package/dist/cjs/layouts/index.native.js +3 -3
  159. package/dist/cjs/layouts/index.native.js.map +1 -1
  160. package/dist/cjs/layouts/page.cjs +2 -1
  161. package/dist/cjs/layouts/page.native.js +2 -1
  162. package/dist/cjs/layouts/page.native.js.map +1 -1
  163. package/dist/cjs/layouts/pageHeadingScope.native.js.map +1 -1
  164. package/dist/cjs/layouts/sidebar.cjs +1 -3
  165. package/dist/cjs/layouts/sidebar.native.js +1 -3
  166. package/dist/cjs/layouts/sidebar.native.js.map +1 -1
  167. package/dist/cjs/layouts/tags.native.js +1 -1
  168. package/dist/cjs/layouts/tags.native.js.map +1 -1
  169. package/dist/cjs/layouts/timeline.cjs +9 -1
  170. package/dist/cjs/layouts/timeline.native.js +11 -3
  171. package/dist/cjs/layouts/timeline.native.js.map +1 -1
  172. package/dist/cjs/layouts/toolbar.native.js.map +1 -1
  173. package/dist/cjs/shared/actionScan.native.js.map +1 -1
  174. package/dist/cjs/shared/i18n.native.js.map +1 -1
  175. package/dist/cjs/shared/t.native.js.map +1 -1
  176. package/dist/cjs/shared/textRidesText.native.js.map +1 -1
  177. package/dist/cjs/shared/useReturnFocusOnClose.native.js.map +1 -1
  178. package/dist/cjs/surfaces.cjs +0 -32
  179. package/dist/cjs/surfaces.native.js +1 -33
  180. package/dist/cjs/surfaces.native.js.map +1 -1
  181. package/dist/cjs/tamagui.cjs +2 -1
  182. package/dist/cjs/tamagui.native.js +2 -1
  183. package/dist/cjs/tamagui.native.js.map +1 -1
  184. package/dist/cjs/testSetup.native.js.map +1 -1
  185. package/dist/cjs/utils/setTinted.native.js.map +1 -1
  186. package/dist/cjs/utils/unwrapText.native.js.map +1 -1
  187. package/dist/cjs/views/Calendar.native.js.map +1 -1
  188. package/dist/cjs/views/Dashboard.native.js +1 -1
  189. package/dist/cjs/views/Dashboard.native.js.map +1 -1
  190. package/dist/cjs/views/Gantt.native.js +1 -1
  191. package/dist/cjs/views/Gantt.native.js.map +1 -1
  192. package/dist/cjs/views/ImageGrid.native.js +1 -1
  193. package/dist/cjs/views/ImageGrid.native.js.map +1 -1
  194. package/dist/cjs/views/Kanban.cjs +1 -0
  195. package/dist/cjs/views/Kanban.native.js +3 -1
  196. package/dist/cjs/views/Kanban.native.js.map +1 -1
  197. package/dist/cjs/views/List.cjs +4 -4
  198. package/dist/cjs/views/List.native.js +7 -7
  199. package/dist/cjs/views/List.native.js.map +1 -1
  200. package/dist/cjs/views/Matrix.cjs +568 -0
  201. package/dist/cjs/views/Matrix.native.js +612 -0
  202. package/dist/cjs/views/Matrix.native.js.map +1 -0
  203. package/dist/cjs/views/ReportBuilder.native.js +1 -1
  204. package/dist/cjs/views/ReportBuilder.native.js.map +1 -1
  205. package/dist/cjs/views/TreeView.native.js.map +1 -1
  206. package/dist/cjs/views/calendarMath.native.js.map +1 -1
  207. package/dist/cjs/views/ganttMath.cjs +2 -0
  208. package/dist/cjs/views/ganttMath.native.js +2 -0
  209. package/dist/cjs/views/ganttMath.native.js.map +1 -1
  210. package/dist/cjs/views/index.cjs +16 -0
  211. package/dist/cjs/views/index.native.js +17 -1
  212. package/dist/cjs/views/index.native.js.map +1 -1
  213. package/dist/cjs/views/kanbanDnd.native.js.map +1 -1
  214. package/dist/cjs/views/matrixMath.cjs +157 -0
  215. package/dist/cjs/views/matrixMath.native.js +229 -0
  216. package/dist/cjs/views/matrixMath.native.js.map +1 -0
  217. package/dist/cjs/views/treeViewDnd.native.js.map +1 -1
  218. package/dist/cjs/views/treeViewLayout.native.js.map +1 -1
  219. package/dist/cjs/views/treeViewMotion.native.js.map +1 -1
  220. package/dist/cjs/views/treeViewReveal.native.js.map +1 -1
  221. package/dist/esm/Accordion/index.mjs +3 -7
  222. package/dist/esm/Accordion/index.mjs.map +1 -1
  223. package/dist/esm/Accordion/index.native.js +3 -7
  224. package/dist/esm/Accordion/index.native.js.map +1 -1
  225. package/dist/esm/AnimateHeight/index.mjs +2 -4
  226. package/dist/esm/AnimateHeight/index.mjs.map +1 -1
  227. package/dist/esm/AnimateHeight/index.native.js +2 -4
  228. package/dist/esm/AnimateHeight/index.native.js.map +1 -1
  229. package/dist/esm/Avatar/getInitials.native.js.map +1 -1
  230. package/dist/esm/Avatar/index.native.js.map +1 -1
  231. package/dist/esm/Badge/index.native.js.map +1 -1
  232. package/dist/esm/Button.native.js.map +1 -1
  233. package/dist/esm/Carousel/index.mjs +2 -1
  234. package/dist/esm/Carousel/index.mjs.map +1 -1
  235. package/dist/esm/Carousel/index.native.js +2 -1
  236. package/dist/esm/Carousel/index.native.js.map +1 -1
  237. package/dist/esm/Chip/index.mjs +15 -5
  238. package/dist/esm/Chip/index.mjs.map +1 -1
  239. package/dist/esm/Chip/index.native.js +15 -5
  240. package/dist/esm/Chip/index.native.js.map +1 -1
  241. package/dist/esm/Collapsible.native.js.map +1 -1
  242. package/dist/esm/ContextMenu/index.native.js.map +1 -1
  243. package/dist/esm/CopyField/index.native.js.map +1 -1
  244. package/dist/esm/DotIndicator/index.native.js.map +1 -1
  245. package/dist/esm/DropdownMenu/index.native.js.map +1 -1
  246. package/dist/esm/ErrorBoundary/index.native.js.map +1 -1
  247. package/dist/esm/Heading.native.js.map +1 -1
  248. package/dist/esm/Meter/index.native.js.map +1 -1
  249. package/dist/esm/Meter/meter.native.js.map +1 -1
  250. package/dist/esm/Pagination.native.js.map +1 -1
  251. package/dist/esm/ProgressSteps/index.native.js.map +1 -1
  252. package/dist/esm/Quote/index.native.js.map +1 -1
  253. package/dist/esm/ScrollView/index.mjs +3 -0
  254. package/dist/esm/ScrollView/index.mjs.map +1 -0
  255. package/dist/esm/ScrollView/index.native.js +44 -0
  256. package/dist/esm/ScrollView/index.native.js.map +1 -0
  257. package/dist/esm/Separator/index.native.js.map +1 -1
  258. package/dist/esm/SheetModal/detents.native.js.map +1 -1
  259. package/dist/esm/SheetModal/index.native.js +71 -23
  260. package/dist/esm/SheetModal/index.native.js.map +1 -1
  261. package/dist/esm/Skeleton/index.mjs +1 -13
  262. package/dist/esm/Skeleton/index.mjs.map +1 -1
  263. package/dist/esm/Skeleton/index.native.js +1 -13
  264. package/dist/esm/Skeleton/index.native.js.map +1 -1
  265. package/dist/esm/SkipLink/index.native.js.map +1 -1
  266. package/dist/esm/SortableList/SortableHandle.native.js.map +1 -1
  267. package/dist/esm/SortableList/index.native.js.map +1 -1
  268. package/dist/esm/SortableList/useSortableRows.native.js.map +1 -1
  269. package/dist/esm/Tabs/index.mjs +5 -8
  270. package/dist/esm/Tabs/index.mjs.map +1 -1
  271. package/dist/esm/Tabs/index.native.js +5 -8
  272. package/dist/esm/Tabs/index.native.js.map +1 -1
  273. package/dist/esm/Text.mjs +3 -1
  274. package/dist/esm/Text.mjs.map +1 -1
  275. package/dist/esm/Text.native.js +3 -1
  276. package/dist/esm/Text.native.js.map +1 -1
  277. package/dist/esm/Toast/index.native.js.map +1 -1
  278. package/dist/esm/Toast/store.native.js.map +1 -1
  279. package/dist/esm/Tooltip/nativePress.native.js.map +1 -1
  280. package/dist/esm/Tooltip/tooltipShared.native.js.map +1 -1
  281. package/dist/esm/TreeSelect/index.mjs +56 -53
  282. package/dist/esm/TreeSelect/index.mjs.map +1 -1
  283. package/dist/esm/TreeSelect/index.native.js +56 -53
  284. package/dist/esm/TreeSelect/index.native.js.map +1 -1
  285. package/dist/esm/TreeSelect/treeSelectModel.native.js.map +1 -1
  286. package/dist/esm/Video/PlayerChrome.mjs +4 -10
  287. package/dist/esm/Video/PlayerChrome.mjs.map +1 -1
  288. package/dist/esm/Video/PlayerChrome.native.js +4 -10
  289. package/dist/esm/Video/PlayerChrome.native.js.map +1 -1
  290. package/dist/esm/Video/VideoFrame.native.js.map +1 -1
  291. package/dist/esm/Video/types.native.js.map +1 -1
  292. package/dist/esm/Wheel/index.native.js.map +1 -1
  293. package/dist/esm/Wizard/index.native.js.map +1 -1
  294. package/dist/esm/actions/ActionBar.native.js.map +1 -1
  295. package/dist/esm/actions/DestructiveAction.native.js.map +1 -1
  296. package/dist/esm/actions/devWarn.native.js.map +1 -1
  297. package/dist/esm/actions/index.native.js.map +1 -1
  298. package/dist/esm/actions/severity.native.js.map +1 -1
  299. package/dist/esm/charts/Axis.native.js.map +1 -1
  300. package/dist/esm/charts/BarChart.native.js.map +1 -1
  301. package/dist/esm/charts/ChartDataView.native.js.map +1 -1
  302. package/dist/esm/charts/ChartSurface.native.js.map +1 -1
  303. package/dist/esm/charts/LineChart.native.js.map +1 -1
  304. package/dist/esm/charts/PieChart.native.js.map +1 -1
  305. package/dist/esm/charts/Sparkline.native.js.map +1 -1
  306. package/dist/esm/charts/accessibility.native.js.map +1 -1
  307. package/dist/esm/charts/composeChart.native.js.map +1 -1
  308. package/dist/esm/charts/index.native.js.map +1 -1
  309. package/dist/esm/charts/math.mjs +18 -1
  310. package/dist/esm/charts/math.mjs.map +1 -1
  311. package/dist/esm/charts/math.native.js +18 -1
  312. package/dist/esm/charts/math.native.js.map +1 -1
  313. package/dist/esm/charts/series.mjs +19 -10
  314. package/dist/esm/charts/series.mjs.map +1 -1
  315. package/dist/esm/charts/series.native.js +19 -10
  316. package/dist/esm/charts/series.native.js.map +1 -1
  317. package/dist/esm/charts/svg.mjs +6 -1
  318. package/dist/esm/charts/svg.mjs.map +1 -1
  319. package/dist/esm/charts/svg.native.js +6 -1
  320. package/dist/esm/charts/svg.native.js.map +1 -1
  321. package/dist/esm/charts/types.native.js.map +1 -1
  322. package/dist/esm/charts/useChartTheme.mjs +4 -10
  323. package/dist/esm/charts/useChartTheme.mjs.map +1 -1
  324. package/dist/esm/charts/useChartTheme.native.js +5 -11
  325. package/dist/esm/charts/useChartTheme.native.js.map +1 -1
  326. package/dist/esm/code/Code/index.mjs +6 -0
  327. package/dist/esm/code/Code/index.mjs.map +1 -1
  328. package/dist/esm/code/Code/index.native.js +10 -7
  329. package/dist/esm/code/Code/index.native.js.map +1 -1
  330. package/dist/esm/code/CodeBlock/index.mjs +5 -6
  331. package/dist/esm/code/CodeBlock/index.mjs.map +1 -1
  332. package/dist/esm/code/CodeBlock/index.native.js +5 -6
  333. package/dist/esm/code/CodeBlock/index.native.js.map +1 -1
  334. package/dist/esm/code/HighlightedCode/index.native.js.map +1 -1
  335. package/dist/esm/code/Highlighter/index.native.js.map +1 -1
  336. package/dist/esm/code/Pre/index.native.js.map +1 -1
  337. package/dist/esm/code/index.native.js.map +1 -1
  338. package/dist/esm/componentColors.native.js.map +1 -1
  339. package/dist/esm/feedback/ConfirmDialog.native.js.map +1 -1
  340. package/dist/esm/feedback/NotifyHost.native.js.map +1 -1
  341. package/dist/esm/feedback/copy.native.js.map +1 -1
  342. package/dist/esm/feedback/index.native.js.map +1 -1
  343. package/dist/esm/feedback/notify.native.js.map +1 -1
  344. package/dist/esm/feedback/route.native.js.map +1 -1
  345. package/dist/esm/feedback/store.native.js.map +1 -1
  346. package/dist/esm/hooks/index.native.js.map +1 -1
  347. package/dist/esm/hooks/useClipboard.native.js.map +1 -1
  348. package/dist/esm/hooks/useDocumentTitle.native.js.map +1 -1
  349. package/dist/esm/icons/CheckRegular.native.js.map +1 -1
  350. package/dist/esm/icons/MinusRegular.native.js.map +1 -1
  351. package/dist/esm/icons/index.native.js.map +1 -1
  352. package/dist/esm/icons/lucide.native.js.map +1 -1
  353. package/dist/esm/icons/themed.mjs +3 -2
  354. package/dist/esm/icons/themed.mjs.map +1 -1
  355. package/dist/esm/icons/themed.native.js +3 -2
  356. package/dist/esm/icons/themed.native.js.map +1 -1
  357. package/dist/esm/images/Image/ImageFrame.native.js.map +1 -1
  358. package/dist/esm/images/Image/shared.native.js.map +1 -1
  359. package/dist/esm/images/Image/types.native.js.map +1 -1
  360. package/dist/esm/images/index.native.js.map +1 -1
  361. package/dist/esm/index.native.js.map +1 -1
  362. package/dist/esm/knobImmuneExports.mjs +3 -3
  363. package/dist/esm/knobImmuneExports.native.js +3 -3
  364. package/dist/esm/knobImmuneExports.native.js.map +1 -1
  365. package/dist/esm/layouts/AsyncBoundary.native.js.map +1 -1
  366. package/dist/esm/layouts/Debug/index.native.js.map +1 -1
  367. package/dist/esm/layouts/EmptyState.native.js.map +1 -1
  368. package/dist/esm/layouts/KeyboardAvoidingWrapper/behavior.native.js.map +1 -1
  369. package/dist/esm/layouts/PageTemplates.native.js.map +1 -1
  370. package/dist/esm/layouts/PaneScaffold.mjs +70 -42
  371. package/dist/esm/layouts/PaneScaffold.mjs.map +1 -1
  372. package/dist/esm/layouts/PaneScaffold.native.js +75 -48
  373. package/dist/esm/layouts/PaneScaffold.native.js.map +1 -1
  374. package/dist/esm/layouts/SafeAreaWrapper/insets.native.js.map +1 -1
  375. package/dist/esm/layouts/ViewSwitcher.native.js.map +1 -1
  376. package/dist/esm/layouts/attachments.mjs +3 -2
  377. package/dist/esm/layouts/attachments.mjs.map +1 -1
  378. package/dist/esm/layouts/attachments.native.js +3 -2
  379. package/dist/esm/layouts/attachments.native.js.map +1 -1
  380. package/dist/esm/layouts/breadcrumbs.native.js.map +1 -1
  381. package/dist/esm/layouts/index.native.js.map +1 -1
  382. package/dist/esm/layouts/page.mjs +3 -2
  383. package/dist/esm/layouts/page.mjs.map +1 -1
  384. package/dist/esm/layouts/page.native.js +3 -2
  385. package/dist/esm/layouts/page.native.js.map +1 -1
  386. package/dist/esm/layouts/pageHeadingScope.native.js.map +1 -1
  387. package/dist/esm/layouts/sidebar.mjs +2 -4
  388. package/dist/esm/layouts/sidebar.mjs.map +1 -1
  389. package/dist/esm/layouts/sidebar.native.js +2 -4
  390. package/dist/esm/layouts/sidebar.native.js.map +1 -1
  391. package/dist/esm/layouts/tags.native.js.map +1 -1
  392. package/dist/esm/layouts/timeline.mjs +11 -3
  393. package/dist/esm/layouts/timeline.mjs.map +1 -1
  394. package/dist/esm/layouts/timeline.native.js +11 -3
  395. package/dist/esm/layouts/timeline.native.js.map +1 -1
  396. package/dist/esm/layouts/toolbar.native.js.map +1 -1
  397. package/dist/esm/shared/actionScan.native.js.map +1 -1
  398. package/dist/esm/shared/i18n.native.js.map +1 -1
  399. package/dist/esm/shared/t.native.js.map +1 -1
  400. package/dist/esm/shared/textRidesText.native.js.map +1 -1
  401. package/dist/esm/shared/useReturnFocusOnClose.native.js.map +1 -1
  402. package/dist/esm/surfaces.mjs +1 -33
  403. package/dist/esm/surfaces.mjs.map +1 -1
  404. package/dist/esm/surfaces.native.js +1 -33
  405. package/dist/esm/surfaces.native.js.map +1 -1
  406. package/dist/esm/tamagui.mjs +2 -1
  407. package/dist/esm/tamagui.mjs.map +1 -1
  408. package/dist/esm/tamagui.native.js +2 -1
  409. package/dist/esm/tamagui.native.js.map +1 -1
  410. package/dist/esm/testSetup.native.js.map +1 -1
  411. package/dist/esm/utils/setTinted.native.js.map +1 -1
  412. package/dist/esm/utils/unwrapText.native.js.map +1 -1
  413. package/dist/esm/views/Calendar.native.js.map +1 -1
  414. package/dist/esm/views/Dashboard.native.js.map +1 -1
  415. package/dist/esm/views/Gantt.native.js.map +1 -1
  416. package/dist/esm/views/ImageGrid.native.js.map +1 -1
  417. package/dist/esm/views/Kanban.mjs +1 -0
  418. package/dist/esm/views/Kanban.mjs.map +1 -1
  419. package/dist/esm/views/Kanban.native.js +3 -1
  420. package/dist/esm/views/Kanban.native.js.map +1 -1
  421. package/dist/esm/views/List.mjs +5 -5
  422. package/dist/esm/views/List.mjs.map +1 -1
  423. package/dist/esm/views/List.native.js +8 -8
  424. package/dist/esm/views/List.native.js.map +1 -1
  425. package/dist/esm/views/Matrix.mjs +543 -0
  426. package/dist/esm/views/Matrix.mjs.map +1 -0
  427. package/dist/esm/views/Matrix.native.js +573 -0
  428. package/dist/esm/views/Matrix.native.js.map +1 -0
  429. package/dist/esm/views/ReportBuilder.native.js.map +1 -1
  430. package/dist/esm/views/TreeView.native.js.map +1 -1
  431. package/dist/esm/views/calendarMath.native.js.map +1 -1
  432. package/dist/esm/views/ganttMath.mjs +1 -1
  433. package/dist/esm/views/ganttMath.mjs.map +1 -1
  434. package/dist/esm/views/ganttMath.native.js +1 -1
  435. package/dist/esm/views/ganttMath.native.js.map +1 -1
  436. package/dist/esm/views/index.mjs +4 -2
  437. package/dist/esm/views/index.mjs.map +1 -1
  438. package/dist/esm/views/index.native.js +4 -2
  439. package/dist/esm/views/index.native.js.map +1 -1
  440. package/dist/esm/views/kanbanDnd.native.js.map +1 -1
  441. package/dist/esm/views/matrixMath.mjs +122 -0
  442. package/dist/esm/views/matrixMath.mjs.map +1 -0
  443. package/dist/esm/views/matrixMath.native.js +191 -0
  444. package/dist/esm/views/matrixMath.native.js.map +1 -0
  445. package/dist/esm/views/treeViewDnd.native.js.map +1 -1
  446. package/dist/esm/views/treeViewLayout.native.js.map +1 -1
  447. package/dist/esm/views/treeViewMotion.native.js.map +1 -1
  448. package/dist/esm/views/treeViewReveal.native.js.map +1 -1
  449. package/dist/jsx/Accordion/index.mjs +3 -7
  450. package/dist/jsx/Accordion/index.mjs.map +1 -1
  451. package/dist/jsx/Accordion/index.native.js +2 -6
  452. package/dist/jsx/Accordion/index.native.js.map +1 -1
  453. package/dist/jsx/AnimateHeight/index.mjs +2 -4
  454. package/dist/jsx/AnimateHeight/index.mjs.map +1 -1
  455. package/dist/jsx/AnimateHeight/index.native.js +1 -3
  456. package/dist/jsx/AnimateHeight/index.native.js.map +1 -1
  457. package/dist/jsx/Carousel/index.mjs +2 -1
  458. package/dist/jsx/Carousel/index.mjs.map +1 -1
  459. package/dist/jsx/Carousel/index.native.js +2 -1
  460. package/dist/jsx/Carousel/index.native.js.map +1 -1
  461. package/dist/jsx/Chip/index.mjs +15 -5
  462. package/dist/jsx/Chip/index.mjs.map +1 -1
  463. package/dist/jsx/Chip/index.native.js +13 -3
  464. package/dist/jsx/Chip/index.native.js.map +1 -1
  465. package/dist/jsx/ScrollView/index.mjs +3 -0
  466. package/dist/jsx/ScrollView/index.mjs.map +1 -0
  467. package/dist/jsx/ScrollView/index.native.js +72 -0
  468. package/dist/jsx/ScrollView/index.native.js.map +1 -0
  469. package/dist/jsx/SheetModal/index.native.js +70 -22
  470. package/dist/jsx/SheetModal/index.native.js.map +1 -1
  471. package/dist/jsx/Skeleton/index.mjs +1 -13
  472. package/dist/jsx/Skeleton/index.mjs.map +1 -1
  473. package/dist/jsx/Skeleton/index.native.js +1 -13
  474. package/dist/jsx/Skeleton/index.native.js.map +1 -1
  475. package/dist/jsx/Tabs/index.mjs +5 -8
  476. package/dist/jsx/Tabs/index.mjs.map +1 -1
  477. package/dist/jsx/Tabs/index.native.js +4 -7
  478. package/dist/jsx/Tabs/index.native.js.map +1 -1
  479. package/dist/jsx/Text.mjs +3 -1
  480. package/dist/jsx/Text.mjs.map +1 -1
  481. package/dist/jsx/Text.native.js +2 -0
  482. package/dist/jsx/Text.native.js.map +1 -1
  483. package/dist/jsx/TreeSelect/index.mjs +56 -53
  484. package/dist/jsx/TreeSelect/index.mjs.map +1 -1
  485. package/dist/jsx/TreeSelect/index.native.js +55 -52
  486. package/dist/jsx/TreeSelect/index.native.js.map +1 -1
  487. package/dist/jsx/Video/PlayerChrome.mjs +4 -10
  488. package/dist/jsx/Video/PlayerChrome.mjs.map +1 -1
  489. package/dist/jsx/Video/PlayerChrome.native.js +3 -9
  490. package/dist/jsx/Video/PlayerChrome.native.js.map +1 -1
  491. package/dist/jsx/charts/math.mjs +18 -1
  492. package/dist/jsx/charts/math.mjs.map +1 -1
  493. package/dist/jsx/charts/math.native.js +18 -0
  494. package/dist/jsx/charts/math.native.js.map +1 -1
  495. package/dist/jsx/charts/series.mjs +19 -10
  496. package/dist/jsx/charts/series.mjs.map +1 -1
  497. package/dist/jsx/charts/series.native.js +17 -8
  498. package/dist/jsx/charts/series.native.js.map +1 -1
  499. package/dist/jsx/charts/svg.mjs +6 -1
  500. package/dist/jsx/charts/svg.mjs.map +1 -1
  501. package/dist/jsx/charts/svg.native.js +6 -0
  502. package/dist/jsx/charts/svg.native.js.map +1 -1
  503. package/dist/jsx/charts/useChartTheme.mjs +4 -10
  504. package/dist/jsx/charts/useChartTheme.mjs.map +1 -1
  505. package/dist/jsx/charts/useChartTheme.native.js +4 -10
  506. package/dist/jsx/charts/useChartTheme.native.js.map +1 -1
  507. package/dist/jsx/code/Code/index.mjs +6 -0
  508. package/dist/jsx/code/Code/index.mjs.map +1 -1
  509. package/dist/jsx/code/Code/index.native.js +7 -4
  510. package/dist/jsx/code/Code/index.native.js.map +1 -1
  511. package/dist/jsx/code/CodeBlock/index.mjs +5 -6
  512. package/dist/jsx/code/CodeBlock/index.mjs.map +1 -1
  513. package/dist/jsx/code/CodeBlock/index.native.js +4 -5
  514. package/dist/jsx/code/CodeBlock/index.native.js.map +1 -1
  515. package/dist/jsx/icons/themed.mjs +3 -2
  516. package/dist/jsx/icons/themed.mjs.map +1 -1
  517. package/dist/jsx/icons/themed.native.js +2 -1
  518. package/dist/jsx/icons/themed.native.js.map +1 -1
  519. package/dist/jsx/knobImmuneExports.mjs +3 -3
  520. package/dist/jsx/knobImmuneExports.native.js +3 -3
  521. package/dist/jsx/layouts/PaneScaffold.mjs +70 -42
  522. package/dist/jsx/layouts/PaneScaffold.mjs.map +1 -1
  523. package/dist/jsx/layouts/PaneScaffold.native.js +75 -48
  524. package/dist/jsx/layouts/PaneScaffold.native.js.map +1 -1
  525. package/dist/jsx/layouts/attachments.mjs +3 -2
  526. package/dist/jsx/layouts/attachments.mjs.map +1 -1
  527. package/dist/jsx/layouts/attachments.native.js +2 -1
  528. package/dist/jsx/layouts/attachments.native.js.map +1 -1
  529. package/dist/jsx/layouts/page.mjs +3 -2
  530. package/dist/jsx/layouts/page.mjs.map +1 -1
  531. package/dist/jsx/layouts/page.native.js +2 -1
  532. package/dist/jsx/layouts/page.native.js.map +1 -1
  533. package/dist/jsx/layouts/sidebar.mjs +2 -4
  534. package/dist/jsx/layouts/sidebar.mjs.map +1 -1
  535. package/dist/jsx/layouts/sidebar.native.js +1 -3
  536. package/dist/jsx/layouts/sidebar.native.js.map +1 -1
  537. package/dist/jsx/layouts/timeline.mjs +11 -3
  538. package/dist/jsx/layouts/timeline.mjs.map +1 -1
  539. package/dist/jsx/layouts/timeline.native.js +9 -1
  540. package/dist/jsx/layouts/timeline.native.js.map +1 -1
  541. package/dist/jsx/surfaces.mjs +1 -33
  542. package/dist/jsx/surfaces.mjs.map +1 -1
  543. package/dist/jsx/surfaces.native.js +0 -32
  544. package/dist/jsx/surfaces.native.js.map +1 -1
  545. package/dist/jsx/tamagui.mjs +2 -1
  546. package/dist/jsx/tamagui.mjs.map +1 -1
  547. package/dist/jsx/tamagui.native.js +2 -1
  548. package/dist/jsx/tamagui.native.js.map +1 -1
  549. package/dist/jsx/views/Kanban.mjs +1 -0
  550. package/dist/jsx/views/Kanban.mjs.map +1 -1
  551. package/dist/jsx/views/Kanban.native.js +3 -1
  552. package/dist/jsx/views/Kanban.native.js.map +1 -1
  553. package/dist/jsx/views/List.mjs +5 -5
  554. package/dist/jsx/views/List.mjs.map +1 -1
  555. package/dist/jsx/views/List.native.js +7 -7
  556. package/dist/jsx/views/List.native.js.map +1 -1
  557. package/dist/jsx/views/Matrix.mjs +543 -0
  558. package/dist/jsx/views/Matrix.mjs.map +1 -0
  559. package/dist/jsx/views/Matrix.native.js +612 -0
  560. package/dist/jsx/views/Matrix.native.js.map +1 -0
  561. package/dist/jsx/views/ganttMath.mjs +1 -1
  562. package/dist/jsx/views/ganttMath.mjs.map +1 -1
  563. package/dist/jsx/views/ganttMath.native.js +2 -0
  564. package/dist/jsx/views/ganttMath.native.js.map +1 -1
  565. package/dist/jsx/views/index.mjs +4 -2
  566. package/dist/jsx/views/index.mjs.map +1 -1
  567. package/dist/jsx/views/index.native.js +16 -0
  568. package/dist/jsx/views/index.native.js.map +1 -1
  569. package/dist/jsx/views/matrixMath.mjs +122 -0
  570. package/dist/jsx/views/matrixMath.mjs.map +1 -0
  571. package/dist/jsx/views/matrixMath.native.js +229 -0
  572. package/dist/jsx/views/matrixMath.native.js.map +1 -0
  573. package/package.json +10 -10
  574. package/src/Accordion/Accordion.spec.tsx +20 -0
  575. package/src/Accordion/index.tsx +7 -3
  576. package/src/AnimateHeight/index.tsx +143 -142
  577. package/src/Carousel/index.tsx +2 -1
  578. package/src/Chip/Chip.borderLadder.spec.tsx +54 -0
  579. package/src/Chip/Chip.pressSlop.spec.tsx +57 -0
  580. package/src/Chip/Chip.spec.tsx +21 -16
  581. package/src/Chip/index.tsx +25 -3
  582. package/src/Heading.native.spec.tsx +1 -1
  583. package/src/ScrollView/ScrollView.native.spec.tsx +157 -0
  584. package/src/ScrollView/index.native.tsx +45 -0
  585. package/src/ScrollView/index.tsx +2 -0
  586. package/src/Separator/index.tsx +3 -3
  587. package/src/SheetModal/SheetModal.detentLayout.spec.tsx +173 -0
  588. package/src/SheetModal/SheetModal.touch.spec.tsx +63 -0
  589. package/src/SheetModal/index.native.tsx +95 -17
  590. package/src/Skeleton/Skeleton.spec.tsx +3 -3
  591. package/src/Skeleton/index.tsx +2 -15
  592. package/src/Tabs/Tabs.hydration.spec.tsx +123 -0
  593. package/src/Tabs/index.tsx +4 -3
  594. package/src/Text.spec.tsx +32 -2
  595. package/src/Text.tsx +7 -6
  596. package/src/Toast/Toast.spec.tsx +50 -0
  597. package/src/Tooltip/Tooltip.spec.tsx +55 -2
  598. package/src/TreeSelect/TreeSelect.spec.tsx +15 -15
  599. package/src/TreeSelect/index.tsx +53 -50
  600. package/src/Video/PlayerChrome.tsx +4 -3
  601. package/src/Wheel/Wheel.spec.tsx +4 -4
  602. package/src/adjacency.l1.spec.tsx +175 -0
  603. package/src/charts/charts.spec.tsx +49 -6
  604. package/src/charts/math.spec.ts +30 -0
  605. package/src/charts/math.ts +36 -0
  606. package/src/charts/series.tsx +14 -9
  607. package/src/charts/svg.ts +13 -0
  608. package/src/charts/useChartTheme.ts +14 -15
  609. package/src/code/Code/code.spec.tsx +2 -19
  610. package/src/code/Code/index.tsx +0 -6
  611. package/src/code/CodeBlock/index.tsx +5 -3
  612. package/src/code/highlightedCode.spec.tsx +2 -2
  613. package/src/code/hostProps.spec.tsx +55 -0
  614. package/src/icons/themed.hydration.spec.tsx +60 -0
  615. package/src/icons/themed.tsx +3 -6
  616. package/src/knobImmuneExports.ts +3 -3
  617. package/src/layouts/PaneScaffold.spec.tsx +148 -2
  618. package/src/layouts/PaneScaffold.stories.tsx +33 -1
  619. package/src/layouts/PaneScaffold.tsx +101 -48
  620. package/src/layouts/attachments.radius.spec.tsx +74 -0
  621. package/src/layouts/attachments.tsx +3 -1
  622. package/src/layouts/page.designLaw.spec.tsx +20 -0
  623. package/src/layouts/page.tsx +2 -0
  624. package/src/layouts/sidebar.tsx +2 -3
  625. package/src/layouts/timeline-radius.spec.tsx +38 -0
  626. package/src/layouts/timeline.tsx +16 -1
  627. package/src/overlayElevation.spec.tsx +39 -51
  628. package/src/surfaces.spec.tsx +13 -10
  629. package/src/surfaces.tsx +4 -33
  630. package/src/tamagui.spec.ts +4 -3
  631. package/src/tamagui.ts +4 -1
  632. package/src/textAccentSecondary.spec.tsx +100 -2
  633. package/src/views/Kanban.native.tsx +3 -1
  634. package/src/views/Kanban.spec.tsx +15 -0
  635. package/src/views/Kanban.tsx +1 -0
  636. package/src/views/List.spec.tsx +50 -0
  637. package/src/views/List.tsx +13 -5
  638. package/src/views/Matrix.spec.tsx +339 -0
  639. package/src/views/Matrix.stories.spec.tsx +68 -0
  640. package/src/views/Matrix.stories.tsx +153 -0
  641. package/src/views/Matrix.tsx +738 -0
  642. package/src/views/ganttMath.ts +4 -2
  643. package/src/views/index.ts +30 -0
  644. package/src/views/matrixMath.spec.ts +237 -0
  645. package/src/views/matrixMath.ts +251 -0
  646. package/src/views/views.spec.tsx +3 -1
  647. package/types/Accordion/index.d.ts.map +1 -1
  648. package/types/AnimateHeight/index.d.ts.map +1 -1
  649. package/types/Carousel/index.d.ts.map +1 -1
  650. package/types/Chip/index.d.ts.map +1 -1
  651. package/types/ScrollView/index.d.ts +3 -0
  652. package/types/ScrollView/index.d.ts.map +1 -0
  653. package/types/ScrollView/index.native.d.ts +4 -0
  654. package/types/ScrollView/index.native.d.ts.map +1 -0
  655. package/types/Separator/index.d.ts +3 -3
  656. package/types/SheetModal/index.native.d.ts.map +1 -1
  657. package/types/Skeleton/index.d.ts.map +1 -1
  658. package/types/Tabs/index.d.ts.map +1 -1
  659. package/types/Text.d.ts.map +1 -1
  660. package/types/TreeSelect/index.d.ts.map +1 -1
  661. package/types/Video/PlayerChrome.d.ts.map +1 -1
  662. package/types/charts/math.d.ts +18 -0
  663. package/types/charts/math.d.ts.map +1 -1
  664. package/types/charts/series.d.ts +2 -1
  665. package/types/charts/series.d.ts.map +1 -1
  666. package/types/charts/svg.d.ts +8 -0
  667. package/types/charts/svg.d.ts.map +1 -1
  668. package/types/charts/useChartTheme.d.ts +4 -3
  669. package/types/charts/useChartTheme.d.ts.map +1 -1
  670. package/types/code/Code/index.d.ts.map +1 -1
  671. package/types/code/CodeBlock/index.d.ts.map +1 -1
  672. package/types/icons/themed.d.ts.map +1 -1
  673. package/types/layouts/PaneScaffold.d.ts +14 -1
  674. package/types/layouts/PaneScaffold.d.ts.map +1 -1
  675. package/types/layouts/attachments.d.ts.map +1 -1
  676. package/types/layouts/page.d.ts.map +1 -1
  677. package/types/layouts/sidebar.d.ts.map +1 -1
  678. package/types/layouts/timeline.d.ts.map +1 -1
  679. package/types/surfaces.d.ts.map +1 -1
  680. package/types/tamagui.d.ts +2 -1
  681. package/types/tamagui.d.ts.map +1 -1
  682. package/types/views/Kanban.native.d.ts.map +1 -1
  683. package/types/views/List.d.ts.map +1 -1
  684. package/types/views/Matrix.d.ts +102 -0
  685. package/types/views/Matrix.d.ts.map +1 -0
  686. package/types/views/ganttMath.d.ts +4 -0
  687. package/types/views/ganttMath.d.ts.map +1 -1
  688. package/types/views/index.d.ts +3 -1
  689. package/types/views/index.d.ts.map +1 -1
  690. package/types/views/matrixMath.d.ts +114 -0
  691. package/types/views/matrixMath.d.ts.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","matrixMath_exports","alignMatrixRange","bucketName","bucketStart","computeMatrixRange","generateBuckets","localDateKey","matrixCellIntensity","matrixCellKey","matrixMaxValue","nextBucketStart","summarizeMatrixCells","module","exports","import_theme","require","import_ganttMath","date","y","getFullYear","m","String","getMonth","padStart","d","getDate","rule","firstDayOfWeek","arguments","length","startOfDay","startOfWeek","startOfMonth","start","addDays","Date","range","lastIncluded","end","lastDay","getTime","dates","today","min","max","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","err","return","lo","hi","formatAbsoluteDate","year","formatMonthYear","aligned","majors","generateTicks","filter","tick","major","map","index","_ref","_tick_label"],"sources":["../../../src/views/matrixMath.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplatform.one/components",
3
- "version": "7.11.0",
3
+ "version": "7.16.0",
4
4
  "description": "multiplatform.one ui components",
5
5
  "keywords": [
6
6
  "components",
@@ -15,7 +15,7 @@
15
15
  "license": "Apache-2.0",
16
16
  "repository": {
17
17
  "type": "git",
18
- "url": "git+https://gitlab.com/bitspur/frappe/multiplatform.one.git",
18
+ "url": "git+https://git.corp.bitspur.com/multiplatform.one/mpo.git",
19
19
  "directory": "public/components"
20
20
  },
21
21
  "source": "src/index.ts",
@@ -57,11 +57,11 @@
57
57
  },
58
58
  "dependencies": {
59
59
  "@floating-ui/react": "^0.27.19",
60
- "@multiplatform.one/forms": "7.11.0",
61
- "@multiplatform.one/i18n": "7.11.0",
62
- "@multiplatform.one/platform": "7.11.0",
63
- "@multiplatform.one/router": "7.11.0",
64
- "@multiplatform.one/theme": "7.11.0",
60
+ "@multiplatform.one/forms": "7.16.0",
61
+ "@multiplatform.one/i18n": "7.16.0",
62
+ "@multiplatform.one/platform": "7.16.0",
63
+ "@multiplatform.one/router": "7.16.0",
64
+ "@multiplatform.one/theme": "7.16.0",
65
65
  "@phosphor-icons/react": "^2.1.10",
66
66
  "@shopify/flash-list": "^2.3.1",
67
67
  "@tamagui/core": "2.7.6",
@@ -84,9 +84,9 @@
84
84
  "tamagui": "2.7.6"
85
85
  },
86
86
  "devDependencies": {
87
- "@multiplatform.one/config": "7.11.0",
88
- "@multiplatform.one/storybook": "7.11.0",
89
- "@multiplatform.one/test-utils": "7.11.0",
87
+ "@multiplatform.one/config": "7.16.0",
88
+ "@multiplatform.one/storybook": "7.16.0",
89
+ "@multiplatform.one/test-utils": "7.16.0",
90
90
  "@tamagui/build": "2.7.6",
91
91
  "@testing-library/jest-dom": "^6.9.1",
92
92
  "@testing-library/react": "^16.3.2",
@@ -245,4 +245,24 @@ describe("Accordion density — pad and gap move, control height holds (LC-76)",
245
245
  expect(atoms(compactTrigger, gap)).not.toEqual(comfortableMeasure.gap);
246
246
  expect(atoms(compactTrigger, height)).toEqual(comfortableMeasure.height);
247
247
  });
248
+ it("survives the animation knob flipping live from none to bouncy (MPO-327)", () => {
249
+ const Flip = ({ animation }: { animation: "none" | "bouncy" }) => (
250
+ <Preset overrides={{ animation }}>
251
+ <Accordion defaultValue="a">
252
+ <Accordion.Item value="a">
253
+ <Accordion.Trigger>Section A</Accordion.Trigger>
254
+ <Accordion.Content>
255
+ <Text>Content A</Text>
256
+ </Accordion.Content>
257
+ </Accordion.Item>
258
+ </Accordion>
259
+ </Preset>
260
+ );
261
+ const { container, rerender } = renderWithProviders(<Flip animation="none" />);
262
+ expect(container.textContent).toContain("Content A");
263
+
264
+ expect(() => rerender(<Flip animation="bouncy" />)).not.toThrow();
265
+ expect(container.textContent).toContain("Content A");
266
+ expect(getTriggers(container)[0].getAttribute("aria-expanded")).toBe("true");
267
+ });
248
268
  });
@@ -15,6 +15,7 @@ import {
15
15
  useResolvedKnobs,
16
16
  wasKeyboardFocus,
17
17
  type GroupPosition,
18
+ transitionProps,
18
19
  } from "@multiplatform.one/theme";
19
20
  import type { ReactNode } from "react";
20
21
  import {
@@ -254,7 +255,7 @@ function Chevron({
254
255
  rotate={open ? "180deg" : "0deg"}
255
256
  aria-hidden
256
257
  pointerEvents="none"
257
- {...(transition ? { transition } : {})}
258
+ {...transitionProps(transition)}
258
259
  >
259
260
  <ThemedCaretDown color={color} size={size} />
260
261
  </View>
@@ -550,13 +551,16 @@ const AccordionTrigger = forwardRef<TamaguiElement, AccordionTriggerProps>(
550
551
  },
551
552
  }
552
553
  : { onFocus, onBlur })}
553
- {...(knobProps.transition ? { transition: knobProps.transition } : {})}
554
+ {...transitionProps(knobProps.transition)}
554
555
  {...props}
555
556
  >
556
557
  <Chevron
557
558
  open={item.open}
558
559
  size={chevronPx}
559
- color={(item.disabled ? disabledState.textKnobProps.color : knobProps.textAccentColor) ?? knobProps.textAccentColor}
560
+ color={
561
+ (item.disabled ? disabledState.textKnobProps.color : knobProps.textAccentColor) ??
562
+ knobProps.textAccentColor
563
+ }
560
564
  transition={knobProps.transition}
561
565
  />
562
566
  {icon ? (
@@ -1,5 +1,5 @@
1
1
  import { isWeb } from "@multiplatform.one/platform";
2
- import { useResolvedKnobs } from "@multiplatform.one/theme";
2
+ import { transitionProps, useResolvedKnobs } from "@multiplatform.one/theme";
3
3
  import type { ReactNode } from "react";
4
4
  import { forwardRef, useCallback, useEffect, useLayoutEffect, useRef, useState } from "react";
5
5
  import type { LayoutChangeEvent } from "react-native";
@@ -77,163 +77,164 @@ export function settleMs(transition: TransitionProp | undefined): number {
77
77
  return (ms ?? 600) + 80;
78
78
  }
79
79
 
80
- const WebAnimateHeight = forwardRef<TamaguiElement, AnimateHeightProps>(
81
- function AnimateHeight({ open, children, transition: transitionProp, ...props }, ref) {
82
- const { knobProps } = useResolvedKnobs();
83
- // knob transition is undefined under reduced motion / animation="none"
84
- const transition = transitionProp ?? knobProps.transition;
85
- const collapsible = open !== undefined;
80
+ const WebAnimateHeight = forwardRef<TamaguiElement, AnimateHeightProps>(function AnimateHeight(
81
+ { open, children, transition: transitionProp, ...props },
82
+ ref,
83
+ ) {
84
+ const { knobProps } = useResolvedKnobs();
85
+ // knob transition is undefined under reduced motion / animation="none"
86
+ const transition = transitionProp ?? knobProps.transition;
87
+ const collapsible = open !== undefined;
86
88
 
87
- // null = natural (auto) height: initial open/follower render before the
88
- // first measurement, so there is never a flash of collapsed content.
89
- const [displayHeight, setDisplayHeight] = useState<number | null>(
90
- collapsible && !open ? 0 : null,
91
- );
92
- // Children stay mounted through the exit tween, then unmount at rest.
93
- const [exiting, setExiting] = useState(false);
94
- const [prevOpen, setPrevOpen] = useState(open);
89
+ // null = natural (auto) height: initial open/follower render before the
90
+ // first measurement, so there is never a flash of collapsed content.
91
+ const [displayHeight, setDisplayHeight] = useState<number | null>(
92
+ collapsible && !open ? 0 : null,
93
+ );
94
+ // Children stay mounted through the exit tween, then unmount at rest.
95
+ const [exiting, setExiting] = useState(false);
96
+ const [prevOpen, setPrevOpen] = useState(open);
95
97
 
96
- const measuredRef = useRef<number | null>(null);
97
- // Set on closed → open: hold height 0 until the first measurement so the
98
- // expand tweens 0 → px instead of snapping to auto.
99
- const openingRef = useRef(false);
100
- const unmountTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);
101
- const rafRef = useRef<number | null>(null);
102
- const innerRef = useRef<TamaguiElement | null>(null);
98
+ const measuredRef = useRef<number | null>(null);
99
+ // Set on closed → open: hold height 0 until the first measurement so the
100
+ // expand tweens 0 → px instead of snapping to auto.
101
+ const openingRef = useRef(false);
102
+ const unmountTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);
103
+ const rafRef = useRef<number | null>(null);
104
+ const innerRef = useRef<TamaguiElement | null>(null);
103
105
 
104
- // Adjust state during render (React's usePrevious pattern) so children
105
- // mount in the SAME commit `open` flips true, and stay mounted for the
106
- // exit tween when it flips false.
107
- if (collapsible && open !== prevOpen) {
108
- setPrevOpen(open);
109
- if (open) {
110
- // Hold at 0 until measurement only when children were unmounted (at
111
- // rest). Re-opening mid-exit keeps the existing measurement — the
112
- // observer will not re-fire for unchanged content — so the effect
113
- // below retargets it directly and the tween reverses in place.
114
- openingRef.current = !exiting;
115
- if (exiting) setExiting(false);
116
- } else {
117
- openingRef.current = false;
118
- setExiting(true);
119
- }
106
+ // Adjust state during render (React's usePrevious pattern) so children
107
+ // mount in the SAME commit `open` flips true, and stay mounted for the
108
+ // exit tween when it flips false.
109
+ if (collapsible && open !== prevOpen) {
110
+ setPrevOpen(open);
111
+ if (open) {
112
+ // Hold at 0 until measurement only when children were unmounted (at
113
+ // rest). Re-opening mid-exit keeps the existing measurement — the
114
+ // observer will not re-fire for unchanged content — so the effect
115
+ // below retargets it directly and the tween reverses in place.
116
+ openingRef.current = !exiting;
117
+ if (exiting) setExiting(false);
118
+ } else {
119
+ openingRef.current = false;
120
+ setExiting(true);
120
121
  }
122
+ }
121
123
 
122
- const shouldRenderChildren = !collapsible || open || exiting;
123
- const atRestClosed = collapsible && !open && !exiting;
124
+ const shouldRenderChildren = !collapsible || open || exiting;
125
+ const atRestClosed = collapsible && !open && !exiting;
124
126
 
125
- const clearPending = useCallback(() => {
126
- if (unmountTimerRef.current != null) {
127
- clearTimeout(unmountTimerRef.current);
128
- unmountTimerRef.current = null;
129
- }
130
- if (rafRef.current != null && typeof cancelAnimationFrame === "function") {
131
- cancelAnimationFrame(rafRef.current);
132
- rafRef.current = null;
133
- }
134
- }, []);
127
+ const clearPending = useCallback(() => {
128
+ if (unmountTimerRef.current != null) {
129
+ clearTimeout(unmountTimerRef.current);
130
+ unmountTimerRef.current = null;
131
+ }
132
+ if (rafRef.current != null && typeof cancelAnimationFrame === "function") {
133
+ cancelAnimationFrame(rafRef.current);
134
+ rafRef.current = null;
135
+ }
136
+ }, []);
135
137
 
136
- const handleMeasured = useCallback(
137
- (height: number) => {
138
- measuredRef.current = height;
139
- // Closing (or closed): the target stays 0 — ignore content measures.
140
- if (collapsible && !open) return;
141
- if (openingRef.current) {
142
- openingRef.current = false;
143
- // Double rAF: guarantee the browser paints the height-0 frame
144
- // before the target lands, or the 0 → px tween never runs.
138
+ const handleMeasured = useCallback(
139
+ (height: number) => {
140
+ measuredRef.current = height;
141
+ // Closing (or closed): the target stays 0 — ignore content measures.
142
+ if (collapsible && !open) return;
143
+ if (openingRef.current) {
144
+ openingRef.current = false;
145
+ // Double rAF: guarantee the browser paints the height-0 frame
146
+ // before the target lands, or the 0 → px tween never runs.
147
+ rafRef.current = requestAnimationFrame(() => {
145
148
  rafRef.current = requestAnimationFrame(() => {
146
- rafRef.current = requestAnimationFrame(() => {
147
- rafRef.current = null;
148
- setDisplayHeight(height);
149
- });
149
+ rafRef.current = null;
150
+ setDisplayHeight(height);
150
151
  });
151
- return;
152
- }
153
- setDisplayHeight(height);
154
- },
155
- [collapsible, open],
156
- );
157
- const handleMeasuredRef = useRef(handleMeasured);
158
- handleMeasuredRef.current = handleMeasured;
159
- const transitionRef = useRef(transition);
160
- transitionRef.current = transition;
152
+ });
153
+ return;
154
+ }
155
+ setDisplayHeight(height);
156
+ },
157
+ [collapsible, open],
158
+ );
159
+ const handleMeasuredRef = useRef(handleMeasured);
160
+ handleMeasuredRef.current = handleMeasured;
161
+ const transitionRef = useRef(transition);
162
+ transitionRef.current = transition;
161
163
 
162
- // Web: ResizeObserver on the content wrapper — fires on observe (initial
163
- // measure) and on any intrinsic size change while mounted.
164
- useLayoutEffect(() => {
165
- if (!isWeb || !shouldRenderChildren) return;
166
- const node = innerRef.current as unknown as HTMLElement | null;
167
- if (!node || typeof ResizeObserver === "undefined") return;
168
- const observer = new ResizeObserver(() => {
169
- // getBoundingClientRect keeps fractional text heights exact.
170
- handleMeasuredRef.current(node.getBoundingClientRect().height);
171
- });
172
- observer.observe(node);
173
- return () => observer.disconnect();
174
- }, [shouldRenderChildren]);
164
+ // Web: ResizeObserver on the content wrapper — fires on observe (initial
165
+ // measure) and on any intrinsic size change while mounted.
166
+ useLayoutEffect(() => {
167
+ if (!isWeb || !shouldRenderChildren) return;
168
+ const node = innerRef.current as unknown as HTMLElement | null;
169
+ if (!node || typeof ResizeObserver === "undefined") return;
170
+ const observer = new ResizeObserver(() => {
171
+ // getBoundingClientRect keeps fractional text heights exact.
172
+ handleMeasuredRef.current(node.getBoundingClientRect().height);
173
+ });
174
+ observer.observe(node);
175
+ return () => observer.disconnect();
176
+ }, [shouldRenderChildren]);
175
177
 
176
- // Native: onLayout on the content wrapper is the measurement source.
177
- const onInnerLayout = useCallback((event: LayoutChangeEvent) => {
178
- handleMeasuredRef.current(event.nativeEvent.layout.height);
179
- }, []);
178
+ // Native: onLayout on the content wrapper is the measurement source.
179
+ const onInnerLayout = useCallback((event: LayoutChangeEvent) => {
180
+ handleMeasuredRef.current(event.nativeEvent.layout.height);
181
+ }, []);
180
182
 
181
- // Drive the open/close targets after commit.
182
- useEffect(() => {
183
- if (!collapsible) return;
184
- clearPending();
185
- if (open) {
186
- // Opening from closed holds 0 until measurement (openingRef); if a
187
- // measurement already exists (close interrupted mid-tween), retarget
188
- // it immediately so the tween reverses from wherever it is.
189
- if (!openingRef.current && measuredRef.current != null) {
190
- setDisplayHeight(measuredRef.current);
191
- }
192
- return;
183
+ // Drive the open/close targets after commit.
184
+ useEffect(() => {
185
+ if (!collapsible) return;
186
+ clearPending();
187
+ if (open) {
188
+ // Opening from closed holds 0 until measurement (openingRef); if a
189
+ // measurement already exists (close interrupted mid-tween), retarget
190
+ // it immediately so the tween reverses from wherever it is.
191
+ if (!openingRef.current && measuredRef.current != null) {
192
+ setDisplayHeight(measuredRef.current);
193
193
  }
194
- // Closing: tween px → 0, then unmount at rest. When nothing can tween
195
- // (no transition token — reduced motion — or no real measurement, as in
196
- // non-layout test environments), finalize immediately. The transition is
197
- // read through a ref at close time only — mid-tween knob changes should
198
- // not restart the exit timer.
199
- setDisplayHeight(0);
200
- const closeTransition = transitionRef.current;
201
- const canTween = Boolean(closeTransition) && (measuredRef.current ?? 0) > 0;
202
- if (canTween) {
203
- unmountTimerRef.current = setTimeout(() => {
204
- unmountTimerRef.current = null;
205
- setExiting(false);
206
- }, settleMs(closeTransition));
207
- } else {
194
+ return;
195
+ }
196
+ // Closing: tween px → 0, then unmount at rest. When nothing can tween
197
+ // (no transition token — reduced motion — or no real measurement, as in
198
+ // non-layout test environments), finalize immediately. The transition is
199
+ // read through a ref at close time only — mid-tween knob changes should
200
+ // not restart the exit timer.
201
+ setDisplayHeight(0);
202
+ const closeTransition = transitionRef.current;
203
+ const canTween = Boolean(closeTransition) && (measuredRef.current ?? 0) > 0;
204
+ if (canTween) {
205
+ unmountTimerRef.current = setTimeout(() => {
206
+ unmountTimerRef.current = null;
208
207
  setExiting(false);
209
- }
210
- }, [collapsible, open, clearPending]);
208
+ }, settleMs(closeTransition));
209
+ } else {
210
+ setExiting(false);
211
+ }
212
+ }, [collapsible, open, clearPending]);
211
213
 
212
- useEffect(() => clearPending, [clearPending]);
214
+ useEffect(() => clearPending, [clearPending]);
213
215
 
214
- return (
215
- <View
216
- ref={ref}
217
- overflow="hidden"
218
- {...(displayHeight != null ? { height: displayHeight } : {})}
219
- {...(atRestClosed ? { display: "none" as const } : {})}
220
- {...(transition ? { transition } : {})}
221
- {...props}
222
- >
223
- {shouldRenderChildren ? (
224
- <View
225
- ref={innerRef}
226
- // keep natural height inside the clipped, height-driven outer
227
- flexShrink={0}
228
- {...(!isWeb ? { onLayout: onInnerLayout } : {})}
229
- >
230
- {children}
231
- </View>
232
- ) : null}
233
- </View>
234
- );
235
- },
236
- );
216
+ return (
217
+ <View
218
+ ref={ref}
219
+ overflow="hidden"
220
+ {...(displayHeight != null ? { height: displayHeight } : {})}
221
+ {...(atRestClosed ? { display: "none" as const } : {})}
222
+ {...transitionProps(transition)}
223
+ {...props}
224
+ >
225
+ {shouldRenderChildren ? (
226
+ <View
227
+ ref={innerRef}
228
+ // keep natural height inside the clipped, height-driven outer
229
+ flexShrink={0}
230
+ {...(!isWeb ? { onLayout: onInnerLayout } : {})}
231
+ >
232
+ {children}
233
+ </View>
234
+ ) : null}
235
+ </View>
236
+ );
237
+ });
237
238
 
238
239
  /** Native layout has no height tween, so measurement must not gate visibility. */
239
240
  const NativeAnimateHeight = forwardRef<TamaguiElement, AnimateHeightProps>(
@@ -19,8 +19,9 @@ import {
19
19
  useResolvedKnobs,
20
20
  } from "@multiplatform.one/theme";
21
21
  import type { GetProps, ScrollView as TamaguiScrollView } from "tamagui";
22
- import { View, XStack, ScrollView, getTokens, isWeb, styled } from "tamagui";
22
+ import { View, XStack, getTokens, isWeb, styled } from "tamagui";
23
23
  import { DotIndicator } from "../DotIndicator";
24
+ import { ScrollView } from "../ScrollView";
24
25
  import { useDirection } from "../hooks/useDirection";
25
26
  import { withInterp } from "../shared/t";
26
27
 
@@ -0,0 +1,54 @@
1
+ /**
2
+ * MPO-134: the story-backed Chip (`Components/Chip`) spreads the resolver's
3
+ * borderWidth as-is. knob-laws used to describe the frame as an ignore pinned
4
+ * at 1, and the sweep measured 1 / 1 / 1 / 2 while a local `Math.max(…, 1)`
5
+ * floor was in place; that floor went with 5056bce23, so the real ladder is
6
+ * the resolver's, and the box moves with it. This pins the declared edge at
7
+ * every stop so the doc row cannot drift from the component again.
8
+ *
9
+ * Assertions read the atomic border-width class the FRAME emits.
10
+ */
11
+
12
+ import { renderWithProviders } from "@multiplatform.one/test-utils";
13
+ import { Preset } from "@multiplatform.one/theme";
14
+ import { cleanup } from "@testing-library/react";
15
+ import { afterEach, describe, expect, it } from "vitest";
16
+ import { Chip } from "./index";
17
+
18
+ afterEach(cleanup);
19
+
20
+ const STOPS = ["none", "small", "medium", "large"] as const;
21
+
22
+ function renderAt(stop: (typeof STOPS)[number], outlined = false): string[] {
23
+ const result = renderWithProviders(
24
+ <Preset overrides={{ fillStyle: outlined ? "outlined" : "filled", borderWidth: stop }}>
25
+ <Chip variant="outlined" onPress={() => {}}>
26
+ Fire
27
+ </Chip>
28
+ </Preset>,
29
+ );
30
+ const frame = result.container.querySelector("[data-chip]") as HTMLElement;
31
+ const atoms = String(frame.className || "")
32
+ .split(/\s+/)
33
+ .filter((c) => c.startsWith("_btw-"))
34
+ .sort();
35
+ cleanup();
36
+ return atoms;
37
+ }
38
+
39
+ describe("Chip borderWidth ladder (MPO-134)", () => {
40
+ it("the frame honours the resolver's edge: 0 / 0.5 / 1 / 2", () => {
41
+ expect(renderAt("none")).toEqual(["_btw-0px"]);
42
+ expect(renderAt("small")).toEqual(["_btw-0--5px"]);
43
+ expect(renderAt("medium")).toEqual(["_btw-1px"]);
44
+ expect(renderAt("large")).toEqual(["_btw-2px"]);
45
+ });
46
+
47
+ it("medium and large differ, so the chip box moves with the stop", () => {
48
+ expect(renderAt("medium")).not.toEqual(renderAt("large"));
49
+ });
50
+
51
+ it("none under fillStyle:outlined is the resolver's hairline, not a local floor", () => {
52
+ expect(renderAt("none", true)).toEqual(["_btw-0--5px"]);
53
+ });
54
+ });
@@ -0,0 +1,57 @@
1
+ /**
2
+ * MPO-134 K12: the pressable Chip body takes the press-slop channel on the
3
+ * vertical axis only, pitch-limited so a wrapped chip row's target never
4
+ * reaches the next row's (LC-54). Rows wrap at `$2` = 7px, so each row may
5
+ * reach 3px past its painted box; the channel's pseudo-element sits on the
6
+ * padding box, so the outset carries the frame's border width on top.
7
+ */
8
+
9
+ import { renderWithProviders } from "@multiplatform.one/test-utils";
10
+ import { Preset } from "@multiplatform.one/theme";
11
+ import { cleanup } from "@testing-library/react";
12
+ import { afterEach, describe, expect, it } from "vitest";
13
+ import { Chip } from "./index";
14
+
15
+ afterEach(cleanup);
16
+
17
+ type Stop = "none" | "small" | "medium" | "large";
18
+
19
+ function frameAt(
20
+ borderWidth: Stop,
21
+ props: { onPress?: () => void; disabled?: boolean } = { onPress: () => {} },
22
+ ) {
23
+ const result = renderWithProviders(
24
+ <Preset overrides={{ borderWidth }}>
25
+ <Chip variant="outlined" {...props}>
26
+ Fire
27
+ </Chip>
28
+ </Preset>,
29
+ );
30
+ return result.container.querySelector("[data-chip]") as HTMLElement;
31
+ }
32
+
33
+ describe("Chip pressable body slop (MPO-134, K12)", () => {
34
+ it("reaches half the chip-row gap past the painted box, vertically only", () => {
35
+ const frame = frameAt("none");
36
+ expect(frame.getAttribute("role")).toBe("button");
37
+ expect(frame.getAttribute("data-mp-press-slop")).toBe("3");
38
+ expect(frame.getAttribute("data-mp-press-axis")).toBe("vertical");
39
+ });
40
+
41
+ it("adds the frame's border back, so the reach past the box is the same at every stop", () => {
42
+ expect(frameAt("small").getAttribute("data-mp-press-slop")).toBe("4");
43
+ expect(frameAt("medium").getAttribute("data-mp-press-slop")).toBe("4");
44
+ expect(frameAt("large").getAttribute("data-mp-press-slop")).toBe("5");
45
+ });
46
+
47
+ it("a chip with no press handler has no target, so no slop", () => {
48
+ const frame = frameAt("medium", {});
49
+ expect(frame.getAttribute("role")).toBeNull();
50
+ expect(frame.getAttribute("data-mp-press-slop")).toBeNull();
51
+ });
52
+
53
+ it("a disabled chip gates its target and drops the slop", () => {
54
+ const frame = frameAt("medium", { onPress: () => {}, disabled: true });
55
+ expect(frame.getAttribute("data-mp-press-slop")).toBeNull();
56
+ });
57
+ });
@@ -199,21 +199,26 @@ describe("Chip", () => {
199
199
  ).toEqual(["_btlr-t-radius-12"]);
200
200
  });
201
201
 
202
- it("dismiss is R-BINARY: square at none, round at every other stop", () => {
203
- const none = renderWithProviders(
204
- <Preset overrides={{ borderRadius: "none" }}>
205
- <Chip onDismiss={() => {}}>None</Chip>
206
- </Preset>,
207
- );
208
- const noneDismiss = none.container.querySelector("[aria-label='Remove']") as HTMLElement;
209
- expect(noneDismiss.className).toMatch(/_btlr-0px\b/);
210
-
211
- const full = renderWithProviders(
212
- <Preset overrides={{ borderRadius: "full" }}>
213
- <Chip onDismiss={() => {}}>Full</Chip>
214
- </Preset>,
215
- );
216
- const fullDismiss = full.container.querySelector("[aria-label='Remove']") as HTMLElement;
217
- expect(fullDismiss.className).toMatch(/_btlr-1000px\b/);
202
+ it("dismiss is CIRCULAR-AT-FULL: the token below full, a circle at full (DG-RAD-02)", () => {
203
+ const radiusAt = (borderRadius: "none" | "small" | "medium" | "full") => {
204
+ const result = renderWithProviders(
205
+ <Preset overrides={{ borderRadius }}>
206
+ <Chip onDismiss={() => {}}>Dismiss</Chip>
207
+ </Preset>,
208
+ );
209
+ const button = result.container.querySelector("[aria-label='Remove']") as HTMLElement;
210
+ const ring = button.querySelector(".mp-chip-dismiss-ring") as HTMLElement;
211
+ const atoms = [button, ring].map((el) =>
212
+ String(el.className)
213
+ .split(" ")
214
+ .filter((c) => c.startsWith("_btlr-")),
215
+ );
216
+ result.unmount();
217
+ return atoms;
218
+ };
219
+ expect(radiusAt("none")).toEqual([["_btlr-0px"], ["_btlr-0px"]]);
220
+ expect(radiusAt("small")).toEqual([["_btlr-5px"], ["_btlr-5px"]]);
221
+ expect(radiusAt("medium")).toEqual([["_btlr-9px"], ["_btlr-9px"]]);
222
+ expect(radiusAt("full")).toEqual([["_btlr-1000px"], ["_btlr-1000px"]]);
218
223
  });
219
224
  });