@astryxdesign/core 0.7.9-canary.4d7dca6 → 0.7.9-canary.4e963df

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 (495) hide show
  1. package/dist/AlertDialog/AlertDialog.d.ts +3 -2
  2. package/dist/AlertDialog/AlertDialog.d.ts.map +1 -1
  3. package/dist/AlertDialog/AlertDialog.js +11 -14
  4. package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
  5. package/dist/BottomSheet/BottomSheet.js +32 -3
  6. package/dist/BottomSheet/bottomSheetStack.d.ts.map +1 -1
  7. package/dist/BottomSheet/bottomSheetStack.js +4 -3
  8. package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
  9. package/dist/BottomSheet/useSheetGestures.js +38 -11
  10. package/dist/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
  11. package/dist/Breadcrumbs/BreadcrumbItem.js +3 -1
  12. package/dist/Button/Button.d.ts.map +1 -1
  13. package/dist/Button/Button.js +11 -2
  14. package/dist/ButtonGroup/ButtonGroup.d.ts +2 -1
  15. package/dist/ButtonGroup/ButtonGroup.d.ts.map +1 -1
  16. package/dist/ButtonGroup/ButtonGroup.js +28 -5
  17. package/dist/Chat/ChatMessageList.d.ts.map +1 -1
  18. package/dist/Chat/ChatMessageList.js +10 -2
  19. package/dist/CheckboxInput/CheckboxInput.d.ts +2 -1
  20. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  21. package/dist/CheckboxInput/CheckboxInput.js +31 -17
  22. package/dist/CheckboxInput/CheckboxRowPressContext.d.ts +2 -0
  23. package/dist/CheckboxInput/CheckboxRowPressContext.d.ts.map +1 -0
  24. package/dist/CheckboxInput/CheckboxRowPressContext.js +20 -0
  25. package/dist/CheckboxList/CheckboxListItem.d.ts +2 -1
  26. package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
  27. package/dist/CheckboxList/CheckboxListItem.js +47 -14
  28. package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
  29. package/dist/CodeBlock/CodeBlock.js +12 -4
  30. package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
  31. package/dist/ComplexSelector/ComplexSelector.js +21 -12
  32. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  33. package/dist/ContextMenu/ContextMenu.js +5 -1
  34. package/dist/DateInput/DateInput.d.ts +37 -6
  35. package/dist/DateInput/DateInput.d.ts.map +1 -1
  36. package/dist/DateInput/DateInput.js +98 -128
  37. package/dist/DateInput/MonthScroller.d.ts +5 -2
  38. package/dist/DateInput/MonthScroller.d.ts.map +1 -1
  39. package/dist/DateInput/MonthScroller.js +26 -29
  40. package/dist/DateInput/MonthYearWheels.d.ts +10 -1
  41. package/dist/DateInput/MonthYearWheels.d.ts.map +1 -1
  42. package/dist/DateInput/MonthYearWheels.js +54 -42
  43. package/dist/DateInput/TouchDateField.d.ts +1 -1
  44. package/dist/DateInput/TouchDateField.d.ts.map +1 -1
  45. package/dist/DateInput/TouchDateField.js +26 -21
  46. package/dist/DateInput/monthGeometry.d.ts +42 -8
  47. package/dist/DateInput/monthGeometry.d.ts.map +1 -1
  48. package/dist/DateInput/monthGeometry.js +81 -7
  49. package/dist/DateInput/useCalendarPresentation.d.ts +10 -0
  50. package/dist/DateInput/useCalendarPresentation.d.ts.map +1 -0
  51. package/dist/DateInput/useCalendarPresentation.js +32 -0
  52. package/dist/DateInput/useTypedDate.d.ts +92 -0
  53. package/dist/DateInput/useTypedDate.d.ts.map +1 -0
  54. package/dist/DateInput/useTypedDate.js +269 -0
  55. package/dist/DateInput/wheelStrip.js +2 -2
  56. package/dist/DateRangeInput/DateRangeInput.d.ts +17 -1
  57. package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  58. package/dist/DateRangeInput/DateRangeInput.js +15 -11
  59. package/dist/DateTimeInput/DateTimeInput.d.ts +26 -3
  60. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  61. package/dist/DateTimeInput/DateTimeInput.js +126 -101
  62. package/dist/DateTimeInput/TouchDateTimeField.d.ts +1 -1
  63. package/dist/DateTimeInput/TouchDateTimeField.d.ts.map +1 -1
  64. package/dist/DateTimeInput/TouchDateTimeField.js +26 -20
  65. package/dist/Dialog/Dialog.d.ts.map +1 -1
  66. package/dist/Dialog/Dialog.js +2 -2
  67. package/dist/Drawer/Drawer.d.ts.map +1 -1
  68. package/dist/Drawer/Drawer.js +3 -1
  69. package/dist/DropdownMenu/DropdownMenu.d.ts +2 -1
  70. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  71. package/dist/DropdownMenu/DropdownMenu.js +44 -12
  72. package/dist/HoverCard/HoverCard.d.ts.map +1 -1
  73. package/dist/HoverCard/HoverCard.js +19 -9
  74. package/dist/Icon/ComponentIcon.d.ts +33 -0
  75. package/dist/Icon/ComponentIcon.d.ts.map +1 -0
  76. package/dist/Icon/ComponentIcon.js +56 -0
  77. package/dist/Icon/globalIconRegistry.d.ts +45 -4
  78. package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
  79. package/dist/Icon/globalIconRegistry.js +137 -3
  80. package/dist/Icon/index.d.ts +73 -2
  81. package/dist/Icon/index.d.ts.map +1 -1
  82. package/dist/Icon/index.js +42 -3
  83. package/dist/Icon/useIcon.d.ts +13 -4
  84. package/dist/Icon/useIcon.d.ts.map +1 -1
  85. package/dist/Icon/useIcon.js +16 -5
  86. package/dist/InfoTip/InfoTip.d.ts.map +1 -1
  87. package/dist/InfoTip/InfoTip.js +5 -18
  88. package/dist/InputGroup/InputGroupText.d.ts +2 -1
  89. package/dist/InputGroup/InputGroupText.d.ts.map +1 -1
  90. package/dist/InputGroup/InputGroupText.js +2 -1
  91. package/dist/Item/Item.d.ts +18 -0
  92. package/dist/Item/Item.d.ts.map +1 -1
  93. package/dist/Item/Item.js +83 -28
  94. package/dist/Item/ItemListRowContext.d.ts +2 -0
  95. package/dist/Item/ItemListRowContext.d.ts.map +1 -0
  96. package/dist/Item/ItemListRowContext.js +16 -0
  97. package/dist/Layer/LayerProvider.d.ts.map +1 -1
  98. package/dist/Layer/LayerProvider.js +8 -7
  99. package/dist/Layer/LayerTouch.d.ts +13 -0
  100. package/dist/Layer/LayerTouch.d.ts.map +1 -0
  101. package/dist/Layer/LayerTouch.js +16 -0
  102. package/dist/Layer/holdEntranceInput.d.ts.map +1 -1
  103. package/dist/Layer/holdEntranceInput.js +4 -2
  104. package/dist/Layer/layerKeyboardClearance.d.ts +41 -0
  105. package/dist/Layer/layerKeyboardClearance.d.ts.map +1 -0
  106. package/dist/Layer/layerKeyboardClearance.js +51 -0
  107. package/dist/Layer/layerViewportInset.stylex.d.ts +5 -1
  108. package/dist/Layer/layerViewportInset.stylex.d.ts.map +1 -1
  109. package/dist/Layer/layerViewportInset.stylex.js +11 -4
  110. package/dist/Layer/outsidePress.d.ts +4 -0
  111. package/dist/Layer/outsidePress.d.ts.map +1 -1
  112. package/dist/Layer/outsidePress.js +18 -1
  113. package/dist/Layer/settledBox.d.ts +16 -0
  114. package/dist/Layer/settledBox.d.ts.map +1 -0
  115. package/dist/Layer/settledBox.js +117 -0
  116. package/dist/Layer/toastHost.d.ts +77 -0
  117. package/dist/Layer/toastHost.d.ts.map +1 -0
  118. package/dist/Layer/toastHost.js +172 -0
  119. package/dist/Layer/useBackdropPress.d.ts +8 -0
  120. package/dist/Layer/useBackdropPress.d.ts.map +1 -1
  121. package/dist/Layer/useBackdropPress.js +31 -2
  122. package/dist/Layer/useLayer.d.ts.map +1 -1
  123. package/dist/Layer/useLayer.js +36 -106
  124. package/dist/Layer/useLayerKeyboardClearance.d.ts +54 -0
  125. package/dist/Layer/useLayerKeyboardClearance.d.ts.map +1 -0
  126. package/dist/Layer/useLayerKeyboardClearance.js +330 -0
  127. package/dist/Layer/useTouchTrigger.d.ts.map +1 -1
  128. package/dist/Layer/useTouchTrigger.js +4 -0
  129. package/dist/Layout/LayoutPanel.d.ts +10 -10
  130. package/dist/Layout/LayoutPanel.d.ts.map +1 -1
  131. package/dist/Layout/LayoutPanel.js +71 -10
  132. package/dist/Link/Link.d.ts.map +1 -1
  133. package/dist/Link/Link.js +5 -1
  134. package/dist/List/List.d.ts.map +1 -1
  135. package/dist/List/List.js +1 -0
  136. package/dist/List/ListItem.d.ts +5 -4
  137. package/dist/List/ListItem.d.ts.map +1 -1
  138. package/dist/List/ListItem.js +45 -9
  139. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  140. package/dist/MultiSelector/MultiSelector.js +13 -11
  141. package/dist/MultiSelector/hooks.d.ts.map +1 -1
  142. package/dist/MultiSelector/hooks.js +28 -28
  143. package/dist/OverflowList/OverflowList.d.ts.map +1 -1
  144. package/dist/OverflowList/OverflowList.js +7 -2
  145. package/dist/Pagination/Pagination.d.ts.map +1 -1
  146. package/dist/Pagination/Pagination.js +28 -10
  147. package/dist/Popover/Popover.d.ts.map +1 -1
  148. package/dist/Popover/Popover.js +1 -0
  149. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  150. package/dist/RadioList/RadioListItem.js +5 -10
  151. package/dist/Resizable/ResizeHandle.d.ts +5 -5
  152. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  153. package/dist/Resizable/ResizeHandle.js +44 -5
  154. package/dist/Resizable/resizablePane.d.ts +58 -0
  155. package/dist/Resizable/resizablePane.d.ts.map +1 -0
  156. package/dist/Resizable/resizablePane.js +137 -0
  157. package/dist/Resizable/useResizable.d.ts +7 -0
  158. package/dist/Resizable/useResizable.d.ts.map +1 -1
  159. package/dist/Resizable/useResizable.js +13 -0
  160. package/dist/SegmentedControl/useSegmentedSelectionMotion.d.ts.map +1 -1
  161. package/dist/SegmentedControl/useSegmentedSelectionMotion.js +16 -56
  162. package/dist/Selector/Selector.d.ts.map +1 -1
  163. package/dist/Selector/Selector.js +74 -23
  164. package/dist/SideNav/SideNav.d.ts +9 -3
  165. package/dist/SideNav/SideNav.d.ts.map +1 -1
  166. package/dist/SideNav/SideNav.js +45 -10
  167. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  168. package/dist/SideNav/SideNavItem.js +7 -4
  169. package/dist/Slider/sliderTouchController.js +2 -2
  170. package/dist/Spinner/Spinner.d.ts +1 -1
  171. package/dist/Spinner/Spinner.d.ts.map +1 -1
  172. package/dist/Spinner/Spinner.js +27 -5
  173. package/dist/Spinner/SpinnerOwnerContext.d.ts +2 -0
  174. package/dist/Spinner/SpinnerOwnerContext.d.ts.map +1 -0
  175. package/dist/Spinner/SpinnerOwnerContext.js +20 -0
  176. package/dist/Switch/useSwitchTouch.d.ts.map +1 -1
  177. package/dist/Switch/useSwitchTouch.js +13 -9
  178. package/dist/TabList/Tab.d.ts.map +1 -1
  179. package/dist/TabList/Tab.js +5 -1
  180. package/dist/TabList/TabList.d.ts.map +1 -1
  181. package/dist/TabList/TabList.js +1 -0
  182. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +2 -1
  183. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  184. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +27 -5
  185. package/dist/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
  186. package/dist/Table/plugins/sortable/useTableSortable.js +16 -8
  187. package/dist/Timestamp/TimestampHoverCard.d.ts +2 -1
  188. package/dist/Timestamp/TimestampHoverCard.d.ts.map +1 -1
  189. package/dist/Timestamp/TimestampHoverCard.js +12 -5
  190. package/dist/Toast/Toast.js +4 -4
  191. package/dist/Toast/ToastContext.d.ts +6 -13
  192. package/dist/Toast/ToastContext.d.ts.map +1 -1
  193. package/dist/Toast/ToastContext.js +6 -8
  194. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  195. package/dist/Toast/ToastViewport.js +75 -10
  196. package/dist/Toast/useToast.d.ts.map +1 -1
  197. package/dist/Toast/useToast.js +10 -50
  198. package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
  199. package/dist/Tokenizer/Tokenizer.js +17 -10
  200. package/dist/Tooltip/Tooltip.d.ts.map +1 -1
  201. package/dist/Tooltip/Tooltip.js +19 -9
  202. package/dist/Tooltip/useTooltip.d.ts.map +1 -1
  203. package/dist/Tooltip/useTooltip.js +2 -0
  204. package/dist/TopNav/TopNavItem.d.ts.map +1 -1
  205. package/dist/TopNav/TopNavItem.js +7 -2
  206. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  207. package/dist/Typeahead/BaseTypeahead.js +18 -7
  208. package/dist/Typeahead/Typeahead.d.ts.map +1 -1
  209. package/dist/Typeahead/Typeahead.js +11 -4
  210. package/dist/animator/createAnimator.js +2 -2
  211. package/dist/astryx.css +367 -337
  212. package/dist/gestures/createPanGesture.d.ts +49 -0
  213. package/dist/gestures/createPanGesture.d.ts.map +1 -0
  214. package/dist/gestures/createPanGesture.js +80 -0
  215. package/dist/hooks/actionGroupTracker.d.ts +9 -0
  216. package/dist/hooks/actionGroupTracker.d.ts.map +1 -1
  217. package/dist/hooks/actionGroupTracker.js +38 -24
  218. package/dist/hooks/computeOverflow.d.ts +2 -0
  219. package/dist/hooks/computeOverflow.d.ts.map +1 -1
  220. package/dist/hooks/computeOverflow.js +1 -1
  221. package/dist/hooks/index.d.ts +2 -0
  222. package/dist/hooks/index.d.ts.map +1 -1
  223. package/dist/hooks/index.js +2 -1
  224. package/dist/hooks/pressGroupContext.d.ts +5 -3
  225. package/dist/hooks/pressGroupContext.d.ts.map +1 -1
  226. package/dist/hooks/pressGroupContext.js +17 -9
  227. package/dist/hooks/useActionGroupTracking.d.ts +29 -4
  228. package/dist/hooks/useActionGroupTracking.d.ts.map +1 -1
  229. package/dist/hooks/useActionGroupTracking.js +92 -14
  230. package/dist/hooks/useAnnounceRenderedText.d.ts +10 -2
  231. package/dist/hooks/useAnnounceRenderedText.d.ts.map +1 -1
  232. package/dist/hooks/useAnnounceRenderedText.js +45 -8
  233. package/dist/hooks/useClickableContainer.d.ts +10 -3
  234. package/dist/hooks/useClickableContainer.d.ts.map +1 -1
  235. package/dist/hooks/useClickableContainer.js +23 -10
  236. package/dist/hooks/useGroupPressTracking.d.ts +34 -0
  237. package/dist/hooks/useGroupPressTracking.d.ts.map +1 -0
  238. package/dist/hooks/useGroupPressTracking.js +122 -0
  239. package/dist/hooks/useKeyboardHighlight.d.ts +17 -0
  240. package/dist/hooks/useKeyboardHighlight.d.ts.map +1 -0
  241. package/dist/hooks/useKeyboardHighlight.js +38 -0
  242. package/dist/hooks/useMediaQuery.d.ts +2 -1
  243. package/dist/hooks/useMediaQuery.d.ts.map +1 -1
  244. package/dist/hooks/useMediaQuery.js +37 -12
  245. package/dist/hooks/useMenuPress.d.ts.map +1 -1
  246. package/dist/hooks/useMenuPress.js +7 -0
  247. package/dist/hooks/useOverflow.d.ts +10 -0
  248. package/dist/hooks/useOverflow.d.ts.map +1 -1
  249. package/dist/hooks/useOverflow.js +214 -23
  250. package/dist/hooks/usePanGesture.d.ts +32 -0
  251. package/dist/hooks/usePanGesture.d.ts.map +1 -0
  252. package/dist/hooks/usePanGesture.js +67 -0
  253. package/dist/i18n/InternationalizationProvider.d.ts +2 -1
  254. package/dist/i18n/InternationalizationProvider.d.ts.map +1 -1
  255. package/dist/i18n/generated-english/DateInput/DateInput.generated.d.ts.map +1 -1
  256. package/dist/i18n/generated-english/DateInput/DateInput.generated.js +0 -1
  257. package/dist/i18n/generated-english/DateInput/useTypedDate.generated.d.ts +8 -0
  258. package/dist/i18n/generated-english/DateInput/useTypedDate.generated.d.ts.map +1 -0
  259. package/dist/i18n/generated-english/DateInput/useTypedDate.generated.js +16 -0
  260. package/dist/i18n/generated-english/DateTimeInput/DateTimeInput.generated.d.ts.map +1 -1
  261. package/dist/i18n/generated-english/DateTimeInput/DateTimeInput.generated.js +0 -1
  262. package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
  263. package/dist/i18n/generated-locales/en.generated.js +6 -1
  264. package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
  265. package/dist/i18n/generated-locales/pseudo.generated.js +6 -1
  266. package/dist/index.d.ts +1 -0
  267. package/dist/index.d.ts.map +1 -1
  268. package/dist/index.js +1 -0
  269. package/dist/internal/touch.d.ts +19 -6
  270. package/dist/internal/touch.d.ts.map +1 -1
  271. package/dist/internal/touch.js +25 -8
  272. package/dist/motion/animatedLayout.d.ts.map +1 -1
  273. package/dist/motion/animatedLayout.js +10 -7
  274. package/dist/motion/animator.d.ts +5 -5
  275. package/dist/motion/animator.d.ts.map +1 -1
  276. package/dist/motion/animator.js +10 -8
  277. package/dist/motion/resolveMotion.d.ts +6 -27
  278. package/dist/motion/resolveMotion.d.ts.map +1 -1
  279. package/dist/motion/resolveMotion.js +82 -16
  280. package/dist/motion/themeTempo.d.ts +7 -0
  281. package/dist/motion/themeTempo.d.ts.map +1 -0
  282. package/dist/motion/themeTempo.js +38 -0
  283. package/dist/motion/themeTiming.d.ts +63 -0
  284. package/dist/motion/themeTiming.d.ts.map +1 -0
  285. package/dist/motion/themeTiming.js +173 -0
  286. package/dist/privateAttributes/focusOwner.stylex.d.ts +22 -0
  287. package/dist/privateAttributes/focusOwner.stylex.d.ts.map +1 -0
  288. package/dist/privateAttributes/focusOwner.stylex.js +39 -0
  289. package/dist/privateAttributes/press.stylex.d.ts +18 -11
  290. package/dist/privateAttributes/press.stylex.d.ts.map +1 -1
  291. package/dist/privateAttributes/press.stylex.js +20 -11
  292. package/dist/privateAttributes/pressGroupItem.stylex.d.ts +8 -5
  293. package/dist/privateAttributes/pressGroupItem.stylex.d.ts.map +1 -1
  294. package/dist/privateAttributes/pressGroupItem.stylex.js +11 -5
  295. package/dist/theme/defineTheme.d.ts +42 -3
  296. package/dist/theme/defineTheme.d.ts.map +1 -1
  297. package/dist/theme/defineTheme.js +48 -0
  298. package/dist/theme/generateThemeRules.d.ts.map +1 -1
  299. package/dist/theme/generateThemeRules.js +4 -1
  300. package/dist/theme/resolveThemeValues.d.ts.map +1 -1
  301. package/dist/theme/resolveThemeValues.js +12 -4
  302. package/dist/theme/themeMotion.d.ts +7 -5
  303. package/dist/theme/themeMotion.d.ts.map +1 -1
  304. package/dist/theme/themeMotion.js +7 -5
  305. package/dist/utils/calendarDateParser.d.ts +3 -1
  306. package/dist/utils/calendarDateParser.d.ts.map +1 -1
  307. package/dist/utils/calendarDateParser.js +105 -17
  308. package/dist/utils/calendarSystem.d.ts +49 -3
  309. package/dist/utils/calendarSystem.d.ts.map +1 -1
  310. package/dist/utils/calendarSystem.js +129 -5
  311. package/dist/utils/coarsePointer.d.ts +5 -0
  312. package/dist/utils/coarsePointer.d.ts.map +1 -1
  313. package/dist/utils/coarsePointer.js +22 -13
  314. package/dist/utils/focusReturn.d.ts +34 -13
  315. package/dist/utils/focusReturn.d.ts.map +1 -1
  316. package/dist/utils/focusReturn.js +64 -17
  317. package/dist/utils/hitArea.d.ts +35 -2
  318. package/dist/utils/hitArea.d.ts.map +1 -1
  319. package/dist/utils/hitArea.js +65 -14
  320. package/dist/utils/inputPresentation.d.ts +9 -1
  321. package/dist/utils/inputPresentation.d.ts.map +1 -1
  322. package/dist/utils/inputPresentation.js +15 -1
  323. package/dist/utils/touchHitArea.d.ts +49 -0
  324. package/dist/utils/touchHitArea.d.ts.map +1 -0
  325. package/dist/utils/touchHitArea.js +177 -0
  326. package/dist/utils/touchHitArea.stylex.d.ts +31 -4
  327. package/dist/utils/touchHitArea.stylex.d.ts.map +1 -1
  328. package/dist/utils/touchHitArea.stylex.js +51 -4
  329. package/locales/en.json +21 -1
  330. package/locales/pseudo.json +15 -0
  331. package/package.json +4 -4
  332. package/src/AlertDialog/AlertDialog.tsx +9 -13
  333. package/src/BottomSheet/BottomSheet.tsx +40 -3
  334. package/src/BottomSheet/bottomSheetStack.ts +4 -3
  335. package/src/BottomSheet/useSheetGestures.ts +43 -12
  336. package/src/Breadcrumbs/BreadcrumbItem.tsx +7 -1
  337. package/src/Button/Button.tsx +17 -2
  338. package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -2
  339. package/src/ButtonGroup/ButtonGroup.tsx +28 -4
  340. package/src/Calendar/useCalendarDays.doc.mjs +158 -0
  341. package/src/Chat/ChatMessageList.tsx +18 -2
  342. package/src/CheckboxInput/CheckboxInput.doc.mjs +2 -2
  343. package/src/CheckboxInput/CheckboxInput.tsx +51 -24
  344. package/src/CheckboxInput/CheckboxRowPressContext.ts +22 -0
  345. package/src/CheckboxList/CheckboxList.doc.mjs +9 -0
  346. package/src/CheckboxList/CheckboxListItem.doc.mjs +3 -3
  347. package/src/CheckboxList/CheckboxListItem.tsx +42 -18
  348. package/src/CodeBlock/CodeBlock.doc.mjs +17 -0
  349. package/src/CodeBlock/CodeBlock.tsx +11 -2
  350. package/src/ComplexSelector/ComplexSelector.doc.mjs +2 -2
  351. package/src/ComplexSelector/ComplexSelector.tsx +39 -31
  352. package/src/ContextMenu/ContextMenu.tsx +9 -1
  353. package/src/DateInput/DateInput.doc.mjs +45 -12
  354. package/src/DateInput/DateInput.tsx +165 -181
  355. package/src/DateInput/MonthScroller.tsx +39 -37
  356. package/src/DateInput/MonthYearWheels.tsx +68 -47
  357. package/src/DateInput/TouchDateField.tsx +45 -17
  358. package/src/DateInput/monthGeometry.ts +110 -8
  359. package/src/DateInput/useCalendarPresentation.ts +64 -0
  360. package/src/DateInput/useTypedDate.ts +469 -0
  361. package/src/DateInput/wheelStrip.ts +2 -2
  362. package/src/DateRangeInput/DateRangeInput.doc.mjs +9 -0
  363. package/src/DateRangeInput/DateRangeInput.tsx +42 -10
  364. package/src/DateTimeInput/DateTimeInput.doc.mjs +42 -9
  365. package/src/DateTimeInput/DateTimeInput.tsx +173 -163
  366. package/src/DateTimeInput/TouchDateTimeField.tsx +31 -16
  367. package/src/Dialog/Dialog.tsx +2 -1
  368. package/src/Drawer/Drawer.tsx +3 -1
  369. package/src/DropdownMenu/DropdownMenu.tsx +50 -12
  370. package/src/HoverCard/HoverCard.tsx +4 -1
  371. package/src/Icon/ComponentIcon.tsx +71 -0
  372. package/src/Icon/globalIconRegistry.tsx +181 -4
  373. package/src/Icon/index.ts +85 -2
  374. package/src/Icon/useIcon.doc.mjs +94 -0
  375. package/src/Icon/useIcon.ts +24 -3
  376. package/src/InfoTip/InfoTip.tsx +5 -27
  377. package/src/InputGroup/InputGroupText.doc.mjs +45 -3
  378. package/src/InputGroup/InputGroupText.tsx +2 -1
  379. package/src/Item/Item.doc.mjs +19 -4
  380. package/src/Item/Item.tsx +113 -32
  381. package/src/Item/ItemListRowContext.tsx +18 -0
  382. package/src/Layer/LayerProvider.tsx +9 -8
  383. package/src/Layer/LayerTouch.ts +17 -0
  384. package/src/Layer/holdEntranceInput.ts +4 -2
  385. package/src/Layer/layerKeyboardClearance.ts +55 -0
  386. package/src/Layer/layerViewportInset.stylex.ts +16 -5
  387. package/src/Layer/outsidePress.ts +18 -1
  388. package/src/Layer/settledBox.ts +138 -0
  389. package/src/Layer/toastHost.tsx +212 -0
  390. package/src/Layer/useBackdropPress.ts +41 -1
  391. package/src/Layer/useLayer.tsx +41 -123
  392. package/src/Layer/useLayerKeyboardClearance.ts +371 -0
  393. package/src/Layer/useTouchTrigger.ts +4 -0
  394. package/src/Layout/LayoutPanel.doc.mjs +8 -8
  395. package/src/Layout/LayoutPanel.tsx +105 -15
  396. package/src/Link/Link.tsx +5 -1
  397. package/src/Link/useLinkComponent.doc.mjs +95 -0
  398. package/src/List/List.doc.mjs +10 -1
  399. package/src/List/List.tsx +5 -0
  400. package/src/List/ListItem.tsx +63 -8
  401. package/src/MultiSelector/MultiSelector.tsx +31 -19
  402. package/src/MultiSelector/hooks.ts +28 -35
  403. package/src/MultiSelector/useMultiCombobox.doc.mjs +2 -2
  404. package/src/OverflowList/OverflowList.tsx +15 -9
  405. package/src/Overlay/useOverlay.doc.mjs +176 -0
  406. package/src/Pagination/Pagination.tsx +23 -9
  407. package/src/Popover/Popover.tsx +5 -0
  408. package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
  409. package/src/RadioList/RadioListItem.tsx +5 -13
  410. package/src/Resizable/Resizable.doc.mjs +40 -12
  411. package/src/Resizable/ResizeHandle.tsx +68 -6
  412. package/src/Resizable/resizablePane.ts +179 -0
  413. package/src/Resizable/useResizable.ts +15 -0
  414. package/src/SegmentedControl/useSegmentedSelectionMotion.ts +15 -62
  415. package/src/Selector/Selector.tsx +117 -11
  416. package/src/SideNav/SideNav.doc.mjs +2 -2
  417. package/src/SideNav/SideNav.tsx +87 -12
  418. package/src/SideNav/SideNavItem.tsx +8 -6
  419. package/src/Slider/sliderTouchController.ts +2 -2
  420. package/src/Spinner/Spinner.doc.mjs +150 -36
  421. package/src/Spinner/Spinner.tsx +34 -6
  422. package/src/Spinner/SpinnerOwnerContext.ts +22 -0
  423. package/src/Switch/useSwitchTouch.ts +17 -9
  424. package/src/TabList/Tab.tsx +5 -1
  425. package/src/TabList/TabList.tsx +1 -0
  426. package/src/Table/Table.doc.mjs +34 -0
  427. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +32 -7
  428. package/src/Table/plugins/sortable/useTableSortable.tsx +19 -12
  429. package/src/Table/plugins/sortable/useTableSortableState.doc.mjs +173 -0
  430. package/src/Timestamp/Timestamp.doc.mjs +17 -0
  431. package/src/Timestamp/TimestampHoverCard.tsx +11 -3
  432. package/src/Toast/Toast.doc.mjs +14 -0
  433. package/src/Toast/Toast.tsx +2 -2
  434. package/src/Toast/ToastContext.ts +7 -17
  435. package/src/Toast/ToastViewport.tsx +53 -9
  436. package/src/Toast/useToast.tsx +7 -52
  437. package/src/Tokenizer/Tokenizer.tsx +14 -10
  438. package/src/Tooltip/Tooltip.tsx +4 -1
  439. package/src/Tooltip/useTooltip.tsx +2 -0
  440. package/src/TopNav/TopNavItem.tsx +7 -2
  441. package/src/Typeahead/BaseTypeahead.tsx +34 -8
  442. package/src/Typeahead/Typeahead.tsx +7 -1
  443. package/src/animator/createAnimator.doc.mjs +1 -1
  444. package/src/animator/createAnimator.ts +3 -3
  445. package/src/gestures/README.md +2 -1
  446. package/src/gestures/createPanGesture.doc.mjs +145 -0
  447. package/src/gestures/createPanGesture.ts +107 -0
  448. package/src/hooks/actionGroupTracker.ts +33 -24
  449. package/src/hooks/computeOverflow.ts +1 -1
  450. package/src/hooks/index.ts +8 -0
  451. package/src/hooks/pressGroupContext.ts +18 -9
  452. package/src/hooks/useActionGroupTracking.ts +139 -19
  453. package/src/hooks/useAnimatedLayout.doc.mjs +1 -1
  454. package/src/hooks/useAnimator.doc.mjs +1 -1
  455. package/src/hooks/useAnnounceRenderedText.ts +59 -8
  456. package/src/hooks/useClickableContainer.ts +22 -10
  457. package/src/hooks/useEntryAnimation.doc.mjs +1 -1
  458. package/src/hooks/useGroupPressTracking.ts +154 -0
  459. package/src/hooks/useKeyboardHighlight.ts +71 -0
  460. package/src/hooks/useMediaQuery.ts +41 -12
  461. package/src/hooks/useMenuPress.ts +14 -1
  462. package/src/hooks/useOverflow.ts +321 -75
  463. package/src/hooks/usePanGesture.doc.mjs +158 -0
  464. package/src/hooks/usePanGesture.ts +75 -0
  465. package/src/hooks/usePressFeedback.doc.mjs +1 -1
  466. package/src/i18n/InternationalizationProvider.doc.mjs +3 -3
  467. package/src/i18n/InternationalizationProvider.tsx +2 -1
  468. package/src/i18n/generated-english/DateInput/DateInput.generated.ts +0 -1
  469. package/src/i18n/generated-english/DateInput/useTypedDate.generated.ts +17 -0
  470. package/src/i18n/generated-english/DateTimeInput/DateTimeInput.generated.ts +0 -1
  471. package/src/i18n/generated-locales/en.generated.ts +7 -0
  472. package/src/i18n/generated-locales/pseudo.generated.ts +7 -0
  473. package/src/index.ts +2 -0
  474. package/src/internal/touch.ts +32 -9
  475. package/src/motion/README.md +6 -5
  476. package/src/motion/animatedLayout.ts +10 -7
  477. package/src/motion/animator.ts +10 -9
  478. package/src/motion/resolveMotion.ts +89 -18
  479. package/src/motion/themeTempo.ts +41 -0
  480. package/src/motion/themeTiming.ts +198 -0
  481. package/src/privateAttributes/focusOwner.stylex.ts +51 -0
  482. package/src/privateAttributes/press.stylex.ts +49 -11
  483. package/src/privateAttributes/pressGroupItem.stylex.ts +11 -5
  484. package/src/theme/defineTheme.ts +99 -2
  485. package/src/theme/generateThemeRules.ts +3 -0
  486. package/src/theme/resolveThemeValues.ts +12 -3
  487. package/src/theme/themeMotion.ts +7 -5
  488. package/src/utils/calendarDateParser.ts +108 -18
  489. package/src/utils/calendarSystem.ts +212 -3
  490. package/src/utils/coarsePointer.ts +27 -14
  491. package/src/utils/focusReturn.ts +78 -18
  492. package/src/utils/hitArea.ts +119 -12
  493. package/src/utils/inputPresentation.ts +21 -1
  494. package/src/utils/touchHitArea.stylex.ts +41 -16
  495. package/src/utils/touchHitArea.ts +225 -0
