@astryxdesign/core 0.7.7 → 0.7.8-canary.0588a13

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 (798) 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 +1 -1
  9. package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
  10. package/dist/BottomSheet/BottomSheetPanel.js +55 -18
  11. package/dist/BottomSheet/BottomSheetSwitcher.d.ts.map +1 -1
  12. package/dist/BottomSheet/BottomSheetSwitcher.js +5 -0
  13. package/dist/BottomSheet/bottomSheetStack.js +1 -1
  14. package/dist/BottomSheet/useSheetGestures.d.ts +3 -1
  15. package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
  16. package/dist/BottomSheet/useSheetGestures.js +16 -1
  17. package/dist/Button/Button.d.ts.map +1 -1
  18. package/dist/Button/Button.js +17 -1
  19. package/dist/Calendar/Calendar.d.ts.map +1 -1
  20. package/dist/Calendar/Calendar.js +18 -22
  21. package/dist/Calendar/getWeekdayHeaderNames.d.ts +16 -0
  22. package/dist/Calendar/getWeekdayHeaderNames.d.ts.map +1 -0
  23. package/dist/Calendar/getWeekdayHeaderNames.js +70 -0
  24. package/dist/Calendar/hooks/useCalendarDays.d.ts.map +1 -1
  25. package/dist/Calendar/hooks/useCalendarDays.js +2 -10
  26. package/dist/Calendar/{standaloneShortWeekdayNames.generated.d.ts → weekdayHeaderNames.generated.d.ts} +14 -14
  27. package/dist/Calendar/weekdayHeaderNames.generated.d.ts.map +1 -0
  28. package/dist/Calendar/{standaloneShortWeekdayNames.generated.js → weekdayHeaderNames.generated.js} +12 -12
  29. package/dist/Carousel/Carousel.d.ts.map +1 -1
  30. package/dist/Carousel/Carousel.js +2 -0
  31. package/dist/Chat/ChatComposerInput.d.ts.map +1 -1
  32. package/dist/Chat/ChatComposerInput.js +6 -1
  33. package/dist/Chat/ChatMessageList.d.ts.map +1 -1
  34. package/dist/Chat/ChatMessageList.js +2 -1
  35. package/dist/Chat/useChatDictation.d.ts.map +1 -1
  36. package/dist/Chat/useChatDictation.js +2 -0
  37. package/dist/Chat/useChatNewMessages.js +1 -1
  38. package/dist/Chat/useChatStreamScroll.d.ts.map +1 -1
  39. package/dist/Chat/useChatStreamScroll.js +2 -0
  40. package/dist/Chat/useSpeechRecognition.d.ts.map +1 -1
  41. package/dist/Chat/useSpeechRecognition.js +3 -0
  42. package/dist/Chat/useTriggerMenu.js +1 -1
  43. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  44. package/dist/CheckboxInput/CheckboxInput.js +17 -12
  45. package/dist/CheckboxList/CheckboxList.d.ts +20 -2
  46. package/dist/CheckboxList/CheckboxList.d.ts.map +1 -1
  47. package/dist/CheckboxList/CheckboxList.js +12 -4
  48. package/dist/CheckboxList/CheckboxListContext.d.ts +7 -0
  49. package/dist/CheckboxList/CheckboxListContext.d.ts.map +1 -1
  50. package/dist/CheckboxList/CheckboxListContext.js +2 -1
  51. package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
  52. package/dist/CheckboxList/CheckboxListItem.js +14 -2
  53. package/dist/CheckboxList/requiredGroup.d.ts +22 -0
  54. package/dist/CheckboxList/requiredGroup.d.ts.map +1 -0
  55. package/dist/CheckboxList/requiredGroup.js +52 -0
  56. package/dist/CodeBlock/CodeBlock.d.ts +10 -1
  57. package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
  58. package/dist/CodeBlock/CodeBlock.js +28 -11
  59. package/dist/CommandPalette/CommandPalette.d.ts.map +1 -1
  60. package/dist/CommandPalette/CommandPalette.js +2 -0
  61. package/dist/CommandPalette/CommandPaletteItem.d.ts.map +1 -1
  62. package/dist/CommandPalette/CommandPaletteItem.js +2 -0
  63. package/dist/ComplexSelector/ComplexSelector.d.ts +4 -1
  64. package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
  65. package/dist/ComplexSelector/ComplexSelector.js +14 -4
  66. package/dist/ContextMenu/ContextMenu.js +2 -2
  67. package/dist/DateInput/MonthScroller.d.ts.map +1 -1
  68. package/dist/DateInput/MonthScroller.js +5 -2
  69. package/dist/DateInput/PickerWheel.d.ts +19 -0
  70. package/dist/DateInput/PickerWheel.d.ts.map +1 -0
  71. package/dist/DateInput/PickerWheel.js +646 -0
  72. package/dist/DateInput/TouchDateField.d.ts.map +1 -1
  73. package/dist/DateInput/TouchDateField.js +9 -30
  74. package/dist/DateInput/Wheel.d.ts +18 -37
  75. package/dist/DateInput/Wheel.d.ts.map +1 -1
  76. package/dist/DateInput/Wheel.js +133 -120
  77. package/dist/DateInput/datePickerTouch.d.ts +13 -0
  78. package/dist/DateInput/datePickerTouch.d.ts.map +1 -0
  79. package/dist/DateInput/datePickerTouch.js +14 -0
  80. package/dist/DateInput/useOwnScrollGesture.d.ts +10 -0
  81. package/dist/DateInput/useOwnScrollGesture.d.ts.map +1 -1
  82. package/dist/DateInput/useOwnScrollGesture.js +16 -3
  83. package/dist/DateInput/usePointerDragScroll.d.ts.map +1 -1
  84. package/dist/DateInput/usePointerDragScroll.js +2 -0
  85. package/dist/DateInput/useScrollSettle.d.ts.map +1 -1
  86. package/dist/DateInput/useScrollSettle.js +3 -0
  87. package/dist/DateInput/useWheelListbox.d.ts +59 -0
  88. package/dist/DateInput/useWheelListbox.d.ts.map +1 -0
  89. package/dist/DateInput/useWheelListbox.js +88 -0
  90. package/dist/DateInput/wheelOptions.d.ts +94 -0
  91. package/dist/DateInput/wheelOptions.d.ts.map +1 -0
  92. package/dist/DateInput/wheelOptions.js +110 -0
  93. package/dist/DateInput/wheelPhysics.d.ts +127 -0
  94. package/dist/DateInput/wheelPhysics.d.ts.map +1 -0
  95. package/dist/DateInput/wheelPhysics.js +341 -0
  96. package/dist/DateInput/wheelStrip.d.ts +92 -0
  97. package/dist/DateInput/wheelStrip.d.ts.map +1 -0
  98. package/dist/DateInput/wheelStrip.js +258 -0
  99. package/dist/DateTimeInput/TouchDateTimeField.d.ts.map +1 -1
  100. package/dist/DateTimeInput/TouchDateTimeField.js +70 -127
  101. package/dist/Dialog/Dialog.d.ts.map +1 -1
  102. package/dist/Dialog/Dialog.js +9 -32
  103. package/dist/Drawer/useDrawerDialogPresence.d.ts.map +1 -1
  104. package/dist/Drawer/useDrawerDialogPresence.js +3 -0
  105. package/dist/DropdownMenu/useMenuOverflow.d.ts.map +1 -1
  106. package/dist/DropdownMenu/useMenuOverflow.js +5 -0
  107. package/dist/Field/Field.js +2 -2
  108. package/dist/FieldStatus/useFieldStatusAnnouncement.d.ts.map +1 -1
  109. package/dist/FieldStatus/useFieldStatusAnnouncement.js +1 -0
  110. package/dist/FormLayout/FormLayout.d.ts +5 -1
  111. package/dist/FormLayout/FormLayout.d.ts.map +1 -1
  112. package/dist/HoverCard/HoverCard.d.ts +6 -4
  113. package/dist/HoverCard/HoverCard.d.ts.map +1 -1
  114. package/dist/HoverCard/HoverCard.js +48 -3
  115. package/dist/HoverCard/useHoverCard.d.ts +5 -4
  116. package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
  117. package/dist/HoverCard/useHoverCard.js +26 -34
  118. package/dist/Icon/Icon.d.ts +5 -1
  119. package/dist/Icon/Icon.d.ts.map +1 -1
  120. package/dist/Icon/Icon.js +20 -3
  121. package/dist/InfoTip/InfoTip.d.ts +5 -5
  122. package/dist/InfoTip/InfoTip.d.ts.map +1 -1
  123. package/dist/InfoTip/InfoTip.js +58 -19
  124. package/dist/Item/useSwipeAction.d.ts.map +1 -1
  125. package/dist/Item/useSwipeAction.js +3 -0
  126. package/dist/Layer/modalOutlet.d.ts.map +1 -1
  127. package/dist/Layer/modalOutlet.js +2 -0
  128. package/dist/Layer/outsidePress.d.ts.map +1 -1
  129. package/dist/Layer/outsidePress.js +1 -0
  130. package/dist/Layer/useLayer.d.ts.map +1 -1
  131. package/dist/Layer/useLayer.js +4 -1
  132. package/dist/Layer/useLayerDismissal.d.ts.map +1 -1
  133. package/dist/Layer/useLayerDismissal.js +3 -0
  134. package/dist/Layer/useTouchTrigger.d.ts +13 -7
  135. package/dist/Layer/useTouchTrigger.d.ts.map +1 -1
  136. package/dist/Layer/useTouchTrigger.js +20 -6
  137. package/dist/Layout/index.d.ts +1 -1
  138. package/dist/Layout/index.d.ts.map +1 -1
  139. package/dist/Layout/index.js +1 -1
  140. package/dist/Layout/layoutReset.js +1 -1
  141. package/dist/Layout/overlayPaddingReset.stylex.d.ts +68 -0
  142. package/dist/Layout/overlayPaddingReset.stylex.d.ts.map +1 -0
  143. package/dist/Layout/overlayPaddingReset.stylex.js +72 -0
  144. package/dist/Layout/padding.stylex.d.ts +5 -129
  145. package/dist/Layout/padding.stylex.d.ts.map +1 -1
  146. package/dist/Layout/padding.stylex.js +9 -143
  147. package/dist/Layout/paddingStyles.stylex.d.ts +83 -0
  148. package/dist/Layout/paddingStyles.stylex.d.ts.map +1 -0
  149. package/dist/Layout/paddingStyles.stylex.js +99 -0
  150. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  151. package/dist/Lightbox/Lightbox.js +20 -1
  152. package/dist/MobileNav/MobileNav.d.ts +3 -2
  153. package/dist/MobileNav/MobileNav.d.ts.map +1 -1
  154. package/dist/MobileNav/MobileNav.js +10 -26
  155. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  156. package/dist/MultiSelector/MultiSelector.js +2 -1
  157. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  158. package/dist/NumberInput/NumberInput.js +2 -1
  159. package/dist/Outline/useOutlineFromDOM.d.ts.map +1 -1
  160. package/dist/Outline/useOutlineFromDOM.js +3 -0
  161. package/dist/Outline/useScrollSpy.d.ts.map +1 -1
  162. package/dist/Outline/useScrollSpy.js +3 -0
  163. package/dist/OverflowList/OverflowList.d.ts.map +1 -1
  164. package/dist/OverflowList/OverflowList.js +3 -0
  165. package/dist/Overlay/Overlay.d.ts.map +1 -1
  166. package/dist/Overlay/Overlay.js +7 -2
  167. package/dist/Popover/Popover.d.ts.map +1 -1
  168. package/dist/Popover/Popover.js +6 -0
  169. package/dist/Popover/usePopover.js +2 -2
  170. package/dist/PowerSearch/PowerSearch.d.ts +41 -4
  171. package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
  172. package/dist/PowerSearch/PowerSearch.js +441 -134
  173. package/dist/PowerSearch/PowerSearchBottomSheet.d.ts +125 -0
  174. package/dist/PowerSearch/PowerSearchBottomSheet.d.ts.map +1 -0
  175. package/dist/PowerSearch/PowerSearchBottomSheet.js +2041 -0
  176. package/dist/PowerSearch/PowerSearchEditPopover.d.ts +35 -2
  177. package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
  178. package/dist/PowerSearch/PowerSearchEditPopover.js +43 -10
  179. package/dist/PowerSearch/PowerSearchFilterEditor.d.ts +1 -1
  180. package/dist/PowerSearch/PowerSearchFilterEditor.d.ts.map +1 -1
  181. package/dist/PowerSearch/PowerSearchFilterEditor.js +4 -2
  182. package/dist/PowerSearch/PowerSearchToken.d.ts +1 -1
  183. package/dist/PowerSearch/PowerSearchToken.d.ts.map +1 -1
  184. package/dist/PowerSearch/PowerSearchToken.js +3 -2
  185. package/dist/PowerSearch/PowerSearchValueEditor.d.ts +38 -3
  186. package/dist/PowerSearch/PowerSearchValueEditor.d.ts.map +1 -1
  187. package/dist/PowerSearch/PowerSearchValueEditor.js +273 -86
  188. package/dist/PowerSearch/formatFilterValue.d.ts +14 -7
  189. package/dist/PowerSearch/formatFilterValue.d.ts.map +1 -1
  190. package/dist/PowerSearch/formatFilterValue.js +31 -23
  191. package/dist/PowerSearch/formatTokenValue.d.ts +28 -0
  192. package/dist/PowerSearch/formatTokenValue.d.ts.map +1 -0
  193. package/dist/PowerSearch/formatTokenValue.js +161 -0
  194. package/dist/PowerSearch/index.d.ts +1 -1
  195. package/dist/PowerSearch/index.d.ts.map +1 -1
  196. package/dist/PowerSearch/powerSearchDateZone.d.ts +25 -0
  197. package/dist/PowerSearch/powerSearchDateZone.d.ts.map +1 -0
  198. package/dist/PowerSearch/powerSearchDateZone.js +57 -0
  199. package/dist/PowerSearch/powerSearchSheetUtils.d.ts +65 -0
  200. package/dist/PowerSearch/powerSearchSheetUtils.d.ts.map +1 -0
  201. package/dist/PowerSearch/powerSearchSheetUtils.js +168 -0
  202. package/dist/PowerSearch/types.d.ts +8 -1
  203. package/dist/PowerSearch/types.d.ts.map +1 -1
  204. package/dist/ProgressBar/ProgressBarTouch.d.ts.map +1 -1
  205. package/dist/ProgressBar/ProgressBarTouch.js +2 -0
  206. package/dist/RadioList/RadioList.d.ts.map +1 -1
  207. package/dist/RadioList/RadioList.js +3 -2
  208. package/dist/RadioList/RadioListItem.d.ts +1 -1
  209. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  210. package/dist/RadioList/RadioListItem.js +5 -3
  211. package/dist/Resizable/ResizeHandle.d.ts +2 -1
  212. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  213. package/dist/Resizable/ResizeHandle.js +116 -92
  214. package/dist/Resizable/createResizable.d.ts +199 -0
  215. package/dist/Resizable/createResizable.d.ts.map +1 -0
  216. package/dist/Resizable/createResizable.js +733 -0
  217. package/dist/Resizable/separatorAttributes.d.ts +45 -0
  218. package/dist/Resizable/separatorAttributes.d.ts.map +1 -0
  219. package/dist/Resizable/separatorAttributes.js +35 -0
  220. package/dist/Resizable/useResizable.d.ts +3 -3
  221. package/dist/Resizable/useResizable.d.ts.map +1 -1
  222. package/dist/Resizable/useResizable.js +252 -459
  223. package/dist/SegmentedControl/useSegmentedSelectionMotion.d.ts.map +1 -1
  224. package/dist/SegmentedControl/useSegmentedSelectionMotion.js +3 -3
  225. package/dist/SelectableCard/SelectableCard.d.ts +2 -0
  226. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  227. package/dist/SelectableCard/SelectableCard.js +36 -11
  228. package/dist/SelectableCard/selectableCardInput.d.ts +12 -0
  229. package/dist/SelectableCard/selectableCardInput.d.ts.map +1 -0
  230. package/dist/SelectableCard/selectableCardInput.js +20 -0
  231. package/dist/Selector/Selector.d.ts.map +1 -1
  232. package/dist/Selector/Selector.js +7 -9
  233. package/dist/SideNav/SideNav.d.ts.map +1 -1
  234. package/dist/SideNav/SideNav.js +36 -5
  235. package/dist/Slider/Slider.d.ts.map +1 -1
  236. package/dist/Slider/Slider.js +16 -11
  237. package/dist/Slider/sliderTouchController.js +2 -2
  238. package/dist/Spinner/Spinner.d.ts +1 -1
  239. package/dist/Spinner/Spinner.d.ts.map +1 -1
  240. package/dist/Spinner/Spinner.js +60 -58
  241. package/dist/Stepper/Stepper.d.ts.map +1 -1
  242. package/dist/Stepper/Stepper.js +10 -15
  243. package/dist/Switch/Switch.d.ts.map +1 -1
  244. package/dist/Switch/Switch.js +4 -10
  245. package/dist/Switch/useSwitchTouch.js +4 -4
  246. package/dist/Table/BaseTable.d.ts.map +1 -1
  247. package/dist/Table/BaseTable.js +29 -8
  248. package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
  249. package/dist/Table/plugins/columnResize/useTableColumnResize.js +3 -1
  250. package/dist/Table/plugins/filtering/useTableFiltering.d.ts.map +1 -1
  251. package/dist/Table/plugins/filtering/useTableFiltering.js +2 -1
  252. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +12 -0
  253. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  254. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +17 -3
  255. package/dist/Table/plugins/stickyColumns/useTableStickyColumns.d.ts.map +1 -1
  256. package/dist/Table/plugins/stickyColumns/useTableStickyColumns.js +2 -0
  257. package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
  258. package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
  259. package/dist/Table/plugins/tree/useTableTreeData.js +27 -14
  260. package/dist/TextArea/TextArea.d.ts.map +1 -1
  261. package/dist/TextArea/TextArea.js +2 -1
  262. package/dist/TextInput/TextInput.d.ts +2 -2
  263. package/dist/TextInput/TextInput.d.ts.map +1 -1
  264. package/dist/TextInput/TextInput.js +12 -8
  265. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  266. package/dist/TimeInput/TimeInput.js +2 -0
  267. package/dist/TimeInput/TimeWheels.d.ts +32 -0
  268. package/dist/TimeInput/TimeWheels.d.ts.map +1 -0
  269. package/dist/TimeInput/TimeWheels.js +144 -0
  270. package/dist/TimeInput/TouchTimeField.d.ts.map +1 -1
  271. package/dist/TimeInput/TouchTimeField.js +63 -116
  272. package/dist/TimeInput/timeWheelRules.d.ts +124 -0
  273. package/dist/TimeInput/timeWheelRules.d.ts.map +1 -0
  274. package/dist/TimeInput/timeWheelRules.js +277 -0
  275. package/dist/Timer/Timer.d.ts.map +1 -1
  276. package/dist/Timer/Timer.js +2 -0
  277. package/dist/Timestamp/Timestamp.js +1 -1
  278. package/dist/Timestamp/formatInstant.d.ts.map +1 -1
  279. package/dist/Timestamp/formatInstant.js +1 -23
  280. package/dist/Toast/Toast.d.ts +11 -1
  281. package/dist/Toast/Toast.d.ts.map +1 -1
  282. package/dist/Toast/Toast.js +25 -15
  283. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  284. package/dist/Toast/ToastViewport.js +97 -34
  285. package/dist/Toast/types.d.ts +9 -3
  286. package/dist/Toast/types.d.ts.map +1 -1
  287. package/dist/Toast/useToast.d.ts.map +1 -1
  288. package/dist/Toast/useToast.js +1 -0
  289. package/dist/Tokenizer/Tokenizer.d.ts +44 -46
  290. package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
  291. package/dist/Tokenizer/Tokenizer.js +20 -21
  292. package/dist/Tokenizer/TokenizerBottomSheet.d.ts +1 -1
  293. package/dist/Tokenizer/TokenizerBottomSheet.js +12 -18
  294. package/dist/Tokenizer/index.d.ts +1 -1
  295. package/dist/Tokenizer/index.d.ts.map +1 -1
  296. package/dist/Tooltip/Tooltip.d.ts +2 -23
  297. package/dist/Tooltip/Tooltip.d.ts.map +1 -1
  298. package/dist/Tooltip/Tooltip.js +5 -29
  299. package/dist/Tooltip/useTooltip.d.ts +23 -30
  300. package/dist/Tooltip/useTooltip.d.ts.map +1 -1
  301. package/dist/Tooltip/useTooltip.js +200 -108
  302. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  303. package/dist/Typeahead/BaseTypeahead.js +27 -18
  304. package/dist/Typeahead/TypeaheadItem.d.ts +2 -1
  305. package/dist/Typeahead/TypeaheadItem.d.ts.map +1 -1
  306. package/dist/animator/createAnimator.d.ts +98 -0
  307. package/dist/animator/createAnimator.d.ts.map +1 -0
  308. package/dist/animator/createAnimator.js +259 -0
  309. package/dist/astryx.css +53 -8
  310. package/dist/gestures/GestureHost.d.ts +16 -1
  311. package/dist/gestures/GestureHost.d.ts.map +1 -1
  312. package/dist/gestures/GestureHost.js +4 -1
  313. package/dist/gestures/PressTracker.d.ts.map +1 -1
  314. package/dist/gestures/PressTracker.js +4 -3
  315. package/dist/hooks/ModalAnnounceProvider.d.ts.map +1 -1
  316. package/dist/hooks/ModalAnnounceProvider.js +1 -0
  317. package/dist/hooks/actionGroupTracker.d.ts +4 -1
  318. package/dist/hooks/actionGroupTracker.d.ts.map +1 -1
  319. package/dist/hooks/actionGroupTracker.js +18 -7
  320. package/dist/hooks/index.d.ts +1 -0
  321. package/dist/hooks/index.d.ts.map +1 -1
  322. package/dist/hooks/index.js +1 -0
  323. package/dist/hooks/longPressDetector.d.ts +66 -0
  324. package/dist/hooks/longPressDetector.d.ts.map +1 -0
  325. package/dist/hooks/longPressDetector.js +200 -0
  326. package/dist/hooks/pressGroupContext.d.ts +6 -0
  327. package/dist/hooks/pressGroupContext.d.ts.map +1 -0
  328. package/dist/hooks/pressGroupContext.js +20 -0
  329. package/dist/hooks/rootScrollStyles.d.ts +48 -0
  330. package/dist/hooks/rootScrollStyles.d.ts.map +1 -0
  331. package/dist/hooks/rootScrollStyles.js +207 -0
  332. package/dist/hooks/scrollLockTouchGuard.d.ts +13 -0
  333. package/dist/hooks/scrollLockTouchGuard.d.ts.map +1 -0
  334. package/dist/hooks/scrollLockTouchGuard.js +117 -0
  335. package/dist/hooks/scrollbarGutter.d.ts +4 -4
  336. package/dist/hooks/scrollbarGutter.d.ts.map +1 -1
  337. package/dist/hooks/scrollbarGutter.js +36 -23
  338. package/dist/hooks/useActionGroupTracking.d.ts +53 -0
  339. package/dist/hooks/useActionGroupTracking.d.ts.map +1 -0
  340. package/dist/hooks/useActionGroupTracking.js +174 -0
  341. package/dist/hooks/useAnimator.d.ts +41 -0
  342. package/dist/hooks/useAnimator.d.ts.map +1 -0
  343. package/dist/hooks/useAnimator.js +70 -0
  344. package/dist/hooks/useAnnounceRenderedText.d.ts.map +1 -1
  345. package/dist/hooks/useAnnounceRenderedText.js +1 -0
  346. package/dist/hooks/useAttachment.d.ts +1 -1
  347. package/dist/hooks/useAttachment.js +1 -1
  348. package/dist/hooks/useAutoMediaMode.d.ts.map +1 -1
  349. package/dist/hooks/useAutoMediaMode.js +1 -0
  350. package/dist/hooks/useBusyAnnouncement.d.ts.map +1 -1
  351. package/dist/hooks/useBusyAnnouncement.js +2 -0
  352. package/dist/hooks/useDevWarning.d.ts.map +1 -1
  353. package/dist/hooks/useDevWarning.js +2 -0
  354. package/dist/hooks/useFocusTrap.d.ts.map +1 -1
  355. package/dist/hooks/useFocusTrap.js +2 -0
  356. package/dist/hooks/useGridFocus.d.ts +8 -5
  357. package/dist/hooks/useGridFocus.d.ts.map +1 -1
  358. package/dist/hooks/useGridFocus.js +4 -3
  359. package/dist/hooks/useHotkeys.d.ts.map +1 -1
  360. package/dist/hooks/useHotkeys.js +3 -0
  361. package/dist/hooks/useImageMode.d.ts.map +1 -1
  362. package/dist/hooks/useImageMode.js +3 -0
  363. package/dist/hooks/useInputStatusIcon.d.ts +1 -1
  364. package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
  365. package/dist/hooks/useInputStatusIcon.js +2 -2
  366. package/dist/hooks/useIsomorphicLayoutEffect.d.ts +2 -2
  367. package/dist/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -1
  368. package/dist/hooks/useKeyboardHint.js +1 -1
  369. package/dist/hooks/useLongPress.d.ts +8 -9
  370. package/dist/hooks/useLongPress.d.ts.map +1 -1
  371. package/dist/hooks/useLongPress.js +23 -106
  372. package/dist/hooks/useMenuHover.d.ts.map +1 -1
  373. package/dist/hooks/useMenuHover.js +2 -0
  374. package/dist/hooks/useMenuPress.d.ts.map +1 -1
  375. package/dist/hooks/useMenuPress.js +3 -0
  376. package/dist/hooks/useOverflow.d.ts.map +1 -1
  377. package/dist/hooks/useOverflow.js +2 -1
  378. package/dist/hooks/usePressFeedback.d.ts.map +1 -1
  379. package/dist/hooks/usePressFeedback.js +1 -0
  380. package/dist/hooks/useResolvedRequired.d.ts +3 -0
  381. package/dist/hooks/useResolvedRequired.d.ts.map +1 -1
  382. package/dist/hooks/useResolvedRequired.js +3 -0
  383. package/dist/hooks/useScrollLock.d.ts +8 -9
  384. package/dist/hooks/useScrollLock.d.ts.map +1 -1
  385. package/dist/hooks/useScrollLock.js +50 -48
  386. package/dist/hooks/useScrollableArea.d.ts.map +1 -1
  387. package/dist/hooks/useScrollableArea.js +5 -0
  388. package/dist/hooks/useStreamingText.d.ts.map +1 -1
  389. package/dist/hooks/useStreamingText.js +3 -0
  390. package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.d.ts +8 -0
  391. package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.d.ts.map +1 -0
  392. package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.js +45 -0
  393. package/dist/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.d.ts.map +1 -1
  394. package/dist/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.js +6 -0
  395. package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.d.ts +8 -0
  396. package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.d.ts.map +1 -0
  397. package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.js +14 -0
  398. package/dist/i18n/generated-english/Resizable/createResizable.generated.d.ts +8 -0
  399. package/dist/i18n/generated-english/Resizable/createResizable.generated.d.ts.map +1 -0
  400. package/dist/i18n/generated-english/Resizable/createResizable.generated.js +13 -0
  401. package/dist/i18n/generated-english/Table/plugins/rowExpansion/useTableRowExpansion.generated.d.ts.map +1 -1
  402. package/dist/i18n/generated-english/Table/plugins/rowExpansion/useTableRowExpansion.generated.js +3 -1
  403. package/dist/i18n/generated-english/Table/plugins/tree/useTableTreeData.generated.d.ts.map +1 -1
  404. package/dist/i18n/generated-english/Table/plugins/tree/useTableTreeData.generated.js +3 -1
  405. package/dist/i18n/generated-english/TimeInput/TimeWheels.generated.d.ts +8 -0
  406. package/dist/i18n/generated-english/TimeInput/TimeWheels.generated.d.ts.map +1 -0
  407. package/dist/i18n/generated-english/TimeInput/TimeWheels.generated.js +17 -0
  408. package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
  409. package/dist/i18n/generated-locales/en.generated.js +37 -0
  410. package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
  411. package/dist/i18n/generated-locales/pseudo.generated.js +37 -0
  412. package/dist/index.d.ts +1 -0
  413. package/dist/index.d.ts.map +1 -1
  414. package/dist/index.js +4 -0
  415. package/dist/internal/indicatorPress.stylex.d.ts +20 -0
  416. package/dist/internal/indicatorPress.stylex.d.ts.map +1 -0
  417. package/dist/internal/indicatorPress.stylex.js +26 -0
  418. package/dist/internal/selectable-card.d.ts +21 -0
  419. package/dist/internal/selectable-card.d.ts.map +1 -0
  420. package/dist/internal/selectable-card.js +20 -0
  421. package/dist/internal/sheetDraft.d.ts +2 -2
  422. package/dist/internal/sheetDraft.js +2 -2
  423. package/dist/keyboard/index.d.ts +17 -0
  424. package/dist/keyboard/index.d.ts.map +1 -0
  425. package/dist/keyboard/index.js +19 -0
  426. package/dist/keyboard/keyboardHeight.d.ts +149 -0
  427. package/dist/keyboard/keyboardHeight.d.ts.map +1 -0
  428. package/dist/keyboard/keyboardHeight.js +432 -0
  429. package/dist/keyboard/keyboardLayoutGuide.d.ts +59 -0
  430. package/dist/keyboard/keyboardLayoutGuide.d.ts.map +1 -0
  431. package/dist/keyboard/keyboardLayoutGuide.js +207 -0
  432. package/dist/keyboard/keyboardModel.d.ts +93 -0
  433. package/dist/keyboard/keyboardModel.d.ts.map +1 -0
  434. package/dist/keyboard/keyboardModel.js +220 -0
  435. package/dist/keyboard/rideKeyboard.d.ts +42 -0
  436. package/dist/keyboard/rideKeyboard.d.ts.map +1 -0
  437. package/dist/keyboard/rideKeyboard.js +77 -0
  438. package/dist/keyboard/useMobileKeyboard.d.ts +61 -0
  439. package/dist/keyboard/useMobileKeyboard.d.ts.map +1 -0
  440. package/dist/keyboard/useMobileKeyboard.js +699 -0
  441. package/dist/motion/android/index.d.ts +16 -0
  442. package/dist/motion/android/index.d.ts.map +1 -0
  443. package/dist/motion/android/index.js +18 -0
  444. package/dist/motion/android/keyboard.d.ts +83 -0
  445. package/dist/motion/android/keyboard.d.ts.map +1 -0
  446. package/dist/motion/android/keyboard.js +96 -0
  447. package/dist/motion/animatedLayout.d.ts +8 -0
  448. package/dist/motion/animatedLayout.d.ts.map +1 -1
  449. package/dist/motion/animatedLayout.js +246 -53
  450. package/dist/motion/animator.d.ts +14 -14
  451. package/dist/motion/animator.d.ts.map +1 -1
  452. package/dist/motion/animator.js +45 -26
  453. package/dist/motion/frameBlock.d.ts +14 -0
  454. package/dist/motion/frameBlock.d.ts.map +1 -0
  455. package/dist/motion/frameBlock.js +16 -0
  456. package/dist/motion/progress.d.ts +88 -0
  457. package/dist/motion/progress.d.ts.map +1 -0
  458. package/dist/motion/progress.js +128 -0
  459. package/dist/motion/reducedMotion.d.ts.map +1 -1
  460. package/dist/motion/reducedMotion.js +3 -1
  461. package/dist/motion/uikit/alert.d.ts +41 -0
  462. package/dist/motion/uikit/alert.d.ts.map +1 -0
  463. package/dist/motion/uikit/alert.js +43 -0
  464. package/dist/motion/uikit/datePicker.d.ts +58 -0
  465. package/dist/motion/uikit/datePicker.d.ts.map +1 -0
  466. package/dist/motion/uikit/datePicker.js +60 -0
  467. package/dist/motion/uikit/index.d.ts +6 -4
  468. package/dist/motion/uikit/index.d.ts.map +1 -1
  469. package/dist/motion/uikit/index.js +6 -4
  470. package/dist/motion/uikit/picker.d.ts +96 -0
  471. package/dist/motion/uikit/picker.d.ts.map +1 -0
  472. package/dist/motion/uikit/picker.js +117 -0
  473. package/dist/privateAttributes/pressGroupItem.stylex.d.ts +22 -0
  474. package/dist/privateAttributes/pressGroupItem.stylex.d.ts.map +1 -0
  475. package/dist/privateAttributes/pressGroupItem.stylex.js +36 -0
  476. package/dist/privateAttributes/reducedMotion.stylex.d.ts +23 -0
  477. package/dist/privateAttributes/reducedMotion.stylex.d.ts.map +1 -0
  478. package/dist/privateAttributes/reducedMotion.stylex.js +40 -0
  479. package/dist/theme/Theme.d.ts.map +1 -1
  480. package/dist/theme/Theme.js +29 -4
  481. package/dist/theme/generateThemeRules.d.ts.map +1 -1
  482. package/dist/theme/generateThemeRules.js +14 -13
  483. package/dist/theme/motionKnobs.d.ts +4 -3
  484. package/dist/theme/motionKnobs.d.ts.map +1 -1
  485. package/dist/theme/motionKnobs.js +3 -2
  486. package/dist/theme/themeMotion.d.ts +6 -0
  487. package/dist/theme/themeMotion.d.ts.map +1 -1
  488. package/dist/theme/themeMotion.js +15 -2
  489. package/dist/theme/tokens.stylex.d.ts +3 -0
  490. package/dist/theme/tokens.stylex.d.ts.map +1 -1
  491. package/dist/theme/tokens.stylex.js +4 -1
  492. package/dist/utils/dateParser.d.ts.map +1 -1
  493. package/dist/utils/dateParser.js +12 -0
  494. package/dist/utils/disabledInteraction.d.ts +10 -2
  495. package/dist/utils/disabledInteraction.d.ts.map +1 -1
  496. package/dist/utils/disabledInteraction.js +16 -2
  497. package/dist/utils/focusReturn.d.ts +22 -25
  498. package/dist/utils/focusReturn.d.ts.map +1 -1
  499. package/dist/utils/focusReturn.js +36 -29
  500. package/dist/utils/index.d.ts +1 -1
  501. package/dist/utils/index.d.ts.map +1 -1
  502. package/dist/utils/index.js +1 -1
  503. package/dist/utils/interactionModality.d.ts.map +1 -1
  504. package/dist/utils/interactionModality.js +4 -0
  505. package/dist/utils/interactionOverlay.stylex.d.ts +6 -4
  506. package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
  507. package/dist/utils/interactionOverlay.stylex.js +6 -4
  508. package/dist/utils/isFocusDetached.d.ts +27 -0
  509. package/dist/utils/isFocusDetached.d.ts.map +1 -0
  510. package/dist/utils/isFocusDetached.js +32 -0
  511. package/dist/utils/layoutViewport.d.ts +25 -0
  512. package/dist/utils/layoutViewport.d.ts.map +1 -0
  513. package/dist/utils/layoutViewport.js +102 -0
  514. package/dist/utils/plainDate.d.ts +31 -0
  515. package/dist/utils/plainDate.d.ts.map +1 -1
  516. package/dist/utils/plainDate.js +68 -4
  517. package/dist/utils/pressFeedback.d.ts +6 -0
  518. package/dist/utils/pressFeedback.d.ts.map +1 -1
  519. package/dist/utils/pressFeedback.js +97 -18
  520. package/dist/utils/pressGesture.d.ts +4 -2
  521. package/dist/utils/pressGesture.d.ts.map +1 -1
  522. package/dist/utils/pressGesture.js +3 -1
  523. package/dist/utils/selectionLock.d.ts +10 -1
  524. package/dist/utils/selectionLock.d.ts.map +1 -1
  525. package/dist/utils/selectionLock.js +31 -5
  526. package/dist/utils/sharedMutationObserver.d.ts +2 -1
  527. package/dist/utils/sharedMutationObserver.d.ts.map +1 -1
  528. package/dist/utils/sharedMutationObserver.js +2 -1
  529. package/dist/utils/timeParser.d.ts +2 -1
  530. package/dist/utils/timeParser.d.ts.map +1 -1
  531. package/dist/utils/timeParser.js +29 -3
  532. package/dist/utils/triggerFocus.d.ts +36 -0
  533. package/dist/utils/triggerFocus.d.ts.map +1 -0
  534. package/dist/utils/triggerFocus.js +65 -0
  535. package/locales/en.json +148 -0
  536. package/locales/pseudo.json +111 -0
  537. package/package.json +14 -9
  538. package/src/AlertDialog/AlertDialog.doc.mjs +2 -2
  539. package/src/AlertDialog/AlertDialog.tsx +46 -5
  540. package/src/AppShell/AppShell.tsx +13 -4
  541. package/src/BottomSheet/BottomSheet.doc.mjs +1 -1
  542. package/src/BottomSheet/BottomSheet.tsx +1 -0
  543. package/src/BottomSheet/BottomSheetPanel.tsx +80 -16
  544. package/src/BottomSheet/BottomSheetSwitcher.doc.mjs +5 -0
  545. package/src/BottomSheet/BottomSheetSwitcher.tsx +5 -0
  546. package/src/BottomSheet/bottomSheetStack.ts +1 -1
  547. package/src/BottomSheet/useSheetGestures.ts +16 -1
  548. package/src/Button/Button.tsx +26 -4
  549. package/src/Calendar/Calendar.tsx +40 -32
  550. package/src/Calendar/getWeekdayHeaderNames.ts +88 -0
  551. package/src/Calendar/hooks/useCalendarDays.ts +5 -10
  552. package/src/Calendar/{standaloneShortWeekdayNames.generated.ts → weekdayHeaderNames.generated.ts} +14 -14
  553. package/src/Carousel/Carousel.tsx +1 -0
  554. package/src/Chat/ChatComposerInput.tsx +4 -7
  555. package/src/Chat/ChatMessageList.tsx +2 -1
  556. package/src/Chat/useChatDictation.ts +1 -0
  557. package/src/Chat/useChatNewMessages.ts +1 -1
  558. package/src/Chat/useChatStreamScroll.ts +2 -0
  559. package/src/Chat/useSpeechRecognition.ts +2 -0
  560. package/src/Chat/useTriggerMenu.tsx +1 -1
  561. package/src/CheckboxInput/CheckboxInput.doc.mjs +18 -0
  562. package/src/CheckboxInput/CheckboxInput.tsx +38 -15
  563. package/src/CheckboxList/CheckboxList.doc.mjs +14 -0
  564. package/src/CheckboxList/CheckboxList.tsx +43 -2
  565. package/src/CheckboxList/CheckboxListContext.tsx +9 -1
  566. package/src/CheckboxList/CheckboxListItem.tsx +23 -2
  567. package/src/CheckboxList/requiredGroup.ts +77 -0
  568. package/src/CodeBlock/CodeBlock.doc.mjs +9 -1
  569. package/src/CodeBlock/CodeBlock.tsx +41 -4
  570. package/src/CommandPalette/CommandPalette.tsx +1 -0
  571. package/src/CommandPalette/CommandPaletteItem.tsx +1 -0
  572. package/src/ComplexSelector/ComplexSelector.tsx +20 -5
  573. package/src/ContextMenu/ContextMenu.tsx +2 -2
  574. package/src/DateInput/MonthScroller.tsx +8 -2
  575. package/src/DateInput/PickerWheel.tsx +796 -0
  576. package/src/DateInput/TouchDateField.tsx +6 -32
  577. package/src/DateInput/Wheel.tsx +188 -171
  578. package/src/DateInput/datePickerTouch.ts +15 -0
  579. package/src/DateInput/useOwnScrollGesture.ts +25 -3
  580. package/src/DateInput/usePointerDragScroll.ts +1 -0
  581. package/src/DateInput/useScrollSettle.ts +2 -0
  582. package/src/DateInput/useWheelListbox.ts +112 -0
  583. package/src/DateInput/wheelOptions.ts +184 -0
  584. package/src/DateInput/wheelPhysics.ts +406 -0
  585. package/src/DateInput/wheelStrip.ts +341 -0
  586. package/src/DateTimeInput/TouchDateTimeField.tsx +100 -189
  587. package/src/Dialog/Dialog.tsx +12 -32
  588. package/src/Drawer/useDrawerDialogPresence.ts +2 -0
  589. package/src/DropdownMenu/useMenuOverflow.ts +3 -0
  590. package/src/Field/Field.tsx +2 -2
  591. package/src/FieldStatus/useFieldStatusAnnouncement.ts +1 -0
  592. package/src/FormLayout/FormLayout.doc.mjs +181 -46
  593. package/src/FormLayout/FormLayout.tsx +5 -1
  594. package/src/HoverCard/HoverCard.doc.mjs +10 -8
  595. package/src/HoverCard/HoverCard.tsx +58 -6
  596. package/src/HoverCard/useHoverCard.doc.mjs +178 -36
  597. package/src/HoverCard/useHoverCard.tsx +55 -55
  598. package/src/Icon/Icon.doc.mjs +51 -10
  599. package/src/Icon/Icon.tsx +31 -8
  600. package/src/IconButton/IconButton.doc.mjs +141 -21
  601. package/src/InfoTip/InfoTip.tsx +72 -16
  602. package/src/Item/useSwipeAction.ts +2 -0
  603. package/src/Layer/modalOutlet.ts +2 -0
  604. package/src/Layer/outsidePress.ts +1 -0
  605. package/src/Layer/useLayer.tsx +3 -1
  606. package/src/Layer/useLayerDismissal.ts +2 -0
  607. package/src/Layer/useTouchTrigger.ts +19 -6
  608. package/src/Layout/index.ts +1 -1
  609. package/src/Layout/layoutReset.ts +1 -1
  610. package/src/Layout/overlayPaddingReset.stylex.ts +73 -0
  611. package/src/Layout/padding.stylex.ts +9 -133
  612. package/src/Layout/paddingStyles.stylex.ts +87 -0
  613. package/src/Lightbox/Lightbox.tsx +20 -1
  614. package/src/Lightbox/useLightbox.doc.mjs +167 -0
  615. package/src/MobileNav/MobileNav.tsx +10 -31
  616. package/src/MultiSelector/MultiSelector.tsx +2 -7
  617. package/src/NumberInput/NumberInput.tsx +2 -7
  618. package/src/Outline/useOutlineFromDOM.ts +2 -0
  619. package/src/Outline/useScrollSpy.ts +2 -0
  620. package/src/OverflowList/OverflowList.tsx +2 -0
  621. package/src/Overlay/Overlay.tsx +7 -2
  622. package/src/Popover/Popover.tsx +4 -0
  623. package/src/Popover/usePopover.tsx +2 -2
  624. package/src/PowerSearch/PowerSearch.doc.mjs +60 -8
  625. package/src/PowerSearch/PowerSearch.tsx +622 -157
  626. package/src/PowerSearch/PowerSearchBottomSheet.tsx +2700 -0
  627. package/src/PowerSearch/PowerSearchEditPopover.tsx +65 -9
  628. package/src/PowerSearch/PowerSearchFilterEditor.tsx +2 -0
  629. package/src/PowerSearch/PowerSearchToken.tsx +2 -0
  630. package/src/PowerSearch/PowerSearchValueEditor.tsx +340 -59
  631. package/src/PowerSearch/formatFilterValue.ts +49 -27
  632. package/src/PowerSearch/formatTokenValue.ts +220 -0
  633. package/src/PowerSearch/index.ts +5 -1
  634. package/src/PowerSearch/powerSearchDateZone.ts +95 -0
  635. package/src/PowerSearch/powerSearchSheetUtils.ts +224 -0
  636. package/src/PowerSearch/types.ts +8 -1
  637. package/src/ProgressBar/ProgressBarTouch.ts +2 -0
  638. package/src/RadioList/RadioList.tsx +3 -2
  639. package/src/RadioList/RadioListItem.tsx +5 -3
  640. package/src/Resizable/Resizable.doc.mjs +5 -4
  641. package/src/Resizable/ResizeHandle.tsx +187 -135
  642. package/src/Resizable/createResizable.ts +1046 -0
  643. package/src/Resizable/separatorAttributes.ts +73 -0
  644. package/src/Resizable/useResizable.ts +292 -623
  645. package/src/SegmentedControl/useSegmentedSelectionMotion.ts +6 -3
  646. package/src/SelectableCard/SelectableCard.tsx +39 -10
  647. package/src/SelectableCard/selectableCardInput.ts +30 -0
  648. package/src/Selector/Selector.tsx +7 -19
  649. package/src/SideNav/SideNav.tsx +41 -5
  650. package/src/Slider/Slider.tsx +20 -11
  651. package/src/Slider/sliderTouchController.ts +2 -2
  652. package/src/Spinner/Spinner.tsx +77 -63
  653. package/src/Stepper/Stepper.tsx +10 -27
  654. package/src/Switch/Switch.tsx +2 -6
  655. package/src/Switch/useSwitchTouch.ts +4 -4
  656. package/src/Table/BaseTable.tsx +46 -12
  657. package/src/Table/plugins/columnResize/useTableColumnResize.tsx +2 -1
  658. package/src/Table/plugins/filtering/useTableFiltering.tsx +1 -0
  659. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +31 -7
  660. package/src/Table/plugins/stickyColumns/useTableStickyColumns.tsx +2 -0
  661. package/src/Table/plugins/tree/useTableTreeData.tsx +43 -20
  662. package/src/Table/useTableRowExpansion.doc.mjs +9 -0
  663. package/src/Table/useTableTreeData.doc.mjs +15 -3
  664. package/src/TextArea/TextArea.tsx +2 -7
  665. package/src/TextInput/TextInput.tsx +13 -17
  666. package/src/TimeInput/TimeInput.tsx +2 -0
  667. package/src/TimeInput/TimeWheels.tsx +218 -0
  668. package/src/TimeInput/TouchTimeField.tsx +93 -155
  669. package/src/TimeInput/timeWheelRules.ts +352 -0
  670. package/src/Timer/Timer.tsx +1 -0
  671. package/src/Timestamp/Timestamp.tsx +1 -1
  672. package/src/Timestamp/formatInstant.ts +1 -33
  673. package/src/Toast/Toast.doc.mjs +4 -3
  674. package/src/Toast/Toast.tsx +52 -32
  675. package/src/Toast/ToastViewport.tsx +123 -35
  676. package/src/Toast/types.ts +9 -3
  677. package/src/Toast/useToast.tsx +1 -0
  678. package/src/Tokenizer/Tokenizer.doc.mjs +10 -10
  679. package/src/Tokenizer/Tokenizer.tsx +61 -62
  680. package/src/Tokenizer/TokenizerBottomSheet.tsx +17 -23
  681. package/src/Tokenizer/index.ts +1 -0
  682. package/src/Tooltip/Tooltip.tsx +6 -42
  683. package/src/Tooltip/useTooltip.doc.mjs +24 -0
  684. package/src/Tooltip/useTooltip.tsx +243 -134
  685. package/src/Typeahead/BaseTypeahead.tsx +27 -17
  686. package/src/Typeahead/TypeaheadItem.doc.mjs +6 -3
  687. package/src/Typeahead/TypeaheadItem.tsx +2 -1
  688. package/src/animator/createAnimator.doc.mjs +153 -0
  689. package/src/animator/createAnimator.ts +324 -0
  690. package/src/gestures/GestureHost.ts +6 -5
  691. package/src/gestures/PressTracker.ts +4 -3
  692. package/src/gestures/README.md +10 -4
  693. package/src/hooks/ModalAnnounceProvider.tsx +1 -0
  694. package/src/hooks/actionGroupTracker.ts +25 -9
  695. package/src/hooks/index.ts +2 -0
  696. package/src/hooks/longPressDetector.ts +273 -0
  697. package/src/hooks/pressGroupContext.ts +21 -0
  698. package/src/hooks/rootScrollStyles.ts +247 -0
  699. package/src/hooks/scrollLockTouchGuard.ts +149 -0
  700. package/src/hooks/scrollbarGutter.ts +41 -26
  701. package/src/hooks/useActionGroupTracking.ts +224 -0
  702. package/src/hooks/useAnimator.doc.mjs +109 -0
  703. package/src/hooks/useAnimator.ts +67 -0
  704. package/src/hooks/useAnnounceRenderedText.ts +1 -0
  705. package/src/hooks/useAttachment.ts +1 -1
  706. package/src/hooks/useAutoMediaMode.ts +1 -0
  707. package/src/hooks/useBusyAnnouncement.ts +2 -0
  708. package/src/hooks/useDevWarning.ts +2 -0
  709. package/src/hooks/useFocusTrap.ts +2 -0
  710. package/src/hooks/useGridFocus.doc.mjs +6 -6
  711. package/src/hooks/useGridFocus.ts +10 -7
  712. package/src/hooks/useHotkeys.ts +2 -0
  713. package/src/hooks/useImageMode.ts +2 -0
  714. package/src/hooks/useInputStatusIcon.tsx +3 -2
  715. package/src/hooks/useKeyboardHint.tsx +1 -1
  716. package/src/hooks/useLongPress.doc.mjs +2 -2
  717. package/src/hooks/useLongPress.ts +32 -122
  718. package/src/hooks/useMenuHover.ts +1 -0
  719. package/src/hooks/useMenuPress.ts +2 -0
  720. package/src/hooks/useOverflow.ts +2 -1
  721. package/src/hooks/usePressFeedback.ts +1 -0
  722. package/src/hooks/useResolvedRequired.ts +3 -0
  723. package/src/hooks/useScrollLock.doc.mjs +51 -12
  724. package/src/hooks/useScrollLock.ts +53 -60
  725. package/src/hooks/useScrollableArea.ts +4 -0
  726. package/src/hooks/useStreamingText.ts +2 -0
  727. package/src/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.ts +46 -0
  728. package/src/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.ts +6 -0
  729. package/src/i18n/generated-english/PowerSearch/formatTokenValue.generated.ts +15 -0
  730. package/src/i18n/generated-english/Resizable/createResizable.generated.ts +14 -0
  731. package/src/i18n/generated-english/Table/plugins/rowExpansion/useTableRowExpansion.generated.ts +3 -1
  732. package/src/i18n/generated-english/Table/plugins/tree/useTableTreeData.generated.ts +3 -1
  733. package/src/i18n/generated-english/TimeInput/TimeWheels.generated.ts +18 -0
  734. package/src/i18n/generated-locales/en.generated.ts +47 -0
  735. package/src/i18n/generated-locales/pseudo.generated.ts +48 -0
  736. package/src/index.ts +13 -0
  737. package/src/internal/indicatorPress.stylex.ts +24 -0
  738. package/src/internal/selectable-card.ts +21 -0
  739. package/src/internal/sheetDraft.ts +2 -2
  740. package/src/keyboard/README.md +197 -0
  741. package/src/keyboard/index.ts +48 -0
  742. package/src/keyboard/keyboardHeight.ts +543 -0
  743. package/src/keyboard/keyboardLayoutGuide.ts +266 -0
  744. package/src/keyboard/keyboardModel.ts +301 -0
  745. package/src/keyboard/rideKeyboard.ts +100 -0
  746. package/src/keyboard/useMobileKeyboard.ts +866 -0
  747. package/src/motion/MEASUREMENTS.md +28 -0
  748. package/src/motion/README.md +12 -5
  749. package/src/motion/android/index.ts +18 -0
  750. package/src/motion/android/keyboard.ts +96 -0
  751. package/src/motion/animatedLayout.ts +323 -60
  752. package/src/motion/animator.ts +66 -37
  753. package/src/motion/frameBlock.ts +16 -0
  754. package/src/motion/progress.ts +155 -0
  755. package/src/motion/reducedMotion.ts +3 -1
  756. package/src/motion/uikit/alert.ts +43 -0
  757. package/src/motion/uikit/datePicker.ts +60 -0
  758. package/src/motion/uikit/index.ts +6 -4
  759. package/src/motion/uikit/picker.ts +116 -0
  760. package/src/privateAttributes/pressGroupItem.stylex.ts +44 -0
  761. package/src/privateAttributes/reducedMotion.stylex.ts +45 -0
  762. package/src/theme/Theme.tsx +37 -3
  763. package/src/theme/generateThemeRules.ts +14 -12
  764. package/src/theme/motionKnobs.ts +4 -3
  765. package/src/theme/themeMotion.ts +17 -2
  766. package/src/theme/tokens.stylex.ts +2 -0
  767. package/src/utils/dateParser.ts +16 -0
  768. package/src/utils/disabledInteraction.ts +23 -2
  769. package/src/utils/focusReturn.ts +38 -31
  770. package/src/utils/index.ts +1 -1
  771. package/src/utils/interactionModality.ts +4 -0
  772. package/src/utils/interactionOverlay.stylex.ts +6 -4
  773. package/src/utils/isFocusDetached.ts +34 -0
  774. package/src/utils/layoutViewport.ts +104 -0
  775. package/src/utils/plainDate.ts +80 -4
  776. package/src/utils/pressFeedback.ts +126 -30
  777. package/src/utils/pressGesture.ts +4 -2
  778. package/src/utils/selectionLock.ts +40 -6
  779. package/src/utils/sharedMutationObserver.ts +2 -1
  780. package/src/utils/timeParser.ts +40 -3
  781. package/src/utils/triggerFocus.ts +80 -0
  782. package/dist/BottomSheet/useMobileKeyboard.d.ts +0 -21
  783. package/dist/BottomSheet/useMobileKeyboard.d.ts.map +0 -1
  784. package/dist/BottomSheet/useMobileKeyboard.js +0 -407
  785. package/dist/Calendar/getStandaloneShortWeekdayNames.d.ts +0 -14
  786. package/dist/Calendar/getStandaloneShortWeekdayNames.d.ts.map +0 -1
  787. package/dist/Calendar/getStandaloneShortWeekdayNames.js +0 -26
  788. package/dist/Calendar/standaloneShortWeekdayNames.generated.d.ts.map +0 -1
  789. package/dist/Layer/usePressPin.d.ts +0 -93
  790. package/dist/Layer/usePressPin.d.ts.map +0 -1
  791. package/dist/Layer/usePressPin.js +0 -363
  792. package/dist/internal/touch-sheet.d.ts +0 -21
  793. package/dist/internal/touch-sheet.d.ts.map +0 -1
  794. package/dist/internal/touch-sheet.js +0 -19
  795. package/src/BottomSheet/useMobileKeyboard.ts +0 -538
  796. package/src/Calendar/getStandaloneShortWeekdayNames.ts +0 -38
  797. package/src/Layer/usePressPin.ts +0 -510
  798. package/src/internal/touch-sheet.ts +0 -21
