@astryxdesign/core 0.7.8 → 0.7.9-canary.0200dfe
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/AppShell/observeMainOverflow.d.ts.map +1 -1
- package/dist/AppShell/observeMainOverflow.js +9 -6
- package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheet.js +37 -3
- package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetPanel.js +40 -8
- package/dist/BottomSheet/bottomSheetStack.d.ts.map +1 -1
- package/dist/BottomSheet/bottomSheetStack.js +4 -3
- package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
- package/dist/BottomSheet/useSheetGestures.js +61 -21
- package/dist/Calendar/Calendar.d.ts +14 -2
- package/dist/Calendar/Calendar.d.ts.map +1 -1
- package/dist/Calendar/Calendar.js +63 -74
- package/dist/Calendar/getInitialFocusDate.d.ts +4 -1
- package/dist/Calendar/getInitialFocusDate.d.ts.map +1 -1
- package/dist/Calendar/getInitialFocusDate.js +7 -5
- package/dist/Calendar/hooks/useCalendarDays.d.ts +19 -2
- package/dist/Calendar/hooks/useCalendarDays.d.ts.map +1 -1
- package/dist/Calendar/hooks/useCalendarDays.js +57 -64
- package/dist/Calendar/hooks/useCalendarNavigation.d.ts +28 -3
- package/dist/Calendar/hooks/useCalendarNavigation.d.ts.map +1 -1
- package/dist/Calendar/hooks/useCalendarNavigation.js +33 -22
- package/dist/Calendar/styles.d.ts +1 -1
- package/dist/CheckboxInput/CheckboxInput.d.ts +2 -1
- package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +74 -18
- package/dist/CheckboxInput/CheckboxRowPressContext.d.ts +2 -0
- package/dist/CheckboxInput/CheckboxRowPressContext.d.ts.map +1 -0
- package/dist/CheckboxInput/CheckboxRowPressContext.js +20 -0
- package/dist/CheckboxList/CheckboxListItem.d.ts +2 -1
- package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListItem.js +40 -14
- package/dist/ClickableCard/ClickableCard.d.ts +1 -1
- package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
- package/dist/ClickableCard/ClickableCard.js +5 -1
- package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
- package/dist/ContextMenu/ContextMenu.js +2 -0
- package/dist/DateInput/DateInput.d.ts +37 -6
- package/dist/DateInput/DateInput.d.ts.map +1 -1
- package/dist/DateInput/DateInput.js +97 -124
- package/dist/DateInput/MonthScroller.d.ts +5 -2
- package/dist/DateInput/MonthScroller.d.ts.map +1 -1
- package/dist/DateInput/MonthScroller.js +26 -29
- package/dist/DateInput/MonthYearWheels.d.ts +10 -1
- package/dist/DateInput/MonthYearWheels.d.ts.map +1 -1
- package/dist/DateInput/MonthYearWheels.js +54 -42
- package/dist/DateInput/PickerWheel.d.ts.map +1 -1
- package/dist/DateInput/PickerWheel.js +7 -1
- package/dist/DateInput/TouchDateField.d.ts +1 -1
- package/dist/DateInput/TouchDateField.d.ts.map +1 -1
- package/dist/DateInput/TouchDateField.js +26 -21
- package/dist/DateInput/monthGeometry.d.ts +42 -8
- package/dist/DateInput/monthGeometry.d.ts.map +1 -1
- package/dist/DateInput/monthGeometry.js +81 -7
- package/dist/DateInput/useCalendarPresentation.d.ts +10 -0
- package/dist/DateInput/useCalendarPresentation.d.ts.map +1 -0
- package/dist/DateInput/useCalendarPresentation.js +32 -0
- package/dist/DateInput/useTypedDate.d.ts +92 -0
- package/dist/DateInput/useTypedDate.d.ts.map +1 -0
- package/dist/DateInput/useTypedDate.js +269 -0
- package/dist/DateInput/wheelStrip.js +2 -2
- package/dist/DateRangeInput/DateRangeInput.d.ts +17 -1
- package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/DateRangeInput/DateRangeInput.js +15 -8
- package/dist/DateTimeInput/DateTimeInput.d.ts +26 -3
- package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
- package/dist/DateTimeInput/DateTimeInput.js +92 -88
- package/dist/DateTimeInput/TouchDateTimeField.d.ts +1 -1
- package/dist/DateTimeInput/TouchDateTimeField.d.ts.map +1 -1
- package/dist/DateTimeInput/TouchDateTimeField.js +26 -20
- package/dist/Dialog/Dialog.d.ts +2 -1
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +14 -3
- package/dist/Drawer/useDrawerDialogPresence.d.ts +2 -1
- package/dist/Drawer/useDrawerDialogPresence.d.ts.map +1 -1
- package/dist/Drawer/useDrawerDialogPresence.js +11 -2
- package/dist/DropdownMenu/DropdownMenu.d.ts +9 -1
- package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenu.js +11 -8
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +3 -2
- package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuItem.js +3 -2
- package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.js +3 -2
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.js +3 -2
- package/dist/Field/inputDisabledFocus.d.ts +4 -4
- package/dist/Field/inputStyles.stylex.d.ts +1 -1
- package/dist/FileInput/FileInput.d.ts.map +1 -1
- package/dist/FileInput/FileInput.js +16 -2
- package/dist/HoverCard/useHoverCard.d.ts +3 -1
- package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
- package/dist/Icon/Icon.d.ts +1 -1
- package/dist/InfoTip/InfoTip.d.ts +1 -0
- package/dist/InfoTip/InfoTip.d.ts.map +1 -1
- package/dist/InfoTip/InfoTip.js +6 -18
- package/dist/InputGroup/InputGroup.d.ts +4 -3
- package/dist/InputGroup/InputGroup.d.ts.map +1 -1
- package/dist/InputGroup/InputGroup.js +2 -2
- package/dist/InputGroup/InputGroupText.d.ts +2 -1
- package/dist/InputGroup/InputGroupText.d.ts.map +1 -1
- package/dist/InputGroup/InputGroupText.js +2 -1
- package/dist/InputGroup/groupStyles.d.ts +1 -1
- package/dist/InputGroup/groupStyles.d.ts.map +1 -1
- package/dist/InputGroup/groupStyles.js +1 -1
- package/dist/Item/Item.d.ts +20 -1
- package/dist/Item/Item.d.ts.map +1 -1
- package/dist/Item/Item.js +97 -29
- package/dist/Item/ItemListRowContext.d.ts +2 -0
- package/dist/Item/ItemListRowContext.d.ts.map +1 -0
- package/dist/Item/ItemListRowContext.js +16 -0
- package/dist/Layer/holdEntranceInput.d.ts +24 -0
- package/dist/Layer/holdEntranceInput.d.ts.map +1 -0
- package/dist/Layer/holdEntranceInput.js +65 -0
- package/dist/Layer/inputHold.d.ts +49 -0
- package/dist/Layer/inputHold.d.ts.map +1 -0
- package/dist/Layer/inputHold.js +636 -0
- package/dist/Layer/outsidePress.d.ts +4 -0
- package/dist/Layer/outsidePress.d.ts.map +1 -1
- package/dist/Layer/outsidePress.js +18 -1
- package/dist/Layer/preserveAnimations.d.ts +1 -5
- package/dist/Layer/preserveAnimations.d.ts.map +1 -1
- package/dist/Layer/preserveAnimations.js +12 -214
- package/dist/Layer/useBackdropPress.d.ts +8 -0
- package/dist/Layer/useBackdropPress.d.ts.map +1 -1
- package/dist/Layer/useBackdropPress.js +31 -2
- package/dist/Layer/useLayer.d.ts +3 -1
- package/dist/Layer/useLayer.d.ts.map +1 -1
- package/dist/Layer/useLayer.js +64 -4
- package/dist/Layer/useTouchTrigger.d.ts.map +1 -1
- package/dist/Layer/useTouchTrigger.js +4 -0
- package/dist/Layout/LayoutContent.d.ts +3 -1
- package/dist/Layout/LayoutContent.d.ts.map +1 -1
- package/dist/Layout/LayoutContent.js +12 -4
- package/dist/Layout/LayoutPanel.d.ts +13 -10
- package/dist/Layout/LayoutPanel.d.ts.map +1 -1
- package/dist/Layout/LayoutPanel.js +81 -11
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +4 -0
- package/dist/List/List.d.ts.map +1 -1
- package/dist/List/List.js +1 -0
- package/dist/List/ListItem.d.ts +5 -4
- package/dist/List/ListItem.d.ts.map +1 -1
- package/dist/List/ListItem.js +45 -9
- package/dist/Markdown/parser.d.ts.map +1 -1
- package/dist/Markdown/parser.js +56 -39
- package/dist/MetadataList/MetadataList.js +1 -1
- package/dist/MobileNav/MobileNav.d.ts +11 -1
- package/dist/MobileNav/MobileNav.d.ts.map +1 -1
- package/dist/MobileNav/MobileNav.js +39 -1
- package/dist/MoreMenu/MoreMenu.d.ts +5 -3
- package/dist/MoreMenu/MoreMenu.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +6 -9
- package/dist/NumberInput/NumberInput.d.ts +4 -2
- package/dist/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/NumberInput/NumberInput.js +244 -11
- package/dist/OverflowList/OverflowList.d.ts.map +1 -1
- package/dist/OverflowList/OverflowList.js +7 -2
- package/dist/Popover/usePopover.d.ts +1 -0
- package/dist/Popover/usePopover.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.js +12 -5
- package/dist/PowerSearch/PowerSearchBottomSheet.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchBottomSheet.js +4 -2
- package/dist/PowerSearch/PowerSearchToken.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchToken.js +3 -1
- package/dist/PowerSearch/formatFilterValue.d.ts +9 -3
- package/dist/PowerSearch/formatFilterValue.d.ts.map +1 -1
- package/dist/PowerSearch/formatFilterValue.js +14 -11
- package/dist/PowerSearch/formatTokenValue.d.ts +6 -2
- package/dist/PowerSearch/formatTokenValue.d.ts.map +1 -1
- package/dist/PowerSearch/formatTokenValue.js +6 -3
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +16 -3
- package/dist/Resizable/ResizeHandle.d.ts +5 -5
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +44 -5
- package/dist/Resizable/resizablePane.d.ts +58 -0
- package/dist/Resizable/resizablePane.d.ts.map +1 -0
- package/dist/Resizable/resizablePane.js +137 -0
- package/dist/Resizable/useResizable.d.ts +7 -0
- package/dist/Resizable/useResizable.d.ts.map +1 -1
- package/dist/Resizable/useResizable.js +13 -0
- package/dist/SegmentedControl/useSegmentedSelectionMotion.js +3 -3
- package/dist/SelectableCard/SelectableCard.d.ts +1 -1
- package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
- package/dist/SelectableCard/SelectableCard.js +5 -1
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +51 -10
- package/dist/SideNav/SideNav.d.ts +9 -3
- package/dist/SideNav/SideNav.d.ts.map +1 -1
- package/dist/SideNav/SideNav.js +45 -10
- package/dist/Slider/sliderTouchController.js +2 -2
- package/dist/Spinner/Spinner.d.ts.map +1 -1
- package/dist/Spinner/Spinner.js +14 -71
- package/dist/Spinner/index.d.ts +1 -1
- package/dist/Spinner/index.d.ts.map +1 -1
- package/dist/Spinner/spinnerRotor.d.ts +28 -0
- package/dist/Spinner/spinnerRotor.d.ts.map +1 -0
- package/dist/Spinner/spinnerRotor.js +98 -0
- package/dist/Stack/StackItem.d.ts +8 -4
- package/dist/Stack/StackItem.d.ts.map +1 -1
- package/dist/Stack/StackItem.js +17 -4
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +13 -10
- package/dist/Switch/useSwitchTouch.js +4 -4
- package/dist/TabList/Tab.d.ts.map +1 -1
- package/dist/TabList/Tab.js +5 -1
- package/dist/Table/plugins/sortable/useTableSortable.js +1 -1
- package/dist/Timestamp/Timestamp.d.ts.map +1 -1
- package/dist/Timestamp/Timestamp.js +14 -8
- package/dist/Timestamp/formatInstant.d.ts +10 -1
- package/dist/Timestamp/formatInstant.d.ts.map +1 -1
- package/dist/Timestamp/formatInstant.js +13 -27
- package/dist/Timestamp/tooltipEntries.d.ts +5 -3
- package/dist/Timestamp/tooltipEntries.d.ts.map +1 -1
- package/dist/Timestamp/tooltipEntries.js +6 -4
- package/dist/Token/Token.d.ts.map +1 -1
- package/dist/Token/Token.js +9 -0
- package/dist/Token/TokenLink.d.ts +1 -1
- package/dist/Token/TokenLink.d.ts.map +1 -1
- package/dist/Token/TokenLink.js +4 -1
- package/dist/Tokenizer/Tokenizer.d.ts +14 -10
- package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.js +189 -89
- package/dist/Tooltip/useTooltip.d.ts +3 -1
- package/dist/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.js +164 -59
- package/dist/TreeList/TreeListItem.d.ts +2 -1
- package/dist/TreeList/TreeListItem.d.ts.map +1 -1
- package/dist/TreeList/TreeListItem.js +27 -3
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +2 -1
- package/dist/animator/createAnimator.js +2 -2
- package/dist/astryx.css +362 -325
- package/dist/gestures/GestureHost.d.ts +2 -2
- package/dist/gestures/GestureHost.d.ts.map +1 -1
- package/dist/gestures/GestureHost.js +21 -6
- package/dist/gestures/PanGestureRecognizer.d.ts +11 -1
- package/dist/gestures/PanGestureRecognizer.d.ts.map +1 -1
- package/dist/gestures/PanGestureRecognizer.js +15 -1
- package/dist/gestures/ScreenEdgePanGestureRecognizer.d.ts +6 -1
- package/dist/gestures/ScreenEdgePanGestureRecognizer.d.ts.map +1 -1
- package/dist/gestures/nativeScroll.d.ts +3 -6
- package/dist/gestures/nativeScroll.d.ts.map +1 -1
- package/dist/gestures/nativeScroll.js +7 -52
- package/dist/gestures/wheelSegmenter.d.ts +68 -1
- package/dist/gestures/wheelSegmenter.d.ts.map +1 -1
- package/dist/gestures/wheelSegmenter.js +199 -10
- package/dist/hooks/StackItemScrollRegion.d.ts +31 -0
- package/dist/hooks/StackItemScrollRegion.d.ts.map +1 -0
- package/dist/hooks/StackItemScrollRegion.js +40 -0
- package/dist/hooks/computeOverflow.d.ts +2 -0
- package/dist/hooks/computeOverflow.d.ts.map +1 -1
- package/dist/hooks/computeOverflow.js +1 -1
- package/dist/hooks/menuPressGesture.d.ts +133 -21
- package/dist/hooks/menuPressGesture.d.ts.map +1 -1
- package/dist/hooks/menuPressGesture.js +155 -30
- package/dist/hooks/menuPressValues.d.ts +16 -0
- package/dist/hooks/menuPressValues.d.ts.map +1 -0
- package/dist/hooks/menuPressValues.js +18 -0
- package/dist/hooks/useClickableContainer.d.ts +36 -7
- package/dist/hooks/useClickableContainer.d.ts.map +1 -1
- package/dist/hooks/useClickableContainer.js +63 -14
- package/dist/hooks/useFocusTrap.d.ts +10 -0
- package/dist/hooks/useFocusTrap.d.ts.map +1 -1
- package/dist/hooks/useFocusTrap.js +225 -132
- package/dist/hooks/useKeyboardHighlight.d.ts +17 -0
- package/dist/hooks/useKeyboardHighlight.d.ts.map +1 -0
- package/dist/hooks/useKeyboardHighlight.js +38 -0
- package/dist/hooks/useMediaQuery.d.ts +2 -1
- package/dist/hooks/useMediaQuery.d.ts.map +1 -1
- package/dist/hooks/useMediaQuery.js +37 -12
- package/dist/hooks/useMenuPress.d.ts +34 -1
- package/dist/hooks/useMenuPress.d.ts.map +1 -1
- package/dist/hooks/useMenuPress.js +93 -5
- package/dist/hooks/useOverflow.d.ts +10 -0
- package/dist/hooks/useOverflow.d.ts.map +1 -1
- package/dist/hooks/useOverflow.js +214 -23
- package/dist/hooks/usePressFeedback.d.ts +6 -6
- package/dist/hooks/usePressFeedback.js +6 -6
- package/dist/hooks/useScrollRegionProps.d.ts +35 -0
- package/dist/hooks/useScrollRegionProps.d.ts.map +1 -0
- package/dist/hooks/useScrollRegionProps.js +51 -0
- package/dist/i18n/InternationalizationContext.d.ts +6 -0
- package/dist/i18n/InternationalizationContext.d.ts.map +1 -1
- package/dist/i18n/InternationalizationProvider.d.ts +23 -3
- package/dist/i18n/InternationalizationProvider.d.ts.map +1 -1
- package/dist/i18n/InternationalizationProvider.js +8 -3
- package/dist/i18n/generated-english/DateInput/DateInput.generated.d.ts.map +1 -1
- package/dist/i18n/generated-english/DateInput/DateInput.generated.js +0 -1
- package/dist/i18n/generated-english/DateInput/useTypedDate.generated.d.ts +8 -0
- package/dist/i18n/generated-english/DateInput/useTypedDate.generated.d.ts.map +1 -0
- package/dist/i18n/generated-english/DateInput/useTypedDate.generated.js +16 -0
- package/dist/i18n/generated-english/DateTimeInput/DateTimeInput.generated.d.ts.map +1 -1
- package/dist/i18n/generated-english/DateTimeInput/DateTimeInput.generated.js +0 -1
- package/dist/i18n/generated-english/hooks/useScrollRegionProps.generated.d.ts +8 -0
- package/dist/i18n/generated-english/hooks/useScrollRegionProps.generated.d.ts.map +1 -0
- package/dist/i18n/generated-english/hooks/useScrollRegionProps.generated.js +12 -0
- package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/en.generated.js +5 -0
- package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/pseudo.generated.js +5 -0
- package/dist/i18n/index.d.ts +2 -0
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +1 -0
- package/dist/i18n/useCalendarSystem.d.ts +19 -0
- package/dist/i18n/useCalendarSystem.d.ts.map +1 -0
- package/dist/i18n/useCalendarSystem.js +61 -0
- package/dist/internal/calendar-system.d.ts +18 -0
- package/dist/internal/calendar-system.d.ts.map +1 -0
- package/dist/internal/calendar-system.js +19 -0
- package/dist/internal/spinner-rotor.d.ts +16 -0
- package/dist/internal/spinner-rotor.d.ts.map +1 -0
- package/dist/internal/spinner-rotor.js +16 -0
- package/dist/internal/touch.d.ts +20 -2
- package/dist/internal/touch.d.ts.map +1 -1
- package/dist/internal/touch.js +29 -3
- package/dist/motion/animator.d.ts +5 -5
- package/dist/motion/animator.d.ts.map +1 -1
- package/dist/motion/animator.js +7 -6
- package/dist/motion/carryAnimations.d.ts +58 -0
- package/dist/motion/carryAnimations.d.ts.map +1 -0
- package/dist/motion/carryAnimations.js +305 -0
- package/dist/motion/transientCopy.d.ts +4 -2
- package/dist/motion/transientCopy.d.ts.map +1 -1
- package/dist/motion/transientCopy.js +34 -5
- package/dist/motion/uikit/gestures.d.ts +41 -0
- package/dist/motion/uikit/gestures.d.ts.map +1 -1
- package/dist/motion/uikit/gestures.js +25 -0
- package/dist/motion/uikit/index.d.ts +1 -1
- package/dist/motion/uikit/index.d.ts.map +1 -1
- package/dist/motion/uikit/index.js +1 -1
- package/dist/motion/uikit/timing.d.ts +14 -10
- package/dist/motion/uikit/timing.d.ts.map +1 -1
- package/dist/motion/uikit/timing.js +7 -5
- package/dist/privateAttributes/menuPressLit.stylex.d.ts +52 -0
- package/dist/privateAttributes/menuPressLit.stylex.d.ts.map +1 -0
- package/dist/privateAttributes/menuPressLit.stylex.js +99 -0
- package/dist/privateAttributes/press.stylex.d.ts +142 -0
- package/dist/privateAttributes/press.stylex.d.ts.map +1 -0
- package/dist/privateAttributes/press.stylex.js +101 -0
- package/dist/theme/themeMotion.d.ts +3 -2
- package/dist/theme/themeMotion.d.ts.map +1 -1
- package/dist/theme/themeMotion.js +3 -2
- package/dist/theme/tokens.stylex.d.ts +2 -2
- package/dist/theme/tokens.stylex.js +1 -1
- package/dist/utils/calendarDateParser.d.ts +110 -0
- package/dist/utils/calendarDateParser.d.ts.map +1 -0
- package/dist/utils/calendarDateParser.js +1225 -0
- package/dist/utils/calendarSystem.d.ts +176 -0
- package/dist/utils/calendarSystem.d.ts.map +1 -0
- package/dist/utils/calendarSystem.js +569 -0
- package/dist/utils/coarsePointer.d.ts +5 -0
- package/dist/utils/coarsePointer.d.ts.map +1 -1
- package/dist/utils/coarsePointer.js +22 -13
- package/dist/utils/flatTree.d.ts +6 -3
- package/dist/utils/flatTree.d.ts.map +1 -1
- package/dist/utils/flatTree.js +13 -3
- package/dist/utils/focusReturn.d.ts +34 -13
- package/dist/utils/focusReturn.d.ts.map +1 -1
- package/dist/utils/focusReturn.js +64 -17
- package/dist/utils/hitArea.d.ts +8 -1
- package/dist/utils/hitArea.d.ts.map +1 -1
- package/dist/utils/hitArea.js +99 -9
- package/dist/utils/inputPresentation.d.ts +9 -1
- package/dist/utils/inputPresentation.d.ts.map +1 -1
- package/dist/utils/inputPresentation.js +15 -1
- package/dist/utils/inputStream.d.ts +14 -1
- package/dist/utils/inputStream.d.ts.map +1 -1
- package/dist/utils/inputStream.js +40 -9
- package/dist/utils/interactionOverlay.stylex.d.ts +5 -9
- package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
- package/dist/utils/interactionOverlay.stylex.js +29 -31
- package/dist/utils/plainDate.d.ts +38 -7
- package/dist/utils/plainDate.d.ts.map +1 -1
- package/dist/utils/plainDate.js +92 -18
- package/dist/utils/pressFeedback.d.ts +10 -2
- package/dist/utils/pressFeedback.d.ts.map +1 -1
- package/dist/utils/pressFeedback.js +40 -15
- package/dist/utils/pressGesture.d.ts +12 -6
- package/dist/utils/pressGesture.d.ts.map +1 -1
- package/dist/utils/pressGesture.js +26 -8
- package/dist/utils/scrollView.d.ts +25 -0
- package/dist/utils/scrollView.d.ts.map +1 -0
- package/dist/utils/scrollView.js +108 -0
- package/dist/utils/selectionLock.d.ts.map +1 -1
- package/dist/utils/selectionLock.js +1 -10
- package/dist/utils/touchHitArea.d.ts +30 -0
- package/dist/utils/touchHitArea.d.ts.map +1 -0
- package/dist/utils/touchHitArea.js +167 -0
- package/dist/utils/touchHitArea.stylex.d.ts +38 -0
- package/dist/utils/touchHitArea.stylex.d.ts.map +1 -0
- package/dist/utils/touchHitArea.stylex.js +48 -0
- package/dist/utils/triggerFocus.d.ts +5 -0
- package/dist/utils/triggerFocus.d.ts.map +1 -1
- package/dist/utils/triggerFocus.js +9 -2
- package/locales/en.json +21 -1
- package/locales/pseudo.json +15 -0
- package/package.json +15 -4
- package/src/AppShell/observeMainOverflow.ts +9 -6
- package/src/BottomSheet/BottomSheet.tsx +45 -3
- package/src/BottomSheet/BottomSheetPanel.tsx +64 -7
- package/src/BottomSheet/bottomSheetStack.ts +4 -3
- package/src/BottomSheet/useSheetGestures.ts +83 -20
- package/src/Calendar/Calendar.doc.mjs +76 -6
- package/src/Calendar/Calendar.tsx +123 -104
- package/src/Calendar/getInitialFocusDate.ts +22 -8
- package/src/Calendar/hooks/useCalendarDays.ts +89 -63
- package/src/Calendar/hooks/useCalendarNavigation.ts +68 -26
- package/src/CheckboxInput/CheckboxInput.doc.mjs +5 -4
- package/src/CheckboxInput/CheckboxInput.tsx +105 -20
- package/src/CheckboxInput/CheckboxRowPressContext.ts +22 -0
- package/src/CheckboxList/CheckboxList.doc.mjs +9 -0
- package/src/CheckboxList/CheckboxListItem.doc.mjs +3 -3
- package/src/CheckboxList/CheckboxListItem.tsx +35 -14
- package/src/ClickableCard/ClickableCard.tsx +8 -1
- package/src/ContextMenu/ContextMenu.tsx +2 -0
- package/src/DateInput/DateInput.doc.mjs +45 -12
- package/src/DateInput/DateInput.tsx +165 -179
- package/src/DateInput/MonthScroller.tsx +39 -37
- package/src/DateInput/MonthYearWheels.tsx +68 -47
- package/src/DateInput/PickerWheel.tsx +7 -2
- package/src/DateInput/TouchDateField.tsx +45 -17
- package/src/DateInput/monthGeometry.ts +110 -8
- package/src/DateInput/useCalendarPresentation.ts +64 -0
- package/src/DateInput/useTypedDate.ts +469 -0
- package/src/DateInput/wheelStrip.ts +2 -2
- package/src/DateRangeInput/DateRangeInput.doc.mjs +9 -0
- package/src/DateRangeInput/DateRangeInput.tsx +43 -9
- package/src/DateTimeInput/DateTimeInput.doc.mjs +42 -9
- package/src/DateTimeInput/DateTimeInput.tsx +138 -148
- package/src/DateTimeInput/TouchDateTimeField.tsx +31 -16
- package/src/Dialog/Dialog.doc.mjs +1 -1
- package/src/Dialog/Dialog.tsx +14 -2
- package/src/Drawer/Drawer.doc.mjs +1 -1
- package/src/Drawer/useDrawerDialogPresence.ts +9 -2
- package/src/DropdownMenu/DropdownMenu.doc.mjs +1 -2
- package/src/DropdownMenu/DropdownMenu.tsx +31 -7
- package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +5 -1
- package/src/DropdownMenu/DropdownMenuItem.tsx +8 -4
- package/src/DropdownMenu/DropdownMenuRadioItem.tsx +5 -1
- package/src/DropdownMenu/DropdownMenuSubMenu.tsx +5 -1
- package/src/FileInput/FileInput.tsx +16 -2
- package/src/HoverCard/useHoverCard.tsx +3 -1
- package/src/Icon/useIcon.doc.mjs +94 -0
- package/src/InfoTip/InfoTip.doc.mjs +26 -2
- package/src/InfoTip/InfoTip.tsx +6 -27
- package/src/InputGroup/InputGroup.doc.mjs +4 -3
- package/src/InputGroup/InputGroup.tsx +4 -3
- package/src/InputGroup/InputGroupText.doc.mjs +45 -3
- package/src/InputGroup/InputGroupText.tsx +2 -1
- package/src/InputGroup/groupStyles.ts +3 -1
- package/src/Item/Item.tsx +139 -35
- package/src/Item/ItemListRowContext.tsx +18 -0
- package/src/Layer/holdEntranceInput.ts +84 -0
- package/src/Layer/inputHold.ts +734 -0
- package/src/Layer/outsidePress.ts +18 -1
- package/src/Layer/preserveAnimations.ts +12 -275
- package/src/Layer/useBackdropPress.ts +41 -1
- package/src/Layer/useLayer.tsx +77 -4
- package/src/Layer/useTouchTrigger.ts +4 -0
- package/src/Layout/LayoutContent.doc.mjs +6 -3
- package/src/Layout/LayoutContent.tsx +10 -4
- package/src/Layout/LayoutPanel.doc.mjs +14 -11
- package/src/Layout/LayoutPanel.tsx +113 -16
- package/src/Lightbox/Lightbox.tsx +4 -0
- package/src/List/List.doc.mjs +10 -1
- package/src/List/List.tsx +5 -0
- package/src/List/ListItem.tsx +63 -8
- package/src/Markdown/parser.ts +65 -42
- package/src/MetadataList/MetadataList.tsx +1 -1
- package/src/MobileNav/MobileNav.doc.mjs +3 -3
- package/src/MobileNav/MobileNav.tsx +39 -1
- package/src/MoreMenu/MoreMenu.doc.mjs +2 -4
- package/src/MoreMenu/MoreMenu.tsx +5 -3
- package/src/MultiSelector/MultiSelector.tsx +7 -17
- package/src/NumberInput/NumberInput.doc.mjs +1 -1
- package/src/NumberInput/NumberInput.tsx +259 -11
- package/src/OverflowList/OverflowList.tsx +15 -9
- package/src/Popover/usePopover.tsx +1 -0
- package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
- package/src/PowerSearch/PowerSearch.tsx +20 -3
- package/src/PowerSearch/PowerSearchBottomSheet.tsx +4 -1
- package/src/PowerSearch/PowerSearchToken.tsx +3 -0
- package/src/PowerSearch/formatFilterValue.ts +21 -11
- package/src/PowerSearch/formatTokenValue.ts +7 -1
- package/src/RadioList/RadioListItem.doc.mjs +3 -2
- package/src/RadioList/RadioListItem.tsx +16 -6
- package/src/Resizable/Resizable.doc.mjs +40 -12
- package/src/Resizable/ResizeHandle.tsx +68 -6
- package/src/Resizable/resizablePane.ts +179 -0
- package/src/Resizable/useResizable.ts +15 -0
- package/src/SegmentedControl/useSegmentedSelectionMotion.ts +3 -3
- package/src/SelectableCard/SelectableCard.tsx +8 -1
- package/src/Selector/Selector.tsx +83 -8
- package/src/SideNav/SideNav.doc.mjs +2 -2
- package/src/SideNav/SideNav.tsx +87 -12
- package/src/Slider/sliderTouchController.ts +2 -2
- package/src/Spinner/Spinner.tsx +7 -89
- package/src/Spinner/index.ts +1 -5
- package/src/Spinner/spinnerRotor.ts +113 -0
- package/src/Stack/Stack.doc.mjs +1 -1
- package/src/Stack/StackItem.tsx +27 -13
- package/src/Switch/Switch.tsx +7 -6
- package/src/Switch/useSwitchTouch.ts +4 -4
- package/src/TabList/Tab.tsx +5 -1
- package/src/Table/plugins/sortable/useTableSortable.tsx +1 -1
- package/src/Timestamp/Timestamp.doc.mjs +3 -3
- package/src/Timestamp/Timestamp.tsx +13 -8
- package/src/Timestamp/formatInstant.ts +49 -28
- package/src/Timestamp/tooltipEntries.ts +7 -3
- package/src/Token/Token.tsx +18 -1
- package/src/Token/TokenLink.tsx +7 -1
- package/src/Tokenizer/Tokenizer.doc.mjs +3 -3
- package/src/Tokenizer/Tokenizer.tsx +252 -115
- package/src/Tooltip/useTooltip.tsx +180 -80
- package/src/TreeList/TreeListItem.tsx +36 -2
- package/src/Typeahead/BaseTypeahead.tsx +2 -0
- package/src/animator/createAnimator.ts +3 -3
- package/src/gestures/GestureHost.ts +21 -5
- package/src/gestures/PanGestureRecognizer.ts +19 -2
- package/src/gestures/README.md +14 -5
- package/src/gestures/ScreenEdgePanGestureRecognizer.ts +6 -1
- package/src/gestures/nativeScroll.ts +12 -68
- package/src/gestures/wheelSegmenter.ts +243 -10
- package/src/hooks/StackItemScrollRegion.tsx +57 -0
- package/src/hooks/computeOverflow.ts +1 -1
- package/src/hooks/menuPressGesture.ts +244 -38
- package/src/hooks/menuPressValues.ts +18 -0
- package/src/hooks/useClickableContainer.doc.mjs +8 -2
- package/src/hooks/useClickableContainer.ts +93 -15
- package/src/hooks/useFocusTrap.ts +268 -151
- package/src/hooks/useKeyboardHighlight.ts +71 -0
- package/src/hooks/useMediaQuery.ts +41 -12
- package/src/hooks/useMenuPress.ts +118 -11
- package/src/hooks/useOverflow.ts +321 -75
- package/src/hooks/usePressFeedback.doc.mjs +3 -3
- package/src/hooks/usePressFeedback.ts +6 -6
- package/src/hooks/useScrollRegionProps.ts +76 -0
- package/src/i18n/InternationalizationContext.ts +6 -0
- package/src/i18n/InternationalizationProvider.doc.mjs +29 -1
- package/src/i18n/InternationalizationProvider.tsx +35 -3
- package/src/i18n/generated-english/DateInput/DateInput.generated.ts +0 -1
- package/src/i18n/generated-english/DateInput/useTypedDate.generated.ts +17 -0
- package/src/i18n/generated-english/DateTimeInput/DateTimeInput.generated.ts +0 -1
- package/src/i18n/generated-english/hooks/useScrollRegionProps.generated.ts +13 -0
- package/src/i18n/generated-locales/en.generated.ts +7 -0
- package/src/i18n/generated-locales/pseudo.generated.ts +7 -0
- package/src/i18n/index.ts +2 -0
- package/src/i18n/useCalendarSystem.ts +95 -0
- package/src/internal/calendar-system.ts +26 -0
- package/src/internal/spinner-rotor.ts +20 -0
- package/src/internal/touch.ts +43 -2
- package/src/motion/MEASUREMENTS.md +11 -0
- package/src/motion/README.md +3 -3
- package/src/motion/animator.ts +7 -7
- package/src/motion/carryAnimations.ts +389 -0
- package/src/motion/transientCopy.ts +45 -5
- package/src/motion/uikit/gestures.ts +22 -0
- package/src/motion/uikit/index.ts +1 -0
- package/src/motion/uikit/timing.ts +7 -5
- package/src/privateAttributes/menuPressLit.stylex.ts +104 -0
- package/src/privateAttributes/press.stylex.ts +261 -0
- package/src/theme/themeMotion.ts +3 -2
- package/src/theme/tokens.stylex.ts +1 -1
- package/src/utils/calendarDateParser.ts +1385 -0
- package/src/utils/calendarSystem.ts +832 -0
- package/src/utils/coarsePointer.ts +27 -14
- package/src/utils/flatTree.ts +15 -3
- package/src/utils/focusReturn.ts +78 -18
- package/src/utils/hitArea.ts +138 -9
- package/src/utils/inputPresentation.ts +21 -1
- package/src/utils/inputStream.ts +47 -10
- package/src/utils/interactionOverlay.stylex.ts +19 -22
- package/src/utils/plainDate.ts +130 -19
- package/src/utils/pressFeedback.ts +46 -14
- package/src/utils/pressGesture.ts +35 -9
- package/src/utils/scrollView.ts +135 -0
- package/src/utils/selectionLock.ts +5 -10
- package/src/utils/touchHitArea.stylex.ts +56 -0
- package/src/utils/touchHitArea.ts +177 -0
- package/src/utils/triggerFocus.ts +17 -4
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
/**
|
|
3
|
+
* @file privateAttributes/menuPressLit.stylex.ts
|
|
4
|
+
* @input The row that a held finger or pen lights in a menu
|
|
5
|
+
* @output Exports markMenuPressLit and clearMenuPressLit, which mark that row,
|
|
6
|
+
* and isMenuPressLit, which reads the mark. It also exports
|
|
7
|
+
* menuPressLitRowStyle, which paints the marked row. The hold pair,
|
|
8
|
+
* holdMenuPressPaint and releaseMenuPressPaint, keeps the other rows off
|
|
9
|
+
* their pressed paint, and isMenuPressPaintHeld reads that hold.
|
|
10
|
+
* @position Owner module of the private menu-press-lit attribute: the only
|
|
11
|
+
* file that writes its name. The menu press model (hooks/useMenuPress.ts)
|
|
12
|
+
* marks the row; DropdownMenu's rows compose the styles. No package entry
|
|
13
|
+
* exports it.
|
|
14
|
+
*
|
|
15
|
+
* SYNC: Each row that composes menuPressLitRowStyle reads
|
|
16
|
+
* `--_menu-row-focus-paint` in its `:focus` background, and a row with an
|
|
17
|
+
* `:active` background reads `--_menu-row-active-paint` there:
|
|
18
|
+
* - /packages/core/src/DropdownMenu/DropdownMenuItem.tsx
|
|
19
|
+
* - /packages/core/src/DropdownMenu/DropdownMenuCheckboxItem.tsx
|
|
20
|
+
* - /packages/core/src/DropdownMenu/DropdownMenuRadioItem.tsx
|
|
21
|
+
* - /packages/core/src/DropdownMenu/DropdownMenuSubMenu.tsx
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
import * as stylex from '@stylexjs/stylex';
|
|
25
|
+
import type {StyleXStyles} from '@stylexjs/stylex';
|
|
26
|
+
import {colorVars} from '../theme/tokens.stylex';
|
|
27
|
+
|
|
28
|
+
const MENU_PRESS_LIT = 'data-astryx-menu-press-lit';
|
|
29
|
+
const ACTIVE_PAINT = '--_menu-row-active-paint';
|
|
30
|
+
|
|
31
|
+
/** Marks `row` as the row that a held finger or pen lights. */
|
|
32
|
+
export function markMenuPressLit(row: Element): void {
|
|
33
|
+
row.setAttribute(MENU_PRESS_LIT, '');
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** Removes the mark from `row`. */
|
|
37
|
+
export function clearMenuPressLit(row: Element): void {
|
|
38
|
+
row.removeAttribute(MENU_PRESS_LIT);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/** Whether a held finger or pen lights `row`. */
|
|
42
|
+
export function isMenuPressLit(row: Element): boolean {
|
|
43
|
+
return row.hasAttribute(MENU_PRESS_LIT);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Keeps `menu`'s rows off their `:active` paint while a held finger or pen
|
|
48
|
+
* presses in it. The row the press began on stays `:active` as the press
|
|
49
|
+
* moves on. The lit row keeps the pressed overlay through its own mark.
|
|
50
|
+
*/
|
|
51
|
+
export function holdMenuPressPaint(menu: HTMLElement): void {
|
|
52
|
+
menu.style.setProperty(ACTIVE_PAINT, 'transparent');
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/** Gives `menu`'s rows their `:active` paint back. */
|
|
56
|
+
export function releaseMenuPressPaint(menu: HTMLElement): void {
|
|
57
|
+
menu.style.removeProperty(ACTIVE_PAINT);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** Whether a held finger or pen keeps `menu`'s rows off their `:active` paint. */
|
|
61
|
+
export function isMenuPressPaintHeld(menu: HTMLElement): boolean {
|
|
62
|
+
return menu.style.getPropertyValue(ACTIVE_PAINT) !== '';
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* A value for each attribute state. The index signature gives StyleX the value
|
|
67
|
+
* type, which it cannot read from a literal attribute key.
|
|
68
|
+
*/
|
|
69
|
+
type ByAttribute<Value> = Readonly<{
|
|
70
|
+
default: null;
|
|
71
|
+
[attribute: string]: Value | null;
|
|
72
|
+
}>;
|
|
73
|
+
|
|
74
|
+
const litRowPaint: Readonly<{
|
|
75
|
+
'--_menu-row-focus-paint': ByAttribute<string>;
|
|
76
|
+
'--_menu-row-active-paint': ByAttribute<string>;
|
|
77
|
+
}> = {
|
|
78
|
+
'--_menu-row-focus-paint': {
|
|
79
|
+
default: null,
|
|
80
|
+
'[data-astryx-menu-press-lit]': colorVars['--color-overlay-pressed'],
|
|
81
|
+
},
|
|
82
|
+
'--_menu-row-active-paint': {
|
|
83
|
+
default: null,
|
|
84
|
+
'[data-astryx-menu-press-lit]': colorVars['--color-overlay-pressed'],
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
const styles = stylex.create({
|
|
89
|
+
row: {...litRowPaint},
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Compose on a menu row whose `:focus` background is
|
|
94
|
+
* `var(--_menu-row-focus-paint, <hover overlay>)`, and whose `:active`
|
|
95
|
+
* background, if any, is `var(--_menu-row-active-paint, <pressed overlay>)`.
|
|
96
|
+
* The row paints the hover overlay on focus, and the pressed overlay while a
|
|
97
|
+
* held finger or pen lights it.
|
|
98
|
+
* Under a finger, the hover overlay is too faint to follow. The variable has
|
|
99
|
+
* no default: a layered stylesheet emits a default unlayered, and it would
|
|
100
|
+
* beat the attribute arm. The value resolves on the row, so a theme set on any
|
|
101
|
+
* ancestor applies. The style sets only a custom property, which shares no
|
|
102
|
+
* key with StyleX's CSS property type, so TypeScript needs the wider type.
|
|
103
|
+
*/
|
|
104
|
+
export const menuPressLitRowStyle = styles.row as StyleXStyles;
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/* eslint-disable @astryx/no-hover-on-disabled -- Every hover branch is
|
|
4
|
+
* nested beneath ENABLED below, as in interactionOverlay.stylex.ts. */
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @file privateAttributes/press.stylex.ts
|
|
8
|
+
* @input StyleX, the overlay color tokens, the touch press strength
|
|
9
|
+
* (`pressVars`) and the row layer's clocks (utils/rowPressLayer.stylex.ts)
|
|
10
|
+
* @output `rowPressLayerStyles`, the compositor press layer for list rows
|
|
11
|
+
* (`cell`, `cellOnImage` for a `backgroundImage` row), and
|
|
12
|
+
* `rowPressPaintStyles`, a CheckboxList row's press paint for its box
|
|
13
|
+
* @position Owner module of the private press attribute: the press controller
|
|
14
|
+
* (utils/pressFeedback.ts) writes it, and this file reads it. No package
|
|
15
|
+
* entry exports it. Item, TreeList and CheckboxListItem compose its styles;
|
|
16
|
+
* utils/interactionOverlay.cell.test.ts tests the row layer.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
import * as stylex from '@stylexjs/stylex';
|
|
20
|
+
import {colorVars, durationVars, easeVars} from '../theme/tokens.stylex';
|
|
21
|
+
import {reducedMotionFadeConsts} from '../motion/reducedMotion.stylex';
|
|
22
|
+
import {pressVars} from '../utils/interactionOverlay.stylex';
|
|
23
|
+
|
|
24
|
+
// The overlay's arm selectors (interactionOverlay.stylex.ts), restated here:
|
|
25
|
+
// StyleX resolves a style's keys within its own file.
|
|
26
|
+
const ENABLED = ':where(:not(:disabled,[aria-disabled="true"]))';
|
|
27
|
+
const HOVER_HOVER = '@media (hover: hover)';
|
|
28
|
+
const COARSE = '@media (pointer: coarse)';
|
|
29
|
+
const PRESSED_ON = '[data-astryx-press="on"]';
|
|
30
|
+
const PRESSED_FADING = '[data-astryx-press="fading"]';
|
|
31
|
+
/**
|
|
32
|
+
* A press in any of its states: the row layer exists only then, so at rest a
|
|
33
|
+
* row's own `::before` and its stacking are untouched.
|
|
34
|
+
*/
|
|
35
|
+
const PRESSED_ANY =
|
|
36
|
+
':is([data-astryx-press="on"],[data-astryx-press="fading"])';
|
|
37
|
+
|
|
38
|
+
const PRESS_ALPHA = pressVars['--astryx-press-alpha'];
|
|
39
|
+
|
|
40
|
+
const hoverImage = `linear-gradient(${colorVars['--color-overlay-hover']}, ${colorVars['--color-overlay-hover']})`;
|
|
41
|
+
const pressedImage = `linear-gradient(${colorVars['--color-overlay-pressed']}, ${colorVars['--color-overlay-pressed']})`;
|
|
42
|
+
/** The overlay's paint, read back off the element (its gradient layer). */
|
|
43
|
+
const pressedOverlayImage = 'var(--_press-paint-image)';
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* The overlay's strength release (interactionOverlay.stylex.ts), restated so
|
|
47
|
+
* a fine pointer keeps it: the same keyframes, so the same animation.
|
|
48
|
+
*/
|
|
49
|
+
const pressRelease = stylex.keyframes({
|
|
50
|
+
from: {[PRESS_ALPHA]: 1},
|
|
51
|
+
to: {[PRESS_ALPHA]: 0},
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* The row layer's clock as CSS: the strength release's clock, the theme's
|
|
56
|
+
* exit duration, so the layer and the strength land together.
|
|
57
|
+
*/
|
|
58
|
+
const CELL_RELEASE = durationVars['--duration-exit'];
|
|
59
|
+
/** The same clock under Reduce Motion, no longer than the Reduce Motion fade. */
|
|
60
|
+
const CELL_RELEASE_REDUCED = `min(${durationVars['--duration-exit']}, ${reducedMotionFadeConsts.duration})`;
|
|
61
|
+
const REDUCED_MOTION = '@media (prefers-reduced-motion: reduce)';
|
|
62
|
+
|
|
63
|
+
/** Opacity 1 → 0: the row layer leaves; its fading arm runs it. */
|
|
64
|
+
const cellRelease = stylex.keyframes({
|
|
65
|
+
from: {opacity: 1},
|
|
66
|
+
to: {opacity: 0},
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
/** The release's curve: the theme's exit easing, as the strength's. */
|
|
70
|
+
const RELEASE_EASE = easeVars['--ease-exit'];
|
|
71
|
+
|
|
72
|
+
export const rowPressLayerStyles = stylex.create({
|
|
73
|
+
/**
|
|
74
|
+
* A list row's touch press on a compositor layer (Item, and TreeList's row
|
|
75
|
+
* box), composed AFTER the row's overlay variant (StyleX is last-wins per
|
|
76
|
+
* property). The variant's own touch paint, a gradient whose strength is a
|
|
77
|
+
* registered custom property, animates on the main thread: while script
|
|
78
|
+
* runs, a pressed row would stay at full strength and every frame of the
|
|
79
|
+
* fade would paint. Here the press is an element-sized `::before` under the
|
|
80
|
+
* row's content whose OPACITY is the strength: `on` shows it at once and
|
|
81
|
+
* `fading` runs a keyframe animation of its opacity, 1 → 0, on the cell's
|
|
82
|
+
* release clock (`timing.press`), which engines run on the compositor:
|
|
83
|
+
* it keeps advancing while the main thread is blocked and lays out and
|
|
84
|
+
* paints nothing. Same pixels as the variant's paint at that strength. The
|
|
85
|
+
* variant keeps the hover and a mouse's `:active`. The row must be
|
|
86
|
+
* positioned (the layer is placed absolutely); `isolation: isolate` keeps
|
|
87
|
+
* the layer above the row's background (a selected fill) and below its
|
|
88
|
+
* content. The layer exists only while a press is on or releasing: at rest
|
|
89
|
+
* a row's own `::before` and its stacking are as they were; during a press
|
|
90
|
+
* the layer is the row's `::before`, so a caller's decoration there merges
|
|
91
|
+
* into the layer for that time (decorate with `::after` or a child).
|
|
92
|
+
* Under a finger an interactive List row's `::after` is its touch hit area,
|
|
93
|
+
* so decorate that row with a child.
|
|
94
|
+
*
|
|
95
|
+
* Under a finger only (a coarse primary pointer): a fine pointer keeps the
|
|
96
|
+
* variant exactly, with no layer, no stacking context and its own touch
|
|
97
|
+
* paint, so a desktop row is as it was.
|
|
98
|
+
*/
|
|
99
|
+
cell: {
|
|
100
|
+
// The `backgroundColor` variant's own image arms (Item's), its touch
|
|
101
|
+
// paint yielding to the layer under a finger. Only the row's own image
|
|
102
|
+
// turns off: the press paint (`--_press-paint`) stays the variant's, so
|
|
103
|
+
// what a row's descendants paint from it still paints. A fine pointer
|
|
104
|
+
// keeps the arms exactly. `cellOnImage` is the same for the
|
|
105
|
+
// `backgroundImage` variant (TreeList's row box).
|
|
106
|
+
backgroundImage: {
|
|
107
|
+
default: null,
|
|
108
|
+
[ENABLED]: {
|
|
109
|
+
default: null,
|
|
110
|
+
[PRESSED_ON]: {default: pressedOverlayImage, [COARSE]: 'none'},
|
|
111
|
+
[PRESSED_FADING]: {default: pressedOverlayImage, [COARSE]: 'none'},
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
// Under a finger the strength's own release (a main-thread animation)
|
|
115
|
+
// is dropped: the layer fades instead, on the compositor. A row whose
|
|
116
|
+
// descendant fades at the row's strength (a radio row's circle) brings
|
|
117
|
+
// it back with `pressedAlpha`. A fine pointer keeps it as the variant
|
|
118
|
+
// declares it (its clock and curve are untouched).
|
|
119
|
+
animationName: {
|
|
120
|
+
default: null,
|
|
121
|
+
[PRESSED_FADING]: {default: pressRelease, [COARSE]: 'none'},
|
|
122
|
+
},
|
|
123
|
+
// The stacking context the layer needs, for a press only.
|
|
124
|
+
isolation: {
|
|
125
|
+
default: null,
|
|
126
|
+
[COARSE]: {default: null, [PRESSED_ANY]: 'isolate'},
|
|
127
|
+
},
|
|
128
|
+
// The whole layer is under a finger only, and only while a press is on
|
|
129
|
+
// or releasing: with a fine pointer none of it applies, and at rest a
|
|
130
|
+
// row's own `::before` is exactly as it was.
|
|
131
|
+
'::before': {
|
|
132
|
+
content: {
|
|
133
|
+
default: null,
|
|
134
|
+
[COARSE]: {
|
|
135
|
+
default: null,
|
|
136
|
+
[ENABLED]: {default: null, [PRESSED_ANY]: '""'},
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
position: {
|
|
140
|
+
default: null,
|
|
141
|
+
[COARSE]: {default: null, [PRESSED_ANY]: 'absolute'},
|
|
142
|
+
},
|
|
143
|
+
inset: {default: null, [COARSE]: {default: null, [PRESSED_ANY]: 0}},
|
|
144
|
+
zIndex: {default: null, [COARSE]: {default: null, [PRESSED_ANY]: -1}},
|
|
145
|
+
borderRadius: {
|
|
146
|
+
default: null,
|
|
147
|
+
[COARSE]: {default: null, [PRESSED_ANY]: 'inherit'},
|
|
148
|
+
},
|
|
149
|
+
pointerEvents: {
|
|
150
|
+
default: null,
|
|
151
|
+
[COARSE]: {default: null, [PRESSED_ANY]: 'none'},
|
|
152
|
+
},
|
|
153
|
+
backgroundColor: {
|
|
154
|
+
default: null,
|
|
155
|
+
[COARSE]: {
|
|
156
|
+
default: null,
|
|
157
|
+
[PRESSED_ANY]: colorVars['--color-overlay-pressed'],
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
// On at once while the press is believed; nothing transitions it.
|
|
161
|
+
opacity: {
|
|
162
|
+
default: null,
|
|
163
|
+
[COARSE]: {default: null, [PRESSED_ON]: 1, [PRESSED_FADING]: 0},
|
|
164
|
+
},
|
|
165
|
+
animationName: {
|
|
166
|
+
default: null,
|
|
167
|
+
[COARSE]: {
|
|
168
|
+
default: null,
|
|
169
|
+
[ENABLED]: {default: null, [PRESSED_FADING]: cellRelease},
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
animationDuration: {
|
|
173
|
+
default: null,
|
|
174
|
+
[COARSE]: {
|
|
175
|
+
default: null,
|
|
176
|
+
[PRESSED_FADING]: {
|
|
177
|
+
default: CELL_RELEASE,
|
|
178
|
+
[REDUCED_MOTION]: CELL_RELEASE_REDUCED,
|
|
179
|
+
},
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
animationTimingFunction: {
|
|
183
|
+
default: null,
|
|
184
|
+
[COARSE]: {
|
|
185
|
+
default: null,
|
|
186
|
+
[PRESSED_FADING]: RELEASE_EASE,
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
animationFillMode: {
|
|
190
|
+
default: null,
|
|
191
|
+
[COARSE]: {default: null, [PRESSED_FADING]: 'both'},
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
},
|
|
195
|
+
/**
|
|
196
|
+
* A row that keeps no press paint of its own, composed after `cell`: a
|
|
197
|
+
* radio row, whose circle paints the press. The row paints no overlay
|
|
198
|
+
* image, keeps the strength's own release (the circle's layer reads the
|
|
199
|
+
* strength), and under a finger has no `::before` box and is no stacking
|
|
200
|
+
* context during a press.
|
|
201
|
+
*/
|
|
202
|
+
cellWithoutLayer: {
|
|
203
|
+
backgroundImage: 'none',
|
|
204
|
+
animationName: {default: null, [PRESSED_FADING]: pressRelease},
|
|
205
|
+
isolation: {
|
|
206
|
+
default: null,
|
|
207
|
+
[COARSE]: {default: null, [PRESSED_ANY]: 'auto'},
|
|
208
|
+
},
|
|
209
|
+
'::before': {
|
|
210
|
+
content: {
|
|
211
|
+
default: null,
|
|
212
|
+
[COARSE]: {
|
|
213
|
+
default: null,
|
|
214
|
+
[ENABLED]: {default: null, [PRESSED_ANY]: 'none'},
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
},
|
|
218
|
+
},
|
|
219
|
+
/**
|
|
220
|
+
* `cell`'s own-image arms for a row on the `backgroundImage` variant
|
|
221
|
+
* (TreeList's row box), composed after `cell`: the variant's arms, its
|
|
222
|
+
* touch press paint yielding to the layer under a coarse primary pointer.
|
|
223
|
+
*/
|
|
224
|
+
cellOnImage: {
|
|
225
|
+
backgroundImage: {
|
|
226
|
+
default: null,
|
|
227
|
+
[ENABLED]: {
|
|
228
|
+
default: null,
|
|
229
|
+
':active': {
|
|
230
|
+
default: pressedImage,
|
|
231
|
+
[COARSE]: 'none',
|
|
232
|
+
},
|
|
233
|
+
[HOVER_HOVER]: {
|
|
234
|
+
default: null,
|
|
235
|
+
':hover': hoverImage,
|
|
236
|
+
':active': pressedImage,
|
|
237
|
+
},
|
|
238
|
+
[PRESSED_ON]: {default: pressedOverlayImage, [COARSE]: 'none'},
|
|
239
|
+
[PRESSED_FADING]: {default: pressedOverlayImage, [COARSE]: 'none'},
|
|
240
|
+
},
|
|
241
|
+
},
|
|
242
|
+
},
|
|
243
|
+
});
|
|
244
|
+
|
|
245
|
+
export const rowPressPaintStyles = stylex.create({
|
|
246
|
+
// A box reads its nearest row's value, so a list in a row's content keeps
|
|
247
|
+
// its own rows' paint.
|
|
248
|
+
checkboxRow: {
|
|
249
|
+
'--_checkbox-row-press-paint': {
|
|
250
|
+
default: 'none',
|
|
251
|
+
':is([data-astryx-press="on"])': {
|
|
252
|
+
default: 'none',
|
|
253
|
+
'@media (pointer: coarse)': 'var(--_press-paint-image)',
|
|
254
|
+
},
|
|
255
|
+
':is([data-astryx-press="fading"])': {
|
|
256
|
+
default: 'none',
|
|
257
|
+
'@media (pointer: coarse)': 'var(--_press-paint-image)',
|
|
258
|
+
},
|
|
259
|
+
},
|
|
260
|
+
},
|
|
261
|
+
});
|
package/src/theme/themeMotion.ts
CHANGED
|
@@ -82,8 +82,9 @@ function msOf(value: string): number {
|
|
|
82
82
|
|
|
83
83
|
/**
|
|
84
84
|
* The private custom property a theme with a `tempo` writes beside its
|
|
85
|
-
* duration tokens
|
|
86
|
-
*
|
|
85
|
+
* duration tokens, for a style that scales a clock of its own by it
|
|
86
|
+
* (ProgressBar's move). A press release needs none: it plays
|
|
87
|
+
* `--duration-exit`, which already follows the tempo.
|
|
87
88
|
*/
|
|
88
89
|
export const MOTION_TEMPO_PROPERTY = '--_astryx-motion-tempo';
|
|
89
90
|
|
|
@@ -24,7 +24,7 @@ import * as stylex from '@stylexjs/stylex';
|
|
|
24
24
|
|
|
25
25
|
export const colorDefaults = {
|
|
26
26
|
// Core semantic
|
|
27
|
-
'--color-accent': 'light-dark(#0064E0, #
|
|
27
|
+
'--color-accent': 'light-dark(#0064E0, #0171E3)',
|
|
28
28
|
'--color-accent-muted': 'light-dark(#0082FB33, #0082FB3F)',
|
|
29
29
|
'--color-on-accent': 'light-dark(#FFFFFF, #FFFFFF)',
|
|
30
30
|
'--color-neutral':
|