@industry-theme/file-city-panel 0.2.47 → 0.2.48
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/panels/AgentMailFileCityPanel.d.ts +12 -0
- package/dist/panels/AgentMailFileCityPanel.d.ts.map +1 -0
- package/dist/panels/AgentMailFileCityPanel.stories.d.ts +34 -0
- package/dist/panels/AgentMailFileCityPanel.stories.d.ts.map +1 -0
- package/dist/panels/AgentMailPanel.d.ts +8 -0
- package/dist/panels/AgentMailPanel.d.ts.map +1 -0
- package/dist/panels/AgentMailPanel.stories.d.ts +42 -0
- package/dist/panels/AgentMailPanel.stories.d.ts.map +1 -0
- package/dist/panels/CodeCityPanel.d.ts.map +1 -1
- package/dist/panels/FeedCodeCityPanel.d.ts.map +1 -1
- package/dist/panels/components/MessageActivityFeed.d.ts +16 -0
- package/dist/panels/components/MessageActivityFeed.d.ts.map +1 -0
- package/dist/panels/components/MessageActivityFeed.stories.d.ts +38 -0
- package/dist/panels/components/MessageActivityFeed.stories.d.ts.map +1 -0
- package/dist/panels/components/ReservationsView.d.ts +14 -0
- package/dist/panels/components/ReservationsView.d.ts.map +1 -0
- package/dist/panels/components/ReservationsView.stories.d.ts +42 -0
- package/dist/panels/components/ReservationsView.stories.d.ts.map +1 -0
- package/dist/panels/types/agentMail.d.ts +109 -0
- package/dist/panels/types/agentMail.d.ts.map +1 -0
- package/dist/panels/utils/reservationLayers.d.ts +39 -0
- package/dist/panels/utils/reservationLayers.d.ts.map +1 -0
- package/dist/panels.bundle.js +14 -8
- package/dist/panels.bundle.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PanelComponentProps } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Agent Mail File City Panel
|
|
5
|
+
*
|
|
6
|
+
* A File City visualization panel that shows agent file reservations
|
|
7
|
+
* as colored highlight layers. Each agent's reserved files are shown
|
|
8
|
+
* in their unique color, with conflicts highlighted in red.
|
|
9
|
+
*/
|
|
10
|
+
export declare const AgentMailFileCityPanel: React.FC<PanelComponentProps>;
|
|
11
|
+
export default AgentMailFileCityPanel;
|
|
12
|
+
//# sourceMappingURL=AgentMailFileCityPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentMailFileCityPanel.d.ts","sourceRoot":"","sources":["../../src/panels/AgentMailFileCityPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAajF,OAAO,KAAK,EAAE,mBAAmB,EAAkB,MAAM,UAAU,CAAC;AAqnBpE;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAMhE,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { AgentMailFileCityPanel } from './AgentMailFileCityPanel';
|
|
3
|
+
declare const meta: Meta<typeof AgentMailFileCityPanel>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof AgentMailFileCityPanel>;
|
|
6
|
+
/**
|
|
7
|
+
* Default state - shows file city without reservations
|
|
8
|
+
*/
|
|
9
|
+
export declare const Default: Story;
|
|
10
|
+
/**
|
|
11
|
+
* Single agent reservation
|
|
12
|
+
*/
|
|
13
|
+
export declare const SingleReservation: Story;
|
|
14
|
+
/**
|
|
15
|
+
* Multiple agents with different reservations
|
|
16
|
+
*/
|
|
17
|
+
export declare const MultipleAgents: Story;
|
|
18
|
+
/**
|
|
19
|
+
* With reservation conflicts
|
|
20
|
+
*/
|
|
21
|
+
export declare const WithConflicts: Story;
|
|
22
|
+
/**
|
|
23
|
+
* Heavy coverage - many files reserved
|
|
24
|
+
*/
|
|
25
|
+
export declare const HeavyCoverage: Story;
|
|
26
|
+
/**
|
|
27
|
+
* Loading state
|
|
28
|
+
*/
|
|
29
|
+
export declare const Loading: Story;
|
|
30
|
+
/**
|
|
31
|
+
* Live simulation with changing reservations
|
|
32
|
+
*/
|
|
33
|
+
export declare const LiveSimulation: Story;
|
|
34
|
+
//# sourceMappingURL=AgentMailFileCityPanel.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentMailFileCityPanel.stories.d.ts","sourceRoot":"","sources":["../../src/panels/AgentMailFileCityPanel.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAOlE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,sBAAsB,CAoB7C,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,sBAAsB,CAAC,CAAC;AA6CrD;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,KAuBrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAuC/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,KAkE5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,KAoE3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,KAkE3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,KAuBrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,KA+G5B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PanelComponentProps } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Agent Mail Panel - Visualizes inter-agent communication and file reservations
|
|
5
|
+
*/
|
|
6
|
+
export declare const AgentMailPanel: React.FC<PanelComponentProps>;
|
|
7
|
+
export default AgentMailPanel;
|
|
8
|
+
//# sourceMappingURL=AgentMailPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentMailPanel.d.ts","sourceRoot":"","sources":["../../src/panels/AgentMailPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAufpD;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAMxD,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { AgentMailPanel } from './AgentMailPanel';
|
|
3
|
+
declare const meta: Meta<typeof AgentMailPanel>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof AgentMailPanel>;
|
|
6
|
+
/**
|
|
7
|
+
* Empty state - no messages, reservations, or agents
|
|
8
|
+
*/
|
|
9
|
+
export declare const Empty: Story;
|
|
10
|
+
/**
|
|
11
|
+
* Loading state
|
|
12
|
+
*/
|
|
13
|
+
export declare const Loading: Story;
|
|
14
|
+
/**
|
|
15
|
+
* With messages - shows message activity feed
|
|
16
|
+
*/
|
|
17
|
+
export declare const WithMessages: Story;
|
|
18
|
+
/**
|
|
19
|
+
* With reservations - shows file reservations view
|
|
20
|
+
*/
|
|
21
|
+
export declare const WithReservations: Story;
|
|
22
|
+
/**
|
|
23
|
+
* With conflicts - shows reservation conflicts
|
|
24
|
+
*/
|
|
25
|
+
export declare const WithConflicts: Story;
|
|
26
|
+
/**
|
|
27
|
+
* With agents - shows agents tab
|
|
28
|
+
*/
|
|
29
|
+
export declare const WithAgents: Story;
|
|
30
|
+
/**
|
|
31
|
+
* Full example - all tabs with data
|
|
32
|
+
*/
|
|
33
|
+
export declare const FullExample: Story;
|
|
34
|
+
/**
|
|
35
|
+
* Live simulation - messages arrive in real-time
|
|
36
|
+
*/
|
|
37
|
+
export declare const LiveSimulation: Story;
|
|
38
|
+
/**
|
|
39
|
+
* Expired reservations - shows how expired reservations appear
|
|
40
|
+
*/
|
|
41
|
+
export declare const WithExpiredReservations: Story;
|
|
42
|
+
//# sourceMappingURL=AgentMailPanel.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentMailPanel.stories.d.ts","sourceRoot":"","sources":["../../src/panels/AgentMailPanel.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAWlD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,cAAc,CAoBrC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,cAAc,CAAC,CAAC;AAmD7C;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,KA4BnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,KAuBrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,KA2D1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,KA0D9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,KA+C3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,KAsDxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,KAsGzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,KAwF5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAkDrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeCityPanel.d.ts","sourceRoot":"","sources":["../../src/panels/CodeCityPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAuBjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAQpD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAUD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,KAAK,CAAC;QACX,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;QAC1F,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,aAAa,EAAE;QACb,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAC7D,CAAC;IACF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE;QACb,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IACF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;
|
|
1
|
+
{"version":3,"file":"CodeCityPanel.d.ts","sourceRoot":"","sources":["../../src/panels/CodeCityPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAuBjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAQpD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAUD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,KAAK,CAAC;QACX,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;QAC1F,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,aAAa,EAAE;QACb,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAC7D,CAAC;IACF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE;QACb,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IACF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAilDD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAEvD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EA8BxC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedCodeCityPanel.d.ts","sourceRoot":"","sources":["../../src/panels/FeedCodeCityPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAGjF,OAAO,EAAgD,cAAc,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAe/H,OAAO,KAAK,EAAE,mBAAmB,EAAkB,MAAM,UAAU,CAAC;AAsBpE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,oCAAoC;IACpC,IAAI,EAAE,cAAc,CAAC;IACrB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;
|
|
1
|
+
{"version":3,"file":"FeedCodeCityPanel.d.ts","sourceRoot":"","sources":["../../src/panels/FeedCodeCityPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAGjF,OAAO,EAAgD,cAAc,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAe/H,OAAO,KAAK,EAAE,mBAAmB,EAAkB,MAAM,UAAU,CAAC;AAsBpE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,oCAAoC;IACpC,IAAI,EAAE,cAAc,CAAC;IACrB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AA8XD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAE3D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EA8B5C,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { AgentMailMessage } from '../types/agentMail';
|
|
3
|
+
export interface MessageActivityFeedProps {
|
|
4
|
+
messages: AgentMailMessage[];
|
|
5
|
+
unreadCount?: number;
|
|
6
|
+
onMessageClick?: (message: AgentMailMessage) => void;
|
|
7
|
+
onAttachmentClick?: (path: string, messageId: number) => void;
|
|
8
|
+
onMarkRead?: (messageId: number) => void;
|
|
9
|
+
onMarkAllRead?: () => void;
|
|
10
|
+
showHeader?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* A feed view for displaying agent mail messages
|
|
14
|
+
*/
|
|
15
|
+
export declare const MessageActivityFeed: React.FC<MessageActivityFeedProps>;
|
|
16
|
+
//# sourceMappingURL=MessageActivityFeed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageActivityFeed.d.ts","sourceRoot":"","sources":["../../../src/panels/components/MessageActivityFeed.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AAE5E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACrD,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAgBD;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAwblE,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { MessageActivityFeed } from './MessageActivityFeed';
|
|
3
|
+
declare const meta: Meta<typeof MessageActivityFeed>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof MessageActivityFeed>;
|
|
6
|
+
/**
|
|
7
|
+
* Empty state
|
|
8
|
+
*/
|
|
9
|
+
export declare const Empty: Story;
|
|
10
|
+
/**
|
|
11
|
+
* Single message
|
|
12
|
+
*/
|
|
13
|
+
export declare const SingleMessage: Story;
|
|
14
|
+
/**
|
|
15
|
+
* Multiple messages with different importance levels
|
|
16
|
+
*/
|
|
17
|
+
export declare const MultipleMessages: Story;
|
|
18
|
+
/**
|
|
19
|
+
* Messages with attachments
|
|
20
|
+
*/
|
|
21
|
+
export declare const WithAttachments: Story;
|
|
22
|
+
/**
|
|
23
|
+
* All messages read
|
|
24
|
+
*/
|
|
25
|
+
export declare const AllRead: Story;
|
|
26
|
+
/**
|
|
27
|
+
* Many recipients
|
|
28
|
+
*/
|
|
29
|
+
export declare const ManyRecipients: Story;
|
|
30
|
+
/**
|
|
31
|
+
* Without header (for embedding in tabs)
|
|
32
|
+
*/
|
|
33
|
+
export declare const WithoutHeader: Story;
|
|
34
|
+
/**
|
|
35
|
+
* Live feed simulation
|
|
36
|
+
*/
|
|
37
|
+
export declare const LiveFeed: Story;
|
|
38
|
+
//# sourceMappingURL=MessageActivityFeed.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageActivityFeed.stories.d.ts","sourceRoot":"","sources":["../../../src/panels/components/MessageActivityFeed.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,mBAAmB,CAgB1C,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAqBlD;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,KAU3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,KA+B9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KAsB7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,KAsBrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,KAgB5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,KAS3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,KAoEtB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { AgentMailReservation, ReservationConflict } from '../types/agentMail';
|
|
3
|
+
export interface ReservationsViewProps {
|
|
4
|
+
reservations: AgentMailReservation[];
|
|
5
|
+
conflicts?: ReservationConflict[];
|
|
6
|
+
onReservationClick?: (reservation: AgentMailReservation) => void;
|
|
7
|
+
onFileClick?: (path: string, reservation: AgentMailReservation) => void;
|
|
8
|
+
showHeader?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* A view for displaying file reservations by agents
|
|
12
|
+
*/
|
|
13
|
+
export declare const ReservationsView: React.FC<ReservationsViewProps>;
|
|
14
|
+
//# sourceMappingURL=ReservationsView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReservationsView.d.ts","sourceRoot":"","sources":["../../../src/panels/components/ReservationsView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEpF,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAClC,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACjE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACxE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAkBD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAuiB5D,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { ReservationsView } from './ReservationsView';
|
|
3
|
+
declare const meta: Meta<typeof ReservationsView>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof ReservationsView>;
|
|
6
|
+
/**
|
|
7
|
+
* Empty state - no reservations
|
|
8
|
+
*/
|
|
9
|
+
export declare const Empty: Story;
|
|
10
|
+
/**
|
|
11
|
+
* Single reservation
|
|
12
|
+
*/
|
|
13
|
+
export declare const SingleReservation: Story;
|
|
14
|
+
/**
|
|
15
|
+
* Multiple reservations from different agents
|
|
16
|
+
*/
|
|
17
|
+
export declare const MultipleReservations: Story;
|
|
18
|
+
/**
|
|
19
|
+
* With conflicts between agents
|
|
20
|
+
*/
|
|
21
|
+
export declare const WithConflicts: Story;
|
|
22
|
+
/**
|
|
23
|
+
* With expired reservations
|
|
24
|
+
*/
|
|
25
|
+
export declare const WithExpiredReservations: Story;
|
|
26
|
+
/**
|
|
27
|
+
* Many files in a single reservation
|
|
28
|
+
*/
|
|
29
|
+
export declare const ManyFiles: Story;
|
|
30
|
+
/**
|
|
31
|
+
* Without header (for embedding in tabs)
|
|
32
|
+
*/
|
|
33
|
+
export declare const WithoutHeader: Story;
|
|
34
|
+
/**
|
|
35
|
+
* Short expiry times
|
|
36
|
+
*/
|
|
37
|
+
export declare const ExpiringSoon: Story;
|
|
38
|
+
/**
|
|
39
|
+
* Live simulation with changing reservations
|
|
40
|
+
*/
|
|
41
|
+
export declare const LiveSimulation: Story;
|
|
42
|
+
//# sourceMappingURL=ReservationsView.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReservationsView.stories.d.ts","sourceRoot":"","sources":["../../../src/panels/components/ReservationsView.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,gBAAgB,CAgBvC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAiB/C;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAe/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,KA8ClC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,KAuC3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAqCrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,KAwBvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,KAW3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,KA0B1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,KAwE5B,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Mail slice types for inter-agent communication visualization
|
|
3
|
+
*/
|
|
4
|
+
export type ImportanceLevel = 'low' | 'normal' | 'high' | 'urgent';
|
|
5
|
+
export type ContactPolicy = 'open' | 'auto' | 'contacts_only' | 'block_all';
|
|
6
|
+
export type LinkStatus = 'pending' | 'approved' | 'blocked';
|
|
7
|
+
export type RecipientKind = 'to' | 'cc' | 'bcc';
|
|
8
|
+
/**
|
|
9
|
+
* Attachment in a message
|
|
10
|
+
*/
|
|
11
|
+
export interface MessageAttachment {
|
|
12
|
+
filename: string;
|
|
13
|
+
path: string;
|
|
14
|
+
mimeType?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Recipient of a message
|
|
18
|
+
*/
|
|
19
|
+
export interface MessageRecipient {
|
|
20
|
+
id: number;
|
|
21
|
+
name: string;
|
|
22
|
+
kind: RecipientKind;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Message sender
|
|
26
|
+
*/
|
|
27
|
+
export interface MessageSender {
|
|
28
|
+
id: number;
|
|
29
|
+
name: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* A message in the agent mail system
|
|
33
|
+
*/
|
|
34
|
+
export interface AgentMailMessage {
|
|
35
|
+
id: number;
|
|
36
|
+
sender: MessageSender;
|
|
37
|
+
recipients: MessageRecipient[];
|
|
38
|
+
subject: string;
|
|
39
|
+
body: string;
|
|
40
|
+
importance: ImportanceLevel;
|
|
41
|
+
threadId: string;
|
|
42
|
+
attachments: MessageAttachment[];
|
|
43
|
+
createdTs: string;
|
|
44
|
+
read: boolean;
|
|
45
|
+
acknowledged: boolean;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* An agent in the mail system
|
|
49
|
+
*/
|
|
50
|
+
export interface AgentMailAgent {
|
|
51
|
+
id: number;
|
|
52
|
+
name: string;
|
|
53
|
+
displayName?: string;
|
|
54
|
+
contactPolicy: ContactPolicy;
|
|
55
|
+
lastActiveTs: string;
|
|
56
|
+
unreadMessages: number;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Agent info for reservations
|
|
60
|
+
*/
|
|
61
|
+
export interface ReservationAgent {
|
|
62
|
+
id: number;
|
|
63
|
+
name: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* A file reservation by an agent
|
|
67
|
+
*/
|
|
68
|
+
export interface AgentMailReservation {
|
|
69
|
+
id: number;
|
|
70
|
+
agent: ReservationAgent;
|
|
71
|
+
pattern: string;
|
|
72
|
+
matchedFiles: string[];
|
|
73
|
+
reason?: string;
|
|
74
|
+
expiresTs: string;
|
|
75
|
+
isExpired: boolean;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* A conflict when multiple agents reserve overlapping files
|
|
79
|
+
*/
|
|
80
|
+
export interface ReservationConflict {
|
|
81
|
+
pattern: string;
|
|
82
|
+
holders: Array<{
|
|
83
|
+
agentId: number;
|
|
84
|
+
agentName: string;
|
|
85
|
+
}>;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Slice data for agent mail messages
|
|
89
|
+
*/
|
|
90
|
+
export interface AgentMailMessagesSliceData {
|
|
91
|
+
messages: AgentMailMessage[];
|
|
92
|
+
unreadCount: number;
|
|
93
|
+
lastUpdated: string;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Slice data for agent mail agents
|
|
97
|
+
*/
|
|
98
|
+
export interface AgentMailAgentsSliceData {
|
|
99
|
+
agents: AgentMailAgent[];
|
|
100
|
+
totalAgents: number;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Slice data for agent mail reservations
|
|
104
|
+
*/
|
|
105
|
+
export interface AgentMailReservationsSliceData {
|
|
106
|
+
reservations: AgentMailReservation[];
|
|
107
|
+
conflicts: ReservationConflict[];
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=agentMail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentMail.d.ts","sourceRoot":"","sources":["../../../src/panels/types/agentMail.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAGnE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,eAAe,GAAG,WAAW,CAAC;AAG5E,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAG5D,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,eAAe,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,SAAS,EAAE,mBAAmB,EAAE,CAAC;CAClC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utilities for creating File City highlight layers from Agent Mail reservations
|
|
3
|
+
*/
|
|
4
|
+
import type { HighlightLayer } from '../../types';
|
|
5
|
+
import type { AgentMailReservation, AgentMailReservationsSliceData, ReservationConflict } from '../types/agentMail';
|
|
6
|
+
/**
|
|
7
|
+
* Get a consistent color for an agent based on their ID
|
|
8
|
+
*/
|
|
9
|
+
export declare function getAgentColor(agentId: number): string;
|
|
10
|
+
/**
|
|
11
|
+
* Create highlight layers from agent mail reservations
|
|
12
|
+
* Each agent gets their own colored layer for their reserved files
|
|
13
|
+
*/
|
|
14
|
+
export declare function createReservationHighlightLayers(reservations: AgentMailReservation[], conflicts?: ReservationConflict[]): HighlightLayer[];
|
|
15
|
+
/**
|
|
16
|
+
* Create highlight layers from the full reservations slice data
|
|
17
|
+
*/
|
|
18
|
+
export declare function createReservationHighlightLayersFromSlice(sliceData: AgentMailReservationsSliceData | undefined): HighlightLayer[];
|
|
19
|
+
/**
|
|
20
|
+
* Merge reservation layers with existing layers (e.g., file type layers)
|
|
21
|
+
* Reservation layers are added with higher priority to show on top
|
|
22
|
+
*/
|
|
23
|
+
export declare function mergeWithReservationLayers(baseLayers: HighlightLayer[], reservationLayers: HighlightLayer[]): HighlightLayer[];
|
|
24
|
+
/**
|
|
25
|
+
* Get legend items for reservation layers (for UI display)
|
|
26
|
+
*/
|
|
27
|
+
export interface ReservationLegendItem {
|
|
28
|
+
id: string;
|
|
29
|
+
agentId: number;
|
|
30
|
+
agentName: string;
|
|
31
|
+
color: string;
|
|
32
|
+
pattern: string;
|
|
33
|
+
fileCount: number;
|
|
34
|
+
reason?: string;
|
|
35
|
+
expiresTs: string;
|
|
36
|
+
enabled: boolean;
|
|
37
|
+
}
|
|
38
|
+
export declare function getReservationLegendItems(reservations: AgentMailReservation[], enabledLayers: Set<string>): ReservationLegendItem[];
|
|
39
|
+
//# sourceMappingURL=reservationLayers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reservationLayers.d.ts","sourceRoot":"","sources":["../../../src/panels/utils/reservationLayers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EACV,oBAAoB,EACpB,8BAA8B,EAC9B,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAiB5B;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AASD;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,YAAY,EAAE,oBAAoB,EAAE,EACpC,SAAS,GAAE,mBAAmB,EAAO,GACpC,cAAc,EAAE,CAyElB;AAED;;GAEG;AACH,wBAAgB,yCAAyC,CACvD,SAAS,EAAE,8BAA8B,GAAG,SAAS,GACpD,cAAc,EAAE,CAGlB;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,cAAc,EAAE,EAC5B,iBAAiB,EAAE,cAAc,EAAE,GAClC,cAAc,EAAE,CAUlB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,oBAAoB,EAAE,EACpC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,qBAAqB,EAAE,CAczB"}
|
package/dist/panels.bundle.js
CHANGED
|
@@ -25796,11 +25796,14 @@ const CodeCityPanelContent = ({
|
|
|
25796
25796
|
}, [fileTreeSlice == null ? void 0 : fileTreeSlice.data, fileTreeSlice == null ? void 0 : fileTreeSlice.loading, (_i = context.currentScope.repository) == null ? void 0 : _i.path]);
|
|
25797
25797
|
const handleFileClick = useCallback(
|
|
25798
25798
|
(filePath) => {
|
|
25799
|
-
|
|
25800
|
-
|
|
25801
|
-
|
|
25799
|
+
events.emit({
|
|
25800
|
+
type: "file:open",
|
|
25801
|
+
source: "code-city-panel",
|
|
25802
|
+
timestamp: Date.now(),
|
|
25803
|
+
payload: { path: filePath }
|
|
25804
|
+
});
|
|
25802
25805
|
},
|
|
25803
|
-
[
|
|
25806
|
+
[events]
|
|
25804
25807
|
);
|
|
25805
25808
|
const handleGitNodeHover = useCallback(
|
|
25806
25809
|
(nodePath, _isFolder) => {
|
|
@@ -26753,11 +26756,14 @@ const FeedCodeCityPanelContent = ({
|
|
|
26753
26756
|
}, []);
|
|
26754
26757
|
const handleFileClick = useCallback(
|
|
26755
26758
|
(filePath) => {
|
|
26756
|
-
|
|
26757
|
-
|
|
26758
|
-
|
|
26759
|
+
events.emit({
|
|
26760
|
+
type: "file:open",
|
|
26761
|
+
source: "feed-code-city-panel",
|
|
26762
|
+
timestamp: Date.now(),
|
|
26763
|
+
payload: { path: filePath }
|
|
26764
|
+
});
|
|
26759
26765
|
},
|
|
26760
|
-
[
|
|
26766
|
+
[events]
|
|
26761
26767
|
);
|
|
26762
26768
|
const handleOpen = useCallback(() => {
|
|
26763
26769
|
if ((feedProjectData == null ? void 0 : feedProjectData.repo) && events) {
|