@@ -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]);
@@ -358,6 +358,8 @@ export function useChatStreamScroll({
358
358
 
359
359
  // --- Event listeners ---
360
360
 
361
+ // Syncs scroll and scrollend listeners on the stream container with
362
+ // `enabled`.
361
363
  useEffect(() => {
362
364
  const el = scrollRef.current;
363
365
  if (!el || !enabled) {
@@ -317,6 +317,8 @@ export function useSpeechRecognition(
317
317
  transformTranscript,
318
318
  };
319
319
 
320
+ // Releases speech recognition, the audio analyser and the animation frame on
321
+ // unmount.
320
322
  useEffect(() => {
321
323
  return () => {
322
324
  recognitionRef.current?.abort();
@@ -452,7 +452,7 @@ export function useTriggerMenu(
452
452
  });
453
453
  const {show: showPopover, hide: hidePopover} = popover;
454
454
 
455
- // Cleanup on unmount
455
+ // Releases the search timer and the anchor span on unmount.
456
456
  useEffect(() => {
457
457
  return () => {
458
458
  if (searchTimeoutRef.current) {
@@ -151,6 +151,15 @@ export const docs = {
151
151
  },
152
152
  {className: 'astryx-checkbox-label'},
153
153
  ],
154
+ vars: [
155
+ {
156
+ name: '--_indicator-press-image',
157
+ description:
158
+ "The row's touch press image, handed down to a first-party indicator that paints its own press. Set from the press paint only while the row itself is pressed; only this row declares it.",
159
+ default: 'none',
160
+ private: true,
161
+ },
162
+ ],
154
163
  },
155
164
  usage: {
156
165
  accessibility: [
@@ -390,6 +399,15 @@ export const docsZh = {
390
399
  },
391
400
  {className: 'astryx-checkbox-label'},
392
401
  ],
402
+ vars: [
403
+ {
404
+ name: '--_indicator-press-image',
405
+ description:
406
+ '复选框行的触摸按下图像,传递给自行绘制按下效果的第一方指示器。仅在该行自身被按下时根据按下涂层设置,只有该行声明它。',
407
+ default: 'none',
408
+ private: true,
409
+ },
410
+ ],
393
411
  },
394
412
  };
395
413
 
@@ -46,11 +46,11 @@ import {useTooltip} from '../Tooltip/useTooltip';
46
46
  import {mergeProps} from '../utils/mergeProps';
47
47
  import {rtlStyles} from '../utils/rtlStyles';
48
48
  import {indicatorScope} from '../Indicator/indicator.markers.stylex';
49
+ import {indicatorPressScope} from '../internal/indicatorPress.stylex';
49
50
  import {interactionOverlayStyles} from '../utils/interactionOverlay.stylex';
50
51
  import {useIndicatorFocusRing} from '../hooks/useIndicatorFocusRing';
51
52
  import {useBusyAnnouncement} from '../hooks/useBusyAnnouncement';
52
53
  import {usePressFeedback} from '../hooks/usePressFeedback';
53
- import {useResolvedRequired} from '../hooks/useResolvedRequired';
54
54
  import {useIndicator} from '../Indicator/useIndicator';
55
55
  import {themeProps} from '../utils/themeProps';
56
56
 
@@ -63,6 +63,11 @@ import english from '../i18n/generated-english/CheckboxInput/CheckboxInput.gener
63
63
 
64
64
  registerEnglishFallback(english);
65
65
 
66
+ /** Written by the touch press controller while the row is pressed. */
67
+ const PRESSED_ON = '[data-astryx-press="on"]';
68
+ /** Written by the touch press controller for the press's release. */
69
+ const PRESSED_FADING = '[data-astryx-press="fading"]';
70
+
66
71
  // The touch press's paint, declared by the shared overlay styles on the
67
72
  // element the controller writes to (`pressedAlpha`) at the press's strength,
68
73
  // 1 while on and 1 → 0 over the release, and inherited resolved by the layer
@@ -78,6 +83,20 @@ const styles = stylex.create({
78
83
  containerLabelHidden: {
79
84
  gap: 0,
80
85
  },
86
+ // An indicator in another package may not name this row's private press
87
+ // attribute. So the row hands its touch press image down to an indicator
88
+ // that paints its own press, but only in its own press states. A pressed
89
+ // ancestor row reaches it no more than it reaches the built-in box. The
90
+ // property has no default: a layered stylesheet ranks a default above the
91
+ // arms. Only this row declares it. A menu item paints its own press, so a
92
+ // mapped indicator there paints none.
93
+ indicatorPressImage: {
94
+ '--_indicator-press-image': {
95
+ default: null,
96
+ [PRESSED_ON]: 'var(--_press-paint-image)',
97
+ [PRESSED_FADING]: 'var(--_press-paint-image)',
98
+ },
99
+ },
81
100
  checkboxWrapper: {
82
101
  position: 'relative',
83
102
  display: 'flex',
@@ -86,15 +105,22 @@ const styles = stylex.create({
86
105
  flexShrink: 0,
87
106
  isolation: 'isolate',
88
107
  },
89
- // The owner paints this layer over the resolved indicator, so a theme
90
- // replacement cannot accidentally drop the component's pressed contract.
108
+ // The owner paints this layer over the resolved indicator, so a plain theme
109
+ // replacement keeps the pressed feedback. An indicator with
110
+ // `indicatorPressScope` paints its own press from what the row hands down,
111
+ // so this layer stays off over it.
91
112
  // Two pointers, two press models (see interactionOverlay.stylex.ts): a
92
113
  // mouse keeps `:active`; under a coarse pointer that arm is dropped and the
93
114
  // touch press controller writes `data-astryx-press` on the row, which this layer
94
115
  // reads off the same scope marker as the hover tint.
95
116
  indicatorPressOverlay: {
96
117
  '::after': {
97
- content: '""',
118
+ // `when.descendant` takes a pseudo-class; `:is(*)` matches any marked
119
+ // indicator.
120
+ content: {
121
+ default: '""',
122
+ [stylex.when.descendant(':is(*)', indicatorPressScope)]: 'none',
123
+ },
98
124
  position: 'absolute',
99
125
  inset: 0,
100
126
  borderRadius: radiusVars['--radius-inner'],
@@ -112,15 +138,14 @@ const styles = stylex.create({
112
138
  // what moves. Coarse pointers only, like the drop above.
113
139
  backgroundImage: {
114
140
  default: null,
115
- [stylex.when.ancestor('[data-astryx-press="on"]', indicatorScope)]: {
141
+ [stylex.when.ancestor(PRESSED_ON, indicatorScope)]: {
142
+ default: null,
143
+ '@media (pointer: coarse)': pressedOverlayImage,
144
+ },
145
+ [stylex.when.ancestor(PRESSED_FADING, indicatorScope)]: {
116
146
  default: null,
117
147
  '@media (pointer: coarse)': pressedOverlayImage,
118
148
  },
119
- [stylex.when.ancestor('[data-astryx-press="fading"]', indicatorScope)]:
120
- {
121
- default: null,
122
- '@media (pointer: coarse)': pressedOverlayImage,
123
- },
124
149
  },
125
150
  },
126
151
  },
@@ -352,10 +377,6 @@ export function CheckboxInput({
352
377
  const id = idProp || generatedId;
353
378
  const descriptionID = useId();
354
379
  const statusMessageID = useId();
355
- // Announce the effective required state (form default included) while the
356
- // native `required` stays bound to the explicit `isRequired` so a layout
357
- // default never switches on browser validation.
358
- const isEffectivelyRequired = useResolvedRequired({isRequired, isOptional});
359
380
 
360
381
  const [, startTransition] = useTransition();
361
382
  const [optimisticValue, setOptimisticValue] = useOptimistic(value);
@@ -450,6 +471,7 @@ export function CheckboxInput({
450
471
  // Hover and focus reach the checkbox visual through this ancestor
451
472
  // marker rather than props, so the whole row drives it.
452
473
  !isDisabled && indicatorScope,
474
+ !isDisabled && styles.indicatorPressImage,
453
475
  // The touch press's strength and release live on the row the
454
476
  // controller writes to; the layer over the checkbox box inherits
455
477
  // and paints it.
@@ -484,7 +506,8 @@ export function CheckboxInput({
484
506
  onClick={isDisabled ? undefined : rest.onClick}
485
507
  readOnly={isReadOnly}
486
508
  required={isRequired}
487
- aria-required={isEffectivelyRequired ? 'true' : undefined}
509
+ // A form's required default sets nothing here: an unchecked box is an answer.
510
+ aria-required={isRequired ? 'true' : undefined}
488
511
  onChange={e => {
489
512
  if (isDisabled || isBusy || isReadOnly) {
490
513
  // Activation clears the native mixed state; React restores
@@ -127,6 +127,20 @@ export const docs = {
127
127
  type: 'string',
128
128
  description: 'Description text displayed below the label.',
129
129
  },
130
+ {
131
+ name: 'isOptional',
132
+ type: 'boolean',
133
+ description:
134
+ 'Whether the group is optional. Shows the optional indicator after the group label, unless a surrounding FormLayout already makes fields optional by default.',
135
+ default: 'false',
136
+ },
137
+ {
138
+ name: 'isRequired',
139
+ type: 'boolean',
140
+ description:
141
+ 'Whether the group needs at least one checked box. Shows the required indicator after the group label by the same rules as every input field. While no box is checked, the browser blocks submit and moves focus to the first box that is neither disabled nor read-only, with its own message. A disabled or read-only group requires nothing. Show your own error text through status. Mutually exclusive with isOptional.',
142
+ default: 'false',
143
+ },
130
144
  {
131
145
  name: 'density',
132
146
  type: "'compact' | 'balanced' | 'spacious'",