@dxos/react-ui 0.8.4-main.ead640a → 0.8.4-main.f466a3d56e
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/LICENSE +102 -5
- package/README.md +1 -1
- package/dist/lib/browser/chunk-A5QCIG5R.mjs +24 -0
- package/dist/lib/browser/chunk-A5QCIG5R.mjs.map +7 -0
- package/dist/lib/browser/chunk-LY5XDQR5.mjs +846 -0
- package/dist/lib/browser/chunk-LY5XDQR5.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +4409 -65
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +88 -70
- package/dist/lib/browser/testing/index.mjs.map +4 -4
- package/dist/lib/browser/translations.mjs +9 -0
- package/dist/lib/browser/translations.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-NGKLIKP3.mjs +848 -0
- package/dist/lib/node-esm/chunk-NGKLIKP3.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-XCFLA74M.mjs +26 -0
- package/dist/lib/node-esm/chunk-XCFLA74M.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +4409 -65
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +88 -70
- package/dist/lib/node-esm/testing/index.mjs.map +4 -4
- package/dist/lib/node-esm/translations.mjs +10 -0
- package/dist/lib/node-esm/translations.mjs.map +7 -0
- package/dist/types/src/components/Avatars/Avatar.d.ts +1 -1
- package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -1
- package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
- package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
- package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
- package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
- package/dist/types/src/components/{Buttons → Button}/Button.d.ts +3 -3
- package/dist/types/src/components/Button/Button.d.ts.map +1 -0
- package/dist/types/src/components/{Buttons → Button}/Button.stories.d.ts +1 -1
- package/dist/types/src/components/Button/Button.stories.d.ts.map +1 -0
- package/dist/types/src/components/{Buttons → Button}/IconButton.d.ts +3 -2
- package/dist/types/src/components/Button/IconButton.d.ts.map +1 -0
- package/dist/types/src/components/{Buttons → Button}/IconButton.stories.d.ts +3 -0
- package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -0
- package/dist/types/src/components/{Buttons → Button}/Toggle.d.ts +2 -2
- package/dist/types/src/components/Button/Toggle.d.ts.map +1 -0
- package/dist/types/src/components/Button/Toggle.stories.d.ts +16 -0
- package/dist/types/src/components/Button/Toggle.stories.d.ts.map +1 -0
- package/dist/types/src/components/Button/ToggleGroup.d.ts +27 -0
- package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -0
- package/dist/types/src/components/{Buttons → Button}/ToggleGroup.stories.d.ts +6 -6
- package/dist/types/src/components/Button/ToggleGroup.stories.d.ts.map +1 -0
- package/dist/types/src/components/Button/index.d.ts.map +1 -0
- package/dist/types/src/components/Card/Card.d.ts +124 -0
- package/dist/types/src/components/Card/Card.d.ts.map +1 -0
- package/dist/types/src/components/Card/Card.stories.d.ts +21 -0
- package/dist/types/src/components/Card/Card.stories.d.ts.map +1 -0
- package/dist/types/src/components/Card/index.d.ts +2 -0
- package/dist/types/src/components/Card/index.d.ts.map +1 -0
- package/dist/types/src/components/Carousel/Carousel.d.ts +90 -0
- package/dist/types/src/components/Carousel/Carousel.d.ts.map +1 -0
- package/dist/types/src/components/Carousel/index.d.ts +2 -0
- package/dist/types/src/components/Carousel/index.d.ts.map +1 -0
- package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts.map +1 -1
- package/dist/types/src/components/Clipboard/CopyButton.d.ts +1 -1
- package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
- package/dist/types/src/components/Clipboard/index.d.ts +10 -1
- package/dist/types/src/components/Clipboard/index.d.ts.map +1 -1
- package/dist/types/src/components/DensityProvider/DensityProvider.d.ts +1 -1
- package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
- package/dist/types/src/components/Dialog/AlertDialog.d.ts +51 -0
- package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -0
- package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -0
- package/dist/types/src/components/Dialog/Dialog.d.ts +64 -0
- package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -0
- package/dist/types/src/components/Dialog/Dialog.stories.d.ts +25 -0
- package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -0
- package/dist/types/src/components/Dialog/index.d.ts.map +1 -0
- package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts +1 -1
- package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
- package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts +11 -0
- package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts.map +1 -0
- package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts +7 -0
- package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts.map +1 -0
- package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +19 -0
- package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts.map +1 -0
- package/dist/types/src/components/ErrorFallback/ThrowError.d.ts +9 -0
- package/dist/types/src/components/ErrorFallback/ThrowError.d.ts.map +1 -0
- package/dist/types/src/components/ErrorFallback/index.d.ts +5 -0
- package/dist/types/src/components/ErrorFallback/index.d.ts.map +1 -0
- package/dist/types/src/components/Focus/Focus.d.ts +36 -0
- package/dist/types/src/components/Focus/Focus.d.ts.map +1 -0
- package/dist/types/src/components/Focus/Focus.stories.d.ts +9 -0
- package/dist/types/src/components/Focus/Focus.stories.d.ts.map +1 -0
- package/dist/types/src/components/Focus/index.d.ts +2 -0
- package/dist/types/src/components/Focus/index.d.ts.map +1 -0
- package/dist/types/src/components/Icon/Icon.d.ts +5 -1
- package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
- package/dist/types/src/components/Icon/Icon.stories.d.ts +25 -0
- package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -0
- package/dist/types/src/components/Image/Image.d.ts +15 -0
- package/dist/types/src/components/Image/Image.d.ts.map +1 -0
- package/dist/types/src/components/Image/Image.stories.d.ts +34 -0
- package/dist/types/src/components/Image/Image.stories.d.ts.map +1 -0
- package/dist/types/src/components/Image/index.d.ts +2 -0
- package/dist/types/src/components/Image/index.d.ts.map +1 -0
- package/dist/types/src/components/Input/Input.d.ts +19 -22
- package/dist/types/src/components/Input/Input.d.ts.map +1 -1
- package/dist/types/src/components/Input/Input.stories.d.ts +8 -8
- package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
- package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
- package/dist/types/src/components/{Lists → List}/List.d.ts +6 -4
- package/dist/types/src/components/List/List.d.ts.map +1 -0
- package/dist/types/src/components/{Lists → List}/List.stories.d.ts +3 -1
- package/dist/types/src/components/List/List.stories.d.ts.map +1 -0
- package/dist/types/src/components/List/ListDropIndicator.d.ts.map +1 -0
- package/dist/types/src/components/{Lists → List}/Tree.d.ts +2 -2
- package/dist/types/src/components/List/Tree.d.ts.map +1 -0
- package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -0
- package/dist/types/src/components/List/TreeDropIndicator.d.ts.map +1 -0
- package/dist/types/src/components/{Lists → List}/Treegrid.d.ts +5 -9
- package/dist/types/src/components/List/Treegrid.d.ts.map +1 -0
- package/dist/types/src/components/List/Treegrid.stories.d.ts.map +1 -0
- package/dist/types/src/components/List/index.d.ts.map +1 -0
- package/dist/types/src/components/Main/Main.d.ts +24 -21
- package/dist/types/src/components/Main/Main.d.ts.map +1 -1
- package/dist/types/src/components/Main/Main.stories.d.ts +0 -3
- package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
- package/dist/types/src/components/Main/useSwipeToDismiss.d.ts.map +1 -1
- package/dist/types/src/components/MediaPlayer/MediaPlayer.d.ts +46 -0
- package/dist/types/src/components/MediaPlayer/MediaPlayer.d.ts.map +1 -0
- package/dist/types/src/components/MediaPlayer/MediaPlayer.stories.d.ts +16 -0
- package/dist/types/src/components/MediaPlayer/MediaPlayer.stories.d.ts.map +1 -0
- package/dist/types/src/components/MediaPlayer/index.d.ts +2 -0
- package/dist/types/src/components/MediaPlayer/index.d.ts.map +1 -0
- package/dist/types/src/components/{Menus → Menu}/ContextMenu.d.ts +6 -6
- package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -0
- package/dist/types/src/components/Menu/ContextMenu.stories.d.ts.map +1 -0
- package/dist/types/src/components/Menu/DropdownMenu.d.ts +121 -0
- package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -0
- package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts +28 -0
- package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -0
- package/dist/types/src/components/Menu/index.d.ts.map +1 -0
- package/dist/types/src/components/Message/Message.d.ts +2 -2
- package/dist/types/src/components/Message/Message.d.ts.map +1 -1
- package/dist/types/src/components/Message/Message.stories.d.ts +5 -6
- package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
- package/dist/types/src/components/Popover/Popover.d.ts +40 -23
- package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
- package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
- package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +27 -27
- package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
- package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +57 -8
- package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
- package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +68 -0
- package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -0
- package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +23 -0
- package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -0
- package/dist/types/src/components/ScrollContainer/index.d.ts +2 -0
- package/dist/types/src/components/ScrollContainer/index.d.ts.map +1 -0
- package/dist/types/src/components/Select/Select.d.ts +10 -10
- package/dist/types/src/components/Select/Select.d.ts.map +1 -1
- package/dist/types/src/components/Select/Select.stories.d.ts +2 -2
- package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
- package/dist/types/src/components/Separator/Separator.d.ts +4 -4
- package/dist/types/src/components/Separator/Separator.d.ts.map +1 -1
- package/dist/types/src/components/Skeleton/Skeleton.d.ts +12 -0
- package/dist/types/src/components/Skeleton/Skeleton.d.ts.map +1 -0
- package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts +17 -0
- package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -0
- package/dist/types/src/components/Skeleton/index.d.ts +2 -0
- package/dist/types/src/components/Skeleton/index.d.ts.map +1 -0
- package/dist/types/src/components/Splitter/Splitter.d.ts +34 -0
- package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -0
- package/dist/types/src/components/Splitter/Splitter.stories.d.ts +7 -0
- package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -0
- package/dist/types/src/components/Splitter/index.d.ts +2 -0
- package/dist/types/src/components/Splitter/index.d.ts.map +1 -0
- package/dist/types/src/components/Status/Status.d.ts +3 -4
- package/dist/types/src/components/Status/Status.d.ts.map +1 -1
- package/dist/types/src/components/Status/Status.stories.d.ts +4 -2
- package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
- package/dist/types/src/components/Tag/Tag.d.ts +1 -1
- package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
- package/dist/types/src/components/Tag/Tag.stories.d.ts +0 -5
- package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
- package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +3 -3
- package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
- package/dist/types/src/components/{Menus/DropdownMenu.stories.d.ts → ThemeProvider/ThemeProvider.stories.d.ts} +2 -5
- package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts.map +1 -0
- package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +55 -63
- package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
- package/dist/types/src/components/ThemeProvider/index.d.ts +2 -1
- package/dist/types/src/components/ThemeProvider/index.d.ts.map +1 -1
- package/dist/types/src/components/Toast/Toast.d.ts +20 -20
- package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
- package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar/Toolbar.d.ts +40 -20
- package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/Tooltip/Tooltip.d.ts +16 -16
- package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +2 -2
- package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +16 -8
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/exemplars/generics.stories.d.ts +19 -0
- package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -0
- package/dist/types/src/exemplars/slot.stories.d.ts +15 -0
- package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -0
- package/dist/types/src/exemplars/tabster.stories.d.ts +8 -0
- package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -0
- package/dist/types/src/exemplars/virtualizer.stories.d.ts +11 -0
- package/dist/types/src/exemplars/virtualizer.stories.d.ts.map +1 -0
- package/dist/types/src/hooks/index.d.ts +1 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useDensityContext.d.ts +2 -2
- package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
- package/dist/types/src/hooks/useElevationContext.d.ts +1 -1
- package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -1
- package/dist/types/src/hooks/useIconHref.d.ts.map +1 -1
- package/dist/types/src/hooks/useSafeArea.d.ts.map +1 -1
- package/dist/types/src/hooks/useSafeCollisionPadding.d.ts.map +1 -1
- package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
- package/dist/types/src/playground/Custom.stories.d.ts +1 -1
- package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
- package/dist/types/src/playground/Typography.stories.d.ts.map +1 -1
- package/dist/types/src/primitives/Column/Column.d.ts +33 -0
- package/dist/types/src/primitives/Column/Column.d.ts.map +1 -0
- package/dist/types/src/primitives/Column/Column.stories.d.ts +25 -0
- package/dist/types/src/primitives/Column/Column.stories.d.ts.map +1 -0
- package/dist/types/src/primitives/Column/index.d.ts +2 -0
- package/dist/types/src/primitives/Column/index.d.ts.map +1 -0
- package/dist/types/src/primitives/Container/Container.d.ts +7 -0
- package/dist/types/src/primitives/Container/Container.d.ts.map +1 -0
- package/dist/types/src/primitives/Container/Container.stories.d.ts +6 -0
- package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -0
- package/dist/types/src/primitives/Container/index.d.ts +2 -0
- package/dist/types/src/primitives/Container/index.d.ts.map +1 -0
- package/dist/types/src/primitives/Flex/Flex.d.ts +11 -0
- package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -0
- package/dist/types/src/primitives/Flex/Flex.stories.d.ts +8 -0
- package/dist/types/src/primitives/Flex/Flex.stories.d.ts.map +1 -0
- package/dist/types/src/primitives/Flex/index.d.ts +2 -0
- package/dist/types/src/primitives/Flex/index.d.ts.map +1 -0
- package/dist/types/src/primitives/Grid/Grid.d.ts +10 -0
- package/dist/types/src/primitives/Grid/Grid.d.ts.map +1 -0
- package/dist/types/src/primitives/Grid/Grid.stories.d.ts +8 -0
- package/dist/types/src/primitives/Grid/Grid.stories.d.ts.map +1 -0
- package/dist/types/src/primitives/Grid/index.d.ts +2 -0
- package/dist/types/src/primitives/Grid/index.d.ts.map +1 -0
- package/dist/types/src/primitives/Panel/Panel.d.ts +35 -0
- package/dist/types/src/primitives/Panel/Panel.d.ts.map +1 -0
- package/dist/types/src/primitives/Panel/Panel.stories.d.ts +6 -0
- package/dist/types/src/primitives/Panel/Panel.stories.d.ts.map +1 -0
- package/dist/types/src/primitives/Panel/index.d.ts +2 -0
- package/dist/types/src/primitives/Panel/index.d.ts.map +1 -0
- package/dist/types/src/primitives/index.d.ts +6 -0
- package/dist/types/src/primitives/index.d.ts.map +1 -0
- package/dist/types/src/testing/Loading.d.ts +9 -0
- package/dist/types/src/testing/Loading.d.ts.map +1 -0
- package/dist/types/src/testing/decorators/index.d.ts +1 -1
- package/dist/types/src/testing/decorators/index.d.ts.map +1 -1
- package/dist/types/src/testing/decorators/withLayout.d.ts +3 -3
- package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -1
- package/dist/types/src/testing/decorators/withLayoutVariants.d.ts +12 -0
- package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -0
- package/dist/types/src/testing/decorators/withTheme.d.ts +3 -2
- package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
- package/dist/types/src/testing/index.d.ts +1 -0
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +16 -0
- package/dist/types/src/translations.d.ts.map +1 -0
- package/dist/types/src/util/index.d.ts +1 -2
- package/dist/types/src/util/index.d.ts.map +1 -1
- package/dist/types/src/util/usePx.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +53 -38
- package/src/components/Avatars/Avatar.stories.tsx +7 -9
- package/src/components/Avatars/Avatar.tsx +7 -15
- package/src/components/Avatars/AvatarGroup.stories.tsx +2 -3
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +4 -5
- package/src/components/Breadcrumb/Breadcrumb.tsx +11 -37
- package/src/components/{Buttons → Button}/Button.stories.tsx +4 -5
- package/src/components/{Buttons → Button}/Button.tsx +12 -26
- package/src/components/{Buttons → Button}/IconButton.stories.tsx +8 -6
- package/src/components/{Buttons → Button}/IconButton.tsx +20 -15
- package/src/components/{Buttons → Button}/Toggle.stories.tsx +7 -7
- package/src/components/{Buttons → Button}/Toggle.tsx +4 -4
- package/src/components/{Buttons → Button}/ToggleGroup.stories.tsx +2 -3
- package/src/components/{Buttons → Button}/ToggleGroup.tsx +12 -16
- package/src/components/Card/Card.stories.tsx +151 -0
- package/src/components/Card/Card.tsx +514 -0
- package/src/components/Card/index.ts +5 -0
- package/src/components/Carousel/Carousel.tsx +337 -0
- package/src/components/Carousel/index.ts +5 -0
- package/src/components/Clipboard/CopyButton.tsx +10 -11
- package/src/components/DensityProvider/DensityProvider.tsx +1 -1
- package/src/components/Dialog/AlertDialog.stories.tsx +68 -0
- package/src/components/{Dialogs → Dialog}/AlertDialog.tsx +123 -82
- package/src/components/Dialog/Dialog.stories.tsx +177 -0
- package/src/components/Dialog/Dialog.tsx +285 -0
- package/src/components/ElevationProvider/ElevationProvider.tsx +1 -1
- package/src/components/ErrorFallback/ErrorFallback.stories.tsx +45 -0
- package/src/components/ErrorFallback/ErrorFallback.tsx +70 -0
- package/src/components/ErrorFallback/ErrorStack.tsx +114 -0
- package/src/components/ErrorFallback/ThrowError.tsx +37 -0
- package/src/components/ErrorFallback/index.ts +9 -0
- package/src/components/Focus/AUDIT.md +43 -0
- package/src/components/Focus/Focus.stories.tsx +230 -0
- package/src/components/Focus/Focus.tsx +201 -0
- package/src/components/Focus/index.ts +5 -0
- package/src/components/Icon/Icon.stories.tsx +143 -0
- package/src/components/Icon/Icon.tsx +15 -4
- package/src/components/Image/Image.stories.tsx +86 -0
- package/src/components/Image/Image.tsx +246 -0
- package/src/components/Image/index.ts +5 -0
- package/src/components/Input/Input.stories.tsx +21 -41
- package/src/components/Input/Input.tsx +38 -74
- package/src/components/Link/Link.stories.tsx +2 -3
- package/src/components/Link/Link.tsx +2 -2
- package/src/components/{Lists → List}/List.stories.tsx +31 -35
- package/src/components/{Lists → List}/List.tsx +17 -21
- package/src/components/{Lists → List}/ListDropIndicator.tsx +7 -8
- package/src/components/{Lists → List}/Tree.stories.tsx +6 -7
- package/src/components/{Lists → List}/Tree.tsx +0 -1
- package/src/components/{Lists → List}/TreeDropIndicator.tsx +6 -6
- package/src/components/{Lists → List}/Treegrid.stories.tsx +29 -30
- package/src/components/{Lists → List}/Treegrid.tsx +23 -28
- package/src/components/Main/Main.stories.tsx +41 -24
- package/src/components/Main/Main.tsx +150 -94
- package/src/components/MediaPlayer/MediaPlayer.stories.tsx +50 -0
- package/src/components/MediaPlayer/MediaPlayer.tsx +153 -0
- package/src/components/MediaPlayer/index.ts +5 -0
- package/src/components/{Menus → Menu}/ContextMenu.stories.tsx +2 -3
- package/src/components/{Menus → Menu}/ContextMenu.tsx +9 -33
- package/src/components/{Menus → Menu}/DropdownMenu.stories.tsx +3 -4
- package/src/components/{Menus → Menu}/DropdownMenu.tsx +137 -110
- package/src/components/Message/Message.stories.tsx +27 -13
- package/src/components/Message/Message.tsx +59 -33
- package/src/components/Popover/Popover.stories.tsx +8 -9
- package/src/components/Popover/Popover.tsx +114 -92
- package/src/components/ScrollArea/ScrollArea.stories.tsx +221 -36
- package/src/components/ScrollArea/ScrollArea.tsx +97 -79
- package/src/components/ScrollArea/index.ts +1 -1
- package/src/components/ScrollContainer/ScrollContainer.stories.tsx +91 -0
- package/src/components/ScrollContainer/ScrollContainer.tsx +345 -0
- package/src/components/ScrollContainer/index.ts +5 -0
- package/src/components/Select/Select.stories.tsx +8 -9
- package/src/components/Select/Select.tsx +11 -27
- package/src/components/Separator/Separator.tsx +5 -8
- package/src/components/Skeleton/Skeleton.stories.tsx +51 -0
- package/src/components/Skeleton/Skeleton.tsx +26 -0
- package/src/components/Skeleton/index.ts +5 -0
- package/src/components/Splitter/Splitter.stories.tsx +83 -0
- package/src/components/Splitter/Splitter.tsx +127 -0
- package/src/components/Splitter/index.ts +5 -0
- package/src/components/Status/Status.stories.tsx +21 -18
- package/src/components/Status/Status.tsx +10 -7
- package/src/components/Tag/Tag.stories.tsx +6 -12
- package/src/components/Tag/Tag.tsx +3 -8
- package/src/components/ThemeProvider/ThemeProvider.stories.tsx +31 -0
- package/src/components/ThemeProvider/ThemeProvider.tsx +10 -10
- package/src/components/ThemeProvider/TranslationsProvider.tsx +1 -16
- package/src/components/ThemeProvider/index.ts +3 -3
- package/src/components/Toast/Toast.stories.tsx +3 -4
- package/src/components/Toast/Toast.tsx +22 -41
- package/src/components/Toolbar/Toolbar.stories.tsx +4 -7
- package/src/components/Toolbar/Toolbar.tsx +189 -24
- package/src/components/Tooltip/Tooltip.stories.tsx +21 -20
- package/src/components/Tooltip/Tooltip.tsx +54 -51
- package/src/components/index.ts +17 -9
- package/src/exemplars/generics.stories.tsx +41 -0
- package/src/exemplars/slot.stories.tsx +115 -0
- package/src/exemplars/tabster.stories.tsx +127 -0
- package/src/exemplars/virtualizer.stories.tsx +136 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useDensityContext.ts +3 -3
- package/src/hooks/useElevationContext.ts +1 -1
- package/src/index.ts +2 -1
- package/src/playground/Controls.stories.tsx +3 -10
- package/src/playground/Custom.stories.tsx +13 -18
- package/src/playground/Typography.stories.tsx +3 -3
- package/src/primitives/Column/AUDIT.md +148 -0
- package/src/primitives/Column/Column.stories.tsx +181 -0
- package/src/primitives/Column/Column.tsx +165 -0
- package/src/primitives/Column/index.ts +5 -0
- package/src/primitives/Container/Container.stories.tsx +29 -0
- package/src/primitives/Container/Container.tsx +19 -0
- package/src/primitives/Container/index.ts +5 -0
- package/src/primitives/Flex/Flex.stories.tsx +57 -0
- package/src/primitives/Flex/Flex.tsx +27 -0
- package/src/primitives/Flex/index.ts +5 -0
- package/src/primitives/Grid/Grid.stories.tsx +56 -0
- package/src/primitives/Grid/Grid.tsx +30 -0
- package/src/primitives/Grid/index.ts +5 -0
- package/src/primitives/Panel/Panel.stories.tsx +68 -0
- package/src/primitives/Panel/Panel.tsx +120 -0
- package/src/primitives/Panel/index.ts +5 -0
- package/src/primitives/index.ts +9 -0
- package/src/testing/Loading.tsx +47 -0
- package/src/testing/decorators/index.ts +1 -1
- package/src/testing/decorators/withLayout.tsx +32 -21
- package/src/testing/decorators/withLayoutVariants.tsx +48 -0
- package/src/testing/decorators/withTheme.tsx +26 -20
- package/src/testing/index.ts +2 -0
- package/src/translations.ts +24 -0
- package/src/util/index.ts +2 -2
- package/src/util/usePx.ts +1 -0
- package/dist/lib/browser/chunk-24AWTFTZ.mjs +0 -4521
- package/dist/lib/browser/chunk-24AWTFTZ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MPRFBTTQ.mjs +0 -4523
- package/dist/lib/node-esm/chunk-MPRFBTTQ.mjs.map +0 -7
- package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +0 -15
- package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +0 -1
- package/dist/types/src/components/AnchoredOverflow/index.d.ts +0 -2
- package/dist/types/src/components/AnchoredOverflow/index.d.ts.map +0 -1
- package/dist/types/src/components/Buttons/Button.d.ts.map +0 -1
- package/dist/types/src/components/Buttons/Button.stories.d.ts.map +0 -1
- package/dist/types/src/components/Buttons/IconButton.d.ts.map +0 -1
- package/dist/types/src/components/Buttons/IconButton.stories.d.ts.map +0 -1
- package/dist/types/src/components/Buttons/Toggle.d.ts.map +0 -1
- package/dist/types/src/components/Buttons/Toggle.stories.d.ts +0 -13
- package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +0 -1
- package/dist/types/src/components/Buttons/ToggleGroup.d.ts +0 -27
- package/dist/types/src/components/Buttons/ToggleGroup.d.ts.map +0 -1
- package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +0 -1
- package/dist/types/src/components/Buttons/index.d.ts.map +0 -1
- package/dist/types/src/components/Dialogs/AlertDialog.d.ts +0 -31
- package/dist/types/src/components/Dialogs/AlertDialog.d.ts.map +0 -1
- package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +0 -1
- package/dist/types/src/components/Dialogs/Dialog.d.ts +0 -31
- package/dist/types/src/components/Dialogs/Dialog.d.ts.map +0 -1
- package/dist/types/src/components/Dialogs/Dialog.stories.d.ts +0 -25
- package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +0 -1
- package/dist/types/src/components/Dialogs/index.d.ts.map +0 -1
- package/dist/types/src/components/Lists/List.d.ts.map +0 -1
- package/dist/types/src/components/Lists/List.stories.d.ts.map +0 -1
- package/dist/types/src/components/Lists/ListDropIndicator.d.ts.map +0 -1
- package/dist/types/src/components/Lists/Tree.d.ts.map +0 -1
- package/dist/types/src/components/Lists/Tree.stories.d.ts.map +0 -1
- package/dist/types/src/components/Lists/TreeDropIndicator.d.ts.map +0 -1
- package/dist/types/src/components/Lists/Treegrid.d.ts.map +0 -1
- package/dist/types/src/components/Lists/Treegrid.stories.d.ts.map +0 -1
- package/dist/types/src/components/Lists/index.d.ts.map +0 -1
- package/dist/types/src/components/Menus/ContextMenu.d.ts.map +0 -1
- package/dist/types/src/components/Menus/ContextMenu.stories.d.ts.map +0 -1
- package/dist/types/src/components/Menus/DropdownMenu.d.ts +0 -113
- package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +0 -1
- package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +0 -1
- package/dist/types/src/components/Menus/index.d.ts.map +0 -1
- package/dist/types/src/testing/decorators/withSurfaceVariantsLayout.d.ts +0 -12
- package/dist/types/src/testing/decorators/withSurfaceVariantsLayout.d.ts.map +0 -1
- package/dist/types/src/util/ThemedClassName.d.ts +0 -5
- package/dist/types/src/util/ThemedClassName.d.ts.map +0 -1
- package/dist/types/src/util/domino.d.ts +0 -18
- package/dist/types/src/util/domino.d.ts.map +0 -1
- package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +0 -59
- package/src/components/AnchoredOverflow/index.ts +0 -5
- package/src/components/Dialogs/AlertDialog.stories.tsx +0 -69
- package/src/components/Dialogs/Dialog.stories.tsx +0 -67
- package/src/components/Dialogs/Dialog.tsx +0 -159
- package/src/testing/decorators/withSurfaceVariantsLayout.tsx +0 -51
- package/src/util/ThemedClassName.ts +0 -7
- package/src/util/domino.ts +0 -53
- /package/dist/types/src/components/{Buttons → Button}/index.d.ts +0 -0
- /package/dist/types/src/components/{Dialogs → Dialog}/AlertDialog.stories.d.ts +0 -0
- /package/dist/types/src/components/{Dialogs → Dialog}/index.d.ts +0 -0
- /package/dist/types/src/components/{Lists → List}/ListDropIndicator.d.ts +0 -0
- /package/dist/types/src/components/{Lists → List}/Tree.stories.d.ts +0 -0
- /package/dist/types/src/components/{Lists → List}/TreeDropIndicator.d.ts +0 -0
- /package/dist/types/src/components/{Lists → List}/Treegrid.stories.d.ts +0 -0
- /package/dist/types/src/components/{Lists → List}/index.d.ts +0 -0
- /package/dist/types/src/components/{Menus → Menu}/ContextMenu.stories.d.ts +0 -0
- /package/dist/types/src/components/{Menus → Menu}/index.d.ts +0 -0
- /package/src/components/{Buttons → Button}/index.ts +0 -0
- /package/src/components/{Dialogs → Dialog}/index.ts +0 -0
- /package/src/components/{Lists → List}/index.ts +0 -0
- /package/src/components/{Menus → Menu}/index.ts +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
// This is based upon `@radix-ui/react-popover` fetched 25
|
|
5
|
+
// This is based upon `@radix-ui/react-popover` fetched Oct 25, 2024 at https://github.com/radix-ui/primitives at commit 374c7d7.
|
|
6
6
|
|
|
7
7
|
import { composeEventHandlers } from '@radix-ui/primitive';
|
|
8
8
|
import { useComposedRefs } from '@radix-ui/react-compose-refs';
|
|
@@ -23,54 +23,59 @@ import { hideOthers } from 'aria-hidden';
|
|
|
23
23
|
import React, {
|
|
24
24
|
type ComponentPropsWithRef,
|
|
25
25
|
type ComponentPropsWithoutRef,
|
|
26
|
-
type
|
|
26
|
+
type ComponentRef,
|
|
27
27
|
type FC,
|
|
28
|
-
type MutableRefObject,
|
|
29
28
|
type ReactNode,
|
|
30
29
|
type RefObject,
|
|
31
30
|
forwardRef,
|
|
32
31
|
useCallback,
|
|
33
32
|
useEffect,
|
|
33
|
+
useMemo,
|
|
34
34
|
useRef,
|
|
35
35
|
useState,
|
|
36
36
|
} from 'react';
|
|
37
37
|
import { RemoveScroll } from 'react-remove-scroll';
|
|
38
38
|
|
|
39
|
-
import { useElevationContext, useThemeContext } from '../../hooks';
|
|
40
|
-
import { useSafeCollisionPadding } from '../../hooks/useSafeCollisionPadding';
|
|
39
|
+
import { useSafeCollisionPadding, useElevationContext, useThemeContext } from '../../hooks';
|
|
41
40
|
import { type ThemedClassName } from '../../util';
|
|
42
41
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
//
|
|
43
|
+
// Context
|
|
44
|
+
//
|
|
45
|
+
|
|
46
|
+
type ScopedProps<P> = P & { __scopePopover?: Scope };
|
|
46
47
|
|
|
47
48
|
const POPOVER_NAME = 'Popover';
|
|
48
49
|
|
|
49
|
-
type ScopedProps<P> = P & { __scopePopover?: Scope };
|
|
50
50
|
const [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [createPopperScope]);
|
|
51
|
+
|
|
51
52
|
const usePopperScope = createPopperScope();
|
|
52
53
|
|
|
53
54
|
type PopoverContextValue = {
|
|
54
|
-
triggerRef:
|
|
55
|
+
triggerRef: RefObject<HTMLButtonElement>;
|
|
55
56
|
contentId: string;
|
|
57
|
+
hasCustomAnchor: boolean;
|
|
58
|
+
modal: boolean;
|
|
56
59
|
open: boolean;
|
|
57
60
|
onOpenChange(open: boolean): void;
|
|
58
61
|
onOpenToggle(): void;
|
|
59
|
-
hasCustomAnchor: boolean;
|
|
60
62
|
onCustomAnchorAdd(): void;
|
|
61
63
|
onCustomAnchorRemove(): void;
|
|
62
|
-
modal: boolean;
|
|
63
64
|
};
|
|
64
65
|
|
|
65
66
|
const [PopoverProvider, usePopoverContext] = createPopoverContext<PopoverContextValue>(POPOVER_NAME);
|
|
66
67
|
|
|
67
|
-
|
|
68
|
+
//
|
|
69
|
+
// PopoverRoot
|
|
70
|
+
//
|
|
71
|
+
|
|
72
|
+
type PopoverRootProps = {
|
|
68
73
|
children?: ReactNode;
|
|
69
74
|
open?: boolean;
|
|
70
75
|
defaultOpen?: boolean;
|
|
71
76
|
onOpenChange?: (open: boolean) => void;
|
|
72
77
|
modal?: boolean;
|
|
73
|
-
}
|
|
78
|
+
};
|
|
74
79
|
|
|
75
80
|
const PopoverRoot: FC<PopoverRootProps> = (props: ScopedProps<PopoverRootProps>) => {
|
|
76
81
|
const { __scopePopover, children, open: openProp, defaultOpen, onOpenChange, modal = false } = props;
|
|
@@ -88,7 +93,7 @@ const PopoverRoot: FC<PopoverRootProps> = (props: ScopedProps<PopoverRootProps>)
|
|
|
88
93
|
<PopoverProvider
|
|
89
94
|
scope={__scopePopover}
|
|
90
95
|
contentId={useId()}
|
|
91
|
-
triggerRef={triggerRef as
|
|
96
|
+
triggerRef={triggerRef as RefObject<HTMLButtonElement>}
|
|
92
97
|
open={open}
|
|
93
98
|
onOpenChange={setOpen}
|
|
94
99
|
onOpenToggle={useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen])}
|
|
@@ -105,15 +110,15 @@ const PopoverRoot: FC<PopoverRootProps> = (props: ScopedProps<PopoverRootProps>)
|
|
|
105
110
|
|
|
106
111
|
PopoverRoot.displayName = POPOVER_NAME;
|
|
107
112
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
113
|
+
//
|
|
114
|
+
// PopoverAnchor
|
|
115
|
+
//
|
|
111
116
|
|
|
112
117
|
const ANCHOR_NAME = 'PopoverAnchor';
|
|
113
118
|
|
|
114
|
-
type PopoverAnchorElement =
|
|
119
|
+
type PopoverAnchorElement = ComponentRef<typeof PopperPrimitive.Anchor>;
|
|
115
120
|
type PopperAnchorProps = ComponentPropsWithoutRef<typeof PopperPrimitive.Anchor>;
|
|
116
|
-
|
|
121
|
+
type PopoverAnchorProps = PopperAnchorProps;
|
|
117
122
|
|
|
118
123
|
const PopoverAnchor = forwardRef<PopoverAnchorElement, PopoverAnchorProps>(
|
|
119
124
|
(props: ScopedProps<PopoverAnchorProps>, forwardedRef) => {
|
|
@@ -133,25 +138,28 @@ const PopoverAnchor = forwardRef<PopoverAnchorElement, PopoverAnchorProps>(
|
|
|
133
138
|
|
|
134
139
|
PopoverAnchor.displayName = ANCHOR_NAME;
|
|
135
140
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
141
|
+
//
|
|
142
|
+
// PopoverTrigger
|
|
143
|
+
//
|
|
139
144
|
|
|
140
145
|
const TRIGGER_NAME = 'PopoverTrigger';
|
|
141
146
|
|
|
142
|
-
type PopoverTriggerElement =
|
|
147
|
+
type PopoverTriggerElement = ComponentRef<typeof Primitive.button>;
|
|
143
148
|
type PrimitiveButtonProps = ComponentPropsWithoutRef<typeof Primitive.button>;
|
|
144
|
-
|
|
149
|
+
type PopoverTriggerProps = PrimitiveButtonProps & {
|
|
150
|
+
asChild?: boolean;
|
|
151
|
+
};
|
|
145
152
|
|
|
146
153
|
const PopoverTrigger = forwardRef<PopoverTriggerElement, PopoverTriggerProps>(
|
|
147
154
|
(props: ScopedProps<PopoverTriggerProps>, forwardedRef) => {
|
|
148
|
-
const { __scopePopover, ...triggerProps } = props;
|
|
155
|
+
const { __scopePopover, asChild, ...triggerProps } = props;
|
|
149
156
|
const context = usePopoverContext(TRIGGER_NAME, __scopePopover);
|
|
150
157
|
const popperScope = usePopperScope(__scopePopover);
|
|
151
158
|
const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
|
|
159
|
+
const Comp = asChild ? Slot : Primitive.button;
|
|
152
160
|
|
|
153
161
|
const trigger = (
|
|
154
|
-
<
|
|
162
|
+
<Comp
|
|
155
163
|
type='button'
|
|
156
164
|
aria-haspopup='dialog'
|
|
157
165
|
aria-expanded={context.open}
|
|
@@ -175,15 +183,15 @@ const PopoverTrigger = forwardRef<PopoverTriggerElement, PopoverTriggerProps>(
|
|
|
175
183
|
|
|
176
184
|
PopoverTrigger.displayName = TRIGGER_NAME;
|
|
177
185
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
186
|
+
//
|
|
187
|
+
// PopoverVirtualTrigger
|
|
188
|
+
//
|
|
181
189
|
|
|
182
190
|
const VIRTUAL_TRIGGER_NAME = 'PopoverVirtualTrigger';
|
|
183
191
|
|
|
184
|
-
|
|
192
|
+
type PopoverVirtualTriggerProps = {
|
|
185
193
|
virtualRef: RefObject<PopoverTriggerElement | null>;
|
|
186
|
-
}
|
|
194
|
+
};
|
|
187
195
|
|
|
188
196
|
const PopoverVirtualTrigger = (props: ScopedProps<PopoverVirtualTriggerProps>) => {
|
|
189
197
|
const { __scopePopover, virtualRef } = props;
|
|
@@ -199,9 +207,9 @@ const PopoverVirtualTrigger = (props: ScopedProps<PopoverVirtualTriggerProps>) =
|
|
|
199
207
|
|
|
200
208
|
PopoverVirtualTrigger.displayName = VIRTUAL_TRIGGER_NAME;
|
|
201
209
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
210
|
+
//
|
|
211
|
+
// PopoverPortal
|
|
212
|
+
//
|
|
205
213
|
|
|
206
214
|
const PORTAL_NAME = 'PopoverPortal';
|
|
207
215
|
|
|
@@ -211,7 +219,7 @@ const [PortalProvider, usePortalContext] = createPopoverContext<PortalContextVal
|
|
|
211
219
|
});
|
|
212
220
|
|
|
213
221
|
type PortalProps = ComponentPropsWithoutRef<typeof PortalPrimitive>;
|
|
214
|
-
|
|
222
|
+
type PopoverPortalProps = {
|
|
215
223
|
children?: ReactNode;
|
|
216
224
|
/**
|
|
217
225
|
* Specify a container element to portal the content into.
|
|
@@ -222,9 +230,9 @@ interface PopoverPortalProps {
|
|
|
222
230
|
* controlling animation with React animation libraries.
|
|
223
231
|
*/
|
|
224
232
|
forceMount?: true;
|
|
225
|
-
}
|
|
233
|
+
};
|
|
226
234
|
|
|
227
|
-
const PopoverPortal
|
|
235
|
+
const PopoverPortal = (props: ScopedProps<PopoverPortalProps>) => {
|
|
228
236
|
const { __scopePopover, forceMount, children, container } = props;
|
|
229
237
|
const context = usePopoverContext(PORTAL_NAME, __scopePopover);
|
|
230
238
|
return (
|
|
@@ -240,9 +248,9 @@ const PopoverPortal: FC<PopoverPortalProps> = (props: ScopedProps<PopoverPortalP
|
|
|
240
248
|
|
|
241
249
|
PopoverPortal.displayName = PORTAL_NAME;
|
|
242
250
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
251
|
+
//
|
|
252
|
+
// PopoverContent
|
|
253
|
+
//
|
|
246
254
|
|
|
247
255
|
const CONTENT_NAME = 'PopoverContent';
|
|
248
256
|
|
|
@@ -274,11 +282,11 @@ const PopoverContent = forwardRef<PopoverContentTypeElement, PopoverContentProps
|
|
|
274
282
|
|
|
275
283
|
PopoverContent.displayName = CONTENT_NAME;
|
|
276
284
|
|
|
277
|
-
/* ----------------------------------------------------------------------------------------------- */
|
|
278
|
-
|
|
279
285
|
type PopoverContentTypeElement = PopoverContentImplElement;
|
|
280
|
-
export interface PopoverContentTypeProps
|
|
281
|
-
|
|
286
|
+
export interface PopoverContentTypeProps extends Omit<
|
|
287
|
+
PopoverContentImplProps,
|
|
288
|
+
'trapFocus' | 'disableOutsidePointerEvents'
|
|
289
|
+
> {}
|
|
282
290
|
|
|
283
291
|
const PopoverContentModal = forwardRef<PopoverContentTypeElement, PopoverContentTypeProps>(
|
|
284
292
|
(props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {
|
|
@@ -300,8 +308,7 @@ const PopoverContentModal = forwardRef<PopoverContentTypeElement, PopoverContent
|
|
|
300
308
|
<PopoverContentImpl
|
|
301
309
|
{...props}
|
|
302
310
|
ref={composedRefs}
|
|
303
|
-
//
|
|
304
|
-
// (closed !== unmounted when animating out)
|
|
311
|
+
// Make sure we're not trapping once it's been closed (closed !== unmounted when animating out).
|
|
305
312
|
trapFocus={context.open}
|
|
306
313
|
disableOutsidePointerEvents
|
|
307
314
|
onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {
|
|
@@ -390,34 +397,31 @@ const PopoverContentNonModal = forwardRef<PopoverContentTypeElement, PopoverCont
|
|
|
390
397
|
},
|
|
391
398
|
);
|
|
392
399
|
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
type PopoverContentImplElement = ElementRef<typeof PopperPrimitive.Content>;
|
|
400
|
+
type PopoverContentImplElement = ComponentRef<typeof PopperPrimitive.Content>;
|
|
396
401
|
type FocusScopeProps = ComponentPropsWithoutRef<typeof FocusScope>;
|
|
397
402
|
type DismissableLayerProps = ComponentPropsWithoutRef<typeof DismissableLayer>;
|
|
398
403
|
type PopperContentProps = ThemedClassName<ComponentPropsWithoutRef<typeof PopperPrimitive.Content>>;
|
|
399
404
|
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
}
|
|
405
|
+
type PopoverContentImplProps = Omit<PopperContentProps, 'onPlaced'> &
|
|
406
|
+
Omit<DismissableLayerProps, 'onDismiss'> & {
|
|
407
|
+
/**
|
|
408
|
+
* Whether focus should be trapped within the `Popover`
|
|
409
|
+
* (default: false)
|
|
410
|
+
*/
|
|
411
|
+
trapFocus?: FocusScopeProps['trapped'];
|
|
412
|
+
|
|
413
|
+
/**
|
|
414
|
+
* Event handler called when auto-focusing on open.
|
|
415
|
+
* Can be prevented.
|
|
416
|
+
*/
|
|
417
|
+
onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];
|
|
418
|
+
|
|
419
|
+
/**
|
|
420
|
+
* Event handler called when auto-focusing on close.
|
|
421
|
+
* Can be prevented.
|
|
422
|
+
*/
|
|
423
|
+
onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];
|
|
424
|
+
};
|
|
421
425
|
|
|
422
426
|
const PopoverContentImpl = forwardRef<PopoverContentImplElement, PopoverContentImplProps>(
|
|
423
427
|
(props: ScopedProps<PopoverContentImplProps>, forwardedRef) => {
|
|
@@ -432,6 +436,7 @@ const PopoverContentImpl = forwardRef<PopoverContentImplElement, PopoverContentI
|
|
|
432
436
|
onFocusOutside,
|
|
433
437
|
onInteractOutside,
|
|
434
438
|
collisionPadding = 8,
|
|
439
|
+
collisionBoundary,
|
|
435
440
|
classNames,
|
|
436
441
|
...contentProps
|
|
437
442
|
} = props;
|
|
@@ -444,6 +449,20 @@ const PopoverContentImpl = forwardRef<PopoverContentImplElement, PopoverContentI
|
|
|
444
449
|
// Make sure the whole tree has focus guards as our `Popover` may be the last element in the DOM (because of the `Portal`)
|
|
445
450
|
useFocusGuards();
|
|
446
451
|
|
|
452
|
+
// Check for the closest annotated collision boundary in the DOM tree.
|
|
453
|
+
const computedCollisionBoundary = useMemo(() => {
|
|
454
|
+
const closestBoundary = context.triggerRef.current?.closest(
|
|
455
|
+
'[data-popover-collision-boundary]',
|
|
456
|
+
) as HTMLElement | null;
|
|
457
|
+
return closestBoundary
|
|
458
|
+
? Array.isArray(collisionBoundary)
|
|
459
|
+
? [closestBoundary, ...collisionBoundary]
|
|
460
|
+
: collisionBoundary
|
|
461
|
+
? [closestBoundary, collisionBoundary]
|
|
462
|
+
: [closestBoundary]
|
|
463
|
+
: collisionBoundary;
|
|
464
|
+
}, [context.open, collisionBoundary, context.triggerRef.current]);
|
|
465
|
+
|
|
447
466
|
return (
|
|
448
467
|
<FocusScope
|
|
449
468
|
asChild
|
|
@@ -468,7 +487,8 @@ const PopoverContentImpl = forwardRef<PopoverContentImplElement, PopoverContentI
|
|
|
468
487
|
{...popperScope}
|
|
469
488
|
{...contentProps}
|
|
470
489
|
collisionPadding={safeCollisionPadding}
|
|
471
|
-
|
|
490
|
+
collisionBoundary={computedCollisionBoundary}
|
|
491
|
+
className={tx('popover.content', { elevation }, classNames)}
|
|
472
492
|
ref={forwardedRef}
|
|
473
493
|
style={{
|
|
474
494
|
...contentProps.style,
|
|
@@ -488,14 +508,14 @@ const PopoverContentImpl = forwardRef<PopoverContentImplElement, PopoverContentI
|
|
|
488
508
|
},
|
|
489
509
|
);
|
|
490
510
|
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
511
|
+
//
|
|
512
|
+
// PopoverClose
|
|
513
|
+
//
|
|
494
514
|
|
|
495
515
|
const CLOSE_NAME = 'PopoverClose';
|
|
496
516
|
|
|
497
|
-
type PopoverCloseElement =
|
|
498
|
-
|
|
517
|
+
type PopoverCloseElement = ComponentRef<typeof Primitive.button>;
|
|
518
|
+
type PopoverCloseProps = PrimitiveButtonProps;
|
|
499
519
|
|
|
500
520
|
const PopoverClose = forwardRef<PopoverCloseElement, PopoverCloseProps>(
|
|
501
521
|
(props: ScopedProps<PopoverCloseProps>, forwardedRef) => {
|
|
@@ -514,15 +534,15 @@ const PopoverClose = forwardRef<PopoverCloseElement, PopoverCloseProps>(
|
|
|
514
534
|
|
|
515
535
|
PopoverClose.displayName = CLOSE_NAME;
|
|
516
536
|
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
537
|
+
//
|
|
538
|
+
// PopoverArrow
|
|
539
|
+
//
|
|
520
540
|
|
|
521
541
|
const ARROW_NAME = 'PopoverArrow';
|
|
522
542
|
|
|
523
|
-
type PopoverArrowElement =
|
|
543
|
+
type PopoverArrowElement = ComponentRef<typeof PopperPrimitive.Arrow>;
|
|
524
544
|
type PopperArrowProps = ThemedClassName<ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>>;
|
|
525
|
-
|
|
545
|
+
type PopoverArrowProps = PopperArrowProps;
|
|
526
546
|
|
|
527
547
|
const PopoverArrow = forwardRef<PopoverArrowElement, PopoverArrowProps>(
|
|
528
548
|
(props: ScopedProps<PopoverArrowProps>, forwardedRef) => {
|
|
@@ -533,7 +553,7 @@ const PopoverArrow = forwardRef<PopoverArrowElement, PopoverArrowProps>(
|
|
|
533
553
|
<PopperPrimitive.Arrow
|
|
534
554
|
{...popperScope}
|
|
535
555
|
{...arrowProps}
|
|
536
|
-
className={tx('popover.arrow',
|
|
556
|
+
className={tx('popover.arrow', {}, classNames)}
|
|
537
557
|
ref={forwardedRef}
|
|
538
558
|
/>
|
|
539
559
|
);
|
|
@@ -542,9 +562,9 @@ const PopoverArrow = forwardRef<PopoverArrowElement, PopoverArrowProps>(
|
|
|
542
562
|
|
|
543
563
|
PopoverArrow.displayName = ARROW_NAME;
|
|
544
564
|
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
565
|
+
//
|
|
566
|
+
// PopoverViewport
|
|
567
|
+
//
|
|
548
568
|
|
|
549
569
|
type PopoverViewportProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {
|
|
550
570
|
asChild?: boolean;
|
|
@@ -555,25 +575,27 @@ type PopoverViewportProps = ThemedClassName<ComponentPropsWithRef<typeof Primiti
|
|
|
555
575
|
const PopoverViewport = forwardRef<HTMLDivElement, PopoverViewportProps>(
|
|
556
576
|
({ classNames, asChild, constrainInline = true, constrainBlock = true, children, ...props }, forwardedRef) => {
|
|
557
577
|
const { tx } = useThemeContext();
|
|
558
|
-
const
|
|
578
|
+
const Comp = asChild ? Slot : Primitive.div;
|
|
559
579
|
return (
|
|
560
|
-
<
|
|
580
|
+
<Comp
|
|
561
581
|
{...props}
|
|
562
|
-
className={tx('popover.viewport',
|
|
582
|
+
className={tx('popover.viewport', { constrainInline, constrainBlock }, classNames)}
|
|
563
583
|
ref={forwardedRef}
|
|
564
584
|
>
|
|
565
585
|
{children}
|
|
566
|
-
</
|
|
586
|
+
</Comp>
|
|
567
587
|
);
|
|
568
588
|
},
|
|
569
589
|
);
|
|
570
590
|
|
|
571
|
-
/* ----------------------------------------------------------------------------------------------- */
|
|
572
|
-
|
|
573
591
|
const getState = (open: boolean) => (open ? 'open' : 'closed');
|
|
574
592
|
|
|
575
593
|
type PopoverContentInteractOutsideEvent = Parameters<NonNullable<PopoverContentProps['onInteractOutside']>>[0];
|
|
576
594
|
|
|
595
|
+
//
|
|
596
|
+
// Popver
|
|
597
|
+
//
|
|
598
|
+
|
|
577
599
|
export const Popover = {
|
|
578
600
|
Root: PopoverRoot,
|
|
579
601
|
Anchor: PopoverAnchor,
|