@dxos/react-ui 0.8.4-main.72ec0f3 → 0.8.4-main.74a063c4e0
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-KRSEIVRM.mjs +776 -0
- package/dist/lib/browser/chunk-KRSEIVRM.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +4157 -67
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +74 -63
- package/dist/lib/browser/testing/index.mjs.map +4 -4
- package/dist/lib/node-esm/chunk-ENYC4TYH.mjs +778 -0
- package/dist/lib/node-esm/chunk-ENYC4TYH.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +4157 -67
- 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 +74 -63
- package/dist/lib/node-esm/testing/index.mjs.map +4 -4
- 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 +3 -3
- package/dist/types/src/components/Button/Button.d.ts.map +1 -1
- package/dist/types/src/components/Button/Button.stories.d.ts.map +1 -1
- package/dist/types/src/components/Button/IconButton.d.ts +2 -1
- 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 +10 -10
- package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -1
- package/dist/types/src/components/Button/ToggleGroup.stories.d.ts +4 -4
- package/dist/types/src/components/Button/ToggleGroup.stories.d.ts.map +1 -1
- package/dist/types/src/components/Card/Card.d.ts +150 -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/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 +41 -19
- 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 +56 -21
- package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -1
- package/dist/types/src/components/Dialog/Dialog.stories.d.ts +10 -10
- package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -1
- 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 +8 -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 +44 -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 -1
- 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 +14 -0
- package/dist/types/src/components/Image/Image.d.ts.map +1 -0
- package/dist/types/src/components/Image/Image.stories.d.ts +33 -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 +7 -7
- package/dist/types/src/components/Input/Input.d.ts.map +1 -1
- package/dist/types/src/components/Input/Input.stories.d.ts +8 -8
- package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
- package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
- package/dist/types/src/components/List/List.d.ts +10 -4
- package/dist/types/src/components/List/List.d.ts.map +1 -1
- package/dist/types/src/components/List/List.stories.d.ts +8 -2
- package/dist/types/src/components/List/List.stories.d.ts.map +1 -1
- 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/Treegrid.d.ts +9 -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 +9 -10
- 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/{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 +113 -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 +1 -1
- 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 +33 -24
- 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 +32 -24
- package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
- package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +65 -8
- package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
- package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +48 -13
- package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -1
- package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +10 -5
- package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/Select/Select.d.ts +9 -9
- 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 +42 -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 +1 -8
- 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 +19 -19
- 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 +43 -17
- 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 +9 -9
- 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 +10 -5
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/exemplars/generics.stories.d.ts +23 -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/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.map +1 -1
- package/dist/types/src/primitives/Column/Column.d.ts +51 -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 +11 -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 +15 -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 +14 -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 +51 -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/withLayout.d.ts +3 -3
- package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -1
- package/dist/types/src/testing/decorators/withLayoutVariants.d.ts +1 -1
- package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -1
- 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 +11 -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 +42 -32
- 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 +3 -4
- package/src/components/Breadcrumb/Breadcrumb.tsx +11 -37
- package/src/components/Button/Button.stories.tsx +3 -4
- package/src/components/Button/Button.tsx +12 -26
- package/src/components/Button/IconButton.stories.tsx +8 -6
- package/src/components/Button/IconButton.tsx +9 -6
- package/src/components/Button/Toggle.stories.tsx +2 -3
- package/src/components/Button/Toggle.tsx +4 -4
- package/src/components/Button/ToggleGroup.stories.tsx +2 -3
- package/src/components/Button/ToggleGroup.tsx +12 -16
- package/src/components/Card/Card.stories.tsx +151 -0
- package/src/components/Card/Card.tsx +492 -0
- package/src/components/Card/index.ts +5 -0
- package/src/components/Clipboard/CopyButton.tsx +7 -8
- package/src/components/DensityProvider/DensityProvider.tsx +1 -1
- package/src/components/Dialog/AlertDialog.stories.tsx +16 -17
- package/src/components/Dialog/AlertDialog.tsx +123 -82
- package/src/components/Dialog/Dialog.stories.tsx +138 -28
- package/src/components/Dialog/Dialog.tsx +197 -71
- 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 +80 -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 +45 -15
- package/src/components/Icon/Icon.tsx +7 -3
- package/src/components/Image/Image.stories.tsx +86 -0
- package/src/components/Image/Image.tsx +223 -0
- package/src/components/Image/index.ts +5 -0
- package/src/components/Input/Input.stories.tsx +21 -41
- package/src/components/Input/Input.tsx +36 -72
- package/src/components/Link/Link.stories.tsx +2 -3
- package/src/components/Link/Link.tsx +2 -2
- package/src/components/List/List.stories.tsx +30 -34
- package/src/components/List/List.tsx +17 -21
- package/src/components/List/ListDropIndicator.tsx +7 -7
- package/src/components/List/Tree.stories.tsx +5 -6
- package/src/components/List/Tree.tsx +0 -1
- package/src/components/List/TreeDropIndicator.tsx +6 -6
- package/src/components/List/Treegrid.stories.tsx +29 -30
- package/src/components/List/Treegrid.tsx +23 -28
- package/src/components/Main/Main.stories.tsx +41 -24
- package/src/components/Main/Main.tsx +139 -83
- 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 +2 -3
- package/src/components/{Menus → Menu}/DropdownMenu.tsx +119 -109
- package/src/components/Message/Message.stories.tsx +27 -13
- package/src/components/Message/Message.tsx +43 -34
- package/src/components/Popover/Popover.stories.tsx +7 -8
- package/src/components/Popover/Popover.tsx +97 -92
- package/src/components/ScrollArea/ScrollArea.stories.tsx +223 -34
- package/src/components/ScrollArea/ScrollArea.tsx +97 -79
- package/src/components/ScrollArea/index.ts +1 -1
- package/src/components/ScrollContainer/ScrollContainer.stories.tsx +47 -25
- package/src/components/ScrollContainer/ScrollContainer.tsx +225 -109
- package/src/components/Select/Select.stories.tsx +7 -8
- 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 +2 -3
- package/src/components/Toast/Toast.tsx +22 -41
- package/src/components/Toolbar/Toolbar.stories.tsx +2 -3
- package/src/components/Toolbar/Toolbar.tsx +185 -23
- package/src/components/Tooltip/Tooltip.stories.tsx +20 -19
- package/src/components/Tooltip/Tooltip.tsx +40 -38
- package/src/components/index.ts +11 -6
- package/src/exemplars/generics.stories.tsx +41 -0
- package/src/exemplars/slot.stories.tsx +117 -0
- package/src/exemplars/tabster.stories.tsx +127 -0
- package/src/exemplars/virtualizer.stories.tsx +137 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useDensityContext.ts +3 -3
- package/src/hooks/useElevationContext.ts +1 -1
- package/src/index.ts +2 -1
- package/src/playground/Controls.stories.tsx +3 -10
- package/src/playground/Custom.stories.tsx +11 -21
- package/src/playground/Typography.stories.tsx +3 -3
- package/src/primitives/Column/AUDIT.md +354 -0
- package/src/primitives/Column/Column.stories.tsx +182 -0
- package/src/primitives/Column/Column.tsx +169 -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 +27 -0
- package/src/testing/decorators/withLayout.tsx +39 -18
- package/src/testing/decorators/withLayoutVariants.tsx +20 -23
- package/src/testing/decorators/withTheme.tsx +26 -20
- package/src/testing/index.ts +2 -0
- package/src/translations.ts +19 -0
- package/src/util/index.ts +2 -2
- package/src/util/usePx.ts +1 -0
- package/dist/lib/browser/chunk-53MI2QCM.mjs +0 -4707
- package/dist/lib/browser/chunk-53MI2QCM.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ID67AFFF.mjs +0 -4709
- package/dist/lib/node-esm/chunk-ID67AFFF.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/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/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/util/ThemedClassName.ts +0 -7
- package/src/util/domino.ts +0 -53
- /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/{Menus → Menu}/index.ts +0 -0
|
@@ -4,13 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
|
|
7
|
-
import { mx } from '@dxos/
|
|
7
|
+
import { mx, osTranslations } from '@dxos/ui-theme';
|
|
8
8
|
|
|
9
9
|
import { Button, type ButtonProps, IconButton } from '../Button';
|
|
10
10
|
import { Icon, type IconProps } from '../Icon';
|
|
11
11
|
import { useTranslation } from '../ThemeProvider';
|
|
12
12
|
import { type TooltipScopedProps, useTooltipContext } from '../Tooltip';
|
|
13
|
-
|
|
14
13
|
import { useClipboard } from './ClipboardProvider';
|
|
15
14
|
|
|
16
15
|
export type CopyButtonProps = ButtonProps &
|
|
@@ -18,10 +17,10 @@ export type CopyButtonProps = ButtonProps &
|
|
|
18
17
|
value: string;
|
|
19
18
|
};
|
|
20
19
|
|
|
21
|
-
const inactiveLabelStyles = 'invisible
|
|
20
|
+
const inactiveLabelStyles = 'invisible h-px -mb-px overflow-hidden';
|
|
22
21
|
|
|
23
22
|
export const CopyButton = ({ classNames, value, size = 5, ...props }: CopyButtonProps) => {
|
|
24
|
-
const { t } = useTranslation(
|
|
23
|
+
const { t } = useTranslation(osTranslations);
|
|
25
24
|
const { textValue, setTextValue } = useClipboard();
|
|
26
25
|
const isCopied = textValue === value;
|
|
27
26
|
return (
|
|
@@ -32,11 +31,11 @@ export const CopyButton = ({ classNames, value, size = 5, ...props }: CopyButton
|
|
|
32
31
|
data-testid='copy-invitation'
|
|
33
32
|
>
|
|
34
33
|
<div role='none' className={mx('flex gap-1 items-center', isCopied && inactiveLabelStyles)}>
|
|
35
|
-
<span className='
|
|
34
|
+
<span className='px-1'>{t('copy.label')}</span>
|
|
36
35
|
<Icon icon='ph--copy--regular' size={size} />
|
|
37
36
|
</div>
|
|
38
37
|
<div role='none' className={mx('flex gap-1 items-center', !isCopied && inactiveLabelStyles)}>
|
|
39
|
-
<span className='
|
|
38
|
+
<span className='px-1'>{t('copy-success.label')}</span>
|
|
40
39
|
<Icon icon='ph--check--regular' size={size} />
|
|
41
40
|
</div>
|
|
42
41
|
</Button>
|
|
@@ -55,10 +54,10 @@ export const CopyButtonIconOnly = ({
|
|
|
55
54
|
variant,
|
|
56
55
|
...props
|
|
57
56
|
}: TooltipScopedProps<CopyButtonIconOnlyProps>) => {
|
|
58
|
-
const { t } = useTranslation(
|
|
57
|
+
const { t } = useTranslation(osTranslations);
|
|
59
58
|
const { textValue, setTextValue } = useClipboard();
|
|
60
59
|
const isCopied = textValue === value;
|
|
61
|
-
const label = isCopied ? t('copy
|
|
60
|
+
const label = isCopied ? t('copy-success.label') : (props.label ?? t('copy.label'));
|
|
62
61
|
const { onOpen } = useTooltipContext('CopyButton', __scopeTooltip);
|
|
63
62
|
return (
|
|
64
63
|
<IconButton
|
|
@@ -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 { random } from '@dxos/random';
|
|
9
|
+
|
|
8
10
|
import { withTheme } from '../../testing';
|
|
9
11
|
import { Button } from '../Button';
|
|
10
|
-
import { Toolbar } from '../Toolbar';
|
|
11
|
-
|
|
12
12
|
import { AlertDialog } from './AlertDialog';
|
|
13
13
|
|
|
14
|
-
type
|
|
14
|
+
type DefaultStoryProps = Partial<{
|
|
15
15
|
title: string;
|
|
16
16
|
description: string;
|
|
17
|
-
body: string;
|
|
18
17
|
openTrigger: string;
|
|
19
18
|
cancelTrigger: string;
|
|
20
19
|
actionTrigger: string;
|
|
21
20
|
}>;
|
|
22
21
|
|
|
23
|
-
const DefaultStory = ({ title, description,
|
|
22
|
+
const DefaultStory = ({ title, description, openTrigger, cancelTrigger, actionTrigger }: DefaultStoryProps) => {
|
|
24
23
|
return (
|
|
25
24
|
<AlertDialog.Root defaultOpen>
|
|
26
25
|
<AlertDialog.Trigger asChild>
|
|
@@ -28,18 +27,19 @@ const DefaultStory = ({ title, description, body, openTrigger, cancelTrigger, ac
|
|
|
28
27
|
</AlertDialog.Trigger>
|
|
29
28
|
<AlertDialog.Overlay>
|
|
30
29
|
<AlertDialog.Content>
|
|
31
|
-
<AlertDialog.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
<AlertDialog.Body>
|
|
31
|
+
<AlertDialog.Title>{title}</AlertDialog.Title>
|
|
32
|
+
<AlertDialog.Description>{description}</AlertDialog.Description>
|
|
33
|
+
</AlertDialog.Body>
|
|
34
|
+
<AlertDialog.ActionBar>
|
|
35
35
|
<div className='grow' />
|
|
36
36
|
<AlertDialog.Cancel asChild>
|
|
37
|
-
<
|
|
37
|
+
<Button>{cancelTrigger}</Button>
|
|
38
38
|
</AlertDialog.Cancel>
|
|
39
39
|
<AlertDialog.Action asChild>
|
|
40
|
-
<
|
|
40
|
+
<Button variant='primary'>{actionTrigger}</Button>
|
|
41
41
|
</AlertDialog.Action>
|
|
42
|
-
</
|
|
42
|
+
</AlertDialog.ActionBar>
|
|
43
43
|
</AlertDialog.Content>
|
|
44
44
|
</AlertDialog.Overlay>
|
|
45
45
|
</AlertDialog.Root>
|
|
@@ -47,10 +47,10 @@ const DefaultStory = ({ title, description, body, openTrigger, cancelTrigger, ac
|
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
const meta = {
|
|
50
|
-
title: 'ui/react-ui-core/AlertDialog',
|
|
50
|
+
title: 'ui/react-ui-core/components/AlertDialog',
|
|
51
51
|
component: AlertDialog.Root as any,
|
|
52
52
|
render: DefaultStory as any,
|
|
53
|
-
decorators: [withTheme],
|
|
53
|
+
decorators: [withTheme()],
|
|
54
54
|
} satisfies Meta<typeof DefaultStory>;
|
|
55
55
|
|
|
56
56
|
export default meta;
|
|
@@ -59,10 +59,9 @@ type Story = StoryObj<typeof meta>;
|
|
|
59
59
|
|
|
60
60
|
export const Default: Story = {
|
|
61
61
|
args: {
|
|
62
|
-
title:
|
|
62
|
+
title: random.lorem.sentence(3),
|
|
63
|
+
description: random.lorem.paragraph(1),
|
|
63
64
|
openTrigger: 'Open AlertDialog',
|
|
64
|
-
description: 'AlertDialog description',
|
|
65
|
-
body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
|
|
66
65
|
cancelTrigger: 'Cancel',
|
|
67
66
|
actionTrigger: 'Action',
|
|
68
67
|
},
|
|
@@ -2,102 +2,89 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
6
|
-
AlertDialogAction as AlertDialogActionPrimitive,
|
|
7
|
-
type AlertDialogActionProps as AlertDialogActionPrimitiveProps,
|
|
8
|
-
AlertDialogCancel as AlertDialogCancelPrimitive,
|
|
9
|
-
type AlertDialogCancelProps as AlertDialogCancelPrimitiveProps,
|
|
10
|
-
AlertDialogContent as AlertDialogContentPrimitive,
|
|
11
|
-
type AlertDialogContentProps as AlertDialogContentPrimitiveProps,
|
|
12
|
-
AlertDialogDescription as AlertDialogDescriptionPrimitive,
|
|
13
|
-
type AlertDialogDescriptionProps as AlertDialogDescriptionPrimitiveProps,
|
|
14
|
-
AlertDialogOverlay as AlertDialogOverlayPrimitive,
|
|
15
|
-
type AlertDialogOverlayProps as AlertDialogOverlayPrimitiveProps,
|
|
16
|
-
AlertDialogPortal as AlertDialogPortalPrimitive,
|
|
17
|
-
type AlertDialogPortalProps as AlertDialogPortalPrimitiveProps,
|
|
18
|
-
Root as AlertDialogRootPrimitive,
|
|
19
|
-
type AlertDialogProps as AlertDialogRootPrimitiveProps,
|
|
20
|
-
AlertDialogTitle as AlertDialogTitlePrimitive,
|
|
21
|
-
type AlertDialogTitleProps as AlertDialogTitlePrimitiveProps,
|
|
22
|
-
AlertDialogTrigger as AlertDialogTriggerPrimitive,
|
|
23
|
-
type AlertDialogTriggerProps as AlertDialogTriggerPrimitiveProps,
|
|
24
|
-
} from '@radix-ui/react-alert-dialog';
|
|
5
|
+
import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
|
|
25
6
|
import { createContext } from '@radix-ui/react-context';
|
|
26
7
|
import React, { type ForwardRefExoticComponent, type FunctionComponent, forwardRef } from 'react';
|
|
27
8
|
|
|
9
|
+
import { type DialogSize } from '@dxos/ui-theme';
|
|
10
|
+
|
|
28
11
|
import { useThemeContext } from '../../hooks';
|
|
12
|
+
import { Column } from '../../primitives';
|
|
29
13
|
import { type ThemedClassName } from '../../util';
|
|
30
14
|
import { ElevationProvider } from '../ElevationProvider';
|
|
15
|
+
import {
|
|
16
|
+
Dialog,
|
|
17
|
+
type DialogHeaderProps,
|
|
18
|
+
type DialogBodyProps,
|
|
19
|
+
type DialogActionBarProps,
|
|
20
|
+
type DialogCloseIconButtonProps,
|
|
21
|
+
} from './Dialog';
|
|
22
|
+
|
|
23
|
+
//
|
|
24
|
+
// Root
|
|
25
|
+
//
|
|
31
26
|
|
|
32
|
-
type AlertDialogRootProps =
|
|
27
|
+
type AlertDialogRootProps = AlertDialogPrimitive.AlertDialogProps;
|
|
33
28
|
|
|
34
29
|
const AlertDialogRoot: FunctionComponent<AlertDialogRootProps> = (props) => (
|
|
35
30
|
<ElevationProvider elevation='dialog'>
|
|
36
|
-
<
|
|
31
|
+
<AlertDialogPrimitive.Root {...props} />
|
|
37
32
|
</ElevationProvider>
|
|
38
33
|
);
|
|
39
34
|
|
|
40
|
-
|
|
35
|
+
//
|
|
36
|
+
// Trigger
|
|
37
|
+
//
|
|
41
38
|
|
|
42
|
-
|
|
39
|
+
type AlertDialogTriggerProps = AlertDialogPrimitive.AlertDialogTriggerProps;
|
|
43
40
|
|
|
44
|
-
|
|
41
|
+
const AlertDialogTrigger: FunctionComponent<AlertDialogTriggerProps> = AlertDialogPrimitive.Trigger;
|
|
45
42
|
|
|
46
|
-
|
|
43
|
+
//
|
|
44
|
+
// Portal
|
|
45
|
+
//
|
|
47
46
|
|
|
48
|
-
type
|
|
47
|
+
type AlertDialogPortalProps = AlertDialogPrimitive.AlertDialogPortalProps;
|
|
49
48
|
|
|
50
|
-
const
|
|
49
|
+
const AlertDialogPortal: FunctionComponent<AlertDialogPortalProps> = AlertDialogPrimitive.Portal;
|
|
51
50
|
|
|
52
|
-
|
|
51
|
+
//
|
|
52
|
+
// Cancel
|
|
53
|
+
//
|
|
53
54
|
|
|
54
|
-
|
|
55
|
+
type AlertDialogCancelProps = AlertDialogPrimitive.AlertDialogCancelProps;
|
|
55
56
|
|
|
56
|
-
|
|
57
|
+
const AlertDialogCancel: FunctionComponent<AlertDialogCancelProps> = AlertDialogPrimitive.Cancel;
|
|
57
58
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
>(({ classNames, srOnly, ...props }, forwardedRef) => {
|
|
62
|
-
const { tx } = useThemeContext();
|
|
63
|
-
return (
|
|
64
|
-
<AlertDialogTitlePrimitive
|
|
65
|
-
{...props}
|
|
66
|
-
className={tx('dialog.title', 'dialog--alert__title', { srOnly }, classNames)}
|
|
67
|
-
ref={forwardedRef}
|
|
68
|
-
/>
|
|
69
|
-
);
|
|
70
|
-
});
|
|
59
|
+
//
|
|
60
|
+
// Action
|
|
61
|
+
//
|
|
71
62
|
|
|
72
|
-
type
|
|
63
|
+
type AlertDialogActionProps = AlertDialogPrimitive.AlertDialogActionProps;
|
|
73
64
|
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
return (
|
|
80
|
-
<AlertDialogDescriptionPrimitive
|
|
81
|
-
{...props}
|
|
82
|
-
className={tx('dialog.description', 'dialog--alert__description', { srOnly }, classNames)}
|
|
83
|
-
ref={forwardedRef}
|
|
84
|
-
/>
|
|
85
|
-
);
|
|
86
|
-
});
|
|
65
|
+
const AlertDialogAction: FunctionComponent<AlertDialogActionProps> = AlertDialogPrimitive.Action;
|
|
66
|
+
|
|
67
|
+
//
|
|
68
|
+
// Context
|
|
69
|
+
//
|
|
87
70
|
|
|
88
71
|
type OverlayLayoutContextValue = { inOverlayLayout?: boolean };
|
|
72
|
+
|
|
89
73
|
const ALERT_DIALOG_OVERLAY_NAME = 'AlertDialogOverlay';
|
|
90
74
|
const ALERT_DIALOG_CONTENT_NAME = 'AlertDialogContent';
|
|
75
|
+
|
|
91
76
|
const [OverlayLayoutProvider, useOverlayLayoutContext] = createContext<OverlayLayoutContextValue>(
|
|
92
77
|
ALERT_DIALOG_OVERLAY_NAME,
|
|
93
|
-
{
|
|
94
|
-
inOverlayLayout: false,
|
|
95
|
-
},
|
|
78
|
+
{ inOverlayLayout: false },
|
|
96
79
|
);
|
|
97
80
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
81
|
+
//
|
|
82
|
+
// Overlay
|
|
83
|
+
//
|
|
84
|
+
|
|
85
|
+
type AlertDialogOverlayProps = ThemedClassName<
|
|
86
|
+
AlertDialogPrimitive.AlertDialogOverlayProps & { blockAlign?: 'center' | 'start' | 'end' }
|
|
87
|
+
>;
|
|
101
88
|
|
|
102
89
|
const AlertDialogOverlay: ForwardRefExoticComponent<AlertDialogOverlayProps> = forwardRef<
|
|
103
90
|
HTMLDivElement,
|
|
@@ -105,56 +92,105 @@ const AlertDialogOverlay: ForwardRefExoticComponent<AlertDialogOverlayProps> = f
|
|
|
105
92
|
>(({ classNames, children, blockAlign, ...props }, forwardedRef) => {
|
|
106
93
|
const { tx } = useThemeContext();
|
|
107
94
|
return (
|
|
108
|
-
<
|
|
95
|
+
<AlertDialogPrimitive.Overlay
|
|
109
96
|
{...props}
|
|
110
|
-
className={tx(
|
|
111
|
-
'dialog.overlay',
|
|
112
|
-
'dialog--alert__overlay',
|
|
113
|
-
{},
|
|
114
|
-
classNames,
|
|
115
|
-
'data-[block-align=start]:justify-center',
|
|
116
|
-
'data-[block-align=start]:items-start',
|
|
117
|
-
'data-[block-align=center]:place-content-center',
|
|
118
|
-
)}
|
|
119
|
-
ref={forwardedRef}
|
|
120
97
|
data-block-align={blockAlign}
|
|
98
|
+
className={tx('dialog.overlay', {}, classNames)}
|
|
99
|
+
ref={forwardedRef}
|
|
121
100
|
>
|
|
122
101
|
<OverlayLayoutProvider inOverlayLayout>{children}</OverlayLayoutProvider>
|
|
123
|
-
</
|
|
102
|
+
</AlertDialogPrimitive.Overlay>
|
|
124
103
|
);
|
|
125
104
|
});
|
|
126
105
|
|
|
127
106
|
AlertDialogOverlay.displayName = ALERT_DIALOG_OVERLAY_NAME;
|
|
128
107
|
|
|
129
|
-
|
|
108
|
+
//
|
|
109
|
+
// Content
|
|
110
|
+
//
|
|
111
|
+
|
|
112
|
+
type AlertDialogContentProps = ThemedClassName<AlertDialogPrimitive.AlertDialogContentProps> & { size?: DialogSize };
|
|
130
113
|
|
|
131
114
|
const AlertDialogContent: ForwardRefExoticComponent<AlertDialogContentProps> = forwardRef<
|
|
132
115
|
HTMLDivElement,
|
|
133
116
|
AlertDialogContentProps
|
|
134
|
-
>(({ classNames, children, ...props }, forwardedRef) => {
|
|
117
|
+
>(({ classNames, children, size = 'md', ...props }, forwardedRef) => {
|
|
135
118
|
const { tx } = useThemeContext();
|
|
136
119
|
const { inOverlayLayout } = useOverlayLayoutContext(ALERT_DIALOG_CONTENT_NAME);
|
|
137
120
|
return (
|
|
138
|
-
<
|
|
121
|
+
<AlertDialogPrimitive.Content
|
|
139
122
|
{...props}
|
|
140
|
-
className={tx('dialog.content',
|
|
123
|
+
className={tx('dialog.content', { inOverlayLayout, size }, classNames)}
|
|
124
|
+
// NOTE: Radix warning unless set to undefined.
|
|
125
|
+
// https://www.radix-ui.com/primitives/docs/components/dialog#description
|
|
126
|
+
aria-describedby={undefined}
|
|
141
127
|
ref={forwardedRef}
|
|
142
128
|
>
|
|
143
|
-
|
|
144
|
-
|
|
129
|
+
<Column.Root classNames='dx-expander' gutter='sm'>
|
|
130
|
+
{children}
|
|
131
|
+
</Column.Root>
|
|
132
|
+
</AlertDialogPrimitive.Content>
|
|
145
133
|
);
|
|
146
134
|
});
|
|
147
135
|
|
|
148
136
|
AlertDialogContent.displayName = ALERT_DIALOG_CONTENT_NAME;
|
|
149
137
|
|
|
138
|
+
//
|
|
139
|
+
// Title
|
|
140
|
+
//
|
|
141
|
+
|
|
142
|
+
type AlertDialogTitleProps = ThemedClassName<AlertDialogPrimitive.AlertDialogTitleProps> & { srOnly?: boolean };
|
|
143
|
+
|
|
144
|
+
const AlertDialogTitle: ForwardRefExoticComponent<AlertDialogTitleProps> = forwardRef<
|
|
145
|
+
HTMLHeadingElement,
|
|
146
|
+
AlertDialogTitleProps
|
|
147
|
+
>(({ classNames, srOnly, ...props }, forwardedRef) => {
|
|
148
|
+
const { tx } = useThemeContext();
|
|
149
|
+
return (
|
|
150
|
+
<AlertDialogPrimitive.Title {...props} className={tx('dialog.title', { srOnly }, classNames)} ref={forwardedRef} />
|
|
151
|
+
);
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
//
|
|
155
|
+
// Description
|
|
156
|
+
//
|
|
157
|
+
|
|
158
|
+
type AlertDialogDescriptionProps = ThemedClassName<AlertDialogPrimitive.AlertDialogDescriptionProps> & {
|
|
159
|
+
srOnly?: boolean;
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
const AlertDialogDescription: ForwardRefExoticComponent<AlertDialogDescriptionProps> = forwardRef<
|
|
163
|
+
HTMLParagraphElement,
|
|
164
|
+
AlertDialogDescriptionProps
|
|
165
|
+
>(({ classNames, srOnly, ...props }, forwardedRef) => {
|
|
166
|
+
const { tx } = useThemeContext();
|
|
167
|
+
return (
|
|
168
|
+
<AlertDialogPrimitive.Description
|
|
169
|
+
{...props}
|
|
170
|
+
className={tx('dialog.description', { srOnly }, classNames)}
|
|
171
|
+
ref={forwardedRef}
|
|
172
|
+
/>
|
|
173
|
+
);
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
//
|
|
177
|
+
// AlertDialog
|
|
178
|
+
//
|
|
179
|
+
|
|
150
180
|
export const AlertDialog = {
|
|
151
181
|
Root: AlertDialogRoot,
|
|
152
182
|
Trigger: AlertDialogTrigger,
|
|
153
183
|
Portal: AlertDialogPortal,
|
|
154
184
|
Overlay: AlertDialogOverlay,
|
|
155
185
|
Content: AlertDialogContent,
|
|
186
|
+
// Shared with Dialog.
|
|
187
|
+
Header: Dialog.Header,
|
|
188
|
+
Body: Dialog.Body,
|
|
156
189
|
Title: AlertDialogTitle,
|
|
157
190
|
Description: AlertDialogDescription,
|
|
191
|
+
ActionBar: Dialog.ActionBar,
|
|
192
|
+
CloseIconButton: Dialog.CloseIconButton,
|
|
193
|
+
// AlertDialog-specific dismissal.
|
|
158
194
|
Cancel: AlertDialogCancel,
|
|
159
195
|
Action: AlertDialogAction,
|
|
160
196
|
};
|
|
@@ -169,4 +205,9 @@ export type {
|
|
|
169
205
|
AlertDialogDescriptionProps,
|
|
170
206
|
AlertDialogCancelProps,
|
|
171
207
|
AlertDialogActionProps,
|
|
208
|
+
// Re-export shared types.
|
|
209
|
+
DialogHeaderProps as AlertDialogHeaderProps,
|
|
210
|
+
DialogBodyProps as AlertDialogBodyProps,
|
|
211
|
+
DialogActionBarProps as AlertDialogActionBarProps,
|
|
212
|
+
DialogCloseIconButtonProps as AlertDialogCloseIconButtonProps,
|
|
172
213
|
};
|
|
@@ -5,34 +5,94 @@
|
|
|
5
5
|
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
|
|
8
|
+
import { random } from '@dxos/random';
|
|
9
|
+
|
|
8
10
|
import { withTheme } from '../../testing';
|
|
9
11
|
import { Button } from '../Button';
|
|
12
|
+
import { Input } from '../Input';
|
|
13
|
+
import { ScrollArea } from '../ScrollArea';
|
|
14
|
+
import { Dialog, type DialogContentProps } from './Dialog';
|
|
10
15
|
|
|
11
|
-
|
|
16
|
+
type DefaultStoryProps = Pick<DialogContentProps, 'size'> &
|
|
17
|
+
Partial<{
|
|
18
|
+
title: string;
|
|
19
|
+
description: string;
|
|
20
|
+
openTrigger: string;
|
|
21
|
+
closeTrigger: string;
|
|
22
|
+
blockAlign: 'start' | 'center';
|
|
23
|
+
}>;
|
|
12
24
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Standard Dialog with non-scrolling content in Dialog.Body.
|
|
27
|
+
* Dialog.Body delegates to Column.Content, which applies gutter padding via `px-[var(--gutter)]`.
|
|
28
|
+
*/
|
|
29
|
+
const DefaultStory = ({ size, title, description, openTrigger, closeTrigger, blockAlign }: DefaultStoryProps) => {
|
|
30
|
+
return (
|
|
31
|
+
<Dialog.Root defaultOpen modal>
|
|
32
|
+
<Dialog.Trigger asChild>
|
|
33
|
+
<Button>{openTrigger}</Button>
|
|
34
|
+
</Dialog.Trigger>
|
|
35
|
+
<Dialog.Overlay blockAlign={blockAlign}>
|
|
36
|
+
<Dialog.Content size={size}>
|
|
37
|
+
<Dialog.Header>
|
|
38
|
+
<Dialog.Title>{title}</Dialog.Title>
|
|
39
|
+
{closeTrigger && (
|
|
40
|
+
<Dialog.Close asChild>
|
|
41
|
+
<Dialog.CloseIconButton />
|
|
42
|
+
</Dialog.Close>
|
|
43
|
+
)}
|
|
44
|
+
</Dialog.Header>
|
|
45
|
+
<Dialog.Body>
|
|
46
|
+
<Dialog.Description>{description}</Dialog.Description>
|
|
47
|
+
<Input.Root>
|
|
48
|
+
<Input.Label>Value</Input.Label>
|
|
49
|
+
<Input.TextInput placeholder='Enter value' />
|
|
50
|
+
</Input.Root>
|
|
51
|
+
</Dialog.Body>
|
|
52
|
+
<Dialog.ActionBar>
|
|
53
|
+
<Dialog.Close asChild>
|
|
54
|
+
<Button variant='primary'>{closeTrigger}</Button>
|
|
55
|
+
</Dialog.Close>
|
|
56
|
+
</Dialog.ActionBar>
|
|
57
|
+
</Dialog.Content>
|
|
58
|
+
</Dialog.Overlay>
|
|
59
|
+
</Dialog.Root>
|
|
60
|
+
);
|
|
61
|
+
};
|
|
21
62
|
|
|
22
|
-
|
|
63
|
+
/**
|
|
64
|
+
* Dialog with a ScrollArea child inside Dialog.Body.
|
|
65
|
+
* The ScrollArea breaks out of Body's gutter padding via `--gutter-offset`
|
|
66
|
+
* and applies its own asymmetric padding (accounting for scrollbar width).
|
|
67
|
+
*/
|
|
68
|
+
const ScrollingStory = ({ size, title, description, openTrigger, closeTrigger, blockAlign }: DefaultStoryProps) => {
|
|
23
69
|
return (
|
|
24
|
-
<Dialog.Root defaultOpen>
|
|
70
|
+
<Dialog.Root defaultOpen modal>
|
|
25
71
|
<Dialog.Trigger asChild>
|
|
26
72
|
<Button>{openTrigger}</Button>
|
|
27
73
|
</Dialog.Trigger>
|
|
28
74
|
<Dialog.Overlay blockAlign={blockAlign}>
|
|
29
|
-
<Dialog.Content>
|
|
30
|
-
<Dialog.
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
75
|
+
<Dialog.Content size={size}>
|
|
76
|
+
<Dialog.Header>
|
|
77
|
+
<Dialog.Title>{title}</Dialog.Title>
|
|
78
|
+
{closeTrigger && (
|
|
79
|
+
<Dialog.Close asChild>
|
|
80
|
+
<Dialog.CloseIconButton />
|
|
81
|
+
</Dialog.Close>
|
|
82
|
+
)}
|
|
83
|
+
</Dialog.Header>
|
|
84
|
+
<Dialog.Body>
|
|
85
|
+
<ScrollArea.Root orientation='vertical' padding thin>
|
|
86
|
+
<ScrollArea.Viewport>
|
|
87
|
+
<Dialog.Description>{description}</Dialog.Description>
|
|
88
|
+
</ScrollArea.Viewport>
|
|
89
|
+
</ScrollArea.Root>
|
|
90
|
+
</Dialog.Body>
|
|
91
|
+
<Dialog.ActionBar>
|
|
92
|
+
<Dialog.Close asChild>
|
|
93
|
+
<Button variant='primary'>{closeTrigger}</Button>
|
|
94
|
+
</Dialog.Close>
|
|
95
|
+
</Dialog.ActionBar>
|
|
36
96
|
</Dialog.Content>
|
|
37
97
|
</Dialog.Overlay>
|
|
38
98
|
</Dialog.Root>
|
|
@@ -40,15 +100,10 @@ const DefaultStory = ({ title, openTrigger, description, body, closeTrigger, blo
|
|
|
40
100
|
};
|
|
41
101
|
|
|
42
102
|
const meta = {
|
|
43
|
-
title: 'ui/react-ui-core/Dialog',
|
|
103
|
+
title: 'ui/react-ui-core/components/Dialog',
|
|
44
104
|
component: Dialog as any,
|
|
45
105
|
render: DefaultStory,
|
|
46
|
-
decorators: [withTheme],
|
|
47
|
-
parameters: {
|
|
48
|
-
chromatic: {
|
|
49
|
-
disableSnapshot: false,
|
|
50
|
-
},
|
|
51
|
-
},
|
|
106
|
+
decorators: [withTheme()],
|
|
52
107
|
} satisfies Meta<typeof DefaultStory>;
|
|
53
108
|
|
|
54
109
|
export default meta;
|
|
@@ -58,10 +113,65 @@ type Story = StoryObj<typeof meta>;
|
|
|
58
113
|
export const Default: Story = {
|
|
59
114
|
args: {
|
|
60
115
|
title: 'Dialog title',
|
|
116
|
+
description: random.lorem.paragraph(1),
|
|
117
|
+
openTrigger: 'Open',
|
|
118
|
+
closeTrigger: 'Close',
|
|
119
|
+
blockAlign: 'start',
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
export const Small: Story = {
|
|
124
|
+
args: {
|
|
125
|
+
title: 'Dialog title',
|
|
126
|
+
description: random.lorem.paragraph(1),
|
|
127
|
+
openTrigger: 'Open',
|
|
128
|
+
closeTrigger: 'Close',
|
|
129
|
+
blockAlign: 'center',
|
|
130
|
+
size: 'sm',
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
export const Medium: Story = {
|
|
135
|
+
args: {
|
|
136
|
+
title: 'Dialog title',
|
|
137
|
+
description: random.lorem.paragraph(1),
|
|
138
|
+
openTrigger: 'Open',
|
|
139
|
+
closeTrigger: 'Close',
|
|
140
|
+
blockAlign: 'center',
|
|
141
|
+
size: 'md',
|
|
142
|
+
},
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
export const Large: Story = {
|
|
146
|
+
args: {
|
|
147
|
+
title: 'Dialog title',
|
|
148
|
+
description: random.lorem.paragraph(2),
|
|
149
|
+
openTrigger: 'Open Dialog',
|
|
150
|
+
closeTrigger: 'Close',
|
|
151
|
+
blockAlign: 'center',
|
|
152
|
+
size: 'lg',
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
export const ExtraLarge: Story = {
|
|
157
|
+
args: {
|
|
158
|
+
title: 'Dialog title',
|
|
159
|
+
description: random.lorem.paragraph(2),
|
|
160
|
+
openTrigger: 'Open Dialog',
|
|
161
|
+
closeTrigger: 'Close',
|
|
162
|
+
blockAlign: 'center',
|
|
163
|
+
size: 'xl',
|
|
164
|
+
},
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
export const Scrolling: Story = {
|
|
168
|
+
render: ScrollingStory,
|
|
169
|
+
args: {
|
|
170
|
+
title: 'Dialog title',
|
|
171
|
+
description: random.lorem.paragraph(20),
|
|
61
172
|
openTrigger: 'Open Dialog',
|
|
62
|
-
|
|
63
|
-
body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
|
|
64
|
-
closeTrigger: 'Close trigger',
|
|
173
|
+
closeTrigger: 'Close',
|
|
65
174
|
blockAlign: 'center',
|
|
175
|
+
size: 'md',
|
|
66
176
|
},
|
|
67
177
|
};
|