@12-apps/ui 6.43.1 → 6.44.1

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 (429) hide show
  1. package/NATIVE.md +2 -2
  2. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +3 -3
  3. package/dist/_internal/components/data-display/Badge/Badge.js +6 -5
  4. package/dist/_internal/components/data-display/Badge/Badge.styles.js +4 -3
  5. package/dist/_internal/components/data-display/Badge/BadgeContent.js +5 -4
  6. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +5 -5
  7. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +5 -5
  8. package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +5 -4
  9. package/dist/_internal/components/data-display/Carousel/Carousel.js +8 -7
  10. package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +4 -3
  11. package/dist/_internal/components/data-display/Carousel/Carousel.styles.js +4 -3
  12. package/dist/_internal/components/data-display/Chart/Chart.js +7 -6
  13. package/dist/_internal/components/data-display/Chart/SpecChart.js +8 -7
  14. package/dist/_internal/components/data-display/Chart/chart-context.js +5 -4
  15. package/dist/_internal/components/data-display/Chart/chart-internals.js +4 -3
  16. package/dist/_internal/components/data-display/Chart/chart-renderers.js +6 -5
  17. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +4 -3
  18. package/dist/_internal/components/data-display/DataGrid/DataGrid.model.js +3 -2
  19. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +32 -31
  20. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +45 -44
  21. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +3 -3
  22. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +7 -7
  23. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +3 -3
  24. package/dist/_internal/components/data-display/DataViews/base-card.js +4 -3
  25. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +6 -5
  26. package/dist/_internal/components/data-display/DataViews/base-list-card-gutters.js +5 -3
  27. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +5 -4
  28. package/dist/_internal/components/data-display/DataViews/base-list-card.js +11 -9
  29. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +8 -8
  30. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +5 -4
  31. package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +4 -3
  32. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +12 -12
  33. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +8 -7
  34. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +31 -30
  35. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +12 -12
  36. package/dist/_internal/components/data-display/DataViews/data-views-layout-context.js +3 -2
  37. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +9 -9
  38. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +10 -10
  39. package/dist/_internal/components/data-display/DataViews/data-views-scope-tabs.js +4 -3
  40. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +8 -7
  41. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +10 -10
  42. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +7 -6
  43. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +4 -3
  44. package/dist/_internal/components/data-display/DataViews/use-saved-views-controller.js +2 -2
  45. package/dist/_internal/components/data-display/EmptyState/EmptyState.js +2 -2
  46. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +5 -5
  47. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +4 -4
  48. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +13 -12
  49. package/dist/_internal/components/data-display/InteractiveTooltip/InteractiveTooltip.js +2 -2
  50. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +2 -2
  51. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +2 -2
  52. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +3 -3
  53. package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +3 -3
  54. package/dist/_internal/components/data-display/Sheet/Sheet.body.js +3 -2
  55. package/dist/_internal/components/data-display/Sheet/Sheet.js +5 -4
  56. package/dist/_internal/components/data-display/Sheet/Sheet.styles.js +4 -3
  57. package/dist/_internal/components/data-display/Table/Table.js +4 -3
  58. package/dist/_internal/components/data-display/index.js +38 -37
  59. package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.js +2 -2
  60. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +3 -3
  61. package/dist/_internal/components/feedback/ConfirmAction/with-confirmation.js +2 -2
  62. package/dist/_internal/components/feedback/Dialog/Dialog.js +2 -2
  63. package/dist/_internal/components/feedback/StackedModal/StackedModal.js +6 -6
  64. package/dist/_internal/components/feedback/index.js +14 -14
  65. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +1 -1
  66. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +1 -1
  67. package/dist/_internal/components/form/Autocomplete/Autocomplete.js +3 -3
  68. package/dist/_internal/components/form/Autocomplete/useAutocomplete.js +1 -1
  69. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +3 -3
  70. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +6 -6
  71. package/dist/_internal/components/form/Checkbox/Checkbox.js +4 -2
  72. package/dist/_internal/components/form/Checkbox/Checkbox.metrics.js +7 -3
  73. package/dist/_internal/components/form/Command/Command.js +5 -4
  74. package/dist/_internal/components/form/Command/Command.styles.js +4 -3
  75. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +2 -2
  76. package/dist/_internal/components/form/Label/Label.js +5 -4
  77. package/dist/_internal/components/form/Label/Label.styles.js +4 -3
  78. package/dist/_internal/components/form/Menubar/Menubar.item.js +5 -4
  79. package/dist/_internal/components/form/Menubar/Menubar.js +7 -6
  80. package/dist/_internal/components/form/Menubar/Menubar.styles.js +4 -3
  81. package/dist/_internal/components/form/Menubar/Menubar.toolbar.js +6 -5
  82. package/dist/_internal/components/form/UploadButton/UploadButton.js +2 -2
  83. package/dist/_internal/components/form/index.js +21 -20
  84. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +7 -7
  85. package/dist/_internal/components/form/total-form/Fields/index.js +11 -11
  86. package/dist/_internal/components/index.js +100 -99
  87. package/dist/_internal/components/layout/Box/Box.js +6 -5
  88. package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +2 -2
  89. package/dist/_internal/components/layout/SettingCard/SettingCard.js +8 -7
  90. package/dist/_internal/components/layout/SettingCard/SettingCard.parts.js +7 -6
  91. package/dist/_internal/components/layout/SettingCard/SettingGrid.js +8 -7
  92. package/dist/_internal/components/layout/SettingCard/SettingGroup.js +10 -9
  93. package/dist/_internal/components/layout/SettingCard/SettingSwitch.js +9 -8
  94. package/dist/_internal/components/layout/SettingCard/SettingToggle.js +10 -9
  95. package/dist/_internal/components/layout/Stack/Stack.js +7 -6
  96. package/dist/_internal/components/layout/index.js +20 -19
  97. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +8 -7
  98. package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +4 -3
  99. package/dist/_internal/components/navigation/CommandPalette/CommandPalette.js +2 -2
  100. package/dist/_internal/components/navigation/NavigationMenu/NavigationMegaSection.js +3 -3
  101. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +5 -5
  102. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenuItem.js +2 -2
  103. package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +3 -3
  104. package/dist/_internal/components/navigation/index.js +16 -15
  105. package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.js +2 -2
  106. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.helpers.js +6 -3
  107. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +7 -6
  108. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +5 -4
  109. package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +6 -5
  110. package/dist/_internal/components/utility/index.js +9 -8
  111. package/dist/_internal/icons/Icon.js +6 -5
  112. package/dist/_internal/provider/UiProvider.js +5 -4
  113. package/dist/_internal/provider/mui-bridge.js +4 -3
  114. package/dist/_internal/provider/use-ui-theme.js +5 -4
  115. package/dist/_internal/tokens/density-overrides.js +11 -0
  116. package/dist/_internal/tokens/density-overrides.js.map +1 -0
  117. package/dist/_internal/tokens/density.js +3 -1
  118. package/dist/charts.js +8 -7
  119. package/dist/{chunk-GZT7MLLO.js → chunk-26QYVCDK.js} +2 -2
  120. package/dist/{chunk-DJKVSUXH.js → chunk-2GG5W6LR.js} +10 -2
  121. package/dist/chunk-2GG5W6LR.js.map +1 -0
  122. package/dist/{chunk-442FSG7G.js → chunk-3I77A65F.js} +4 -4
  123. package/dist/{chunk-R2FUQV24.js → chunk-4MGUBSAL.js} +2 -2
  124. package/dist/{chunk-YIWVHEPW.js → chunk-4T5LD2NV.js} +2 -2
  125. package/dist/{chunk-4CHYMTBT.js → chunk-4WCDMCIS.js} +4 -4
  126. package/dist/chunk-532XOWZ5.js +59 -0
  127. package/dist/chunk-532XOWZ5.js.map +1 -0
  128. package/dist/{chunk-5KGABAQB.js → chunk-5752357K.js} +4 -4
  129. package/dist/{chunk-JSGVYOMN.js → chunk-5MW7OYBM.js} +2 -2
  130. package/dist/{chunk-RWRPF24F.js → chunk-5OS5AMC2.js} +2 -2
  131. package/dist/{chunk-I6MVJWUO.js → chunk-6B3QXFF5.js} +2 -2
  132. package/dist/{chunk-MLUUF7OZ.js → chunk-6B4UTB4O.js} +2 -2
  133. package/dist/{chunk-FBUCXTA4.js → chunk-6DMUVVON.js} +2 -2
  134. package/dist/{chunk-G7RYAWPZ.js → chunk-6HTCCWUM.js} +2 -2
  135. package/dist/{chunk-77BKKPCI.js → chunk-6KLDYVRY.js} +2 -2
  136. package/dist/{chunk-6Z6PUG4C.js → chunk-6LYRFS5S.js} +5 -5
  137. package/dist/{chunk-KJID4PRD.js → chunk-6S25ZCEW.js} +34 -45
  138. package/dist/chunk-6S25ZCEW.js.map +1 -0
  139. package/dist/{chunk-K4A3JDYQ.js → chunk-6ZWOVUNB.js} +2 -2
  140. package/dist/{chunk-3RUCLKAK.js → chunk-7HZTYK7U.js} +4 -4
  141. package/dist/{chunk-BKZERHNC.js → chunk-7XDET7PL.js} +3 -3
  142. package/dist/{chunk-OD3L6GX5.js → chunk-A7OQBAR7.js} +2 -2
  143. package/dist/{chunk-2MLS6KU4.js → chunk-AEKHSORY.js} +2 -2
  144. package/dist/{chunk-5DAVXZPY.js → chunk-B2WBDMHE.js} +2 -2
  145. package/dist/{chunk-54HTXJJ2.js → chunk-BHE44AQE.js} +2 -2
  146. package/dist/{chunk-OOB3YWPX.js → chunk-BZFRBG2H.js} +4 -4
  147. package/dist/{chunk-PICOOZLX.js → chunk-C5RTSOXD.js} +3 -3
  148. package/dist/{chunk-GO6XDMBB.js → chunk-CIBTYBBN.js} +2 -2
  149. package/dist/{chunk-ZGWEFOW6.js → chunk-CKAVTWXP.js} +4 -4
  150. package/dist/{chunk-ANYOSBNA.js → chunk-CSXK7LH7.js} +2 -2
  151. package/dist/{chunk-U6DOF5CR.js → chunk-CU7ELD43.js} +2 -2
  152. package/dist/{chunk-XO4ZUHVH.js → chunk-CYPBF3BI.js} +2 -2
  153. package/dist/{chunk-4PRZLII7.js → chunk-DDL6W7JS.js} +10 -7
  154. package/dist/chunk-DDL6W7JS.js.map +1 -0
  155. package/dist/{chunk-EO5IEWFI.js → chunk-DE6A46AE.js} +6 -6
  156. package/dist/{chunk-3EPA2A4M.js → chunk-DJIFXJ4C.js} +5 -5
  157. package/dist/{chunk-CM2Q7IH3.js → chunk-DTLKF4AX.js} +6 -6
  158. package/dist/{chunk-C6JUGWAU.js → chunk-DYCTIOER.js} +4 -4
  159. package/dist/{chunk-LCWGNDTH.js → chunk-EKBUM7HK.js} +4 -4
  160. package/dist/{chunk-NYT3UVOH.js → chunk-EOEYOPOS.js} +7 -7
  161. package/dist/{chunk-7LILFS72.js → chunk-EOKPFMJD.js} +2 -2
  162. package/dist/{chunk-ZSTSISM6.js → chunk-FHWXRHMA.js} +1 -1
  163. package/dist/{chunk-ZSTSISM6.js.map → chunk-FHWXRHMA.js.map} +1 -1
  164. package/dist/{chunk-QSNLIWEB.js → chunk-FTV5R2UZ.js} +2 -2
  165. package/dist/{chunk-NDHDBOUH.js → chunk-FWPFCK4D.js} +4 -4
  166. package/dist/{chunk-ON4TRXCM.js → chunk-GHJ2FIJO.js} +3 -3
  167. package/dist/{chunk-GANW7FXQ.js → chunk-GKNMKPR6.js} +2 -2
  168. package/dist/{chunk-LGCRL7DK.js → chunk-GP4BJI3F.js} +2 -2
  169. package/dist/{chunk-652PYSML.js → chunk-HDVEE4NQ.js} +14 -6
  170. package/dist/chunk-HDVEE4NQ.js.map +1 -0
  171. package/dist/{chunk-4MKVGSHX.js → chunk-HN3PZTUK.js} +5 -5
  172. package/dist/{chunk-HBP2OU4Q.js → chunk-HNFZLXZI.js} +5 -5
  173. package/dist/{chunk-5FHPZOYK.js → chunk-HOIHO2YQ.js} +2 -2
  174. package/dist/{chunk-3AOOI2NR.js → chunk-HR7YTBR7.js} +4 -4
  175. package/dist/{chunk-PGV2FLE3.js → chunk-IG26N6J2.js} +2 -2
  176. package/dist/{chunk-G2WERTWZ.js → chunk-IGGXKT5B.js} +2 -2
  177. package/dist/{chunk-XLXMJ6X2.js → chunk-IO2X6DVH.js} +3 -3
  178. package/dist/{chunk-3CLBGHTL.js → chunk-ITBUKGG3.js} +2 -2
  179. package/dist/{chunk-6IRJAIS4.js → chunk-IXWIJCS3.js} +2 -2
  180. package/dist/{chunk-TMW7RBW7.js → chunk-J6TIK47Z.js} +2 -2
  181. package/dist/{chunk-G4TKMUOL.js → chunk-JDEKR77O.js} +7 -7
  182. package/dist/{chunk-Y2C2S4R7.js → chunk-JHW62I7Z.js} +7 -5
  183. package/dist/chunk-JHW62I7Z.js.map +1 -0
  184. package/dist/{chunk-ITFFA3H2.js → chunk-JYLBVHG2.js} +3 -3
  185. package/dist/{chunk-G7XHJPLO.js → chunk-JZ7ZRZTF.js} +4 -4
  186. package/dist/{chunk-YTVXT5TD.js → chunk-K5CCQBNN.js} +6 -6
  187. package/dist/{chunk-K62RHTFB.js → chunk-KNAWZM7F.js} +2 -2
  188. package/dist/{chunk-AOFI3GDS.js → chunk-KPZ53JY6.js} +5 -5
  189. package/dist/{chunk-4Z2HIHA5.js → chunk-KRA75CKC.js} +2 -2
  190. package/dist/{chunk-RHKT2XW2.js → chunk-KUKY5GEX.js} +3 -3
  191. package/dist/{chunk-HUAQQ5ZL.js → chunk-LHHV6NXO.js} +2 -2
  192. package/dist/{chunk-BJGUDLWZ.js → chunk-LRFXCZB4.js} +2 -2
  193. package/dist/{chunk-U6W2RY3Z.js → chunk-MLQYIJTO.js} +5 -5
  194. package/dist/{chunk-GPHURU2K.js → chunk-MSAAOQAD.js} +7 -7
  195. package/dist/{chunk-3MJHHPRW.js → chunk-MVR4GURP.js} +2 -2
  196. package/dist/{chunk-PRLYYKMG.js → chunk-MW7S7WZM.js} +2 -2
  197. package/dist/{chunk-ERY6D2OV.js → chunk-MWPXKZ7O.js} +4 -4
  198. package/dist/{chunk-ZUME25DS.js → chunk-NM2FLCPV.js} +3 -3
  199. package/dist/{chunk-UP7SSTCZ.js → chunk-OAVRXSAS.js} +7 -7
  200. package/dist/{chunk-VYA4QWQL.js → chunk-PJVZY2SA.js} +2 -2
  201. package/dist/{chunk-SDBBJ6FG.js → chunk-PUYJVQ7X.js} +2 -2
  202. package/dist/{chunk-IUD6N52Q.js → chunk-PXGURBIU.js} +4 -4
  203. package/dist/{chunk-PNDYAIKM.js → chunk-Q5J37WOE.js} +2 -2
  204. package/dist/{chunk-DCT2PKMQ.js → chunk-QGB3DOMV.js} +2 -2
  205. package/dist/{chunk-YGYQC7MT.js → chunk-QOLIBVGS.js} +4 -4
  206. package/dist/{chunk-TIQXDPIX.js → chunk-RIJGMRJK.js} +10 -1
  207. package/dist/chunk-RIJGMRJK.js.map +1 -0
  208. package/dist/{chunk-P6Q2O3TU.js → chunk-RNVR3RGV.js} +2 -2
  209. package/dist/{chunk-SNW5MJ6I.js → chunk-RPKWTFJ2.js} +2 -2
  210. package/dist/{chunk-NPPJ3IJP.js → chunk-RRAWJQIO.js} +2 -2
  211. package/dist/{chunk-H3GYVR7S.js → chunk-SM4MT4YC.js} +3 -3
  212. package/dist/{chunk-5B7BTLN4.js → chunk-SOCZLOPJ.js} +2 -2
  213. package/dist/{chunk-RXNIOPOA.js → chunk-TM5QQJTF.js} +8 -2
  214. package/dist/{chunk-RXNIOPOA.js.map → chunk-TM5QQJTF.js.map} +1 -1
  215. package/dist/{chunk-Z4O3F6KU.js → chunk-U4QUDFPJ.js} +4 -4
  216. package/dist/{chunk-KWU62UPM.js → chunk-UHGQ74E3.js} +2 -2
  217. package/dist/{chunk-Z6LTEJ7F.js → chunk-VKFZQSQC.js} +4 -4
  218. package/dist/{chunk-MBNXCCRG.js → chunk-VQUPB7F7.js} +7 -7
  219. package/dist/{chunk-CNR5RFKC.js → chunk-VVFV4MXS.js} +2 -2
  220. package/dist/{chunk-ALOUJ3CE.js → chunk-WQ3KTELX.js} +5 -5
  221. package/dist/{chunk-FY6PONLA.js → chunk-WSYPM3SR.js} +2 -2
  222. package/dist/{chunk-QMELMQPA.js → chunk-X4VWYWFK.js} +2 -2
  223. package/dist/{chunk-5PJM772Y.js → chunk-XLQYOBHP.js} +4 -4
  224. package/dist/{chunk-TCMH3FXD.js → chunk-XTDJ2D5A.js} +2 -2
  225. package/dist/{chunk-F5GXWK6B.js → chunk-Y2CMWGIU.js} +3 -3
  226. package/dist/{chunk-SJGYMI6Y.js → chunk-Y4ET3NRC.js} +2 -2
  227. package/dist/{chunk-7OO3BELX.js → chunk-Y6RSQEOU.js} +3 -2
  228. package/dist/{chunk-7OO3BELX.js.map → chunk-Y6RSQEOU.js.map} +1 -1
  229. package/dist/{chunk-FIO55AKI.js → chunk-YCHOWWRE.js} +3 -3
  230. package/dist/{chunk-MM5XSAVE.js → chunk-YDIRPKYI.js} +2 -2
  231. package/dist/{chunk-44Z72DDM.js → chunk-YF3VD2KD.js} +2 -2
  232. package/dist/{chunk-BR2T72JI.js → chunk-YWJZPN5C.js} +11 -1
  233. package/dist/chunk-YWJZPN5C.js.map +1 -0
  234. package/dist/{chunk-Z4DKVLYG.js → chunk-Z3HSRNJT.js} +4 -4
  235. package/dist/{chunk-5PTCT3LF.js → chunk-ZQ7IESR7.js} +2 -2
  236. package/dist/data-display/AsyncStateContainer.js +3 -3
  237. package/dist/data-display/Badge.js +6 -5
  238. package/dist/data-display/CardKit.js +10 -10
  239. package/dist/data-display/Carousel.js +8 -7
  240. package/dist/data-display/Chart.js +8 -7
  241. package/dist/data-display/DataGrid.js +4 -3
  242. package/dist/data-display/DataViews.js +54 -53
  243. package/dist/data-display/EmptyState.js +2 -2
  244. package/dist/data-display/FleetMap.js +13 -12
  245. package/dist/data-display/InteractiveTooltip.js +2 -2
  246. package/dist/data-display/Lightbox.js +2 -2
  247. package/dist/data-display/MapPreview.js +3 -3
  248. package/dist/data-display/SectionOnboarding.js +3 -3
  249. package/dist/data-display/Sheet.js +5 -4
  250. package/dist/data-display/Table.js +4 -3
  251. package/dist/feedback/ConfirmAction.js +6 -6
  252. package/dist/feedback/Dialog.js +2 -2
  253. package/dist/feedback/StackedModal.js +6 -6
  254. package/dist/form/AddressAutocomplete.js +1 -1
  255. package/dist/form/Autocomplete.js +3 -3
  256. package/dist/form/CategorySelect.js +6 -6
  257. package/dist/form/Checkbox.js +4 -2
  258. package/dist/form/Command.js +5 -4
  259. package/dist/form/DateRangePicker.js +2 -2
  260. package/dist/form/Label.js +5 -4
  261. package/dist/form/Menubar.js +7 -6
  262. package/dist/form/UploadButton.js +2 -2
  263. package/dist/form/total-form.js +9 -9
  264. package/dist/icons.js +6 -5
  265. package/dist/layout/Box.js +6 -5
  266. package/dist/layout/ContentToolbar.js +3 -3
  267. package/dist/layout/ScrollArea.js +2 -2
  268. package/dist/layout/SettingCard.js +15 -14
  269. package/dist/layout/Stack.js +7 -6
  270. package/dist/native/form/Checkbox.js +9 -2
  271. package/dist/native/form/Checkbox.js.map +1 -1
  272. package/dist/navigation/AppHeader.js +9 -8
  273. package/dist/navigation/CommandPalette.js +2 -2
  274. package/dist/navigation/NavigationMenu.js +5 -5
  275. package/dist/provider.js +6 -5
  276. package/dist/tokens.js +8 -2
  277. package/dist/types/components/form/Autocomplete/useAutocomplete.d.ts.map +1 -1
  278. package/dist/types/components/form/Checkbox/Checkbox.base.d.ts +23 -3
  279. package/dist/types/components/form/Checkbox/Checkbox.base.d.ts.map +1 -1
  280. package/dist/types/components/form/Checkbox/Checkbox.d.ts.map +1 -1
  281. package/dist/types/components/form/Checkbox/Checkbox.metrics.d.ts +23 -8
  282. package/dist/types/components/form/Checkbox/Checkbox.metrics.d.ts.map +1 -1
  283. package/dist/types/components/form/Checkbox/Checkbox.types.d.ts +5 -2
  284. package/dist/types/components/form/Checkbox/Checkbox.types.d.ts.map +1 -1
  285. package/dist/types/components/utility/WorkflowStep/WorkflowStep.d.ts.map +1 -1
  286. package/dist/types/components/utility/WorkflowStep/WorkflowStep.helpers.d.ts +15 -0
  287. package/dist/types/components/utility/WorkflowStep/WorkflowStep.helpers.d.ts.map +1 -1
  288. package/dist/types/components/utility/WorkflowStep/WorkflowStep.parts.d.ts +7 -1
  289. package/dist/types/components/utility/WorkflowStep/WorkflowStep.parts.d.ts.map +1 -1
  290. package/dist/types/components/utility/WorkflowStep/WorkflowStep.types.d.ts +10 -0
  291. package/dist/types/components/utility/WorkflowStep/WorkflowStep.types.d.ts.map +1 -1
  292. package/dist/types/components/utility/WorkflowStep/WorkflowStepRow.d.ts.map +1 -1
  293. package/dist/types/provider/mui-bridge.d.ts.map +1 -1
  294. package/dist/types/tokens/density-overrides.d.ts +6 -0
  295. package/dist/types/tokens/density-overrides.d.ts.map +1 -0
  296. package/dist/types/tokens/density.d.ts +9 -6
  297. package/dist/types/tokens/density.d.ts.map +1 -1
  298. package/dist/types/tokens/scales.d.ts +1 -0
  299. package/dist/types/tokens/scales.d.ts.map +1 -1
  300. package/dist/types-native/components/form/Checkbox/Checkbox.base.d.ts +23 -3
  301. package/dist/types-native/components/form/Checkbox/Checkbox.base.d.ts.map +1 -1
  302. package/dist/types-native/components/form/Checkbox/Checkbox.metrics.d.ts +23 -8
  303. package/dist/types-native/components/form/Checkbox/Checkbox.metrics.d.ts.map +1 -1
  304. package/dist/types-native/components/form/Checkbox/Checkbox.native.d.ts +0 -1
  305. package/dist/types-native/components/form/Checkbox/Checkbox.native.d.ts.map +1 -1
  306. package/dist/types-native/components/form/Checkbox/Checkbox.types.native.d.ts +1 -5
  307. package/dist/types-native/components/form/Checkbox/Checkbox.types.native.d.ts.map +1 -1
  308. package/dist/utility/InfiniteScroll.js +2 -2
  309. package/dist/utility/WorkflowStep.js +7 -6
  310. package/package.json +1 -1
  311. package/src/components/form/Autocomplete/useAutocomplete.ts +17 -0
  312. package/src/components/form/Checkbox/Checkbox.base.ts +25 -3
  313. package/src/components/form/Checkbox/Checkbox.md +1 -0
  314. package/src/components/form/Checkbox/Checkbox.metrics.ts +32 -4
  315. package/src/components/form/Checkbox/Checkbox.native.tsx +2 -1
  316. package/src/components/form/Checkbox/Checkbox.tsx +3 -0
  317. package/src/components/form/Checkbox/Checkbox.types.native.ts +1 -5
  318. package/src/components/form/Checkbox/Checkbox.types.ts +5 -2
  319. package/src/components/utility/WorkflowStep/WorkflowStep.helpers.ts +25 -0
  320. package/src/components/utility/WorkflowStep/WorkflowStep.parts.tsx +46 -49
  321. package/src/components/utility/WorkflowStep/WorkflowStep.tsx +5 -3
  322. package/src/components/utility/WorkflowStep/WorkflowStep.types.ts +10 -0
  323. package/src/components/utility/WorkflowStep/WorkflowStepRow.tsx +1 -0
  324. package/src/provider/mui-bridge.ts +9 -4
  325. package/src/tokens/density-overrides.ts +177 -0
  326. package/src/tokens/density.ts +15 -7
  327. package/src/tokens/scales.ts +4 -0
  328. package/dist/chunk-4PRZLII7.js.map +0 -1
  329. package/dist/chunk-652PYSML.js.map +0 -1
  330. package/dist/chunk-BR2T72JI.js.map +0 -1
  331. package/dist/chunk-DJKVSUXH.js.map +0 -1
  332. package/dist/chunk-KJID4PRD.js.map +0 -1
  333. package/dist/chunk-TIQXDPIX.js.map +0 -1
  334. package/dist/chunk-Y2C2S4R7.js.map +0 -1
  335. /package/dist/{chunk-GZT7MLLO.js.map → chunk-26QYVCDK.js.map} +0 -0
  336. /package/dist/{chunk-442FSG7G.js.map → chunk-3I77A65F.js.map} +0 -0
  337. /package/dist/{chunk-R2FUQV24.js.map → chunk-4MGUBSAL.js.map} +0 -0
  338. /package/dist/{chunk-YIWVHEPW.js.map → chunk-4T5LD2NV.js.map} +0 -0
  339. /package/dist/{chunk-4CHYMTBT.js.map → chunk-4WCDMCIS.js.map} +0 -0
  340. /package/dist/{chunk-5KGABAQB.js.map → chunk-5752357K.js.map} +0 -0
  341. /package/dist/{chunk-JSGVYOMN.js.map → chunk-5MW7OYBM.js.map} +0 -0
  342. /package/dist/{chunk-RWRPF24F.js.map → chunk-5OS5AMC2.js.map} +0 -0
  343. /package/dist/{chunk-I6MVJWUO.js.map → chunk-6B3QXFF5.js.map} +0 -0
  344. /package/dist/{chunk-MLUUF7OZ.js.map → chunk-6B4UTB4O.js.map} +0 -0
  345. /package/dist/{chunk-FBUCXTA4.js.map → chunk-6DMUVVON.js.map} +0 -0
  346. /package/dist/{chunk-G7RYAWPZ.js.map → chunk-6HTCCWUM.js.map} +0 -0
  347. /package/dist/{chunk-77BKKPCI.js.map → chunk-6KLDYVRY.js.map} +0 -0
  348. /package/dist/{chunk-6Z6PUG4C.js.map → chunk-6LYRFS5S.js.map} +0 -0
  349. /package/dist/{chunk-K4A3JDYQ.js.map → chunk-6ZWOVUNB.js.map} +0 -0
  350. /package/dist/{chunk-3RUCLKAK.js.map → chunk-7HZTYK7U.js.map} +0 -0
  351. /package/dist/{chunk-BKZERHNC.js.map → chunk-7XDET7PL.js.map} +0 -0
  352. /package/dist/{chunk-OD3L6GX5.js.map → chunk-A7OQBAR7.js.map} +0 -0
  353. /package/dist/{chunk-2MLS6KU4.js.map → chunk-AEKHSORY.js.map} +0 -0
  354. /package/dist/{chunk-5DAVXZPY.js.map → chunk-B2WBDMHE.js.map} +0 -0
  355. /package/dist/{chunk-54HTXJJ2.js.map → chunk-BHE44AQE.js.map} +0 -0
  356. /package/dist/{chunk-OOB3YWPX.js.map → chunk-BZFRBG2H.js.map} +0 -0
  357. /package/dist/{chunk-PICOOZLX.js.map → chunk-C5RTSOXD.js.map} +0 -0
  358. /package/dist/{chunk-GO6XDMBB.js.map → chunk-CIBTYBBN.js.map} +0 -0
  359. /package/dist/{chunk-ZGWEFOW6.js.map → chunk-CKAVTWXP.js.map} +0 -0
  360. /package/dist/{chunk-ANYOSBNA.js.map → chunk-CSXK7LH7.js.map} +0 -0
  361. /package/dist/{chunk-U6DOF5CR.js.map → chunk-CU7ELD43.js.map} +0 -0
  362. /package/dist/{chunk-XO4ZUHVH.js.map → chunk-CYPBF3BI.js.map} +0 -0
  363. /package/dist/{chunk-EO5IEWFI.js.map → chunk-DE6A46AE.js.map} +0 -0
  364. /package/dist/{chunk-3EPA2A4M.js.map → chunk-DJIFXJ4C.js.map} +0 -0
  365. /package/dist/{chunk-CM2Q7IH3.js.map → chunk-DTLKF4AX.js.map} +0 -0
  366. /package/dist/{chunk-C6JUGWAU.js.map → chunk-DYCTIOER.js.map} +0 -0
  367. /package/dist/{chunk-LCWGNDTH.js.map → chunk-EKBUM7HK.js.map} +0 -0
  368. /package/dist/{chunk-NYT3UVOH.js.map → chunk-EOEYOPOS.js.map} +0 -0
  369. /package/dist/{chunk-7LILFS72.js.map → chunk-EOKPFMJD.js.map} +0 -0
  370. /package/dist/{chunk-QSNLIWEB.js.map → chunk-FTV5R2UZ.js.map} +0 -0
  371. /package/dist/{chunk-NDHDBOUH.js.map → chunk-FWPFCK4D.js.map} +0 -0
  372. /package/dist/{chunk-ON4TRXCM.js.map → chunk-GHJ2FIJO.js.map} +0 -0
  373. /package/dist/{chunk-GANW7FXQ.js.map → chunk-GKNMKPR6.js.map} +0 -0
  374. /package/dist/{chunk-LGCRL7DK.js.map → chunk-GP4BJI3F.js.map} +0 -0
  375. /package/dist/{chunk-4MKVGSHX.js.map → chunk-HN3PZTUK.js.map} +0 -0
  376. /package/dist/{chunk-HBP2OU4Q.js.map → chunk-HNFZLXZI.js.map} +0 -0
  377. /package/dist/{chunk-5FHPZOYK.js.map → chunk-HOIHO2YQ.js.map} +0 -0
  378. /package/dist/{chunk-3AOOI2NR.js.map → chunk-HR7YTBR7.js.map} +0 -0
  379. /package/dist/{chunk-PGV2FLE3.js.map → chunk-IG26N6J2.js.map} +0 -0
  380. /package/dist/{chunk-G2WERTWZ.js.map → chunk-IGGXKT5B.js.map} +0 -0
  381. /package/dist/{chunk-XLXMJ6X2.js.map → chunk-IO2X6DVH.js.map} +0 -0
  382. /package/dist/{chunk-3CLBGHTL.js.map → chunk-ITBUKGG3.js.map} +0 -0
  383. /package/dist/{chunk-6IRJAIS4.js.map → chunk-IXWIJCS3.js.map} +0 -0
  384. /package/dist/{chunk-TMW7RBW7.js.map → chunk-J6TIK47Z.js.map} +0 -0
  385. /package/dist/{chunk-G4TKMUOL.js.map → chunk-JDEKR77O.js.map} +0 -0
  386. /package/dist/{chunk-ITFFA3H2.js.map → chunk-JYLBVHG2.js.map} +0 -0
  387. /package/dist/{chunk-G7XHJPLO.js.map → chunk-JZ7ZRZTF.js.map} +0 -0
  388. /package/dist/{chunk-YTVXT5TD.js.map → chunk-K5CCQBNN.js.map} +0 -0
  389. /package/dist/{chunk-K62RHTFB.js.map → chunk-KNAWZM7F.js.map} +0 -0
  390. /package/dist/{chunk-AOFI3GDS.js.map → chunk-KPZ53JY6.js.map} +0 -0
  391. /package/dist/{chunk-4Z2HIHA5.js.map → chunk-KRA75CKC.js.map} +0 -0
  392. /package/dist/{chunk-RHKT2XW2.js.map → chunk-KUKY5GEX.js.map} +0 -0
  393. /package/dist/{chunk-HUAQQ5ZL.js.map → chunk-LHHV6NXO.js.map} +0 -0
  394. /package/dist/{chunk-BJGUDLWZ.js.map → chunk-LRFXCZB4.js.map} +0 -0
  395. /package/dist/{chunk-U6W2RY3Z.js.map → chunk-MLQYIJTO.js.map} +0 -0
  396. /package/dist/{chunk-GPHURU2K.js.map → chunk-MSAAOQAD.js.map} +0 -0
  397. /package/dist/{chunk-3MJHHPRW.js.map → chunk-MVR4GURP.js.map} +0 -0
  398. /package/dist/{chunk-PRLYYKMG.js.map → chunk-MW7S7WZM.js.map} +0 -0
  399. /package/dist/{chunk-ERY6D2OV.js.map → chunk-MWPXKZ7O.js.map} +0 -0
  400. /package/dist/{chunk-ZUME25DS.js.map → chunk-NM2FLCPV.js.map} +0 -0
  401. /package/dist/{chunk-UP7SSTCZ.js.map → chunk-OAVRXSAS.js.map} +0 -0
  402. /package/dist/{chunk-VYA4QWQL.js.map → chunk-PJVZY2SA.js.map} +0 -0
  403. /package/dist/{chunk-SDBBJ6FG.js.map → chunk-PUYJVQ7X.js.map} +0 -0
  404. /package/dist/{chunk-IUD6N52Q.js.map → chunk-PXGURBIU.js.map} +0 -0
  405. /package/dist/{chunk-PNDYAIKM.js.map → chunk-Q5J37WOE.js.map} +0 -0
  406. /package/dist/{chunk-DCT2PKMQ.js.map → chunk-QGB3DOMV.js.map} +0 -0
  407. /package/dist/{chunk-YGYQC7MT.js.map → chunk-QOLIBVGS.js.map} +0 -0
  408. /package/dist/{chunk-P6Q2O3TU.js.map → chunk-RNVR3RGV.js.map} +0 -0
  409. /package/dist/{chunk-SNW5MJ6I.js.map → chunk-RPKWTFJ2.js.map} +0 -0
  410. /package/dist/{chunk-NPPJ3IJP.js.map → chunk-RRAWJQIO.js.map} +0 -0
  411. /package/dist/{chunk-H3GYVR7S.js.map → chunk-SM4MT4YC.js.map} +0 -0
  412. /package/dist/{chunk-5B7BTLN4.js.map → chunk-SOCZLOPJ.js.map} +0 -0
  413. /package/dist/{chunk-Z4O3F6KU.js.map → chunk-U4QUDFPJ.js.map} +0 -0
  414. /package/dist/{chunk-KWU62UPM.js.map → chunk-UHGQ74E3.js.map} +0 -0
  415. /package/dist/{chunk-Z6LTEJ7F.js.map → chunk-VKFZQSQC.js.map} +0 -0
  416. /package/dist/{chunk-MBNXCCRG.js.map → chunk-VQUPB7F7.js.map} +0 -0
  417. /package/dist/{chunk-CNR5RFKC.js.map → chunk-VVFV4MXS.js.map} +0 -0
  418. /package/dist/{chunk-ALOUJ3CE.js.map → chunk-WQ3KTELX.js.map} +0 -0
  419. /package/dist/{chunk-FY6PONLA.js.map → chunk-WSYPM3SR.js.map} +0 -0
  420. /package/dist/{chunk-QMELMQPA.js.map → chunk-X4VWYWFK.js.map} +0 -0
  421. /package/dist/{chunk-5PJM772Y.js.map → chunk-XLQYOBHP.js.map} +0 -0
  422. /package/dist/{chunk-TCMH3FXD.js.map → chunk-XTDJ2D5A.js.map} +0 -0
  423. /package/dist/{chunk-F5GXWK6B.js.map → chunk-Y2CMWGIU.js.map} +0 -0
  424. /package/dist/{chunk-SJGYMI6Y.js.map → chunk-Y4ET3NRC.js.map} +0 -0
  425. /package/dist/{chunk-FIO55AKI.js.map → chunk-YCHOWWRE.js.map} +0 -0
  426. /package/dist/{chunk-MM5XSAVE.js.map → chunk-YDIRPKYI.js.map} +0 -0
  427. /package/dist/{chunk-44Z72DDM.js.map → chunk-YF3VD2KD.js.map} +0 -0
  428. /package/dist/{chunk-Z4DKVLYG.js.map → chunk-Z3HSRNJT.js.map} +0 -0
  429. /package/dist/{chunk-5PTCT3LF.js.map → chunk-ZQ7IESR7.js.map} +0 -0
