@astryxdesign/core 0.7.5-canary.fccd771 → 0.7.5
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/CHANGELOG.md +211 -10
- package/README.md +15 -12
- package/dist/AlertDialog/AlertDialog.js +1 -1
- package/dist/AppShell/AppShell.d.ts +0 -22
- package/dist/AppShell/AppShell.d.ts.map +1 -1
- package/dist/AppShell/AppShell.js +155 -1
- package/dist/Avatar/AvatarStatusDot.js +2 -2
- package/dist/Badge/Badge.d.ts.map +1 -1
- package/dist/Badge/Badge.js +18 -2
- package/dist/Banner/Banner.d.ts +1 -0
- package/dist/Banner/Banner.d.ts.map +1 -1
- package/dist/Banner/Banner.js +64 -9
- package/dist/BottomSheet/BottomSheet.d.ts +53 -5
- package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheet.js +435 -198
- package/dist/BottomSheet/BottomSheetHostContext.d.ts +8 -0
- package/dist/BottomSheet/BottomSheetHostContext.d.ts.map +1 -0
- package/dist/BottomSheet/BottomSheetHostContext.js +35 -0
- package/dist/BottomSheet/BottomSheetPanel.d.ts +9 -1
- package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetPanel.js +77 -23
- package/dist/BottomSheet/BottomSheetSwitcher.d.ts +53 -14
- package/dist/BottomSheet/BottomSheetSwitcher.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetSwitcher.js +229 -27
- package/dist/BottomSheet/BottomSheetSwitcherContext.d.ts +6 -0
- package/dist/BottomSheet/BottomSheetSwitcherContext.d.ts.map +1 -1
- package/dist/BottomSheet/bottomSheetEscape.d.ts +3 -0
- package/dist/BottomSheet/bottomSheetEscape.d.ts.map +1 -0
- package/dist/BottomSheet/bottomSheetEscape.js +20 -0
- package/dist/BottomSheet/bottomSheetStack.d.ts +262 -0
- package/dist/BottomSheet/bottomSheetStack.d.ts.map +1 -0
- package/dist/BottomSheet/bottomSheetStack.js +1675 -0
- package/dist/BottomSheet/useSheetGestures.d.ts +19 -3
- package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
- package/dist/BottomSheet/useSheetGestures.js +43 -14
- package/dist/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
- package/dist/Breadcrumbs/BreadcrumbItem.js +36 -3
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/Button/Button.js +18 -7
- package/dist/Chat/ChatComposer.d.ts.map +1 -1
- package/dist/Chat/ChatComposer.js +25 -32
- package/dist/Chat/ChatComposerInput.d.ts.map +1 -1
- package/dist/Chat/ChatComposerInput.js +55 -16
- package/dist/Chat/ChatMessageMetadata.js +2 -2
- package/dist/Chat/ChatPastedTextToken.d.ts.map +1 -1
- package/dist/Chat/ChatPastedTextToken.js +7 -6
- package/dist/Chat/ChatToolCalls.js +4 -4
- package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
- package/dist/ClickableCard/ClickableCard.js +10 -6
- package/dist/CodeBlock/CodeBlock.d.ts +25 -2
- package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
- package/dist/CodeBlock/CodeBlock.js +58 -19
- package/dist/CodeBlock/grammar.d.ts +134 -0
- package/dist/CodeBlock/grammar.d.ts.map +1 -0
- package/dist/CodeBlock/grammar.js +219 -0
- package/dist/CodeBlock/index.d.ts +2 -0
- package/dist/CodeBlock/index.d.ts.map +1 -1
- package/dist/CodeBlock/index.js +1 -0
- package/dist/CodeBlock/languages/dockerfile.d.ts +3 -0
- package/dist/CodeBlock/languages/dockerfile.d.ts.map +1 -0
- package/dist/CodeBlock/languages/dockerfile.js +45 -0
- package/dist/CodeBlock/languages/graphql.d.ts +3 -0
- package/dist/CodeBlock/languages/graphql.d.ts.map +1 -0
- package/dist/CodeBlock/languages/graphql.js +27 -0
- package/dist/CodeBlock/languages/java.d.ts +3 -0
- package/dist/CodeBlock/languages/java.d.ts.map +1 -0
- package/dist/CodeBlock/languages/java.js +24 -0
- package/dist/CodeBlock/languages/lua.d.ts +3 -0
- package/dist/CodeBlock/languages/lua.d.ts.map +1 -0
- package/dist/CodeBlock/languages/lua.js +21 -0
- package/dist/CodeBlock/languages/objective-c.d.ts +3 -0
- package/dist/CodeBlock/languages/objective-c.d.ts.map +1 -0
- package/dist/CodeBlock/languages/objective-c.js +27 -0
- package/dist/CodeBlock/languages/powershell.d.ts +3 -0
- package/dist/CodeBlock/languages/powershell.d.ts.map +1 -0
- package/dist/CodeBlock/languages/powershell.js +30 -0
- package/dist/CodeBlock/languages/ruby.d.ts +3 -0
- package/dist/CodeBlock/languages/ruby.d.ts.map +1 -0
- package/dist/CodeBlock/languages/ruby.js +24 -0
- package/dist/CodeBlock/languages/thrift.d.ts +3 -0
- package/dist/CodeBlock/languages/thrift.d.ts.map +1 -0
- package/dist/CodeBlock/languages/thrift.js +18 -0
- package/dist/CodeBlock/languages/toml.d.ts +3 -0
- package/dist/CodeBlock/languages/toml.d.ts.map +1 -0
- package/dist/CodeBlock/languages/toml.js +53 -0
- package/dist/CodeBlock/tokenizer.d.ts +8 -4
- package/dist/CodeBlock/tokenizer.d.ts.map +1 -1
- package/dist/CodeBlock/tokenizer.js +158 -8
- package/dist/Collapsible/Collapsible.d.ts +8 -1
- package/dist/Collapsible/Collapsible.d.ts.map +1 -1
- package/dist/Collapsible/Collapsible.js +84 -2
- package/dist/CommandPalette/CommandPalette.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPalette.js +15 -1
- package/dist/CommandPalette/CommandPaletteEmpty.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPaletteEmpty.js +1 -0
- package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPaletteInput.js +14 -2
- package/dist/CommandPalette/busyStartSettle.d.ts +4 -0
- package/dist/CommandPalette/busyStartSettle.d.ts.map +1 -0
- package/dist/CommandPalette/busyStartSettle.js +23 -0
- package/dist/ComplexSelector/ComplexSelector.d.ts +20 -2
- package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
- package/dist/ComplexSelector/ComplexSelector.js +42 -7
- package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
- package/dist/ContextMenu/ContextMenu.js +48 -13
- package/dist/DateInput/DateInput.d.ts.map +1 -1
- package/dist/DateInput/DateInput.js +12 -5
- package/dist/DateInput/NativeDateField.d.ts.map +1 -1
- package/dist/DateInput/NativeDateField.js +2 -1
- package/dist/DateInput/TouchDateField.d.ts.map +1 -1
- package/dist/DateInput/TouchDateField.js +2 -1
- package/dist/DateInput/Wheel.d.ts.map +1 -1
- package/dist/DateInput/Wheel.js +1 -1
- package/dist/Dialog/Dialog.d.ts +4 -0
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +20 -8
- package/dist/Drawer/Drawer.d.ts.map +1 -1
- package/dist/Drawer/Drawer.js +18 -13
- package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenu.js +34 -30
- package/dist/DropdownMenu/DropdownMenuGroup.d.ts +7 -4
- package/dist/DropdownMenu/DropdownMenuGroup.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuGroup.js +10 -4
- package/dist/DropdownMenu/DropdownMenuItem.js +3 -3
- package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts +10 -5
- package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.js +13 -5
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +6 -6
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.js +0 -3
- package/dist/DropdownMenu/MenuBottomSheet.d.ts +11 -4
- package/dist/DropdownMenu/MenuBottomSheet.d.ts.map +1 -1
- package/dist/DropdownMenu/MenuBottomSheet.js +35 -9
- package/dist/DropdownMenu/MenuBottomSheetActionList.js +3 -3
- package/dist/DropdownMenu/lazyMenuBottomSheet.d.ts +2 -0
- package/dist/DropdownMenu/lazyMenuBottomSheet.d.ts.map +1 -1
- package/dist/DropdownMenu/lazyMenuBottomSheet.js +25 -3
- package/dist/DropdownMenu/menuBottomSheet.stylex.d.ts +23 -0
- package/dist/DropdownMenu/menuBottomSheet.stylex.d.ts.map +1 -0
- package/dist/DropdownMenu/menuBottomSheet.stylex.js +29 -0
- package/dist/DropdownMenu/menuItemHover.d.ts +3 -0
- package/dist/DropdownMenu/menuItemHover.d.ts.map +1 -1
- package/dist/DropdownMenu/menuItemHover.js +14 -1
- package/dist/DropdownMenu/menuTouchAction.stylex.d.ts +25 -0
- package/dist/DropdownMenu/menuTouchAction.stylex.d.ts.map +1 -0
- package/dist/DropdownMenu/menuTouchAction.stylex.js +29 -0
- package/dist/DropdownMenu/useMenuDrillIn.d.ts.map +1 -1
- package/dist/DropdownMenu/useMenuDrillIn.js +7 -5
- package/dist/EmptyState/EmptyState.d.ts +4 -2
- package/dist/EmptyState/EmptyState.d.ts.map +1 -1
- package/dist/EmptyState/EmptyState.js +6 -4
- package/dist/Field/Field.js +1 -1
- package/dist/Field/FieldLabel.js +1 -1
- package/dist/Field/PanelSearchInput.d.ts +9 -1
- package/dist/Field/PanelSearchInput.d.ts.map +1 -1
- package/dist/Field/PanelSearchInput.js +31 -22
- package/dist/Field/inputDisabledFocus.d.ts +14 -0
- package/dist/Field/inputDisabledFocus.d.ts.map +1 -0
- package/dist/Field/inputDisabledFocus.js +19 -0
- package/dist/Field/inputStyles.stylex.d.ts +9 -9
- package/dist/Field/inputStyles.stylex.js +9 -9
- package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
- package/dist/FieldStatus/FieldStatus.js +7 -3
- package/dist/FileInput/FileInput.d.ts.map +1 -1
- package/dist/FileInput/FileInput.js +22 -12
- package/dist/Icon/Icon.d.ts +37 -5
- package/dist/Icon/Icon.d.ts.map +1 -1
- package/dist/Icon/Icon.js +65 -11
- package/dist/Icon/IconSize.stylex.d.ts +16 -11
- package/dist/Icon/IconSize.stylex.d.ts.map +1 -1
- package/dist/Icon/IconSize.stylex.js +27 -11
- package/dist/Icon/globalIconRegistry.d.ts +71 -4
- package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
- package/dist/Icon/globalIconRegistry.js +163 -23
- package/dist/Icon/index.d.ts +26 -2
- package/dist/Icon/index.d.ts.map +1 -1
- package/dist/Icon/index.js +24 -1
- package/dist/Icon/useIcon.d.ts +5 -1
- package/dist/Icon/useIcon.d.ts.map +1 -1
- package/dist/Icon/useIcon.js +5 -1
- package/dist/InputGroup/InputGroup.d.ts +1 -1
- package/dist/InputGroup/InputGroup.d.ts.map +1 -1
- package/dist/InputGroup/InputGroup.js +46 -36
- package/dist/InputGroup/InputGroupInternalContext.d.ts +4 -0
- package/dist/InputGroup/InputGroupInternalContext.d.ts.map +1 -0
- package/dist/InputGroup/InputGroupInternalContext.js +15 -0
- package/dist/InputGroup/InputGroupText.d.ts.map +1 -1
- package/dist/InputGroup/InputGroupText.js +2 -0
- package/dist/InputGroup/groupStyles.d.ts +9 -0
- package/dist/InputGroup/groupStyles.d.ts.map +1 -1
- package/dist/InputGroup/groupStyles.js +28 -14
- package/dist/Item/Item.d.ts +5 -1
- package/dist/Item/Item.d.ts.map +1 -1
- package/dist/Item/Item.js +23 -7
- package/dist/Item/ItemMarkerColumns.a11y.chromium.spec.d.ts +2 -0
- package/dist/Item/ItemMarkerColumns.a11y.chromium.spec.d.ts.map +1 -0
- package/dist/Item/ItemMarkerColumns.a11y.chromium.spec.js +132 -0
- package/dist/Item/ItemMarkerColumnsContext.d.ts +14 -0
- package/dist/Item/ItemMarkerColumnsContext.d.ts.map +1 -0
- package/dist/Item/ItemMarkerColumnsContext.js +18 -0
- package/dist/Item/ItemSwipeLayer.d.ts.map +1 -1
- package/dist/Item/ItemSwipeLayer.js +3 -0
- package/dist/Item/useSwipeAction.d.ts.map +1 -1
- package/dist/Item/useSwipeAction.js +60 -5
- package/dist/Kbd/Kbd.d.ts +2 -2
- package/dist/Kbd/Kbd.d.ts.map +1 -1
- package/dist/Kbd/Kbd.js +18 -11
- package/dist/Layer/layerAnimations.stylex.d.ts +9 -5
- package/dist/Layer/layerAnimations.stylex.d.ts.map +1 -1
- package/dist/Layer/layerAnimations.stylex.js +23 -10
- package/dist/Layer/layerSlideRules.d.ts +62 -2
- package/dist/Layer/layerSlideRules.d.ts.map +1 -1
- package/dist/Layer/layerSlideRules.js +124 -3
- package/dist/Layer/layerStack.d.ts +12 -9
- package/dist/Layer/layerStack.d.ts.map +1 -1
- package/dist/Layer/layerStack.js +116 -53
- package/dist/Layer/modalOutlet.d.ts +44 -6
- package/dist/Layer/modalOutlet.d.ts.map +1 -1
- package/dist/Layer/modalOutlet.js +150 -14
- package/dist/Layer/preserveAnimations.d.ts +11 -0
- package/dist/Layer/preserveAnimations.d.ts.map +1 -0
- package/dist/Layer/preserveAnimations.js +245 -0
- package/dist/Layer/useLayer.d.ts +19 -2
- package/dist/Layer/useLayer.d.ts.map +1 -1
- package/dist/Layer/useLayer.js +531 -44
- package/dist/Layer/useLayerDismissal.d.ts +10 -7
- package/dist/Layer/useLayerDismissal.d.ts.map +1 -1
- package/dist/Layer/useLayerDismissal.js +8 -8
- package/dist/Layer/useTouchTrigger.d.ts +14 -1
- package/dist/Layer/useTouchTrigger.d.ts.map +1 -1
- package/dist/Layer/useTouchTrigger.js +72 -17
- package/dist/Layout/Layout.d.ts.map +1 -1
- package/dist/Layout/Layout.js +4 -0
- package/dist/Layout/LayoutContent.d.ts.map +1 -1
- package/dist/Layout/LayoutContent.js +2 -2
- package/dist/Layout/LayoutFooter.d.ts.map +1 -1
- package/dist/Layout/LayoutFooter.js +2 -1
- package/dist/Layout/LayoutHeader.d.ts.map +1 -1
- package/dist/Layout/LayoutHeader.js +2 -1
- package/dist/Layout/layoutEdges.stylex.d.ts +20 -0
- package/dist/Layout/layoutEdges.stylex.d.ts.map +1 -0
- package/dist/Layout/layoutEdges.stylex.js +28 -0
- package/dist/Lightbox/Lightbox.d.ts +5 -2
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +111 -89
- package/dist/Lightbox/LightboxKeyboard.a11y.browser.spec.d.ts +2 -0
- package/dist/Lightbox/LightboxKeyboard.a11y.browser.spec.d.ts.map +1 -0
- package/dist/Lightbox/LightboxKeyboard.a11y.browser.spec.js +78 -0
- package/dist/Lightbox/LightboxViewport.a11y.browser.spec.d.ts +2 -0
- package/dist/Lightbox/LightboxViewport.a11y.browser.spec.d.ts.map +1 -0
- package/dist/Lightbox/LightboxViewport.a11y.browser.spec.js +65 -0
- package/dist/List/List.d.ts +2 -1
- package/dist/List/List.d.ts.map +1 -1
- package/dist/List/List.js +9 -2
- package/dist/List/ListContext.d.ts +16 -4
- package/dist/List/ListContext.d.ts.map +1 -1
- package/dist/List/ListContext.js +10 -5
- package/dist/List/ListItem.d.ts +7 -1
- package/dist/List/ListItem.d.ts.map +1 -1
- package/dist/List/ListItem.js +52 -8
- package/dist/List/ListMarkers.a11y.chromium.spec.d.ts +2 -0
- package/dist/List/ListMarkers.a11y.chromium.spec.d.ts.map +1 -0
- package/dist/List/ListMarkers.a11y.chromium.spec.js +677 -0
- package/dist/Markdown/Markdown.d.ts +11 -1
- package/dist/Markdown/Markdown.d.ts.map +1 -1
- package/dist/Markdown/Markdown.fr23.bench.js +3 -1
- package/dist/Markdown/Markdown.fr23.sampling.d.ts +16 -0
- package/dist/Markdown/Markdown.fr23.sampling.d.ts.map +1 -1
- package/dist/Markdown/Markdown.fr23.sampling.js +13 -4
- package/dist/Markdown/Markdown.js +41 -14
- package/dist/Markdown/MarkdownTable.a11y.chromium.spec.js +1 -0
- package/dist/MobileNav/MobileNav.d.ts +2 -1
- package/dist/MobileNav/MobileNav.d.ts.map +1 -1
- package/dist/MobileNav/MobileNav.js +46 -37
- package/dist/MobileNav/MobileNavPinchZoom.a11y.chromium.spec.js +1 -0
- package/dist/MobileNav/MobileNavToggle.d.ts +7 -3
- package/dist/MobileNav/MobileNavToggle.d.ts.map +1 -1
- package/dist/MobileNav/MobileNavToggle.js +11 -3
- package/dist/MultiSelector/CreateRow.a11y.chromium.spec.js +53 -6
- package/dist/MultiSelector/MultiSelector.d.ts +1 -1
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.js +1 -0
- package/dist/MultiSelector/MultiSelector.js +21 -5
- package/dist/MultiSelector/OptionActions.a11y.chromium.spec.js +1 -0
- package/dist/NavMenu/NavHeadingMenu.d.ts +1 -1
- package/dist/NavMenu/NavHeadingMenu.d.ts.map +1 -1
- package/dist/NavMenu/NavHeadingMenu.js +29 -5
- package/dist/NavMenu/NavHeadingMenuItem.d.ts.map +1 -1
- package/dist/NavMenu/NavHeadingMenuItem.js +51 -7
- package/dist/NavMenu/NavMenuContext.d.ts +9 -0
- package/dist/NavMenu/NavMenuContext.d.ts.map +1 -1
- package/dist/NavMenu/NavMenuContext.js +9 -0
- package/dist/NumberInput/NumberInput.d.ts +4 -4
- package/dist/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/NumberInput/NumberInput.js +61 -24
- package/dist/Overlay/Overlay.d.ts +3 -3
- package/dist/Overlay/Overlay.d.ts.map +1 -1
- package/dist/Overlay/Overlay.js +12 -5
- package/dist/Popover/Popover.d.ts +41 -2
- package/dist/Popover/Popover.d.ts.map +1 -1
- package/dist/Popover/Popover.js +276 -44
- package/dist/Popover/index.d.ts +1 -1
- package/dist/Popover/index.d.ts.map +1 -1
- package/dist/Popover/lazyPopoverBottomSheet.d.ts +23 -0
- package/dist/Popover/lazyPopoverBottomSheet.d.ts.map +1 -0
- package/dist/Popover/lazyPopoverBottomSheet.js +40 -0
- package/dist/Popover/usePopover.d.ts.map +1 -1
- package/dist/Popover/usePopover.js +11 -5
- package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.js +7 -5
- package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBar.js +8 -0
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +10 -2
- package/dist/ScrollableArea/ScrollableArea.d.ts.map +1 -1
- package/dist/ScrollableArea/ScrollableArea.js +1 -1
- package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
- package/dist/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControl.js +6 -2
- package/dist/SelectableCard/SelectableCard.d.ts +5 -5
- package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
- package/dist/SelectableCard/SelectableCard.js +15 -11
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +27 -8
- package/dist/Selector/hooks.d.ts +52 -6
- package/dist/Selector/hooks.d.ts.map +1 -1
- package/dist/Selector/hooks.js +145 -2
- package/dist/SideNav/SideNav.d.ts.map +1 -1
- package/dist/SideNav/SideNav.js +58 -2
- package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
- package/dist/SideNav/SideNavHeading.js +79 -3
- package/dist/SideNav/SideNavItem.d.ts +5 -1
- package/dist/SideNav/SideNavItem.d.ts.map +1 -1
- package/dist/SideNav/SideNavItem.js +36 -13
- package/dist/SideNav/railMotion.d.ts +54 -0
- package/dist/SideNav/railMotion.d.ts.map +1 -0
- package/dist/SideNav/railMotion.js +253 -0
- package/dist/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/Skeleton/Skeleton.js +12 -3
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +52 -15
- package/dist/StatusDot/StatusDot.d.ts.map +1 -1
- package/dist/StatusDot/StatusDot.js +12 -0
- package/dist/Stepper/Step.d.ts.map +1 -1
- package/dist/Stepper/Step.js +10 -6
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +5 -5
- package/dist/Switch/switch.markers.stylex.d.ts +7 -2
- package/dist/Switch/switch.markers.stylex.d.ts.map +1 -1
- package/dist/Switch/switch.markers.stylex.js +8 -3
- package/dist/TabList/Tab.d.ts.map +1 -1
- package/dist/TabList/Tab.js +5 -1
- package/dist/TabList/TabMenu.d.ts.map +1 -1
- package/dist/TabList/TabMenu.js +25 -3
- package/dist/Table/TableCell.d.ts.map +1 -1
- package/dist/Table/TableCell.js +5 -1
- package/dist/Table/TableHeaderCell.d.ts.map +1 -1
- package/dist/Table/TableHeaderCell.js +1 -0
- package/dist/Table/TableRow.d.ts.map +1 -1
- package/dist/Table/TableRow.js +3 -0
- package/dist/Table/glidingDivider.d.ts +96 -0
- package/dist/Table/glidingDivider.d.ts.map +1 -0
- package/dist/Table/glidingDivider.js +275 -0
- package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
- package/dist/Table/plugins/columnResize/useTableColumnResize.js +11 -2
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +8 -0
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +374 -13
- package/dist/Table/plugins/stickyColumns/useTableStickyColumns.d.ts.map +1 -1
- package/dist/Table/plugins/stickyColumns/useTableStickyColumns.js +244 -6
- package/dist/Table/rowDivider.d.ts +34 -0
- package/dist/Table/rowDivider.d.ts.map +1 -0
- package/dist/Table/rowDivider.js +118 -0
- package/dist/TextArea/TextArea.d.ts +6 -4
- package/dist/TextArea/TextArea.d.ts.map +1 -1
- package/dist/TextArea/TextArea.js +15 -12
- package/dist/TextInput/TextInput.d.ts +7 -5
- package/dist/TextInput/TextInput.d.ts.map +1 -1
- package/dist/TextInput/TextInput.js +43 -22
- package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
- package/dist/Thumbnail/Thumbnail.js +45 -11
- package/dist/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/TimeInput/TimeInput.js +12 -4
- package/dist/TimeInput/TouchTimeField.d.ts.map +1 -1
- package/dist/TimeInput/TouchTimeField.js +2 -1
- package/dist/Toast/ToastViewport.d.ts.map +1 -1
- package/dist/Toast/ToastViewport.js +62 -6
- package/dist/Tokenizer/Tokenizer.d.ts +71 -4
- package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.js +430 -45
- package/dist/Tokenizer/TokenizerBottomSheet.d.ts +98 -0
- package/dist/Tokenizer/TokenizerBottomSheet.d.ts.map +1 -0
- package/dist/Tokenizer/TokenizerBottomSheet.js +721 -0
- package/dist/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.js +9 -3
- package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
- package/dist/TopNav/TopNavHeading.js +26 -0
- package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
- package/dist/TopNav/TopNavMegaMenu.js +4 -4
- package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
- package/dist/TopNav/TopNavMenu.js +32 -4
- package/dist/TreeList/TreeList.d.ts +8 -23
- package/dist/TreeList/TreeList.d.ts.map +1 -1
- package/dist/TreeList/TreeList.js +175 -3
- package/dist/TreeList/TreeListBranches.d.ts.map +1 -1
- package/dist/TreeList/TreeListBranches.js +7 -5
- package/dist/TreeList/TreeListItem.d.ts +7 -1
- package/dist/TreeList/TreeListItem.d.ts.map +1 -1
- package/dist/TreeList/TreeListItem.js +5 -3
- package/dist/Typeahead/BaseTypeahead.d.ts +1 -1
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.emptyState.a11y.chromium.spec.d.ts +2 -0
- package/dist/Typeahead/BaseTypeahead.emptyState.a11y.chromium.spec.d.ts.map +1 -0
- package/dist/Typeahead/BaseTypeahead.emptyState.a11y.chromium.spec.js +118 -0
- package/dist/Typeahead/BaseTypeahead.js +27 -11
- package/dist/Typeahead/Typeahead.d.ts +1 -1
- package/dist/Typeahead/Typeahead.d.ts.map +1 -1
- package/dist/Typeahead/Typeahead.js +31 -14
- package/dist/astryx.css +164 -41
- package/dist/gestures/GestureArena.d.ts +175 -0
- package/dist/gestures/GestureArena.d.ts.map +1 -0
- package/dist/gestures/GestureArena.js +816 -0
- package/dist/gestures/GestureRecognizer.d.ts +239 -0
- package/dist/gestures/GestureRecognizer.d.ts.map +1 -0
- package/dist/gestures/GestureRecognizer.js +487 -0
- package/dist/gestures/LongPressGestureRecognizer.d.ts +32 -0
- package/dist/gestures/LongPressGestureRecognizer.d.ts.map +1 -0
- package/dist/gestures/LongPressGestureRecognizer.js +135 -0
- package/dist/gestures/PanGestureRecognizer.d.ts +117 -0
- package/dist/gestures/PanGestureRecognizer.d.ts.map +1 -0
- package/dist/gestures/PanGestureRecognizer.js +349 -0
- package/dist/gestures/TapGestureRecognizer.d.ts +39 -0
- package/dist/gestures/TapGestureRecognizer.d.ts.map +1 -0
- package/dist/gestures/TapGestureRecognizer.js +151 -0
- package/dist/gestures/VelocityTracker.d.ts +51 -0
- package/dist/gestures/VelocityTracker.d.ts.map +1 -0
- package/dist/gestures/VelocityTracker.js +186 -0
- package/dist/gestures/geometry.d.ts +17 -0
- package/dist/gestures/geometry.d.ts.map +1 -0
- package/dist/gestures/geometry.js +55 -0
- package/dist/gestures/types.d.ts +139 -0
- package/dist/gestures/types.d.ts.map +1 -0
- package/dist/gestures/types.js +67 -0
- package/dist/hooks/AnnounceRenderedText.d.ts +17 -0
- package/dist/hooks/AnnounceRenderedText.d.ts.map +1 -0
- package/dist/hooks/AnnounceRenderedText.js +32 -0
- package/dist/hooks/ModalAnnounceProvider.d.ts +41 -0
- package/dist/hooks/ModalAnnounceProvider.d.ts.map +1 -0
- package/dist/hooks/ModalAnnounceProvider.js +133 -0
- package/dist/hooks/actionGroupTracker.d.ts +98 -0
- package/dist/hooks/actionGroupTracker.d.ts.map +1 -0
- package/dist/hooks/actionGroupTracker.js +338 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/menuPressOnItems.d.ts +19 -0
- package/dist/hooks/menuPressOnItems.d.ts.map +1 -0
- package/dist/hooks/menuPressOnItems.js +32 -0
- package/dist/hooks/modalAnnounce.d.ts +18 -0
- package/dist/hooks/modalAnnounce.d.ts.map +1 -0
- package/dist/hooks/modalAnnounce.js +382 -0
- package/dist/hooks/scrollGeometry.d.ts +28 -0
- package/dist/hooks/scrollGeometry.d.ts.map +1 -1
- package/dist/hooks/scrollGeometry.js +36 -2
- package/dist/hooks/useAdaptivePresentation.d.ts +9 -1
- package/dist/hooks/useAdaptivePresentation.d.ts.map +1 -1
- package/dist/hooks/useAdaptivePresentation.js +33 -8
- package/dist/hooks/useAnimatedLayout.d.ts +42 -0
- package/dist/hooks/useAnimatedLayout.d.ts.map +1 -0
- package/dist/hooks/useAnimatedLayout.js +46 -0
- package/dist/hooks/useAnnounce.d.ts +132 -1
- package/dist/hooks/useAnnounce.d.ts.map +1 -1
- package/dist/hooks/useAnnounce.js +356 -27
- package/dist/hooks/useAnnounceRenderedText.d.ts +19 -2
- package/dist/hooks/useAnnounceRenderedText.d.ts.map +1 -1
- package/dist/hooks/useAnnounceRenderedText.js +52 -11
- package/dist/hooks/useBusyAnnouncement.d.ts +9 -5
- package/dist/hooks/useBusyAnnouncement.d.ts.map +1 -1
- package/dist/hooks/useBusyAnnouncement.js +58 -46
- package/dist/hooks/useFocusTrap.d.ts +1 -1
- package/dist/hooks/useFocusTrap.d.ts.map +1 -1
- package/dist/hooks/useFocusTrap.js +57 -26
- package/dist/hooks/useMenuHover.d.ts.map +1 -1
- package/dist/hooks/useMenuHover.js +6 -2
- package/dist/hooks/useMenuPress.d.ts +4 -2
- package/dist/hooks/useMenuPress.d.ts.map +1 -1
- package/dist/hooks/useMenuPress.js +58 -33
- package/dist/hooks/usePressFeedback.d.ts +5 -2
- package/dist/hooks/usePressFeedback.d.ts.map +1 -1
- package/dist/hooks/usePressFeedback.js +5 -2
- package/dist/hooks/useScrollableArea.d.ts +5 -0
- package/dist/hooks/useScrollableArea.d.ts.map +1 -1
- package/dist/hooks/useScrollableArea.js +104 -11
- package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/en.generated.js +33 -0
- package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/pseudo.generated.js +33 -0
- package/dist/internal/tokenizer-presentation.d.ts +21 -0
- package/dist/internal/tokenizer-presentation.d.ts.map +1 -0
- package/dist/internal/tokenizer-presentation.js +21 -0
- package/dist/internal/touch.d.ts +26 -0
- package/dist/internal/touch.d.ts.map +1 -0
- package/dist/internal/touch.js +28 -0
- package/dist/motion/LayoutChangeSnapshot.d.ts +33 -0
- package/dist/motion/LayoutChangeSnapshot.d.ts.map +1 -0
- package/dist/motion/LayoutChangeSnapshot.js +37 -0
- package/dist/motion/animatedLayout.d.ts +190 -0
- package/dist/motion/animatedLayout.d.ts.map +1 -0
- package/dist/motion/animatedLayout.js +1502 -0
- package/dist/motion/animator.d.ts +240 -0
- package/dist/motion/animator.d.ts.map +1 -0
- package/dist/motion/animator.js +2203 -0
- package/dist/motion/bezier.d.ts +18 -0
- package/dist/motion/bezier.d.ts.map +1 -0
- package/dist/motion/bezier.js +60 -0
- package/dist/motion/coast.d.ts +61 -0
- package/dist/motion/coast.d.ts.map +1 -0
- package/dist/motion/coast.js +107 -0
- package/dist/motion/decay.d.ts +41 -0
- package/dist/motion/decay.d.ts.map +1 -0
- package/dist/motion/decay.js +90 -0
- package/dist/motion/projection.d.ts +36 -0
- package/dist/motion/projection.d.ts.map +1 -0
- package/dist/motion/projection.js +92 -0
- package/dist/motion/reducedMotion.d.ts +25 -0
- package/dist/motion/reducedMotion.d.ts.map +1 -0
- package/dist/motion/reducedMotion.js +85 -0
- package/dist/motion/reducedMotion.stylex.d.ts +19 -0
- package/dist/motion/reducedMotion.stylex.d.ts.map +1 -0
- package/dist/motion/reducedMotion.stylex.js +37 -0
- package/dist/motion/reducedMotionPlan.d.ts +89 -0
- package/dist/motion/reducedMotionPlan.d.ts.map +1 -0
- package/dist/motion/reducedMotionPlan.js +194 -0
- package/dist/motion/resolveSnapPoint.d.ts +52 -0
- package/dist/motion/resolveSnapPoint.d.ts.map +1 -0
- package/dist/motion/resolveSnapPoint.js +135 -0
- package/dist/motion/roleValue.d.ts +33 -0
- package/dist/motion/roleValue.d.ts.map +1 -0
- package/dist/motion/roleValue.js +84 -0
- package/dist/motion/roles.d.ts +79 -0
- package/dist/motion/roles.d.ts.map +1 -0
- package/dist/motion/roles.js +199 -0
- package/dist/motion/rubberBand.d.ts +20 -0
- package/dist/motion/rubberBand.d.ts.map +1 -0
- package/dist/motion/rubberBand.js +91 -0
- package/dist/motion/selectPage.d.ts +26 -0
- package/dist/motion/selectPage.d.ts.map +1 -0
- package/dist/motion/selectPage.js +55 -0
- package/dist/motion/spring.d.ts +193 -0
- package/dist/motion/spring.d.ts.map +1 -0
- package/dist/motion/spring.js +442 -0
- package/dist/motion/transientCopy.d.ts +33 -0
- package/dist/motion/transientCopy.d.ts.map +1 -0
- package/dist/motion/transientCopy.js +314 -0
- package/dist/motion/uikit/gestures.d.ts +642 -0
- package/dist/motion/uikit/gestures.d.ts.map +1 -0
- package/dist/motion/uikit/gestures.js +428 -0
- package/dist/motion/uikit/index.d.ts +24 -0
- package/dist/motion/uikit/index.d.ts.map +1 -0
- package/dist/motion/uikit/index.js +26 -0
- package/dist/motion/uikit/navigation.d.ts +54 -0
- package/dist/motion/uikit/navigation.d.ts.map +1 -0
- package/dist/motion/uikit/navigation.js +83 -0
- package/dist/motion/uikit/scroll.d.ts +116 -0
- package/dist/motion/uikit/scroll.d.ts.map +1 -0
- package/dist/motion/uikit/scroll.js +146 -0
- package/dist/motion/uikit/springs.d.ts +545 -0
- package/dist/motion/uikit/springs.d.ts.map +1 -0
- package/dist/motion/uikit/springs.js +548 -0
- package/dist/motion/uikit/timing.d.ts +202 -0
- package/dist/motion/uikit/timing.d.ts.map +1 -0
- package/dist/motion/uikit/timing.js +201 -0
- package/dist/reset.a11y.chromium.spec.js +1 -0
- package/dist/reset.until-found.a11y.browser.spec.js +1 -0
- package/dist/theme/declarationBoundary.d.ts +13 -0
- package/dist/theme/declarationBoundary.d.ts.map +1 -1
- package/dist/theme/declarationBoundary.js +264 -1
- package/dist/theme/defineTheme.d.ts +111 -11
- package/dist/theme/defineTheme.d.ts.map +1 -1
- package/dist/theme/defineTheme.js +97 -7
- package/dist/theme/derivedVarRegistry.d.ts.map +1 -1
- package/dist/theme/derivedVarRegistry.js +9 -0
- package/dist/theme/generateThemeRules.d.ts +6 -2
- package/dist/theme/generateThemeRules.d.ts.map +1 -1
- package/dist/theme/generateThemeRules.js +468 -24
- package/dist/theme/index.d.ts +2 -2
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +1 -1
- package/dist/theme/statusColor.d.ts +48 -0
- package/dist/theme/statusColor.d.ts.map +1 -0
- package/dist/theme/statusColor.js +203 -0
- package/dist/theme/statusRoleDerivation.d.ts +11 -0
- package/dist/theme/statusRoleDerivation.d.ts.map +1 -0
- package/dist/theme/statusRoleDerivation.js +236 -0
- package/dist/theme/syntax/SyntaxTheme.d.ts +1 -1
- package/dist/theme/syntax/SyntaxTheme.js +1 -1
- package/dist/theme/syntax/defineSyntaxTheme.js +1 -1
- package/dist/theme/syntax/presets.d.ts +1 -1
- package/dist/theme/syntax/presets.js +1 -1
- package/dist/theme/syntax/tokens.d.ts +1 -1
- package/dist/theme/syntax/tokens.js +1 -1
- package/dist/theme/themeAdaptations.d.ts +25 -1
- package/dist/theme/themeAdaptations.d.ts.map +1 -1
- package/dist/theme/themeAdaptations.js +30 -1
- package/dist/theme/tokens.d.ts.map +1 -1
- package/dist/theme/tokens.js +16 -1
- package/dist/theme/tokens.stylex.d.ts +42 -2
- package/dist/theme/tokens.stylex.d.ts.map +1 -1
- package/dist/theme/tokens.stylex.js +54 -3
- package/dist/theme/useTheme.d.ts +4 -2
- package/dist/theme/useTheme.d.ts.map +1 -1
- package/dist/theme/useTheme.js +10 -4
- package/dist/utils/edgeAutoscroll.d.ts +53 -0
- package/dist/utils/edgeAutoscroll.d.ts.map +1 -0
- package/dist/utils/edgeAutoscroll.js +81 -0
- package/dist/utils/hitArea.d.ts +72 -0
- package/dist/utils/hitArea.d.ts.map +1 -0
- package/dist/utils/hitArea.js +681 -0
- package/dist/utils/interactionOverlay.stylex.d.ts +4 -1
- package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
- package/dist/utils/interactionOverlay.stylex.js +4 -1
- package/dist/utils/pressFeedback.d.ts +5 -1
- package/dist/utils/pressFeedback.d.ts.map +1 -1
- package/dist/utils/pressFeedback.js +285 -54
- package/dist/utils/pressGesture.d.ts +13 -1
- package/dist/utils/pressGesture.d.ts.map +1 -1
- package/dist/utils/pressGesture.js +40 -1
- package/dist/utils/touchPresentation.d.ts +48 -0
- package/dist/utils/touchPresentation.d.ts.map +1 -0
- package/dist/utils/touchPresentation.js +133 -0
- package/locales/af-ZA.json +1 -1
- package/locales/ar-SA.json +1 -1
- package/locales/ca-ES.json +1 -1
- package/locales/cs-CZ.json +1 -1
- package/locales/da-DK.json +1 -1
- package/locales/de-DE.json +1 -1
- package/locales/el-GR.json +1 -1
- package/locales/en.json +132 -0
- package/locales/es-ES.json +1 -1
- package/locales/fi-FI.json +1 -1
- package/locales/fr-FR.json +1 -1
- package/locales/he-IL.json +1 -1
- package/locales/hu-HU.json +1 -1
- package/locales/it-IT.json +1 -1
- package/locales/ja-JP.json +1 -1
- package/locales/ko-KR.json +1 -1
- package/locales/nl-NL.json +1 -1
- package/locales/no-NO.json +1 -1
- package/locales/pl-PL.json +1 -1
- package/locales/pseudo.json +99 -0
- package/locales/pt-BR.json +1 -1
- package/locales/pt-PT.json +1 -1
- package/locales/ro-RO.json +1 -1
- package/locales/ru-RU.json +1 -1
- package/locales/sr-SP.json +1 -1
- package/locales/sv-SE.json +1 -1
- package/locales/tr-TR.json +1 -1
- package/locales/uk-UA.json +1 -1
- package/locales/vi-VN.json +1 -1
- package/locales/zh-CN.json +1 -1
- package/locales/zh-TW.json +1 -1
- package/package.json +63 -8
- package/src/AlertDialog/AlertDialog.spec.md +85 -31
- package/src/AlertDialog/AlertDialog.tsx +1 -1
- package/src/AlertDialog/__tests__/AlertDialog.a11y.chromium.spec.ts +1 -0
- package/src/AppShell/AppShell.spec.md +334 -0
- package/src/AppShell/AppShell.tsx +170 -2
- package/src/AspectRatio/AspectRatio.spec.md +179 -0
- package/src/AspectRatio/__tests__/AspectRatioFitLayers.a11y.browser.spec.ts +1 -0
- package/src/Avatar/Avatar.spec.md +253 -0
- package/src/Avatar/AvatarStatusDot.spec.md +93 -79
- package/src/Avatar/AvatarStatusDot.test.tsx +22 -0
- package/src/Avatar/AvatarStatusDot.tsx +2 -2
- package/src/AvatarGroup/AvatarGroup.spec.md +205 -0
- package/src/AvatarGroup/AvatarGroupOverflow.spec.md +123 -120
- package/src/Badge/Badge.spec.md +207 -0
- package/src/Badge/Badge.test.tsx +13 -0
- package/src/Badge/Badge.tsx +38 -2
- package/src/Banner/Banner.spec.md +41 -28
- package/src/Banner/Banner.test.tsx +118 -16
- package/src/Banner/Banner.tsx +94 -7
- package/src/Blockquote/Blockquote.spec.md +171 -0
- package/src/BottomSheet/BottomSheet.doc.mjs +106 -24
- package/src/BottomSheet/BottomSheet.spec.md +271 -40
- package/src/BottomSheet/BottomSheet.test.tsx +491 -5
- package/src/BottomSheet/BottomSheet.tsx +544 -145
- package/src/BottomSheet/BottomSheetHostContext.ts +44 -0
- package/src/BottomSheet/BottomSheetPanel.test.tsx +73 -19
- package/src/BottomSheet/BottomSheetPanel.tsx +178 -63
- package/src/BottomSheet/BottomSheetReplace.test.tsx +1638 -0
- package/src/BottomSheet/BottomSheetStacking.announce.test.tsx +246 -0
- package/src/BottomSheet/BottomSheetStacking.test.tsx +3184 -0
- package/src/BottomSheet/BottomSheetSwitcher.doc.mjs +27 -31
- package/src/BottomSheet/BottomSheetSwitcher.spec.md +138 -43
- package/src/BottomSheet/BottomSheetSwitcher.tsx +275 -26
- package/src/BottomSheet/BottomSheetSwitcherContext.ts +6 -0
- package/src/BottomSheet/__tests__/BottomSheetDrag.a11y.chromium.spec.ts +1 -0
- package/src/BottomSheet/__tests__/BottomSheetFocusReturn.a11y.browser.spec.ts +1 -0
- package/src/BottomSheet/__tests__/BottomSheetKeyboard.a11y.browser.spec.ts +4 -1
- package/src/BottomSheet/__tests__/BottomSheetNativeModal.a11y.browser.spec.ts +1 -0
- package/src/BottomSheet/__tests__/BottomSheetPinchZoom.a11y.chromium.spec.ts +1 -0
- package/src/BottomSheet/__tests__/BottomSheetToastOutlet.a11y.chromium.spec.ts +83 -0
- package/src/BottomSheet/bottomSheetEscape.ts +21 -0
- package/src/BottomSheet/bottomSheetStack.ts +2054 -0
- package/src/BottomSheet/useSheetGestures.ts +68 -12
- package/src/Breadcrumbs/BreadcrumbItem.spec.md +104 -60
- package/src/Breadcrumbs/BreadcrumbItem.tsx +30 -1
- package/src/Breadcrumbs/Breadcrumbs.spec.md +165 -0
- package/src/Breadcrumbs/Breadcrumbs.test.tsx +90 -0
- package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.chromium.spec.ts +1 -0
- package/src/Button/Button.spec.md +322 -0
- package/src/Button/Button.test.tsx +8 -1
- package/src/Button/Button.tsx +36 -7
- package/src/Button/__tests__/Button.a11y.chromium.spec.ts +1 -0
- package/src/ButtonGroup/ButtonGroup.spec.md +220 -0
- package/src/Calendar/__tests__/Calendar.a11y.chromium.spec.ts +1 -0
- package/src/Card/Card.spec.md +205 -0
- package/src/Carousel/__tests__/Carousel.a11y.chromium.spec.ts +1 -0
- package/src/Center/Center.spec.md +104 -124
- package/src/Chat/ChatComposer.test.tsx +54 -0
- package/src/Chat/ChatComposer.tsx +41 -27
- package/src/Chat/ChatComposerInput.test.tsx +165 -21
- package/src/Chat/ChatComposerInput.tsx +73 -16
- package/src/Chat/ChatMessageMetadata.tsx +1 -1
- package/src/Chat/ChatPastedTextToken.test.tsx +71 -0
- package/src/Chat/ChatPastedTextToken.tsx +8 -7
- package/src/Chat/ChatToolCalls.tsx +5 -5
- package/src/Chat/__tests__/ChatLayoutScrollButton.a11y.chromium.spec.ts +22 -4
- package/src/Chat/__tests__/ChatLayoutScrollButtonSurface.a11y.chromium.spec.ts +1 -0
- package/src/Chat/__tests__/ChatMessageList.a11y.chromium.spec.ts +1 -0
- package/src/Chat/__tests__/ChatMessageMetadata.a11y.chromium.spec.ts +1 -0
- package/src/Chat/__tests__/ChatSendButton.a11y.chromium.spec.ts +1 -0
- package/src/Chat/__tests__/ChatSystemMessage.a11y.chromium.spec.ts +1 -0
- package/src/Chat/__tests__/ChatTokenizedText.a11y.chromium.spec.ts +1 -0
- package/src/Chat/__tests__/useChatStreamScroll.a11y.chromium.spec.ts +1 -0
- package/src/CheckboxInput/CheckboxInput.spec.md +97 -66
- package/src/CheckboxInput/__tests__/Checkbox.a11y.chromium.spec.ts +1 -0
- package/src/CheckboxList/CheckboxList.spec.md +92 -78
- package/src/CheckboxList/CheckboxListItem.spec.md +86 -60
- package/src/CheckboxList/__tests__/CheckboxList.a11y.chromium.spec.ts +1 -0
- package/src/ClickableCard/ClickableCard.doc.mjs +1 -2
- package/src/ClickableCard/ClickableCard.spec.md +124 -128
- package/src/ClickableCard/ClickableCard.test.tsx +14 -3
- package/src/ClickableCard/ClickableCard.tsx +44 -28
- package/src/Code/Code.spec.md +30 -32
- package/src/CodeBlock/CodeBlock.doc.mjs +21 -4
- package/src/CodeBlock/CodeBlock.spec.md +96 -61
- package/src/CodeBlock/CodeBlock.test.tsx +97 -1
- package/src/CodeBlock/CodeBlock.tsx +132 -22
- package/src/CodeBlock/CodeLanguage.test.tsx +173 -0
- package/src/CodeBlock/__tests__/CodeBlockCopyClearance.a11y.chromium.spec.ts +290 -0
- package/src/CodeBlock/__tests__/CodeBlockLanguages.a11y.chromium.spec.ts +64 -0
- package/src/CodeBlock/__tests__/CodeBlockOverflowStop.a11y.chromium.spec.ts +1 -0
- package/src/CodeBlock/__tests__/DiffRowPaint.a11y.chromium.spec.ts +1 -0
- package/src/CodeBlock/grammar.ts +291 -0
- package/src/CodeBlock/index.ts +7 -0
- package/src/CodeBlock/languages/dockerfile.ts +43 -0
- package/src/CodeBlock/languages/graphql.ts +30 -0
- package/src/CodeBlock/languages/java.ts +28 -0
- package/src/CodeBlock/languages/lua.ts +21 -0
- package/src/CodeBlock/languages/objective-c.ts +26 -0
- package/src/CodeBlock/languages/powershell.ts +31 -0
- package/src/CodeBlock/languages/ruby.ts +29 -0
- package/src/CodeBlock/languages/thrift.ts +32 -0
- package/src/CodeBlock/languages/toml.ts +36 -0
- package/src/CodeBlock/languages.test.ts +402 -0
- package/src/CodeBlock/tokenizer.ts +176 -16
- package/src/CodeBlock/tokenizerBudget.test.ts +112 -0
- package/src/Collapsible/Collapsible.doc.mjs +6 -0
- package/src/Collapsible/Collapsible.spec.md +26 -23
- package/src/Collapsible/Collapsible.tsx +121 -2
- package/src/Collapsible/__tests__/Collapsible.a11y.chromium.spec.ts +1 -0
- package/src/Collapsible/__tests__/CollapsibleGroup.a11y.chromium.spec.ts +1 -0
- package/src/Collapsible/__tests__/CollapsibleGroupAccordion.a11y.chromium.spec.ts +1 -0
- package/src/CommandPalette/CommandPalette.perf.test.ts +8 -4
- package/src/CommandPalette/CommandPalette.tsx +17 -1
- package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +6 -3
- package/src/CommandPalette/CommandPaletteEmpty.spec.md +190 -0
- package/src/CommandPalette/CommandPaletteEmpty.tsx +4 -0
- package/src/CommandPalette/CommandPaletteInput.tsx +21 -2
- package/src/CommandPalette/__tests__/CommandPalette.a11y.chromium.spec.ts +1 -0
- package/src/CommandPalette/__tests__/CommandPaletteEmptyAudit.a11y.chromium.spec.ts +715 -0
- package/src/CommandPalette/__tests__/CommandPaletteFooter.a11y.chromium.spec.ts +3 -2
- package/src/CommandPalette/__tests__/CommandPaletteInputAudit.a11y.chromium.spec.ts +1 -0
- package/src/CommandPalette/__tests__/CommandPaletteItemAudit.a11y.chromium.spec.ts +1 -0
- package/src/CommandPalette/busyStartSettle.ts +26 -0
- package/src/ComplexSelector/ComplexSelector.doc.mjs +1 -1
- package/src/ComplexSelector/ComplexSelector.focusableDisabled.test.tsx +1 -1
- package/src/ComplexSelector/ComplexSelector.fr10.test.tsx +9 -9
- package/src/ComplexSelector/ComplexSelector.spec.md +161 -107
- package/src/ComplexSelector/ComplexSelector.test.tsx +236 -17
- package/src/ComplexSelector/ComplexSelector.tsx +69 -4
- package/src/ComplexSelector/__tests__/ComplexSelector.a11y.chromium.spec.ts +965 -0
- package/src/ContextMenu/ContextMenu.doc.mjs +1 -1
- package/src/ContextMenu/ContextMenu.spec.md +38 -30
- package/src/ContextMenu/ContextMenu.test.tsx +189 -11
- package/src/ContextMenu/ContextMenu.tsx +75 -17
- package/src/ContextMenu/__tests__/ContextMenuAudit.a11y.chromium.spec.ts +1 -0
- package/src/ContextMenu/__tests__/ContextMenuCursorAnchor.a11y.browser.spec.ts +1 -0
- package/src/ContextMenu/__tests__/ContextMenuLongPress.a11y.chromium.spec.ts +117 -0
- package/src/DateInput/DateInput.tsx +9 -4
- package/src/DateInput/DateInputTouch.test.tsx +10 -1
- package/src/DateInput/NativeDateField.tsx +2 -1
- package/src/DateInput/TouchDateField.tsx +2 -1
- package/src/DateInput/Wheel.tsx +4 -1
- package/src/DateInput/__tests__/DateInputAudit.a11y.chromium.spec.ts +1 -0
- package/src/DateInput/__tests__/WheelPinchZoom.a11y.chromium.spec.ts +171 -0
- package/src/Dialog/Dialog.doc.mjs +201 -47
- package/src/Dialog/Dialog.spec.md +20 -4
- package/src/Dialog/Dialog.tsx +37 -10
- package/src/Dialog/__tests__/Dialog.a11y.browser.spec.ts +1 -0
- package/src/Dialog/__tests__/Dialog.a11y.chromium.spec.ts +1 -0
- package/src/Dialog/__tests__/Dialog.reduced-motion.a11y.browser.spec.ts +252 -0
- package/src/Divider/Divider.spec.md +79 -70
- package/src/Drawer/Drawer.tsx +38 -35
- package/src/Drawer/__tests__/DrawerAudit.a11y.chromium.spec.ts +1 -0
- package/src/Drawer/__tests__/DrawerHeaderAudit.a11y.chromium.spec.ts +1 -0
- package/src/DropdownMenu/DropdownMenu.spec.md +14 -6
- package/src/DropdownMenu/DropdownMenu.ssr.test.tsx +44 -8
- package/src/DropdownMenu/DropdownMenu.test.tsx +107 -5
- package/src/DropdownMenu/DropdownMenu.tsx +51 -34
- package/src/DropdownMenu/DropdownMenuGroup.doc.mjs +2 -2
- package/src/DropdownMenu/DropdownMenuGroup.tsx +12 -6
- package/src/DropdownMenu/DropdownMenuItem.tsx +5 -5
- package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +5 -2
- package/src/DropdownMenu/DropdownMenuRadioItem.spec.md +226 -0
- package/src/DropdownMenu/DropdownMenuRadioItem.tsx +32 -16
- package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +158 -0
- package/src/DropdownMenu/DropdownMenuSheetFirstOpen.test.tsx +72 -0
- package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +9 -0
- package/src/DropdownMenu/DropdownMenuSubMenu.spec.md +225 -0
- package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +105 -0
- package/src/DropdownMenu/DropdownMenuSubMenu.tsx +6 -6
- package/src/DropdownMenu/MenuBottomSheet.tsx +42 -7
- package/src/DropdownMenu/MenuBottomSheetActionList.tsx +3 -3
- package/src/DropdownMenu/__tests__/DropdownMenuDividerAudit.a11y.chromium.spec.ts +1 -0
- package/src/DropdownMenu/__tests__/DropdownMenuDrillIn.a11y.chromium.spec.ts +1 -0
- package/src/DropdownMenu/__tests__/DropdownMenuFocusReturn.a11y.browser.spec.ts +1 -0
- package/src/DropdownMenu/__tests__/DropdownMenuGroupAudit.a11y.chromium.spec.ts +1 -0
- package/src/DropdownMenu/__tests__/DropdownMenuItemAudit.a11y.chromium.spec.ts +1 -0
- package/src/DropdownMenu/__tests__/DropdownMenuRadioGroupAudit.a11y.chromium.spec.ts +1 -0
- package/src/DropdownMenu/__tests__/DropdownMenuRadioItemAudit.a11y.chromium.spec.ts +540 -0
- package/src/DropdownMenu/__tests__/DropdownMenuSubMenuAudit.a11y.chromium.spec.ts +671 -0
- package/src/DropdownMenu/__tests__/Menu.a11y.chromium.spec.ts +1 -0
- package/src/DropdownMenu/__tests__/MenuButton.a11y.chromium.spec.ts +1 -0
- package/src/DropdownMenu/__tests__/MenuHeaderFooter.a11y.chromium.spec.ts +1 -0
- package/src/DropdownMenu/__tests__/MenuHoverFocus.a11y.chromium.spec.ts +238 -0
- package/src/DropdownMenu/__tests__/MenuPinchZoom.a11y.chromium.spec.ts +1 -0
- package/src/DropdownMenu/__tests__/MenuPress.a11y.chromium.spec.ts +1 -0
- package/src/DropdownMenu/__tests__/SubMenuHeaderFooter.a11y.chromium.spec.ts +1 -0
- package/src/DropdownMenu/lazyMenuBottomSheet.ts +28 -2
- package/src/DropdownMenu/menuBottomSheet.stylex.ts +33 -0
- package/src/DropdownMenu/menuItemHover.ts +13 -1
- package/src/DropdownMenu/menuTouchAction.stylex.ts +28 -0
- package/src/DropdownMenu/modules/useMenuPress.spec.md +90 -62
- package/src/DropdownMenu/useMenuDrillIn.tsx +7 -5
- package/src/EmptyState/EmptyState.announce.test.tsx +227 -0
- package/src/EmptyState/EmptyState.doc.mjs +1 -1
- package/src/EmptyState/EmptyState.spec.md +22 -14
- package/src/EmptyState/EmptyState.test.tsx +8 -8
- package/src/EmptyState/EmptyState.tsx +7 -5
- package/src/Field/Field.spec.md +57 -48
- package/src/Field/Field.tsx +1 -1
- package/src/Field/FieldLabel.spec.md +70 -59
- package/src/Field/FieldLabel.tsx +1 -1
- package/src/Field/PanelSearchInput.tsx +23 -13
- package/src/Field/__tests__/FieldLabelAudit.a11y.chromium.spec.ts +1 -0
- package/src/Field/inputDisabledFocus.ts +28 -0
- package/src/Field/inputStyles.stylex.ts +15 -15
- package/src/FieldStatus/FieldStatus.test.tsx +12 -0
- package/src/FieldStatus/FieldStatus.tsx +12 -3
- package/src/FieldStatus/__tests__/StatusMessage.a11y.chromium.spec.ts +1 -0
- package/src/FileInput/FileInput.doc.mjs +1 -1
- package/src/FileInput/FileInput.test.tsx +102 -0
- package/src/FileInput/FileInput.tsx +18 -12
- package/src/FormLayout/FormLayout.spec.md +69 -51
- package/src/Grid/Grid.spec.md +72 -69
- package/src/Grid/GridSpan.spec.md +158 -0
- package/src/Heading/Heading.spec.md +198 -0
- package/src/HoverCard/HoverCard.spec.md +244 -0
- package/src/HoverCard/HoverCard.test.tsx +93 -3
- package/src/Icon/Icon.doc.mjs +67 -5
- package/src/Icon/Icon.test.tsx +548 -9
- package/src/Icon/Icon.tsx +79 -15
- package/src/Icon/IconSize.stylex.ts +27 -11
- package/src/Icon/globalIconRegistry.test.tsx +395 -3
- package/src/Icon/globalIconRegistry.tsx +184 -36
- package/src/Icon/index.ts +29 -1
- package/src/Icon/useIcon.ts +5 -1
- package/src/IconButton/IconButton.spec.md +197 -0
- package/src/IconButton/IconButton.test.tsx +5 -2
- package/src/InputGroup/InputGroup.spec.md +199 -0
- package/src/InputGroup/InputGroup.test.tsx +120 -0
- package/src/InputGroup/InputGroup.tsx +59 -52
- package/src/InputGroup/InputGroupInternalContext.ts +15 -0
- package/src/InputGroup/InputGroupText.spec.md +139 -0
- package/src/InputGroup/InputGroupText.tsx +2 -0
- package/src/InputGroup/groupStyles.ts +22 -11
- package/src/Item/Item.test.tsx +158 -1
- package/src/Item/Item.tsx +42 -7
- package/src/Item/ItemMarkerColumns.a11y.chromium.spec.ts +211 -0
- package/src/Item/ItemMarkerColumnsContext.tsx +20 -0
- package/src/Item/ItemSwipeLayer.tsx +9 -0
- package/src/Item/__tests__/ItemSwipeActions.a11y.chromium.spec.ts +1 -0
- package/src/Item/__tests__/ItemSwipePinchZoom.a11y.chromium.spec.ts +186 -0
- package/src/Item/useSwipeAction.ts +71 -5
- package/src/Kbd/Kbd.test.tsx +95 -0
- package/src/Kbd/Kbd.tsx +30 -23
- package/src/Layer/LayerProvider.spec.md +149 -0
- package/src/Layer/__tests__/LayerReducedMotion.a11y.chromium.spec.ts +176 -0
- package/src/Layer/__tests__/TouchTrigger.a11y.chromium.spec.ts +200 -0
- package/src/Layer/layerAnimations.stylex.ts +22 -2
- package/src/Layer/layerDismissalInvariants.test.tsx +9 -0
- package/src/Layer/layerSlideRules.ts +141 -8
- package/src/Layer/layerStack.ts +129 -62
- package/src/Layer/modalOutlet.ts +156 -15
- package/src/Layer/preserveAnimations.ts +304 -0
- package/src/Layer/useLayer.doc.mjs +1 -1
- package/src/Layer/useLayer.test.tsx +850 -0
- package/src/Layer/useLayer.tsx +644 -58
- package/src/Layer/useLayerDismissal.test.tsx +85 -2
- package/src/Layer/useLayerDismissal.ts +12 -9
- package/src/Layer/useTouchTrigger.ts +95 -41
- package/src/Layout/Layout.tsx +18 -0
- package/src/Layout/LayoutContent.tsx +5 -14
- package/src/Layout/LayoutFooter.tsx +2 -0
- package/src/Layout/LayoutHeader.tsx +2 -0
- package/src/Layout/__tests__/Layout.a11y.chromium.spec.ts +1 -0
- package/src/Layout/layoutEdges.stylex.ts +25 -0
- package/src/Lightbox/Lightbox.spec.md +9 -8
- package/src/Lightbox/Lightbox.test.tsx +83 -0
- package/src/Lightbox/Lightbox.tsx +149 -125
- package/src/Lightbox/LightboxKeyboard.a11y.browser.spec.ts +78 -0
- package/src/Lightbox/LightboxViewport.a11y.browser.spec.ts +70 -0
- package/src/Link/Link.spec.md +229 -0
- package/src/Link/LinkProvider.spec.md +167 -0
- package/src/Link/__tests__/Link.a11y.chromium.spec.ts +1 -0
- package/src/Link/__tests__/Link.navigation.a11y.chromium.spec.ts +1 -0
- package/src/List/List.spec.md +113 -34
- package/src/List/List.tsx +13 -1
- package/src/List/ListContext.tsx +19 -5
- package/src/List/ListItem.doc.mjs +3 -3
- package/src/List/ListItem.tsx +97 -28
- package/src/List/ListMarkers.a11y.chromium.spec.ts +904 -0
- package/src/Markdown/Markdown.codeLanguages.test.tsx +137 -0
- package/src/Markdown/Markdown.doc.mjs +12 -0
- package/src/Markdown/Markdown.fr23.bench.ts +3 -1
- package/src/Markdown/Markdown.fr23.perf.test.ts +45 -3
- package/src/Markdown/Markdown.fr23.sampling.ts +13 -4
- package/src/Markdown/Markdown.spec.md +71 -59
- package/src/Markdown/Markdown.test.tsx +50 -0
- package/src/Markdown/Markdown.tsx +61 -8
- package/src/Markdown/MarkdownTable.a11y.chromium.spec.ts +1 -0
- package/src/Markdown/__tests__/MarkdownNesting.a11y.chromium.spec.ts +1 -0
- package/src/MobileNav/MobileNav.doc.mjs +2 -2
- package/src/MobileNav/MobileNav.spec.md +161 -64
- package/src/MobileNav/MobileNav.test.tsx +27 -10
- package/src/MobileNav/MobileNav.tsx +51 -38
- package/src/MobileNav/MobileNavPinchZoom.a11y.chromium.spec.ts +1 -0
- package/src/MobileNav/MobileNavToggle.test.tsx +63 -0
- package/src/MobileNav/MobileNavToggle.tsx +13 -5
- package/src/MobileNav/__tests__/MobileNavWidth.a11y.chromium.spec.ts +103 -0
- package/src/MoreMenu/MoreMenu.doc.mjs +2 -2
- package/src/MoreMenu/MoreMenu.spec.md +88 -53
- package/src/MultiSelector/CreateRow.a11y.chromium.spec.ts +67 -9
- package/src/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.ts +1 -0
- package/src/MultiSelector/MultiSelector.test.tsx +122 -10
- package/src/MultiSelector/MultiSelector.tsx +24 -4
- package/src/MultiSelector/OptionActions.a11y.chromium.spec.ts +1 -0
- package/src/MultiSelector/__tests__/MultiSelector.a11y.chromium.spec.ts +1 -0
- package/src/NavIcon/NavIcon.spec.md +66 -38
- package/src/NavMenu/NavHeadingMenu.spec.md +104 -46
- package/src/NavMenu/NavHeadingMenu.test.tsx +276 -2
- package/src/NavMenu/NavHeadingMenu.tsx +42 -4
- package/src/NavMenu/NavHeadingMenuItem.tsx +60 -6
- package/src/NavMenu/NavMenuContext.tsx +11 -0
- package/src/NavMenu/__tests__/NavMenusSlideSelection.a11y.chromium.spec.ts +137 -0
- package/src/NumberInput/NumberInput.doc.mjs +6 -6
- package/src/NumberInput/NumberInput.spec.md +248 -0
- package/src/NumberInput/NumberInput.test.tsx +187 -14
- package/src/NumberInput/NumberInput.tsx +86 -24
- package/src/NumberInput/__tests__/NumberInput.a11y.chromium.spec.ts +1 -0
- package/src/Overlay/Overlay.doc.mjs +2 -2
- package/src/Overlay/Overlay.test.tsx +72 -4
- package/src/Overlay/Overlay.tsx +18 -8
- package/src/Pagination/Pagination.test.tsx +2 -2
- package/src/Popover/Popover.doc.mjs +38 -2
- package/src/Popover/Popover.spec.md +90 -11
- package/src/Popover/Popover.test.tsx +340 -2
- package/src/Popover/Popover.tsx +401 -35
- package/src/Popover/PopoverPresentation.test.tsx +952 -0
- package/src/Popover/__tests__/PopoverSecondDocument.a11y.chromium.spec.ts +205 -0
- package/src/Popover/index.ts +5 -1
- package/src/Popover/lazyPopoverBottomSheet.ts +57 -0
- package/src/Popover/usePopover.tsx +11 -5
- package/src/PowerSearch/PowerSearch.spec.md +423 -53
- package/src/PowerSearch/PowerSearch.test.tsx +77 -1
- package/src/PowerSearch/PowerSearch.tsx +7 -5
- package/src/ProgressBar/ProgressBar.test.tsx +12 -0
- package/src/ProgressBar/ProgressBar.tsx +18 -0
- package/src/ProgressBar/__tests__/ProgressBar.a11y.chromium.spec.ts +1 -0
- package/src/RadioList/RadioList.spec.md +227 -0
- package/src/RadioList/RadioList.test.tsx +34 -7
- package/src/RadioList/RadioListItem.press.source-build.test.mjs +80 -0
- package/src/RadioList/RadioListItem.spec.md +223 -0
- package/src/RadioList/RadioListItem.tsx +26 -12
- package/src/RadioList/__tests__/RadioGroup.a11y.chromium.spec.ts +1 -0
- package/src/Resizable/__tests__/ResizeHandle.a11y.chromium.spec.ts +1 -0
- package/src/ScrollableArea/ScrollableArea.spec.md +6 -5
- package/src/ScrollableArea/ScrollableArea.test.tsx +5 -0
- package/src/ScrollableArea/ScrollableArea.tsx +4 -0
- package/src/Section/Section.spec.md +102 -44
- package/src/SegmentedControl/SegmentedControl.spec.md +162 -53
- package/src/SegmentedControl/SegmentedControl.test.tsx +46 -0
- package/src/SegmentedControl/SegmentedControl.tsx +7 -3
- package/src/SegmentedControl/SegmentedControlItem.spec.md +206 -0
- package/src/SelectableCard/SelectableCard.doc.mjs +7 -6
- package/src/SelectableCard/SelectableCard.spec.md +230 -0
- package/src/SelectableCard/SelectableCard.test.tsx +11 -1
- package/src/SelectableCard/SelectableCard.tsx +49 -33
- package/src/Selector/Selector.sheetActiveDescendant.test.tsx +95 -0
- package/src/Selector/Selector.spec.md +12 -4
- package/src/Selector/Selector.test.tsx +114 -8
- package/src/Selector/Selector.tsx +30 -6
- package/src/Selector/__tests__/ComboboxField.a11y.chromium.spec.ts +458 -0
- package/src/Selector/__tests__/EmptyStateAnnouncement.a11y.chromium.spec.ts +1 -0
- package/src/Selector/__tests__/Listbox.a11y.chromium.spec.ts +1 -0
- package/src/Selector/__tests__/Selector.a11y.chromium.spec.ts +1 -0
- package/src/Selector/__tests__/Selector.combobox.a11y.chromium.spec.ts +1 -0
- package/src/Selector/hooks.ts +234 -10
- package/src/Selector/useCombobox.doc.mjs +156 -9
- package/src/Selector/useCombobox.public.test.tsx +89 -0
- package/src/Selector/useCombobox.test.tsx +444 -0
- package/src/SideNav/SideNav.spec.md +50 -30
- package/src/SideNav/SideNav.test.tsx +425 -25
- package/src/SideNav/SideNav.tsx +85 -1
- package/src/SideNav/SideNavCollapseButton.spec.md +161 -0
- package/src/SideNav/SideNavHeading.spec.md +226 -0
- package/src/SideNav/SideNavHeading.tsx +102 -6
- package/src/SideNav/SideNavItem.spec.md +246 -0
- package/src/SideNav/SideNavItem.tsx +40 -9
- package/src/SideNav/SideNavRailMotion.test.tsx +620 -0
- package/src/SideNav/SideNavSection.spec.md +153 -0
- package/src/SideNav/__tests__/SideNavRailMotion.interaction.browser.spec.ts +417 -0
- package/src/SideNav/railMotion.ts +315 -0
- package/src/Skeleton/Skeleton.spec.md +99 -42
- package/src/Skeleton/Skeleton.test.tsx +108 -1
- package/src/Skeleton/Skeleton.tsx +30 -2
- package/src/Slider/Slider.fr10.test.tsx +34 -0
- package/src/Slider/Slider.test.tsx +172 -0
- package/src/Slider/Slider.tsx +70 -14
- package/src/Slider/__tests__/Slider.a11y.chromium.spec.ts +1 -0
- package/src/Spinner/Spinner.spec.md +231 -0
- package/src/Stack/Stack.spec.md +104 -56
- package/src/StatusDot/StatusDot.spec.md +139 -51
- package/src/StatusDot/StatusDot.test.tsx +13 -0
- package/src/StatusDot/StatusDot.tsx +27 -0
- package/src/Stepper/Step.spec.md +206 -0
- package/src/Stepper/Step.tsx +19 -3
- package/src/Stepper/Stepper.test.tsx +50 -0
- package/src/Switch/Switch.focusRing.source-build.test.mjs +81 -0
- package/src/Switch/Switch.spec.md +150 -66
- package/src/Switch/Switch.tsx +11 -9
- package/src/Switch/__tests__/Switch.a11y.chromium.spec.ts +1 -0
- package/src/Switch/switch.markers.stylex.ts +7 -2
- package/src/TabList/Tab.spec.md +201 -0
- package/src/TabList/Tab.tsx +7 -1
- package/src/TabList/TabList.doc.mjs +3 -3
- package/src/TabList/TabList.test.tsx +27 -0
- package/src/TabList/TabMenu.spec.md +198 -0
- package/src/TabList/TabMenu.tsx +24 -1
- package/src/TabList/__tests__/TabListOverflow.interaction.browser.spec.ts +99 -0
- package/src/TabList/__tests__/Tabs.a11y.chromium.spec.ts +1 -0
- package/src/Table/Table.spec.md +54 -30
- package/src/Table/TableCell.tsx +9 -0
- package/src/Table/TableHeaderCell.tsx +2 -0
- package/src/Table/TableRow.tsx +3 -0
- package/src/Table/__tests__/Table.a11y.chromium.spec.ts +129 -0
- package/src/Table/__tests__/Table.a11y.contracts.ts +35 -0
- package/src/Table/__tests__/Table.a11y.renders.tsx +112 -0
- package/src/Table/__tests__/Table.a11y.states.ts +140 -0
- package/src/Table/__tests__/Table.a11y.test.tsx +198 -0
- package/src/Table/__tests__/TableMinWidth.a11y.chromium.spec.ts +1 -0
- package/src/Table/__tests__/TableRowGlide.a11y.browser.spec.ts +382 -0
- package/src/Table/__tests__/TableScroll.a11y.chromium.spec.ts +1 -0
- package/src/Table/__tests__/TableStickyDividers.a11y.browser.spec.ts +560 -0
- package/src/Table/glidingDivider.ts +336 -0
- package/src/Table/plugins/columnResize/useTableColumnResize.tsx +23 -8
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.glide.test.tsx +280 -0
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +91 -9
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +471 -10
- package/src/Table/plugins/rowStatus/useTableRowStatus.spec.md +4 -4
- package/src/Table/plugins/sortable/__tests__/useTableSortable.a11y.test.tsx +174 -0
- package/src/Table/plugins/sortable/__tests__/useTableSortable.a11y.ts +86 -0
- package/src/Table/plugins/sortable/useTableSortable.test.tsx +0 -12
- package/src/Table/plugins/stickyColumns/useTableStickyColumns.test.tsx +51 -1
- package/src/Table/plugins/stickyColumns/useTableStickyColumns.tsx +312 -12
- package/src/Table/rowDivider.ts +154 -0
- package/src/Table/useTableRowExpansion.doc.mjs +8 -0
- package/src/Text/Text.spec.md +114 -127
- package/src/TextArea/TextArea.doc.mjs +6 -6
- package/src/TextArea/TextArea.spec.md +164 -64
- package/src/TextArea/TextArea.test.tsx +65 -6
- package/src/TextArea/TextArea.tsx +27 -15
- package/src/TextInput/TextInput.doc.mjs +8 -8
- package/src/TextInput/TextInput.spec.md +260 -0
- package/src/TextInput/TextInput.test.tsx +126 -10
- package/src/TextInput/TextInput.tsx +57 -23
- package/src/TextInput/__tests__/TextInput.a11y.chromium.spec.ts +1 -0
- package/src/Thumbnail/Thumbnail.doc.mjs +1 -2
- package/src/Thumbnail/Thumbnail.spec.md +244 -0
- package/src/Thumbnail/Thumbnail.test.tsx +120 -7
- package/src/Thumbnail/Thumbnail.tsx +77 -31
- package/src/TimeInput/TimeInput.spec.md +273 -0
- package/src/TimeInput/TimeInput.tsx +12 -4
- package/src/TimeInput/TouchTimeField.tsx +2 -1
- package/src/Timestamp/Timestamp.spec.md +252 -0
- package/src/Toast/Toast.spec.md +300 -0
- package/src/Toast/ToastViewport.modalHost.test.tsx +630 -5
- package/src/Toast/ToastViewport.test.tsx +137 -0
- package/src/Toast/ToastViewport.tsx +63 -6
- package/src/ToggleButton/ToggleButton.spec.md +256 -0
- package/src/ToggleButton/ToggleButtonGroup.spec.md +195 -0
- package/src/ToggleButton/__tests__/ToggleButton.a11y.chromium.spec.ts +1 -0
- package/src/Token/Token.spec.md +271 -0
- package/src/Token/__tests__/TokenRemoveTarget.a11y.chromium.spec.ts +1 -0
- package/src/Tokenizer/Tokenizer.props-type.test.tsx +126 -0
- package/src/Tokenizer/Tokenizer.spec.md +313 -72
- package/src/Tokenizer/Tokenizer.ssr.test.tsx +196 -0
- package/src/Tokenizer/Tokenizer.test.tsx +44 -8
- package/src/Tokenizer/Tokenizer.tsx +586 -41
- package/src/Tokenizer/TokenizerBottomSheet.test.tsx +2719 -0
- package/src/Tokenizer/TokenizerBottomSheet.tsx +957 -0
- package/src/Tokenizer/__tests__/TokenizerEndLane.a11y.chromium.spec.ts +61 -27
- package/src/Toolbar/Toolbar.spec.md +103 -49
- package/src/Toolbar/__tests__/Toolbar.a11y.chromium.spec.ts +1 -0
- package/src/Tooltip/Tooltip.spec.md +161 -36
- package/src/Tooltip/Tooltip.test.tsx +171 -3
- package/src/Tooltip/__tests__/Tooltip.a11y.chromium.spec.ts +1 -0
- package/src/Tooltip/__tests__/Tooltip.a11y.states.ts +2 -2
- package/src/Tooltip/__tests__/TooltipFocusReturn.a11y.chromium.spec.ts +1 -0
- package/src/Tooltip/__tests__/TooltipHoverBridge.a11y.chromium.spec.ts +1 -0
- package/src/Tooltip/__tests__/TooltipTallContent.a11y.browser.spec.ts +673 -0
- package/src/Tooltip/__tests__/TooltipTallContentTracking.a11y.browser.spec.ts +1162 -0
- package/src/Tooltip/useTooltip.tsx +7 -2
- package/src/TopNav/TopNav.spec.md +190 -0
- package/src/TopNav/TopNav.test.tsx +89 -0
- package/src/TopNav/TopNavHeading.spec.md +211 -0
- package/src/TopNav/TopNavHeading.tsx +35 -2
- package/src/TopNav/TopNavItem.spec.md +189 -0
- package/src/TopNav/TopNavMegaMenu.reduced-motion.source-build.test.mjs +83 -0
- package/src/TopNav/TopNavMegaMenu.spec.md +190 -0
- package/src/TopNav/TopNavMegaMenu.tsx +21 -4
- package/src/TopNav/TopNavMegaMenuFeaturedCard.spec.md +150 -0
- package/src/TopNav/TopNavMegaMenuItem.spec.md +155 -0
- package/src/TopNav/TopNavMenu.spec.md +202 -0
- package/src/TopNav/TopNavMenu.test.tsx +65 -1
- package/src/TopNav/TopNavMenu.tsx +30 -1
- package/src/TopNav/__tests__/TopNavMobileLongHeading.a11y.chromium.spec.ts +1 -0
- package/src/TreeList/TreeList.doc.mjs +13 -0
- package/src/TreeList/TreeList.spec.md +54 -35
- package/src/TreeList/TreeList.tsx +234 -2
- package/src/TreeList/TreeListBranches.tsx +8 -6
- package/src/TreeList/TreeListItem.tsx +12 -6
- package/src/TreeList/__tests__/TreeList.a11y.chromium.spec.ts +19 -6
- package/src/TreeList/__tests__/TreeListGuideAlignment.interaction.browser.spec.ts +127 -0
- package/src/TreeList/__tests__/TreeListRowNames.a11y.chromium.spec.ts +1 -0
- package/src/Typeahead/BaseTypeahead.emptyState.a11y.chromium.spec.ts +138 -0
- package/src/Typeahead/BaseTypeahead.test.tsx +201 -4
- package/src/Typeahead/BaseTypeahead.tsx +26 -10
- package/src/Typeahead/Typeahead.test.tsx +114 -1
- package/src/Typeahead/Typeahead.tsx +34 -16
- package/src/VisuallyHidden/VisuallyHidden.spec.md +170 -0
- package/src/__tests__/BusyOwnerAnnouncement.test.tsx +66 -5
- package/src/__tests__/CardPress.a11y.chromium.spec.ts +353 -0
- package/src/__tests__/DisabledTriggerFocus.a11y.chromium.spec.ts +2 -1
- package/src/__tests__/PressModality.a11y.chromium.spec.ts +392 -0
- package/src/__tests__/PressedState.a11y.chromium.spec.ts +1 -0
- package/src/__tests__/pressState.ts +43 -1
- package/src/__tests__/unthemedLength.ts +34 -0
- package/src/gestures/GestureArena.ts +966 -0
- package/src/gestures/GestureRecognizer.ts +626 -0
- package/src/gestures/LongPressGestureRecognizer.ts +186 -0
- package/src/gestures/PanGestureRecognizer.ts +410 -0
- package/src/gestures/TapGestureRecognizer.ts +192 -0
- package/src/gestures/VelocityTracker.ts +194 -0
- package/src/gestures/__tests__/LongPressGestureRecognizer.test.ts +141 -0
- package/src/gestures/__tests__/PanGestureRecognizer.test.ts +327 -0
- package/src/gestures/__tests__/TapGestureRecognizer.test.ts +154 -0
- package/src/gestures/__tests__/VelocityTracker.streams.test.ts +243 -0
- package/src/gestures/__tests__/VelocityTracker.test.ts +261 -0
- package/src/gestures/__tests__/arena.test.ts +824 -0
- package/src/gestures/__tests__/arenaContinuous.test.ts +207 -0
- package/src/gestures/__tests__/arenaTapLongPress.test.ts +211 -0
- package/src/gestures/__tests__/fixtures/pointer-streams/README.md +82 -0
- package/src/gestures/__tests__/fixtures/pointer-streams/android-chromium-fling.json +130 -0
- package/src/gestures/__tests__/fixtures/pointer-streams/android-chromium-slow.json +860 -0
- package/src/gestures/__tests__/fixtures/pointer-streams/android-chromium-stop-release.json +357 -0
- package/src/gestures/__tests__/fixtures/pointer-streams/android-firefox-fling.json +66 -0
- package/src/gestures/__tests__/fixtures/pointer-streams/android-firefox-slow.json +268 -0
- package/src/gestures/__tests__/fixtures/pointer-streams/android-firefox-stop-release.json +128 -0
- package/src/gestures/__tests__/fixtures/pointer-streams/capture.html +123 -0
- package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-mouse-fling.json +64 -0
- package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-mouse-slow.json +268 -0
- package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-mouse-stop-release.json +124 -0
- package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-pen-fling.json +64 -0
- package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-pen-slow.json +268 -0
- package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-pen-stop-release.json +124 -0
- package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-touch-fling.json +84 -0
- package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-touch-slow.json +381 -0
- package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-touch-stop-release.json +171 -0
- package/src/gestures/__tests__/fixtures/pointer-streams/ios-safari-fling.json +45 -0
- package/src/gestures/__tests__/fixtures/pointer-streams/ios-safari-slow.json +101 -0
- package/src/gestures/__tests__/fixtures/pointer-streams/ios-safari-stop-release.json +130 -0
- package/src/gestures/__tests__/harness.ts +204 -0
- package/src/gestures/geometry.ts +55 -0
- package/src/gestures/types.ts +161 -0
- package/src/hooks/AnnounceRenderedText.tsx +27 -0
- package/src/hooks/ModalAnnounceProvider.tsx +155 -0
- package/src/hooks/__tests__/MenuPressShadowRoot.a11y.chromium.spec.ts +98 -4
- package/src/hooks/__tests__/menuLinkClicks.ts +71 -0
- package/src/hooks/actionGroupTracker.exports.test.ts +28 -0
- package/src/hooks/actionGroupTracker.test.ts +510 -0
- package/src/hooks/actionGroupTracker.ts +449 -0
- package/src/hooks/index.ts +6 -0
- package/src/hooks/menuPressOnItems.ts +40 -0
- package/src/hooks/modalAnnounce.ts +439 -0
- package/src/hooks/scrollGeometry.ts +71 -4
- package/src/hooks/useAdaptivePresentation.ts +46 -9
- package/src/hooks/useAnimatedLayout.doc.mjs +101 -0
- package/src/hooks/useAnimatedLayout.ts +61 -0
- package/src/hooks/useAnnounce.doc.mjs +4 -4
- package/src/hooks/useAnnounce.modal.test.tsx +1291 -0
- package/src/hooks/useAnnounce.test.tsx +64 -4
- package/src/hooks/useAnnounce.ts +452 -28
- package/src/hooks/useAnnounceRenderedText.adopters.test.tsx +226 -0
- package/src/hooks/useAnnounceRenderedText.ts +81 -11
- package/src/hooks/useBusyAnnouncement.adopters.test.tsx +69 -0
- package/src/hooks/useBusyAnnouncement.test.tsx +112 -0
- package/src/hooks/useBusyAnnouncement.ts +64 -54
- package/src/hooks/useFocusTrap.doc.mjs +3 -3
- package/src/hooks/useFocusTrap.test.tsx +135 -2
- package/src/hooks/useFocusTrap.ts +59 -27
- package/src/hooks/useMenuHover.ts +6 -2
- package/src/hooks/useMenuPress.doc.mjs +2 -2
- package/src/hooks/useMenuPress.test.tsx +5 -2
- package/src/hooks/useMenuPress.ts +72 -37
- package/src/hooks/usePressFeedback.doc.mjs +4 -4
- package/src/hooks/usePressFeedback.ts +5 -2
- package/src/hooks/useScrollableArea.test.tsx +344 -3
- package/src/hooks/useScrollableArea.ts +120 -12
- package/src/i18n/generated-locales/en.generated.ts +35 -0
- package/src/i18n/generated-locales/pseudo.generated.ts +37 -0
- package/src/internal/tokenizer-presentation.test.ts +29 -0
- package/src/internal/tokenizer-presentation.ts +25 -0
- package/src/internal/touch.test.ts +44 -0
- package/src/internal/touch.ts +41 -0
- package/src/motion/LayoutChangeSnapshot.tsx +50 -0
- package/src/motion/MEASUREMENTS.md +271 -0
- package/src/motion/README.md +218 -0
- package/src/motion/__tests__/animatedLayout.interaction.browser.spec.ts +1613 -0
- package/src/motion/__tests__/animatedLayoutAdopters.interaction.browser.spec.ts +217 -0
- package/src/motion/__tests__/animatedLayoutBundle.ts +17 -0
- package/src/motion/animatedLayout.boundary.test.ts +155 -0
- package/src/motion/animatedLayout.swap.test.ts +827 -0
- package/src/motion/animatedLayout.test.ts +1154 -0
- package/src/motion/animatedLayout.ts +1801 -0
- package/src/motion/animatedLayoutAdopters.test.tsx +500 -0
- package/src/motion/animator.test.ts +2653 -0
- package/src/motion/animator.ts +2794 -0
- package/src/motion/bezier.test.ts +52 -0
- package/src/motion/bezier.ts +64 -0
- package/src/motion/coast.test.ts +99 -0
- package/src/motion/coast.ts +150 -0
- package/src/motion/decay.test.ts +120 -0
- package/src/motion/decay.ts +126 -0
- package/src/motion/projection.test.ts +107 -0
- package/src/motion/projection.ts +116 -0
- package/src/motion/reducedMotion.stylex.ts +41 -0
- package/src/motion/reducedMotion.test.ts +129 -0
- package/src/motion/reducedMotion.ts +94 -0
- package/src/motion/reducedMotionPlan.test.ts +182 -0
- package/src/motion/reducedMotionPlan.ts +263 -0
- package/src/motion/resolveSnapPoint.test.ts +189 -0
- package/src/motion/resolveSnapPoint.ts +169 -0
- package/src/motion/roleValue.ts +105 -0
- package/src/motion/roles.test.ts +256 -0
- package/src/motion/roles.ts +262 -0
- package/src/motion/rubberBand.test.ts +88 -0
- package/src/motion/rubberBand.ts +115 -0
- package/src/motion/selectPage.test.ts +31 -0
- package/src/motion/selectPage.ts +55 -0
- package/src/motion/spring.test.ts +650 -0
- package/src/motion/spring.ts +551 -0
- package/src/motion/transientCopy.ts +374 -0
- package/src/motion/uikit/gestures.test.ts +89 -0
- package/src/motion/uikit/gestures.ts +359 -0
- package/src/motion/uikit/index.ts +80 -0
- package/src/motion/uikit/navigation.ts +83 -0
- package/src/motion/uikit/scroll.ts +141 -0
- package/src/motion/uikit/springRows.test.ts +71 -0
- package/src/motion/uikit/springs.ts +514 -0
- package/src/motion/uikit/timing.ts +210 -0
- package/src/motion/uikit/uikit.test.ts +364 -0
- package/src/motion/uikit/values.test.ts +110 -0
- package/src/reset.a11y.chromium.spec.ts +1 -0
- package/src/reset.until-found.a11y.browser.spec.ts +1 -0
- package/src/serverSafeComponents.test.ts +10 -0
- package/src/tailwind-theme.css +51 -1
- package/src/tailwind-theme.test.ts +51 -0
- package/src/theme/Theme.test.tsx +28 -0
- package/src/theme/__tests__/SpacingRootFontSize.a11y.chromium.spec.ts +1 -0
- package/src/theme/declarationBoundary.ts +282 -1
- package/src/theme/defineTheme.test.ts +529 -12
- package/src/theme/defineTheme.ts +231 -19
- package/src/theme/derivedVarRegistry.test.ts +34 -5
- package/src/theme/derivedVarRegistry.ts +4 -0
- package/src/theme/expandMotionScale.test.ts +17 -0
- package/src/theme/extensibleAxes.test.ts +74 -29
- package/src/theme/generateThemeRules.ts +772 -35
- package/src/theme/index.ts +3 -0
- package/src/theme/onMediaTokens.test.ts +186 -0
- package/src/theme/statusColor.ts +189 -0
- package/src/theme/statusRoleDerivation.ts +289 -0
- package/src/theme/syntax/SyntaxTheme.tsx +1 -1
- package/src/theme/syntax/defineSyntaxTheme.ts +1 -1
- package/src/theme/syntax/presets.ts +1 -1
- package/src/theme/syntax/tokens.ts +1 -1
- package/src/theme/themeAdaptations.test.ts +412 -0
- package/src/theme/themeAdaptations.ts +43 -1
- package/src/theme/tokens.stylex.ts +36 -2
- package/src/theme/tokens.test.ts +111 -1
- package/src/theme/tokens.ts +23 -1
- package/src/theme/useTheme.ts +10 -4
- package/src/utils/customPropertyArmLayering.test.ts +131 -0
- package/src/utils/edgeAutoscroll.test.ts +192 -0
- package/src/utils/edgeAutoscroll.ts +111 -0
- package/src/utils/hitArea.test.ts +628 -0
- package/src/utils/hitArea.ts +770 -0
- package/src/utils/interactionOverlay.stylex.ts +4 -1
- package/src/utils/pressFeedback.test.ts +310 -2
- package/src/utils/pressFeedback.ts +306 -54
- package/src/utils/pressGesture.test.ts +50 -0
- package/src/utils/pressGesture.ts +40 -2
- package/src/utils/touchPresentation.test.ts +323 -0
- package/src/utils/touchPresentation.ts +153 -0
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* @file BottomSheet.tsx
|
|
7
|
-
* @input Uses React, StyleX, core hooks, shared layer dismissal, the shared interaction modality, named BottomSheetPanel, BottomSheetSwitcherContext
|
|
7
|
+
* @input Uses React, StyleX, core hooks, shared layer dismissal, the modal outlet registry, the shared interaction modality, named BottomSheetPanel, BottomSheetSwitcherContext, BottomSheetHostContext, the private bottom-sheet stack registry
|
|
8
8
|
* @output Exports BottomSheet component and BottomSheetProps
|
|
9
9
|
* @position Public BottomSheet router plus private standalone/switcher hosts
|
|
10
10
|
*
|
|
@@ -23,35 +23,78 @@
|
|
|
23
23
|
* scroll is locked by the shared useScrollLock hook, as for Dialog: a
|
|
24
24
|
* standalone sheet holds it while presented, a switcher holds one for the
|
|
25
25
|
* whole modal flow. The remaining script is what no single dialog can
|
|
26
|
-
* decide: gating `cancel` by `purpose` and the shared dismissal stack,
|
|
27
|
-
* in a switcher, handing one scrim between two
|
|
28
|
-
* the active sheet when a retained dialog
|
|
26
|
+
* decide: gating `cancel` by `purpose` and the shared dismissal stack, the
|
|
27
|
+
* stack of sheets below, and, in a switcher, handing one scrim between two
|
|
28
|
+
* dialogs and keeping focus in the active sheet when a retained dialog
|
|
29
|
+
* closes.
|
|
30
|
+
*
|
|
31
|
+
* A standalone sheet also joins the private bottom-sheet stack
|
|
32
|
+
* (bottomSheetStack.ts) while it is presented. The stack is behaviour, not
|
|
33
|
+
* API: a modal sheet opened while another modal sheet is open stacks on top
|
|
34
|
+
* of it, the covered sheet recedes and is blocked, one scrim stays visible,
|
|
35
|
+
* and the native top layer is kept in open order even when several sheets
|
|
36
|
+
* open in one commit. A sheet rendered in another sheet's content leaves
|
|
37
|
+
* with its host and returns with it while its own `isOpen` is still true;
|
|
38
|
+
* its state is never written for it. A modal sheet on its own never
|
|
39
|
+
* notices the stack; when every sheet of a stack closes in one update, the
|
|
40
|
+
* registry returns focus once, to the bottom sheet's target, after the last
|
|
41
|
+
* dialog has closed.
|
|
42
|
+
*
|
|
43
|
+
* A standalone sheet closing in the same update as another standalone sheet
|
|
44
|
+
* opens, at the same level and from a control inside the closing sheet, is
|
|
45
|
+
* replaced by it: the two run the handoff a BottomSheetSwitcher runs between
|
|
46
|
+
* its steps (entering sheet above, retained sheet aligning down then fading,
|
|
47
|
+
* one steady scrim, focus into the new sheet and back to the flow's opener
|
|
48
|
+
* on close). The registry pairs them and drives the handoff; this host
|
|
49
|
+
* renders the retained panel state it reports, and reports its panel's
|
|
50
|
+
* motions back. Non-modal sheets (`hasScrim={false}`) are hosted as manual
|
|
51
|
+
* popovers so the top layer orders them, with `show()` below the Popover API
|
|
52
|
+
* floor; they never stack, but they replace each other the same way, and
|
|
53
|
+
* return focus to their opener on close only while the person is still in
|
|
54
|
+
* them.
|
|
55
|
+
*
|
|
56
|
+
* Every open standalone modal sheet supplies its dialog as an outlet for
|
|
57
|
+
* app-global surfaces (toasts) (Layer/modalOutlet.ts); the latest outlet,
|
|
58
|
+
* the one they render into, follows the sheet stack's order, so toasts land
|
|
59
|
+
* in the top sheet and return to the sheet beneath when it closes.
|
|
29
60
|
*
|
|
30
61
|
* SYNC: When modified, update these files to stay in sync:
|
|
31
62
|
* - /packages/core/src/BottomSheet/BottomSheetPanel.tsx
|
|
32
63
|
* - /packages/core/src/BottomSheet/BottomSheetEdgeTint.tsx
|
|
64
|
+
* - /packages/core/src/BottomSheet/BottomSheetHostContext.ts
|
|
65
|
+
* - /packages/core/src/BottomSheet/bottomSheetStack.ts
|
|
33
66
|
* - /packages/core/src/BottomSheet/BottomSheet.doc.mjs
|
|
34
67
|
* - /packages/core/src/BottomSheet/BottomSheet.test.tsx
|
|
68
|
+
* - /packages/core/src/BottomSheet/BottomSheetStacking.test.tsx
|
|
35
69
|
* - /packages/core/src/BottomSheet/BottomSheetSwitcher.tsx
|
|
36
70
|
* - /packages/core/src/BottomSheet/BottomSheetSwitcher.test.tsx
|
|
37
71
|
* - /packages/core/src/Layer/layerDismissalFamilies.test.tsx
|
|
38
72
|
* - /packages/core/src/Layer/layerDismissalInvariants.test.tsx
|
|
73
|
+
* - /packages/core/src/Toast/ToastViewport.modalHost.test.tsx
|
|
39
74
|
* - /apps/storybook/stories/BottomSheet.stories.tsx
|
|
75
|
+
* - /apps/storybook/stories/BottomSheetStacking.stories.tsx
|
|
76
|
+
* - /apps/storybook/stories/BottomSheetReplace.stories.tsx
|
|
40
77
|
* - /packages/cli/assets/templates/blocks/components/BottomSheet/BottomSheetShowcase.tsx
|
|
41
78
|
*/
|
|
42
79
|
import { use, useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
43
80
|
import * as stylex from '@stylexjs/stylex';
|
|
44
81
|
import "../theme/tokens.stylex.js";
|
|
45
|
-
import { colorVars, durationVars, easeVars } from "../theme/tokens.stylex.js";
|
|
46
|
-
import { useDevWarning
|
|
82
|
+
import { colorVars, durationVars, easeVars, spacingVars } from "../theme/tokens.stylex.js";
|
|
83
|
+
import { useDevWarning } from "../hooks/useDevWarning.js";
|
|
84
|
+
import { useScrollLock } from "../hooks/useScrollLock.js";
|
|
47
85
|
import { mergeProps } from "../utils/index.js";
|
|
48
86
|
import { LayerDepthProvider } from "../Layer/LayerDepthContext.js";
|
|
87
|
+
import { ModalAnnounceProvider } from "../hooks/ModalAnnounceProvider.js";
|
|
88
|
+
import { useModalOutlet } from "../Layer/modalOutlet.js";
|
|
49
89
|
import { useLayerDismissal } from "../Layer/useLayerDismissal.js";
|
|
50
90
|
import { focusForLastInput } from "../utils/focusReturn.js";
|
|
51
91
|
import { useInteractionModalityTracking } from "../utils/interactionModality.js";
|
|
52
92
|
import { BottomSheetPanel } from "./BottomSheetPanel.js";
|
|
53
93
|
import { BottomSheetEdgeTint } from "./BottomSheetEdgeTint.js";
|
|
94
|
+
import { BottomSheetHostContext, CLOSED_BOTTOM_SHEET_HOST, OPEN_BOTTOM_SHEET_HOST } from "./BottomSheetHostContext.js";
|
|
95
|
+
import { BOTTOM_SHEET_STACK_DEFAULT_VIEW, cancelScrimWrite, closeDialogKeepingFocus, focusSheetPanel, getBottomSheetBeneath, hideSheetHost, isClosingTogether, isSheetHostPresented, presentStepModally, presentWithClearScrim, registerBottomSheet, reportBottomSheetMotion, reportClosedTogether, sealBottomSheetBatch, setBottomSheetOpen, showSheetHostNonModal, writeScrimOpacity } from "./bottomSheetStack.js";
|
|
54
96
|
import { BottomSheetSwitcherContext } from "./BottomSheetSwitcherContext.js";
|
|
97
|
+
import { BottomSheetEscapeContext } from "./bottomSheetEscape.js";
|
|
55
98
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
56
99
|
const styles = {
|
|
57
100
|
dialog: {
|
|
@@ -75,6 +118,28 @@ const styles = {
|
|
|
75
118
|
k1xSpc: "x1lliihq",
|
|
76
119
|
$$css: true
|
|
77
120
|
},
|
|
121
|
+
dialogPanelHost: {
|
|
122
|
+
k1xSpc: "xrvj5dj",
|
|
123
|
+
kfiyM8: "x4465f1",
|
|
124
|
+
kAPf3g: "x1o2pa38",
|
|
125
|
+
$$css: true
|
|
126
|
+
},
|
|
127
|
+
dialogNonModal: {
|
|
128
|
+
kfzvcC: "x47corl",
|
|
129
|
+
kzqmXN: "xh8yej3",
|
|
130
|
+
kZKoxP: "x5yr21d",
|
|
131
|
+
$$css: true
|
|
132
|
+
},
|
|
133
|
+
dialogNonModalItem: {
|
|
134
|
+
kfzvcC: "x47corl",
|
|
135
|
+
kzqmXN: "xh8yej3",
|
|
136
|
+
kZKoxP: "x5yr21d",
|
|
137
|
+
$$css: true
|
|
138
|
+
},
|
|
139
|
+
dialogNonModalItemTop: {
|
|
140
|
+
kY2c9j: "x1vjfegm",
|
|
141
|
+
$$css: true
|
|
142
|
+
},
|
|
78
143
|
scrim: {
|
|
79
144
|
kGyWv1: "xnixb3f",
|
|
80
145
|
k5sjJv: "xni466t xxiuuzi",
|
|
@@ -85,21 +150,65 @@ const styles = {
|
|
|
85
150
|
k4oj2o: "x15l12jy",
|
|
86
151
|
$$css: true
|
|
87
152
|
},
|
|
88
|
-
|
|
153
|
+
scrimClosing: {
|
|
154
|
+
kb4ib: "x1cz9k3x",
|
|
155
|
+
$$css: true
|
|
156
|
+
},
|
|
157
|
+
positioner: {
|
|
158
|
+
kVAEAm: "x10l6tqk",
|
|
159
|
+
kkqhue: "x17y0mx6",
|
|
160
|
+
krVfgx: "x1ey2m1c",
|
|
161
|
+
k1xSpc: "x78zum5",
|
|
162
|
+
kjj79g: "xl56j7k",
|
|
89
163
|
kfzvcC: "x47corl",
|
|
90
|
-
kzqmXN: "xh8yej3",
|
|
91
|
-
kZKoxP: "x5yr21d",
|
|
92
164
|
$$css: true
|
|
93
165
|
},
|
|
94
|
-
|
|
166
|
+
positionerHidden: {
|
|
167
|
+
k1xSpc: "x1s85apg",
|
|
168
|
+
$$css: true
|
|
169
|
+
},
|
|
170
|
+
positionerTop: {
|
|
95
171
|
kY2c9j: "x1vjfegm",
|
|
96
172
|
$$css: true
|
|
97
173
|
},
|
|
98
|
-
|
|
99
|
-
|
|
174
|
+
positionerStackMotion: {
|
|
175
|
+
k3nNDw: "x1fpg8nb",
|
|
176
|
+
k1ekBW: "x11xpdln",
|
|
177
|
+
kIyJzY: "x80gvsz",
|
|
178
|
+
kAMwcw: "xlr8y92",
|
|
179
|
+
k6CgDc: "xzg1mie",
|
|
180
|
+
$$css: true
|
|
181
|
+
},
|
|
182
|
+
positionerReceded1: {
|
|
183
|
+
k3aq6I: "xfkfg1k",
|
|
184
|
+
$$css: true
|
|
185
|
+
},
|
|
186
|
+
positionerReceded2: {
|
|
187
|
+
k3aq6I: "xdo3dbm",
|
|
100
188
|
$$css: true
|
|
101
189
|
}
|
|
102
190
|
};
|
|
191
|
+
|
|
192
|
+
/** Positioner styles for a sheet's place in the stack; the switcher items share them. */
|
|
193
|
+
function stackPositionerStyles(view) {
|
|
194
|
+
return [view.isStacked && styles.positionerStackMotion, view.depth === 1 && styles.positionerReceded1, view.depth >= 2 && styles.positionerReceded2];
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/** The `data-sheet-stack` value for a host: only set while sheets stack. */
|
|
198
|
+
function stackStateAttribute(view, isOpen) {
|
|
199
|
+
if (!view.isStacked) {
|
|
200
|
+
return undefined;
|
|
201
|
+
}
|
|
202
|
+
if (!isOpen) {
|
|
203
|
+
return view.replacedMotion != null ? 'replaced' : 'exiting';
|
|
204
|
+
}
|
|
205
|
+
return view.isTop ? 'top' : 'covered';
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/** Scrim opacity for an open modal sheet: one visible backdrop per stack. */
|
|
209
|
+
function scrimOpacityForView(view) {
|
|
210
|
+
return view.isStacked && !view.ownsScrim ? '0' : '1';
|
|
211
|
+
}
|
|
103
212
|
function panelStateForSwitcherPhase(phase, alignmentOffset) {
|
|
104
213
|
switch (phase) {
|
|
105
214
|
case 'active':
|
|
@@ -130,67 +239,12 @@ function panelStateForSwitcherPhase(phase, alignmentOffset) {
|
|
|
130
239
|
};
|
|
131
240
|
}
|
|
132
241
|
}
|
|
133
|
-
|
|
134
|
-
// preventScroll on both: presenting a sheet must not scroll the page to reveal
|
|
135
|
-
// what it just focused. For an autofocused field that reveal is the mobile
|
|
136
|
-
// keyboard's, and it moves the document under a fixed sheet; useMobileKeyboard
|
|
137
|
-
// brings the field into view within the sheet instead.
|
|
138
242
|
function focusPanel(panel, isModal) {
|
|
139
|
-
|
|
140
|
-
if (activeElement != null && panel?.contains(activeElement)) {
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
const autofocus = panel?.querySelector('[data-autofocus]');
|
|
144
|
-
if (autofocus != null) {
|
|
145
|
-
autofocus.focus({
|
|
146
|
-
preventScroll: true
|
|
147
|
-
});
|
|
148
|
-
} else if (isModal) {
|
|
149
|
-
panel?.focus({
|
|
150
|
-
preventScroll: true
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* Present a switcher step's dialog modally with no focus to return to.
|
|
157
|
-
* showModal() records the element focused at that moment and close() moves
|
|
158
|
-
* focus back to it, in Chromium and WebKit even when focus is in another
|
|
159
|
-
* dialog by then. For a step that element is the control that advanced the
|
|
160
|
-
* flow (Continue, Back) or the flow's opener, and the dialog closes a fade
|
|
161
|
-
* later, while the user is in the next step: the return would pull focus
|
|
162
|
-
* off the active panel with no user action. Blurring first leaves nothing
|
|
163
|
-
* recorded, so the close moves nothing; the entering step then focuses its
|
|
164
|
-
* own panel, and the switcher returns focus to the opener itself when the
|
|
165
|
-
* flow ends. The blur happens in the same task as the present, so no frame
|
|
166
|
-
* paints without focus.
|
|
167
|
-
*/
|
|
168
|
-
function presentStepModally(dialog) {
|
|
169
|
-
const focused = dialog.ownerDocument.activeElement;
|
|
170
|
-
if (focused instanceof HTMLElement && focused !== dialog.ownerDocument.body) {
|
|
171
|
-
focused.blur();
|
|
172
|
-
}
|
|
173
|
-
dialog.showModal();
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* Present a switcher dialog whose backdrop must start, and stay, clear: the
|
|
178
|
-
* opacity is set with the scrim transition pinned to 0s, the dialog is
|
|
179
|
-
* presented, and the pin is lifted only after a style flush has applied the
|
|
180
|
-
* clear backdrop, so no frame eases from a previous backdrop value.
|
|
181
|
-
*/
|
|
182
|
-
function presentWithClearScrim(dialog) {
|
|
183
|
-
dialog.style.setProperty('--_sheet-scrim-duration', '0s');
|
|
184
|
-
dialog.style.setProperty('--_sheet-scrim-opacity', '0');
|
|
185
|
-
presentStepModally(dialog);
|
|
186
|
-
if (typeof getComputedStyle === 'function') {
|
|
187
|
-
void getComputedStyle(dialog, '::backdrop').opacity;
|
|
188
|
-
}
|
|
189
|
-
dialog.style.removeProperty('--_sheet-scrim-duration');
|
|
243
|
+
focusSheetPanel(panel, 'open', isModal);
|
|
190
244
|
}
|
|
191
245
|
function StandaloneBottomSheet({
|
|
192
246
|
ref,
|
|
193
|
-
isOpen,
|
|
247
|
+
isOpen: isOpenProp,
|
|
194
248
|
onOpenChange,
|
|
195
249
|
label,
|
|
196
250
|
children,
|
|
@@ -205,21 +259,76 @@ function StandaloneBottomSheet({
|
|
|
205
259
|
const dialogRef = useRef(null);
|
|
206
260
|
const panelRef = useRef(null);
|
|
207
261
|
const triggerRef = useRef(null);
|
|
262
|
+
// Whether focus was inside this sheet when its close began. A non-modal
|
|
263
|
+
// sheet leaves the page interactive, so it returns focus to its opener
|
|
264
|
+
// only if the person was still in the sheet; a modal sheet always does.
|
|
265
|
+
const hadFocusAtCloseRef = useRef(false);
|
|
266
|
+
const finalFocusRefRef = useRef(finalFocusRef);
|
|
267
|
+
finalFocusRefRef.current = finalFocusRef;
|
|
268
|
+
// A sheet rendered in another sheet's content is presented only while that
|
|
269
|
+
// sheet is open: it leaves with its host and, if its own state is still
|
|
270
|
+
// open, comes back when the host does (see BottomSheetHostContext). Its
|
|
271
|
+
// state stays the consumer's; nothing here writes it.
|
|
272
|
+
const host = use(BottomSheetHostContext);
|
|
273
|
+
const isHostOpen = host?.isOpen ?? true;
|
|
274
|
+
const isOpen = isOpenProp && isHostOpen;
|
|
275
|
+
// Presentation outlives the controlled prop: a closing sheet stays mounted
|
|
276
|
+
// and in its native host through its exit, and only its motion completion
|
|
277
|
+
// (or a replace finishing) clears it. The open flip is derived during
|
|
278
|
+
// render; the close flip is the host's own event.
|
|
208
279
|
const [isPresented, setIsPresented] = useState(isOpen);
|
|
280
|
+
if (isOpen && !isPresented) {
|
|
281
|
+
setIsPresented(true);
|
|
282
|
+
}
|
|
209
283
|
const shouldPresent = isOpen || isPresented;
|
|
284
|
+
|
|
285
|
+
// The sheet's place in the stack of presented modal sheets. Default until
|
|
286
|
+
// the stack reports otherwise, which it does in the commit that presents
|
|
287
|
+
// the sheet, so the first painted frame already shows it.
|
|
288
|
+
const stackKeyRef = useRef({});
|
|
289
|
+
const [stackView, setStackView] = useState(BOTTOM_SHEET_STACK_DEFAULT_VIEW);
|
|
290
|
+
const isOpenRef = useRef(isOpen);
|
|
291
|
+
isOpenRef.current = isOpen;
|
|
292
|
+
// Closed and being replaced by the sheet that opened in the same update:
|
|
293
|
+
// the panel is retained (stays, aligns, fades) instead of sliding out.
|
|
294
|
+
const isReplaced = !isOpen && isPresented && stackView.replacedMotion != null;
|
|
295
|
+
// Whether a replace pairs this close is known only once every sheet of the
|
|
296
|
+
// commit has reported to the registry, in the layout phase. Until the
|
|
297
|
+
// registry has answered (a synchronous re-render later, before paint) the
|
|
298
|
+
// panel holds its open pose: an exit pose rendered first and read back by
|
|
299
|
+
// the panel's own style query would start the exit transition, and the
|
|
300
|
+
// reversal into the retained pose would then snap the panel to rest. The
|
|
301
|
+
// flag is keyed to the close it settles: every change of `isOpen` starts
|
|
302
|
+
// it over, during render, and the layout effect below settles a close.
|
|
303
|
+
const [isCloseSettled, setIsCloseSettled] = useState(false);
|
|
304
|
+
const [settledIsOpen, setSettledIsOpen] = useState(isOpen);
|
|
305
|
+
if (settledIsOpen !== isOpen) {
|
|
306
|
+
setSettledIsOpen(isOpen);
|
|
307
|
+
setIsCloseSettled(false);
|
|
308
|
+
}
|
|
210
309
|
const panelState = isOpen ? {
|
|
211
310
|
kind: 'open',
|
|
212
|
-
entering:
|
|
213
|
-
} :
|
|
311
|
+
entering: stackView.isReplacing
|
|
312
|
+
} : isReplaced ? {
|
|
313
|
+
kind: 'retained',
|
|
314
|
+
motion: stackView.replacedMotion ?? 'covered',
|
|
315
|
+
alignmentOffset: stackView.alignmentOffset
|
|
316
|
+
} : isPresented ? isCloseSettled ? {
|
|
214
317
|
kind: 'exiting'
|
|
318
|
+
} : {
|
|
319
|
+
kind: 'open',
|
|
320
|
+
entering: false
|
|
215
321
|
} : {
|
|
216
322
|
kind: 'hidden'
|
|
217
323
|
};
|
|
324
|
+
|
|
325
|
+
// Popover's sheet may turn Escape off on its own (bottomSheetEscape.ts).
|
|
326
|
+
const isEscapeAllowed = use(BottomSheetEscapeContext);
|
|
218
327
|
const dismissOnEscape = useCallback(() => {
|
|
219
|
-
if (isOpen && purpose !== 'required') {
|
|
328
|
+
if (isOpen && purpose !== 'required' && isEscapeAllowed) {
|
|
220
329
|
onOpenChange(false);
|
|
221
330
|
}
|
|
222
|
-
}, [isOpen, onOpenChange, purpose]);
|
|
331
|
+
}, [isEscapeAllowed, isOpen, onOpenChange, purpose]);
|
|
223
332
|
const dismissOnLightInteraction = useCallback(() => {
|
|
224
333
|
if (purpose === 'info') {
|
|
225
334
|
onOpenChange(false);
|
|
@@ -228,55 +337,192 @@ function StandaloneBottomSheet({
|
|
|
228
337
|
const handlePanelElementChange = useCallback(element => {
|
|
229
338
|
panelRef.current = element;
|
|
230
339
|
}, []);
|
|
340
|
+
const stackViewRef = useRef(stackView);
|
|
341
|
+
stackViewRef.current = stackView;
|
|
342
|
+
const scrimWriteRef = useRef({
|
|
343
|
+
frame: null
|
|
344
|
+
});
|
|
345
|
+
useEffect(() => () => cancelScrimWrite(scrimWriteRef.current), []);
|
|
346
|
+
const writeScrim = useCallback(opacity => writeScrimOpacity(dialogRef.current, opacity, scrimWriteRef.current), []);
|
|
231
347
|
const handleScrimOpacity = useCallback(opacity => {
|
|
348
|
+
// Only the sheet whose backdrop is the visible scrim thins it; a sheet
|
|
349
|
+
// stacked above it has a transparent backdrop that a drag must not reveal.
|
|
350
|
+
const view = stackViewRef.current;
|
|
351
|
+
if (view.isStacked && !view.ownsScrim) {
|
|
352
|
+
return;
|
|
353
|
+
}
|
|
232
354
|
dialogRef.current?.style.setProperty('--_sheet-scrim-opacity', String(opacity));
|
|
233
355
|
}, []);
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
356
|
+
|
|
357
|
+
// A sheet joins the registry for as long as it is presented. For a modal
|
|
358
|
+
// sheet the registry shows the dialog (in open order, repairing same-commit
|
|
359
|
+
// ties before paint), moves focus into it when it lands on top, and reports
|
|
360
|
+
// the sheet's view. A non-modal sheet is a group of its own: it is shown as
|
|
361
|
+
// a manual popover (or by `show()` below the Popover API floor), never
|
|
362
|
+
// stacks or recedes, and only replaces other non-modal sheets.
|
|
363
|
+
useLayoutEffect(() => {
|
|
364
|
+
if (!shouldPresent) {
|
|
237
365
|
return;
|
|
238
366
|
}
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
triggerRef.current
|
|
367
|
+
const key = stackKeyRef.current;
|
|
368
|
+
return registerBottomSheet({
|
|
369
|
+
key,
|
|
370
|
+
getElement: () => dialogRef.current,
|
|
371
|
+
show: () => {
|
|
372
|
+
const dialog = dialogRef.current;
|
|
373
|
+
if (dialog == null || isSheetHostPresented(dialog)) {
|
|
374
|
+
return;
|
|
375
|
+
}
|
|
376
|
+
if (triggerRef.current == null) {
|
|
377
|
+
triggerRef.current = document.activeElement;
|
|
378
|
+
}
|
|
379
|
+
if (!hasScrim) {
|
|
380
|
+
showSheetHostNonModal(dialog, panelRef.current);
|
|
381
|
+
return;
|
|
382
|
+
}
|
|
383
|
+
dialog.style.setProperty('--_sheet-scrim-opacity', scrimOpacityForView(stackViewRef.current));
|
|
249
384
|
dialog.showModal();
|
|
250
|
-
}
|
|
251
|
-
|
|
385
|
+
},
|
|
386
|
+
hide: () => closeDialogKeepingFocus(dialogRef.current),
|
|
387
|
+
focus: reason => focusSheetPanel(panelRef.current, reason, hasScrim),
|
|
388
|
+
getReturnTarget: () => finalFocusRefRef.current?.current ?? triggerRef.current,
|
|
389
|
+
onView: view => {
|
|
390
|
+
stackViewRef.current = view;
|
|
391
|
+
setStackView(view);
|
|
392
|
+
// Who owns the scrim is the stack's decision; a change of owner
|
|
393
|
+
// lands with no fade (see writeScrimOpacity). A replaced sheet
|
|
394
|
+
// keeps the scrim it owns until the sheet replacing it takes it
|
|
395
|
+
// over; a closing sheet whose scrim an open sheet took over drops
|
|
396
|
+
// its backdrop the same way; a closing sheet that owned the scrim
|
|
397
|
+
// alone fades it out.
|
|
398
|
+
if (isOpenRef.current || view.replacedMotion != null) {
|
|
399
|
+
writeScrim(scrimOpacityForView(view));
|
|
400
|
+
} else if (view.isScrimTakenOver) {
|
|
401
|
+
writeScrim('0');
|
|
402
|
+
}
|
|
403
|
+
},
|
|
404
|
+
replaceable: {
|
|
405
|
+
getPanel: () => panelRef.current,
|
|
406
|
+
getOpener: () => triggerRef.current,
|
|
407
|
+
setOpener: opener => {
|
|
408
|
+
triggerRef.current = opener;
|
|
409
|
+
},
|
|
410
|
+
finish: () => {
|
|
411
|
+
// The registry has closed the dialog; focus stayed in the sheet
|
|
412
|
+
// that replaced this one, and so did the flow's opener.
|
|
413
|
+
triggerRef.current = null;
|
|
414
|
+
setIsPresented(false);
|
|
415
|
+
}
|
|
252
416
|
}
|
|
253
|
-
|
|
417
|
+
}, isOpenRef.current, hasScrim);
|
|
418
|
+
}, [hasScrim, shouldPresent, writeScrim]);
|
|
419
|
+
useLayoutEffect(() => {
|
|
420
|
+
if (!isOpen) {
|
|
421
|
+
// Read before the browser's focus fixup for the exiting sheet's
|
|
422
|
+
// `inert` runs (at the next rendering opportunity), so this is where
|
|
423
|
+
// focus was when the person closed the sheet.
|
|
424
|
+
const dialog = dialogRef.current;
|
|
425
|
+
hadFocusAtCloseRef.current = dialog != null && dialog.contains(dialog.ownerDocument.activeElement);
|
|
254
426
|
}
|
|
255
|
-
|
|
427
|
+
if (shouldPresent) {
|
|
428
|
+
setBottomSheetOpen(stackKeyRef.current, isOpen);
|
|
429
|
+
}
|
|
430
|
+
if (!isOpen) {
|
|
431
|
+
// The registry has had every sheet's report for this commit; a close
|
|
432
|
+
// that was not paired as a replace is an exit from here on.
|
|
433
|
+
// eslint-disable-next-line @eslint-react/set-state-in-effect -- settles the close once the registry has answered
|
|
434
|
+
setIsCloseSettled(true);
|
|
435
|
+
}
|
|
436
|
+
}, [hasScrim, isOpen, shouldPresent]);
|
|
437
|
+
|
|
438
|
+
// Host app-global surfaces (toasts) inside this sheet while it is an open
|
|
439
|
+
// modal, so they stay visible and operable above it. Every open scrim sheet
|
|
440
|
+
// supplies an outlet (each is an active native modal); the latest outlet —
|
|
441
|
+
// the one global hosts render into — follows the sheet stack's order among
|
|
442
|
+
// sheets rather than the order the sheets were supplied in, so a toast lands
|
|
443
|
+
// in the top sheet, and when that sheet closes the sheet it reveals becomes
|
|
444
|
+
// the latest sheet again and takes the toasts back; a Dialog opened from a
|
|
445
|
+
// sheet is supplied later and stays above every sheet. A closing sheet stays modal through its
|
|
446
|
+
// exit animation, but inert and hidden, so it stops supplying as soon as it
|
|
447
|
+
// starts closing. The registry reports a lone open sheet as the top one.
|
|
448
|
+
// Passive: it runs after the layout effects that present.
|
|
449
|
+
useModalOutlet(dialogRef, isOpen && hasScrim, stackView.isTop, 'bottom-sheet');
|
|
450
|
+
// Closes a batch of same-commit opens; see sealBottomSheetBatch.
|
|
256
451
|
useEffect(() => {
|
|
257
|
-
|
|
258
|
-
|
|
452
|
+
sealBottomSheetBatch();
|
|
453
|
+
});
|
|
454
|
+
|
|
455
|
+
// The scrim at rest: one visible backdrop per stack while open (a sheet
|
|
456
|
+
// stacked above the owner keeps its own backdrop transparent, and a reopen
|
|
457
|
+
// during the exit brings the owner's back), fading out through the exit.
|
|
458
|
+
useLayoutEffect(() => {
|
|
459
|
+
const dialog = dialogRef.current;
|
|
460
|
+
if (dialog == null || !hasScrim) {
|
|
461
|
+
return;
|
|
462
|
+
}
|
|
463
|
+
// A replaced sheet keeps the scrim it owns until the sheet replacing it
|
|
464
|
+
// takes it over; see bottomSheetStack.
|
|
465
|
+
if (isOpen || isReplaced) {
|
|
466
|
+
dialog.style.setProperty('--_sheet-scrim-opacity', scrimOpacityForView(stackViewRef.current));
|
|
467
|
+
} else if (isPresented) {
|
|
468
|
+
dialog.style.setProperty('--_sheet-scrim-opacity', '0');
|
|
259
469
|
}
|
|
260
|
-
}, [
|
|
470
|
+
}, [hasScrim, isOpen, isPresented, isReplaced]);
|
|
471
|
+
const handleMotionStart = useCallback(motion => {
|
|
472
|
+
reportBottomSheetMotion(stackKeyRef.current, 'start', motion);
|
|
473
|
+
}, []);
|
|
261
474
|
const handleMotionComplete = useCallback(motion => {
|
|
475
|
+
// The replace handoff's motions (entering as a replacer, aligning and
|
|
476
|
+
// fading as the replaced sheet) are the registry's to sequence.
|
|
477
|
+
reportBottomSheetMotion(stackKeyRef.current, 'complete', motion);
|
|
262
478
|
if (motion !== 'exiting' || isOpen) {
|
|
263
479
|
return;
|
|
264
480
|
}
|
|
481
|
+
// A sheet closing from code beneath open sheets leaves focus where it
|
|
482
|
+
// is: in the sheet on top. Its own close must not pull focus back to
|
|
483
|
+
// the element its dialog recorded, nor does it move it anywhere else.
|
|
484
|
+
if (hasScrim && stackViewRef.current.depth > 0) {
|
|
485
|
+
closeDialogKeepingFocus(dialogRef.current);
|
|
486
|
+
setIsPresented(false);
|
|
487
|
+
triggerRef.current = null;
|
|
488
|
+
return;
|
|
489
|
+
}
|
|
490
|
+
// Closing together with the other sheets of its stack ("Close all"):
|
|
491
|
+
// the registry returns focus once, after the last dialog has left.
|
|
492
|
+
if (hasScrim && isClosingTogether(stackKeyRef.current)) {
|
|
493
|
+
closeDialogKeepingFocus(dialogRef.current);
|
|
494
|
+
setIsPresented(false);
|
|
495
|
+
triggerRef.current = null;
|
|
496
|
+
reportClosedTogether(stackKeyRef.current);
|
|
497
|
+
return;
|
|
498
|
+
}
|
|
265
499
|
const dialog = dialogRef.current;
|
|
266
|
-
if (dialog
|
|
267
|
-
dialog
|
|
500
|
+
if (dialog != null) {
|
|
501
|
+
hideSheetHost(dialog);
|
|
268
502
|
}
|
|
269
503
|
setIsPresented(false);
|
|
270
504
|
// The returned focus shows the focus-visible ring only after keyboard
|
|
271
505
|
// input (`architecture:interaction-modality` INV1). The native close
|
|
272
506
|
// may already have restored focus to the target with a ring; the helper
|
|
273
507
|
// clears it first.
|
|
274
|
-
|
|
275
|
-
|
|
508
|
+
//
|
|
509
|
+
// With a sheet still open beneath this one, focus returns into that
|
|
510
|
+
// sheet: to the opener when it is there, else to the sheet's panel.
|
|
511
|
+
//
|
|
512
|
+
// An explicit `finalFocusRef` always receives focus, as released. The
|
|
513
|
+
// recorded opener of a non-modal sheet does so only if the person was
|
|
514
|
+
// still in the sheet when it closed (`hidePopover()` never moves
|
|
515
|
+
// focus, and the page behind it was live, so focus the person took
|
|
516
|
+
// elsewhere stays there).
|
|
517
|
+
const revealed = hasScrim ? getBottomSheetBeneath(stackKeyRef.current) : null;
|
|
518
|
+
const returnTarget = finalFocusRef?.current ?? (hasScrim || hadFocusAtCloseRef.current ? triggerRef.current : null);
|
|
519
|
+
if (revealed != null && (returnTarget == null || !revealed.element.contains(returnTarget))) {
|
|
520
|
+
revealed.focus();
|
|
521
|
+
} else if (returnTarget != null) {
|
|
276
522
|
focusForLastInput(returnTarget);
|
|
277
523
|
}
|
|
278
524
|
triggerRef.current = null;
|
|
279
|
-
}, [finalFocusRef, isOpen]);
|
|
525
|
+
}, [finalFocusRef, hasScrim, isOpen]);
|
|
280
526
|
useInteractionModalityTracking();
|
|
281
527
|
useScrollLock(shouldPresent && hasScrim);
|
|
282
528
|
useDevWarning('BottomSheet', 'requires a non-empty `label` for an accessible name; the open sheet ' + 'has no built-in heading to derive one from.', isOpen && !label);
|
|
@@ -293,19 +539,27 @@ function StandaloneBottomSheet({
|
|
|
293
539
|
shouldDismissOnCloseRequest
|
|
294
540
|
} = useLayerDismissal({
|
|
295
541
|
isActive: shouldPresent,
|
|
296
|
-
escapeBehavior: isOpen && purpose !== 'required' ? 'close' : 'block',
|
|
542
|
+
escapeBehavior: isOpen && purpose !== 'required' && isEscapeAllowed ? 'close' : 'block',
|
|
297
543
|
onDismiss: dismissOnEscape,
|
|
298
544
|
getContainer: () => dialogRef.current,
|
|
299
|
-
|
|
545
|
+
// A covered sheet is on screen but never the one a press is for: the
|
|
546
|
+
// dismissal stack ranks by tree nesting first, which would hand Escape to
|
|
547
|
+
// a covered sheet nested in another sheet's content ahead of a top sheet
|
|
548
|
+
// written outside it. Standing down while covered keeps Escape and the
|
|
549
|
+
// platform close request with the top sheet, as the sheet stack orders.
|
|
550
|
+
// A replaced sheet stands down the same way: the sheet that replaced it,
|
|
551
|
+
// registered before or after it, takes the press.
|
|
552
|
+
isPresent: () => isSheetHostPresented(dialogRef.current) && !stackViewRef.current.isCovered && stackViewRef.current.replacedMotion == null
|
|
300
553
|
});
|
|
301
554
|
|
|
302
555
|
// The native `cancel` event is a close request the stack never saw a press
|
|
303
|
-
// for (Android back, the platform close watcher).
|
|
304
|
-
//
|
|
305
|
-
//
|
|
306
|
-
//
|
|
307
|
-
// layer dismisses, and nothing dismisses during an IME composition.
|
|
556
|
+
// for (Android back, the platform close watcher). Always preventDefault so
|
|
557
|
+
// the browser cannot close the controlled <dialog>, then answer with the
|
|
558
|
+
// stack's rules: only the top-most layer dismisses, and nothing dismisses
|
|
559
|
+
// during an IME composition.
|
|
308
560
|
const handleCancel = useCallback(event => {
|
|
561
|
+
// A `cancel` that bubbles up from inside is not a close request: a
|
|
562
|
+
// file input fires it when its picker is dismissed, so it is left alone.
|
|
309
563
|
if (event.target !== event.currentTarget) {
|
|
310
564
|
return;
|
|
311
565
|
}
|
|
@@ -319,88 +573,66 @@ function StandaloneBottomSheet({
|
|
|
319
573
|
dismissOnLightInteraction();
|
|
320
574
|
}
|
|
321
575
|
}, [dismissOnLightInteraction, hasScrim]);
|
|
576
|
+
const isExiting = !isOpen && isPresented;
|
|
577
|
+
// A covered sheet is blocked by the browser: the top sheet's modal dialog
|
|
578
|
+
// makes everything outside it inert, this dialog included. A covered sheet
|
|
579
|
+
// that contains no presented sheet is marked inert and hidden as well, so
|
|
580
|
+
// the state is explicit; one that does contain the top sheet is left alone,
|
|
581
|
+
// because inert on it would reach the top sheet too.
|
|
582
|
+
const isInert = isExiting || stackView.isBlocked;
|
|
322
583
|
return /*#__PURE__*/_jsxs("dialog", {
|
|
323
|
-
...
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
2: {
|
|
337
|
-
className: "xixxii4 x10a8y8t x1o6l61p xtdtrs8 x1x1rfll x7ab17h x1ghz6dp x1717udv xc342km xng3xce xjbqb8w x1rea2x4 x1s85apg x1a2a7pz x1cz9k3x"
|
|
338
|
-
},
|
|
339
|
-
10: {
|
|
340
|
-
className: "xixxii4 x10a8y8t x1o6l61p xtdtrs8 x1x1rfll x7ab17h x1ghz6dp x1717udv xc342km xng3xce xjbqb8w x1rea2x4 x1a2a7pz x1lliihq x1cz9k3x"
|
|
341
|
-
},
|
|
342
|
-
6: {
|
|
343
|
-
className: "xixxii4 x10a8y8t x1o6l61p xtdtrs8 x1x1rfll x7ab17h x1ghz6dp x1717udv xc342km xng3xce xjbqb8w x1rea2x4 x1s85apg x1a2a7pz xnixb3f xni466t xxiuuzi xc0dz0a x10buo38 x142juwg x15l12jy x1cz9k3x"
|
|
344
|
-
},
|
|
345
|
-
14: {
|
|
346
|
-
className: "xixxii4 x10a8y8t x1o6l61p xtdtrs8 x1x1rfll x7ab17h x1ghz6dp x1717udv xc342km xng3xce xjbqb8w x1rea2x4 x1a2a7pz x1lliihq xnixb3f xni466t xxiuuzi xc0dz0a x10buo38 x142juwg x15l12jy x1cz9k3x"
|
|
347
|
-
},
|
|
348
|
-
1: {
|
|
349
|
-
className: "xixxii4 x10a8y8t x1x1rfll x7ab17h x1ghz6dp x1717udv xc342km xng3xce xjbqb8w x1rea2x4 x1s85apg x1a2a7pz x47corl xfo81ep xh8yej3 x5yr21d"
|
|
350
|
-
},
|
|
351
|
-
9: {
|
|
352
|
-
className: "xixxii4 x10a8y8t x1x1rfll x7ab17h x1ghz6dp x1717udv xc342km xng3xce xjbqb8w x1rea2x4 x1a2a7pz x1lliihq x47corl xfo81ep xh8yej3 x5yr21d"
|
|
353
|
-
},
|
|
354
|
-
5: {
|
|
355
|
-
className: "xixxii4 x10a8y8t x1x1rfll x7ab17h x1ghz6dp x1717udv xc342km xng3xce xjbqb8w x1rea2x4 x1s85apg x1a2a7pz xnixb3f xni466t xxiuuzi xc0dz0a x10buo38 x15h3t91 x142juwg x15l12jy x47corl xfo81ep xh8yej3 x5yr21d"
|
|
356
|
-
},
|
|
357
|
-
13: {
|
|
358
|
-
className: "xixxii4 x10a8y8t x1x1rfll x7ab17h x1ghz6dp x1717udv xc342km xng3xce xjbqb8w x1rea2x4 x1a2a7pz x1lliihq xnixb3f xni466t xxiuuzi xc0dz0a x10buo38 x15h3t91 x142juwg x15l12jy x47corl xfo81ep xh8yej3 x5yr21d"
|
|
359
|
-
},
|
|
360
|
-
3: {
|
|
361
|
-
className: "xixxii4 x10a8y8t x1x1rfll x7ab17h x1ghz6dp x1717udv xc342km xng3xce xjbqb8w x1rea2x4 x1s85apg x1a2a7pz x1cz9k3x x47corl xfo81ep xh8yej3 x5yr21d"
|
|
362
|
-
},
|
|
363
|
-
11: {
|
|
364
|
-
className: "xixxii4 x10a8y8t x1x1rfll x7ab17h x1ghz6dp x1717udv xc342km xng3xce xjbqb8w x1rea2x4 x1a2a7pz x1lliihq x1cz9k3x x47corl xfo81ep xh8yej3 x5yr21d"
|
|
365
|
-
},
|
|
366
|
-
7: {
|
|
367
|
-
className: "xixxii4 x10a8y8t x1x1rfll x7ab17h x1ghz6dp x1717udv xc342km xng3xce xjbqb8w x1rea2x4 x1s85apg x1a2a7pz xnixb3f xni466t xxiuuzi xc0dz0a x10buo38 x142juwg x15l12jy x1cz9k3x x47corl xfo81ep xh8yej3 x5yr21d"
|
|
368
|
-
},
|
|
369
|
-
15: {
|
|
370
|
-
className: "xixxii4 x10a8y8t x1x1rfll x7ab17h x1ghz6dp x1717udv xc342km xng3xce xjbqb8w x1rea2x4 x1a2a7pz x1lliihq xnixb3f xni466t xxiuuzi xc0dz0a x10buo38 x142juwg x15l12jy x1cz9k3x x47corl xfo81ep xh8yej3 x5yr21d"
|
|
371
|
-
}
|
|
372
|
-
}[!!shouldPresent << 3 | !!hasScrim << 2 | !!(hasScrim && !isOpen && isPresented) << 1 | !!!hasScrim << 0],
|
|
373
|
-
ref: dialogRef,
|
|
584
|
+
...stylex.props(styles.dialog, shouldPresent && styles.dialogOpen, shouldPresent && styles.dialogPanelHost,
|
|
585
|
+
// The dialog is the panel's positioner, so the stack's recede
|
|
586
|
+
// transforms the dialog: panel, grabber and all shrink and lift as
|
|
587
|
+
// one. The backdrop is not a descendant and stays put.
|
|
588
|
+
...stackPositionerStyles(stackView), hasScrim && styles.scrim, hasScrim && isExiting && styles.scrimClosing, !hasScrim && styles.dialogNonModal),
|
|
589
|
+
ref: dialogRef
|
|
590
|
+
// A non-modal sheet is hosted in the top layer as a manual popover
|
|
591
|
+
// (no light dismiss, no backdrop), so sheets order by presentation
|
|
592
|
+
// without a page-level z-index. Below the Popover API floor the
|
|
593
|
+
// attribute is inert and the sheet falls back to show(), in page
|
|
594
|
+
// stacking order (the documented reduced fallback).
|
|
595
|
+
,
|
|
596
|
+
popover: hasScrim ? undefined : 'manual',
|
|
374
597
|
"aria-label": label,
|
|
375
|
-
"aria-hidden":
|
|
598
|
+
"aria-hidden": isInert ? 'true' : undefined,
|
|
376
599
|
"aria-modal": hasScrim && isOpen ? 'true' : undefined,
|
|
377
600
|
role: purpose === 'required' ? 'alertdialog' : undefined,
|
|
378
|
-
inert:
|
|
601
|
+
inert: isInert ? true : undefined,
|
|
602
|
+
"data-sheet-stack": hasScrim ? stackStateAttribute(stackView, isOpen) : undefined,
|
|
603
|
+
"data-sheet-stack-depth": hasScrim && stackView.depth > 0 ? stackView.depth : undefined,
|
|
379
604
|
onCancel: handleCancel,
|
|
380
605
|
onClick: handleClick,
|
|
381
|
-
children: [/*#__PURE__*/_jsx(
|
|
382
|
-
...
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
606
|
+
children: [/*#__PURE__*/_jsx(BottomSheetPanel, {
|
|
607
|
+
...props,
|
|
608
|
+
ref: ref,
|
|
609
|
+
state: panelState,
|
|
610
|
+
isOpenRequested: isOpen,
|
|
611
|
+
height: height,
|
|
612
|
+
label: label,
|
|
613
|
+
snapPoints: snapPoints,
|
|
614
|
+
isSwipeDismissAllowed: purpose === 'info',
|
|
615
|
+
isPageScrollLocked: shouldPresent && hasScrim,
|
|
616
|
+
xstyle: xstyle,
|
|
617
|
+
onDismiss: dismissOnLightInteraction,
|
|
618
|
+
onScrimOpacity: handleScrimOpacity,
|
|
619
|
+
onElementChange: handlePanelElementChange,
|
|
620
|
+
onMotionStart: handleMotionStart,
|
|
621
|
+
onMotionComplete: handleMotionComplete,
|
|
622
|
+
children: /*#__PURE__*/_jsx(ModalAnnounceProvider, {
|
|
623
|
+
dialogRef: dialogRef,
|
|
624
|
+
isOpen: isOpen && hasScrim,
|
|
399
625
|
children: /*#__PURE__*/_jsx(LayerDepthProvider, {
|
|
400
|
-
children:
|
|
626
|
+
children: /*#__PURE__*/_jsx(BottomSheetEscapeContext, {
|
|
627
|
+
value: true,
|
|
628
|
+
children: /*#__PURE__*/_jsx(BottomSheetHostContext, {
|
|
629
|
+
value: isOpen ? OPEN_BOTTOM_SHEET_HOST : CLOSED_BOTTOM_SHEET_HOST,
|
|
630
|
+
children: children
|
|
631
|
+
})
|
|
632
|
+
})
|
|
401
633
|
})
|
|
402
634
|
})
|
|
403
|
-
}), /*#__PURE__*/_jsx(BottomSheetEdgeTint, {})]
|
|
635
|
+
}), shouldPresent && /*#__PURE__*/_jsx(BottomSheetEdgeTint, {})]
|
|
404
636
|
});
|
|
405
637
|
}
|
|
406
638
|
function SwitcherBottomSheetItem({
|
|
@@ -432,6 +664,7 @@ function SwitcherBottomSheetItem({
|
|
|
432
664
|
onSheetEnterStart,
|
|
433
665
|
onSheetTransitionComplete,
|
|
434
666
|
onSheetScrimOpacityChange,
|
|
667
|
+
stackView,
|
|
435
668
|
dialogProps,
|
|
436
669
|
onDialogCancel,
|
|
437
670
|
onDialogClick,
|
|
@@ -446,6 +679,10 @@ function SwitcherBottomSheetItem({
|
|
|
446
679
|
const isPresented = phase !== 'hidden';
|
|
447
680
|
const isTopSheet = phase === 'active' || phase === 'entering';
|
|
448
681
|
const ownsScrim = hasValidSheetId && isScrimOwner(sheetId);
|
|
682
|
+
// The flow is one level of the bottom-sheet stack; a sheet outside the flow
|
|
683
|
+
// covering it blocks every step dialog, the way a covered standalone sheet
|
|
684
|
+
// is blocked. A step is also inactive on its own terms during a handoff.
|
|
685
|
+
const isBlocked = isInactive || hasScrim && stackView.isBlocked;
|
|
449
686
|
const isHostSheet = hasValidSheetId && hostSheet === sheetId;
|
|
450
687
|
const dialogRef = useRef(null);
|
|
451
688
|
const dialogModeRef = useRef(null);
|
|
@@ -602,34 +839,24 @@ function SwitcherBottomSheetItem({
|
|
|
602
839
|
"aria-label": switcherAriaLabel ?? (switcherAriaLabelledBy == null ? label : undefined),
|
|
603
840
|
"aria-labelledby": switcherAriaLabelledBy,
|
|
604
841
|
"aria-modal": hasScrim && isInteractive ? 'true' : undefined,
|
|
605
|
-
"aria-hidden":
|
|
606
|
-
inert:
|
|
842
|
+
"aria-hidden": isBlocked ? 'true' : undefined,
|
|
843
|
+
inert: isBlocked ? true : undefined,
|
|
844
|
+
"data-sheet-stack": hasScrim && isPresented ? stackStateAttribute(stackView, activeSheet != null) : undefined,
|
|
845
|
+
"data-sheet-stack-depth": hasScrim && isPresented && stackView.depth > 0 ? stackView.depth : undefined,
|
|
607
846
|
role: purpose === 'required' ? 'alertdialog' : switcherDialogProps.role,
|
|
608
847
|
onCancel: onDialogCancel,
|
|
609
848
|
onClick: onDialogClick,
|
|
610
849
|
onKeyDown: onDialogKeyDown,
|
|
611
850
|
children: [/*#__PURE__*/_jsx("div", {
|
|
612
|
-
...
|
|
613
|
-
0: {
|
|
614
|
-
className: "x10l6tqk x17y0mx6 x1ey2m1c x78zum5 xl56j7k x47corl"
|
|
615
|
-
},
|
|
616
|
-
2: {
|
|
617
|
-
className: "x10l6tqk x17y0mx6 x1ey2m1c xl56j7k x47corl x1s85apg"
|
|
618
|
-
},
|
|
619
|
-
1: {
|
|
620
|
-
className: "x10l6tqk x17y0mx6 x1ey2m1c x78zum5 xl56j7k x47corl x1vjfegm"
|
|
621
|
-
},
|
|
622
|
-
3: {
|
|
623
|
-
className: "x10l6tqk x17y0mx6 x1ey2m1c xl56j7k x47corl x1s85apg x1vjfegm"
|
|
624
|
-
}
|
|
625
|
-
}[!!!isPresented << 1 | !!isTopSheet << 0],
|
|
851
|
+
...stylex.props(styles.positioner, !isPresented && styles.positionerHidden, isTopSheet && styles.positionerTop, ...(hasScrim ? stackPositionerStyles(stackView) : [])),
|
|
626
852
|
hidden: !isPresented,
|
|
627
|
-
"aria-hidden":
|
|
628
|
-
inert:
|
|
853
|
+
"aria-hidden": isBlocked ? 'true' : undefined,
|
|
854
|
+
inert: isBlocked ? true : undefined,
|
|
629
855
|
children: /*#__PURE__*/_jsx(BottomSheetPanel, {
|
|
630
856
|
...props,
|
|
631
857
|
ref: ref,
|
|
632
858
|
state: panelState,
|
|
859
|
+
isOpenRequested: hasValidSheetId && activeSheet === sheetId,
|
|
633
860
|
height: height,
|
|
634
861
|
label: label,
|
|
635
862
|
snapPoints: snapPoints,
|
|
@@ -643,8 +870,18 @@ function SwitcherBottomSheetItem({
|
|
|
643
870
|
onMotionComplete: handleMotionComplete,
|
|
644
871
|
children: /*#__PURE__*/_jsx(BottomSheetSwitcherContext, {
|
|
645
872
|
value: null,
|
|
646
|
-
children: /*#__PURE__*/_jsx(
|
|
647
|
-
|
|
873
|
+
children: /*#__PURE__*/_jsx(ModalAnnounceProvider, {
|
|
874
|
+
dialogRef: dialogRef,
|
|
875
|
+
isOpen: isPresented && hasScrim,
|
|
876
|
+
children: /*#__PURE__*/_jsx(LayerDepthProvider, {
|
|
877
|
+
children: /*#__PURE__*/_jsx(BottomSheetEscapeContext, {
|
|
878
|
+
value: true,
|
|
879
|
+
children: /*#__PURE__*/_jsx(BottomSheetHostContext, {
|
|
880
|
+
value: isInteractive ? OPEN_BOTTOM_SHEET_HOST : CLOSED_BOTTOM_SHEET_HOST,
|
|
881
|
+
children: children
|
|
882
|
+
})
|
|
883
|
+
})
|
|
884
|
+
})
|
|
648
885
|
})
|
|
649
886
|
})
|
|
650
887
|
})
|