@arbidocs/blocks 0.4.153 → 0.4.154
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-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-T74Q3MCZ.cjs → chunk-BDA3RHYD.cjs} +4 -4
- package/dist/{chunk-T74Q3MCZ.cjs.map → chunk-BDA3RHYD.cjs.map} +1 -1
- 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-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-HUJF2XM2.js → chunk-RE7NULEY.js} +3 -3
- package/dist/{chunk-HUJF2XM2.js.map → chunk-RE7NULEY.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-ZLEYLCE4.js → chunk-WK6FVIF7.js} +6 -156
- package/dist/chunk-WK6FVIF7.js.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 +1577 -962
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.d.ts +3 -0
- package/dist/connect/index.js +1014 -450
- package/dist/connect/index.js.map +1 -1
- package/dist/connect/viewer.cjs +66 -66
- package/dist/connect/viewer.js +10 -10
- package/dist/connection/ConnectionProvider.d.ts +7 -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/index.cjs +169 -169
- package/dist/files/index.js +3 -3
- 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 +510 -510
- package/dist/index.js +18 -18
- 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 +5 -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-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-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-ZLEYLCE4.js.map +0 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { ConnectedConversation, ConnectedDocument } from '../workspaceData';
|
|
2
|
+
/**
|
|
3
|
+
* Rows per card: as far back as "recent" usefully reaches, and what lets the whole dashboard land
|
|
4
|
+
* on one 900px-tall screen.
|
|
5
|
+
*/
|
|
6
|
+
export declare const RECENT_ROWS = 5;
|
|
7
|
+
/** Rows per facts group: a glanceable band, not a third list. */
|
|
8
|
+
export declare const FACT_ROWS = 3;
|
|
9
|
+
/** "30 Jun": an upcoming date shows as the date, not an age. */
|
|
10
|
+
export declare function shortDate(iso: string): string;
|
|
11
|
+
/** "14:30 · 4 Jan": the exact time (24h) before the date. */
|
|
12
|
+
export declare function timeAndDate(iso: string | null | undefined): string;
|
|
13
|
+
/** "low-content" → "Low content": a processing state in words. */
|
|
14
|
+
export declare function humanizeStatus(status: string): string;
|
|
15
|
+
export interface DashboardRowData {
|
|
16
|
+
id: string;
|
|
17
|
+
title: string;
|
|
18
|
+
subtitle: string;
|
|
19
|
+
time: string;
|
|
20
|
+
}
|
|
21
|
+
/** A task says where it stands (and when it is due); a plain thread says how long it is. */
|
|
22
|
+
export declare function recentConversations(conversations: ConnectedConversation[]): DashboardRowData[];
|
|
23
|
+
/** A file still processing says so; otherwise its length. */
|
|
24
|
+
export declare function recentDocuments(documents: ConnectedDocument[]): Array<DashboardRowData & {
|
|
25
|
+
fileName: string | null | undefined;
|
|
26
|
+
}>;
|
|
27
|
+
export type DashboardFactRow = Omit<DashboardRowData, 'subtitle'>;
|
|
28
|
+
interface DashboardFact {
|
|
29
|
+
external_id: string;
|
|
30
|
+
text: string;
|
|
31
|
+
date_start?: string | null;
|
|
32
|
+
created_at?: string | null;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Upcoming: dated facts from today on, soonest first (what you plan around). Recent: the newest of
|
|
36
|
+
* the rest (what the work just learned), stamped like the other rows.
|
|
37
|
+
*/
|
|
38
|
+
export declare function splitFacts(facts: DashboardFact[], now?: Date): {
|
|
39
|
+
upcoming: DashboardFactRow[];
|
|
40
|
+
recent: DashboardFactRow[];
|
|
41
|
+
};
|
|
42
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ConnectedWorkspaceDashboard, type ConnectedWorkspaceDashboardProps, type WorkspaceDashboardActions, } from './ConnectedWorkspaceDashboard';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The user's workspaces, grouped by project, as cards or as a table: the page a user picks a
|
|
3
|
+
* workspace from. A filter over projects and workspace kinds, "New" (the host's create dialog), a
|
|
4
|
+
* project's name opens the project (`BlocksEnvironment.openProject`), a workspace opens it
|
|
5
|
+
* (`useConnectedWorkspace().openWorkspace`), and the table deletes a selection.
|
|
6
|
+
*
|
|
7
|
+
* A host may keep the view, the filters and the table's column state across visits (controlled
|
|
8
|
+
* props), and add tabs of its own beside "Workspaces" (`extraTabs`, with `children` as their body).
|
|
9
|
+
*/
|
|
10
|
+
import { type ReactNode } from 'react';
|
|
11
|
+
import type { GridState } from 'ag-grid-community';
|
|
12
|
+
import { type Tab } from '../../shell/TabHeader';
|
|
13
|
+
import { type WorkspaceListFilters, type WorkspaceListLabels } from './useConnectedWorkspaceList';
|
|
14
|
+
import type { RenderWorkspaceMember } from './workspaceTable';
|
|
15
|
+
export type WorkspaceListView = 'cards' | 'table';
|
|
16
|
+
/** The base tab's id. */
|
|
17
|
+
export declare const WORKSPACES_TAB_ID = "workspaces";
|
|
18
|
+
export interface ConnectedWorkspaceListProps {
|
|
19
|
+
/** Open the host's new-workspace dialog, in a project when given. */
|
|
20
|
+
onCreateWorkspace: (projectId?: string) => void;
|
|
21
|
+
view?: WorkspaceListView;
|
|
22
|
+
onViewChange?: (view: WorkspaceListView) => void;
|
|
23
|
+
filters?: WorkspaceListFilters;
|
|
24
|
+
onFiltersChange?: (filters: WorkspaceListFilters) => void;
|
|
25
|
+
/** The table's column state (widths, order, sort). */
|
|
26
|
+
gridState?: GridState;
|
|
27
|
+
onGridStateChange?: (state: GridState) => void;
|
|
28
|
+
/** A person in the table's Members column. Default: a plain avatar. */
|
|
29
|
+
renderMember?: RenderWorkspaceMember;
|
|
30
|
+
/** The host's tabs after "Workspaces"; `children` is the body while one of them is active. */
|
|
31
|
+
extraTabs?: Tab[];
|
|
32
|
+
activeTab?: string;
|
|
33
|
+
onTabChange?: (tabId: string) => void;
|
|
34
|
+
children?: ReactNode;
|
|
35
|
+
labels?: Partial<WorkspaceListLabels>;
|
|
36
|
+
}
|
|
37
|
+
export declare function ConnectedWorkspaceList({ onCreateWorkspace, view: controlledView, onViewChange, filters, onFiltersChange, gridState, onGridStateChange, renderMember, extraTabs, activeTab, onTabChange, children, labels, }: ConnectedWorkspaceListProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type WorkspaceSummary } from '../../workspaces/WorkspaceCard';
|
|
2
|
+
import { type GroupedWorkspace } from '../../workspaces/workspace-groups';
|
|
3
|
+
import type { ConnectedWorkspaceListState } from './useConnectedWorkspaceList';
|
|
4
|
+
/** A workspace as its card shows it: summed counts, people only (owners first). */
|
|
5
|
+
export declare function toWorkspaceSummary(workspace: GroupedWorkspace, selfId: string | undefined): WorkspaceSummary;
|
|
6
|
+
export interface WorkspaceCardsViewProps {
|
|
7
|
+
list: ConnectedWorkspaceListState;
|
|
8
|
+
/** The open workspace (its card is marked current). */
|
|
9
|
+
currentWorkspaceId: string | null;
|
|
10
|
+
onOpenWorkspace: (workspace: GroupedWorkspace) => void;
|
|
11
|
+
onOpenProject: (projectId: string) => void;
|
|
12
|
+
onCreateWorkspace: (projectId?: string) => void;
|
|
13
|
+
createDisabledReason?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function WorkspaceCardsView({ list, currentWorkspaceId, onOpenWorkspace, onOpenProject, onCreateWorkspace, createDisabledReason, }: WorkspaceCardsViewProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { GridState } from 'ag-grid-community';
|
|
2
|
+
import type { GroupedWorkspace } from '../../workspaces/workspace-groups';
|
|
3
|
+
import type { ConnectedWorkspaceListState } from './useConnectedWorkspaceList';
|
|
4
|
+
import { type RenderWorkspaceMember } from './workspaceTable';
|
|
5
|
+
export interface WorkspaceTableViewProps {
|
|
6
|
+
list: ConnectedWorkspaceListState;
|
|
7
|
+
onOpenWorkspace: (workspace: GroupedWorkspace) => void;
|
|
8
|
+
onOpenProject: (projectId: string) => void;
|
|
9
|
+
renderMember: RenderWorkspaceMember;
|
|
10
|
+
gridState?: GridState;
|
|
11
|
+
onGridStateChange?: (state: GridState) => void;
|
|
12
|
+
}
|
|
13
|
+
export declare function WorkspaceTableView({ list, onOpenWorkspace, onOpenProject, renderMember, gridState, onGridStateChange, }: WorkspaceTableViewProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { ConnectedWorkspaceList, WORKSPACES_TAB_ID, type ConnectedWorkspaceListProps, type WorkspaceListView, } from './ConnectedWorkspaceList';
|
|
2
|
+
export { useConnectedWorkspaceList, DEFAULT_WORKSPACE_LIST_LABELS, type ConnectedWorkspaceListState, type UseConnectedWorkspaceListOptions, type WorkspaceListFilters, type WorkspaceListLabels, } from './useConnectedWorkspaceList';
|
|
3
|
+
export { toWorkspaceSummary } from './WorkspaceCardsView';
|
|
4
|
+
export type { RenderWorkspaceMember } from './workspaceTable';
|
|
5
|
+
export { projectGroupBilling, type ProjectGroupBilling } from './projectBilling';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a project's group in the workspace list says about the project itself: its plan badge (own
|
|
3
|
+
* projects, where plans are sold), the usage readout beside its name, and the plan and limits
|
|
4
|
+
* breakdown behind the name. One source for the cards' bands and the table's headings.
|
|
5
|
+
*/
|
|
6
|
+
import type { ReactNode } from 'react';
|
|
7
|
+
import type { components } from '@arbidocs/client';
|
|
8
|
+
type Project = components['schemas']['ProjectResponse'];
|
|
9
|
+
export interface ProjectGroupBilling {
|
|
10
|
+
/** The plan badge: own projects only, where plans are sold. */
|
|
11
|
+
planBadge?: ReactNode;
|
|
12
|
+
/** Plan and usage, right after the name (projects with quotas). */
|
|
13
|
+
readout?: ReactNode;
|
|
14
|
+
/** The plan and limits panel behind the name; meters for own projects only. */
|
|
15
|
+
breakdown?: ReactNode;
|
|
16
|
+
}
|
|
17
|
+
export declare function projectGroupBilling(project: Project | undefined, { isOwned, stripeEnabled }: {
|
|
18
|
+
isOwned: boolean;
|
|
19
|
+
stripeEnabled: boolean;
|
|
20
|
+
}): ProjectGroupBilling;
|
|
21
|
+
export {};
|
|
@@ -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';
|