@dxos/plugin-thread 0.8.4-main.bc674ce → 0.8.4-main.c351d160a8
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-KSOBZJGD.mjs +36 -0
- package/dist/lib/browser/CallSidebar-KSOBZJGD.mjs.map +7 -0
- package/dist/lib/browser/ChannelContainer-EQZXMQMV.mjs +17 -0
- package/dist/lib/browser/ChannelContainer-EQZXMQMV.mjs.map +7 -0
- package/dist/lib/browser/ChatContainer-VPCJ2AMF.mjs +18 -0
- package/dist/lib/browser/ChatContainer-VPCJ2AMF.mjs.map +7 -0
- package/dist/lib/browser/ThreadCompanion-7GTSEJQT.mjs +209 -0
- package/dist/lib/browser/ThreadCompanion-7GTSEJQT.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-ECTCB36F.mjs} +25 -24
- package/dist/lib/browser/app-graph-builder-ECTCB36F.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-3P6D7IH7.mjs} +5 -4
- package/dist/lib/browser/call-manager-3P6D7IH7.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-7GONB2BI.mjs +219 -0
- package/dist/lib/browser/chunk-7GONB2BI.mjs.map +7 -0
- package/dist/lib/browser/chunk-D7PVIURR.mjs +1094 -0
- package/dist/lib/browser/chunk-D7PVIURR.mjs.map +7 -0
- package/dist/lib/browser/{chunk-2FIHSX35.mjs → chunk-FGEVENLN.mjs} +34 -47
- package/dist/lib/browser/chunk-FGEVENLN.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/chunk-JMH6UT5J.mjs +127 -0
- package/dist/lib/browser/chunk-JMH6UT5J.mjs.map +7 -0
- package/dist/lib/browser/{markdown-QMJLRR6R.mjs → chunk-PV5GYINX.mjs} +3 -78
- package/dist/lib/browser/chunk-PV5GYINX.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/index.mjs +64 -83
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/markdown-J6H6EIZE.mjs +83 -0
- package/dist/lib/browser/markdown-J6H6EIZE.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{operation-resolver-T63EP5TY.mjs → operation-resolver-3JHO5DFX.mjs} +22 -29
- package/dist/lib/browser/operation-resolver-3JHO5DFX.mjs.map +7 -0
- package/dist/lib/browser/{react-root-56MJI77R.mjs → react-root-AM3J34AK.mjs} +8 -6
- package/dist/lib/browser/react-root-AM3J34AK.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-DMBHQOXJ.mjs → react-surface-VNGEEVYP.mjs} +40 -35
- package/dist/lib/browser/react-surface-VNGEEVYP.mjs.map +7 -0
- package/dist/lib/browser/{settings-WZMJMML3.mjs → settings-HYNYTOSX.mjs} +8 -5
- package/dist/lib/browser/settings-HYNYTOSX.mjs.map +7 -0
- package/dist/lib/browser/{state-SJR2GL5G.mjs → state-NQZQCDFD.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-Y2I3UBBA.mjs +37 -0
- package/dist/lib/node-esm/CallSidebar-Y2I3UBBA.mjs.map +7 -0
- package/dist/lib/node-esm/ChannelContainer-WB5YYZKU.mjs +18 -0
- package/dist/lib/node-esm/ChannelContainer-WB5YYZKU.mjs.map +7 -0
- package/dist/lib/node-esm/ChatContainer-CP6PNF53.mjs +19 -0
- package/dist/lib/node-esm/ChatContainer-CP6PNF53.mjs.map +7 -0
- package/dist/lib/node-esm/ThreadCompanion-5MM3XACT.mjs +210 -0
- package/dist/lib/node-esm/ThreadCompanion-5MM3XACT.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-HSX4GHGQ.mjs} +25 -24
- package/dist/lib/node-esm/app-graph-builder-HSX4GHGQ.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-ENAYC5L3.mjs} +5 -4
- package/dist/lib/node-esm/call-manager-ENAYC5L3.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-35G7Q243.mjs +1095 -0
- package/dist/lib/node-esm/chunk-35G7Q243.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-4BOUHFEC.mjs +128 -0
- package/dist/lib/node-esm/chunk-4BOUHFEC.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/{markdown-L6LLQLIN.mjs → chunk-B7POKKGL.mjs} +3 -78
- package/dist/lib/node-esm/chunk-B7POKKGL.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-CSIDVJEC.mjs +220 -0
- package/dist/lib/node-esm/chunk-CSIDVJEC.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-WMWUXWAS.mjs → chunk-HGIUKAXD.mjs} +34 -47
- package/dist/lib/node-esm/chunk-HGIUKAXD.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/{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 +64 -83
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/markdown-P2WSGZJB.mjs +84 -0
- package/dist/lib/node-esm/markdown-P2WSGZJB.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{operation-resolver-G6GZPBRP.mjs → operation-resolver-I3RCYCC4.mjs} +22 -29
- package/dist/lib/node-esm/operation-resolver-I3RCYCC4.mjs.map +7 -0
- package/dist/lib/node-esm/{react-root-V4W4X5GL.mjs → react-root-TFDOAH6Z.mjs} +8 -6
- package/dist/lib/node-esm/react-root-TFDOAH6Z.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-ELDSTUA3.mjs → react-surface-3C7PBXXD.mjs} +40 -35
- package/dist/lib/node-esm/react-surface-3C7PBXXD.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-37CO3SNR.mjs → settings-FV2O6HDY.mjs} +8 -5
- package/dist/lib/node-esm/settings-FV2O6HDY.mjs.map +7 -0
- package/dist/lib/node-esm/{state-5R3TZJQE.mjs → state-IODNXJEB.mjs} +3 -2
- package/dist/lib/{browser/state-SJR2GL5G.mjs.map → node-esm/state-IODNXJEB.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 +33 -49
- 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 +10 -4
- 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-NQZQCDFD.mjs.map} +0 -0
- /package/src/{components/testing.ts → testing/data.ts} +0 -0
package/src/{components/Chat.stories.tsx → containers/ChatContainer/ChatContainer.stories.tsx}
RENAMED
|
@@ -5,21 +5,21 @@
|
|
|
5
5
|
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
6
|
import React, { useState } from 'react';
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { Capabilities, Capability, OperationPlugin, RuntimePlugin } from '@dxos/app-framework';
|
|
9
9
|
import { withPluginManager } from '@dxos/app-framework/testing';
|
|
10
|
+
import { Surface } from '@dxos/app-framework/ui';
|
|
10
11
|
import { faker } from '@dxos/random';
|
|
11
12
|
import { useClient } from '@dxos/react-client';
|
|
12
13
|
import { type Space } from '@dxos/react-client/echo';
|
|
13
14
|
import { useIdentity } from '@dxos/react-client/halo';
|
|
14
15
|
import { withClientProvider } from '@dxos/react-client/testing';
|
|
15
16
|
import { useAsyncEffect } from '@dxos/react-ui';
|
|
16
|
-
import { withTheme } from '@dxos/react-ui/testing';
|
|
17
|
+
import { withLayout, withTheme, Loading } from '@dxos/react-ui/testing';
|
|
17
18
|
import { Thread as ThreadComponent } from '@dxos/react-ui-thread';
|
|
18
|
-
import { render } from '@dxos/storybook-utils';
|
|
19
19
|
import { Message, Thread } from '@dxos/types';
|
|
20
20
|
|
|
21
|
-
import { translations } from '
|
|
22
|
-
import { Channel } from '
|
|
21
|
+
import { translations } from '../../translations';
|
|
22
|
+
import { Channel } from '../../types';
|
|
23
23
|
|
|
24
24
|
import { ChatContainer } from './ChatContainer';
|
|
25
25
|
|
|
@@ -41,28 +41,27 @@ const DefaultStory = () => {
|
|
|
41
41
|
}, [identity]);
|
|
42
42
|
|
|
43
43
|
if (!identity || !channel || !space || !channel.defaultThread.target) {
|
|
44
|
-
return
|
|
44
|
+
return <Loading data={{ identity: !!identity, space: !!space, channel: !!channel }} />;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
return
|
|
48
|
-
<main className='is-full max-is-proseMaxWidth mli-auto bs-full overflow-hidden'>
|
|
49
|
-
<ChatContainer space={space} thread={channel.defaultThread.target} />
|
|
50
|
-
</main>
|
|
51
|
-
);
|
|
47
|
+
return <ChatContainer space={space} thread={channel.defaultThread.target} />;
|
|
52
48
|
};
|
|
53
49
|
|
|
54
50
|
const meta = {
|
|
55
|
-
title: 'plugins/plugin-thread/
|
|
51
|
+
title: 'plugins/plugin-thread/containers/ChatContainer',
|
|
56
52
|
component: ThreadComponent.Root as any,
|
|
57
|
-
render:
|
|
53
|
+
render: DefaultStory,
|
|
58
54
|
decorators: [
|
|
59
|
-
withTheme,
|
|
55
|
+
withTheme(),
|
|
56
|
+
withLayout({ layout: 'column' }),
|
|
57
|
+
// TODO(wittjosiah): This shouldn't depend on app framework (use withClientProvider instead).
|
|
58
|
+
// Currently this is required due to useOnEditAnalytics.
|
|
60
59
|
withPluginManager({
|
|
61
|
-
plugins: [OperationPlugin()],
|
|
60
|
+
plugins: [OperationPlugin(), RuntimePlugin()],
|
|
62
61
|
capabilities: [
|
|
63
62
|
Capability.contributes(
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
Capabilities.ReactSurface,
|
|
64
|
+
Surface.create({
|
|
66
65
|
id: 'test',
|
|
67
66
|
role: 'card',
|
|
68
67
|
component: ({ role }) => <span>{JSON.stringify({ role })}</span>,
|
|
@@ -70,7 +69,10 @@ const meta = {
|
|
|
70
69
|
),
|
|
71
70
|
],
|
|
72
71
|
}),
|
|
73
|
-
withClientProvider({
|
|
72
|
+
withClientProvider({
|
|
73
|
+
createSpace: true,
|
|
74
|
+
types: [Thread.Thread, Channel.Channel, Message.Message],
|
|
75
|
+
}),
|
|
74
76
|
],
|
|
75
77
|
parameters: {
|
|
76
78
|
layout: 'fullscreen',
|
|
@@ -21,24 +21,11 @@ import { createBasicExtensions, createThemeExtensions, listener } from '@dxos/ui
|
|
|
21
21
|
import { mx } from '@dxos/ui-theme';
|
|
22
22
|
import { isNonNullable } from '@dxos/util';
|
|
23
23
|
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
|
|
28
|
-
import {
|
|
29
|
-
import { MessageContainer } from './MessageContainer';
|
|
30
|
-
|
|
31
|
-
export const ChatHeading = ({ attendableId }: { attendableId?: string }) => {
|
|
32
|
-
const { t } = useTranslation(meta.id);
|
|
33
|
-
return (
|
|
34
|
-
<div role='none' className='flex items-center'>
|
|
35
|
-
<StackItem.SigilButton attendableId={attendableId}>
|
|
36
|
-
<Icon icon='ph--chat--regular' size={5} />
|
|
37
|
-
</StackItem.SigilButton>
|
|
38
|
-
<StackItem.HeadingLabel attendableId={attendableId}>{t('chat heading')}</StackItem.HeadingLabel>
|
|
39
|
-
</div>
|
|
40
|
-
);
|
|
41
|
-
};
|
|
24
|
+
import { MessagePanel } from '../../components';
|
|
25
|
+
import { command } from '../../extensions';
|
|
26
|
+
import { useStatus } from '../../hooks';
|
|
27
|
+
import { meta } from '../../meta';
|
|
28
|
+
import { getMessageMetadata } from '../../util';
|
|
42
29
|
|
|
43
30
|
export type ChatContainerProps = ThemedClassName<
|
|
44
31
|
{
|
|
@@ -54,20 +41,22 @@ export const ChatContainer = ({
|
|
|
54
41
|
space,
|
|
55
42
|
thread,
|
|
56
43
|
context,
|
|
57
|
-
current,
|
|
58
44
|
autoFocusTextbox,
|
|
45
|
+
current,
|
|
59
46
|
}: ChatContainerProps) => {
|
|
60
47
|
const { t } = useTranslation(meta.id);
|
|
48
|
+
const { themeMode } = useThemeContext();
|
|
49
|
+
|
|
61
50
|
const id = Obj.getDXN(thread).toString();
|
|
62
51
|
const identity = useIdentity()!;
|
|
63
52
|
const members = useMembers(space?.id);
|
|
64
53
|
const activity = useStatus(space, id);
|
|
54
|
+
const [autoFocus, setAutoFocus] = useState(autoFocusTextbox);
|
|
55
|
+
const threadScrollRef = useRef<HTMLDivElement | null>(null);
|
|
56
|
+
|
|
65
57
|
// TODO(wittjosiah): This is a hack to reset the editor after a message is sent.
|
|
66
58
|
const [_count, _setCount] = useState(0);
|
|
67
59
|
const rerenderEditor = () => _setCount((count) => count + 1);
|
|
68
|
-
const [autoFocus, setAutoFocus] = useState(autoFocusTextbox);
|
|
69
|
-
const threadScrollRef = useRef<HTMLDivElement | null>(null);
|
|
70
|
-
const { themeMode } = useThemeContext();
|
|
71
60
|
|
|
72
61
|
const textboxMetadata = getMessageMetadata(id, identity);
|
|
73
62
|
const messageRef = useRef('');
|
|
@@ -120,30 +109,21 @@ export const ChatContainer = ({
|
|
|
120
109
|
|
|
121
110
|
return (
|
|
122
111
|
<ThreadComponent.Root
|
|
123
|
-
current={current}
|
|
124
112
|
id={id}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
'transition-[padding-block-end] [[data-sidebar-inline-start-state=open]_&]:lg:pbe-0',
|
|
128
|
-
classNames,
|
|
129
|
-
]}
|
|
113
|
+
current={current}
|
|
114
|
+
classNames={['dx-container grid-rows-[1fr_min-content_min-content]', classNames]}
|
|
130
115
|
>
|
|
131
|
-
<ScrollArea.Root classNames='col-span-2'>
|
|
132
|
-
<ScrollArea.Viewport
|
|
116
|
+
<ScrollArea.Root classNames='col-span-2' orientation='vertical'>
|
|
117
|
+
<ScrollArea.Viewport ref={threadScrollRef}>
|
|
133
118
|
<div role='none' className={mx(threadLayout, 'place-self-end')}>
|
|
134
119
|
{thread.messages
|
|
135
120
|
.map((message) => message.target)
|
|
136
121
|
.filter(isNonNullable)
|
|
137
122
|
.map((message) => (
|
|
138
|
-
<
|
|
123
|
+
<MessagePanel key={message.id} message={message} members={members} />
|
|
139
124
|
))}
|
|
140
125
|
</div>
|
|
141
|
-
{/* NOTE(thure): This can’t also be the `overflow-anchor` because `ScrollArea` injects an interceding node that contains this necessary ref’d element. */}
|
|
142
|
-
<div role='none' className='bs-px -mbs-px' ref={threadScrollRef} />
|
|
143
126
|
</ScrollArea.Viewport>
|
|
144
|
-
<ScrollArea.Scrollbar>
|
|
145
|
-
<ScrollArea.Thumb />
|
|
146
|
-
</ScrollArea.Scrollbar>
|
|
147
127
|
</ScrollArea.Root>
|
|
148
128
|
|
|
149
129
|
<MessageTextbox extensions={extensions} autoFocus={autoFocus} onSend={handleCreate} {...textboxMetadata} />
|
|
@@ -152,4 +132,14 @@ export const ChatContainer = ({
|
|
|
152
132
|
);
|
|
153
133
|
};
|
|
154
134
|
|
|
155
|
-
export
|
|
135
|
+
export const ChatHeading = ({ attendableId }: { attendableId?: string }) => {
|
|
136
|
+
const { t } = useTranslation(meta.id);
|
|
137
|
+
return (
|
|
138
|
+
<div role='none' className='flex items-center'>
|
|
139
|
+
<StackItem.SigilButton attendableId={attendableId}>
|
|
140
|
+
<Icon icon='ph--chat--regular' size={5} />
|
|
141
|
+
</StackItem.SigilButton>
|
|
142
|
+
<StackItem.HeadingLabel attendableId={attendableId}>{t('chat heading')}</StackItem.HeadingLabel>
|
|
143
|
+
</div>
|
|
144
|
+
);
|
|
145
|
+
};
|
|
@@ -5,30 +5,30 @@
|
|
|
5
5
|
import { useAtomValue } from '@effect-atom/atom-react';
|
|
6
6
|
import React, { useCallback, useMemo } from 'react';
|
|
7
7
|
|
|
8
|
-
import {
|
|
9
|
-
import { useCapabilities, useCapability, useOperationInvoker } from '@dxos/app-framework/
|
|
8
|
+
import { Capabilities } from '@dxos/app-framework';
|
|
9
|
+
import { useCapabilities, useCapability, useOperationInvoker } from '@dxos/app-framework/ui';
|
|
10
|
+
import { AppCapabilities, CollaborationOperation, LayoutOperation } from '@dxos/app-toolkit';
|
|
10
11
|
import { Filter, Obj, Query, Relation } from '@dxos/echo';
|
|
11
12
|
import { Ref, useQuery } from '@dxos/react-client/echo';
|
|
12
13
|
import { useIdentity } from '@dxos/react-client/halo';
|
|
13
|
-
import { useTranslation } from '@dxos/react-ui';
|
|
14
|
-
import {
|
|
15
|
-
import { Layout } from '@dxos/react-ui-mosaic';
|
|
14
|
+
import { Panel, ScrollArea, Toolbar, useTranslation } from '@dxos/react-ui';
|
|
15
|
+
import { getParentId, useAttention } from '@dxos/react-ui-attention';
|
|
16
16
|
import { Tabs } from '@dxos/react-ui-tabs';
|
|
17
17
|
import { AnchoredTo, Thread } from '@dxos/types';
|
|
18
|
-
import { mx } from '@dxos/ui-theme';
|
|
19
18
|
|
|
20
|
-
import {
|
|
21
|
-
import { meta } from '
|
|
22
|
-
import { ThreadCapabilities, ThreadOperation, type ViewState } from '
|
|
19
|
+
import { CommentsPanel, type CommentsPanelProps } from '../../components';
|
|
20
|
+
import { meta } from '../../meta';
|
|
21
|
+
import { ThreadCapabilities, ThreadOperation, type ViewState } from '../../types';
|
|
23
22
|
|
|
24
23
|
const initialViewState: ViewState = { showResolvedThreads: false };
|
|
25
24
|
|
|
26
|
-
export const ThreadCompanion = ({ subject }: { subject: any }) => {
|
|
25
|
+
export const ThreadCompanion = ({ attendableId, subject }: { attendableId?: string; subject: any }) => {
|
|
27
26
|
const { t } = useTranslation(meta.id);
|
|
28
27
|
const { invokePromise } = useOperationInvoker();
|
|
29
28
|
const identity = useIdentity();
|
|
30
29
|
const subjectId = Obj.getDXN(subject).toString();
|
|
31
|
-
const
|
|
30
|
+
const parentId = attendableId ? getParentId(attendableId) : undefined;
|
|
31
|
+
const registry = useCapability(Capabilities.AtomRegistry);
|
|
32
32
|
|
|
33
33
|
const stateAtom = useCapability(ThreadCapabilities.State);
|
|
34
34
|
const viewStoreAtom = useCapability(ThreadCapabilities.ViewState);
|
|
@@ -56,7 +56,7 @@ export const ThreadCompanion = ({ subject }: { subject: any }) => {
|
|
|
56
56
|
[registry, viewStoreAtom, subjectId],
|
|
57
57
|
);
|
|
58
58
|
|
|
59
|
-
const anchorSorts = useCapabilities(
|
|
59
|
+
const anchorSorts = useCapabilities(AppCapabilities.AnchorSort);
|
|
60
60
|
const sort = useMemo(
|
|
61
61
|
() => anchorSorts.find(({ key }) => key === Obj.getTypename(subject))?.sort,
|
|
62
62
|
[anchorSorts, subject],
|
|
@@ -69,7 +69,8 @@ export const ThreadCompanion = ({ subject }: { subject: any }) => {
|
|
|
69
69
|
.filter((anchor) => Obj.instanceOf(Thread.Thread, Relation.getSource(anchor)))
|
|
70
70
|
.concat(drafts ?? []);
|
|
71
71
|
|
|
72
|
-
const
|
|
72
|
+
const { hasAttention, isAncestor, isRelated } = useAttention(parentId);
|
|
73
|
+
const isAttended = hasAttention || isAncestor || isRelated;
|
|
73
74
|
|
|
74
75
|
const handleAttend = useCallback(
|
|
75
76
|
(anchor: AnchoredTo.AnchoredTo) => {
|
|
@@ -82,14 +83,14 @@ export const ThreadCompanion = ({ subject }: { subject: any }) => {
|
|
|
82
83
|
// TODO(wittjosiah): Should this be a thread-specific intent?
|
|
83
84
|
// The layout doesn't know about threads and this working depends on other plugins conditionally handling it.
|
|
84
85
|
// This may be overloading this intent or highjacking its intended purpose.
|
|
85
|
-
void invokePromise(
|
|
86
|
-
subject:
|
|
86
|
+
void invokePromise(LayoutOperation.ScrollIntoView, {
|
|
87
|
+
subject: parentId,
|
|
87
88
|
cursor: anchor.anchor,
|
|
88
89
|
ref: threadId,
|
|
89
90
|
});
|
|
90
91
|
}
|
|
91
92
|
},
|
|
92
|
-
[state.current, invokePromise,
|
|
93
|
+
[state.current, invokePromise, registry, stateAtom, parentId],
|
|
93
94
|
);
|
|
94
95
|
|
|
95
96
|
const handleComment = useCallback(
|
|
@@ -130,7 +131,7 @@ export const ThreadCompanion = ({ subject }: { subject: any }) => {
|
|
|
130
131
|
[invokePromise, subject],
|
|
131
132
|
);
|
|
132
133
|
|
|
133
|
-
const handleAcceptProposal = useCallback<NonNullable<
|
|
134
|
+
const handleAcceptProposal = useCallback<NonNullable<CommentsPanelProps['onAcceptProposal']>>(
|
|
134
135
|
async (anchor, messageId) => {
|
|
135
136
|
const thread = Relation.getSource(anchor) as Thread.Thread;
|
|
136
137
|
const messageIndex = thread.messages.findIndex(Ref.hasObjectId(messageId));
|
|
@@ -140,7 +141,7 @@ export const ThreadCompanion = ({ subject }: { subject: any }) => {
|
|
|
140
141
|
return;
|
|
141
142
|
}
|
|
142
143
|
|
|
143
|
-
await invokePromise(
|
|
144
|
+
await invokePromise(CollaborationOperation.AcceptProposal, {
|
|
144
145
|
subject,
|
|
145
146
|
anchor: anchor.anchor,
|
|
146
147
|
proposal,
|
|
@@ -151,9 +152,9 @@ export const ThreadCompanion = ({ subject }: { subject: any }) => {
|
|
|
151
152
|
);
|
|
152
153
|
|
|
153
154
|
const comments = (
|
|
154
|
-
<
|
|
155
|
+
<CommentsPanel
|
|
155
156
|
anchors={anchors}
|
|
156
|
-
currentId={
|
|
157
|
+
currentId={isAttended ? state.current : undefined}
|
|
157
158
|
showResolvedThreads={showResolvedThreads}
|
|
158
159
|
onAttend={handleAttend}
|
|
159
160
|
onComment={handleComment}
|
|
@@ -165,29 +166,34 @@ export const ThreadCompanion = ({ subject }: { subject: any }) => {
|
|
|
165
166
|
);
|
|
166
167
|
|
|
167
168
|
return (
|
|
168
|
-
<
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
<
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
169
|
+
<Tabs.Root
|
|
170
|
+
value={showResolvedThreads ? 'all' : 'unresolved'}
|
|
171
|
+
orientation='horizontal'
|
|
172
|
+
onValueChange={onChangeViewState}
|
|
173
|
+
>
|
|
174
|
+
<Panel.Root>
|
|
175
|
+
<Panel.Toolbar asChild>
|
|
176
|
+
<Toolbar.Root>
|
|
177
|
+
{/* TODO(burdon): TabeList should have the same geometry as Toolbar. */}
|
|
178
|
+
<Tabs.Tablist classNames='py-0 px-1'>
|
|
179
|
+
<Tabs.Tab value='unresolved' classNames='text-sm'>
|
|
180
|
+
{t('show unresolved label')}
|
|
181
|
+
</Tabs.Tab>
|
|
182
|
+
<Tabs.Tab value='all' classNames='text-sm'>
|
|
183
|
+
{t('show all label')}
|
|
184
|
+
</Tabs.Tab>
|
|
185
|
+
</Tabs.Tablist>
|
|
186
|
+
</Toolbar.Root>
|
|
187
|
+
</Panel.Toolbar>
|
|
188
|
+
<Panel.Content asChild>
|
|
189
|
+
<ScrollArea.Root thin>
|
|
190
|
+
<ScrollArea.Viewport>
|
|
191
|
+
<Tabs.Tabpanel value='all'>{showResolvedThreads && comments}</Tabs.Tabpanel>
|
|
192
|
+
<Tabs.Tabpanel value='unresolved'>{!showResolvedThreads && comments}</Tabs.Tabpanel>
|
|
193
|
+
</ScrollArea.Viewport>
|
|
194
|
+
</ScrollArea.Root>
|
|
195
|
+
</Panel.Content>
|
|
196
|
+
</Panel.Root>
|
|
197
|
+
</Tabs.Root>
|
|
192
198
|
);
|
|
193
199
|
};
|
|
@@ -5,17 +5,18 @@
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
|
|
7
7
|
import { useTranslation } from '@dxos/react-ui';
|
|
8
|
-
import {
|
|
8
|
+
import { Settings } from '@dxos/react-ui-form';
|
|
9
9
|
|
|
10
|
-
import { meta } from '
|
|
11
|
-
import type { ThreadSettingsProps } from '
|
|
10
|
+
import { meta } from '../../meta';
|
|
11
|
+
import type { ThreadSettingsProps } from '../../types';
|
|
12
12
|
|
|
13
13
|
export type ThreadSettingsComponentProps = {
|
|
14
14
|
settings: ThreadSettingsProps;
|
|
15
15
|
onSettingsChange: (fn: (current: ThreadSettingsProps) => ThreadSettingsProps) => void;
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
+
// TODO(burdon): Settings.
|
|
18
19
|
export const ThreadSettings = ({ settings: _settings }: ThreadSettingsComponentProps) => {
|
|
19
20
|
const { t: _t } = useTranslation(meta.id);
|
|
20
|
-
return <
|
|
21
|
+
return <Settings.Root></Settings.Root>;
|
|
21
22
|
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { type ComponentType, lazy } from 'react';
|
|
6
|
+
|
|
7
|
+
export const CallDebugPanel: ComponentType<any> = lazy(() => import('./CallDebugPanel'));
|
|
8
|
+
export const CallSidebar: ComponentType<any> = lazy(() => import('./CallSidebar'));
|
|
9
|
+
export const ChannelContainer: ComponentType<any> = lazy(() => import('./ChannelContainer'));
|
|
10
|
+
export const ChatContainer: ComponentType<any> = lazy(() => import('./ChatContainer'));
|
|
11
|
+
export const ThreadCompanion: ComponentType<any> = lazy(() => import('./ThreadCompanion'));
|
|
12
|
+
export const ThreadSettings: ComponentType<any> = lazy(() => import('./ThreadSettings'));
|
|
@@ -29,7 +29,7 @@ const parser = StreamLanguage.define<{ count: number }>({
|
|
|
29
29
|
const styles = HighlightStyle.define([
|
|
30
30
|
{
|
|
31
31
|
tag: tags.tagName,
|
|
32
|
-
class: mx('dx-tag dx-tag--indigo text-
|
|
32
|
+
class: mx('dx-tag dx-tag--indigo text-base-surface-text font-medium'),
|
|
33
33
|
},
|
|
34
34
|
]);
|
|
35
35
|
|
package/src/extensions/index.ts
CHANGED
|
@@ -7,28 +7,28 @@ import * as Effect from 'effect/Effect';
|
|
|
7
7
|
import * as Function from 'effect/Function';
|
|
8
8
|
import * as Schema from 'effect/Schema';
|
|
9
9
|
|
|
10
|
-
import {
|
|
11
|
-
import { Obj, Ref, Relation } from '@dxos/echo';
|
|
12
|
-
import { Database } from '@dxos/echo';
|
|
10
|
+
import { computeDiffsWithCursors } from '@dxos/assistant';
|
|
11
|
+
import { Database, Obj, Ref, Relation } from '@dxos/echo';
|
|
13
12
|
import { createDocAccessor } from '@dxos/echo-db';
|
|
14
13
|
import { defineFunction } from '@dxos/functions';
|
|
15
|
-
import { DXN } from '@dxos/keys';
|
|
16
14
|
import { Markdown } from '@dxos/plugin-markdown/types';
|
|
17
15
|
import { AnchoredTo, Message, Thread } from '@dxos/types';
|
|
18
16
|
|
|
19
17
|
export default defineFunction({
|
|
20
|
-
key: 'dxos.
|
|
18
|
+
key: 'org.dxos.function.thread.create-proposals',
|
|
21
19
|
name: 'Create Proposals',
|
|
22
20
|
description: 'Proposes a set of changes to a document.',
|
|
23
21
|
inputSchema: Schema.Struct({
|
|
24
|
-
|
|
22
|
+
doc: Ref.Ref(Markdown.Document).annotations({
|
|
23
|
+
description: 'The ID of the document.',
|
|
24
|
+
}),
|
|
25
25
|
diffs: Schema.Array(Schema.String).annotations({
|
|
26
26
|
description: 'The diffs to propose for the document.',
|
|
27
27
|
}),
|
|
28
28
|
}),
|
|
29
29
|
outputSchema: Schema.Void,
|
|
30
|
-
handler: Effect.fn(function* ({ data: {
|
|
31
|
-
const object = yield* Database.
|
|
30
|
+
handler: Effect.fn(function* ({ data: { doc, diffs: _diffs } }) {
|
|
31
|
+
const object = yield* Database.load(doc);
|
|
32
32
|
const content = yield* Effect.promise(() => object.content.load());
|
|
33
33
|
const accessor = createDocAccessor(content, ['content']);
|
|
34
34
|
|
|
@@ -47,8 +47,8 @@ export default defineFunction({
|
|
|
47
47
|
[Relation.Target]: object,
|
|
48
48
|
anchor: cursor,
|
|
49
49
|
});
|
|
50
|
-
yield* Database.
|
|
51
|
-
yield* Database.
|
|
50
|
+
yield* Database.add(thread);
|
|
51
|
+
yield* Database.add(relation);
|
|
52
52
|
}),
|
|
53
53
|
),
|
|
54
54
|
Effect.allWith({ concurrency: 'unbounded' }),
|
package/src/functions/index.ts
CHANGED
package/src/hooks/analytics.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import { useCallback } from 'react';
|
|
6
6
|
|
|
7
|
-
import { useOperationInvoker } from '@dxos/app-framework/
|
|
7
|
+
import { useOperationInvoker } from '@dxos/app-framework/ui';
|
|
8
8
|
import { Obj } from '@dxos/echo';
|
|
9
9
|
import { ObservabilityOperation } from '@dxos/plugin-observability/types';
|
|
10
10
|
import { useOnTransition } from '@dxos/react-ui';
|
|
@@ -21,6 +21,7 @@ export const useOnEditAnalytics = (
|
|
|
21
21
|
if (!message || !textBlock) {
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
|
+
|
|
24
25
|
const db = Obj.getDatabase(message);
|
|
25
26
|
if (!db) {
|
|
26
27
|
return;
|
package/src/meta.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { trim } from '@dxos/util';
|
|
|
7
7
|
|
|
8
8
|
// TODO(wittjosiah): Needs screenshots.
|
|
9
9
|
export const meta: Plugin.Meta = {
|
|
10
|
-
id: 'dxos.
|
|
10
|
+
id: 'org.dxos.plugin.thread',
|
|
11
11
|
name: 'Chat',
|
|
12
12
|
description: trim`
|
|
13
13
|
Multi-modal communication platform supporting text chat, voice, and video conferencing.
|
|
@@ -18,4 +18,4 @@ export const meta: Plugin.Meta = {
|
|
|
18
18
|
source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-thread',
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
-
export const THREAD_ITEM = `${meta.id}
|
|
21
|
+
export const THREAD_ITEM = `${meta.id}.item`;
|
package/src/testing/stories.ts
CHANGED
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
import * as Effect from 'effect/Effect';
|
|
6
6
|
|
|
7
|
-
import { OperationPlugin, type Plugin
|
|
7
|
+
import { OperationPlugin, type Plugin } from '@dxos/app-framework';
|
|
8
8
|
import { ClientPlugin } from '@dxos/plugin-client';
|
|
9
9
|
import { GraphPlugin } from '@dxos/plugin-graph';
|
|
10
|
+
import { SettingsPlugin } from '@dxos/plugin-settings';
|
|
10
11
|
import { SpacePlugin } from '@dxos/plugin-space';
|
|
11
12
|
import { ThemePlugin } from '@dxos/plugin-theme';
|
|
12
13
|
import { Config } from '@dxos/react-client';
|
package/src/translations.ts
CHANGED
|
@@ -17,6 +17,7 @@ export const translations = [
|
|
|
17
17
|
'typename label_one': 'Channel',
|
|
18
18
|
'typename label_other': 'Channels',
|
|
19
19
|
'object name placeholder': 'New channel',
|
|
20
|
+
'add object label': 'Add channel',
|
|
20
21
|
'rename object label': 'Rename channel',
|
|
21
22
|
'delete object label': 'Delete channel',
|
|
22
23
|
'object deleted label': 'Channel deleted',
|
package/src/types/Channel.ts
CHANGED
|
@@ -2,22 +2,28 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
// @import-as-namespace
|
|
6
|
+
|
|
5
7
|
import * as Schema from 'effect/Schema';
|
|
6
8
|
|
|
7
|
-
import { Obj, Ref, Type } from '@dxos/echo';
|
|
9
|
+
import { Annotation, Obj, Ref, Type } from '@dxos/echo';
|
|
8
10
|
import { FormInputAnnotation } from '@dxos/echo/internal';
|
|
9
11
|
import { Thread } from '@dxos/types';
|
|
10
12
|
|
|
11
13
|
export const Channel = Schema.Struct({
|
|
12
14
|
name: Schema.optional(Schema.String),
|
|
13
|
-
defaultThread:
|
|
15
|
+
defaultThread: Ref.Ref(Thread.Thread).pipe(FormInputAnnotation.set(false)),
|
|
14
16
|
// TODO(wittjosiah): Should be an "ordered collection".
|
|
15
|
-
threads:
|
|
17
|
+
threads: Ref.Ref(Thread.Thread).pipe(Schema.Array, FormInputAnnotation.set(false)),
|
|
16
18
|
}).pipe(
|
|
17
19
|
Type.object({
|
|
18
|
-
typename: 'dxos.
|
|
20
|
+
typename: 'org.dxos.type.channel',
|
|
19
21
|
version: '0.1.0',
|
|
20
22
|
}),
|
|
23
|
+
Annotation.IconAnnotation.set({
|
|
24
|
+
icon: 'ph--hash--regular',
|
|
25
|
+
hue: 'rose',
|
|
26
|
+
}),
|
|
21
27
|
);
|
|
22
28
|
|
|
23
29
|
export interface Channel extends Schema.Schema.Type<typeof Channel> {}
|
|
@@ -11,8 +11,8 @@ import { meta } from '../meta';
|
|
|
11
11
|
import { type Channel, type ThreadSettingsProps, type ThreadState, type ViewStore } from '../types';
|
|
12
12
|
|
|
13
13
|
export namespace ThreadCapabilities {
|
|
14
|
-
export const Settings = Capability.make<Atom.Writable<ThreadSettingsProps>>(`${meta.id}
|
|
15
|
-
export const CallManager = Capability.make<CallManager>(`${meta.id}
|
|
14
|
+
export const Settings = Capability.make<Atom.Writable<ThreadSettingsProps>>(`${meta.id}.capability.settings`);
|
|
15
|
+
export const CallManager = Capability.make<CallManager>(`${meta.id}.capability.call-manager`);
|
|
16
16
|
|
|
17
17
|
// TODO(burdon): Better way to define specific extensions for meeting companions.
|
|
18
18
|
// TODO(burdon): This brings in deps from ../calls; how should we manage/minimize explicit type exposure to other plugins?
|
|
@@ -24,11 +24,11 @@ export namespace ThreadCapabilities {
|
|
|
24
24
|
onMediaStateUpdated: ([mediaState, isSpeaking]: [MediaState, boolean]) => Promise<void>;
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
-
export const CallExtension = Capability.make<CallProperties>(`${meta.id}
|
|
27
|
+
export const CallExtension = Capability.make<CallProperties>(`${meta.id}.capability.call-extension`);
|
|
28
28
|
|
|
29
29
|
/** Thread state (drafts, toolbar state, current selection). */
|
|
30
|
-
export const State = Capability.make<Atom.Writable<ThreadState>>(`${meta.id}
|
|
30
|
+
export const State = Capability.make<Atom.Writable<ThreadState>>(`${meta.id}.capability.state`);
|
|
31
31
|
|
|
32
32
|
/** Per-subject view state (e.g., showResolvedThreads). */
|
|
33
|
-
export const ViewState = Capability.make<Atom.Writable<ViewStore>>(`${meta.id}
|
|
33
|
+
export const ViewState = Capability.make<Atom.Writable<ViewStore>>(`${meta.id}.capability.view-state`);
|
|
34
34
|
}
|