@dxos/shell 0.6.14-staging.8758a12 → 0.6.14-staging.9b873ce

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 (53) hide show
  1. package/dist/bundle/shell.mjs +4344 -4251
  2. package/dist/bundle/shell.mjs.map +1 -1
  3. package/dist/bundle/shell.umd.js +45 -45
  4. package/dist/bundle/shell.umd.js.map +1 -1
  5. package/dist/bundle/style.css +1 -1
  6. package/dist/lib/browser/meta.json +1 -1
  7. package/dist/lib/browser/react.mjs +40 -46
  8. package/dist/lib/browser/react.mjs.map +3 -3
  9. package/dist/lib/browser/testing/index.mjs +2 -0
  10. package/dist/lib/browser/testing/index.mjs.map +2 -2
  11. package/dist/lib/node/meta.json +1 -1
  12. package/dist/lib/node/react.cjs +23 -29
  13. package/dist/lib/node/react.cjs.map +3 -3
  14. package/dist/lib/node/testing/index.cjs +2 -0
  15. package/dist/lib/node/testing/index.cjs.map +2 -2
  16. package/dist/lib/node-esm/meta.json +1 -1
  17. package/dist/lib/node-esm/react.mjs +40 -46
  18. package/dist/lib/node-esm/react.mjs.map +3 -3
  19. package/dist/lib/node-esm/testing/index.mjs +2 -0
  20. package/dist/lib/node-esm/testing/index.mjs.map +2 -2
  21. package/dist/types/src/components/DeviceList/DeviceListItem.d.ts.map +1 -1
  22. package/dist/types/src/components/DeviceList/DeviceListItem.js +4 -10
  23. package/dist/types/src/components/DeviceList/DeviceListItem.js.map +1 -1
  24. package/dist/types/src/components/Panel/Action.d.ts +2 -0
  25. package/dist/types/src/components/Panel/Action.d.ts.map +1 -1
  26. package/dist/types/src/components/Panel/Action.js +16 -14
  27. package/dist/types/src/components/Panel/Action.js.map +1 -1
  28. package/dist/types/src/panels/IdentityPanel/steps/IdentityActionChooser.d.ts.map +1 -1
  29. package/dist/types/src/panels/IdentityPanel/steps/IdentityActionChooser.js +2 -2
  30. package/dist/types/src/panels/IdentityPanel/steps/IdentityActionChooser.js.map +1 -1
  31. package/dist/types/src/panels/SpacePanel/SpacePanel.d.ts.map +1 -1
  32. package/dist/types/src/panels/SpacePanel/SpacePanel.js +2 -2
  33. package/dist/types/src/panels/SpacePanel/SpacePanel.js.map +1 -1
  34. package/dist/types/src/panels/SpacePanel/SpacePanelProps.d.ts +1 -0
  35. package/dist/types/src/panels/SpacePanel/SpacePanelProps.d.ts.map +1 -1
  36. package/dist/types/src/panels/SpacePanel/steps/SpaceManager.d.ts.map +1 -1
  37. package/dist/types/src/panels/SpacePanel/steps/SpaceManager.js +5 -3
  38. package/dist/types/src/panels/SpacePanel/steps/SpaceManager.js.map +1 -1
  39. package/dist/types/src/playwright/invitations-manager.d.ts.map +1 -1
  40. package/dist/types/src/playwright/invitations-manager.js +9 -1
  41. package/dist/types/src/playwright/invitations-manager.js.map +1 -1
  42. package/dist/types/src/testing/shell-manager.d.ts.map +1 -1
  43. package/dist/types/src/testing/shell-manager.js +2 -0
  44. package/dist/types/src/testing/shell-manager.js.map +1 -1
  45. package/package.json +25 -25
  46. package/src/components/DeviceList/DeviceListItem.tsx +38 -42
  47. package/src/components/Panel/Action.tsx +40 -31
  48. package/src/panels/IdentityPanel/steps/IdentityActionChooser.tsx +4 -2
  49. package/src/panels/SpacePanel/SpacePanel.tsx +2 -1
  50. package/src/panels/SpacePanel/SpacePanelProps.ts +1 -0
  51. package/src/panels/SpacePanel/steps/SpaceManager.tsx +5 -3
  52. package/src/playwright/invitations-manager.ts +8 -1
  53. package/src/testing/shell-manager.ts +2 -0
