@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
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
schema_version: 3
|
|
3
|
-
template_version: 7
|
|
4
|
-
kind: component
|
|
5
|
-
id: component:Thumbnail
|
|
6
|
-
authority: current
|
|
7
|
-
archive_reason: null
|
|
8
|
-
superseded_by: null
|
|
9
|
-
approved_by: cixzhang
|
|
10
|
-
approved_at: 2026-10-26
|
|
11
|
-
owners: [cixzhang]
|
|
12
|
-
review_triggers: [public-api, behavior, layout, theming, accessibility]
|
|
13
|
-
verified_by:
|
|
14
|
-
[
|
|
15
|
-
packages/core/src/Thumbnail/Thumbnail.test.tsx,
|
|
16
|
-
packages/core/src/theme/themingTargets.test.ts,
|
|
17
|
-
apps/storybook/stories/Thumbnail.stories.tsx,
|
|
18
|
-
.github/visual-baseline/manifest.json,
|
|
19
|
-
]
|
|
20
|
-
modules: []
|
|
21
|
-
families: []
|
|
22
|
-
design_specs: []
|
|
23
|
-
architecture:
|
|
24
|
-
[
|
|
25
|
-
architecture:component-theming-surface,
|
|
26
|
-
architecture:interaction-modality,
|
|
27
|
-
architecture:internationalization,
|
|
28
|
-
architecture:public-component-api,
|
|
29
|
-
]
|
|
30
|
-
contributing: []
|
|
31
|
-
system_specs: [spec:AST-009, spec:AST-085, spec:AST-086]
|
|
32
|
-
---
|
|
33
|
-
|
|
34
|
-
# Thumbnail component contract
|
|
35
|
-
|
|
36
|
-
## Contract at a glance
|
|
37
|
-
|
|
38
|
-
| Area | Contract |
|
|
39
|
-
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
40
|
-
| Public contract | A 64px square image preview with `src`, `alt`, `label`, `isLoading`, `isDisabled`, an optional `onClick` open action, and an optional `onRemove` action revealed per `showRemoveOn`. |
|
|
41
|
-
| Behavior | The preview shows a skeleton, the image, an upload overlay, or a placeholder; it is a named group whose open and remove actions are separate buttons. |
|
|
42
|
-
| End-user impact | Screen-reader users hear the file and image in one group name and reach "Open …" and "Remove …" buttons; keyboard and touch users can always reach a hover-revealed remove button. |
|
|
43
|
-
| Builder impact | None; the record describes shipped behavior. |
|
|
44
|
-
| Compatibility/readiness | Released behavior recorded as current; no API, default, or output changes. Six implementation gaps are listed under Current-state impact. |
|
|
45
|
-
| Review checks | Reject a hover-only remove button that leaves the tab order, a name on a roleless element, an image exposed without `alt`, or a busy spinner that announces itself. |
|
|
46
|
-
| Governing rules | `spec:AST-085/FR1`; `spec:AST-086/FR8`; WCAG 2.2 2.5.8; `architecture:public-component-api/INV5,INV6,INV8`; `architecture:internationalization/INV1a`. |
|
|
47
|
-
|
|
48
|
-
This table is a review projection; the body below is authoritative.
|
|
49
|
-
|
|
50
|
-
## Intent
|
|
51
|
-
|
|
52
|
-
Thumbnail previews one image attachment in a compact square, with optional
|
|
53
|
-
open and remove actions. It owns the preview's loading, error, and upload
|
|
54
|
-
states, its accessible group name, and the placement and reveal of its remove
|
|
55
|
-
action.
|
|
56
|
-
|
|
57
|
-
## Compatibility and migration
|
|
58
|
-
|
|
59
|
-
- Released default preserved: `yes`
|
|
60
|
-
- Compatibility class: records shipped behavior; no public prop, default, DOM,
|
|
61
|
-
or styling output changes
|
|
62
|
-
- Controlled/uncontrolled behavior: not applicable; image-failure tracking is
|
|
63
|
-
internal state
|
|
64
|
-
- Migration decision: none
|
|
65
|
-
|
|
66
|
-
Consumer migration instructions belong in consumer docs and release notes.
|
|
67
|
-
|
|
68
|
-
## Current-state impact
|
|
69
|
-
|
|
70
|
-
- **Caller `role` replaces the group role (FR7, AR1).** A caller `role`, such
|
|
71
|
-
as `none` or `img`, overwrites `role="group"`, leaving the composed name on
|
|
72
|
-
an element that may not take it, where `architecture:public-component-api`
|
|
73
|
-
INV5 keeps component-owned semantics from being overwritten.
|
|
74
|
-
- **Joined name outside the catalog (FR3).** With both `label` and `alt`, the
|
|
75
|
-
group name "{label} — {alt}" is assembled at the call site rather than from
|
|
76
|
-
one catalog message, so a locale cannot reorder or re-punctuate it
|
|
77
|
-
(`architecture:internationalization` INV1a).
|
|
78
|
-
- **Remove target below 24px (AR4).** On a fine pointer the remove button's hit
|
|
79
|
-
area is 20 by 20 CSS pixels and it overlaps the open action, where WCAG 2.2
|
|
80
|
-
2.5.8 requires 24 by 24 or spacing. On a coarse pointer it is 24 by 24.
|
|
81
|
-
- **Label tooltip not reachable by keyboard (FR3).** The label tooltip
|
|
82
|
-
attaches to the root group, which is not focusable, so keyboard focus on the
|
|
83
|
-
open or remove button does not reveal it (WCAG 2.2 2.1.1). The label still
|
|
84
|
-
reaches assistive technology through the group and button names.
|
|
85
|
-
- **Two focus indicators on Open and Remove (FR4).** The image container
|
|
86
|
-
outlines whenever it contains keyboard focus, and both the open and the
|
|
87
|
-
remove button keep their own focus ring, so focusing either draws two
|
|
88
|
-
indicators, where `architecture:interaction-modality` INV3 allows one per
|
|
89
|
-
focus move.
|
|
90
|
-
- **Disabled state not reflected on the target (FR6).** The `thumbnail`
|
|
91
|
-
target reflects no state, so a theme cannot style the disabled state there (`architecture:component-theming-surface` INV6).
|
|
92
|
-
|
|
93
|
-
## Ownership boundary
|
|
94
|
-
|
|
95
|
-
**Owns**
|
|
96
|
-
|
|
97
|
-
- The root group, the square image container, and the Image, Placeholder,
|
|
98
|
-
Skeleton, Upload overlay, and Remove button parts.
|
|
99
|
-
- The visual-state choice and image-failure retry.
|
|
100
|
-
- The group name, the open-button name, and the remove-button name.
|
|
101
|
-
- The remove button's placement, scrim, hit area, and hover reveal.
|
|
102
|
-
- The upload busy announcement.
|
|
103
|
-
|
|
104
|
-
**Does not own / non-goals**
|
|
105
|
-
|
|
106
|
-
- Lightbox or detail view opened by `onClick` — owned by the product callsite.
|
|
107
|
-
- Collections of attachments and upload transport — owned by composing
|
|
108
|
-
components and the product callsite.
|
|
109
|
-
- Button, Skeleton, Spinner, Icon, and Tooltip internals — owned by those
|
|
110
|
-
components; Thumbnail composes them.
|
|
111
|
-
- The hover-and-focus reveal mechanism — owned by the shared container-reveal
|
|
112
|
-
utility.
|
|
113
|
-
|
|
114
|
-
## Public concepts
|
|
115
|
-
|
|
116
|
-
| Concept | Closed values or states | Meaning | Availability by variant/orientation/state | Default | Owner | Stability | Invalid-value behavior |
|
|
117
|
-
| ------------- | ------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | ------------------------------------------------- | ----------- | --------------------- | --------- | -------------------------------- |
|
|
118
|
-
| Visual state | skeleton; image or placeholder under the upload scrim; image; placeholder | What the image container shows (FR2). | Resolved from `src`, `isLoading`, and load errors | placeholder | `component:Thumbnail` | Stable | — |
|
|
119
|
-
| Open action | present; absent | `onClick` adds an "Open …" button over the image; inert while loading or disabled (FR4). | With `onClick` | absent | `component:Thumbnail` | Stable | — |
|
|
120
|
-
| Remove action | present; absent | `onRemove` adds a "Remove …" button in the top inline-end corner; inert while disabled (FR5). | With `onRemove` | absent | `component:Thumbnail` | Stable | — |
|
|
121
|
-
| Remove reveal | `hover`, `always` | Whether the remove button is shown at rest. | Only with `onRemove` | `hover` | `component:Thumbnail` | Stable | TypeScript rejects other values. |
|
|
122
|
-
| Disabled | enabled; disabled | Dims the thumbnail; its actions stay focusable and announced as disabled (FR6). | All states | enabled | `component:Thumbnail` | Stable | — |
|
|
123
|
-
|
|
124
|
-
## Behavioral and layout contract
|
|
125
|
-
|
|
126
|
-
| ID | Invariant | Basis |
|
|
127
|
-
| --- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
|
|
128
|
-
| FR1 | The root is a 64px-wide, non-shrinking, isolated inline-flex column carrying the `thumbnail` target. It holds a square image container with `--radius-element` corners, clipped overflow, and a `--color-neutral` background. | Current source and tests |
|
|
129
|
-
| FR2 | `isLoading` without `src` shows a Skeleton; `isLoading` with `src` shows the image, or the placeholder glyph if that `src` failed, under an overlay-colored upload scrim holding a small on-media Spinner; `src` without loading shows the image, cover-fitted, with a 1px inset border; no `src`, or a `src` that failed to load, shows a secondary-colored image placeholder glyph. A failure is tracked per `src`, so a changed `src` is tried again. | Current source and tests |
|
|
130
|
-
| FR3 | The root is `role="group"` named "{label} — {alt}" when both exist, else `label`, else `alt`, else the translated "Thumbnail"; a caller `aria-label` or `aria-labelledby` reaches the root after it and names the group instead. A joined name is one catalog message (`architecture:internationalization` INV1a); implementation gap: "{label} — {alt}" is joined at the call site (Current-state impact). A defined `label` also wraps the thumbnail in a Tooltip showing it, which also sets the label as the group's accessible description; `label` is never rendered inline. A tooltip can be revealed from the keyboard (WCAG 2.2 2.1.1). Implementation gap: the tooltip attaches to the non-focusable root and opens on hover and touch only; focusing the open or remove button does not show it (Current-state impact). In development, a `src` with no `alt`, `label`, `aria-label`, or `aria-labelledby` logs a warning. | Current source and tests |
|
|
131
|
-
| FR4 | With `onClick`, a full-size `button type="button"` named "Open {name}" wraps the image content and calls `onClick`; hover and pressed overlays show for mouse and touch. While loading or disabled, Open stays mounted and inert, so a focused Open keeps focus (`spec:AST-085` FR1, FR4, FR6). Each focus move shows one indicator (`architecture:interaction-modality` INV3): the image container draws the shared focus-visible outline for the open button. Implementation gap: both the open and the remove button keep their own focus ring inside the container outline, so focusing either draws two indicators (Current-state impact). | Current source and tests |
|
|
132
|
-
| FR5 | With `onRemove`, a small icon-only secondary Button named "Remove {name}" sits `--spacing-1` from the top and inline-end edges above the image, painted with the overlay scrim and on-dark icon; a click stops propagation before `onRemove`, so it never opens the thumbnail. With `showRemoveOn="hover"` the button is visually hidden at rest by opacity, stays in the tab order and accessibility tree, and is revealed on container hover, on focus within, and always on touch devices. While disabled, Remove stays mounted and inert, so a focused Remove keeps focus (`spec:AST-085` FR1, FR4). | Current source and tests |
|
|
133
|
-
| FR6 | `isDisabled` dims the root to half opacity with pointer events off. Its actions stay mounted, focusable, and announced as disabled (`spec:AST-085` FR1, FR4, FR5), and the disabled state is reflected on the owning target (`architecture:component-theming-surface` INV6). Implementation gap: the `thumbnail` target reflects no state (Current-state impact). | Current source and tests |
|
|
134
|
-
| FR7 | `ref` reaches the root. Supported DOM, ARIA, data, and event props reach the root; `data-testid` reaches the root; `xstyle`, `className`, and `style` merge in that order after component styles. A caller `aria-label` or `aria-labelledby` names the group (FR3). The group role is component-owned semantics (`architecture:public-component-api` INV5). Implementation gap: caller props spread after the role, so a caller `role` replaces it (Current-state impact). | Current source and tests |
|
|
135
|
-
|
|
136
|
-
### Allowed variation
|
|
137
|
-
|
|
138
|
-
- **AV1 — Theme paint.** A theme may restyle `thumbnail` without changing its
|
|
139
|
-
states, names, or action placement.
|
|
140
|
-
- **AV2 — Image content.** Image dimensions vary; the image always covers the
|
|
141
|
-
square.
|
|
142
|
-
|
|
143
|
-
### Representative states
|
|
144
|
-
|
|
145
|
-
| State | Required invariant | Allowed variation |
|
|
146
|
-
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
|
|
147
|
-
| Image, named | Group named from `label` and `alt`; image exposed with its `alt`. | — |
|
|
148
|
-
| Image without alt | Image `alt=""`, `role="presentation"`, `aria-hidden`. | — |
|
|
149
|
-
| Placeholder or error | Placeholder glyph; a new `src` retries. | — |
|
|
150
|
-
| Loading, no src | Skeleton; an Open action stays mounted and inert. | — |
|
|
151
|
-
| Uploading | The image, or the placeholder if it failed, under the scrim with a hidden Spinner; busy start announced once; an Open action stays mounted and inert. | — |
|
|
152
|
-
| Openable | "Open {name}" button; focus outline on the container (the button's own ring is the FR4 gap). | — |
|
|
153
|
-
| Removable, hover | "Remove {name}" in the tab order, revealed on hover, focus, and touch. | — |
|
|
154
|
-
| Disabled | Half opacity; Open and Remove stay mounted, focusable, and inert. | — |
|
|
155
|
-
|
|
156
|
-
### Transformation and precedence order
|
|
157
|
-
|
|
158
|
-
- **ORD1 — Visual state.** Loading without `src` → loading with `src` (the
|
|
159
|
-
image, or the placeholder if it failed, under the upload scrim) → image →
|
|
160
|
-
placeholder (no `src` or load error).
|
|
161
|
-
- **ORD2 — Name.** "{label} — {alt}" → `label` → `alt` → "Thumbnail"; a caller
|
|
162
|
-
`aria-label` replaces it on the group.
|
|
163
|
-
- **ORD3 — Remove click.** Stop propagation → `onRemove`.
|
|
164
|
-
|
|
165
|
-
### Performance and resources
|
|
166
|
-
|
|
167
|
-
- **PR1 — CSS reveal and shared press.** The hover reveal is CSS-only. Every
|
|
168
|
-
Thumbnail installs the shared document-level press controller on mount, and
|
|
169
|
-
only an interactive one carries its press marker; the uploading state
|
|
170
|
-
announces through the shared busy-announcement channel. Thumbnail adds no
|
|
171
|
-
listener, observer, or timer of its own.
|
|
172
|
-
|
|
173
|
-
## Accessibility contract
|
|
174
|
-
|
|
175
|
-
- **AR1 — Group name.** The root is a named group, never a roleless element
|
|
176
|
-
with a name, so the open and remove buttons inside it stay reachable.
|
|
177
|
-
Implementation gap: a caller `role` replaces the group role (FR7).
|
|
178
|
-
- **AR2 — Image alternative.** An image with `alt` is exposed with it; without
|
|
179
|
-
`alt` it is explicitly decorative.
|
|
180
|
-
- **AR3 — Busy state.** The upload Spinner is hidden from assistive technology;
|
|
181
|
-
Thumbnail announces "Loading" once per busy start through the shared channel,
|
|
182
|
-
as `spec:AST-086` FR8 requires of a busy owner.
|
|
183
|
-
- **AR4 — Remove target.** The remove target is at least 24 by 24 CSS pixels
|
|
184
|
-
for every pointer (WCAG 2.2 2.5.8). The button is 20 by 20, with a hit area
|
|
185
|
-
extended 2px on every side on coarse pointers. Implementation gap: on a fine
|
|
186
|
-
pointer the target stays 20 by 20.
|
|
187
|
-
- **AR5 — Disabled and loading.** A disabled thumbnail's actions stay mounted,
|
|
188
|
-
focusable, and announced as disabled, and a loading thumbnail's Open stays
|
|
189
|
-
mounted and inert, so focus never moves when either state starts
|
|
190
|
-
(`spec:AST-085` FR1, FR4, FR5, FR6).
|
|
191
|
-
- **AR6 — Reachable remove.** A hover-revealed remove button is never removed
|
|
192
|
-
from the tab order and appears on keyboard focus and on touch devices.
|
|
193
|
-
|
|
194
|
-
## Design relationships
|
|
195
|
-
|
|
196
|
-
| Anatomy or state | Design requirement | Representation authority | Hierarchy role | Component contract |
|
|
197
|
-
| ---------------- | ------------------------------------------------------------------ | ------------------------ | -------------- | ------------------ |
|
|
198
|
-
| Image | The preview image as a cover-fitted square. | Current source and docs | Prominent | FR1, FR2, AR2 |
|
|
199
|
-
| Placeholder | An image silhouette when there is no image. | Current source and docs | Supporting | FR2 |
|
|
200
|
-
| Remove button | An overlaid close control on a fixed scrim legible over any image. | Current source and docs | Supporting | FR5, AR4, AR6 |
|
|
201
|
-
| Upload overlay | A scrim with a spinner while an image uploads. | Current source and docs | Supporting | FR2, AR3 |
|
|
202
|
-
| Skeleton | A shimmer while loading without an image. | Current source and docs | Supporting | FR2 |
|
|
203
|
-
|
|
204
|
-
Theming: the root is the single `thumbnail` target; the parts add no targets.
|
|
205
|
-
The consumer anatomy names no root part, so no anatomy-theming block is
|
|
206
|
-
declared.
|
|
207
|
-
|
|
208
|
-
## Family and system relationships
|
|
209
|
-
|
|
210
|
-
- `spec:AST-085` owns focusable disabled controls; AR5 records how Thumbnail applies it.
|
|
211
|
-
- `spec:AST-086` owns busy announcements; AR3 records Thumbnail's conformance.
|
|
212
|
-
- `architecture:internationalization` owns the catalog behind the fallback
|
|
213
|
-
name and the open and remove names.
|
|
214
|
-
- `architecture:public-component-api` owns ref, passthrough, and styling-input
|
|
215
|
-
rules; FR7 applies them to the root.
|
|
216
|
-
|
|
217
|
-
## Verification map
|
|
218
|
-
|
|
219
|
-
| Contract | Verification | Representative states | Mutation or failure expectation | Audit section |
|
|
220
|
-
| ------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------- |
|
|
221
|
-
| FR1 | `Thumbnail.stories.tsx` in a browser | Every state | Gap: no test asserts the root width, layout, or the image container's shape, clipping, or paint; they are visible only in the rendered fixture. | `audit:Thumbnail/layout` |
|
|
222
|
-
| FR2, ORD1 | `Thumbnail.test.tsx` state, error, and retry tests | Image, placeholder, skeleton, uploading, failed, changed `src` | A wrong element for any state, a failed image left showing, or a changed `src` not retried fails. Gap: a failed `src` while uploading, the scrim and placeholder paint and the Spinner's size and shade have no automated check; the cover fit and inset border appear only in the static-image visual baseline. | `audit:Thumbnail/behavior` |
|
|
223
|
-
| FR3, ORD2, AR1, AR2 | `Thumbnail.test.tsx` naming, role, image, warning, and tooltip tests | Label, label with alt, alt, neither | A missing label or joined name, a missing `group` role, an exposed decorative image, a lost `alt`, a missing or repeated warning, or the label rendered inline fails. Gap: no test asserts the alt-only or default "Thumbnail" name, a caller `aria-label` or `aria-labelledby`, the label description, or the tooltip opening. | `audit:Thumbnail/a11y` |
|
|
224
|
-
| FR4 | `Thumbnail.test.tsx` naming, click, loading, disabled, and touch-press tests | Openable, loading, disabled | A wrong "Open …" name, a lost callback, or a missing touch-press overlay fails. The loading and disabled tests fail if Open unmounts, calls `onClick`, or loses focus or its disabled state. Gap: the full-size button, the hover overlay, and the focus indicators have no automated check. | `audit:Thumbnail/behavior` |
|
|
225
|
-
| FR5, ORD3, AR6 | `Thumbnail.test.tsx` remove and `showRemoveOn` suites | Hover, always, default reveal | A lost `onRemove`, a hover-revealed button missing from the DOM, or the same reveal treatment for both values fails. A wrong "Remove …" name also fails. Gap: that a remove click never calls `onClick`, the button's position and paint, and the reveal triggers have no automated check. | `audit:Thumbnail/a11y` |
|
|
226
|
-
| FR6, AR5 | `Thumbnail.test.tsx` disabled tests | Disabled with actions | The tests fail if a disabled Open or Remove unmounts, loses focus, drops `aria-disabled`, or calls its callback. Gap: the half opacity and pointer-events rule have no automated check. | `audit:Thumbnail/a11y` |
|
|
227
|
-
| FR7 | `Thumbnail.test.tsx` ref and test-id tests | Root | A lost ref or `data-testid` fails. Gap: no test covers DOM passthrough, attribute order, or the styling-input merge. | `audit:Thumbnail/api` |
|
|
228
|
-
| AR3 | `Thumbnail.test.tsx` uploading test; source review against `spec:AST-086` FR8 | Uploading | An exposed upload Spinner fails. Gap: no automated check fails if the busy state is announced twice. | `audit:Thumbnail/a11y` |
|
|
229
|
-
| AR4 | `Thumbnail.stories.tsx` in a browser at fine and coarse pointers | Removable | Gap: no automated target-size check; the fine-pointer size is the recorded gap. | `audit:Thumbnail/a11y` |
|
|
230
|
-
| PR1 | Source review | Removable, openable, uploading | Gap: no automated check fails if Thumbnail adds its own listener, observer, or timer. | `audit:Thumbnail/behavior` |
|
|
231
|
-
| AR1, AR2 | Accessibility-tree evidence (`spec:AST-009` FR3) | Named group, open and remove buttons, image with and without `alt` | Gap: no accessibility-tree check proves the group name, button names, or image exposure; the unit tests query the DOM. | `audit:Thumbnail/a11y` |
|
|
232
|
-
|
|
233
|
-
## Decision log
|
|
234
|
-
|
|
235
|
-
None recorded. The record describes shipped behavior.
|
|
236
|
-
|
|
237
|
-
## Open questions
|
|
238
|
-
|
|
239
|
-
None.
|
|
240
|
-
|
|
241
|
-
## Content boundary
|
|
242
|
-
|
|
243
|
-
This file does not duplicate consumer prop tables/examples, current audit
|
|
244
|
-
results, implementation steps, or family/system rules. It links to their owners.
|
|
@@ -1,384 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
-
|
|
3
|
-
import {describe, it, expect, vi} from 'vitest';
|
|
4
|
-
import {render, screen, fireEvent} from '@testing-library/react';
|
|
5
|
-
import userEvent from '@testing-library/user-event';
|
|
6
|
-
import {Thumbnail} from './Thumbnail';
|
|
7
|
-
import {
|
|
8
|
-
afterPaintsPress,
|
|
9
|
-
hasReleaseFade,
|
|
10
|
-
pressArmsShadowedByDefault,
|
|
11
|
-
readsPressStrength,
|
|
12
|
-
} from '../__tests__/pressState';
|
|
13
|
-
|
|
14
|
-
describe('Thumbnail', () => {
|
|
15
|
-
it('renders an image when src is provided', () => {
|
|
16
|
-
render(<Thumbnail src="/photo.jpg" alt="Test photo" />);
|
|
17
|
-
const img = screen.getByRole('img');
|
|
18
|
-
expect(img).toHaveAttribute('src', '/photo.jpg');
|
|
19
|
-
expect(img).toHaveAttribute('alt', 'Test photo');
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
it('renders placeholder when no src is provided', () => {
|
|
23
|
-
render(<Thumbnail data-testid="thumb" />);
|
|
24
|
-
const root = screen.getByTestId('thumb');
|
|
25
|
-
expect(root.querySelector('svg')).toBeInTheDocument();
|
|
26
|
-
expect(screen.queryByRole('img')).toBeNull();
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
it('shows skeleton when isLoading with no src', () => {
|
|
30
|
-
const {container} = render(<Thumbnail isLoading data-testid="thumb" />);
|
|
31
|
-
expect(container.querySelector('.astryx-skeleton')).toBeInTheDocument();
|
|
32
|
-
expect(screen.queryByRole('img')).toBeNull();
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
it('shows image with upload overlay when isLoading with src', () => {
|
|
36
|
-
render(
|
|
37
|
-
<Thumbnail
|
|
38
|
-
src="/local.jpg"
|
|
39
|
-
alt="Uploading"
|
|
40
|
-
isLoading
|
|
41
|
-
data-testid="thumb"
|
|
42
|
-
/>,
|
|
43
|
-
);
|
|
44
|
-
const img = screen.getByRole('img');
|
|
45
|
-
expect(img).toHaveAttribute('src', '/local.jpg');
|
|
46
|
-
// The upload Spinner is decorative; the thumbnail announces its busy
|
|
47
|
-
// start instead (spec:AST-086 FR8).
|
|
48
|
-
expect(document.querySelector('.astryx-spinner')).toHaveAttribute(
|
|
49
|
-
'aria-hidden',
|
|
50
|
-
'true',
|
|
51
|
-
);
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
it('exposes the label as an accessible name via a valid group role', () => {
|
|
55
|
-
render(<Thumbnail label="photo.png" data-testid="thumb" />);
|
|
56
|
-
// The accessible name must be carried by a valid named role (group),
|
|
57
|
-
// not by a bare aria-label on a generic div (aria-prohibited-attr).
|
|
58
|
-
const group = screen.getByRole('group', {name: 'photo.png'});
|
|
59
|
-
expect(group).toBe(screen.getByTestId('thumb'));
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
it('does not put aria-label on a generic (roleless) element', () => {
|
|
63
|
-
render(<Thumbnail label="photo.png" data-testid="thumb" />);
|
|
64
|
-
const thumb = screen.getByTestId('thumb');
|
|
65
|
-
// The labeled element must declare a role so the name is legitimate.
|
|
66
|
-
expect(thumb).toHaveAttribute('role', 'group');
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
it('keeps interactive children accessible while exposing the group name', () => {
|
|
70
|
-
const onRemove = vi.fn();
|
|
71
|
-
render(
|
|
72
|
-
<Thumbnail
|
|
73
|
-
src="/img.jpg"
|
|
74
|
-
alt="Clickable"
|
|
75
|
-
label="file.png"
|
|
76
|
-
onClick={vi.fn()}
|
|
77
|
-
onRemove={onRemove}
|
|
78
|
-
/>,
|
|
79
|
-
);
|
|
80
|
-
// A group role (unlike img) must not hide descendant controls.
|
|
81
|
-
expect(
|
|
82
|
-
screen.getByRole('group', {name: 'file.png — Clickable'}),
|
|
83
|
-
).toBeInTheDocument();
|
|
84
|
-
expect(
|
|
85
|
-
screen.getByRole('button', {name: 'Open file.png — Clickable'}),
|
|
86
|
-
).toBeInTheDocument();
|
|
87
|
-
expect(
|
|
88
|
-
screen.getByRole('button', {name: 'Remove file.png — Clickable'}),
|
|
89
|
-
).toBeInTheDocument();
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
it('marks the image as explicitly decorative when no alt is provided', () => {
|
|
93
|
-
render(
|
|
94
|
-
<Thumbnail src="/photo.jpg" label="photo.png" data-testid="thumb" />,
|
|
95
|
-
);
|
|
96
|
-
const img = screen.getByTestId('thumb').querySelector('img');
|
|
97
|
-
expect(img).toHaveAttribute('alt', '');
|
|
98
|
-
expect(img).toHaveAttribute('role', 'presentation');
|
|
99
|
-
expect(img).toHaveAttribute('aria-hidden', 'true');
|
|
100
|
-
// The image must not be exposed to assistive technology as a nameless img.
|
|
101
|
-
expect(screen.queryByRole('img')).toBeNull();
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
it('exposes the image with normal img semantics when alt is provided', () => {
|
|
105
|
-
render(<Thumbnail src="/photo.jpg" alt="Vacation photo" />);
|
|
106
|
-
const img = screen.getByRole('img', {name: 'Vacation photo'});
|
|
107
|
-
expect(img).not.toHaveAttribute('role');
|
|
108
|
-
expect(img).not.toHaveAttribute('aria-hidden');
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
it('warns once when src is set with no alt and no label', () => {
|
|
112
|
-
const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
|
|
113
|
-
render(<Thumbnail src="/photo.jpg" />);
|
|
114
|
-
expect(warnSpy).toHaveBeenCalledTimes(1);
|
|
115
|
-
expect(warnSpy.mock.calls[0][0]).toContain('Thumbnail');
|
|
116
|
-
warnSpy.mockRestore();
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
it('does not warn when the thumbnail is named via label or alt', () => {
|
|
120
|
-
const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
|
|
121
|
-
render(<Thumbnail src="/a.jpg" label="a.png" />);
|
|
122
|
-
render(<Thumbnail src="/b.jpg" alt="Photo b" />);
|
|
123
|
-
expect(warnSpy).not.toHaveBeenCalled();
|
|
124
|
-
warnSpy.mockRestore();
|
|
125
|
-
});
|
|
126
|
-
|
|
127
|
-
it('label is shown via tooltip, not as inline text', () => {
|
|
128
|
-
render(<Thumbnail label="photo.png" data-testid="thumb" />);
|
|
129
|
-
// Label should exist in DOM (tooltip) but not as a direct child text node
|
|
130
|
-
const thumb = screen.getByTestId('thumb');
|
|
131
|
-
expect(thumb.textContent).not.toContain('photo.png');
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
it('calls onRemove when remove button is clicked', async () => {
|
|
135
|
-
const user = userEvent.setup();
|
|
136
|
-
const onRemove = vi.fn();
|
|
137
|
-
render(<Thumbnail label="file.png" onRemove={onRemove} />);
|
|
138
|
-
const removeBtn = screen.getByRole('button', {name: 'Remove file.png'});
|
|
139
|
-
await user.click(removeBtn);
|
|
140
|
-
expect(onRemove).toHaveBeenCalledOnce();
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
it('calls onClick when thumbnail is clicked', async () => {
|
|
144
|
-
const user = userEvent.setup();
|
|
145
|
-
const onClick = vi.fn();
|
|
146
|
-
render(<Thumbnail src="/img.jpg" alt="Clickable" onClick={onClick} />);
|
|
147
|
-
const btn = screen.getByRole('button', {name: 'Open Clickable'});
|
|
148
|
-
await user.click(btn);
|
|
149
|
-
expect(onClick).toHaveBeenCalledOnce();
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
it('keeps a disabled Remove mounted, focusable and announced as disabled, without calling onRemove', async () => {
|
|
153
|
-
const user = userEvent.setup();
|
|
154
|
-
const onRemove = vi.fn();
|
|
155
|
-
render(<Thumbnail label="file.png" onRemove={onRemove} isDisabled />);
|
|
156
|
-
const remove = screen.getByRole('button', {name: /Remove/});
|
|
157
|
-
expect(remove).toHaveAttribute('aria-disabled', 'true');
|
|
158
|
-
expect(remove).not.toBeDisabled();
|
|
159
|
-
remove.focus();
|
|
160
|
-
await user.keyboard('{Enter}');
|
|
161
|
-
expect(onRemove).not.toHaveBeenCalled();
|
|
162
|
-
// A click that reaches it (assistive technology dispatching one; the
|
|
163
|
-
// disabled thumbnail takes no pointer events) calls nothing either.
|
|
164
|
-
fireEvent.click(remove);
|
|
165
|
-
expect(onRemove).not.toHaveBeenCalled();
|
|
166
|
-
});
|
|
167
|
-
|
|
168
|
-
it('keeps a disabled Open mounted, focusable and announced as disabled, without calling onClick', async () => {
|
|
169
|
-
const user = userEvent.setup();
|
|
170
|
-
const onClick = vi.fn();
|
|
171
|
-
render(
|
|
172
|
-
<Thumbnail src="/img.jpg" alt="Test" onClick={onClick} isDisabled />,
|
|
173
|
-
);
|
|
174
|
-
const open = screen.getByRole('button', {name: 'Open Test'});
|
|
175
|
-
expect(open).toHaveAttribute('aria-disabled', 'true');
|
|
176
|
-
open.focus();
|
|
177
|
-
await user.keyboard('{Enter}');
|
|
178
|
-
expect(onClick).not.toHaveBeenCalled();
|
|
179
|
-
});
|
|
180
|
-
|
|
181
|
-
it('keeps Open mounted but inert while loading', async () => {
|
|
182
|
-
const user = userEvent.setup();
|
|
183
|
-
const onClick = vi.fn();
|
|
184
|
-
render(<Thumbnail src="/img.jpg" alt="Test" onClick={onClick} isLoading />);
|
|
185
|
-
const open = screen.getByRole('button', {name: 'Open Test'});
|
|
186
|
-
expect(open).toHaveAttribute('aria-disabled', 'true');
|
|
187
|
-
await user.click(open);
|
|
188
|
-
expect(onClick).not.toHaveBeenCalled();
|
|
189
|
-
});
|
|
190
|
-
|
|
191
|
-
it.each([
|
|
192
|
-
['disabled', {isDisabled: true}],
|
|
193
|
-
['loading', {isLoading: true}],
|
|
194
|
-
])(
|
|
195
|
-
'stops a press on a %s Open before it reaches an ancestor (spec:AST-085 FR2)',
|
|
196
|
-
async (_state, stateProps) => {
|
|
197
|
-
const user = userEvent.setup();
|
|
198
|
-
const onClick = vi.fn();
|
|
199
|
-
const onAncestorClick = vi.fn();
|
|
200
|
-
render(
|
|
201
|
-
<div onClick={onAncestorClick}>
|
|
202
|
-
<Thumbnail
|
|
203
|
-
src="/img.jpg"
|
|
204
|
-
alt="Test"
|
|
205
|
-
onClick={onClick}
|
|
206
|
-
{...stateProps}
|
|
207
|
-
/>
|
|
208
|
-
</div>,
|
|
209
|
-
);
|
|
210
|
-
const open = screen.getByRole('button', {name: 'Open Test'});
|
|
211
|
-
open.focus();
|
|
212
|
-
await user.keyboard('{Enter}');
|
|
213
|
-
await user.keyboard(' ');
|
|
214
|
-
// A disabled thumbnail takes no pointer events, so the click is
|
|
215
|
-
// dispatched directly, as assistive technology may.
|
|
216
|
-
fireEvent.click(open);
|
|
217
|
-
expect(onClick).not.toHaveBeenCalled();
|
|
218
|
-
expect(onAncestorClick).not.toHaveBeenCalled();
|
|
219
|
-
},
|
|
220
|
-
);
|
|
221
|
-
|
|
222
|
-
it.each([
|
|
223
|
-
['a disabled Open', {isDisabled: true}, 'Open Test'],
|
|
224
|
-
['a loading Open', {isLoading: true}, 'Open Test'],
|
|
225
|
-
['a disabled Remove', {isDisabled: true}, /Remove/],
|
|
226
|
-
] as const)(
|
|
227
|
-
'Enter and Space on %s dispatch no click to any listener (spec:AST-085 FR2)',
|
|
228
|
-
async (_name, stateProps, buttonName) => {
|
|
229
|
-
const user = userEvent.setup();
|
|
230
|
-
const clicks = vi.fn();
|
|
231
|
-
document.addEventListener('click', clicks, {capture: true});
|
|
232
|
-
try {
|
|
233
|
-
render(
|
|
234
|
-
<Thumbnail
|
|
235
|
-
src="/img.jpg"
|
|
236
|
-
alt="Test"
|
|
237
|
-
onClick={vi.fn()}
|
|
238
|
-
onRemove={vi.fn()}
|
|
239
|
-
{...stateProps}
|
|
240
|
-
/>,
|
|
241
|
-
);
|
|
242
|
-
screen.getByRole('button', {name: buttonName}).focus();
|
|
243
|
-
await user.keyboard('{Enter}');
|
|
244
|
-
await user.keyboard(' ');
|
|
245
|
-
expect(clicks).not.toHaveBeenCalled();
|
|
246
|
-
} finally {
|
|
247
|
-
document.removeEventListener('click', clicks, {capture: true});
|
|
248
|
-
}
|
|
249
|
-
},
|
|
250
|
-
);
|
|
251
|
-
|
|
252
|
-
it('keeps focus on Open and Remove when the thumbnail becomes loading or disabled (spec:AST-085 FR4)', () => {
|
|
253
|
-
const props = {
|
|
254
|
-
src: '/img.jpg',
|
|
255
|
-
alt: 'Test',
|
|
256
|
-
onClick: vi.fn(),
|
|
257
|
-
onRemove: vi.fn(),
|
|
258
|
-
};
|
|
259
|
-
const {rerender} = render(<Thumbnail {...props} />);
|
|
260
|
-
const open = screen.getByRole('button', {name: 'Open Test'});
|
|
261
|
-
open.focus();
|
|
262
|
-
rerender(<Thumbnail {...props} isLoading />);
|
|
263
|
-
expect(document.activeElement).toBe(open);
|
|
264
|
-
rerender(<Thumbnail {...props} isDisabled />);
|
|
265
|
-
expect(document.activeElement).toBe(open);
|
|
266
|
-
|
|
267
|
-
rerender(<Thumbnail {...props} />);
|
|
268
|
-
const remove = screen.getByRole('button', {name: /Remove/});
|
|
269
|
-
remove.focus();
|
|
270
|
-
rerender(<Thumbnail {...props} isDisabled />);
|
|
271
|
-
expect(document.activeElement).toBe(remove);
|
|
272
|
-
expect(remove).toHaveAttribute('aria-disabled', 'true');
|
|
273
|
-
});
|
|
274
|
-
|
|
275
|
-
it('forwards ref to root element', () => {
|
|
276
|
-
const ref = vi.fn();
|
|
277
|
-
render(<Thumbnail ref={ref} data-testid="thumb" />);
|
|
278
|
-
expect(ref).toHaveBeenCalled();
|
|
279
|
-
});
|
|
280
|
-
|
|
281
|
-
describe('showRemoveOn', () => {
|
|
282
|
-
// The reveal style lives on the slot <div> that wraps the remove button
|
|
283
|
-
// (ancestor-marker styles can't ride on a child component's xstyle prop),
|
|
284
|
-
// so assert on the button's parent element.
|
|
285
|
-
const removeSlotClass = (
|
|
286
|
-
showRemoveOn?: 'always' | 'hover',
|
|
287
|
-
): {className: string; unmount: () => void} => {
|
|
288
|
-
const view = render(
|
|
289
|
-
<Thumbnail
|
|
290
|
-
label="file.png"
|
|
291
|
-
onRemove={vi.fn()}
|
|
292
|
-
showRemoveOn={showRemoveOn}
|
|
293
|
-
/>,
|
|
294
|
-
);
|
|
295
|
-
const slot = screen.getByRole('button', {
|
|
296
|
-
name: 'Remove file.png',
|
|
297
|
-
}).parentElement!;
|
|
298
|
-
return {className: slot.className, unmount: view.unmount};
|
|
299
|
-
};
|
|
300
|
-
|
|
301
|
-
it('renders the remove button in the DOM even when showRemoveOn="hover"', () => {
|
|
302
|
-
// Hover reveal is CSS-only (opacity) — the button must stay mounted so
|
|
303
|
-
// it remains reachable by keyboard and assistive tech.
|
|
304
|
-
render(
|
|
305
|
-
<Thumbnail label="file.png" onRemove={vi.fn()} showRemoveOn="hover" />,
|
|
306
|
-
);
|
|
307
|
-
expect(
|
|
308
|
-
screen.getByRole('button', {name: 'Remove file.png'}),
|
|
309
|
-
).toBeInTheDocument();
|
|
310
|
-
});
|
|
311
|
-
|
|
312
|
-
it('applies a distinct slot class when showRemoveOn="hover" vs "always"', () => {
|
|
313
|
-
const always = removeSlotClass('always');
|
|
314
|
-
always.unmount();
|
|
315
|
-
const hover = removeSlotClass('hover');
|
|
316
|
-
expect(hover.className).not.toBe(always.className);
|
|
317
|
-
});
|
|
318
|
-
|
|
319
|
-
it('defaults to "hover" (same slot class as an explicit hover)', () => {
|
|
320
|
-
const def = removeSlotClass(undefined);
|
|
321
|
-
def.unmount();
|
|
322
|
-
const hover = removeSlotClass('hover');
|
|
323
|
-
expect(def.className).toBe(hover.className);
|
|
324
|
-
});
|
|
325
|
-
|
|
326
|
-
it('still fires onRemove when revealed on hover', async () => {
|
|
327
|
-
const user = userEvent.setup();
|
|
328
|
-
const onRemove = vi.fn();
|
|
329
|
-
render(
|
|
330
|
-
<Thumbnail label="file.png" onRemove={onRemove} showRemoveOn="hover" />,
|
|
331
|
-
);
|
|
332
|
-
await user.click(screen.getByRole('button', {name: 'Remove file.png'}));
|
|
333
|
-
expect(onRemove).toHaveBeenCalledOnce();
|
|
334
|
-
});
|
|
335
|
-
});
|
|
336
|
-
|
|
337
|
-
it('shows the placeholder when the image fails to load', () => {
|
|
338
|
-
render(<Thumbnail src="/broken.jpg" alt="Broken" data-testid="thumb" />);
|
|
339
|
-
|
|
340
|
-
fireEvent.error(screen.getByRole('img'));
|
|
341
|
-
|
|
342
|
-
expect(screen.queryByRole('img')).toBeNull();
|
|
343
|
-
const root = screen.getByTestId('thumb');
|
|
344
|
-
expect(root.querySelector('svg')).toBeInTheDocument();
|
|
345
|
-
});
|
|
346
|
-
|
|
347
|
-
it('retries a changed src after a load error', () => {
|
|
348
|
-
const {rerender} = render(
|
|
349
|
-
<Thumbnail src="/broken.jpg" alt="Photo" data-testid="thumb" />,
|
|
350
|
-
);
|
|
351
|
-
fireEvent.error(screen.getByRole('img'));
|
|
352
|
-
expect(screen.queryByRole('img')).toBeNull();
|
|
353
|
-
|
|
354
|
-
rerender(<Thumbnail src="/fixed.jpg" alt="Photo" data-testid="thumb" />);
|
|
355
|
-
|
|
356
|
-
const img = screen.getByRole('img');
|
|
357
|
-
expect(img).toHaveAttribute('src', '/fixed.jpg');
|
|
358
|
-
});
|
|
359
|
-
});
|
|
360
|
-
|
|
361
|
-
describe('Thumbnail pressed state (touch)', () => {
|
|
362
|
-
it('fades the touch press out on the interactive container, whose overlay layer reads its strength', () => {
|
|
363
|
-
const {container} = render(
|
|
364
|
-
<Thumbnail src="/img.jpg" alt="Clickable" onClick={vi.fn()} />,
|
|
365
|
-
);
|
|
366
|
-
const surface = container.querySelector('[data-astryx-pressable]');
|
|
367
|
-
if (surface == null) {
|
|
368
|
-
throw new Error('the interactive thumbnail carries no pressable marker');
|
|
369
|
-
}
|
|
370
|
-
expect(hasReleaseFade(surface)).toBe(true);
|
|
371
|
-
expect(readsPressStrength(surface, '[data-astryx-press="on"]')).toBe(true);
|
|
372
|
-
expect(readsPressStrength(surface)).toBe(true);
|
|
373
|
-
expect(afterPaintsPress(surface, '[data-astryx-press="on"]')).toBe(true);
|
|
374
|
-
expect(afterPaintsPress(surface)).toBe(true);
|
|
375
|
-
// In a layered stylesheet a press arm on a custom property the container
|
|
376
|
-
// also declares without it never applies.
|
|
377
|
-
expect(pressArmsShadowedByDefault(surface)).toEqual([]);
|
|
378
|
-
});
|
|
379
|
-
|
|
380
|
-
it('carries none of it when not interactive', () => {
|
|
381
|
-
const {container} = render(<Thumbnail src="/img.jpg" alt="Static" />);
|
|
382
|
-
expect(container.querySelector('[data-astryx-pressable]')).toBeNull();
|
|
383
|
-
});
|
|
384
|
-
});
|