@dxos/shell 0.4.7 → 0.4.8-main.ac78619

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.
Files changed (111) hide show
  1. package/dist/bundle/shell.mjs +6739 -6613
  2. package/dist/bundle/shell.mjs.map +1 -1
  3. package/dist/bundle/shell.umd.js +57 -57
  4. package/dist/bundle/shell.umd.js.map +1 -1
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/react.mjs +13 -3
  7. package/dist/lib/browser/react.mjs.map +3 -3
  8. package/dist/types/src/components/Clipboard/CopyButton.d.ts +0 -1
  9. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
  10. package/dist/types/src/components/CompoundButton/CompoundButton.stories.d.ts +0 -1
  11. package/dist/types/src/components/CompoundButton/CompoundButton.stories.d.ts.map +1 -1
  12. package/dist/types/src/components/EmojiPicker.js.map +1 -1
  13. package/dist/types/src/components/IdentityList/DeviceList.d.ts +0 -1
  14. package/dist/types/src/components/IdentityList/DeviceList.d.ts.map +1 -1
  15. package/dist/types/src/components/IdentityList/SpaceMemberList.d.ts +0 -1
  16. package/dist/types/src/components/IdentityList/SpaceMemberList.d.ts.map +1 -1
  17. package/dist/types/src/components/IdentityList/SpaceMemberList.stories.d.ts +0 -1
  18. package/dist/types/src/components/IdentityList/SpaceMemberList.stories.d.ts.map +1 -1
  19. package/dist/types/src/components/InvitationList/InvitationList.stories.d.ts +0 -1
  20. package/dist/types/src/components/InvitationList/InvitationList.stories.d.ts.map +1 -1
  21. package/dist/types/src/components/InvitationList/InvitationListContainer.d.ts +0 -1
  22. package/dist/types/src/components/InvitationList/InvitationListContainer.d.ts.map +1 -1
  23. package/dist/types/src/components/InvitationList/InvitationListItem.d.ts.map +1 -1
  24. package/dist/types/src/components/InvitationList/InvitationListItem.js +15 -4
  25. package/dist/types/src/components/InvitationList/InvitationListItem.js.map +1 -1
  26. package/dist/types/src/components/Panel/CloseButton.d.ts +0 -1
  27. package/dist/types/src/components/Panel/CloseButton.d.ts.map +1 -1
  28. package/dist/types/src/components/Panel/Panel.stories.d.ts +0 -1
  29. package/dist/types/src/components/Panel/Panel.stories.d.ts.map +1 -1
  30. package/dist/types/src/components/Viewport/Viewport.js.map +1 -1
  31. package/dist/types/src/components/Viewport/Viewport.stories.d.ts +0 -1
  32. package/dist/types/src/components/Viewport/Viewport.stories.d.ts.map +1 -1
  33. package/dist/types/src/composites/IdentityDialog/IdentityDialog.d.ts +0 -1
  34. package/dist/types/src/composites/IdentityDialog/IdentityDialog.d.ts.map +1 -1
  35. package/dist/types/src/composites/IdentityDialog/IdentityDialog.js +1 -1
  36. package/dist/types/src/composites/IdentityDialog/IdentityDialog.js.map +1 -1
  37. package/dist/types/src/composites/JoinDialog/JoinDialog.d.ts +0 -1
  38. package/dist/types/src/composites/JoinDialog/JoinDialog.d.ts.map +1 -1
  39. package/dist/types/src/composites/JoinDialog/JoinDialog.js +2 -2
  40. package/dist/types/src/composites/JoinDialog/JoinDialog.js.map +1 -1
  41. package/dist/types/src/composites/Shell/Shell.d.ts +0 -1
  42. package/dist/types/src/composites/Shell/Shell.d.ts.map +1 -1
  43. package/dist/types/src/composites/Shell/Shell.js.map +1 -1
  44. package/dist/types/src/composites/Shell/ShellContext.js.map +1 -1
  45. package/dist/types/src/composites/SpaceDialog/SpaceDialog.d.ts +0 -1
  46. package/dist/types/src/composites/SpaceDialog/SpaceDialog.d.ts.map +1 -1
  47. package/dist/types/src/composites/SpaceDialog/SpaceDialog.js +1 -1
  48. package/dist/types/src/composites/SpaceDialog/SpaceDialog.js.map +1 -1
  49. package/dist/types/src/panels/IdentityPanel/IdentityPanel.d.ts +0 -1
  50. package/dist/types/src/panels/IdentityPanel/IdentityPanel.d.ts.map +1 -1
  51. package/dist/types/src/panels/IdentityPanel/IdentityPanel.js.map +1 -1
  52. package/dist/types/src/panels/IdentityPanel/IdentityPanel.stories.d.ts +0 -1
  53. package/dist/types/src/panels/IdentityPanel/IdentityPanel.stories.d.ts.map +1 -1
  54. package/dist/types/src/panels/IdentityPanel/steps/AgentForm.d.ts +0 -1
  55. package/dist/types/src/panels/IdentityPanel/steps/AgentForm.d.ts.map +1 -1
  56. package/dist/types/src/panels/IdentityPanel/steps/DeviceManager.d.ts +0 -1
  57. package/dist/types/src/panels/IdentityPanel/steps/DeviceManager.d.ts.map +1 -1
  58. package/dist/types/src/panels/IdentityPanel/steps/IdentityActionChooser.d.ts.map +1 -1
  59. package/dist/types/src/panels/IdentityPanel/steps/IdentityActionChooser.js +1 -0
  60. package/dist/types/src/panels/IdentityPanel/steps/IdentityActionChooser.js.map +1 -1
  61. package/dist/types/src/panels/IdentityPanel/steps/ProfileForm.d.ts +0 -1
  62. package/dist/types/src/panels/IdentityPanel/steps/ProfileForm.d.ts.map +1 -1
  63. package/dist/types/src/panels/IdentityPanel/steps/ProfileForm.js.map +1 -1
  64. package/dist/types/src/panels/IdentityPanel/steps/SignOutChooser.d.ts +0 -1
  65. package/dist/types/src/panels/IdentityPanel/steps/SignOutChooser.d.ts.map +1 -1
  66. package/dist/types/src/panels/IdentityPanel/steps/SignOutChooser.js.map +1 -1
  67. package/dist/types/src/panels/IdentityPanel/useAgentHandlers.js.map +1 -1
  68. package/dist/types/src/panels/JoinPanel/JoinPanel.d.ts +0 -1
  69. package/dist/types/src/panels/JoinPanel/JoinPanel.d.ts.map +1 -1
  70. package/dist/types/src/panels/JoinPanel/JoinPanel.js.map +1 -1
  71. package/dist/types/src/panels/JoinPanel/JoinPanel.stories.d.ts +0 -1
  72. package/dist/types/src/panels/JoinPanel/JoinPanel.stories.d.ts.map +1 -1
  73. package/dist/types/src/panels/JoinPanel/joinMachine.js.map +1 -1
  74. package/dist/types/src/panels/JoinPanel/steps/AdditionMethodChooser.d.ts +0 -1
  75. package/dist/types/src/panels/JoinPanel/steps/AdditionMethodChooser.d.ts.map +1 -1
  76. package/dist/types/src/panels/JoinPanel/steps/IdentityAdded.d.ts +0 -1
  77. package/dist/types/src/panels/JoinPanel/steps/IdentityAdded.d.ts.map +1 -1
  78. package/dist/types/src/panels/JoinPanel/steps/IdentityInput.d.ts +0 -1
  79. package/dist/types/src/panels/JoinPanel/steps/IdentityInput.d.ts.map +1 -1
  80. package/dist/types/src/panels/JoinPanel/steps/InvitationAuthenticator.d.ts +0 -1
  81. package/dist/types/src/panels/JoinPanel/steps/InvitationAuthenticator.d.ts.map +1 -1
  82. package/dist/types/src/panels/JoinPanel/steps/InvitationAuthenticator.js.map +1 -1
  83. package/dist/types/src/panels/JoinPanel/steps/InvitationInput.d.ts +0 -1
  84. package/dist/types/src/panels/JoinPanel/steps/InvitationInput.d.ts.map +1 -1
  85. package/dist/types/src/panels/JoinPanel/steps/InvitationInput.js.map +1 -1
  86. package/dist/types/src/panels/JoinPanel/steps/InvitationRescuer.d.ts +0 -1
  87. package/dist/types/src/panels/JoinPanel/steps/InvitationRescuer.d.ts.map +1 -1
  88. package/dist/types/src/panels/JoinPanel/steps/InvitationRescuer.js.map +1 -1
  89. package/dist/types/src/panels/JoinPanel/steps/ResetIdentity.d.ts +0 -1
  90. package/dist/types/src/panels/JoinPanel/steps/ResetIdentity.d.ts.map +1 -1
  91. package/dist/types/src/panels/SpacePanel/SpacePanel.d.ts +0 -1
  92. package/dist/types/src/panels/SpacePanel/SpacePanel.d.ts.map +1 -1
  93. package/dist/types/src/panels/SpacePanel/SpacePanel.js.map +1 -1
  94. package/dist/types/src/panels/SpacePanel/SpacePanel.stories.d.ts +0 -1
  95. package/dist/types/src/panels/SpacePanel/SpacePanel.stories.d.ts.map +1 -1
  96. package/dist/types/src/panels/SpacePanel/steps/SpaceManager.d.ts.map +1 -1
  97. package/dist/types/src/panels/SpacePanel/steps/SpaceManager.js +16 -0
  98. package/dist/types/src/panels/SpacePanel/steps/SpaceManager.js.map +1 -1
  99. package/dist/types/src/playwright/invitations-manager.js.map +1 -1
  100. package/dist/types/src/steps/InvitationManager.d.ts +0 -1
  101. package/dist/types/src/steps/InvitationManager.d.ts.map +1 -1
  102. package/dist/types/src/steps/InvitationManager.js.map +1 -1
  103. package/dist/types/src/stories/Invitations.e2e-stories.d.ts +0 -1
  104. package/dist/types/src/stories/Invitations.e2e-stories.d.ts.map +1 -1
  105. package/dist/types/src/stories/Invitations.e2e-stories.js.map +1 -1
  106. package/dist/types/src/testing/scoped-shell-manager.js.map +1 -1
  107. package/dist/types/src/testing/shell-manager.js.map +1 -1
  108. package/package.json +20 -19
  109. package/src/components/InvitationList/InvitationListItem.tsx +25 -11
  110. package/src/panels/IdentityPanel/steps/IdentityActionChooser.tsx +1 -0
  111. package/src/panels/SpacePanel/steps/SpaceManager.tsx +16 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/shell",
