@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
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @file menuPressGesture.ts
|
|
5
5
|
* @input A menu press gesture and one pointer event, both as plain data
|
|
6
6
|
* @output The pure `menuPressStep` state machine, its state, event and effect
|
|
7
|
-
* types, and the
|
|
7
|
+
* types, the settle constant, and the finger's handoff distance
|
|
8
8
|
* @position Pure module under `useMenuPress`. It has no DOM and no React, so
|
|
9
9
|
* a unit test can check each transition without a browser.
|
|
10
10
|
*
|
|
@@ -13,8 +13,28 @@
|
|
|
13
13
|
* - /packages/core/src/hooks/useMenuPress.ts
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
import { MENU_PRESS_HANDOFF_PX as UIKIT_MENU_PRESS_HANDOFF_PX } from "./menuPressValues.js";
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* How long the opening press must last before its release may act, unless a
|
|
20
|
+
* finger's handoff applies.
|
|
21
|
+
*/
|
|
17
22
|
export const MENU_PRESS_SETTLE_MS = 300;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* How far a finger that opened the menu travels, from the first sample the
|
|
26
|
+
* menu sees, before it starts picking (UIMenu's scrub handoff).
|
|
27
|
+
*/
|
|
28
|
+
export const MENU_PRESS_HANDOFF_PX = UIKIT_MENU_PRESS_HANDOFF_PX;
|
|
29
|
+
|
|
30
|
+
/** @internal The machine's own shape, with the finger's handoff; not public contract. */
|
|
31
|
+
|
|
32
|
+
/** @internal The machine's own shape, with the finger's handoff; not public contract. */
|
|
33
|
+
|
|
34
|
+
/** @internal The machine's own shape, with the finger's handoff; not public contract. */
|
|
35
|
+
|
|
36
|
+
/** @internal The machine's own shape, with the finger's handoff; not public contract. */
|
|
37
|
+
|
|
18
38
|
export const IDLE_MENU_PRESS = {
|
|
19
39
|
phase: 'idle'
|
|
20
40
|
};
|
|
@@ -38,6 +58,23 @@ function highlightEffect(row) {
|
|
|
38
58
|
};
|
|
39
59
|
}
|
|
40
60
|
|
|
61
|
+
/** A finger or a pen: UIKit's touch rules apply. */
|
|
62
|
+
function isFinger(pointerType) {
|
|
63
|
+
return pointerType !== 'mouse';
|
|
64
|
+
}
|
|
65
|
+
function hasPosition(event) {
|
|
66
|
+
return event.x != null && event.y != null;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Whether a finger has travelled the handoff distance from `from`. The
|
|
71
|
+
* distance is a straight line, as UIMenu measures it: a diagonal 7 pt each
|
|
72
|
+
* way does not hand off, 9 pt each way does.
|
|
73
|
+
*/
|
|
74
|
+
function hasPassedHandoff(from, to) {
|
|
75
|
+
return Math.hypot(to.x - from.x, to.y - from.y) >= MENU_PRESS_HANDOFF_PX;
|
|
76
|
+
}
|
|
77
|
+
|
|
41
78
|
/**
|
|
42
79
|
* Resolve a release while the highlight is tracking the pointer: over an
|
|
43
80
|
* enabled row it acts, over the menu's chrome it acts on nothing, outside the
|
|
@@ -73,10 +110,15 @@ function release(pointerType, event) {
|
|
|
73
110
|
* - `idle`: no gesture is live.
|
|
74
111
|
* - `triggerPress`: a finger rests on the trigger, and the menu is not open
|
|
75
112
|
* yet. A mouse press on the trigger skips this state and opens at once.
|
|
76
|
-
* - `open`: the menu opened under a held pointer, and the pointer
|
|
77
|
-
*
|
|
113
|
+
* - `open`: the menu opened under a held pointer, and the pointer does not
|
|
114
|
+
* pick yet.
|
|
78
115
|
* - `tracking`: the pointer is held, and the highlight follows it.
|
|
79
116
|
*
|
|
117
|
+
* A finger or a pen that opened the menu picks only after it travels
|
|
118
|
+
* `MENU_PRESS_HANDOFF_PX` from the first position the menu sees. UIMenu
|
|
119
|
+
* hands off the same way. Until then nothing lights, and its lift acts on
|
|
120
|
+
* nothing. A host that reports no positions keeps the settle rule.
|
|
121
|
+
*
|
|
80
122
|
* The settle rule: the release of the opening gesture acts only after the
|
|
81
123
|
* pointer entered the menu or the press lasted `MENU_PRESS_SETTLE_MS`. Else a
|
|
82
124
|
* menu that opens under the pointer would pick a row that nobody chose.
|
|
@@ -84,8 +126,11 @@ function release(pointerType, event) {
|
|
|
84
126
|
* Rows are opaque (`T`). The hook feeds in the enabled row under the
|
|
85
127
|
* pointer, or `null` over a divider, a heading, a disabled row, or outside
|
|
86
128
|
* the menu.
|
|
129
|
+
*
|
|
130
|
+
* @internal The machine's own shape, with the finger's handoff; not public
|
|
131
|
+
* contract.
|
|
87
132
|
*/
|
|
88
|
-
export function
|
|
133
|
+
export function menuPressTransition(gesture, event) {
|
|
89
134
|
switch (gesture.phase) {
|
|
90
135
|
case 'idle':
|
|
91
136
|
return stepIdle(gesture, event);
|
|
@@ -176,23 +221,67 @@ function stepTriggerPress(gesture, event) {
|
|
|
176
221
|
function stepOpen(gesture, event) {
|
|
177
222
|
switch (event.type) {
|
|
178
223
|
case 'move':
|
|
179
|
-
|
|
224
|
+
{
|
|
225
|
+
if (isFinger(gesture.pointerType) && hasPosition(event)) {
|
|
226
|
+
// UIMenu counts from the first sample after the open, not from the
|
|
227
|
+
// open point.
|
|
228
|
+
const from = gesture.handoffFrom;
|
|
229
|
+
if (from == null) {
|
|
230
|
+
return {
|
|
231
|
+
gesture: {
|
|
232
|
+
...gesture,
|
|
233
|
+
handoffFrom: {
|
|
234
|
+
x: event.x,
|
|
235
|
+
y: event.y
|
|
236
|
+
}
|
|
237
|
+
},
|
|
238
|
+
effect: NONE
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
if (!hasPassedHandoff(from, event)) {
|
|
242
|
+
return {
|
|
243
|
+
gesture,
|
|
244
|
+
effect: NONE
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
return {
|
|
248
|
+
gesture: {
|
|
249
|
+
phase: 'tracking',
|
|
250
|
+
pointerType: gesture.pointerType,
|
|
251
|
+
origin: 'trigger',
|
|
252
|
+
row: event.row
|
|
253
|
+
},
|
|
254
|
+
effect: highlightEffect(event.row)
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
if (!event.isInMenu) {
|
|
258
|
+
return {
|
|
259
|
+
gesture,
|
|
260
|
+
effect: NONE
|
|
261
|
+
};
|
|
262
|
+
}
|
|
180
263
|
return {
|
|
181
|
-
gesture
|
|
182
|
-
|
|
264
|
+
gesture: {
|
|
265
|
+
phase: 'tracking',
|
|
266
|
+
pointerType: gesture.pointerType,
|
|
267
|
+
origin: 'trigger',
|
|
268
|
+
row: event.row
|
|
269
|
+
},
|
|
270
|
+
effect: highlightEffect(event.row)
|
|
183
271
|
};
|
|
184
272
|
}
|
|
185
|
-
return {
|
|
186
|
-
gesture: {
|
|
187
|
-
phase: 'tracking',
|
|
188
|
-
pointerType: gesture.pointerType,
|
|
189
|
-
origin: 'trigger',
|
|
190
|
-
row: event.row
|
|
191
|
-
},
|
|
192
|
-
effect: highlightEffect(event.row)
|
|
193
|
-
};
|
|
194
273
|
case 'up':
|
|
195
274
|
{
|
|
275
|
+
if (isFinger(gesture.pointerType) && hasPosition(event)) {
|
|
276
|
+
// The finger never travelled the handoff distance, so the row under it
|
|
277
|
+
// appeared under a press nobody moved. Nothing acts, the menu stays,
|
|
278
|
+
// and the trigger's click for this press is spent.
|
|
279
|
+
return idle({
|
|
280
|
+
type: 'settle',
|
|
281
|
+
stray: true,
|
|
282
|
+
dismiss: false
|
|
283
|
+
});
|
|
284
|
+
}
|
|
196
285
|
const hasSettled = event.time - gesture.openedAt >= MENU_PRESS_SETTLE_MS;
|
|
197
286
|
if (!hasSettled) {
|
|
198
287
|
// The pointer never entered the menu and the press was short: the
|
|
@@ -208,7 +297,7 @@ function stepOpen(gesture, event) {
|
|
|
208
297
|
}
|
|
209
298
|
case 'cancel':
|
|
210
299
|
// As above: the gesture ends, so its document listeners come off. The
|
|
211
|
-
// menu stays open
|
|
300
|
+
// menu stays open: a cancelled pointer did not ask to close it.
|
|
212
301
|
return idle({
|
|
213
302
|
type: 'settle',
|
|
214
303
|
stray: false,
|
|
@@ -225,21 +314,19 @@ function stepOpen(gesture, event) {
|
|
|
225
314
|
function stepTracking(gesture, event) {
|
|
226
315
|
switch (event.type) {
|
|
227
316
|
case 'move':
|
|
228
|
-
{
|
|
229
|
-
if (event.row === gesture.row) {
|
|
230
|
-
return {
|
|
231
|
-
gesture,
|
|
232
|
-
effect: NONE
|
|
233
|
-
};
|
|
234
|
-
}
|
|
317
|
+
if (event.row === gesture.row) {
|
|
235
318
|
return {
|
|
236
|
-
gesture
|
|
237
|
-
|
|
238
|
-
row: event.row
|
|
239
|
-
},
|
|
240
|
-
effect: highlightEffect(event.row)
|
|
319
|
+
gesture,
|
|
320
|
+
effect: NONE
|
|
241
321
|
};
|
|
242
322
|
}
|
|
323
|
+
return {
|
|
324
|
+
gesture: {
|
|
325
|
+
...gesture,
|
|
326
|
+
row: event.row
|
|
327
|
+
},
|
|
328
|
+
effect: highlightEffect(event.row)
|
|
329
|
+
};
|
|
243
330
|
case 'up':
|
|
244
331
|
return release(gesture.pointerType, event);
|
|
245
332
|
case 'cancel':
|
|
@@ -257,4 +344,42 @@ function stepTracking(gesture, event) {
|
|
|
257
344
|
effect: NONE
|
|
258
345
|
};
|
|
259
346
|
}
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
// ---------------------------------------------------------------------------
|
|
350
|
+
// The released public shape (`@astryxdesign/core/hooks`). The handoff
|
|
351
|
+
// positions and `handoffFrom` stay internal: a caller of
|
|
352
|
+
// `menuPressStep` keeps the settle rule, as released.
|
|
353
|
+
// ---------------------------------------------------------------------------
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* The menu press machine, as released: one step from a gesture and an event
|
|
357
|
+
* to the next gesture and the effect to apply. Pure.
|
|
358
|
+
*/
|
|
359
|
+
export function menuPressStep(gesture, event) {
|
|
360
|
+
// The released machine keeps the settle rule. Positions start the handoff,
|
|
361
|
+
// so a caller's event reaches the transition without them.
|
|
362
|
+
const {
|
|
363
|
+
x: _x,
|
|
364
|
+
y: _y,
|
|
365
|
+
...released
|
|
366
|
+
} = event;
|
|
367
|
+
const {
|
|
368
|
+
gesture: next,
|
|
369
|
+
effect
|
|
370
|
+
} = menuPressTransition(gesture, released);
|
|
371
|
+
return {
|
|
372
|
+
gesture: publicGesture(next),
|
|
373
|
+
effect
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
function publicGesture(gesture) {
|
|
377
|
+
if (gesture.phase !== 'open') {
|
|
378
|
+
return gesture;
|
|
379
|
+
}
|
|
380
|
+
return {
|
|
381
|
+
phase: 'open',
|
|
382
|
+
pointerType: gesture.pointerType,
|
|
383
|
+
openedAt: gesture.openedAt
|
|
384
|
+
};
|
|
260
385
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file menuPressValues.ts
|
|
3
|
+
* @input None
|
|
4
|
+
* @output The UIKit value the menu press model reads
|
|
5
|
+
* @position A copy of one UIKit table entry, motion/uikit gestures.ts
|
|
6
|
+
* `UIKIT_MENU_PRESS.handoff`. A menu then bundles this number, not the
|
|
7
|
+
* table with its measurement records. The table stays the source and
|
|
8
|
+
* documents the measurement. menuPressValues.test.ts fails when the copy
|
|
9
|
+
* drifts.
|
|
10
|
+
*
|
|
11
|
+
* SYNC: When modified, update:
|
|
12
|
+
* - /packages/core/src/motion/uikit/gestures.ts
|
|
13
|
+
*/
|
|
14
|
+
/** How far the opening finger travels after the menu opens before it picks. */
|
|
15
|
+
export declare const MENU_PRESS_HANDOFF_PX = 10;
|
|
16
|
+
//# sourceMappingURL=menuPressValues.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menuPressValues.d.ts","sourceRoot":"","sources":["../../src/hooks/menuPressValues.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,KAAK,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file menuPressValues.ts
|
|
5
|
+
* @input None
|
|
6
|
+
* @output The UIKit value the menu press model reads
|
|
7
|
+
* @position A copy of one UIKit table entry, motion/uikit gestures.ts
|
|
8
|
+
* `UIKIT_MENU_PRESS.handoff`. A menu then bundles this number, not the
|
|
9
|
+
* table with its measurement records. The table stays the source and
|
|
10
|
+
* documents the measurement. menuPressValues.test.ts fails when the copy
|
|
11
|
+
* drifts.
|
|
12
|
+
*
|
|
13
|
+
* SYNC: When modified, update:
|
|
14
|
+
* - /packages/core/src/motion/uikit/gestures.ts
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/** How far the opening finger travels after the menu opens before it picks. */
|
|
18
|
+
export const MENU_PRESS_HANDOFF_PX = 10;
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file useClickableContainer.ts
|
|
3
3
|
* @input Container ref, interactive element ref, click/href handlers
|
|
4
|
-
* @output onClick and
|
|
5
|
-
* hasInteractiveAncestor and the shared
|
|
4
|
+
* @output onClick, onMouseUp and onPointerDown handlers for the container;
|
|
5
|
+
* INTERACTIVE_SELECTORS list; hasInteractiveAncestor and the shared
|
|
6
|
+
* innermostInteractive walk; the internal useClickableContainerProxy, the
|
|
7
|
+
* handlers without the marker
|
|
6
8
|
* @position Core hook for clickable containers with nested interactive
|
|
7
9
|
* elements. A click on a nested button or link does not run the card's
|
|
8
|
-
* action
|
|
10
|
+
* action, and a finger press there shows no press on the card. Each navigation
|
|
11
|
+
* passes the rule in utils/safeUrl.ts first.
|
|
9
12
|
*
|
|
10
13
|
* SYNC: When modified, update:
|
|
11
14
|
* - /packages/core/src/hooks/index.ts (export)
|
|
12
15
|
*/
|
|
13
|
-
import { type RefObject, type MouseEvent } from 'react';
|
|
16
|
+
import { type RefObject, type MouseEvent, type PointerEvent } from 'react';
|
|
14
17
|
/**
|
|
15
18
|
* The attribute this hook sets on the container it makes clickable. A click
|
|
16
19
|
* inside a nested marked container belongs to that container (see
|
|
@@ -57,6 +60,14 @@ export declare function innermostInteractive(el: Element, rootEl: Element | null
|
|
|
57
60
|
* belongs to that surface, not the container around its trigger.
|
|
58
61
|
*/
|
|
59
62
|
export declare function hasInteractiveAncestor(el: Element, rootEl: Element): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* The touch half of a container's press rule: a finger press that starts on a nested interactive element
|
|
65
|
+
* other than the container's own action does not activate the container, so
|
|
66
|
+
* it ends the press controller's paint on `container`. A mouse or pen press,
|
|
67
|
+
* and a press on the container's surface or on `ownAction`, are left alone.
|
|
68
|
+
* Not part of the package's public API.
|
|
69
|
+
*/
|
|
70
|
+
export declare function cancelNestedTouchPress(event: PointerEvent<HTMLElement>, container: HTMLElement | null, ownAction: Element | null): void;
|
|
60
71
|
/**
|
|
61
72
|
* Check if there's a text selection inside the node (don't navigate on text select)
|
|
62
73
|
*
|
|
@@ -87,6 +98,14 @@ export interface UseClickableContainerOptions {
|
|
|
87
98
|
export interface ClickableContainerResult {
|
|
88
99
|
onClick: (event: MouseEvent<HTMLElement>) => void;
|
|
89
100
|
onMouseUp: (event: MouseEvent<HTMLElement>) => void;
|
|
101
|
+
/**
|
|
102
|
+
* Spread on the container with `onClick`. A press that starts on a nested
|
|
103
|
+
* interactive element does not activate the container. On a container that
|
|
104
|
+
* paints its press with `usePressFeedback`, this drops that touch press.
|
|
105
|
+
* A mouse `:active` press paint is unchanged. A container without it keeps
|
|
106
|
+
* its activation rule and shows its pressed state for every press.
|
|
107
|
+
*/
|
|
108
|
+
onPointerDown: (event: PointerEvent<HTMLElement>) => void;
|
|
90
109
|
}
|
|
91
110
|
/**
|
|
92
111
|
* Hook that makes a container element clickable while preserving
|
|
@@ -103,17 +122,27 @@ export interface ClickableContainerResult {
|
|
|
103
122
|
* @example
|
|
104
123
|
* ```
|
|
105
124
|
* const containerRef = useRef<HTMLDivElement>(null);
|
|
106
|
-
* const { onClick, onMouseUp } = useClickableContainer({
|
|
125
|
+
* const { onClick, onMouseUp, onPointerDown } = useClickableContainer({
|
|
107
126
|
* containerRef,
|
|
108
127
|
* onClick: () => console.log('card clicked'),
|
|
109
128
|
* });
|
|
110
129
|
* return (
|
|
111
|
-
* <div
|
|
130
|
+
* <div
|
|
131
|
+
* ref={containerRef}
|
|
132
|
+
* onClick={onClick}
|
|
133
|
+
* onMouseUp={onMouseUp}
|
|
134
|
+
* onPointerDown={onPointerDown}>
|
|
112
135
|
* <p>Click anywhere on this card</p>
|
|
113
136
|
* <button onClick={() => alert('button')}>Nested button</button>
|
|
114
137
|
* </div>
|
|
115
138
|
* );
|
|
116
139
|
* ```
|
|
117
140
|
*/
|
|
118
|
-
export declare function useClickableContainer(
|
|
141
|
+
export declare function useClickableContainer(options: UseClickableContainerOptions): ClickableContainerResult;
|
|
142
|
+
/**
|
|
143
|
+
* `useClickableContainer`'s click handlers, without its marker. Internal: Item
|
|
144
|
+
* serves its delegate and List link rows from one call, and renders the marker
|
|
145
|
+
* on a delegate row itself.
|
|
146
|
+
*/
|
|
147
|
+
export declare function useClickableContainerProxy({ containerRef, interactiveRef, onClick: onClickProp, href, target, disabled, }: UseClickableContainerOptions): ClickableContainerResult;
|
|
119
148
|
//# sourceMappingURL=useClickableContainer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useClickableContainer.d.ts","sourceRoot":"","sources":["../../src/hooks/useClickableContainer.ts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"useClickableContainer.d.ts","sourceRoot":"","sources":["../../src/hooks/useClickableContainer.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EAClB,MAAM,OAAO,CAAC;AAKf;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,6BAA6B,CAAC;AAExE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,QAmBvB,CAAC;AAIZ;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAKrE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,OAAO,EACX,MAAM,EAAE,OAAO,GAAG,IAAI,EACtB,aAAa,GAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAqC,GACzE,OAAO,GAAG,IAAI,CAShB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAE5E;AASD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,YAAY,CAAC,WAAW,CAAC,EAChC,SAAS,EAAE,WAAW,GAAG,IAAI,EAC7B,SAAS,EAAE,OAAO,GAAG,IAAI,GACxB,IAAI,CAeN;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CASvD;AAED,MAAM,WAAW,4BAA4B;IAC3C,yCAAyC;IACzC,YAAY,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC5C,mEAAmE;IACnE,cAAc,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC/C,oBAAoB;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACnD;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAClD,SAAS,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACpD;;;;;;OAMG;IACH,aAAa,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CAC3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,4BAA4B,GACpC,wBAAwB,CAU1B;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,YAAY,EACZ,cAAc,EACd,OAAO,EAAE,WAAW,EACpB,IAAI,EACJ,MAAM,EACN,QAAgB,GACjB,EAAE,4BAA4B,GAAG,wBAAwB,CAwHzD"}
|
|
@@ -5,11 +5,14 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* @file useClickableContainer.ts
|
|
7
7
|
* @input Container ref, interactive element ref, click/href handlers
|
|
8
|
-
* @output onClick and
|
|
9
|
-
* hasInteractiveAncestor and the shared
|
|
8
|
+
* @output onClick, onMouseUp and onPointerDown handlers for the container;
|
|
9
|
+
* INTERACTIVE_SELECTORS list; hasInteractiveAncestor and the shared
|
|
10
|
+
* innermostInteractive walk; the internal useClickableContainerProxy, the
|
|
11
|
+
* handlers without the marker
|
|
10
12
|
* @position Core hook for clickable containers with nested interactive
|
|
11
13
|
* elements. A click on a nested button or link does not run the card's
|
|
12
|
-
* action
|
|
14
|
+
* action, and a finger press there shows no press on the card. Each navigation
|
|
15
|
+
* passes the rule in utils/safeUrl.ts first.
|
|
13
16
|
*
|
|
14
17
|
* SYNC: When modified, update:
|
|
15
18
|
* - /packages/core/src/hooks/index.ts (export)
|
|
@@ -17,6 +20,7 @@
|
|
|
17
20
|
import { useCallback, useEffect } from 'react';
|
|
18
21
|
import { isLayerSurface } from "../Layer/layerSurfacePress.js";
|
|
19
22
|
import { isSafeUrl } from "../utils/safeUrl.js";
|
|
23
|
+
import { cancelPress } from "../utils/pressFeedback.js";
|
|
20
24
|
|
|
21
25
|
/**
|
|
22
26
|
* The attribute this hook sets on the container it makes clickable. A click
|
|
@@ -90,6 +94,24 @@ function belongsToSomethingElse(element) {
|
|
|
90
94
|
return matchesInteractiveSelectors(element) || isLayerSurface(element);
|
|
91
95
|
}
|
|
92
96
|
|
|
97
|
+
/**
|
|
98
|
+
* The touch half of a container's press rule: a finger press that starts on a nested interactive element
|
|
99
|
+
* other than the container's own action does not activate the container, so
|
|
100
|
+
* it ends the press controller's paint on `container`. A mouse or pen press,
|
|
101
|
+
* and a press on the container's surface or on `ownAction`, are left alone.
|
|
102
|
+
* Not part of the package's public API.
|
|
103
|
+
*/
|
|
104
|
+
export function cancelNestedTouchPress(event, container, ownAction) {
|
|
105
|
+
const target = event.target;
|
|
106
|
+
if (event.pointerType !== 'touch' || container == null || !(target instanceof Element) || target === event.currentTarget || !hasInteractiveAncestor(target, container) ||
|
|
107
|
+
// The container's own action, such as the control it delegates to: a
|
|
108
|
+
// press on it activates the container.
|
|
109
|
+
ownAction?.contains(target) === true) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
cancelPress(container);
|
|
113
|
+
}
|
|
114
|
+
|
|
93
115
|
/**
|
|
94
116
|
* Check if there's a text selection inside the node (don't navigate on text select)
|
|
95
117
|
*
|
|
@@ -123,26 +145,26 @@ export function hasTextSelection(node) {
|
|
|
123
145
|
* @example
|
|
124
146
|
* ```
|
|
125
147
|
* const containerRef = useRef<HTMLDivElement>(null);
|
|
126
|
-
* const { onClick, onMouseUp } = useClickableContainer({
|
|
148
|
+
* const { onClick, onMouseUp, onPointerDown } = useClickableContainer({
|
|
127
149
|
* containerRef,
|
|
128
150
|
* onClick: () => console.log('card clicked'),
|
|
129
151
|
* });
|
|
130
152
|
* return (
|
|
131
|
-
* <div
|
|
153
|
+
* <div
|
|
154
|
+
* ref={containerRef}
|
|
155
|
+
* onClick={onClick}
|
|
156
|
+
* onMouseUp={onMouseUp}
|
|
157
|
+
* onPointerDown={onPointerDown}>
|
|
132
158
|
* <p>Click anywhere on this card</p>
|
|
133
159
|
* <button onClick={() => alert('button')}>Nested button</button>
|
|
134
160
|
* </div>
|
|
135
161
|
* );
|
|
136
162
|
* ```
|
|
137
163
|
*/
|
|
138
|
-
export function useClickableContainer({
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
href,
|
|
143
|
-
target,
|
|
144
|
-
disabled = false
|
|
145
|
-
}) {
|
|
164
|
+
export function useClickableContainer(options) {
|
|
165
|
+
const {
|
|
166
|
+
containerRef
|
|
167
|
+
} = options;
|
|
146
168
|
// Mark container as pressable for the interactive selector check
|
|
147
169
|
useEffect(() => {
|
|
148
170
|
const el = containerRef.current;
|
|
@@ -150,6 +172,22 @@ export function useClickableContainer({
|
|
|
150
172
|
el.setAttribute(PRESSABLE_CONTAINER_ATTRIBUTE, 'true');
|
|
151
173
|
}
|
|
152
174
|
}, [containerRef]);
|
|
175
|
+
return useClickableContainerProxy(options);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* `useClickableContainer`'s click handlers, without its marker. Internal: Item
|
|
180
|
+
* serves its delegate and List link rows from one call, and renders the marker
|
|
181
|
+
* on a delegate row itself.
|
|
182
|
+
*/
|
|
183
|
+
export function useClickableContainerProxy({
|
|
184
|
+
containerRef,
|
|
185
|
+
interactiveRef,
|
|
186
|
+
onClick: onClickProp,
|
|
187
|
+
href,
|
|
188
|
+
target,
|
|
189
|
+
disabled = false
|
|
190
|
+
}) {
|
|
153
191
|
const onClick = useCallback(event => {
|
|
154
192
|
if (disabled) {
|
|
155
193
|
return;
|
|
@@ -226,8 +264,19 @@ export function useClickableContainer({
|
|
|
226
264
|
window.open(href, '_blank', 'noopener');
|
|
227
265
|
}
|
|
228
266
|
}, [containerRef, href, disabled]);
|
|
267
|
+
|
|
268
|
+
// The press-state counterpart of onClick's rule, for touch: a finger press
|
|
269
|
+
// that would not activate the container shows no press on it. A mouse or
|
|
270
|
+
// pen press keeps its `:active` paint.
|
|
271
|
+
const onPointerDown = useCallback(event => {
|
|
272
|
+
if (disabled) {
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
cancelNestedTouchPress(event, containerRef.current, interactiveRef?.current ?? null);
|
|
276
|
+
}, [containerRef, interactiveRef, disabled]);
|
|
229
277
|
return {
|
|
230
278
|
onClick,
|
|
231
|
-
onMouseUp
|
|
279
|
+
onMouseUp,
|
|
280
|
+
onPointerDown
|
|
232
281
|
};
|
|
233
282
|
}
|
|
@@ -24,6 +24,16 @@ export declare function useFocusTrapEscapeCompatibilitySignal(isActive: boolean)
|
|
|
24
24
|
* the trap does. Not re-exported from the package's `hooks` entry.
|
|
25
25
|
*/
|
|
26
26
|
export declare function getFocusableElements(container: HTMLElement): HTMLElement[];
|
|
27
|
+
/**
|
|
28
|
+
* Tab containment for a focus region: Tab and Shift+Tab pressed inside wrap at
|
|
29
|
+
* either end, and a Tab that starts outside is left to the page. When regions
|
|
30
|
+
* nest, the innermost one holding focus answers.
|
|
31
|
+
*
|
|
32
|
+
* `useFocusTrap` composes this. Dialog, BottomSheet and Lightbox call it
|
|
33
|
+
* directly, because their native lifecycle already owns focus entry and
|
|
34
|
+
* return. Internal: not re-exported from `hooks`.
|
|
35
|
+
*/
|
|
36
|
+
export declare function useFocusRegionContainment(containerRef: React.RefObject<HTMLElement | null>, isActive: boolean): void;
|
|
27
37
|
/**
|
|
28
38
|
* Configuration for focus trap behavior
|
|
29
39
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFocusTrap.d.ts","sourceRoot":"","sources":["../../src/hooks/useFocusTrap.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useFocusTrap.d.ts","sourceRoot":"","sources":["../../src/hooks/useFocusTrap.ts"],"names":[],"mappings":"AAgCA;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,IAAI,OAAO,CAElD;AAED;;;;;;GAMG;AACH,wBAAgB,qCAAqC,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAY7E;AAwDD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,WAAW,GAAG,WAAW,EAAE,CAI1E;AA8GD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EACjD,QAAQ,EAAE,OAAO,GAChB,IAAI,CAgLN;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW;IACrE;;OAEG;IACH,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAExC;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAC9D,OAAO,EAAE,mBAAmB,GAC3B,kBAAkB,CAAC,CAAC,CAAC,CAEvB;AAED;;GAEG;AACH,UAAU,wBAAyB,SAAQ,mBAAmB;IAC5D;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;CAC7C;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EACtE,OAAO,EAAE,wBAAwB,GAChC,kBAAkB,CAAC,CAAC,CAAC,CAwHvB"}
|