@@ -5,15 +5,25 @@
5
5
  * and a native consumer has no `@mui/material` to resolve a type import
6
6
  * against. See `Button.base.ts`.
7
7
  */
8
+ import type { SizeValue } from '../../../tokens/vocabulary';
8
9
  export type CheckboxVariant = 'default' | 'rounded' | 'toggle';
10
+ /**
11
+ * MUI's own words for the glyph's size — `CHECKBOX_GLYPH_SIZES` in
12
+ * `Checkbox.metrics.ts` gives each one's pixel value.
13
+ *
14
+ * @deprecated `size` now also accepts `SizeValue` (`'xs' | 'sm' | 'md' | 'lg' |
15
+ * 'xl'`), the house vocabulary every other sized component in the package
16
+ * speaks — translated to this at the MUI boundary by `resolveCheckboxSize`
17
+ * (`Checkbox.metrics.ts`). These words keep working for one release; pass
18
+ * `SizeValue` instead. Removed in the next major version.
19
+ */
20
+ export type CheckboxSize = 'small' | 'medium' | 'large';
9
21
  /**
10
22
  * The contract both renderers honour.
11
23
  *
12
24
  * `checked`, `defaultChecked` and `onChange` are NOT here: MUI types the change
13
25
  * as a DOM `ChangeEvent` and the native side synthesises the
14
- * `{ target: { checked } }` shape those handlers already read. Neither is
15
- * `size`, which this component takes in MUI's own words (`small | medium`)
16
- * rather than the house scale — narrowing it would reject the callers it has.
26
+ * `{ target: { checked } }` shape those handlers already read.
17
27
  */
