@dxos/plugin-thread 0.8.4-main.72ec0f3 → 0.8.4-main.74a063c4e0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/add-message-MJDIN4K4.mjs +97 -0
- package/dist/lib/browser/add-message-MJDIN4K4.mjs.map +7 -0
- package/dist/lib/browser/blueprints/index.mjs +37 -0
- package/dist/lib/browser/blueprints/index.mjs.map +7 -0
- package/dist/lib/browser/chunk-2QNKWX4H.mjs +259 -0
- package/dist/lib/browser/chunk-2QNKWX4H.mjs.map +7 -0
- package/dist/lib/browser/chunk-7T7J6ZR6.mjs +61 -0
- package/dist/lib/browser/chunk-7T7J6ZR6.mjs.map +7 -0
- package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/browser/create-N2ZVTONJ.mjs +55 -0
- package/dist/lib/browser/create-N2ZVTONJ.mjs.map +7 -0
- package/dist/lib/browser/create-channel-Y4H3535D.mjs +21 -0
- package/dist/lib/browser/create-channel-Y4H3535D.mjs.map +7 -0
- package/dist/lib/browser/create-channel-thread-6N7TKEAW.mjs +28 -0
- package/dist/lib/browser/create-channel-thread-6N7TKEAW.mjs.map +7 -0
- package/dist/lib/browser/create-proposals-VTOSWUOX.mjs +57 -0
- package/dist/lib/browser/create-proposals-VTOSWUOX.mjs.map +7 -0
- package/dist/lib/browser/delete-QZZE655Y.mjs +59 -0
- package/dist/lib/browser/delete-QZZE655Y.mjs.map +7 -0
- package/dist/lib/browser/delete-message-JTBPACDE.mjs +64 -0
- package/dist/lib/browser/delete-message-JTBPACDE.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +2249 -227
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/on-create-space-2UGS234J.mjs +25 -0
- package/dist/lib/browser/on-create-space-2UGS234J.mjs.map +7 -0
- package/dist/lib/browser/operations/index.mjs +14 -0
- package/dist/lib/browser/operations/index.mjs.map +7 -0
- package/dist/lib/browser/restore-KKQHFLYO.mjs +33 -0
- package/dist/lib/browser/restore-KKQHFLYO.mjs.map +7 -0
- package/dist/lib/browser/restore-message-YN4BJQIZ.mjs +42 -0
- package/dist/lib/browser/restore-message-YN4BJQIZ.mjs.map +7 -0
- package/dist/lib/browser/select-VBJ3MBLN.mjs +26 -0
- package/dist/lib/browser/select-VBJ3MBLN.mjs.map +7 -0
- package/dist/lib/browser/toggle-resolved-OX7UEZG5.mjs +45 -0
- package/dist/lib/browser/toggle-resolved-OX7UEZG5.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +6 -8
- package/dist/lib/node-esm/add-message-X6IRTANN.mjs +98 -0
- package/dist/lib/node-esm/add-message-X6IRTANN.mjs.map +7 -0
- package/dist/lib/node-esm/blueprints/index.mjs +38 -0
- package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
- package/dist/lib/node-esm/chunk-I6LAZYVU.mjs +260 -0
- package/dist/lib/node-esm/chunk-I6LAZYVU.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-UGSMYQLZ.mjs +62 -0
- package/dist/lib/node-esm/chunk-UGSMYQLZ.mjs.map +7 -0
- package/dist/lib/node-esm/create-A6XQZR7M.mjs +56 -0
- package/dist/lib/node-esm/create-A6XQZR7M.mjs.map +7 -0
- package/dist/lib/node-esm/create-channel-KA5T23ZS.mjs +22 -0
- package/dist/lib/node-esm/create-channel-KA5T23ZS.mjs.map +7 -0
- package/dist/lib/node-esm/create-channel-thread-44PXAPGM.mjs +29 -0
- package/dist/lib/node-esm/create-channel-thread-44PXAPGM.mjs.map +7 -0
- package/dist/lib/node-esm/create-proposals-HDBVDNUX.mjs +58 -0
- package/dist/lib/node-esm/create-proposals-HDBVDNUX.mjs.map +7 -0
- package/dist/lib/node-esm/delete-3RAWD5GG.mjs +60 -0
- package/dist/lib/node-esm/delete-3RAWD5GG.mjs.map +7 -0
- package/dist/lib/node-esm/delete-message-QQHNJBHY.mjs +65 -0
- package/dist/lib/node-esm/delete-message-QQHNJBHY.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +2249 -227
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/on-create-space-ZURB6UKR.mjs +26 -0
- package/dist/lib/node-esm/on-create-space-ZURB6UKR.mjs.map +7 -0
- package/dist/lib/node-esm/operations/index.mjs +15 -0
- package/dist/lib/node-esm/operations/index.mjs.map +7 -0
- package/dist/lib/node-esm/restore-PDYEKDE3.mjs +34 -0
- package/dist/lib/node-esm/restore-PDYEKDE3.mjs.map +7 -0
- package/dist/lib/node-esm/restore-message-OB32YYKF.mjs +43 -0
- package/dist/lib/node-esm/restore-message-OB32YYKF.mjs.map +7 -0
- package/dist/lib/node-esm/select-6KETLVWY.mjs +27 -0
- package/dist/lib/node-esm/select-6KETLVWY.mjs.map +7 -0
- package/dist/lib/node-esm/toggle-resolved-V74EBRQZ.mjs +46 -0
- package/dist/lib/node-esm/toggle-resolved-V74EBRQZ.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +6 -8
- package/dist/types/src/ThreadPlugin.d.ts +2 -1
- package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
- package/dist/types/src/blueprints/index.d.ts +2 -0
- package/dist/types/src/blueprints/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/thread-blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/thread-blueprint.d.ts.map +1 -0
- package/dist/types/src/calls/call-manager.d.ts +40 -30
- package/dist/types/src/calls/call-manager.d.ts.map +1 -1
- package/dist/types/src/calls/call-swarm-synchronizer.d.ts +2 -2
- package/dist/types/src/calls/call-swarm-synchronizer.d.ts.map +1 -1
- package/dist/types/src/calls/media-manager.d.ts +1 -1
- package/dist/types/src/calls/media-manager.d.ts.map +1 -1
- package/dist/types/src/calls/util/calls-service.d.ts +1 -1
- package/dist/types/src/calls/util/calls-service.d.ts.map +1 -1
- package/dist/types/src/calls/util/task-scheduling.d.ts +2 -2
- package/dist/types/src/calls/util/task-scheduling.d.ts.map +1 -1
- package/dist/types/src/calls-service.stories.d.ts +2 -2
- package/dist/types/src/calls-service.stories.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -4
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/call-manager.d.ts +3 -2
- package/dist/types/src/capabilities/call-manager.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +13 -14
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/markdown.d.ts +3 -2
- package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
- package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-root.d.ts +4 -2
- package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +3 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +4 -2
- package/dist/types/src/capabilities/settings.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +5 -5
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/capabilities/undo-mappings.d.ts +5 -0
- package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -0
- package/dist/types/src/components/Call/Call.d.ts.map +1 -1
- package/dist/types/src/components/Call/Toolbar.d.ts +1 -1
- package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts +13 -0
- package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts.map +1 -0
- package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts +160 -0
- package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts.map +1 -0
- package/dist/types/src/components/{CommentsThreadContainer.d.ts → CommentsPanel/CommentsThread.d.ts} +3 -3
- package/dist/types/src/components/CommentsPanel/CommentsThread.d.ts.map +1 -0
- package/dist/types/src/components/CommentsPanel/index.d.ts +3 -0
- package/dist/types/src/components/CommentsPanel/index.d.ts.map +1 -0
- package/dist/types/src/components/Lobby/Lobby.d.ts.map +1 -1
- package/dist/types/src/components/Media/VideoObject.d.ts +1 -1
- package/dist/types/src/components/Media/VideoObject.stories.d.ts +1 -1
- package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +1 -1
- package/dist/types/src/components/MessagePanel/MessagePanel.d.ts +15 -0
- package/dist/types/src/components/MessagePanel/MessagePanel.d.ts.map +1 -0
- package/dist/types/src/components/MessagePanel/index.d.ts +2 -0
- package/dist/types/src/components/MessagePanel/index.d.ts.map +1 -0
- package/dist/types/src/components/Participant/Participant.d.ts.map +1 -1
- package/dist/types/src/components/Participant/ParticipantGrid.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +142 -140
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/{ResponsiveContainer.d.ts → ResponsivePanel.d.ts} +4 -4
- package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.d.ts.map +1 -0
- package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.stories.d.ts +164 -0
- package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.stories.d.ts.map +1 -0
- package/dist/types/src/components/ResponsiveGrid/index.d.ts +1 -1
- package/dist/types/src/components/ResponsiveGrid/index.d.ts.map +1 -1
- package/dist/types/src/components/ThreadSettings/ThreadSettings.d.ts +6 -0
- package/dist/types/src/components/ThreadSettings/ThreadSettings.d.ts.map +1 -0
- package/dist/types/src/components/ThreadSettings/ThreadSettings.stories.d.ts +161 -0
- package/dist/types/src/components/ThreadSettings/ThreadSettings.stories.d.ts.map +1 -0
- package/dist/types/src/components/ThreadSettings/index.d.ts +2 -0
- package/dist/types/src/components/ThreadSettings/index.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +4 -9
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/{components → containers/CallDebugPanel}/CallDebugPanel.d.ts +1 -1
- package/dist/types/src/containers/CallDebugPanel/CallDebugPanel.d.ts.map +1 -0
- package/dist/types/src/containers/CallDebugPanel/index.d.ts +2 -0
- package/dist/types/src/containers/CallDebugPanel/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/CallSidebar}/CallSidebar.d.ts +0 -1
- package/dist/types/src/containers/CallSidebar/CallSidebar.d.ts.map +1 -0
- package/dist/types/src/containers/CallSidebar/index.d.ts +2 -0
- package/dist/types/src/containers/CallSidebar/index.d.ts.map +1 -0
- package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts +12 -0
- package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts.map +1 -0
- package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts +162 -0
- package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts.map +1 -0
- package/dist/types/src/containers/ChannelContainer/index.d.ts +2 -0
- package/dist/types/src/containers/ChannelContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts +20 -0
- package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +1 -0
- package/dist/types/src/containers/ChatContainer/ChatContainer.stories.d.ts +162 -0
- package/dist/types/src/containers/ChatContainer/ChatContainer.stories.d.ts.map +1 -0
- package/dist/types/src/containers/ChatContainer/index.d.ts +4 -0
- package/dist/types/src/containers/ChatContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts +8 -0
- package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts.map +1 -0
- package/dist/types/src/containers/ThreadCompanion/index.d.ts +2 -0
- package/dist/types/src/containers/ThreadCompanion/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +7 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/{components/command-extension.d.ts → extensions/command.d.ts} +1 -1
- package/dist/types/src/extensions/command.d.ts.map +1 -0
- package/dist/types/src/extensions/index.d.ts +1 -0
- package/dist/types/src/extensions/index.d.ts.map +1 -1
- package/dist/types/src/extensions/threads.d.ts +8 -3
- package/dist/types/src/extensions/threads.d.ts.map +1 -1
- package/dist/types/src/hooks/analytics.d.ts +1 -2
- package/dist/types/src/hooks/analytics.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/operations/add-message.d.ts +5 -0
- package/dist/types/src/operations/add-message.d.ts.map +1 -0
- package/dist/types/src/operations/create-channel-thread.d.ts +5 -0
- package/dist/types/src/operations/create-channel-thread.d.ts.map +1 -0
- package/dist/types/src/operations/create-channel.d.ts +5 -0
- package/dist/types/src/operations/create-channel.d.ts.map +1 -0
- package/dist/types/src/operations/create-proposals.d.ts +5 -0
- package/dist/types/src/operations/create-proposals.d.ts.map +1 -0
- package/dist/types/src/operations/create.d.ts +5 -0
- package/dist/types/src/operations/create.d.ts.map +1 -0
- package/dist/types/src/operations/definitions.d.ts +2789 -0
- package/dist/types/src/operations/definitions.d.ts.map +1 -0
- package/dist/types/src/operations/delete-message.d.ts +5 -0
- package/dist/types/src/operations/delete-message.d.ts.map +1 -0
- package/dist/types/src/operations/delete.d.ts +5 -0
- package/dist/types/src/operations/delete.d.ts.map +1 -0
- package/dist/types/src/operations/index.d.ts +4 -0
- package/dist/types/src/operations/index.d.ts.map +1 -0
- package/dist/types/src/operations/on-create-space.d.ts +5 -0
- package/dist/types/src/operations/on-create-space.d.ts.map +1 -0
- package/dist/types/src/operations/restore-message.d.ts +5 -0
- package/dist/types/src/operations/restore-message.d.ts.map +1 -0
- package/dist/types/src/operations/restore.d.ts +5 -0
- package/dist/types/src/operations/restore.d.ts.map +1 -0
- package/dist/types/src/operations/select.d.ts +5 -0
- package/dist/types/src/operations/select.d.ts.map +1 -0
- package/dist/types/src/operations/toggle-resolved.d.ts +5 -0
- package/dist/types/src/operations/toggle-resolved.d.ts.map +1 -0
- package/dist/types/src/{components/testing.d.ts → testing/data.d.ts} +2 -2
- package/dist/types/src/testing/data.d.ts.map +1 -0
- package/dist/types/src/testing/stories.d.ts +2 -1
- package/dist/types/src/testing/stories.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +140 -138
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Channel.d.ts +707 -12
- package/dist/types/src/types/Channel.d.ts.map +1 -1
- package/dist/types/src/types/Settings.d.ts +4 -0
- package/dist/types/src/types/Settings.d.ts.map +1 -0
- package/dist/types/src/types/capabilities.d.ts +23 -0
- package/dist/types/src/types/capabilities.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +1 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +2 -369
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +108 -69
- package/src/ThreadPlugin.tsx +76 -114
- package/src/blueprints/index.ts +5 -0
- package/src/blueprints/thread-blueprint.ts +37 -0
- package/src/calls/call-manager.ts +76 -52
- package/src/calls/call-swarm-synchronizer.ts +2 -2
- package/src/calls/media-manager.ts +1 -1
- package/src/calls/util/calls-service.ts +1 -2
- package/src/calls/util/task-scheduling.ts +4 -4
- package/src/calls-service.stories.tsx +10 -9
- package/src/capabilities/app-graph-builder.ts +171 -172
- package/src/capabilities/blueprint-definition.ts +9 -30
- package/src/capabilities/call-manager.ts +19 -12
- package/src/capabilities/index.ts +15 -12
- package/src/capabilities/markdown.ts +50 -39
- package/src/capabilities/operation-handler.ts +16 -0
- package/src/capabilities/react-root.tsx +12 -9
- package/src/capabilities/react-surface.tsx +79 -79
- package/src/capabilities/settings.ts +28 -12
- package/src/capabilities/state.ts +14 -18
- package/src/capabilities/undo-mappings.ts +46 -0
- package/src/components/Call/Call.tsx +11 -7
- package/src/components/Call/Toolbar.tsx +55 -38
- package/src/components/CommentsPanel/CommentsPanel.stories.tsx +93 -0
- package/src/components/{CommentsContainer.tsx → CommentsPanel/CommentsPanel.tsx} +16 -16
- package/src/components/{CommentsThreadContainer.tsx → CommentsPanel/CommentsThread.tsx} +29 -31
- package/src/components/CommentsPanel/index.ts +6 -0
- package/src/components/Lobby/Lobby.tsx +15 -12
- package/src/components/Media/AudioStream.tsx +2 -2
- package/src/components/Media/VideoObject.stories.tsx +6 -7
- package/src/components/Media/VideoObject.tsx +2 -2
- package/src/components/{MessageContainer.tsx → MessagePanel/MessagePanel.tsx} +75 -38
- package/src/components/MessagePanel/index.ts +5 -0
- package/src/components/Participant/Participant.tsx +33 -19
- package/src/components/Participant/ParticipantGrid.tsx +0 -1
- package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +10 -11
- package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +9 -9
- package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +10 -10
- package/src/components/ResponsiveGrid/{ResponsiveContainer.stories.tsx → ResponsivePanel.stories.tsx} +7 -8
- package/src/components/ResponsiveGrid/{ResponsiveContainer.tsx → ResponsivePanel.tsx} +6 -6
- package/src/components/ResponsiveGrid/index.ts +1 -1
- package/src/components/ThreadSettings/ThreadSettings.stories.tsx +31 -0
- package/src/components/ThreadSettings/ThreadSettings.tsx +20 -0
- package/src/components/ThreadSettings/index.ts +5 -0
- package/src/components/index.ts +4 -11
- package/src/{components → containers/CallDebugPanel}/CallDebugPanel.tsx +8 -7
- package/src/containers/CallDebugPanel/index.ts +5 -0
- package/src/containers/CallSidebar/CallSidebar.tsx +18 -0
- package/src/containers/CallSidebar/index.ts +5 -0
- package/src/containers/ChannelContainer/ChannelContainer.stories.tsx +61 -0
- package/src/{components → containers/ChannelContainer}/ChannelContainer.tsx +90 -72
- package/src/containers/ChannelContainer/index.ts +5 -0
- package/src/{components/Chat.stories.tsx → containers/ChatContainer/ChatContainer.stories.tsx} +23 -21
- package/src/containers/ChatContainer/ChatContainer.tsx +131 -0
- package/src/containers/ChatContainer/index.ts +8 -0
- package/src/containers/ThreadCompanion/ThreadCompanion.tsx +217 -0
- package/src/containers/ThreadCompanion/index.ts +5 -0
- package/src/containers/index.ts +11 -0
- package/src/{components/command-extension.ts → extensions/command.ts} +3 -3
- package/src/extensions/index.ts +1 -0
- package/src/extensions/threads.ts +79 -43
- package/src/hooks/analytics.ts +24 -20
- package/src/index.ts +1 -1
- package/src/meta.ts +4 -4
- package/src/operations/add-message.ts +81 -0
- package/src/operations/create-channel-thread.ts +26 -0
- package/src/operations/create-channel.ts +20 -0
- package/src/operations/create-proposals.ts +49 -0
- package/src/operations/create.ts +48 -0
- package/src/operations/definitions.ts +177 -0
- package/src/operations/delete-message.ts +53 -0
- package/src/operations/delete.ts +63 -0
- package/src/operations/index.ts +22 -0
- package/src/operations/on-create-space.ts +27 -0
- package/src/operations/restore-message.ts +38 -0
- package/src/operations/restore.ts +38 -0
- package/src/operations/select.ts +24 -0
- package/src/operations/toggle-resolved.ts +41 -0
- package/src/{components/testing.ts → testing/data.ts} +8 -10
- package/src/testing/stories.ts +17 -17
- package/src/translations.ts +72 -74
- package/src/types/Channel.ts +21 -11
- package/src/types/Settings.ts +10 -0
- package/src/types/capabilities.ts +36 -0
- package/src/types/index.ts +1 -1
- package/src/types/types.ts +3 -98
- package/src/util.ts +1 -1
- package/dist/lib/browser/ChannelContainer-MX5ABVGC.mjs +0 -16
- package/dist/lib/browser/ChatContainer-7F5Y6GXJ.mjs +0 -15
- package/dist/lib/browser/app-graph-builder-HNYLII5E.mjs +0 -170
- package/dist/lib/browser/app-graph-builder-HNYLII5E.mjs.map +0 -7
- package/dist/lib/browser/blueprint-definition-6BKYTMJS.mjs +0 -104
- package/dist/lib/browser/blueprint-definition-6BKYTMJS.mjs.map +0 -7
- package/dist/lib/browser/call-manager-MAXQLMMS.mjs +0 -24
- package/dist/lib/browser/call-manager-MAXQLMMS.mjs.map +0 -7
- package/dist/lib/browser/chunk-BBTXGRIR.mjs +0 -18
- package/dist/lib/browser/chunk-BBTXGRIR.mjs.map +0 -7
- package/dist/lib/browser/chunk-BQWQFTWT.mjs +0 -612
- package/dist/lib/browser/chunk-BQWQFTWT.mjs.map +0 -7
- package/dist/lib/browser/chunk-CP7E2HRE.mjs +0 -31
- package/dist/lib/browser/chunk-CP7E2HRE.mjs.map +0 -7
- package/dist/lib/browser/chunk-FR6MEAZI.mjs +0 -377
- package/dist/lib/browser/chunk-FR6MEAZI.mjs.map +0 -7
- package/dist/lib/browser/chunk-INQVAYPN.mjs +0 -989
- package/dist/lib/browser/chunk-INQVAYPN.mjs.map +0 -7
- package/dist/lib/browser/chunk-ISCHODBV.mjs +0 -106
- package/dist/lib/browser/chunk-ISCHODBV.mjs.map +0 -7
- package/dist/lib/browser/chunk-K2DUJRFJ.mjs +0 -27
- package/dist/lib/browser/chunk-K2DUJRFJ.mjs.map +0 -7
- package/dist/lib/browser/chunk-KOBXMDCI.mjs +0 -182
- package/dist/lib/browser/chunk-KOBXMDCI.mjs.map +0 -7
- package/dist/lib/browser/chunk-NMJEVD36.mjs +0 -168
- package/dist/lib/browser/chunk-NMJEVD36.mjs.map +0 -7
- package/dist/lib/browser/chunk-OOUDK7Q7.mjs +0 -23
- package/dist/lib/browser/chunk-OOUDK7Q7.mjs.map +0 -7
- package/dist/lib/browser/chunk-ZCW3NSDZ.mjs +0 -1793
- package/dist/lib/browser/chunk-ZCW3NSDZ.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-BOUT4WGY.mjs +0 -361
- package/dist/lib/browser/intent-resolver-BOUT4WGY.mjs.map +0 -7
- package/dist/lib/browser/markdown-74EUSQGV.mjs +0 -171
- package/dist/lib/browser/markdown-74EUSQGV.mjs.map +0 -7
- package/dist/lib/browser/react-root-BVG7B2LW.mjs +0 -28
- package/dist/lib/browser/react-root-BVG7B2LW.mjs.map +0 -7
- package/dist/lib/browser/react-surface-BCD5ODQ6.mjs +0 -110
- package/dist/lib/browser/react-surface-BCD5ODQ6.mjs.map +0 -7
- package/dist/lib/browser/settings-LGQUZITB.mjs +0 -22
- package/dist/lib/browser/settings-LGQUZITB.mjs.map +0 -7
- package/dist/lib/browser/state-36REWXO5.mjs +0 -34
- package/dist/lib/browser/state-36REWXO5.mjs.map +0 -7
- package/dist/lib/node-esm/ChannelContainer-2JJJ3IDK.mjs +0 -17
- package/dist/lib/node-esm/ChannelContainer-2JJJ3IDK.mjs.map +0 -7
- package/dist/lib/node-esm/ChatContainer-C526R4DI.mjs +0 -16
- package/dist/lib/node-esm/ChatContainer-C526R4DI.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-SOCKP4ST.mjs +0 -171
- package/dist/lib/node-esm/app-graph-builder-SOCKP4ST.mjs.map +0 -7
- package/dist/lib/node-esm/blueprint-definition-6LEAWSC7.mjs +0 -105
- package/dist/lib/node-esm/blueprint-definition-6LEAWSC7.mjs.map +0 -7
- package/dist/lib/node-esm/call-manager-LC4OS2KD.mjs +0 -25
- package/dist/lib/node-esm/call-manager-LC4OS2KD.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-5DLH4MWN.mjs +0 -25
- package/dist/lib/node-esm/chunk-5DLH4MWN.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-7KZWZS2U.mjs +0 -1794
- package/dist/lib/node-esm/chunk-7KZWZS2U.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ABUFOZVX.mjs +0 -33
- package/dist/lib/node-esm/chunk-ABUFOZVX.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JF7THR7F.mjs +0 -990
- package/dist/lib/node-esm/chunk-JF7THR7F.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JJW6YMLC.mjs +0 -613
- package/dist/lib/node-esm/chunk-JJW6YMLC.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PZH2EDU5.mjs +0 -183
- package/dist/lib/node-esm/chunk-PZH2EDU5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-TJKM5JZT.mjs +0 -169
- package/dist/lib/node-esm/chunk-TJKM5JZT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-TWKGDFCS.mjs +0 -378
- package/dist/lib/node-esm/chunk-TWKGDFCS.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-VBI32FGI.mjs +0 -108
- package/dist/lib/node-esm/chunk-VBI32FGI.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-XI45H4IV.mjs +0 -28
- package/dist/lib/node-esm/chunk-XI45H4IV.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ZQAGII7M.mjs +0 -19
- package/dist/lib/node-esm/chunk-ZQAGII7M.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-45PLIFCJ.mjs +0 -362
- package/dist/lib/node-esm/intent-resolver-45PLIFCJ.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-566XXB55.mjs +0 -172
- package/dist/lib/node-esm/markdown-566XXB55.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-DCY6DKLC.mjs +0 -29
- package/dist/lib/node-esm/react-root-DCY6DKLC.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-WZH7OAO3.mjs +0 -111
- package/dist/lib/node-esm/react-surface-WZH7OAO3.mjs.map +0 -7
- package/dist/lib/node-esm/settings-WKLJSP6R.mjs +0 -23
- package/dist/lib/node-esm/settings-WKLJSP6R.mjs.map +0 -7
- package/dist/lib/node-esm/state-X3W67GTL.mjs +0 -35
- package/dist/lib/node-esm/state-X3W67GTL.mjs.map +0 -7
- package/dist/types/src/capabilities/capabilities.d.ts +0 -27
- package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/components/CallDebugPanel.d.ts.map +0 -1
- package/dist/types/src/components/CallSidebar.d.ts.map +0 -1
- package/dist/types/src/components/ChannelContainer.d.ts +0 -14
- package/dist/types/src/components/ChannelContainer.d.ts.map +0 -1
- package/dist/types/src/components/ChannelContainer.stories.d.ts +0 -160
- package/dist/types/src/components/ChannelContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/Chat.stories.d.ts +0 -160
- package/dist/types/src/components/Chat.stories.d.ts.map +0 -1
- package/dist/types/src/components/ChatContainer.d.ts +0 -18
- package/dist/types/src/components/ChatContainer.d.ts.map +0 -1
- package/dist/types/src/components/Comments.stories.d.ts +0 -158
- package/dist/types/src/components/Comments.stories.d.ts.map +0 -1
- package/dist/types/src/components/CommentsContainer.d.ts +0 -13
- package/dist/types/src/components/CommentsContainer.d.ts.map +0 -1
- package/dist/types/src/components/CommentsThreadContainer.d.ts.map +0 -1
- package/dist/types/src/components/MessageContainer.d.ts +0 -14
- package/dist/types/src/components/MessageContainer.d.ts.map +0 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.d.ts.map +0 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts +0 -162
- package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/ThreadCompanion.d.ts +0 -5
- package/dist/types/src/components/ThreadCompanion.d.ts.map +0 -1
- package/dist/types/src/components/ThreadSettings.d.ts +0 -6
- package/dist/types/src/components/ThreadSettings.d.ts.map +0 -1
- package/dist/types/src/components/command-extension.d.ts.map +0 -1
- package/dist/types/src/components/testing.d.ts.map +0 -1
- package/dist/types/src/functions/create-proposals.d.ts +0 -6
- package/dist/types/src/functions/create-proposals.d.ts.map +0 -1
- package/dist/types/src/functions/index.d.ts +0 -2
- package/dist/types/src/functions/index.d.ts.map +0 -1
- package/dist/types/src/types/Thread.d.ts +0 -167
- package/dist/types/src/types/Thread.d.ts.map +0 -1
- package/src/capabilities/capabilities.ts +0 -33
- package/src/capabilities/intent-resolver.ts +0 -311
- package/src/components/CallSidebar.tsx +0 -18
- package/src/components/ChannelContainer.stories.tsx +0 -59
- package/src/components/ChatContainer.tsx +0 -154
- package/src/components/Comments.stories.tsx +0 -91
- package/src/components/ThreadCompanion.tsx +0 -188
- package/src/components/ThreadSettings.tsx +0 -16
- package/src/functions/create-proposals.ts +0 -58
- package/src/functions/index.ts +0 -5
- package/src/types/Thread.ts +0 -26
- /package/dist/lib/browser/{ChannelContainer-MX5ABVGC.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/lib/{browser/ChatContainer-7F5Y6GXJ.mjs.map → node-esm/chunk-HSLMI22Q.mjs.map} +0 -0
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { useAtomValue } from '@effect-atom/atom-react';
|
|
5
6
|
import React, { memo, useMemo } from 'react';
|
|
6
7
|
|
|
7
|
-
import { useCapability } from '@dxos/app-framework/
|
|
8
|
+
import { useCapability } from '@dxos/app-framework/ui';
|
|
9
|
+
|
|
10
|
+
import { ThreadCapabilities } from '#types';
|
|
8
11
|
|
|
9
12
|
import { type EncodedTrackName, type UserState } from '../../calls';
|
|
10
|
-
import { ThreadCapabilities } from '../../capabilities';
|
|
11
13
|
import { VideoObject } from '../Media';
|
|
12
14
|
import { ResponsiveGridItem, type ResponsiveGridItemProps } from '../ResponsiveGrid';
|
|
13
15
|
|
|
@@ -15,27 +17,39 @@ export const SCREENSHARE_SUFFIX = '_screenshare';
|
|
|
15
17
|
|
|
16
18
|
export const Participant = memo(({ item: user, debug, ...props }: ResponsiveGridItemProps<UserState>) => {
|
|
17
19
|
const call = useCapability(ThreadCapabilities.CallManager);
|
|
18
|
-
const
|
|
20
|
+
const self = useAtomValue(call.selfAtom);
|
|
21
|
+
const media = useAtomValue(call.mediaAtom);
|
|
22
|
+
const isSelf: boolean = self.id !== undefined && user.id !== undefined && user.id.startsWith(self.id);
|
|
19
23
|
const isScreenshare = user.id?.endsWith(SCREENSHARE_SUFFIX);
|
|
20
24
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
// Get pulled video stream for non-self users.
|
|
26
|
+
const pulledVideoStream = useMemo<MediaStream | undefined>(() => {
|
|
27
|
+
if (isSelf) {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
const trackName =
|
|
31
|
+
isScreenshare && user.tracks?.screenshareEnabled
|
|
32
|
+
? (user.tracks?.screenshare as EncodedTrackName)
|
|
33
|
+
: !isScreenshare && user.tracks?.videoEnabled
|
|
34
|
+
? (user.tracks?.video as EncodedTrackName)
|
|
35
|
+
: undefined;
|
|
36
|
+
return trackName ? media.pulledVideoStreams[trackName]?.stream : undefined;
|
|
37
|
+
}, [
|
|
38
|
+
isSelf,
|
|
39
|
+
isScreenshare,
|
|
40
|
+
media.pulledVideoStreams,
|
|
41
|
+
user.tracks?.screenshare,
|
|
42
|
+
user.tracks?.video,
|
|
43
|
+
user.tracks?.screenshareEnabled,
|
|
44
|
+
user.tracks?.videoEnabled,
|
|
45
|
+
]);
|
|
27
46
|
|
|
28
47
|
const videoStream = useMemo<MediaStream | undefined>(() => {
|
|
29
48
|
if (isSelf) {
|
|
30
|
-
|
|
31
|
-
return call.media.screenshareVideoStream;
|
|
32
|
-
} else if (!isScreenshare) {
|
|
33
|
-
return call.media.videoStream;
|
|
34
|
-
}
|
|
35
|
-
} else if (!isSelf) {
|
|
36
|
-
return pulledVideoStream;
|
|
49
|
+
return isScreenshare ? media.screenshareVideoStream : media.videoStream;
|
|
37
50
|
}
|
|
38
|
-
|
|
51
|
+
return pulledVideoStream;
|
|
52
|
+
}, [isSelf, isScreenshare, media.videoStream, media.screenshareVideoStream, pulledVideoStream]);
|
|
39
53
|
|
|
40
54
|
return (
|
|
41
55
|
<ResponsiveGridItem
|
|
@@ -43,8 +57,8 @@ export const Participant = memo(({ item: user, debug, ...props }: ResponsiveGrid
|
|
|
43
57
|
item={user}
|
|
44
58
|
name={user.name}
|
|
45
59
|
self={isSelf}
|
|
46
|
-
screenshare={!!
|
|
47
|
-
video={
|
|
60
|
+
screenshare={!!media.screenshareVideoStream}
|
|
61
|
+
video={media.videoEnabled}
|
|
48
62
|
mute={user ? !user.tracks?.audioEnabled : false}
|
|
49
63
|
wave={user.raisedHand}
|
|
50
64
|
speaking={user.speaking}
|
|
@@ -8,7 +8,6 @@ import { type ThemedClassName } from '@dxos/react-ui';
|
|
|
8
8
|
|
|
9
9
|
import { type UserState } from '../../calls';
|
|
10
10
|
import { ResponsiveGrid } from '../ResponsiveGrid';
|
|
11
|
-
|
|
12
11
|
import { Participant, SCREENSHARE_SUFFIX } from './Participant';
|
|
13
12
|
|
|
14
13
|
const getId = (user: UserState): string => user.id!;
|
|
@@ -5,11 +5,10 @@
|
|
|
5
5
|
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
6
|
import React, { useEffect, useState } from 'react';
|
|
7
7
|
|
|
8
|
-
import {
|
|
9
|
-
import { withTheme } from '@dxos/react-ui/testing';
|
|
8
|
+
import { random } from '@dxos/random';
|
|
9
|
+
import { withLayout, withTheme } from '@dxos/react-ui/testing';
|
|
10
10
|
|
|
11
11
|
import { translations } from '../../translations';
|
|
12
|
-
|
|
13
12
|
import { ResponsiveGrid, type ResponsiveGridProps } from './ResponsiveGrid';
|
|
14
13
|
import { ResponsiveGridItem, type ResponsiveGridItemProps } from './ResponsiveGridItem';
|
|
15
14
|
|
|
@@ -41,7 +40,7 @@ const TestCell = ({ item, ...props }: ResponsiveGridItemProps<TestItem>) => {
|
|
|
41
40
|
{item.type === 'image' && <img className='aspect-video object-contain' src={item.imageUrl} />}
|
|
42
41
|
{item.type === 'video' && (
|
|
43
42
|
<video
|
|
44
|
-
className='
|
|
43
|
+
className='w-full aspect-video object-cover rounded-md'
|
|
45
44
|
src={item.videoUrl}
|
|
46
45
|
playsInline
|
|
47
46
|
autoPlay
|
|
@@ -53,9 +52,9 @@ const TestCell = ({ item, ...props }: ResponsiveGridItemProps<TestItem>) => {
|
|
|
53
52
|
);
|
|
54
53
|
};
|
|
55
54
|
|
|
56
|
-
type
|
|
55
|
+
type DefaultStoryProps = ResponsiveGridProps<TestItem> & { random?: boolean; autoHideGallery?: boolean };
|
|
57
56
|
|
|
58
|
-
const DefaultStory = (props:
|
|
57
|
+
const DefaultStory = (props: DefaultStoryProps) => {
|
|
59
58
|
const [pinned, setPinned] = useState<string | undefined>(
|
|
60
59
|
(props.pinned ?? props.items.length > 1) ? props.items[0]?.id : undefined,
|
|
61
60
|
);
|
|
@@ -89,10 +88,10 @@ const DefaultStory = (props: StoryProps) => {
|
|
|
89
88
|
};
|
|
90
89
|
|
|
91
90
|
const meta = {
|
|
92
|
-
title: 'plugins/plugin-thread/ResponsiveGrid',
|
|
91
|
+
title: 'plugins/plugin-thread/components/ResponsiveGrid',
|
|
93
92
|
component: ResponsiveGrid as any,
|
|
94
93
|
render: DefaultStory,
|
|
95
|
-
decorators: [withTheme],
|
|
94
|
+
decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
|
|
96
95
|
parameters: {
|
|
97
96
|
layout: 'fullscreen',
|
|
98
97
|
translations,
|
|
@@ -107,13 +106,13 @@ const videoUrls = [
|
|
|
107
106
|
];
|
|
108
107
|
|
|
109
108
|
const createItem = (type?: 'image' | 'video') => {
|
|
110
|
-
const id =
|
|
109
|
+
const id = random.string.uuid();
|
|
111
110
|
return {
|
|
112
111
|
id,
|
|
113
112
|
type,
|
|
114
|
-
name:
|
|
113
|
+
name: random.person.fullName(),
|
|
115
114
|
imageUrl: `https://placehold.co/3200x1800/333/999?font=roboto&text=${id.slice(0, 2)}`,
|
|
116
|
-
videoUrl:
|
|
115
|
+
videoUrl: random.helpers.arrayElement(videoUrls),
|
|
117
116
|
};
|
|
118
117
|
};
|
|
119
118
|
|
|
@@ -8,17 +8,17 @@ import { useResizeDetector } from 'react-resize-detector';
|
|
|
8
8
|
import { invariant } from '@dxos/invariant';
|
|
9
9
|
import { type ThemedClassName } from '@dxos/react-ui';
|
|
10
10
|
import { type Size } from '@dxos/react-ui-dnd';
|
|
11
|
-
import { mx } from '@dxos/
|
|
11
|
+
import { mx } from '@dxos/ui-theme';
|
|
12
12
|
|
|
13
|
-
import { ResponsiveContainer } from './ResponsiveContainer';
|
|
14
13
|
import { type ResponsiveGridItemProps } from './ResponsiveGridItem';
|
|
14
|
+
import { ResponsivePanel } from './ResponsivePanel';
|
|
15
15
|
|
|
16
16
|
const ASPECT_RATIO = 16 / 9;
|
|
17
17
|
const MIN_GALLERY_HEIGHT = 250;
|
|
18
18
|
|
|
19
19
|
const DEFAULT_GAP = 8;
|
|
20
20
|
|
|
21
|
-
const maxImageSize = '
|
|
21
|
+
const maxImageSize = 'w-[2560px] h-[1440px]';
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* Props for the ResponsiveGrid component.
|
|
@@ -136,13 +136,13 @@ export const ResponsiveGrid = <T extends object = any>({
|
|
|
136
136
|
);
|
|
137
137
|
|
|
138
138
|
return (
|
|
139
|
-
<div ref={containerRef} className={mx('
|
|
139
|
+
<div ref={containerRef} className={mx('dx-expander relative', classNames)}>
|
|
140
140
|
{/* Placeholder elements to calculate layout. */}
|
|
141
141
|
<div className='absolute inset-0 flex flex-col grow gap-2'>
|
|
142
142
|
{/* Pinned item. */}
|
|
143
143
|
{pinnedItem && (
|
|
144
144
|
<div
|
|
145
|
-
className={mx('flex grow-[2] shrink overflow-hidden justify-center items-center', hideGallery && '
|
|
145
|
+
className={mx('flex grow-[2] shrink overflow-hidden justify-center items-center', hideGallery && 'h-full')}
|
|
146
146
|
style={hideGallery ? {} : { height: dividerHeight }}
|
|
147
147
|
>
|
|
148
148
|
<SoloItem id={getId(pinnedItem)} debug={debug} />
|
|
@@ -157,7 +157,7 @@ export const ResponsiveGrid = <T extends object = any>({
|
|
|
157
157
|
style={hideGallery ? {} : { minHeight: MIN_GALLERY_HEIGHT }}
|
|
158
158
|
>
|
|
159
159
|
{mainItems.length === 1 && (
|
|
160
|
-
<div style={{ width: cellWidth }} className='flex
|
|
160
|
+
<div style={{ width: cellWidth }} className='flex h-full'>
|
|
161
161
|
<SoloItem id={getId(mainItems[0])} debug={debug} />
|
|
162
162
|
</div>
|
|
163
163
|
)}
|
|
@@ -176,7 +176,7 @@ export const ResponsiveGrid = <T extends object = any>({
|
|
|
176
176
|
key={getId(item)}
|
|
177
177
|
{...{ 'data-grid-item': getId(item) }}
|
|
178
178
|
className={mx(
|
|
179
|
-
'aspect-video max-
|
|
179
|
+
'aspect-video max-h-full max-w-full w-auto h-auto',
|
|
180
180
|
debug && 'border border-primary-500',
|
|
181
181
|
)}
|
|
182
182
|
/>
|
|
@@ -206,7 +206,7 @@ export const ResponsiveGrid = <T extends object = any>({
|
|
|
206
206
|
|
|
207
207
|
const SoloItem: FC<Pick<ResponsiveGridProps, 'debug'> & { id: string }> = ({ debug, id }) => {
|
|
208
208
|
return (
|
|
209
|
-
<
|
|
209
|
+
<ResponsivePanel>
|
|
210
210
|
<div
|
|
211
211
|
{...{ 'data-grid-item': id }}
|
|
212
212
|
className={mx('aspect-video overflow-hidden', debug && 'z-20 border-2 border-primary-500')}
|
|
@@ -214,7 +214,7 @@ const SoloItem: FC<Pick<ResponsiveGridProps, 'debug'> & { id: string }> = ({ deb
|
|
|
214
214
|
{/* Maximum size placeholder image forces aspect ratio. */}
|
|
215
215
|
<img alt='placeholder video' className={mx('opacity-0', maxImageSize)} />
|
|
216
216
|
</div>
|
|
217
|
-
</
|
|
217
|
+
</ResponsivePanel>
|
|
218
218
|
);
|
|
219
219
|
};
|
|
220
220
|
|
|
@@ -6,9 +6,9 @@ import React, { type CSSProperties, type PropsWithChildren, useEffect, useState
|
|
|
6
6
|
|
|
7
7
|
import { Icon, IconButton, type ThemedClassName, useTranslation } from '@dxos/react-ui';
|
|
8
8
|
import { Waveform } from '@dxos/react-ui-sfx';
|
|
9
|
-
import { groupHoverControlItemWithTransition, mx } from '@dxos/
|
|
9
|
+
import { groupHoverControlItemWithTransition, mx } from '@dxos/ui-theme';
|
|
10
10
|
|
|
11
|
-
import { meta } from '
|
|
11
|
+
import { meta } from '#meta';
|
|
12
12
|
|
|
13
13
|
export type ResponsiveGridItemProps<T extends object = any> = PropsWithChildren<
|
|
14
14
|
ThemedClassName<{
|
|
@@ -49,12 +49,12 @@ export const ResponsiveGridItem = <T extends object = any>({
|
|
|
49
49
|
const iconProps: Record<string, { icon: string; label: string; classNames?: string }> = {
|
|
50
50
|
wave: {
|
|
51
51
|
icon: 'ph--hand-waving--duotone',
|
|
52
|
-
label: t('icon
|
|
52
|
+
label: t('icon-wave.label'),
|
|
53
53
|
classNames: 'animate-pulse bg-orange-500',
|
|
54
54
|
},
|
|
55
55
|
mute: {
|
|
56
56
|
icon: 'ph--microphone-slash--regular',
|
|
57
|
-
label: t('icon
|
|
57
|
+
label: t('icon-muted.label'),
|
|
58
58
|
},
|
|
59
59
|
};
|
|
60
60
|
|
|
@@ -76,7 +76,7 @@ export const ResponsiveGridItem = <T extends object = any>({
|
|
|
76
76
|
return (
|
|
77
77
|
<div
|
|
78
78
|
className={mx(
|
|
79
|
-
'
|
|
79
|
+
'dx-expander relative group',
|
|
80
80
|
'rounded-md outline outline-2 outline-neutral-900 transition-[outline-color] duration-500',
|
|
81
81
|
speakingIndicator ? 'outline-green-500' : !video && 'outline-separator',
|
|
82
82
|
classNames,
|
|
@@ -89,11 +89,11 @@ export const ResponsiveGridItem = <T extends object = any>({
|
|
|
89
89
|
{onClick && (
|
|
90
90
|
<div className='z-10 absolute top-1 right-1 flex'>
|
|
91
91
|
<IconButton
|
|
92
|
-
classNames={mx('p-1 min-
|
|
92
|
+
classNames={mx('p-1 min-h-1 rounded-sm', groupHoverControlItemWithTransition)}
|
|
93
93
|
iconOnly
|
|
94
94
|
icon={pinned ? 'ph--x--regular' : 'ph--arrows-out--regular'}
|
|
95
95
|
size={pinned ? 5 : 4}
|
|
96
|
-
label={pinned ? t('icon
|
|
96
|
+
label={pinned ? t('icon-unpin.label') : t('icon-pin.label')}
|
|
97
97
|
onClick={() => onClick?.(item)}
|
|
98
98
|
/>
|
|
99
99
|
</div>
|
|
@@ -107,8 +107,8 @@ export const ResponsiveGridItem = <T extends object = any>({
|
|
|
107
107
|
{screenshare && <Icon icon='ph--broadcast--regular' size={pinned ? 5 : 4} />}
|
|
108
108
|
<div
|
|
109
109
|
className={mx(
|
|
110
|
-
'bg-neutral-800 text-neutral-100
|
|
111
|
-
pinned ? '
|
|
110
|
+
'bg-neutral-800 text-neutral-100 py-0.5 truncate rounded-sm',
|
|
111
|
+
pinned ? 'px-2' : 'px-1 text-xs',
|
|
112
112
|
)}
|
|
113
113
|
>
|
|
114
114
|
{name}
|
|
@@ -121,7 +121,7 @@ export const ResponsiveGridItem = <T extends object = any>({
|
|
|
121
121
|
{(speaking && <Waveform active size={pinned ? 5 : 4} />) ||
|
|
122
122
|
(props && (
|
|
123
123
|
<IconButton
|
|
124
|
-
classNames={mx('p-1 min-
|
|
124
|
+
classNames={mx('p-1 min-h-1 rounded-sm', props?.classNames)}
|
|
125
125
|
icon={props?.icon}
|
|
126
126
|
label={props?.label}
|
|
127
127
|
size={pinned ? 5 : 4}
|
|
@@ -5,26 +5,25 @@
|
|
|
5
5
|
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
|
|
8
|
-
import { withTheme } from '@dxos/react-ui/testing';
|
|
8
|
+
import { withLayout, withTheme } from '@dxos/react-ui/testing';
|
|
9
9
|
|
|
10
10
|
import { translations } from '../../translations';
|
|
11
11
|
import { VideoObject as VideoObjectComponent } from '../Media';
|
|
12
|
-
|
|
13
|
-
import { ResponsiveContainer } from './ResponsiveContainer';
|
|
12
|
+
import { ResponsivePanel } from './ResponsivePanel';
|
|
14
13
|
|
|
15
14
|
const meta = {
|
|
16
|
-
title: 'plugins/plugin-thread/
|
|
17
|
-
component:
|
|
18
|
-
decorators: [withTheme],
|
|
15
|
+
title: 'plugins/plugin-thread/components/ResponsivePanel',
|
|
16
|
+
component: ResponsivePanel,
|
|
17
|
+
decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
|
|
19
18
|
parameters: {
|
|
20
19
|
layout: 'fullscreen',
|
|
21
20
|
translations,
|
|
22
21
|
},
|
|
23
|
-
} satisfies Meta<typeof
|
|
22
|
+
} satisfies Meta<typeof ResponsivePanel>;
|
|
24
23
|
|
|
25
24
|
export default meta;
|
|
26
25
|
|
|
27
|
-
type Story = StoryObj<typeof
|
|
26
|
+
type Story = StoryObj<typeof ResponsivePanel>;
|
|
28
27
|
|
|
29
28
|
export const Image: Story = {
|
|
30
29
|
args: {
|
|
@@ -4,25 +4,25 @@
|
|
|
4
4
|
|
|
5
5
|
import React, { type PropsWithChildren } from 'react';
|
|
6
6
|
|
|
7
|
-
import { mx } from '@dxos/
|
|
7
|
+
import { mx } from '@dxos/ui-theme';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* A container component that maintains the child's aspect ratio while centering its content.
|
|
11
11
|
* The container will scale to fit within its parent's bounds while preserving the aspect ratio.
|
|
12
12
|
*
|
|
13
13
|
* @example
|
|
14
|
-
* <
|
|
14
|
+
* <ResponsivePanel>
|
|
15
15
|
* <VideoObject />
|
|
16
|
-
* </
|
|
16
|
+
* </ResponsivePanel>
|
|
17
17
|
*/
|
|
18
|
-
export const
|
|
18
|
+
export const ResponsivePanel = ({ children }: PropsWithChildren) => {
|
|
19
19
|
return (
|
|
20
20
|
// Outer container that takes full size of parent.
|
|
21
|
-
<div role='none' className='relative flex
|
|
21
|
+
<div role='none' className='dx-expander relative flex'>
|
|
22
22
|
{/* Absolute positioning layer for centering content. */}
|
|
23
23
|
<div role='none' className='absolute inset-0 flex justify-center items-center'>
|
|
24
24
|
{/* Content container that maintains given aspect ratio and proper scaling. */}
|
|
25
|
-
<div role='none' className={mx('max-
|
|
25
|
+
<div role='none' className={mx('max-h-full max-w-full w-auto h-auto aspect-video')}>
|
|
26
26
|
{children}
|
|
27
27
|
</div>
|
|
28
28
|
</div>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
|
+
|
|
7
|
+
import { withLayout, withTheme } from '@dxos/react-ui/testing';
|
|
8
|
+
|
|
9
|
+
import { translations } from '../../translations';
|
|
10
|
+
import { ThreadSettings } from './ThreadSettings';
|
|
11
|
+
|
|
12
|
+
const meta = {
|
|
13
|
+
title: 'plugins/plugin-thread/components/ThreadSettings',
|
|
14
|
+
component: ThreadSettings,
|
|
15
|
+
tags: ['settings'],
|
|
16
|
+
decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
|
|
17
|
+
parameters: {
|
|
18
|
+
layout: 'fullscreen',
|
|
19
|
+
translations,
|
|
20
|
+
},
|
|
21
|
+
} satisfies Meta<typeof ThreadSettings>;
|
|
22
|
+
|
|
23
|
+
export default meta;
|
|
24
|
+
|
|
25
|
+
type Story = StoryObj<typeof meta>;
|
|
26
|
+
|
|
27
|
+
export const Default: Story = {
|
|
28
|
+
args: {
|
|
29
|
+
settings: {},
|
|
30
|
+
},
|
|
31
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import React from 'react';
|
|
6
|
+
|
|
7
|
+
import { type AppSurface } from '@dxos/app-toolkit/ui';
|
|
8
|
+
import { useTranslation } from '@dxos/react-ui';
|
|
9
|
+
import { Settings as SettingsForm } from '@dxos/react-ui-form';
|
|
10
|
+
|
|
11
|
+
import { meta } from '#meta';
|
|
12
|
+
import { type Settings } from '#types';
|
|
13
|
+
|
|
14
|
+
export type ThreadSettingsProps = AppSurface.SettingsArticleProps<Settings.Settings>;
|
|
15
|
+
|
|
16
|
+
// TODO(burdon): Settings.
|
|
17
|
+
export const ThreadSettings = ({ settings: _settings }: ThreadSettingsProps) => {
|
|
18
|
+
const { t: _t } = useTranslation(meta.id);
|
|
19
|
+
return <SettingsForm.Viewport></SettingsForm.Viewport>;
|
|
20
|
+
};
|
package/src/components/index.ts
CHANGED
|
@@ -2,17 +2,10 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { lazy } from 'react';
|
|
5
|
+
import { type ComponentType, lazy } from 'react';
|
|
6
6
|
|
|
7
|
-
// TODO(wittjosiah): Suspense boundary for sidebar?
|
|
8
7
|
export * from './Call';
|
|
9
|
-
export * from './
|
|
10
|
-
export * from './
|
|
11
|
-
export * from './CommentsContainer';
|
|
12
|
-
export * from './CommentsThreadContainer';
|
|
13
|
-
export * from './MessageContainer';
|
|
14
|
-
export * from './ThreadCompanion';
|
|
15
|
-
export * from './ThreadSettings';
|
|
8
|
+
export * from './CommentsPanel';
|
|
9
|
+
export * from './MessagePanel';
|
|
16
10
|
|
|
17
|
-
export const
|
|
18
|
-
export const ChatContainer = lazy(() => import('./ChatContainer'));
|
|
11
|
+
export const ThreadSettings: ComponentType<any> = lazy(() => import('./ThreadSettings'));
|
|
@@ -10,8 +10,9 @@ import { JsonView, Panel } from '@dxos/devtools';
|
|
|
10
10
|
import { log } from '@dxos/log';
|
|
11
11
|
import { IconButton, Input, type ThemedClassName, useTranslation } from '@dxos/react-ui';
|
|
12
12
|
|
|
13
|
-
import {
|
|
14
|
-
|
|
13
|
+
import { meta } from '#meta';
|
|
14
|
+
|
|
15
|
+
import { type EncodedTrackName, type GlobalState } from '../../calls';
|
|
15
16
|
|
|
16
17
|
export type CallDebugPanelProps = ThemedClassName<{ state?: GlobalState }>;
|
|
17
18
|
|
|
@@ -70,21 +71,21 @@ export const CallDebugPanel = ({ state }: CallDebugPanelProps) => {
|
|
|
70
71
|
icon='ph--video-conference--regular'
|
|
71
72
|
open={open}
|
|
72
73
|
onToggle={handleToggle}
|
|
73
|
-
title={t('meeting
|
|
74
|
+
title={t('meeting-status.title')}
|
|
74
75
|
info={<div className='flex items-center gap-2'> {state?.call.joined ? 'Active' : 'Inactive'}</div>}
|
|
75
76
|
maxHeight={0}
|
|
76
77
|
>
|
|
77
|
-
<div className='flex flex-col
|
|
78
|
+
<div className='flex flex-col w-full text-xs'>
|
|
78
79
|
<div className='flex items-center gap-2 items-center'>
|
|
79
80
|
<Input.Root>
|
|
80
81
|
<Input.Switch checked={showDetailedWebRTCStats} onCheckedChange={handleShowDetailedWebRTCStats} />
|
|
81
|
-
<Input.Label>{t('show
|
|
82
|
+
<Input.Label>{t('show-webrtc-stats.title')}</Input.Label>
|
|
82
83
|
</Input.Root>
|
|
83
84
|
</div>
|
|
84
85
|
<div className='flex items-center gap-2 items-center'>
|
|
85
86
|
<Input.Root>
|
|
86
87
|
<Input.Switch checked={showServiceHistory} onCheckedChange={handleToggleServiceHistory} />
|
|
87
|
-
<Input.Label>{t('show
|
|
88
|
+
<Input.Label>{t('show-calls-history.title')}</Input.Label>
|
|
88
89
|
</Input.Root>
|
|
89
90
|
</div>
|
|
90
91
|
<div className='flex items-center gap-2 items-center'>
|
|
@@ -158,7 +159,7 @@ export type TableProps = {
|
|
|
158
159
|
|
|
159
160
|
export const Table = ({ rows }: TableProps) => {
|
|
160
161
|
return (
|
|
161
|
-
<div className='
|
|
162
|
+
<div className='w-full text-xs font-mono'>
|
|
162
163
|
{rows.map(([prefix, label, value, unit], i) => (
|
|
163
164
|
<div key={i} className='grid grid-cols-[3fr_1fr_1fr_1fr]'>
|
|
164
165
|
<div className='p-1'>{prefix}</div>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2024 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { useAtomValue } from '@effect-atom/atom-react';
|
|
6
|
+
import React from 'react';
|
|
7
|
+
|
|
8
|
+
import { useCapability } from '@dxos/app-framework/ui';
|
|
9
|
+
|
|
10
|
+
import { ThreadCapabilities } from '#types';
|
|
11
|
+
|
|
12
|
+
import ChannelContainer from '../ChannelContainer';
|
|
13
|
+
|
|
14
|
+
export const CallSidebar = () => {
|
|
15
|
+
const call = useCapability(ThreadCapabilities.CallManager);
|
|
16
|
+
const roomId = useAtomValue(call.roomIdAtom);
|
|
17
|
+
return <ChannelContainer subject={undefined} attendableId={roomId ?? ''} roomId={roomId} role='article' />;
|
|
18
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
|
+
import React from 'react';
|
|
7
|
+
|
|
8
|
+
import { Capability } from '@dxos/app-framework';
|
|
9
|
+
import { withPluginManager } from '@dxos/app-framework/testing';
|
|
10
|
+
import { AppCapabilities } from '@dxos/app-toolkit';
|
|
11
|
+
import { Query, useDatabase, useQuery } from '@dxos/react-client/echo';
|
|
12
|
+
import { withLayout, withTheme, Loading } from '@dxos/react-ui/testing';
|
|
13
|
+
import { Message, Thread } from '@dxos/types';
|
|
14
|
+
|
|
15
|
+
import { createThreadPlugins } from '#testing';
|
|
16
|
+
import { Channel } from '#types';
|
|
17
|
+
|
|
18
|
+
import { translations } from '../../translations';
|
|
19
|
+
import { ChannelContainer, type ChannelContainerProps } from './ChannelContainer';
|
|
20
|
+
|
|
21
|
+
// TODO(wittjosiah): Channel doesn't render full height.
|
|
22
|
+
const DefaultStory = ({ roomId }: ChannelContainerProps) => {
|
|
23
|
+
const db = useDatabase();
|
|
24
|
+
const [channel] = useQuery(db, Query.type(Channel.Channel));
|
|
25
|
+
if (!channel) {
|
|
26
|
+
return <Loading data={{ db: !!db, channel: !!channel }} />;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return <ChannelContainer subject={channel} attendableId='story' roomId={roomId} role='article' />;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const meta = {
|
|
33
|
+
title: 'plugins/plugin-thread/containers/ChannelContainer',
|
|
34
|
+
component: ChannelContainer,
|
|
35
|
+
render: DefaultStory,
|
|
36
|
+
decorators: [
|
|
37
|
+
withTheme(),
|
|
38
|
+
withLayout({ layout: 'column' }),
|
|
39
|
+
withPluginManager({
|
|
40
|
+
plugins: [...(await createThreadPlugins())],
|
|
41
|
+
capabilities: [Capability.contributes(AppCapabilities.Schema, [Channel.Channel, Thread.Thread, Message.Message])],
|
|
42
|
+
}),
|
|
43
|
+
],
|
|
44
|
+
parameters: {
|
|
45
|
+
translations,
|
|
46
|
+
},
|
|
47
|
+
} satisfies Meta<typeof ChannelContainer>;
|
|
48
|
+
|
|
49
|
+
export default meta;
|
|
50
|
+
|
|
51
|
+
type Story = StoryObj<typeof meta>;
|
|
52
|
+
|
|
53
|
+
export const Default: Story = {
|
|
54
|
+
args: {
|
|
55
|
+
// Fixed room for testing.
|
|
56
|
+
subject: undefined,
|
|
57
|
+
attendableId: 'story',
|
|
58
|
+
role: 'article',
|
|
59
|
+
roomId: '04a1d1911703b8e929d0649021a965',
|
|
60
|
+
},
|
|
61
|
+
};
|