@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,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var chunkFBDGWGPG_cjs = require('./chunk-FBDGWGPG.cjs');
|
|
5
4
|
var chunkKQF7POTG_cjs = require('./chunk-KQF7POTG.cjs');
|
|
5
|
+
var chunkFBDGWGPG_cjs = require('./chunk-FBDGWGPG.cjs');
|
|
6
6
|
var chunkMHVNT4J3_cjs = require('./chunk-MHVNT4J3.cjs');
|
|
7
7
|
var lucideReact = require('lucide-react');
|
|
8
8
|
var ui = require('@arbidocs/react/ui');
|
|
@@ -350,5 +350,5 @@ exports.WorkspaceIdentity = WorkspaceIdentity;
|
|
|
350
350
|
exports.WorkspaceSwitcher = WorkspaceSwitcher;
|
|
351
351
|
exports.workspaceKindColor = workspaceKindColor;
|
|
352
352
|
exports.workspaceKindMeta = workspaceKindMeta;
|
|
353
|
-
//# sourceMappingURL=chunk-
|
|
354
|
-
//# sourceMappingURL=chunk-
|
|
353
|
+
//# sourceMappingURL=chunk-WDBA4RK3.cjs.map
|
|
354
|
+
//# sourceMappingURL=chunk-WDBA4RK3.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/shell/Workspace.tsx","../src/shell/MobileBars.tsx"],"names":["Globe","Users","Lock","jsxs","jsx","testIdOr","cn","Fragment","DropdownMenu","DropdownMenuTrigger","ChevronDown","DropdownMenuContent","DropdownMenuItem","LayoutGrid","Plus","DropdownMenuSeparator","DropdownMenuLabel","prefixedTestId","Menu","useRef","useShellBottomInset","ActionLink"],"mappings":"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","file":"chunk-HEMWXPNQ.cjs","sourcesContent":["import type { ComponentType } from 'react'\nimport { ChevronDown, Globe, LayoutGrid, Lock, Plus, Users } from 'lucide-react'\nimport {\n cn,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '@arbidocs/react/ui'\nimport { prefixedTestId, testIdOr } from '../chat/test-id'\nimport type { ShellRecentWorkspace, ShellWorkspace, ShellWorkspaceKind } from './types'\n\n/** The three workspace-kind names (badge title, type glyph name, subtitle). */\nexport interface WorkspaceKindLabels {\n common: string\n shared: string\n private: string\n}\n\nexport const DEFAULT_WORKSPACE_KIND_LABELS: WorkspaceKindLabels = {\n common: 'Common',\n shared: 'Shared',\n private: 'Private',\n}\n\n/**\n * Workspace type drives the initial-badge fill and a quiet secondary glyph:\n * private (just you) -> navy, lock shared (several) -> selection tint, people\n * common (public) -> neutral, globe\n * Navy is identity and cyan is reserved for ARBI/AI, so \"shared\" is the selection tint.\n */\nexport function workspaceKindMeta(\n kind: ShellWorkspaceKind,\n labels?: Partial<WorkspaceKindLabels>\n): {\n Icon: ComponentType<{ className?: string; 'aria-label'?: string; 'data-testid'?: string }>\n label: string\n fill: string\n} {\n const l = { ...DEFAULT_WORKSPACE_KIND_LABELS, ...labels }\n if (kind === 'common')\n return { Icon: Globe, label: l.common, fill: 'bg-muted text-muted-foreground' }\n if (kind === 'shared')\n return { Icon: Users, label: l.shared, fill: 'bg-secondary text-secondary-foreground' }\n return { Icon: Lock, label: l.private, fill: 'bg-primary text-primary-foreground' }\n}\n\n/** The kind's hue as a CSS colour, for glyphs painted by SVG fill (the workspace shield). */\nexport function workspaceKindColor(kind: ShellWorkspaceKind): string {\n if (kind === 'common') return 'var(--color-muted-foreground)'\n if (kind === 'shared') return 'var(--color-secondary)'\n return 'var(--color-primary)'\n}\n\n/** Overridable ids of the workspace identity; defaults are the current ids. */\ntype WorkspaceIdentityTestIds = Partial<Record<'initial' | 'type' | 'projectName', string>>\n\nexport interface WorkspaceIdentityProps {\n workspace: ShellWorkspace\n /** Show name + type/project line beside the badge; otherwise the badge alone. */\n expanded: boolean\n /** Selected (nav-row) styling of the name. */\n isActive?: boolean\n /** Reword the kind names. */\n labels?: Partial<WorkspaceKindLabels>\n /** Part ids; defaults are the current ids. */\n testIds?: WorkspaceIdentityTestIds\n}\n\n/**\n * Non-interactive guts of the workspace head: the initial badge (with a tiny type glyph) and,\n * when expanded, the name and the project/type line. Hosted by the switcher trigger and by the\n * workspace settings header, so it never nests a button.\n */\nexport function WorkspaceIdentity({\n workspace,\n expanded,\n isActive = false,\n labels,\n testIds,\n}: WorkspaceIdentityProps) {\n const kind = workspaceKindMeta(workspace.kind, labels)\n const badge = (\n <span className=\"relative flex flex-shrink-0\" title={kind.label}>\n <span\n aria-hidden=\"true\"\n data-testid={testIdOr(testIds?.initial, { testId: 'sidebar-workspace-card-initial' })}\n className={cn(\n 'flex size-7 flex-shrink-0 items-center justify-center rounded-md text-sm font-semibold leading-none',\n kind.fill\n )}\n >\n {workspace.name.charAt(0).toUpperCase()}\n </span>\n {/* Type as a tiny overlay on the badge: status reads at the icon, not after the name. */}\n <span className=\"absolute -bottom-1 -right-1 flex size-3.5 items-center justify-center rounded-full bg-background ring-1 ring-border\">\n <kind.Icon\n aria-label={kind.label}\n data-testid={testIdOr(testIds?.type, { testId: 'sidebar-workspace-card-type' })}\n className=\"size-2.5 text-muted-foreground\"\n />\n </span>\n </span>\n )\n\n if (!expanded)\n return <div className=\"flex flex-shrink-0 items-center justify-center\">{badge}</div>\n\n return (\n <>\n <div className=\"flex flex-shrink-0 items-center justify-center\">{badge}</div>\n <div className=\"ml-2.5 flex min-w-0 flex-1 flex-col text-left\">\n <span\n // 600: the name of the thing you are inside, above a lighter project line.\n className={cn(\n 'min-w-0 truncate text-left text-sm font-semibold capitalize leading-tight transition-colors duration-100',\n isActive ? 'text-accent-foreground' : 'text-foreground'\n )}\n >\n {workspace.name}\n </span>\n {!workspace.projectName && (\n <span className=\"mt-0.5 truncate text-xs text-muted-foreground\">{kind.label}</span>\n )}\n {workspace.projectName && (\n <span\n className=\"mt-0.5 flex min-w-0\"\n data-testid={testIdOr(testIds?.projectName, {\n testId: 'sidebar-workspace-card-project-name',\n })}\n >\n {workspace.projectLine ?? (\n <span className=\"truncate text-xs text-muted-foreground\">\n {workspace.projectName}\n </span>\n )}\n </span>\n )}\n </div>\n </>\n )\n}\n\n/**\n * Entity nouns plus the switcher's strings. `plural` arrives lowercased and `singular`\n * capitalized in the functions below.\n */\nexport interface WorkspaceSwitcherLabels extends WorkspaceKindLabels {\n /** Entity nouns, e.g. { plural: 'workspaces', singular: 'workspace' }. */\n plural: string\n singular: string\n /** The trigger's accessible name. */\n switchWorkspace: (name: string, plural: string) => string\n allWorkspaces: (plural: string) => string\n newWorkspace: (singular: string) => string\n recentWorkspaces: (plural: string) => string\n}\n\nexport const DEFAULT_WORKSPACE_SWITCHER_LABELS: WorkspaceSwitcherLabels = {\n ...DEFAULT_WORKSPACE_KIND_LABELS,\n plural: 'workspaces',\n singular: 'workspace',\n switchWorkspace: (name, plural) => `${name} — switch ${plural}`,\n allWorkspaces: (plural) => `All ${plural}`,\n newWorkspace: (singular) => `New ${singular}`,\n recentWorkspaces: (plural) => `Recent ${plural}`,\n}\n\nexport interface WorkspaceSwitcherProps {\n workspace: ShellWorkspace\n /** Other workspaces to jump to (the app orders and caps them). */\n recent?: ShellRecentWorkspace[]\n /** Icon-only trigger (the sidebar rail). */\n compact?: boolean\n /** `appbar`: the phone app bar's title, name + chevron on one line. */\n variant?: 'sidebar' | 'appbar'\n onSwitch: (workspace: ShellWorkspace) => void\n /** Return to the workspaces list; leaves the workspace open. */\n onGoToList: () => void\n onNewWorkspace: () => void\n /**\n * When set, \"New workspace\" is shown disabled with this explanation under it (e.g. the user may\n * not create workspaces on this deployment).\n */\n newWorkspaceDisabledReason?: string\n /** Entity nouns and menu strings; any subset (the nouns default to workspace(s)). */\n labels?: Partial<WorkspaceSwitcherLabels>\n className?: string\n /** Trigger id (default `workspace-switcher-trigger`). */\n testId?: string\n /**\n * Part ids; defaults are the current ids. `switchItem`, `type` and `lastSeen` are prefixes\n * (`<prefix>-<workspace id>`).\n */\n testIds?: Partial<Record<'menu' | 'all' | 'new' | 'switchItem' | 'type' | 'lastSeen', string>>\n /** Ids forwarded to the trigger's workspace identity. */\n identityTestIds?: WorkspaceIdentityTestIds\n}\n\n/**\n * The current-workspace control as a dropdown: \"All workspaces\", \"New workspace\", then the\n * recent workspaces to jump straight into.\n */\nexport function WorkspaceSwitcher({\n workspace,\n recent = [],\n compact = false,\n variant = 'sidebar',\n onSwitch,\n onGoToList,\n onNewWorkspace,\n newWorkspaceDisabledReason,\n labels,\n className,\n testId,\n testIds,\n identityTestIds,\n}: WorkspaceSwitcherProps) {\n const l = { ...DEFAULT_WORKSPACE_SWITCHER_LABELS, ...labels }\n const plural = l.plural.toLowerCase()\n const singular = l.singular.charAt(0).toUpperCase() + l.singular.slice(1)\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button\n type=\"button\"\n data-slot=\"workspace-switcher\"\n data-testid={testIdOr(testId, { testId: 'workspace-switcher-trigger' })}\n aria-label={l.switchWorkspace(workspace.name, plural)}\n className={cn(\n 'group flex min-w-0 items-center rounded-md transition-colors duration-100 hover:bg-muted focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring',\n variant === 'appbar'\n ? 'h-11 max-w-full gap-1 px-2'\n : compact\n ? 'h-12 w-12 justify-center'\n : 'h-12 w-full px-2',\n className\n )}\n >\n {variant === 'appbar' ? (\n <span className=\"min-w-0 truncate text-base font-semibold text-foreground\">\n {workspace.name}\n </span>\n ) : (\n <WorkspaceIdentity\n workspace={workspace}\n expanded={!compact}\n labels={l}\n testIds={identityTestIds}\n />\n )}\n {!(compact && variant === 'sidebar') && (\n <ChevronDown\n aria-hidden=\"true\"\n className=\"ml-auto size-4 flex-shrink-0 text-muted-foreground transition-transform duration-150 group-data-[state=open]:rotate-180\"\n />\n )}\n </button>\n </DropdownMenuTrigger>\n {/* Expanded menus follow the trigger width so they stay inside the sidebar. */}\n <DropdownMenuContent\n align=\"start\"\n className={cn(\n 'border-0 max-w-[calc(100vw-1.5rem)]',\n variant === 'sidebar' && !compact\n ? 'w-[var(--radix-dropdown-menu-trigger-width)]'\n : 'w-60'\n )}\n data-testid={testIdOr(testIds?.menu, { testId: 'workspace-switcher-menu' })}\n >\n <DropdownMenuItem\n onClick={onGoToList}\n data-testid={testIdOr(testIds?.all, { testId: 'workspace-switcher-all' })}\n className=\"gap-2\"\n >\n <LayoutGrid className=\"size-4 flex-shrink-0 text-muted-foreground\" />\n {l.allWorkspaces(plural)}\n </DropdownMenuItem>\n <DropdownMenuItem\n onClick={newWorkspaceDisabledReason ? undefined : onNewWorkspace}\n disabled={!!newWorkspaceDisabledReason}\n title={newWorkspaceDisabledReason}\n data-testid={testIdOr(testIds?.new, { testId: 'workspace-switcher-new' })}\n className=\"gap-2\"\n >\n <Plus className=\"size-4 flex-shrink-0 text-muted-foreground\" />\n <span className=\"flex min-w-0 flex-col\">\n {l.newWorkspace(singular)}\n {newWorkspaceDisabledReason && (\n <span className=\"text-xs text-muted-foreground\">{newWorkspaceDisabledReason}</span>\n )}\n </span>\n </DropdownMenuItem>\n {recent.length > 0 && (\n <>\n <DropdownMenuSeparator />\n <DropdownMenuLabel className=\"text-xs font-normal text-muted-foreground\">\n {l.recentWorkspaces(plural)}\n </DropdownMenuLabel>\n {recent.map((w) => {\n const kind = workspaceKindMeta(w.kind, l)\n return (\n <DropdownMenuItem\n key={w.id}\n onClick={() => onSwitch(w)}\n data-testid={prefixedTestId(testIds?.switchItem, w.id, {\n testId: `workspace-switch-${w.id}`,\n })}\n className=\"gap-2\"\n >\n <span className=\"relative flex flex-shrink-0\" title={kind.label}>\n <span\n aria-hidden=\"true\"\n className={cn(\n 'flex size-6 flex-shrink-0 items-center justify-center rounded text-xs font-semibold leading-none',\n kind.fill\n )}\n >\n {w.name.charAt(0).toUpperCase()}\n </span>\n <span className=\"absolute -bottom-1 -right-1 flex size-3 items-center justify-center rounded-full bg-background ring-1 ring-border\">\n <kind.Icon\n aria-label={kind.label}\n data-testid={prefixedTestId(testIds?.type, w.id, {\n testId: `workspace-type-${w.id}`,\n })}\n className=\"size-2 text-muted-foreground\"\n />\n </span>\n </span>\n <span className=\"min-w-0 flex-1 truncate capitalize\">{w.name}</span>\n {w.lastSeen && (\n <span\n className=\"ml-2 flex-shrink-0 text-xs tabular-nums text-muted-foreground\"\n data-testid={prefixedTestId(testIds?.lastSeen, w.id, {\n testId: `workspace-last-seen-${w.id}`,\n })}\n >\n {w.lastSeen}\n </span>\n )}\n </DropdownMenuItem>\n )\n })}\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n","import { useRef, type ReactNode } from 'react'\nimport { Menu } from 'lucide-react'\nimport { cn } from '@arbidocs/react/ui'\nimport { ActionLink } from '../components/ActionLink'\nimport { prefixedTestId, testIdOr } from '../chat/test-id'\nimport { useShellBottomInset } from '../lib/bottom-inset'\nimport type { NavItem } from './types'\n\n/** Fixed strings of the phone bars. */\nexport interface MobileBarsLabels {\n /** The menu button (the `menuLabel` prop wins). */\n openNavigationMenu: string\n /** The tab bar's accessible name (the `label` prop wins). */\n workspaceSections: string\n}\n\nexport const DEFAULT_MOBILE_BARS_LABELS: MobileBarsLabels = {\n openNavigationMenu: 'Open navigation menu',\n workspaceSections: 'Workspace sections',\n}\n\nexport interface MobileAppBarProps {\n /** Show the menu button that opens the drawer (nothing to open on a list page with no sidebar). */\n showMenu?: boolean\n onMenu?: () => void\n /** Replaces the brand mark (e.g. the workspace switcher). */\n title?: ReactNode\n /** Brand mark shown when there is no `title`. */\n logo?: ReactNode\n /** Right-aligned controls that fit (ask, offline pill, bell, account). */\n actions?: ReactNode\n menuLabel?: string\n labels?: Partial<Pick<MobileBarsLabels, 'openNavigationMenu'>>\n className?: string\n 'data-testid'?: string\n /** Menu button id (default `mobile-nav-toggle`). */\n menuTestId?: string\n}\n\n/**\n * The slim phone app bar (56px): menu button, a title slot and an actions slot. The app mounts\n * it only on small screens; the controls that do not fit live in the drawer.\n */\nexport function MobileAppBar({\n showMenu = true,\n onMenu,\n title,\n logo,\n actions,\n menuLabel,\n labels,\n className,\n 'data-testid': testId,\n menuTestId,\n}: MobileAppBarProps) {\n return (\n <div\n data-slot=\"mobile-app-bar\"\n data-testid={testId}\n className={cn(\n 'sm:hidden flex h-14 flex-shrink-0 items-center gap-1 bg-background pl-1 pr-2 pt-safe',\n className\n )}\n >\n {showMenu && (\n <button\n type=\"button\"\n onClick={onMenu}\n className=\"flex size-11 shrink-0 items-center justify-center rounded-md text-foreground transition-colors hover:bg-muted\"\n aria-label={\n menuLabel ?? labels?.openNavigationMenu ?? DEFAULT_MOBILE_BARS_LABELS.openNavigationMenu\n }\n data-testid={testIdOr(menuTestId, { testId: 'mobile-nav-toggle' })}\n >\n <Menu className=\"size-5\" />\n </button>\n )}\n <div className={cn('flex min-w-0 flex-1 items-center', !showMenu && 'pl-3')}>\n {title ?? logo}\n </div>\n {actions && <div className=\"flex shrink-0 items-center gap-0.5\">{actions}</div>}\n </div>\n )\n}\n\n/**\n * A tab's label. It wraps at word boundaries and is never clipped or cut with an ellipsis; a tab\n * narrower than 4.5rem sets it one size smaller so a long single word still fits, and an item with\n * a `shortLabel` shows that one while its tab is narrower than 5.5rem.\n */\nfunction TabLabel({ item }: { item: NavItem }) {\n const wrap =\n 'max-w-full text-balance px-0.5 text-center [overflow-wrap:normal] @max-[4.5rem]:text-[10px]'\n if (!item.shortLabel) return <span className={wrap}>{item.label}</span>\n return (\n <>\n <span data-slot=\"tab-short-label\" aria-hidden=\"true\" className={cn(wrap, '@[5.5rem]:hidden')}>\n {item.shortLabel}\n </span>\n <span className={cn(wrap, 'hidden @[5.5rem]:block')}>{item.label}</span>\n <span className=\"sr-only @[5.5rem]:hidden\">{item.label}</span>\n </>\n )\n}\n\nexport interface MobileTabBarProps {\n /** The workspace's main areas; test ids are `{testIdPrefix}-{id}` (prefix default `mobile-tab`). */\n items: NavItem[]\n label?: string\n labels?: Partial<Pick<MobileBarsLabels, 'workspaceSections'>>\n testIdPrefix?: string\n className?: string\n 'data-testid'?: string\n}\n\n/**\n * Phone bottom navigation: a 64px tinted bar of the main areas. The drawer carries the same\n * destinations with counts, so nothing is reachable only here. The app mounts it on small\n * screens only.\n */\nexport function MobileTabBar({\n items,\n label,\n labels,\n testIdPrefix,\n className,\n 'data-testid': testId,\n}: MobileTabBarProps) {\n const navRef = useRef<HTMLElement>(null)\n // Floating elements (install prompt, toasts) read the bar's height from `--shell-bottom-inset`.\n useShellBottomInset(navRef)\n return (\n <nav\n ref={navRef}\n aria-label={\n label ?? labels?.workspaceSections ?? DEFAULT_MOBILE_BARS_LABELS.workspaceSections\n }\n data-slot=\"mobile-tab-bar\"\n data-testid={testIdOr(testId, { testId: 'mobile-tab-bar' })}\n className={cn(\n 'flex min-h-16 flex-shrink-0 items-stretch bg-sidebar px-2 pb-safe sm:hidden',\n className\n )}\n >\n {items.map((item) => (\n <ActionLink\n key={item.id}\n href={item.href}\n onSelect={item.onSelect}\n disabled={item.disabled}\n aria-current={item.active ? 'page' : undefined}\n className={cn(\n // Each tab is a size container: a `shortLabel` replaces the label when it is narrow.\n '@container flex min-h-12 min-w-0 flex-1 flex-col items-center justify-center gap-0.5 rounded-md text-[11px] leading-tight transition-colors',\n item.active\n ? 'font-semibold text-primary'\n : 'font-medium text-muted-foreground hover:text-foreground'\n )}\n data-testid={prefixedTestId(testIdPrefix, item.id, { testId: `mobile-tab-${item.id}` })}\n >\n {item.icon}\n <TabLabel item={item} />\n </ActionLink>\n ))}\n </nav>\n )\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/shell/Workspace.tsx","../src/shell/MobileBars.tsx"],"names":["Globe","Users","Lock","jsxs","jsx","testIdOr","cn","Fragment","DropdownMenu","DropdownMenuTrigger","ChevronDown","DropdownMenuContent","DropdownMenuItem","LayoutGrid","Plus","DropdownMenuSeparator","DropdownMenuLabel","prefixedTestId","Menu","useRef","useShellBottomInset","ActionLink"],"mappings":"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","file":"chunk-WDBA4RK3.cjs","sourcesContent":["import type { ComponentType } from 'react'\nimport { ChevronDown, Globe, LayoutGrid, Lock, Plus, Users } from 'lucide-react'\nimport {\n cn,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '@arbidocs/react/ui'\nimport { prefixedTestId, testIdOr } from '../chat/test-id'\nimport type { ShellRecentWorkspace, ShellWorkspace, ShellWorkspaceKind } from './types'\n\n/** The three workspace-kind names (badge title, type glyph name, subtitle). */\nexport interface WorkspaceKindLabels {\n common: string\n shared: string\n private: string\n}\n\nexport const DEFAULT_WORKSPACE_KIND_LABELS: WorkspaceKindLabels = {\n common: 'Common',\n shared: 'Shared',\n private: 'Private',\n}\n\n/**\n * Workspace type drives the initial-badge fill and a quiet secondary glyph:\n * private (just you) -> navy, lock shared (several) -> selection tint, people\n * common (public) -> neutral, globe\n * Navy is identity and cyan is reserved for ARBI/AI, so \"shared\" is the selection tint.\n */\nexport function workspaceKindMeta(\n kind: ShellWorkspaceKind,\n labels?: Partial<WorkspaceKindLabels>\n): {\n Icon: ComponentType<{ className?: string; 'aria-label'?: string; 'data-testid'?: string }>\n label: string\n fill: string\n} {\n const l = { ...DEFAULT_WORKSPACE_KIND_LABELS, ...labels }\n if (kind === 'common')\n return { Icon: Globe, label: l.common, fill: 'bg-muted text-muted-foreground' }\n if (kind === 'shared')\n return { Icon: Users, label: l.shared, fill: 'bg-secondary text-secondary-foreground' }\n return { Icon: Lock, label: l.private, fill: 'bg-primary text-primary-foreground' }\n}\n\n/** The kind's hue as a CSS colour, for glyphs painted by SVG fill (the workspace shield). */\nexport function workspaceKindColor(kind: ShellWorkspaceKind): string {\n if (kind === 'common') return 'var(--color-muted-foreground)'\n if (kind === 'shared') return 'var(--color-secondary)'\n return 'var(--color-primary)'\n}\n\n/** Overridable ids of the workspace identity; defaults are the current ids. */\ntype WorkspaceIdentityTestIds = Partial<Record<'initial' | 'type' | 'projectName', string>>\n\nexport interface WorkspaceIdentityProps {\n workspace: ShellWorkspace\n /** Show name + type/project line beside the badge; otherwise the badge alone. */\n expanded: boolean\n /** Selected (nav-row) styling of the name. */\n isActive?: boolean\n /** Reword the kind names. */\n labels?: Partial<WorkspaceKindLabels>\n /** Part ids; defaults are the current ids. */\n testIds?: WorkspaceIdentityTestIds\n}\n\n/**\n * Non-interactive guts of the workspace head: the initial badge (with a tiny type glyph) and,\n * when expanded, the name and the project/type line. Hosted by the switcher trigger and by the\n * workspace settings header, so it never nests a button.\n */\nexport function WorkspaceIdentity({\n workspace,\n expanded,\n isActive = false,\n labels,\n testIds,\n}: WorkspaceIdentityProps) {\n const kind = workspaceKindMeta(workspace.kind, labels)\n const badge = (\n <span className=\"relative flex flex-shrink-0\" title={kind.label}>\n <span\n aria-hidden=\"true\"\n data-testid={testIdOr(testIds?.initial, { testId: 'sidebar-workspace-card-initial' })}\n className={cn(\n 'flex size-7 flex-shrink-0 items-center justify-center rounded-md text-sm font-semibold leading-none',\n kind.fill\n )}\n >\n {workspace.name.charAt(0).toUpperCase()}\n </span>\n {/* Type as a tiny overlay on the badge: status reads at the icon, not after the name. */}\n <span className=\"absolute -bottom-1 -right-1 flex size-3.5 items-center justify-center rounded-full bg-background ring-1 ring-border\">\n <kind.Icon\n aria-label={kind.label}\n data-testid={testIdOr(testIds?.type, { testId: 'sidebar-workspace-card-type' })}\n className=\"size-2.5 text-muted-foreground\"\n />\n </span>\n </span>\n )\n\n if (!expanded)\n return <div className=\"flex flex-shrink-0 items-center justify-center\">{badge}</div>\n\n return (\n <>\n <div className=\"flex flex-shrink-0 items-center justify-center\">{badge}</div>\n <div className=\"ml-2.5 flex min-w-0 flex-1 flex-col text-left\">\n <span\n // 600: the name of the thing you are inside, above a lighter project line.\n className={cn(\n 'min-w-0 truncate text-left text-sm font-semibold capitalize leading-tight transition-colors duration-100',\n isActive ? 'text-accent-foreground' : 'text-foreground'\n )}\n >\n {workspace.name}\n </span>\n {!workspace.projectName && (\n <span className=\"mt-0.5 truncate text-xs text-muted-foreground\">{kind.label}</span>\n )}\n {workspace.projectName && (\n <span\n className=\"mt-0.5 flex min-w-0\"\n data-testid={testIdOr(testIds?.projectName, {\n testId: 'sidebar-workspace-card-project-name',\n })}\n >\n {workspace.projectLine ?? (\n <span className=\"truncate text-xs text-muted-foreground\">\n {workspace.projectName}\n </span>\n )}\n </span>\n )}\n </div>\n </>\n )\n}\n\n/**\n * Entity nouns plus the switcher's strings. `plural` arrives lowercased and `singular`\n * capitalized in the functions below.\n */\nexport interface WorkspaceSwitcherLabels extends WorkspaceKindLabels {\n /** Entity nouns, e.g. { plural: 'workspaces', singular: 'workspace' }. */\n plural: string\n singular: string\n /** The trigger's accessible name. */\n switchWorkspace: (name: string, plural: string) => string\n allWorkspaces: (plural: string) => string\n newWorkspace: (singular: string) => string\n recentWorkspaces: (plural: string) => string\n}\n\nexport const DEFAULT_WORKSPACE_SWITCHER_LABELS: WorkspaceSwitcherLabels = {\n ...DEFAULT_WORKSPACE_KIND_LABELS,\n plural: 'workspaces',\n singular: 'workspace',\n switchWorkspace: (name, plural) => `${name} — switch ${plural}`,\n allWorkspaces: (plural) => `All ${plural}`,\n newWorkspace: (singular) => `New ${singular}`,\n recentWorkspaces: (plural) => `Recent ${plural}`,\n}\n\nexport interface WorkspaceSwitcherProps {\n workspace: ShellWorkspace\n /** Other workspaces to jump to (the app orders and caps them). */\n recent?: ShellRecentWorkspace[]\n /** Icon-only trigger (the sidebar rail). */\n compact?: boolean\n /** `appbar`: the phone app bar's title, name + chevron on one line. */\n variant?: 'sidebar' | 'appbar'\n onSwitch: (workspace: ShellWorkspace) => void\n /** Return to the workspaces list; leaves the workspace open. */\n onGoToList: () => void\n onNewWorkspace: () => void\n /**\n * When set, \"New workspace\" is shown disabled with this explanation under it (e.g. the user may\n * not create workspaces on this deployment).\n */\n newWorkspaceDisabledReason?: string\n /** Entity nouns and menu strings; any subset (the nouns default to workspace(s)). */\n labels?: Partial<WorkspaceSwitcherLabels>\n className?: string\n /** Trigger id (default `workspace-switcher-trigger`). */\n testId?: string\n /**\n * Part ids; defaults are the current ids. `switchItem`, `type` and `lastSeen` are prefixes\n * (`<prefix>-<workspace id>`).\n */\n testIds?: Partial<Record<'menu' | 'all' | 'new' | 'switchItem' | 'type' | 'lastSeen', string>>\n /** Ids forwarded to the trigger's workspace identity. */\n identityTestIds?: WorkspaceIdentityTestIds\n}\n\n/**\n * The current-workspace control as a dropdown: \"All workspaces\", \"New workspace\", then the\n * recent workspaces to jump straight into.\n */\nexport function WorkspaceSwitcher({\n workspace,\n recent = [],\n compact = false,\n variant = 'sidebar',\n onSwitch,\n onGoToList,\n onNewWorkspace,\n newWorkspaceDisabledReason,\n labels,\n className,\n testId,\n testIds,\n identityTestIds,\n}: WorkspaceSwitcherProps) {\n const l = { ...DEFAULT_WORKSPACE_SWITCHER_LABELS, ...labels }\n const plural = l.plural.toLowerCase()\n const singular = l.singular.charAt(0).toUpperCase() + l.singular.slice(1)\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button\n type=\"button\"\n data-slot=\"workspace-switcher\"\n data-testid={testIdOr(testId, { testId: 'workspace-switcher-trigger' })}\n aria-label={l.switchWorkspace(workspace.name, plural)}\n className={cn(\n 'group flex min-w-0 items-center rounded-md transition-colors duration-100 hover:bg-muted focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring',\n variant === 'appbar'\n ? 'h-11 max-w-full gap-1 px-2'\n : compact\n ? 'h-12 w-12 justify-center'\n : 'h-12 w-full px-2',\n className\n )}\n >\n {variant === 'appbar' ? (\n <span className=\"min-w-0 truncate text-base font-semibold text-foreground\">\n {workspace.name}\n </span>\n ) : (\n <WorkspaceIdentity\n workspace={workspace}\n expanded={!compact}\n labels={l}\n testIds={identityTestIds}\n />\n )}\n {!(compact && variant === 'sidebar') && (\n <ChevronDown\n aria-hidden=\"true\"\n className=\"ml-auto size-4 flex-shrink-0 text-muted-foreground transition-transform duration-150 group-data-[state=open]:rotate-180\"\n />\n )}\n </button>\n </DropdownMenuTrigger>\n {/* Expanded menus follow the trigger width so they stay inside the sidebar. */}\n <DropdownMenuContent\n align=\"start\"\n className={cn(\n 'border-0 max-w-[calc(100vw-1.5rem)]',\n variant === 'sidebar' && !compact\n ? 'w-[var(--radix-dropdown-menu-trigger-width)]'\n : 'w-60'\n )}\n data-testid={testIdOr(testIds?.menu, { testId: 'workspace-switcher-menu' })}\n >\n <DropdownMenuItem\n onClick={onGoToList}\n data-testid={testIdOr(testIds?.all, { testId: 'workspace-switcher-all' })}\n className=\"gap-2\"\n >\n <LayoutGrid className=\"size-4 flex-shrink-0 text-muted-foreground\" />\n {l.allWorkspaces(plural)}\n </DropdownMenuItem>\n <DropdownMenuItem\n onClick={newWorkspaceDisabledReason ? undefined : onNewWorkspace}\n disabled={!!newWorkspaceDisabledReason}\n title={newWorkspaceDisabledReason}\n data-testid={testIdOr(testIds?.new, { testId: 'workspace-switcher-new' })}\n className=\"gap-2\"\n >\n <Plus className=\"size-4 flex-shrink-0 text-muted-foreground\" />\n <span className=\"flex min-w-0 flex-col\">\n {l.newWorkspace(singular)}\n {newWorkspaceDisabledReason && (\n <span className=\"text-xs text-muted-foreground\">{newWorkspaceDisabledReason}</span>\n )}\n </span>\n </DropdownMenuItem>\n {recent.length > 0 && (\n <>\n <DropdownMenuSeparator />\n <DropdownMenuLabel className=\"text-xs font-normal text-muted-foreground\">\n {l.recentWorkspaces(plural)}\n </DropdownMenuLabel>\n {recent.map((w) => {\n const kind = workspaceKindMeta(w.kind, l)\n return (\n <DropdownMenuItem\n key={w.id}\n onClick={() => onSwitch(w)}\n data-testid={prefixedTestId(testIds?.switchItem, w.id, {\n testId: `workspace-switch-${w.id}`,\n })}\n className=\"gap-2\"\n >\n <span className=\"relative flex flex-shrink-0\" title={kind.label}>\n <span\n aria-hidden=\"true\"\n className={cn(\n 'flex size-6 flex-shrink-0 items-center justify-center rounded text-xs font-semibold leading-none',\n kind.fill\n )}\n >\n {w.name.charAt(0).toUpperCase()}\n </span>\n <span className=\"absolute -bottom-1 -right-1 flex size-3 items-center justify-center rounded-full bg-background ring-1 ring-border\">\n <kind.Icon\n aria-label={kind.label}\n data-testid={prefixedTestId(testIds?.type, w.id, {\n testId: `workspace-type-${w.id}`,\n })}\n className=\"size-2 text-muted-foreground\"\n />\n </span>\n </span>\n <span className=\"min-w-0 flex-1 truncate capitalize\">{w.name}</span>\n {w.lastSeen && (\n <span\n className=\"ml-2 flex-shrink-0 text-xs tabular-nums text-muted-foreground\"\n data-testid={prefixedTestId(testIds?.lastSeen, w.id, {\n testId: `workspace-last-seen-${w.id}`,\n })}\n >\n {w.lastSeen}\n </span>\n )}\n </DropdownMenuItem>\n )\n })}\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n","import { useRef, type ReactNode } from 'react'\nimport { Menu } from 'lucide-react'\nimport { cn } from '@arbidocs/react/ui'\nimport { ActionLink } from '../components/ActionLink'\nimport { prefixedTestId, testIdOr } from '../chat/test-id'\nimport { useShellBottomInset } from '../lib/bottom-inset'\nimport type { NavItem } from './types'\n\n/** Fixed strings of the phone bars. */\nexport interface MobileBarsLabels {\n /** The menu button (the `menuLabel` prop wins). */\n openNavigationMenu: string\n /** The tab bar's accessible name (the `label` prop wins). */\n workspaceSections: string\n}\n\nexport const DEFAULT_MOBILE_BARS_LABELS: MobileBarsLabels = {\n openNavigationMenu: 'Open navigation menu',\n workspaceSections: 'Workspace sections',\n}\n\nexport interface MobileAppBarProps {\n /** Show the menu button that opens the drawer (nothing to open on a list page with no sidebar). */\n showMenu?: boolean\n onMenu?: () => void\n /** Replaces the brand mark (e.g. the workspace switcher). */\n title?: ReactNode\n /** Brand mark shown when there is no `title`. */\n logo?: ReactNode\n /** Right-aligned controls that fit (ask, offline pill, bell, account). */\n actions?: ReactNode\n menuLabel?: string\n labels?: Partial<Pick<MobileBarsLabels, 'openNavigationMenu'>>\n className?: string\n 'data-testid'?: string\n /** Menu button id (default `mobile-nav-toggle`). */\n menuTestId?: string\n}\n\n/**\n * The slim phone app bar (56px): menu button, a title slot and an actions slot. The app mounts\n * it only on small screens; the controls that do not fit live in the drawer.\n */\nexport function MobileAppBar({\n showMenu = true,\n onMenu,\n title,\n logo,\n actions,\n menuLabel,\n labels,\n className,\n 'data-testid': testId,\n menuTestId,\n}: MobileAppBarProps) {\n return (\n <div\n data-slot=\"mobile-app-bar\"\n data-testid={testId}\n className={cn(\n 'sm:hidden flex h-14 flex-shrink-0 items-center gap-1 bg-background pl-1 pr-2 pt-safe',\n className\n )}\n >\n {showMenu && (\n <button\n type=\"button\"\n onClick={onMenu}\n className=\"flex size-11 shrink-0 items-center justify-center rounded-md text-foreground transition-colors hover:bg-muted\"\n aria-label={\n menuLabel ?? labels?.openNavigationMenu ?? DEFAULT_MOBILE_BARS_LABELS.openNavigationMenu\n }\n data-testid={testIdOr(menuTestId, { testId: 'mobile-nav-toggle' })}\n >\n <Menu className=\"size-5\" />\n </button>\n )}\n <div className={cn('flex min-w-0 flex-1 items-center', !showMenu && 'pl-3')}>\n {title ?? logo}\n </div>\n {actions && <div className=\"flex shrink-0 items-center gap-0.5\">{actions}</div>}\n </div>\n )\n}\n\n/**\n * A tab's label. It wraps at word boundaries and is never clipped or cut with an ellipsis; a tab\n * narrower than 4.5rem sets it one size smaller so a long single word still fits, and an item with\n * a `shortLabel` shows that one while its tab is narrower than 5.5rem.\n */\nfunction TabLabel({ item }: { item: NavItem }) {\n const wrap =\n 'max-w-full text-balance px-0.5 text-center [overflow-wrap:normal] @max-[4.5rem]:text-[10px]'\n if (!item.shortLabel) return <span className={wrap}>{item.label}</span>\n return (\n <>\n <span data-slot=\"tab-short-label\" aria-hidden=\"true\" className={cn(wrap, '@[5.5rem]:hidden')}>\n {item.shortLabel}\n </span>\n <span className={cn(wrap, 'hidden @[5.5rem]:block')}>{item.label}</span>\n <span className=\"sr-only @[5.5rem]:hidden\">{item.label}</span>\n </>\n )\n}\n\nexport interface MobileTabBarProps {\n /** The workspace's main areas; test ids are `{testIdPrefix}-{id}` (prefix default `mobile-tab`). */\n items: NavItem[]\n label?: string\n labels?: Partial<Pick<MobileBarsLabels, 'workspaceSections'>>\n testIdPrefix?: string\n className?: string\n 'data-testid'?: string\n}\n\n/**\n * Phone bottom navigation: a 64px tinted bar of the main areas. The drawer carries the same\n * destinations with counts, so nothing is reachable only here. The app mounts it on small\n * screens only.\n */\nexport function MobileTabBar({\n items,\n label,\n labels,\n testIdPrefix,\n className,\n 'data-testid': testId,\n}: MobileTabBarProps) {\n const navRef = useRef<HTMLElement>(null)\n // Floating elements (install prompt, toasts) read the bar's height from `--shell-bottom-inset`.\n useShellBottomInset(navRef)\n return (\n <nav\n ref={navRef}\n aria-label={\n label ?? labels?.workspaceSections ?? DEFAULT_MOBILE_BARS_LABELS.workspaceSections\n }\n data-slot=\"mobile-tab-bar\"\n data-testid={testIdOr(testId, { testId: 'mobile-tab-bar' })}\n className={cn(\n 'flex min-h-16 flex-shrink-0 items-stretch bg-sidebar px-2 pb-safe sm:hidden',\n className\n )}\n >\n {items.map((item) => (\n <ActionLink\n key={item.id}\n href={item.href}\n onSelect={item.onSelect}\n disabled={item.disabled}\n aria-current={item.active ? 'page' : undefined}\n className={cn(\n // Each tab is a size container: a `shortLabel` replaces the label when it is narrow.\n '@container flex min-h-12 min-w-0 flex-1 flex-col items-center justify-center gap-0.5 rounded-md text-[11px] leading-tight transition-colors',\n item.active\n ? 'font-semibold text-primary'\n : 'font-medium text-muted-foreground hover:text-foreground'\n )}\n data-testid={prefixedTestId(testIdPrefix, item.id, { testId: `mobile-tab-${item.id}` })}\n >\n {item.icon}\n <TabLabel item={item} />\n </ActionLink>\n ))}\n </nav>\n )\n}\n"]}
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
|
|
4
4
|
var chunkXFL67STW_cjs = require('./chunk-XFL67STW.cjs');
|
|
5
5
|
var chunk2WLXQGWC_cjs = require('./chunk-2WLXQGWC.cjs');
|
|
6
|
-
var chunkQUMUAJ2P_cjs = require('./chunk-QUMUAJ2P.cjs');
|
|
7
6
|
var chunkXQJITRBV_cjs = require('./chunk-XQJITRBV.cjs');
|
|
8
7
|
var chunkVPPX5XUF_cjs = require('./chunk-VPPX5XUF.cjs');
|
|
9
8
|
var chunkRC25WMVB_cjs = require('./chunk-RC25WMVB.cjs');
|
|
10
9
|
var chunkV4ISCZJ7_cjs = require('./chunk-V4ISCZJ7.cjs');
|
|
11
10
|
var chunk2EI7NCUA_cjs = require('./chunk-2EI7NCUA.cjs');
|
|
11
|
+
var chunkQUMUAJ2P_cjs = require('./chunk-QUMUAJ2P.cjs');
|
|
12
12
|
var chunkWVEFRQSW_cjs = require('./chunk-WVEFRQSW.cjs');
|
|
13
13
|
var chunkPPCATBOY_cjs = require('./chunk-PPCATBOY.cjs');
|
|
14
14
|
var chunkMHVNT4J3_cjs = require('./chunk-MHVNT4J3.cjs');
|
|
@@ -1996,5 +1996,5 @@ exports.ISO_DATE_FILTER_PARAMS = ISO_DATE_FILTER_PARAMS;
|
|
|
1996
1996
|
exports.createFactColumns = createFactColumns;
|
|
1997
1997
|
exports.enableFactTableColumnResize = enableFactTableColumnResize;
|
|
1998
1998
|
exports.sourceDocCount = sourceDocCount;
|
|
1999
|
-
//# sourceMappingURL=chunk-
|
|
2000
|
-
//# sourceMappingURL=chunk-
|
|
1999
|
+
//# sourceMappingURL=chunk-X2VBA4XG.cjs.map
|
|
2000
|
+
//# sourceMappingURL=chunk-X2VBA4XG.cjs.map
|