@@ -1,8 +1,9 @@
1
1
  /**
2
2
  * @file AlertDialog.tsx
3
3
  * @input Uses React, StyleX, Dialog, Layout, Heading, Text, Button, the
4
- * action-group tracking (hooks/useActionGroupTracking) and the press-group
5
- * marker (privateAttributes/pressGroupItem.stylex)
4
+ * action-group tracking (hooks/useActionGroupTracking), the press-group
5
+ * context (hooks/pressGroupContext) and the group pointers
6
+ * (hooks/useGroupPressTracking)
6
7
  * @output Exports AlertDialog component, AlertDialogProps type
7
8
  * @position Core implementation; consumed by index.ts, tested by AlertDialog.test.tsx
8
9
  *
@@ -1 +1 @@
1
- {"version":3,"file":"AlertDialog.d.ts","sourceRoot":"","sources":["../../src/AlertDialog/AlertDialog.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAmC,MAAM,OAAO,CAAC;AAUxD,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAsC5C,MAAM,WAAW,gBAAiB,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IACpE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IAE3C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC;IAExB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,GAAG,EACH,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,WAAW,EACX,WAAW,EAAE,oBAAoB,EACjC,WAAW,EACX,aAA6B,EAC7B,eAAe,EACf,QAAQ,EACR,KAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,IAAI,EACR,EAAE,gBAAgB,qBAsHlB;yBAxIe,WAAW"}
1
+ {"version":3,"file":"AlertDialog.d.ts","sourceRoot":"","sources":["../../src/AlertDialog/AlertDialog.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAmC,MAAM,OAAO,CAAC;AAUxD,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAmC5C,MAAM,WAAW,gBAAiB,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IACpE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IAE3C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC;IAExB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,GAAG,EACH,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,WAAW,EACX,WAAW,EAAE,oBAAoB,EACjC,WAAW,EACX,aAA6B,EAC7B,eAAe,EACf,QAAQ,EACR,KAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,IAAI,EACR,EAAE,gBAAgB,qBAoHlB;yBAtIe,WAAW"}
@@ -5,8 +5,9 @@
5
5
  /**
6
6
  * @file AlertDialog.tsx
7
7
  * @input Uses React, StyleX, Dialog, Layout, Heading, Text, Button, the
8
- * action-group tracking (hooks/useActionGroupTracking) and the press-group
9
- * marker (privateAttributes/pressGroupItem.stylex)
8
+ * action-group tracking (hooks/useActionGroupTracking), the press-group
9
+ * context (hooks/pressGroupContext) and the group pointers
10
+ * (hooks/useGroupPressTracking)
10
11
  * @output Exports AlertDialog component, AlertDialogProps type
11
12
  * @position Core implementation; consumed by index.ts, tested by AlertDialog.test.tsx
12
13
  *
@@ -36,12 +37,10 @@ import { registerEnglishFallback, useComponentTranslator } from "../i18n/useComp
36
37
  import english from "../i18n/generated-english/AlertDialog/AlertDialog.generated.js";
37
38
  import { useActionGroupTracking } from "../hooks/useActionGroupTracking.js";
38
39
  import { PressGroupContext } from "../hooks/pressGroupContext.js";
40
+ import { GROUP_PRESS_POINTERS } from "../hooks/useGroupPressTracking.js";
39
41
  import { alertController } from "../motion/uikit/alert.js";
40
- import { pressGroupItemProps } from "../privateAttributes/pressGroupItem.stylex.js";
41
42
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
42
43
  registerEnglishFallback(english);
43
- const SLIDING_POINTERS = ['touch', 'pen'];
44
- const ACTION_TRACKING_PROPS = pressGroupItemProps(SLIDING_POINTERS);
45
44
  const SMALL_SCREEN_QUERY = '(max-width: 640px)';
46
45
  const styles = {
47
46
  trackingRow: {
@@ -115,8 +114,8 @@ export function AlertDialog({
115
114
  onOpenChange(false);
116
115
  }, [onOpenChange]);
117
116
 
118
- // Each action carries the press-group marker from its first render, so the
119
- // tracker is its only painter.
117
+ // Through the group's context, each action's Button writes the press-group
118
+ // marker from its first render. So the tracker is its only painter.
120
119
  const actionsRef = useRef(null);
121
120
  // Only under the touch presentation does a press slide across the
122
121
  // actions. A desktop press stays the native button's.
@@ -130,21 +129,20 @@ export function AlertDialog({
130
129
  highlightOnsetMs: alertController.actions.highlightOnsetMs,
131
130
  highlightExpansion: alertController.actions.highlightExpansion,
132
131
  // A mouse press acts as a native button's under any presentation.
133
- pointerTypes: SLIDING_POINTERS,
132
+ pointerTypes: GROUP_PRESS_POINTERS,
134
133
  isEnabled: isTracking
135
134
  });
136
- const actionTrackingProps = isTracking ? ACTION_TRACKING_PROPS : undefined;
137
135
  const buttonActionStyle = [styles.action, isSmallScreen && styles.stackedAction];
138
136
  const cancelButton = /*#__PURE__*/_jsx(Button, {
139
137
  variant: "ghost",
140
138
  label: cancelLabel,
141
139
  onClick: handleCancel,
142
- xstyle: buttonActionStyle,
143
- ...actionTrackingProps,
140
+ xstyle: buttonActionStyle
144
141
  // Dialog focuses [data-autofocus] itself after showModal(), because
145
142
  // React's autoFocus runs during commit while the dialog is invisible.
146
143
  // Cancel is least destructive, so it remains the autofocus target even
147
144
  // when small-screen visual order places the destructive action above it.
145
+ ,
148
146
  "data-autofocus": true
149
147
  }, "cancel");
