@astryxdesign/core 0.7.7 → 0.7.8-canary.0d54fd3

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 (682) hide show
  1. package/dist/AlertDialog/AlertDialog.d.ts +4 -1
  2. package/dist/AlertDialog/AlertDialog.d.ts.map +1 -1
  3. package/dist/AlertDialog/AlertDialog.js +46 -6
  4. package/dist/AppShell/AppShell.d.ts.map +1 -1
  5. package/dist/AppShell/AppShell.js +11 -3
  6. package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
  7. package/dist/BottomSheet/BottomSheet.js +1 -0
  8. package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
  9. package/dist/BottomSheet/BottomSheetPanel.js +25 -4
  10. package/dist/BottomSheet/BottomSheetSwitcher.d.ts.map +1 -1
  11. package/dist/BottomSheet/BottomSheetSwitcher.js +5 -0
  12. package/dist/BottomSheet/useMobileKeyboard.d.ts.map +1 -1
  13. package/dist/BottomSheet/useMobileKeyboard.js +6 -0
  14. package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
  15. package/dist/BottomSheet/useSheetGestures.js +12 -1
  16. package/dist/Button/Button.d.ts.map +1 -1
  17. package/dist/Button/Button.js +17 -1
  18. package/dist/Calendar/Calendar.d.ts.map +1 -1
  19. package/dist/Calendar/Calendar.js +18 -22
  20. package/dist/Calendar/getWeekdayHeaderNames.d.ts +16 -0
  21. package/dist/Calendar/getWeekdayHeaderNames.d.ts.map +1 -0
  22. package/dist/Calendar/getWeekdayHeaderNames.js +70 -0
  23. package/dist/Calendar/hooks/useCalendarDays.d.ts.map +1 -1
  24. package/dist/Calendar/hooks/useCalendarDays.js +2 -10
  25. package/dist/Calendar/{standaloneShortWeekdayNames.generated.d.ts → weekdayHeaderNames.generated.d.ts} +14 -14
  26. package/dist/Calendar/weekdayHeaderNames.generated.d.ts.map +1 -0
  27. package/dist/Calendar/{standaloneShortWeekdayNames.generated.js → weekdayHeaderNames.generated.js} +12 -12
  28. package/dist/Carousel/Carousel.d.ts.map +1 -1
  29. package/dist/Carousel/Carousel.js +2 -0
  30. package/dist/Chat/ChatComposerInput.d.ts.map +1 -1
  31. package/dist/Chat/ChatComposerInput.js +6 -1
  32. package/dist/Chat/ChatMessageList.d.ts.map +1 -1
  33. package/dist/Chat/ChatMessageList.js +2 -1
  34. package/dist/Chat/useChatDictation.d.ts.map +1 -1
  35. package/dist/Chat/useChatDictation.js +2 -0
  36. package/dist/Chat/useChatNewMessages.js +1 -1
  37. package/dist/Chat/useChatStreamScroll.d.ts.map +1 -1
  38. package/dist/Chat/useChatStreamScroll.js +2 -0
  39. package/dist/Chat/useSpeechRecognition.d.ts.map +1 -1
  40. package/dist/Chat/useSpeechRecognition.js +3 -0
  41. package/dist/Chat/useTriggerMenu.js +1 -1
  42. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  43. package/dist/CheckboxInput/CheckboxInput.js +17 -12
  44. package/dist/CheckboxList/CheckboxList.d.ts +8 -1
  45. package/dist/CheckboxList/CheckboxList.d.ts.map +1 -1
  46. package/dist/CheckboxList/CheckboxList.js +2 -0
  47. package/dist/CodeBlock/CodeBlock.d.ts +10 -1
  48. package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
  49. package/dist/CodeBlock/CodeBlock.js +28 -11
  50. package/dist/CommandPalette/CommandPalette.d.ts.map +1 -1
  51. package/dist/CommandPalette/CommandPalette.js +2 -0
  52. package/dist/CommandPalette/CommandPaletteItem.d.ts.map +1 -1
  53. package/dist/CommandPalette/CommandPaletteItem.js +2 -0
  54. package/dist/ComplexSelector/ComplexSelector.d.ts +4 -1
  55. package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
  56. package/dist/ComplexSelector/ComplexSelector.js +14 -4
  57. package/dist/ContextMenu/ContextMenu.js +2 -2
  58. package/dist/DateInput/MonthScroller.d.ts.map +1 -1
  59. package/dist/DateInput/MonthScroller.js +5 -2
  60. package/dist/DateInput/PickerWheel.d.ts +19 -0
  61. package/dist/DateInput/PickerWheel.d.ts.map +1 -0
  62. package/dist/DateInput/PickerWheel.js +625 -0
  63. package/dist/DateInput/TouchDateField.d.ts.map +1 -1
  64. package/dist/DateInput/TouchDateField.js +9 -30
  65. package/dist/DateInput/Wheel.d.ts +18 -37
  66. package/dist/DateInput/Wheel.d.ts.map +1 -1
  67. package/dist/DateInput/Wheel.js +84 -113
  68. package/dist/DateInput/useOwnScrollGesture.d.ts +10 -0
  69. package/dist/DateInput/useOwnScrollGesture.d.ts.map +1 -1
  70. package/dist/DateInput/useOwnScrollGesture.js +16 -3
  71. package/dist/DateInput/usePointerDragScroll.d.ts.map +1 -1
  72. package/dist/DateInput/usePointerDragScroll.js +2 -0
  73. package/dist/DateInput/useScrollSettle.d.ts.map +1 -1
  74. package/dist/DateInput/useScrollSettle.js +3 -0
  75. package/dist/DateInput/useWheelListbox.d.ts +59 -0
  76. package/dist/DateInput/useWheelListbox.d.ts.map +1 -0
  77. package/dist/DateInput/useWheelListbox.js +88 -0
  78. package/dist/DateInput/wheelOptions.d.ts +74 -0
  79. package/dist/DateInput/wheelOptions.d.ts.map +1 -0
  80. package/dist/DateInput/wheelOptions.js +98 -0
  81. package/dist/DateInput/wheelPhysics.d.ts +127 -0
  82. package/dist/DateInput/wheelPhysics.d.ts.map +1 -0
  83. package/dist/DateInput/wheelPhysics.js +341 -0
  84. package/dist/DateInput/wheelStrip.d.ts +92 -0
  85. package/dist/DateInput/wheelStrip.d.ts.map +1 -0
  86. package/dist/DateInput/wheelStrip.js +258 -0
  87. package/dist/DateTimeInput/TouchDateTimeField.d.ts.map +1 -1
  88. package/dist/DateTimeInput/TouchDateTimeField.js +10 -10
  89. package/dist/Dialog/Dialog.d.ts.map +1 -1
  90. package/dist/Dialog/Dialog.js +9 -32
  91. package/dist/Drawer/useDrawerDialogPresence.d.ts.map +1 -1
  92. package/dist/Drawer/useDrawerDialogPresence.js +3 -0
  93. package/dist/DropdownMenu/useMenuOverflow.d.ts.map +1 -1
  94. package/dist/DropdownMenu/useMenuOverflow.js +5 -0
  95. package/dist/Field/Field.js +2 -2
  96. package/dist/FieldStatus/useFieldStatusAnnouncement.d.ts.map +1 -1
  97. package/dist/FieldStatus/useFieldStatusAnnouncement.js +1 -0
  98. package/dist/FormLayout/FormLayout.d.ts +5 -1
  99. package/dist/FormLayout/FormLayout.d.ts.map +1 -1
  100. package/dist/HoverCard/HoverCard.d.ts +6 -4
  101. package/dist/HoverCard/HoverCard.d.ts.map +1 -1
  102. package/dist/HoverCard/HoverCard.js +48 -3
  103. package/dist/HoverCard/useHoverCard.d.ts +5 -4
  104. package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
  105. package/dist/HoverCard/useHoverCard.js +20 -33
  106. package/dist/Icon/Icon.d.ts +5 -1
  107. package/dist/Icon/Icon.d.ts.map +1 -1
  108. package/dist/Icon/Icon.js +5 -2
  109. package/dist/InfoTip/InfoTip.d.ts +5 -5
  110. package/dist/InfoTip/InfoTip.d.ts.map +1 -1
  111. package/dist/InfoTip/InfoTip.js +58 -19
  112. package/dist/Item/useSwipeAction.d.ts.map +1 -1
  113. package/dist/Item/useSwipeAction.js +3 -0
  114. package/dist/Layer/modalOutlet.d.ts.map +1 -1
  115. package/dist/Layer/modalOutlet.js +2 -0
  116. package/dist/Layer/outsidePress.d.ts.map +1 -1
  117. package/dist/Layer/outsidePress.js +1 -0
  118. package/dist/Layer/useLayer.d.ts.map +1 -1
  119. package/dist/Layer/useLayer.js +4 -1
  120. package/dist/Layer/useLayerDismissal.d.ts.map +1 -1
  121. package/dist/Layer/useLayerDismissal.js +3 -0
  122. package/dist/Layer/useTouchTrigger.d.ts +13 -7
  123. package/dist/Layer/useTouchTrigger.d.ts.map +1 -1
  124. package/dist/Layer/useTouchTrigger.js +20 -6
  125. package/dist/Layout/index.d.ts +1 -1
  126. package/dist/Layout/index.d.ts.map +1 -1
  127. package/dist/Layout/index.js +1 -1
  128. package/dist/Layout/layoutReset.js +1 -1
  129. package/dist/Layout/overlayPaddingReset.stylex.d.ts +68 -0
  130. package/dist/Layout/overlayPaddingReset.stylex.d.ts.map +1 -0
  131. package/dist/Layout/overlayPaddingReset.stylex.js +72 -0
  132. package/dist/Layout/padding.stylex.d.ts +5 -129
  133. package/dist/Layout/padding.stylex.d.ts.map +1 -1
  134. package/dist/Layout/padding.stylex.js +9 -143
  135. package/dist/Layout/paddingStyles.stylex.d.ts +83 -0
  136. package/dist/Layout/paddingStyles.stylex.d.ts.map +1 -0
  137. package/dist/Layout/paddingStyles.stylex.js +99 -0
  138. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  139. package/dist/Lightbox/Lightbox.js +20 -1
  140. package/dist/MobileNav/MobileNav.d.ts +3 -2
  141. package/dist/MobileNav/MobileNav.d.ts.map +1 -1
  142. package/dist/MobileNav/MobileNav.js +10 -26
  143. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  144. package/dist/MultiSelector/MultiSelector.js +2 -1
  145. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  146. package/dist/NumberInput/NumberInput.js +2 -1
  147. package/dist/Outline/useOutlineFromDOM.d.ts.map +1 -1
  148. package/dist/Outline/useOutlineFromDOM.js +3 -0
  149. package/dist/Outline/useScrollSpy.d.ts.map +1 -1
  150. package/dist/Outline/useScrollSpy.js +3 -0
  151. package/dist/OverflowList/OverflowList.d.ts.map +1 -1
  152. package/dist/OverflowList/OverflowList.js +3 -0
  153. package/dist/Popover/Popover.d.ts.map +1 -1
  154. package/dist/Popover/Popover.js +6 -0
  155. package/dist/Popover/usePopover.js +2 -2
  156. package/dist/PowerSearch/PowerSearch.d.ts +39 -4
  157. package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
  158. package/dist/PowerSearch/PowerSearch.js +441 -134
  159. package/dist/PowerSearch/PowerSearchBottomSheet.d.ts +102 -0
  160. package/dist/PowerSearch/PowerSearchBottomSheet.d.ts.map +1 -0
  161. package/dist/PowerSearch/PowerSearchBottomSheet.js +1919 -0
  162. package/dist/PowerSearch/PowerSearchEditPopover.d.ts +35 -2
  163. package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
  164. package/dist/PowerSearch/PowerSearchEditPopover.js +43 -10
  165. package/dist/PowerSearch/PowerSearchFilterEditor.d.ts +1 -1
  166. package/dist/PowerSearch/PowerSearchFilterEditor.d.ts.map +1 -1
  167. package/dist/PowerSearch/PowerSearchFilterEditor.js +4 -2
  168. package/dist/PowerSearch/PowerSearchToken.d.ts +1 -1
  169. package/dist/PowerSearch/PowerSearchToken.d.ts.map +1 -1
  170. package/dist/PowerSearch/PowerSearchToken.js +3 -2
  171. package/dist/PowerSearch/PowerSearchValueEditor.d.ts +38 -3
  172. package/dist/PowerSearch/PowerSearchValueEditor.d.ts.map +1 -1
  173. package/dist/PowerSearch/PowerSearchValueEditor.js +273 -86
  174. package/dist/PowerSearch/formatFilterValue.d.ts +14 -7
  175. package/dist/PowerSearch/formatFilterValue.d.ts.map +1 -1
  176. package/dist/PowerSearch/formatFilterValue.js +31 -23
  177. package/dist/PowerSearch/formatTokenValue.d.ts +28 -0
  178. package/dist/PowerSearch/formatTokenValue.d.ts.map +1 -0
  179. package/dist/PowerSearch/formatTokenValue.js +161 -0
  180. package/dist/PowerSearch/index.d.ts +1 -1
  181. package/dist/PowerSearch/index.d.ts.map +1 -1
  182. package/dist/PowerSearch/powerSearchDateZone.d.ts +25 -0
  183. package/dist/PowerSearch/powerSearchDateZone.d.ts.map +1 -0
  184. package/dist/PowerSearch/powerSearchDateZone.js +57 -0
  185. package/dist/PowerSearch/powerSearchSheetUtils.d.ts +65 -0
  186. package/dist/PowerSearch/powerSearchSheetUtils.d.ts.map +1 -0
  187. package/dist/PowerSearch/powerSearchSheetUtils.js +168 -0
  188. package/dist/PowerSearch/types.d.ts +8 -1
  189. package/dist/PowerSearch/types.d.ts.map +1 -1
  190. package/dist/ProgressBar/ProgressBarTouch.d.ts.map +1 -1
  191. package/dist/ProgressBar/ProgressBarTouch.js +2 -0
  192. package/dist/RadioList/RadioList.d.ts.map +1 -1
  193. package/dist/RadioList/RadioList.js +3 -2
  194. package/dist/RadioList/RadioListItem.d.ts +1 -1
  195. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  196. package/dist/RadioList/RadioListItem.js +5 -3
  197. package/dist/Resizable/ResizeHandle.d.ts +2 -1
  198. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  199. package/dist/Resizable/ResizeHandle.js +101 -77
  200. package/dist/Resizable/createResizable.d.ts +145 -0
  201. package/dist/Resizable/createResizable.d.ts.map +1 -0
  202. package/dist/Resizable/createResizable.js +575 -0
  203. package/dist/Resizable/useResizable.d.ts +3 -3
  204. package/dist/Resizable/useResizable.d.ts.map +1 -1
  205. package/dist/Resizable/useResizable.js +252 -459
  206. package/dist/SegmentedControl/useSegmentedSelectionMotion.d.ts.map +1 -1
  207. package/dist/SegmentedControl/useSegmentedSelectionMotion.js +3 -3
  208. package/dist/SelectableCard/SelectableCard.d.ts +2 -0
  209. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  210. package/dist/SelectableCard/SelectableCard.js +36 -11
  211. package/dist/SelectableCard/selectableCardInput.d.ts +12 -0
  212. package/dist/SelectableCard/selectableCardInput.d.ts.map +1 -0
  213. package/dist/SelectableCard/selectableCardInput.js +20 -0
  214. package/dist/Selector/Selector.d.ts.map +1 -1
  215. package/dist/Selector/Selector.js +7 -9
  216. package/dist/SideNav/SideNav.d.ts.map +1 -1
  217. package/dist/SideNav/SideNav.js +36 -5
  218. package/dist/Slider/Slider.d.ts.map +1 -1
  219. package/dist/Slider/Slider.js +16 -11
  220. package/dist/Slider/sliderTouchController.js +2 -2
  221. package/dist/Spinner/Spinner.d.ts +1 -1
  222. package/dist/Spinner/Spinner.d.ts.map +1 -1
  223. package/dist/Spinner/Spinner.js +60 -58
  224. package/dist/Stepper/Stepper.d.ts.map +1 -1
  225. package/dist/Stepper/Stepper.js +10 -15
  226. package/dist/Switch/Switch.d.ts.map +1 -1
  227. package/dist/Switch/Switch.js +4 -10
  228. package/dist/Switch/useSwitchTouch.js +4 -4
  229. package/dist/Table/BaseTable.d.ts.map +1 -1
  230. package/dist/Table/BaseTable.js +29 -8
  231. package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
  232. package/dist/Table/plugins/columnResize/useTableColumnResize.js +3 -1
  233. package/dist/Table/plugins/filtering/useTableFiltering.d.ts.map +1 -1
  234. package/dist/Table/plugins/filtering/useTableFiltering.js +2 -1
  235. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  236. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +4 -0
  237. package/dist/Table/plugins/stickyColumns/useTableStickyColumns.d.ts.map +1 -1
  238. package/dist/Table/plugins/stickyColumns/useTableStickyColumns.js +2 -0
  239. package/dist/TextArea/TextArea.d.ts.map +1 -1
  240. package/dist/TextArea/TextArea.js +2 -1
  241. package/dist/TextInput/TextInput.d.ts +2 -2
  242. package/dist/TextInput/TextInput.d.ts.map +1 -1
  243. package/dist/TextInput/TextInput.js +12 -8
  244. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  245. package/dist/TimeInput/TimeInput.js +2 -0
  246. package/dist/TimeInput/TouchTimeField.d.ts.map +1 -1
  247. package/dist/TimeInput/TouchTimeField.js +2 -0
  248. package/dist/Timer/Timer.d.ts.map +1 -1
  249. package/dist/Timer/Timer.js +2 -0
  250. package/dist/Timestamp/Timestamp.js +1 -1
  251. package/dist/Timestamp/formatInstant.d.ts.map +1 -1
  252. package/dist/Timestamp/formatInstant.js +1 -23
  253. package/dist/Toast/Toast.d.ts +11 -1
  254. package/dist/Toast/Toast.d.ts.map +1 -1
  255. package/dist/Toast/Toast.js +25 -15
  256. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  257. package/dist/Toast/ToastViewport.js +97 -34
  258. package/dist/Toast/types.d.ts +9 -3
  259. package/dist/Toast/types.d.ts.map +1 -1
  260. package/dist/Toast/useToast.d.ts.map +1 -1
  261. package/dist/Toast/useToast.js +1 -0
  262. package/dist/Tokenizer/Tokenizer.d.ts +44 -46
  263. package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
  264. package/dist/Tokenizer/Tokenizer.js +20 -21
  265. package/dist/Tokenizer/TokenizerBottomSheet.d.ts +1 -1
  266. package/dist/Tokenizer/TokenizerBottomSheet.js +4 -6
  267. package/dist/Tokenizer/index.d.ts +1 -1
  268. package/dist/Tokenizer/index.d.ts.map +1 -1
  269. package/dist/Tooltip/Tooltip.d.ts +2 -23
  270. package/dist/Tooltip/Tooltip.d.ts.map +1 -1
  271. package/dist/Tooltip/Tooltip.js +5 -29
  272. package/dist/Tooltip/useTooltip.d.ts +23 -30
  273. package/dist/Tooltip/useTooltip.d.ts.map +1 -1
  274. package/dist/Tooltip/useTooltip.js +194 -108
  275. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  276. package/dist/Typeahead/BaseTypeahead.js +27 -18
  277. package/dist/Typeahead/TypeaheadItem.d.ts +2 -1
  278. package/dist/Typeahead/TypeaheadItem.d.ts.map +1 -1
  279. package/dist/animator/createAnimator.d.ts +98 -0
  280. package/dist/animator/createAnimator.d.ts.map +1 -0
  281. package/dist/animator/createAnimator.js +259 -0
  282. package/dist/astryx.css +41 -7
  283. package/dist/gestures/GestureHost.d.ts +16 -1
  284. package/dist/gestures/GestureHost.d.ts.map +1 -1
  285. package/dist/gestures/GestureHost.js +1 -1
  286. package/dist/gestures/PressTracker.d.ts.map +1 -1
  287. package/dist/gestures/PressTracker.js +4 -3
  288. package/dist/hooks/ModalAnnounceProvider.d.ts.map +1 -1
  289. package/dist/hooks/ModalAnnounceProvider.js +1 -0
  290. package/dist/hooks/actionGroupTracker.d.ts +4 -1
  291. package/dist/hooks/actionGroupTracker.d.ts.map +1 -1
  292. package/dist/hooks/actionGroupTracker.js +13 -3
  293. package/dist/hooks/index.d.ts +1 -0
  294. package/dist/hooks/index.d.ts.map +1 -1
  295. package/dist/hooks/index.js +1 -0
  296. package/dist/hooks/longPressDetector.d.ts +66 -0
  297. package/dist/hooks/longPressDetector.d.ts.map +1 -0
  298. package/dist/hooks/longPressDetector.js +200 -0
  299. package/dist/hooks/pressGroupContext.d.ts +6 -0
  300. package/dist/hooks/pressGroupContext.d.ts.map +1 -0
  301. package/dist/hooks/pressGroupContext.js +20 -0
  302. package/dist/hooks/rootScrollStyles.d.ts +48 -0
  303. package/dist/hooks/rootScrollStyles.d.ts.map +1 -0
  304. package/dist/hooks/rootScrollStyles.js +207 -0
  305. package/dist/hooks/scrollLockTouchGuard.d.ts +13 -0
  306. package/dist/hooks/scrollLockTouchGuard.d.ts.map +1 -0
  307. package/dist/hooks/scrollLockTouchGuard.js +117 -0
  308. package/dist/hooks/scrollbarGutter.d.ts +4 -4
  309. package/dist/hooks/scrollbarGutter.d.ts.map +1 -1
  310. package/dist/hooks/scrollbarGutter.js +36 -23
  311. package/dist/hooks/useActionGroupTracking.d.ts +53 -0
  312. package/dist/hooks/useActionGroupTracking.d.ts.map +1 -0
  313. package/dist/hooks/useActionGroupTracking.js +174 -0
  314. package/dist/hooks/useAnimator.d.ts +41 -0
  315. package/dist/hooks/useAnimator.d.ts.map +1 -0
  316. package/dist/hooks/useAnimator.js +70 -0
  317. package/dist/hooks/useAnnounceRenderedText.d.ts.map +1 -1
  318. package/dist/hooks/useAnnounceRenderedText.js +1 -0
  319. package/dist/hooks/useAttachment.d.ts +1 -1
  320. package/dist/hooks/useAttachment.js +1 -1
  321. package/dist/hooks/useAutoMediaMode.d.ts.map +1 -1
  322. package/dist/hooks/useAutoMediaMode.js +1 -0
  323. package/dist/hooks/useBusyAnnouncement.d.ts.map +1 -1
  324. package/dist/hooks/useBusyAnnouncement.js +2 -0
  325. package/dist/hooks/useDevWarning.d.ts.map +1 -1
  326. package/dist/hooks/useDevWarning.js +2 -0
  327. package/dist/hooks/useFocusTrap.d.ts.map +1 -1
  328. package/dist/hooks/useFocusTrap.js +2 -0
  329. package/dist/hooks/useGridFocus.d.ts +8 -5
  330. package/dist/hooks/useGridFocus.d.ts.map +1 -1
  331. package/dist/hooks/useGridFocus.js +4 -3
  332. package/dist/hooks/useHotkeys.d.ts.map +1 -1
  333. package/dist/hooks/useHotkeys.js +3 -0
  334. package/dist/hooks/useImageMode.d.ts.map +1 -1
  335. package/dist/hooks/useImageMode.js +3 -0
  336. package/dist/hooks/useInputStatusIcon.d.ts +1 -1
  337. package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
  338. package/dist/hooks/useInputStatusIcon.js +2 -2
  339. package/dist/hooks/useIsomorphicLayoutEffect.d.ts +2 -2
  340. package/dist/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -1
  341. package/dist/hooks/useKeyboardHint.js +1 -1
  342. package/dist/hooks/useLongPress.d.ts +8 -9
  343. package/dist/hooks/useLongPress.d.ts.map +1 -1
  344. package/dist/hooks/useLongPress.js +23 -106
  345. package/dist/hooks/useMenuHover.d.ts.map +1 -1
  346. package/dist/hooks/useMenuHover.js +2 -0
  347. package/dist/hooks/useMenuPress.d.ts.map +1 -1
  348. package/dist/hooks/useMenuPress.js +3 -0
  349. package/dist/hooks/useOverflow.d.ts.map +1 -1
  350. package/dist/hooks/useOverflow.js +2 -1
  351. package/dist/hooks/usePressFeedback.d.ts.map +1 -1
  352. package/dist/hooks/usePressFeedback.js +1 -0
  353. package/dist/hooks/useResolvedRequired.d.ts +3 -0
  354. package/dist/hooks/useResolvedRequired.d.ts.map +1 -1
  355. package/dist/hooks/useResolvedRequired.js +3 -0
  356. package/dist/hooks/useScrollLock.d.ts +8 -9
  357. package/dist/hooks/useScrollLock.d.ts.map +1 -1
  358. package/dist/hooks/useScrollLock.js +50 -48
  359. package/dist/hooks/useScrollableArea.d.ts.map +1 -1
  360. package/dist/hooks/useScrollableArea.js +5 -0
  361. package/dist/hooks/useStreamingText.d.ts.map +1 -1
  362. package/dist/hooks/useStreamingText.js +3 -0
  363. package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.d.ts +8 -0
  364. package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.d.ts.map +1 -0
  365. package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.js +42 -0
  366. package/dist/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.d.ts.map +1 -1
  367. package/dist/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.js +6 -0
  368. package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.d.ts +8 -0
  369. package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.d.ts.map +1 -0
  370. package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.js +14 -0
  371. package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
  372. package/dist/i18n/generated-locales/en.generated.js +30 -0
  373. package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
  374. package/dist/i18n/generated-locales/pseudo.generated.js +30 -0
  375. package/dist/index.d.ts +1 -0
  376. package/dist/index.d.ts.map +1 -1
  377. package/dist/index.js +4 -0
  378. package/dist/internal/indicatorPress.stylex.d.ts +20 -0
  379. package/dist/internal/indicatorPress.stylex.d.ts.map +1 -0
  380. package/dist/internal/indicatorPress.stylex.js +26 -0
  381. package/dist/internal/selectable-card.d.ts +21 -0
  382. package/dist/internal/selectable-card.d.ts.map +1 -0
  383. package/dist/internal/selectable-card.js +20 -0
  384. package/dist/internal/sheetDraft.d.ts +2 -2
  385. package/dist/internal/sheetDraft.js +2 -2
  386. package/dist/motion/animatedLayout.d.ts +8 -0
  387. package/dist/motion/animatedLayout.d.ts.map +1 -1
  388. package/dist/motion/animatedLayout.js +246 -53
  389. package/dist/motion/animator.d.ts +14 -14
  390. package/dist/motion/animator.d.ts.map +1 -1
  391. package/dist/motion/animator.js +45 -26
  392. package/dist/motion/frameBlock.d.ts +14 -0
  393. package/dist/motion/frameBlock.d.ts.map +1 -0
  394. package/dist/motion/frameBlock.js +16 -0
  395. package/dist/motion/progress.d.ts +88 -0
  396. package/dist/motion/progress.d.ts.map +1 -0
  397. package/dist/motion/progress.js +128 -0
  398. package/dist/motion/reducedMotion.d.ts.map +1 -1
  399. package/dist/motion/reducedMotion.js +3 -1
  400. package/dist/motion/uikit/alert.d.ts +41 -0
  401. package/dist/motion/uikit/alert.d.ts.map +1 -0
  402. package/dist/motion/uikit/alert.js +43 -0
  403. package/dist/motion/uikit/index.d.ts +4 -3
  404. package/dist/motion/uikit/index.d.ts.map +1 -1
  405. package/dist/motion/uikit/index.js +4 -3
  406. package/dist/motion/uikit/picker.d.ts +96 -0
  407. package/dist/motion/uikit/picker.d.ts.map +1 -0
  408. package/dist/motion/uikit/picker.js +117 -0
  409. package/dist/privateAttributes/pressGroupItem.stylex.d.ts +22 -0
  410. package/dist/privateAttributes/pressGroupItem.stylex.d.ts.map +1 -0
  411. package/dist/privateAttributes/pressGroupItem.stylex.js +36 -0
  412. package/dist/privateAttributes/reducedMotion.stylex.d.ts +23 -0
  413. package/dist/privateAttributes/reducedMotion.stylex.d.ts.map +1 -0
  414. package/dist/privateAttributes/reducedMotion.stylex.js +40 -0
  415. package/dist/theme/Theme.d.ts.map +1 -1
  416. package/dist/theme/Theme.js +29 -4
  417. package/dist/theme/generateThemeRules.d.ts.map +1 -1
  418. package/dist/theme/generateThemeRules.js +14 -13
  419. package/dist/theme/motionKnobs.d.ts +4 -3
  420. package/dist/theme/motionKnobs.d.ts.map +1 -1
  421. package/dist/theme/motionKnobs.js +3 -2
  422. package/dist/theme/themeMotion.d.ts +6 -0
  423. package/dist/theme/themeMotion.d.ts.map +1 -1
  424. package/dist/theme/themeMotion.js +15 -2
  425. package/dist/theme/tokens.stylex.d.ts +3 -0
  426. package/dist/theme/tokens.stylex.d.ts.map +1 -1
  427. package/dist/theme/tokens.stylex.js +4 -1
  428. package/dist/utils/dateParser.d.ts.map +1 -1
  429. package/dist/utils/dateParser.js +12 -0
  430. package/dist/utils/disabledInteraction.d.ts +10 -2
  431. package/dist/utils/disabledInteraction.d.ts.map +1 -1
  432. package/dist/utils/disabledInteraction.js +16 -2
  433. package/dist/utils/focusReturn.d.ts +22 -25
  434. package/dist/utils/focusReturn.d.ts.map +1 -1
  435. package/dist/utils/focusReturn.js +36 -29
  436. package/dist/utils/index.d.ts +1 -1
  437. package/dist/utils/index.d.ts.map +1 -1
  438. package/dist/utils/index.js +1 -1
  439. package/dist/utils/interactionModality.d.ts.map +1 -1
  440. package/dist/utils/interactionModality.js +4 -0
  441. package/dist/utils/interactionOverlay.stylex.d.ts +3 -2
  442. package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
  443. package/dist/utils/interactionOverlay.stylex.js +3 -2
  444. package/dist/utils/isFocusDetached.d.ts +27 -0
  445. package/dist/utils/isFocusDetached.d.ts.map +1 -0
  446. package/dist/utils/isFocusDetached.js +32 -0
  447. package/dist/utils/plainDate.d.ts +31 -0
  448. package/dist/utils/plainDate.d.ts.map +1 -1
  449. package/dist/utils/plainDate.js +68 -4
  450. package/dist/utils/pressFeedback.d.ts.map +1 -1
  451. package/dist/utils/pressFeedback.js +20 -6
  452. package/dist/utils/triggerFocus.d.ts +36 -0
  453. package/dist/utils/triggerFocus.d.ts.map +1 -0
  454. package/dist/utils/triggerFocus.js +65 -0
  455. package/locales/en.json +120 -0
  456. package/locales/pseudo.json +90 -0
  457. package/package.json +14 -9
  458. package/src/AlertDialog/AlertDialog.doc.mjs +2 -2
  459. package/src/AlertDialog/AlertDialog.tsx +46 -5
  460. package/src/AppShell/AppShell.tsx +13 -4
  461. package/src/BottomSheet/BottomSheet.tsx +1 -0
  462. package/src/BottomSheet/BottomSheetPanel.tsx +39 -3
  463. package/src/BottomSheet/BottomSheetSwitcher.tsx +5 -0
  464. package/src/BottomSheet/useMobileKeyboard.ts +4 -0
  465. package/src/BottomSheet/useSheetGestures.ts +10 -1
  466. package/src/Button/Button.tsx +26 -4
  467. package/src/Calendar/Calendar.tsx +40 -32
  468. package/src/Calendar/getWeekdayHeaderNames.ts +88 -0
  469. package/src/Calendar/hooks/useCalendarDays.ts +5 -10
  470. package/src/Calendar/{standaloneShortWeekdayNames.generated.ts → weekdayHeaderNames.generated.ts} +14 -14
  471. package/src/Carousel/Carousel.tsx +1 -0
  472. package/src/Chat/ChatComposerInput.tsx +4 -7
  473. package/src/Chat/ChatMessageList.tsx +2 -1
  474. package/src/Chat/useChatDictation.ts +1 -0
  475. package/src/Chat/useChatNewMessages.ts +1 -1
  476. package/src/Chat/useChatStreamScroll.ts +2 -0
  477. package/src/Chat/useSpeechRecognition.ts +2 -0
  478. package/src/Chat/useTriggerMenu.tsx +1 -1
  479. package/src/CheckboxInput/CheckboxInput.doc.mjs +18 -0
  480. package/src/CheckboxInput/CheckboxInput.tsx +38 -15
  481. package/src/CheckboxList/CheckboxList.doc.mjs +7 -0
  482. package/src/CheckboxList/CheckboxList.tsx +9 -0
  483. package/src/CodeBlock/CodeBlock.doc.mjs +9 -1
  484. package/src/CodeBlock/CodeBlock.tsx +41 -4
  485. package/src/CommandPalette/CommandPalette.tsx +1 -0
  486. package/src/CommandPalette/CommandPaletteItem.tsx +1 -0
  487. package/src/ComplexSelector/ComplexSelector.tsx +20 -5
  488. package/src/ContextMenu/ContextMenu.tsx +2 -2
  489. package/src/DateInput/MonthScroller.tsx +8 -2
  490. package/src/DateInput/PickerWheel.tsx +765 -0
  491. package/src/DateInput/TouchDateField.tsx +6 -32
  492. package/src/DateInput/Wheel.tsx +94 -150
  493. package/src/DateInput/useOwnScrollGesture.ts +25 -3
  494. package/src/DateInput/usePointerDragScroll.ts +1 -0
  495. package/src/DateInput/useScrollSettle.ts +2 -0
  496. package/src/DateInput/useWheelListbox.ts +112 -0
  497. package/src/DateInput/wheelOptions.ts +155 -0
  498. package/src/DateInput/wheelPhysics.ts +406 -0
  499. package/src/DateInput/wheelStrip.ts +341 -0
  500. package/src/DateTimeInput/TouchDateTimeField.tsx +8 -13
  501. package/src/Dialog/Dialog.tsx +12 -32
  502. package/src/Drawer/useDrawerDialogPresence.ts +2 -0
  503. package/src/DropdownMenu/useMenuOverflow.ts +3 -0
  504. package/src/Field/Field.tsx +2 -2
  505. package/src/FieldStatus/useFieldStatusAnnouncement.ts +1 -0
  506. package/src/FormLayout/FormLayout.doc.mjs +181 -46
  507. package/src/FormLayout/FormLayout.tsx +5 -1
  508. package/src/HoverCard/HoverCard.doc.mjs +10 -8
  509. package/src/HoverCard/HoverCard.tsx +58 -6
  510. package/src/HoverCard/useHoverCard.doc.mjs +178 -36
  511. package/src/HoverCard/useHoverCard.tsx +49 -54
  512. package/src/Icon/Icon.doc.mjs +51 -10
  513. package/src/Icon/Icon.tsx +15 -7
  514. package/src/IconButton/IconButton.doc.mjs +141 -21
  515. package/src/InfoTip/InfoTip.tsx +72 -16
  516. package/src/Item/useSwipeAction.ts +2 -0
  517. package/src/Layer/modalOutlet.ts +2 -0
  518. package/src/Layer/outsidePress.ts +1 -0
  519. package/src/Layer/useLayer.tsx +3 -1
  520. package/src/Layer/useLayerDismissal.ts +2 -0
  521. package/src/Layer/useTouchTrigger.ts +19 -6
  522. package/src/Layout/index.ts +1 -1
  523. package/src/Layout/layoutReset.ts +1 -1
  524. package/src/Layout/overlayPaddingReset.stylex.ts +73 -0
  525. package/src/Layout/padding.stylex.ts +9 -133
  526. package/src/Layout/paddingStyles.stylex.ts +87 -0
  527. package/src/Lightbox/Lightbox.tsx +20 -1
  528. package/src/Lightbox/useLightbox.doc.mjs +167 -0
  529. package/src/MobileNav/MobileNav.tsx +10 -31
  530. package/src/MultiSelector/MultiSelector.tsx +2 -7
  531. package/src/NumberInput/NumberInput.tsx +2 -7
  532. package/src/Outline/useOutlineFromDOM.ts +2 -0
  533. package/src/Outline/useScrollSpy.ts +2 -0
  534. package/src/OverflowList/OverflowList.tsx +2 -0
  535. package/src/Popover/Popover.tsx +4 -0
  536. package/src/Popover/usePopover.tsx +2 -2
  537. package/src/PowerSearch/PowerSearch.doc.mjs +60 -8
  538. package/src/PowerSearch/PowerSearch.tsx +620 -157
  539. package/src/PowerSearch/PowerSearchBottomSheet.tsx +2525 -0
  540. package/src/PowerSearch/PowerSearchEditPopover.tsx +65 -9
  541. package/src/PowerSearch/PowerSearchFilterEditor.tsx +2 -0
  542. package/src/PowerSearch/PowerSearchToken.tsx +2 -0
  543. package/src/PowerSearch/PowerSearchValueEditor.tsx +340 -59
  544. package/src/PowerSearch/formatFilterValue.ts +49 -27
  545. package/src/PowerSearch/formatTokenValue.ts +220 -0
  546. package/src/PowerSearch/index.ts +5 -1
  547. package/src/PowerSearch/powerSearchDateZone.ts +95 -0
  548. package/src/PowerSearch/powerSearchSheetUtils.ts +224 -0
  549. package/src/PowerSearch/types.ts +8 -1
  550. package/src/ProgressBar/ProgressBarTouch.ts +2 -0
  551. package/src/RadioList/RadioList.tsx +3 -2
  552. package/src/RadioList/RadioListItem.tsx +5 -3
  553. package/src/Resizable/Resizable.doc.mjs +5 -4
  554. package/src/Resizable/ResizeHandle.tsx +169 -109
  555. package/src/Resizable/createResizable.ts +831 -0
  556. package/src/Resizable/useResizable.ts +292 -623
  557. package/src/SegmentedControl/useSegmentedSelectionMotion.ts +6 -3
  558. package/src/SelectableCard/SelectableCard.tsx +39 -10
  559. package/src/SelectableCard/selectableCardInput.ts +30 -0
  560. package/src/Selector/Selector.tsx +7 -19
  561. package/src/SideNav/SideNav.tsx +41 -5
  562. package/src/Slider/Slider.tsx +20 -11
  563. package/src/Slider/sliderTouchController.ts +2 -2
  564. package/src/Spinner/Spinner.tsx +77 -63
  565. package/src/Stepper/Stepper.tsx +10 -27
  566. package/src/Switch/Switch.tsx +2 -6
  567. package/src/Switch/useSwitchTouch.ts +4 -4
  568. package/src/Table/BaseTable.tsx +46 -12
  569. package/src/Table/plugins/columnResize/useTableColumnResize.tsx +2 -1
  570. package/src/Table/plugins/filtering/useTableFiltering.tsx +1 -0
  571. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +4 -0
  572. package/src/Table/plugins/stickyColumns/useTableStickyColumns.tsx +2 -0
  573. package/src/TextArea/TextArea.tsx +2 -7
  574. package/src/TextInput/TextInput.tsx +13 -17
  575. package/src/TimeInput/TimeInput.tsx +2 -0
  576. package/src/TimeInput/TouchTimeField.tsx +2 -0
  577. package/src/Timer/Timer.tsx +1 -0
  578. package/src/Timestamp/Timestamp.tsx +1 -1
  579. package/src/Timestamp/formatInstant.ts +1 -33
  580. package/src/Toast/Toast.doc.mjs +4 -3
  581. package/src/Toast/Toast.tsx +52 -32
  582. package/src/Toast/ToastViewport.tsx +123 -35
  583. package/src/Toast/types.ts +9 -3
  584. package/src/Toast/useToast.tsx +1 -0
  585. package/src/Tokenizer/Tokenizer.doc.mjs +10 -10
  586. package/src/Tokenizer/Tokenizer.tsx +61 -62
  587. package/src/Tokenizer/TokenizerBottomSheet.tsx +9 -11
  588. package/src/Tokenizer/index.ts +1 -0
  589. package/src/Tooltip/Tooltip.tsx +6 -42
  590. package/src/Tooltip/useTooltip.doc.mjs +24 -0
  591. package/src/Tooltip/useTooltip.tsx +237 -134
  592. package/src/Typeahead/BaseTypeahead.tsx +27 -17
  593. package/src/Typeahead/TypeaheadItem.doc.mjs +6 -3
  594. package/src/Typeahead/TypeaheadItem.tsx +2 -1
  595. package/src/animator/createAnimator.doc.mjs +153 -0
  596. package/src/animator/createAnimator.ts +324 -0
  597. package/src/gestures/GestureHost.ts +1 -1
  598. package/src/gestures/PressTracker.ts +4 -3
  599. package/src/gestures/README.md +10 -4
  600. package/src/hooks/ModalAnnounceProvider.tsx +1 -0
  601. package/src/hooks/actionGroupTracker.ts +20 -5
  602. package/src/hooks/index.ts +2 -0
  603. package/src/hooks/longPressDetector.ts +273 -0
  604. package/src/hooks/pressGroupContext.ts +21 -0
  605. package/src/hooks/rootScrollStyles.ts +247 -0
  606. package/src/hooks/scrollLockTouchGuard.ts +149 -0
  607. package/src/hooks/scrollbarGutter.ts +41 -26
  608. package/src/hooks/useActionGroupTracking.ts +224 -0
  609. package/src/hooks/useAnimator.doc.mjs +109 -0
  610. package/src/hooks/useAnimator.ts +67 -0
  611. package/src/hooks/useAnnounceRenderedText.ts +1 -0
  612. package/src/hooks/useAttachment.ts +1 -1
  613. package/src/hooks/useAutoMediaMode.ts +1 -0
  614. package/src/hooks/useBusyAnnouncement.ts +2 -0
  615. package/src/hooks/useDevWarning.ts +2 -0
  616. package/src/hooks/useFocusTrap.ts +2 -0
  617. package/src/hooks/useGridFocus.doc.mjs +6 -6
  618. package/src/hooks/useGridFocus.ts +10 -7
  619. package/src/hooks/useHotkeys.ts +2 -0
  620. package/src/hooks/useImageMode.ts +2 -0
  621. package/src/hooks/useInputStatusIcon.tsx +3 -2
  622. package/src/hooks/useKeyboardHint.tsx +1 -1
  623. package/src/hooks/useLongPress.doc.mjs +2 -2
  624. package/src/hooks/useLongPress.ts +32 -122
  625. package/src/hooks/useMenuHover.ts +1 -0
  626. package/src/hooks/useMenuPress.ts +2 -0
  627. package/src/hooks/useOverflow.ts +2 -1
  628. package/src/hooks/usePressFeedback.ts +1 -0
  629. package/src/hooks/useResolvedRequired.ts +3 -0
  630. package/src/hooks/useScrollLock.doc.mjs +51 -12
  631. package/src/hooks/useScrollLock.ts +53 -60
  632. package/src/hooks/useScrollableArea.ts +4 -0
  633. package/src/hooks/useStreamingText.ts +2 -0
  634. package/src/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.ts +43 -0
  635. package/src/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.ts +6 -0
  636. package/src/i18n/generated-english/PowerSearch/formatTokenValue.generated.ts +15 -0
  637. package/src/i18n/generated-locales/en.generated.ts +41 -0
  638. package/src/i18n/generated-locales/pseudo.generated.ts +42 -0
  639. package/src/index.ts +13 -0
  640. package/src/internal/indicatorPress.stylex.ts +24 -0
  641. package/src/internal/selectable-card.ts +21 -0
  642. package/src/internal/sheetDraft.ts +2 -2
  643. package/src/motion/MEASUREMENTS.md +18 -0
  644. package/src/motion/README.md +10 -5
  645. package/src/motion/animatedLayout.ts +323 -60
  646. package/src/motion/animator.ts +66 -37
  647. package/src/motion/frameBlock.ts +16 -0
  648. package/src/motion/progress.ts +155 -0
  649. package/src/motion/reducedMotion.ts +3 -1
  650. package/src/motion/uikit/alert.ts +43 -0
  651. package/src/motion/uikit/index.ts +4 -3
  652. package/src/motion/uikit/picker.ts +116 -0
  653. package/src/privateAttributes/pressGroupItem.stylex.ts +44 -0
  654. package/src/privateAttributes/reducedMotion.stylex.ts +45 -0
  655. package/src/theme/Theme.tsx +37 -3
  656. package/src/theme/generateThemeRules.ts +14 -12
  657. package/src/theme/motionKnobs.ts +4 -3
  658. package/src/theme/themeMotion.ts +17 -2
  659. package/src/theme/tokens.stylex.ts +2 -0
  660. package/src/utils/dateParser.ts +16 -0
  661. package/src/utils/disabledInteraction.ts +23 -2
  662. package/src/utils/focusReturn.ts +38 -31
  663. package/src/utils/index.ts +1 -1
  664. package/src/utils/interactionModality.ts +4 -0
  665. package/src/utils/interactionOverlay.stylex.ts +3 -2
  666. package/src/utils/isFocusDetached.ts +34 -0
  667. package/src/utils/plainDate.ts +80 -4
  668. package/src/utils/pressFeedback.ts +24 -6
  669. package/src/utils/triggerFocus.ts +80 -0
  670. package/dist/Calendar/getStandaloneShortWeekdayNames.d.ts +0 -14
  671. package/dist/Calendar/getStandaloneShortWeekdayNames.d.ts.map +0 -1
  672. package/dist/Calendar/getStandaloneShortWeekdayNames.js +0 -26
  673. package/dist/Calendar/standaloneShortWeekdayNames.generated.d.ts.map +0 -1
  674. package/dist/Layer/usePressPin.d.ts +0 -93
  675. package/dist/Layer/usePressPin.d.ts.map +0 -1
  676. package/dist/Layer/usePressPin.js +0 -363
  677. package/dist/internal/touch-sheet.d.ts +0 -21
  678. package/dist/internal/touch-sheet.d.ts.map +0 -1
  679. package/dist/internal/touch-sheet.js +0 -19
  680. package/src/Calendar/getStandaloneShortWeekdayNames.ts +0 -38
  681. package/src/Layer/usePressPin.ts +0 -510
  682. package/src/internal/touch-sheet.ts +0 -21
