@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
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file gestures.ts
|
|
5
|
+
* @input Nothing: plain data
|
|
6
|
+
* @output Exports one constant per recognizer or domain (UIKIT_TAP,
|
|
7
|
+
* UIKIT_LONG_PRESS, UIKIT_PAN, …, UIKIT_PRESS, UIKIT_VELOCITY), the gesture
|
|
8
|
+
* thresholds recognizers read, a reader importing only its group; their
|
|
9
|
+
* union UIKIT_GESTURES; and the GestureConstant type: a value and its unit
|
|
10
|
+
* @position Gesture half of the UIKit constants table. Springs, scroll
|
|
11
|
+
* physics and timing live beside it in this folder; no component carries a
|
|
12
|
+
* gesture number of its own.
|
|
13
|
+
*
|
|
14
|
+
* Units are CSS pixels and milliseconds. On a phone with
|
|
15
|
+
* `width=device-width`, one CSS pixel is one UIKit point, so a UIKit distance
|
|
16
|
+
* in points is the same number here.
|
|
17
|
+
*
|
|
18
|
+
* Every leaf carries one or more `@source` (apple-docs | wwdc | webkit |
|
|
19
|
+
* measured | GUESS); webkit and GUESS values also carry the `@measure` task
|
|
20
|
+
* that will confirm or replace them (MEASUREMENTS.md lists them all).
|
|
21
|
+
* uikit.test.ts enforces both. Only the value and its unit ship: where a
|
|
22
|
+
* number comes from stays in its JSDoc, out of the bundle. The press clocks
|
|
23
|
+
* are the same values as `DELAYS_CONTENT_TOUCHES_MS` and timing's `press`,
|
|
24
|
+
* written as numbers so each group bundles alone; gestures.test.ts holds
|
|
25
|
+
* them equal. Safari on iOS runs UIKit's own
|
|
26
|
+
* recognizers for tap-to-click, long press, double tap and the start of a
|
|
27
|
+
* page scroll, so many guesses can be settled by measuring Safari itself.
|
|
28
|
+
*
|
|
29
|
+
* The measurements the sources name:
|
|
30
|
+
* - UIKit lab: in-process reads and touch runs of fresh UIKit recognizers
|
|
31
|
+
* (private ivars read with key-value coding, every value confirmed with HID
|
|
32
|
+
* touches and the recognizer state log), iPhone 17 Pro simulator, iOS 26.2.
|
|
33
|
+
* - Settings and Contacts: the repository's own measurement of the touch
|
|
34
|
+
* press model, recorded in packages/core/src/utils/pressGesture.ts, driven
|
|
35
|
+
* with real HID touches and filmed at 60 fps.
|
|
36
|
+
* - Mobile Safari: Safari page scroll is a UIScrollView; the distance at which
|
|
37
|
+
* it claims a slow drag is where a press becomes a scroll, and the last
|
|
38
|
+
* moment a page can still cancel the scroll.
|
|
39
|
+
*
|
|
40
|
+
* SYNC: When modified, update packages/core/src/motion/uikit/gestures.test.ts.
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
import {DELAYS_CONTENT_TOUCHES_MS} from './scroll';
|
|
44
|
+
|
|
45
|
+
export type GestureConstantUnit =
|
|
46
|
+
'px' | 'ms' | 'px/s' | 'rad' | 'ratio' | 'count';
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* A gesture number and its unit. Where the number comes from is in the
|
|
50
|
+
* entry's JSDoc (`@source`, `@measure`), not in the value.
|
|
51
|
+
*/
|
|
52
|
+
export interface GestureConstant<T = number> {
|
|
53
|
+
readonly value: T;
|
|
54
|
+
readonly unit: GestureConstantUnit;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export const UIKIT_TAP = {
|
|
58
|
+
/**
|
|
59
|
+
* How far each finger may travel from where it landed before a tap
|
|
60
|
+
* fails, as a distance.
|
|
61
|
+
* @source measured: UIKit lab, iOS 26.2 simulator, ivar reads confirmed
|
|
62
|
+
* with HID touches, Oct 23 2026: UITapGestureRecognizer
|
|
63
|
+
* _allowableMovement 45; 44 pt taps, 46 pt fails, the same on the
|
|
64
|
+
* diagonal
|
|
65
|
+
*/
|
|
66
|
+
allowableMovement: {value: 45, unit: 'px'},
|
|
67
|
+
/**
|
|
68
|
+
* Longest interval between one tap lifting and the next landing.
|
|
69
|
+
* @source measured: UIKit lab, iOS 26.2 simulator, ivar reads confirmed
|
|
70
|
+
* with HID touches, Oct 23 2026: _maximumIntervalBetweenSuccessiveTaps
|
|
71
|
+
* 0.35 s; 330 ms double-taps, 370 ms does not
|
|
72
|
+
*/
|
|
73
|
+
maximumIntervalBetweenTaps: {value: 350, unit: 'ms'},
|
|
74
|
+
/**
|
|
75
|
+
* How far a later tap may land from the first one of the sequence.
|
|
76
|
+
* @source measured: UIKit lab, iOS 26.2 simulator, ivar reads confirmed
|
|
77
|
+
* with HID touches, Oct 23 2026: _allowableSeparation is unbounded and
|
|
78
|
+
* the 45 pt movement rule applies between taps; 44 pt double-taps, 46
|
|
79
|
+
* does not
|
|
80
|
+
*/
|
|
81
|
+
allowableSeparation: {value: 45, unit: 'px'},
|
|
82
|
+
/**
|
|
83
|
+
* Longest a finger may stay down and still tap.
|
|
84
|
+
* @source measured: UIKit lab, iOS 26.2 simulator, ivar reads confirmed
|
|
85
|
+
* with HID touches, Oct 23 2026: maximumTapDuration 1.5 s; a 1.4 s hold
|
|
86
|
+
* taps, 1.6 s does not
|
|
87
|
+
*/
|
|
88
|
+
maximumTapDuration: {value: 1500, unit: 'ms'},
|
|
89
|
+
} as const satisfies Record<string, GestureConstant>;
|
|
90
|
+
|
|
91
|
+
export const UIKIT_LONG_PRESS = {
|
|
92
|
+
/**
|
|
93
|
+
* UILongPressGestureRecognizer.minimumPressDuration default.
|
|
94
|
+
* @source apple-docs
|
|
95
|
+
* https://developer.apple.com/documentation/uikit/uilongpressgesturerecognizer/minimumpressduration
|
|
96
|
+
* @source measured: UIKit lab, iOS 26.2 simulator, ivar reads confirmed
|
|
97
|
+
* with HID touches, Oct 23 2026: _minimumPressDuration 0.5
|
|
98
|
+
*/
|
|
99
|
+
minimumPressDuration: {value: 500, unit: 'ms'},
|
|
100
|
+
/**
|
|
101
|
+
* UILongPressGestureRecognizer.allowableMovement default, a distance.
|
|
102
|
+
* @source apple-docs
|
|
103
|
+
* https://developer.apple.com/documentation/uikit/uilongpressgesturerecognizer/allowablemovement
|
|
104
|
+
* @source measured: UIKit lab, iOS 26.2 simulator, ivar reads confirmed
|
|
105
|
+
* with HID touches, Oct 23 2026: a (7, 7) drift begins, (7.2, 7.2) fails
|
|
106
|
+
*/
|
|
107
|
+
allowableMovement: {value: 10, unit: 'px'},
|
|
108
|
+
} as const satisfies Record<string, GestureConstant>;
|
|
109
|
+
|
|
110
|
+
export const UIKIT_PAN = {
|
|
111
|
+
/**
|
|
112
|
+
* Travel before a pan begins, PER AXIS: |dx| or |dy| reaching it. The
|
|
113
|
+
* translation is reset when the pan begins, so the hysteresis is not
|
|
114
|
+
* part of it. Kept below the distance at which WebKit claims a drag for
|
|
115
|
+
* scrolling, so a pan that must cancel the native scroll still sees
|
|
116
|
+
* cancelable `touchmove`s.
|
|
117
|
+
* @source measured: UIKit lab, iOS 26.2 simulator, ivar reads confirmed
|
|
118
|
+
* with HID touches, Oct 23 2026: UIPanGestureRecognizer _hysteresis 10; x
|
|
119
|
+
* and y began at 10.0, a diagonal at (10.67, 10.67); translation(in:) is
|
|
120
|
+
* 0 at .began
|
|
121
|
+
*/
|
|
122
|
+
hysteresis: {value: 10, unit: 'px'},
|
|
123
|
+
} as const satisfies Record<string, GestureConstant>;
|
|
124
|
+
|
|
125
|
+
export const UIKIT_SWIPE = {
|
|
126
|
+
/**
|
|
127
|
+
* Travel along the swipe direction before a swipe is recognized.
|
|
128
|
+
* @source measured: UIKit lab, iOS 26.2 simulator, ivar reads confirmed
|
|
129
|
+
* with HID touches, Oct 23 2026: UISwipeGestureRecognizer minimum primary
|
|
130
|
+
* movement 50; recognized during the motion; 40 pt does not
|
|
131
|
+
*/
|
|
132
|
+
minimumDistance: {value: 50, unit: 'px'},
|
|
133
|
+
/**
|
|
134
|
+
* Longest a swipe may take before it fails.
|
|
135
|
+
* @source measured: UIKit lab, iOS 26.2 simulator, ivar reads confirmed
|
|
136
|
+
* with HID touches, Oct 23 2026: UISwipeGestureRecognizer maximum
|
|
137
|
+
* duration 0.5 s
|
|
138
|
+
*/
|
|
139
|
+
maximumDuration: {value: 500, unit: 'ms'},
|
|
140
|
+
/**
|
|
141
|
+
* Travel across the swipe direction that fails it.
|
|
142
|
+
* @source measured: UIKit lab, iOS 26.2 simulator, ivar reads confirmed
|
|
143
|
+
* with HID touches, Oct 23 2026: UISwipeGestureRecognizer maximum
|
|
144
|
+
* secondary movement 50
|
|
145
|
+
*/
|
|
146
|
+
maximumSecondaryMovement: {value: 50, unit: 'px'},
|
|
147
|
+
/**
|
|
148
|
+
* How the minimum movement relaxes over time. Read, not modelled: a
|
|
149
|
+
* 120 pt swipe over 0.8 s was recognized at 303 ms, below 50 pt of travel.
|
|
150
|
+
* @source measured: UIKit lab, iOS 26.2 simulator, ivar reads confirmed
|
|
151
|
+
* with HID touches, Oct 23 2026: UISwipeGestureRecognizer
|
|
152
|
+
* rateOfMinimumMovementDecay 0.06 (not modelled)
|
|
153
|
+
*/
|
|
154
|
+
minimumMovementDecay: {value: 0.06, unit: 'ratio'},
|
|
155
|
+
} as const satisfies Record<string, GestureConstant>;
|
|
156
|
+
|
|
157
|
+
export const UIKIT_PINCH = {
|
|
158
|
+
/**
|
|
159
|
+
* Change of the distance between two fingers before a pinch begins. The
|
|
160
|
+
* scale is then measured against the starting span moved by this much,
|
|
161
|
+
* so it does not jump.
|
|
162
|
+
* @source measured: UIKit lab, iOS 26.2 simulator, ivar reads confirmed
|
|
163
|
+
* with HID touches, Oct 23 2026: UIPinchGestureRecognizer _hysteresis 8;
|
|
164
|
+
* out from 120 began at 144 with scale 1.125 (= 144 / 128)
|
|
165
|
+
*/
|
|
166
|
+
hysteresis: {value: 8, unit: 'px'},
|
|
167
|
+
} as const satisfies Record<string, GestureConstant>;
|
|
168
|
+
|
|
169
|
+
export const UIKIT_ROTATION = {
|
|
170
|
+
/**
|
|
171
|
+
* Rotation of the two-finger vector before a rotation begins.
|
|
172
|
+
* @source GUESS — UIRotationGestureRecognizer has no scalar threshold among
|
|
173
|
+
* its ivars; 5 degrees. The simulator HID cannot rotate two fingers: a
|
|
174
|
+
* device run (or an XCUITest rotate) logging the angle at .began.
|
|
175
|
+
* @measure M-G10
|
|
176
|
+
*/
|
|
177
|
+
// 5° in radians, written out so the group bundles alone.
|
|
178
|
+
hysteresis: {value: 0.08726646259971647, unit: 'rad'},
|
|
179
|
+
} as const satisfies Record<string, GestureConstant>;
|
|
180
|
+
|
|
181
|
+
export const UIKIT_SCREEN_EDGE_PAN = {
|
|
182
|
+
/**
|
|
183
|
+
* Width of the band at the screen edge a touch must land in.
|
|
184
|
+
* @source measured: UIKit lab, iOS 26.2 simulator, ivar reads confirmed
|
|
185
|
+
* with HID touches, Oct 23 2026: UIScreenEdgePanGestureRecognizer
|
|
186
|
+
* _edgeRegionSize 40.2 on a 402 pt wide screen (10 % of it); edge pans
|
|
187
|
+
* cannot begin from simulator HID
|
|
188
|
+
*/
|
|
189
|
+
edgeRegion: {value: 40.2, unit: 'px'},
|
|
190
|
+
/**
|
|
191
|
+
* Travel before an edge pan begins.
|
|
192
|
+
* @source measured: UIKit lab, iOS 26.2 simulator, ivar reads confirmed
|
|
193
|
+
* with HID touches, Oct 23 2026: the screen-edge pan hysteresis ivar 15
|
|
194
|
+
*/
|
|
195
|
+
hysteresis: {value: 15, unit: 'px'},
|
|
196
|
+
} as const satisfies Record<string, GestureConstant>;
|
|
197
|
+
|
|
198
|
+
export const UIKIT_CONTROL = {
|
|
199
|
+
/**
|
|
200
|
+
* How far outside its bounds a UIControl keeps a press inside: a finger
|
|
201
|
+
* dragged out is still "inside" until it passes this margin.
|
|
202
|
+
* @source measured: UIKit lab, iOS 26.2 simulator, ivar reads confirmed
|
|
203
|
+
* with HID touches, Oct 23 2026: UIButton (.system) stays inside up to 70
|
|
204
|
+
* pt out, touchDragExit at 71, touchDragEnter at 69 coming back;
|
|
205
|
+
* touchUpInside up to 70, touchUpOutside from 71
|
|
206
|
+
*/
|
|
207
|
+
trackingExpansion: {value: 70, unit: 'px'},
|
|
208
|
+
} as const satisfies Record<string, GestureConstant>;
|
|
209
|
+
|
|
210
|
+
export const UIKIT_PRESS = {
|
|
211
|
+
/**
|
|
212
|
+
* UIScrollView.delaysContentTouches: a touch in a scroller highlights after
|
|
213
|
+
* this.
|
|
214
|
+
* @source measured: Settings and Contacts, iOS 26.2 simulator, HID touches
|
|
215
|
+
* filmed at 60 fps (utils/pressGesture.ts), Oct 6 2026
|
|
216
|
+
*/
|
|
217
|
+
contentTouchDelay: {value: DELAYS_CONTENT_TOUCHES_MS, unit: 'ms'},
|
|
218
|
+
/**
|
|
219
|
+
* A tap shorter than the delay shows the highlight at the lift for this
|
|
220
|
+
* long.
|
|
221
|
+
* @source measured: Settings and Contacts, iOS 26.2 simulator, HID touches
|
|
222
|
+
* filmed at 60 fps (utils/pressGesture.ts), Oct 6 2026
|
|
223
|
+
*/
|
|
224
|
+
quickTapFlash: {value: 100, unit: 'ms'},
|
|
225
|
+
/**
|
|
226
|
+
* Travel at which a press is a scroll, not a press.
|
|
227
|
+
* @source measured: Mobile Safari 26.2, iOS 26.2 simulator, slow HID drag
|
|
228
|
+
* on a scrollable page (1 pt steps): last cancelable touchmove at 10 px,
|
|
229
|
+
* pointercancel and the first uncancelable touchmove at 11 px, Oct 23
|
|
230
|
+
* 2026
|
|
231
|
+
*/
|
|
232
|
+
slop: {value: 10, unit: 'px'},
|
|
233
|
+
/**
|
|
234
|
+
* A touch this soon after a finger-driven scroll moved is a brake, not a
|
|
235
|
+
* press.
|
|
236
|
+
* @source measured: Settings and Contacts, iOS 26.2 simulator, HID touches
|
|
237
|
+
* filmed at 60 fps (utils/pressGesture.ts), Oct 6 2026
|
|
238
|
+
*/
|
|
239
|
+
scrollBrake: {value: 150, unit: 'ms'},
|
|
240
|
+
/**
|
|
241
|
+
* How long after a finger was down a scroll can still be that finger's
|
|
242
|
+
* momentum (the brake only counts scrolls a finger drove).
|
|
243
|
+
* @source GUESS — The press model bound (utils/pressFeedback.ts): iOS
|
|
244
|
+
* momentum runs for a second or two after the lift.
|
|
245
|
+
* @measure M-G19
|
|
246
|
+
*/
|
|
247
|
+
momentumMemory: {value: 3000, unit: 'ms'},
|
|
248
|
+
} as const satisfies Record<string, GestureConstant>;
|
|
249
|
+
|
|
250
|
+
export const UIKIT_VELOCITY = {
|
|
251
|
+
/**
|
|
252
|
+
* UIPanGestureRecognizer.velocity(in:) is this times the newest event's
|
|
253
|
+
* instantaneous velocity plus the rest times the previous event's
|
|
254
|
+
* (instantaneous velocity: position change over timestamp change between
|
|
255
|
+
* consecutive events, the touch-down counting as the first). The lift
|
|
256
|
+
* does not update it, and a finger at rest sends no events, so UIKit
|
|
257
|
+
* reports the last moving value after a pause; Astryx's release reads 0
|
|
258
|
+
* once the finger has rested (`spec:AST-100` FR2).
|
|
259
|
+
* @source measured: UIKit lab, iOS 26.2 simulator, ivar reads confirmed
|
|
260
|
+
* with HID touches, Oct 23 2026: fitted to all 69 velocity(in:) values of
|
|
261
|
+
* six HID streams (constant, accelerating, pauses before the lift) to 0.0
|
|
262
|
+
* pt/s
|
|
263
|
+
*/
|
|
264
|
+
currentWeight: {value: 0.2, unit: 'ratio'},
|
|
265
|
+
/**
|
|
266
|
+
* A scrolling surface's release (paging, a wheel) is this times the
|
|
267
|
+
* newest pan value plus the rest times the previous one
|
|
268
|
+
* (architecture:interaction-modality INV10).
|
|
269
|
+
* @source GUESS — architecture:interaction-modality INV10 states
|
|
270
|
+
* UIScrollView's release as 0.25 x the newest pan value + 0.75 x the
|
|
271
|
+
* previous one.
|
|
272
|
+
* @measure M-G14
|
|
273
|
+
*/
|
|
274
|
+
scrollReleaseWeight: {value: 0.25, unit: 'ratio'},
|
|
275
|
+
/**
|
|
276
|
+
* A contact that has not moved for longer than this before it lifts
|
|
277
|
+
* releases at 0 (spec:AST-100 FR2). Not a UIKit value: UIKit's filter
|
|
278
|
+
* never decays, so it flings after a rest.
|
|
279
|
+
* @source GUESS — Android VelocityTracker and Flutter VelocityTracker
|
|
280
|
+
* treat a pointer that has not moved for 40 ms as stopped.
|
|
281
|
+
* @measure M-G16
|
|
282
|
+
*/
|
|
283
|
+
stillness: {value: 40, unit: 'ms'},
|
|
284
|
+
} as const satisfies Record<string, GestureConstant>;
|
|
285
|
+
|
|
286
|
+
export const UIKIT_CLICK = {
|
|
287
|
+
/**
|
|
288
|
+
* Longest the system waits for the browser's click after a touch it
|
|
289
|
+
* swallows. iOS and Chromium deliver it right after `touchend`; this only
|
|
290
|
+
* bounds a click that never comes.
|
|
291
|
+
* @source GUESS — A safety bound, not a UIKit number.
|
|
292
|
+
* @measure M-G17
|
|
293
|
+
*/
|
|
294
|
+
strayClickWindow: {value: 1000, unit: 'ms'},
|
|
295
|
+
} as const satisfies Record<string, GestureConstant>;
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* Every group in one object, for a reader that needs several. A reader of
|
|
299
|
+
* one group imports it by name instead (`UIKIT_PAN`): object properties do
|
|
300
|
+
* not tree-shake, so this object bundles every group
|
|
301
|
+
* (`architecture:component-style-authoring` INV6).
|
|
302
|
+
*/
|
|
303
|
+
export const UIKIT_GESTURES = {
|
|
304
|
+
tap: UIKIT_TAP,
|
|
305
|
+
longPress: UIKIT_LONG_PRESS,
|
|
306
|
+
pan: UIKIT_PAN,
|
|
307
|
+
swipe: UIKIT_SWIPE,
|
|
308
|
+
pinch: UIKIT_PINCH,
|
|
309
|
+
rotation: UIKIT_ROTATION,
|
|
310
|
+
screenEdgePan: UIKIT_SCREEN_EDGE_PAN,
|
|
311
|
+
control: UIKIT_CONTROL,
|
|
312
|
+
press: UIKIT_PRESS,
|
|
313
|
+
velocity: UIKIT_VELOCITY,
|
|
314
|
+
click: UIKIT_CLICK,
|
|
315
|
+
} as const;
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* The feedback kinds UIKit's generators offer: UISelectionFeedbackGenerator,
|
|
319
|
+
* UIImpactFeedbackGenerator (.light .medium .heavy .soft .rigid) and
|
|
320
|
+
* UINotificationFeedbackGenerator (.success .warning .error).
|
|
321
|
+
* https://developer.apple.com/documentation/uikit/uifeedbackgenerator
|
|
322
|
+
*/
|
|
323
|
+
export const HAPTIC_FEEDBACK_KINDS = [
|
|
324
|
+
'selection',
|
|
325
|
+
'impactLight',
|
|
326
|
+
'impactMedium',
|
|
327
|
+
'impactHeavy',
|
|
328
|
+
'impactSoft',
|
|
329
|
+
'impactRigid',
|
|
330
|
+
'notificationSuccess',
|
|
331
|
+
'notificationWarning',
|
|
332
|
+
'notificationError',
|
|
333
|
+
] as const;
|
|
334
|
+
|
|
335
|
+
export type HapticFeedbackKind = (typeof HAPTIC_FEEDBACK_KINDS)[number];
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* `navigator.vibrate` patterns standing in for each kind where the platform
|
|
339
|
+
* has nothing better (Android browsers). Not UIKit numbers: a vibration motor
|
|
340
|
+
* cannot render a Taptic Engine waveform, so these only keep the relative
|
|
341
|
+
* strengths in order.
|
|
342
|
+
* @source GUESS — No UIKit equivalent exists for a vibration motor;
|
|
343
|
+
* durations only order the strengths.
|
|
344
|
+
* @measure M-G18
|
|
345
|
+
*/
|
|
346
|
+
export const HAPTIC_VIBRATION_PATTERNS: Record<
|
|
347
|
+
HapticFeedbackKind,
|
|
348
|
+
GestureConstant<ReadonlyArray<number>>
|
|
349
|
+
> = {
|
|
350
|
+
selection: {value: [5], unit: 'ms'},
|
|
351
|
+
impactLight: {value: [8], unit: 'ms'},
|
|
352
|
+
impactMedium: {value: [12], unit: 'ms'},
|
|
353
|
+
impactHeavy: {value: [18], unit: 'ms'},
|
|
354
|
+
impactSoft: {value: [10], unit: 'ms'},
|
|
355
|
+
impactRigid: {value: [6], unit: 'ms'},
|
|
356
|
+
notificationSuccess: {value: [8, 60, 12], unit: 'ms'},
|
|
357
|
+
notificationWarning: {value: [12, 80, 12], unit: 'ms'},
|
|
358
|
+
notificationError: {value: [12, 50, 12, 50, 18], unit: 'ms'},
|
|
359
|
+
};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file index.ts
|
|
5
|
+
* @input The domain files of the UIKit constants table
|
|
6
|
+
* @output Re-exports `springs` and one constant per spring (`SHEET_PRESENT_SPRING`,
|
|
7
|
+
* …), `scroll`, `timing`, `navigation` and the
|
|
8
|
+
* gesture thresholds (one `UIKIT_*` group per recognizer, their union
|
|
9
|
+
* `UIKIT_GESTURES`, and the haptic tables)
|
|
10
|
+
* @position Entry of the UIKit constants table (motion/uikit). Internal to
|
|
11
|
+
* core: not exported from the package entry point
|
|
12
|
+
*
|
|
13
|
+
* THE table (`spec:AST-094` FR1, FR2): every spring, duration, deceleration rate, rubber-band
|
|
14
|
+
* constant, timing curve and gesture threshold a touch presentation uses
|
|
15
|
+
* comes from here, with its source next to it. Components never carry their
|
|
16
|
+
* own numbers.
|
|
17
|
+
*
|
|
18
|
+
* SYNC: When a domain file is added, re-export it here and list it in
|
|
19
|
+
* /packages/core/src/motion/README.md.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
export {
|
|
23
|
+
HAPTIC_FEEDBACK_KINDS,
|
|
24
|
+
HAPTIC_VIBRATION_PATTERNS,
|
|
25
|
+
UIKIT_CLICK,
|
|
26
|
+
UIKIT_CONTROL,
|
|
27
|
+
UIKIT_GESTURES,
|
|
28
|
+
UIKIT_LONG_PRESS,
|
|
29
|
+
UIKIT_PAN,
|
|
30
|
+
UIKIT_PINCH,
|
|
31
|
+
UIKIT_PRESS,
|
|
32
|
+
UIKIT_ROTATION,
|
|
33
|
+
UIKIT_SCREEN_EDGE_PAN,
|
|
34
|
+
UIKIT_SWIPE,
|
|
35
|
+
UIKIT_TAP,
|
|
36
|
+
UIKIT_VELOCITY,
|
|
37
|
+
type GestureConstant,
|
|
38
|
+
type GestureConstantUnit,
|
|
39
|
+
type HapticFeedbackKind,
|
|
40
|
+
} from './gestures';
|
|
41
|
+
export {navigation, registerNavigationTable} from './navigation';
|
|
42
|
+
export {registerScrollTable, scroll} from './scroll';
|
|
43
|
+
export {
|
|
44
|
+
ACTION_SHEET_DISMISS_SPRING,
|
|
45
|
+
ACTION_SHEET_PRESENT_SPRING,
|
|
46
|
+
ALERT_DISMISS_SPRING,
|
|
47
|
+
ALERT_PRESENT_SPRING,
|
|
48
|
+
BANNER_SPRING,
|
|
49
|
+
CONTEXT_MENU_DISMISS_SPRING,
|
|
50
|
+
CONTEXT_MENU_LIFT_SPRING,
|
|
51
|
+
DIRECT_CHANGE_SPRING,
|
|
52
|
+
EMPHASIS_SPRING,
|
|
53
|
+
FINGER_TRACKING_SPRING,
|
|
54
|
+
KEYBOARD_SPRING,
|
|
55
|
+
MENU_CLOSE_SPRING,
|
|
56
|
+
MENU_OPEN_SPRING,
|
|
57
|
+
MENU_REDUCED_MOTION_SPRING,
|
|
58
|
+
NAVIGATION_BAR_ELEMENTS_SPRING,
|
|
59
|
+
NAVIGATION_INTERACTIVE_POP_FINISH_SPRING,
|
|
60
|
+
NAVIGATION_POP_SPRING,
|
|
61
|
+
NAVIGATION_PUSH_SPRING,
|
|
62
|
+
QUICK_CHANGE_SPRING,
|
|
63
|
+
SEGMENTED_THUMB_SPRING,
|
|
64
|
+
SETTLE_SPRING,
|
|
65
|
+
SHEET_DETENT_SPRING,
|
|
66
|
+
SHEET_DISMISS_SPRING,
|
|
67
|
+
SHEET_DISMISS_SWIPE_SPRING,
|
|
68
|
+
SHEET_PRESENT_SPRING,
|
|
69
|
+
SHEET_RELEASE_FAST_SPRING,
|
|
70
|
+
STATE_CHANGE_SPRING,
|
|
71
|
+
SUB_MENU_BACK_SPRING,
|
|
72
|
+
SUB_MENU_OPEN_SPRING,
|
|
73
|
+
SWITCH_THUMB_MOVE_SPRING,
|
|
74
|
+
SWITCH_THUMB_STRETCH_SPRING,
|
|
75
|
+
TIMED_CHANGE_SPRING,
|
|
76
|
+
VIEW_CHANGE_SPRING,
|
|
77
|
+
registerSpringsTable,
|
|
78
|
+
springs,
|
|
79
|
+
} from './springs';
|
|
80
|
+
export {registerTimingTable, timing} from './timing';
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file navigation.ts
|
|
5
|
+
* @input Nothing; data only
|
|
6
|
+
* @output Exports `navigation`: UINavigationController's push / pop geometry,
|
|
7
|
+
* starting velocity, dimming, transition clock and the interactive pop's
|
|
8
|
+
* finish rule
|
|
9
|
+
* @position The navigation domain of the UIKit constants table
|
|
10
|
+
* (motion/uikit); its springs are `springs.navigationPush`,
|
|
11
|
+
* `springs.navigationPop`, `springs.navigationInteractivePopFinish` and
|
|
12
|
+
* `springs.navigationBarElements`
|
|
13
|
+
*
|
|
14
|
+
* On iOS 26.2 UIKit moves the cards by writing their positions into Core
|
|
15
|
+
* Animation presentation modifiers every frame from the main thread; the
|
|
16
|
+
* values below are fitted to those writes. The web version runs the same
|
|
17
|
+
* curves on the compositor, which keeps them moving while the main thread is
|
|
18
|
+
* busy.
|
|
19
|
+
*
|
|
20
|
+
* Every leaf carries one or more `@source`; webkit and GUESS values also carry
|
|
21
|
+
* the `@measure` task that will confirm or replace them. uikit.test.ts
|
|
22
|
+
* enforces both.
|
|
23
|
+
*
|
|
24
|
+
* SYNC: When modified, update /packages/core/src/motion/MEASUREMENTS.md
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
import {registerMotionTable} from '../roles';
|
|
28
|
+
export const navigation = {
|
|
29
|
+
/**
|
|
30
|
+
* The push and pop springs start moving at this many travels per second
|
|
31
|
+
* (3527 pt/s on a 402 pt card), not from rest.
|
|
32
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
33
|
+
* iPhone 17 Pro, CAPresentationModifier (value, velocity) fit, Oct 23 2026
|
|
34
|
+
*/
|
|
35
|
+
pushVelocity: 8.773,
|
|
36
|
+
/**
|
|
37
|
+
* Where the card underneath ends, as a fraction of the container width:
|
|
38
|
+
* it moves from 0 to −0.3 W while the incoming card moves from W to 0.
|
|
39
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
40
|
+
* iPhone 17 Pro, CAPresentationModifier values, Oct 23 2026
|
|
41
|
+
*/
|
|
42
|
+
parallax: -0.3,
|
|
43
|
+
/**
|
|
44
|
+
* The dimming over the card underneath: black at this alpha, its opacity
|
|
45
|
+
* going 0 → 1 on the push spring.
|
|
46
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
47
|
+
* iPhone 17 Pro, _UIParallaxDimmingView read, Oct 23 2026
|
|
48
|
+
*/
|
|
49
|
+
dimmingAlpha: 0.1,
|
|
50
|
+
/**
|
|
51
|
+
* The transition context's duration, in ms; it paces completion callbacks
|
|
52
|
+
* (a linear property animator), not the cards.
|
|
53
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
54
|
+
* iPhone 17 Pro, transitionDuration read, Oct 23 2026
|
|
55
|
+
*/
|
|
56
|
+
transitionMs: 350,
|
|
57
|
+
/**
|
|
58
|
+
* The interactive pop finishes when progress + this × velocity passes
|
|
59
|
+
* `interactivePopFinishThreshold` (progress in widths, velocity in widths
|
|
60
|
+
* per second): seconds of projection.
|
|
61
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
62
|
+
* iPhone 17 Pro, the pop decision method hooked over 61 controlled
|
|
63
|
+
* releases: the rule matches 58; the 3 misses all finished where it says
|
|
64
|
+
* cancel, Oct 23 2026
|
|
65
|
+
*/
|
|
66
|
+
interactivePopFinishProjection: 0.35,
|
|
67
|
+
/**
|
|
68
|
+
* The progress the projected release must pass to finish the pop (a still
|
|
69
|
+
* finger at 0.475 cancels).
|
|
70
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
71
|
+
* iPhone 17 Pro, the pop decision method over 61 releases, Oct 23 2026
|
|
72
|
+
*/
|
|
73
|
+
interactivePopFinishThreshold: 0.5,
|
|
74
|
+
} as const;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Registers this table with the motion registry (motion/roles.ts). It lists
|
|
78
|
+
* no role: spec:AST-094 FR4 names none of its values, so each plays as
|
|
79
|
+
* measured. Nothing registers on import, and a second call does nothing.
|
|
80
|
+
*/
|
|
81
|
+
export function registerNavigationTable(): void {
|
|
82
|
+
registerMotionTable('navigation', navigation);
|
|
83
|
+
}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file scroll.ts
|
|
5
|
+
* @input Nothing; data only
|
|
6
|
+
* @output Exports `scroll`, the UIScrollView constants: deceleration rates,
|
|
7
|
+
* the rubber-band coefficient, the bounce-back spring, paging and the
|
|
8
|
+
* content-touch delay
|
|
9
|
+
* @position The scroll domain of the UIKit constants table (motion/uikit);
|
|
10
|
+
* read by the motion math and components
|
|
11
|
+
*
|
|
12
|
+
* Every leaf carries one `@source` (apple-docs | wwdc | webkit | measured |
|
|
13
|
+
* GUESS); webkit and GUESS values also carry the `@measure` task that will
|
|
14
|
+
* confirm or replace them (listed in MEASUREMENTS.md). uikit.test.ts
|
|
15
|
+
* enforces both.
|
|
16
|
+
*
|
|
17
|
+
* SYNC: When modified, update:
|
|
18
|
+
* - /packages/core/src/motion/MEASUREMENTS.md (measurement tasks)
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import {registerMotionTable} from '../roles';
|
|
22
|
+
|
|
23
|
+
// The value of `scroll.delaysContentTouchesMs` (sourced there), its own
|
|
24
|
+
// export so the press clocks read it without the rest of the table
|
|
25
|
+
// (`architecture:component-style-authoring` INV6).
|
|
26
|
+
export const DELAYS_CONTENT_TOUCHES_MS = 150;
|
|
27
|
+
|
|
28
|
+
export const scroll = {
|
|
29
|
+
decelerationRate: {
|
|
30
|
+
/**
|
|
31
|
+
* Normal deceleration: the release velocity is multiplied by this every
|
|
32
|
+
* millisecond, as a continuous exponential (UIScrollView keeps ln r,
|
|
33
|
+
* −0.002002, and velocities in pt/ms). The scroll view's own
|
|
34
|
+
* target for a release (`scrollViewWillEndDragging`) is
|
|
35
|
+
* v · r ÷ (1 − r), within 1 %: WWDC18 803's projection function.
|
|
36
|
+
* @source apple-docs https://developer.apple.com/documentation/uikit/uiscrollview/decelerationrate-swift.struct/normal
|
|
37
|
+
* (the constant, not its number)
|
|
38
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
39
|
+
* iPhone 17 Pro, rawValue read, Oct 23 2026 (also a new scroll view's
|
|
40
|
+
* decelerationRate)
|
|
41
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
42
|
+
* iPhone 17 Pro, deceleration ivars read mid-coast
|
|
43
|
+
* (`_decelerationFactor` 0.998, `_decelerationLnFactorV` −0.002002, the
|
|
44
|
+
* velocity decaying 0.4343 over 400 ms) and willEndDragging targets,
|
|
45
|
+
* Oct 23 2026
|
|
46
|
+
*/
|
|
47
|
+
normal: 0.998,
|
|
48
|
+
/**
|
|
49
|
+
* Fast deceleration (`UIScrollView.DecelerationRate.fast`).
|
|
50
|
+
* @source apple-docs https://developer.apple.com/documentation/uikit/uiscrollview/decelerationrate-swift.struct/fast
|
|
51
|
+
* (the constant, not its number)
|
|
52
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
53
|
+
* iPhone 17 Pro, rawValue read and `_decelerationFactor` 0.99 (ln
|
|
54
|
+
* −0.01005) mid-coast, Oct 23 2026
|
|
55
|
+
*/
|
|
56
|
+
fast: 0.99,
|
|
57
|
+
},
|
|
58
|
+
rubberBand: {
|
|
59
|
+
/**
|
|
60
|
+
* c in b = (1 − 1 ÷ (x·c ÷ d + 1))·d, d = the scroll view's size on the
|
|
61
|
+
* axis, x = the finger's travel past the edge after the
|
|
62
|
+
* pan's 10 pt hysteresis.
|
|
63
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
64
|
+
* iPhone 17 Pro, UIScrollView offsets released 100 / 300 / 600 pt past
|
|
65
|
+
* the edge of an 874 pt view: 47 / 135 / 236.67 against the formula's
|
|
66
|
+
* 46.85 / 134.9 / 236.6, Oct 23 2026
|
|
67
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
68
|
+
* iPhone 17 Pro, sheet drags hooked: UISheetPresentationController
|
|
69
|
+
* passes `withRubberBandCoefficient: 0.55` on every drag, Oct 23 2026
|
|
70
|
+
*/
|
|
71
|
+
coefficient: 0.55,
|
|
72
|
+
},
|
|
73
|
+
/**
|
|
74
|
+
* The spring that returns content released past an edge, and that catches
|
|
75
|
+
* a coast hitting an edge (its velocity handed to the spring).
|
|
76
|
+
* @source GUESS — critically damped as in I. Lobanov's UIScrollView
|
|
77
|
+
* reimplementation (no oscillation at the bound); pace from SwiftUI's
|
|
78
|
+
* `.smooth` default duration. Measured so far (iOS 26.2 simulator, Oct 23
|
|
79
|
+
* 2026): back to the edge in about 0.5 s with no overshoot, but no single
|
|
80
|
+
* spring from rest fits releases 47, 135 and 237 pt past the edge, so
|
|
81
|
+
* UIKit's bounce is not a plain spring; the model is still to fit
|
|
82
|
+
* @measure M-S3
|
|
83
|
+
*/
|
|
84
|
+
bounce: {duration: 0.5, bounce: 0},
|
|
85
|
+
paging: {
|
|
86
|
+
/**
|
|
87
|
+
* Deceleration rate a paging release is projected with to pick the next
|
|
88
|
+
* page.
|
|
89
|
+
* @source GUESS — UIScrollView paging behaves like a fast scroll view;
|
|
90
|
+
* the rate it uses internally is not documented
|
|
91
|
+
* @measure M-PG1
|
|
92
|
+
*/
|
|
93
|
+
projectionRate: 0.99,
|
|
94
|
+
/**
|
|
95
|
+
* The spring that carries a paging scroll view onto its page.
|
|
96
|
+
* @source GUESS — SwiftUI `.smooth` default until measured
|
|
97
|
+
* @measure M-PG1
|
|
98
|
+
*/
|
|
99
|
+
snap: {duration: 0.5, bounce: 0},
|
|
100
|
+
},
|
|
101
|
+
/**
|
|
102
|
+
* `delaysContentTouches`: how long a scroll view holds a touch-down from
|
|
103
|
+
* its content while it decides whether the touch is a scroll (no highlight
|
|
104
|
+
* flash on a quick scroll), in ms.
|
|
105
|
+
* @source wwdc 2014-235 "Advanced Scrollviews and Touch Handling
|
|
106
|
+
* Techniques": the touch-delay recognizer UIScrollView uses runs "a
|
|
107
|
+
* pretty short timer … Let's say .15 seconds" (presenter's example value)
|
|
108
|
+
* @source measured: Settings and Contacts, iOS 26.2, simulator driven with
|
|
109
|
+
* real HID touches at 60 fps, recorded with the touch press model
|
|
110
|
+
* (PRESS_ONSET_MS in packages/core/src/utils/pressGesture.ts, 2026-10-06)
|
|
111
|
+
*/
|
|
112
|
+
delaysContentTouchesMs: DELAYS_CONTENT_TOUCHES_MS,
|
|
113
|
+
/**
|
|
114
|
+
* Scroll-to-top after a status-bar tap: not a spring. The offset
|
|
115
|
+
* approaches the top as 1 − e^(−9.7 t) whatever the distance (done in about
|
|
116
|
+
* 1.6 s for 500, 2000 or 8000 pt), which is a decay at this per-millisecond
|
|
117
|
+
* rate (e^(−0.0097)) whose rest point is the top: a decay with a
|
|
118
|
+
* starting velocity of 9.7 × the distance per second. A tap starts it, not
|
|
119
|
+
* a throw, so under Reduce Motion it is a transition, not a coast: it
|
|
120
|
+
* cross-fades to the top within 200 ms on a coarse pointer (DR2) and jumps
|
|
121
|
+
* there on any other (DR3). Only momentum that continues a throw keeps
|
|
122
|
+
* decaying under Reduce Motion (`design:reduced-motion` DR2, DEC-2), so a
|
|
123
|
+
* component checks for Reduce Motion before it plays this decay.
|
|
124
|
+
* @source measured: UIKit lab (injected host app), iOS 26.2 simulator,
|
|
125
|
+
* iPhone 17 Pro, setContentOffset log after status-bar taps (starts 85–95
|
|
126
|
+
* ms after the tap), Oct 23 2026
|
|
127
|
+
*/
|
|
128
|
+
scrollToTopRate: 0.99035,
|
|
129
|
+
} as const;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Registers this table with the motion registry (motion/roles.ts). It lists
|
|
133
|
+
* no role: spec:AST-094 FR4 names none of its values, so each plays as
|
|
134
|
+
* measured. Nothing registers on import, and a second call does nothing.
|
|
135
|
+
*/
|
|
136
|
+
export function registerScrollTable(): void {
|
|
137
|
+
registerMotionTable('scroll', scroll, {
|
|
138
|
+
// Arbitration: who gets the touch, not how anything moves.
|
|
139
|
+
exclude: ['delaysContentTouchesMs'],
|
|
140
|
+
});
|
|
141
|
+
}
|