@dxos/react-ui 0.8.4-main.3eb6e50203 → 0.8.4-main.3fbcb4aa9b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/{chunk-6DTBPJE4.mjs → chunk-BDBC6H6V.mjs} +182 -108
- package/dist/lib/browser/chunk-BDBC6H6V.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +2961 -2056
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +70 -41
- package/dist/lib/browser/testing/index.mjs.map +4 -4
- package/dist/lib/browser/translations.mjs +18 -0
- package/dist/lib/browser/translations.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-JKHQSGNU.mjs → chunk-3JSJK2ZY.mjs} +182 -108
- package/dist/lib/node-esm/chunk-3JSJK2ZY.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +2961 -2056
- 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 +70 -41
- package/dist/lib/node-esm/testing/index.mjs.map +4 -4
- package/dist/lib/node-esm/translations.mjs +20 -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 +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/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 +43 -23
- 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 +48 -30
- package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -1
- package/dist/types/src/components/Dialog/Dialog.stories.d.ts +6 -8
- 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 +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 +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 +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 +16 -22
- package/dist/types/src/components/Input/Input.d.ts.map +1 -1
- package/dist/types/src/components/Input/Input.stories.d.ts +6 -6
- package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
- package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
- package/dist/types/src/components/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 +8 -4
- 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/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 +4 -5
- package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
- package/dist/types/src/components/Popover/Popover.d.ts +39 -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 +9 -5
- 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 +23 -15
- 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 +4 -2
- package/dist/types/src/components/Status/Status.stories.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 +1 -1
- package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
- package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts +12 -0
- package/dist/types/src/components/ThemeProvider/ThemeProvider.stories.d.ts.map +1 -0
- 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 +32 -15
- 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 +10 -10
- 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 +7 -4
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/exemplars/generics.stories.d.ts +8 -6
- 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 +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 +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 +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 +6 -22
- package/dist/types/src/primitives/Container/Container.d.ts.map +1 -1
- package/dist/types/src/primitives/Container/Container.stories.d.ts +2 -7
- package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -1
- package/dist/types/src/primitives/Container/index.d.ts +0 -1
- package/dist/types/src/primitives/Container/index.d.ts.map +1 -1
- 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 +8 -0
- package/dist/types/src/primitives/Flex/Flex.stories.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 +3 -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 +1 -1
- 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 +11 -0
- package/dist/types/src/translations.d.ts.map +1 -0
- package/dist/types/src/util/usePx.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +33 -26
- package/src/components/Avatars/Avatar.stories.tsx +5 -7
- package/src/components/Avatars/Avatar.tsx +5 -6
- package/src/components/Avatars/AvatarGroup.stories.tsx +0 -1
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +1 -2
- package/src/components/Breadcrumb/Breadcrumb.tsx +10 -10
- package/src/components/Button/Button.stories.tsx +1 -2
- package/src/components/Button/Button.tsx +11 -19
- 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 +151 -0
- package/src/components/Card/Card.tsx +512 -0
- package/src/components/Card/index.ts +5 -0
- package/src/components/Clipboard/CopyButton.tsx +6 -7
- package/src/components/Dialog/AlertDialog.stories.tsx +14 -15
- package/src/components/Dialog/AlertDialog.tsx +123 -77
- package/src/components/Dialog/Dialog.stories.tsx +90 -14
- package/src/components/Dialog/Dialog.tsx +105 -104
- 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 +43 -13
- package/src/components/Icon/Icon.tsx +14 -3
- 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 +17 -38
- package/src/components/Input/Input.tsx +20 -50
- package/src/components/Link/Link.stories.tsx +0 -1
- package/src/components/Link/Link.tsx +2 -2
- package/src/components/List/List.stories.tsx +14 -22
- package/src/components/List/List.tsx +11 -9
- package/src/components/List/ListDropIndicator.tsx +7 -8
- package/src/components/List/Tree.stories.tsx +4 -5
- package/src/components/List/Tree.tsx +0 -1
- package/src/components/List/TreeDropIndicator.tsx +6 -6
- package/src/components/List/Treegrid.stories.tsx +27 -28
- package/src/components/List/Treegrid.tsx +20 -20
- package/src/components/Main/Main.stories.tsx +3 -7
- package/src/components/Main/Main.tsx +13 -14
- package/src/components/Menu/ContextMenu.stories.tsx +0 -1
- package/src/components/Menu/ContextMenu.tsx +3 -3
- package/src/components/Menu/DropdownMenu.stories.tsx +0 -1
- package/src/components/Menu/DropdownMenu.tsx +51 -45
- package/src/components/Message/Message.stories.tsx +25 -11
- package/src/components/Message/Message.tsx +30 -15
- package/src/components/Popover/Popover.stories.tsx +5 -6
- package/src/components/Popover/Popover.tsx +59 -56
- package/src/components/ScrollArea/ScrollArea.stories.tsx +98 -39
- package/src/components/ScrollArea/ScrollArea.tsx +45 -25
- package/src/components/ScrollContainer/ScrollContainer.stories.tsx +46 -25
- package/src/components/ScrollContainer/ScrollContainer.tsx +199 -92
- package/src/components/Select/Select.stories.tsx +5 -6
- package/src/components/Select/Select.tsx +2 -2
- package/src/components/Separator/Separator.tsx +4 -7
- package/src/components/Skeleton/Skeleton.stories.tsx +12 -13
- package/src/components/Splitter/Splitter.stories.tsx +47 -37
- package/src/components/Splitter/Splitter.tsx +44 -40
- package/src/components/Status/Status.stories.tsx +19 -16
- package/src/components/Status/Status.tsx +8 -5
- package/src/components/Tag/Tag.stories.tsx +3 -9
- package/src/components/Tag/Tag.tsx +2 -2
- package/src/components/ThemeProvider/ThemeProvider.stories.tsx +31 -0
- package/src/components/ThemeProvider/ThemeProvider.tsx +7 -6
- package/src/components/ThemeProvider/index.ts +1 -1
- package/src/components/Toast/Toast.stories.tsx +0 -1
- package/src/components/Toast/Toast.tsx +22 -37
- package/src/components/Toolbar/Toolbar.stories.tsx +0 -1
- package/src/components/Toolbar/Toolbar.tsx +173 -29
- package/src/components/Tooltip/Tooltip.stories.tsx +18 -17
- package/src/components/Tooltip/Tooltip.tsx +16 -16
- package/src/components/index.ts +8 -5
- package/src/exemplars/generics.stories.tsx +12 -15
- package/src/exemplars/slot.stories.tsx +68 -61
- package/src/exemplars/tabster.stories.tsx +5 -5
- package/src/exemplars/virtualizer.stories.tsx +136 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useDensityContext.ts +2 -2
- package/src/playground/Controls.stories.tsx +0 -6
- package/src/playground/Custom.stories.tsx +13 -16
- package/src/playground/Typography.stories.tsx +1 -1
- 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 +13 -51
- package/src/primitives/Container/Container.tsx +14 -74
- package/src/primitives/Container/index.ts +0 -1
- package/src/primitives/Flex/Flex.stories.tsx +57 -0
- package/src/primitives/Flex/Flex.tsx +20 -19
- 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 +3 -0
- package/src/testing/Loading.tsx +47 -0
- package/src/testing/decorators/withLayout.tsx +15 -11
- package/src/testing/decorators/withLayoutVariants.tsx +18 -21
- package/src/testing/decorators/withTheme.tsx +10 -7
- package/src/testing/index.ts +2 -0
- package/src/translations.ts +19 -0
- package/src/util/usePx.ts +1 -0
- package/dist/lib/browser/chunk-6DTBPJE4.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JKHQSGNU.mjs.map +0 -7
- package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +0 -22
- 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/primitives/Container/Layout.d.ts +0 -18
- package/dist/types/src/primitives/Container/Layout.d.ts.map +0 -1
- package/dist/types/src/primitives/Container/Layout.stories.d.ts +0 -10
- package/dist/types/src/primitives/Container/Layout.stories.d.ts.map +0 -1
- package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +0 -57
- package/src/components/AnchoredOverflow/index.ts +0 -5
- package/src/primitives/Container/Layout.stories.tsx +0 -57
- package/src/primitives/Container/Layout.tsx +0 -61
|
@@ -2,14 +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
|
-
import React, {
|
|
9
|
+
import React, { forwardRef } from 'react';
|
|
10
|
+
import { useTranslation } from 'react-i18next';
|
|
8
11
|
|
|
9
|
-
import { type ToolbarStyleProps } from '@dxos/ui-theme';
|
|
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';
|
|
10
16
|
|
|
11
17
|
import { useThemeContext } from '../../hooks';
|
|
12
|
-
import { type ThemedClassName } from '../../util';
|
|
13
18
|
import {
|
|
14
19
|
Button,
|
|
15
20
|
ButtonGroup,
|
|
@@ -22,43 +27,57 @@ import {
|
|
|
22
27
|
type ToggleProps,
|
|
23
28
|
} from '../Button';
|
|
24
29
|
import { Link, type LinkProps } from '../Link';
|
|
30
|
+
import { DropdownMenu } from '../Menu';
|
|
25
31
|
import { Separator, type SeparatorProps } from '../Separator';
|
|
26
32
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const
|
|
36
|
-
(
|
|
37
|
-
{ classNames, children, density, disabled, layoutManaged, textBlockWidth: textBlockWidthProp, ...props },
|
|
38
|
-
forwardedRef,
|
|
39
|
-
) => {
|
|
33
|
+
//
|
|
34
|
+
// Root
|
|
35
|
+
//
|
|
36
|
+
|
|
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);
|
|
40
42
|
const { tx } = useThemeContext();
|
|
41
|
-
const InnerRoot = textBlockWidthProp ? 'div' : Fragment;
|
|
42
|
-
const innerRootProps = textBlockWidthProp
|
|
43
|
-
? {
|
|
44
|
-
role: 'none',
|
|
45
|
-
className: tx('toolbar.inner', { layoutManaged }, classNames),
|
|
46
|
-
}
|
|
47
|
-
: {};
|
|
48
43
|
|
|
49
44
|
return (
|
|
50
45
|
<ToolbarPrimitive.Root
|
|
51
|
-
{...
|
|
52
|
-
|
|
53
|
-
|
|
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)}
|
|
54
52
|
ref={forwardedRef}
|
|
55
53
|
>
|
|
56
|
-
|
|
54
|
+
{children}
|
|
57
55
|
</ToolbarPrimitive.Root>
|
|
58
56
|
);
|
|
59
57
|
},
|
|
60
58
|
);
|
|
61
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
|
+
|
|
62
81
|
type ToolbarButtonProps = ButtonProps;
|
|
63
82
|
|
|
64
83
|
const ToolbarButton = forwardRef<HTMLButtonElement, ToolbarButtonProps>((props, forwardedRef) => {
|
|
@@ -69,6 +88,10 @@ const ToolbarButton = forwardRef<HTMLButtonElement, ToolbarButtonProps>((props,
|
|
|
69
88
|
);
|
|
70
89
|
});
|
|
71
90
|
|
|
91
|
+
//
|
|
92
|
+
// IconButton
|
|
93
|
+
//
|
|
94
|
+
|
|
72
95
|
type ToolbarIconButtonProps = IconButtonProps;
|
|
73
96
|
|
|
74
97
|
const ToolbarIconButton = forwardRef<HTMLButtonElement, ToolbarIconButtonProps>((props, forwardedRef) => {
|
|
@@ -89,6 +112,10 @@ const ToolbarToggle = forwardRef<HTMLButtonElement, ToolbarToggleProps>((props,
|
|
|
89
112
|
);
|
|
90
113
|
});
|
|
91
114
|
|
|
115
|
+
//
|
|
116
|
+
// Link
|
|
117
|
+
//
|
|
118
|
+
|
|
92
119
|
type ToolbarLinkProps = LinkProps;
|
|
93
120
|
|
|
94
121
|
const ToolbarLink = forwardRef<HTMLAnchorElement, ToolbarLinkProps>((props, forwardedRef) => {
|
|
@@ -105,6 +132,10 @@ type ToolbarToggleGroupProps = (
|
|
|
105
132
|
) &
|
|
106
133
|
ButtonGroupProps;
|
|
107
134
|
|
|
135
|
+
//
|
|
136
|
+
// ToggleGroup
|
|
137
|
+
//
|
|
138
|
+
|
|
108
139
|
const ToolbarToggleGroup = forwardRef<HTMLDivElement, ToolbarToggleGroupProps>(
|
|
109
140
|
({ classNames, children, elevation, ...props }, forwardedRef) => {
|
|
110
141
|
return (
|
|
@@ -150,13 +181,17 @@ const ToolbarToggleGroupIconItem = forwardRef<HTMLButtonElement, ToolbarToggleGr
|
|
|
150
181
|
},
|
|
151
182
|
);
|
|
152
183
|
|
|
184
|
+
//
|
|
185
|
+
// Separator
|
|
186
|
+
//
|
|
187
|
+
|
|
153
188
|
type ToolbarSeparatorProps = SeparatorProps & { variant?: 'gap' | 'line' };
|
|
154
189
|
|
|
155
190
|
const ToolbarSeparator = forwardRef<HTMLDivElement, ToolbarSeparatorProps>(
|
|
156
|
-
({ variant = '
|
|
191
|
+
({ variant = 'gap', ...props }, forwardedRef) => {
|
|
157
192
|
return variant === 'line' ? (
|
|
158
193
|
<ToolbarPrimitive.Separator asChild>
|
|
159
|
-
<Separator {...props} ref={forwardedRef} />
|
|
194
|
+
<Separator orientation='vertical' {...props} ref={forwardedRef} />
|
|
160
195
|
</ToolbarPrimitive.Separator>
|
|
161
196
|
) : (
|
|
162
197
|
<ToolbarPrimitive.Separator className='grow' ref={forwardedRef} />
|
|
@@ -164,8 +199,109 @@ const ToolbarSeparator = forwardRef<HTMLDivElement, ToolbarSeparatorProps>(
|
|
|
164
199
|
},
|
|
165
200
|
);
|
|
166
201
|
|
|
202
|
+
//
|
|
203
|
+
// DragHandle
|
|
204
|
+
//
|
|
205
|
+
|
|
206
|
+
type ToolbarDragHandleProps = { testId?: string; label?: string };
|
|
207
|
+
|
|
208
|
+
const ToolbarDragHandle = forwardRef<HTMLButtonElement, ToolbarDragHandleProps>(
|
|
209
|
+
({ testId = 'drag-handle', label }, forwardedRef) => {
|
|
210
|
+
const { t } = useTranslation(translationKey);
|
|
211
|
+
return (
|
|
212
|
+
<ToolbarIconButton
|
|
213
|
+
data-testid={testId}
|
|
214
|
+
tabIndex={-1}
|
|
215
|
+
noTooltip
|
|
216
|
+
iconOnly
|
|
217
|
+
icon='ph--dots-six-vertical--regular'
|
|
218
|
+
variant='ghost'
|
|
219
|
+
label={label ?? t('toolbar-drag-handle.label')}
|
|
220
|
+
classNames='dx-focus-ring-none cursor-pointer'
|
|
221
|
+
disabled={!forwardedRef}
|
|
222
|
+
ref={forwardedRef}
|
|
223
|
+
/>
|
|
224
|
+
);
|
|
225
|
+
},
|
|
226
|
+
);
|
|
227
|
+
|
|
228
|
+
//
|
|
229
|
+
// CloseIconButton
|
|
230
|
+
//
|
|
231
|
+
|
|
232
|
+
type ToolbarCloseIconButtonProps = { onClick?: () => void; label?: string };
|
|
233
|
+
|
|
234
|
+
const ToolbarCloseIconButton = forwardRef<HTMLButtonElement, ToolbarCloseIconButtonProps>(
|
|
235
|
+
({ onClick, label }, forwardedRef) => {
|
|
236
|
+
const { t } = useTranslation(translationKey);
|
|
237
|
+
|
|
238
|
+
return (
|
|
239
|
+
<ToolbarIconButton
|
|
240
|
+
iconOnly
|
|
241
|
+
icon='ph--x--regular'
|
|
242
|
+
variant='ghost'
|
|
243
|
+
label={label ?? t('toolbar-close.label')}
|
|
244
|
+
classNames='cursor-pointer'
|
|
245
|
+
onClick={onClick}
|
|
246
|
+
ref={forwardedRef}
|
|
247
|
+
/>
|
|
248
|
+
);
|
|
249
|
+
},
|
|
250
|
+
);
|
|
251
|
+
|
|
252
|
+
//
|
|
253
|
+
// Menu
|
|
254
|
+
//
|
|
255
|
+
|
|
256
|
+
type ToolbarMenuItem<T extends any | void = void> = {
|
|
257
|
+
label: string;
|
|
258
|
+
onClick: (context: T) => void;
|
|
259
|
+
};
|
|
260
|
+
|
|
261
|
+
type ToolbarMenuProps<T extends any | void = void> = {
|
|
262
|
+
context?: T;
|
|
263
|
+
items?: ToolbarMenuItem<T>[];
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
// TODO(burdon): Make slottable.
|
|
267
|
+
const ToolbarMenu = <T extends any | void = void>({ context, items }: ToolbarMenuProps<T>) => {
|
|
268
|
+
const { t } = useTranslation(translationKey);
|
|
269
|
+
|
|
270
|
+
return (
|
|
271
|
+
<DropdownMenu.Root>
|
|
272
|
+
<DropdownMenu.Trigger disabled={!items?.length} asChild>
|
|
273
|
+
<ToolbarIconButton
|
|
274
|
+
iconOnly
|
|
275
|
+
variant='ghost'
|
|
276
|
+
icon='ph--dots-three-vertical--regular'
|
|
277
|
+
label={t('toolbar-menu.label')}
|
|
278
|
+
/>
|
|
279
|
+
</DropdownMenu.Trigger>
|
|
280
|
+
{(items?.length ?? 0) > 0 && (
|
|
281
|
+
<DropdownMenu.Portal>
|
|
282
|
+
<DropdownMenu.Content>
|
|
283
|
+
<DropdownMenu.Viewport>
|
|
284
|
+
{items?.map(({ label, onClick: onSelect }, index) => (
|
|
285
|
+
<DropdownMenu.Item key={index} onSelect={() => onSelect(context as T)}>
|
|
286
|
+
{label}
|
|
287
|
+
</DropdownMenu.Item>
|
|
288
|
+
))}
|
|
289
|
+
</DropdownMenu.Viewport>
|
|
290
|
+
<DropdownMenu.Arrow />
|
|
291
|
+
</DropdownMenu.Content>
|
|
292
|
+
</DropdownMenu.Portal>
|
|
293
|
+
)}
|
|
294
|
+
</DropdownMenu.Root>
|
|
295
|
+
);
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
//
|
|
299
|
+
// Toolbar
|
|
300
|
+
//
|
|
301
|
+
|
|
167
302
|
export const Toolbar = {
|
|
168
303
|
Root: ToolbarRoot,
|
|
304
|
+
Text: ToolbarText,
|
|
169
305
|
Button: ToolbarButton,
|
|
170
306
|
IconButton: ToolbarIconButton,
|
|
171
307
|
Link: ToolbarLink,
|
|
@@ -174,10 +310,14 @@ export const Toolbar = {
|
|
|
174
310
|
ToggleGroupItem: ToolbarToggleGroupItem,
|
|
175
311
|
ToggleGroupIconItem: ToolbarToggleGroupIconItem,
|
|
176
312
|
Separator: ToolbarSeparator,
|
|
313
|
+
DragHandle: ToolbarDragHandle,
|
|
314
|
+
CloseIconButton: ToolbarCloseIconButton,
|
|
315
|
+
Menu: ToolbarMenu,
|
|
177
316
|
};
|
|
178
317
|
|
|
179
318
|
export type {
|
|
180
319
|
ToolbarRootProps,
|
|
320
|
+
ToolbarTextProps,
|
|
181
321
|
ToolbarButtonProps,
|
|
182
322
|
ToolbarIconButtonProps,
|
|
183
323
|
ToolbarLinkProps,
|
|
@@ -186,4 +326,8 @@ export type {
|
|
|
186
326
|
ToolbarToggleGroupItemProps,
|
|
187
327
|
ToolbarToggleGroupIconItemProps,
|
|
188
328
|
ToolbarSeparatorProps,
|
|
329
|
+
ToolbarDragHandleProps,
|
|
330
|
+
ToolbarCloseIconButtonProps,
|
|
331
|
+
ToolbarMenuItem,
|
|
332
|
+
ToolbarMenuProps,
|
|
189
333
|
};
|
|
@@ -5,29 +5,30 @@
|
|
|
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 }:
|
|
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
34
|
title: 'ui/react-ui-core/components/Tooltip',
|
|
@@ -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,
|
|
@@ -60,13 +60,13 @@ type TooltipContextValue = {
|
|
|
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 {
|
|
@@ -246,7 +246,7 @@ const TooltipVirtualTrigger = ({
|
|
|
246
246
|
|
|
247
247
|
const TRIGGER_NAME = 'TooltipTrigger';
|
|
248
248
|
|
|
249
|
-
type TooltipTriggerElement =
|
|
249
|
+
type TooltipTriggerElement = ComponentRef<typeof Primitive.button>;
|
|
250
250
|
type PrimitiveButtonProps = ComponentPropsWithoutRef<typeof Primitive.button>;
|
|
251
251
|
type TooltipTriggerProps = PrimitiveButtonProps &
|
|
252
252
|
Pick<TooltipProps, 'delayDuration'> & {
|
|
@@ -334,7 +334,7 @@ const [PortalProvider, usePortalContext] = createTooltipContext<PortalContextVal
|
|
|
334
334
|
});
|
|
335
335
|
|
|
336
336
|
type PortalProps = ComponentPropsWithoutRef<typeof PortalPrimitive>;
|
|
337
|
-
|
|
337
|
+
type TooltipPortalProps = {
|
|
338
338
|
children?: ReactNode;
|
|
339
339
|
/**
|
|
340
340
|
* Specify a container element to portal the content into.
|
|
@@ -345,7 +345,7 @@ interface TooltipPortalProps {
|
|
|
345
345
|
* controlling animation with React animation libraries.
|
|
346
346
|
*/
|
|
347
347
|
forceMount?: true;
|
|
348
|
-
}
|
|
348
|
+
};
|
|
349
349
|
|
|
350
350
|
const TooltipPortal: FC<TooltipPortalProps> = (props: TooltipScopedProps<TooltipPortalProps>) => {
|
|
351
351
|
const { __scopeTooltip, forceMount, children, container } = props;
|
|
@@ -370,13 +370,13 @@ TooltipPortal.displayName = PORTAL_NAME;
|
|
|
370
370
|
const CONTENT_NAME = 'TooltipContent';
|
|
371
371
|
|
|
372
372
|
type TooltipContentElement = TooltipContentImplElement;
|
|
373
|
-
|
|
373
|
+
type TooltipContentProps = TooltipContentImplProps & {
|
|
374
374
|
/**
|
|
375
375
|
* Used to force mounting when more control is needed. Useful when
|
|
376
376
|
* controlling animation with React animation libraries.
|
|
377
377
|
*/
|
|
378
378
|
forceMount?: true;
|
|
379
|
-
}
|
|
379
|
+
};
|
|
380
380
|
|
|
381
381
|
const TooltipContent = forwardRef<TooltipContentElement, TooltipContentProps>(
|
|
382
382
|
(props: TooltipScopedProps<TooltipContentProps>, forwardedRef) => {
|
|
@@ -400,7 +400,7 @@ type Point = { x: number; y: number };
|
|
|
400
400
|
type Polygon = Point[];
|
|
401
401
|
|
|
402
402
|
type TooltipContentHoverableElement = TooltipContentImplElement;
|
|
403
|
-
|
|
403
|
+
type TooltipContentHoverableProps = TooltipContentImplProps;
|
|
404
404
|
|
|
405
405
|
const TooltipContentHoverable = forwardRef<TooltipContentHoverableElement, TooltipContentHoverableProps>(
|
|
406
406
|
(props: TooltipScopedProps<TooltipContentHoverableProps>, forwardedRef) => {
|
|
@@ -479,10 +479,10 @@ const [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] =
|
|
|
479
479
|
isInside: false,
|
|
480
480
|
});
|
|
481
481
|
|
|
482
|
-
type TooltipContentImplElement =
|
|
482
|
+
type TooltipContentImplElement = ComponentRef<typeof PopperPrimitive.Content>;
|
|
483
483
|
type DismissableLayerProps = ComponentPropsWithoutRef<typeof DismissableLayer>;
|
|
484
484
|
type PopperContentProps = ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;
|
|
485
|
-
|
|
485
|
+
type TooltipContentImplProps = Omit<PopperContentProps, 'onPlaced'> & {
|
|
486
486
|
/**
|
|
487
487
|
* A more descriptive label for accessibility purpose
|
|
488
488
|
*/
|
|
@@ -498,7 +498,7 @@ interface TooltipContentImplProps extends Omit<PopperContentProps, 'onPlaced'> {
|
|
|
498
498
|
* Can be prevented.
|
|
499
499
|
*/
|
|
500
500
|
onPointerDownOutside?: DismissableLayerProps['onPointerDownOutside'];
|
|
501
|
-
}
|
|
501
|
+
};
|
|
502
502
|
|
|
503
503
|
const TooltipContentImpl = forwardRef<TooltipContentImplElement, TooltipContentImplProps>(
|
|
504
504
|
(props: TooltipScopedProps<TooltipContentImplProps>, forwardedRef) => {
|
|
@@ -580,9 +580,9 @@ TooltipContent.displayName = CONTENT_NAME;
|
|
|
580
580
|
|
|
581
581
|
const ARROW_NAME = 'TooltipArrow';
|
|
582
582
|
|
|
583
|
-
type TooltipArrowElement =
|
|
583
|
+
type TooltipArrowElement = ComponentRef<typeof PopperPrimitive.Arrow>;
|
|
584
584
|
type PopperArrowProps = ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;
|
|
585
|
-
|
|
585
|
+
type TooltipArrowProps = PopperArrowProps;
|
|
586
586
|
|
|
587
587
|
const TooltipArrow = forwardRef<TooltipArrowElement, TooltipArrowProps>(
|
|
588
588
|
(props: TooltipScopedProps<TooltipArrowProps>, forwardedRef) => {
|
package/src/components/index.ts
CHANGED
|
@@ -2,13 +2,20 @@
|
|
|
2
2
|
// Copyright 2022 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
export * from './
|
|
5
|
+
export * from './DensityProvider';
|
|
6
|
+
export * from './ElevationProvider';
|
|
7
|
+
export * from './ThemeProvider';
|
|
8
|
+
|
|
6
9
|
export * from './Avatars';
|
|
7
10
|
export * from './Breadcrumb';
|
|
8
11
|
export * from './Button';
|
|
12
|
+
export * from './Card';
|
|
9
13
|
export * from './Clipboard';
|
|
10
14
|
export * from './Dialog';
|
|
15
|
+
export * from './ErrorFallback';
|
|
16
|
+
export * from './Focus';
|
|
11
17
|
export * from './Icon';
|
|
18
|
+
export * from './Image';
|
|
12
19
|
export * from './Input';
|
|
13
20
|
export * from './Link';
|
|
14
21
|
export * from './List';
|
|
@@ -27,7 +34,3 @@ export * from './Tag';
|
|
|
27
34
|
export * from './Toast';
|
|
28
35
|
export * from './Toolbar';
|
|
29
36
|
export * from './Tooltip';
|
|
30
|
-
|
|
31
|
-
export * from './DensityProvider';
|
|
32
|
-
export * from './ElevationProvider';
|
|
33
|
-
export * from './ThemeProvider';
|
|
@@ -3,13 +3,16 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
|
-
import React
|
|
6
|
+
import React from 'react';
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { slottable } from '@dxos/ui-theme';
|
|
9
9
|
|
|
10
10
|
import { withTheme } from '../testing';
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Generic component pattern using the slottable factory.
|
|
14
|
+
*/
|
|
15
|
+
const Component = slottable<HTMLDivElement>(({ children, ...props }, forwardedRef) => {
|
|
13
16
|
return (
|
|
14
17
|
<div {...props} ref={forwardedRef}>
|
|
15
18
|
{children}
|
|
@@ -17,20 +20,10 @@ const ComponentInner = forwardRef<HTMLDivElement, ComponentProps>(({ children, .
|
|
|
17
20
|
);
|
|
18
21
|
});
|
|
19
22
|
|
|
20
|
-
ComponentInner.displayName = 'Component';
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Generic component pattern.
|
|
24
|
-
*/
|
|
25
|
-
type ComponentProps<P extends HTMLElement = any> = SlottableProps<P>;
|
|
26
|
-
|
|
27
|
-
const Component = ComponentInner as <P extends HTMLElement>(
|
|
28
|
-
props: SlottableProps<P> & { ref?: Ref<P> },
|
|
29
|
-
) => ReactElement;
|
|
30
|
-
|
|
31
23
|
const meta = {
|
|
32
24
|
title: 'ui/react-ui-core/exemplars/generics',
|
|
33
25
|
component: Component,
|
|
26
|
+
render: (props) => <Component {...props} />,
|
|
34
27
|
decorators: [withTheme()],
|
|
35
28
|
parameters: {
|
|
36
29
|
layout: 'centered',
|
|
@@ -41,4 +34,8 @@ export default meta;
|
|
|
41
34
|
|
|
42
35
|
type Story = StoryObj<typeof meta>;
|
|
43
36
|
|
|
44
|
-
export const
|
|
37
|
+
export const Default: Story = {
|
|
38
|
+
args: {
|
|
39
|
+
children: 'Hello',
|
|
40
|
+
},
|
|
41
|
+
};
|