@dxos/react-ui 0.1.41-next.d517c89 → 0.3.3-main.3ce60d4
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/README.md +5 -1
- package/README.yml +1 -0
- package/dist/lib/browser/index.mjs +2096 -2849
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/types/src/components/Avatars/Avatar.d.ts +51 -0
- package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -0
- package/dist/types/src/components/Avatars/Avatar.stories.d.ts +27 -0
- package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -0
- package/dist/types/src/components/Avatars/AvatarGroup.d.ts +21 -0
- package/dist/types/src/components/Avatars/AvatarGroup.d.ts.map +1 -0
- package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts +9 -0
- package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -0
- package/dist/types/src/components/Avatars/index.d.ts +3 -0
- package/dist/types/src/components/Avatars/index.d.ts.map +1 -0
- package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts +29 -0
- package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -0
- package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts +9 -0
- package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -0
- package/dist/types/src/components/Breadcrumb/index.d.ts +2 -0
- package/dist/types/src/components/Breadcrumb/index.d.ts.map +1 -0
- package/dist/types/src/components/Buttons/Button.d.ts +24 -0
- package/dist/types/src/components/Buttons/Button.d.ts.map +1 -0
- package/dist/types/src/components/Buttons/Button.stories.d.ts +37 -0
- package/dist/types/src/components/Buttons/Button.stories.d.ts.map +1 -0
- package/dist/types/src/components/Buttons/Toggle.d.ts +8 -0
- package/dist/types/src/components/Buttons/Toggle.d.ts.map +1 -0
- package/dist/types/src/components/Buttons/Toggle.stories.d.ts +10 -0
- package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +1 -0
- package/dist/types/src/components/Buttons/ToggleGroup.d.ts +28 -0
- package/dist/types/src/components/Buttons/ToggleGroup.d.ts.map +1 -0
- package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts +15 -0
- package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +1 -0
- package/dist/types/src/components/Buttons/index.d.ts +4 -0
- package/dist/types/src/components/Buttons/index.d.ts.map +1 -0
- package/dist/types/src/components/Card/Card.d.ts +44 -0
- package/dist/types/src/components/Card/Card.d.ts.map +1 -0
- package/dist/types/src/components/Card/Card.stories.d.ts +49 -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/Card/testing.d.ts +9 -0
- package/dist/types/src/components/Card/testing.d.ts.map +1 -0
- package/dist/types/src/components/Center/Center.d.ts +4 -0
- package/dist/types/src/components/Center/Center.d.ts.map +1 -0
- package/dist/types/src/components/Center/Center.stories.d.ts +11 -0
- package/dist/types/src/components/Center/Center.stories.d.ts.map +1 -0
- package/dist/types/src/components/Center/index.d.ts +2 -0
- package/dist/types/src/components/Center/index.d.ts.map +1 -0
- package/dist/types/src/components/ComboBox/ComboBox.d.ts +49 -0
- package/dist/types/src/components/ComboBox/ComboBox.d.ts.map +1 -0
- package/dist/types/src/components/ComboBox/ComboBox.stories.d.ts +25 -0
- package/dist/types/src/components/ComboBox/ComboBox.stories.d.ts.map +1 -0
- package/dist/types/src/components/ComboBox/index.d.ts +2 -0
- package/dist/types/src/components/ComboBox/index.d.ts.map +1 -0
- package/dist/types/src/components/DensityProvider/DensityProvider.d.ts +11 -0
- package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -0
- package/dist/types/src/components/DensityProvider/index.d.ts +2 -0
- package/dist/types/src/components/DensityProvider/index.d.ts.map +1 -0
- package/dist/types/src/components/Dialogs/AlertDialog.d.ts +29 -0
- package/dist/types/src/components/Dialogs/AlertDialog.d.ts.map +1 -0
- package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts +23 -0
- package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +1 -0
- package/dist/types/src/components/Dialogs/Dialog.d.ts +27 -0
- package/dist/types/src/components/Dialogs/Dialog.d.ts.map +1 -0
- package/dist/types/src/components/Dialogs/Dialog.stories.d.ts +21 -0
- package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +1 -0
- package/dist/types/src/components/Dialogs/index.d.ts +3 -0
- package/dist/types/src/components/Dialogs/index.d.ts.map +1 -0
- package/dist/types/src/components/DropdownMenu/DropdownMenu.d.ts +44 -0
- package/dist/types/src/components/DropdownMenu/DropdownMenu.d.ts.map +1 -0
- package/dist/types/src/components/DropdownMenu/DropdownMenu.stories.d.ts +14 -0
- package/dist/types/src/components/DropdownMenu/DropdownMenu.stories.d.ts.map +1 -0
- package/dist/types/src/components/DropdownMenu/index.d.ts +2 -0
- package/dist/types/src/components/DropdownMenu/index.d.ts.map +1 -0
- package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts +11 -0
- package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -0
- package/dist/types/src/components/ElevationProvider/index.d.ts +2 -0
- package/dist/types/src/components/ElevationProvider/index.d.ts.map +1 -0
- package/dist/types/src/components/Input/Input.d.ts +55 -0
- package/dist/types/src/components/Input/Input.d.ts.map +1 -0
- package/dist/types/src/components/Input/Input.stories.d.ts +151 -0
- package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -0
- package/dist/types/src/components/Input/index.d.ts +2 -0
- package/dist/types/src/components/Input/index.d.ts.map +1 -0
- package/dist/types/src/components/Link/Link.d.ts +8 -0
- package/dist/types/src/components/Link/Link.d.ts.map +1 -0
- package/dist/types/src/components/Link/Link.stories.d.ts +10 -0
- package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -0
- package/dist/types/src/components/Link/index.d.ts +2 -0
- package/dist/types/src/components/Link/index.d.ts.map +1 -0
- package/dist/types/src/components/List/List.d.ts +25 -0
- package/dist/types/src/components/List/List.d.ts.map +1 -0
- package/dist/types/src/components/List/List.stories.d.ts +29 -0
- package/dist/types/src/components/List/List.stories.d.ts.map +1 -0
- package/dist/types/src/components/List/Tree.d.ts +21 -0
- package/dist/types/src/components/List/Tree.d.ts.map +1 -0
- package/dist/types/src/components/List/Tree.stories.d.ts +29 -0
- package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -0
- package/dist/types/src/components/List/index.d.ts +3 -0
- package/dist/types/src/components/List/index.d.ts.map +1 -0
- package/dist/types/src/components/Main/Main.d.ts +57 -0
- package/dist/types/src/components/Main/Main.d.ts.map +1 -0
- package/dist/types/src/components/Main/Main.stories.d.ts +11 -0
- package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -0
- package/dist/types/src/components/Main/index.d.ts +2 -0
- package/dist/types/src/components/Main/index.d.ts.map +1 -0
- package/dist/types/src/components/Main/useSwipeToDismiss.d.ts +11 -0
- package/dist/types/src/components/Main/useSwipeToDismiss.d.ts.map +1 -0
- package/dist/types/src/components/Message/Message.d.ts +23 -0
- package/dist/types/src/components/Message/Message.d.ts.map +1 -0
- package/dist/types/src/components/Message/Message.stories.d.ts +19 -0
- package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -0
- package/dist/types/src/components/Message/index.d.ts +2 -0
- package/dist/types/src/components/Message/index.d.ts.map +1 -0
- package/dist/types/src/components/Popover/Popover.d.ts +32 -0
- package/dist/types/src/components/Popover/Popover.d.ts.map +1 -0
- package/dist/types/src/components/Popover/Popover.stories.d.ts +15 -0
- package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -0
- package/dist/types/src/components/Popover/index.d.ts +2 -0
- package/dist/types/src/components/Popover/index.d.ts.map +1 -0
- package/dist/types/src/components/ProgressBar/ProgressBar.d.ts +7 -0
- package/dist/types/src/components/ProgressBar/ProgressBar.d.ts.map +1 -0
- package/dist/types/src/components/ProgressBar/ProgressBar.stories.d.ts +12 -0
- package/dist/types/src/components/ProgressBar/ProgressBar.stories.d.ts.map +1 -0
- package/dist/types/src/components/ProgressBar/index.d.ts +2 -0
- package/dist/types/src/components/ProgressBar/index.d.ts.map +1 -0
- package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +27 -0
- package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -0
- package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +14 -0
- package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -0
- package/dist/types/src/components/ScrollArea/index.d.ts +2 -0
- package/dist/types/src/components/ScrollArea/index.d.ts.map +1 -0
- package/dist/types/src/components/Select/Select.d.ts +60 -0
- package/dist/types/src/components/Select/Select.d.ts.map +1 -0
- package/dist/types/src/components/Select/Select.stories.d.ts +16 -0
- package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -0
- package/dist/types/src/components/Select/index.d.ts +2 -0
- package/dist/types/src/components/Select/index.d.ts.map +1 -0
- package/dist/types/src/components/Separator/Separator.d.ts +7 -0
- package/dist/types/src/components/Separator/Separator.d.ts.map +1 -0
- package/dist/types/src/components/Separator/index.d.ts +2 -0
- package/dist/types/src/components/Separator/index.d.ts.map +1 -0
- package/dist/types/src/components/Tag/Tag.d.ts +10 -0
- package/dist/types/src/components/Tag/Tag.d.ts.map +1 -0
- package/dist/types/src/components/Tag/Tag.stories.d.ts +10 -0
- package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -0
- package/dist/types/src/components/Tag/index.d.ts +2 -0
- package/dist/types/src/components/Tag/index.d.ts.map +1 -0
- package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +16 -0
- package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -0
- package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +20 -0
- package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -0
- package/dist/types/src/components/ThemeProvider/index.d.ts +2 -0
- package/dist/types/src/components/ThemeProvider/index.d.ts.map +1 -0
- package/dist/types/src/components/Toast/Toast.d.ts +34 -0
- package/dist/types/src/components/Toast/Toast.d.ts.map +1 -0
- package/dist/types/src/components/Toast/Toast.stories.d.ts +34 -0
- package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -0
- package/dist/types/src/components/Toast/index.d.ts +2 -0
- package/dist/types/src/components/Toast/index.d.ts.map +1 -0
- package/dist/types/src/components/Toolbar/Toolbar.d.ts +42 -0
- package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -0
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +10 -0
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -0
- package/dist/types/src/components/Toolbar/index.d.ts +2 -0
- package/dist/types/src/components/Toolbar/index.d.ts.map +1 -0
- package/dist/types/src/components/Tooltip/Tooltip.d.ts +23 -0
- package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -0
- package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +19 -0
- package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -0
- package/dist/types/src/components/Tooltip/index.d.ts +2 -0
- package/dist/types/src/components/Tooltip/index.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +25 -6
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +6 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -0
- package/dist/types/src/hooks/useDensityContext.d.ts +3 -0
- package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -0
- package/dist/types/src/hooks/useElevationContext.d.ts +3 -0
- package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -0
- package/dist/types/src/hooks/useThemeContext.d.ts +2 -0
- package/dist/types/src/hooks/useThemeContext.d.ts.map +1 -0
- package/dist/types/src/hooks/useTranslationsContext.d.ts +4 -0
- package/dist/types/src/hooks/useTranslationsContext.d.ts.map +1 -0
- package/dist/types/src/hooks/useVisualViewport.d.ts +6 -0
- package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +6 -5
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/playground/Controls.stories.d.ts +11 -0
- package/dist/types/src/playground/Controls.stories.d.ts.map +1 -0
- package/dist/types/src/playground/Surfaces.stories.d.ts +9 -0
- package/dist/types/src/playground/Surfaces.stories.d.ts.map +1 -0
- package/dist/types/src/playground/helpers.d.ts +6 -0
- package/dist/types/src/playground/helpers.d.ts.map +1 -0
- package/dist/types/src/util/ThemedClassName.d.ts +5 -0
- package/dist/types/src/util/ThemedClassName.d.ts.map +1 -0
- package/dist/types/src/util/hasIosKeyboard.d.ts +2 -0
- package/dist/types/src/util/hasIosKeyboard.d.ts.map +1 -0
- package/dist/types/src/util/index.d.ts +2 -2
- package/dist/types/src/util/index.d.ts.map +1 -1
- package/package.json +43 -41
- package/src/components/Avatars/Avatar.stories.tsx +104 -0
- package/src/components/Avatars/Avatar.tsx +303 -0
- package/src/components/Avatars/AvatarGroup.stories.tsx +49 -0
- package/src/components/Avatars/AvatarGroup.tsx +111 -0
- package/src/components/Avatars/index.ts +6 -0
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +46 -0
- package/src/components/Breadcrumb/Breadcrumb.tsx +116 -0
- package/src/{composites/JoinDialog → components/Breadcrumb}/index.ts +1 -1
- package/src/components/Buttons/Button.stories.tsx +85 -0
- package/src/components/Buttons/Button.tsx +93 -0
- package/src/components/Buttons/Toggle.stories.tsx +28 -0
- package/src/components/Buttons/Toggle.tsx +23 -0
- package/src/components/Buttons/ToggleGroup.stories.tsx +38 -0
- package/src/components/Buttons/ToggleGroup.tsx +41 -0
- package/src/components/Buttons/index.ts +7 -0
- package/src/components/Card/Card.stories.tsx +215 -0
- package/src/components/Card/Card.tsx +114 -0
- package/src/{panels/SpacePanel → components/Card}/index.ts +1 -1
- package/src/components/Card/testing.ts +90 -0
- package/src/components/Center/Center.stories.tsx +18 -0
- package/src/components/Center/Center.tsx +16 -0
- package/src/{layouts/PanelDialog → components/Center}/index.ts +1 -1
- package/src/components/ComboBox/ComboBox.stories.tsx +82 -0
- package/src/components/ComboBox/ComboBox.tsx +218 -0
- package/src/components/ComboBox/index.ts +5 -0
- package/src/components/DensityProvider/DensityProvider.tsx +21 -0
- package/src/components/DensityProvider/index.ts +5 -0
- package/src/components/Dialogs/AlertDialog.stories.tsx +68 -0
- package/src/components/Dialogs/AlertDialog.tsx +157 -0
- package/src/components/Dialogs/Dialog.stories.tsx +52 -0
- package/src/components/Dialogs/Dialog.tsx +143 -0
- package/src/components/Dialogs/index.ts +6 -0
- package/src/components/DropdownMenu/DropdownMenu.stories.tsx +102 -0
- package/src/components/DropdownMenu/DropdownMenu.tsx +171 -0
- package/src/{layouts/PanelPopover → components/DropdownMenu}/index.ts +1 -1
- package/src/components/ElevationProvider/ElevationProvider.tsx +21 -0
- package/src/components/ElevationProvider/index.ts +5 -0
- package/src/components/Input/Input.stories.tsx +199 -0
- package/src/components/Input/Input.tsx +369 -0
- package/src/{composites/SpaceDialog → components/Input}/index.ts +1 -1
- package/src/components/Link/Link.stories.tsx +13 -0
- package/src/components/Link/Link.tsx +20 -0
- package/src/components/Link/index.ts +5 -0
- package/src/components/List/List.stories.tsx +184 -0
- package/src/components/List/List.tsx +173 -0
- package/src/components/List/Tree.stories.tsx +80 -0
- package/src/components/List/Tree.tsx +76 -0
- package/src/components/List/index.ts +6 -0
- package/src/components/Main/Main.stories.tsx +52 -0
- package/src/components/Main/Main.tsx +271 -0
- package/src/components/Main/index.ts +5 -0
- package/src/components/Main/useSwipeToDismiss.ts +103 -0
- package/src/components/Message/Message.stories.tsx +39 -0
- package/src/components/Message/Message.tsx +109 -0
- package/src/components/Message/index.ts +5 -0
- package/src/components/Popover/Popover.stories.tsx +38 -0
- package/src/components/Popover/Popover.tsx +123 -0
- package/src/components/Popover/index.ts +5 -0
- package/src/components/ProgressBar/ProgressBar.stories.tsx +33 -0
- package/src/components/ProgressBar/ProgressBar.tsx +29 -0
- package/src/components/ProgressBar/index.ts +5 -0
- package/src/components/ScrollArea/ScrollArea.stories.tsx +43 -0
- package/src/components/ScrollArea/ScrollArea.tsx +105 -0
- package/src/components/ScrollArea/index.ts +5 -0
- package/src/components/Select/Select.stories.tsx +68 -0
- package/src/components/Select/Select.tsx +223 -0
- package/src/components/Select/index.ts +5 -0
- package/src/components/Separator/Separator.tsx +28 -0
- package/src/components/Separator/index.ts +5 -0
- package/src/components/Tag/Tag.stories.tsx +42 -0
- package/src/components/Tag/Tag.tsx +23 -0
- package/src/components/Tag/index.ts +5 -0
- package/src/components/ThemeProvider/ThemeProvider.tsx +76 -0
- package/src/components/ThemeProvider/TranslationsProvider.tsx +63 -0
- package/src/components/ThemeProvider/index.ts +5 -0
- package/src/components/Toast/Toast.stories.tsx +61 -0
- package/src/components/Toast/Toast.tsx +126 -0
- package/src/components/Toast/index.ts +5 -0
- package/src/components/Toolbar/Toolbar.stories.tsx +77 -0
- package/src/components/Toolbar/Toolbar.tsx +99 -0
- package/src/components/Toolbar/index.ts +5 -0
- package/src/components/Tooltip/Tooltip.stories.tsx +41 -0
- package/src/components/Tooltip/Tooltip.tsx +84 -0
- package/src/components/Tooltip/index.ts +5 -0
- package/src/components/index.ts +27 -7
- package/src/hooks/index.ts +9 -0
- package/src/hooks/useDensityContext.ts +14 -0
- package/src/hooks/useElevationContext.ts +14 -0
- package/src/hooks/useThemeContext.ts +9 -0
- package/src/hooks/useTranslationsContext.ts +9 -0
- package/src/hooks/useVisualViewport.ts +24 -0
- package/src/index.ts +8 -6
- package/src/playground/Controls.stories.tsx +90 -0
- package/src/playground/Surfaces.stories.tsx +43 -0
- package/src/playground/helpers.tsx +32 -0
- package/src/util/ThemedClassName.ts +7 -0
- package/src/util/hasIosKeyboard.ts +8 -0
- package/src/util/index.ts +2 -2
- package/dist/lib/browser/chunk-5VRACIDE.mjs +0 -10
- package/dist/lib/browser/chunk-5VRACIDE.mjs.map +0 -7
- package/dist/lib/browser/testing/index.mjs +0 -64
- package/dist/lib/browser/testing/index.mjs.map +0 -7
- package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts +0 -9
- package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts.map +0 -1
- package/dist/types/src/components/Clipboard/CopyButton.d.ts +0 -5
- package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +0 -1
- package/dist/types/src/components/Clipboard/index.d.ts +0 -3
- package/dist/types/src/components/Clipboard/index.d.ts.map +0 -1
- package/dist/types/src/components/IdentityList/DeviceList.d.ts +0 -7
- package/dist/types/src/components/IdentityList/DeviceList.d.ts.map +0 -1
- package/dist/types/src/components/IdentityList/IdentityListItem.d.ts +0 -7
- package/dist/types/src/components/IdentityList/IdentityListItem.d.ts.map +0 -1
- package/dist/types/src/components/IdentityList/IdentityListItem.stories.d.ts +0 -21
- package/dist/types/src/components/IdentityList/IdentityListItem.stories.d.ts.map +0 -1
- package/dist/types/src/components/IdentityList/SpaceMemberList.d.ts +0 -7
- package/dist/types/src/components/IdentityList/SpaceMemberList.d.ts.map +0 -1
- package/dist/types/src/components/IdentityList/SpaceMemberListContainer.d.ts +0 -9
- package/dist/types/src/components/IdentityList/SpaceMemberListContainer.d.ts.map +0 -1
- package/dist/types/src/components/IdentityList/index.d.ts +0 -5
- package/dist/types/src/components/IdentityList/index.d.ts.map +0 -1
- package/dist/types/src/components/InvitationEmoji/InvitationEmoji.d.ts +0 -7
- package/dist/types/src/components/InvitationEmoji/InvitationEmoji.d.ts.map +0 -1
- package/dist/types/src/components/InvitationEmoji/index.d.ts +0 -2
- package/dist/types/src/components/InvitationEmoji/index.d.ts.map +0 -1
- package/dist/types/src/components/InvitationList/InvitationList.d.ts +0 -7
- package/dist/types/src/components/InvitationList/InvitationList.d.ts.map +0 -1
- package/dist/types/src/components/InvitationList/InvitationList.stories.d.ts +0 -10
- package/dist/types/src/components/InvitationList/InvitationList.stories.d.ts.map +0 -1
- package/dist/types/src/components/InvitationList/InvitationListContainer.d.ts +0 -7
- package/dist/types/src/components/InvitationList/InvitationListContainer.d.ts.map +0 -1
- package/dist/types/src/components/InvitationList/InvitationListItem.d.ts +0 -9
- package/dist/types/src/components/InvitationList/InvitationListItem.d.ts.map +0 -1
- package/dist/types/src/components/InvitationList/InvitationListProps.d.ts +0 -4
- package/dist/types/src/components/InvitationList/InvitationListProps.d.ts.map +0 -1
- package/dist/types/src/components/InvitationList/InvitationStatusAvatar.d.ts +0 -15
- package/dist/types/src/components/InvitationList/InvitationStatusAvatar.d.ts.map +0 -1
- package/dist/types/src/components/InvitationList/InvitationStatusAvatar.stories.d.ts +0 -9
- package/dist/types/src/components/InvitationList/InvitationStatusAvatar.stories.d.ts.map +0 -1
- package/dist/types/src/components/InvitationList/index.d.ts +0 -5
- package/dist/types/src/components/InvitationList/index.d.ts.map +0 -1
- package/dist/types/src/components/PanelSeparator/PanelSeparator.d.ts +0 -3
- package/dist/types/src/components/PanelSeparator/PanelSeparator.d.ts.map +0 -1
- package/dist/types/src/components/PanelSeparator/index.d.ts +0 -2
- package/dist/types/src/components/PanelSeparator/index.d.ts.map +0 -1
- package/dist/types/src/components/SpaceList/SpaceListItem.d.ts +0 -7
- package/dist/types/src/components/SpaceList/SpaceListItem.d.ts.map +0 -1
- package/dist/types/src/components/SpaceList/index.d.ts +0 -2
- package/dist/types/src/components/SpaceList/index.d.ts.map +0 -1
- package/dist/types/src/composites/DevicesDialog/DevicesDialog.d.ts +0 -6
- package/dist/types/src/composites/DevicesDialog/DevicesDialog.d.ts.map +0 -1
- package/dist/types/src/composites/DevicesDialog/index.d.ts +0 -2
- package/dist/types/src/composites/DevicesDialog/index.d.ts.map +0 -1
- package/dist/types/src/composites/IdentityPopover/IdentityPopover.d.ts +0 -9
- package/dist/types/src/composites/IdentityPopover/IdentityPopover.d.ts.map +0 -1
- package/dist/types/src/composites/IdentityPopover/index.d.ts +0 -2
- package/dist/types/src/composites/IdentityPopover/index.d.ts.map +0 -1
- package/dist/types/src/composites/JoinDialog/JoinDialog.d.ts +0 -6
- package/dist/types/src/composites/JoinDialog/JoinDialog.d.ts.map +0 -1
- package/dist/types/src/composites/JoinDialog/JoinDialog.stories.d.ts +0 -10
- package/dist/types/src/composites/JoinDialog/JoinDialog.stories.d.ts.map +0 -1
- package/dist/types/src/composites/JoinDialog/index.d.ts +0 -2
- package/dist/types/src/composites/JoinDialog/index.d.ts.map +0 -1
- package/dist/types/src/composites/Shell/Shell.d.ts +0 -6
- package/dist/types/src/composites/Shell/Shell.d.ts.map +0 -1
- package/dist/types/src/composites/Shell/Shell.stories.d.ts +0 -10
- package/dist/types/src/composites/Shell/Shell.stories.d.ts.map +0 -1
- package/dist/types/src/composites/Shell/ShellContext.d.ts +0 -22
- package/dist/types/src/composites/Shell/ShellContext.d.ts.map +0 -1
- package/dist/types/src/composites/Shell/index.d.ts +0 -3
- package/dist/types/src/composites/Shell/index.d.ts.map +0 -1
- package/dist/types/src/composites/SpaceDialog/SpaceDialog.d.ts +0 -6
- package/dist/types/src/composites/SpaceDialog/SpaceDialog.d.ts.map +0 -1
- package/dist/types/src/composites/SpaceDialog/index.d.ts +0 -2
- package/dist/types/src/composites/SpaceDialog/index.d.ts.map +0 -1
- package/dist/types/src/composites/index.d.ts +0 -5
- package/dist/types/src/composites/index.d.ts.map +0 -1
- package/dist/types/src/layouts/PanelAlertDialog/PanelAlertDialog.d.ts +0 -14
- package/dist/types/src/layouts/PanelAlertDialog/PanelAlertDialog.d.ts.map +0 -1
- package/dist/types/src/layouts/PanelAlertDialog/index.d.ts +0 -2
- package/dist/types/src/layouts/PanelAlertDialog/index.d.ts.map +0 -1
- package/dist/types/src/layouts/PanelDialog/PanelDialog.d.ts +0 -14
- package/dist/types/src/layouts/PanelDialog/PanelDialog.d.ts.map +0 -1
- package/dist/types/src/layouts/PanelDialog/index.d.ts +0 -2
- package/dist/types/src/layouts/PanelDialog/index.d.ts.map +0 -1
- package/dist/types/src/layouts/PanelPopover/PanelPopover.d.ts +0 -11
- package/dist/types/src/layouts/PanelPopover/PanelPopover.d.ts.map +0 -1
- package/dist/types/src/layouts/PanelPopover/index.d.ts +0 -2
- package/dist/types/src/layouts/PanelPopover/index.d.ts.map +0 -1
- package/dist/types/src/layouts/PanelSidebar/PanelSidebar.d.ts +0 -19
- package/dist/types/src/layouts/PanelSidebar/PanelSidebar.d.ts.map +0 -1
- package/dist/types/src/layouts/PanelSidebar/index.d.ts +0 -2
- package/dist/types/src/layouts/PanelSidebar/index.d.ts.map +0 -1
- package/dist/types/src/layouts/index.d.ts +0 -5
- package/dist/types/src/layouts/index.d.ts.map +0 -1
- package/dist/types/src/panels/DevicesPanel/DevicesPanel.d.ts +0 -10
- package/dist/types/src/panels/DevicesPanel/DevicesPanel.d.ts.map +0 -1
- package/dist/types/src/panels/DevicesPanel/index.d.ts +0 -2
- package/dist/types/src/panels/DevicesPanel/index.d.ts.map +0 -1
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.d.ts +0 -6
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.d.ts.map +0 -1
- package/dist/types/src/panels/IdentityPanel/index.d.ts +0 -2
- package/dist/types/src/panels/IdentityPanel/index.d.ts.map +0 -1
- package/dist/types/src/panels/JoinPanel/JoinHeading.d.ts +0 -13
- package/dist/types/src/panels/JoinPanel/JoinHeading.d.ts.map +0 -1
- package/dist/types/src/panels/JoinPanel/JoinPanel.d.ts +0 -3
- package/dist/types/src/panels/JoinPanel/JoinPanel.d.ts.map +0 -1
- package/dist/types/src/panels/JoinPanel/JoinPanelProps.d.ts +0 -54
- package/dist/types/src/panels/JoinPanel/JoinPanelProps.d.ts.map +0 -1
- package/dist/types/src/panels/JoinPanel/index.d.ts +0 -3
- package/dist/types/src/panels/JoinPanel/index.d.ts.map +0 -1
- package/dist/types/src/panels/JoinPanel/joinMachine.d.ts +0 -64
- package/dist/types/src/panels/JoinPanel/joinMachine.d.ts.map +0 -1
- package/dist/types/src/panels/JoinPanel/view-states/AdditionMethodSelector.d.ts +0 -4
- package/dist/types/src/panels/JoinPanel/view-states/AdditionMethodSelector.d.ts.map +0 -1
- package/dist/types/src/panels/JoinPanel/view-states/IdentityAdded.d.ts +0 -15
- package/dist/types/src/panels/JoinPanel/view-states/IdentityAdded.d.ts.map +0 -1
- package/dist/types/src/panels/JoinPanel/view-states/IdentityInput.d.ts +0 -6
- package/dist/types/src/panels/JoinPanel/view-states/IdentityInput.d.ts.map +0 -1
- package/dist/types/src/panels/JoinPanel/view-states/InvitationAccepted.d.ts +0 -10
- package/dist/types/src/panels/JoinPanel/view-states/InvitationAccepted.d.ts.map +0 -1
- package/dist/types/src/panels/JoinPanel/view-states/InvitationAuthenticator.d.ts +0 -7
- package/dist/types/src/panels/JoinPanel/view-states/InvitationAuthenticator.d.ts.map +0 -1
- package/dist/types/src/panels/JoinPanel/view-states/InvitationInput.d.ts +0 -6
- package/dist/types/src/panels/JoinPanel/view-states/InvitationInput.d.ts.map +0 -1
- package/dist/types/src/panels/JoinPanel/view-states/InvitationRescuer.d.ts +0 -6
- package/dist/types/src/panels/JoinPanel/view-states/InvitationRescuer.d.ts.map +0 -1
- package/dist/types/src/panels/JoinPanel/view-states/ViewState.d.ts +0 -10
- package/dist/types/src/panels/JoinPanel/view-states/ViewState.d.ts.map +0 -1
- package/dist/types/src/panels/JoinPanel/view-states/index.d.ts +0 -8
- package/dist/types/src/panels/JoinPanel/view-states/index.d.ts.map +0 -1
- package/dist/types/src/panels/SpacePanel/SpacePanel.d.ts +0 -12
- package/dist/types/src/panels/SpacePanel/SpacePanel.d.ts.map +0 -1
- package/dist/types/src/panels/SpacePanel/SpacePanel.stories.d.ts +0 -8
- package/dist/types/src/panels/SpacePanel/SpacePanel.stories.d.ts.map +0 -1
- package/dist/types/src/panels/SpacePanel/index.d.ts +0 -2
- package/dist/types/src/panels/SpacePanel/index.d.ts.map +0 -1
- package/dist/types/src/panels/index.d.ts +0 -5
- package/dist/types/src/panels/index.d.ts.map +0 -1
- package/dist/types/src/playwright/invitations-manager.d.ts +0 -25
- package/dist/types/src/playwright/invitations-manager.d.ts.map +0 -1
- package/dist/types/src/playwright/invitations.spec.d.ts +0 -2
- package/dist/types/src/playwright/invitations.spec.d.ts.map +0 -1
- package/dist/types/src/playwright/playwright.config.d.ts +0 -3
- package/dist/types/src/playwright/playwright.config.d.ts.map +0 -1
- package/dist/types/src/stories/Invitations.stories.d.ts +0 -14
- package/dist/types/src/stories/Invitations.stories.d.ts.map +0 -1
- package/dist/types/src/styles/dialogStyles.d.ts +0 -3
- package/dist/types/src/styles/dialogStyles.d.ts.map +0 -1
- package/dist/types/src/styles/index.d.ts +0 -4
- package/dist/types/src/styles/index.d.ts.map +0 -1
- package/dist/types/src/styles/invitationStatusStyles.d.ts +0 -20
- package/dist/types/src/styles/invitationStatusStyles.d.ts.map +0 -1
- package/dist/types/src/styles/panelStyles.d.ts +0 -4
- package/dist/types/src/styles/panelStyles.d.ts.map +0 -1
- package/dist/types/src/testing/index.d.ts +0 -2
- package/dist/types/src/testing/index.d.ts.map +0 -1
- package/dist/types/src/testing/shell-manager.d.ts +0 -17
- package/dist/types/src/testing/shell-manager.d.ts.map +0 -1
- package/dist/types/src/translations/index.d.ts +0 -5
- package/dist/types/src/translations/index.d.ts.map +0 -1
- package/dist/types/src/translations/locales/en-US.d.ts +0 -66
- package/dist/types/src/translations/locales/en-US.d.ts.map +0 -1
- package/dist/types/src/util/invitationStatusValue.d.ts +0 -8
- package/dist/types/src/util/invitationStatusValue.d.ts.map +0 -1
- package/dist/types/src/util/toEmoji.d.ts +0 -2
- package/dist/types/src/util/toEmoji.d.ts.map +0 -1
- package/src/components/Clipboard/ClipboardProvider.tsx +0 -26
- package/src/components/Clipboard/CopyButton.tsx +0 -38
- package/src/components/Clipboard/index.ts +0 -6
- package/src/components/IdentityList/DeviceList.tsx +0 -31
- package/src/components/IdentityList/IdentityListItem.stories.tsx +0 -23
- package/src/components/IdentityList/IdentityListItem.tsx +0 -48
- package/src/components/IdentityList/SpaceMemberList.tsx +0 -33
- package/src/components/IdentityList/SpaceMemberListContainer.tsx +0 -32
- package/src/components/IdentityList/index.ts +0 -8
- package/src/components/InvitationEmoji/InvitationEmoji.tsx +0 -32
- package/src/components/InvitationEmoji/index.ts +0 -5
- package/src/components/InvitationList/InvitationList.stories.tsx +0 -65
- package/src/components/InvitationList/InvitationList.tsx +0 -33
- package/src/components/InvitationList/InvitationListContainer.tsx +0 -27
- package/src/components/InvitationList/InvitationListItem.tsx +0 -91
- package/src/components/InvitationList/InvitationListProps.ts +0 -7
- package/src/components/InvitationList/InvitationStatusAvatar.stories.tsx +0 -52
- package/src/components/InvitationList/InvitationStatusAvatar.tsx +0 -91
- package/src/components/InvitationList/index.ts +0 -8
- package/src/components/PanelSeparator/PanelSeparator.tsx +0 -17
- package/src/components/PanelSeparator/index.ts +0 -5
- package/src/components/SpaceList/SpaceListItem.tsx +0 -32
- package/src/components/SpaceList/index.ts +0 -5
- package/src/composites/DevicesDialog/DevicesDialog.tsx +0 -39
- package/src/composites/DevicesDialog/index.ts +0 -5
- package/src/composites/IdentityPopover/IdentityPopover.tsx +0 -54
- package/src/composites/IdentityPopover/index.ts +0 -5
- package/src/composites/JoinDialog/JoinDialog.stories.tsx +0 -74
- package/src/composites/JoinDialog/JoinDialog.tsx +0 -35
- package/src/composites/Shell/Shell.stories.tsx +0 -93
- package/src/composites/Shell/Shell.tsx +0 -100
- package/src/composites/Shell/ShellContext.tsx +0 -178
- package/src/composites/Shell/index.ts +0 -6
- package/src/composites/SpaceDialog/SpaceDialog.tsx +0 -39
- package/src/composites/index.ts +0 -8
- package/src/layouts/PanelAlertDialog/PanelAlertDialog.tsx +0 -40
- package/src/layouts/PanelAlertDialog/index.ts +0 -5
- package/src/layouts/PanelDialog/PanelDialog.tsx +0 -41
- package/src/layouts/PanelPopover/PanelPopover.tsx +0 -40
- package/src/layouts/PanelSidebar/PanelSidebar.tsx +0 -124
- package/src/layouts/PanelSidebar/index.ts +0 -5
- package/src/layouts/index.ts +0 -8
- package/src/panels/DevicesPanel/DevicesPanel.tsx +0 -113
- package/src/panels/DevicesPanel/index.ts +0 -5
- package/src/panels/IdentityPanel/IdentityPanel.tsx +0 -43
- package/src/panels/IdentityPanel/index.ts +0 -5
- package/src/panels/JoinPanel/JoinHeading.tsx +0 -73
- package/src/panels/JoinPanel/JoinPanel.tsx +0 -247
- package/src/panels/JoinPanel/JoinPanelProps.ts +0 -90
- package/src/panels/JoinPanel/index.ts +0 -6
- package/src/panels/JoinPanel/joinMachine.ts +0 -444
- package/src/panels/JoinPanel/view-states/AdditionMethodSelector.tsx +0 -63
- package/src/panels/JoinPanel/view-states/IdentityAdded.tsx +0 -99
- package/src/panels/JoinPanel/view-states/IdentityInput.tsx +0 -81
- package/src/panels/JoinPanel/view-states/InvitationAccepted.tsx +0 -74
- package/src/panels/JoinPanel/view-states/InvitationAuthenticator.tsx +0 -152
- package/src/panels/JoinPanel/view-states/InvitationInput.tsx +0 -75
- package/src/panels/JoinPanel/view-states/InvitationRescuer.tsx +0 -115
- package/src/panels/JoinPanel/view-states/ViewState.tsx +0 -153
- package/src/panels/JoinPanel/view-states/index.ts +0 -11
- package/src/panels/SpacePanel/SpacePanel.stories.tsx +0 -15
- package/src/panels/SpacePanel/SpacePanel.tsx +0 -105
- package/src/panels/index.ts +0 -8
- package/src/playwright/invitations-manager.ts +0 -165
- package/src/playwright/invitations.spec.ts +0 -393
- package/src/playwright/playwright.config.ts +0 -7
- package/src/stories/Invitations.stories.tsx +0 -187
- package/src/styles/dialogStyles.ts +0 -8
- package/src/styles/index.ts +0 -7
- package/src/styles/invitationStatusStyles.ts +0 -42
- package/src/styles/panelStyles.ts +0 -7
- package/src/testing/index.ts +0 -5
- package/src/testing/shell-manager.ts +0 -79
- package/src/translations/index.ts +0 -7
- package/src/translations/locales/en-US.ts +0 -69
- package/src/util/invitationStatusValue.ts +0 -22
- package/src/util/toEmoji.ts +0 -22
- package/theme-extensions.js +0 -11
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
// This implementation is based upon https://github.com/hosembafer/react-swipe-to-dismiss, commit d88deafe910a6bd1400cf8fa90459a76cf4f71d3
|
|
6
|
+
|
|
7
|
+
import { type RefObject, useCallback, useEffect, useState } from 'react';
|
|
8
|
+
|
|
9
|
+
enum MotionState {
|
|
10
|
+
IDLE,
|
|
11
|
+
DEBOUNCING,
|
|
12
|
+
FOLLOWING,
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
type Options = Partial<{
|
|
16
|
+
onDismiss: () => void;
|
|
17
|
+
dismissThreshold: number;
|
|
18
|
+
debounceThreshold: number;
|
|
19
|
+
side: 'inline-start' | 'inline-end';
|
|
20
|
+
offset: number;
|
|
21
|
+
}>;
|
|
22
|
+
|
|
23
|
+
export const useSwipeToDismiss = (
|
|
24
|
+
ref: RefObject<HTMLElement | null>,
|
|
25
|
+
{ onDismiss, dismissThreshold = 64, debounceThreshold = 8, offset = 0 /* side = 'inline-start' */ }: Options,
|
|
26
|
+
) => {
|
|
27
|
+
const $root = ref.current;
|
|
28
|
+
// todo(thure): Implement other sides.
|
|
29
|
+
// const dK = direction === 'inline-start' ? 1 : -1;
|
|
30
|
+
|
|
31
|
+
const [motionState, setMotionState] = useState<MotionState>(MotionState.IDLE);
|
|
32
|
+
const [gestureStartX, setGestureStartX] = useState(0);
|
|
33
|
+
|
|
34
|
+
const setIdle = useCallback(() => {
|
|
35
|
+
setMotionState(MotionState.IDLE);
|
|
36
|
+
$root?.style.removeProperty('inset-inline-start');
|
|
37
|
+
$root?.style.setProperty('transition-duration', '200ms');
|
|
38
|
+
}, [$root]);
|
|
39
|
+
|
|
40
|
+
const setFollowing = useCallback(() => {
|
|
41
|
+
setMotionState(MotionState.FOLLOWING);
|
|
42
|
+
$root?.style.setProperty('transition-duration', '0ms');
|
|
43
|
+
}, [$root]);
|
|
44
|
+
|
|
45
|
+
const handlePointerDown = useCallback(
|
|
46
|
+
({ screenX }: PointerEvent) => {
|
|
47
|
+
if (motionState === MotionState.IDLE) {
|
|
48
|
+
setMotionState(MotionState.DEBOUNCING);
|
|
49
|
+
setGestureStartX(screenX);
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
[motionState],
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
const handlePointerMove = useCallback(
|
|
56
|
+
({ screenX }: PointerEvent) => {
|
|
57
|
+
if ($root) {
|
|
58
|
+
const delta = Math.min(screenX - gestureStartX, 0);
|
|
59
|
+
switch (motionState) {
|
|
60
|
+
case MotionState.FOLLOWING:
|
|
61
|
+
if (Math.abs(delta) > dismissThreshold) {
|
|
62
|
+
setIdle();
|
|
63
|
+
onDismiss?.();
|
|
64
|
+
} else {
|
|
65
|
+
$root.style.setProperty('inset-inline-start', `${offset + delta}px`);
|
|
66
|
+
}
|
|
67
|
+
break;
|
|
68
|
+
case MotionState.DEBOUNCING:
|
|
69
|
+
if (Math.abs(delta) > debounceThreshold) {
|
|
70
|
+
setFollowing();
|
|
71
|
+
}
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
[$root, motionState, gestureStartX],
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
const handlePointerUp = useCallback(() => {
|
|
80
|
+
setIdle();
|
|
81
|
+
}, [setIdle]);
|
|
82
|
+
|
|
83
|
+
useEffect(() => {
|
|
84
|
+
$root?.addEventListener('pointerdown', handlePointerDown);
|
|
85
|
+
return () => {
|
|
86
|
+
$root?.removeEventListener('pointerdown', handlePointerDown);
|
|
87
|
+
};
|
|
88
|
+
}, [$root, handlePointerDown]);
|
|
89
|
+
|
|
90
|
+
useEffect(() => {
|
|
91
|
+
$root && document.documentElement.addEventListener('pointermove', handlePointerMove);
|
|
92
|
+
return () => {
|
|
93
|
+
document.documentElement.removeEventListener('pointermove', handlePointerMove);
|
|
94
|
+
};
|
|
95
|
+
}, [$root, handlePointerMove]);
|
|
96
|
+
|
|
97
|
+
useEffect(() => {
|
|
98
|
+
$root && document.documentElement.addEventListener('pointerup', handlePointerUp);
|
|
99
|
+
return () => {
|
|
100
|
+
document.documentElement.removeEventListener('pointerup', handlePointerUp);
|
|
101
|
+
};
|
|
102
|
+
}, [$root, handlePointerUp]);
|
|
103
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2022 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import '@dxosTheme';
|
|
6
|
+
|
|
7
|
+
import { Info } from '@phosphor-icons/react';
|
|
8
|
+
import React from 'react';
|
|
9
|
+
|
|
10
|
+
import { type MessageValence } from '@dxos/react-ui-types';
|
|
11
|
+
|
|
12
|
+
import { Message } from './Message';
|
|
13
|
+
|
|
14
|
+
type StoryMessageProps = {
|
|
15
|
+
valence: MessageValence;
|
|
16
|
+
title: string;
|
|
17
|
+
body: string;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const StoryMessage = ({ valence, title, body }: StoryMessageProps) => (
|
|
21
|
+
<Message.Root valence={valence}>
|
|
22
|
+
<Message.Title>
|
|
23
|
+
<Info className='inline w-5 h-5 mb-1' weight='duotone' /> {title}
|
|
24
|
+
</Message.Title>
|
|
25
|
+
<Message.Body>{body}</Message.Body>
|
|
26
|
+
</Message.Root>
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
export default {
|
|
30
|
+
component: StoryMessage,
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export const Default = {
|
|
34
|
+
args: {
|
|
35
|
+
valence: 'error',
|
|
36
|
+
title: 'Alert title',
|
|
37
|
+
body: 'Alert content',
|
|
38
|
+
},
|
|
39
|
+
};
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2022 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { createContext } from '@radix-ui/react-context';
|
|
6
|
+
import { Primitive } from '@radix-ui/react-primitive';
|
|
7
|
+
import { Slot } from '@radix-ui/react-slot';
|
|
8
|
+
import React, { type ComponentPropsWithRef, forwardRef } from 'react';
|
|
9
|
+
|
|
10
|
+
import { useId } from '@dxos/react-hooks';
|
|
11
|
+
import { type MessageValence, type Elevation } from '@dxos/react-ui-types';
|
|
12
|
+
|
|
13
|
+
import { useElevationContext, useThemeContext } from '../../hooks';
|
|
14
|
+
|
|
15
|
+
type MessageRootProps = ComponentPropsWithRef<typeof Primitive.div> & {
|
|
16
|
+
valence?: MessageValence;
|
|
17
|
+
elevation?: Elevation;
|
|
18
|
+
asChild?: boolean;
|
|
19
|
+
titleId?: string;
|
|
20
|
+
descriptionId?: string;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
type MessageContextValue = { titleId?: string; descriptionId: string };
|
|
24
|
+
const MESSAGE_NAME = 'Message';
|
|
25
|
+
const [MessageProvider, useMessageContext] = createContext<MessageContextValue>(MESSAGE_NAME);
|
|
26
|
+
|
|
27
|
+
const MessageRoot = forwardRef<HTMLDivElement, MessageRootProps>(
|
|
28
|
+
(
|
|
29
|
+
{
|
|
30
|
+
asChild,
|
|
31
|
+
valence,
|
|
32
|
+
elevation: propsElevation,
|
|
33
|
+
className,
|
|
34
|
+
titleId: propsTitleId,
|
|
35
|
+
descriptionId: propsDescriptionId,
|
|
36
|
+
children,
|
|
37
|
+
...props
|
|
38
|
+
},
|
|
39
|
+
forwardedRef,
|
|
40
|
+
) => {
|
|
41
|
+
const { tx } = useThemeContext();
|
|
42
|
+
const titleId = useId('message__title', propsTitleId);
|
|
43
|
+
const descriptionId = useId('message__description', propsDescriptionId);
|
|
44
|
+
const elevation = useElevationContext(propsElevation);
|
|
45
|
+
const Root = asChild ? Slot : Primitive.div;
|
|
46
|
+
return (
|
|
47
|
+
<MessageProvider {...{ titleId, descriptionId }}>
|
|
48
|
+
<Root
|
|
49
|
+
{...props}
|
|
50
|
+
className={tx('message.root', 'message', { valence, elevation }, className)}
|
|
51
|
+
aria-labelledby={titleId}
|
|
52
|
+
aria-describedby={descriptionId}
|
|
53
|
+
ref={forwardedRef}
|
|
54
|
+
>
|
|
55
|
+
{children}
|
|
56
|
+
</Root>
|
|
57
|
+
</MessageProvider>
|
|
58
|
+
);
|
|
59
|
+
},
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
MessageRoot.displayName = MESSAGE_NAME;
|
|
63
|
+
|
|
64
|
+
type MessageTitleProps = Omit<ComponentPropsWithRef<typeof Primitive.h2>, 'id'> & { asChild?: boolean };
|
|
65
|
+
|
|
66
|
+
const MESSAGE_TITLE_NAME = 'MessageTitle';
|
|
67
|
+
|
|
68
|
+
const MessageTitle = forwardRef<HTMLHeadingElement, MessageTitleProps>(
|
|
69
|
+
({ asChild, className, children, ...props }, forwardedRef) => {
|
|
70
|
+
const { tx } = useThemeContext();
|
|
71
|
+
const { titleId } = useMessageContext(MESSAGE_TITLE_NAME);
|
|
72
|
+
const Root = asChild ? Slot : Primitive.h2;
|
|
73
|
+
return (
|
|
74
|
+
<Root {...props} className={tx('message.title', 'message__title', {}, className)} id={titleId} ref={forwardedRef}>
|
|
75
|
+
{children}
|
|
76
|
+
</Root>
|
|
77
|
+
);
|
|
78
|
+
},
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
MessageTitle.displayName = MESSAGE_TITLE_NAME;
|
|
82
|
+
|
|
83
|
+
type MessageBodyProps = Omit<ComponentPropsWithRef<typeof Primitive.h2>, 'id'> & { asChild?: boolean };
|
|
84
|
+
|
|
85
|
+
const MESSAGE_BODY_NAME = 'MessageBody';
|
|
86
|
+
|
|
87
|
+
const MessageBody = forwardRef<HTMLParagraphElement, MessageBodyProps>(
|
|
88
|
+
({ asChild, className, children, ...props }, forwardedRef) => {
|
|
89
|
+
const { tx } = useThemeContext();
|
|
90
|
+
const { descriptionId } = useMessageContext(MESSAGE_BODY_NAME);
|
|
91
|
+
const Root = asChild ? Slot : Primitive.p;
|
|
92
|
+
return (
|
|
93
|
+
<Root
|
|
94
|
+
{...props}
|
|
95
|
+
className={tx('message.body', 'message__body', {}, className)}
|
|
96
|
+
id={descriptionId}
|
|
97
|
+
ref={forwardedRef}
|
|
98
|
+
>
|
|
99
|
+
{children}
|
|
100
|
+
</Root>
|
|
101
|
+
);
|
|
102
|
+
},
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
MessageBody.displayName = MESSAGE_BODY_NAME;
|
|
106
|
+
|
|
107
|
+
export const Message = { Root: MessageRoot, Title: MessageTitle, Body: MessageBody };
|
|
108
|
+
|
|
109
|
+
export type { MessageRootProps, MessageTitleProps, MessageBodyProps };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2022 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import '@dxosTheme';
|
|
6
|
+
|
|
7
|
+
import { faker } from '@faker-js/faker';
|
|
8
|
+
import React, { type PropsWithChildren, type ReactNode } from 'react';
|
|
9
|
+
|
|
10
|
+
import { Popover } from './Popover';
|
|
11
|
+
import { Button } from '../Buttons';
|
|
12
|
+
|
|
13
|
+
faker.seed(1234);
|
|
14
|
+
|
|
15
|
+
const StorybookPopover = ({ openTrigger, children }: PropsWithChildren<{ openTrigger: ReactNode }>) => {
|
|
16
|
+
return (
|
|
17
|
+
<Popover.Root defaultOpen>
|
|
18
|
+
<Popover.Trigger asChild>{openTrigger}</Popover.Trigger>
|
|
19
|
+
<Popover.Content>
|
|
20
|
+
<Popover.Viewport>
|
|
21
|
+
<p className='pli-2 plb-1 min-is-[18rem] max-is-[38rem]'>{children}</p>
|
|
22
|
+
</Popover.Viewport>
|
|
23
|
+
<Popover.Arrow />
|
|
24
|
+
</Popover.Content>
|
|
25
|
+
</Popover.Root>
|
|
26
|
+
);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export default {
|
|
30
|
+
component: StorybookPopover,
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export const Default = {
|
|
34
|
+
args: {
|
|
35
|
+
openTrigger: <Button>Open popover</Button>,
|
|
36
|
+
children: faker.lorem.paragraphs(3),
|
|
37
|
+
},
|
|
38
|
+
};
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
Root as PopoverRootPrimitive,
|
|
7
|
+
type PopoverProps as PopoverRootPrimitiveProps,
|
|
8
|
+
type PopoverContentProps as PopoverContentPrimitiveProps,
|
|
9
|
+
PopoverContent as PopoverContentPrimitive,
|
|
10
|
+
type PopoverTriggerProps as PopoverTriggerPrimitiveProps,
|
|
11
|
+
PopoverTrigger as PopoverTriggerPrimitive,
|
|
12
|
+
type PopoverAnchorProps as PopoverAnchorPrimitiveProps,
|
|
13
|
+
PopoverAnchor as PopoverAnchorPrimitive,
|
|
14
|
+
type PopoverPortalProps as PopoverPortalPrimitiveProps,
|
|
15
|
+
PopoverPortal as PopoverPortalPrimitive,
|
|
16
|
+
type PopoverArrowProps as PopoverArrowPrimitiveProps,
|
|
17
|
+
PopoverArrow as PopoverArrowPrimitive,
|
|
18
|
+
type PopoverCloseProps as PopoverClosePrimitiveProps,
|
|
19
|
+
PopoverClose as PopoverClosePrimitive,
|
|
20
|
+
} from '@radix-ui/react-popover';
|
|
21
|
+
import { Primitive } from '@radix-ui/react-primitive';
|
|
22
|
+
import { Slot } from '@radix-ui/react-slot';
|
|
23
|
+
import React, { type ComponentPropsWithRef, forwardRef, type FunctionComponent } from 'react';
|
|
24
|
+
|
|
25
|
+
import { useThemeContext } from '../../hooks';
|
|
26
|
+
import { type ThemedClassName } from '../../util';
|
|
27
|
+
import { ElevationProvider } from '../ElevationProvider';
|
|
28
|
+
|
|
29
|
+
type PopoverRootProps = PopoverRootPrimitiveProps;
|
|
30
|
+
|
|
31
|
+
const PopoverRoot: FunctionComponent<PopoverRootProps> = PopoverRootPrimitive;
|
|
32
|
+
|
|
33
|
+
type PopoverPortalProps = PopoverPortalPrimitiveProps;
|
|
34
|
+
|
|
35
|
+
const PopoverPortal = PopoverPortalPrimitive;
|
|
36
|
+
|
|
37
|
+
type PopoverTriggerProps = PopoverTriggerPrimitiveProps;
|
|
38
|
+
|
|
39
|
+
const PopoverTrigger = PopoverTriggerPrimitive;
|
|
40
|
+
|
|
41
|
+
type PopoverAnchorProps = PopoverAnchorPrimitiveProps;
|
|
42
|
+
|
|
43
|
+
const PopoverAnchor = PopoverAnchorPrimitive;
|
|
44
|
+
|
|
45
|
+
type PopoverCloseProps = PopoverClosePrimitiveProps;
|
|
46
|
+
|
|
47
|
+
const PopoverClose = PopoverClosePrimitive;
|
|
48
|
+
|
|
49
|
+
type PopoverArrowProps = ThemedClassName<PopoverArrowPrimitiveProps>;
|
|
50
|
+
|
|
51
|
+
const PopoverArrow = forwardRef<SVGSVGElement, PopoverArrowProps>(({ classNames, ...props }, forwardedRef) => {
|
|
52
|
+
const { tx } = useThemeContext();
|
|
53
|
+
return (
|
|
54
|
+
<PopoverArrowPrimitive
|
|
55
|
+
{...props}
|
|
56
|
+
className={tx('popover.arrow', 'popover__arrow', {}, classNames)}
|
|
57
|
+
ref={forwardedRef}
|
|
58
|
+
/>
|
|
59
|
+
);
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
type PopoverContentProps = ThemedClassName<PopoverContentPrimitiveProps>;
|
|
63
|
+
|
|
64
|
+
const PopoverContent = forwardRef<HTMLDivElement, PopoverContentProps>(
|
|
65
|
+
({ classNames, children, ...props }, forwardedRef) => {
|
|
66
|
+
const { tx } = useThemeContext();
|
|
67
|
+
return (
|
|
68
|
+
<PopoverContentPrimitive
|
|
69
|
+
sideOffset={4}
|
|
70
|
+
collisionPadding={8}
|
|
71
|
+
{...props}
|
|
72
|
+
className={tx('popover.content', 'popover', {}, classNames)}
|
|
73
|
+
ref={forwardedRef}
|
|
74
|
+
>
|
|
75
|
+
<ElevationProvider elevation='chrome'>{children}</ElevationProvider>
|
|
76
|
+
</PopoverContentPrimitive>
|
|
77
|
+
);
|
|
78
|
+
},
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
type PopoverViewportProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {
|
|
82
|
+
asChild?: boolean;
|
|
83
|
+
constrainInline?: boolean;
|
|
84
|
+
constrainBlock?: boolean;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
const PopoverViewport = forwardRef<HTMLDivElement, PopoverViewportProps>(
|
|
88
|
+
({ classNames, asChild, constrainInline = true, constrainBlock = true, children, ...props }, forwardedRef) => {
|
|
89
|
+
const { tx } = useThemeContext();
|
|
90
|
+
const Root = asChild ? Slot : Primitive.div;
|
|
91
|
+
return (
|
|
92
|
+
<Root
|
|
93
|
+
{...props}
|
|
94
|
+
className={tx('popover.viewport', 'popover__viewport', { constrainInline, constrainBlock }, classNames)}
|
|
95
|
+
ref={forwardedRef}
|
|
96
|
+
>
|
|
97
|
+
{children}
|
|
98
|
+
</Root>
|
|
99
|
+
);
|
|
100
|
+
},
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
export const Popover = {
|
|
104
|
+
Root: PopoverRoot,
|
|
105
|
+
Portal: PopoverPortal,
|
|
106
|
+
Trigger: PopoverTrigger,
|
|
107
|
+
Anchor: PopoverAnchor,
|
|
108
|
+
Arrow: PopoverArrow,
|
|
109
|
+
Close: PopoverClose,
|
|
110
|
+
Content: PopoverContent,
|
|
111
|
+
Viewport: PopoverViewport,
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
export type {
|
|
115
|
+
PopoverRootProps,
|
|
116
|
+
PopoverPortalProps,
|
|
117
|
+
PopoverTriggerProps,
|
|
118
|
+
PopoverAnchorProps,
|
|
119
|
+
PopoverArrowProps,
|
|
120
|
+
PopoverCloseProps,
|
|
121
|
+
PopoverContentProps,
|
|
122
|
+
PopoverViewportProps,
|
|
123
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import '@dxosTheme';
|
|
6
|
+
|
|
7
|
+
import React from 'react';
|
|
8
|
+
|
|
9
|
+
import { ProgressBar } from './ProgressBar';
|
|
10
|
+
|
|
11
|
+
export default {
|
|
12
|
+
component: ProgressBar,
|
|
13
|
+
actions: { argTypesRegex: '^on.*' },
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export const Normal = (props: any) => {
|
|
17
|
+
return (
|
|
18
|
+
<div className='flex flex-col gap-5'>
|
|
19
|
+
<ProgressBar progress={0} {...props} />
|
|
20
|
+
<ProgressBar progress={0.3} {...props} />
|
|
21
|
+
<ProgressBar progress={0.7} {...props} />
|
|
22
|
+
<ProgressBar progress={1} {...props} />
|
|
23
|
+
</div>
|
|
24
|
+
);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export const Indeterminate = (props: any) => {
|
|
28
|
+
return (
|
|
29
|
+
<>
|
|
30
|
+
<ProgressBar className='m-4' indeterminate {...props} />
|
|
31
|
+
</>
|
|
32
|
+
);
|
|
33
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import React from 'react';
|
|
6
|
+
|
|
7
|
+
export type ProgressBarProps = {
|
|
8
|
+
indeterminate?: boolean;
|
|
9
|
+
progress?: number;
|
|
10
|
+
className?: string;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export const ProgressBar = (props: ProgressBarProps) => {
|
|
14
|
+
const { className, indeterminate = false, progress = 0 } = props;
|
|
15
|
+
return (
|
|
16
|
+
<span
|
|
17
|
+
role='none'
|
|
18
|
+
className={'w-20 h-1 inline-block relative bg-neutral-400/25 rounded-full' + (className ? ' ' + className : '')}
|
|
19
|
+
>
|
|
20
|
+
<span
|
|
21
|
+
className={
|
|
22
|
+
'absolute left-0 top-0 bottom-0 inline-block bg-neutral-400 rounded-full' +
|
|
23
|
+
(indeterminate ? ' animate-progress-indeterminate' : '')
|
|
24
|
+
}
|
|
25
|
+
{...(indeterminate ? {} : { style: { width: `${(progress * 100).toFixed(0)}%` } })}
|
|
26
|
+
/>
|
|
27
|
+
</span>
|
|
28
|
+
);
|
|
29
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import '@dxosTheme';
|
|
6
|
+
|
|
7
|
+
import { faker } from '@faker-js/faker';
|
|
8
|
+
import React, { type PropsWithChildren } from 'react';
|
|
9
|
+
|
|
10
|
+
import { groupSurface, surfaceElevation } from '@dxos/react-ui-theme';
|
|
11
|
+
|
|
12
|
+
import { ScrollArea } from './ScrollArea';
|
|
13
|
+
|
|
14
|
+
faker.seed(1234);
|
|
15
|
+
|
|
16
|
+
const StorybookScrollArea = ({ children }: PropsWithChildren<{}>) => {
|
|
17
|
+
return (
|
|
18
|
+
<ScrollArea.Root
|
|
19
|
+
classNames={['is-[300px] bs-[400px] rounded', groupSurface, surfaceElevation({ elevation: 'group' })]}
|
|
20
|
+
>
|
|
21
|
+
<ScrollArea.Viewport classNames='rounded p-4'>
|
|
22
|
+
<p>{children}</p>
|
|
23
|
+
</ScrollArea.Viewport>
|
|
24
|
+
<ScrollArea.Scrollbar orientation='horizontal'>
|
|
25
|
+
<ScrollArea.Thumb />
|
|
26
|
+
</ScrollArea.Scrollbar>
|
|
27
|
+
<ScrollArea.Scrollbar orientation='vertical'>
|
|
28
|
+
<ScrollArea.Thumb />
|
|
29
|
+
</ScrollArea.Scrollbar>
|
|
30
|
+
<ScrollArea.Corner />
|
|
31
|
+
</ScrollArea.Root>
|
|
32
|
+
);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export default {
|
|
36
|
+
component: StorybookScrollArea,
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export const Default = {
|
|
40
|
+
args: {
|
|
41
|
+
children: faker.lorem.paragraphs(5),
|
|
42
|
+
},
|
|
43
|
+
};
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
Root as ScrollAreaPrimitiveRoot,
|
|
7
|
+
type ScrollAreaProps as ScrollAreaPrimitiveRootProps,
|
|
8
|
+
Viewport as ScrollAreaPrimitiveViewport,
|
|
9
|
+
type ScrollAreaViewportProps as ScrollAreaPrimitiveViewportProps,
|
|
10
|
+
Scrollbar as ScrollAreaPrimitiveScrollbar,
|
|
11
|
+
type ScrollAreaScrollbarProps as ScrollAreaPrimitiveScrollbarProps,
|
|
12
|
+
Thumb as ScrollAreaPrimitiveThumb,
|
|
13
|
+
type ScrollAreaThumbProps as ScrollAreaPrimitiveThumbProps,
|
|
14
|
+
Corner as ScrollAreaPrimitiveCorner,
|
|
15
|
+
type ScrollAreaCornerProps as ScrollAreaPrimitiveCornerProps,
|
|
16
|
+
} from '@radix-ui/react-scroll-area';
|
|
17
|
+
import React, { forwardRef } from 'react';
|
|
18
|
+
|
|
19
|
+
import { useThemeContext } from '../../hooks';
|
|
20
|
+
import { type ThemedClassName } from '../../util';
|
|
21
|
+
|
|
22
|
+
type ScrollAreaRootProps = ThemedClassName<ScrollAreaPrimitiveRootProps>;
|
|
23
|
+
|
|
24
|
+
const ScrollAreaRoot = forwardRef<HTMLDivElement, ScrollAreaRootProps>(({ classNames, ...props }, forwardedRef) => {
|
|
25
|
+
const { tx } = useThemeContext();
|
|
26
|
+
return (
|
|
27
|
+
<ScrollAreaPrimitiveRoot
|
|
28
|
+
{...props}
|
|
29
|
+
className={tx('scrollArea.root', 'scroll-area', {}, classNames)}
|
|
30
|
+
ref={forwardedRef}
|
|
31
|
+
/>
|
|
32
|
+
);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
type ScrollAreaViewportProps = ThemedClassName<ScrollAreaPrimitiveViewportProps>;
|
|
36
|
+
|
|
37
|
+
const ScrollAreaViewport = forwardRef<HTMLDivElement, ScrollAreaViewportProps>(
|
|
38
|
+
({ classNames, ...props }, forwardedRef) => {
|
|
39
|
+
const { tx } = useThemeContext();
|
|
40
|
+
return (
|
|
41
|
+
<ScrollAreaPrimitiveViewport
|
|
42
|
+
{...props}
|
|
43
|
+
className={tx('scrollArea.viewport', 'scroll-area', {}, classNames)}
|
|
44
|
+
ref={forwardedRef}
|
|
45
|
+
/>
|
|
46
|
+
);
|
|
47
|
+
},
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
type ScrollAreaScrollbarProps = ThemedClassName<ScrollAreaPrimitiveScrollbarProps>;
|
|
51
|
+
|
|
52
|
+
const ScrollAreaScrollbar = forwardRef<HTMLDivElement, ScrollAreaScrollbarProps>(
|
|
53
|
+
({ classNames, ...props }, forwardedRef) => {
|
|
54
|
+
const { tx } = useThemeContext();
|
|
55
|
+
return (
|
|
56
|
+
<ScrollAreaPrimitiveScrollbar
|
|
57
|
+
{...props}
|
|
58
|
+
className={tx('scrollArea.scrollbar', 'scroll-area__scrollbar', {}, classNames)}
|
|
59
|
+
ref={forwardedRef}
|
|
60
|
+
/>
|
|
61
|
+
);
|
|
62
|
+
},
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
type ScrollAreaThumbProps = ThemedClassName<ScrollAreaPrimitiveThumbProps>;
|
|
66
|
+
|
|
67
|
+
const ScrollAreaThumb = forwardRef<HTMLDivElement, ScrollAreaThumbProps>(({ classNames, ...props }, forwardedRef) => {
|
|
68
|
+
const { tx } = useThemeContext();
|
|
69
|
+
return (
|
|
70
|
+
<ScrollAreaPrimitiveThumb
|
|
71
|
+
{...props}
|
|
72
|
+
className={tx('scrollArea.thumb', 'scroll-area__thumb', {}, classNames)}
|
|
73
|
+
ref={forwardedRef}
|
|
74
|
+
/>
|
|
75
|
+
);
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
type ScrollAreaCornerProps = ThemedClassName<ScrollAreaPrimitiveCornerProps>;
|
|
79
|
+
|
|
80
|
+
const ScrollAreaCorner = forwardRef<HTMLDivElement, ScrollAreaCornerProps>(({ classNames, ...props }, forwardedRef) => {
|
|
81
|
+
const { tx } = useThemeContext();
|
|
82
|
+
return (
|
|
83
|
+
<ScrollAreaPrimitiveCorner
|
|
84
|
+
{...props}
|
|
85
|
+
className={tx('scrollArea.corner', 'scroll-area__corner', {}, classNames)}
|
|
86
|
+
ref={forwardedRef}
|
|
87
|
+
/>
|
|
88
|
+
);
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
export const ScrollArea = {
|
|
92
|
+
Root: ScrollAreaRoot,
|
|
93
|
+
Viewport: ScrollAreaViewport,
|
|
94
|
+
Scrollbar: ScrollAreaScrollbar,
|
|
95
|
+
Thumb: ScrollAreaThumb,
|
|
96
|
+
Corner: ScrollAreaCorner,
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export type {
|
|
100
|
+
ScrollAreaRootProps,
|
|
101
|
+
ScrollAreaViewportProps,
|
|
102
|
+
ScrollAreaScrollbarProps,
|
|
103
|
+
ScrollAreaThumbProps,
|
|
104
|
+
ScrollAreaCornerProps,
|
|
105
|
+
};
|