@dxos/react-ui 0.8.4-main.c1de068 → 0.8.4-main.c85a9c8dae
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-2FKSMWNY.mjs +774 -0
- package/dist/lib/browser/chunk-2FKSMWNY.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +3931 -61
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +82 -60
- package/dist/lib/browser/testing/index.mjs.map +4 -4
- package/dist/lib/node-esm/chunk-ZNBLTSHI.mjs +776 -0
- package/dist/lib/node-esm/chunk-ZNBLTSHI.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +3931 -61
- 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 +82 -60
- 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 +5 -31
- package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
- package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts +5 -11
- package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
- package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts +1 -1
- package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
- package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts +8 -20
- package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
- package/dist/types/src/components/{Buttons → Button}/Button.d.ts +2 -2
- package/dist/types/src/components/Button/Button.d.ts.map +1 -0
- package/dist/types/src/components/Button/Button.stories.d.ts +17 -0
- package/dist/types/src/components/Button/Button.stories.d.ts.map +1 -0
- package/dist/types/src/components/{Buttons → Button}/IconButton.d.ts +4 -4
- package/dist/types/src/components/Button/IconButton.d.ts.map +1 -0
- package/dist/types/src/components/Button/IconButton.stories.d.ts +13 -0
- package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -0
- package/dist/types/src/components/Button/Toggle.d.ts.map +1 -0
- package/dist/types/src/components/Button/Toggle.stories.d.ts +16 -0
- package/dist/types/src/components/Button/Toggle.stories.d.ts.map +1 -0
- package/dist/types/src/components/Button/ToggleGroup.d.ts +27 -0
- package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -0
- package/dist/types/src/components/Button/ToggleGroup.stories.d.ts +27 -0
- package/dist/types/src/components/Button/ToggleGroup.stories.d.ts.map +1 -0
- package/dist/types/src/components/Button/index.d.ts.map +1 -0
- package/dist/types/src/components/Card/Card.d.ts +121 -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 +1 -1
- package/dist/types/src/components/Clipboard/CopyButton.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/{Dialogs → Dialog}/AlertDialog.d.ts +13 -4
- package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -0
- package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts +11 -0
- package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -0
- package/dist/types/src/components/Dialog/Dialog.d.ts +47 -0
- package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -0
- package/dist/types/src/components/Dialog/Dialog.stories.d.ts +24 -0
- package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -0
- package/dist/types/src/components/Dialog/index.d.ts.map +1 -0
- package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts +1 -1
- package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
- package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts +11 -0
- package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts.map +1 -0
- package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts +7 -0
- package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts.map +1 -0
- package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +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/Icon/Icon.d.ts +2 -2
- package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
- package/dist/types/src/components/Icon/Icon.stories.d.ts +17 -0
- package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -0
- 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 +6 -8
- package/dist/types/src/components/Input/Input.d.ts.map +1 -1
- package/dist/types/src/components/Input/Input.stories.d.ts +17 -18
- package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
- package/dist/types/src/components/Link/Link.stories.d.ts +8 -8
- package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
- package/dist/types/src/components/{Lists → List}/List.d.ts +3 -3
- package/dist/types/src/components/List/List.d.ts.map +1 -0
- package/dist/types/src/components/List/List.stories.d.ts +14 -0
- package/dist/types/src/components/List/List.stories.d.ts.map +1 -0
- package/dist/types/src/components/List/ListDropIndicator.d.ts.map +1 -0
- package/dist/types/src/components/{Lists → List}/Tree.d.ts +1 -1
- package/dist/types/src/components/List/Tree.d.ts.map +1 -0
- package/dist/types/src/components/List/Tree.stories.d.ts +15 -0
- package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -0
- package/dist/types/src/components/List/TreeDropIndicator.d.ts.map +1 -0
- package/dist/types/src/components/{Lists → List}/Treegrid.d.ts +1 -1
- package/dist/types/src/components/{Lists → List}/Treegrid.d.ts.map +1 -1
- package/dist/types/src/components/List/Treegrid.stories.d.ts +12 -0
- package/dist/types/src/components/List/Treegrid.stories.d.ts.map +1 -0
- package/dist/types/src/components/List/index.d.ts.map +1 -0
- package/dist/types/src/components/Main/Main.d.ts +18 -28
- package/dist/types/src/components/Main/Main.d.ts.map +1 -1
- package/dist/types/src/components/Main/Main.stories.d.ts +6 -10
- 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 +12 -0
- package/dist/types/src/components/Menu/ContextMenu.stories.d.ts.map +1 -0
- package/dist/types/src/components/{Menus → Menu}/DropdownMenu.d.ts +8 -8
- package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -0
- package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts +15 -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 +10 -20
- package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
- package/dist/types/src/components/Popover/Popover.d.ts +4 -3
- package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
- package/dist/types/src/components/Popover/Popover.stories.d.ts +6 -34
- package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
- package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +25 -26
- package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
- package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +37 -25
- package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
- package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +39 -0
- package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -0
- package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +24 -0
- package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -0
- package/dist/types/src/components/ScrollContainer/index.d.ts +2 -0
- package/dist/types/src/components/ScrollContainer/index.d.ts.map +1 -0
- package/dist/types/src/components/Select/Select.d.ts +10 -10
- package/dist/types/src/components/Select/Select.d.ts.map +1 -1
- package/dist/types/src/components/Select/Select.stories.d.ts +4 -9
- package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
- package/dist/types/src/components/Separator/Separator.d.ts +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 +36 -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.stories.d.ts +6 -10
- 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 +8 -13
- 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/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 +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 +5 -5
- package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
- package/dist/types/src/components/Toast/Toast.stories.d.ts +6 -44
- package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar/Toolbar.d.ts +47 -19
- package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +6 -50
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/Tooltip/Tooltip.d.ts +2 -4
- package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +8 -61
- package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +13 -8
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/exemplars/generics.stories.d.ts +18 -0
- package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -0
- package/dist/types/src/exemplars/slot.stories.d.ts +14 -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/useDensityContext.d.ts +1 -1
- package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
- package/dist/types/src/hooks/useElevationContext.d.ts +1 -1
- package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -1
- package/dist/types/src/hooks/useSafeArea.d.ts.map +1 -1
- package/dist/types/src/hooks/useVisualViewport.d.ts +2 -2
- package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/playground/Controls.stories.d.ts +5 -9
- package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
- package/dist/types/src/playground/Custom.stories.d.ts +12 -4
- package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
- package/dist/types/src/playground/Typography.stories.d.ts +5 -11
- package/dist/types/src/playground/Typography.stories.d.ts.map +1 -1
- package/dist/types/src/primitives/Column/Column.d.ts +32 -0
- package/dist/types/src/primitives/Column/Column.d.ts.map +1 -0
- package/dist/types/src/primitives/Column/Column.stories.d.ts +6 -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/Flex/Flex.d.ts +8 -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 +9 -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 +34 -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 +5 -0
- package/dist/types/src/primitives/index.d.ts.map +1 -0
- package/dist/types/src/testing/decorators/index.d.ts +2 -1
- package/dist/types/src/testing/decorators/index.d.ts.map +1 -1
- package/dist/types/src/testing/decorators/withLayout.d.ts +15 -0
- package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -0
- package/dist/types/src/testing/decorators/withLayoutVariants.d.ts +12 -0
- package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -0
- package/dist/types/src/testing/decorators/withTheme.d.ts +5 -1
- package/dist/types/src/testing/decorators/withTheme.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 +2 -1
- package/dist/types/src/util/index.d.ts.map +1 -1
- package/dist/types/src/util/usePx.d.ts +8 -0
- package/dist/types/src/util/usePx.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +43 -31
- package/src/components/Avatars/Avatar.stories.tsx +24 -16
- package/src/components/Avatars/Avatar.tsx +9 -16
- package/src/components/Avatars/AvatarGroup.stories.tsx +12 -8
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +20 -15
- package/src/components/Breadcrumb/Breadcrumb.tsx +12 -38
- package/src/components/{Buttons → Button}/Button.stories.tsx +10 -11
- package/src/components/{Buttons → Button}/Button.tsx +7 -13
- package/src/components/{Buttons → Button}/IconButton.stories.tsx +15 -12
- package/src/components/{Buttons → Button}/IconButton.tsx +23 -16
- package/src/components/Button/Toggle.stories.tsx +37 -0
- package/src/components/{Buttons → Button}/ToggleGroup.stories.tsx +12 -9
- package/src/components/{Buttons → Button}/ToggleGroup.tsx +17 -4
- package/src/components/Card/Card.stories.tsx +151 -0
- package/src/components/Card/Card.tsx +352 -0
- package/src/components/Card/index.ts +5 -0
- package/src/components/Clipboard/ClipboardProvider.tsx +1 -1
- package/src/components/Clipboard/CopyButton.tsx +9 -8
- package/src/components/DensityProvider/DensityProvider.tsx +2 -2
- package/src/components/Dialog/AlertDialog.stories.tsx +69 -0
- package/src/components/{Dialogs → Dialog}/AlertDialog.tsx +128 -28
- package/src/components/Dialog/Dialog.stories.tsx +122 -0
- package/src/components/{Dialogs → Dialog}/Dialog.tsx +190 -60
- package/src/components/ElevationProvider/ElevationProvider.tsx +2 -2
- package/src/components/ErrorFallback/ErrorFallback.stories.tsx +50 -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/Icon/Icon.stories.tsx +113 -0
- package/src/components/Icon/Icon.tsx +3 -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 +28 -49
- package/src/components/Input/Input.tsx +46 -82
- package/src/components/Link/Link.stories.tsx +12 -8
- package/src/components/Link/Link.tsx +2 -2
- package/src/components/{Lists → List}/List.stories.tsx +44 -45
- package/src/components/{Lists → List}/List.tsx +27 -28
- package/src/components/{Lists → List}/ListDropIndicator.tsx +7 -7
- package/src/components/{Lists → List}/Tree.stories.tsx +15 -12
- package/src/components/{Lists → List}/Tree.tsx +4 -3
- package/src/components/{Lists → List}/TreeDropIndicator.tsx +7 -7
- package/src/components/{Lists → List}/Treegrid.stories.tsx +15 -9
- package/src/components/{Lists → List}/Treegrid.tsx +67 -31
- package/src/components/Main/Main.stories.tsx +53 -27
- package/src/components/Main/Main.tsx +176 -104
- package/src/components/{Menus → Menu}/ContextMenu.stories.tsx +13 -10
- package/src/components/{Menus → Menu}/ContextMenu.tsx +10 -33
- package/src/components/{Menus → Menu}/DropdownMenu.stories.tsx +14 -11
- package/src/components/{Menus → Menu}/DropdownMenu.tsx +111 -80
- package/src/components/Message/Message.stories.tsx +35 -16
- package/src/components/Message/Message.tsx +46 -33
- package/src/components/Popover/Popover.stories.tsx +16 -13
- package/src/components/Popover/Popover.tsx +86 -64
- package/src/components/ScrollArea/ScrollArea.stories.tsx +163 -34
- package/src/components/ScrollArea/ScrollArea.tsx +84 -82
- package/src/components/ScrollArea/index.ts +1 -1
- package/src/components/ScrollContainer/ScrollContainer.stories.tsx +89 -0
- package/src/components/ScrollContainer/ScrollContainer.tsx +238 -0
- package/src/components/ScrollContainer/index.ts +5 -0
- package/src/components/Select/Select.stories.tsx +15 -12
- package/src/components/Select/Select.tsx +16 -31
- package/src/components/Separator/Separator.tsx +1 -1
- package/src/components/Skeleton/Skeleton.stories.tsx +52 -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 +138 -0
- package/src/components/Splitter/index.ts +5 -0
- package/src/components/Status/Status.stories.tsx +30 -23
- package/src/components/Status/Status.tsx +2 -2
- package/src/components/Tag/Tag.stories.tsx +17 -13
- package/src/components/Tag/Tag.tsx +3 -8
- package/src/components/ThemeProvider/ThemeProvider.stories.tsx +32 -0
- package/src/components/ThemeProvider/ThemeProvider.tsx +7 -7
- package/src/components/ThemeProvider/TranslationsProvider.tsx +3 -18
- package/src/components/ThemeProvider/index.ts +3 -3
- package/src/components/Toast/Toast.stories.tsx +14 -11
- package/src/components/Toast/Toast.tsx +19 -23
- package/src/components/Toolbar/Toolbar.stories.tsx +16 -14
- package/src/components/Toolbar/Toolbar.tsx +199 -11
- package/src/components/Tooltip/Tooltip.stories.tsx +31 -25
- package/src/components/Tooltip/Tooltip.tsx +30 -26
- package/src/components/index.ts +14 -9
- package/src/exemplars/generics.stories.tsx +49 -0
- package/src/exemplars/slot.stories.tsx +119 -0
- package/src/exemplars/tabster.stories.tsx +127 -0
- package/src/exemplars/virtualizer.stories.tsx +137 -0
- package/src/hooks/useDensityContext.ts +1 -1
- package/src/hooks/useElevationContext.ts +1 -1
- package/src/hooks/useSafeArea.ts +3 -2
- package/src/hooks/useVisualViewport.ts +4 -4
- package/src/index.ts +2 -1
- package/src/playground/Controls.stories.tsx +12 -15
- package/src/playground/Custom.stories.tsx +15 -26
- package/src/playground/Typography.stories.tsx +11 -9
- package/src/primitives/Column/Column.stories.tsx +72 -0
- package/src/primitives/Column/Column.tsx +156 -0
- package/src/primitives/Column/index.ts +5 -0
- package/src/primitives/Flex/Flex.stories.tsx +58 -0
- package/src/primitives/Flex/Flex.tsx +27 -0
- package/src/primitives/Flex/index.ts +5 -0
- package/src/primitives/Grid/Grid.stories.tsx +57 -0
- package/src/primitives/Grid/Grid.tsx +43 -0
- package/src/primitives/Grid/index.ts +5 -0
- package/src/primitives/Panel/Panel.stories.tsx +67 -0
- package/src/primitives/Panel/Panel.tsx +137 -0
- package/src/primitives/Panel/index.ts +5 -0
- package/src/primitives/index.ts +8 -0
- package/src/testing/decorators/index.ts +2 -1
- package/src/testing/decorators/withLayout.tsx +77 -0
- package/src/testing/decorators/withLayoutVariants.tsx +48 -0
- package/src/testing/decorators/withTheme.tsx +34 -0
- package/src/translations.ts +19 -0
- package/src/util/index.ts +3 -1
- package/src/util/usePx.ts +61 -0
- package/dist/lib/browser/chunk-2COVUP44.mjs +0 -4373
- package/dist/lib/browser/chunk-2COVUP44.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GHXHND5V.mjs +0 -4375
- package/dist/lib/node-esm/chunk-GHXHND5V.mjs.map +0 -7
- package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +0 -15
- package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +0 -1
- package/dist/types/src/components/AnchoredOverflow/index.d.ts +0 -2
- package/dist/types/src/components/AnchoredOverflow/index.d.ts.map +0 -1
- package/dist/types/src/components/Buttons/Button.d.ts.map +0 -1
- package/dist/types/src/components/Buttons/Button.stories.d.ts +0 -12
- package/dist/types/src/components/Buttons/Button.stories.d.ts.map +0 -1
- package/dist/types/src/components/Buttons/IconButton.d.ts.map +0 -1
- package/dist/types/src/components/Buttons/IconButton.stories.d.ts +0 -22
- package/dist/types/src/components/Buttons/IconButton.stories.d.ts.map +0 -1
- package/dist/types/src/components/Buttons/Toggle.d.ts.map +0 -1
- package/dist/types/src/components/Buttons/Toggle.stories.d.ts +0 -19
- package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +0 -1
- package/dist/types/src/components/Buttons/ToggleGroup.d.ts +0 -28
- package/dist/types/src/components/Buttons/ToggleGroup.d.ts.map +0 -1
- package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts +0 -39
- package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +0 -1
- package/dist/types/src/components/Buttons/index.d.ts.map +0 -1
- package/dist/types/src/components/Dialogs/AlertDialog.d.ts.map +0 -1
- package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts +0 -43
- package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +0 -1
- package/dist/types/src/components/Dialogs/Dialog.d.ts +0 -31
- package/dist/types/src/components/Dialogs/Dialog.d.ts.map +0 -1
- package/dist/types/src/components/Dialogs/Dialog.stories.d.ts +0 -48
- package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +0 -1
- package/dist/types/src/components/Dialogs/index.d.ts.map +0 -1
- package/dist/types/src/components/Lists/List.d.ts.map +0 -1
- package/dist/types/src/components/Lists/List.stories.d.ts +0 -37
- package/dist/types/src/components/Lists/List.stories.d.ts.map +0 -1
- package/dist/types/src/components/Lists/ListDropIndicator.d.ts.map +0 -1
- package/dist/types/src/components/Lists/Tree.d.ts.map +0 -1
- package/dist/types/src/components/Lists/Tree.stories.d.ts +0 -41
- package/dist/types/src/components/Lists/Tree.stories.d.ts.map +0 -1
- package/dist/types/src/components/Lists/TreeDropIndicator.d.ts.map +0 -1
- package/dist/types/src/components/Lists/Treegrid.stories.d.ts +0 -10
- package/dist/types/src/components/Lists/Treegrid.stories.d.ts.map +0 -1
- package/dist/types/src/components/Lists/index.d.ts.map +0 -1
- package/dist/types/src/components/Menus/ContextMenu.d.ts.map +0 -1
- package/dist/types/src/components/Menus/ContextMenu.stories.d.ts +0 -50
- package/dist/types/src/components/Menus/ContextMenu.stories.d.ts.map +0 -1
- package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +0 -1
- package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts +0 -50
- package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +0 -1
- package/dist/types/src/components/Menus/index.d.ts.map +0 -1
- package/dist/types/src/testing/decorators/withSurfaceVariantsLayout.d.ts +0 -12
- package/dist/types/src/testing/decorators/withSurfaceVariantsLayout.d.ts.map +0 -1
- package/dist/types/src/util/ThemedClassName.d.ts +0 -5
- package/dist/types/src/util/ThemedClassName.d.ts.map +0 -1
- package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +0 -59
- package/src/components/AnchoredOverflow/index.ts +0 -5
- package/src/components/Buttons/Toggle.stories.tsx +0 -33
- package/src/components/Dialogs/AlertDialog.stories.tsx +0 -66
- package/src/components/Dialogs/Dialog.stories.tsx +0 -65
- package/src/testing/decorators/withSurfaceVariantsLayout.tsx +0 -51
- package/src/testing/decorators/withTheme.ts +0 -25
- package/src/util/ThemedClassName.ts +0 -7
- /package/dist/types/src/components/{Buttons → Button}/Toggle.d.ts +0 -0
- /package/dist/types/src/components/{Buttons → Button}/index.d.ts +0 -0
- /package/dist/types/src/components/{Dialogs → Dialog}/index.d.ts +0 -0
- /package/dist/types/src/components/{Lists → List}/ListDropIndicator.d.ts +0 -0
- /package/dist/types/src/components/{Lists → List}/TreeDropIndicator.d.ts +0 -0
- /package/dist/types/src/components/{Lists → List}/index.d.ts +0 -0
- /package/dist/types/src/components/{Menus → Menu}/index.d.ts +0 -0
- /package/src/components/{Buttons → Button}/Toggle.tsx +0 -0
- /package/src/components/{Buttons → Button}/index.ts +0 -0
- /package/src/components/{Dialogs → Dialog}/index.ts +0 -0
- /package/src/components/{Lists → List}/index.ts +0 -0
- /package/src/components/{Menus → Menu}/index.ts +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import React, {
|
|
5
|
+
import React, { type PropsWithChildren, createContext, useCallback, useContext, useState } from 'react';
|
|
6
6
|
|
|
7
7
|
export type ClipboardContextValue = {
|
|
8
8
|
textValue: string;
|
|
@@ -4,23 +4,24 @@
|
|
|
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
|
-
import {
|
|
10
|
-
import { Button, type ButtonProps, IconButton } from '../Buttons';
|
|
9
|
+
import { Button, type ButtonProps, IconButton } from '../Button';
|
|
11
10
|
import { Icon, type IconProps } from '../Icon';
|
|
12
11
|
import { useTranslation } from '../ThemeProvider';
|
|
13
12
|
import { type TooltipScopedProps, useTooltipContext } from '../Tooltip';
|
|
14
13
|
|
|
14
|
+
import { useClipboard } from './ClipboardProvider';
|
|
15
|
+
|
|
15
16
|
export type CopyButtonProps = ButtonProps &
|
|
16
17
|
Pick<IconProps, 'size'> & {
|
|
17
18
|
value: string;
|
|
18
19
|
};
|
|
19
20
|
|
|
20
|
-
const inactiveLabelStyles = 'invisible
|
|
21
|
+
const inactiveLabelStyles = 'invisible h-px -mb-px overflow-hidden';
|
|
21
22
|
|
|
22
23
|
export const CopyButton = ({ classNames, value, size = 5, ...props }: CopyButtonProps) => {
|
|
23
|
-
const { t } = useTranslation(
|
|
24
|
+
const { t } = useTranslation(osTranslations);
|
|
24
25
|
const { textValue, setTextValue } = useClipboard();
|
|
25
26
|
const isCopied = textValue === value;
|
|
26
27
|
return (
|
|
@@ -31,11 +32,11 @@ export const CopyButton = ({ classNames, value, size = 5, ...props }: CopyButton
|
|
|
31
32
|
data-testid='copy-invitation'
|
|
32
33
|
>
|
|
33
34
|
<div role='none' className={mx('flex gap-1 items-center', isCopied && inactiveLabelStyles)}>
|
|
34
|
-
<span className='
|
|
35
|
+
<span className='px-1'>{t('copy label')}</span>
|
|
35
36
|
<Icon icon='ph--copy--regular' size={size} />
|
|
36
37
|
</div>
|
|
37
38
|
<div role='none' className={mx('flex gap-1 items-center', !isCopied && inactiveLabelStyles)}>
|
|
38
|
-
<span className='
|
|
39
|
+
<span className='px-1'>{t('copy success label')}</span>
|
|
39
40
|
<Icon icon='ph--check--regular' size={size} />
|
|
40
41
|
</div>
|
|
41
42
|
</Button>
|
|
@@ -54,7 +55,7 @@ export const CopyButtonIconOnly = ({
|
|
|
54
55
|
variant,
|
|
55
56
|
...props
|
|
56
57
|
}: TooltipScopedProps<CopyButtonIconOnlyProps>) => {
|
|
57
|
-
const { t } = useTranslation(
|
|
58
|
+
const { t } = useTranslation(osTranslations);
|
|
58
59
|
const { textValue, setTextValue } = useClipboard();
|
|
59
60
|
const isCopied = textValue === value;
|
|
60
61
|
const label = isCopied ? t('copy success label') : (props.label ?? t('copy label'));
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import React, {
|
|
5
|
+
import React, { type PropsWithChildren, createContext } from 'react';
|
|
6
6
|
|
|
7
|
-
import { type Density } from '@dxos/
|
|
7
|
+
import { type Density } from '@dxos/ui-types';
|
|
8
8
|
|
|
9
9
|
export interface DensityContextValue {
|
|
10
10
|
density?: Density;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2022 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
|
+
import React from 'react';
|
|
7
|
+
|
|
8
|
+
import { faker } from '@dxos/random';
|
|
9
|
+
|
|
10
|
+
import { withTheme } from '../../testing';
|
|
11
|
+
import { Button } from '../Button';
|
|
12
|
+
|
|
13
|
+
import { AlertDialog } from './AlertDialog';
|
|
14
|
+
|
|
15
|
+
type StoryProps = Partial<{
|
|
16
|
+
title: string;
|
|
17
|
+
description: string;
|
|
18
|
+
openTrigger: string;
|
|
19
|
+
cancelTrigger: string;
|
|
20
|
+
actionTrigger: string;
|
|
21
|
+
}>;
|
|
22
|
+
|
|
23
|
+
const DefaultStory = ({ title, description, openTrigger, cancelTrigger, actionTrigger }: StoryProps) => {
|
|
24
|
+
return (
|
|
25
|
+
<AlertDialog.Root defaultOpen>
|
|
26
|
+
<AlertDialog.Trigger asChild>
|
|
27
|
+
<Button>{openTrigger}</Button>
|
|
28
|
+
</AlertDialog.Trigger>
|
|
29
|
+
<AlertDialog.Overlay>
|
|
30
|
+
<AlertDialog.Content>
|
|
31
|
+
<AlertDialog.Body>
|
|
32
|
+
<AlertDialog.Title>{title}</AlertDialog.Title>
|
|
33
|
+
<AlertDialog.Description>{description}</AlertDialog.Description>
|
|
34
|
+
</AlertDialog.Body>
|
|
35
|
+
<AlertDialog.ActionBar>
|
|
36
|
+
<div className='grow' />
|
|
37
|
+
<AlertDialog.Cancel asChild>
|
|
38
|
+
<Button>{cancelTrigger}</Button>
|
|
39
|
+
</AlertDialog.Cancel>
|
|
40
|
+
<AlertDialog.Action asChild>
|
|
41
|
+
<Button variant='primary'>{actionTrigger}</Button>
|
|
42
|
+
</AlertDialog.Action>
|
|
43
|
+
</AlertDialog.ActionBar>
|
|
44
|
+
</AlertDialog.Content>
|
|
45
|
+
</AlertDialog.Overlay>
|
|
46
|
+
</AlertDialog.Root>
|
|
47
|
+
);
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const meta = {
|
|
51
|
+
title: 'ui/react-ui-core/components/AlertDialog',
|
|
52
|
+
component: AlertDialog.Root as any,
|
|
53
|
+
render: DefaultStory as any,
|
|
54
|
+
decorators: [withTheme()],
|
|
55
|
+
} satisfies Meta<typeof DefaultStory>;
|
|
56
|
+
|
|
57
|
+
export default meta;
|
|
58
|
+
|
|
59
|
+
type Story = StoryObj<typeof meta>;
|
|
60
|
+
|
|
61
|
+
export const Default: Story = {
|
|
62
|
+
args: {
|
|
63
|
+
title: faker.lorem.sentence(3),
|
|
64
|
+
description: faker.lorem.paragraph(1),
|
|
65
|
+
openTrigger: 'Open AlertDialog',
|
|
66
|
+
cancelTrigger: 'Cancel',
|
|
67
|
+
actionTrigger: 'Action',
|
|
68
|
+
},
|
|
69
|
+
};
|
|
@@ -3,32 +3,44 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import {
|
|
6
|
-
type AlertDialogProps as AlertDialogRootPrimitiveProps,
|
|
7
|
-
Root as AlertDialogRootPrimitive,
|
|
8
|
-
AlertDialogTrigger as AlertDialogTriggerPrimitive,
|
|
9
|
-
type AlertDialogTriggerProps as AlertDialogTriggerPrimitiveProps,
|
|
10
|
-
AlertDialogPortal as AlertDialogPortalPrimitive,
|
|
11
|
-
type AlertDialogPortalProps as AlertDialogPortalPrimitiveProps,
|
|
12
|
-
AlertDialogOverlay as AlertDialogOverlayPrimitive,
|
|
13
|
-
type AlertDialogOverlayProps as AlertDialogOverlayPrimitiveProps,
|
|
14
|
-
AlertDialogTitle as AlertDialogTitlePrimitive,
|
|
15
|
-
type AlertDialogTitleProps as AlertDialogTitlePrimitiveProps,
|
|
16
|
-
AlertDialogDescription as AlertDialogDescriptionPrimitive,
|
|
17
|
-
type AlertDialogDescriptionProps as AlertDialogDescriptionPrimitiveProps,
|
|
18
6
|
AlertDialogAction as AlertDialogActionPrimitive,
|
|
19
7
|
type AlertDialogActionProps as AlertDialogActionPrimitiveProps,
|
|
20
8
|
AlertDialogCancel as AlertDialogCancelPrimitive,
|
|
21
9
|
type AlertDialogCancelProps as AlertDialogCancelPrimitiveProps,
|
|
22
10
|
AlertDialogContent as AlertDialogContentPrimitive,
|
|
23
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
24
|
} from '@radix-ui/react-alert-dialog';
|
|
25
25
|
import { createContext } from '@radix-ui/react-context';
|
|
26
|
-
import React, {
|
|
26
|
+
import React, {
|
|
27
|
+
type ForwardRefExoticComponent,
|
|
28
|
+
type FunctionComponent,
|
|
29
|
+
type PropsWithChildren,
|
|
30
|
+
forwardRef,
|
|
31
|
+
} from 'react';
|
|
32
|
+
|
|
33
|
+
import { type DialogSize } from '@dxos/ui-theme';
|
|
27
34
|
|
|
28
35
|
import { useThemeContext } from '../../hooks';
|
|
36
|
+
import { Column } from '../../primitives';
|
|
29
37
|
import { type ThemedClassName } from '../../util';
|
|
30
38
|
import { ElevationProvider } from '../ElevationProvider';
|
|
31
39
|
|
|
40
|
+
//
|
|
41
|
+
// Root
|
|
42
|
+
//
|
|
43
|
+
|
|
32
44
|
type AlertDialogRootProps = AlertDialogRootPrimitiveProps;
|
|
33
45
|
|
|
34
46
|
const AlertDialogRoot: FunctionComponent<AlertDialogRootProps> = (props) => (
|
|
@@ -37,22 +49,42 @@ const AlertDialogRoot: FunctionComponent<AlertDialogRootProps> = (props) => (
|
|
|
37
49
|
</ElevationProvider>
|
|
38
50
|
);
|
|
39
51
|
|
|
52
|
+
//
|
|
53
|
+
// Trigger
|
|
54
|
+
//
|
|
55
|
+
|
|
40
56
|
type AlertDialogTriggerProps = AlertDialogTriggerPrimitiveProps;
|
|
41
57
|
|
|
42
58
|
const AlertDialogTrigger: FunctionComponent<AlertDialogTriggerProps> = AlertDialogTriggerPrimitive;
|
|
43
59
|
|
|
60
|
+
//
|
|
61
|
+
// Portal
|
|
62
|
+
//
|
|
63
|
+
|
|
44
64
|
type AlertDialogPortalProps = AlertDialogPortalPrimitiveProps;
|
|
45
65
|
|
|
46
66
|
const AlertDialogPortal: FunctionComponent<AlertDialogPortalProps> = AlertDialogPortalPrimitive;
|
|
47
67
|
|
|
68
|
+
//
|
|
69
|
+
// Cancel
|
|
70
|
+
//
|
|
71
|
+
|
|
48
72
|
type AlertDialogCancelProps = AlertDialogCancelPrimitiveProps;
|
|
49
73
|
|
|
50
74
|
const AlertDialogCancel: FunctionComponent<AlertDialogCancelProps> = AlertDialogCancelPrimitive;
|
|
51
75
|
|
|
76
|
+
//
|
|
77
|
+
// Action
|
|
78
|
+
//
|
|
79
|
+
|
|
52
80
|
type AlertDialogActionProps = AlertDialogActionPrimitiveProps;
|
|
53
81
|
|
|
54
82
|
const AlertDialogAction: FunctionComponent<AlertDialogActionProps> = AlertDialogActionPrimitive;
|
|
55
83
|
|
|
84
|
+
//
|
|
85
|
+
// Title
|
|
86
|
+
//
|
|
87
|
+
|
|
56
88
|
type AlertDialogTitleProps = ThemedClassName<AlertDialogTitlePrimitiveProps> & { srOnly?: boolean };
|
|
57
89
|
|
|
58
90
|
const AlertDialogTitle: ForwardRefExoticComponent<AlertDialogTitleProps> = forwardRef<
|
|
@@ -61,14 +93,14 @@ const AlertDialogTitle: ForwardRefExoticComponent<AlertDialogTitleProps> = forwa
|
|
|
61
93
|
>(({ classNames, srOnly, ...props }, forwardedRef) => {
|
|
62
94
|
const { tx } = useThemeContext();
|
|
63
95
|
return (
|
|
64
|
-
<AlertDialogTitlePrimitive
|
|
65
|
-
{...props}
|
|
66
|
-
className={tx('dialog.title', 'dialog--alert__title', { srOnly }, classNames)}
|
|
67
|
-
ref={forwardedRef}
|
|
68
|
-
/>
|
|
96
|
+
<AlertDialogTitlePrimitive {...props} className={tx('dialog.title', { srOnly }, classNames)} ref={forwardedRef} />
|
|
69
97
|
);
|
|
70
98
|
});
|
|
71
99
|
|
|
100
|
+
//
|
|
101
|
+
// Description
|
|
102
|
+
//
|
|
103
|
+
|
|
72
104
|
type AlertDialogDescriptionProps = ThemedClassName<AlertDialogDescriptionPrimitiveProps> & { srOnly?: boolean };
|
|
73
105
|
|
|
74
106
|
const AlertDialogDescription: ForwardRefExoticComponent<AlertDialogTitleProps> = forwardRef<
|
|
@@ -79,15 +111,23 @@ const AlertDialogDescription: ForwardRefExoticComponent<AlertDialogTitleProps> =
|
|
|
79
111
|
return (
|
|
80
112
|
<AlertDialogDescriptionPrimitive
|
|
81
113
|
{...props}
|
|
82
|
-
className={tx('dialog.description',
|
|
114
|
+
className={tx('dialog.description', { srOnly }, classNames)}
|
|
83
115
|
ref={forwardedRef}
|
|
84
116
|
/>
|
|
85
117
|
);
|
|
86
118
|
});
|
|
87
119
|
|
|
88
120
|
type OverlayLayoutContextValue = { inOverlayLayout?: boolean };
|
|
121
|
+
|
|
122
|
+
//
|
|
123
|
+
// Context
|
|
124
|
+
//
|
|
125
|
+
|
|
89
126
|
const ALERT_DIALOG_OVERLAY_NAME = 'AlertDialogOverlay';
|
|
90
127
|
const ALERT_DIALOG_CONTENT_NAME = 'AlertDialogContent';
|
|
128
|
+
const ALERT_DIALOG_BODY_NAME = 'AlertDialogBody';
|
|
129
|
+
const ALERT_DIALOG_ACTIONBAR_NAME = 'AlertDialogActionBar';
|
|
130
|
+
|
|
91
131
|
const [OverlayLayoutProvider, useOverlayLayoutContext] = createContext<OverlayLayoutContextValue>(
|
|
92
132
|
ALERT_DIALOG_OVERLAY_NAME,
|
|
93
133
|
{
|
|
@@ -95,6 +135,10 @@ const [OverlayLayoutProvider, useOverlayLayoutContext] = createContext<OverlayLa
|
|
|
95
135
|
},
|
|
96
136
|
);
|
|
97
137
|
|
|
138
|
+
//
|
|
139
|
+
// Overlay
|
|
140
|
+
//
|
|
141
|
+
|
|
98
142
|
type AlertDialogOverlayProps = ThemedClassName<AlertDialogOverlayPrimitiveProps> & {
|
|
99
143
|
blockAlign?: 'center' | 'start' | 'end';
|
|
100
144
|
};
|
|
@@ -107,17 +151,17 @@ const AlertDialogOverlay: ForwardRefExoticComponent<AlertDialogOverlayProps> = f
|
|
|
107
151
|
return (
|
|
108
152
|
<AlertDialogOverlayPrimitive
|
|
109
153
|
{...props}
|
|
154
|
+
data-block-align={blockAlign}
|
|
110
155
|
className={tx(
|
|
111
156
|
'dialog.overlay',
|
|
112
|
-
'dialog--alert__overlay',
|
|
113
157
|
{},
|
|
114
158
|
classNames,
|
|
115
|
-
|
|
116
|
-
'data-[
|
|
117
|
-
'data-[
|
|
159
|
+
// TODO(burdon): Move to dialog.ts.
|
|
160
|
+
'data-[h-align=start]:justify-center',
|
|
161
|
+
'data-[h-align=start]:items-start',
|
|
162
|
+
'data-[h-align=center]:place-content-center',
|
|
118
163
|
)}
|
|
119
164
|
ref={forwardedRef}
|
|
120
|
-
data-block-align={blockAlign}
|
|
121
165
|
>
|
|
122
166
|
<OverlayLayoutProvider inOverlayLayout>{children}</OverlayLayoutProvider>
|
|
123
167
|
</AlertDialogOverlayPrimitive>
|
|
@@ -126,35 +170,89 @@ const AlertDialogOverlay: ForwardRefExoticComponent<AlertDialogOverlayProps> = f
|
|
|
126
170
|
|
|
127
171
|
AlertDialogOverlay.displayName = ALERT_DIALOG_OVERLAY_NAME;
|
|
128
172
|
|
|
129
|
-
|
|
173
|
+
//
|
|
174
|
+
// Content
|
|
175
|
+
//
|
|
176
|
+
|
|
177
|
+
type AlertDialogContentProps = ThemedClassName<AlertDialogContentPrimitiveProps> & { size?: DialogSize };
|
|
130
178
|
|
|
131
179
|
const AlertDialogContent: ForwardRefExoticComponent<AlertDialogContentProps> = forwardRef<
|
|
132
180
|
HTMLDivElement,
|
|
133
181
|
AlertDialogContentProps
|
|
134
|
-
>(({ classNames, children, ...props }, forwardedRef) => {
|
|
182
|
+
>(({ classNames, children, size = 'md', ...props }, forwardedRef) => {
|
|
135
183
|
const { tx } = useThemeContext();
|
|
136
184
|
const { inOverlayLayout } = useOverlayLayoutContext(ALERT_DIALOG_CONTENT_NAME);
|
|
137
185
|
return (
|
|
138
186
|
<AlertDialogContentPrimitive
|
|
139
187
|
{...props}
|
|
140
|
-
className={tx('dialog.content',
|
|
188
|
+
className={tx('dialog.content', { inOverlayLayout, size }, classNames)}
|
|
141
189
|
ref={forwardedRef}
|
|
142
190
|
>
|
|
143
|
-
{children}
|
|
191
|
+
<Column.Root>{children}</Column.Root>
|
|
144
192
|
</AlertDialogContentPrimitive>
|
|
145
193
|
);
|
|
146
194
|
});
|
|
147
195
|
|
|
148
196
|
AlertDialogContent.displayName = ALERT_DIALOG_CONTENT_NAME;
|
|
149
197
|
|
|
198
|
+
//
|
|
199
|
+
// Body
|
|
200
|
+
//
|
|
201
|
+
|
|
202
|
+
type AlertDialogBodyProps = PropsWithChildren;
|
|
203
|
+
|
|
204
|
+
const AlertDialogBody: ForwardRefExoticComponent<AlertDialogBodyProps> = forwardRef<
|
|
205
|
+
HTMLDivElement,
|
|
206
|
+
AlertDialogBodyProps
|
|
207
|
+
>(({ children, ...props }, forwardedRef) => {
|
|
208
|
+
const { tx } = useThemeContext();
|
|
209
|
+
return (
|
|
210
|
+
<Column.Segment asChild>
|
|
211
|
+
<div role='none' {...props} className={tx('dialog.body')} ref={forwardedRef}>
|
|
212
|
+
{children}
|
|
213
|
+
</div>
|
|
214
|
+
</Column.Segment>
|
|
215
|
+
);
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
AlertDialogBody.displayName = ALERT_DIALOG_BODY_NAME;
|
|
219
|
+
|
|
220
|
+
//
|
|
221
|
+
// ActionBar
|
|
222
|
+
//
|
|
223
|
+
|
|
224
|
+
type AlertDialogActionBarProps = ThemedClassName<PropsWithChildren>;
|
|
225
|
+
|
|
226
|
+
const AlertDialogActionBar: ForwardRefExoticComponent<AlertDialogActionBarProps> = forwardRef<
|
|
227
|
+
HTMLDivElement,
|
|
228
|
+
AlertDialogActionBarProps
|
|
229
|
+
>(({ children, classNames, ...props }, forwardedRef) => {
|
|
230
|
+
const { tx } = useThemeContext();
|
|
231
|
+
return (
|
|
232
|
+
<Column.Segment asChild>
|
|
233
|
+
<div {...props} className={tx('dialog.actionbar', {}, classNames)} ref={forwardedRef}>
|
|
234
|
+
{children}
|
|
235
|
+
</div>
|
|
236
|
+
</Column.Segment>
|
|
237
|
+
);
|
|
238
|
+
});
|
|
239
|
+
|
|
240
|
+
AlertDialogActionBar.displayName = ALERT_DIALOG_ACTIONBAR_NAME;
|
|
241
|
+
|
|
242
|
+
//
|
|
243
|
+
// AlertDialog
|
|
244
|
+
//
|
|
245
|
+
|
|
150
246
|
export const AlertDialog = {
|
|
151
247
|
Root: AlertDialogRoot,
|
|
152
248
|
Trigger: AlertDialogTrigger,
|
|
153
249
|
Portal: AlertDialogPortal,
|
|
154
250
|
Overlay: AlertDialogOverlay,
|
|
155
251
|
Content: AlertDialogContent,
|
|
252
|
+
Body: AlertDialogBody,
|
|
156
253
|
Title: AlertDialogTitle,
|
|
157
254
|
Description: AlertDialogDescription,
|
|
255
|
+
ActionBar: AlertDialogActionBar,
|
|
158
256
|
Cancel: AlertDialogCancel,
|
|
159
257
|
Action: AlertDialogAction,
|
|
160
258
|
};
|
|
@@ -165,8 +263,10 @@ export type {
|
|
|
165
263
|
AlertDialogPortalProps,
|
|
166
264
|
AlertDialogOverlayProps,
|
|
167
265
|
AlertDialogContentProps,
|
|
266
|
+
AlertDialogBodyProps,
|
|
168
267
|
AlertDialogTitleProps,
|
|
169
268
|
AlertDialogDescriptionProps,
|
|
269
|
+
AlertDialogActionBarProps,
|
|
170
270
|
AlertDialogCancelProps,
|
|
171
271
|
AlertDialogActionProps,
|
|
172
272
|
};
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2022 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
|
+
import React from 'react';
|
|
7
|
+
|
|
8
|
+
import { faker } from '@dxos/random';
|
|
9
|
+
|
|
10
|
+
import { withTheme } from '../../testing';
|
|
11
|
+
import { Button } from '../Button';
|
|
12
|
+
import { Input } from '../Input';
|
|
13
|
+
|
|
14
|
+
import { Dialog, type DialogContentProps } from './Dialog';
|
|
15
|
+
|
|
16
|
+
type StoryProps = Pick<DialogContentProps, 'size'> &
|
|
17
|
+
Partial<{
|
|
18
|
+
title: string;
|
|
19
|
+
description: string;
|
|
20
|
+
openTrigger: string;
|
|
21
|
+
closeTrigger: string;
|
|
22
|
+
blockAlign: 'start' | 'center';
|
|
23
|
+
}>;
|
|
24
|
+
|
|
25
|
+
const DefaultStory = ({ size, title, description, openTrigger, closeTrigger, blockAlign }: StoryProps) => {
|
|
26
|
+
return (
|
|
27
|
+
<Dialog.Root defaultOpen modal>
|
|
28
|
+
<Dialog.Trigger asChild>
|
|
29
|
+
<Button>{openTrigger}</Button>
|
|
30
|
+
</Dialog.Trigger>
|
|
31
|
+
<Dialog.Overlay blockAlign={blockAlign}>
|
|
32
|
+
<Dialog.Content size={size}>
|
|
33
|
+
<Dialog.Header>
|
|
34
|
+
<Dialog.Title>{title}</Dialog.Title>
|
|
35
|
+
{closeTrigger && (
|
|
36
|
+
<Dialog.Close asChild>
|
|
37
|
+
<Dialog.CloseIconButton />
|
|
38
|
+
</Dialog.Close>
|
|
39
|
+
)}
|
|
40
|
+
</Dialog.Header>
|
|
41
|
+
<Dialog.Body>
|
|
42
|
+
<Dialog.Description>{description}</Dialog.Description>
|
|
43
|
+
<Input.Root>
|
|
44
|
+
<Input.Label>Value</Input.Label>
|
|
45
|
+
<Input.TextInput placeholder='Enter value' />
|
|
46
|
+
</Input.Root>
|
|
47
|
+
</Dialog.Body>
|
|
48
|
+
<Dialog.ActionBar>
|
|
49
|
+
<Dialog.Close asChild>
|
|
50
|
+
<Button variant='primary'>{closeTrigger}</Button>
|
|
51
|
+
</Dialog.Close>
|
|
52
|
+
</Dialog.ActionBar>
|
|
53
|
+
</Dialog.Content>
|
|
54
|
+
</Dialog.Overlay>
|
|
55
|
+
</Dialog.Root>
|
|
56
|
+
);
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
const meta = {
|
|
60
|
+
title: 'ui/react-ui-core/components/Dialog',
|
|
61
|
+
component: Dialog as any,
|
|
62
|
+
render: DefaultStory,
|
|
63
|
+
decorators: [withTheme()],
|
|
64
|
+
} satisfies Meta<typeof DefaultStory>;
|
|
65
|
+
|
|
66
|
+
export default meta;
|
|
67
|
+
|
|
68
|
+
type Story = StoryObj<typeof meta>;
|
|
69
|
+
|
|
70
|
+
export const Default: Story = {
|
|
71
|
+
args: {
|
|
72
|
+
title: 'Dialog title',
|
|
73
|
+
description: faker.lorem.paragraph(1),
|
|
74
|
+
openTrigger: 'Open',
|
|
75
|
+
closeTrigger: 'Close',
|
|
76
|
+
blockAlign: 'start',
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
export const Small: Story = {
|
|
81
|
+
args: {
|
|
82
|
+
title: 'Dialog title',
|
|
83
|
+
description: faker.lorem.paragraph(1),
|
|
84
|
+
openTrigger: 'Open',
|
|
85
|
+
closeTrigger: 'Close',
|
|
86
|
+
blockAlign: 'center',
|
|
87
|
+
size: 'sm',
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
export const Medium: Story = {
|
|
92
|
+
args: {
|
|
93
|
+
title: 'Dialog title',
|
|
94
|
+
description: faker.lorem.paragraph(1),
|
|
95
|
+
openTrigger: 'Open',
|
|
96
|
+
closeTrigger: 'Close',
|
|
97
|
+
blockAlign: 'center',
|
|
98
|
+
size: 'md',
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
export const Large: Story = {
|
|
103
|
+
args: {
|
|
104
|
+
title: 'Dialog title',
|
|
105
|
+
description: faker.lorem.paragraph(2),
|
|
106
|
+
openTrigger: 'Open Dialog',
|
|
107
|
+
closeTrigger: 'Close',
|
|
108
|
+
blockAlign: 'center',
|
|
109
|
+
size: 'lg',
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
export const ExtraLarge: Story = {
|
|
114
|
+
args: {
|
|
115
|
+
title: 'Dialog title',
|
|
116
|
+
description: faker.lorem.paragraph(2),
|
|
117
|
+
openTrigger: 'Open Dialog',
|
|
118
|
+
closeTrigger: 'Close',
|
|
119
|
+
blockAlign: 'center',
|
|
120
|
+
size: 'xl',
|
|
121
|
+
},
|
|
122
|
+
};
|