@arbidocs/blocks 0.5.71 → 0.5.72
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/{ConnectedCallDock-73TOAFLY.js → ConnectedCallDock-33L35X2R.js} +9 -9
- package/dist/{ConnectedCallDock-73TOAFLY.js.map → ConnectedCallDock-33L35X2R.js.map} +1 -1
- package/dist/{ConnectedCallDock-NTS42APL.cjs → ConnectedCallDock-XLTQU3GL.cjs} +18 -18
- package/dist/{ConnectedCallDock-NTS42APL.cjs.map → ConnectedCallDock-XLTQU3GL.cjs.map} +1 -1
- package/dist/{ConnectedCallRoom-O5VPJXKW.js → ConnectedCallRoom-HCKM5R5I.js} +9 -9
- package/dist/{ConnectedCallRoom-O5VPJXKW.js.map → ConnectedCallRoom-HCKM5R5I.js.map} +1 -1
- package/dist/{ConnectedCallRoom-NGBBLFLU.cjs → ConnectedCallRoom-K25HUW5S.cjs} +10 -10
- package/dist/{ConnectedCallRoom-NGBBLFLU.cjs.map → ConnectedCallRoom-K25HUW5S.cjs.map} +1 -1
- package/dist/{ConnectedDocumentViewer-HEIYCETC.cjs → ConnectedDocumentViewer-4L4X6BYZ.cjs} +30 -30
- package/dist/{ConnectedDocumentViewer-HEIYCETC.cjs.map → ConnectedDocumentViewer-4L4X6BYZ.cjs.map} +1 -1
- package/dist/{ConnectedDocumentViewer-37JW6Z3N.js → ConnectedDocumentViewer-ZZPWWB7E.js} +29 -29
- package/dist/{ConnectedDocumentViewer-37JW6Z3N.js.map → ConnectedDocumentViewer-ZZPWWB7E.js.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-W6QMSY6U.js → ConnectedNativeDocxComparison-4RZOON6M.js} +16 -16
- package/dist/ConnectedNativeDocxComparison-4RZOON6M.js.map +1 -0
- package/dist/{ConnectedNativeDocxComparison-S4QT72BV.cjs → ConnectedNativeDocxComparison-4UCHWK7X.cjs} +17 -17
- package/dist/ConnectedNativeDocxComparison-4UCHWK7X.cjs.map +1 -0
- package/dist/{ConnectedNativeDocxEditor-MOXHTFQC.cjs → ConnectedNativeDocxEditor-3PMWL67U.cjs} +17 -17
- package/dist/ConnectedNativeDocxEditor-3PMWL67U.cjs.map +1 -0
- package/dist/{ConnectedNativeDocxEditor-U7NTXOKU.js → ConnectedNativeDocxEditor-PA4PE4JV.js} +15 -15
- package/dist/ConnectedNativeDocxEditor-PA4PE4JV.js.map +1 -0
- package/dist/{ConnectedStreamedWordArtifact-K34QLUS2.js → ConnectedStreamedWordArtifact-SXLJJGXE.js} +16 -16
- package/dist/ConnectedStreamedWordArtifact-SXLJJGXE.js.map +1 -0
- package/dist/{ConnectedStreamedWordArtifact-KTRHQRWU.cjs → ConnectedStreamedWordArtifact-ZAM6EDLB.cjs} +17 -17
- package/dist/ConnectedStreamedWordArtifact-ZAM6EDLB.cjs.map +1 -0
- package/dist/{DocumentReviewCard-7PY4I2HO.cjs → DocumentReviewCard-NZ3BUZ2T.cjs} +20 -20
- package/dist/{DocumentReviewCard-7PY4I2HO.cjs.map → DocumentReviewCard-NZ3BUZ2T.cjs.map} +1 -1
- package/dist/{DocumentReviewCard-AKSTGWFK.js → DocumentReviewCard-ONMJV6WZ.js} +15 -15
- package/dist/{DocumentReviewCard-AKSTGWFK.js.map → DocumentReviewCard-ONMJV6WZ.js.map} +1 -1
- package/dist/{WorkspaceTableView-6SZ7C6HB.cjs → WorkspaceTableView-IC2AA4OL.cjs} +11 -11
- package/dist/{WorkspaceTableView-6SZ7C6HB.cjs.map → WorkspaceTableView-IC2AA4OL.cjs.map} +1 -1
- package/dist/{WorkspaceTableView-KVMAUWQK.js → WorkspaceTableView-TWBUABRG.js} +9 -9
- package/dist/{WorkspaceTableView-KVMAUWQK.js.map → WorkspaceTableView-TWBUABRG.js.map} +1 -1
- package/dist/agents/index.cjs +383 -383
- package/dist/agents/index.js +17 -17
- package/dist/calendar/index.cjs +116 -116
- package/dist/calendar/index.js +1 -1
- package/dist/calls/index.cjs +135 -135
- package/dist/calls/index.js +11 -11
- package/dist/chat/index.cjs +4 -4
- package/dist/chat/index.js +4 -4
- package/dist/{chunk-EKAWH2B6.cjs → chunk-2J774QEH.cjs} +14 -14
- package/dist/{chunk-EKAWH2B6.cjs.map → chunk-2J774QEH.cjs.map} +1 -1
- package/dist/{chunk-BMSBLD64.js → chunk-2UVWKD4T.js} +5 -5
- package/dist/{chunk-BMSBLD64.js.map → chunk-2UVWKD4T.js.map} +1 -1
- package/dist/{chunk-WGXRLGD3.cjs → chunk-3JZLWFZ5.cjs} +7 -7
- package/dist/{chunk-WGXRLGD3.cjs.map → chunk-3JZLWFZ5.cjs.map} +1 -1
- package/dist/{chunk-55VN4XPB.cjs → chunk-5NRG47P2.cjs} +62 -62
- package/dist/{chunk-55VN4XPB.cjs.map → chunk-5NRG47P2.cjs.map} +1 -1
- package/dist/{chunk-O4HUGETL.cjs → chunk-6BYFHKHA.cjs} +3 -3
- package/dist/{chunk-O4HUGETL.cjs.map → chunk-6BYFHKHA.cjs.map} +1 -1
- package/dist/{chunk-QNKWEA5O.js → chunk-6IZF6SWO.js} +3 -3
- package/dist/{chunk-QNKWEA5O.js.map → chunk-6IZF6SWO.js.map} +1 -1
- package/dist/{chunk-OI4DL2DX.js → chunk-6JQU4FMW.js} +3 -3
- package/dist/{chunk-OI4DL2DX.js.map → chunk-6JQU4FMW.js.map} +1 -1
- package/dist/{chunk-NBJSPURO.js → chunk-6WSHS5XV.js} +7 -7
- package/dist/{chunk-NBJSPURO.js.map → chunk-6WSHS5XV.js.map} +1 -1
- package/dist/{chunk-LYQNG4P3.js → chunk-7ASLVC6T.js} +3 -3
- package/dist/{chunk-LYQNG4P3.js.map → chunk-7ASLVC6T.js.map} +1 -1
- package/dist/{chunk-ZQEBUHRH.cjs → chunk-7OAK2GYN.cjs} +13 -13
- package/dist/{chunk-ZQEBUHRH.cjs.map → chunk-7OAK2GYN.cjs.map} +1 -1
- package/dist/{chunk-ZZTH27G7.js → chunk-7OBYAN4F.js} +4 -4
- package/dist/{chunk-ZZTH27G7.js.map → chunk-7OBYAN4F.js.map} +1 -1
- package/dist/{chunk-PBIFISDD.js → chunk-7P24MJQN.js} +3 -3
- package/dist/{chunk-PBIFISDD.js.map → chunk-7P24MJQN.js.map} +1 -1
- package/dist/{chunk-FZWFMKIB.js → chunk-7P6PSBFC.js} +4 -4
- package/dist/{chunk-FZWFMKIB.js.map → chunk-7P6PSBFC.js.map} +1 -1
- package/dist/{chunk-27H4JAB7.cjs → chunk-7Z73I4LD.cjs} +19 -19
- package/dist/{chunk-27H4JAB7.cjs.map → chunk-7Z73I4LD.cjs.map} +1 -1
- package/dist/{chunk-BTEUZ6FC.cjs → chunk-A4GBLPJS.cjs} +5 -5
- package/dist/{chunk-BTEUZ6FC.cjs.map → chunk-A4GBLPJS.cjs.map} +1 -1
- package/dist/{chunk-U56BM4MK.js → chunk-AMY36AMO.js} +3 -3
- package/dist/{chunk-U56BM4MK.js.map → chunk-AMY36AMO.js.map} +1 -1
- package/dist/{chunk-EOSIWQUL.cjs → chunk-ATYAGH4O.cjs} +19 -19
- package/dist/{chunk-EOSIWQUL.cjs.map → chunk-ATYAGH4O.cjs.map} +1 -1
- package/dist/{chunk-E5RN3LWS.js → chunk-AWVGKHJT.js} +2 -2
- package/dist/{chunk-E5RN3LWS.js.map → chunk-AWVGKHJT.js.map} +1 -1
- package/dist/{chunk-YODI75ZC.js → chunk-BHCD5JSO.js} +3 -3
- package/dist/{chunk-YODI75ZC.js.map → chunk-BHCD5JSO.js.map} +1 -1
- package/dist/{chunk-HN7NF3AQ.cjs → chunk-BIMADSE5.cjs} +4 -4
- package/dist/{chunk-HN7NF3AQ.cjs.map → chunk-BIMADSE5.cjs.map} +1 -1
- package/dist/{chunk-IPX2NFIH.cjs → chunk-BWX7SNY6.cjs} +3 -3
- package/dist/{chunk-IPX2NFIH.cjs.map → chunk-BWX7SNY6.cjs.map} +1 -1
- package/dist/{chunk-IFFASSRV.js → chunk-C2SEFISX.js} +4 -4
- package/dist/{chunk-IFFASSRV.js.map → chunk-C2SEFISX.js.map} +1 -1
- package/dist/{chunk-QK546T4C.cjs → chunk-CKNUL4LM.cjs} +3 -3
- package/dist/{chunk-QK546T4C.cjs.map → chunk-CKNUL4LM.cjs.map} +1 -1
- package/dist/{chunk-Y4MZHJCW.cjs → chunk-CN2VDV4N.cjs} +64 -64
- package/dist/{chunk-Y4MZHJCW.cjs.map → chunk-CN2VDV4N.cjs.map} +1 -1
- package/dist/{chunk-HZ5O4VDK.js → chunk-CTCA4XY3.js} +3 -3
- package/dist/{chunk-HZ5O4VDK.js.map → chunk-CTCA4XY3.js.map} +1 -1
- package/dist/{chunk-KNOSLLTC.js → chunk-DAS5CYH5.js} +3 -3
- package/dist/{chunk-KNOSLLTC.js.map → chunk-DAS5CYH5.js.map} +1 -1
- package/dist/{chunk-ZXW6WFZG.cjs → chunk-DIFSVXCF.cjs} +3 -3
- package/dist/{chunk-ZXW6WFZG.cjs.map → chunk-DIFSVXCF.cjs.map} +1 -1
- package/dist/{chunk-LUYAKW3Z.cjs → chunk-DKRDLKTI.cjs} +23 -23
- package/dist/{chunk-LUYAKW3Z.cjs.map → chunk-DKRDLKTI.cjs.map} +1 -1
- package/dist/{chunk-ZL3NVXR4.cjs → chunk-DPNMBX5A.cjs} +4 -4
- package/dist/{chunk-ZL3NVXR4.cjs.map → chunk-DPNMBX5A.cjs.map} +1 -1
- package/dist/{chunk-NJE4MYKX.js → chunk-DQOMV275.js} +13 -13
- package/dist/{chunk-NJE4MYKX.js.map → chunk-DQOMV275.js.map} +1 -1
- package/dist/{chunk-F3KZGBFI.js → chunk-DTIEENXG.js} +3 -3
- package/dist/{chunk-F3KZGBFI.js.map → chunk-DTIEENXG.js.map} +1 -1
- package/dist/{chunk-5RZLH4B3.cjs → chunk-DUUXZH5G.cjs} +3 -3
- package/dist/{chunk-5RZLH4B3.cjs.map → chunk-DUUXZH5G.cjs.map} +1 -1
- package/dist/{chunk-73JJMC5R.js → chunk-F3EJPRQP.js} +15 -15
- package/dist/{chunk-73JJMC5R.js.map → chunk-F3EJPRQP.js.map} +1 -1
- package/dist/{chunk-RGPKW6KQ.cjs → chunk-FVDJTOS2.cjs} +4 -4
- package/dist/{chunk-RGPKW6KQ.cjs.map → chunk-FVDJTOS2.cjs.map} +1 -1
- package/dist/{chunk-YRMDBSAV.cjs → chunk-FWB7RZHR.cjs} +32 -32
- package/dist/{chunk-YRMDBSAV.cjs.map → chunk-FWB7RZHR.cjs.map} +1 -1
- package/dist/{chunk-5IFKVRLE.js → chunk-GNLIBW6M.js} +8 -8
- package/dist/{chunk-5IFKVRLE.js.map → chunk-GNLIBW6M.js.map} +1 -1
- package/dist/{chunk-MUKCL2AS.js → chunk-I5W4EHUQ.js} +4 -4
- package/dist/{chunk-MUKCL2AS.js.map → chunk-I5W4EHUQ.js.map} +1 -1
- package/dist/{chunk-IJBJXJ4H.cjs → chunk-JI6BZ2FR.cjs} +35 -35
- package/dist/{chunk-IJBJXJ4H.cjs.map → chunk-JI6BZ2FR.cjs.map} +1 -1
- package/dist/{chunk-OQ7W7RTP.js → chunk-KNJI4KQY.js} +3 -3
- package/dist/{chunk-OQ7W7RTP.js.map → chunk-KNJI4KQY.js.map} +1 -1
- package/dist/{chunk-IRFIZKZQ.js → chunk-KSKVTBG5.js} +3 -3
- package/dist/{chunk-IRFIZKZQ.js.map → chunk-KSKVTBG5.js.map} +1 -1
- package/dist/{chunk-CJDWEQAR.js → chunk-L6ALK4JG.js} +4 -4
- package/dist/{chunk-CJDWEQAR.js.map → chunk-L6ALK4JG.js.map} +1 -1
- package/dist/{chunk-B2IL3QUO.js → chunk-LBYEDQO3.js} +3 -3
- package/dist/{chunk-B2IL3QUO.js.map → chunk-LBYEDQO3.js.map} +1 -1
- package/dist/{chunk-PDHCKRNL.js → chunk-LHTOBPYB.js} +14 -14
- package/dist/{chunk-PDHCKRNL.js.map → chunk-LHTOBPYB.js.map} +1 -1
- package/dist/{chunk-SQJNSWDG.js → chunk-LIW6ZZGB.js} +3 -3
- package/dist/{chunk-SQJNSWDG.js.map → chunk-LIW6ZZGB.js.map} +1 -1
- package/dist/{chunk-BS4JCHHX.cjs → chunk-LUDFEAFF.cjs} +9 -9
- package/dist/{chunk-BS4JCHHX.cjs.map → chunk-LUDFEAFF.cjs.map} +1 -1
- package/dist/{chunk-Z4VOVUU7.js → chunk-MO4BLJE5.js} +3 -3
- package/dist/{chunk-Z4VOVUU7.js.map → chunk-MO4BLJE5.js.map} +1 -1
- package/dist/{chunk-7NMNAM53.cjs → chunk-N5DZF52H.cjs} +4 -4
- package/dist/{chunk-7NMNAM53.cjs.map → chunk-N5DZF52H.cjs.map} +1 -1
- package/dist/{chunk-GRFFA54I.cjs → chunk-NCJB5K6L.cjs} +67 -67
- package/dist/{chunk-GRFFA54I.cjs.map → chunk-NCJB5K6L.cjs.map} +1 -1
- package/dist/{chunk-M42XWNS6.cjs → chunk-NFISYFEW.cjs} +3 -3
- package/dist/{chunk-M42XWNS6.cjs.map → chunk-NFISYFEW.cjs.map} +1 -1
- package/dist/{chunk-CYDICJAS.js → chunk-NIG663YY.js} +3 -3
- package/dist/{chunk-CYDICJAS.js.map → chunk-NIG663YY.js.map} +1 -1
- package/dist/{chunk-5FXFYTAQ.cjs → chunk-OAYQ7P34.cjs} +27 -27
- package/dist/{chunk-5FXFYTAQ.cjs.map → chunk-OAYQ7P34.cjs.map} +1 -1
- package/dist/{chunk-TOST5RP2.js → chunk-OKB2L6IJ.js} +7 -7
- package/dist/{chunk-TOST5RP2.js.map → chunk-OKB2L6IJ.js.map} +1 -1
- package/dist/{chunk-EG3BB32W.cjs → chunk-PGRMIC5C.cjs} +5 -5
- package/dist/{chunk-EG3BB32W.cjs.map → chunk-PGRMIC5C.cjs.map} +1 -1
- package/dist/{chunk-XF5W3YZA.cjs → chunk-PIN3V2AH.cjs} +54 -54
- package/dist/{chunk-XF5W3YZA.cjs.map → chunk-PIN3V2AH.cjs.map} +1 -1
- package/dist/{chunk-QJRROKUE.cjs → chunk-PPMSDZ57.cjs} +5 -5
- package/dist/{chunk-QJRROKUE.cjs.map → chunk-PPMSDZ57.cjs.map} +1 -1
- package/dist/{chunk-OGMA5DXW.cjs → chunk-PQK2JBRX.cjs} +3 -3
- package/dist/{chunk-OGMA5DXW.cjs.map → chunk-PQK2JBRX.cjs.map} +1 -1
- package/dist/{chunk-ERASDZ45.js → chunk-QIB2277F.js} +3 -3
- package/dist/{chunk-ERASDZ45.js.map → chunk-QIB2277F.js.map} +1 -1
- package/dist/{chunk-S4F24VZE.cjs → chunk-RDNMY67B.cjs} +7 -7
- package/dist/{chunk-S4F24VZE.cjs.map → chunk-RDNMY67B.cjs.map} +1 -1
- package/dist/{chunk-ES5NQJO5.js → chunk-RUCM3QJT.js} +5 -5
- package/dist/{chunk-ES5NQJO5.js.map → chunk-RUCM3QJT.js.map} +1 -1
- package/dist/{chunk-JBL4PPEE.cjs → chunk-SW7BCXB5.cjs} +4 -4
- package/dist/{chunk-JBL4PPEE.cjs.map → chunk-SW7BCXB5.cjs.map} +1 -1
- package/dist/{chunk-OV36ANDQ.js → chunk-SZXN6WRA.js} +3 -3
- package/dist/{chunk-OV36ANDQ.js.map → chunk-SZXN6WRA.js.map} +1 -1
- package/dist/{chunk-TY4LIT2W.cjs → chunk-TDP3VUN5.cjs} +11 -11
- package/dist/{chunk-TY4LIT2W.cjs.map → chunk-TDP3VUN5.cjs.map} +1 -1
- package/dist/{chunk-GHOY7A7P.js → chunk-TQ37QK52.js} +3 -3
- package/dist/{chunk-GHOY7A7P.js.map → chunk-TQ37QK52.js.map} +1 -1
- package/dist/{chunk-TBMJ575G.js → chunk-TVIZVARF.js} +4 -4
- package/dist/{chunk-TBMJ575G.js.map → chunk-TVIZVARF.js.map} +1 -1
- package/dist/{chunk-WBKORBG7.cjs → chunk-V7W3MT3P.cjs} +3 -3
- package/dist/{chunk-WBKORBG7.cjs.map → chunk-V7W3MT3P.cjs.map} +1 -1
- package/dist/{chunk-SGOMPLJA.js → chunk-VBZBUFXC.js} +14 -14
- package/dist/{chunk-SGOMPLJA.js.map → chunk-VBZBUFXC.js.map} +1 -1
- package/dist/{chunk-2VH2PT3J.js → chunk-VUV3FCTJ.js} +3 -3
- package/dist/{chunk-2VH2PT3J.js.map → chunk-VUV3FCTJ.js.map} +1 -1
- package/dist/{chunk-LM7DVT7C.cjs → chunk-W3PSIIMN.cjs} +2 -2
- package/dist/{chunk-LM7DVT7C.cjs.map → chunk-W3PSIIMN.cjs.map} +1 -1
- package/dist/{chunk-HEMWXPNQ.cjs → chunk-WDBA4RK3.cjs} +3 -3
- package/dist/{chunk-HEMWXPNQ.cjs.map → chunk-WDBA4RK3.cjs.map} +1 -1
- package/dist/{chunk-CHZQBHTR.cjs → chunk-X2VBA4XG.cjs} +3 -3
- package/dist/{chunk-CHZQBHTR.cjs.map → chunk-X2VBA4XG.cjs.map} +1 -1
- package/dist/{chunk-CTMGXYJ4.cjs → chunk-YWDWH5NT.cjs} +3 -3
- package/dist/{chunk-CTMGXYJ4.cjs.map → chunk-YWDWH5NT.cjs.map} +1 -1
- package/dist/{chunk-64DMXUYS.js → chunk-ZFD53IT4.js} +3 -3
- package/dist/{chunk-64DMXUYS.js.map → chunk-ZFD53IT4.js.map} +1 -1
- package/dist/collaboration/index.cjs +1 -1
- package/dist/collaboration/index.js +1 -1
- package/dist/connect/docx.cjs +23 -23
- package/dist/connect/docx.js +19 -19
- package/dist/connect/index.cjs +1173 -1173
- package/dist/connect/index.js +82 -82
- package/dist/connect/viewer.cjs +28 -28
- package/dist/connect/viewer.js +27 -27
- package/dist/dashboards/index.cjs +1 -1
- package/dist/dashboards/index.js +1 -1
- package/dist/document-tools/index.cjs +17 -17
- package/dist/document-tools/index.js +2 -2
- package/dist/embed/index.cjs +39 -39
- package/dist/embed/index.js +35 -35
- package/dist/facts/index.cjs +49 -49
- package/dist/facts/index.js +6 -6
- package/dist/files/index.cjs +227 -227
- package/dist/files/index.js +7 -7
- package/dist/home/index.cjs +31 -31
- package/dist/home/index.js +4 -4
- package/dist/index.cjs +1822 -1822
- package/dist/index.js +52 -52
- package/dist/settings/index.cjs +158 -158
- package/dist/settings/index.js +4 -4
- package/dist/shell/index.cjs +113 -113
- package/dist/shell/index.js +9 -9
- package/dist/site/index.cjs +22 -22
- package/dist/site/index.js +2 -2
- package/dist/studio/index.cjs +21 -21
- package/dist/studio/index.js +18 -18
- package/dist/workflow-canvas/index.cjs +61 -61
- package/dist/workflow-canvas/index.js +37 -37
- package/dist/workspaces/index.cjs +20 -20
- package/dist/workspaces/index.js +3 -3
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +5 -5
- package/dist/ConnectedNativeDocxComparison-S4QT72BV.cjs.map +0 -1
- package/dist/ConnectedNativeDocxComparison-W6QMSY6U.js.map +0 -1
- package/dist/ConnectedNativeDocxEditor-MOXHTFQC.cjs.map +0 -1
- package/dist/ConnectedNativeDocxEditor-U7NTXOKU.js.map +0 -1
- package/dist/ConnectedStreamedWordArtifact-K34QLUS2.js.map +0 -1
- package/dist/ConnectedStreamedWordArtifact-KTRHQRWU.cjs.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { StreamedWordArtifact } from './chunk-VFSHI7IX.js';
|
|
3
|
-
import { useConnectedNativeDocxAdapter } from './chunk-
|
|
3
|
+
import { useConnectedNativeDocxAdapter } from './chunk-2UVWKD4T.js';
|
|
4
4
|
import { jsx } from 'react/jsx-runtime';
|
|
5
5
|
|
|
6
6
|
function ConnectedStreamedWordArtifact({
|
|
@@ -12,5 +12,5 @@ function ConnectedStreamedWordArtifact({
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
export { ConnectedStreamedWordArtifact };
|
|
15
|
-
//# sourceMappingURL=chunk-
|
|
16
|
-
//# sourceMappingURL=chunk-
|
|
15
|
+
//# sourceMappingURL=chunk-DTIEENXG.js.map
|
|
16
|
+
//# sourceMappingURL=chunk-DTIEENXG.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/connection/docx/ConnectedStreamedWordArtifact.tsx"],"names":[],"mappings":";;;;AAMO,SAAS,6BAAA,CAA8B;AAAA,EAC5C,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0E;AACxE,EAAA,MAAM,OAAA,GAAU,8BAA8B,WAAW,CAAA;AACzD,EAAA,uBAAO,GAAA,CAAC,oBAAA,EAAA,EAAsB,GAAG,KAAA,EAAO,OAAA,EAAkB,CAAA;AAC5D","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/connection/docx/ConnectedStreamedWordArtifact.tsx"],"names":[],"mappings":";;;;AAMO,SAAS,6BAAA,CAA8B;AAAA,EAC5C,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0E;AACxE,EAAA,MAAM,OAAA,GAAU,8BAA8B,WAAW,CAAA;AACzD,EAAA,uBAAO,GAAA,CAAC,oBAAA,EAAA,EAAsB,GAAG,KAAA,EAAO,OAAA,EAAkB,CAAA;AAC5D","file":"chunk-DTIEENXG.js","sourcesContent":["import { useConnectedNativeDocxAdapter } from './ConnectedNativeDocxEditor'\nimport {\n StreamedWordArtifact,\n type StreamedWordArtifactProps,\n} from '../../docx/StreamedWordArtifact'\n\nexport function ConnectedStreamedWordArtifact({\n fontBaseUrl,\n ...props\n}: Omit<StreamedWordArtifactProps, 'adapter'> & { fontBaseUrl?: string }) {\n const adapter = useConnectedNativeDocxAdapter(fontBaseUrl)\n return <StreamedWordArtifact {...props} adapter={adapter} />\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var chunkFBDGWGPG_cjs = require('./chunk-FBDGWGPG.cjs');
|
|
5
4
|
var chunkYZSQ7F5K_cjs = require('./chunk-YZSQ7F5K.cjs');
|
|
5
|
+
var chunkFBDGWGPG_cjs = require('./chunk-FBDGWGPG.cjs');
|
|
6
6
|
var chunkMHVNT4J3_cjs = require('./chunk-MHVNT4J3.cjs');
|
|
7
7
|
var react = require('react');
|
|
8
8
|
var ui = require('@arbidocs/react/ui');
|
|
@@ -599,5 +599,5 @@ exports.SidebarBadgeRow = SidebarBadgeRow;
|
|
|
599
599
|
exports.SidebarRowHoverContext = SidebarRowHoverContext;
|
|
600
600
|
exports.useShellStartInset = useShellStartInset;
|
|
601
601
|
exports.useSidebarContext = useSidebarContext;
|
|
602
|
-
//# sourceMappingURL=chunk-
|
|
603
|
-
//# sourceMappingURL=chunk-
|
|
602
|
+
//# sourceMappingURL=chunk-DUUXZH5G.cjs.map
|
|
603
|
+
//# sourceMappingURL=chunk-DUUXZH5G.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/shell/sidebar-context.ts","../src/shell/SidebarBadgeRow.tsx","../src/lib/start-inset.ts","../src/shell/Sidebar.tsx"],"names":["createContext","useContext","forwardRef","SidebarBadgeRow","jsxs","cn","jsx","Tooltip","TooltipTrigger","TooltipContent","useEffect","useMemo","useRef","useDrawerBehavior","testIdOr","Fragment","BlocksTooltipProvider","useState","ActionLink","PanelLeftClose","PanelLeftOpen","X"],"mappings":"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","file":"chunk-5RZLH4B3.cjs","sourcesContent":["import { createContext, useContext } from 'react'\n\n/** Fixed strings of the sidebar family. Set once on `Sidebar.Root`; parts read them from context. */\nexport interface SidebarLabels {\n /** The sidebar's accessible name (the Root `aria-label` prop wins). */\n mainNavigation: string\n hideSidebar: string\n showSidebar: string\n /** The drawer's close button (the `closeLabel` prop wins). */\n closeNavigationMenu: string\n}\n\nexport const DEFAULT_SIDEBAR_LABELS: SidebarLabels = {\n mainNavigation: 'Main navigation',\n hideSidebar: 'Hide sidebar',\n showSidebar: 'Show sidebar',\n closeNavigationMenu: 'Close navigation menu',\n}\n\nexport interface SidebarContextValue {\n /** Labels are visible (full width), as opposed to the icon-only rail. */\n expanded: boolean\n labels: SidebarLabels\n}\nexport const SidebarContext = createContext<SidebarContextValue>({\n expanded: true,\n labels: DEFAULT_SIDEBAR_LABELS,\n})\nexport const useSidebarContext = (): SidebarContextValue => useContext(SidebarContext)\n\n/** True while the surrounding row is hovered/focused; trailing controls may brighten on it. */\nexport const SidebarRowHoverContext = createContext(false)\n","import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from 'react'\nimport { cn, Tooltip, TooltipContent, TooltipTrigger } from '@arbidocs/react/ui'\nimport { useSidebarContext } from './sidebar-context'\n\nexport interface SidebarBadgeRowProps extends Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n 'children'\n> {\n /** Glyph (20px). */\n icon: ReactNode\n /** Visible label of the expanded row; the tooltip of the icon-only rail. */\n label: string\n /** Unread/pending number. Hidden at 0 or `undefined`; values above 9 read \"9+\". */\n count?: number\n /**\n * Accessible name including the count, for example \"Notifications, 2 unread\". Defaults to\n * `label` plus the count.\n */\n ariaLabel?: string\n /**\n * `row`: a labelled row styled like the module rows, badge at the right. `icon`: icon-only with\n * the badge on the corner. Default follows the sidebar (`row` expanded, `icon` on the rail).\n */\n variant?: 'row' | 'icon'\n /** Test id of the count badge. */\n badgeTestId?: string\n}\n\n/**\n * A sidebar row that carries a badge and may open something (a panel, a popover): the\n * notifications and contacts rows above the account bar. A real button that forwards its ref and\n * rest props, so it can be a popover trigger (`<DropdownMenuTrigger asChild>`). The badge is\n * visible in both the expanded row and the icon-only rail, and the accessible name carries the\n * count in both.\n */\nexport const SidebarBadgeRow = forwardRef<HTMLButtonElement, SidebarBadgeRowProps>(\n function SidebarBadgeRow(\n { icon, label, count, ariaLabel, variant, badgeTestId, className, type = 'button', ...rest },\n ref\n ) {\n const { expanded } = useSidebarContext()\n const resolved = variant ?? (expanded ? 'row' : 'icon')\n const hasCount = count !== undefined && count > 0\n const badgeText = hasCount ? (count > 9 ? '9+' : String(count)) : null\n const name = ariaLabel ?? (hasCount ? `${label}, ${count}` : label)\n\n if (resolved === 'row') {\n return (\n <button\n ref={ref}\n type={type}\n aria-label={name}\n data-slot=\"sidebar-badge-row\"\n data-variant=\"row\"\n className={cn(\n 'group flex h-9 w-full cursor-pointer items-center rounded-md px-3 text-left text-sm font-medium text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:h-11',\n className\n )}\n {...rest}\n >\n <span className=\"flex size-5 flex-shrink-0 items-center justify-center\" aria-hidden>\n {icon}\n </span>\n <span className=\"ml-3 min-w-0 truncate\" aria-hidden>\n {label}\n </span>\n {badgeText && (\n <span\n aria-hidden\n data-testid={badgeTestId}\n className=\"ml-auto inline-flex min-w-5 flex-shrink-0 items-center justify-center rounded-full bg-primary px-1.5 text-xs font-semibold leading-5 tabular-nums text-primary-foreground\"\n >\n {badgeText}\n </span>\n )}\n </button>\n )\n }\n\n const iconButton = (\n <button\n ref={ref}\n type={type}\n aria-label={name}\n data-slot=\"sidebar-badge-row\"\n data-variant=\"icon\"\n title={variant === 'icon' ? label : undefined}\n className={cn(\n 'relative m-0 flex h-9 w-12 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:h-11',\n className\n )}\n {...rest}\n >\n <span className=\"flex size-5 items-center justify-center\" aria-hidden>\n {icon}\n </span>\n {badgeText && (\n <span\n aria-hidden\n data-testid={badgeTestId}\n className=\"absolute right-1 top-0.5 flex min-w-4 items-center justify-center rounded-full bg-primary px-1 text-xs font-semibold leading-4 tabular-nums text-primary-foreground\"\n >\n {badgeText}\n </span>\n )}\n </button>\n )\n // A standalone icon button (the page header) keeps its native title; the rail uses a tooltip.\n if (variant === 'icon') return iconButton\n return (\n <Tooltip delayDuration={50}>\n <TooltipTrigger asChild>{iconButton}</TooltipTrigger>\n <TooltipContent side=\"right\" sideOffset={8}>\n {label}\n </TooltipContent>\n </Tooltip>\n )\n }\n)\n","import { useEffect } from 'react'\n\n/**\n * The CSS custom property that carries how much of the screen's start (left) edge a docked sidebar\n * takes, set on `<html>`. A floating element pinned to the start corner (the install prompt)\n * positions itself `calc(var(--shell-start-inset, 0px) + 0.75rem)` so it never covers the\n * sidebar's footer (the account menu).\n */\nexport const SHELL_START_INSET_VAR = '--shell-start-inset'\n\nconst widths = new Map<symbol, number>()\n\nfunction apply(): void {\n if (typeof document === 'undefined') return\n const inset = Math.max(0, ...widths.values())\n const style = document.documentElement.style\n if (inset > 0) style.setProperty(SHELL_START_INSET_VAR, `${inset}px`)\n else style.removeProperty(SHELL_START_INSET_VAR)\n}\n\n/**\n * Report a sidebar docked at the start edge, `width` px wide (0 while it is collapsed or is an\n * overlay drawer), to {@link SHELL_START_INSET_VAR}. `Sidebar.Root` calls it; call it from your\n * own docked side panel.\n */\nexport function useShellStartInset(width: number): void {\n useEffect(() => {\n const key = Symbol('shell-start-inset')\n widths.set(key, width)\n apply()\n return () => {\n widths.delete(key)\n apply()\n }\n }, [width])\n}\n","import { useMemo, useRef, useState, type CSSProperties, type ReactNode } from 'react'\nimport { PanelLeftClose, PanelLeftOpen, X } from 'lucide-react'\nimport { cn, Tooltip, TooltipContent, TooltipTrigger } from '@arbidocs/react/ui'\nimport { testIdOr } from '../chat/test-id'\nimport {\n DEFAULT_SIDEBAR_LABELS,\n SidebarContext,\n SidebarRowHoverContext,\n useSidebarContext,\n type SidebarLabels,\n} from './sidebar-context'\nimport { SidebarBadgeRow } from './SidebarBadgeRow'\nimport { ActionLink } from '../components/ActionLink'\nimport { BlocksTooltipProvider } from '../provider/TooltipScope'\nimport { useDrawerBehavior } from '../lib/use-drawer'\nimport { useShellStartInset } from '../lib/start-inset'\nimport type { SidebarMode } from '../lib/sidebar-mode'\nimport type { NavItem, NavItemIndicator, NavSection } from './types'\n\n/**\n * Sidebar: the one tinted column that carries the app frame. Compound parts:\n * Sidebar.Root positioning shell for the four modes (drawer / collapsed / pinned / rail)\n * Sidebar.Header top block (switcher, ask field, pin toggle)\n * Sidebar.Nav the rows: pass `items` (NavItem[]) or compose Sidebar.NavItem children\n * Sidebar.Group a labelled run of rows (heading when expanded, divider on the rail)\n * Sidebar.Footer pinned to the bottom (offline pill, tips card, action cluster)\n * Sidebar.PinToggle / Sidebar.DrawerHeader the header's two stock controls\n *\n * Presentational and controlled: the app resolves `mode`/`expanded` (see `resolveSidebarLayout`\n * and `useSidebarSettle`) and owns where hover/pin/drawer state lives.\n */\n\nconst noop = () => {}\n\nconst COLLAPSED_PX = 64\nconst EXPANDED_PX = 256\nconst COLLAPSED_WIDTH = `${COLLAPSED_PX}px`\nconst EXPANDED_WIDTH = `${EXPANDED_PX}px`\n\nexport interface SidebarRootProps {\n /** Constrain the drawer to an embedded frame. The app keeps the viewport default. */\n contained?: boolean\n mode: SidebarMode\n /** Labels visible. Provided to every part through context. */\n expanded: boolean\n /** `rail` mode: floats open to full width. */\n isHovering?: boolean\n onBackdropClick?: () => void\n /** `rail` mode on touch: the floated-open rail dims the content behind it; tapping it closes. */\n hasRailBackdrop?: boolean\n onMouseEnter?: () => void\n onMouseLeave?: () => void\n children: ReactNode\n className?: string\n 'aria-label'?: string\n labels?: Partial<SidebarLabels>\n /** Root id (default `sidebar`). */\n 'data-testid'?: string\n /** Drawer backdrop id (default `sidebar-backdrop`). */\n backdropTestId?: string\n}\n\nfunction SidebarRoot({\n mode,\n contained = false,\n expanded,\n isHovering = false,\n onBackdropClick,\n hasRailBackdrop = false,\n onMouseEnter,\n onMouseLeave,\n children,\n className,\n 'aria-label': ariaLabelProp,\n labels,\n 'data-testid': testId,\n backdropTestId,\n}: SidebarRootProps) {\n const mergedLabels = useMemo(() => ({ ...DEFAULT_SIDEBAR_LABELS, ...labels }), [labels])\n // The drawer is a modal: scroll lock, Escape, focus trap and focus return to the opener.\n const drawerRef = useRef<HTMLDivElement>(null)\n const isDrawer = mode === 'drawer'\n useDrawerBehavior(isDrawer, onBackdropClick ?? noop, drawerRef)\n // Floating start-corner elements (the install prompt) sit clear of the docked sidebar; a rail\n // expanding on hover floats over the page, so only its collapsed width counts.\n useShellStartInset(mode === 'pinned' ? EXPANDED_PX : mode === 'rail' ? COLLAPSED_PX : 0)\n const ariaLabel = ariaLabelProp ?? mergedLabels.mainNavigation\n const contextValue = useMemo(() => ({ expanded, labels: mergedLabels }), [expanded, mergedLabels])\n // `navBase` omits horizontal padding so each mode owns its own: the collapsed state must\n // reach a true 0 width, which an `!important` px would block.\n const navBase =\n 'group/sidebar bg-sidebar border-r border-border text-foreground scrollbar-themed flex flex-col h-full overflow-y-auto overflow-x-hidden pb-safe pt-3 transition-all duration-300 ease-in-out'\n const common = {\n 'aria-label': ariaLabel,\n 'data-testid': testIdOr(testId, { testId: 'sidebar' }),\n 'data-slot': 'sidebar',\n 'data-mode': mode,\n } as const\n const fixedWidth: CSSProperties = { width: EXPANDED_WIDTH, minWidth: EXPANDED_WIDTH }\n\n let body: ReactNode\n if (mode === 'drawer') {\n // Small-screen off-canvas panel + dismiss backdrop; bypasses the hover/collapse model. The\n // wrapper is the modal dialog; the nav landmark sits inside it.\n body = (\n <div\n ref={drawerRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={ariaLabel}\n data-slot=\"sidebar-drawer\"\n className={cn(contained ? 'absolute' : 'fixed', 'inset-0 z-50')}\n >\n <div\n className=\"absolute inset-0 bg-black/50\"\n onClick={onBackdropClick}\n aria-hidden=\"true\"\n data-testid={testIdOr(backdropTestId, { testId: 'sidebar-backdrop' })}\n />\n <nav\n {...common}\n className={cn(navBase, '!px-3 absolute left-0 top-0 pt-safe shadow-xl', className)}\n style={fixedWidth}\n >\n {children}\n </nav>\n </div>\n )\n } else if (mode === 'collapsed') {\n // Stays mounted at width 0 so the transition runs on both enter and leave. Horizontal padding\n // is dropped or overflow-hidden would reveal a clipped sliver of the icons.\n body = (\n <nav\n {...common}\n className={cn(navBase, 'absolute left-0 top-0 z-[45]', className)}\n style={{\n width: '0px',\n minWidth: 0,\n paddingLeft: 0,\n paddingRight: 0,\n borderRightWidth: 0,\n pointerEvents: 'none',\n }}\n // Width 0 hides the links visually; inert also takes them out of the tab order and the\n // accessibility tree.\n inert\n >\n {children}\n </nav>\n )\n } else if (mode === 'pinned') {\n body = (\n <nav\n {...common}\n className={cn(navBase, '!px-3 relative flex-shrink-0', className)}\n style={fixedWidth}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n {children}\n </nav>\n )\n } else {\n // Rail: a permanent spacer keeps the flex layout still; the nav is always absolute so only\n // its width animates on hover (no layout jump).\n body = (\n <>\n <div\n className=\"bg-sidebar border-r border-border flex flex-col h-full relative px-0 pb-safe flex-shrink-0\"\n style={{ width: COLLAPSED_WIDTH, minWidth: COLLAPSED_WIDTH }}\n aria-hidden=\"true\"\n />\n {isHovering && hasRailBackdrop && (\n <div\n className=\"fixed inset-0 z-[44] bg-black/40\"\n onClick={onBackdropClick}\n aria-hidden=\"true\"\n data-testid={testIdOr(backdropTestId, { testId: 'sidebar-backdrop' })}\n />\n )}\n <nav\n {...common}\n className={cn(\n navBase,\n isHovering ? '!px-3 shadow-xl' : '!px-2',\n 'absolute left-0 top-0 z-[45]',\n className\n )}\n style={{\n width: isHovering ? EXPANDED_WIDTH : COLLAPSED_WIDTH,\n minWidth: isHovering ? EXPANDED_WIDTH : COLLAPSED_WIDTH,\n }}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n {children}\n </nav>\n </>\n )\n }\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <BlocksTooltipProvider>{body}</BlocksTooltipProvider>\n </SidebarContext.Provider>\n )\n}\n\nexport interface SidebarSectionProps {\n children: ReactNode\n className?: string\n 'data-testid'?: string\n}\n\nfunction SidebarHeader({ children, className, 'data-testid': testId }: SidebarSectionProps) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-testid={testId}\n className={cn('flex flex-shrink-0 flex-col gap-3 pb-3', className)}\n >\n {children}\n </div>\n )\n}\n\nexport interface SidebarNavProps extends Omit<SidebarSectionProps, 'children'> {\n children?: ReactNode\n /** Rows as data. Children render after them. */\n items?: NavItem[]\n /** Labelled groups of rows as data (each a `Sidebar.Group`), after `items`. */\n sections?: NavSection[]\n}\n\nfunction SidebarNav({\n items,\n sections,\n children,\n className,\n 'data-testid': testId,\n}: SidebarNavProps) {\n const { expanded } = useSidebarContext()\n return (\n <div\n data-slot=\"sidebar-nav\"\n data-testid={testId}\n className={cn('flex flex-shrink-0 flex-col gap-0.5', !expanded && 'items-center', className)}\n >\n {items?.map((item) => (\n <SidebarNavItem key={item.id} {...item} />\n ))}\n {sections?.map((section) => (\n <SidebarGroup\n key={section.id}\n label={section.label}\n ariaLabel={section.ariaLabel}\n data-testid={section.testId}\n >\n {section.items.map((item) => (\n <SidebarNavItem key={item.id} {...item} />\n ))}\n </SidebarGroup>\n ))}\n {children}\n </div>\n )\n}\n\nexport interface SidebarGroupProps extends SidebarSectionProps {\n /** Group heading. Shown above the rows when expanded; a thin divider stands in on the rail. */\n label?: ReactNode\n /** Accessible name when `label` is not plain text. */\n ariaLabel?: string\n}\n\n/** A labelled run of rows inside the nav (for example \"Workspace\", \"Tools\"). */\nfunction SidebarGroup({\n label,\n ariaLabel,\n children,\n className,\n 'data-testid': testId,\n}: SidebarGroupProps) {\n const { expanded } = useSidebarContext()\n return (\n <div\n role=\"group\"\n aria-label={ariaLabel ?? (typeof label === 'string' ? label : undefined)}\n data-slot=\"sidebar-group\"\n data-testid={testId}\n className={cn('flex flex-shrink-0 flex-col gap-0.5', !expanded && 'items-center', className)}\n >\n {label &&\n (expanded ? (\n <SidebarGroupLabel>{label}</SidebarGroupLabel>\n ) : (\n <div\n role=\"separator\"\n data-slot=\"sidebar-group-divider\"\n className=\"my-1 h-px w-6 bg-border\"\n />\n ))}\n {children}\n </div>\n )\n}\n\n/** The heading of a `Sidebar.Group` (exported for custom headings). Hidden by the group on the rail. */\nfunction SidebarGroupLabel({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div\n data-slot=\"sidebar-group-label\"\n className={cn(\n 'px-2 pb-0.5 pt-2 text-xs font-medium uppercase tracking-wide text-muted-foreground',\n className\n )}\n >\n {children}\n </div>\n )\n}\n\nfunction SidebarFooter({ children, className, 'data-testid': testId }: SidebarSectionProps) {\n const { expanded } = useSidebarContext()\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-testid={testId}\n className={cn(\n 'mt-auto flex flex-shrink-0 flex-col gap-2 pt-3 pb-3',\n !expanded && 'items-center',\n className\n )}\n >\n {children}\n </div>\n )\n}\n\nconst INDICATOR_TONES: Record<NavItemIndicator, string> = {\n progress: 'bg-primary',\n error: 'bg-red-solid',\n attention: 'bg-yellow-solid',\n}\n\nexport type SidebarNavItemProps = Omit<NavItem, 'id'> & {\n id?: string\n className?: string\n /** Tooltip shown on the icon-only rail; defaults to the label. */\n tooltip?: string\n}\n\n/**\n * One row: [icon] [label] [count] [trailing]. 36px (44px on coarse pointers). The active row is\n * the selection tint, never a filled block; counts are quiet numbers, not pills.\n *\n * The expanded row is a div with role=\"button\" (not a native <button>) so an interactive\n * `trailing` control can be nested without producing button-in-button markup.\n */\nfunction SidebarNavItem({\n label,\n icon,\n active = false,\n onSelect,\n href,\n count,\n countIcon,\n testId,\n disabled = false,\n trailing,\n indicator,\n className,\n tooltip,\n}: SidebarNavItemProps) {\n const { expanded } = useSidebarContext()\n // Tracked as state (not CSS :hover) so a trailing control can read it via context.\n const [isRowActive, setIsRowActive] = useState(false)\n const tip = expanded ? undefined : (tooltip ?? label)\n\n if (!expanded) {\n const railButton = (\n <ActionLink\n href={href}\n onSelect={onSelect}\n disabled={disabled}\n aria-label={label}\n aria-current={active ? 'page' : undefined}\n data-slot=\"sidebar-nav-item\"\n data-testid={testId}\n className={cn(\n 'm-0 flex h-9 w-12 items-center justify-center rounded-md transition-colors pointer-coarse:h-11',\n active\n ? 'bg-accent text-accent-foreground'\n : 'text-muted-foreground hover:bg-muted hover:text-foreground',\n disabled && 'pointer-events-none cursor-not-allowed opacity-30',\n className\n )}\n >\n <div className=\"flex size-5 items-center justify-center\">\n {indicator ? (\n <div className=\"relative\">\n {icon}\n <div\n data-slot=\"sidebar-nav-indicator\"\n data-tone={indicator}\n className={cn(\n 'absolute -right-1 -top-1 size-2.5 rounded-full border border-sidebar',\n INDICATOR_TONES[indicator]\n )}\n />\n </div>\n ) : (\n icon\n )}\n </div>\n </ActionLink>\n )\n if (!tip) return railButton\n return (\n <Tooltip delayDuration={50}>\n <TooltipTrigger asChild>{railButton}</TooltipTrigger>\n <TooltipContent side=\"right\" sideOffset={8}>\n {tip}\n </TooltipContent>\n </Tooltip>\n )\n }\n\n const rowClass = cn(\n 'group flex h-9 w-full cursor-pointer items-center rounded-md px-3 text-sm transition-colors pointer-coarse:h-11',\n active\n ? 'bg-accent font-semibold text-accent-foreground'\n : 'font-medium text-muted-foreground hover:bg-muted hover:text-foreground',\n disabled && 'pointer-events-none cursor-not-allowed opacity-30',\n className\n )\n const countNode = count !== undefined && (\n <span\n // `ml-auto` lines the counts up on the right edge as one column of numbers.\n className={cn(\n 'ml-auto inline-flex flex-shrink-0 items-center gap-0.5 pl-2 text-xs font-normal tabular-nums',\n active ? 'text-accent-foreground' : 'text-muted-foreground'\n )}\n >\n {countIcon}\n {count}\n </span>\n )\n\n // A link row without a nested control is the anchor itself.\n if (href && !disabled && !trailing) {\n return (\n <ActionLink\n href={href}\n onSelect={onSelect}\n aria-current={active ? 'page' : undefined}\n data-slot=\"sidebar-nav-item\"\n data-testid={testId}\n className={rowClass}\n >\n <div className=\"flex size-5 flex-shrink-0 items-center justify-center\">{icon}</div>\n <span className=\"ml-3 min-w-0 truncate text-left\">{label}</span>\n {countNode}\n </ActionLink>\n )\n }\n\n // A link row with a nested control: a stretched anchor sits under the content, and the\n // trailing control rises above it, so there is never an interactive element inside an anchor.\n if (href && !disabled) {\n return (\n <div\n onMouseEnter={() => setIsRowActive(true)}\n onMouseLeave={() => setIsRowActive(false)}\n onFocusCapture={() => setIsRowActive(true)}\n onBlurCapture={(e) => {\n if (!e.currentTarget.contains(e.relatedTarget as Node | null)) setIsRowActive(false)\n }}\n data-slot=\"sidebar-nav-item\"\n data-testid={testId}\n className={cn(rowClass, 'relative')}\n >\n <ActionLink\n href={href}\n onSelect={onSelect}\n aria-label={label}\n aria-current={active ? 'page' : undefined}\n className=\"absolute inset-0 rounded-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n />\n <div className=\"pointer-events-none flex min-w-0 flex-1 items-center\">\n <div className=\"flex size-5 flex-shrink-0 items-center justify-center\">{icon}</div>\n <span className=\"ml-3 min-w-0 truncate text-left\">{label}</span>\n {countNode}\n </div>\n <SidebarRowHoverContext.Provider value={isRowActive}>\n <span className=\"relative ml-2 flex flex-shrink-0 items-center\">{trailing}</span>\n </SidebarRowHoverContext.Provider>\n </div>\n )\n }\n\n return (\n <div\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-current={active ? 'page' : undefined}\n onClick={disabled ? undefined : onSelect}\n onMouseEnter={() => setIsRowActive(true)}\n onMouseLeave={() => setIsRowActive(false)}\n onFocusCapture={() => setIsRowActive(true)}\n onBlurCapture={(e) => {\n if (!e.currentTarget.contains(e.relatedTarget as Node | null)) setIsRowActive(false)\n }}\n onKeyDown={\n disabled\n ? undefined\n : (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onSelect()\n }\n }\n }\n data-slot=\"sidebar-nav-item\"\n data-testid={testId}\n className={rowClass}\n >\n <div className=\"flex size-5 flex-shrink-0 items-center justify-center\">{icon}</div>\n <span className=\"ml-3 min-w-0 truncate text-left\">{label}</span>\n {countNode}\n {trailing && (\n <SidebarRowHoverContext.Provider value={isRowActive}>\n <span className=\"ml-auto flex flex-shrink-0 items-center pl-2\">{trailing}</span>\n </SidebarRowHoverContext.Provider>\n )}\n </div>\n )\n}\n\nexport interface SidebarPinToggleProps {\n isPinned: boolean\n onToggle: () => void\n className?: string\n /** Default `sidebar-pin-button`. */\n 'data-testid'?: string\n}\n\n/**\n * Pin/unpin button, revealed while the pointer is over the sidebar. It is always visible on\n * coarse pointers (no hover on touch) and revealed by keyboard focus anywhere in the sidebar. It\n * is hidden with opacity and pointer-events, never display:none, so it keeps its accessible name\n * and stays in the tab order.\n */\nfunction SidebarPinToggle({\n isPinned,\n onToggle,\n className,\n 'data-testid': testId,\n}: SidebarPinToggleProps) {\n const { expanded, labels } = useSidebarContext()\n const label = isPinned ? labels.hideSidebar : labels.showSidebar\n return (\n <button\n type=\"button\"\n onClick={onToggle}\n title={label}\n aria-label={label}\n aria-pressed={isPinned}\n data-testid={testIdOr(testId, { testId: 'sidebar-pin-button' })}\n className={cn(\n 'flex flex-shrink-0 items-center justify-center rounded-md text-muted-foreground transition-[opacity,colors] hover:bg-muted hover:text-foreground pointer-coarse:size-11',\n 'pointer-events-none opacity-0 group-hover/sidebar:pointer-events-auto group-hover/sidebar:opacity-100',\n 'group-focus-within/sidebar:pointer-events-auto group-focus-within/sidebar:opacity-100',\n 'pointer-coarse:pointer-events-auto pointer-coarse:opacity-100 focus-visible:pointer-events-auto focus-visible:opacity-100',\n expanded ? 'size-9' : 'h-9 w-12',\n className\n )}\n >\n {isPinned ? <PanelLeftClose className=\"size-5\" /> : <PanelLeftOpen className=\"size-5\" />}\n </button>\n )\n}\n\nexport interface SidebarDrawerHeaderProps {\n /** Brand mark. */\n logo: ReactNode\n onClose: () => void\n closeLabel?: string\n /** Close button id (default `mobile-nav-close`). */\n 'data-testid'?: string\n}\n\n/** The phone drawer's header: brand mark and a 44px close button. */\nfunction SidebarDrawerHeader({\n logo,\n onClose,\n closeLabel: closeLabelProp,\n 'data-testid': testId,\n}: SidebarDrawerHeaderProps) {\n const { labels } = useSidebarContext()\n const closeLabel = closeLabelProp ?? labels.closeNavigationMenu\n return (\n <div\n data-slot=\"sidebar-drawer-header\"\n className=\"flex flex-shrink-0 items-center justify-between pb-2\"\n >\n {logo}\n <button\n type=\"button\"\n onClick={onClose}\n aria-label={closeLabel}\n data-testid={testIdOr(testId, { testId: 'mobile-nav-close' })}\n className=\"flex size-11 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\"\n >\n <X className=\"size-5\" />\n </button>\n </div>\n )\n}\n\nexport { DEFAULT_SIDEBAR_LABELS, SidebarRowHoverContext, useSidebarContext, type SidebarLabels }\n\nexport const Sidebar = {\n Root: SidebarRoot,\n Header: SidebarHeader,\n Nav: SidebarNav,\n Group: SidebarGroup,\n GroupLabel: SidebarGroupLabel,\n NavItem: SidebarNavItem,\n Footer: SidebarFooter,\n PinToggle: SidebarPinToggle,\n BadgeRow: SidebarBadgeRow,\n DrawerHeader: SidebarDrawerHeader,\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/shell/sidebar-context.ts","../src/shell/SidebarBadgeRow.tsx","../src/lib/start-inset.ts","../src/shell/Sidebar.tsx"],"names":["createContext","useContext","forwardRef","SidebarBadgeRow","jsxs","cn","jsx","Tooltip","TooltipTrigger","TooltipContent","useEffect","useMemo","useRef","useDrawerBehavior","testIdOr","Fragment","BlocksTooltipProvider","useState","ActionLink","PanelLeftClose","PanelLeftOpen","X"],"mappings":"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","file":"chunk-DUUXZH5G.cjs","sourcesContent":["import { createContext, useContext } from 'react'\n\n/** Fixed strings of the sidebar family. Set once on `Sidebar.Root`; parts read them from context. */\nexport interface SidebarLabels {\n /** The sidebar's accessible name (the Root `aria-label` prop wins). */\n mainNavigation: string\n hideSidebar: string\n showSidebar: string\n /** The drawer's close button (the `closeLabel` prop wins). */\n closeNavigationMenu: string\n}\n\nexport const DEFAULT_SIDEBAR_LABELS: SidebarLabels = {\n mainNavigation: 'Main navigation',\n hideSidebar: 'Hide sidebar',\n showSidebar: 'Show sidebar',\n closeNavigationMenu: 'Close navigation menu',\n}\n\nexport interface SidebarContextValue {\n /** Labels are visible (full width), as opposed to the icon-only rail. */\n expanded: boolean\n labels: SidebarLabels\n}\nexport const SidebarContext = createContext<SidebarContextValue>({\n expanded: true,\n labels: DEFAULT_SIDEBAR_LABELS,\n})\nexport const useSidebarContext = (): SidebarContextValue => useContext(SidebarContext)\n\n/** True while the surrounding row is hovered/focused; trailing controls may brighten on it. */\nexport const SidebarRowHoverContext = createContext(false)\n","import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from 'react'\nimport { cn, Tooltip, TooltipContent, TooltipTrigger } from '@arbidocs/react/ui'\nimport { useSidebarContext } from './sidebar-context'\n\nexport interface SidebarBadgeRowProps extends Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n 'children'\n> {\n /** Glyph (20px). */\n icon: ReactNode\n /** Visible label of the expanded row; the tooltip of the icon-only rail. */\n label: string\n /** Unread/pending number. Hidden at 0 or `undefined`; values above 9 read \"9+\". */\n count?: number\n /**\n * Accessible name including the count, for example \"Notifications, 2 unread\". Defaults to\n * `label` plus the count.\n */\n ariaLabel?: string\n /**\n * `row`: a labelled row styled like the module rows, badge at the right. `icon`: icon-only with\n * the badge on the corner. Default follows the sidebar (`row` expanded, `icon` on the rail).\n */\n variant?: 'row' | 'icon'\n /** Test id of the count badge. */\n badgeTestId?: string\n}\n\n/**\n * A sidebar row that carries a badge and may open something (a panel, a popover): the\n * notifications and contacts rows above the account bar. A real button that forwards its ref and\n * rest props, so it can be a popover trigger (`<DropdownMenuTrigger asChild>`). The badge is\n * visible in both the expanded row and the icon-only rail, and the accessible name carries the\n * count in both.\n */\nexport const SidebarBadgeRow = forwardRef<HTMLButtonElement, SidebarBadgeRowProps>(\n function SidebarBadgeRow(\n { icon, label, count, ariaLabel, variant, badgeTestId, className, type = 'button', ...rest },\n ref\n ) {\n const { expanded } = useSidebarContext()\n const resolved = variant ?? (expanded ? 'row' : 'icon')\n const hasCount = count !== undefined && count > 0\n const badgeText = hasCount ? (count > 9 ? '9+' : String(count)) : null\n const name = ariaLabel ?? (hasCount ? `${label}, ${count}` : label)\n\n if (resolved === 'row') {\n return (\n <button\n ref={ref}\n type={type}\n aria-label={name}\n data-slot=\"sidebar-badge-row\"\n data-variant=\"row\"\n className={cn(\n 'group flex h-9 w-full cursor-pointer items-center rounded-md px-3 text-left text-sm font-medium text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:h-11',\n className\n )}\n {...rest}\n >\n <span className=\"flex size-5 flex-shrink-0 items-center justify-center\" aria-hidden>\n {icon}\n </span>\n <span className=\"ml-3 min-w-0 truncate\" aria-hidden>\n {label}\n </span>\n {badgeText && (\n <span\n aria-hidden\n data-testid={badgeTestId}\n className=\"ml-auto inline-flex min-w-5 flex-shrink-0 items-center justify-center rounded-full bg-primary px-1.5 text-xs font-semibold leading-5 tabular-nums text-primary-foreground\"\n >\n {badgeText}\n </span>\n )}\n </button>\n )\n }\n\n const iconButton = (\n <button\n ref={ref}\n type={type}\n aria-label={name}\n data-slot=\"sidebar-badge-row\"\n data-variant=\"icon\"\n title={variant === 'icon' ? label : undefined}\n className={cn(\n 'relative m-0 flex h-9 w-12 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:h-11',\n className\n )}\n {...rest}\n >\n <span className=\"flex size-5 items-center justify-center\" aria-hidden>\n {icon}\n </span>\n {badgeText && (\n <span\n aria-hidden\n data-testid={badgeTestId}\n className=\"absolute right-1 top-0.5 flex min-w-4 items-center justify-center rounded-full bg-primary px-1 text-xs font-semibold leading-4 tabular-nums text-primary-foreground\"\n >\n {badgeText}\n </span>\n )}\n </button>\n )\n // A standalone icon button (the page header) keeps its native title; the rail uses a tooltip.\n if (variant === 'icon') return iconButton\n return (\n <Tooltip delayDuration={50}>\n <TooltipTrigger asChild>{iconButton}</TooltipTrigger>\n <TooltipContent side=\"right\" sideOffset={8}>\n {label}\n </TooltipContent>\n </Tooltip>\n )\n }\n)\n","import { useEffect } from 'react'\n\n/**\n * The CSS custom property that carries how much of the screen's start (left) edge a docked sidebar\n * takes, set on `<html>`. A floating element pinned to the start corner (the install prompt)\n * positions itself `calc(var(--shell-start-inset, 0px) + 0.75rem)` so it never covers the\n * sidebar's footer (the account menu).\n */\nexport const SHELL_START_INSET_VAR = '--shell-start-inset'\n\nconst widths = new Map<symbol, number>()\n\nfunction apply(): void {\n if (typeof document === 'undefined') return\n const inset = Math.max(0, ...widths.values())\n const style = document.documentElement.style\n if (inset > 0) style.setProperty(SHELL_START_INSET_VAR, `${inset}px`)\n else style.removeProperty(SHELL_START_INSET_VAR)\n}\n\n/**\n * Report a sidebar docked at the start edge, `width` px wide (0 while it is collapsed or is an\n * overlay drawer), to {@link SHELL_START_INSET_VAR}. `Sidebar.Root` calls it; call it from your\n * own docked side panel.\n */\nexport function useShellStartInset(width: number): void {\n useEffect(() => {\n const key = Symbol('shell-start-inset')\n widths.set(key, width)\n apply()\n return () => {\n widths.delete(key)\n apply()\n }\n }, [width])\n}\n","import { useMemo, useRef, useState, type CSSProperties, type ReactNode } from 'react'\nimport { PanelLeftClose, PanelLeftOpen, X } from 'lucide-react'\nimport { cn, Tooltip, TooltipContent, TooltipTrigger } from '@arbidocs/react/ui'\nimport { testIdOr } from '../chat/test-id'\nimport {\n DEFAULT_SIDEBAR_LABELS,\n SidebarContext,\n SidebarRowHoverContext,\n useSidebarContext,\n type SidebarLabels,\n} from './sidebar-context'\nimport { SidebarBadgeRow } from './SidebarBadgeRow'\nimport { ActionLink } from '../components/ActionLink'\nimport { BlocksTooltipProvider } from '../provider/TooltipScope'\nimport { useDrawerBehavior } from '../lib/use-drawer'\nimport { useShellStartInset } from '../lib/start-inset'\nimport type { SidebarMode } from '../lib/sidebar-mode'\nimport type { NavItem, NavItemIndicator, NavSection } from './types'\n\n/**\n * Sidebar: the one tinted column that carries the app frame. Compound parts:\n * Sidebar.Root positioning shell for the four modes (drawer / collapsed / pinned / rail)\n * Sidebar.Header top block (switcher, ask field, pin toggle)\n * Sidebar.Nav the rows: pass `items` (NavItem[]) or compose Sidebar.NavItem children\n * Sidebar.Group a labelled run of rows (heading when expanded, divider on the rail)\n * Sidebar.Footer pinned to the bottom (offline pill, tips card, action cluster)\n * Sidebar.PinToggle / Sidebar.DrawerHeader the header's two stock controls\n *\n * Presentational and controlled: the app resolves `mode`/`expanded` (see `resolveSidebarLayout`\n * and `useSidebarSettle`) and owns where hover/pin/drawer state lives.\n */\n\nconst noop = () => {}\n\nconst COLLAPSED_PX = 64\nconst EXPANDED_PX = 256\nconst COLLAPSED_WIDTH = `${COLLAPSED_PX}px`\nconst EXPANDED_WIDTH = `${EXPANDED_PX}px`\n\nexport interface SidebarRootProps {\n /** Constrain the drawer to an embedded frame. The app keeps the viewport default. */\n contained?: boolean\n mode: SidebarMode\n /** Labels visible. Provided to every part through context. */\n expanded: boolean\n /** `rail` mode: floats open to full width. */\n isHovering?: boolean\n onBackdropClick?: () => void\n /** `rail` mode on touch: the floated-open rail dims the content behind it; tapping it closes. */\n hasRailBackdrop?: boolean\n onMouseEnter?: () => void\n onMouseLeave?: () => void\n children: ReactNode\n className?: string\n 'aria-label'?: string\n labels?: Partial<SidebarLabels>\n /** Root id (default `sidebar`). */\n 'data-testid'?: string\n /** Drawer backdrop id (default `sidebar-backdrop`). */\n backdropTestId?: string\n}\n\nfunction SidebarRoot({\n mode,\n contained = false,\n expanded,\n isHovering = false,\n onBackdropClick,\n hasRailBackdrop = false,\n onMouseEnter,\n onMouseLeave,\n children,\n className,\n 'aria-label': ariaLabelProp,\n labels,\n 'data-testid': testId,\n backdropTestId,\n}: SidebarRootProps) {\n const mergedLabels = useMemo(() => ({ ...DEFAULT_SIDEBAR_LABELS, ...labels }), [labels])\n // The drawer is a modal: scroll lock, Escape, focus trap and focus return to the opener.\n const drawerRef = useRef<HTMLDivElement>(null)\n const isDrawer = mode === 'drawer'\n useDrawerBehavior(isDrawer, onBackdropClick ?? noop, drawerRef)\n // Floating start-corner elements (the install prompt) sit clear of the docked sidebar; a rail\n // expanding on hover floats over the page, so only its collapsed width counts.\n useShellStartInset(mode === 'pinned' ? EXPANDED_PX : mode === 'rail' ? COLLAPSED_PX : 0)\n const ariaLabel = ariaLabelProp ?? mergedLabels.mainNavigation\n const contextValue = useMemo(() => ({ expanded, labels: mergedLabels }), [expanded, mergedLabels])\n // `navBase` omits horizontal padding so each mode owns its own: the collapsed state must\n // reach a true 0 width, which an `!important` px would block.\n const navBase =\n 'group/sidebar bg-sidebar border-r border-border text-foreground scrollbar-themed flex flex-col h-full overflow-y-auto overflow-x-hidden pb-safe pt-3 transition-all duration-300 ease-in-out'\n const common = {\n 'aria-label': ariaLabel,\n 'data-testid': testIdOr(testId, { testId: 'sidebar' }),\n 'data-slot': 'sidebar',\n 'data-mode': mode,\n } as const\n const fixedWidth: CSSProperties = { width: EXPANDED_WIDTH, minWidth: EXPANDED_WIDTH }\n\n let body: ReactNode\n if (mode === 'drawer') {\n // Small-screen off-canvas panel + dismiss backdrop; bypasses the hover/collapse model. The\n // wrapper is the modal dialog; the nav landmark sits inside it.\n body = (\n <div\n ref={drawerRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={ariaLabel}\n data-slot=\"sidebar-drawer\"\n className={cn(contained ? 'absolute' : 'fixed', 'inset-0 z-50')}\n >\n <div\n className=\"absolute inset-0 bg-black/50\"\n onClick={onBackdropClick}\n aria-hidden=\"true\"\n data-testid={testIdOr(backdropTestId, { testId: 'sidebar-backdrop' })}\n />\n <nav\n {...common}\n className={cn(navBase, '!px-3 absolute left-0 top-0 pt-safe shadow-xl', className)}\n style={fixedWidth}\n >\n {children}\n </nav>\n </div>\n )\n } else if (mode === 'collapsed') {\n // Stays mounted at width 0 so the transition runs on both enter and leave. Horizontal padding\n // is dropped or overflow-hidden would reveal a clipped sliver of the icons.\n body = (\n <nav\n {...common}\n className={cn(navBase, 'absolute left-0 top-0 z-[45]', className)}\n style={{\n width: '0px',\n minWidth: 0,\n paddingLeft: 0,\n paddingRight: 0,\n borderRightWidth: 0,\n pointerEvents: 'none',\n }}\n // Width 0 hides the links visually; inert also takes them out of the tab order and the\n // accessibility tree.\n inert\n >\n {children}\n </nav>\n )\n } else if (mode === 'pinned') {\n body = (\n <nav\n {...common}\n className={cn(navBase, '!px-3 relative flex-shrink-0', className)}\n style={fixedWidth}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n {children}\n </nav>\n )\n } else {\n // Rail: a permanent spacer keeps the flex layout still; the nav is always absolute so only\n // its width animates on hover (no layout jump).\n body = (\n <>\n <div\n className=\"bg-sidebar border-r border-border flex flex-col h-full relative px-0 pb-safe flex-shrink-0\"\n style={{ width: COLLAPSED_WIDTH, minWidth: COLLAPSED_WIDTH }}\n aria-hidden=\"true\"\n />\n {isHovering && hasRailBackdrop && (\n <div\n className=\"fixed inset-0 z-[44] bg-black/40\"\n onClick={onBackdropClick}\n aria-hidden=\"true\"\n data-testid={testIdOr(backdropTestId, { testId: 'sidebar-backdrop' })}\n />\n )}\n <nav\n {...common}\n className={cn(\n navBase,\n isHovering ? '!px-3 shadow-xl' : '!px-2',\n 'absolute left-0 top-0 z-[45]',\n className\n )}\n style={{\n width: isHovering ? EXPANDED_WIDTH : COLLAPSED_WIDTH,\n minWidth: isHovering ? EXPANDED_WIDTH : COLLAPSED_WIDTH,\n }}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n {children}\n </nav>\n </>\n )\n }\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <BlocksTooltipProvider>{body}</BlocksTooltipProvider>\n </SidebarContext.Provider>\n )\n}\n\nexport interface SidebarSectionProps {\n children: ReactNode\n className?: string\n 'data-testid'?: string\n}\n\nfunction SidebarHeader({ children, className, 'data-testid': testId }: SidebarSectionProps) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-testid={testId}\n className={cn('flex flex-shrink-0 flex-col gap-3 pb-3', className)}\n >\n {children}\n </div>\n )\n}\n\nexport interface SidebarNavProps extends Omit<SidebarSectionProps, 'children'> {\n children?: ReactNode\n /** Rows as data. Children render after them. */\n items?: NavItem[]\n /** Labelled groups of rows as data (each a `Sidebar.Group`), after `items`. */\n sections?: NavSection[]\n}\n\nfunction SidebarNav({\n items,\n sections,\n children,\n className,\n 'data-testid': testId,\n}: SidebarNavProps) {\n const { expanded } = useSidebarContext()\n return (\n <div\n data-slot=\"sidebar-nav\"\n data-testid={testId}\n className={cn('flex flex-shrink-0 flex-col gap-0.5', !expanded && 'items-center', className)}\n >\n {items?.map((item) => (\n <SidebarNavItem key={item.id} {...item} />\n ))}\n {sections?.map((section) => (\n <SidebarGroup\n key={section.id}\n label={section.label}\n ariaLabel={section.ariaLabel}\n data-testid={section.testId}\n >\n {section.items.map((item) => (\n <SidebarNavItem key={item.id} {...item} />\n ))}\n </SidebarGroup>\n ))}\n {children}\n </div>\n )\n}\n\nexport interface SidebarGroupProps extends SidebarSectionProps {\n /** Group heading. Shown above the rows when expanded; a thin divider stands in on the rail. */\n label?: ReactNode\n /** Accessible name when `label` is not plain text. */\n ariaLabel?: string\n}\n\n/** A labelled run of rows inside the nav (for example \"Workspace\", \"Tools\"). */\nfunction SidebarGroup({\n label,\n ariaLabel,\n children,\n className,\n 'data-testid': testId,\n}: SidebarGroupProps) {\n const { expanded } = useSidebarContext()\n return (\n <div\n role=\"group\"\n aria-label={ariaLabel ?? (typeof label === 'string' ? label : undefined)}\n data-slot=\"sidebar-group\"\n data-testid={testId}\n className={cn('flex flex-shrink-0 flex-col gap-0.5', !expanded && 'items-center', className)}\n >\n {label &&\n (expanded ? (\n <SidebarGroupLabel>{label}</SidebarGroupLabel>\n ) : (\n <div\n role=\"separator\"\n data-slot=\"sidebar-group-divider\"\n className=\"my-1 h-px w-6 bg-border\"\n />\n ))}\n {children}\n </div>\n )\n}\n\n/** The heading of a `Sidebar.Group` (exported for custom headings). Hidden by the group on the rail. */\nfunction SidebarGroupLabel({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div\n data-slot=\"sidebar-group-label\"\n className={cn(\n 'px-2 pb-0.5 pt-2 text-xs font-medium uppercase tracking-wide text-muted-foreground',\n className\n )}\n >\n {children}\n </div>\n )\n}\n\nfunction SidebarFooter({ children, className, 'data-testid': testId }: SidebarSectionProps) {\n const { expanded } = useSidebarContext()\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-testid={testId}\n className={cn(\n 'mt-auto flex flex-shrink-0 flex-col gap-2 pt-3 pb-3',\n !expanded && 'items-center',\n className\n )}\n >\n {children}\n </div>\n )\n}\n\nconst INDICATOR_TONES: Record<NavItemIndicator, string> = {\n progress: 'bg-primary',\n error: 'bg-red-solid',\n attention: 'bg-yellow-solid',\n}\n\nexport type SidebarNavItemProps = Omit<NavItem, 'id'> & {\n id?: string\n className?: string\n /** Tooltip shown on the icon-only rail; defaults to the label. */\n tooltip?: string\n}\n\n/**\n * One row: [icon] [label] [count] [trailing]. 36px (44px on coarse pointers). The active row is\n * the selection tint, never a filled block; counts are quiet numbers, not pills.\n *\n * The expanded row is a div with role=\"button\" (not a native <button>) so an interactive\n * `trailing` control can be nested without producing button-in-button markup.\n */\nfunction SidebarNavItem({\n label,\n icon,\n active = false,\n onSelect,\n href,\n count,\n countIcon,\n testId,\n disabled = false,\n trailing,\n indicator,\n className,\n tooltip,\n}: SidebarNavItemProps) {\n const { expanded } = useSidebarContext()\n // Tracked as state (not CSS :hover) so a trailing control can read it via context.\n const [isRowActive, setIsRowActive] = useState(false)\n const tip = expanded ? undefined : (tooltip ?? label)\n\n if (!expanded) {\n const railButton = (\n <ActionLink\n href={href}\n onSelect={onSelect}\n disabled={disabled}\n aria-label={label}\n aria-current={active ? 'page' : undefined}\n data-slot=\"sidebar-nav-item\"\n data-testid={testId}\n className={cn(\n 'm-0 flex h-9 w-12 items-center justify-center rounded-md transition-colors pointer-coarse:h-11',\n active\n ? 'bg-accent text-accent-foreground'\n : 'text-muted-foreground hover:bg-muted hover:text-foreground',\n disabled && 'pointer-events-none cursor-not-allowed opacity-30',\n className\n )}\n >\n <div className=\"flex size-5 items-center justify-center\">\n {indicator ? (\n <div className=\"relative\">\n {icon}\n <div\n data-slot=\"sidebar-nav-indicator\"\n data-tone={indicator}\n className={cn(\n 'absolute -right-1 -top-1 size-2.5 rounded-full border border-sidebar',\n INDICATOR_TONES[indicator]\n )}\n />\n </div>\n ) : (\n icon\n )}\n </div>\n </ActionLink>\n )\n if (!tip) return railButton\n return (\n <Tooltip delayDuration={50}>\n <TooltipTrigger asChild>{railButton}</TooltipTrigger>\n <TooltipContent side=\"right\" sideOffset={8}>\n {tip}\n </TooltipContent>\n </Tooltip>\n )\n }\n\n const rowClass = cn(\n 'group flex h-9 w-full cursor-pointer items-center rounded-md px-3 text-sm transition-colors pointer-coarse:h-11',\n active\n ? 'bg-accent font-semibold text-accent-foreground'\n : 'font-medium text-muted-foreground hover:bg-muted hover:text-foreground',\n disabled && 'pointer-events-none cursor-not-allowed opacity-30',\n className\n )\n const countNode = count !== undefined && (\n <span\n // `ml-auto` lines the counts up on the right edge as one column of numbers.\n className={cn(\n 'ml-auto inline-flex flex-shrink-0 items-center gap-0.5 pl-2 text-xs font-normal tabular-nums',\n active ? 'text-accent-foreground' : 'text-muted-foreground'\n )}\n >\n {countIcon}\n {count}\n </span>\n )\n\n // A link row without a nested control is the anchor itself.\n if (href && !disabled && !trailing) {\n return (\n <ActionLink\n href={href}\n onSelect={onSelect}\n aria-current={active ? 'page' : undefined}\n data-slot=\"sidebar-nav-item\"\n data-testid={testId}\n className={rowClass}\n >\n <div className=\"flex size-5 flex-shrink-0 items-center justify-center\">{icon}</div>\n <span className=\"ml-3 min-w-0 truncate text-left\">{label}</span>\n {countNode}\n </ActionLink>\n )\n }\n\n // A link row with a nested control: a stretched anchor sits under the content, and the\n // trailing control rises above it, so there is never an interactive element inside an anchor.\n if (href && !disabled) {\n return (\n <div\n onMouseEnter={() => setIsRowActive(true)}\n onMouseLeave={() => setIsRowActive(false)}\n onFocusCapture={() => setIsRowActive(true)}\n onBlurCapture={(e) => {\n if (!e.currentTarget.contains(e.relatedTarget as Node | null)) setIsRowActive(false)\n }}\n data-slot=\"sidebar-nav-item\"\n data-testid={testId}\n className={cn(rowClass, 'relative')}\n >\n <ActionLink\n href={href}\n onSelect={onSelect}\n aria-label={label}\n aria-current={active ? 'page' : undefined}\n className=\"absolute inset-0 rounded-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n />\n <div className=\"pointer-events-none flex min-w-0 flex-1 items-center\">\n <div className=\"flex size-5 flex-shrink-0 items-center justify-center\">{icon}</div>\n <span className=\"ml-3 min-w-0 truncate text-left\">{label}</span>\n {countNode}\n </div>\n <SidebarRowHoverContext.Provider value={isRowActive}>\n <span className=\"relative ml-2 flex flex-shrink-0 items-center\">{trailing}</span>\n </SidebarRowHoverContext.Provider>\n </div>\n )\n }\n\n return (\n <div\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-current={active ? 'page' : undefined}\n onClick={disabled ? undefined : onSelect}\n onMouseEnter={() => setIsRowActive(true)}\n onMouseLeave={() => setIsRowActive(false)}\n onFocusCapture={() => setIsRowActive(true)}\n onBlurCapture={(e) => {\n if (!e.currentTarget.contains(e.relatedTarget as Node | null)) setIsRowActive(false)\n }}\n onKeyDown={\n disabled\n ? undefined\n : (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onSelect()\n }\n }\n }\n data-slot=\"sidebar-nav-item\"\n data-testid={testId}\n className={rowClass}\n >\n <div className=\"flex size-5 flex-shrink-0 items-center justify-center\">{icon}</div>\n <span className=\"ml-3 min-w-0 truncate text-left\">{label}</span>\n {countNode}\n {trailing && (\n <SidebarRowHoverContext.Provider value={isRowActive}>\n <span className=\"ml-auto flex flex-shrink-0 items-center pl-2\">{trailing}</span>\n </SidebarRowHoverContext.Provider>\n )}\n </div>\n )\n}\n\nexport interface SidebarPinToggleProps {\n isPinned: boolean\n onToggle: () => void\n className?: string\n /** Default `sidebar-pin-button`. */\n 'data-testid'?: string\n}\n\n/**\n * Pin/unpin button, revealed while the pointer is over the sidebar. It is always visible on\n * coarse pointers (no hover on touch) and revealed by keyboard focus anywhere in the sidebar. It\n * is hidden with opacity and pointer-events, never display:none, so it keeps its accessible name\n * and stays in the tab order.\n */\nfunction SidebarPinToggle({\n isPinned,\n onToggle,\n className,\n 'data-testid': testId,\n}: SidebarPinToggleProps) {\n const { expanded, labels } = useSidebarContext()\n const label = isPinned ? labels.hideSidebar : labels.showSidebar\n return (\n <button\n type=\"button\"\n onClick={onToggle}\n title={label}\n aria-label={label}\n aria-pressed={isPinned}\n data-testid={testIdOr(testId, { testId: 'sidebar-pin-button' })}\n className={cn(\n 'flex flex-shrink-0 items-center justify-center rounded-md text-muted-foreground transition-[opacity,colors] hover:bg-muted hover:text-foreground pointer-coarse:size-11',\n 'pointer-events-none opacity-0 group-hover/sidebar:pointer-events-auto group-hover/sidebar:opacity-100',\n 'group-focus-within/sidebar:pointer-events-auto group-focus-within/sidebar:opacity-100',\n 'pointer-coarse:pointer-events-auto pointer-coarse:opacity-100 focus-visible:pointer-events-auto focus-visible:opacity-100',\n expanded ? 'size-9' : 'h-9 w-12',\n className\n )}\n >\n {isPinned ? <PanelLeftClose className=\"size-5\" /> : <PanelLeftOpen className=\"size-5\" />}\n </button>\n )\n}\n\nexport interface SidebarDrawerHeaderProps {\n /** Brand mark. */\n logo: ReactNode\n onClose: () => void\n closeLabel?: string\n /** Close button id (default `mobile-nav-close`). */\n 'data-testid'?: string\n}\n\n/** The phone drawer's header: brand mark and a 44px close button. */\nfunction SidebarDrawerHeader({\n logo,\n onClose,\n closeLabel: closeLabelProp,\n 'data-testid': testId,\n}: SidebarDrawerHeaderProps) {\n const { labels } = useSidebarContext()\n const closeLabel = closeLabelProp ?? labels.closeNavigationMenu\n return (\n <div\n data-slot=\"sidebar-drawer-header\"\n className=\"flex flex-shrink-0 items-center justify-between pb-2\"\n >\n {logo}\n <button\n type=\"button\"\n onClick={onClose}\n aria-label={closeLabel}\n data-testid={testIdOr(testId, { testId: 'mobile-nav-close' })}\n className=\"flex size-11 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\"\n >\n <X className=\"size-5\" />\n </button>\n </div>\n )\n}\n\nexport { DEFAULT_SIDEBAR_LABELS, SidebarRowHoverContext, useSidebarContext, type SidebarLabels }\n\nexport const Sidebar = {\n Root: SidebarRoot,\n Header: SidebarHeader,\n Nav: SidebarNav,\n Group: SidebarGroup,\n GroupLabel: SidebarGroupLabel,\n NavItem: SidebarNavItem,\n Footer: SidebarFooter,\n PinToggle: SidebarPinToggle,\n BadgeRow: SidebarBadgeRow,\n DrawerHeader: SidebarDrawerHeader,\n}\n"]}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useConnectedThreadActivity, useSelectWorkspace } from './chunk-
|
|
3
|
-
import { DocumentUser } from './chunk-
|
|
4
|
-
import { MessageJsonTree } from './chunk-ZZTH27G7.js';
|
|
2
|
+
import { useConnectedThreadActivity, useSelectWorkspace } from './chunk-OKB2L6IJ.js';
|
|
3
|
+
import { DocumentUser } from './chunk-7P6PSBFC.js';
|
|
5
4
|
import { buildFactCitations, citedVersionRef, chronologyFactBodies } from './chunk-KGUSKGZE.js';
|
|
6
|
-
import {
|
|
5
|
+
import { MessageJsonTree } from './chunk-7OBYAN4F.js';
|
|
6
|
+
import { ConnectedMarkdown, InternalDocLink, ExternalLink } from './chunk-QIB2277F.js';
|
|
7
7
|
import { ModalBreadcrumbHeader, ModalCrumbs } from './chunk-RC6VTY2H.js';
|
|
8
8
|
import { EntityTooltip, EntityTooltipHeader, EntityTooltipSection, EntityTooltipHint } from './chunk-3UIJLUXN.js';
|
|
9
|
-
import { ErrorBoundary } from './chunk-3EWS6ECM.js';
|
|
10
|
-
import { workspaceKindColor, MobileAppBar } from './chunk-SQJNSWDG.js';
|
|
11
|
-
import { Sidebar } from './chunk-U56BM4MK.js';
|
|
12
|
-
import { StepTraceSummary, StepTrace, getCurrentAgentStepPresentation, AssistantEntity, ThreadActivity, SubAgentLane, getAgentStepPresentation, stepAccent, MODEL_TIER_ICON_MAP, StepRow, StepNarration, StepSummary, StepDetail, StepOutcome, StepParams, GoalCriteria, SubStepGroup, MODEL_TIER_LABELS, fromPlanSteps, getModelIcon, SubagentRoster } from './chunk-2VH2PT3J.js';
|
|
13
|
-
import { DEFAULT_PASSWORD_RULES, promptSaveCredential, parseAuthError, splitAuthHash, withTrailingFragment } from './chunk-RPMSD32Q.js';
|
|
14
|
-
import { useTranscriptRuns, TranscriptEntry } from './chunk-64DMXUYS.js';
|
|
15
|
-
import { useConnectedWorkspace, useOptionalConnection, ConnectionProvider, useConnection } from './chunk-RE67IM5B.js';
|
|
16
|
-
import { useHost, ArbiHost } from './chunk-UMR5F7HD.js';
|
|
17
|
-
import { EmptyState } from './chunk-P6GHJSLR.js';
|
|
18
9
|
import { useLongPaste, useRecipientDraft, SlashMenu, ContextUsageBar, findMessageDocument, getParticipantTints, flashMessage, parseSlashTokenInProgress, buildSlashItems, filterSlashItems, copyMessageToClipboard, BranchControls, ThreadVisualizer, downloadTableAsCsv, ModelAutoIcon, ModelTierIcon, ModelDot, ModelPricingTip, ModelPickerPopover, ModelOption, ModelMenuDivider, ModelTierOption, ModelConfigureButton, ModelMenuMessage, ModelPickerTrigger, ModelTriggerContent, ModelOptionLabel } from './chunk-HS5CARZD.js';
|
|
19
10
|
import { Composer, MessageActionMenu, MessageActionButton, MessageFooter, MessageRoot, MessageContent, MessageAuthor, MessageBubble, MessageByline, MessageSubagentBadge, MessageBody, MessageNarration, useStreamAnnouncement, MessageList, WorkflowStepChip, MessageSources, ComposerContainer } from './chunk-CXRAY5J2.js';
|
|
11
|
+
import { ErrorBoundary } from './chunk-3EWS6ECM.js';
|
|
12
|
+
import { workspaceKindColor, MobileAppBar } from './chunk-LIW6ZZGB.js';
|
|
13
|
+
import { Sidebar } from './chunk-AMY36AMO.js';
|
|
20
14
|
import { workspaceDocIdFromHref } from './chunk-DDCMLHXF.js';
|
|
21
15
|
import { useCompactChat, CompactChatContext } from './chunk-5B74B62N.js';
|
|
16
|
+
import { StepTraceSummary, StepTrace, getCurrentAgentStepPresentation, AssistantEntity, ThreadActivity, SubAgentLane, getAgentStepPresentation, stepAccent, MODEL_TIER_ICON_MAP, StepRow, StepNarration, StepSummary, StepDetail, StepOutcome, StepParams, GoalCriteria, SubStepGroup, MODEL_TIER_LABELS, fromPlanSteps, getModelIcon, SubagentRoster } from './chunk-VUV3FCTJ.js';
|
|
22
17
|
import { useMentionAutocomplete, stepDocuments, stepKindOf } from './chunk-HMICW5O7.js';
|
|
23
18
|
import { stepStatesFromActivity, splitDocRef, stepPhase, mergeSkillWorkflows } from './chunk-3D7SX5ZS.js';
|
|
24
19
|
import { useListKeyNav, MentionMenu } from './chunk-GAGYAHYO.js';
|
|
20
|
+
import { DEFAULT_PASSWORD_RULES, promptSaveCredential, parseAuthError, splitAuthHash, withTrailingFragment } from './chunk-RPMSD32Q.js';
|
|
21
|
+
import { useTranscriptRuns, TranscriptEntry } from './chunk-ZFD53IT4.js';
|
|
22
|
+
import { useConnectedWorkspace, useOptionalConnection, ConnectionProvider, useConnection } from './chunk-RE67IM5B.js';
|
|
23
|
+
import { useHost, ArbiHost } from './chunk-UMR5F7HD.js';
|
|
25
24
|
import { buildDeepLinkPath } from './chunk-7Q5INDUS.js';
|
|
25
|
+
import { EmptyState } from './chunk-P6GHJSLR.js';
|
|
26
26
|
import { useBlocksEnvironment } from './chunk-6UFUXOON.js';
|
|
27
27
|
import React7, { memo, useMemo, createContext, forwardRef, useCallback, useRef, useLayoutEffect, useEffect, useState, useContext } from 'react';
|
|
28
28
|
import { Users, MessageCircleMore, ArrowUpRight, Send, Settings, Edit3, Copy, Link, Share2, Trash2, Check, Milestone, Clock, RotateCcw, FileText, Loader2, Network, ChevronRight, Download, MessageSquare, Square, ArrowDown, Paperclip, Upload, Search, Eye, X, LogIn, Plus, LogOut, ArrowLeft } from 'lucide-react';
|
|
@@ -4234,5 +4234,5 @@ function ArbiChat({ apiUrl, deploymentDomain, className, ...props }) {
|
|
|
4234
4234
|
}
|
|
4235
4235
|
|
|
4236
4236
|
export { AgentSteps, AnswerTable, ArbiChat, AskAgainContext, CompactLogin, ConnectedBranchControls, ConnectedCitationRenderer, ConnectedCompactConversation, ConnectedConversationDocumentPicker, ConnectedEmbeddedChat, ConnectedMessage, ConnectedMessageArea, ConnectedMessageList, ConnectedModelSelector, ConnectedThreadsPreview, ConnectedUserEntity, ConversationComposer2 as ConversationComposer, EmbeddedChatPanel, MessageDetailsModal, MessageLiveSeconds, PREMIUM_TIER_TAG, RunningSubagents, STANDARD_TIER_TAG, SourceChips, WorkflowStepMessage, backUpOnSignup, completeSsoSignIn, defaultHost, renderConnectedUser, resolveSsoName, ssoAccountStatus, useAuthPages, useLoginActions, useLoginForm, useModelPicker, useOpenChunk, useOpenWorkspaceIcon, useRegisterSubmitState, useSlashItems, useSsoSignIn, useWorkspaceDocTitles };
|
|
4237
|
-
//# sourceMappingURL=chunk-
|
|
4238
|
-
//# sourceMappingURL=chunk-
|
|
4237
|
+
//# sourceMappingURL=chunk-F3EJPRQP.js.map
|
|
4238
|
+
//# sourceMappingURL=chunk-F3EJPRQP.js.map
|