@astryxdesign/core 0.7.7 → 0.7.8-canary.0588a13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AlertDialog/AlertDialog.d.ts +4 -1
- package/dist/AlertDialog/AlertDialog.d.ts.map +1 -1
- package/dist/AlertDialog/AlertDialog.js +46 -6
- package/dist/AppShell/AppShell.d.ts.map +1 -1
- package/dist/AppShell/AppShell.js +11 -3
- package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheet.js +1 -0
- package/dist/BottomSheet/BottomSheetPanel.d.ts +1 -1
- package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetPanel.js +55 -18
- package/dist/BottomSheet/BottomSheetSwitcher.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetSwitcher.js +5 -0
- package/dist/BottomSheet/bottomSheetStack.js +1 -1
- package/dist/BottomSheet/useSheetGestures.d.ts +3 -1
- package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
- package/dist/BottomSheet/useSheetGestures.js +16 -1
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/Button/Button.js +17 -1
- package/dist/Calendar/Calendar.d.ts.map +1 -1
- package/dist/Calendar/Calendar.js +18 -22
- package/dist/Calendar/getWeekdayHeaderNames.d.ts +16 -0
- package/dist/Calendar/getWeekdayHeaderNames.d.ts.map +1 -0
- package/dist/Calendar/getWeekdayHeaderNames.js +70 -0
- package/dist/Calendar/hooks/useCalendarDays.d.ts.map +1 -1
- package/dist/Calendar/hooks/useCalendarDays.js +2 -10
- package/dist/Calendar/{standaloneShortWeekdayNames.generated.d.ts → weekdayHeaderNames.generated.d.ts} +14 -14
- package/dist/Calendar/weekdayHeaderNames.generated.d.ts.map +1 -0
- package/dist/Calendar/{standaloneShortWeekdayNames.generated.js → weekdayHeaderNames.generated.js} +12 -12
- package/dist/Carousel/Carousel.d.ts.map +1 -1
- package/dist/Carousel/Carousel.js +2 -0
- package/dist/Chat/ChatComposerInput.d.ts.map +1 -1
- package/dist/Chat/ChatComposerInput.js +6 -1
- package/dist/Chat/ChatMessageList.d.ts.map +1 -1
- package/dist/Chat/ChatMessageList.js +2 -1
- package/dist/Chat/useChatDictation.d.ts.map +1 -1
- package/dist/Chat/useChatDictation.js +2 -0
- package/dist/Chat/useChatNewMessages.js +1 -1
- package/dist/Chat/useChatStreamScroll.d.ts.map +1 -1
- package/dist/Chat/useChatStreamScroll.js +2 -0
- package/dist/Chat/useSpeechRecognition.d.ts.map +1 -1
- package/dist/Chat/useSpeechRecognition.js +3 -0
- package/dist/Chat/useTriggerMenu.js +1 -1
- package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +17 -12
- package/dist/CheckboxList/CheckboxList.d.ts +20 -2
- package/dist/CheckboxList/CheckboxList.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxList.js +12 -4
- package/dist/CheckboxList/CheckboxListContext.d.ts +7 -0
- package/dist/CheckboxList/CheckboxListContext.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListContext.js +2 -1
- package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListItem.js +14 -2
- package/dist/CheckboxList/requiredGroup.d.ts +22 -0
- package/dist/CheckboxList/requiredGroup.d.ts.map +1 -0
- package/dist/CheckboxList/requiredGroup.js +52 -0
- package/dist/CodeBlock/CodeBlock.d.ts +10 -1
- package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
- package/dist/CodeBlock/CodeBlock.js +28 -11
- package/dist/CommandPalette/CommandPalette.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPalette.js +2 -0
- package/dist/CommandPalette/CommandPaletteItem.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPaletteItem.js +2 -0
- package/dist/ComplexSelector/ComplexSelector.d.ts +4 -1
- package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
- package/dist/ComplexSelector/ComplexSelector.js +14 -4
- package/dist/ContextMenu/ContextMenu.js +2 -2
- package/dist/DateInput/MonthScroller.d.ts.map +1 -1
- package/dist/DateInput/MonthScroller.js +5 -2
- package/dist/DateInput/PickerWheel.d.ts +19 -0
- package/dist/DateInput/PickerWheel.d.ts.map +1 -0
- package/dist/DateInput/PickerWheel.js +646 -0
- package/dist/DateInput/TouchDateField.d.ts.map +1 -1
- package/dist/DateInput/TouchDateField.js +9 -30
- package/dist/DateInput/Wheel.d.ts +18 -37
- package/dist/DateInput/Wheel.d.ts.map +1 -1
- package/dist/DateInput/Wheel.js +133 -120
- package/dist/DateInput/datePickerTouch.d.ts +13 -0
- package/dist/DateInput/datePickerTouch.d.ts.map +1 -0
- package/dist/DateInput/datePickerTouch.js +14 -0
- package/dist/DateInput/useOwnScrollGesture.d.ts +10 -0
- package/dist/DateInput/useOwnScrollGesture.d.ts.map +1 -1
- package/dist/DateInput/useOwnScrollGesture.js +16 -3
- package/dist/DateInput/usePointerDragScroll.d.ts.map +1 -1
- package/dist/DateInput/usePointerDragScroll.js +2 -0
- package/dist/DateInput/useScrollSettle.d.ts.map +1 -1
- package/dist/DateInput/useScrollSettle.js +3 -0
- package/dist/DateInput/useWheelListbox.d.ts +59 -0
- package/dist/DateInput/useWheelListbox.d.ts.map +1 -0
- package/dist/DateInput/useWheelListbox.js +88 -0
- package/dist/DateInput/wheelOptions.d.ts +94 -0
- package/dist/DateInput/wheelOptions.d.ts.map +1 -0
- package/dist/DateInput/wheelOptions.js +110 -0
- package/dist/DateInput/wheelPhysics.d.ts +127 -0
- package/dist/DateInput/wheelPhysics.d.ts.map +1 -0
- package/dist/DateInput/wheelPhysics.js +341 -0
- package/dist/DateInput/wheelStrip.d.ts +92 -0
- package/dist/DateInput/wheelStrip.d.ts.map +1 -0
- package/dist/DateInput/wheelStrip.js +258 -0
- package/dist/DateTimeInput/TouchDateTimeField.d.ts.map +1 -1
- package/dist/DateTimeInput/TouchDateTimeField.js +70 -127
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +9 -32
- package/dist/Drawer/useDrawerDialogPresence.d.ts.map +1 -1
- package/dist/Drawer/useDrawerDialogPresence.js +3 -0
- package/dist/DropdownMenu/useMenuOverflow.d.ts.map +1 -1
- package/dist/DropdownMenu/useMenuOverflow.js +5 -0
- package/dist/Field/Field.js +2 -2
- package/dist/FieldStatus/useFieldStatusAnnouncement.d.ts.map +1 -1
- package/dist/FieldStatus/useFieldStatusAnnouncement.js +1 -0
- package/dist/FormLayout/FormLayout.d.ts +5 -1
- package/dist/FormLayout/FormLayout.d.ts.map +1 -1
- package/dist/HoverCard/HoverCard.d.ts +6 -4
- package/dist/HoverCard/HoverCard.d.ts.map +1 -1
- package/dist/HoverCard/HoverCard.js +48 -3
- package/dist/HoverCard/useHoverCard.d.ts +5 -4
- package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
- package/dist/HoverCard/useHoverCard.js +26 -34
- package/dist/Icon/Icon.d.ts +5 -1
- package/dist/Icon/Icon.d.ts.map +1 -1
- package/dist/Icon/Icon.js +20 -3
- package/dist/InfoTip/InfoTip.d.ts +5 -5
- package/dist/InfoTip/InfoTip.d.ts.map +1 -1
- package/dist/InfoTip/InfoTip.js +58 -19
- package/dist/Item/useSwipeAction.d.ts.map +1 -1
- package/dist/Item/useSwipeAction.js +3 -0
- package/dist/Layer/modalOutlet.d.ts.map +1 -1
- package/dist/Layer/modalOutlet.js +2 -0
- package/dist/Layer/outsidePress.d.ts.map +1 -1
- package/dist/Layer/outsidePress.js +1 -0
- package/dist/Layer/useLayer.d.ts.map +1 -1
- package/dist/Layer/useLayer.js +4 -1
- package/dist/Layer/useLayerDismissal.d.ts.map +1 -1
- package/dist/Layer/useLayerDismissal.js +3 -0
- package/dist/Layer/useTouchTrigger.d.ts +13 -7
- package/dist/Layer/useTouchTrigger.d.ts.map +1 -1
- package/dist/Layer/useTouchTrigger.js +20 -6
- package/dist/Layout/index.d.ts +1 -1
- package/dist/Layout/index.d.ts.map +1 -1
- package/dist/Layout/index.js +1 -1
- package/dist/Layout/layoutReset.js +1 -1
- package/dist/Layout/overlayPaddingReset.stylex.d.ts +68 -0
- package/dist/Layout/overlayPaddingReset.stylex.d.ts.map +1 -0
- package/dist/Layout/overlayPaddingReset.stylex.js +72 -0
- package/dist/Layout/padding.stylex.d.ts +5 -129
- package/dist/Layout/padding.stylex.d.ts.map +1 -1
- package/dist/Layout/padding.stylex.js +9 -143
- package/dist/Layout/paddingStyles.stylex.d.ts +83 -0
- package/dist/Layout/paddingStyles.stylex.d.ts.map +1 -0
- package/dist/Layout/paddingStyles.stylex.js +99 -0
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +20 -1
- package/dist/MobileNav/MobileNav.d.ts +3 -2
- package/dist/MobileNav/MobileNav.d.ts.map +1 -1
- package/dist/MobileNav/MobileNav.js +10 -26
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +2 -1
- package/dist/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/NumberInput/NumberInput.js +2 -1
- package/dist/Outline/useOutlineFromDOM.d.ts.map +1 -1
- package/dist/Outline/useOutlineFromDOM.js +3 -0
- package/dist/Outline/useScrollSpy.d.ts.map +1 -1
- package/dist/Outline/useScrollSpy.js +3 -0
- package/dist/OverflowList/OverflowList.d.ts.map +1 -1
- package/dist/OverflowList/OverflowList.js +3 -0
- package/dist/Overlay/Overlay.d.ts.map +1 -1
- package/dist/Overlay/Overlay.js +7 -2
- package/dist/Popover/Popover.d.ts.map +1 -1
- package/dist/Popover/Popover.js +6 -0
- package/dist/Popover/usePopover.js +2 -2
- package/dist/PowerSearch/PowerSearch.d.ts +41 -4
- package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.js +441 -134
- package/dist/PowerSearch/PowerSearchBottomSheet.d.ts +125 -0
- package/dist/PowerSearch/PowerSearchBottomSheet.d.ts.map +1 -0
- package/dist/PowerSearch/PowerSearchBottomSheet.js +2041 -0
- package/dist/PowerSearch/PowerSearchEditPopover.d.ts +35 -2
- package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchEditPopover.js +43 -10
- package/dist/PowerSearch/PowerSearchFilterEditor.d.ts +1 -1
- package/dist/PowerSearch/PowerSearchFilterEditor.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchFilterEditor.js +4 -2
- package/dist/PowerSearch/PowerSearchToken.d.ts +1 -1
- package/dist/PowerSearch/PowerSearchToken.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchToken.js +3 -2
- package/dist/PowerSearch/PowerSearchValueEditor.d.ts +38 -3
- package/dist/PowerSearch/PowerSearchValueEditor.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchValueEditor.js +273 -86
- package/dist/PowerSearch/formatFilterValue.d.ts +14 -7
- package/dist/PowerSearch/formatFilterValue.d.ts.map +1 -1
- package/dist/PowerSearch/formatFilterValue.js +31 -23
- package/dist/PowerSearch/formatTokenValue.d.ts +28 -0
- package/dist/PowerSearch/formatTokenValue.d.ts.map +1 -0
- package/dist/PowerSearch/formatTokenValue.js +161 -0
- package/dist/PowerSearch/index.d.ts +1 -1
- package/dist/PowerSearch/index.d.ts.map +1 -1
- package/dist/PowerSearch/powerSearchDateZone.d.ts +25 -0
- package/dist/PowerSearch/powerSearchDateZone.d.ts.map +1 -0
- package/dist/PowerSearch/powerSearchDateZone.js +57 -0
- package/dist/PowerSearch/powerSearchSheetUtils.d.ts +65 -0
- package/dist/PowerSearch/powerSearchSheetUtils.d.ts.map +1 -0
- package/dist/PowerSearch/powerSearchSheetUtils.js +168 -0
- package/dist/PowerSearch/types.d.ts +8 -1
- package/dist/PowerSearch/types.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBarTouch.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBarTouch.js +2 -0
- package/dist/RadioList/RadioList.d.ts.map +1 -1
- package/dist/RadioList/RadioList.js +3 -2
- package/dist/RadioList/RadioListItem.d.ts +1 -1
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +5 -3
- package/dist/Resizable/ResizeHandle.d.ts +2 -1
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +116 -92
- package/dist/Resizable/createResizable.d.ts +199 -0
- package/dist/Resizable/createResizable.d.ts.map +1 -0
- package/dist/Resizable/createResizable.js +733 -0
- package/dist/Resizable/separatorAttributes.d.ts +45 -0
- package/dist/Resizable/separatorAttributes.d.ts.map +1 -0
- package/dist/Resizable/separatorAttributes.js +35 -0
- package/dist/Resizable/useResizable.d.ts +3 -3
- package/dist/Resizable/useResizable.d.ts.map +1 -1
- package/dist/Resizable/useResizable.js +252 -459
- package/dist/SegmentedControl/useSegmentedSelectionMotion.d.ts.map +1 -1
- package/dist/SegmentedControl/useSegmentedSelectionMotion.js +3 -3
- package/dist/SelectableCard/SelectableCard.d.ts +2 -0
- package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
- package/dist/SelectableCard/SelectableCard.js +36 -11
- package/dist/SelectableCard/selectableCardInput.d.ts +12 -0
- package/dist/SelectableCard/selectableCardInput.d.ts.map +1 -0
- package/dist/SelectableCard/selectableCardInput.js +20 -0
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +7 -9
- package/dist/SideNav/SideNav.d.ts.map +1 -1
- package/dist/SideNav/SideNav.js +36 -5
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +16 -11
- package/dist/Slider/sliderTouchController.js +2 -2
- package/dist/Spinner/Spinner.d.ts +1 -1
- package/dist/Spinner/Spinner.d.ts.map +1 -1
- package/dist/Spinner/Spinner.js +60 -58
- package/dist/Stepper/Stepper.d.ts.map +1 -1
- package/dist/Stepper/Stepper.js +10 -15
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +4 -10
- package/dist/Switch/useSwitchTouch.js +4 -4
- package/dist/Table/BaseTable.d.ts.map +1 -1
- package/dist/Table/BaseTable.js +29 -8
- package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
- package/dist/Table/plugins/columnResize/useTableColumnResize.js +3 -1
- package/dist/Table/plugins/filtering/useTableFiltering.d.ts.map +1 -1
- package/dist/Table/plugins/filtering/useTableFiltering.js +2 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +12 -0
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +17 -3
- package/dist/Table/plugins/stickyColumns/useTableStickyColumns.d.ts.map +1 -1
- package/dist/Table/plugins/stickyColumns/useTableStickyColumns.js +2 -0
- package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
- package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
- package/dist/Table/plugins/tree/useTableTreeData.js +27 -14
- package/dist/TextArea/TextArea.d.ts.map +1 -1
- package/dist/TextArea/TextArea.js +2 -1
- package/dist/TextInput/TextInput.d.ts +2 -2
- package/dist/TextInput/TextInput.d.ts.map +1 -1
- package/dist/TextInput/TextInput.js +12 -8
- package/dist/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/TimeInput/TimeInput.js +2 -0
- package/dist/TimeInput/TimeWheels.d.ts +32 -0
- package/dist/TimeInput/TimeWheels.d.ts.map +1 -0
- package/dist/TimeInput/TimeWheels.js +144 -0
- package/dist/TimeInput/TouchTimeField.d.ts.map +1 -1
- package/dist/TimeInput/TouchTimeField.js +63 -116
- package/dist/TimeInput/timeWheelRules.d.ts +124 -0
- package/dist/TimeInput/timeWheelRules.d.ts.map +1 -0
- package/dist/TimeInput/timeWheelRules.js +277 -0
- package/dist/Timer/Timer.d.ts.map +1 -1
- package/dist/Timer/Timer.js +2 -0
- package/dist/Timestamp/Timestamp.js +1 -1
- package/dist/Timestamp/formatInstant.d.ts.map +1 -1
- package/dist/Timestamp/formatInstant.js +1 -23
- package/dist/Toast/Toast.d.ts +11 -1
- package/dist/Toast/Toast.d.ts.map +1 -1
- package/dist/Toast/Toast.js +25 -15
- package/dist/Toast/ToastViewport.d.ts.map +1 -1
- package/dist/Toast/ToastViewport.js +97 -34
- package/dist/Toast/types.d.ts +9 -3
- package/dist/Toast/types.d.ts.map +1 -1
- package/dist/Toast/useToast.d.ts.map +1 -1
- package/dist/Toast/useToast.js +1 -0
- package/dist/Tokenizer/Tokenizer.d.ts +44 -46
- package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.js +20 -21
- package/dist/Tokenizer/TokenizerBottomSheet.d.ts +1 -1
- package/dist/Tokenizer/TokenizerBottomSheet.js +12 -18
- package/dist/Tokenizer/index.d.ts +1 -1
- package/dist/Tokenizer/index.d.ts.map +1 -1
- package/dist/Tooltip/Tooltip.d.ts +2 -23
- package/dist/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/Tooltip/Tooltip.js +5 -29
- package/dist/Tooltip/useTooltip.d.ts +23 -30
- package/dist/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.js +200 -108
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +27 -18
- package/dist/Typeahead/TypeaheadItem.d.ts +2 -1
- package/dist/Typeahead/TypeaheadItem.d.ts.map +1 -1
- package/dist/animator/createAnimator.d.ts +98 -0
- package/dist/animator/createAnimator.d.ts.map +1 -0
- package/dist/animator/createAnimator.js +259 -0
- package/dist/astryx.css +53 -8
- package/dist/gestures/GestureHost.d.ts +16 -1
- package/dist/gestures/GestureHost.d.ts.map +1 -1
- package/dist/gestures/GestureHost.js +4 -1
- package/dist/gestures/PressTracker.d.ts.map +1 -1
- package/dist/gestures/PressTracker.js +4 -3
- package/dist/hooks/ModalAnnounceProvider.d.ts.map +1 -1
- package/dist/hooks/ModalAnnounceProvider.js +1 -0
- package/dist/hooks/actionGroupTracker.d.ts +4 -1
- package/dist/hooks/actionGroupTracker.d.ts.map +1 -1
- package/dist/hooks/actionGroupTracker.js +18 -7
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/longPressDetector.d.ts +66 -0
- package/dist/hooks/longPressDetector.d.ts.map +1 -0
- package/dist/hooks/longPressDetector.js +200 -0
- package/dist/hooks/pressGroupContext.d.ts +6 -0
- package/dist/hooks/pressGroupContext.d.ts.map +1 -0
- package/dist/hooks/pressGroupContext.js +20 -0
- package/dist/hooks/rootScrollStyles.d.ts +48 -0
- package/dist/hooks/rootScrollStyles.d.ts.map +1 -0
- package/dist/hooks/rootScrollStyles.js +207 -0
- package/dist/hooks/scrollLockTouchGuard.d.ts +13 -0
- package/dist/hooks/scrollLockTouchGuard.d.ts.map +1 -0
- package/dist/hooks/scrollLockTouchGuard.js +117 -0
- package/dist/hooks/scrollbarGutter.d.ts +4 -4
- package/dist/hooks/scrollbarGutter.d.ts.map +1 -1
- package/dist/hooks/scrollbarGutter.js +36 -23
- package/dist/hooks/useActionGroupTracking.d.ts +53 -0
- package/dist/hooks/useActionGroupTracking.d.ts.map +1 -0
- package/dist/hooks/useActionGroupTracking.js +174 -0
- package/dist/hooks/useAnimator.d.ts +41 -0
- package/dist/hooks/useAnimator.d.ts.map +1 -0
- package/dist/hooks/useAnimator.js +70 -0
- package/dist/hooks/useAnnounceRenderedText.d.ts.map +1 -1
- package/dist/hooks/useAnnounceRenderedText.js +1 -0
- package/dist/hooks/useAttachment.d.ts +1 -1
- package/dist/hooks/useAttachment.js +1 -1
- package/dist/hooks/useAutoMediaMode.d.ts.map +1 -1
- package/dist/hooks/useAutoMediaMode.js +1 -0
- package/dist/hooks/useBusyAnnouncement.d.ts.map +1 -1
- package/dist/hooks/useBusyAnnouncement.js +2 -0
- package/dist/hooks/useDevWarning.d.ts.map +1 -1
- package/dist/hooks/useDevWarning.js +2 -0
- package/dist/hooks/useFocusTrap.d.ts.map +1 -1
- package/dist/hooks/useFocusTrap.js +2 -0
- package/dist/hooks/useGridFocus.d.ts +8 -5
- package/dist/hooks/useGridFocus.d.ts.map +1 -1
- package/dist/hooks/useGridFocus.js +4 -3
- package/dist/hooks/useHotkeys.d.ts.map +1 -1
- package/dist/hooks/useHotkeys.js +3 -0
- package/dist/hooks/useImageMode.d.ts.map +1 -1
- package/dist/hooks/useImageMode.js +3 -0
- package/dist/hooks/useInputStatusIcon.d.ts +1 -1
- package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
- package/dist/hooks/useInputStatusIcon.js +2 -2
- package/dist/hooks/useIsomorphicLayoutEffect.d.ts +2 -2
- package/dist/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -1
- package/dist/hooks/useKeyboardHint.js +1 -1
- package/dist/hooks/useLongPress.d.ts +8 -9
- package/dist/hooks/useLongPress.d.ts.map +1 -1
- package/dist/hooks/useLongPress.js +23 -106
- package/dist/hooks/useMenuHover.d.ts.map +1 -1
- package/dist/hooks/useMenuHover.js +2 -0
- package/dist/hooks/useMenuPress.d.ts.map +1 -1
- package/dist/hooks/useMenuPress.js +3 -0
- package/dist/hooks/useOverflow.d.ts.map +1 -1
- package/dist/hooks/useOverflow.js +2 -1
- package/dist/hooks/usePressFeedback.d.ts.map +1 -1
- package/dist/hooks/usePressFeedback.js +1 -0
- package/dist/hooks/useResolvedRequired.d.ts +3 -0
- package/dist/hooks/useResolvedRequired.d.ts.map +1 -1
- package/dist/hooks/useResolvedRequired.js +3 -0
- package/dist/hooks/useScrollLock.d.ts +8 -9
- package/dist/hooks/useScrollLock.d.ts.map +1 -1
- package/dist/hooks/useScrollLock.js +50 -48
- package/dist/hooks/useScrollableArea.d.ts.map +1 -1
- package/dist/hooks/useScrollableArea.js +5 -0
- package/dist/hooks/useStreamingText.d.ts.map +1 -1
- package/dist/hooks/useStreamingText.js +3 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.d.ts +8 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.d.ts.map +1 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.js +45 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.d.ts.map +1 -1
- package/dist/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.js +6 -0
- package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.d.ts +8 -0
- package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.d.ts.map +1 -0
- package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.js +14 -0
- package/dist/i18n/generated-english/Resizable/createResizable.generated.d.ts +8 -0
- package/dist/i18n/generated-english/Resizable/createResizable.generated.d.ts.map +1 -0
- package/dist/i18n/generated-english/Resizable/createResizable.generated.js +13 -0
- package/dist/i18n/generated-english/Table/plugins/rowExpansion/useTableRowExpansion.generated.d.ts.map +1 -1
- package/dist/i18n/generated-english/Table/plugins/rowExpansion/useTableRowExpansion.generated.js +3 -1
- package/dist/i18n/generated-english/Table/plugins/tree/useTableTreeData.generated.d.ts.map +1 -1
- package/dist/i18n/generated-english/Table/plugins/tree/useTableTreeData.generated.js +3 -1
- package/dist/i18n/generated-english/TimeInput/TimeWheels.generated.d.ts +8 -0
- package/dist/i18n/generated-english/TimeInput/TimeWheels.generated.d.ts.map +1 -0
- package/dist/i18n/generated-english/TimeInput/TimeWheels.generated.js +17 -0
- package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/en.generated.js +37 -0
- package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/pseudo.generated.js +37 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/internal/indicatorPress.stylex.d.ts +20 -0
- package/dist/internal/indicatorPress.stylex.d.ts.map +1 -0
- package/dist/internal/indicatorPress.stylex.js +26 -0
- package/dist/internal/selectable-card.d.ts +21 -0
- package/dist/internal/selectable-card.d.ts.map +1 -0
- package/dist/internal/selectable-card.js +20 -0
- package/dist/internal/sheetDraft.d.ts +2 -2
- package/dist/internal/sheetDraft.js +2 -2
- package/dist/keyboard/index.d.ts +17 -0
- package/dist/keyboard/index.d.ts.map +1 -0
- package/dist/keyboard/index.js +19 -0
- package/dist/keyboard/keyboardHeight.d.ts +149 -0
- package/dist/keyboard/keyboardHeight.d.ts.map +1 -0
- package/dist/keyboard/keyboardHeight.js +432 -0
- package/dist/keyboard/keyboardLayoutGuide.d.ts +59 -0
- package/dist/keyboard/keyboardLayoutGuide.d.ts.map +1 -0
- package/dist/keyboard/keyboardLayoutGuide.js +207 -0
- package/dist/keyboard/keyboardModel.d.ts +93 -0
- package/dist/keyboard/keyboardModel.d.ts.map +1 -0
- package/dist/keyboard/keyboardModel.js +220 -0
- package/dist/keyboard/rideKeyboard.d.ts +42 -0
- package/dist/keyboard/rideKeyboard.d.ts.map +1 -0
- package/dist/keyboard/rideKeyboard.js +77 -0
- package/dist/keyboard/useMobileKeyboard.d.ts +61 -0
- package/dist/keyboard/useMobileKeyboard.d.ts.map +1 -0
- package/dist/keyboard/useMobileKeyboard.js +699 -0
- package/dist/motion/android/index.d.ts +16 -0
- package/dist/motion/android/index.d.ts.map +1 -0
- package/dist/motion/android/index.js +18 -0
- package/dist/motion/android/keyboard.d.ts +83 -0
- package/dist/motion/android/keyboard.d.ts.map +1 -0
- package/dist/motion/android/keyboard.js +96 -0
- package/dist/motion/animatedLayout.d.ts +8 -0
- package/dist/motion/animatedLayout.d.ts.map +1 -1
- package/dist/motion/animatedLayout.js +246 -53
- package/dist/motion/animator.d.ts +14 -14
- package/dist/motion/animator.d.ts.map +1 -1
- package/dist/motion/animator.js +45 -26
- package/dist/motion/frameBlock.d.ts +14 -0
- package/dist/motion/frameBlock.d.ts.map +1 -0
- package/dist/motion/frameBlock.js +16 -0
- package/dist/motion/progress.d.ts +88 -0
- package/dist/motion/progress.d.ts.map +1 -0
- package/dist/motion/progress.js +128 -0
- package/dist/motion/reducedMotion.d.ts.map +1 -1
- package/dist/motion/reducedMotion.js +3 -1
- package/dist/motion/uikit/alert.d.ts +41 -0
- package/dist/motion/uikit/alert.d.ts.map +1 -0
- package/dist/motion/uikit/alert.js +43 -0
- package/dist/motion/uikit/datePicker.d.ts +58 -0
- package/dist/motion/uikit/datePicker.d.ts.map +1 -0
- package/dist/motion/uikit/datePicker.js +60 -0
- package/dist/motion/uikit/index.d.ts +6 -4
- package/dist/motion/uikit/index.d.ts.map +1 -1
- package/dist/motion/uikit/index.js +6 -4
- package/dist/motion/uikit/picker.d.ts +96 -0
- package/dist/motion/uikit/picker.d.ts.map +1 -0
- package/dist/motion/uikit/picker.js +117 -0
- package/dist/privateAttributes/pressGroupItem.stylex.d.ts +22 -0
- package/dist/privateAttributes/pressGroupItem.stylex.d.ts.map +1 -0
- package/dist/privateAttributes/pressGroupItem.stylex.js +36 -0
- package/dist/privateAttributes/reducedMotion.stylex.d.ts +23 -0
- package/dist/privateAttributes/reducedMotion.stylex.d.ts.map +1 -0
- package/dist/privateAttributes/reducedMotion.stylex.js +40 -0
- package/dist/theme/Theme.d.ts.map +1 -1
- package/dist/theme/Theme.js +29 -4
- package/dist/theme/generateThemeRules.d.ts.map +1 -1
- package/dist/theme/generateThemeRules.js +14 -13
- package/dist/theme/motionKnobs.d.ts +4 -3
- package/dist/theme/motionKnobs.d.ts.map +1 -1
- package/dist/theme/motionKnobs.js +3 -2
- package/dist/theme/themeMotion.d.ts +6 -0
- package/dist/theme/themeMotion.d.ts.map +1 -1
- package/dist/theme/themeMotion.js +15 -2
- package/dist/theme/tokens.stylex.d.ts +3 -0
- package/dist/theme/tokens.stylex.d.ts.map +1 -1
- package/dist/theme/tokens.stylex.js +4 -1
- package/dist/utils/dateParser.d.ts.map +1 -1
- package/dist/utils/dateParser.js +12 -0
- package/dist/utils/disabledInteraction.d.ts +10 -2
- package/dist/utils/disabledInteraction.d.ts.map +1 -1
- package/dist/utils/disabledInteraction.js +16 -2
- package/dist/utils/focusReturn.d.ts +22 -25
- package/dist/utils/focusReturn.d.ts.map +1 -1
- package/dist/utils/focusReturn.js +36 -29
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/interactionModality.d.ts.map +1 -1
- package/dist/utils/interactionModality.js +4 -0
- package/dist/utils/interactionOverlay.stylex.d.ts +6 -4
- package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
- package/dist/utils/interactionOverlay.stylex.js +6 -4
- package/dist/utils/isFocusDetached.d.ts +27 -0
- package/dist/utils/isFocusDetached.d.ts.map +1 -0
- package/dist/utils/isFocusDetached.js +32 -0
- package/dist/utils/layoutViewport.d.ts +25 -0
- package/dist/utils/layoutViewport.d.ts.map +1 -0
- package/dist/utils/layoutViewport.js +102 -0
- package/dist/utils/plainDate.d.ts +31 -0
- package/dist/utils/plainDate.d.ts.map +1 -1
- package/dist/utils/plainDate.js +68 -4
- package/dist/utils/pressFeedback.d.ts +6 -0
- package/dist/utils/pressFeedback.d.ts.map +1 -1
- package/dist/utils/pressFeedback.js +97 -18
- package/dist/utils/pressGesture.d.ts +4 -2
- package/dist/utils/pressGesture.d.ts.map +1 -1
- package/dist/utils/pressGesture.js +3 -1
- package/dist/utils/selectionLock.d.ts +10 -1
- package/dist/utils/selectionLock.d.ts.map +1 -1
- package/dist/utils/selectionLock.js +31 -5
- package/dist/utils/sharedMutationObserver.d.ts +2 -1
- package/dist/utils/sharedMutationObserver.d.ts.map +1 -1
- package/dist/utils/sharedMutationObserver.js +2 -1
- package/dist/utils/timeParser.d.ts +2 -1
- package/dist/utils/timeParser.d.ts.map +1 -1
- package/dist/utils/timeParser.js +29 -3
- package/dist/utils/triggerFocus.d.ts +36 -0
- package/dist/utils/triggerFocus.d.ts.map +1 -0
- package/dist/utils/triggerFocus.js +65 -0
- package/locales/en.json +148 -0
- package/locales/pseudo.json +111 -0
- package/package.json +14 -9
- package/src/AlertDialog/AlertDialog.doc.mjs +2 -2
- package/src/AlertDialog/AlertDialog.tsx +46 -5
- package/src/AppShell/AppShell.tsx +13 -4
- package/src/BottomSheet/BottomSheet.doc.mjs +1 -1
- package/src/BottomSheet/BottomSheet.tsx +1 -0
- package/src/BottomSheet/BottomSheetPanel.tsx +80 -16
- package/src/BottomSheet/BottomSheetSwitcher.doc.mjs +5 -0
- package/src/BottomSheet/BottomSheetSwitcher.tsx +5 -0
- package/src/BottomSheet/bottomSheetStack.ts +1 -1
- package/src/BottomSheet/useSheetGestures.ts +16 -1
- package/src/Button/Button.tsx +26 -4
- package/src/Calendar/Calendar.tsx +40 -32
- package/src/Calendar/getWeekdayHeaderNames.ts +88 -0
- package/src/Calendar/hooks/useCalendarDays.ts +5 -10
- package/src/Calendar/{standaloneShortWeekdayNames.generated.ts → weekdayHeaderNames.generated.ts} +14 -14
- package/src/Carousel/Carousel.tsx +1 -0
- package/src/Chat/ChatComposerInput.tsx +4 -7
- package/src/Chat/ChatMessageList.tsx +2 -1
- package/src/Chat/useChatDictation.ts +1 -0
- package/src/Chat/useChatNewMessages.ts +1 -1
- package/src/Chat/useChatStreamScroll.ts +2 -0
- package/src/Chat/useSpeechRecognition.ts +2 -0
- package/src/Chat/useTriggerMenu.tsx +1 -1
- package/src/CheckboxInput/CheckboxInput.doc.mjs +18 -0
- package/src/CheckboxInput/CheckboxInput.tsx +38 -15
- package/src/CheckboxList/CheckboxList.doc.mjs +14 -0
- package/src/CheckboxList/CheckboxList.tsx +43 -2
- package/src/CheckboxList/CheckboxListContext.tsx +9 -1
- package/src/CheckboxList/CheckboxListItem.tsx +23 -2
- package/src/CheckboxList/requiredGroup.ts +77 -0
- package/src/CodeBlock/CodeBlock.doc.mjs +9 -1
- package/src/CodeBlock/CodeBlock.tsx +41 -4
- package/src/CommandPalette/CommandPalette.tsx +1 -0
- package/src/CommandPalette/CommandPaletteItem.tsx +1 -0
- package/src/ComplexSelector/ComplexSelector.tsx +20 -5
- package/src/ContextMenu/ContextMenu.tsx +2 -2
- package/src/DateInput/MonthScroller.tsx +8 -2
- package/src/DateInput/PickerWheel.tsx +796 -0
- package/src/DateInput/TouchDateField.tsx +6 -32
- package/src/DateInput/Wheel.tsx +188 -171
- package/src/DateInput/datePickerTouch.ts +15 -0
- package/src/DateInput/useOwnScrollGesture.ts +25 -3
- package/src/DateInput/usePointerDragScroll.ts +1 -0
- package/src/DateInput/useScrollSettle.ts +2 -0
- package/src/DateInput/useWheelListbox.ts +112 -0
- package/src/DateInput/wheelOptions.ts +184 -0
- package/src/DateInput/wheelPhysics.ts +406 -0
- package/src/DateInput/wheelStrip.ts +341 -0
- package/src/DateTimeInput/TouchDateTimeField.tsx +100 -189
- package/src/Dialog/Dialog.tsx +12 -32
- package/src/Drawer/useDrawerDialogPresence.ts +2 -0
- package/src/DropdownMenu/useMenuOverflow.ts +3 -0
- package/src/Field/Field.tsx +2 -2
- package/src/FieldStatus/useFieldStatusAnnouncement.ts +1 -0
- package/src/FormLayout/FormLayout.doc.mjs +181 -46
- package/src/FormLayout/FormLayout.tsx +5 -1
- package/src/HoverCard/HoverCard.doc.mjs +10 -8
- package/src/HoverCard/HoverCard.tsx +58 -6
- package/src/HoverCard/useHoverCard.doc.mjs +178 -36
- package/src/HoverCard/useHoverCard.tsx +55 -55
- package/src/Icon/Icon.doc.mjs +51 -10
- package/src/Icon/Icon.tsx +31 -8
- package/src/IconButton/IconButton.doc.mjs +141 -21
- package/src/InfoTip/InfoTip.tsx +72 -16
- package/src/Item/useSwipeAction.ts +2 -0
- package/src/Layer/modalOutlet.ts +2 -0
- package/src/Layer/outsidePress.ts +1 -0
- package/src/Layer/useLayer.tsx +3 -1
- package/src/Layer/useLayerDismissal.ts +2 -0
- package/src/Layer/useTouchTrigger.ts +19 -6
- package/src/Layout/index.ts +1 -1
- package/src/Layout/layoutReset.ts +1 -1
- package/src/Layout/overlayPaddingReset.stylex.ts +73 -0
- package/src/Layout/padding.stylex.ts +9 -133
- package/src/Layout/paddingStyles.stylex.ts +87 -0
- package/src/Lightbox/Lightbox.tsx +20 -1
- package/src/Lightbox/useLightbox.doc.mjs +167 -0
- package/src/MobileNav/MobileNav.tsx +10 -31
- package/src/MultiSelector/MultiSelector.tsx +2 -7
- package/src/NumberInput/NumberInput.tsx +2 -7
- package/src/Outline/useOutlineFromDOM.ts +2 -0
- package/src/Outline/useScrollSpy.ts +2 -0
- package/src/OverflowList/OverflowList.tsx +2 -0
- package/src/Overlay/Overlay.tsx +7 -2
- package/src/Popover/Popover.tsx +4 -0
- package/src/Popover/usePopover.tsx +2 -2
- package/src/PowerSearch/PowerSearch.doc.mjs +60 -8
- package/src/PowerSearch/PowerSearch.tsx +622 -157
- package/src/PowerSearch/PowerSearchBottomSheet.tsx +2700 -0
- package/src/PowerSearch/PowerSearchEditPopover.tsx +65 -9
- package/src/PowerSearch/PowerSearchFilterEditor.tsx +2 -0
- package/src/PowerSearch/PowerSearchToken.tsx +2 -0
- package/src/PowerSearch/PowerSearchValueEditor.tsx +340 -59
- package/src/PowerSearch/formatFilterValue.ts +49 -27
- package/src/PowerSearch/formatTokenValue.ts +220 -0
- package/src/PowerSearch/index.ts +5 -1
- package/src/PowerSearch/powerSearchDateZone.ts +95 -0
- package/src/PowerSearch/powerSearchSheetUtils.ts +224 -0
- package/src/PowerSearch/types.ts +8 -1
- package/src/ProgressBar/ProgressBarTouch.ts +2 -0
- package/src/RadioList/RadioList.tsx +3 -2
- package/src/RadioList/RadioListItem.tsx +5 -3
- package/src/Resizable/Resizable.doc.mjs +5 -4
- package/src/Resizable/ResizeHandle.tsx +187 -135
- package/src/Resizable/createResizable.ts +1046 -0
- package/src/Resizable/separatorAttributes.ts +73 -0
- package/src/Resizable/useResizable.ts +292 -623
- package/src/SegmentedControl/useSegmentedSelectionMotion.ts +6 -3
- package/src/SelectableCard/SelectableCard.tsx +39 -10
- package/src/SelectableCard/selectableCardInput.ts +30 -0
- package/src/Selector/Selector.tsx +7 -19
- package/src/SideNav/SideNav.tsx +41 -5
- package/src/Slider/Slider.tsx +20 -11
- package/src/Slider/sliderTouchController.ts +2 -2
- package/src/Spinner/Spinner.tsx +77 -63
- package/src/Stepper/Stepper.tsx +10 -27
- package/src/Switch/Switch.tsx +2 -6
- package/src/Switch/useSwitchTouch.ts +4 -4
- package/src/Table/BaseTable.tsx +46 -12
- package/src/Table/plugins/columnResize/useTableColumnResize.tsx +2 -1
- package/src/Table/plugins/filtering/useTableFiltering.tsx +1 -0
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +31 -7
- package/src/Table/plugins/stickyColumns/useTableStickyColumns.tsx +2 -0
- package/src/Table/plugins/tree/useTableTreeData.tsx +43 -20
- package/src/Table/useTableRowExpansion.doc.mjs +9 -0
- package/src/Table/useTableTreeData.doc.mjs +15 -3
- package/src/TextArea/TextArea.tsx +2 -7
- package/src/TextInput/TextInput.tsx +13 -17
- package/src/TimeInput/TimeInput.tsx +2 -0
- package/src/TimeInput/TimeWheels.tsx +218 -0
- package/src/TimeInput/TouchTimeField.tsx +93 -155
- package/src/TimeInput/timeWheelRules.ts +352 -0
- package/src/Timer/Timer.tsx +1 -0
- package/src/Timestamp/Timestamp.tsx +1 -1
- package/src/Timestamp/formatInstant.ts +1 -33
- package/src/Toast/Toast.doc.mjs +4 -3
- package/src/Toast/Toast.tsx +52 -32
- package/src/Toast/ToastViewport.tsx +123 -35
- package/src/Toast/types.ts +9 -3
- package/src/Toast/useToast.tsx +1 -0
- package/src/Tokenizer/Tokenizer.doc.mjs +10 -10
- package/src/Tokenizer/Tokenizer.tsx +61 -62
- package/src/Tokenizer/TokenizerBottomSheet.tsx +17 -23
- package/src/Tokenizer/index.ts +1 -0
- package/src/Tooltip/Tooltip.tsx +6 -42
- package/src/Tooltip/useTooltip.doc.mjs +24 -0
- package/src/Tooltip/useTooltip.tsx +243 -134
- package/src/Typeahead/BaseTypeahead.tsx +27 -17
- package/src/Typeahead/TypeaheadItem.doc.mjs +6 -3
- package/src/Typeahead/TypeaheadItem.tsx +2 -1
- package/src/animator/createAnimator.doc.mjs +153 -0
- package/src/animator/createAnimator.ts +324 -0
- package/src/gestures/GestureHost.ts +6 -5
- package/src/gestures/PressTracker.ts +4 -3
- package/src/gestures/README.md +10 -4
- package/src/hooks/ModalAnnounceProvider.tsx +1 -0
- package/src/hooks/actionGroupTracker.ts +25 -9
- package/src/hooks/index.ts +2 -0
- package/src/hooks/longPressDetector.ts +273 -0
- package/src/hooks/pressGroupContext.ts +21 -0
- package/src/hooks/rootScrollStyles.ts +247 -0
- package/src/hooks/scrollLockTouchGuard.ts +149 -0
- package/src/hooks/scrollbarGutter.ts +41 -26
- package/src/hooks/useActionGroupTracking.ts +224 -0
- package/src/hooks/useAnimator.doc.mjs +109 -0
- package/src/hooks/useAnimator.ts +67 -0
- package/src/hooks/useAnnounceRenderedText.ts +1 -0
- package/src/hooks/useAttachment.ts +1 -1
- package/src/hooks/useAutoMediaMode.ts +1 -0
- package/src/hooks/useBusyAnnouncement.ts +2 -0
- package/src/hooks/useDevWarning.ts +2 -0
- package/src/hooks/useFocusTrap.ts +2 -0
- package/src/hooks/useGridFocus.doc.mjs +6 -6
- package/src/hooks/useGridFocus.ts +10 -7
- package/src/hooks/useHotkeys.ts +2 -0
- package/src/hooks/useImageMode.ts +2 -0
- package/src/hooks/useInputStatusIcon.tsx +3 -2
- package/src/hooks/useKeyboardHint.tsx +1 -1
- package/src/hooks/useLongPress.doc.mjs +2 -2
- package/src/hooks/useLongPress.ts +32 -122
- package/src/hooks/useMenuHover.ts +1 -0
- package/src/hooks/useMenuPress.ts +2 -0
- package/src/hooks/useOverflow.ts +2 -1
- package/src/hooks/usePressFeedback.ts +1 -0
- package/src/hooks/useResolvedRequired.ts +3 -0
- package/src/hooks/useScrollLock.doc.mjs +51 -12
- package/src/hooks/useScrollLock.ts +53 -60
- package/src/hooks/useScrollableArea.ts +4 -0
- package/src/hooks/useStreamingText.ts +2 -0
- package/src/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.ts +46 -0
- package/src/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.ts +6 -0
- package/src/i18n/generated-english/PowerSearch/formatTokenValue.generated.ts +15 -0
- package/src/i18n/generated-english/Resizable/createResizable.generated.ts +14 -0
- package/src/i18n/generated-english/Table/plugins/rowExpansion/useTableRowExpansion.generated.ts +3 -1
- package/src/i18n/generated-english/Table/plugins/tree/useTableTreeData.generated.ts +3 -1
- package/src/i18n/generated-english/TimeInput/TimeWheels.generated.ts +18 -0
- package/src/i18n/generated-locales/en.generated.ts +47 -0
- package/src/i18n/generated-locales/pseudo.generated.ts +48 -0
- package/src/index.ts +13 -0
- package/src/internal/indicatorPress.stylex.ts +24 -0
- package/src/internal/selectable-card.ts +21 -0
- package/src/internal/sheetDraft.ts +2 -2
- package/src/keyboard/README.md +197 -0
- package/src/keyboard/index.ts +48 -0
- package/src/keyboard/keyboardHeight.ts +543 -0
- package/src/keyboard/keyboardLayoutGuide.ts +266 -0
- package/src/keyboard/keyboardModel.ts +301 -0
- package/src/keyboard/rideKeyboard.ts +100 -0
- package/src/keyboard/useMobileKeyboard.ts +866 -0
- package/src/motion/MEASUREMENTS.md +28 -0
- package/src/motion/README.md +12 -5
- package/src/motion/android/index.ts +18 -0
- package/src/motion/android/keyboard.ts +96 -0
- package/src/motion/animatedLayout.ts +323 -60
- package/src/motion/animator.ts +66 -37
- package/src/motion/frameBlock.ts +16 -0
- package/src/motion/progress.ts +155 -0
- package/src/motion/reducedMotion.ts +3 -1
- package/src/motion/uikit/alert.ts +43 -0
- package/src/motion/uikit/datePicker.ts +60 -0
- package/src/motion/uikit/index.ts +6 -4
- package/src/motion/uikit/picker.ts +116 -0
- package/src/privateAttributes/pressGroupItem.stylex.ts +44 -0
- package/src/privateAttributes/reducedMotion.stylex.ts +45 -0
- package/src/theme/Theme.tsx +37 -3
- package/src/theme/generateThemeRules.ts +14 -12
- package/src/theme/motionKnobs.ts +4 -3
- package/src/theme/themeMotion.ts +17 -2
- package/src/theme/tokens.stylex.ts +2 -0
- package/src/utils/dateParser.ts +16 -0
- package/src/utils/disabledInteraction.ts +23 -2
- package/src/utils/focusReturn.ts +38 -31
- package/src/utils/index.ts +1 -1
- package/src/utils/interactionModality.ts +4 -0
- package/src/utils/interactionOverlay.stylex.ts +6 -4
- package/src/utils/isFocusDetached.ts +34 -0
- package/src/utils/layoutViewport.ts +104 -0
- package/src/utils/plainDate.ts +80 -4
- package/src/utils/pressFeedback.ts +126 -30
- package/src/utils/pressGesture.ts +4 -2
- package/src/utils/selectionLock.ts +40 -6
- package/src/utils/sharedMutationObserver.ts +2 -1
- package/src/utils/timeParser.ts +40 -3
- package/src/utils/triggerFocus.ts +80 -0
- package/dist/BottomSheet/useMobileKeyboard.d.ts +0 -21
- package/dist/BottomSheet/useMobileKeyboard.d.ts.map +0 -1
- package/dist/BottomSheet/useMobileKeyboard.js +0 -407
- package/dist/Calendar/getStandaloneShortWeekdayNames.d.ts +0 -14
- package/dist/Calendar/getStandaloneShortWeekdayNames.d.ts.map +0 -1
- package/dist/Calendar/getStandaloneShortWeekdayNames.js +0 -26
- package/dist/Calendar/standaloneShortWeekdayNames.generated.d.ts.map +0 -1
- package/dist/Layer/usePressPin.d.ts +0 -93
- package/dist/Layer/usePressPin.d.ts.map +0 -1
- package/dist/Layer/usePressPin.js +0 -363
- package/dist/internal/touch-sheet.d.ts +0 -21
- package/dist/internal/touch-sheet.d.ts.map +0 -1
- package/dist/internal/touch-sheet.js +0 -19
- package/src/BottomSheet/useMobileKeyboard.ts +0 -538
- package/src/Calendar/getStandaloneShortWeekdayNames.ts +0 -38
- package/src/Layer/usePressPin.ts +0 -510
- package/src/internal/touch-sheet.ts +0 -21
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file triggerFocus.ts
|
|
5
|
+
* @input A focus event on a hover-layer trigger and its focusTrigger value
|
|
6
|
+
* @output Whether that focus counts as focus on the trigger, and a gate that
|
|
7
|
+
* remembers it for the matching blur
|
|
8
|
+
* @position Shared focus-trigger judgement for Tooltip and HoverCard
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/** When focus on a trigger opens its layer. */
|
|
12
|
+
export type TriggerFocusMode = 'auto' | 'always' | 'never';
|
|
13
|
+
|
|
14
|
+
/** Whether `element` is in the tab order or naturally focusable. */
|
|
15
|
+
export function isFocusableTrigger(element: HTMLElement): boolean {
|
|
16
|
+
if (element.hasAttribute('tabindex')) {
|
|
17
|
+
return element.tabIndex >= 0;
|
|
18
|
+
}
|
|
19
|
+
const focusableTags = ['A', 'BUTTON', 'INPUT', 'SELECT', 'TEXTAREA'];
|
|
20
|
+
if (focusableTags.includes(element.tagName)) {
|
|
21
|
+
return !(element as HTMLButtonElement).disabled;
|
|
22
|
+
}
|
|
23
|
+
return element.isContentEditable;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Whether a focus event on a trigger (its `currentTarget`) counts as focus on
|
|
28
|
+
* the trigger.
|
|
29
|
+
*
|
|
30
|
+
* Under `auto` it is decided when focus arrives, not when listeners attach: a
|
|
31
|
+
* roving-tabindex member that was `tabindex="-1"` then can be the tab stop
|
|
32
|
+
* now. A trigger that receives focus is focusable by definition, which covers
|
|
33
|
+
* focusable elements this check does not list, such as a `<summary>` or an SVG
|
|
34
|
+
* link. Focus inside the trigger counts only while the trigger is focusable
|
|
35
|
+
* too, so a plain wrapper ignores its children's focus.
|
|
36
|
+
*/
|
|
37
|
+
export function isFocusForTrigger(
|
|
38
|
+
event: Event,
|
|
39
|
+
mode: TriggerFocusMode,
|
|
40
|
+
): boolean {
|
|
41
|
+
if (mode === 'always') {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
if (mode === 'never') {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
const trigger = event.currentTarget as HTMLElement | null;
|
|
48
|
+
return (
|
|
49
|
+
trigger != null && (event.target === trigger || isFocusableTrigger(trigger))
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/** Remembers whether a trigger's current focus counted when it arrived. */
|
|
54
|
+
export interface TriggerFocusGate {
|
|
55
|
+
/** On focusin: whether this focus opens the layer. */
|
|
56
|
+
focusIn(event: Event, mode: TriggerFocusMode): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* On focusout: whether this blur closes the layer. A focus that counted
|
|
59
|
+
* closes on blur even if the trigger has since left the tab order.
|
|
60
|
+
*/
|
|
61
|
+
focusOut(event: Event, mode: TriggerFocusMode): boolean;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** A gate for one trigger; each hook keeps one for its lifetime. */
|
|
65
|
+
export function createTriggerFocusGate(): TriggerFocusGate {
|
|
66
|
+
let isCounted = false;
|
|
67
|
+
return {
|
|
68
|
+
focusIn(event, mode) {
|
|
69
|
+
isCounted = isFocusForTrigger(event, mode);
|
|
70
|
+
return isCounted;
|
|
71
|
+
},
|
|
72
|
+
focusOut(event, mode) {
|
|
73
|
+
if (!isCounted && !isFocusForTrigger(event, mode)) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
isCounted = false;
|
|
77
|
+
return true;
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file useMobileKeyboard.ts
|
|
3
|
-
* @input Uses React effects and refs supplied by BottomSheet
|
|
4
|
-
* @output Exports internal useMobileKeyboard hook
|
|
5
|
-
* @position Internal to BottomSheet; not exported from the core entry point
|
|
6
|
-
*/
|
|
7
|
-
import { type RefObject } from 'react';
|
|
8
|
-
interface UseMobileKeyboardOptions {
|
|
9
|
-
bodyRef: RefObject<HTMLElement | null>;
|
|
10
|
-
bottomClearance: number;
|
|
11
|
-
isEnabled: boolean;
|
|
12
|
-
isFullyExpanded: boolean;
|
|
13
|
-
isPageScrollLocked: boolean;
|
|
14
|
-
isSheetTraveling: boolean;
|
|
15
|
-
isOpen: boolean;
|
|
16
|
-
isPresented: boolean;
|
|
17
|
-
sheetRef: RefObject<HTMLDivElement | null>;
|
|
18
|
-
}
|
|
19
|
-
export declare function useMobileKeyboard({ bodyRef, bottomClearance, isEnabled, isFullyExpanded, isPageScrollLocked, isSheetTraveling, isOpen, isPresented, sheetRef, }: UseMobileKeyboardOptions): void;
|
|
20
|
-
export {};
|
|
21
|
-
//# sourceMappingURL=useMobileKeyboard.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useMobileKeyboard.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/useMobileKeyboard.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAcH,OAAO,EAAoB,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAgBxD,UAAU,wBAAwB;IAChC,OAAO,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CAC5C;AA8DD,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,eAAe,EACf,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,QAAQ,GACT,EAAE,wBAAwB,GAAG,IAAI,CAgajC"}
|
|
@@ -1,407 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
-
|
|
3
|
-
'use client';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* @file useMobileKeyboard.ts
|
|
7
|
-
* @input Uses React effects and refs supplied by BottomSheet
|
|
8
|
-
* @output Exports internal useMobileKeyboard hook
|
|
9
|
-
* @position Internal to BottomSheet; not exported from the core entry point
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
// A fully expanded, explicitly Tall sheet gets a keyboard-aware internal
|
|
13
|
-
// scroll range, and the sheet itself stays still. Other detents and heights
|
|
14
|
-
// opt out. Tall-sheet travel or a close blurs the field and dismisses the
|
|
15
|
-
// keyboard.
|
|
16
|
-
//
|
|
17
|
-
// On iOS the browser reveals a focused field by scrolling the document, and
|
|
18
|
-
// a fixed sheet moves with it, so the page lurches. The reveal belongs to the
|
|
19
|
-
// focus operation, so refuse it there: take over the focus change on the
|
|
20
|
-
// capture-phase blur, focus with preventScroll, and then scroll the control
|
|
21
|
-
// into view in the sheet's own scroller. A tap, the keyboard's Next, Tab and
|
|
22
|
-
// focus() all pass through that one change.
|
|
23
|
-
import { useEffect, useRef } from 'react';
|
|
24
|
-
const MOBILE_KEYBOARD_INSET_VAR = '--_sheet-keyboard-inset';
|
|
25
|
-
const NON_TEXT_INPUT_TYPES = new Set(['button', 'checkbox', 'color', 'file', 'hidden', 'image', 'radio', 'range', 'reset', 'submit']);
|
|
26
|
-
function getObstructionTop() {
|
|
27
|
-
return window.visualViewport?.height ?? window.innerHeight;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// The keyboard is gone once the visible band reaches the layout viewport bottom.
|
|
31
|
-
function isVisualViewportRecovered() {
|
|
32
|
-
return getObstructionTop() >= window.innerHeight - 0.5;
|
|
33
|
-
}
|
|
34
|
-
function isIOSWebKit() {
|
|
35
|
-
const userAgent = window.navigator.userAgent;
|
|
36
|
-
return /iPad|iPhone|iPod/.test(userAgent) || userAgent.includes('Macintosh') && window.navigator.maxTouchPoints > 1;
|
|
37
|
-
}
|
|
38
|
-
function isTextEntryControl(element) {
|
|
39
|
-
if (element instanceof HTMLTextAreaElement) {
|
|
40
|
-
return !element.disabled && !element.readOnly;
|
|
41
|
-
}
|
|
42
|
-
if (element instanceof HTMLInputElement) {
|
|
43
|
-
return !element.disabled && !element.readOnly && !NON_TEXT_INPUT_TYPES.has((element.getAttribute('type') ?? 'text').toLowerCase());
|
|
44
|
-
}
|
|
45
|
-
return element instanceof HTMLElement && element.matches('[contenteditable]:not([contenteditable="false"])');
|
|
46
|
-
}
|
|
47
|
-
function findTextEntryControl(target, body) {
|
|
48
|
-
if (!(target instanceof Element)) {
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
|
-
const direct = target.closest('input, textarea, [contenteditable]:not([contenteditable="false"])');
|
|
52
|
-
if (body.contains(direct) && isTextEntryControl(direct)) {
|
|
53
|
-
return direct;
|
|
54
|
-
}
|
|
55
|
-
const label = target.closest('label');
|
|
56
|
-
const control = label instanceof HTMLLabelElement ? label.control : null;
|
|
57
|
-
return body.contains(control) && isTextEntryControl(control) ? control : null;
|
|
58
|
-
}
|
|
59
|
-
export function useMobileKeyboard({
|
|
60
|
-
bodyRef,
|
|
61
|
-
bottomClearance,
|
|
62
|
-
isEnabled,
|
|
63
|
-
isFullyExpanded,
|
|
64
|
-
isPageScrollLocked,
|
|
65
|
-
isSheetTraveling,
|
|
66
|
-
isOpen,
|
|
67
|
-
isPresented,
|
|
68
|
-
sheetRef
|
|
69
|
-
}) {
|
|
70
|
-
const hasKeyboardLayoutRef = useRef(false);
|
|
71
|
-
const retainKeyboardLayoutRef = useRef(false);
|
|
72
|
-
const isFullyExpandedRef = useRef(isFullyExpanded);
|
|
73
|
-
const isOpenRef = useRef(isOpen);
|
|
74
|
-
isFullyExpandedRef.current = isFullyExpanded;
|
|
75
|
-
isOpenRef.current = isOpen;
|
|
76
|
-
useEffect(() => {
|
|
77
|
-
if (!isEnabled || !isSheetTraveling) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
const sheet = sheetRef.current;
|
|
81
|
-
const activeElement = document.activeElement;
|
|
82
|
-
if (sheet && activeElement instanceof HTMLElement && activeElement !== sheet && sheet.contains(activeElement)) {
|
|
83
|
-
// Keep the current keyboard scroll range while focusing the sheet
|
|
84
|
-
// dismisses the keyboard. Viewport resize events unwind that layout as
|
|
85
|
-
// the visual viewport recovers, avoiding a content jump on the first
|
|
86
|
-
// drag frame.
|
|
87
|
-
retainKeyboardLayoutRef.current = hasKeyboardLayoutRef.current;
|
|
88
|
-
sheet.focus({
|
|
89
|
-
preventScroll: true
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
}, [isEnabled, isSheetTraveling, sheetRef]);
|
|
93
|
-
useEffect(() => {
|
|
94
|
-
if (!isEnabled || !isPresented || isOpen) {
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
const sheet = sheetRef.current;
|
|
98
|
-
const activeElement = document.activeElement;
|
|
99
|
-
if (sheet && activeElement instanceof HTMLElement && activeElement !== sheet && sheet.contains(activeElement)) {
|
|
100
|
-
retainKeyboardLayoutRef.current = hasKeyboardLayoutRef.current;
|
|
101
|
-
activeElement.blur();
|
|
102
|
-
}
|
|
103
|
-
}, [isEnabled, isOpen, isPresented, sheetRef]);
|
|
104
|
-
useEffect(() => {
|
|
105
|
-
const body = bodyRef.current;
|
|
106
|
-
const sheet = sheetRef.current;
|
|
107
|
-
if (!isEnabled || !isPresented || !body) {
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
let keyboardGeometry = null;
|
|
111
|
-
let keyboardObstructionTop = null;
|
|
112
|
-
let bodyScrollTopAtKeyboard = null;
|
|
113
|
-
let documentScrollAtKeyboard = null;
|
|
114
|
-
const ownsFocusTransitions = isIOSWebKit();
|
|
115
|
-
const clearKeyboardLayout = () => {
|
|
116
|
-
body.style.setProperty(MOBILE_KEYBOARD_INSET_VAR, '0px');
|
|
117
|
-
if (bodyScrollTopAtKeyboard != null) {
|
|
118
|
-
body.scrollTop = bodyScrollTopAtKeyboard;
|
|
119
|
-
}
|
|
120
|
-
keyboardGeometry = null;
|
|
121
|
-
keyboardObstructionTop = null;
|
|
122
|
-
bodyScrollTopAtKeyboard = null;
|
|
123
|
-
documentScrollAtKeyboard = null;
|
|
124
|
-
hasKeyboardLayoutRef.current = false;
|
|
125
|
-
retainKeyboardLayoutRef.current = false;
|
|
126
|
-
};
|
|
127
|
-
const scrollBodyBy = (distance, smoothly) => {
|
|
128
|
-
if (typeof body.scrollBy !== 'function') {
|
|
129
|
-
body.scrollTop += distance;
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
const reduceMotion = typeof window.matchMedia === 'function' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
133
|
-
body.scrollBy({
|
|
134
|
-
top: distance,
|
|
135
|
-
// Not 'auto': that defers to the element's computed `scroll-behavior`,
|
|
136
|
-
// so a consumer's `scroll-behavior: smooth` would animate a scroll this
|
|
137
|
-
// hook needs to land in the same frame.
|
|
138
|
-
behavior: smoothly && !reduceMotion ? 'smooth' : 'instant'
|
|
139
|
-
});
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
// Scroll `control` into the part of the body the keyboard leaves visible,
|
|
143
|
-
// reading live geometry each time.
|
|
144
|
-
const scrollControlIntoSafeArea = (control, smoothly) => {
|
|
145
|
-
const measuredBodyRect = body.getBoundingClientRect();
|
|
146
|
-
const measuredControlRect = control.getBoundingClientRect();
|
|
147
|
-
const obstructionTop = getObstructionTop();
|
|
148
|
-
const overlap = Math.max(0, measuredBodyRect.bottom - obstructionTop);
|
|
149
|
-
const clearance = overlap > 0 ? bottomClearance : 0;
|
|
150
|
-
const safeTop = measuredBodyRect.top;
|
|
151
|
-
const safeBottom = Math.min(measuredBodyRect.bottom, obstructionTop - clearance);
|
|
152
|
-
if (safeBottom <= safeTop) {
|
|
153
|
-
return;
|
|
154
|
-
}
|
|
155
|
-
if (measuredControlRect.bottom > safeBottom) {
|
|
156
|
-
scrollBodyBy(measuredControlRect.bottom - safeBottom, smoothly);
|
|
157
|
-
} else if (measuredControlRect.top < safeTop) {
|
|
158
|
-
scrollBodyBy(measuredControlRect.top - safeTop, smoothly);
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
const applyKeyboardGeometry = geometry => {
|
|
162
|
-
const obstructionTop = getObstructionTop();
|
|
163
|
-
// A collapsed detent can extend the body below the layout viewport even
|
|
164
|
-
// after the keyboard closes, so body overlap alone cannot identify
|
|
165
|
-
// recovery. Once the visual viewport is full height again, release the
|
|
166
|
-
// retained keyboard layout unconditionally.
|
|
167
|
-
if (isVisualViewportRecovered()) {
|
|
168
|
-
clearKeyboardLayout();
|
|
169
|
-
return;
|
|
170
|
-
}
|
|
171
|
-
const overlap = Math.max(0, geometry.bodyBottom - obstructionTop);
|
|
172
|
-
if (overlap === 0) {
|
|
173
|
-
clearKeyboardLayout();
|
|
174
|
-
return;
|
|
175
|
-
}
|
|
176
|
-
const inset = Math.max(0, geometry.bodyBottom - (obstructionTop - bottomClearance));
|
|
177
|
-
body.style.setProperty(MOBILE_KEYBOARD_INSET_VAR, `${inset}px`);
|
|
178
|
-
};
|
|
179
|
-
|
|
180
|
-
// Take the focus transition over before the browser performs it.
|
|
181
|
-
//
|
|
182
|
-
// `blur` is dispatched in the capture phase ahead of the browser's own
|
|
183
|
-
// focus step, and it names the destination in `relatedTarget`. Focusing it
|
|
184
|
-
// here with preventScroll settles the transition: the browser's step finds
|
|
185
|
-
// the element already active, so it dispatches nothing further and has
|
|
186
|
-
// nothing to reveal.
|
|
187
|
-
const claimFocusTransition = event => {
|
|
188
|
-
if (!isFullyExpandedRef.current) {
|
|
189
|
-
return;
|
|
190
|
-
}
|
|
191
|
-
const destination = findTextEntryControl(event.relatedTarget, body);
|
|
192
|
-
if (destination) {
|
|
193
|
-
if (destination !== document.activeElement) {
|
|
194
|
-
// Revealing the field is not this handler's job: focusing it raises
|
|
195
|
-
// focusin, and the viewport resize that follows the keyboard raises
|
|
196
|
-
// another — both already schedule the reveal below, which knows the
|
|
197
|
-
// safe area and scrolls only the sheet's own body.
|
|
198
|
-
destination.focus({
|
|
199
|
-
preventScroll: true
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
return;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
// Focus left for nothing — the keyboard's Done button parks it on the
|
|
206
|
-
// body. Park it on the sheet instead, so re-tapping the same field is
|
|
207
|
-
// still a transition this handler sees. Left on the body, the field is
|
|
208
|
-
// already `document.activeElement` on the next tap, no blur fires, and
|
|
209
|
-
// the browser reveals it its own way.
|
|
210
|
-
//
|
|
211
|
-
// Only while the sheet is open: closing blurs the field too, and there
|
|
212
|
-
// is no next tap to keep claimable — the host restores focus to whatever
|
|
213
|
-
// opened the sheet.
|
|
214
|
-
const origin = findTextEntryControl(event.target, body);
|
|
215
|
-
if (isOpenRef.current && origin && !event.relatedTarget) {
|
|
216
|
-
sheet?.focus({
|
|
217
|
-
preventScroll: true
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
};
|
|
221
|
-
const revealFocusedControl = () => {
|
|
222
|
-
const obstructionTop = getObstructionTop();
|
|
223
|
-
const activeElement = document.activeElement;
|
|
224
|
-
const focusedControl = activeElement instanceof HTMLElement && body.contains(activeElement) && isTextEntryControl(activeElement) ? activeElement : null;
|
|
225
|
-
// The keyboard may close while the text field remains focused (for
|
|
226
|
-
// example, a downward keyboard dismissal gesture on iOS). Run the full
|
|
227
|
-
// cleanup path so the temporary spacer and the body scroll it enabled
|
|
228
|
-
// are both restored. Then reveal the still-focused control against the
|
|
229
|
-
// recovered sheet, because it may not be the field that opened the
|
|
230
|
-
// keyboard and therefore may sit outside the restored scroll position.
|
|
231
|
-
if (hasKeyboardLayoutRef.current && isVisualViewportRecovered()) {
|
|
232
|
-
clearKeyboardLayout();
|
|
233
|
-
if (isFullyExpandedRef.current && focusedControl) {
|
|
234
|
-
scrollControlIntoSafeArea(focusedControl, false);
|
|
235
|
-
}
|
|
236
|
-
return;
|
|
237
|
-
}
|
|
238
|
-
if (!isFullyExpandedRef.current || focusedControl == null) {
|
|
239
|
-
if (retainKeyboardLayoutRef.current && keyboardGeometry) {
|
|
240
|
-
applyKeyboardGeometry(keyboardGeometry);
|
|
241
|
-
return;
|
|
242
|
-
}
|
|
243
|
-
clearKeyboardLayout();
|
|
244
|
-
return;
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
// An interactively dismissed iOS keyboard can leave the accessory bar
|
|
248
|
-
// visible, so the visual viewport grows without reaching full height.
|
|
249
|
-
// Restore the pre-keyboard body position as soon as that recovery starts;
|
|
250
|
-
// the ordinary safe-area pass below may still scroll a low focused field
|
|
251
|
-
// just enough for whatever obstruction remains. Advance the remembered
|
|
252
|
-
// obstruction so later content mutations do not repeat this recovery.
|
|
253
|
-
if (hasKeyboardLayoutRef.current && keyboardObstructionTop != null && obstructionTop > keyboardObstructionTop + 0.5 && bodyScrollTopAtKeyboard != null) {
|
|
254
|
-
body.scrollTop = bodyScrollTopAtKeyboard;
|
|
255
|
-
keyboardObstructionTop = obstructionTop;
|
|
256
|
-
}
|
|
257
|
-
retainKeyboardLayoutRef.current = false;
|
|
258
|
-
const measuredBodyRect = body.getBoundingClientRect();
|
|
259
|
-
const overlap = Math.max(0, measuredBodyRect.bottom - obstructionTop);
|
|
260
|
-
// The extra clearance leaves room for mobile suggestion UI, but only
|
|
261
|
-
// while the visual viewport actually overlaps the sheet. With no
|
|
262
|
-
// obstruction, ordinary desktop and hardware-keyboard focus must not
|
|
263
|
-
// shift an already visible control.
|
|
264
|
-
const clearance = overlap > 0 ? bottomClearance : 0;
|
|
265
|
-
keyboardGeometry = overlap > 0 ? {
|
|
266
|
-
bodyBottom: measuredBodyRect.bottom
|
|
267
|
-
} : null;
|
|
268
|
-
// Where the document sits with the keyboard up and nothing yet shifted:
|
|
269
|
-
// the position handleDocumentScroll returns to. Captured on the
|
|
270
|
-
// transition only — a reveal that runs after the browser has already
|
|
271
|
-
// scrolled would otherwise record the shifted position as correct.
|
|
272
|
-
if (overlap > 0 && !hasKeyboardLayoutRef.current) {
|
|
273
|
-
keyboardObstructionTop = obstructionTop;
|
|
274
|
-
bodyScrollTopAtKeyboard = body.scrollTop;
|
|
275
|
-
if (isPageScrollLocked) {
|
|
276
|
-
documentScrollAtKeyboard = {
|
|
277
|
-
x: window.scrollX,
|
|
278
|
-
y: window.scrollY
|
|
279
|
-
};
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
hasKeyboardLayoutRef.current = overlap > 0;
|
|
283
|
-
const inset = overlap > 0 ? Math.max(0, measuredBodyRect.bottom - (obstructionTop - clearance)) : 0;
|
|
284
|
-
body.style.setProperty(MOBILE_KEYBOARD_INSET_VAR, `${inset}px`);
|
|
285
|
-
scrollControlIntoSafeArea(focusedControl, overlap > 0);
|
|
286
|
-
};
|
|
287
|
-
let animationFrame = 0;
|
|
288
|
-
const scheduleReveal = () => {
|
|
289
|
-
cancelAnimationFrame(animationFrame);
|
|
290
|
-
animationFrame = requestAnimationFrame(revealFocusedControl);
|
|
291
|
-
};
|
|
292
|
-
|
|
293
|
-
// Resuming the app re-reveals the focused field with no focus event to
|
|
294
|
-
// claim, so the reveal above never runs and the document scrolls — taking
|
|
295
|
-
// the fixed sheet with it. Put that scroll back on the event that reports
|
|
296
|
-
// it and re-reveal inside the sheet.
|
|
297
|
-
//
|
|
298
|
-
// Only while the page is locked, which is the only state in which a
|
|
299
|
-
// document scroll cannot be the user's own: behind a non-modal sheet the
|
|
300
|
-
// page stays scrollable, and reverting there would fight them.
|
|
301
|
-
const handleDocumentScroll = () => {
|
|
302
|
-
const expected = documentScrollAtKeyboard;
|
|
303
|
-
if (expected == null || window.scrollX === expected.x && window.scrollY === expected.y) {
|
|
304
|
-
return;
|
|
305
|
-
}
|
|
306
|
-
window.scrollTo(expected.x, expected.y);
|
|
307
|
-
const activeElement = document.activeElement;
|
|
308
|
-
if (activeElement instanceof HTMLElement && body.contains(activeElement) && isTextEntryControl(activeElement)) {
|
|
309
|
-
scrollControlIntoSafeArea(activeElement, false);
|
|
310
|
-
}
|
|
311
|
-
};
|
|
312
|
-
const resizeObserver = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(scheduleReveal);
|
|
313
|
-
const refreshObservedLayout = () => {
|
|
314
|
-
if (!resizeObserver) {
|
|
315
|
-
return;
|
|
316
|
-
}
|
|
317
|
-
resizeObserver.disconnect();
|
|
318
|
-
|
|
319
|
-
// Body/sheet box changes include public height and xstyle updates. The
|
|
320
|
-
// generated inset pseudo-element changes only scroll overflow, so these
|
|
321
|
-
// observations do not feed the keyboard inset back into sheet geometry.
|
|
322
|
-
const targets = new Set([body]);
|
|
323
|
-
if (sheet) {
|
|
324
|
-
targets.add(sheet);
|
|
325
|
-
}
|
|
326
|
-
for (const child of body.children) {
|
|
327
|
-
targets.add(child);
|
|
328
|
-
}
|
|
329
|
-
const activeElement = document.activeElement;
|
|
330
|
-
if (activeElement instanceof HTMLElement && body.contains(activeElement)) {
|
|
331
|
-
for (let element = activeElement; element && element !== body; element = element.parentElement) {
|
|
332
|
-
targets.add(element);
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
for (const target of targets) {
|
|
336
|
-
resizeObserver.observe(target);
|
|
337
|
-
}
|
|
338
|
-
};
|
|
339
|
-
const mutationObserver = typeof MutationObserver === 'undefined' ? null : new MutationObserver(records => {
|
|
340
|
-
// Ignore the internal inset written on the body. Consumer DOM,
|
|
341
|
-
// text, class, style, or visibility changes can all move the
|
|
342
|
-
// focused control without a viewport event.
|
|
343
|
-
if (records.every(record => record.type === 'attributes' && record.target === body)) {
|
|
344
|
-
return;
|
|
345
|
-
}
|
|
346
|
-
refreshObservedLayout();
|
|
347
|
-
scheduleReveal();
|
|
348
|
-
});
|
|
349
|
-
const handleFocusIn = () => {
|
|
350
|
-
refreshObservedLayout();
|
|
351
|
-
scheduleReveal();
|
|
352
|
-
};
|
|
353
|
-
const handleFocusOut = () => {
|
|
354
|
-
// Keep the added scroll range while the keyboard animates away. A focus
|
|
355
|
-
// transition to another text-entry control cancels this in focusin.
|
|
356
|
-
retainKeyboardLayoutRef.current = hasKeyboardLayoutRef.current;
|
|
357
|
-
scheduleReveal();
|
|
358
|
-
};
|
|
359
|
-
const handleSheetTransitionEnd = event => {
|
|
360
|
-
if (event.target === sheet && event.propertyName === 'transform') {
|
|
361
|
-
scheduleReveal();
|
|
362
|
-
}
|
|
363
|
-
};
|
|
364
|
-
const viewport = window.visualViewport;
|
|
365
|
-
if (ownsFocusTransitions) {
|
|
366
|
-
// `blur` does not bubble, so the capture phase is the only place to hear
|
|
367
|
-
// every one of them — and it runs before the browser's own focus step,
|
|
368
|
-
// which is the only window in which the transition can still be claimed.
|
|
369
|
-
document.addEventListener('blur', claimFocusTransition, true);
|
|
370
|
-
}
|
|
371
|
-
body.addEventListener('focusin', handleFocusIn);
|
|
372
|
-
body.addEventListener('focusout', handleFocusOut);
|
|
373
|
-
sheet?.addEventListener('transitionend', handleSheetTransitionEnd);
|
|
374
|
-
viewport?.addEventListener('resize', scheduleReveal);
|
|
375
|
-
viewport?.addEventListener('scroll', scheduleReveal);
|
|
376
|
-
window.addEventListener('scroll', handleDocumentScroll);
|
|
377
|
-
window.addEventListener('resize', scheduleReveal);
|
|
378
|
-
mutationObserver?.observe(body, {
|
|
379
|
-
attributes: true,
|
|
380
|
-
characterData: true,
|
|
381
|
-
childList: true,
|
|
382
|
-
subtree: true
|
|
383
|
-
});
|
|
384
|
-
refreshObservedLayout();
|
|
385
|
-
// The dialog enters the top layer in a later effect. Wait until the next
|
|
386
|
-
// frame so flex geometry is final before measuring the body.
|
|
387
|
-
scheduleReveal();
|
|
388
|
-
return () => {
|
|
389
|
-
cancelAnimationFrame(animationFrame);
|
|
390
|
-
if (ownsFocusTransitions) {
|
|
391
|
-
document.removeEventListener('blur', claimFocusTransition, true);
|
|
392
|
-
}
|
|
393
|
-
body.removeEventListener('focusin', handleFocusIn);
|
|
394
|
-
body.removeEventListener('focusout', handleFocusOut);
|
|
395
|
-
sheet?.removeEventListener('transitionend', handleSheetTransitionEnd);
|
|
396
|
-
viewport?.removeEventListener('resize', scheduleReveal);
|
|
397
|
-
viewport?.removeEventListener('scroll', scheduleReveal);
|
|
398
|
-
window.removeEventListener('scroll', handleDocumentScroll);
|
|
399
|
-
window.removeEventListener('resize', scheduleReveal);
|
|
400
|
-
resizeObserver?.disconnect();
|
|
401
|
-
mutationObserver?.disconnect();
|
|
402
|
-
body.style.removeProperty(MOBILE_KEYBOARD_INSET_VAR);
|
|
403
|
-
hasKeyboardLayoutRef.current = false;
|
|
404
|
-
retainKeyboardLayoutRef.current = false;
|
|
405
|
-
};
|
|
406
|
-
}, [bodyRef, bottomClearance, isEnabled, isPageScrollLocked, isPresented, sheetRef]);
|
|
407
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file getStandaloneShortWeekdayNames.ts
|
|
3
|
-
* @input Generated CLDR stand-alone-short weekday table
|
|
4
|
-
* @output Private locale resolver for Calendar weekday headers
|
|
5
|
-
* @position Calendar-internal pure utility; not exported from the package
|
|
6
|
-
*/
|
|
7
|
-
import { type StandaloneShortWeekdayNames } from './standaloneShortWeekdayNames.generated.js';
|
|
8
|
-
/**
|
|
9
|
-
* Resolve generated weekday reference data as exact locale -> language -> English.
|
|
10
|
-
* Unicode extensions are ignored through Intl.Locale.baseName. Invalid tags and
|
|
11
|
-
* valid but unsupported languages safely use English.
|
|
12
|
-
*/
|
|
13
|
-
export declare function getStandaloneShortWeekdayNames(locale: string): StandaloneShortWeekdayNames;
|
|
14
|
-
//# sourceMappingURL=getStandaloneShortWeekdayNames.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getStandaloneShortWeekdayNames.d.ts","sourceRoot":"","sources":["../../src/Calendar/getStandaloneShortWeekdayNames.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,yCAAyC,CAAC;AAOjD;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,GACb,2BAA2B,CAW7B"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @file getStandaloneShortWeekdayNames.ts
|
|
5
|
-
* @input Generated CLDR stand-alone-short weekday table
|
|
6
|
-
* @output Private locale resolver for Calendar weekday headers
|
|
7
|
-
* @position Calendar-internal pure utility; not exported from the package
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { standaloneShortWeekdayNamesByLocale } from "./standaloneShortWeekdayNames.generated.js";
|
|
11
|
-
const weekdayNamesByLocale = standaloneShortWeekdayNamesByLocale;
|
|
12
|
-
const englishWeekdayNames = weekdayNamesByLocale.en;
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Resolve generated weekday reference data as exact locale -> language -> English.
|
|
16
|
-
* Unicode extensions are ignored through Intl.Locale.baseName. Invalid tags and
|
|
17
|
-
* valid but unsupported languages safely use English.
|
|
18
|
-
*/
|
|
19
|
-
export function getStandaloneShortWeekdayNames(locale) {
|
|
20
|
-
try {
|
|
21
|
-
const parsed = new Intl.Locale(locale);
|
|
22
|
-
return weekdayNamesByLocale[parsed.baseName] ?? weekdayNamesByLocale[parsed.language] ?? englishWeekdayNames;
|
|
23
|
-
} catch {
|
|
24
|
-
return englishWeekdayNames;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"standaloneShortWeekdayNames.generated.d.ts","sourceRoot":"","sources":["../../src/Calendar/standaloneShortWeekdayNames.generated.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,MAAM,MAAM,2BAA2B,GAAG,SAAS;IACjD,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC0B,CAAC"}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file usePressPin.ts
|
|
3
|
-
* @input A hover layer's trigger, open state, show and hide, and its
|
|
4
|
-
* `triggerBehavior` and `touchTrigger` options
|
|
5
|
-
* @output usePressPin, the press toggle that pins a hover layer open;
|
|
6
|
-
* isPressPinTrigger; stopPressPinClick; the LayerTriggerBehavior type
|
|
7
|
-
* @position Core-internal: one call per hover layer, useTooltip's. It owns
|
|
8
|
-
* the layer's touch trigger, so the host makes no second touch-trigger call.
|
|
9
|
-
*
|
|
10
|
-
* SYNC: When modified, update:
|
|
11
|
-
* - /packages/core/src/Tooltip/useTooltip.tsx
|
|
12
|
-
* - /packages/core/src/Layer/usePressPin.test.tsx
|
|
13
|
-
*/
|
|
14
|
-
import { type MouseEvent as ReactMouseEvent, type RefObject } from 'react';
|
|
15
|
-
import { type LayerTouchTrigger, type UseTouchTriggerReturn } from './useTouchTrigger.js';
|
|
16
|
-
/**
|
|
17
|
-
* How the trigger opens the layer. `adaptive`, the default, previews it on
|
|
18
|
-
* hover and focus, and `touchTrigger` decides taps. `toggle` pins it on every
|
|
19
|
-
* press of a button trigger. Internal: InfoTip's press-to-pin uses `toggle`.
|
|
20
|
-
*/
|
|
21
|
-
export type LayerTriggerBehavior = 'adaptive' | 'toggle';
|
|
22
|
-
/**
|
|
23
|
-
* The layer component's wrapper handler. It stops a press that pinned or
|
|
24
|
-
* closed the layer in the React tree only, after the trigger's own handlers.
|
|
25
|
-
* No clickable row, card, or container around the trigger then receives it,
|
|
26
|
-
* and document and window listeners still do. An anchored trigger has no
|
|
27
|
-
* wrapper, so a plain `onClick` element around it still receives the press.
|
|
28
|
-
*/
|
|
29
|
-
export declare function stopPressPinClick(event: ReactMouseEvent): void;
|
|
30
|
-
/** Whether presses on this element can pin a layer: a button, by role. */
|
|
31
|
-
export declare function isPressPinTrigger(element: Element): boolean;
|
|
32
|
-
export interface UsePressPinOptions {
|
|
33
|
-
/** The layer's `triggerBehavior`. */
|
|
34
|
-
triggerBehavior: LayerTriggerBehavior;
|
|
35
|
-
/** Whether the layer's triggers are live at all. */
|
|
36
|
-
isEnabled: boolean;
|
|
37
|
-
/** The controlled open value, or `undefined` when uncontrolled. */
|
|
38
|
-
isOpen: boolean | undefined;
|
|
39
|
-
/** Whether the layer shows now. */
|
|
40
|
-
isLayerOpen: boolean;
|
|
41
|
-
/** The layer surface's element id. */
|
|
42
|
-
layerId: string;
|
|
43
|
-
/** The component its development warning names. */
|
|
44
|
-
component: string;
|
|
45
|
-
/** Shows the layer now, with no delay. */
|
|
46
|
-
show: () => void;
|
|
47
|
-
/** Hides the layer now. */
|
|
48
|
-
hide: () => void;
|
|
49
|
-
/** Reports a controlled layer's toggled value without changing it. */
|
|
50
|
-
report: (isOpen: boolean) => void;
|
|
51
|
-
/** The layer's `label`: a press that pins the layer says it once, in place of its text. */
|
|
52
|
-
label?: string;
|
|
53
|
-
/** The layer's `touchTrigger`, which decides taps only under `adaptive`. */
|
|
54
|
-
touchTrigger: LayerTouchTrigger;
|
|
55
|
-
/** The host's trigger element, which the touch trigger reads. */
|
|
56
|
-
triggerRef: RefObject<HTMLElement | null>;
|
|
57
|
-
}
|
|
58
|
-
export interface UsePressPinReturn {
|
|
59
|
-
/** Whether presses on this trigger pin the layer: toggle mode and a button. */
|
|
60
|
-
isToggleTrigger: (element: HTMLElement | null) => boolean;
|
|
61
|
-
/**
|
|
62
|
-
* Whether a press holds the layer open now: a pin on a wired trigger while
|
|
63
|
-
* the layer shows, or a controlled layer's open value. The host's hover and
|
|
64
|
-
* focus hides ask it.
|
|
65
|
-
*/
|
|
66
|
-
isHeldOpen: () => boolean;
|
|
67
|
-
/** Wires the trigger element, or unwires it with `null`. */
|
|
68
|
-
attach: (element: HTMLElement | null) => void;
|
|
69
|
-
/** Drops the pin: Escape, or a hide that came from elsewhere. */
|
|
70
|
-
unpin: () => void;
|
|
71
|
-
/**
|
|
72
|
-
* While pinned, focus moving onto an element outside the trigger and the
|
|
73
|
-
* layer closes it. Returns whether the pin decided. The pin calls it for its
|
|
74
|
-
* trigger, and a host calls it for the layer's own content.
|
|
75
|
-
*/
|
|
76
|
-
handleFocusLeave: (event: FocusEvent) => boolean;
|
|
77
|
-
/**
|
|
78
|
-
* Whether the layer shows pinned on a wired trigger. The host then announces
|
|
79
|
-
* its rendered text, unless the layer has a `label`.
|
|
80
|
-
*/
|
|
81
|
-
isPinShown: boolean;
|
|
82
|
-
/** The layer's touch trigger (useTouchTriggerInternal), wired to the pin. */
|
|
83
|
-
touch: Pick<UseTouchTriggerReturn, 'isTouchPointerRef' | 'isTouchInteraction' | 'handlePointerEnter' | 'handlePointerDown' | 'clearTapOpen'>;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Pins a hover layer open on a press of a button trigger, under
|
|
87
|
-
* `triggerBehavior="toggle"`. The same press closes it, and so do Escape, a
|
|
88
|
-
* press or scroll outside, and focus that leaves the trigger and the layer.
|
|
89
|
-
* The press stops at the trigger. A trigger that is not a button gets a
|
|
90
|
-
* development warning and keeps tap-only opening.
|
|
91
|
-
*/
|
|
92
|
-
export declare function usePressPin(options: UsePressPinOptions): UsePressPinReturn;
|
|
93
|
-
//# sourceMappingURL=usePressPin.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usePressPin.d.ts","sourceRoot":"","sources":["../../src/Layer/usePressPin.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAKL,KAAK,UAAU,IAAI,eAAe,EAClC,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAC;AAE3B;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,QAAQ,CAAC;AAKzD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAI9D;AAED,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAM3D;AAED,MAAM,WAAW,kBAAkB;IACjC,qCAAqC;IACrC,eAAe,EAAE,oBAAoB,CAAC;IACtC,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,mCAAmC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,sEAAsE;IACtE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,2FAA2F;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,YAAY,EAAE,iBAAiB,CAAC;IAChC,iEAAiE;IACjE,UAAU,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,iBAAiB;IAChC,+EAA+E;IAC/E,eAAe,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,OAAO,CAAC;IAC1D;;;;OAIG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,4DAA4D;IAC5D,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9C,iEAAiE;IACjE,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC;IACjD;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB,6EAA6E;IAC7E,KAAK,EAAE,IAAI,CACT,qBAAqB,EACnB,mBAAmB,GACnB,oBAAoB,GACpB,oBAAoB,GACpB,mBAAmB,GACnB,cAAc,CACjB,CAAC;CACH;AAwBD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,iBAAiB,CA+V1E"}
|