@astryxdesign/core 0.7.7 → 0.7.8-canary.36cde5e

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 (581) 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 +5 -0
  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 +15 -16
  20. package/dist/Carousel/Carousel.d.ts.map +1 -1
  21. package/dist/Carousel/Carousel.js +2 -0
  22. package/dist/Chat/ChatComposerInput.d.ts.map +1 -1
  23. package/dist/Chat/ChatComposerInput.js +4 -0
  24. package/dist/Chat/ChatMessageList.d.ts.map +1 -1
  25. package/dist/Chat/ChatMessageList.js +2 -1
  26. package/dist/Chat/useChatDictation.d.ts.map +1 -1
  27. package/dist/Chat/useChatDictation.js +2 -0
  28. package/dist/Chat/useChatNewMessages.js +1 -1
  29. package/dist/Chat/useChatStreamScroll.d.ts.map +1 -1
  30. package/dist/Chat/useChatStreamScroll.js +2 -0
  31. package/dist/Chat/useSpeechRecognition.d.ts.map +1 -1
  32. package/dist/Chat/useSpeechRecognition.js +3 -0
  33. package/dist/Chat/useTriggerMenu.js +1 -1
  34. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  35. package/dist/CheckboxInput/CheckboxInput.js +17 -12
  36. package/dist/CodeBlock/CodeBlock.d.ts +10 -1
  37. package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
  38. package/dist/CodeBlock/CodeBlock.js +28 -11
  39. package/dist/CommandPalette/CommandPalette.d.ts.map +1 -1
  40. package/dist/CommandPalette/CommandPalette.js +2 -0
  41. package/dist/CommandPalette/CommandPaletteItem.d.ts.map +1 -1
  42. package/dist/CommandPalette/CommandPaletteItem.js +2 -0
  43. package/dist/ComplexSelector/ComplexSelector.d.ts +4 -1
  44. package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
  45. package/dist/ComplexSelector/ComplexSelector.js +14 -4
  46. package/dist/ContextMenu/ContextMenu.js +2 -2
  47. package/dist/DateInput/MonthScroller.d.ts.map +1 -1
  48. package/dist/DateInput/MonthScroller.js +5 -2
  49. package/dist/DateInput/PickerWheel.d.ts +19 -0
  50. package/dist/DateInput/PickerWheel.d.ts.map +1 -0
  51. package/dist/DateInput/PickerWheel.js +625 -0
  52. package/dist/DateInput/TouchDateField.d.ts.map +1 -1
  53. package/dist/DateInput/TouchDateField.js +1 -0
  54. package/dist/DateInput/Wheel.d.ts +18 -37
  55. package/dist/DateInput/Wheel.d.ts.map +1 -1
  56. package/dist/DateInput/Wheel.js +84 -113
  57. package/dist/DateInput/useOwnScrollGesture.d.ts +10 -0
  58. package/dist/DateInput/useOwnScrollGesture.d.ts.map +1 -1
  59. package/dist/DateInput/useOwnScrollGesture.js +16 -3
  60. package/dist/DateInput/usePointerDragScroll.d.ts.map +1 -1
  61. package/dist/DateInput/usePointerDragScroll.js +2 -0
  62. package/dist/DateInput/useScrollSettle.d.ts.map +1 -1
  63. package/dist/DateInput/useScrollSettle.js +3 -0
  64. package/dist/DateInput/useWheelListbox.d.ts +59 -0
  65. package/dist/DateInput/useWheelListbox.d.ts.map +1 -0
  66. package/dist/DateInput/useWheelListbox.js +88 -0
  67. package/dist/DateInput/wheelOptions.d.ts +74 -0
  68. package/dist/DateInput/wheelOptions.d.ts.map +1 -0
  69. package/dist/DateInput/wheelOptions.js +98 -0
  70. package/dist/DateInput/wheelPhysics.d.ts +127 -0
  71. package/dist/DateInput/wheelPhysics.d.ts.map +1 -0
  72. package/dist/DateInput/wheelPhysics.js +341 -0
  73. package/dist/DateInput/wheelStrip.d.ts +92 -0
  74. package/dist/DateInput/wheelStrip.d.ts.map +1 -0
  75. package/dist/DateInput/wheelStrip.js +258 -0
  76. package/dist/DateTimeInput/TouchDateTimeField.d.ts.map +1 -1
  77. package/dist/DateTimeInput/TouchDateTimeField.js +2 -0
  78. package/dist/Dialog/Dialog.d.ts.map +1 -1
  79. package/dist/Dialog/Dialog.js +9 -32
  80. package/dist/Drawer/useDrawerDialogPresence.d.ts.map +1 -1
  81. package/dist/Drawer/useDrawerDialogPresence.js +3 -0
  82. package/dist/DropdownMenu/useMenuOverflow.d.ts.map +1 -1
  83. package/dist/DropdownMenu/useMenuOverflow.js +5 -0
  84. package/dist/Field/Field.js +2 -2
  85. package/dist/FieldStatus/useFieldStatusAnnouncement.d.ts.map +1 -1
  86. package/dist/FieldStatus/useFieldStatusAnnouncement.js +1 -0
  87. package/dist/FormLayout/FormLayout.d.ts +5 -1
  88. package/dist/FormLayout/FormLayout.d.ts.map +1 -1
  89. package/dist/HoverCard/HoverCard.d.ts +6 -4
  90. package/dist/HoverCard/HoverCard.d.ts.map +1 -1
  91. package/dist/HoverCard/HoverCard.js +48 -3
  92. package/dist/HoverCard/useHoverCard.d.ts +5 -4
  93. package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
  94. package/dist/HoverCard/useHoverCard.js +20 -33
  95. package/dist/Icon/Icon.d.ts +5 -1
  96. package/dist/Icon/Icon.d.ts.map +1 -1
  97. package/dist/Icon/Icon.js +5 -2
  98. package/dist/Item/useSwipeAction.d.ts.map +1 -1
  99. package/dist/Item/useSwipeAction.js +3 -0
  100. package/dist/Layer/modalOutlet.d.ts.map +1 -1
  101. package/dist/Layer/modalOutlet.js +2 -0
  102. package/dist/Layer/outsidePress.d.ts.map +1 -1
  103. package/dist/Layer/outsidePress.js +1 -0
  104. package/dist/Layer/useLayer.d.ts.map +1 -1
  105. package/dist/Layer/useLayer.js +3 -0
  106. package/dist/Layer/useLayerDismissal.d.ts.map +1 -1
  107. package/dist/Layer/useLayerDismissal.js +3 -0
  108. package/dist/Layer/usePressPin.d.ts +17 -5
  109. package/dist/Layer/usePressPin.d.ts.map +1 -1
  110. package/dist/Layer/usePressPin.js +62 -12
  111. package/dist/Layer/useTouchTrigger.d.ts.map +1 -1
  112. package/dist/Layer/useTouchTrigger.js +3 -0
  113. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  114. package/dist/Lightbox/Lightbox.js +19 -0
  115. package/dist/MobileNav/MobileNav.d.ts +3 -2
  116. package/dist/MobileNav/MobileNav.d.ts.map +1 -1
  117. package/dist/MobileNav/MobileNav.js +9 -25
  118. package/dist/Outline/useOutlineFromDOM.d.ts.map +1 -1
  119. package/dist/Outline/useOutlineFromDOM.js +3 -0
  120. package/dist/Outline/useScrollSpy.d.ts.map +1 -1
  121. package/dist/Outline/useScrollSpy.js +3 -0
  122. package/dist/OverflowList/OverflowList.d.ts.map +1 -1
  123. package/dist/OverflowList/OverflowList.js +3 -0
  124. package/dist/Popover/Popover.d.ts.map +1 -1
  125. package/dist/Popover/Popover.js +6 -0
  126. package/dist/PowerSearch/PowerSearch.d.ts +43 -4
  127. package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
  128. package/dist/PowerSearch/PowerSearch.js +445 -134
  129. package/dist/PowerSearch/PowerSearchBottomSheet.d.ts +102 -0
  130. package/dist/PowerSearch/PowerSearchBottomSheet.d.ts.map +1 -0
  131. package/dist/PowerSearch/PowerSearchBottomSheet.js +1919 -0
  132. package/dist/PowerSearch/PowerSearchEditPopover.d.ts +35 -2
  133. package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
  134. package/dist/PowerSearch/PowerSearchEditPopover.js +25 -6
  135. package/dist/PowerSearch/PowerSearchFilterEditor.d.ts +1 -1
  136. package/dist/PowerSearch/PowerSearchFilterEditor.d.ts.map +1 -1
  137. package/dist/PowerSearch/PowerSearchFilterEditor.js +4 -2
  138. package/dist/PowerSearch/PowerSearchToken.d.ts +1 -1
  139. package/dist/PowerSearch/PowerSearchToken.d.ts.map +1 -1
  140. package/dist/PowerSearch/PowerSearchToken.js +7 -2
  141. package/dist/PowerSearch/PowerSearchValueEditor.d.ts +38 -3
  142. package/dist/PowerSearch/PowerSearchValueEditor.d.ts.map +1 -1
  143. package/dist/PowerSearch/PowerSearchValueEditor.js +193 -83
  144. package/dist/PowerSearch/formatFilterValue.d.ts +18 -6
  145. package/dist/PowerSearch/formatFilterValue.d.ts.map +1 -1
  146. package/dist/PowerSearch/formatFilterValue.js +33 -12
  147. package/dist/PowerSearch/formatTokenValue.d.ts +28 -0
  148. package/dist/PowerSearch/formatTokenValue.d.ts.map +1 -0
  149. package/dist/PowerSearch/formatTokenValue.js +162 -0
  150. package/dist/PowerSearch/powerSearchDateZone.d.ts +21 -0
  151. package/dist/PowerSearch/powerSearchDateZone.d.ts.map +1 -0
  152. package/dist/PowerSearch/powerSearchDateZone.js +37 -0
  153. package/dist/PowerSearch/powerSearchSheetUtils.d.ts +65 -0
  154. package/dist/PowerSearch/powerSearchSheetUtils.d.ts.map +1 -0
  155. package/dist/PowerSearch/powerSearchSheetUtils.js +168 -0
  156. package/dist/PowerSearch/types.d.ts +2 -0
  157. package/dist/PowerSearch/types.d.ts.map +1 -1
  158. package/dist/ProgressBar/ProgressBarTouch.d.ts.map +1 -1
  159. package/dist/ProgressBar/ProgressBarTouch.js +2 -0
  160. package/dist/RadioList/RadioList.d.ts.map +1 -1
  161. package/dist/RadioList/RadioList.js +3 -2
  162. package/dist/RadioList/RadioListItem.d.ts +1 -1
  163. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  164. package/dist/RadioList/RadioListItem.js +5 -3
  165. package/dist/Resizable/ResizeHandle.d.ts +2 -1
  166. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  167. package/dist/Resizable/ResizeHandle.js +101 -77
  168. package/dist/Resizable/createResizable.d.ts +145 -0
  169. package/dist/Resizable/createResizable.d.ts.map +1 -0
  170. package/dist/Resizable/createResizable.js +575 -0
  171. package/dist/Resizable/useResizable.d.ts +3 -3
  172. package/dist/Resizable/useResizable.d.ts.map +1 -1
  173. package/dist/Resizable/useResizable.js +252 -459
  174. package/dist/SegmentedControl/useSegmentedSelectionMotion.d.ts.map +1 -1
  175. package/dist/SegmentedControl/useSegmentedSelectionMotion.js +3 -3
  176. package/dist/SelectableCard/SelectableCard.d.ts +2 -0
  177. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  178. package/dist/SelectableCard/SelectableCard.js +36 -11
  179. package/dist/SelectableCard/selectableCardInput.d.ts +12 -0
  180. package/dist/SelectableCard/selectableCardInput.d.ts.map +1 -0
  181. package/dist/SelectableCard/selectableCardInput.js +20 -0
  182. package/dist/Selector/Selector.d.ts.map +1 -1
  183. package/dist/Selector/Selector.js +5 -8
  184. package/dist/Slider/sliderTouchController.js +2 -2
  185. package/dist/Spinner/Spinner.d.ts +1 -1
  186. package/dist/Spinner/Spinner.d.ts.map +1 -1
  187. package/dist/Spinner/Spinner.js +60 -58
  188. package/dist/Switch/Switch.d.ts.map +1 -1
  189. package/dist/Switch/Switch.js +4 -10
  190. package/dist/Switch/useSwitchTouch.js +4 -4
  191. package/dist/Table/BaseTable.d.ts.map +1 -1
  192. package/dist/Table/BaseTable.js +29 -8
  193. package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
  194. package/dist/Table/plugins/columnResize/useTableColumnResize.js +3 -1
  195. package/dist/Table/plugins/filtering/useTableFiltering.d.ts.map +1 -1
  196. package/dist/Table/plugins/filtering/useTableFiltering.js +2 -1
  197. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  198. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +4 -0
  199. package/dist/Table/plugins/stickyColumns/useTableStickyColumns.d.ts.map +1 -1
  200. package/dist/Table/plugins/stickyColumns/useTableStickyColumns.js +2 -0
  201. package/dist/TextInput/TextInput.d.ts +2 -2
  202. package/dist/TextInput/TextInput.d.ts.map +1 -1
  203. package/dist/TextInput/TextInput.js +10 -7
  204. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  205. package/dist/TimeInput/TimeInput.js +2 -0
  206. package/dist/TimeInput/TouchTimeField.d.ts.map +1 -1
  207. package/dist/TimeInput/TouchTimeField.js +2 -0
  208. package/dist/Timer/Timer.d.ts.map +1 -1
  209. package/dist/Timer/Timer.js +2 -0
  210. package/dist/Timestamp/Timestamp.js +1 -1
  211. package/dist/Toast/Toast.d.ts +11 -1
  212. package/dist/Toast/Toast.d.ts.map +1 -1
  213. package/dist/Toast/Toast.js +25 -15
  214. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  215. package/dist/Toast/ToastViewport.js +97 -34
  216. package/dist/Toast/types.d.ts +9 -3
  217. package/dist/Toast/types.d.ts.map +1 -1
  218. package/dist/Toast/useToast.d.ts.map +1 -1
  219. package/dist/Toast/useToast.js +1 -0
  220. package/dist/Tokenizer/Tokenizer.d.ts +49 -37
  221. package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
  222. package/dist/Tokenizer/Tokenizer.js +22 -19
  223. package/dist/Tokenizer/TokenizerBottomSheet.d.ts +1 -1
  224. package/dist/Tokenizer/TokenizerBottomSheet.js +1 -1
  225. package/dist/Tokenizer/index.d.ts +1 -1
  226. package/dist/Tokenizer/index.d.ts.map +1 -1
  227. package/dist/Tooltip/useTooltip.d.ts +19 -1
  228. package/dist/Tooltip/useTooltip.d.ts.map +1 -1
  229. package/dist/Tooltip/useTooltip.js +34 -53
  230. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  231. package/dist/Typeahead/BaseTypeahead.js +27 -18
  232. package/dist/Typeahead/TypeaheadItem.d.ts +2 -1
  233. package/dist/Typeahead/TypeaheadItem.d.ts.map +1 -1
  234. package/dist/animator/createAnimator.d.ts +98 -0
  235. package/dist/animator/createAnimator.d.ts.map +1 -0
  236. package/dist/animator/createAnimator.js +259 -0
  237. package/dist/astryx.css +39 -6
  238. package/dist/gestures/GestureHost.d.ts +16 -1
  239. package/dist/gestures/GestureHost.d.ts.map +1 -1
  240. package/dist/gestures/GestureHost.js +1 -1
  241. package/dist/gestures/PressTracker.d.ts.map +1 -1
  242. package/dist/gestures/PressTracker.js +4 -3
  243. package/dist/hooks/ModalAnnounceProvider.d.ts.map +1 -1
  244. package/dist/hooks/ModalAnnounceProvider.js +1 -0
  245. package/dist/hooks/actionGroupTracker.d.ts +4 -1
  246. package/dist/hooks/actionGroupTracker.d.ts.map +1 -1
  247. package/dist/hooks/actionGroupTracker.js +13 -3
  248. package/dist/hooks/index.d.ts +1 -0
  249. package/dist/hooks/index.d.ts.map +1 -1
  250. package/dist/hooks/index.js +1 -0
  251. package/dist/hooks/longPressDetector.d.ts +66 -0
  252. package/dist/hooks/longPressDetector.d.ts.map +1 -0
  253. package/dist/hooks/longPressDetector.js +200 -0
  254. package/dist/hooks/pressGroupContext.d.ts +6 -0
  255. package/dist/hooks/pressGroupContext.d.ts.map +1 -0
  256. package/dist/hooks/pressGroupContext.js +20 -0
  257. package/dist/hooks/rootScrollStyles.d.ts +48 -0
  258. package/dist/hooks/rootScrollStyles.d.ts.map +1 -0
  259. package/dist/hooks/rootScrollStyles.js +207 -0
  260. package/dist/hooks/scrollLockTouchGuard.d.ts +13 -0
  261. package/dist/hooks/scrollLockTouchGuard.d.ts.map +1 -0
  262. package/dist/hooks/scrollLockTouchGuard.js +134 -0
  263. package/dist/hooks/scrollbarGutter.d.ts +4 -4
  264. package/dist/hooks/scrollbarGutter.d.ts.map +1 -1
  265. package/dist/hooks/scrollbarGutter.js +36 -23
  266. package/dist/hooks/useActionGroupTracking.d.ts +53 -0
  267. package/dist/hooks/useActionGroupTracking.d.ts.map +1 -0
  268. package/dist/hooks/useActionGroupTracking.js +174 -0
  269. package/dist/hooks/useAnimator.d.ts +41 -0
  270. package/dist/hooks/useAnimator.d.ts.map +1 -0
  271. package/dist/hooks/useAnimator.js +70 -0
  272. package/dist/hooks/useAnnounceRenderedText.d.ts.map +1 -1
  273. package/dist/hooks/useAnnounceRenderedText.js +1 -0
  274. package/dist/hooks/useAttachment.d.ts +1 -1
  275. package/dist/hooks/useAttachment.js +1 -1
  276. package/dist/hooks/useAutoMediaMode.d.ts.map +1 -1
  277. package/dist/hooks/useAutoMediaMode.js +1 -0
  278. package/dist/hooks/useBusyAnnouncement.d.ts.map +1 -1
  279. package/dist/hooks/useBusyAnnouncement.js +2 -0
  280. package/dist/hooks/useDevWarning.d.ts.map +1 -1
  281. package/dist/hooks/useDevWarning.js +2 -0
  282. package/dist/hooks/useFocusTrap.d.ts.map +1 -1
  283. package/dist/hooks/useFocusTrap.js +2 -0
  284. package/dist/hooks/useGridFocus.d.ts +8 -5
  285. package/dist/hooks/useGridFocus.d.ts.map +1 -1
  286. package/dist/hooks/useGridFocus.js +4 -3
  287. package/dist/hooks/useHotkeys.d.ts.map +1 -1
  288. package/dist/hooks/useHotkeys.js +3 -0
  289. package/dist/hooks/useImageMode.d.ts.map +1 -1
  290. package/dist/hooks/useImageMode.js +3 -0
  291. package/dist/hooks/useInputStatusIcon.d.ts +1 -1
  292. package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
  293. package/dist/hooks/useInputStatusIcon.js +2 -2
  294. package/dist/hooks/useKeyboardHint.js +1 -1
  295. package/dist/hooks/useLongPress.d.ts +8 -9
  296. package/dist/hooks/useLongPress.d.ts.map +1 -1
  297. package/dist/hooks/useLongPress.js +23 -106
  298. package/dist/hooks/useMenuHover.d.ts.map +1 -1
  299. package/dist/hooks/useMenuHover.js +2 -0
  300. package/dist/hooks/useMenuPress.d.ts.map +1 -1
  301. package/dist/hooks/useMenuPress.js +3 -0
  302. package/dist/hooks/useOverflow.d.ts.map +1 -1
  303. package/dist/hooks/useOverflow.js +2 -1
  304. package/dist/hooks/usePressFeedback.d.ts.map +1 -1
  305. package/dist/hooks/usePressFeedback.js +1 -0
  306. package/dist/hooks/useResolvedRequired.d.ts +3 -0
  307. package/dist/hooks/useResolvedRequired.d.ts.map +1 -1
  308. package/dist/hooks/useResolvedRequired.js +3 -0
  309. package/dist/hooks/useScrollLock.d.ts +7 -9
  310. package/dist/hooks/useScrollLock.d.ts.map +1 -1
  311. package/dist/hooks/useScrollLock.js +55 -48
  312. package/dist/hooks/useScrollableArea.d.ts.map +1 -1
  313. package/dist/hooks/useScrollableArea.js +5 -0
  314. package/dist/hooks/useStreamingText.d.ts.map +1 -1
  315. package/dist/hooks/useStreamingText.js +3 -0
  316. package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.d.ts +8 -0
  317. package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.d.ts.map +1 -0
  318. package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.js +42 -0
  319. package/dist/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.d.ts.map +1 -1
  320. package/dist/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.js +6 -0
  321. package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.d.ts +8 -0
  322. package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.d.ts.map +1 -0
  323. package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.js +14 -0
  324. package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
  325. package/dist/i18n/generated-locales/en.generated.js +30 -0
  326. package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
  327. package/dist/i18n/generated-locales/pseudo.generated.js +30 -0
  328. package/dist/index.d.ts +1 -0
  329. package/dist/index.d.ts.map +1 -1
  330. package/dist/index.js +4 -0
  331. package/dist/internal/indicatorPress.stylex.d.ts +20 -0
  332. package/dist/internal/indicatorPress.stylex.d.ts.map +1 -0
  333. package/dist/internal/indicatorPress.stylex.js +26 -0
  334. package/dist/internal/selectable-card.d.ts +21 -0
  335. package/dist/internal/selectable-card.d.ts.map +1 -0
  336. package/dist/internal/selectable-card.js +20 -0
  337. package/dist/internal/sheetDraft.d.ts +2 -2
  338. package/dist/internal/sheetDraft.js +2 -2
  339. package/dist/motion/animatedLayout.d.ts.map +1 -1
  340. package/dist/motion/animatedLayout.js +7 -7
  341. package/dist/motion/animator.d.ts +14 -14
  342. package/dist/motion/animator.d.ts.map +1 -1
  343. package/dist/motion/animator.js +45 -20
  344. package/dist/motion/progress.d.ts +88 -0
  345. package/dist/motion/progress.d.ts.map +1 -0
  346. package/dist/motion/progress.js +128 -0
  347. package/dist/motion/reducedMotion.d.ts.map +1 -1
  348. package/dist/motion/reducedMotion.js +3 -1
  349. package/dist/motion/uikit/alert.d.ts +41 -0
  350. package/dist/motion/uikit/alert.d.ts.map +1 -0
  351. package/dist/motion/uikit/alert.js +43 -0
  352. package/dist/motion/uikit/index.d.ts +4 -3
  353. package/dist/motion/uikit/index.d.ts.map +1 -1
  354. package/dist/motion/uikit/index.js +4 -3
  355. package/dist/motion/uikit/picker.d.ts +96 -0
  356. package/dist/motion/uikit/picker.d.ts.map +1 -0
  357. package/dist/motion/uikit/picker.js +117 -0
  358. package/dist/privateAttributes/pressGroupItem.stylex.d.ts +22 -0
  359. package/dist/privateAttributes/pressGroupItem.stylex.d.ts.map +1 -0
  360. package/dist/privateAttributes/pressGroupItem.stylex.js +36 -0
  361. package/dist/privateAttributes/reducedMotion.stylex.d.ts +23 -0
  362. package/dist/privateAttributes/reducedMotion.stylex.d.ts.map +1 -0
  363. package/dist/privateAttributes/reducedMotion.stylex.js +40 -0
  364. package/dist/theme/Theme.d.ts.map +1 -1
  365. package/dist/theme/Theme.js +29 -4
  366. package/dist/theme/motionKnobs.d.ts +4 -3
  367. package/dist/theme/motionKnobs.d.ts.map +1 -1
  368. package/dist/theme/motionKnobs.js +3 -2
  369. package/dist/theme/themeMotion.d.ts +6 -0
  370. package/dist/theme/themeMotion.d.ts.map +1 -1
  371. package/dist/theme/themeMotion.js +7 -0
  372. package/dist/utils/dateParser.d.ts.map +1 -1
  373. package/dist/utils/dateParser.js +12 -0
  374. package/dist/utils/focusReturn.d.ts +15 -0
  375. package/dist/utils/focusReturn.d.ts.map +1 -1
  376. package/dist/utils/focusReturn.js +28 -0
  377. package/dist/utils/interactionModality.d.ts.map +1 -1
  378. package/dist/utils/interactionModality.js +4 -0
  379. package/dist/utils/interactionOverlay.stylex.d.ts +3 -2
  380. package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
  381. package/dist/utils/interactionOverlay.stylex.js +3 -2
  382. package/dist/utils/plainDate.d.ts +8 -0
  383. package/dist/utils/plainDate.d.ts.map +1 -1
  384. package/dist/utils/plainDate.js +19 -0
  385. package/dist/utils/pressFeedback.d.ts.map +1 -1
  386. package/dist/utils/pressFeedback.js +20 -6
  387. package/dist/utils/triggerFocus.d.ts +36 -0
  388. package/dist/utils/triggerFocus.d.ts.map +1 -0
  389. package/dist/utils/triggerFocus.js +65 -0
  390. package/locales/en.json +120 -0
  391. package/locales/pseudo.json +90 -0
  392. package/package.json +14 -9
  393. package/src/AlertDialog/AlertDialog.doc.mjs +2 -2
  394. package/src/AlertDialog/AlertDialog.tsx +46 -5
  395. package/src/AppShell/AppShell.tsx +4 -0
  396. package/src/BottomSheet/BottomSheet.tsx +1 -0
  397. package/src/BottomSheet/BottomSheetPanel.tsx +39 -3
  398. package/src/BottomSheet/BottomSheetSwitcher.tsx +5 -0
  399. package/src/BottomSheet/useMobileKeyboard.ts +4 -0
  400. package/src/BottomSheet/useSheetGestures.ts +10 -1
  401. package/src/Button/Button.tsx +26 -4
  402. package/src/Calendar/Calendar.tsx +36 -25
  403. package/src/Carousel/Carousel.tsx +1 -0
  404. package/src/Chat/ChatComposerInput.tsx +2 -0
  405. package/src/Chat/ChatMessageList.tsx +2 -1
  406. package/src/Chat/useChatDictation.ts +1 -0
  407. package/src/Chat/useChatNewMessages.ts +1 -1
  408. package/src/Chat/useChatStreamScroll.ts +2 -0
  409. package/src/Chat/useSpeechRecognition.ts +2 -0
  410. package/src/Chat/useTriggerMenu.tsx +1 -1
  411. package/src/CheckboxInput/CheckboxInput.doc.mjs +18 -0
  412. package/src/CheckboxInput/CheckboxInput.tsx +38 -15
  413. package/src/CodeBlock/CodeBlock.doc.mjs +9 -1
  414. package/src/CodeBlock/CodeBlock.tsx +41 -4
  415. package/src/CommandPalette/CommandPalette.tsx +1 -0
  416. package/src/CommandPalette/CommandPaletteItem.tsx +1 -0
  417. package/src/ComplexSelector/ComplexSelector.tsx +20 -5
  418. package/src/ContextMenu/ContextMenu.tsx +2 -2
  419. package/src/DateInput/MonthScroller.tsx +8 -2
  420. package/src/DateInput/PickerWheel.tsx +765 -0
  421. package/src/DateInput/TouchDateField.tsx +1 -0
  422. package/src/DateInput/Wheel.tsx +94 -150
  423. package/src/DateInput/useOwnScrollGesture.ts +25 -3
  424. package/src/DateInput/usePointerDragScroll.ts +1 -0
  425. package/src/DateInput/useScrollSettle.ts +2 -0
  426. package/src/DateInput/useWheelListbox.ts +112 -0
  427. package/src/DateInput/wheelOptions.ts +155 -0
  428. package/src/DateInput/wheelPhysics.ts +406 -0
  429. package/src/DateInput/wheelStrip.ts +341 -0
  430. package/src/DateTimeInput/TouchDateTimeField.tsx +2 -0
  431. package/src/Dialog/Dialog.tsx +12 -32
  432. package/src/Drawer/useDrawerDialogPresence.ts +2 -0
  433. package/src/DropdownMenu/useMenuOverflow.ts +3 -0
  434. package/src/Field/Field.tsx +2 -2
  435. package/src/FieldStatus/useFieldStatusAnnouncement.ts +1 -0
  436. package/src/FormLayout/FormLayout.doc.mjs +181 -46
  437. package/src/FormLayout/FormLayout.tsx +5 -1
  438. package/src/HoverCard/HoverCard.doc.mjs +10 -8
  439. package/src/HoverCard/HoverCard.tsx +58 -6
  440. package/src/HoverCard/useHoverCard.doc.mjs +178 -36
  441. package/src/HoverCard/useHoverCard.tsx +49 -54
  442. package/src/Icon/Icon.doc.mjs +49 -8
  443. package/src/Icon/Icon.tsx +15 -7
  444. package/src/IconButton/IconButton.doc.mjs +141 -21
  445. package/src/Item/useSwipeAction.ts +2 -0
  446. package/src/Layer/modalOutlet.ts +2 -0
  447. package/src/Layer/outsidePress.ts +1 -0
  448. package/src/Layer/useLayer.tsx +2 -0
  449. package/src/Layer/useLayerDismissal.ts +2 -0
  450. package/src/Layer/usePressPin.ts +81 -15
  451. package/src/Layer/useTouchTrigger.ts +2 -0
  452. package/src/Lightbox/Lightbox.tsx +19 -0
  453. package/src/MobileNav/MobileNav.tsx +9 -30
  454. package/src/Outline/useOutlineFromDOM.ts +2 -0
  455. package/src/Outline/useScrollSpy.ts +2 -0
  456. package/src/OverflowList/OverflowList.tsx +2 -0
  457. package/src/Popover/Popover.tsx +4 -0
  458. package/src/PowerSearch/PowerSearch.doc.mjs +60 -8
  459. package/src/PowerSearch/PowerSearch.tsx +627 -157
  460. package/src/PowerSearch/PowerSearchBottomSheet.tsx +2525 -0
  461. package/src/PowerSearch/PowerSearchEditPopover.tsx +39 -6
  462. package/src/PowerSearch/PowerSearchFilterEditor.tsx +2 -0
  463. package/src/PowerSearch/PowerSearchToken.tsx +7 -0
  464. package/src/PowerSearch/PowerSearchValueEditor.tsx +244 -58
  465. package/src/PowerSearch/formatFilterValue.ts +55 -17
  466. package/src/PowerSearch/formatTokenValue.ts +222 -0
  467. package/src/PowerSearch/powerSearchDateZone.ts +64 -0
  468. package/src/PowerSearch/powerSearchSheetUtils.ts +224 -0
  469. package/src/PowerSearch/types.ts +2 -0
  470. package/src/ProgressBar/ProgressBarTouch.ts +2 -0
  471. package/src/RadioList/RadioList.tsx +3 -2
  472. package/src/RadioList/RadioListItem.tsx +5 -3
  473. package/src/Resizable/Resizable.doc.mjs +5 -4
  474. package/src/Resizable/ResizeHandle.tsx +169 -109
  475. package/src/Resizable/createResizable.ts +831 -0
  476. package/src/Resizable/useResizable.ts +292 -623
  477. package/src/SegmentedControl/useSegmentedSelectionMotion.ts +6 -3
  478. package/src/SelectableCard/SelectableCard.tsx +39 -10
  479. package/src/SelectableCard/selectableCardInput.ts +30 -0
  480. package/src/Selector/Selector.tsx +5 -12
  481. package/src/Slider/sliderTouchController.ts +2 -2
  482. package/src/Spinner/Spinner.tsx +77 -63
  483. package/src/Switch/Switch.tsx +2 -6
  484. package/src/Switch/useSwitchTouch.ts +4 -4
  485. package/src/Table/BaseTable.tsx +46 -12
  486. package/src/Table/plugins/columnResize/useTableColumnResize.tsx +2 -1
  487. package/src/Table/plugins/filtering/useTableFiltering.tsx +1 -0
  488. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +4 -0
  489. package/src/Table/plugins/stickyColumns/useTableStickyColumns.tsx +2 -0
  490. package/src/TextInput/TextInput.tsx +11 -10
  491. package/src/TimeInput/TimeInput.tsx +2 -0
  492. package/src/TimeInput/TouchTimeField.tsx +2 -0
  493. package/src/Timer/Timer.tsx +1 -0
  494. package/src/Timestamp/Timestamp.tsx +1 -1
  495. package/src/Toast/Toast.doc.mjs +4 -3
  496. package/src/Toast/Toast.tsx +52 -32
  497. package/src/Toast/ToastViewport.tsx +123 -35
  498. package/src/Toast/types.ts +9 -3
  499. package/src/Toast/useToast.tsx +1 -0
  500. package/src/Tokenizer/Tokenizer.doc.mjs +19 -3
  501. package/src/Tokenizer/Tokenizer.tsx +73 -51
  502. package/src/Tokenizer/TokenizerBottomSheet.tsx +1 -1
  503. package/src/Tokenizer/index.ts +1 -0
  504. package/src/Tooltip/useTooltip.doc.mjs +24 -0
  505. package/src/Tooltip/useTooltip.tsx +61 -56
  506. package/src/Typeahead/BaseTypeahead.tsx +27 -17
  507. package/src/Typeahead/TypeaheadItem.doc.mjs +6 -3
  508. package/src/Typeahead/TypeaheadItem.tsx +2 -1
  509. package/src/animator/createAnimator.doc.mjs +153 -0
  510. package/src/animator/createAnimator.ts +324 -0
  511. package/src/gestures/GestureHost.ts +1 -1
  512. package/src/gestures/PressTracker.ts +4 -3
  513. package/src/gestures/README.md +10 -4
  514. package/src/hooks/ModalAnnounceProvider.tsx +1 -0
  515. package/src/hooks/actionGroupTracker.ts +20 -5
  516. package/src/hooks/index.ts +2 -0
  517. package/src/hooks/longPressDetector.ts +273 -0
  518. package/src/hooks/pressGroupContext.ts +21 -0
  519. package/src/hooks/rootScrollStyles.ts +247 -0
  520. package/src/hooks/scrollLockTouchGuard.ts +182 -0
  521. package/src/hooks/scrollbarGutter.ts +41 -26
  522. package/src/hooks/useActionGroupTracking.ts +224 -0
  523. package/src/hooks/useAnimator.doc.mjs +109 -0
  524. package/src/hooks/useAnimator.ts +67 -0
  525. package/src/hooks/useAnnounceRenderedText.ts +1 -0
  526. package/src/hooks/useAttachment.ts +1 -1
  527. package/src/hooks/useAutoMediaMode.ts +1 -0
  528. package/src/hooks/useBusyAnnouncement.ts +2 -0
  529. package/src/hooks/useDevWarning.ts +2 -0
  530. package/src/hooks/useFocusTrap.ts +2 -0
  531. package/src/hooks/useGridFocus.doc.mjs +6 -6
  532. package/src/hooks/useGridFocus.ts +10 -7
  533. package/src/hooks/useHotkeys.ts +2 -0
  534. package/src/hooks/useImageMode.ts +2 -0
  535. package/src/hooks/useInputStatusIcon.tsx +3 -2
  536. package/src/hooks/useKeyboardHint.tsx +1 -1
  537. package/src/hooks/useLongPress.doc.mjs +2 -2
  538. package/src/hooks/useLongPress.ts +32 -122
  539. package/src/hooks/useMenuHover.ts +1 -0
  540. package/src/hooks/useMenuPress.ts +2 -0
  541. package/src/hooks/useOverflow.ts +2 -1
  542. package/src/hooks/usePressFeedback.ts +1 -0
  543. package/src/hooks/useResolvedRequired.ts +3 -0
  544. package/src/hooks/useScrollLock.doc.mjs +51 -12
  545. package/src/hooks/useScrollLock.ts +57 -60
  546. package/src/hooks/useScrollableArea.ts +4 -0
  547. package/src/hooks/useStreamingText.ts +2 -0
  548. package/src/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.ts +43 -0
  549. package/src/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.ts +6 -0
  550. package/src/i18n/generated-english/PowerSearch/formatTokenValue.generated.ts +15 -0
  551. package/src/i18n/generated-locales/en.generated.ts +41 -0
  552. package/src/i18n/generated-locales/pseudo.generated.ts +42 -0
  553. package/src/index.ts +13 -0
  554. package/src/internal/indicatorPress.stylex.ts +24 -0
  555. package/src/internal/selectable-card.ts +21 -0
  556. package/src/internal/sheetDraft.ts +2 -2
  557. package/src/motion/MEASUREMENTS.md +18 -0
  558. package/src/motion/README.md +10 -5
  559. package/src/motion/animatedLayout.ts +10 -5
  560. package/src/motion/animator.ts +66 -31
  561. package/src/motion/progress.ts +155 -0
  562. package/src/motion/reducedMotion.ts +3 -1
  563. package/src/motion/uikit/alert.ts +43 -0
  564. package/src/motion/uikit/index.ts +4 -3
  565. package/src/motion/uikit/picker.ts +116 -0
  566. package/src/privateAttributes/pressGroupItem.stylex.ts +44 -0
  567. package/src/privateAttributes/reducedMotion.stylex.ts +45 -0
  568. package/src/theme/Theme.tsx +37 -3
  569. package/src/theme/motionKnobs.ts +4 -3
  570. package/src/theme/themeMotion.ts +7 -0
  571. package/src/utils/dateParser.ts +16 -0
  572. package/src/utils/focusReturn.ts +30 -0
  573. package/src/utils/interactionModality.ts +4 -0
  574. package/src/utils/interactionOverlay.stylex.ts +3 -2
  575. package/src/utils/plainDate.ts +21 -0
  576. package/src/utils/pressFeedback.ts +24 -6
  577. package/src/utils/triggerFocus.ts +80 -0
  578. package/dist/internal/touch-sheet.d.ts +0 -21
  579. package/dist/internal/touch-sheet.d.ts.map +0 -1
  580. package/dist/internal/touch-sheet.js +0 -19
  581. package/src/internal/touch-sheet.ts +0 -21
