@astryxdesign/core 0.4.7 → 0.5.0-canary.54bb922
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +161 -1
- package/dist/AppShell/AppShell.d.ts.map +1 -1
- package/dist/AppShell/AppShell.js +3 -2
- package/dist/AspectRatio/AspectRatio.d.ts +24 -0
- package/dist/AspectRatio/AspectRatio.d.ts.map +1 -1
- package/dist/AspectRatio/AspectRatio.js +23 -4
- package/dist/Avatar/Avatar.d.ts.map +1 -1
- package/dist/Avatar/Avatar.js +15 -10
- package/dist/AvatarGroup/AvatarGroup.d.ts.map +1 -1
- package/dist/AvatarGroup/AvatarGroup.js +3 -2
- package/dist/Banner/Banner.d.ts +40 -15
- package/dist/Banner/Banner.d.ts.map +1 -1
- package/dist/Banner/Banner.js +51 -18
- package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheet.js +17 -4
- package/dist/BottomSheet/BottomSheetSwitcher.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetSwitcher.js +3 -2
- package/dist/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
- package/dist/Breadcrumbs/BreadcrumbItem.js +11 -10
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/Button/Button.js +5 -4
- package/dist/ButtonGroup/ButtonGroup.d.ts +5 -1
- package/dist/ButtonGroup/ButtonGroup.d.ts.map +1 -1
- package/dist/ButtonGroup/ButtonGroup.js +26 -7
- package/dist/Calendar/Calendar.d.ts +3 -1
- package/dist/Calendar/Calendar.d.ts.map +1 -1
- package/dist/Calendar/Calendar.js +13 -14
- package/dist/Calendar/getInitialFocusDate.d.ts +46 -0
- package/dist/Calendar/getInitialFocusDate.d.ts.map +1 -0
- package/dist/Calendar/getInitialFocusDate.js +62 -0
- package/dist/Carousel/Carousel.d.ts.map +1 -1
- package/dist/Carousel/Carousel.js +3 -3
- package/dist/Chat/ChatComposerInput.d.ts.map +1 -1
- package/dist/Chat/ChatComposerInput.js +2 -3
- package/dist/Chat/ChatLayout.d.ts.map +1 -1
- package/dist/Chat/ChatLayout.js +3 -3
- package/dist/Chat/ChatMessageList.d.ts +22 -3
- package/dist/Chat/ChatMessageList.d.ts.map +1 -1
- package/dist/Chat/ChatMessageList.js +6 -3
- package/dist/Chat/ChatTokenizedText.d.ts +2 -0
- package/dist/Chat/ChatTokenizedText.d.ts.map +1 -1
- package/dist/Chat/ChatTokenizedText.js +11 -6
- package/dist/Chat/useChatComposerTokens.js +1 -1
- package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +3 -2
- package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
- package/dist/ClickableCard/ClickableCard.js +3 -3
- package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPaletteInput.js +3 -2
- package/dist/CommandPalette/CommandPaletteItem.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPaletteItem.js +3 -2
- package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
- package/dist/ContextMenu/ContextMenu.js +4 -3
- package/dist/DateInput/DateInput.d.ts.map +1 -1
- package/dist/DateInput/DateInput.js +3 -2
- package/dist/DateInput/TouchDateField.d.ts.map +1 -1
- package/dist/DateInput/TouchDateField.js +38 -4
- package/dist/DateTimeInput/DateTimeInput.d.ts +21 -1
- package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
- package/dist/DateTimeInput/DateTimeInput.js +406 -12
- package/dist/DateTimeInput/index.d.ts +1 -1
- package/dist/DateTimeInput/index.d.ts.map +1 -1
- package/dist/Dialog/Dialog.d.ts +7 -1
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +89 -58
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.js +6 -5
- package/dist/FileInput/FileInput.d.ts.map +1 -1
- package/dist/FileInput/FileInput.js +3 -2
- package/dist/Heading/Heading.d.ts.map +1 -1
- package/dist/Heading/Heading.js +6 -2
- package/dist/HoverCard/HoverCard.d.ts +6 -0
- package/dist/HoverCard/HoverCard.d.ts.map +1 -1
- package/dist/HoverCard/useHoverCard.d.ts +5 -0
- package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
- package/dist/HoverCard/useHoverCard.js +67 -25
- package/dist/Item/Item.d.ts.map +1 -1
- package/dist/Item/Item.js +4 -2
- package/dist/Kbd/Kbd.d.ts.map +1 -1
- package/dist/Kbd/Kbd.js +2 -19
- package/dist/Layer/LayerDepthContext.d.ts +52 -0
- package/dist/Layer/LayerDepthContext.d.ts.map +1 -0
- package/dist/Layer/LayerDepthContext.js +66 -0
- package/dist/Layer/index.d.ts +3 -0
- package/dist/Layer/index.d.ts.map +1 -1
- package/dist/Layer/index.js +4 -0
- package/dist/Layer/layerStack.d.ts +98 -0
- package/dist/Layer/layerStack.d.ts.map +1 -0
- package/dist/Layer/layerStack.js +306 -0
- package/dist/Layer/useLayerDismissal.d.ts +93 -0
- package/dist/Layer/useLayerDismissal.d.ts.map +1 -0
- package/dist/Layer/useLayerDismissal.js +91 -0
- package/dist/Lightbox/Lightbox.d.ts +1 -0
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +103 -81
- package/dist/Markdown/index.d.ts +1 -1
- package/dist/Markdown/index.d.ts.map +1 -1
- package/dist/Markdown/parser.d.ts +38 -1
- package/dist/Markdown/parser.d.ts.map +1 -1
- package/dist/Markdown/parser.js +177 -29
- package/dist/MobileNav/MobileNav.d.ts +6 -1
- package/dist/MobileNav/MobileNav.d.ts.map +1 -1
- package/dist/MobileNav/MobileNav.js +61 -36
- package/dist/MultiSelector/MultiSelector.d.ts +15 -1
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +17 -6
- package/dist/MultiSelector/index.d.ts +1 -1
- package/dist/MultiSelector/index.d.ts.map +1 -1
- package/dist/NavMenu/NavHeadingMenu.d.ts.map +1 -1
- package/dist/NavMenu/NavHeadingMenu.js +3 -2
- package/dist/Outline/Outline.d.ts.map +1 -1
- package/dist/Outline/Outline.js +3 -2
- package/dist/OverflowList/OverflowList.d.ts.map +1 -1
- package/dist/OverflowList/OverflowList.js +3 -2
- package/dist/Overlay/Overlay.d.ts.map +1 -1
- package/dist/Overlay/Overlay.js +3 -2
- package/dist/Popover/usePopover.d.ts.map +1 -1
- package/dist/Popover/usePopover.js +20 -17
- package/dist/PowerSearch/PowerSearch.d.ts +8 -2
- package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearch.js +19 -6
- package/dist/PowerSearch/PowerSearchEditPopover.d.ts +3 -1
- package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchEditPopover.js +28 -6
- package/dist/PowerSearch/PowerSearchValueEditor.d.ts +3 -1
- package/dist/PowerSearch/PowerSearchValueEditor.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchValueEditor.js +19 -9
- package/dist/PowerSearch/types.d.ts +2 -0
- package/dist/PowerSearch/types.d.ts.map +1 -1
- package/dist/PowerSearch/usePowerSearchSource.d.ts +6 -1
- package/dist/PowerSearch/usePowerSearchSource.d.ts.map +1 -1
- package/dist/PowerSearch/usePowerSearchSource.js +14 -5
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +3 -2
- package/dist/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControl.js +3 -2
- package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
- package/dist/SelectableCard/SelectableCard.js +3 -3
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +5 -0
- package/dist/SideNav/SideNav.d.ts.map +1 -1
- package/dist/SideNav/SideNav.js +4 -3
- package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
- package/dist/SideNav/SideNavHeading.js +6 -5
- package/dist/SideNav/SideNavItem.d.ts.map +1 -1
- package/dist/SideNav/SideNavItem.js +4 -3
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +3 -3
- package/dist/Spinner/Spinner.d.ts +3 -3
- package/dist/Spinner/Spinner.d.ts.map +1 -1
- package/dist/Spinner/Spinner.js +130 -78
- package/dist/Stepper/Step.d.ts +140 -0
- package/dist/Stepper/Step.d.ts.map +1 -0
- package/dist/Stepper/Step.js +1045 -0
- package/dist/Stepper/StepStatus.d.ts +24 -0
- package/dist/Stepper/StepStatus.d.ts.map +1 -0
- package/dist/Stepper/StepStatus.js +1 -0
- package/dist/Stepper/Stepper.d.ts +93 -0
- package/dist/Stepper/Stepper.d.ts.map +1 -0
- package/dist/Stepper/Stepper.js +184 -0
- package/dist/Stepper/StepperContext.d.ts +41 -0
- package/dist/Stepper/StepperContext.d.ts.map +1 -0
- package/dist/Stepper/StepperContext.js +34 -0
- package/dist/Stepper/index.d.ts +8 -0
- package/dist/Stepper/index.d.ts.map +1 -0
- package/dist/Stepper/index.js +7 -0
- package/dist/Stepper/stepper.stylex.d.ts +15 -0
- package/dist/Stepper/stepper.stylex.d.ts.map +1 -0
- package/dist/Stepper/stepper.stylex.js +20 -0
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +3 -2
- package/dist/TabList/Tab.d.ts +15 -2
- package/dist/TabList/Tab.d.ts.map +1 -1
- package/dist/TabList/Tab.js +32 -7
- package/dist/TabList/TabList.d.ts +46 -7
- package/dist/TabList/TabList.d.ts.map +1 -1
- package/dist/TabList/TabList.js +353 -23
- package/dist/TabList/TabListContext.d.ts +11 -1
- package/dist/TabList/TabListContext.d.ts.map +1 -1
- package/dist/TabList/TabListContext.js +11 -2
- package/dist/TabList/TabMenu.d.ts.map +1 -1
- package/dist/TabList/TabMenu.js +3 -2
- package/dist/TabList/index.d.ts +2 -2
- package/dist/TabList/index.d.ts.map +1 -1
- package/dist/Table/BaseTable.d.ts.map +1 -1
- package/dist/Table/BaseTable.js +4 -1
- package/dist/Table/TableRow.d.ts +16 -5
- package/dist/Table/TableRow.d.ts.map +1 -1
- package/dist/Table/TableRow.js +16 -5
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts.map +1 -1
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +20 -8
- package/dist/Table/plugins/pagination/useTablePagination.d.ts +3 -0
- package/dist/Table/plugins/pagination/useTablePagination.d.ts.map +1 -1
- package/dist/Table/plugins/pagination/useTablePagination.js +21 -4
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +7 -2
- package/dist/Table/plugins/rowStatus/useTableRowStatus.d.ts.map +1 -1
- package/dist/Table/plugins/rowStatus/useTableRowStatus.js +10 -3
- package/dist/Table/plugins/selection/useTableSelection.d.ts +16 -0
- package/dist/Table/plugins/selection/useTableSelection.d.ts.map +1 -1
- package/dist/Table/plugins/selection/useTableSelection.js +19 -5
- package/dist/Table/types.d.ts +22 -4
- package/dist/Table/types.d.ts.map +1 -1
- package/dist/Table/useBaseTablePlugins.d.ts.map +1 -1
- package/dist/Table/useBaseTablePlugins.js +5 -0
- package/dist/Text/Text.d.ts.map +1 -1
- package/dist/Text/Text.js +6 -2
- package/dist/TextArea/TextArea.d.ts.map +1 -1
- package/dist/TextArea/TextArea.js +3 -2
- package/dist/TextInput/TextInput.d.ts.map +1 -1
- package/dist/TextInput/TextInput.js +3 -2
- package/dist/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/TimeInput/TimeInput.js +3 -2
- package/dist/Timestamp/Timestamp.d.ts.map +1 -1
- package/dist/Timestamp/Timestamp.js +5 -3
- package/dist/Token/TokenLink.d.ts.map +1 -1
- package/dist/Token/TokenLink.js +2 -2
- package/dist/Tokenizer/Tokenizer.d.ts +3 -1
- package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.js +2 -0
- package/dist/Tooltip/Tooltip.d.ts +5 -0
- package/dist/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.d.ts +5 -0
- package/dist/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.js +39 -24
- package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
- package/dist/TopNav/TopNavHeading.js +3 -2
- package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
- package/dist/TopNav/TopNavMegaMenu.js +3 -3
- package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
- package/dist/TopNav/TopNavMenu.js +4 -3
- package/dist/Typeahead/BaseTypeahead.d.ts +2 -0
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +68 -29
- package/dist/Typeahead/Typeahead.d.ts.map +1 -1
- package/dist/Typeahead/Typeahead.js +3 -2
- package/dist/astryx.css +68 -2
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/useFocusTrap.d.ts +7 -4
- package/dist/hooks/useFocusTrap.d.ts.map +1 -1
- package/dist/hooks/useFocusTrap.js +60 -95
- package/dist/hooks/useHotkeys.d.ts.map +1 -1
- package/dist/hooks/useHotkeys.js +3 -18
- package/dist/hooks/useMergedRefs.d.ts +18 -0
- package/dist/hooks/useMergedRefs.d.ts.map +1 -0
- package/dist/hooks/useMergedRefs.js +25 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/utils/groupItems.d.ts +5 -1
- package/dist/utils/groupItems.d.ts.map +1 -1
- package/dist/utils/groupItems.js +9 -9
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/isApplePlatform.d.ts +18 -0
- package/dist/utils/isApplePlatform.d.ts.map +1 -0
- package/dist/utils/isApplePlatform.js +37 -0
- package/dist/utils/sharedResizeObserver.d.ts.map +1 -1
- package/dist/utils/sharedResizeObserver.js +10 -1
- package/dist/utils/timeParser.d.ts +1 -1
- package/dist/utils/timeParser.d.ts.map +1 -1
- package/dist/utils/timeParser.js +26 -12
- package/locales/en.json +31 -7
- package/locales/pseudo.json +18 -0
- package/package.json +8 -3
- package/src/AppShell/AppShell.tsx +3 -2
- package/src/AspectRatio/AspectRatio.doc.mjs +6 -3
- package/src/AspectRatio/AspectRatio.test.tsx +57 -10
- package/src/AspectRatio/AspectRatio.tsx +40 -1
- package/src/Avatar/Avatar.doc.mjs +2 -1
- package/src/Avatar/Avatar.test.tsx +17 -0
- package/src/Avatar/Avatar.tsx +61 -38
- package/src/AvatarGroup/AvatarGroup.tsx +3 -2
- package/src/Banner/Banner.doc.mjs +13 -11
- package/src/Banner/Banner.test.tsx +102 -15
- package/src/Banner/Banner.tsx +72 -25
- package/src/BottomSheet/BottomSheet.test.tsx +123 -0
- package/src/BottomSheet/BottomSheet.tsx +17 -4
- package/src/BottomSheet/BottomSheetSwitcher.tsx +3 -2
- package/src/Breadcrumbs/BreadcrumbItem.tsx +9 -5
- package/src/Button/Button.doc.mjs +22 -0
- package/src/Button/Button.test.tsx +13 -0
- package/src/Button/Button.tsx +5 -4
- package/src/ButtonGroup/ButtonGroup.doc.mjs +10 -1
- package/src/ButtonGroup/ButtonGroup.test.tsx +391 -1
- package/src/ButtonGroup/ButtonGroup.tsx +23 -5
- package/src/Calendar/Calendar.doc.mjs +4 -3
- package/src/Calendar/Calendar.test.tsx +52 -0
- package/src/Calendar/Calendar.tsx +18 -15
- package/src/Calendar/getInitialFocusDate.test.ts +94 -0
- package/src/Calendar/getInitialFocusDate.ts +93 -0
- package/src/Carousel/Carousel.tsx +3 -2
- package/src/Chat/ChatComposerInput.tsx +5 -1
- package/src/Chat/ChatLayout.tsx +3 -2
- package/src/Chat/ChatMessageList.doc.mjs +9 -1
- package/src/Chat/ChatMessageList.test.tsx +46 -0
- package/src/Chat/ChatMessageList.tsx +28 -4
- package/src/Chat/ChatTokenizedText.tsx +17 -10
- package/src/Chat/useChatComposerTokens.ts +1 -1
- package/src/CheckboxInput/CheckboxInput.tsx +3 -2
- package/src/ClickableCard/ClickableCard.tsx +3 -2
- package/src/CodeBlock/CodeBlock.doc.mjs +6 -0
- package/src/CommandPalette/CommandPaletteInput.tsx +3 -2
- package/src/CommandPalette/CommandPaletteItem.tsx +3 -2
- package/src/ContextMenu/ContextMenu.doc.mjs +5 -0
- package/src/ContextMenu/ContextMenu.tsx +4 -3
- package/src/DateInput/DateInput.tsx +3 -2
- package/src/DateInput/DateInputTouch.test.tsx +36 -0
- package/src/DateInput/TouchDateField.tsx +38 -4
- package/src/DateTimeInput/DateTimeInput.doc.mjs +18 -0
- package/src/DateTimeInput/DateTimeInput.test.tsx +1088 -0
- package/src/DateTimeInput/DateTimeInput.tsx +556 -24
- package/src/DateTimeInput/index.ts +1 -0
- package/src/Dialog/Dialog.doc.mjs +8 -3
- package/src/Dialog/Dialog.test.tsx +261 -1
- package/src/Dialog/Dialog.tsx +109 -58
- package/src/DropdownMenu/DropdownMenu.doc.mjs +6 -0
- package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +8 -5
- package/src/DropdownMenu/DropdownMenuSubMenu.tsx +8 -11
- package/src/Field/Field.doc.mjs +13 -2
- package/src/FileInput/FileInput.tsx +3 -2
- package/src/Heading/Heading.test.tsx +23 -1
- package/src/Heading/Heading.tsx +6 -2
- package/src/HoverCard/HoverCard.doc.mjs +5 -0
- package/src/HoverCard/HoverCard.tsx +6 -0
- package/src/HoverCard/useHoverCard.tsx +81 -30
- package/src/Item/Item.tsx +5 -4
- package/src/Kbd/Kbd.tsx +2 -19
- package/src/Layer/LayerDepthContext.tsx +62 -0
- package/src/Layer/index.ts +9 -0
- package/src/Layer/layerDismissalFamilies.test.tsx +359 -0
- package/src/Layer/layerDismissalInvariants.test.tsx +417 -0
- package/src/Layer/layerStack.ts +362 -0
- package/src/Layer/useLayerDismissal.test.tsx +469 -0
- package/src/Layer/useLayerDismissal.ts +173 -0
- package/src/Layout/Layout.doc.mjs +2 -2
- package/src/Lightbox/Lightbox.doc.mjs +12 -0
- package/src/Lightbox/Lightbox.tsx +124 -102
- package/src/Link/Link.doc.mjs +39 -0
- package/src/Markdown/Markdown.doc.mjs +5 -0
- package/src/Markdown/incremental.test.ts +16 -2
- package/src/Markdown/index.ts +1 -0
- package/src/Markdown/parser.perf.test.ts +96 -1
- package/src/Markdown/parser.test.ts +145 -2
- package/src/Markdown/parser.ts +244 -29
- package/src/MobileNav/MobileNav.tsx +62 -36
- package/src/MoreMenu/MoreMenu.doc.mjs +7 -1
- package/src/MultiSelector/MultiSelector.doc.mjs +27 -0
- package/src/MultiSelector/MultiSelector.test.tsx +106 -0
- package/src/MultiSelector/MultiSelector.tsx +50 -6
- package/src/MultiSelector/index.ts +1 -0
- package/src/NavMenu/NavHeadingMenu.tsx +3 -2
- package/src/NumberInput/NumberInput.doc.mjs +5 -0
- package/src/Outline/Outline.tsx +3 -2
- package/src/OverflowList/OverflowList.tsx +3 -2
- package/src/Overlay/Overlay.tsx +3 -2
- package/src/Popover/usePopover.tsx +31 -28
- package/src/PowerSearch/PowerSearch.doc.mjs +160 -28
- package/src/PowerSearch/PowerSearch.test.tsx +240 -1
- package/src/PowerSearch/PowerSearch.tsx +34 -5
- package/src/PowerSearch/PowerSearchEditPopover.test.tsx +201 -0
- package/src/PowerSearch/PowerSearchEditPopover.tsx +29 -2
- package/src/PowerSearch/PowerSearchValueEditor.test.tsx +47 -1
- package/src/PowerSearch/PowerSearchValueEditor.tsx +15 -0
- package/src/PowerSearch/types.ts +2 -0
- package/src/PowerSearch/usePowerSearchSource.test.ts +82 -2
- package/src/PowerSearch/usePowerSearchSource.ts +13 -3
- package/src/Resizable/ResizeHandle.tsx +3 -2
- package/src/SegmentedControl/SegmentedControl.tsx +3 -2
- package/src/SelectableCard/SelectableCard.tsx +3 -2
- package/src/Selector/Selector.doc.mjs +12 -1
- package/src/Selector/Selector.test.tsx +45 -1
- package/src/Selector/Selector.tsx +11 -1
- package/src/SideNav/SideNav.doc.mjs +6 -6
- package/src/SideNav/SideNav.tsx +4 -2
- package/src/SideNav/SideNavHeading.tsx +10 -10
- package/src/SideNav/SideNavItem.tsx +4 -2
- package/src/Slider/Slider.tsx +3 -2
- package/src/Spinner/Spinner.test.tsx +147 -1
- package/src/Spinner/Spinner.tsx +120 -101
- package/src/Stepper/Step.doc.mjs +98 -0
- package/src/Stepper/Step.tsx +1638 -0
- package/src/Stepper/StepStatus.ts +26 -0
- package/src/Stepper/Stepper.doc.mjs +370 -0
- package/src/Stepper/Stepper.test.tsx +1024 -0
- package/src/Stepper/Stepper.tsx +258 -0
- package/src/Stepper/StepperContext.ts +71 -0
- package/src/Stepper/index.ts +18 -0
- package/src/Stepper/stepper.stylex.ts +19 -0
- package/src/Switch/Switch.tsx +3 -2
- package/src/TabList/Tab.doc.mjs +13 -1
- package/src/TabList/Tab.tsx +67 -7
- package/src/TabList/TabList.doc.mjs +22 -6
- package/src/TabList/TabList.test.tsx +559 -0
- package/src/TabList/TabList.tsx +490 -22
- package/src/TabList/TabListContext.ts +13 -2
- package/src/TabList/TabMenu.tsx +3 -2
- package/src/TabList/index.ts +6 -2
- package/src/Table/BaseTable.tsx +6 -3
- package/src/Table/Table.doc.mjs +6 -1
- package/src/Table/Table.test.tsx +132 -14
- package/src/Table/TableBody.doc.mjs +40 -0
- package/src/Table/TableFooter.doc.mjs +40 -0
- package/src/Table/TableHeader.doc.mjs +40 -0
- package/src/Table/TableRow.tsx +16 -5
- package/src/Table/plugins/groupedRows/useTableGroupedRows-perf.test.tsx +112 -0
- package/src/Table/plugins/groupedRows/useTableGroupedRows.test.tsx +100 -0
- package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +17 -8
- package/src/Table/plugins/pagination/useTablePagination.test.tsx +34 -4
- package/src/Table/plugins/pagination/useTablePagination.tsx +35 -3
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +9 -2
- package/src/Table/plugins/rowStatus/useTableRowStatus.test.tsx +13 -7
- package/src/Table/plugins/rowStatus/useTableRowStatus.tsx +12 -3
- package/src/Table/plugins/selection/useTableSelection.test.tsx +76 -0
- package/src/Table/plugins/selection/useTableSelection.tsx +40 -7
- package/src/Table/types.ts +22 -4
- package/src/Table/useBaseTablePlugins.ts +5 -0
- package/src/Table/useTableGroupedRows.doc.mjs +5 -4
- package/src/Table/useTablePagination.doc.mjs +7 -0
- package/src/Table/useTableRowStatus.doc.mjs +1 -1
- package/src/Table/useTableSelection.doc.mjs +31 -0
- package/src/Text/Text.test.tsx +23 -1
- package/src/Text/Text.tsx +6 -2
- package/src/TextArea/TextArea.tsx +3 -2
- package/src/TextInput/TextInput.doc.mjs +10 -0
- package/src/TextInput/TextInput.tsx +3 -2
- package/src/Thumbnail/Thumbnail.doc.mjs +1 -1
- package/src/TimeInput/TimeInput.tsx +2 -2
- package/src/Timestamp/Timestamp.tsx +4 -2
- package/src/Toast/Toast.doc.mjs +6 -0
- package/src/Token/TokenLink.tsx +2 -2
- package/src/Tokenizer/Tokenizer.doc.mjs +27 -0
- package/src/Tokenizer/Tokenizer.tsx +4 -0
- package/src/Toolbar/Toolbar.doc.mjs +5 -0
- package/src/Tooltip/Tooltip.doc.mjs +5 -0
- package/src/Tooltip/Tooltip.test.tsx +32 -0
- package/src/Tooltip/Tooltip.tsx +5 -0
- package/src/Tooltip/useTooltip.tsx +47 -24
- package/src/TopNav/TopNavHeading.tsx +3 -2
- package/src/TopNav/TopNavMegaMenu.tsx +3 -2
- package/src/TopNav/TopNavMenu.tsx +4 -3
- package/src/Typeahead/BaseTypeahead.doc.mjs +11 -0
- package/src/Typeahead/BaseTypeahead.tsx +85 -33
- package/src/Typeahead/Typeahead.doc.mjs +5 -0
- package/src/Typeahead/Typeahead.test.tsx +49 -0
- package/src/Typeahead/Typeahead.tsx +3 -2
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useContainerReveal.doc.mjs +2 -2
- package/src/hooks/useFocusTrap.test.tsx +14 -0
- package/src/hooks/useFocusTrap.ts +62 -111
- package/src/hooks/useFocusTrapEscapeShim.test.tsx +165 -0
- package/src/hooks/useHotkeys.ts +3 -18
- package/src/hooks/useMergedRefs.doc.mjs +79 -0
- package/src/hooks/useMergedRefs.test.tsx +62 -0
- package/src/hooks/useMergedRefs.ts +36 -0
- package/src/index.ts +1 -0
- package/src/theme/MediaTheme.doc.mjs +5 -5
- package/src/utils/groupItems.ts +12 -6
- package/src/utils/index.ts +1 -1
- package/src/utils/isApplePlatform.test.ts +61 -0
- package/src/utils/isApplePlatform.ts +37 -0
- package/src/utils/sharedResizeObserver.ts +10 -2
- package/src/utils/timeParser.test.ts +6 -1
- package/src/utils/timeParser.ts +35 -13
- package/src/__tests__/inputWidthContract.test.tsx +0 -69
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { type LayerEscapeBehavior } from './layerStack';
|
|
2
|
+
export type { LayerEscapeBehavior };
|
|
3
|
+
export interface UseLayerDismissalOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Whether this layer is participating right now. Usually the layer's open
|
|
6
|
+
* state. A layer whose open state lags the DOM should pass `true` for its
|
|
7
|
+
* lifetime and answer `isPresent` from the DOM instead.
|
|
8
|
+
*/
|
|
9
|
+
isActive: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Dismiss this layer. Called by the stack when this layer is the one that
|
|
12
|
+
* should respond to an Escape press. Not called for `escapeBehavior: 'block'`.
|
|
13
|
+
*/
|
|
14
|
+
onDismiss: () => void;
|
|
15
|
+
/**
|
|
16
|
+
* What this layer does with an Escape press that reaches it.
|
|
17
|
+
* @default 'close'
|
|
18
|
+
*/
|
|
19
|
+
escapeBehavior?: LayerEscapeBehavior;
|
|
20
|
+
/**
|
|
21
|
+
* This layer's container element, read lazily. Optional: supply it when the
|
|
22
|
+
* layer cannot wrap its content in `LayerDepthProvider` (a bare focus trap
|
|
23
|
+
* renders nothing), so nesting can still be recovered from the DOM.
|
|
24
|
+
*/
|
|
25
|
+
getContainer?: () => HTMLElement | null;
|
|
26
|
+
/**
|
|
27
|
+
* Whether the layer is really on screen, asked at press time. Supply it when
|
|
28
|
+
* `isActive` is `true` for the layer's lifetime because its open state lags
|
|
29
|
+
* the DOM by a frame; the stack skips layers that answer `false`.
|
|
30
|
+
*/
|
|
31
|
+
isPresent?: () => boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Whether this layer takes part in the shared stack at all. When `false` the
|
|
34
|
+
* layer is invisible to dismissal: a press flows past it to the layer below,
|
|
35
|
+
* exactly as if it were not open.
|
|
36
|
+
*
|
|
37
|
+
* Deliberately separate from `escapeBehavior: 'block'` — `'block'` is a layer
|
|
38
|
+
* that is present and swallows the press; this is a layer that is not there
|
|
39
|
+
* at all. One case uses it: `Dialog`'s inline rendering mode, where content
|
|
40
|
+
* sits in normal flow with nothing layered over anything.
|
|
41
|
+
*
|
|
42
|
+
* A controlled layer is NOT one of these. It stays registered and takes the
|
|
43
|
+
* press like any other, answering it by calling the consumer's change
|
|
44
|
+
* handler; whether it then closes is the consumer's decision.
|
|
45
|
+
*
|
|
46
|
+
* Layers that are never Escape-dismissible (toasts) should simply not call
|
|
47
|
+
* this hook.
|
|
48
|
+
*
|
|
49
|
+
* @default true
|
|
50
|
+
*/
|
|
51
|
+
isEnabled?: boolean;
|
|
52
|
+
}
|
|
53
|
+
export interface UseLayerDismissalReturn {
|
|
54
|
+
/**
|
|
55
|
+
* Whether a close request the browser started on its own — a `<dialog>`'s
|
|
56
|
+
* `cancel`, the Android back gesture, the platform close watcher — should
|
|
57
|
+
* dismiss this layer. As well as the top-most rule the stack applies to an
|
|
58
|
+
* Escape press, it declines a request that arrives while an IME composition
|
|
59
|
+
* is running, which no `cancel` handler can tell on its own because the
|
|
60
|
+
* event carries no composition state.
|
|
61
|
+
*/
|
|
62
|
+
shouldDismissOnCloseRequest: () => boolean;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Join the shared layer dismissal stack for as long as this layer is active.
|
|
66
|
+
*
|
|
67
|
+
* The layer does NOT attach a key listener — the stack owns one listener and
|
|
68
|
+
* routes each Escape press to the top-most REGISTERED layer, so one press
|
|
69
|
+
* dismisses exactly one of them. Dialog (and what is built on it), Popover and
|
|
70
|
+
* the menus built on it, Tooltip, HoverCard, Lightbox and MobileNav register
|
|
71
|
+
* today; `BottomSheetSwitcher` registers through its focus trap when modal and
|
|
72
|
+
* still handles its own press when not.
|
|
73
|
+
*
|
|
74
|
+
* `BottomSheet`, `CommandPalette`, `ContextMenu`, `DropdownMenuSubMenu`,
|
|
75
|
+
* `PowerSearchEditPopover` and lab's `Drawer` still run their own Escape
|
|
76
|
+
* listener. They stay safe next to the stack only because each claims the press
|
|
77
|
+
* at element level, and the stack stands down on an already-`defaultPrevented`
|
|
78
|
+
* press — but a registered layer opened INSIDE one of them does not get the
|
|
79
|
+
* press: the host takes it and closes instead. Migrating them is the fix.
|
|
80
|
+
*
|
|
81
|
+
* Wrap the layer's own content in `LayerDepthProvider` so anything opened from
|
|
82
|
+
* inside it registers as nested.
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```tsx
|
|
86
|
+
* useLayerDismissal({
|
|
87
|
+
* isActive: isOpen,
|
|
88
|
+
* onDismiss: () => onOpenChange(false),
|
|
89
|
+
* });
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export declare function useLayerDismissal(options: UseLayerDismissalOptions): UseLayerDismissalReturn;
|
|
93
|
+
//# sourceMappingURL=useLayerDismissal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLayerDismissal.d.ts","sourceRoot":"","sources":["../../src/Layer/useLayerDismissal.ts"],"names":[],"mappings":"AAqBA,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAC,mBAAmB,EAAC,CAAC;AAElC,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB;;;OAGG;IACH,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IACxC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;IAC1B;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC;;;;;;;OAOG;IACH,2BAA2B,EAAE,MAAM,OAAO,CAAC;CAC5C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,wBAAwB,GAChC,uBAAuB,CAiDzB"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
'use client';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @file useLayerDismissal.ts
|
|
7
|
+
* @input Uses React hooks, the layer stack, and LayerDepthContext
|
|
8
|
+
* @output Exports useLayerDismissal + its option/return types
|
|
9
|
+
* @position The API overlays use to join the shared dismissal stack. Wraps
|
|
10
|
+
* layerStack (registration + the single Escape listener) and reads nesting
|
|
11
|
+
* depth from LayerDepthContext.
|
|
12
|
+
*
|
|
13
|
+
* SYNC: When modified, update:
|
|
14
|
+
* - /packages/core/src/Layer/index.ts
|
|
15
|
+
* - /packages/core/src/Layer/useLayerDismissal.test.tsx
|
|
16
|
+
* - /packages/core/src/Layer/layerStack.ts
|
|
17
|
+
*/
|
|
18
|
+
import { useCallback, useEffect, useRef } from 'react';
|
|
19
|
+
import { useLayerDepth } from "./LayerDepthContext.js";
|
|
20
|
+
import { isTextComposing, isTopmostLayer, registerLayer } from "./layerStack.js";
|
|
21
|
+
/**
|
|
22
|
+
* Join the shared layer dismissal stack for as long as this layer is active.
|
|
23
|
+
*
|
|
24
|
+
* The layer does NOT attach a key listener — the stack owns one listener and
|
|
25
|
+
* routes each Escape press to the top-most REGISTERED layer, so one press
|
|
26
|
+
* dismisses exactly one of them. Dialog (and what is built on it), Popover and
|
|
27
|
+
* the menus built on it, Tooltip, HoverCard, Lightbox and MobileNav register
|
|
28
|
+
* today; `BottomSheetSwitcher` registers through its focus trap when modal and
|
|
29
|
+
* still handles its own press when not.
|
|
30
|
+
*
|
|
31
|
+
* `BottomSheet`, `CommandPalette`, `ContextMenu`, `DropdownMenuSubMenu`,
|
|
32
|
+
* `PowerSearchEditPopover` and lab's `Drawer` still run their own Escape
|
|
33
|
+
* listener. They stay safe next to the stack only because each claims the press
|
|
34
|
+
* at element level, and the stack stands down on an already-`defaultPrevented`
|
|
35
|
+
* press — but a registered layer opened INSIDE one of them does not get the
|
|
36
|
+
* press: the host takes it and closes instead. Migrating them is the fix.
|
|
37
|
+
*
|
|
38
|
+
* Wrap the layer's own content in `LayerDepthProvider` so anything opened from
|
|
39
|
+
* inside it registers as nested.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```tsx
|
|
43
|
+
* useLayerDismissal({
|
|
44
|
+
* isActive: isOpen,
|
|
45
|
+
* onDismiss: () => onOpenChange(false),
|
|
46
|
+
* });
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export function useLayerDismissal(options) {
|
|
50
|
+
const {
|
|
51
|
+
isActive,
|
|
52
|
+
onDismiss,
|
|
53
|
+
escapeBehavior = 'close',
|
|
54
|
+
getContainer,
|
|
55
|
+
isPresent,
|
|
56
|
+
isEnabled = true
|
|
57
|
+
} = options;
|
|
58
|
+
const depth = useLayerDepth();
|
|
59
|
+
|
|
60
|
+
// Identity for this layer's stack entry, stable across re-registration.
|
|
61
|
+
const tokenRef = useRef({});
|
|
62
|
+
|
|
63
|
+
// The stack calls these during an event, outside React's render, so they must
|
|
64
|
+
// reach the latest closures rather than the ones captured at registration.
|
|
65
|
+
const onDismissRef = useRef(onDismiss);
|
|
66
|
+
const getContainerRef = useRef(getContainer);
|
|
67
|
+
const isPresentRef = useRef(isPresent);
|
|
68
|
+
useEffect(() => {
|
|
69
|
+
onDismissRef.current = onDismiss;
|
|
70
|
+
getContainerRef.current = getContainer;
|
|
71
|
+
isPresentRef.current = isPresent;
|
|
72
|
+
});
|
|
73
|
+
const isRegistered = isActive && isEnabled;
|
|
74
|
+
useEffect(() => {
|
|
75
|
+
if (!isRegistered) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
return registerLayer({
|
|
79
|
+
token: tokenRef.current,
|
|
80
|
+
depth,
|
|
81
|
+
behavior: escapeBehavior,
|
|
82
|
+
getContainer: () => getContainerRef.current?.() ?? null,
|
|
83
|
+
isPresent: () => isPresentRef.current?.() ?? true,
|
|
84
|
+
dismiss: () => onDismissRef.current()
|
|
85
|
+
});
|
|
86
|
+
}, [isRegistered, depth, escapeBehavior]);
|
|
87
|
+
const shouldDismissOnCloseRequest = useCallback(() => isRegistered && !isTextComposing() && isTopmostLayer(tokenRef.current), [isRegistered]);
|
|
88
|
+
return {
|
|
89
|
+
shouldDismissOnCloseRequest
|
|
90
|
+
};
|
|
91
|
+
}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* - /packages/core/src/Lightbox/Lightbox.doc.mjs (props table, features, implementation notes)
|
|
9
9
|
* - /packages/core/src/Lightbox/Lightbox.test.tsx (tests for new/changed behavior)
|
|
10
10
|
* - /packages/core/src/Lightbox/index.ts (exports if types change)
|
|
11
|
+
* - /packages/core/src/Layer/useLayerDismissal.ts (dismissal stack)
|
|
11
12
|
* - /apps/storybook/stories/Lightbox.stories.tsx (storybook stories)
|
|
12
13
|
* - /packages/cli/assets/templates/blocks/components/Lightbox/ (showcase blocks)
|
|
13
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Lightbox.d.ts","sourceRoot":"","sources":["../../src/Lightbox/Lightbox.tsx"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"Lightbox.d.ts","sourceRoot":"","sources":["../../src/Lightbox/Lightbox.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAS5C;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,OAAO,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IACjE,+CAA+C;IAC/C,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC;;;OAGG;IACH,KAAK,EAAE,aAAa,GAAG,aAAa,EAAE,CAAC;IACvC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA+JD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,QAAQ,CAAC,EACvB,MAAM,EACN,YAAY,EACZ,KAAK,EACL,KAAK,EAAE,eAAe,EACtB,YAAgB,EAChB,aAAa,EACb,OAAe,EACf,WAAmB,EACnB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EACxB,GAAG,KAAK,EACT,EAAE,aAAa,sCA+Zf;yBA/ae,QAAQ"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* - /packages/core/src/Lightbox/Lightbox.doc.mjs (props table, features, implementation notes)
|
|
13
13
|
* - /packages/core/src/Lightbox/Lightbox.test.tsx (tests for new/changed behavior)
|
|
14
14
|
* - /packages/core/src/Lightbox/index.ts (exports if types change)
|
|
15
|
+
* - /packages/core/src/Layer/useLayerDismissal.ts (dismissal stack)
|
|
15
16
|
* - /apps/storybook/stories/Lightbox.stories.tsx (storybook stories)
|
|
16
17
|
* - /packages/cli/assets/templates/blocks/components/Lightbox/ (showcase blocks)
|
|
17
18
|
*/
|
|
@@ -24,12 +25,14 @@ import { IconButton } from "../IconButton/index.js";
|
|
|
24
25
|
import { useAnnounce } from "../hooks/useAnnounce.js";
|
|
25
26
|
import { useScrollLock } from "../hooks/useScrollLock.js";
|
|
26
27
|
import { useIsomorphicLayoutEffect } from "../hooks/useIsomorphicLayoutEffect.js";
|
|
27
|
-
import { mergeProps,
|
|
28
|
+
import { mergeProps, rtlStyles } from "../utils/index.js";
|
|
28
29
|
import { themeProps } from "../utils/themeProps.js";
|
|
29
30
|
import { focusOutlineStyles } from "../utils/focusOutline.stylex.js";
|
|
30
31
|
import { overlayPaddingReset } from "../Layout/padding.stylex.js";
|
|
32
|
+
import { LayerDepthProvider } from "../Layer/LayerDepthContext.js";
|
|
33
|
+
import { useLayerDismissal } from "../Layer/useLayerDismissal.js";
|
|
31
34
|
import { useTranslator } from "../i18n/index.js";
|
|
32
|
-
|
|
35
|
+
import { useMergedRefs } from "../hooks/useMergedRefs.js";
|
|
33
36
|
/**
|
|
34
37
|
* Media type for lightbox items.
|
|
35
38
|
*/
|
|
@@ -198,6 +201,7 @@ export function Lightbox({
|
|
|
198
201
|
}) {
|
|
199
202
|
const t = useTranslator();
|
|
200
203
|
const dialogRef = useRef(null);
|
|
204
|
+
const mergedDialogRef = useMergedRefs(ref, dialogRef);
|
|
201
205
|
const containerRef = useRef(null);
|
|
202
206
|
const imageWrapperRef = useRef(null);
|
|
203
207
|
const triggerElementRef = useRef(null);
|
|
@@ -299,12 +303,28 @@ export function Lightbox({
|
|
|
299
303
|
const handleClose = useCallback(() => {
|
|
300
304
|
onOpenChange(false);
|
|
301
305
|
}, [onOpenChange]);
|
|
306
|
+
const {
|
|
307
|
+
shouldDismissOnCloseRequest
|
|
308
|
+
} = useLayerDismissal({
|
|
309
|
+
isActive: isOpen,
|
|
310
|
+
onDismiss: handleClose
|
|
311
|
+
});
|
|
302
312
|
|
|
303
|
-
//
|
|
313
|
+
// The native `cancel` event is the browser's own close-watcher firing: an
|
|
314
|
+
// Android back gesture, or a close request the stack never saw a press for.
|
|
315
|
+
// Escape presses the stack owns never arrive here — it preventDefault()s
|
|
316
|
+
// those, which suppresses the close watcher.
|
|
317
|
+
//
|
|
318
|
+
// Always preventDefault so the browser cannot close a controlled <dialog>
|
|
319
|
+
// behind React's back, then answer with the stack's own rules: top-most
|
|
320
|
+
// only, and never while an IME composition is in progress.
|
|
304
321
|
const handleCancel = useCallback(e => {
|
|
305
322
|
e.preventDefault();
|
|
323
|
+
if (!shouldDismissOnCloseRequest()) {
|
|
324
|
+
return;
|
|
325
|
+
}
|
|
306
326
|
handleClose();
|
|
307
|
-
}, [handleClose]);
|
|
327
|
+
}, [handleClose, shouldDismissOnCloseRequest]);
|
|
308
328
|
|
|
309
329
|
// Backdrop click. The layout container fills the whole transparent dialog,
|
|
310
330
|
// so clicks on the visual backdrop (the dark area around the media) land on
|
|
@@ -438,7 +458,7 @@ export function Lightbox({
|
|
|
438
458
|
return null;
|
|
439
459
|
}
|
|
440
460
|
return /*#__PURE__*/_jsx("dialog", {
|
|
441
|
-
ref:
|
|
461
|
+
ref: mergedDialogRef,
|
|
442
462
|
onCancel: handleCancel,
|
|
443
463
|
onClick: e => {
|
|
444
464
|
handleBackdropClick(e);
|
|
@@ -451,88 +471,90 @@ export function Lightbox({
|
|
|
451
471
|
"aria-label": currentItem.alt || t('@astryx.lightbox.mediaViewer'),
|
|
452
472
|
...mergeProps(themeProps('lightbox'), stylex.props(styles.dialog, overlayPaddingReset.reset, xstyle), className, style),
|
|
453
473
|
...props,
|
|
454
|
-
children: /*#__PURE__*/
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
className: "x78zum5 xdt5ytf x6s0dn4 xl56j7k xh8yej3 x5yr21d x1n2onr6"
|
|
458
|
-
},
|
|
459
|
-
children: [/*#__PURE__*/_jsx(IconButton, {
|
|
460
|
-
icon: /*#__PURE__*/_jsx(Icon, {
|
|
461
|
-
icon: "close",
|
|
462
|
-
size: "sm",
|
|
463
|
-
color: "inherit"
|
|
464
|
-
}),
|
|
465
|
-
label: t('@astryx.lightbox.close'),
|
|
466
|
-
variant: "ghost",
|
|
467
|
-
onClick: handleClose,
|
|
468
|
-
xstyle: [styles.closeButton, styles.controlButton]
|
|
469
|
-
}), isGallery && /*#__PURE__*/_jsx(IconButton, {
|
|
470
|
-
icon: /*#__PURE__*/_jsx(Icon, {
|
|
471
|
-
icon: "chevronLeft",
|
|
472
|
-
size: "sm",
|
|
473
|
-
color: "inherit",
|
|
474
|
-
xstyle: rtlStyles.mirror
|
|
475
|
-
}),
|
|
476
|
-
label: t('@astryx.lightbox.previous'),
|
|
477
|
-
variant: "ghost",
|
|
478
|
-
isDisabled: !canPrev,
|
|
479
|
-
onClick: goToPrev,
|
|
480
|
-
xstyle: [styles.navButton, styles.navPrev, styles.controlButton]
|
|
481
|
-
}), /*#__PURE__*/_jsxs("div", {
|
|
474
|
+
children: /*#__PURE__*/_jsx(LayerDepthProvider, {
|
|
475
|
+
children: /*#__PURE__*/_jsxs("div", {
|
|
476
|
+
ref: containerRef,
|
|
482
477
|
...{
|
|
483
|
-
className: "x78zum5 xdt5ytf x6s0dn4
|
|
478
|
+
className: "x78zum5 xdt5ytf x6s0dn4 xl56j7k xh8yej3 x5yr21d x1n2onr6"
|
|
484
479
|
},
|
|
485
|
-
children: [/*#__PURE__*/_jsx(
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
"
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
480
|
+
children: [/*#__PURE__*/_jsx(IconButton, {
|
|
481
|
+
icon: /*#__PURE__*/_jsx(Icon, {
|
|
482
|
+
icon: "close",
|
|
483
|
+
size: "sm",
|
|
484
|
+
color: "inherit"
|
|
485
|
+
}),
|
|
486
|
+
label: t('@astryx.lightbox.close'),
|
|
487
|
+
variant: "ghost",
|
|
488
|
+
onClick: handleClose,
|
|
489
|
+
xstyle: [styles.closeButton, styles.controlButton]
|
|
490
|
+
}), isGallery && /*#__PURE__*/_jsx(IconButton, {
|
|
491
|
+
icon: /*#__PURE__*/_jsx(Icon, {
|
|
492
|
+
icon: "chevronLeft",
|
|
493
|
+
size: "sm",
|
|
494
|
+
color: "inherit",
|
|
495
|
+
xstyle: rtlStyles.mirror
|
|
496
|
+
}),
|
|
497
|
+
label: t('@astryx.lightbox.previous'),
|
|
498
|
+
variant: "ghost",
|
|
499
|
+
isDisabled: !canPrev,
|
|
500
|
+
onClick: goToPrev,
|
|
501
|
+
xstyle: [styles.navButton, styles.navPrev, styles.controlButton]
|
|
502
|
+
}), /*#__PURE__*/_jsxs("div", {
|
|
503
|
+
...{
|
|
504
|
+
className: "x78zum5 xdt5ytf x6s0dn4 x193iq5w xmz0i5r xb3r6kr"
|
|
505
|
+
},
|
|
506
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
507
|
+
ref: imageWrapperRef
|
|
508
|
+
// The wrapper is a keyboard-operable zoom toggle when zoom is
|
|
509
|
+
// enabled: Enter/Space toggles, aria-pressed reflects state.
|
|
510
|
+
,
|
|
511
|
+
role: isZoomTarget ? 'button' : undefined,
|
|
512
|
+
tabIndex: isZoomTarget ? 0 : undefined,
|
|
513
|
+
"aria-pressed": isZoomTarget ? isZoomed : undefined,
|
|
514
|
+
"aria-label": isZoomTarget ? t('@astryx.lightbox.zoom') : undefined,
|
|
515
|
+
...stylex.props(styles.imageWrapper, isZoomTarget && focusOutlineStyles.focusVisible, !isVideo && hasZoom && !isZoomed && styles.imageWrapperZoomable, !isVideo && isZoomed && styles.imageWrapperZoomed, !isVideo && isDragging && styles.imageWrapperDragging),
|
|
516
|
+
onDoubleClick: isVideo ? undefined : handleDoubleClick,
|
|
517
|
+
onKeyDown: isZoomTarget ? handleImageKeyDown : undefined,
|
|
518
|
+
onPointerDown: isVideo ? undefined : handlePointerDown,
|
|
519
|
+
children: isVideo ? /*#__PURE__*/_jsx("video", {
|
|
520
|
+
src: currentItem.src,
|
|
521
|
+
"aria-label": currentItem.alt,
|
|
522
|
+
controls: true,
|
|
523
|
+
autoPlay: hasAutoPlay,
|
|
524
|
+
...{
|
|
525
|
+
className: "x193iq5w xmz0i5r x19kjcj4 x1a2a7pz"
|
|
526
|
+
}
|
|
527
|
+
}) : /*#__PURE__*/_jsx("img", {
|
|
528
|
+
src: currentItem.src,
|
|
529
|
+
alt: currentItem.alt,
|
|
530
|
+
draggable: false,
|
|
531
|
+
...stylex.props(styles.image, isDragging && styles.imageDragging, imageTransform != null && dynamicStyles.imageTransform(imageTransform))
|
|
532
|
+
})
|
|
533
|
+
}), currentItem.caption && /*#__PURE__*/_jsx("div", {
|
|
503
534
|
...{
|
|
504
|
-
className: "
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
535
|
+
className: "x9e3rv5 x18juvz8 xf74fhv x2b8uid x1xye8es x18d9i69 xrrkdod xrlsmeg x2lah0s"
|
|
536
|
+
},
|
|
537
|
+
children: currentItem.caption
|
|
538
|
+
})]
|
|
539
|
+
}), isGallery && /*#__PURE__*/_jsx(IconButton, {
|
|
540
|
+
icon: /*#__PURE__*/_jsx(Icon, {
|
|
541
|
+
icon: "chevronRight",
|
|
542
|
+
size: "sm",
|
|
543
|
+
color: "inherit",
|
|
544
|
+
xstyle: rtlStyles.mirror
|
|
545
|
+
}),
|
|
546
|
+
label: t('@astryx.lightbox.next'),
|
|
547
|
+
variant: "ghost",
|
|
548
|
+
isDisabled: !canNext,
|
|
549
|
+
onClick: goToNext,
|
|
550
|
+
xstyle: [styles.navButton, styles.navNext, styles.controlButton]
|
|
551
|
+
}), isGallery && mediaArray.length > 1 && /*#__PURE__*/_jsxs("div", {
|
|
513
552
|
...{
|
|
514
|
-
className: "
|
|
553
|
+
className: "x10l6tqk xyx6v2t x1ybfrjj x9e3rv5 xjm74w1 xw6l6zx x1vjfegm"
|
|
515
554
|
},
|
|
516
|
-
children:
|
|
555
|
+
children: [index + 1, " / ", mediaArray.length]
|
|
517
556
|
})]
|
|
518
|
-
})
|
|
519
|
-
icon: /*#__PURE__*/_jsx(Icon, {
|
|
520
|
-
icon: "chevronRight",
|
|
521
|
-
size: "sm",
|
|
522
|
-
color: "inherit",
|
|
523
|
-
xstyle: rtlStyles.mirror
|
|
524
|
-
}),
|
|
525
|
-
label: t('@astryx.lightbox.next'),
|
|
526
|
-
variant: "ghost",
|
|
527
|
-
isDisabled: !canNext,
|
|
528
|
-
onClick: goToNext,
|
|
529
|
-
xstyle: [styles.navButton, styles.navNext, styles.controlButton]
|
|
530
|
-
}), isGallery && mediaArray.length > 1 && /*#__PURE__*/_jsxs("div", {
|
|
531
|
-
...{
|
|
532
|
-
className: "x10l6tqk xyx6v2t x1ybfrjj x9e3rv5 xjm74w1 xw6l6zx x1vjfegm"
|
|
533
|
-
},
|
|
534
|
-
children: [index + 1, " / ", mediaArray.length]
|
|
535
|
-
})]
|
|
557
|
+
})
|
|
536
558
|
})
|
|
537
559
|
});
|
|
538
560
|
}
|
package/dist/Markdown/index.d.ts
CHANGED
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
export { Markdown } from './Markdown';
|
|
7
7
|
export type { MarkdownProps, MarkdownSource, MarkdownComponents, MarkdownInlinePlugin, } from './Markdown';
|
|
8
8
|
export { parseMarkdown, parseMarkdownIncremental, createIncrementalState, parseInline, } from './parser';
|
|
9
|
-
export type { BlockNode, InlineNode, ListItemNode, TableCellNode, TableAlignment, IncrementalState as IncrementalParseState, } from './parser';
|
|
9
|
+
export type { BlockNode, InlineNode, SourceRange, ListItemNode, TableCellNode, TableAlignment, IncrementalState as IncrementalParseState, } from './parser';
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Markdown/index.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,YAAY,EACV,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,sBAAsB,EACtB,WAAW,GACZ,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,aAAa,EACb,cAAc,EACd,gBAAgB,IAAI,qBAAqB,GAC1C,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Markdown/index.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,YAAY,EACV,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,sBAAsB,EACtB,WAAW,GACZ,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,gBAAgB,IAAI,qBAAqB,GAC1C,MAAM,UAAU,CAAC"}
|
|
@@ -35,7 +35,14 @@ export type InlineNode = {
|
|
|
35
35
|
} | {
|
|
36
36
|
type: 'break';
|
|
37
37
|
};
|
|
38
|
-
export type BlockNode = {
|
|
38
|
+
export type BlockNode = BlockNodeKind & {
|
|
39
|
+
/**
|
|
40
|
+
* Where this block came from in the source, when parsed with the
|
|
41
|
+
* `sourceRanges` option. Top-level blocks only.
|
|
42
|
+
*/
|
|
43
|
+
range?: SourceRange;
|
|
44
|
+
};
|
|
45
|
+
type BlockNodeKind = {
|
|
39
46
|
type: 'heading';
|
|
40
47
|
level: 1 | 2 | 3 | 4 | 5 | 6;
|
|
41
48
|
children: InlineNode[];
|
|
@@ -69,6 +76,19 @@ export type BlockNode = {
|
|
|
69
76
|
src: string;
|
|
70
77
|
alt: string;
|
|
71
78
|
};
|
|
79
|
+
/**
|
|
80
|
+
* Where a block sits in the source string handed to `parseMarkdown`:
|
|
81
|
+
* `source.slice(start, end)` is the block, and `end` excludes the block's
|
|
82
|
+
* trailing blank lines.
|
|
83
|
+
*
|
|
84
|
+
* An object rather than a `[start, end]` tuple so a second way of addressing
|
|
85
|
+
* the same block — line numbers, once a consumer needs them — can be added as
|
|
86
|
+
* optional fields without breaking anyone.
|
|
87
|
+
*/
|
|
88
|
+
export type SourceRange = {
|
|
89
|
+
readonly start: number;
|
|
90
|
+
readonly end: number;
|
|
91
|
+
};
|
|
72
92
|
export type ListItemNode = {
|
|
73
93
|
checked?: boolean;
|
|
74
94
|
children: BlockNode[];
|
|
@@ -100,6 +120,16 @@ export type ParseOptions = {
|
|
|
100
120
|
* suffix is not rejected (Astryx accepts any plausible TLD shape).
|
|
101
121
|
*/
|
|
102
122
|
autolink?: 'gfm';
|
|
123
|
+
/**
|
|
124
|
+
* When true, every top-level block carries a `range` — the offsets it
|
|
125
|
+
* occupies in the string passed in. Lets a consumer that still holds the
|
|
126
|
+
* source slice the original markdown for a block instead of reconstructing
|
|
127
|
+
* it from the parsed node (or from the rendered DOM). Off by default: the
|
|
128
|
+
* field is absent unless asked for, so nothing that compares nodes changes.
|
|
129
|
+
*
|
|
130
|
+
* Blocks nested inside a list item or a blockquote do not carry one.
|
|
131
|
+
*/
|
|
132
|
+
sourceRanges?: boolean;
|
|
103
133
|
};
|
|
104
134
|
export declare function parseInline(text: string, sourceIds?: ReadonlySet<string>): InlineNode[];
|
|
105
135
|
export declare function parseInline(text: string, options: ParseOptions): InlineNode[];
|
|
@@ -117,6 +147,12 @@ export interface IncrementalState {
|
|
|
117
147
|
* with newly-arriving content.
|
|
118
148
|
*/
|
|
119
149
|
autolink?: 'gfm';
|
|
150
|
+
/**
|
|
151
|
+
* The `sourceRanges` option the cached `settledBlocks` were parsed with.
|
|
152
|
+
* Flipping it invalidates them the same way `autolink` does: they either
|
|
153
|
+
* lack the ranges the caller now asks for, or carry ones it did not.
|
|
154
|
+
*/
|
|
155
|
+
sourceRanges?: boolean;
|
|
120
156
|
/**
|
|
121
157
|
* Signature of the link reference definitions the cached `settledBlocks`
|
|
122
158
|
* were parsed with. Definitions are document-global and typically arrive
|
|
@@ -143,4 +179,5 @@ export declare function slugify(value: string): string;
|
|
|
143
179
|
* document shares a single numbering sequence.
|
|
144
180
|
*/
|
|
145
181
|
export declare function uniqueSlug(baseSlug: string, counts: Map<string, number>): string;
|
|
182
|
+
export {};
|
|
146
183
|
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/Markdown/parser.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAMH,MAAM,MAAM,UAAU,GAClB;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,GAC/B;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;CAAC,GACtC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;CAAC,GACxC;IAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;CAAC,GAC/C;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,GAC/B;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;CAAC,GACpD;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAC,GACzC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,GACpC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAC,CAAC;AAEpB,MAAM,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/Markdown/parser.ts"],"names":[],"mappings":"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"}
|