@astryxdesign/core 0.7.8 → 0.7.9-canary.07992bb
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 +5 -0
- package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetPanel.js +40 -8
- 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.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +54 -11
- 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/DateInput/DateInput.d.ts.map +1 -1
- package/dist/DateInput/DateInput.js +4 -1
- package/dist/DateInput/PickerWheel.d.ts.map +1 -1
- package/dist/DateInput/PickerWheel.js +7 -1
- package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/DateRangeInput/DateRangeInput.js +5 -2
- package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
- package/dist/DateTimeInput/DateTimeInput.js +4 -1
- package/dist/Dialog/Dialog.d.ts +2 -1
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +12 -1
- 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 +9 -4
- 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 +1 -0
- 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/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 +2 -1
- package/dist/Item/Item.d.ts.map +1 -1
- package/dist/Item/Item.js +29 -6
- 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/preserveAnimations.d.ts +1 -5
- package/dist/Layer/preserveAnimations.d.ts.map +1 -1
- package/dist/Layer/preserveAnimations.js +12 -214
- 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/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 +4 -1
- package/dist/Layout/LayoutPanel.d.ts.map +1 -1
- package/dist/Layout/LayoutPanel.js +13 -4
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +4 -0
- 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/NumberInput/NumberInput.d.ts +4 -2
- package/dist/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/NumberInput/NumberInput.js +244 -11
- 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 +22 -4
- 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/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/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 +162 -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/astryx.css +45 -18
- 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/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 +27 -5
- package/dist/hooks/useClickableContainer.d.ts.map +1 -1
- package/dist/hooks/useClickableContainer.js +41 -5
- 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/useMenuPress.d.ts +34 -1
- package/dist/hooks/useMenuPress.d.ts.map +1 -1
- package/dist/hooks/useMenuPress.js +93 -5
- 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 +21 -3
- package/dist/i18n/InternationalizationProvider.d.ts.map +1 -1
- package/dist/i18n/InternationalizationProvider.js +8 -3
- 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 +1 -0
- package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/pseudo.generated.js +1 -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/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 +14 -1
- package/dist/internal/touch.d.ts.map +1 -1
- package/dist/internal/touch.js +20 -2
- 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 +139 -0
- package/dist/privateAttributes/press.stylex.d.ts.map +1 -0
- package/dist/privateAttributes/press.stylex.js +97 -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/calendarSystem.d.ts +114 -0
- package/dist/utils/calendarSystem.d.ts.map +1 -0
- package/dist/utils/calendarSystem.js +386 -0
- 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/hitArea.d.ts.map +1 -1
- package/dist/utils/hitArea.js +82 -5
- 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 +23 -7
- package/dist/utils/plainDate.d.ts.map +1 -1
- package/dist/utils/plainDate.js +57 -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.stylex.d.ts +35 -0
- package/dist/utils/touchHitArea.stylex.d.ts.map +1 -0
- package/dist/utils/touchHitArea.stylex.js +32 -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 +4 -0
- package/locales/pseudo.json +3 -0
- package/package.json +10 -4
- package/src/AppShell/observeMainOverflow.ts +9 -6
- package/src/BottomSheet/BottomSheet.tsx +5 -0
- package/src/BottomSheet/BottomSheetPanel.tsx +64 -7
- 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 +3 -2
- package/src/CheckboxInput/CheckboxInput.tsx +71 -9
- package/src/ClickableCard/ClickableCard.tsx +8 -1
- package/src/DateInput/DateInput.tsx +2 -0
- package/src/DateInput/PickerWheel.tsx +7 -2
- package/src/DateRangeInput/DateRangeInput.tsx +3 -1
- package/src/DateTimeInput/DateTimeInput.tsx +2 -0
- package/src/Dialog/Dialog.doc.mjs +1 -1
- package/src/Dialog/Dialog.tsx +12 -1
- 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 +29 -5
- 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/InfoTip/InfoTip.doc.mjs +26 -2
- package/src/InfoTip/InfoTip.tsx +1 -0
- package/src/InputGroup/InputGroup.doc.mjs +4 -3
- package/src/InputGroup/InputGroup.tsx +4 -3
- package/src/InputGroup/groupStyles.ts +3 -1
- package/src/Item/Item.tsx +51 -9
- package/src/Layer/holdEntranceInput.ts +84 -0
- package/src/Layer/inputHold.ts +734 -0
- package/src/Layer/preserveAnimations.ts +12 -275
- package/src/Layer/useLayer.tsx +77 -4
- package/src/Layout/LayoutContent.doc.mjs +6 -3
- package/src/Layout/LayoutContent.tsx +10 -4
- package/src/Layout/LayoutPanel.doc.mjs +6 -3
- package/src/Layout/LayoutPanel.tsx +11 -4
- package/src/Lightbox/Lightbox.tsx +4 -0
- 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/NumberInput/NumberInput.doc.mjs +1 -1
- package/src/NumberInput/NumberInput.tsx +259 -11
- 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 +25 -7
- package/src/SelectableCard/SelectableCard.tsx +8 -1
- 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/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 +178 -80
- package/src/TreeList/TreeListItem.tsx +36 -2
- 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/menuPressGesture.ts +244 -38
- package/src/hooks/menuPressValues.ts +18 -0
- package/src/hooks/useClickableContainer.doc.mjs +8 -2
- package/src/hooks/useClickableContainer.ts +72 -6
- package/src/hooks/useFocusTrap.ts +268 -151
- package/src/hooks/useMenuPress.ts +118 -11
- 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 +33 -3
- package/src/i18n/generated-english/hooks/useScrollRegionProps.generated.ts +13 -0
- package/src/i18n/generated-locales/en.generated.ts +1 -0
- package/src/i18n/generated-locales/pseudo.generated.ts +1 -0
- package/src/i18n/index.ts +2 -0
- package/src/i18n/useCalendarSystem.ts +95 -0
- package/src/internal/spinner-rotor.ts +20 -0
- package/src/internal/touch.ts +34 -1
- package/src/motion/MEASUREMENTS.md +11 -0
- 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 +243 -0
- package/src/theme/themeMotion.ts +3 -2
- package/src/theme/tokens.stylex.ts +1 -1
- package/src/utils/calendarSystem.ts +548 -0
- package/src/utils/flatTree.ts +15 -3
- package/src/utils/hitArea.ts +107 -5
- package/src/utils/inputStream.ts +47 -10
- package/src/utils/interactionOverlay.stylex.ts +19 -22
- package/src/utils/plainDate.ts +84 -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 +41 -0
- package/src/utils/triggerFocus.ts +17 -4
|
@@ -0,0 +1,243 @@
|
|
|
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 semantic overlay color tokens, the touch press strength
|
|
9
|
+
* (`pressVars`, utils/interactionOverlay.stylex.ts) and the row layer's
|
|
10
|
+
* clocks (utils/rowPressLayer.stylex.ts)
|
|
11
|
+
* @output `rowPressLayerStyles`: the compositor press layer for list rows
|
|
12
|
+
* (`cell`) and its own-image arms for a row on the `backgroundImage`
|
|
13
|
+
* variant (`cellOnImage`)
|
|
14
|
+
* @position Owner module of the private press attribute for the row layer:
|
|
15
|
+
* the press controller (utils/pressFeedback.ts) writes the attribute, and
|
|
16
|
+
* this file reads it. No package entry exports it. Item and TreeList
|
|
17
|
+
* compose these styles after their overlay variant;
|
|
18
|
+
* utils/interactionOverlay.cell.test.ts tests them.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import * as stylex from '@stylexjs/stylex';
|
|
22
|
+
import {colorVars, durationVars, easeVars} from '../theme/tokens.stylex';
|
|
23
|
+
import {reducedMotionFadeConsts} from '../motion/reducedMotion.stylex';
|
|
24
|
+
import {pressVars} from '../utils/interactionOverlay.stylex';
|
|
25
|
+
|
|
26
|
+
// The overlay's arm selectors (interactionOverlay.stylex.ts), restated here:
|
|
27
|
+
// StyleX resolves a style's keys within its own file.
|
|
28
|
+
const ENABLED = ':where(:not(:disabled,[aria-disabled="true"]))';
|
|
29
|
+
const HOVER_HOVER = '@media (hover: hover)';
|
|
30
|
+
const COARSE = '@media (pointer: coarse)';
|
|
31
|
+
const PRESSED_ON = '[data-astryx-press="on"]';
|
|
32
|
+
const PRESSED_FADING = '[data-astryx-press="fading"]';
|
|
33
|
+
/**
|
|
34
|
+
* A press in any of its states: the row layer exists only then, so at rest a
|
|
35
|
+
* row's own `::before` and its stacking are untouched.
|
|
36
|
+
*/
|
|
37
|
+
const PRESSED_ANY =
|
|
38
|
+
':is([data-astryx-press="on"],[data-astryx-press="fading"])';
|
|
39
|
+
|
|
40
|
+
const PRESS_ALPHA = pressVars['--astryx-press-alpha'];
|
|
41
|
+
|
|
42
|
+
const hoverImage = `linear-gradient(${colorVars['--color-overlay-hover']}, ${colorVars['--color-overlay-hover']})`;
|
|
43
|
+
const pressedImage = `linear-gradient(${colorVars['--color-overlay-pressed']}, ${colorVars['--color-overlay-pressed']})`;
|
|
44
|
+
/** The overlay's paint, read back off the element (its gradient layer). */
|
|
45
|
+
const pressedOverlayImage = 'var(--_press-paint-image)';
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* The overlay's strength release (interactionOverlay.stylex.ts), restated so
|
|
49
|
+
* a fine pointer keeps it: the same keyframes, so the same animation.
|
|
50
|
+
*/
|
|
51
|
+
const pressRelease = stylex.keyframes({
|
|
52
|
+
from: {[PRESS_ALPHA]: 1},
|
|
53
|
+
to: {[PRESS_ALPHA]: 0},
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* The row layer's clock as CSS: the strength release's clock, the theme's
|
|
58
|
+
* exit duration, so the layer and the strength land together.
|
|
59
|
+
*/
|
|
60
|
+
const CELL_RELEASE = durationVars['--duration-exit'];
|
|
61
|
+
/** The same clock under Reduce Motion, no longer than the Reduce Motion fade. */
|
|
62
|
+
const CELL_RELEASE_REDUCED = `min(${durationVars['--duration-exit']}, ${reducedMotionFadeConsts.duration})`;
|
|
63
|
+
const REDUCED_MOTION = '@media (prefers-reduced-motion: reduce)';
|
|
64
|
+
|
|
65
|
+
/** Opacity 1 → 0: the row layer leaves; its fading arm runs it. */
|
|
66
|
+
const cellRelease = stylex.keyframes({
|
|
67
|
+
from: {opacity: 1},
|
|
68
|
+
to: {opacity: 0},
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
/** The release's curve: the theme's exit easing, as the strength's. */
|
|
72
|
+
const RELEASE_EASE = easeVars['--ease-exit'];
|
|
73
|
+
|
|
74
|
+
export const rowPressLayerStyles = stylex.create({
|
|
75
|
+
/**
|
|
76
|
+
* A list row's touch press on a compositor layer (Item, and TreeList's row
|
|
77
|
+
* box), composed AFTER the row's overlay variant (StyleX is last-wins per
|
|
78
|
+
* property). The variant's own touch paint, a gradient whose strength is a
|
|
79
|
+
* registered custom property, animates on the main thread: while script
|
|
80
|
+
* runs, a pressed row would stay at full strength and every frame of the
|
|
81
|
+
* fade would paint. Here the press is an element-sized `::before` under the
|
|
82
|
+
* row's content whose OPACITY is the strength: `on` shows it at once and
|
|
83
|
+
* `fading` runs a keyframe animation of its opacity, 1 → 0, on the cell's
|
|
84
|
+
* release clock (`timing.press`), which engines run on the compositor:
|
|
85
|
+
* it keeps advancing while the main thread is blocked and lays out and
|
|
86
|
+
* paints nothing. Same pixels as the variant's paint at that strength. The
|
|
87
|
+
* variant keeps the hover and a mouse's `:active`. The row must be
|
|
88
|
+
* positioned (the layer is placed absolutely); `isolation: isolate` keeps
|
|
89
|
+
* the layer above the row's background (a selected fill) and below its
|
|
90
|
+
* content. The layer exists only while a press is on or releasing: at rest
|
|
91
|
+
* a row's own `::before` and its stacking are as they were; during a press
|
|
92
|
+
* the layer is the row's `::before`, so a caller's decoration there merges
|
|
93
|
+
* into the layer for that time (decorate with `::after` or 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
|
+
});
|
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':
|