@amodalai/react 0.1.0 → 0.1.1
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/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/chat-api.d.ts +80 -0
- package/dist/client/chat-api.d.ts.map +1 -0
- package/dist/client/index.d.ts +7 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client.js +437 -123
- package/dist/client.js.map +1 -1
- package/dist/event-bus-h26clqbZ.js +297 -0
- package/dist/event-bus-h26clqbZ.js.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/useAmodalChat.d.ts.map +1 -1
- 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.d.ts +17 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/react.css +5 -0
- package/dist/react.js +245 -222
- package/dist/react.js.map +1 -1
- package/dist/theme-BaBR_tym.js +691 -0
- package/dist/theme-BaBR_tym.js.map +1 -0
- package/dist/theme.d.ts +11 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/types.d.ts +106 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/umd-entry.d.ts +21 -0
- package/dist/umd-entry.d.ts.map +1 -0
- package/dist/widget/AskUserCard.d.ts +8 -0
- package/dist/widget/AskUserCard.d.ts.map +1 -0
- package/dist/widget/ChatWidget.d.ts +9 -0
- package/dist/widget/ChatWidget.d.ts.map +1 -0
- package/dist/widget/FormattedText.d.ts +12 -0
- package/dist/widget/FormattedText.d.ts.map +1 -0
- package/dist/widget/InputBar.d.ts +15 -0
- package/dist/widget/InputBar.d.ts.map +1 -0
- package/dist/widget/KBProposalCard.d.ts +7 -0
- package/dist/widget/KBProposalCard.d.ts.map +1 -0
- package/dist/widget/MessageList.d.ts +15 -0
- package/dist/widget/MessageList.d.ts.map +1 -0
- package/dist/widget/SessionHistory.d.ts +12 -0
- package/dist/widget/SessionHistory.d.ts.map +1 -0
- package/dist/widget/SkillPill.d.ts +11 -0
- package/dist/widget/SkillPill.d.ts.map +1 -0
- package/dist/widget/StreamingIndicator.d.ts +7 -0
- package/dist/widget/StreamingIndicator.d.ts.map +1 -0
- package/dist/widget/TagEditor.d.ts +11 -0
- package/dist/widget/TagEditor.d.ts.map +1 -0
- package/dist/widget/ToolCallCard.d.ts +7 -0
- package/dist/widget/ToolCallCard.d.ts.map +1 -0
- package/dist/widget/index.d.ts +33 -0
- package/dist/widget/index.d.ts.map +1 -0
- package/dist/widget/widgets/AlertCard.d.ts +3 -0
- package/dist/widget/widgets/AlertCard.d.ts.map +1 -0
- package/dist/widget/widgets/Comparison.d.ts +3 -0
- package/dist/widget/widgets/Comparison.d.ts.map +1 -0
- package/dist/widget/widgets/CredentialInput.d.ts +3 -0
- package/dist/widget/widgets/CredentialInput.d.ts.map +1 -0
- package/dist/widget/widgets/DataTable.d.ts +3 -0
- package/dist/widget/widgets/DataTable.d.ts.map +1 -0
- package/dist/widget/widgets/DocumentPreview.d.ts +3 -0
- package/dist/widget/widgets/DocumentPreview.d.ts.map +1 -0
- package/dist/widget/widgets/EntityCard.d.ts +3 -0
- package/dist/widget/widgets/EntityCard.d.ts.map +1 -0
- package/dist/widget/widgets/EntityList.d.ts +3 -0
- package/dist/widget/widgets/EntityList.d.ts.map +1 -0
- package/dist/widget/widgets/InfoCard.d.ts +3 -0
- package/dist/widget/widgets/InfoCard.d.ts.map +1 -0
- package/dist/widget/widgets/Metric.d.ts +3 -0
- package/dist/widget/widgets/Metric.d.ts.map +1 -0
- package/dist/widget/widgets/ScopeMap.d.ts +3 -0
- package/dist/widget/widgets/ScopeMap.d.ts.map +1 -0
- package/dist/widget/widgets/ScoreBreakdown.d.ts +3 -0
- package/dist/widget/widgets/ScoreBreakdown.d.ts.map +1 -0
- package/dist/widget/widgets/StatusBoard.d.ts +3 -0
- package/dist/widget/widgets/StatusBoard.d.ts.map +1 -0
- package/dist/widget/widgets/Timeline.d.ts +3 -0
- package/dist/widget/widgets/Timeline.d.ts.map +1 -0
- package/dist/widget/widgets/WidgetRenderer.d.ts +28 -0
- package/dist/widget/widgets/WidgetRenderer.d.ts.map +1 -0
- package/dist/widget.js +1668 -0
- package/dist/widget.js.map +1 -0
- package/package.json +8 -1
|
@@ -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,CA6Q3E;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,CAge9D"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SessionHistoryItem } from '../client/chat-api';
|
|
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,oBAAoB,CAAC;AAE7D,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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -31,9 +31,25 @@ export { useSkillAction } from './hooks/useSkillAction';
|
|
|
31
31
|
export type { UseSkillActionOptions, UseSkillActionReturn } from './hooks/useSkillAction';
|
|
32
32
|
export { useNavigate, NavigateContext } from './hooks/useNavigate';
|
|
33
33
|
export type { NavigateFn } from './hooks/useNavigate';
|
|
34
|
+
export { useChat } from './hooks/useChat';
|
|
35
|
+
export type { UseChatOptions, UseChatReturn } from './hooks/useChat';
|
|
36
|
+
export { useWidgetEvents } from './hooks/useWidgetEvents';
|
|
37
|
+
export type { UseWidgetEventsReturn } from './hooks/useWidgetEvents';
|
|
38
|
+
export { useSessionHistory } from './hooks/useSessionHistory';
|
|
39
|
+
export type { UseSessionHistoryOptions, UseSessionHistoryReturn } from './hooks/useSessionHistory';
|
|
34
40
|
export { RuntimeClient } from './client/runtime-client';
|
|
35
41
|
export type { RuntimeClientOptions } from './client/runtime-client';
|
|
36
42
|
export { parseSSELine, streamSSE, streamSSEGet } from './client/sse-client';
|
|
37
43
|
export type { StreamSSEOptions } from './client/sse-client';
|
|
38
|
-
export
|
|
44
|
+
export { streamChat, createSession, createChatClient, listSessions, getSessionHistory, updateSession } from './client/chat-api';
|
|
45
|
+
export type { ChatStreamRequest, SessionInfo, SessionHistoryItem, SessionDetail } from './client/chat-api';
|
|
46
|
+
export { ChatClient } from './client/ChatClient';
|
|
47
|
+
export type { ChatClientConfig, ClientEvents } from './client/ChatClient';
|
|
48
|
+
export { ChatStream } from './client/ChatStream';
|
|
49
|
+
export type { ChatResponse } from './client/ChatStream';
|
|
50
|
+
export { TypedEventEmitter } from './client/EventEmitter';
|
|
51
|
+
export { WidgetEventBus, defaultEntityExtractor } from './events';
|
|
52
|
+
export type { WidgetEvent, WidgetEventMap, EntityReference, EntityExtractor, AgentDrivenEvent, InteractionEvent, ToolExecutedEvent, SkillActivatedEvent, WidgetRenderedEvent, KBProposalEvent, EntityReferencedEvent, EntityHoveredEvent, EntityUnhoveredEvent, EntityClickedEvent, } from './events';
|
|
53
|
+
export { defaultTheme, applyTheme, mergeTheme } from './theme';
|
|
54
|
+
export type { SSEEvent, SSEEventType, SSEInitEvent, SSETextDeltaEvent, SSEToolCallStartEvent, SSEToolCallResultEvent, SSESubagentEvent, SSESkillActivatedEvent, SSEWidgetEvent, SSEKBProposalEvent, SSEConfirmationRequiredEvent, SSECredentialSavedEvent, SSEApprovedEvent, SSEAskUserEvent, SSEExploreStartEvent, SSEExploreEndEvent, SSEPlanModeEvent, SSEFieldScrubEvent, SSEErrorEvent, SSEDoneEvent, AskUserQuestion, AskUserQuestionOption, AskUserStatus, AskUserBlock, ChatMessage, UserMessage, AssistantTextMessage, ErrorMessage, ToolCallInfo, ToolCallStatus, ConfirmationInfo, KBProposalInfo, WidgetInfo, ContentBlock, SubagentEventInfo, ChatState, ChatAction, ChatUser, ChatTheme, WidgetConfig, WidgetPosition, TaskStatus, TaskStatusValue, BriefResult, InsightResult, QueryResult, StoreFieldDefinitionInfo, StoreEntityInfo, StoreDefinitionInfo, StoreDocumentMeta, StoreDocument, StoreListResult, StoreDocumentResult, } from './types';
|
|
39
55
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9D,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,YAAY,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG1F,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC5E,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,4BAA4B,EAC5B,aAAa,EACb,YAAY,EACZ,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,UAAU,EACV,eAAe,EACf,WAAW,EACX,aAAa,EACb,WAAW,EACX,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,mBAAmB,GACpB,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/react.css
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/.pcw-widget{--pcw-primary: #1e40af;--pcw-bg: #ffffff;--pcw-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--pcw-font-size: 14px;--pcw-radius: 8px;--pcw-user-bubble: #1e40af;--pcw-agent-bubble: #f3f4f6;--pcw-tool-call-bg: #f9fafb;--pcw-text: #111827;--pcw-text-muted: #6b7280;--pcw-border: #e5e7eb;--pcw-shadow: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);font-family:var(--pcw-font);font-size:var(--pcw-font-size);color:var(--pcw-text);box-sizing:border-box;line-height:1.5}.pcw-widget *,.pcw-widget *:before,.pcw-widget *:after{box-sizing:border-box}.pcw-widget--inline{display:flex;flex-direction:column;height:100%;width:100%;background:var(--pcw-bg);border-radius:var(--pcw-radius);overflow:hidden}.pcw-widget--right{position:fixed;top:0;right:0;width:400px;height:100vh;background:var(--pcw-bg);box-shadow:var(--pcw-shadow);z-index:9999;display:flex;flex-direction:column}.pcw-widget--floating{position:fixed;bottom:24px;right:24px;width:400px;height:600px;max-height:calc(100vh - 48px);background:var(--pcw-bg);border-radius:var(--pcw-radius);box-shadow:var(--pcw-shadow);z-index:9999;display:flex;flex-direction:column;overflow:hidden}.pcw-widget--bottom{position:fixed;bottom:0;left:0;right:0;height:400px;background:var(--pcw-bg);box-shadow:0 -2px 10px #0000001a;z-index:9999;display:flex;flex-direction:column}.pcw-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--pcw-border);background:var(--pcw-bg);flex-shrink:0}.pcw-header__title{font-weight:600;font-size:15px;margin:0}.pcw-header__close{background:none;border:none;cursor:pointer;padding:4px;color:var(--pcw-text-muted);font-size:18px;line-height:1}.pcw-header__close:hover{color:var(--pcw-text)}.pcw-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.pcw-messages--empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--pcw-text-muted);padding:16px}.pcw-bubble{max-width:80%;padding:8px 12px;border-radius:var(--pcw-radius);word-wrap:break-word;white-space:pre-wrap}.pcw-bubble--user{align-self:flex-end;background:var(--pcw-user-bubble);color:#fff}.pcw-bubble--assistant{align-self:flex-start;background:var(--pcw-agent-bubble);color:var(--pcw-text)}.pcw-bubble__text{margin:0;font-size:var(--pcw-font-size);line-height:1.5}.pcw-bubble__extras{display:flex;flex-direction:column;gap:8px;margin-top:8px}.pcw-tool-call{background:var(--pcw-tool-call-bg);border:1px solid var(--pcw-border);border-radius:6px;padding:8px;font-size:12px}.pcw-tool-call__header{display:flex;align-items:center;gap:6px;cursor:pointer;background:none;border:none;width:100%;text-align:left;padding:0;font-family:inherit;font-size:inherit;color:var(--pcw-text)}.pcw-tool-call__chevron{flex-shrink:0;font-size:10px;color:var(--pcw-text-muted)}.pcw-tool-call__name{font-family:monospace;font-weight:500}.pcw-tool-call__status{margin-left:auto;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:500;text-transform:uppercase}.pcw-tool-call__status--running{background:#dbeafe;color:#1e40af}.pcw-tool-call__status--success{background:#dcfce7;color:#166534}.pcw-tool-call__status--error{background:#fee2e2;color:#991b1b}.pcw-tool-call__details{margin-top:8px;background:var(--pcw-agent-bubble);border-radius:4px;padding:8px;overflow-x:auto;font-family:monospace;font-size:11px;white-space:pre-wrap}.pcw-tool-call__subagent{padding:2px 0 2px 12px;border-left:2px solid var(--pcw-border, #e5e7eb);margin:4px 0 4px 8px}.pcw-subagent-row{font-size:12px;color:var(--pcw-text-muted, #6b7280)}.pcw-subagent-row__header{display:flex;align-items:center;gap:5px;width:100%;padding:3px 4px;border:none;border-radius:3px;background:none;cursor:pointer;font:inherit;color:inherit;text-align:left}.pcw-subagent-row__header:hover{background:var(--pcw-bg-hover, rgba(0, 0, 0, .04))}.pcw-subagent-row__header--static{cursor:default}.pcw-subagent-row__header--static:hover{background:none}.pcw-subagent-row__chevron{font-size:8px;width:10px;flex-shrink:0;opacity:.5}.pcw-subagent-row__icon{width:14px;flex-shrink:0;text-align:center;color:#16a34a}.pcw-subagent-row__icon--error{color:#dc2626}.pcw-subagent-row__name{font-family:var(--pcw-font-mono, ui-monospace, monospace);font-weight:500}.pcw-subagent-row__detail{margin:2px 0 4px 29px}.pcw-subagent-row__result,.pcw-subagent-row__error,.pcw-subagent-row__args{margin:0;padding:6px 8px;border-radius:4px;background:var(--pcw-bg-code, #f3f4f6);font-family:var(--pcw-font-mono, ui-monospace, monospace);font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.pcw-subagent-row__error{color:#dc2626;background:#fef2f2}.pcw-subagent-row__args{margin-top:4px;opacity:.8}.pcw-dispatch-args{margin:6px 0 2px;display:flex;flex-direction:column;gap:3px}.pcw-dispatch-args__row{display:flex;gap:6px;align-items:baseline;line-height:1.4}.pcw-dispatch-args__label{flex-shrink:0;width:56px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--pcw-text-muted, #6b7280)}.pcw-dispatch-args__value{font-size:12px;color:var(--pcw-text, #111827);line-height:1.4}.pcw-dispatch-args__value--mono{font-family:var(--pcw-font-mono, ui-monospace, monospace);font-weight:500}.pcw-dispatch-args__tags{display:flex;flex-wrap:wrap;gap:3px}.pcw-dispatch-args__tag{padding:0 5px;border-radius:3px;font-size:11px;font-family:var(--pcw-font-mono, ui-monospace, monospace);background:var(--pcw-bg-code, #f3f4f6);color:var(--pcw-text-muted, #6b7280)}.pcw-dispatch-details{margin-top:6px;border-top:1px solid var(--pcw-border, #e5e7eb);padding-top:4px}.pcw-dispatch-details__toggle{display:flex;align-items:center;gap:5px;background:none;border:none;padding:3px 0;cursor:pointer;font:inherit;font-size:11px;font-weight:500;color:var(--pcw-text-muted, #6b7280)}.pcw-dispatch-details__toggle:hover{color:var(--pcw-text, #111827)}.pcw-dispatch-details__count{margin-left:4px;font-weight:400;opacity:.7}.pcw-dispatch-details__body{margin-top:4px}.pcw-tool-call__subagent-summary{padding:8px 10px;margin:4px 0;font-size:12px;line-height:1.5;color:var(--pcw-text, #111827);background:var(--pcw-agent-bubble, #f3f4f6);border-radius:6px;max-height:400px;overflow-y:auto}.pcw-formatted-text{white-space:normal}.pcw-formatted-text p{margin:0 0 4px}.pcw-formatted-text p:last-child{margin-bottom:0}.pcw-md-h1,.pcw-md-h2,.pcw-md-h3,.pcw-md-h4{margin:10px 0 4px;line-height:1.3}.pcw-md-h1{font-size:15px;font-weight:700}.pcw-md-h2{font-size:14px;font-weight:600}.pcw-md-h3{font-size:13px;font-weight:600}.pcw-md-h4{font-size:12px;font-weight:600}.pcw-md-h1:first-child,.pcw-md-h2:first-child,.pcw-md-h3:first-child,.pcw-md-h4:first-child{margin-top:0}.pcw-md-list{margin:2px 0 4px;padding-left:20px}.pcw-md-list li{margin:1px 0}.pcw-md-list:last-child{margin-bottom:0}.pcw-md-code{padding:1px 4px;border-radius:3px;font-family:var(--pcw-font-mono, ui-monospace, monospace);font-size:.9em;background:var(--pcw-bg-code, rgba(0, 0, 0, .06))}.pcw-md-codeblock{margin:4px 0;padding:8px;border-radius:4px;background:var(--pcw-bg-code, #f3f4f6);font-family:var(--pcw-font-mono, ui-monospace, monospace);font-size:11px;line-height:1.5;overflow-x:auto;white-space:pre}.pcw-md-codeblock code{background:none;padding:0}.pcw-formatted-text strong{font-weight:600}.pcw-formatted-text a{color:var(--pcw-primary, #1e40af);text-decoration:underline}.pcw-dispatch-streaming{border-top:1px solid var(--pcw-border, #e5e7eb);padding:8px 12px;max-height:200px;overflow-y:auto}.pcw-subagent-inline-tool{display:flex;align-items:center;gap:5px;padding:3px 4px;font-size:12px;color:var(--pcw-text-muted, #6b7280)}.pcw-subagent-row__icon--running{color:#2563eb}.pcw-dispatch-inline-text{padding:2px 4px;font-size:12px;color:var(--pcw-text-muted, #6b7280)}.pcw-tool-call__header--static{cursor:default}.pcw-tool-call__error{margin-top:4px;color:#dc2626;font-size:11px}.pcw-tool-call__duration{color:var(--pcw-text-muted);font-size:10px;margin-left:4px}.pcw-kb-proposal{background:#fffbeb;border:1px solid #fbbf24;border-radius:6px;padding:8px 12px;font-size:12px}.pcw-kb-proposal__header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.pcw-kb-proposal__icon{font-size:14px}.pcw-kb-proposal__title{font-weight:600;font-size:13px}.pcw-kb-proposal__scope{padding:1px 6px;border-radius:4px;font-size:10px;font-weight:500;text-transform:uppercase;background:#fef3c7;color:#92400e;margin-left:auto}.pcw-kb-proposal__reasoning{color:var(--pcw-text-muted);font-size:12px;margin:0}.pcw-skill-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:12px;background:#ede9fe;color:#5b21b6;font-size:11px;font-weight:500;align-self:flex-start}.pcw-streaming{display:flex;align-items:center;gap:4px;padding:8px 16px;align-self:flex-start}.pcw-streaming__dot{width:6px;height:6px;border-radius:50%;background:var(--pcw-text-muted);animation:pcw-bounce 1.4s ease-in-out infinite}.pcw-streaming__dot:nth-child(1){animation-delay:-.32s}.pcw-streaming__dot:nth-child(2){animation-delay:-.16s}@keyframes pcw-bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.pcw-input{display:flex;align-items:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--pcw-border);background:var(--pcw-bg);flex-shrink:0}.pcw-input__textarea{flex:1;min-height:40px;max-height:120px;padding:8px 12px;border:1px solid var(--pcw-border);border-radius:6px;font-family:var(--pcw-font);font-size:var(--pcw-font-size);resize:none;outline:none;line-height:1.5;color:var(--pcw-text);background:var(--pcw-bg)}.pcw-input__textarea:focus{border-color:var(--pcw-primary);box-shadow:0 0 0 2px #1e40af1a}.pcw-input__textarea::placeholder{color:var(--pcw-text-muted)}.pcw-input__textarea:disabled{opacity:.5;cursor:not-allowed}.pcw-input__send{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:6px;background:var(--pcw-primary);color:#fff;cursor:pointer;flex-shrink:0;transition:opacity .15s}.pcw-input__send:hover:not(:disabled){opacity:.9}.pcw-input__send:disabled{opacity:.4;cursor:not-allowed}.pcw-input__send svg{width:16px;height:16px}.pcw-input__stop{background:var(--pcw-danger, #dc2626)}.pcw-input__stop:hover{opacity:.9}.pcw-toggle{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background:var(--pcw-primary);color:#fff;border:none;cursor:pointer;box-shadow:var(--pcw-shadow);display:flex;align-items:center;justify-content:center;z-index:9998;transition:transform .15s}.pcw-toggle:hover{transform:scale(1.05)}.pcw-toggle svg{width:24px;height:24px}.pcw-error{padding:8px 16px;background:#fee2e2;color:#991b1b;font-size:12px;border-top:1px solid #fecaca}.pcw-widget-card{border:1px solid var(--pcw-border);border-radius:6px;padding:10px;margin:4px 0;font-size:12px;background:var(--pcw-bg)}.pcw-widget-card--generic{background:var(--pcw-tool-call-bg)}.pcw-widget-card__header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.pcw-widget-card__type{font-family:monospace;font-size:11px;color:var(--pcw-text-muted)}.pcw-widget-card__json{margin:0;font-size:11px;font-family:monospace;white-space:pre-wrap;overflow-x:auto;max-height:200px;overflow-y:auto;background:var(--pcw-agent-bubble);padding:6px;border-radius:4px}.pcw-entity-card__header{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}.pcw-entity-card__mac{font-family:monospace;font-weight:600;font-size:13px}.pcw-entity-card__mfr{color:var(--pcw-text-muted);font-size:12px}.pcw-entity-card__protocols{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.pcw-entity-card__protocol-badge{display:inline-block;padding:1px 6px;border-radius:4px;background:#dbeafe;color:#1e40af;font-size:10px;font-weight:500}.pcw-entity-card__zone{font-size:11px;color:var(--pcw-text-muted);margin-bottom:6px}.pcw-entity-card__factors{font-size:11px;margin:6px 0;padding:4px 6px;background:var(--pcw-agent-bubble);border-radius:4px}.pcw-entity-card__factor{display:flex;justify-content:space-between;padding:1px 0}.pcw-entity-card__meta{display:flex;gap:12px;font-size:11px;color:var(--pcw-text-muted);margin:4px 0}.pcw-entity-card__actions{display:flex;gap:6px;margin-top:6px}.pcw-entity-card__btn{padding:4px 10px;border:1px solid var(--pcw-primary);border-radius:4px;background:var(--pcw-primary);color:#fff;font-size:11px;font-weight:500;cursor:pointer;font-family:inherit}.pcw-entity-card__btn:hover{opacity:.9}.pcw-entity-card__btn--secondary{background:transparent;color:var(--pcw-primary)}.pcw-entity-card__btn--secondary:hover{background:#1e40af0d}.pcw-score-bar{margin:4px 0}.pcw-score-bar__label{font-size:11px;font-weight:500;margin-bottom:2px}.pcw-score-bar__track{height:6px;background:#e5e7eb;border-radius:3px;overflow:hidden}.pcw-score-bar__fill{height:100%;border-radius:3px;background:linear-gradient(to right,#10b981,#f59e0b,#ef4444);transition:width .3s ease}.pcw-alert-card__header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.pcw-alert-card__severity{padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase}.pcw-alert-card__severity--low{background:#f3f4f6;color:#374151}.pcw-alert-card__severity--medium{background:#fef3c7;color:#92400e}.pcw-alert-card__severity--high{background:#fed7aa;color:#9a3412}.pcw-alert-card__severity--critical{background:#fee2e2;color:#991b1b}.pcw-alert-card__type{font-weight:500}.pcw-alert-card__zone{color:var(--pcw-text-muted);font-size:11px;margin-left:auto}.pcw-alert-card__description{margin:0 0 6px;font-size:12px;line-height:1.4}.pcw-alert-card__devices{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}.pcw-alert-card__device-link{font-family:monospace;font-size:11px;color:var(--pcw-primary);background:none;border:none;cursor:pointer;padding:1px 4px;text-decoration:underline}.pcw-alert-card__device-link:hover{opacity:.7}.pcw-alert-card__protocols{display:flex;gap:4px;margin-bottom:4px}.pcw-alert-card__time{font-size:10px;color:var(--pcw-text-muted)}.pcw-timeline__label{font-weight:500;font-size:12px;margin-bottom:8px}.pcw-timeline__events{position:relative;padding-left:16px}.pcw-timeline__events:before{content:"";position:absolute;left:5px;top:0;bottom:0;width:2px;background:var(--pcw-border)}.pcw-timeline__event{position:relative;display:flex;align-items:flex-start;gap:8px;padding:4px 0}.pcw-timeline__marker{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:2px;position:relative;z-index:1;margin-left:-11px}.pcw-timeline__content{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.pcw-timeline__time{font-size:10px;color:var(--pcw-text-muted);font-family:monospace}.pcw-timeline__event-label{font-size:12px}.pcw-comparison__title{font-weight:500;font-size:12px;margin-bottom:8px}.pcw-comparison__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.pcw-comparison__item{border:1px solid var(--pcw-border);border-radius:4px;padding:8px;display:flex;flex-direction:column;gap:2px}.pcw-comparison__mac{font-family:monospace;font-weight:600;font-size:11px}.pcw-comparison__detail{font-size:11px;color:var(--pcw-text-muted)}.pcw-comparison__score{font-size:11px;font-weight:500}.pcw-data-table__title{font-weight:500;font-size:12px;margin-bottom:6px}.pcw-data-table__scroll{overflow-x:auto}.pcw-data-table__table{width:100%;border-collapse:collapse;font-size:11px}.pcw-data-table__table th,.pcw-data-table__table td{padding:4px 8px;text-align:left;border-bottom:1px solid var(--pcw-border)}.pcw-data-table__table th{font-weight:600;background:var(--pcw-agent-bubble);white-space:nowrap}.pcw-data-table__sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.pcw-data-table__sortable:hover{background:#e5e7eb}.pcw-entity-list__title{font-weight:500;font-size:12px;margin-bottom:6px}.pcw-entity-list__sort{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--pcw-text-muted);margin-bottom:6px}.pcw-entity-list__sort-btn{padding:1px 6px;border:1px solid var(--pcw-border);border-radius:3px;background:transparent;font-size:10px;cursor:pointer;font-family:inherit;color:var(--pcw-text-muted)}.pcw-entity-list__sort-btn--active{background:var(--pcw-primary);color:#fff;border-color:var(--pcw-primary)}.pcw-entity-list__row{cursor:pointer}.pcw-entity-list__row:hover{background:var(--pcw-agent-bubble)}.pcw-entity-list__row--expanded{background:#eff6ff}.pcw-entity-list__mac{font-family:monospace;font-size:11px}.pcw-entity-list__detail{padding:6px 8px;display:flex;gap:6px}.pcw-entity-list__more{text-align:center;font-size:11px;color:var(--pcw-text-muted);padding:4px}.pcw-scope-map__label{font-weight:500;font-size:12px;margin-bottom:6px}.pcw-scope-map__svg{width:100%;max-width:280px}.pcw-scope-map__zone{fill:#f3f4f6;stroke:#d1d5db;stroke-width:1}.pcw-scope-map__zone--highlight{fill:#fee2e2;stroke:#ef4444;stroke-width:2}.pcw-scope-map__zone-label{font-size:9px;font-weight:600;fill:#374151}.pcw-scope-map__zone-name{font-size:7px;fill:#6b7280}.pcw-scope-map__devices{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.pcw-scope-map__device-badge{font-family:monospace;font-size:10px;padding:1px 4px;background:#fee2e2;border-radius:3px;color:#991b1b}.pcw-score-breakdown__label{font-weight:500;font-size:12px;margin-bottom:6px}.pcw-score-breakdown__factors{margin-top:8px;display:flex;flex-direction:column;gap:6px}.pcw-score-breakdown__factor{font-size:11px}.pcw-score-breakdown__factor-header{display:flex;justify-content:space-between;margin-bottom:2px}.pcw-score-breakdown__factor-name{text-transform:capitalize}.pcw-score-breakdown__factor-value{font-weight:600;color:var(--pcw-primary)}.pcw-score-breakdown__factor-bar{height:4px;background:#e5e7eb;border-radius:2px;overflow:hidden}.pcw-score-breakdown__factor-fill{height:100%;background:var(--pcw-primary);border-radius:2px;transition:width .3s ease}.pcw-score-breakdown__factor-desc{font-size:10px;color:var(--pcw-text-muted);margin-top:2px}.pcw-status-board__title{font-weight:500;font-size:12px;margin-bottom:6px}.pcw-status-board__items{display:flex;flex-direction:column;gap:4px}.pcw-status-board__item{padding:6px 8px;border-radius:4px;border-left:3px solid transparent}.pcw-status-board__item:hover{background:var(--pcw-agent-bubble)}.pcw-status-board__item--critical{border-left-color:#dc2626}.pcw-status-board__item--high{border-left-color:#ea580c}.pcw-status-board__item--medium{border-left-color:#ca8a04}.pcw-status-board__item--low{border-left-color:#2563eb}.pcw-status-board__item-header{display:flex;align-items:baseline;gap:8px;font-size:12px}.pcw-status-board__severity{font-size:9px;font-weight:700;padding:1px 4px;border-radius:3px}.pcw-status-board__severity--critical{background:#fee2e2;color:#dc2626}.pcw-status-board__severity--high{background:#ffedd5;color:#ea580c}.pcw-status-board__severity--medium{background:#fef9c3;color:#ca8a04}.pcw-status-board__severity--low{background:#dbeafe;color:#2563eb}.pcw-status-board__item-label{font-weight:500;flex:1}.pcw-status-board__item-status{font-size:10px;color:var(--pcw-text-muted)}.pcw-status-board__item-desc{font-size:11px;color:var(--pcw-text-muted);margin-top:2px}.pcw-widget-card--credential-input{background:var(--pcw-bg)}.pcw-credential-input__title{font-weight:600;font-size:13px;margin-bottom:10px}.pcw-credential-input__field{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.pcw-credential-input__label{font-size:11px;font-weight:500;color:var(--pcw-text)}.pcw-credential-input__input{padding:6px 8px;border:1px solid var(--pcw-border);border-radius:4px;font-family:var(--pcw-font);font-size:12px;color:var(--pcw-text);background:var(--pcw-bg);outline:none}.pcw-credential-input__input:focus{border-color:var(--pcw-primary);box-shadow:0 0 0 2px #1e40af1a}.pcw-credential-input__input:disabled{opacity:.5;cursor:not-allowed}.pcw-credential-input__submit{display:block;width:100%;padding:6px 12px;margin-top:4px;border:none;border-radius:4px;background:var(--pcw-primary);color:#fff;font-family:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:opacity .15s}.pcw-credential-input__submit:hover:not(:disabled){opacity:.9}.pcw-credential-input__submit:disabled{opacity:.5;cursor:not-allowed}.pcw-credential-input__status{font-size:12px;padding:6px 8px;border-radius:4px;margin-bottom:6px}.pcw-credential-input__status--success{background:#dcfce7;color:#166534}.pcw-credential-input__status--error{background:#fee2e2;color:#991b1b}.pcw-widget-card--document-preview{background:var(--pcw-bg)}.pcw-document-preview__header{display:flex;align-items:center;gap:6px;margin-bottom:8px;flex-wrap:wrap}.pcw-document-preview__title{font-weight:600;font-size:13px}.pcw-document-preview__badge{padding:1px 6px;border-radius:4px;font-size:10px;font-weight:500;text-transform:uppercase}.pcw-document-preview__badge--category{background:#dbeafe;color:#1e40af}.pcw-document-preview__badge--action{background:#fef3c7;color:#92400e}.pcw-document-preview__badge--approved{background:#dcfce7;color:#166534}.pcw-document-preview__body{margin:0 0 8px;padding:8px;background:var(--pcw-agent-bubble);border-radius:4px;font-size:11px;font-family:monospace;white-space:pre-wrap;overflow-x:auto;max-height:240px;overflow-y:auto;line-height:1.5}.pcw-document-preview__body code{font-family:inherit;font-size:inherit}.pcw-document-preview__actions{display:flex;gap:6px;margin-top:6px}.pcw-document-preview__btn{padding:4px 10px;border-radius:4px;font-size:11px;font-weight:500;cursor:pointer;font-family:inherit}.pcw-document-preview__btn--primary{border:1px solid var(--pcw-primary);background:var(--pcw-primary);color:#fff}.pcw-document-preview__btn--primary:hover{opacity:.9}.pcw-document-preview__btn--secondary{border:1px solid var(--pcw-primary);background:transparent;color:var(--pcw-primary)}.pcw-document-preview__btn--secondary:hover{background:#1e40af0d}.pcw-document-preview__editor-container{display:flex;flex-direction:column}.pcw-document-preview__editor{width:100%;padding:8px;border:1px solid var(--pcw-border);border-radius:4px;font-family:monospace;font-size:11px;color:var(--pcw-text);background:var(--pcw-bg);resize:vertical;outline:none;line-height:1.5}.pcw-document-preview__editor:focus{border-color:var(--pcw-primary);box-shadow:0 0 0 2px #1e40af1a}.pcw-ask-user{border:1px solid var(--pcw-primary);border-radius:6px;padding:10px;margin:4px 0;font-size:12px;background:var(--pcw-bg)}.pcw-ask-user--submitted{border-color:var(--pcw-border);background:var(--pcw-tool-call-bg)}.pcw-ask-user__field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.pcw-ask-user__label{font-size:12px;font-weight:500;color:var(--pcw-text);line-height:1.4}.pcw-ask-user__header{display:inline-block;padding:1px 6px;border-radius:4px;background:#ede9fe;color:#5b21b6;font-size:10px;font-weight:600;text-transform:uppercase;margin-right:6px;vertical-align:middle}.pcw-ask-user__textarea{padding:6px 8px;border:1px solid var(--pcw-border);border-radius:4px;font-family:var(--pcw-font);font-size:12px;color:var(--pcw-text);background:var(--pcw-bg);outline:none;resize:vertical;line-height:1.5}.pcw-ask-user__textarea:focus{border-color:var(--pcw-primary);box-shadow:0 0 0 2px #1e40af1a}.pcw-ask-user__textarea:disabled{opacity:.5;cursor:not-allowed}.pcw-ask-user__yesno{display:flex;gap:6px}.pcw-ask-user__yesno-btn{padding:4px 16px;border:1px solid var(--pcw-border);border-radius:4px;background:transparent;font-family:inherit;font-size:12px;font-weight:500;cursor:pointer;color:var(--pcw-text);transition:background .1s,border-color .1s}.pcw-ask-user__yesno-btn:hover:not(:disabled){border-color:var(--pcw-primary)}.pcw-ask-user__yesno-btn--active{background:var(--pcw-primary);border-color:var(--pcw-primary);color:#fff}.pcw-ask-user__yesno-btn:disabled{opacity:.5;cursor:not-allowed}.pcw-ask-user__choices{display:flex;flex-direction:column;gap:4px}.pcw-ask-user__choice{display:flex;align-items:flex-start;gap:6px;padding:4px 6px;border-radius:4px;cursor:pointer}.pcw-ask-user__choice:hover{background:var(--pcw-agent-bubble)}.pcw-ask-user__choice input{margin-top:2px;flex-shrink:0}.pcw-ask-user__choice-label{font-weight:500;font-size:12px}.pcw-ask-user__choice-desc{font-size:11px;color:var(--pcw-text-muted);margin-left:4px}.pcw-ask-user__submit{display:block;width:100%;padding:6px 12px;border:none;border-radius:4px;background:var(--pcw-primary);color:#fff;font-family:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:opacity .15s}.pcw-ask-user__submit:hover:not(:disabled){opacity:.9}.pcw-ask-user__submit:disabled{opacity:.5;cursor:not-allowed}.pcw-ask-user__summary{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}.pcw-ask-user__summary:last-child{margin-bottom:0}.pcw-ask-user__summary-q{font-size:11px;color:var(--pcw-text-muted)}.pcw-ask-user__summary-a{font-size:12px;font-weight:500;color:var(--pcw-text)}.pcw-history-drawer{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--pcw-bg, #ffffff);z-index:10;display:flex;flex-direction:column;overflow:hidden}.pcw-history-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--pcw-border, #e5e7eb)}.pcw-history-title{font-size:14px;font-weight:600;margin:0;color:var(--pcw-text, #1a1a1a)}.pcw-history-close{background:none;border:none;cursor:pointer;padding:4px;color:var(--pcw-text-muted, #6b7280);border-radius:4px}.pcw-history-close:hover{background:var(--pcw-border, #e5e7eb)}.pcw-history-new-chat{margin:8px 16px;padding:8px 12px;background:var(--pcw-primary, #2563eb);color:#fff;border:none;border-radius:var(--pcw-radius, 8px);cursor:pointer;font-size:13px;font-weight:500;text-align:center}.pcw-history-new-chat:hover{opacity:.9}.pcw-history-filters{display:flex;flex-wrap:wrap;gap:4px;padding:4px 16px 8px}.pcw-filter-chip{font-size:11px;padding:2px 8px;border-radius:12px;border:1px solid var(--pcw-border, #e5e7eb);background:transparent;color:var(--pcw-text-muted, #6b7280);cursor:pointer}.pcw-filter-chip:hover{background:var(--pcw-border, #e5e7eb)}.pcw-filter-chip--active{background:var(--pcw-primary, #2563eb);color:#fff;border-color:var(--pcw-primary, #2563eb)}.pcw-history-list{flex:1;overflow-y:auto;padding:0 8px 8px}.pcw-history-loading,.pcw-history-empty{padding:24px 16px;text-align:center;color:var(--pcw-text-muted, #6b7280);font-size:13px}.pcw-history-item{border-radius:var(--pcw-radius, 8px);border:1px solid var(--pcw-border, #e5e7eb);margin-bottom:6px;overflow:hidden}.pcw-history-item-content{display:block;width:100%;padding:10px 12px;background:none;border:none;cursor:pointer;text-align:left}.pcw-history-item-content:hover{background:var(--pcw-agent-bubble, #f3f4f6)}.pcw-history-item-title{font-size:13px;font-weight:500;color:var(--pcw-text, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pcw-history-item-meta{display:flex;gap:8px;margin-top:4px;font-size:11px;color:var(--pcw-text-muted, #6b7280)}.pcw-history-item-tags{padding:0 12px 8px;display:flex;align-items:center;gap:4px;flex-wrap:wrap}.pcw-history-item-tag-list{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.pcw-tag-badge{display:inline-flex;align-items:center;gap:2px;font-size:11px;padding:1px 6px;border-radius:10px;background:var(--pcw-primary, #2563eb);color:#fff;white-space:nowrap}.pcw-tag-badge--small{font-size:10px;padding:0 5px}.pcw-tag-remove{background:none;border:none;color:inherit;cursor:pointer;padding:0 2px;font-size:10px;line-height:1;opacity:.8}.pcw-tag-remove:hover{opacity:1}.pcw-tag-editor{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.pcw-tag-input{font-size:11px;padding:2px 6px;border:1px solid var(--pcw-border, #e5e7eb);border-radius:10px;outline:none;width:80px;background:var(--pcw-bg, #ffffff);color:var(--pcw-text, #1a1a1a)}.pcw-tag-input:focus{border-color:var(--pcw-primary, #2563eb)}.pcw-tag-add-btn{font-size:11px;width:20px;height:20px;border-radius:50%;border:1px dashed var(--pcw-border, #e5e7eb);background:none;color:var(--pcw-text-muted, #6b7280);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.pcw-tag-add-btn:hover{border-color:var(--pcw-primary, #2563eb);color:var(--pcw-primary, #2563eb)}.pcw-tag-edit-btn{background:none;border:none;cursor:pointer;padding:2px;color:var(--pcw-text-muted, #6b7280);display:flex;align-items:center}.pcw-tag-edit-btn:hover{color:var(--pcw-primary, #2563eb)}.pcw-info-card__header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.pcw-info-card__title{font-weight:600;font-size:13px}.pcw-info-card__status{padding:1px 6px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase}.pcw-info-card__status--ok{background:#dcfce7;color:#166534}.pcw-info-card__status--warning{background:#fef3c7;color:#92400e}.pcw-info-card__status--critical{background:#fee2e2;color:#991b1b}.pcw-info-card__status--info{background:#dbeafe;color:#1e40af}.pcw-info-card__subtitle{font-size:12px;color:var(--pcw-text-muted);margin-bottom:4px}.pcw-info-card__description{font-size:12px;line-height:1.4;margin:0 0 6px;color:var(--pcw-text)}.pcw-info-card__fields{display:flex;flex-direction:column;gap:2px;margin-bottom:6px;padding:4px 6px;background:var(--pcw-agent-bubble);border-radius:4px}.pcw-info-card__field{display:flex;justify-content:space-between;padding:1px 0;font-size:11px}.pcw-info-card__field-label{color:var(--pcw-text-muted)}.pcw-info-card__field-value{font-weight:500}.pcw-info-card__tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.pcw-info-card__tag{display:inline-block;padding:1px 6px;border-radius:4px;background:#dbeafe;color:#1e40af;font-size:10px;font-weight:500}.pcw-info-card__actions{display:flex;gap:6px;margin-top:6px}.pcw-info-card__btn{padding:4px 10px;border:1px solid var(--pcw-primary);border-radius:4px;background:var(--pcw-primary);color:#fff;font-size:11px;font-weight:500;cursor:pointer;font-family:inherit}.pcw-info-card__btn:hover{opacity:.9}.pcw-metric{text-align:center;padding:12px 10px}.pcw-metric__label{font-size:11px;font-weight:500;color:var(--pcw-text-muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.03em}.pcw-metric__value-row{display:flex;align-items:baseline;justify-content:center;gap:4px}.pcw-metric__value{font-size:28px;font-weight:700;line-height:1.2;color:var(--pcw-text)}.pcw-metric__unit{font-size:13px;color:var(--pcw-text-muted)}.pcw-metric__trend{font-size:18px;font-weight:600}.pcw-metric__trend--up{color:#16a34a}.pcw-metric__trend--down{color:#dc2626}.pcw-metric__trend--flat{color:#ca8a04}.pcw-metric__description{font-size:11px;color:var(--pcw-text-muted);margin-top:4px}.pcw-metric__previous{font-size:10px;color:var(--pcw-text-muted);margin-top:2px}.pcw-header__badge{font-size:10px;padding:1px 6px;margin-left:6px;border-radius:10px;background:var(--pcw-text-muted, #6b7280);color:#fff;vertical-align:middle;font-weight:400}
|