@astryxdesign/core 0.7.8 → 0.7.9-canary.0200dfe

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 (585) hide show
  1. package/dist/AppShell/observeMainOverflow.d.ts.map +1 -1
  2. package/dist/AppShell/observeMainOverflow.js +9 -6
  3. package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
  4. package/dist/BottomSheet/BottomSheet.js +37 -3
  5. package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
  6. package/dist/BottomSheet/BottomSheetPanel.js +40 -8
  7. package/dist/BottomSheet/bottomSheetStack.d.ts.map +1 -1
  8. package/dist/BottomSheet/bottomSheetStack.js +4 -3
  9. package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
  10. package/dist/BottomSheet/useSheetGestures.js +61 -21
  11. package/dist/Calendar/Calendar.d.ts +14 -2
  12. package/dist/Calendar/Calendar.d.ts.map +1 -1
  13. package/dist/Calendar/Calendar.js +63 -74
  14. package/dist/Calendar/getInitialFocusDate.d.ts +4 -1
  15. package/dist/Calendar/getInitialFocusDate.d.ts.map +1 -1
  16. package/dist/Calendar/getInitialFocusDate.js +7 -5
  17. package/dist/Calendar/hooks/useCalendarDays.d.ts +19 -2
  18. package/dist/Calendar/hooks/useCalendarDays.d.ts.map +1 -1
  19. package/dist/Calendar/hooks/useCalendarDays.js +57 -64
  20. package/dist/Calendar/hooks/useCalendarNavigation.d.ts +28 -3
  21. package/dist/Calendar/hooks/useCalendarNavigation.d.ts.map +1 -1
  22. package/dist/Calendar/hooks/useCalendarNavigation.js +33 -22
  23. package/dist/Calendar/styles.d.ts +1 -1
  24. package/dist/CheckboxInput/CheckboxInput.d.ts +2 -1
  25. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  26. package/dist/CheckboxInput/CheckboxInput.js +74 -18
  27. package/dist/CheckboxInput/CheckboxRowPressContext.d.ts +2 -0
  28. package/dist/CheckboxInput/CheckboxRowPressContext.d.ts.map +1 -0
  29. package/dist/CheckboxInput/CheckboxRowPressContext.js +20 -0
  30. package/dist/CheckboxList/CheckboxListItem.d.ts +2 -1
  31. package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
  32. package/dist/CheckboxList/CheckboxListItem.js +40 -14
  33. package/dist/ClickableCard/ClickableCard.d.ts +1 -1
  34. package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
  35. package/dist/ClickableCard/ClickableCard.js +5 -1
  36. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  37. package/dist/ContextMenu/ContextMenu.js +2 -0
  38. package/dist/DateInput/DateInput.d.ts +37 -6
  39. package/dist/DateInput/DateInput.d.ts.map +1 -1
  40. package/dist/DateInput/DateInput.js +97 -124
  41. package/dist/DateInput/MonthScroller.d.ts +5 -2
  42. package/dist/DateInput/MonthScroller.d.ts.map +1 -1
  43. package/dist/DateInput/MonthScroller.js +26 -29
  44. package/dist/DateInput/MonthYearWheels.d.ts +10 -1
  45. package/dist/DateInput/MonthYearWheels.d.ts.map +1 -1
  46. package/dist/DateInput/MonthYearWheels.js +54 -42
  47. package/dist/DateInput/PickerWheel.d.ts.map +1 -1
  48. package/dist/DateInput/PickerWheel.js +7 -1
  49. package/dist/DateInput/TouchDateField.d.ts +1 -1
  50. package/dist/DateInput/TouchDateField.d.ts.map +1 -1
  51. package/dist/DateInput/TouchDateField.js +26 -21
  52. package/dist/DateInput/monthGeometry.d.ts +42 -8
  53. package/dist/DateInput/monthGeometry.d.ts.map +1 -1
  54. package/dist/DateInput/monthGeometry.js +81 -7
  55. package/dist/DateInput/useCalendarPresentation.d.ts +10 -0
  56. package/dist/DateInput/useCalendarPresentation.d.ts.map +1 -0
  57. package/dist/DateInput/useCalendarPresentation.js +32 -0
  58. package/dist/DateInput/useTypedDate.d.ts +92 -0
  59. package/dist/DateInput/useTypedDate.d.ts.map +1 -0
  60. package/dist/DateInput/useTypedDate.js +269 -0
  61. package/dist/DateInput/wheelStrip.js +2 -2
  62. package/dist/DateRangeInput/DateRangeInput.d.ts +17 -1
  63. package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  64. package/dist/DateRangeInput/DateRangeInput.js +15 -8
  65. package/dist/DateTimeInput/DateTimeInput.d.ts +26 -3
  66. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  67. package/dist/DateTimeInput/DateTimeInput.js +92 -88
  68. package/dist/DateTimeInput/TouchDateTimeField.d.ts +1 -1
  69. package/dist/DateTimeInput/TouchDateTimeField.d.ts.map +1 -1
  70. package/dist/DateTimeInput/TouchDateTimeField.js +26 -20
  71. package/dist/Dialog/Dialog.d.ts +2 -1
  72. package/dist/Dialog/Dialog.d.ts.map +1 -1
  73. package/dist/Dialog/Dialog.js +14 -3
  74. package/dist/Drawer/useDrawerDialogPresence.d.ts +2 -1
  75. package/dist/Drawer/useDrawerDialogPresence.d.ts.map +1 -1
  76. package/dist/Drawer/useDrawerDialogPresence.js +11 -2
  77. package/dist/DropdownMenu/DropdownMenu.d.ts +9 -1
  78. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  79. package/dist/DropdownMenu/DropdownMenu.js +11 -8
  80. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
  81. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +3 -2
  82. package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  83. package/dist/DropdownMenu/DropdownMenuItem.js +3 -2
  84. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
  85. package/dist/DropdownMenu/DropdownMenuRadioItem.js +3 -2
  86. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  87. package/dist/DropdownMenu/DropdownMenuSubMenu.js +3 -2
  88. package/dist/Field/inputDisabledFocus.d.ts +4 -4
  89. package/dist/Field/inputStyles.stylex.d.ts +1 -1
  90. package/dist/FileInput/FileInput.d.ts.map +1 -1
  91. package/dist/FileInput/FileInput.js +16 -2
  92. package/dist/HoverCard/useHoverCard.d.ts +3 -1
  93. package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
  94. package/dist/Icon/Icon.d.ts +1 -1
  95. package/dist/InfoTip/InfoTip.d.ts +1 -0
  96. package/dist/InfoTip/InfoTip.d.ts.map +1 -1
  97. package/dist/InfoTip/InfoTip.js +6 -18
  98. package/dist/InputGroup/InputGroup.d.ts +4 -3
  99. package/dist/InputGroup/InputGroup.d.ts.map +1 -1
  100. package/dist/InputGroup/InputGroup.js +2 -2
  101. package/dist/InputGroup/InputGroupText.d.ts +2 -1
  102. package/dist/InputGroup/InputGroupText.d.ts.map +1 -1
  103. package/dist/InputGroup/InputGroupText.js +2 -1
  104. package/dist/InputGroup/groupStyles.d.ts +1 -1
  105. package/dist/InputGroup/groupStyles.d.ts.map +1 -1
  106. package/dist/InputGroup/groupStyles.js +1 -1
  107. package/dist/Item/Item.d.ts +20 -1
  108. package/dist/Item/Item.d.ts.map +1 -1
  109. package/dist/Item/Item.js +97 -29
  110. package/dist/Item/ItemListRowContext.d.ts +2 -0
  111. package/dist/Item/ItemListRowContext.d.ts.map +1 -0
  112. package/dist/Item/ItemListRowContext.js +16 -0
  113. package/dist/Layer/holdEntranceInput.d.ts +24 -0
  114. package/dist/Layer/holdEntranceInput.d.ts.map +1 -0
  115. package/dist/Layer/holdEntranceInput.js +65 -0
  116. package/dist/Layer/inputHold.d.ts +49 -0
  117. package/dist/Layer/inputHold.d.ts.map +1 -0
  118. package/dist/Layer/inputHold.js +636 -0
  119. package/dist/Layer/outsidePress.d.ts +4 -0
  120. package/dist/Layer/outsidePress.d.ts.map +1 -1
  121. package/dist/Layer/outsidePress.js +18 -1
  122. package/dist/Layer/preserveAnimations.d.ts +1 -5
  123. package/dist/Layer/preserveAnimations.d.ts.map +1 -1
  124. package/dist/Layer/preserveAnimations.js +12 -214
  125. package/dist/Layer/useBackdropPress.d.ts +8 -0
  126. package/dist/Layer/useBackdropPress.d.ts.map +1 -1
  127. package/dist/Layer/useBackdropPress.js +31 -2
  128. package/dist/Layer/useLayer.d.ts +3 -1
  129. package/dist/Layer/useLayer.d.ts.map +1 -1
  130. package/dist/Layer/useLayer.js +64 -4
  131. package/dist/Layer/useTouchTrigger.d.ts.map +1 -1
  132. package/dist/Layer/useTouchTrigger.js +4 -0
  133. package/dist/Layout/LayoutContent.d.ts +3 -1
  134. package/dist/Layout/LayoutContent.d.ts.map +1 -1
  135. package/dist/Layout/LayoutContent.js +12 -4
  136. package/dist/Layout/LayoutPanel.d.ts +13 -10
  137. package/dist/Layout/LayoutPanel.d.ts.map +1 -1
  138. package/dist/Layout/LayoutPanel.js +81 -11
  139. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  140. package/dist/Lightbox/Lightbox.js +4 -0
  141. package/dist/List/List.d.ts.map +1 -1
  142. package/dist/List/List.js +1 -0
  143. package/dist/List/ListItem.d.ts +5 -4
  144. package/dist/List/ListItem.d.ts.map +1 -1
  145. package/dist/List/ListItem.js +45 -9
  146. package/dist/Markdown/parser.d.ts.map +1 -1
  147. package/dist/Markdown/parser.js +56 -39
  148. package/dist/MetadataList/MetadataList.js +1 -1
  149. package/dist/MobileNav/MobileNav.d.ts +11 -1
  150. package/dist/MobileNav/MobileNav.d.ts.map +1 -1
  151. package/dist/MobileNav/MobileNav.js +39 -1
  152. package/dist/MoreMenu/MoreMenu.d.ts +5 -3
  153. package/dist/MoreMenu/MoreMenu.d.ts.map +1 -1
  154. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  155. package/dist/MultiSelector/MultiSelector.js +6 -9
  156. package/dist/NumberInput/NumberInput.d.ts +4 -2
  157. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  158. package/dist/NumberInput/NumberInput.js +244 -11
  159. package/dist/OverflowList/OverflowList.d.ts.map +1 -1
  160. package/dist/OverflowList/OverflowList.js +7 -2
  161. package/dist/Popover/usePopover.d.ts +1 -0
  162. package/dist/Popover/usePopover.d.ts.map +1 -1
  163. package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
  164. package/dist/PowerSearch/PowerSearch.js +12 -5
  165. package/dist/PowerSearch/PowerSearchBottomSheet.d.ts.map +1 -1
  166. package/dist/PowerSearch/PowerSearchBottomSheet.js +4 -2
  167. package/dist/PowerSearch/PowerSearchToken.d.ts.map +1 -1
  168. package/dist/PowerSearch/PowerSearchToken.js +3 -1
  169. package/dist/PowerSearch/formatFilterValue.d.ts +9 -3
  170. package/dist/PowerSearch/formatFilterValue.d.ts.map +1 -1
  171. package/dist/PowerSearch/formatFilterValue.js +14 -11
  172. package/dist/PowerSearch/formatTokenValue.d.ts +6 -2
  173. package/dist/PowerSearch/formatTokenValue.d.ts.map +1 -1
  174. package/dist/PowerSearch/formatTokenValue.js +6 -3
  175. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  176. package/dist/RadioList/RadioListItem.js +16 -3
  177. package/dist/Resizable/ResizeHandle.d.ts +5 -5
  178. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  179. package/dist/Resizable/ResizeHandle.js +44 -5
  180. package/dist/Resizable/resizablePane.d.ts +58 -0
  181. package/dist/Resizable/resizablePane.d.ts.map +1 -0
  182. package/dist/Resizable/resizablePane.js +137 -0
  183. package/dist/Resizable/useResizable.d.ts +7 -0
  184. package/dist/Resizable/useResizable.d.ts.map +1 -1
  185. package/dist/Resizable/useResizable.js +13 -0
  186. package/dist/SegmentedControl/useSegmentedSelectionMotion.js +3 -3
  187. package/dist/SelectableCard/SelectableCard.d.ts +1 -1
  188. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  189. package/dist/SelectableCard/SelectableCard.js +5 -1
  190. package/dist/Selector/Selector.d.ts.map +1 -1
  191. package/dist/Selector/Selector.js +51 -10
  192. package/dist/SideNav/SideNav.d.ts +9 -3
  193. package/dist/SideNav/SideNav.d.ts.map +1 -1
  194. package/dist/SideNav/SideNav.js +45 -10
  195. package/dist/Slider/sliderTouchController.js +2 -2
  196. package/dist/Spinner/Spinner.d.ts.map +1 -1
  197. package/dist/Spinner/Spinner.js +14 -71
  198. package/dist/Spinner/index.d.ts +1 -1
  199. package/dist/Spinner/index.d.ts.map +1 -1
  200. package/dist/Spinner/spinnerRotor.d.ts +28 -0
  201. package/dist/Spinner/spinnerRotor.d.ts.map +1 -0
  202. package/dist/Spinner/spinnerRotor.js +98 -0
  203. package/dist/Stack/StackItem.d.ts +8 -4
  204. package/dist/Stack/StackItem.d.ts.map +1 -1
  205. package/dist/Stack/StackItem.js +17 -4
  206. package/dist/Switch/Switch.d.ts.map +1 -1
  207. package/dist/Switch/Switch.js +13 -10
  208. package/dist/Switch/useSwitchTouch.js +4 -4
  209. package/dist/TabList/Tab.d.ts.map +1 -1
  210. package/dist/TabList/Tab.js +5 -1
  211. package/dist/Table/plugins/sortable/useTableSortable.js +1 -1
  212. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  213. package/dist/Timestamp/Timestamp.js +14 -8
  214. package/dist/Timestamp/formatInstant.d.ts +10 -1
  215. package/dist/Timestamp/formatInstant.d.ts.map +1 -1
  216. package/dist/Timestamp/formatInstant.js +13 -27
  217. package/dist/Timestamp/tooltipEntries.d.ts +5 -3
  218. package/dist/Timestamp/tooltipEntries.d.ts.map +1 -1
  219. package/dist/Timestamp/tooltipEntries.js +6 -4
  220. package/dist/Token/Token.d.ts.map +1 -1
  221. package/dist/Token/Token.js +9 -0
  222. package/dist/Token/TokenLink.d.ts +1 -1
  223. package/dist/Token/TokenLink.d.ts.map +1 -1
  224. package/dist/Token/TokenLink.js +4 -1
  225. package/dist/Tokenizer/Tokenizer.d.ts +14 -10
  226. package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
  227. package/dist/Tokenizer/Tokenizer.js +189 -89
  228. package/dist/Tooltip/useTooltip.d.ts +3 -1
  229. package/dist/Tooltip/useTooltip.d.ts.map +1 -1
  230. package/dist/Tooltip/useTooltip.js +164 -59
  231. package/dist/TreeList/TreeListItem.d.ts +2 -1
  232. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  233. package/dist/TreeList/TreeListItem.js +27 -3
  234. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  235. package/dist/Typeahead/BaseTypeahead.js +2 -1
  236. package/dist/animator/createAnimator.js +2 -2
  237. package/dist/astryx.css +362 -325
  238. package/dist/gestures/GestureHost.d.ts +2 -2
  239. package/dist/gestures/GestureHost.d.ts.map +1 -1
  240. package/dist/gestures/GestureHost.js +21 -6
  241. package/dist/gestures/PanGestureRecognizer.d.ts +11 -1
  242. package/dist/gestures/PanGestureRecognizer.d.ts.map +1 -1
  243. package/dist/gestures/PanGestureRecognizer.js +15 -1
  244. package/dist/gestures/ScreenEdgePanGestureRecognizer.d.ts +6 -1
  245. package/dist/gestures/ScreenEdgePanGestureRecognizer.d.ts.map +1 -1
  246. package/dist/gestures/nativeScroll.d.ts +3 -6
  247. package/dist/gestures/nativeScroll.d.ts.map +1 -1
  248. package/dist/gestures/nativeScroll.js +7 -52
  249. package/dist/gestures/wheelSegmenter.d.ts +68 -1
  250. package/dist/gestures/wheelSegmenter.d.ts.map +1 -1
  251. package/dist/gestures/wheelSegmenter.js +199 -10
  252. package/dist/hooks/StackItemScrollRegion.d.ts +31 -0
  253. package/dist/hooks/StackItemScrollRegion.d.ts.map +1 -0
  254. package/dist/hooks/StackItemScrollRegion.js +40 -0
  255. package/dist/hooks/computeOverflow.d.ts +2 -0
  256. package/dist/hooks/computeOverflow.d.ts.map +1 -1
  257. package/dist/hooks/computeOverflow.js +1 -1
  258. package/dist/hooks/menuPressGesture.d.ts +133 -21
  259. package/dist/hooks/menuPressGesture.d.ts.map +1 -1
  260. package/dist/hooks/menuPressGesture.js +155 -30
  261. package/dist/hooks/menuPressValues.d.ts +16 -0
  262. package/dist/hooks/menuPressValues.d.ts.map +1 -0
  263. package/dist/hooks/menuPressValues.js +18 -0
  264. package/dist/hooks/useClickableContainer.d.ts +36 -7
  265. package/dist/hooks/useClickableContainer.d.ts.map +1 -1
  266. package/dist/hooks/useClickableContainer.js +63 -14
  267. package/dist/hooks/useFocusTrap.d.ts +10 -0
  268. package/dist/hooks/useFocusTrap.d.ts.map +1 -1
  269. package/dist/hooks/useFocusTrap.js +225 -132
  270. package/dist/hooks/useKeyboardHighlight.d.ts +17 -0
  271. package/dist/hooks/useKeyboardHighlight.d.ts.map +1 -0
  272. package/dist/hooks/useKeyboardHighlight.js +38 -0
  273. package/dist/hooks/useMediaQuery.d.ts +2 -1
  274. package/dist/hooks/useMediaQuery.d.ts.map +1 -1
  275. package/dist/hooks/useMediaQuery.js +37 -12
  276. package/dist/hooks/useMenuPress.d.ts +34 -1
  277. package/dist/hooks/useMenuPress.d.ts.map +1 -1
  278. package/dist/hooks/useMenuPress.js +93 -5
  279. package/dist/hooks/useOverflow.d.ts +10 -0
  280. package/dist/hooks/useOverflow.d.ts.map +1 -1
  281. package/dist/hooks/useOverflow.js +214 -23
  282. package/dist/hooks/usePressFeedback.d.ts +6 -6
  283. package/dist/hooks/usePressFeedback.js +6 -6
  284. package/dist/hooks/useScrollRegionProps.d.ts +35 -0
  285. package/dist/hooks/useScrollRegionProps.d.ts.map +1 -0
  286. package/dist/hooks/useScrollRegionProps.js +51 -0
  287. package/dist/i18n/InternationalizationContext.d.ts +6 -0
  288. package/dist/i18n/InternationalizationContext.d.ts.map +1 -1
  289. package/dist/i18n/InternationalizationProvider.d.ts +23 -3
  290. package/dist/i18n/InternationalizationProvider.d.ts.map +1 -1
  291. package/dist/i18n/InternationalizationProvider.js +8 -3
  292. package/dist/i18n/generated-english/DateInput/DateInput.generated.d.ts.map +1 -1
  293. package/dist/i18n/generated-english/DateInput/DateInput.generated.js +0 -1
  294. package/dist/i18n/generated-english/DateInput/useTypedDate.generated.d.ts +8 -0
  295. package/dist/i18n/generated-english/DateInput/useTypedDate.generated.d.ts.map +1 -0
  296. package/dist/i18n/generated-english/DateInput/useTypedDate.generated.js +16 -0
  297. package/dist/i18n/generated-english/DateTimeInput/DateTimeInput.generated.d.ts.map +1 -1
  298. package/dist/i18n/generated-english/DateTimeInput/DateTimeInput.generated.js +0 -1
  299. package/dist/i18n/generated-english/hooks/useScrollRegionProps.generated.d.ts +8 -0
  300. package/dist/i18n/generated-english/hooks/useScrollRegionProps.generated.d.ts.map +1 -0
  301. package/dist/i18n/generated-english/hooks/useScrollRegionProps.generated.js +12 -0
  302. package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
  303. package/dist/i18n/generated-locales/en.generated.js +5 -0
  304. package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
  305. package/dist/i18n/generated-locales/pseudo.generated.js +5 -0
  306. package/dist/i18n/index.d.ts +2 -0
  307. package/dist/i18n/index.d.ts.map +1 -1
  308. package/dist/i18n/index.js +1 -0
  309. package/dist/i18n/useCalendarSystem.d.ts +19 -0
  310. package/dist/i18n/useCalendarSystem.d.ts.map +1 -0
  311. package/dist/i18n/useCalendarSystem.js +61 -0
  312. package/dist/internal/calendar-system.d.ts +18 -0
  313. package/dist/internal/calendar-system.d.ts.map +1 -0
  314. package/dist/internal/calendar-system.js +19 -0
  315. package/dist/internal/spinner-rotor.d.ts +16 -0
  316. package/dist/internal/spinner-rotor.d.ts.map +1 -0
  317. package/dist/internal/spinner-rotor.js +16 -0
  318. package/dist/internal/touch.d.ts +20 -2
  319. package/dist/internal/touch.d.ts.map +1 -1
  320. package/dist/internal/touch.js +29 -3
  321. package/dist/motion/animator.d.ts +5 -5
  322. package/dist/motion/animator.d.ts.map +1 -1
  323. package/dist/motion/animator.js +7 -6
  324. package/dist/motion/carryAnimations.d.ts +58 -0
  325. package/dist/motion/carryAnimations.d.ts.map +1 -0
  326. package/dist/motion/carryAnimations.js +305 -0
  327. package/dist/motion/transientCopy.d.ts +4 -2
  328. package/dist/motion/transientCopy.d.ts.map +1 -1
  329. package/dist/motion/transientCopy.js +34 -5
  330. package/dist/motion/uikit/gestures.d.ts +41 -0
  331. package/dist/motion/uikit/gestures.d.ts.map +1 -1
  332. package/dist/motion/uikit/gestures.js +25 -0
  333. package/dist/motion/uikit/index.d.ts +1 -1
  334. package/dist/motion/uikit/index.d.ts.map +1 -1
  335. package/dist/motion/uikit/index.js +1 -1
  336. package/dist/motion/uikit/timing.d.ts +14 -10
  337. package/dist/motion/uikit/timing.d.ts.map +1 -1
  338. package/dist/motion/uikit/timing.js +7 -5
  339. package/dist/privateAttributes/menuPressLit.stylex.d.ts +52 -0
  340. package/dist/privateAttributes/menuPressLit.stylex.d.ts.map +1 -0
  341. package/dist/privateAttributes/menuPressLit.stylex.js +99 -0
  342. package/dist/privateAttributes/press.stylex.d.ts +142 -0
  343. package/dist/privateAttributes/press.stylex.d.ts.map +1 -0
  344. package/dist/privateAttributes/press.stylex.js +101 -0
  345. package/dist/theme/themeMotion.d.ts +3 -2
  346. package/dist/theme/themeMotion.d.ts.map +1 -1
  347. package/dist/theme/themeMotion.js +3 -2
  348. package/dist/theme/tokens.stylex.d.ts +2 -2
  349. package/dist/theme/tokens.stylex.js +1 -1
  350. package/dist/utils/calendarDateParser.d.ts +110 -0
  351. package/dist/utils/calendarDateParser.d.ts.map +1 -0
  352. package/dist/utils/calendarDateParser.js +1225 -0
  353. package/dist/utils/calendarSystem.d.ts +176 -0
  354. package/dist/utils/calendarSystem.d.ts.map +1 -0
  355. package/dist/utils/calendarSystem.js +569 -0
  356. package/dist/utils/coarsePointer.d.ts +5 -0
  357. package/dist/utils/coarsePointer.d.ts.map +1 -1
  358. package/dist/utils/coarsePointer.js +22 -13
  359. package/dist/utils/flatTree.d.ts +6 -3
  360. package/dist/utils/flatTree.d.ts.map +1 -1
  361. package/dist/utils/flatTree.js +13 -3
  362. package/dist/utils/focusReturn.d.ts +34 -13
  363. package/dist/utils/focusReturn.d.ts.map +1 -1
  364. package/dist/utils/focusReturn.js +64 -17
  365. package/dist/utils/hitArea.d.ts +8 -1
  366. package/dist/utils/hitArea.d.ts.map +1 -1
  367. package/dist/utils/hitArea.js +99 -9
  368. package/dist/utils/inputPresentation.d.ts +9 -1
  369. package/dist/utils/inputPresentation.d.ts.map +1 -1
  370. package/dist/utils/inputPresentation.js +15 -1
  371. package/dist/utils/inputStream.d.ts +14 -1
  372. package/dist/utils/inputStream.d.ts.map +1 -1
  373. package/dist/utils/inputStream.js +40 -9
  374. package/dist/utils/interactionOverlay.stylex.d.ts +5 -9
  375. package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
  376. package/dist/utils/interactionOverlay.stylex.js +29 -31
  377. package/dist/utils/plainDate.d.ts +38 -7
  378. package/dist/utils/plainDate.d.ts.map +1 -1
  379. package/dist/utils/plainDate.js +92 -18
  380. package/dist/utils/pressFeedback.d.ts +10 -2
  381. package/dist/utils/pressFeedback.d.ts.map +1 -1
  382. package/dist/utils/pressFeedback.js +40 -15
  383. package/dist/utils/pressGesture.d.ts +12 -6
  384. package/dist/utils/pressGesture.d.ts.map +1 -1
  385. package/dist/utils/pressGesture.js +26 -8
  386. package/dist/utils/scrollView.d.ts +25 -0
  387. package/dist/utils/scrollView.d.ts.map +1 -0
  388. package/dist/utils/scrollView.js +108 -0
  389. package/dist/utils/selectionLock.d.ts.map +1 -1
  390. package/dist/utils/selectionLock.js +1 -10
  391. package/dist/utils/touchHitArea.d.ts +30 -0
  392. package/dist/utils/touchHitArea.d.ts.map +1 -0
  393. package/dist/utils/touchHitArea.js +167 -0
  394. package/dist/utils/touchHitArea.stylex.d.ts +38 -0
  395. package/dist/utils/touchHitArea.stylex.d.ts.map +1 -0
  396. package/dist/utils/touchHitArea.stylex.js +48 -0
  397. package/dist/utils/triggerFocus.d.ts +5 -0
  398. package/dist/utils/triggerFocus.d.ts.map +1 -1
  399. package/dist/utils/triggerFocus.js +9 -2
  400. package/locales/en.json +21 -1
  401. package/locales/pseudo.json +15 -0
  402. package/package.json +15 -4
  403. package/src/AppShell/observeMainOverflow.ts +9 -6
  404. package/src/BottomSheet/BottomSheet.tsx +45 -3
  405. package/src/BottomSheet/BottomSheetPanel.tsx +64 -7
  406. package/src/BottomSheet/bottomSheetStack.ts +4 -3
  407. package/src/BottomSheet/useSheetGestures.ts +83 -20
  408. package/src/Calendar/Calendar.doc.mjs +76 -6
  409. package/src/Calendar/Calendar.tsx +123 -104
  410. package/src/Calendar/getInitialFocusDate.ts +22 -8
  411. package/src/Calendar/hooks/useCalendarDays.ts +89 -63
  412. package/src/Calendar/hooks/useCalendarNavigation.ts +68 -26
  413. package/src/CheckboxInput/CheckboxInput.doc.mjs +5 -4
  414. package/src/CheckboxInput/CheckboxInput.tsx +105 -20
  415. package/src/CheckboxInput/CheckboxRowPressContext.ts +22 -0
  416. package/src/CheckboxList/CheckboxList.doc.mjs +9 -0
  417. package/src/CheckboxList/CheckboxListItem.doc.mjs +3 -3
  418. package/src/CheckboxList/CheckboxListItem.tsx +35 -14
  419. package/src/ClickableCard/ClickableCard.tsx +8 -1
  420. package/src/ContextMenu/ContextMenu.tsx +2 -0
  421. package/src/DateInput/DateInput.doc.mjs +45 -12
  422. package/src/DateInput/DateInput.tsx +165 -179
  423. package/src/DateInput/MonthScroller.tsx +39 -37
  424. package/src/DateInput/MonthYearWheels.tsx +68 -47
  425. package/src/DateInput/PickerWheel.tsx +7 -2
  426. package/src/DateInput/TouchDateField.tsx +45 -17
  427. package/src/DateInput/monthGeometry.ts +110 -8
  428. package/src/DateInput/useCalendarPresentation.ts +64 -0
  429. package/src/DateInput/useTypedDate.ts +469 -0
  430. package/src/DateInput/wheelStrip.ts +2 -2
  431. package/src/DateRangeInput/DateRangeInput.doc.mjs +9 -0
  432. package/src/DateRangeInput/DateRangeInput.tsx +43 -9
  433. package/src/DateTimeInput/DateTimeInput.doc.mjs +42 -9
  434. package/src/DateTimeInput/DateTimeInput.tsx +138 -148
  435. package/src/DateTimeInput/TouchDateTimeField.tsx +31 -16
  436. package/src/Dialog/Dialog.doc.mjs +1 -1
  437. package/src/Dialog/Dialog.tsx +14 -2
  438. package/src/Drawer/Drawer.doc.mjs +1 -1
  439. package/src/Drawer/useDrawerDialogPresence.ts +9 -2
  440. package/src/DropdownMenu/DropdownMenu.doc.mjs +1 -2
  441. package/src/DropdownMenu/DropdownMenu.tsx +31 -7
  442. package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +5 -1
  443. package/src/DropdownMenu/DropdownMenuItem.tsx +8 -4
  444. package/src/DropdownMenu/DropdownMenuRadioItem.tsx +5 -1
  445. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +5 -1
  446. package/src/FileInput/FileInput.tsx +16 -2
  447. package/src/HoverCard/useHoverCard.tsx +3 -1
  448. package/src/Icon/useIcon.doc.mjs +94 -0
  449. package/src/InfoTip/InfoTip.doc.mjs +26 -2
  450. package/src/InfoTip/InfoTip.tsx +6 -27
  451. package/src/InputGroup/InputGroup.doc.mjs +4 -3
  452. package/src/InputGroup/InputGroup.tsx +4 -3
  453. package/src/InputGroup/InputGroupText.doc.mjs +45 -3
  454. package/src/InputGroup/InputGroupText.tsx +2 -1
  455. package/src/InputGroup/groupStyles.ts +3 -1
  456. package/src/Item/Item.tsx +139 -35
  457. package/src/Item/ItemListRowContext.tsx +18 -0
  458. package/src/Layer/holdEntranceInput.ts +84 -0
  459. package/src/Layer/inputHold.ts +734 -0
  460. package/src/Layer/outsidePress.ts +18 -1
  461. package/src/Layer/preserveAnimations.ts +12 -275
  462. package/src/Layer/useBackdropPress.ts +41 -1
  463. package/src/Layer/useLayer.tsx +77 -4
  464. package/src/Layer/useTouchTrigger.ts +4 -0
  465. package/src/Layout/LayoutContent.doc.mjs +6 -3
  466. package/src/Layout/LayoutContent.tsx +10 -4
  467. package/src/Layout/LayoutPanel.doc.mjs +14 -11
  468. package/src/Layout/LayoutPanel.tsx +113 -16
  469. package/src/Lightbox/Lightbox.tsx +4 -0
  470. package/src/List/List.doc.mjs +10 -1
  471. package/src/List/List.tsx +5 -0
  472. package/src/List/ListItem.tsx +63 -8
  473. package/src/Markdown/parser.ts +65 -42
  474. package/src/MetadataList/MetadataList.tsx +1 -1
  475. package/src/MobileNav/MobileNav.doc.mjs +3 -3
  476. package/src/MobileNav/MobileNav.tsx +39 -1
  477. package/src/MoreMenu/MoreMenu.doc.mjs +2 -4
  478. package/src/MoreMenu/MoreMenu.tsx +5 -3
  479. package/src/MultiSelector/MultiSelector.tsx +7 -17
  480. package/src/NumberInput/NumberInput.doc.mjs +1 -1
  481. package/src/NumberInput/NumberInput.tsx +259 -11
  482. package/src/OverflowList/OverflowList.tsx +15 -9
  483. package/src/Popover/usePopover.tsx +1 -0
  484. package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
  485. package/src/PowerSearch/PowerSearch.tsx +20 -3
  486. package/src/PowerSearch/PowerSearchBottomSheet.tsx +4 -1
  487. package/src/PowerSearch/PowerSearchToken.tsx +3 -0
  488. package/src/PowerSearch/formatFilterValue.ts +21 -11
  489. package/src/PowerSearch/formatTokenValue.ts +7 -1
  490. package/src/RadioList/RadioListItem.doc.mjs +3 -2
  491. package/src/RadioList/RadioListItem.tsx +16 -6
  492. package/src/Resizable/Resizable.doc.mjs +40 -12
  493. package/src/Resizable/ResizeHandle.tsx +68 -6
  494. package/src/Resizable/resizablePane.ts +179 -0
  495. package/src/Resizable/useResizable.ts +15 -0
  496. package/src/SegmentedControl/useSegmentedSelectionMotion.ts +3 -3
  497. package/src/SelectableCard/SelectableCard.tsx +8 -1
  498. package/src/Selector/Selector.tsx +83 -8
  499. package/src/SideNav/SideNav.doc.mjs +2 -2
  500. package/src/SideNav/SideNav.tsx +87 -12
  501. package/src/Slider/sliderTouchController.ts +2 -2
  502. package/src/Spinner/Spinner.tsx +7 -89
  503. package/src/Spinner/index.ts +1 -5
  504. package/src/Spinner/spinnerRotor.ts +113 -0
  505. package/src/Stack/Stack.doc.mjs +1 -1
  506. package/src/Stack/StackItem.tsx +27 -13
  507. package/src/Switch/Switch.tsx +7 -6
  508. package/src/Switch/useSwitchTouch.ts +4 -4
  509. package/src/TabList/Tab.tsx +5 -1
  510. package/src/Table/plugins/sortable/useTableSortable.tsx +1 -1
  511. package/src/Timestamp/Timestamp.doc.mjs +3 -3
  512. package/src/Timestamp/Timestamp.tsx +13 -8
  513. package/src/Timestamp/formatInstant.ts +49 -28
  514. package/src/Timestamp/tooltipEntries.ts +7 -3
  515. package/src/Token/Token.tsx +18 -1
  516. package/src/Token/TokenLink.tsx +7 -1
  517. package/src/Tokenizer/Tokenizer.doc.mjs +3 -3
  518. package/src/Tokenizer/Tokenizer.tsx +252 -115
  519. package/src/Tooltip/useTooltip.tsx +180 -80
  520. package/src/TreeList/TreeListItem.tsx +36 -2
  521. package/src/Typeahead/BaseTypeahead.tsx +2 -0
  522. package/src/animator/createAnimator.ts +3 -3
  523. package/src/gestures/GestureHost.ts +21 -5
  524. package/src/gestures/PanGestureRecognizer.ts +19 -2
  525. package/src/gestures/README.md +14 -5
  526. package/src/gestures/ScreenEdgePanGestureRecognizer.ts +6 -1
  527. package/src/gestures/nativeScroll.ts +12 -68
  528. package/src/gestures/wheelSegmenter.ts +243 -10
  529. package/src/hooks/StackItemScrollRegion.tsx +57 -0
  530. package/src/hooks/computeOverflow.ts +1 -1
  531. package/src/hooks/menuPressGesture.ts +244 -38
  532. package/src/hooks/menuPressValues.ts +18 -0
  533. package/src/hooks/useClickableContainer.doc.mjs +8 -2
  534. package/src/hooks/useClickableContainer.ts +93 -15
  535. package/src/hooks/useFocusTrap.ts +268 -151
  536. package/src/hooks/useKeyboardHighlight.ts +71 -0
  537. package/src/hooks/useMediaQuery.ts +41 -12
  538. package/src/hooks/useMenuPress.ts +118 -11
  539. package/src/hooks/useOverflow.ts +321 -75
  540. package/src/hooks/usePressFeedback.doc.mjs +3 -3
  541. package/src/hooks/usePressFeedback.ts +6 -6
  542. package/src/hooks/useScrollRegionProps.ts +76 -0
  543. package/src/i18n/InternationalizationContext.ts +6 -0
  544. package/src/i18n/InternationalizationProvider.doc.mjs +29 -1
  545. package/src/i18n/InternationalizationProvider.tsx +35 -3
  546. package/src/i18n/generated-english/DateInput/DateInput.generated.ts +0 -1
  547. package/src/i18n/generated-english/DateInput/useTypedDate.generated.ts +17 -0
  548. package/src/i18n/generated-english/DateTimeInput/DateTimeInput.generated.ts +0 -1
  549. package/src/i18n/generated-english/hooks/useScrollRegionProps.generated.ts +13 -0
  550. package/src/i18n/generated-locales/en.generated.ts +7 -0
  551. package/src/i18n/generated-locales/pseudo.generated.ts +7 -0
  552. package/src/i18n/index.ts +2 -0
  553. package/src/i18n/useCalendarSystem.ts +95 -0
  554. package/src/internal/calendar-system.ts +26 -0
  555. package/src/internal/spinner-rotor.ts +20 -0
  556. package/src/internal/touch.ts +43 -2
  557. package/src/motion/MEASUREMENTS.md +11 -0
  558. package/src/motion/README.md +3 -3
  559. package/src/motion/animator.ts +7 -7
  560. package/src/motion/carryAnimations.ts +389 -0
  561. package/src/motion/transientCopy.ts +45 -5
  562. package/src/motion/uikit/gestures.ts +22 -0
  563. package/src/motion/uikit/index.ts +1 -0
  564. package/src/motion/uikit/timing.ts +7 -5
  565. package/src/privateAttributes/menuPressLit.stylex.ts +104 -0
  566. package/src/privateAttributes/press.stylex.ts +261 -0
  567. package/src/theme/themeMotion.ts +3 -2
  568. package/src/theme/tokens.stylex.ts +1 -1
  569. package/src/utils/calendarDateParser.ts +1385 -0
  570. package/src/utils/calendarSystem.ts +832 -0
  571. package/src/utils/coarsePointer.ts +27 -14
  572. package/src/utils/flatTree.ts +15 -3
  573. package/src/utils/focusReturn.ts +78 -18
  574. package/src/utils/hitArea.ts +138 -9
  575. package/src/utils/inputPresentation.ts +21 -1
  576. package/src/utils/inputStream.ts +47 -10
  577. package/src/utils/interactionOverlay.stylex.ts +19 -22
  578. package/src/utils/plainDate.ts +130 -19
  579. package/src/utils/pressFeedback.ts +46 -14
  580. package/src/utils/pressGesture.ts +35 -9
  581. package/src/utils/scrollView.ts +135 -0
  582. package/src/utils/selectionLock.ts +5 -10
  583. package/src/utils/touchHitArea.stylex.ts +56 -0
  584. package/src/utils/touchHitArea.ts +177 -0
  585. package/src/utils/triggerFocus.ts +17 -4
