@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
|
@@ -13,13 +13,14 @@
|
|
|
13
13
|
* SYNC: When placement, stacking, hosting, focus, announcement, or safe-area
|
|
14
14
|
* behavior changes, update ToastViewport.test.tsx, Toast.doc.mjs, and Toast.stories.tsx.
|
|
15
15
|
*/
|
|
16
|
-
import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
|
|
16
|
+
import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore } from 'react';
|
|
17
17
|
import { createPortal } from 'react-dom';
|
|
18
18
|
import * as stylex from '@stylexjs/stylex';
|
|
19
19
|
import "../theme/tokens.stylex.js";
|
|
20
20
|
import { spacingVars, durationVars, easeVars } from "../theme/tokens.stylex.js";
|
|
21
21
|
import { mergeProps } from "../utils/index.js";
|
|
22
22
|
import { getNodeText } from "../utils/getNodeText.js";
|
|
23
|
+
import { moveFocusLeftBehind, noteFocusWithin } from "../utils/focusReturn.js";
|
|
23
24
|
import { INTERACTIVE_SELECTORS } from "../hooks/useClickableContainer.js";
|
|
24
25
|
import { useAnnounce } from "../hooks/useAnnounce.js";
|
|
25
26
|
import { layerTextReset } from "../Layer/layerTextReset.stylex.js";
|
|
@@ -122,7 +123,8 @@ function ToastRow({
|
|
|
122
123
|
isExiting,
|
|
123
124
|
isReversed,
|
|
124
125
|
onExited,
|
|
125
|
-
onDismiss
|
|
126
|
+
onDismiss,
|
|
127
|
+
isLiveRegion
|
|
126
128
|
}) {
|
|
127
129
|
const o = entry.options;
|
|
128
130
|
const type = o.type ?? 'info';
|
|
@@ -194,12 +196,16 @@ function ToastRow({
|
|
|
194
196
|
isExiting: isExiting,
|
|
195
197
|
gestureDirection: isReversed ? -1 : 1,
|
|
196
198
|
onDismiss: reason => onDismiss(entry.id, reason),
|
|
197
|
-
renderContent: o.renderContent
|
|
199
|
+
renderContent: o.renderContent,
|
|
200
|
+
timerKey: entry.id,
|
|
201
|
+
isLiveRegion: isLiveRegion
|
|
198
202
|
})
|
|
199
203
|
})
|
|
200
204
|
});
|
|
201
205
|
}
|
|
202
206
|
ToastRow.displayName = 'ToastRow';
|
|
207
|
+
const hasActiveModalOutlet = () => getActiveModalOutlet() != null;
|
|
208
|
+
const hasNoModalOutlet = () => false;
|
|
203
209
|
|
|
204
210
|
/**
|
|
205
211
|
* Container that renders and manages toast notifications. Place at the root
|
|
@@ -260,6 +266,11 @@ export function ToastViewport({
|
|
|
260
266
|
// The next toast id that should receive focus once the dismissed toast has
|
|
261
267
|
// unmounted, or 'restore' to fall back to the previously-focused element.
|
|
262
268
|
const pendingFocusRef = useRef(null);
|
|
269
|
+
// The id of a toast whose overwrite updated a row that held focus. If the
|
|
270
|
+
// update removed the focused control, the commit hands focus off.
|
|
271
|
+
const overwriteFocusRef = useRef(null);
|
|
272
|
+
// Where focus was inside a toast whose dismissal hands focus off.
|
|
273
|
+
const dismissFocusNoteRef = useRef(null);
|
|
263
274
|
|
|
264
275
|
// Collect a focusable control within a toast node, if any.
|
|
265
276
|
// Reuses the canonical INTERACTIVE_SELECTORS list (native controls plus
|
|
@@ -280,13 +291,9 @@ export function ToastViewport({
|
|
|
280
291
|
return null;
|
|
281
292
|
}, []);
|
|
282
293
|
|
|
283
|
-
// Announce toasts through the persistent singleton live regions.
|
|
284
|
-
//
|
|
285
|
-
//
|
|
286
|
-
// screen readers do not announce (see useAnnounce.ts); the singleton regions
|
|
287
|
-
// are mounted empty and only mutated afterwards, so they are what actually
|
|
288
|
-
// guarantees the announcement (the per-toast markup is kept for browse-mode
|
|
289
|
-
// discoverability). The announcement happens in addToast — the imperative
|
|
294
|
+
// Announce toasts through the persistent singleton live regions. They are
|
|
295
|
+
// mounted empty and only mutated afterwards, which screen readers announce
|
|
296
|
+
// (see useAnnounce.ts). The announcement happens in addToast — the imperative
|
|
290
297
|
// dispatch path invoked once per useToast() call from an event handler,
|
|
291
298
|
// never from render — so each toast is announced exactly once by
|
|
292
299
|
// construction, independent of the React render lifecycle (StrictMode
|
|
@@ -294,6 +301,12 @@ export function ToastViewport({
|
|
|
294
301
|
// re-renders never re-announce). It is client-only (addToast never runs
|
|
295
302
|
// during SSR), so it is SSR-safe.
|
|
296
303
|
const announce = useAnnounce();
|
|
304
|
+
// An open native modal hides the body-level channel above from assistive
|
|
305
|
+
// technology, so while the viewport is hosted in one, each card announces
|
|
306
|
+
// itself through its own live region instead. Outside a modal the cards
|
|
307
|
+
// carry none, so a card updated in place is announced once.
|
|
308
|
+
const hasModalOutlet = useSyncExternalStore(subscribeModalOutlets, hasActiveModalOutlet, hasNoModalOutlet);
|
|
309
|
+
const isModalHosted = isTopLayer && hasModalOutlet;
|
|
297
310
|
const addToast = useCallback(entry => {
|
|
298
311
|
const {
|
|
299
312
|
uniqueID,
|
|
@@ -326,7 +339,26 @@ export function ToastViewport({
|
|
|
326
339
|
if (overwritten && renderedToastsRef.current.includes(overwritten)) {
|
|
327
340
|
replacedRef.current.set(overwritten.id, overwritten);
|
|
328
341
|
}
|
|
329
|
-
|
|
342
|
+
// An overwrite of a toast that is not leaving keeps its row, so the card
|
|
343
|
+
// updates in place and focus inside it stays. A leaving namesake
|
|
344
|
+
// is replaced by a new row, which enters again.
|
|
345
|
+
const keepsRow = overwritten != null && !exitingIdsRef.current.has(overwritten.id);
|
|
346
|
+
const placed = keepsRow ? {
|
|
347
|
+
...entry,
|
|
348
|
+
rowKey: overwritten.rowKey ?? overwritten.id
|
|
349
|
+
} : entry;
|
|
350
|
+
if (keepsRow) {
|
|
351
|
+
// If the update removes the focused control, the commit hands focus
|
|
352
|
+
// off as a dismissal does.
|
|
353
|
+
const note = noteFocusWithin(viewportRef.current?.querySelector(`[data-toast-id="${overwritten.id}"]`));
|
|
354
|
+
if (note != null) {
|
|
355
|
+
overwriteFocusRef.current = {
|
|
356
|
+
id: placed.id,
|
|
357
|
+
note
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
const projected = overwritten ? committed.map(t => t === overwritten ? placed : t) : [...committed, placed];
|
|
330
362
|
// `maxVisible={0}` shows every toast (FR7): nothing leaves the window.
|
|
331
363
|
const firstVisible = maxVisible > 0 ? projected.length - maxVisible : 0;
|
|
332
364
|
const cutIds = new Set(projected.filter((t, i) => i < firstVisible && exitingIdsRef.current.has(t.id)).map(t => t.id));
|
|
@@ -349,7 +381,7 @@ export function ToastViewport({
|
|
|
349
381
|
}
|
|
350
382
|
}
|
|
351
383
|
}
|
|
352
|
-
pending.set(entry.id,
|
|
384
|
+
pending.set(entry.id, placed);
|
|
353
385
|
// An overwrite swaps a new entry, with a new id, into the replaced
|
|
354
386
|
// toast's place, so the old row leaves the DOM without ever being
|
|
355
387
|
// dismissed. Its settled id is dropped by the prune below, which covers
|
|
@@ -360,7 +392,7 @@ export function ToastViewport({
|
|
|
360
392
|
// replaced namesake as leaving since, which must not turn the
|
|
361
393
|
// overwrite into an append. An ignored collision already returned.
|
|
362
394
|
const kept = prev.filter(t => !cutIds.has(t.id));
|
|
363
|
-
return overwritten && kept.includes(overwritten) ? kept.map(t => t === overwritten ?
|
|
395
|
+
return overwritten && kept.includes(overwritten) ? kept.map(t => t === overwritten ? placed : t) : [...kept, placed];
|
|
364
396
|
});
|
|
365
397
|
}, [announce, maxVisible]);
|
|
366
398
|
const removeToast = useCallback((id, reason) => {
|
|
@@ -383,9 +415,15 @@ export function ToastViewport({
|
|
|
383
415
|
// focused before the user entered the viewport) rather than <body>.
|
|
384
416
|
const el = viewportRef.current;
|
|
385
417
|
const active = document.activeElement;
|
|
386
|
-
|
|
418
|
+
// A toast an overwrite replaced in place no longer owns its row: the
|
|
419
|
+
// replacement does, so dismissing the replaced toast leaves the row, and
|
|
420
|
+
// focus in it, to the replacement.
|
|
421
|
+
const rowKey = entry.rowKey ?? entry.id;
|
|
422
|
+
const isReplacedInPlace = !toastsRef.current.some(t => t.id === id) && toastsRef.current.some(t => t.rowKey === rowKey);
|
|
423
|
+
const dismissedNode = isReplacedInPlace ? null : el?.querySelector(`[data-toast-id="${id}"]`) ?? null;
|
|
387
424
|
if (dismissedNode && active instanceof Node && dismissedNode.contains(active)) {
|
|
388
425
|
focusHandoffIdRef.current = id;
|
|
426
|
+
dismissFocusNoteRef.current = noteFocusWithin(dismissedNode);
|
|
389
427
|
// Pick the toast to receive focus while the DOM is still intact: the
|
|
390
428
|
// nearest one after it, then before it, that shows once it is gone
|
|
391
429
|
// (FR10), else restore. The list may already run ahead of the render
|
|
@@ -441,6 +479,31 @@ export function ToastViewport({
|
|
|
441
479
|
setToasts(prev => prev.filter(t => t.id !== id));
|
|
442
480
|
}, []);
|
|
443
481
|
|
|
482
|
+
// Moves focus to a control in the target toast, else in another toast that
|
|
483
|
+
// shows (newest first), else back to the element focused before focus
|
|
484
|
+
// entered the viewport, so a handoff never drops focus to <body>.
|
|
485
|
+
const handOffFocus = useCallback((note, targetId) => {
|
|
486
|
+
const el = viewportRef.current;
|
|
487
|
+
const rowFor = id => el?.querySelector(`[data-toast-id="${id}"]`) ?? null;
|
|
488
|
+
const shownIds = toastsRef.current.slice(maxVisibleRef.current > 0 ? -maxVisibleRef.current : 0).map(t => t.id).reverse();
|
|
489
|
+
const candidates = targetId == null ? [] : [targetId, ...shownIds.filter(id => id !== targetId)];
|
|
490
|
+
let target = null;
|
|
491
|
+
for (const id of candidates) {
|
|
492
|
+
target = getFocusable(rowFor(id));
|
|
493
|
+
if (target != null) {
|
|
494
|
+
break;
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
const prev = prevFocusRef.current;
|
|
498
|
+
const isReturning = target == null && prev != null && prev.isConnected;
|
|
499
|
+
if (target == null) {
|
|
500
|
+
target = isReturning ? prev : el;
|
|
501
|
+
}
|
|
502
|
+
if (moveFocusLeftBehind(note, target) && isReturning) {
|
|
503
|
+
prevFocusRef.current = null;
|
|
504
|
+
}
|
|
505
|
+
}, [getFocusable]);
|
|
506
|
+
|
|
444
507
|
// After a dismissed toast unmounts, hand focus off so it never falls to
|
|
445
508
|
// <body>. Runs in a layout effect once the toast list no longer contains
|
|
446
509
|
// the dismissed toast.
|
|
@@ -456,25 +519,21 @@ export function ToastViewport({
|
|
|
456
519
|
}
|
|
457
520
|
focusHandoffIdRef.current = null;
|
|
458
521
|
pendingFocusRef.current = null;
|
|
459
|
-
const
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
const prev = prevFocusRef.current;
|
|
471
|
-
prevFocusRef.current = null;
|
|
472
|
-
if (prev && prev.isConnected) {
|
|
473
|
-
prev.focus();
|
|
474
|
-
} else if (el) {
|
|
475
|
-
el.focus();
|
|
522
|
+
const note = dismissFocusNoteRef.current;
|
|
523
|
+
dismissFocusNoteRef.current = null;
|
|
524
|
+
handOffFocus(note, target === 'restore' ? null : target);
|
|
525
|
+
}, [toasts, handOffFocus]);
|
|
526
|
+
|
|
527
|
+
// After an overwrite updated a row that held focus: focus stays on the same
|
|
528
|
+
// control, or, if the update removed it, moves as a dismissal hands it off.
|
|
529
|
+
useLayoutEffect(() => {
|
|
530
|
+
const overwrite = overwriteFocusRef.current;
|
|
531
|
+
if (overwrite == null) {
|
|
532
|
+
return;
|
|
476
533
|
}
|
|
477
|
-
|
|
534
|
+
overwriteFocusRef.current = null;
|
|
535
|
+
handOffFocus(overwrite.note, overwrite.id);
|
|
536
|
+
}, [toasts, handOffFocus]);
|
|
478
537
|
const findByUniqueID = useCallback(uid => {
|
|
479
538
|
return toastsRef.current.find(t => t.options.uniqueID === uid);
|
|
480
539
|
}, []);
|
|
@@ -519,6 +578,9 @@ export function ToastViewport({
|
|
|
519
578
|
setHost(null);
|
|
520
579
|
};
|
|
521
580
|
}, [isTopLayer]);
|
|
581
|
+
|
|
582
|
+
// Syncs the host's place with the modal outlet registry. The host moves into
|
|
583
|
+
// the latest open modal, and back when that modal closes.
|
|
522
584
|
useLayoutEffect(() => {
|
|
523
585
|
if (!isTopLayer || host == null) {
|
|
524
586
|
return;
|
|
@@ -663,8 +725,9 @@ export function ToastViewport({
|
|
|
663
725
|
isExiting: exitingIds.has(entry.id),
|
|
664
726
|
isReversed: isReversed,
|
|
665
727
|
onExited: handleExited,
|
|
666
|
-
onDismiss: removeToast
|
|
667
|
-
|
|
728
|
+
onDismiss: removeToast,
|
|
729
|
+
isLiveRegion: isModalHosted
|
|
730
|
+
}, entry.rowKey ?? entry.id))
|
|
668
731
|
})
|
|
669
732
|
});
|
|
670
733
|
return /*#__PURE__*/_jsxs(ToastContext, {
|
package/dist/Toast/types.d.ts
CHANGED
|
@@ -31,9 +31,10 @@ export interface ToastOptions {
|
|
|
31
31
|
/**
|
|
32
32
|
* Replaces the content of this toast's card with your own layout.
|
|
33
33
|
*
|
|
34
|
-
* Astryx keeps the card
|
|
35
|
-
* the
|
|
36
|
-
*
|
|
34
|
+
* Astryx keeps the card and its auto-hide behavior (inside a
|
|
35
|
+
* `ToastViewport` the viewport announces the toast, and while a modal hosts
|
|
36
|
+
* the viewport the card announces itself), then hands the
|
|
37
|
+
* renderer this toast's content, resolved settings and `dismiss` callback. The renderer owns every control inside its layout; call
|
|
37
38
|
* `dismiss` from the control that should close the toast. Astryx does not
|
|
38
39
|
* inject a fallback control into custom content.
|
|
39
40
|
*
|
|
@@ -85,5 +86,10 @@ export interface ToastEntry {
|
|
|
85
86
|
id: string;
|
|
86
87
|
options: ToastOptions;
|
|
87
88
|
createdAt: number;
|
|
89
|
+
/**
|
|
90
|
+
* The row's identity in the stack. A uniqueID overwrite keeps the replaced
|
|
91
|
+
* toast's, so the card updates in place and focus inside it stays.
|
|
92
|
+
*/
|
|
93
|
+
rowKey?: string;
|
|
88
94
|
}
|
|
89
95
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/Toast/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAErC,gDAAgD;AAChD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzC,6DAA6D;AAC7D,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,CAAC;AAEhF,mEAAmE;AACnE,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE5D,wCAAwC;AACxC,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEnD,mCAAmC;AACnC,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gEAAgE;IAChE,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/Toast/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAErC,gDAAgD;AAChD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzC,6DAA6D;AAC7D,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,CAAC;AAEhF,mEAAmE;AACnE,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE5D,wCAAwC;AACxC,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEnD,mCAAmC;AACnC,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gEAAgE;IAChE,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;;;;;;;;;;;;OAcG;IACH,aAAa,CAAC,EAAE,oBAAoB,CAAC;IAErC,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAC3C,gDAAgD;IAChD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC/C;AAED,oDAAoD;AACpD,MAAM,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC;AAExC,wDAAwD;AACxD,MAAM,WAAW,uBAAuB;IACtC,yDAAyD;IACzD,IAAI,EAAE,SAAS,CAAC;IAChB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,4EAA4E;IAC5E,IAAI,EAAE,SAAS,CAAC;IAChB,8CAA8C;IAC9C,UAAU,EAAE,OAAO,CAAC;IACpB,0DAA0D;IAC1D,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,OAAO,EAAE,cAAc,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,KAAK,EAAE,uBAAuB,KAC3B,SAAS,CAAC;AAEf,oDAAoD;AACpD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,cAAc,CAAC;AAEpE,iDAAiD;AACjD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToast.d.ts","sourceRoot":"","sources":["../../src/Toast/useToast.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAGV,WAAW,EAEZ,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"useToast.d.ts","sourceRoot":"","sources":["../../src/Toast/useToast.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAGV,WAAW,EAEZ,MAAM,SAAS,CAAC;AAyIjB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,QAAQ,IAAI,WAAW,CAetC"}
|
package/dist/Toast/useToast.js
CHANGED
|
@@ -70,6 +70,7 @@ function getFallbackContext() {
|
|
|
70
70
|
const FallbackCapture = () => {
|
|
71
71
|
const ctx = use(ToastContext);
|
|
72
72
|
const doneRef = useRef(false);
|
|
73
|
+
// Syncs the module-level fallback with the first toast context that mounts.
|
|
73
74
|
useEffect(() => {
|
|
74
75
|
if (ctx && !doneRef.current) {
|
|
75
76
|
doneRef.current = true;
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* useAdaptivePresentation, and TokenizerBottomSheet (lazy)
|
|
5
5
|
* @output Exports Tokenizer multi-select typeahead component
|
|
6
6
|
* @position Composed component; forwards DOM ref and exposes focus control via
|
|
7
|
-
* handleRef. The
|
|
8
|
-
*
|
|
7
|
+
* handleRef. The `presentation` prop swaps the inline combobox for a
|
|
8
|
+
* trigger that opens TokenizerBottomSheet.
|
|
9
9
|
*
|
|
10
10
|
* SYNC: When modified, update:
|
|
11
11
|
* - /packages/core/src/Tokenizer/index.ts
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import React, { type ReactNode } from 'react';
|
|
17
17
|
import { type FieldInputBaseProps } from '../Field/fieldParts.js';
|
|
18
|
+
import { type AdaptivePresentation } from '../hooks/useAdaptivePresentation.js';
|
|
18
19
|
import type { SizeValue } from '../utils/types.js';
|
|
19
20
|
import { type InputStatus } from '../Field/index.js';
|
|
20
21
|
import { type IconType } from '../Icon/index.js';
|
|
@@ -202,62 +203,59 @@ export interface TokenizerProps<T extends SearchableItem> extends Omit<FieldInpu
|
|
|
202
203
|
onFocus?: (e: React.FocusEvent) => void;
|
|
203
204
|
/** Fires when focus leaves the tokenizer entirely. */
|
|
204
205
|
onBlur?: (e: React.FocusEvent) => void;
|
|
205
|
-
/**
|
|
206
|
+
/**
|
|
207
|
+
* How the field presents its choices.
|
|
208
|
+
* - `'popover'`: the inline combobox with its anchored suggestion menu, on
|
|
209
|
+
* every device.
|
|
210
|
+
* - `'bottom-sheet'`: a trigger showing the selected tokens that opens one
|
|
211
|
+
* tall modal sheet: a search row on top, full-width checkbox rows that
|
|
212
|
+
* keep their place while the sheet is open, a create row with
|
|
213
|
+
* `hasCreate`, and a footer pinned in every state with a confirmed Clear
|
|
214
|
+
* all and Save. The sheet edits a draft: `onChange` fires once, when Save
|
|
215
|
+
* commits it, and a swipe, scrim or Escape close of a changed draft asks
|
|
216
|
+
* before discarding. Suited to compact touch screens, where the inline
|
|
217
|
+
* combobox competes with the software keyboard.
|
|
218
|
+
* - `'adaptive'`: the bottom sheet on compact coarse-pointer screens,
|
|
219
|
+
* otherwise the popover — the same resolution Selector uses. The server
|
|
220
|
+
* render and the hydrating render are the popover.
|
|
221
|
+
*
|
|
222
|
+
* In the sheet presentation the trigger is the control: `ref`, `id`,
|
|
223
|
+
* `aria-*`, and `data-*` reach it. `renderItem`, `renderToken`,
|
|
224
|
+
* `endContent`, `hasClear`, `hasEntriesOnFocus`, `menuWidth`,
|
|
225
|
+
* `tokenOverflowBehavior`, and `hasAutoFocus` have no surface to act on
|
|
226
|
+
* and warn once in development. Pass `'popover'` to keep the inline field
|
|
227
|
+
* and those props on every device.
|
|
228
|
+
* @default 'adaptive'
|
|
229
|
+
*/
|
|
230
|
+
presentation?: TokenizerPresentation;
|
|
231
|
+
/**
|
|
232
|
+
* Ref forwarded to the control: the combobox input in the popover
|
|
233
|
+
* presentation, the trigger button in the sheet presentation. This type
|
|
234
|
+
* keeps its released input element; the component itself also accepts a
|
|
235
|
+
* `Ref<HTMLInputElement | HTMLButtonElement>`, the type to use where the
|
|
236
|
+
* sheet can present.
|
|
237
|
+
*/
|
|
206
238
|
ref?: React.Ref<HTMLInputElement>;
|
|
207
239
|
/** Imperative handle ref for focus/blur control. */
|
|
208
240
|
handleRef?: React.Ref<TokenizerHandle>;
|
|
209
|
-
/**
|
|
210
|
-
* Experimental options, outside the stable compatibility promise: anything
|
|
211
|
-
* in this object may change or be removed in a patch release. Omit it for
|
|
212
|
-
* the stable behavior.
|
|
213
|
-
* @experimental
|
|
214
|
-
*/
|
|
215
|
-
experimental?: {
|
|
216
|
-
/**
|
|
217
|
-
* How the field presents its choices.
|
|
218
|
-
* - `'popover'`: the inline combobox with its anchored suggestion menu —
|
|
219
|
-
* the stable behavior.
|
|
220
|
-
* - `'bottom-sheet'`: a trigger showing the selected tokens that opens one
|
|
221
|
-
* tall modal sheet: a search row on top, full-width checkbox rows that
|
|
222
|
-
* keep their place while the sheet is open, a create row with
|
|
223
|
-
* `hasCreate`, and a footer pinned in every state with a confirmed Clear
|
|
224
|
-
* all and Save. The sheet edits a draft: `onChange` fires once, when Save
|
|
225
|
-
* commits it, and a swipe, scrim or Escape close of a changed draft asks
|
|
226
|
-
* before discarding. Suited to compact touch screens, where the inline
|
|
227
|
-
* combobox competes with the software keyboard.
|
|
228
|
-
* - `'adaptive'`: the bottom sheet on compact coarse-pointer screens,
|
|
229
|
-
* otherwise the popover — the same resolution Selector uses.
|
|
230
|
-
*
|
|
231
|
-
* In the sheet presentation the trigger is the control: `ref`, `id`,
|
|
232
|
-
* `aria-*`, and `data-*` reach it. `renderItem`, `renderToken`,
|
|
233
|
-
* `endContent`, `hasClear`, `hasEntriesOnFocus`, `menuWidth`,
|
|
234
|
-
* `tokenOverflowBehavior`, and `hasAutoFocus` have no surface to act on
|
|
235
|
-
* and warn once in development.
|
|
236
|
-
* @experimental
|
|
237
|
-
* @default 'popover'
|
|
238
|
-
*/
|
|
239
|
-
presentation?: 'popover' | 'bottom-sheet' | 'adaptive';
|
|
240
|
-
};
|
|
241
241
|
}
|
|
242
|
+
/** How Tokenizer presents its choices; see `TokenizerProps.presentation`. */
|
|
243
|
+
export type TokenizerPresentation = AdaptivePresentation;
|
|
242
244
|
/**
|
|
243
|
-
* The props the
|
|
244
|
-
* `ref` also accepts the sheet
|
|
245
|
-
*
|
|
246
|
-
*
|
|
247
|
-
* `
|
|
248
|
-
* `ComponentProps<typeof Tokenizer>` keep their released shapes.
|
|
245
|
+
* The props the component accepts: `TokenizerProps`, whose `ref` keeps its
|
|
246
|
+
* released input type, with a `ref` that also accepts the sheet
|
|
247
|
+
* presentation's trigger button. `TokenizerProps` stays the declared props
|
|
248
|
+
* type, so `interface X extends TokenizerProps<T>`, `Omit<TokenizerProps<T>,
|
|
249
|
+
* …>` and `ComponentProps<typeof Tokenizer>` keep their released shapes.
|
|
249
250
|
*/
|
|
250
|
-
type
|
|
251
|
-
/** @experimental */
|
|
252
|
-
experimental: NonNullable<TokenizerProps<T>['experimental']>;
|
|
251
|
+
type TokenizerAcceptedProps<T extends SearchableItem> = Omit<TokenizerProps<T>, 'ref'> & {
|
|
253
252
|
/**
|
|
254
253
|
* Ref forwarded to the control: the combobox input in the popover
|
|
255
254
|
* presentation, the trigger button in the sheet presentation.
|
|
256
|
-
* @experimental
|
|
257
255
|
*/
|
|
258
256
|
ref?: React.Ref<HTMLInputElement | HTMLButtonElement>;
|
|
259
257
|
};
|
|
260
|
-
export declare function Tokenizer<T extends SearchableItem>(props:
|
|
258
|
+
export declare function Tokenizer<T extends SearchableItem>(props: TokenizerAcceptedProps<T>): React.JSX.Element;
|
|
261
259
|
export declare function Tokenizer<T extends SearchableItem>(props: TokenizerProps<T>): React.JSX.Element;
|
|
262
260
|
export declare namespace Tokenizer {
|
|
263
261
|
var displayName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tokenizer.d.ts","sourceRoot":"","sources":["../../src/Tokenizer/Tokenizer.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,EAYZ,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;AAUf,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Tokenizer.d.ts","sourceRoot":"","sources":["../../src/Tokenizer/Tokenizer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* useAdaptivePresentation, and TokenizerBottomSheet (lazy)
|
|
9
9
|
* @output Exports Tokenizer multi-select typeahead component
|
|
10
10
|
* @position Composed component; forwards DOM ref and exposes focus control via
|
|
11
|
-
* handleRef. The
|
|
12
|
-
*
|
|
11
|
+
* handleRef. The `presentation` prop swaps the inline combobox for a
|
|
12
|
+
* trigger that opens TokenizerBottomSheet.
|
|
13
13
|
*
|
|
14
14
|
* SYNC: When modified, update:
|
|
15
15
|
* - /packages/core/src/Tokenizer/index.ts
|
|
@@ -47,7 +47,7 @@ import "../theme/tokens.stylex.js";
|
|
|
47
47
|
import { colorVars, spacingVars, sizeVars, typeScaleVars } from "../theme/tokens.stylex.js";
|
|
48
48
|
import { composeEventHandlers, mergeProps } from "../utils/index.js";
|
|
49
49
|
import { joinAriaIDs } from "../utils/inputAria.js";
|
|
50
|
-
import { isFocusDetached } from "../utils/
|
|
50
|
+
import { isFocusDetached } from "../utils/isFocusDetached.js";
|
|
51
51
|
import { themeProps } from "../utils/themeProps.js";
|
|
52
52
|
import { useResolvedRequired } from "../hooks/useResolvedRequired.js";
|
|
53
53
|
import { registerEnglishFallback, useComponentTranslator } from "../i18n/useComponentTranslator.js";
|
|
@@ -77,13 +77,14 @@ registerEnglishFallback(english);
|
|
|
77
77
|
* Imperative handle for Tokenizer handleRef.
|
|
78
78
|
*/
|
|
79
79
|
|
|
80
|
+
/** How Tokenizer presents its choices; see `TokenizerProps.presentation`. */
|
|
81
|
+
|
|
80
82
|
/**
|
|
81
|
-
* The props the
|
|
82
|
-
* `ref` also accepts the sheet
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
* `
|
|
86
|
-
* `ComponentProps<typeof Tokenizer>` keep their released shapes.
|
|
83
|
+
* The props the component accepts: `TokenizerProps`, whose `ref` keeps its
|
|
84
|
+
* released input type, with a `ref` that also accepts the sheet
|
|
85
|
+
* presentation's trigger button. `TokenizerProps` stays the declared props
|
|
86
|
+
* type, so `interface X extends TokenizerProps<T>`, `Omit<TokenizerProps<T>,
|
|
87
|
+
* …>` and `ComponentProps<typeof Tokenizer>` keep their released shapes.
|
|
87
88
|
*/
|
|
88
89
|
|
|
89
90
|
// =============================================================================
|
|
@@ -381,9 +382,9 @@ function EndLane({
|
|
|
381
382
|
}
|
|
382
383
|
|
|
383
384
|
// Keep this overload first. TypeScript resolves `ComponentProps<typeof
|
|
384
|
-
// Tokenizer>` against the last overload, so that type stays the
|
|
385
|
-
//
|
|
386
|
-
//
|
|
385
|
+
// Tokenizer>` against the last overload, so that type stays the released
|
|
386
|
+
// props. Every call matches this one, so a ref typed for both controls is
|
|
387
|
+
// accepted.
|
|
387
388
|
|
|
388
389
|
export function Tokenizer({
|
|
389
390
|
label,
|
|
@@ -430,7 +431,7 @@ export function Tokenizer({
|
|
|
430
431
|
ref,
|
|
431
432
|
handleRef,
|
|
432
433
|
onKeyDown,
|
|
433
|
-
|
|
434
|
+
presentation = 'adaptive',
|
|
434
435
|
id: idProp,
|
|
435
436
|
'aria-describedby': ariaDescribedByProp,
|
|
436
437
|
'aria-labelledby': ariaLabelledByProp,
|
|
@@ -467,11 +468,9 @@ export function Tokenizer({
|
|
|
467
468
|
const inputRef = useRef(null);
|
|
468
469
|
const wrapperRef = useRef(null);
|
|
469
470
|
|
|
470
|
-
//
|
|
471
|
-
//
|
|
472
|
-
//
|
|
473
|
-
// cannot pull the surface out from under the person.
|
|
474
|
-
const presentation = experimental?.presentation ?? 'popover';
|
|
471
|
+
// `adaptive` resolves through the policy the selection controls share. An
|
|
472
|
+
// open sheet keeps its presentation until it closes. A resolution change
|
|
473
|
+
// during a task does not replace the open surface.
|
|
475
474
|
const resolvedPresentation = useAdaptivePresentation(presentation);
|
|
476
475
|
const [isSheetOpen, setIsSheetOpen] = useState(false);
|
|
477
476
|
// Latched for the sheet's lifetime: a sheet stays presented after it closes
|
|
@@ -561,7 +560,7 @@ export function Tokenizer({
|
|
|
561
560
|
if (inertSheetPropsKey === '') {
|
|
562
561
|
return;
|
|
563
562
|
}
|
|
564
|
-
warnOnce(`tokenizer:sheet-inert:${inertSheetPropsKey}`, 'Tokenizer', `\`${inertSheetProps.join('`, `')}\` ${inertSheetProps.length === 1 ? 'has' : 'have'} no surface in the bottom-sheet presentation and ${inertSheetProps.length === 1 ? 'is' : 'are'} not rendered there.`);
|
|
563
|
+
warnOnce(`tokenizer:sheet-inert:${inertSheetPropsKey}`, 'Tokenizer', `\`${inertSheetProps.join('`, `')}\` ${inertSheetProps.length === 1 ? 'has' : 'have'} no surface in the bottom-sheet presentation and ${inertSheetProps.length === 1 ? 'is' : 'are'} not rendered there. Pass \`presentation="popover"\` to keep the inline field on every device.`);
|
|
565
564
|
// eslint-disable-next-line @eslint-react/exhaustive-deps -- keyed by the joined names
|
|
566
565
|
}, [inertSheetPropsKey]);
|
|
567
566
|
// A field that becomes disabled cannot keep its sheet open, and must not
|
|
@@ -996,8 +995,8 @@ export function Tokenizer({
|
|
|
996
995
|
children: /*#__PURE__*/_jsx(BaseTypeahead, {
|
|
997
996
|
...rest,
|
|
998
997
|
ref: useMergedRefs(inputRef,
|
|
999
|
-
//
|
|
1000
|
-
//
|
|
998
|
+
// The ref type admits the sheet's trigger too; in this
|
|
999
|
+
// presentation it receives the input.
|
|
1001
1000
|
ref, handOffFocusRef),
|
|
1002
1001
|
searchSource: isAtMax ? emptySource : filteredSource,
|
|
1003
1002
|
value: null,
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* EmptyState, AlertDialog, Icon, Spinner, Text, useBusyAnnouncement, and
|
|
5
5
|
* the i18n translator
|
|
6
6
|
* @output Exports TokenizerBottomSheet — the touch surface of
|
|
7
|
-
* `Tokenizer
|
|
7
|
+
* `Tokenizer presentation="bottom-sheet"`: one tall modal sheet
|
|
8
8
|
* with a search row on top, stable-order checkbox rows, progressive
|
|
9
9
|
* long-list rendering, an optional create row, and a confirmed Clear all
|
|
10
10
|
* @position Internal presentation surface of Tokenizer. Loaded on demand by
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* EmptyState, AlertDialog, Icon, Spinner, Text, useBusyAnnouncement, and
|
|
9
9
|
* the i18n translator
|
|
10
10
|
* @output Exports TokenizerBottomSheet — the touch surface of
|
|
11
|
-
* `Tokenizer
|
|
11
|
+
* `Tokenizer presentation="bottom-sheet"`: one tall modal sheet
|
|
12
12
|
* with a search row on top, stable-order checkbox rows, progressive
|
|
13
13
|
* long-list rendering, an optional create row, and a confirmed Clear all
|
|
14
14
|
* @position Internal presentation surface of Tokenizer. Loaded on demand by
|
|
@@ -189,10 +189,10 @@ function TokenizerSheetContent({
|
|
|
189
189
|
// has an entrance animation and no exit, so a close is its unmount; the
|
|
190
190
|
// close handler commits that unmount at once and then places focus itself,
|
|
191
191
|
// now that the modal is gone and the sheet's content can take focus again
|
|
192
|
-
// (`architecture:react-component-runtime` INV2)
|
|
193
|
-
//
|
|
194
|
-
//
|
|
195
|
-
//
|
|
192
|
+
// (`architecture:react-component-runtime` INV2). After a clear, Clear all
|
|
193
|
+
// is aria-disabled but stays focusable, so it keeps focus (FR24,
|
|
194
|
+
// `spec:AST-085` FR4). Focus on the search field opens the on-screen
|
|
195
|
+
// keyboard over the cleared rows. A confirmed clear is announced too — a
|
|
196
196
|
// change the person hears about, as an add or a remove is
|
|
197
197
|
// (`component:Tokenizer` AR6) — after the confirmation's dialog has gone,
|
|
198
198
|
// so the sheet is the modal on top and the words are delivered inside it
|
|
@@ -206,11 +206,9 @@ function TokenizerSheetContent({
|
|
|
206
206
|
const closeClearConfirmation = confirmed => {
|
|
207
207
|
// eslint-disable-next-line @eslint-react/dom-no-flush-sync -- the confirmation must be gone before focus moves into the sheet and the words are routed into it
|
|
208
208
|
flushSync(() => setIsClearConfirmationOpen(false));
|
|
209
|
+
clearAllRef.current?.focus();
|
|
209
210
|
if (confirmed) {
|
|
210
|
-
searchRef.current?.focus();
|
|
211
211
|
announce(t('@astryx.tokenizer.allRemoved'));
|
|
212
|
-
} else {
|
|
213
|
-
clearAllRef.current?.focus();
|
|
214
212
|
}
|
|
215
213
|
};
|
|
216
214
|
// Keep editing: the confirmation is gone, and focus returns to the search
|
|
@@ -419,11 +417,9 @@ function TokenizerSheetContent({
|
|
|
419
417
|
// `action` is declared on `SearchableItem` for the grid-adopting hosts; the
|
|
420
418
|
// sheet rows have not adopted it, so a row renders the item without the
|
|
421
419
|
// control and says so (`spec:AST-058` FR9), as the inline panel does.
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
}
|
|
426
|
-
}, [results]);
|
|
420
|
+
if (results.some(item => item.action != null)) {
|
|
421
|
+
warnOnce('tokenizer-sheet:item-action', 'Tokenizer', 'A result carries `action`, which the bottom-sheet rows do not render ' + 'yet; the item is shown without it.');
|
|
422
|
+
}
|
|
427
423
|
|
|
428
424
|
// The pending Spinner below stays named, as the inline field's does
|
|
429
425
|
// (`family:input-fields` FR7), but is not a live region; the sheet announces
|
|
@@ -747,11 +743,9 @@ function TokenizerSheetContent({
|
|
|
747
743
|
variant: "secondary",
|
|
748
744
|
size: "lg",
|
|
749
745
|
isDisabled: draftValue.length === 0
|
|
750
|
-
// With a tooltip, Button
|
|
751
|
-
//
|
|
752
|
-
// (`spec:AST-085` FR1)
|
|
753
|
-
// natively disabled button does — a confirmed Clear all returns
|
|
754
|
-
// focus here before the search field takes it (FR24).
|
|
746
|
+
// With a tooltip, Button uses aria-disabled, so Clear all stays
|
|
747
|
+
// focusable after a clear and says why it does nothing
|
|
748
|
+
// (`spec:AST-085` FR1; FR24).
|
|
755
749
|
,
|
|
756
750
|
tooltip: draftValue.length === 0 ? t('@astryx.tokenizer.nothingToClear') : undefined,
|
|
757
751
|
ref: clearAllRef,
|
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
* SYNC: When adding new Tokenizer files, update exports here
|
|
8
8
|
*/
|
|
9
9
|
export { Tokenizer } from './Tokenizer.js';
|
|
10
|
-
export type { TokenizerProps, TokenizerSize, TokenizerOverflowBehavior, TokenizerChange, TokenizerHandle, TokenizerStatus, TokenizerStatusType, } from './Tokenizer.js';
|
|
10
|
+
export type { TokenizerProps, TokenizerSize, TokenizerOverflowBehavior, TokenizerPresentation, TokenizerChange, TokenizerHandle, TokenizerStatus, TokenizerStatusType, } from './Tokenizer.js';
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Tokenizer/index.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,YAAY,EACV,cAAc,EACd,aAAa,EACb,yBAAyB,EACzB,eAAe,EACf,eAAe,EACf,eAAe,EACf,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Tokenizer/index.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,YAAY,EACV,cAAc,EACd,aAAa,EACb,yBAAyB,EACzB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,eAAe,EACf,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
|