@@ -849,7 +849,7 @@ var iconProps = {
849
849
  x: 8,
850
850
  y: 8
851
851
  };
852
- var DeviceListItem = /* @__PURE__ */ (0, import_react17.forwardRef)(({ device, onClickAdd, onClickEdit, onClickReset, onClickRecover, onClickJoinExisting, classNames, connectionState, onAgentDestroy, ...props }, forwardedRef) => {
852
+ var DeviceListItem = /* @__PURE__ */ (0, import_react17.forwardRef)(({ device, onClickAdd, onClickEdit, onClickReset, onClickRecover, onClickJoinExisting, classNames, connectionState, onAgentDestroy: _, ...props }, forwardedRef) => {
853
853
  const { t } = (0, import_react_ui9.useTranslation)("os");
854
854
  const fallbackValue = (0, import_util2.keyToFallback)(device.deviceKey);
855
855
  const labelId = (0, import_react_ui9.useId)("identityListItem__label");
@@ -883,21 +883,7 @@ var DeviceListItem = /* @__PURE__ */ (0, import_react17.forwardRef)(({ device, o
883
883
  classNames: "flex-1 text-sm truncate"
884
884
  }, displayName), isCurrent && /* @__PURE__ */ import_react17.default.createElement(import_react_ui9.Tag, {
885
885
  color: "primary"
886
- }, t("current device tag label")), device.profile?.type === import_halo.DeviceType.AGENT_MANAGED ? /* @__PURE__ */ import_react17.default.createElement(import_react_ui9.Tooltip.Root, null, /* @__PURE__ */ import_react17.default.createElement(import_react_ui9.Tooltip.Trigger, {
887
- asChild: true
888
- }, /* @__PURE__ */ import_react17.default.createElement(import_react_ui9.Button, {
889
- variant: "ghost",
890
- classNames: "pli-0 is-[--rail-action] bs-[--rail-action]",
891
- "data-testid": "agent.destroy",
892
- onClick: onAgentDestroy
893
- }, /* @__PURE__ */ import_react17.default.createElement("span", {
894
- className: "sr-only"
895
- }, t("destroy agent label")), /* @__PURE__ */ import_react17.default.createElement(import_react16.Power, {
896
- className: (0, import_react_ui_theme9.getSize)(5)
897
- }))), /* @__PURE__ */ import_react17.default.createElement(import_react_ui9.Tooltip.Portal, null, /* @__PURE__ */ import_react17.default.createElement(import_react_ui9.Tooltip.Content, {
898
- side: "bottom",
899
- classNames: "z-50"
900
- }, t("destroy agent label")))) : device.kind === import_halo.DeviceKind.CURRENT && /* @__PURE__ */ import_react17.default.createElement(import_react_ui9.DropdownMenu.Root, null, /* @__PURE__ */ import_react17.default.createElement(import_react_ui9.DropdownMenu.Trigger, {
886
+ }, t("current device tag label")), device.kind === import_halo.DeviceKind.CURRENT && /* @__PURE__ */ import_react17.default.createElement(import_react_ui9.DropdownMenu.Root, null, /* @__PURE__ */ import_react17.default.createElement(import_react_ui9.DropdownMenu.Trigger, {
901
887
  asChild: true
902
888
  }, /* @__PURE__ */ import_react17.default.createElement(import_react_ui9.Button, {
903
889
  variant: "ghost",
@@ -1188,7 +1174,8 @@ var defaultActions = {
1188
1174
  }
1189
1175
  };
1190
1176
  var BifurcatedAction = /* @__PURE__ */ (0, import_react24.forwardRef)((props, forwardedRef) => {
1191
- const { classNames, variant, isFull = true, actions = defaultActions, activeAction: propsActiveAction, onChangeActiveAction, defaultActiveAction, ...rest } = props;
1177
+ const { classNames, variant, isFull = true, actions = defaultActions, activeAction: propsActiveAction, onChangeActiveAction, defaultActiveAction, "data-testid": testId, ...rest } = props;
1178
+ const dropdownTestId = testId && `${testId}.more`;
1192
1179
  const [activeActionKey2 = Object.keys(actions)[0], setActiveAction] = (0, import_react_use_controllable_state3.useControllableState)({
1193
1180
  prop: propsActiveAction,
1194
1181
  onChange: onChangeActiveAction,
@@ -1207,6 +1194,7 @@ var BifurcatedAction = /* @__PURE__ */ (0, import_react24.forwardRef)((props, fo
1207
1194
  ],
1208
1195
  ref: forwardedRef,
1209
1196
  variant,
1197
+ "data-testid": testId,
1210
1198
  onClick: activeAction.onClick
1211
1199
  }, activeAction.icon && /* @__PURE__ */ import_react24.default.createElement(activeAction.icon, {
1212
1200
  className: (0, import_react_ui_theme13.getSize)(5)
@@ -1216,19 +1204,21 @@ var BifurcatedAction = /* @__PURE__ */ (0, import_react24.forwardRef)((props, fo
1216
1204
  classNames: [
1217
1205
  "bs-11 flex-none rounded-is-none",
1218
1206
  classNames
1219
- ]
1207
+ ],
1208
+ "data-testid": dropdownTestId
1220
1209
  }, /* @__PURE__ */ import_react24.default.createElement("span", {
1221
1210
  className: "sr-only"
1222
1211
  }, t("invite options label")), /* @__PURE__ */ import_react24.default.createElement(import_react23.CaretDown, {
1223
1212
  className: (0, import_react_ui_theme13.getSize)(4)
1224
- }))), /* @__PURE__ */ import_react24.default.createElement(import_react_ui12.DropdownMenu.Content, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui12.DropdownMenu.Viewport, null, Object.entries(actions).map(([id, action]) => {
1213
+ }))), /* @__PURE__ */ import_react24.default.createElement(import_react_ui12.DropdownMenu.Portal, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui12.DropdownMenu.Content, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui12.DropdownMenu.Viewport, null, Object.entries(actions).map(([id, action]) => {
1225
1214
  return /* @__PURE__ */ import_react24.default.createElement(import_react_ui12.DropdownMenu.CheckboxItem, {
1226
1215
  key: id,
1227
1216
  "aria-labelledby": `${id}__label`,
1228
1217
  "aria-describedby": `${id}__description`,
1229
1218
  checked: activeActionKey2 === id,
1230
1219
  onCheckedChange: (checked) => checked && setActiveAction(id),
1231
- classNames: "gap-2"
1220
+ classNames: "gap-2",
1221
+ "data-testid": action.testId
1232
1222
  }, action.icon && /* @__PURE__ */ import_react24.default.createElement(action.icon, {
1233
1223
  className: (0, import_react_ui_theme13.getSize)(5)
1234
1224
  }), /* @__PURE__ */ import_react24.default.createElement("div", {
@@ -1245,7 +1235,7 @@ var BifurcatedAction = /* @__PURE__ */ (0, import_react24.forwardRef)((props, fo
1245
1235
  weight: "bold",
1246
1236
  className: (0, import_react_ui_theme13.getSize)(4)
1247
1237
  })));
1248
- })), /* @__PURE__ */ import_react24.default.createElement(import_react_ui12.DropdownMenu.Arrow, null))));
1238
+ })), /* @__PURE__ */ import_react24.default.createElement(import_react_ui12.DropdownMenu.Arrow, null)))));
1249
1239
  });
1250
1240
  var Action = /* @__PURE__ */ (0, import_react24.forwardRef)((props, forwardedRef) => {
1251
1241
  const { children, classNames, variant, isFull = true, ...rest } = props;
@@ -1574,7 +1564,7 @@ var IdentityActionChooser = (props) => {
1574
1564
  });
1575
1565
  };
1576
1566
  var IdentityActionChooserImpl = ({ devices, connectionState, agentHostingEnabled, onClickAdd, onClickJoinExisting, onClickRecover, onClickReset, ...agentProps }) => {
1577
- const managedDeviceAvailable = devices.find((device) => device.profile?.type === import_halo3.DeviceType.AGENT_MANAGED);
1567
+ const edgeDeviceAvailable = devices.find((device) => device.profile?.type === import_halo3.DeviceType.AGENT_MANAGED && device.profile?.os?.toUpperCase() === "EDGE");
1578
1568
  return /* @__PURE__ */ import_react39.default.createElement("div", {
1579
1569
  role: "none",
1580
1570
  className: "bs-40 grow overflow-y-auto overflow-x-hidden"
@@ -1586,7 +1576,7 @@ var IdentityActionChooserImpl = ({ devices, connectionState, agentHostingEnabled
1586
1576
  onClickRecover: agentProps.agentStatus === "created" ? onClickRecover : void 0,
1587
1577
  onClickReset,
1588
1578
  onAgentDestroy: agentProps.onAgentDestroy
1589
- }), !managedDeviceAvailable && agentHostingEnabled && /* @__PURE__ */ import_react39.default.createElement(AgentConfig, agentProps));
1579
+ }), !edgeDeviceAvailable && agentHostingEnabled && /* @__PURE__ */ import_react39.default.createElement(AgentConfig, agentProps));
1590
1580
  };
