@arbidocs/blocks 0.5.119 → 0.5.121
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/ClippingMediaViewer-B6WG7Q64.cjs +156 -0
- package/dist/ClippingMediaViewer-B6WG7Q64.cjs.map +1 -0
- package/dist/ClippingPdfViewer-6GCVTV3V.cjs +79 -0
- package/dist/ClippingPdfViewer-6GCVTV3V.cjs.map +1 -0
- package/dist/{ConnectedCallDock-WER7R222.cjs → ConnectedCallDock-DC5V5OUJ.cjs} +25 -23
- package/dist/ConnectedCallDock-DC5V5OUJ.cjs.map +1 -0
- package/dist/{ConnectedCallRoom-T7OBQTYP.cjs → ConnectedCallRoom-FQLXWTFB.cjs} +18 -16
- package/dist/{ConnectedCallRoom-T7OBQTYP.cjs.map → ConnectedCallRoom-FQLXWTFB.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-546ILGLW.cjs → ConnectedNativeDocxComparison-4Q5S7VLD.cjs} +17 -17
- package/dist/{ConnectedNativeDocxComparison-546ILGLW.cjs.map → ConnectedNativeDocxComparison-4Q5S7VLD.cjs.map} +1 -1
- package/dist/ConnectedPresentation-4HLDZDWV.cjs +183 -0
- package/dist/ConnectedPresentation-4HLDZDWV.cjs.map +1 -0
- package/dist/{ConnectedProductionSetDialog-LHB4VQWC.cjs → ConnectedProductionSetDialog-4EAY6KAZ.cjs} +3 -3
- package/dist/{ConnectedProductionSetDialog-LHB4VQWC.cjs.map → ConnectedProductionSetDialog-4EAY6KAZ.cjs.map} +1 -1
- package/dist/ConnectedSlidesTab-7QDE2CZD.cjs +234 -0
- package/dist/ConnectedSlidesTab-7QDE2CZD.cjs.map +1 -0
- package/dist/{ConnectedStreamedWordArtifact-S2ZFZLZQ.cjs → ConnectedStreamedWordArtifact-FFOQJBOI.cjs} +17 -17
- package/dist/{ConnectedStreamedWordArtifact-S2ZFZLZQ.cjs.map → ConnectedStreamedWordArtifact-FFOQJBOI.cjs.map} +1 -1
- package/dist/{DocumentReviewCard-ZSBZBGFK.cjs → DocumentReviewCard-SNWVEZ7S.cjs} +19 -18
- package/dist/DocumentReviewCard-SNWVEZ7S.cjs.map +1 -0
- package/dist/{FilesViewerDialog-6UKR5WEF.cjs → FilesViewerDialog-IZI63FOV.cjs} +54 -47
- package/dist/FilesViewerDialog-IZI63FOV.cjs.map +1 -0
- package/dist/{GridViewImpl-ZMJJWTOM.cjs → GridViewImpl-LTYET77Q.cjs} +3 -3
- package/dist/GridViewImpl-LTYET77Q.cjs.map +1 -0
- package/dist/{WorkspaceTableView-J3C6VH4T.cjs → WorkspaceTableView-TEIRB6VJ.cjs} +11 -10
- package/dist/WorkspaceTableView-TEIRB6VJ.cjs.map +1 -0
- package/dist/agents/index.cjs +297 -297
- package/dist/agents/tasks/ConversationListView.js +10 -2
- package/dist/agents/tasks/ConversationListView.js.map +2 -2
- package/dist/agents/tasks/TaskTable.js +5 -4
- package/dist/agents/tasks/TaskTable.js.map +2 -2
- package/dist/agents/tasks/WorkflowsTable.js +4 -5
- package/dist/agents/tasks/WorkflowsTable.js.map +2 -2
- package/dist/agents/tasks/taskColumns.js +1 -1
- package/dist/agents/tasks/taskColumns.js.map +1 -1
- package/dist/agents/tasks/taskTableLabels.js +1 -1
- package/dist/agents/tasks/taskTableLabels.js.map +1 -1
- package/dist/agents/tasks/workflowTableLabels.js +1 -1
- package/dist/agents/tasks/workflowTableLabels.js.map +1 -1
- package/dist/{ai-IM4A23YT.cjs → ai-KBYNRNZ6.cjs} +28 -26
- package/dist/ai-KBYNRNZ6.cjs.map +1 -0
- package/dist/calls/connected/CallControls.d.ts +2 -0
- package/dist/calls/connected/CallControls.js +71 -9
- package/dist/calls/connected/CallControls.js.map +2 -2
- package/dist/calls/connected/ShareDocumentDialog.d.ts +14 -0
- package/dist/calls/connected/ShareDocumentDialog.js +77 -0
- package/dist/calls/connected/ShareDocumentDialog.js.map +7 -0
- package/dist/calls/index.cjs +121 -121
- package/dist/chat/index.cjs +9 -8
- package/dist/{chunk-T23UTIRI.cjs → chunk-2PZT3J34.cjs} +6 -6
- package/dist/{chunk-T23UTIRI.cjs.map → chunk-2PZT3J34.cjs.map} +1 -1
- package/dist/{chunk-SGYSDABK.cjs → chunk-2W5E62EY.cjs} +6 -6
- package/dist/{chunk-SGYSDABK.cjs.map → chunk-2W5E62EY.cjs.map} +1 -1
- package/dist/{chunk-TDO5UWXF.cjs → chunk-3SCNXNHI.cjs} +5 -5
- package/dist/{chunk-TDO5UWXF.cjs.map → chunk-3SCNXNHI.cjs.map} +1 -1
- package/dist/{chunk-KTQOGT2L.cjs → chunk-474GPLCM.cjs} +7 -7
- package/dist/{chunk-KTQOGT2L.cjs.map → chunk-474GPLCM.cjs.map} +1 -1
- package/dist/{chunk-TP5PGWIO.cjs → chunk-4IOYQLKG.cjs} +3 -3
- package/dist/{chunk-TP5PGWIO.cjs.map → chunk-4IOYQLKG.cjs.map} +1 -1
- package/dist/{chunk-NY3YUCOW.cjs → chunk-4NPCDS2X.cjs} +3 -3
- package/dist/{chunk-NY3YUCOW.cjs.map → chunk-4NPCDS2X.cjs.map} +1 -1
- package/dist/{chunk-CPG7II4E.cjs → chunk-4RBQ44RY.cjs} +28 -28
- package/dist/chunk-4RBQ44RY.cjs.map +1 -0
- package/dist/{chunk-BQ5RIWWT.cjs → chunk-4VZZWYEC.cjs} +3 -3
- package/dist/{chunk-BQ5RIWWT.cjs.map → chunk-4VZZWYEC.cjs.map} +1 -1
- package/dist/{chunk-Y24V6HPR.cjs → chunk-52KGMAO5.cjs} +15 -15
- package/dist/{chunk-Y24V6HPR.cjs.map → chunk-52KGMAO5.cjs.map} +1 -1
- package/dist/{chunk-HB2O4THB.cjs → chunk-5534FYXP.cjs} +4 -4
- package/dist/{chunk-HB2O4THB.cjs.map → chunk-5534FYXP.cjs.map} +1 -1
- package/dist/chunk-5GCCUXMT.cjs +63 -0
- package/dist/chunk-5GCCUXMT.cjs.map +1 -0
- package/dist/chunk-5LTIZ44D.cjs +95 -0
- package/dist/chunk-5LTIZ44D.cjs.map +1 -0
- package/dist/{chunk-YGXOKB5Z.cjs → chunk-734NPQNR.cjs} +4 -4
- package/dist/{chunk-YGXOKB5Z.cjs.map → chunk-734NPQNR.cjs.map} +1 -1
- package/dist/{chunk-SB4M3ITT.cjs → chunk-7VUJGHMY.cjs} +444 -100
- package/dist/chunk-7VUJGHMY.cjs.map +1 -0
- package/dist/chunk-AFQTQC7A.cjs +35 -0
- package/dist/chunk-AFQTQC7A.cjs.map +1 -0
- package/dist/{chunk-XKVPSOKP.cjs → chunk-AY6EZSZB.cjs} +4 -4
- package/dist/{chunk-XKVPSOKP.cjs.map → chunk-AY6EZSZB.cjs.map} +1 -1
- package/dist/{chunk-TT4IF52H.cjs → chunk-BVAT4EVC.cjs} +40 -41
- package/dist/chunk-BVAT4EVC.cjs.map +1 -0
- package/dist/{chunk-VGCTYTEW.cjs → chunk-C2OICDMI.cjs} +10 -10
- package/dist/{chunk-VGCTYTEW.cjs.map → chunk-C2OICDMI.cjs.map} +1 -1
- package/dist/{chunk-CPR6EHG7.cjs → chunk-DR2AH7JL.cjs} +179 -55
- package/dist/chunk-DR2AH7JL.cjs.map +1 -0
- package/dist/{chunk-NJCK6V6U.cjs → chunk-EATIFPKP.cjs} +4 -60
- package/dist/chunk-EATIFPKP.cjs.map +1 -0
- package/dist/{chunk-B3LZITVF.cjs → chunk-EHP6OH5D.cjs} +11 -451
- package/dist/chunk-EHP6OH5D.cjs.map +1 -0
- package/dist/{chunk-DDIW4HLU.cjs → chunk-ENGL7P3I.cjs} +46 -37
- package/dist/chunk-ENGL7P3I.cjs.map +1 -0
- package/dist/{chunk-QHOHDNBU.cjs → chunk-FKFQCK3C.cjs} +4 -4
- package/dist/{chunk-QHOHDNBU.cjs.map → chunk-FKFQCK3C.cjs.map} +1 -1
- package/dist/{chunk-6UTKM5AB.cjs → chunk-GKVE5JGB.cjs} +76 -76
- package/dist/chunk-GKVE5JGB.cjs.map +1 -0
- package/dist/{chunk-B2HNNG25.cjs → chunk-GPX5VC57.cjs} +50 -50
- package/dist/{chunk-B2HNNG25.cjs.map → chunk-GPX5VC57.cjs.map} +1 -1
- package/dist/{chunk-WAV762GP.cjs → chunk-GQXPNIRE.cjs} +6 -6
- package/dist/{chunk-WAV762GP.cjs.map → chunk-GQXPNIRE.cjs.map} +1 -1
- package/dist/chunk-GX2EBMJW.cjs +133 -0
- package/dist/chunk-GX2EBMJW.cjs.map +1 -0
- package/dist/{chunk-7OPOPYV6.cjs → chunk-H5OLHP2U.cjs} +3 -3
- package/dist/{chunk-7OPOPYV6.cjs.map → chunk-H5OLHP2U.cjs.map} +1 -1
- package/dist/chunk-HYUKPHCT.cjs +66 -0
- package/dist/chunk-HYUKPHCT.cjs.map +1 -0
- package/dist/{chunk-NNUK5ZM7.cjs → chunk-JQLWKNJO.cjs} +29 -27
- package/dist/chunk-JQLWKNJO.cjs.map +1 -0
- package/dist/{chunk-OEREKAAP.cjs → chunk-JZEYHDWJ.cjs} +75 -75
- package/dist/{chunk-OEREKAAP.cjs.map → chunk-JZEYHDWJ.cjs.map} +1 -1
- package/dist/{chunk-PGJYD67F.cjs → chunk-KNGZZC4O.cjs} +7 -6
- package/dist/chunk-KNGZZC4O.cjs.map +1 -0
- package/dist/{chunk-NIE3N6OM.cjs → chunk-KP5AITQ4.cjs} +10 -10
- package/dist/{chunk-NIE3N6OM.cjs.map → chunk-KP5AITQ4.cjs.map} +1 -1
- package/dist/{chunk-YYPZOEED.cjs → chunk-LHWOKOMP.cjs} +23 -2
- package/dist/chunk-LHWOKOMP.cjs.map +1 -0
- package/dist/{chunk-57NHXEU2.cjs → chunk-MXBXZXXQ.cjs} +5 -5
- package/dist/{chunk-57NHXEU2.cjs.map → chunk-MXBXZXXQ.cjs.map} +1 -1
- package/dist/{chunk-WXUU3COI.cjs → chunk-MZ2KZXNU.cjs} +3 -3
- package/dist/{chunk-WXUU3COI.cjs.map → chunk-MZ2KZXNU.cjs.map} +1 -1
- package/dist/chunk-NAJN32MF.cjs +154 -0
- package/dist/chunk-NAJN32MF.cjs.map +1 -0
- package/dist/{chunk-557MJ4IH.cjs → chunk-NLOETJCB.cjs} +17 -154
- package/dist/chunk-NLOETJCB.cjs.map +1 -0
- package/dist/{chunk-4XJEHKVZ.cjs → chunk-PIYYBPHH.cjs} +4 -4
- package/dist/{chunk-4XJEHKVZ.cjs.map → chunk-PIYYBPHH.cjs.map} +1 -1
- package/dist/chunk-Q3XJUXID.cjs +4774 -0
- package/dist/chunk-Q3XJUXID.cjs.map +1 -0
- package/dist/{chunk-325GVZE6.cjs → chunk-Q6DQGGP4.cjs} +3 -3
- package/dist/{chunk-325GVZE6.cjs.map → chunk-Q6DQGGP4.cjs.map} +1 -1
- package/dist/chunk-QFXILJMJ.cjs +458 -0
- package/dist/chunk-QFXILJMJ.cjs.map +1 -0
- package/dist/{chunk-R7CJEIA5.cjs → chunk-RYVZDFVO.cjs} +8 -9
- package/dist/chunk-RYVZDFVO.cjs.map +1 -0
- package/dist/{chunk-VLCY46K6.cjs → chunk-TG2GM7WJ.cjs} +4 -3
- package/dist/chunk-TG2GM7WJ.cjs.map +1 -0
- package/dist/{chunk-EOG6OT5I.cjs → chunk-TXP2N3DC.cjs} +4 -4
- package/dist/{chunk-EOG6OT5I.cjs.map → chunk-TXP2N3DC.cjs.map} +1 -1
- package/dist/{chunk-KXIRVKCJ.cjs → chunk-UUENH4BJ.cjs} +3 -3
- package/dist/{chunk-KXIRVKCJ.cjs.map → chunk-UUENH4BJ.cjs.map} +1 -1
- package/dist/chunk-VJ5ZLRBD.cjs +27 -0
- package/dist/chunk-VJ5ZLRBD.cjs.map +1 -0
- package/dist/{chunk-P77YTTJ3.cjs → chunk-W6B3RYTX.cjs} +4 -4
- package/dist/{chunk-P77YTTJ3.cjs.map → chunk-W6B3RYTX.cjs.map} +1 -1
- package/dist/chunk-WOOOMTTA.cjs +19 -0
- package/dist/chunk-WOOOMTTA.cjs.map +1 -0
- package/dist/{chunk-ZPPMAL5P.cjs → chunk-WQMR3O2D.cjs} +6 -10
- package/dist/chunk-WQMR3O2D.cjs.map +1 -0
- package/dist/{chunk-CJYWHUZR.cjs → chunk-XCKHOXRP.cjs} +4 -4
- package/dist/{chunk-CJYWHUZR.cjs.map → chunk-XCKHOXRP.cjs.map} +1 -1
- package/dist/{chunk-6WMMZLEV.cjs → chunk-XJEXFEWG.cjs} +2 -27
- package/dist/chunk-XJEXFEWG.cjs.map +1 -0
- package/dist/chunk-XK4TVJKD.cjs +73 -0
- package/dist/chunk-XK4TVJKD.cjs.map +1 -0
- package/dist/chunk-XTR26TNE.cjs +1358 -0
- package/dist/chunk-XTR26TNE.cjs.map +1 -0
- package/dist/{chunk-E7TE2WVT.cjs → chunk-ZVEW3JBT.cjs} +3 -3
- package/dist/{chunk-E7TE2WVT.cjs.map → chunk-ZVEW3JBT.cjs.map} +1 -1
- package/dist/collaboration/index.cjs +73 -73
- package/dist/collaboration/sharing/ShareControl.js +10 -2
- package/dist/collaboration/sharing/ShareControl.js.map +2 -2
- package/dist/components/SharedCell.d.ts +2 -4
- package/dist/components/SharedCell.js +4 -8
- package/dist/components/SharedCell.js.map +2 -2
- package/dist/components/ZoomSlider.d.ts +25 -0
- package/dist/components/ZoomSlider.js +59 -0
- package/dist/components/ZoomSlider.js.map +7 -0
- package/dist/connect/docx.cjs +20 -20
- package/dist/connect/index.cjs +1210 -1264
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/viewer.cjs +42 -36
- package/dist/connection/ai.d.ts +1 -1
- package/dist/connection/facts/factPageColumns.js +3 -9
- package/dist/connection/facts/factPageColumns.js.map +2 -2
- package/dist/connection/files/ConnectedNewFileMenu.d.ts +2 -1
- package/dist/connection/files/ConnectedNewFileMenu.js +9 -3
- package/dist/connection/files/ConnectedNewFileMenu.js.map +2 -2
- package/dist/connection/files/explorer/ConnectedFilesExplorer.js +1 -1
- package/dist/connection/files/explorer/ConnectedFilesExplorer.js.map +2 -2
- package/dist/connection/files/explorer/FileTiles.js +1 -1
- package/dist/connection/files/explorer/FileTiles.js.map +2 -2
- package/dist/connection/files/fields/documentField.js +1 -1
- package/dist/connection/files/fields/documentField.js.map +2 -2
- package/dist/connection/files/grid/cells.js +1 -3
- package/dist/connection/files/grid/cells.js.map +2 -2
- package/dist/connection/files/grid/documentColumns.js +4 -3
- package/dist/connection/files/grid/documentColumns.js.map +2 -2
- package/dist/connection/files/page/DocumentsFilterBarActions.js +17 -28
- package/dist/connection/files/page/DocumentsFilterBarActions.js.map +2 -2
- package/dist/connection/mail/useMailboxDefaults.js +1 -1
- package/dist/connection/mail/useMailboxDefaults.js.map +2 -2
- package/dist/connection/panels/useSessionPanelMode.js +3 -2
- package/dist/connection/panels/useSessionPanelMode.js.map +2 -2
- package/dist/connection/presentation/ClippingMediaViewer.d.ts +12 -0
- package/dist/connection/presentation/ClippingMediaViewer.js +153 -0
- package/dist/connection/presentation/ClippingMediaViewer.js.map +7 -0
- package/dist/connection/presentation/ClippingPdfViewer.d.ts +22 -0
- package/dist/connection/presentation/ClippingPdfViewer.js +75 -0
- package/dist/connection/presentation/ClippingPdfViewer.js.map +7 -0
- package/dist/connection/presentation/ConnectedPresentation.d.ts +12 -0
- package/dist/connection/presentation/ConnectedPresentation.js +100 -0
- package/dist/connection/presentation/ConnectedPresentation.js.map +7 -0
- package/dist/connection/presentation/ConnectedSlidesTab.d.ts +20 -0
- package/dist/connection/presentation/ConnectedSlidesTab.js +220 -0
- package/dist/connection/presentation/ConnectedSlidesTab.js.map +7 -0
- package/dist/connection/presentation/CropClipDialog.d.ts +11 -0
- package/dist/connection/presentation/CropClipDialog.js +86 -0
- package/dist/connection/presentation/CropClipDialog.js.map +7 -0
- package/dist/connection/presentation/GenerateTile.d.ts +4 -0
- package/dist/connection/presentation/GenerateTile.js +24 -0
- package/dist/connection/presentation/GenerateTile.js.map +7 -0
- package/dist/connection/presentation/LabelColumnMenu.d.ts +8 -0
- package/dist/connection/presentation/LabelColumnMenu.js +38 -0
- package/dist/connection/presentation/LabelColumnMenu.js.map +7 -0
- package/dist/connection/presentation/PresentationDialogs.d.ts +39 -0
- package/dist/connection/presentation/PresentationDialogs.js +295 -0
- package/dist/connection/presentation/PresentationDialogs.js.map +7 -0
- package/dist/connection/presentation/PresentationFileCard.d.ts +10 -0
- package/dist/connection/presentation/PresentationFileCard.js +35 -0
- package/dist/connection/presentation/PresentationFileCard.js.map +7 -0
- package/dist/connection/presentation/PresentationPill.d.ts +8 -0
- package/dist/connection/presentation/PresentationPill.js +44 -0
- package/dist/connection/presentation/PresentationPill.js.map +7 -0
- package/dist/connection/presentation/PresentationSlot.d.ts +7 -0
- package/dist/connection/presentation/PresentationSlot.js +35 -0
- package/dist/connection/presentation/PresentationSlot.js.map +7 -0
- package/dist/connection/presentation/requests.d.ts +16 -0
- package/dist/connection/presentation/requests.js +20 -0
- package/dist/connection/presentation/requests.js.map +7 -0
- package/dist/connection/presentation/useImageGeneration.d.ts +11 -0
- package/dist/connection/presentation/useImageGeneration.js +66 -0
- package/dist/connection/presentation/useImageGeneration.js.map +7 -0
- package/dist/connection/presentation/useLabelColumns.d.ts +15 -0
- package/dist/connection/presentation/useLabelColumns.js +33 -0
- package/dist/connection/presentation/useLabelColumns.js.map +7 -0
- package/dist/connection/presentation/usePresentationController.d.ts +15 -0
- package/dist/connection/presentation/usePresentationController.js +118 -0
- package/dist/connection/presentation/usePresentationController.js.map +7 -0
- package/dist/connection/presentation/usePresentationFiles.d.ts +44 -0
- package/dist/connection/presentation/usePresentationFiles.js +307 -0
- package/dist/connection/presentation/usePresentationFiles.js.map +7 -0
- package/dist/connection/presentation/useViewerClipping.d.ts +14 -0
- package/dist/connection/presentation/useViewerClipping.js +18 -0
- package/dist/connection/presentation/useViewerClipping.js.map +7 -0
- package/dist/connection/sharing/WorkspaceMembersList.d.ts +4 -0
- package/dist/connection/sharing/WorkspaceMembersList.js +34 -0
- package/dist/connection/sharing/WorkspaceMembersList.js.map +7 -0
- package/dist/connection/shell/ConnectedAppShell.js +9 -1
- package/dist/connection/shell/ConnectedAppShell.js.map +2 -2
- package/dist/connection/viewer/CleanViewControl.d.ts +8 -0
- package/dist/connection/viewer/CleanViewControl.js +76 -0
- package/dist/connection/viewer/CleanViewControl.js.map +7 -0
- package/dist/connection/viewer/ConnectedDocumentViewer.js +31 -31
- package/dist/connection/viewer/ConnectedDocumentViewer.js.map +2 -2
- package/dist/connection/viewer/ViewerCropModal.d.ts +5 -0
- package/dist/connection/viewer/ViewerCropModal.js +22 -0
- package/dist/connection/viewer/ViewerCropModal.js.map +7 -0
- package/dist/connection/viewer/ViewerPdfPane.d.ts +3 -1
- package/dist/connection/viewer/ViewerPdfPane.js +57 -2
- package/dist/connection/viewer/ViewerPdfPane.js.map +2 -2
- package/dist/connection/viewer/drafts.js +6 -4
- package/dist/connection/viewer/drafts.js.map +2 -2
- package/dist/connection/viewer/pdf/PdfPassageHighlights.d.ts +12 -0
- package/dist/connection/viewer/pdf/PdfPassageHighlights.js +36 -0
- package/dist/connection/viewer/pdf/PdfPassageHighlights.js.map +7 -0
- package/dist/connection/viewer/pdf/passageHighlights.d.ts +26 -0
- package/dist/connection/viewer/pdf/passageHighlights.js +40 -0
- package/dist/connection/viewer/pdf/passageHighlights.js.map +7 -0
- package/dist/connection/viewer/pdf/usePdfPassageHighlights.d.ts +9 -0
- package/dist/connection/viewer/pdf/usePdfPassageHighlights.js +47 -0
- package/dist/connection/viewer/pdf/usePdfPassageHighlights.js.map +7 -0
- package/dist/connection/viewer/shareDocument.d.ts +11 -0
- package/dist/connection/viewer/shareDocument.js +11 -0
- package/dist/connection/viewer/shareDocument.js.map +7 -0
- package/dist/connection/viewer/slidesTabChunk.d.ts +2 -0
- package/dist/connection/viewer/slidesTabChunk.js +9 -0
- package/dist/connection/viewer/slidesTabChunk.js.map +7 -0
- package/dist/connection/viewer/useCleanView.d.ts +14 -0
- package/dist/connection/viewer/useCleanView.js +29 -0
- package/dist/connection/viewer/useCleanView.js.map +7 -0
- package/dist/connection/viewer/useViewedDocument.d.ts +1 -0
- package/dist/connection/viewer/useViewedDocument.js +9 -1
- package/dist/connection/viewer/useViewedDocument.js.map +2 -2
- package/dist/connection/viewer/useViewerTabs.js +18 -4
- package/dist/connection/viewer/useViewerTabs.js.map +2 -2
- package/dist/connection/workflows/ConnectedWorkflowStart.d.ts +14 -2
- package/dist/connection/workflows/ConnectedWorkflowStart.js +5 -2
- package/dist/connection/workflows/ConnectedWorkflowStart.js.map +2 -2
- package/dist/connection/workflows/workflowsPageLabels.js +1 -1
- package/dist/connection/workflows/workflowsPageLabels.js.map +1 -1
- package/dist/dashboards/index.cjs +1 -1
- package/dist/databases/index.cjs +49 -49
- package/dist/document-tools/DocumentToolButtons.d.ts +2 -0
- package/dist/document-tools/DocumentToolButtons.js +22 -1
- package/dist/document-tools/DocumentToolButtons.js.map +2 -2
- package/dist/document-tools/index.cjs +16 -12
- package/dist/document-tools/index.d.ts +1 -1
- package/dist/document-tools/index.js +2 -0
- package/dist/document-tools/index.js.map +2 -2
- package/dist/embed/index.cjs +43 -41
- package/dist/facts/factColumns.js +3 -3
- package/dist/facts/factColumns.js.map +1 -1
- package/dist/facts/index.cjs +42 -42
- package/dist/files/GridViewImpl.js +1 -1
- package/dist/files/GridViewImpl.js.map +2 -2
- package/dist/files/HtmlViewerParts.js +7 -15
- package/dist/files/HtmlViewerParts.js.map +2 -2
- package/dist/files/ViewerChrome.d.ts +5 -1
- package/dist/files/ViewerChrome.js +16 -6
- package/dist/files/ViewerChrome.js.map +2 -2
- package/dist/files/index.cjs +226 -226
- package/dist/files/navigator/DocumentSearchList.js +1 -1
- package/dist/files/navigator/DocumentSearchList.js.map +2 -2
- package/dist/index.cjs +1668 -1666
- package/dist/index.cjs.map +1 -1
- package/dist/presentation/BoxActionBar.d.ts +11 -0
- package/dist/presentation/BoxActionBar.js +182 -0
- package/dist/presentation/BoxActionBar.js.map +7 -0
- package/dist/presentation/ClipActionBar.d.ts +26 -0
- package/dist/presentation/ClipActionBar.js +103 -0
- package/dist/presentation/ClipActionBar.js.map +7 -0
- package/dist/presentation/ClipCaptureOverlay.d.ts +14 -0
- package/dist/presentation/ClipCaptureOverlay.js +69 -0
- package/dist/presentation/ClipCaptureOverlay.js.map +7 -0
- package/dist/presentation/ClipImage.d.ts +21 -0
- package/dist/presentation/ClipImage.js +119 -0
- package/dist/presentation/ClipImage.js.map +7 -0
- package/dist/presentation/ClipTray.d.ts +11 -0
- package/dist/presentation/ClipTray.js +152 -0
- package/dist/presentation/ClipTray.js.map +7 -0
- package/dist/presentation/ClipViewControls.d.ts +11 -0
- package/dist/presentation/ClipViewControls.js +142 -0
- package/dist/presentation/ClipViewControls.js.map +7 -0
- package/dist/presentation/DesignMenu.d.ts +8 -0
- package/dist/presentation/DesignMenu.js +199 -0
- package/dist/presentation/DesignMenu.js.map +7 -0
- package/dist/presentation/LayoutMenu.d.ts +17 -0
- package/dist/presentation/LayoutMenu.js +122 -0
- package/dist/presentation/LayoutMenu.js.map +7 -0
- package/dist/presentation/MediaClip.d.ts +15 -0
- package/dist/presentation/MediaClip.js +67 -0
- package/dist/presentation/MediaClip.js.map +7 -0
- package/dist/presentation/Notice.d.ts +6 -0
- package/dist/presentation/Notice.js +43 -0
- package/dist/presentation/Notice.js.map +7 -0
- package/dist/presentation/PresentationStage.d.ts +32 -0
- package/dist/presentation/PresentationStage.js +232 -0
- package/dist/presentation/PresentationStage.js.map +7 -0
- package/dist/presentation/PresenterView.d.ts +16 -0
- package/dist/presentation/PresenterView.js +69 -0
- package/dist/presentation/PresenterView.js.map +7 -0
- package/dist/presentation/SlideDecor.d.ts +25 -0
- package/dist/presentation/SlideDecor.js +189 -0
- package/dist/presentation/SlideDecor.js.map +7 -0
- package/dist/presentation/SlidesEditor.d.ts +25 -0
- package/dist/presentation/SlidesEditor.js +359 -0
- package/dist/presentation/SlidesEditor.js.map +7 -0
- package/dist/presentation/StageBox.d.ts +30 -0
- package/dist/presentation/StageBox.js +281 -0
- package/dist/presentation/StageBox.js.map +7 -0
- package/dist/presentation/StageItem.d.ts +37 -0
- package/dist/presentation/StageItem.js +211 -0
- package/dist/presentation/StageItem.js.map +7 -0
- package/dist/presentation/box-style.d.ts +6 -0
- package/dist/presentation/box-style.js +19 -0
- package/dist/presentation/box-style.js.map +7 -0
- package/dist/presentation/boxes.d.ts +105 -0
- package/dist/presentation/boxes.js +103 -0
- package/dist/presentation/boxes.js.map +7 -0
- package/dist/presentation/draw-boxes.d.ts +8 -0
- package/dist/presentation/draw-boxes.js +130 -0
- package/dist/presentation/draw-boxes.js.map +7 -0
- package/dist/presentation/export-boxes.d.ts +10 -0
- package/dist/presentation/export-boxes.js +74 -0
- package/dist/presentation/export-boxes.js.map +7 -0
- package/dist/presentation/export-pptx.d.ts +16 -0
- package/dist/presentation/export-pptx.js +194 -0
- package/dist/presentation/export-pptx.js.map +7 -0
- package/dist/presentation/import-pptx.d.ts +35 -0
- package/dist/presentation/import-pptx.js +659 -0
- package/dist/presentation/import-pptx.js.map +7 -0
- package/dist/presentation/merge-outside-edits.d.ts +12 -0
- package/dist/presentation/merge-outside-edits.js +35 -0
- package/dist/presentation/merge-outside-edits.js.map +7 -0
- package/dist/presentation/model.d.ts +201 -0
- package/dist/presentation/model.js +271 -0
- package/dist/presentation/model.js.map +7 -0
- package/dist/presentation/panel-id.d.ts +34 -0
- package/dist/presentation/panel-id.js +24 -0
- package/dist/presentation/panel-id.js.map +7 -0
- package/dist/presentation/persistence.d.ts +121 -0
- package/dist/presentation/persistence.js +141 -0
- package/dist/presentation/persistence.js.map +7 -0
- package/dist/presentation/pptx-data.d.ts +22 -0
- package/dist/presentation/pptx-data.js +83 -0
- package/dist/presentation/pptx-data.js.map +7 -0
- package/dist/presentation/pptx-xml.d.ts +90 -0
- package/dist/presentation/pptx-xml.js +333 -0
- package/dist/presentation/pptx-xml.js.map +7 -0
- package/dist/presentation/render-slides.d.ts +58 -0
- package/dist/presentation/render-slides.js +309 -0
- package/dist/presentation/render-slides.js.map +7 -0
- package/dist/presentation/saved-boxes.d.ts +11 -0
- package/dist/presentation/saved-boxes.js +80 -0
- package/dist/presentation/saved-boxes.js.map +7 -0
- package/dist/presentation/slide-layout.d.ts +54 -0
- package/dist/presentation/slide-layout.js +117 -0
- package/dist/presentation/slide-layout.js.map +7 -0
- package/dist/presentation/stage-videos.d.ts +5 -0
- package/dist/presentation/stage-videos.js +19 -0
- package/dist/presentation/stage-videos.js.map +7 -0
- package/dist/presentation/store.d.ts +203 -0
- package/dist/presentation/store.js +429 -0
- package/dist/presentation/store.js.map +7 -0
- package/dist/presentation/theme.d.ts +102 -0
- package/dist/presentation/theme.js +276 -0
- package/dist/presentation/theme.js.map +7 -0
- package/dist/presentation/useClipDrag.d.ts +26 -0
- package/dist/presentation/useClipDrag.js +65 -0
- package/dist/presentation/useClipDrag.js.map +7 -0
- package/dist/presentation/useObjectUrl.d.ts +6 -0
- package/dist/presentation/useObjectUrl.js +15 -0
- package/dist/presentation/useObjectUrl.js.map +7 -0
- package/dist/presentation/usePresenterKeys.d.ts +13 -0
- package/dist/presentation/usePresenterKeys.js +62 -0
- package/dist/presentation/usePresenterKeys.js.map +7 -0
- package/dist/settings/index.cjs +151 -150
- package/dist/shell/PanelPortal.js +1 -0
- package/dist/shell/PanelPortal.js.map +2 -2
- package/dist/shell/index.cjs +112 -110
- package/dist/shell/panel-windows.d.ts +2 -0
- package/dist/shell/panel-windows.js +7 -2
- package/dist/shell/panel-windows.js.map +2 -2
- package/dist/studio/index.cjs +28 -26
- package/dist/studio/index.cjs.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/workflow-canvas/index.cjs +58 -57
- package/dist/workflow-canvas/index.cjs.map +1 -1
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +6 -5
- package/dist/ConnectedCallDock-WER7R222.cjs.map +0 -1
- package/dist/DocumentReviewCard-ZSBZBGFK.cjs.map +0 -1
- package/dist/FilesViewerDialog-6UKR5WEF.cjs.map +0 -1
- package/dist/GridViewImpl-ZMJJWTOM.cjs.map +0 -1
- package/dist/WorkspaceTableView-J3C6VH4T.cjs.map +0 -1
- package/dist/ai-IM4A23YT.cjs.map +0 -1
- package/dist/chunk-557MJ4IH.cjs.map +0 -1
- package/dist/chunk-6UTKM5AB.cjs.map +0 -1
- package/dist/chunk-6WMMZLEV.cjs.map +0 -1
- package/dist/chunk-B3LZITVF.cjs.map +0 -1
- package/dist/chunk-CPG7II4E.cjs.map +0 -1
- package/dist/chunk-CPR6EHG7.cjs.map +0 -1
- package/dist/chunk-DDIW4HLU.cjs.map +0 -1
- package/dist/chunk-NJCK6V6U.cjs.map +0 -1
- package/dist/chunk-NNUK5ZM7.cjs.map +0 -1
- package/dist/chunk-PGJYD67F.cjs.map +0 -1
- package/dist/chunk-R7CJEIA5.cjs.map +0 -1
- package/dist/chunk-SB4M3ITT.cjs.map +0 -1
- package/dist/chunk-TT4IF52H.cjs.map +0 -1
- package/dist/chunk-VLCY46K6.cjs.map +0 -1
- package/dist/chunk-YYPZOEED.cjs.map +0 -1
- package/dist/chunk-ZPPMAL5P.cjs.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/calls/connected/CallControls.tsx"],
|
|
4
|
-
"sourcesContent": ["/**\n * The call panel's control bar, wired to the LiveKit room. One row; what fits stays in it and the\n * rest moves into More, so each action lives in exactly one visible place:\n * full \u2014 time \u00B7 mic, camera | share, CC, Record | More \u00B7 Leave\n * compact \u2014 mic, camera | CC, Record | More \u00B7 Leave\n * tiny \u2014 mic, camera | More \u00B7 Leave\n * Chat is the conversation beside the panel (its own composer) and the participant list is\n * always on show under the video, so neither has a button here.\n */\n\nimport { useBlocksEnvironment } from '../../provider/environment'\nimport { useState, type ReactElement } from 'react'\nimport { Track } from 'livekit-client'\nimport {\n useAudioPlayback,\n useMediaDeviceSelect,\n useRoomContext,\n useTrackToggle,\n} from '@livekit/components-react'\nimport {\n Captions,\n Circle,\n FlaskConical,\n Link2,\n Lock,\n LockOpen,\n MonitorUp,\n MonitorX,\n Square,\n Volume2,\n} from 'lucide-react'\nimport { classifyMediaError, useArbi, useServerCallsExperimental } from '@arbidocs/react'\nimport { Button } from '@arbidocs/react/ui'\nimport {\n CallControlBar,\n CallControlButton,\n ControlDivider,\n ControlGroup,\n ElapsedTime,\n LeaveButton,\n MediaControl,\n MoreMenu,\n type LeaveOption,\n type MoreMenuItem,\n type MoreMenuSection,\n} from '../ui'\nimport { TranscriptionToggle } from './CallTranscription'\nimport { RecordingControl } from './CallRecording'\nimport type { CallTranscription, CallRecordingControl } from '@arbidocs/react/calls'\nimport { useMirrorSelfView } from '../self-view'\n\nexport type ControlDensity = 'full' | 'compact' | 'tiny'\n\ntype MediaSource = Track.Source.Microphone | Track.Source.Camera\n\ntype Notify = ReturnType<typeof useBlocksEnvironment>['notify']\n\nfunction reportDeviceError(notify: Notify, source: MediaSource) {\n return (err: Error) =>\n notify(\n classifyMediaError(err, source === Track.Source.Camera ? 'camera' : 'microphone'),\n 'error'\n )\n}\n\n/** Microphone or camera of the room, with its device list (and, for the camera, the mirror). */\nfunction RoomMediaControl({\n source,\n shortcut,\n testId,\n}: {\n source: MediaSource\n shortcut: string\n testId: string\n}): ReactElement {\n const { notify } = useBlocksEnvironment()\n const mic = source === Track.Source.Microphone\n const { toggle, enabled, pending } = useTrackToggle({\n source,\n onDeviceError: reportDeviceError(notify, source),\n })\n const { devices, activeDeviceId, setActiveMediaDevice } = useMediaDeviceSelect({\n kind: mic ? 'audioinput' : 'videoinput',\n })\n const [mirror, setMirror] = useMirrorSelfView()\n return (\n <MediaControl\n kind={mic ? 'microphone' : 'camera'}\n enabled={enabled}\n pending={pending}\n onToggle={() => void toggle()}\n devices={devices.map((d) => ({ deviceId: d.deviceId, label: d.label }))}\n activeDeviceId={activeDeviceId}\n onSelectDevice={(id) =>\n void setActiveMediaDevice(id).catch((err: Error) => reportDeviceError(notify, source)(err))\n }\n shortcut={shortcut}\n testId={testId}\n options={\n mic\n ? []\n : [\n {\n label: 'Mirror my video',\n checked: mirror,\n onChange: setMirror,\n testId: 'call-mirror-toggle',\n },\n ]\n }\n />\n )\n}\n\nfunction useScreenShare() {\n const { notify } = useBlocksEnvironment()\n return useTrackToggle({\n source: Track.Source.ScreenShare,\n captureOptions: { audio: true, selfBrowserSurface: 'exclude' },\n onDeviceError: (err: Error) => {\n // Cancelling the browser's picker is not worth a toast.\n if (err.name !== 'NotAllowedError') notify(`Could not share: ${err.message}`, 'error')\n },\n })\n}\n\n/** \"Enable audio\" when the browser blocked playback until a click (the bar's left end). */\nexport function EnableAudioButton({ compact = false }: { compact?: boolean }): ReactElement | null {\n const { canPlayAudio, startAudio } = useAudioPlayback()\n if (canPlayAudio) return null\n return (\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"h-8 gap-1.5 border-yellow-border bg-yellow-bg text-yellow-text hover:bg-yellow-bg/80\"\n onClick={() => void startAudio()}\n data-testid=\"call-start-audio\"\n >\n <Volume2 className=\"size-4\" aria-hidden />\n {compact ? 'Audio' : 'Enable audio'}\n </Button>\n )\n}\n\nexport interface CallControlsProps {\n callExtId: string\n isCreator: boolean\n /** Copy-able join link (anyone with it can ask to join). */\n link: string | null\n startedAt: number\n density: ControlDensity\n /** Single-key shortcuts on (the panel is on screen). */\n shortcuts: boolean\n transcription: CallTranscription\n recording: CallRecordingControl\n /** More groups of the More menu (a webinar's chat setting, panel, Leave stage). */\n menuGroups?: (MoreMenuItem[] | MoreMenuSection)[]\n /** Leave's further choices (a webinar's End webinar for everyone). */\n leaveOptions?: LeaveOption[]\n}\n\nexport function CallControls({\n callExtId,\n isCreator,\n link,\n startedAt,\n density,\n shortcuts,\n transcription: tr,\n recording,\n menuGroups = [],\n leaveOptions,\n}: CallControlsProps): ReactElement {\n const { notify } = useBlocksEnvironment()\n const arbi = useArbi()\n const room = useRoomContext()\n const share = useScreenShare()\n const experimental = useServerCallsExperimental()\n const [locked, setLocked] = useState(false)\n const [locking, setLocking] = useState(false)\n const full = density === 'full'\n const tiny = density === 'tiny'\n\n const toggleLock = async () => {\n setLocking(true)\n try {\n const call = await arbi.calls.update(callExtId, { locked: !locked })\n setLocked(call.locked)\n notify(call.locked ? 'Call locked: nobody new can join' : 'Call unlocked', 'info')\n } catch (err) {\n notify(`Could not change the lock: ${(err as Error).message}`, 'error')\n } finally {\n setLocking(false)\n }\n }\n const copyLink = () => {\n if (!link) return\n void navigator.clipboard\n .writeText(link)\n .then(() => notify('Call link copied', 'success'))\n .catch(() => notify('Could not copy the link', 'error'))\n }\n\n // What does not fit the bar lives in More.\n const overflow: MoreMenuItem[] = [\n ...(!full\n ? [\n {\n key: 'share',\n label: share.enabled ? 'Stop sharing' : 'Share your screen',\n icon: share.enabled ? <MonitorX /> : <MonitorUp />,\n onSelect: () => void share.toggle(),\n disabled: share.pending,\n },\n ]\n : []),\n ...(tiny && tr.available && tr.canToggle\n ? [\n {\n key: 'transcribe',\n label: tr.on ? 'Stop transcription' : 'Transcribe the call',\n icon: <Captions />,\n onSelect: () => void tr.toggle(),\n disabled: tr.busy,\n },\n ]\n : []),\n ...(tiny && recording.available && recording.canControl\n ? recording.on\n ? [\n {\n key: 'stop-recording',\n label: 'Stop recording',\n icon: <Square className=\"fill-current text-red-text\" />,\n onSelect: () => void recording.stop(),\n disabled: recording.busy,\n },\n ]\n : [\n {\n key: 'record-audio',\n label: 'Record audio',\n icon: <Circle className=\"fill-red-solid text-red-solid\" />,\n onSelect: () => void recording.requestStart('audio'),\n disabled: recording.busy,\n },\n {\n key: 'record-video',\n label: 'Record audio + video',\n icon: <Circle className=\"fill-red-solid text-red-solid\" />,\n onSelect: () => void recording.requestStart('audio_video'),\n disabled: recording.busy,\n },\n ]\n : []),\n ]\n const callItems: MoreMenuItem[] = [\n ...(link\n ? [\n {\n key: 'link',\n label: 'Copy call link',\n icon: <Link2 />,\n onSelect: copyLink,\n testId: 'call-copy-link',\n },\n ]\n : []),\n ...(isCreator\n ? [\n {\n key: 'lock',\n label: locked ? 'Unlock call' : 'Lock call (only invited people can join)',\n icon: locked ? <LockOpen /> : <Lock />,\n onSelect: () => void toggleLock(),\n disabled: locking,\n testId: 'call-lock-toggle',\n },\n ]\n : []),\n ]\n\n return (\n <CallControlBar\n shortcuts={shortcuts}\n left={\n <>\n {full && <ElapsedTime since={startedAt} title=\"Time in this call\" />}\n <EnableAudioButton compact={!full} />\n </>\n }\n right={\n <LeaveButton\n compact={!full}\n onLeave={() => void room.disconnect()}\n options={leaveOptions}\n />\n }\n >\n <ControlGroup>\n <RoomMediaControl source={Track.Source.Microphone} shortcut=\"M\" testId=\"call-mic-toggle\" />\n <RoomMediaControl source={Track.Source.Camera} shortcut=\"V\" testId=\"call-camera-toggle\" />\n </ControlGroup>\n {!tiny && (\n <>\n <ControlDivider />\n <ControlGroup>\n {full && (\n <CallControlButton\n label={share.enabled ? 'Stop sharing' : 'Share your screen'}\n tone={share.enabled ? 'active' : 'neutral'}\n aria-pressed={share.enabled}\n disabled={share.pending}\n onClick={() => void share.toggle()}\n data-testid=\"call-share-toggle\"\n >\n {share.enabled ? <MonitorX aria-hidden /> : <MonitorUp aria-hidden />}\n </CallControlButton>\n )}\n <TranscriptionToggle transcription={tr} />\n <RecordingControl recording={recording} />\n </ControlGroup>\n </>\n )}\n <MoreMenu\n details={\n experimental ? (\n <span\n className=\"flex items-center gap-1.5 text-xs text-muted-foreground\"\n data-testid=\"calls-experimental-badge\"\n >\n <FlaskConical className=\"size-3.5\" aria-hidden />\n Calls are an experimental feature.\n </span>\n ) : undefined\n }\n groups={[overflow, callItems, ...menuGroups]}\n />\n </CallControlBar>\n )\n}\n"],
|
|
5
|
-
"mappings": ";
|
|
4
|
+
"sourcesContent": ["/**\n * The call panel's control bar, wired to the LiveKit room. One row; what fits stays in it and the\n * rest moves into More, so each action lives in exactly one visible place:\n * full \u2014 time \u00B7 mic, camera | share, CC, Record | More \u00B7 Leave\n * Share offers the browser's picker (a screen, a window or a tab) or a document of the workspace,\n * opened in a window of its own with the picker, to choose it.\n * compact \u2014 mic, camera | CC, Record | More \u00B7 Leave\n * tiny \u2014 mic, camera | More \u00B7 Leave\n * Chat is the conversation beside the panel (its own composer) and the participant list is\n * always on show under the video, so neither has a button here.\n */\n\nimport { useBlocksEnvironment } from '../../provider/environment'\nimport { useState, type ReactElement } from 'react'\nimport { Track } from 'livekit-client'\nimport {\n useAudioPlayback,\n useMediaDeviceSelect,\n useRoomContext,\n useTrackToggle,\n} from '@livekit/components-react'\nimport {\n Captions,\n Circle,\n FileText,\n FlaskConical,\n Link2,\n Lock,\n LockOpen,\n MonitorUp,\n MonitorX,\n Square,\n Volume2,\n} from 'lucide-react'\nimport { classifyMediaError, useArbi, useServerCallsExperimental } from '@arbidocs/react'\nimport {\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '@arbidocs/react/ui'\nimport {\n CallControlBar,\n CallControlButton,\n ControlDivider,\n ControlGroup,\n ElapsedTime,\n LeaveButton,\n MediaControl,\n MoreMenu,\n type LeaveOption,\n type MoreMenuItem,\n type MoreMenuSection,\n} from '../ui'\nimport { TranscriptionToggle } from './CallTranscription'\nimport { RecordingControl } from './CallRecording'\nimport type { CallTranscription, CallRecordingControl } from '@arbidocs/react/calls'\nimport { useMirrorSelfView } from '../self-view'\nimport { ShareDocumentDialog } from './ShareDocumentDialog'\n\nconst SHARE_LABEL = 'Share screen/tab'\n\nexport type ControlDensity = 'full' | 'compact' | 'tiny'\n\ntype MediaSource = Track.Source.Microphone | Track.Source.Camera\n\ntype Notify = ReturnType<typeof useBlocksEnvironment>['notify']\n\nfunction reportDeviceError(notify: Notify, source: MediaSource) {\n return (err: Error) =>\n notify(\n classifyMediaError(err, source === Track.Source.Camera ? 'camera' : 'microphone'),\n 'error'\n )\n}\n\n/** Microphone or camera of the room, with its device list (and, for the camera, the mirror). */\nfunction RoomMediaControl({\n source,\n shortcut,\n testId,\n}: {\n source: MediaSource\n shortcut: string\n testId: string\n}): ReactElement {\n const { notify } = useBlocksEnvironment()\n const mic = source === Track.Source.Microphone\n const { toggle, enabled, pending } = useTrackToggle({\n source,\n onDeviceError: reportDeviceError(notify, source),\n })\n const { devices, activeDeviceId, setActiveMediaDevice } = useMediaDeviceSelect({\n kind: mic ? 'audioinput' : 'videoinput',\n })\n const [mirror, setMirror] = useMirrorSelfView()\n return (\n <MediaControl\n kind={mic ? 'microphone' : 'camera'}\n enabled={enabled}\n pending={pending}\n onToggle={() => void toggle()}\n devices={devices.map((d) => ({ deviceId: d.deviceId, label: d.label }))}\n activeDeviceId={activeDeviceId}\n onSelectDevice={(id) =>\n void setActiveMediaDevice(id).catch((err: Error) => reportDeviceError(notify, source)(err))\n }\n shortcut={shortcut}\n testId={testId}\n options={\n mic\n ? []\n : [\n {\n label: 'Mirror my video',\n checked: mirror,\n onChange: setMirror,\n testId: 'call-mirror-toggle',\n },\n ]\n }\n />\n )\n}\n\nfunction useScreenShare() {\n const { notify } = useBlocksEnvironment()\n return useTrackToggle({\n source: Track.Source.ScreenShare,\n captureOptions: { audio: true, selfBrowserSurface: 'exclude' },\n onDeviceError: (err: Error) => {\n // Cancelling the browser's picker is not worth a toast.\n if (err.name !== 'NotAllowedError') notify(`Could not share: ${err.message}`, 'error')\n },\n })\n}\n\n/** \"Enable audio\" when the browser blocked playback until a click (the bar's left end). */\nexport function EnableAudioButton({ compact = false }: { compact?: boolean }): ReactElement | null {\n const { canPlayAudio, startAudio } = useAudioPlayback()\n if (canPlayAudio) return null\n return (\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"h-8 gap-1.5 border-yellow-border bg-yellow-bg text-yellow-text hover:bg-yellow-bg/80\"\n onClick={() => void startAudio()}\n data-testid=\"call-start-audio\"\n >\n <Volume2 className=\"size-4\" aria-hidden />\n {compact ? 'Audio' : 'Enable audio'}\n </Button>\n )\n}\n\nexport interface CallControlsProps {\n callExtId: string\n isCreator: boolean\n /** Copy-able join link (anyone with it can ask to join). */\n link: string | null\n startedAt: number\n density: ControlDensity\n /** Single-key shortcuts on (the panel is on screen). */\n shortcuts: boolean\n transcription: CallTranscription\n recording: CallRecordingControl\n /** More groups of the More menu (a webinar's chat setting, panel, Leave stage). */\n menuGroups?: (MoreMenuItem[] | MoreMenuSection)[]\n /** Leave's further choices (a webinar's End webinar for everyone). */\n leaveOptions?: LeaveOption[]\n}\n\nexport function CallControls({\n callExtId,\n isCreator,\n link,\n startedAt,\n density,\n shortcuts,\n transcription: tr,\n recording,\n menuGroups = [],\n leaveOptions,\n}: CallControlsProps): ReactElement {\n const { notify } = useBlocksEnvironment()\n const arbi = useArbi()\n const room = useRoomContext()\n const share = useScreenShare()\n const experimental = useServerCallsExperimental()\n const [locked, setLocked] = useState(false)\n const [locking, setLocking] = useState(false)\n const [sharingDocument, setSharingDocument] = useState(false)\n const full = density === 'full'\n const tiny = density === 'tiny'\n\n const toggleLock = async () => {\n setLocking(true)\n try {\n const call = await arbi.calls.update(callExtId, { locked: !locked })\n setLocked(call.locked)\n notify(call.locked ? 'Call locked: nobody new can join' : 'Call unlocked', 'info')\n } catch (err) {\n notify(`Could not change the lock: ${(err as Error).message}`, 'error')\n } finally {\n setLocking(false)\n }\n }\n const copyLink = () => {\n if (!link) return\n void navigator.clipboard\n .writeText(link)\n .then(() => notify('Call link copied', 'success'))\n .catch(() => notify('Could not copy the link', 'error'))\n }\n\n // What does not fit the bar lives in More.\n const overflow: MoreMenuItem[] = [\n ...(!full\n ? [\n {\n key: 'share',\n label: share.enabled ? 'Stop sharing' : SHARE_LABEL,\n icon: share.enabled ? <MonitorX /> : <MonitorUp />,\n onSelect: () => void share.toggle(),\n disabled: share.pending,\n },\n ...(!share.enabled\n ? [\n {\n key: 'share-document',\n label: 'Share a document\u2026',\n icon: <FileText />,\n onSelect: () => setSharingDocument(true),\n testId: 'call-share-document',\n },\n ]\n : []),\n ]\n : []),\n ...(tiny && tr.available && tr.canToggle\n ? [\n {\n key: 'transcribe',\n label: tr.on ? 'Stop transcription' : 'Transcribe the call',\n icon: <Captions />,\n onSelect: () => void tr.toggle(),\n disabled: tr.busy,\n },\n ]\n : []),\n ...(tiny && recording.available && recording.canControl\n ? recording.on\n ? [\n {\n key: 'stop-recording',\n label: 'Stop recording',\n icon: <Square className=\"fill-current text-red-text\" />,\n onSelect: () => void recording.stop(),\n disabled: recording.busy,\n },\n ]\n : [\n {\n key: 'record-audio',\n label: 'Record audio',\n icon: <Circle className=\"fill-red-solid text-red-solid\" />,\n onSelect: () => void recording.requestStart('audio'),\n disabled: recording.busy,\n },\n {\n key: 'record-video',\n label: 'Record audio + video',\n icon: <Circle className=\"fill-red-solid text-red-solid\" />,\n onSelect: () => void recording.requestStart('audio_video'),\n disabled: recording.busy,\n },\n ]\n : []),\n ]\n const callItems: MoreMenuItem[] = [\n ...(link\n ? [\n {\n key: 'link',\n label: 'Copy call link',\n icon: <Link2 />,\n onSelect: copyLink,\n testId: 'call-copy-link',\n },\n ]\n : []),\n ...(isCreator\n ? [\n {\n key: 'lock',\n label: locked ? 'Unlock call' : 'Lock call (only invited people can join)',\n icon: locked ? <LockOpen /> : <Lock />,\n onSelect: () => void toggleLock(),\n disabled: locking,\n testId: 'call-lock-toggle',\n },\n ]\n : []),\n ]\n\n return (\n <CallControlBar\n shortcuts={shortcuts}\n left={\n <>\n {full && <ElapsedTime since={startedAt} title=\"Time in this call\" />}\n <EnableAudioButton compact={!full} />\n </>\n }\n right={\n <LeaveButton\n compact={!full}\n onLeave={() => void room.disconnect()}\n options={leaveOptions}\n />\n }\n >\n <ControlGroup>\n <RoomMediaControl source={Track.Source.Microphone} shortcut=\"M\" testId=\"call-mic-toggle\" />\n <RoomMediaControl source={Track.Source.Camera} shortcut=\"V\" testId=\"call-camera-toggle\" />\n </ControlGroup>\n {!tiny && (\n <>\n <ControlDivider />\n <ControlGroup>\n {full &&\n (share.enabled ? (\n <CallControlButton\n label=\"Stop sharing\"\n tone=\"active\"\n aria-pressed\n disabled={share.pending}\n onClick={() => void share.toggle()}\n data-testid=\"call-share-toggle\"\n >\n <MonitorX aria-hidden />\n </CallControlButton>\n ) : (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <CallControlButton\n label={SHARE_LABEL}\n tooltip={false}\n disabled={share.pending}\n data-testid=\"call-share-toggle\"\n >\n <MonitorUp aria-hidden />\n </CallControlButton>\n </DropdownMenuTrigger>\n <DropdownMenuContent side=\"top\" data-testid=\"call-share-menu\">\n <DropdownMenuItem\n onSelect={() => void share.toggle()}\n data-testid=\"call-share-screen\"\n >\n <MonitorUp />\n {SHARE_LABEL}\n </DropdownMenuItem>\n <DropdownMenuItem\n onSelect={() => setSharingDocument(true)}\n data-testid=\"call-share-document\"\n >\n <FileText />\n Share a document\u2026\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n ))}\n <TranscriptionToggle transcription={tr} />\n <RecordingControl recording={recording} />\n </ControlGroup>\n </>\n )}\n <MoreMenu\n details={\n experimental ? (\n <span\n className=\"flex items-center gap-1.5 text-xs text-muted-foreground\"\n data-testid=\"calls-experimental-badge\"\n >\n <FlaskConical className=\"size-3.5\" aria-hidden />\n Calls are an experimental feature.\n </span>\n ) : undefined\n }\n groups={[overflow, callItems, ...menuGroups]}\n />\n <ShareDocumentDialog\n open={sharingDocument}\n onOpenChange={setSharingDocument}\n onShare={() => void share.toggle(true)}\n />\n </CallControlBar>\n )\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Share a document in the call: pick one of the workspace's documents and, in one click, it opens
|
|
3
|
+
* in a window of its own (a presentation in the presentation window, anything else in a clean
|
|
4
|
+
* viewer: the pages only) and the browser's share dialog opens to choose it. Opening the window
|
|
5
|
+
* spends the click; Chrome shows the share dialog anyway, while a browser that wants a click of its
|
|
6
|
+
* own (Firefox, Safari) refuses it, and the window is then shared with Share screen/tab.
|
|
7
|
+
*/
|
|
8
|
+
export interface ShareDocumentDialogProps {
|
|
9
|
+
open: boolean;
|
|
10
|
+
onOpenChange: (open: boolean) => void;
|
|
11
|
+
/** Open the browser's share dialog (the call's screen share), in the same click. */
|
|
12
|
+
onShare: () => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function ShareDocumentDialog({ open, onOpenChange, onShare }: ShareDocumentDialogProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo, useState } from "react";
|
|
4
|
+
import { MonitorUp } from "lucide-react";
|
|
5
|
+
import { useArbiSessionStore, useDocuments } from "@arbidocs/react";
|
|
6
|
+
import { Button, getDocumentTitle } from "@arbidocs/react/ui";
|
|
7
|
+
import { ModalScaffold } from "../../settings/ModalScaffold.js";
|
|
8
|
+
import { DocumentPicker } from "../../settings/DocumentPicker.js";
|
|
9
|
+
import { useBlocksEnvironment } from "../../provider/environment.js";
|
|
10
|
+
import { openDocumentToShare } from "../../connection/viewer/shareDocument.js";
|
|
11
|
+
function ShareDocumentDialog({ open, onOpenChange, onShare }) {
|
|
12
|
+
const session = useArbiSessionStore();
|
|
13
|
+
const { notify } = useBlocksEnvironment();
|
|
14
|
+
const { data: documents } = useDocuments(void 0, { enabled: open });
|
|
15
|
+
const [picked, setPicked] = useState("");
|
|
16
|
+
const groups = useMemo(() => {
|
|
17
|
+
const docs = (documents ?? []).map((doc) => ({
|
|
18
|
+
id: doc.external_id,
|
|
19
|
+
title: getDocumentTitle(doc, "Untitled"),
|
|
20
|
+
fileName: doc.file_name
|
|
21
|
+
})).sort((a, b) => a.title.localeCompare(b.title));
|
|
22
|
+
return [{ id: "documents", docs }];
|
|
23
|
+
}, [documents]);
|
|
24
|
+
const selected = groups[0].docs.find((doc) => doc.id === picked);
|
|
25
|
+
const share = () => {
|
|
26
|
+
if (!selected) return;
|
|
27
|
+
openDocumentToShare(session, { id: selected.id });
|
|
28
|
+
onShare();
|
|
29
|
+
notify(
|
|
30
|
+
`"${selected.title}" is open in its own window: choose it in the share dialog (or with Share screen/tab).`,
|
|
31
|
+
"info"
|
|
32
|
+
);
|
|
33
|
+
setPicked("");
|
|
34
|
+
onOpenChange(false);
|
|
35
|
+
};
|
|
36
|
+
return /* @__PURE__ */ jsxs(
|
|
37
|
+
ModalScaffold,
|
|
38
|
+
{
|
|
39
|
+
open,
|
|
40
|
+
onOpenChange,
|
|
41
|
+
title: "Share a document",
|
|
42
|
+
description: "It opens in a window of its own showing only its pages, and the share dialog opens for you to choose it.",
|
|
43
|
+
showDescription: true,
|
|
44
|
+
icon: /* @__PURE__ */ jsx(MonitorUp, { className: "size-5" }),
|
|
45
|
+
size: "sm",
|
|
46
|
+
testId: "call-share-document-dialog",
|
|
47
|
+
children: [
|
|
48
|
+
/* @__PURE__ */ jsx(ModalScaffold.Body, { children: /* @__PURE__ */ jsx(
|
|
49
|
+
DocumentPicker,
|
|
50
|
+
{
|
|
51
|
+
groups,
|
|
52
|
+
value: picked,
|
|
53
|
+
onValueChange: setPicked,
|
|
54
|
+
labels: { placeholder: "Choose a document" }
|
|
55
|
+
}
|
|
56
|
+
) }),
|
|
57
|
+
/* @__PURE__ */ jsxs(ModalScaffold.Footer, { children: [
|
|
58
|
+
/* @__PURE__ */ jsx(Button, { type: "button", variant: "outline", onClick: () => onOpenChange(false), children: "Cancel" }),
|
|
59
|
+
/* @__PURE__ */ jsx(
|
|
60
|
+
Button,
|
|
61
|
+
{
|
|
62
|
+
type: "button",
|
|
63
|
+
onClick: share,
|
|
64
|
+
disabled: !selected,
|
|
65
|
+
"data-testid": "call-share-document-open",
|
|
66
|
+
children: "Open and share"
|
|
67
|
+
}
|
|
68
|
+
)
|
|
69
|
+
] })
|
|
70
|
+
]
|
|
71
|
+
}
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
export {
|
|
75
|
+
ShareDocumentDialog
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=ShareDocumentDialog.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/calls/connected/ShareDocumentDialog.tsx"],
|
|
4
|
+
"sourcesContent": ["/**\n * Share a document in the call: pick one of the workspace's documents and, in one click, it opens\n * in a window of its own (a presentation in the presentation window, anything else in a clean\n * viewer: the pages only) and the browser's share dialog opens to choose it. Opening the window\n * spends the click; Chrome shows the share dialog anyway, while a browser that wants a click of its\n * own (Firefox, Safari) refuses it, and the window is then shared with Share screen/tab.\n */\n\nimport { useMemo, useState } from 'react'\nimport { MonitorUp } from 'lucide-react'\nimport { useArbiSessionStore, useDocuments } from '@arbidocs/react'\nimport { Button, getDocumentTitle } from '@arbidocs/react/ui'\nimport { ModalScaffold } from '../../settings/ModalScaffold'\nimport { DocumentPicker, type PickerGroup } from '../../settings/DocumentPicker'\nimport { useBlocksEnvironment } from '../../provider/environment'\nimport { openDocumentToShare } from '../../connection/viewer/shareDocument'\n\nexport interface ShareDocumentDialogProps {\n open: boolean\n onOpenChange: (open: boolean) => void\n /** Open the browser's share dialog (the call's screen share), in the same click. */\n onShare: () => void\n}\n\nexport function ShareDocumentDialog({ open, onOpenChange, onShare }: ShareDocumentDialogProps) {\n const session = useArbiSessionStore()\n const { notify } = useBlocksEnvironment()\n const { data: documents } = useDocuments(undefined, { enabled: open })\n const [picked, setPicked] = useState('')\n\n const groups = useMemo<PickerGroup[]>(() => {\n const docs = (documents ?? [])\n .map((doc) => ({\n id: doc.external_id,\n title: getDocumentTitle(doc, 'Untitled'),\n fileName: doc.file_name,\n }))\n .sort((a, b) => a.title.localeCompare(b.title))\n return [{ id: 'documents', docs }]\n }, [documents])\n const selected = groups[0].docs.find((doc) => doc.id === picked)\n\n const share = () => {\n if (!selected) return\n openDocumentToShare(session, { id: selected.id })\n\n onShare()\n notify(\n `\"${selected.title}\" is open in its own window: choose it in the share dialog (or with Share screen/tab).`,\n 'info'\n )\n setPicked('')\n onOpenChange(false)\n }\n\n return (\n <ModalScaffold\n open={open}\n onOpenChange={onOpenChange}\n title=\"Share a document\"\n description=\"It opens in a window of its own showing only its pages, and the share dialog opens for you to choose it.\"\n showDescription\n icon={<MonitorUp className=\"size-5\" />}\n size=\"sm\"\n testId=\"call-share-document-dialog\"\n >\n <ModalScaffold.Body>\n <DocumentPicker\n groups={groups}\n value={picked}\n onValueChange={setPicked}\n labels={{ placeholder: 'Choose a document' }}\n />\n </ModalScaffold.Body>\n <ModalScaffold.Footer>\n <Button type=\"button\" variant=\"outline\" onClick={() => onOpenChange(false)}>\n Cancel\n </Button>\n <Button\n type=\"button\"\n onClick={share}\n disabled={!selected}\n data-testid=\"call-share-document-open\"\n >\n Open and share\n </Button>\n </ModalScaffold.Footer>\n </ModalScaffold>\n )\n}\n"],
|
|
5
|
+
"mappings": ";AA8DY,cAYN,YAZM;AAtDZ,SAAS,SAAS,gBAAgB;AAClC,SAAS,iBAAiB;AAC1B,SAAS,qBAAqB,oBAAoB;AAClD,SAAS,QAAQ,wBAAwB;AACzC,SAAS,qBAAqB;AAC9B,SAAS,sBAAwC;AACjD,SAAS,4BAA4B;AACrC,SAAS,2BAA2B;AAS7B,SAAS,oBAAoB,EAAE,MAAM,cAAc,QAAQ,GAA6B;AAC7F,QAAM,UAAU,oBAAoB;AACpC,QAAM,EAAE,OAAO,IAAI,qBAAqB;AACxC,QAAM,EAAE,MAAM,UAAU,IAAI,aAAa,QAAW,EAAE,SAAS,KAAK,CAAC;AACrE,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,EAAE;AAEvC,QAAM,SAAS,QAAuB,MAAM;AAC1C,UAAM,QAAQ,aAAa,CAAC,GACzB,IAAI,CAAC,SAAS;AAAA,MACb,IAAI,IAAI;AAAA,MACR,OAAO,iBAAiB,KAAK,UAAU;AAAA,MACvC,UAAU,IAAI;AAAA,IAChB,EAAE,EACD,KAAK,CAAC,GAAG,MAAM,EAAE,MAAM,cAAc,EAAE,KAAK,CAAC;AAChD,WAAO,CAAC,EAAE,IAAI,aAAa,KAAK,CAAC;AAAA,EACnC,GAAG,CAAC,SAAS,CAAC;AACd,QAAM,WAAW,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,QAAQ,IAAI,OAAO,MAAM;AAE/D,QAAM,QAAQ,MAAM;AAClB,QAAI,CAAC,SAAU;AACf,wBAAoB,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC;AAEhD,YAAQ;AACR;AAAA,MACE,IAAI,SAAS,KAAK;AAAA,MAClB;AAAA,IACF;AACA,cAAU,EAAE;AACZ,iBAAa,KAAK;AAAA,EACpB;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,OAAM;AAAA,MACN,aAAY;AAAA,MACZ,iBAAe;AAAA,MACf,MAAM,oBAAC,aAAU,WAAU,UAAS;AAAA,MACpC,MAAK;AAAA,MACL,QAAO;AAAA,MAEP;AAAA,4BAAC,cAAc,MAAd,EACC;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA,OAAO;AAAA,YACP,eAAe;AAAA,YACf,QAAQ,EAAE,aAAa,oBAAoB;AAAA;AAAA,QAC7C,GACF;AAAA,QACA,qBAAC,cAAc,QAAd,EACC;AAAA,8BAAC,UAAO,MAAK,UAAS,SAAQ,WAAU,SAAS,MAAM,aAAa,KAAK,GAAG,oBAE5E;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,MAAK;AAAA,cACL,SAAS;AAAA,cACT,UAAU,CAAC;AAAA,cACX,eAAY;AAAA,cACb;AAAA;AAAA,UAED;AAAA,WACF;AAAA;AAAA;AAAA,EACF;AAEJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|