@dxos/plugin-thread 0.8.4-main.69d29f4 → 0.8.4-main.6fa680abb7
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/CallDebugPanel-BO3SLD4E.mjs +182 -0
- package/dist/lib/browser/CallDebugPanel-BO3SLD4E.mjs.map +7 -0
- package/dist/lib/browser/CallSidebar-WGAPDBFY.mjs +36 -0
- package/dist/lib/browser/CallSidebar-WGAPDBFY.mjs.map +7 -0
- package/dist/lib/browser/ChannelContainer-M7YGXCQ3.mjs +17 -0
- package/dist/lib/browser/ChannelContainer-M7YGXCQ3.mjs.map +7 -0
- package/dist/lib/browser/ChatContainer-DZ2JIT7Y.mjs +18 -0
- package/dist/lib/browser/ChatContainer-DZ2JIT7Y.mjs.map +7 -0
- package/dist/lib/browser/ThreadCompanion-UUOD5N66.mjs +207 -0
- package/dist/lib/browser/ThreadCompanion-UUOD5N66.mjs.map +7 -0
- package/dist/lib/browser/ThreadSettings-VL3HBE62.mjs +20 -0
- package/dist/lib/browser/ThreadSettings-VL3HBE62.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-7C2QW32W.mjs → app-graph-builder-MOGFPE3O.mjs} +25 -24
- package/dist/lib/browser/app-graph-builder-MOGFPE3O.mjs.map +7 -0
- package/dist/lib/browser/blueprint-definition-UJ4QH3LV.mjs +17 -0
- package/dist/lib/browser/blueprint-definition-UJ4QH3LV.mjs.map +7 -0
- package/dist/lib/browser/blueprints/index.mjs +3 -3
- package/dist/lib/browser/{call-manager-4P536YNX.mjs → call-manager-SBJYUKXN.mjs} +5 -4
- package/dist/lib/browser/call-manager-SBJYUKXN.mjs.map +7 -0
- package/dist/lib/browser/chunk-2M2HV5K4.mjs +35 -0
- package/dist/lib/browser/chunk-2M2HV5K4.mjs.map +7 -0
- package/dist/lib/browser/{chunk-2FIHSX35.mjs → chunk-A4VH2D5C.mjs} +30 -46
- package/dist/lib/browser/chunk-A4VH2D5C.mjs.map +7 -0
- package/dist/lib/browser/chunk-BWXT2OVT.mjs +1094 -0
- package/dist/lib/browser/chunk-BWXT2OVT.mjs.map +7 -0
- package/dist/lib/browser/{chunk-DLO2G3DM.mjs → chunk-HDLDMR54.mjs} +2 -2
- package/dist/lib/browser/chunk-HDLDMR54.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ZFLSTQSE.mjs → chunk-J75MXJZN.mjs} +26 -27
- package/dist/lib/browser/chunk-J75MXJZN.mjs.map +7 -0
- package/dist/lib/browser/{markdown-QMJLRR6R.mjs → chunk-MJXZ26FR.mjs} +3 -78
- package/dist/lib/browser/chunk-MJXZ26FR.mjs.map +7 -0
- package/dist/lib/browser/chunk-MQJNILMF.mjs +127 -0
- package/dist/lib/browser/chunk-MQJNILMF.mjs.map +7 -0
- package/dist/lib/browser/chunk-QVJO3VJ4.mjs +20 -0
- package/dist/lib/browser/chunk-QVJO3VJ4.mjs.map +7 -0
- package/dist/lib/browser/chunk-SRVNHDO7.mjs +221 -0
- package/dist/lib/browser/chunk-SRVNHDO7.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +60 -80
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/markdown-EG46BLO3.mjs +83 -0
- package/dist/lib/browser/markdown-EG46BLO3.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{operation-resolver-T63EP5TY.mjs → operation-resolver-ZZAG4PJ2.mjs} +22 -29
- package/dist/lib/browser/operation-resolver-ZZAG4PJ2.mjs.map +7 -0
- package/dist/lib/browser/{react-root-56MJI77R.mjs → react-root-5MXZ6Y3J.mjs} +8 -6
- package/dist/lib/browser/react-root-5MXZ6Y3J.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-DMBHQOXJ.mjs → react-surface-J4X3HUUD.mjs} +40 -35
- package/dist/lib/browser/react-surface-J4X3HUUD.mjs.map +7 -0
- package/dist/lib/browser/{settings-WZMJMML3.mjs → settings-E6YJEDEZ.mjs} +8 -5
- package/dist/lib/browser/settings-E6YJEDEZ.mjs.map +7 -0
- package/dist/lib/browser/{state-SJR2GL5G.mjs → state-G35LOVYP.mjs} +3 -2
- package/dist/lib/browser/types/index.mjs +2 -1
- package/dist/lib/node-esm/CallDebugPanel-7OIL5FVT.mjs +183 -0
- package/dist/lib/node-esm/CallDebugPanel-7OIL5FVT.mjs.map +7 -0
- package/dist/lib/node-esm/CallSidebar-QDM234XX.mjs +37 -0
- package/dist/lib/node-esm/CallSidebar-QDM234XX.mjs.map +7 -0
- package/dist/lib/node-esm/ChannelContainer-AFBKQJZU.mjs +18 -0
- package/dist/lib/node-esm/ChannelContainer-AFBKQJZU.mjs.map +7 -0
- package/dist/lib/node-esm/ChatContainer-ZQF6LTM6.mjs +19 -0
- package/dist/lib/node-esm/ChatContainer-ZQF6LTM6.mjs.map +7 -0
- package/dist/lib/node-esm/ThreadCompanion-SNRNEPWT.mjs +208 -0
- package/dist/lib/node-esm/ThreadCompanion-SNRNEPWT.mjs.map +7 -0
- package/dist/lib/node-esm/ThreadSettings-TCZMYH3J.mjs +21 -0
- package/dist/lib/node-esm/ThreadSettings-TCZMYH3J.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-JCSVFRVY.mjs → app-graph-builder-BIAIWS2E.mjs} +25 -24
- package/dist/lib/node-esm/app-graph-builder-BIAIWS2E.mjs.map +7 -0
- package/dist/lib/node-esm/{blueprint-definition-MZZXXL37.mjs → blueprint-definition-SABUBK23.mjs} +6 -6
- package/dist/lib/node-esm/blueprint-definition-SABUBK23.mjs.map +7 -0
- package/dist/lib/node-esm/blueprints/index.mjs +3 -3
- package/dist/lib/node-esm/{call-manager-FMLRR5S5.mjs → call-manager-5JYDNYEA.mjs} +5 -4
- package/dist/lib/node-esm/call-manager-5JYDNYEA.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-4H4UJROP.mjs +128 -0
- package/dist/lib/node-esm/chunk-4H4UJROP.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-7CNPVAGT.mjs +222 -0
- package/dist/lib/node-esm/chunk-7CNPVAGT.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-A3SWGVF3.mjs +37 -0
- package/dist/lib/node-esm/chunk-A3SWGVF3.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-DFXKA3BF.mjs +1095 -0
- package/dist/lib/node-esm/chunk-DFXKA3BF.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-WMWUXWAS.mjs → chunk-HT4D266X.mjs} +30 -46
- package/dist/lib/node-esm/chunk-HT4D266X.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-N2T5KLKB.mjs +22 -0
- package/dist/lib/node-esm/chunk-N2T5KLKB.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-AQHPP6ZX.mjs → chunk-NDSI2G7B.mjs} +26 -26
- package/dist/lib/node-esm/chunk-NDSI2G7B.mjs.map +7 -0
- package/dist/lib/node-esm/{markdown-L6LLQLIN.mjs → chunk-SV74KS5H.mjs} +3 -78
- package/dist/lib/node-esm/chunk-SV74KS5H.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-KRBZBJRI.mjs → chunk-YN2Y7GPW.mjs} +2 -2
- package/dist/lib/node-esm/chunk-YN2Y7GPW.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +60 -80
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/markdown-YUI4GVUF.mjs +84 -0
- package/dist/lib/node-esm/markdown-YUI4GVUF.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{operation-resolver-G6GZPBRP.mjs → operation-resolver-YJMVCJEM.mjs} +22 -29
- package/dist/lib/node-esm/operation-resolver-YJMVCJEM.mjs.map +7 -0
- package/dist/lib/node-esm/{react-root-V4W4X5GL.mjs → react-root-I3D36WIQ.mjs} +8 -6
- package/dist/lib/node-esm/react-root-I3D36WIQ.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-ELDSTUA3.mjs → react-surface-3OCF55AK.mjs} +40 -35
- package/dist/lib/node-esm/react-surface-3OCF55AK.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-37CO3SNR.mjs → settings-2FQ6CDHD.mjs} +8 -5
- package/dist/lib/node-esm/settings-2FQ6CDHD.mjs.map +7 -0
- package/dist/lib/node-esm/{state-5R3TZJQE.mjs → state-ZQ2Y3R2X.mjs} +3 -2
- package/dist/lib/{browser/state-SJR2GL5G.mjs.map → node-esm/state-ZQ2Y3R2X.mjs.map} +1 -1
- package/dist/lib/node-esm/types/index.mjs +2 -1
- package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
- package/dist/types/src/blueprints/index.d.ts +1 -1
- package/dist/types/src/blueprints/index.d.ts.map +1 -1
- package/dist/types/src/blueprints/thread-blueprint.d.ts +3 -20
- package/dist/types/src/blueprints/thread-blueprint.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +3 -6
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts +1 -1
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/call-manager/call-manager.d.ts +1 -1
- package/dist/types/src/capabilities/call-manager/call-manager.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +0 -1
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/markdown/markdown.d.ts +1 -1
- package/dist/types/src/capabilities/markdown/markdown.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-resolver/index.d.ts +1 -1
- package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +2 -2
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-root/react-root.d.ts +1 -1
- package/dist/types/src/capabilities/react-root/react-root.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings/index.d.ts +1 -1
- package/dist/types/src/capabilities/settings/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings/settings.d.ts +3 -2
- package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -1
- package/dist/types/src/capabilities/state/state.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/{Comments.stories.d.ts → CommentsPanel/CommentsPanel.stories.d.ts} +4 -2
- 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/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/ResponsiveGrid/ResponsiveGrid.stories.d.ts +2 -0
- 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/{ResponsiveContainer.stories.d.ts → ResponsivePanel.stories.d.ts} +5 -3
- 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/index.d.ts +2 -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 +3 -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 +3 -0
- package/dist/types/src/containers/CallSidebar/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/ChannelContainer}/ChannelContainer.d.ts +3 -4
- package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts.map +1 -0
- package/dist/types/src/{components → containers/ChannelContainer}/ChannelContainer.stories.d.ts +4 -2
- package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts.map +1 -0
- package/dist/types/src/containers/ChannelContainer/index.d.ts +3 -0
- package/dist/types/src/containers/ChannelContainer/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/ChatContainer}/ChatContainer.d.ts +4 -5
- package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +1 -0
- package/dist/types/src/{components/Chat.stories.d.ts → containers/ChatContainer/ChatContainer.stories.d.ts} +4 -2
- 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 +6 -0
- package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts.map +1 -0
- package/dist/types/src/containers/ThreadCompanion/index.d.ts +3 -0
- package/dist/types/src/containers/ThreadCompanion/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/ThreadSettings}/ThreadSettings.d.ts +1 -1
- package/dist/types/src/containers/ThreadSettings/ThreadSettings.d.ts.map +1 -0
- package/dist/types/src/containers/ThreadSettings/index.d.ts +3 -0
- package/dist/types/src/containers/ThreadSettings/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +8 -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/functions/create-proposals.d.ts +8 -1
- package/dist/types/src/functions/create-proposals.d.ts.map +1 -1
- package/dist/types/src/functions/index.d.ts +13 -1
- package/dist/types/src/functions/index.d.ts.map +1 -1
- package/dist/types/src/hooks/analytics.d.ts.map +1 -1
- package/dist/types/src/{components/testing.d.ts → testing/data.d.ts} +1 -1
- package/dist/types/src/testing/data.d.ts.map +1 -0
- package/dist/types/src/testing/stories.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +2 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Channel.d.ts +25 -9
- package/dist/types/src/types/Channel.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +182 -105
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +67 -65
- package/src/ThreadPlugin.tsx +29 -46
- package/src/blueprints/index.ts +1 -1
- package/src/blueprints/thread-blueprint.ts +14 -6
- package/src/calls-service.stories.tsx +2 -2
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +20 -18
- package/src/capabilities/blueprint-definition/blueprint-definition.ts +6 -12
- package/src/capabilities/call-manager/call-manager.ts +2 -2
- package/src/capabilities/index.ts +0 -1
- package/src/capabilities/markdown/markdown.ts +11 -13
- package/src/capabilities/operation-resolver/operation-resolver.ts +13 -21
- package/src/capabilities/react-root/react-root.tsx +2 -2
- package/src/capabilities/react-surface/react-surface.tsx +28 -24
- package/src/capabilities/settings/settings.ts +3 -2
- package/src/components/Call/Call.tsx +1 -1
- package/src/components/Call/Toolbar.tsx +6 -7
- package/src/components/{Comments.stories.tsx → CommentsPanel/CommentsPanel.stories.tsx} +12 -12
- package/src/components/{CommentsContainer.tsx → CommentsPanel/CommentsPanel.tsx} +14 -13
- package/src/components/{CommentsThreadContainer.tsx → CommentsPanel/CommentsThread.tsx} +12 -13
- package/src/components/CommentsPanel/index.ts +6 -0
- package/src/components/Lobby/Lobby.tsx +4 -4
- package/src/components/Media/VideoObject.stories.tsx +6 -6
- package/src/components/Media/VideoObject.tsx +1 -1
- package/src/components/{MessageContainer.tsx → MessagePanel/MessagePanel.tsx} +16 -16
- package/src/components/MessagePanel/index.ts +5 -0
- package/src/components/Participant/Participant.tsx +1 -1
- package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +4 -4
- package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +8 -8
- package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +5 -5
- package/src/components/ResponsiveGrid/{ResponsiveContainer.stories.tsx → ResponsivePanel.stories.tsx} +7 -7
- package/src/components/ResponsiveGrid/{ResponsiveContainer.tsx → ResponsivePanel.tsx} +5 -5
- package/src/components/ResponsiveGrid/index.ts +1 -1
- package/src/components/index.ts +2 -10
- package/src/{components → containers/CallDebugPanel}/CallDebugPanel.tsx +4 -4
- package/src/containers/CallDebugPanel/index.ts +7 -0
- package/src/{components → containers/CallSidebar}/CallSidebar.tsx +4 -7
- package/src/containers/CallSidebar/index.ts +7 -0
- package/src/{components → containers/ChannelContainer}/ChannelContainer.stories.tsx +11 -13
- package/src/{components → containers/ChannelContainer}/ChannelContainer.tsx +58 -43
- package/src/containers/ChannelContainer/index.ts +7 -0
- package/src/{components/Chat.stories.tsx → containers/ChatContainer/ChatContainer.stories.tsx} +20 -18
- package/src/{components → containers/ChatContainer}/ChatContainer.tsx +27 -37
- package/src/containers/ChatContainer/index.ts +8 -0
- package/src/{components → containers/ThreadCompanion}/ThreadCompanion.tsx +50 -44
- package/src/containers/ThreadCompanion/index.ts +7 -0
- package/src/{components → containers/ThreadSettings}/ThreadSettings.tsx +5 -4
- package/src/containers/ThreadSettings/index.ts +7 -0
- package/src/containers/index.ts +12 -0
- package/src/{components/command-extension.ts → extensions/command.ts} +1 -1
- package/src/extensions/index.ts +1 -0
- package/src/functions/create-proposals.ts +10 -10
- package/src/functions/index.ts +5 -1
- package/src/hooks/analytics.ts +2 -1
- package/src/meta.ts +2 -2
- package/src/testing/stories.ts +2 -1
- package/src/translations.ts +1 -0
- package/src/types/Channel.ts +5 -3
- package/src/types/capabilities.ts +5 -5
- package/src/types/types.ts +18 -18
- package/dist/lib/browser/app-graph-builder-7C2QW32W.mjs.map +0 -7
- package/dist/lib/browser/blueprint-definition-UQ63QKQG.mjs +0 -17
- package/dist/lib/browser/blueprint-definition-UQ63QKQG.mjs.map +0 -7
- package/dist/lib/browser/call-manager-4P536YNX.mjs.map +0 -7
- package/dist/lib/browser/chunk-2FIHSX35.mjs.map +0 -7
- package/dist/lib/browser/chunk-DLO2G3DM.mjs.map +0 -7
- package/dist/lib/browser/chunk-YSHXWAL3.mjs +0 -1815
- package/dist/lib/browser/chunk-YSHXWAL3.mjs.map +0 -7
- package/dist/lib/browser/chunk-ZFLSTQSE.mjs.map +0 -7
- package/dist/lib/browser/markdown-QMJLRR6R.mjs.map +0 -7
- package/dist/lib/browser/operation-resolver-T63EP5TY.mjs.map +0 -7
- package/dist/lib/browser/react-root-56MJI77R.mjs.map +0 -7
- package/dist/lib/browser/react-surface-DMBHQOXJ.mjs.map +0 -7
- package/dist/lib/browser/repair-6OZ75AUU.mjs +0 -38
- package/dist/lib/browser/repair-6OZ75AUU.mjs.map +0 -7
- package/dist/lib/browser/settings-WZMJMML3.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-JCSVFRVY.mjs.map +0 -7
- package/dist/lib/node-esm/blueprint-definition-MZZXXL37.mjs.map +0 -7
- package/dist/lib/node-esm/call-manager-FMLRR5S5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-7XQLXMX7.mjs +0 -1816
- package/dist/lib/node-esm/chunk-7XQLXMX7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-AQHPP6ZX.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-KRBZBJRI.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-WMWUXWAS.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-L6LLQLIN.mjs.map +0 -7
- package/dist/lib/node-esm/operation-resolver-G6GZPBRP.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-V4W4X5GL.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-ELDSTUA3.mjs.map +0 -7
- package/dist/lib/node-esm/repair-6777EPOM.mjs +0 -39
- package/dist/lib/node-esm/repair-6777EPOM.mjs.map +0 -7
- package/dist/lib/node-esm/settings-37CO3SNR.mjs.map +0 -7
- package/dist/types/src/capabilities/repair/index.d.ts +0 -3
- package/dist/types/src/capabilities/repair/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/repair/repair.d.ts +0 -6
- package/dist/types/src/capabilities/repair/repair.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.map +0 -1
- package/dist/types/src/components/ChannelContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/Chat.stories.d.ts.map +0 -1
- package/dist/types/src/components/ChatContainer.d.ts.map +0 -1
- 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 -15
- 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.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.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/src/capabilities/repair/index.ts +0 -7
- package/src/capabilities/repair/repair.ts +0 -51
- /package/dist/lib/{node-esm/state-5R3TZJQE.mjs.map → browser/state-G35LOVYP.mjs.map} +0 -0
- /package/src/{components/testing.ts → testing/data.ts} +0 -0
|
@@ -5,44 +5,44 @@
|
|
|
5
5
|
import { EditorView } from '@codemirror/view';
|
|
6
6
|
import React, { forwardRef, useCallback, useEffect, useRef, useState } from 'react';
|
|
7
7
|
|
|
8
|
-
import { Surface } from '@dxos/app-framework/
|
|
8
|
+
import { Surface } from '@dxos/app-framework/ui';
|
|
9
9
|
import { type Obj, Ref } from '@dxos/echo';
|
|
10
10
|
import { useObject } from '@dxos/echo-react';
|
|
11
11
|
import { PublicKey } from '@dxos/react-client';
|
|
12
12
|
import { type SpaceMember } from '@dxos/react-client/echo';
|
|
13
13
|
import { type Identity, useIdentity } from '@dxos/react-client/halo';
|
|
14
14
|
import { IconButton, useOnTransition, useThemeContext, useTranslation } from '@dxos/react-ui';
|
|
15
|
+
import { Card } from '@dxos/react-ui';
|
|
15
16
|
import { useTextEditor } from '@dxos/react-ui-editor';
|
|
16
|
-
import { Card } from '@dxos/react-ui-mosaic';
|
|
17
17
|
import { MessageHeading, MessageRoot } from '@dxos/react-ui-thread';
|
|
18
18
|
import { type ContentBlock, type Message } from '@dxos/types';
|
|
19
19
|
import { createBasicExtensions, createThemeExtensions } from '@dxos/ui-editor';
|
|
20
20
|
import { hoverableControlItem, hoverableControls, hoverableFocusedWithinControls, mx } from '@dxos/ui-theme';
|
|
21
21
|
|
|
22
|
-
import { useOnEditAnalytics } from '
|
|
23
|
-
import { meta } from '
|
|
24
|
-
import { getMessageMetadata } from '
|
|
22
|
+
import { useOnEditAnalytics } from '../../hooks';
|
|
23
|
+
import { meta } from '../../meta';
|
|
24
|
+
import { getMessageMetadata } from '../../util';
|
|
25
25
|
|
|
26
|
-
import { command } from '
|
|
26
|
+
import { command } from '../../extensions/command';
|
|
27
27
|
|
|
28
|
-
export const buttonGroupClassNames = 'flex flex-row items-center gap-0.5
|
|
29
|
-
export const buttonClassNames = '
|
|
28
|
+
export const buttonGroupClassNames = 'flex flex-row items-center gap-0.5 pe-2';
|
|
29
|
+
export const buttonClassNames = 'p-1! transition-opacity';
|
|
30
30
|
|
|
31
|
-
export type
|
|
32
|
-
message: Obj.
|
|
31
|
+
export type MessagePanelProps = {
|
|
32
|
+
message: Obj.OfShape<Message.Message> | Ref.Ref<Obj.OfShape<Message.Message>>;
|
|
33
33
|
members: SpaceMember[];
|
|
34
34
|
editable?: boolean;
|
|
35
35
|
onDelete?: (id: string) => void;
|
|
36
36
|
onAcceptProposal?: (id: string) => void;
|
|
37
37
|
};
|
|
38
38
|
|
|
39
|
-
export const
|
|
39
|
+
export const MessagePanel = ({
|
|
40
40
|
message: messageOrRef,
|
|
41
41
|
members,
|
|
42
42
|
editable = false,
|
|
43
43
|
onDelete,
|
|
44
44
|
onAcceptProposal,
|
|
45
|
-
}:
|
|
45
|
+
}: MessagePanelProps) => {
|
|
46
46
|
const { t } = useTranslation(meta.id);
|
|
47
47
|
const [message, updateMessage] = useObject(messageOrRef);
|
|
48
48
|
const identity = useIdentity();
|
|
@@ -187,12 +187,12 @@ const TextboxBlock = ({
|
|
|
187
187
|
editing && view?.focus();
|
|
188
188
|
}, [editing, view]);
|
|
189
189
|
|
|
190
|
-
return <div role='none' ref={parentRef} className='
|
|
190
|
+
return <div role='none' ref={parentRef} className='me-4' {...focusAttributes} />;
|
|
191
191
|
};
|
|
192
192
|
|
|
193
193
|
const ProposalBlock = ({ block }: { block: ContentBlock.Proposal }) => {
|
|
194
194
|
return (
|
|
195
|
-
<div role='none' className='
|
|
195
|
+
<div role='none' className='me-4 italic'>
|
|
196
196
|
{block.text}
|
|
197
197
|
</div>
|
|
198
198
|
);
|
|
@@ -207,10 +207,10 @@ const MessageBlockObjectTile = forwardRef<HTMLDivElement, { subject: Obj.Unknown
|
|
|
207
207
|
|
|
208
208
|
return (
|
|
209
209
|
<Card.Root
|
|
210
|
-
className={mx('grid col-span-3
|
|
210
|
+
className={mx('grid col-span-3 py-1 pr-4', hoverableControls, hoverableFocusedWithinControls)}
|
|
211
211
|
ref={forwardedRef}
|
|
212
212
|
>
|
|
213
|
-
<Surface role='card
|
|
213
|
+
<Surface.Surface role='card--content' limit={1} data={{ subject }} fallback={title} />
|
|
214
214
|
</Card.Root>
|
|
215
215
|
);
|
|
216
216
|
});
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { useAtomValue } from '@effect-atom/atom-react';
|
|
6
6
|
import React, { memo, useMemo } from 'react';
|
|
7
7
|
|
|
8
|
-
import { useCapability } from '@dxos/app-framework/
|
|
8
|
+
import { useCapability } from '@dxos/app-framework/ui';
|
|
9
9
|
|
|
10
10
|
import { type EncodedTrackName, type UserState } from '../../calls';
|
|
11
11
|
import { ThreadCapabilities } from '../../types';
|
|
@@ -6,7 +6,7 @@ import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
|
6
6
|
import React, { useEffect, useState } from 'react';
|
|
7
7
|
|
|
8
8
|
import { faker } from '@dxos/random';
|
|
9
|
-
import { withTheme } from '@dxos/react-ui/testing';
|
|
9
|
+
import { withLayout, withTheme } from '@dxos/react-ui/testing';
|
|
10
10
|
|
|
11
11
|
import { translations } from '../../translations';
|
|
12
12
|
|
|
@@ -41,7 +41,7 @@ const TestCell = ({ item, ...props }: ResponsiveGridItemProps<TestItem>) => {
|
|
|
41
41
|
{item.type === 'image' && <img className='aspect-video object-contain' src={item.imageUrl} />}
|
|
42
42
|
{item.type === 'video' && (
|
|
43
43
|
<video
|
|
44
|
-
className='
|
|
44
|
+
className='w-full aspect-video object-cover rounded-md'
|
|
45
45
|
src={item.videoUrl}
|
|
46
46
|
playsInline
|
|
47
47
|
autoPlay
|
|
@@ -89,10 +89,10 @@ const DefaultStory = (props: StoryProps) => {
|
|
|
89
89
|
};
|
|
90
90
|
|
|
91
91
|
const meta = {
|
|
92
|
-
title: 'plugins/plugin-thread/ResponsiveGrid',
|
|
92
|
+
title: 'plugins/plugin-thread/components/ResponsiveGrid',
|
|
93
93
|
component: ResponsiveGrid as any,
|
|
94
94
|
render: DefaultStory,
|
|
95
|
-
decorators: [withTheme],
|
|
95
|
+
decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
|
|
96
96
|
parameters: {
|
|
97
97
|
layout: 'fullscreen',
|
|
98
98
|
translations,
|
|
@@ -10,7 +10,7 @@ import { type ThemedClassName } from '@dxos/react-ui';
|
|
|
10
10
|
import { type Size } from '@dxos/react-ui-dnd';
|
|
11
11
|
import { mx } from '@dxos/ui-theme';
|
|
12
12
|
|
|
13
|
-
import {
|
|
13
|
+
import { ResponsivePanel } from './ResponsivePanel';
|
|
14
14
|
import { type ResponsiveGridItemProps } from './ResponsiveGridItem';
|
|
15
15
|
|
|
16
16
|
const ASPECT_RATIO = 16 / 9;
|
|
@@ -18,7 +18,7 @@ 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('relative
|
|
139
|
+
<div ref={containerRef} className={mx('relative w-full h-full', 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
|
|
|
@@ -76,7 +76,7 @@ export const ResponsiveGridItem = <T extends object = any>({
|
|
|
76
76
|
return (
|
|
77
77
|
<div
|
|
78
78
|
className={mx(
|
|
79
|
-
'relative
|
|
79
|
+
'relative w-full h-full 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,7 +89,7 @@ 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}
|
|
@@ -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,26 @@
|
|
|
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
12
|
|
|
13
|
-
import {
|
|
13
|
+
import { ResponsivePanel } from './ResponsivePanel';
|
|
14
14
|
|
|
15
15
|
const meta = {
|
|
16
|
-
title: 'plugins/plugin-thread/
|
|
17
|
-
component:
|
|
18
|
-
decorators: [withTheme],
|
|
16
|
+
title: 'plugins/plugin-thread/components/ResponsivePanel',
|
|
17
|
+
component: ResponsivePanel,
|
|
18
|
+
decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
|
|
19
19
|
parameters: {
|
|
20
20
|
layout: 'fullscreen',
|
|
21
21
|
translations,
|
|
22
22
|
},
|
|
23
|
-
} satisfies Meta<typeof
|
|
23
|
+
} satisfies Meta<typeof ResponsivePanel>;
|
|
24
24
|
|
|
25
25
|
export default meta;
|
|
26
26
|
|
|
27
|
-
type Story = StoryObj<typeof
|
|
27
|
+
type Story = StoryObj<typeof ResponsivePanel>;
|
|
28
28
|
|
|
29
29
|
export const Image: Story = {
|
|
30
30
|
args: {
|
|
@@ -11,18 +11,18 @@ import { mx } from '@dxos/ui-theme';
|
|
|
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='relative flex w-full h-full'>
|
|
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>
|
package/src/components/index.ts
CHANGED
|
@@ -3,13 +3,5 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
export * from './Call';
|
|
6
|
-
export * from './
|
|
7
|
-
export * from './
|
|
8
|
-
export * from './CommentsContainer';
|
|
9
|
-
export * from './CommentsThreadContainer';
|
|
10
|
-
export * from './MessageContainer';
|
|
11
|
-
export * from './ThreadCompanion';
|
|
12
|
-
export * from './ThreadSettings';
|
|
13
|
-
|
|
14
|
-
export { ChannelContainer } from './ChannelContainer';
|
|
15
|
-
export { ChatContainer } from './ChatContainer';
|
|
6
|
+
export * from './CommentsPanel';
|
|
7
|
+
export * from './MessagePanel';
|
|
@@ -10,8 +10,8 @@ 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 { type EncodedTrackName, type GlobalState } from '
|
|
14
|
-
import { meta } from '
|
|
13
|
+
import { type EncodedTrackName, type GlobalState } from '../../calls';
|
|
14
|
+
import { meta } from '../../meta';
|
|
15
15
|
|
|
16
16
|
export type CallDebugPanelProps = ThemedClassName<{ state?: GlobalState }>;
|
|
17
17
|
|
|
@@ -74,7 +74,7 @@ export const CallDebugPanel = ({ state }: CallDebugPanelProps) => {
|
|
|
74
74
|
info={<div className='flex items-center gap-2'> {state?.call.joined ? 'Active' : 'Inactive'}</div>}
|
|
75
75
|
maxHeight={0}
|
|
76
76
|
>
|
|
77
|
-
<div className='flex flex-col
|
|
77
|
+
<div className='flex flex-col w-full text-xs'>
|
|
78
78
|
<div className='flex items-center gap-2 items-center'>
|
|
79
79
|
<Input.Root>
|
|
80
80
|
<Input.Switch checked={showDetailedWebRTCStats} onCheckedChange={handleShowDetailedWebRTCStats} />
|
|
@@ -158,7 +158,7 @@ export type TableProps = {
|
|
|
158
158
|
|
|
159
159
|
export const Table = ({ rows }: TableProps) => {
|
|
160
160
|
return (
|
|
161
|
-
<div className='
|
|
161
|
+
<div className='w-full text-xs font-mono'>
|
|
162
162
|
{rows.map(([prefix, label, value, unit], i) => (
|
|
163
163
|
<div key={i} className='grid grid-cols-[3fr_1fr_1fr_1fr]'>
|
|
164
164
|
<div className='p-1'>{prefix}</div>
|
|
@@ -5,16 +5,13 @@
|
|
|
5
5
|
import { useAtomValue } from '@effect-atom/atom-react';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
|
|
8
|
-
import { useCapability } from '@dxos/app-framework/
|
|
8
|
+
import { useCapability } from '@dxos/app-framework/ui';
|
|
9
9
|
|
|
10
|
-
import { ThreadCapabilities } from '
|
|
11
|
-
|
|
12
|
-
import { ChannelContainer } from './ChannelContainer';
|
|
10
|
+
import { ThreadCapabilities } from '../../types';
|
|
11
|
+
import ChannelContainer from '../ChannelContainer';
|
|
13
12
|
|
|
14
13
|
export const CallSidebar = () => {
|
|
15
14
|
const call = useCapability(ThreadCapabilities.CallManager);
|
|
16
15
|
const roomId = useAtomValue(call.roomIdAtom);
|
|
17
|
-
return <ChannelContainer subject={undefined} roomId={roomId} />;
|
|
16
|
+
return <ChannelContainer subject={undefined} attendableId={roomId ?? ''} roomId={roomId} />;
|
|
18
17
|
};
|
|
19
|
-
|
|
20
|
-
export default CallSidebar;
|
|
@@ -5,16 +5,16 @@
|
|
|
5
5
|
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
|
|
8
|
-
import { Capability
|
|
8
|
+
import { Capability } from '@dxos/app-framework';
|
|
9
9
|
import { withPluginManager } from '@dxos/app-framework/testing';
|
|
10
|
+
import { AppCapabilities } from '@dxos/app-toolkit';
|
|
10
11
|
import { Query, useDatabase, useQuery } from '@dxos/react-client/echo';
|
|
11
|
-
import { withLayout, withTheme } from '@dxos/react-ui/testing';
|
|
12
|
-
import { render } from '@dxos/storybook-utils';
|
|
12
|
+
import { withLayout, withTheme, Loading } from '@dxos/react-ui/testing';
|
|
13
13
|
import { Message, Thread } from '@dxos/types';
|
|
14
14
|
|
|
15
|
-
import { createThreadPlugins } from '
|
|
16
|
-
import { translations } from '
|
|
17
|
-
import { Channel } from '
|
|
15
|
+
import { createThreadPlugins } from '../../testing';
|
|
16
|
+
import { translations } from '../../translations';
|
|
17
|
+
import { Channel } from '../../types';
|
|
18
18
|
|
|
19
19
|
import { ChannelContainer, type ChannelContainerProps } from './ChannelContainer';
|
|
20
20
|
|
|
@@ -23,24 +23,22 @@ const DefaultStory = ({ roomId }: ChannelContainerProps) => {
|
|
|
23
23
|
const db = useDatabase();
|
|
24
24
|
const [channel] = useQuery(db, Query.type(Channel.Channel));
|
|
25
25
|
if (!channel) {
|
|
26
|
-
return
|
|
26
|
+
return <Loading data={{ db: !!db, channel: !!channel }} />;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
return <ChannelContainer subject={channel} roomId={roomId} />;
|
|
30
30
|
};
|
|
31
31
|
|
|
32
32
|
const meta = {
|
|
33
|
-
title: 'plugins/plugin-thread/ChannelContainer',
|
|
33
|
+
title: 'plugins/plugin-thread/containers/ChannelContainer',
|
|
34
34
|
component: ChannelContainer,
|
|
35
|
-
render:
|
|
35
|
+
render: DefaultStory,
|
|
36
36
|
decorators: [
|
|
37
|
-
withTheme,
|
|
37
|
+
withTheme(),
|
|
38
38
|
withLayout({ layout: 'column' }),
|
|
39
39
|
withPluginManager({
|
|
40
40
|
plugins: [...(await createThreadPlugins())],
|
|
41
|
-
capabilities: [
|
|
42
|
-
Capability.contributes(Common.Capability.Schema, [Channel.Channel, Thread.Thread, Message.Message]),
|
|
43
|
-
],
|
|
41
|
+
capabilities: [Capability.contributes(AppCapabilities.Schema, [Channel.Channel, Thread.Thread, Message.Message])],
|
|
44
42
|
}),
|
|
45
43
|
],
|
|
46
44
|
parameters: {
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
import { Atom, useAtomValue } from '@effect-atom/atom-react';
|
|
6
6
|
import React, { type ChangeEvent, useCallback, useEffect, useMemo, useState } from 'react';
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { useCapabilities, useCapability } from '@dxos/app-framework/ui';
|
|
9
|
+
import { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';
|
|
9
10
|
import { Context } from '@dxos/context';
|
|
10
11
|
import { failUndefined } from '@dxos/debug';
|
|
11
12
|
import { Obj } from '@dxos/echo';
|
|
@@ -13,18 +14,16 @@ import { log } from '@dxos/log';
|
|
|
13
14
|
import { useClient } from '@dxos/react-client';
|
|
14
15
|
import { getSpace } from '@dxos/react-client/echo';
|
|
15
16
|
import { useIdentity } from '@dxos/react-client/halo';
|
|
16
|
-
import { ElevationProvider, Input, useTranslation } from '@dxos/react-ui';
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
17
|
+
import { ElevationProvider, Input, Panel, useTranslation } from '@dxos/react-ui';
|
|
18
|
+
import { Settings } from '@dxos/react-ui-form';
|
|
19
|
+
import { Menu, createMenuAction, createMenuItemGroup, useMenuActions } from '@dxos/react-ui-menu';
|
|
19
20
|
import { useSoundEffect } from '@dxos/react-ui-sfx';
|
|
20
|
-
import { StackItem } from '@dxos/react-ui-stack';
|
|
21
21
|
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
|
|
26
|
-
import {
|
|
27
|
-
import ChatContainer from './ChatContainer';
|
|
22
|
+
import { Call } from '../../components';
|
|
23
|
+
import { meta } from '../../meta';
|
|
24
|
+
import { ThreadCapabilities } from '../../types';
|
|
25
|
+
import { type Channel } from '../../types';
|
|
26
|
+
import { ChatContainer } from '../ChatContainer';
|
|
28
27
|
|
|
29
28
|
export type ChannelContainerProps = SurfaceComponentProps<
|
|
30
29
|
Channel.Channel | undefined,
|
|
@@ -38,19 +37,24 @@ export type ChannelContainerProps = SurfaceComponentProps<
|
|
|
38
37
|
* Renders a call when active, otherwise renders the channel chat.
|
|
39
38
|
*/
|
|
40
39
|
// TODO(burdon): Create Radix style layout.
|
|
41
|
-
export const ChannelContainer = ({
|
|
40
|
+
export const ChannelContainer = ({
|
|
41
|
+
role,
|
|
42
|
+
subject: channel,
|
|
43
|
+
attendableId,
|
|
44
|
+
roomId: roomIdProp,
|
|
45
|
+
fullscreen,
|
|
46
|
+
}: ChannelContainerProps) => {
|
|
42
47
|
const space = getSpace(channel);
|
|
43
48
|
const callManager = useCapability(ThreadCapabilities.CallManager);
|
|
49
|
+
const extensions = useCapabilities(ThreadCapabilities.CallExtension);
|
|
44
50
|
const joined = useAtomValue(callManager.joinedAtom);
|
|
45
51
|
const currentRoomId = useAtomValue(callManager.roomIdAtom);
|
|
46
|
-
const attendableId = channel ? Obj.getDXN(channel).toString() : undefined;
|
|
47
52
|
const roomId = roomIdProp ?? attendableId ?? failUndefined();
|
|
48
53
|
const identity = useIdentity();
|
|
49
54
|
const isNamed = !!identity?.profile?.displayName;
|
|
50
55
|
const joinSound = useSoundEffect('JoinCall');
|
|
51
56
|
const leaveSound = useSoundEffect('LeaveCall');
|
|
52
57
|
|
|
53
|
-
const extensions = useCapabilities(ThreadCapabilities.CallExtension);
|
|
54
58
|
useEffect(() => {
|
|
55
59
|
const ctx = new Context();
|
|
56
60
|
callManager.left.on(ctx, (roomId) => {
|
|
@@ -118,27 +122,38 @@ export const ChannelContainer = ({ role, subject: channel, roomId: roomIdProp, f
|
|
|
118
122
|
}, [extensions, roomId]);
|
|
119
123
|
|
|
120
124
|
const isJoined = joined && currentRoomId === roomId;
|
|
125
|
+
if (isJoined) {
|
|
126
|
+
return (
|
|
127
|
+
<Panel.Root>
|
|
128
|
+
<Panel.Content>
|
|
129
|
+
{isNamed ? (
|
|
130
|
+
<Call.Root>
|
|
131
|
+
<Call.Grid fullscreen={fullscreen} />
|
|
132
|
+
<Call.Toolbar channel={channel} onLeave={handleLeave} />
|
|
133
|
+
</Call.Root>
|
|
134
|
+
) : (
|
|
135
|
+
<DisplayNameMissing />
|
|
136
|
+
)}
|
|
137
|
+
</Panel.Content>
|
|
138
|
+
</Panel.Root>
|
|
139
|
+
);
|
|
140
|
+
}
|
|
121
141
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
<Call.Root>
|
|
127
|
-
<Call.Grid fullscreen={fullscreen} />
|
|
128
|
-
<Call.Toolbar channel={channel} onLeave={handleLeave} />
|
|
129
|
-
</Call.Root>
|
|
130
|
-
)}
|
|
131
|
-
{!isJoined && channel && channel.defaultThread.target && space && (
|
|
132
|
-
<>
|
|
142
|
+
if (channel && channel.defaultThread.target && space) {
|
|
143
|
+
return (
|
|
144
|
+
<Panel.Root classNames='dx-article'>
|
|
145
|
+
<Panel.Toolbar asChild>
|
|
133
146
|
<ChannelToolbar attendableId={attendableId} role={role} onJoinCall={handleJoin} />
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
147
|
+
</Panel.Toolbar>
|
|
148
|
+
<Panel.Content asChild>
|
|
149
|
+
<ChatContainer space={space} thread={channel.defaultThread.target} />
|
|
150
|
+
</Panel.Content>
|
|
151
|
+
</Panel.Root>
|
|
152
|
+
);
|
|
153
|
+
}
|
|
140
154
|
|
|
141
|
-
|
|
155
|
+
return null;
|
|
156
|
+
};
|
|
142
157
|
|
|
143
158
|
const DisplayNameMissing = () => {
|
|
144
159
|
const { t } = useTranslation(meta.id);
|
|
@@ -148,19 +163,19 @@ const DisplayNameMissing = () => {
|
|
|
148
163
|
const handleSave = useCallback(() => client.halo.updateProfile({ displayName }), [client, displayName]);
|
|
149
164
|
|
|
150
165
|
return (
|
|
151
|
-
<
|
|
152
|
-
<
|
|
166
|
+
<Settings.Group classNames='p-4 place-content-center'>
|
|
167
|
+
<Settings.ItemInput title={t('display name label')} description={t('display name description')}>
|
|
153
168
|
<Input.TextInput
|
|
154
169
|
value={displayName}
|
|
155
170
|
onChange={handleChange}
|
|
156
171
|
placeholder={t('display name input placeholder')}
|
|
157
|
-
classNames='md:min-
|
|
172
|
+
classNames='md:min-w-64'
|
|
158
173
|
/>
|
|
159
|
-
</
|
|
160
|
-
<
|
|
174
|
+
</Settings.ItemInput>
|
|
175
|
+
<Settings.GroupButton disabled={!displayName} onClick={handleSave}>
|
|
161
176
|
{t('set display name label')}
|
|
162
|
-
</
|
|
163
|
-
</
|
|
177
|
+
</Settings.GroupButton>
|
|
178
|
+
</Settings.Group>
|
|
164
179
|
);
|
|
165
180
|
};
|
|
166
181
|
|
|
@@ -179,7 +194,7 @@ const useChannelToolbarActions = (onJoinCall?: () => void) => {
|
|
|
179
194
|
type: 'video-call',
|
|
180
195
|
}),
|
|
181
196
|
],
|
|
182
|
-
edges: [{ source: 'root', target: 'video-call' }],
|
|
197
|
+
edges: [{ source: 'root', target: 'video-call', relation: 'child' }],
|
|
183
198
|
};
|
|
184
199
|
}),
|
|
185
200
|
[],
|
|
@@ -199,9 +214,9 @@ const ChannelToolbar = ({ attendableId, role, onJoinCall }: ChannelToolbarProps)
|
|
|
199
214
|
|
|
200
215
|
return (
|
|
201
216
|
<ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>
|
|
202
|
-
<
|
|
203
|
-
<
|
|
204
|
-
</
|
|
217
|
+
<Menu.Root {...menuProps} attendableId={attendableId}>
|
|
218
|
+
<Menu.Toolbar textBlockWidth />
|
|
219
|
+
</Menu.Root>
|
|
205
220
|
</ElevationProvider>
|
|
206
221
|
);
|
|
207
222
|
};
|