@@ -1,5 +1,6 @@
1
1
  import type { ISODateString } from '../../utils/dateTypes.js';
2
2
  import { type PlainDate } from '../../utils/plainDate.js';
3
+ import { type CalendarSystem } from '../../utils/calendarSystem.js';
3
4
  /**
4
5
  * Configuration for calendar navigation
5
6
  */
@@ -12,16 +13,33 @@ export interface UseCalendarNavigationOptions {
12
13
  onFocusDateChange?: (focusDate: ISODateString) => void;
13
14
  /** Number of months to display */
14
15
  numberOfMonths?: 1 | 2;
16
+ /**
17
+ * The calendar system whose months the hook steps and labels. Dates stay
18
+ * Gregorian ISO. The hook never reads the InternationalizationProvider
19
+ * calendar. Calendars other than gregory, iso8601, buddhist, roc, and
20
+ * japanese need Temporal; without it, the hook steps Gregorian months and
21
+ * warns once in development.
22
+ * @default 'gregory'
23
+ */
24
+ calendar?: CalendarSystem;
15
25
  }
16
26
  /**
17
27
  * Return type for useCalendarNavigation hook
18
28
  */
19
29
  export interface UseCalendarNavigationReturn {
20
- /** The base month (first day of the focus month) as a PlainDate */
30
+ /** The Gregorian first day of the focus month */
21
31
  baseMonth: PlainDate;
22
- /** Array of visible months to render as PlainDates */
32
+ /** The Gregorian first day of each visible month */
23
33
  visibleMonths: PlainDate[];
24
- /** Formatted label for the month header */
34
+ /**
35
+ * The year and month numbers of each visible month in `calendar`, as
36
+ * `useCalendarDays` reads them with the same `calendar`
37
+ */
38
+ visibleCalendarMonths: {
39
+ year: number;
40
+ month: number;
41
+ }[];
42
+ /** Formatted label for the month header, in `calendar` */
25
43
  monthYearLabel: string;
26
44
  /** Navigate to previous/next month */
27
45
  navigateMonth: (delta: number, focusedDate?: ISODateString, offset?: number) => void;
@@ -55,6 +73,13 @@ export interface UseCalendarNavigationReturn {
55
73
  * // Navigate from arrow key (with focus tracking)
56
74
  * navigateMonth(1, focusedDate, 1); // horizontal offset
57
75
  * navigateMonth(1, focusedDate, 7); // vertical offset
76
+ *
77
+ * // Persian months, laid out by useCalendarDays
78
+ * const nav = useCalendarNavigation({initialValue, calendar: 'persian'});
79
+ * const {weeks} = useCalendarDays({
80
+ * ...nav.visibleCalendarMonths[0],
81
+ * calendar: 'persian',
82
+ * });
58
83
  * ```
59
84
  */
60
85
  export declare function useCalendarNavigation(options: UseCalendarNavigationOptions): UseCalendarNavigationReturn;
@@ -1 +1 @@
1
- {"version":3,"file":"useCalendarNavigation.d.ts","sourceRoot":"","sources":["../../../src/Calendar/hooks/useCalendarNavigation.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,KAAK,SAAS,EAOf,MAAM,uBAAuB,CAAC;AAI/B;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,gDAAgD;IAChD,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,qDAAqD;IACrD,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IACvD,kCAAkC;IAClC,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,mEAAmE;IACnE,SAAS,EAAE,SAAS,CAAC;IACrB,sDAAsD;IACtD,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,2CAA2C;IAC3C,cAAc,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,aAAa,EAAE,CACb,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,aAAa,EAC3B,MAAM,CAAC,EAAE,MAAM,KACZ,IAAI,CAAC;IACV,4CAA4C;IAC5C,YAAY,EAAE,aAAa,GAAG,IAAI,CAAC;IACnC,8BAA8B;IAC9B,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,4BAA4B,GACpC,2BAA2B,CAyF7B"}
1
+ {"version":3,"file":"useCalendarNavigation.d.ts","sourceRoot":"","sources":["../../../src/Calendar/hooks/useCalendarNavigation.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,KAAK,SAAS,EAKf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,cAAc,EAKpB,MAAM,4BAA4B,CAAC;AAIpC;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,gDAAgD;IAChD,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,qDAAqD;IACrD,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IACvD,kCAAkC;IAClC,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACvB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,iDAAiD;IACjD,SAAS,EAAE,SAAS,CAAC;IACrB,oDAAoD;IACpD,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B;;;OAGG;IACH,qBAAqB,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IACvD,0DAA0D;IAC1D,cAAc,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,aAAa,EAAE,CACb,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,aAAa,EAC3B,MAAM,CAAC,EAAE,MAAM,KACZ,IAAI,CAAC;IACV,4CAA4C;IAC5C,YAAY,EAAE,aAAa,GAAG,IAAI,CAAC;IACnC,8BAA8B;IAC9B,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,4BAA4B,GACpC,2BAA2B,CAuG7B"}
@@ -4,17 +4,20 @@
4
4
 
5
5
  /**
6
6
  * @file useCalendarNavigation.ts
7
- * @input Uses React useState, useMemo, useCallback, useLocale, PlainDate utilities
8
- * @output Exports useCalendarNavigation hook for month navigation
9
- * @position Calendar-specific hook; used by Calendar
7
+ * @input Uses React useState, useMemo, useCallback, useLocale, PlainDate and
8
+ * calendar-system utilities
9
+ * @output Exports useCalendarNavigation hook for month navigation in any
10
+ * calendar system (Gregorian by default)
11
+ * @position Calendar-specific public hook
10
12
  *
11
13
  * SYNC: When modified, update:
12
14
  * - /packages/core/src/Calendar/hooks/index.ts
13
15
  */
14
16
  import { useState, useMemo, useCallback } from 'react';
15
- import { plainDateFromISO, plainDateToISO, plainDateToday, plainDateSetFirstOfMonth, plainDateAddMonths, plainDateAddDays } from "../../utils/plainDate.js";
16
- import { plainDateFormatStandaloneMonthYear } from "../../utils/plainDate.js";
17
+ import { plainDateFromISO, plainDateToISO, plainDateToday, plainDateAddDays } from "../../utils/plainDate.js";
18
+ import { calendarAddMonths, calendarMonthOf, calendarYearMonthOf, formatCalendarMonthLabel } from "../../utils/calendarSystem.js";
17
19
  import { useLocale } from "../../i18n/index.js";
20
+ import { resolveShownCalendar } from "../../i18n/useCalendarSystem.js";
18
21
 
19
22
  /**
20
23
  * Configuration for calendar navigation
@@ -49,6 +52,13 @@ import { useLocale } from "../../i18n/index.js";
49
52
  * // Navigate from arrow key (with focus tracking)
50
53
  * navigateMonth(1, focusedDate, 1); // horizontal offset
51
54
  * navigateMonth(1, focusedDate, 7); // vertical offset
55
+ *
56
+ * // Persian months, laid out by useCalendarDays
57
+ * const nav = useCalendarNavigation({initialValue, calendar: 'persian'});
58
+ * const {weeks} = useCalendarDays({
59
+ * ...nav.visibleCalendarMonths[0],
60
+ * calendar: 'persian',
61
+ * });
52
62
  * ```
53
63
  */
54
64
  export function useCalendarNavigation(options) {
@@ -56,9 +66,11 @@ export function useCalendarNavigation(options) {
56
66
  initialValue,
57
67
  focusDate: focusDateProp,
58
68
  onFocusDateChange,
59
- numberOfMonths = 1
69
+ numberOfMonths = 1,
70
+ calendar: calendarOption = 'gregory'
60
71
  } = options;
61
72
  const locale = useLocale();
73
+ const calendar = resolveShownCalendar(calendarOption, 'useCalendarNavigation');
62
74
 
63
75
  // Pending focus target after month navigation
64
76
  const [pendingFocus, setPendingFocus] = useState(null);
@@ -78,27 +90,25 @@ export function useCalendarNavigation(options) {
78
90
  const isControlledFocus = focusDateProp !== undefined && onFocusDateChange !== undefined;
79
91
  const focusDate = isControlledFocus ? plainDateFromISO(focusDateProp) : internalFocusDate;
80
92
 
81
- // Base month (first day of focus month)
82
- const baseMonth = useMemo(() => {
83
- return plainDateSetFirstOfMonth(focusDate);
84
- }, [focusDate]);
85
-
86
- // Generate visible months
87
- const visibleMonths = useMemo(() => {
93
+ // A controlled focus date is a new object on each render. Key the memo on
94
+ // its ISO string.
95
+ const focusIso = plainDateToISO(focusDate);
96
+ const shownMonths = useMemo(() => {
97
+ const first = calendarMonthOf(calendar, plainDateFromISO(focusIso));
88
98
  return Array.from({
89
99
  length: numberOfMonths
90
- }, (_, i) => {
91
- return plainDateAddMonths(baseMonth, i);
92
- });
93
- }, [baseMonth, numberOfMonths]);
100
+ }, (_, i) => calendarAddMonths(calendar, first, i));
101
+ }, [calendar, focusIso, numberOfMonths]);
102
+ const visibleMonths = useMemo(() => shownMonths.map(month => month.start), [shownMonths]);
103
+ const baseMonth = visibleMonths[0];
104
+ const visibleCalendarMonths = useMemo(() => shownMonths.map(month => calendarYearMonthOf(calendar, month)), [calendar, shownMonths]);
94
105
 
95
- // Format month header
96
- // Each month is its own stand-alone label (Calendar FR1).
97
- const monthYearLabel = useMemo(() => visibleMonths.map(m => plainDateFormatStandaloneMonthYear(m, locale)).join(' – '), [visibleMonths, locale]);
106
+ // Each month is its own stand-alone label.
107
+ const monthYearLabel = useMemo(() => shownMonths.map(month => formatCalendarMonthLabel(calendar, month, locale)).join(' – '), [calendar, shownMonths, locale]);
98
108
 
99
109
  // Navigate to previous/next month
100
110
  const navigateMonth = useCallback((delta, focusedDate, offset) => {
101
- const newMonth = plainDateAddMonths(baseMonth, delta);
111
+ const newMonth = calendarAddMonths(calendar, shownMonths[0], delta).start;
102
112
  const newISO = plainDateToISO(newMonth);
103
113
 
104
114
  // Calculate target focus date if provided
@@ -114,7 +124,7 @@ export function useCalendarNavigation(options) {
114
124
  } else {
115
125
  setInternalFocusDate(newMonth);
116
126
  }
117
- }, [baseMonth, onFocusDateChange]);
127
+ }, [calendar, shownMonths, onFocusDateChange]);
118
128
 