@@ -4,9 +4,12 @@
4
4
 
5
5
  /**
6
6
  * @file PowerSearchValueEditor.tsx
7
- * @input OperatorValue, FilterValue, onChange callback
7
+ * @input OperatorValue, FilterValue, onChange callback, and the presentation
8
+ * the editor renders in
8
9
  * @output Renders the appropriate editor for a filter value type
9
- * @position Sub-component; consumed by PowerSearchEditPopover
10
+ * @position Sub-component; consumed by PowerSearchEditPopover (popover
11
+ * presentation) and PowerSearchBottomSheet (sheet presentation, which
12
+ * renders the closed vocabularies as rows itself)
10
13
  *
11
14
  * SYNC: When modified, update:
12
15
  * - /packages/core/src/PowerSearch/index.ts
@@ -17,11 +20,12 @@ import { TextInput } from "../TextInput/index.js";
17
20
  import { NumberInput } from "../NumberInput/index.js";
18
21
  import { resolveNumberInputCommit } from "../NumberInput/numberInputCommit.js";
19
22
  import { DateInput } from "../DateInput/index.js";
23
+ import { isoDateToUnixSeconds, resolveDateZone, unixSecondsToISODate } from "./powerSearchDateZone.js";
20
24
  import { DateRangeInput } from "../DateRangeInput/index.js";
21
25
  import { resolveDateTimeRangePart } from "./resolveDateTimeRangePart.js";
22
26
  import { TimeInput } from "../TimeInput/index.js";
23
27
  import { Selector } from "../Selector/index.js";
24
- import { Tokenizer } from "../Tokenizer/index.js";
28
+ import { Tokenizer } from "../Tokenizer/Tokenizer.js";
25
29
  import { Typeahead } from "../Typeahead/index.js";
26
30
  import { useLocale } from "../i18n/index.js";
27
31
  import { registerEnglishFallback, useComponentTranslator } from "../i18n/useComponentTranslator.js";
@@ -49,8 +53,8 @@ function enumItemsToSearchableItems(values) {
49
53
  label: item.label
50
54
  }));
51
55
  }
52
- function dateRangePartToISO(part, nowSeconds) {
53
- return new Date(resolveDateTimeRangePart(part, nowSeconds) * 1000).toISOString().split('T')[0];
56
+ function dateRangePartToISO(part, nowSeconds, zone) {
57
+ return unixSecondsToISODate(resolveDateTimeRangePart(part, nowSeconds), zone);
54
58
  }
55
59
 
56
60
  // =============================================================================
@@ -63,9 +67,11 @@ function StringEditor({
63
67
  onChange,
64
68
  onEnter: _onEnter,
65
69
  maxMenuItems,
66
- isDisabled
70
+ isDisabled,
71
+ presentation
67
72
  }) {
68
73
  const t = useComponentTranslator();
74
+ const width = presentation === 'bottom-sheet' ? '100%' : undefined;
69
75
  const currentValue = filterValue?.type === 'string' ? filterValue.value : '';
70
76
 
71
77
  // When a searchSource is provided, render a typeahead instead of a plain
@@ -96,7 +102,8 @@ function StringEditor({
96
102
  },
97
103
  placeholder: t('@astryx.powersearch.valueEditor.searchPlaceholder'),
98
104
  debounceMs: 150,
99
- maxMenuItems: maxMenuItems
105
+ maxMenuItems: maxMenuItems,
106
+ width: width
100
107
  });
101
108
  }
102
109
  return /*#__PURE__*/_jsx(TextInput, {
@@ -110,7 +117,8 @@ function StringEditor({
110
117
  type: 'string',
111
118
  value
112
119
  });
113
- }
120
+ },
121
+ width: width
114
122
  });
