@dxos/react-ui 0.8.4-main.c85a9c8dae → 0.8.4-main.d05539e30a
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-2FKSMWNY.mjs → chunk-LY5XDQR5.mjs} +84 -12
- package/dist/lib/browser/chunk-LY5XDQR5.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +1559 -1062
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +44 -20
- 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-ZNBLTSHI.mjs → chunk-NGKLIKP3.mjs} +84 -12
- 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 +1559 -1062
- 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 +44 -20
- 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/Button/Button.d.ts +2 -2
- package/dist/types/src/components/Button/Button.d.ts.map +1 -1
- package/dist/types/src/components/Button/Button.stories.d.ts +1 -1
- package/dist/types/src/components/Button/Button.stories.d.ts.map +1 -1
- package/dist/types/src/components/Button/IconButton.d.ts +1 -0
- package/dist/types/src/components/Button/IconButton.d.ts.map +1 -1
- package/dist/types/src/components/Button/IconButton.stories.d.ts +3 -0
- package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -1
- package/dist/types/src/components/Button/Toggle.d.ts +2 -2
- package/dist/types/src/components/Button/Toggle.d.ts.map +1 -1
- package/dist/types/src/components/Button/Toggle.stories.d.ts.map +1 -1
- package/dist/types/src/components/Button/ToggleGroup.d.ts +6 -6
- package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -1
- package/dist/types/src/components/Button/ToggleGroup.stories.d.ts +2 -2
- package/dist/types/src/components/Button/ToggleGroup.stories.d.ts.map +1 -1
- package/dist/types/src/components/Card/Card.d.ts +68 -65
- package/dist/types/src/components/Card/Card.d.ts.map +1 -1
- package/dist/types/src/components/Card/Card.stories.d.ts +2 -2
- package/dist/types/src/components/Card/Card.stories.d.ts.map +1 -1
- 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.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.map +1 -1
- package/dist/types/src/components/Dialog/AlertDialog.d.ts +42 -31
- package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -1
- package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/Dialog/Dialog.d.ts +47 -30
- package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -1
- package/dist/types/src/components/Dialog/Dialog.stories.d.ts +3 -2
- package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
- package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts.map +1 -1
- package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts.map +1 -1
- package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +14 -3
- package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts.map +1 -1
- package/dist/types/src/components/ErrorFallback/ThrowError.d.ts.map +1 -1
- 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 +4 -0
- package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
- package/dist/types/src/components/Icon/Icon.stories.d.ts +11 -3
- package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -1
- package/dist/types/src/components/Image/Image.d.ts +2 -1
- package/dist/types/src/components/Image/Image.d.ts.map +1 -1
- package/dist/types/src/components/Image/Image.stories.d.ts +3 -2
- package/dist/types/src/components/Image/Image.stories.d.ts.map +1 -1
- package/dist/types/src/components/Input/Input.d.ts +14 -17
- package/dist/types/src/components/Input/Input.d.ts.map +1 -1
- package/dist/types/src/components/Input/Input.stories.d.ts +3 -3
- 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/List/List.d.ts +5 -3
- package/dist/types/src/components/List/List.d.ts.map +1 -1
- package/dist/types/src/components/List/List.stories.d.ts +3 -1
- package/dist/types/src/components/List/List.stories.d.ts.map +1 -1
- package/dist/types/src/components/List/ListDropIndicator.d.ts.map +1 -1
- package/dist/types/src/components/List/Tree.d.ts +2 -2
- package/dist/types/src/components/List/Tree.d.ts.map +1 -1
- package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -1
- package/dist/types/src/components/List/TreeDropIndicator.d.ts.map +1 -1
- package/dist/types/src/components/List/Treegrid.d.ts +5 -9
- package/dist/types/src/components/List/Treegrid.d.ts.map +1 -1
- package/dist/types/src/components/List/Treegrid.stories.d.ts.map +1 -1
- package/dist/types/src/components/Main/Main.d.ts +7 -3
- package/dist/types/src/components/Main/Main.d.ts.map +1 -1
- 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/Menu/ContextMenu.d.ts.map +1 -1
- package/dist/types/src/components/Menu/ContextMenu.stories.d.ts.map +1 -1
- package/dist/types/src/components/Menu/DropdownMenu.d.ts +58 -49
- package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -1
- package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts +14 -1
- package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -1
- package/dist/types/src/components/Message/Message.d.ts +1 -1
- package/dist/types/src/components/Message/Message.d.ts.map +1 -1
- package/dist/types/src/components/Message/Message.stories.d.ts +2 -2
- package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
- package/dist/types/src/components/Popover/Popover.d.ts +38 -22
- 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 +12 -11
- package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
- package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +21 -10
- package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
- package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +42 -13
- package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -1
- package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +5 -6
- package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -1
- 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 +3 -3
- package/dist/types/src/components/Separator/Separator.d.ts.map +1 -1
- package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -1
- package/dist/types/src/components/Splitter/Splitter.d.ts +19 -21
- package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -1
- package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
- package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +1 -1
- package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
- package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts +1 -1
- package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts.map +1 -1
- package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +54 -55
- package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
- package/dist/types/src/components/ThemeProvider/index.d.ts +1 -1
- package/dist/types/src/components/ThemeProvider/index.d.ts.map +1 -1
- package/dist/types/src/components/Toast/Toast.d.ts +16 -16
- 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 +10 -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 +3 -0
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/exemplars/generics.stories.d.ts +6 -5
- package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -1
- package/dist/types/src/exemplars/slot.stories.d.ts +1 -0
- package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -1
- package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -1
- package/dist/types/src/exemplars/virtualizer.stories.d.ts.map +1 -1
- 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 +1 -1
- package/dist/types/src/hooks/useDensityContext.d.ts.map +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/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 +20 -19
- package/dist/types/src/primitives/Column/Column.d.ts.map +1 -1
- package/dist/types/src/primitives/Column/Column.stories.d.ts +19 -0
- package/dist/types/src/primitives/Column/Column.stories.d.ts.map +1 -1
- 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 +8 -5
- package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -1
- package/dist/types/src/primitives/Flex/Flex.stories.d.ts.map +1 -1
- package/dist/types/src/primitives/Grid/Grid.d.ts +6 -5
- package/dist/types/src/primitives/Grid/Grid.d.ts.map +1 -1
- package/dist/types/src/primitives/Grid/Grid.stories.d.ts.map +1 -1
- package/dist/types/src/primitives/Panel/Panel.d.ts +23 -22
- package/dist/types/src/primitives/Panel/Panel.d.ts.map +1 -1
- package/dist/types/src/primitives/Panel/Panel.stories.d.ts.map +1 -1
- package/dist/types/src/primitives/index.d.ts +1 -0
- package/dist/types/src/primitives/index.d.ts.map +1 -1
- 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/withLayout.d.ts.map +1 -1
- package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -1
- package/dist/types/src/testing/decorators/withTheme.d.ts +1 -1
- 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 +8 -3
- package/dist/types/src/translations.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 +29 -26
- package/src/components/Avatars/Avatar.stories.tsx +2 -3
- package/src/components/Avatars/Avatar.tsx +1 -2
- package/src/components/Avatars/AvatarGroup.stories.tsx +0 -1
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +1 -2
- package/src/components/Button/Button.stories.tsx +0 -1
- package/src/components/Button/Button.tsx +5 -13
- package/src/components/Button/IconButton.stories.tsx +6 -4
- package/src/components/Button/IconButton.tsx +3 -4
- package/src/components/Button/Toggle.stories.tsx +0 -1
- package/src/components/Button/Toggle.tsx +4 -4
- package/src/components/Button/ToggleGroup.stories.tsx +0 -1
- package/src/components/Button/ToggleGroup.tsx +12 -16
- package/src/components/Card/Card.stories.tsx +15 -15
- package/src/components/Card/Card.tsx +294 -132
- package/src/components/Carousel/Carousel.tsx +379 -0
- package/src/components/Carousel/index.ts +5 -0
- package/src/components/Clipboard/CopyButton.tsx +5 -6
- package/src/components/Dialog/AlertDialog.stories.tsx +5 -6
- package/src/components/Dialog/AlertDialog.tsx +67 -126
- package/src/components/Dialog/Dialog.stories.tsx +64 -9
- package/src/components/Dialog/Dialog.tsx +84 -88
- package/src/components/ErrorFallback/ErrorFallback.stories.tsx +3 -8
- package/src/components/ErrorFallback/ErrorStack.tsx +36 -2
- 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 +43 -13
- package/src/components/Icon/Icon.tsx +14 -3
- package/src/components/Image/Image.stories.tsx +3 -3
- package/src/components/Image/Image.tsx +31 -8
- package/src/components/Input/Input.stories.tsx +3 -4
- package/src/components/Input/Input.tsx +7 -7
- package/src/components/Link/Link.stories.tsx +0 -1
- package/src/components/Link/Link.tsx +10 -2
- package/src/components/List/List.stories.tsx +3 -4
- package/src/components/List/List.tsx +7 -6
- package/src/components/List/ListDropIndicator.tsx +0 -1
- package/src/components/List/Tree.stories.tsx +2 -3
- package/src/components/List/Tree.tsx +0 -1
- package/src/components/List/TreeDropIndicator.tsx +1 -1
- package/src/components/List/Treegrid.stories.tsx +26 -27
- package/src/components/List/Treegrid.tsx +14 -14
- package/src/components/Main/Main.stories.tsx +0 -1
- package/src/components/Main/Main.tsx +1 -2
- 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/Menu/ContextMenu.stories.tsx +0 -1
- package/src/components/Menu/DropdownMenu.stories.tsx +0 -1
- package/src/components/Menu/DropdownMenu.tsx +48 -42
- package/src/components/Message/Message.stories.tsx +7 -8
- package/src/components/Message/Message.tsx +23 -10
- package/src/components/Popover/Popover.stories.tsx +4 -5
- package/src/components/Popover/Popover.tsx +42 -42
- package/src/components/ScrollArea/ScrollArea.stories.tsx +89 -30
- package/src/components/ScrollArea/ScrollArea.tsx +41 -25
- package/src/components/ScrollContainer/ScrollContainer.stories.tsx +20 -18
- package/src/components/ScrollContainer/ScrollContainer.tsx +199 -92
- package/src/components/Select/Select.stories.tsx +5 -6
- package/src/components/Separator/Separator.tsx +4 -7
- package/src/components/Skeleton/Skeleton.stories.tsx +0 -1
- package/src/components/Splitter/Splitter.stories.tsx +29 -29
- package/src/components/Splitter/Splitter.tsx +35 -46
- package/src/components/Status/Status.stories.tsx +0 -1
- package/src/components/Status/Status.tsx +8 -5
- package/src/components/Tag/Tag.stories.tsx +0 -1
- package/src/components/ThemeProvider/ThemeProvider.stories.tsx +0 -1
- package/src/components/ThemeProvider/ThemeProvider.tsx +5 -4
- package/src/components/ThemeProvider/index.ts +1 -1
- package/src/components/Toast/Toast.stories.tsx +0 -1
- package/src/components/Toast/Toast.tsx +16 -31
- package/src/components/Toolbar/Toolbar.stories.tsx +0 -1
- package/src/components/Toolbar/Toolbar.tsx +36 -48
- package/src/components/Tooltip/Tooltip.stories.tsx +7 -8
- package/src/components/Tooltip/Tooltip.tsx +29 -29
- package/src/components/index.ts +3 -0
- package/src/exemplars/generics.stories.tsx +7 -15
- package/src/exemplars/slot.stories.tsx +64 -68
- package/src/exemplars/tabster.stories.tsx +1 -1
- package/src/exemplars/virtualizer.stories.tsx +4 -5
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useDensityContext.ts +2 -2
- package/src/playground/Custom.stories.tsx +6 -9
- package/src/primitives/Column/AUDIT.md +148 -0
- package/src/primitives/Column/Column.stories.tsx +128 -19
- package/src/primitives/Column/Column.tsx +89 -80
- 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 +0 -1
- package/src/primitives/Flex/Flex.tsx +20 -20
- package/src/primitives/Grid/Grid.stories.tsx +0 -1
- package/src/primitives/Grid/Grid.tsx +23 -36
- package/src/primitives/Panel/Panel.stories.tsx +9 -8
- package/src/primitives/Panel/Panel.tsx +43 -60
- package/src/primitives/index.ts +1 -0
- package/src/testing/Loading.tsx +47 -0
- package/src/testing/decorators/withLayout.tsx +7 -17
- package/src/testing/decorators/withTheme.tsx +10 -7
- package/src/testing/index.ts +2 -0
- package/src/translations.ts +8 -3
- package/src/util/usePx.ts +1 -0
- package/dist/lib/browser/chunk-2FKSMWNY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ZNBLTSHI.mjs.map +0 -7
|
@@ -5,21 +5,21 @@
|
|
|
5
5
|
import { createContextScope } from '@radix-ui/react-context';
|
|
6
6
|
import { Primitive } from '@radix-ui/react-primitive';
|
|
7
7
|
import { Slot } from '@radix-ui/react-slot';
|
|
8
|
-
import React
|
|
8
|
+
import React from 'react';
|
|
9
9
|
|
|
10
|
-
import {
|
|
10
|
+
import { composableProps, slottable } from '@dxos/ui-theme';
|
|
11
11
|
|
|
12
12
|
import { useThemeContext } from '../../hooks';
|
|
13
|
+
import { ThemedClassName } from '../../util';
|
|
13
14
|
|
|
14
15
|
type ScopedProps<P> = P & { __scopeSplitter?: any };
|
|
15
16
|
|
|
16
|
-
// TODO(burdon): Enable resize.
|
|
17
17
|
// TODO(burdon): Generalize horizontal/vertical and change to start/end.
|
|
18
|
-
type Mode = '
|
|
18
|
+
type Mode = 'top' | 'bottom' | 'split';
|
|
19
19
|
|
|
20
20
|
type SplitterContextValue = {
|
|
21
21
|
mode: Mode;
|
|
22
|
-
ratio
|
|
22
|
+
ratio?: number;
|
|
23
23
|
transition: number;
|
|
24
24
|
};
|
|
25
25
|
|
|
@@ -35,33 +35,20 @@ const [SplitterProvider, useSplitterContext] = createSplitterContext<SplitterCon
|
|
|
35
35
|
|
|
36
36
|
const ROOT_NAME = 'Splitter.Root';
|
|
37
37
|
|
|
38
|
-
type
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
classNames,
|
|
45
|
-
className,
|
|
46
|
-
asChild,
|
|
47
|
-
mode = 'upper',
|
|
48
|
-
ratio = 0.5,
|
|
49
|
-
transition = 250,
|
|
50
|
-
children,
|
|
51
|
-
...rootProps
|
|
52
|
-
},
|
|
53
|
-
forwardedRef,
|
|
54
|
-
) => {
|
|
38
|
+
type RootOwnProps = Partial<SplitterContextValue>;
|
|
39
|
+
|
|
40
|
+
type RootProps = RootOwnProps;
|
|
41
|
+
|
|
42
|
+
const Root = slottable<HTMLDivElement, RootOwnProps>(
|
|
43
|
+
({ asChild, mode = 'top', ratio = 0.5, transition = 250, children, ...props }, forwardedRef) => {
|
|
55
44
|
const { tx } = useThemeContext();
|
|
45
|
+
const { __scopeSplitter, ...rest } = props as ScopedProps<typeof props>;
|
|
46
|
+
const { className, ...restProps } = composableProps(rest);
|
|
56
47
|
const Comp = asChild ? Slot : Primitive.div;
|
|
48
|
+
|
|
57
49
|
return (
|
|
58
50
|
<SplitterProvider scope={__scopeSplitter} mode={mode} ratio={ratio} transition={transition}>
|
|
59
|
-
<Comp
|
|
60
|
-
role='none'
|
|
61
|
-
{...rootProps}
|
|
62
|
-
ref={forwardedRef}
|
|
63
|
-
className={tx('splitter.root', {}, [className, classNames])}
|
|
64
|
-
>
|
|
51
|
+
<Comp {...restProps} ref={forwardedRef} className={tx('splitter.root', {}, className)}>
|
|
65
52
|
{children}
|
|
66
53
|
</Comp>
|
|
67
54
|
</SplitterProvider>
|
|
@@ -77,40 +64,42 @@ Root.displayName = ROOT_NAME;
|
|
|
77
64
|
|
|
78
65
|
const PANEL_NAME = 'Splitter.Panel';
|
|
79
66
|
|
|
80
|
-
type
|
|
81
|
-
position: '
|
|
82
|
-
}
|
|
67
|
+
type PanelOwnProps = ThemedClassName<{
|
|
68
|
+
position: 'top' | 'bottom';
|
|
69
|
+
}>;
|
|
70
|
+
|
|
71
|
+
type PanelProps = PanelOwnProps;
|
|
83
72
|
|
|
84
|
-
const Panel =
|
|
85
|
-
({
|
|
86
|
-
const { mode, ratio, transition } = useSplitterContext(PANEL_NAME, __scopeSplitter);
|
|
73
|
+
const Panel = slottable<HTMLDivElement, PanelOwnProps>(
|
|
74
|
+
({ classNames, asChild, children, position, style, ...props }, forwardedRef) => {
|
|
87
75
|
const { tx } = useThemeContext();
|
|
76
|
+
const { __scopeSplitter, ...rest } = props as ScopedProps<typeof props>;
|
|
88
77
|
const Comp = asChild ? Slot : Primitive.div;
|
|
78
|
+
const { mode, ratio = 0.5, transition } = useSplitterContext(PANEL_NAME, __scopeSplitter);
|
|
79
|
+
const { className, ...restProps } = composableProps(rest);
|
|
89
80
|
|
|
90
81
|
// Calculate position and height based on mode and ratio.
|
|
91
|
-
const
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
? mode === 'upper'
|
|
82
|
+
const isTopPanel = position === 'top';
|
|
83
|
+
const topOffset = isTopPanel ? '0%' : mode === 'top' ? '100%' : mode === 'bottom' ? '0%' : `${ratio * 100}%`;
|
|
84
|
+
const height = isTopPanel
|
|
85
|
+
? mode === 'top'
|
|
96
86
|
? '100%'
|
|
97
|
-
: mode === '
|
|
87
|
+
: mode === 'bottom'
|
|
98
88
|
? '0%'
|
|
99
89
|
: `${ratio * 100}%`
|
|
100
|
-
: mode === '
|
|
90
|
+
: mode === 'bottom'
|
|
101
91
|
? '100%'
|
|
102
|
-
: mode === '
|
|
92
|
+
: mode === 'top'
|
|
103
93
|
? '0%'
|
|
104
94
|
: `${(1 - ratio) * 100}%`;
|
|
105
95
|
|
|
106
96
|
return (
|
|
107
97
|
<Comp
|
|
108
|
-
|
|
109
|
-
{...props}
|
|
98
|
+
{...restProps}
|
|
110
99
|
ref={forwardedRef}
|
|
111
|
-
className={tx('splitter.panel', {},
|
|
100
|
+
className={tx('splitter.panel', {}, className)}
|
|
112
101
|
style={{
|
|
113
|
-
top,
|
|
102
|
+
top: topOffset,
|
|
114
103
|
height,
|
|
115
104
|
transition: `top ${transition}ms, height ${transition}ms ease-out`,
|
|
116
105
|
...style,
|
|
@@ -4,14 +4,17 @@
|
|
|
4
4
|
|
|
5
5
|
import React, { type ComponentPropsWithRef, forwardRef } from 'react';
|
|
6
6
|
|
|
7
|
+
import { type StatusStyleProps } from '@dxos/ui-theme';
|
|
8
|
+
|
|
7
9
|
import { useThemeContext } from '../../hooks';
|
|
8
10
|
import { type ThemedClassName } from '../../util';
|
|
9
11
|
|
|
10
|
-
type StatusProps = ThemedClassName<
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
12
|
+
type StatusProps = ThemedClassName<
|
|
13
|
+
ComponentPropsWithRef<'span'> &
|
|
14
|
+
StatusStyleProps & {
|
|
15
|
+
progress?: number;
|
|
16
|
+
}
|
|
17
|
+
>;
|
|
15
18
|
|
|
16
19
|
const Status = forwardRef<HTMLSpanElement, StatusProps>(
|
|
17
20
|
({ classNames, children, progress = 0, indeterminate, variant, ...props }, forwardedRef) => {
|
|
@@ -9,7 +9,6 @@ import { hues } from '@dxos/ui-theme';
|
|
|
9
9
|
import { type ChromaticPalette, type MessageValence } from '@dxos/ui-types';
|
|
10
10
|
|
|
11
11
|
import { withLayout, withTheme } from '../../testing';
|
|
12
|
-
|
|
13
12
|
import { Tag } from './Tag';
|
|
14
13
|
|
|
15
14
|
const palettes = ['neutral', 'success', 'info', 'warning', 'error', ...hues] as (ChromaticPalette | MessageValence)[];
|
|
@@ -11,7 +11,6 @@ import { type SafeAreaPadding, useSafeArea } from '../../hooks';
|
|
|
11
11
|
import { hasIosKeyboard } from '../../util';
|
|
12
12
|
import { DensityProvider } from '../DensityProvider';
|
|
13
13
|
import { ElevationProvider } from '../ElevationProvider';
|
|
14
|
-
|
|
15
14
|
import { TranslationsProvider, type TranslationsProviderProps } from './TranslationsProvider';
|
|
16
15
|
|
|
17
16
|
export type ThemeContextValue = {
|
|
@@ -43,7 +42,8 @@ export const ThemeProvider = ({
|
|
|
43
42
|
tx = (_path, _styleProps, ..._options) => undefined,
|
|
44
43
|
themeMode = 'dark',
|
|
45
44
|
rootDensity = 'fine',
|
|
46
|
-
|
|
45
|
+
noCache,
|
|
46
|
+
platform,
|
|
47
47
|
}: ThemeProviderProps) => {
|
|
48
48
|
useEffect(() => {
|
|
49
49
|
if (document.defaultView) {
|
|
@@ -54,9 +54,10 @@ export const ThemeProvider = ({
|
|
|
54
54
|
}, []);
|
|
55
55
|
|
|
56
56
|
const safeAreaPadding = useSafeArea();
|
|
57
|
+
// Destructure all props explicitly so useMemo deps are stable primitives, not a new `rest` object every render.
|
|
57
58
|
const contextValue = useMemo(
|
|
58
|
-
() => ({ tx, themeMode, hasIosKeyboard: hasIosKeyboard(), safeAreaPadding,
|
|
59
|
-
[tx, themeMode, safeAreaPadding,
|
|
59
|
+
() => ({ tx, themeMode, hasIosKeyboard: hasIosKeyboard(), safeAreaPadding, noCache, platform }),
|
|
60
|
+
[tx, themeMode, safeAreaPadding, noCache, platform],
|
|
60
61
|
);
|
|
61
62
|
|
|
62
63
|
return (
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2022 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
export { type Label, isLabel, toLocalizedString } from '@dxos/ui-types';
|
|
5
|
+
export { type Label, isLabel, toLocalizedString } from '@dxos/ui-types/translations';
|
|
6
6
|
|
|
7
7
|
export * from './ThemeProvider';
|
|
8
8
|
export { useTranslation } from './TranslationsProvider';
|
|
@@ -4,47 +4,32 @@
|
|
|
4
4
|
|
|
5
5
|
import { Primitive } from '@radix-ui/react-primitive';
|
|
6
6
|
import { Slot } from '@radix-ui/react-slot';
|
|
7
|
-
import
|
|
8
|
-
ToastAction as ToastActionPrimitive,
|
|
9
|
-
type ToastActionProps as ToastActionPrimitiveProps,
|
|
10
|
-
ToastClose as ToastClosePrimitive,
|
|
11
|
-
type ToastCloseProps as ToastClosePrimitiveProps,
|
|
12
|
-
ToastDescription as ToastDescriptionPrimitive,
|
|
13
|
-
type ToastDescriptionProps as ToastDescriptionPrimitiveProps,
|
|
14
|
-
ToastProvider as ToastProviderPrimitive,
|
|
15
|
-
type ToastProviderProps as ToastProviderPrimitiveProps,
|
|
16
|
-
Root as ToastRootPrimitive,
|
|
17
|
-
type ToastProps as ToastRootPrimitiveProps,
|
|
18
|
-
ToastTitle as ToastTitlePrimitive,
|
|
19
|
-
type ToastTitleProps as ToastTitlePrimitiveProps,
|
|
20
|
-
ToastViewport as ToastViewportPrimitive,
|
|
21
|
-
type ToastViewportProps as ToastViewportPrimitiveProps,
|
|
22
|
-
} from '@radix-ui/react-toast';
|
|
7
|
+
import * as ToastPrimitive from '@radix-ui/react-toast';
|
|
23
8
|
import React, { type ComponentPropsWithRef, type FunctionComponent, forwardRef } from 'react';
|
|
24
9
|
|
|
25
10
|
import { useThemeContext } from '../../hooks';
|
|
26
11
|
import { type ThemedClassName } from '../../util';
|
|
27
12
|
import { ElevationProvider } from '../ElevationProvider';
|
|
28
13
|
|
|
29
|
-
type ToastProviderProps =
|
|
14
|
+
type ToastProviderProps = ToastPrimitive.ToastProviderProps;
|
|
30
15
|
|
|
31
|
-
const ToastProvider: FunctionComponent<ToastProviderProps> =
|
|
16
|
+
const ToastProvider: FunctionComponent<ToastProviderProps> = ToastPrimitive.Provider;
|
|
32
17
|
|
|
33
|
-
type ToastViewportProps = ThemedClassName<
|
|
18
|
+
type ToastViewportProps = ThemedClassName<ToastPrimitive.ToastViewportProps>;
|
|
34
19
|
|
|
35
20
|
const ToastViewport = forwardRef<HTMLOListElement, ToastViewportProps>(({ classNames, ...props }, forwardedRef) => {
|
|
36
21
|
const { tx } = useThemeContext();
|
|
37
|
-
return <
|
|
22
|
+
return <ToastPrimitive.Viewport {...props} className={tx('toast.viewport', {}, classNames)} ref={forwardedRef} />;
|
|
38
23
|
});
|
|
39
24
|
|
|
40
|
-
type ToastRootProps = ThemedClassName<
|
|
25
|
+
type ToastRootProps = ThemedClassName<ToastPrimitive.ToastProps>;
|
|
41
26
|
|
|
42
27
|
const ToastRoot = forwardRef<HTMLLIElement, ToastRootProps>(({ classNames, children, ...props }, forwardedRef) => {
|
|
43
28
|
const { tx } = useThemeContext();
|
|
44
29
|
return (
|
|
45
|
-
<
|
|
30
|
+
<ToastPrimitive.Root {...props} className={tx('toast.root', {}, classNames)} ref={forwardedRef}>
|
|
46
31
|
<ElevationProvider elevation='toast'>{children}</ElevationProvider>
|
|
47
|
-
</
|
|
32
|
+
</ToastPrimitive.Root>
|
|
48
33
|
);
|
|
49
34
|
});
|
|
50
35
|
|
|
@@ -56,22 +41,22 @@ const ToastBody = forwardRef<HTMLDivElement, ToastBodyProps>(({ asChild, classNa
|
|
|
56
41
|
return <Comp {...props} className={tx('toast.body', {}, classNames)} ref={forwardedRef} />;
|
|
57
42
|
});
|
|
58
43
|
|
|
59
|
-
type ToastTitleProps = ThemedClassName<
|
|
44
|
+
type ToastTitleProps = ThemedClassName<ToastPrimitive.ToastTitleProps>;
|
|
60
45
|
|
|
61
46
|
const ToastTitle = forwardRef<HTMLHeadingElement, ToastTitleProps>(
|
|
62
47
|
({ asChild, classNames, ...props }, forwardedRef) => {
|
|
63
48
|
const { tx } = useThemeContext();
|
|
64
|
-
const Comp = asChild ? Slot :
|
|
49
|
+
const Comp = asChild ? Slot : ToastPrimitive.Title;
|
|
65
50
|
return <Comp {...props} className={tx('toast.title', {}, classNames)} ref={forwardedRef} />;
|
|
66
51
|
},
|
|
67
52
|
);
|
|
68
53
|
|
|
69
|
-
type ToastDescriptionProps = ThemedClassName<
|
|
54
|
+
type ToastDescriptionProps = ThemedClassName<ToastPrimitive.ToastDescriptionProps>;
|
|
70
55
|
|
|
71
56
|
const ToastDescription = forwardRef<HTMLParagraphElement, ToastDescriptionProps>(
|
|
72
57
|
({ asChild, classNames, ...props }, forwardedRef) => {
|
|
73
58
|
const { tx } = useThemeContext();
|
|
74
|
-
const Comp = asChild ? Slot :
|
|
59
|
+
const Comp = asChild ? Slot : ToastPrimitive.Description;
|
|
75
60
|
return <Comp {...props} className={tx('toast.description', {}, classNames)} ref={forwardedRef} />;
|
|
76
61
|
},
|
|
77
62
|
);
|
|
@@ -86,13 +71,13 @@ const ToastActions = forwardRef<HTMLDivElement, ToastActionsProps>(
|
|
|
86
71
|
},
|
|
87
72
|
);
|
|
88
73
|
|
|
89
|
-
type ToastActionProps =
|
|
74
|
+
type ToastActionProps = ToastPrimitive.ToastActionProps;
|
|
90
75
|
|
|
91
|
-
const ToastAction: FunctionComponent<ToastActionProps> =
|
|
76
|
+
const ToastAction: FunctionComponent<ToastActionProps> = ToastPrimitive.Action;
|
|
92
77
|
|
|
93
|
-
type ToastCloseProps =
|
|
78
|
+
type ToastCloseProps = ToastPrimitive.ToastCloseProps;
|
|
94
79
|
|
|
95
|
-
const ToastClose: FunctionComponent<ToastCloseProps> =
|
|
80
|
+
const ToastClose: FunctionComponent<ToastCloseProps> = ToastPrimitive.Close;
|
|
96
81
|
|
|
97
82
|
export const Toast = {
|
|
98
83
|
Provider: ToastProvider,
|
|
@@ -6,15 +6,15 @@ import { Primitive } from '@radix-ui/react-primitive';
|
|
|
6
6
|
import { Slot } from '@radix-ui/react-slot';
|
|
7
7
|
import type { ToggleGroupItemProps as ToggleGroupItemPrimitiveProps } from '@radix-ui/react-toggle-group';
|
|
8
8
|
import * as ToolbarPrimitive from '@radix-ui/react-toolbar';
|
|
9
|
-
import React, {
|
|
9
|
+
import React, { forwardRef } from 'react';
|
|
10
10
|
import { useTranslation } from 'react-i18next';
|
|
11
11
|
|
|
12
|
-
import { type ToolbarStyleProps } from '@dxos/ui-theme';
|
|
12
|
+
import { composable, composableProps, slottable, type ToolbarStyleProps } from '@dxos/ui-theme';
|
|
13
13
|
import { type SlottableProps } from '@dxos/ui-types';
|
|
14
14
|
|
|
15
|
+
import { translationKey } from '#translations';
|
|
16
|
+
|
|
15
17
|
import { useThemeContext } from '../../hooks';
|
|
16
|
-
import { translationKey } from '../../translations';
|
|
17
|
-
import { type ThemedClassName } from '../../util';
|
|
18
18
|
import {
|
|
19
19
|
Button,
|
|
20
20
|
ButtonGroup,
|
|
@@ -34,36 +34,24 @@ import { Separator, type SeparatorProps } from '../Separator';
|
|
|
34
34
|
// Root
|
|
35
35
|
//
|
|
36
36
|
|
|
37
|
-
type ToolbarRootProps =
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
>;
|
|
43
|
-
|
|
44
|
-
// TODO(burdon): Implement asChild property.
|
|
45
|
-
const ToolbarRoot = forwardRef<HTMLDivElement, ToolbarRootProps>(
|
|
46
|
-
(
|
|
47
|
-
{ classNames, children, density, disabled, layoutManaged, textBlockWidth: textBlockWidthProp, ...props },
|
|
48
|
-
forwardedRef,
|
|
49
|
-
) => {
|
|
37
|
+
type ToolbarRootProps = ToolbarPrimitive.ToolbarProps & ToolbarStyleProps;
|
|
38
|
+
|
|
39
|
+
const ToolbarRoot = composable<HTMLDivElement, ToolbarRootProps>(
|
|
40
|
+
({ children, density, disabled, layoutManaged, orientation, ...props }, forwardedRef) => {
|
|
41
|
+
const { className, role, ...rest } = composableProps(props);
|
|
50
42
|
const { tx } = useThemeContext();
|
|
51
|
-
const InnerRoot = textBlockWidthProp ? 'div' : Fragment;
|
|
52
|
-
const innerRootProps = textBlockWidthProp
|
|
53
|
-
? {
|
|
54
|
-
role: 'none',
|
|
55
|
-
className: tx('toolbar.inner', { layoutManaged }, classNames),
|
|
56
|
-
}
|
|
57
|
-
: {};
|
|
58
43
|
|
|
59
44
|
return (
|
|
60
45
|
<ToolbarPrimitive.Root
|
|
61
|
-
{...
|
|
62
|
-
|
|
63
|
-
|
|
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)}
|
|
64
52
|
ref={forwardedRef}
|
|
65
53
|
>
|
|
66
|
-
|
|
54
|
+
{children}
|
|
67
55
|
</ToolbarPrimitive.Root>
|
|
68
56
|
);
|
|
69
57
|
},
|
|
@@ -73,19 +61,18 @@ const ToolbarRoot = forwardRef<HTMLDivElement, ToolbarRootProps>(
|
|
|
73
61
|
// Text
|
|
74
62
|
//
|
|
75
63
|
|
|
76
|
-
type ToolbarTextProps = SlottableProps
|
|
64
|
+
type ToolbarTextProps = SlottableProps;
|
|
77
65
|
|
|
78
|
-
const ToolbarText =
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
);
|
|
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
|
+
});
|
|
89
76
|
|
|
90
77
|
//
|
|
91
78
|
// Button
|
|
@@ -174,7 +161,7 @@ const ToolbarToggleGroupItem = forwardRef<HTMLButtonElement, ToolbarToggleGroupI
|
|
|
174
161
|
type ToolbarToggleGroupIconItemProps = Omit<ToggleGroupItemPrimitiveProps, 'className'> & IconButtonProps;
|
|
175
162
|
|
|
176
163
|
const ToolbarToggleGroupIconItem = forwardRef<HTMLButtonElement, ToolbarToggleGroupIconItemProps>(
|
|
177
|
-
({ variant, density, elevation, classNames, icon, label, iconOnly, ...props }, forwardedRef) => {
|
|
164
|
+
({ variant, density, elevation, classNames, icon, label, iconOnly, iconClassNames, ...props }, forwardedRef) => {
|
|
178
165
|
return (
|
|
179
166
|
<ToolbarPrimitive.ToolbarToggleItem {...props} asChild>
|
|
180
167
|
<IconButton
|
|
@@ -186,6 +173,7 @@ const ToolbarToggleGroupIconItem = forwardRef<HTMLButtonElement, ToolbarToggleGr
|
|
|
186
173
|
icon,
|
|
187
174
|
label,
|
|
188
175
|
iconOnly,
|
|
176
|
+
iconClassNames,
|
|
189
177
|
}}
|
|
190
178
|
ref={forwardedRef}
|
|
191
179
|
/>
|
|
@@ -204,7 +192,7 @@ const ToolbarSeparator = forwardRef<HTMLDivElement, ToolbarSeparatorProps>(
|
|
|
204
192
|
({ variant = 'gap', ...props }, forwardedRef) => {
|
|
205
193
|
return variant === 'line' ? (
|
|
206
194
|
<ToolbarPrimitive.Separator asChild>
|
|
207
|
-
<Separator {...props} ref={forwardedRef} />
|
|
195
|
+
<Separator orientation='vertical' {...props} ref={forwardedRef} />
|
|
208
196
|
</ToolbarPrimitive.Separator>
|
|
209
197
|
) : (
|
|
210
198
|
<ToolbarPrimitive.Separator className='grow' ref={forwardedRef} />
|
|
@@ -224,13 +212,13 @@ const ToolbarDragHandle = forwardRef<HTMLButtonElement, ToolbarDragHandleProps>(
|
|
|
224
212
|
return (
|
|
225
213
|
<ToolbarIconButton
|
|
226
214
|
data-testid={testId}
|
|
215
|
+
tabIndex={-1}
|
|
227
216
|
noTooltip
|
|
228
217
|
iconOnly
|
|
229
218
|
icon='ph--dots-six-vertical--regular'
|
|
230
219
|
variant='ghost'
|
|
231
|
-
label={label ?? t('toolbar
|
|
232
|
-
classNames='cursor-pointer'
|
|
233
|
-
size={5}
|
|
220
|
+
label={label ?? t('toolbar-drag-handle.label')}
|
|
221
|
+
classNames='dx-focus-ring-none cursor-pointer'
|
|
234
222
|
disabled={!forwardedRef}
|
|
235
223
|
ref={forwardedRef}
|
|
236
224
|
/>
|
|
@@ -247,14 +235,14 @@ type ToolbarCloseIconButtonProps = { onClick?: () => void; label?: string };
|
|
|
247
235
|
const ToolbarCloseIconButton = forwardRef<HTMLButtonElement, ToolbarCloseIconButtonProps>(
|
|
248
236
|
({ onClick, label }, forwardedRef) => {
|
|
249
237
|
const { t } = useTranslation(translationKey);
|
|
238
|
+
|
|
250
239
|
return (
|
|
251
240
|
<ToolbarIconButton
|
|
252
241
|
iconOnly
|
|
253
242
|
icon='ph--x--regular'
|
|
254
243
|
variant='ghost'
|
|
255
|
-
label={label ?? t('toolbar
|
|
244
|
+
label={label ?? t('toolbar-close.label')}
|
|
256
245
|
classNames='cursor-pointer'
|
|
257
|
-
size={5}
|
|
258
246
|
onClick={onClick}
|
|
259
247
|
ref={forwardedRef}
|
|
260
248
|
/>
|
|
@@ -287,7 +275,7 @@ const ToolbarMenu = <T extends any | void = void>({ context, items }: ToolbarMen
|
|
|
287
275
|
iconOnly
|
|
288
276
|
variant='ghost'
|
|
289
277
|
icon='ph--dots-three-vertical--regular'
|
|
290
|
-
label={t('toolbar
|
|
278
|
+
label={t('toolbar-menu.label')}
|
|
291
279
|
/>
|
|
292
280
|
</DropdownMenu.Trigger>
|
|
293
281
|
{(items?.length ?? 0) > 0 && (
|
|
@@ -5,22 +5,21 @@
|
|
|
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
11
|
import { Button } from '../Button';
|
|
12
|
-
|
|
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 }:
|
|
19
|
+
const DefaultStory = ({ tooltips, defaultOpen }: DefaultStoryProps) => {
|
|
21
20
|
return (
|
|
22
21
|
<Tooltip.Provider defaultOpen={defaultOpen}>
|
|
23
|
-
<div
|
|
22
|
+
<div className='w-32'>
|
|
24
23
|
{tooltips.map(({ label, content }, i) => (
|
|
25
24
|
<Tooltip.Trigger asChild key={i} content={content} side='right'>
|
|
26
25
|
<Button classNames='block w-full'>{label}</Button>
|
|
@@ -74,10 +73,10 @@ export const DefaultOpen: Story = {
|
|
|
74
73
|
export const StressTest: Story = {
|
|
75
74
|
args: {
|
|
76
75
|
defaultOpen: true,
|
|
77
|
-
tooltips:
|
|
76
|
+
tooltips: random.helpers.multiple(
|
|
78
77
|
() => ({
|
|
79
|
-
label:
|
|
80
|
-
content:
|
|
78
|
+
label: random.lorem.words(2),
|
|
79
|
+
content: random.lorem.words(5),
|
|
81
80
|
}),
|
|
82
81
|
{ count: 32 },
|
|
83
82
|
),
|