119
129
  // Clear pending focus
120
130
  const clearPendingFocus = useCallback(() => {
@@ -123,6 +133,7 @@ export function useCalendarNavigation(options) {
123
133
  return {
124
134
  baseMonth,
125
135
  visibleMonths,
136
+ visibleCalendarMonths,
126
137
  monthYearLabel,
127
138
  navigateMonth,
128
139
  pendingFocus,
@@ -197,7 +197,7 @@ export declare const dayCellTheme: Readonly<{
197
197
  }>;
198
198
  readonly daySelected: Readonly<{
199
199
  readonly forcedColorAdjust: stylex.StyleXClassNameFor<"forcedColorAdjust", "none">;
200
- readonly backgroundColor: stylex.StyleXClassNameFor<"backgroundColor", "light-dark(#0064E0, #2694FE)" | "Highlight">;
200
+ readonly backgroundColor: stylex.StyleXClassNameFor<"backgroundColor", "light-dark(#0064E0, #0171E3)" | "Highlight">;
201
201
  readonly color: stylex.StyleXClassNameFor<"color", "light-dark(#FFFFFF, #FFFFFF)" | "HighlightText">;
202
202
  }>;
203
203
  readonly dayDisabled: Readonly<{
@@ -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":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAS3C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAG9C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAqJhD,QAAA,MAAM,iBAAiB;;;;;;;;;EASrB,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAE/D,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IACrE,wDAAwD;IACxD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxE;;OAEG;IACH,YAAY,CAAC,EAAE,CACb,OAAO,EAAE,OAAO,EAChB,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAC7B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,KAAK,EAAE,OAAO,GAAG,eAAe,CAAC;IACjC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACpD;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACnD;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAOD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,EAAE,EAAE,MAAM,EACV,KAAK,EACL,aAAqB,EACrB,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,SAAiB,EACjB,KAAK,EACL,UAAkB,EAClB,QAAQ,EACR,eAAe,EACf,UAAkB,EAClB,UAAkB,EAClB,UAAkB,EAClB,IAAW,EACX,OAAO,EACP,MAAM,EACN,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,kBAAkB,EAAE,mBAAmB,EACvC,GAAG,IAAI,EACR,EAAE,kBAAkB,+BA4NpB;yBAvPe,aAAa"}
1
+ {"version":3,"file":"CheckboxInput.d.ts","sourceRoot":"","sources":["../../src/CheckboxInput/CheckboxInput.tsx"],"names":[],"mappings":"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"}
@@ -4,7 +4,8 @@
4
4
 
5
5
  /**
6
6
  * @file CheckboxInput.tsx
7
- * @input Uses React, useId, ChangeEvent, FieldLabel, FieldStatus, IconType, InputStatus, useTooltip
7
+ * @input Uses React, useId, ChangeEvent, FieldLabel, FieldStatus, IconType, InputStatus, useTooltip,
8
+ * CheckboxRowPressContext (a row around the checkbox that owns its press)
8
9
  * @output Exports CheckboxInput component, CheckboxInputProps
9
10
  * @position Core implementation; consumed by index.ts, tested by CheckboxInput.test.tsx
10
11
  *
@@ -15,7 +16,7 @@
15
16
  * - /apps/storybook/stories/CheckboxInput.stories.tsx (storybook stories)
16
17
  * - /packages/cli/assets/templates/blocks/components/CheckboxInput/ (showcase blocks)
17
18
  */
18
- import { useId, useCallback, useOptimistic, useRef, useTransition } from 'react';
19
+ import { use, useId, useCallback, useOptimistic, useRef, useTransition } from 'react';
19
20
  import * as stylex from '@stylexjs/stylex';
20
21
  import "../theme/tokens.stylex.js";
21
22
  import { colorVars, spacingVars, radiusVars, typographyVars, typeScaleVars, fontWeightVars } from "../theme/tokens.stylex.js";
@@ -36,8 +37,11 @@ import { usePressFeedback } from "../hooks/usePressFeedback.js";
36
37
  import { useIndicator } from "../Indicator/useIndicator.js";
37
38
  import { themeProps } from "../utils/themeProps.js";
38
39
  import { useMergedRefs } from "../hooks/useMergedRefs.js";
40
+ import { useTouchHitArea } from "../utils/touchHitArea.js";
41
+ import { touchHitAreaStyles } from "../utils/touchHitArea.stylex.js";
39
42
  import { registerEnglishFallback, useComponentTranslator } from "../i18n/useComponentTranslator.js";
40
43
  import english from "../i18n/generated-english/CheckboxInput/CheckboxInput.generated.js";
44
+ import { CheckboxRowPressContext } from "./CheckboxRowPressContext.js";
41
45
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
42
46
  registerEnglishFallback(english);
43
47
 
@@ -62,10 +66,18 @@ const styles = {
62
66
  kOIVth: "xxhr3t",
63
67
  $$css: true
64
68
  },
69
+ hitAreaHost: {
70
+ kVAEAm: "xrxqdxo",
71
+ $$css: true
72
+ },
65
73
  indicatorPressImage: {
66
74
  "--_indicator-press-image": "x1dueop1 x189o2zt",
67
75
  $$css: true
68
76
  },
77
+ indicatorRowPressImage: {
78
+ "--_indicator-press-image": "x1y1g3jp",
79
+ $$css: true
80
+ },
69
81
  checkboxWrapper: {
70
82
  kVAEAm: "x1n2onr6",
71
83
  k1xSpc: "x78zum5",
@@ -85,6 +97,10 @@ const styles = {
85
97
  kNctxI: "x1ikgzpo xsozn46",
86
98
  $$css: true
87
99
  },
100
+ indicatorRowPressOverlay: {
101
+ kNctxI: "xlvbopx",
102
+ $$css: true
103
+ },
88
104
  input: {
89
105
  kVAEAm: "x10l6tqk",
90
106
  k87sOh: "xwa60dl",
@@ -176,6 +192,13 @@ export function CheckboxInput({
176
192
  // The row is the pressable: the overlay's pressed arm reads the row's
177
193
  // scope marker, the way the indicator's hover tint does.
178
194
  const pressable = usePressFeedback();
195
+ // A row around the checkbox that answers a press anywhere on it (a
196
+ // CheckboxListItem) owns the touch press instead. The checkbox then carries
197
+ // no press marker of its own. So the controller's innermost-wins rule finds
198
+ // the row for a finger on the label, the description or the box. The
199
+ // overlay below paints that row's press.
200
+ const isRowPressSurface = use(CheckboxRowPressContext);
201
+ const ownsPress = !isDisabled && !isRowPressSurface;
179
202
  const generatedId = useId();
180
203
  const id = idProp || generatedId;
181
204
  const descriptionID = useId();
@@ -210,6 +233,44 @@ export function CheckboxInput({
210
233
  const {
211
234
  focusProps
212
235
  } = useIndicatorFocusRing(indicatorRef);
236
+
237
+ // Under a coarse pointer a labelled checkbox's row grows toward 44 px
238
+ // through an invisible band, and nothing changes size. A label-hidden
239
+ // checkbox is a marker in another component's row, which keeps its target.
240
+ const hasHitArea = !isLabelHidden && !isDisabled && !isReadOnly;
241
+ const inputRef = useRef(null);
242
+ // The band's insets stay live while the row takes taps, and clear when it
243
+ // stops.
244
+ const watchRowHitArea = useTouchHitArea(hasHitArea);
245
+ // The disabled-message tooltip listens for hover and focus on the whole
246
+ // row, a larger trigger. It anchors on the checkbox itself (below), so it
247
+ // shows next to the control. Its handlers check isEnabled, so the row
248
+ // always attaches them.
249
+ const rowRef = useMergedRefs(disabledMessageTooltip.interactionRef, watchRowHitArea);
250
+ // Where a press on the row itself began. A browser can move a tap's click
251
+ // onto the row's edge, so the band is judged from the press.
252
+ const pressPointRef = useRef(null);
253
+ const handleRowPointerDown = event => {
254
+ pressPointRef.current = event.target === event.currentTarget ? {
255
+ x: event.clientX,
256
+ y: event.clientY
257
+ } : null;
258
+ };
259
+ // A press that began on the band, outside the row's box, toggles the
260
+ // checkbox, as a tap on the box does. A click from code has no press count
261
+ // (`detail` is 0), so it never toggles from here.
262
+ const handleRowClick = event => {
263
+ const press = pressPointRef.current;
264
+ pressPointRef.current = null;
265
+ if (press == null || event.detail === 0 || event.target !== event.currentTarget) {
266
+ return;
267
+ }
268
+ const box = event.currentTarget.getBoundingClientRect();
269
+ const isOnBand = press.x < box.left || press.x > box.right || press.y < box.top || press.y > box.bottom;
270
+ if (isOnBand) {
271
+ inputRef.current?.click();
272
+ }
273
+ };
213
274
  const isIndeterminate = optimisticValue === 'indeterminate';
214
275
  const isChecked = optimisticValue === true;
215
276
 
@@ -249,30 +310,25 @@ export function CheckboxInput({
249
310
  size
250
311
  }), stylex.props(width != null && dynamicWidthStyles.width(width), xstyle), className, style),
251
312
  children: [/*#__PURE__*/_jsxs("div", {
252
- ref: el => {
253
- // Interaction (hover/focus) listeners for the disabled-message
254
- // tooltip attach to the whole row for a larger trigger target;
255
- // positioning anchors on the checkbox itself (below) so the tooltip
256
- // appears next to the control, not the far edge of the row.
257
- // Handlers are gated internally by isEnabled, so attaching
258
- // unconditionally is safe.
259
- disabledMessageTooltip.interactionRef(el);
260
- },
261
- ...(isDisabled ? undefined : pressable),
262
- ...stylex.props(styles.container, isLabelHidden && styles.containerLabelHidden,
313
+ ref: rowRef,
314
+ onPointerDown: hasHitArea ? handleRowPointerDown : undefined,
315
+ onClick: hasHitArea ? handleRowClick : undefined,
316
+ ...(ownsPress ? pressable : undefined),
317
+ ...stylex.props(styles.container, isLabelHidden && styles.containerLabelHidden, hasHitArea && styles.hitAreaHost, hasHitArea && touchHitAreaStyles.layer,
263
318
  // Hover and focus reach the checkbox visual through this ancestor
264
319
  // marker rather than props, so the whole row drives it.
265
- !isDisabled && indicatorScope, !isDisabled && styles.indicatorPressImage,
320
+ !isDisabled && indicatorScope, !isDisabled && (isRowPressSurface ? styles.indicatorRowPressImage : styles.indicatorPressImage),
266
321
  // The touch press's strength and release live on the row the
267
322
  // controller writes to; the layer over the checkbox box inherits
268
- // and paints it.
269
- !isDisabled && interactionOverlayStyles.pressedAlpha),
323
+ // and paints it. Under a row that owns the press, the box inherits
324
+ // that row's strength instead.
325
+ ownsPress && interactionOverlayStyles.pressedAlpha),
270
326
  children: [/*#__PURE__*/_jsxs("div", {
271
- ...stylex.props(styles.checkboxWrapper, wrapperSizeStyles[size], !isDisabled && styles.indicatorPressOverlay),
327
+ ...stylex.props(styles.checkboxWrapper, wrapperSizeStyles[size], !isDisabled && styles.indicatorPressOverlay, !isDisabled && isRowPressSurface && styles.indicatorRowPressOverlay),
272
328
  ...focusProps,
273
329
  children: [/*#__PURE__*/_jsx("input", {
274
330
  ...rest,
275
- ref: useMergedRefs(ref, indeterminateRef, disabledMessageTooltip.positionRef),
331
+ ref: useMergedRefs(ref, indeterminateRef, disabledMessageTooltip.positionRef, inputRef),
276
332
  id: id,
277
333
  type: "checkbox"
278
334
  // Withhold the name while disabled: the input stays focusable (not
@@ -0,0 +1,2 @@
1
+ export declare const CheckboxRowPressContext: import("react").Context<boolean>;
2
+ //# sourceMappingURL=CheckboxRowPressContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxRowPressContext.d.ts","sourceRoot":"","sources":["../../src/CheckboxInput/CheckboxRowPressContext.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,uBAAuB,kCAAkC,CAAC"}
@@ -0,0 +1,20 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ 'use client';
4
+
5
+ /**
6
+ * @file CheckboxRowPressContext.ts
7
+ * @input Uses the private layer-scoped context factory
8
+ * @output CheckboxRowPressContext: whether the row is its checkbox's press surface
9
+ * @position Internal; CheckboxListItem provides it, CheckboxInput reads it
10
+ *
11
+ * Such a row carries the shared press marker (utils/pressFeedback.ts). Its
12
+ * checkbox carries none, so a finger anywhere on the row presses the row.
13
+ * It is layer-scoped and wraps only the row's own checkbox.
14
+ *
15
+ * SYNC: When modified, update CheckboxInput.tsx and
16
+ * ../CheckboxList/CheckboxListItem.tsx.
17
+ */
18
+ import { createLayerScopedContext } from "../Layer/layerScopedContext.js";
19
+ export const CheckboxRowPressContext = createLayerScopedContext(false);
20
+ CheckboxRowPressContext.displayName = 'CheckboxRowPressContext';
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @file CheckboxListItem.tsx
3
- * @input Uses React, CheckboxInput, ListItem, CheckboxListContext
3
+ * @input Uses React, CheckboxInput, ListItem, CheckboxListContext,
4
+ * CheckboxRowPressContext, the touch presentation and the row press paint
4
5
  * @output Exports CheckboxListItem component, CheckboxListItemProps
5
6
  * @position Core implementation; consumed by index.ts, tested by CheckboxList.test.tsx
6
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxListItem.d.ts","sourceRoot":"","sources":["../../src/CheckboxList/CheckboxListItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAkC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAItE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAU5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAuBvC,MAAM,WAAW,qBAAsB,SAAQ,SAAS,CAAC,aAAa,CAAC;IACrE;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;;;;;;;;OAaG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;IACtC;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;CAChC;AAyCD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,YAAY,EAAE,SAAS,EACvB,KAAK,EACL,WAAW,EACX,UAAU,EACV,UAAU,EAAE,cAAsB,EAClC,SAAS,EAAE,aAAqB,EAChC,SAAS,EACT,OAAO,EACP,GAAG,EACH,MAAM,EACN,SAAS,EACT,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,KAAK,EACL,GAAG,SAAS,EACb,EAAE,qBAAqB,+BAiKvB;yBAlLe,gBAAgB"}
1
+ {"version":3,"file":"CheckboxListItem.d.ts","sourceRoot":"","sources":["../../src/CheckboxList/CheckboxListItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAkC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAItE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAc5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAuBvC,MAAM,WAAW,qBAAsB,SAAQ,SAAS,CAAC,aAAa,CAAC;IACrE;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;;;;;;;;OAaG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;IACtC;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;CAChC;AAyCD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,YAAY,EAAE,SAAS,EACvB,KAAK,EACL,WAAW,EACX,UAAU,EACV,UAAU,EAAE,cAAsB,EAClC,SAAS,EAAE,aAAqB,EAChC,SAAS,EACT,OAAO,EACP,GAAG,EACH,MAAM,EACN,SAAS,EACT,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,KAAK,EACL,GAAG,SAAS,EACb,EAAE,qBAAqB,+BAiLvB;yBAlMe,gBAAgB"}
@@ -4,7 +4,8 @@
4
4
 
5
5
  /**
6
6
  * @file CheckboxListItem.tsx
7
- * @input Uses React, CheckboxInput, ListItem, CheckboxListContext
7
+ * @input Uses React, CheckboxInput, ListItem, CheckboxListContext,
8
+ * CheckboxRowPressContext, the touch presentation and the row press paint
8
9
  * @output Exports CheckboxListItem component, CheckboxListItemProps
9
10
  * @position Core implementation; consumed by index.ts, tested by CheckboxList.test.tsx
10
11
  *
@@ -21,6 +22,10 @@ import * as stylex from '@stylexjs/stylex';
21
22
  import "../theme/tokens.stylex.js";
22
23
  import { colorVars } from "../theme/tokens.stylex.js";
23
24
  import { CheckboxInput } from "../CheckboxInput/CheckboxInput.js";
25
+ import { CheckboxRowPressContext } from "../CheckboxInput/CheckboxRowPressContext.js";
26
+ import { rowPressPaintStyles } from "../privateAttributes/press.stylex.js";
27
+ import { interactionOverlayStyles } from "../utils/interactionOverlay.stylex.js";
28
+ import { useTouchPresentation } from "../utils/touchPresentation.js";
24
29
  import { ListItem } from "../List/ListItem.js";
25
30
  import { ListContext } from "../List/ListContext.js";
26
31
  import { CheckboxListContext } from "./CheckboxListContext.js";
@@ -184,6 +189,14 @@ export function CheckboxListItem({
184
189
  }) : undefined, [requiredGroup, isBoxChecked, isBoxEnabled]);
185
190
  const checkboxInputRef = useMergedRefs(checkboxRef, registerWithRequiredGroup);
186
191
 
192
+ // Under a finger, a delegating row is the option's only press surface. A
193
+ // touch anywhere on it presses the row. A fine pointer keeps the box's own
194
+ // press.
195
+ const {
196
+ isTouch
197
+ } = useTouchPresentation();
198
+ const rowOwnsPress = isTouch && hasRowInteraction && !effectiveDisabled;
199
+
187
200
  // A read-only checkbox carries aria-readonly, which the row's clickable
188
201
  // container treats as a non-interactive target, so a click on it would be
189
202
  // delegated straight back to the checkbox without end. Stop that click at
@@ -230,21 +243,34 @@ export function CheckboxListItem({
230
243
  ,
231
244
  interactiveRef: hasRowInteraction ? checkboxRef : undefined,
232
245
  "aria-busy": isBusy || undefined,
233
- xstyle: [resolvedChecked === true && !effectiveDisabled && !effectiveReadOnly && styles.selected, xstyle],
246
+ xstyle: [
247
+ // The row's own press paint, which the layer over its box reads.
248
+ rowOwnsPress && rowPressPaintStyles.checkboxRow,
249
+ // Item's row layer drops the strength's release, and the box paints
250
+ // at that strength. So the row brings the release back, and the box
251
+ // fades with the row.
252
+ rowOwnsPress && interactionOverlayStyles.pressedAlpha, resolvedChecked === true && !effectiveDisabled && !effectiveReadOnly && styles.selected, xstyle],
234
253
  className: className,
235
254
  style: style,
236
- startContent: /*#__PURE__*/_jsx(DescribedCheckboxInput, {
237
- ref: checkboxInputRef,
238
- label: checkboxLabel,
239
- "aria-labelledby": namesFromVisibleLabel ? labelID : undefined,
240
- isLabelHidden: true,
241
- value: resolvedChecked,
242
- onChange: () => handleToggle(),
243
- onClick: handleCheckboxClick,
244
- isDisabled: effectiveDisabled,
245
- isReadOnly: effectiveReadOnly,
246
- isLoading: isBusy,
247
- size: checkboxSize
255
+ startContent:
256
+ /*#__PURE__*/
257
+ // Only the row's own checkbox: a checkbox placed in the row's content
258
+ // keeps its own press.
259
+ _jsx(CheckboxRowPressContext, {
260
+ value: rowOwnsPress,
261
+ children: /*#__PURE__*/_jsx(DescribedCheckboxInput, {
262
+ ref: checkboxInputRef,
263
+ label: checkboxLabel,
264
+ "aria-labelledby": namesFromVisibleLabel ? labelID : undefined,
265
+ isLabelHidden: true,
266
+ value: resolvedChecked,
267
+ onChange: () => handleToggle(),
268
+ onClick: handleCheckboxClick,
269
+ isDisabled: effectiveDisabled,
270
+ isReadOnly: effectiveReadOnly,
271
+ isLoading: isBusy,
272
+ size: checkboxSize
273
+ })
248
274
  })
249
275
  });
250
276
  }
@@ -120,7 +120,7 @@ export interface ClickableCardProps extends BaseProps {
120
120
  * </ClickableCard>
121
121
  * ```
122
122
  */
123
- export declare function ClickableCard({ label, onClick: onClickProp, onMouseUp: onMouseUpProp, href, target, isDisabled, children, padding, variant, elevation, width, height, maxWidth, ref, xstyle: xstyleProp, className: classNameProp, style, ...props }: ClickableCardProps): import("react").JSX.Element;
123
+ export declare function ClickableCard({ label, onClick: onClickProp, onMouseUp: onMouseUpProp, onPointerDown: onPointerDownProp, href, target, isDisabled, children, padding, variant, elevation, width, height, maxWidth, ref, xstyle: xstyleProp, className: classNameProp, style, ...props }: ClickableCardProps): import("react").JSX.Element;
124
124
  export declare namespace ClickableCard {
125
125
  var displayName: string;
126
126
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ClickableCard.d.ts","sourceRoot":"","sources":["../../src/ClickableCard/ClickableCard.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EACL,KAAK,SAAS,EACd,KAAK,UAAU,EAGf,KAAK,GAAG,EACT,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAGtE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAwJ5C,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,yCAAyC;IACzC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAE1B;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAEnD;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,yBAAyB;IACzB,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EACxB,IAAI,EACJ,MAAM,EACN,UAAkB,EAClB,QAAQ,EACR,OAAO,EACP,OAAmB,EACnB,SAAkB,EAClB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,GAAG,EACH,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,aAAa,EACxB,KAAK,EACL,GAAG,KAAK,EACT,EAAE,kBAAkB,+BA+HpB;yBAlJe,aAAa"}
1
+ {"version":3,"file":"ClickableCard.d.ts","sourceRoot":"","sources":["../../src/ClickableCard/ClickableCard.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EACL,KAAK,SAAS,EACd,KAAK,UAAU,EAGf,KAAK,GAAG,EACT,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAItE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAwJ5C,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,yCAAyC;IACzC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAE1B;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAEnD;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,yBAAyB;IACzB,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EACxB,aAAa,EAAE,iBAAiB,EAChC,IAAI,EACJ,MAAM,EACN,UAAkB,EAClB,QAAQ,EACR,OAAO,EACP,OAAmB,EACnB,SAAkB,EAClB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,GAAG,EACH,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,aAAa,EACxB,KAAK,EACL,GAAG,KAAK,EACT,EAAE,kBAAkB,+BAoIpB;yBAxJe,aAAa"}
@@ -33,6 +33,7 @@ import * as stylex from '@stylexjs/stylex';
33
33
  import "../theme/tokens.stylex.js";
34
34
  import { borderVars, colorVars, durationVars, easeVars } from "../theme/tokens.stylex.js";
35
35
  import { mergeProps } from "../utils/index.js";
36
+ import { chainEventHandlers } from "../utils/chainEventHandlers.js";
36
37
  import { Card } from "../Card/Card.js";
37
38
  import { useClickableContainer } from "../hooks/useClickableContainer.js";
38
39
  import { useLinkComponent } from "../Link/useLinkComponent.js";
@@ -147,6 +148,7 @@ export function ClickableCard({
147
148
  label,
148
149
  onClick: onClickProp,
149
150
  onMouseUp: onMouseUpProp,
151
+ onPointerDown: onPointerDownProp,
150
152
  href,
151
153
  target,
152
154
  isDisabled = false,
@@ -199,7 +201,8 @@ export function ClickableCard({
199
201
  const LinkComponent = useLinkComponent();
200
202
  const {
201
203
  onClick,
202
- onMouseUp
204
+ onMouseUp,
205
+ onPointerDown
203
206
  } = useClickableContainer({
204
207
  containerRef,
205
208
  interactiveRef,
@@ -239,6 +242,7 @@ export function ClickableCard({
239
242
  !isDisabled && interactionOverlayStyles.pressedAlpha, !isDisabled && hasBorder && styles.borderedHoverOnPointer, isDisabled && styles.disabled, xstyleProp],
240
243
  onClick: !isDisabled ? onClick : undefined,
241
244
  onMouseUp: !isDisabled ? handleMouseUp : undefined,
245
+ onPointerDown: !isDisabled ? chainEventHandlers(onPointerDown, onPointerDownProp) : onPointerDownProp,
242
246
  ...props,
243
247
  children: [isLink ? /*#__PURE__*/_jsx(LinkRoot, {
244
248
  ref: setInteractiveRef,
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../src/ContextMenu/ContextMenu.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KASN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAuCrC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,kCAAkC,CAAC;AAgI1C,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAEvD,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;AAE7D,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAErD,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAMnD,UAAU,oBAAqB,SAAQ,SAAS;IAC9C,oDAAoD;IACpD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IAC9C,+DAA+D;IAC/D,QAAQ,EAAE,SAAS,CAAC;IACpB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,wCAAwC;IACxC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,oBAAqB,SAAQ,oBAAoB;IACzD,gDAAgD;IAChD,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED,UAAU,wBAAyB,SAAQ,oBAAoB;IAC7D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,+CAA+C;IAC/C,WAAW,EAAE,SAAS,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,wBAAwB,CAAC;AAM/E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,SAAS,EACT,IAAW,EACX,KAAK,EAAE,cAAc,EACrB,UAAkB,EAClB,YAAY,EACZ,YAAwB,EACxB,SAAiB,EACjB,GAAG,EACH,SAAS,EACT,KAAK,EACL,MAAM,EACN,aAAa,EACb,aAAa,EAAE,iBAAiB,EAChC,YAAY,EAAE,gBAAgB,EAC9B,WAAW,EAAE,eAAe,EAC5B,UAAU,EAAE,cAAc,EAC1B,aAAa,EAAE,iBAAiB,EAChC,aAAa,EAAE,MAAM,EACrB,GAAG,IAAI,EACR,EAAE,gBAAgB,qBAgjBlB;yBArkBe,WAAW"}
1
+ {"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../src/ContextMenu/ContextMenu.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KASN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAwCrC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,kCAAkC,CAAC;AAgI1C,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAEvD,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;AAE7D,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAErD,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAMnD,UAAU,oBAAqB,SAAQ,SAAS;IAC9C,oDAAoD;IACpD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IAC9C,+DAA+D;IAC/D,QAAQ,EAAE,SAAS,CAAC;IACpB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,wCAAwC;IACxC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,oBAAqB,SAAQ,oBAAoB;IACzD,gDAAgD;IAChD,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED,UAAU,wBAAyB,SAAQ,oBAAoB;IAC7D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,+CAA+C;IAC/C,WAAW,EAAE,SAAS,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,wBAAwB,CAAC;AAM/E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,SAAS,EACT,IAAW,EACX,KAAK,EAAE,cAAc,EACrB,UAAkB,EAClB,YAAY,EACZ,YAAwB,EACxB,SAAiB,EACjB,GAAG,EACH,SAAS,EACT,KAAK,EACL,MAAM,EACN,aAAa,EACb,aAAa,EAAE,iBAAiB,EAChC,YAAY,EAAE,gBAAgB,EAC9B,WAAW,EAAE,eAAe,EAC5B,UAAU,EAAE,cAAc,EAC1B,aAAa,EAAE,iBAAiB,EAChC,aAAa,EAAE,MAAM,EACrB,GAAG,IAAI,EACR,EAAE,gBAAgB,qBAijBlB;yBAtkBe,WAAW"}
@@ -48,6 +48,7 @@ import { useLayerInternal } from "../Layer/useLayer.js";
48
48
  import { LayerDepthProvider } from "../Layer/LayerDepthContext.js";
49
49
  import { useLayerDismissal } from "../Layer/useLayerDismissal.js";
50
50
  import { currentGesture } from "../Layer/gestureCounter.js";
51
+ import { noteOutsideDismissal } from "../Layer/outsidePress.js";
51
52
  import { MenuBottomSheetActionList } from "../DropdownMenu/MenuBottomSheetActionList.js";
52
53
  import { menuBottomSheetStyles } from "../DropdownMenu/menuBottomSheet.stylex.js";
53
54
  import { renderDropdownItems } from "../DropdownMenu/renderDropdownItems.js";
@@ -386,6 +387,7 @@ export function ContextMenu({
386
387
  return;
387
388
  }
388
389
  if (menu && !menu.contains(e.target)) {
390
+ noteOutsideDismissal(menu.ownerDocument);
389
391
  closeMenu();
390
392
  }
391
393
  };