@astryxdesign/core 0.7.7 → 0.7.8-canary.0b39b51
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 +5 -0
- package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheet.js +1 -0
- package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetPanel.js +25 -4
- package/dist/BottomSheet/BottomSheetSwitcher.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetSwitcher.js +5 -0
- package/dist/BottomSheet/useMobileKeyboard.d.ts.map +1 -1
- package/dist/BottomSheet/useMobileKeyboard.js +6 -0
- package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
- package/dist/BottomSheet/useSheetGestures.js +12 -1
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/Button/Button.js +17 -1
- package/dist/Calendar/Calendar.d.ts.map +1 -1
- package/dist/Calendar/Calendar.js +15 -16
- 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 +4 -0
- 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/CodeBlock/CodeBlock.d.ts +10 -1
- package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
- package/dist/CodeBlock/CodeBlock.js +28 -11
- package/dist/CommandPalette/CommandPalette.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPalette.js +2 -0
- package/dist/CommandPalette/CommandPaletteItem.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPaletteItem.js +2 -0
- package/dist/ComplexSelector/ComplexSelector.d.ts +4 -1
- package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
- package/dist/ComplexSelector/ComplexSelector.js +14 -4
- package/dist/ContextMenu/ContextMenu.js +2 -2
- package/dist/DateInput/MonthScroller.d.ts.map +1 -1
- package/dist/DateInput/MonthScroller.js +5 -2
- package/dist/DateInput/PickerWheel.d.ts +19 -0
- package/dist/DateInput/PickerWheel.d.ts.map +1 -0
- package/dist/DateInput/PickerWheel.js +625 -0
- package/dist/DateInput/TouchDateField.d.ts.map +1 -1
- package/dist/DateInput/TouchDateField.js +1 -0
- package/dist/DateInput/Wheel.d.ts +18 -37
- package/dist/DateInput/Wheel.d.ts.map +1 -1
- package/dist/DateInput/Wheel.js +84 -113
- package/dist/DateInput/useOwnScrollGesture.d.ts +10 -0
- package/dist/DateInput/useOwnScrollGesture.d.ts.map +1 -1
- package/dist/DateInput/useOwnScrollGesture.js +16 -3
- package/dist/DateInput/usePointerDragScroll.d.ts.map +1 -1
- package/dist/DateInput/usePointerDragScroll.js +2 -0
- package/dist/DateInput/useScrollSettle.d.ts.map +1 -1
- package/dist/DateInput/useScrollSettle.js +3 -0
- package/dist/DateInput/useWheelListbox.d.ts +59 -0
- package/dist/DateInput/useWheelListbox.d.ts.map +1 -0
- package/dist/DateInput/useWheelListbox.js +88 -0
- package/dist/DateInput/wheelOptions.d.ts +74 -0
- package/dist/DateInput/wheelOptions.d.ts.map +1 -0
- package/dist/DateInput/wheelOptions.js +98 -0
- package/dist/DateInput/wheelPhysics.d.ts +127 -0
- package/dist/DateInput/wheelPhysics.d.ts.map +1 -0
- package/dist/DateInput/wheelPhysics.js +341 -0
- package/dist/DateInput/wheelStrip.d.ts +92 -0
- package/dist/DateInput/wheelStrip.d.ts.map +1 -0
- package/dist/DateInput/wheelStrip.js +258 -0
- package/dist/DateTimeInput/TouchDateTimeField.d.ts.map +1 -1
- package/dist/DateTimeInput/TouchDateTimeField.js +2 -0
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +9 -32
- package/dist/Drawer/useDrawerDialogPresence.d.ts.map +1 -1
- package/dist/Drawer/useDrawerDialogPresence.js +3 -0
- package/dist/DropdownMenu/useMenuOverflow.d.ts.map +1 -1
- package/dist/DropdownMenu/useMenuOverflow.js +5 -0
- package/dist/Field/Field.js +2 -2
- package/dist/FieldStatus/useFieldStatusAnnouncement.d.ts.map +1 -1
- package/dist/FieldStatus/useFieldStatusAnnouncement.js +1 -0
- package/dist/FormLayout/FormLayout.d.ts +5 -1
- package/dist/FormLayout/FormLayout.d.ts.map +1 -1
- package/dist/HoverCard/HoverCard.d.ts +6 -4
- package/dist/HoverCard/HoverCard.d.ts.map +1 -1
- package/dist/HoverCard/HoverCard.js +48 -3
- package/dist/HoverCard/useHoverCard.d.ts +5 -4
- package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
- package/dist/HoverCard/useHoverCard.js +20 -33
- package/dist/Icon/Icon.d.ts +5 -1
- package/dist/Icon/Icon.d.ts.map +1 -1
- package/dist/Icon/Icon.js +5 -2
- package/dist/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 +3 -0
- package/dist/Layer/useLayerDismissal.d.ts.map +1 -1
- package/dist/Layer/useLayerDismissal.js +3 -0
- package/dist/Layer/usePressPin.d.ts +17 -5
- package/dist/Layer/usePressPin.d.ts.map +1 -1
- package/dist/Layer/usePressPin.js +62 -12
- package/dist/Layer/useTouchTrigger.d.ts.map +1 -1
- package/dist/Layer/useTouchTrigger.js +3 -0
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +19 -0
- package/dist/MobileNav/MobileNav.d.ts +3 -2
- package/dist/MobileNav/MobileNav.d.ts.map +1 -1
- package/dist/MobileNav/MobileNav.js +9 -25
- package/dist/Outline/useOutlineFromDOM.d.ts.map +1 -1
- package/dist/Outline/useOutlineFromDOM.js +3 -0
- package/dist/Outline/useScrollSpy.d.ts.map +1 -1
- package/dist/Outline/useScrollSpy.js +3 -0
- package/dist/OverflowList/OverflowList.d.ts.map +1 -1
- package/dist/OverflowList/OverflowList.js +3 -0
- package/dist/Popover/Popover.d.ts.map +1 -1
- package/dist/Popover/Popover.js +6 -0
- package/dist/PowerSearch/PowerSearch.d.ts +43 -4
- package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.js +445 -134
- package/dist/PowerSearch/PowerSearchBottomSheet.d.ts +102 -0
- package/dist/PowerSearch/PowerSearchBottomSheet.d.ts.map +1 -0
- package/dist/PowerSearch/PowerSearchBottomSheet.js +1919 -0
- package/dist/PowerSearch/PowerSearchEditPopover.d.ts +35 -2
- package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchEditPopover.js +25 -6
- 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 +7 -2
- package/dist/PowerSearch/PowerSearchValueEditor.d.ts +38 -3
- package/dist/PowerSearch/PowerSearchValueEditor.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchValueEditor.js +193 -83
- package/dist/PowerSearch/formatFilterValue.d.ts +18 -6
- package/dist/PowerSearch/formatFilterValue.d.ts.map +1 -1
- package/dist/PowerSearch/formatFilterValue.js +33 -12
- package/dist/PowerSearch/formatTokenValue.d.ts +28 -0
- package/dist/PowerSearch/formatTokenValue.d.ts.map +1 -0
- package/dist/PowerSearch/formatTokenValue.js +162 -0
- package/dist/PowerSearch/powerSearchDateZone.d.ts +21 -0
- package/dist/PowerSearch/powerSearchDateZone.d.ts.map +1 -0
- package/dist/PowerSearch/powerSearchDateZone.js +37 -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 +2 -0
- package/dist/PowerSearch/types.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBarTouch.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBarTouch.js +2 -0
- package/dist/RadioList/RadioList.d.ts.map +1 -1
- package/dist/RadioList/RadioList.js +3 -2
- package/dist/RadioList/RadioListItem.d.ts +1 -1
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +5 -3
- package/dist/Resizable/ResizeHandle.d.ts +2 -1
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +101 -77
- package/dist/Resizable/createResizable.d.ts +145 -0
- package/dist/Resizable/createResizable.d.ts.map +1 -0
- package/dist/Resizable/createResizable.js +575 -0
- package/dist/Resizable/useResizable.d.ts +3 -3
- package/dist/Resizable/useResizable.d.ts.map +1 -1
- package/dist/Resizable/useResizable.js +252 -459
- package/dist/SegmentedControl/useSegmentedSelectionMotion.d.ts.map +1 -1
- package/dist/SegmentedControl/useSegmentedSelectionMotion.js +3 -3
- package/dist/SelectableCard/SelectableCard.d.ts +2 -0
- package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
- package/dist/SelectableCard/SelectableCard.js +36 -11
- package/dist/SelectableCard/selectableCardInput.d.ts +12 -0
- package/dist/SelectableCard/selectableCardInput.d.ts.map +1 -0
- package/dist/SelectableCard/selectableCardInput.js +20 -0
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +5 -8
- 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/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +4 -10
- package/dist/Switch/useSwitchTouch.js +4 -4
- package/dist/Table/BaseTable.d.ts.map +1 -1
- package/dist/Table/BaseTable.js +29 -8
- package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
- package/dist/Table/plugins/columnResize/useTableColumnResize.js +3 -1
- package/dist/Table/plugins/filtering/useTableFiltering.d.ts.map +1 -1
- package/dist/Table/plugins/filtering/useTableFiltering.js +2 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +4 -0
- package/dist/Table/plugins/stickyColumns/useTableStickyColumns.d.ts.map +1 -1
- package/dist/Table/plugins/stickyColumns/useTableStickyColumns.js +2 -0
- package/dist/TextInput/TextInput.d.ts +2 -2
- package/dist/TextInput/TextInput.d.ts.map +1 -1
- package/dist/TextInput/TextInput.js +10 -7
- package/dist/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/TimeInput/TimeInput.js +2 -0
- package/dist/TimeInput/TouchTimeField.d.ts.map +1 -1
- package/dist/TimeInput/TouchTimeField.js +2 -0
- package/dist/Timer/Timer.d.ts.map +1 -1
- package/dist/Timer/Timer.js +2 -0
- package/dist/Timestamp/Timestamp.js +1 -1
- package/dist/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 +49 -37
- package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.js +22 -19
- package/dist/Tokenizer/TokenizerBottomSheet.d.ts +1 -1
- package/dist/Tokenizer/TokenizerBottomSheet.js +1 -1
- package/dist/Tokenizer/index.d.ts +1 -1
- package/dist/Tokenizer/index.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.d.ts +19 -1
- package/dist/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.js +34 -53
- 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 +39 -6
- package/dist/gestures/GestureHost.d.ts +16 -1
- package/dist/gestures/GestureHost.d.ts.map +1 -1
- package/dist/gestures/GestureHost.js +1 -1
- package/dist/gestures/PressTracker.d.ts.map +1 -1
- package/dist/gestures/PressTracker.js +4 -3
- package/dist/hooks/ModalAnnounceProvider.d.ts.map +1 -1
- package/dist/hooks/ModalAnnounceProvider.js +1 -0
- package/dist/hooks/actionGroupTracker.d.ts +4 -1
- package/dist/hooks/actionGroupTracker.d.ts.map +1 -1
- package/dist/hooks/actionGroupTracker.js +13 -3
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/longPressDetector.d.ts +66 -0
- package/dist/hooks/longPressDetector.d.ts.map +1 -0
- package/dist/hooks/longPressDetector.js +200 -0
- package/dist/hooks/pressGroupContext.d.ts +6 -0
- package/dist/hooks/pressGroupContext.d.ts.map +1 -0
- package/dist/hooks/pressGroupContext.js +20 -0
- package/dist/hooks/rootScrollStyles.d.ts +48 -0
- package/dist/hooks/rootScrollStyles.d.ts.map +1 -0
- package/dist/hooks/rootScrollStyles.js +207 -0
- package/dist/hooks/scrollLockTouchGuard.d.ts +13 -0
- package/dist/hooks/scrollLockTouchGuard.d.ts.map +1 -0
- package/dist/hooks/scrollLockTouchGuard.js +134 -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/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 +7 -9
- package/dist/hooks/useScrollLock.d.ts.map +1 -1
- package/dist/hooks/useScrollLock.js +55 -48
- package/dist/hooks/useScrollableArea.d.ts.map +1 -1
- package/dist/hooks/useScrollableArea.js +5 -0
- package/dist/hooks/useStreamingText.d.ts.map +1 -1
- package/dist/hooks/useStreamingText.js +3 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.d.ts +8 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.d.ts.map +1 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.js +42 -0
- package/dist/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.d.ts.map +1 -1
- package/dist/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.js +6 -0
- package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.d.ts +8 -0
- package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.d.ts.map +1 -0
- package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.js +14 -0
- package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/en.generated.js +30 -0
- package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/pseudo.generated.js +30 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/internal/indicatorPress.stylex.d.ts +20 -0
- package/dist/internal/indicatorPress.stylex.d.ts.map +1 -0
- package/dist/internal/indicatorPress.stylex.js +26 -0
- package/dist/internal/selectable-card.d.ts +21 -0
- package/dist/internal/selectable-card.d.ts.map +1 -0
- package/dist/internal/selectable-card.js +20 -0
- package/dist/internal/sheetDraft.d.ts +2 -2
- package/dist/internal/sheetDraft.js +2 -2
- package/dist/motion/animatedLayout.d.ts.map +1 -1
- package/dist/motion/animatedLayout.js +7 -7
- package/dist/motion/animator.d.ts +14 -14
- package/dist/motion/animator.d.ts.map +1 -1
- package/dist/motion/animator.js +45 -20
- package/dist/motion/progress.d.ts +88 -0
- package/dist/motion/progress.d.ts.map +1 -0
- package/dist/motion/progress.js +128 -0
- package/dist/motion/reducedMotion.d.ts.map +1 -1
- package/dist/motion/reducedMotion.js +3 -1
- package/dist/motion/uikit/alert.d.ts +41 -0
- package/dist/motion/uikit/alert.d.ts.map +1 -0
- package/dist/motion/uikit/alert.js +43 -0
- package/dist/motion/uikit/index.d.ts +4 -3
- package/dist/motion/uikit/index.d.ts.map +1 -1
- package/dist/motion/uikit/index.js +4 -3
- package/dist/motion/uikit/picker.d.ts +96 -0
- package/dist/motion/uikit/picker.d.ts.map +1 -0
- package/dist/motion/uikit/picker.js +117 -0
- package/dist/privateAttributes/pressGroupItem.stylex.d.ts +22 -0
- package/dist/privateAttributes/pressGroupItem.stylex.d.ts.map +1 -0
- package/dist/privateAttributes/pressGroupItem.stylex.js +36 -0
- package/dist/privateAttributes/reducedMotion.stylex.d.ts +23 -0
- package/dist/privateAttributes/reducedMotion.stylex.d.ts.map +1 -0
- package/dist/privateAttributes/reducedMotion.stylex.js +40 -0
- package/dist/theme/Theme.d.ts.map +1 -1
- package/dist/theme/Theme.js +29 -4
- package/dist/theme/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 +7 -0
- package/dist/utils/dateParser.d.ts.map +1 -1
- package/dist/utils/dateParser.js +12 -0
- package/dist/utils/focusReturn.d.ts +15 -0
- package/dist/utils/focusReturn.d.ts.map +1 -1
- package/dist/utils/focusReturn.js +28 -0
- package/dist/utils/interactionModality.d.ts.map +1 -1
- package/dist/utils/interactionModality.js +4 -0
- package/dist/utils/interactionOverlay.stylex.d.ts +3 -2
- package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
- package/dist/utils/interactionOverlay.stylex.js +3 -2
- package/dist/utils/plainDate.d.ts +8 -0
- package/dist/utils/plainDate.d.ts.map +1 -1
- package/dist/utils/plainDate.js +19 -0
- package/dist/utils/pressFeedback.d.ts.map +1 -1
- package/dist/utils/pressFeedback.js +20 -6
- package/dist/utils/triggerFocus.d.ts +36 -0
- package/dist/utils/triggerFocus.d.ts.map +1 -0
- package/dist/utils/triggerFocus.js +65 -0
- package/locales/en.json +120 -0
- package/locales/pseudo.json +90 -0
- package/package.json +14 -9
- package/src/AlertDialog/AlertDialog.doc.mjs +2 -2
- package/src/AlertDialog/AlertDialog.tsx +46 -5
- package/src/AppShell/AppShell.tsx +4 -0
- package/src/BottomSheet/BottomSheet.tsx +1 -0
- package/src/BottomSheet/BottomSheetPanel.tsx +39 -3
- package/src/BottomSheet/BottomSheetSwitcher.tsx +5 -0
- package/src/BottomSheet/useMobileKeyboard.ts +4 -0
- package/src/BottomSheet/useSheetGestures.ts +10 -1
- package/src/Button/Button.tsx +26 -4
- package/src/Calendar/Calendar.tsx +36 -25
- package/src/Carousel/Carousel.tsx +1 -0
- package/src/Chat/ChatComposerInput.tsx +2 -0
- 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/CodeBlock/CodeBlock.doc.mjs +9 -1
- package/src/CodeBlock/CodeBlock.tsx +41 -4
- package/src/CommandPalette/CommandPalette.tsx +1 -0
- package/src/CommandPalette/CommandPaletteItem.tsx +1 -0
- package/src/ComplexSelector/ComplexSelector.tsx +20 -5
- package/src/ContextMenu/ContextMenu.tsx +2 -2
- package/src/DateInput/MonthScroller.tsx +8 -2
- package/src/DateInput/PickerWheel.tsx +765 -0
- package/src/DateInput/TouchDateField.tsx +1 -0
- package/src/DateInput/Wheel.tsx +94 -150
- package/src/DateInput/useOwnScrollGesture.ts +25 -3
- package/src/DateInput/usePointerDragScroll.ts +1 -0
- package/src/DateInput/useScrollSettle.ts +2 -0
- package/src/DateInput/useWheelListbox.ts +112 -0
- package/src/DateInput/wheelOptions.ts +155 -0
- package/src/DateInput/wheelPhysics.ts +406 -0
- package/src/DateInput/wheelStrip.ts +341 -0
- package/src/DateTimeInput/TouchDateTimeField.tsx +2 -0
- package/src/Dialog/Dialog.tsx +12 -32
- package/src/Drawer/useDrawerDialogPresence.ts +2 -0
- package/src/DropdownMenu/useMenuOverflow.ts +3 -0
- package/src/Field/Field.tsx +2 -2
- package/src/FieldStatus/useFieldStatusAnnouncement.ts +1 -0
- package/src/FormLayout/FormLayout.doc.mjs +181 -46
- package/src/FormLayout/FormLayout.tsx +5 -1
- package/src/HoverCard/HoverCard.doc.mjs +10 -8
- package/src/HoverCard/HoverCard.tsx +58 -6
- package/src/HoverCard/useHoverCard.doc.mjs +178 -36
- package/src/HoverCard/useHoverCard.tsx +49 -54
- package/src/Icon/Icon.doc.mjs +49 -8
- package/src/Icon/Icon.tsx +15 -7
- package/src/IconButton/IconButton.doc.mjs +141 -21
- 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 +2 -0
- package/src/Layer/useLayerDismissal.ts +2 -0
- package/src/Layer/usePressPin.ts +81 -15
- package/src/Layer/useTouchTrigger.ts +2 -0
- package/src/Lightbox/Lightbox.tsx +19 -0
- package/src/MobileNav/MobileNav.tsx +9 -30
- package/src/Outline/useOutlineFromDOM.ts +2 -0
- package/src/Outline/useScrollSpy.ts +2 -0
- package/src/OverflowList/OverflowList.tsx +2 -0
- package/src/Popover/Popover.tsx +4 -0
- package/src/PowerSearch/PowerSearch.doc.mjs +60 -8
- package/src/PowerSearch/PowerSearch.tsx +627 -157
- package/src/PowerSearch/PowerSearchBottomSheet.tsx +2525 -0
- package/src/PowerSearch/PowerSearchEditPopover.tsx +39 -6
- package/src/PowerSearch/PowerSearchFilterEditor.tsx +2 -0
- package/src/PowerSearch/PowerSearchToken.tsx +7 -0
- package/src/PowerSearch/PowerSearchValueEditor.tsx +244 -58
- package/src/PowerSearch/formatFilterValue.ts +55 -17
- package/src/PowerSearch/formatTokenValue.ts +222 -0
- package/src/PowerSearch/powerSearchDateZone.ts +64 -0
- package/src/PowerSearch/powerSearchSheetUtils.ts +224 -0
- package/src/PowerSearch/types.ts +2 -0
- package/src/ProgressBar/ProgressBarTouch.ts +2 -0
- package/src/RadioList/RadioList.tsx +3 -2
- package/src/RadioList/RadioListItem.tsx +5 -3
- package/src/Resizable/Resizable.doc.mjs +5 -4
- package/src/Resizable/ResizeHandle.tsx +169 -109
- package/src/Resizable/createResizable.ts +831 -0
- package/src/Resizable/useResizable.ts +292 -623
- package/src/SegmentedControl/useSegmentedSelectionMotion.ts +6 -3
- package/src/SelectableCard/SelectableCard.tsx +39 -10
- package/src/SelectableCard/selectableCardInput.ts +30 -0
- package/src/Selector/Selector.tsx +5 -12
- package/src/Slider/sliderTouchController.ts +2 -2
- package/src/Spinner/Spinner.tsx +77 -63
- package/src/Switch/Switch.tsx +2 -6
- package/src/Switch/useSwitchTouch.ts +4 -4
- package/src/Table/BaseTable.tsx +46 -12
- package/src/Table/plugins/columnResize/useTableColumnResize.tsx +2 -1
- package/src/Table/plugins/filtering/useTableFiltering.tsx +1 -0
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +4 -0
- package/src/Table/plugins/stickyColumns/useTableStickyColumns.tsx +2 -0
- package/src/TextInput/TextInput.tsx +11 -10
- package/src/TimeInput/TimeInput.tsx +2 -0
- package/src/TimeInput/TouchTimeField.tsx +2 -0
- package/src/Timer/Timer.tsx +1 -0
- package/src/Timestamp/Timestamp.tsx +1 -1
- package/src/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 +19 -3
- package/src/Tokenizer/Tokenizer.tsx +73 -51
- package/src/Tokenizer/TokenizerBottomSheet.tsx +1 -1
- package/src/Tokenizer/index.ts +1 -0
- package/src/Tooltip/useTooltip.doc.mjs +24 -0
- package/src/Tooltip/useTooltip.tsx +61 -56
- package/src/Typeahead/BaseTypeahead.tsx +27 -17
- package/src/Typeahead/TypeaheadItem.doc.mjs +6 -3
- package/src/Typeahead/TypeaheadItem.tsx +2 -1
- package/src/animator/createAnimator.doc.mjs +153 -0
- package/src/animator/createAnimator.ts +324 -0
- package/src/gestures/GestureHost.ts +1 -1
- package/src/gestures/PressTracker.ts +4 -3
- package/src/gestures/README.md +10 -4
- package/src/hooks/ModalAnnounceProvider.tsx +1 -0
- package/src/hooks/actionGroupTracker.ts +20 -5
- package/src/hooks/index.ts +2 -0
- package/src/hooks/longPressDetector.ts +273 -0
- package/src/hooks/pressGroupContext.ts +21 -0
- package/src/hooks/rootScrollStyles.ts +247 -0
- package/src/hooks/scrollLockTouchGuard.ts +182 -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 +57 -60
- package/src/hooks/useScrollableArea.ts +4 -0
- package/src/hooks/useStreamingText.ts +2 -0
- package/src/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.ts +43 -0
- package/src/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.ts +6 -0
- package/src/i18n/generated-english/PowerSearch/formatTokenValue.generated.ts +15 -0
- package/src/i18n/generated-locales/en.generated.ts +41 -0
- package/src/i18n/generated-locales/pseudo.generated.ts +42 -0
- package/src/index.ts +13 -0
- package/src/internal/indicatorPress.stylex.ts +24 -0
- package/src/internal/selectable-card.ts +21 -0
- package/src/internal/sheetDraft.ts +2 -2
- package/src/motion/MEASUREMENTS.md +18 -0
- package/src/motion/README.md +10 -5
- package/src/motion/animatedLayout.ts +10 -5
- package/src/motion/animator.ts +66 -31
- package/src/motion/progress.ts +155 -0
- package/src/motion/reducedMotion.ts +3 -1
- package/src/motion/uikit/alert.ts +43 -0
- package/src/motion/uikit/index.ts +4 -3
- package/src/motion/uikit/picker.ts +116 -0
- package/src/privateAttributes/pressGroupItem.stylex.ts +44 -0
- package/src/privateAttributes/reducedMotion.stylex.ts +45 -0
- package/src/theme/Theme.tsx +37 -3
- package/src/theme/motionKnobs.ts +4 -3
- package/src/theme/themeMotion.ts +7 -0
- package/src/utils/dateParser.ts +16 -0
- package/src/utils/focusReturn.ts +30 -0
- package/src/utils/interactionModality.ts +4 -0
- package/src/utils/interactionOverlay.stylex.ts +3 -2
- package/src/utils/plainDate.ts +21 -0
- package/src/utils/pressFeedback.ts +24 -6
- package/src/utils/triggerFocus.ts +80 -0
- 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/internal/touch-sheet.ts +0 -21
|
@@ -0,0 +1,575 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file createResizable.ts
|
|
5
|
+
* @input A region's options
|
|
6
|
+
* @output createResizable; readInitialResizableState for the hook's first
|
|
7
|
+
* render; createResizableAs and the internal channel for the hook
|
|
8
|
+
* @position The Resizable family's region, internal to the package. The
|
|
9
|
+
* configuration-object useResizable builds on it, and ResizeHandle drives
|
|
10
|
+
* it through resizeGesture.ts's model. Importing it does no DOM work
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import { observeResize } from "../utils/sharedResizeObserver.js";
|
|
14
|
+
import { devWarn } from "../utils/devWarning.js";
|
|
15
|
+
import { DEFAULT_COLLAPSED_SIZE, DEFAULT_MIN, DEFAULT_SIZE_FALLBACK, RESIZABLE_SIZE_GUIDANCE, SERVER_BASIS, clampSize, dependsOnBasis, loadPersistedState, measureContentBox, parseSize, persistState, resolveBound } from "./resizableModel.js";
|
|
16
|
+
/** The viewport width, the basis without a container. */
|
|
17
|
+
function readViewportBasis() {
|
|
18
|
+
return typeof window === 'undefined' ? SERVER_BASIS : window.innerWidth;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/** The window's extent along the axis, for an unbounded region's maximum. */
|
|
22
|
+
function readWindowExtent(direction) {
|
|
23
|
+
if (typeof window === 'undefined') {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
return direction === 'vertical' ? window.innerHeight : window.innerWidth;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/** A warning already given, so a resolution repeated silently stays quiet. */
|
|
30
|
+
const QUIET = {
|
|
31
|
+
current: true
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The state a region with `options` starts in: the server's render and a
|
|
36
|
+
* hook's first render. A container is not measured
|
|
37
|
+
* yet, so a percentage of it resolves against the deterministic 1200px basis
|
|
38
|
+
* until the factory measures it. `'server'` reads the state the server
|
|
39
|
+
* rendered, for a render that hydrates it: the 1200px basis for a viewport
|
|
40
|
+
* percentage too, and nothing saved.
|
|
41
|
+
*/
|
|
42
|
+
export function readInitialResizableState(options = {}, environment = 'client') {
|
|
43
|
+
const {
|
|
44
|
+
defaultSize,
|
|
45
|
+
minSize,
|
|
46
|
+
maxSize,
|
|
47
|
+
containerRef,
|
|
48
|
+
collapsible = false,
|
|
49
|
+
snaps = [],
|
|
50
|
+
autoSaveId,
|
|
51
|
+
defaultIsCollapsed,
|
|
52
|
+
isCollapsed: controlled
|
|
53
|
+
} = options;
|
|
54
|
+
const isServer = environment === 'server';
|
|
55
|
+
const persisted = autoSaveId && !isServer ? loadPersistedState(autoSaveId) : null;
|
|
56
|
+
const parsedDefault = parseSize(defaultSize);
|
|
57
|
+
const parsedMin = parseSize(minSize);
|
|
58
|
+
const parsedMax = parseSize(maxSize);
|
|
59
|
+
const hasContainer = containerRef != null;
|
|
60
|
+
const needsContainer = hasContainer && (dependsOnBasis(parsedMin) || dependsOnBasis(parsedMax) || persisted?.size == null && dependsOnBasis(parsedDefault));
|
|
61
|
+
const basis = hasContainer || isServer ? SERVER_BASIS : readViewportBasis();
|
|
62
|
+
const min = resolveBound(minSize, parsedMin, basis, DEFAULT_MIN, 'minSize', RESIZABLE_SIZE_GUIDANCE, QUIET);
|
|
63
|
+
const max = resolveBound(maxSize, parsedMax, basis, Infinity, 'maxSize', RESIZABLE_SIZE_GUIDANCE, QUIET);
|
|
64
|
+
const defaultPx = resolveBound(defaultSize, parsedDefault, basis, DEFAULT_SIZE_FALLBACK, 'defaultSize', RESIZABLE_SIZE_GUIDANCE, QUIET);
|
|
65
|
+
const chosen = persisted?.size ?? (needsContainer ? null : clampSize(defaultPx, min, max, snaps));
|
|
66
|
+
const size = clampSize(chosen ?? defaultPx, min, max, snaps);
|
|
67
|
+
const isCollapsed = collapsible && (controlled !== undefined ? controlled : persisted?.isCollapsed ?? defaultIsCollapsed ?? false);
|
|
68
|
+
// A container is not measured yet; without one the window's extent stands
|
|
69
|
+
// in for a missing maximum, as the factory reports it.
|
|
70
|
+
const windowExtent = hasContainer || isServer ? null : readWindowExtent(options.direction ?? 'horizontal');
|
|
71
|
+
return {
|
|
72
|
+
size: isCollapsed ? 0 : size,
|
|
73
|
+
isCollapsed,
|
|
74
|
+
expandedSize: size,
|
|
75
|
+
minPx: min,
|
|
76
|
+
maxPx: max,
|
|
77
|
+
effectiveMaxPx: max !== Infinity ? max : windowExtent == null ? undefined : Math.max(windowExtent, isCollapsed ? min : size)
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* What a React form of the region renders. A change to any part replaces it
|
|
83
|
+
* as a whole. It holds the size (0 while collapsed), the collapse state, the
|
|
84
|
+
* size as expanded, and the bounds the handle announces.
|
|
85
|
+
*/
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* The package's own channel into a factory, for useResizable: kept off the
|
|
89
|
+
* exported ResizableController, so it adds no public member.
|
|
90
|
+
*/
|
|
91
|
+
|
|
92
|
+
const internals = new WeakMap();
|
|
93
|
+
|
|
94
|
+
/** The factory's internal channel, or undefined for anything else. */
|
|
95
|
+
export function readResizableInternals(controller) {
|
|
96
|
+
return internals.get(controller);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* A resizable region, without React. The factory never sizes the panel: it
|
|
101
|
+
* reports the size, and the caller applies it. It resolves, clamps, snaps,
|
|
102
|
+
* collapses and saves the size, and a percentage follows its basis.
|
|
103
|
+
* `destroy` stops its observers.
|
|
104
|
+
*/
|
|
105
|
+
export function createResizable(options = {}) {
|
|
106
|
+
return createResizableAs('createResizable', options);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Who a factory's development warnings speak for: the bare factory, or the
|
|
111
|
+
* configuration-object useResizable built on it, whose warnings keep the
|
|
112
|
+
* hook's name and words.
|
|
113
|
+
*/
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* createResizable, with its development warnings in the words of `source`:
|
|
117
|
+
* the package's own entry, for useResizable.
|
|
118
|
+
*/
|
|
119
|
+
export function createResizableAs(source, options = {}) {
|
|
120
|
+
// The configuration-object useResizable keeps its warnings word for word.
|
|
121
|
+
const isHook = source === 'useResizable';
|
|
122
|
+
let opts = options;
|
|
123
|
+
let isDestroyed = false;
|
|
124
|
+
// Let go of the page by `suspend`, with the region kept.
|
|
125
|
+
let isSuspended = false;
|
|
126
|
+
const listeners = new Set();
|
|
127
|
+
const didWarn = {
|
|
128
|
+
min: {
|
|
129
|
+
current: false
|
|
130
|
+
},
|
|
131
|
+
max: {
|
|
132
|
+
current: false
|
|
133
|
+
},
|
|
134
|
+
defaultSize: {
|
|
135
|
+
current: false
|
|
136
|
+
},
|
|
137
|
+
inverted: false
|
|
138
|
+
};
|
|
139
|
+
let persistedKey = opts.autoSaveId;
|
|
140
|
+
let persisted = persistedKey ? loadPersistedState(persistedKey) : null;
|
|
141
|
+
|
|
142
|
+
// The percentage basis. The container is followed through the shared
|
|
143
|
+
// observer only while some option needs it; the viewport only while a
|
|
144
|
+
// percentage bound needs it.
|
|
145
|
+
let containerElement = null;
|
|
146
|
+
let observedDirection = null;
|
|
147
|
+
let containerBasis = null;
|
|
148
|
+
let stopObservingContainer = null;
|
|
149
|
+
let isSubscribing = false;
|
|
150
|
+
let isObservingViewport = false;
|
|
151
|
+
|
|
152
|
+
// One stable basis per gesture: a container that resizes mid-drag would
|
|
153
|
+
// otherwise move the bound under the pointer.
|
|
154
|
+
let gestureBasis = null;
|
|
155
|
+
let isGestureActive = false;
|
|
156
|
+
let dragStartSize = 0;
|
|
157
|
+
let initialDefault = null;
|
|
158
|
+
let chosenSize;
|
|
159
|
+
let committedBounds = null;
|
|
160
|
+
let uncontrolledIsCollapsed = persisted?.isCollapsed ?? opts.defaultIsCollapsed ?? false;
|
|
161
|
+
|
|
162
|
+
// What the region last computed, notified and wrote.
|
|
163
|
+
let derived = {
|
|
164
|
+
size: 0,
|
|
165
|
+
isCollapsed: false,
|
|
166
|
+
min: DEFAULT_MIN,
|
|
167
|
+
max: Infinity,
|
|
168
|
+
effectiveMax: undefined,
|
|
169
|
+
isBasisMeasured: true
|
|
170
|
+
};
|
|
171
|
+
let notified = null;
|
|
172
|
+
let written = null;
|
|
173
|
+
let mustWrite = false;
|
|
174
|
+
let snapshot = null;
|
|
175
|
+
const snapshotListeners = new Set();
|
|
176
|
+
const direction = () => opts.direction ?? 'horizontal';
|
|
177
|
+
const collapsible = () => opts.collapsible ?? false;
|
|
178
|
+
const isControlled = () => opts.isCollapsed !== undefined;
|
|
179
|
+
const snaps = () => opts.snaps ?? [];
|
|
180
|
+
const onViewportResize = () => {
|
|
181
|
+
commit();
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
/** Which bases the options need followed right now. */
|
|
185
|
+
function observation() {
|
|
186
|
+
const parsedDefault = parseSize(opts.defaultSize);
|
|
187
|
+
const boundsDependOnBasis = dependsOnBasis(parseSize(opts.minSize)) || dependsOnBasis(parseSize(opts.maxSize));
|
|
188
|
+
const defaultNeedsInitialBasis = persisted?.size == null && dependsOnBasis(parsedDefault) && initialDefault?.isFinal !== true;
|
|
189
|
+
const hasContainer = opts.containerRef != null;
|
|
190
|
+
return {
|
|
191
|
+
hasContainer,
|
|
192
|
+
container: hasContainer && (boundsDependOnBasis || defaultNeedsInitialBasis),
|
|
193
|
+
viewport: !hasContainer && boundsDependOnBasis
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/** Follow the bases `observation()` names, and nothing else. */
|
|
198
|
+
function syncObservation() {
|
|
199
|
+
const needs = observation();
|
|
200
|
+
const element = needs.container ? opts.containerRef?.current ?? null : null;
|
|
201
|
+
if (element !== containerElement || observedDirection !== direction()) {
|
|
202
|
+
stopObservingContainer?.();
|
|
203
|
+
stopObservingContainer = null;
|
|
204
|
+
containerElement = element;
|
|
205
|
+
containerBasis = null;
|
|
206
|
+
observedDirection = direction();
|
|
207
|
+
if (element != null) {
|
|
208
|
+
// The observer measures once as it registers; that measurement is
|
|
209
|
+
// read by the computation this call is part of.
|
|
210
|
+
isSubscribing = true;
|
|
211
|
+
const observed = element;
|
|
212
|
+
stopObservingContainer = observeResize(observed, entry => {
|
|
213
|
+
containerBasis = measureContentBox(observed, direction(), entry);
|
|
214
|
+
if (!isSubscribing) {
|
|
215
|
+
commit();
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
isSubscribing = false;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
const watchViewport = needs.viewport && typeof window !== 'undefined';
|
|
222
|
+
if (watchViewport && !isObservingViewport) {
|
|
223
|
+
window.addEventListener('resize', onViewportResize);
|
|
224
|
+
isObservingViewport = true;
|
|
225
|
+
} else if (!watchViewport && isObservingViewport) {
|
|
226
|
+
window.removeEventListener('resize', onViewportResize);
|
|
227
|
+
isObservingViewport = false;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/** The region's state from its options, its basis and its selection. */
|
|
232
|
+
function compute() {
|
|
233
|
+
const needs = observation();
|
|
234
|
+
const hasPositiveMeasurement = containerBasis != null && containerBasis > 0;
|
|
235
|
+
// Before a supplied container is measured, the deterministic 1200px
|
|
236
|
+
// stands in. It also stands in while the container measures 0, as a
|
|
237
|
+
// hidden or detached one does. The first real measurement replaces it.
|
|
238
|
+
const liveBasis = needs.hasContainer ? hasPositiveMeasurement ? containerBasis : SERVER_BASIS : readViewportBasis();
|
|
239
|
+
const isBasisMeasured = needs.container ? hasPositiveMeasurement : true;
|
|
240
|
+
const basis = gestureBasis ?? liveBasis;
|
|
241
|
+
const min = resolveBound(opts.minSize, parseSize(opts.minSize), basis, DEFAULT_MIN, 'minSize', RESIZABLE_SIZE_GUIDANCE, didWarn.min, source);
|
|
242
|
+
const max = resolveBound(opts.maxSize, parseSize(opts.maxSize), basis, Infinity, 'maxSize', RESIZABLE_SIZE_GUIDANCE, didWarn.max, source);
|
|
243
|
+
// A basis-dependent default resolves ONCE into a pixel size; it is final
|
|
244
|
+
// once its basis is real.
|
|
245
|
+
if (initialDefault == null || !initialDefault.isFinal) {
|
|
246
|
+
initialDefault = {
|
|
247
|
+
px: resolveBound(opts.defaultSize, parseSize(opts.defaultSize), basis, DEFAULT_SIZE_FALLBACK, 'defaultSize', RESIZABLE_SIZE_GUIDANCE, didWarn.defaultSize, source),
|
|
248
|
+
isFinal: isBasisMeasured
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
const defaultPx = initialDefault.px;
|
|
252
|
+
if (chosenSize === undefined) {
|
|
253
|
+
chosenSize = persisted?.size ?? (isBasisMeasured ? clampSize(defaultPx, min, max, snaps()) : null);
|
|
254
|
+
}
|
|
255
|
+
if (isBasisMeasured && chosenSize == null) {
|
|
256
|
+
// The container is measured now: the selection the temporary basis
|
|
257
|
+
// stood in for is made against the real one. Not an interaction, so it
|
|
258
|
+
// reports nothing through onSizeChange.
|
|
259
|
+
chosenSize = clampSize(defaultPx, min, max, snaps());
|
|
260
|
+
}
|
|
261
|
+
// A re-resolved bound clamps the SELECTION, once the basis is final and
|
|
262
|
+
// no gesture holds it.
|
|
263
|
+
if (isBasisMeasured && gestureBasis == null && (committedBounds == null || committedBounds.min !== min || committedBounds.max !== max)) {
|
|
264
|
+
committedBounds = {
|
|
265
|
+
min,
|
|
266
|
+
max
|
|
267
|
+
};
|
|
268
|
+
if (chosenSize != null) {
|
|
269
|
+
chosenSize = clampSize(chosenSize, min, max, snaps());
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
const size = clampSize(chosenSize ?? defaultPx, min, max, snaps());
|
|
273
|
+
const isCollapsed = collapsible() && (isControlled() ? Boolean(opts.isCollapsed) : uncontrolledIsCollapsed);
|
|
274
|
+
if (min > max && !didWarn.inverted) {
|
|
275
|
+
didWarn.inverted = true;
|
|
276
|
+
devWarn(source, `the resolved minimum (${min}px) is above the resolved maximum ` + `(${max}px). The maximum wins${isHook ? ', as it always has' : ''}.`);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
// The maximum the handle REPORTS: a configured maximum, or a measured
|
|
280
|
+
// extent standing in for it, never below what the handle announces.
|
|
281
|
+
const measuredForMax = needs.hasContainer ? hasPositiveMeasurement && needs.container ? containerBasis : null : readWindowExtent(direction());
|
|
282
|
+
const effectiveMax = max !== Infinity ? max : measuredForMax == null ? undefined : Math.max(measuredForMax, isCollapsed ? min : size);
|
|
283
|
+
derived = {
|
|
284
|
+
size,
|
|
285
|
+
isCollapsed,
|
|
286
|
+
min,
|
|
287
|
+
max,
|
|
288
|
+
effectiveMax,
|
|
289
|
+
isBasisMeasured
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
/** Recompute, then bring the observers, storage and subscribers along. */
|
|
294
|
+
function commit() {
|
|
295
|
+
if (isDestroyed) {
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
if (isSuspended) {
|
|
299
|
+
// No observers: the last measured basis stands.
|
|
300
|
+
compute();
|
|
301
|
+
} else {
|
|
302
|
+
// The observation a computation needs can change with it (a default
|
|
303
|
+
// made final stops following its container): settle both.
|
|
304
|
+
for (let pass = 0; pass < 3; pass++) {
|
|
305
|
+
const before = observation();
|
|
306
|
+
syncObservation();
|
|
307
|
+
compute();
|
|
308
|
+
const after = observation();
|
|
309
|
+
if (before.container === after.container && before.viewport === after.viewport) {
|
|
310
|
+
break;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
persist();
|
|
315
|
+
const reported = {
|
|
316
|
+
size: derived.isCollapsed ? 0 : derived.size,
|
|
317
|
+
isCollapsed: derived.isCollapsed
|
|
318
|
+
};
|
|
319
|
+
const next = {
|
|
320
|
+
size: reported.size,
|
|
321
|
+
isCollapsed: reported.isCollapsed,
|
|
322
|
+
expandedSize: derived.size,
|
|
323
|
+
minPx: derived.min,
|
|
324
|
+
maxPx: derived.max,
|
|
325
|
+
effectiveMaxPx: derived.effectiveMax
|
|
326
|
+
};
|
|
327
|
+
const isSnapshotChanged = snapshot == null || Object.keys(next).some(key => snapshot?.[key] !== next[key]);
|
|
328
|
+
if (isSnapshotChanged) {
|
|
329
|
+
snapshot = next;
|
|
330
|
+
}
|
|
331
|
+
if (notified == null || notified.size !== reported.size || notified.isCollapsed !== reported.isCollapsed) {
|
|
332
|
+
const isFirst = notified == null;
|
|
333
|
+
notified = reported;
|
|
334
|
+
if (!isFirst) {
|
|
335
|
+
for (const listener of [...listeners]) {
|
|
336
|
+
listener();
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
if (isSnapshotChanged) {
|
|
341
|
+
for (const listener of [...snapshotListeners]) {
|
|
342
|
+
listener();
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
/** Nothing is written while the basis stands in, nor while a gesture runs. */
|
|
348
|
+
function persist() {
|
|
349
|
+
const key = opts.autoSaveId;
|
|
350
|
+
if (key == null || key === '' || !derived.isBasisMeasured) {
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
353
|
+
if (isGestureActive) {
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
356
|
+
const next = {
|
|
357
|
+
key,
|
|
358
|
+
size: derived.size,
|
|
359
|
+
isCollapsed: derived.isCollapsed
|
|
360
|
+
};
|
|
361
|
+
if (mustWrite || written == null || written.key !== next.key || written.size !== next.size || written.isCollapsed !== next.isCollapsed) {
|
|
362
|
+
mustWrite = false;
|
|
363
|
+
written = next;
|
|
364
|
+
persistState(key, {
|
|
365
|
+
size: next.size,
|
|
366
|
+
isCollapsed: next.isCollapsed
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
const setCollapsed = value => {
|
|
371
|
+
if (!isControlled()) {
|
|
372
|
+
uncontrolledIsCollapsed = value;
|
|
373
|
+
}
|
|
374
|
+
};
|
|
375
|
+
function collapse() {
|
|
376
|
+
if (isDestroyed || !collapsible() || derived.isCollapsed) {
|
|
377
|
+
return;
|
|
378
|
+
}
|
|
379
|
+
setCollapsed(true);
|
|
380
|
+
commit();
|
|
381
|
+
opts.onCollapseChange?.(true);
|
|
382
|
+
opts.onSizeChange?.(0);
|
|
383
|
+
}
|
|
384
|
+
function expand() {
|
|
385
|
+
if (isDestroyed) {
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
388
|
+
const wasCollapsed = derived.isCollapsed;
|
|
389
|
+
setCollapsed(false);
|
|
390
|
+
commit();
|
|
391
|
+
if (wasCollapsed) {
|
|
392
|
+
opts.onCollapseChange?.(false);
|
|
393
|
+
}
|
|
394
|
+
opts.onSizeChange?.(derived.size);
|
|
395
|
+
}
|
|
396
|
+
function resize(next) {
|
|
397
|
+
if (isDestroyed) {
|
|
398
|
+
return;
|
|
399
|
+
}
|
|
400
|
+
// An invalid size repairs nothing: it must not replace a legal selection
|
|
401
|
+
// with NaN, which would reach storage and aria-valuenow.
|
|
402
|
+
if (!Number.isFinite(next) || next < 0) {
|
|
403
|
+
devWarn(source, `resize(${String(next)}) is not a pixel size. Keeping the current ` + `size. Percentages configure the ${isHook ? 'hook' : 'region'}; ` + 'they are not a programmatic input.');
|
|
404
|
+
return;
|
|
405
|
+
}
|
|
406
|
+
const clamped = clampSize(next, derived.min, derived.max, snaps());
|
|
407
|
+
const wasCollapsed = derived.isCollapsed;
|
|
408
|
+
chosenSize = clamped;
|
|
409
|
+
setCollapsed(false);
|
|
410
|
+
commit();
|
|
411
|
+
// Resizing out of the collapsed state is an implicit expand.
|
|
412
|
+
if (wasCollapsed) {
|
|
413
|
+
opts.onCollapseChange?.(false);
|
|
414
|
+
}
|
|
415
|
+
opts.onSizeChange?.(clamped);
|
|
416
|
+
}
|
|
417
|
+
const model = {
|
|
418
|
+
state() {
|
|
419
|
+
return {
|
|
420
|
+
size: derived.isCollapsed ? 0 : derived.size,
|
|
421
|
+
isCollapsed: derived.isCollapsed,
|
|
422
|
+
minPx: derived.min,
|
|
423
|
+
maxPx: derived.max,
|
|
424
|
+
snaps: snaps(),
|
|
425
|
+
collapsedSize: opts.collapsedSize ?? DEFAULT_COLLAPSED_SIZE,
|
|
426
|
+
collapsible: collapsible()
|
|
427
|
+
};
|
|
428
|
+
},
|
|
429
|
+
start() {
|
|
430
|
+
// The basis holds still for the whole gesture.
|
|
431
|
+
gestureBasis = readLiveBasis();
|
|
432
|
+
isGestureActive = true;
|
|
433
|
+
dragStartSize = derived.isCollapsed ? 0 : derived.size;
|
|
434
|
+
},
|
|
435
|
+
move(delta) {
|
|
436
|
+
const raw = dragStartSize + delta;
|
|
437
|
+
const collapsedSize = opts.collapsedSize ?? DEFAULT_COLLAPSED_SIZE;
|
|
438
|
+
if (collapsible() && raw < collapsedSize) {
|
|
439
|
+
if (!derived.isCollapsed) {
|
|
440
|
+
setCollapsed(true);
|
|
441
|
+
commit();
|
|
442
|
+
opts.onCollapseChange?.(true);
|
|
443
|
+
opts.onSizeChange?.(0);
|
|
444
|
+
}
|
|
445
|
+
return;
|
|
446
|
+
}
|
|
447
|
+
const reopens = derived.isCollapsed && raw >= collapsedSize;
|
|
448
|
+
if (reopens) {
|
|
449
|
+
setCollapsed(false);
|
|
450
|
+
}
|
|
451
|
+
const clamped = clampSize(raw, derived.min, derived.max, snaps());
|
|
452
|
+
chosenSize = clamped;
|
|
453
|
+
commit();
|
|
454
|
+
if (reopens) {
|
|
455
|
+
opts.onCollapseChange?.(false);
|
|
456
|
+
}
|
|
457
|
+
opts.onSizeChange?.(clamped);
|
|
458
|
+
},
|
|
459
|
+
end() {
|
|
460
|
+
endGesture();
|
|
461
|
+
},
|
|
462
|
+
// A cancelled gesture is still over: the basis it held comes back, and
|
|
463
|
+
// the size it reached is saved once, like a completed one.
|
|
464
|
+
cancel() {
|
|
465
|
+
endGesture();
|
|
466
|
+
},
|
|
467
|
+
collapse,
|
|
468
|
+
expand
|
|
469
|
+
};
|
|
470
|
+
function readLiveBasis() {
|
|
471
|
+
const needs = observation();
|
|
472
|
+
if (!needs.hasContainer) {
|
|
473
|
+
return readViewportBasis();
|
|
474
|
+
}
|
|
475
|
+
return containerBasis != null && containerBasis > 0 ? containerBasis : SERVER_BASIS;
|
|
476
|
+
}
|
|
477
|
+
function endGesture() {
|
|
478
|
+
if (!isGestureActive) {
|
|
479
|
+
return;
|
|
480
|
+
}
|
|
481
|
+
gestureBasis = null;
|
|
482
|
+
isGestureActive = false;
|
|
483
|
+
mustWrite = true;
|
|
484
|
+
commit();
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
/** The observers go; a gesture in flight has ended first. */
|
|
488
|
+
function letGoOfPage() {
|
|
489
|
+
stopObservingContainer?.();
|
|
490
|
+
stopObservingContainer = null;
|
|
491
|
+
containerElement = null;
|
|
492
|
+
if (isObservingViewport) {
|
|
493
|
+
window.removeEventListener('resize', onViewportResize);
|
|
494
|
+
isObservingViewport = false;
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
commit();
|
|
498
|
+
const controller = {
|
|
499
|
+
get size() {
|
|
500
|
+
return derived.isCollapsed ? 0 : derived.size;
|
|
501
|
+
},
|
|
502
|
+
get isCollapsed() {
|
|
503
|
+
return derived.isCollapsed;
|
|
504
|
+
},
|
|
505
|
+
collapse,
|
|
506
|
+
expand,
|
|
507
|
+
resize,
|
|
508
|
+
update(next) {
|
|
509
|
+
if (isDestroyed) {
|
|
510
|
+
return;
|
|
511
|
+
}
|
|
512
|
+
opts = next;
|
|
513
|
+
if (opts.autoSaveId !== persistedKey) {
|
|
514
|
+
persistedKey = opts.autoSaveId;
|
|
515
|
+
persisted = persistedKey ? loadPersistedState(persistedKey) : null;
|
|
516
|
+
}
|
|
517
|
+
commit();
|
|
518
|
+
},
|
|
519
|
+
subscribe(listener) {
|
|
520
|
+
listeners.add(listener);
|
|
521
|
+
return () => {
|
|
522
|
+
listeners.delete(listener);
|
|
523
|
+
};
|
|
524
|
+
},
|
|
525
|
+
destroy() {
|
|
526
|
+
if (isDestroyed) {
|
|
527
|
+
return;
|
|
528
|
+
}
|
|
529
|
+
// A gesture a ResizeHandle drove through the region's model ends first,
|
|
530
|
+
// so the size it reached is saved.
|
|
531
|
+
endGesture();
|
|
532
|
+
isDestroyed = true;
|
|
533
|
+
if (!isSuspended) {
|
|
534
|
+
letGoOfPage();
|
|
535
|
+
}
|
|
536
|
+
listeners.clear();
|
|
537
|
+
snapshotListeners.clear();
|
|
538
|
+
}
|
|
539
|
+
};
|
|
540
|
+
internals.set(controller, {
|
|
541
|
+
snapshot: () => snapshot,
|
|
542
|
+
subscribeSnapshot(listener) {
|
|
543
|
+
snapshotListeners.add(listener);
|
|
544
|
+
return () => {
|
|
545
|
+
snapshotListeners.delete(listener);
|
|
546
|
+
};
|
|
547
|
+
},
|
|
548
|
+
model,
|
|
549
|
+
suspend() {
|
|
550
|
+
if (isDestroyed || isSuspended) {
|
|
551
|
+
return;
|
|
552
|
+
}
|
|
553
|
+
endGesture();
|
|
554
|
+
isSuspended = true;
|
|
555
|
+
letGoOfPage();
|
|
556
|
+
},
|
|
557
|
+
resume() {
|
|
558
|
+
if (isDestroyed || !isSuspended) {
|
|
559
|
+
return;
|
|
560
|
+
}
|
|
561
|
+
isSuspended = false;
|
|
562
|
+
commit();
|
|
563
|
+
},
|
|
564
|
+
syncContainer() {
|
|
565
|
+
if (isDestroyed || isSuspended) {
|
|
566
|
+
return;
|
|
567
|
+
}
|
|
568
|
+
const element = observation().container ? opts.containerRef?.current ?? null : null;
|
|
569
|
+
if (element !== containerElement) {
|
|
570
|
+
commit();
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
});
|
|
574
|
+
return controller;
|
|
575
|
+
}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* @file useResizable.ts
|
|
3
3
|
* @input Resize configuration (defaultSize, minSize, maxSize, snaps), with
|
|
4
4
|
* removed pixel-bound aliases rejected even through assembled objects, and
|
|
5
|
-
* collapse configuration (collapsible,
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* collapse configuration (collapsible, defaultIsCollapsed, isCollapsed)
|
|
6
|
+
* @output Hook return: size, isCollapsed, collapse/expand/resize methods, props
|
|
7
|
+
* for handle, over the internal resize factory (createResizable)
|
|
8
8
|
* @position Public hook; consumed by layout components via `resizable` prop
|
|
9
9
|
*/
|
|
10
10
|
import { type RefObject } from 'react';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResizable.d.ts","sourceRoot":"","sources":["../../src/Resizable/useResizable.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useResizable.d.ts","sourceRoot":"","sources":["../../src/Resizable/useResizable.ts"],"names":[],"mappings":"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"}
|