@dxos/react-ui 0.8.4-main.5ad4a44 → 0.8.4-main.60689f5b1c
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 +4425 -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 +102 -56
- 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 +4425 -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 +102 -56
- 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 +106 -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.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 +41 -19
- 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 +2 -2
- 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 +2 -1
- package/dist/types/src/testing/decorators/index.d.ts.map +1 -1
- package/dist/types/src/testing/decorators/withLayout.d.ts +15 -0
- package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -0
- 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 +379 -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 +11 -3
- 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 +116 -94
- 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 +188 -13
- 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/hooks/useSafeArea.ts +2 -2
- package/src/hooks/useVisualViewport.ts +3 -3
- 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 +2 -1
- package/src/testing/decorators/withLayout.tsx +67 -0
- 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-B7HPXBP2.mjs +0 -4514
- package/dist/lib/browser/chunk-B7HPXBP2.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-6JCSY5Y7.mjs +0 -4516
- package/dist/lib/node-esm/chunk-6JCSY5Y7.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 -51
- /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
|
@@ -6,10 +6,9 @@ import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
|
6
6
|
import React from 'react';
|
|
7
7
|
|
|
8
8
|
import { withTheme } from '../../testing';
|
|
9
|
-
import { Toggle } from '../
|
|
9
|
+
import { Toggle } from '../Button';
|
|
10
10
|
import { Icon } from '../Icon';
|
|
11
11
|
import { Select } from '../Select';
|
|
12
|
-
|
|
13
12
|
import { Toolbar } from './Toolbar';
|
|
14
13
|
|
|
15
14
|
type StorybookToolbarProps = {};
|
|
@@ -63,18 +62,16 @@ const DefaultStory = (props: StorybookToolbarProps) => {
|
|
|
63
62
|
</Toolbar.Button>
|
|
64
63
|
<Toolbar.Separator />
|
|
65
64
|
<Toolbar.Button>Test</Toolbar.Button>
|
|
66
|
-
<Toolbar.
|
|
67
|
-
<Icon icon='ph--arrow-clockwise--regular' />
|
|
68
|
-
</Toolbar.Button>
|
|
65
|
+
<Toolbar.IconButton icon='ph--arrow-clockwise--regular' label='Refresh' iconOnly />
|
|
69
66
|
</Toolbar.Root>
|
|
70
67
|
);
|
|
71
68
|
};
|
|
72
69
|
|
|
73
70
|
const meta = {
|
|
74
|
-
title: 'ui/react-ui-core/Toolbar',
|
|
71
|
+
title: 'ui/react-ui-core/components/Toolbar',
|
|
75
72
|
component: Toolbar as any,
|
|
76
73
|
render: DefaultStory,
|
|
77
|
-
decorators: [withTheme],
|
|
74
|
+
decorators: [withTheme()],
|
|
78
75
|
} satisfies Meta<typeof DefaultStory>;
|
|
79
76
|
|
|
80
77
|
export default meta;
|
|
@@ -2,12 +2,19 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { Primitive } from '@radix-ui/react-primitive';
|
|
6
|
+
import { Slot } from '@radix-ui/react-slot';
|
|
5
7
|
import type { ToggleGroupItemProps as ToggleGroupItemPrimitiveProps } from '@radix-ui/react-toggle-group';
|
|
6
8
|
import * as ToolbarPrimitive from '@radix-ui/react-toolbar';
|
|
7
9
|
import React, { forwardRef } from 'react';
|
|
10
|
+
import { useTranslation } from 'react-i18next';
|
|
11
|
+
|
|
12
|
+
import { composable, composableProps, slottable, type ToolbarStyleProps } from '@dxos/ui-theme';
|
|
13
|
+
import { type SlottableProps } from '@dxos/ui-types';
|
|
14
|
+
|
|
15
|
+
import { translationKey } from '#translations';
|
|
8
16
|
|
|
9
17
|
import { useThemeContext } from '../../hooks';
|
|
10
|
-
import { type ThemedClassName } from '../../util';
|
|
11
18
|
import {
|
|
12
19
|
Button,
|
|
13
20
|
ButtonGroup,
|
|
@@ -18,20 +25,30 @@ import {
|
|
|
18
25
|
Toggle,
|
|
19
26
|
type ToggleGroupItemProps,
|
|
20
27
|
type ToggleProps,
|
|
21
|
-
} from '../
|
|
28
|
+
} from '../Button';
|
|
22
29
|
import { Link, type LinkProps } from '../Link';
|
|
30
|
+
import { DropdownMenu } from '../Menu';
|
|
23
31
|
import { Separator, type SeparatorProps } from '../Separator';
|
|
24
32
|
|
|
25
|
-
|
|
33
|
+
//
|
|
34
|
+
// Root
|
|
35
|
+
//
|
|
36
|
+
|
|
37
|
+
type ToolbarRootProps = ToolbarPrimitive.ToolbarProps & ToolbarStyleProps;
|
|
26
38
|
|
|
27
|
-
const ToolbarRoot =
|
|
28
|
-
({
|
|
39
|
+
const ToolbarRoot = composable<HTMLDivElement, ToolbarRootProps>(
|
|
40
|
+
({ children, density, disabled, layoutManaged, orientation, ...props }, forwardedRef) => {
|
|
41
|
+
const { className, role, ...rest } = composableProps(props);
|
|
29
42
|
const { tx } = useThemeContext();
|
|
43
|
+
|
|
30
44
|
return (
|
|
31
45
|
<ToolbarPrimitive.Root
|
|
32
|
-
{...
|
|
33
|
-
|
|
34
|
-
|
|
46
|
+
{...rest}
|
|
47
|
+
// Only pass role when explicitly set; radix provides role="toolbar" by default.
|
|
48
|
+
{...(role !== 'none' && { role })}
|
|
49
|
+
orientation={orientation}
|
|
50
|
+
data-arrow-keys={orientation === 'vertical' ? 'up down' : 'left right'}
|
|
51
|
+
className={tx('toolbar.root', { density, disabled, layoutManaged }, className)}
|
|
35
52
|
ref={forwardedRef}
|
|
36
53
|
>
|
|
37
54
|
{children}
|
|
@@ -40,6 +57,27 @@ const ToolbarRoot = forwardRef<HTMLDivElement, ToolbarRootProps>(
|
|
|
40
57
|
},
|
|
41
58
|
);
|
|
42
59
|
|
|
60
|
+
//
|
|
61
|
+
// Text
|
|
62
|
+
//
|
|
63
|
+
|
|
64
|
+
type ToolbarTextProps = SlottableProps;
|
|
65
|
+
|
|
66
|
+
const ToolbarText = slottable<HTMLDivElement>(({ children, asChild, ...props }, forwardedRef) => {
|
|
67
|
+
const { className, ...rest } = composableProps(props);
|
|
68
|
+
const Comp = asChild ? Slot : Primitive.div;
|
|
69
|
+
const { tx } = useThemeContext();
|
|
70
|
+
return (
|
|
71
|
+
<Comp {...rest} className={tx('toolbar.text', {}, className)} ref={forwardedRef}>
|
|
72
|
+
{children}
|
|
73
|
+
</Comp>
|
|
74
|
+
);
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
//
|
|
78
|
+
// Button
|
|
79
|
+
//
|
|
80
|
+
|
|
43
81
|
type ToolbarButtonProps = ButtonProps;
|
|
44
82
|
|
|
45
83
|
const ToolbarButton = forwardRef<HTMLButtonElement, ToolbarButtonProps>((props, forwardedRef) => {
|
|
@@ -50,12 +88,16 @@ const ToolbarButton = forwardRef<HTMLButtonElement, ToolbarButtonProps>((props,
|
|
|
50
88
|
);
|
|
51
89
|
});
|
|
52
90
|
|
|
91
|
+
//
|
|
92
|
+
// IconButton
|
|
93
|
+
//
|
|
94
|
+
|
|
53
95
|
type ToolbarIconButtonProps = IconButtonProps;
|
|
54
96
|
|
|
55
97
|
const ToolbarIconButton = forwardRef<HTMLButtonElement, ToolbarIconButtonProps>((props, forwardedRef) => {
|
|
56
98
|
return (
|
|
57
99
|
<ToolbarPrimitive.Button asChild>
|
|
58
|
-
<IconButton {...props} ref={forwardedRef} />
|
|
100
|
+
<IconButton {...props} noTooltip ref={forwardedRef} />
|
|
59
101
|
</ToolbarPrimitive.Button>
|
|
60
102
|
);
|
|
61
103
|
});
|
|
@@ -70,6 +112,10 @@ const ToolbarToggle = forwardRef<HTMLButtonElement, ToolbarToggleProps>((props,
|
|
|
70
112
|
);
|
|
71
113
|
});
|
|
72
114
|
|
|
115
|
+
//
|
|
116
|
+
// Link
|
|
117
|
+
//
|
|
118
|
+
|
|
73
119
|
type ToolbarLinkProps = LinkProps;
|
|
74
120
|
|
|
75
121
|
const ToolbarLink = forwardRef<HTMLAnchorElement, ToolbarLinkProps>((props, forwardedRef) => {
|
|
@@ -86,6 +132,10 @@ type ToolbarToggleGroupProps = (
|
|
|
86
132
|
) &
|
|
87
133
|
ButtonGroupProps;
|
|
88
134
|
|
|
135
|
+
//
|
|
136
|
+
// ToggleGroup
|
|
137
|
+
//
|
|
138
|
+
|
|
89
139
|
const ToolbarToggleGroup = forwardRef<HTMLDivElement, ToolbarToggleGroupProps>(
|
|
90
140
|
({ classNames, children, elevation, ...props }, forwardedRef) => {
|
|
91
141
|
return (
|
|
@@ -111,22 +161,38 @@ const ToolbarToggleGroupItem = forwardRef<HTMLButtonElement, ToolbarToggleGroupI
|
|
|
111
161
|
type ToolbarToggleGroupIconItemProps = Omit<ToggleGroupItemPrimitiveProps, 'className'> & IconButtonProps;
|
|
112
162
|
|
|
113
163
|
const ToolbarToggleGroupIconItem = forwardRef<HTMLButtonElement, ToolbarToggleGroupIconItemProps>(
|
|
114
|
-
({ variant, density, elevation, classNames, icon, label, iconOnly, ...props }, forwardedRef) => {
|
|
164
|
+
({ variant, density, elevation, classNames, icon, label, iconOnly, iconClassNames, ...props }, forwardedRef) => {
|
|
115
165
|
return (
|
|
116
166
|
<ToolbarPrimitive.ToolbarToggleItem {...props} asChild>
|
|
117
|
-
<IconButton
|
|
167
|
+
<IconButton
|
|
168
|
+
{...{
|
|
169
|
+
variant,
|
|
170
|
+
density,
|
|
171
|
+
elevation,
|
|
172
|
+
classNames,
|
|
173
|
+
icon,
|
|
174
|
+
label,
|
|
175
|
+
iconOnly,
|
|
176
|
+
iconClassNames,
|
|
177
|
+
}}
|
|
178
|
+
ref={forwardedRef}
|
|
179
|
+
/>
|
|
118
180
|
</ToolbarPrimitive.ToolbarToggleItem>
|
|
119
181
|
);
|
|
120
182
|
},
|
|
121
183
|
);
|
|
122
184
|
|
|
185
|
+
//
|
|
186
|
+
// Separator
|
|
187
|
+
//
|
|
188
|
+
|
|
123
189
|
type ToolbarSeparatorProps = SeparatorProps & { variant?: 'gap' | 'line' };
|
|
124
190
|
|
|
125
191
|
const ToolbarSeparator = forwardRef<HTMLDivElement, ToolbarSeparatorProps>(
|
|
126
|
-
({ variant = '
|
|
192
|
+
({ variant = 'gap', ...props }, forwardedRef) => {
|
|
127
193
|
return variant === 'line' ? (
|
|
128
194
|
<ToolbarPrimitive.Separator asChild>
|
|
129
|
-
<Separator {...props} ref={forwardedRef} />
|
|
195
|
+
<Separator orientation='vertical' {...props} ref={forwardedRef} />
|
|
130
196
|
</ToolbarPrimitive.Separator>
|
|
131
197
|
) : (
|
|
132
198
|
<ToolbarPrimitive.Separator className='grow' ref={forwardedRef} />
|
|
@@ -134,8 +200,109 @@ const ToolbarSeparator = forwardRef<HTMLDivElement, ToolbarSeparatorProps>(
|
|
|
134
200
|
},
|
|
135
201
|
);
|
|
136
202
|
|
|
203
|
+
//
|
|
204
|
+
// DragHandle
|
|
205
|
+
//
|
|
206
|
+
|
|
207
|
+
type ToolbarDragHandleProps = { testId?: string; label?: string };
|
|
208
|
+
|
|
209
|
+
const ToolbarDragHandle = forwardRef<HTMLButtonElement, ToolbarDragHandleProps>(
|
|
210
|
+
({ testId = 'drag-handle', label }, forwardedRef) => {
|
|
211
|
+
const { t } = useTranslation(translationKey);
|
|
212
|
+
return (
|
|
213
|
+
<ToolbarIconButton
|
|
214
|
+
data-testid={testId}
|
|
215
|
+
tabIndex={-1}
|
|
216
|
+
noTooltip
|
|
217
|
+
iconOnly
|
|
218
|
+
icon='ph--dots-six-vertical--regular'
|
|
219
|
+
variant='ghost'
|
|
220
|
+
label={label ?? t('toolbar-drag-handle.label')}
|
|
221
|
+
classNames='dx-focus-ring-none cursor-pointer'
|
|
222
|
+
disabled={!forwardedRef}
|
|
223
|
+
ref={forwardedRef}
|
|
224
|
+
/>
|
|
225
|
+
);
|
|
226
|
+
},
|
|
227
|
+
);
|
|
228
|
+
|
|
229
|
+
//
|
|
230
|
+
// CloseIconButton
|
|
231
|
+
//
|
|
232
|
+
|
|
233
|
+
type ToolbarCloseIconButtonProps = { onClick?: () => void; label?: string };
|
|
234
|
+
|
|
235
|
+
const ToolbarCloseIconButton = forwardRef<HTMLButtonElement, ToolbarCloseIconButtonProps>(
|
|
236
|
+
({ onClick, label }, forwardedRef) => {
|
|
237
|
+
const { t } = useTranslation(translationKey);
|
|
238
|
+
|
|
239
|
+
return (
|
|
240
|
+
<ToolbarIconButton
|
|
241
|
+
iconOnly
|
|
242
|
+
icon='ph--x--regular'
|
|
243
|
+
variant='ghost'
|
|
244
|
+
label={label ?? t('toolbar-close.label')}
|
|
245
|
+
classNames='cursor-pointer'
|
|
246
|
+
onClick={onClick}
|
|
247
|
+
ref={forwardedRef}
|
|
248
|
+
/>
|
|
249
|
+
);
|
|
250
|
+
},
|
|
251
|
+
);
|
|
252
|
+
|
|
253
|
+
//
|
|
254
|
+
// Menu
|
|
255
|
+
//
|
|
256
|
+
|
|
257
|
+
type ToolbarMenuItem<T extends any | void = void> = {
|
|
258
|
+
label: string;
|
|
259
|
+
onClick: (context: T) => void;
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
type ToolbarMenuProps<T extends any | void = void> = {
|
|
263
|
+
context?: T;
|
|
264
|
+
items?: ToolbarMenuItem<T>[];
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
// TODO(burdon): Make slottable.
|
|
268
|
+
const ToolbarMenu = <T extends any | void = void>({ context, items }: ToolbarMenuProps<T>) => {
|
|
269
|
+
const { t } = useTranslation(translationKey);
|
|
270
|
+
|
|
271
|
+
return (
|
|
272
|
+
<DropdownMenu.Root>
|
|
273
|
+
<DropdownMenu.Trigger disabled={!items?.length} asChild>
|
|
274
|
+
<ToolbarIconButton
|
|
275
|
+
iconOnly
|
|
276
|
+
variant='ghost'
|
|
277
|
+
icon='ph--dots-three-vertical--regular'
|
|
278
|
+
label={t('toolbar-menu.label')}
|
|
279
|
+
/>
|
|
280
|
+
</DropdownMenu.Trigger>
|
|
281
|
+
{(items?.length ?? 0) > 0 && (
|
|
282
|
+
<DropdownMenu.Portal>
|
|
283
|
+
<DropdownMenu.Content>
|
|
284
|
+
<DropdownMenu.Viewport>
|
|
285
|
+
{items?.map(({ label, onClick: onSelect }, index) => (
|
|
286
|
+
<DropdownMenu.Item key={index} onSelect={() => onSelect(context as T)}>
|
|
287
|
+
{label}
|
|
288
|
+
</DropdownMenu.Item>
|
|
289
|
+
))}
|
|
290
|
+
</DropdownMenu.Viewport>
|
|
291
|
+
<DropdownMenu.Arrow />
|
|
292
|
+
</DropdownMenu.Content>
|
|
293
|
+
</DropdownMenu.Portal>
|
|
294
|
+
)}
|
|
295
|
+
</DropdownMenu.Root>
|
|
296
|
+
);
|
|
297
|
+
};
|
|
298
|
+
|
|
299
|
+
//
|
|
300
|
+
// Toolbar
|
|
301
|
+
//
|
|
302
|
+
|
|
137
303
|
export const Toolbar = {
|
|
138
304
|
Root: ToolbarRoot,
|
|
305
|
+
Text: ToolbarText,
|
|
139
306
|
Button: ToolbarButton,
|
|
140
307
|
IconButton: ToolbarIconButton,
|
|
141
308
|
Link: ToolbarLink,
|
|
@@ -144,10 +311,14 @@ export const Toolbar = {
|
|
|
144
311
|
ToggleGroupItem: ToolbarToggleGroupItem,
|
|
145
312
|
ToggleGroupIconItem: ToolbarToggleGroupIconItem,
|
|
146
313
|
Separator: ToolbarSeparator,
|
|
314
|
+
DragHandle: ToolbarDragHandle,
|
|
315
|
+
CloseIconButton: ToolbarCloseIconButton,
|
|
316
|
+
Menu: ToolbarMenu,
|
|
147
317
|
};
|
|
148
318
|
|
|
149
319
|
export type {
|
|
150
320
|
ToolbarRootProps,
|
|
321
|
+
ToolbarTextProps,
|
|
151
322
|
ToolbarButtonProps,
|
|
152
323
|
ToolbarIconButtonProps,
|
|
153
324
|
ToolbarLinkProps,
|
|
@@ -156,4 +327,8 @@ export type {
|
|
|
156
327
|
ToolbarToggleGroupItemProps,
|
|
157
328
|
ToolbarToggleGroupIconItemProps,
|
|
158
329
|
ToolbarSeparatorProps,
|
|
330
|
+
ToolbarDragHandleProps,
|
|
331
|
+
ToolbarCloseIconButtonProps,
|
|
332
|
+
ToolbarMenuItem,
|
|
333
|
+
ToolbarMenuProps,
|
|
159
334
|
};
|
|
@@ -5,35 +5,36 @@
|
|
|
5
5
|
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { random } from '@dxos/random';
|
|
9
9
|
|
|
10
10
|
import { withTheme } from '../../testing';
|
|
11
|
-
import { Button } from '../
|
|
12
|
-
|
|
11
|
+
import { Button } from '../Button';
|
|
13
12
|
import { Tooltip } from './Tooltip';
|
|
14
13
|
|
|
15
|
-
type
|
|
14
|
+
type DefaultStoryProps = {
|
|
16
15
|
tooltips: { label: string; content: string }[];
|
|
17
16
|
defaultOpen?: boolean;
|
|
18
17
|
};
|
|
19
18
|
|
|
20
|
-
const DefaultStory = ({ tooltips, defaultOpen }:
|
|
21
|
-
|
|
22
|
-
<
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
<
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
19
|
+
const DefaultStory = ({ tooltips, defaultOpen }: DefaultStoryProps) => {
|
|
20
|
+
return (
|
|
21
|
+
<Tooltip.Provider defaultOpen={defaultOpen}>
|
|
22
|
+
<div className='w-32'>
|
|
23
|
+
{tooltips.map(({ label, content }, i) => (
|
|
24
|
+
<Tooltip.Trigger asChild key={i} content={content} side='right'>
|
|
25
|
+
<Button classNames='block w-full'>{label}</Button>
|
|
26
|
+
</Tooltip.Trigger>
|
|
27
|
+
))}
|
|
28
|
+
</div>
|
|
29
|
+
</Tooltip.Provider>
|
|
30
|
+
);
|
|
31
|
+
};
|
|
31
32
|
|
|
32
33
|
const meta = {
|
|
33
|
-
title: 'ui/react-ui-core/Tooltip',
|
|
34
|
+
title: 'ui/react-ui-core/components/Tooltip',
|
|
34
35
|
component: Tooltip as any,
|
|
35
36
|
render: DefaultStory,
|
|
36
|
-
decorators: [withTheme],
|
|
37
|
+
decorators: [withTheme()],
|
|
37
38
|
} satisfies Meta<typeof DefaultStory>;
|
|
38
39
|
|
|
39
40
|
export default meta;
|
|
@@ -72,10 +73,10 @@ export const DefaultOpen: Story = {
|
|
|
72
73
|
export const StressTest: Story = {
|
|
73
74
|
args: {
|
|
74
75
|
defaultOpen: true,
|
|
75
|
-
tooltips:
|
|
76
|
+
tooltips: random.helpers.multiple(
|
|
76
77
|
() => ({
|
|
77
|
-
label:
|
|
78
|
-
content:
|
|
78
|
+
label: random.lorem.words(2),
|
|
79
|
+
content: random.lorem.words(5),
|
|
79
80
|
}),
|
|
80
81
|
{ count: 32 },
|
|
81
82
|
),
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
// This is based upon `@radix-ui/react-tooltip` fetched 17 March 2025 at https://github.com/radix-ui/primitives at commit 6e75e11.
|
|
6
|
+
// TODO(burdon): Replace with https://ui.shadcn.com/docs/components/radix/tooltip
|
|
6
7
|
|
|
7
8
|
import { composeEventHandlers } from '@radix-ui/primitive';
|
|
8
9
|
import { useComposedRefs } from '@radix-ui/react-compose-refs';
|
|
@@ -21,9 +22,8 @@ import { useControllableState } from '@radix-ui/react-use-controllable-state';
|
|
|
21
22
|
import * as VisuallyHiddenPrimitive from '@radix-ui/react-visually-hidden';
|
|
22
23
|
import React, {
|
|
23
24
|
type ComponentPropsWithoutRef,
|
|
24
|
-
type
|
|
25
|
+
type ComponentRef,
|
|
25
26
|
type FC,
|
|
26
|
-
type MutableRefObject,
|
|
27
27
|
type ReactNode,
|
|
28
28
|
type RefObject,
|
|
29
29
|
type SyntheticEvent,
|
|
@@ -41,9 +41,9 @@ type TooltipScopedProps<P = {}> = P & { __scopeTooltip?: Scope };
|
|
|
41
41
|
const [createTooltipContext, createTooltipScope] = createContextScope('Tooltip', [createPopperScope]);
|
|
42
42
|
const usePopperScope = createPopperScope();
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
//
|
|
45
|
+
// Tooltip
|
|
46
|
+
//
|
|
47
47
|
|
|
48
48
|
const DEFAULT_DELAY_DURATION = 700;
|
|
49
49
|
const TOOLTIP_OPEN = 'tooltip.open';
|
|
@@ -54,19 +54,19 @@ type TooltipContextValue = {
|
|
|
54
54
|
open: boolean;
|
|
55
55
|
stateAttribute: 'closed' | 'delayed-open' | 'instant-open';
|
|
56
56
|
trigger: TooltipTriggerElement | null;
|
|
57
|
-
onTriggerChange(trigger: TooltipTriggerElement | null): void;
|
|
57
|
+
onTriggerChange(trigger: TooltipTriggerElement | null, content?: ReactNode, side?: TooltipSide): void;
|
|
58
58
|
onTriggerEnter(): void;
|
|
59
59
|
onTriggerLeave(): void;
|
|
60
60
|
onOpen(): void;
|
|
61
61
|
onClose(): void;
|
|
62
62
|
onPointerInTransitChange(inTransit: boolean): void;
|
|
63
|
-
isPointerInTransitRef:
|
|
63
|
+
isPointerInTransitRef: RefObject<boolean>;
|
|
64
64
|
disableHoverableContent: boolean;
|
|
65
65
|
};
|
|
66
66
|
|
|
67
67
|
const [TooltipContextProvider, useTooltipContext] = createTooltipContext<TooltipContextValue>(TOOLTIP_NAME);
|
|
68
68
|
|
|
69
|
-
|
|
69
|
+
type TooltipProviderProps = {
|
|
70
70
|
children?: ReactNode;
|
|
71
71
|
open?: boolean;
|
|
72
72
|
defaultOpen?: boolean;
|
|
@@ -87,7 +87,7 @@ interface TooltipProviderProps {
|
|
|
87
87
|
* @defaultValue 300
|
|
88
88
|
*/
|
|
89
89
|
skipDelayDuration?: number;
|
|
90
|
-
}
|
|
90
|
+
};
|
|
91
91
|
|
|
92
92
|
const TooltipProvider: FC<TooltipProviderProps> = (props: TooltipScopedProps<TooltipProviderProps>) => {
|
|
93
93
|
const {
|
|
@@ -111,15 +111,18 @@ const TooltipProvider: FC<TooltipProviderProps> = (props: TooltipScopedProps<Too
|
|
|
111
111
|
|
|
112
112
|
const popperScope = usePopperScope(__scopeTooltip);
|
|
113
113
|
const [trigger, setTrigger] = useState<HTMLButtonElement | null>(null);
|
|
114
|
-
const [content, setContent] = useState<
|
|
114
|
+
const [content, setContent] = useState<ReactNode>(null);
|
|
115
115
|
const [side, setSide] = useState<TooltipSide | undefined>(undefined);
|
|
116
116
|
const triggerRef = useRef<HTMLButtonElement | null>(trigger);
|
|
117
|
-
const handleTriggerChange = useCallback(
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
117
|
+
const handleTriggerChange = useCallback(
|
|
118
|
+
(nextTrigger: HTMLButtonElement | null, nextContent?: ReactNode, nextSide?: TooltipSide) => {
|
|
119
|
+
setTrigger(nextTrigger);
|
|
120
|
+
triggerRef.current = nextTrigger;
|
|
121
|
+
setContent(nextContent ?? null);
|
|
122
|
+
setSide(nextSide);
|
|
123
|
+
},
|
|
124
|
+
[],
|
|
125
|
+
);
|
|
123
126
|
const contentId = useId();
|
|
124
127
|
const openTimerRef = useRef(0);
|
|
125
128
|
const wasOpenDelayedRef = useRef(false);
|
|
@@ -215,9 +218,9 @@ const TooltipProvider: FC<TooltipProviderProps> = (props: TooltipScopedProps<Too
|
|
|
215
218
|
isPointerInTransitRef.current = inTransit;
|
|
216
219
|
}, [])}
|
|
217
220
|
>
|
|
218
|
-
<TooltipContent side={side} className={tx('tooltip.content',
|
|
221
|
+
<TooltipContent side={side} className={tx('tooltip.content', { elevation })}>
|
|
219
222
|
{content}
|
|
220
|
-
<TooltipArrow className={tx('tooltip.arrow'
|
|
223
|
+
<TooltipArrow className={tx('tooltip.arrow')} />
|
|
221
224
|
</TooltipContent>
|
|
222
225
|
<TooltipVirtualTrigger virtualRef={triggerRef as RefObject<HTMLButtonElement>} />
|
|
223
226
|
{children}
|
|
@@ -228,9 +231,9 @@ const TooltipProvider: FC<TooltipProviderProps> = (props: TooltipScopedProps<Too
|
|
|
228
231
|
|
|
229
232
|
TooltipProvider.displayName = TOOLTIP_NAME;
|
|
230
233
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
+
//
|
|
235
|
+
// TooltipVirtualTrigger
|
|
236
|
+
//
|
|
234
237
|
|
|
235
238
|
const TooltipVirtualTrigger = ({
|
|
236
239
|
virtualRef,
|
|
@@ -240,17 +243,17 @@ const TooltipVirtualTrigger = ({
|
|
|
240
243
|
return <PopperPrimitive.Anchor asChild {...popperScope} virtualRef={virtualRef} />;
|
|
241
244
|
};
|
|
242
245
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
+
//
|
|
247
|
+
// TooltipTrigger
|
|
248
|
+
//
|
|
246
249
|
|
|
247
250
|
const TRIGGER_NAME = 'TooltipTrigger';
|
|
248
251
|
|
|
249
|
-
type TooltipTriggerElement =
|
|
252
|
+
type TooltipTriggerElement = ComponentRef<typeof Primitive.button>;
|
|
250
253
|
type PrimitiveButtonProps = ComponentPropsWithoutRef<typeof Primitive.button>;
|
|
251
|
-
type TooltipTriggerProps = PrimitiveButtonProps &
|
|
254
|
+
type TooltipTriggerProps = Omit<PrimitiveButtonProps, 'content'> &
|
|
252
255
|
Pick<TooltipProps, 'delayDuration'> & {
|
|
253
|
-
content?:
|
|
256
|
+
content?: ReactNode;
|
|
254
257
|
side?: TooltipSide;
|
|
255
258
|
onInteract?: (event: SyntheticEvent) => void;
|
|
256
259
|
};
|
|
@@ -283,8 +286,6 @@ const TooltipTrigger = forwardRef<TooltipTriggerElement, TooltipTriggerProps>(
|
|
|
283
286
|
// commonly anchors and the anchor `type` attribute signifies MIME type.
|
|
284
287
|
aria-describedby={context.open ? context.contentId : undefined}
|
|
285
288
|
data-state={context.stateAttribute}
|
|
286
|
-
data-tooltip-content={content}
|
|
287
|
-
data-tooltip-side={side}
|
|
288
289
|
{...triggerProps}
|
|
289
290
|
ref={composedRefs}
|
|
290
291
|
onPointerMove={composeEventHandlers(props.onPointerMove, (event) => {
|
|
@@ -296,7 +297,7 @@ const TooltipTrigger = forwardRef<TooltipTriggerElement, TooltipTriggerProps>(
|
|
|
296
297
|
if (event.defaultPrevented) {
|
|
297
298
|
return;
|
|
298
299
|
}
|
|
299
|
-
context.onTriggerChange(ref.current);
|
|
300
|
+
context.onTriggerChange(ref.current, content, side);
|
|
300
301
|
context.onTriggerEnter();
|
|
301
302
|
hasPointerMoveOpenedRef.current = true;
|
|
302
303
|
}
|
|
@@ -322,9 +323,9 @@ const TooltipTrigger = forwardRef<TooltipTriggerElement, TooltipTriggerProps>(
|
|
|
322
323
|
|
|
323
324
|
TooltipTrigger.displayName = TRIGGER_NAME;
|
|
324
325
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
326
|
+
//
|
|
327
|
+
// TooltipPortal
|
|
328
|
+
//
|
|
328
329
|
|
|
329
330
|
const PORTAL_NAME = 'TooltipPortal';
|
|
330
331
|
|
|
@@ -334,7 +335,7 @@ const [PortalProvider, usePortalContext] = createTooltipContext<PortalContextVal
|
|
|
334
335
|
});
|
|
335
336
|
|
|
336
337
|
type PortalProps = ComponentPropsWithoutRef<typeof PortalPrimitive>;
|
|
337
|
-
|
|
338
|
+
type TooltipPortalProps = {
|
|
338
339
|
children?: ReactNode;
|
|
339
340
|
/**
|
|
340
341
|
* Specify a container element to portal the content into.
|
|
@@ -345,7 +346,7 @@ interface TooltipPortalProps {
|
|
|
345
346
|
* controlling animation with React animation libraries.
|
|
346
347
|
*/
|
|
347
348
|
forceMount?: true;
|
|
348
|
-
}
|
|
349
|
+
};
|
|
349
350
|
|
|
350
351
|
const TooltipPortal: FC<TooltipPortalProps> = (props: TooltipScopedProps<TooltipPortalProps>) => {
|
|
351
352
|
const { __scopeTooltip, forceMount, children, container } = props;
|
|
@@ -363,20 +364,20 @@ const TooltipPortal: FC<TooltipPortalProps> = (props: TooltipScopedProps<Tooltip
|
|
|
363
364
|
|
|
364
365
|
TooltipPortal.displayName = PORTAL_NAME;
|
|
365
366
|
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
367
|
+
//
|
|
368
|
+
// TooltipContent
|
|
369
|
+
//
|
|
369
370
|
|
|
370
371
|
const CONTENT_NAME = 'TooltipContent';
|
|
371
372
|
|
|
372
373
|
type TooltipContentElement = TooltipContentImplElement;
|
|
373
|
-
|
|
374
|
+
type TooltipContentProps = TooltipContentImplProps & {
|
|
374
375
|
/**
|
|
375
376
|
* Used to force mounting when more control is needed. Useful when
|
|
376
377
|
* controlling animation with React animation libraries.
|
|
377
378
|
*/
|
|
378
379
|
forceMount?: true;
|
|
379
|
-
}
|
|
380
|
+
};
|
|
380
381
|
|
|
381
382
|
const TooltipContent = forwardRef<TooltipContentElement, TooltipContentProps>(
|
|
382
383
|
(props: TooltipScopedProps<TooltipContentProps>, forwardedRef) => {
|
|
@@ -400,7 +401,7 @@ type Point = { x: number; y: number };
|
|
|
400
401
|
type Polygon = Point[];
|
|
401
402
|
|
|
402
403
|
type TooltipContentHoverableElement = TooltipContentImplElement;
|
|
403
|
-
|
|
404
|
+
type TooltipContentHoverableProps = TooltipContentImplProps;
|
|
404
405
|
|
|
405
406
|
const TooltipContentHoverable = forwardRef<TooltipContentHoverableElement, TooltipContentHoverableProps>(
|
|
406
407
|
(props: TooltipScopedProps<TooltipContentHoverableProps>, forwardedRef) => {
|
|
@@ -479,10 +480,10 @@ const [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] =
|
|
|
479
480
|
isInside: false,
|
|
480
481
|
});
|
|
481
482
|
|
|
482
|
-
type TooltipContentImplElement =
|
|
483
|
+
type TooltipContentImplElement = ComponentRef<typeof PopperPrimitive.Content>;
|
|
483
484
|
type DismissableLayerProps = ComponentPropsWithoutRef<typeof DismissableLayer>;
|
|
484
485
|
type PopperContentProps = ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;
|
|
485
|
-
|
|
486
|
+
type TooltipContentImplProps = Omit<PopperContentProps, 'onPlaced'> & {
|
|
486
487
|
/**
|
|
487
488
|
* A more descriptive label for accessibility purpose
|
|
488
489
|
*/
|
|
@@ -498,7 +499,7 @@ interface TooltipContentImplProps extends Omit<PopperContentProps, 'onPlaced'> {
|
|
|
498
499
|
* Can be prevented.
|
|
499
500
|
*/
|
|
500
501
|
onPointerDownOutside?: DismissableLayerProps['onPointerDownOutside'];
|
|
501
|
-
}
|
|
502
|
+
};
|
|
502
503
|
|
|
503
504
|
const TooltipContentImpl = forwardRef<TooltipContentImplElement, TooltipContentImplProps>(
|
|
504
505
|
(props: TooltipScopedProps<TooltipContentImplProps>, forwardedRef) => {
|
|
@@ -574,15 +575,15 @@ const TooltipContentImpl = forwardRef<TooltipContentImplElement, TooltipContentI
|
|
|
574
575
|
|
|
575
576
|
TooltipContent.displayName = CONTENT_NAME;
|
|
576
577
|
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
578
|
+
//
|
|
579
|
+
// TooltipArrow
|
|
580
|
+
//
|
|
580
581
|
|
|
581
582
|
const ARROW_NAME = 'TooltipArrow';
|
|
582
583
|
|
|
583
|
-
type TooltipArrowElement =
|
|
584
|
+
type TooltipArrowElement = ComponentRef<typeof PopperPrimitive.Arrow>;
|
|
584
585
|
type PopperArrowProps = ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;
|
|
585
|
-
|
|
586
|
+
type TooltipArrowProps = PopperArrowProps;
|
|
586
587
|
|
|
587
588
|
const TooltipArrow = forwardRef<TooltipArrowElement, TooltipArrowProps>(
|
|
588
589
|
(props: TooltipScopedProps<TooltipArrowProps>, forwardedRef) => {
|
|
@@ -599,8 +600,6 @@ const TooltipArrow = forwardRef<TooltipArrowElement, TooltipArrowProps>(
|
|
|
599
600
|
|
|
600
601
|
TooltipArrow.displayName = ARROW_NAME;
|
|
601
602
|
|
|
602
|
-
/* ----------------------------------------------------------------------------------------------- */
|
|
603
|
-
|
|
604
603
|
type TooltipSide = NonNullable<TooltipContentProps['side']>;
|
|
605
604
|
|
|
606
605
|
const getExitSideFromRect = (point: Point, rect: DOMRect): TooltipSide => {
|
|
@@ -755,6 +754,10 @@ const getHullPresorted = <P extends Point>(points: Readonly<Array<P>>): Array<P>
|
|
|
755
754
|
}
|
|
756
755
|
};
|
|
757
756
|
|
|
757
|
+
//
|
|
758
|
+
// Tooltip
|
|
759
|
+
//
|
|
760
|
+
|
|
758
761
|
export const Tooltip = {
|
|
759
762
|
Provider: TooltipProvider,
|
|
760
763
|
Trigger: TooltipTrigger,
|