1591
1581
  var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/IdentityPanel/useEdgeAgentsHandlers.ts";
1592
1582
  var useEdgeAgentHandlers = ({ identity }) => {
@@ -3795,6 +3785,7 @@ var SpaceManager = (props) => {
3795
3785
  label: t("invite one label"),
3796
3786
  description: t("invite one description"),
3797
3787
  icon: import_react63.UserPlus,
3788
+ testId: "spaces-panel.invite-one",
3798
3789
  onClick: (0, import_react64.useCallback)(() => {
3799
3790
  const invitation = space.share?.({
3800
3791
  type: import_invitations10.Invitation.Type.INTERACTIVE,
@@ -3806,13 +3797,15 @@ var SpaceManager = (props) => {
3806
3797
  const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
3807
3798
  }
3808
3799
  }, [
3809
- space
3800
+ space,
3801
+ target
3810
3802
  ])
3811
3803
  },
3812
3804
  inviteMany: {
3813
3805
  label: t("invite many label"),
3814
3806
  description: t("invite many description"),
3815
3807
  icon: import_react63.UsersThree,
3808
+ testId: "spaces-panel.invite-many",
3816
3809
  onClick: (0, import_react64.useCallback)(() => {
3817
3810
  const invitation = space.share?.({
3818
3811
  type: import_invitations10.Invitation.Type.DELEGATED,
@@ -3824,7 +3817,8 @@ var SpaceManager = (props) => {
3824
3817
  const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
3825
3818
  }
3826
3819
  }, [
3827
- space
3820
+ space,
3821
+ target
3828
3822
  ])
3829
3823
  }
3830
3824
  };
@@ -3847,7 +3841,7 @@ var SpaceManagerImpl = (props) => {
3847
3841
  }
3848
3842
  }
3849
3843
  };
3850
- const [activeAction, setInternalActiveAction] = (0, import_react64.useState)(localStorage.getItem(activeActionKey) ?? "inviteOne");
3844
+ const [activeAction, setInternalActiveAction] = (0, import_react64.useState)(localStorage.getItem(activeActionKey) ?? "inviteMany");
3851
3845
  const setActiveAction = (nextAction) => {
3852
3846
  setInternalActiveAction(nextAction);
3853
3847
  localStorage.setItem(activeActionKey, nextAction);
@@ -3904,8 +3898,8 @@ var SpacePanelHeading = ({ titleId, space, onDone }) => {
3904
3898
  }, name ?? space.key.truncate())));