150
148
  const actionButton = /*#__PURE__*/_jsx(Button, {
@@ -152,8 +150,7 @@ export function AlertDialog({
152
150
  label: actionLabel,
153
151
  onClick: onAction,
154
152
  isLoading: isActionLoading,
155
- xstyle: buttonActionStyle,
156
- ...actionTrackingProps
153
+ xstyle: buttonActionStyle
157
154
  }, "action");
158
155
  return /*#__PURE__*/_jsx(Dialog, {
159
156
  ...rest,
@@ -200,7 +197,7 @@ export function AlertDialog({
200
197
  hAlign: isSmallScreen ? 'stretch' : 'end',
201
198
  wrap: isSmallScreen ? 'nowrap' : 'wrap',
202
199
  children: /*#__PURE__*/_jsx(PressGroupContext, {
203
- value: isTracking,
200
+ value: isTracking ? GROUP_PRESS_POINTERS : null,
204
201
  children: isSmallScreen ? [actionButton, cancelButton] : [cancelButton, actionButton]
205
202
  })
206
203
  })
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/BottomSheet.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAuBH,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAyDhD,YAAY,EAAC,iBAAiB,EAAE,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AAChF,OAAO,KAAK,EAAC,iBAAiB,EAAE,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AAmLhF,UAAU,sBAAuB,SAAQ,SAAS,CAAC,cAAc,CAAC;IAChE,qDAAqD;IACrD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEhC,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IAEd,0EAA0E;IAC1E,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB,wGAAwG;IACxG,MAAM,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;IAE7C;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAEjD;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,UAAU,0BAA2B,SAAQ,sBAAsB;IACjE,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB;AAED,UAAU,wBAAyB,SAAQ,sBAAsB;IAC/D;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB;AAED,MAAM,MAAM,gBAAgB,GAC1B,0BAA0B,GAAG,wBAAwB,CAAC;AAy5BxD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,+BA6BlD;yBA7Be,WAAW"}
1
+ {"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/BottomSheet.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAuBH,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AA4DhD,YAAY,EAAC,iBAAiB,EAAE,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AAChF,OAAO,KAAK,EAAC,iBAAiB,EAAE,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AAmLhF,UAAU,sBAAuB,SAAQ,SAAS,CAAC,cAAc,CAAC;IAChE,qDAAqD;IACrD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEhC,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IAEd,0EAA0E;IAC1E,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB,wGAAwG;IACxG,MAAM,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;IAE7C;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAEjD;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,UAAU,0BAA2B,SAAQ,sBAAsB;IACjE,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB;AAED,UAAU,wBAAyB,SAAQ,sBAAsB;IAC/D;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB;AAED,MAAM,MAAM,gBAAgB,GAC1B,0BAA0B,GAAG,wBAAwB,CAAC;AA27BxD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,+BA6BlD;yBA7Be,WAAW"}
@@ -65,7 +65,7 @@ import { ModalAnnounceProvider } from "../hooks/ModalAnnounceProvider.js";
65
65
  import { useModalOutlet } from "../Layer/modalOutlet.js";
66
66
  import { useLayerDismissal } from "../Layer/useLayerDismissal.js";
67
67
  import { useFocusRegionContainment } from "../hooks/useFocusTrap.js";
68
- import { focusForLastInput } from "../utils/focusReturn.js";
68
+ import { prepareFocusRepairOnRemoval, returnFocusForLastInput } from "../utils/focusReturn.js";
69
69
  import { useInteractionModalityTracking } from "../utils/interactionModality.js";
70
70
  import { BottomSheetPanel } from "./BottomSheetPanel.js";
71
71
  import { BottomSheetEdgeTint } from "./BottomSheetEdgeTint.js";
@@ -387,7 +387,14 @@ function StandaloneBottomSheet({
387
387
  return;
388
388
  }
389
389
  const key = stackKeyRef.current;
390
- return registerBottomSheet({
390
+ const dialog = dialogRef.current;
391
+ // Removing an open dialog runs no close, so focus would drop to the page.
392
+ // After the commit, the repair sends focus where a close would, if the
393
+ // removal lost focus.
394
+ const repairOnRemoval = dialog == null ? null : prepareFocusRepairOnRemoval(dialog, {
395
+ keepRestingFocus: true
396
+ });
397
+ const leave = registerBottomSheet({
391
398
  key,
392
399
  getElement: () => dialogRef.current,
393
400
  show: () => {
@@ -437,6 +444,28 @@ function StandaloneBottomSheet({
437
444
  }
438
445
  }
439
446
  }, isOpenRef.current, hasScrim);
447
+ return () => {
448
+ // Read before the registry lets go of the sheet beneath. Focus the
449
+ // person had already moved out of the sheet to the page body stays
450
+ // there: the removal did not lose it.
451
+ if (repairOnRemoval != null && isSheetHostPresented(dialog)) {
452
+ const returnTarget = finalFocusRefRef.current?.current ?? triggerRef.current;
453
+ const revealed = hasScrim ? getBottomSheetBeneath(key) : null;
454
+ repairOnRemoval(() => {
455
+ // The sheet beneath left too. Its own repair returns focus for the
456
+ // stack.
457
+ if (revealed != null && !revealed.element.isConnected) {
458
+ return;
459
+ }
460
+ if (revealed != null && (returnTarget == null || !revealed.element.contains(returnTarget))) {
461
+ revealed.focus();
462
+ } else if (returnTarget != null && returnTarget.isConnected) {
463
+ returnFocusForLastInput(returnTarget);
464
+ }
465
+ });
466
+ }
467
+ leave();
468
+ };
440
469
  }, [hasScrim, shouldPresent, writeScrim]);
441
470
  useLayoutEffect(() => {
442
471
  if (!isOpen) {
@@ -533,7 +562,7 @@ function StandaloneBottomSheet({
533
562
  if (revealed != null && (returnTarget == null || !revealed.element.contains(returnTarget))) {
534
563
  revealed.focus();
535
564
  } else if (returnTarget != null) {
536
- focusForLastInput(returnTarget);
565
+ returnFocusForLastInput(returnTarget);
537
566
  }
538
567
  triggerRef.current = null;
539
568
  }, [finalFocusRef, hasScrim, isOpen]);
@@ -1 +1 @@
1
- {"version":3,"file":"bottomSheetStack.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/bottomSheetStack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bottomSheetStack.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/bottomSheetStack.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,8 @@
4
4
 
5
5
  /**
6
6
  * @file bottomSheetStack.ts
7
- * @input The DOM (dialog elements, document order) and focusForLastInput
7
+ * @input The DOM (dialog elements, document order) and the focus-return
8
+ * utilities
8
9
  * @output The private bottom-sheet stack registry: host registration,
9
10
  * open-order ranking, top-layer reconciliation, one view per host, the
10
11
  * replace handoff, and the shared native show/hide and focus helpers
@@ -49,7 +50,7 @@
49
50
  // two copies of this module on one page share one stack. A copy on another
50
51
  // version keeps its own stack. Each document is its own stack.
51
52
  import { notifyTopLayerEntry } from "../Layer/modalOutlet.js";
52
- import { focusForLastInput } from "../utils/focusReturn.js";
53
+ import { focusForLastInput, returnFocusForLastInput } from "../utils/focusReturn.js";
53
54
 
54
55
  /** The motions a host's panel reports to the registry during a replace. */
55
56
 
@@ -240,7 +241,7 @@ function completeClosingGroup(group) {
240
241
  group.reported = true;
241
242
  const target = group.returnTarget;
242
243
  if (target != null && target.isConnected) {
243
- focusForLastInput(target);
244
+ returnFocusForLastInput(target);
244
245
  }
245
246
  }
246
247
 
@@ -1 +1 @@
1
- {"version":3,"file":"useSheetGestures.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/useSheetGestures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSheetGestures.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/useSheetGestures.ts"],"names":[],"mappings":"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"}
@@ -94,8 +94,8 @@ function touchPointerType(touch) {
94
94
  return touch.touchType === 'stylus' ? 'pen' : 'touch';
95
95
  }
96
96
 
97
- // A mouse's stretch past fully open: a resisted fraction of the drag, capped
98
- // at OVERSCROLL_MAX.
97
+ // A mouse's or a pen's stretch past fully open: a resisted fraction of the
98
+ // drag, capped at OVERSCROLL_MAX.
99
99
  const OVERSCROLL_RESISTANCE = 0.35;
100
100
  // SYNC: must not exceed MIN_RESERVE in BottomSheetPanel.tsx, the smallest
101
101
  // reserve the sheet keeps below the screen.
@@ -333,18 +333,26 @@ export function useSheetGestures({
333
333
  // onDismiss() and sets `pending`; the host answers in the same update, so
334
334
  // the first render afterwards says whether it took the close (its
335
335
  // controlled state now says closed: the exit under way is the drag's) or
336
- // refused it (a guarded onOpenChange left it open: the sheet snaps back and
337
- // the request is spent). Either way the flag is settled during render, the
338
- // prev-prop pattern, and derived back to false once the sheet is open
339
- // again — so a later close from a control, Escape or code is never
340
- // mistaken for a drag.
336
+ // refused it (a guarded onOpenChange left it open: the sheet snaps back,
337
+ // its scrim with it, and the request is spent). Either way the flag is
338
+ // settled during render, the prev-prop pattern, and derived back to false
339
+ // once the sheet is open again — so a later close from a control, Escape
340
+ // or code is never mistaken for a drag.
341
341
  const [touchDragDismissal, setTouchDragDismissal] = useState(null);
342
+ // The render that spends a refused request counts it. The layout effect
343
+ // below answers each count.
344
+ const [refusedDismissalCount, setRefusedDismissalCount] = useState(0);
342
345
  if (touchDragDismissal != null) {
343
346
  if (touchDragDismissal.pending) {
344
- setTouchDragDismissal(isOpenRequested ? null : {
345
- isTouch: touchDragDismissal.isTouch,
346
- pending: false
347
- });
347
+ if (isOpenRequested) {
348
+ setTouchDragDismissal(null);
349
+ setRefusedDismissalCount(count => count + 1);
350
+ } else {
351
+ setTouchDragDismissal({
352
+ isTouch: touchDragDismissal.isTouch,
353
+ pending: false
354
+ });
355
+ }
348
356
  } else if (isOpenRequested) {
349
357
  setTouchDragDismissal(null);
350
358
  }
@@ -452,6 +460,24 @@ export function useSheetGestures({
452
460
  hasFixedHeightRef.current = hasFixedHeight;
453
461
  });
454
462
 
463
+ // The release cannot know whether the host takes the close. The host
464
+ // answers through `isOpenRequested` in the next render. Keep the left
465
+ // detent's scrim until then.
466
+ const restingScrimOpacityRef = useRef(null);
467
+ // Syncs the host's scrim (its backdrop, written through `onScrimOpacity`)
468
+ // with the panel's return to rest after a refusal: the panel rests on that
469
+ // detent again, so the scrim the drag thinned toward the dismiss line rests
470
+ // with it. The refusal changes none of the host's own scrim inputs, so the
471
+ // drag's last value would otherwise stand.
472
+ useLayoutEffect(() => {
473
+ const restingScrimOpacity = restingScrimOpacityRef.current;
474
+ if (refusedDismissalCount === 0 || restingScrimOpacity == null) {
475
+ return;
476
+ }
477
+ restingScrimOpacityRef.current = null;
478
+ onScrimOpacityRef.current?.(restingScrimOpacity);
479
+ }, [refusedDismissalCount]);
480
+
455
481
  // Live drag bookkeeping (refs so pointermove doesn't churn renders).
456
482
  const dragStateRef = useRef(null);
457
483
 
@@ -770,6 +796,7 @@ export function useSheetGestures({
770
796
  if (dir > 0 && projected > dismissOffset) {
771
797
  if (canDismissRef.current) {
772
798
  prepareScrollAreaSettle(baseLayoutOffset, baseOffset, baseLayoutOffset, baseLayoutOffset, baseLayoutOffset, naturalEndGap, false);
799
+ restingScrimOpacityRef.current = scrimOpacityForOffset(baseOffset, offsets, dismissOffset, peekOffset);
773
800
  setTouchDragDismissal({
774
801
  isTouch,
775
802
  pending: true
@@ -1 +1 @@
1
- {"version":3,"file":"BreadcrumbItem.d.ts","sourceRoot":"","sources":["../../src/Breadcrumbs/BreadcrumbItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,OAAO,CAAC;AAWf,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAErD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAa5C,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,qCAAqC,CAAC;AAM7C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;AAarE,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAC/C,SAAS,CAAC,aAAa,CAAC,EACxB,SAAS,CACV;IACC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/B;;;;OAIG;IACH,EAAE,CAAC,EAAE,iBAAiB,CAAC;IACvB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC/C;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAsID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAC7B,GAAG,EACH,EAAE,EACF,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,SAAS,EAAE,aAAa,EACxB,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,IAAI,EACR,EAAE,mBAAmB,qBAuMrB;yBAtNe,cAAc"}
1
+ {"version":3,"file":"BreadcrumbItem.d.ts","sourceRoot":"","sources":["../../src/Breadcrumbs/BreadcrumbItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,OAAO,CAAC;AAWf,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAErD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAc5C,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,qCAAqC,CAAC;AAM7C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;AAarE,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAC/C,SAAS,CAAC,aAAa,CAAC,EACxB,SAAS,CACV;IACC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/B;;;;OAIG;IACH,EAAE,CAAC,EAAE,iBAAiB,CAAC;IACvB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC/C;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AA2ID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAC7B,GAAG,EACH,EAAE,EACF,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,SAAS,EAAE,aAAa,EACxB,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,IAAI,EACR,EAAE,mBAAmB,qBAuMrB;yBAtNe,cAAc"}
@@ -41,6 +41,8 @@ import { menuTouchActionStyles } from "../DropdownMenu/menuTouchAction.stylex.js
41
41
  import { useMenuOverflow } from "../DropdownMenu/useMenuOverflow.js";
42
42
  import { useTypeahead } from "../hooks/useTypeahead.js";
43
43
  import { layerAnimations } from "../Layer/layerAnimations.stylex.js";
44
+ import "../Layer/layerViewportInset.stylex.js";
45
+ import { layerViewportInset } from "../Layer/layerViewportInset.stylex.js";
44
46
  import { renderDropdownItems } from "../DropdownMenu/renderDropdownItems.js";
45
47
  import { DropdownMenuContext, DropdownMenuRootOpenContext } from "../DropdownMenu/DropdownMenuContext.js";
46
48
  import { MENU_ITEM_ROLES, MENU_ITEM_SELECTOR, MENU_BOUNDARY_SELECTOR } from "../DropdownMenu/menuItemRoles.js";
@@ -131,7 +133,7 @@ const menuStyles = {
131
133
  k1xSpc: "x78zum5",
132
134
  kXwgrk: "xdt5ytf",
133
135
  kOIVth: "x1lsbc85",
134
- kskxy: "xuyqlj2",
136
+ kskxy: "x1uh1i8a",
135
137
  kORKVm: "x1odjw0f",
136
138
  "--_dropdown-menu-radius": "x1fcsqxe",
137
139
  "--_dropdown-menu-padding": "xgory14",
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/Button/Button.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/Button/Button.tsx"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ import { iconBoxSizeStyles } from "../Icon/IconSize.stylex.js";
30
30
  import { EDGE_COMP_ATTR } from "../Layout/edgeCompensation.stylex.js";
31
31
  import { useSize } from "../SizeContext/SizeContext.js";
32
32
  import { useButtonGroup } from "../ButtonGroup/ButtonGroupContext.js";
33
- import { PressGroupContext } from "../hooks/pressGroupContext.js";
33
+ import { PressGroupContext, pressGroupItemProps } from "../hooks/pressGroupContext.js";
34
34
  import { useInputGroup } from "../InputGroup/InputGroupContext.js";
35
35
  import { InputGroupInternalContext } from "../InputGroup/InputGroupInternalContext.js";
36
36
  import { groupStyles as inputGroupStyles, inputGroupItemProps } from "../InputGroup/groupStyles.js";
@@ -53,6 +53,9 @@ registerEnglishFallback(english);
53
53
  */
54
54
  const PRESSED_ON = '[data-astryx-press="on"]';
55
55
 
56
+ /** `aria-haspopup` values of a trigger that keeps its own press and opening. */
57
+ const MENU_POPUPS = new Set(['true', 'menu', 'listbox']);
58
+
56
59
  /**
57
60
  * Base button styles
58
61
  * Pseudo-classes are nested within properties per StyleX recommendation:
@@ -396,7 +399,11 @@ export function Button({
396
399
  const t = useComponentTranslator();
397
400
  const size = useSize(sizeProp, 'md');
398
401
  const buttonGroup = useButtonGroup();
399
- const isGroupTracked = use(PressGroupContext);
402
+ // A tracking group's tracker paints this button's pointer press. A menu
403
+ // trigger is not tracked: it keeps its own press and opening.
404
+ const groupPointers = use(PressGroupContext);
405
+ const groupItemProps = groupPointers != null && !MENU_POPUPS.has(String(props['aria-haspopup'])) ? pressGroupItemProps(groupPointers) : undefined;
406
+ const isGroupTracked = groupItemProps != null;
400
407
  const inputGroup = useInputGroup();
401
408
  const [isPending, startTransition] = useTransition();
402
409
  // clickAction is normally fire-once (submit/save/pay), so a same-tick
@@ -611,6 +618,7 @@ export function Button({
611
618
  ...(inputGroup != null && buttonGroup == null ? inputGroupItemProps : undefined),
612
619
  ...sharedMergedProps,
613
620
  ...pressFeedback,
621
+ ...groupItemProps,
614
622
  ...props,
615
623
  ...ariaLabelProp,
616
624
  ...describedByProp,
@@ -633,6 +641,7 @@ export function Button({
633
641
  ...(inputGroup != null && buttonGroup == null ? inputGroupItemProps : undefined),
634
642
  ...sharedMergedProps,
635
643
  ...pressFeedback,
644
+ ...groupItemProps,
636
645
  ...props,
637
646
  ...ariaLabelProp,
638
647
  ...describedByProp,
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @file ButtonGroup.tsx
3
- * @input Uses React, StyleX, Button/IconButton children
3
+ * @input Uses React, StyleX, Button/IconButton children, and the shared group
4
+ * press tracking (hooks/useGroupPressTracking)
4
5
  * @output Exports ButtonGroup component, context, and types
5
6
  * @position Groups buttons with connected styling; consumed by index.ts
6
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonGroup.d.ts","sourceRoot":"","sources":["../../src/ButtonGroup/ButtonGroup.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAU,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAE9C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAI9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,sBAAsB,CAAC;AAQjE,MAAM,WAAW,gBAAiB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACjE,yCAAyC;IACzC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEhC;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,WAAW,CAAC,EAAE,sBAAsB,CAAC;IAErC;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAwCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,KAAK,EACL,WAA0B,EAC1B,IAAI,EAAE,QAAQ,EACd,UAAkB,EAClB,SAAkB,EAClB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,aAAa,EAAE,MAAM,EACrB,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACT,EAAE,gBAAgB,GAAG,SAAS,CAoD9B;yBAnEe,WAAW"}
1
+ {"version":3,"file":"ButtonGroup.d.ts","sourceRoot":"","sources":["../../src/ButtonGroup/ButtonGroup.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAkB,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAEtD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAW9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,sBAAsB,CAAC;AAQjE,MAAM,WAAW,gBAAiB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACjE,yCAAyC;IACzC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEhC;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,WAAW,CAAC,EAAE,sBAAsB,CAAC;IAErC;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA6CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,KAAK,EACL,WAA0B,EAC1B,IAAI,EAAE,QAAQ,EACd,UAAkB,EAClB,SAAkB,EAClB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,aAAa,EAAE,MAAM,EACrB,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACT,EAAE,gBAAgB,GAAG,SAAS,CA+D9B;yBA9Ee,WAAW"}
@@ -4,7 +4,8 @@
4
4
 
5
5
  /**
6
6
  * @file ButtonGroup.tsx
7
- * @input Uses React, StyleX, Button/IconButton children
7
+ * @input Uses React, StyleX, Button/IconButton children, and the shared group
8
+ * press tracking (hooks/useGroupPressTracking)
8
9
  * @output Exports ButtonGroup component, context, and types
9
10
  * @position Groups buttons with connected styling; consumed by index.ts
10
11
  *
@@ -20,12 +21,16 @@
20
21
  * - /apps/storybook/stories/ButtonGroup.stories.tsx (storybook stories)
21
22
  * - /packages/cli/assets/templates/blocks/components/ButtonGroup/ (showcase blocks)
22
23
  */
23
- import { useMemo } from 'react';
24
+ import { useMemo, useRef } from 'react';
24
25
  import * as stylex from '@stylexjs/stylex';
25
26
  import "../theme/tokens.stylex.js";
26
27
  import { radiusVars, shadowVars } from "../theme/tokens.stylex.js";
27
28
  import { SizeProvider, useSize } from "../SizeContext/SizeContext.js";
28
29
  import { useListFocus } from "../hooks/useListFocus.js";
30
+ import { PressGroupContext } from "../hooks/pressGroupContext.js";
31
+ import { GROUP_PRESS_POINTERS, useGroupPressTracking } from "../hooks/useGroupPressTracking.js";
32
+ import { useTouchPresentation } from "../utils/touchPresentation.js";
33
+ import { touchHitAreaStyles } from "../utils/touchHitArea.stylex.js";
29
34
  import { mergeProps, composeEventHandlers } from "../utils/index.js";
30
35
  import { ButtonGroupContext } from "./ButtonGroupContext.js";
31
36
  import { themeProps } from "../utils/themeProps.js";
@@ -47,6 +52,10 @@ const styles = {
47
52
  vertical: {
48
53
  kXwgrk: "xdt5ytf",
49
54
  $$css: true
55
+ },
56
+ tracking: {
57
+ kVAEAm: "x1n2onr6",
58
+ $$css: true
50
59
  }
51
60
  };
52
61
 
@@ -154,25 +163,39 @@ export function ButtonGroup({
154
163
  orientation,
155
164
  isDisabled
156
165
  }), [orientation, isDisabled]);
166
+
167
+ // Only under the touch presentation does a press slide across the buttons.
168
+ // A desktop press stays the native button's.
169
+ const {
170
+ isTouch
171
+ } = useTouchPresentation();
172
+ const tracksPress = !isDisabled && isTouch;
173
+ const groupRef = useRef(null);
174
+ const {
175
+ hitAreaRef
176
+ } = useGroupPressTracking(groupRef, tracksPress);
157
177
  return /*#__PURE__*/_jsx(ButtonGroupContext, {
158
178
  value: contextValue,
159
179
  children: /*#__PURE__*/_jsx(SizeProvider, {
160
180
  value: size,
161
181
  children: /*#__PURE__*/_jsx("div", {
162
- ref: useMergedRefs(ref, listRef),
182
+ ref: useMergedRefs(ref, listRef, groupRef, hitAreaRef),
163
183
  ...props,
164
184
  ...mergeProps(themeProps('button-group', {
165
185
  size,
166
186
  orientation,
167
187
  elevation
168
- }), stylex.props(styles.group, orientation === 'vertical' && styles.vertical, elevationStyles[elevation], xstyle), className, style),
188
+ }), stylex.props(styles.group, tracksPress && styles.tracking, tracksPress && touchHitAreaStyles.layerBelowChildren, orientation === 'vertical' && styles.vertical, elevationStyles[elevation], xstyle), className, style),
169
189
  role: "group",
170
190
  "aria-label": label,
171
191
  onKeyDown: composeEventHandlers(onKeyDown, handleKeyDown),
172
192
  onFocus: composeEventHandlers(onFocus, handleFocus),
173
193
  "aria-disabled": isDisabled || undefined,
174
194
  "data-testid": testId,
175
- children: children
195
+ children: /*#__PURE__*/_jsx(PressGroupContext, {
196
+ value: tracksPress ? GROUP_PRESS_POINTERS : null,
197
+ children: children
198
+ })
176
199
  })
177
200
  })
178
201
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ChatMessageList.d.ts","sourceRoot":"","sources":["../../src/Chat/ChatMessageList.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAC,KAAK,SAAS,EAA4C,MAAM,OAAO,CAAC;AAGhF,OAAO,EAEL,KAAK,WAAW,EAEjB,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAWhD,MAAM,WAAW,oBAAqB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACrE,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEhC;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IAEvB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,WAAW,CAAC;IAElB;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAEzB;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA4FD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,OAAoB,EACpB,GAAG,EACH,KAAgB,EAChB,WAAmB,EACnB,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,EACH,GAAG,IAAI,EACR,EAAE,oBAAoB,+BAsGtB;yBApHe,eAAe"}
1
+ {"version":3,"file":"ChatMessageList.d.ts","sourceRoot":"","sources":["../../src/Chat/ChatMessageList.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAC,KAAK,SAAS,EAA4C,MAAM,OAAO,CAAC;AAIhF,OAAO,EAEL,KAAK,WAAW,EAEjB,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAWhD,MAAM,WAAW,oBAAqB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACrE,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEhC;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IAEvB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,WAAW,CAAC;IAElB;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAEzB;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAoGD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,OAAoB,EACpB,GAAG,EACH,KAAgB,EAChB,WAAmB,EACnB,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,EACH,GAAG,IAAI,EACR,EAAE,oBAAoB,+BA6GtB;yBA3He,eAAe"}
@@ -26,7 +26,8 @@
26
26
  import { useEffect, useMemo, useRef, useTransition } from 'react';
27
27
  import * as stylex from '@stylexjs/stylex';
28
28
  import "../theme/tokens.stylex.js";
29
- import { spacingVars } from "../theme/tokens.stylex.js";
29
+ import { focusVars, spacingVars } from "../theme/tokens.stylex.js";
30
+ import { focusOutlineStyles } from "../utils/focusOutline.stylex.js";
30
31
  import { ChatListContext, useChatLayoutContext } from "./ChatContext.js";
31
32
  import { isRenderable, mergeProps } from "../utils/index.js";
32
33
  import { Spinner } from "../Spinner/index.js";
@@ -48,6 +49,10 @@ const styles = {
48
49
  kAzted: "x2lwn1j",
49
50
  $$css: true
50
51
  },
52
+ focusRingInset: {
53
+ kInvED: "x1nw7mhf",
54
+ $$css: true
55
+ },
51
56
  inner: {
52
57
  k1xSpc: "x78zum5",
53
58
  kXwgrk: "xdt5ytf",
@@ -218,7 +223,10 @@ export function ChatMessageList({
218
223
  "data-testid": testId,
219
224
  ...mergeProps(themeProps('chat-message-list', {
220
225
  density
221
- }), stylex.props(styles.root, xstyle), className, style),
226
+ }),
227
+ // A tab stop: the shared ring, which a theme restyles through the
228
+ // focus-outline tokens.
229
+ stylex.props(styles.root, focusOutlineStyles.focusVisible, styles.focusRingInset, xstyle), className, style),
222
230
  children: /*#__PURE__*/_jsxs("div", {
223
231
  ref: innerRef,
224
232
  ...stylex.props(styles.inner, densityGapStyle, gapOverrideStyle),
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @file CheckboxInput.tsx
3
- * @input Uses React, useId, ChangeEvent, FieldLabel, FieldStatus, IconType, InputStatus, useTooltip
3
+ * @input Uses React, useId, ChangeEvent, FieldLabel, FieldStatus, IconType, InputStatus, useTooltip,
4
+ * CheckboxRowPressContext (a row around the checkbox that owns its press)
4
5
  * @output Exports CheckboxInput component, CheckboxInputProps
5
6
  * @position Core implementation; consumed by index.ts, tested by CheckboxInput.test.tsx
6
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxInput.d.ts","sourceRoot":"","sources":["../../src/CheckboxInput/CheckboxInput.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CheckboxInput.d.ts","sourceRoot":"","sources":["../../src/CheckboxInput/CheckboxInput.tsx"],"names":[],"mappings":"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"}