3
- "version": "0.4.7",
3
+ "version": "0.4.8-main.ac78619",
4
4
  "description": "DXOS’s OS experiences",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -37,23 +37,24 @@
37
37
  "@radix-ui/react-use-controllable-state": "^1.0.0",
38
38
  "@react-hook/async": "^3.1.1",
39
39
  "@xstate/react": "^3.2.1",
40
+ "date-fns": "^3.3.1",
40
41
  "emoji-mart": "^5.5.2",
41
42
  "react-qr-rounded": "^1.0.0",
42
43
  "url-join": "^5.0.0",
43
44
  "xstate": "^4.37.0",
44
- "@dxos/async": "0.4.7",
45
- "@dxos/client-services": "0.4.7",
46
- "@dxos/client-protocol": "0.4.7",
47
- "@dxos/display-name": "0.4.7",
48
- "@dxos/invariant": "0.4.7",
49
- "@dxos/debug": "0.4.7",
50
- "@dxos/log": "0.4.7",
51
- "@dxos/react-client": "0.4.7",
52
- "@dxos/react-ui-theme": "0.4.7",
53
- "@dxos/react-ui": "0.4.7",
54
- "@dxos/react-ui-types": "0.4.7",
55
- "@dxos/util": "0.4.7",
56
- "@dxos/rpc-tunnel": "0.4.7"
45
+ "@dxos/async": "0.4.8-main.ac78619",
46
+ "@dxos/client-services": "0.4.8-main.ac78619",
47
+ "@dxos/display-name": "0.4.8-main.ac78619",
48
+ "@dxos/client-protocol": "0.4.8-main.ac78619",
49
+ "@dxos/debug": "0.4.8-main.ac78619",
50
+ "@dxos/invariant": "0.4.8-main.ac78619",
51
+ "@dxos/log": "0.4.8-main.ac78619",
52
+ "@dxos/react-client": "0.4.8-main.ac78619",
53
+ "@dxos/react-ui": "0.4.8-main.ac78619",
54
+ "@dxos/react-ui-theme": "0.4.8-main.ac78619",
55
+ "@dxos/react-ui-types": "0.4.8-main.ac78619",
56
+ "@dxos/util": "0.4.8-main.ac78619",
57
+ "@dxos/rpc-tunnel": "0.4.8-main.ac78619"
57
58
  },
