@arbidocs/blocks 0.4.138 → 0.4.139
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/agents/definitions/AgentConnectInstructions.d.ts +12 -0
- package/dist/agents/definitions/defaults.d.ts +12 -0
- package/dist/agents/definitions/index.d.ts +2 -0
- package/dist/agents/index.cjs +335 -320
- package/dist/agents/index.js +9 -10
- package/dist/calendar/CalendarFormDialog.d.ts +13 -0
- package/dist/calendar/ProposeTimeDialog.d.ts +22 -0
- package/dist/calendar/WeeklyHoursEditor.d.ts +7 -0
- package/dist/calendar/access-setup.d.ts +8 -0
- package/dist/calendar/api-mapping.d.ts +22 -0
- package/dist/calendar/booking-form.d.ts +46 -0
- package/dist/calendar/conference.d.ts +11 -0
- package/dist/calendar/errors.d.ts +7 -0
- package/dist/calendar/feeds.d.ts +2 -0
- package/dist/calendar/freebusy.d.ts +22 -0
- package/dist/calendar/ics.d.ts +33 -0
- package/dist/calendar/index.cjs +472 -4293
- package/dist/calendar/index.cjs.map +1 -1
- package/dist/calendar/index.d.ts +17 -1
- package/dist/calendar/index.js +1 -4227
- package/dist/calendar/index.js.map +1 -1
- package/dist/calendar/requests.d.ts +42 -0
- package/dist/calendar/room-window.d.ts +6 -0
- package/dist/calendar/settings-value.d.ts +4 -0
- package/dist/calls/index.cjs +4 -4
- package/dist/calls/index.js +3 -3
- package/dist/chat/index.cjs +138 -138
- package/dist/chat/index.js +4 -4
- package/dist/{chunk-ED4HHTIA.js → chunk-22WFGXG2.js} +3 -3
- package/dist/{chunk-ED4HHTIA.js.map → chunk-22WFGXG2.js.map} +1 -1
- package/dist/{chunk-5BXEYYH6.js → chunk-453PNNNW.js} +3 -3
- package/dist/{chunk-5BXEYYH6.js.map → chunk-453PNNNW.js.map} +1 -1
- package/dist/{chunk-2KUCVSFF.js → chunk-45LRMW54.js} +3 -3
- package/dist/{chunk-2KUCVSFF.js.map → chunk-45LRMW54.js.map} +1 -1
- package/dist/chunk-5FTIHRZH.cjs +177 -0
- package/dist/chunk-5FTIHRZH.cjs.map +1 -0
- package/dist/{chunk-FUTMU4FR.js → chunk-5HFPRI3W.js} +3 -3
- package/dist/{chunk-FUTMU4FR.js.map → chunk-5HFPRI3W.js.map} +1 -1
- package/dist/{chunk-MJKBVIV3.cjs → chunk-5UXDUOOB.cjs} +39 -751
- package/dist/chunk-5UXDUOOB.cjs.map +1 -0
- package/dist/{chunk-XVME4XYD.js → chunk-6QMWP5IU.js} +847 -9
- package/dist/chunk-6QMWP5IU.js.map +1 -0
- package/dist/chunk-6YTHQ73P.cjs +5334 -0
- package/dist/chunk-6YTHQ73P.cjs.map +1 -0
- package/dist/{chunk-UBEI6WFJ.js → chunk-7QUUZBQZ.js} +13 -706
- package/dist/chunk-7QUUZBQZ.js.map +1 -0
- package/dist/{chunk-JVL7HUIQ.cjs → chunk-7X255TOM.cjs} +5 -5
- package/dist/{chunk-JVL7HUIQ.cjs.map → chunk-7X255TOM.cjs.map} +1 -1
- package/dist/chunk-A3XPS2EU.js +245 -0
- package/dist/chunk-A3XPS2EU.js.map +1 -0
- package/dist/chunk-B3AHCIV5.js +5206 -0
- package/dist/chunk-B3AHCIV5.js.map +1 -0
- package/dist/{chunk-2Q7FDZAY.js → chunk-BPBSSMRB.js} +5 -163
- package/dist/chunk-BPBSSMRB.js.map +1 -0
- package/dist/{chunk-KSHKTOY2.js → chunk-CKCBBYTA.js} +205 -5
- package/dist/chunk-CKCBBYTA.js.map +1 -0
- package/dist/chunk-CYNF5PZI.js +170 -0
- package/dist/chunk-CYNF5PZI.js.map +1 -0
- package/dist/{chunk-OPTBQSCV.cjs → chunk-DJM7DLCT.cjs} +3 -3
- package/dist/{chunk-OPTBQSCV.cjs.map → chunk-DJM7DLCT.cjs.map} +1 -1
- package/dist/{chunk-E5OYHJMU.js → chunk-DN55PRGS.js} +4 -4
- package/dist/{chunk-E5OYHJMU.js.map → chunk-DN55PRGS.js.map} +1 -1
- package/dist/{chunk-VHJHY7TT.js → chunk-ECERC6TI.js} +3 -3
- package/dist/{chunk-VHJHY7TT.js.map → chunk-ECERC6TI.js.map} +1 -1
- package/dist/{chunk-KDUGTKVI.cjs → chunk-GFNELPDP.cjs} +17 -6
- package/dist/chunk-GFNELPDP.cjs.map +1 -0
- package/dist/{chunk-OGBXV326.cjs → chunk-GFRQG36Y.cjs} +2 -243
- package/dist/chunk-GFRQG36Y.cjs.map +1 -0
- package/dist/{chunk-WXYQ66KC.cjs → chunk-HEMU73OP.cjs} +2 -166
- package/dist/chunk-HEMU73OP.cjs.map +1 -0
- package/dist/{chunk-UUHUQHXR.cjs → chunk-JZNXRMLH.cjs} +6 -6
- package/dist/{chunk-UUHUQHXR.cjs.map → chunk-JZNXRMLH.cjs.map} +1 -1
- package/dist/{chunk-IE5CUCZK.cjs → chunk-K3HNLWZZ.cjs} +8 -8
- package/dist/{chunk-IE5CUCZK.cjs.map → chunk-K3HNLWZZ.cjs.map} +1 -1
- package/dist/{chunk-JO3EMZ4X.js → chunk-KTFDUSON.js} +3 -3
- package/dist/{chunk-JO3EMZ4X.js.map → chunk-KTFDUSON.js.map} +1 -1
- package/dist/{chunk-HLB4DIYV.cjs → chunk-MABUMUCA.cjs} +6 -6
- package/dist/{chunk-HLB4DIYV.cjs.map → chunk-MABUMUCA.cjs.map} +1 -1
- package/dist/{chunk-RQ2Y7USX.cjs → chunk-MIDXCYZB.cjs} +235 -15
- package/dist/chunk-MIDXCYZB.cjs.map +1 -0
- package/dist/{chunk-ZNI4SW2G.js → chunk-MTPWZQTL.js} +4 -4
- package/dist/{chunk-ZNI4SW2G.js.map → chunk-MTPWZQTL.js.map} +1 -1
- package/dist/{chunk-OAL3B2ZU.cjs → chunk-O4ZIQDUT.cjs} +5 -5
- package/dist/{chunk-OAL3B2ZU.cjs.map → chunk-O4ZIQDUT.cjs.map} +1 -1
- package/dist/{chunk-W3VYZXNS.js → chunk-O6W6RW3B.js} +5 -240
- package/dist/chunk-O6W6RW3B.js.map +1 -0
- package/dist/{chunk-WS5EX7DN.cjs → chunk-OGP6MQXQ.cjs} +3 -3
- package/dist/{chunk-WS5EX7DN.cjs.map → chunk-OGP6MQXQ.cjs.map} +1 -1
- package/dist/{chunk-OQ7RUNOC.js → chunk-PC5KVHX3.js} +22 -6
- package/dist/chunk-PC5KVHX3.js.map +1 -0
- package/dist/{chunk-3BI6EWKP.cjs → chunk-ULEDHANM.cjs} +874 -14
- package/dist/chunk-ULEDHANM.cjs.map +1 -0
- package/dist/{chunk-L2PAPOZ5.js → chunk-US3S4DCB.js} +17 -6
- package/dist/chunk-US3S4DCB.js.map +1 -0
- package/dist/chunk-V46W7YLI.cjs +252 -0
- package/dist/chunk-V46W7YLI.cjs.map +1 -0
- package/dist/{chunk-3RJN2VTL.js → chunk-XDQXDWE7.js} +3 -3
- package/dist/{chunk-3RJN2VTL.js.map → chunk-XDQXDWE7.js.map} +1 -1
- package/dist/{chunk-7YLJHTDC.cjs → chunk-XOC44HQY.cjs} +3 -3
- package/dist/{chunk-7YLJHTDC.cjs.map → chunk-XOC44HQY.cjs.map} +1 -1
- package/dist/{chunk-DWZXSPMB.cjs → chunk-ZAVEMQ37.cjs} +3 -3
- package/dist/{chunk-DWZXSPMB.cjs.map → chunk-ZAVEMQ37.cjs.map} +1 -1
- package/dist/{chunk-AAFX64WD.cjs → chunk-ZXAWOLBQ.cjs} +22 -5
- package/dist/chunk-ZXAWOLBQ.cjs.map +1 -0
- package/dist/citations/QuietMarks.d.ts +5 -2
- package/dist/citations/index.cjs +15 -14
- package/dist/citations/index.js +3 -2
- package/dist/collaboration/index.cjs +42 -42
- package/dist/collaboration/index.js +2 -2
- package/dist/connect/docx.cjs +6 -6
- package/dist/connect/docx.js +5 -5
- package/dist/connect/index.cjs +4797 -184
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.d.ts +4 -0
- package/dist/connect/index.js +4687 -94
- package/dist/connect/index.js.map +1 -1
- package/dist/connection/ConnectedAgentCreator.d.ts +37 -0
- package/dist/connection/ConnectedWorkflowHistory.d.ts +45 -0
- package/dist/connection/ConnectionProvider.d.ts +3 -1
- package/dist/connection/calendar/AddCalendarDialogs.d.ts +9 -0
- package/dist/connection/calendar/BookingPagesPanel.d.ts +13 -0
- package/dist/connection/calendar/CalendarAccountsPanel.d.ts +5 -0
- package/dist/connection/calendar/CalendarSettingsDialog.d.ts +12 -0
- package/dist/connection/calendar/ConnectedCalendar.d.ts +13 -0
- package/dist/connection/calendar/ConnectedMailInviteCard.d.ts +12 -0
- package/dist/connection/calendar/ConnectedPublicBooking.d.ts +9 -0
- package/dist/connection/calendar/ConnectedUpcomingEvents.d.ts +12 -0
- package/dist/connection/calendar/CopyField.d.ts +9 -0
- package/dist/connection/calendar/EventEditorDialog.d.ts +29 -0
- package/dist/connection/calendar/EventScheduling.d.ts +8 -0
- package/dist/connection/calendar/InvitationsPanel.d.ts +5 -0
- package/dist/connection/calendar/OpenAccessPanel.d.ts +7 -0
- package/dist/connection/calendar/PublishCalendarDialog.d.ts +8 -0
- package/dist/connection/calendar/RoomsDirectoryPanel.d.ts +8 -0
- package/dist/connection/calendar/ShareCalendarDialog.d.ts +6 -0
- package/dist/connection/calendar/copy.d.ts +2 -0
- package/dist/connection/calendar/index.d.ts +6 -0
- package/dist/connection/calendar/store.d.ts +47 -0
- package/dist/connection/calendar/types.d.ts +36 -0
- package/dist/connection/calendar/useWebinarAttendee.d.ts +3 -0
- package/dist/connection/notification-center/ConnectedNotificationCenter.d.ts +15 -0
- package/dist/connection/notification-center/NotificationCenter.d.ts +37 -0
- package/dist/connection/notification-center/NotificationEvent.d.ts +33 -0
- package/dist/connection/notification-center/index.d.ts +4 -0
- package/dist/connection/notification-center/items.d.ts +44 -0
- package/dist/facts/index.cjs +6 -6
- package/dist/facts/index.js +6 -6
- package/dist/files/index.cjs +6 -6
- package/dist/files/index.js +6 -6
- package/dist/home/index.cjs +20 -20
- package/dist/home/index.js +5 -5
- package/dist/index.cjs +921 -904
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +22 -21
- package/dist/index.js.map +1 -1
- package/dist/retrieval/index.cjs +1 -1
- package/dist/retrieval/index.js +1 -1
- package/dist/settings/index.cjs +52 -66
- package/dist/settings/index.cjs.map +1 -1
- package/dist/settings/index.js +6 -23
- package/dist/settings/index.js.map +1 -1
- package/dist/shell/index.cjs +61 -60
- package/dist/shell/index.js +5 -4
- package/dist/studio/index.cjs +8 -8
- package/dist/studio/index.js +6 -6
- package/dist/workflow-canvas/index.cjs +28 -29
- package/dist/workflow-canvas/index.cjs.map +1 -1
- package/dist/workflow-canvas/index.js +11 -12
- package/dist/workflow-canvas/index.js.map +1 -1
- package/dist/workspaces/index.cjs +2 -2
- package/dist/workspaces/index.js +2 -2
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +4 -4
- package/dist/chunk-2Q7FDZAY.js.map +0 -1
- package/dist/chunk-3BI6EWKP.cjs.map +0 -1
- package/dist/chunk-AAFX64WD.cjs.map +0 -1
- package/dist/chunk-CQCC7LE7.js +0 -210
- package/dist/chunk-CQCC7LE7.js.map +0 -1
- package/dist/chunk-KDUGTKVI.cjs.map +0 -1
- package/dist/chunk-KSHKTOY2.js.map +0 -1
- package/dist/chunk-L2PAPOZ5.js.map +0 -1
- package/dist/chunk-MJKBVIV3.cjs.map +0 -1
- package/dist/chunk-OGBXV326.cjs.map +0 -1
- package/dist/chunk-OQ7RUNOC.js.map +0 -1
- package/dist/chunk-RFIBUWLF.cjs +0 -232
- package/dist/chunk-RFIBUWLF.cjs.map +0 -1
- package/dist/chunk-RQ2Y7USX.cjs.map +0 -1
- package/dist/chunk-UBEI6WFJ.js.map +0 -1
- package/dist/chunk-W3VYZXNS.js.map +0 -1
- package/dist/chunk-WXYQ66KC.cjs.map +0 -1
- package/dist/chunk-XVME4XYD.js.map +0 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create or edit an agent, bound to the connection: describe what it is for (or start from a
|
|
3
|
+
* template), see what it can do, save. Saving creates the agent if it is new, then pins its config:
|
|
4
|
+
* the base config (the agent's own, else the library default) with its `Agents` section patched
|
|
5
|
+
* (persona with its name, model, tool switches, skills, connected tools). The workspaces ticked
|
|
6
|
+
* under Advanced are granted (standing access); an external agent then shows its one-time
|
|
7
|
+
* connection script. An avatar can be generated once it has a name.
|
|
8
|
+
*/
|
|
9
|
+
import { type AgentCapability, type AgentCreatorLabels, type AgentTemplate } from '../agents/definitions/AgentCreator';
|
|
10
|
+
import { type AgentTypeOption } from '../agents/definitions/AgentEditorParts';
|
|
11
|
+
/** The agent being edited: its id, name, picture and address. */
|
|
12
|
+
export interface ConnectedAgentCreatorAgent {
|
|
13
|
+
external_id: string;
|
|
14
|
+
given_name: string;
|
|
15
|
+
picture?: string | null;
|
|
16
|
+
email?: string | null;
|
|
17
|
+
}
|
|
18
|
+
export interface ConnectedAgentCreatorProps {
|
|
19
|
+
open: boolean;
|
|
20
|
+
onOpenChange: (open: boolean) => void;
|
|
21
|
+
/** Present: edit it; absent: create one. */
|
|
22
|
+
agent?: ConnectedAgentCreatorAgent | null;
|
|
23
|
+
/** The name a new agent starts with (e.g. a connection that needs `SlackAssistant`). */
|
|
24
|
+
initialName?: string;
|
|
25
|
+
/** Saved: the new or updated agent's id. */
|
|
26
|
+
onSaved?: (agentExtId: string) => void;
|
|
27
|
+
capabilities?: AgentCapability[];
|
|
28
|
+
templates?: AgentTemplate[];
|
|
29
|
+
types?: AgentTypeOption<string>[];
|
|
30
|
+
/**
|
|
31
|
+
* Offer to take a granted workspace back. It re-opens workspaces on the session to do it, so a
|
|
32
|
+
* host whose session keeps one workspace open (the ARBI app) leaves it off.
|
|
33
|
+
*/
|
|
34
|
+
canRevokeWorkspaces?: boolean;
|
|
35
|
+
labels?: Partial<AgentCreatorLabels>;
|
|
36
|
+
}
|
|
37
|
+
export declare function ConnectedAgentCreator({ open, onOpenChange, agent, initialName, onSaved, capabilities, templates, types, canRevokeWorkspaces, labels, }: ConnectedAgentCreatorProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A saved workflow's history and a task's activity, bound to the connection.
|
|
3
|
+
*
|
|
4
|
+
* - `ConnectedWorkflowHistory`: every run of a workflow (re-read while shown), each with when, what
|
|
5
|
+
* it was (a thread, an email, an AI review, a reminder) and how it went; a run's thread opens
|
|
6
|
+
* through the environment's `openConversation`, a document action's result through the host.
|
|
7
|
+
* - `ConnectedTaskActivityDialog`: a task's timeline (re-read while it runs), with who did what.
|
|
8
|
+
*/
|
|
9
|
+
import { type ReactNode } from 'react';
|
|
10
|
+
import { useWorkflowRuns } from '@arbidocs/react';
|
|
11
|
+
import { type TaskRunView, type TaskRunsDialogLabels } from '../agents/tasks/TaskRunsDialog';
|
|
12
|
+
import { type TaskPerson } from '../agents/tasks/PersonPill';
|
|
13
|
+
type WorkflowRun = NonNullable<ReturnType<typeof useWorkflowRuns>['data']>[number];
|
|
14
|
+
/** A run as the history lists it: when, what, on how many documents. */
|
|
15
|
+
export declare function workflowRunView(run: WorkflowRun, formatDate: (iso: string) => string): TaskRunView;
|
|
16
|
+
export interface ConnectedWorkflowHistoryProps {
|
|
17
|
+
/** The workflow (`null`: closed). */
|
|
18
|
+
workflow: {
|
|
19
|
+
external_id: string;
|
|
20
|
+
name: string;
|
|
21
|
+
} | null;
|
|
22
|
+
onOpenChange: (open: boolean) => void;
|
|
23
|
+
/** In the page rather than a dialog. */
|
|
24
|
+
inline?: boolean;
|
|
25
|
+
hideHeader?: boolean;
|
|
26
|
+
formatDate?: (iso: string) => string;
|
|
27
|
+
/** Open a document action's result (an AI review's fields): the host's. Absent: no Open. */
|
|
28
|
+
onOpenResult?: (run: WorkflowRun) => void;
|
|
29
|
+
/** Under a failed run: e.g. a way to report it. */
|
|
30
|
+
renderErrorReport?: (run: TaskRunView) => ReactNode;
|
|
31
|
+
labels?: Partial<TaskRunsDialogLabels>;
|
|
32
|
+
}
|
|
33
|
+
export declare function ConnectedWorkflowHistory({ workflow, onOpenChange, inline, hideHeader, formatDate, onOpenResult, renderErrorReport, labels, }: ConnectedWorkflowHistoryProps): import("react").JSX.Element;
|
|
34
|
+
export interface ConnectedTaskActivityDialogProps {
|
|
35
|
+
conversationId: string;
|
|
36
|
+
taskName: string;
|
|
37
|
+
/** The run is generating right now: the timeline then re-reads itself every few seconds. */
|
|
38
|
+
live?: boolean;
|
|
39
|
+
onClose: () => void;
|
|
40
|
+
/** How a person shows (the host's own pill). Default: the shared pill with their name. */
|
|
41
|
+
renderPerson?: (person: TaskPerson) => ReactNode;
|
|
42
|
+
formatExact?: (iso: string) => string;
|
|
43
|
+
}
|
|
44
|
+
export declare function ConnectedTaskActivityDialog({ conversationId, taskName, live, onClose, renderPerson: renderTaskPerson, formatExact, }: ConnectedTaskActivityDialogProps): import("react").JSX.Element;
|
|
45
|
+
export {};
|
|
@@ -61,10 +61,12 @@ export declare function useConnection(): ConnectionValue;
|
|
|
61
61
|
export declare const isAuthenticated: (s: ConnectionStatus) => s is "demo" | "authenticated";
|
|
62
62
|
/** The open workspace as the connected kits see it, whoever hosts them. */
|
|
63
63
|
export interface ConnectedWorkspace {
|
|
64
|
-
/** The selected workspace (the session state's). */
|
|
64
|
+
/** The selected workspace (the session state's; with a connection, else its fallback). */
|
|
65
65
|
workspaceId: string | null;
|
|
66
66
|
/** Signed in to a live backend: workspace-scoped queries may run. */
|
|
67
67
|
live: boolean;
|
|
68
|
+
/** The signed-in user (their name and email, e.g. to sign a document). */
|
|
69
|
+
user: ArbiUser | null;
|
|
68
70
|
/** The signed-in user's external id. */
|
|
69
71
|
userId: string | undefined;
|
|
70
72
|
/** Re-assert the workspace on the server session before a workspace-scoped write. */
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function SubscribeDialog({ open, timeZone, onClose, }: {
|
|
2
|
+
open: boolean;
|
|
3
|
+
timeZone: string;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
}): import("react").JSX.Element;
|
|
6
|
+
export declare function HolidaysDialog({ open, onClose }: {
|
|
7
|
+
open: boolean;
|
|
8
|
+
onClose: () => void;
|
|
9
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type BookingPage } from '@arbidocs/react';
|
|
2
|
+
export interface BookingPageFormProps {
|
|
3
|
+
page?: BookingPage | null;
|
|
4
|
+
defaultTimeZone: string;
|
|
5
|
+
onDone: () => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function BookingPageForm({ page, defaultTimeZone, onDone }: BookingPageFormProps): import("react").JSX.Element;
|
|
8
|
+
export interface BookingPagesPanelProps {
|
|
9
|
+
/** Zone for new pages; defaults to the calendar settings zone, then the browser's. */
|
|
10
|
+
defaultTimeZone?: string;
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function BookingPagesPanel({ defaultTimeZone, className }: BookingPagesPanelProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type CalendarSettings } from '@arbidocs/react';
|
|
2
|
+
import { type CalendarListItem } from '../../calendar';
|
|
3
|
+
export type CalendarSettingsTab = 'general' | 'accounts' | 'access' | 'booking' | 'rooms';
|
|
4
|
+
export interface CalendarSettingsDialogProps {
|
|
5
|
+
open: boolean;
|
|
6
|
+
settings: CalendarSettings;
|
|
7
|
+
calendars: CalendarListItem[];
|
|
8
|
+
/** Tab to show when the dialog opens (default General). */
|
|
9
|
+
initialTab?: CalendarSettingsTab;
|
|
10
|
+
onClose: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function CalendarSettingsDialog({ open, settings, calendars, initialTab, onClose, }: CalendarSettingsDialogProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type CalendarCallSupport, type CalendarOverlayLink } from './types';
|
|
2
|
+
export interface ConnectedCalendarProps {
|
|
3
|
+
/** ARBI calls for events (the host's calls stack). Without it: no "Add ARBI call", Join opens links. */
|
|
4
|
+
calls?: CalendarCallSupport;
|
|
5
|
+
/**
|
|
6
|
+
* Open what an overlay item (a fact, workflow or task) points to. Default: a conversation opens
|
|
7
|
+
* through the blocks environment; the rest does nothing.
|
|
8
|
+
*/
|
|
9
|
+
onOpenOverlay?: (link: CalendarOverlayLink) => void;
|
|
10
|
+
/** Turn the account sync on open off (a host that syncs elsewhere). Default on. */
|
|
11
|
+
syncAccountsOnOpen?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function ConnectedCalendar({ calls, onOpenOverlay, syncAccountsOnOpen, }?: ConnectedCalendarProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type MailAttachment } from '@arbidocs/react';
|
|
2
|
+
export interface ConnectedMailInviteCardProps {
|
|
3
|
+
accountId: string;
|
|
4
|
+
messageId: string;
|
|
5
|
+
attachments: MailAttachment[];
|
|
6
|
+
isOnline: boolean;
|
|
7
|
+
/** Open the event in the host's calendar ("Open in calendar"); without it the button is hidden. */
|
|
8
|
+
onOpenEvent?: (event: {
|
|
9
|
+
id: string;
|
|
10
|
+
}) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function ConnectedMailInviteCard({ accountId, messageId, attachments, isOnline, onOpenEvent, }: ConnectedMailInviteCardProps): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** The cancel link a guest can keep: this page with `?cancel=<token>`. */
|
|
2
|
+
export declare function bookingCancelLink(slug: string, token: string, origin?: string): string;
|
|
3
|
+
export interface ConnectedPublicBookingProps {
|
|
4
|
+
/** The booking page's slug (`/book/<slug>`). */
|
|
5
|
+
slug: string;
|
|
6
|
+
/** A guest's cancel token (`?cancel=`): the page offers to cancel that booking instead. */
|
|
7
|
+
cancelToken?: string | null;
|
|
8
|
+
}
|
|
9
|
+
export declare function ConnectedPublicBooking({ slug, cancelToken }: ConnectedPublicBookingProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type CalendarEvent } from '@arbidocs/react';
|
|
2
|
+
export interface ConnectedUpcomingEventsProps {
|
|
3
|
+
timeZone: string;
|
|
4
|
+
days?: number;
|
|
5
|
+
limit?: number;
|
|
6
|
+
showDeclined?: boolean;
|
|
7
|
+
onOpen?: (event: CalendarEvent) => void;
|
|
8
|
+
/** Join an event's meeting (the host's calls). Default: the link opens in a new tab. */
|
|
9
|
+
onJoin?: (event: CalendarEvent) => void;
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function ConnectedUpcomingEvents({ timeZone, days, limit, showDeclined, onOpen, onJoin, className, }: ConnectedUpcomingEventsProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface CopyFieldProps {
|
|
2
|
+
label: string;
|
|
3
|
+
value: string;
|
|
4
|
+
/** Monospace + break anywhere (secrets, URLs). */
|
|
5
|
+
mono?: boolean;
|
|
6
|
+
testId?: string;
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function CopyField({ label, value, mono, testId, className }: CopyFieldProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type CalendarEvent, type CalendarSettings } from '@arbidocs/react';
|
|
2
|
+
import { type AttendeeDraft, type CalendarListItem, type EventDraft } from '../../calendar';
|
|
3
|
+
export interface EditorState {
|
|
4
|
+
mode: 'create' | 'edit';
|
|
5
|
+
event?: CalendarEvent;
|
|
6
|
+
original: EventDraft;
|
|
7
|
+
draft: EventDraft;
|
|
8
|
+
error: string | null;
|
|
9
|
+
/** "Add ARBI call" pre-ticked (scheduled from a thread / DM): the call is made when the event is saved. */
|
|
10
|
+
autoCall?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface EventEditorDialogProps {
|
|
13
|
+
editor: EditorState | null;
|
|
14
|
+
onChange: (update: (editor: EditorState | null) => EditorState | null) => void;
|
|
15
|
+
onSave: () => void;
|
|
16
|
+
onDelete: (event: CalendarEvent) => void;
|
|
17
|
+
/** The calendars an event can be saved to. */
|
|
18
|
+
calendars: CalendarListItem[];
|
|
19
|
+
callsEnabled: boolean;
|
|
20
|
+
onAddCall: (draft: EventDraft) => Promise<{
|
|
21
|
+
call_id: string;
|
|
22
|
+
url: string;
|
|
23
|
+
}>;
|
|
24
|
+
isWebinarAttendee: (attendee: AttendeeDraft) => boolean;
|
|
25
|
+
timeZone: string;
|
|
26
|
+
workingHours: CalendarSettings['working_hours'];
|
|
27
|
+
saving: boolean;
|
|
28
|
+
}
|
|
29
|
+
export declare function EventEditorDialog({ editor, onChange, onSave, onDelete, calendars, callsEnabled, onAddCall, isWebinarAttendee, timeZone, workingHours, saving, }: EventEditorDialogProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type EventDraft } from '../../calendar';
|
|
2
|
+
export interface EventSchedulingProps {
|
|
3
|
+
draft: EventDraft;
|
|
4
|
+
onChange: (draft: EventDraft) => void;
|
|
5
|
+
timeZone: string;
|
|
6
|
+
workingStartHour?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function EventScheduling({ draft, onChange, timeZone, workingStartHour, }: EventSchedulingProps): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type CalendarRead } from '@arbidocs/react';
|
|
2
|
+
export interface OpenAccessPanelProps {
|
|
3
|
+
/** Calendars to offer; defaults to `useCalendars()`. */
|
|
4
|
+
calendars?: CalendarRead[];
|
|
5
|
+
className?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function OpenAccessPanel({ calendars: given, className }: OpenAccessPanelProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface PublishCalendarDialogProps {
|
|
2
|
+
calendarId: string | null;
|
|
3
|
+
calendarName?: string | null;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
/** Open the Accounts tab when there is no account yet. */
|
|
6
|
+
onConnectAccount?: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function PublishCalendarDialog({ calendarId, calendarName, onClose, onConnectAccount, }: PublishCalendarDialogProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface RoomsDirectoryPanelProps {
|
|
2
|
+
/** Zone for the time-window inputs; defaults to the calendar settings zone. */
|
|
3
|
+
timeZone?: string;
|
|
4
|
+
/** Show "New room" (any user may create; workspace rooms need workspace access). Default true. */
|
|
5
|
+
canCreate?: boolean;
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function RoomsDirectoryPanel({ timeZone, canCreate, className, }: RoomsDirectoryPanelProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export interface ShareCalendarDialogProps {
|
|
2
|
+
calendarId: string | null;
|
|
3
|
+
calendarName?: string | null;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function ShareCalendarDialog({ calendarId, calendarName, onClose, }: ShareCalendarDialogProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { ConnectedCalendar, type ConnectedCalendarProps } from './ConnectedCalendar';
|
|
2
|
+
export { ConnectedUpcomingEvents, type ConnectedUpcomingEventsProps, } from './ConnectedUpcomingEvents';
|
|
3
|
+
export { ConnectedMailInviteCard, type ConnectedMailInviteCardProps, } from './ConnectedMailInviteCard';
|
|
4
|
+
export { ConnectedPublicBooking, bookingCancelLink, type ConnectedPublicBookingProps, } from './ConnectedPublicBooking';
|
|
5
|
+
export { useCalendarViewStore, requestCalendarEvent, requestCalendarComposer, type CalendarComposerPrefill, type PendingCalendarEvent, } from './store';
|
|
6
|
+
export { openMeetingLink, type CalendarCallSupport, type CalendarOverlayLink } from './types';
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { CalendarViewKind } from '../../calendar/types';
|
|
2
|
+
/** "Schedule a call" from elsewhere (a thread, a DM, a dashboard): the editor opens prefilled. */
|
|
3
|
+
export interface CalendarComposerPrefill {
|
|
4
|
+
title?: string;
|
|
5
|
+
attendees?: {
|
|
6
|
+
email?: string | null;
|
|
7
|
+
user_id?: string | null;
|
|
8
|
+
name?: string | null;
|
|
9
|
+
}[];
|
|
10
|
+
conversationId?: string | null;
|
|
11
|
+
/** Add an ARBI call when the event is saved ("Add ARBI call" ticked). */
|
|
12
|
+
addCall?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface PendingCalendarEvent {
|
|
15
|
+
id: string;
|
|
16
|
+
recurrenceId?: string | null;
|
|
17
|
+
}
|
|
18
|
+
interface CalendarViewState {
|
|
19
|
+
/** `null` until the user picks one: the settings' default view applies. */
|
|
20
|
+
view: CalendarViewKind | null;
|
|
21
|
+
/** YYYY-MM-DD anchor; `null` = today. */
|
|
22
|
+
date: string | null;
|
|
23
|
+
pendingEvent: PendingCalendarEvent | null;
|
|
24
|
+
pendingComposer: CalendarComposerPrefill | null;
|
|
25
|
+
setPendingComposer: (prefill: CalendarComposerPrefill | null) => void;
|
|
26
|
+
setView: (view: CalendarViewKind) => void;
|
|
27
|
+
setDate: (date: string | null) => void;
|
|
28
|
+
setPendingEvent: (pending: PendingCalendarEvent | null) => void;
|
|
29
|
+
}
|
|
30
|
+
export declare const useCalendarViewStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<CalendarViewState>, "setState" | "persist"> & {
|
|
31
|
+
setState(partial: CalendarViewState | Partial<CalendarViewState> | ((state: CalendarViewState) => CalendarViewState | Partial<CalendarViewState>), replace?: false | undefined): unknown;
|
|
32
|
+
setState(state: CalendarViewState | ((state: CalendarViewState) => CalendarViewState), replace: true): unknown;
|
|
33
|
+
persist: {
|
|
34
|
+
setOptions: (options: Partial<import("zustand/middleware").PersistOptions<CalendarViewState, unknown, unknown>>) => void;
|
|
35
|
+
clearStorage: () => void;
|
|
36
|
+
rehydrate: () => Promise<void> | void;
|
|
37
|
+
hasHydrated: () => boolean;
|
|
38
|
+
onHydrate: (fn: (state: CalendarViewState) => void) => () => void;
|
|
39
|
+
onFinishHydration: (fn: (state: CalendarViewState) => void) => () => void;
|
|
40
|
+
getOptions: () => Partial<import("zustand/middleware").PersistOptions<CalendarViewState, unknown, unknown>>;
|
|
41
|
+
};
|
|
42
|
+
}>;
|
|
43
|
+
/** Ask the calendar to open on an event (ignored unless it is an `evt-` id). */
|
|
44
|
+
export declare function requestCalendarEvent(event: PendingCalendarEvent): void;
|
|
45
|
+
/** Ask the calendar to open the event editor prefilled. */
|
|
46
|
+
export declare function requestCalendarComposer(prefill: CalendarComposerPrefill): void;
|
|
47
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { AttendeeDraft, EventDraft, WebinarRole } from '../../calendar/types';
|
|
2
|
+
/**
|
|
3
|
+
* ARBI calls for calendar events, from the host (the calls stack lives there). Without it the
|
|
4
|
+
* editor offers no "Add ARBI call" or webinar, and Join opens the meeting link in a new tab.
|
|
5
|
+
*/
|
|
6
|
+
export interface CalendarCallSupport {
|
|
7
|
+
/** Whether "Add ARBI call", webinars and "Schedule call" are offered (the user may host calls). */
|
|
8
|
+
canSchedule: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Make the call for a draft: its key sealed to me and to the draft's ARBI attendees (who share its
|
|
11
|
+
* meeting chat). A webinar gives each attendee its role (`attendeeKey` → role).
|
|
12
|
+
*/
|
|
13
|
+
create(draft: EventDraft, webinarRoles?: Record<string, WebinarRole>): Promise<{
|
|
14
|
+
call_id: string;
|
|
15
|
+
url: string;
|
|
16
|
+
}>;
|
|
17
|
+
/** After a save: seal the call's key to ARBI attendees added since it was made. */
|
|
18
|
+
share(draft: EventDraft): Promise<void>;
|
|
19
|
+
/** A saved webinar's roles (they live on its call), keyed by `attendeeKey`; `null`: not a webinar. */
|
|
20
|
+
loadWebinarRoles(url: string, attendees: AttendeeDraft[]): Promise<Record<string, WebinarRole> | null>;
|
|
21
|
+
/** Save a webinar's changed roles on its call. */
|
|
22
|
+
saveWebinarRoles(url: string, roles: Record<string, WebinarRole> | undefined, attendees: AttendeeDraft[]): Promise<void>;
|
|
23
|
+
/** The attendees (`attendeeKey`) that are ARBI users: who gets a role in a new webinar. */
|
|
24
|
+
arbiAttendees(attendees: AttendeeDraft[]): Promise<Set<string>>;
|
|
25
|
+
/** Join a meeting link (an ARBI call opens in the app; anything else in a new tab). */
|
|
26
|
+
join(url: string): void;
|
|
27
|
+
/** Open an ARBI call's meeting chat. */
|
|
28
|
+
openChat(url: string): void;
|
|
29
|
+
}
|
|
30
|
+
/** Open a meeting link without call support: a new tab. */
|
|
31
|
+
export declare function openMeetingLink(url: string): void;
|
|
32
|
+
/** Where an overlay item on the calendar points (`fact:…`, `workflow:…`, `conversation:…`). */
|
|
33
|
+
export interface CalendarOverlayLink {
|
|
34
|
+
kind: 'fact' | 'workflow' | 'conversation';
|
|
35
|
+
id: string;
|
|
36
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { type AttendeeDraft, type EventDraft } from '../../calendar';
|
|
2
|
+
import type { CalendarCallSupport } from './types';
|
|
3
|
+
export declare function useWebinarAttendee(draft: EventDraft | null | undefined, calls: CalendarCallSupport | undefined): (attendee: AttendeeDraft) => boolean;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type NotificationTarget } from '@arbidocs/react';
|
|
2
|
+
import { type NotificationCenterProps } from './NotificationCenter';
|
|
3
|
+
import type { NotificationCenterRenderers } from './NotificationEvent';
|
|
4
|
+
export interface ConnectedNotificationCenterProps extends Pick<NotificationCenterProps, 'focusId' | 'headerRight' | 'workspaceLabel' | 'gridState' | 'onGridStateChange'> {
|
|
5
|
+
/** Open where an entry leads (the host owns its routes). An external page (`url`) opens in a
|
|
6
|
+
* new tab without it. */
|
|
7
|
+
onOpen: (target: NotificationTarget) => void;
|
|
8
|
+
/** The host's own people / workspace / document renderers (default: the shared entities). */
|
|
9
|
+
renderers?: Partial<NotificationCenterRenderers>;
|
|
10
|
+
/** "Today, 14:05"; default the local date and time. */
|
|
11
|
+
formatTime?: (timestamp: number) => string;
|
|
12
|
+
/** Persisted notifications per page (default 100). */
|
|
13
|
+
pageSize?: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function ConnectedNotificationCenter({ onOpen, renderers, formatTime, pageSize, ...pageProps }: ConnectedNotificationCenterProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The notification centre page: one time-sorted list of what the user received, what they sent
|
|
3
|
+
* and this session's log, with category/type filters, bulk delete and paging. Presentational:
|
|
4
|
+
* {@link ConnectedNotificationCenter} supplies the data; the host draws people, workspaces and
|
|
5
|
+
* documents ({@link NotificationCenterRenderers}) and owns where an entry leads.
|
|
6
|
+
*/
|
|
7
|
+
import { type ReactNode } from 'react';
|
|
8
|
+
import type { GridState } from 'ag-grid-community';
|
|
9
|
+
import { type NotificationTarget } from '@arbidocs/react';
|
|
10
|
+
import { type NotificationCenterItem } from './items';
|
|
11
|
+
import { type NotificationCenterRenderers } from './NotificationEvent';
|
|
12
|
+
export interface NotificationCenterProps {
|
|
13
|
+
/** Every entry, newest first (see `buildNotificationCenterItems`). */
|
|
14
|
+
items: NotificationCenterItem[];
|
|
15
|
+
isLoading?: boolean;
|
|
16
|
+
/** More persisted notifications exist beyond the loaded ones. */
|
|
17
|
+
hasMore?: boolean;
|
|
18
|
+
isLoadingMore?: boolean;
|
|
19
|
+
onLoadMore?: () => void;
|
|
20
|
+
/** Delete entries (persisted ones on the server, session ones from the log). */
|
|
21
|
+
onDelete: (items: NotificationCenterItem[]) => void;
|
|
22
|
+
/** Open where an entry leads. */
|
|
23
|
+
onOpen: (target: NotificationTarget) => void;
|
|
24
|
+
renderers: NotificationCenterRenderers;
|
|
25
|
+
/** "Today, 14:05" for an entry's time. */
|
|
26
|
+
formatTime: (timestamp: number) => string;
|
|
27
|
+
/** The entry to scroll to and highlight (e.g. the one picked in the bell). */
|
|
28
|
+
focusId?: string | null;
|
|
29
|
+
/** Header content on the right (e.g. a panel mode switcher). */
|
|
30
|
+
headerRight?: ReactNode;
|
|
31
|
+
/** Label of the Workspace type filter (a host's own word for a workspace). */
|
|
32
|
+
workspaceLabel?: string;
|
|
33
|
+
/** Persisted column state (order, width, sort), read once at mount, and its changes. */
|
|
34
|
+
gridState?: GridState;
|
|
35
|
+
onGridStateChange?: (state: GridState) => void;
|
|
36
|
+
}
|
|
37
|
+
export declare function NotificationCenter({ items, isLoading, hasMore, isLoadingMore, onLoadMore, onDelete, onOpen, renderers, formatTime, focusId, headerRight, workspaceLabel, gridState, onGridStateChange, }: NotificationCenterProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Event cell of the notification centre: what happened, as a sentence around the people and
|
|
3
|
+
* documents involved, with the action that opens it. A received notification reads from the
|
|
4
|
+
* recipient's side ("[Priya] mentioned you in a conversation"), a sent one from the sender's
|
|
5
|
+
* ("You mentioned [Sam] in a conversation"), a session-log entry as it was toasted.
|
|
6
|
+
*/
|
|
7
|
+
import type { ComponentType, ReactElement, ReactNode } from 'react';
|
|
8
|
+
import { type NotificationTarget } from '@arbidocs/react';
|
|
9
|
+
import type { NotificationCenterItem, NotificationRow } from './items';
|
|
10
|
+
export type NotificationUser = NotificationRow['sender'];
|
|
11
|
+
export interface NotificationDocumentChipProps {
|
|
12
|
+
documentId: string;
|
|
13
|
+
workspaceId?: string | null;
|
|
14
|
+
/** Open the document. */
|
|
15
|
+
onOpen: () => void;
|
|
16
|
+
/** What to show when the document is not known here (its name is encrypted per workspace). */
|
|
17
|
+
fallback: ReactNode;
|
|
18
|
+
}
|
|
19
|
+
/** How the host draws people, workspaces and documents in the list. */
|
|
20
|
+
export interface NotificationCenterRenderers {
|
|
21
|
+
/** A person's pill. */
|
|
22
|
+
renderUser: (user: NotificationUser) => ReactNode;
|
|
23
|
+
/** A workspace's badge (the Category of a workspace's notification), or null when the host
|
|
24
|
+
* does not know the workspace (the type's own category shows instead). */
|
|
25
|
+
renderWorkspace: (workspaceId: string) => ReactNode | null;
|
|
26
|
+
/** A signature notification's document: its chip when known, else `fallback`. */
|
|
27
|
+
DocumentChip: ComponentType<NotificationDocumentChipProps>;
|
|
28
|
+
}
|
|
29
|
+
export declare function NotificationEvent({ item, open, renderers, }: {
|
|
30
|
+
item: NotificationCenterItem;
|
|
31
|
+
open: (target: NotificationTarget) => void;
|
|
32
|
+
renderers: NotificationCenterRenderers;
|
|
33
|
+
}): ReactElement | null;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { ConnectedNotificationCenter, type ConnectedNotificationCenterProps, } from './ConnectedNotificationCenter';
|
|
2
|
+
export { NotificationCenter, type NotificationCenterProps } from './NotificationCenter';
|
|
3
|
+
export { NotificationEvent, type NotificationCenterRenderers, type NotificationDocumentChipProps, type NotificationUser, } from './NotificationEvent';
|
|
4
|
+
export { buildNotificationCenterItems, countNotificationTypes, filterNotificationCenterItems, type NotificationCenterItem, type NotificationFilterState, type NotificationFilterType, type NotificationRow, } from './items';
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The notification centre's one list: the persisted notifications (both what the user received
|
|
3
|
+
* and what they sent, from `/v1/notifications`) and the session log (the shared notify store's own
|
|
4
|
+
* entries), merged newest first, with the category and type filters over it.
|
|
5
|
+
*/
|
|
6
|
+
import type { components } from '@arbidocs/client';
|
|
7
|
+
import type { AppNotification } from '@arbidocs/react/shell';
|
|
8
|
+
export type NotificationRow = components['schemas']['NotificationResponse'];
|
|
9
|
+
/**
|
|
10
|
+
* One entry of the list.
|
|
11
|
+
*
|
|
12
|
+
* - `kind: 'incoming'` — a persisted notification the user received; read from their side
|
|
13
|
+
* (shows the sender).
|
|
14
|
+
* - `kind: 'activity'` — the user's own: a notification they sent (`persisted: true`) or a
|
|
15
|
+
* session-log entry (`persisted: false`); read from the sender's side.
|
|
16
|
+
*
|
|
17
|
+
* `persisted` is what the user sees as the category: persisted entries survive in the
|
|
18
|
+
* notifications table ("Notifications"); session entries are this browser's log ("Session log").
|
|
19
|
+
*/
|
|
20
|
+
export interface NotificationCenterItem {
|
|
21
|
+
id: string;
|
|
22
|
+
timestamp: number;
|
|
23
|
+
kind: 'incoming' | 'activity';
|
|
24
|
+
persisted: boolean;
|
|
25
|
+
/** Every persisted entry. */
|
|
26
|
+
row?: NotificationRow;
|
|
27
|
+
/** Every session-log entry. */
|
|
28
|
+
entry?: AppNotification;
|
|
29
|
+
}
|
|
30
|
+
export type NotificationFilterType = 'notifications' | 'session' | 'workspace' | 'contact_accepted';
|
|
31
|
+
export type NotificationFilterState = Map<NotificationFilterType, 'include' | 'exclude' | null>;
|
|
32
|
+
/** The merged list, newest first. */
|
|
33
|
+
export declare function buildNotificationCenterItems(rows: readonly NotificationRow[], session: readonly AppNotification[], userId: string): NotificationCenterItem[];
|
|
34
|
+
/** Per-type counts of the received notifications, for the filter badges. */
|
|
35
|
+
export declare function countNotificationTypes(items: readonly NotificationCenterItem[]): {
|
|
36
|
+
workspace: number;
|
|
37
|
+
contact_accepted: number;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* The items the active "include" filters select, OR-combined: an item shows when it matches any.
|
|
41
|
+
* With no active filter everything shows. The category filters track `persisted`, the same
|
|
42
|
+
* differentiator as the Category column.
|
|
43
|
+
*/
|
|
44
|
+
export declare function filterNotificationCenterItems(items: NotificationCenterItem[], filters: NotificationFilterState): NotificationCenterItem[];
|
package/dist/facts/index.cjs
CHANGED
|
@@ -8,15 +8,15 @@ var chunkVPPX5XUF_cjs = require('../chunk-VPPX5XUF.cjs');
|
|
|
8
8
|
var chunkRC25WMVB_cjs = require('../chunk-RC25WMVB.cjs');
|
|
9
9
|
var chunkV4ISCZJ7_cjs = require('../chunk-V4ISCZJ7.cjs');
|
|
10
10
|
var chunk2EI7NCUA_cjs = require('../chunk-2EI7NCUA.cjs');
|
|
11
|
-
|
|
12
|
-
var chunk7RGLTF76_cjs = require('../chunk-7RGLTF76.cjs');
|
|
11
|
+
require('../chunk-C4WSHRR6.cjs');
|
|
13
12
|
var chunkBIXHB4LV_cjs = require('../chunk-BIXHB4LV.cjs');
|
|
14
|
-
require('../chunk-
|
|
13
|
+
var chunk7RGLTF76_cjs = require('../chunk-7RGLTF76.cjs');
|
|
15
14
|
var chunkPPCATBOY_cjs = require('../chunk-PPCATBOY.cjs');
|
|
16
|
-
var chunkMHVNT4J3_cjs = require('../chunk-MHVNT4J3.cjs');
|
|
17
|
-
require('../chunk-C4WSHRR6.cjs');
|
|
18
|
-
require('../chunk-ULWRNGGE.cjs');
|
|
19
15
|
var chunkKDG6FER6_cjs = require('../chunk-KDG6FER6.cjs');
|
|
16
|
+
var chunkC2CWWEHO_cjs = require('../chunk-C2CWWEHO.cjs');
|
|
17
|
+
require('../chunk-ULWRNGGE.cjs');
|
|
18
|
+
require('../chunk-FX3K6LNZ.cjs');
|
|
19
|
+
var chunkMHVNT4J3_cjs = require('../chunk-MHVNT4J3.cjs');
|
|
20
20
|
require('../chunk-DES3K4SD.cjs');
|
|
21
21
|
var lucideReact = require('lucide-react');
|
|
22
22
|
var ui = require('@arbidocs/react/ui');
|
package/dist/facts/index.js
CHANGED
|
@@ -8,15 +8,15 @@ export { decodeWhitespaceEntities } from '../chunk-AF6RDAJF.js';
|
|
|
8
8
|
import { SelectionBar, SelectionBarAction } from '../chunk-NUNKSZKU.js';
|
|
9
9
|
import { FilterInput } from '../chunk-YU2KUMGE.js';
|
|
10
10
|
export { DEFAULT_FILTER_INPUT_LABELS as DEFAULT_FACTS_FILTER_INPUT_LABELS, DEFAULT_FILTER_FIELDS as FACTS_SEARCH_FIELD_OPTIONS, FilterInput as FactsFilterInput } from '../chunk-YU2KUMGE.js';
|
|
11
|
-
import
|
|
12
|
-
import { TabHeader } from '../chunk-4WWM3GQ5.js';
|
|
11
|
+
import '../chunk-YNIBUKV5.js';
|
|
13
12
|
import { detectTimeZone, listTimeZones } from '../chunk-GTCC2VAR.js';
|
|
14
|
-
import '../chunk-
|
|
13
|
+
import { TabHeader } from '../chunk-4WWM3GQ5.js';
|
|
15
14
|
import { observeResize } from '../chunk-NPLYHR2E.js';
|
|
16
|
-
import { testIdOr } from '../chunk-7F6CBP3Z.js';
|
|
17
|
-
import '../chunk-YNIBUKV5.js';
|
|
18
|
-
import '../chunk-TX2ZICS7.js';
|
|
19
15
|
import { initials } from '../chunk-OXF2IFXG.js';
|
|
16
|
+
import { GridView } from '../chunk-N5YEF3LC.js';
|
|
17
|
+
import '../chunk-TX2ZICS7.js';
|
|
18
|
+
import '../chunk-SLSBJRWW.js';
|
|
19
|
+
import { testIdOr } from '../chunk-7F6CBP3Z.js';
|
|
20
20
|
import '../chunk-VUNV25KB.js';
|
|
21
21
|
import { PencilLine, Check, MoreVertical, Pencil, Trash2, CalendarDays, X, Columns3, ChevronDown, RotateCcw, Milestone, CalendarClock, Scale, Lightbulb, ArrowRight, Loader2, Info, Paperclip, Tags, MoreHorizontal, FolderUp, BookMarked, Plus, Search, CheckCircle2, CornerDownLeft, Quote, ChevronLeft, ChevronRight, Table2, CalendarRange, GanttChartSquare } from 'lucide-react';
|
|
22
22
|
import { Popover, PopoverTrigger, PopoverContent, Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, cn, Input, Button, CommandSeparator, Tooltip, TooltipTrigger, TooltipContent } from '@arbidocs/react/ui';
|
package/dist/files/index.cjs
CHANGED
|
@@ -5,21 +5,21 @@ var chunk223D4727_cjs = require('../chunk-223D4727.cjs');
|
|
|
5
5
|
var chunkO4YPVYPO_cjs = require('../chunk-O4YPVYPO.cjs');
|
|
6
6
|
var chunkUWIILWDI_cjs = require('../chunk-UWIILWDI.cjs');
|
|
7
7
|
var chunk2WLXQGWC_cjs = require('../chunk-2WLXQGWC.cjs');
|
|
8
|
-
var chunkVLCY46K6_cjs = require('../chunk-VLCY46K6.cjs');
|
|
9
8
|
var chunk3AFWGEDJ_cjs = require('../chunk-3AFWGEDJ.cjs');
|
|
10
9
|
var chunkDVUZTGVL_cjs = require('../chunk-DVUZTGVL.cjs');
|
|
11
10
|
var chunkDETZZBG2_cjs = require('../chunk-DETZZBG2.cjs');
|
|
12
11
|
var chunkR26BK7YL_cjs = require('../chunk-R26BK7YL.cjs');
|
|
13
12
|
var chunkV4ISCZJ7_cjs = require('../chunk-V4ISCZJ7.cjs');
|
|
14
13
|
var chunk2EI7NCUA_cjs = require('../chunk-2EI7NCUA.cjs');
|
|
15
|
-
|
|
14
|
+
require('../chunk-C4WSHRR6.cjs');
|
|
16
15
|
var chunk32HW2Q33_cjs = require('../chunk-32HW2Q33.cjs');
|
|
17
|
-
require('../chunk-FX3K6LNZ.cjs');
|
|
18
16
|
require('../chunk-PPCATBOY.cjs');
|
|
19
|
-
var chunkMHVNT4J3_cjs = require('../chunk-MHVNT4J3.cjs');
|
|
20
|
-
require('../chunk-C4WSHRR6.cjs');
|
|
21
|
-
var chunkULWRNGGE_cjs = require('../chunk-ULWRNGGE.cjs');
|
|
22
17
|
var chunkKDG6FER6_cjs = require('../chunk-KDG6FER6.cjs');
|
|
18
|
+
var chunkVLCY46K6_cjs = require('../chunk-VLCY46K6.cjs');
|
|
19
|
+
var chunkC2CWWEHO_cjs = require('../chunk-C2CWWEHO.cjs');
|
|
20
|
+
var chunkULWRNGGE_cjs = require('../chunk-ULWRNGGE.cjs');
|
|
21
|
+
require('../chunk-FX3K6LNZ.cjs');
|
|
22
|
+
var chunkMHVNT4J3_cjs = require('../chunk-MHVNT4J3.cjs');
|
|
23
23
|
require('../chunk-DES3K4SD.cjs');
|
|
24
24
|
var classVarianceAuthority = require('class-variance-authority');
|
|
25
25
|
var ui = require('@arbidocs/react/ui');
|