@astryxdesign/core 0.7.7 → 0.7.8-canary.07ee4b5

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
@@ -0,0 +1,625 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ 'use client';
4
+
5
+ /**
6
+ * @file PickerWheel.tsx
7
+ * @input Wheel's props (wheelOptions.ts): options, value and change callback
8
+ * @output PickerWheel: one picker column that moves like UIPickerView
9
+ * @position Internal component; the Wheel under a finger (Wheel.tsx picks it)
10
+ *
11
+ * It moves on the gesture system and the shared animator, not on a native
12
+ * scroller. One strip holds the rows and is the only element that moves.
13
+ *
14
+ * SYNC: When modified, update PickerWheel.test.tsx, Wheel.tsx,
15
+ * DateInputTouch.test.tsx, DateInput.doc.mjs and TimeInput.doc.mjs.
16
+ */
17
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
18
+ import * as stylex from '@stylexjs/stylex';
19
+ import { scrollTypeOf } from "../gestures/GestureHost.js";
20
+ import { PanGestureRecognizer } from "../gestures/PanGestureRecognizer.js";
21
+ import { TapGestureRecognizer } from "../gestures/TapGestureRecognizer.js";
22
+ import { useGestureRecognizer } from "../gestures/useGestureRecognizer.js";
23
+ import { useIsomorphicLayoutEffect } from "../hooks/useIsomorphicLayoutEffect.js";
24
+ import { rubberBandInverse } from "../motion/rubberBand.js";
25
+ import { resolveMotion } from "../motion/resolveMotion.js";
26
+ import { picker, registerPickerTable } from "../motion/uikit/picker.js";
27
+ import { registerScrollTable, scroll } from "../motion/uikit/scroll.js";
28
+ import { registerTimingTable, timing } from "../motion/uikit/timing.js";
29
+ import "../theme/tokens.stylex.js";
30
+ import { colorVars, fontWeightVars, radiusVars, spacingVars, typeScaleVars } from "../theme/tokens.stylex.js";
31
+ import { focusOutlineStyles } from "../utils/focusOutline.stylex.js";
32
+ import { lockSelection } from "../gestures/selectionLock.js";
33
+ import "./tokens.stylex.js";
34
+ import { dateInputTouchGeometry, dateInputTouchSizes } from "./tokens.stylex.js";
35
+ import { useOwnScrollGesture } from "./useOwnScrollGesture.js";
36
+ import { useWheelListbox } from "./useWheelListbox.js";
37
+ import { createWheelStrip } from "./wheelStrip.js";
38
+ import { dragOffset, nearestIndex, offsetBounds, planRelease, spinCurve } from "./wheelPhysics.js";
39
+ import { endIndex, nearestEnabledIndex, steppedIndex, WHEEL_ROW_HEIGHT } from "./wheelOptions.js";
40
+
41
+ /** Row pitch, px: the touch column keeps the scrolling column's pitch. */
42
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
43
+ const ROW_HEIGHT = WHEEL_ROW_HEIGHT;
44
+ /** UIKit's picker measures scaled to that pitch (UIKit's row is 32 pt). */
45
+ const UIKIT_SCALE = ROW_HEIGHT / picker.geometry.rowHeight;
46
+ /** UIKit's rubber band dimension for the picker's table, at that pitch. */
47
+ const RUBBER_BAND_DIMENSION = picker.geometry.rubberBandDimension * UIKIT_SCALE;
48
+ const _temp = {
49
+ k87sOh: "x5mnzd7",
50
+ "$$css": true
51
+ };
52
+ const styles = {
53
+ column: {
54
+ kVAEAm: "x1n2onr6",
55
+ kUk6DE: "x1cqoux5",
56
+ k7Eaqz: "xeuugli",
57
+ kZKoxP: "xm8gem",
58
+ kVQacm: "xb3r6kr",
59
+ kI3sdo: "x1a2a7pz",
60
+ kQizK7: "x1i10hfl",
61
+ $$css: true
62
+ },
63
+ row: {
64
+ kVAEAm: "x10l6tqk",
65
+ kkqhue: "x17y0mx6",
66
+ kZKoxP: "x6hpsvf",
67
+ k1xSpc: "x78zum5",
68
+ kGNEyG: "x6s0dn4",
69
+ kjj79g: "xl56j7k",
70
+ kg3NbH: "xf314gf",
71
+ kB7OPa: "x9f619",
72
+ kGuDYH: "x18juvz8",
73
+ k63SB2: "x1sodnla",
74
+ kMwMTN: "x1tgivj0",
75
+ khDVqt: "xuxw1ft",
76
+ kVQacm: "xb3r6kr",
77
+ kg5iWk: "xlyipyv",
78
+ kfSwDN: "x87ps6o",
79
+ $$css: true
80
+ },
81
+ rowActive: {
82
+ kMwMTN: "xjse4m1",
83
+ k63SB2: "x2mo6ok",
84
+ $$css: true
85
+ },
86
+ rowDisabled: {
87
+ kMwMTN: "xnbbluu",
88
+ $$css: true
89
+ },
90
+ rowAt: top => [_temp, {
91
+ "--x-insetBlockStart": (val => typeof val === "number" ? val + "px" : val != null ? val : undefined)(top)
92
+ }]
93
+ };
94
+
95
+ /**
96
+ * The motion tables the wheel resolves internal roles from: the timing curve,
97
+ * the scroll bounce and the picker's tap spin. Nothing registers on import
98
+ * (motion/roles.ts) and each register is idempotent, so the wheel calls this
99
+ * right before it resolves a role.
100
+ */
101
+ function registerWheelTables() {
102
+ registerTimingTable();
103
+ registerScrollTable();
104
+ registerPickerTable();
105
+ }
106
+
107
+ /**
108
+ * A turn onto `to` on the picker's tap spin: its duration and its curve, as
109
+ * resolved under `column` when the turn starts.
110
+ */
111
+ function turnCurve(column, from, to) {
112
+ registerWheelTables();
113
+ return spinCurve(from, to, resolveMotion(column, picker.tapSpin, 'durationMs') / 1000, resolveMotion(column, timing.curves.move));
114
+ }
115
+ /**
116
+ * One UIPickerView column: the Wheel under a finger. It does not scroll
117
+ * natively. WebKit gives every scroll-snapping scroller the fast deceleration
118
+ * rate, and a scroller's momentum cannot be caught or measured. A busy main
119
+ * thread does not stop or jump a motion here. Under Reduce Motion a throw's
120
+ * momentum still plays, as iOS scrolling does. Every other motion
121
+ * cross-fades onto its row.
122
+ *
123
+ * @example
124
+ * ```
125
+ * <PickerWheel label="Month" options={monthOptions} value={month} onChange={setMonth} />
126
+ * ```
127
+ */
128
+ export function PickerWheel({
129
+ label,
130
+ options,
131
+ value,
132
+ onChange,
133
+ isActive = true
134
+ }) {
135
+ const columnRef = useRef(null);
136
+ const rowsRef = useRef(null);
137
+ const rowCount = options.length;
138
+ const layout = useMemo(() => ({
139
+ rowHeight: ROW_HEIGHT,
140
+ rowCount
141
+ }), [rowCount]);
142
+ const [motion] = useState(() => createWheelStrip(layout));
143
+ const selectedIndex = Math.max(0, options.findIndex(option => option.value === value));
144
+ const dragRef = useRef(null);
145
+ /** A finger landed on a moving wheel and stopped it. */
146
+ const caughtRef = useRef(false);
147
+
148
+ // The latest props, for the motion's and the gesture listeners' callbacks,
149
+ // which are attached once and outlive a render.
150
+ const latestRef = useRef({
151
+ options,
152
+ value,
153
+ onChange,
154
+ layout
155
+ });
156
+ useIsomorphicLayoutEffect(() => {
157
+ latestRef.current = {
158
+ options,
159
+ value,
160
+ onChange,
161
+ layout
162
+ };
163
+ });
164
+
165
+ // The row under the band is marked as the scrolling column marks it. At rest
166
+ // that is the committed row, styled in render. While a finger drags the
167
+ // wheel, the row reaching the band is painted directly, so marking it never
168
+ // re-renders. A motion unmarks every row as it starts and marks the row it
169
+ // stops or ends on. The compositor then plays it with no layout or paint per
170
+ // frame, and no mark rides away from the band.
171
+ const paintedRef = useRef(new Set());
172
+ const paintRow = useCallback(position => {
173
+ const container = rowsRef.current;
174
+ if (container == null || container.children.length === 0) {
175
+ return;
176
+ }
177
+ const rows = container.children;
178
+ const {
179
+ options: currentOptions,
180
+ value: currentValue
181
+ } = latestRef.current;
182
+ const active = position == null ? null : rows[position] ?? null;
183
+ const painted = paintedRef.current;
184
+ for (const row of painted) {
185
+ row.style.removeProperty('color');
186
+ row.style.removeProperty('font-weight');
187
+ }
188
+ painted.clear();
189
+ const selected = currentOptions.findIndex(option => option.value === currentValue);
190
+ if (rows[selected] != null && rows[selected] !== active) {
191
+ // The committed row's own mark gives way while another row is under
192
+ // the band.
193
+ const row = rows[selected];
194
+ row.style.color = currentOptions[selected]?.isDisabled ? colorVars['--color-text-disabled'] : colorVars['--color-text-primary'];
195
+ row.style.fontWeight = fontWeightVars['--font-weight-normal'];
196
+ painted.add(row);
197
+ }
198
+ if (active == null || position == null) {
199
+ return;
200
+ }
201
+ active.style.color = currentOptions[position]?.isDisabled ? colorVars['--color-text-disabled'] : colorVars['--color-text-accent'];
202
+ active.style.fontWeight = fontWeightVars['--font-weight-semibold'];
203
+ painted.add(active);
204
+ }, []);
205
+
206
+ // Every motion the wheel starts. Under Reduce Motion a transition lands
207
+ // without travel: the animator cross-fades the strip onto its row. The
208
+ // momentum that continues a throw is not a transition, so it plays as is.
209
+ const move = useCallback((curve, options = {}) => {
210
+ paintRow(null);
211
+ // The mark comes back from the row the motion reports nearest when it
212
+ // ends, even the row it began on.
213
+ motion.forgetNearest();
214
+ motion.play(curve, options);
215
+ }, [motion, paintRow]);
216
+
217
+ // The wheel came to rest at `offset`: commit, or turn on to the row the
218
+ // rest rule names first.
219
+ const arrive = useCallback(offset => {
220
+ const current = latestRef.current;
221
+ const row = nearestIndex(offset, current.layout);
222
+ const committed = current.options.findIndex(option => option.value === current.value);
223
+ // A rest on the committed row is not a stop to correct. A committed value
224
+ // outside the bounds stays until a person moves the wheel off it, as in
225
+ // the scrolling column.
226
+ let step = 0;
227
+ if (row !== committed) {
228
+ step = nearestEnabledIndex(current.options, row, Math.max(0, committed)) - row;
229
+ }
230
+ if (step !== 0) {
231
+ const target = row + step;
232
+ move(turnCurve(columnRef.current, offset, target * ROW_HEIGHT), {
233
+ onEnd: (outcome, end) => {
234
+ if (outcome === 'arrived') {
235
+ arrive(end);
236
+ }
237
+ }
238
+ });
239
+ return;
240
+ }
241
+ const option = current.options[row];
242
+ if (option != null && !option.isDisabled && option.value !== current.value) {
243
+ current.onChange(option.value);
244
+ }
245
+ }, [move]);
246
+ const onEnd = useCallback((outcome, offset) => {
247
+ if (outcome === 'arrived') {
248
+ arrive(offset);
249
+ }
250
+ }, [arrive]);
251
+
252
+ // The animator holds the strip while it is attached, and lets it go as it
253
+ // detaches or is replaced.
254
+ const attachStrip = useCallback(strip => {
255
+ rowsRef.current = strip;
256
+ motion.attach(strip);
257
+ return () => {
258
+ rowsRef.current = null;
259
+ motion.attach(null);
260
+ };
261
+ }, [motion]);
262
+
263
+ // The motion's layout follows the rows.
264
+ useIsomorphicLayoutEffect(() => {
265
+ motion.setLayout(layout);
266
+ }, [motion, layout]);
267
+
268
+ // The band's mark follows the row the motion reports nearest the band.
269
+ useIsomorphicLayoutEffect(() => {
270
+ motion.onNearestChange(paintRow);
271
+ return () => motion.onNearestChange(null);
272
+ }, [motion, paintRow]);
273
+ // At rest on the committed row, render's own mark takes over again.
274
+ useIsomorphicLayoutEffect(() => {
275
+ if (motion.isMoving() || dragRef.current != null || nearestIndex(motion.offset(), layout) !== selectedIndex) {
276
+ return;
277
+ }
278
+ for (const row of paintedRef.current) {
279
+ row.style.removeProperty('color');
280
+ row.style.removeProperty('font-weight');
281
+ }
282
+ paintedRef.current.clear();
283
+ });
284
+
285
+ // The motion's animations and timers end with the wheel.
286
+ useEffect(() => () => motion.dispose(), [motion]);
287
+
288
+ // Park the committed row under the band when the wheel is shown, at once. A
289
+ // value that changes from outside while the wheel is shown turns the wheel
290
+ // onto its row instead. UIDatePicker turns onto its maximum the same way, and
291
+ // never jumps there. For example, a bound clamps the time after another wheel
292
+ // turned, or the calendar moved to another month. A second change during that
293
+ // turn turns on from where the wheel is drawn. Never while a finger or a
294
+ // motion of its own owns the wheel.
295
+ const parkedRef = useRef(false);
296
+ const parkTurnRef = useRef(null);
297
+ useIsomorphicLayoutEffect(() => {
298
+ if (!isActive) {
299
+ parkedRef.current = false;
300
+ return;
301
+ }
302
+ if (dragRef.current != null || motion.isMoving() && parkTurnRef.current == null) {
303
+ return;
304
+ }
305
+ const target = selectedIndex * ROW_HEIGHT;
306
+ const shown = motion.isMoving() ? motion.stop() : motion.offset();
307
+ const isAway = Math.abs(shown - target) > 0.01;
308
+ if (isAway && parkedRef.current) {
309
+ // The turn's own end paints the band's row.
310
+ const turn = {};
311
+ parkTurnRef.current = turn;
312
+ move(turnCurve(columnRef.current, shown, target), {
313
+ onEnd: () => {
314
+ if (parkTurnRef.current === turn) {
315
+ parkTurnRef.current = null;
316
+ }
317
+ }
318
+ });
319
+ return;
320
+ }
321
+ if (isAway) {
322
+ motion.setOffset(target);
323
+ }
324
+ parkedRef.current = true;
325
+ }, [isActive, selectedIndex, motion, move]);
326
+
327
+ // A hidden wheel keeps no motion running and holds no drag. Hiding it
328
+ // mid-drag ends the pan without calling its listener, because the toggle's
329
+ // owner owns that end. So the drag is dropped here, uncommitted. Shown again,
330
+ // the wheel parks the committed row.
331
+ useEffect(() => {
332
+ if (!isActive) {
333
+ dragRef.current = null;
334
+ motion.stop();
335
+ }
336
+ }, [isActive, motion]);
337
+
338
+ // A finger lands: a moving wheel stops where it is on screen.
339
+ const onTouchDown = useCallback(time => {
340
+ caughtRef.current = motion.isMoving();
341
+ if (caughtRef.current) {
342
+ motion.stop(time);
343
+ }
344
+ }, [motion]);
345
+
346
+ // The latest touch-down handler, for the gesture listener attached once.
347
+ const onTouchDownRef = useRef(onTouchDown);
348
+ useIsomorphicLayoutEffect(() => {
349
+ onTouchDownRef.current = onTouchDown;
350
+ });
351
+ const release = useCallback(velocity => {
352
+ registerWheelTables();
353
+ const plan = planRelease(motion.offset(), velocity, latestRef.current.layout, resolveMotion(columnRef.current, scroll.bounce));
354
+ move(plan.curve, {
355
+ ticks: true,
356
+ onEnd,
357
+ touchRelease: true,
358
+ momentum: plan.kind === 'coast' || plan.kind === 'edge'
359
+ });
360
+ }, [motion, move, onEnd]);
361
+ const pan = useGestureRecognizer(columnRef, () => new PanGestureRecognizer({
362
+ name: 'wheel-pan',
363
+ direction: 'vertical',
364
+ // A trackpad's two-finger scroll drives the pan as a finger does. The
365
+ // rows follow, coast on at the lift with the fingers' last speed, and
366
+ // rest by the rest rule. A mouse wheel's notches never reach the pan.
367
+ allowedScrollTypes: ['continuous'],
368
+ // A held finger on the wheel never starts text selection or the
369
+ // callout.
370
+ selectionLock: lockSelection,
371
+ shouldReceiveTouch: (_pan, touch) => {
372
+ onTouchDownRef.current(touch.time);
373
+ return true;
374
+ }
375
+ }), recognizer => {
376
+ const {
377
+ layout: currentLayout
378
+ } = latestRef.current;
379
+ switch (recognizer.state) {
380
+ case 'began':
381
+ {
382
+ const shown = motion.isMoving() ? motion.stop() : motion.offset();
383
+ dragRef.current = {
384
+ start: fingerOffset(shown, currentLayout)
385
+ };
386
+ motion.resetDrag();
387
+ motion.setOffset(dragOffset(dragRef.current.start - recognizer.translation().y, currentLayout), {
388
+ ticks: true
389
+ });
390
+ break;
391
+ }
392
+ case 'changed':
393
+ {
394
+ const drag = dragRef.current;
395
+ if (drag == null) {
396
+ break;
397
+ }
398
+ motion.setOffset(dragOffset(drag.start - recognizer.translation().y, currentLayout), {
399
+ ticks: true
400
+ });
401
+ break;
402
+ }
403
+ case 'ended':
404
+ {
405
+ const drag = dragRef.current;
406
+ dragRef.current = null;
407
+ // A scroll view's release velocity (the pan's last two, blended as
408
+ // UIPickerView's); the rows move against the finger.
409
+ release(drag == null ? 0 : -recognizer.scrollVelocity().y);
410
+ break;
411
+ }
412
+ case 'cancelled':
413
+ {
414
+ dragRef.current = null;
415
+ release(0);
416
+ break;
417
+ }
418
+ case 'possible':
419
+ case 'failed':
420
+ break;
421
+ }
422
+ }, {
423
+ isEnabled: isActive
424
+ });
425
+
426
+ // A touch that stopped a moving wheel and lifted without dragging: the
427
+ // wheel eases onto the nearest row, as a release without velocity does.
428
+ useEffect(() => pan.addTransitionListener((_pan, _from, to) => {
429
+ // The flag stays up until the next touch lands. The tap recognizer may
430
+ // hear of this lift after the pan does, and must not read it as a tap
431
+ // on a row.
432
+ if (to === 'failed' && caughtRef.current && !motion.isMoving()) {
433
+ release(0);
434
+ }
435
+ }), [pan, motion, release]);
436
+ useGestureRecognizer(columnRef, () => new TapGestureRecognizer({
437
+ name: 'wheel-tap'
438
+ }), recognizer => {
439
+ if (recognizer.state !== 'ended' || caughtRef.current) {
440
+ return;
441
+ }
442
+ const column = columnRef.current;
443
+ if (column == null) {
444
+ return;
445
+ }
446
+ const box = column.getBoundingClientRect();
447
+ const {
448
+ y
449
+ } = recognizer.location();
450
+ const offset = motion.offset();
451
+ const currentLayout = latestRef.current.layout;
452
+ const target = rowAtPoint(y - (box.top + box.height / 2), offset, currentLayout);
453
+ if (target == null || target === nearestIndex(offset, currentLayout)) {
454
+ return;
455
+ }
456
+ move(turnCurve(columnRef.current, offset, target * ROW_HEIGHT), {
457
+ onEnd
458
+ });
459
+ }, {
460
+ isEnabled: isActive
461
+ });
462
+
463
+ // Keep the finger, and the pointer it lands with: inside a BottomSheet the
464
+ // sheet would otherwise read a downward drag here as swipe-to-dismiss. This
465
+ // wheel pans through the gesture system, which never cancels the pointer
466
+ // the sheet armed on (see useOwnScrollGesture).
467
+ useOwnScrollGesture(columnRef, 'all', {
468
+ isEnabled: isActive,
469
+ isPointerKept: true
470
+ });
471
+
472
+ // A key commits the row at `position` at once and turns the wheel there
473
+ // from `offset`.
474
+ const turnToPosition = useCallback((position, offset) => {
475
+ const current = latestRef.current;
476
+ const option = current.options[position];
477
+ if (option.value !== current.value) {
478
+ current.onChange(option.value);
479
+ }
480
+ move(turnCurve(columnRef.current, offset, position * ROW_HEIGHT));
481
+ }, [move]);
482
+ const moveBy = useCallback(delta => {
483
+ const current = latestRef.current;
484
+ if (current.options.length === 0 || delta === 0) {
485
+ return;
486
+ }
487
+ // Keys step from the row the wheel is heading to, not the one it is
488
+ // passing: two quick presses move two rows. A key with nowhere to go
489
+ // leaves a turn in flight to finish on its row.
490
+ const row = steppedIndex(current.options, nearestIndex(motion.target(), current.layout), delta);
491
+ if (row == null) {
492
+ return;
493
+ }
494
+ const offset = motion.isMoving() ? motion.stop() : motion.offset();
495
+ turnToPosition(row, offset);
496
+ }, [motion, turnToPosition]);
497
+
498
+ // A mouse wheel's notch turns the wheel one row, as an arrow key does, with
499
+ // no coast. The gesture host leaves a notch to what is under the pointer,
500
+ // which is this wheel. A wheel the pan took arrives here already prevented.
501
+ // A ctrl-wheel stays the page's zoom, and a sideways scroll stays the
502
+ // page's.
503
+ useEffect(() => {
504
+ const column = columnRef.current;
505
+ if (column == null || !isActive) {
506
+ return undefined;
507
+ }
508
+ const onWheel = event => {
509
+ if (event.defaultPrevented || event.ctrlKey || event.shiftKey || event.deltaY === 0 || Math.abs(event.deltaX) > Math.abs(event.deltaY) || scrollTypeOf(event) !== 'discrete') {
510
+ return;
511
+ }
512
+ event.preventDefault();
513
+ moveBy(Math.sign(event.deltaY));
514
+ };
515
+ column.addEventListener('wheel', onWheel, {
516
+ passive: false
517
+ });
518
+ return () => column.removeEventListener('wheel', onWheel);
519
+ }, [isActive, moveBy]);
520
+
521
+ // Home and End: the first and the last enabled row.
522
+ const moveToEnd = useCallback(end => {
523
+ const row = endIndex(latestRef.current.options, end);
524
+ if (row == null) {
525
+ return;
526
+ }
527
+ const offset = motion.isMoving() ? motion.stop() : motion.offset();
528
+ turnToPosition(row, offset);
529
+ }, [motion, turnToPosition]);
530
+
531
+ // A click on a row commits it at once and turns the wheel there, as the arrow
532
+ // keys do. The click comes from assistive technology, a keyboard, a test, or
533
+ // a mouse the tap recognizer did not take. A finger's tap is the tap
534
+ // recognizer's, and the click it would produce is swallowed by the gesture
535
+ // system.
536
+ const activateRow = useCallback(row => {
537
+ const current = latestRef.current;
538
+ const option = current.options[row];
539
+ if (option == null || option.isDisabled) {
540
+ return;
541
+ }
542
+ const offset = motion.isMoving() ? motion.stop() : motion.offset();
543
+ if (option.value !== current.value) {
544
+ current.onChange(option.value);
545
+ }
546
+ move(turnCurve(columnRef.current, offset, row * ROW_HEIGHT));
547
+ }, [motion, move]);
548
+ const {
549
+ listboxProps,
550
+ optionProps
551
+ } = useWheelListbox({
552
+ label,
553
+ options,
554
+ value,
555
+ // The committed row: a value set from outside shows in the same render.
556
+ activeIndex: selectedIndex,
557
+ stepBy: moveBy,
558
+ toEnd: moveToEnd,
559
+ activate: activateRow
560
+ });
561
+ return /*#__PURE__*/_jsx("div", {
562
+ ref: columnRef,
563
+ ...listboxProps,
564
+ "data-wheel": "",
565
+ ...stylex.props(styles.column, focusOutlineStyles.focusVisible),
566
+ children: /*#__PURE__*/_jsxs("div", {
567
+ "data-wheel-fade": "",
568
+ ...{
569
+ className: "x10l6tqk x10a8y8t x47corl xheapza"
570
+ },
571
+ children: [/*#__PURE__*/_jsx("div", {
572
+ "aria-hidden": "true",
573
+ ...{
574
+ className: "x10l6tqk x17y0mx6 x7rbydg x6hpsvf xh6dtrn x17x4s8c x47corl"
575
+ }
576
+ }), /*#__PURE__*/_jsx("div", {
577
+ ref: attachStrip,
578
+ "data-wheel-strip": "",
579
+ ...{
580
+ className: "x10l6tqk x17y0mx6 x7rbydg x47corl"
581
+ },
582
+ children: options.map((option, index) => /*#__PURE__*/_jsx("div", {
583
+ ...optionProps(option, index),
584
+ "data-wheel-row": "",
585
+ "data-label": option.label,
586
+ ...stylex.props(styles.row, styles.rowAt(`${index * ROW_HEIGHT}px`), index === selectedIndex && styles.rowActive, option.isDisabled && styles.rowDisabled),
587
+ children: option.label
588
+ }, option.value))
589
+ })]
590
+ })
591
+ });
592
+ }
593
+ PickerWheel.displayName = 'PickerWheel';
594
+
595
+ /**
596
+ * The row under a point `dy` px below the band's centre, or null past either
597
+ * end of the list.
598
+ */
599
+ function rowAtPoint(dy, offset, layout) {
600
+ const position = Math.round((offset + dy) / layout.rowHeight);
601
+ if (position < 0 || position >= layout.rowCount) {
602
+ return null;
603
+ }
604
+ return position;
605
+ }
606
+
607
+ /**
608
+ * The finger's offset for a shown one. Past an end, it is the travel that the
609
+ * rubber band shows as `shown`. So a drag that starts in a bounce continues
610
+ * without a jump.
611
+ */
612
+ function fingerOffset(shown, layout) {
613
+ const {
614
+ min,
615
+ max
616
+ } = offsetBounds(layout);
617
+ const dimension = RUBBER_BAND_DIMENSION;
618
+ if (shown < min) {
619
+ return min + rubberBandInverse(shown - min, dimension);
620
+ }
621
+ if (shown > max) {
622
+ return max + rubberBandInverse(shown - max, dimension);
623
+ }
624
+ return shown;
625
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"TouchDateField.d.ts","sourceRoot":"","sources":["../../src/DateInput/TouchDateField.tsx"],"names":[],"mappings":"AAiEA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAwehD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,aAAqB,EACrB,WAAW,EACX,UAAkB,EAClB,UAAkB,EAClB,UAAkB,EAClB,eAAe,EACf,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,SAAiB,EACjB,GAAG,EACH,GAAG,EACH,eAAe,EACf,WAAW,EAAE,oBAAoB,EACjC,IAAI,EAAE,QAAQ,EACd,MAAM,EACN,aAA0B,EAC1B,YAAY,EACZ,QAAgB,EAIhB,cAAc,EAAE,eAAe,EAC/B,YAAY,EAAE,gBAAoB,EAClC,MAAoB,EACpB,KAAK,EACL,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,GAAG,EACH,GAAG,SAAS,EACb,EAAE,cAAc,+BAgxBhB;yBApzBe,cAAc"}
1
+ {"version":3,"file":"TouchDateField.d.ts","sourceRoot":"","sources":["../../src/DateInput/TouchDateField.tsx"],"names":[],"mappings":"AAiEA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAuehD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,aAAqB,EACrB,WAAW,EACX,UAAkB,EAClB,UAAkB,EAClB,UAAkB,EAClB,eAAe,EACf,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,SAAiB,EACjB,GAAG,EACH,GAAG,EACH,eAAe,EACf,WAAW,EAAE,oBAAoB,EACjC,IAAI,EAAE,QAAQ,EACd,MAAM,EACN,aAA0B,EAC1B,YAAY,EACZ,QAAgB,EAIhB,cAAc,EAAE,eAAe,EAC/B,YAAY,EAAE,gBAAoB,EAClC,MAAoB,EACpB,KAAK,EACL,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,GAAG,EACH,GAAG,SAAS,EACb,EAAE,cAAc,+BAuvBhB;yBA3xBe,cAAc"}