115
123
  }
116
124
  function StringListEditor({
@@ -118,9 +126,12 @@ function StringListEditor({
118
126
  filterValue,
119
127
  onChange,
120
128
  maxMenuItems,
121
- isDisabled
129
+ isDisabled,
130
+ presentation,
131
+ fieldLabel
122
132
  }) {
123
133
  const t = useComponentTranslator();
134
+ const isSheet = presentation === 'bottom-sheet';
124
135
  const currentValue = useMemo(() => {
125
136
  if (filterValue?.type !== 'string_list') {
126
137
  return [];
@@ -144,8 +155,12 @@ function StringListEditor({
144
155
  // Enable creatable mode when no searchSource is provided (free-text tags)
145
156
  // or when isArbitraryStringAllowed is explicitly set (#1107).
146
157
  const hasCreate = operatorValue.isArbitraryStringAllowed || !operatorValue.searchSource;
158
+
159
+ // In the sheet presentation the list value edits through the Tokenizer's
160
+ // own sheet, titled with the field's label; a popover menu inside a sheet
161
+ // would stack a second anchored layer on a surface the person is already in.
147
162
  return /*#__PURE__*/_jsx(Tokenizer, {
148
- label: t('@astryx.powersearch.valueEditor.values'),
163
+ label: isSheet && fieldLabel != null ? fieldLabel : t('@astryx.powersearch.valueEditor.values'),
149
164
  isLabelHidden: true,
150
165
  isDisabled: isDisabled,
151
166
  searchSource: source,
@@ -159,7 +174,9 @@ function StringListEditor({
159
174
  placeholder: t('@astryx.powersearch.valueEditor.addValuesPlaceholder'),
160
175
  debounceMs: operatorValue.searchSource ? 150 : 0,
161
176
  hasCreate: hasCreate,
162
- maxMenuItems: maxMenuItems
177
+ maxMenuItems: maxMenuItems,
178
+ width: isSheet ? '100%' : undefined,
179
+ presentation: isSheet ? 'bottom-sheet' : 'popover'
163
180
  });
164
181
  }
165
182
  function useNumberEditorHandlers({
@@ -168,7 +185,9 @@ function useNumberEditorHandlers({
168
185
  max,
169
186
  isIntegerOnly,
170
187
  onChange,
171
- onEnter
188
+ onEnter,
189
+ onUnstage,
190
+ stagesAsTyped
172
191
  }) {
173
192
  const locale = useLocale();
174
193
  const pendingDecisionRef = useRef(null);
@@ -186,14 +205,23 @@ function useNumberEditorHandlers({
186
205
  pendingDecisionRef.current = null;
187
206
  }, []);
188
207
  const handleInput = useCallback(event => {
189
- pendingDecisionRef.current = resolveNumberInputCommit(event.currentTarget.value, {
208
+ const decision = resolveNumberInputCommit(event.currentTarget.value, {
190
209
  min,
191
210
  max,
192
211
  isIntegerOnly,
193
212
  locale,
194
213
  hasClear: false
195
214
  });
196
- }, [isIntegerOnly, locale, max, min]);
215
+ pendingDecisionRef.current = decision;
216
+ if (stagesAsTyped) {
217
+ if (decision.type === 'commit') {
218
+ onChange(toFilterValue(decision.value));
219
+ } else {
220
+ // Cleared, or not a number: nothing stands to confirm.
221
+ onUnstage?.();
222
+ }
223
+ }
224
+ }, [isIntegerOnly, locale, max, min, onChange, onUnstage, stagesAsTyped, toFilterValue]);
197
225
  const handleEnter = useCallback(() => {
198
226
  const decision = pendingDecisionRef.current;
199
227
  pendingDecisionRef.current = null;
@@ -221,7 +249,9 @@ function IntegerEditor({
221
249
  filterValue,
222
250
  onChange,
223
251
  onEnter,
224
- isDisabled
252
+ onUnstage,
253
+ isDisabled,
254
+ presentation
225
255
  }) {
226
256
  const t = useComponentTranslator();
227
257
  const currentValue = filterValue?.type === 'integer' ? filterValue.value : undefined;
@@ -231,7 +261,9 @@ function IntegerEditor({
231
261
  max: operatorValue.maxValue,
232
262
  isIntegerOnly: true,
233
263
  onChange,
234
- onEnter
264
+ onEnter,
265
+ onUnstage,
266
+ stagesAsTyped: presentation === 'bottom-sheet'
235
267
  });
236
268
  return /*#__PURE__*/_jsx(NumberInput, {
237
269
  label: t('@astryx.powersearch.valueEditor.value'),
@@ -247,7 +279,8 @@ function IntegerEditor({
247
279
  max: operatorValue.maxValue,
248
280
  units: operatorValue.units,
249
281
  isIntegerOnly: true,
250
- placeholder: t('@astryx.powersearch.valueEditor.enterNumberPlaceholder')
282
+ placeholder: t('@astryx.powersearch.valueEditor.enterNumberPlaceholder'),
283
+ width: presentation === 'bottom-sheet' ? '100%' : undefined
251
284
  });
252
285
  }
253
286
  function FloatEditor({
@@ -255,7 +288,9 @@ function FloatEditor({
255
288
  filterValue,
256
289
  onChange,
257
290
  onEnter,
258
- isDisabled
291
+ onUnstage,
292
+ isDisabled,
293
+ presentation
259
294
  }) {
260
295
  const t = useComponentTranslator();
261
296
  const currentValue = filterValue?.type === 'float' ? filterValue.value : undefined;
@@ -265,7 +300,9 @@ function FloatEditor({
265
300
  max: operatorValue.maxValue,
266
301
  isIntegerOnly: false,
267
302
  onChange,
268
- onEnter
303
+ onEnter,
304
+ onUnstage,
305
+ stagesAsTyped: presentation === 'bottom-sheet'
269
306
  });
270
307
  return /*#__PURE__*/_jsx(NumberInput, {
271
308
  label: t('@astryx.powersearch.valueEditor.value'),
@@ -280,14 +317,16 @@ function FloatEditor({
280
317
  min: operatorValue.minValue,
281
318
  max: operatorValue.maxValue,
282
319
  units: operatorValue.units,
283
- placeholder: t('@astryx.powersearch.valueEditor.enterNumberPlaceholder')
320
+ placeholder: t('@astryx.powersearch.valueEditor.enterNumberPlaceholder'),
321
+ width: presentation === 'bottom-sheet' ? '100%' : undefined
284
322
  });
285
323
  }
286
324
  function TimeEditor({
287
325
  operatorValue,
288
326
  filterValue,
289
327
  onChange,
290
- isDisabled
328
+ isDisabled,
329
+ presentation
291
330
  }) {
292
331
  const t = useComponentTranslator();
293
332
  const currentValue = filterValue?.type === 'time' ? filterValue.value : undefined;
@@ -305,39 +344,97 @@ function TimeEditor({
305
344
  }
306
345
  },
307
346
  min: operatorValue.minValue,
308
- max: operatorValue.maxValue
347
+ max: operatorValue.maxValue,
348
+ width: presentation === 'bottom-sheet' ? '100%' : undefined
309
349
  });
310
350
  }
311
351
  function DateAbsoluteEditor({
352
+ operatorValue,
312
353
  filterValue,
313
354
  onChange,
314
- isDisabled
355
+ isDisabled,
356
+ presentation,
357
+ timezoneID
315
358
  }) {
316
359
  const t = useComponentTranslator();
317
- // Convert unixSeconds to ISO date string for the date input
318
- const currentValue = useMemo(() => {
319
- if (filterValue?.type !== 'date_absolute') {
320
- return undefined;
321
- }
322
- const date = new Date(filterValue.unixSeconds * 1000);
323
- return date.toISOString().split('T')[0];
324
- }, [filterValue]);
360
+ // A date-only value edits in the zone the token and the label use. An
361
+ // `isDateOnly: false` value edits its UTC day.
362
+ const zone = operatorValue.isDateOnly === false ? 'UTC' : resolveDateZone(timezoneID, true);
363
+ const unixSeconds = filterValue?.type === 'date_absolute' ? filterValue.unixSeconds : undefined;
325
364
  return /*#__PURE__*/_jsx(DateInput, {
326
365
  label: t('@astryx.powersearch.valueEditor.date'),
327
366
  isLabelHidden: true,
328
367
  isDisabled: isDisabled,
329
- value: currentValue,
368
+ value: unixSeconds == null ? undefined : unixSecondsToISODate(unixSeconds, zone),
330
369
  onChange: value => {
331
370
  if (value != null) {
332
- const unixSeconds = Math.floor(new Date(value).getTime() / 1000);
333
371
  onChange({
334
372
  type: 'date_absolute',
335
- unixSeconds
373
+ unixSeconds: isoDateToUnixSeconds(value, zone)
336
374
  });
337
375
  }
338
- }
376
+ },
377
+ width: presentation === 'bottom-sheet' ? '100%' : undefined
339
378
  });
340
379
  }
380
+ const RELATIVE_DATE_UNITS = [{
381
+ unit: 'day',
382
+ plural: 'days',
383
+ amounts: [1, 3, 7, 14, 30],
384
+ ago: '@astryx.powersearch.sheet.relativeDaysAgo',
385
+ fromNow: '@astryx.powersearch.sheet.relativeDaysFromNow'
386
+ }, {
387
+ unit: 'week',
388
+ plural: 'weeks',
389
+ amounts: [1, 2, 4],
390
+ ago: '@astryx.powersearch.sheet.relativeWeeksAgo',
391
+ fromNow: '@astryx.powersearch.sheet.relativeWeeksFromNow'
392
+ }, {
393
+ unit: 'month',
394
+ plural: 'months',
395
+ amounts: [1, 3, 6, 12],
396
+ ago: '@astryx.powersearch.sheet.relativeMonthsAgo',
397
+ fromNow: '@astryx.powersearch.sheet.relativeMonthsFromNow'
398
+ }];
399
+
400
+ /**
401
+ * The relative-date choices an operator offers, in display order. Shared by
402
+ * the popover's Selector and the sheet presentation's rows so both list the
403
+ * same values. With `t` the labels resolve through the catalog's ICU plural
404
+ * messages (the sheet presentation's rows); without it they are the popover
405
+ * editor's own literals. In English the two read identically.
406
+ */
407
+ export function buildRelativeDateOptions(operatorValue, t) {
408
+ const result = [];
409
+ for (const {
410
+ unit,
411
+ plural,
412
+ amounts,
413
+ ago,
414
+ fromNow
415
+ } of RELATIVE_DATE_UNITS) {
416
+ for (const amount of amounts) {
417
+ const unitWord = amount === 1 ? unit : plural;
418
+ if (operatorValue.isPastAllowed !== false) {
419
+ result.push({
420
+ value: `${amount}${unit[0]}_ago`,
421
+ label: t ? t(ago, {
422
+ count: amount
423
+ }) : `${amount} ${unitWord} ago`
424
+ });
425
+ }
426
+ if (operatorValue.isFutureAllowed !== false) {
427
+ result.push({
428
+ value: `${amount}${unit[0]}_from_now`,
429
+ label: t ? t(fromNow, {
430
+ count: amount
431
+ }) : `${amount} ${unitWord} from now`
432
+ });
433
+ }
434
+ }
435
+ }
436
+ return result;
437
+ }
341
438
  function DateRelativeEditor({
342
439
  operatorValue,
343
440
  filterValue,
@@ -346,40 +443,18 @@ function DateRelativeEditor({
346
443
  }) {
347
444
  const t = useComponentTranslator();
348
445
  const currentValue = filterValue?.type === 'date_relative' ? filterValue.value : undefined;
349
- const options = useMemo(() => {
350
- const result = [];
351
- const units = [{
352
- unit: 'day',
353
- plural: 'days'
354
- }, {
355
- unit: 'week',
356
- plural: 'weeks'
357
- }, {
358
- unit: 'month',
359
- plural: 'months'
360
- }];
361
- for (const {
362
- unit,
363
- plural
364
- } of units) {
365
- const amounts = unit === 'day' ? [1, 3, 7, 14, 30] : unit === 'week' ? [1, 2, 4] : [1, 3, 6, 12];
366
- for (const amount of amounts) {
367
- if (operatorValue.isPastAllowed !== false) {
368
- result.push({
369
- value: `${amount}${unit[0]}_ago`,
370
- label: `${amount} ${amount === 1 ? unit : plural} ago`
371
- });
372
- }
373
- if (operatorValue.isFutureAllowed !== false) {
374
- result.push({
375
- value: `${amount}${unit[0]}_from_now`,
376
- label: `${amount} ${amount === 1 ? unit : plural} from now`
377
- });
378
- }
379
- }
380
- }
381
- return result;
382
- }, [operatorValue.isPastAllowed, operatorValue.isFutureAllowed]);
446
+
447
+ // The choices depend on the two flags only; a config that rebuilds its
448
+ // operator objects per render keeps the same memoized list.
449
+ const {
450
+ isPastAllowed,
451
+ isFutureAllowed
452
+ } = operatorValue;
453
+ const options = useMemo(() => buildRelativeDateOptions({
454
+ type: 'date_relative',
455
+ isPastAllowed,
456
+ isFutureAllowed
457
+ }), [isPastAllowed, isFutureAllowed]);
383
458
  return /*#__PURE__*/_jsx(Selector, {
384
459
  label: t('@astryx.powersearch.valueEditor.relativeDate'),
385
460
  isLabelHidden: true,
@@ -397,9 +472,13 @@ function DateRelativeEditor({
397
472
  function DateRangeEditor({
398
473
  filterValue,
399
474
  onChange,
400
- isDisabled
475
+ isDisabled,
476
+ presentation,
477
+ timezoneID
401
478
  }) {
402
479
  const t = useComponentTranslator();
480
+ // A range part is a calendar day, read and written as a date-only value is.
481
+ const zone = resolveDateZone(timezoneID, true);
403
482
  const currentValue = useMemo(() => {
404
483
  if (filterValue?.type !== 'date_range') {
405
484
  return null;
@@ -410,10 +489,10 @@ function DateRangeEditor({
410
489
  } = filterValue.value;
411
490
  const nowSeconds = Date.now() / 1000;
412
491
  return {
413
- start: dateRangePartToISO(start, nowSeconds),
414
- end: dateRangePartToISO(end, nowSeconds)
492
+ start: dateRangePartToISO(start, nowSeconds, zone),
493
+ end: dateRangePartToISO(end, nowSeconds, zone)
415
494
  };
416
- }, [filterValue]);
495
+ }, [filterValue, zone]);
417
496
  const handleChange = useCallback(range => {
418
497
  if (range == null) {
419
498
  return;
@@ -423,15 +502,15 @@ function DateRangeEditor({
423
502
  value: {
424
503
  start: {
425
504
  type: 'ABSOLUTE',
426
- unixSeconds: Date.parse(`${range.start}T00:00:00Z`) / 1000
505
+ unixSeconds: isoDateToUnixSeconds(range.start, zone)
427
506
  },
428
507
  end: {
429
508
  type: 'ABSOLUTE',
430
- unixSeconds: Date.parse(`${range.end}T00:00:00Z`) / 1000
509
+ unixSeconds: isoDateToUnixSeconds(range.end, zone)
431
510
  }
432
511
  }
433
512
  });
434
- }, [onChange]);
513
+ }, [onChange, zone]);
435
514
  const handleKeyDown = useCallback(event => {
436
515
  // DateRangeInput owns an inner popover. Its Enter activation must not reach
437
516
  // the parent PowerSearch shortcut before the focused button's click runs.
@@ -448,6 +527,10 @@ function DateRangeEditor({
448
527
  value: currentValue,
449
528
  onChange: handleChange,
450
529
  hasClear: false
530
+ // A phone-wide sheet fits one month; the popover keeps the default.
531
+ ,
532
+ numberOfMonths: presentation === 'bottom-sheet' ? 1 : undefined,
533
+ width: presentation === 'bottom-sheet' ? '100%' : undefined
451
534
  })
452
535
  });
453
536
  }
@@ -517,7 +600,8 @@ function EnumListEditor({
517
600
  // all of them instead of BaseTypeahead's 10-suggestion default, which
518
601
  // would silently drop valid choices with no way to reach them.
519
602
  ,
520
- maxMenuItems: items.length
603
+ maxMenuItems: items.length,
604
+ presentation: "popover"
521
605
  });
522
606
  }
523
607
  function EntityListEditor({
@@ -525,9 +609,12 @@ function EntityListEditor({
525
609
  filterValue,
526
610
  onChange,
527
611
  maxMenuItems,
528
- isDisabled
612
+ isDisabled,
613
+ presentation,
614
+ fieldLabel
529
615
  }) {
530
616
  const t = useComponentTranslator();
617
+ const isSheet = presentation === 'bottom-sheet';
531
618
  const source = useMemo(() => {
532
619
  if (operatorValue.searchSource) {
533
620
  return operatorValue.searchSource;
@@ -551,8 +638,11 @@ function EntityListEditor({
551
638
  } : undefined
552
639
  }));
553
640
  }, [filterValue]);
641
+
642
+ // Sheet presentation: the Tokenizer's own sheet, titled with the field
643
+ // label, as for string_list.
554
644
  return /*#__PURE__*/_jsx(Tokenizer, {
555
- label: t('@astryx.powersearch.valueEditor.entities'),
645
+ label: isSheet && fieldLabel != null ? fieldLabel : t('@astryx.powersearch.valueEditor.entities'),
556
646
  isLabelHidden: true,
557
647
  isDisabled: isDisabled,
558
648
  searchSource: source,
@@ -576,7 +666,9 @@ function EntityListEditor({
576
666
  renderItem: operatorValue.renderItem,
577
667
  placeholder: t('@astryx.powersearch.valueEditor.searchPlaceholder'),
578
668
  debounceMs: operatorValue.searchSource ? 150 : 0,
579
- maxMenuItems: maxMenuItems
669
+ maxMenuItems: maxMenuItems,
670
+ width: isSheet ? '100%' : undefined,
671
+ presentation: isSheet ? 'bottom-sheet' : 'popover'
580
672
  });
581
673
  }
582
674
  function CustomEditor({
@@ -613,7 +705,11 @@ export function PowerSearchValueEditor({
613
705
  onChange,
614
706
  onEnter,
615
707
  maxMenuItems,
616
- isDisabled
708
+ isDisabled,
709
+ onUnstage,
710
+ presentation = 'popover',
711
+ fieldLabel,
712
+ timezoneID
617
713
  }) {
618
714
  switch (operatorValue.type) {
619
715
  case 'empty':
@@ -621,6 +717,7 @@ export function PowerSearchValueEditor({
621
717
  case 'string':
622
718
  return /*#__PURE__*/_jsx(StringEditor, {
623
719
  isDisabled: isDisabled,
720
+ presentation: presentation,
624
721
  operatorValue: operatorValue,
625
722
  filterValue: filterValue,
626
723
  onChange: onChange,
@@ -630,6 +727,8 @@ export function PowerSearchValueEditor({
630
727
  case 'string_list':
631
728
  return /*#__PURE__*/_jsx(StringListEditor, {
632
729
  isDisabled: isDisabled,
730
+ presentation: presentation,
731
+ fieldLabel: fieldLabel,
633
732
  operatorValue: operatorValue,
634
733
  filterValue: filterValue,
635
734
  onChange: onChange,
@@ -638,6 +737,8 @@ export function PowerSearchValueEditor({
638
737
  case 'integer':
639
738
  return /*#__PURE__*/_jsx(IntegerEditor, {
640
739
  isDisabled: isDisabled,
740
+ presentation: presentation,
741
+ onUnstage: onUnstage,
641
742
  operatorValue: operatorValue,
642
743
  filterValue: filterValue,
643
744
  onChange: onChange,
@@ -646,6 +747,8 @@ export function PowerSearchValueEditor({
646
747
  case 'float':
647
748
  return /*#__PURE__*/_jsx(FloatEditor, {
648
749
  isDisabled: isDisabled,
750
+ presentation: presentation,
751
+ onUnstage: onUnstage,
649
752
  operatorValue: operatorValue,
650
753
  filterValue: filterValue,
651
754
  onChange: onChange,
@@ -654,6 +757,7 @@ export function PowerSearchValueEditor({
654
757
  case 'time':
655
758
  return /*#__PURE__*/_jsx(TimeEditor, {
656
759
  isDisabled: isDisabled,
760
+ presentation: presentation,
657
761
  operatorValue: operatorValue,
658
762
  filterValue: filterValue,
659
763
  onChange: onChange
@@ -661,9 +765,11 @@ export function PowerSearchValueEditor({
661
765
  case 'date_absolute':
662
766
  return /*#__PURE__*/_jsx(DateAbsoluteEditor, {
663
767
  isDisabled: isDisabled,
768
+ presentation: presentation,
664
769
  operatorValue: operatorValue,
665
770
  filterValue: filterValue,
666
- onChange: onChange
771
+ onChange: onChange,
772
+ timezoneID: timezoneID
667
773
  });
668
774
  case 'date_relative':
669
775
  return /*#__PURE__*/_jsx(DateRelativeEditor, {
@@ -675,9 +781,11 @@ export function PowerSearchValueEditor({
675
781
  case 'date_range':
676
782
  return /*#__PURE__*/_jsx(DateRangeEditor, {
677
783
  isDisabled: isDisabled,
784
+ presentation: presentation,
678
785
  operatorValue: operatorValue,
679
786
  filterValue: filterValue,
680
- onChange: onChange
787
+ onChange: onChange,
788
+ timezoneID: timezoneID
681
789
  });
682
790
  case 'enum':
683
791
  return /*#__PURE__*/_jsx(EnumEditor, {
@@ -696,6 +804,8 @@ export function PowerSearchValueEditor({
696
804
  case 'entity_list':
697
805
  return /*#__PURE__*/_jsx(EntityListEditor, {
698
806
  isDisabled: isDisabled,
807
+ presentation: presentation,
808
+ fieldLabel: fieldLabel,
699
809
  operatorValue: operatorValue,
700
810
  filterValue: filterValue,
701
811
  onChange: onChange,
@@ -10,13 +10,25 @@
10
10
  import type { OperatorValue, FilterValue } from './types.js';
11
11
  import type { InternalConfig } from './useInternalConfig.js';
12
12
  import type { Locale, TranslatorFn } from '../i18n/index.js';
13
- export declare function formatDateAbsolute(unixSeconds: number, locale: Locale, timezoneID?: string): string;
14
13
  /**
15
- * Compact date-only rendering (no time-of-day) for the token pill's inline
16
- * value display, which has less room than the editor's full summary. Kept
17
- * separate from {@link formatDateAbsolute} rather than reusing it with
18
- * different options threaded through a param, since the two callers want
19
- * genuinely different shapes, not a parameterization of the same one.
14
+ * A number in the provider locale's digits, decimal mark, and — unless the
15
+ * options say otherwise — grouping. The shared number helper for
16
+ * PowerSearch's own readings of a value — this module owns the raw `Intl`
17
+ * access.
18
+ */
19
+ export declare function formatSharedNumber(value: number, locale: Locale, options?: Pick<Intl.NumberFormatOptions, 'useGrouping' | 'maximumFractionDigits'>): string;
20
+ /**
21
+ * The one reading of a calendar-day `date_absolute` value: its day in the
22
+ * zone `resolveDateZone` names. The token text and the accessible label share
23
+ * it; the editors read the same zone through `resolveDateZone`, so a value
24
+ * never reads as two days in one field. A value whose operator sets
25
+ * `isDateOnly: false` is not a calendar day: it keeps its date and time in
26
+ * `timezoneID`, else the viewer's zone.
27
+ */
28
+ export declare function formatDateAbsolute(unixSeconds: number, locale: Locale, timezoneID: string | undefined, isDateOnly?: boolean): string;
29
+ /**
30
+ * The released token text for a value with a time of day: its day in the
31
+ * viewer's zone, as the token has always shown it.
20
32
  */
21
33
  export declare function formatDateAbsoluteCompact(unixSeconds: number, locale: Locale): string;
22
34
  export declare function formatFilterValue(_config: InternalConfig, operatorValue: OperatorValue, filterValue: FilterValue, maxLength: number, t: TranslatorFn, locale: Locale, timezoneID?: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"formatFilterValue.d.ts","sourceRoot":"","sources":["../../src/PowerSearch/formatFilterValue.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAE,WAAW,EAAW,MAAM,SAAS,CAAC;AAClE,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAC,MAAM,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AAwBlD,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAWR;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,MAAM,CAOR;AAcD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,cAAc,EACvB,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,CAAC,EAAE,YAAY,EACf,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAwHR"}
1
+ {"version":3,"file":"formatFilterValue.d.ts","sourceRoot":"","sources":["../../src/PowerSearch/formatFilterValue.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAE,WAAW,EAAW,MAAM,SAAS,CAAC;AAClE,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAC,MAAM,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AAyBlD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,IAAI,CACZ,IAAI,CAAC,mBAAmB,EACxB,aAAa,GAAG,uBAAuB,CACxC,GACA,MAAM,CAER;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,UAAU,UAAO,GAChB,MAAM,CAmBR;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,MAAM,CAOR;AAcD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,cAAc,EACvB,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,CAAC,EAAE,YAAY,EACf,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CA8HR"}