@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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Check, Copy } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport { Button, getSize, mx, useTranslation } from '@dxos/react-components';\n\nimport { useClipboardContext } from './ClipboardProvider';\n\nexport type CopyButtonProps = {\n value: string;\n};\n\nconst inactiveLabelStyles = 'invisible bs-px -mbe-px';\n\nexport const CopyButton = ({ value }: CopyButtonProps) => {\n const { t } = useTranslation('os');\n const { textValue, setTextValue } = useClipboardContext();\n const isCopied = textValue === value;\n return (\n <Button\n className='inline-flex flex-col justify-center'\n onClick={() => setTextValue(value)}\n data-testid='copy-invitation'\n >\n <div role='none' className={mx('flex gap-1', isCopied && inactiveLabelStyles)}>\n <span className='pli-1'>{t('copy invitation code label')}</span>\n <Copy className={getSize(4)} weight='bold' />\n </div>\n <div role='none' className={mx('flex gap-1', !isCopied && inactiveLabelStyles)}>\n <span className='pli-1'>{t('copy invitation code success label')}</span>\n <Check className={getSize(4)} weight='bold' />\n </div>\n </Button>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { createContext, PropsWithChildren, useCallback, useContext, useState } from 'react';\n\nexport type ClipboardContextValue = {\n textValue: string;\n setTextValue: (nextValue: string) => Promise<void>;\n};\n\nexport const ClipboardContext = createContext<ClipboardContextValue>({\n textValue: '',\n setTextValue: async (_) => {}\n});\n\nexport const useClipboardContext = () => useContext(ClipboardContext);\n\nexport const ClipboardProvider = ({ children }: PropsWithChildren<{}>) => {\n const [textValue, setInternalTextValue] = useState('');\n const setTextValue = useCallback(async (nextValue: string) => {\n await navigator.clipboard.writeText(nextValue);\n return setInternalTextValue(nextValue);\n }, []);\n return <ClipboardContext.Provider value={{ textValue, setTextValue }}>{children}</ClipboardContext.Provider>;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Device } from '@dxos/protocols/proto/dxos/client/services';\n\nimport { IdentityListItem } from './IdentityListItem';\n\nexport interface DeviceListProps {\n devices: Device[];\n onSelect?: (device: Device) => void;\n}\n\nexport const DeviceList = ({ devices, onSelect }: DeviceListProps) => {\n return (\n <ul className='flex flex-col gap-2'>\n {devices.map((device) => {\n const identity = { identityKey: device.deviceKey, profile: { displayName: device.profile?.displayName } };\n return (\n <IdentityListItem\n key={device.deviceKey.toHex()}\n identity={identity}\n onClick={onSelect && (() => onSelect(device))}\n />\n );\n })}\n </ul>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\nimport React from 'react';\n\nimport { Identity, SpaceMember } from '@dxos/client';\nimport { Avatar, mx, useTranslation } from '@dxos/react-components';\n\nexport const IdentityListItem = ({\n identity,\n presence,\n onClick\n}: {\n identity: Identity;\n presence?: SpaceMember['presence'];\n onClick?: () => void;\n}) => {\n const { t } = useTranslation('os');\n return (\n <li\n className={mx('flex gap-2 items-center', onClick && 'cursor-pointer')}\n onClick={() => onClick?.()}\n data-testid='identity-list-item'\n >\n <Avatar\n {...{\n variant: 'circle',\n size: 9,\n fallbackValue: identity.identityKey.toHex(),\n label: <p className='text-sm truncate'>{identity.profile?.displayName ?? identity.identityKey.truncate()}</p>,\n ...(presence === SpaceMember.PresenceState.OFFLINE && {\n status: 'inactive',\n description: (\n <p\n className='font-system-normal text-xs text-neutral-700 dark:text-neutral-300'\n data-testid='identity-list-item.description'\n >\n {t('identity offline description')}\n </p>\n )\n }),\n ...(presence === SpaceMember.PresenceState.ONLINE && { status: 'active' }),\n slots: { labels: { className: 'block shrink overflow-hidden' }, root: { className: 'shrink-0' } }\n }}\n />\n </li>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport type { SpaceMember } from '@dxos/client';\n\nimport { IdentityListItem } from './IdentityListItem';\n\nexport interface SpaceMemberListProps {\n members: SpaceMember[];\n onSelect?: (member: SpaceMember) => void;\n}\n\nexport const SpaceMemberList = ({ members, onSelect }: SpaceMemberListProps) => {\n return (\n <ul className='flex flex-col gap-2'>\n {members\n .filter((member) => member.identity)\n .map((member) => {\n return (\n <IdentityListItem\n key={member.identity.identityKey.toHex()}\n identity={member.identity}\n presence={member.presence}\n onClick={onSelect && (() => onSelect(member))}\n />\n );\n })}\n </ul>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\nimport React, { useMemo } from 'react';\n\nimport { PublicKey } from '@dxos/keys';\nimport { SpaceMember, useClient, useMembers } from '@dxos/react-client';\n\nimport { SpaceMemberList } from './SpaceMemberList';\n\nexport interface SpaceMemberListContainerProps {\n spaceKey: PublicKey;\n includeSelf?: boolean;\n onSelect?: (member: SpaceMember) => void;\n}\n\nexport const SpaceMemberListContainer = ({ spaceKey, includeSelf, onSelect }: SpaceMemberListContainerProps) => {\n const client = useClient();\n const allUnsortedMembers = useMembers(spaceKey);\n const members = useMemo(\n () =>\n includeSelf\n ? allUnsortedMembers.sort((a) =>\n a.identity.identityKey.equals(client.halo.identity.get()!.identityKey) ? -1 : 1\n )\n : allUnsortedMembers.filter(\n (member) => !member.identity.identityKey.equals(client.halo.identity.get()!.identityKey)\n ),\n [allUnsortedMembers]\n );\n return <SpaceMemberList members={members} onSelect={onSelect} />;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { ComponentPropsWithoutRef } from 'react';\n\nimport { getSize, mx } from '@dxos/react-components';\n\nimport { toEmoji } from '../../util';\n\nexport type InvitationEmojiProps = {\n invitationId?: string;\n size?: 'lg' | 'sm';\n} & ComponentPropsWithoutRef<'div'>;\n\nexport const InvitationEmoji = ({ invitationId, size = 'lg', ...rootProps }: InvitationEmojiProps) => {\n const invitationEmoji = invitationId && toEmoji(invitationId);\n return (\n <div\n role='none'\n {...rootProps}\n className={mx(\n getSize(size === 'sm' ? 8 : 12),\n 'inline-flex items-center justify-center leading-none',\n size === 'sm' ? 'text-2xl' : 'text-5xl bg-neutral-300 dark:bg-neutral-700 rounded-full',\n rootProps.className\n )}\n >\n <span role='none'>{invitationEmoji}</span>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Invitation } from '@dxos/client';\n\n/**\n * This map assigns a numeric value to invitation states to facilitate\n * more terse code which uses combinations of `>`, `<`, and `=` instead of\n * longer sequences of `===` and `||` predicates.\n */\nexport const invitationStatusValue = new Map<Invitation.State, number>([\n [Invitation.State.ERROR, -3],\n [Invitation.State.TIMEOUT, -2],\n [Invitation.State.CANCELLED, -1],\n [Invitation.State.INIT, 0],\n [Invitation.State.CONNECTING, 1],\n [Invitation.State.CONNECTED, 2],\n [Invitation.State.READY_FOR_AUTHENTICATION, 3],\n [Invitation.State.AUTHENTICATING, 4],\n [Invitation.State.SUCCESS, 5]\n]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport toArray from 'lodash.toarray';\n\nconst emoji = toArray(\n // When changing this set, please check the result in a console or e.g. RunKit (https://runkit.com/thure/642214441dd6ae000855a8de)\n // Emoji sometimes use a combination of code points, and some code points aren't visible on their own, so by adding or deleting you may unintentionally create non-visible items.\n // This set was chosen from the characters in Unicode Emoji v15.0 based on the following criteria:\n // – not people or isolated anthropomorphic faces\n // – not flags\n // – more concrete than abstract\n // – less culturally specific\n // – less easily confused with another emoji in the set\n // – requires less special knowledge to identify\n // – less likely to evoke negative feelings (no meat, no drugs, no weapons, etc)\n // – less common as a signifier in UX\n '👹👻👽🤖🎃🦾🦿🦷👣👁️🧶👑🐒🦆🦉🐴🦄🐝🦋🐞🪲🐢🦎🦕🦑🦀🐠🐬🐋🦭🐅🐆🦓🦍🦧🐘🐫🦒🦘🦬🐖🐏🦌🐕🐈🐓🦚🦜🦢🦩🦦🐁🐿️🌵🌲🌳🪵🌱🍁🪺🍄🐚🪸🪨🌾🌷🌻☀️🌙🪐⭐️⚡️☄️🔥🌈☁️💧⛱️🌊🍎🍋🍉🍇🫐🍈🍒🍑🥭🍍🥥🥝🥑🌶️🌽🥕🍬🥜🫖☕️🍵🧊🧂🏔️⚓️🛟🏝️🛶🚀🛰️⛲️🏰🚲⛺️🎙️🧲⚙️🔩🔮🔭🔬🧬🌡️🧺🛎️🔑🪑🧸🎈🎀🎊♻️🎵'\n);\n\nexport const toEmoji = (keyAsHex: string) => emoji[parseInt(keyAsHex, 16) % emoji.length];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { ComponentPropsWithoutRef } from 'react';\n\nimport { Invitation } from '@dxos/client';\nimport { getSize, mx, Size } from '@dxos/react-components';\n\nimport { inactiveStrokeColor, activeStrokeColor, resolvedStrokeColor } from '../../styles';\nimport { invitationStatusValue } from '../../util';\nimport { InvitationEmoji } from '../InvitationEmoji';\n\nexport interface InvitationStatusAvatarSlots {\n svg?: ComponentPropsWithoutRef<'svg'>;\n}\n\nexport interface InvitationStatusAvatarProps {\n size?: Size;\n status: Invitation.State;\n haltedAt?: Invitation.State;\n slots?: InvitationStatusAvatarSlots;\n invitationId?: string;\n}\n\nconst svgSize = 32;\nconst strokeWidth = 5;\nconst radius = (svgSize - strokeWidth) / 2;\nconst circumference = Math.PI * 2 * radius;\nconst gap = circumference / 12;\nconst nSegments = 3;\nconst segment = circumference / nSegments;\nconst baseOffset = (2 * circumference) / 3 - (segment - gap) / 2;\n\nconst circleProps: ComponentPropsWithoutRef<'circle'> = {\n fill: 'none',\n strokeLinecap: 'round',\n cx: svgSize / 2,\n cy: svgSize / 2,\n r: radius,\n strokeWidth,\n strokeDasharray: `${segment - gap} ${2 * segment + gap}`\n};\n\nexport const InvitationStatusAvatar = ({\n size = 10,\n status,\n haltedAt,\n slots = {},\n invitationId\n}: InvitationStatusAvatarProps) => {\n const resolvedColor = resolvedStrokeColor(status);\n const halted =\n status === Invitation.State.CANCELLED || status === Invitation.State.TIMEOUT || status === Invitation.State.ERROR;\n const cursor = invitationStatusValue.get(halted ? haltedAt! : status)!;\n return (\n <div className='inline-block relative'>\n <InvitationEmoji {...{ invitationId }} size='sm' className='absolute inset-0 text-base' />\n <svg {...slots.svg} viewBox={`0 0 ${svgSize} ${svgSize}`} className={mx(getSize(size), slots.svg?.className)}>\n {[...Array(nSegments)].map((_, index) => (\n <circle\n key={index}\n {...circleProps}\n strokeDashoffset={index * segment + baseOffset}\n className={\n index === 0\n ? cursor === 1\n ? halted\n ? resolvedColor\n : activeStrokeColor\n : cursor > 1\n ? resolvedColor\n : inactiveStrokeColor\n : index === 1\n ? cursor === 3\n ? halted\n ? resolvedColor\n : activeStrokeColor\n : cursor > 3\n ? resolvedColor\n : inactiveStrokeColor\n : cursor > 3\n ? resolvedColor\n : inactiveStrokeColor\n }\n />\n ))}\n </svg>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const defaultOverlay =\n 'fixed inset-0 backdrop-blur z-50 overflow-auto grid place-items-center p-2 md:p-4 lg:p-8';\n\nexport const defaultDialogContent = 'is-full min-is-[260px] max-is-[320px] rounded-md shadow-md backdrop-blur-md';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const defaultSurface = 'bg-neutral-50/[.72] dark:bg-neutral-950/[.72]';\nexport const subduedSurface = 'bg-neutral-100/[.66] dark:bg-neutral-900/[.66]';\nexport const defaultArrow = 'text-neutral-50/[.66] dark:text-neutral-950/[.66]';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Invitation } from '@dxos/client';\n\nexport const inactiveBgColor = 'bg-neutral-100 dark:bg-neutral-600';\nexport const activeBgColor = 'bg-primary-500 dark:bg-primary-400';\nexport const successBgColor = 'bg-success-500 dark:bg-success-400';\nexport const errorBgColor = 'bg-error-500 dark:bg-error-400';\nexport const cancelledBgColor = 'bg-warning-500 dark:bg-warning-400';\n\nexport const inactiveTextColor = 'text-neutral-100 dark:text-neutral-600';\nexport const activeTextColor = 'text-primary-400 dark:text-primary-500';\nexport const successTextColor = 'text-success-400 dark:text-success-500';\nexport const errorTextColor = 'text-error-400 dark:text-error-500';\nexport const cancelledTextColor = 'text-warning-400 dark:text-warning-500';\n\nexport const inactiveStrokeColor = 'stroke-neutral-100 dark:stroke-neutral-700';\nexport const activeStrokeColor = 'stroke-primary-500 dark:stroke-primary-150';\nexport const successStrokeColor = 'stroke-success-400 dark:stroke-primary-400';\nexport const errorStrokeColor = 'stroke-error-400 dark:stroke-error-500';\nexport const cancelledStrokeColor = 'stroke-warning-400 dark:stroke-warning-500';\n\nexport const resolvedStrokeColor = (status: Invitation.State) =>\n status === Invitation.State.ERROR\n ? errorStrokeColor\n : status === Invitation.State.CANCELLED || status === Invitation.State.TIMEOUT\n ? cancelledStrokeColor\n : successStrokeColor;\nexport const resolvedBgColor = (status: Invitation.State) =>\n status === Invitation.State.ERROR\n ? errorBgColor\n : status === Invitation.State.CANCELLED || status === Invitation.State.TIMEOUT\n ? cancelledBgColor\n : successBgColor;\nexport const resolvedTextColor = (status: Invitation.State) =>\n status === Invitation.State.ERROR\n ? errorTextColor\n : status === Invitation.State.CANCELLED || status === Invitation.State.TIMEOUT\n ? cancelledTextColor\n : successTextColor;\n", "//\n// Copyright 2023 DXOS.org\n//\nimport { ProhibitInset, QrCode, X } from '@phosphor-icons/react';\nimport * as AccordionPrimitive from '@radix-ui/react-accordion';\nimport { QRCodeSVG } from 'qrcode.react';\nimport React, { useCallback } from 'react';\n\nimport { CancellableInvitationObservable } from '@dxos/client';\nimport { useInvitationStatus } from '@dxos/react-client';\nimport { Button, getSize, mx, useId, useTranslation } from '@dxos/react-components';\n\nimport { invitationStatusValue } from '../../util';\nimport { CopyButton } from '../Clipboard';\nimport { SharedInvitationListProps } from './InvitationListProps';\nimport { InvitationStatusAvatar } from './InvitationStatusAvatar';\n\nexport interface InvitationListItemProps extends SharedInvitationListProps {\n invitation: CancellableInvitationObservable;\n value: string;\n onClickRemove: (invitation: CancellableInvitationObservable) => void;\n}\n\nexport const InvitationListItem = ({\n invitation,\n value,\n onClickRemove,\n createInvitationUrl\n}: InvitationListItemProps) => {\n const { t } = useTranslation('os');\n const qrLabel = useId('qrLabel');\n\n const { cancel, status, haltedAt, invitationCode, authCode } = useInvitationStatus(invitation);\n const statusValue = invitationStatusValue.get(status) ?? 0;\n\n const isCancellable = statusValue < 5 && statusValue >= 0;\n const showShare = statusValue < 3 && statusValue >= 0;\n const showAuthCode = statusValue === 3;\n\n const handleClickRemove = useCallback(() => onClickRemove(invitation), [invitation, onClickRemove]);\n\n const invitationUrl = invitationCode && createInvitationUrl(invitationCode);\n\n return (\n <AccordionPrimitive.Item value={value}>\n <AccordionPrimitive.Header className='flex gap-2 items-center'>\n <InvitationStatusAvatar {...{ status, haltedAt, size: 8, invitationId: invitation?.get().invitationId }} />\n {showShare && invitationUrl ? (\n <>\n <AccordionPrimitive.Trigger asChild>\n <Button className='grow flex gap-1' data-testid='show-qrcode'>\n <span>{t('open share panel label')}</span>\n <QrCode className={getSize(4)} weight='bold' />\n </Button>\n </AccordionPrimitive.Trigger>\n <CopyButton value={invitationUrl} />\n </>\n ) : showAuthCode ? (\n <p className='grow text-xl text-center text-success-500 dark:text-success-300 font-mono'>{authCode}</p>\n ) : (\n <span role='none' className='grow' />\n )}\n {isCancellable ? (\n <Button variant='ghost' className='flex gap-1' onClick={cancel} data-testid='cancel-invitation'>\n <span className='sr-only'>{t('cancel invitation label')}</span>\n <ProhibitInset className={getSize(4)} weight='bold' />\n </Button>\n ) : (\n <Button variant='ghost' className='flex gap-1' onClick={handleClickRemove} data-testid='remove-invitation'>\n <span className='sr-only'>{t('remove invitation label')}</span>\n <X className={getSize(4)} weight='bold' />\n </Button>\n )}\n </AccordionPrimitive.Header>\n {showShare && invitationUrl && (\n <AccordionPrimitive.Content className='flex gap-2 is-full radix-state-open:p-1 items-center'>\n <QRCodeSVG\n bgColor='transparent'\n fgColor='currentColor'\n value={invitationUrl}\n className={mx('grow-[2] aspect-square is-24 bs-auto')}\n aria-labelledby={qrLabel}\n />\n <span className='pli-1 flex-1 font-system-normal text-sm text-center' id={qrLabel}>\n {t('qr label')}\n </span>\n </AccordionPrimitive.Content>\n )}\n </AccordionPrimitive.Item>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\nimport React, { useCallback } from 'react';\n\nimport type { CancellableInvitationObservable } from '@dxos/client';\nimport { PublicKey } from '@dxos/keys';\nimport { useSpace, useSpaceInvitations } from '@dxos/react-client';\n\nimport { InvitationList } from './InvitationList';\nimport { SharedInvitationListProps } from './InvitationListProps';\n\nexport interface InvitationListContainerProps extends SharedInvitationListProps {\n spaceKey: PublicKey;\n}\n\nexport const InvitationListContainer = ({ spaceKey, createInvitationUrl }: InvitationListContainerProps) => {\n const space = useSpace(spaceKey);\n const invitations = useSpaceInvitations(spaceKey);\n const onClickRemove = useCallback(\n (invitation: CancellableInvitationObservable) => {\n void invitation.cancel();\n },\n [space]\n );\n return <InvitationList invitations={invitations} {...{ onClickRemove, createInvitationUrl }} />;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\nimport { Root as AccordionRoot } from '@radix-ui/react-accordion';\nimport React from 'react';\n\nimport type { CancellableInvitationObservable } from '@dxos/client';\nimport { defaultDescription, DensityProvider, mx, useTranslation } from '@dxos/react-components';\n\nimport { ClipboardProvider } from '../Clipboard';\nimport { InvitationListItem, InvitationListItemProps } from './InvitationListItem';\n\nexport interface InvitationListProps extends Omit<InvitationListItemProps, 'invitation' | 'value'> {\n invitations: CancellableInvitationObservable[];\n}\n\nexport const InvitationList = ({ invitations, ...invitationProps }: InvitationListProps) => {\n const { t } = useTranslation('os');\n return invitations.length ? (\n <AccordionRoot type='single' collapsible className='flex flex-col gap-1'>\n <DensityProvider density='fine'>\n <ClipboardProvider>\n {invitations.map((invitation) => {\n const value = invitation.get().invitationId;\n return <InvitationListItem key={value} value={value} invitation={invitation} {...invitationProps} />;\n })}\n </ClipboardProvider>\n </DensityProvider>\n </AccordionRoot>\n ) : (\n <p className={mx(defaultDescription, 'text-center p-2')}>{t('empty invitations message')}</p>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { ComponentProps } from 'react';\n\nimport { mx } from '@dxos/react-components';\n\nexport const PanelSeparator = ({ className, ...props }: ComponentProps<'span'>) => {\n return (\n <span\n role='none'\n {...props}\n className={mx('block bs-px mlb-1 bg-neutral-800/10 dark:bg-neutral-200/10', className)}\n />\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { ForwardedRef, forwardRef } from 'react';\n\nimport type { Space } from '@dxos/client';\nimport { Avatar, mx } from '@dxos/react-components';\nimport { humanize } from '@dxos/util';\n\nexport const SpaceListItem = forwardRef(\n ({ space, onClick }: { space: Space; onClick?: () => void }, ref: ForwardedRef<HTMLLIElement>) => {\n return (\n <li\n className={mx('flex gap-2 items-center mbe-2', onClick && 'cursor-pointer')}\n onClick={() => onClick?.()}\n ref={ref}\n data-testid='space-list-item'\n >\n <Avatar\n {...{\n variant: 'circle',\n size: 9,\n fallbackValue: space.key.toHex(),\n label: <p className='text-sm truncate'>{space.properties.name ?? humanize(space.key)}</p>,\n slots: { labels: { className: 'block shrink overflow-hidden' }, root: { className: 'shrink-0' } }\n }}\n />\n </li>\n );\n }\n);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { ComponentProps } from 'react';\n\nimport { Identity } from '@dxos/client';\nimport { Avatar, mx } from '@dxos/react-components';\n\nimport { PanelPopover } from '../../layouts';\nimport { IdentityPanel } from '../../panels';\n\nexport interface IdentityPopoverProps extends Partial<ComponentProps<typeof PanelPopover>> {\n identity: Identity;\n onClickManageProfile?: () => void;\n}\n\nexport const IdentityPopover = ({\n identity,\n openTrigger,\n slots,\n triggerIsInToolbar = true,\n onClickManageProfile,\n ...popoverProps\n}: IdentityPopoverProps) => {\n return (\n <PanelPopover\n {...popoverProps}\n openTrigger={\n openTrigger ?? (\n <Avatar\n size={10}\n variant='circle'\n fallbackValue={identity.identityKey.toHex()}\n label={identity.profile?.displayName ?? ''}\n />\n )\n }\n slots={{\n ...slots,\n trigger: {\n ...slots?.trigger,\n className: mx(\n 'flex justify-self-end pointer-events-auto bg-white dark:bg-neutral-700 p-0.5 button-elevation rounded-full',\n slots?.trigger?.className\n )\n }\n }}\n triggerIsInToolbar={triggerIsInToolbar}\n >\n <IdentityPanel {...{ identity, onClickManageProfile }} />\n </PanelPopover>\n );\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport React, { ComponentProps } from 'react';\n\nimport { mx, Popover } from '@dxos/react-components';\n\nimport { defaultSurface, defaultArrow } from '../../styles';\n\n/**\n * This component essentially sets default styles for popovers which have panels as their content\n * @param slots\n * @param children\n * @param popoverProps\n * @constructor\n */\nexport const PanelPopover = ({ slots, children, ...popoverProps }: ComponentProps<typeof Popover>) => {\n return (\n <Popover\n slots={{\n arrow: { ...slots?.arrow, className: mx(defaultArrow, slots?.arrow?.className) },\n content: {\n collisionPadding: 8,\n sideOffset: 4,\n ...slots?.content,\n className: mx(defaultSurface, slots?.content?.className)\n },\n trigger: {\n ...slots?.trigger,\n className: mx('', slots?.trigger?.className)\n },\n ...slots\n }}\n {...popoverProps}\n >\n {children}\n </Popover>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport React, {\n ComponentProps,\n createContext,\n Dispatch,\n PropsWithChildren,\n SetStateAction,\n useCallback,\n useContext,\n useState\n} from 'react';\n\nimport { defaultOverlay, mx, useMediaQuery, useTranslation } from '@dxos/react-components';\n\nexport type PanelSidebarState = 'show' | 'hide';\n\nexport interface PanelSidebarContextValue {\n setDisplayState: Dispatch<SetStateAction<PanelSidebarState>>;\n displayState: PanelSidebarState;\n}\n\nexport const PanelSidebarContext = createContext<PanelSidebarContextValue>({\n displayState: 'hide',\n setDisplayState: () => {}\n});\n\nexport const useTogglePanelSidebar = () => {\n const { displayState, setDisplayState } = useContext(PanelSidebarContext);\n return useCallback(() => {\n setDisplayState(displayState === 'hide' ? 'show' : 'hide');\n }, [displayState]);\n};\n\nexport interface PanelSidebarProviderSlots {\n content?: ComponentProps<typeof DialogPrimitive.Content>;\n main?: ComponentProps<'div'>;\n}\n\nexport interface PanelSidebarProviderProps {\n inlineStart?: boolean;\n slots?: PanelSidebarProviderSlots;\n}\n\nexport const PanelSidebarProvider = ({ children, slots }: PropsWithChildren<PanelSidebarProviderProps>) => {\n const { t } = useTranslation('os');\n const [isLg] = useMediaQuery('lg', { ssr: false });\n const [displayState, setInternalDisplayState] = useState<PanelSidebarState>(isLg ? 'show' : 'hide');\n const isOpen = displayState === 'show';\n const [transitionShow, setTransitionShow] = useState(isOpen);\n const [domShow, setDomShow] = useState(isOpen);\n\n const internalHide = () => {\n setTransitionShow(false);\n setInternalDisplayState('hide');\n setTimeout(() => {\n setDomShow(false);\n }, 200);\n };\n\n const internalShow = () => {\n setDomShow(true);\n setInternalDisplayState('show');\n setTimeout(() => {\n setTransitionShow(true);\n // todo (thure): this may be a race condition in certain situations\n }, 0);\n };\n\n const setDisplayState = (displayState: SetStateAction<PanelSidebarState>) =>\n displayState === 'show' ? internalShow() : internalHide();\n\n return (\n <PanelSidebarContext.Provider value={{ setDisplayState, displayState }}>\n <DialogPrimitive.Root open={domShow} modal={false}>\n {/* todo(thure): Why does DialogPrimitive.Overlay not render any element here? */}\n {!isLg && (\n <div\n role='none'\n className={mx(\n defaultOverlay,\n 'transition-opacity duration-200 ease-in-out',\n transitionShow ? 'opacity-100' : 'opacity-0',\n domShow ? 'block' : 'hidden'\n )}\n onClick={internalHide}\n />\n )}\n\n {/* Sidebar. */}\n <DialogPrimitive.Content\n onOpenAutoFocus={(event) => isLg && event.preventDefault()}\n onCloseAutoFocus={(event) => isLg && event.preventDefault()}\n {...slots?.content}\n className={mx(\n 'fixed block-start-0 block-end-0 is-sidebar z-30 overscroll-contain overflow-x-hidden overflow-y-auto',\n 'transition-[inset-inline-start,inset-inline-end] duration-200 ease-in-out',\n transitionShow ? 'inline-start-0' : '-inline-start-sidebar',\n slots?.content?.className\n )}\n >\n <DialogPrimitive.Title className='sr-only'>{t('sidebar label')}</DialogPrimitive.Title>\n {slots?.content?.children}\n </DialogPrimitive.Content>\n\n {/* Main content. */}\n <div\n role='none'\n {...slots?.main}\n className={mx(\n 'transition-[padding-inline-start] duration-200 ease-in-out',\n isLg && isOpen ? 'pis-sidebar' : 'pis-0',\n slots?.main?.className\n )}\n >\n {children}\n </div>\n </DialogPrimitive.Root>\n </PanelSidebarContext.Provider>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as AlertDialog from '@radix-ui/react-alert-dialog';\nimport React, { ComponentPropsWithoutRef, PropsWithChildren } from 'react';\n\nimport { mx } from '@dxos/react-components';\n\nimport { defaultDialogContent, defaultOverlay } from '../../styles';\n\nexport interface PanelAlertDialogSlots {\n root: ComponentPropsWithoutRef<typeof AlertDialog.Root>;\n overlay: ComponentPropsWithoutRef<typeof AlertDialog.Overlay>;\n content: ComponentPropsWithoutRef<typeof AlertDialog.Content>;\n trigger: ComponentPropsWithoutRef<typeof AlertDialog.Trigger>;\n}\n\nexport type PanelAlertDialogProps = PropsWithChildren<{\n titleId: string;\n slots?: Partial<PanelAlertDialogSlots>;\n}>;\n\nexport const PanelAlertDialog = ({ titleId, slots = {}, children }: PanelAlertDialogProps) => {\n return (\n <AlertDialog.Root defaultOpen {...slots.root}>\n {slots.trigger && <AlertDialog.Trigger {...slots.trigger} />}\n <AlertDialog.Overlay {...slots.overlay} className={mx(defaultOverlay, 'z-40', slots.overlay?.className)}>\n <AlertDialog.Content\n onEscapeKeyDown={(event) => event.preventDefault()}\n {...slots.content}\n aria-labelledby={titleId}\n className={mx(defaultDialogContent, slots.content?.className)}\n >\n {children}\n </AlertDialog.Content>\n </AlertDialog.Overlay>\n </AlertDialog.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Dialog from '@radix-ui/react-dialog';\nimport React, { ComponentPropsWithoutRef, PropsWithChildren } from 'react';\n\nimport { mx } from '@dxos/react-components';\n\nimport { defaultDialogContent, defaultOverlay } from '../../styles';\n\nexport interface PanelDialogSlots {\n root: ComponentPropsWithoutRef<typeof Dialog.Root>;\n overlay: ComponentPropsWithoutRef<typeof Dialog.Overlay>;\n content: ComponentPropsWithoutRef<typeof Dialog.Content>;\n trigger: ComponentPropsWithoutRef<typeof Dialog.Trigger>;\n}\n\nexport type PanelDialogProps = PropsWithChildren<{\n titleId: string;\n slots?: Partial<PanelDialogSlots>;\n}>;\n\nexport const PanelDialog = ({ titleId, slots = {}, children }: PanelDialogProps) => {\n return (\n <Dialog.Root defaultOpen {...slots.root}>\n {slots.trigger && <Dialog.Trigger {...slots.trigger} />}\n <Dialog.Overlay {...slots.overlay} className={mx(defaultOverlay, 'z-40', slots.overlay?.className)}>\n <Dialog.Content\n onOpenAutoFocus={(event) => event.preventDefault()}\n onCloseAutoFocus={(event) => event.preventDefault()}\n {...slots.content}\n aria-labelledby={titleId}\n className={mx(defaultDialogContent, slots.content?.className)}\n >\n {children}\n </Dialog.Content>\n </Dialog.Overlay>\n </Dialog.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { UserPlus, X } from '@phosphor-icons/react';\nimport React, { cloneElement, useReducer } from 'react';\n\nimport { useClient, useDevices, useHaloInvitations, useIdentity } from '@dxos/react-client';\nimport {\n Button,\n DensityProvider,\n getSize,\n mx,\n TooltipContent,\n TooltipRoot,\n TooltipTrigger,\n useTranslation\n} from '@dxos/react-components';\n\nimport { DeviceList, InvitationList, PanelSeparator } from '../../components';\nimport { defaultSurface, subduedSurface } from '../../styles';\n\nexport type DevicesPanelProps = {\n titleId?: string;\n createInvitationUrl: (invitationCode: string) => string;\n doneActionParent?: Parameters<typeof cloneElement>[0];\n onDone?: () => void;\n};\n\nexport type DevicesView = 'device list';\n\nconst DeviceListView = ({ createInvitationUrl, titleId, onDone, doneActionParent }: DevicesPanelProps) => {\n const { t } = useTranslation('os');\n const client = useClient();\n const identity = useIdentity();\n const devices = useDevices();\n const invitations = useHaloInvitations();\n const displayName = identity?.profile?.displayName;\n\n if (!identity) {\n return null;\n }\n\n const doneButton = (\n <Button variant='ghost' onClick={() => onDone?.()} data-testid='show-all-spaces'>\n <X className={getSize(4)} weight='bold' />\n </Button>\n );\n\n return (\n <div role='none' className='flex flex-col'>\n <div role='none' className={mx(subduedSurface, 'rounded-bs-md flex items-center p-2 gap-2')}>\n {/* TODO(wittjosiah): Label this as the identity panel. */}\n <h2 id={titleId} className={mx('grow font-system-medium', !displayName && 'font-mono')}>\n {displayName ?? identity.identityKey.truncate()}\n </h2>\n <TooltipRoot>\n <TooltipContent className='z-50'>{t('close label')}</TooltipContent>\n <TooltipTrigger asChild>\n {doneActionParent ? cloneElement(doneActionParent, {}, doneButton) : doneButton}\n </TooltipTrigger>\n </TooltipRoot>\n </div>\n <div role='region' className={mx(defaultSurface, 'rounded-be-md p-2')}>\n <InvitationList\n invitations={invitations}\n onClickRemove={(invitation) => invitation.cancel()}\n createInvitationUrl={createInvitationUrl}\n />\n <Button\n className='is-full flex gap-2 mbs-2'\n onClick={() => client.halo.createInvitation()}\n data-testid='devices-panel.create-invitation'\n >\n <span>{t('create device invitation label')}</span>\n <UserPlus className={getSize(4)} weight='bold' />\n </Button>\n <PanelSeparator />\n <DeviceList devices={devices} />\n </div>\n </div>\n );\n};\n\ntype DevicesPanelState = {\n activeView: DevicesView;\n};\n\ntype DevicesPanelAction = {\n type: null;\n};\n\n// TODO(wittjosiah): Rename identity panel and include other views?\nexport const DevicesPanel = (props: DevicesPanelProps) => {\n const reducer = (state: DevicesPanelState, action: DevicesPanelAction) => {\n const nextState = { ...state };\n switch (action.type) {\n case null:\n }\n return nextState;\n };\n\n const [panelState] = useReducer(reducer, {\n activeView: 'device list'\n });\n\n // TODO(wittjosiah): Use ViewState or similar.\n return (\n <DensityProvider density='fine'>\n {panelState.activeView === 'device list' ? <DeviceListView {...props} /> : null}\n </DensityProvider>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\nimport React from 'react';\n\nimport type { Identity } from '@dxos/client';\nimport { useClient } from '@dxos/react-client';\nimport { Avatar, Button, DensityProvider, ThemeContext, useThemeContext, useTranslation } from '@dxos/react-components';\n\nexport const IdentityPanel = ({\n identity,\n onClickManageProfile\n}: {\n identity: Identity;\n onClickManageProfile?: () => void;\n}) => {\n const { t } = useTranslation('os');\n const client = useClient();\n const themeContextValue = useThemeContext();\n\n const defaultManageProfile = () => {\n const remoteSource = new URL(client?.config.get('runtime.client.remoteSource') || 'https://halo.dxos.org');\n const tab = window.open(remoteSource.origin, '_blank');\n tab?.focus();\n };\n return (\n <ThemeContext.Provider value={{ ...themeContextValue, themeVariant: 'os' }}>\n <DensityProvider density='fine'>\n <div className='flex flex-col gap-2 justify-center items-center'>\n <Avatar\n size={16}\n variant='circle'\n fallbackValue={identity.identityKey.toHex()}\n label={identity.profile?.displayName ?? ''}\n />\n <Button onClick={onClickManageProfile ?? defaultManageProfile} className='is-full'>\n {t('manage profile label')}\n </Button>\n </div>\n </DensityProvider>\n </ThemeContext.Provider>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\nimport React, { useEffect } from 'react';\n\nimport { log } from '@dxos/log';\nimport { useClient, useIdentity } from '@dxos/react-client';\nimport { DensityProvider, useId, useThemeContext } from '@dxos/react-components';\n\nimport { JoinHeading } from './JoinHeading';\nimport { JoinPanelProps } from './JoinPanelProps';\nimport { useJoinMachine } from './joinMachine';\nimport {\n AdditionMethodSelector,\n IdentityInput,\n IdentityAdded,\n InvitationAuthenticator,\n InvitationRescuer,\n InvitationInput,\n InvitationAccepted\n} from './view-states';\n\nexport const JoinPanel = ({\n mode = 'default',\n initialInvitationCode,\n exitActionParent,\n onExit,\n doneActionParent,\n onDone,\n preventExit\n}: JoinPanelProps) => {\n const client = useClient();\n const identity = useIdentity();\n const titleId = useId('joinPanel__title');\n const { hasIosKeyboard } = useThemeContext();\n\n const [joinState, joinSend, joinService] = useJoinMachine(client, {\n context: {\n mode,\n identity,\n ...(initialInvitationCode && {\n [mode === 'halo-only' ? 'halo' : 'space']: { unredeemedCode: initialInvitationCode }\n })\n }\n });\n\n useEffect(() => {\n const subscription = joinService.subscribe((state) => {\n log('[state]', state);\n });\n\n return subscription.unsubscribe;\n }, [joinService]);\n\n useEffect(() => {\n // TODO(thure): Validate if this is sufficiently synchronous for iOS to move focus. It might not be!\n const stateStack = joinState.configuration[0].id.split('.');\n const innermostState = stateStack[stateStack.length - 1];\n const autoFocusValue = innermostState === 'finishingJoining' ? 'successSpaceInvitation' : innermostState;\n const $nextAutofocus: HTMLElement | null = document.querySelector(`[data-autofocus~=\"${autoFocusValue}\"]`);\n if ($nextAutofocus && !(hasIosKeyboard && $nextAutofocus.hasAttribute('data-prevent-ios-autofocus'))) {\n $nextAutofocus.focus();\n }\n }, [joinState.value, hasIosKeyboard]);\n\n return (\n <DensityProvider density='fine'>\n <JoinHeading {...{ mode, titleId, joinState, onExit, exitActionParent, preventExit }} />\n <div role='none' className='is-full overflow-hidden'>\n <div role='none' className='flex is-[1200%]' aria-live='polite'>\n <AdditionMethodSelector\n {...{\n joinState,\n joinSend,\n active: joinState.matches({ choosingIdentity: 'choosingAuthMethod' })\n }}\n />\n <IdentityInput\n {...{\n joinState,\n joinSend,\n active: joinState.matches({ choosingIdentity: 'creatingIdentity' }),\n method: 'create identity'\n }}\n />\n <IdentityInput\n {...{\n joinState,\n joinSend,\n active: joinState.matches({ choosingIdentity: 'recoveringIdentity' }),\n method: 'recover identity'\n }}\n />\n <InvitationInput\n {...{\n joinState,\n joinSend,\n active: joinState.matches({\n choosingIdentity: { acceptingHaloInvitation: 'inputtingHaloInvitationCode' }\n }),\n Kind: 'Halo'\n }}\n />\n <InvitationRescuer\n {...{\n joinState,\n joinSend,\n active: [\n {\n choosingIdentity: {\n acceptingHaloInvitation: { acceptingRedeemedHaloInvitation: 'connectingHaloInvitation' }\n }\n },\n {\n choosingIdentity: {\n acceptingHaloInvitation: { acceptingRedeemedHaloInvitation: 'failingHaloInvitation' }\n }\n }\n ].some(joinState.matches),\n Kind: 'Halo'\n }}\n />\n <InvitationAuthenticator\n {...{\n joinState,\n joinSend,\n active: [\n {\n choosingIdentity: {\n acceptingHaloInvitation: { acceptingRedeemedHaloInvitation: 'inputtingHaloVerificationCode' }\n }\n },\n {\n choosingIdentity: {\n acceptingHaloInvitation: { acceptingRedeemedHaloInvitation: 'authenticatingHaloVerificationCode' }\n }\n },\n {\n choosingIdentity: {\n acceptingHaloInvitation: {\n acceptingRedeemedHaloInvitation: 'authenticationFailingHaloVerificationCode'\n }\n }\n }\n ].some(joinState.matches),\n Kind: 'Halo',\n ...(joinState.matches({\n acceptingHaloInvitation: {\n acceptingRedeemedHaloInvitation: 'authenticationFailingHaloVerificationCode'\n }\n }) && { failed: true })\n }}\n />\n <InvitationAccepted\n {...{\n joinState,\n joinSend,\n active: [\n {\n choosingIdentity: {\n acceptingHaloInvitation: { acceptingRedeemedHaloInvitation: 'successHaloInvitation' }\n }\n },\n 'finishingJoiningHalo'\n ].some(joinState.matches),\n Kind: 'Halo',\n doneActionParent,\n onDone\n }}\n />\n <IdentityAdded\n {...{\n joinState,\n joinSend,\n mode,\n active: joinState.matches({\n choosingIdentity: 'confirmingAddedIdentity'\n }),\n doneActionParent,\n onDone\n }}\n />\n <InvitationInput\n {...{\n joinState,\n joinSend,\n active: joinState.matches({\n acceptingSpaceInvitation: 'inputtingSpaceInvitationCode'\n }),\n Kind: 'Space'\n }}\n />\n <InvitationRescuer\n {...{\n joinState,\n joinSend,\n active: [\n {\n acceptingSpaceInvitation: { acceptingRedeemedSpaceInvitation: 'connectingSpaceInvitation' }\n },\n {\n acceptingSpaceInvitation: { acceptingRedeemedSpaceInvitation: 'failingSpaceInvitation' }\n }\n ].some(joinState.matches),\n Kind: 'Space'\n }}\n />\n <InvitationAuthenticator\n {...{\n joinState,\n joinSend,\n active: [\n {\n acceptingSpaceInvitation: { acceptingRedeemedSpaceInvitation: 'inputtingSpaceVerificationCode' }\n },\n {\n acceptingSpaceInvitation: { acceptingRedeemedSpaceInvitation: 'authenticatingSpaceVerificationCode' }\n },\n {\n acceptingSpaceInvitation: {\n acceptingRedeemedSpaceInvitation: 'authenticationFailingSpaceVerificationCode'\n }\n }\n ].some(joinState.matches),\n Kind: 'Space',\n ...(joinState.matches({\n acceptingSpaceInvitation: {\n acceptingRedeemedSpaceInvitation: 'authenticationFailingSpaceVerificationCode'\n }\n }) && { failed: true })\n }}\n />\n <InvitationAccepted\n {...{\n joinState,\n joinSend,\n active: joinState.matches('finishingJoiningSpace'),\n Kind: 'Space',\n doneActionParent,\n onDone\n }}\n />\n </div>\n </div>\n </DensityProvider>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\nimport { X } from '@phosphor-icons/react';\nimport React, { cloneElement, ForwardedRef, forwardRef } from 'react';\n\nimport { useSpace } from '@dxos/react-client';\nimport { Button, defaultDescription, getSize, Heading, mx, useId, useTranslation } from '@dxos/react-components';\n\nimport { InvitationEmoji } from '../../components';\nimport { defaultSurface } from '../../styles';\nimport { JoinPanelMode } from './JoinPanelProps';\nimport { JoinState } from './joinMachine';\n\nexport interface JoinSpaceHeadingProps {\n mode?: JoinPanelMode;\n titleId: string;\n joinState?: JoinState;\n onExit?: () => void;\n exitActionParent?: Parameters<typeof cloneElement>[0];\n preventExit?: boolean;\n}\n\n// TODO(wittjosiah): Accesses the space properties directly which will trigger ECHO warnings without observer.\nexport const JoinHeading = forwardRef(\n (\n { mode, titleId, joinState, onExit, exitActionParent, preventExit }: JoinSpaceHeadingProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const { t } = useTranslation('os');\n\n const space = useSpace(joinState?.context.space.invitation?.spaceKey);\n const name = space?.properties.name;\n const nameId = useId(mode === 'halo-only' ? 'identityDisplayName' : 'spaceDisplayName');\n\n const invitationId = joinState?.context[mode === 'halo-only' ? 'halo' : 'space'].invitation?.invitationId;\n\n const exitButton = (\n <Button\n variant='ghost'\n {...(onExit && { onClick: onExit })}\n className={mx(defaultDescription, 'plb-0 pli-2 absolute block-start-1.5 inline-end-2 z-[1]')}\n data-testid='join-exit'\n >\n <X weight='bold' className={getSize(4)} />\n <span className='sr-only'>{t('exit label')}</span>\n </Button>\n );\n\n return (\n <div role='none' className={mx(defaultSurface, 'pbs-3 pbe-1 rounded-bs-md relative')} ref={ref}>\n {!preventExit &&\n mode !== 'halo-only' &&\n (exitActionParent ? cloneElement(exitActionParent, {}, exitButton) : exitButton)}\n <Heading\n level={1}\n className={mx(\n defaultDescription,\n 'font-body font-system-normal text-center text-sm grow pbe-2',\n mode === 'halo-only' && (preventExit ? 'sr-only' : 'opacity-0')\n )}\n id={titleId}\n >\n {t(mode === 'halo-only' ? 'selecting identity heading' : 'joining space heading')}\n </Heading>\n <div role='group' className='flex items-center justify-center gap-2'>\n <InvitationEmoji {...{ invitationId }} />\n {name && <p id={nameId}>{name}</p>}\n </div>\n </div>\n );\n }\n);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useMachine } from '@xstate/react';\nimport { useCallback } from 'react';\nimport { assign, createMachine, InterpreterFrom, StateFrom } from 'xstate';\nimport type { StateNodeConfig, Subscribable, Subscription } from 'xstate';\n\nimport type { Identity, AuthenticatingInvitationObservable, Client } from '@dxos/client';\nimport { Invitation, InvitationEncoder } from '@dxos/client';\nimport { log } from '@dxos/log';\n\nimport { JoinPanelMode } from './JoinPanelProps';\n\ntype FailReason = 'error' | 'timeout' | 'cancelled' | 'badVerificationCode';\n\ntype InvitationKindContext = Partial<{\n failReason: FailReason | null;\n unredeemedCode: string;\n invitationObservable: AuthenticatingInvitationObservable;\n invitation: Invitation;\n invitationSubscribable: Subscribable<InvitationEvent>;\n}>;\n\ntype JoinMachineContext = {\n mode: JoinPanelMode;\n identity: Identity | null;\n halo: InvitationKindContext;\n space: InvitationKindContext;\n};\n\ntype SelectIdentityEvent = {\n type: 'selectIdentity';\n identity: Identity;\n};\n\ntype SetInvitationCodeEvent = {\n type: 'setHaloInvitationCode' | 'setSpaceInvitationCode';\n code: string;\n};\n\ntype SetInvitationEvent = {\n type:\n | 'authenticatingHaloInvitation'\n | 'authenticatingSpaceInvitation'\n | 'readyForAuthenticationHaloInvitation'\n | 'readyForAuthenticationSpaceInvitation'\n | 'connectingHaloInvitation'\n | 'connectingSpaceInvitation'\n | 'connectedHaloInvitation'\n | 'connectedSpaceInvitation'\n | 'successHaloInvitation'\n | 'successSpaceInvitation';\n invitation: Invitation;\n};\n\ntype FailInvitationEvent = {\n type: 'failHaloInvitation' | 'failSpaceInvitation';\n reason: FailReason;\n};\n\ntype EmptyInvitationEvent = {\n type:\n | 'authenticateHaloVerificationCode'\n | 'authenticateSpaceVerificationCode'\n | 'resetHaloInvitation'\n | 'resetSpaceInvitation';\n};\n\ntype InvitationEvent = FailInvitationEvent | SetInvitationCodeEvent | SetInvitationEvent | EmptyInvitationEvent;\n\nconst getInvitationSubscribable = (\n Kind: 'Space' | 'Halo',\n invitation: AuthenticatingInvitationObservable\n): Subscribable<InvitationEvent> => {\n log('[subscribing to invitation]', invitation);\n return {\n subscribe: (\n next: (value: InvitationEvent) => void,\n onError?: (error: any) => void,\n complete?: () => void\n ): Subscription =>\n invitation.subscribe(\n (invitation: Invitation) => {\n switch (invitation.state) {\n case Invitation.State.CONNECTING: {\n log('[invitation connecting]', { Kind, invitation });\n return next({ type: `connecting${Kind}Invitation`, invitation });\n }\n\n case Invitation.State.CONNECTED: {\n log('[invitation connected]', { Kind, invitation });\n return next({ type: `connected${Kind}Invitation`, invitation });\n }\n\n case Invitation.State.READY_FOR_AUTHENTICATION: {\n log('[invitation ready for authentication]', { Kind, invitation });\n return next({ type: `readyForAuthentication${Kind}Invitation`, invitation });\n }\n\n case Invitation.State.AUTHENTICATING: {\n log('[invitation authenticating]', { Kind, invitation });\n return next({ type: `authenticating${Kind}Invitation`, invitation });\n }\n\n case Invitation.State.SUCCESS: {\n log('[invitation success]', { Kind, invitation });\n next({ type: `success${Kind}Invitation`, invitation });\n return complete?.();\n }\n\n case Invitation.State.CANCELLED: {\n log.warn('[invitation cancelled]', { Kind });\n return next({ type: `fail${Kind}Invitation`, reason: 'cancelled' } as FailInvitationEvent);\n }\n\n case Invitation.State.TIMEOUT: {\n log.error('[invitation timeout]', { Kind });\n return next({ type: `fail${Kind}Invitation`, reason: 'timeout' } as FailInvitationEvent);\n }\n }\n },\n (error: any) => {\n log.error('[invitation errored]', { Kind, error });\n next({ type: `fail${Kind}Invitation`, reason: 'error' });\n return onError?.(error);\n }\n )\n } as Subscribable<InvitationEvent>;\n};\n\nconst acceptingInvitationTemplate = (Kind: 'Space' | 'Halo', successTarget: string) => {\n const config: StateNodeConfig<JoinMachineContext, any, InvitationEvent> = {\n initial: `unknown${Kind}`,\n states: {\n [`unknown${Kind}`]: {\n always: [\n {\n cond: ({ mode }) => mode === 'halo-only' && Kind === 'Space',\n target: '#join.finishingJoiningHalo'\n },\n {\n // cond: `no${Kind}Invitation`,\n target: `inputting${Kind}InvitationCode`,\n actions: 'log'\n }\n // todo(thure): Restore this transition that redeems the invitation code on init.\n // {\n // target: `acceptingRedeemed${Kind}Invitation`,\n // actions: [`redeem${Kind}InvitationCode`, 'log']\n // }\n ]\n },\n [`inputting${Kind}InvitationCode`]: {},\n [`acceptingRedeemed${Kind}Invitation`]: {\n invoke: {\n src: (context) => context[Kind.toLowerCase() as 'space' | 'halo'].invitationSubscribable!\n },\n initial: `unknown${Kind}Invitation`,\n states: {\n [`unknown${Kind}Invitation`]: {\n always: [\n {\n cond: (context) => {\n const invitation = context[Kind.toLowerCase() as 'space' | 'halo'].invitation;\n return !invitation || invitation?.state === Invitation.State.CONNECTING;\n },\n target: `connecting${Kind}Invitation`,\n actions: 'log'\n },\n {\n target: `inputting${Kind}VerificationCode`,\n actions: 'log'\n }\n ]\n },\n [`connecting${Kind}Invitation`]: {},\n [`inputting${Kind}VerificationCode`]: {},\n [`authenticating${Kind}VerificationCode`]: {\n on: {\n [`readyForAuthentication${Kind}Invitation`]: {\n target: `authenticationFailing${Kind}VerificationCode`,\n actions: ['setInvitation', 'log']\n }\n }\n },\n [`authenticationFailing${Kind}VerificationCode`]: {},\n [`failing${Kind}Invitation`]: {},\n [`success${Kind}Invitation`]: {}\n },\n on: {\n [`reset${Kind}Invitation`]: {\n target: `#join${Kind === 'Halo' ? '.choosingIdentity' : ''}.accepting${Kind}Invitation.unknown${Kind}`,\n actions: ['resetInvitation', 'log']\n },\n [`connecting${Kind}Invitation`]: {\n target: `.connecting${Kind}Invitation`,\n actions: ['setInvitation', 'log']\n },\n [`connected${Kind}Invitation`]: {\n target: `.connecting${Kind}Invitation`,\n actions: ['setInvitation', 'log']\n },\n [`readyForAuthentication${Kind}Invitation`]: {\n target: `.inputting${Kind}VerificationCode`,\n actions: ['setInvitation', 'log']\n },\n [`authenticating${Kind}Invitation`]: {\n target: `.authenticating${Kind}VerificationCode`,\n actions: ['setInvitation', 'log']\n },\n [`success${Kind}Invitation`]: { target: successTarget, actions: ['setInvitation', 'log'] },\n [`fail${Kind}Invitation`]: {\n target: `.failing${Kind}Invitation`,\n actions: [\n assign({\n [Kind.toLowerCase() as 'space' | 'halo']: (\n context: JoinMachineContext,\n event: FailInvitationEvent\n ) => ({\n ...context[Kind.toLowerCase() as 'space' | 'halo'],\n failReason: event.reason\n })\n }),\n 'log'\n ]\n }\n }\n }\n },\n on: {\n [`set${Kind}InvitationCode`]: {\n target: `.acceptingRedeemed${Kind}Invitation`,\n actions: [\n assign({\n [Kind.toLowerCase() as 'space' | 'halo']: (context: JoinMachineContext, event: SetInvitationCodeEvent) => ({\n ...context[Kind.toLowerCase() as 'space' | 'halo'],\n unredeemedCode: event.code\n })\n }),\n `redeem${Kind}InvitationCode`,\n 'log'\n ]\n }\n }\n };\n return config as StateNodeConfig<JoinMachineContext, typeof config, JoinEvent>;\n};\n\ntype EmptyJoinEvent = {\n type:\n | 'recoverIdentity'\n | 'createIdentity'\n | 'acceptHaloInvitation'\n | 'addIdentity'\n | 'selectIdentity'\n | 'deselectAuthMethod';\n};\n\ntype JoinEvent = InvitationEvent | SelectIdentityEvent | EmptyJoinEvent;\n\nconst joinMachine = createMachine<JoinMachineContext, JoinEvent>(\n {\n id: 'join',\n predictableActionArguments: true,\n context: {\n mode: 'default',\n identity: null,\n halo: {},\n space: {}\n },\n initial: 'unknown',\n states: {\n unknown: {\n always: [\n { cond: 'noSelectedIdentity', target: 'choosingIdentity', actions: 'log' },\n { target: 'acceptingSpaceInvitation', actions: 'log' }\n ]\n },\n choosingIdentity: {\n initial: 'choosingAuthMethod',\n states: {\n choosingAuthMethod: {},\n recoveringIdentity: {},\n creatingIdentity: {},\n acceptingHaloInvitation: acceptingInvitationTemplate('Halo', '#join.acceptingSpaceInvitation'),\n confirmingAddedIdentity: {}\n },\n on: {\n recoverIdentity: { target: '.recoveringIdentity', actions: 'log' },\n createIdentity: { target: '.creatingIdentity', actions: 'log' },\n acceptHaloInvitation: { target: '.acceptingHaloInvitation', actions: 'log' },\n addIdentity: { target: '.confirmingAddedIdentity', actions: 'log' },\n selectIdentity: {\n target: 'acceptingSpaceInvitation',\n actions: ['setIdentity', 'log']\n },\n deselectAuthMethod: { target: '.choosingAuthMethod', actions: 'log' }\n }\n },\n acceptingSpaceInvitation: acceptingInvitationTemplate('Space', '#join.finishingJoiningSpace'),\n finishingJoiningSpace: {\n type: 'final'\n },\n finishingJoiningHalo: {\n type: 'final'\n }\n }\n },\n {\n guards: {\n noSelectedIdentity: ({ identity }, _event) => !identity,\n noHaloInvitation: ({ halo }, _event) => !halo.invitation && !halo.unredeemedCode,\n noSpaceInvitation: ({ space }, _event) => !space.invitation && !space.unredeemedCode\n },\n actions: {\n setIdentity: assign<JoinMachineContext, SelectIdentityEvent>({\n identity: (context, event) => event.identity\n }),\n unsetIdentity: assign<JoinMachineContext>({\n identity: () => null\n }),\n resetInvitation: assign<JoinMachineContext, EmptyInvitationEvent>({\n halo: (context, event) => {\n if (event.type !== 'resetHaloInvitation') {\n return context.halo;\n }\n\n if (context.halo.invitationObservable) {\n void context.halo.invitationObservable.cancel();\n }\n\n return {\n ...context.halo,\n invitation: undefined,\n invitationObservable: undefined,\n invitationSubscribable: undefined\n };\n },\n space: (context, event) => {\n if (event.type !== 'resetSpaceInvitation') {\n return context.space;\n }\n\n if (context.space.invitationObservable) {\n void context.space.invitationObservable.cancel();\n }\n\n return {\n ...context.space,\n invitation: undefined,\n invitationObservable: undefined,\n invitationSubscribable: undefined\n };\n }\n }),\n setInvitation: assign<JoinMachineContext, SetInvitationEvent>({\n halo: (context, event) =>\n event.type.includes('Halo') ? { ...context.halo, invitation: event.invitation } : context.halo,\n space: (context, event) =>\n event.type.includes('Space') ? { ...context.space, invitation: event.invitation } : context.space\n }),\n log: (context, event) => {\n log('[transition]', {\n event,\n haloInvitation: context.halo.invitation,\n spaceInvitation: context.space.invitation\n });\n }\n }\n }\n);\n\ntype JoinMachine = typeof joinMachine;\n\ntype JoinState = StateFrom<JoinMachine>;\ntype JoinSend = InterpreterFrom<JoinMachine>['send'];\n\nconst defaultCodeFromUrl = (invitationType: 'halo' | 'space', text: string) => {\n try {\n const searchParams = new URLSearchParams(text.substring(text.lastIndexOf('?')));\n return (\n searchParams.get(`${invitationType}InvitationCode`) ??\n searchParams.get(`${invitationType}Invitation`) ??\n searchParams.get('invitationCode') ??\n searchParams.get('invitation') ??\n text\n );\n } catch (err) {\n log.catch(err);\n return text;\n }\n};\n\nconst useJoinMachine = (client: Client, options?: Parameters<typeof useMachine<JoinMachine>>[1]) => {\n const redeemHaloInvitationCode = useCallback(\n ({ halo }: JoinMachineContext) => {\n if (halo.unredeemedCode) {\n const invitationObservable = client.halo.acceptInvitation(\n InvitationEncoder.decode(defaultCodeFromUrl('halo', halo.unredeemedCode))\n );\n return {\n ...halo,\n invitationObservable,\n invitationSubscribable: getInvitationSubscribable('Halo', invitationObservable)\n };\n } else {\n return halo;\n }\n },\n [client]\n );\n\n const redeemSpaceInvitationCode = useCallback(\n ({ space }: JoinMachineContext) => {\n if (space.unredeemedCode) {\n const invitationObservable = client.acceptInvitation(\n InvitationEncoder.decode(defaultCodeFromUrl('space', space.unredeemedCode))\n );\n return {\n ...space,\n invitationObservable,\n invitationSubscribable: getInvitationSubscribable('Space', invitationObservable)\n };\n } else {\n return space;\n }\n },\n [client]\n );\n\n return useMachine(joinMachine, {\n ...options,\n actions: {\n ...options?.actions,\n redeemHaloInvitationCode: assign<JoinMachineContext>({ halo: redeemHaloInvitationCode }),\n redeemSpaceInvitationCode: assign<JoinMachineContext>({ space: redeemSpaceInvitationCode })\n }\n });\n};\n\nexport type { JoinMachine, JoinState, JoinSend, JoinEvent, JoinMachineContext };\nexport { joinMachine, useJoinMachine };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CaretRight, Plus, QrCode, Textbox } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport { CompoundButton, getSize, useTranslation } from '@dxos/react-components';\n\nimport { ViewState, ViewStateHeading, ViewStateProps } from './ViewState';\n\nexport type AdditionMethodSelectorProps = ViewStateProps;\n\nexport const AdditionMethodSelector = (viewStateProps: AdditionMethodSelectorProps) => {\n const disabled = !viewStateProps.active;\n const { joinSend } = viewStateProps;\n\n const { t } = useTranslation('os');\n\n const sharedButtonProps = {\n disabled,\n after: <CaretRight className={getSize(4)} weight='bold' />,\n slots: { label: { className: 'text-sm' } }\n };\n\n return (\n <ViewState {...viewStateProps}>\n <ViewStateHeading>{t('addition method selector title')}</ViewStateHeading>\n <div role='none' className='flex flex-col gap-1 grow'>\n <CompoundButton\n {...sharedButtonProps}\n description={t('create identity description')}\n before={<Plus className={getSize(6)} />}\n onClick={() => joinSend({ type: 'createIdentity' })}\n data-autofocus='choosingAuthMethod'\n data-testid='create-identity'\n >\n {t('create identity label')}\n </CompoundButton>\n <CompoundButton\n {...sharedButtonProps}\n description={t('join identity description')}\n before={<QrCode className={getSize(6)} />}\n onClick={() => joinSend({ type: 'acceptHaloInvitation' })}\n data-testid='join-identity'\n >\n {t('join identity label')}\n </CompoundButton>\n <CompoundButton\n {...sharedButtonProps}\n // TODO(mykola): Implement recover.\n disabled={true}\n description={t('recover identity description')}\n before={<Textbox className={getSize(6)} />}\n onClick={() => joinSend({ type: 'recoverIdentity' })}\n data-testid='recover-identity'\n >\n {t('recover identity label')}\n </CompoundButton>\n </div>\n </ViewState>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CheckCircle, HourglassSimple, X } from '@phosphor-icons/react';\nimport React, { ComponentProps, ComponentPropsWithoutRef, ReactNode, useMemo } from 'react';\n\nimport type { AuthenticatingInvitationObservable } from '@dxos/client';\nimport { Invitation } from '@dxos/client';\nimport { useInvitationStatus } from '@dxos/react-client';\nimport { mx, useTranslation, useId, getSize, strongShimmer } from '@dxos/react-components';\n\nimport { defaultSurface, resolvedBgColor, activeBgColor, inactiveBgColor } from '../../../styles';\nimport { invitationStatusValue } from '../../../util';\nimport { JoinSend, JoinState } from '../joinMachine';\n\nexport interface ViewStateProps extends ComponentProps<'div'> {\n active: boolean;\n joinSend: JoinSend;\n joinState?: JoinState;\n}\n\nconst stripe = mx('rounded-full grow', getSize(3));\n\nexport const ViewStateHeading = ({ children, className, ...props }: ComponentPropsWithoutRef<'h2'>) => {\n return (\n <h2 {...props} className={mx('font-system-normal text-sm mbe-1 mli-1 text-center', className)}>\n {children}\n </h2>\n );\n};\n\nconst PureViewStateInvitation = ({\n halted,\n cursor,\n label,\n resolvedColor\n}: {\n halted?: boolean;\n cursor: number;\n label: ReactNode;\n resolvedColor: string;\n}) => {\n const labelId = useId('invitationState');\n return (\n <div role='none' className={mx(defaultSurface, 'pli-2 pbs-2')}>\n <div role='status' aria-labelledby={labelId} className='flex gap-2 items-center mlb-1'>\n <div\n role='none'\n className={mx(\n stripe,\n !halted && cursor === 1 && strongShimmer,\n cursor === 2 ? (halted ? resolvedColor : activeBgColor) : cursor > 1 ? resolvedColor : inactiveBgColor\n )}\n />\n <div\n role='none'\n className={mx(\n stripe,\n !halted && cursor === 3 && strongShimmer,\n cursor === 3 ? (halted ? resolvedColor : activeBgColor) : cursor > 3 ? resolvedColor : inactiveBgColor\n )}\n />\n <div\n role='none'\n className={mx(stripe, cursor > 3 ? (halted ? resolvedColor : resolvedColor) : inactiveBgColor)}\n />\n </div>\n <ViewStateHeading id={labelId} className='mbs-2 flex justify-center items-center gap-2'>\n {label}\n </ViewStateHeading>\n </div>\n );\n};\n\n// todo (thure): Restore this?\nconst _ViewStateInvitationStatus = ({ activeInvitation }: { activeInvitation: AuthenticatingInvitationObservable }) => {\n const { t } = useTranslation('os');\n const { status, haltedAt } = useInvitationStatus(activeInvitation);\n\n const halted =\n status === Invitation.State.CANCELLED || status === Invitation.State.TIMEOUT || status === Invitation.State.ERROR;\n\n const cursor = invitationStatusValue.get(halted ? haltedAt! : status)!;\n\n const resolvedColor = resolvedBgColor(status);\n\n const statusLabelMap = useMemo(\n () =>\n new Map<Invitation.State, ReactNode>([\n [\n Invitation.State.ERROR,\n <>\n <X weight='bold' className={mx(getSize(4), 'text-error-600 dark:text-error-400')} />\n <span>{t('error status label')}</span>\n </>\n ],\n [\n Invitation.State.TIMEOUT,\n <>\n <HourglassSimple weight='fill' className={mx(getSize(4), 'text-warning-600 dark:text-warning-400')} />\n <span>{t('timeout status label')}</span>\n </>\n ],\n [\n Invitation.State.CANCELLED,\n <>\n <X weight='bold' className={mx(getSize(4), 'text-warning-600 dark:text-warning-400')} />\n <span>{t('cancelled status label')}</span>\n </>\n ],\n [Invitation.State.INIT, t('init status label')],\n [Invitation.State.CONNECTING, t('connecting status label')],\n [Invitation.State.CONNECTED, t('connected status label')],\n [Invitation.State.AUTHENTICATING, t('authenticating status label')],\n [\n Invitation.State.SUCCESS,\n <>\n <CheckCircle weight='fill' className={mx(getSize(4), 'text-success-600 dark:text-success-400')} />\n <span>{t('success status label')}</span>\n </>\n ]\n ]),\n [t]\n );\n\n return (\n <PureViewStateInvitation\n {...{\n label: statusLabelMap.get(status)!,\n resolvedColor,\n cursor,\n halted\n }}\n />\n );\n};\n\nexport const ViewState = ({ active, children, className, joinSend, joinState, ...props }: ViewStateProps) => {\n // note (thure): reserve `order-1` and `order-3` for outgoing steps in different directions\n return (\n <div\n role='none'\n {...props}\n {...(!active && { 'aria-hidden': true })}\n className={mx('is-[50%] flex flex-col', active ? 'order-2' : 'order-4', className)}\n >\n <div role='region' className={mx(defaultSurface, 'rounded-be-md grow shrink-0 flex flex-col gap-1 p-4 pbs-1')}>\n {children}\n </div>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CaretLeft, CaretRight, Check } from '@phosphor-icons/react';\nimport React, { cloneElement } from 'react';\n\nimport type { Identity } from '@dxos/client';\nimport { InvitationResult } from '@dxos/react-client';\nimport { Avatar, Button, getSize, mx, useTranslation } from '@dxos/react-components';\n\nimport { JoinPanelMode } from '../JoinPanelProps';\nimport { ViewState, ViewStateHeading, ViewStateProps } from './ViewState';\n\nexport interface IdentityAddedProps extends ViewStateProps, DoneProps {\n mode?: JoinPanelMode;\n addedIdentity?: Identity;\n}\n\nexport interface DoneProps extends ViewStateProps {\n doneActionParent?: Parameters<typeof cloneElement>[0];\n onDone?: (result: InvitationResult | null) => void;\n}\n\nconst Done = ({ onDone, doneActionParent, active }: DoneProps) => {\n const disabled = !active;\n const { t } = useTranslation('os');\n\n const doneButton = (\n <Button\n {...(onDone && { onClick: () => onDone(null) })}\n disabled={disabled}\n className='grow flex items-center gap-2 pli-2'\n data-autofocus='confirmingAddedIdentity'\n data-testid='identity-added-done'\n >\n <CaretLeft weight='bold' className={mx(getSize(2), 'invisible')} />\n <span className='grow'>{t('done label')}</span>\n <Check className={getSize(4)} />\n </Button>\n );\n\n return doneActionParent ? cloneElement(doneActionParent, {}, doneButton) : doneButton;\n};\n\nexport const IdentityAdded = ({\n mode,\n addedIdentity,\n onDone,\n doneActionParent,\n ...viewStateProps\n}: IdentityAddedProps) => {\n const disabled = !viewStateProps.active;\n const { joinSend } = viewStateProps;\n const { t } = useTranslation('os');\n\n return (\n <ViewState {...viewStateProps}>\n <ViewStateHeading>{t('identity added label')}</ViewStateHeading>\n <div role='none' className='grow flex flex-col items-center justify-center text-center gap-2'>\n <Avatar\n size={20}\n fallbackValue={addedIdentity?.identityKey.toHex() ?? ''}\n label={\n <p className={mx('text-lg', !addedIdentity?.profile?.displayName && 'font-mono')}>\n {addedIdentity?.profile?.displayName ?? addedIdentity?.identityKey.truncate() ?? ' '}\n </p>\n }\n variant='circle'\n status='active'\n />\n </div>\n {mode === 'halo-only' ? (\n <Done onDone={onDone} doneActionParent={doneActionParent} {...viewStateProps} />\n ) : (\n <div className='flex gap-2'>\n <Button\n disabled={disabled || !addedIdentity}\n className='grow flex items-center gap-2 pli-2 order-2'\n onClick={() => addedIdentity && joinSend({ type: 'selectIdentity', identity: addedIdentity })}\n data-autofocus='confirmingAddedIdentity'\n >\n <CaretLeft weight='bold' className={mx(getSize(2), 'invisible')} />\n <span className='grow'>{t('continue label')}</span>\n <CaretRight weight='bold' className={getSize(4)} />\n </Button>\n <Button\n disabled={disabled}\n onClick={() => joinSend({ type: 'deselectAuthMethod' })}\n className='flex items-center gap-2 pis-2 pie-4'\n >\n <CaretLeft weight='bold' className={getSize(4)} />\n <span>{t('deselect identity label')}</span>\n </Button>\n </div>\n )}\n </ViewState>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CaretLeft, CaretRight } from '@phosphor-icons/react';\nimport React, { ComponentPropsWithoutRef, useState } from 'react';\n\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { Button, getSize, Input, mx, useTranslation } from '@dxos/react-components';\n\nimport { ViewState, ViewStateHeading, ViewStateProps } from './ViewState';\n\nexport interface IdentityCreatorProps extends ViewStateProps {\n method: 'recover identity' | 'create identity';\n}\n\nexport const IdentityInput = ({ method, ...viewStateProps }: IdentityCreatorProps) => {\n const disabled = !viewStateProps.active;\n const { joinSend } = viewStateProps;\n const { t } = useTranslation('os');\n const [inputValue, setInputValue] = useState('');\n const client = useClient();\n const [validationMessage, setValidationMessage] = useState('');\n const isRecover = method === 'recover identity';\n const handleNext = () => {\n void client.halo.createIdentity({ [isRecover ? 'seedphrase' : 'displayName']: inputValue }).then(\n (identity) => {\n joinSend({ type: 'selectIdentity', identity });\n },\n (error) => {\n log.catch(error);\n setValidationMessage(t(isRecover ? 'failed to recover identity message' : 'failed to create identity message'));\n }\n );\n };\n return (\n <ViewState {...viewStateProps}>\n <Input\n disabled={disabled}\n label={\n <ViewStateHeading>\n {t(isRecover ? 'recover identity input label' : 'new identity input label')}\n </ViewStateHeading>\n }\n onChange={({ target: { value } }) => setInputValue(value)}\n slots={{\n root: { className: 'm-0' },\n input: {\n 'data-autofocus': isRecover ? 'recoveringIdentity' : 'creatingIdentity',\n onKeyUp: ({ key }) => key === 'Enter' && handleNext()\n } as ComponentPropsWithoutRef<'input'>\n }}\n {...(validationMessage.length && { validationValence: 'error', validationMessage })}\n data-testid='identity-input'\n />\n <div role='none' className='grow' />\n <div className='flex gap-2'>\n <Button\n disabled={disabled}\n className='grow flex items-center gap-2 pli-2 order-2'\n onClick={handleNext}\n data-testid={`${method === 'recover identity' ? 'recover' : 'create'}-identity-input-continue`}\n >\n <CaretLeft weight='bold' className={mx(getSize(2), 'invisible')} />\n <span className='grow'>{t('continue label')}</span>\n <CaretRight weight='bold' className={getSize(4)} />\n </Button>\n <Button\n disabled={disabled}\n onClick={() => joinSend({ type: 'deselectAuthMethod' })}\n className='flex items-center gap-2 pis-2 pie-4'\n data-testid={`${method === 'recover identity' ? 'recover' : 'create'}-identity-input-back`}\n >\n <CaretLeft weight='bold' className={getSize(4)} />\n <span>{t('back label')}</span>\n </Button>\n </div>\n </ViewState>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CaretLeft, Check } from '@phosphor-icons/react';\nimport React, { cloneElement } from 'react';\n\nimport { AuthenticatingInvitationObservable } from '@dxos/client';\nimport { InvitationResult, useInvitationStatus } from '@dxos/react-client';\nimport { Button, getSize, mx, useTranslation } from '@dxos/react-components';\n\nimport { ViewState, ViewStateProps } from './ViewState';\n\nexport interface InvitationAcceptedProps extends ViewStateProps {\n Kind: 'Space' | 'Halo';\n doneActionParent?: Parameters<typeof cloneElement>[0];\n onDone?: (result: InvitationResult | null) => void;\n}\n\nconst PureInvitationAcceptedContent = ({\n onDone,\n result,\n Kind,\n doneActionParent,\n active\n}: InvitationAcceptedProps & { result: InvitationResult | null }) => {\n const disabled = !active;\n const { t } = useTranslation('os');\n\n const doneButton = (\n <Button\n onClick={() => onDone?.(result)}\n disabled={disabled}\n className='flex items-center gap-2 pli-2'\n data-autofocus={`success${Kind}Invitation finishingJoining${Kind}`}\n data-testid={`${Kind.toLowerCase()}-invitation-accepted-done`}\n >\n <CaretLeft weight='bold' className={mx(getSize(2), 'invisible')} />\n <span className='grow'>{t('done label')}</span>\n <Check className={getSize(4)} />\n </Button>\n );\n\n return (\n <>\n <p className='text-center text-sm font-system-normal'>{t('welcome message')}</p>\n <div role='none' className='grow' />\n {doneActionParent ? cloneElement(doneActionParent, {}, doneButton) : doneButton}\n </>\n );\n};\n\nconst InvitationAcceptedContent = (\n props: InvitationAcceptedProps & { activeInvitation: AuthenticatingInvitationObservable }\n) => {\n const { result } = useInvitationStatus(props.activeInvitation);\n return <PureInvitationAcceptedContent {...props} result={result} />;\n};\n\nexport const InvitationAccepted = (props: InvitationAcceptedProps) => {\n const { Kind, doneActionParent: _doneActionParent, onDone: _onDone, ...viewStateProps } = props;\n const activeInvitation =\n viewStateProps.joinState?.context[Kind.toLowerCase() as 'halo' | 'space'].invitationObservable;\n\n return (\n <ViewState {...viewStateProps}>\n {!activeInvitation ? (\n <PureInvitationAcceptedContent {...props} result={null} />\n ) : (\n <InvitationAcceptedContent {...props} activeInvitation={activeInvitation} />\n )}\n </ViewState>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CaretLeft, CaretRight } from '@phosphor-icons/react';\nimport React, { ComponentPropsWithoutRef, useEffect, useState } from 'react';\n\nimport { Button, getSize, Input, mx, useTranslation } from '@dxos/react-components';\n\nimport { ViewState, ViewStateHeading, ViewStateProps } from './ViewState';\n\nexport interface InvitationInputProps extends ViewStateProps {\n Kind: 'Space' | 'Halo';\n}\n\nexport const InvitationInput = ({ Kind, ...viewStateProps }: InvitationInputProps) => {\n const disabled = !viewStateProps.active;\n const { joinSend, joinState } = viewStateProps;\n const { t } = useTranslation('os');\n\n const contextUnredeemedCode = joinState?.context[Kind.toLowerCase() as 'space' | 'halo'].unredeemedCode;\n\n const [inputValue, setInputValue] = useState(contextUnredeemedCode ?? '');\n\n useEffect(() => {\n contextUnredeemedCode && setInputValue(contextUnredeemedCode ?? '');\n }, [contextUnredeemedCode]);\n\n const handleNext = () =>\n joinSend({\n type: `set${Kind}InvitationCode`,\n code: inputValue\n });\n\n return (\n <ViewState {...viewStateProps}>\n <Input\n disabled={disabled}\n label={<ViewStateHeading>{t('invitation input label')}</ViewStateHeading>}\n value={inputValue}\n onChange={({ target: { value } }) => setInputValue(value)}\n slots={{\n root: { className: 'm-0' },\n input: {\n 'data-autofocus': `inputting${Kind}InvitationCode`,\n 'data-testid': `${Kind.toLowerCase()}-invitation-input`,\n onKeyUp: ({ key }) => key === 'Enter' && handleNext()\n } as ComponentPropsWithoutRef<'input'>\n }}\n />\n <div role='none' className='grow' />\n <div className='flex gap-2'>\n <Button\n disabled={disabled}\n className='grow flex items-center gap-2 pli-2 order-2'\n onClick={handleNext}\n data-testid={`${Kind.toLowerCase()}-invitation-input-continue`}\n >\n <CaretLeft weight='bold' className={mx(getSize(2), 'invisible')} />\n <span className='grow'>{t('continue label')}</span>\n <CaretRight weight='bold' className={getSize(4)} />\n </Button>\n <Button\n disabled={disabled || Kind === 'Space'}\n onClick={() => joinSend({ type: 'deselectAuthMethod' })}\n className='flex items-center gap-2 pis-2 pie-4'\n data-testid={`${Kind.toLowerCase()}-invitation-input-back`}\n >\n <CaretLeft weight='bold' className={getSize(4)} />\n <span>{t('back label')}</span>\n </Button>\n </div>\n </ViewState>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ArrowsClockwise, CaretLeft, CaretRight } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport { Invitation } from '@dxos/client';\nimport { Button, defaultDescription, getSize, mx, useTranslation } from '@dxos/react-components';\n\nimport { JoinSend, JoinState } from '../joinMachine';\nimport { ViewState, ViewStateHeading, ViewStateProps } from './ViewState';\n\nexport interface InvitationConnectorProps extends ViewStateProps {\n Kind: 'Space' | 'Halo';\n}\n\nconst InvitationActions = ({\n invitationState,\n disabled,\n joinSend,\n joinState,\n Kind\n}: {\n invitationState?: Invitation.State;\n disabled?: boolean;\n joinSend: JoinSend;\n joinState?: JoinState;\n Kind: InvitationConnectorProps['Kind'];\n}) => {\n const { t } = useTranslation('os');\n const invitationType = Kind.toLowerCase() as 'space' | 'halo';\n switch (invitationState) {\n case Invitation.State.CONNECTING:\n return (\n <>\n <ViewStateHeading className={defaultDescription}>{t('connecting status label')}</ViewStateHeading>\n <div role='none' className='grow' />\n <div className='flex gap-2'>\n <Button disabled className='grow flex items-center gap-2 pli-2 order-2' data-testid='next'>\n <CaretLeft weight='bold' className={mx(getSize(2), 'invisible')} />\n <span className='grow'>{t('next label')}</span>\n <CaretRight weight='bold' className={getSize(4)} />\n </Button>\n <Button\n disabled={disabled}\n className='flex items-center gap-2 pis-2 pie-4'\n onClick={() => joinState?.context[invitationType].invitationObservable?.cancel()}\n data-testid='invitation-rescuer-cancel'\n >\n <CaretLeft weight='bold' className={getSize(4)} />\n <span>{t('cancel label')}</span>\n </Button>\n </div>\n </>\n );\n case Invitation.State.TIMEOUT:\n case Invitation.State.CANCELLED:\n case Invitation.State.ERROR:\n default:\n return (\n <>\n <ViewStateHeading className={defaultDescription}>\n {t(\n invitationState === Invitation.State.TIMEOUT\n ? 'timeout status label'\n : invitationState === Invitation.State.CANCELLED\n ? 'cancelled status label'\n : 'error status label'\n )}\n </ViewStateHeading>\n <div role='none' className='grow' />\n <Button\n disabled={disabled}\n className='flex items-center gap-2 pli-2'\n onClick={() => joinSend({ type: `reset${Kind}Invitation` })}\n data-testid='invitation-rescuer-reset'\n >\n <CaretLeft weight='bold' className={mx(getSize(5), 'invisible')} />\n <span className='grow'>{t('reset label')}</span>\n <ArrowsClockwise className={getSize(4)} />\n </Button>\n </>\n );\n }\n};\n\nexport const InvitationRescuer = ({ Kind, ...viewStateProps }: InvitationConnectorProps) => {\n const disabled = !viewStateProps.active;\n const { joinSend, joinState } = viewStateProps;\n const invitationState = joinState?.context[Kind.toLowerCase() as 'space' | 'halo'].invitation?.state;\n const { t } = useTranslation('os');\n return (\n <ViewState {...viewStateProps}>\n {typeof invitationState === 'undefined' ? (\n <>\n <div role='none' className='grow' />\n <Button\n disabled={disabled}\n className='flex items-center gap-2 pli-2'\n data-autofocus={`inputting${Kind}InvitationCode`}\n data-testid='invitation-rescuer-blank-reset'\n onClick={() => joinSend({ type: `reset${Kind}Invitation` })}\n >\n <CaretLeft weight='bold' className={mx(getSize(5), 'invisible')} />\n <span className='grow'>{t('reset label')}</span>\n <ArrowsClockwise className={getSize(5)} />\n </Button>\n </>\n ) : (\n <InvitationActions {...{ invitationState, disabled, joinSend, joinState, Kind }} />\n )}\n </ViewState>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CaretLeft, CaretRight } from '@phosphor-icons/react';\nimport React, { ChangeEvent, ComponentProps, ComponentPropsWithoutRef, useCallback, useState } from 'react';\n\nimport { AuthenticatingInvitationObservable } from '@dxos/client';\nimport { useInvitationStatus } from '@dxos/react-client';\nimport { Button, getSize, Input, mx, useTranslation } from '@dxos/react-components';\n\nimport { JoinSend, JoinState } from '../joinMachine';\nimport { ViewState, ViewStateHeading, ViewStateProps } from './ViewState';\n\nconst pinLength = 6;\n\nexport interface InvitationAuthenticatorProps extends ViewStateProps {\n Kind: 'Space' | 'Halo';\n failed?: boolean;\n}\n\nconst PureInvitationAuthenticatorContent = ({\n disabled,\n failed,\n joinSend,\n joinState,\n Kind,\n onChange,\n onAuthenticate\n}: {\n disabled?: boolean;\n joinSend: JoinSend;\n joinState?: JoinState;\n Kind: InvitationAuthenticatorProps['Kind'];\n failed: InvitationAuthenticatorProps['failed'];\n onChange: ComponentProps<typeof Input>['onChange'];\n onAuthenticate: ComponentProps<typeof Button>['onClick'];\n}) => {\n const { t } = useTranslation('os');\n const invitationType = Kind.toLowerCase() as 'space' | 'halo';\n return (\n <>\n <Input\n label={<ViewStateHeading>{t('auth code input label')}</ViewStateHeading>}\n size='pin'\n length={pinLength}\n onChange={onChange}\n disabled={disabled}\n slots={{\n root: { className: 'm-0' },\n description: { className: 'text-center' },\n input: {\n disabled,\n inputMode: 'numeric',\n autoComplete: 'off',\n pattern: '\\\\d*',\n 'data-autofocus': `connecting${Kind}Invitation inputting${Kind}VerificationCode authenticationFailing${Kind}VerificationCode authenticating${Kind}VerificationCode`,\n 'data-prevent-ios-autofocus': true,\n 'data-testid': `${invitationType}-auth-code-input`,\n 'data-1p-ignore': true\n } as ComponentPropsWithoutRef<'input'>\n }}\n {...(failed && {\n validationValence: 'error',\n validationMessage: t('failed to authenticate message')\n })}\n />\n <div role='none' className='grow' />\n <div className='flex gap-2'>\n <Button\n disabled={disabled}\n className='grow flex items-center gap-2 pli-2 order-2'\n onClick={onAuthenticate}\n data-autofocus-pinlength={invitationType}\n data-testid={`${invitationType}-invitation-authenticator-next`}\n >\n <CaretLeft weight='bold' className={mx(getSize(2), 'invisible')} />\n <span className='grow'>{t('next label')}</span>\n <CaretRight weight='bold' className={getSize(4)} />\n </Button>\n <Button\n disabled={disabled}\n className='flex items-center gap-2 pis-2 pie-4'\n onClick={() => joinState?.context[invitationType].invitationObservable?.cancel()}\n data-testid={`${invitationType}-invitation-authenticator-cancel`}\n >\n <CaretLeft weight='bold' className={getSize(4)} />\n <span>{t('cancel label')}</span>\n </Button>\n </div>\n </>\n );\n};\n\nconst InvitationAuthenticatorContent = ({\n joinSend,\n joinState,\n disabled,\n invitation,\n Kind,\n failed\n}: {\n joinSend: JoinSend;\n joinState?: JoinState;\n disabled?: boolean;\n invitation: AuthenticatingInvitationObservable;\n Kind: InvitationAuthenticatorProps['Kind'];\n failed: InvitationAuthenticatorProps['failed'];\n}) => {\n const invitationType = Kind.toLowerCase();\n const [pinValue, setPinValue] = useState('');\n const { authenticate } = useInvitationStatus(invitation);\n const onAuthenticate = useCallback(() => {\n joinSend({ type: `authenticate${Kind}VerificationCode` });\n void authenticate(pinValue);\n }, [joinSend, authenticate, pinValue]);\n const onChange = useCallback(\n ({ target: { value } }: ChangeEvent<HTMLInputElement>) => {\n setPinValue(value);\n if (value.length === pinLength) {\n (document.querySelector(`[data-autofocus-pinlength=\"${invitationType}\"]`) as HTMLElement | null)?.focus();\n }\n },\n [authenticate, pinValue]\n );\n return (\n <PureInvitationAuthenticatorContent\n {...{ disabled, failed, joinSend, joinState, Kind, onChange, onAuthenticate }}\n />\n );\n};\n\nexport const InvitationAuthenticator = ({ failed, Kind, ...viewStateProps }: InvitationAuthenticatorProps) => {\n const { joinSend, joinState } = viewStateProps;\n const disabled =\n !viewStateProps.active ||\n ['connecting', 'authenticating'].some((str) => joinState?.configuration[0].id.includes(str));\n const activeInvitation = joinState?.context[Kind.toLowerCase() as 'space' | 'halo'].invitationObservable;\n return (\n <ViewState {...viewStateProps}>\n {!activeInvitation ? (\n <PureInvitationAuthenticatorContent\n {...{ disabled, failed, joinSend, joinState, Kind, onChange: () => {}, onAuthenticate: () => {} }}\n />\n ) : (\n <InvitationAuthenticatorContent\n {...{ disabled, failed, invitation: activeInvitation, joinSend, joinState, Kind }}\n />\n )}\n </ViewState>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { UserPlus } from '@phosphor-icons/react';\nimport React, { cloneElement, useCallback, useReducer } from 'react';\n\nimport { Invitation, InvitationEncoder, Space } from '@dxos/client';\nimport { useSpaceInvitations, observer } from '@dxos/react-client';\nimport { Button, DensityProvider, getSize, mx, useTranslation } from '@dxos/react-components';\n\nimport { InvitationList, PanelSeparator, SpaceMemberListContainer } from '../../components';\nimport { defaultSurface, subduedSurface } from '../../styles';\n\nexport type SpacePanelProps = {\n titleId?: string;\n space: Space;\n createInvitationUrl: (invitationCode: string) => string;\n doneActionParent?: Parameters<typeof cloneElement>[0];\n onDone?: () => void;\n};\n\nexport type SpaceView = 'current space';\n\nconst CurrentSpaceView = observer(({ space, createInvitationUrl, titleId }: SpacePanelProps) => {\n const { t } = useTranslation('os');\n const invitations = useSpaceInvitations(space?.key);\n const name = space?.properties.name;\n\n console.log('[space panel]', process.env.NODE_ENV);\n\n if (!space) {\n return null;\n }\n\n const onInvitationEvent = useCallback((invitation: Invitation) => {\n const invitationCode = InvitationEncoder.encode(invitation);\n console.log(JSON.stringify({ invitationCode }));\n if (invitation.authCode) {\n console.log(JSON.stringify({ authCode: invitation.authCode }));\n }\n }, []);\n\n return (\n <div role='none' className='flex flex-col'>\n <div role='none' className={mx(subduedSurface, 'rounded-bs-md flex items-center p-2 gap-2')}>\n {/* TODO(wittjosiah): Label this as the space panel. */}\n <h2 id={titleId} className={mx('grow font-system-medium', !name && 'font-mono')}>\n {name ?? space.key.truncate()}\n </h2>\n </div>\n <div role='region' className={mx(defaultSurface, 'rounded-be-md p-2')}>\n <InvitationList\n invitations={invitations}\n onClickRemove={(invitation) => invitation.cancel()}\n createInvitationUrl={createInvitationUrl}\n />\n <Button\n className='is-full flex gap-2 mbs-2'\n onClick={() => {\n const invitation = space?.createInvitation();\n if (process.env.NODE_ENV !== 'production') {\n invitation.subscribe(onInvitationEvent);\n }\n }}\n data-testid='spaces-panel.create-invitation'\n >\n <span>{t('create space invitation label')}</span>\n <UserPlus className={getSize(4)} weight='bold' />\n </Button>\n <PanelSeparator />\n <SpaceMemberListContainer spaceKey={space.key} includeSelf />\n </div>\n </div>\n );\n});\n\ninterface SpacePanelState {\n activeView: SpaceView;\n}\n\ninterface SpacePanelAction {\n type: null;\n}\n\nexport const SpacePanel = (props: SpacePanelProps) => {\n const reducer = (state: SpacePanelState, action: SpacePanelAction) => {\n const nextState = { ...state };\n switch (action.type) {\n case null:\n }\n return nextState;\n };\n\n const [panelState] = useReducer(reducer, {\n activeView: 'current space'\n });\n\n // TODO(wittjosiah): Use ViewState or similar.\n return (\n <DensityProvider density='fine'>\n {panelState.activeView === 'current space' ? <CurrentSpaceView {...props} /> : null}\n </DensityProvider>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Action, Cancel } from '@radix-ui/react-alert-dialog';\nimport React from 'react';\n\nimport { ThemeContext, useId, useThemeContext } from '@dxos/react-components';\n\nimport { PanelAlertDialog, PanelAlertDialogProps } from '../../layouts';\nimport { JoinPanel, JoinPanelProps } from '../../panels';\n\nexport interface JoinDialogProps\n extends Omit<PanelAlertDialogProps, 'titleId' | 'children'>,\n Omit<JoinPanelProps, 'exitActionParent' | 'doneActionParent'> {}\n\nexport const JoinDialog = ({ slots, ...joinPanelProps }: JoinDialogProps) => {\n const titleId = useId('joinDialog__title');\n const themeContextValue = useThemeContext();\n\n return (\n <PanelAlertDialog {...{ slots, titleId }}>\n <ThemeContext.Provider value={{ ...themeContextValue, themeVariant: 'os' }}>\n <JoinPanel\n {...{\n ...joinPanelProps,\n titleId,\n exitActionParent: <Cancel asChild />,\n doneActionParent: <Action asChild />\n }}\n />\n </ThemeContext.Provider>\n </PanelAlertDialog>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useEffect, useState } from 'react';\n\nimport { ShellRuntime } from '@dxos/client-services';\nimport { log } from '@dxos/log';\nimport { LayoutRequest, ShellDisplay, ShellLayout } from '@dxos/protocols/proto/dxos/iframe';\nimport { useClient, useSpace, useSpaces } from '@dxos/react-client';\n\nimport { DevicesDialog } from '../DevicesDialog';\nimport { JoinDialog } from '../JoinDialog';\nimport { SpaceDialog } from '../SpaceDialog';\n\nexport const Shell = ({ runtime, origin }: { runtime: ShellRuntime; origin: string }) => {\n const [{ layout, invitationCode, spaceKey }, setLayout] = useState<LayoutRequest>({\n layout: runtime.layout,\n invitationCode: runtime.invitationCode,\n spaceKey: runtime.spaceKey\n });\n\n const client = useClient();\n const spaces = useSpaces();\n const space = useSpace(spaceKey);\n\n useEffect(() => {\n return runtime.layoutUpdate.on((request) => setLayout(request));\n }, [runtime]);\n\n useEffect(() => {\n if (layout === ShellLayout.SPACE_INVITATIONS && !space) {\n log.warn('No space found for shell space invitations.');\n\n const timeout = setTimeout(async () => {\n await runtime.setAppContext({ display: ShellDisplay.NONE });\n runtime.setLayout(ShellLayout.DEFAULT);\n });\n\n return () => clearTimeout(timeout);\n }\n }, [runtime, layout, space]);\n\n switch (layout) {\n case ShellLayout.INITIALIZE_IDENTITY:\n return (\n <JoinDialog\n mode='halo-only'\n initialInvitationCode={invitationCode}\n onDone={() => {\n void runtime.setAppContext({ display: ShellDisplay.NONE });\n runtime.setLayout(ShellLayout.DEFAULT);\n // TODO(wittjosiah): Support this first-class inside client?\n spaces.length > 0 || client.createSpace();\n }}\n />\n );\n\n case ShellLayout.DEVICE_INVITATIONS:\n return (\n <DevicesDialog\n createInvitationUrl={(invitationCode) => `${origin}?haloInvitationCode=${invitationCode}`}\n onDone={async () => {\n await runtime.setAppContext({ display: ShellDisplay.NONE });\n runtime.setLayout(ShellLayout.DEFAULT);\n }}\n />\n );\n\n case ShellLayout.SPACE_INVITATIONS:\n return space ? (\n <SpaceDialog\n space={space}\n createInvitationUrl={(invitationCode) => `${origin}?spaceInvitationCode=${invitationCode}`}\n onDone={async () => {\n await runtime.setAppContext({ display: ShellDisplay.NONE });\n runtime.setLayout(ShellLayout.DEFAULT);\n }}\n />\n ) : null;\n\n case ShellLayout.JOIN_SPACE:\n return (\n <JoinDialog\n initialInvitationCode={invitationCode}\n onDone={async (result) => {\n await runtime.setAppContext({ display: ShellDisplay.NONE, spaceKey: result?.spaceKey ?? undefined });\n runtime.setLayout(ShellLayout.DEFAULT);\n }}\n onExit={async () => {\n await runtime.setAppContext({ display: ShellDisplay.NONE });\n runtime.setLayout(ShellLayout.DEFAULT);\n }}\n />\n );\n\n default:\n return null;\n }\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Close } from '@radix-ui/react-dialog';\nimport React from 'react';\n\nimport { ThemeContext, useId, useThemeContext } from '@dxos/react-components';\n\nimport { PanelDialog, PanelDialogProps } from '../../layouts';\nimport { DevicesPanel, DevicesPanelProps } from '../../panels';\n\nexport interface DevicesDialogProps\n extends Omit<PanelDialogProps, 'titleId' | 'children'>,\n Omit<DevicesPanelProps, 'doneActionParent'> {}\n\nexport const DevicesDialog = ({ slots, ...devicesDialogProps }: DevicesDialogProps) => {\n const titleId = useId('spaceDialog__title');\n const themeContextValue = useThemeContext();\n\n return (\n <PanelDialog\n {...{\n slots: { ...slots, root: { onOpenChange: (open) => open || devicesDialogProps.onDone?.(), ...slots?.root } },\n titleId\n }}\n >\n <ThemeContext.Provider value={{ ...themeContextValue, themeVariant: 'os' }}>\n <DevicesPanel\n {...{\n ...devicesDialogProps,\n titleId,\n doneActionParent: <Close asChild />\n }}\n />\n </ThemeContext.Provider>\n </PanelDialog>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Close } from '@radix-ui/react-dialog';\nimport React from 'react';\n\nimport { ThemeContext, useId, useThemeContext } from '@dxos/react-components';\n\nimport { PanelDialog, PanelDialogProps } from '../../layouts';\nimport { SpacePanel, SpacePanelProps } from '../../panels';\n\nexport interface SpaceDialogProps\n extends Omit<PanelDialogProps, 'titleId' | 'children'>,\n Omit<SpacePanelProps, 'doneActionParent'> {}\n\nexport const SpaceDialog = ({ slots, ...spacePanelProps }: SpaceDialogProps) => {\n const titleId = useId('spaceDialog__title');\n const themeContextValue = useThemeContext();\n\n return (\n <PanelDialog\n {...{\n slots: { ...slots, root: { onOpenChange: (open) => open || spacePanelProps.onDone?.(), ...slots?.root } },\n titleId\n }}\n >\n <ThemeContext.Provider value={{ ...themeContextValue, themeVariant: 'os' }}>\n <SpacePanel\n {...{\n ...spacePanelProps,\n titleId,\n doneActionParent: <Close asChild />\n }}\n />\n </ThemeContext.Provider>\n </PanelDialog>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, {\n Context,\n createContext,\n PropsWithChildren,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState\n} from 'react';\n\nimport {\n IFrameClientServicesProxy,\n type PublicKey,\n type ShellController,\n ShellDisplay,\n ShellLayout,\n type Space\n} from '@dxos/client';\nimport { MemoryShellRuntime } from '@dxos/client-services';\nimport { useClient, useIdentity } from '@dxos/react-client';\nimport { mx } from '@dxos/react-components';\n\nimport { Shell } from './Shell';\n\nexport type ShellContextProps = {\n runtime?: MemoryShellRuntime;\n setDisplay?: (display: ShellDisplay) => void;\n};\n\nexport const ShellContext: Context<ShellContextProps> = createContext<ShellContextProps>({});\n\nexport const useShell = (): {\n setLayout: ShellController['setLayout'];\n} => {\n const client = useClient();\n const { runtime, setDisplay } = useContext(ShellContext);\n\n const setLayout: ShellController['setLayout'] = async (layout, options) => {\n if (runtime) {\n if (layout === ShellLayout.DEFAULT) {\n setDisplay?.(ShellDisplay.NONE);\n } else {\n setDisplay?.(ShellDisplay.FULLSCREEN);\n }\n\n runtime.setLayout(layout, options);\n }\n\n if (client.services instanceof IFrameClientServicesProxy) {\n await client.services.setLayout(layout, options);\n }\n };\n\n return {\n setLayout\n };\n};\nexport type ShellProviderProps = PropsWithChildren<{\n space?: Space;\n // TODO(wittjosiah): `deviceInvitationCode`.\n haloInvitationCode?: string | null;\n spaceInvitationCode?: string | null;\n onJoinedSpace?: (spaceKey?: PublicKey) => void;\n}>;\n\n/**\n * Renders the DXOS shell and provides a way to set the layout of the shell from the rest of the app.\n */\nexport const ShellProvider = ({\n space,\n haloInvitationCode,\n spaceInvitationCode,\n onJoinedSpace,\n children\n}: ShellProviderProps) => {\n //\n // IFrame Shell\n //\n\n useEffect(() => {\n if (client.services instanceof IFrameClientServicesProxy && onJoinedSpace) {\n return client.services.joinedSpace.on(onJoinedSpace);\n }\n }, []);\n\n useEffect(() => {\n if (client.services instanceof IFrameClientServicesProxy) {\n client.services.setSpaceProvider(() => space?.key);\n }\n }, [space]);\n\n //\n // Component Shell\n //\n\n const client = useClient();\n const identity = useIdentity();\n const [display, setDisplay] = useState(\n !identity || spaceInvitationCode || haloInvitationCode ? ShellDisplay.FULLSCREEN : ShellDisplay.NONE\n );\n\n const shellRuntime = useMemo(() => {\n if (client.config.get('runtime.app.env.DX_VAULT') !== 'false') {\n return;\n }\n\n if (spaceInvitationCode) {\n return new MemoryShellRuntime({\n layout: ShellLayout.JOIN_SPACE,\n invitationCode: spaceInvitationCode\n });\n }\n\n if (haloInvitationCode) {\n return new MemoryShellRuntime({\n layout: ShellLayout.INITIALIZE_IDENTITY,\n invitationCode: haloInvitationCode\n });\n }\n\n return new MemoryShellRuntime({ layout: identity ? ShellLayout.DEFAULT : ShellLayout.INITIALIZE_IDENTITY });\n }, [client, identity, spaceInvitationCode, haloInvitationCode]);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (!space || !shellRuntime) {\n return;\n }\n\n const modifier = event.ctrlKey || event.metaKey;\n if (event.key === '>' && event.shiftKey && modifier) {\n shellRuntime.setLayout(ShellLayout.DEVICE_INVITATIONS);\n setDisplay(ShellDisplay.FULLSCREEN);\n } else if (event.key === '.' && modifier) {\n shellRuntime.setLayout(ShellLayout.SPACE_INVITATIONS, { spaceKey: space.key });\n setDisplay(ShellDisplay.FULLSCREEN);\n }\n },\n [space, shellRuntime]\n );\n\n useEffect(() => {\n if (!shellRuntime) {\n return;\n }\n\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [shellRuntime, handleKeyDown]);\n\n useEffect(() => {\n if (!shellRuntime) {\n return;\n }\n\n return shellRuntime.contextUpdate.on(({ display, spaceKey }) => {\n setDisplay(display);\n onJoinedSpace?.(spaceKey);\n });\n }, [shellRuntime]);\n\n return (\n <>\n {shellRuntime && (\n <div className={mx(display === ShellDisplay.NONE ? 'hidden' : '')}>\n <Shell runtime={shellRuntime} origin={window.location.origin} />\n </div>\n )}\n\n <ShellContext.Provider value={{ runtime: shellRuntime, setDisplay }}>{children}</ShellContext.Provider>\n </>\n );\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nexport const os = {\n 'manage profile label': 'Manage identity',\n 'identity offline description': 'Offline',\n 'sidebar label': 'DXOS sidebar',\n 'copy invitation code label': 'Copy',\n 'copy invitation code success label': 'Copied',\n 'open share panel label': 'Share',\n 'joining space heading': 'Joining space',\n 'join space heading': 'Join a space',\n 'halo heading': 'Initialize device identity',\n 'exit label': 'Exit',\n 'identity selector title': 'Join as',\n 'identity radio group title': 'Select an identity you’ve associated with this device already',\n 'add identity label': 'Add',\n 'continue label': 'Continue',\n 'back label': 'Back',\n 'next label': 'Next',\n 'close label': 'Close',\n 'auth choices label': 'Choose an identity',\n 'create identity label': 'Create an identity',\n 'create identity description': 'Create a new identity.',\n 'recover identity label': 'Use a seed phrase',\n 'recover identity description': 'Enter your seed phrase to log in manually.',\n 'join identity label': 'Use an authed device',\n 'join identity description': 'Add this device to an identity you’re already logged into on another device.',\n 'deselect identity label': 'Back to identities',\n 'addition method selector title': 'An identity is required to continue',\n 'new identity input label': 'Add a display name',\n 'recover identity input label': 'Type or paste your seed phrase',\n 'failed to create identity message': 'Failed to create an identity.',\n 'failed to recover identity message': 'Failed to recover an identity from the provided seed phrase.',\n 'failed to authenticate message': 'Incorrect PIN.',\n 'identity added label': 'Created identity & added to this device:',\n 'join space as identity heading': '<part>as </part><part><icon/><label>{{labelValue}}</label></part>',\n 'error status label': 'Failed',\n 'timeout status label': 'Timed out',\n 'cancelled status label': 'Cancelled',\n 'init status label': 'Ready to connect',\n 'connecting status label': 'Connecting…',\n 'connected status label': 'Enter confirmation PIN',\n 'authenticating status label': 'Enter confirmation PIN',\n 'success status label': 'Success',\n 'connect label': 'Connect',\n 'reconnect label': 'Reconnect',\n 'cancel label': 'Cancel',\n 'done label': 'Done',\n 'reset label': 'Start over',\n 'auth code input label': 'Enter the verification code',\n 'invitation input label': 'Paste an invitation code or URL',\n 'create device invitation label': 'Invite',\n 'create space invitation label': 'Invite',\n 'qr label': 'Scan to accept invitation',\n 'empty invitations message': 'No pending invitations',\n 'show all spaces label': 'All spaces',\n 'all spaces label': 'All spaces',\n 'create space label': 'Create a new space',\n 'join space label': 'Join a space',\n 'show current space label': 'Current space',\n 'view space invitations label': 'View space invitations',\n 'toggle sidebar label': 'Open/close sidebar',\n 'open sidebar label': 'Open sidebar',\n 'close sidebar label': 'Close sidebar',\n 'welcome message': 'Welcome',\n 'selecting identity heading': 'Selecting identity'\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as enUS from './locales/en-US';\n\nexport const osTranslations = { 'en-US': enUS };\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Check", "Copy", "React", "Button", "getSize", "mx", "useTranslation", "React", "createContext", "useCallback", "useContext", "useState", "ClipboardContext", "textValue", "setTextValue", "_", "useClipboardContext", "ClipboardProvider", "children", "setInternalTextValue", "nextValue", "navigator", "clipboard", "writeText", "Provider", "value", "inactiveLabelStyles", "CopyButton", "value", "t", "useTranslation", "textValue", "setTextValue", "useClipboardContext", "isCopied", "React", "Button", "className", "onClick", "data-testid", "div", "role", "mx", "span", "Copy", "getSize", "weight", "Check", "React", "React", "SpaceMember", "Avatar", "mx", "useTranslation", "IdentityListItem", "identity", "presence", "onClick", "t", "li", "className", "data-testid", "variant", "size", "fallbackValue", "identityKey", "toHex", "label", "p", "profile", "displayName", "truncate", "PresenceState", "OFFLINE", "status", "description", "ONLINE", "slots", "labels", "root", "DeviceList", "devices", "onSelect", "React", "ul", "className", "map", "device", "identity", "identityKey", "deviceKey", "profile", "displayName", "IdentityListItem", "key", "toHex", "onClick", "React", "SpaceMemberList", "members", "onSelect", "React", "ul", "className", "filter", "member", "identity", "map", "IdentityListItem", "key", "identityKey", "toHex", "presence", "onClick", "React", "useMemo", "useClient", "useMembers", "SpaceMemberListContainer", "spaceKey", "includeSelf", "onSelect", "client", "useClient", "allUnsortedMembers", "useMembers", "members", "useMemo", "sort", "a", "identity", "identityKey", "equals", "halo", "get", "filter", "member", "React", "SpaceMemberList", "React", "getSize", "mx", "Invitation", "invitationStatusValue", "Map", "State", "ERROR", "TIMEOUT", "CANCELLED", "INIT", "CONNECTING", "CONNECTED", "READY_FOR_AUTHENTICATION", "AUTHENTICATING", "SUCCESS", "toArray", "emoji", "toEmoji", "keyAsHex", "parseInt", "length", "_extends", "InvitationEmoji", "invitationId", "size", "rootProps", "invitationEmoji", "toEmoji", "React", "div", "role", "className", "mx", "getSize", "span", "React", "Invitation", "getSize", "mx", "defaultOverlay", "defaultDialogContent", "defaultSurface", "subduedSurface", "defaultArrow", "Invitation", "inactiveBgColor", "activeBgColor", "successBgColor", "errorBgColor", "cancelledBgColor", "inactiveTextColor", "activeTextColor", "successTextColor", "errorTextColor", "cancelledTextColor", "inactiveStrokeColor", "activeStrokeColor", "successStrokeColor", "errorStrokeColor", "cancelledStrokeColor", "resolvedStrokeColor", "status", "State", "ERROR", "CANCELLED", "TIMEOUT", "resolvedBgColor", "resolvedTextColor", "_extends", "svgSize", "strokeWidth", "radius", "circumference", "Math", "PI", "gap", "nSegments", "segment", "baseOffset", "circleProps", "fill", "strokeLinecap", "cx", "cy", "r", "strokeDasharray", "InvitationStatusAvatar", "size", "status", "haltedAt", "slots", "invitationId", "resolvedColor", "resolvedStrokeColor", "halted", "Invitation", "State", "CANCELLED", "TIMEOUT", "ERROR", "cursor", "invitationStatusValue", "get", "React", "div", "className", "InvitationEmoji", "svg", "viewBox", "mx", "getSize", "Array", "map", "_", "index", "circle", "key", "strokeDashoffset", "activeStrokeColor", "inactiveStrokeColor", "ProhibitInset", "QrCode", "X", "AccordionPrimitive", "QRCodeSVG", "React", "useCallback", "useInvitationStatus", "Button", "getSize", "mx", "useId", "useTranslation", "_extends", "InvitationListItem", "invitation", "value", "onClickRemove", "createInvitationUrl", "t", "useTranslation", "qrLabel", "useId", "cancel", "status", "haltedAt", "invitationCode", "authCode", "useInvitationStatus", "statusValue", "invitationStatusValue", "get", "isCancellable", "showShare", "showAuthCode", "handleClickRemove", "useCallback", "invitationUrl", "React", "Item", "Header", "className", "InvitationStatusAvatar", "size", "invitationId", "Trigger", "asChild", "Button", "data-testid", "span", "QrCode", "getSize", "weight", "CopyButton", "p", "role", "variant", "onClick", "ProhibitInset", "X", "Content", "QRCodeSVG", "bgColor", "fgColor", "mx", "aria-labelledby", "id", "React", "useCallback", "useSpace", "useSpaceInvitations", "Root", "AccordionRoot", "React", "defaultDescription", "DensityProvider", "mx", "useTranslation", "_extends", "InvitationList", "invitations", "invitationProps", "t", "useTranslation", "length", "React", "AccordionRoot", "type", "collapsible", "className", "DensityProvider", "density", "ClipboardProvider", "map", "invitation", "value", "get", "invitationId", "InvitationListItem", "key", "p", "mx", "defaultDescription", "_extends", "InvitationListContainer", "spaceKey", "createInvitationUrl", "space", "useSpace", "invitations", "useSpaceInvitations", "onClickRemove", "useCallback", "invitation", "cancel", "React", "InvitationList", "React", "mx", "_extends", "PanelSeparator", "className", "props", "span", "role", "React", "forwardRef", "Avatar", "mx", "humanize", "_extends", "SpaceListItem", "space", "onClick", "ref", "li", "className", "data-testid", "variant", "size", "fallbackValue", "key", "toHex", "label", "p", "properties", "name", "slots", "labels", "root", "React", "Avatar", "mx", "React", "mx", "Popover", "_extends", "PanelPopover", "slots", "children", "popoverProps", "React", "Popover", "arrow", "className", "mx", "defaultArrow", "content", "collisionPadding", "sideOffset", "defaultSurface", "trigger", "DialogPrimitive", "React", "createContext", "useCallback", "useContext", "useState", "defaultOverlay", "mx", "useMediaQuery", "useTranslation", "_extends", "PanelSidebarContext", "displayState", "setDisplayState", "useTogglePanelSidebar", "PanelSidebarProvider", "children", "slots", "t", "isLg", "ssr", "setInternalDisplayState", "isOpen", "transitionShow", "setTransitionShow", "domShow", "setDomShow", "internalHide", "setTimeout", "internalShow", "Provider", "value", "Root", "open", "modal", "div", "role", "className", "onClick", "Content", "onOpenAutoFocus", "event", "preventDefault", "onCloseAutoFocus", "content", "Title", "main", "AlertDialog", "React", "mx", "_extends", "PanelAlertDialog", "titleId", "slots", "children", "React", "Root", "defaultOpen", "root", "trigger", "Trigger", "Overlay", "overlay", "className", "mx", "defaultOverlay", "Content", "onEscapeKeyDown", "event", "preventDefault", "content", "aria-labelledby", "defaultDialogContent", "Dialog", "React", "mx", "_extends", "PanelDialog", "titleId", "slots", "children", "React", "Root", "defaultOpen", "root", "trigger", "Trigger", "Overlay", "overlay", "className", "mx", "defaultOverlay", "Content", "onOpenAutoFocus", "event", "preventDefault", "onCloseAutoFocus", "content", "aria-labelledby", "defaultDialogContent", "UserPlus", "X", "React", "cloneElement", "useReducer", "useClient", "useDevices", "useHaloInvitations", "useIdentity", "Button", "DensityProvider", "getSize", "mx", "TooltipContent", "TooltipRoot", "TooltipTrigger", "useTranslation", "_extends", "DeviceListView", "createInvitationUrl", "titleId", "onDone", "doneActionParent", "t", "useTranslation", "client", "useClient", "identity", "useIdentity", "devices", "useDevices", "invitations", "useHaloInvitations", "displayName", "profile", "doneButton", "React", "Button", "variant", "onClick", "data-testid", "X", "className", "getSize", "weight", "div", "role", "mx", "subduedSurface", "h2", "id", "identityKey", "truncate", "TooltipRoot", "TooltipContent", "TooltipTrigger", "asChild", "cloneElement", "defaultSurface", "InvitationList", "onClickRemove", "invitation", "cancel", "halo", "createInvitation", "span", "UserPlus", "PanelSeparator", "DeviceList", "DevicesPanel", "props", "reducer", "state", "action", "nextState", "type", "panelState", "useReducer", "activeView", "DensityProvider", "density", "React", "useClient", "Avatar", "Button", "DensityProvider", "ThemeContext", "useThemeContext", "useTranslation", "IdentityPanel", "identity", "onClickManageProfile", "t", "client", "themeContextValue", "defaultManageProfile", "remoteSource", "URL", "config", "get", "tab", "window", "open", "origin", "focus", "Provider", "value", "themeVariant", "density", "div", "className", "size", "variant", "fallbackValue", "identityKey", "toHex", "label", "profile", "displayName", "onClick", "React", "useEffect", "log", "useClient", "useIdentity", "DensityProvider", "useId", "useThemeContext", "X", "React", "cloneElement", "forwardRef", "useSpace", "Button", "defaultDescription", "getSize", "Heading", "mx", "useId", "useTranslation", "_extends", "JoinHeading", "forwardRef", "mode", "titleId", "joinState", "onExit", "exitActionParent", "preventExit", "ref", "t", "useTranslation", "space", "useSpace", "context", "invitation", "spaceKey", "name", "properties", "nameId", "useId", "invitationId", "exitButton", "React", "Button", "variant", "onClick", "className", "mx", "defaultDescription", "data-testid", "X", "weight", "getSize", "span", "div", "role", "defaultSurface", "cloneElement", "Heading", "level", "id", "InvitationEmoji", "p", "useMachine", "useCallback", "assign", "createMachine", "Invitation", "InvitationEncoder", "log", "getInvitationSubscribable", "Kind", "invitation", "subscribe", "next", "onError", "complete", "state", "State", "CONNECTING", "type", "CONNECTED", "READY_FOR_AUTHENTICATION", "AUTHENTICATING", "SUCCESS", "CANCELLED", "warn", "reason", "TIMEOUT", "error", "acceptingInvitationTemplate", "successTarget", "config", "initial", "states", "always", "cond", "mode", "target", "actions", "invoke", "src", "context", "toLowerCase", "invitationSubscribable", "on", "event", "failReason", "unredeemedCode", "code", "joinMachine", "id", "predictableActionArguments", "identity", "halo", "space", "unknown", "choosingIdentity", "choosingAuthMethod", "recoveringIdentity", "creatingIdentity", "acceptingHaloInvitation", "confirmingAddedIdentity", "recoverIdentity", "createIdentity", "acceptHaloInvitation", "addIdentity", "selectIdentity", "deselectAuthMethod", "acceptingSpaceInvitation", "finishingJoiningSpace", "finishingJoiningHalo", "guards", "noSelectedIdentity", "_event", "noHaloInvitation", "noSpaceInvitation", "setIdentity", "unsetIdentity", "resetInvitation", "invitationObservable", "cancel", "undefined", "setInvitation", "includes", "haloInvitation", "spaceInvitation", "defaultCodeFromUrl", "invitationType", "text", "searchParams", "URLSearchParams", "substring", "lastIndexOf", "get", "err", "catch", "useJoinMachine", "client", "options", "redeemHaloInvitationCode", "acceptInvitation", "decode", "redeemSpaceInvitationCode", "CaretRight", "Plus", "QrCode", "Textbox", "React", "CompoundButton", "getSize", "useTranslation", "CheckCircle", "HourglassSimple", "X", "React", "useMemo", "Invitation", "useInvitationStatus", "mx", "useTranslation", "useId", "getSize", "strongShimmer", "_extends", "stripe", "mx", "getSize", "ViewStateHeading", "children", "className", "props", "React", "h2", "ViewState", "active", "children", "className", "joinSend", "joinState", "props", "React", "div", "role", "mx", "defaultSurface", "_extends", "AdditionMethodSelector", "viewStateProps", "disabled", "active", "joinSend", "t", "useTranslation", "sharedButtonProps", "after", "React", "CaretRight", "className", "getSize", "weight", "slots", "label", "ViewState", "ViewStateHeading", "div", "role", "CompoundButton", "description", "before", "Plus", "onClick", "type", "data-autofocus", "data-testid", "QrCode", "Textbox", "CaretLeft", "CaretRight", "Check", "React", "cloneElement", "Avatar", "Button", "getSize", "mx", "useTranslation", "_extends", "Done", "onDone", "doneActionParent", "active", "disabled", "t", "useTranslation", "doneButton", "React", "Button", "onClick", "className", "data-autofocus", "data-testid", "CaretLeft", "weight", "mx", "getSize", "span", "Check", "cloneElement", "IdentityAdded", "mode", "addedIdentity", "viewStateProps", "joinSend", "ViewState", "ViewStateHeading", "div", "role", "Avatar", "size", "fallbackValue", "identityKey", "toHex", "label", "p", "profile", "displayName", "truncate", "variant", "status", "type", "identity", "CaretRight", "CaretLeft", "CaretRight", "React", "useState", "log", "useClient", "Button", "getSize", "Input", "mx", "useTranslation", "_extends", "IdentityInput", "method", "viewStateProps", "disabled", "active", "joinSend", "t", "useTranslation", "inputValue", "setInputValue", "useState", "client", "useClient", "validationMessage", "setValidationMessage", "isRecover", "handleNext", "halo", "createIdentity", "then", "identity", "type", "error", "log", "catch", "React", "ViewState", "Input", "label", "ViewStateHeading", "onChange", "target", "value", "slots", "root", "className", "input", "onKeyUp", "key", "length", "validationValence", "data-testid", "div", "role", "Button", "onClick", "CaretLeft", "weight", "mx", "getSize", "span", "CaretRight", "CaretLeft", "Check", "React", "cloneElement", "useInvitationStatus", "Button", "getSize", "mx", "useTranslation", "_extends", "PureInvitationAcceptedContent", "onDone", "result", "Kind", "doneActionParent", "active", "disabled", "t", "useTranslation", "doneButton", "React", "Button", "onClick", "className", "data-autofocus", "data-testid", "toLowerCase", "CaretLeft", "weight", "mx", "getSize", "span", "Check", "p", "div", "role", "cloneElement", "InvitationAcceptedContent", "props", "useInvitationStatus", "activeInvitation", "InvitationAccepted", "_doneActionParent", "_onDone", "viewStateProps", "joinState", "context", "invitationObservable", "ViewState", "CaretLeft", "CaretRight", "React", "useEffect", "useState", "Button", "getSize", "Input", "mx", "useTranslation", "_extends", "InvitationInput", "Kind", "viewStateProps", "disabled", "active", "joinSend", "joinState", "t", "useTranslation", "contextUnredeemedCode", "context", "toLowerCase", "unredeemedCode", "inputValue", "setInputValue", "useState", "useEffect", "handleNext", "type", "code", "React", "ViewState", "Input", "label", "ViewStateHeading", "value", "onChange", "target", "slots", "root", "className", "input", "onKeyUp", "key", "div", "role", "Button", "onClick", "data-testid", "CaretLeft", "weight", "mx", "getSize", "span", "CaretRight", "ArrowsClockwise", "CaretLeft", "CaretRight", "React", "Invitation", "Button", "defaultDescription", "getSize", "mx", "useTranslation", "_extends", "InvitationActions", "invitationState", "disabled", "joinSend", "joinState", "Kind", "t", "useTranslation", "invitationType", "toLowerCase", "Invitation", "State", "CONNECTING", "React", "ViewStateHeading", "className", "defaultDescription", "div", "role", "Button", "data-testid", "CaretLeft", "weight", "mx", "getSize", "span", "CaretRight", "onClick", "context", "invitationObservable", "cancel", "TIMEOUT", "CANCELLED", "ERROR", "type", "ArrowsClockwise", "InvitationRescuer", "viewStateProps", "active", "invitation", "state", "ViewState", "data-autofocus", "CaretLeft", "CaretRight", "React", "useCallback", "useState", "useInvitationStatus", "Button", "getSize", "Input", "mx", "useTranslation", "_extends", "pinLength", "PureInvitationAuthenticatorContent", "disabled", "failed", "joinSend", "joinState", "Kind", "onChange", "onAuthenticate", "t", "useTranslation", "invitationType", "toLowerCase", "React", "Input", "label", "ViewStateHeading", "size", "length", "slots", "root", "className", "description", "input", "inputMode", "autoComplete", "pattern", "validationValence", "validationMessage", "div", "role", "Button", "onClick", "data-autofocus-pinlength", "data-testid", "CaretLeft", "weight", "mx", "getSize", "span", "CaretRight", "context", "invitationObservable", "cancel", "InvitationAuthenticatorContent", "invitation", "pinValue", "setPinValue", "useState", "authenticate", "useInvitationStatus", "useCallback", "type", "target", "value", "document", "querySelector", "focus", "InvitationAuthenticator", "viewStateProps", "active", "some", "str", "configuration", "id", "includes", "activeInvitation", "ViewState", "_extends", "JoinPanel", "mode", "initialInvitationCode", "exitActionParent", "onExit", "doneActionParent", "onDone", "preventExit", "client", "useClient", "identity", "useIdentity", "titleId", "useId", "hasIosKeyboard", "useThemeContext", "joinState", "joinSend", "joinService", "useJoinMachine", "context", "unredeemedCode", "useEffect", "subscription", "subscribe", "state", "log", "unsubscribe", "stateStack", "configuration", "id", "split", "innermostState", "length", "autoFocusValue", "$nextAutofocus", "document", "querySelector", "hasAttribute", "focus", "value", "React", "DensityProvider", "density", "JoinHeading", "div", "role", "className", "aria-live", "AdditionMethodSelector", "active", "matches", "choosingIdentity", "IdentityInput", "method", "InvitationInput", "acceptingHaloInvitation", "Kind", "InvitationRescuer", "acceptingRedeemedHaloInvitation", "some", "InvitationAuthenticator", "failed", "InvitationAccepted", "IdentityAdded", "acceptingSpaceInvitation", "acceptingRedeemedSpaceInvitation", "UserPlus", "React", "useCallback", "useReducer", "InvitationEncoder", "useSpaceInvitations", "observer", "Button", "DensityProvider", "getSize", "mx", "useTranslation", "_extends", "CurrentSpaceView", "observer", "space", "createInvitationUrl", "titleId", "t", "useTranslation", "invitations", "useSpaceInvitations", "key", "name", "properties", "console", "log", "process", "onInvitationEvent", "useCallback", "invitation", "invitationCode", "InvitationEncoder", "encode", "JSON", "stringify", "authCode", "React", "div", "role", "className", "mx", "subduedSurface", "h2", "id", "truncate", "defaultSurface", "InvitationList", "onClickRemove", "cancel", "Button", "onClick", "createInvitation", "subscribe", "data-testid", "span", "UserPlus", "getSize", "weight", "PanelSeparator", "SpaceMemberListContainer", "spaceKey", "includeSelf", "SpacePanel", "props", "reducer", "state", "action", "nextState", "type", "panelState", "useReducer", "activeView", "DensityProvider", "density", "_extends", "IdentityPopover", "identity", "openTrigger", "slots", "triggerIsInToolbar", "onClickManageProfile", "popoverProps", "React", "PanelPopover", "Avatar", "size", "variant", "fallbackValue", "identityKey", "toHex", "label", "profile", "displayName", "trigger", "className", "mx", "IdentityPanel", "Action", "Cancel", "React", "ThemeContext", "useId", "useThemeContext", "_extends", "JoinDialog", "slots", "joinPanelProps", "titleId", "useId", "themeContextValue", "useThemeContext", "React", "PanelAlertDialog", "ThemeContext", "Provider", "value", "themeVariant", "JoinPanel", "exitActionParent", "Cancel", "asChild", "doneActionParent", "Action", "React", "useEffect", "useState", "log", "ShellDisplay", "ShellLayout", "useClient", "useSpace", "useSpaces", "Close", "React", "ThemeContext", "useId", "useThemeContext", "_extends", "DevicesDialog", "slots", "devicesDialogProps", "titleId", "useId", "themeContextValue", "useThemeContext", "React", "PanelDialog", "root", "onOpenChange", "open", "onDone", "ThemeContext", "Provider", "value", "themeVariant", "DevicesPanel", "doneActionParent", "Close", "asChild", "Close", "React", "ThemeContext", "useId", "useThemeContext", "_extends", "SpaceDialog", "slots", "spacePanelProps", "titleId", "useId", "themeContextValue", "useThemeContext", "React", "PanelDialog", "root", "onOpenChange", "open", "onDone", "ThemeContext", "Provider", "value", "themeVariant", "SpacePanel", "doneActionParent", "Close", "asChild", "Shell", "runtime", "origin", "layout", "invitationCode", "spaceKey", "setLayout", "useState", "client", "useClient", "spaces", "useSpaces", "space", "useSpace", "useEffect", "layoutUpdate", "on", "request", "ShellLayout", "SPACE_INVITATIONS", "log", "warn", "timeout", "setTimeout", "setAppContext", "display", "ShellDisplay", "NONE", "DEFAULT", "clearTimeout", "INITIALIZE_IDENTITY", "React", "JoinDialog", "mode", "initialInvitationCode", "onDone", "length", "createSpace", "DEVICE_INVITATIONS", "DevicesDialog", "createInvitationUrl", "SpaceDialog", "JOIN_SPACE", "result", "undefined", "onExit", "React", "createContext", "useCallback", "useContext", "useEffect", "useMemo", "useState", "IFrameClientServicesProxy", "ShellDisplay", "ShellLayout", "MemoryShellRuntime", "useClient", "useIdentity", "mx", "ShellContext", "createContext", "useShell", "client", "useClient", "runtime", "setDisplay", "useContext", "setLayout", "layout", "options", "ShellLayout", "DEFAULT", "ShellDisplay", "NONE", "FULLSCREEN", "services", "IFrameClientServicesProxy", "ShellProvider", "space", "haloInvitationCode", "spaceInvitationCode", "onJoinedSpace", "children", "useEffect", "joinedSpace", "on", "setSpaceProvider", "key", "identity", "useIdentity", "display", "useState", "shellRuntime", "useMemo", "config", "get", "MemoryShellRuntime", "JOIN_SPACE", "invitationCode", "INITIALIZE_IDENTITY", "handleKeyDown", "useCallback", "event", "modifier", "ctrlKey", "metaKey", "shiftKey", "DEVICE_INVITATIONS", "SPACE_INVITATIONS", "spaceKey", "window", "addEventListener", "removeEventListener", "contextUpdate", "React", "div", "className", "mx", "Shell", "origin", "location", "Provider", "value", "os", "osTranslations", "enUS"]
|
|
3
|
+
"sources": ["../../../src/index.ts", "../../../src/components/Avatars/Avatar.tsx", "../../../src/hooks/useDensityContext.ts", "../../../src/hooks/useElevationContext.ts", "../../../src/hooks/useTranslationsContext.ts", "../../../src/components/ThemeProvider/TranslationsProvider.tsx", "../../../src/hooks/useThemeContext.ts", "../../../src/hooks/useVisualViewport.ts", "../../../src/components/Avatars/AvatarGroup.tsx", "../../../src/components/Breadcrumb/Breadcrumb.tsx", "../../../src/components/Link/Link.tsx", "../../../src/components/Buttons/Button.tsx", "../../../src/components/Buttons/Toggle.tsx", "../../../src/components/Buttons/ToggleGroup.tsx", "../../../src/components/Card/Card.tsx", "../../../src/components/Center/Center.tsx", "../../../src/components/ComboBox/ComboBox.tsx", "../../../src/components/Input/Input.tsx", "../../../src/components/Dialogs/Dialog.tsx", "../../../src/components/ElevationProvider/ElevationProvider.tsx", "../../../src/components/Dialogs/AlertDialog.tsx", "../../../src/components/DropdownMenu/DropdownMenu.tsx", "../../../src/components/List/List.tsx", "../../../src/components/DensityProvider/DensityProvider.tsx", "../../../src/components/List/Tree.tsx", "../../../src/components/Main/Main.tsx", "../../../src/components/Main/useSwipeToDismiss.ts", "../../../src/components/Message/Message.tsx", "../../../src/components/Popover/Popover.tsx", "../../../src/components/ProgressBar/ProgressBar.tsx", "../../../src/components/ScrollArea/ScrollArea.tsx", "../../../src/components/Select/Select.tsx", "../../../src/components/Separator/Separator.tsx", "../../../src/components/Tag/Tag.tsx", "../../../src/components/Toast/Toast.tsx", "../../../src/components/Toolbar/Toolbar.tsx", "../../../src/components/Tooltip/Tooltip.tsx", "../../../src/components/ThemeProvider/ThemeProvider.tsx", "../../../src/util/hasIosKeyboard.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nexport type { TFunction } from 'i18next';\nexport { useTranslation, Trans } from 'react-i18next';\nexport * from '@dxos/react-ui-types';\nexport * from '@dxos/react-hooks';\n\nexport * from './components';\nexport * from './hooks';\nexport * from './util';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n Root as AvatarRootPrimitive,\n type AvatarProps as AvatarRootPrimitiveProps,\n Image as AvatarImagePrimitive,\n type ImageLoadingStatus,\n Fallback as AvatarFallbackPrimitive,\n} from '@radix-ui/react-avatar';\nimport { createContext } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport { toSvg } from 'jdenticon';\nimport React, { type ComponentPropsWithRef, forwardRef, type PropsWithChildren, useMemo } from 'react';\n\nimport { useId } from '@dxos/react-hooks';\nimport { type Size } from '@dxos/react-ui-types';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype AvatarVariant = 'square' | 'circle';\ntype AvatarStatus = 'active' | 'inactive' | 'error' | 'warning';\ntype AvatarAnimation = 'pulse' | 'none';\n\nexport type AvatarRootProps = PropsWithChildren<Partial<AvatarContextValue>>;\n\ntype AvatarContextValue = {\n labelId: string;\n descriptionId: string;\n maskId: string;\n size: Size;\n variant: AvatarVariant;\n status?: AvatarStatus;\n animation?: AvatarAnimation;\n inGroup?: boolean;\n};\nconst AVATAR_NAME = 'Avatar';\nconst [AvatarProvider, useAvatarContext] = createContext<AvatarContextValue>(AVATAR_NAME);\n\nconst AvatarRoot = ({\n size = 10,\n variant = 'circle',\n status,\n animation,\n children,\n labelId: propsLabelId,\n descriptionId: propsDescriptionId,\n maskId: propsMaskId,\n inGroup,\n}: AvatarRootProps) => {\n const labelId = useId('avatar__label', propsLabelId);\n const descriptionId = useId('avatar__description', propsDescriptionId);\n const maskId = useId('avatar__mask', propsMaskId);\n return (\n <AvatarProvider {...{ labelId, descriptionId, maskId, size, variant, status, animation, inGroup }}>\n {children}\n </AvatarProvider>\n );\n};\n\ntype AvatarFrameProps = ThemedClassName<AvatarRootPrimitiveProps>;\n\nconst strokeWidth = 2;\nconst rx = 8;\n\nconst AvatarFrame = forwardRef<HTMLSpanElement, AvatarFrameProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { size, variant, labelId, descriptionId, maskId, inGroup, status, animation } =\n useAvatarContext('AvatarFrame');\n\n const { tx } = useThemeContext();\n const imageSizeNumber = size === 'px' ? 1 : size * 4;\n const ringGap = 3;\n const ringWidth = 2;\n const r = imageSizeNumber / 2 - ringGap - ringWidth;\n return (\n <AvatarRootPrimitive\n role='img'\n {...props}\n className={tx('avatar.root', 'avatar', { size, variant, inGroup }, classNames)}\n ref={forwardedRef}\n {...(!inGroup && {\n 'aria-labelledby': labelId,\n 'aria-describedby': descriptionId,\n })}\n >\n <svg\n viewBox={`0 0 ${imageSizeNumber} ${imageSizeNumber}`}\n width={imageSizeNumber}\n height={imageSizeNumber}\n className={tx('avatar.frame', 'avatar__frame', {})}\n >\n <defs>\n <mask id={maskId}>\n {variant === 'circle' ? (\n <circle fill='white' cx='50%' cy='50%' r={r} />\n ) : (\n <rect fill='white' width={2 * r} height={2 * r} x={ringGap + ringWidth} y={ringGap + ringWidth} />\n )}\n </mask>\n </defs>\n {variant === 'circle' ? (\n <g>\n <circle fill='#999' stroke='none' opacity={0.1} cx='50%' cy='50%' r={r} />\n <circle stroke='#888' fill='none' opacity={0.3} cx='50%' cy='50%' r={r} />\n </g>\n ) : (\n <g>\n <rect\n fill='#999'\n stroke='none'\n opacity={0.1}\n width={2 * r}\n height={2 * r}\n x={ringGap + ringWidth}\n y={ringGap + ringWidth}\n rx={2}\n />\n <rect\n fill='none'\n stroke='#333'\n opacity={0.15}\n width={2 * r}\n height={2 * r}\n x={ringGap + ringWidth}\n y={ringGap + ringWidth}\n rx={2}\n />\n </g>\n // <circle\n // className='avatarFrameFill fill-[var(--surface-bg)]'\n // cx={imageSizeNumber / 2}\n // cy={imageSizeNumber / 2}\n // r={imageSizeNumber / 2}\n // />\n // ) : (\n // <rect\n // className='avatarFrameFill fill-[var(--surface-bg)]'\n // width={imageSizeNumber}\n // height={imageSizeNumber}\n // rx={rx}\n // />\n )}\n {children}\n {variant === 'circle' ? (\n <circle\n className='avatarFrameStroke fill-transparent stroke-[var(--surface-bg)]'\n strokeWidth={strokeWidth}\n cx={imageSizeNumber / 2}\n cy={imageSizeNumber / 2}\n r={imageSizeNumber / 2 - strokeWidth / 4}\n />\n ) : (\n <rect\n className='avatarFrameStroke fill-transparent stroke-[var(--surface-bg)]'\n strokeWidth={strokeWidth}\n x={strokeWidth / 4}\n y={strokeWidth / 4}\n rx={rx}\n width={imageSizeNumber - strokeWidth / 4}\n height={imageSizeNumber - strokeWidth / 4}\n />\n )}\n </svg>\n <span className={tx('avatar.ring', 'avatar__ring', { size, variant, status, animation })}></span>\n </AvatarRootPrimitive>\n );\n },\n);\n\ntype AvatarLabelProps = ThemedClassName<Omit<ComponentPropsWithRef<typeof Primitive.span>, 'id'>> & {\n asChild?: boolean;\n srOnly?: boolean;\n};\n\nconst AvatarLabel = forwardRef<HTMLSpanElement, AvatarLabelProps>(\n ({ asChild, srOnly, classNames, ...props }, forwardedRef) => {\n const Root = asChild ? Slot : Primitive.span;\n const { tx } = useThemeContext();\n const { labelId } = useAvatarContext('AvatarLabel');\n return (\n <Root\n {...props}\n id={labelId}\n ref={forwardedRef}\n className={tx('avatar.label', 'avatar__label', { srOnly }, classNames)}\n />\n );\n },\n);\n\ntype AvatarDescriptionProps = ThemedClassName<Omit<ComponentPropsWithRef<typeof Primitive.span>, 'id'>> & {\n asChild?: boolean;\n srOnly?: boolean;\n};\n\nconst AvatarDescription = forwardRef<HTMLSpanElement, AvatarDescriptionProps>(\n ({ asChild, srOnly, classNames, ...props }, forwardedRef) => {\n const Root = asChild ? Slot : Primitive.span;\n const { tx } = useThemeContext();\n const { descriptionId } = useAvatarContext('AvatarDescription');\n return (\n <Root\n {...props}\n id={descriptionId}\n ref={forwardedRef}\n className={tx('avatar.description', 'avatar__description', { srOnly }, classNames)}\n />\n );\n },\n);\n\ntype AvatarMaskedImageProps = ComponentPropsWithRef<'image'>;\n\nconst AvatarMaskedImage = forwardRef<SVGImageElement, AvatarMaskedImageProps>((props, forwardedRef) => {\n const { maskId } = useAvatarContext('AvatarFallback');\n return <image width='100%' height='100%' {...props} mask={`url(#${maskId})`} ref={forwardedRef} />;\n});\n\ntype AvatarMaskedTextProps = PropsWithChildren<{ large?: boolean }>;\n\nconst AvatarMaskedText = (props: AvatarMaskedTextProps) => {\n const { maskId, size } = useAvatarContext('AvatarFallback');\n const { large } = props;\n const fontScale = (large ? 4 : 3) * (1 / 1.612);\n const { tx } = useThemeContext();\n return (\n <text\n x='50%'\n y='50%'\n className={tx('avatar.fallbackText', 'avatar__fallback-text')}\n textAnchor='middle'\n alignmentBaseline='central'\n fontSize={size === 'px' ? '200%' : size * fontScale}\n mask={`url(#${maskId})`}\n >\n {props.children}\n </text>\n );\n};\n\ntype AvatarImageProps = ComponentPropsWithRef<'image'> & {\n onLoadingStatusChange?: (status: ImageLoadingStatus) => void;\n};\n\nconst AvatarImage = forwardRef<SVGImageElement, AvatarImageProps>(\n ({ onLoadingStatusChange, ...props }, forwardedRef) => {\n return (\n <AvatarImagePrimitive onLoadingStatusChange={onLoadingStatusChange} asChild>\n <AvatarMaskedImage {...props} ref={forwardedRef} />\n </AvatarImagePrimitive>\n );\n },\n);\n\ntype AvatarFallbackProps = ComponentPropsWithRef<'image'> & {\n delayMs?: number;\n text?: string;\n};\n\nconst AvatarFallback = forwardRef<SVGImageElement, AvatarFallbackProps>(({ delayMs, text, ...props }, forwardedRef) => {\n const isTextOnly = Boolean(text && /[0-9a-zA-Z]+/.test(text));\n return (\n <AvatarFallbackPrimitive delayMs={delayMs} asChild>\n <>\n <AvatarMaskedImage {...props} ref={forwardedRef} />\n {text && <AvatarMaskedText large={!isTextOnly}>{text.toLocaleUpperCase()}</AvatarMaskedText>}\n </>\n </AvatarFallbackPrimitive>\n );\n});\n\nconst getJdenticonHref = (value: string, size: Size) =>\n `data:image/svg+xml;utf8,${encodeURIComponent(toSvg(value, size === 'px' ? 1 : size * 4, { padding: 0 }))}`;\n\nconst useJdenticonHref = (value: string, size: Size) => {\n return useMemo(() => getJdenticonHref(value, size), [value]);\n};\n\nexport const Avatar = {\n Root: AvatarRoot,\n Frame: AvatarFrame,\n Image: AvatarImage,\n Fallback: AvatarFallback,\n Label: AvatarLabel,\n Description: AvatarDescription,\n};\n\nexport { useJdenticonHref, useAvatarContext, getJdenticonHref };\n\nexport type {\n AvatarStatus,\n AvatarVariant,\n AvatarAnimation,\n AvatarFrameProps,\n AvatarImageProps,\n AvatarFallbackProps,\n AvatarLabelProps,\n AvatarDescriptionProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useContext } from 'react';\n\nimport { type Density } from '@dxos/react-ui-types';\n\nimport { DensityContext } from '../components';\n\nexport const useDensityContext = (propsDensity?: Density) => {\n const { density } = useContext(DensityContext);\n return propsDensity ?? density;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useContext } from 'react';\n\nimport { type Elevation } from '@dxos/react-ui-types';\n\nimport { ElevationContext } from '../components';\n\nexport const useElevationContext = (propsElevation?: Elevation) => {\n const { elevation } = useContext(ElevationContext);\n return propsElevation ?? elevation;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useContext } from 'react';\n\nimport { TranslationsContext } from '../components/ThemeProvider/TranslationsProvider';\n\nexport const useTranslationsContext = () => useContext(TranslationsContext);\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport i18Next, { type Resource } from 'i18next';\nimport React, { type ReactNode, useEffect, createContext, useState, Suspense } from 'react';\nimport { initReactI18next } from 'react-i18next';\n\nconst initialLng = 'en-US';\nconst initialNs = 'dxos-common';\n\nexport const resources = {\n [initialLng]: {\n [initialNs]: {\n 'loading translations': 'Loading translations…',\n },\n },\n} as const;\n\nvoid i18Next.use(initReactI18next).init({\n resources,\n lng: initialLng,\n defaultNS: initialNs,\n interpolation: {\n escapeValue: false,\n },\n});\n\nexport interface TranslationsProviderProps {\n children?: ReactNode;\n fallback?: ReactNode;\n resourceExtensions?: Resource[];\n appNs?: string;\n}\n\nexport const TranslationsContext = createContext({\n appNs: initialNs,\n});\n\nexport const TranslationsProvider = ({ fallback, resourceExtensions, children, appNs }: TranslationsProviderProps) => {\n const [loaded, setLoaded] = useState(false);\n useEffect(() => {\n setLoaded(false);\n if (resourceExtensions && resourceExtensions.length) {\n resourceExtensions.forEach((resource) => {\n Object.keys(resource).forEach((language) => {\n Object.keys(resource[language]).forEach((ns) => {\n i18Next.addResourceBundle(language, ns, resource[language][ns]);\n });\n });\n });\n }\n setLoaded(true);\n }, [resourceExtensions]);\n\n // TODO(thure): This is not ideal, but i18next was causing `Suspense` to not render the fallback even when the child was asking for namespaces yet to be added.\n // TODO(burdon): Fallbacks should only appear after a short delay, and if the displayed then be visible for 500mx to avoid startup flickering.\n return (\n <TranslationsContext.Provider value={{ appNs: appNs ?? initialNs }}>\n <Suspense fallback={fallback}>{loaded ? children : fallback}</Suspense>\n </TranslationsContext.Provider>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useContext } from 'react';\n\nimport { ThemeContext } from '../components';\n\nexport const useThemeContext = () => useContext(ThemeContext);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nexport const useVisualViewport = (deps?: Parameters<typeof useEffect>[1]) => {\n const [width, setWidth] = useState<number | null>(null);\n const [height, setHeight] = useState<number | null>(null);\n\n useEffect(() => {\n const handleResize = () => {\n if (window.visualViewport) {\n setWidth(window.visualViewport.width);\n setHeight(window.visualViewport.height);\n }\n };\n window.visualViewport?.addEventListener('resize', handleResize);\n handleResize();\n return () => window.visualViewport?.removeEventListener('resize', handleResize);\n }, deps ?? []);\n\n return { width, height };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useId } from '@dxos/react-hooks';\n\nimport { Avatar, type AvatarRootProps, useAvatarContext } from './Avatar';\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype AvatarGroupRootProps = Omit<AvatarRootProps, 'status' | 'maskId' | 'inGroup'> &\n ThemedClassName<ComponentPropsWithRef<'div'>>;\n\nconst AvatarGroupRoot = forwardRef<HTMLDivElement, AvatarGroupRootProps>(\n (\n {\n labelId: propsLabelId,\n descriptionId: propsDescriptionId,\n size,\n variant,\n children,\n classNames,\n }: AvatarGroupRootProps,\n forwardedRef,\n ) => {\n const { tx } = useThemeContext();\n const labelId = useId('avatar-group__label', propsLabelId);\n const descriptionId = useId('avatar-group__description', propsDescriptionId);\n return (\n <Avatar.Root {...{ labelId, descriptionId, size, variant, inGroup: true }}>\n <div\n role='group'\n className={tx('avatar.group', 'avatar-group', {}, classNames)}\n aria-labelledby={labelId}\n aria-describedby={descriptionId}\n ref={forwardedRef}\n >\n {children}\n </div>\n </Avatar.Root>\n );\n },\n);\n\ntype AvatarGroupItemRootProps = Omit<AvatarRootProps, 'labelId' | 'descriptionId' | 'inGroup'>;\n\nconst AvatarGroupItemRoot = ({ maskId, size, variant, status, children }: AvatarGroupItemRootProps) => {\n const {\n labelId,\n descriptionId,\n size: contextSize,\n variant: contextVariant,\n } = useAvatarContext('AvatarGroupItemRoot');\n return (\n <Avatar.Root\n {...{\n labelId,\n descriptionId,\n maskId,\n status,\n size: size ?? contextSize,\n variant: variant ?? contextVariant,\n inGroup: true,\n }}\n >\n {children}\n </Avatar.Root>\n );\n};\n\ntype AvatarGroupLabelProps = ThemedClassName<Omit<ComponentPropsWithRef<'span'>, 'id'>> & { srOnly?: boolean };\n\nconst AvatarGroupLabel = forwardRef<HTMLSpanElement, AvatarGroupLabelProps>(\n ({ srOnly, classNames, children, ...props }, forwardedRef) => {\n const { labelId, size } = useAvatarContext('AvatarGroupLabel');\n const { tx } = useThemeContext();\n return (\n <span\n {...props}\n id={labelId}\n className={tx('avatar.groupLabel', 'avatar-group__label', { srOnly, size }, classNames)}\n >\n {children}\n </span>\n );\n },\n);\n\ntype AvatarGroupDescriptionProps = ThemedClassName<Omit<ComponentPropsWithRef<'span'>, 'id'>> & { srOnly?: boolean };\n\nconst AvatarGroupDescription = forwardRef<HTMLSpanElement, AvatarGroupDescriptionProps>(\n ({ srOnly, classNames, children, ...props }, forwardedRef) => {\n const { descriptionId } = useAvatarContext('AvatarGroupDescription');\n const { tx } = useThemeContext();\n return (\n <span\n {...props}\n id={descriptionId}\n className={tx('avatar.groupDescription', 'avatar-group__description', { srOnly }, classNames)}\n >\n {children}\n </span>\n );\n },\n);\n\nexport const AvatarGroup = { Root: AvatarGroupRoot, Label: AvatarGroupLabel, Description: AvatarGroupDescription };\nexport const AvatarGroupItem = { Root: AvatarGroupItemRoot };\nexport type { AvatarGroupRootProps, AvatarGroupItemRootProps, AvatarGroupLabelProps, AvatarGroupDescriptionProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Dot } from '@phosphor-icons/react';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithoutRef, type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { Link, type LinkProps } from '../Link';\n\ntype BreadcrumbRootProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n 'aria-label': string;\n asChild?: boolean;\n};\n\nconst BreadcrumbRoot = forwardRef<HTMLDivElement, BreadcrumbRootProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return (\n <Root\n role='navigation'\n {...props}\n className={tx('breadcrumb.root', 'breadcrumb', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype BreadcrumbListProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.ol>> & { asChild?: boolean };\n\nconst BreadcrumbList = forwardRef<HTMLOListElement, BreadcrumbListProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.ol;\n return <Root {...props} className={tx('breadcrumb.list', 'breadcrumb__list', {}, classNames)} ref={forwardedRef} />;\n },\n);\n\ntype BreadcrumbListItemProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.li>> & { asChild?: boolean };\n\nconst BreadcrumbListItem = forwardRef<HTMLLIElement, BreadcrumbListItemProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.li;\n return (\n <Root\n {...props}\n className={tx('breadcrumb.listItem', 'breadcrumb__list__item', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype BreadcrumbLinkProps = LinkProps;\n\nconst BreadcrumbLink = forwardRef<HTMLAnchorElement, BreadcrumbLinkProps>(({ asChild, ...props }, forwardedRef) => {\n const Root = asChild ? Slot : Link;\n return <Root {...props} ref={forwardedRef} />;\n});\n\ntype BreadcrumbCurrentProps = ThemedClassName<ComponentPropsWithRef<'h1'>> & { asChild?: boolean };\n\nconst BreadcrumbCurrent = forwardRef<HTMLHeadingElement, BreadcrumbCurrentProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : 'h1';\n return (\n <Root\n {...props}\n aria-current='page'\n className={tx('breadcrumb.current', 'breadcrumb__item__heading--current', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype BreadcrumbSeparatorProps = ThemedClassName<ComponentPropsWithoutRef<typeof Primitive.span>>;\n\nconst BreadcrumbSeparator = ({ children, classNames, ...props }: BreadcrumbSeparatorProps) => {\n const { tx } = useThemeContext();\n return (\n <Primitive.span\n role='separator'\n aria-hidden='true'\n {...props}\n className={tx('breadcrumb.separator', 'breadcrumb__separator', {}, classNames)}\n >\n {children ?? <Dot weight='bold' />}\n </Primitive.span>\n );\n};\n\nexport const Breadcrumb = {\n Root: BreadcrumbRoot,\n List: BreadcrumbList,\n ListItem: BreadcrumbListItem,\n Link: BreadcrumbLink,\n Current: BreadcrumbCurrent,\n Separator: BreadcrumbSeparator,\n};\n\nexport type {\n BreadcrumbRootProps,\n BreadcrumbListProps,\n BreadcrumbListItemProps,\n BreadcrumbLinkProps,\n BreadcrumbCurrentProps,\n BreadcrumbSeparatorProps,\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\nexport type LinkProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.a>> & {\n asChild?: boolean;\n};\n\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.a;\n return <Root {...props} className={tx('link.root', 'link', {}, classNames)} ref={forwardedRef} />;\n});\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { createContext } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { type Density, type Elevation } from '@dxos/react-ui-types';\n\nimport { useDensityContext, useElevationContext, useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ninterface ButtonProps extends ThemedClassName<ComponentPropsWithRef<typeof Primitive.button>> {\n variant?: 'default' | 'primary' | 'outline' | 'ghost';\n density?: Density;\n elevation?: Elevation;\n asChild?: boolean;\n}\n\ntype ButtonGroupContextValue = { inGroup?: boolean };\n\nconst BUTTON_GROUP_NAME = 'ButtonGroup';\nconst BUTTON_NAME = 'Button';\nconst [ButtonGroupProvider, useButtonGroupContext] = createContext<ButtonGroupContextValue>(BUTTON_GROUP_NAME, {\n inGroup: false,\n});\n\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n { classNames, children, density: propsDensity, elevation: propsElevation, variant = 'default', asChild, ...props },\n ref,\n ) => {\n const { inGroup } = useButtonGroupContext(BUTTON_NAME);\n const { tx } = useThemeContext();\n const elevation = useElevationContext(propsElevation);\n const density = useDensityContext(propsDensity);\n const Root = asChild ? Slot : Primitive.button;\n return (\n <Root\n ref={ref}\n {...props}\n className={tx(\n 'button.root',\n 'button',\n {\n variant,\n inGroup,\n disabled: props.disabled,\n density,\n elevation,\n },\n classNames,\n )}\n {...(props.disabled && { disabled: true })}\n >\n {children}\n </Root>\n );\n },\n);\n\nButton.displayName = BUTTON_NAME;\n\ntype ButtonGroupProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n elevation?: Elevation;\n asChild?: boolean;\n};\n\nconst ButtonGroup = forwardRef<HTMLDivElement, ButtonGroupProps>(\n ({ children, elevation: propsElevation, classNames, asChild, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const elevation = useElevationContext(propsElevation);\n const Root = asChild ? Slot : Primitive.div;\n return (\n <Root\n role='none'\n {...props}\n className={tx('button.group', 'button-group', { elevation }, classNames)}\n ref={forwardedRef}\n >\n <ButtonGroupProvider inGroup>{children}</ButtonGroupProvider>\n </Root>\n );\n },\n);\n\nButtonGroup.displayName = BUTTON_GROUP_NAME;\n\nexport { Button, ButtonGroup, BUTTON_GROUP_NAME, useButtonGroupContext };\n\nexport type { ButtonProps, ButtonGroupProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Toggle as TogglePrimitive, type ToggleProps as TogglePrimitiveProps } from '@radix-ui/react-toggle';\nimport React, { forwardRef } from 'react';\n\nimport { Button, type ButtonProps } from './Button';\n\ntype ToggleProps = Omit<TogglePrimitiveProps, 'asChild'> & ButtonProps;\n\nconst Toggle = forwardRef<HTMLButtonElement, ToggleProps>(\n ({ defaultPressed, pressed, onPressedChange, ...props }, forwardedRef) => {\n return (\n <TogglePrimitive {...{ defaultPressed, pressed, onPressedChange }} asChild>\n <Button {...props} ref={forwardedRef} />\n </TogglePrimitive>\n );\n },\n);\n\nexport { Toggle };\nexport type { ToggleProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n ToggleGroup as ToggleGroupPrimitive,\n type ToggleGroupSingleProps,\n type ToggleGroupMultipleProps,\n type ToggleGroupItemProps as ToggleGroupItemPrimitiveProps,\n ToggleGroupItem as ToggleGroupItemPrimitive,\n} from '@radix-ui/react-toggle-group';\nimport React, { forwardRef } from 'react';\n\nimport { Button, ButtonGroup, type ButtonGroupProps, type ButtonProps } from './Button';\n\ntype ToggleGroupProps = Omit<ToggleGroupSingleProps, 'className'> | Omit<ToggleGroupMultipleProps, 'className'>;\n\nconst ToggleGroup = forwardRef<HTMLDivElement, ToggleGroupProps & ButtonGroupProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n return (\n <ToggleGroupPrimitive {...props} asChild>\n <ButtonGroup {...{ classNames, children }} ref={forwardedRef} />\n </ToggleGroupPrimitive>\n );\n },\n);\n\ntype ToggleGroupItemProps = Omit<ToggleGroupItemPrimitiveProps, 'className'> & ButtonProps;\n\nconst ToggleGroupItem = forwardRef<HTMLButtonElement, ToggleGroupItemProps>(\n ({ variant, elevation, density, classNames, children, ...props }, forwardedRef) => {\n return (\n <ToggleGroupItemPrimitive {...props} asChild>\n <Button {...{ variant, elevation, density, classNames, children }} ref={forwardedRef} />\n </ToggleGroupItemPrimitive>\n );\n },\n);\n\nexport { ToggleGroup, ToggleGroupItem };\nexport type { ToggleGroupProps, ToggleGroupItemProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { DotsSixVertical, DotsThreeVertical } from '@phosphor-icons/react';\nimport { type Primitive } from '@radix-ui/react-primitive';\nimport React, { type ComponentPropsWithoutRef, type ComponentPropsWithRef, type FC, forwardRef } from 'react';\n\nimport { useDensityContext, useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype CardRootProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n grow?: boolean;\n square?: boolean;\n noPadding?: boolean;\n};\n\n// TODO(burdon): Forward refs for all components?\nconst CardRoot = forwardRef<HTMLDivElement, CardRootProps>(\n ({ grow, square, noPadding, classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <div {...props} ref={forwardedRef} className={tx('card.root', 'card', { grow, square, noPadding }, classNames)}>\n {children}\n </div>\n );\n },\n);\n\ntype CardHeaderProps = ThemedClassName<ComponentPropsWithoutRef<'div'>> & { floating?: boolean };\n\nexport const CardHeader: FC<CardHeaderProps> = ({ floating, classNames, children, ...props }) => {\n const { tx } = useThemeContext();\n return (\n <div {...props} className={tx('card.header', 'card', { floating }, classNames)}>\n {children}\n </div>\n );\n};\n\ntype CardTitleProps = ThemedClassName<ComponentPropsWithoutRef<'div'>> & {\n center?: boolean;\n title?: string;\n};\n\nexport const CardTitle: FC<CardTitleProps> = ({ center, title, classNames, ...props }) => {\n const { tx } = useThemeContext();\n return (\n <div {...props} className={tx('card.title', 'card', { center }, classNames)}>\n {title}\n </div>\n );\n};\n\n// TODO(burdon): Reuse ListItemEndcap?\ntype CardDragHandleProps = ThemedClassName<ComponentPropsWithoutRef<'div'>> & { position?: 'left' | 'right' };\n\nconst CardDragHandle: FC<CardDragHandleProps> = ({ position, classNames, ...props }) => {\n const { tx } = useThemeContext();\n const density = useDensityContext();\n return (\n <div {...props} className={tx('card.dragHandle', 'card', { density, position }, classNames)}>\n <DotsSixVertical className={tx('card.dragHandleIcon', 'card')} />\n </div>\n );\n};\n\ntype CardMenuProps = ThemedClassName<ComponentPropsWithoutRef<'div'>> & { position?: 'left' | 'right' };\n\nconst CardMenu = forwardRef<HTMLDivElement, CardMenuProps>(({ position, classNames, ...props }, forwardRef) => {\n const { tx } = useThemeContext();\n const density = useDensityContext();\n return (\n <div {...props} className={tx('card.menu', 'card', { density, position }, classNames)} ref={forwardRef}>\n <DotsThreeVertical className={tx('card.menuIcon', 'card', {})} />\n </div>\n );\n});\n\ntype CardBodyProps = ThemedClassName<ComponentPropsWithoutRef<'div'>> & { gutter?: boolean };\n\nexport const CardBody: FC<CardBodyProps> = ({ gutter, classNames, children, ...props }) => {\n const { tx } = useThemeContext();\n const density = useDensityContext();\n return (\n <div {...props} className={tx('card.body', 'card', { density, gutter }, classNames)}>\n {children}\n </div>\n );\n};\n\ntype CardMediaProps = ThemedClassName<ComponentPropsWithoutRef<'div'>> & { src?: string; contain?: boolean };\n\n// TODO(burdon): Option to set to 50% of height of card.\nexport const CardMedia: FC<CardMediaProps> = ({ src, contain, classNames, ...props }) => {\n const { tx } = useThemeContext();\n return (\n <div className='flex grow overflow-hidden'>\n <img {...props} className={tx('card.media', 'card', { contain }, classNames)} src={src} />\n </div>\n );\n};\n\nexport const Card = {\n Root: CardRoot,\n Header: CardHeader,\n DragHandle: CardDragHandle,\n Menu: CardMenu,\n Title: CardTitle,\n Body: CardBody,\n Media: CardMedia,\n};\n\nexport type { CardRootProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type DetailedHTMLProps, type PropsWithChildren, type HTMLAttributes } from 'react';\n\nexport type CenterProps = PropsWithChildren<DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>>;\n\nexport const Center = (props: CenterProps) => {\n const { children, className, ...rest } = props;\n return (\n <div className={'h-full flex items-center justify-center ' + className} {...rest}>\n {children}\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CaretDown, CaretUp } from '@phosphor-icons/react';\nimport { createContextScope, type Scope } from '@radix-ui/react-context';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { useCombobox, type UseComboboxReturnValue } from 'downshift';\nimport React, { forwardRef, type PropsWithChildren } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { Button } from '../Buttons';\nimport { Input } from '../Input';\n\nconst COMBOBOX_NAME = 'ComboBox';\n\ntype ScopedProps<P> = P & { __scopeComboBox?: Scope };\n\ntype ComboBoxItem = {\n id: string;\n label: string;\n data?: any;\n};\n\ntype ComboBoxContextValue = {\n items: ComboBoxItem[];\n} & UseComboboxReturnValue<ComboBoxItem>;\n\nconst usePopperScope = createPopperScope();\nconst [createComboBoxContext] = createContextScope(COMBOBOX_NAME, [createPopperScope]);\nconst [ComboBoxProvider, useComboBoxContext] = createComboBoxContext<ComboBoxContextValue>(COMBOBOX_NAME);\n\ntype ComboBoxRootProps = ThemedClassName<\n ScopedProps<\n PropsWithChildren<{\n items?: ComboBoxItem[];\n value?: ComboBoxItem;\n onChange?: (selected: ComboBoxItem | undefined) => void;\n onInputChange?: (text?: string) => void;\n }>\n >\n>;\n\n/**\n * Type-ahead combobox.\n */\nconst ComboBoxRoot = ({\n __scopeComboBox,\n children,\n classNames,\n items = [],\n value,\n onChange,\n onInputChange,\n}: ComboBoxRootProps) => {\n const { tx } = useThemeContext();\n const popperScope = usePopperScope(__scopeComboBox);\n\n // TODO(burdon): Remove and implement natively?\n // https://www.downshift-js.com/use-combobox\n const comboProps = useCombobox<ComboBoxItem>({\n items,\n itemToString: (selectedItem) => selectedItem?.label ?? '',\n onInputValueChange: ({ inputValue }) => onInputChange?.(inputValue),\n selectedItem: value ?? null,\n onSelectedItemChange: ({ selectedItem }) => onChange?.(selectedItem === null ? undefined : selectedItem),\n });\n\n return (\n <ComboBoxProvider scope={__scopeComboBox} items={items} {...comboProps}>\n <PopperPrimitive.Root {...popperScope}>\n <div className={tx('combobox.root', 'combobox__root', {}, classNames)}>{children}</div>\n </PopperPrimitive.Root>\n </ComboBoxProvider>\n );\n};\n\n//\n// Input\n//\n\nconst INPUT_NAME = 'ComboBoxInput';\n\ntype ComboBoxInputProps = ThemedClassName<\n ScopedProps<\n PropsWithChildren<{\n placeholder?: string;\n }>\n >\n>;\n\nconst ComboBoxInput = forwardRef<HTMLDivElement, ComboBoxInputProps>(\n ({ __scopeComboBox, classNames, placeholder }: ComboBoxInputProps, forwardedRef) => {\n const { tx } = useThemeContext();\n const popperScope = usePopperScope(__scopeComboBox);\n const { getInputProps, getToggleButtonProps, isOpen } = useComboBoxContext(INPUT_NAME, __scopeComboBox);\n\n // TODO(burdon): Break out input and button.\n return (\n <PopperPrimitive.Anchor asChild {...popperScope} ref={forwardedRef}>\n {/* TODO(burdon): Move class to theme. */}\n <div role='none' className='flex items-center gap-1'>\n <Input.Root>\n <Input.TextInput\n {...getInputProps()}\n placeholder={placeholder}\n variant='subdued'\n classNames={tx('combobox.input', 'combobox__input', {}, classNames)}\n />\n </Input.Root>\n <Button\n {...getToggleButtonProps()}\n aria-label='toggle menu'\n variant='ghost'\n classNames={tx('combobox.button', 'combobox__button')}\n >\n {(isOpen && <CaretUp />) || <CaretDown />}\n </Button>\n </div>\n </PopperPrimitive.Anchor>\n );\n },\n);\n\n//\n// Content\n//\n\nconst CONTENT_NAME = 'ComboBoxContent';\n\ntype ComboBoxContentProps = ThemedClassName<ScopedProps<PropsWithChildren<{}>>>;\n\nconst ComboBoxContent = forwardRef<HTMLDivElement, ComboBoxContentProps>(\n ({ __scopeComboBox, classNames, children }: ComboBoxContentProps, forwardedRef) => {\n const { tx } = useThemeContext();\n const popperScope = usePopperScope(__scopeComboBox);\n const { getMenuProps, isOpen } = useComboBoxContext(CONTENT_NAME, __scopeComboBox);\n\n return (\n <PopperPrimitive.Content\n data-state={isOpen}\n role='dialog'\n {...popperScope}\n ref={forwardedRef}\n style={\n {\n // Re-namespace exposed content custom properties.\n ...{\n '--radix-combobox-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-combobox-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-combobox-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-combobox-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-combobox-trigger-height': 'var(--radix-popper-anchor-height)',\n },\n } as any // TODO(burdon): Why any?\n }\n >\n <ul {...getMenuProps()} className={tx('combobox.content', 'combobox__content', {}, classNames)}>\n {isOpen && children}\n </ul>\n </PopperPrimitive.Content>\n );\n },\n);\n\n//\n// Item\n//\n\nconst ITEM_NAME = 'ComboBoxItem';\n\ntype ComboBoxItemProps = ThemedClassName<\n ScopedProps<\n PropsWithChildren<{\n item: ComboBoxItem;\n }>\n >\n>;\n\nconst ComboBoxItem = forwardRef<HTMLLIElement, ComboBoxItemProps>(\n ({ __scopeComboBox, classNames, children, item }, forwardedRef) => {\n const { tx } = useThemeContext();\n const { getItemProps, items, selectedItem, highlightedIndex } = useComboBoxContext(ITEM_NAME, __scopeComboBox);\n\n return (\n <li\n ref={forwardedRef}\n data-selected={selectedItem?.id === item.id ? 'true' : undefined}\n data-highlighted={\n highlightedIndex !== undefined && items[highlightedIndex]?.id === item.id ? 'true' : undefined\n }\n className={tx('combobox.item', 'item', {}, classNames)}\n {...getItemProps({ item })}\n >\n {children}\n </li>\n );\n },\n);\n\n// prettier-ignore\nexport const ComboBox = {\n Root: ComboBoxRoot,\n Input: ComboBoxInput,\n Content: ComboBoxContent,\n Item: ComboBoxItem\n};\n\n// prettier-ignore\nexport type {\n ComboBoxItem,\n ComboBoxRootProps,\n ComboBoxInputProps,\n ComboBoxContentProps,\n ComboBoxItemProps\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Check, type IconWeight, Minus } from '@phosphor-icons/react';\nimport {\n Root as CheckboxPrimitive,\n type CheckboxProps as CheckboxPrimitiveProps,\n Indicator as CheckboxIndicatorPrimitive,\n} from '@radix-ui/react-checkbox';\nimport {\n Root as SwitchPrimitive,\n Thumb as SwitchThumbPrimitive,\n type SwitchProps as SwitchPrimitiveProps,\n} from '@radix-ui/react-switch';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport React, { forwardRef, type ForwardRefExoticComponent, Fragment, useCallback } from 'react';\n\nimport {\n InputRoot,\n type InputRootProps,\n PinInput as PinInputPrimitive,\n type PinInputProps as PinInputPrimitiveProps,\n TextInput as TextInputPrimitive,\n type TextInputProps as TextInputPrimitiveProps,\n TextArea as TextAreaPrimitive,\n type TextAreaProps as TextAreaPrimitiveProps,\n useInputContext,\n INPUT_NAME,\n type InputScopedProps,\n Description as DescriptionPrimitive,\n DescriptionAndValidation as DescriptionAndValidationPrimitive,\n type DescriptionAndValidationProps as DescriptionAndValidationPrimitiveProps,\n type DescriptionProps as DescriptionPrimitiveProps,\n Label as LabelPrimitive,\n type LabelProps as LabelPrimitiveProps,\n Validation as ValidationPrimitive,\n type ValidationProps as ValidationPrimitiveProps,\n} from '@dxos/react-input';\nimport { type Density, type Elevation, type ClassNameValue, type Size } from '@dxos/react-ui-types';\n\nimport { useDensityContext, useElevationContext, useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype InputVariant = 'default' | 'subdued';\n\ntype InputSharedProps = Partial<{ density: Density; elevation: Elevation; variant: InputVariant }>;\n\ntype LabelProps = ThemedClassName<LabelPrimitiveProps> & { srOnly?: boolean };\n\nconst Label = forwardRef<HTMLLabelElement, LabelProps>(({ srOnly, classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <LabelPrimitive {...props} className={tx('input.label', 'input__label', { srOnly }, classNames)} ref={forwardedRef}>\n {children}\n </LabelPrimitive>\n );\n});\n\ntype DescriptionProps = ThemedClassName<DescriptionPrimitiveProps> & { srOnly?: boolean };\n\nconst Description = forwardRef<HTMLSpanElement, DescriptionProps>(\n ({ srOnly, classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DescriptionPrimitive\n {...props}\n className={tx('input.description', 'input__description', { srOnly }, classNames)}\n ref={forwardedRef}\n >\n {children}\n </DescriptionPrimitive>\n );\n },\n);\n\ntype ValidationProps = ThemedClassName<ValidationPrimitiveProps> & { srOnly?: boolean };\n\nconst Validation = forwardRef<HTMLSpanElement, InputScopedProps<ValidationProps>>(\n ({ __inputScope, srOnly, classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const { validationValence } = useInputContext(INPUT_NAME, __inputScope);\n return (\n <ValidationPrimitive\n {...props}\n className={tx(\n 'input.validation',\n `input__validation-message input__validation-message--${validationValence}`,\n { srOnly, validationValence },\n classNames,\n )}\n ref={forwardedRef}\n >\n {children}\n </ValidationPrimitive>\n );\n },\n);\n\ntype DescriptionAndValidationProps = ThemedClassName<DescriptionAndValidationPrimitiveProps> & { srOnly?: boolean };\n\nconst DescriptionAndValidation = forwardRef<HTMLParagraphElement, DescriptionAndValidationProps>(\n ({ srOnly, classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DescriptionAndValidationPrimitive\n {...props}\n className={tx('input.descriptionAndValidation', 'input__description-and-validation', { srOnly }, classNames)}\n ref={forwardedRef}\n >\n {children}\n </DescriptionAndValidationPrimitive>\n );\n },\n);\n\ntype PinInputProps = InputSharedProps &\n Omit<PinInputPrimitiveProps, 'segmentClassName' | 'inputClassName'> & {\n segmentClassName?: ClassNameValue;\n inputClassName?: ClassNameValue;\n };\n\nconst PinInput = forwardRef<HTMLInputElement, PinInputProps>(\n (\n {\n density: propsDensity,\n elevation: propsElevation,\n segmentClassName: propsSegmentClassName,\n inputClassName,\n variant,\n ...props\n },\n forwardedRef,\n ) => {\n const { hasIosKeyboard } = useThemeContext();\n const { tx } = useThemeContext();\n const density = useDensityContext(propsDensity);\n const elevation = useElevationContext(propsElevation);\n\n const segmentClassName = useCallback(\n ({ focused, validationValence }: Parameters<Exclude<PinInputPrimitiveProps['segmentClassName'], undefined>>[0]) =>\n tx(\n 'input.input',\n 'input--pin-segment',\n {\n variant: 'static',\n focused,\n disabled: props.disabled,\n density,\n elevation,\n validationValence,\n },\n propsSegmentClassName,\n ),\n [tx, props.disabled, elevation, propsElevation, density],\n );\n return (\n <PinInputPrimitive\n {...{\n ...props,\n segmentClassName,\n ...(props.autoFocus && !hasIosKeyboard && { autoFocus: true }),\n }}\n inputClassName={tx('input.inputWithSegments', 'input input--pin', { disabled: props.disabled }, inputClassName)}\n ref={forwardedRef}\n />\n );\n },\n);\n\n// TODO(burdon): Input width is overridden by default 'is-full' style.\n// TODO(burdon): Implement inline icon within button: e.g., https://www.radix-ui.com/themes/playground#text-field\n\ntype TextInputProps = InputSharedProps & ThemedClassName<TextInputPrimitiveProps>;\n\nconst TextInput = forwardRef<HTMLInputElement, InputScopedProps<TextInputProps>>(\n ({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, ...props }, forwardedRef) => {\n const { hasIosKeyboard } = useThemeContext();\n const { tx } = useThemeContext();\n const density = useDensityContext(propsDensity);\n const elevation = useElevationContext(propsElevation);\n const { validationValence } = useInputContext(INPUT_NAME, __inputScope);\n\n return (\n <TextInputPrimitive\n {...props}\n className={tx(\n 'input.input',\n 'input',\n {\n variant,\n disabled: props.disabled,\n density,\n elevation,\n validationValence,\n },\n classNames,\n )}\n {...(props.autoFocus && !hasIosKeyboard && { autoFocus: true })}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype TextAreaProps = InputSharedProps & ThemedClassName<TextAreaPrimitiveProps>;\n\nconst TextArea = forwardRef<HTMLTextAreaElement, InputScopedProps<TextAreaProps>>(\n ({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, ...props }, forwardedRef) => {\n const { hasIosKeyboard } = useThemeContext();\n const { tx } = useThemeContext();\n const density = useDensityContext(propsDensity);\n const elevation = useElevationContext(propsElevation);\n const { validationValence } = useInputContext(INPUT_NAME, __inputScope);\n\n return (\n <TextAreaPrimitive\n {...props}\n className={tx(\n 'input.input',\n 'input--text-area',\n {\n variant,\n disabled: props.disabled,\n density,\n elevation,\n validationValence,\n },\n classNames,\n )}\n {...(props.autoFocus && !hasIosKeyboard && { autoFocus: true })}\n ref={forwardedRef}\n />\n );\n },\n);\n\n// TODO(burdon): Provide inline checkbox label left/right.\n\ntype CheckboxProps = ThemedClassName<Omit<CheckboxPrimitiveProps, 'children'>> & { size?: Size; weight?: IconWeight };\n\nconst Checkbox: ForwardRefExoticComponent<CheckboxProps> = forwardRef<\n HTMLButtonElement,\n InputScopedProps<CheckboxProps>\n>(\n (\n {\n __inputScope,\n checked: propsChecked,\n defaultChecked: propsDefaultChecked,\n onCheckedChange: propsOnCheckedChange,\n size,\n weight = 'bold',\n classNames,\n ...props\n },\n forwardedRef,\n ) => {\n const [checked, onCheckedChange] = useControllableState({\n prop: propsChecked,\n defaultProp: propsDefaultChecked,\n onChange: propsOnCheckedChange,\n });\n const { id, validationValence, descriptionId, errorMessageId } = useInputContext(INPUT_NAME, __inputScope);\n const { tx } = useThemeContext();\n const Icon = checked === 'indeterminate' ? Minus : checked ? Check : Fragment;\n return (\n <CheckboxPrimitive\n {...{\n ...props,\n checked,\n onCheckedChange,\n id,\n 'aria-describedby': descriptionId,\n ...(validationValence === 'error' && {\n 'aria-invalid': 'true' as const,\n 'aria-errormessage': errorMessageId,\n }),\n className: tx('input.checkbox', 'input--checkbox', { size }, 'shrink-0', classNames),\n }}\n ref={forwardedRef}\n >\n <CheckboxIndicatorPrimitive asChild>\n <Icon\n {...(checked && {\n weight,\n className: tx('input.checkboxIndicator', 'input--checkbox__indicator', { size }),\n })}\n />\n </CheckboxIndicatorPrimitive>\n </CheckboxPrimitive>\n );\n },\n);\n\ntype SwitchProps = ThemedClassName<Omit<SwitchPrimitiveProps, 'children'>> & { size?: Size };\n\nconst Switch: ForwardRefExoticComponent<SwitchProps> = forwardRef<HTMLButtonElement, InputScopedProps<SwitchProps>>(\n (\n {\n __inputScope,\n checked: propsChecked,\n defaultChecked: propsDefaultChecked,\n onCheckedChange: propsOnCheckedChange,\n size,\n classNames,\n ...props\n },\n forwardedRef,\n ) => {\n const [checked, onCheckedChange] = useControllableState({\n prop: propsChecked,\n defaultProp: propsDefaultChecked,\n onChange: propsOnCheckedChange,\n });\n const { id, validationValence, descriptionId, errorMessageId } = useInputContext(INPUT_NAME, __inputScope);\n // const { tx } = useThemeContext();\n return (\n <SwitchPrimitive\n {...{\n ...props,\n checked,\n onCheckedChange,\n id,\n 'aria-describedby': descriptionId,\n ...(validationValence === 'error' && {\n 'aria-invalid': 'true' as const,\n 'aria-errormessage': errorMessageId,\n }),\n // className: tx('input.checkbox', 'input--checkbox', { size }, 'shrink-0', classNames),\n className:\n 'w-[56px] h-[32px] bg-transparent rounded-full px-[4px] border-2 border-neutral-500 relative data-[state=checked]:border-primary-500 data-[state=checked]:bg-primary-500 outline-none cursor-default',\n }}\n ref={forwardedRef}\n >\n {/* TODO(wittjosiah): Embed icons/text for on/off states.\n e.g., https://codepen.io/alvarotrigo/pen/oNoJePo (#13) */}\n <SwitchThumbPrimitive className='block w-[22px] h-[22px] bg-neutral-500 rounded-full border-neutral-100 transition-transform duration-100 will-change-transform data-[state=checked]:translate-x-[22px] data-[state=checked]:bg-white'></SwitchThumbPrimitive>\n </SwitchPrimitive>\n );\n },\n);\n\nexport const Input = {\n Root: InputRoot,\n PinInput,\n TextInput,\n TextArea,\n Checkbox,\n Switch,\n Label,\n Description,\n Validation,\n DescriptionAndValidation,\n};\n\nexport type {\n InputVariant,\n InputRootProps,\n PinInputProps,\n TextInputProps,\n TextAreaProps,\n CheckboxProps,\n SwitchProps,\n LabelProps,\n DescriptionProps,\n ValidationProps,\n DescriptionAndValidationProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { createContext } from '@radix-ui/react-context';\nimport {\n type DialogProps as DialogRootPrimitiveProps,\n Root as DialogRootPrimitive,\n DialogTrigger as DialogTriggerPrimitive,\n type DialogTriggerProps as DialogTriggerPrimitiveProps,\n DialogPortal as DialogPortalPrimitive,\n type DialogPortalProps as DialogPortalPrimitiveProps,\n DialogOverlay as DialogOverlayPrimitive,\n type DialogOverlayProps as DialogOverlayPrimitiveProps,\n DialogTitle as DialogTitlePrimitive,\n type DialogTitleProps as DialogTitlePrimitiveProps,\n DialogDescription as DialogDescriptionPrimitive,\n type DialogDescriptionProps as DialogDescriptionPrimitiveProps,\n DialogClose as DialogClosePrimitive,\n type DialogCloseProps as DialogClosePrimitiveProps,\n DialogContent as DialogContentPrimitive,\n type DialogContentProps as DialogContentPrimitiveProps,\n} from '@radix-ui/react-dialog';\nimport React, { forwardRef, type ForwardRefExoticComponent, type FunctionComponent } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { ElevationProvider } from '../ElevationProvider';\n\ntype DialogRootProps = DialogRootPrimitiveProps;\n\nconst DialogRoot: FunctionComponent<DialogRootProps> = DialogRootPrimitive;\n\ntype DialogTriggerProps = DialogTriggerPrimitiveProps;\n\nconst DialogTrigger: FunctionComponent<DialogTriggerProps> = DialogTriggerPrimitive;\n\ntype DialogPortalProps = DialogPortalPrimitiveProps;\n\nconst DialogPortal: FunctionComponent<DialogPortalProps> = DialogPortalPrimitive;\n\ntype DialogTitleProps = ThemedClassName<DialogTitlePrimitiveProps> & { srOnly?: boolean };\n\nconst DialogTitle: ForwardRefExoticComponent<DialogTitleProps> = forwardRef<HTMLHeadingElement, DialogTitleProps>(\n ({ classNames, srOnly, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DialogTitlePrimitive\n {...props}\n className={tx('dialog.title', 'dialog__title', { srOnly }, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype DialogDescriptionProps = ThemedClassName<DialogDescriptionPrimitiveProps> & { srOnly?: boolean };\n\nconst DialogDescription: ForwardRefExoticComponent<DialogTitleProps> = forwardRef<\n HTMLParagraphElement,\n DialogDescriptionProps\n>(({ classNames, srOnly, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DialogDescriptionPrimitive\n {...props}\n className={tx('dialog.description', 'dialog__description', { srOnly }, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype DialogCloseProps = DialogClosePrimitiveProps;\n\nconst DialogClose: FunctionComponent<DialogCloseProps> = DialogClosePrimitive;\n\ntype OverlayLayoutContextValue = { inOverlayLayout?: boolean };\nconst DIALOG_OVERLAY_NAME = 'DialogOverlay';\nconst DIALOG_CONTENT_NAME = 'DialogContent';\nconst [OverlayLayoutProvider, useOverlayLayoutContext] = createContext<OverlayLayoutContextValue>(DIALOG_OVERLAY_NAME, {\n inOverlayLayout: false,\n});\n\ntype DialogOverlayProps = ThemedClassName<DialogOverlayPrimitiveProps>;\n\nconst DialogOverlay: ForwardRefExoticComponent<DialogOverlayProps> = forwardRef<HTMLDivElement, DialogOverlayProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DialogOverlayPrimitive\n {...props}\n className={tx('dialog.overlay', 'dialog__overlay', {}, classNames)}\n ref={forwardedRef}\n >\n <OverlayLayoutProvider inOverlayLayout>{children}</OverlayLayoutProvider>\n </DialogOverlayPrimitive>\n );\n },\n);\n\nDialogOverlay.displayName = DIALOG_OVERLAY_NAME;\n\ntype DialogContentProps = ThemedClassName<DialogContentPrimitiveProps>;\n\nconst DialogContent: ForwardRefExoticComponent<DialogContentProps> = forwardRef<HTMLDivElement, DialogContentProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const { inOverlayLayout } = useOverlayLayoutContext(DIALOG_CONTENT_NAME);\n return (\n <DialogContentPrimitive\n {...props}\n className={tx('dialog.content', 'dialog', { inOverlayLayout }, classNames)}\n ref={forwardedRef}\n >\n <ElevationProvider elevation='chrome'>{children}</ElevationProvider>\n </DialogContentPrimitive>\n );\n },\n);\n\nDialogContent.displayName = DIALOG_CONTENT_NAME;\n\nexport const Dialog = {\n Root: DialogRoot,\n Trigger: DialogTrigger,\n Portal: DialogPortal,\n Overlay: DialogOverlay,\n Content: DialogContent,\n Title: DialogTitle,\n Description: DialogDescription,\n Close: DialogClose,\n};\n\nexport type {\n DialogRootProps,\n DialogTriggerProps,\n DialogPortalProps,\n DialogOverlayProps,\n DialogContentProps,\n DialogTitleProps,\n DialogDescriptionProps,\n DialogCloseProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { createContext, type PropsWithChildren } from 'react';\n\nimport { type Elevation } from '@dxos/react-ui-types';\n\nexport interface ElevationContextValue {\n elevation?: Elevation;\n}\n\nexport type ElevationProviderProps = PropsWithChildren<{\n elevation?: Elevation;\n}>;\n\nexport const ElevationContext = createContext<ElevationContextValue>({ elevation: 'base' });\n\nexport const ElevationProvider = ({ elevation, children }: ElevationProviderProps) => (\n <ElevationContext.Provider value={{ elevation }}>{children}</ElevationContext.Provider>\n);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n type AlertDialogProps as AlertDialogRootPrimitiveProps,\n Root as AlertDialogRootPrimitive,\n AlertDialogTrigger as AlertDialogTriggerPrimitive,\n type AlertDialogTriggerProps as AlertDialogTriggerPrimitiveProps,\n AlertDialogPortal as AlertDialogPortalPrimitive,\n type AlertDialogPortalProps as AlertDialogPortalPrimitiveProps,\n AlertDialogOverlay as AlertDialogOverlayPrimitive,\n type AlertDialogOverlayProps as AlertDialogOverlayPrimitiveProps,\n AlertDialogTitle as AlertDialogTitlePrimitive,\n type AlertDialogTitleProps as AlertDialogTitlePrimitiveProps,\n AlertDialogDescription as AlertDialogDescriptionPrimitive,\n type AlertDialogDescriptionProps as AlertDialogDescriptionPrimitiveProps,\n AlertDialogAction as AlertDialogActionPrimitive,\n type AlertDialogActionProps as AlertDialogActionPrimitiveProps,\n AlertDialogCancel as AlertDialogCancelPrimitive,\n type AlertDialogCancelProps as AlertDialogCancelPrimitiveProps,\n AlertDialogContent as AlertDialogContentPrimitive,\n type AlertDialogContentProps as AlertDialogContentPrimitiveProps,\n} from '@radix-ui/react-alert-dialog';\nimport { createContext } from '@radix-ui/react-context';\nimport React, { forwardRef, type ForwardRefExoticComponent, type FunctionComponent } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { ElevationProvider } from '../ElevationProvider';\n\ntype AlertDialogRootProps = AlertDialogRootPrimitiveProps;\n\nconst AlertDialogRoot: FunctionComponent<AlertDialogRootProps> = AlertDialogRootPrimitive;\n\ntype AlertDialogTriggerProps = AlertDialogTriggerPrimitiveProps;\n\nconst AlertDialogTrigger: FunctionComponent<AlertDialogTriggerProps> = AlertDialogTriggerPrimitive;\n\ntype AlertDialogPortalProps = AlertDialogPortalPrimitiveProps;\n\nconst AlertDialogPortal: FunctionComponent<AlertDialogPortalProps> = AlertDialogPortalPrimitive;\n\ntype AlertDialogCancelProps = AlertDialogCancelPrimitiveProps;\n\nconst AlertDialogCancel: FunctionComponent<AlertDialogCancelProps> = AlertDialogCancelPrimitive;\n\ntype AlertDialogActionProps = AlertDialogActionPrimitiveProps;\n\nconst AlertDialogAction: FunctionComponent<AlertDialogActionProps> = AlertDialogActionPrimitive;\n\ntype AlertDialogTitleProps = ThemedClassName<AlertDialogTitlePrimitiveProps> & { srOnly?: boolean };\n\nconst AlertDialogTitle: ForwardRefExoticComponent<AlertDialogTitleProps> = forwardRef<\n HTMLHeadingElement,\n AlertDialogTitleProps\n>(({ classNames, srOnly, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <AlertDialogTitlePrimitive\n {...props}\n className={tx('dialog.title', 'dialog--alert__title', { srOnly }, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype AlertDialogDescriptionProps = ThemedClassName<AlertDialogDescriptionPrimitiveProps> & { srOnly?: boolean };\n\nconst AlertDialogDescription: ForwardRefExoticComponent<AlertDialogTitleProps> = forwardRef<\n HTMLParagraphElement,\n AlertDialogDescriptionProps\n>(({ classNames, srOnly, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <AlertDialogDescriptionPrimitive\n {...props}\n className={tx('dialog.description', 'dialog--alert__description', { srOnly }, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype OverlayLayoutContextValue = { inOverlayLayout?: boolean };\nconst ALERT_DIALOG_OVERLAY_NAME = 'AlertDialogOverlay';\nconst ALERT_DIALOG_CONTENT_NAME = 'AlertDialogContent';\nconst [OverlayLayoutProvider, useOverlayLayoutContext] = createContext<OverlayLayoutContextValue>(\n ALERT_DIALOG_OVERLAY_NAME,\n {\n inOverlayLayout: false,\n },\n);\n\ntype AlertDialogOverlayProps = ThemedClassName<AlertDialogOverlayPrimitiveProps>;\n\nconst AlertDialogOverlay: ForwardRefExoticComponent<AlertDialogOverlayProps> = forwardRef<\n HTMLDivElement,\n AlertDialogOverlayProps\n>(({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <AlertDialogOverlayPrimitive\n {...props}\n className={tx('dialog.overlay', 'dialog--alert__overlay', {}, classNames)}\n ref={forwardedRef}\n >\n <OverlayLayoutProvider inOverlayLayout>{children}</OverlayLayoutProvider>\n </AlertDialogOverlayPrimitive>\n );\n});\n\nAlertDialogOverlay.displayName = ALERT_DIALOG_OVERLAY_NAME;\n\ntype AlertDialogContentProps = ThemedClassName<AlertDialogContentPrimitiveProps>;\n\nconst AlertDialogContent: ForwardRefExoticComponent<AlertDialogContentProps> = forwardRef<\n HTMLDivElement,\n AlertDialogContentProps\n>(({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const { inOverlayLayout } = useOverlayLayoutContext(ALERT_DIALOG_CONTENT_NAME);\n return (\n <AlertDialogContentPrimitive\n {...props}\n className={tx('dialog.content', 'dialog--alert', { inOverlayLayout }, classNames)}\n ref={forwardedRef}\n >\n <ElevationProvider elevation='chrome'>{children}</ElevationProvider>\n </AlertDialogContentPrimitive>\n );\n});\n\nAlertDialogContent.displayName = ALERT_DIALOG_CONTENT_NAME;\n\nexport const AlertDialog = {\n Root: AlertDialogRoot,\n Trigger: AlertDialogTrigger,\n Portal: AlertDialogPortal,\n Overlay: AlertDialogOverlay,\n Content: AlertDialogContent,\n Title: AlertDialogTitle,\n Description: AlertDialogDescription,\n Cancel: AlertDialogCancel,\n Action: AlertDialogAction,\n};\n\nexport type {\n AlertDialogRootProps,\n AlertDialogTriggerProps,\n AlertDialogPortalProps,\n AlertDialogOverlayProps,\n AlertDialogContentProps,\n AlertDialogTitleProps,\n AlertDialogDescriptionProps,\n AlertDialogCancelProps,\n AlertDialogActionProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\nimport {\n Root as DropdownMenuRootPrimitive,\n type DropdownMenuProps as DropdownMenuRootPrimitiveProps,\n DropdownMenuTrigger as DropdownMenuTriggerPrimitive,\n type DropdownMenuTriggerProps as DropdownMenuTriggerPrimitiveProps,\n DropdownMenuPortal as DropdownMenuPortalPrimitive,\n type DropdownMenuPortalProps as DropdownMenuPortalPrimitiveProps,\n DropdownMenuContent as DropdownMenuContentPrimitive,\n type DropdownMenuContentProps as DropdownMenuContentPrimitiveProps,\n DropdownMenuArrow as DropdownMenuArrowPrimitive,\n type DropdownMenuArrowProps as DropdownMenuArrowPrimitiveProps,\n DropdownMenuGroup as DropdownMenuGroupPrimitive,\n type DropdownMenuGroupProps as DropdownMenuGroupPrimitiveProps,\n DropdownMenuItem as DropdownMenuItemPrimitive,\n type DropdownMenuItemProps as DropdownMenuItemPrimitiveProps,\n DropdownMenuSeparator as DropdownMenuSeparatorPrimitive,\n type DropdownMenuSeparatorProps as DropdownMenuSeparatorPrimitiveProps,\n DropdownMenuLabel as DropdownMenuLabelPrimitive,\n type DropdownMenuLabelProps as DropdownMenuLabelPrimitiveProps,\n} from '@radix-ui/react-dropdown-menu';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { ElevationProvider } from '../ElevationProvider';\n\ntype DropdownMenuRootProps = DropdownMenuRootPrimitiveProps;\n\nconst DropdownMenuRoot = DropdownMenuRootPrimitive;\n\ntype DropdownMenuTriggerProps = DropdownMenuTriggerPrimitiveProps;\n\nconst DropdownMenuTrigger = DropdownMenuTriggerPrimitive;\n\ntype DropdownMenuPortalProps = DropdownMenuPortalPrimitiveProps;\n\nconst DropdownMenuPortal = DropdownMenuPortalPrimitive;\n\ntype DropdownMenuContentProps = ThemedClassName<DropdownMenuContentPrimitiveProps> & { constrainBlockSize?: boolean };\n\nconst DropdownMenuContent = forwardRef<HTMLDivElement, DropdownMenuContentProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DropdownMenuContentPrimitive\n sideOffset={4}\n collisionPadding={8}\n {...props}\n className={tx('dropdownMenu.content', 'dropdown-menu', {}, classNames)}\n ref={forwardedRef}\n >\n <ElevationProvider elevation='chrome'>{children}</ElevationProvider>\n </DropdownMenuContentPrimitive>\n );\n },\n);\n\ntype DropdownMenuViewportProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n asChild?: boolean;\n};\n\nconst DropdownMenuViewport = forwardRef<HTMLDivElement, DropdownMenuViewportProps>(\n ({ classNames, asChild, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return (\n <Root\n {...props}\n className={tx('dropdownMenu.viewport', 'dropdown-menu__viewport', {}, classNames)}\n ref={forwardedRef}\n >\n {children}\n </Root>\n );\n },\n);\n\ntype DropdownMenuArrowProps = ThemedClassName<DropdownMenuArrowPrimitiveProps>;\n\nconst DropdownMenuArrow = forwardRef<SVGSVGElement, DropdownMenuArrowProps>(\n ({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DropdownMenuArrowPrimitive\n {...props}\n className={tx('dropdownMenu.arrow', 'dropdown-menu__arrow', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype DropdownMenuGroupProps = DropdownMenuGroupPrimitiveProps;\n\nconst DropdownMenuGroup = DropdownMenuGroupPrimitive;\n\ntype DropdownMenuItemProps = ThemedClassName<DropdownMenuItemPrimitiveProps>;\n\nconst DropdownMenuItem = forwardRef<HTMLDivElement, DropdownMenuItemProps>(\n ({ classNames, ...props }: DropdownMenuItemProps, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DropdownMenuItemPrimitive\n {...props}\n className={tx('dropdownMenu.item', 'dropdown-menu__item', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype DropdownMenuSeparatorProps = ThemedClassName<DropdownMenuSeparatorPrimitiveProps>;\n\nconst DropdownMenuSeparator = forwardRef<HTMLDivElement, DropdownMenuSeparatorProps>(\n ({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DropdownMenuSeparatorPrimitive\n {...props}\n className={tx('dropdownMenu.separator', 'dropdown-menu__item', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype DropdownMenuGroupLabelProps = ThemedClassName<DropdownMenuLabelPrimitiveProps>;\n\nconst DropdownMenuGroupLabel = forwardRef<HTMLDivElement, DropdownMenuGroupLabelProps>(\n ({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DropdownMenuLabelPrimitive\n {...props}\n className={tx('dropdownMenu.groupLabel', 'dropdown-menu__group__label', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\nexport const DropdownMenu = {\n Root: DropdownMenuRoot,\n Trigger: DropdownMenuTrigger,\n Portal: DropdownMenuPortal,\n Content: DropdownMenuContent,\n Viewport: DropdownMenuViewport,\n Arrow: DropdownMenuArrow,\n Group: DropdownMenuGroup,\n Item: DropdownMenuItem,\n Separator: DropdownMenuSeparator,\n GroupLabel: DropdownMenuGroupLabel,\n};\n\nexport type {\n DropdownMenuRootProps,\n DropdownMenuTriggerProps,\n DropdownMenuPortalProps,\n DropdownMenuContentProps,\n DropdownMenuViewportProps,\n DropdownMenuArrowProps,\n DropdownMenuGroupProps,\n DropdownMenuItemProps,\n DropdownMenuSeparatorProps,\n DropdownMenuGroupLabelProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CaretDown, CaretRight } from '@phosphor-icons/react';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithoutRef, type FC, forwardRef, type ForwardRefExoticComponent } from 'react';\n\nimport {\n List as ListPrimitive,\n type ListProps as ListPrimitiveProps,\n type ListScopedProps,\n ListItemHeading as ListPrimitiveItemHeading,\n type ListItemHeadingProps as ListPrimitiveItemHeadingProps,\n ListItemOpenTrigger as ListPrimitiveItemOpenTrigger,\n type ListItemOpenTriggerProps as ListPrimitiveItemOpenTriggerProps,\n ListItemCollapsibleContent,\n type ListItemCollapsibleContentProps,\n ListItem as ListPrimitiveItem,\n type ListItemProps as ListPrimitiveItemProps,\n type ListItemScopedProps,\n LIST_NAME,\n LIST_ITEM_NAME,\n useListContext,\n useListItemContext,\n} from '@dxos/react-list';\nimport { type Density } from '@dxos/react-ui-types';\n\nimport { useDensityContext, useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { DensityProvider } from '../DensityProvider';\n\ntype ListProps = ThemedClassName<ListPrimitiveProps> & { density?: Density };\n\nconst List = forwardRef<HTMLOListElement, ListProps>(({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const density = useDensityContext(props.density);\n\n return (\n <DensityProvider density={density}>\n <ListPrimitive {...props} className={tx('list.root', 'list', {}, classNames)} ref={forwardedRef}>\n {children}\n </ListPrimitive>\n </DensityProvider>\n );\n});\n\ntype ListItemEndcapProps = ThemedClassName<ComponentPropsWithoutRef<'div'>> & { asChild?: boolean };\n\nconst ListItemEndcap = forwardRef<HTMLDivElement, ListItemEndcapProps>(\n ({ children, classNames, asChild, ...props }, forwardedRef) => {\n const Root = asChild ? Slot : 'div';\n const density = useDensityContext();\n const { tx } = useThemeContext();\n return (\n <Root\n {...(!asChild && { role: 'none' })}\n {...props}\n className={tx('list.item.endcap', 'list__listItem__endcap', { density }, classNames)}\n ref={forwardedRef}\n >\n {children}\n </Root>\n );\n },\n);\n\nconst MockListItemOpenTrigger = ({\n classNames,\n ...props\n}: ThemedClassName<Omit<ComponentPropsWithoutRef<'div'>, 'children'>>) => {\n const density = useDensityContext();\n const { tx } = useThemeContext();\n return (\n <div\n role='none'\n {...props}\n className={tx('list.item.openTrigger', 'list__listItem__openTrigger--mock', { density }, classNames)}\n />\n );\n};\n\ntype ListItemHeadingProps = ThemedClassName<ListPrimitiveItemHeadingProps>;\n\nconst ListItemHeading = forwardRef<HTMLParagraphElement, ListItemHeadingProps>(\n ({ children, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const density = useDensityContext();\n return (\n <ListPrimitiveItemHeading\n {...props}\n className={tx('list.item.heading', 'list__listItem__heading', { density }, classNames)}\n ref={forwardedRef}\n >\n {children}\n </ListPrimitiveItemHeading>\n );\n },\n);\n\ntype ListItemOpenTriggerProps = ThemedClassName<ListPrimitiveItemOpenTriggerProps>;\n\nconst ListItemOpenTrigger = forwardRef<HTMLButtonElement, ListItemOpenTriggerProps>(\n ({ __listItemScope, classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const density = useDensityContext();\n const { open } = useListItemContext(LIST_ITEM_NAME, __listItemScope);\n const Icon = open ? CaretDown : CaretRight;\n return (\n <ListPrimitiveItemOpenTrigger\n {...props}\n className={tx('list.item.openTrigger', 'list__listItem__openTrigger', { density }, classNames)}\n ref={forwardedRef}\n >\n {children || (\n <Icon\n {...{\n weight: 'bold',\n className: tx('list.item.openTriggerIcon', 'list__listItem__openTrigger__icon', {}),\n }}\n />\n )}\n </ListPrimitiveItemOpenTrigger>\n );\n },\n);\n\ntype ListItemRootProps = ThemedClassName<ListPrimitiveItemProps>;\n\nconst ListItemRoot = forwardRef<HTMLLIElement, ListItemRootProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const density = useDensityContext();\n return (\n <ListPrimitiveItem\n {...props}\n className={tx('list.item.root', 'list__listItem', { density, collapsible: props.collapsible }, classNames)}\n ref={forwardedRef}\n >\n {children}\n </ListPrimitiveItem>\n );\n },\n);\n\nexport const ListItem: {\n Root: ForwardRefExoticComponent<ListItemRootProps>;\n Endcap: ForwardRefExoticComponent<ListItemEndcapProps>;\n Heading: ForwardRefExoticComponent<ListItemHeadingProps>;\n OpenTrigger: ForwardRefExoticComponent<ListItemOpenTriggerProps>;\n CollapsibleContent: ForwardRefExoticComponent<ListItemCollapsibleContentProps>;\n MockOpenTrigger: FC<ThemedClassName<Omit<ComponentPropsWithoutRef<'div'>, 'children'>>>;\n} = {\n Root: ListItemRoot,\n Endcap: ListItemEndcap,\n Heading: ListItemHeading,\n OpenTrigger: ListItemOpenTrigger,\n CollapsibleContent: ListItemCollapsibleContent,\n MockOpenTrigger: MockListItemOpenTrigger,\n};\n\nexport { List, useListContext, useListItemContext, LIST_NAME, LIST_ITEM_NAME };\n\nexport type {\n ListProps,\n ListScopedProps,\n ListItemRootProps,\n ListItemScopedProps,\n ListItemEndcapProps,\n ListItemHeadingProps,\n ListItemOpenTriggerProps,\n ListItemCollapsibleContentProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { createContext, type PropsWithChildren } from 'react';\n\nimport { type Density } from '@dxos/react-ui-types';\n\nexport interface DensityContextValue {\n density?: Density;\n}\n\nexport type DensityProviderProps = PropsWithChildren<{\n density?: Density;\n}>;\n\nexport const DensityContext = createContext<DensityContextValue>({ density: 'coarse' });\n\nexport const DensityProvider = ({ density, children }: DensityProviderProps) => (\n <DensityContext.Provider value={{ density }}>{children}</DensityContext.Provider>\n);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type ComponentPropsWithoutRef, type FC, forwardRef, type ForwardRefExoticComponent } from 'react';\n\nimport {\n List,\n LIST_ITEM_NAME,\n ListItem,\n type ListItemCollapsibleContentProps,\n type ListItemHeadingProps,\n type ListItemOpenTriggerProps,\n type ListItemRootProps,\n type ListProps,\n type ListScopedProps,\n useListItemContext,\n} from './List';\nimport { type ThemedClassName } from '../../util';\n\ntype TreeRootProps = ListProps;\n\ntype TreeItemProps = ListItemRootProps;\n\nconst TreeRoot: ForwardRefExoticComponent<TreeRootProps> = forwardRef<HTMLOListElement, TreeRootProps>(\n (props, forwardedRef) => {\n return <List {...props} ref={forwardedRef} />;\n },\n);\n\ntype TreeBranchProps = TreeRootProps;\n\nconst TreeBranch: ForwardRefExoticComponent<TreeBranchProps> = forwardRef<\n HTMLOListElement,\n ListScopedProps<TreeBranchProps>\n>(({ __listScope, ...props }, forwardedRef) => {\n const { headingId } = useListItemContext(LIST_ITEM_NAME, __listScope);\n return <List {...props} aria-labelledby={headingId} ref={forwardedRef} />;\n});\n\nconst TreeItemRoot: ForwardRefExoticComponent<ListItemRootProps> = forwardRef<HTMLLIElement, ListItemRootProps>(\n (props, forwardedRef) => {\n return <ListItem.Root role='treeitem' {...props} ref={forwardedRef} />;\n },\n);\n\ntype TreeItemHeadingProps = ListItemHeadingProps;\n\nconst TreeItemHeading = ListItem.Heading;\n\ntype TreeItemOpenTriggerProps = ListItemOpenTriggerProps;\n\nconst TreeItemOpenTrigger = ListItem.OpenTrigger;\n\nconst MockTreeItemOpenTrigger = ListItem.MockOpenTrigger;\n\ntype TreeItemBodyProps = ListItemCollapsibleContentProps;\n\nconst TreeItemBody: ForwardRefExoticComponent<TreeItemBodyProps> = ListItem.CollapsibleContent;\n\nexport const Tree = { Root: TreeRoot, Branch: TreeBranch };\nexport const TreeItem: {\n Root: ForwardRefExoticComponent<TreeItemProps>;\n Heading: ForwardRefExoticComponent<TreeItemHeadingProps>;\n Body: ForwardRefExoticComponent<TreeItemBodyProps>;\n OpenTrigger: ForwardRefExoticComponent<TreeItemOpenTriggerProps>;\n MockOpenTrigger: FC<ThemedClassName<Omit<ComponentPropsWithoutRef<'div'>, 'children'>>>;\n} = {\n Root: TreeItemRoot,\n Heading: TreeItemHeading,\n Body: TreeItemBody,\n OpenTrigger: TreeItemOpenTrigger,\n MockOpenTrigger: MockTreeItemOpenTrigger,\n};\n\nexport type { TreeRootProps, TreeItemProps, TreeItemHeadingProps, TreeItemBodyProps, TreeItemOpenTriggerProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { createContext } from '@radix-ui/react-context';\nimport { Root as DialogRoot, DialogContent } from '@radix-ui/react-dialog';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport React, {\n type ComponentPropsWithRef,\n type Dispatch,\n forwardRef,\n type PropsWithChildren,\n type SetStateAction,\n useCallback,\n useRef,\n} from 'react';\n\nimport { useMediaQuery, useForwardedRef } from '@dxos/react-hooks';\n\nimport { useSwipeToDismiss } from './useSwipeToDismiss';\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { ElevationProvider } from '../ElevationProvider';\n\nconst MAIN_ROOT_NAME = 'MainRoot';\nconst NAVIGATION_SIDEBAR_NAME = 'NavigationSidebar';\nconst COMPLEMENTARY_SIDEBAR_NAME = 'ComplementarySidebar';\nconst MAIN_NAME = 'Main';\nconst GENERIC_CONSUMER_NAME = 'GenericConsumer';\n\ntype MainContextValue = {\n navigationSidebarOpen: boolean;\n setNavigationSidebarOpen: Dispatch<SetStateAction<boolean | undefined>>;\n complementarySidebarOpen: boolean;\n setComplementarySidebarOpen: Dispatch<SetStateAction<boolean | undefined>>;\n};\n\nconst [MainProvider, useMainContext] = createContext<MainContextValue>(MAIN_NAME, {\n navigationSidebarOpen: false,\n setNavigationSidebarOpen: (nextOpen) => {\n // TODO(burdon): Standardize with other context missing errors using raise.\n console.warn('Attempt to set sidebar state without initializing `MainRoot`');\n },\n complementarySidebarOpen: false,\n setComplementarySidebarOpen: (nextOpen) => {\n // TODO(burdon): Standardize with other context missing errors using raise.\n console.warn('Attempt to set sidebar state without initializing `MainRoot`');\n },\n});\n\nconst useSidebars = (consumerName = GENERIC_CONSUMER_NAME) => {\n const { setNavigationSidebarOpen, navigationSidebarOpen, setComplementarySidebarOpen, complementarySidebarOpen } =\n useMainContext(consumerName);\n return {\n navigationSidebarOpen,\n setNavigationSidebarOpen,\n toggleNavigationSidebar: useCallback(\n () => setNavigationSidebarOpen(!navigationSidebarOpen),\n [navigationSidebarOpen, setNavigationSidebarOpen],\n ),\n openNavigationSidebar: useCallback(() => setNavigationSidebarOpen(true), [setNavigationSidebarOpen]),\n closeNavigationSidebar: useCallback(() => setNavigationSidebarOpen(false), [setNavigationSidebarOpen]),\n complementarySidebarOpen,\n setComplementarySidebarOpen,\n toggleComplementarySidebar: useCallback(\n () => setComplementarySidebarOpen(!complementarySidebarOpen),\n [complementarySidebarOpen, setComplementarySidebarOpen],\n ),\n openComplementarySidebar: useCallback(() => setComplementarySidebarOpen(true), [setComplementarySidebarOpen]),\n closeComplementarySidebar: useCallback(() => setComplementarySidebarOpen(false), [setComplementarySidebarOpen]),\n };\n};\n\ntype MainRootProps = PropsWithChildren<{\n navigationSidebarOpen?: boolean;\n defaultNavigationSidebarOpen?: boolean;\n onNavigationSidebarOpenChange?: (nextOpen: boolean) => void;\n complementarySidebarOpen?: boolean;\n defaultComplementarySidebarOpen?: boolean;\n onComplementarySidebarOpenChange?: (nextOpen: boolean) => void;\n}>;\n\nconst MainRoot = ({\n navigationSidebarOpen: propsNavigationSidebarOpen,\n defaultNavigationSidebarOpen,\n onNavigationSidebarOpenChange,\n complementarySidebarOpen: propsComplementarySidebarOpen,\n defaultComplementarySidebarOpen,\n onComplementarySidebarOpenChange,\n children,\n ...props\n}: MainRootProps) => {\n const [isLg] = useMediaQuery('lg', { ssr: false });\n const [navigationSidebarOpen = isLg, setNavigationSidebarOpen] = useControllableState<boolean>({\n prop: propsNavigationSidebarOpen,\n defaultProp: defaultNavigationSidebarOpen,\n onChange: onNavigationSidebarOpenChange,\n });\n const [complementarySidebarOpen = false, setComplementarySidebarOpen] = useControllableState<boolean>({\n prop: propsComplementarySidebarOpen,\n defaultProp: defaultComplementarySidebarOpen,\n onChange: onComplementarySidebarOpenChange,\n });\n return (\n <MainProvider\n {...props}\n {...{\n navigationSidebarOpen,\n setNavigationSidebarOpen,\n complementarySidebarOpen,\n setComplementarySidebarOpen,\n }}\n >\n {children}\n </MainProvider>\n );\n};\n\nMainRoot.displayName = MAIN_ROOT_NAME;\n\nconst handleOpenAutoFocus = (event: Event) => {\n !document.body.hasAttribute('data-is-keyboard') && event.preventDefault();\n};\n\ntype MainSidebarProps = ThemedClassName<ComponentPropsWithRef<typeof DialogContent>> & {\n swipeToDismiss?: boolean;\n open: boolean;\n setOpen: Dispatch<SetStateAction<boolean | undefined>>;\n side: 'inline-start' | 'inline-end';\n};\n\n// TODO(burdon): Factor out Sidebar?\n// TODO(burdon): Style left/right sidebar differently.\nconst MainSidebar = forwardRef<HTMLDivElement, MainSidebarProps>(\n ({ classNames, children, swipeToDismiss, onOpenAutoFocus, open, setOpen, side, ...props }, forwardedRef) => {\n const [isLg] = useMediaQuery('lg', { ssr: false });\n const { tx } = useThemeContext();\n const ref = useForwardedRef(forwardedRef);\n const noopRef = useRef(null);\n useSwipeToDismiss(swipeToDismiss ? ref : noopRef, {\n onDismiss: () => setOpen(false),\n });\n const Root = isLg ? Primitive.div : DialogContent;\n return (\n <DialogRoot open={open} modal={false}>\n <Root\n {...(!isLg && { forceMount: true, tabIndex: -1, onOpenAutoFocus: onOpenAutoFocus ?? handleOpenAutoFocus })}\n {...props}\n className={tx(\n 'main.sidebar',\n 'main__sidebar',\n { isLg, [side === 'inline-end' ? 'inlineEndSidebarOpen' : 'inlineStartSidebarOpen']: open, side },\n classNames,\n )}\n ref={ref}\n >\n <ElevationProvider elevation='group'>{children}</ElevationProvider>\n </Root>\n </DialogRoot>\n );\n },\n);\n\ntype MainNavigationSidebarProps = Omit<MainSidebarProps, 'open' | 'setOpen' | 'side'>;\n\nconst MainNavigationSidebar = forwardRef<HTMLDivElement, MainNavigationSidebarProps>((props, forwardedRef) => {\n const { navigationSidebarOpen, setNavigationSidebarOpen } = useMainContext(NAVIGATION_SIDEBAR_NAME);\n return (\n <MainSidebar\n {...props}\n open={navigationSidebarOpen}\n setOpen={setNavigationSidebarOpen}\n side='inline-start'\n ref={forwardedRef}\n />\n );\n});\n\nMainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;\n\ntype MainComplementarySidebarProps = Omit<MainSidebarProps, 'open' | 'setOpen' | 'side'>;\n\nconst MainComplementarySidebar = forwardRef<HTMLDivElement, MainComplementarySidebarProps>((props, forwardedRef) => {\n const { complementarySidebarOpen, setComplementarySidebarOpen } = useMainContext(COMPLEMENTARY_SIDEBAR_NAME);\n return (\n <MainSidebar\n {...props}\n open={complementarySidebarOpen}\n setOpen={setComplementarySidebarOpen}\n side='inline-end'\n ref={forwardedRef}\n />\n );\n});\n\nMainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;\n\ntype MainProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & { asChild?: boolean; bounce?: boolean };\n\nconst MainContent = forwardRef<HTMLDivElement, MainProps>(\n ({ asChild, classNames, bounce, children, ...props }: MainProps, forwardedRef) => {\n const [isLg] = useMediaQuery('lg', { ssr: false });\n const { navigationSidebarOpen, complementarySidebarOpen } = useMainContext(MAIN_NAME);\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : 'main';\n\n return (\n <Root\n {...props}\n className={tx(\n 'main.content',\n 'main',\n {\n isLg,\n inlineStartSidebarOpen: navigationSidebarOpen,\n inlineEndSidebarOpen: complementarySidebarOpen,\n bounce,\n },\n classNames,\n )}\n ref={forwardedRef}\n >\n {children}\n </Root>\n );\n },\n);\n\nMainContent.displayName = MAIN_NAME;\n\ntype MainOverlayProps = ThemedClassName<Omit<ComponentPropsWithRef<typeof Primitive.div>, 'children'>>;\n\nconst MainOverlay = forwardRef<HTMLDivElement, MainOverlayProps>(({ classNames, ...props }, forwardedRef) => {\n const [isLg] = useMediaQuery('lg', { ssr: false });\n const { navigationSidebarOpen, setNavigationSidebarOpen, complementarySidebarOpen, setComplementarySidebarOpen } =\n useMainContext(MAIN_NAME);\n const { tx } = useThemeContext();\n return (\n <div\n onClick={() => {\n setNavigationSidebarOpen(false);\n setComplementarySidebarOpen(false);\n }}\n {...props}\n className={tx(\n 'main.overlay',\n 'main__overlay',\n { isLg, inlineStartSidebarOpen: navigationSidebarOpen, inlineEndSidebarOpen: complementarySidebarOpen },\n classNames,\n )}\n data-open={navigationSidebarOpen}\n aria-hidden='true'\n data-aria-hidden='true'\n ref={forwardedRef}\n />\n );\n});\n\nexport const Main = {\n Content: MainContent,\n Overlay: MainOverlay,\n Root: MainRoot,\n NavigationSidebar: MainNavigationSidebar,\n ComplementarySidebar: MainComplementarySidebar,\n};\n\nexport { useMainContext, useSidebars };\n\nexport type { MainRootProps, MainProps, MainOverlayProps, MainNavigationSidebarProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// This implementation is based upon https://github.com/hosembafer/react-swipe-to-dismiss, commit d88deafe910a6bd1400cf8fa90459a76cf4f71d3\n\nimport { type RefObject, useCallback, useEffect, useState } from 'react';\n\nenum MotionState {\n IDLE,\n DEBOUNCING,\n FOLLOWING,\n}\n\ntype Options = Partial<{\n onDismiss: () => void;\n dismissThreshold: number;\n debounceThreshold: number;\n side: 'inline-start' | 'inline-end';\n offset: number;\n}>;\n\nexport const useSwipeToDismiss = (\n ref: RefObject<HTMLElement | null>,\n { onDismiss, dismissThreshold = 64, debounceThreshold = 8, offset = 0 /* side = 'inline-start' */ }: Options,\n) => {\n const $root = ref.current;\n // todo(thure): Implement other sides.\n // const dK = direction === 'inline-start' ? 1 : -1;\n\n const [motionState, setMotionState] = useState<MotionState>(MotionState.IDLE);\n const [gestureStartX, setGestureStartX] = useState(0);\n\n const setIdle = useCallback(() => {\n setMotionState(MotionState.IDLE);\n $root?.style.removeProperty('inset-inline-start');\n $root?.style.setProperty('transition-duration', '200ms');\n }, [$root]);\n\n const setFollowing = useCallback(() => {\n setMotionState(MotionState.FOLLOWING);\n $root?.style.setProperty('transition-duration', '0ms');\n }, [$root]);\n\n const handlePointerDown = useCallback(\n ({ screenX }: PointerEvent) => {\n if (motionState === MotionState.IDLE) {\n setMotionState(MotionState.DEBOUNCING);\n setGestureStartX(screenX);\n }\n },\n [motionState],\n );\n\n const handlePointerMove = useCallback(\n ({ screenX }: PointerEvent) => {\n if ($root) {\n const delta = Math.min(screenX - gestureStartX, 0);\n switch (motionState) {\n case MotionState.FOLLOWING:\n if (Math.abs(delta) > dismissThreshold) {\n setIdle();\n onDismiss?.();\n } else {\n $root.style.setProperty('inset-inline-start', `${offset + delta}px`);\n }\n break;\n case MotionState.DEBOUNCING:\n if (Math.abs(delta) > debounceThreshold) {\n setFollowing();\n }\n break;\n }\n }\n },\n [$root, motionState, gestureStartX],\n );\n\n const handlePointerUp = useCallback(() => {\n setIdle();\n }, [setIdle]);\n\n useEffect(() => {\n $root?.addEventListener('pointerdown', handlePointerDown);\n return () => {\n $root?.removeEventListener('pointerdown', handlePointerDown);\n };\n }, [$root, handlePointerDown]);\n\n useEffect(() => {\n $root && document.documentElement.addEventListener('pointermove', handlePointerMove);\n return () => {\n document.documentElement.removeEventListener('pointermove', handlePointerMove);\n };\n }, [$root, handlePointerMove]);\n\n useEffect(() => {\n $root && document.documentElement.addEventListener('pointerup', handlePointerUp);\n return () => {\n document.documentElement.removeEventListener('pointerup', handlePointerUp);\n };\n }, [$root, handlePointerUp]);\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { createContext } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useId } from '@dxos/react-hooks';\nimport { type MessageValence, type Elevation } from '@dxos/react-ui-types';\n\nimport { useElevationContext, useThemeContext } from '../../hooks';\n\ntype MessageRootProps = ComponentPropsWithRef<typeof Primitive.div> & {\n valence?: MessageValence;\n elevation?: Elevation;\n asChild?: boolean;\n titleId?: string;\n descriptionId?: string;\n};\n\ntype MessageContextValue = { titleId?: string; descriptionId: string };\nconst MESSAGE_NAME = 'Message';\nconst [MessageProvider, useMessageContext] = createContext<MessageContextValue>(MESSAGE_NAME);\n\nconst MessageRoot = forwardRef<HTMLDivElement, MessageRootProps>(\n (\n {\n asChild,\n valence,\n elevation: propsElevation,\n className,\n titleId: propsTitleId,\n descriptionId: propsDescriptionId,\n children,\n ...props\n },\n forwardedRef,\n ) => {\n const { tx } = useThemeContext();\n const titleId = useId('message__title', propsTitleId);\n const descriptionId = useId('message__description', propsDescriptionId);\n const elevation = useElevationContext(propsElevation);\n const Root = asChild ? Slot : Primitive.div;\n return (\n <MessageProvider {...{ titleId, descriptionId }}>\n <Root\n {...props}\n className={tx('message.root', 'message', { valence, elevation }, className)}\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n ref={forwardedRef}\n >\n {children}\n </Root>\n </MessageProvider>\n );\n },\n);\n\nMessageRoot.displayName = MESSAGE_NAME;\n\ntype MessageTitleProps = Omit<ComponentPropsWithRef<typeof Primitive.h2>, 'id'> & { asChild?: boolean };\n\nconst MESSAGE_TITLE_NAME = 'MessageTitle';\n\nconst MessageTitle = forwardRef<HTMLHeadingElement, MessageTitleProps>(\n ({ asChild, className, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const { titleId } = useMessageContext(MESSAGE_TITLE_NAME);\n const Root = asChild ? Slot : Primitive.h2;\n return (\n <Root {...props} className={tx('message.title', 'message__title', {}, className)} id={titleId} ref={forwardedRef}>\n {children}\n </Root>\n );\n },\n);\n\nMessageTitle.displayName = MESSAGE_TITLE_NAME;\n\ntype MessageBodyProps = Omit<ComponentPropsWithRef<typeof Primitive.h2>, 'id'> & { asChild?: boolean };\n\nconst MESSAGE_BODY_NAME = 'MessageBody';\n\nconst MessageBody = forwardRef<HTMLParagraphElement, MessageBodyProps>(\n ({ asChild, className, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const { descriptionId } = useMessageContext(MESSAGE_BODY_NAME);\n const Root = asChild ? Slot : Primitive.p;\n return (\n <Root\n {...props}\n className={tx('message.body', 'message__body', {}, className)}\n id={descriptionId}\n ref={forwardedRef}\n >\n {children}\n </Root>\n );\n },\n);\n\nMessageBody.displayName = MESSAGE_BODY_NAME;\n\nexport const Message = { Root: MessageRoot, Title: MessageTitle, Body: MessageBody };\n\nexport type { MessageRootProps, MessageTitleProps, MessageBodyProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n Root as PopoverRootPrimitive,\n type PopoverProps as PopoverRootPrimitiveProps,\n type PopoverContentProps as PopoverContentPrimitiveProps,\n PopoverContent as PopoverContentPrimitive,\n type PopoverTriggerProps as PopoverTriggerPrimitiveProps,\n PopoverTrigger as PopoverTriggerPrimitive,\n type PopoverAnchorProps as PopoverAnchorPrimitiveProps,\n PopoverAnchor as PopoverAnchorPrimitive,\n type PopoverPortalProps as PopoverPortalPrimitiveProps,\n PopoverPortal as PopoverPortalPrimitive,\n type PopoverArrowProps as PopoverArrowPrimitiveProps,\n PopoverArrow as PopoverArrowPrimitive,\n type PopoverCloseProps as PopoverClosePrimitiveProps,\n PopoverClose as PopoverClosePrimitive,\n} from '@radix-ui/react-popover';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef, type FunctionComponent } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { ElevationProvider } from '../ElevationProvider';\n\ntype PopoverRootProps = PopoverRootPrimitiveProps;\n\nconst PopoverRoot: FunctionComponent<PopoverRootProps> = PopoverRootPrimitive;\n\ntype PopoverPortalProps = PopoverPortalPrimitiveProps;\n\nconst PopoverPortal = PopoverPortalPrimitive;\n\ntype PopoverTriggerProps = PopoverTriggerPrimitiveProps;\n\nconst PopoverTrigger = PopoverTriggerPrimitive;\n\ntype PopoverAnchorProps = PopoverAnchorPrimitiveProps;\n\nconst PopoverAnchor = PopoverAnchorPrimitive;\n\ntype PopoverCloseProps = PopoverClosePrimitiveProps;\n\nconst PopoverClose = PopoverClosePrimitive;\n\ntype PopoverArrowProps = ThemedClassName<PopoverArrowPrimitiveProps>;\n\nconst PopoverArrow = forwardRef<SVGSVGElement, PopoverArrowProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <PopoverArrowPrimitive\n {...props}\n className={tx('popover.arrow', 'popover__arrow', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype PopoverContentProps = ThemedClassName<PopoverContentPrimitiveProps>;\n\nconst PopoverContent = forwardRef<HTMLDivElement, PopoverContentProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <PopoverContentPrimitive\n sideOffset={4}\n collisionPadding={8}\n {...props}\n className={tx('popover.content', 'popover', {}, classNames)}\n ref={forwardedRef}\n >\n <ElevationProvider elevation='chrome'>{children}</ElevationProvider>\n </PopoverContentPrimitive>\n );\n },\n);\n\ntype PopoverViewportProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n asChild?: boolean;\n constrainInline?: boolean;\n constrainBlock?: boolean;\n};\n\nconst PopoverViewport = forwardRef<HTMLDivElement, PopoverViewportProps>(\n ({ classNames, asChild, constrainInline = true, constrainBlock = true, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return (\n <Root\n {...props}\n className={tx('popover.viewport', 'popover__viewport', { constrainInline, constrainBlock }, classNames)}\n ref={forwardedRef}\n >\n {children}\n </Root>\n );\n },\n);\n\nexport const Popover = {\n Root: PopoverRoot,\n Portal: PopoverPortal,\n Trigger: PopoverTrigger,\n Anchor: PopoverAnchor,\n Arrow: PopoverArrow,\n Close: PopoverClose,\n Content: PopoverContent,\n Viewport: PopoverViewport,\n};\n\nexport type {\n PopoverRootProps,\n PopoverPortalProps,\n PopoverTriggerProps,\n PopoverAnchorProps,\n PopoverArrowProps,\n PopoverCloseProps,\n PopoverContentProps,\n PopoverViewportProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nexport type ProgressBarProps = {\n indeterminate?: boolean;\n progress?: number;\n className?: string;\n};\n\nexport const ProgressBar = (props: ProgressBarProps) => {\n const { className, indeterminate = false, progress = 0 } = props;\n return (\n <span\n role='none'\n className={'w-20 h-1 inline-block relative bg-neutral-400/25 rounded-full' + (className ? ' ' + className : '')}\n >\n <span\n className={\n 'absolute left-0 top-0 bottom-0 inline-block bg-neutral-400 rounded-full' +\n (indeterminate ? ' animate-progress-indeterminate' : '')\n }\n {...(indeterminate ? {} : { style: { width: `${(progress * 100).toFixed(0)}%` } })}\n />\n </span>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n Root as ScrollAreaPrimitiveRoot,\n type ScrollAreaProps as ScrollAreaPrimitiveRootProps,\n Viewport as ScrollAreaPrimitiveViewport,\n type ScrollAreaViewportProps as ScrollAreaPrimitiveViewportProps,\n Scrollbar as ScrollAreaPrimitiveScrollbar,\n type ScrollAreaScrollbarProps as ScrollAreaPrimitiveScrollbarProps,\n Thumb as ScrollAreaPrimitiveThumb,\n type ScrollAreaThumbProps as ScrollAreaPrimitiveThumbProps,\n Corner as ScrollAreaPrimitiveCorner,\n type ScrollAreaCornerProps as ScrollAreaPrimitiveCornerProps,\n} from '@radix-ui/react-scroll-area';\nimport React, { forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype ScrollAreaRootProps = ThemedClassName<ScrollAreaPrimitiveRootProps>;\n\nconst ScrollAreaRoot = forwardRef<HTMLDivElement, ScrollAreaRootProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ScrollAreaPrimitiveRoot\n {...props}\n className={tx('scrollArea.root', 'scroll-area', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype ScrollAreaViewportProps = ThemedClassName<ScrollAreaPrimitiveViewportProps>;\n\nconst ScrollAreaViewport = forwardRef<HTMLDivElement, ScrollAreaViewportProps>(\n ({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ScrollAreaPrimitiveViewport\n {...props}\n className={tx('scrollArea.viewport', 'scroll-area', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype ScrollAreaScrollbarProps = ThemedClassName<ScrollAreaPrimitiveScrollbarProps>;\n\nconst ScrollAreaScrollbar = forwardRef<HTMLDivElement, ScrollAreaScrollbarProps>(\n ({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ScrollAreaPrimitiveScrollbar\n {...props}\n className={tx('scrollArea.scrollbar', 'scroll-area__scrollbar', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype ScrollAreaThumbProps = ThemedClassName<ScrollAreaPrimitiveThumbProps>;\n\nconst ScrollAreaThumb = forwardRef<HTMLDivElement, ScrollAreaThumbProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ScrollAreaPrimitiveThumb\n {...props}\n className={tx('scrollArea.thumb', 'scroll-area__thumb', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype ScrollAreaCornerProps = ThemedClassName<ScrollAreaPrimitiveCornerProps>;\n\nconst ScrollAreaCorner = forwardRef<HTMLDivElement, ScrollAreaCornerProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ScrollAreaPrimitiveCorner\n {...props}\n className={tx('scrollArea.corner', 'scroll-area__corner', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\nexport const ScrollArea = {\n Root: ScrollAreaRoot,\n Viewport: ScrollAreaViewport,\n Scrollbar: ScrollAreaScrollbar,\n Thumb: ScrollAreaThumb,\n Corner: ScrollAreaCorner,\n};\n\nexport type {\n ScrollAreaRootProps,\n ScrollAreaViewportProps,\n ScrollAreaScrollbarProps,\n ScrollAreaThumbProps,\n ScrollAreaCornerProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CaretDown, CaretUp, Check } from '@phosphor-icons/react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport React, { forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { Button, type ButtonProps } from '../Buttons';\n\ntype SelectRootProps = SelectPrimitive.SelectProps;\n\nconst SelectRoot = SelectPrimitive.Root;\n\ntype SelectTriggerProps = SelectPrimitive.SelectTriggerProps;\n\nconst SelectTrigger = SelectPrimitive.Trigger;\n\ntype SelectValueProps = SelectPrimitive.SelectValueProps;\n\nconst SelectValue = SelectPrimitive.Value;\n\ntype SelectIconProps = SelectPrimitive.SelectIconProps;\n\nconst SelectIcon = SelectPrimitive.Icon;\n\ntype SelectPortalProps = SelectPrimitive.SelectPortalProps;\n\nconst SelectPortal = SelectPrimitive.Portal;\n\ntype SelectTriggerButtonProps = Omit<ButtonProps, 'children'> & Pick<SelectValueProps, 'placeholder'>;\n\nconst SelectTriggerButton = forwardRef<HTMLButtonElement, ButtonProps>(({ placeholder, ...props }, forwardedRef) => {\n return (\n <SelectPrimitive.Trigger asChild ref={forwardedRef}>\n <Button {...props}>\n <SelectPrimitive.Value placeholder={placeholder} />\n <SelectPrimitive.Icon className='pis-2'>\n <CaretDown weight='bold' />\n </SelectPrimitive.Icon>\n </Button>\n </SelectPrimitive.Trigger>\n );\n});\n\ntype SelectContentProps = ThemedClassName<SelectPrimitive.SelectContentProps>;\n\nconst SelectContent = forwardRef<HTMLDivElement, SelectContentProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <SelectPrimitive.Content\n {...props}\n className={tx('select.content', 'select__content', {}, classNames)}\n ref={forwardedRef}\n >\n {children}\n </SelectPrimitive.Content>\n );\n },\n);\n\ntype SelectScrollUpButtonProps = ThemedClassName<SelectPrimitive.SelectScrollUpButtonProps>;\n\nconst SelectScrollUpButton = forwardRef<HTMLDivElement, SelectScrollUpButtonProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <SelectPrimitive.SelectScrollUpButton\n {...props}\n className={tx('select.scrollButton', 'select__scroll-button--up', {}, classNames)}\n ref={forwardedRef}\n >\n {children ?? <CaretUp weight='bold' />}\n </SelectPrimitive.SelectScrollUpButton>\n );\n },\n);\n\ntype SelectScrollDownButtonProps = ThemedClassName<SelectPrimitive.SelectScrollDownButtonProps>;\n\nconst SelectScrollDownButton = forwardRef<HTMLDivElement, SelectScrollDownButtonProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <SelectPrimitive.SelectScrollDownButton\n {...props}\n className={tx('select.scrollButton', 'select__scroll-button--down', {}, classNames)}\n ref={forwardedRef}\n >\n {children ?? <CaretDown weight='bold' />}\n </SelectPrimitive.SelectScrollDownButton>\n );\n },\n);\n\ntype SelectViewportProps = SelectPrimitive.SelectViewportProps;\n\nconst SelectViewport = SelectPrimitive.Viewport;\n\ntype SelectItemProps = ThemedClassName<SelectPrimitive.SelectItemProps>;\n\nconst SelectItem = forwardRef<HTMLDivElement, SelectItemProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n // TODO(burdon): Why 'option'?\n return <SelectPrimitive.Item {...props} className={tx('select.item', 'option', {}, classNames)} ref={forwardedRef} />;\n});\n\ntype SelectItemTextProps = SelectPrimitive.SelectItemTextProps;\n\nconst SelectItemText = SelectPrimitive.ItemText;\n\ntype SelectItemIndicatorProps = ThemedClassName<SelectPrimitive.SelectItemIndicatorProps>;\n\nconst SelectItemIndicator = forwardRef<HTMLDivElement, SelectItemIndicatorProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <SelectPrimitive.ItemIndicator\n {...props}\n className={tx('select.itemIndicator', 'option__indicator', {}, classNames)}\n ref={forwardedRef}\n >\n {children}\n </SelectPrimitive.ItemIndicator>\n );\n },\n);\n\ntype SelectOptionProps = SelectItemProps;\n\nconst SelectOption = forwardRef<HTMLDivElement, SelectItemProps>(({ children, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n\n return (\n <SelectPrimitive.Item {...props} className={tx('select.item', 'option', {}, classNames)} ref={forwardedRef}>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n {/* TODO(burdon): Make optional; and shift left to align value with closed state. */}\n <SelectPrimitive.ItemIndicator className={tx('select.itemIndicator', 'option__indicator', {}, classNames)}>\n <Check weight='bold' />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n );\n});\n\ntype SelectGroupProps = SelectPrimitive.SelectGroupProps;\n\nconst SelectGroup = SelectPrimitive.Group;\n\ntype SelectLabelProps = SelectPrimitive.SelectLabelProps;\n\nconst SelectLabel = SelectPrimitive.Label;\n\ntype SelectSeparatorProps = ThemedClassName<SelectPrimitive.SelectSeparatorProps>;\n\nconst SelectSeparator = forwardRef<HTMLDivElement, SelectSeparatorProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <SelectPrimitive.Separator\n {...props}\n className={tx('select.separator', 'select__separator', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype SelectArrowProps = ThemedClassName<SelectPrimitive.SelectArrowProps>;\n\nconst SelectArrow = forwardRef<SVGSVGElement, SelectArrowProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n\n return (\n <SelectPrimitive.Arrow\n {...props}\n className={tx('select.arrow', 'select__arrow', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\nexport const Select = {\n Root: SelectRoot,\n Trigger: SelectTrigger,\n TriggerButton: SelectTriggerButton,\n Value: SelectValue,\n Icon: SelectIcon,\n Portal: SelectPortal,\n Content: SelectContent,\n ScrollUpButton: SelectScrollUpButton,\n ScrollDownButton: SelectScrollDownButton,\n Viewport: SelectViewport,\n Item: SelectItem,\n ItemText: SelectItemText,\n ItemIndicator: SelectItemIndicator,\n Option: SelectOption,\n Group: SelectGroup,\n Label: SelectLabel,\n Separator: SelectSeparator,\n Arrow: SelectArrow,\n};\n\nexport type {\n SelectRootProps,\n SelectTriggerProps,\n SelectTriggerButtonProps,\n SelectValueProps,\n SelectIconProps,\n SelectPortalProps,\n SelectContentProps,\n SelectScrollUpButtonProps,\n SelectScrollDownButtonProps,\n SelectViewportProps,\n SelectItemProps,\n SelectItemTextProps,\n SelectItemIndicatorProps,\n SelectOptionProps,\n SelectGroupProps,\n SelectLabelProps,\n SelectSeparatorProps,\n SelectArrowProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\nimport {\n Separator as SeparatorPrimitive,\n type SeparatorProps as SeparatorPrimitiveProps,\n} from '@radix-ui/react-separator';\nimport React from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype SeparatorProps = ThemedClassName<SeparatorPrimitiveProps>;\n\nconst Separator = ({ classNames, orientation = 'horizontal', ...props }: SeparatorProps) => {\n const { tx } = useThemeContext();\n return (\n <SeparatorPrimitive\n orientation={orientation}\n {...props}\n className={tx('separator.root', 'separator', { orientation }, classNames)}\n />\n );\n};\n\nexport type { SeparatorProps };\n\nexport { Separator };\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { type ChromaticPalette, type MessageValence, type NeutralPalette } from '@dxos/react-ui-types';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\nexport type TagProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.span>> & {\n palette?: NeutralPalette | ChromaticPalette | MessageValence;\n asChild?: boolean;\n};\n\nexport const Tag = forwardRef<HTMLSpanElement, TagProps>(({ asChild, palette, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.span;\n return <Root {...props} className={tx('tag.root', 'tag', { palette }, classNames)} ref={forwardedRef} />;\n});\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport {\n ToastProvider as ToastProviderPrimitive,\n type ToastProviderProps as ToastProviderPrimitiveProps,\n ToastViewport as ToastViewportPrimitive,\n type ToastViewportProps as ToastViewportPrimitiveProps,\n Root as ToastRootPrimitive,\n type ToastProps as ToastRootPrimitiveProps,\n ToastTitle as ToastTitlePrimitive,\n type ToastTitleProps as ToastTitlePrimitiveProps,\n ToastDescription as ToastDescriptionPrimitive,\n type ToastDescriptionProps as ToastDescriptionPrimitiveProps,\n ToastAction as ToastActionPrimitive,\n type ToastActionProps as ToastActionPrimitiveProps,\n ToastClose as ToastClosePrimitive,\n type ToastCloseProps as ToastClosePrimitiveProps,\n} from '@radix-ui/react-toast';\nimport React, { type ComponentPropsWithRef, forwardRef, type FunctionComponent } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { DensityProvider } from '../DensityProvider';\nimport { ElevationProvider } from '../ElevationProvider';\n\ntype ToastProviderProps = ToastProviderPrimitiveProps;\n\nconst ToastProvider: FunctionComponent<ToastProviderProps> = ToastProviderPrimitive;\n\ntype ToastViewportProps = ThemedClassName<ToastViewportPrimitiveProps>;\n\nconst ToastViewport = forwardRef<HTMLOListElement, ToastViewportProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ToastViewportPrimitive className={tx('toast.viewport', 'toast-viewport', {}, classNames)} ref={forwardedRef} />\n );\n});\n\ntype ToastRootProps = ThemedClassName<ToastRootPrimitiveProps>;\n\nconst ToastRoot = forwardRef<HTMLLIElement, ToastRootProps>(({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ToastRootPrimitive {...props} className={tx('toast.root', 'toast', {}, classNames)} ref={forwardedRef}>\n <ElevationProvider elevation='chrome'>\n <DensityProvider density='fine'>{children}</DensityProvider>\n </ElevationProvider>\n </ToastRootPrimitive>\n );\n});\n\ntype ToastBodyProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>>;\n\nconst ToastBody = forwardRef<HTMLDivElement, ToastBodyProps>(({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return <Root {...props} className={tx('toast.body', 'toast__body', {}, classNames)} ref={forwardedRef} />;\n});\n\ntype ToastTitleProps = ThemedClassName<ToastTitlePrimitiveProps>;\n\nconst ToastTitle = forwardRef<HTMLHeadingElement, ToastTitleProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : ToastTitlePrimitive;\n return <Root {...props} className={tx('toast.title', 'toast__title', {}, classNames)} ref={forwardedRef} />;\n },\n);\n\ntype ToastDescriptionProps = ThemedClassName<ToastDescriptionPrimitiveProps>;\n\nconst ToastDescription = forwardRef<HTMLParagraphElement, ToastDescriptionProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : ToastDescriptionPrimitive;\n return (\n <Root {...props} className={tx('toast.description', 'toast__description', {}, classNames)} ref={forwardedRef} />\n );\n },\n);\n\ntype ToastActionsProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>>;\n\nconst ToastActions = forwardRef<HTMLDivElement, ToastActionsProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return <Root {...props} className={tx('toast.actions', 'toast__actions', {}, classNames)} ref={forwardedRef} />;\n },\n);\n\ntype ToastActionProps = ToastActionPrimitiveProps;\n\nconst ToastAction: FunctionComponent<ToastActionProps> = ToastActionPrimitive;\n\ntype ToastCloseProps = ToastClosePrimitiveProps;\n\nconst ToastClose: FunctionComponent<ToastCloseProps> = ToastClosePrimitive;\n\nexport const Toast = {\n Provider: ToastProvider,\n Viewport: ToastViewport,\n Root: ToastRoot,\n Body: ToastBody,\n Title: ToastTitle,\n Description: ToastDescription,\n Actions: ToastActions,\n Action: ToastAction,\n Close: ToastClose,\n};\n\nexport type {\n ToastProviderProps,\n ToastViewportProps,\n ToastRootProps,\n ToastBodyProps,\n ToastTitleProps,\n ToastDescriptionProps,\n ToastActionsProps,\n ToastActionProps,\n ToastCloseProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as ToolbarPrimitive from '@radix-ui/react-toolbar';\nimport React, { forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, type ToggleGroupItemProps } from '../Buttons';\nimport { Link, type LinkProps } from '../Link';\nimport { Separator, type SeparatorProps } from '../Separator';\n\ntype ToolbarRootProps = ThemedClassName<ToolbarPrimitive.ToolbarProps>;\n\nconst ToolbarRoot = forwardRef<HTMLDivElement, ToolbarRootProps>(({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ToolbarPrimitive.Root {...props} className={tx('toolbar.root', 'toolbar', {}, classNames)} ref={forwardedRef}>\n {children}\n </ToolbarPrimitive.Root>\n );\n});\n\ntype ToolbarButtonProps = ButtonProps;\n\nconst ToolbarButton = forwardRef<HTMLButtonElement, ToolbarButtonProps>((props, forwardedRef) => {\n return (\n <ToolbarPrimitive.Button asChild>\n <Button {...props} ref={forwardedRef} />\n </ToolbarPrimitive.Button>\n );\n});\n\ntype ToolbarLinkProps = LinkProps;\n\nconst ToolbarLink = forwardRef<HTMLAnchorElement, ToolbarLinkProps>((props, forwardedRef) => {\n return (\n <ToolbarPrimitive.Link asChild>\n <Link {...props} ref={forwardedRef} />\n </ToolbarPrimitive.Link>\n );\n});\n\ntype ToolbarToggleGroupProps = (\n | Omit<ToolbarPrimitive.ToolbarToggleGroupSingleProps, 'className'>\n | Omit<ToolbarPrimitive.ToolbarToggleGroupMultipleProps, 'className'>\n) &\n ButtonGroupProps;\n\nconst ToolbarToggleGroup = forwardRef<HTMLDivElement, ToolbarToggleGroupProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n return (\n <ToolbarPrimitive.ToolbarToggleGroup {...props} asChild>\n <ButtonGroup {...{ classNames, children }} ref={forwardedRef} />\n </ToolbarPrimitive.ToolbarToggleGroup>\n );\n },\n);\n\ntype ToolbarToggleGroupItemProps = ToggleGroupItemProps;\n\nconst ToolbarToggleGroupItem = forwardRef<HTMLButtonElement, ToolbarToggleGroupItemProps>(\n ({ variant, density, elevation, classNames, children, ...props }, forwardedRef) => {\n return (\n <ToolbarPrimitive.ToolbarToggleItem {...props} asChild>\n <Button {...{ variant, density, elevation, classNames, children }} ref={forwardedRef} />\n </ToolbarPrimitive.ToolbarToggleItem>\n );\n },\n);\n\ntype ToolbarSeparatorProps = SeparatorProps;\n\nconst ToolbarSeparator = (props: SeparatorProps) => {\n return (\n <ToolbarPrimitive.Separator asChild>\n <Separator orientation='vertical' {...props} />\n </ToolbarPrimitive.Separator>\n );\n};\n\nexport const Toolbar = {\n Root: ToolbarRoot,\n Button: ToolbarButton,\n Link: ToolbarLink,\n ToggleGroup: ToolbarToggleGroup,\n ToggleGroupItem: ToolbarToggleGroupItem,\n Separator: ToolbarSeparator,\n};\n\nexport type {\n ToolbarRootProps,\n ToolbarButtonProps,\n ToolbarLinkProps,\n ToolbarToggleGroupProps,\n ToolbarToggleGroupItemProps,\n ToolbarSeparatorProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n Provider as TooltipProviderPrimitive,\n type TooltipProviderProps as TooltipProviderPrimitiveProps,\n Root as TooltipRootPrimitive,\n type TooltipProps as TooltipRootPrimitiveProps,\n type TooltipContentProps as TooltipContentPrimitiveProps,\n TooltipContent as TooltipContentPrimitive,\n type TooltipTriggerProps as TooltipTriggerPrimitiveProps,\n TooltipTrigger as TooltipTriggerPrimitive,\n type TooltipPortalProps as TooltipPortalPrimitiveProps,\n TooltipPortal as TooltipPortalPrimitive,\n type TooltipArrowProps as TooltipArrowPrimitiveProps,\n TooltipArrow as TooltipArrowPrimitive,\n} from '@radix-ui/react-tooltip';\nimport React, { forwardRef, type FunctionComponent } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype TooltipProviderProps = TooltipProviderPrimitiveProps;\n\nconst TooltipProvider: FunctionComponent<TooltipProviderProps> = TooltipProviderPrimitive;\n\ntype TooltipRootProps = TooltipRootPrimitiveProps;\n\nconst TooltipRoot: FunctionComponent<TooltipRootProps> = TooltipRootPrimitive;\n\ntype TooltipPortalProps = TooltipPortalPrimitiveProps;\n\nconst TooltipPortal = TooltipPortalPrimitive;\n\ntype TooltipTriggerProps = TooltipTriggerPrimitiveProps;\n\nconst TooltipTrigger = TooltipTriggerPrimitive;\n\ntype TooltipArrowProps = ThemedClassName<TooltipArrowPrimitiveProps>;\n\nconst TooltipArrow = forwardRef<SVGSVGElement, TooltipArrowProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <TooltipArrowPrimitive\n {...props}\n className={tx('tooltip.arrow', 'tooltip__arrow', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype TooltipContentProps = ThemedClassName<TooltipContentPrimitiveProps>;\n\nconst TooltipContent = forwardRef<HTMLDivElement, TooltipContentProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <TooltipContentPrimitive\n sideOffset={4}\n collisionPadding={8}\n {...props}\n className={tx('tooltip.content', 'tooltip', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\nexport const Tooltip = {\n Provider: TooltipProvider,\n Root: TooltipRoot,\n Portal: TooltipPortal,\n Trigger: TooltipTrigger,\n Arrow: TooltipArrow,\n Content: TooltipContent,\n};\n\nexport type {\n TooltipProviderProps,\n TooltipRootProps,\n TooltipPortalProps,\n TooltipTriggerProps,\n TooltipArrowProps,\n TooltipContentProps,\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { createKeyborg } from 'keyborg';\nimport React, { createContext, type PropsWithChildren, useEffect } from 'react';\n\nimport { type Density, type Elevation, type ThemeFunction } from '@dxos/react-ui-types';\n\nimport { TranslationsProvider, type TranslationsProviderProps } from './TranslationsProvider';\nimport { hasIosKeyboard } from '../../util';\nimport { DensityProvider } from '../DensityProvider';\nimport { ElevationProvider } from '../ElevationProvider';\n\nexport type ThemeMode = 'light' | 'dark';\n\nexport interface ThemeContextValue {\n tx: ThemeFunction<any>;\n themeMode: ThemeMode;\n hasIosKeyboard: boolean;\n}\n\nexport type ThemeProviderProps = Omit<TranslationsProviderProps, 'children'> &\n Partial<ThemeContextValue> &\n PropsWithChildren<{\n rootElevation?: Elevation;\n rootDensity?: Density;\n }>;\n\nexport const ThemeContext = createContext<ThemeContextValue>({\n tx: (_path, defaultClassName, _styleProps, ..._options) => defaultClassName,\n themeMode: 'dark',\n hasIosKeyboard: false,\n});\n\nconst handleInputModalityChange = (isUsingKeyboard: boolean) => {\n if (isUsingKeyboard) {\n document.body.setAttribute('data-is-keyboard', 'true');\n } else {\n document.body.removeAttribute('data-is-keyboard');\n }\n};\n\nexport const ThemeProvider = ({\n children,\n fallback = null,\n resourceExtensions,\n appNs,\n tx = (_path, defaultClassName, _styleProps, ..._options) => defaultClassName,\n themeMode = 'dark',\n rootElevation = 'base',\n rootDensity = 'coarse',\n}: ThemeProviderProps) => {\n useEffect(() => {\n if (document.defaultView) {\n const kb = createKeyborg(document.defaultView);\n kb.subscribe(handleInputModalityChange);\n return () => kb.unsubscribe(handleInputModalityChange);\n }\n }, []);\n return (\n <ThemeContext.Provider value={{ tx, themeMode, hasIosKeyboard: hasIosKeyboard() }}>\n <TranslationsProvider\n {...{\n fallback,\n resourceExtensions,\n appNs,\n }}\n >\n <ElevationProvider elevation={rootElevation}>\n <DensityProvider density={rootDensity}>{children}</DensityProvider>\n </ElevationProvider>\n </TranslationsProvider>\n </ThemeContext.Provider>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const hasIosKeyboard = () => {\n // TODO(thure): UA sniffing is never good, however I haven’t found a better way to query for whether the on-screen keyboard will appear on `focus` outside of a click handler.\n return !!navigator.userAgent.match(/iP(ad|od|hone).+Safari/);\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["useTranslation", "Trans", "Root", "AvatarRootPrimitive", "Image", "AvatarImagePrimitive", "Fallback", "AvatarFallbackPrimitive", "createContext", "Primitive", "Slot", "toSvg", "React", "forwardRef", "useMemo", "useId", "useContext", "useDensityContext", "propsDensity", "density", "useContext", "DensityContext", "useContext", "useElevationContext", "propsElevation", "elevation", "useContext", "ElevationContext", "useContext", "i18Next", "React", "useEffect", "createContext", "useState", "Suspense", "initReactI18next", "initialLng", "initialNs", "resources", "i18Next", "use", "initReactI18next", "init", "lng", "defaultNS", "interpolation", "escapeValue", "TranslationsContext", "createContext", "appNs", "TranslationsProvider", "fallback", "resourceExtensions", "children", "loaded", "setLoaded", "useState", "useEffect", "length", "forEach", "resource", "Object", "keys", "language", "ns", "addResourceBundle", "Provider", "value", "Suspense", "useTranslationsContext", "useContext", "TranslationsContext", "useContext", "useThemeContext", "useContext", "ThemeContext", "useEffect", "useState", "useVisualViewport", "deps", "width", "setWidth", "useState", "height", "setHeight", "useEffect", "handleResize", "window", "visualViewport", "addEventListener", "removeEventListener", "AVATAR_NAME", "AvatarProvider", "useAvatarContext", "createContext", "AvatarRoot", "size", "variant", "status", "animation", "children", "labelId", "propsLabelId", "descriptionId", "propsDescriptionId", "maskId", "propsMaskId", "inGroup", "useId", "React", "strokeWidth", "rx", "AvatarFrame", "forwardRef", "classNames", "props", "forwardedRef", "tx", "useThemeContext", "imageSizeNumber", "ringGap", "ringWidth", "r", "AvatarRootPrimitive", "role", "className", "ref", "svg", "viewBox", "width", "height", "defs", "mask", "id", "circle", "fill", "cx", "cy", "rect", "x", "y", "g", "stroke", "opacity", "span", "AvatarLabel", "asChild", "srOnly", "Root", "Slot", "Primitive", "AvatarDescription", "AvatarMaskedImage", "image", "AvatarMaskedText", "large", "fontScale", "text", "textAnchor", "alignmentBaseline", "fontSize", "AvatarImage", "onLoadingStatusChange", "AvatarImagePrimitive", "AvatarFallback", "delayMs", "isTextOnly", "Boolean", "test", "AvatarFallbackPrimitive", "toLocaleUpperCase", "getJdenticonHref", "value", "encodeURIComponent", "toSvg", "padding", "useJdenticonHref", "useMemo", "Avatar", "Frame", "Image", "Fallback", "Label", "Description", "React", "forwardRef", "useId", "AvatarGroupRoot", "forwardRef", "labelId", "propsLabelId", "descriptionId", "propsDescriptionId", "size", "variant", "children", "classNames", "forwardedRef", "tx", "useThemeContext", "useId", "React", "Avatar", "Root", "inGroup", "div", "role", "className", "aria-labelledby", "aria-describedby", "ref", "AvatarGroupItemRoot", "maskId", "status", "contextSize", "contextVariant", "useAvatarContext", "AvatarGroupLabel", "srOnly", "props", "span", "id", "AvatarGroupDescription", "AvatarGroup", "Label", "Description", "AvatarGroupItem", "Dot", "Primitive", "Slot", "React", "forwardRef", "Primitive", "Slot", "React", "forwardRef", "Link", "forwardRef", "asChild", "classNames", "props", "forwardedRef", "tx", "useThemeContext", "Root", "Slot", "Primitive", "a", "React", "className", "ref", "BreadcrumbRoot", "forwardRef", "asChild", "classNames", "props", "forwardedRef", "tx", "useThemeContext", "Root", "Slot", "Primitive", "div", "React", "role", "className", "ref", "BreadcrumbList", "ol", "BreadcrumbListItem", "li", "BreadcrumbLink", "Link", "BreadcrumbCurrent", "aria-current", "BreadcrumbSeparator", "children", "span", "aria-hidden", "Dot", "weight", "Breadcrumb", "List", "ListItem", "Current", "Separator", "createContext", "Primitive", "Slot", "React", "forwardRef", "BUTTON_GROUP_NAME", "BUTTON_NAME", "ButtonGroupProvider", "useButtonGroupContext", "createContext", "inGroup", "Button", "forwardRef", "classNames", "children", "density", "propsDensity", "elevation", "propsElevation", "variant", "asChild", "props", "ref", "tx", "useThemeContext", "useElevationContext", "useDensityContext", "Root", "Slot", "Primitive", "button", "React", "className", "disabled", "displayName", "ButtonGroup", "forwardedRef", "div", "role", "Toggle", "TogglePrimitive", "React", "forwardRef", "Toggle", "forwardRef", "defaultPressed", "pressed", "onPressedChange", "props", "forwardedRef", "React", "TogglePrimitive", "asChild", "Button", "ref", "ToggleGroup", "ToggleGroupPrimitive", "ToggleGroupItem", "ToggleGroupItemPrimitive", "React", "forwardRef", "ToggleGroup", "forwardRef", "classNames", "children", "props", "forwardedRef", "React", "ToggleGroupPrimitive", "asChild", "ButtonGroup", "ref", "ToggleGroupItem", "variant", "elevation", "density", "ToggleGroupItemPrimitive", "Button", "DotsSixVertical", "DotsThreeVertical", "React", "forwardRef", "CardRoot", "forwardRef", "grow", "square", "noPadding", "classNames", "children", "props", "forwardedRef", "tx", "useThemeContext", "React", "div", "ref", "className", "CardHeader", "floating", "CardTitle", "center", "title", "CardDragHandle", "position", "density", "useDensityContext", "DotsSixVertical", "CardMenu", "DotsThreeVertical", "CardBody", "gutter", "CardMedia", "src", "contain", "img", "Card", "Root", "Header", "DragHandle", "Menu", "Title", "Body", "Media", "React", "Center", "props", "children", "className", "rest", "React", "div", "CaretDown", "CaretUp", "createContextScope", "createPopperScope", "PopperPrimitive", "useCombobox", "React", "forwardRef", "Check", "Minus", "Root", "CheckboxPrimitive", "Indicator", "CheckboxIndicatorPrimitive", "SwitchPrimitive", "Thumb", "SwitchThumbPrimitive", "useControllableState", "React", "forwardRef", "Fragment", "useCallback", "InputRoot", "PinInput", "PinInputPrimitive", "TextInput", "TextInputPrimitive", "TextArea", "TextAreaPrimitive", "useInputContext", "INPUT_NAME", "Description", "DescriptionPrimitive", "DescriptionAndValidation", "DescriptionAndValidationPrimitive", "Label", "LabelPrimitive", "Validation", "ValidationPrimitive", "Label", "forwardRef", "srOnly", "classNames", "children", "props", "forwardedRef", "tx", "useThemeContext", "React", "LabelPrimitive", "className", "ref", "Description", "DescriptionPrimitive", "Validation", "__inputScope", "validationValence", "useInputContext", "INPUT_NAME", "ValidationPrimitive", "DescriptionAndValidation", "DescriptionAndValidationPrimitive", "PinInput", "density", "propsDensity", "elevation", "propsElevation", "segmentClassName", "propsSegmentClassName", "inputClassName", "variant", "hasIosKeyboard", "useDensityContext", "useElevationContext", "useCallback", "focused", "disabled", "PinInputPrimitive", "autoFocus", "TextInput", "TextInputPrimitive", "TextArea", "TextAreaPrimitive", "Checkbox", "checked", "propsChecked", "defaultChecked", "propsDefaultChecked", "onCheckedChange", "propsOnCheckedChange", "size", "weight", "useControllableState", "prop", "defaultProp", "onChange", "id", "descriptionId", "errorMessageId", "Icon", "Minus", "Check", "Fragment", "CheckboxPrimitive", "CheckboxIndicatorPrimitive", "asChild", "Switch", "SwitchPrimitive", "SwitchThumbPrimitive", "Input", "Root", "InputRoot", "COMBOBOX_NAME", "usePopperScope", "createPopperScope", "createComboBoxContext", "createContextScope", "ComboBoxProvider", "useComboBoxContext", "ComboBoxRoot", "__scopeComboBox", "children", "classNames", "items", "value", "onChange", "onInputChange", "tx", "useThemeContext", "popperScope", "comboProps", "useCombobox", "itemToString", "selectedItem", "label", "onInputValueChange", "inputValue", "onSelectedItemChange", "undefined", "React", "scope", "Root", "div", "className", "INPUT_NAME", "ComboBoxInput", "forwardRef", "placeholder", "forwardedRef", "getInputProps", "getToggleButtonProps", "isOpen", "Anchor", "asChild", "ref", "role", "Input", "TextInput", "variant", "Button", "aria-label", "CaretUp", "CaretDown", "CONTENT_NAME", "ComboBoxContent", "getMenuProps", "Content", "data-state", "style", "ul", "ITEM_NAME", "ComboBoxItem", "item", "getItemProps", "highlightedIndex", "li", "data-selected", "id", "data-highlighted", "ComboBox", "Item", "createContext", "Root", "DialogRootPrimitive", "DialogTrigger", "DialogTriggerPrimitive", "DialogPortal", "DialogPortalPrimitive", "DialogOverlay", "DialogOverlayPrimitive", "DialogTitle", "DialogTitlePrimitive", "DialogDescription", "DialogDescriptionPrimitive", "DialogClose", "DialogClosePrimitive", "DialogContent", "DialogContentPrimitive", "React", "forwardRef", "React", "createContext", "ElevationContext", "createContext", "elevation", "ElevationProvider", "children", "React", "Provider", "value", "DialogRoot", "DialogRootPrimitive", "DialogTrigger", "DialogTriggerPrimitive", "DialogPortal", "DialogPortalPrimitive", "DialogTitle", "forwardRef", "classNames", "srOnly", "props", "forwardedRef", "tx", "useThemeContext", "React", "DialogTitlePrimitive", "className", "ref", "DialogDescription", "DialogDescriptionPrimitive", "DialogClose", "DialogClosePrimitive", "DIALOG_OVERLAY_NAME", "DIALOG_CONTENT_NAME", "OverlayLayoutProvider", "useOverlayLayoutContext", "createContext", "inOverlayLayout", "DialogOverlay", "children", "DialogOverlayPrimitive", "displayName", "DialogContent", "DialogContentPrimitive", "ElevationProvider", "elevation", "Dialog", "Root", "Trigger", "Portal", "Overlay", "Content", "Title", "Description", "Close", "Root", "AlertDialogRootPrimitive", "AlertDialogTrigger", "AlertDialogTriggerPrimitive", "AlertDialogPortal", "AlertDialogPortalPrimitive", "AlertDialogOverlay", "AlertDialogOverlayPrimitive", "AlertDialogTitle", "AlertDialogTitlePrimitive", "AlertDialogDescription", "AlertDialogDescriptionPrimitive", "AlertDialogAction", "AlertDialogActionPrimitive", "AlertDialogCancel", "AlertDialogCancelPrimitive", "AlertDialogContent", "AlertDialogContentPrimitive", "createContext", "React", "forwardRef", "AlertDialogRoot", "AlertDialogRootPrimitive", "AlertDialogTrigger", "AlertDialogTriggerPrimitive", "AlertDialogPortal", "AlertDialogPortalPrimitive", "AlertDialogCancel", "AlertDialogCancelPrimitive", "AlertDialogAction", "AlertDialogActionPrimitive", "AlertDialogTitle", "forwardRef", "classNames", "srOnly", "props", "forwardedRef", "tx", "useThemeContext", "React", "AlertDialogTitlePrimitive", "className", "ref", "AlertDialogDescription", "AlertDialogDescriptionPrimitive", "ALERT_DIALOG_OVERLAY_NAME", "ALERT_DIALOG_CONTENT_NAME", "OverlayLayoutProvider", "useOverlayLayoutContext", "createContext", "inOverlayLayout", "AlertDialogOverlay", "children", "AlertDialogOverlayPrimitive", "displayName", "AlertDialogContent", "AlertDialogContentPrimitive", "ElevationProvider", "elevation", "AlertDialog", "Root", "Trigger", "Portal", "Overlay", "Content", "Title", "Description", "Cancel", "Action", "Root", "DropdownMenuRootPrimitive", "DropdownMenuTrigger", "DropdownMenuTriggerPrimitive", "DropdownMenuPortal", "DropdownMenuPortalPrimitive", "DropdownMenuContent", "DropdownMenuContentPrimitive", "DropdownMenuArrow", "DropdownMenuArrowPrimitive", "DropdownMenuGroup", "DropdownMenuGroupPrimitive", "DropdownMenuItem", "DropdownMenuItemPrimitive", "DropdownMenuSeparator", "DropdownMenuSeparatorPrimitive", "DropdownMenuLabel", "DropdownMenuLabelPrimitive", "Primitive", "Slot", "React", "forwardRef", "DropdownMenuRoot", "DropdownMenuRootPrimitive", "DropdownMenuTrigger", "DropdownMenuTriggerPrimitive", "DropdownMenuPortal", "DropdownMenuPortalPrimitive", "DropdownMenuContent", "forwardRef", "classNames", "children", "props", "forwardedRef", "tx", "useThemeContext", "React", "DropdownMenuContentPrimitive", "sideOffset", "collisionPadding", "className", "ref", "ElevationProvider", "elevation", "DropdownMenuViewport", "asChild", "Root", "Slot", "Primitive", "div", "DropdownMenuArrow", "DropdownMenuArrowPrimitive", "DropdownMenuGroup", "DropdownMenuGroupPrimitive", "DropdownMenuItem", "DropdownMenuItemPrimitive", "DropdownMenuSeparator", "DropdownMenuSeparatorPrimitive", "DropdownMenuGroupLabel", "DropdownMenuLabelPrimitive", "DropdownMenu", "Trigger", "Portal", "Content", "Viewport", "Arrow", "Group", "Item", "Separator", "GroupLabel", "CaretDown", "CaretRight", "Slot", "React", "forwardRef", "List", "ListPrimitive", "ListItemHeading", "ListPrimitiveItemHeading", "ListItemOpenTrigger", "ListPrimitiveItemOpenTrigger", "ListItemCollapsibleContent", "ListItem", "ListPrimitiveItem", "LIST_NAME", "LIST_ITEM_NAME", "useListContext", "useListItemContext", "React", "createContext", "DensityContext", "createContext", "density", "DensityProvider", "children", "React", "Provider", "value", "List", "forwardRef", "classNames", "children", "props", "forwardedRef", "tx", "useThemeContext", "density", "useDensityContext", "React", "DensityProvider", "ListPrimitive", "className", "ref", "ListItemEndcap", "asChild", "Root", "Slot", "role", "MockListItemOpenTrigger", "div", "ListItemHeading", "ListPrimitiveItemHeading", "ListItemOpenTrigger", "__listItemScope", "open", "useListItemContext", "LIST_ITEM_NAME", "Icon", "CaretDown", "CaretRight", "ListPrimitiveItemOpenTrigger", "weight", "ListItemRoot", "ListPrimitiveItem", "collapsible", "ListItem", "Endcap", "Heading", "OpenTrigger", "CollapsibleContent", "ListItemCollapsibleContent", "MockOpenTrigger", "React", "forwardRef", "TreeRoot", "forwardRef", "props", "forwardedRef", "React", "List", "ref", "TreeBranch", "__listScope", "headingId", "useListItemContext", "LIST_ITEM_NAME", "aria-labelledby", "TreeItemRoot", "ListItem", "Root", "role", "TreeItemHeading", "Heading", "TreeItemOpenTrigger", "OpenTrigger", "MockTreeItemOpenTrigger", "MockOpenTrigger", "TreeItemBody", "CollapsibleContent", "Tree", "Branch", "TreeItem", "Body", "createContext", "Root", "DialogRoot", "DialogContent", "Primitive", "Slot", "useControllableState", "React", "forwardRef", "useCallback", "useRef", "useMediaQuery", "useForwardedRef", "useCallback", "useEffect", "useState", "MotionState", "IDLE", "DEBOUNCING", "FOLLOWING", "useSwipeToDismiss", "ref", "onDismiss", "dismissThreshold", "debounceThreshold", "offset", "$root", "current", "motionState", "setMotionState", "useState", "gestureStartX", "setGestureStartX", "setIdle", "useCallback", "style", "removeProperty", "setProperty", "setFollowing", "handlePointerDown", "screenX", "handlePointerMove", "delta", "Math", "min", "abs", "handlePointerUp", "useEffect", "addEventListener", "removeEventListener", "document", "documentElement", "MAIN_ROOT_NAME", "NAVIGATION_SIDEBAR_NAME", "COMPLEMENTARY_SIDEBAR_NAME", "MAIN_NAME", "GENERIC_CONSUMER_NAME", "MainProvider", "useMainContext", "createContext", "navigationSidebarOpen", "setNavigationSidebarOpen", "nextOpen", "console", "warn", "complementarySidebarOpen", "setComplementarySidebarOpen", "useSidebars", "consumerName", "toggleNavigationSidebar", "useCallback", "openNavigationSidebar", "closeNavigationSidebar", "toggleComplementarySidebar", "openComplementarySidebar", "closeComplementarySidebar", "MainRoot", "propsNavigationSidebarOpen", "defaultNavigationSidebarOpen", "onNavigationSidebarOpenChange", "propsComplementarySidebarOpen", "defaultComplementarySidebarOpen", "onComplementarySidebarOpenChange", "children", "props", "isLg", "useMediaQuery", "ssr", "useControllableState", "prop", "defaultProp", "onChange", "React", "displayName", "handleOpenAutoFocus", "event", "document", "body", "hasAttribute", "preventDefault", "MainSidebar", "forwardRef", "classNames", "swipeToDismiss", "onOpenAutoFocus", "open", "setOpen", "side", "forwardedRef", "tx", "useThemeContext", "ref", "useForwardedRef", "noopRef", "useRef", "useSwipeToDismiss", "onDismiss", "Root", "Primitive", "div", "DialogContent", "DialogRoot", "modal", "forceMount", "tabIndex", "className", "ElevationProvider", "elevation", "MainNavigationSidebar", "MainComplementarySidebar", "MainContent", "asChild", "bounce", "Slot", "inlineStartSidebarOpen", "inlineEndSidebarOpen", "MainOverlay", "onClick", "data-open", "aria-hidden", "data-aria-hidden", "Main", "Content", "Overlay", "NavigationSidebar", "ComplementarySidebar", "createContext", "Primitive", "Slot", "React", "forwardRef", "useId", "MESSAGE_NAME", "MessageProvider", "useMessageContext", "createContext", "MessageRoot", "forwardRef", "asChild", "valence", "elevation", "propsElevation", "className", "titleId", "propsTitleId", "descriptionId", "propsDescriptionId", "children", "props", "forwardedRef", "tx", "useThemeContext", "useId", "useElevationContext", "Root", "Slot", "Primitive", "div", "React", "aria-labelledby", "aria-describedby", "ref", "displayName", "MESSAGE_TITLE_NAME", "MessageTitle", "h2", "id", "MESSAGE_BODY_NAME", "MessageBody", "p", "Message", "Title", "Body", "Root", "PopoverRootPrimitive", "PopoverContent", "PopoverContentPrimitive", "PopoverTrigger", "PopoverTriggerPrimitive", "PopoverAnchor", "PopoverAnchorPrimitive", "PopoverPortal", "PopoverPortalPrimitive", "PopoverArrow", "PopoverArrowPrimitive", "PopoverClose", "PopoverClosePrimitive", "Primitive", "Slot", "React", "forwardRef", "PopoverRoot", "PopoverRootPrimitive", "PopoverPortal", "PopoverPortalPrimitive", "PopoverTrigger", "PopoverTriggerPrimitive", "PopoverAnchor", "PopoverAnchorPrimitive", "PopoverClose", "PopoverClosePrimitive", "PopoverArrow", "forwardRef", "classNames", "props", "forwardedRef", "tx", "useThemeContext", "React", "PopoverArrowPrimitive", "className", "ref", "PopoverContent", "children", "PopoverContentPrimitive", "sideOffset", "collisionPadding", "ElevationProvider", "elevation", "PopoverViewport", "asChild", "constrainInline", "constrainBlock", "Root", "Slot", "Primitive", "div", "Popover", "Portal", "Trigger", "Anchor", "Arrow", "Close", "Content", "Viewport", "React", "ProgressBar", "props", "className", "indeterminate", "progress", "React", "span", "role", "style", "width", "toFixed", "Root", "ScrollAreaPrimitiveRoot", "Viewport", "ScrollAreaPrimitiveViewport", "Scrollbar", "ScrollAreaPrimitiveScrollbar", "Thumb", "ScrollAreaPrimitiveThumb", "Corner", "ScrollAreaPrimitiveCorner", "React", "forwardRef", "ScrollAreaRoot", "forwardRef", "classNames", "props", "forwardedRef", "tx", "useThemeContext", "React", "ScrollAreaPrimitiveRoot", "className", "ref", "ScrollAreaViewport", "ScrollAreaPrimitiveViewport", "ScrollAreaScrollbar", "ScrollAreaPrimitiveScrollbar", "ScrollAreaThumb", "ScrollAreaPrimitiveThumb", "ScrollAreaCorner", "ScrollAreaPrimitiveCorner", "ScrollArea", "Root", "Viewport", "Scrollbar", "Thumb", "Corner", "CaretDown", "CaretUp", "Check", "SelectPrimitive", "React", "forwardRef", "SelectRoot", "Root", "SelectTrigger", "Trigger", "SelectValue", "Value", "SelectIcon", "Icon", "SelectPortal", "Portal", "SelectTriggerButton", "forwardRef", "placeholder", "props", "forwardedRef", "React", "asChild", "ref", "Button", "className", "CaretDown", "weight", "SelectContent", "classNames", "children", "tx", "useThemeContext", "Content", "SelectScrollUpButton", "CaretUp", "SelectScrollDownButton", "SelectViewport", "Viewport", "SelectItem", "Item", "SelectItemText", "ItemText", "SelectItemIndicator", "ItemIndicator", "SelectOption", "Check", "SelectGroup", "Group", "SelectLabel", "Label", "SelectSeparator", "Separator", "SelectArrow", "Arrow", "Select", "TriggerButton", "ScrollUpButton", "ScrollDownButton", "Option", "Separator", "SeparatorPrimitive", "React", "Separator", "classNames", "orientation", "props", "tx", "useThemeContext", "React", "SeparatorPrimitive", "className", "Primitive", "Slot", "React", "forwardRef", "Tag", "forwardRef", "asChild", "palette", "classNames", "props", "forwardedRef", "tx", "useThemeContext", "Root", "Slot", "Primitive", "span", "React", "className", "ref", "Primitive", "Slot", "ToastProvider", "ToastProviderPrimitive", "ToastViewport", "ToastViewportPrimitive", "Root", "ToastRootPrimitive", "ToastTitle", "ToastTitlePrimitive", "ToastDescription", "ToastDescriptionPrimitive", "ToastAction", "ToastActionPrimitive", "ToastClose", "ToastClosePrimitive", "React", "forwardRef", "ToastProvider", "ToastProviderPrimitive", "ToastViewport", "forwardRef", "classNames", "props", "forwardedRef", "tx", "useThemeContext", "React", "ToastViewportPrimitive", "className", "ref", "ToastRoot", "children", "ToastRootPrimitive", "ElevationProvider", "elevation", "DensityProvider", "density", "ToastBody", "asChild", "Root", "Slot", "Primitive", "div", "ToastTitle", "ToastTitlePrimitive", "ToastDescription", "ToastDescriptionPrimitive", "ToastActions", "ToastAction", "ToastActionPrimitive", "ToastClose", "ToastClosePrimitive", "Toast", "Provider", "Viewport", "Body", "Title", "Description", "Actions", "Action", "Close", "ToolbarPrimitive", "React", "forwardRef", "ToolbarRoot", "forwardRef", "classNames", "children", "props", "forwardedRef", "tx", "useThemeContext", "React", "Root", "className", "ref", "ToolbarButton", "Button", "asChild", "ToolbarLink", "Link", "ToolbarToggleGroup", "ButtonGroup", "ToolbarToggleGroupItem", "variant", "density", "elevation", "ToolbarToggleItem", "ToolbarSeparator", "Separator", "orientation", "Toolbar", "ToggleGroup", "ToggleGroupItem", "Provider", "TooltipProviderPrimitive", "Root", "TooltipRootPrimitive", "TooltipContent", "TooltipContentPrimitive", "TooltipTrigger", "TooltipTriggerPrimitive", "TooltipPortal", "TooltipPortalPrimitive", "TooltipArrow", "TooltipArrowPrimitive", "React", "forwardRef", "TooltipProvider", "TooltipProviderPrimitive", "TooltipRoot", "TooltipRootPrimitive", "TooltipPortal", "TooltipPortalPrimitive", "TooltipTrigger", "TooltipTriggerPrimitive", "TooltipArrow", "forwardRef", "classNames", "props", "forwardedRef", "tx", "useThemeContext", "React", "TooltipArrowPrimitive", "className", "ref", "TooltipContent", "TooltipContentPrimitive", "sideOffset", "collisionPadding", "Tooltip", "Provider", "Root", "Portal", "Trigger", "Arrow", "Content", "createKeyborg", "React", "createContext", "useEffect", "hasIosKeyboard", "navigator", "userAgent", "match", "ThemeContext", "createContext", "tx", "_path", "defaultClassName", "_styleProps", "_options", "themeMode", "hasIosKeyboard", "handleInputModalityChange", "isUsingKeyboard", "document", "body", "setAttribute", "removeAttribute", "ThemeProvider", "children", "fallback", "resourceExtensions", "appNs", "rootElevation", "rootDensity", "useEffect", "defaultView", "kb", "createKeyborg", "subscribe", "unsubscribe", "React", "Provider", "value", "TranslationsProvider", "ElevationProvider", "elevation", "DensityProvider", "density"]
|
|
7
7
|
}
|