@arbidocs/blocks 0.4.153 → 0.4.155
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/{ConnectedNativeDocxComparison-OFPIXNJB.js → ConnectedNativeDocxComparison-OLWRQSRS.js} +11 -11
- package/dist/{ConnectedNativeDocxComparison-OFPIXNJB.js.map → ConnectedNativeDocxComparison-OLWRQSRS.js.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-Y5BNLNH6.cjs → ConnectedNativeDocxComparison-YORMOPPN.cjs} +12 -12
- package/dist/{ConnectedNativeDocxComparison-Y5BNLNH6.cjs.map → ConnectedNativeDocxComparison-YORMOPPN.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-LRYU5HPA.js → ConnectedNativeDocxEditor-34EBIIFS.js} +10 -10
- package/dist/{ConnectedNativeDocxEditor-LRYU5HPA.js.map → ConnectedNativeDocxEditor-34EBIIFS.js.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-HTEW5JAH.cjs → ConnectedNativeDocxEditor-EHTWGGX3.cjs} +12 -12
- package/dist/{ConnectedNativeDocxEditor-HTEW5JAH.cjs.map → ConnectedNativeDocxEditor-EHTWGGX3.cjs.map} +1 -1
- package/dist/{ConnectedStreamedWordArtifact-QW74LKHN.cjs → ConnectedStreamedWordArtifact-5DK6QGYN.cjs} +12 -12
- package/dist/ConnectedStreamedWordArtifact-5DK6QGYN.cjs.map +1 -0
- package/dist/{ConnectedStreamedWordArtifact-QAUVUCSX.js → ConnectedStreamedWordArtifact-GLIDLSAS.js} +11 -11
- package/dist/{ConnectedStreamedWordArtifact-QAUVUCSX.js.map → ConnectedStreamedWordArtifact-GLIDLSAS.js.map} +1 -1
- package/dist/WorkspaceTableView-5OWX53R5.js +376 -0
- package/dist/WorkspaceTableView-5OWX53R5.js.map +1 -0
- package/dist/WorkspaceTableView-ZFMAYHUD.cjs +378 -0
- package/dist/WorkspaceTableView-ZFMAYHUD.cjs.map +1 -0
- package/dist/agents/index.cjs +282 -282
- package/dist/agents/index.js +7 -7
- package/dist/{chunk-RQ2Y7USX.cjs → chunk-2VHYOTWW.cjs} +3 -3
- package/dist/chunk-2VHYOTWW.cjs.map +1 -0
- package/dist/{chunk-DTROMMDX.cjs → chunk-3VULDTNL.cjs} +4 -4
- package/dist/{chunk-DTROMMDX.cjs.map → chunk-3VULDTNL.cjs.map} +1 -1
- package/dist/{chunk-UTTTJSQU.cjs → chunk-4RPBUMHB.cjs} +4 -4
- package/dist/{chunk-UTTTJSQU.cjs.map → chunk-4RPBUMHB.cjs.map} +1 -1
- package/dist/chunk-53RCZPMR.cjs +496 -0
- package/dist/chunk-53RCZPMR.cjs.map +1 -0
- package/dist/chunk-5TDGVOR5.js +142 -0
- package/dist/chunk-5TDGVOR5.js.map +1 -0
- package/dist/chunk-6HMCF4AJ.js +1720 -0
- package/dist/chunk-6HMCF4AJ.js.map +1 -0
- package/dist/{chunk-CU2O32Z4.cjs → chunk-6QAAIDQQ.cjs} +62 -99
- package/dist/chunk-6QAAIDQQ.cjs.map +1 -0
- package/dist/chunk-7HHYMDPE.js +431 -0
- package/dist/chunk-7HHYMDPE.js.map +1 -0
- package/dist/{chunk-SMN32BQ3.cjs → chunk-7NL6WJER.cjs} +3 -160
- package/dist/chunk-7NL6WJER.cjs.map +1 -0
- package/dist/{chunk-IXWJGOM2.js → chunk-BQ77KSXU.js} +3 -3
- package/dist/{chunk-IXWJGOM2.js.map → chunk-BQ77KSXU.js.map} +1 -1
- package/dist/chunk-BTF4AZMG.js +148 -0
- package/dist/chunk-BTF4AZMG.js.map +1 -0
- package/dist/{chunk-HALD6ZB5.cjs → chunk-C3SMTA3C.cjs} +4 -4
- package/dist/{chunk-HALD6ZB5.cjs.map → chunk-C3SMTA3C.cjs.map} +1 -1
- package/dist/{chunk-GAYMJWTC.cjs → chunk-CB4TIDEX.cjs} +6 -6
- package/dist/{chunk-GAYMJWTC.cjs.map → chunk-CB4TIDEX.cjs.map} +1 -1
- package/dist/{chunk-KPZZ5FHE.cjs → chunk-CNHUJRQ4.cjs} +10 -6
- package/dist/chunk-CNHUJRQ4.cjs.map +1 -0
- package/dist/{chunk-Q4BY2CQQ.cjs → chunk-CQCNU5KT.cjs} +28 -28
- package/dist/{chunk-Q4BY2CQQ.cjs.map → chunk-CQCNU5KT.cjs.map} +1 -1
- package/dist/{chunk-GRGS5M6O.cjs → chunk-CROGFB46.cjs} +160 -3
- package/dist/chunk-CROGFB46.cjs.map +1 -0
- package/dist/{chunk-QN47Q4N7.js → chunk-CU6LDQ57.js} +3 -3
- package/dist/{chunk-QN47Q4N7.js.map → chunk-CU6LDQ57.js.map} +1 -1
- package/dist/{chunk-EF4ZLKRM.js → chunk-DEPF5LQI.js} +3 -3
- package/dist/{chunk-EF4ZLKRM.js.map → chunk-DEPF5LQI.js.map} +1 -1
- package/dist/{chunk-JAANWQGB.js → chunk-ETZ5A3GU.js} +3 -3
- package/dist/{chunk-JAANWQGB.js.map → chunk-ETZ5A3GU.js.map} +1 -1
- package/dist/{chunk-TBEVGWY3.js → chunk-F57LNUSZ.js} +10 -6
- package/dist/chunk-F57LNUSZ.js.map +1 -0
- package/dist/{chunk-GFNELPDP.cjs → chunk-FM3IRQJW.cjs} +10 -5
- package/dist/chunk-FM3IRQJW.cjs.map +1 -0
- package/dist/chunk-FPHTSNOE.js +465 -0
- package/dist/chunk-FPHTSNOE.js.map +1 -0
- package/dist/{chunk-OVR3XMYL.js → chunk-FYZXDZM7.js} +3 -3
- package/dist/{chunk-OVR3XMYL.js.map → chunk-FYZXDZM7.js.map} +1 -1
- package/dist/{chunk-2FLWPM3B.cjs → chunk-GC2FSPSQ.cjs} +7 -7
- package/dist/{chunk-2FLWPM3B.cjs.map → chunk-GC2FSPSQ.cjs.map} +1 -1
- package/dist/{chunk-DB2OXRQC.js → chunk-GO3BN76C.js} +7 -7
- package/dist/{chunk-DB2OXRQC.js.map → chunk-GO3BN76C.js.map} +1 -1
- package/dist/{chunk-XZIYRKLW.cjs → chunk-H32DV7XS.cjs} +5 -139
- package/dist/chunk-H32DV7XS.cjs.map +1 -0
- package/dist/{chunk-4236BRZK.js → chunk-HP2C4MD3.js} +29 -3
- package/dist/chunk-HP2C4MD3.js.map +1 -0
- package/dist/{chunk-ZP6Q3KXU.cjs → chunk-HUATKA3M.cjs} +4 -4
- package/dist/{chunk-ZP6Q3KXU.cjs.map → chunk-HUATKA3M.cjs.map} +1 -1
- package/dist/chunk-ISHFVKVU.js +304 -0
- package/dist/chunk-ISHFVKVU.js.map +1 -0
- package/dist/chunk-JUUOJP7I.cjs +164 -0
- package/dist/chunk-JUUOJP7I.cjs.map +1 -0
- package/dist/{chunk-4KMLM3GY.cjs → chunk-KBO75NLM.cjs} +7 -7
- package/dist/{chunk-4KMLM3GY.cjs.map → chunk-KBO75NLM.cjs.map} +1 -1
- package/dist/{chunk-Z4NQ3TED.js → chunk-KCSIX7CY.js} +3 -3
- package/dist/{chunk-Z4NQ3TED.js.map → chunk-KCSIX7CY.js.map} +1 -1
- package/dist/{chunk-DN2KI4BU.js → chunk-KDLX5AA7.js} +3 -3
- package/dist/{chunk-DN2KI4BU.js.map → chunk-KDLX5AA7.js.map} +1 -1
- package/dist/{chunk-WFA2GVZJ.js → chunk-MF5KQ4PS.js} +3 -3
- package/dist/{chunk-WFA2GVZJ.js.map → chunk-MF5KQ4PS.js.map} +1 -1
- package/dist/{chunk-YXNNNP57.js → chunk-MNG7N6M2.js} +4 -4
- package/dist/{chunk-YXNNNP57.js.map → chunk-MNG7N6M2.js.map} +1 -1
- package/dist/chunk-MSFQDELO.cjs +482 -0
- package/dist/chunk-MSFQDELO.cjs.map +1 -0
- package/dist/{chunk-T74Q3MCZ.cjs → chunk-MUDEL7UL.cjs} +25 -884
- package/dist/chunk-MUDEL7UL.cjs.map +1 -0
- package/dist/{chunk-KSHKTOY2.js → chunk-NUSBINUM.js} +3 -3
- package/dist/chunk-NUSBINUM.js.map +1 -0
- package/dist/{chunk-EYKISBDO.cjs → chunk-OALEDG67.cjs} +5 -5
- package/dist/{chunk-EYKISBDO.cjs.map → chunk-OALEDG67.cjs.map} +1 -1
- package/dist/{chunk-COCGRJLA.cjs → chunk-OFV3PRF2.cjs} +7 -7
- package/dist/{chunk-COCGRJLA.cjs.map → chunk-OFV3PRF2.cjs.map} +1 -1
- package/dist/chunk-OOU4QLRK.cjs +319 -0
- package/dist/chunk-OOU4QLRK.cjs.map +1 -0
- package/dist/chunk-OU3RGQFX.cjs +136 -0
- package/dist/chunk-OU3RGQFX.cjs.map +1 -0
- package/dist/{chunk-3PCBYOIZ.js → chunk-P6RIBIVN.js} +38 -7
- package/dist/chunk-P6RIBIVN.js.map +1 -0
- package/dist/{chunk-LXTOOUEN.cjs → chunk-Q7CQYYZW.cjs} +5 -5
- package/dist/{chunk-LXTOOUEN.cjs.map → chunk-Q7CQYYZW.cjs.map} +1 -1
- package/dist/{chunk-CROTH2BS.js → chunk-QKR5LWDO.js} +9 -40
- package/dist/{chunk-CROTH2BS.js.map → chunk-QKR5LWDO.js.map} +1 -1
- package/dist/chunk-REH7PX3N.cjs +145 -0
- package/dist/chunk-REH7PX3N.cjs.map +1 -0
- package/dist/chunk-RQKWYKZY.js +127 -0
- package/dist/chunk-RQKWYKZY.js.map +1 -0
- package/dist/{chunk-U6JQ4KMX.cjs → chunk-SN2GZ4ZM.cjs} +29 -2
- package/dist/chunk-SN2GZ4ZM.cjs.map +1 -0
- package/dist/{chunk-R6VCPDPF.js → chunk-SZSJGZSO.js} +156 -6
- package/dist/chunk-SZSJGZSO.js.map +1 -0
- package/dist/{chunk-US3S4DCB.js → chunk-TF7HN5EU.js} +10 -5
- package/dist/chunk-TF7HN5EU.js.map +1 -0
- package/dist/{chunk-YKQ2DPIP.js → chunk-VF5EUAIV.js} +3 -3
- package/dist/{chunk-YKQ2DPIP.js.map → chunk-VF5EUAIV.js.map} +1 -1
- package/dist/{chunk-KMZWKSKO.cjs → chunk-VZPFYZZU.cjs} +4 -4
- package/dist/{chunk-KMZWKSKO.cjs.map → chunk-VZPFYZZU.cjs.map} +1 -1
- package/dist/{chunk-HUJF2XM2.js → chunk-W7CWGURO.js} +28 -873
- package/dist/chunk-W7CWGURO.js.map +1 -0
- package/dist/{chunk-ZLEYLCE4.js → chunk-WK6FVIF7.js} +6 -156
- package/dist/chunk-WK6FVIF7.js.map +1 -0
- package/dist/chunk-WV4TD2HZ.cjs +1785 -0
- package/dist/chunk-WV4TD2HZ.cjs.map +1 -0
- package/dist/{chunk-COA3S3CZ.js → chunk-XI37A7HH.js} +4 -4
- package/dist/{chunk-COA3S3CZ.js.map → chunk-XI37A7HH.js.map} +1 -1
- package/dist/{chunk-LGBAZD37.js → chunk-XRL4R2TT.js} +7 -139
- package/dist/chunk-XRL4R2TT.js.map +1 -0
- package/dist/{chunk-4JNKXOFZ.cjs → chunk-YBJ4QGNH.cjs} +11 -11
- package/dist/{chunk-4JNKXOFZ.cjs.map → chunk-YBJ4QGNH.cjs.map} +1 -1
- package/dist/{chunk-GFOEWPAP.cjs → chunk-YF3QUHKN.cjs} +49 -12
- package/dist/chunk-YF3QUHKN.cjs.map +1 -0
- package/dist/{chunk-H4D7WKDY.js → chunk-YNMO3DSR.js} +3 -3
- package/dist/{chunk-H4D7WKDY.js.map → chunk-YNMO3DSR.js.map} +1 -1
- package/dist/citations/index.cjs +10 -10
- package/dist/citations/index.js +2 -2
- package/dist/collaboration/index.cjs +77 -77
- package/dist/collaboration/index.js +2 -2
- package/dist/connect/docx.cjs +14 -14
- package/dist/connect/docx.js +10 -10
- package/dist/connect/index.cjs +2820 -1043
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.d.ts +4 -0
- package/dist/connect/index.js +2216 -504
- package/dist/connect/index.js.map +1 -1
- package/dist/connect/viewer.cjs +68 -72
- package/dist/connect/viewer.cjs.map +1 -1
- package/dist/connect/viewer.js +11 -15
- package/dist/connect/viewer.js.map +1 -1
- package/dist/connection/ConnectionProvider.d.ts +7 -0
- package/dist/connection/files/DocumentSyncGlyph.d.ts +28 -0
- package/dist/connection/files/explorer/ConnectedFilesExplorer.d.ts +56 -0
- package/dist/connection/files/explorer/FileTiles.d.ts +87 -0
- package/dist/connection/files/index.d.ts +5 -0
- package/dist/connection/files/store.d.ts +27 -0
- package/dist/connection/files/support.d.ts +38 -0
- package/dist/connection/projects/ConnectedProjectsPanel.d.ts +34 -0
- package/dist/connection/projects/index.d.ts +1 -0
- package/dist/connection/workspace-dashboard/ConnectedWorkspaceDashboard.d.ts +37 -0
- package/dist/connection/workspace-dashboard/dashboard-rows.d.ts +42 -0
- package/dist/connection/workspace-dashboard/index.d.ts +1 -0
- package/dist/connection/workspace-list/ConnectedWorkspaceList.d.ts +37 -0
- package/dist/connection/workspace-list/WorkspaceCardsView.d.ts +15 -0
- package/dist/connection/workspace-list/WorkspaceFilterMenu.d.ts +4 -0
- package/dist/connection/workspace-list/WorkspaceTableView.d.ts +13 -0
- package/dist/connection/workspace-list/index.d.ts +5 -0
- package/dist/connection/workspace-list/projectBilling.d.ts +21 -0
- package/dist/connection/workspace-list/useConnectedWorkspaceList.d.ts +251 -0
- package/dist/connection/workspace-list/workspaceTable.d.ts +58 -0
- package/dist/connection/workspace-settings/ConnectedWorkspaceMembers.d.ts +26 -0
- package/dist/connection/workspace-settings/ConnectedWorkspaceSettings.d.ts +7 -9
- package/dist/connection/workspace-settings/index.d.ts +2 -1
- package/dist/connection/workspace-settings/useConnectedWorkspaceSettings.d.ts +0 -1
- package/dist/facts/index.cjs +3 -3
- package/dist/facts/index.js +2 -2
- package/dist/files/DocStatusIcon.d.ts +5 -4
- package/dist/files/FailedStageIcon.d.ts +26 -0
- package/dist/files/folders/FolderProviderIcon.d.ts +29 -0
- package/dist/files/folders/folderPaths.d.ts +86 -0
- package/dist/files/folders/index.d.ts +2 -0
- package/dist/files/index.cjs +328 -240
- package/dist/files/index.d.ts +5 -0
- package/dist/files/index.js +4 -4
- package/dist/files/permissions.d.ts +28 -0
- package/dist/files/recently-deleted.d.ts +7 -0
- package/dist/files/visibility.d.ts +31 -0
- package/dist/home/index.cjs +119 -459
- package/dist/home/index.cjs.map +1 -1
- package/dist/home/index.js +13 -419
- package/dist/home/index.js.map +1 -1
- package/dist/index.cjs +480 -480
- package/dist/index.js +16 -16
- package/dist/provider/BlocksProvider.d.ts +9 -1
- package/dist/retrieval/index.cjs +4 -4
- package/dist/retrieval/index.js +2 -2
- package/dist/settings/index.cjs +169 -165
- package/dist/settings/index.d.ts +1 -0
- package/dist/settings/index.js +2 -2
- package/dist/settings/tri-state-filters.d.ts +13 -0
- package/dist/shell/index.cjs +44 -44
- package/dist/shell/index.js +3 -3
- package/dist/site/index.cjs +5 -5
- package/dist/site/index.js +1 -1
- package/dist/studio/index.cjs +14 -14
- package/dist/studio/index.js +6 -6
- package/dist/workflow-canvas/index.cjs +27 -27
- package/dist/workflow-canvas/index.js +9 -9
- package/dist/workspaces/index.cjs +110 -369
- package/dist/workspaces/index.cjs.map +1 -1
- package/dist/workspaces/index.d.ts +2 -0
- package/dist/workspaces/index.js +12 -350
- package/dist/workspaces/index.js.map +1 -1
- package/dist/workspaces/workspace-groups.d.ts +90 -0
- package/dist/workspaces/workspace-roles.d.ts +11 -0
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +6 -5
- package/dist/ConnectedStreamedWordArtifact-QW74LKHN.cjs.map +0 -1
- package/dist/chunk-3PCBYOIZ.js.map +0 -1
- package/dist/chunk-4236BRZK.js.map +0 -1
- package/dist/chunk-CU2O32Z4.cjs.map +0 -1
- package/dist/chunk-EV7W64B6.js +0 -134
- package/dist/chunk-EV7W64B6.js.map +0 -1
- package/dist/chunk-GFNELPDP.cjs.map +0 -1
- package/dist/chunk-GFOEWPAP.cjs.map +0 -1
- package/dist/chunk-GRGS5M6O.cjs.map +0 -1
- package/dist/chunk-HUJF2XM2.js.map +0 -1
- package/dist/chunk-JGOST4IL.js +0 -648
- package/dist/chunk-JGOST4IL.js.map +0 -1
- package/dist/chunk-KPZZ5FHE.cjs.map +0 -1
- package/dist/chunk-KSHKTOY2.js.map +0 -1
- package/dist/chunk-LGBAZD37.js.map +0 -1
- package/dist/chunk-R6VCPDPF.js.map +0 -1
- package/dist/chunk-RQ2Y7USX.cjs.map +0 -1
- package/dist/chunk-RXK3XP62.cjs +0 -144
- package/dist/chunk-RXK3XP62.cjs.map +0 -1
- package/dist/chunk-SMN32BQ3.cjs.map +0 -1
- package/dist/chunk-T74Q3MCZ.cjs.map +0 -1
- package/dist/chunk-TBEVGWY3.js.map +0 -1
- package/dist/chunk-U6JQ4KMX.cjs.map +0 -1
- package/dist/chunk-US3S4DCB.js.map +0 -1
- package/dist/chunk-XZIYRKLW.cjs.map +0 -1
- package/dist/chunk-YAEXSCUW.cjs +0 -677
- package/dist/chunk-YAEXSCUW.cjs.map +0 -1
- package/dist/chunk-ZLEYLCE4.js.map +0 -1
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import type { TriState } from '../../settings/TriStateFilterMenu';
|
|
2
|
+
/** The persisted form of the filters: filter id → include / exclude (absent or null: off). */
|
|
3
|
+
export type WorkspaceListFilters = Record<string, TriState>;
|
|
4
|
+
export interface WorkspaceListLabels {
|
|
5
|
+
/** After a delete: where deleted workspaces can be restored from. */
|
|
6
|
+
recentlyDeletedHint: (count: number) => string;
|
|
7
|
+
}
|
|
8
|
+
export declare const DEFAULT_WORKSPACE_LIST_LABELS: WorkspaceListLabels;
|
|
9
|
+
export interface UseConnectedWorkspaceListOptions {
|
|
10
|
+
/** Controlled filters (a host that keeps them across visits); local state otherwise. */
|
|
11
|
+
filters?: WorkspaceListFilters;
|
|
12
|
+
onFiltersChange?: (filters: WorkspaceListFilters) => void;
|
|
13
|
+
labels?: Partial<WorkspaceListLabels>;
|
|
14
|
+
}
|
|
15
|
+
export declare function useConnectedWorkspaceList({ filters: controlledFilters, onFiltersChange, labels, }?: UseConnectedWorkspaceListOptions): {
|
|
16
|
+
selfId: string | undefined;
|
|
17
|
+
/** Every listed workspace (unfiltered): the filter menu's counts. */
|
|
18
|
+
workspaces: {
|
|
19
|
+
external_id: string;
|
|
20
|
+
name: string;
|
|
21
|
+
description: string | null;
|
|
22
|
+
is_public: boolean;
|
|
23
|
+
workspace_type: import("@arbidocs/client").components["schemas"]["WorkspaceType"];
|
|
24
|
+
created_by_ext_id: string;
|
|
25
|
+
updated_by_ext_id?: string | null | undefined;
|
|
26
|
+
created_at: string;
|
|
27
|
+
updated_at: string;
|
|
28
|
+
wrapped_key?: string | null | undefined;
|
|
29
|
+
is_member: boolean;
|
|
30
|
+
shared_conversation_count: number;
|
|
31
|
+
private_conversation_count: number;
|
|
32
|
+
shared_document_count: number;
|
|
33
|
+
private_document_count: number;
|
|
34
|
+
user_files_mb: number;
|
|
35
|
+
users: {
|
|
36
|
+
user: {
|
|
37
|
+
external_id: string;
|
|
38
|
+
parent_ext_id?: string | null | undefined;
|
|
39
|
+
email: string;
|
|
40
|
+
given_name: string;
|
|
41
|
+
family_name?: string | null | undefined;
|
|
42
|
+
picture?: string | null | undefined;
|
|
43
|
+
encryption_public_key: string;
|
|
44
|
+
is_sso: boolean;
|
|
45
|
+
is_identity_verified: boolean;
|
|
46
|
+
};
|
|
47
|
+
role: import("@arbidocs/client").components["schemas"]["WorkspaceRole"];
|
|
48
|
+
joined_at: string;
|
|
49
|
+
conversation_count: number;
|
|
50
|
+
document_count: number;
|
|
51
|
+
files_mb: number;
|
|
52
|
+
agent_ext_id?: string | null | undefined;
|
|
53
|
+
is_temporary: boolean;
|
|
54
|
+
}[];
|
|
55
|
+
project_ext_id?: string | null | undefined;
|
|
56
|
+
project_name?: string | null | undefined;
|
|
57
|
+
project_subscription?: string | null | undefined;
|
|
58
|
+
project_owner_ext_id?: string | null | undefined;
|
|
59
|
+
house_template_ext_id?: string | null | undefined;
|
|
60
|
+
archive?: {
|
|
61
|
+
status: "archiving" | "archived" | "restoring";
|
|
62
|
+
archived_at: string;
|
|
63
|
+
documents_done: number;
|
|
64
|
+
documents_total: number;
|
|
65
|
+
} | null | undefined;
|
|
66
|
+
}[];
|
|
67
|
+
projects: NoInfer<{
|
|
68
|
+
external_id: string;
|
|
69
|
+
name: string;
|
|
70
|
+
created_by: string;
|
|
71
|
+
subscription: string;
|
|
72
|
+
created_at: string;
|
|
73
|
+
quotas: {
|
|
74
|
+
storage_gb: {
|
|
75
|
+
used: number;
|
|
76
|
+
limit: number;
|
|
77
|
+
};
|
|
78
|
+
ai_usage: {
|
|
79
|
+
used: number;
|
|
80
|
+
limit: number;
|
|
81
|
+
};
|
|
82
|
+
collaborators: {
|
|
83
|
+
used: number;
|
|
84
|
+
limit: number;
|
|
85
|
+
};
|
|
86
|
+
budget_reset_at?: number | null | undefined;
|
|
87
|
+
};
|
|
88
|
+
daily_cap_per_user?: number | null | undefined;
|
|
89
|
+
budget?: {
|
|
90
|
+
amount: number;
|
|
91
|
+
currency: string;
|
|
92
|
+
} | null | undefined;
|
|
93
|
+
client?: string | null | undefined;
|
|
94
|
+
client_ref?: string | null | undefined;
|
|
95
|
+
stage?: string | null | undefined;
|
|
96
|
+
stage_changed_at?: string | null | undefined;
|
|
97
|
+
lead_user?: string | null | undefined;
|
|
98
|
+
fields?: {
|
|
99
|
+
[x: string]: unknown;
|
|
100
|
+
} | undefined;
|
|
101
|
+
field_schema?: {
|
|
102
|
+
key: string;
|
|
103
|
+
label?: string | null | undefined;
|
|
104
|
+
type: "text" | "number" | "date" | "checkbox" | "select" | "person" | "document" | "relation" | "lookup" | "rollup" | "tag";
|
|
105
|
+
options?: string[] | null | undefined;
|
|
106
|
+
}[] | null | undefined;
|
|
107
|
+
plan_interval?: ("month" | "year") | null | undefined;
|
|
108
|
+
packs: number;
|
|
109
|
+
plan_change?: {
|
|
110
|
+
result: "upgraded" | "scheduled" | "unchanged" | "requires_action";
|
|
111
|
+
charged_pence: number;
|
|
112
|
+
charged_ex_vat_pence: number;
|
|
113
|
+
confirm_url?: string | null | undefined;
|
|
114
|
+
} | null | undefined;
|
|
115
|
+
addons?: {
|
|
116
|
+
packs: number;
|
|
117
|
+
packs_next?: number | null | undefined;
|
|
118
|
+
plan_name: string;
|
|
119
|
+
plan_ai_gbp: number;
|
|
120
|
+
plan_storage_gb: number;
|
|
121
|
+
block_ai_gbp: number;
|
|
122
|
+
block_storage_gb: number;
|
|
123
|
+
ai_blocks: number;
|
|
124
|
+
storage_blocks: number;
|
|
125
|
+
legacy_ai_blocks: number;
|
|
126
|
+
legacy_storage_blocks: number;
|
|
127
|
+
legacy_block_ai_gbp: number;
|
|
128
|
+
legacy_block_storage_gb: number;
|
|
129
|
+
blocks_ai_gbp: number;
|
|
130
|
+
blocks_storage_gb: number;
|
|
131
|
+
ai_blocks_next?: number | null | undefined;
|
|
132
|
+
storage_blocks_next?: number | null | undefined;
|
|
133
|
+
storage_blocks_min: number;
|
|
134
|
+
auto_topup_threshold_gbp: number;
|
|
135
|
+
min_auto_topup_threshold_gbp: number;
|
|
136
|
+
spend_cap_pence?: number | null | undefined;
|
|
137
|
+
addon_spend_pence: number;
|
|
138
|
+
auto_spent_pence: number;
|
|
139
|
+
addon_spend_window_end?: number | null | undefined;
|
|
140
|
+
manual_spent_pence: number;
|
|
141
|
+
cap_left_pence?: number | null | undefined;
|
|
142
|
+
ai_used_gbp: number;
|
|
143
|
+
ai_allowance_gbp: number;
|
|
144
|
+
ai_allowance_next_gbp: number;
|
|
145
|
+
storage_used_gb: number;
|
|
146
|
+
storage_allowance_gb: number;
|
|
147
|
+
storage_allowance_next_gb: number;
|
|
148
|
+
ai_block_monthly_pence: number;
|
|
149
|
+
ai_block_monthly_ex_vat_pence: number;
|
|
150
|
+
storage_block_monthly_pence: number;
|
|
151
|
+
storage_block_monthly_ex_vat_pence: number;
|
|
152
|
+
ai_block_period_pence: number;
|
|
153
|
+
ai_block_period_ex_vat_pence: number;
|
|
154
|
+
storage_block_period_pence: number;
|
|
155
|
+
storage_block_period_ex_vat_pence: number;
|
|
156
|
+
ai_block_price_pence: number;
|
|
157
|
+
ai_block_price_ex_vat_pence: number;
|
|
158
|
+
storage_block_price_pence: number;
|
|
159
|
+
storage_block_price_ex_vat_pence: number;
|
|
160
|
+
cap_reached: boolean;
|
|
161
|
+
period_end?: number | null | undefined;
|
|
162
|
+
ai_usage_reset_at?: number | null | undefined;
|
|
163
|
+
pending_interval?: ("month" | "year") | null | undefined;
|
|
164
|
+
billing_error?: string | null | undefined;
|
|
165
|
+
confirm_url?: string | null | undefined;
|
|
166
|
+
payment?: {
|
|
167
|
+
status: "pending" | "paid";
|
|
168
|
+
kind?: ("ai_usage" | "storage") | null | undefined;
|
|
169
|
+
amount_pence?: number | null | undefined;
|
|
170
|
+
amount_ex_vat_pence?: number | null | undefined;
|
|
171
|
+
tax_pence?: number | null | undefined;
|
|
172
|
+
at?: number | null | undefined;
|
|
173
|
+
confirm_url?: string | null | undefined;
|
|
174
|
+
} | null | undefined;
|
|
175
|
+
} | null | undefined;
|
|
176
|
+
price_id?: string | null | undefined;
|
|
177
|
+
plan?: string | null | undefined;
|
|
178
|
+
amount?: number | null | undefined;
|
|
179
|
+
amount_ex_vat?: number | null | undefined;
|
|
180
|
+
currency?: string | null | undefined;
|
|
181
|
+
current_period_end?: number | null | undefined;
|
|
182
|
+
cancel_at_period_end?: boolean | null | undefined;
|
|
183
|
+
portal_url?: string | null | undefined;
|
|
184
|
+
}[]>;
|
|
185
|
+
pinned: Set<string>;
|
|
186
|
+
/** The filtered workspaces grouped by project, in list order. */
|
|
187
|
+
groups: import("../../workspaces").WorkspaceProjectGroup[];
|
|
188
|
+
/** How many workspaces the filters let through. */
|
|
189
|
+
shownCount: number;
|
|
190
|
+
isLoading: boolean;
|
|
191
|
+
error: Error | null;
|
|
192
|
+
canCreateProjects: boolean | undefined;
|
|
193
|
+
filters: Map<string, TriState>;
|
|
194
|
+
setFilters: (next: Map<string, TriState>) => void;
|
|
195
|
+
isCollapsed: (key: string) => boolean;
|
|
196
|
+
toggleGroup: (key: string) => void;
|
|
197
|
+
selected: {
|
|
198
|
+
external_id: string;
|
|
199
|
+
name: string;
|
|
200
|
+
description: string | null;
|
|
201
|
+
is_public: boolean;
|
|
202
|
+
workspace_type: import("@arbidocs/client").components["schemas"]["WorkspaceType"];
|
|
203
|
+
created_by_ext_id: string;
|
|
204
|
+
updated_by_ext_id?: string | null;
|
|
205
|
+
created_at: string;
|
|
206
|
+
updated_at: string;
|
|
207
|
+
wrapped_key?: string | null;
|
|
208
|
+
is_member: boolean;
|
|
209
|
+
shared_conversation_count: number;
|
|
210
|
+
private_conversation_count: number;
|
|
211
|
+
shared_document_count: number;
|
|
212
|
+
private_document_count: number;
|
|
213
|
+
user_files_mb: number;
|
|
214
|
+
users: import("@arbidocs/client").components["schemas"]["WorkspaceUserResponse"][];
|
|
215
|
+
project_ext_id?: string | null;
|
|
216
|
+
project_name?: string | null;
|
|
217
|
+
project_subscription?: string | null;
|
|
218
|
+
project_owner_ext_id?: string | null;
|
|
219
|
+
house_template_ext_id?: string | null;
|
|
220
|
+
archive?: import("@arbidocs/client").components["schemas"]["WorkspaceArchiveState"] | null;
|
|
221
|
+
}[];
|
|
222
|
+
setSelected: import("react").Dispatch<import("react").SetStateAction<{
|
|
223
|
+
external_id: string;
|
|
224
|
+
name: string;
|
|
225
|
+
description: string | null;
|
|
226
|
+
is_public: boolean;
|
|
227
|
+
workspace_type: import("@arbidocs/client").components["schemas"]["WorkspaceType"];
|
|
228
|
+
created_by_ext_id: string;
|
|
229
|
+
updated_by_ext_id?: string | null;
|
|
230
|
+
created_at: string;
|
|
231
|
+
updated_at: string;
|
|
232
|
+
wrapped_key?: string | null;
|
|
233
|
+
is_member: boolean;
|
|
234
|
+
shared_conversation_count: number;
|
|
235
|
+
private_conversation_count: number;
|
|
236
|
+
shared_document_count: number;
|
|
237
|
+
private_document_count: number;
|
|
238
|
+
user_files_mb: number;
|
|
239
|
+
users: import("@arbidocs/client").components["schemas"]["WorkspaceUserResponse"][];
|
|
240
|
+
project_ext_id?: string | null;
|
|
241
|
+
project_name?: string | null;
|
|
242
|
+
project_subscription?: string | null;
|
|
243
|
+
project_owner_ext_id?: string | null;
|
|
244
|
+
house_template_ext_id?: string | null;
|
|
245
|
+
archive?: import("@arbidocs/client").components["schemas"]["WorkspaceArchiveState"] | null;
|
|
246
|
+
}[]>>;
|
|
247
|
+
canDeleteSelected: boolean;
|
|
248
|
+
deleteSelected: () => Promise<void>;
|
|
249
|
+
isDeleting: boolean;
|
|
250
|
+
};
|
|
251
|
+
export type ConnectedWorkspaceListState = ReturnType<typeof useConnectedWorkspaceList>;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The workspace list as a table: each project is a heading row with its workspaces underneath.
|
|
3
|
+
*
|
|
4
|
+
* A project is a container, not a workspace: its heading is presentation only. It cannot be
|
|
5
|
+
* selected, does not sort as data (it is regrouped back above its workspaces after a sort), and
|
|
6
|
+
* shows the project's own facts (name, billing) under Name and its group's totals in the count
|
|
7
|
+
* columns, lined up with the workspace rows they sum. AG Grid Community has no row grouping, so the
|
|
8
|
+
* rows are a flat union and `postSortRows` keeps each group together.
|
|
9
|
+
*/
|
|
10
|
+
import { type ReactNode } from 'react';
|
|
11
|
+
import type { ColDef } from 'ag-grid-community';
|
|
12
|
+
import { type GroupedWorkspace, type WorkspaceGroupStats, type WorkspaceProjectGroup } from '../../workspaces/workspace-groups';
|
|
13
|
+
type WorkspaceMemberUser = GroupedWorkspace['users'][number]['user'];
|
|
14
|
+
/** How a person shows in the Members column (the host's own user chip, say). */
|
|
15
|
+
export type RenderWorkspaceMember = (user: WorkspaceMemberUser, size: 'xs' | 'sm') => ReactNode;
|
|
16
|
+
export interface WorkspaceTableHeadingRow {
|
|
17
|
+
kind: 'heading';
|
|
18
|
+
key: string;
|
|
19
|
+
/** Section order: the groups' order. */
|
|
20
|
+
groupIndex: number;
|
|
21
|
+
group: WorkspaceProjectGroup;
|
|
22
|
+
stats: WorkspaceGroupStats;
|
|
23
|
+
}
|
|
24
|
+
export interface WorkspaceTableItemRow {
|
|
25
|
+
kind: 'workspace';
|
|
26
|
+
key: string;
|
|
27
|
+
groupIndex: number;
|
|
28
|
+
workspace: GroupedWorkspace;
|
|
29
|
+
}
|
|
30
|
+
export type WorkspaceTableRow = WorkspaceTableHeadingRow | WorkspaceTableItemRow;
|
|
31
|
+
export declare const isWorkspaceRow: (row: WorkspaceTableRow) => row is WorkspaceTableItemRow;
|
|
32
|
+
/**
|
|
33
|
+
* One heading per group with workspaces, followed by them unless the group is collapsed. (An own
|
|
34
|
+
* project with no workspace yet has a band among the cards, but no heading here.)
|
|
35
|
+
*/
|
|
36
|
+
export declare function buildWorkspaceTableRows(groups: readonly WorkspaceProjectGroup[], isCollapsed?: (key: string) => boolean): WorkspaceTableRow[];
|
|
37
|
+
/** What a project heading needs beyond its row: its billing and the group's actions. */
|
|
38
|
+
export interface ProjectHeadingContext {
|
|
39
|
+
isCollapsed: (key: string) => boolean;
|
|
40
|
+
onToggle: (key: string) => void;
|
|
41
|
+
onOpenProject: (projectId: string) => void;
|
|
42
|
+
/** The heading's billing line and breakdown (`projectGroupBilling`). */
|
|
43
|
+
billing: (group: WorkspaceProjectGroup) => {
|
|
44
|
+
readout?: ReactNode;
|
|
45
|
+
breakdown?: ReactNode;
|
|
46
|
+
createdAt?: string;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The table's columns. There is no Project column (the project is the heading above each group),
|
|
51
|
+
* and no column filters (they cannot mix with heading rows): the filter sits above the table.
|
|
52
|
+
*/
|
|
53
|
+
export declare function workspaceTableColumns({ selfId, renderMember, heading, }: {
|
|
54
|
+
selfId: string | undefined;
|
|
55
|
+
renderMember: RenderWorkspaceMember;
|
|
56
|
+
heading: ProjectHeadingContext;
|
|
57
|
+
}): ColDef<WorkspaceTableRow>[];
|
|
58
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A workspace's member table: name, email, role (an owner changes it inline, or for a selection),
|
|
3
|
+
* when they joined, their threads, documents and storage. You come first, then by role. An owner
|
|
4
|
+
* removes a selection (never an owner or themselves) after one confirmation.
|
|
5
|
+
*/
|
|
6
|
+
import { type ReactNode } from 'react';
|
|
7
|
+
import type { GridState } from 'ag-grid-community';
|
|
8
|
+
import type { components } from '@arbidocs/client';
|
|
9
|
+
type Workspace = components['schemas']['WorkspaceResponse'];
|
|
10
|
+
export type WorkspaceMemberRow = Workspace['users'][number];
|
|
11
|
+
export interface ConnectedWorkspaceMembersProps {
|
|
12
|
+
workspace: Workspace;
|
|
13
|
+
members: WorkspaceMemberRow[];
|
|
14
|
+
/** The viewer (`usr-…`). */
|
|
15
|
+
selfId: string | undefined;
|
|
16
|
+
isOwner: boolean;
|
|
17
|
+
isLoading?: boolean;
|
|
18
|
+
/** No edits (role changes, removal), whoever looks. */
|
|
19
|
+
readOnly?: boolean;
|
|
20
|
+
/** A person in the Name column. Default: a plain pill. */
|
|
21
|
+
renderMember?: (member: WorkspaceMemberRow) => ReactNode;
|
|
22
|
+
gridState?: GridState;
|
|
23
|
+
onGridStateChange?: (state: GridState) => void;
|
|
24
|
+
}
|
|
25
|
+
export declare function ConnectedWorkspaceMembers({ workspace, members, selfId, isOwner: isOwnerRaw, isLoading, readOnly, renderMember, gridState, onGridStateChange, }: ConnectedWorkspaceMembersProps): import("react").JSX.Element;
|
|
26
|
+
export {};
|
|
@@ -10,14 +10,9 @@ import { type ReactNode } from 'react';
|
|
|
10
10
|
import { type WorkspaceRole } from '@arbidocs/react';
|
|
11
11
|
import type { components } from '@arbidocs/client';
|
|
12
12
|
import { type ShareOutcome } from './useConnectedWorkspaceSettings';
|
|
13
|
+
import type { GridState } from 'ag-grid-community';
|
|
13
14
|
type Workspace = components['schemas']['WorkspaceResponse'];
|
|
14
15
|
type WorkspaceMember = Workspace['users'][number];
|
|
15
|
-
export interface WorkspaceMembersSlot {
|
|
16
|
-
workspace: Workspace;
|
|
17
|
-
members: WorkspaceMember[];
|
|
18
|
-
onRemove: (userExtId: string, email: string, name: string) => Promise<void>;
|
|
19
|
-
isRemoving: boolean;
|
|
20
|
-
}
|
|
21
16
|
export interface WorkspaceShareSlot {
|
|
22
17
|
open: boolean;
|
|
23
18
|
onOpenChange: (open: boolean) => void;
|
|
@@ -35,8 +30,11 @@ export interface ConnectedWorkspaceSettingsProps {
|
|
|
35
30
|
}) => ReactNode;
|
|
36
31
|
/** The project line under the workspace mark. */
|
|
37
32
|
projectLine?: (workspace: Workspace) => ReactNode;
|
|
38
|
-
/**
|
|
39
|
-
|
|
33
|
+
/** A person in the member table (opened from the member avatars). Default: a plain pill. */
|
|
34
|
+
renderMember?: (member: WorkspaceMember) => ReactNode;
|
|
35
|
+
/** The member table's column state. */
|
|
36
|
+
membersGridState?: GridState;
|
|
37
|
+
onMembersGridStateChange?: (state: GridState) => void;
|
|
40
38
|
/** The dialog behind Share (owners only). */
|
|
41
39
|
shareDialog?: (ctx: WorkspaceShareSlot) => ReactNode;
|
|
42
40
|
/** The workspace's dashboard, between the identity and the page foot. */
|
|
@@ -49,5 +47,5 @@ export interface ConnectedWorkspaceSettingsProps {
|
|
|
49
47
|
onLeft?: () => void;
|
|
50
48
|
testId?: string;
|
|
51
49
|
}
|
|
52
|
-
export declare function ConnectedWorkspaceSettings({ workspaceId, project, projectLine,
|
|
50
|
+
export declare function ConnectedWorkspaceSettings({ workspaceId, project, projectLine, renderMember, membersGridState, onMembersGridStateChange, shareDialog, children, onExport, onOpenActivity, onLeft, testId, }: ConnectedWorkspaceSettingsProps): import("react").JSX.Element;
|
|
53
51
|
export {};
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export { ConnectedWorkspaceSettings, type ConnectedWorkspaceSettingsProps, type
|
|
1
|
+
export { ConnectedWorkspaceSettings, type ConnectedWorkspaceSettingsProps, type WorkspaceShareSlot, } from './ConnectedWorkspaceSettings';
|
|
2
2
|
export { useConnectedWorkspaceSettings, type ShareOutcome, type UseConnectedWorkspaceSettingsOptions, } from './useConnectedWorkspaceSettings';
|
|
3
|
+
export { ConnectedWorkspaceMembers, type ConnectedWorkspaceMembersProps, type WorkspaceMemberRow, } from './ConnectedWorkspaceMembers';
|
|
@@ -84,7 +84,6 @@ export declare function useConnectedWorkspaceSettings(workspaceId: string, { onL
|
|
|
84
84
|
}) => Promise<void>;
|
|
85
85
|
setPublic: (isPublic: boolean) => Promise<void>;
|
|
86
86
|
share: (emails: string[], memberRole?: WorkspaceRole) => Promise<ShareOutcome>;
|
|
87
|
-
removeMember: (userExtId: string, email: string, name: string) => Promise<void>;
|
|
88
87
|
leave: () => Promise<void>;
|
|
89
88
|
isSharing: boolean;
|
|
90
89
|
isRemoving: boolean;
|
package/dist/facts/index.cjs
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
var chunkB3FMUFAW_cjs = require('../chunk-B3FMUFAW.cjs');
|
|
5
5
|
require('../chunk-2WLXQGWC.cjs');
|
|
6
6
|
var chunk5FYU7ZIU_cjs = require('../chunk-5FYU7ZIU.cjs');
|
|
7
|
-
var
|
|
7
|
+
var chunk4RPBUMHB_cjs = require('../chunk-4RPBUMHB.cjs');
|
|
8
8
|
require('../chunk-VPPX5XUF.cjs');
|
|
9
9
|
var chunkRC25WMVB_cjs = require('../chunk-RC25WMVB.cjs');
|
|
10
10
|
require('../chunk-V4ISCZJ7.cjs');
|
|
@@ -15,7 +15,7 @@ require('../chunk-7RGLTF76.cjs');
|
|
|
15
15
|
require('../chunk-FX3K6LNZ.cjs');
|
|
16
16
|
require('../chunk-PPCATBOY.cjs');
|
|
17
17
|
var chunkMHVNT4J3_cjs = require('../chunk-MHVNT4J3.cjs');
|
|
18
|
-
require('../chunk-
|
|
18
|
+
require('../chunk-CNHUJRQ4.cjs');
|
|
19
19
|
require('../chunk-ULWRNGGE.cjs');
|
|
20
20
|
var chunkKDG6FER6_cjs = require('../chunk-KDG6FER6.cjs');
|
|
21
21
|
require('../chunk-DES3K4SD.cjs');
|
|
@@ -330,7 +330,7 @@ function FactSearchResult({
|
|
|
330
330
|
}
|
|
331
331
|
),
|
|
332
332
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
333
|
-
|
|
333
|
+
chunk4RPBUMHB_cjs.SearchHit,
|
|
334
334
|
{
|
|
335
335
|
className: "min-w-0 flex-1",
|
|
336
336
|
testId: chunkMHVNT4J3_cjs.testIdOr(testIds?.hit?.(id), { testId: `facts-smart-search-hit-${id}` }),
|
package/dist/facts/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { DEFAULT_FACT_COLUMN_LABELS, createFactColumns, FactRowActions } from '.
|
|
|
3
3
|
export { DEFAULT_FACTS_BULK_BAR_LABELS, DEFAULT_FACTS_EMPTY_STATE_LABELS, DEFAULT_FACTS_FIELDS_BUTTON_LABELS, DEFAULT_FACTS_TOOLBAR_LABELS, DEFAULT_FACTS_VIEW_TOGGLE_LABELS, DEFAULT_FACT_COLUMN_LABELS, DEFAULT_FACT_COLUMN_ORDER, DEFAULT_FACT_COMPOSER_LABELS, DEFAULT_FACT_DATE_INPUT_LABELS, DEFAULT_FACT_LABELS_CELL_LABELS, DEFAULT_FACT_ROW_ACTIONS_LABELS, DEFAULT_FACT_SOURCES_ROW_LABELS, DEFAULT_FACT_SOURCE_GROUP_LABELS, DEFAULT_FACT_TIMELINE_LABELS, EMPTY_FACT_DATE_FIELDS, FactComposer, FactDateInput, FactFieldRow, FactLabelsCell, FactRowActions, FactSourceGroup, FactSourcesRow, FactsBulkBar, FactsCalendar, FactsEmptyState, FactsFieldsButton, FactsGanttPane, FactsLoadError, FactsLoading, FactsToolbar, FactsViewToggle, ISO_DATE_FILTER_PARAMS, buildFactCitations, chunkIdsOf, citedVersionRef, createFactColumns, docIdsOf, enableFactTableColumnResize, factDateFieldsToSpan, factDateSpanToFields, hasChunk, isWholeDoc, sourceDocCount, toFactCitations, withChunk, withDoc, withoutChunk, withoutDoc } from '../chunk-WU34CHU5.js';
|
|
4
4
|
import '../chunk-JJA6GQKH.js';
|
|
5
5
|
export { DEFAULT_FACT_PASSAGES_LABELS, FactPassageItem, FactSourcesPanel, renderPreviewInline, toPreviewLine } from '../chunk-HFZ45FD3.js';
|
|
6
|
-
import { SearchHit } from '../chunk-
|
|
6
|
+
import { SearchHit } from '../chunk-DEPF5LQI.js';
|
|
7
7
|
import '../chunk-4EZVCGRL.js';
|
|
8
8
|
export { decodeWhitespaceEntities } from '../chunk-AF6RDAJF.js';
|
|
9
9
|
import '../chunk-NUNKSZKU.js';
|
|
@@ -14,7 +14,7 @@ import '../chunk-4WWM3GQ5.js';
|
|
|
14
14
|
import '../chunk-SLSBJRWW.js';
|
|
15
15
|
import '../chunk-NPLYHR2E.js';
|
|
16
16
|
import { testIdOr } from '../chunk-7F6CBP3Z.js';
|
|
17
|
-
import '../chunk-
|
|
17
|
+
import '../chunk-F57LNUSZ.js';
|
|
18
18
|
import '../chunk-TX2ZICS7.js';
|
|
19
19
|
import { initials } from '../chunk-OXF2IFXG.js';
|
|
20
20
|
import '../chunk-VUNV25KB.js';
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import type { ReactNode } from 'react';
|
|
2
1
|
export interface DocStatusIconProps {
|
|
3
2
|
/** Document processing status (case-insensitive); unknown / empty renders nothing. */
|
|
4
3
|
status?: string | null;
|
|
5
4
|
/** Activating the glyph (click, Enter, Space) e.g. opens the status details. */
|
|
6
5
|
onClick?: () => void;
|
|
7
|
-
/**
|
|
8
|
-
|
|
6
|
+
/** Where a failed document's processing stopped (the failed glyph differs per stage). */
|
|
7
|
+
failedStage?: string | null;
|
|
8
|
+
/** Why it failed, added to the failed glyph's title. */
|
|
9
|
+
errorMessage?: string | null;
|
|
9
10
|
className?: string;
|
|
10
11
|
}
|
|
11
12
|
/** Compact status glyph of a document row (ready, empty, low content, indexing, queued, failed). */
|
|
12
|
-
export declare function DocStatusIcon({ status, onClick,
|
|
13
|
+
export declare function DocStatusIcon({ status, onClick, failedStage, errorMessage, className, }: DocStatusIconProps): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stage-aware failure icon.
|
|
3
|
+
*
|
|
4
|
+
* All variants share the red color and "alert" weight so the cell still
|
|
5
|
+
* reads as "failure" at a glance, but the glyph differs per pipeline
|
|
6
|
+
* stage so users can tell *where* it died without opening details.
|
|
7
|
+
*
|
|
8
|
+
* Backend taxonomy (mirrors src/models/document.py FAILABLE_STAGES):
|
|
9
|
+
* parsing — parser service: extraction / OCR / marker-subchunk
|
|
10
|
+
* indexing — Qdrant chunk + vector writes
|
|
11
|
+
* encrypting — SecretBox wrap of chunks/metadata
|
|
12
|
+
* analysing — doctagllm metadata extraction
|
|
13
|
+
* queued — failed before processing started
|
|
14
|
+
* unknown — current code couldn't classify (defensive fallback)
|
|
15
|
+
* null — legacy failure predating the failed_stage column;
|
|
16
|
+
* rendered as "Failed (stage unknown)"
|
|
17
|
+
*/
|
|
18
|
+
export type FailedStage = 'parsing' | 'indexing' | 'encrypting' | 'analysing' | 'queued' | 'unknown';
|
|
19
|
+
interface FailedStageIconProps {
|
|
20
|
+
stage: string | null | undefined;
|
|
21
|
+
errorMessage?: string | null;
|
|
22
|
+
className?: string;
|
|
23
|
+
onClick?: (e: React.MouseEvent) => void;
|
|
24
|
+
}
|
|
25
|
+
export declare const FailedStageIcon: import("react").NamedExoticComponent<FailedStageIconProps>;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* folderProviderIcon
|
|
3
|
+
*
|
|
4
|
+
* Maps a folder path to the brand mark of the connector that imported it, so
|
|
5
|
+
* connector-created folders (e.g. "Outlook (jane@arbi.city)") show their
|
|
6
|
+
* source at a glance. Only the ROOT segment is matched — nested subfolders
|
|
7
|
+
* keep the generic folder icon. Returns null when the root isn't a known
|
|
8
|
+
* provider (including the legacy bare "Email" root), letting call sites fall
|
|
9
|
+
* back to their existing folder glyph.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Provider brand mark for a folder path's root segment, or null when the
|
|
13
|
+
* folder isn't a connector import (call sites render their usual icon).
|
|
14
|
+
*/
|
|
15
|
+
export declare function FolderProviderIcon({ folderPath, className, }: {
|
|
16
|
+
folderPath: string;
|
|
17
|
+
className?: string;
|
|
18
|
+
}): import("react").JSX.Element | null;
|
|
19
|
+
/** True when the folder path's root segment belongs to a known connector. */
|
|
20
|
+
export declare function hasFolderProviderIcon(folderPath: string): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Display text for a single folder path segment. Provider roots drop the
|
|
23
|
+
* provider name — the brand mark already says it — leaving just the account:
|
|
24
|
+
* "Outlook (jane@arbi.city)" → "jane@arbi.city"
|
|
25
|
+
* "Outlook" (legacy bare root) → "" (the logo stands alone)
|
|
26
|
+
* Non-provider segments are returned unchanged. Stored paths are untouched;
|
|
27
|
+
* this is display-only.
|
|
28
|
+
*/
|
|
29
|
+
export declare function formatFolderSegment(segment: string): string;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure helpers that turn the flat document list into a navigable folder tree.
|
|
3
|
+
*
|
|
4
|
+
* Folders are not a backend entity — each document carries a slash-separated
|
|
5
|
+
* `folder` path string (e.g. `"Reports/Q1"`, or `null`/`""` for the root).
|
|
6
|
+
* These helpers derive, for a given path, the immediate sub-folders (with
|
|
7
|
+
* descendant counts) and the files that live directly in that folder. Kept
|
|
8
|
+
* pure and side-effect-free so the navigation logic is unit-testable.
|
|
9
|
+
*/
|
|
10
|
+
/** The fields of a document the folder view reads. */
|
|
11
|
+
export interface FolderDocument {
|
|
12
|
+
external_id: string;
|
|
13
|
+
file_name?: string | null;
|
|
14
|
+
file_type?: string | null;
|
|
15
|
+
file_size?: number | null;
|
|
16
|
+
folder?: string | null;
|
|
17
|
+
parent_ext_id?: string | null;
|
|
18
|
+
created_at?: string | null;
|
|
19
|
+
doc_metadata?: {
|
|
20
|
+
title?: string | null;
|
|
21
|
+
} | null;
|
|
22
|
+
}
|
|
23
|
+
export interface ExplorerFolder {
|
|
24
|
+
kind: 'folder';
|
|
25
|
+
/** The folder's own name (last path segment). */
|
|
26
|
+
name: string;
|
|
27
|
+
/** Full path segments from the root, including this folder. */
|
|
28
|
+
path: string[];
|
|
29
|
+
/** Number of documents anywhere beneath this folder. */
|
|
30
|
+
count: number;
|
|
31
|
+
}
|
|
32
|
+
export interface ExplorerFile<D extends FolderDocument = FolderDocument> {
|
|
33
|
+
kind: 'file';
|
|
34
|
+
doc: D;
|
|
35
|
+
}
|
|
36
|
+
export type ExplorerEntry<D extends FolderDocument = FolderDocument> = ExplorerFolder | ExplorerFile<D>;
|
|
37
|
+
export type ExplorerSort = 'name' | 'date' | 'size';
|
|
38
|
+
/**
|
|
39
|
+
* Display name for a document in the explorer, with its real file extension —
|
|
40
|
+
* the familiar "Report.pdf" form. Many documents store an AI-generated display
|
|
41
|
+
* title that drops the extension, so we re-attach it from the stored
|
|
42
|
+
* `file_name` or, failing that, the MIME `file_type`.
|
|
43
|
+
*/
|
|
44
|
+
export declare function getExplorerDisplayName(doc: FolderDocument): string;
|
|
45
|
+
/** Split a `Doc.folder` value into trimmed, non-empty path segments. */
|
|
46
|
+
export declare function parseFolderSegments(folder?: string | null): string[];
|
|
47
|
+
/** Join path segments back into a canonical `Doc.folder` string (or null at root). */
|
|
48
|
+
export declare function joinFolderPath(segments: string[]): string | null;
|
|
49
|
+
/**
|
|
50
|
+
* A document is shown in the explorer unless it belongs to an email family:
|
|
51
|
+
* attachments and archived messages (`parent_ext_id` set) live "inside" their
|
|
52
|
+
* email / archive and would otherwise clutter the folder view. Versions are not
|
|
53
|
+
* children — the list holds each document's current version only.
|
|
54
|
+
*/
|
|
55
|
+
export declare function isExplorerDocument(doc: FolderDocument): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Every explorer document that lives anywhere beneath `path` (directly in the
|
|
58
|
+
* folder or in a sub-folder). Used to expand a folder into the documents a
|
|
59
|
+
* folder-level action (select / move / download / delete / rename) applies to —
|
|
60
|
+
* "act on a folder" means "act on everything in it".
|
|
61
|
+
*/
|
|
62
|
+
export declare function collectFolderDocs<D extends FolderDocument>(documents: D[], path: string[]): D[];
|
|
63
|
+
/**
|
|
64
|
+
* Documents in the order the gallery shows them for a sort choice (and its
|
|
65
|
+
* direction toggle). Review mode steps through this same order.
|
|
66
|
+
*/
|
|
67
|
+
export declare function sortExplorerFiles<D extends FolderDocument>(docs: D[], sort: ExplorerSort, reversed?: boolean): D[];
|
|
68
|
+
/**
|
|
69
|
+
* Build the folders and files that live directly under `currentPath`.
|
|
70
|
+
*
|
|
71
|
+
* - Files: documents whose folder path exactly equals `currentPath`.
|
|
72
|
+
* - Folders: the distinct next path segment of any document nested deeper than
|
|
73
|
+
* `currentPath`, with `count` = number of documents beneath it.
|
|
74
|
+
*
|
|
75
|
+
* Folders are always sorted by name; files by the requested sort.
|
|
76
|
+
*/
|
|
77
|
+
export declare function buildExplorerEntries<D extends FolderDocument>(documents: D[], currentPath: string[], sort?: ExplorerSort, pendingFolders?: string[]): {
|
|
78
|
+
folders: ExplorerFolder[];
|
|
79
|
+
files: D[];
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Flat, cross-folder search over every top-level document by title / file name.
|
|
83
|
+
* Used when the explorer search box is non-empty (mirrors real file explorers,
|
|
84
|
+
* which flatten results and ignore the current folder while searching).
|
|
85
|
+
*/
|
|
86
|
+
export declare function searchExplorerDocuments<D extends FolderDocument>(documents: D[], query: string, sort?: ExplorerSort): D[];
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { getExplorerDisplayName, parseFolderSegments, joinFolderPath, isExplorerDocument, collectFolderDocs, sortExplorerFiles, buildExplorerEntries, searchExplorerDocuments, type FolderDocument, type ExplorerFolder, type ExplorerFile, type ExplorerEntry, type ExplorerSort, } from './folderPaths';
|
|
2
|
+
export { FolderProviderIcon, hasFolderProviderIcon, formatFolderSegment, } from './FolderProviderIcon';
|