@amodalai/chat-widget 0.1.0
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/LICENSE +21 -0
- package/dist/chat-widget.css +5 -0
- package/dist/chat-widget.js +2311 -0
- package/dist/chat-widget.js.map +1 -0
- package/dist/client/ChatClient.d.ts +76 -0
- package/dist/client/ChatClient.d.ts.map +1 -0
- package/dist/client/ChatStream.d.ts +63 -0
- package/dist/client/ChatStream.d.ts.map +1 -0
- package/dist/client/EventEmitter.d.ts +16 -0
- package/dist/client/EventEmitter.d.ts.map +1 -0
- package/dist/client/index.d.ts +13 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client.d.ts +85 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +9 -0
- package/dist/client.js.map +1 -0
- package/dist/components/AskUserCard.d.ts +8 -0
- package/dist/components/AskUserCard.d.ts.map +1 -0
- package/dist/components/ChatWidget.d.ts +9 -0
- package/dist/components/ChatWidget.d.ts.map +1 -0
- package/dist/components/FormattedText.d.ts +12 -0
- package/dist/components/FormattedText.d.ts.map +1 -0
- package/dist/components/InputBar.d.ts +15 -0
- package/dist/components/InputBar.d.ts.map +1 -0
- package/dist/components/KBProposalCard.d.ts +7 -0
- package/dist/components/KBProposalCard.d.ts.map +1 -0
- package/dist/components/MessageList.d.ts +15 -0
- package/dist/components/MessageList.d.ts.map +1 -0
- package/dist/components/SessionHistory.d.ts +12 -0
- package/dist/components/SessionHistory.d.ts.map +1 -0
- package/dist/components/SkillPill.d.ts +11 -0
- package/dist/components/SkillPill.d.ts.map +1 -0
- package/dist/components/StreamingIndicator.d.ts +7 -0
- package/dist/components/StreamingIndicator.d.ts.map +1 -0
- package/dist/components/TagEditor.d.ts +11 -0
- package/dist/components/TagEditor.d.ts.map +1 -0
- package/dist/components/ToolCallCard.d.ts +7 -0
- package/dist/components/ToolCallCard.d.ts.map +1 -0
- package/dist/components/widgets/AlertCard.d.ts +3 -0
- package/dist/components/widgets/AlertCard.d.ts.map +1 -0
- package/dist/components/widgets/Comparison.d.ts +3 -0
- package/dist/components/widgets/Comparison.d.ts.map +1 -0
- package/dist/components/widgets/CredentialInput.d.ts +3 -0
- package/dist/components/widgets/CredentialInput.d.ts.map +1 -0
- package/dist/components/widgets/DataTable.d.ts +3 -0
- package/dist/components/widgets/DataTable.d.ts.map +1 -0
- package/dist/components/widgets/DocumentPreview.d.ts +3 -0
- package/dist/components/widgets/DocumentPreview.d.ts.map +1 -0
- package/dist/components/widgets/EntityCard.d.ts +3 -0
- package/dist/components/widgets/EntityCard.d.ts.map +1 -0
- package/dist/components/widgets/EntityList.d.ts +3 -0
- package/dist/components/widgets/EntityList.d.ts.map +1 -0
- package/dist/components/widgets/InfoCard.d.ts +3 -0
- package/dist/components/widgets/InfoCard.d.ts.map +1 -0
- package/dist/components/widgets/Metric.d.ts +3 -0
- package/dist/components/widgets/Metric.d.ts.map +1 -0
- package/dist/components/widgets/ScopeMap.d.ts +3 -0
- package/dist/components/widgets/ScopeMap.d.ts.map +1 -0
- package/dist/components/widgets/ScoreBreakdown.d.ts +3 -0
- package/dist/components/widgets/ScoreBreakdown.d.ts.map +1 -0
- package/dist/components/widgets/StatusBoard.d.ts +3 -0
- package/dist/components/widgets/StatusBoard.d.ts.map +1 -0
- package/dist/components/widgets/Timeline.d.ts +3 -0
- package/dist/components/widgets/Timeline.d.ts.map +1 -0
- package/dist/components/widgets/WidgetRenderer.d.ts +28 -0
- package/dist/components/widgets/WidgetRenderer.d.ts.map +1 -0
- package/dist/events/entity-extractor.d.ts +7 -0
- package/dist/events/entity-extractor.d.ts.map +1 -0
- package/dist/events/event-bus.d.ts +27 -0
- package/dist/events/event-bus.d.ts.map +1 -0
- package/dist/events/index.d.ts +9 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/types.d.ts +72 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/hooks/useChat.d.ts +52 -0
- package/dist/hooks/useChat.d.ts.map +1 -0
- package/dist/hooks/useSessionHistory.d.ts +17 -0
- package/dist/hooks/useSessionHistory.d.ts.map +1 -0
- package/dist/hooks/useWidgetEvents.d.ts +17 -0
- package/dist/hooks/useWidgetEvents.d.ts.map +1 -0
- package/dist/index-m6lGOMRo.js +641 -0
- package/dist/index-m6lGOMRo.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/theme.d.ts +11 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/types.d.ts +298 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/umd-entry.d.ts +21 -0
- package/dist/umd-entry.d.ts.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,YAAY,EACV,eAAe,EACf,WAAW,EACX,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { ToolCallInfo, KBProposalInfo } from '../types';
|
|
2
|
+
export interface EntityReference {
|
|
3
|
+
entityType: string;
|
|
4
|
+
entityId: string;
|
|
5
|
+
source: string;
|
|
6
|
+
context?: Record<string, unknown>;
|
|
7
|
+
}
|
|
8
|
+
export interface ToolExecutedEvent {
|
|
9
|
+
type: 'tool_executed';
|
|
10
|
+
toolName: string;
|
|
11
|
+
toolId: string;
|
|
12
|
+
parameters: Record<string, unknown>;
|
|
13
|
+
status: 'success' | 'error';
|
|
14
|
+
result?: unknown;
|
|
15
|
+
duration_ms?: number;
|
|
16
|
+
error?: string;
|
|
17
|
+
timestamp: string;
|
|
18
|
+
}
|
|
19
|
+
export interface SkillActivatedEvent {
|
|
20
|
+
type: 'skill_activated';
|
|
21
|
+
skill: string;
|
|
22
|
+
timestamp: string;
|
|
23
|
+
}
|
|
24
|
+
export interface WidgetRenderedEvent {
|
|
25
|
+
type: 'widget_rendered';
|
|
26
|
+
widgetType: string;
|
|
27
|
+
data: Record<string, unknown>;
|
|
28
|
+
timestamp: string;
|
|
29
|
+
}
|
|
30
|
+
export interface KBProposalEvent {
|
|
31
|
+
type: 'kb_proposal';
|
|
32
|
+
proposal: KBProposalInfo;
|
|
33
|
+
timestamp: string;
|
|
34
|
+
}
|
|
35
|
+
export interface EntityReferencedEvent {
|
|
36
|
+
type: 'entity_referenced';
|
|
37
|
+
entity: EntityReference;
|
|
38
|
+
sourceEvent: WidgetEvent;
|
|
39
|
+
timestamp: string;
|
|
40
|
+
}
|
|
41
|
+
export interface EntityHoveredEvent {
|
|
42
|
+
type: 'entity_hovered';
|
|
43
|
+
entity: EntityReference;
|
|
44
|
+
timestamp: string;
|
|
45
|
+
}
|
|
46
|
+
export interface EntityUnhoveredEvent {
|
|
47
|
+
type: 'entity_unhovered';
|
|
48
|
+
entity: EntityReference;
|
|
49
|
+
timestamp: string;
|
|
50
|
+
}
|
|
51
|
+
export interface EntityClickedEvent {
|
|
52
|
+
type: 'entity_clicked';
|
|
53
|
+
entity: EntityReference;
|
|
54
|
+
timestamp: string;
|
|
55
|
+
}
|
|
56
|
+
export type AgentDrivenEvent = ToolExecutedEvent | SkillActivatedEvent | WidgetRenderedEvent | KBProposalEvent | EntityReferencedEvent;
|
|
57
|
+
export type InteractionEvent = EntityHoveredEvent | EntityUnhoveredEvent | EntityClickedEvent;
|
|
58
|
+
export type WidgetEvent = AgentDrivenEvent | InteractionEvent;
|
|
59
|
+
export interface WidgetEventMap {
|
|
60
|
+
tool_executed: ToolExecutedEvent;
|
|
61
|
+
skill_activated: SkillActivatedEvent;
|
|
62
|
+
widget_rendered: WidgetRenderedEvent;
|
|
63
|
+
kb_proposal: KBProposalEvent;
|
|
64
|
+
entity_referenced: EntityReferencedEvent;
|
|
65
|
+
entity_hovered: EntityHoveredEvent;
|
|
66
|
+
entity_unhovered: EntityUnhoveredEvent;
|
|
67
|
+
entity_clicked: EntityClickedEvent;
|
|
68
|
+
'*': WidgetEvent;
|
|
69
|
+
}
|
|
70
|
+
export type EntityExtractor = (event: WidgetEvent) => EntityReference[];
|
|
71
|
+
export type { ToolCallInfo, KBProposalInfo };
|
|
72
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAM7D,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAMD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,eAAe,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,MAAM,MAAM,gBAAgB,GACxB,iBAAiB,GACjB,mBAAmB,GACnB,mBAAmB,GACnB,eAAe,GACf,qBAAqB,CAAC;AAE1B,MAAM,MAAM,gBAAgB,GACxB,kBAAkB,GAClB,oBAAoB,GACpB,kBAAkB,CAAC;AAEvB,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAM9D,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,iBAAiB,CAAC;IACjC,eAAe,EAAE,mBAAmB,CAAC;IACrC,eAAe,EAAE,mBAAmB,CAAC;IACrC,WAAW,EAAE,eAAe,CAAC;IAC7B,iBAAiB,EAAE,qBAAqB,CAAC;IACzC,cAAc,EAAE,kBAAkB,CAAC;IACnC,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,cAAc,EAAE,kBAAkB,CAAC;IACnC,GAAG,EAAE,WAAW,CAAC;CAClB;AAMD,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,eAAe,EAAE,CAAC;AAGxE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ChatState, ChatAction, ChatMessage, ToolCallInfo, KBProposalInfo, ChatUser } from '../types';
|
|
2
|
+
import { WidgetEventBus } from '../events/event-bus';
|
|
3
|
+
import { WidgetEvent, EntityExtractor } from '../events/types';
|
|
4
|
+
export declare function chatReducer(state: ChatState, action: ChatAction): ChatState;
|
|
5
|
+
export interface UseChatOptions {
|
|
6
|
+
serverUrl: string;
|
|
7
|
+
user: ChatUser;
|
|
8
|
+
/** Return a Bearer token (API key or JWT) for authenticated requests. */
|
|
9
|
+
getToken?: () => string | null | undefined;
|
|
10
|
+
onToolCall?: (call: ToolCallInfo) => void;
|
|
11
|
+
onKBProposal?: (proposal: KBProposalInfo) => void;
|
|
12
|
+
/** Callback for all widget events (agent-driven + interaction). */
|
|
13
|
+
onEvent?: (event: WidgetEvent) => void;
|
|
14
|
+
/** Custom entity extractors. If provided, replaces the default extractor. */
|
|
15
|
+
entityExtractors?: EntityExtractor[];
|
|
16
|
+
/** Session type — controls which skills, tools, KB docs load into this session. */
|
|
17
|
+
sessionType?: string;
|
|
18
|
+
/** Specific deployment ID to load instead of the active deployment. */
|
|
19
|
+
deployId?: string;
|
|
20
|
+
/** Auto-send this message when the hook mounts. Sent exactly once via ref guard. */
|
|
21
|
+
initialMessage?: string;
|
|
22
|
+
/** Load an existing session on mount (read-only history view). Takes precedence over initialMessage. */
|
|
23
|
+
resumeSessionId?: string;
|
|
24
|
+
/** Called when the SSE stream ends (agent finishes responding). */
|
|
25
|
+
onStreamEnd?: () => void;
|
|
26
|
+
/** Called when a session ID is received from the server (first stream init). */
|
|
27
|
+
onSessionCreated?: (sessionId: string) => void;
|
|
28
|
+
}
|
|
29
|
+
export interface UseChatReturn {
|
|
30
|
+
messages: ChatMessage[];
|
|
31
|
+
send: (text: string) => void;
|
|
32
|
+
/** Stop the current stream without clearing history. */
|
|
33
|
+
stop: () => void;
|
|
34
|
+
isStreaming: boolean;
|
|
35
|
+
activeToolCalls: ToolCallInfo[];
|
|
36
|
+
session: {
|
|
37
|
+
id: string | null;
|
|
38
|
+
role?: string;
|
|
39
|
+
};
|
|
40
|
+
error: string | null;
|
|
41
|
+
reset: () => void;
|
|
42
|
+
/** Event bus for subscribing to widget events. */
|
|
43
|
+
eventBus: WidgetEventBus;
|
|
44
|
+
/** Submit answers to a pending ask_user prompt. */
|
|
45
|
+
submitAskUserResponse: (askId: string, answers: Record<string, string>) => void;
|
|
46
|
+
/** Load a historical session for read-only viewing. */
|
|
47
|
+
loadSession: (sessionId: string) => void;
|
|
48
|
+
/** True when viewing a loaded historical session. */
|
|
49
|
+
isHistorical: boolean;
|
|
50
|
+
}
|
|
51
|
+
export declare function useChat(options: UseChatOptions): UseChatReturn;
|
|
52
|
+
//# sourceMappingURL=useChat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChat.d.ts","sourceRoot":"","sources":["../../src/hooks/useChat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,SAAS,EACT,UAAU,EACV,WAAW,EAEX,YAAY,EACZ,cAAc,EAGd,QAAQ,EACT,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAkBpE,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,SAAS,CAsO3E;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAClD,mEAAmE;IACnE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wGAAwG;IACxG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,wDAAwD;IACxD,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,YAAY,EAAE,CAAC;IAChC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,kDAAkD;IAClD,QAAQ,EAAE,cAAc,CAAC;IACzB,mDAAmD;IACnD,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAChF,uDAAuD;IACvD,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,qDAAqD;IACrD,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CA+d9D"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SessionHistoryItem } from '../client';
|
|
2
|
+
export interface UseSessionHistoryOptions {
|
|
3
|
+
serverUrl: string;
|
|
4
|
+
getToken?: () => string | null | undefined;
|
|
5
|
+
enabled: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface UseSessionHistoryReturn {
|
|
8
|
+
sessions: SessionHistoryItem[];
|
|
9
|
+
isLoading: boolean;
|
|
10
|
+
error: string | null;
|
|
11
|
+
refresh: () => void;
|
|
12
|
+
updateTags: (sessionId: string, tags: string[]) => void;
|
|
13
|
+
updateTitle: (sessionId: string, title: string) => void;
|
|
14
|
+
allTags: string[];
|
|
15
|
+
}
|
|
16
|
+
export declare function useSessionHistory(options: UseSessionHistoryOptions): UseSessionHistoryReturn;
|
|
17
|
+
//# sourceMappingURL=useSessionHistory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSessionHistory.d.ts","sourceRoot":"","sources":["../../src/hooks/useSessionHistory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxD,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,uBAAuB,CA0E5F"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { WidgetEventBus } from '../events/event-bus';
|
|
2
|
+
import { WidgetEventMap, WidgetEvent } from '../events/types';
|
|
3
|
+
type Unsubscribe = () => void;
|
|
4
|
+
export interface UseWidgetEventsReturn {
|
|
5
|
+
/** Subscribe to a specific event type. Returns unsubscribe function. */
|
|
6
|
+
on: <K extends keyof WidgetEventMap>(event: K, listener: (data: WidgetEventMap[K]) => void) => Unsubscribe;
|
|
7
|
+
/** Subscribe to all events. Returns unsubscribe function. */
|
|
8
|
+
onAny: (listener: (data: WidgetEvent) => void) => Unsubscribe;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* React hook for subscribing to widget events with automatic cleanup on unmount.
|
|
12
|
+
* Subscriptions created via `on` / `onAny` are tracked and removed when the
|
|
13
|
+
* component unmounts.
|
|
14
|
+
*/
|
|
15
|
+
export declare function useWidgetEvents(eventBus: WidgetEventBus | null | undefined): UseWidgetEventsReturn;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=useWidgetEvents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWidgetEvents.d.ts","sourceRoot":"","sources":["../../src/hooks/useWidgetEvents.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnE,KAAK,WAAW,GAAG,MAAM,IAAI,CAAC;AAE9B,MAAM,WAAW,qBAAqB;IACpC,wEAAwE;IACxE,EAAE,EAAE,CAAC,CAAC,SAAS,MAAM,cAAc,EACjC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,KACxC,WAAW,CAAC;IACjB,6DAA6D;IAC7D,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,KAAK,WAAW,CAAC;CAC/D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,qBAAqB,CAiDlG"}
|