3905
3899
  };
3906
3900
  var SpacePanelImpl = (props) => {
3907
- const { titleId, activeView, space, target, SpaceManager: SpaceManagerComponent = SpaceManager, InvitationManager: InvitationManagerComponent = InvitationManager, ...rest } = props;
3908
- return /* @__PURE__ */ import_react61.default.createElement(import_react61.default.Fragment, null, /* @__PURE__ */ import_react61.default.createElement(SpacePanelHeading, {
3901
+ const { titleId, activeView, space, hideHeading, target, SpaceManager: SpaceManagerComponent = SpaceManager, InvitationManager: InvitationManagerComponent = InvitationManager, ...rest } = props;
3902
+ return /* @__PURE__ */ import_react61.default.createElement(import_react61.default.Fragment, null, !hideHeading && /* @__PURE__ */ import_react61.default.createElement(SpacePanelHeading, {
3909
3903
  ...rest,
3910
3904
  titleId,
3911
3905
  space
@@ -3947,7 +3941,7 @@ var SpacePanel = ({ titleId: propsTitleId, createInvitationUrl = (code) => code,
3947
3941
  const subscription = spaceService.subscribe((state) => {
3948
3942
  (0, import_log11.log)("[state]", state, {
3949
3943
  F: __dxlog_file13,
3950
- L: 94,
3944
+ L: 95,
3951
3945
  S: void 0,
3952
3946
  C: (f, a) => f(...a)
3953
3947
  });