18
28
  export interface CheckboxBaseProps {
19
29
  variant?: CheckboxVariant;
@@ -30,6 +40,16 @@ export interface CheckboxBaseProps {
30
40
  /** The third state: neither checked nor unchecked, drawn as a dash. */
31
41
  indeterminate?: boolean;
32
42
  disabled?: boolean;
43
+ /**
44
+ * The size of the box and glyph.
45
+ *
46
+ * `SizeValue` (`'xs' | 'sm' | 'md' | 'lg' | 'xl'`) is the documented house
47
+ * vocabulary every other sized component in the package speaks, translated
48
+ * to MUI's own word at the MUI boundary (`resolveCheckboxSize`, in
49
+ * `Checkbox.metrics.ts`) — the same pattern `Chip`/`Button` already follow.
50
+ * MUI's own words (`CheckboxSize`) still work; see its `@deprecated` note.
51
+ */
52
+ size?: SizeValue | CheckboxSize;
33
53
  testID?: string;
34
54
  dataTestId?: string;
35
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.base.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/Checkbox/Checkbox.base.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/D;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"Checkbox.base.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/Checkbox/Checkbox.base.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/D;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -1,4 +1,6 @@
1
- import type { CheckboxVariant } from './Checkbox.base';
1
+ import type { SizeValue } from '../../../tokens/vocabulary';
2
+ import type { CheckboxSize, CheckboxVariant } from './Checkbox.base';
3
+ export type { CheckboxSize } from './Checkbox.base';
2
4
  /**
3
5
  * THE NUMBERS BOTH `Checkbox` RENDERERS DRAW WITH.
4
6
  *
@@ -11,14 +13,27 @@ import type { CheckboxVariant } from './Checkbox.base';
11
13
  */
12
14
  /** MUI's `SwitchBase`: 9px of padding around the glyph, at every size. */
13
15
  export declare const CHECKBOX_PADDING = 9;
14
- /** `SvgIcon`'s own three steps. MUI passes the `size` prop straight to the glyph. */
15
- export declare const CHECKBOX_GLYPH_SIZES: {
16
- readonly small: 20;
17
- readonly medium: 24;
18
- readonly large: 35;
19
- };
20
- export type CheckboxSize = keyof typeof CHECKBOX_GLYPH_SIZES;
16
+ /**
17
+ * `SvgIcon`'s own three steps. MUI passes the `size` prop straight to the
18
+ * glyph. Typed against {@link CheckboxSize} (declared in `Checkbox.base.ts`,
19
+ * the contract file, since it is part of the public prop type) rather than the
20
+ * other way around, so a step added to one and not the other fails here.
21
+ */
22
+ export declare const CHECKBOX_GLYPH_SIZES: Record<CheckboxSize, number>;
21
23
  export declare const glyphSize: (size: CheckboxSize | undefined) => number;
24
+ /**
25
+ * `size` at the MUI boundary.
26
+ *
27
+ * A `SizeValue` is translated via `muiSize()` — the pattern `Chip`/`Button`/
28
+ * `Carousel` already follow. MUI's own deprecated word (see
29
+ * {@link CheckboxSize}) is passed through UNCHANGED rather than re-derived,
30
+ * so a caller who has not migrated renders at exactly the size it always has —
31
+ * translating it through `muiSize()` too would not change any of the three
32
+ * words' own geometry, but passing it through untouched is the one route that
33
+ * cannot drift from what "unchanged" already means. `undefined` stays
34
+ * `undefined`, so a caller who names no size keeps MUI's own default.
35
+ */
36
+ export declare const resolveCheckboxSize: (size: SizeValue | CheckboxSize | undefined) => CheckboxSize | undefined;
22
37
  /**
23
38
  * The three glyphs MUI draws, by state.
24
39
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.metrics.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/Checkbox/Checkbox.metrics.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD;;;;;;;;;GASG;AAEH,0EAA0E;AAC1E,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,qFAAqF;AACrF,eAAO,MAAM,oBAAoB;;;;CAAgD,CAAC;AAClF,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,oBAAoB,CAAC;AAE7D,eAAO,MAAM,SAAS,GAAI,MAAM,YAAY,GAAG,SAAS,KAAG,MACY,CAAC;AAExE;;;;;;GAMG;AACH,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,eAAe,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAIlG,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,sEAAsE;AACtE,eAAO,MAAM,gBAAgB;;;CAAqC,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;CAAkF,CAAC;AAC7G,eAAO,MAAM,cAAc;;;;CAAgD,CAAC;AAE5E,uEAAuE;AACvE,eAAO,MAAM,SAAS,GAAI,YAAY,MAAM,KAAG,MAAgD,CAAC;AAEhG,uEAAuE;AACvE,eAAO,MAAM,cAAc;;;CAA2C,CAAC;AAEvE,iEAAiE;AACjE,eAAO,MAAM,eAAe;;;;;CAAuF,CAAC"}
1
+ {"version":3,"file":"Checkbox.metrics.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/Checkbox/Checkbox.metrics.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAErE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;;;;;;GASG;AAEH,0EAA0E;AAC1E,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAwC,CAAC;AAEvG,eAAO,MAAM,SAAS,GAAI,MAAM,YAAY,GAAG,SAAS,KAAG,MACY,CAAC;AAExE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,SAAS,GAAG,YAAY,GAAG,SAAS,KACzC,YAAY,GAAG,SAIjB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,eAAe,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAIlG,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,sEAAsE;AACtE,eAAO,MAAM,gBAAgB;;;CAAqC,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;CAAkF,CAAC;AAC7G,eAAO,MAAM,cAAc;;;;CAAgD,CAAC;AAE5E,uEAAuE;AACvE,eAAO,MAAM,SAAS,GAAI,YAAY,MAAM,KAAG,MAAgD,CAAC;AAEhG,uEAAuE;AACvE,eAAO,MAAM,cAAc;;;CAA2C,CAAC;AAEvE,iEAAiE;AACjE,eAAO,MAAM,eAAe;;;;;CAAuF,CAAC"}
@@ -12,7 +12,6 @@ import { View, type GestureResponderEvent, type ViewStyle } from 'react-native';
12
12
  export declare const Checkbox: React.ForwardRefExoticComponent<import("./Checkbox.base").CheckboxBaseProps & Omit<import("react-native").ViewProps, "style" | keyof import("./Checkbox.base").CheckboxBaseProps> & {
13
13
  checked?: boolean;
14
14
  defaultChecked?: boolean;
15
- size?: import("./Checkbox.metrics").CheckboxSize;
16
15
  onChange?: (event: import("./Checkbox.types.native").CheckboxChangeEvent, checked: boolean) => void;
17
16
  onClick?: (event: GestureResponderEvent) => void;
18
17
  onPress?: (event: GestureResponderEvent) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.native.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/Checkbox/Checkbox.native.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAML,IAAI,EACJ,KAAK,qBAAqB,EAE1B,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAkJtB;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ;;;;;;;;8BAyDnB,CAAC"}
1
+ {"version":3,"file":"Checkbox.native.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/Checkbox/Checkbox.native.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAML,IAAI,EACJ,KAAK,qBAAqB,EAE1B,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAmJtB;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ;;;;;;;8BAyDnB,CAAC"}
@@ -1,8 +1,6 @@
1
1
  import type { GestureResponderEvent, StyleProp, ViewProps, ViewStyle } from 'react-native';
2
2
  import type { CheckboxBaseProps } from './Checkbox.base';
3
- import type { CheckboxSize } from './Checkbox.metrics';
4
- export type { CheckboxBaseProps, CheckboxVariant } from './Checkbox.base';
5
- export type { CheckboxSize } from './Checkbox.metrics';
3
+ export type { CheckboxBaseProps, CheckboxSize, CheckboxVariant } from './Checkbox.base';
6
4
  /**
7
5
  * The change a native `Checkbox` reports: the `{ target: { checked } }` shape
8
6
  * MUI's `ChangeEvent` gives, and the resolved flag second, as MUI passes it.
@@ -16,8 +14,6 @@ export interface CheckboxChangeEvent {
16
14
  export type CheckboxProps = CheckboxBaseProps & Omit<ViewProps, keyof CheckboxBaseProps | 'style'> & {
17
15
  checked?: boolean;
18
16
  defaultChecked?: boolean;
19
- /** MUI's own words for the glyph's size, which is what this component takes. */
20
- size?: CheckboxSize;
21
17
  onChange?: (event: CheckboxChangeEvent, checked: boolean) => void;
22
18
  /** Both spellings fire, as `Button`'s do. */
23
19
  onClick?: (event: GestureResponderEvent) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.types.native.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/Checkbox/Checkbox.types.native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC1E,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CAC9B;AAED,6EAA6E;AAC7E,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAC3C,IAAI,CAAC,SAAS,EAAE,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gFAAgF;IAChF,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAClE,6CAA6C;IAC7C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACjD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACjD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC"}
1
+ {"version":3,"file":"Checkbox.types.native.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/Checkbox/Checkbox.types.native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExF;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CAC9B;AAED,6EAA6E;AAC7E,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAC3C,IAAI,CAAC,SAAS,EAAE,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAClE,6CAA6C;IAC7C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACjD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACjD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import "../chunk-H7NA4TXY.js";
2
2
  import {
3
3
  InfiniteScroll
4
- } from "../chunk-HBP2OU4Q.js";
5
- import "../chunk-5KNDAC24.js";
4
+ } from "../chunk-HNFZLXZI.js";
6
5
  import "../chunk-Y2X7LYIN.js";
6
+ import "../chunk-5KNDAC24.js";
7
7
  import "../chunk-YKCAJ2TN.js";
8
8
  import "../chunk-PZ5AY32C.js";
9
9
  export {
@@ -1,13 +1,14 @@
1
1
  import "../chunk-IO36MEBD.js";
2
2
  import {
3
3
  WorkflowStep
4
- } from "../chunk-Y2C2S4R7.js";
5
- import "../chunk-7OO3BELX.js";
6
- import "../chunk-KJID4PRD.js";
7
- import "../chunk-RXNIOPOA.js";
8
- import "../chunk-ZSTSISM6.js";
4
+ } from "../chunk-JHW62I7Z.js";
5
+ import "../chunk-Y6RSQEOU.js";
6
+ import "../chunk-6S25ZCEW.js";
7
+ import "../chunk-TM5QQJTF.js";
8
+ import "../chunk-FHWXRHMA.js";
9
9
  import "../chunk-7ZPUN7TV.js";
10
- import "../chunk-DJKVSUXH.js";
10
+ import "../chunk-2GG5W6LR.js";
11
+ import "../chunk-532XOWZ5.js";
11
12
  import "../chunk-PT6TCWIW.js";
12
13
  import "../chunk-M47ZOUGF.js";
13
14
  import "../chunk-7FDU3FIN.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@12-apps/ui",
3
- "version": "6.43.1",
3
+ "version": "6.44.1",
4
4
  "license": "MIT",
5
5
  "packageManager": "pnpm@10.34.5",
6
6
  "type": "module",
@@ -245,6 +245,14 @@ function runSelectItem<T>(item: T, p: AutocompleteProps<T>, s: AutocompleteState
245
245
  // commitMultiSelect already clears inputValue and resets the flag itself,
246
246
  // so the empty-input branch of the filter effect keeps the list closed.
247
247
  const isSingleSelectPick = isLink || !p.multiple;
248
+ // Cancel a still-pending keystroke debounce BEFORE dispatching the pick, so
249
+ // no branch below — including `openLink`, which never touches `onChange`
250
+ // at all — can leave it armed to fire the STALE pre-pick text later
251
+ // (FUT-2779 #1). `commitSingleSelect`/`commitMultiSelect` already clear it
252
+ // as a side effect of calling the same `debouncedOnChange`; this makes it
253
+ // unconditional so a `link` pick (which skips `onChange` entirely) is
254
+ // covered too.
255
+ if (s.debounceRef.current) window.clearTimeout(s.debounceRef.current);
248
256
  commitPick(item, isLink ? (url as string) : null, p, s, onChange);
249
257
  s.setOpen(false);
250
258
  s.setActiveIndex(-1);
@@ -347,6 +355,15 @@ export function useAutocomplete<T>(p: AutocompleteProps<T>): AutocompleteView<T>
347
355
  if (!s.open || s.filteredSuggestions.length === 0) s.setActiveIndex(-1);
348
356
  setDeliberateClose(s, false);
349
357
  },
358
+ // Unconditionally reopens on a non-empty input, unguarded by
359
+ // `userClosedDropdownRef` — plausible on a touch device that blurs the
360
+ // input on `touchstart` before a tap's own `click`/`mousedown` reaches the
361
+ // option (FUT-2779 #2). Checked under Playwright touch emulation
362
+ // (`hasTouch`/`isMobile` context, both the `.tap()` API and raw CDP
363
+ // `Input.dispatchTouchEvent` at the option's coordinates) against this
364
+ // Chromium build: `document.activeElement` never left the input across
365
+ // the touch, so the reopen never happened — not reproduced, left
366
+ // unguarded per the ticket's decision rather than fixed blind.
350
367
  onFocus: (): void => {
351
368
  s.setIsInputFocused(true);
352
369
  setDeliberateClose(s, false);
@@ -5,16 +5,28 @@
5
5
  * and a native consumer has no `@mui/material` to resolve a type import
6
6
  * against. See `Button.base.ts`.
7
7
  */
8
+ import type { SizeValue } from '../../../tokens/vocabulary';
9
+
8
10
  export type CheckboxVariant = 'default' | 'rounded' | 'toggle';
9
11
 
12
+ /**
13
+ * MUI's own words for the glyph's size — `CHECKBOX_GLYPH_SIZES` in
14
+ * `Checkbox.metrics.ts` gives each one's pixel value.
15
+ *
16
+ * @deprecated `size` now also accepts `SizeValue` (`'xs' | 'sm' | 'md' | 'lg' |
17
+ * 'xl'`), the house vocabulary every other sized component in the package
18
+ * speaks — translated to this at the MUI boundary by `resolveCheckboxSize`
19
+ * (`Checkbox.metrics.ts`). These words keep working for one release; pass
20
+ * `SizeValue` instead. Removed in the next major version.
21
+ */
22
+ export type CheckboxSize = 'small' | 'medium' | 'large';
23
+
10
24
  /**
11
25
  * The contract both renderers honour.
12
26
  *
13
27
  * `checked`, `defaultChecked` and `onChange` are NOT here: MUI types the change
14
28
  * as a DOM `ChangeEvent` and the native side synthesises the
15
- * `{ target: { checked } }` shape those handlers already read. Neither is
16
- * `size`, which this component takes in MUI's own words (`small | medium`)
17
- * rather than the house scale — narrowing it would reject the callers it has.
29
+ * `{ target: { checked } }` shape those handlers already read.
18
30
  */
19
31
  export interface CheckboxBaseProps {
20
32
  variant?: CheckboxVariant;
@@ -31,6 +43,16 @@ export interface CheckboxBaseProps {
31
43
  /** The third state: neither checked nor unchecked, drawn as a dash. */
32
44
  indeterminate?: boolean;
33
45
  disabled?: boolean;
46
+ /**
47
+ * The size of the box and glyph.
48
+ *
49
+ * `SizeValue` (`'xs' | 'sm' | 'md' | 'lg' | 'xl'`) is the documented house
50
+ * vocabulary every other sized component in the package speaks, translated
51
+ * to MUI's own word at the MUI boundary (`resolveCheckboxSize`, in
52
+ * `Checkbox.metrics.ts`) — the same pattern `Chip`/`Button` already follow.
53
+ * MUI's own words (`CheckboxSize`) still work; see its `@deprecated` note.
54
+ */
55
+ size?: SizeValue | CheckboxSize;
34
56
  testID?: string;
35
57
  dataTestId?: string;
36
58
  }
@@ -55,6 +55,7 @@ import { Checkbox } from '@/components/form/Checkbox';
55
55
  | glow | `boolean` | `false` | Enable glow animation |
56
56
  | pulse | `boolean` | `false` | Enable pulse animation |
57
57
  | disabled | `boolean` | `false` | Disable the checkbox |
58
+ | size | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl'` | MUI's `'medium'` | The house size vocabulary, translated to MUI's own size at the boundary. MUI's own words (`'small' \| 'medium' \| 'large'`) still work but are **deprecated** — migrate to the house vocabulary; removed in the next major version. |
58
59
  | data-testid | `string` | - | Custom test ID for testing |
59
60
 
60
61
  Plus all standard MUI Checkbox props (checked, onChange, indeterminate, etc.)
@@ -1,7 +1,11 @@
1
1
  import { alpha } from '../../../tokens/color';
2
2
  import { EFFECT_GLOW } from '../../../tokens/ink.core';
3
+ import { muiSize } from '../../../tokens/vocabulary';
4
+ import type { SizeValue } from '../../../tokens/vocabulary';
3
5
 
4
- import type { CheckboxVariant } from './Checkbox.base';
6
+ import type { CheckboxSize, CheckboxVariant } from './Checkbox.base';
7
+
8
+ export type { CheckboxSize } from './Checkbox.base';
5
9
 
6
10
  /**
7
11
  * THE NUMBERS BOTH `Checkbox` RENDERERS DRAW WITH.
@@ -17,13 +21,37 @@ import type { CheckboxVariant } from './Checkbox.base';
17
21
  /** MUI's `SwitchBase`: 9px of padding around the glyph, at every size. */
18
22
  export const CHECKBOX_PADDING = 9;
19
23
 
20
- /** `SvgIcon`'s own three steps. MUI passes the `size` prop straight to the glyph. */
21
- export const CHECKBOX_GLYPH_SIZES = { small: 20, medium: 24, large: 35 } as const;
22
- export type CheckboxSize = keyof typeof CHECKBOX_GLYPH_SIZES;
24
+ /**
25
+ * `SvgIcon`'s own three steps. MUI passes the `size` prop straight to the
26
+ * glyph. Typed against {@link CheckboxSize} (declared in `Checkbox.base.ts`,
27
+ * the contract file, since it is part of the public prop type) rather than the
28
+ * other way around, so a step added to one and not the other fails here.
29
+ */
30
+ export const CHECKBOX_GLYPH_SIZES: Record<CheckboxSize, number> = { small: 20, medium: 24, large: 35 };
23
31
 
24
32
  export const glyphSize = (size: CheckboxSize | undefined): number =>
25
33
  CHECKBOX_GLYPH_SIZES[size ?? 'medium'] ?? CHECKBOX_GLYPH_SIZES.medium;
26
34
 
35
+ /**
36
+ * `size` at the MUI boundary.
37
+ *
38
+ * A `SizeValue` is translated via `muiSize()` — the pattern `Chip`/`Button`/
39
+ * `Carousel` already follow. MUI's own deprecated word (see
40
+ * {@link CheckboxSize}) is passed through UNCHANGED rather than re-derived,
41
+ * so a caller who has not migrated renders at exactly the size it always has —
42
+ * translating it through `muiSize()` too would not change any of the three
43
+ * words' own geometry, but passing it through untouched is the one route that
44
+ * cannot drift from what "unchanged" already means. `undefined` stays
45
+ * `undefined`, so a caller who names no size keeps MUI's own default.
46
+ */
47
+ export const resolveCheckboxSize = (
48
+ size: SizeValue | CheckboxSize | undefined,
49
+ ): CheckboxSize | undefined => {
50
+ if (size === undefined) return undefined;
51
+ if (size === 'small' || size === 'medium' || size === 'large') return size;
52
+ return muiSize(size);
53
+ };
54
+
27
55
  /**
28
56
  * The three glyphs MUI draws, by state.
29
57
  *
@@ -22,6 +22,7 @@ import {
22
22
  CHECKBOX_VARIANT,
23
23
  effectInk,
24
24
  glyphSize,
25
+ resolveCheckboxSize,
25
26
  } from './Checkbox.metrics';
26
27
  import type { CheckboxProps } from './Checkbox.types.native';
27
28
  import { Icon } from '../../../icons/Icon.native';
@@ -199,7 +200,7 @@ export const Checkbox = React.forwardRef<View, CheckboxProps>((rawProps, ref) =>
199
200
  glow={glow}
200
201
  ripple={ripple}
201
202
  variant={variant}
202
- size={glyphSize(size)}
203
+ size={glyphSize(resolveCheckboxSize(size))}
203
204
  label={label}
204
205
  onToggle={toggle}
205
206
  rest={withoutTestIdProps(others) as Record<string, unknown>}
@@ -17,6 +17,7 @@ import {
17
17
  CHECKBOX_TRANSITION_MS,
18
18
  CHECKBOX_VARIANT,
19
19
  effectInk,
20
+ resolveCheckboxSize,
20
21
  } from './Checkbox.metrics';
21
22
  import type { CheckboxProps } from './Checkbox.types';
22
23
  import { splitTestId } from '../../../platform/test-id';
@@ -126,6 +127,7 @@ export const Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(
126
127
  glow,
127
128
  pulse,
128
129
  disabled,
130
+ size,
129
131
  ...others
130
132
  } = resolveCheckboxProps(rawProps);
131
133
  const theme = useTheme();
@@ -142,6 +144,7 @@ export const Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(
142
144
  glow={glow}
143
145
  pulse={pulse}
144
146
  disabled={isDisabled}
147
+ size={resolveCheckboxSize(size)}
145
148
  data-testid={dataTestId || 'checkbox'}
146
149
  {...props}
147
150
  />
@@ -1,10 +1,8 @@
1
1
  import type { GestureResponderEvent, StyleProp, ViewProps, ViewStyle } from 'react-native';
2
2
 
3
3
  import type { CheckboxBaseProps } from './Checkbox.base';
4
- import type { CheckboxSize } from './Checkbox.metrics';
5
4
 
6
- export type { CheckboxBaseProps, CheckboxVariant } from './Checkbox.base';
7
- export type { CheckboxSize } from './Checkbox.metrics';
5
+ export type { CheckboxBaseProps, CheckboxSize, CheckboxVariant } from './Checkbox.base';
8
6
 
9
7
  /**
10
8
  * The change a native `Checkbox` reports: the `{ target: { checked } }` shape
@@ -19,8 +17,6 @@ export type CheckboxProps = CheckboxBaseProps &
19
17
  Omit<ViewProps, keyof CheckboxBaseProps | 'style'> & {
20
18
  checked?: boolean;
21
19
  defaultChecked?: boolean;
22
- /** MUI's own words for the glyph's size, which is what this component takes. */
23
- size?: CheckboxSize;
24
20
  onChange?: (event: CheckboxChangeEvent, checked: boolean) => void;
25
21
  /** Both spellings fire, as `Button`'s do. */
26
22
  onClick?: (event: GestureResponderEvent) => void;
@@ -3,12 +3,15 @@ import type { ChangeEvent, FocusEventHandler, MouseEventHandler } from 'react';
3
3
 
4
4
  import type { CheckboxBaseProps } from './Checkbox.base';
5
5
 
6
- export type { CheckboxBaseProps, CheckboxVariant } from './Checkbox.base';
6
+ export type { CheckboxBaseProps, CheckboxSize, CheckboxVariant } from './Checkbox.base';
7
7
 
8
8
  /**
9
9
  * The web `Checkbox`: the shared contract, plus everything MUI's `Checkbox`
10
10
  * accepts that the contract does not already name — `checked`,
11
- * `defaultChecked`, `size`, `color`, `icon`, `inputProps`, `sx`.
11
+ * `defaultChecked`, `color`, `icon`, `inputProps`, `sx`. `size` IS already
12
+ * named by the contract (`CheckboxBaseProps`), which is why it is omitted
13
+ * from what flows through here — MUI's own `size` type would otherwise win
14
+ * over the house `SizeValue` the contract adds.
12
15
  */
13
16
  export interface CheckboxProps
14
17
  extends CheckboxBaseProps,
@@ -172,3 +172,28 @@ export const progressValueText = (
172
172
  const step = steps[currentStep];
173
173
  return step === undefined ? position : `${position}: ${step.title}`;
174
174
  };
175
+
176
+ export interface ProgressValueRange {
177
+ max?: number;
178
+ now?: number;
179
+ }
180
+
181
+ /**
182
+ * The progressbar's `aria-valuemax`/`aria-valuenow` pair (FUT-2773). With no
183
+ * steps at all there is no meaningful range to report — a `role="progressbar"`
184
+ * with zero steps has nothing to measure, and WAI-ARIA's own value attributes
185
+ * are optional for exactly this case (an indeterminate progressbar omits
186
+ * `aria-valuenow`) — so both are left out rather than asserting the invalid
187
+ * range `aria-valuemax={-1}` with `aria-valuenow={0}`. Otherwise `currentStep`
188
+ * is clamped to `[0, steps.length - 1]` so the reported value never falls
189
+ * outside `[aria-valuemin, aria-valuemax]`, however far `currentStep` strays.
190
+ */
191
+ export const progressValueRange = (
192
+ steps: readonly WorkflowStepItem[],
193
+ currentStep: number,
194
+ ): ProgressValueRange => {
195
+ if (steps.length === 0) return {};
196
+
197
+ const max = steps.length - 1;
198
+ return { max, now: Math.min(Math.max(currentStep, 0), max) };
199
+ };
@@ -123,14 +123,17 @@ const StepContent = styled(Box, {
123
123
  orientation: WorkflowStepProps['orientation'];
124
124
  interactive: boolean;
125
125
  disabled: boolean;
126
- }>(({ theme, orientation, interactive, disabled }) => ({
126
+ }>(({ theme, orientation, disabled }) => ({
127
127
  display: 'flex',
128
128
  flexDirection: 'column',
129
129
  alignItems: orientation === 'vertical' ? 'flex-start' : 'center',
130
130
  textAlign: orientation === 'vertical' ? 'left' : 'center',
131
131
  marginTop: orientation === 'vertical' ? theme.spacing(1) : theme.spacing(0.5),
132
132
  marginLeft: orientation === 'horizontal' ? theme.spacing(1) : 0,
133
- cursor: interactive && !disabled ? 'pointer' : 'default',
133
+ // Inert (FUT-2773): the content block has no click handling of its own —
134
+ // the indicator is the step's one interactive element — so its cursor
135
+ // never claims to be clickable, whatever `interactive` says.
136
+ cursor: 'default',
134
137
  minWidth: 0,
135
138
  flex: 1,
136
139
 
@@ -160,26 +163,27 @@ const StepContent = styled(Box, {
160
163
  }));
161
164
 
162
165
  const StepConnector = styled(Box, {
163
- shouldForwardProp: (prop) => !['orientation', 'isCompleted', 'color', 'variant'].includes(prop as string),
166
+ shouldForwardProp: (prop) => !['orientation', 'isCompleted', 'color', 'variant', 'animated'].includes(prop as string),
164
167
  })<{
165
168
  orientation: WorkflowStepProps['orientation'];
166
169
  isCompleted: boolean;
167
170
  color: WorkflowStepProps['color'];
168
171
  variant: WorkflowStepProps['variant'];
169
- }>(({ theme, orientation, isCompleted, color, variant }) => {
172
+ animated: boolean;
173
+ }>(({ theme, orientation, isCompleted, color, variant, animated }) => {
170
174
  const connectorColor = isCompleted ? stepPalette(theme, color).main : neutralTones(theme).track;
171
175
 
172
176
  return {
173
177
  flex: 1,
174
178
  position: 'relative',
175
-
179
+
176
180
  ...(orientation === 'horizontal' && {
177
181
  height: rem(theme, 2),
178
182
  backgroundColor: connectorColor,
179
183
  margin: `0 ${theme.spacing(1)}`,
180
184
  minWidth: theme.spacing(2),
181
185
  }),
182
-
186
+
183
187
  ...(orientation === 'vertical' && {
184
188
  width: rem(theme, 2),
185
189
  backgroundColor: connectorColor,
@@ -191,9 +195,11 @@ const StepConnector = styled(Box, {
191
195
  top: '100%',
192
196
  }),
193
197
 
194
- transition: theme.transitions.create('background-color', {
195
- duration: theme.transitions.duration.short,
196
- }),
198
+ transition: animated
199
+ ? theme.transitions.create('background-color', {
200
+ duration: theme.transitions.duration.short,
201
+ })
202
+ : 'none',
197
203
 
198
204
  ...(variant === 'minimal' && {
199
205
  opacity: 0.6,
@@ -223,6 +229,8 @@ const StepIndicatorComponent = forwardRef<HTMLDivElement, StepIndicatorProps>(({
223
229
  onClick,
224
230
  'data-testid': dataTestId,
225
231
  }, ref) => {
232
+ const isDisabled = Boolean(disabled || step.disabled);
233
+
226
234
  const handleClick = useCallback(() => {
227
235
  if (interactive && !disabled && onClick) {
228
236
  onClick(index, step);
@@ -265,13 +273,14 @@ const StepIndicatorComponent = forwardRef<HTMLDivElement, StepIndicatorProps>(({
265
273
  isError={isError}
266
274
  interactive={interactive}
267
275
  animated={animated}
268
- disabled={Boolean(disabled || step.disabled)}
276
+ disabled={isDisabled}
269
277
  onClick={handleClick}
270
278
  onKeyDown={handleKeyDown}
271
279
  role={interactive ? 'button' : undefined}
272
- tabIndex={interactive && !disabled && !step.disabled ? 0 : -1}
280
+ tabIndex={!interactive ? undefined : isDisabled ? -1 : 0}
273
281
  aria-label={`Step ${index + 1}: ${step.title}`}
274
282
  aria-current={isActive ? 'step' : undefined}
283
+ aria-disabled={interactive && isDisabled ? true : undefined}
275
284
  data-testid={dataTestId}
276
285
  >
277
286
  {renderIndicatorContent()}
@@ -289,6 +298,10 @@ const StepConnectorComponent = forwardRef<HTMLDivElement, StepConnectorProps>(({
289
298
  orientation,
290
299
  variant,
291
300
  color,
301
+ // Defaults to the connector's own prior, unconditional behaviour (FUT-2773):
302
+ // an external caller building a `StepConnectorProps` value that predates
303
+ // this field keeps the transition it always had.
304
+ animated = true,
292
305
  'data-testid': dataTestId,
293
306
  }, ref) => (
294
307
  <StepConnector
@@ -297,6 +310,7 @@ const StepConnectorComponent = forwardRef<HTMLDivElement, StepConnectorProps>(({
297
310
  isCompleted={isCompleted}
298
311
  color={color}
299
312
  variant={variant}
313
+ animated={animated}
300
314
  data-testid={dataTestId}
301
315
  />
302
316
  ));
@@ -304,51 +318,34 @@ const StepConnectorComponent = forwardRef<HTMLDivElement, StepConnectorProps>(({
304
318
  StepConnectorComponent.displayName = 'StepConnector';
305
319
 
306
320
  /**
307
- * Step content component
321
+ * Step content component.
322
+ *
323
+ * Inert on purpose (FUT-2773): the indicator is the step's one focusable
324
+ * `role="button"` element — it already carries `aria-label="Step N: <title>"`
325
+ * — so the title/description block gets no `role`, `tabIndex`, click or key
326
+ * handling of its own. Two independently-interactive elements per step gave
327
+ * assistive tech two tab stops for what a caller means as a single control.
308
328
  */
309
329
  const StepContentComponent = forwardRef<HTMLDivElement, StepContentProps>(({
310
330
  step,
311
- index,
312
331
  orientation,
313
332
  interactive,
314
333
  disabled,
315
- onClick,
316
334
  'data-testid': dataTestId,
317
- }, ref) => {
318
- const handleClick = useCallback(() => {
319
- if (interactive && !disabled && onClick) {
320
- onClick(index, step);
321
- }
322
- }, [interactive, disabled, onClick, index, step]);
323
-
324
- const handleKeyDown = useCallback((event: React.KeyboardEvent) => {
325
- if (interactive && !disabled && (event.key === 'Enter' || event.key === ' ')) {
326
- event.preventDefault();
327
- if (onClick) {
328
- onClick(index, step);
329
- }
330
- }
331
- }, [interactive, disabled, onClick, index, step]);
332
-
333
- return (
334
- <StepContent
335
- ref={ref}
336
- orientation={orientation}
337
- interactive={interactive}
338
- disabled={Boolean(disabled || step.disabled)}
339
- onClick={handleClick}
340
- onKeyDown={handleKeyDown}
341
- role={interactive ? 'button' : undefined}
342
- tabIndex={interactive && !disabled && !step.disabled ? 0 : -1}
343
- data-testid={dataTestId}
344
- >
345
- <div className="step-title">{step.title}</div>
346
- {step.description && (
347
- <div className="step-description">{step.description}</div>
348
- )}
349
- </StepContent>
350
- );
351
- });
335
+ }, ref) => (
336
+ <StepContent
337
+ ref={ref}
338
+ orientation={orientation}
339
+ interactive={interactive}
340
+ disabled={Boolean(disabled || step.disabled)}
341
+ data-testid={dataTestId}
342
+ >
343
+ <div className="step-title">{step.title}</div>
344
+ {step.description && (
345
+ <div className="step-description">{step.description}</div>
346
+ )}
347
+ </StepContent>
348
+ ));
352
349
 
353
350
  StepContentComponent.displayName = 'StepContent';
354
351