@cntyclub/agent-react 0.5.0 → 0.6.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/dist/api-client.d.ts +1 -1
- package/dist/api-client.d.ts.map +1 -1
- package/dist/components/agent-composer.d.ts +23 -0
- package/dist/components/agent-composer.d.ts.map +1 -0
- package/dist/components/agent-panel.d.ts.map +1 -1
- package/dist/components/document-card.d.ts +11 -0
- package/dist/components/document-card.d.ts.map +1 -0
- package/dist/components/message-item.d.ts.map +1 -1
- package/dist/components/task-checklist.d.ts +11 -0
- package/dist/components/task-checklist.d.ts.map +1 -0
- package/dist/components/tool-activity-group.d.ts.map +1 -1
- package/dist/file-support.d.ts +13 -0
- package/dist/file-support.d.ts.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +463 -66
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +47 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/use-agent-chat.d.ts +1 -1
- package/dist/use-agent-chat.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/api-client.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export declare class AgentApiClient {
|
|
|
15
15
|
constructor(config: AgentConfig);
|
|
16
16
|
private request;
|
|
17
17
|
getConfig(): Promise<AgentPublicConfig>;
|
|
18
|
-
sendMessage(message: string, conversationId?: string | null): Promise<ChatResponse>;
|
|
18
|
+
sendMessage(message: string, conversationId?: string | null, files?: File[]): Promise<ChatResponse>;
|
|
19
19
|
resolveApproval(callId: string, approve: boolean): Promise<ChatResponse>;
|
|
20
20
|
listConversations(): Promise<{
|
|
21
21
|
conversations: ConversationSummary[];
|
package/dist/api-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,qBAAa,aAAc,SAAQ,KAAK;IACtC,MAAM,EAAE,MAAM,CAAC;gBAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAK5C;AAED;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAc;gBAEhB,MAAM,EAAE,WAAW;YAIjB,OAAO;
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,qBAAa,aAAc,SAAQ,KAAK;IACtC,MAAM,EAAE,MAAM,CAAC;gBAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAK5C;AAED;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAc;gBAEhB,MAAM,EAAE,WAAW;YAIjB,OAAO;IAoDrB,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAIvC,WAAW,CACT,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,EAC9B,KAAK,CAAC,EAAE,IAAI,EAAE,GACb,OAAO,CAAC,YAAY,CAAC;IAmBxB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAOxE,iBAAiB,IAAI,OAAO,CAAC;QAAE,aAAa,EAAE,mBAAmB,EAAE,CAAA;KAAE,CAAC;IAItE,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;QAC/C,YAAY,EAAE,mBAAmB,CAAC;QAClC,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;QACnC,iBAAiB,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC;KACtD,CAAC;IAIF,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAK1D"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface AgentComposerProps {
|
|
3
|
+
value: string;
|
|
4
|
+
onValueChange: (value: string) => void;
|
|
5
|
+
/** Submit the trimmed text plus any staged files. */
|
|
6
|
+
onSubmit: (text: string) => void;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
placeholder?: string;
|
|
9
|
+
className?: string;
|
|
10
|
+
/** File upload wiring. Omit `onPickFiles` to hide the attach button. */
|
|
11
|
+
files: File[];
|
|
12
|
+
onPickFiles?: (files: File[]) => void;
|
|
13
|
+
onRemoveFile?: (index: number) => void;
|
|
14
|
+
acceptAttribute?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Chat composer with attachment support: auto-growing textarea, an attach
|
|
18
|
+
* (paperclip) button, staged-file chips, and a send button. Enter submits,
|
|
19
|
+
* Shift+Enter inserts a newline. Submitting is allowed when there is text OR at
|
|
20
|
+
* least one staged file.
|
|
21
|
+
*/
|
|
22
|
+
export declare function AgentComposer({ acceptAttribute, className, disabled, files, onPickFiles, onRemoveFile, onSubmit, onValueChange, placeholder, value, }: AgentComposerProps): React.JSX.Element;
|
|
23
|
+
//# sourceMappingURL=agent-composer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-composer.d.ts","sourceRoot":"","sources":["../../src/components/agent-composer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,qDAAqD;IACrD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAC5B,eAAe,EACf,SAAS,EACT,QAAQ,EACR,KAAK,EACL,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,WAA6B,EAC7B,KAAK,GACN,EAAE,kBAAkB,qBAqHpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-panel.d.ts","sourceRoot":"","sources":["../../src/components/agent-panel.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-panel.d.ts","sourceRoot":"","sources":["../../src/components/agent-panel.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAM5C,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,cAAc,GAAG,gBAAgB,CAAC;IACxC,yCAAyC;IACzC,SAAS,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,iEAAiE;IACjE,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,kBAAkB,EAClB,IAAI,EACJ,SAAS,EACT,MAAM,EACN,eAAe,EACf,OAAO,EACP,iBAAiB,GAClB,EAAE,eAAe,qBA2SjB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { DocumentBlock } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* Renders a generated document: a compact card with a short preview, an
|
|
5
|
+
* expand-to-fullscreen button, and a download button. Clicking the preview or
|
|
6
|
+
* expand opens the fullscreen viewer (download sits top-right there too).
|
|
7
|
+
*/
|
|
8
|
+
export declare function DocumentCard({ block }: {
|
|
9
|
+
block: DocumentBlock;
|
|
10
|
+
}): React.JSX.Element;
|
|
11
|
+
//# sourceMappingURL=document-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-card.d.ts","sourceRoot":"","sources":["../../src/components/document-card.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA2D9C;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,aAAa,CAAA;CAAE,qBAsC/D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-item.d.ts","sourceRoot":"","sources":["../../src/components/message-item.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"message-item.d.ts","sourceRoot":"","sources":["../../src/components/message-item.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,YAAY,CAAA;CAAE,4BAmCjE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { TaskItem } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* A read-only checklist of the steps the agent is working through (Claude-style
|
|
5
|
+
* to-dos). The user cannot toggle items — the agent drives the state via the
|
|
6
|
+
* `update_tasks` tool.
|
|
7
|
+
*/
|
|
8
|
+
export declare function TaskChecklist({ tasks }: {
|
|
9
|
+
tasks: TaskItem[];
|
|
10
|
+
}): React.JSX.Element | null;
|
|
11
|
+
//# sourceMappingURL=task-checklist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-checklist.d.ts","sourceRoot":"","sources":["../../src/components/task-checklist.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,4BA2C7D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-activity-group.d.ts","sourceRoot":"","sources":["../../src/components/tool-activity-group.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"tool-activity-group.d.ts","sourceRoot":"","sources":["../../src/components/tool-activity-group.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,gBAAgB,EAA4B,MAAM,UAAU,CAAC;AAC3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AA0FjD,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,sBAAsB,4BAmDpF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AgentConfig } from "./types";
|
|
2
|
+
/** Text formats the model can actually read. Images are never accepted. */
|
|
3
|
+
export declare const DEFAULT_ACCEPT: string[];
|
|
4
|
+
export declare const DEFAULT_MAX_SIZE_MB = 5;
|
|
5
|
+
export declare function fileUploadEnabled(config: AgentConfig): boolean;
|
|
6
|
+
export declare function acceptedExtensions(config: AgentConfig): string[];
|
|
7
|
+
export declare function maxSizeMb(config: AgentConfig): number;
|
|
8
|
+
/** The `accept` attribute value for a native file input. */
|
|
9
|
+
export declare function acceptAttribute(config: AgentConfig): string;
|
|
10
|
+
/** Validate a picked/dropped file against the accepted formats and size. */
|
|
11
|
+
export declare function validateFile(config: AgentConfig, file: File): string | null;
|
|
12
|
+
export declare function formatBytes(bytes: number | undefined): string;
|
|
13
|
+
//# sourceMappingURL=file-support.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-support.d.ts","sourceRoot":"","sources":["../src/file-support.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,2EAA2E;AAC3E,eAAO,MAAM,cAAc,UAAgE,CAAC;AAE5F,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAE9D;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE,CAGhE;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAErD;AAED,4DAA4D;AAC5D,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAE3D;AAOD,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAU3E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAK7D"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
export { AgentApiClient, AgentApiError } from "./api-client";
|
|
2
|
+
export { AgentComposer, type AgentComposerProps } from "./components/agent-composer";
|
|
2
3
|
export { AgentPanel, type AgentPanelProps } from "./components/agent-panel";
|
|
3
4
|
export { AgentWidget, type AgentWidgetProps } from "./components/agent-widget";
|
|
5
|
+
export { DocumentCard } from "./components/document-card";
|
|
4
6
|
export { MessageItem } from "./components/message-item";
|
|
7
|
+
export { TaskChecklist } from "./components/task-checklist";
|
|
5
8
|
export { ToolActivityGroup, type ToolActivityGroupProps } from "./components/tool-activity-group";
|
|
6
9
|
export { ToolApprovalCard, type ToolApprovalCardProps } from "./components/tool-approval-card";
|
|
7
10
|
export { defineAgentConfig } from "./config";
|
|
11
|
+
export { acceptAttribute, acceptedExtensions, DEFAULT_ACCEPT, fileUploadEnabled, formatBytes, validateFile, } from "./file-support";
|
|
8
12
|
export { groupMessages, type RenderItem, type ToolStep } from "./message-group";
|
|
9
13
|
export { deriveDetails, humanizeToolName, resolveToolPresentation, type ResolvedToolPresentation, } from "./tool-presentation";
|
|
10
14
|
export { useAlwaysApprove, type AlwaysApproveStore } from "./use-always-approve";
|
|
11
|
-
export type { AgentConfig, AgentMessage, AgentModeSchemas, AgentPageMapping, AgentPublicConfig, ApprovalRequest, ChatRequest, ChatResponse, ConversationSummary, DescribeToolCall, MessageBlock, PendingApproval, TableBlock, ToolCallDescription, ToolCallDetail, ToolCallInfo, } from "./types";
|
|
15
|
+
export type { AgentConfig, AgentMessage, AgentModeSchemas, AgentPageMapping, AgentPublicConfig, ApprovalRequest, AttachmentInfo, ChatRequest, ChatResponse, ConversationSummary, DescribeToolCall, DocumentBlock, DocumentFormat, MessageBlock, PendingApproval, TableBlock, TaskItem, TasksBlock, TaskStatus, ToolCallDescription, ToolCallDetail, ToolCallInfo, } from "./types";
|
|
12
16
|
export type { components as AgentModeComponents, operations as AgentModeOperations, paths as AgentModePaths, } from "./api/schema";
|
|
13
17
|
export { useAgentChat, type AgentChatActions, type AgentChatState, } from "./use-agent-chat";
|
|
14
18
|
//# 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":"AAIA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,KAAK,wBAAwB,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACjF,YAAY,EACV,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,YAAY,GACb,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,UAAU,IAAI,mBAAmB,EACjC,UAAU,IAAI,mBAAmB,EACjC,KAAK,IAAI,cAAc,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,KAAK,wBAAwB,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACjF,YAAY,EACV,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,EACf,UAAU,EACV,QAAQ,EACR,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,YAAY,GACb,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,UAAU,IAAI,mBAAmB,EACjC,UAAU,IAAI,mBAAmB,EACjC,KAAK,IAAI,cAAc,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,kBAAkB,CAAC"}
|