58
59
  "devDependencies": {
59
60
  "@phosphor-icons/react": "^2.0.5",
@@ -64,11 +65,11 @@
64
65
  "react-dom": "^18.2.0",
65
66
  "vite": "^5.1.5",
66
67
  "vite-plugin-turbosnap": "^1.0.2",
67
- "@dxos/random": "0.4.7",
68
- "@dxos/config": "0.4.7",
69
- "@dxos/react-async": "0.4.7",
70
- "@dxos/react-ui-theme": "0.4.7",
71
- "@dxos/storybook-utils": "0.4.7"
68
+ "@dxos/config": "0.4.8-main.ac78619",
69
+ "@dxos/random": "0.4.8-main.ac78619",
70
+ "@dxos/react-ui-theme": "0.4.8-main.ac78619",
71
+ "@dxos/react-async": "0.4.8-main.ac78619",
72
+ "@dxos/storybook-utils": "0.4.8-main.ac78619"
72
73
  },
73
74
  "peerDependencies": {
74
75
  "@phosphor-icons/react": "^2.0.5",
@@ -2,6 +2,7 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
  import { X } from '@phosphor-icons/react';
5
+ import { formatDistanceToNow } from 'date-fns';
5
6
  import React, { type ComponentPropsWithoutRef, useCallback } from 'react';
6
7
 
7
8
  import {
@@ -111,6 +112,10 @@ export const InvitationListItemImpl = ({
111
112
 
112
113
  const invitationUrl = invitationCode && createInvitationUrl(invitationCode);
113
114
  const invitationId = invitation?.get().invitationId;
115
+ const invitationHasLifetime = invitation?.get().lifetime;
116
+ const invitationTimeLeft = invitation?.expiry
117
+ ? formatDistanceToNow(invitation?.expiry, { addSuffix: true })
118
+ : undefined;
114
119
 
115
120
  const avatarAnimation = [
116
121
  Invitation.State.INIT,
@@ -163,17 +168,26 @@ export const InvitationListItemImpl = ({
163
168
  </Tooltip.Portal>
164
169
  </Tooltip.Root>
165
170
  {showShare && invitationUrl ? (
166
- <>
167
- <Button
168
- variant='ghost'
169
- classNames='grow justify-start font-medium'
170
- onClick={() => send({ type: 'selectInvitation', invitation })}
171
- data-testid='show-qrcode'
172
- >
173
- <span>{t('open share panel label')}</span>
174
- </Button>
175
- <CopyButtonIconOnly variant='ghost' value={invitationUrl} />
176
- </>
171
+ <Tooltip.Root>
172
+ <>
173
+ <Tooltip.Trigger asChild>
174
+ <Button
175
+ variant='ghost'
176
+ classNames='grow justify-start font-medium'
177
+ onClick={() => send({ type: 'selectInvitation', invitation })}
178
+ data-testid='show-qrcode'
179
+ >
180
+ <span>{t('open share panel label')}</span>
181
+ </Button>
182
+ </Tooltip.Trigger>
183
+ <CopyButtonIconOnly variant='ghost' value={invitationUrl} />
184
+ </>
185
+ <Tooltip.Portal>
186
+ <Tooltip.Content side='left' classNames='z-[70]'>
187
+ {invitationHasLifetime && <span>Expires {invitationTimeLeft}</span>}
188
+ </Tooltip.Content>
189
+ </Tooltip.Portal>
190
+ </Tooltip.Root>
177
191
  ) : showAuthCode ? (
178
192
  <AuthCode code={authCode} classNames='grow' />
179
193
  ) : invitationStatus === Invitation.State.CONNECTING ? (
@@ -31,6 +31,7 @@ export const IdentityActionChooser = (props: IdentityPanelStepProps) => {
31
31
  const createInvitation = (e: React.MouseEvent) => {
32
32
  const testing = e.altKey && e.shiftKey;
33
33
  invitations.forEach((invitation) => invitation.cancel());
34
+ // TODO(nf): allow user to make invitations non-persistent?
34
35
  const invitation = client.halo.share(
35
36
  testing ? { type: Invitation.Type.MULTIUSE, authMethod: Invitation.AuthMethod.NONE } : undefined,
36
37
  );
@@ -81,6 +81,22 @@ export const SpaceManager = (props: SpaceManagerProps) => {
81
81
  }
82
82
  }, [space]),
83
83
  },
84
+ // inviteNonPersistent: {
85
+ // label: 'Invite one (nonpersistent)',
86
+ // description: 'Only one user may join. Invitation does not resume if client is restarted.',
87
+ // icon: UserPlus,
88
+ // onClick: useCallback(() => {
89
+ // const invitation = space.share?.({
90
+ // type: Invitation.Type.INTERACTIVE,
91
+ // authMethod: Invitation.AuthMethod.SHARED_SECRET,
92
+ // persistent: false,
93
+ // target,
94
+ // });
95
+ // if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== 'production') {
96
+ // invitation.subscribe(onInvitationEvent);
97
+ // }
98
+ // }, [space]),
99
+ // },
84
100
  };
85
101
 
86
102
  return <SpaceManagerImpl {...props} invitations={invitations} inviteActions={inviteActions} />;