@arbidocs/blocks 0.5.106 → 0.5.107
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/README.md +60 -6
- package/dist/{ConnectedCallDock-P7LK2HYF.cjs → ConnectedCallDock-H3WWFGXF.cjs} +8 -8
- package/dist/{ConnectedCallDock-P7LK2HYF.cjs.map → ConnectedCallDock-H3WWFGXF.cjs.map} +1 -1
- package/dist/{ConnectedCallDock-NEZJNTKH.js → ConnectedCallDock-TDYRHPAK.js} +6 -6
- package/dist/{ConnectedCallDock-NEZJNTKH.js.map → ConnectedCallDock-TDYRHPAK.js.map} +1 -1
- package/dist/{ConnectedCallRoom-FXTR4YFI.cjs → ConnectedCallRoom-55O5OUN7.cjs} +7 -7
- package/dist/{ConnectedCallRoom-FXTR4YFI.cjs.map → ConnectedCallRoom-55O5OUN7.cjs.map} +1 -1
- package/dist/{ConnectedCallRoom-K3X6ICCG.js → ConnectedCallRoom-Z6F6WCLH.js} +6 -6
- package/dist/{ConnectedCallRoom-K3X6ICCG.js.map → ConnectedCallRoom-Z6F6WCLH.js.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-7VJKOKYU.cjs → ConnectedNativeDocxComparison-DGBZJ4XA.cjs} +10 -10
- package/dist/{ConnectedNativeDocxComparison-7VJKOKYU.cjs.map → ConnectedNativeDocxComparison-DGBZJ4XA.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-FENZYWDH.js → ConnectedNativeDocxComparison-NVZRVNOS.js} +9 -9
- package/dist/{ConnectedNativeDocxComparison-FENZYWDH.js.map → ConnectedNativeDocxComparison-NVZRVNOS.js.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-HB5BHGZ2.cjs → ConnectedNativeDocxEditor-R4WINUUB.cjs} +10 -10
- package/dist/{ConnectedNativeDocxEditor-HB5BHGZ2.cjs.map → ConnectedNativeDocxEditor-R4WINUUB.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-CNQAMO2N.js → ConnectedNativeDocxEditor-RSVBN7DY.js} +8 -8
- package/dist/{ConnectedNativeDocxEditor-CNQAMO2N.js.map → ConnectedNativeDocxEditor-RSVBN7DY.js.map} +1 -1
- package/dist/{ConnectedProductionSetDialog-O4FWTZNF.js → ConnectedProductionSetDialog-2DFBXE2X.js} +5 -5
- package/dist/{ConnectedProductionSetDialog-O4FWTZNF.js.map → ConnectedProductionSetDialog-2DFBXE2X.js.map} +1 -1
- package/dist/{ConnectedProductionSetDialog-ENAIZWPK.cjs → ConnectedProductionSetDialog-KYDPQ7SG.cjs} +6 -6
- package/dist/{ConnectedProductionSetDialog-ENAIZWPK.cjs.map → ConnectedProductionSetDialog-KYDPQ7SG.cjs.map} +1 -1
- package/dist/{ConnectedStreamedWordArtifact-ILMKFCDC.js → ConnectedStreamedWordArtifact-HLJ5IIOU.js} +9 -9
- package/dist/ConnectedStreamedWordArtifact-HLJ5IIOU.js.map +1 -0
- package/dist/{ConnectedStreamedWordArtifact-BF6JET2D.cjs → ConnectedStreamedWordArtifact-JQ34AOUU.cjs} +10 -10
- package/dist/ConnectedStreamedWordArtifact-JQ34AOUU.cjs.map +1 -0
- package/dist/{DocumentReviewCard-UOLXZKZE.js → DocumentReviewCard-7JSXRJZ2.js} +6 -6
- package/dist/{DocumentReviewCard-UOLXZKZE.js.map → DocumentReviewCard-7JSXRJZ2.js.map} +1 -1
- package/dist/{DocumentReviewCard-QVQ2LGFH.cjs → DocumentReviewCard-C4HVT3WM.cjs} +8 -8
- package/dist/{DocumentReviewCard-QVQ2LGFH.cjs.map → DocumentReviewCard-C4HVT3WM.cjs.map} +1 -1
- package/dist/{FilesViewerDialog-5ELQYWAZ.js → FilesViewerDialog-IMQTZWKD.js} +16 -16
- package/dist/{FilesViewerDialog-5ELQYWAZ.js.map → FilesViewerDialog-IMQTZWKD.js.map} +1 -1
- package/dist/{FilesViewerDialog-XNGHHWYS.cjs → FilesViewerDialog-UP7GFHYN.cjs} +23 -23
- package/dist/{FilesViewerDialog-XNGHHWYS.cjs.map → FilesViewerDialog-UP7GFHYN.cjs.map} +1 -1
- package/dist/{RechartsRenderer-EJRIFAAP.js → RechartsRenderer-23OF4H6X.js} +3 -3
- package/dist/{RechartsRenderer-EJRIFAAP.js.map → RechartsRenderer-23OF4H6X.js.map} +1 -1
- package/dist/{RechartsRenderer-CNFQ5EHF.cjs → RechartsRenderer-GIRCW7DB.cjs} +4 -4
- package/dist/{RechartsRenderer-CNFQ5EHF.cjs.map → RechartsRenderer-GIRCW7DB.cjs.map} +1 -1
- package/dist/{WorkspaceTableView-HRCV6WR7.cjs → WorkspaceTableView-PJM47B5F.cjs} +8 -8
- package/dist/{WorkspaceTableView-HRCV6WR7.cjs.map → WorkspaceTableView-PJM47B5F.cjs.map} +1 -1
- package/dist/{WorkspaceTableView-DIMTW5P5.js → WorkspaceTableView-YDA7A4UJ.js} +6 -6
- package/dist/{WorkspaceTableView-DIMTW5P5.js.map → WorkspaceTableView-YDA7A4UJ.js.map} +1 -1
- package/dist/{ai-E6FA4Y4J.cjs → ai-ADS6YSS2.cjs} +17 -17
- package/dist/ai-ADS6YSS2.cjs.map +1 -0
- package/dist/{ai-WASSGEMI.js → ai-KHWTGBT5.js} +9 -9
- package/dist/ai-KHWTGBT5.js.map +1 -0
- package/dist/auth/index.cjs +32 -32
- package/dist/auth/index.js +1 -1
- package/dist/calls/index.cjs +49 -49
- package/dist/calls/index.js +10 -10
- package/dist/{chunk-VJAMDAR6.cjs → chunk-22KAKJ3W.cjs} +4 -4
- package/dist/{chunk-VJAMDAR6.cjs.map → chunk-22KAKJ3W.cjs.map} +1 -1
- package/dist/{chunk-DEIF2VAA.js → chunk-3GFQNJYE.js} +3 -3
- package/dist/{chunk-DEIF2VAA.js.map → chunk-3GFQNJYE.js.map} +1 -1
- package/dist/{chunk-LUO46ELJ.cjs → chunk-3YZKDCWY.cjs} +2 -2
- package/dist/chunk-3YZKDCWY.cjs.map +1 -0
- package/dist/{chunk-5OUOPKGE.cjs → chunk-45OU2UAA.cjs} +18 -18
- package/dist/{chunk-5OUOPKGE.cjs.map → chunk-45OU2UAA.cjs.map} +1 -1
- package/dist/{chunk-JXKNPKU6.cjs → chunk-4CIVQWAX.cjs} +4 -4
- package/dist/{chunk-JXKNPKU6.cjs.map → chunk-4CIVQWAX.cjs.map} +1 -1
- package/dist/{chunk-VOI26MXJ.cjs → chunk-5AC52BHL.cjs} +16 -16
- package/dist/{chunk-VOI26MXJ.cjs.map → chunk-5AC52BHL.cjs.map} +1 -1
- package/dist/{chunk-OG3TI5GX.js → chunk-6M5NAAWX.js} +47 -5
- package/dist/chunk-6M5NAAWX.js.map +1 -0
- package/dist/{chunk-IIUEDF3F.js → chunk-6ZYOUT73.js} +7 -7
- package/dist/{chunk-IIUEDF3F.js.map → chunk-6ZYOUT73.js.map} +1 -1
- package/dist/{chunk-TRI3LQVR.js → chunk-7S7YVBFK.js} +5 -5
- package/dist/{chunk-TRI3LQVR.js.map → chunk-7S7YVBFK.js.map} +1 -1
- package/dist/{chunk-QN5GTCPB.cjs → chunk-7V4OCZS6.cjs} +8 -8
- package/dist/{chunk-QN5GTCPB.cjs.map → chunk-7V4OCZS6.cjs.map} +1 -1
- package/dist/{chunk-S7NJVJJX.cjs → chunk-AHMRYY7J.cjs} +25 -25
- package/dist/{chunk-S7NJVJJX.cjs.map → chunk-AHMRYY7J.cjs.map} +1 -1
- package/dist/{chunk-GK5BMDS6.js → chunk-AVGHTUPE.js} +4 -4
- package/dist/{chunk-GK5BMDS6.js.map → chunk-AVGHTUPE.js.map} +1 -1
- package/dist/{chunk-RAYNCZ7O.js → chunk-AZCMKGDG.js} +3 -3
- package/dist/{chunk-RAYNCZ7O.js.map → chunk-AZCMKGDG.js.map} +1 -1
- package/dist/{chunk-IJVU5MZA.js → chunk-BAUZUIHB.js} +5 -5
- package/dist/{chunk-IJVU5MZA.js.map → chunk-BAUZUIHB.js.map} +1 -1
- package/dist/{chunk-2VHZUSFW.js → chunk-BBWLFK3C.js} +3 -3
- package/dist/{chunk-2VHZUSFW.js.map → chunk-BBWLFK3C.js.map} +1 -1
- package/dist/{chunk-MW7FGIF4.cjs → chunk-BFVCYBND.cjs} +9 -9
- package/dist/{chunk-MW7FGIF4.cjs.map → chunk-BFVCYBND.cjs.map} +1 -1
- package/dist/{chunk-7ONU7EWY.js → chunk-BH6IKGZ3.js} +5 -5
- package/dist/{chunk-7ONU7EWY.js.map → chunk-BH6IKGZ3.js.map} +1 -1
- package/dist/{chunk-RNX5LAQK.cjs → chunk-C42WBPH4.cjs} +7 -7
- package/dist/{chunk-RNX5LAQK.cjs.map → chunk-C42WBPH4.cjs.map} +1 -1
- package/dist/{chunk-LM5CPXJO.cjs → chunk-CRLFLMTK.cjs} +19 -13
- package/dist/chunk-CRLFLMTK.cjs.map +1 -0
- package/dist/{chunk-CWC6W2NE.cjs → chunk-D35EHOK5.cjs} +11 -11
- package/dist/{chunk-CWC6W2NE.cjs.map → chunk-D35EHOK5.cjs.map} +1 -1
- package/dist/{chunk-BMHW7WTF.js → chunk-DBKZANTC.js} +4 -4
- package/dist/{chunk-BMHW7WTF.js.map → chunk-DBKZANTC.js.map} +1 -1
- package/dist/{chunk-Q5U6Y2NO.js → chunk-E2P4JJLJ.js} +4 -45
- package/dist/chunk-E2P4JJLJ.js.map +1 -0
- package/dist/{chunk-D3GZWKHW.cjs → chunk-EKSHUNJI.cjs} +9 -9
- package/dist/{chunk-D3GZWKHW.cjs.map → chunk-EKSHUNJI.cjs.map} +1 -1
- package/dist/{chunk-5XQNXDST.js → chunk-FPOKWML2.js} +18 -5
- package/dist/chunk-FPOKWML2.js.map +1 -0
- package/dist/{chunk-M4TM3K52.cjs → chunk-FSXQHEFQ.cjs} +16 -16
- package/dist/{chunk-M4TM3K52.cjs.map → chunk-FSXQHEFQ.cjs.map} +1 -1
- package/dist/{chunk-35BADIIF.cjs → chunk-GX75YCWJ.cjs} +23 -23
- package/dist/{chunk-35BADIIF.cjs.map → chunk-GX75YCWJ.cjs.map} +1 -1
- package/dist/{chunk-7IF3E3I2.cjs → chunk-I7CJDF3V.cjs} +4 -4
- package/dist/{chunk-7IF3E3I2.cjs.map → chunk-I7CJDF3V.cjs.map} +1 -1
- package/dist/{chunk-KYLQRS3O.js → chunk-IHOV6OTA.js} +4 -4
- package/dist/{chunk-KYLQRS3O.js.map → chunk-IHOV6OTA.js.map} +1 -1
- package/dist/{chunk-OXHAZN43.cjs → chunk-IXL2KJOZ.cjs} +26 -26
- package/dist/{chunk-OXHAZN43.cjs.map → chunk-IXL2KJOZ.cjs.map} +1 -1
- package/dist/{chunk-632JXVXY.js → chunk-KIXFXCHL.js} +15 -9
- package/dist/chunk-KIXFXCHL.js.map +1 -0
- package/dist/{chunk-PIWT2GCY.cjs → chunk-LFYKB7KF.cjs} +15 -15
- package/dist/{chunk-PIWT2GCY.cjs.map → chunk-LFYKB7KF.cjs.map} +1 -1
- package/dist/{chunk-7Q6EVFMT.js → chunk-LYW5A35J.js} +9 -9
- package/dist/{chunk-7Q6EVFMT.js.map → chunk-LYW5A35J.js.map} +1 -1
- package/dist/chunk-NFK2SEUD.js +577 -0
- package/dist/chunk-NFK2SEUD.js.map +1 -0
- package/dist/{chunk-TJQMC7GJ.cjs → chunk-NNBL3HPG.cjs} +4 -4
- package/dist/{chunk-TJQMC7GJ.cjs.map → chunk-NNBL3HPG.cjs.map} +1 -1
- package/dist/{chunk-Y5P5ZMHQ.js → chunk-NWBCZ4PA.js} +4 -4
- package/dist/{chunk-Y5P5ZMHQ.js.map → chunk-NWBCZ4PA.js.map} +1 -1
- package/dist/{chunk-5UMZXDGL.cjs → chunk-O27K7KTZ.cjs} +161 -7
- package/dist/chunk-O27K7KTZ.cjs.map +1 -0
- package/dist/{chunk-GARDQALH.js → chunk-OLAYDOPC.js} +5 -5
- package/dist/{chunk-GARDQALH.js.map → chunk-OLAYDOPC.js.map} +1 -1
- package/dist/chunk-ORELHENJ.cjs +594 -0
- package/dist/chunk-ORELHENJ.cjs.map +1 -0
- package/dist/{chunk-NUOMPVKQ.js → chunk-OWHO2TO3.js} +3 -3
- package/dist/{chunk-NUOMPVKQ.js.map → chunk-OWHO2TO3.js.map} +1 -1
- package/dist/{chunk-6XNWGOS3.cjs → chunk-PHDUN4SG.cjs} +187 -80
- package/dist/chunk-PHDUN4SG.cjs.map +1 -0
- package/dist/{chunk-KGUBKE3V.cjs → chunk-PL7O3RJJ.cjs} +48 -4
- package/dist/chunk-PL7O3RJJ.cjs.map +1 -0
- package/dist/{chunk-BH4MK2J5.js → chunk-QG6MRLZG.js} +2 -2
- package/dist/chunk-QG6MRLZG.js.map +1 -0
- package/dist/{chunk-YPTZNQPJ.cjs → chunk-RCZRI72J.cjs} +4 -4
- package/dist/{chunk-YPTZNQPJ.cjs.map → chunk-RCZRI72J.cjs.map} +1 -1
- package/dist/{chunk-E7STRFBT.cjs → chunk-SCLGUHLU.cjs} +4 -4
- package/dist/{chunk-E7STRFBT.cjs.map → chunk-SCLGUHLU.cjs.map} +1 -1
- package/dist/{chunk-EOTJX536.js → chunk-T5ZMG6MC.js} +3 -3
- package/dist/{chunk-EOTJX536.js.map → chunk-T5ZMG6MC.js.map} +1 -1
- package/dist/{chunk-LWEX3AOZ.js → chunk-TG4IICWO.js} +4 -4
- package/dist/{chunk-LWEX3AOZ.js.map → chunk-TG4IICWO.js.map} +1 -1
- package/dist/{chunk-ET3W24JV.js → chunk-TNKPQ3EF.js} +9 -9
- package/dist/{chunk-ET3W24JV.js.map → chunk-TNKPQ3EF.js.map} +1 -1
- package/dist/{chunk-QFKL4HV2.js → chunk-U5F5P4YU.js} +118 -15
- package/dist/chunk-U5F5P4YU.js.map +1 -0
- package/dist/{chunk-N52PBUAP.cjs → chunk-U6LQ6Z3P.cjs} +10 -10
- package/dist/{chunk-N52PBUAP.cjs.map → chunk-U6LQ6Z3P.cjs.map} +1 -1
- package/dist/{chunk-JNVJQCGF.cjs → chunk-UCA4JLLJ.cjs} +4 -4
- package/dist/{chunk-JNVJQCGF.cjs.map → chunk-UCA4JLLJ.cjs.map} +1 -1
- package/dist/{chunk-3RUQHIDC.js → chunk-UQ2OBHMV.js} +7 -7
- package/dist/{chunk-3RUQHIDC.js.map → chunk-UQ2OBHMV.js.map} +1 -1
- package/dist/{chunk-VYJF4ZQY.cjs → chunk-V6C2MBFY.cjs} +3 -2
- package/dist/chunk-V6C2MBFY.cjs.map +1 -0
- package/dist/{chunk-O4X7HXLF.cjs → chunk-VCEX7COE.cjs} +2 -45
- package/dist/chunk-VCEX7COE.cjs.map +1 -0
- package/dist/{chunk-QTSNHGSI.js → chunk-WFM6E7DD.js} +3 -3
- package/dist/{chunk-QTSNHGSI.js.map → chunk-WFM6E7DD.js.map} +1 -1
- package/dist/{chunk-SY2WD6VA.cjs → chunk-WI3BVKEC.cjs} +5 -5
- package/dist/{chunk-SY2WD6VA.cjs.map → chunk-WI3BVKEC.cjs.map} +1 -1
- package/dist/{chunk-LWCLAAEX.js → chunk-WJHRWXWJ.js} +3 -3
- package/dist/{chunk-LWCLAAEX.js.map → chunk-WJHRWXWJ.js.map} +1 -1
- package/dist/{chunk-FVZ2CN4A.js → chunk-WQH2WWZE.js} +3 -2
- package/dist/chunk-WQH2WWZE.js.map +1 -0
- package/dist/{chunk-V2CKYM4B.cjs → chunk-XHN5KOI2.cjs} +9 -9
- package/dist/{chunk-V2CKYM4B.cjs.map → chunk-XHN5KOI2.cjs.map} +1 -1
- package/dist/{chunk-DBHBJIF4.js → chunk-YJWAGXYM.js} +3 -3
- package/dist/{chunk-DBHBJIF4.js.map → chunk-YJWAGXYM.js.map} +1 -1
- package/dist/{chunk-KUI2IC7W.js → chunk-YLKHTBYA.js} +3 -3
- package/dist/{chunk-KUI2IC7W.js.map → chunk-YLKHTBYA.js.map} +1 -1
- package/dist/{chunk-73FJ6L6I.cjs → chunk-ZMVF7EYJ.cjs} +18 -5
- package/dist/chunk-ZMVF7EYJ.cjs.map +1 -0
- package/dist/{chunk-CEVVGJQX.js → chunk-ZNY5W3VX.js} +162 -9
- package/dist/chunk-ZNY5W3VX.js.map +1 -0
- package/dist/connect/docx.cjs +13 -13
- package/dist/connect/docx.js +9 -9
- package/dist/connect/index.cjs +1100 -884
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.d.ts +1 -0
- package/dist/connect/index.js +475 -274
- package/dist/connect/index.js.map +1 -1
- package/dist/connect/viewer.cjs +12 -12
- package/dist/connect/viewer.js +10 -10
- package/dist/connection/account-cluster/ConnectedAccountCluster.d.ts +1 -1
- package/dist/connection/dashboards/ConnectedDashboardsPage.d.ts +13 -2
- package/dist/connection/dashboards/index.d.ts +1 -1
- package/dist/connection/dashboards/templates.d.ts +14 -3
- package/dist/connection/remote-control/ConnectedRemoteControlConsent.d.ts +17 -0
- package/dist/connection/remote-control/ConnectedRemoteControlIndicator.d.ts +8 -0
- package/dist/connection/remote-control/ConnectedRemoteControlSwitch.d.ts +1 -0
- package/dist/connection/remote-control/index.d.ts +4 -0
- package/dist/connection/remote-control/remoteControl.d.ts +40 -0
- package/dist/connection/routes/useDeepLinkSync.d.ts +4 -1
- package/dist/connection/runtime/ConnectedAppRuntime.d.ts +1 -1
- package/dist/connection/settings-page/settingsSections.d.ts +1 -1
- package/dist/connection/tags/ConnectedTagTable.d.ts +1 -1
- package/dist/dashboards/index.cjs +327 -116
- package/dist/dashboards/index.cjs.map +1 -1
- package/dist/dashboards/index.js +311 -101
- package/dist/dashboards/index.js.map +1 -1
- package/dist/embed/index.cjs +21 -21
- package/dist/embed/index.js +14 -14
- package/dist/guided/GuidedCursor.d.ts +21 -0
- package/dist/guided/cursor.d.ts +56 -0
- package/dist/guided/index.d.ts +5 -0
- package/dist/guided/runner.d.ts +30 -0
- package/dist/guided/sequences.d.ts +80 -0
- package/dist/guided/surfaces.d.ts +13 -0
- package/dist/guided/useGuidedRuns.d.ts +3 -0
- package/dist/index.cjs +171 -135
- package/dist/index.d.ts +1 -0
- package/dist/index.js +7 -7
- package/dist/provider/host.d.ts +6 -0
- package/dist/settings/PlanBadge.d.ts +1 -1
- package/dist/settings/TipsEditor.d.ts +6 -3
- package/dist/settings/index.cjs +152 -151
- package/dist/settings/index.js +3 -2
- package/dist/shell/index.cjs +46 -46
- package/dist/shell/index.js +3 -3
- package/dist/studio/index.cjs +15 -15
- package/dist/studio/index.js +9 -9
- package/dist/styles.css +1 -1
- package/dist/workflow-canvas/index.cjs +25 -25
- package/dist/workflow-canvas/index.js +13 -13
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +5 -5
- package/dist/ConnectedStreamedWordArtifact-BF6JET2D.cjs.map +0 -1
- package/dist/ConnectedStreamedWordArtifact-ILMKFCDC.js.map +0 -1
- package/dist/ai-E6FA4Y4J.cjs.map +0 -1
- package/dist/ai-WASSGEMI.js.map +0 -1
- package/dist/chunk-5UMZXDGL.cjs.map +0 -1
- package/dist/chunk-5XQNXDST.js.map +0 -1
- package/dist/chunk-632JXVXY.js.map +0 -1
- package/dist/chunk-6XNWGOS3.cjs.map +0 -1
- package/dist/chunk-73FJ6L6I.cjs.map +0 -1
- package/dist/chunk-BH4MK2J5.js.map +0 -1
- package/dist/chunk-C4TGESIB.cjs +0 -260
- package/dist/chunk-C4TGESIB.cjs.map +0 -1
- package/dist/chunk-CEVVGJQX.js.map +0 -1
- package/dist/chunk-FVZ2CN4A.js.map +0 -1
- package/dist/chunk-KGUBKE3V.cjs.map +0 -1
- package/dist/chunk-LM5CPXJO.cjs.map +0 -1
- package/dist/chunk-LUO46ELJ.cjs.map +0 -1
- package/dist/chunk-MHFWGIF4.js +0 -254
- package/dist/chunk-MHFWGIF4.js.map +0 -1
- package/dist/chunk-O4X7HXLF.cjs.map +0 -1
- package/dist/chunk-OG3TI5GX.js.map +0 -1
- package/dist/chunk-Q5U6Y2NO.js.map +0 -1
- package/dist/chunk-QFKL4HV2.js.map +0 -1
- package/dist/chunk-VYJF4ZQY.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/calls/recording-labels.ts","../src/calls/call-cards.ts","../src/calls/HeaderAction.tsx","../src/connection/entities/ConnectedUserEntity.tsx","../src/calls/connected/CallUserPill.tsx"],"names":["jsxs","Button","jsx","Tooltip","TooltipTrigger","TooltipContent","useArbiWsStatus","useArbiWsStore","useUserSettings","memo","ConnectedUserEntity","useConnectedWorkspace","useBlocksEnvironment","useWorkspaces","useMemo","isAgent","UserEntity","getUserInitials","getUserDisplayName","getUserAvatarColor","agentAvatarColors","EntityTooltip","EntityTooltipHeader","Avatar","cn","AvatarImage","AvatarFallback","ArbiBotIcon","EntityTooltipSection","EntityTooltipHint","Users","ShieldIcon","getWorkspaceColor","MessageCircleMore","useArbiSession","usePeople","CallUserPill"],"mappings":"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","file":"chunk-7IF3E3I2.cjs","sourcesContent":["import type { calls } from '@arbidocs/sdk/browser'\n\n/** Shared by the recording UI (kept out of the component files for fast refresh). */\n\n/** How a recording mode is named in the UI. */\nexport const MODE_LABEL: Record<calls.RecordingMode, string> = {\n audio: 'Audio',\n audio_video: 'Audio + video',\n}\n\n/** Expiry choices (days; null = kept). */\nexport const EXPIRY_DAYS = [null, 7, 30, 90] as const\n\n/** `expires_at` for a choice, from now. */\nexport function expiryFor(days: number | null, now = Date.now()): string | null {\n return days ? new Date(now + days * 86_400_000).toISOString() : null\n}\n\n/** Which expiry choice an `expires_at` is closest to (for the select). */\nexport function expiryChoiceOf(expiresAt: string | null, now = Date.now()): string {\n if (!expiresAt) return 'none'\n const days = (Date.parse(expiresAt) - now) / 86_400_000\n const nearest = [7, 30, 90].reduce((best, d) =>\n Math.abs(d - days) < Math.abs(best - days) ? d : best\n )\n return String(nearest)\n}\n","/** Pure helpers for the call cards and call titles (kept apart from the components). */\n\nimport type { calls } from '@arbidocs/sdk/browser'\n\nexport interface CallLogDetail {\n call_ext_id: string\n started_by: string | null\n invited: string[]\n started_at: string | null\n ended_at: string | null\n duration_s: number | null\n joined: string[]\n meeting_conversation_ext_id: string | null\n}\n\nconst ids = (v: unknown): string[] =>\n Array.isArray(v) ? v.filter((x): x is string => typeof x === 'string') : []\nconst str = (v: unknown): string | null => (typeof v === 'string' && v ? v : null)\n\n/** The card's detail from an activity event's `detail`, or null when it is not a call card. */\nexport function parseCallLogDetail(\n detail: Record<string, unknown> | null | undefined\n): CallLogDetail | null {\n const callExtId = str(detail?.call_ext_id)\n if (!detail || !callExtId) return null\n return {\n call_ext_id: callExtId,\n started_by: str(detail.started_by),\n invited: ids(detail.invited),\n started_at: str(detail.started_at),\n ended_at: str(detail.ended_at),\n duration_s: typeof detail.duration_s === 'number' ? detail.duration_s : null,\n joined: ids(detail.joined),\n meeting_conversation_ext_id: str(detail.meeting_conversation_ext_id),\n }\n}\n\n/** \"45 s\", \"12 min\", \"1 h 5 min\". */\nexport function formatCallDuration(seconds: number | null | undefined): string | null {\n if (seconds == null || seconds < 0) return null\n if (seconds < 60) return `${Math.round(seconds)} s`\n const minutes = Math.round(seconds / 60)\n if (minutes < 60) return `${minutes} min`\n const h = Math.floor(minutes / 60)\n const m = minutes % 60\n return m ? `${h} h ${m} min` : `${h} h`\n}\n\n/** Whether the call's current session is running (the server's view, or `call.started`). */\nexport function isCallLive(\n call: Pick<calls.CallResponse, 'started_at' | 'ended_at' | 'cancelled'> | undefined,\n liveNow: boolean\n): boolean {\n if (liveNow) return true\n if (!call?.started_at || call.cancelled) return false\n return !call.ended_at || Date.parse(call.started_at) > Date.parse(call.ended_at)\n}\n\n/** \"Call with Ada, Bob\" (the title is encrypted under the call key). */\nexport function contactsCallTitle(names: string[]): string | null {\n if (!names.length) return null\n const shown = names.slice(0, 3).join(', ')\n return `Call with ${shown}${names.length > 3 ? ` +${names.length - 3}` : ''}`\n}\n","/**\n * A secondary action of a conversation header (Save transcript, Recordings): labelled where there\n * is room, or icon-only with the label in a tooltip (and for screen readers) where the header is\n * crowded — the thread's title keeps priority.\n */\n\nimport type { ReactElement, ReactNode } from 'react'\nimport { Button, Tooltip, TooltipContent, TooltipTrigger } from '@arbidocs/react/ui'\n\nexport function HeaderAction({\n label,\n icon,\n iconOnly = false,\n onClick,\n testId,\n className,\n}: {\n label: string\n icon: ReactNode\n iconOnly?: boolean\n onClick(): void\n testId?: string\n className?: string\n}): ReactElement {\n if (!iconOnly) {\n return (\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n className={className}\n onClick={onClick}\n data-testid={testId}\n >\n <span className=\"mr-1 inline-flex\">{icon}</span>\n {label}\n </Button>\n )\n }\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n type=\"button\"\n size=\"icon\"\n variant=\"ghost\"\n className={className}\n aria-label={label}\n onClick={onClick}\n data-testid={testId}\n >\n {icon}\n <span className=\"sr-only\">{label}</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">{label}</TooltipContent>\n </Tooltip>\n )\n}\n","/**\n * A person, connected: the shared avatar / pill (`UserEntity` in `@arbidocs/react/ui`) with what\n * the session knows about them. \"You\" for the signed-in user, their live presence (and, on your own\n * avatar, the live connection's status unless you hide your online status), the workspaces you\n * share and an agent's owner in the hover card. A click on someone else opens your direct chat\n * with them (`openDirectChat`); on yourself, your settings.\n */\nimport { memo, useMemo, type MouseEvent } from 'react'\nimport { MessageCircleMore, Users } from 'lucide-react'\nimport {\n ArbiBotHeadIcon as ArbiBotIcon,\n useArbiWsStatus,\n useArbiWsStore,\n useUserSettings,\n useWorkspaces,\n} from '@arbidocs/react'\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n ShieldIcon,\n UserEntity,\n agentAvatarColors,\n cn,\n getWorkspaceColor,\n type PresenceDisplayStatus,\n getUserAvatarColor,\n getUserDisplayName,\n getUserInitials,\n isAgent,\n} from '@arbidocs/react/ui'\nimport type { components } from '@arbidocs/client'\nimport {\n EntityTooltip,\n EntityTooltipHeader,\n EntityTooltipHint,\n EntityTooltipSection,\n} from '../../components/EntityTooltip'\nimport { useBlocksEnvironment } from '../../provider/environment'\nimport { useConnectedWorkspace } from '../ConnectionProvider'\n\ntype UserResponse = components['schemas']['UserResponse']\n\nexport interface ConnectedUserEntityProps {\n user?: UserResponse | null\n size?: 'xs' | 'sm' | 'md' | 'lg'\n variant?: 'icon' | 'pill'\n className?: string\n /** Hovering shows their card (default true). */\n showTooltip?: boolean\n /** The presence dot (default true). */\n showPresence?: boolean\n /** A click opens the chat with them, or your settings (default true). */\n interactive?: boolean\n /** Your own label in place of \"You\" (e.g. \"Ada Lovelace (me)\" in a call). */\n selfLabel?: string\n}\n\n/** The presence dot: your own live connection, or the person's presence. */\nfunction useDisplayStatus(\n user: UserResponse | null | undefined,\n isMe: boolean,\n showPresence: boolean\n): PresenceDisplayStatus | undefined {\n const wsStatus = useArbiWsStatus()\n const presence = useArbiWsStore((s) =>\n showPresence && user ? s.presence[user.external_id] : undefined\n )\n const { data: settings } = useUserSettings()\n if (!showPresence) return undefined\n if (isMe) {\n // Hiding your online status hides only \"connected\": connection trouble always shows.\n if (wsStatus === 'connected') return settings?.hide_online_status ? 'hidden' : 'connected'\n return wsStatus === 'reconnecting' ? 'connecting' : wsStatus\n }\n // `unknown` (removed from contacts, or hidden) and no news show grey.\n return presence === 'online' ? 'connected' : 'hidden'\n}\n\nexport const ConnectedUserEntity = memo(function ConnectedUserEntity({\n user,\n size = 'md',\n variant = 'pill',\n className,\n showTooltip = true,\n showPresence = true,\n interactive = true,\n selfLabel,\n}: ConnectedUserEntityProps) {\n const { userId: currentUserId } = useConnectedWorkspace()\n const { openDirectChat, openSettings } = useBlocksEnvironment()\n const isMe = !!(user && currentUserId && user.external_id === currentUserId)\n const displayStatus = useDisplayStatus(user, isMe, showPresence)\n\n // The workspaces you share with them, and an agent's human owner (the hover card only).\n const { data: workspaces = [] } = useWorkspaces()\n const sharedWorkspaces = useMemo(() => {\n if (!user || isMe) return []\n return workspaces.filter((ws) =>\n ws.users?.some((member) => member.user.external_id === user.external_id)\n )\n }, [workspaces, user, isMe])\n const agentOwner = useMemo(() => {\n if (!user || !isAgent(user) || !user.parent_ext_id) return null\n for (const ws of workspaces) {\n const found = ws.users?.find((member) => member.user.external_id === user.parent_ext_id)\n if (found) return found.user\n }\n return null\n }, [user, workspaces])\n\n if (!user) return <UserEntity empty size={size} className={className} />\n\n const initials = getUserInitials(user)\n const userIsAgent = isAgent(user)\n const fullName = getUserDisplayName(user)\n const colorClass = getUserAvatarColor(user.external_id)\n const agentStyle = userIsAgent ? agentAvatarColors(colorClass) : undefined\n const canChat = !isMe && !!openDirectChat\n\n const onClick = (e: MouseEvent) => {\n e.stopPropagation()\n if (isMe) openSettings()\n else openDirectChat?.(user.external_id)\n }\n\n const tooltipContent = (\n <EntityTooltip>\n <EntityTooltipHeader\n lead={\n <Avatar\n className={cn(\n 'h-8 w-8',\n userIsAgent ? 'rounded-full border-2 border-dashed' : 'border border-white'\n )}\n style={agentStyle}\n >\n {user.picture && <AvatarImage src={user.picture} alt={initials} />}\n <AvatarFallback\n className={cn(\n 'text-xs font-semibold leading-none',\n userIsAgent ? 'rounded-full bg-transparent' : `text-white ${colorClass}`\n )}\n style={agentStyle}\n >\n {initials}\n </AvatarFallback>\n </Avatar>\n }\n title={fullName}\n titleAccessory={\n userIsAgent ? <ArbiBotIcon className=\"w-3.5 h-3.5 text-primary\" /> : undefined\n }\n subtitle={user.email}\n />\n\n {userIsAgent && agentOwner && (\n <EntityTooltipSection>\n <EntityTooltipHint icon={<ArbiBotIcon className=\"w-3.5 h-3.5 flex-shrink-0\" />}>\n Agent of{' '}\n <span className=\"font-medium text-foreground\">{getUserDisplayName(agentOwner)}</span>\n </EntityTooltipHint>\n </EntityTooltipSection>\n )}\n\n {sharedWorkspaces.length > 0 && (\n <EntityTooltipSection\n icon={<Users className=\"w-3.5 h-3.5 flex-shrink-0\" />}\n heading=\"Shared Workspaces\"\n >\n <div className=\"flex flex-wrap gap-1 pl-5\">\n {sharedWorkspaces.slice(0, 3).map((ws) => (\n <div\n key={ws.external_id}\n className=\"inline-flex items-center gap-1 px-1.5 py-0.5 bg-muted rounded text-xs\"\n >\n <ShieldIcon\n char={ws.name.charAt(0)}\n workspaceColor={getWorkspaceColor(ws.external_id)}\n size={14}\n />\n <span className=\"truncate max-w-[80px]\">{ws.name}</span>\n </div>\n ))}\n {sharedWorkspaces.length > 3 && (\n <span className=\"text-xs text-muted-foreground\">\n +{sharedWorkspaces.length - 3} more\n </span>\n )}\n </div>\n </EntityTooltipSection>\n )}\n\n {interactive && variant === 'pill' && canChat && (\n <EntityTooltipHint isRuled icon={<MessageCircleMore className=\"w-3 h-3\" />}>\n Click to send message\n </EntityTooltipHint>\n )}\n </EntityTooltip>\n )\n\n return (\n <UserEntity\n size={size}\n variant={variant}\n className={className}\n showTooltip={showTooltip}\n interactive={interactive && (isMe || canChat)}\n initials={initials}\n displayName={isMe ? (selfLabel ?? 'You') : fullName}\n picture={user.picture}\n colorClass={colorClass}\n isAgent={userIsAgent}\n isVerified={user.is_identity_verified === true}\n agentStyle={agentStyle}\n isMe={isMe}\n displayStatus={displayStatus}\n onClick={onClick}\n tooltipContent={tooltipContent}\n />\n )\n})\n","/**\n * A person in the call UI, shown the way people are shown everywhere: the `ConnectedUserEntity`\n * pill (avatar with initials or picture, name, verified tick), without presence. My own reads\n * \"Name (me)\". The user is one the session already knows (me, contacts, workspace members); a\n * participant it does not know yet gets a pill built from the call's own name for them.\n */\n\nimport { memo, useMemo, type ReactElement } from 'react'\nimport { useArbiSession, usePeople, type UserResponse } from '@arbidocs/react'\nimport { getUserDisplayName, type EntitySize } from '@arbidocs/react/ui'\nimport { ConnectedUserEntity } from '../../connection/entities/ConnectedUserEntity'\n\n/** A person in the call UI (a participant, a speaker, a host). */\nexport interface CallUserPillProps {\n /** Their LiveKit identity: the user ext id. */\n identity: string\n /** The call's name for them, for someone the session does not know. */\n name?: string | null\n size?: EntitySize\n variant?: 'pill' | 'icon'\n /** Click opens a chat with them (off by default inside the call). */\n interactive?: boolean\n className?: string\n}\n\n/** The known user for an identity (user ext id), else a stand-in from the call's name. */\nfunction useCallUser(identity: string, fallbackName?: string | null): UserResponse {\n const me = useArbiSession().user\n const { byId } = usePeople()\n return useMemo(() => {\n if (me && me.external_id === identity) return me as UserResponse\n const user = byId(identity)\n if (user) return user\n const [given = '', ...rest] = (fallbackName || identity).trim().split(/\\s+/)\n return {\n external_id: identity,\n given_name: given,\n family_name: rest.join(' '),\n email: '',\n } as UserResponse\n }, [me, byId, identity, fallbackName])\n}\n\nexport const CallUserPill = memo(function CallUserPill({\n identity,\n name,\n size = 'xs',\n variant = 'pill',\n interactive = false,\n className,\n}: CallUserPillProps): ReactElement {\n const user = useCallUser(identity, name)\n return (\n <ConnectedUserEntity\n user={user}\n size={size}\n variant={variant}\n interactive={interactive}\n showPresence={false}\n selfLabel={`${getUserDisplayName(user)} (me)`}\n className={className}\n />\n )\n})\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/calls/recording-labels.ts","../src/calls/call-cards.ts","../src/calls/HeaderAction.tsx","../src/connection/entities/ConnectedUserEntity.tsx","../src/calls/connected/CallUserPill.tsx"],"names":["jsxs","Button","jsx","Tooltip","TooltipTrigger","TooltipContent","useArbiWsStatus","useArbiWsStore","useUserSettings","memo","ConnectedUserEntity","useConnectedWorkspace","useBlocksEnvironment","useWorkspaces","useMemo","isAgent","UserEntity","getUserInitials","getUserDisplayName","getUserAvatarColor","agentAvatarColors","EntityTooltip","EntityTooltipHeader","Avatar","cn","AvatarImage","AvatarFallback","ArbiBotIcon","EntityTooltipSection","EntityTooltipHint","Users","ShieldIcon","getWorkspaceColor","MessageCircleMore","useArbiSession","usePeople","CallUserPill"],"mappings":"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","file":"chunk-I7CJDF3V.cjs","sourcesContent":["import type { calls } from '@arbidocs/sdk/browser'\n\n/** Shared by the recording UI (kept out of the component files for fast refresh). */\n\n/** How a recording mode is named in the UI. */\nexport const MODE_LABEL: Record<calls.RecordingMode, string> = {\n audio: 'Audio',\n audio_video: 'Audio + video',\n}\n\n/** Expiry choices (days; null = kept). */\nexport const EXPIRY_DAYS = [null, 7, 30, 90] as const\n\n/** `expires_at` for a choice, from now. */\nexport function expiryFor(days: number | null, now = Date.now()): string | null {\n return days ? new Date(now + days * 86_400_000).toISOString() : null\n}\n\n/** Which expiry choice an `expires_at` is closest to (for the select). */\nexport function expiryChoiceOf(expiresAt: string | null, now = Date.now()): string {\n if (!expiresAt) return 'none'\n const days = (Date.parse(expiresAt) - now) / 86_400_000\n const nearest = [7, 30, 90].reduce((best, d) =>\n Math.abs(d - days) < Math.abs(best - days) ? d : best\n )\n return String(nearest)\n}\n","/** Pure helpers for the call cards and call titles (kept apart from the components). */\n\nimport type { calls } from '@arbidocs/sdk/browser'\n\nexport interface CallLogDetail {\n call_ext_id: string\n started_by: string | null\n invited: string[]\n started_at: string | null\n ended_at: string | null\n duration_s: number | null\n joined: string[]\n meeting_conversation_ext_id: string | null\n}\n\nconst ids = (v: unknown): string[] =>\n Array.isArray(v) ? v.filter((x): x is string => typeof x === 'string') : []\nconst str = (v: unknown): string | null => (typeof v === 'string' && v ? v : null)\n\n/** The card's detail from an activity event's `detail`, or null when it is not a call card. */\nexport function parseCallLogDetail(\n detail: Record<string, unknown> | null | undefined\n): CallLogDetail | null {\n const callExtId = str(detail?.call_ext_id)\n if (!detail || !callExtId) return null\n return {\n call_ext_id: callExtId,\n started_by: str(detail.started_by),\n invited: ids(detail.invited),\n started_at: str(detail.started_at),\n ended_at: str(detail.ended_at),\n duration_s: typeof detail.duration_s === 'number' ? detail.duration_s : null,\n joined: ids(detail.joined),\n meeting_conversation_ext_id: str(detail.meeting_conversation_ext_id),\n }\n}\n\n/** \"45 s\", \"12 min\", \"1 h 5 min\". */\nexport function formatCallDuration(seconds: number | null | undefined): string | null {\n if (seconds == null || seconds < 0) return null\n if (seconds < 60) return `${Math.round(seconds)} s`\n const minutes = Math.round(seconds / 60)\n if (minutes < 60) return `${minutes} min`\n const h = Math.floor(minutes / 60)\n const m = minutes % 60\n return m ? `${h} h ${m} min` : `${h} h`\n}\n\n/** Whether the call's current session is running (the server's view, or `call.started`). */\nexport function isCallLive(\n call: Pick<calls.CallResponse, 'started_at' | 'ended_at' | 'cancelled'> | undefined,\n liveNow: boolean\n): boolean {\n if (liveNow) return true\n if (!call?.started_at || call.cancelled) return false\n return !call.ended_at || Date.parse(call.started_at) > Date.parse(call.ended_at)\n}\n\n/** \"Call with Ada, Bob\" (the title is encrypted under the call key). */\nexport function contactsCallTitle(names: string[]): string | null {\n if (!names.length) return null\n const shown = names.slice(0, 3).join(', ')\n return `Call with ${shown}${names.length > 3 ? ` +${names.length - 3}` : ''}`\n}\n","/**\n * A secondary action of a conversation header (Save transcript, Recordings): labelled where there\n * is room, or icon-only with the label in a tooltip (and for screen readers) where the header is\n * crowded — the thread's title keeps priority.\n */\n\nimport type { ReactElement, ReactNode } from 'react'\nimport { Button, Tooltip, TooltipContent, TooltipTrigger } from '@arbidocs/react/ui'\n\nexport function HeaderAction({\n label,\n icon,\n iconOnly = false,\n onClick,\n testId,\n className,\n}: {\n label: string\n icon: ReactNode\n iconOnly?: boolean\n onClick(): void\n testId?: string\n className?: string\n}): ReactElement {\n if (!iconOnly) {\n return (\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n className={className}\n onClick={onClick}\n data-testid={testId}\n >\n <span className=\"mr-1 inline-flex\">{icon}</span>\n {label}\n </Button>\n )\n }\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n type=\"button\"\n size=\"icon\"\n variant=\"ghost\"\n className={className}\n aria-label={label}\n onClick={onClick}\n data-testid={testId}\n >\n {icon}\n <span className=\"sr-only\">{label}</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">{label}</TooltipContent>\n </Tooltip>\n )\n}\n","/**\n * A person, connected: the shared avatar / pill (`UserEntity` in `@arbidocs/react/ui`) with what\n * the session knows about them. \"You\" for the signed-in user, their live presence (and, on your own\n * avatar, the live connection's status unless you hide your online status), the workspaces you\n * share and an agent's owner in the hover card. A click on someone else opens your direct chat\n * with them (`openDirectChat`); on yourself, your settings.\n */\nimport { memo, useMemo, type MouseEvent } from 'react'\nimport { MessageCircleMore, Users } from 'lucide-react'\nimport {\n ArbiBotHeadIcon as ArbiBotIcon,\n useArbiWsStatus,\n useArbiWsStore,\n useUserSettings,\n useWorkspaces,\n} from '@arbidocs/react'\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n ShieldIcon,\n UserEntity,\n agentAvatarColors,\n cn,\n getWorkspaceColor,\n type PresenceDisplayStatus,\n getUserAvatarColor,\n getUserDisplayName,\n getUserInitials,\n isAgent,\n} from '@arbidocs/react/ui'\nimport type { components } from '@arbidocs/client'\nimport {\n EntityTooltip,\n EntityTooltipHeader,\n EntityTooltipHint,\n EntityTooltipSection,\n} from '../../components/EntityTooltip'\nimport { useBlocksEnvironment } from '../../provider/environment'\nimport { useConnectedWorkspace } from '../ConnectionProvider'\n\ntype UserResponse = components['schemas']['UserResponse']\n\nexport interface ConnectedUserEntityProps {\n user?: UserResponse | null\n size?: 'xs' | 'sm' | 'md' | 'lg'\n variant?: 'icon' | 'pill'\n className?: string\n /** Hovering shows their card (default true). */\n showTooltip?: boolean\n /** The presence dot (default true). */\n showPresence?: boolean\n /** A click opens the chat with them, or your settings (default true). */\n interactive?: boolean\n /** Your own label in place of \"You\" (e.g. \"Ada Lovelace (me)\" in a call). */\n selfLabel?: string\n}\n\n/** The presence dot: your own live connection, or the person's presence. */\nfunction useDisplayStatus(\n user: UserResponse | null | undefined,\n isMe: boolean,\n showPresence: boolean\n): PresenceDisplayStatus | undefined {\n const wsStatus = useArbiWsStatus()\n const presence = useArbiWsStore((s) =>\n showPresence && user ? s.presence[user.external_id] : undefined\n )\n const { data: settings } = useUserSettings()\n if (!showPresence) return undefined\n if (isMe) {\n // Hiding your online status hides only \"connected\": connection trouble always shows.\n if (wsStatus === 'connected') return settings?.hide_online_status ? 'hidden' : 'connected'\n return wsStatus === 'reconnecting' ? 'connecting' : wsStatus\n }\n // `unknown` (removed from contacts, or hidden) and no news show grey.\n return presence === 'online' ? 'connected' : 'hidden'\n}\n\nexport const ConnectedUserEntity = memo(function ConnectedUserEntity({\n user,\n size = 'md',\n variant = 'pill',\n className,\n showTooltip = true,\n showPresence = true,\n interactive = true,\n selfLabel,\n}: ConnectedUserEntityProps) {\n const { userId: currentUserId } = useConnectedWorkspace()\n const { openDirectChat, openSettings } = useBlocksEnvironment()\n const isMe = !!(user && currentUserId && user.external_id === currentUserId)\n const displayStatus = useDisplayStatus(user, isMe, showPresence)\n\n // The workspaces you share with them, and an agent's human owner (the hover card only).\n const { data: workspaces = [] } = useWorkspaces()\n const sharedWorkspaces = useMemo(() => {\n if (!user || isMe) return []\n return workspaces.filter((ws) =>\n ws.users?.some((member) => member.user.external_id === user.external_id)\n )\n }, [workspaces, user, isMe])\n const agentOwner = useMemo(() => {\n if (!user || !isAgent(user) || !user.parent_ext_id) return null\n for (const ws of workspaces) {\n const found = ws.users?.find((member) => member.user.external_id === user.parent_ext_id)\n if (found) return found.user\n }\n return null\n }, [user, workspaces])\n\n if (!user) return <UserEntity empty size={size} className={className} />\n\n const initials = getUserInitials(user)\n const userIsAgent = isAgent(user)\n const fullName = getUserDisplayName(user)\n const colorClass = getUserAvatarColor(user.external_id)\n const agentStyle = userIsAgent ? agentAvatarColors(colorClass) : undefined\n const canChat = !isMe && !!openDirectChat\n\n const onClick = (e: MouseEvent) => {\n e.stopPropagation()\n if (isMe) openSettings()\n else openDirectChat?.(user.external_id)\n }\n\n const tooltipContent = (\n <EntityTooltip>\n <EntityTooltipHeader\n lead={\n <Avatar\n className={cn(\n 'h-8 w-8',\n userIsAgent ? 'rounded-full border-2 border-dashed' : 'border border-white'\n )}\n style={agentStyle}\n >\n {user.picture && <AvatarImage src={user.picture} alt={initials} />}\n <AvatarFallback\n className={cn(\n 'text-xs font-semibold leading-none',\n userIsAgent ? 'rounded-full bg-transparent' : `text-white ${colorClass}`\n )}\n style={agentStyle}\n >\n {initials}\n </AvatarFallback>\n </Avatar>\n }\n title={fullName}\n titleAccessory={\n userIsAgent ? <ArbiBotIcon className=\"w-3.5 h-3.5 text-primary\" /> : undefined\n }\n subtitle={user.email}\n />\n\n {userIsAgent && agentOwner && (\n <EntityTooltipSection>\n <EntityTooltipHint icon={<ArbiBotIcon className=\"w-3.5 h-3.5 flex-shrink-0\" />}>\n Agent of{' '}\n <span className=\"font-medium text-foreground\">{getUserDisplayName(agentOwner)}</span>\n </EntityTooltipHint>\n </EntityTooltipSection>\n )}\n\n {sharedWorkspaces.length > 0 && (\n <EntityTooltipSection\n icon={<Users className=\"w-3.5 h-3.5 flex-shrink-0\" />}\n heading=\"Shared Workspaces\"\n >\n <div className=\"flex flex-wrap gap-1 pl-5\">\n {sharedWorkspaces.slice(0, 3).map((ws) => (\n <div\n key={ws.external_id}\n className=\"inline-flex items-center gap-1 px-1.5 py-0.5 bg-muted rounded text-xs\"\n >\n <ShieldIcon\n char={ws.name.charAt(0)}\n workspaceColor={getWorkspaceColor(ws.external_id)}\n size={14}\n />\n <span className=\"truncate max-w-[80px]\">{ws.name}</span>\n </div>\n ))}\n {sharedWorkspaces.length > 3 && (\n <span className=\"text-xs text-muted-foreground\">\n +{sharedWorkspaces.length - 3} more\n </span>\n )}\n </div>\n </EntityTooltipSection>\n )}\n\n {interactive && variant === 'pill' && canChat && (\n <EntityTooltipHint isRuled icon={<MessageCircleMore className=\"w-3 h-3\" />}>\n Click to send message\n </EntityTooltipHint>\n )}\n </EntityTooltip>\n )\n\n return (\n <UserEntity\n size={size}\n variant={variant}\n className={className}\n showTooltip={showTooltip}\n interactive={interactive && (isMe || canChat)}\n initials={initials}\n displayName={isMe ? (selfLabel ?? 'You') : fullName}\n picture={user.picture}\n colorClass={colorClass}\n isAgent={userIsAgent}\n isVerified={user.is_identity_verified === true}\n agentStyle={agentStyle}\n isMe={isMe}\n displayStatus={displayStatus}\n onClick={onClick}\n tooltipContent={tooltipContent}\n />\n )\n})\n","/**\n * A person in the call UI, shown the way people are shown everywhere: the `ConnectedUserEntity`\n * pill (avatar with initials or picture, name, verified tick), without presence. My own reads\n * \"Name (me)\". The user is one the session already knows (me, contacts, workspace members); a\n * participant it does not know yet gets a pill built from the call's own name for them.\n */\n\nimport { memo, useMemo, type ReactElement } from 'react'\nimport { useArbiSession, usePeople, type UserResponse } from '@arbidocs/react'\nimport { getUserDisplayName, type EntitySize } from '@arbidocs/react/ui'\nimport { ConnectedUserEntity } from '../../connection/entities/ConnectedUserEntity'\n\n/** A person in the call UI (a participant, a speaker, a host). */\nexport interface CallUserPillProps {\n /** Their LiveKit identity: the user ext id. */\n identity: string\n /** The call's name for them, for someone the session does not know. */\n name?: string | null\n size?: EntitySize\n variant?: 'pill' | 'icon'\n /** Click opens a chat with them (off by default inside the call). */\n interactive?: boolean\n className?: string\n}\n\n/** The known user for an identity (user ext id), else a stand-in from the call's name. */\nfunction useCallUser(identity: string, fallbackName?: string | null): UserResponse {\n const me = useArbiSession().user\n const { byId } = usePeople()\n return useMemo(() => {\n if (me && me.external_id === identity) return me as UserResponse\n const user = byId(identity)\n if (user) return user\n const [given = '', ...rest] = (fallbackName || identity).trim().split(/\\s+/)\n return {\n external_id: identity,\n given_name: given,\n family_name: rest.join(' '),\n email: '',\n } as UserResponse\n }, [me, byId, identity, fallbackName])\n}\n\nexport const CallUserPill = memo(function CallUserPill({\n identity,\n name,\n size = 'xs',\n variant = 'pill',\n interactive = false,\n className,\n}: CallUserPillProps): ReactElement {\n const user = useCallUser(identity, name)\n return (\n <ConnectedUserEntity\n user={user}\n size={size}\n variant={variant}\n interactive={interactive}\n showPresence={false}\n selfLabel={`${getUserDisplayName(user)} (me)`}\n className={className}\n />\n )\n})\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useConnectedWorkspace } from './chunk-
|
|
3
|
-
import { useHost } from './chunk-
|
|
2
|
+
import { useConnectedWorkspace } from './chunk-OWHO2TO3.js';
|
|
3
|
+
import { useHost } from './chunk-QG6MRLZG.js';
|
|
4
4
|
import { useBlocksEnvironment } from './chunk-YUHSDOPW.js';
|
|
5
5
|
import { useMemo, useCallback } from 'react';
|
|
6
6
|
import { useQueryClient } from '@tanstack/react-query';
|
|
@@ -104,5 +104,5 @@ function OwnDocumentTools({ children }) {
|
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
export { ConnectedDocumentToolsProvider };
|
|
107
|
-
//# sourceMappingURL=chunk-
|
|
108
|
-
//# sourceMappingURL=chunk-
|
|
107
|
+
//# sourceMappingURL=chunk-IHOV6OTA.js.map
|
|
108
|
+
//# sourceMappingURL=chunk-IHOV6OTA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/connection/viewer/ConnectedDocumentToolsProvider.tsx"],"names":[],"mappings":"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","file":"chunk-KYLQRS3O.js","sourcesContent":["/**\n * The PDF document tools (markup, Freeze, signing, signature requests, productions) on the\n * signed-in session, for any host: the API client, the signed-in user, the host's notices and\n * document opening (`BlocksEnvironment`), the shared caches a change refreshes, and emailing a\n * document through the host's mail composer (`DocumentHostActions.emailDocument`) while Mail is on.\n * A host with its own binding (its own lists to refresh, an XHR upload with progress) gives it as\n * the host configuration's `documentTools`, field by field. An enclosing `DocumentToolsProvider` (a\n * dialog with its own client) wins.\n */\n\nimport { useCallback, useMemo, type ReactNode } from 'react'\nimport { useQueryClient } from '@tanstack/react-query'\nimport {\n arbiQueryKeys,\n refreshDocuments,\n useArbi,\n getCachedDocuments,\n useDocumentHostActions,\n useFeature,\n useIsEntitled,\n useMailPolicy,\n type WorkspaceDocument,\n} from '@arbidocs/react'\nimport { parseVersionRef } from '@arbidocs/react/artifacts'\nimport {\n DocumentToolsProvider,\n clientUpload,\n documentBytesKey,\n useOptionalDocumentTools,\n type DocumentChange,\n type DocumentToolsClient,\n type DocumentToolsEnvironment,\n type DocumentToolsNotify,\n type DocumentUploadRequest,\n} from '@arbidocs/react/document-tools'\nimport { useBlocksEnvironment } from '../../provider/environment'\nimport { useHost } from '../../provider/host'\nimport { useConnectedWorkspace } from '../ConnectionProvider'\n\n/** What a host binds of the document tools itself; each absent field is the kit's own. */\nexport interface DocumentToolsHost {\n /** The API client the tools call. Default: the host `arbi`'s. */\n client?: DocumentToolsClient\n /** The deployment domain keys are derived for (signing). Default: the host `arbi`'s. */\n deploymentDomain?: string\n /**\n * Open a document or a version the tools made. Default: the environment's `openDocument`, on\n * the PDF (`tab: 'pdf'`).\n */\n openDocument?: (documentRef: string) => void\n /** Refresh the host's lists after a change. Default: the shared document caches. */\n onDocumentsChanged?: DocumentToolsEnvironment['onDocumentsChanged']\n /** Upload a derived copy. Default: through the API client, into the open workspace. */\n uploadDocument?: DocumentToolsEnvironment['uploadDocument']\n /**\n * Where \"View certificate\" goes for a signature `reference` (e.g. the site's own verify page).\n * Default: the certificate link the API returns (on the deployment domain).\n */\n certificateUrl?: (reference: string) => string\n}\n\n/**\n * Email a document (a version reference `doc-…@v2` attaches that version) through the host's mail\n * composer. Offered only where Mail is: the deployment's mail policy on, the user's Mail feature on\n * and the mail entitlement; and only when the host hands documents to its composer.\n */\nfunction useEmailDocument(): ((documentRef: string) => void) | undefined {\n const arbi = useArbi()\n const queryClient = useQueryClient()\n const { workspaceId } = useConnectedWorkspace()\n const { notify } = useBlocksEnvironment()\n const { emailDocument } = useDocumentHostActions()\n const { data: mailPolicy } = useMailPolicy()\n const mailOn = useFeature('mail')\n const entitled = useIsEntitled('mail')\n const email = useCallback(\n (documentRef: string) => {\n if (!emailDocument) return\n const { docId, version } = parseVersionRef(documentRef)\n void (async () => {\n try {\n // From the list, or fetched: a copy saved a moment ago is not listed yet.\n const listed = workspaceId ? getCachedDocuments(queryClient, workspaceId) : undefined\n const doc =\n listed?.find((d) => d.external_id === docId) ??\n ((await arbi.documents.get([docId])) as WorkspaceDocument[])[0]\n if (!doc) throw new Error('The document could not be found')\n await emailDocument(doc, { version })\n } catch (error) {\n notify(error instanceof Error ? error.message : 'Could not attach the document', 'error')\n }\n })()\n },\n [arbi, queryClient, workspaceId, emailDocument, notify]\n )\n return mailPolicy?.enabled && mailOn && entitled && emailDocument ? email : undefined\n}\n\nexport function ConnectedDocumentToolsProvider({ children }: { children: ReactNode }) {\n const enclosing = useOptionalDocumentTools()\n return enclosing ? <>{children}</> : <OwnDocumentTools>{children}</OwnDocumentTools>\n}\n\nfunction OwnDocumentTools({ children }: { children: ReactNode }) {\n const arbi = useArbi()\n const queryClient = useQueryClient()\n const host = useHost().documentTools\n const { user, ensureWorkspaceOpen } = useConnectedWorkspace()\n const { notify: environmentNotify, openDocument: openInHost } = useBlocksEnvironment()\n const emailDocument = useEmailDocument()\n const client = host?.client ?? (arbi.isLoggedIn ? arbi.getClient().fetch : null)\n const signer = useMemo(\n () => (user ? { name: user.name, email: user.email, externalId: user.externalId } : null),\n [user]\n )\n const notify = useCallback<DocumentToolsNotify>(\n (message, kind, options) =>\n environmentNotify(message, kind, {\n description: options?.description,\n action: options?.action,\n }),\n [environmentNotify]\n )\n const ownDocumentsChanged = useCallback(\n async (ids: string[], change: DocumentChange) => {\n // The list carries each version's markup count and the copies; a signature or a saved\n // version is a new current version, with new versions and a new rendered PDF.\n const refresh: Promise<unknown>[] = [refreshDocuments(queryClient, arbi, ids)]\n if (change === 'signed' || change === 'version')\n for (const id of ids)\n refresh.push(\n queryClient.invalidateQueries({ queryKey: arbiQueryKeys.documentVersions(id) }),\n queryClient.invalidateQueries({ queryKey: documentBytesKey(id) })\n )\n await Promise.all(refresh)\n },\n [queryClient, arbi]\n )\n // The server files an upload in the session's open workspace: re-assert it first.\n const ownUpload = useCallback(\n async (request: DocumentUploadRequest) => {\n if (!client) throw new Error('Sign in to save a copy.')\n await ensureWorkspaceOpen()\n return clientUpload(client)(request)\n },\n [client, ensureWorkspaceOpen]\n )\n // What the tools open is a PDF they just made (a frozen copy, a signed copy, a production), seen\n // where it was made: on the PDF, not the text view, which a copy still processing does not have.\n const ownOpenDocument = useCallback(\n (ref: string) => openInHost(ref, { tab: 'pdf' }),\n [openInHost]\n )\n if (!client) return <>{children}</>\n return (\n <DocumentToolsProvider\n client={client}\n deploymentDomain={host?.deploymentDomain}\n user={signer}\n notify={notify}\n openDocument={host?.openDocument ?? ownOpenDocument}\n onDocumentsChanged={host?.onDocumentsChanged ?? ownDocumentsChanged}\n uploadDocument={host?.uploadDocument ?? ownUpload}\n emailDocument={emailDocument}\n certificateUrl={host?.certificateUrl}\n >\n {children}\n </DocumentToolsProvider>\n )\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/connection/viewer/ConnectedDocumentToolsProvider.tsx"],"names":[],"mappings":"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","file":"chunk-IHOV6OTA.js","sourcesContent":["/**\n * The PDF document tools (markup, Freeze, signing, signature requests, productions) on the\n * signed-in session, for any host: the API client, the signed-in user, the host's notices and\n * document opening (`BlocksEnvironment`), the shared caches a change refreshes, and emailing a\n * document through the host's mail composer (`DocumentHostActions.emailDocument`) while Mail is on.\n * A host with its own binding (its own lists to refresh, an XHR upload with progress) gives it as\n * the host configuration's `documentTools`, field by field. An enclosing `DocumentToolsProvider` (a\n * dialog with its own client) wins.\n */\n\nimport { useCallback, useMemo, type ReactNode } from 'react'\nimport { useQueryClient } from '@tanstack/react-query'\nimport {\n arbiQueryKeys,\n refreshDocuments,\n useArbi,\n getCachedDocuments,\n useDocumentHostActions,\n useFeature,\n useIsEntitled,\n useMailPolicy,\n type WorkspaceDocument,\n} from '@arbidocs/react'\nimport { parseVersionRef } from '@arbidocs/react/artifacts'\nimport {\n DocumentToolsProvider,\n clientUpload,\n documentBytesKey,\n useOptionalDocumentTools,\n type DocumentChange,\n type DocumentToolsClient,\n type DocumentToolsEnvironment,\n type DocumentToolsNotify,\n type DocumentUploadRequest,\n} from '@arbidocs/react/document-tools'\nimport { useBlocksEnvironment } from '../../provider/environment'\nimport { useHost } from '../../provider/host'\nimport { useConnectedWorkspace } from '../ConnectionProvider'\n\n/** What a host binds of the document tools itself; each absent field is the kit's own. */\nexport interface DocumentToolsHost {\n /** The API client the tools call. Default: the host `arbi`'s. */\n client?: DocumentToolsClient\n /** The deployment domain keys are derived for (signing). Default: the host `arbi`'s. */\n deploymentDomain?: string\n /**\n * Open a document or a version the tools made. Default: the environment's `openDocument`, on\n * the PDF (`tab: 'pdf'`).\n */\n openDocument?: (documentRef: string) => void\n /** Refresh the host's lists after a change. Default: the shared document caches. */\n onDocumentsChanged?: DocumentToolsEnvironment['onDocumentsChanged']\n /** Upload a derived copy. Default: through the API client, into the open workspace. */\n uploadDocument?: DocumentToolsEnvironment['uploadDocument']\n /**\n * Where \"View certificate\" goes for a signature `reference` (e.g. the site's own verify page).\n * Default: the certificate link the API returns (on the deployment domain).\n */\n certificateUrl?: (reference: string) => string\n}\n\n/**\n * Email a document (a version reference `doc-…@v2` attaches that version) through the host's mail\n * composer. Offered only where Mail is: the deployment's mail policy on, the user's Mail feature on\n * and the mail entitlement; and only when the host hands documents to its composer.\n */\nfunction useEmailDocument(): ((documentRef: string) => void) | undefined {\n const arbi = useArbi()\n const queryClient = useQueryClient()\n const { workspaceId } = useConnectedWorkspace()\n const { notify } = useBlocksEnvironment()\n const { emailDocument } = useDocumentHostActions()\n const { data: mailPolicy } = useMailPolicy()\n const mailOn = useFeature('mail')\n const entitled = useIsEntitled('mail')\n const email = useCallback(\n (documentRef: string) => {\n if (!emailDocument) return\n const { docId, version } = parseVersionRef(documentRef)\n void (async () => {\n try {\n // From the list, or fetched: a copy saved a moment ago is not listed yet.\n const listed = workspaceId ? getCachedDocuments(queryClient, workspaceId) : undefined\n const doc =\n listed?.find((d) => d.external_id === docId) ??\n ((await arbi.documents.get([docId])) as WorkspaceDocument[])[0]\n if (!doc) throw new Error('The document could not be found')\n await emailDocument(doc, { version })\n } catch (error) {\n notify(error instanceof Error ? error.message : 'Could not attach the document', 'error')\n }\n })()\n },\n [arbi, queryClient, workspaceId, emailDocument, notify]\n )\n return mailPolicy?.enabled && mailOn && entitled && emailDocument ? email : undefined\n}\n\nexport function ConnectedDocumentToolsProvider({ children }: { children: ReactNode }) {\n const enclosing = useOptionalDocumentTools()\n return enclosing ? <>{children}</> : <OwnDocumentTools>{children}</OwnDocumentTools>\n}\n\nfunction OwnDocumentTools({ children }: { children: ReactNode }) {\n const arbi = useArbi()\n const queryClient = useQueryClient()\n const host = useHost().documentTools\n const { user, ensureWorkspaceOpen } = useConnectedWorkspace()\n const { notify: environmentNotify, openDocument: openInHost } = useBlocksEnvironment()\n const emailDocument = useEmailDocument()\n const client = host?.client ?? (arbi.isLoggedIn ? arbi.getClient().fetch : null)\n const signer = useMemo(\n () => (user ? { name: user.name, email: user.email, externalId: user.externalId } : null),\n [user]\n )\n const notify = useCallback<DocumentToolsNotify>(\n (message, kind, options) =>\n environmentNotify(message, kind, {\n description: options?.description,\n action: options?.action,\n }),\n [environmentNotify]\n )\n const ownDocumentsChanged = useCallback(\n async (ids: string[], change: DocumentChange) => {\n // The list carries each version's markup count and the copies; a signature or a saved\n // version is a new current version, with new versions and a new rendered PDF.\n const refresh: Promise<unknown>[] = [refreshDocuments(queryClient, arbi, ids)]\n if (change === 'signed' || change === 'version')\n for (const id of ids)\n refresh.push(\n queryClient.invalidateQueries({ queryKey: arbiQueryKeys.documentVersions(id) }),\n queryClient.invalidateQueries({ queryKey: documentBytesKey(id) })\n )\n await Promise.all(refresh)\n },\n [queryClient, arbi]\n )\n // The server files an upload in the session's open workspace: re-assert it first.\n const ownUpload = useCallback(\n async (request: DocumentUploadRequest) => {\n if (!client) throw new Error('Sign in to save a copy.')\n await ensureWorkspaceOpen()\n return clientUpload(client)(request)\n },\n [client, ensureWorkspaceOpen]\n )\n // What the tools open is a PDF they just made (a frozen copy, a signed copy, a production), seen\n // where it was made: on the PDF, not the text view, which a copy still processing does not have.\n const ownOpenDocument = useCallback(\n (ref: string) => openInHost(ref, { tab: 'pdf' }),\n [openInHost]\n )\n if (!client) return <>{children}</>\n return (\n <DocumentToolsProvider\n client={client}\n deploymentDomain={host?.deploymentDomain}\n user={signer}\n notify={notify}\n openDocument={host?.openDocument ?? ownOpenDocument}\n onDocumentsChanged={host?.onDocumentsChanged ?? ownDocumentsChanged}\n uploadDocument={host?.uploadDocument ?? ownUpload}\n emailDocument={emailDocument}\n certificateUrl={host?.certificateUrl}\n >\n {children}\n </DocumentToolsProvider>\n )\n}\n"]}
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
|
|
4
4
|
var chunkYZ6YOOTF_cjs = require('./chunk-YZ6YOOTF.cjs');
|
|
5
5
|
var chunkKWJW5TMH_cjs = require('./chunk-KWJW5TMH.cjs');
|
|
6
|
-
var
|
|
6
|
+
var chunkXHN5KOI2_cjs = require('./chunk-XHN5KOI2.cjs');
|
|
7
7
|
var chunkRBI7WVEP_cjs = require('./chunk-RBI7WVEP.cjs');
|
|
8
|
-
var
|
|
9
|
-
var
|
|
8
|
+
var chunkUCA4JLLJ_cjs = require('./chunk-UCA4JLLJ.cjs');
|
|
9
|
+
var chunk45OU2UAA_cjs = require('./chunk-45OU2UAA.cjs');
|
|
10
10
|
var chunk53RXGFJ6_cjs = require('./chunk-53RXGFJ6.cjs');
|
|
11
|
-
var
|
|
12
|
-
var
|
|
11
|
+
var chunk7V4OCZS6_cjs = require('./chunk-7V4OCZS6.cjs');
|
|
12
|
+
var chunkCRLFLMTK_cjs = require('./chunk-CRLFLMTK.cjs');
|
|
13
13
|
var chunkJH6JTI76_cjs = require('./chunk-JH6JTI76.cjs');
|
|
14
14
|
var chunkZ3LFF3YT_cjs = require('./chunk-Z3LFF3YT.cjs');
|
|
15
15
|
var chunkNSD37OF5_cjs = require('./chunk-NSD37OF5.cjs');
|
|
@@ -19,8 +19,8 @@ var chunk7JLJH5CW_cjs = require('./chunk-7JLJH5CW.cjs');
|
|
|
19
19
|
var chunkKCP42W67_cjs = require('./chunk-KCP42W67.cjs');
|
|
20
20
|
var chunkFDNIK5YS_cjs = require('./chunk-FDNIK5YS.cjs');
|
|
21
21
|
var chunkQUMUAJ2P_cjs = require('./chunk-QUMUAJ2P.cjs');
|
|
22
|
-
var
|
|
23
|
-
var
|
|
22
|
+
var chunkEKSHUNJI_cjs = require('./chunk-EKSHUNJI.cjs');
|
|
23
|
+
var chunkNNBL3HPG_cjs = require('./chunk-NNBL3HPG.cjs');
|
|
24
24
|
var chunkARHZNNLV_cjs = require('./chunk-ARHZNNLV.cjs');
|
|
25
25
|
var chunkQFVIWWWD_cjs = require('./chunk-QFVIWWWD.cjs');
|
|
26
26
|
var chunkHSLPFBK2_cjs = require('./chunk-HSLPFBK2.cjs');
|
|
@@ -70,7 +70,7 @@ function ConnectedTaskComposer({
|
|
|
70
70
|
const startLater = startLaterProp && automationsEnabled;
|
|
71
71
|
const isWorkflow = kind === "workflow";
|
|
72
72
|
const isEdit = isWorkflow ? !!editingWorkflow : !!task;
|
|
73
|
-
const { forTasks: baseSkills, skills } =
|
|
73
|
+
const { forTasks: baseSkills, skills } = chunkUCA4JLLJ_cjs.useWorkflowDefinitions();
|
|
74
74
|
const { data: reviewFields = [] } = react.useTags();
|
|
75
75
|
const scheduledSkills = react$1.useMemo(
|
|
76
76
|
() => [
|
|
@@ -129,8 +129,8 @@ function ConnectedTaskComposer({
|
|
|
129
129
|
const { data: workspaces = [] } = react.useWorkspaces();
|
|
130
130
|
const { tasks: allTasks } = react.useWorkItems();
|
|
131
131
|
const { data: documents = [] } = react.useDocuments();
|
|
132
|
-
const { create, update, updateWorkflow, isPending } =
|
|
133
|
-
const scopeSource =
|
|
132
|
+
const { create, update, updateWorkflow, isPending } = chunkUCA4JLLJ_cjs.useWorkflowTasks();
|
|
133
|
+
const scopeSource = chunk7V4OCZS6_cjs.useConnectedWorkflowScopeSource();
|
|
134
134
|
const activeWorkspaceId = react.useArbiSessionState((s) => s.workspaceId);
|
|
135
135
|
const planWork = react.usePlanWork(activeWorkspaceId);
|
|
136
136
|
const activeWorkspace = react$1.useMemo(
|
|
@@ -308,7 +308,7 @@ function ConnectedTaskComposer({
|
|
|
308
308
|
renderIcon: chunk7JLJH5CW_cjs.renderWorkflowIcon,
|
|
309
309
|
scopeSource,
|
|
310
310
|
renderDocuments: (field, value, onChange) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
311
|
-
|
|
311
|
+
chunk7V4OCZS6_cjs.ConnectedWorkflowDocumentsField,
|
|
312
312
|
{
|
|
313
313
|
field,
|
|
314
314
|
value,
|
|
@@ -420,8 +420,8 @@ function ConnectedTaskActivityDialog({
|
|
|
420
420
|
}) {
|
|
421
421
|
const activity = react.useConversationActivity(conversationId, { live });
|
|
422
422
|
const { data: agents = [] } = react.useAgents();
|
|
423
|
-
const { userId } =
|
|
424
|
-
const { members } =
|
|
423
|
+
const { userId } = chunkNNBL3HPG_cjs.useConnectedWorkspace();
|
|
424
|
+
const { members } = chunk45OU2UAA_cjs.useConnectedWorkspaceRole();
|
|
425
425
|
const renderPerson = react$1.useCallback(
|
|
426
426
|
(id) => {
|
|
427
427
|
const isMe = !!id && id === userId;
|
|
@@ -487,7 +487,7 @@ function ConnectedThreadTaskBar({
|
|
|
487
487
|
renderIcon
|
|
488
488
|
}) {
|
|
489
489
|
const { conversations } = react.useConversationItems();
|
|
490
|
-
const { activity, items, related, signals, startedBy } =
|
|
490
|
+
const { activity, items, related, signals, startedBy } = chunkXHN5KOI2_cjs.useConnectedThreadActivity(conversationId);
|
|
491
491
|
const canEditShared = react.useCanEditShared();
|
|
492
492
|
const update = react.useUpdateConversation();
|
|
493
493
|
const actOnStep = react.useActOnStep();
|
|
@@ -688,7 +688,7 @@ function ConnectedThreadTaskBar({
|
|
|
688
688
|
] }),
|
|
689
689
|
error && /* @__PURE__ */ jsxRuntime.jsx("span", { role: "alert", className: "text-xs text-destructive", children: error }),
|
|
690
690
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
691
|
-
|
|
691
|
+
chunkCRLFLMTK_cjs.RenameDialog,
|
|
692
692
|
{
|
|
693
693
|
open: renameOpen,
|
|
694
694
|
onClose: () => setRenameOpen(false),
|
|
@@ -971,9 +971,9 @@ function useWorkflowRunTarget({
|
|
|
971
971
|
workspaceId: fixedWorkspace,
|
|
972
972
|
onProjectCreated
|
|
973
973
|
}) {
|
|
974
|
-
const { workspaceId: open } =
|
|
974
|
+
const { workspaceId: open } = chunkNNBL3HPG_cjs.useConnectedWorkspace();
|
|
975
975
|
const session = react.useArbiSessionStore();
|
|
976
|
-
const selectWorkspace =
|
|
976
|
+
const selectWorkspace = chunkXHN5KOI2_cjs.useSelectWorkspace();
|
|
977
977
|
const createProject = react.useCreateProject();
|
|
978
978
|
const { mutateAsync: updateProject } = react.useUpdateProjectFields();
|
|
979
979
|
const { mutateAsync: updateWorkspace } = react.useUpdateWorkspace();
|
|
@@ -1404,7 +1404,7 @@ function useAnswerRetry(missing, refetch) {
|
|
|
1404
1404
|
}
|
|
1405
1405
|
function useWorkflowThread(workflow, options = {}) {
|
|
1406
1406
|
const arbi = react.useArbi();
|
|
1407
|
-
const { ensureWorkspaceOpen, live, workspaceId } =
|
|
1407
|
+
const { ensureWorkspaceOpen, live, workspaceId } = chunkNNBL3HPG_cjs.useConnectedWorkspace();
|
|
1408
1408
|
const wsId = workspaceId ?? void 0;
|
|
1409
1409
|
const [threadId, setThreadId] = react$1.useState(options.conversationId);
|
|
1410
1410
|
const [localInputs, setLocalInputs] = react$1.useState(
|
|
@@ -1623,7 +1623,7 @@ function WorkflowSignDialog({
|
|
|
1623
1623
|
labels
|
|
1624
1624
|
}) {
|
|
1625
1625
|
const arbi = react.useArbi();
|
|
1626
|
-
const { user, ensureWorkspaceOpen } =
|
|
1626
|
+
const { user, ensureWorkspaceOpen } = chunkNNBL3HPG_cjs.useConnectedWorkspace();
|
|
1627
1627
|
const tools = documentTools.useOptionalDocumentTools();
|
|
1628
1628
|
const { id, version: stepVersion } = chunkQGVOT7E4_cjs.splitDocRef(docRef);
|
|
1629
1629
|
const [version, setVersion] = react$1.useState(stepVersion);
|
|
@@ -1712,7 +1712,7 @@ function WorkflowWordDialog({
|
|
|
1712
1712
|
title: title ?? labels.wordTitle,
|
|
1713
1713
|
size: "xl",
|
|
1714
1714
|
testId: "workflow-word-dialog",
|
|
1715
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1715
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(chunk45OU2UAA_cjs.ConnectedNativeDocxEditor, { documentId: id, title: title ?? labels.wordTitle }) })
|
|
1716
1716
|
}
|
|
1717
1717
|
);
|
|
1718
1718
|
}
|
|
@@ -1723,7 +1723,7 @@ function WorkflowReviewGridDialog({
|
|
|
1723
1723
|
onOpenDocument,
|
|
1724
1724
|
labels
|
|
1725
1725
|
}) {
|
|
1726
|
-
const { workspaceId } =
|
|
1726
|
+
const { workspaceId } = chunkNNBL3HPG_cjs.useConnectedWorkspace();
|
|
1727
1727
|
const allTags = react.useTags(workspaceId ?? void 0);
|
|
1728
1728
|
const all = react.useDocuments(workspaceId ?? void 0);
|
|
1729
1729
|
const isLoading = allTags.isLoading || all.isLoading || all.isFetching && !all.isFetchedAfterMount;
|
|
@@ -1863,7 +1863,7 @@ function WorkflowRunBody({
|
|
|
1863
1863
|
const citationInEnvironment = chunkARHZNNLV_cjs.useOpenCitation();
|
|
1864
1864
|
const dl = { ...DEFAULT_WORKFLOW_RUNNER_DIALOG_LABELS, ...dialogLabels };
|
|
1865
1865
|
const arbi = react.useArbi();
|
|
1866
|
-
const { ensureWorkspaceOpen, userId, workspaceId } =
|
|
1866
|
+
const { ensureWorkspaceOpen, userId, workspaceId } = chunkNNBL3HPG_cjs.useConnectedWorkspace();
|
|
1867
1867
|
const wsId = workspaceId ?? void 0;
|
|
1868
1868
|
const session = react.useArbiSessionStore();
|
|
1869
1869
|
const openRef = react$1.useRef(workspaceId);
|
|
@@ -1928,7 +1928,7 @@ function WorkflowRunBody({
|
|
|
1928
1928
|
[project, inputsFromProject, createdInputs, hostInitial]
|
|
1929
1929
|
);
|
|
1930
1930
|
const { data: docs = [], refetch } = react.useDocuments(wsId);
|
|
1931
|
-
const documentFilter =
|
|
1931
|
+
const documentFilter = chunkEKSHUNJI_cjs.useDocumentFilter();
|
|
1932
1932
|
const [sending, setSending] = react$1.useState([]);
|
|
1933
1933
|
const [added, setAdded] = react$1.useState({});
|
|
1934
1934
|
const [addedNames, setAddedNames] = react$1.useState({});
|
|
@@ -2244,7 +2244,7 @@ function ReviewNotify({
|
|
|
2244
2244
|
testId
|
|
2245
2245
|
}) {
|
|
2246
2246
|
const arbi = react.useArbi();
|
|
2247
|
-
const { live, userId, ensureWorkspaceOpen } =
|
|
2247
|
+
const { live, userId, ensureWorkspaceOpen } = chunkNNBL3HPG_cjs.useConnectedWorkspace();
|
|
2248
2248
|
const { data: members = [] } = react.useWorkspaceUsers(workspaceId, {
|
|
2249
2249
|
enabled: live && !!workspaceId,
|
|
2250
2250
|
beforeFetch: ensureWorkspaceOpen
|
|
@@ -2502,5 +2502,5 @@ exports.useRequiredLabels = useRequiredLabels;
|
|
|
2502
2502
|
exports.useTaskPeople = useTaskPeople;
|
|
2503
2503
|
exports.useWorkflowsPageState = useWorkflowsPageState;
|
|
2504
2504
|
exports.workflowRunView = workflowRunView;
|
|
2505
|
-
//# sourceMappingURL=chunk-
|
|
2506
|
-
//# sourceMappingURL=chunk-
|
|
2505
|
+
//# sourceMappingURL=chunk-IXL2KJOZ.cjs.map
|
|
2506
|
+
//# sourceMappingURL=chunk-IXL2KJOZ.cjs.map
|