@dxos/plugin-thread 0.8.4-main.5ea62a8 → 0.8.4-main.72ec0f3
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/ChannelContainer-MX5ABVGC.mjs +16 -0
- package/dist/lib/browser/ChatContainer-7F5Y6GXJ.mjs +15 -0
- package/dist/lib/browser/{app-graph-builder-FHAOPO57.mjs → app-graph-builder-HNYLII5E.mjs} +31 -32
- package/dist/lib/browser/app-graph-builder-HNYLII5E.mjs.map +7 -0
- package/dist/lib/browser/blueprint-definition-6BKYTMJS.mjs +104 -0
- package/dist/lib/browser/blueprint-definition-6BKYTMJS.mjs.map +7 -0
- package/dist/lib/browser/{call-manager-EW2QC6Q4.mjs → call-manager-MAXQLMMS.mjs} +7 -7
- package/dist/lib/browser/{call-manager-EW2QC6Q4.mjs.map → call-manager-MAXQLMMS.mjs.map} +1 -1
- package/dist/lib/browser/chunk-BBTXGRIR.mjs +18 -0
- package/dist/lib/browser/chunk-BBTXGRIR.mjs.map +7 -0
- package/dist/lib/browser/{chunk-J26C57ZY.mjs → chunk-BQWQFTWT.mjs} +165 -101
- package/dist/lib/browser/chunk-BQWQFTWT.mjs.map +7 -0
- package/dist/lib/browser/{chunk-GERVMFQW.mjs → chunk-CP7E2HRE.mjs} +2 -2
- package/dist/lib/browser/chunk-CP7E2HRE.mjs.map +7 -0
- package/dist/lib/browser/{chunk-H63NDV62.mjs → chunk-FR6MEAZI.mjs} +18 -17
- package/dist/lib/browser/chunk-FR6MEAZI.mjs.map +7 -0
- package/dist/lib/browser/{chunk-TQJYDFBU.mjs → chunk-INQVAYPN.mjs} +40 -37
- package/dist/lib/browser/chunk-INQVAYPN.mjs.map +7 -0
- package/dist/lib/browser/{chunk-KEXJGF2R.mjs → chunk-ISCHODBV.mjs} +53 -3
- package/dist/lib/browser/chunk-ISCHODBV.mjs.map +7 -0
- package/dist/lib/browser/chunk-K2DUJRFJ.mjs +27 -0
- package/dist/lib/browser/chunk-K2DUJRFJ.mjs.map +7 -0
- package/dist/lib/browser/{chunk-2P3GVRHP.mjs → chunk-KOBXMDCI.mjs} +68 -67
- package/dist/lib/browser/chunk-KOBXMDCI.mjs.map +7 -0
- package/dist/lib/browser/chunk-NMJEVD36.mjs +168 -0
- package/dist/lib/browser/chunk-NMJEVD36.mjs.map +7 -0
- package/dist/lib/browser/chunk-OOUDK7Q7.mjs +23 -0
- package/dist/lib/browser/chunk-OOUDK7Q7.mjs.map +7 -0
- package/dist/lib/browser/{chunk-TUSBPMNU.mjs → chunk-ZCW3NSDZ.mjs} +274 -374
- package/dist/lib/browser/chunk-ZCW3NSDZ.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +42 -42
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-IB5GYU2D.mjs → intent-resolver-BOUT4WGY.mjs} +32 -99
- package/dist/lib/browser/intent-resolver-BOUT4WGY.mjs.map +7 -0
- package/dist/lib/browser/{markdown-Z677YORA.mjs → markdown-74EUSQGV.mjs} +24 -22
- package/dist/lib/browser/markdown-74EUSQGV.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-root-BVG7B2LW.mjs +28 -0
- package/dist/lib/browser/react-root-BVG7B2LW.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-X2VB6P37.mjs → react-surface-BCD5ODQ6.mjs} +37 -36
- package/dist/lib/browser/react-surface-BCD5ODQ6.mjs.map +7 -0
- package/dist/lib/browser/{settings-GRKEID73.mjs → settings-LGQUZITB.mjs} +5 -5
- package/dist/lib/browser/{settings-GRKEID73.mjs.map → settings-LGQUZITB.mjs.map} +1 -1
- package/dist/lib/browser/{state-2T4KDWBX.mjs → state-36REWXO5.mjs} +5 -5
- package/dist/lib/browser/{state-2T4KDWBX.mjs.map → state-36REWXO5.mjs.map} +1 -1
- package/dist/lib/browser/types/index.mjs +7 -9
- package/dist/lib/node-esm/ChannelContainer-2JJJ3IDK.mjs +17 -0
- package/dist/lib/node-esm/{ChatContainer-4EGHKHIU.mjs → ChatContainer-C526R4DI.mjs} +6 -6
- package/dist/lib/node-esm/{app-graph-builder-XEYWX5FC.mjs → app-graph-builder-SOCKP4ST.mjs} +31 -32
- package/dist/lib/node-esm/app-graph-builder-SOCKP4ST.mjs.map +7 -0
- package/dist/lib/node-esm/blueprint-definition-6LEAWSC7.mjs +105 -0
- package/dist/lib/node-esm/blueprint-definition-6LEAWSC7.mjs.map +7 -0
- package/dist/lib/node-esm/{call-manager-N3KASRDQ.mjs → call-manager-LC4OS2KD.mjs} +7 -7
- package/dist/lib/node-esm/{call-manager-N3KASRDQ.mjs.map → call-manager-LC4OS2KD.mjs.map} +1 -1
- package/dist/lib/node-esm/chunk-5DLH4MWN.mjs +25 -0
- package/dist/lib/node-esm/chunk-5DLH4MWN.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-JR7KESLL.mjs → chunk-7KZWZS2U.mjs} +274 -374
- package/dist/lib/node-esm/chunk-7KZWZS2U.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-57XR3LEF.mjs → chunk-ABUFOZVX.mjs} +2 -2
- package/dist/lib/node-esm/chunk-ABUFOZVX.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-CCE5LHBE.mjs → chunk-JF7THR7F.mjs} +40 -37
- package/dist/lib/node-esm/chunk-JF7THR7F.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-NNKKNW57.mjs → chunk-JJW6YMLC.mjs} +165 -101
- package/dist/lib/node-esm/chunk-JJW6YMLC.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-CTZ75IFK.mjs → chunk-PZH2EDU5.mjs} +68 -67
- package/dist/lib/node-esm/chunk-PZH2EDU5.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-TJKM5JZT.mjs +169 -0
- package/dist/lib/node-esm/chunk-TJKM5JZT.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-UHZQTPXU.mjs → chunk-TWKGDFCS.mjs} +18 -17
- package/dist/lib/node-esm/chunk-TWKGDFCS.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-S3D7DTBF.mjs → chunk-VBI32FGI.mjs} +53 -3
- package/dist/lib/node-esm/chunk-VBI32FGI.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-XI45H4IV.mjs +28 -0
- package/dist/lib/node-esm/chunk-XI45H4IV.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-ZQAGII7M.mjs +19 -0
- package/dist/lib/node-esm/chunk-ZQAGII7M.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +42 -42
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-VIMI5VLH.mjs → intent-resolver-45PLIFCJ.mjs} +32 -99
- package/dist/lib/node-esm/intent-resolver-45PLIFCJ.mjs.map +7 -0
- package/dist/lib/node-esm/{markdown-FL4IXLRP.mjs → markdown-566XXB55.mjs} +24 -22
- package/dist/lib/node-esm/markdown-566XXB55.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/react-root-DCY6DKLC.mjs +29 -0
- package/dist/lib/node-esm/react-root-DCY6DKLC.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-OLN3XNND.mjs → react-surface-WZH7OAO3.mjs} +37 -36
- package/dist/lib/node-esm/react-surface-WZH7OAO3.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-F2ODVNNW.mjs → settings-WKLJSP6R.mjs} +5 -5
- package/dist/lib/node-esm/{settings-F2ODVNNW.mjs.map → settings-WKLJSP6R.mjs.map} +1 -1
- package/dist/lib/node-esm/{state-62TQKQVB.mjs → state-X3W67GTL.mjs} +5 -5
- package/dist/lib/node-esm/{state-62TQKQVB.mjs.map → state-X3W67GTL.mjs.map} +1 -1
- package/dist/lib/node-esm/types/index.mjs +7 -9
- package/dist/types/src/ThreadPlugin.d.ts +1 -1
- package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
- package/dist/types/src/calls/media-manager.d.ts.map +1 -1
- package/dist/types/src/calls/types.d.ts.map +1 -1
- package/dist/types/src/calls/util/calls-service.d.ts +2 -0
- package/dist/types/src/calls/util/calls-service.d.ts.map +1 -1
- package/dist/types/src/calls/util/stub-media-streams.d.ts.map +1 -1
- package/dist/types/src/calls-service.stories.d.ts +0 -1
- package/dist/types/src/calls-service.stories.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/capabilities.d.ts +2 -2
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +1 -1
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/Call/Toolbar.d.ts +2 -2
- package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/CallDebugPanel.d.ts +7 -0
- package/dist/types/src/components/CallDebugPanel.d.ts.map +1 -1
- package/dist/types/src/components/ChannelContainer.d.ts +2 -2
- package/dist/types/src/components/ChannelContainer.d.ts.map +1 -1
- package/dist/types/src/components/ChannelContainer.stories.d.ts +75 -9
- package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/Chat.stories.d.ts +75 -7
- package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatContainer.d.ts +6 -5
- package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
- package/dist/types/src/components/Comments.stories.d.ts +4 -3
- package/dist/types/src/components/Comments.stories.d.ts.map +1 -1
- package/dist/types/src/components/CommentsContainer.d.ts +2 -2
- package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
- package/dist/types/src/components/CommentsThreadContainer.d.ts +8 -8
- package/dist/types/src/components/CommentsThreadContainer.d.ts.map +1 -1
- package/dist/types/src/components/Media/VideoObject.d.ts +2 -2
- package/dist/types/src/components/Media/VideoObject.d.ts.map +1 -1
- package/dist/types/src/components/Media/VideoObject.stories.d.ts +5 -3
- package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +1 -1
- package/dist/types/src/components/MessageContainer.d.ts +2 -2
- package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts +5 -3
- package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +5 -3
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts.map +1 -1
- package/dist/types/src/components/ThreadCompanion.d.ts +5 -0
- package/dist/types/src/components/ThreadCompanion.d.ts.map +1 -0
- package/dist/types/src/components/ThreadSettings.d.ts +1 -1
- package/dist/types/src/components/ThreadSettings.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +3 -3
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/components/testing.d.ts +3 -3
- package/dist/types/src/components/testing.d.ts.map +1 -1
- package/dist/types/src/extensions/threads.d.ts.map +1 -1
- package/dist/types/src/functions/create-proposals.d.ts +6 -0
- package/dist/types/src/functions/create-proposals.d.ts.map +1 -0
- package/dist/types/src/functions/index.d.ts +2 -0
- package/dist/types/src/functions/index.d.ts.map +1 -0
- package/dist/types/src/hooks/analytics.d.ts +2 -2
- package/dist/types/src/hooks/analytics.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +2 -2
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useVideoStreamTrack.d.ts +1 -1
- package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +1 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/testing/stories.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +74 -7
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Channel.d.ts +16 -0
- package/dist/types/src/types/Channel.d.ts.map +1 -0
- package/dist/types/src/types/{schema.d.ts → Thread.d.ts} +18 -28
- package/dist/types/src/types/Thread.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +2 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +31 -117
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +64 -60
- package/src/ThreadPlugin.tsx +139 -132
- package/src/calls/call-manager.ts +1 -1
- package/src/calls/media-manager.ts +11 -7
- package/src/calls/types.ts +7 -3
- package/src/calls/util/calls-service.ts +12 -7
- package/src/calls/util/stub-media-streams.ts +61 -3
- package/src/calls-service.stories.tsx +2 -5
- package/src/capabilities/app-graph-builder.ts +41 -30
- package/src/capabilities/blueprint-definition.ts +38 -0
- package/src/capabilities/capabilities.ts +7 -7
- package/src/capabilities/index.ts +1 -1
- package/src/capabilities/intent-resolver.ts +22 -60
- package/src/capabilities/markdown.ts +5 -3
- package/src/capabilities/react-root.tsx +2 -2
- package/src/capabilities/react-surface.tsx +24 -23
- package/src/components/Call/Call.tsx +1 -1
- package/src/components/Call/Toolbar.tsx +9 -9
- package/src/components/CallDebugPanel.tsx +112 -55
- package/src/components/CallSidebar.tsx +1 -1
- package/src/components/ChannelContainer.stories.tsx +10 -10
- package/src/components/ChannelContainer.tsx +19 -15
- package/src/components/Chat.stories.tsx +14 -19
- package/src/components/ChatContainer.tsx +30 -21
- package/src/components/Comments.stories.tsx +12 -17
- package/src/components/CommentsContainer.tsx +6 -7
- package/src/components/CommentsThreadContainer.tsx +32 -27
- package/src/components/Lobby/Lobby.tsx +1 -1
- package/src/components/Media/VideoObject.stories.tsx +12 -7
- package/src/components/Media/VideoObject.tsx +1 -1
- package/src/components/MessageContainer.tsx +6 -6
- package/src/components/Participant/Participant.tsx +1 -1
- package/src/components/ResponsiveGrid/ResponsiveContainer.stories.tsx +3 -4
- package/src/components/ResponsiveGrid/ResponsiveContainer.tsx +2 -2
- package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +4 -5
- package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +5 -5
- package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +5 -2
- package/src/components/{ThreadComplementary.tsx → ThreadCompanion.tsx} +41 -34
- package/src/components/ThreadSettings.tsx +4 -5
- package/src/components/index.ts +4 -4
- package/src/components/testing.ts +8 -8
- package/src/extensions/threads.ts +25 -16
- package/src/functions/create-proposals.ts +58 -0
- package/src/functions/index.ts +5 -0
- package/src/hooks/analytics.ts +4 -7
- package/src/hooks/index.ts +3 -2
- package/src/hooks/useVideoStreamTrack.tsx +1 -1
- package/src/meta.ts +9 -5
- package/src/testing/stories.ts +3 -6
- package/src/translations.ts +6 -4
- package/src/types/Channel.ts +27 -0
- package/src/types/Thread.ts +26 -0
- package/src/types/index.ts +2 -1
- package/src/types/types.ts +19 -27
- package/src/typings/peermetrics-webrtc-stats.d.ts +17 -1
- package/src/util.ts +1 -1
- package/dist/lib/browser/ChannelContainer-GHDNEZT2.mjs +0 -16
- package/dist/lib/browser/ChatContainer-42ALOWUA.mjs +0 -15
- package/dist/lib/browser/app-graph-builder-FHAOPO57.mjs.map +0 -7
- package/dist/lib/browser/chunk-2I277V52.mjs +0 -23
- package/dist/lib/browser/chunk-2I277V52.mjs.map +0 -7
- package/dist/lib/browser/chunk-2P3GVRHP.mjs.map +0 -7
- package/dist/lib/browser/chunk-4APCDRSH.mjs +0 -18
- package/dist/lib/browser/chunk-4APCDRSH.mjs.map +0 -7
- package/dist/lib/browser/chunk-EV4JWI7L.mjs +0 -17
- package/dist/lib/browser/chunk-EV4JWI7L.mjs.map +0 -7
- package/dist/lib/browser/chunk-GERVMFQW.mjs.map +0 -7
- package/dist/lib/browser/chunk-H63NDV62.mjs.map +0 -7
- package/dist/lib/browser/chunk-J26C57ZY.mjs.map +0 -7
- package/dist/lib/browser/chunk-KEXJGF2R.mjs.map +0 -7
- package/dist/lib/browser/chunk-KTWYVC5X.mjs +0 -147
- package/dist/lib/browser/chunk-KTWYVC5X.mjs.map +0 -7
- package/dist/lib/browser/chunk-TQJYDFBU.mjs.map +0 -7
- package/dist/lib/browser/chunk-TUSBPMNU.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-IB5GYU2D.mjs.map +0 -7
- package/dist/lib/browser/markdown-Z677YORA.mjs.map +0 -7
- package/dist/lib/browser/react-root-PTTTW2MO.mjs +0 -28
- package/dist/lib/browser/react-root-PTTTW2MO.mjs.map +0 -7
- package/dist/lib/browser/react-surface-X2VB6P37.mjs.map +0 -7
- package/dist/lib/browser/toolkit-KUPIIFC6.mjs +0 -80
- package/dist/lib/browser/toolkit-KUPIIFC6.mjs.map +0 -7
- package/dist/lib/node-esm/ChannelContainer-D5E2S6AI.mjs +0 -17
- package/dist/lib/node-esm/app-graph-builder-XEYWX5FC.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-57XR3LEF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CCE5LHBE.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CTZ75IFK.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GRLRWTRU.mjs +0 -19
- package/dist/lib/node-esm/chunk-GRLRWTRU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JR7KESLL.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NNKKNW57.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-P6E247RF.mjs +0 -148
- package/dist/lib/node-esm/chunk-P6E247RF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PYTVBN5J.mjs +0 -19
- package/dist/lib/node-esm/chunk-PYTVBN5J.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-S3D7DTBF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-UHZQTPXU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-UJ2QNRLS.mjs +0 -25
- package/dist/lib/node-esm/chunk-UJ2QNRLS.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-VIMI5VLH.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-FL4IXLRP.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-2HHRRUME.mjs +0 -29
- package/dist/lib/node-esm/react-root-2HHRRUME.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-OLN3XNND.mjs.map +0 -7
- package/dist/lib/node-esm/toolkit-KZIS7G36.mjs +0 -81
- package/dist/lib/node-esm/toolkit-KZIS7G36.mjs.map +0 -7
- package/dist/types/src/capabilities/toolkit.d.ts +0 -5
- package/dist/types/src/capabilities/toolkit.d.ts.map +0 -1
- package/dist/types/src/components/ThreadComplementary.d.ts +0 -5
- package/dist/types/src/components/ThreadComplementary.d.ts.map +0 -1
- package/dist/types/src/types/schema.d.ts.map +0 -1
- package/src/capabilities/toolkit.ts +0 -78
- package/src/types/schema.ts +0 -33
- /package/dist/lib/browser/{ChannelContainer-GHDNEZT2.mjs.map → ChannelContainer-MX5ABVGC.mjs.map} +0 -0
- /package/dist/lib/browser/{ChatContainer-42ALOWUA.mjs.map → ChatContainer-7F5Y6GXJ.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ChannelContainer-D5E2S6AI.mjs.map → ChannelContainer-2JJJ3IDK.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ChatContainer-4EGHKHIU.mjs.map → ChatContainer-C526R4DI.mjs.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/util.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Match from 'effect/Match';\n\nimport { generateName } from '@dxos/display-name';\nimport { type Selection } from '@dxos/plugin-attention';\nimport { type PublicKey } from '@dxos/react-client';\nimport { type Identity } from '@dxos/react-client/halo';\nimport { type MessageMetadata } from '@dxos/react-ui-thread';\nimport { hexToFallback } from '@dxos/util';\n\nexport type MessagePropertiesProvider = (identityKey: PublicKey | undefined) => MessageMetadata;\n\nexport const getMessageMetadata = (id: string, identity?: Identity): MessageMetadata => {\n const fallback = hexToFallback(identity?.identityKey.toHex() ?? '0');\n return {\n id,\n authorId: identity?.did,\n authorName:\n identity?.profile?.displayName ??\n (identity?.identityKey ? generateName(identity.identityKey.toHex()) : undefined),\n authorAvatarProps: {\n hue: identity?.profile?.data?.hue ?? fallback.hue,\n emoji: identity?.profile?.data?.emoji ?? fallback.emoji,\n },\n };\n};\n\nexport const getAnchor = Match.type<Selection | undefined>().pipe(\n Match.when({ mode: 'single' }, (s) => s.id),\n Match.when({ mode: 'multi' }, (s) => (s.ids.length > 0 ? s.ids.join(',') : undefined)),\n Match.when({ mode: 'range' }, (s) => (s.from && s.to ? `${s.from}:${s.to}` : undefined)),\n Match.when({ mode: 'multi-range' }, (s) => s.ranges[0] && `${s.ranges[0].from}:${s.ranges[0].to}`),\n Match.when(undefined, () => undefined),\n Match.exhaustive,\n);\n"],
|
|
5
|
+
"mappings": ";AAIA,YAAYA,WAAW;AAEvB,SAASC,oBAAoB;AAK7B,SAASC,qBAAqB;AAIvB,IAAMC,qBAAqB,CAACC,IAAYC,aAAAA;AAC7C,QAAMC,WAAWC,cAAcF,UAAUG,YAAYC,MAAAA,KAAW,GAAA;AAChE,SAAO;IACLL;IACAM,UAAUL,UAAUM;IACpBC,YACEP,UAAUQ,SAASC,gBAClBT,UAAUG,cAAcO,aAAaV,SAASG,YAAYC,MAAK,CAAA,IAAMO;IACxEC,mBAAmB;MACjBC,KAAKb,UAAUQ,SAASM,MAAMD,OAAOZ,SAASY;MAC9CE,OAAOf,UAAUQ,SAASM,MAAMC,SAASd,SAASc;IACpD;EACF;AACF;AAEO,IAAMC,YAAkBC,WAAI,EAA0BC,KACrDC,WAAK;EAAEC,MAAM;AAAS,GAAG,CAACC,MAAMA,EAAEtB,EAAE,GACpCoB,WAAK;EAAEC,MAAM;AAAQ,GAAG,CAACC,MAAOA,EAAEC,IAAIC,SAAS,IAAIF,EAAEC,IAAIE,KAAK,GAAA,IAAOb,MAAAA,GACrEQ,WAAK;EAAEC,MAAM;AAAQ,GAAG,CAACC,MAAOA,EAAEI,QAAQJ,EAAEK,KAAK,GAAGL,EAAEI,IAAI,IAAIJ,EAAEK,EAAE,KAAKf,MAAAA,GACvEQ,WAAK;EAAEC,MAAM;AAAc,GAAG,CAACC,MAAMA,EAAEM,OAAO,CAAA,KAAM,GAAGN,EAAEM,OAAO,CAAA,EAAGF,IAAI,IAAIJ,EAAEM,OAAO,CAAA,EAAGD,EAAE,EAAE,GAC3FP,WAAKR,QAAW,MAAMA,MAAAA,GACtBiB,gBAAU;",
|
|
6
|
+
"names": ["Match", "generateName", "hexToFallback", "getMessageMetadata", "id", "identity", "fallback", "hexToFallback", "identityKey", "toHex", "authorId", "did", "authorName", "profile", "displayName", "generateName", "undefined", "authorAvatarProps", "hue", "data", "emoji", "getAnchor", "type", "pipe", "when", "mode", "s", "ids", "length", "join", "from", "to", "ranges", "exhaustive"]
|
|
7
|
+
}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useOnEditAnalytics,
|
|
3
3
|
useStatus
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-KOBXMDCI.mjs";
|
|
5
5
|
import {
|
|
6
6
|
getMessageMetadata
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-CP7E2HRE.mjs";
|
|
8
8
|
import {
|
|
9
9
|
meta
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-K2DUJRFJ.mjs";
|
|
11
11
|
|
|
12
12
|
// src/components/ChatContainer.tsx
|
|
13
13
|
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
14
14
|
import React2, { useLayoutEffect, useMemo, useRef as useRef2, useState as useState2 } from "react";
|
|
15
15
|
import { Obj, Ref as Ref2 } from "@dxos/echo";
|
|
16
|
-
import {
|
|
16
|
+
import { useMembers } from "@dxos/react-client/echo";
|
|
17
17
|
import { useIdentity as useIdentity2 } from "@dxos/react-client/halo";
|
|
18
18
|
import { Icon, ScrollArea, useThemeContext as useThemeContext2, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
19
19
|
import { createBasicExtensions as createBasicExtensions2, createThemeExtensions as createThemeExtensions2, listener } from "@dxos/react-ui-editor";
|
|
20
20
|
import { StackItem } from "@dxos/react-ui-stack";
|
|
21
21
|
import { mx as mx3 } from "@dxos/react-ui-theme";
|
|
22
|
-
import { MessageTextbox, Thread, threadLayout } from "@dxos/react-ui-thread";
|
|
23
|
-
import {
|
|
22
|
+
import { MessageTextbox, Thread as ThreadComponent, threadLayout } from "@dxos/react-ui-thread";
|
|
23
|
+
import { Message } from "@dxos/types";
|
|
24
24
|
import { isNonNullable } from "@dxos/util";
|
|
25
25
|
|
|
26
26
|
// src/components/command-extension.ts
|
|
@@ -58,7 +58,7 @@ var command = [
|
|
|
58
58
|
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
59
59
|
import { EditorView } from "@codemirror/view";
|
|
60
60
|
import React, { forwardRef, useCallback, useEffect, useRef, useState } from "react";
|
|
61
|
-
import { Surface } from "@dxos/app-framework";
|
|
61
|
+
import { Surface } from "@dxos/app-framework/react";
|
|
62
62
|
import { Ref } from "@dxos/echo";
|
|
63
63
|
import { PublicKey } from "@dxos/react-client";
|
|
64
64
|
import { useIdentity } from "@dxos/react-client/halo";
|
|
@@ -231,7 +231,7 @@ var MessageBlockObjectTile = /* @__PURE__ */ forwardRef(({ subject }, forwardedR
|
|
|
231
231
|
}
|
|
232
232
|
return /* @__PURE__ */ React.createElement("div", {
|
|
233
233
|
role: "group",
|
|
234
|
-
className: mx2("grid col-span-3
|
|
234
|
+
className: mx2("grid col-span-3 plb-1 pr-4", hoverableControls, hoverableFocusedWithinControls),
|
|
235
235
|
ref: forwardedRef
|
|
236
236
|
}, /* @__PURE__ */ React.createElement(Surface, {
|
|
237
237
|
role: "card",
|
|
@@ -266,11 +266,11 @@ var ChatHeading = ({ attendableId }) => {
|
|
|
266
266
|
_effect.f();
|
|
267
267
|
}
|
|
268
268
|
};
|
|
269
|
-
var ChatContainer = ({ space, thread, context, current, autoFocusTextbox }) => {
|
|
269
|
+
var ChatContainer = ({ classNames, space, thread, context, current, autoFocusTextbox }) => {
|
|
270
270
|
var _effect = _useSignals2();
|
|
271
271
|
try {
|
|
272
272
|
const { t } = useTranslation2(meta.id);
|
|
273
|
-
const id =
|
|
273
|
+
const id = Obj.getDXN(thread).toString();
|
|
274
274
|
const identity = useIdentity2();
|
|
275
275
|
const members = useMembers(space?.key);
|
|
276
276
|
const activity = useStatus(space, id);
|
|
@@ -289,7 +289,7 @@ var ChatContainer = ({ space, thread, context, current, autoFocusTextbox }) => {
|
|
|
289
289
|
themeMode
|
|
290
290
|
}),
|
|
291
291
|
listener({
|
|
292
|
-
onChange: (text) => messageRef.current = text
|
|
292
|
+
onChange: ({ text }) => messageRef.current = text
|
|
293
293
|
}),
|
|
294
294
|
command
|
|
295
295
|
], [
|
|
@@ -307,7 +307,7 @@ var ChatContainer = ({ space, thread, context, current, autoFocusTextbox }) => {
|
|
|
307
307
|
if (!messageRef.current?.length) {
|
|
308
308
|
return false;
|
|
309
309
|
}
|
|
310
|
-
thread.messages.push(Ref2.make(Obj.make(
|
|
310
|
+
thread.messages.push(Ref2.make(Obj.make(Message.Message, {
|
|
311
311
|
created: (/* @__PURE__ */ new Date()).toISOString(),
|
|
312
312
|
sender: {
|
|
313
313
|
identityDid: identity.did
|
|
@@ -328,12 +328,13 @@ var ChatContainer = ({ space, thread, context, current, autoFocusTextbox }) => {
|
|
|
328
328
|
rerenderEditor();
|
|
329
329
|
return true;
|
|
330
330
|
};
|
|
331
|
-
return /* @__PURE__ */ React2.createElement(
|
|
331
|
+
return /* @__PURE__ */ React2.createElement(ThreadComponent.Root, {
|
|
332
332
|
current,
|
|
333
333
|
id,
|
|
334
334
|
classNames: [
|
|
335
|
-
"bs-full
|
|
336
|
-
"transition-[padding-block-end] [[data-sidebar-inline-start-state=open]_&]:lg:pbe-0"
|
|
335
|
+
"bs-full grid-rows-[1fr_min-content_min-content] overflow-hidden",
|
|
336
|
+
"transition-[padding-block-end] [[data-sidebar-inline-start-state=open]_&]:lg:pbe-0",
|
|
337
|
+
classNames
|
|
337
338
|
]
|
|
338
339
|
}, /* @__PURE__ */ React2.createElement(ScrollArea.Root, {
|
|
339
340
|
classNames: "col-span-2"
|
|
@@ -355,7 +356,7 @@ var ChatContainer = ({ space, thread, context, current, autoFocusTextbox }) => {
|
|
|
355
356
|
autoFocus,
|
|
356
357
|
onSend: handleCreate,
|
|
357
358
|
...textboxMetadata
|
|
358
|
-
}), /* @__PURE__ */ React2.createElement(
|
|
359
|
+
}), /* @__PURE__ */ React2.createElement(ThreadComponent.Status, {
|
|
359
360
|
activity
|
|
360
361
|
}, t("activity message")));
|
|
361
362
|
} finally {
|
|
@@ -373,4 +374,4 @@ export {
|
|
|
373
374
|
ChatContainer,
|
|
374
375
|
ChatContainer_default
|
|
375
376
|
};
|
|
376
|
-
//# sourceMappingURL=chunk-
|
|
377
|
+
//# sourceMappingURL=chunk-FR6MEAZI.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/ChatContainer.tsx", "../../../src/components/command-extension.ts", "../../../src/components/MessageContainer.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useLayoutEffect, useMemo, useRef, useState } from 'react';\n\nimport { Obj, Ref } from '@dxos/echo';\nimport { type Space, useMembers } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { Icon, ScrollArea, type ThemedClassName, useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { createBasicExtensions, createThemeExtensions, listener } from '@dxos/react-ui-editor';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { mx } from '@dxos/react-ui-theme';\nimport {\n MessageTextbox,\n type MessageTextboxProps,\n Thread as ThreadComponent,\n type ThreadRootProps,\n threadLayout,\n} from '@dxos/react-ui-thread';\nimport { Message } from '@dxos/types';\nimport { isNonNullable } from '@dxos/util';\n\nimport { useStatus } from '../hooks';\nimport { meta } from '../meta';\nimport { type Thread } from '../types';\nimport { getMessageMetadata } from '../util';\n\nimport { command } from './command-extension';\nimport { MessageContainer } from './MessageContainer';\n\nexport const ChatHeading = ({ attendableId }: { attendableId?: string }) => {\n const { t } = useTranslation(meta.id);\n return (\n <div role='none' className='flex items-center'>\n <StackItem.SigilButton attendableId={attendableId}>\n <Icon icon='ph--chat--regular' size={5} />\n </StackItem.SigilButton>\n <StackItem.HeadingLabel attendableId={attendableId}>{t('chat heading')}</StackItem.HeadingLabel>\n </div>\n );\n};\n\nexport type ChatContainerProps = ThemedClassName<\n {\n space: Space;\n thread: Thread.Thread;\n context?: Obj.Any;\n autoFocusTextbox?: boolean;\n } & Pick<ThreadRootProps, 'current'>\n>;\n\nexport const ChatContainer = ({\n classNames,\n space,\n thread,\n context,\n current,\n autoFocusTextbox,\n}: ChatContainerProps) => {\n const { t } = useTranslation(meta.id);\n const id = Obj.getDXN(thread).toString();\n const identity = useIdentity()!;\n const members = useMembers(space?.key);\n const activity = useStatus(space, id);\n // TODO(wittjosiah): This is a hack to reset the editor after a message is sent.\n const [_count, _setCount] = useState(0);\n const rerenderEditor = () => _setCount((count) => count + 1);\n const [autoFocus, setAutoFocus] = useState(autoFocusTextbox);\n const threadScrollRef = useRef<HTMLDivElement | null>(null);\n const { themeMode } = useThemeContext();\n\n const textboxMetadata = getMessageMetadata(id, identity);\n const messageRef = useRef('');\n const extensions = useMemo(\n () => [\n createBasicExtensions({ placeholder: t('message placeholder') }),\n createThemeExtensions({ themeMode }),\n listener({ onChange: ({ text }) => (messageRef.current = text) }),\n command,\n ],\n [themeMode, _count],\n );\n\n // TODO(thure): Factor out.\n // TODO(thure): `flex-col-reverse` does not work to start the container scrolled to the end while also using\n // `ScrollArea`. This is the least-bad way I found to scroll to the end on mount. Note that 0ms was insufficient\n // for the desired effect; this is likely hardware-dependent and should be reevaluated.\n const scrollToEnd = (behavior: ScrollBehavior) =>\n setTimeout(() => threadScrollRef.current?.scrollIntoView({ behavior, block: 'end' }), 10);\n\n useLayoutEffect(() => {\n scrollToEnd('instant');\n }, []);\n\n // TODO(burdon): Change to model.\n const handleCreate: MessageTextboxProps['onSend'] = () => {\n if (!messageRef.current?.length) {\n return false;\n }\n\n thread.messages.push(\n Ref.make(\n Obj.make(Message.Message, {\n created: new Date().toISOString(),\n sender: { identityDid: identity.did },\n blocks: [{ _tag: 'text', text: messageRef.current }],\n properties: context ? { context: Ref.make(context) } : undefined,\n }),\n ),\n );\n\n messageRef.current = '';\n setAutoFocus(true);\n scrollToEnd('smooth');\n rerenderEditor();\n return true;\n };\n\n return (\n <ThreadComponent.Root\n current={current}\n id={id}\n classNames={[\n 'bs-full grid-rows-[1fr_min-content_min-content] overflow-hidden',\n 'transition-[padding-block-end] [[data-sidebar-inline-start-state=open]_&]:lg:pbe-0',\n classNames,\n ]}\n >\n <ScrollArea.Root classNames='col-span-2'>\n <ScrollArea.Viewport classNames='overflow-anchored after:overflow-anchor after:block after:bs-px after:-mbs-px [&>div]:min-bs-full [&>div]:!grid [&>div]:grid-rows-[1fr_0]'>\n <div role='none' className={mx(threadLayout, 'place-self-end')}>\n {thread.messages\n .map((message) => message.target)\n .filter(isNonNullable)\n .map((message) => (\n <MessageContainer key={message.id} message={message} members={members} />\n ))}\n </div>\n {/* NOTE(thure): This can’t also be the `overflow-anchor` because `ScrollArea` injects an interceding node that contains this necessary ref’d element. */}\n <div role='none' className='bs-px -mbs-px' ref={threadScrollRef} />\n <ScrollArea.Scrollbar>\n <ScrollArea.Thumb />\n </ScrollArea.Scrollbar>\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n\n <MessageTextbox extensions={extensions} autoFocus={autoFocus} onSend={handleCreate} {...textboxMetadata} />\n <ThreadComponent.Status activity={activity}>{t('activity message')}</ThreadComponent.Status>\n </ThreadComponent.Root>\n );\n};\n\nexport default ChatContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { HighlightStyle, StreamLanguage, syntaxHighlighting } from '@codemirror/language';\nimport { type Extension } from '@codemirror/state';\n\nimport { tags } from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\n\n/**\n * https://github.com/codemirror/stream-parser/blob/main/test/test-stream-parser.ts\n */\nconst parser = StreamLanguage.define<{ count: number }>({\n startState: () => ({ count: 0 }),\n token: (stream, state) => {\n state.count++;\n if (stream.eatSpace()) {\n return null;\n }\n if (state.count === 1 && stream.match(/^(\\/\\w+)/)) {\n return 'tagName';\n }\n stream.next();\n return null;\n },\n});\n\nconst styles = HighlightStyle.define([\n {\n tag: tags.tagName,\n class: mx('dx-tag dx-tag--indigo text-baseText font-medium'),\n },\n]);\n\nexport const command: Extension = [parser, syntaxHighlighting(styles)];\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { EditorView } from '@codemirror/view';\nimport React, { forwardRef, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { Surface } from '@dxos/app-framework/react';\nimport { type Obj, Ref, type Type } from '@dxos/echo';\nimport { PublicKey } from '@dxos/react-client';\nimport { type SpaceMember } from '@dxos/react-client/echo';\nimport { type Identity, useIdentity } from '@dxos/react-client/halo';\nimport { IconButton, useOnTransition, useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { createBasicExtensions, createThemeExtensions, useTextEditor } from '@dxos/react-ui-editor';\nimport { hoverableControlItem, hoverableControls, hoverableFocusedWithinControls, mx } from '@dxos/react-ui-theme';\nimport { MessageHeading, MessageRoot } from '@dxos/react-ui-thread';\nimport { type ContentBlock, type Message } from '@dxos/types';\n\nimport { useOnEditAnalytics } from '../hooks';\nimport { meta } from '../meta';\nimport { getMessageMetadata } from '../util';\n\nimport { command } from './command-extension';\n\nexport const buttonGroupClassNames = 'flex flex-row items-center gap-0.5 pie-2';\nexport const buttonClassNames = '!p-1 transition-opacity';\n\nexport type MessageContainerProps = {\n message: Message.Message;\n members: SpaceMember[];\n editable?: boolean;\n onDelete?: (id: string) => void;\n onAcceptProposal?: (id: string) => void;\n};\n\nexport const MessageContainer = ({\n message,\n members,\n editable = false,\n onDelete,\n onAcceptProposal,\n}: MessageContainerProps) => {\n const { t } = useTranslation(meta.id);\n const senderIdentity = members.find(\n (member) =>\n (message.sender.identityDid && member.identity.did === message.sender.identityDid) ||\n (message.sender.identityKey && PublicKey.equals(member.identity.identityKey, message.sender.identityKey)),\n )?.identity;\n const messageMetadata = getMessageMetadata(message.id, senderIdentity);\n const userIsAuthor = useIdentity()?.did === messageMetadata.authorId;\n const [editing, setEditing] = useState(false);\n const handleEdit = useCallback(() => setEditing((editing) => !editing), []);\n const handleDelete = useCallback(() => onDelete?.(message.id), [message, onDelete]);\n const handleAcceptProposal = useCallback(() => onAcceptProposal?.(message.id), [message, onAcceptProposal]);\n const textBlock = message.blocks.find((block) => block._tag === 'text');\n const proposalBlock = message.blocks.find((block) => block._tag === 'proposal');\n const references = message.blocks.filter((block) => block._tag === 'reference').map((block) => block.reference);\n\n useOnEditAnalytics(message, textBlock, !!editing);\n\n return (\n <MessageRoot {...messageMetadata} classNames={[hoverableControls, hoverableFocusedWithinControls]}>\n <MessageHeading authorName={messageMetadata.authorName} timestamp={messageMetadata.timestamp}>\n <div role='none' className={buttonGroupClassNames}>\n {userIsAuthor && editable && (\n <IconButton\n data-testid={editing ? 'thread.message.save' : 'thread.message.edit'}\n variant='ghost'\n icon={editing ? 'ph--check--regular' : 'ph--pencil-simple--regular'}\n iconOnly\n label={t(editing ? 'save message label' : 'edit message label')}\n classNames={[buttonClassNames, hoverableControlItem]}\n onClick={handleEdit}\n />\n )}\n {/* TODO(wittjosiah): Proposal controls should probably be hoisted to thread level. */}\n {proposalBlock && onAcceptProposal && (\n <IconButton\n data-testid='thread.message.accept'\n variant='ghost'\n icon='ph--check--regular'\n iconOnly\n label={t('accept proposal label')}\n classNames={[buttonClassNames, hoverableControlItem]}\n onClick={handleAcceptProposal}\n />\n )}\n {onDelete && (\n <IconButton\n data-testid='thread.message.delete'\n variant='ghost'\n icon='ph--x--regular'\n iconOnly\n label={t('delete message label')}\n classNames={[buttonClassNames, hoverableControlItem]}\n onClick={handleDelete}\n />\n )}\n </div>\n </MessageHeading>\n {textBlock && <TextboxBlock block={textBlock} isAuthor={userIsAuthor} editing={editing} />}\n {proposalBlock && <ProposalBlock block={proposalBlock} />}\n {Ref.Array.targets(references).map((reference, index) => (\n <MessagePart key={index} part={reference} />\n ))}\n </MessageRoot>\n );\n};\n\nconst MessagePart = ({ part }: { part: Type.Expando }) => {\n return <MessageBlockObjectTile subject={part} />;\n};\n\nconst TextboxBlock = ({\n block,\n isAuthor,\n editing,\n}: {\n block: ContentBlock.Text;\n editing?: boolean;\n isAuthor?: boolean;\n identity?: Identity;\n}) => {\n const { themeMode } = useThemeContext();\n const inMemoryContentRef = useRef(block.text);\n\n const handleDocumentChange = useCallback((newState: string) => {\n inMemoryContentRef.current = newState;\n }, []);\n\n const saveDocumentChange = useCallback(() => {\n block.text = inMemoryContentRef.current;\n }, [block]);\n\n useOnTransition(editing, true, false, saveDocumentChange);\n\n const { parentRef, focusAttributes, view } = useTextEditor(\n () => ({\n initialValue: block.text,\n extensions: [\n createBasicExtensions({ readOnly: !isAuthor || !editing }),\n createThemeExtensions({ themeMode }),\n command,\n EditorView.updateListener.of((update) => {\n if (update.docChanged) {\n handleDocumentChange(update.state.doc.toString());\n }\n }),\n ],\n }),\n [block.text, editing, isAuthor, themeMode, handleDocumentChange],\n );\n\n useEffect(() => {\n editing && view?.focus();\n }, [editing, view]);\n\n return <div role='none' ref={parentRef} className='mie-4' {...focusAttributes} />;\n};\n\nconst ProposalBlock = ({ block }: { block: ContentBlock.Proposal }) => {\n return (\n <div role='none' className='mie-4 italic'>\n {block.text}\n </div>\n );\n};\n\nconst MessageBlockObjectTile = forwardRef<HTMLDivElement, { subject: Obj.Any }>(({ subject }, forwardedRef) => {\n // TODO(burdon): Use annotation to get title.\n let title = (subject as any).name ?? (subject as any).title ?? (subject as any).type ?? 'Object';\n if (typeof title !== 'string') {\n title = title?.content ?? '';\n }\n\n return (\n <div\n role='group'\n className={mx('grid col-span-3 plb-1 pr-4', hoverableControls, hoverableFocusedWithinControls)}\n ref={forwardedRef}\n >\n <Surface role='card' limit={1} data={{ subject }} fallback={title} />\n </div>\n );\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "useLayoutEffect", "useMemo", "useRef", "useState", "Obj", "Ref", "useMembers", "useIdentity", "Icon", "ScrollArea", "useThemeContext", "useTranslation", "createBasicExtensions", "createThemeExtensions", "listener", "StackItem", "mx", "MessageTextbox", "Thread", "ThreadComponent", "threadLayout", "Message", "isNonNullable", "HighlightStyle", "StreamLanguage", "syntaxHighlighting", "tags", "mx", "parser", "StreamLanguage", "define", "startState", "count", "token", "stream", "state", "eatSpace", "match", "next", "styles", "HighlightStyle", "tag", "tags", "tagName", "class", "mx", "command", "syntaxHighlighting", "EditorView", "React", "forwardRef", "useCallback", "useEffect", "useRef", "useState", "Surface", "Ref", "PublicKey", "useIdentity", "IconButton", "useOnTransition", "useThemeContext", "useTranslation", "createBasicExtensions", "createThemeExtensions", "useTextEditor", "hoverableControlItem", "hoverableControls", "hoverableFocusedWithinControls", "mx", "MessageHeading", "MessageRoot", "buttonGroupClassNames", "buttonClassNames", "MessageContainer", "message", "members", "editable", "onDelete", "onAcceptProposal", "t", "useTranslation", "meta", "id", "senderIdentity", "find", "member", "sender", "identityDid", "identity", "did", "identityKey", "PublicKey", "equals", "messageMetadata", "getMessageMetadata", "userIsAuthor", "useIdentity", "authorId", "editing", "setEditing", "useState", "handleEdit", "useCallback", "handleDelete", "handleAcceptProposal", "textBlock", "blocks", "block", "_tag", "proposalBlock", "references", "filter", "map", "reference", "useOnEditAnalytics", "MessageRoot", "classNames", "hoverableControls", "hoverableFocusedWithinControls", "MessageHeading", "authorName", "timestamp", "div", "role", "className", "IconButton", "data-testid", "variant", "icon", "iconOnly", "label", "hoverableControlItem", "onClick", "TextboxBlock", "isAuthor", "ProposalBlock", "Ref", "Array", "targets", "index", "MessagePart", "key", "part", "MessageBlockObjectTile", "subject", "themeMode", "useThemeContext", "inMemoryContentRef", "useRef", "text", "handleDocumentChange", "newState", "current", "saveDocumentChange", "useOnTransition", "parentRef", "focusAttributes", "view", "useTextEditor", "initialValue", "extensions", "createBasicExtensions", "readOnly", "createThemeExtensions", "command", "EditorView", "updateListener", "of", "update", "docChanged", "state", "doc", "toString", "useEffect", "focus", "ref", "forwardRef", "forwardedRef", "title", "name", "type", "content", "mx", "Surface", "limit", "data", "fallback", "ChatHeading", "attendableId", "t", "useTranslation", "meta", "id", "React", "div", "role", "className", "StackItem", "SigilButton", "Icon", "icon", "size", "HeadingLabel", "ChatContainer", "classNames", "space", "thread", "context", "current", "autoFocusTextbox", "Obj", "getDXN", "toString", "identity", "useIdentity", "members", "useMembers", "key", "activity", "useStatus", "_count", "_setCount", "useState", "rerenderEditor", "count", "autoFocus", "setAutoFocus", "threadScrollRef", "useRef", "themeMode", "useThemeContext", "textboxMetadata", "getMessageMetadata", "messageRef", "extensions", "useMemo", "createBasicExtensions", "placeholder", "createThemeExtensions", "listener", "onChange", "text", "command", "scrollToEnd", "behavior", "setTimeout", "scrollIntoView", "block", "useLayoutEffect", "handleCreate", "length", "messages", "push", "Ref", "make", "Message", "created", "Date", "toISOString", "sender", "identityDid", "did", "blocks", "_tag", "properties", "undefined", "ThreadComponent", "Root", "ScrollArea", "Viewport", "mx", "threadLayout", "map", "message", "target", "filter", "isNonNullable", "MessageContainer", "ref", "Scrollbar", "Thumb", "MessageTextbox", "onSend", "Status"]
|
|
7
|
+
}
|
|
@@ -1,26 +1,27 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ThreadCapabilities
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BBTXGRIR.mjs";
|
|
4
4
|
import {
|
|
5
5
|
ChatContainer_default
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-FR6MEAZI.mjs";
|
|
7
7
|
import {
|
|
8
8
|
useDebugMode
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-KOBXMDCI.mjs";
|
|
10
10
|
import {
|
|
11
11
|
meta
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-K2DUJRFJ.mjs";
|
|
13
13
|
|
|
14
14
|
// src/components/ChannelContainer.tsx
|
|
15
15
|
import { useSignals as _useSignals10 } from "@preact-signals/safe-react/tracking";
|
|
16
|
-
import {
|
|
16
|
+
import { Atom } from "@effect-atom/atom-react";
|
|
17
17
|
import React10, { useCallback as useCallback2, useEffect as useEffect6, useMemo as useMemo4, useState as useState4 } from "react";
|
|
18
|
-
import { useCapabilities, useCapability as useCapability4 } from "@dxos/app-framework";
|
|
18
|
+
import { useCapabilities, useCapability as useCapability4 } from "@dxos/app-framework/react";
|
|
19
19
|
import { Context } from "@dxos/context";
|
|
20
20
|
import { failUndefined } from "@dxos/debug";
|
|
21
|
+
import { Obj as Obj2 } from "@dxos/echo";
|
|
21
22
|
import { log } from "@dxos/log";
|
|
22
23
|
import { useClient } from "@dxos/react-client";
|
|
23
|
-
import {
|
|
24
|
+
import { getSpace } from "@dxos/react-client/echo";
|
|
24
25
|
import { useIdentity } from "@dxos/react-client/halo";
|
|
25
26
|
import { ElevationProvider, Input, useTranslation as useTranslation3 } from "@dxos/react-ui";
|
|
26
27
|
import { ControlGroup, ControlGroupButton, ControlItemInput } from "@dxos/react-ui-form";
|
|
@@ -31,7 +32,7 @@ import { StackItem } from "@dxos/react-ui-stack";
|
|
|
31
32
|
// src/components/Call/Call.tsx
|
|
32
33
|
import { useSignals as _useSignals9 } from "@preact-signals/safe-react/tracking";
|
|
33
34
|
import React9 from "react";
|
|
34
|
-
import { useCapability as useCapability3 } from "@dxos/app-framework";
|
|
35
|
+
import { useCapability as useCapability3 } from "@dxos/app-framework/react";
|
|
35
36
|
|
|
36
37
|
// src/components/Media/AudioStream.tsx
|
|
37
38
|
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
@@ -109,7 +110,7 @@ var VideoObject = /* @__PURE__ */ memo(/* @__PURE__ */ forwardRef(({ videoStream
|
|
|
109
110
|
internalRef.current
|
|
110
111
|
]);
|
|
111
112
|
return /* @__PURE__ */ React2.createElement("video", {
|
|
112
|
-
className: mx("
|
|
113
|
+
className: mx("is-full aspect-video", flip && "scale-x-[-1]", contain ? "object-contain" : "object-cover", classNames),
|
|
113
114
|
ref: (v) => {
|
|
114
115
|
internalRef.current = v;
|
|
115
116
|
if (ref === null) {
|
|
@@ -132,7 +133,7 @@ VideoObject.displayName = "VideoObject";
|
|
|
132
133
|
// src/components/Participant/Participant.tsx
|
|
133
134
|
import { useSignals as _useSignals6 } from "@preact-signals/safe-react/tracking";
|
|
134
135
|
import React6, { memo as memo2, useMemo as useMemo2 } from "react";
|
|
135
|
-
import { useCapability } from "@dxos/app-framework";
|
|
136
|
+
import { useCapability } from "@dxos/app-framework/react";
|
|
136
137
|
|
|
137
138
|
// src/components/ResponsiveGrid/ResponsiveContainer.tsx
|
|
138
139
|
import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
|
|
@@ -145,13 +146,13 @@ var ResponsiveContainer = ({ children }) => {
|
|
|
145
146
|
// Outer container that takes full size of parent.
|
|
146
147
|
/* @__PURE__ */ React3.createElement("div", {
|
|
147
148
|
role: "none",
|
|
148
|
-
className: "relative flex
|
|
149
|
+
className: "relative flex is-full bs-full"
|
|
149
150
|
}, /* @__PURE__ */ React3.createElement("div", {
|
|
150
151
|
role: "none",
|
|
151
152
|
className: "absolute inset-0 flex justify-center items-center"
|
|
152
153
|
}, /* @__PURE__ */ React3.createElement("div", {
|
|
153
154
|
role: "none",
|
|
154
|
-
className: mx2("max-
|
|
155
|
+
className: mx2("max-bs-full max-is-full is-auto bs-auto aspect-video")
|
|
155
156
|
}, children)))
|
|
156
157
|
);
|
|
157
158
|
} finally {
|
|
@@ -169,7 +170,7 @@ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/components
|
|
|
169
170
|
var ASPECT_RATIO = 16 / 9;
|
|
170
171
|
var MIN_GALLERY_HEIGHT = 250;
|
|
171
172
|
var DEFAULT_GAP = 8;
|
|
172
|
-
var maxImageSize = "
|
|
173
|
+
var maxImageSize = "is-[2560px] bs-[1440px]";
|
|
173
174
|
var defaultGetId = (item) => item.id;
|
|
174
175
|
var ResponsiveGrid = ({ classNames, Cell, gap = DEFAULT_GAP, getId: getId2 = defaultGetId, items, pinned, autoHideGallery = false, debug, onPinnedChange }) => {
|
|
175
176
|
var _effect = _useSignals4();
|
|
@@ -261,11 +262,11 @@ var ResponsiveGrid = ({ classNames, Cell, gap = DEFAULT_GAP, getId: getId2 = def
|
|
|
261
262
|
]);
|
|
262
263
|
return /* @__PURE__ */ React4.createElement("div", {
|
|
263
264
|
ref: containerRef,
|
|
264
|
-
className: mx3("relative
|
|
265
|
+
className: mx3("relative is-full bs-full", classNames)
|
|
265
266
|
}, /* @__PURE__ */ React4.createElement("div", {
|
|
266
267
|
className: "absolute inset-0 flex flex-col grow gap-2"
|
|
267
268
|
}, pinnedItem && /* @__PURE__ */ React4.createElement("div", {
|
|
268
|
-
className: mx3("flex grow-[2] shrink overflow-hidden justify-center items-center", hideGallery && "
|
|
269
|
+
className: mx3("flex grow-[2] shrink overflow-hidden justify-center items-center", hideGallery && "bs-full"),
|
|
269
270
|
style: hideGallery ? {} : {
|
|
270
271
|
height: dividerHeight
|
|
271
272
|
}
|
|
@@ -282,7 +283,7 @@ var ResponsiveGrid = ({ classNames, Cell, gap = DEFAULT_GAP, getId: getId2 = def
|
|
|
282
283
|
style: {
|
|
283
284
|
width: cellWidth
|
|
284
285
|
},
|
|
285
|
-
className: "flex
|
|
286
|
+
className: "flex bs-full"
|
|
286
287
|
}, /* @__PURE__ */ React4.createElement(SoloItem, {
|
|
287
288
|
id: getId2(mainItems[0]),
|
|
288
289
|
debug
|
|
@@ -296,7 +297,7 @@ var ResponsiveGrid = ({ classNames, Cell, gap = DEFAULT_GAP, getId: getId2 = def
|
|
|
296
297
|
}, mainItems.map((item) => /* @__PURE__ */ React4.createElement("div", {
|
|
297
298
|
key: getId2(item),
|
|
298
299
|
"data-grid-item": getId2(item),
|
|
299
|
-
className: mx3("aspect-video max-
|
|
300
|
+
className: mx3("aspect-video max-bs-full max-is-full is-auto bs-auto", debug && "border border-primary-500")
|
|
300
301
|
}))))), /* @__PURE__ */ React4.createElement("div", {
|
|
301
302
|
className: mx3(debug && "opacity-10")
|
|
302
303
|
}, bounds.map(([item, bounds2]) => /* @__PURE__ */ React4.createElement(Cell, {
|
|
@@ -424,7 +425,7 @@ var ResponsiveGridItem = ({ children, classNames, item, style, name, self, pinne
|
|
|
424
425
|
speaking
|
|
425
426
|
]);
|
|
426
427
|
return /* @__PURE__ */ React5.createElement("div", {
|
|
427
|
-
className: mx4("relative
|
|
428
|
+
className: mx4("relative is-full bs-full group", "rounded-md outline outline-2 outline-neutral-900 transition-[outline-color] duration-500", speakingIndicator ? "outline-green-500" : !video && "outline-separator", classNames),
|
|
428
429
|
style
|
|
429
430
|
}, children, onClick && /* @__PURE__ */ React5.createElement("div", {
|
|
430
431
|
className: "z-10 absolute top-1 right-1 flex"
|
|
@@ -441,7 +442,7 @@ var ResponsiveGridItem = ({ children, classNames, item, style, name, self, pinne
|
|
|
441
442
|
icon: "ph--broadcast--regular",
|
|
442
443
|
size: pinned ? 5 : 4
|
|
443
444
|
}), /* @__PURE__ */ React5.createElement("div", {
|
|
444
|
-
className: mx4("bg-neutral-800 text-neutral-100
|
|
445
|
+
className: mx4("bg-neutral-800 text-neutral-100 plb-0.5 truncate rounded", pinned ? "pli-2" : "pli-1 text-xs")
|
|
445
446
|
}, name)), /* @__PURE__ */ React5.createElement("div", {
|
|
446
447
|
className: "z-10 absolute bottom-1 left-1 flex"
|
|
447
448
|
}, speaking && /* @__PURE__ */ React5.createElement(Waveform, {
|
|
@@ -585,10 +586,10 @@ var ParticipantGrid = ({ classNames, self, users, fullscreen, debug }) => {
|
|
|
585
586
|
// src/components/Call/Toolbar.tsx
|
|
586
587
|
import { useSignals as _useSignals8 } from "@preact-signals/safe-react/tracking";
|
|
587
588
|
import React8 from "react";
|
|
588
|
-
import { useAppGraph, useCapability as useCapability2 } from "@dxos/app-framework";
|
|
589
|
+
import { useAppGraph, useCapability as useCapability2 } from "@dxos/app-framework/react";
|
|
590
|
+
import { Obj } from "@dxos/echo";
|
|
589
591
|
import { useActions, useNode } from "@dxos/plugin-graph";
|
|
590
|
-
import {
|
|
591
|
-
import { Icon as Icon2, IconButton as IconButton2, Toolbar as NativeToolbar, toLocalizedString, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
592
|
+
import { Icon as Icon2, IconButton as IconButton2, Toolbar as NaturalToolbar, toLocalizedString, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
592
593
|
import { groupHoverControlItemWithTransition as groupHoverControlItemWithTransition2, mx as mx5 } from "@dxos/react-ui-theme";
|
|
593
594
|
var Toolbar = ({ classNames, channel, participants, autoHideControls = true, onJoin, onLeave }) => {
|
|
594
595
|
var _effect = _useSignals8();
|
|
@@ -596,13 +597,13 @@ var Toolbar = ({ classNames, channel, participants, autoHideControls = true, onJ
|
|
|
596
597
|
const { t } = useTranslation2(meta.id);
|
|
597
598
|
const { graph } = useAppGraph();
|
|
598
599
|
const call = useCapability2(ThreadCapabilities.CallManager);
|
|
599
|
-
const node = useNode(graph, channel &&
|
|
600
|
+
const node = useNode(graph, channel && Obj.getDXN(channel).toString());
|
|
600
601
|
const actions = useActions(graph, node?.id).filter((action) => action.properties.disposition === "toolbar");
|
|
601
602
|
const isScreensharing = call.media.screenshareTrack !== void 0;
|
|
602
603
|
const canSharescreen = typeof navigator.mediaDevices !== "undefined" && navigator.mediaDevices.getDisplayMedia !== void 0;
|
|
603
604
|
return /* @__PURE__ */ React8.createElement("div", {
|
|
604
605
|
className: mx5("z-20 flex justify-center m-8", autoHideControls && groupHoverControlItemWithTransition2)
|
|
605
|
-
}, /* @__PURE__ */ React8.createElement(
|
|
606
|
+
}, /* @__PURE__ */ React8.createElement(NaturalToolbar.Root, {
|
|
606
607
|
classNames: [
|
|
607
608
|
"p-2 bg-modalSurface rounded-md shadow-md",
|
|
608
609
|
classNames
|
|
@@ -644,7 +645,7 @@ var Toolbar = ({ classNames, channel, participants, autoHideControls = true, onJ
|
|
|
644
645
|
}, /* @__PURE__ */ React8.createElement(Icon2, {
|
|
645
646
|
icon: "ph--users--regular",
|
|
646
647
|
size: 4
|
|
647
|
-
}), /* @__PURE__ */ React8.createElement("div", null, participants)) || /* @__PURE__ */ React8.createElement(
|
|
648
|
+
}), /* @__PURE__ */ React8.createElement("div", null, participants)) || /* @__PURE__ */ React8.createElement(NaturalToolbar.Separator, {
|
|
648
649
|
variant: "gap"
|
|
649
650
|
}), call.joined && /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement(ToggleButton, {
|
|
650
651
|
disabled: !canSharescreen,
|
|
@@ -794,7 +795,8 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
|
|
|
794
795
|
try {
|
|
795
796
|
const space = getSpace(channel);
|
|
796
797
|
const callManager = useCapability4(ThreadCapabilities.CallManager);
|
|
797
|
-
const
|
|
798
|
+
const attendableId = channel ? Obj2.getDXN(channel).toString() : void 0;
|
|
799
|
+
const roomId = _roomId ?? attendableId ?? failUndefined();
|
|
798
800
|
const identity = useIdentity();
|
|
799
801
|
const isNamed = !!identity?.profile?.displayName;
|
|
800
802
|
const joinSound = useSoundEffect("JoinCall");
|
|
@@ -803,7 +805,7 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
|
|
|
803
805
|
useEffect6(() => {
|
|
804
806
|
const ctx = new Context(void 0, {
|
|
805
807
|
F: __dxlog_file2,
|
|
806
|
-
L:
|
|
808
|
+
L: 53
|
|
807
809
|
});
|
|
808
810
|
callManager.left.on(ctx, (roomId2) => {
|
|
809
811
|
extensions.forEach((extension) => {
|
|
@@ -845,7 +847,7 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
|
|
|
845
847
|
} catch (err) {
|
|
846
848
|
log.catch(err, void 0, {
|
|
847
849
|
F: __dxlog_file2,
|
|
848
|
-
L:
|
|
850
|
+
L: 97,
|
|
849
851
|
S: void 0,
|
|
850
852
|
C: (f, a) => f(...a)
|
|
851
853
|
});
|
|
@@ -861,7 +863,7 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
|
|
|
861
863
|
} catch (err) {
|
|
862
864
|
log.catch(err, void 0, {
|
|
863
865
|
F: __dxlog_file2,
|
|
864
|
-
L:
|
|
866
|
+
L: 109,
|
|
865
867
|
S: void 0,
|
|
866
868
|
C: (f, a) => f(...a)
|
|
867
869
|
});
|
|
@@ -877,20 +879,21 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
|
|
|
877
879
|
]);
|
|
878
880
|
const isJoined = callManager.joined && callManager.roomId === roomId;
|
|
879
881
|
return /* @__PURE__ */ React10.createElement(StackItem.Content, {
|
|
880
|
-
|
|
881
|
-
|
|
882
|
+
classNames: isJoined && "bs-full",
|
|
883
|
+
toolbar: !isJoined
|
|
882
884
|
}, isJoined && !isNamed && /* @__PURE__ */ React10.createElement(DisplayNameMissing, null), isJoined && isNamed && /* @__PURE__ */ React10.createElement(Call.Root, null, /* @__PURE__ */ React10.createElement(Call.Grid, {
|
|
883
885
|
fullscreen
|
|
884
886
|
}), /* @__PURE__ */ React10.createElement(Call.Toolbar, {
|
|
885
887
|
channel,
|
|
886
888
|
onLeave: handleLeave
|
|
887
889
|
})), !isJoined && channel && channel.defaultThread.target && space && /* @__PURE__ */ React10.createElement(React10.Fragment, null, /* @__PURE__ */ React10.createElement(ChannelToolbar, {
|
|
888
|
-
attendableId
|
|
890
|
+
attendableId,
|
|
889
891
|
role,
|
|
890
892
|
onJoinCall: handleJoin
|
|
891
893
|
}), /* @__PURE__ */ React10.createElement(ChatContainer_default, {
|
|
892
894
|
space,
|
|
893
|
-
thread: channel.defaultThread.target
|
|
895
|
+
thread: channel.defaultThread.target,
|
|
896
|
+
classNames: "container-max-width"
|
|
894
897
|
})));
|
|
895
898
|
} finally {
|
|
896
899
|
_effect.f();
|
|
@@ -929,7 +932,7 @@ var DisplayNameMissing = () => {
|
|
|
929
932
|
}
|
|
930
933
|
};
|
|
931
934
|
var useChannelToolbarActions = (onJoinCall) => {
|
|
932
|
-
const creator = useMemo4(() =>
|
|
935
|
+
const creator = useMemo4(() => Atom.make(() => {
|
|
933
936
|
return {
|
|
934
937
|
nodes: [
|
|
935
938
|
createMenuItemGroup("root", {
|
|
@@ -961,7 +964,7 @@ var useChannelToolbarActions = (onJoinCall) => {
|
|
|
961
964
|
}), []);
|
|
962
965
|
return useMenuActions(creator);
|
|
963
966
|
};
|
|
964
|
-
var ChannelToolbar = ({ attendableId, role, onJoinCall
|
|
967
|
+
var ChannelToolbar = ({ attendableId, role, onJoinCall }) => {
|
|
965
968
|
var _effect = _useSignals10();
|
|
966
969
|
try {
|
|
967
970
|
const menuProps = useChannelToolbarActions(onJoinCall);
|
|
@@ -971,7 +974,7 @@ var ChannelToolbar = ({ attendableId, role, onJoinCall, classNames }) => {
|
|
|
971
974
|
...menuProps,
|
|
972
975
|
attendableId
|
|
973
976
|
}, /* @__PURE__ */ React10.createElement(ToolbarMenu, {
|
|
974
|
-
|
|
977
|
+
textBlockWidth: true
|
|
975
978
|
})));
|
|
976
979
|
} finally {
|
|
977
980
|
_effect.f();
|
|
@@ -983,4 +986,4 @@ export {
|
|
|
983
986
|
ChannelContainer,
|
|
984
987
|
ChannelContainer_default
|
|
985
988
|
};
|
|
986
|
-
//# sourceMappingURL=chunk-
|
|
989
|
+
//# sourceMappingURL=chunk-INQVAYPN.mjs.map
|