@astryxdesign/core 0.7.7 → 0.7.8-canary.0588a13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AlertDialog/AlertDialog.d.ts +4 -1
- package/dist/AlertDialog/AlertDialog.d.ts.map +1 -1
- package/dist/AlertDialog/AlertDialog.js +46 -6
- package/dist/AppShell/AppShell.d.ts.map +1 -1
- package/dist/AppShell/AppShell.js +11 -3
- package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheet.js +1 -0
- package/dist/BottomSheet/BottomSheetPanel.d.ts +1 -1
- package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetPanel.js +55 -18
- package/dist/BottomSheet/BottomSheetSwitcher.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetSwitcher.js +5 -0
- package/dist/BottomSheet/bottomSheetStack.js +1 -1
- package/dist/BottomSheet/useSheetGestures.d.ts +3 -1
- package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
- package/dist/BottomSheet/useSheetGestures.js +16 -1
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/Button/Button.js +17 -1
- package/dist/Calendar/Calendar.d.ts.map +1 -1
- package/dist/Calendar/Calendar.js +18 -22
- package/dist/Calendar/getWeekdayHeaderNames.d.ts +16 -0
- package/dist/Calendar/getWeekdayHeaderNames.d.ts.map +1 -0
- package/dist/Calendar/getWeekdayHeaderNames.js +70 -0
- package/dist/Calendar/hooks/useCalendarDays.d.ts.map +1 -1
- package/dist/Calendar/hooks/useCalendarDays.js +2 -10
- package/dist/Calendar/{standaloneShortWeekdayNames.generated.d.ts → weekdayHeaderNames.generated.d.ts} +14 -14
- package/dist/Calendar/weekdayHeaderNames.generated.d.ts.map +1 -0
- package/dist/Calendar/{standaloneShortWeekdayNames.generated.js → weekdayHeaderNames.generated.js} +12 -12
- package/dist/Carousel/Carousel.d.ts.map +1 -1
- package/dist/Carousel/Carousel.js +2 -0
- package/dist/Chat/ChatComposerInput.d.ts.map +1 -1
- package/dist/Chat/ChatComposerInput.js +6 -1
- package/dist/Chat/ChatMessageList.d.ts.map +1 -1
- package/dist/Chat/ChatMessageList.js +2 -1
- package/dist/Chat/useChatDictation.d.ts.map +1 -1
- package/dist/Chat/useChatDictation.js +2 -0
- package/dist/Chat/useChatNewMessages.js +1 -1
- package/dist/Chat/useChatStreamScroll.d.ts.map +1 -1
- package/dist/Chat/useChatStreamScroll.js +2 -0
- package/dist/Chat/useSpeechRecognition.d.ts.map +1 -1
- package/dist/Chat/useSpeechRecognition.js +3 -0
- package/dist/Chat/useTriggerMenu.js +1 -1
- package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +17 -12
- package/dist/CheckboxList/CheckboxList.d.ts +20 -2
- package/dist/CheckboxList/CheckboxList.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxList.js +12 -4
- package/dist/CheckboxList/CheckboxListContext.d.ts +7 -0
- package/dist/CheckboxList/CheckboxListContext.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListContext.js +2 -1
- package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListItem.js +14 -2
- package/dist/CheckboxList/requiredGroup.d.ts +22 -0
- package/dist/CheckboxList/requiredGroup.d.ts.map +1 -0
- package/dist/CheckboxList/requiredGroup.js +52 -0
- package/dist/CodeBlock/CodeBlock.d.ts +10 -1
- package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
- package/dist/CodeBlock/CodeBlock.js +28 -11
- package/dist/CommandPalette/CommandPalette.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPalette.js +2 -0
- package/dist/CommandPalette/CommandPaletteItem.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPaletteItem.js +2 -0
- package/dist/ComplexSelector/ComplexSelector.d.ts +4 -1
- package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
- package/dist/ComplexSelector/ComplexSelector.js +14 -4
- package/dist/ContextMenu/ContextMenu.js +2 -2
- package/dist/DateInput/MonthScroller.d.ts.map +1 -1
- package/dist/DateInput/MonthScroller.js +5 -2
- package/dist/DateInput/PickerWheel.d.ts +19 -0
- package/dist/DateInput/PickerWheel.d.ts.map +1 -0
- package/dist/DateInput/PickerWheel.js +646 -0
- package/dist/DateInput/TouchDateField.d.ts.map +1 -1
- package/dist/DateInput/TouchDateField.js +9 -30
- package/dist/DateInput/Wheel.d.ts +18 -37
- package/dist/DateInput/Wheel.d.ts.map +1 -1
- package/dist/DateInput/Wheel.js +133 -120
- package/dist/DateInput/datePickerTouch.d.ts +13 -0
- package/dist/DateInput/datePickerTouch.d.ts.map +1 -0
- package/dist/DateInput/datePickerTouch.js +14 -0
- package/dist/DateInput/useOwnScrollGesture.d.ts +10 -0
- package/dist/DateInput/useOwnScrollGesture.d.ts.map +1 -1
- package/dist/DateInput/useOwnScrollGesture.js +16 -3
- package/dist/DateInput/usePointerDragScroll.d.ts.map +1 -1
- package/dist/DateInput/usePointerDragScroll.js +2 -0
- package/dist/DateInput/useScrollSettle.d.ts.map +1 -1
- package/dist/DateInput/useScrollSettle.js +3 -0
- package/dist/DateInput/useWheelListbox.d.ts +59 -0
- package/dist/DateInput/useWheelListbox.d.ts.map +1 -0
- package/dist/DateInput/useWheelListbox.js +88 -0
- package/dist/DateInput/wheelOptions.d.ts +94 -0
- package/dist/DateInput/wheelOptions.d.ts.map +1 -0
- package/dist/DateInput/wheelOptions.js +110 -0
- package/dist/DateInput/wheelPhysics.d.ts +127 -0
- package/dist/DateInput/wheelPhysics.d.ts.map +1 -0
- package/dist/DateInput/wheelPhysics.js +341 -0
- package/dist/DateInput/wheelStrip.d.ts +92 -0
- package/dist/DateInput/wheelStrip.d.ts.map +1 -0
- package/dist/DateInput/wheelStrip.js +258 -0
- package/dist/DateTimeInput/TouchDateTimeField.d.ts.map +1 -1
- package/dist/DateTimeInput/TouchDateTimeField.js +70 -127
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +9 -32
- package/dist/Drawer/useDrawerDialogPresence.d.ts.map +1 -1
- package/dist/Drawer/useDrawerDialogPresence.js +3 -0
- package/dist/DropdownMenu/useMenuOverflow.d.ts.map +1 -1
- package/dist/DropdownMenu/useMenuOverflow.js +5 -0
- package/dist/Field/Field.js +2 -2
- package/dist/FieldStatus/useFieldStatusAnnouncement.d.ts.map +1 -1
- package/dist/FieldStatus/useFieldStatusAnnouncement.js +1 -0
- package/dist/FormLayout/FormLayout.d.ts +5 -1
- package/dist/FormLayout/FormLayout.d.ts.map +1 -1
- package/dist/HoverCard/HoverCard.d.ts +6 -4
- package/dist/HoverCard/HoverCard.d.ts.map +1 -1
- package/dist/HoverCard/HoverCard.js +48 -3
- package/dist/HoverCard/useHoverCard.d.ts +5 -4
- package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
- package/dist/HoverCard/useHoverCard.js +26 -34
- package/dist/Icon/Icon.d.ts +5 -1
- package/dist/Icon/Icon.d.ts.map +1 -1
- package/dist/Icon/Icon.js +20 -3
- package/dist/InfoTip/InfoTip.d.ts +5 -5
- package/dist/InfoTip/InfoTip.d.ts.map +1 -1
- package/dist/InfoTip/InfoTip.js +58 -19
- package/dist/Item/useSwipeAction.d.ts.map +1 -1
- package/dist/Item/useSwipeAction.js +3 -0
- package/dist/Layer/modalOutlet.d.ts.map +1 -1
- package/dist/Layer/modalOutlet.js +2 -0
- package/dist/Layer/outsidePress.d.ts.map +1 -1
- package/dist/Layer/outsidePress.js +1 -0
- package/dist/Layer/useLayer.d.ts.map +1 -1
- package/dist/Layer/useLayer.js +4 -1
- package/dist/Layer/useLayerDismissal.d.ts.map +1 -1
- package/dist/Layer/useLayerDismissal.js +3 -0
- package/dist/Layer/useTouchTrigger.d.ts +13 -7
- package/dist/Layer/useTouchTrigger.d.ts.map +1 -1
- package/dist/Layer/useTouchTrigger.js +20 -6
- package/dist/Layout/index.d.ts +1 -1
- package/dist/Layout/index.d.ts.map +1 -1
- package/dist/Layout/index.js +1 -1
- package/dist/Layout/layoutReset.js +1 -1
- package/dist/Layout/overlayPaddingReset.stylex.d.ts +68 -0
- package/dist/Layout/overlayPaddingReset.stylex.d.ts.map +1 -0
- package/dist/Layout/overlayPaddingReset.stylex.js +72 -0
- package/dist/Layout/padding.stylex.d.ts +5 -129
- package/dist/Layout/padding.stylex.d.ts.map +1 -1
- package/dist/Layout/padding.stylex.js +9 -143
- package/dist/Layout/paddingStyles.stylex.d.ts +83 -0
- package/dist/Layout/paddingStyles.stylex.d.ts.map +1 -0
- package/dist/Layout/paddingStyles.stylex.js +99 -0
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +20 -1
- package/dist/MobileNav/MobileNav.d.ts +3 -2
- package/dist/MobileNav/MobileNav.d.ts.map +1 -1
- package/dist/MobileNav/MobileNav.js +10 -26
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +2 -1
- package/dist/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/NumberInput/NumberInput.js +2 -1
- package/dist/Outline/useOutlineFromDOM.d.ts.map +1 -1
- package/dist/Outline/useOutlineFromDOM.js +3 -0
- package/dist/Outline/useScrollSpy.d.ts.map +1 -1
- package/dist/Outline/useScrollSpy.js +3 -0
- package/dist/OverflowList/OverflowList.d.ts.map +1 -1
- package/dist/OverflowList/OverflowList.js +3 -0
- package/dist/Overlay/Overlay.d.ts.map +1 -1
- package/dist/Overlay/Overlay.js +7 -2
- package/dist/Popover/Popover.d.ts.map +1 -1
- package/dist/Popover/Popover.js +6 -0
- package/dist/Popover/usePopover.js +2 -2
- package/dist/PowerSearch/PowerSearch.d.ts +41 -4
- package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.js +441 -134
- package/dist/PowerSearch/PowerSearchBottomSheet.d.ts +125 -0
- package/dist/PowerSearch/PowerSearchBottomSheet.d.ts.map +1 -0
- package/dist/PowerSearch/PowerSearchBottomSheet.js +2041 -0
- package/dist/PowerSearch/PowerSearchEditPopover.d.ts +35 -2
- package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchEditPopover.js +43 -10
- package/dist/PowerSearch/PowerSearchFilterEditor.d.ts +1 -1
- package/dist/PowerSearch/PowerSearchFilterEditor.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchFilterEditor.js +4 -2
- package/dist/PowerSearch/PowerSearchToken.d.ts +1 -1
- package/dist/PowerSearch/PowerSearchToken.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchToken.js +3 -2
- package/dist/PowerSearch/PowerSearchValueEditor.d.ts +38 -3
- package/dist/PowerSearch/PowerSearchValueEditor.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchValueEditor.js +273 -86
- package/dist/PowerSearch/formatFilterValue.d.ts +14 -7
- package/dist/PowerSearch/formatFilterValue.d.ts.map +1 -1
- package/dist/PowerSearch/formatFilterValue.js +31 -23
- package/dist/PowerSearch/formatTokenValue.d.ts +28 -0
- package/dist/PowerSearch/formatTokenValue.d.ts.map +1 -0
- package/dist/PowerSearch/formatTokenValue.js +161 -0
- package/dist/PowerSearch/index.d.ts +1 -1
- package/dist/PowerSearch/index.d.ts.map +1 -1
- package/dist/PowerSearch/powerSearchDateZone.d.ts +25 -0
- package/dist/PowerSearch/powerSearchDateZone.d.ts.map +1 -0
- package/dist/PowerSearch/powerSearchDateZone.js +57 -0
- package/dist/PowerSearch/powerSearchSheetUtils.d.ts +65 -0
- package/dist/PowerSearch/powerSearchSheetUtils.d.ts.map +1 -0
- package/dist/PowerSearch/powerSearchSheetUtils.js +168 -0
- package/dist/PowerSearch/types.d.ts +8 -1
- package/dist/PowerSearch/types.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBarTouch.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBarTouch.js +2 -0
- package/dist/RadioList/RadioList.d.ts.map +1 -1
- package/dist/RadioList/RadioList.js +3 -2
- package/dist/RadioList/RadioListItem.d.ts +1 -1
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +5 -3
- package/dist/Resizable/ResizeHandle.d.ts +2 -1
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +116 -92
- package/dist/Resizable/createResizable.d.ts +199 -0
- package/dist/Resizable/createResizable.d.ts.map +1 -0
- package/dist/Resizable/createResizable.js +733 -0
- package/dist/Resizable/separatorAttributes.d.ts +45 -0
- package/dist/Resizable/separatorAttributes.d.ts.map +1 -0
- package/dist/Resizable/separatorAttributes.js +35 -0
- package/dist/Resizable/useResizable.d.ts +3 -3
- package/dist/Resizable/useResizable.d.ts.map +1 -1
- package/dist/Resizable/useResizable.js +252 -459
- package/dist/SegmentedControl/useSegmentedSelectionMotion.d.ts.map +1 -1
- package/dist/SegmentedControl/useSegmentedSelectionMotion.js +3 -3
- package/dist/SelectableCard/SelectableCard.d.ts +2 -0
- package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
- package/dist/SelectableCard/SelectableCard.js +36 -11
- package/dist/SelectableCard/selectableCardInput.d.ts +12 -0
- package/dist/SelectableCard/selectableCardInput.d.ts.map +1 -0
- package/dist/SelectableCard/selectableCardInput.js +20 -0
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +7 -9
- package/dist/SideNav/SideNav.d.ts.map +1 -1
- package/dist/SideNav/SideNav.js +36 -5
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +16 -11
- package/dist/Slider/sliderTouchController.js +2 -2
- package/dist/Spinner/Spinner.d.ts +1 -1
- package/dist/Spinner/Spinner.d.ts.map +1 -1
- package/dist/Spinner/Spinner.js +60 -58
- package/dist/Stepper/Stepper.d.ts.map +1 -1
- package/dist/Stepper/Stepper.js +10 -15
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +4 -10
- package/dist/Switch/useSwitchTouch.js +4 -4
- package/dist/Table/BaseTable.d.ts.map +1 -1
- package/dist/Table/BaseTable.js +29 -8
- package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
- package/dist/Table/plugins/columnResize/useTableColumnResize.js +3 -1
- package/dist/Table/plugins/filtering/useTableFiltering.d.ts.map +1 -1
- package/dist/Table/plugins/filtering/useTableFiltering.js +2 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +12 -0
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +17 -3
- package/dist/Table/plugins/stickyColumns/useTableStickyColumns.d.ts.map +1 -1
- package/dist/Table/plugins/stickyColumns/useTableStickyColumns.js +2 -0
- package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
- package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
- package/dist/Table/plugins/tree/useTableTreeData.js +27 -14
- package/dist/TextArea/TextArea.d.ts.map +1 -1
- package/dist/TextArea/TextArea.js +2 -1
- package/dist/TextInput/TextInput.d.ts +2 -2
- package/dist/TextInput/TextInput.d.ts.map +1 -1
- package/dist/TextInput/TextInput.js +12 -8
- package/dist/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/TimeInput/TimeInput.js +2 -0
- package/dist/TimeInput/TimeWheels.d.ts +32 -0
- package/dist/TimeInput/TimeWheels.d.ts.map +1 -0
- package/dist/TimeInput/TimeWheels.js +144 -0
- package/dist/TimeInput/TouchTimeField.d.ts.map +1 -1
- package/dist/TimeInput/TouchTimeField.js +63 -116
- package/dist/TimeInput/timeWheelRules.d.ts +124 -0
- package/dist/TimeInput/timeWheelRules.d.ts.map +1 -0
- package/dist/TimeInput/timeWheelRules.js +277 -0
- package/dist/Timer/Timer.d.ts.map +1 -1
- package/dist/Timer/Timer.js +2 -0
- package/dist/Timestamp/Timestamp.js +1 -1
- package/dist/Timestamp/formatInstant.d.ts.map +1 -1
- package/dist/Timestamp/formatInstant.js +1 -23
- package/dist/Toast/Toast.d.ts +11 -1
- package/dist/Toast/Toast.d.ts.map +1 -1
- package/dist/Toast/Toast.js +25 -15
- package/dist/Toast/ToastViewport.d.ts.map +1 -1
- package/dist/Toast/ToastViewport.js +97 -34
- package/dist/Toast/types.d.ts +9 -3
- package/dist/Toast/types.d.ts.map +1 -1
- package/dist/Toast/useToast.d.ts.map +1 -1
- package/dist/Toast/useToast.js +1 -0
- package/dist/Tokenizer/Tokenizer.d.ts +44 -46
- package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.js +20 -21
- package/dist/Tokenizer/TokenizerBottomSheet.d.ts +1 -1
- package/dist/Tokenizer/TokenizerBottomSheet.js +12 -18
- package/dist/Tokenizer/index.d.ts +1 -1
- package/dist/Tokenizer/index.d.ts.map +1 -1
- package/dist/Tooltip/Tooltip.d.ts +2 -23
- package/dist/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/Tooltip/Tooltip.js +5 -29
- package/dist/Tooltip/useTooltip.d.ts +23 -30
- package/dist/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.js +200 -108
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +27 -18
- package/dist/Typeahead/TypeaheadItem.d.ts +2 -1
- package/dist/Typeahead/TypeaheadItem.d.ts.map +1 -1
- package/dist/animator/createAnimator.d.ts +98 -0
- package/dist/animator/createAnimator.d.ts.map +1 -0
- package/dist/animator/createAnimator.js +259 -0
- package/dist/astryx.css +53 -8
- package/dist/gestures/GestureHost.d.ts +16 -1
- package/dist/gestures/GestureHost.d.ts.map +1 -1
- package/dist/gestures/GestureHost.js +4 -1
- package/dist/gestures/PressTracker.d.ts.map +1 -1
- package/dist/gestures/PressTracker.js +4 -3
- package/dist/hooks/ModalAnnounceProvider.d.ts.map +1 -1
- package/dist/hooks/ModalAnnounceProvider.js +1 -0
- package/dist/hooks/actionGroupTracker.d.ts +4 -1
- package/dist/hooks/actionGroupTracker.d.ts.map +1 -1
- package/dist/hooks/actionGroupTracker.js +18 -7
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/longPressDetector.d.ts +66 -0
- package/dist/hooks/longPressDetector.d.ts.map +1 -0
- package/dist/hooks/longPressDetector.js +200 -0
- package/dist/hooks/pressGroupContext.d.ts +6 -0
- package/dist/hooks/pressGroupContext.d.ts.map +1 -0
- package/dist/hooks/pressGroupContext.js +20 -0
- package/dist/hooks/rootScrollStyles.d.ts +48 -0
- package/dist/hooks/rootScrollStyles.d.ts.map +1 -0
- package/dist/hooks/rootScrollStyles.js +207 -0
- package/dist/hooks/scrollLockTouchGuard.d.ts +13 -0
- package/dist/hooks/scrollLockTouchGuard.d.ts.map +1 -0
- package/dist/hooks/scrollLockTouchGuard.js +117 -0
- package/dist/hooks/scrollbarGutter.d.ts +4 -4
- package/dist/hooks/scrollbarGutter.d.ts.map +1 -1
- package/dist/hooks/scrollbarGutter.js +36 -23
- package/dist/hooks/useActionGroupTracking.d.ts +53 -0
- package/dist/hooks/useActionGroupTracking.d.ts.map +1 -0
- package/dist/hooks/useActionGroupTracking.js +174 -0
- package/dist/hooks/useAnimator.d.ts +41 -0
- package/dist/hooks/useAnimator.d.ts.map +1 -0
- package/dist/hooks/useAnimator.js +70 -0
- package/dist/hooks/useAnnounceRenderedText.d.ts.map +1 -1
- package/dist/hooks/useAnnounceRenderedText.js +1 -0
- package/dist/hooks/useAttachment.d.ts +1 -1
- package/dist/hooks/useAttachment.js +1 -1
- package/dist/hooks/useAutoMediaMode.d.ts.map +1 -1
- package/dist/hooks/useAutoMediaMode.js +1 -0
- package/dist/hooks/useBusyAnnouncement.d.ts.map +1 -1
- package/dist/hooks/useBusyAnnouncement.js +2 -0
- package/dist/hooks/useDevWarning.d.ts.map +1 -1
- package/dist/hooks/useDevWarning.js +2 -0
- package/dist/hooks/useFocusTrap.d.ts.map +1 -1
- package/dist/hooks/useFocusTrap.js +2 -0
- package/dist/hooks/useGridFocus.d.ts +8 -5
- package/dist/hooks/useGridFocus.d.ts.map +1 -1
- package/dist/hooks/useGridFocus.js +4 -3
- package/dist/hooks/useHotkeys.d.ts.map +1 -1
- package/dist/hooks/useHotkeys.js +3 -0
- package/dist/hooks/useImageMode.d.ts.map +1 -1
- package/dist/hooks/useImageMode.js +3 -0
- package/dist/hooks/useInputStatusIcon.d.ts +1 -1
- package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
- package/dist/hooks/useInputStatusIcon.js +2 -2
- package/dist/hooks/useIsomorphicLayoutEffect.d.ts +2 -2
- package/dist/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -1
- package/dist/hooks/useKeyboardHint.js +1 -1
- package/dist/hooks/useLongPress.d.ts +8 -9
- package/dist/hooks/useLongPress.d.ts.map +1 -1
- package/dist/hooks/useLongPress.js +23 -106
- package/dist/hooks/useMenuHover.d.ts.map +1 -1
- package/dist/hooks/useMenuHover.js +2 -0
- package/dist/hooks/useMenuPress.d.ts.map +1 -1
- package/dist/hooks/useMenuPress.js +3 -0
- package/dist/hooks/useOverflow.d.ts.map +1 -1
- package/dist/hooks/useOverflow.js +2 -1
- package/dist/hooks/usePressFeedback.d.ts.map +1 -1
- package/dist/hooks/usePressFeedback.js +1 -0
- package/dist/hooks/useResolvedRequired.d.ts +3 -0
- package/dist/hooks/useResolvedRequired.d.ts.map +1 -1
- package/dist/hooks/useResolvedRequired.js +3 -0
- package/dist/hooks/useScrollLock.d.ts +8 -9
- package/dist/hooks/useScrollLock.d.ts.map +1 -1
- package/dist/hooks/useScrollLock.js +50 -48
- package/dist/hooks/useScrollableArea.d.ts.map +1 -1
- package/dist/hooks/useScrollableArea.js +5 -0
- package/dist/hooks/useStreamingText.d.ts.map +1 -1
- package/dist/hooks/useStreamingText.js +3 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.d.ts +8 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.d.ts.map +1 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.js +45 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.d.ts.map +1 -1
- package/dist/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.js +6 -0
- package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.d.ts +8 -0
- package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.d.ts.map +1 -0
- package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.js +14 -0
- package/dist/i18n/generated-english/Resizable/createResizable.generated.d.ts +8 -0
- package/dist/i18n/generated-english/Resizable/createResizable.generated.d.ts.map +1 -0
- package/dist/i18n/generated-english/Resizable/createResizable.generated.js +13 -0
- package/dist/i18n/generated-english/Table/plugins/rowExpansion/useTableRowExpansion.generated.d.ts.map +1 -1
- package/dist/i18n/generated-english/Table/plugins/rowExpansion/useTableRowExpansion.generated.js +3 -1
- package/dist/i18n/generated-english/Table/plugins/tree/useTableTreeData.generated.d.ts.map +1 -1
- package/dist/i18n/generated-english/Table/plugins/tree/useTableTreeData.generated.js +3 -1
- package/dist/i18n/generated-english/TimeInput/TimeWheels.generated.d.ts +8 -0
- package/dist/i18n/generated-english/TimeInput/TimeWheels.generated.d.ts.map +1 -0
- package/dist/i18n/generated-english/TimeInput/TimeWheels.generated.js +17 -0
- package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/en.generated.js +37 -0
- package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/pseudo.generated.js +37 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/internal/indicatorPress.stylex.d.ts +20 -0
- package/dist/internal/indicatorPress.stylex.d.ts.map +1 -0
- package/dist/internal/indicatorPress.stylex.js +26 -0
- package/dist/internal/selectable-card.d.ts +21 -0
- package/dist/internal/selectable-card.d.ts.map +1 -0
- package/dist/internal/selectable-card.js +20 -0
- package/dist/internal/sheetDraft.d.ts +2 -2
- package/dist/internal/sheetDraft.js +2 -2
- package/dist/keyboard/index.d.ts +17 -0
- package/dist/keyboard/index.d.ts.map +1 -0
- package/dist/keyboard/index.js +19 -0
- package/dist/keyboard/keyboardHeight.d.ts +149 -0
- package/dist/keyboard/keyboardHeight.d.ts.map +1 -0
- package/dist/keyboard/keyboardHeight.js +432 -0
- package/dist/keyboard/keyboardLayoutGuide.d.ts +59 -0
- package/dist/keyboard/keyboardLayoutGuide.d.ts.map +1 -0
- package/dist/keyboard/keyboardLayoutGuide.js +207 -0
- package/dist/keyboard/keyboardModel.d.ts +93 -0
- package/dist/keyboard/keyboardModel.d.ts.map +1 -0
- package/dist/keyboard/keyboardModel.js +220 -0
- package/dist/keyboard/rideKeyboard.d.ts +42 -0
- package/dist/keyboard/rideKeyboard.d.ts.map +1 -0
- package/dist/keyboard/rideKeyboard.js +77 -0
- package/dist/keyboard/useMobileKeyboard.d.ts +61 -0
- package/dist/keyboard/useMobileKeyboard.d.ts.map +1 -0
- package/dist/keyboard/useMobileKeyboard.js +699 -0
- package/dist/motion/android/index.d.ts +16 -0
- package/dist/motion/android/index.d.ts.map +1 -0
- package/dist/motion/android/index.js +18 -0
- package/dist/motion/android/keyboard.d.ts +83 -0
- package/dist/motion/android/keyboard.d.ts.map +1 -0
- package/dist/motion/android/keyboard.js +96 -0
- package/dist/motion/animatedLayout.d.ts +8 -0
- package/dist/motion/animatedLayout.d.ts.map +1 -1
- package/dist/motion/animatedLayout.js +246 -53
- package/dist/motion/animator.d.ts +14 -14
- package/dist/motion/animator.d.ts.map +1 -1
- package/dist/motion/animator.js +45 -26
- package/dist/motion/frameBlock.d.ts +14 -0
- package/dist/motion/frameBlock.d.ts.map +1 -0
- package/dist/motion/frameBlock.js +16 -0
- package/dist/motion/progress.d.ts +88 -0
- package/dist/motion/progress.d.ts.map +1 -0
- package/dist/motion/progress.js +128 -0
- package/dist/motion/reducedMotion.d.ts.map +1 -1
- package/dist/motion/reducedMotion.js +3 -1
- package/dist/motion/uikit/alert.d.ts +41 -0
- package/dist/motion/uikit/alert.d.ts.map +1 -0
- package/dist/motion/uikit/alert.js +43 -0
- package/dist/motion/uikit/datePicker.d.ts +58 -0
- package/dist/motion/uikit/datePicker.d.ts.map +1 -0
- package/dist/motion/uikit/datePicker.js +60 -0
- package/dist/motion/uikit/index.d.ts +6 -4
- package/dist/motion/uikit/index.d.ts.map +1 -1
- package/dist/motion/uikit/index.js +6 -4
- package/dist/motion/uikit/picker.d.ts +96 -0
- package/dist/motion/uikit/picker.d.ts.map +1 -0
- package/dist/motion/uikit/picker.js +117 -0
- package/dist/privateAttributes/pressGroupItem.stylex.d.ts +22 -0
- package/dist/privateAttributes/pressGroupItem.stylex.d.ts.map +1 -0
- package/dist/privateAttributes/pressGroupItem.stylex.js +36 -0
- package/dist/privateAttributes/reducedMotion.stylex.d.ts +23 -0
- package/dist/privateAttributes/reducedMotion.stylex.d.ts.map +1 -0
- package/dist/privateAttributes/reducedMotion.stylex.js +40 -0
- package/dist/theme/Theme.d.ts.map +1 -1
- package/dist/theme/Theme.js +29 -4
- package/dist/theme/generateThemeRules.d.ts.map +1 -1
- package/dist/theme/generateThemeRules.js +14 -13
- package/dist/theme/motionKnobs.d.ts +4 -3
- package/dist/theme/motionKnobs.d.ts.map +1 -1
- package/dist/theme/motionKnobs.js +3 -2
- package/dist/theme/themeMotion.d.ts +6 -0
- package/dist/theme/themeMotion.d.ts.map +1 -1
- package/dist/theme/themeMotion.js +15 -2
- package/dist/theme/tokens.stylex.d.ts +3 -0
- package/dist/theme/tokens.stylex.d.ts.map +1 -1
- package/dist/theme/tokens.stylex.js +4 -1
- package/dist/utils/dateParser.d.ts.map +1 -1
- package/dist/utils/dateParser.js +12 -0
- package/dist/utils/disabledInteraction.d.ts +10 -2
- package/dist/utils/disabledInteraction.d.ts.map +1 -1
- package/dist/utils/disabledInteraction.js +16 -2
- package/dist/utils/focusReturn.d.ts +22 -25
- package/dist/utils/focusReturn.d.ts.map +1 -1
- package/dist/utils/focusReturn.js +36 -29
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/interactionModality.d.ts.map +1 -1
- package/dist/utils/interactionModality.js +4 -0
- package/dist/utils/interactionOverlay.stylex.d.ts +6 -4
- package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
- package/dist/utils/interactionOverlay.stylex.js +6 -4
- package/dist/utils/isFocusDetached.d.ts +27 -0
- package/dist/utils/isFocusDetached.d.ts.map +1 -0
- package/dist/utils/isFocusDetached.js +32 -0
- package/dist/utils/layoutViewport.d.ts +25 -0
- package/dist/utils/layoutViewport.d.ts.map +1 -0
- package/dist/utils/layoutViewport.js +102 -0
- package/dist/utils/plainDate.d.ts +31 -0
- package/dist/utils/plainDate.d.ts.map +1 -1
- package/dist/utils/plainDate.js +68 -4
- package/dist/utils/pressFeedback.d.ts +6 -0
- package/dist/utils/pressFeedback.d.ts.map +1 -1
- package/dist/utils/pressFeedback.js +97 -18
- package/dist/utils/pressGesture.d.ts +4 -2
- package/dist/utils/pressGesture.d.ts.map +1 -1
- package/dist/utils/pressGesture.js +3 -1
- package/dist/utils/selectionLock.d.ts +10 -1
- package/dist/utils/selectionLock.d.ts.map +1 -1
- package/dist/utils/selectionLock.js +31 -5
- package/dist/utils/sharedMutationObserver.d.ts +2 -1
- package/dist/utils/sharedMutationObserver.d.ts.map +1 -1
- package/dist/utils/sharedMutationObserver.js +2 -1
- package/dist/utils/timeParser.d.ts +2 -1
- package/dist/utils/timeParser.d.ts.map +1 -1
- package/dist/utils/timeParser.js +29 -3
- package/dist/utils/triggerFocus.d.ts +36 -0
- package/dist/utils/triggerFocus.d.ts.map +1 -0
- package/dist/utils/triggerFocus.js +65 -0
- package/locales/en.json +148 -0
- package/locales/pseudo.json +111 -0
- package/package.json +14 -9
- package/src/AlertDialog/AlertDialog.doc.mjs +2 -2
- package/src/AlertDialog/AlertDialog.tsx +46 -5
- package/src/AppShell/AppShell.tsx +13 -4
- package/src/BottomSheet/BottomSheet.doc.mjs +1 -1
- package/src/BottomSheet/BottomSheet.tsx +1 -0
- package/src/BottomSheet/BottomSheetPanel.tsx +80 -16
- package/src/BottomSheet/BottomSheetSwitcher.doc.mjs +5 -0
- package/src/BottomSheet/BottomSheetSwitcher.tsx +5 -0
- package/src/BottomSheet/bottomSheetStack.ts +1 -1
- package/src/BottomSheet/useSheetGestures.ts +16 -1
- package/src/Button/Button.tsx +26 -4
- package/src/Calendar/Calendar.tsx +40 -32
- package/src/Calendar/getWeekdayHeaderNames.ts +88 -0
- package/src/Calendar/hooks/useCalendarDays.ts +5 -10
- package/src/Calendar/{standaloneShortWeekdayNames.generated.ts → weekdayHeaderNames.generated.ts} +14 -14
- package/src/Carousel/Carousel.tsx +1 -0
- package/src/Chat/ChatComposerInput.tsx +4 -7
- package/src/Chat/ChatMessageList.tsx +2 -1
- package/src/Chat/useChatDictation.ts +1 -0
- package/src/Chat/useChatNewMessages.ts +1 -1
- package/src/Chat/useChatStreamScroll.ts +2 -0
- package/src/Chat/useSpeechRecognition.ts +2 -0
- package/src/Chat/useTriggerMenu.tsx +1 -1
- package/src/CheckboxInput/CheckboxInput.doc.mjs +18 -0
- package/src/CheckboxInput/CheckboxInput.tsx +38 -15
- package/src/CheckboxList/CheckboxList.doc.mjs +14 -0
- package/src/CheckboxList/CheckboxList.tsx +43 -2
- package/src/CheckboxList/CheckboxListContext.tsx +9 -1
- package/src/CheckboxList/CheckboxListItem.tsx +23 -2
- package/src/CheckboxList/requiredGroup.ts +77 -0
- package/src/CodeBlock/CodeBlock.doc.mjs +9 -1
- package/src/CodeBlock/CodeBlock.tsx +41 -4
- package/src/CommandPalette/CommandPalette.tsx +1 -0
- package/src/CommandPalette/CommandPaletteItem.tsx +1 -0
- package/src/ComplexSelector/ComplexSelector.tsx +20 -5
- package/src/ContextMenu/ContextMenu.tsx +2 -2
- package/src/DateInput/MonthScroller.tsx +8 -2
- package/src/DateInput/PickerWheel.tsx +796 -0
- package/src/DateInput/TouchDateField.tsx +6 -32
- package/src/DateInput/Wheel.tsx +188 -171
- package/src/DateInput/datePickerTouch.ts +15 -0
- package/src/DateInput/useOwnScrollGesture.ts +25 -3
- package/src/DateInput/usePointerDragScroll.ts +1 -0
- package/src/DateInput/useScrollSettle.ts +2 -0
- package/src/DateInput/useWheelListbox.ts +112 -0
- package/src/DateInput/wheelOptions.ts +184 -0
- package/src/DateInput/wheelPhysics.ts +406 -0
- package/src/DateInput/wheelStrip.ts +341 -0
- package/src/DateTimeInput/TouchDateTimeField.tsx +100 -189
- package/src/Dialog/Dialog.tsx +12 -32
- package/src/Drawer/useDrawerDialogPresence.ts +2 -0
- package/src/DropdownMenu/useMenuOverflow.ts +3 -0
- package/src/Field/Field.tsx +2 -2
- package/src/FieldStatus/useFieldStatusAnnouncement.ts +1 -0
- package/src/FormLayout/FormLayout.doc.mjs +181 -46
- package/src/FormLayout/FormLayout.tsx +5 -1
- package/src/HoverCard/HoverCard.doc.mjs +10 -8
- package/src/HoverCard/HoverCard.tsx +58 -6
- package/src/HoverCard/useHoverCard.doc.mjs +178 -36
- package/src/HoverCard/useHoverCard.tsx +55 -55
- package/src/Icon/Icon.doc.mjs +51 -10
- package/src/Icon/Icon.tsx +31 -8
- package/src/IconButton/IconButton.doc.mjs +141 -21
- package/src/InfoTip/InfoTip.tsx +72 -16
- package/src/Item/useSwipeAction.ts +2 -0
- package/src/Layer/modalOutlet.ts +2 -0
- package/src/Layer/outsidePress.ts +1 -0
- package/src/Layer/useLayer.tsx +3 -1
- package/src/Layer/useLayerDismissal.ts +2 -0
- package/src/Layer/useTouchTrigger.ts +19 -6
- package/src/Layout/index.ts +1 -1
- package/src/Layout/layoutReset.ts +1 -1
- package/src/Layout/overlayPaddingReset.stylex.ts +73 -0
- package/src/Layout/padding.stylex.ts +9 -133
- package/src/Layout/paddingStyles.stylex.ts +87 -0
- package/src/Lightbox/Lightbox.tsx +20 -1
- package/src/Lightbox/useLightbox.doc.mjs +167 -0
- package/src/MobileNav/MobileNav.tsx +10 -31
- package/src/MultiSelector/MultiSelector.tsx +2 -7
- package/src/NumberInput/NumberInput.tsx +2 -7
- package/src/Outline/useOutlineFromDOM.ts +2 -0
- package/src/Outline/useScrollSpy.ts +2 -0
- package/src/OverflowList/OverflowList.tsx +2 -0
- package/src/Overlay/Overlay.tsx +7 -2
- package/src/Popover/Popover.tsx +4 -0
- package/src/Popover/usePopover.tsx +2 -2
- package/src/PowerSearch/PowerSearch.doc.mjs +60 -8
- package/src/PowerSearch/PowerSearch.tsx +622 -157
- package/src/PowerSearch/PowerSearchBottomSheet.tsx +2700 -0
- package/src/PowerSearch/PowerSearchEditPopover.tsx +65 -9
- package/src/PowerSearch/PowerSearchFilterEditor.tsx +2 -0
- package/src/PowerSearch/PowerSearchToken.tsx +2 -0
- package/src/PowerSearch/PowerSearchValueEditor.tsx +340 -59
- package/src/PowerSearch/formatFilterValue.ts +49 -27
- package/src/PowerSearch/formatTokenValue.ts +220 -0
- package/src/PowerSearch/index.ts +5 -1
- package/src/PowerSearch/powerSearchDateZone.ts +95 -0
- package/src/PowerSearch/powerSearchSheetUtils.ts +224 -0
- package/src/PowerSearch/types.ts +8 -1
- package/src/ProgressBar/ProgressBarTouch.ts +2 -0
- package/src/RadioList/RadioList.tsx +3 -2
- package/src/RadioList/RadioListItem.tsx +5 -3
- package/src/Resizable/Resizable.doc.mjs +5 -4
- package/src/Resizable/ResizeHandle.tsx +187 -135
- package/src/Resizable/createResizable.ts +1046 -0
- package/src/Resizable/separatorAttributes.ts +73 -0
- package/src/Resizable/useResizable.ts +292 -623
- package/src/SegmentedControl/useSegmentedSelectionMotion.ts +6 -3
- package/src/SelectableCard/SelectableCard.tsx +39 -10
- package/src/SelectableCard/selectableCardInput.ts +30 -0
- package/src/Selector/Selector.tsx +7 -19
- package/src/SideNav/SideNav.tsx +41 -5
- package/src/Slider/Slider.tsx +20 -11
- package/src/Slider/sliderTouchController.ts +2 -2
- package/src/Spinner/Spinner.tsx +77 -63
- package/src/Stepper/Stepper.tsx +10 -27
- package/src/Switch/Switch.tsx +2 -6
- package/src/Switch/useSwitchTouch.ts +4 -4
- package/src/Table/BaseTable.tsx +46 -12
- package/src/Table/plugins/columnResize/useTableColumnResize.tsx +2 -1
- package/src/Table/plugins/filtering/useTableFiltering.tsx +1 -0
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +31 -7
- package/src/Table/plugins/stickyColumns/useTableStickyColumns.tsx +2 -0
- package/src/Table/plugins/tree/useTableTreeData.tsx +43 -20
- package/src/Table/useTableRowExpansion.doc.mjs +9 -0
- package/src/Table/useTableTreeData.doc.mjs +15 -3
- package/src/TextArea/TextArea.tsx +2 -7
- package/src/TextInput/TextInput.tsx +13 -17
- package/src/TimeInput/TimeInput.tsx +2 -0
- package/src/TimeInput/TimeWheels.tsx +218 -0
- package/src/TimeInput/TouchTimeField.tsx +93 -155
- package/src/TimeInput/timeWheelRules.ts +352 -0
- package/src/Timer/Timer.tsx +1 -0
- package/src/Timestamp/Timestamp.tsx +1 -1
- package/src/Timestamp/formatInstant.ts +1 -33
- package/src/Toast/Toast.doc.mjs +4 -3
- package/src/Toast/Toast.tsx +52 -32
- package/src/Toast/ToastViewport.tsx +123 -35
- package/src/Toast/types.ts +9 -3
- package/src/Toast/useToast.tsx +1 -0
- package/src/Tokenizer/Tokenizer.doc.mjs +10 -10
- package/src/Tokenizer/Tokenizer.tsx +61 -62
- package/src/Tokenizer/TokenizerBottomSheet.tsx +17 -23
- package/src/Tokenizer/index.ts +1 -0
- package/src/Tooltip/Tooltip.tsx +6 -42
- package/src/Tooltip/useTooltip.doc.mjs +24 -0
- package/src/Tooltip/useTooltip.tsx +243 -134
- package/src/Typeahead/BaseTypeahead.tsx +27 -17
- package/src/Typeahead/TypeaheadItem.doc.mjs +6 -3
- package/src/Typeahead/TypeaheadItem.tsx +2 -1
- package/src/animator/createAnimator.doc.mjs +153 -0
- package/src/animator/createAnimator.ts +324 -0
- package/src/gestures/GestureHost.ts +6 -5
- package/src/gestures/PressTracker.ts +4 -3
- package/src/gestures/README.md +10 -4
- package/src/hooks/ModalAnnounceProvider.tsx +1 -0
- package/src/hooks/actionGroupTracker.ts +25 -9
- package/src/hooks/index.ts +2 -0
- package/src/hooks/longPressDetector.ts +273 -0
- package/src/hooks/pressGroupContext.ts +21 -0
- package/src/hooks/rootScrollStyles.ts +247 -0
- package/src/hooks/scrollLockTouchGuard.ts +149 -0
- package/src/hooks/scrollbarGutter.ts +41 -26
- package/src/hooks/useActionGroupTracking.ts +224 -0
- package/src/hooks/useAnimator.doc.mjs +109 -0
- package/src/hooks/useAnimator.ts +67 -0
- package/src/hooks/useAnnounceRenderedText.ts +1 -0
- package/src/hooks/useAttachment.ts +1 -1
- package/src/hooks/useAutoMediaMode.ts +1 -0
- package/src/hooks/useBusyAnnouncement.ts +2 -0
- package/src/hooks/useDevWarning.ts +2 -0
- package/src/hooks/useFocusTrap.ts +2 -0
- package/src/hooks/useGridFocus.doc.mjs +6 -6
- package/src/hooks/useGridFocus.ts +10 -7
- package/src/hooks/useHotkeys.ts +2 -0
- package/src/hooks/useImageMode.ts +2 -0
- package/src/hooks/useInputStatusIcon.tsx +3 -2
- package/src/hooks/useKeyboardHint.tsx +1 -1
- package/src/hooks/useLongPress.doc.mjs +2 -2
- package/src/hooks/useLongPress.ts +32 -122
- package/src/hooks/useMenuHover.ts +1 -0
- package/src/hooks/useMenuPress.ts +2 -0
- package/src/hooks/useOverflow.ts +2 -1
- package/src/hooks/usePressFeedback.ts +1 -0
- package/src/hooks/useResolvedRequired.ts +3 -0
- package/src/hooks/useScrollLock.doc.mjs +51 -12
- package/src/hooks/useScrollLock.ts +53 -60
- package/src/hooks/useScrollableArea.ts +4 -0
- package/src/hooks/useStreamingText.ts +2 -0
- package/src/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.ts +46 -0
- package/src/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.ts +6 -0
- package/src/i18n/generated-english/PowerSearch/formatTokenValue.generated.ts +15 -0
- package/src/i18n/generated-english/Resizable/createResizable.generated.ts +14 -0
- package/src/i18n/generated-english/Table/plugins/rowExpansion/useTableRowExpansion.generated.ts +3 -1
- package/src/i18n/generated-english/Table/plugins/tree/useTableTreeData.generated.ts +3 -1
- package/src/i18n/generated-english/TimeInput/TimeWheels.generated.ts +18 -0
- package/src/i18n/generated-locales/en.generated.ts +47 -0
- package/src/i18n/generated-locales/pseudo.generated.ts +48 -0
- package/src/index.ts +13 -0
- package/src/internal/indicatorPress.stylex.ts +24 -0
- package/src/internal/selectable-card.ts +21 -0
- package/src/internal/sheetDraft.ts +2 -2
- package/src/keyboard/README.md +197 -0
- package/src/keyboard/index.ts +48 -0
- package/src/keyboard/keyboardHeight.ts +543 -0
- package/src/keyboard/keyboardLayoutGuide.ts +266 -0
- package/src/keyboard/keyboardModel.ts +301 -0
- package/src/keyboard/rideKeyboard.ts +100 -0
- package/src/keyboard/useMobileKeyboard.ts +866 -0
- package/src/motion/MEASUREMENTS.md +28 -0
- package/src/motion/README.md +12 -5
- package/src/motion/android/index.ts +18 -0
- package/src/motion/android/keyboard.ts +96 -0
- package/src/motion/animatedLayout.ts +323 -60
- package/src/motion/animator.ts +66 -37
- package/src/motion/frameBlock.ts +16 -0
- package/src/motion/progress.ts +155 -0
- package/src/motion/reducedMotion.ts +3 -1
- package/src/motion/uikit/alert.ts +43 -0
- package/src/motion/uikit/datePicker.ts +60 -0
- package/src/motion/uikit/index.ts +6 -4
- package/src/motion/uikit/picker.ts +116 -0
- package/src/privateAttributes/pressGroupItem.stylex.ts +44 -0
- package/src/privateAttributes/reducedMotion.stylex.ts +45 -0
- package/src/theme/Theme.tsx +37 -3
- package/src/theme/generateThemeRules.ts +14 -12
- package/src/theme/motionKnobs.ts +4 -3
- package/src/theme/themeMotion.ts +17 -2
- package/src/theme/tokens.stylex.ts +2 -0
- package/src/utils/dateParser.ts +16 -0
- package/src/utils/disabledInteraction.ts +23 -2
- package/src/utils/focusReturn.ts +38 -31
- package/src/utils/index.ts +1 -1
- package/src/utils/interactionModality.ts +4 -0
- package/src/utils/interactionOverlay.stylex.ts +6 -4
- package/src/utils/isFocusDetached.ts +34 -0
- package/src/utils/layoutViewport.ts +104 -0
- package/src/utils/plainDate.ts +80 -4
- package/src/utils/pressFeedback.ts +126 -30
- package/src/utils/pressGesture.ts +4 -2
- package/src/utils/selectionLock.ts +40 -6
- package/src/utils/sharedMutationObserver.ts +2 -1
- package/src/utils/timeParser.ts +40 -3
- package/src/utils/triggerFocus.ts +80 -0
- package/dist/BottomSheet/useMobileKeyboard.d.ts +0 -21
- package/dist/BottomSheet/useMobileKeyboard.d.ts.map +0 -1
- package/dist/BottomSheet/useMobileKeyboard.js +0 -407
- package/dist/Calendar/getStandaloneShortWeekdayNames.d.ts +0 -14
- package/dist/Calendar/getStandaloneShortWeekdayNames.d.ts.map +0 -1
- package/dist/Calendar/getStandaloneShortWeekdayNames.js +0 -26
- package/dist/Calendar/standaloneShortWeekdayNames.generated.d.ts.map +0 -1
- package/dist/Layer/usePressPin.d.ts +0 -93
- package/dist/Layer/usePressPin.d.ts.map +0 -1
- package/dist/Layer/usePressPin.js +0 -363
- package/dist/internal/touch-sheet.d.ts +0 -21
- package/dist/internal/touch-sheet.d.ts.map +0 -1
- package/dist/internal/touch-sheet.js +0 -19
- package/src/BottomSheet/useMobileKeyboard.ts +0 -538
- package/src/Calendar/getStandaloneShortWeekdayNames.ts +0 -38
- package/src/Layer/usePressPin.ts +0 -510
- package/src/internal/touch-sheet.ts +0 -21
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file timeWheelRules.ts
|
|
3
|
+
* @input A time of day, the hour format and the bounds
|
|
4
|
+
* @output Pure rules of UIDatePicker's time wheels: the columns' rows, the
|
|
5
|
+
* time a turned column makes, and which other columns turn with it
|
|
6
|
+
* @position Internal helper of the TimeInput and DateTimeInput sheets: the
|
|
7
|
+
* rows of both their finger and their mouse wheels
|
|
8
|
+
*
|
|
9
|
+
* The columns do not loop. Each rule follows a leaf of motion/uikit/
|
|
10
|
+
* datePicker.ts `wheels`. Pure functions keep the rules testable without a
|
|
11
|
+
* layout engine.
|
|
12
|
+
*
|
|
13
|
+
* SYNC: When modified, update timeWheelRules.test.ts and TimeWheels.tsx.
|
|
14
|
+
*/
|
|
15
|
+
import { type ISOTimeString } from '../utils/timeParser.js';
|
|
16
|
+
/** A time of day, 24-hour. */
|
|
17
|
+
export interface TimeParts {
|
|
18
|
+
hour: number;
|
|
19
|
+
minute: number;
|
|
20
|
+
second: number;
|
|
21
|
+
}
|
|
22
|
+
/** A time wheel column. */
|
|
23
|
+
export type TimeColumn = 'hour' | 'minute' | 'second' | 'meridiem';
|
|
24
|
+
/** One row of a column: the value it stands for and its label. */
|
|
25
|
+
export interface TimeRow {
|
|
26
|
+
value: number;
|
|
27
|
+
label: string;
|
|
28
|
+
isDisabled: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Where the row falls when a key steps the column. An hour row holds the hour
|
|
31
|
+
* it stands for, so a key follows the full time: 12 PM comes before 1 PM.
|
|
32
|
+
*/
|
|
33
|
+
order?: number;
|
|
34
|
+
}
|
|
35
|
+
/** Inclusive bounds in seconds since midnight; `null` is unbounded. */
|
|
36
|
+
export interface TimeBounds {
|
|
37
|
+
min: number | null;
|
|
38
|
+
max: number | null;
|
|
39
|
+
}
|
|
40
|
+
/** The bounds of a field's `min` and `max` times. */
|
|
41
|
+
export declare function wheelBounds(min: ISOTimeString | undefined, max: ISOTimeString | undefined): TimeBounds;
|
|
42
|
+
/** Whether the hour falls in the PM half (1) or the AM half (0). */
|
|
43
|
+
export declare function meridiemOf(hour: number): 0 | 1;
|
|
44
|
+
/** The 12-hour clock's label for a 24-hour hour: 0 → 12, 13 → 1. */
|
|
45
|
+
export declare function hour12From24(hour: number): number;
|
|
46
|
+
/** The 24-hour hour for a 12-hour hour in a half of the day: 12 AM → 0. */
|
|
47
|
+
export declare function hour24From12(hour: number, meridiem: number): number;
|
|
48
|
+
/**
|
|
49
|
+
* The time the wheels show for `time`: its seconds kept when the picker has a
|
|
50
|
+
* seconds column and dropped when it has none. A time outside the bounds is
|
|
51
|
+
* shown as it is, on its disabled rows: opening the sheet never moves an
|
|
52
|
+
* untouched value.
|
|
53
|
+
*/
|
|
54
|
+
export declare function displayedTime(time: TimeParts, hasSeconds: boolean): TimeParts;
|
|
55
|
+
/**
|
|
56
|
+
* The time a column's rest commits when it would make `time`: the nearest
|
|
57
|
+
* time inside the bounds that the columns have a row for. Past a bound, that
|
|
58
|
+
* is the bound itself, or, with no seconds column, the nearest whole minute
|
|
59
|
+
* inside it (a 16:55:30 maximum: 16:55). Inside the bounds, `time` itself.
|
|
60
|
+
*/
|
|
61
|
+
export declare function restingTime(time: TimeParts, hasSeconds: boolean, bounds: TimeBounds): TimeParts;
|
|
62
|
+
/**
|
|
63
|
+
* The hour the hour column makes when it comes to rest on `row` from the row
|
|
64
|
+
* that showed `from` (24-hour). In 24-hour time the row is the hour. In 12-hour
|
|
65
|
+
* time the half of the day changes only when the move passes between 11 and 12.
|
|
66
|
+
* The column (1 … 12) does not loop, so 12 counts as next to 1. A move between
|
|
67
|
+
* 12 and 1 to 6 keeps the half of the day. A move between 12 and 7 to 11
|
|
68
|
+
* changes it.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```
|
|
72
|
+
* hourAfterTurn(11, 12, '12h'); // 12: 11 AM → 12 PM
|
|
73
|
+
* hourAfterTurn(12, 1, '12h'); // 13: 12 PM → 1 PM
|
|
74
|
+
* hourAfterTurn(13, 9, '12h'); // 21: 1 PM → 9 PM
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export declare function hourAfterTurn(from: number, row: number, hourFormat: '12h' | '24h'): number;
|
|
78
|
+
/**
|
|
79
|
+
* The hour column under a finger. In 24-hour time its rows are 00 … 23. In
|
|
80
|
+
* 12-hour time they are 1 … 12, each row standing for the hour a turn onto it
|
|
81
|
+
* from `from` makes (`hourAfterTurn`). A row is disabled when no minute of that
|
|
82
|
+
* hour is inside the bounds.
|
|
83
|
+
*/
|
|
84
|
+
export declare function hourRows(from: number, hourFormat: '12h' | '24h', bounds: TimeBounds): TimeRow[];
|
|
85
|
+
/**
|
|
86
|
+
* The hour column under a mouse, whose columns turn one at a time. A 12-hour
|
|
87
|
+
* row stands for its hour in the half of the day that `from` is in.
|
|
88
|
+
*/
|
|
89
|
+
export declare function hourRowsInHalf(from: number, hourFormat: '12h' | '24h', bounds: TimeBounds): TimeRow[];
|
|
90
|
+
/**
|
|
91
|
+
* The minute column for `hour`: every minute. A row is disabled when it is
|
|
92
|
+
* outside the bounds (its whole minute, when the picker shows seconds).
|
|
93
|
+
*/
|
|
94
|
+
export declare function minuteRows(hour: number, hasSeconds: boolean, bounds: TimeBounds): TimeRow[];
|
|
95
|
+
/** The second column for `hour`:`minute`. */
|
|
96
|
+
export declare function secondRows(hour: number, minute: number, bounds: TimeBounds): TimeRow[];
|
|
97
|
+
/** The AM/PM column: a half is disabled when none of its hours is in bounds. */
|
|
98
|
+
export declare function meridiemRows(labels: {
|
|
99
|
+
am: string;
|
|
100
|
+
pm: string;
|
|
101
|
+
}, bounds: TimeBounds): TimeRow[];
|
|
102
|
+
/**
|
|
103
|
+
* The time made by turning `column` to `value` (its row's value) from `from`
|
|
104
|
+
* (the time the wheels show). Only that column changes, and the AM/PM column
|
|
105
|
+
* moves the hour by twelve.
|
|
106
|
+
*/
|
|
107
|
+
export declare function turnColumn(from: TimeParts, column: TimeColumn, value: number, hourFormat: '12h' | '24h'): TimeParts;
|
|
108
|
+
/** What a column shows for a time: its row's value. */
|
|
109
|
+
export declare function columnValue(time: TimeParts, column: TimeColumn, hourFormat: '12h' | '24h'): number;
|
|
110
|
+
/**
|
|
111
|
+
* The columns that must turn after `column` came to rest on `value`. That is
|
|
112
|
+
* every column whose row for the committed time differs from the row it shows
|
|
113
|
+
* now. The column that moved shows `value`; the others show `from`. An hour
|
|
114
|
+
* that crossed 11 ↔ 12 turns the AM/PM column; a time brought back onto a bound
|
|
115
|
+
* turns every column whose row changed.
|
|
116
|
+
*/
|
|
117
|
+
export declare function columnsToTurn(from: TimeParts, column: TimeColumn, value: number, committed: TimeParts, options: {
|
|
118
|
+
hourFormat: '12h' | '24h';
|
|
119
|
+
hasSeconds: boolean;
|
|
120
|
+
}): {
|
|
121
|
+
column: TimeColumn;
|
|
122
|
+
value: number;
|
|
123
|
+
}[];
|
|
124
|
+
//# sourceMappingURL=timeWheelRules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeWheelRules.d.ts","sourceRoot":"","sources":["../../src/TimeInput/timeWheelRules.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAE7B,8BAA8B;AAC9B,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,2BAA2B;AAC3B,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEnE,kEAAkE;AAClE,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,uEAAuE;AACvE,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAcD,qDAAqD;AACrD,wBAAgB,WAAW,CACzB,GAAG,EAAE,aAAa,GAAG,SAAS,EAC9B,GAAG,EAAE,aAAa,GAAG,SAAS,GAC7B,UAAU,CAEZ;AAED,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAE9C;AAED,oEAAoE;AACpE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnE;AAmBD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,GAAG,SAAS,CAE7E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,UAAU,GACjB,SAAS,CAUX;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,KAAK,GAAG,KAAK,GACxB,MAAM,CAYR;AAsBD;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,KAAK,GAAG,KAAK,EACzB,MAAM,EAAE,UAAU,GACjB,OAAO,EAAE,CAMX;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,KAAK,GAAG,KAAK,EACzB,MAAM,EAAE,UAAU,GACjB,OAAO,EAAE,CAOX;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,UAAU,GACjB,OAAO,EAAE,CASX;AAED,6CAA6C;AAC7C,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,GACjB,OAAO,EAAE,CASX;AAED,gFAAgF;AAChF,wBAAgB,YAAY,CAC1B,MAAM,EAAE;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAC,EAChC,MAAM,EAAE,UAAU,GACjB,OAAO,EAAE,CAaX;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,KAAK,GAAG,KAAK,GACxB,SAAS,CAWX;AAED,uDAAuD;AACvD,wBAAgB,WAAW,CACzB,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,KAAK,GAAG,KAAK,GACxB,MAAM,CAWR;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE;IAAC,UAAU,EAAE,KAAK,GAAG,KAAK,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAC,GACxD;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,EAAE,CAkBvC"}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file timeWheelRules.ts
|
|
5
|
+
* @input A time of day, the hour format and the bounds
|
|
6
|
+
* @output Pure rules of UIDatePicker's time wheels: the columns' rows, the
|
|
7
|
+
* time a turned column makes, and which other columns turn with it
|
|
8
|
+
* @position Internal helper of the TimeInput and DateTimeInput sheets: the
|
|
9
|
+
* rows of both their finger and their mouse wheels
|
|
10
|
+
*
|
|
11
|
+
* The columns do not loop. Each rule follows a leaf of motion/uikit/
|
|
12
|
+
* datePicker.ts `wheels`. Pure functions keep the rules testable without a
|
|
13
|
+
* layout engine.
|
|
14
|
+
*
|
|
15
|
+
* SYNC: When modified, update timeWheelRules.test.ts and TimeWheels.tsx.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import { clampTime, formatISOTime, parseISOTime } from "../utils/timeParser.js";
|
|
19
|
+
|
|
20
|
+
/** A time of day, 24-hour. */
|
|
21
|
+
|
|
22
|
+
/** A time wheel column. */
|
|
23
|
+
|
|
24
|
+
/** One row of a column: the value it stands for and its label. */
|
|
25
|
+
|
|
26
|
+
/** Inclusive bounds in seconds since midnight; `null` is unbounded. */
|
|
27
|
+
|
|
28
|
+
const SECONDS_PER_DAY = 24 * 3600;
|
|
29
|
+
function secondsOfISO(time) {
|
|
30
|
+
if (time == null) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
const parsed = parseISOTime(time);
|
|
34
|
+
return parsed == null ? null : parsed.hour * 3600 + parsed.minute * 60 + parsed.second;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** The bounds of a field's `min` and `max` times. */
|
|
38
|
+
export function wheelBounds(min, max) {
|
|
39
|
+
return {
|
|
40
|
+
min: secondsOfISO(min),
|
|
41
|
+
max: secondsOfISO(max)
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/** Whether the hour falls in the PM half (1) or the AM half (0). */
|
|
46
|
+
export function meridiemOf(hour) {
|
|
47
|
+
return hour < 12 ? 0 : 1;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/** The 12-hour clock's label for a 24-hour hour: 0 → 12, 13 → 1. */
|
|
51
|
+
export function hour12From24(hour) {
|
|
52
|
+
const h = hour % 12;
|
|
53
|
+
return h === 0 ? 12 : h;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** The 24-hour hour for a 12-hour hour in a half of the day: 12 AM → 0. */
|
|
57
|
+
export function hour24From12(hour, meridiem) {
|
|
58
|
+
return hour % 12 + (meridiem === 1 ? 12 : 0);
|
|
59
|
+
}
|
|
60
|
+
function partsOf(seconds) {
|
|
61
|
+
const s = (seconds % SECONDS_PER_DAY + SECONDS_PER_DAY) % SECONDS_PER_DAY;
|
|
62
|
+
return {
|
|
63
|
+
hour: Math.floor(s / 3600),
|
|
64
|
+
minute: Math.floor(s % 3600 / 60),
|
|
65
|
+
second: s % 60
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** Whether [start, end] (seconds) overlaps the bounds. */
|
|
70
|
+
function overlaps(start, end, bounds) {
|
|
71
|
+
return (bounds.min == null || end >= bounds.min) && (bounds.max == null || start <= bounds.max);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* The time the wheels show for `time`: its seconds kept when the picker has a
|
|
76
|
+
* seconds column and dropped when it has none. A time outside the bounds is
|
|
77
|
+
* shown as it is, on its disabled rows: opening the sheet never moves an
|
|
78
|
+
* untouched value.
|
|
79
|
+
*/
|
|
80
|
+
export function displayedTime(time, hasSeconds) {
|
|
81
|
+
return {
|
|
82
|
+
...time,
|
|
83
|
+
second: hasSeconds ? time.second : 0
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* The time a column's rest commits when it would make `time`: the nearest
|
|
89
|
+
* time inside the bounds that the columns have a row for. Past a bound, that
|
|
90
|
+
* is the bound itself, or, with no seconds column, the nearest whole minute
|
|
91
|
+
* inside it (a 16:55:30 maximum: 16:55). Inside the bounds, `time` itself.
|
|
92
|
+
*/
|
|
93
|
+
export function restingTime(time, hasSeconds, bounds) {
|
|
94
|
+
const boundAt = seconds => seconds == null ? undefined : formatISOTime(partsOf(seconds), true);
|
|
95
|
+
const resting = clampTime(formatISOTime(time, hasSeconds), boundAt(bounds.min), boundAt(bounds.max), hasSeconds);
|
|
96
|
+
return parseISOTime(resting) ?? time;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* The hour the hour column makes when it comes to rest on `row` from the row
|
|
101
|
+
* that showed `from` (24-hour). In 24-hour time the row is the hour. In 12-hour
|
|
102
|
+
* time the half of the day changes only when the move passes between 11 and 12.
|
|
103
|
+
* The column (1 … 12) does not loop, so 12 counts as next to 1. A move between
|
|
104
|
+
* 12 and 1 to 6 keeps the half of the day. A move between 12 and 7 to 11
|
|
105
|
+
* changes it.
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```
|
|
109
|
+
* hourAfterTurn(11, 12, '12h'); // 12: 11 AM → 12 PM
|
|
110
|
+
* hourAfterTurn(12, 1, '12h'); // 13: 12 PM → 1 PM
|
|
111
|
+
* hourAfterTurn(13, 9, '12h'); // 21: 1 PM → 9 PM
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
export function hourAfterTurn(from, row, hourFormat) {
|
|
115
|
+
if (hourFormat === '24h') {
|
|
116
|
+
return row;
|
|
117
|
+
}
|
|
118
|
+
const shown = hour12From24(from);
|
|
119
|
+
if (row === shown) {
|
|
120
|
+
return from;
|
|
121
|
+
}
|
|
122
|
+
const half = meridiemOf(from);
|
|
123
|
+
const passes11And12 = shown === 12 && row >= 7 || row === 12 && shown >= 7;
|
|
124
|
+
return hour24From12(row, passes11And12 ? 1 - half : half);
|
|
125
|
+
}
|
|
126
|
+
function hourRowsFor(hourFormat, hourOf, bounds) {
|
|
127
|
+
const rows = hourFormat === '24h' ? Array.from({
|
|
128
|
+
length: 24
|
|
129
|
+
}, (_, hour) => hour) : Array.from({
|
|
130
|
+
length: 12
|
|
131
|
+
}, (_, index) => index + 1);
|
|
132
|
+
return rows.map(row => {
|
|
133
|
+
const hour = hourOf(row);
|
|
134
|
+
return {
|
|
135
|
+
value: row,
|
|
136
|
+
label: hourFormat === '24h' ? String(row).padStart(2, '0') : String(row),
|
|
137
|
+
isDisabled: !overlaps(hour * 3600, hour * 3600 + 3599, bounds),
|
|
138
|
+
order: hour
|
|
139
|
+
};
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* The hour column under a finger. In 24-hour time its rows are 00 … 23. In
|
|
145
|
+
* 12-hour time they are 1 … 12, each row standing for the hour a turn onto it
|
|
146
|
+
* from `from` makes (`hourAfterTurn`). A row is disabled when no minute of that
|
|
147
|
+
* hour is inside the bounds.
|
|
148
|
+
*/
|
|
149
|
+
export function hourRows(from, hourFormat, bounds) {
|
|
150
|
+
return hourRowsFor(hourFormat, row => hourAfterTurn(from, row, hourFormat), bounds);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* The hour column under a mouse, whose columns turn one at a time. A 12-hour
|
|
155
|
+
* row stands for its hour in the half of the day that `from` is in.
|
|
156
|
+
*/
|
|
157
|
+
export function hourRowsInHalf(from, hourFormat, bounds) {
|
|
158
|
+
const half = meridiemOf(from);
|
|
159
|
+
return hourRowsFor(hourFormat, row => hourFormat === '24h' ? row : hour24From12(row, half), bounds);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* The minute column for `hour`: every minute. A row is disabled when it is
|
|
164
|
+
* outside the bounds (its whole minute, when the picker shows seconds).
|
|
165
|
+
*/
|
|
166
|
+
export function minuteRows(hour, hasSeconds, bounds) {
|
|
167
|
+
return Array.from({
|
|
168
|
+
length: 60
|
|
169
|
+
}, (_, minute) => {
|
|
170
|
+
const start = hour * 3600 + minute * 60;
|
|
171
|
+
return {
|
|
172
|
+
value: minute,
|
|
173
|
+
label: String(minute).padStart(2, '0'),
|
|
174
|
+
isDisabled: !overlaps(start, start + (hasSeconds ? 59 : 0), bounds)
|
|
175
|
+
};
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/** The second column for `hour`:`minute`. */
|
|
180
|
+
export function secondRows(hour, minute, bounds) {
|
|
181
|
+
return Array.from({
|
|
182
|
+
length: 60
|
|
183
|
+
}, (_, second) => {
|
|
184
|
+
const at = hour * 3600 + minute * 60 + second;
|
|
185
|
+
return {
|
|
186
|
+
value: second,
|
|
187
|
+
label: String(second).padStart(2, '0'),
|
|
188
|
+
isDisabled: !overlaps(at, at, bounds)
|
|
189
|
+
};
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/** The AM/PM column: a half is disabled when none of its hours is in bounds. */
|
|
194
|
+
export function meridiemRows(labels, bounds) {
|
|
195
|
+
return [{
|
|
196
|
+
value: 0,
|
|
197
|
+
label: labels.am,
|
|
198
|
+
isDisabled: !overlaps(0, 12 * 3600 - 1, bounds)
|
|
199
|
+
}, {
|
|
200
|
+
value: 1,
|
|
201
|
+
label: labels.pm,
|
|
202
|
+
isDisabled: !overlaps(12 * 3600, SECONDS_PER_DAY - 1, bounds)
|
|
203
|
+
}];
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* The time made by turning `column` to `value` (its row's value) from `from`
|
|
208
|
+
* (the time the wheels show). Only that column changes, and the AM/PM column
|
|
209
|
+
* moves the hour by twelve.
|
|
210
|
+
*/
|
|
211
|
+
export function turnColumn(from, column, value, hourFormat) {
|
|
212
|
+
switch (column) {
|
|
213
|
+
case 'hour':
|
|
214
|
+
return {
|
|
215
|
+
...from,
|
|
216
|
+
hour: hourAfterTurn(from.hour, value, hourFormat)
|
|
217
|
+
};
|
|
218
|
+
case 'minute':
|
|
219
|
+
return {
|
|
220
|
+
...from,
|
|
221
|
+
minute: value
|
|
222
|
+
};
|
|
223
|
+
case 'second':
|
|
224
|
+
return {
|
|
225
|
+
...from,
|
|
226
|
+
second: value
|
|
227
|
+
};
|
|
228
|
+
case 'meridiem':
|
|
229
|
+
return {
|
|
230
|
+
...from,
|
|
231
|
+
hour: hour24From12(hour12From24(from.hour), value)
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/** What a column shows for a time: its row's value. */
|
|
237
|
+
export function columnValue(time, column, hourFormat) {
|
|
238
|
+
switch (column) {
|
|
239
|
+
case 'hour':
|
|
240
|
+
return hourFormat === '24h' ? time.hour : hour12From24(time.hour);
|
|
241
|
+
case 'minute':
|
|
242
|
+
return time.minute;
|
|
243
|
+
case 'second':
|
|
244
|
+
return time.second;
|
|
245
|
+
case 'meridiem':
|
|
246
|
+
return meridiemOf(time.hour);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* The columns that must turn after `column` came to rest on `value`. That is
|
|
252
|
+
* every column whose row for the committed time differs from the row it shows
|
|
253
|
+
* now. The column that moved shows `value`; the others show `from`. An hour
|
|
254
|
+
* that crossed 11 ↔ 12 turns the AM/PM column; a time brought back onto a bound
|
|
255
|
+
* turns every column whose row changed.
|
|
256
|
+
*/
|
|
257
|
+
export function columnsToTurn(from, column, value, committed, options) {
|
|
258
|
+
const columns = ['hour', 'minute'];
|
|
259
|
+
if (options.hasSeconds) {
|
|
260
|
+
columns.push('second');
|
|
261
|
+
}
|
|
262
|
+
if (options.hourFormat === '12h') {
|
|
263
|
+
columns.push('meridiem');
|
|
264
|
+
}
|
|
265
|
+
const turns = [];
|
|
266
|
+
for (const each of columns) {
|
|
267
|
+
const shown = each === column ? value : columnValue(from, each, options.hourFormat);
|
|
268
|
+
const target = columnValue(committed, each, options.hourFormat);
|
|
269
|
+
if (shown !== target) {
|
|
270
|
+
turns.push({
|
|
271
|
+
column: each,
|
|
272
|
+
value: target
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
return turns;
|
|
277
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Timer.d.ts","sourceRoot":"","sources":["../../src/Timer/Timer.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAG5C,OAAO,KAAK,EAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAsB9E,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AA8E9C,MAAM,WAAW,UAAW,SAAQ,IAAI,CACtC,SAAS,CAAC,eAAe,CAAC,EAC1B,UAAU,CACX;IACC,sDAAsD;IACtD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACjC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,mEAAmE;IACnE,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CAAC,EACpB,SAAS,EACT,MAAkB,EAClB,IAAmB,EACnB,IAAI,EACJ,KAAmB,EACnB,MAAM,EACN,GAAG,EACH,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACR,EAAE,UAAU,+
|
|
1
|
+
{"version":3,"file":"Timer.d.ts","sourceRoot":"","sources":["../../src/Timer/Timer.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAG5C,OAAO,KAAK,EAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAsB9E,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AA8E9C,MAAM,WAAW,UAAW,SAAQ,IAAI,CACtC,SAAS,CAAC,eAAe,CAAC,EAC1B,UAAU,CACX;IACC,sDAAsD;IACtD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACjC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,mEAAmE;IACnE,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CAAC,EACpB,SAAS,EACT,MAAkB,EAClB,IAAmB,EACnB,IAAI,EACJ,KAAmB,EACnB,MAAM,EACN,GAAG,EACH,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACR,EAAE,UAAU,+BA2EZ;yBAvFe,KAAK"}
|
package/dist/Timer/Timer.js
CHANGED
|
@@ -104,6 +104,8 @@ export function Timer({
|
|
|
104
104
|
const mergedRef = useMergedRefs(ref, timerRef);
|
|
105
105
|
const resolvedFormat = resolveFormat(format);
|
|
106
106
|
const initialPresentation = getPresentation(0, resolvedFormat);
|
|
107
|
+
|
|
108
|
+
// Syncs the elapsed-time text with a timer.
|
|
107
109
|
useEffect(() => {
|
|
108
110
|
const resolvedStartTime = startTime !== undefined && Number.isFinite(startTime) ? startTime : mountTime;
|
|
109
111
|
let timeoutID;
|
|
@@ -197,7 +197,7 @@ export function Timestamp({
|
|
|
197
197
|
timeZoneNameStyle: 'long'
|
|
198
198
|
}) : '';
|
|
199
199
|
|
|
200
|
-
//
|
|
200
|
+
// Syncs the relative time with an interval timer while the timestamp is live.
|
|
201
201
|
useEffect(() => {
|
|
202
202
|
if (!isLive || !isValidDate || !isRelativeFormat(effectiveFormat)) {
|
|
203
203
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatInstant.d.ts","sourceRoot":"","sources":["../../src/Timestamp/formatInstant.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAMjD;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GACvB,OAAO,CAAC,eAAe,EAAE,UAAU,GAAG,gBAAgB,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;AAE5E,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACtC;
|
|
1
|
+
{"version":3,"file":"formatInstant.d.ts","sourceRoot":"","sources":["../../src/Timestamp/formatInstant.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAMjD;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GACvB,OAAO,CAAC,eAAe,EAAE,UAAU,GAAG,gBAAgB,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;AAE5E,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACtC;AA6CD;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,EACd,EACE,QAAQ,EACR,eAAuB,EACvB,iBAA2B,GAC5B,GAAE,oBAAyB,GAC3B,MAAM,CAsER"}
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
* - /packages/core/src/Timestamp/Timestamp.test.tsx
|
|
30
30
|
*/
|
|
31
31
|
|
|
32
|
-
import { SHARED_DATE_FORMAT_OPTIONS,
|
|
32
|
+
import { SHARED_DATE_FORMAT_OPTIONS, getWallClock } from "../utils/plainDate.js";
|
|
33
33
|
|
|
34
34
|
// =============================================================================
|
|
35
35
|
// Types
|
|
@@ -87,28 +87,6 @@ function pad(n) {
|
|
|
87
87
|
return String(n).padStart(2, '0');
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
/** The fields a `system_*` string is assembled from. */
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Wall-clock fields for an instant: in the named zone, or — with no zone —
|
|
94
|
-
* the viewer's own, read straight off the `Date`. The zone-less branch
|
|
95
|
-
* deliberately stays on plain getters so the default rendering never gains a
|
|
96
|
-
* dependency on `Intl` zone data it did not have before.
|
|
97
|
-
*
|
|
98
|
-
* The explicit return type is load-bearing: it is what forces the two branches
|
|
99
|
-
* to keep producing the same shape.
|
|
100
|
-
*/
|
|
101
|
-
function getWallClock(date, timeZone) {
|
|
102
|
-
return timeZone === undefined ? {
|
|
103
|
-
year: date.getFullYear(),
|
|
104
|
-
month: date.getMonth() + 1,
|
|
105
|
-
day: date.getDate(),
|
|
106
|
-
hour: date.getHours(),
|
|
107
|
-
minute: date.getMinutes(),
|
|
108
|
-
second: date.getSeconds()
|
|
109
|
-
} : getTimeZoneParts(date.getTime(), timeZone);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
90
|
/**
|
|
113
91
|
* Renders one instant in one absolute format.
|
|
114
92
|
*
|
package/dist/Toast/Toast.d.ts
CHANGED
|
@@ -18,6 +18,16 @@ export interface ToastProps {
|
|
|
18
18
|
}
|
|
19
19
|
interface ToastSurfaceProps extends ToastProps {
|
|
20
20
|
gestureDirection: ToastGestureDirection;
|
|
21
|
+
/**
|
|
22
|
+
* Changes when a uniqueID overwrite updates this card in place: the new
|
|
23
|
+
* toast's auto-hide timer starts over.
|
|
24
|
+
*/
|
|
25
|
+
timerKey?: string;
|
|
26
|
+
/**
|
|
27
|
+
* False when the viewport announces the toast: the card then carries no
|
|
28
|
+
* live region of its own, so an update in place is announced once.
|
|
29
|
+
*/
|
|
30
|
+
isLiveRegion?: boolean;
|
|
21
31
|
}
|
|
22
32
|
/**
|
|
23
33
|
* Individual toast notification.
|
|
@@ -43,7 +53,7 @@ export declare function Toast(props: ToastProps): import("react").JSX.Element;
|
|
|
43
53
|
export declare namespace Toast {
|
|
44
54
|
var displayName: string;
|
|
45
55
|
}
|
|
46
|
-
export declare function ToastSurface({ type, body, endContent, isAutoHide, autoHideDuration, isExiting, onDismiss, renderContent, gestureDirection, }: ToastSurfaceProps): import("react").JSX.Element;
|
|
56
|
+
export declare function ToastSurface({ type, body, endContent, isAutoHide, autoHideDuration, isExiting, onDismiss, renderContent, gestureDirection, timerKey, isLiveRegion, }: ToastSurfaceProps): import("react").JSX.Element;
|
|
47
57
|
export declare namespace ToastSurface {
|
|
48
58
|
var displayName: string;
|
|
49
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/Toast/Toast.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAa,SAAS,EAAY,MAAM,OAAO,CAAC;AAkB5D,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAkB,KAAK,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;AA8F9E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAChD;;;;OAIG;IACH,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACtC;AAED,UAAU,iBAAkB,SAAQ,UAAU;IAC5C,gBAAgB,EAAE,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/Toast/Toast.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAa,SAAS,EAAY,MAAM,OAAO,CAAC;AAkB5D,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAkB,KAAK,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;AA8F9E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAChD;;;;OAIG;IACH,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACtC;AAED,UAAU,iBAAkB,SAAQ,UAAU;IAC5C,gBAAgB,EAAE,qBAAqB,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,+BAEtC;yBAFe,KAAK;;;AAOrB,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,SAAiB,EACjB,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,YAAmB,GACpB,EAAE,iBAAiB,+BAqOnB;yBAjPe,YAAY"}
|
package/dist/Toast/Toast.js
CHANGED
|
@@ -85,7 +85,9 @@ export function ToastSurface({
|
|
|
85
85
|
isExiting = false,
|
|
86
86
|
onDismiss,
|
|
87
87
|
renderContent,
|
|
88
|
-
gestureDirection
|
|
88
|
+
gestureDirection,
|
|
89
|
+
timerKey,
|
|
90
|
+
isLiveRegion = true
|
|
89
91
|
}) {
|
|
90
92
|
const t = useComponentTranslator();
|
|
91
93
|
const timerRef = useRef(null);
|
|
@@ -117,10 +119,11 @@ export function ToastSurface({
|
|
|
117
119
|
onDismissRef.current('auto');
|
|
118
120
|
}, remainingRef.current);
|
|
119
121
|
}, [isAutoHide]);
|
|
122
|
+
|
|
123
|
+
// Pointer, focus and gesture holds are tracked whatever isAutoHide is: an
|
|
124
|
+
// overwrite can turn a toast that does not auto-hide into one that does
|
|
125
|
+
// while a hold is in place. The window hold leaves with its listeners.
|
|
120
126
|
const pauseTimer = useCallback(source => {
|
|
121
|
-
if (!isAutoHide) {
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
127
|
const sources = pauseSourcesRef.current;
|
|
125
128
|
const wasRunning = sources.size === 0;
|
|
126
129
|
sources.add(source);
|
|
@@ -135,11 +138,8 @@ export function ToastSurface({
|
|
|
135
138
|
const elapsed = Date.now() - startTimeRef.current;
|
|
136
139
|
remainingRef.current = Math.max(remainingRef.current - elapsed, 1000);
|
|
137
140
|
}
|
|
138
|
-
}, [
|
|
141
|
+
}, []);
|
|
139
142
|
const resumeTimer = useCallback(source => {
|
|
140
|
-
if (!isAutoHide) {
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
143
|
const sources = pauseSourcesRef.current;
|
|
144
144
|
if (!sources.delete(source)) {
|
|
145
145
|
return;
|
|
@@ -152,18 +152,25 @@ export function ToastSurface({
|
|
|
152
152
|
return;
|
|
153
153
|
}
|
|
154
154
|
startTimer();
|
|
155
|
-
}, [
|
|
155
|
+
}, [startTimer]);
|
|
156
156
|
useEffect(() => {
|
|
157
157
|
remainingRef.current = autoHideDuration;
|
|
158
|
+
// An update in place can remove the focused control, which fires no blur:
|
|
159
|
+
// a focus hold whose focus has left the card is stale.
|
|
160
|
+
const root = cardRootRef.current?.current;
|
|
161
|
+
if (pauseSourcesRef.current.has('focus') && root != null && !root.contains(root.ownerDocument.activeElement)) {
|
|
162
|
+
pauseSourcesRef.current.delete('focus');
|
|
163
|
+
}
|
|
158
164
|
startTimer();
|
|
159
165
|
return () => {
|
|
160
166
|
if (timerRef.current) {
|
|
161
167
|
clearTimeout(timerRef.current);
|
|
162
168
|
}
|
|
163
169
|
};
|
|
164
|
-
// startTimer's identity is stable per isAutoHide, so this runs on mount
|
|
165
|
-
//
|
|
166
|
-
|
|
170
|
+
// startTimer's identity is stable per isAutoHide, so this runs on mount,
|
|
171
|
+
// on a genuine duration change and on an overwrite (timerKey), not on
|
|
172
|
+
// unrelated viewport renders.
|
|
173
|
+
}, [autoHideDuration, startTimer, timerKey]);
|
|
167
174
|
|
|
168
175
|
// Pause the auto-hide timer while the window is not focused, so a toast
|
|
169
176
|
// doesn't silently expire while the user is in another window or tab.
|
|
@@ -171,6 +178,7 @@ export function ToastSurface({
|
|
|
171
178
|
if (!isAutoHide) {
|
|
172
179
|
return;
|
|
173
180
|
}
|
|
181
|
+
const pauseSources = pauseSourcesRef.current;
|
|
174
182
|
const pauseForWindow = () => pauseTimer('window');
|
|
175
183
|
const resumeForWindow = () => resumeTimer('window');
|
|
176
184
|
window.addEventListener('blur', pauseForWindow);
|
|
@@ -183,6 +191,8 @@ export function ToastSurface({
|
|
|
183
191
|
return () => {
|
|
184
192
|
window.removeEventListener('blur', pauseForWindow);
|
|
185
193
|
window.removeEventListener('focus', resumeForWindow);
|
|
194
|
+
// With the listeners gone, no focus event would clear the window hold.
|
|
195
|
+
pauseSources.delete('window');
|
|
186
196
|
};
|
|
187
197
|
}, [isAutoHide, pauseTimer, resumeTimer]);
|
|
188
198
|
const isGesturePausing = useCallback(() => pauseSourcesRef.current.has('gesture'), []);
|
|
@@ -229,9 +239,9 @@ export function ToastSurface({
|
|
|
229
239
|
const fallbackMediaMode = isError || mode === 'light' ? 'dark' : 'light';
|
|
230
240
|
return /*#__PURE__*/_jsx("div", {
|
|
231
241
|
ref: rootRef,
|
|
232
|
-
role: isError ? 'alert' : 'status',
|
|
233
|
-
"aria-live": isError ? 'assertive' : 'polite',
|
|
234
|
-
"aria-atomic":
|
|
242
|
+
role: isLiveRegion ? isError ? 'alert' : 'status' : undefined,
|
|
243
|
+
"aria-live": isLiveRegion ? isError ? 'assertive' : 'polite' : undefined,
|
|
244
|
+
"aria-atomic": isLiveRegion ? 'true' : undefined,
|
|
235
245
|
onMouseEnter: pauseForPointer,
|
|
236
246
|
onMouseLeave: resumeForPointer,
|
|
237
247
|
onFocusCapture: pauseForFocus,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastViewport.d.ts","sourceRoot":"","sources":["../../src/Toast/ToastViewport.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ToastViewport.d.ts","sourceRoot":"","sources":["../../src/Toast/ToastViewport.tsx"],"names":[],"mappings":"AAiDA,OAAO,KAAK,EAAa,aAAa,EAAqB,MAAM,SAAS,CAAC;AAE3E,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAwItD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IACtE;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAiHD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAsB,EACtB,UAAc,EACd,KAAK,EACL,UAAU,EACV,UAAiB,EACjB,QAAQ,GACT,EAAE,kBAAkB,+BA+lBpB;yBAtmBe,aAAa"}
|