@astryxdesign/core 0.7.6-canary.f73623d → 0.7.6-canary.f77aaf2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AppShell/AppShell.d.ts.map +1 -1
- package/dist/AppShell/AppShell.js +0 -6
- package/dist/Badge/Badge.d.ts.map +1 -1
- package/dist/Badge/Badge.js +2 -1
- package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheet.js +6 -2
- package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetPanel.js +36 -9
- package/dist/BottomSheet/BottomSheetSwitcher.d.ts +1 -1
- package/dist/BottomSheet/BottomSheetSwitcher.js +1 -1
- package/dist/BottomSheet/useMobileKeyboard.d.ts.map +1 -1
- package/dist/BottomSheet/useMobileKeyboard.js +44 -8
- package/dist/BottomSheet/useSheetGestures.d.ts +36 -6
- package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
- package/dist/BottomSheet/useSheetGestures.js +67 -10
- package/dist/Breadcrumbs/BreadcrumbItem.js +4 -2
- package/dist/Center/Center.d.ts +1 -1
- package/dist/Center/Center.js +1 -1
- package/dist/Chat/ChatComposer.d.ts.map +1 -1
- package/dist/Chat/ChatComposer.js +10 -5
- package/dist/Chat/ChatComposerDrawer.d.ts +1 -1
- package/dist/Chat/ChatComposerDrawer.js +1 -1
- package/dist/Chat/ChatComposerInput.d.ts +1 -1
- package/dist/Chat/ChatComposerInput.js +1 -1
- package/dist/Chat/ChatLayout.d.ts.map +1 -1
- package/dist/Chat/ChatLayout.js +1 -1
- package/dist/Chat/ChatMessageList.d.ts.map +1 -1
- package/dist/Chat/ChatMessageList.js +3 -1
- package/dist/Chat/ChatPastedTextToken.d.ts.map +1 -1
- package/dist/Chat/ChatPastedTextToken.js +15 -4
- package/dist/Chat/ChatSystemMessage.d.ts.map +1 -1
- package/dist/Chat/ChatSystemMessage.js +2 -1
- package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxList.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxList.js +5 -2
- package/dist/CheckboxList/CheckboxListContext.d.ts +8 -0
- package/dist/CheckboxList/CheckboxListContext.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
- package/dist/CheckboxList/CheckboxListItem.js +5 -2
- package/dist/Code/Code.d.ts +1 -1
- package/dist/Code/Code.js +1 -1
- package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPaletteInput.js +8 -5
- package/dist/ComplexSelector/ComplexSelector.d.ts +2 -2
- package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
- package/dist/ComplexSelector/ComplexSelector.js +7 -2
- package/dist/DateInput/DateInput.d.ts +3 -2
- package/dist/DateInput/DateInput.d.ts.map +1 -1
- package/dist/DateInput/MonthScroller.d.ts.map +1 -1
- package/dist/DateInput/MonthScroller.js +17 -18
- package/dist/DateRangeInput/DateRangeInput.d.ts +3 -2
- package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/DateRangeInput/DateRangeInput.js +8 -4
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +10 -15
- package/dist/Drawer/Drawer.d.ts +1 -1
- package/dist/Drawer/Drawer.js +1 -1
- package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenu.js +19 -8
- package/dist/DropdownMenu/DropdownMenuGroup.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuGroup.js +2 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.js +1 -1
- package/dist/DropdownMenu/MenuBottomSheetActionList.d.ts.map +1 -1
- package/dist/DropdownMenu/MenuBottomSheetActionList.js +9 -3
- package/dist/Field/Field.d.ts +2 -2
- package/dist/Field/Field.d.ts.map +1 -1
- package/dist/Field/FieldLabel.d.ts.map +1 -1
- package/dist/Field/FieldLabel.js +19 -2
- package/dist/Field/PanelSearchInput.d.ts.map +1 -1
- package/dist/Field/PanelSearchInput.js +10 -5
- package/dist/Field/fieldStatusPlacement.d.ts +15 -0
- package/dist/Field/fieldStatusPlacement.d.ts.map +1 -0
- package/dist/Field/fieldStatusPlacement.js +1 -0
- package/dist/FieldStatus/FieldStatus.d.ts +16 -28
- package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
- package/dist/FieldStatus/FieldStatus.js +25 -3
- package/dist/FieldStatus/index.d.ts +7 -0
- package/dist/FieldStatus/index.d.ts.map +1 -1
- package/dist/FileInput/FileInput.d.ts +10 -2
- package/dist/FileInput/FileInput.d.ts.map +1 -1
- package/dist/FileInput/FileInput.js +86 -35
- package/dist/Item/Item.js +5 -5
- package/dist/Item/ItemSwipeLayer.d.ts.map +1 -1
- package/dist/Item/ItemSwipeLayer.js +8 -2
- package/dist/Layer/useTouchTrigger.d.ts +35 -3
- package/dist/Layer/useTouchTrigger.d.ts.map +1 -1
- package/dist/Layer/useTouchTrigger.js +80 -11
- package/dist/Link/Link.d.ts.map +1 -1
- package/dist/Link/Link.js +10 -1
- package/dist/Markdown/Markdown.d.ts.map +1 -1
- package/dist/Markdown/Markdown.js +1 -0
- package/dist/MetadataList/MetadataList.d.ts.map +1 -1
- package/dist/MetadataList/MetadataList.js +2 -1
- package/dist/MetadataList/MetadataListItem.d.ts.map +1 -1
- package/dist/MetadataList/MetadataListItem.js +2 -1
- package/dist/MultiSelector/MultiSelector.d.ts +2 -2
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +35 -25
- package/dist/MultiSelector/hooks.d.ts.map +1 -1
- package/dist/MultiSelector/hooks.js +4 -2
- package/dist/NumberInput/NumberInput.d.ts +3 -2
- package/dist/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/NumberInput/NumberInput.js +11 -15
- package/dist/OverflowList/OverflowList.d.ts.map +1 -1
- package/dist/OverflowList/OverflowList.js +2 -1
- package/dist/Pagination/Pagination.d.ts.map +1 -1
- package/dist/Popover/Popover.js +2 -2
- package/dist/Popover/usePopover.d.ts +7 -1
- package/dist/Popover/usePopover.d.ts.map +1 -1
- package/dist/Popover/usePopover.js +8 -2
- package/dist/PowerSearch/PowerSearch.d.ts +3 -2
- package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.js +4 -2
- package/dist/RadioList/RadioList.d.ts.map +1 -1
- package/dist/RadioList/RadioList.js +7 -2
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +8 -2
- package/dist/RadioList/RadioListReasonContext.d.ts +2 -0
- package/dist/RadioList/RadioListReasonContext.d.ts.map +1 -0
- package/dist/RadioList/RadioListReasonContext.js +22 -0
- package/dist/Resizable/useResizable.d.ts.map +1 -1
- package/dist/Resizable/useResizable.js +53 -10
- package/dist/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControl.js +22 -5
- package/dist/SegmentedControl/SegmentedControlContext.d.ts +6 -0
- package/dist/SegmentedControl/SegmentedControlContext.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.js +16 -3
- package/dist/Selector/Selector.d.ts +3 -3
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +14 -8
- package/dist/Selector/hooks.js +2 -2
- package/dist/Selector/useSelectorPresentation.d.ts +7 -1
- package/dist/Selector/useSelectorPresentation.d.ts.map +1 -1
- package/dist/Selector/useSelectorPresentation.js +2 -1
- package/dist/SideNav/railMotion.d.ts +5 -5
- package/dist/SideNav/railMotion.d.ts.map +1 -1
- package/dist/SideNav/railMotion.js +69 -177
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +100 -17
- package/dist/Table/BaseTable.d.ts.map +1 -1
- package/dist/Table/BaseTable.js +7 -6
- package/dist/Table/glidingDivider.d.ts +8 -1
- package/dist/Table/glidingDivider.d.ts.map +1 -1
- package/dist/Table/glidingDivider.js +8 -3
- package/dist/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
- package/dist/Table/plugins/stickyColumns/useTableStickyColumns.d.ts.map +1 -1
- package/dist/Table/plugins/stickyColumns/useTableStickyColumns.js +1 -2
- package/dist/TextArea/TextArea.d.ts +2 -2
- package/dist/TextArea/TextArea.d.ts.map +1 -1
- package/dist/TextInput/TextInput.d.ts +3 -2
- package/dist/TextInput/TextInput.d.ts.map +1 -1
- package/dist/TimeInput/TimeInput.d.ts +3 -2
- package/dist/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/Timer/Timer.js +1 -1
- package/dist/Toast/useToast.d.ts.map +1 -1
- package/dist/Toast/useToast.js +8 -2
- package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
- package/dist/ToggleButton/ToggleButton.js +11 -3
- package/dist/Token/Token.d.ts +1 -1
- package/dist/Token/Token.d.ts.map +1 -1
- package/dist/Token/Token.js +15 -0
- package/dist/Tokenizer/Tokenizer.d.ts +3 -2
- package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.js +73 -50
- package/dist/Tokenizer/TokenizerBottomSheet.d.ts +1 -1
- package/dist/Tokenizer/TokenizerBottomSheet.d.ts.map +1 -1
- package/dist/Tokenizer/TokenizerBottomSheet.js +9 -15
- package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
- package/dist/TopNav/TopNavMegaMenu.js +4 -3
- package/dist/TreeList/TreeList.d.ts.map +1 -1
- package/dist/TreeList/TreeList.js +6 -3
- package/dist/TreeList/TreeListItem.d.ts.map +1 -1
- package/dist/TreeList/TreeListItem.js +4 -3
- package/dist/Typeahead/BaseTypeahead.d.ts +4 -1
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +262 -43
- package/dist/Typeahead/Typeahead.d.ts +3 -2
- package/dist/Typeahead/Typeahead.d.ts.map +1 -1
- package/dist/Typeahead/Typeahead.js +36 -10
- package/dist/Typeahead/index.d.ts +1 -1
- package/dist/Typeahead/index.d.ts.map +1 -1
- package/dist/Typeahead/types.d.ts +26 -3
- package/dist/Typeahead/types.d.ts.map +1 -1
- package/dist/astryx.css +1 -2
- package/dist/gestures/haptics.d.ts.map +1 -1
- package/dist/gestures/haptics.js +1 -5
- package/dist/hooks/menuPressMarker.d.ts +13 -0
- package/dist/hooks/menuPressMarker.d.ts.map +1 -0
- package/dist/hooks/menuPressMarker.js +15 -0
- package/dist/hooks/useClickableContainer.d.ts +24 -4
- package/dist/hooks/useClickableContainer.d.ts.map +1 -1
- package/dist/hooks/useClickableContainer.js +41 -14
- package/dist/hooks/useFocusReturnVisibility.d.ts +8 -1
- package/dist/hooks/useFocusReturnVisibility.d.ts.map +1 -1
- package/dist/hooks/useFocusReturnVisibility.js +14 -8
- package/dist/hooks/useInputStatusIcon.d.ts +2 -2
- package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
- package/dist/hooks/useInputStatusIcon.js +1 -2
- package/dist/hooks/useListFocus.d.ts +19 -0
- package/dist/hooks/useListFocus.d.ts.map +1 -1
- package/dist/hooks/useListFocus.js +26 -1
- package/dist/hooks/useMenuPress.d.ts +2 -2
- package/dist/hooks/useMenuPress.d.ts.map +1 -1
- package/dist/hooks/useMenuPress.js +5 -6
- package/dist/hooks/useTreeFocus.d.ts.map +1 -1
- package/dist/hooks/useTreeFocus.js +13 -5
- package/dist/hooks/useTypeahead.d.ts +3 -1
- package/dist/hooks/useTypeahead.d.ts.map +1 -1
- package/dist/hooks/useTypeahead.js +21 -15
- package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/en.generated.js +6 -0
- package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
- package/dist/i18n/generated-locales/pseudo.generated.js +6 -0
- package/dist/i18n/useListFormatter.d.ts +9 -0
- package/dist/i18n/useListFormatter.d.ts.map +1 -0
- package/dist/i18n/useListFormatter.js +41 -0
- package/dist/motion/animatedLayout.d.ts +130 -5
- package/dist/motion/animatedLayout.d.ts.map +1 -1
- package/dist/motion/animatedLayout.js +771 -44
- package/dist/motion/animator.d.ts.map +1 -1
- package/dist/motion/animator.js +38 -2
- package/dist/privateAttributes/segmentDisabled.stylex.d.ts +5 -0
- package/dist/privateAttributes/segmentDisabled.stylex.d.ts.map +1 -0
- package/dist/privateAttributes/segmentDisabled.stylex.js +28 -0
- package/dist/theme/Theme.d.ts +10 -0
- package/dist/theme/Theme.d.ts.map +1 -1
- package/dist/theme/Theme.js +8 -4
- package/dist/theme/useTheme.d.ts.map +1 -1
- package/dist/theme/useTheme.js +7 -1
- package/dist/utils/focusReturn.d.ts +5 -3
- package/dist/utils/focusReturn.d.ts.map +1 -1
- package/dist/utils/focusReturn.js +6 -4
- package/dist/utils/getNodeText.d.ts.map +1 -1
- package/dist/utils/getNodeText.js +2 -1
- package/dist/utils/interactionModality.d.ts +78 -7
- package/dist/utils/interactionModality.d.ts.map +1 -1
- package/dist/utils/interactionModality.js +125 -42
- package/dist/utils/pressDisabled.d.ts +21 -0
- package/dist/utils/pressDisabled.d.ts.map +1 -0
- package/dist/utils/pressDisabled.js +32 -0
- package/dist/utils/pressFeedback.d.ts.map +1 -1
- package/dist/utils/pressFeedback.js +5 -3
- package/dist/utils/typeaheadMatch.d.ts +24 -0
- package/dist/utils/typeaheadMatch.d.ts.map +1 -0
- package/dist/utils/typeaheadMatch.js +112 -0
- package/locales/en.json +25 -1
- package/locales/pseudo.json +18 -0
- package/package.json +19 -5
- package/src/AppShell/AppShell.tsx +0 -9
- package/src/Badge/Badge.tsx +2 -1
- package/src/BottomSheet/BottomSheet.tsx +4 -2
- package/src/BottomSheet/BottomSheetPanel.tsx +39 -8
- package/src/BottomSheet/BottomSheetSwitcher.tsx +1 -1
- package/src/BottomSheet/useMobileKeyboard.ts +51 -10
- package/src/BottomSheet/useSheetGestures.ts +92 -15
- package/src/Breadcrumbs/BreadcrumbItem.tsx +2 -1
- package/src/Center/Center.tsx +1 -1
- package/src/Chat/ChatComposer.tsx +7 -10
- package/src/Chat/ChatComposerDrawer.tsx +1 -1
- package/src/Chat/ChatComposerInput.tsx +1 -1
- package/src/Chat/ChatLayout.tsx +1 -6
- package/src/Chat/ChatMessageList.tsx +1 -0
- package/src/Chat/ChatPastedTextToken.tsx +14 -4
- package/src/Chat/ChatSystemMessage.tsx +4 -1
- package/src/Chat/ChatToolCalls.tsx +5 -0
- package/src/CheckboxList/CheckboxList.tsx +7 -1
- package/src/CheckboxList/CheckboxListContext.tsx +8 -0
- package/src/CheckboxList/CheckboxListItem.tsx +8 -2
- package/src/Code/Code.tsx +1 -1
- package/src/CommandPalette/CommandPaletteInput.tsx +5 -8
- package/src/ComplexSelector/ComplexSelector.tsx +22 -4
- package/src/DateInput/DateInput.tsx +2 -2
- package/src/DateInput/MonthScroller.tsx +15 -17
- package/src/DateRangeInput/DateRangeInput.tsx +20 -5
- package/src/Dialog/Dialog.tsx +9 -25
- package/src/Drawer/Drawer.tsx +1 -1
- package/src/DropdownMenu/DropdownMenu.tsx +24 -9
- package/src/DropdownMenu/DropdownMenuGroup.tsx +2 -1
- package/src/DropdownMenu/DropdownMenuSubMenu.tsx +3 -1
- package/src/DropdownMenu/MenuBottomSheetActionList.tsx +6 -3
- package/src/Field/Field.doc.mjs +2 -1
- package/src/Field/Field.tsx +2 -2
- package/src/Field/FieldLabel.doc.mjs +4 -2
- package/src/Field/FieldLabel.tsx +18 -2
- package/src/Field/PanelSearchInput.tsx +7 -8
- package/src/Field/fieldStatusPlacement.ts +18 -0
- package/src/FieldStatus/FieldStatus.tsx +33 -3
- package/src/FieldStatus/index.ts +7 -0
- package/src/FileInput/FileInput.doc.mjs +3 -3
- package/src/FileInput/FileInput.tsx +103 -36
- package/src/HoverCard/HoverCard.doc.mjs +3 -3
- package/src/HoverCard/useHoverCard.doc.mjs +1 -1
- package/src/Item/Item.tsx +5 -5
- package/src/Item/ItemSwipeLayer.tsx +8 -1
- package/src/Layer/useTouchTrigger.ts +107 -18
- package/src/Link/Link.tsx +9 -2
- package/src/Markdown/Markdown.tsx +1 -0
- package/src/MetadataList/MetadataList.tsx +4 -2
- package/src/MetadataList/MetadataListItem.tsx +2 -1
- package/src/MultiSelector/MultiSelector.tsx +57 -36
- package/src/MultiSelector/hooks.ts +7 -5
- package/src/NumberInput/NumberInput.tsx +13 -20
- package/src/OverflowList/OverflowList.tsx +2 -1
- package/src/Pagination/Pagination.tsx +1 -0
- package/src/Popover/Popover.tsx +2 -2
- package/src/Popover/usePopover.tsx +7 -2
- package/src/PowerSearch/PowerSearch.tsx +4 -2
- package/src/RadioList/RadioList.tsx +13 -2
- package/src/RadioList/RadioListItem.tsx +9 -1
- package/src/RadioList/RadioListReasonContext.ts +25 -0
- package/src/Resizable/useResizable.ts +50 -7
- package/src/SegmentedControl/SegmentedControl.tsx +43 -8
- package/src/SegmentedControl/SegmentedControlContext.ts +6 -0
- package/src/SegmentedControl/SegmentedControlItem.tsx +12 -1
- package/src/Selector/Selector.tsx +23 -9
- package/src/Selector/hooks.ts +2 -2
- package/src/Selector/useSelectorPresentation.ts +8 -1
- package/src/SideNav/railMotion.ts +73 -179
- package/src/Slider/Slider.tsx +116 -19
- package/src/Table/BaseTable.tsx +10 -6
- package/src/Table/glidingDivider.ts +8 -3
- package/src/Table/plugins/sortable/useTableSortable.tsx +2 -0
- package/src/Table/plugins/stickyColumns/useTableStickyColumns.tsx +1 -2
- package/src/TextArea/TextArea.tsx +3 -2
- package/src/TextInput/TextInput.tsx +2 -2
- package/src/TimeInput/TimeInput.tsx +2 -2
- package/src/Timer/Timer.tsx +1 -1
- package/src/Toast/useToast.tsx +8 -3
- package/src/ToggleButton/ToggleButton.tsx +10 -3
- package/src/Token/Token.tsx +15 -0
- package/src/Tokenizer/Tokenizer.doc.mjs +12 -8
- package/src/Tokenizer/Tokenizer.tsx +81 -53
- package/src/Tokenizer/TokenizerBottomSheet.tsx +9 -15
- package/src/Tooltip/Tooltip.doc.mjs +3 -3
- package/src/Tooltip/useTooltip.doc.mjs +1 -1
- package/src/TopNav/TopNavMegaMenu.tsx +4 -3
- package/src/TreeList/TreeList.tsx +6 -3
- package/src/TreeList/TreeListItem.tsx +5 -3
- package/src/Typeahead/BaseTypeahead.doc.mjs +7 -4
- package/src/Typeahead/BaseTypeahead.tsx +314 -40
- package/src/Typeahead/Typeahead.doc.mjs +21 -4
- package/src/Typeahead/Typeahead.tsx +42 -11
- package/src/Typeahead/TypeaheadItem.doc.mjs +6 -3
- package/src/Typeahead/index.ts +1 -1
- package/src/Typeahead/types.ts +27 -3
- package/src/gestures/haptics.ts +1 -8
- package/src/hooks/menuPressMarker.ts +15 -0
- package/src/hooks/useClickableContainer.ts +48 -17
- package/src/hooks/useFocusReturnVisibility.ts +15 -12
- package/src/hooks/useInputStatusIcon.tsx +2 -2
- package/src/hooks/useListFocus.ts +38 -1
- package/src/hooks/useMenuPress.ts +5 -5
- package/src/hooks/useTreeFocus.doc.mjs +2 -2
- package/src/hooks/useTreeFocus.ts +16 -10
- package/src/hooks/useTypeahead.doc.mjs +2 -2
- package/src/hooks/useTypeahead.ts +21 -20
- package/src/i18n/generated-locales/en.generated.ts +8 -0
- package/src/i18n/generated-locales/pseudo.generated.ts +8 -0
- package/src/i18n/useListFormatter.ts +42 -0
- package/src/motion/animatedLayout.ts +977 -45
- package/src/motion/animator.ts +55 -2
- package/src/privateAttributes/segmentDisabled.stylex.ts +28 -0
- package/src/theme/Theme.tsx +8 -4
- package/src/theme/useTheme.ts +6 -1
- package/src/utils/focusReturn.ts +6 -4
- package/src/utils/getNodeText.ts +2 -1
- package/src/utils/interactionModality.ts +165 -44
- package/src/utils/pressDisabled.ts +32 -0
- package/src/utils/pressFeedback.ts +5 -3
- package/src/utils/typeaheadMatch.ts +141 -0
- package/dist/Item/ItemMarkerColumns.a11y.chromium.spec.d.ts +0 -2
- package/dist/Item/ItemMarkerColumns.a11y.chromium.spec.js +0 -132
- package/dist/Lightbox/LightboxKeyboard.a11y.browser.spec.d.ts +0 -2
- package/dist/Lightbox/LightboxKeyboard.a11y.browser.spec.js +0 -78
- package/dist/Lightbox/LightboxViewport.a11y.browser.spec.d.ts +0 -2
- package/dist/Lightbox/LightboxViewport.a11y.browser.spec.js +0 -66
- package/dist/List/ListMarkers.a11y.chromium.spec.d.ts +0 -2
- package/dist/List/ListMarkers.a11y.chromium.spec.js +0 -677
- package/dist/Markdown/Markdown.fr23.bench.d.ts +0 -2
- package/dist/Markdown/Markdown.fr23.bench.d.ts.map +0 -1
- package/dist/Markdown/Markdown.fr23.bench.js +0 -152
- package/dist/Markdown/MarkdownTable.a11y.chromium.spec.d.ts +0 -2
- package/dist/Markdown/MarkdownTable.a11y.chromium.spec.js +0 -590
- package/dist/Markdown/plugins/headingLinks.a11y.chromium.spec.d.ts +0 -2
- package/dist/Markdown/plugins/headingLinks.a11y.chromium.spec.js +0 -657
- package/dist/MobileNav/MobileNavPinchZoom.a11y.chromium.spec.d.ts +0 -2
- package/dist/MobileNav/MobileNavPinchZoom.a11y.chromium.spec.js +0 -153
- package/dist/MultiSelector/CreateRow.a11y.chromium.spec.d.ts +0 -2
- package/dist/MultiSelector/CreateRow.a11y.chromium.spec.js +0 -117
- package/dist/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.d.ts +0 -2
- package/dist/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.js +0 -49
- package/dist/MultiSelector/OptionActions.a11y.chromium.spec.d.ts +0 -2
- package/dist/MultiSelector/OptionActions.a11y.chromium.spec.js +0 -273
- package/dist/Outline/OutlineFocus.a11y.chromium.spec.d.ts +0 -2
- package/dist/Outline/OutlineFocus.a11y.chromium.spec.js +0 -421
- package/dist/Typeahead/BaseTypeahead.emptyState.a11y.chromium.spec.d.ts +0 -2
- package/dist/Typeahead/BaseTypeahead.emptyState.a11y.chromium.spec.js +0 -118
- package/dist/reset.a11y.chromium.spec.d.ts +0 -2
- package/dist/reset.a11y.chromium.spec.js +0 -231
- package/dist/reset.until-found.a11y.browser.spec.d.ts +0 -2
- package/dist/reset.until-found.a11y.browser.spec.js +0 -72
- package/src/AlertDialog/AlertDialog.spec.md +0 -259
- package/src/AlertDialog/AlertDialog.test.tsx +0 -519
- package/src/AlertDialog/__tests__/AlertDialog.a11y.chromium.spec.ts +0 -128
- package/src/AlertDialog/__tests__/AlertDialog.a11y.renders.tsx +0 -52
- package/src/AlertDialog/__tests__/AlertDialog.a11y.states.ts +0 -68
- package/src/AlertDialog/__tests__/AlertDialog.a11y.test.tsx +0 -144
- package/src/AlertDialog/useImperativeAlertDialog.test.tsx +0 -163
- package/src/AppShell/AppShell.spec.md +0 -331
- package/src/AppShell/AppShell.test.tsx +0 -1310
- package/src/AppShell/__tests__/AppShellMainKeyboard.a11y.browser.spec.ts +0 -534
- package/src/AppShell/observeMainOverflow.test.ts +0 -173
- package/src/AspectRatio/AspectRatio.spec.md +0 -179
- package/src/AspectRatio/AspectRatio.test.tsx +0 -398
- package/src/AspectRatio/__tests__/AspectRatioFitLayers.a11y.browser.spec.ts +0 -158
- package/src/Avatar/Avatar.spec.md +0 -253
- package/src/Avatar/Avatar.test.tsx +0 -867
- package/src/Avatar/AvatarStatusDot.spec.md +0 -208
- package/src/Avatar/AvatarStatusDot.test.tsx +0 -306
- package/src/Avatar/__tests__/AvatarForcedColors.a11y.chromium.spec.ts +0 -126
- package/src/AvatarGroup/AvatarGroup.spec.md +0 -205
- package/src/AvatarGroup/AvatarGroup.test.tsx +0 -313
- package/src/AvatarGroup/AvatarGroupOverflow.spec.md +0 -210
- package/src/AvatarGroup/AvatarGroupOverflow.test.tsx +0 -263
- package/src/Badge/Badge.spec.md +0 -207
- package/src/Badge/Badge.test.tsx +0 -125
- package/src/Badge/__tests__/BadgeLargerText.a11y.chromium.spec.ts +0 -260
- package/src/Banner/Banner.spec.md +0 -282
- package/src/Banner/Banner.test.tsx +0 -879
- package/src/Blockquote/Blockquote.spec.md +0 -171
- package/src/Blockquote/Blockquote.test.tsx +0 -121
- package/src/BottomSheet/BottomSheet.spec.md +0 -457
- package/src/BottomSheet/BottomSheet.test.tsx +0 -3154
- package/src/BottomSheet/BottomSheetEdgeTint.test.tsx +0 -248
- package/src/BottomSheet/BottomSheetKeyboard.test.tsx +0 -195
- package/src/BottomSheet/BottomSheetPanel.test.tsx +0 -549
- package/src/BottomSheet/BottomSheetReplace.test.tsx +0 -1638
- package/src/BottomSheet/BottomSheetStacking.announce.test.tsx +0 -246
- package/src/BottomSheet/BottomSheetStacking.test.tsx +0 -3184
- package/src/BottomSheet/BottomSheetSwitcher.spec.md +0 -367
- package/src/BottomSheet/BottomSheetSwitcher.test.tsx +0 -2010
- package/src/BottomSheet/__tests__/BottomSheetDrag.a11y.chromium.spec.ts +0 -129
- package/src/BottomSheet/__tests__/BottomSheetFocusReturn.a11y.browser.spec.ts +0 -97
- package/src/BottomSheet/__tests__/BottomSheetKeyboard.a11y.browser.spec.ts +0 -415
- package/src/BottomSheet/__tests__/BottomSheetNativeModal.a11y.browser.spec.ts +0 -462
- package/src/BottomSheet/__tests__/BottomSheetPinchZoom.a11y.chromium.spec.ts +0 -247
- package/src/BottomSheet/__tests__/BottomSheetToastOutlet.a11y.chromium.spec.ts +0 -83
- package/src/BottomSheet/snapOffsets.test.ts +0 -254
- package/src/BottomSheet/useSheetGestures.test.ts +0 -1690
- package/src/Breadcrumbs/BreadcrumbItem.spec.md +0 -269
- package/src/Breadcrumbs/Breadcrumbs.spec.md +0 -165
- package/src/Breadcrumbs/Breadcrumbs.test.tsx +0 -921
- package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.chromium.spec.ts +0 -132
- package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.renders.tsx +0 -45
- package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.states.ts +0 -81
- package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.test.tsx +0 -125
- package/src/Button/Button.spec.md +0 -322
- package/src/Button/Button.test.tsx +0 -864
- package/src/Button/__tests__/Button.a11y.chromium.spec.ts +0 -355
- package/src/Button/__tests__/Button.a11y.harnesses.tsx +0 -47
- package/src/Button/__tests__/Button.a11y.known-failures.ts +0 -25
- package/src/Button/__tests__/Button.a11y.renders.tsx +0 -139
- package/src/Button/__tests__/Button.a11y.states.ts +0 -317
- package/src/Button/__tests__/Button.a11y.test.tsx +0 -187
- package/src/ButtonGroup/ButtonGroup.spec.md +0 -220
- package/src/ButtonGroup/ButtonGroup.test.tsx +0 -1025
- package/src/Calendar/Calendar.spec.md +0 -248
- package/src/Calendar/Calendar.test.tsx +0 -2186
- package/src/Calendar/__tests__/Calendar.a11y.chromium.spec.ts +0 -141
- package/src/Calendar/__tests__/Calendar.a11y.known-failures.ts +0 -12
- package/src/Calendar/__tests__/Calendar.a11y.renders.tsx +0 -57
- package/src/Calendar/__tests__/Calendar.a11y.states.ts +0 -139
- package/src/Calendar/__tests__/Calendar.a11y.test.tsx +0 -137
- package/src/Calendar/dayCellUtils.test.ts +0 -520
- package/src/Calendar/getInitialFocusDate.test.ts +0 -94
- package/src/Calendar/getStandaloneShortWeekdayNames.test.ts +0 -54
- package/src/Calendar/hooks/useCalendarConstraints.test.ts +0 -153
- package/src/Calendar/hooks/useCalendarDays.test.ts +0 -265
- package/src/Calendar/hooks/useCalendarNavigation.test.ts +0 -252
- package/src/Card/Card.spec.md +0 -205
- package/src/Card/Card.test.tsx +0 -202
- package/src/Carousel/Carousel.spec.md +0 -146
- package/src/Carousel/Carousel.test.tsx +0 -1036
- package/src/Carousel/__tests__/Carousel.a11y.chromium.spec.ts +0 -207
- package/src/Carousel/__tests__/Carousel.a11y.known-failures.ts +0 -12
- package/src/Carousel/__tests__/Carousel.a11y.renders.tsx +0 -39
- package/src/Carousel/__tests__/Carousel.a11y.states.ts +0 -139
- package/src/Carousel/__tests__/Carousel.a11y.test.tsx +0 -127
- package/src/Center/Center.spec.md +0 -205
- package/src/Center/Center.test.tsx +0 -406
- package/src/Chat/ChatComposer.spec.md +0 -246
- package/src/Chat/ChatComposer.test.tsx +0 -364
- package/src/Chat/ChatComposerDrawer.spec.md +0 -267
- package/src/Chat/ChatComposerDrawer.test.tsx +0 -130
- package/src/Chat/ChatComposerInput.spec.md +0 -224
- package/src/Chat/ChatComposerInput.test.tsx +0 -2136
- package/src/Chat/ChatComposerTokenElement.spec.md +0 -164
- package/src/Chat/ChatComposerTokenElement.test.tsx +0 -85
- package/src/Chat/ChatDictationButton.spec.md +0 -205
- package/src/Chat/ChatDictationButton.test.tsx +0 -108
- package/src/Chat/ChatLayout.spec.md +0 -276
- package/src/Chat/ChatLayout.test.tsx +0 -311
- package/src/Chat/ChatLayoutScrollButton.spec.md +0 -322
- package/src/Chat/ChatLayoutScrollButton.test.tsx +0 -99
- package/src/Chat/ChatMessage.spec.md +0 -265
- package/src/Chat/ChatMessage.test.tsx +0 -344
- package/src/Chat/ChatMessageBubble.spec.md +0 -263
- package/src/Chat/ChatMessageBubble.test.tsx +0 -294
- package/src/Chat/ChatMessageList.spec.md +0 -222
- package/src/Chat/ChatMessageList.test.tsx +0 -198
- package/src/Chat/ChatMessageMetadata.spec.md +0 -220
- package/src/Chat/ChatMessageMetadata.test.tsx +0 -66
- package/src/Chat/ChatPastedTextToken.test.tsx +0 -71
- package/src/Chat/ChatSendButton.spec.md +0 -238
- package/src/Chat/ChatSendButton.test.tsx +0 -309
- package/src/Chat/ChatSystemMessage.spec.md +0 -224
- package/src/Chat/ChatSystemMessage.test.tsx +0 -189
- package/src/Chat/ChatTokenizedText.spec.md +0 -190
- package/src/Chat/ChatTokenizedText.test.tsx +0 -163
- package/src/Chat/ChatToolCalls.spec.md +0 -194
- package/src/Chat/ChatToolCalls.test.tsx +0 -413
- package/src/Chat/__tests__/ChatLayoutScrollButton.a11y.chromium.spec.ts +0 -577
- package/src/Chat/__tests__/ChatLayoutScrollButtonSurface.a11y.chromium.spec.ts +0 -740
- package/src/Chat/__tests__/ChatMessageBubble.a11y.chromium.spec.ts +0 -457
- package/src/Chat/__tests__/ChatMessageBubble.auditProvenance.test.ts +0 -91
- package/src/Chat/__tests__/ChatMessageBubble.auditProvenance.ts +0 -91
- package/src/Chat/__tests__/ChatMessageList.a11y.chromium.spec.ts +0 -465
- package/src/Chat/__tests__/ChatMessageMetadata.a11y.chromium.spec.ts +0 -416
- package/src/Chat/__tests__/ChatSendButton.a11y.chromium.spec.ts +0 -1523
- package/src/Chat/__tests__/ChatSystemMessage.a11y.chromium.spec.ts +0 -1004
- package/src/Chat/__tests__/ChatTokenizedText.a11y.chromium.spec.ts +0 -574
- package/src/Chat/__tests__/useChatStreamScroll.a11y.chromium.spec.ts +0 -263
- package/src/Chat/__tests__/useChatStreamScroll.fixture.tsx +0 -61
- package/src/Chat/useChatDictation.test.tsx +0 -369
- package/src/Chat/useChatNewMessages.test.tsx +0 -209
- package/src/Chat/useChatPasteAsToken.test.ts +0 -191
- package/src/Chat/useChatStreamScroll.test.tsx +0 -381
- package/src/Chat/useTriggerMenu.test.tsx +0 -994
- package/src/CheckboxInput/CheckboxInput.spec.md +0 -218
- package/src/CheckboxInput/CheckboxInput.test.tsx +0 -926
- package/src/CheckboxInput/__tests__/Checkbox.a11y.chromium.spec.ts +0 -354
- package/src/CheckboxInput/__tests__/Checkbox.a11y.known-failures.ts +0 -54
- package/src/CheckboxInput/__tests__/Checkbox.a11y.renders.tsx +0 -310
- package/src/CheckboxInput/__tests__/Checkbox.a11y.states.ts +0 -404
- package/src/CheckboxInput/__tests__/Checkbox.a11y.test.tsx +0 -128
- package/src/CheckboxList/CheckboxList.fr10.test.tsx +0 -51
- package/src/CheckboxList/CheckboxList.spec.md +0 -332
- package/src/CheckboxList/CheckboxList.test.tsx +0 -1159
- package/src/CheckboxList/CheckboxListItem.spec.md +0 -302
- package/src/CheckboxList/__tests__/CheckboxList.a11y.chromium.spec.ts +0 -1998
- package/src/Citation/Citation.spec.md +0 -179
- package/src/Citation/Citation.test.tsx +0 -361
- package/src/ClickableCard/ClickableCard.spec.md +0 -241
- package/src/ClickableCard/ClickableCard.test.tsx +0 -382
- package/src/Code/Code.spec.md +0 -170
- package/src/Code/Code.test.tsx +0 -75
- package/src/CodeBlock/CodeBlock.highlightStyles.test.tsx +0 -87
- package/src/CodeBlock/CodeBlock.spec.md +0 -243
- package/src/CodeBlock/CodeBlock.test.tsx +0 -752
- package/src/CodeBlock/CodeLanguage.test.tsx +0 -173
- package/src/CodeBlock/__tests__/CodeBlockCopyClearance.a11y.chromium.spec.ts +0 -325
- package/src/CodeBlock/__tests__/CodeBlockLanguages.a11y.chromium.spec.ts +0 -64
- package/src/CodeBlock/__tests__/CodeBlockOverflowStop.a11y.chromium.spec.ts +0 -126
- package/src/CodeBlock/__tests__/DiffRowPaint.a11y.chromium.spec.ts +0 -94
- package/src/CodeBlock/highlightRanges.test.ts +0 -253
- package/src/CodeBlock/languages.test.ts +0 -402
- package/src/CodeBlock/tokenizer.test.ts +0 -280
- package/src/CodeBlock/tokenizerBudget.test.ts +0 -112
- package/src/Collapsible/Collapsible.spec.md +0 -247
- package/src/Collapsible/Collapsible.test.tsx +0 -620
- package/src/Collapsible/CollapsibleGroup.spec.md +0 -229
- package/src/Collapsible/CollapsibleGroup.test.tsx +0 -656
- package/src/Collapsible/__tests__/Collapsible.a11y.chromium.spec.ts +0 -194
- package/src/Collapsible/__tests__/Collapsible.a11y.states.ts +0 -117
- package/src/Collapsible/__tests__/Collapsible.a11y.test.tsx +0 -140
- package/src/Collapsible/__tests__/CollapsibleGroup.a11y.chromium.spec.ts +0 -559
- package/src/Collapsible/__tests__/CollapsibleGroup.a11y.renders.tsx +0 -45
- package/src/Collapsible/__tests__/CollapsibleGroup.a11y.states.ts +0 -139
- package/src/Collapsible/__tests__/CollapsibleGroup.a11y.test.tsx +0 -135
- package/src/Collapsible/__tests__/CollapsibleGroupAccordion.a11y.chromium.spec.ts +0 -141
- package/src/Collapsible/useCollapsible.test.tsx +0 -236
- package/src/CommandPalette/CommandPalette.perf.test.ts +0 -100
- package/src/CommandPalette/CommandPalette.spec.md +0 -278
- package/src/CommandPalette/CommandPalette.test.tsx +0 -750
- package/src/CommandPalette/CommandPaletteEmpty.spec.md +0 -190
- package/src/CommandPalette/CommandPaletteEmpty.test.tsx +0 -101
- package/src/CommandPalette/CommandPaletteFooter.test.tsx +0 -122
- package/src/CommandPalette/CommandPaletteGroup.test.tsx +0 -129
- package/src/CommandPalette/CommandPaletteInput.spec.md +0 -215
- package/src/CommandPalette/CommandPaletteInput.test.tsx +0 -539
- package/src/CommandPalette/CommandPaletteItem.spec.md +0 -223
- package/src/CommandPalette/CommandPaletteItem.test.tsx +0 -417
- package/src/CommandPalette/CommandPaletteList.spec.md +0 -194
- package/src/CommandPalette/CommandPaletteList.test.tsx +0 -184
- package/src/CommandPalette/__tests__/CommandPalette.a11y.chromium.spec.ts +0 -600
- package/src/CommandPalette/__tests__/CommandPaletteEmptyAudit.a11y.chromium.spec.ts +0 -715
- package/src/CommandPalette/__tests__/CommandPaletteFooter.a11y.chromium.spec.ts +0 -582
- package/src/CommandPalette/__tests__/CommandPaletteInputAudit.a11y.chromium.spec.ts +0 -336
- package/src/CommandPalette/__tests__/CommandPaletteItemAudit.a11y.chromium.spec.ts +0 -523
- package/src/ComplexSelector/ComplexSelector.focusableDisabled.test.tsx +0 -76
- package/src/ComplexSelector/ComplexSelector.fr10.test.tsx +0 -262
- package/src/ComplexSelector/ComplexSelector.spec.md +0 -266
- package/src/ComplexSelector/ComplexSelector.test.tsx +0 -1171
- package/src/ComplexSelector/__tests__/ComplexSelector.a11y.chromium.spec.ts +0 -965
- package/src/ContextMenu/ContextMenu.spec.md +0 -279
- package/src/ContextMenu/ContextMenu.test.tsx +0 -1617
- package/src/ContextMenu/ContextMenu.triggerProps.test.tsx +0 -54
- package/src/ContextMenu/ContextMenuItem.spec.md +0 -132
- package/src/ContextMenu/__tests__/ContextMenuAudit.a11y.chromium.spec.ts +0 -439
- package/src/ContextMenu/__tests__/ContextMenuCursorAnchor.a11y.browser.spec.ts +0 -154
- package/src/ContextMenu/__tests__/ContextMenuLongPress.a11y.chromium.spec.ts +0 -117
- package/src/DateInput/DateInput.fr10.test.tsx +0 -283
- package/src/DateInput/DateInput.spec.md +0 -319
- package/src/DateInput/DateInput.test.tsx +0 -1571
- package/src/DateInput/DateInputTouch.test.tsx +0 -2948
- package/src/DateInput/MonthScrollerSettle.test.tsx +0 -165
- package/src/DateInput/NativeDateField.test.tsx +0 -741
- package/src/DateInput/Presentation.test.tsx +0 -121
- package/src/DateInput/__tests__/DateInputAudit.a11y.chromium.spec.ts +0 -577
- package/src/DateInput/__tests__/MonthScrollerSteps.interaction.browser.spec.ts +0 -312
- package/src/DateInput/__tests__/WheelPinchZoom.a11y.chromium.spec.ts +0 -171
- package/src/DateRangeInput/DateRangeInput.fr10.test.tsx +0 -165
- package/src/DateRangeInput/DateRangeInput.spec.md +0 -203
- package/src/DateRangeInput/DateRangeInput.test.tsx +0 -1151
- package/src/DateTimeInput/DateTimeInput.fr10.test.tsx +0 -319
- package/src/DateTimeInput/DateTimeInput.spec.md +0 -270
- package/src/DateTimeInput/DateTimeInput.test.tsx +0 -2656
- package/src/DateTimeInput/DateTimeInputTouch.test.tsx +0 -1071
- package/src/DateTimeInput/NativePickerSegments.test.tsx +0 -657
- package/src/DateTimeInput/Presentation.test.tsx +0 -89
- package/src/Dialog/Dialog.source-build.test.mjs +0 -43
- package/src/Dialog/Dialog.spec.md +0 -189
- package/src/Dialog/Dialog.test.tsx +0 -1599
- package/src/Dialog/DialogHeader.test.tsx +0 -477
- package/src/Dialog/__tests__/Dialog.a11y.browser.spec.ts +0 -111
- package/src/Dialog/__tests__/Dialog.a11y.chromium.spec.ts +0 -218
- package/src/Dialog/__tests__/Dialog.a11y.known-failures.ts +0 -28
- package/src/Dialog/__tests__/Dialog.a11y.renders.tsx +0 -107
- package/src/Dialog/__tests__/Dialog.a11y.states.ts +0 -104
- package/src/Dialog/__tests__/Dialog.a11y.test.tsx +0 -102
- package/src/Dialog/__tests__/Dialog.reduced-motion.a11y.browser.spec.ts +0 -252
- package/src/Dialog/__tests__/DialogSecondDocument.a11y.browser.spec.ts +0 -202
- package/src/Dialog/modules/DialogHeader.spec.md +0 -211
- package/src/Dialog/useImperativeDialog.test.tsx +0 -78
- package/src/Divider/Divider.spec.md +0 -252
- package/src/Divider/Divider.test.tsx +0 -155
- package/src/Drawer/Drawer.spec.md +0 -388
- package/src/Drawer/Drawer.test.tsx +0 -1335
- package/src/Drawer/DrawerDirection.test.tsx +0 -127
- package/src/Drawer/DrawerHeader.spec.md +0 -181
- package/src/Drawer/DrawerHeader.test.tsx +0 -102
- package/src/Drawer/__tests__/DrawerAudit.a11y.chromium.spec.ts +0 -402
- package/src/Drawer/__tests__/DrawerHeaderAudit.a11y.chromium.spec.ts +0 -298
- package/src/Drawer/__tests__/DrawerNonModalPageScroll.a11y.chromium.spec.ts +0 -267
- package/src/DropdownMenu/DropdownMenu.spec.md +0 -562
- package/src/DropdownMenu/DropdownMenu.ssr.test.tsx +0 -93
- package/src/DropdownMenu/DropdownMenu.test.tsx +0 -4498
- package/src/DropdownMenu/DropdownMenuCheckboxItem.spec.md +0 -192
- package/src/DropdownMenu/DropdownMenuContext.public.test.ts +0 -22
- package/src/DropdownMenu/DropdownMenuDivider.spec.md +0 -186
- package/src/DropdownMenu/DropdownMenuGroup.spec.md +0 -145
- package/src/DropdownMenu/DropdownMenuItem.spec.md +0 -215
- package/src/DropdownMenu/DropdownMenuLazySheet.test.tsx +0 -126
- package/src/DropdownMenu/DropdownMenuRadioGroup.spec.md +0 -187
- package/src/DropdownMenu/DropdownMenuRadioItem.spec.md +0 -227
- package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +0 -635
- package/src/DropdownMenu/DropdownMenuSheetFirstOpen.test.tsx +0 -72
- package/src/DropdownMenu/DropdownMenuSubMenu.spec.md +0 -231
- package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +0 -2442
- package/src/DropdownMenu/__tests__/DropdownMenuDividerAudit.a11y.chromium.spec.ts +0 -281
- package/src/DropdownMenu/__tests__/DropdownMenuDrillIn.a11y.chromium.spec.ts +0 -175
- package/src/DropdownMenu/__tests__/DropdownMenuFocusReturn.a11y.browser.spec.ts +0 -74
- package/src/DropdownMenu/__tests__/DropdownMenuGroupAudit.a11y.chromium.spec.ts +0 -335
- package/src/DropdownMenu/__tests__/DropdownMenuItemAudit.a11y.chromium.spec.ts +0 -367
- package/src/DropdownMenu/__tests__/DropdownMenuRadioGroupAudit.a11y.chromium.spec.ts +0 -328
- package/src/DropdownMenu/__tests__/DropdownMenuRadioItemAudit.a11y.chromium.spec.ts +0 -540
- package/src/DropdownMenu/__tests__/DropdownMenuSubMenuAudit.a11y.chromium.spec.ts +0 -671
- package/src/DropdownMenu/__tests__/Menu.a11y.chromium.spec.ts +0 -158
- package/src/DropdownMenu/__tests__/Menu.a11y.known-failures.ts +0 -26
- package/src/DropdownMenu/__tests__/Menu.a11y.renders.tsx +0 -65
- package/src/DropdownMenu/__tests__/Menu.a11y.states.ts +0 -138
- package/src/DropdownMenu/__tests__/Menu.a11y.test.tsx +0 -136
- package/src/DropdownMenu/__tests__/MenuButton.a11y.chromium.spec.ts +0 -149
- package/src/DropdownMenu/__tests__/MenuButton.a11y.known-failures.ts +0 -12
- package/src/DropdownMenu/__tests__/MenuButton.a11y.renders.tsx +0 -67
- package/src/DropdownMenu/__tests__/MenuButton.a11y.states.ts +0 -141
- package/src/DropdownMenu/__tests__/MenuButton.a11y.test.tsx +0 -138
- package/src/DropdownMenu/__tests__/MenuHeaderFooter.a11y.chromium.spec.ts +0 -231
- package/src/DropdownMenu/__tests__/MenuHoverFocus.a11y.chromium.spec.ts +0 -238
- package/src/DropdownMenu/__tests__/MenuPinchZoom.a11y.chromium.spec.ts +0 -173
- package/src/DropdownMenu/__tests__/MenuPress.a11y.chromium.spec.ts +0 -503
- package/src/DropdownMenu/__tests__/SubMenuHeaderFooter.a11y.chromium.spec.ts +0 -268
- package/src/DropdownMenu/__tests__/warmMenuBottomSheet.tsx +0 -43
- package/src/DropdownMenu/lazyMenuBottomSheet.test.ts +0 -60
- package/src/DropdownMenu/modules/useMenuHover.spec.md +0 -283
- package/src/DropdownMenu/modules/useMenuPress.spec.md +0 -348
- package/src/EmptyState/EmptyState.announce.test.tsx +0 -227
- package/src/EmptyState/EmptyState.spec.md +0 -203
- package/src/EmptyState/EmptyState.test.tsx +0 -284
- package/src/Field/Field.spec.md +0 -226
- package/src/Field/Field.test.tsx +0 -800
- package/src/Field/FieldLabel.spec.md +0 -183
- package/src/Field/FieldLabel.test.tsx +0 -244
- package/src/Field/InputClearButton.test.tsx +0 -395
- package/src/Field/__tests__/FieldLabelAudit.a11y.chromium.spec.ts +0 -297
- package/src/Field/fieldInputFamily.test.tsx +0 -160
- package/src/FieldStatus/FieldStatus.spec.md +0 -224
- package/src/FieldStatus/FieldStatus.test.tsx +0 -482
- package/src/FieldStatus/__tests__/StatusMessage.a11y.chromium.spec.ts +0 -206
- package/src/FieldStatus/__tests__/StatusMessage.a11y.known-failures.ts +0 -13
- package/src/FieldStatus/__tests__/StatusMessage.a11y.renders.tsx +0 -287
- package/src/FieldStatus/__tests__/StatusMessage.a11y.states.ts +0 -302
- package/src/FieldStatus/__tests__/StatusMessage.a11y.test.tsx +0 -154
- package/src/FileInput/FileInput.fr10.test.tsx +0 -21
- package/src/FileInput/FileInput.spec.md +0 -199
- package/src/FileInput/FileInput.test.tsx +0 -1291
- package/src/FormLayout/FormLayout.spec.md +0 -209
- package/src/FormLayout/FormLayout.test.tsx +0 -444
- package/src/FormLayout/__snapshots__/FormLayout.test.tsx.snap +0 -46
- package/src/Grid/Grid.spec.md +0 -193
- package/src/Grid/Grid.test.tsx +0 -509
- package/src/Grid/GridSpan.spec.md +0 -158
- package/src/HStack/HStack.test.tsx +0 -129
- package/src/Heading/Heading.spec.md +0 -198
- package/src/Heading/Heading.test.tsx +0 -328
- package/src/HoverCard/HoverCard.spec.md +0 -244
- package/src/HoverCard/HoverCard.test.tsx +0 -1339
- package/src/Icon/Icon.spec.md +0 -244
- package/src/Icon/Icon.test.tsx +0 -990
- package/src/Icon/globalIconRegistry.test.tsx +0 -613
- package/src/IconButton/IconButton.spec.md +0 -197
- package/src/IconButton/IconButton.test.tsx +0 -156
- package/src/Indicator/CheckIndicator.spec.md +0 -164
- package/src/Indicator/CheckboxIndicator.spec.md +0 -164
- package/src/Indicator/Indicator.spec.md +0 -188
- package/src/Indicator/Indicator.test.tsx +0 -389
- package/src/Indicator/indicatorRegistry.test.tsx +0 -106
- package/src/InputGroup/InputGroup.spec.md +0 -199
- package/src/InputGroup/InputGroup.test.tsx +0 -502
- package/src/InputGroup/InputGroupText.spec.md +0 -139
- package/src/InteractiveRoleContext/InteractiveRoleContext.test.tsx +0 -185
- package/src/Item/Item.source-build.test.mjs +0 -88
- package/src/Item/Item.spec.md +0 -226
- package/src/Item/Item.swipeLayer.test.tsx +0 -74
- package/src/Item/Item.test.tsx +0 -1515
- package/src/Item/ItemMarkerColumns.a11y.chromium.spec.ts +0 -211
- package/src/Item/__tests__/ItemSwipeActions.a11y.chromium.spec.ts +0 -337
- package/src/Item/__tests__/ItemSwipePinchZoom.a11y.chromium.spec.ts +0 -186
- package/src/Kbd/Kbd.spec.md +0 -185
- package/src/Kbd/Kbd.test.tsx +0 -299
- package/src/Layer/LayerProvider.spec.md +0 -149
- package/src/Layer/LayerProvider.test.tsx +0 -143
- package/src/Layer/__tests__/LayerBrowserHide.a11y.chromium.spec.ts +0 -126
- package/src/Layer/__tests__/LayerReducedMotion.a11y.chromium.spec.ts +0 -176
- package/src/Layer/__tests__/TouchTrigger.a11y.chromium.spec.ts +0 -200
- package/src/Layer/anchorName.test.ts +0 -146
- package/src/Layer/layerDismissalFamilies.test.tsx +0 -487
- package/src/Layer/layerDismissalInvariants.test.tsx +0 -501
- package/src/Layer/layerHost.test.ts +0 -117
- package/src/Layer/layerScopedContext.test.tsx +0 -499
- package/src/Layer/layerViewportInset.source-build.test.mjs +0 -90
- package/src/Layer/layerViewportInset.test.ts +0 -120
- package/src/Layer/popoverOperations.test.ts +0 -205
- package/src/Layer/useLayer.test.tsx +0 -2845
- package/src/Layer/useLayerDismissal.test.tsx +0 -580
- package/src/Layer/useTouchTrigger.test.ts +0 -70
- package/src/Layout/Layout.spec.md +0 -243
- package/src/Layout/Layout.test.tsx +0 -375
- package/src/Layout/LayoutContent.spec.md +0 -205
- package/src/Layout/LayoutFooter.spec.md +0 -190
- package/src/Layout/LayoutHeader.spec.md +0 -193
- package/src/Layout/LayoutPanel.spec.md +0 -194
- package/src/Layout/LayoutSlots.test.tsx +0 -376
- package/src/Layout/__tests__/Layout.a11y.chromium.spec.ts +0 -134
- package/src/Layout/__tests__/Layout.a11y.renders.tsx +0 -110
- package/src/Layout/__tests__/Layout.a11y.states.ts +0 -93
- package/src/Layout/__tests__/Layout.a11y.test.tsx +0 -142
- package/src/Layout/__tests__/childrenAsContent.test.tsx +0 -59
- package/src/Layout/__tests__/contentWidth.test.tsx +0 -303
- package/src/Layout/__tests__/edgeCompensation.test.tsx +0 -191
- package/src/Layout/__tests__/nestedPadding.test.tsx +0 -264
- package/src/Layout/overlayPaddingReset.test.tsx +0 -224
- package/src/Lightbox/Lightbox.spec.md +0 -199
- package/src/Lightbox/Lightbox.test.tsx +0 -837
- package/src/Lightbox/LightboxKeyboard.a11y.browser.spec.ts +0 -78
- package/src/Lightbox/LightboxViewport.a11y.browser.spec.ts +0 -74
- package/src/Lightbox/useLightbox.test.tsx +0 -263
- package/src/Link/Link.spec.md +0 -230
- package/src/Link/Link.test.tsx +0 -457
- package/src/Link/LinkProvider.spec.md +0 -167
- package/src/Link/__tests__/Link.a11y.chromium.spec.ts +0 -153
- package/src/Link/__tests__/Link.a11y.renders.tsx +0 -97
- package/src/Link/__tests__/Link.a11y.states.ts +0 -104
- package/src/Link/__tests__/Link.a11y.test.tsx +0 -127
- package/src/Link/__tests__/Link.navigation.a11y.chromium.spec.ts +0 -262
- package/src/Link/__tests__/Link.truncation.a11y.chromium.spec.ts +0 -58
- package/src/Link/useLinkComponent.test.tsx +0 -572
- package/src/Link/useLinkify.test.tsx +0 -146
- package/src/List/List.spec.md +0 -336
- package/src/List/List.test.tsx +0 -1052
- package/src/List/ListItem.source-build.test.mjs +0 -41
- package/src/List/ListItem.spec.md +0 -205
- package/src/List/ListMarkers.a11y.chromium.spec.ts +0 -904
- package/src/Markdown/Markdown.codeLanguages.test.tsx +0 -137
- package/src/Markdown/Markdown.fr23.bench.ts +0 -176
- package/src/Markdown/Markdown.fr23.perf.test.ts +0 -484
- package/src/Markdown/Markdown.helpers.perf.test.ts +0 -495
- package/src/Markdown/Markdown.public.test.ts +0 -309
- package/src/Markdown/Markdown.renderBoundary.test.tsx +0 -72
- package/src/Markdown/Markdown.rerender.test.tsx +0 -143
- package/src/Markdown/Markdown.spec.md +0 -595
- package/src/Markdown/Markdown.test.tsx +0 -1383
- package/src/Markdown/MarkdownTable.a11y.chromium.spec.ts +0 -727
- package/src/Markdown/__tests__/MarkdownNesting.a11y.chromium.spec.ts +0 -102
- package/src/Markdown/angleDestinations.test.tsx +0 -104
- package/src/Markdown/ast.test.ts +0 -374
- package/src/Markdown/atxHeadingIndentation.test.tsx +0 -53
- package/src/Markdown/blockNesting.test.tsx +0 -124
- package/src/Markdown/blockquoteMarkers.test.tsx +0 -69
- package/src/Markdown/characterReferences.test.ts +0 -47
- package/src/Markdown/codeSpans.test.tsx +0 -65
- package/src/Markdown/emphasis.test.tsx +0 -214
- package/src/Markdown/fenceInfo.test.tsx +0 -47
- package/src/Markdown/imageAlt.test.tsx +0 -84
- package/src/Markdown/incremental.test.ts +0 -1198
- package/src/Markdown/incrementalIndentation.test.tsx +0 -36
- package/src/Markdown/indentedFences.test.tsx +0 -374
- package/src/Markdown/indentedTables.test.tsx +0 -53
- package/src/Markdown/linkBrackets.test.tsx +0 -116
- package/src/Markdown/linkDestinationLinear.test.tsx +0 -54
- package/src/Markdown/linkDestinations.test.tsx +0 -127
- package/src/Markdown/linkTextCode.test.tsx +0 -65
- package/src/Markdown/listBullets.test.tsx +0 -55
- package/src/Markdown/listContinuation.test.tsx +0 -94
- package/src/Markdown/listThematicBreak.test.tsx +0 -49
- package/src/Markdown/longLinkLabels.test.tsx +0 -49
- package/src/Markdown/modules/headingLinks.spec.md +0 -262
- package/src/Markdown/modules/remark.spec.md +0 -269
- package/src/Markdown/modules/softBreaks.spec.md +0 -137
- package/src/Markdown/modules/sourceLines.spec.md +0 -162
- package/src/Markdown/openFenceFinalNewline.test.tsx +0 -85
- package/src/Markdown/parser.perf.test.ts +0 -398
- package/src/Markdown/parser.public.test.ts +0 -144
- package/src/Markdown/parser.test.ts +0 -1925
- package/src/Markdown/plugin-renderer/MarkdownPluginNodeRenderer.test.tsx +0 -300
- package/src/Markdown/plugins/frontmatter.test.tsx +0 -150
- package/src/Markdown/plugins/headingLinks.a11y.chromium.spec.ts +0 -856
- package/src/Markdown/plugins/headingLinks.ssr.test.tsx +0 -143
- package/src/Markdown/plugins/headingLinks.test.tsx +0 -637
- package/src/Markdown/plugins/protocol.test.tsx +0 -1083
- package/src/Markdown/plugins/semanticFence.test.tsx +0 -655
- package/src/Markdown/plugins/softBreaks.test.tsx +0 -172
- package/src/Markdown/plugins/sourceDecoration.test.tsx +0 -799
- package/src/Markdown/plugins/sourceLines.test.tsx +0 -715
- package/src/Markdown/plugins/textTransform.test.ts +0 -467
- package/src/Markdown/remark.test.tsx +0 -1877
- package/src/Markdown/streaming.test.ts +0 -148
- package/src/Markdown/streamingListShapes.test.tsx +0 -93
- package/src/Markdown/trailingSpaces.test.tsx +0 -45
- package/src/MetadataList/MetadataList.spec.md +0 -187
- package/src/MetadataList/MetadataList.test.tsx +0 -383
- package/src/MetadataList/MetadataListItem.spec.md +0 -165
- package/src/MobileNav/MobileNav.spec.md +0 -306
- package/src/MobileNav/MobileNav.test.tsx +0 -296
- package/src/MobileNav/MobileNavCloseEdgeCases.test.tsx +0 -584
- package/src/MobileNav/MobileNavCloseTiming.test.ts +0 -58
- package/src/MobileNav/MobileNavCloseVisibility.test.tsx +0 -172
- package/src/MobileNav/MobileNavEntryAnimation.test.tsx +0 -212
- package/src/MobileNav/MobileNavFocus.test.tsx +0 -553
- package/src/MobileNav/MobileNavPinchZoom.a11y.chromium.spec.ts +0 -147
- package/src/MobileNav/MobileNavReopen.test.tsx +0 -118
- package/src/MobileNav/MobileNavScrollbarGutter.test.tsx +0 -109
- package/src/MobileNav/MobileNavToggle.test.tsx +0 -179
- package/src/MobileNav/__tests__/MobileNavHeader.a11y.chromium.spec.ts +0 -89
- package/src/MobileNav/__tests__/MobileNavWidth.a11y.chromium.spec.ts +0 -103
- package/src/MoreMenu/MoreMenu.spec.md +0 -268
- package/src/MoreMenu/MoreMenu.test.tsx +0 -367
- package/src/MultiSelector/CreateRow.a11y.chromium.spec.ts +0 -148
- package/src/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.ts +0 -72
- package/src/MultiSelector/MultiSelector.focusableDisabled.test.tsx +0 -121
- package/src/MultiSelector/MultiSelector.fr10.test.tsx +0 -221
- package/src/MultiSelector/MultiSelector.spec.md +0 -357
- package/src/MultiSelector/MultiSelector.test.tsx +0 -4971
- package/src/MultiSelector/OptionActions.a11y.chromium.spec.ts +0 -310
- package/src/MultiSelector/__tests__/MultiSelector.a11y.chromium.spec.ts +0 -46
- package/src/MultiSelector/__tests__/MultiSelector.listbox.a11y.test.tsx +0 -135
- package/src/NavIcon/NavIcon.spec.md +0 -158
- package/src/NavIcon/NavIcon.test.tsx +0 -41
- package/src/NavMenu/NavHeadingMenu.spec.md +0 -264
- package/src/NavMenu/NavHeadingMenu.test.tsx +0 -714
- package/src/NavMenu/__tests__/NavMenusSlideSelection.a11y.chromium.spec.ts +0 -137
- package/src/NumberInput/NumberInput.fr10.test.tsx +0 -21
- package/src/NumberInput/NumberInput.spec.md +0 -270
- package/src/NumberInput/NumberInput.test.tsx +0 -2697
- package/src/NumberInput/__tests__/NumberInput.a11y.chromium.spec.ts +0 -124
- package/src/NumberInput/__tests__/NumberInput.a11y.known-failures.ts +0 -26
- package/src/NumberInput/__tests__/NumberInput.a11y.renders.tsx +0 -77
- package/src/NumberInput/__tests__/NumberInput.a11y.states.ts +0 -116
- package/src/NumberInput/__tests__/NumberInput.a11y.test.tsx +0 -154
- package/src/NumberInput/__tests__/NumberInput.coarse-pointer.a11y.chromium.spec.ts +0 -102
- package/src/NumberInput/numberInputCommit.test.ts +0 -72
- package/src/NumberInput/numberParser.docblock.test.ts +0 -234
- package/src/NumberInput/numberParser.test.ts +0 -222
- package/src/Outline/Outline.spec.md +0 -258
- package/src/Outline/Outline.test.tsx +0 -1134
- package/src/Outline/OutlineFocus.a11y.chromium.spec.ts +0 -551
- package/src/Outline/modules/parseOutlineFromMarkdown.spec.md +0 -150
- package/src/Outline/parseOutlineFromMarkdown.test.ts +0 -104
- package/src/OverflowList/OverflowList.spec.md +0 -204
- package/src/OverflowList/OverflowList.test.tsx +0 -1073
- package/src/Overlay/Overlay.spec.md +0 -304
- package/src/Overlay/Overlay.test.tsx +0 -424
- package/src/Pagination/Pagination.spec.md +0 -300
- package/src/Pagination/Pagination.test.tsx +0 -1754
- package/src/Popover/Popover.spec.md +0 -525
- package/src/Popover/Popover.test.tsx +0 -1508
- package/src/Popover/PopoverPresentation.test.tsx +0 -952
- package/src/Popover/__tests__/PopoverSecondDocument.a11y.chromium.spec.ts +0 -267
- package/src/PowerSearch/PowerSearch.spec.md +0 -661
- package/src/PowerSearch/PowerSearch.test.tsx +0 -1027
- package/src/PowerSearch/PowerSearchEditPopover.test.tsx +0 -1190
- package/src/PowerSearch/PowerSearchFilterEditor.test.tsx +0 -377
- package/src/PowerSearch/PowerSearchToken.test.tsx +0 -230
- package/src/PowerSearch/PowerSearchValueEditor.test.tsx +0 -754
- package/src/PowerSearch/formatFilterValue.test.ts +0 -339
- package/src/PowerSearch/resolveDateTimeRangePart.test.ts +0 -40
- package/src/PowerSearch/usePowerSearchConfig.test.ts +0 -832
- package/src/PowerSearch/usePowerSearchSource.test.ts +0 -621
- package/src/ProgressBar/ProgressBar.spec.md +0 -261
- package/src/ProgressBar/ProgressBar.test.tsx +0 -928
- package/src/ProgressBar/__tests__/ProgressBar.a11y.chromium.spec.ts +0 -127
- package/src/ProgressBar/__tests__/ProgressBar.a11y.known-failures.ts +0 -12
- package/src/ProgressBar/__tests__/ProgressBar.a11y.renders.tsx +0 -38
- package/src/ProgressBar/__tests__/ProgressBar.a11y.states.ts +0 -123
- package/src/ProgressBar/__tests__/ProgressBar.a11y.test.tsx +0 -107
- package/src/ProgressBar/__tests__/ProgressBarMotion.a11y.chromium.spec.ts +0 -831
- package/src/RadioList/RadioList.fr10.test.tsx +0 -67
- package/src/RadioList/RadioList.spec.md +0 -227
- package/src/RadioList/RadioList.test.tsx +0 -1051
- package/src/RadioList/RadioListItem.press.source-build.test.mjs +0 -80
- package/src/RadioList/RadioListItem.spec.md +0 -223
- package/src/RadioList/__tests__/RadioGroup.a11y.chromium.spec.ts +0 -274
- package/src/RadioList/__tests__/RadioGroup.a11y.known-failures.ts +0 -12
- package/src/RadioList/__tests__/RadioGroup.a11y.renders.tsx +0 -232
- package/src/RadioList/__tests__/RadioGroup.a11y.states.ts +0 -503
- package/src/RadioList/__tests__/RadioGroup.a11y.test.tsx +0 -217
- package/src/Resizable/Resizable.spec.md +0 -298
- package/src/Resizable/ResizeHandle.test.tsx +0 -1067
- package/src/Resizable/__tests__/ResizeHandle.a11y.chromium.spec.ts +0 -127
- package/src/Resizable/__tests__/ResizeHandle.a11y.known-failures.ts +0 -39
- package/src/Resizable/__tests__/ResizeHandle.a11y.renders.tsx +0 -80
- package/src/Resizable/__tests__/ResizeHandle.a11y.states.ts +0 -197
- package/src/Resizable/__tests__/ResizeHandle.a11y.test.tsx +0 -123
- package/src/Resizable/shippedDirections.test.ts +0 -462
- package/src/Resizable/useResizable.test.ts +0 -1725
- package/src/Resizable/utils.test.ts +0 -74
- package/src/ScrollableArea/ScrollableArea.spec.md +0 -190
- package/src/ScrollableArea/ScrollableArea.test.tsx +0 -304
- package/src/ScrollableArea/modules/useScrollableArea.spec.md +0 -149
- package/src/Section/Section.spec.md +0 -197
- package/src/Section/Section.test.tsx +0 -376
- package/src/SegmentedControl/SegmentedControl.spec.md +0 -261
- package/src/SegmentedControl/SegmentedControl.test.tsx +0 -981
- package/src/SegmentedControl/SegmentedControlItem.spec.md +0 -206
- package/src/SelectableCard/SelectableCard.spec.md +0 -230
- package/src/SelectableCard/SelectableCard.test.tsx +0 -216
- package/src/Selector/Selector.focusableDisabled.test.tsx +0 -127
- package/src/Selector/Selector.fr10.test.tsx +0 -149
- package/src/Selector/Selector.sheetActiveDescendant.test.tsx +0 -95
- package/src/Selector/Selector.source-build.test.mjs +0 -79
- package/src/Selector/Selector.spec.md +0 -379
- package/src/Selector/Selector.test.tsx +0 -5117
- package/src/Selector/__tests__/Combobox.a11y.known-failures.ts +0 -27
- package/src/Selector/__tests__/Combobox.a11y.states.ts +0 -145
- package/src/Selector/__tests__/ComboboxField.a11y.chromium.spec.ts +0 -458
- package/src/Selector/__tests__/EmptyStateAnnouncement.a11y.chromium.spec.ts +0 -91
- package/src/Selector/__tests__/Listbox.a11y.chromium.spec.ts +0 -131
- package/src/Selector/__tests__/Listbox.a11y.dom.ts +0 -38
- package/src/Selector/__tests__/Listbox.a11y.inventory.test.ts +0 -63
- package/src/Selector/__tests__/Listbox.a11y.known-failures.ts +0 -12
- package/src/Selector/__tests__/Listbox.a11y.states.ts +0 -232
- package/src/Selector/__tests__/Selector.a11y.chromium.spec.ts +0 -46
- package/src/Selector/__tests__/Selector.combobox.a11y.chromium.spec.ts +0 -109
- package/src/Selector/__tests__/Selector.combobox.a11y.test.tsx +0 -133
- package/src/Selector/__tests__/Selector.listbox.a11y.test.tsx +0 -128
- package/src/Selector/useCombobox.public.test.tsx +0 -89
- package/src/Selector/useCombobox.test.tsx +0 -444
- package/src/SideNav/SideNav.spec.md +0 -247
- package/src/SideNav/SideNav.test.tsx +0 -4275
- package/src/SideNav/SideNavCollapseButton.spec.md +0 -161
- package/src/SideNav/SideNavHeading.spec.md +0 -226
- package/src/SideNav/SideNavItem.spec.md +0 -236
- package/src/SideNav/SideNavRailMotion.test.tsx +0 -620
- package/src/SideNav/SideNavSection.spec.md +0 -153
- package/src/SideNav/__tests__/SideNavRailMotion.interaction.browser.spec.ts +0 -542
- package/src/SizeContext/SizeContext.test.tsx +0 -226
- package/src/Skeleton/Skeleton.spec.md +0 -184
- package/src/Skeleton/Skeleton.test.tsx +0 -148
- package/src/Slider/Slider.fr10.test.tsx +0 -93
- package/src/Slider/Slider.spec.md +0 -285
- package/src/Slider/Slider.test.tsx +0 -1661
- package/src/Slider/__tests__/Slider.a11y.chromium.spec.ts +0 -125
- package/src/Slider/__tests__/Slider.a11y.known-failures.ts +0 -12
- package/src/Slider/__tests__/Slider.a11y.renders.tsx +0 -42
- package/src/Slider/__tests__/Slider.a11y.states.ts +0 -106
- package/src/Slider/__tests__/Slider.a11y.test.tsx +0 -105
- package/src/Spinner/Spinner.spec.md +0 -231
- package/src/Spinner/Spinner.test.tsx +0 -484
- package/src/Stack/Stack.spec.md +0 -203
- package/src/Stack/Stack.test.tsx +0 -473
- package/src/Stack/StackItem.test.tsx +0 -105
- package/src/StatusDot/StatusDot.spec.md +0 -224
- package/src/StatusDot/StatusDot.test.tsx +0 -213
- package/src/Stepper/Step.spec.md +0 -200
- package/src/Stepper/Stepper.public.test.ts +0 -91
- package/src/Stepper/Stepper.spec.md +0 -327
- package/src/Stepper/Stepper.test.tsx +0 -2130
- package/src/Switch/Switch.focusRing.source-build.test.mjs +0 -81
- package/src/Switch/Switch.spec.md +0 -277
- package/src/Switch/Switch.test.tsx +0 -1136
- package/src/Switch/__tests__/Switch.a11y.chromium.spec.ts +0 -211
- package/src/Switch/__tests__/Switch.a11y.known-failures.ts +0 -28
- package/src/Switch/__tests__/Switch.a11y.states.ts +0 -275
- package/src/Switch/__tests__/Switch.a11y.test.tsx +0 -144
- package/src/TabList/Tab.spec.md +0 -201
- package/src/TabList/TabList.spec.md +0 -217
- package/src/TabList/TabList.test.tsx +0 -1755
- package/src/TabList/TabMenu.spec.md +0 -198
- package/src/TabList/__tests__/TabListOverflow.interaction.browser.spec.ts +0 -99
- package/src/TabList/__tests__/TabPressPointer.interaction.browser.spec.ts +0 -163
- package/src/TabList/__tests__/Tabs.a11y.chromium.spec.ts +0 -199
- package/src/TabList/__tests__/Tabs.a11y.known-failures.ts +0 -12
- package/src/TabList/__tests__/Tabs.a11y.renders.tsx +0 -92
- package/src/TabList/__tests__/Tabs.a11y.states.ts +0 -247
- package/src/TabList/__tests__/Tabs.a11y.test.tsx +0 -153
- package/src/Table/Table.perf.test.tsx +0 -569
- package/src/Table/Table.spec.md +0 -395
- package/src/Table/Table.test.tsx +0 -1883
- package/src/Table/TableHeaderCell.test.tsx +0 -291
- package/src/Table/TableSelectionToolbar.test.tsx +0 -109
- package/src/Table/__tests__/Table.a11y.chromium.spec.ts +0 -141
- package/src/Table/__tests__/Table.a11y.contracts.ts +0 -35
- package/src/Table/__tests__/Table.a11y.renders.tsx +0 -112
- package/src/Table/__tests__/Table.a11y.states.ts +0 -136
- package/src/Table/__tests__/Table.a11y.test.tsx +0 -198
- package/src/Table/__tests__/TableMinWidth.a11y.chromium.spec.ts +0 -75
- package/src/Table/__tests__/TableRowGlide.a11y.browser.spec.ts +0 -382
- package/src/Table/__tests__/TableScroll.a11y.chromium.spec.ts +0 -138
- package/src/Table/__tests__/TableStickyDividers.a11y.browser.spec.ts +0 -560
- package/src/Table/plugins/activation/useTableActivation.spec.md +0 -254
- package/src/Table/plugins/columnResize/useTableColumnResize.spec.md +0 -373
- package/src/Table/plugins/columnResize/useTableColumnResize.test.tsx +0 -941
- package/src/Table/plugins/columnSettings/useTableColumnSettings.test.tsx +0 -175
- package/src/Table/plugins/columnSettings/useTableColumnSettingsState.test.tsx +0 -296
- package/src/Table/plugins/filtering/useTableFilterState.test.tsx +0 -143
- package/src/Table/plugins/filtering/useTableFiltering.test.tsx +0 -357
- package/src/Table/plugins/groupedRows/useTableGroupedRows-perf.test.tsx +0 -112
- package/src/Table/plugins/groupedRows/useTableGroupedRows.test.tsx +0 -409
- package/src/Table/plugins/infiniteScroll/useTableInfiniteScroll.spec.md +0 -244
- package/src/Table/plugins/pagination/useTablePagination-perf.test.tsx +0 -232
- package/src/Table/plugins/pagination/useTablePagination.test.tsx +0 -666
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.glide.test.tsx +0 -280
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +0 -681
- package/src/Table/plugins/rowIndex/useTableRowIndex.test.tsx +0 -132
- package/src/Table/plugins/rowStatus/useTableRowStatus.public.test.ts +0 -92
- package/src/Table/plugins/rowStatus/useTableRowStatus.spec.md +0 -355
- package/src/Table/plugins/rowStatus/useTableRowStatus.test.tsx +0 -519
- package/src/Table/plugins/selection/useTableSelection-perf.test.tsx +0 -258
- package/src/Table/plugins/selection/useTableSelection.test.tsx +0 -424
- package/src/Table/plugins/selection/useTableSelectionState.test.tsx +0 -451
- package/src/Table/plugins/sortable/__tests__/useTableSortable.a11y.test.tsx +0 -174
- package/src/Table/plugins/sortable/__tests__/useTableSortable.a11y.ts +0 -86
- package/src/Table/plugins/sortable/useTableSortable.test.tsx +0 -786
- package/src/Table/plugins/sortable/useTableSortableState.test.tsx +0 -580
- package/src/Table/plugins/stickyColumns/useTableStickyColumns.test.tsx +0 -334
- package/src/Table/plugins/tree/useTableTreeData-perf.test.tsx +0 -163
- package/src/Table/plugins/tree/useTableTreeData.test.tsx +0 -992
- package/src/Table/plugins/tree/useTableTreeState.test.tsx +0 -740
- package/src/Table/plugins/virtualization/useTableVirtualization.spec.md +0 -266
- package/src/Table/tableContextMenu.test.tsx +0 -208
- package/src/Text/Text.spec.md +0 -193
- package/src/Text/Text.test.tsx +0 -405
- package/src/Text/useTruncation.test.tsx +0 -196
- package/src/TextArea/TextArea.fr10.test.tsx +0 -21
- package/src/TextArea/TextArea.spec.md +0 -300
- package/src/TextArea/TextArea.test.tsx +0 -1317
- package/src/TextInput/TextInput.fr10.test.tsx +0 -21
- package/src/TextInput/TextInput.spec.md +0 -260
- package/src/TextInput/TextInput.test.tsx +0 -1280
- package/src/TextInput/__tests__/TextInput.a11y.chromium.spec.ts +0 -214
- package/src/TextInput/__tests__/TextInput.a11y.known-failures.ts +0 -40
- package/src/TextInput/__tests__/TextInput.a11y.renders.tsx +0 -202
- package/src/TextInput/__tests__/TextInput.a11y.states.ts +0 -384
- package/src/TextInput/__tests__/TextInput.a11y.test.tsx +0 -130
- package/src/Thumbnail/Thumbnail.spec.md +0 -244
- package/src/Thumbnail/Thumbnail.test.tsx +0 -384
- package/src/TimeInput/NativeTimeInput.test.tsx +0 -343
- package/src/TimeInput/Presentation.test.tsx +0 -192
- package/src/TimeInput/TimeInput.fr10.test.tsx +0 -312
- package/src/TimeInput/TimeInput.spec.md +0 -270
- package/src/TimeInput/TimeInput.test.tsx +0 -907
- package/src/Timer/Timer.spec.md +0 -215
- package/src/Timer/Timer.test.tsx +0 -302
- package/src/Timestamp/Timestamp.spec.md +0 -246
- package/src/Timestamp/Timestamp.test.tsx +0 -1661
- package/src/Timestamp/tooltipEntries.test.ts +0 -566
- package/src/Toast/Toast.spec.md +0 -291
- package/src/Toast/ToastViewport.modalHost.test.tsx +0 -891
- package/src/Toast/ToastViewport.test.tsx +0 -3130
- package/src/Toast/useToast.test.tsx +0 -258
- package/src/ToggleButton/ToggleButton.spec.md +0 -256
- package/src/ToggleButton/ToggleButton.test.tsx +0 -1000
- package/src/ToggleButton/ToggleButtonGroup.spec.md +0 -195
- package/src/ToggleButton/__tests__/ToggleButton.a11y.chromium.spec.ts +0 -177
- package/src/ToggleButton/__tests__/ToggleButton.a11y.renders.tsx +0 -133
- package/src/ToggleButton/__tests__/ToggleButton.a11y.states.ts +0 -167
- package/src/ToggleButton/__tests__/ToggleButton.a11y.test.tsx +0 -103
- package/src/Token/Token.spec.md +0 -261
- package/src/Token/Token.test.tsx +0 -707
- package/src/Token/__tests__/TokenRemoveTarget.a11y.chromium.spec.ts +0 -87
- package/src/Tokenizer/Tokenizer.fr10.test.tsx +0 -28
- package/src/Tokenizer/Tokenizer.props-type.test.tsx +0 -126
- package/src/Tokenizer/Tokenizer.spec.md +0 -615
- package/src/Tokenizer/Tokenizer.ssr.test.tsx +0 -196
- package/src/Tokenizer/Tokenizer.test.tsx +0 -2216
- package/src/Tokenizer/TokenizerBottomSheet.test.tsx +0 -2738
- package/src/Tokenizer/__tests__/TokenizerEndLane.a11y.chromium.spec.ts +0 -505
- package/src/Toolbar/Toolbar.spec.md +0 -227
- package/src/Toolbar/Toolbar.test.tsx +0 -600
- package/src/Toolbar/__tests__/Toolbar.a11y.chromium.spec.ts +0 -176
- package/src/Toolbar/__tests__/Toolbar.a11y.renders.tsx +0 -63
- package/src/Toolbar/__tests__/Toolbar.a11y.states.ts +0 -142
- package/src/Toolbar/__tests__/Toolbar.a11y.test.tsx +0 -126
- package/src/Tooltip/Tooltip.spec.md +0 -267
- package/src/Tooltip/Tooltip.test.tsx +0 -819
- package/src/Tooltip/__tests__/Tooltip.a11y.chromium.spec.ts +0 -141
- package/src/Tooltip/__tests__/Tooltip.a11y.renders.tsx +0 -86
- package/src/Tooltip/__tests__/Tooltip.a11y.states.ts +0 -132
- package/src/Tooltip/__tests__/Tooltip.a11y.test.tsx +0 -126
- package/src/Tooltip/__tests__/TooltipFocusReturn.a11y.chromium.spec.ts +0 -130
- package/src/Tooltip/__tests__/TooltipHoverBridge.a11y.chromium.spec.ts +0 -75
- package/src/Tooltip/__tests__/TooltipTallContent.a11y.browser.spec.ts +0 -673
- package/src/Tooltip/__tests__/TooltipTallContentTracking.a11y.browser.spec.ts +0 -1162
- package/src/Tooltip/useTooltip.test.tsx +0 -483
- package/src/TopNav/TopNav.spec.md +0 -190
- package/src/TopNav/TopNav.test.tsx +0 -863
- package/src/TopNav/TopNavHeading.spec.md +0 -211
- package/src/TopNav/TopNavItem.spec.md +0 -189
- package/src/TopNav/TopNavMegaMenu.reduced-motion.source-build.test.mjs +0 -83
- package/src/TopNav/TopNavMegaMenu.spec.md +0 -190
- package/src/TopNav/TopNavMegaMenu.test.tsx +0 -1153
- package/src/TopNav/TopNavMegaMenuFeaturedCard.spec.md +0 -150
- package/src/TopNav/TopNavMegaMenuItem.spec.md +0 -155
- package/src/TopNav/TopNavMenu.spec.md +0 -202
- package/src/TopNav/TopNavMenu.test.tsx +0 -502
- package/src/TopNav/__tests__/TopNavMobileLongHeading.a11y.chromium.spec.ts +0 -75
- package/src/TreeList/TreeList.spec.md +0 -328
- package/src/TreeList/TreeList.test.tsx +0 -1737
- package/src/TreeList/__tests__/TreeList.a11y.chromium.spec.ts +0 -138
- package/src/TreeList/__tests__/TreeList.a11y.renders.tsx +0 -44
- package/src/TreeList/__tests__/TreeList.a11y.states.ts +0 -164
- package/src/TreeList/__tests__/TreeList.a11y.test.tsx +0 -138
- package/src/TreeList/__tests__/TreeListGuideAlignment.interaction.browser.spec.ts +0 -127
- package/src/TreeList/__tests__/TreeListRowNames.a11y.chromium.spec.ts +0 -83
- package/src/Typeahead/BaseTypeahead.emptyState.a11y.chromium.spec.ts +0 -138
- package/src/Typeahead/BaseTypeahead.spec.md +0 -270
- package/src/Typeahead/BaseTypeahead.test.tsx +0 -553
- package/src/Typeahead/Typeahead.fr10.test.tsx +0 -28
- package/src/Typeahead/Typeahead.spec.md +0 -257
- package/src/Typeahead/Typeahead.test.tsx +0 -2984
- package/src/Typeahead/TypeaheadItem.test.tsx +0 -134
- package/src/VStack/VStack.test.tsx +0 -128
- package/src/VisuallyHidden/VisuallyHidden.spec.md +0 -170
- package/src/VisuallyHidden/VisuallyHidden.test.tsx +0 -115
- package/src/__tests__/BusyOwnerAnnouncement.test.tsx +0 -853
- package/src/__tests__/CardPress.a11y.chromium.spec.ts +0 -353
- package/src/__tests__/DisabledTriggerFocus.a11y.chromium.spec.ts +0 -87
- package/src/__tests__/PressModality.a11y.chromium.spec.ts +0 -392
- package/src/__tests__/PressedState.a11y.chromium.spec.ts +0 -814
- package/src/__tests__/TestIcon.tsx +0 -26
- package/src/__tests__/babelPluginAddExtensions.test.ts +0 -190
- package/src/__tests__/fastRoleQueries.ts +0 -66
- package/src/__tests__/forcedColors.ts +0 -60
- package/src/__tests__/internalModulesNotExperimental.test.ts +0 -88
- package/src/__tests__/pressState.ts +0 -216
- package/src/__tests__/stubMatchMedia.test.ts +0 -79
- package/src/__tests__/stubMatchMedia.ts +0 -95
- package/src/__tests__/stylexDeclarations.ts +0 -51
- package/src/__tests__/unthemedLength.ts +0 -34
- package/src/docPropLiterals.test.ts +0 -964
- package/src/docPropReferences.test.ts +0 -178
- package/src/docs-script.test.mjs +0 -55
- package/src/gestures/__tests__/GestureHost.test.ts +0 -2136
- package/src/gestures/__tests__/LongPressGestureRecognizer.test.ts +0 -141
- package/src/gestures/__tests__/PanGestureRecognizer.test.ts +0 -327
- package/src/gestures/__tests__/PinchGestureRecognizer.test.ts +0 -74
- package/src/gestures/__tests__/PressTracker.test.ts +0 -275
- package/src/gestures/__tests__/ScreenEdgePanGestureRecognizer.test.ts +0 -498
- package/src/gestures/__tests__/SwipeGestureRecognizer.test.ts +0 -108
- package/src/gestures/__tests__/TapGestureRecognizer.test.ts +0 -154
- package/src/gestures/__tests__/VelocityTracker.streams.test.ts +0 -243
- package/src/gestures/__tests__/VelocityTracker.test.ts +0 -261
- package/src/gestures/__tests__/arena.test.ts +0 -864
- package/src/gestures/__tests__/arenaContinuous.test.ts +0 -207
- package/src/gestures/__tests__/arenaPinchSwipeEdge.test.ts +0 -193
- package/src/gestures/__tests__/arenaTapLongPress.test.ts +0 -211
- package/src/gestures/__tests__/browser/build-fixture.mjs +0 -46
- package/src/gestures/__tests__/browser/fixture.ts +0 -307
- package/src/gestures/__tests__/browser/gestures.interaction.browser.spec.ts +0 -1137
- package/src/gestures/__tests__/browserNegotiation.test.ts +0 -293
- package/src/gestures/__tests__/fixtures/pointer-streams/README.md +0 -82
- package/src/gestures/__tests__/fixtures/pointer-streams/android-chromium-fling.json +0 -130
- package/src/gestures/__tests__/fixtures/pointer-streams/android-chromium-slow.json +0 -860
- package/src/gestures/__tests__/fixtures/pointer-streams/android-chromium-stop-release.json +0 -357
- package/src/gestures/__tests__/fixtures/pointer-streams/android-firefox-fling.json +0 -66
- package/src/gestures/__tests__/fixtures/pointer-streams/android-firefox-slow.json +0 -268
- package/src/gestures/__tests__/fixtures/pointer-streams/android-firefox-stop-release.json +0 -128
- package/src/gestures/__tests__/fixtures/pointer-streams/capture.html +0 -123
- package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-mouse-fling.json +0 -64
- package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-mouse-slow.json +0 -268
- package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-mouse-stop-release.json +0 -124
- package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-pen-fling.json +0 -64
- package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-pen-slow.json +0 -268
- package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-pen-stop-release.json +0 -124
- package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-touch-fling.json +0 -84
- package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-touch-slow.json +0 -381
- package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-touch-stop-release.json +0 -171
- package/src/gestures/__tests__/fixtures/pointer-streams/ios-safari-fling.json +0 -45
- package/src/gestures/__tests__/fixtures/pointer-streams/ios-safari-slow.json +0 -101
- package/src/gestures/__tests__/fixtures/pointer-streams/ios-safari-stop-release.json +0 -130
- package/src/gestures/__tests__/haptics.test.ts +0 -187
- package/src/gestures/__tests__/harness.ts +0 -252
- package/src/gestures/__tests__/pressTrackerFactory.test.ts +0 -59
- package/src/gestures/__tests__/recognizerKind.test.ts +0 -78
- package/src/gestures/__tests__/touchActionRule.test.ts +0 -54
- package/src/gestures/__tests__/useGestureRecognizer.test.tsx +0 -570
- package/src/hooks/__tests__/MenuPressShadowRoot.a11y.chromium.spec.ts +0 -144
- package/src/hooks/__tests__/menuLinkClicks.ts +0 -71
- package/src/hooks/actionGroupTracker.exports.test.ts +0 -28
- package/src/hooks/actionGroupTracker.test.ts +0 -510
- package/src/hooks/computeOverflow.test.ts +0 -422
- package/src/hooks/deprecatedApis.public.test.ts +0 -33
- package/src/hooks/menuPressGesture.test.ts +0 -253
- package/src/hooks/scrollKeyboardDelegation.test.ts +0 -188
- package/src/hooks/scrollbarGutter.test.ts +0 -167
- package/src/hooks/useAnnounce.modal.test.tsx +0 -1291
- package/src/hooks/useAnnounce.replace.test.tsx +0 -516
- package/src/hooks/useAnnounce.test.tsx +0 -293
- package/src/hooks/useAnnounceRenderedText.adopters.test.tsx +0 -235
- package/src/hooks/useAutoMediaMode.test.ts +0 -109
- package/src/hooks/useBusyAnnouncement.adopters.test.tsx +0 -69
- package/src/hooks/useBusyAnnouncement.test.tsx +0 -112
- package/src/hooks/useClickableContainer.test.tsx +0 -236
- package/src/hooks/useClipboard.test.tsx +0 -151
- package/src/hooks/useContainerReveal.test.tsx +0 -163
- package/src/hooks/useDevWarning.test.tsx +0 -45
- package/src/hooks/useEntryAnimation.ssr.test.tsx +0 -143
- package/src/hooks/useFocusTrap.test.tsx +0 -635
- package/src/hooks/useFocusTrapEscapeShim.test.tsx +0 -166
- package/src/hooks/useGridFocus.test.tsx +0 -165
- package/src/hooks/useHotkeys.test.ts +0 -265
- package/src/hooks/useImageMode.test.ts +0 -133
- package/src/hooks/useInputContainer.test.tsx +0 -180
- package/src/hooks/useInputStatusIcon.test.tsx +0 -240
- package/src/hooks/useIsHydrating.test.tsx +0 -70
- package/src/hooks/useKeyboardHint.test.tsx +0 -92
- package/src/hooks/useListFocus.test.tsx +0 -664
- package/src/hooks/useLongPress.test.tsx +0 -152
- package/src/hooks/useMediaQuery.test.ts +0 -165
- package/src/hooks/useMenuHover.test.tsx +0 -536
- package/src/hooks/useMenuPress.test.tsx +0 -565
- package/src/hooks/useMergedRefs.test.tsx +0 -62
- package/src/hooks/useOverflow.test.ts +0 -504
- package/src/hooks/useRenamedProp.test.tsx +0 -95
- package/src/hooks/useScrollLock.test.ts +0 -248
- package/src/hooks/useScrollOverflow.test.tsx +0 -323
- package/src/hooks/useScrollableArea.test.tsx +0 -836
- package/src/hooks/useStreamingText.test.ts +0 -237
- package/src/hooks/useTreeFocus.test.tsx +0 -351
- package/src/hooks/useTypeahead.test.tsx +0 -351
- package/src/i18n/InternationalizationProvider.spec.md +0 -252
- package/src/i18n/__tests__/InternationalizationProvider.test.tsx +0 -128
- package/src/i18n/__tests__/e2e-pagination.test.tsx +0 -172
- package/src/i18n/__tests__/e2e-powersearch.test.tsx +0 -166
- package/src/i18n/__tests__/getLocaleDirection.test.ts +0 -40
- package/src/i18n/__tests__/resolve.test.ts +0 -325
- package/src/i18n/__tests__/useCollator.test.tsx +0 -115
- package/src/i18n/__tests__/useDirection.test.tsx +0 -66
- package/src/i18n/__tests__/useLocale.test.tsx +0 -52
- package/src/i18n/useTranslator.test.tsx +0 -267
- package/src/inputFontFloor.test.ts +0 -106
- package/src/internal/tokenizer-presentation.test.ts +0 -29
- package/src/internal/touch.test.ts +0 -44
- package/src/motion/__tests__/animatedLayout.interaction.browser.spec.ts +0 -1613
- package/src/motion/__tests__/animatedLayoutAdopters.interaction.browser.spec.ts +0 -217
- package/src/motion/__tests__/animatedLayoutBundle.ts +0 -17
- package/src/motion/__tests__/animator.interaction.browser.spec.ts +0 -843
- package/src/motion/__tests__/motionBundle.ts +0 -14
- package/src/motion/animatedLayout.boundary.test.ts +0 -155
- package/src/motion/animatedLayout.swap.test.ts +0 -827
- package/src/motion/animatedLayout.test.ts +0 -1154
- package/src/motion/animatedLayoutAdopters.test.tsx +0 -500
- package/src/motion/animator.test.ts +0 -3746
- package/src/motion/bezier.test.ts +0 -52
- package/src/motion/coast.test.ts +0 -99
- package/src/motion/decay.test.ts +0 -120
- package/src/motion/projection.test.ts +0 -107
- package/src/motion/reducedMotion.test.ts +0 -129
- package/src/motion/reducedMotionPlan.test.ts +0 -208
- package/src/motion/resolveMotion.test.ts +0 -123
- package/src/motion/resolveSnapPoint.test.ts +0 -189
- package/src/motion/roles.test.ts +0 -273
- package/src/motion/rubberBand.test.ts +0 -88
- package/src/motion/selectPage.test.ts +0 -31
- package/src/motion/spring.test.ts +0 -650
- package/src/motion/uikit/gestures.test.ts +0 -89
- package/src/motion/uikit/springRows.test.ts +0 -71
- package/src/motion/uikit/tableImports.test.ts +0 -293
- package/src/motion/uikit/uikit.test.ts +0 -364
- package/src/motion/uikit/values.test.ts +0 -121
- package/src/naming.test.ts +0 -44
- package/src/postinstall.test.mjs +0 -216
- package/src/reset.a11y.chromium.spec.ts +0 -238
- package/src/reset.test.ts +0 -205
- package/src/reset.until-found.a11y.browser.spec.ts +0 -76
- package/src/reset.until-found.test.ts +0 -32
- package/src/serverSafeComponents.test.ts +0 -675
- package/src/stylexValidation.source-build.test.mjs +0 -42
- package/src/tailwind-theme.test.ts +0 -153
- package/src/theme/MediaTheme.dom.test.tsx +0 -97
- package/src/theme/Theme.test.tsx +0 -337
- package/src/theme/__tests__/SpacingRootFontSize.a11y.chromium.spec.ts +0 -199
- package/src/theme/contrast.test.ts +0 -94
- package/src/theme/declarationBoundary.test.ts +0 -126
- package/src/theme/defineTheme.test.ts +0 -2028
- package/src/theme/derivedVarRegistry.test.ts +0 -592
- package/src/theme/expandColorScale.test.ts +0 -651
- package/src/theme/expandMotionScale.test.ts +0 -145
- package/src/theme/expandRadiusScale.test.ts +0 -59
- package/src/theme/expandTypeScale.test.ts +0 -351
- package/src/theme/extensibleAxes.test.ts +0 -432
- package/src/theme/generateThemeRules.test.ts +0 -1870
- package/src/theme/hct.test.ts +0 -93
- package/src/theme/onMediaTokens.test.ts +0 -431
- package/src/theme/publicThemeHelperContract.test.ts +0 -67
- package/src/theme/syntax/defineSyntaxTheme.diff.test.ts +0 -91
- package/src/theme/syntax/serverSafeSyntax.test.ts +0 -68
- package/src/theme/syntax/useSyntaxTheme.diff.test.tsx +0 -40
- package/src/theme/themeAdaptations.test.ts +0 -1795
- package/src/theme/themeMotion.test.ts +0 -620
- package/src/theme/themeRegistry.test.ts +0 -59
- package/src/theme/themingTargets.test.ts +0 -589
- package/src/theme/tokenValueCompat.test.ts +0 -204
- package/src/theme/tokens.test.ts +0 -441
- package/src/theme/useTheme.test.tsx +0 -322
- package/src/unicodePropertyEscapes.source-build.test.mjs +0 -69
- package/src/utils/chainEventHandlers.test.ts +0 -39
- package/src/utils/characters.test.ts +0 -141
- package/src/utils/color.test.ts +0 -233
- package/src/utils/composeEventHandlers.test.ts +0 -71
- package/src/utils/customPropertyArmLayering.test.ts +0 -131
- package/src/utils/dateParser.test.ts +0 -402
- package/src/utils/dateTypes.test.ts +0 -40
- package/src/utils/devWarning.test.ts +0 -56
- package/src/utils/edgeAutoscroll.test.ts +0 -192
- package/src/utils/focusReturn.test.ts +0 -119
- package/src/utils/getKey.test.ts +0 -25
- package/src/utils/getNodeText.test.ts +0 -24
- package/src/utils/hitArea.test.ts +0 -628
- package/src/utils/ime.test.ts +0 -32
- package/src/utils/inputAria.test.ts +0 -39
- package/src/utils/interactionModality.test.ts +0 -144
- package/src/utils/isApplePlatform.test.ts +0 -61
- package/src/utils/mergeProps.test.ts +0 -166
- package/src/utils/mergeRefs.test.ts +0 -48
- package/src/utils/parseStyleKey.test.ts +0 -56
- package/src/utils/plainDate.test.ts +0 -938
- package/src/utils/presentation.test.ts +0 -380
- package/src/utils/pressFeedback.test.ts +0 -1012
- package/src/utils/pressGesture.test.ts +0 -332
- package/src/utils/pressPaintPriority.test.ts +0 -80
- package/src/utils/pressPaintSource.test.ts +0 -65
- package/src/utils/pressableCoverage.test.ts +0 -192
- package/src/utils/primaryClick.test.ts +0 -38
- package/src/utils/safeUrl.test.ts +0 -101
- package/src/utils/sharedMutationObserver.test.ts +0 -106
- package/src/utils/sharedResizeObserver.test.ts +0 -283
- package/src/utils/themeProps.test.ts +0 -62
- package/src/utils/timeFormat.test.ts +0 -204
- package/src/utils/timeParser.test.ts +0 -295
- package/src/utils/touchPresentation.test.ts +0 -462
- package/src/utils/unicodeDigits.test.ts +0 -44
|
@@ -8,11 +8,10 @@
|
|
|
8
8
|
* @output Exports `createAnimatedLayout` and the opaque `AnimatedLayout`
|
|
9
9
|
* handle, `reportLayoutChange`, `playLayoutChange`, `holdLayoutExit` /
|
|
10
10
|
* `releaseLayoutExit`, the in-place swap (`holdLayoutSwap` /
|
|
11
|
-
* `playLayoutSwap`), `
|
|
12
|
-
*
|
|
13
|
-
* that produces the
|
|
14
|
-
*
|
|
15
|
-
* (`architecture:react-component-runtime` INV12)
|
|
11
|
+
* `playLayoutSwap`), the edge reveal's two-state form (`holdLayoutEdge` /
|
|
12
|
+
* `playLayoutEdge`), `playLayoutFrames` and `applyLayoutChangeTransition`:
|
|
13
|
+
* the one module that produces the size-change glide and the edge reveal
|
|
14
|
+
* `spec:AST-105` defines (`architecture:react-component-runtime` INV12)
|
|
16
15
|
* @position Motion foundation, internal to core. A handle comes from the
|
|
17
16
|
* public `useAnimatedLayout` hook; a component that takes it reports its
|
|
18
17
|
* size changes through this module.
|
|
@@ -45,8 +44,13 @@
|
|
|
45
44
|
* - A measurement no commit claims by the next frame is dropped.
|
|
46
45
|
* - The changed element plays its own entrance on the same spring, started in
|
|
47
46
|
* the same frame (`playLayoutChange`), or its exit: kept where it is while
|
|
48
|
-
* it gives up its space and conceals (`holdLayoutExit`).
|
|
49
|
-
*
|
|
47
|
+
* it gives up its space and conceals (`holdLayoutExit`). Both are FR9's
|
|
48
|
+
* edge reveal: from its block-end edge by default, or from the block-start
|
|
49
|
+
* or an inline edge it is given. Once the content on that edge's side
|
|
50
|
+
* glides, the edge rides that glide, frame by frame, so the two never part;
|
|
51
|
+
* a reversal (a close while it opens) starts from what the element shows.
|
|
52
|
+
* A disclosure's indicator turns on the same motion
|
|
53
|
+
* (`applyLayoutChangeTransition`).
|
|
50
54
|
* - A swap holds old content as one transient copy, inert and hidden from
|
|
51
55
|
* assistive technology, while new content enters in its place, on the same
|
|
52
56
|
* motion, and removes it when the swap ends (`holdLayoutSwap`,
|
|
@@ -54,6 +58,11 @@
|
|
|
54
58
|
* the swap's progress and, riding a gliding element, how far it has moved,
|
|
55
59
|
* so every part keeps to that glide; under Reduce Motion with a coarse
|
|
56
60
|
* pointer only opacity changes.
|
|
61
|
+
* - FR9's two-state form holds an element's old state as the swap's copy
|
|
62
|
+
* while its edge rides a gliding element, such as a rail beside its
|
|
63
|
+
* content (`holdLayoutEdge`, `playLayoutEdge`): the larger state is
|
|
64
|
+
* clipped on that edge, from the extent the element shows, and the caller
|
|
65
|
+
* adds only its own fades.
|
|
57
66
|
* - Frames on elements the page renders can play on the same motion with no
|
|
58
67
|
* copy (`playLayoutFrames`), such as a surface reaching over a gap a glide
|
|
59
68
|
* opens, and are released when the motion ends.
|
|
@@ -1147,15 +1156,322 @@ export function reportLayoutChange(
|
|
|
1147
1156
|
};
|
|
1148
1157
|
}
|
|
1149
1158
|
|
|
1159
|
+
// ---------------------------------------------------------------------------
|
|
1160
|
+
// The edge reveal (`spec:AST-105` FR9)
|
|
1161
|
+
// ---------------------------------------------------------------------------
|
|
1162
|
+
|
|
1163
|
+
/**
|
|
1164
|
+
* The edge an element reveals from or conceals to (`spec:AST-105` FR9): its
|
|
1165
|
+
* block-end edge by default, or its block-start, inline-start or inline-end
|
|
1166
|
+
* edge, such as a panel collapsing beside content. An inline edge follows
|
|
1167
|
+
* the element's direction.
|
|
1168
|
+
*/
|
|
1169
|
+
export type LayoutEdge =
|
|
1170
|
+
'block-end' | 'block-start' | 'inline-start' | 'inline-end';
|
|
1171
|
+
|
|
1172
|
+
/** Whether `element` lays its inline axis out right to left. */
|
|
1173
|
+
function isRtl(element: Element): boolean {
|
|
1174
|
+
return (
|
|
1175
|
+
element.ownerDocument.defaultView?.getComputedStyle(element).direction ===
|
|
1176
|
+
'rtl'
|
|
1177
|
+
);
|
|
1178
|
+
}
|
|
1179
|
+
|
|
1180
|
+
/**
|
|
1181
|
+
* The `clip-path` that hides `side` of an element from `edge`: `inset()`'s
|
|
1182
|
+
* sides are physical (top, right, bottom, left), so an inline edge is
|
|
1183
|
+
* mirrored right to left. `zero` is how the other three are written.
|
|
1184
|
+
*/
|
|
1185
|
+
function edgeClip(
|
|
1186
|
+
edge: LayoutEdge,
|
|
1187
|
+
side: string,
|
|
1188
|
+
zero: string,
|
|
1189
|
+
rtl: boolean,
|
|
1190
|
+
): string {
|
|
1191
|
+
const sides = [zero, zero, zero, zero];
|
|
1192
|
+
const index =
|
|
1193
|
+
edge === 'block-start'
|
|
1194
|
+
? 0
|
|
1195
|
+
: edge === 'block-end'
|
|
1196
|
+
? 2
|
|
1197
|
+
: (edge === 'inline-end') !== rtl
|
|
1198
|
+
? 1
|
|
1199
|
+
: 3;
|
|
1200
|
+
sides[index] = side;
|
|
1201
|
+
return `inset(${sides.join(' ')})`;
|
|
1202
|
+
}
|
|
1203
|
+
|
|
1204
|
+
/** A hidden fraction of the element, as a percentage clip on `edge`. */
|
|
1205
|
+
function fractionClip(edge: LayoutEdge, hidden: number, rtl: boolean): string {
|
|
1206
|
+
return edgeClip(edge, `${round(hidden * 100)}%`, '0', rtl);
|
|
1207
|
+
}
|
|
1208
|
+
|
|
1209
|
+
/** A hidden length of the element, in its own px, as a clip on `edge`. */
|
|
1210
|
+
function pxClip(edge: LayoutEdge, hidden: number, rtl: boolean): string {
|
|
1211
|
+
return edgeClip(edge, `${hidden}px`, '0px', rtl);
|
|
1212
|
+
}
|
|
1213
|
+
|
|
1214
|
+
/**
|
|
1215
|
+
* The element's size along `edge`'s axis, in its own px (a scaled ancestor
|
|
1216
|
+
* divided out), read from the layout the caller already laid out.
|
|
1217
|
+
*/
|
|
1218
|
+
function extentOf(element: Element, edge: LayoutEdge): number {
|
|
1219
|
+
const rect = element.getBoundingClientRect();
|
|
1220
|
+
const scale = scaleOf(element, rect);
|
|
1221
|
+
return edge.startsWith('inline')
|
|
1222
|
+
? rect.width / scale.x
|
|
1223
|
+
: rect.height / scale.y;
|
|
1224
|
+
}
|
|
1225
|
+
|
|
1226
|
+
/**
|
|
1227
|
+
* The last element before `element` in the area that takes part in layout:
|
|
1228
|
+
* its previous sibling, or its nearest ancestor's below the area (the mirror
|
|
1229
|
+
* of `nextInFlow`, for a start edge).
|
|
1230
|
+
*/
|
|
1231
|
+
function previousInFlow(element: Element, area: Element): Element | null {
|
|
1232
|
+
const view = element.ownerDocument.defaultView;
|
|
1233
|
+
const lastBox = (from: Element): Element | null => {
|
|
1234
|
+
const style = view?.getComputedStyle(from);
|
|
1235
|
+
if (style == null) {
|
|
1236
|
+
return from;
|
|
1237
|
+
}
|
|
1238
|
+
if (style.display === 'contents') {
|
|
1239
|
+
for (
|
|
1240
|
+
let child = from.lastElementChild;
|
|
1241
|
+
child != null;
|
|
1242
|
+
child = child.previousElementSibling
|
|
1243
|
+
) {
|
|
1244
|
+
const box = lastBox(child);
|
|
1245
|
+
if (box != null) {
|
|
1246
|
+
return box;
|
|
1247
|
+
}
|
|
1248
|
+
}
|
|
1249
|
+
return null;
|
|
1250
|
+
}
|
|
1251
|
+
return takesPart(from, style) ? from : null;
|
|
1252
|
+
};
|
|
1253
|
+
let node: Element | null = element;
|
|
1254
|
+
while (node != null && node !== area) {
|
|
1255
|
+
for (
|
|
1256
|
+
let sibling = node.previousElementSibling;
|
|
1257
|
+
sibling != null;
|
|
1258
|
+
sibling = sibling.previousElementSibling
|
|
1259
|
+
) {
|
|
1260
|
+
const box = lastBox(sibling);
|
|
1261
|
+
if (box != null) {
|
|
1262
|
+
return box;
|
|
1263
|
+
}
|
|
1264
|
+
}
|
|
1265
|
+
node = node.parentElement;
|
|
1266
|
+
}
|
|
1267
|
+
return null;
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1270
|
+
/**
|
|
1271
|
+
* The glide that moves `neighbour`: its own, or that of its nearest gliding
|
|
1272
|
+
* ancestor below the area that does not also hold `element` (one that holds
|
|
1273
|
+
* both moves the two together, so the edge does not ride it).
|
|
1274
|
+
*/
|
|
1275
|
+
function glideMoving(
|
|
1276
|
+
neighbour: Element,
|
|
1277
|
+
element: Element,
|
|
1278
|
+
area: Element,
|
|
1279
|
+
): Glide | null {
|
|
1280
|
+
for (
|
|
1281
|
+
let node: Element | null = neighbour;
|
|
1282
|
+
node != null && node !== area && !node.contains(element);
|
|
1283
|
+
node = node.parentElement
|
|
1284
|
+
) {
|
|
1285
|
+
const glide = glides.get(node);
|
|
1286
|
+
if (glide != null) {
|
|
1287
|
+
return glide;
|
|
1288
|
+
}
|
|
1289
|
+
}
|
|
1290
|
+
return null;
|
|
1291
|
+
}
|
|
1292
|
+
|
|
1293
|
+
/** A one-state reveal or conceal running on an element. */
|
|
1294
|
+
interface EdgeMotion {
|
|
1295
|
+
readonly animation: Animation;
|
|
1296
|
+
/** The fraction of the element it shows `t` ms in (1: all of it). */
|
|
1297
|
+
shownAt: (t: number) => number;
|
|
1298
|
+
}
|
|
1299
|
+
|
|
1300
|
+
/** Each element's running one-state reveal or conceal. */
|
|
1301
|
+
const edgeMotions = new WeakMap<Element, EdgeMotion>();
|
|
1302
|
+
|
|
1303
|
+
/**
|
|
1304
|
+
* What a one-state motion an adopter stopped (`releaseLayoutExit`) showed,
|
|
1305
|
+
* and the timeline time it stopped at: a reveal started in the same frame,
|
|
1306
|
+
* the reversal that stopped it, starts there.
|
|
1307
|
+
*/
|
|
1308
|
+
const stoppedShown = new WeakMap<
|
|
1309
|
+
Element,
|
|
1310
|
+
{readonly fraction: number; readonly at: number}
|
|
1311
|
+
>();
|
|
1312
|
+
|
|
1313
|
+
function timelineNow(element: Element): number {
|
|
1314
|
+
return Number(element.ownerDocument.timeline?.currentTime ?? Number.NaN);
|
|
1315
|
+
}
|
|
1316
|
+
|
|
1317
|
+
/** What `motion` shows now, by its animation's own clock. */
|
|
1318
|
+
function shownNow(motion: EdgeMotion): number {
|
|
1319
|
+
const time = Number(motion.animation.currentTime);
|
|
1320
|
+
return motion.shownAt(Number.isFinite(time) ? Math.max(0, time) : 0);
|
|
1321
|
+
}
|
|
1322
|
+
|
|
1323
|
+
/**
|
|
1324
|
+
* What `element` shows as a reveal or conceal starts: where the one-state
|
|
1325
|
+
* motion this one reverses had got to (it stops there), or `atRest`, all of
|
|
1326
|
+
* it for a conceal and nothing for a reveal.
|
|
1327
|
+
*/
|
|
1328
|
+
function shownAtStart(element: Element, atRest: number): number {
|
|
1329
|
+
const running = edgeMotions.get(element);
|
|
1330
|
+
if (running != null) {
|
|
1331
|
+
edgeMotions.delete(element);
|
|
1332
|
+
const fraction = shownNow(running);
|
|
1333
|
+
running.animation.cancel();
|
|
1334
|
+
return fraction;
|
|
1335
|
+
}
|
|
1336
|
+
const stopped = stoppedShown.get(element);
|
|
1337
|
+
stoppedShown.delete(element);
|
|
1338
|
+
if (stopped != null && stopped.at === timelineNow(element)) {
|
|
1339
|
+
return stopped.fraction;
|
|
1340
|
+
}
|
|
1341
|
+
return atRest;
|
|
1342
|
+
}
|
|
1343
|
+
|
|
1344
|
+
/** Records `animation` as `element`'s running one-state motion. */
|
|
1345
|
+
function trackEdgeMotion(
|
|
1346
|
+
element: Element,
|
|
1347
|
+
animation: Animation,
|
|
1348
|
+
shownAt: (t: number) => number,
|
|
1349
|
+
): EdgeMotion {
|
|
1350
|
+
const motion: EdgeMotion = {animation, shownAt};
|
|
1351
|
+
edgeMotions.set(element, motion);
|
|
1352
|
+
animation.addEventListener?.('finish', () => {
|
|
1353
|
+
if (edgeMotions.get(element) === motion) {
|
|
1354
|
+
edgeMotions.delete(element);
|
|
1355
|
+
}
|
|
1356
|
+
});
|
|
1357
|
+
return motion;
|
|
1358
|
+
}
|
|
1359
|
+
|
|
1360
|
+
/**
|
|
1361
|
+
* After this commit's glides start (the batch flushes in a microtask queued
|
|
1362
|
+
* before this one), before the frame paints: once the content on `edge`'s
|
|
1363
|
+
* side glides, the moving edge rides that glide, frame by frame, so the two
|
|
1364
|
+
* never part, a reversal included (the glide carries its running motion).
|
|
1365
|
+
* `hiddenAt` turns that content's offset towards the edge's side into the
|
|
1366
|
+
* length the element hides; `frame` turns that length into a keyframe.
|
|
1367
|
+
* Without that glide (nothing on that side in the area, or nothing that
|
|
1368
|
+
* moves) the motion keeps its own curve. The animation is kept, its frames
|
|
1369
|
+
* replaced; `onRide` hears the ridden hidden length over time.
|
|
1370
|
+
*/
|
|
1371
|
+
function rideNeighbour(
|
|
1372
|
+
element: Element,
|
|
1373
|
+
area: Element,
|
|
1374
|
+
edge: LayoutEdge,
|
|
1375
|
+
rtl: boolean,
|
|
1376
|
+
animation: Animation,
|
|
1377
|
+
isCurrent: () => boolean,
|
|
1378
|
+
hiddenAt: (towards: number) => number,
|
|
1379
|
+
frame: (hidden: number) => Keyframe,
|
|
1380
|
+
onRide: (hidden: (t: number) => number) => void,
|
|
1381
|
+
): void {
|
|
1382
|
+
const effect = animation.effect as KeyframeEffect | null;
|
|
1383
|
+
if (effect == null || typeof effect.setKeyframes !== 'function') {
|
|
1384
|
+
return;
|
|
1385
|
+
}
|
|
1386
|
+
queueMicrotask(() => {
|
|
1387
|
+
if (!isCurrent()) {
|
|
1388
|
+
return;
|
|
1389
|
+
}
|
|
1390
|
+
const isEnd = edge.endsWith('end');
|
|
1391
|
+
const neighbour = isEnd
|
|
1392
|
+
? nextInFlow(element, area)
|
|
1393
|
+
: previousInFlow(element, area);
|
|
1394
|
+
const glide =
|
|
1395
|
+
neighbour == null ? null : glideMoving(neighbour, element, area);
|
|
1396
|
+
if (neighbour == null || glide == null) {
|
|
1397
|
+
return;
|
|
1398
|
+
}
|
|
1399
|
+
// A glide that moves the element itself in the same batch, short of what
|
|
1400
|
+
// it shares with the neighbour (an item above them closing): the edge
|
|
1401
|
+
// rides the neighbour's offset from the element, not from the page.
|
|
1402
|
+
const own = glideMoving(element, neighbour, area);
|
|
1403
|
+
const durationMs = Math.max(glide.durationMs, own?.durationMs ?? 0);
|
|
1404
|
+
// The neighbour's offset from its place relative to the element's,
|
|
1405
|
+
// towards the edge's side.
|
|
1406
|
+
const sign = isEnd ? 1 : -1;
|
|
1407
|
+
const hidden = (t: number): number => {
|
|
1408
|
+
const offset = glide.offsetAt(t);
|
|
1409
|
+
const moved = own?.offsetAt(t) ?? {x: 0, y: 0};
|
|
1410
|
+
return hiddenAt(
|
|
1411
|
+
sign *
|
|
1412
|
+
(edge.startsWith('inline')
|
|
1413
|
+
? (rtl ? -1 : 1) * (offset.x - moved.x)
|
|
1414
|
+
: offset.y - moved.y),
|
|
1415
|
+
);
|
|
1416
|
+
};
|
|
1417
|
+
effect.setKeyframes(sampleOver(durationMs, t => frame(hidden(t))));
|
|
1418
|
+
effect.updateTiming?.({duration: durationMs});
|
|
1419
|
+
onRide(hidden);
|
|
1420
|
+
});
|
|
1421
|
+
}
|
|
1422
|
+
|
|
1423
|
+
/**
|
|
1424
|
+
* The one-state reveal or conceal rides the content on its edge's side: the
|
|
1425
|
+
* element shows what lies between its fixed edge and that content, a reveal
|
|
1426
|
+
* less by however far the content still is from its place towards it, a
|
|
1427
|
+
* conceal all of it less however far the content has come, fading with what
|
|
1428
|
+
* it hides.
|
|
1429
|
+
*/
|
|
1430
|
+
function rideEdge(
|
|
1431
|
+
element: Element,
|
|
1432
|
+
area: Element,
|
|
1433
|
+
edge: LayoutEdge,
|
|
1434
|
+
rtl: boolean,
|
|
1435
|
+
motion: EdgeMotion,
|
|
1436
|
+
isConceal: boolean,
|
|
1437
|
+
): void {
|
|
1438
|
+
const extent = extentOf(element, edge);
|
|
1439
|
+
if (!(extent > 0)) {
|
|
1440
|
+
return;
|
|
1441
|
+
}
|
|
1442
|
+
rideNeighbour(
|
|
1443
|
+
element,
|
|
1444
|
+
area,
|
|
1445
|
+
edge,
|
|
1446
|
+
rtl,
|
|
1447
|
+
motion.animation,
|
|
1448
|
+
() => edgeMotions.get(element) === motion,
|
|
1449
|
+
towards =>
|
|
1450
|
+
Math.min(extent, Math.max(0, isConceal ? extent - towards : -towards)),
|
|
1451
|
+
hidden => ({
|
|
1452
|
+
opacity: 1 - hidden / extent,
|
|
1453
|
+
clipPath: pxClip(edge, hidden, rtl),
|
|
1454
|
+
}),
|
|
1455
|
+
hiddenAt => {
|
|
1456
|
+
motion.shownAt = t => 1 - hiddenAt(t) / extent;
|
|
1457
|
+
},
|
|
1458
|
+
);
|
|
1459
|
+
}
|
|
1460
|
+
|
|
1150
1461
|
/**
|
|
1151
1462
|
* The changed element's own animation, on the same motion as the content
|
|
1152
|
-
* after it: content that appears reveals
|
|
1153
|
-
*
|
|
1154
|
-
*
|
|
1463
|
+
* after it (`spec:AST-105` FR4): content that appears reveals from its
|
|
1464
|
+
* block-end edge downward, or from the `edge` it is given (FR9), and its edge
|
|
1465
|
+
* rides the glide of the content on that side once it starts. A reveal that
|
|
1466
|
+
* reverses a running conceal (an adopter opens it again mid-exit, after
|
|
1467
|
+
* `releaseLayoutExit`) starts from what the element shows. Plays only with a
|
|
1468
|
+
* handle, inside its area and in the area's visible part. Returns the
|
|
1469
|
+
* entrance it started, or null when it played none.
|
|
1155
1470
|
*/
|
|
1156
1471
|
export function playLayoutChange(
|
|
1157
1472
|
handle: AnimatedLayout | null | undefined,
|
|
1158
1473
|
element: Element,
|
|
1474
|
+
{edge = 'block-end'}: {edge?: LayoutEdge} = {},
|
|
1159
1475
|
): Animation | null {
|
|
1160
1476
|
if (handle == null) {
|
|
1161
1477
|
return null;
|
|
@@ -1171,26 +1487,40 @@ export function playLayoutChange(
|
|
|
1171
1487
|
if (motion.kind === 'instant') {
|
|
1172
1488
|
return null;
|
|
1173
1489
|
}
|
|
1490
|
+
const from = shownAtStart(element, 0);
|
|
1174
1491
|
if (motion.kind === 'fade') {
|
|
1175
|
-
return safeAnimate(element, [{opacity:
|
|
1492
|
+
return safeAnimate(element, [{opacity: from}, {opacity: 1}], {
|
|
1176
1493
|
duration: motion.durationMs,
|
|
1177
1494
|
easing: motion.easing,
|
|
1178
1495
|
});
|
|
1179
1496
|
}
|
|
1180
|
-
|
|
1497
|
+
const {progress} = motion;
|
|
1498
|
+
const rtl = edge.startsWith('inline') && isRtl(element);
|
|
1499
|
+
const animation = safeAnimate(
|
|
1181
1500
|
element,
|
|
1182
|
-
sampleKeyframes(
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
})
|
|
1186
|
-
{duration:
|
|
1501
|
+
sampleKeyframes(progress, remaining => {
|
|
1502
|
+
const hidden = (1 - from) * remaining;
|
|
1503
|
+
return {opacity: 1 - hidden, clipPath: fractionClip(edge, hidden, rtl)};
|
|
1504
|
+
}),
|
|
1505
|
+
{duration: progress.durationMs, easing: 'linear'},
|
|
1187
1506
|
);
|
|
1507
|
+
if (animation != null) {
|
|
1508
|
+
const tracked = trackEdgeMotion(
|
|
1509
|
+
element,
|
|
1510
|
+
animation,
|
|
1511
|
+
t => 1 - (1 - from) * progress.remaining(t),
|
|
1512
|
+
);
|
|
1513
|
+
rideEdge(element, area, edge, rtl, tracked, false);
|
|
1514
|
+
}
|
|
1515
|
+
return animation;
|
|
1188
1516
|
}
|
|
1189
1517
|
|
|
1190
1518
|
/** The inline properties an exit sets, so a release removes exactly them. */
|
|
1191
1519
|
const EXIT_PROPERTIES = [
|
|
1192
1520
|
'margin-block-end',
|
|
1193
1521
|
'margin-inline-end',
|
|
1522
|
+
'margin-block-start',
|
|
1523
|
+
'margin-inline-start',
|
|
1194
1524
|
'pointer-events',
|
|
1195
1525
|
] as const;
|
|
1196
1526
|
|
|
@@ -1259,7 +1589,11 @@ function placeOf(
|
|
|
1259
1589
|
* so a gap or collapsing margins come out exact. Returns false, setting
|
|
1260
1590
|
* nothing, when no margin reaches that place.
|
|
1261
1591
|
*/
|
|
1262
|
-
function giveUpSpace(
|
|
1592
|
+
function giveUpSpace(
|
|
1593
|
+
element: HTMLElement,
|
|
1594
|
+
area: Element,
|
|
1595
|
+
edge: LayoutEdge = 'block-end',
|
|
1596
|
+
): boolean {
|
|
1263
1597
|
const view = element.ownerDocument.defaultView;
|
|
1264
1598
|
const parent =
|
|
1265
1599
|
element.parentElement == null
|
|
@@ -1270,24 +1604,43 @@ function giveUpSpace(element: HTMLElement, area: Element): boolean {
|
|
|
1270
1604
|
parent.display.includes('flex') &&
|
|
1271
1605
|
parent.flexDirection.startsWith('row');
|
|
1272
1606
|
const rtl = view?.getComputedStyle(element).direction === 'rtl';
|
|
1273
|
-
|
|
1274
|
-
|
|
1607
|
+
// The default block-end exit frees its space at its end, on the axis its
|
|
1608
|
+
// container lays it out on; an exit by another edge frees it on that
|
|
1609
|
+
// edge's side, so the element stays where it shows and the content beyond
|
|
1610
|
+
// that edge moves (FR9).
|
|
1611
|
+
const isStart = edge.endsWith('start');
|
|
1612
|
+
const property =
|
|
1613
|
+
edge === 'block-end'
|
|
1614
|
+
? isRow
|
|
1615
|
+
? 'margin-inline-end'
|
|
1616
|
+
: 'margin-block-end'
|
|
1617
|
+
: `margin-${edge}`;
|
|
1618
|
+
const isInline = property.includes('inline');
|
|
1619
|
+
const size = isInline ? element.offsetWidth : element.offsetHeight;
|
|
1275
1620
|
const next = nextInFlow(element, area);
|
|
1276
|
-
if (next == null) {
|
|
1621
|
+
if (next == null && !isStart) {
|
|
1277
1622
|
// Nothing after it in the area to land anywhere.
|
|
1278
1623
|
element.style.setProperty(property, `${-size}px`);
|
|
1279
1624
|
return true;
|
|
1280
1625
|
}
|
|
1281
1626
|
const own = element.style.getPropertyValue(property);
|
|
1282
1627
|
const ownPriority = element.style.getPropertyPriority(property);
|
|
1283
|
-
const axis =
|
|
1628
|
+
const axis = isInline ? 'inline' : 'block';
|
|
1284
1629
|
// The content after its container must land too: a flex-row item that
|
|
1285
1630
|
// sets its row's height moves what follows the row.
|
|
1286
1631
|
const afterParent =
|
|
1287
1632
|
element.parentElement == null || element.parentElement === area
|
|
1288
1633
|
? null
|
|
1289
1634
|
: nextInFlow(element.parentElement, area);
|
|
1290
|
-
|
|
1635
|
+
// By a start edge, what lies before it lands too, and the element itself
|
|
1636
|
+
// stays where it shows.
|
|
1637
|
+
const before = isStart ? previousInFlow(element, area) : null;
|
|
1638
|
+
const checked = [next, afterParent, before, isStart ? element : null].filter(
|
|
1639
|
+
(box): box is Element => box != null,
|
|
1640
|
+
);
|
|
1641
|
+
if (checked.length === 0) {
|
|
1642
|
+
return false;
|
|
1643
|
+
}
|
|
1291
1644
|
// The element's scale, read in the layout the caller's visibility check
|
|
1292
1645
|
// already laid out.
|
|
1293
1646
|
const scale = scaleOf(element, element.getBoundingClientRect());
|
|
@@ -1296,8 +1649,11 @@ function giveUpSpace(element: HTMLElement, area: Element): boolean {
|
|
|
1296
1649
|
// inside it).
|
|
1297
1650
|
const position = element.style.getPropertyValue('position');
|
|
1298
1651
|
const positionPriority = element.style.getPropertyPriority('position');
|
|
1652
|
+
const shown = isStart ? placeOf(element, rtl) : null;
|
|
1299
1653
|
element.style.setProperty('position', 'absolute', 'important');
|
|
1300
|
-
const targets = checked.map(box =>
|
|
1654
|
+
const targets = checked.map(box =>
|
|
1655
|
+
box === element && shown != null ? shown : placeOf(box, rtl),
|
|
1656
|
+
);
|
|
1301
1657
|
const target = targets[0];
|
|
1302
1658
|
if (position === '') {
|
|
1303
1659
|
element.style.removeProperty('position');
|
|
@@ -1310,7 +1666,7 @@ function giveUpSpace(element: HTMLElement, area: Element): boolean {
|
|
|
1310
1666
|
// A first guess (its box), then one correction from the measured result:
|
|
1311
1667
|
// a gap, a collapsed margin or the element's own margins.
|
|
1312
1668
|
element.style.setProperty(property, `${-size}px`);
|
|
1313
|
-
const guess = placeOf(
|
|
1669
|
+
const guess = placeOf(checked[0], rtl)[axis];
|
|
1314
1670
|
const correction = (target[axis] - guess) / perPx;
|
|
1315
1671
|
element.style.setProperty(property, `${-size + correction}px`);
|
|
1316
1672
|
// Everything checked must land on both axes: a flex-row item that sets
|
|
@@ -1355,6 +1711,11 @@ const replaced = new WeakMap<Element, Replaced>();
|
|
|
1355
1711
|
* element, after the change's `animate()` reported it measured, in the same
|
|
1356
1712
|
* task: the glide reads the layout once the element has given up its space.
|
|
1357
1713
|
*
|
|
1714
|
+
* It conceals to its block-end edge by default, or to the `edge` it is given
|
|
1715
|
+
* (`spec:AST-105` FR9), and its edge rides the glide of the content on that
|
|
1716
|
+
* side once it starts; a conceal that reverses a running reveal (a close
|
|
1717
|
+
* while it opens) starts from what the element shows.
|
|
1718
|
+
*
|
|
1358
1719
|
* Returns false, holding nothing, when the exit lands at once: no handle, a
|
|
1359
1720
|
* close no change in the area measured, outside the area or its visible part,
|
|
1360
1721
|
* Reduce Motion with a fine pointer, or a layout no end margin can free (a
|
|
@@ -1366,6 +1727,7 @@ export function holdLayoutExit(
|
|
|
1366
1727
|
handle: AnimatedLayout | null | undefined,
|
|
1367
1728
|
element: HTMLElement,
|
|
1368
1729
|
done: () => void,
|
|
1730
|
+
{edge = 'block-end'}: {edge?: LayoutEdge} = {},
|
|
1369
1731
|
): boolean {
|
|
1370
1732
|
if (handle == null) {
|
|
1371
1733
|
return false;
|
|
@@ -1403,7 +1765,7 @@ export function holdLayoutExit(
|
|
|
1403
1765
|
] as const,
|
|
1404
1766
|
),
|
|
1405
1767
|
};
|
|
1406
|
-
if (!giveUpSpace(element, area)) {
|
|
1768
|
+
if (!giveUpSpace(element, area, edge)) {
|
|
1407
1769
|
// A layout no end margin can free (a grid track and its gap, a flex-row
|
|
1408
1770
|
// item that sets its row's height): it hides at once, and the content
|
|
1409
1771
|
// after it takes its final place at once (`spec:AST-105` out of
|
|
@@ -1419,25 +1781,36 @@ export function holdLayoutExit(
|
|
|
1419
1781
|
// Out of reach while it conceals: no focus, no pointer, nothing read.
|
|
1420
1782
|
element.setAttribute('inert', '');
|
|
1421
1783
|
element.style.setProperty('pointer-events', 'none');
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
:
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1784
|
+
// A close while it opens: the reveal stops where it shows, and this starts
|
|
1785
|
+
// there.
|
|
1786
|
+
const from = shownAtStart(element, 1);
|
|
1787
|
+
const rtl = edge.startsWith('inline') && isRtl(element);
|
|
1788
|
+
let animation: Animation | null;
|
|
1789
|
+
if (motion.kind === 'fade') {
|
|
1790
|
+
animation = safeAnimate(element, [{opacity: from}, {opacity: 0}], {
|
|
1791
|
+
duration: motion.durationMs,
|
|
1792
|
+
easing: motion.easing,
|
|
1793
|
+
fill: 'forwards',
|
|
1794
|
+
});
|
|
1795
|
+
} else {
|
|
1796
|
+
const {progress} = motion;
|
|
1797
|
+
animation = safeAnimate(
|
|
1798
|
+
element,
|
|
1799
|
+
sampleKeyframes(progress, remaining => {
|
|
1800
|
+
const shown = from * remaining;
|
|
1801
|
+
return {opacity: shown, clipPath: fractionClip(edge, 1 - shown, rtl)};
|
|
1802
|
+
}),
|
|
1803
|
+
{duration: progress.durationMs, easing: 'linear', fill: 'forwards'},
|
|
1804
|
+
);
|
|
1805
|
+
if (animation != null) {
|
|
1806
|
+
const tracked = trackEdgeMotion(
|
|
1807
|
+
element,
|
|
1808
|
+
animation,
|
|
1809
|
+
t => from * progress.remaining(t),
|
|
1810
|
+
);
|
|
1811
|
+
rideEdge(element, area, edge, rtl, tracked, true);
|
|
1812
|
+
}
|
|
1813
|
+
}
|
|
1441
1814
|
exits.set(element, animation);
|
|
1442
1815
|
if (animation == null) {
|
|
1443
1816
|
// No Web Animations: nothing to wait for.
|
|
@@ -1462,6 +1835,16 @@ export function releaseLayoutExit(element: HTMLElement): void {
|
|
|
1462
1835
|
if (!exits.has(element)) {
|
|
1463
1836
|
return;
|
|
1464
1837
|
}
|
|
1838
|
+
// What the exit showed as it stopped: a reveal in the same frame (opened
|
|
1839
|
+
// again mid-exit) starts there.
|
|
1840
|
+
const running = edgeMotions.get(element);
|
|
1841
|
+
if (running != null) {
|
|
1842
|
+
edgeMotions.delete(element);
|
|
1843
|
+
stoppedShown.set(element, {
|
|
1844
|
+
fraction: shownNow(running),
|
|
1845
|
+
at: timelineNow(element),
|
|
1846
|
+
});
|
|
1847
|
+
}
|
|
1465
1848
|
exits.get(element)?.cancel();
|
|
1466
1849
|
exits.delete(element);
|
|
1467
1850
|
const prior = replaced.get(element);
|
|
@@ -1743,6 +2126,555 @@ export function playLayoutFrames(
|
|
|
1743
2126
|
return end;
|
|
1744
2127
|
}
|
|
1745
2128
|
|
|
2129
|
+
// ---------------------------------------------------------------------------
|
|
2130
|
+
// The edge reveal's two-state form (`spec:AST-105` FR9)
|
|
2131
|
+
// ---------------------------------------------------------------------------
|
|
2132
|
+
|
|
2133
|
+
/**
|
|
2134
|
+
* An element's old state, held before a change commits for FR9's two-state
|
|
2135
|
+
* edge reveal.
|
|
2136
|
+
*/
|
|
2137
|
+
export interface LayoutEdgeHold {
|
|
2138
|
+
readonly element: HTMLElement;
|
|
2139
|
+
/** Where it showed, in viewport coordinates. */
|
|
2140
|
+
readonly rect: DOMRect;
|
|
2141
|
+
/**
|
|
2142
|
+
* Its size along the edge's axis as it shows: what a running reveal shows
|
|
2143
|
+
* mid-motion, or its box.
|
|
2144
|
+
*/
|
|
2145
|
+
readonly extent: number;
|
|
2146
|
+
/** Its old state as one transient copy, or null when it cannot be held. */
|
|
2147
|
+
readonly swap: LayoutSwap | null;
|
|
2148
|
+
}
|
|
2149
|
+
|
|
2150
|
+
/** A playing two-state edge reveal. */
|
|
2151
|
+
export interface LayoutEdgeMotion {
|
|
2152
|
+
/** Ends it at once (a new change, an unmount). */
|
|
2153
|
+
end(): void;
|
|
2154
|
+
/**
|
|
2155
|
+
* What it shows now: its extent along the edge's axis and the motion's
|
|
2156
|
+
* progress (0 → 1), or null once it has settled.
|
|
2157
|
+
*/
|
|
2158
|
+
shown(): {readonly extent: number; readonly progress: number} | null;
|
|
2159
|
+
}
|
|
2160
|
+
|
|
2161
|
+
/** What the caller adds to a two-state edge reveal: only its own fades. */
|
|
2162
|
+
export interface LayoutEdgeParts {
|
|
2163
|
+
/** The old state's copy's opacity over the progress (1 when absent). */
|
|
2164
|
+
readonly copyOpacity?: (p: number) => number;
|
|
2165
|
+
/** Its text's opacity, on its own curve, when that differs from the copy's. */
|
|
2166
|
+
readonly copyText?: (p: number) => number;
|
|
2167
|
+
/** Parts the page renders, playing with the reveal (the new state's text). */
|
|
2168
|
+
readonly incoming?: ReadonlyArray<{
|
|
2169
|
+
readonly element: Element;
|
|
2170
|
+
readonly frames: (p: number) => Keyframe;
|
|
2171
|
+
}>;
|
|
2172
|
+
}
|
|
2173
|
+
|
|
2174
|
+
const SETTLED: LayoutEdgeMotion = {end: () => {}, shown: () => null};
|
|
2175
|
+
|
|
2176
|
+
/**
|
|
2177
|
+
* Before a change commits: hold `element`'s old state for FR9's two-state edge
|
|
2178
|
+
* reveal, its box and the extent it shows along `edge`'s axis (`shown`, from a
|
|
2179
|
+
* running reveal, or its box), and its old state as one transient copy (null
|
|
2180
|
+
* when it cannot be copied, or under an immediate change). Returns null
|
|
2181
|
+
* without the element or without Web Animations.
|
|
2182
|
+
*/
|
|
2183
|
+
export function holdLayoutEdge(
|
|
2184
|
+
handle: AnimatedLayout | null | undefined,
|
|
2185
|
+
element: HTMLElement | null,
|
|
2186
|
+
{
|
|
2187
|
+
edge = 'block-end',
|
|
2188
|
+
shown = null,
|
|
2189
|
+
}: {edge?: LayoutEdge; shown?: number | null} = {},
|
|
2190
|
+
): LayoutEdgeHold | null {
|
|
2191
|
+
if (element == null || typeof element.animate !== 'function') {
|
|
2192
|
+
return null;
|
|
2193
|
+
}
|
|
2194
|
+
const rect = element.getBoundingClientRect();
|
|
2195
|
+
return {
|
|
2196
|
+
element,
|
|
2197
|
+
rect,
|
|
2198
|
+
extent: shown ?? (edge.startsWith('inline') ? rect.width : rect.height),
|
|
2199
|
+
swap: holdLayoutSwap(handle, element),
|
|
2200
|
+
};
|
|
2201
|
+
}
|
|
2202
|
+
|
|
2203
|
+
/**
|
|
2204
|
+
* After the change commits, before paint: FR9's two-state edge reveal, on
|
|
2205
|
+
* FR4's one motion. The state that is larger along `edge`'s axis is clipped
|
|
2206
|
+
* on that edge, from the extent the element showed to the new one: a conceal
|
|
2207
|
+
* covers the old state, held as the swap's copy, with the element raised
|
|
2208
|
+
* above it; a reveal opens the element, under the old state. With
|
|
2209
|
+
* `rideWith`, an element the glide moves after that edge (a rail's content
|
|
2210
|
+
* column), the edge rides its glide, frame by frame, so the two never part,
|
|
2211
|
+
* also when this reverses a running reveal; without it the edge follows the
|
|
2212
|
+
* motion's curve. `parts` gives the caller's own fades, told whether the edge
|
|
2213
|
+
* conceals and the element as it is now. Under Reduce Motion it follows
|
|
2214
|
+
* `design:reduced-motion`: opacity only under a coarse primary pointer (DR2),
|
|
2215
|
+
* an immediate change otherwise (DR3). `current` is the element after the
|
|
2216
|
+
* commit, when it remounted.
|
|
2217
|
+
*/
|
|
2218
|
+
export function playLayoutEdge(
|
|
2219
|
+
hold: LayoutEdgeHold,
|
|
2220
|
+
current: HTMLElement | null,
|
|
2221
|
+
handle: AnimatedLayout,
|
|
2222
|
+
{
|
|
2223
|
+
edge = 'block-end',
|
|
2224
|
+
rideWith = null,
|
|
2225
|
+
parts,
|
|
2226
|
+
}: {
|
|
2227
|
+
edge?: LayoutEdge;
|
|
2228
|
+
rideWith?: Element | null;
|
|
2229
|
+
parts?: (isConceal: boolean, element: HTMLElement) => LayoutEdgeParts;
|
|
2230
|
+
} = {},
|
|
2231
|
+
): LayoutEdgeMotion {
|
|
2232
|
+
const {rect: before, swap, extent: from} = hold;
|
|
2233
|
+
const element = current?.isConnected === true ? current : hold.element;
|
|
2234
|
+
if (!element.isConnected) {
|
|
2235
|
+
return SETTLED;
|
|
2236
|
+
}
|
|
2237
|
+
const motion = layoutMotion(element);
|
|
2238
|
+
const next = element.getBoundingClientRect();
|
|
2239
|
+
const isInline = edge.startsWith('inline');
|
|
2240
|
+
const extentOfBox = (box: DOMRect) => (isInline ? box.width : box.height);
|
|
2241
|
+
const to = extentOfBox(next);
|
|
2242
|
+
if (motion.kind === 'instant' || Math.abs(to - from) < 0.5) {
|
|
2243
|
+
return SETTLED;
|
|
2244
|
+
}
|
|
2245
|
+
const isConceal = to < from;
|
|
2246
|
+
const isEnd = edge.endsWith('end');
|
|
2247
|
+
const rtl = isInline && isRtl(element);
|
|
2248
|
+
// The row that holds the element and the ridden element, or its parent.
|
|
2249
|
+
const host =
|
|
2250
|
+
rideWith?.parentElement != null && rideWith.parentElement.contains(element)
|
|
2251
|
+
? rideWith.parentElement
|
|
2252
|
+
: element.parentElement;
|
|
2253
|
+
// Riding needs the swap: its frames carry the ridden element's travel.
|
|
2254
|
+
// Without one (old state that cannot be copied) the edge follows the
|
|
2255
|
+
// motion's curve.
|
|
2256
|
+
const rides =
|
|
2257
|
+
host != null &&
|
|
2258
|
+
rideWith != null &&
|
|
2259
|
+
rideWith.parentElement === host &&
|
|
2260
|
+
swap != null;
|
|
2261
|
+
// The ridden element's travel so far, towards the edge's side.
|
|
2262
|
+
const sign = isEnd ? 1 : -1;
|
|
2263
|
+
const towards = (ride: LayoutRide) =>
|
|
2264
|
+
sign * (isInline ? (rtl ? -ride.x : ride.x) : ride.y);
|
|
2265
|
+
const extentAt = (p: number, ride: LayoutRide) =>
|
|
2266
|
+
rides ? from + towards(ride) : from + (to - from) * p;
|
|
2267
|
+
const clip = (hidden: number) => pxClip(edge, hidden, rtl);
|
|
2268
|
+
const now = () => Number(element.ownerDocument.timeline?.currentTime ?? 0);
|
|
2269
|
+
const startedAt = now();
|
|
2270
|
+
const durationMs =
|
|
2271
|
+
motion.kind === 'spring' ? motion.progress.durationMs : motion.durationMs;
|
|
2272
|
+
const shown = (): {extent: number; progress: number} | null => {
|
|
2273
|
+
const elapsed = now() - startedAt;
|
|
2274
|
+
if (elapsed >= durationMs) {
|
|
2275
|
+
return null;
|
|
2276
|
+
}
|
|
2277
|
+
const progress =
|
|
2278
|
+
motion.kind === 'spring' ? 1 - motion.progress.remaining(elapsed) : 0;
|
|
2279
|
+
let extent = from + (to - from) * progress;
|
|
2280
|
+
if (rides && rideWith != null) {
|
|
2281
|
+
// The edge is the ridden element's: read it where it shows.
|
|
2282
|
+
const ridden = rideWith.getBoundingClientRect();
|
|
2283
|
+
const own = element.getBoundingClientRect();
|
|
2284
|
+
extent = !isInline
|
|
2285
|
+
? isEnd
|
|
2286
|
+
? ridden.top - own.top
|
|
2287
|
+
: own.bottom - ridden.bottom
|
|
2288
|
+
: isEnd !== rtl
|
|
2289
|
+
? ridden.left - own.left
|
|
2290
|
+
: own.right - ridden.right;
|
|
2291
|
+
}
|
|
2292
|
+
return {extent, progress};
|
|
2293
|
+
};
|
|
2294
|
+
// The ride, when the ridden element does not glide: its whole travel at
|
|
2295
|
+
// once, physical (its old place less its new).
|
|
2296
|
+
const travel = sign * (from - to);
|
|
2297
|
+
const rideSpec =
|
|
2298
|
+
rides && rideWith != null
|
|
2299
|
+
? {
|
|
2300
|
+
element: rideWith,
|
|
2301
|
+
travel: isInline
|
|
2302
|
+
? {x: rtl ? -travel : travel, y: 0}
|
|
2303
|
+
: {x: 0, y: travel},
|
|
2304
|
+
isCopyMoved: false,
|
|
2305
|
+
}
|
|
2306
|
+
: undefined;
|
|
2307
|
+
// The copy keeps the element's fixed edge (the one opposite `edge`) where
|
|
2308
|
+
// the element is now, so it meets the element wherever it sits.
|
|
2309
|
+
const fixedAtStart = isEnd !== (isInline && rtl);
|
|
2310
|
+
const at = new DOMRect(
|
|
2311
|
+
isInline && !fixedAtStart ? next.right - before.width : next.left,
|
|
2312
|
+
!isInline && !isEnd ? next.bottom - before.height : next.top,
|
|
2313
|
+
before.width,
|
|
2314
|
+
before.height,
|
|
2315
|
+
);
|
|
2316
|
+
const own = parts?.(isConceal, element) ?? {};
|
|
2317
|
+
const copyOpacity = own.copyOpacity ?? (() => 1);
|
|
2318
|
+
|
|
2319
|
+
if (isConceal) {
|
|
2320
|
+
// A conceal covers the old state, held by the swap, from the extent it
|
|
2321
|
+
// shows down to the new one; the element, raised above it, shows through.
|
|
2322
|
+
if (swap == null || host == null) {
|
|
2323
|
+
return SETTLED;
|
|
2324
|
+
}
|
|
2325
|
+
let raised: HTMLElement | null = element;
|
|
2326
|
+
while (raised != null && raised.parentElement !== host) {
|
|
2327
|
+
raised = raised.parentElement;
|
|
2328
|
+
}
|
|
2329
|
+
const restore =
|
|
2330
|
+
raised == null
|
|
2331
|
+
? null
|
|
2332
|
+
: {position: raised.style.position, zIndex: raised.style.zIndex};
|
|
2333
|
+
if (raised != null) {
|
|
2334
|
+
if (getComputedStyle(raised).position === 'static') {
|
|
2335
|
+
raised.style.position = 'relative';
|
|
2336
|
+
}
|
|
2337
|
+
raised.style.zIndex = '2';
|
|
2338
|
+
}
|
|
2339
|
+
const end = playLayoutSwap(
|
|
2340
|
+
{...swap, rect: at},
|
|
2341
|
+
{
|
|
2342
|
+
host,
|
|
2343
|
+
isOpaque: true,
|
|
2344
|
+
copy: (p, ride) => ({
|
|
2345
|
+
clipPath: clip(extentOfBox(before) - extentAt(p, ride)),
|
|
2346
|
+
opacity: copyOpacity(p),
|
|
2347
|
+
}),
|
|
2348
|
+
copyText: own.copyText,
|
|
2349
|
+
rideWith: rideSpec,
|
|
2350
|
+
onEnd: () => {
|
|
2351
|
+
if (raised != null && restore != null) {
|
|
2352
|
+
raised.style.position = restore.position;
|
|
2353
|
+
raised.style.zIndex = restore.zIndex;
|
|
2354
|
+
}
|
|
2355
|
+
},
|
|
2356
|
+
incoming: own.incoming ?? [],
|
|
2357
|
+
},
|
|
2358
|
+
);
|
|
2359
|
+
return {end, shown};
|
|
2360
|
+
}
|
|
2361
|
+
|
|
2362
|
+
// A reveal opens the element from the extent it showed, under the old
|
|
2363
|
+
// state held by the same swap.
|
|
2364
|
+
const incoming = [
|
|
2365
|
+
{
|
|
2366
|
+
element,
|
|
2367
|
+
frames: (p: number, ride: LayoutRide) => ({
|
|
2368
|
+
clipPath: clip(to - extentAt(p, ride)),
|
|
2369
|
+
}),
|
|
2370
|
+
},
|
|
2371
|
+
...(own.incoming ?? []),
|
|
2372
|
+
];
|
|
2373
|
+
const end =
|
|
2374
|
+
swap != null && host != null
|
|
2375
|
+
? playLayoutSwap(
|
|
2376
|
+
{...swap, rect: at},
|
|
2377
|
+
{
|
|
2378
|
+
host,
|
|
2379
|
+
isOpaque: true,
|
|
2380
|
+
copy: p => ({opacity: copyOpacity(p)}),
|
|
2381
|
+
copyText: own.copyText,
|
|
2382
|
+
rideWith: rideSpec,
|
|
2383
|
+
incoming,
|
|
2384
|
+
},
|
|
2385
|
+
)
|
|
2386
|
+
: playLayoutFrames(handle, incoming);
|
|
2387
|
+
return {end, shown};
|
|
2388
|
+
}
|
|
2389
|
+
|
|
2390
|
+
// ---------------------------------------------------------------------------
|
|
2391
|
+
// The edge reveal of a resized element (`spec:AST-105` FR9, no copy)
|
|
2392
|
+
// ---------------------------------------------------------------------------
|
|
2393
|
+
|
|
2394
|
+
/** A resized element's edge reveal, reported around its change. */
|
|
2395
|
+
export interface LayoutEdgeReport {
|
|
2396
|
+
/** Before the change commits: measures the element and what moves. */
|
|
2397
|
+
measureBefore(): void;
|
|
2398
|
+
/**
|
|
2399
|
+
* After the new size is applied, before paint: the element reveals or
|
|
2400
|
+
* conceals by its edge, from the extent it showed to its new one, and the
|
|
2401
|
+
* content beside it glides on the same motion.
|
|
2402
|
+
*/
|
|
2403
|
+
animate(): void;
|
|
2404
|
+
/** Ends a running reveal or conceal at once, removing what it holds. */
|
|
2405
|
+
cancel(): void;
|
|
2406
|
+
}
|
|
2407
|
+
|
|
2408
|
+
/** A running edge reveal of a resized element. */
|
|
2409
|
+
interface ResizeReveal {
|
|
2410
|
+
readonly animation: Animation | null;
|
|
2411
|
+
/** The extent it shows `t` ms in, in its own px. */
|
|
2412
|
+
shownAt: (t: number) => number;
|
|
2413
|
+
/** Its extent along the edge's axis as laid out, held or not. */
|
|
2414
|
+
readonly box: number;
|
|
2415
|
+
/** Ends it, putting back what it replaced. */
|
|
2416
|
+
release(): void;
|
|
2417
|
+
}
|
|
2418
|
+
|
|
2419
|
+
const resizeReveals = new WeakMap<Element, ResizeReveal>();
|
|
2420
|
+
|
|
2421
|
+
/** The inline properties a size hold sets, by axis. */
|
|
2422
|
+
const HOLD_PROPERTIES = {
|
|
2423
|
+
inline: [
|
|
2424
|
+
'inline-size',
|
|
2425
|
+
'min-inline-size',
|
|
2426
|
+
'max-inline-size',
|
|
2427
|
+
'flex-basis',
|
|
2428
|
+
'flex-grow',
|
|
2429
|
+
'flex-shrink',
|
|
2430
|
+
],
|
|
2431
|
+
block: [
|
|
2432
|
+
'block-size',
|
|
2433
|
+
'min-block-size',
|
|
2434
|
+
'max-block-size',
|
|
2435
|
+
'flex-basis',
|
|
2436
|
+
'flex-grow',
|
|
2437
|
+
'flex-shrink',
|
|
2438
|
+
],
|
|
2439
|
+
} as const;
|
|
2440
|
+
|
|
2441
|
+
/**
|
|
2442
|
+
* Holds `element` at `extent` own px along `edge`'s axis while it conceals to
|
|
2443
|
+
* `keep`, freeing the difference by the margin on that edge's side, so what
|
|
2444
|
+
* lies beyond the edge stays where the new size puts it. Returns what puts
|
|
2445
|
+
* back every value it set, or null when no margin frees it (the content on
|
|
2446
|
+
* that side did not stay put), having set nothing.
|
|
2447
|
+
*/
|
|
2448
|
+
function holdExtent(
|
|
2449
|
+
element: HTMLElement,
|
|
2450
|
+
area: Element,
|
|
2451
|
+
edge: LayoutEdge,
|
|
2452
|
+
extent: number,
|
|
2453
|
+
keep: number,
|
|
2454
|
+
): (() => void) | null {
|
|
2455
|
+
const axis = edge.startsWith('inline') ? 'inline' : 'block';
|
|
2456
|
+
const margin = `margin-${edge}`;
|
|
2457
|
+
const properties = [...HOLD_PROPERTIES[axis], margin];
|
|
2458
|
+
const prior = properties.map(
|
|
2459
|
+
property =>
|
|
2460
|
+
[
|
|
2461
|
+
property,
|
|
2462
|
+
element.style.getPropertyValue(property),
|
|
2463
|
+
element.style.getPropertyPriority(property),
|
|
2464
|
+
] as const,
|
|
2465
|
+
);
|
|
2466
|
+
const restore = () => {
|
|
2467
|
+
for (const [property, value, priority] of prior) {
|
|
2468
|
+
if (value === '') {
|
|
2469
|
+
element.style.removeProperty(property);
|
|
2470
|
+
} else {
|
|
2471
|
+
element.style.setProperty(property, value, priority);
|
|
2472
|
+
}
|
|
2473
|
+
}
|
|
2474
|
+
};
|
|
2475
|
+
const isEnd = edge.endsWith('end');
|
|
2476
|
+
const rtl = axis === 'inline' && isRtl(element);
|
|
2477
|
+
const beyond = isEnd
|
|
2478
|
+
? nextInFlow(element, area)
|
|
2479
|
+
: previousInFlow(element, area);
|
|
2480
|
+
const before = beyond == null ? null : placeOf(beyond, rtl);
|
|
2481
|
+
const size = `${extent}px`;
|
|
2482
|
+
element.style.setProperty(`${axis}-size`, size, 'important');
|
|
2483
|
+
element.style.setProperty(`min-${axis}-size`, size, 'important');
|
|
2484
|
+
element.style.setProperty(`max-${axis}-size`, size, 'important');
|
|
2485
|
+
element.style.setProperty('flex-basis', 'auto', 'important');
|
|
2486
|
+
element.style.setProperty('flex-grow', '0', 'important');
|
|
2487
|
+
element.style.setProperty('flex-shrink', '0', 'important');
|
|
2488
|
+
element.style.setProperty(margin, `${keep - extent}px`, 'important');
|
|
2489
|
+
if (beyond != null && before != null) {
|
|
2490
|
+
// One correction from the measured result (a gap, the element's own
|
|
2491
|
+
// margin), then everything beyond the edge must be where it was.
|
|
2492
|
+
const landed = placeOf(beyond, rtl);
|
|
2493
|
+
const scale = scaleOf(element, element.getBoundingClientRect());
|
|
2494
|
+
const perPx = axis === 'inline' ? scale.x : scale.y;
|
|
2495
|
+
const sign = isEnd ? 1 : -1;
|
|
2496
|
+
const drift = (landed[axis] - before[axis]) * sign;
|
|
2497
|
+
if (Math.abs(drift) > 0.5) {
|
|
2498
|
+
element.style.setProperty(
|
|
2499
|
+
margin,
|
|
2500
|
+
`${keep - extent - drift / perPx}px`,
|
|
2501
|
+
'important',
|
|
2502
|
+
);
|
|
2503
|
+
}
|
|
2504
|
+
const settled = placeOf(beyond, rtl);
|
|
2505
|
+
if (
|
|
2506
|
+
Math.abs(settled.block - before.block) > 1 ||
|
|
2507
|
+
Math.abs(settled.inline - before.inline) > 1
|
|
2508
|
+
) {
|
|
2509
|
+
restore();
|
|
2510
|
+
return null;
|
|
2511
|
+
}
|
|
2512
|
+
}
|
|
2513
|
+
return restore;
|
|
2514
|
+
}
|
|
2515
|
+
|
|
2516
|
+
/**
|
|
2517
|
+
* Reports a resized element's edge reveal (`spec:AST-105` FR9) with no copy:
|
|
2518
|
+
* a resize controller's pane collapsing or opening beside the content it
|
|
2519
|
+
* shares a row with (`component:Resizable` FR8, `component:LayoutPanel`
|
|
2520
|
+
* FR7). Measure before the change commits and animate after the
|
|
2521
|
+
* new size is applied, as `reportLayoutChange` does; the content beside the
|
|
2522
|
+
* element glides through that report. A larger extent reveals by `edge` from
|
|
2523
|
+
* the extent the element showed. A smaller one conceals: the element is held
|
|
2524
|
+
* at the extent it was laid out at, the difference freed by the margin on
|
|
2525
|
+
* that edge's side so the content beyond it stays where the new size puts it,
|
|
2526
|
+
* and clipped down to its new extent; the hold goes when the motion ends. The
|
|
2527
|
+
* moving edge rides the glide of the content on that side, frame by frame,
|
|
2528
|
+
* and a change made while it runs starts from the extent it shows. It slides:
|
|
2529
|
+
* nothing fades. Under Reduce Motion with a coarse primary pointer a reveal
|
|
2530
|
+
* fades in and a conceal lands at once (`design:reduced-motion` DR2); with a
|
|
2531
|
+
* fine one every change lands at once (DR3).
|
|
2532
|
+
*/
|
|
2533
|
+
export function reportLayoutEdge(
|
|
2534
|
+
handle: AnimatedLayout | null | undefined,
|
|
2535
|
+
getElement: () => HTMLElement | null,
|
|
2536
|
+
{edge = 'block-end'}: {edge?: LayoutEdge} = {},
|
|
2537
|
+
): LayoutEdgeReport {
|
|
2538
|
+
const report = reportLayoutChange(handle, getElement);
|
|
2539
|
+
/**
|
|
2540
|
+
* What the element showed, its laid-out extent and its box, before the
|
|
2541
|
+
* change.
|
|
2542
|
+
*/
|
|
2543
|
+
let measured: {shown: number; box: number; rect: DOMRect} | null = null;
|
|
2544
|
+
const release = (element: HTMLElement | null) => {
|
|
2545
|
+
if (element == null) {
|
|
2546
|
+
return;
|
|
2547
|
+
}
|
|
2548
|
+
resizeReveals.get(element)?.release();
|
|
2549
|
+
};
|
|
2550
|
+
return {
|
|
2551
|
+
measureBefore() {
|
|
2552
|
+
const element = getElement();
|
|
2553
|
+
measured = null;
|
|
2554
|
+
if (element != null) {
|
|
2555
|
+
const running = resizeReveals.get(element);
|
|
2556
|
+
const elapsed = Number(running?.animation?.currentTime);
|
|
2557
|
+
const rect = element.getBoundingClientRect();
|
|
2558
|
+
measured =
|
|
2559
|
+
running == null
|
|
2560
|
+
? {
|
|
2561
|
+
shown: extentOf(element, edge),
|
|
2562
|
+
box: extentOf(element, edge),
|
|
2563
|
+
rect,
|
|
2564
|
+
}
|
|
2565
|
+
: {
|
|
2566
|
+
shown: running.shownAt(Number.isFinite(elapsed) ? elapsed : 0),
|
|
2567
|
+
box: running.box,
|
|
2568
|
+
rect,
|
|
2569
|
+
};
|
|
2570
|
+
running?.release();
|
|
2571
|
+
}
|
|
2572
|
+
report.measureBefore();
|
|
2573
|
+
},
|
|
2574
|
+
animate() {
|
|
2575
|
+
report.animate();
|
|
2576
|
+
const element = getElement();
|
|
2577
|
+
const before = measured;
|
|
2578
|
+
measured = null;
|
|
2579
|
+
if (handle == null || element == null || before == null) {
|
|
2580
|
+
return;
|
|
2581
|
+
}
|
|
2582
|
+
const area = areaOf(handle, element);
|
|
2583
|
+
if (area == null) {
|
|
2584
|
+
return;
|
|
2585
|
+
}
|
|
2586
|
+
const after = extentOf(element, edge);
|
|
2587
|
+
if (Math.abs(after - before.shown) < 0.5) {
|
|
2588
|
+
return;
|
|
2589
|
+
}
|
|
2590
|
+
// In the area's visible part before or after: a pane collapsing to
|
|
2591
|
+
// nothing has no box after.
|
|
2592
|
+
const visible = visibleRect(area);
|
|
2593
|
+
if (
|
|
2594
|
+
!intersects(element.getBoundingClientRect(), visible) &&
|
|
2595
|
+
!intersects(before.rect, visible)
|
|
2596
|
+
) {
|
|
2597
|
+
return;
|
|
2598
|
+
}
|
|
2599
|
+
const motion = layoutMotion(area);
|
|
2600
|
+
if (motion.kind === 'instant') {
|
|
2601
|
+
return;
|
|
2602
|
+
}
|
|
2603
|
+
const isConceal = after < before.shown;
|
|
2604
|
+
if (motion.kind === 'fade') {
|
|
2605
|
+
if (!isConceal) {
|
|
2606
|
+
safeAnimate(element, [{opacity: 0}, {opacity: 1}], {
|
|
2607
|
+
duration: motion.durationMs,
|
|
2608
|
+
easing: motion.easing,
|
|
2609
|
+
});
|
|
2610
|
+
}
|
|
2611
|
+
return;
|
|
2612
|
+
}
|
|
2613
|
+
const {progress} = motion;
|
|
2614
|
+
const rtl = edge.startsWith('inline') && isRtl(element);
|
|
2615
|
+
// The box the clip works in: the new one for a reveal; for a conceal,
|
|
2616
|
+
// the one it was laid out at, held while it runs.
|
|
2617
|
+
const box = isConceal ? Math.max(before.box, before.shown) : after;
|
|
2618
|
+
const restore = isConceal
|
|
2619
|
+
? holdExtent(element, area, edge, box, after)
|
|
2620
|
+
: () => {};
|
|
2621
|
+
if (restore == null) {
|
|
2622
|
+
return;
|
|
2623
|
+
}
|
|
2624
|
+
// Hidden at the start and at the end, in the box's own px.
|
|
2625
|
+
const from = box - before.shown;
|
|
2626
|
+
const to = box - after;
|
|
2627
|
+
const curve = (t: number) => to + (from - to) * progress.remaining(t);
|
|
2628
|
+
const animation = safeAnimate(
|
|
2629
|
+
element,
|
|
2630
|
+
sampleOver(progress.durationMs, t => ({
|
|
2631
|
+
clipPath: pxClip(edge, curve(t), rtl),
|
|
2632
|
+
})),
|
|
2633
|
+
{duration: progress.durationMs, easing: 'linear'},
|
|
2634
|
+
);
|
|
2635
|
+
const reveal: ResizeReveal = {
|
|
2636
|
+
animation,
|
|
2637
|
+
shownAt: t => box - curve(t),
|
|
2638
|
+
box,
|
|
2639
|
+
release: () => {
|
|
2640
|
+
if (resizeReveals.get(element) !== reveal) {
|
|
2641
|
+
return;
|
|
2642
|
+
}
|
|
2643
|
+
resizeReveals.delete(element);
|
|
2644
|
+
animation?.cancel();
|
|
2645
|
+
restore();
|
|
2646
|
+
},
|
|
2647
|
+
};
|
|
2648
|
+
if (animation == null) {
|
|
2649
|
+
restore();
|
|
2650
|
+
return;
|
|
2651
|
+
}
|
|
2652
|
+
resizeReveals.set(element, reveal);
|
|
2653
|
+
animation.addEventListener?.('finish', reveal.release);
|
|
2654
|
+
rideNeighbour(
|
|
2655
|
+
element,
|
|
2656
|
+
area,
|
|
2657
|
+
edge,
|
|
2658
|
+
rtl,
|
|
2659
|
+
animation,
|
|
2660
|
+
() => resizeReveals.get(element) === reveal,
|
|
2661
|
+
// Anywhere in its box: the content beside it may carry a running
|
|
2662
|
+
// motion past where this one starts or ends, and the edge follows.
|
|
2663
|
+
towards =>
|
|
2664
|
+
Math.min(box, Math.max(0, isConceal ? to - towards : -towards)),
|
|
2665
|
+
hidden => ({clipPath: pxClip(edge, hidden, rtl)}),
|
|
2666
|
+
hiddenAt => {
|
|
2667
|
+
reveal.shownAt = t => box - hiddenAt(t);
|
|
2668
|
+
},
|
|
2669
|
+
);
|
|
2670
|
+
},
|
|
2671
|
+
cancel() {
|
|
2672
|
+
measured = null;
|
|
2673
|
+
release(getElement());
|
|
2674
|
+
},
|
|
2675
|
+
};
|
|
2676
|
+
}
|
|
2677
|
+
|
|
1746
2678
|
/**
|
|
1747
2679
|
* A disclosure's indicator (its chevron) turns on the same motion as the
|
|
1748
2680
|
* glide: its CSS transition takes the spring as a `linear()` easing, and an
|