@@ -517,6 +517,7 @@ function StandaloneBottomSheet({
517
517
  const stackViewRef = useRef(stackView);
518
518
  stackViewRef.current = stackView;
519
519
  const scrimWriteRef = useRef<BottomSheetScrimWrite>({frame: null});
520
+ // Releases the pending scrim write frame on unmount.
520
521
  useEffect(() => () => cancelScrimWrite(scrimWriteRef.current), []);
521
522
  const writeScrim = useCallback(
522
523
  (opacity: '0' | '1') =>
@@ -255,6 +255,10 @@ const styles = stylex.create({
255
255
  // surface behind the pill itself, fading out across the lower half so the
256
256
  // content emerging below has no visible cut line.
257
257
  backgroundImage: `linear-gradient(to bottom, ${colorVars['--color-background-surface']} 60%, transparent)`,
258
+ // WebKit can draw this bar under the scrolling body's own layer while the
259
+ // sheet's transform animates, so the pill vanishes until the sheet rests.
260
+ // A layer of its own keeps it above the body.
261
+ willChange: 'transform',
258
262
  // Drags are the handle's; a pinch still zooms the page (WCAG 1.4.4).
259
263
  touchAction: 'pinch-zoom',
260
264
  cursor: {
@@ -418,6 +422,7 @@ function waitForTransition(
418
422
 
419
423
  let done = false;
420
424
  let timer: ReturnType<typeof setTimeout> | null = null;
425
+ let backstopMs = 0;
421
426
  const finish = () => {
422
427
  if (done) {
423
428
  return;
@@ -431,9 +436,24 @@ function waitForTransition(
431
436
  complete();
432
437
  };
433
438
  const handleTransitionEnd = (event: TransitionEvent) => {
434
- if (event.target === element && event.propertyName === propertyName) {
435
- finish();
439
+ if (event.target !== element || event.propertyName !== propertyName) {
440
+ return;
441
+ }
442
+ // The engine cancels a transition whose end value changes mid-flight. A
443
+ // percentage transform does when the closing frame moves the height by a
444
+ // fraction of a pixel. A replacement runs on from where it was. That one
445
+ // ends the motion, not the cancel.
446
+ if (
447
+ event.type === 'transitioncancel' &&
448
+ hasRunningTransition(element, propertyName)
449
+ ) {
450
+ if (timer != null) {
451
+ clearTimeout(timer);
452
+ timer = setTimeout(finish, backstopMs);
453
+ }
454
+ return;
436
455
  }
456
+ finish();
437
457
  };
438
458
  element.addEventListener('transitionend', handleTransitionEnd);
439
459
  element.addEventListener('transitioncancel', handleTransitionEnd);
@@ -484,7 +504,8 @@ function waitForTransition(
484
504
  return () => {};
485
505
  }
486
506
 
487
- timer = setTimeout(finish, transitionMs + TRANSITION_BACKSTOP_BUFFER_MS);
507
+ backstopMs = transitionMs + TRANSITION_BACKSTOP_BUFFER_MS;
508
+ timer = setTimeout(finish, backstopMs);
488
509
  return () => {
489
510
  if (timer != null) {
490
511
  clearTimeout(timer);
@@ -494,6 +515,19 @@ function waitForTransition(
494
515
  };
495
516
  }
496
517
 
518
+ // Whether a CSS transition of `propertyName` still runs on `element`.
519
+ function hasRunningTransition(
520
+ element: HTMLElement,
521
+ propertyName: string,
522
+ ): boolean {
523
+ return (element.getAnimations?.() ?? []).some(
524
+ animation =>
525
+ (animation as Animation & {transitionProperty?: string})
526
+ .transitionProperty === propertyName &&
527
+ (animation.playState === 'running' || animation.playState === 'paused'),
528
+ );
529
+ }
530
+
497
531
  function parseTransitionTime(value: string): number | null {
498
532
  const normalizedValue = value.trim();
499
533
  if (!/^-?(?:\d+|\d*\.\d+)(?:ms|s)$/.test(normalizedValue)) {
@@ -676,6 +710,8 @@ export function BottomSheetPanel({
676
710
  const isCoarseCrossFade = useMediaQuery(REDUCED_MOTION_COARSE_QUERY);
677
711
  const isCrossFade =
678
712
  isCoarseCrossFade || (isReducedMotion && isDismissedByTouchDrag);
713
+ // Syncs the motion with the panel's CSS transition. The motion completes when
714
+ // that transition ends.
679
715
  useLayoutEffect(() => {
680
716
  if (motion == null) {
681
717
  return;
@@ -358,6 +358,7 @@ export function BottomSheetSwitcher({
358
358
  const stackViewRef = useRef(stackView);
359
359
  stackViewRef.current = stackView;
360
360
  const scrimWriteRef = useRef<BottomSheetScrimWrite>({frame: null});
361
+ // Releases the pending scrim write frame on unmount.
361
362
  useEffect(() => () => cancelScrimWrite(scrimWriteRef.current), []);
362
363
  // What the flow's place in the stack was when it left the registry: its
363
364
  // depth and the open sheet beneath it. React runs the registration
@@ -564,6 +565,9 @@ export function BottomSheetSwitcher({
564
565
  presentationCounterRef.current += 1;
565
566
  presentationOrderRef.current.set(sheetId, presentationCounterRef.current);
566
567
  }, []);
568
+ // Syncs document focus with the flow's visibility. When the flow hides, focus
569
+ // goes to the opener, to the sheet now on top, or to the target of the
570
+ // registry.
567
571
  useLayoutEffect(() => {
568
572
  if (isFlowVisible) {
569
573
  if (!hasScrim) {
@@ -694,6 +698,7 @@ export function BottomSheetSwitcher({
694
698
  unregister();
695
699
  };
696
700
  }, [hasScrim, isFlowVisible, onBeforeSheetPresent]);
701
+ // Syncs the open state of this flow in the sheet stack registry.
697
702
  useLayoutEffect(() => {
698
703
  if (isFlowVisible && hasScrim) {
699
704
  setBottomSheetOpen(stackKeyRef.current, isFlowOpen);
@@ -148,6 +148,8 @@ export function useMobileKeyboard({
148
148
  }
149
149
  }, [isEnabled, isSheetTraveling, sheetRef]);
150
150
 
151
+ // Syncs the on-screen keyboard with the sheet. When a presented sheet closes,
152
+ // the focused field blurs, so the keyboard closes.
151
153
  useEffect(() => {
152
154
  if (!isEnabled || !isPresented || isOpen) {
153
155
  return;
@@ -165,6 +167,8 @@ export function useMobileKeyboard({
165
167
  }
166
168
  }, [isEnabled, isOpen, isPresented, sheetRef]);
167
169
 
170
+ // Syncs the body's end inset with the visual viewport, so the on-screen
171
+ // keyboard does not cover the body.
168
172
  useEffect(() => {
169
173
  const body = bodyRef.current;
170
174
  const sheet = sheetRef.current;
@@ -699,6 +699,8 @@ export function useSheetGestures({
699
699
  const sheetElRef = useRef<HTMLElement | null>(null);
700
700
  const bodyNodeRef = useRef<HTMLElement | null>(null);
701
701
  const observerRef = useRef<ResizeObserver | null>(null);
702
+ // Syncs the browser layout with the transform reset, then ends the
703
+ // scroll-area reconcile one frame later.
702
704
  useLayoutEffect(() => {
703
705
  if (!isScrollAreaReconciling) {
704
706
  return;
@@ -738,7 +740,9 @@ export function useSheetGestures({
738
740
  }
739
741
  return;
740
742
  }
741
- recordSheetHeight(node.getBoundingClientRect().height);
743
+ // No measure here: reading the height while the sheet mounts forces a
744
+ // layout in the middle of the open. The observer's first report comes
745
+ // after the browser's own layout, before the first paint.
742
746
  const ro = new ResizeObserver(entries => {
743
747
  const entry = entries[0];
744
748
  if (entry) {
@@ -756,6 +760,7 @@ export function useSheetGestures({
756
760
  },
757
761
  [recordSheetHeight],
758
762
  );
763
+ // Releases the height observer on unmount.
759
764
  useEffect(() => () => observerRef.current?.disconnect(), []);
760
765
 
761
766
  // Reset to the tallest detent each time the sheet re-opens.
@@ -907,6 +912,8 @@ export function useSheetGestures({
907
912
  resolveDetents,
908
913
  ]);
909
914
 
915
+ // Syncs window resize and orientation listeners with `isOpen`. Each event
916
+ // anchors the sheet to its settled detent again.
910
917
  useEffect(() => {
911
918
  if (!isOpen || typeof window === 'undefined') {
912
919
  return;
@@ -1024,6 +1031,8 @@ export function useSheetGestures({
1024
1031
  [prepareScrollAreaSettle, resolveDetents],
1025
1032
  );
1026
1033
 
1034
+ // Syncs window blur and document visibilitychange listeners with `isOpen`. A
1035
+ // blur or a hidden page cancels a drag.
1027
1036
  useEffect(() => {
1028
1037
  // Only an open sheet can be dragged; a closed one listens to nothing.
1029
1038
  if (!isOpen) {
@@ -53,6 +53,7 @@ import {iconBoxSizeStyles, type IconSize} from '../Icon/IconSize.stylex';
53
53
  import {EDGE_COMP_ATTR} from '../Layout/edgeCompensation.stylex';
54
54
  import {useSize} from '../SizeContext/SizeContext';
55
55
  import {useButtonGroup} from '../ButtonGroup/ButtonGroupContext';
56
+ import {PressGroupContext} from '../hooks/pressGroupContext';
56
57
  import {useInputGroup} from '../InputGroup/InputGroupContext';
57
58
  import {InputGroupInternalContext} from '../InputGroup/InputGroupInternalContext';
58
59
  import {
@@ -77,6 +78,12 @@ import {isRenderable} from '../utils/isRenderable';
77
78
 
78
79
  registerEnglishFallback(english);
79
80
 
81
+ /**
82
+ * Written by the press controller or a group's tracker while a press is
83
+ * believed. Typed `string`, so StyleX reads it as a computed key.
84
+ */
85
+ const PRESSED_ON: string = '[data-astryx-press="on"]';
86
+
80
87
  /**
81
88
  * Base button styles
82
89
  * Pseudo-classes are nested within properties per StyleX recommendation:
@@ -138,7 +145,19 @@ const styles = stylex.create({
138
145
  default: 'scale(0.98)',
139
146
  '@media (pointer: coarse)': 'scale(1)',
140
147
  },
141
- '[data-astryx-press="on"]': 'scale(0.98)',
148
+ [PRESSED_ON]: 'scale(0.98)',
149
+ },
150
+ },
151
+ // A tracked action's own `:active` image paints nothing: the tracker paints
152
+ // the action under the pointer, which need not be the one pressed first.
153
+ trackedOverlay: {
154
+ backgroundSize: {default: null, [`:active:not(${PRESSED_ON})`]: '0 0'},
155
+ },
156
+ // A tracked action's press is painted by its group's tracker alone.
157
+ pressableTracked: {
158
+ transform: {
159
+ default: 'scale(1)',
160
+ [PRESSED_ON]: 'scale(0.98)',
142
161
  },
143
162
  },
144
163
  inactive: {
@@ -147,7 +166,7 @@ const styles = stylex.create({
147
166
  transform: {
148
167
  default: 'none',
149
168
  ':active': 'none',
150
- '[data-astryx-press="on"]': 'none',
169
+ [PRESSED_ON]: 'none',
151
170
  },
152
171
  },
153
172
  disabled: {
@@ -160,7 +179,7 @@ const styles = stylex.create({
160
179
  backgroundImage: {
161
180
  default: 'none',
162
181
  ':active': 'none',
163
- '[data-astryx-press="on"]': 'none',
182
+ [PRESSED_ON]: 'none',
164
183
  },
165
184
  },
166
185
  iconOnly: {
@@ -632,6 +651,7 @@ export function Button({
632
651
  const t = useComponentTranslator();
633
652
  const size = useSize(sizeProp, 'md');
634
653
  const buttonGroup = useButtonGroup();
654
+ const isGroupTracked = use(PressGroupContext);
635
655
  const inputGroup = useInputGroup();
636
656
 
637
657
  const [isPending, startTransition] = useTransition();
@@ -760,11 +780,13 @@ export function Button({
760
780
  sizeStyles[size],
761
781
  isIconOnly && styles.iconOnly,
762
782
  interactionOverlayStyles.backgroundImage,
783
+ isGroupTracked && styles.trackedOverlay,
763
784
  buttonDisabled && styles.inactive,
764
785
  isTrueDisabled && styles.disabled,
765
786
  useAriaDisabled && styles.ariaDisabled,
766
787
  renderAsLink && styles.link,
767
- !buttonGroup && styles.pressable,
788
+ !buttonGroup &&
789
+ (isGroupTracked ? styles.pressableTracked : styles.pressable),
768
790
  buttonGroup &&
769
791
  (buttonGroup.orientation === 'horizontal'
770
792
  ? groupStyles.horizontal
@@ -61,12 +61,16 @@ import {
61
61
  plainDateWeekFieldName,
62
62
  DATE_FORMAT_WITH_WEEKDAY,
63
63
  } from '../utils/plainDate';
64
- import {plainDateFormatStandaloneMonthYear} from '../utils/plainDate';
64
+ import {
65
+ plainDateFormatDayNumber,
66
+ plainDateFormatStandaloneMonthYear,
67
+ } from '../utils/plainDate';
65
68
  import {mergeProps, composeEventHandlers, rtlStyles} from '../utils';
66
69
  import {focusOutlineProps} from '../utils/focusOutline.stylex';
67
70
  import {interactionOverlayStyles} from '../utils/interactionOverlay.stylex';
68
71
  import {usePressFeedback} from '../hooks/usePressFeedback';
69
72
  import {getInitialFocusDate} from './getInitialFocusDate';
73
+ import {getWeekdayHeaders} from './getWeekdayHeaderNames';
70
74
  import {
71
75
  computeDayCellState,
72
76
  computeRangeRounding,
@@ -104,8 +108,8 @@ import english from '../i18n/generated-english/Calendar/Calendar.generated';
104
108
 
105
109
  registerEnglishFallback(english);
106
110
 
107
- /** How a month navigation moves the focused day: by its row offset in days, or by whole months. */
108
- type NavigationUnit = 'days' | 'months';
111
+ /** How a month navigation moves the focused day: by its row offset in days, or by whole months or years. */
112
+ type NavigationUnit = 'days' | 'months' | 'years';
109
113
 
110
114
  /** Imperative handle for Calendar handleRef */
111
115
  export interface CalendarHandle {
@@ -518,13 +522,14 @@ export function Calendar({ref, ...props}: CalendarProps) {
518
522
  !(minDateForKeys && plainDateIsBefore(pd, minDateForKeys)) &&
519
523
  !(maxDateForKeys && plainDateIsAfter(pd, maxDateForKeys));
520
524
  let targetPd: PlainDate;
521
- if (unit === 'months') {
522
- // A page targets the same day of the month a month away (clamped to
523
- // that month's length). Past `min`/`max` nothing moves; a month with
524
- // no enabled day is no destination either, the same as an arrow with
525
- // no enabled day in its direction; a target disabled by a constraint
526
- // lands on that month's first enabled day instead.
527
- const candidate = plainDateAddMonths(currentPd, delta);
525
+ if (unit === 'months' || unit === 'years') {
526
+ // A page or a year step keeps the day of the month and clamps it to the
527
+ // target month's length. A month with no enabled day is no target, the
528
+ // same as for an arrow.
529
+ const candidate = plainDateAddMonths(
530
+ currentPd,
531
+ unit === 'years' ? delta * 12 : delta,
532
+ );
528
533
  if (!inRange(candidate)) {
529
534
  return;
530
535
  }
@@ -851,19 +856,15 @@ function MonthGrid({
851
856
  const year = month.year;
852
857
 
853
858
  // Use hooks for days generation and constraints
854
- const {days, weeks, dayNames} = useCalendarDays({
859
+ const {days, weeks} = useCalendarDays({
855
860
  year,
856
861
  month: month.month,
857
862
  weekStartsOn,
858
863
  hasVariableRowCount,
859
864
  });
860
865
  const dayNameHeaders = useMemo(
861
- () =>
862
- dayNames.map((name, offset) => ({
863
- dayOfWeek: ((weekStartsOn + offset) % 7) as DayOfWeek,
864
- name,
865
- })),
866
- [dayNames, weekStartsOn],
866
+ () => getWeekdayHeaders(locale, weekStartsOn),
867
+ [locale, weekStartsOn],
867
868
  );
868
869
 
869
870
  const rangeAnchor = useMemo(
@@ -961,20 +962,27 @@ function MonthGrid({
961
962
  [getFocusedDate, onNavigateNext],
962
963
  );
963
964
 
964
- // Handle PageUp/PageDown
965
- const handlePageUp = useCallback(() => {
966
- const focusedDate = getFocusedDate();
967
- if (focusedDate) {
968
- onNavigatePrevious?.(focusedDate, 1, 'months');
969
- }
970
- }, [getFocusedDate, onNavigatePrevious]);
965
+ // PageUp/PageDown move by a month, and with Shift by a year (APG date
966
+ // picker dialog).
967
+ const handlePageUp = useCallback(
968
+ (e: React.KeyboardEvent) => {
969
+ const focusedDate = getFocusedDate();
970
+ if (focusedDate) {
971
+ onNavigatePrevious?.(focusedDate, 1, e.shiftKey ? 'years' : 'months');
972
+ }
973
+ },
974
+ [getFocusedDate, onNavigatePrevious],
975
+ );
971
976
 
972
- const handlePageDown = useCallback(() => {
973
- const focusedDate = getFocusedDate();
974
- if (focusedDate) {
975
- onNavigateNext?.(focusedDate, 1, 'months');
976
- }
977
- }, [getFocusedDate, onNavigateNext]);
977
+ const handlePageDown = useCallback(
978
+ (e: React.KeyboardEvent) => {
979
+ const focusedDate = getFocusedDate();
980
+ if (focusedDate) {
981
+ onNavigateNext?.(focusedDate, 1, e.shiftKey ? 'years' : 'months');
982
+ }
983
+ },
984
+ [getFocusedDate, onNavigateNext],
985
+ );
978
986
 
979
987
  // Grid focus navigation.
980
988
  //
@@ -1155,7 +1163,7 @@ function MonthGrid({
1155
1163
  <div
1156
1164
  role="rowheader"
1157
1165
  {...stylex.props(monthGridStyles.weekNumber)}>
1158
- {weekNum}
1166
+ {plainDateFormatDayNumber(weekNum, locale)}
1159
1167
  </div>
1160
1168
  )}
1161
1169
  {week.map((day, dayIndex) => {
@@ -1422,7 +1430,7 @@ function DayCell({
1422
1430
  state.effectivelyDisabled && dayCellTheme.dayDisabled,
1423
1431
  ),
1424
1432
  )}>
1425
- {dayNumber}
1433
+ {plainDateFormatDayNumber(dayNumber, locale)}
1426
1434
  </button>
1427
1435
  </div>
1428
1436
  );
@@ -0,0 +1,88 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file getWeekdayHeaderNames.ts
5
+ * @input Generated CLDR weekday header table and the shared date formatter
6
+ * @output Private resolver for one locale's weekday header row
7
+ * @position Package-internal pure utility for the Calendar grid and the
8
+ * DateInput and DateTimeInput bottom sheets; not exported from the package
9
+ */
10
+
11
+ import {characterCount} from '../utils/characters';
12
+ import type {DayOfWeek} from '../utils/dateTypes';
13
+ import {plainDateWeekdayNames} from '../utils/plainDate';
14
+ import {
15
+ weekdayHeaderNamesByLocale,
16
+ type WeekdayHeaderNames,
17
+ } from './weekdayHeaderNames.generated';
18
+
19
+ const weekdayNamesByLocale: Readonly<Record<string, WeekdayHeaderNames>> =
20
+ weekdayHeaderNamesByLocale;
21
+ const englishWeekdayNames = weekdayNamesByLocale.en;
22
+
23
+ /** The longest abbreviated name a header row takes; the generator uses the same. */
24
+ export const MAX_ABBREVIATED_HEADER_LENGTH = 4;
25
+
26
+ function fitsHeader(names: ReadonlyArray<string>): boolean {
27
+ return names.every(
28
+ name => characterCount(name) <= MAX_ABBREVIATED_HEADER_LENGTH,
29
+ );
30
+ }
31
+
32
+ /**
33
+ * A language with no generated row keeps its own words. `Intl` has no CLDR
34
+ * short width, so names too long for the column fall to the narrow width.
35
+ */
36
+ function sundayFirstNames(locale: string): ReadonlyArray<string> {
37
+ let parsed: Intl.Locale;
38
+ try {
39
+ parsed = new Intl.Locale(locale);
40
+ } catch {
41
+ return englishWeekdayNames;
42
+ }
43
+ const generated =
44
+ weekdayNamesByLocale[parsed.baseName] ??
45
+ weekdayNamesByLocale[parsed.language];
46
+ if (generated != null) {
47
+ return generated;
48
+ }
49
+ const abbreviated = plainDateWeekdayNames(parsed.baseName);
50
+ if (abbreviated == null) {
51
+ return englishWeekdayNames;
52
+ }
53
+ if (fitsHeader(abbreviated)) {
54
+ return abbreviated;
55
+ }
56
+ return (
57
+ plainDateWeekdayNames(parsed.baseName, 'narrow') ?? englishWeekdayNames
58
+ );
59
+ }
60
+
61
+ /** One weekday header cell: its day of week (a stable key, since narrow names repeat) and its name. */
62
+ export interface WeekdayHeader {
63
+ dayOfWeek: DayOfWeek;
64
+ name: string;
65
+ }
66
+
67
+ /**
68
+ * The seven weekday headers for a locale, in column order for the week that
69
+ * starts on `weekStartsOn`. Unicode extensions are ignored.
70
+ */
71
+ export function getWeekdayHeaders(
72
+ locale: string,
73
+ weekStartsOn: DayOfWeek = 0,
74
+ ): WeekdayHeader[] {
75
+ const names = sundayFirstNames(locale);
76
+ return Array.from({length: 7}, (_, offset) => {
77
+ const dayOfWeek = ((weekStartsOn + offset) % 7) as DayOfWeek;
78
+ return {dayOfWeek, name: names[dayOfWeek]};
79
+ });
80
+ }
81
+
82
+ /** The names alone, in the same order as `getWeekdayHeaders`. */
83
+ export function getWeekdayHeaderNames(
84
+ locale: string,
85
+ weekStartsOn: DayOfWeek = 0,
86
+ ): string[] {
87
+ return getWeekdayHeaders(locale, weekStartsOn).map(header => header.name);
88
+ }
@@ -22,7 +22,7 @@ import {
22
22
  plainDateAddDays,
23
23
  } from '../../utils/plainDate';
24
24
  import {useLocale} from '../../i18n';
25
- import {getStandaloneShortWeekdayNames} from '../getStandaloneShortWeekdayNames';
25
+ import {getWeekdayHeaderNames} from '../getWeekdayHeaderNames';
26
26
 
27
27
  /**
28
28
  * Represents a single day in the calendar grid.
@@ -111,15 +111,10 @@ export function useCalendarDays(
111
111
  };
112
112
  }, [year, month, weekStartsOn, hasVariableRowCount]);
113
113
 
114
- // Generated strings avoid Date anchors, so weekday headers cannot shift with
115
- // the runtime timezone. Keep numeric indices as the rotation source of truth.
116
- const dayNames = useMemo(() => {
117
- const names = getStandaloneShortWeekdayNames(locale);
118
- return Array.from(
119
- {length: 7},
120
- (_, index) => names[(index + weekStartsOn) % 7],
121
- );
122
- }, [locale, weekStartsOn]);
114
+ const dayNames = useMemo(
115
+ () => getWeekdayHeaderNames(locale, weekStartsOn),
116
+ [locale, weekStartsOn],
117
+ );
123
118
 
124
119
  // Generate days array
125
120
  const days = useMemo(() => {
@@ -5,7 +5,7 @@
5
5
  * Do not edit by hand. Run `pnpm generate:cldr-weekdays` instead.
6
6
  */
7
7
 
8
- export type StandaloneShortWeekdayNames = readonly [
8
+ export type WeekdayHeaderNames = readonly [
9
9
  string,
10
10
  string,
11
11
  string,
@@ -15,36 +15,36 @@ export type StandaloneShortWeekdayNames = readonly [
15
15
  string,
16
16
  ];
17
17
 
18
- export const standaloneShortWeekdayNamesByLocale = {
18
+ export const weekdayHeaderNamesByLocale = {
19
19
  af: ['So.', 'Ma.', 'Di.', 'Wo.', 'Do.', 'Vr.', 'Sa.'],
20
20
  ar: ['أحد', 'إثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],
21
21
  'ar-SA': ['أحد', 'إثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],
22
22
  ca: ['dg.', 'dl.', 'dt.', 'dc.', 'dj.', 'dv.', 'ds.'],
23
23
  cs: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],
24
24
  da: ['sø.', 'ma.', 'ti.', 'on.', 'to.', 'fr.', 'lø.'],
25
- de: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],
26
- el: ['Κυ', 'Δε', 'Τρ', 'Τε', 'Πέ', 'Πα', 'Σά'],
27
- en: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
28
- es: ['DO', 'LU', 'MA', 'MI', 'JU', 'VI', 'SA'],
25
+ de: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
26
+ el: ['Κυρ', 'Δευ', 'Τρί', 'Τετ', 'Πέμ', 'Παρ', 'Σάβ'],
27
+ en: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
28
+ es: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'],
29
29
  fi: ['su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'],
30
- fr: ['di', 'lu', 'ma', 'me', 'je', 've', 'sa'],
30
+ fr: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],
31
31
  he: ['א׳', 'ב׳', 'ג׳', 'ד׳', 'ה׳', 'ו׳', 'ש׳'],
32
32
  hu: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],
33
33
  it: ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'],
34
34
  ja: ['日', '月', '火', '水', '木', '金', '土'],
35
35
  ko: ['일', '월', '화', '수', '목', '금', '토'],
36
36
  nl: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
37
- no: ['sø.', 'ma.', 'ti.', 'on.', 'to.', 'fr.', 'lø.'],
37
+ no: ['søn.', 'man.', 'tir.', 'ons.', 'tor.', 'fre.', 'lør.'],
38
38
  pl: ['nie', 'pon', 'wto', 'śro', 'czw', 'pią', 'sob'],
39
39
  pt: ['dom.', 'seg.', 'ter.', 'qua.', 'qui.', 'sex.', 'sáb.'],
40
40
  'pt-PT': ['dom.', 'seg.', 'ter.', 'qua.', 'qui.', 'sex.', 'sáb.'],
41
- ro: ['du.', 'lu.', 'ma.', 'mi.', 'joi', 'vi.', 'sâ.'],
41
+ ro: ['dum.', 'lun.', 'mar.', 'mie.', 'joi', 'vin.', 'sâm.'],
42
42
  ru: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],
43
- sr: ['не', 'по', 'ут', 'ср', 'че', 'пе', 'су'],
44
- sv: ['sö', 'må', 'ti', 'on', 'to', 'fr', 'lö'],
45
- tr: ['Pa', 'Pt', 'Sa', 'Ça', 'Pe', 'Cu', 'Ct'],
43
+ sr: ['нед', 'пон', 'уто', 'сре', 'чет', 'пет', 'суб'],
44
+ sv: ['sön', 'mån', 'tis', 'ons', 'tors', 'fre', 'lör'],
45
+ tr: ['Paz', 'Pzt', 'Sal', 'Çar', 'Per', 'Cum', 'Cmt'],
46
46
  uk: ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],
47
47
  vi: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
48
48
  zh: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
49
- 'zh-TW': ['日', '一', '二', '三', '四', '五', '六'],
50
- } as const satisfies Readonly<Record<string, StandaloneShortWeekdayNames>>;
49
+ 'zh-TW': ['週日', '週一', '週二', '週三', '週四', '週五', '週六'],
50
+ } as const satisfies Readonly<Record<string, WeekdayHeaderNames>>;
@@ -369,6 +369,7 @@ export function Carousel({
369
369
  lightDismiss: false,
370
370
  });
371
371
 
372
+ // Syncs the layer with `hasButtons`.
372
373
  useEffect(() => {
373
374
  if (hasButtons) {
374
375
  layer.show();
@@ -68,6 +68,7 @@ import {
68
68
  import {Badge, type BadgeProps} from '../Badge';
69
69
  import {useChatComposerContext} from './ChatContext';
70
70
  import {themeProps} from '../utils/themeProps';
71
+ import {withholdCallerHandlers} from '../utils/disabledInteraction';
71
72
  import type {EnterKeyHint} from '../Field/textEntryTraits';
72
73
  import {
73
74
  registerEnglishFallback,
@@ -390,13 +391,7 @@ export function ChatComposerInput(props: ChatComposerInputProps) {
390
391
  } = props;
391
392
  // Keep focus/blur observation available, but do not forward activation or
392
393
  // editing callbacks from the disabled root (including capture handlers).
393
- const rootProps = isDisabled
394
- ? Object.fromEntries(
395
- Object.entries(rest).filter(
396
- ([key]) => !/^on[A-Z]/.test(key) || /^on(Focus|Blur)/.test(key),
397
- ),
398
- )
399
- : rest;
394
+ const rootProps = withholdCallerHandlers(rest, isDisabled);
400
395
  const label = labelFromProps ?? t('@astryx.chat.composerInput.label');
401
396
  const placeholder =
402
397
  placeholderFromProps ??
@@ -529,6 +524,7 @@ export function ChatComposerInput(props: ChatComposerInputProps) {
529
524
  };
530
525
  }, [inputControlRef, focusEditableAtEnd]);
531
526
 
527
+ // Syncs the contentEditable DOM with the controlled `value`.
532
528
  useEffect(() => {
533
529
  if (controlledValue === undefined || !editableRef.current) {
534
530
  return;
@@ -650,6 +646,7 @@ export function ChatComposerInput(props: ChatComposerInputProps) {
650
646
  }
651
647
  : triggerMenu.ariaProps;
652
648
 
649
+ // Syncs the trigger menu's pending searches with `isDisabled`.
653
650
  useEffect(() => {
654
651
  if (isDisabled && triggerMenu.state.isActive) {
655
652
  // Reset also cancels pending searches, so late results cannot reopen
@@ -265,7 +265,8 @@ export function ChatMessageList({
265
265
  children !== false &&
266
266
  !(Array.isArray(children) && children.length === 0);
267
267
 
268
- // IntersectionObserver for scroll-to-top infinite scroll
268
+ // Syncs an IntersectionObserver on the top sentinel with `scrollToTopAction`.
269
+ // The action runs when the sentinel comes into view.
269
270
  useEffect(() => {
270
271
  const scrollContainer = layoutContext?.scrollContainerRef?.current;
271
272
  if (!scrollToTopAction || !sentinelRef.current) {
@@ -395,6 +395,7 @@ export function useChatDictation(
395
395
  [userTransform],
396
396
  );
397
397
 
398
+ // Releases the audio analyser and the animation frame on unmount.
398
399
  useEffect(() => {
399
400
  return () => {
400
401
  analyserRef.current?.cleanup();
@@ -121,7 +121,7 @@ export function useChatNewMessages({
121
121
  [attach, detach],
122
122
  );
123
123
 
124
- // Cleanup on unmount
124
+ // Releases the new-message tracking on unmount.
125
125
  useEffect(() => {
126
126
  return () => detach();
127
127
  }, [detach]);