@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
package/src/Stepper/Stepper.tsx
CHANGED
|
@@ -23,14 +23,7 @@
|
|
|
23
23
|
* - /packages/cli/assets/templates/blocks/components/Stepper/ (showcase blocks)
|
|
24
24
|
*/
|
|
25
25
|
|
|
26
|
-
import {
|
|
27
|
-
useCallback,
|
|
28
|
-
useEffect,
|
|
29
|
-
useMemo,
|
|
30
|
-
useRef,
|
|
31
|
-
useState,
|
|
32
|
-
type ReactNode,
|
|
33
|
-
} from 'react';
|
|
26
|
+
import {useCallback, useMemo, useRef, useState, type ReactNode} from 'react';
|
|
34
27
|
import * as stylex from '@stylexjs/stylex';
|
|
35
28
|
|
|
36
29
|
import {spacingVars} from '../theme/tokens.stylex';
|
|
@@ -360,32 +353,22 @@ export function Stepper({
|
|
|
360
353
|
// still owns the ref and DOM pass-throughs and fills that frame, so its width
|
|
361
354
|
// is the effective component width to observe.
|
|
362
355
|
const [rootWidth, setRootWidth] = useState(0);
|
|
363
|
-
const stopObservingRootRef = useRef<(() => void) | null>(null);
|
|
364
356
|
const attachRoot = useCallback(
|
|
365
357
|
(el: HTMLOListElement | null) => {
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
if (el && isHorizontal) {
|
|
369
|
-
// observeResize calls back once, synchronously, as it subscribes. That
|
|
370
|
-
// is what keeps the collapse off the screen: a ref callback runs during
|
|
371
|
-
// commit, so the width lands and the re-render happens before the
|
|
372
|
-
// browser has painted the uncollapsed stepper it would otherwise show
|
|
373
|
-
// first.
|
|
374
|
-
stopObservingRootRef.current = observeResize(el, entry =>
|
|
375
|
-
setRootWidth(entry.target.clientWidth),
|
|
376
|
-
);
|
|
358
|
+
if (el == null || !isHorizontal) {
|
|
359
|
+
return;
|
|
377
360
|
}
|
|
361
|
+
// observeResize calls back once, synchronously, as it subscribes. That
|
|
362
|
+
// is what keeps the collapse off the screen: a ref callback runs during
|
|
363
|
+
// commit, so the width lands and the re-render happens before the
|
|
364
|
+
// browser has painted the uncollapsed stepper it would otherwise show
|
|
365
|
+
// first. React calls the returned unsubscribe when the list detaches or
|
|
366
|
+
// when the orientation changes.
|
|
367
|
+
return observeResize(el, entry => setRootWidth(entry.target.clientWidth));
|
|
378
368
|
},
|
|
379
369
|
[isHorizontal],
|
|
380
370
|
);
|
|
381
371
|
const rootRef = useMergedRefs(ref, attachRoot);
|
|
382
|
-
useEffect(
|
|
383
|
-
() => () => {
|
|
384
|
-
stopObservingRootRef.current?.();
|
|
385
|
-
stopObservingRootRef.current = null;
|
|
386
|
-
},
|
|
387
|
-
[],
|
|
388
|
-
);
|
|
389
372
|
|
|
390
373
|
// Width is measured rather than asked of a container query because the
|
|
391
374
|
// answer changes what is *rendered*, not just how it looks: the labels and
|
package/src/Switch/Switch.tsx
CHANGED
|
@@ -52,7 +52,6 @@ import type {BaseProps} from '../BaseProps';
|
|
|
52
52
|
import type {SizeValue} from '../utils/types';
|
|
53
53
|
import {themeProps} from '../utils/themeProps';
|
|
54
54
|
import {useAnnounce} from '../hooks/useAnnounce';
|
|
55
|
-
import {useResolvedRequired} from '../hooks/useResolvedRequired';
|
|
56
55
|
|
|
57
56
|
import {useMergedRefs} from '../hooks/useMergedRefs';
|
|
58
57
|
import {usePressFeedback} from '../hooks/usePressFeedback';
|
|
@@ -867,10 +866,6 @@ export function Switch({
|
|
|
867
866
|
const pressable = usePressFeedback();
|
|
868
867
|
const descriptionID = useId();
|
|
869
868
|
const statusMessageID = useId();
|
|
870
|
-
// Announce the effective required state (form default included) while the
|
|
871
|
-
// native `required` stays bound to the explicit `isRequired` so a layout
|
|
872
|
-
// default never switches on browser validation.
|
|
873
|
-
const isEffectivelyRequired = useResolvedRequired({isRequired, isOptional});
|
|
874
869
|
|
|
875
870
|
const [, startTransition] = useTransition();
|
|
876
871
|
const [optimisticValue, setOptimisticValue] = useOptimistic(value);
|
|
@@ -1003,7 +998,8 @@ export function Switch({
|
|
|
1003
998
|
aria-disabled={isDisabled ? 'true' : undefined}
|
|
1004
999
|
form={isDisabled ? '' : undefined}
|
|
1005
1000
|
required={isRequired}
|
|
1006
|
-
|
|
1001
|
+
// A form's required default sets nothing here: an off switch is an answer.
|
|
1002
|
+
aria-required={isRequired ? 'true' : undefined}
|
|
1007
1003
|
onChange={e => {
|
|
1008
1004
|
if (isDisabled || isBusy) {
|
|
1009
1005
|
return;
|
|
@@ -23,7 +23,7 @@ import type {GestureTouch} from '../gestures/types';
|
|
|
23
23
|
import {isRtlElement} from '../hooks/isRtlElement';
|
|
24
24
|
import {useIsomorphicLayoutEffect} from '../hooks/useIsomorphicLayoutEffect';
|
|
25
25
|
import {
|
|
26
|
-
|
|
26
|
+
createMotionAnimator,
|
|
27
27
|
type Animator,
|
|
28
28
|
type MotionCurve,
|
|
29
29
|
} from '../motion/animator';
|
|
@@ -282,15 +282,15 @@ export class SwitchTouchController {
|
|
|
282
282
|
return;
|
|
283
283
|
}
|
|
284
284
|
registerSwitchTable();
|
|
285
|
-
this.thumb =
|
|
285
|
+
this.thumb = createMotionAnimator(elements.thumb);
|
|
286
286
|
// The layer rests clear (its class's opacity 0) while the visuals show
|
|
287
287
|
// the value; from here its opacity is the animator's.
|
|
288
|
-
this.fade =
|
|
288
|
+
this.fade = createMotionAnimator(elements.track, {
|
|
289
289
|
pseudoElement: '::after',
|
|
290
290
|
initial: {opacity: 0},
|
|
291
291
|
});
|
|
292
292
|
this.fade.set({opacity: 0});
|
|
293
|
-
this.shadow =
|
|
293
|
+
this.shadow = createMotionAnimator(elements.thumb, {
|
|
294
294
|
pseudoElement: '::after',
|
|
295
295
|
initial: {opacity: 0},
|
|
296
296
|
});
|
package/src/Table/BaseTable.tsx
CHANGED
|
@@ -14,7 +14,14 @@
|
|
|
14
14
|
* - /packages/cli/assets/templates/blocks/components/Table/ (showcase blocks)
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import {
|
|
17
|
+
import {
|
|
18
|
+
memo,
|
|
19
|
+
useId,
|
|
20
|
+
useRef,
|
|
21
|
+
type ReactElement,
|
|
22
|
+
type ReactNode,
|
|
23
|
+
type Ref,
|
|
24
|
+
} from 'react';
|
|
18
25
|
import {isRenderable} from '../utils/isRenderable';
|
|
19
26
|
import * as stylex from '@stylexjs/stylex';
|
|
20
27
|
import {spacingVars} from '../theme/tokens.stylex';
|
|
@@ -423,6 +430,7 @@ function BaseTableInner<T extends Record<string, unknown>>({
|
|
|
423
430
|
} satisfies TableRenderProps);
|
|
424
431
|
|
|
425
432
|
// --- Plugin pipeline: header cells ---
|
|
433
|
+
const headerLabelIdBase = useId();
|
|
426
434
|
const headerCells = resolvedColumns.map((col, columnIndex) => {
|
|
427
435
|
const headerContent = col.header ?? col.key;
|
|
428
436
|
|
|
@@ -477,28 +485,54 @@ function BaseTableInner<T extends Record<string, unknown>>({
|
|
|
477
485
|
const hasSlots =
|
|
478
486
|
before != null || after != null || overlay != null || below != null;
|
|
479
487
|
|
|
480
|
-
const
|
|
488
|
+
const labelRow = isRenderable(after) ? (
|
|
489
|
+
<div {...stylex.props(styles.headerLabelRow)}>
|
|
490
|
+
{resolvedContent}
|
|
491
|
+
{after}
|
|
492
|
+
</div>
|
|
493
|
+
) : (
|
|
494
|
+
resolvedContent
|
|
495
|
+
);
|
|
496
|
+
|
|
497
|
+
// The overlay is a control of its own. Keep its name and value out of the
|
|
498
|
+
// header's name.
|
|
499
|
+
const namesOwnHeader =
|
|
500
|
+
isRenderable(overlay) &&
|
|
501
|
+
mergedHtmlProps['aria-label'] == null &&
|
|
502
|
+
mergedHtmlProps['aria-labelledby'] == null;
|
|
503
|
+
const labelId = `${headerLabelIdBase}-label-${columnIndex}`;
|
|
504
|
+
const belowId = `${headerLabelIdBase}-below-${columnIndex}`;
|
|
505
|
+
const hasBelow = isRenderable(below);
|
|
506
|
+
|
|
507
|
+
const headerInner = !hasSlots ? (
|
|
508
|
+
resolvedContent
|
|
509
|
+
) : namesOwnHeader ? (
|
|
510
|
+
<>
|
|
511
|
+
{/* Inline, so the cell's text-overflow still reaches the label. */}
|
|
512
|
+
<span id={labelId}>
|
|
513
|
+
{before}
|
|
514
|
+
{labelRow}
|
|
515
|
+
</span>
|
|
516
|
+
{overlay}
|
|
517
|
+
{hasBelow && <div id={belowId}>{below}</div>}
|
|
518
|
+
</>
|
|
519
|
+
) : (
|
|
481
520
|
<>
|
|
482
521
|
{before}
|
|
483
|
-
{
|
|
484
|
-
<div {...stylex.props(styles.headerLabelRow)}>
|
|
485
|
-
{resolvedContent}
|
|
486
|
-
{after}
|
|
487
|
-
</div>
|
|
488
|
-
) : (
|
|
489
|
-
resolvedContent
|
|
490
|
-
)}
|
|
522
|
+
{labelRow}
|
|
491
523
|
{overlay}
|
|
492
524
|
{below}
|
|
493
525
|
</>
|
|
494
|
-
) : (
|
|
495
|
-
resolvedContent
|
|
496
526
|
);
|
|
527
|
+
const headerNameProps = namesOwnHeader
|
|
528
|
+
? {'aria-labelledby': hasBelow ? `${labelId} ${belowId}` : labelId}
|
|
529
|
+
: {};
|
|
497
530
|
|
|
498
531
|
return (
|
|
499
532
|
<HeaderCellComponent
|
|
500
533
|
key={col.key}
|
|
501
534
|
{...mergedHtmlProps}
|
|
535
|
+
{...headerNameProps}
|
|
502
536
|
{...headerTitleProp}
|
|
503
537
|
contextMenuActions={cellRenderProps.contextMenuActions}
|
|
504
538
|
xstyle={cellRenderProps.xstyle}>
|
|
@@ -865,7 +865,7 @@ export function useTableColumnResize<T extends Record<string, unknown>>(
|
|
|
865
865
|
}
|
|
866
866
|
}, []);
|
|
867
867
|
|
|
868
|
-
//
|
|
868
|
+
// Releases the table resize observer on unmount.
|
|
869
869
|
useEffect(() => {
|
|
870
870
|
return () => {
|
|
871
871
|
unobserveTableRef.current?.();
|
|
@@ -934,6 +934,7 @@ export function useTableColumnResize<T extends Record<string, unknown>>(
|
|
|
934
934
|
};
|
|
935
935
|
}, []);
|
|
936
936
|
|
|
937
|
+
// Releases the resize gate on unmount.
|
|
937
938
|
useEffect(() => {
|
|
938
939
|
return () => {
|
|
939
940
|
gateCleanupRef.current?.();
|
|
@@ -102,6 +102,17 @@ export interface UseTableRowExpansionConfig<T extends Record<string, unknown>> {
|
|
|
102
102
|
* it is expanded. Receives the row's item.
|
|
103
103
|
*/
|
|
104
104
|
renderExpanded: (item: T) => ReactNode;
|
|
105
|
+
/**
|
|
106
|
+
* Derive a human-readable row identity for the expansion control's accessible
|
|
107
|
+
* name. The plugin combines it with localized expand/collapse wording. Blank
|
|
108
|
+
* labels fall back to the generic row label.
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```
|
|
112
|
+
* getRowLabel: item => item.name
|
|
113
|
+
* ```
|
|
114
|
+
*/
|
|
115
|
+
getRowLabel?: (item: T) => string;
|
|
105
116
|
/**
|
|
106
117
|
* Control which rows are expandable. Non-expandable rows show no chevron, no
|
|
107
118
|
* context-menu action, and never render a panel. @default all rows expandable
|
|
@@ -345,13 +356,22 @@ const chevronOffsetStyles = stylex.create({
|
|
|
345
356
|
// =============================================================================
|
|
346
357
|
|
|
347
358
|
function ExpansionChevron({
|
|
359
|
+
rowLabel,
|
|
348
360
|
isExpanded,
|
|
349
361
|
onToggle,
|
|
350
362
|
}: {
|
|
363
|
+
rowLabel?: string;
|
|
351
364
|
isExpanded: boolean;
|
|
352
365
|
onToggle: () => void;
|
|
353
366
|
}) {
|
|
354
367
|
const t = useComponentTranslator();
|
|
368
|
+
const ariaLabel = rowLabel
|
|
369
|
+
? isExpanded
|
|
370
|
+
? t('@astryx.tableRowExpansion.collapseRowNamed', {label: rowLabel})
|
|
371
|
+
: t('@astryx.tableRowExpansion.expandRowNamed', {label: rowLabel})
|
|
372
|
+
: isExpanded
|
|
373
|
+
? t('@astryx.tableRowExpansion.collapseRow')
|
|
374
|
+
: t('@astryx.tableRowExpansion.expandRow');
|
|
355
375
|
const ctx = useTableContext();
|
|
356
376
|
return (
|
|
357
377
|
<button
|
|
@@ -365,11 +385,7 @@ function ExpansionChevron({
|
|
|
365
385
|
e.stopPropagation();
|
|
366
386
|
onToggle();
|
|
367
387
|
}}
|
|
368
|
-
aria-label={
|
|
369
|
-
isExpanded
|
|
370
|
-
? t('@astryx.tableRowExpansion.collapseRow')
|
|
371
|
-
: t('@astryx.tableRowExpansion.expandRow')
|
|
372
|
-
}
|
|
388
|
+
aria-label={ariaLabel}
|
|
373
389
|
aria-expanded={isExpanded}>
|
|
374
390
|
<Icon
|
|
375
391
|
icon="chevronRight"
|
|
@@ -439,6 +455,8 @@ function PanelDividerModeWatch({
|
|
|
439
455
|
const {mode} = useTheme();
|
|
440
456
|
const themeName = useThemeName();
|
|
441
457
|
const lastRef = useRef({mode, themeName});
|
|
458
|
+
// Syncs the panel dividers with the computed theme CSS after a color mode or
|
|
459
|
+
// theme change.
|
|
442
460
|
useLayoutEffect(() => {
|
|
443
461
|
const last = lastRef.current;
|
|
444
462
|
if (last.mode === mode && last.themeName === themeName) {
|
|
@@ -582,6 +600,7 @@ function ExpansionSnapshot({
|
|
|
582
600
|
* return next;
|
|
583
601
|
* }),
|
|
584
602
|
* getRowKey: item => item.id,
|
|
603
|
+
* getRowLabel: item => item.name,
|
|
585
604
|
* renderExpanded: item => <OrderDetails order={item} />,
|
|
586
605
|
* });
|
|
587
606
|
* <Table data={data} columns={columns} idKey="id" plugins={{expansion}} />;
|
|
@@ -595,6 +614,7 @@ export function useTableRowExpansion<T extends Record<string, unknown>>(
|
|
|
595
614
|
onToggle,
|
|
596
615
|
getRowKey,
|
|
597
616
|
renderExpanded,
|
|
617
|
+
getRowLabel,
|
|
598
618
|
getIsItemExpandable,
|
|
599
619
|
hasRowClickExpansion,
|
|
600
620
|
panelVariant = 'transparent',
|
|
@@ -703,6 +723,8 @@ export function useTableRowExpansion<T extends Record<string, unknown>>(
|
|
|
703
723
|
}
|
|
704
724
|
}
|
|
705
725
|
}, []);
|
|
726
|
+
// Syncs the chevron transitions with the `animatedLayout` handle. Without a
|
|
727
|
+
// handle, the chevrons use the theme's turn.
|
|
706
728
|
useLayoutEffect(() => {
|
|
707
729
|
if (animatedLayout == null) {
|
|
708
730
|
resetChevrons();
|
|
@@ -837,15 +859,17 @@ export function useTableRowExpansion<T extends Record<string, unknown>>(
|
|
|
837
859
|
return null;
|
|
838
860
|
}
|
|
839
861
|
const key = getRowKey(item);
|
|
862
|
+
const isExpanded = expandedKeys.has(key);
|
|
840
863
|
return (
|
|
841
864
|
<ExpansionChevron
|
|
842
|
-
|
|
865
|
+
rowLabel={getRowLabel?.(item)?.trim() || undefined}
|
|
866
|
+
isExpanded={isExpanded}
|
|
843
867
|
onToggle={() => onToggle(key)}
|
|
844
868
|
/>
|
|
845
869
|
);
|
|
846
870
|
},
|
|
847
871
|
}),
|
|
848
|
-
[expandedKeys, onToggle, getRowKey, getIsItemExpandable, t],
|
|
872
|
+
[expandedKeys, onToggle, getRowKey, getIsItemExpandable, getRowLabel, t],
|
|
849
873
|
);
|
|
850
874
|
|
|
851
875
|
return useMemo(
|
|
@@ -432,6 +432,8 @@ function PinnedDividerModeWatch({
|
|
|
432
432
|
const {mode} = useTheme();
|
|
433
433
|
const themeName = useThemeName();
|
|
434
434
|
const lastRef = useRef({mode, themeName});
|
|
435
|
+
// Syncs the pinned divider with the computed theme CSS after a color mode or
|
|
436
|
+
// theme change.
|
|
435
437
|
useLayoutEffect(() => {
|
|
436
438
|
const last = lastRef.current;
|
|
437
439
|
if (last.mode !== mode || last.themeName !== themeName) {
|
|
@@ -87,6 +87,17 @@ export interface UseTableTreeDataConfig<T extends Record<string, unknown>> {
|
|
|
87
87
|
getRowMeta: (item: T) => TableTreeRowMeta | undefined;
|
|
88
88
|
/** Toggle a row's expansion. */
|
|
89
89
|
onToggleItem: (item: T) => void;
|
|
90
|
+
/**
|
|
91
|
+
* Derive a human-readable row identity for the expander's accessible name.
|
|
92
|
+
* The plugin combines it with localized expand/collapse wording. Blank labels
|
|
93
|
+
* fall back to the generic row label.
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```
|
|
97
|
+
* getRowLabel: item => item.name
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
getRowLabel?: (item: T) => string;
|
|
90
101
|
/**
|
|
91
102
|
* Whether any row in the dataset is expandable. When false the plugin is
|
|
92
103
|
* a no-op: no expanders, no indent, no tree ARIA — flat data renders
|
|
@@ -164,38 +175,42 @@ function createTreeStore<T extends Record<string, unknown>>(
|
|
|
164
175
|
const TreeStoreContext = createContext<TreeStore<any> | null>(null);
|
|
165
176
|
TreeStoreContext.displayName = 'TreeStoreContext';
|
|
166
177
|
|
|
167
|
-
/** Indent token -> index, for the
|
|
178
|
+
/** Indent token -> index, for the primitive row snapshot. */
|
|
168
179
|
const INDENT_INDEX = {sm: 0, md: 1, lg: 2} as const;
|
|
169
180
|
|
|
170
181
|
/**
|
|
171
|
-
* Encode a row's tree meta as a primitive for
|
|
172
|
-
* object snapshots would tear. The
|
|
173
|
-
*
|
|
182
|
+
* Encode a row's tree meta and optional accessible label as a primitive for
|
|
183
|
+
* useSyncExternalStore — object snapshots would tear. The numeric fast path is
|
|
184
|
+
* retained when getRowLabel is absent. When it is present, the derived label
|
|
185
|
+
* participates so config-only label changes re-render the affected cells.
|
|
174
186
|
* Encoding: level * 16 + indentIndex * 4 + hasChildren * 2 + isExpanded;
|
|
175
187
|
* -1 = no meta.
|
|
176
188
|
*/
|
|
177
|
-
function
|
|
189
|
+
function getRowSnapshot<T extends Record<string, unknown>>(
|
|
178
190
|
config: UseTableTreeDataConfig<T>,
|
|
179
191
|
item: T,
|
|
180
|
-
): number {
|
|
192
|
+
): number | string {
|
|
181
193
|
const meta = config.getRowMeta(item);
|
|
182
194
|
if (!meta) {
|
|
183
195
|
return -1;
|
|
184
196
|
}
|
|
185
|
-
|
|
197
|
+
const metaSnapshot =
|
|
186
198
|
meta.level * 16 +
|
|
187
199
|
INDENT_INDEX[config.indent ?? 'md'] * 4 +
|
|
188
200
|
(meta.hasChildren ? 2 : 0) +
|
|
189
|
-
(meta.isExpanded ? 1 : 0)
|
|
190
|
-
)
|
|
201
|
+
(meta.isExpanded ? 1 : 0);
|
|
202
|
+
if (!config.getRowLabel) {
|
|
203
|
+
return metaSnapshot;
|
|
204
|
+
}
|
|
205
|
+
return `${metaSnapshot}\u0000${config.getRowLabel(item)?.trim() ?? ''}`;
|
|
191
206
|
}
|
|
192
207
|
|
|
193
|
-
function
|
|
208
|
+
function useRowSnapshot<T extends Record<string, unknown>>(
|
|
194
209
|
store: TreeStore<T>,
|
|
195
210
|
item: T,
|
|
196
|
-
): number {
|
|
211
|
+
): number | string {
|
|
197
212
|
const getSnapshot = useCallback(
|
|
198
|
-
() =>
|
|
213
|
+
() => getRowSnapshot(store.getConfig(), item),
|
|
199
214
|
[store, item],
|
|
200
215
|
);
|
|
201
216
|
|
|
@@ -324,11 +339,22 @@ const treeStyles = stylex.create({
|
|
|
324
339
|
function TreeExpander({
|
|
325
340
|
isExpanded,
|
|
326
341
|
onToggle,
|
|
342
|
+
rowLabel,
|
|
327
343
|
}: {
|
|
328
344
|
isExpanded: boolean;
|
|
329
345
|
onToggle: () => void;
|
|
346
|
+
rowLabel?: string;
|
|
330
347
|
}) {
|
|
331
348
|
const t = useComponentTranslator();
|
|
349
|
+
const normalizedRowLabel = rowLabel?.trim();
|
|
350
|
+
const ariaLabel = normalizedRowLabel
|
|
351
|
+
? isExpanded
|
|
352
|
+
? t('@astryx.tableTree.collapseRowNamed', {label: normalizedRowLabel})
|
|
353
|
+
: t('@astryx.tableTree.expandRowNamed', {label: normalizedRowLabel})
|
|
354
|
+
: isExpanded
|
|
355
|
+
? t('@astryx.tableTree.collapseRow')
|
|
356
|
+
: t('@astryx.tableTree.expandRow');
|
|
357
|
+
|
|
332
358
|
return (
|
|
333
359
|
<button
|
|
334
360
|
type="button"
|
|
@@ -337,11 +363,7 @@ function TreeExpander({
|
|
|
337
363
|
e.stopPropagation();
|
|
338
364
|
onToggle();
|
|
339
365
|
}}
|
|
340
|
-
aria-label={
|
|
341
|
-
isExpanded
|
|
342
|
-
? t('@astryx.tableTree.collapseRow')
|
|
343
|
-
: t('@astryx.tableTree.expandRow')
|
|
344
|
-
}
|
|
366
|
+
aria-label={ariaLabel}
|
|
345
367
|
aria-expanded={isExpanded}>
|
|
346
368
|
<Icon
|
|
347
369
|
icon="chevronRight"
|
|
@@ -440,9 +462,9 @@ function TreeCellContentInner<T extends Record<string, unknown>>({
|
|
|
440
462
|
item: T;
|
|
441
463
|
children: ReactNode;
|
|
442
464
|
}) {
|
|
443
|
-
// Subscribe to this row's structural meta
|
|
444
|
-
//
|
|
445
|
-
|
|
465
|
+
// Subscribe to this row's structural meta and derived label so only affected
|
|
466
|
+
// cells re-render when either changes.
|
|
467
|
+
useRowSnapshot(store, item);
|
|
446
468
|
|
|
447
469
|
const config = store.getConfig();
|
|
448
470
|
const meta = config.getRowMeta(item);
|
|
@@ -463,6 +485,7 @@ function TreeCellContentInner<T extends Record<string, unknown>>({
|
|
|
463
485
|
<TreeExpander
|
|
464
486
|
isExpanded={meta.isExpanded}
|
|
465
487
|
onToggle={() => store.getConfig().onToggleItem(item)}
|
|
488
|
+
rowLabel={config.getRowLabel?.(item)}
|
|
466
489
|
/>
|
|
467
490
|
) : (
|
|
468
491
|
<span {...stylex.props(treeStyles.leafSpacer)} />
|
|
@@ -28,6 +28,12 @@ export const docs = {
|
|
|
28
28
|
description: 'Derive a stable unique key from a row item.',
|
|
29
29
|
required: true,
|
|
30
30
|
},
|
|
31
|
+
{
|
|
32
|
+
name: 'getRowLabel',
|
|
33
|
+
type: '(item: T) => string',
|
|
34
|
+
description:
|
|
35
|
+
'Derive a human-readable row identity for the chevron accessible name. Astryx combines it with localized expand/collapse wording. Omit it, or return blank text, to keep the generic "Expand row" and "Collapse row" labels.',
|
|
36
|
+
},
|
|
31
37
|
{
|
|
32
38
|
name: 'renderExpanded',
|
|
33
39
|
type: '(item: T) => ReactNode',
|
|
@@ -75,6 +81,7 @@ const expansion = useTableRowExpansion({
|
|
|
75
81
|
return next;
|
|
76
82
|
}),
|
|
77
83
|
getRowKey: item => item.id,
|
|
84
|
+
getRowLabel: item => item.name,
|
|
78
85
|
renderExpanded: item => <OrderDetails order={item} />,
|
|
79
86
|
});
|
|
80
87
|
|
|
@@ -122,6 +129,8 @@ export const docsDense = {
|
|
|
122
129
|
expandedKeys: 'Set of currently-expanded row keys. Consumer-owned.',
|
|
123
130
|
onToggle: 'Called with a row key when its expansion is toggled.',
|
|
124
131
|
getRowKey: 'Derive a stable unique key from a row item.',
|
|
132
|
+
getRowLabel:
|
|
133
|
+
'Derive a row identity for the localized expand/collapse control label. Blank or omitted values keep the generic row label.',
|
|
125
134
|
renderExpanded:
|
|
126
135
|
'Render the full-width detail panel below an expanded row. Receives the row item.',
|
|
127
136
|
getIsItemExpandable:
|
|
@@ -19,9 +19,15 @@ export const docs = {
|
|
|
19
19
|
{
|
|
20
20
|
name: 'onToggleItem',
|
|
21
21
|
type: '(item: T) => void',
|
|
22
|
-
description:
|
|
22
|
+
description: "Toggle a row's expansion.",
|
|
23
23
|
required: true,
|
|
24
24
|
},
|
|
25
|
+
{
|
|
26
|
+
name: 'getRowLabel',
|
|
27
|
+
type: '(item: T) => string',
|
|
28
|
+
description:
|
|
29
|
+
'Derive a human-readable row identity for the expander. Astryx combines it with localized expand/collapse wording. Omit it, or return blank text, to keep the generic "Expand row" and "Collapse row" labels.',
|
|
30
|
+
},
|
|
25
31
|
{
|
|
26
32
|
name: 'hasExpandableRows',
|
|
27
33
|
type: 'boolean',
|
|
@@ -81,7 +87,10 @@ export const docs = {
|
|
|
81
87
|
idKey: 'id',
|
|
82
88
|
defaultExpandedIds: ['src'],
|
|
83
89
|
});
|
|
84
|
-
const tree = useTableTreeData(
|
|
90
|
+
const tree = useTableTreeData({
|
|
91
|
+
...treeConfig,
|
|
92
|
+
getRowLabel: item => item.name,
|
|
93
|
+
});
|
|
85
94
|
|
|
86
95
|
<Table data={visibleData} columns={columns} idKey="id" plugins={{tree}} />;`,
|
|
87
96
|
},
|
|
@@ -97,10 +106,13 @@ export const docsDense = {
|
|
|
97
106
|
getRowMeta:
|
|
98
107
|
'structural meta per visible row: {id, level (0-based), hasChildren, isExpanded}',
|
|
99
108
|
onToggleItem: 'toggle row expansion',
|
|
109
|
+
getRowLabel:
|
|
110
|
+
'derive a row identity for the localized expand/collapse accessible name. Blank or omitted values keep the generic row label.',
|
|
100
111
|
hasExpandableRows: 'false => plugin is a no-op (no expanders/indent/ARIA)',
|
|
101
112
|
indent:
|
|
102
113
|
"indent step per level: 'sm' | 'md' | 'lg' (spacing-3/4/6). Defaults to 'md'.",
|
|
103
|
-
treeColumnKey:
|
|
114
|
+
treeColumnKey:
|
|
115
|
+
'column carrying indent + expander. Defaults to first column.',
|
|
104
116
|
hasExpandAllControl:
|
|
105
117
|
'show expand-all/collapse-all toggle in tree column header. Needs isAllExpanded + onExpandAll/onCollapseAll (from useTableTreeState). Defaults to false.',
|
|
106
118
|
isAllExpanded:
|
|
@@ -45,6 +45,7 @@ import {
|
|
|
45
45
|
} from '../Field';
|
|
46
46
|
import {Icon, renderIconSlot, type IconType} from '../Icon';
|
|
47
47
|
import {isRenderable} from '../utils/isRenderable';
|
|
48
|
+
import {withholdCallerHandlers} from '../utils/disabledInteraction';
|
|
48
49
|
import {Spinner} from '../Spinner';
|
|
49
50
|
import {useTooltip} from '../Tooltip';
|
|
50
51
|
import {mergeProps} from '../utils';
|
|
@@ -476,13 +477,7 @@ export function TextArea({
|
|
|
476
477
|
const showsDisabledMessage = isDisabled && !!disabledMessage;
|
|
477
478
|
// A disabled field keeps its tab stop but, like a natively disabled one,
|
|
478
479
|
// runs no caller event handler other than focus and blur (`spec:AST-085` FR2).
|
|
479
|
-
const fieldProps = isDisabled
|
|
480
|
-
? Object.fromEntries(
|
|
481
|
-
Object.entries(rest).filter(
|
|
482
|
-
([key]) => !/^on[A-Z]/.test(key) || /^on(Focus|Blur)/.test(key),
|
|
483
|
-
),
|
|
484
|
-
)
|
|
485
|
-
: rest;
|
|
480
|
+
const fieldProps = withholdCallerHandlers(rest, isDisabled);
|
|
486
481
|
const disabledMessageTooltip = useTooltip({
|
|
487
482
|
placement: 'above',
|
|
488
483
|
// The container div is not naturally focusable; focusin bubbles up from
|
|
@@ -35,21 +35,23 @@ import {
|
|
|
35
35
|
typographyVars,
|
|
36
36
|
typeScaleVars,
|
|
37
37
|
} from '../theme/tokens.stylex';
|
|
38
|
+
import {Field} from '../Field/Field';
|
|
39
|
+
import {InputClearButton} from '../Field/InputClearButton';
|
|
38
40
|
import {
|
|
39
|
-
Field,
|
|
40
|
-
InputClearButton,
|
|
41
|
-
type InputStatus,
|
|
42
41
|
inputWrapperStyles,
|
|
43
42
|
inputStatusBorderStyles,
|
|
44
43
|
inputStatusHoverShadowStyles,
|
|
45
44
|
inputStatusFocusWithinStyles,
|
|
46
|
-
} from '../Field';
|
|
47
|
-
import
|
|
45
|
+
} from '../Field/inputStyles.stylex';
|
|
46
|
+
import type {InputStatus} from '../Field/types';
|
|
47
|
+
import {renderIconSlot, type IconType} from '../Icon/Icon';
|
|
48
48
|
import {isRenderable} from '../utils/isRenderable';
|
|
49
|
-
import {
|
|
50
|
-
import {
|
|
51
|
-
import {
|
|
52
|
-
import {
|
|
49
|
+
import {withholdCallerHandlers} from '../utils/disabledInteraction';
|
|
50
|
+
import {Spinner} from '../Spinner/Spinner';
|
|
51
|
+
import {useTooltip} from '../Tooltip/useTooltip';
|
|
52
|
+
import {VisuallyHidden} from '../VisuallyHidden/VisuallyHidden';
|
|
53
|
+
import {getInputARIA} from '../utils/inputAria';
|
|
54
|
+
import {isImeKeyEvent} from '../utils/ime';
|
|
53
55
|
import {
|
|
54
56
|
textEntryTraitAttributes,
|
|
55
57
|
type TextEntryTraitProps,
|
|
@@ -109,7 +111,7 @@ export type {
|
|
|
109
111
|
InputStatus as TextInputStatus,
|
|
110
112
|
InputStatusType as TextInputStatusType,
|
|
111
113
|
} from '../Field';
|
|
112
|
-
import {mergeProps} from '../utils';
|
|
114
|
+
import {mergeProps} from '../utils/mergeProps';
|
|
113
115
|
import {useSize} from '../SizeContext/SizeContext';
|
|
114
116
|
import {useInputContainer} from '../hooks/useInputContainer';
|
|
115
117
|
import {useInputStatusIcon} from '../hooks/useInputStatusIcon';
|
|
@@ -373,13 +375,7 @@ export function TextInput({
|
|
|
373
375
|
const isEffectivelyRequired = useResolvedRequired({isRequired, isOptional});
|
|
374
376
|
// A disabled field keeps its tab stop but, like a natively disabled one,
|
|
375
377
|
// runs no caller event handler other than focus and blur (`spec:AST-085` FR2).
|
|
376
|
-
const fieldProps = isDisabled
|
|
377
|
-
? Object.fromEntries(
|
|
378
|
-
Object.entries(rest).filter(
|
|
379
|
-
([key]) => !/^on[A-Z]/.test(key) || /^on(Focus|Blur)/.test(key),
|
|
380
|
-
),
|
|
381
|
-
)
|
|
382
|
-
: rest;
|
|
378
|
+
const fieldProps = withholdCallerHandlers(rest, isDisabled);
|
|
383
379
|
const size = useSize(sizeProp, 'md');
|
|
384
380
|
|
|
385
381
|
const generatedID = useId();
|
|
@@ -491,6 +491,8 @@ function TimeField({
|
|
|
491
491
|
// region mounted together with its content is not reliably announced.
|
|
492
492
|
// Ungrouped mode delegates to Field -> FieldStatus, which announces itself.
|
|
493
493
|
const announce = useAnnounce();
|
|
494
|
+
// Syncs the live region with `status.message` when the field is in an
|
|
495
|
+
// InputGroup.
|
|
494
496
|
useEffect(() => {
|
|
495
497
|
if (inputGroup && status?.message) {
|
|
496
498
|
announce(
|