@astryxdesign/core 0.7.7 → 0.7.8-canary.0d54fd3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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.map +1 -1
- package/dist/BottomSheet/BottomSheetPanel.js +25 -4
- package/dist/BottomSheet/BottomSheetSwitcher.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetSwitcher.js +5 -0
- package/dist/BottomSheet/useMobileKeyboard.d.ts.map +1 -1
- package/dist/BottomSheet/useMobileKeyboard.js +6 -0
- package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
- package/dist/BottomSheet/useSheetGestures.js +12 -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 +8 -1
- package/dist/CheckboxList/CheckboxList.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxList.js +2 -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 +625 -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 +84 -113
- 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 +74 -0
- package/dist/DateInput/wheelOptions.d.ts.map +1 -0
- package/dist/DateInput/wheelOptions.js +98 -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 +10 -10
- 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 +20 -33
- package/dist/Icon/Icon.d.ts +5 -1
- package/dist/Icon/Icon.d.ts.map +1 -1
- package/dist/Icon/Icon.js +5 -2
- 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/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 +39 -4
- package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.js +441 -134
- package/dist/PowerSearch/PowerSearchBottomSheet.d.ts +102 -0
- package/dist/PowerSearch/PowerSearchBottomSheet.d.ts.map +1 -0
- package/dist/PowerSearch/PowerSearchBottomSheet.js +1919 -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 +101 -77
- package/dist/Resizable/createResizable.d.ts +145 -0
- package/dist/Resizable/createResizable.d.ts.map +1 -0
- package/dist/Resizable/createResizable.js +575 -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.map +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +4 -0
- package/dist/Table/plugins/stickyColumns/useTableStickyColumns.d.ts.map +1 -1
- package/dist/Table/plugins/stickyColumns/useTableStickyColumns.js +2 -0
- 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/TouchTimeField.d.ts.map +1 -1
- package/dist/TimeInput/TouchTimeField.js +2 -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 +4 -6
- 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 +194 -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 +41 -7
- package/dist/gestures/GestureHost.d.ts +16 -1
- package/dist/gestures/GestureHost.d.ts.map +1 -1
- package/dist/gestures/GestureHost.js +1 -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 +13 -3
- 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 +42 -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-locales/en.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/en.generated.js +30 -0
- package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/pseudo.generated.js +30 -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/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/index.d.ts +4 -3
- package/dist/motion/uikit/index.d.ts.map +1 -1
- package/dist/motion/uikit/index.js +4 -3
- 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 +3 -2
- package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
- package/dist/utils/interactionOverlay.stylex.js +3 -2
- 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/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.map +1 -1
- package/dist/utils/pressFeedback.js +20 -6
- 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 +120 -0
- package/locales/pseudo.json +90 -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.tsx +1 -0
- package/src/BottomSheet/BottomSheetPanel.tsx +39 -3
- package/src/BottomSheet/BottomSheetSwitcher.tsx +5 -0
- package/src/BottomSheet/useMobileKeyboard.ts +4 -0
- package/src/BottomSheet/useSheetGestures.ts +10 -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 +7 -0
- package/src/CheckboxList/CheckboxList.tsx +9 -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 +765 -0
- package/src/DateInput/TouchDateField.tsx +6 -32
- package/src/DateInput/Wheel.tsx +94 -150
- 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 +155 -0
- package/src/DateInput/wheelPhysics.ts +406 -0
- package/src/DateInput/wheelStrip.ts +341 -0
- package/src/DateTimeInput/TouchDateTimeField.tsx +8 -13
- 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 +49 -54
- package/src/Icon/Icon.doc.mjs +51 -10
- package/src/Icon/Icon.tsx +15 -7
- 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/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 +620 -157
- package/src/PowerSearch/PowerSearchBottomSheet.tsx +2525 -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 +169 -109
- package/src/Resizable/createResizable.ts +831 -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 +4 -0
- package/src/Table/plugins/stickyColumns/useTableStickyColumns.tsx +2 -0
- package/src/TextArea/TextArea.tsx +2 -7
- package/src/TextInput/TextInput.tsx +13 -17
- package/src/TimeInput/TimeInput.tsx +2 -0
- package/src/TimeInput/TouchTimeField.tsx +2 -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 +9 -11
- 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 +237 -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 +1 -1
- 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 +20 -5
- 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 +43 -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-locales/en.generated.ts +41 -0
- package/src/i18n/generated-locales/pseudo.generated.ts +42 -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/motion/MEASUREMENTS.md +18 -0
- package/src/motion/README.md +10 -5
- 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/index.ts +4 -3
- 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 +3 -2
- package/src/utils/isFocusDetached.ts +34 -0
- package/src/utils/plainDate.ts +80 -4
- package/src/utils/pressFeedback.ts +24 -6
- package/src/utils/triggerFocus.ts +80 -0
- 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/Calendar/getStandaloneShortWeekdayNames.ts +0 -38
- package/src/Layer/usePressPin.ts +0 -510
- package/src/internal/touch-sheet.ts +0 -21
|
@@ -517,6 +517,7 @@ function StandaloneBottomSheet({
|
|
|
517
517
|
const stackViewRef = useRef(stackView);
|
|
518
518
|
stackViewRef.current = stackView;
|
|
519
519
|
const scrimWriteRef = useRef<BottomSheetScrimWrite>({frame: null});
|
|
520
|
+
// Releases the pending scrim write frame on unmount.
|
|
520
521
|
useEffect(() => () => cancelScrimWrite(scrimWriteRef.current), []);
|
|
521
522
|
const writeScrim = useCallback(
|
|
522
523
|
(opacity: '0' | '1') =>
|
|
@@ -255,6 +255,10 @@ const styles = stylex.create({
|
|
|
255
255
|
// surface behind the pill itself, fading out across the lower half so the
|
|
256
256
|
// content emerging below has no visible cut line.
|
|
257
257
|
backgroundImage: `linear-gradient(to bottom, ${colorVars['--color-background-surface']} 60%, transparent)`,
|
|
258
|
+
// WebKit can draw this bar under the scrolling body's own layer while the
|
|
259
|
+
// sheet's transform animates, so the pill vanishes until the sheet rests.
|
|
260
|
+
// A layer of its own keeps it above the body.
|
|
261
|
+
willChange: 'transform',
|
|
258
262
|
// Drags are the handle's; a pinch still zooms the page (WCAG 1.4.4).
|
|
259
263
|
touchAction: 'pinch-zoom',
|
|
260
264
|
cursor: {
|
|
@@ -418,6 +422,7 @@ function waitForTransition(
|
|
|
418
422
|
|
|
419
423
|
let done = false;
|
|
420
424
|
let timer: ReturnType<typeof setTimeout> | null = null;
|
|
425
|
+
let backstopMs = 0;
|
|
421
426
|
const finish = () => {
|
|
422
427
|
if (done) {
|
|
423
428
|
return;
|
|
@@ -431,9 +436,24 @@ function waitForTransition(
|
|
|
431
436
|
complete();
|
|
432
437
|
};
|
|
433
438
|
const handleTransitionEnd = (event: TransitionEvent) => {
|
|
434
|
-
if (event.target
|
|
435
|
-
|
|
439
|
+
if (event.target !== element || event.propertyName !== propertyName) {
|
|
440
|
+
return;
|
|
441
|
+
}
|
|
442
|
+
// The engine cancels a transition whose end value changes mid-flight. A
|
|
443
|
+
// percentage transform does when the closing frame moves the height by a
|
|
444
|
+
// fraction of a pixel. A replacement runs on from where it was. That one
|
|
445
|
+
// ends the motion, not the cancel.
|
|
446
|
+
if (
|
|
447
|
+
event.type === 'transitioncancel' &&
|
|
448
|
+
hasRunningTransition(element, propertyName)
|
|
449
|
+
) {
|
|
450
|
+
if (timer != null) {
|
|
451
|
+
clearTimeout(timer);
|
|
452
|
+
timer = setTimeout(finish, backstopMs);
|
|
453
|
+
}
|
|
454
|
+
return;
|
|
436
455
|
}
|
|
456
|
+
finish();
|
|
437
457
|
};
|
|
438
458
|
element.addEventListener('transitionend', handleTransitionEnd);
|
|
439
459
|
element.addEventListener('transitioncancel', handleTransitionEnd);
|
|
@@ -484,7 +504,8 @@ function waitForTransition(
|
|
|
484
504
|
return () => {};
|
|
485
505
|
}
|
|
486
506
|
|
|
487
|
-
|
|
507
|
+
backstopMs = transitionMs + TRANSITION_BACKSTOP_BUFFER_MS;
|
|
508
|
+
timer = setTimeout(finish, backstopMs);
|
|
488
509
|
return () => {
|
|
489
510
|
if (timer != null) {
|
|
490
511
|
clearTimeout(timer);
|
|
@@ -494,6 +515,19 @@ function waitForTransition(
|
|
|
494
515
|
};
|
|
495
516
|
}
|
|
496
517
|
|
|
518
|
+
// Whether a CSS transition of `propertyName` still runs on `element`.
|
|
519
|
+
function hasRunningTransition(
|
|
520
|
+
element: HTMLElement,
|
|
521
|
+
propertyName: string,
|
|
522
|
+
): boolean {
|
|
523
|
+
return (element.getAnimations?.() ?? []).some(
|
|
524
|
+
animation =>
|
|
525
|
+
(animation as Animation & {transitionProperty?: string})
|
|
526
|
+
.transitionProperty === propertyName &&
|
|
527
|
+
(animation.playState === 'running' || animation.playState === 'paused'),
|
|
528
|
+
);
|
|
529
|
+
}
|
|
530
|
+
|
|
497
531
|
function parseTransitionTime(value: string): number | null {
|
|
498
532
|
const normalizedValue = value.trim();
|
|
499
533
|
if (!/^-?(?:\d+|\d*\.\d+)(?:ms|s)$/.test(normalizedValue)) {
|
|
@@ -676,6 +710,8 @@ export function BottomSheetPanel({
|
|
|
676
710
|
const isCoarseCrossFade = useMediaQuery(REDUCED_MOTION_COARSE_QUERY);
|
|
677
711
|
const isCrossFade =
|
|
678
712
|
isCoarseCrossFade || (isReducedMotion && isDismissedByTouchDrag);
|
|
713
|
+
// Syncs the motion with the panel's CSS transition. The motion completes when
|
|
714
|
+
// that transition ends.
|
|
679
715
|
useLayoutEffect(() => {
|
|
680
716
|
if (motion == null) {
|
|
681
717
|
return;
|
|
@@ -358,6 +358,7 @@ export function BottomSheetSwitcher({
|
|
|
358
358
|
const stackViewRef = useRef(stackView);
|
|
359
359
|
stackViewRef.current = stackView;
|
|
360
360
|
const scrimWriteRef = useRef<BottomSheetScrimWrite>({frame: null});
|
|
361
|
+
// Releases the pending scrim write frame on unmount.
|
|
361
362
|
useEffect(() => () => cancelScrimWrite(scrimWriteRef.current), []);
|
|
362
363
|
// What the flow's place in the stack was when it left the registry: its
|
|
363
364
|
// depth and the open sheet beneath it. React runs the registration
|
|
@@ -564,6 +565,9 @@ export function BottomSheetSwitcher({
|
|
|
564
565
|
presentationCounterRef.current += 1;
|
|
565
566
|
presentationOrderRef.current.set(sheetId, presentationCounterRef.current);
|
|
566
567
|
}, []);
|
|
568
|
+
// Syncs document focus with the flow's visibility. When the flow hides, focus
|
|
569
|
+
// goes to the opener, to the sheet now on top, or to the target of the
|
|
570
|
+
// registry.
|
|
567
571
|
useLayoutEffect(() => {
|
|
568
572
|
if (isFlowVisible) {
|
|
569
573
|
if (!hasScrim) {
|
|
@@ -694,6 +698,7 @@ export function BottomSheetSwitcher({
|
|
|
694
698
|
unregister();
|
|
695
699
|
};
|
|
696
700
|
}, [hasScrim, isFlowVisible, onBeforeSheetPresent]);
|
|
701
|
+
// Syncs the open state of this flow in the sheet stack registry.
|
|
697
702
|
useLayoutEffect(() => {
|
|
698
703
|
if (isFlowVisible && hasScrim) {
|
|
699
704
|
setBottomSheetOpen(stackKeyRef.current, isFlowOpen);
|
|
@@ -148,6 +148,8 @@ export function useMobileKeyboard({
|
|
|
148
148
|
}
|
|
149
149
|
}, [isEnabled, isSheetTraveling, sheetRef]);
|
|
150
150
|
|
|
151
|
+
// Syncs the on-screen keyboard with the sheet. When a presented sheet closes,
|
|
152
|
+
// the focused field blurs, so the keyboard closes.
|
|
151
153
|
useEffect(() => {
|
|
152
154
|
if (!isEnabled || !isPresented || isOpen) {
|
|
153
155
|
return;
|
|
@@ -165,6 +167,8 @@ export function useMobileKeyboard({
|
|
|
165
167
|
}
|
|
166
168
|
}, [isEnabled, isOpen, isPresented, sheetRef]);
|
|
167
169
|
|
|
170
|
+
// Syncs the body's end inset with the visual viewport, so the on-screen
|
|
171
|
+
// keyboard does not cover the body.
|
|
168
172
|
useEffect(() => {
|
|
169
173
|
const body = bodyRef.current;
|
|
170
174
|
const sheet = sheetRef.current;
|
|
@@ -699,6 +699,8 @@ export function useSheetGestures({
|
|
|
699
699
|
const sheetElRef = useRef<HTMLElement | null>(null);
|
|
700
700
|
const bodyNodeRef = useRef<HTMLElement | null>(null);
|
|
701
701
|
const observerRef = useRef<ResizeObserver | null>(null);
|
|
702
|
+
// Syncs the browser layout with the transform reset, then ends the
|
|
703
|
+
// scroll-area reconcile one frame later.
|
|
702
704
|
useLayoutEffect(() => {
|
|
703
705
|
if (!isScrollAreaReconciling) {
|
|
704
706
|
return;
|
|
@@ -738,7 +740,9 @@ export function useSheetGestures({
|
|
|
738
740
|
}
|
|
739
741
|
return;
|
|
740
742
|
}
|
|
741
|
-
|
|
743
|
+
// No measure here: reading the height while the sheet mounts forces a
|
|
744
|
+
// layout in the middle of the open. The observer's first report comes
|
|
745
|
+
// after the browser's own layout, before the first paint.
|
|
742
746
|
const ro = new ResizeObserver(entries => {
|
|
743
747
|
const entry = entries[0];
|
|
744
748
|
if (entry) {
|
|
@@ -756,6 +760,7 @@ export function useSheetGestures({
|
|
|
756
760
|
},
|
|
757
761
|
[recordSheetHeight],
|
|
758
762
|
);
|
|
763
|
+
// Releases the height observer on unmount.
|
|
759
764
|
useEffect(() => () => observerRef.current?.disconnect(), []);
|
|
760
765
|
|
|
761
766
|
// Reset to the tallest detent each time the sheet re-opens.
|
|
@@ -907,6 +912,8 @@ export function useSheetGestures({
|
|
|
907
912
|
resolveDetents,
|
|
908
913
|
]);
|
|
909
914
|
|
|
915
|
+
// Syncs window resize and orientation listeners with `isOpen`. Each event
|
|
916
|
+
// anchors the sheet to its settled detent again.
|
|
910
917
|
useEffect(() => {
|
|
911
918
|
if (!isOpen || typeof window === 'undefined') {
|
|
912
919
|
return;
|
|
@@ -1024,6 +1031,8 @@ export function useSheetGestures({
|
|
|
1024
1031
|
[prepareScrollAreaSettle, resolveDetents],
|
|
1025
1032
|
);
|
|
1026
1033
|
|
|
1034
|
+
// Syncs window blur and document visibilitychange listeners with `isOpen`. A
|
|
1035
|
+
// blur or a hidden page cancels a drag.
|
|
1027
1036
|
useEffect(() => {
|
|
1028
1037
|
// Only an open sheet can be dragged; a closed one listens to nothing.
|
|
1029
1038
|
if (!isOpen) {
|
package/src/Button/Button.tsx
CHANGED
|
@@ -53,6 +53,7 @@ import {iconBoxSizeStyles, type IconSize} from '../Icon/IconSize.stylex';
|
|
|
53
53
|
import {EDGE_COMP_ATTR} from '../Layout/edgeCompensation.stylex';
|
|
54
54
|
import {useSize} from '../SizeContext/SizeContext';
|
|
55
55
|
import {useButtonGroup} from '../ButtonGroup/ButtonGroupContext';
|
|
56
|
+
import {PressGroupContext} from '../hooks/pressGroupContext';
|
|
56
57
|
import {useInputGroup} from '../InputGroup/InputGroupContext';
|
|
57
58
|
import {InputGroupInternalContext} from '../InputGroup/InputGroupInternalContext';
|
|
58
59
|
import {
|
|
@@ -77,6 +78,12 @@ import {isRenderable} from '../utils/isRenderable';
|
|
|
77
78
|
|
|
78
79
|
registerEnglishFallback(english);
|
|
79
80
|
|
|
81
|
+
/**
|
|
82
|
+
* Written by the press controller or a group's tracker while a press is
|
|
83
|
+
* believed. Typed `string`, so StyleX reads it as a computed key.
|
|
84
|
+
*/
|
|
85
|
+
const PRESSED_ON: string = '[data-astryx-press="on"]';
|
|
86
|
+
|
|
80
87
|
/**
|
|
81
88
|
* Base button styles
|
|
82
89
|
* Pseudo-classes are nested within properties per StyleX recommendation:
|
|
@@ -138,7 +145,19 @@ const styles = stylex.create({
|
|
|
138
145
|
default: 'scale(0.98)',
|
|
139
146
|
'@media (pointer: coarse)': 'scale(1)',
|
|
140
147
|
},
|
|
141
|
-
|
|
148
|
+
[PRESSED_ON]: 'scale(0.98)',
|
|
149
|
+
},
|
|
150
|
+
},
|
|
151
|
+
// A tracked action's own `:active` image paints nothing: the tracker paints
|
|
152
|
+
// the action under the pointer, which need not be the one pressed first.
|
|
153
|
+
trackedOverlay: {
|
|
154
|
+
backgroundSize: {default: null, [`:active:not(${PRESSED_ON})`]: '0 0'},
|
|
155
|
+
},
|
|
156
|
+
// A tracked action's press is painted by its group's tracker alone.
|
|
157
|
+
pressableTracked: {
|
|
158
|
+
transform: {
|
|
159
|
+
default: 'scale(1)',
|
|
160
|
+
[PRESSED_ON]: 'scale(0.98)',
|
|
142
161
|
},
|
|
143
162
|
},
|
|
144
163
|
inactive: {
|
|
@@ -147,7 +166,7 @@ const styles = stylex.create({
|
|
|
147
166
|
transform: {
|
|
148
167
|
default: 'none',
|
|
149
168
|
':active': 'none',
|
|
150
|
-
|
|
169
|
+
[PRESSED_ON]: 'none',
|
|
151
170
|
},
|
|
152
171
|
},
|
|
153
172
|
disabled: {
|
|
@@ -160,7 +179,7 @@ const styles = stylex.create({
|
|
|
160
179
|
backgroundImage: {
|
|
161
180
|
default: 'none',
|
|
162
181
|
':active': 'none',
|
|
163
|
-
|
|
182
|
+
[PRESSED_ON]: 'none',
|
|
164
183
|
},
|
|
165
184
|
},
|
|
166
185
|
iconOnly: {
|
|
@@ -632,6 +651,7 @@ export function Button({
|
|
|
632
651
|
const t = useComponentTranslator();
|
|
633
652
|
const size = useSize(sizeProp, 'md');
|
|
634
653
|
const buttonGroup = useButtonGroup();
|
|
654
|
+
const isGroupTracked = use(PressGroupContext);
|
|
635
655
|
const inputGroup = useInputGroup();
|
|
636
656
|
|
|
637
657
|
const [isPending, startTransition] = useTransition();
|
|
@@ -760,11 +780,13 @@ export function Button({
|
|
|
760
780
|
sizeStyles[size],
|
|
761
781
|
isIconOnly && styles.iconOnly,
|
|
762
782
|
interactionOverlayStyles.backgroundImage,
|
|
783
|
+
isGroupTracked && styles.trackedOverlay,
|
|
763
784
|
buttonDisabled && styles.inactive,
|
|
764
785
|
isTrueDisabled && styles.disabled,
|
|
765
786
|
useAriaDisabled && styles.ariaDisabled,
|
|
766
787
|
renderAsLink && styles.link,
|
|
767
|
-
!buttonGroup &&
|
|
788
|
+
!buttonGroup &&
|
|
789
|
+
(isGroupTracked ? styles.pressableTracked : styles.pressable),
|
|
768
790
|
buttonGroup &&
|
|
769
791
|
(buttonGroup.orientation === 'horizontal'
|
|
770
792
|
? groupStyles.horizontal
|
|
@@ -61,12 +61,16 @@ import {
|
|
|
61
61
|
plainDateWeekFieldName,
|
|
62
62
|
DATE_FORMAT_WITH_WEEKDAY,
|
|
63
63
|
} from '../utils/plainDate';
|
|
64
|
-
import {
|
|
64
|
+
import {
|
|
65
|
+
plainDateFormatDayNumber,
|
|
66
|
+
plainDateFormatStandaloneMonthYear,
|
|
67
|
+
} from '../utils/plainDate';
|
|
65
68
|
import {mergeProps, composeEventHandlers, rtlStyles} from '../utils';
|
|
66
69
|
import {focusOutlineProps} from '../utils/focusOutline.stylex';
|
|
67
70
|
import {interactionOverlayStyles} from '../utils/interactionOverlay.stylex';
|
|
68
71
|
import {usePressFeedback} from '../hooks/usePressFeedback';
|
|
69
72
|
import {getInitialFocusDate} from './getInitialFocusDate';
|
|
73
|
+
import {getWeekdayHeaders} from './getWeekdayHeaderNames';
|
|
70
74
|
import {
|
|
71
75
|
computeDayCellState,
|
|
72
76
|
computeRangeRounding,
|
|
@@ -104,8 +108,8 @@ import english from '../i18n/generated-english/Calendar/Calendar.generated';
|
|
|
104
108
|
|
|
105
109
|
registerEnglishFallback(english);
|
|
106
110
|
|
|
107
|
-
/** How a month navigation moves the focused day: by its row offset in days, or by whole months. */
|
|
108
|
-
type NavigationUnit = 'days' | 'months';
|
|
111
|
+
/** How a month navigation moves the focused day: by its row offset in days, or by whole months or years. */
|
|
112
|
+
type NavigationUnit = 'days' | 'months' | 'years';
|
|
109
113
|
|
|
110
114
|
/** Imperative handle for Calendar handleRef */
|
|
111
115
|
export interface CalendarHandle {
|
|
@@ -518,13 +522,14 @@ export function Calendar({ref, ...props}: CalendarProps) {
|
|
|
518
522
|
!(minDateForKeys && plainDateIsBefore(pd, minDateForKeys)) &&
|
|
519
523
|
!(maxDateForKeys && plainDateIsAfter(pd, maxDateForKeys));
|
|
520
524
|
let targetPd: PlainDate;
|
|
521
|
-
if (unit === 'months') {
|
|
522
|
-
// A page
|
|
523
|
-
//
|
|
524
|
-
//
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
525
|
+
if (unit === 'months' || unit === 'years') {
|
|
526
|
+
// A page or a year step keeps the day of the month and clamps it to the
|
|
527
|
+
// target month's length. A month with no enabled day is no target, the
|
|
528
|
+
// same as for an arrow.
|
|
529
|
+
const candidate = plainDateAddMonths(
|
|
530
|
+
currentPd,
|
|
531
|
+
unit === 'years' ? delta * 12 : delta,
|
|
532
|
+
);
|
|
528
533
|
if (!inRange(candidate)) {
|
|
529
534
|
return;
|
|
530
535
|
}
|
|
@@ -851,19 +856,15 @@ function MonthGrid({
|
|
|
851
856
|
const year = month.year;
|
|
852
857
|
|
|
853
858
|
// Use hooks for days generation and constraints
|
|
854
|
-
const {days, weeks
|
|
859
|
+
const {days, weeks} = useCalendarDays({
|
|
855
860
|
year,
|
|
856
861
|
month: month.month,
|
|
857
862
|
weekStartsOn,
|
|
858
863
|
hasVariableRowCount,
|
|
859
864
|
});
|
|
860
865
|
const dayNameHeaders = useMemo(
|
|
861
|
-
() =>
|
|
862
|
-
|
|
863
|
-
dayOfWeek: ((weekStartsOn + offset) % 7) as DayOfWeek,
|
|
864
|
-
name,
|
|
865
|
-
})),
|
|
866
|
-
[dayNames, weekStartsOn],
|
|
866
|
+
() => getWeekdayHeaders(locale, weekStartsOn),
|
|
867
|
+
[locale, weekStartsOn],
|
|
867
868
|
);
|
|
868
869
|
|
|
869
870
|
const rangeAnchor = useMemo(
|
|
@@ -961,20 +962,27 @@ function MonthGrid({
|
|
|
961
962
|
[getFocusedDate, onNavigateNext],
|
|
962
963
|
);
|
|
963
964
|
|
|
964
|
-
//
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
965
|
+
// PageUp/PageDown move by a month, and with Shift by a year (APG date
|
|
966
|
+
// picker dialog).
|
|
967
|
+
const handlePageUp = useCallback(
|
|
968
|
+
(e: React.KeyboardEvent) => {
|
|
969
|
+
const focusedDate = getFocusedDate();
|
|
970
|
+
if (focusedDate) {
|
|
971
|
+
onNavigatePrevious?.(focusedDate, 1, e.shiftKey ? 'years' : 'months');
|
|
972
|
+
}
|
|
973
|
+
},
|
|
974
|
+
[getFocusedDate, onNavigatePrevious],
|
|
975
|
+
);
|
|
971
976
|
|
|
972
|
-
const handlePageDown = useCallback(
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
977
|
+
const handlePageDown = useCallback(
|
|
978
|
+
(e: React.KeyboardEvent) => {
|
|
979
|
+
const focusedDate = getFocusedDate();
|
|
980
|
+
if (focusedDate) {
|
|
981
|
+
onNavigateNext?.(focusedDate, 1, e.shiftKey ? 'years' : 'months');
|
|
982
|
+
}
|
|
983
|
+
},
|
|
984
|
+
[getFocusedDate, onNavigateNext],
|
|
985
|
+
);
|
|
978
986
|
|
|
979
987
|
// Grid focus navigation.
|
|
980
988
|
//
|
|
@@ -1155,7 +1163,7 @@ function MonthGrid({
|
|
|
1155
1163
|
<div
|
|
1156
1164
|
role="rowheader"
|
|
1157
1165
|
{...stylex.props(monthGridStyles.weekNumber)}>
|
|
1158
|
-
{weekNum}
|
|
1166
|
+
{plainDateFormatDayNumber(weekNum, locale)}
|
|
1159
1167
|
</div>
|
|
1160
1168
|
)}
|
|
1161
1169
|
{week.map((day, dayIndex) => {
|
|
@@ -1422,7 +1430,7 @@ function DayCell({
|
|
|
1422
1430
|
state.effectivelyDisabled && dayCellTheme.dayDisabled,
|
|
1423
1431
|
),
|
|
1424
1432
|
)}>
|
|
1425
|
-
{dayNumber}
|
|
1433
|
+
{plainDateFormatDayNumber(dayNumber, locale)}
|
|
1426
1434
|
</button>
|
|
1427
1435
|
</div>
|
|
1428
1436
|
);
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file getWeekdayHeaderNames.ts
|
|
5
|
+
* @input Generated CLDR weekday header table and the shared date formatter
|
|
6
|
+
* @output Private resolver for one locale's weekday header row
|
|
7
|
+
* @position Package-internal pure utility for the Calendar grid and the
|
|
8
|
+
* DateInput and DateTimeInput bottom sheets; not exported from the package
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import {characterCount} from '../utils/characters';
|
|
12
|
+
import type {DayOfWeek} from '../utils/dateTypes';
|
|
13
|
+
import {plainDateWeekdayNames} from '../utils/plainDate';
|
|
14
|
+
import {
|
|
15
|
+
weekdayHeaderNamesByLocale,
|
|
16
|
+
type WeekdayHeaderNames,
|
|
17
|
+
} from './weekdayHeaderNames.generated';
|
|
18
|
+
|
|
19
|
+
const weekdayNamesByLocale: Readonly<Record<string, WeekdayHeaderNames>> =
|
|
20
|
+
weekdayHeaderNamesByLocale;
|
|
21
|
+
const englishWeekdayNames = weekdayNamesByLocale.en;
|
|
22
|
+
|
|
23
|
+
/** The longest abbreviated name a header row takes; the generator uses the same. */
|
|
24
|
+
export const MAX_ABBREVIATED_HEADER_LENGTH = 4;
|
|
25
|
+
|
|
26
|
+
function fitsHeader(names: ReadonlyArray<string>): boolean {
|
|
27
|
+
return names.every(
|
|
28
|
+
name => characterCount(name) <= MAX_ABBREVIATED_HEADER_LENGTH,
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* A language with no generated row keeps its own words. `Intl` has no CLDR
|
|
34
|
+
* short width, so names too long for the column fall to the narrow width.
|
|
35
|
+
*/
|
|
36
|
+
function sundayFirstNames(locale: string): ReadonlyArray<string> {
|
|
37
|
+
let parsed: Intl.Locale;
|
|
38
|
+
try {
|
|
39
|
+
parsed = new Intl.Locale(locale);
|
|
40
|
+
} catch {
|
|
41
|
+
return englishWeekdayNames;
|
|
42
|
+
}
|
|
43
|
+
const generated =
|
|
44
|
+
weekdayNamesByLocale[parsed.baseName] ??
|
|
45
|
+
weekdayNamesByLocale[parsed.language];
|
|
46
|
+
if (generated != null) {
|
|
47
|
+
return generated;
|
|
48
|
+
}
|
|
49
|
+
const abbreviated = plainDateWeekdayNames(parsed.baseName);
|
|
50
|
+
if (abbreviated == null) {
|
|
51
|
+
return englishWeekdayNames;
|
|
52
|
+
}
|
|
53
|
+
if (fitsHeader(abbreviated)) {
|
|
54
|
+
return abbreviated;
|
|
55
|
+
}
|
|
56
|
+
return (
|
|
57
|
+
plainDateWeekdayNames(parsed.baseName, 'narrow') ?? englishWeekdayNames
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** One weekday header cell: its day of week (a stable key, since narrow names repeat) and its name. */
|
|
62
|
+
export interface WeekdayHeader {
|
|
63
|
+
dayOfWeek: DayOfWeek;
|
|
64
|
+
name: string;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* The seven weekday headers for a locale, in column order for the week that
|
|
69
|
+
* starts on `weekStartsOn`. Unicode extensions are ignored.
|
|
70
|
+
*/
|
|
71
|
+
export function getWeekdayHeaders(
|
|
72
|
+
locale: string,
|
|
73
|
+
weekStartsOn: DayOfWeek = 0,
|
|
74
|
+
): WeekdayHeader[] {
|
|
75
|
+
const names = sundayFirstNames(locale);
|
|
76
|
+
return Array.from({length: 7}, (_, offset) => {
|
|
77
|
+
const dayOfWeek = ((weekStartsOn + offset) % 7) as DayOfWeek;
|
|
78
|
+
return {dayOfWeek, name: names[dayOfWeek]};
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/** The names alone, in the same order as `getWeekdayHeaders`. */
|
|
83
|
+
export function getWeekdayHeaderNames(
|
|
84
|
+
locale: string,
|
|
85
|
+
weekStartsOn: DayOfWeek = 0,
|
|
86
|
+
): string[] {
|
|
87
|
+
return getWeekdayHeaders(locale, weekStartsOn).map(header => header.name);
|
|
88
|
+
}
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
plainDateAddDays,
|
|
23
23
|
} from '../../utils/plainDate';
|
|
24
24
|
import {useLocale} from '../../i18n';
|
|
25
|
-
import {
|
|
25
|
+
import {getWeekdayHeaderNames} from '../getWeekdayHeaderNames';
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
28
|
* Represents a single day in the calendar grid.
|
|
@@ -111,15 +111,10 @@ export function useCalendarDays(
|
|
|
111
111
|
};
|
|
112
112
|
}, [year, month, weekStartsOn, hasVariableRowCount]);
|
|
113
113
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
return Array.from(
|
|
119
|
-
{length: 7},
|
|
120
|
-
(_, index) => names[(index + weekStartsOn) % 7],
|
|
121
|
-
);
|
|
122
|
-
}, [locale, weekStartsOn]);
|
|
114
|
+
const dayNames = useMemo(
|
|
115
|
+
() => getWeekdayHeaderNames(locale, weekStartsOn),
|
|
116
|
+
[locale, weekStartsOn],
|
|
117
|
+
);
|
|
123
118
|
|
|
124
119
|
// Generate days array
|
|
125
120
|
const days = useMemo(() => {
|
package/src/Calendar/{standaloneShortWeekdayNames.generated.ts → weekdayHeaderNames.generated.ts}
RENAMED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Do not edit by hand. Run `pnpm generate:cldr-weekdays` instead.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
export type
|
|
8
|
+
export type WeekdayHeaderNames = readonly [
|
|
9
9
|
string,
|
|
10
10
|
string,
|
|
11
11
|
string,
|
|
@@ -15,36 +15,36 @@ export type StandaloneShortWeekdayNames = readonly [
|
|
|
15
15
|
string,
|
|
16
16
|
];
|
|
17
17
|
|
|
18
|
-
export const
|
|
18
|
+
export const weekdayHeaderNamesByLocale = {
|
|
19
19
|
af: ['So.', 'Ma.', 'Di.', 'Wo.', 'Do.', 'Vr.', 'Sa.'],
|
|
20
20
|
ar: ['أحد', 'إثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],
|
|
21
21
|
'ar-SA': ['أحد', 'إثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],
|
|
22
22
|
ca: ['dg.', 'dl.', 'dt.', 'dc.', 'dj.', 'dv.', 'ds.'],
|
|
23
23
|
cs: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],
|
|
24
24
|
da: ['sø.', 'ma.', 'ti.', 'on.', 'to.', 'fr.', 'lø.'],
|
|
25
|
-
de: ['So
|
|
26
|
-
el: ['
|
|
27
|
-
en: ['
|
|
28
|
-
es: ['
|
|
25
|
+
de: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
|
|
26
|
+
el: ['Κυρ', 'Δευ', 'Τρί', 'Τετ', 'Πέμ', 'Παρ', 'Σάβ'],
|
|
27
|
+
en: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
|
28
|
+
es: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'],
|
|
29
29
|
fi: ['su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'],
|
|
30
|
-
fr: ['
|
|
30
|
+
fr: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],
|
|
31
31
|
he: ['א׳', 'ב׳', 'ג׳', 'ד׳', 'ה׳', 'ו׳', 'ש׳'],
|
|
32
32
|
hu: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],
|
|
33
33
|
it: ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'],
|
|
34
34
|
ja: ['日', '月', '火', '水', '木', '金', '土'],
|
|
35
35
|
ko: ['일', '월', '화', '수', '목', '금', '토'],
|
|
36
36
|
nl: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
|
|
37
|
-
no: ['
|
|
37
|
+
no: ['søn.', 'man.', 'tir.', 'ons.', 'tor.', 'fre.', 'lør.'],
|
|
38
38
|
pl: ['nie', 'pon', 'wto', 'śro', 'czw', 'pią', 'sob'],
|
|
39
39
|
pt: ['dom.', 'seg.', 'ter.', 'qua.', 'qui.', 'sex.', 'sáb.'],
|
|
40
40
|
'pt-PT': ['dom.', 'seg.', 'ter.', 'qua.', 'qui.', 'sex.', 'sáb.'],
|
|
41
|
-
ro: ['
|
|
41
|
+
ro: ['dum.', 'lun.', 'mar.', 'mie.', 'joi', 'vin.', 'sâm.'],
|
|
42
42
|
ru: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],
|
|
43
|
-
sr: ['
|
|
44
|
-
sv: ['
|
|
45
|
-
tr: ['
|
|
43
|
+
sr: ['нед', 'пон', 'уто', 'сре', 'чет', 'пет', 'суб'],
|
|
44
|
+
sv: ['sön', 'mån', 'tis', 'ons', 'tors', 'fre', 'lör'],
|
|
45
|
+
tr: ['Paz', 'Pzt', 'Sal', 'Çar', 'Per', 'Cum', 'Cmt'],
|
|
46
46
|
uk: ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],
|
|
47
47
|
vi: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
|
|
48
48
|
zh: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
|
|
49
|
-
'zh-TW': ['
|
|
50
|
-
} as const satisfies Readonly<Record<string,
|
|
49
|
+
'zh-TW': ['週日', '週一', '週二', '週三', '週四', '週五', '週六'],
|
|
50
|
+
} as const satisfies Readonly<Record<string, WeekdayHeaderNames>>;
|
|
@@ -68,6 +68,7 @@ import {
|
|
|
68
68
|
import {Badge, type BadgeProps} from '../Badge';
|
|
69
69
|
import {useChatComposerContext} from './ChatContext';
|
|
70
70
|
import {themeProps} from '../utils/themeProps';
|
|
71
|
+
import {withholdCallerHandlers} from '../utils/disabledInteraction';
|
|
71
72
|
import type {EnterKeyHint} from '../Field/textEntryTraits';
|
|
72
73
|
import {
|
|
73
74
|
registerEnglishFallback,
|
|
@@ -390,13 +391,7 @@ export function ChatComposerInput(props: ChatComposerInputProps) {
|
|
|
390
391
|
} = props;
|
|
391
392
|
// Keep focus/blur observation available, but do not forward activation or
|
|
392
393
|
// editing callbacks from the disabled root (including capture handlers).
|
|
393
|
-
const rootProps = isDisabled
|
|
394
|
-
? Object.fromEntries(
|
|
395
|
-
Object.entries(rest).filter(
|
|
396
|
-
([key]) => !/^on[A-Z]/.test(key) || /^on(Focus|Blur)/.test(key),
|
|
397
|
-
),
|
|
398
|
-
)
|
|
399
|
-
: rest;
|
|
394
|
+
const rootProps = withholdCallerHandlers(rest, isDisabled);
|
|
400
395
|
const label = labelFromProps ?? t('@astryx.chat.composerInput.label');
|
|
401
396
|
const placeholder =
|
|
402
397
|
placeholderFromProps ??
|
|
@@ -529,6 +524,7 @@ export function ChatComposerInput(props: ChatComposerInputProps) {
|
|
|
529
524
|
};
|
|
530
525
|
}, [inputControlRef, focusEditableAtEnd]);
|
|
531
526
|
|
|
527
|
+
// Syncs the contentEditable DOM with the controlled `value`.
|
|
532
528
|
useEffect(() => {
|
|
533
529
|
if (controlledValue === undefined || !editableRef.current) {
|
|
534
530
|
return;
|
|
@@ -650,6 +646,7 @@ export function ChatComposerInput(props: ChatComposerInputProps) {
|
|
|
650
646
|
}
|
|
651
647
|
: triggerMenu.ariaProps;
|
|
652
648
|
|
|
649
|
+
// Syncs the trigger menu's pending searches with `isDisabled`.
|
|
653
650
|
useEffect(() => {
|
|
654
651
|
if (isDisabled && triggerMenu.state.isActive) {
|
|
655
652
|
// Reset also cancels pending searches, so late results cannot reopen
|
|
@@ -265,7 +265,8 @@ export function ChatMessageList({
|
|
|
265
265
|
children !== false &&
|
|
266
266
|
!(Array.isArray(children) && children.length === 0);
|
|
267
267
|
|
|
268
|
-
// IntersectionObserver
|
|
268
|
+
// Syncs an IntersectionObserver on the top sentinel with `scrollToTopAction`.
|
|
269
|
+
// The action runs when the sentinel comes into view.
|
|
269
270
|
useEffect(() => {
|
|
270
271
|
const scrollContainer = layoutContext?.scrollContainerRef?.current;
|
|
271
272
|
if (!scrollToTopAction || !sentinelRef.current) {
|