@tomny-dev/uzi 0.7.1 → 0.8.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/README.md +8 -0
- package/dist/components/ai-chat/AIChat.d.ts +164 -0
- package/dist/components/ai-chat/AIChat.d.ts.map +1 -0
- package/dist/components/ai-chat/AIChat.test.d.ts +2 -0
- package/dist/components/ai-chat/AIChat.test.d.ts.map +1 -0
- package/dist/components/ai-chat/AIChatDock.d.ts +33 -0
- package/dist/components/ai-chat/AIChatDock.d.ts.map +1 -0
- package/dist/components/floating-action-stack/FloatingActionStack.d.ts +19 -0
- package/dist/components/floating-action-stack/FloatingActionStack.d.ts.map +1 -0
- package/dist/components/floating-action-stack/FloatingActionStack.test.d.ts +2 -0
- package/dist/components/floating-action-stack/FloatingActionStack.test.d.ts.map +1 -0
- package/dist/index.cjs +9 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index75.js +91 -0
- package/dist/index75.js.map +1 -0
- package/dist/index76.cjs +133 -0
- package/dist/index76.cjs.map +1 -0
- package/dist/index76.js +667 -0
- package/dist/index76.js.map +1 -0
- package/dist/index77.cjs +669 -0
- package/dist/index77.cjs.map +1 -0
- package/dist/index77.js +35 -0
- package/dist/index77.js.map +1 -0
- package/dist/index78.cjs +49 -0
- package/dist/index78.cjs.map +1 -0
- package/dist/index78.js +231 -0
- package/dist/index78.js.map +1 -0
- package/dist/index79.cjs +231 -0
- package/dist/index79.cjs.map +1 -0
- package/dist/index79.js +19 -0
- package/dist/index79.js.map +1 -0
- package/dist/index80.cjs +25 -0
- package/dist/index80.cjs.map +1 -0
- package/dist/index80.js +36 -0
- package/dist/index80.js.map +1 -0
- package/dist/index81.cjs +37 -0
- package/dist/index81.cjs.map +1 -0
- package/dist/style.css +631 -0
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -41,6 +41,8 @@ pnpm build-storybook
|
|
|
41
41
|
|
|
42
42
|
The static output is written to `storybook-static/`. Story files live beside their components under `src/components/**` using the `*.stories.tsx` naming convention.
|
|
43
43
|
|
|
44
|
+
The **Components / AIChat** stories demonstrate streaming, custom renderers, scoped requests, message limits, error recovery, and an externally controlled runtime with mock approvals; no external AI credentials are needed.
|
|
45
|
+
|
|
44
46
|
CI builds Storybook on every pull request and push to `main`. After changes land on `main`, the Storybook deployment workflow publishes `storybook-static/` to the `uzi-storybook` Cloudflare Pages project. The deployment workflow requires these repository secrets:
|
|
45
47
|
|
|
46
48
|
- `CLOUDFLARE_API_TOKEN` — API token with Pages Write permission.
|
|
@@ -128,6 +130,9 @@ In practice, `uzi` should spend its complexity budget on reusable app scaffoldin
|
|
|
128
130
|
| Component | Description |
|
|
129
131
|
|---|---|
|
|
130
132
|
| `Avatar` | Profile image with fallback states |
|
|
133
|
+
| `AIChat` | Plug-and-play AI SDK streaming chat with scoped context and customizable renderers |
|
|
134
|
+
| `AIChatView` | Controlled chat presentation for external runtimes, tool approvals, attachment adapters and persisted history |
|
|
135
|
+
| `AIChatDock` | Shared floating chat launcher, responsive panel and expand/close controls |
|
|
131
136
|
| `Button` | Primary, secondary, outline, ghost variants |
|
|
132
137
|
| `Card` | Discrete object container with tone/padding control |
|
|
133
138
|
| `Surface` | Semantic visual grouping with base/subtle/raised/selected hierarchy |
|
|
@@ -169,6 +174,7 @@ In practice, `uzi` should spend its complexity budget on reusable app scaffoldin
|
|
|
169
174
|
- [Application Scaffolding](docs/guides/application-scaffolding.md) — Page containers, headers, empty states, stats, and layout composition
|
|
170
175
|
- [Visual Hierarchy](docs/guides/visual-hierarchy.md) — Surface levels, typography, borders, shadows, and toolbar conventions
|
|
171
176
|
- [Form Patterns](docs/guides/form-patterns.md) — Input, Select, MultiSelect, SegmentedToggle patterns
|
|
177
|
+
- [AI Chat](docs/guides/ai-chat.md) — Streaming endpoint contract, authentication, scope authorization, renderers and local Storybook demos
|
|
172
178
|
|
|
173
179
|
## SSR Notes
|
|
174
180
|
|
|
@@ -201,3 +207,5 @@ calls made directly from Server Components.
|
|
|
201
207
|
- No Tailwind — components use CSS modules internally
|
|
202
208
|
- `"use client"` is handled by the bundle — no need to wrap imports
|
|
203
209
|
- `react` and `react-dom` are peer dependencies, provided by your app
|
|
210
|
+
|
|
211
|
+
- `FloatingActionStack` and `FloatingActionButton` provide a single, accessible floating-action rail with mobile safe-area spacing. An `AIChatDock` can opt out of its built-in FAB via `showLauncher={false}`.
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import type { CSSProperties, ComponentType, ReactNode } from 'react';
|
|
2
|
+
import { AISDKChat, AssistantChatTransport } from '@assistant-ui/ai-sdk';
|
|
3
|
+
type AIChatTransportOptions = NonNullable<ConstructorParameters<typeof AssistantChatTransport>[0]>;
|
|
4
|
+
export interface AIChatProps {
|
|
5
|
+
/** AI SDK UI-message stream endpoint. */
|
|
6
|
+
readonly api: string;
|
|
7
|
+
/** Opaque scope identifier sent to the API. Server must authorize it. */
|
|
8
|
+
readonly scope?: string;
|
|
9
|
+
/** Human-readable display text; never used as an access-control identifier. */
|
|
10
|
+
readonly scopeLabel?: string;
|
|
11
|
+
/** Fetch adapter for authentication, request instrumentation and local demos. */
|
|
12
|
+
readonly fetch?: typeof globalThis.fetch;
|
|
13
|
+
readonly headers?: Record<string, string>;
|
|
14
|
+
readonly credentials?: RequestCredentials;
|
|
15
|
+
/** Customize serialized requests for APIs with a strict request schema. */
|
|
16
|
+
readonly prepareSendMessagesRequest?: AIChatTransportOptions['prepareSendMessagesRequest'];
|
|
17
|
+
/** Change this when the authenticated identity changes to reset the transcript. */
|
|
18
|
+
readonly sessionKey?: string | number;
|
|
19
|
+
/** Maximum number of user turns (default: 8). */
|
|
20
|
+
readonly messageLimit?: number;
|
|
21
|
+
readonly inputPlaceholder?: string;
|
|
22
|
+
/** Accessible name for the message textarea. */
|
|
23
|
+
readonly inputAriaLabel?: string;
|
|
24
|
+
readonly inputMaxLength?: number;
|
|
25
|
+
readonly components?: AIChatComponents;
|
|
26
|
+
/** Opt-in files, restricted to images/text accepted by the application API. */
|
|
27
|
+
readonly attachments?: AIChatAttachmentOptions;
|
|
28
|
+
/** Optional persistence; implementations must scope storage by user AND resource. */
|
|
29
|
+
readonly history?: AIChatHistoryAdapter;
|
|
30
|
+
/** Native SDK continuation predicate for tool approvals. */
|
|
31
|
+
readonly sendAutomaticallyWhen?: NonNullable<Parameters<typeof AISDKChat>[0]>['sendAutomaticallyWhen'];
|
|
32
|
+
readonly onClose?: () => void;
|
|
33
|
+
readonly className?: string;
|
|
34
|
+
readonly style?: CSSProperties;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Framework-independent presentation contract. The parent owns the runtime,
|
|
38
|
+
* message identities, approvals, uploads, history and security boundaries.
|
|
39
|
+
* Uzi does not serialize, persist or reinterpret any messages supplied here.
|
|
40
|
+
*/
|
|
41
|
+
export type AIChatMessage = AIChatMessageRendererProps['message'];
|
|
42
|
+
export interface AIChatAttachmentOptions {
|
|
43
|
+
readonly accept: string;
|
|
44
|
+
readonly maxFiles?: number;
|
|
45
|
+
readonly maxBytesPerFile?: number;
|
|
46
|
+
}
|
|
47
|
+
export interface AIChatSelectedAttachment {
|
|
48
|
+
readonly name: string;
|
|
49
|
+
readonly size: number;
|
|
50
|
+
/** Local thumbnail URL for supported image files. */
|
|
51
|
+
readonly previewUrl?: string;
|
|
52
|
+
}
|
|
53
|
+
export interface AIChatHistoryAdapter {
|
|
54
|
+
/** Load only validated UI messages from the authenticated principal's own storage. */
|
|
55
|
+
readonly load: () => Promise<readonly AIChatMessage[]> | readonly AIChatMessage[];
|
|
56
|
+
/** Save after complete turns; the consumer decides what metadata is safe. */
|
|
57
|
+
readonly save: (messages: readonly AIChatMessage[]) => Promise<void> | void;
|
|
58
|
+
readonly clear: () => Promise<void> | void;
|
|
59
|
+
/** Observability for failed history operations; never include message payloads in logs. */
|
|
60
|
+
readonly onError?: (operation: 'load' | 'save' | 'clear', error: unknown) => void;
|
|
61
|
+
}
|
|
62
|
+
export type AIChatToolApprovalHandler = (id: string, approved: boolean) => Promise<void> | void;
|
|
63
|
+
export interface AIChatViewProps {
|
|
64
|
+
readonly messages: readonly AIChatMessage[];
|
|
65
|
+
readonly status?: string;
|
|
66
|
+
readonly error?: Error | null;
|
|
67
|
+
readonly draft?: string;
|
|
68
|
+
readonly onDraftChange?: (draft: string) => void;
|
|
69
|
+
readonly onSend?: () => void;
|
|
70
|
+
readonly onStop?: () => void;
|
|
71
|
+
readonly onRetry?: () => void;
|
|
72
|
+
readonly onNewChat?: () => void;
|
|
73
|
+
/** No limit by default: specialized apps decide their own session policy. */
|
|
74
|
+
readonly messageLimit?: number;
|
|
75
|
+
readonly inputPlaceholder?: string;
|
|
76
|
+
readonly inputAriaLabel?: string;
|
|
77
|
+
readonly inputMaxLength?: number;
|
|
78
|
+
readonly components?: AIChatComponents;
|
|
79
|
+
readonly attachments?: readonly AIChatSelectedAttachment[];
|
|
80
|
+
readonly onSelectAttachments?: (files: FileList) => void;
|
|
81
|
+
readonly onRemoveAttachment?: (index: number) => void;
|
|
82
|
+
readonly attachmentAccept?: string;
|
|
83
|
+
readonly attachmentError?: string | null;
|
|
84
|
+
/** Only invoked from explicit user action on an approval-requested tool part. */
|
|
85
|
+
readonly onToolApproval?: AIChatToolApprovalHandler;
|
|
86
|
+
/** Custom message toolbar controls, e.g. a conversation selector. */
|
|
87
|
+
readonly toolbarActions?: ReactNode;
|
|
88
|
+
/** Context labels or other app-owned notices above the transcript. */
|
|
89
|
+
readonly header?: ReactNode;
|
|
90
|
+
/** Upload actions, attachment previews or context chips before the input. */
|
|
91
|
+
readonly composerLeading?: ReactNode;
|
|
92
|
+
/** Additional buttons beside the Send/Stop control. */
|
|
93
|
+
readonly composerTrailing?: ReactNode;
|
|
94
|
+
/** Completely replace the composer while retaining shared transcript chrome. */
|
|
95
|
+
readonly composer?: ReactNode;
|
|
96
|
+
readonly emptyState?: ReactNode;
|
|
97
|
+
readonly className?: string;
|
|
98
|
+
readonly style?: CSSProperties;
|
|
99
|
+
}
|
|
100
|
+
export interface AIChatComponents {
|
|
101
|
+
readonly MessageRenderer?: ComponentType<AIChatMessageRendererProps>;
|
|
102
|
+
readonly ReasoningRenderer?: ComponentType<AIChatReasoningRendererProps>;
|
|
103
|
+
readonly SourceRenderer?: ComponentType<AIChatSourceRendererProps>;
|
|
104
|
+
readonly DataRenderer?: ComponentType<AIChatDataRendererProps>;
|
|
105
|
+
readonly ToolRenderer?: ComponentType<AIChatToolRendererProps>;
|
|
106
|
+
readonly ErrorRenderer?: ComponentType<AIChatErrorRendererProps>;
|
|
107
|
+
}
|
|
108
|
+
export interface AIChatMessageRendererProps {
|
|
109
|
+
readonly message: {
|
|
110
|
+
readonly id: string;
|
|
111
|
+
readonly role: 'user' | 'assistant';
|
|
112
|
+
readonly parts: readonly unknown[];
|
|
113
|
+
readonly metadata?: Record<string, unknown>;
|
|
114
|
+
};
|
|
115
|
+
readonly renderMessagePart: (part: Record<string, unknown>, index: number) => ReactNode;
|
|
116
|
+
readonly onToolApproval?: AIChatToolApprovalHandler;
|
|
117
|
+
}
|
|
118
|
+
export interface AIChatReasoningRendererProps {
|
|
119
|
+
readonly children: string;
|
|
120
|
+
readonly title?: string;
|
|
121
|
+
}
|
|
122
|
+
export interface AIChatSource {
|
|
123
|
+
readonly id: string;
|
|
124
|
+
readonly title?: string;
|
|
125
|
+
readonly url?: string;
|
|
126
|
+
}
|
|
127
|
+
export interface AIChatSourceRendererProps {
|
|
128
|
+
readonly sources: readonly AIChatSource[];
|
|
129
|
+
readonly renderSource: (source: AIChatSource, index: number) => ReactNode;
|
|
130
|
+
}
|
|
131
|
+
export interface AIChatDataRendererProps {
|
|
132
|
+
readonly data: readonly Record<string, unknown>[];
|
|
133
|
+
readonly renderDataItem: (item: Record<string, unknown>, index: number) => ReactNode;
|
|
134
|
+
}
|
|
135
|
+
export interface AIChatToolRendererProps {
|
|
136
|
+
readonly part: Record<string, unknown>;
|
|
137
|
+
readonly name: string;
|
|
138
|
+
readonly approvalId?: string;
|
|
139
|
+
readonly onApprove?: () => void;
|
|
140
|
+
readonly onDeny?: () => void;
|
|
141
|
+
readonly approvalPending: boolean;
|
|
142
|
+
}
|
|
143
|
+
export interface AIChatErrorRendererProps {
|
|
144
|
+
readonly error: Error;
|
|
145
|
+
readonly onRetry: () => void;
|
|
146
|
+
readonly onClear: () => void;
|
|
147
|
+
}
|
|
148
|
+
/** Reusable role-aware message surface for domain renderers. */
|
|
149
|
+
export interface AIChatMessageBubbleProps {
|
|
150
|
+
readonly role: 'user' | 'assistant';
|
|
151
|
+
readonly label?: string;
|
|
152
|
+
readonly children: ReactNode;
|
|
153
|
+
readonly className?: string;
|
|
154
|
+
}
|
|
155
|
+
export declare function AIChatMessageBubble({ role, label, children, className }: AIChatMessageBubbleProps): import("react/jsx-runtime").JSX.Element;
|
|
156
|
+
export declare function AIChat({ api, scope, scopeLabel, fetch: requestFetch, headers, credentials, prepareSendMessagesRequest, sessionKey, messageLimit, inputPlaceholder, inputAriaLabel, inputMaxLength, components, attachments, history, sendAutomaticallyWhen, onClose, className, style, }: AIChatProps): import("react/jsx-runtime").JSX.Element;
|
|
157
|
+
/**
|
|
158
|
+
* Controlled chat presentation for apps with their own AI SDK/assistant-ui
|
|
159
|
+
* runtime. It does not create providers, transports or chat state. Callbacks
|
|
160
|
+
* are the only way messages/actions leave the view.
|
|
161
|
+
*/
|
|
162
|
+
export declare function AIChatView({ messages, status, error, draft, onDraftChange, onSend, onStop, onRetry, onNewChat, messageLimit, inputPlaceholder, inputAriaLabel, inputMaxLength, components, attachments, onSelectAttachments, onRemoveAttachment, attachmentAccept, attachmentError, onToolApproval, toolbarActions, header, composerLeading, composerTrailing, composer, emptyState, className, style, }: AIChatViewProps): import("react/jsx-runtime").JSX.Element;
|
|
163
|
+
export {};
|
|
164
|
+
//# sourceMappingURL=AIChat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIChat.d.ts","sourceRoot":"","sources":["../../../src/components/ai-chat/AIChat.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIChat.test.d.ts","sourceRoot":"","sources":["../../../src/components/ai-chat/AIChat.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export interface AIChatDockProps {
|
|
3
|
+
/** Visible assistant name, e.g. "Betty" or "Ask Tultr". */
|
|
4
|
+
readonly title: string;
|
|
5
|
+
readonly description?: string;
|
|
6
|
+
/** Accessible name for the floating action button. Defaults to "Open {title}". */
|
|
7
|
+
readonly launcherLabel?: string;
|
|
8
|
+
/** Turn off the built-in FAB when a parent FloatingActionStack owns the launcher. */
|
|
9
|
+
readonly showLauncher?: boolean;
|
|
10
|
+
/** Optional stable panel ID for an external button's aria-controls. */
|
|
11
|
+
readonly panelId?: string;
|
|
12
|
+
/** ID of the external launch button to restore keyboard focus after close. */
|
|
13
|
+
readonly externalLauncherId?: string;
|
|
14
|
+
readonly children: ReactNode;
|
|
15
|
+
/** Controlled visibility; when omitted, the dock manages its own state. */
|
|
16
|
+
readonly open?: boolean;
|
|
17
|
+
readonly defaultOpen?: boolean;
|
|
18
|
+
readonly onOpenChange?: (open: boolean) => void;
|
|
19
|
+
/** Controlled expansion; apps may synchronize this with a dedicated route. */
|
|
20
|
+
readonly expanded?: boolean;
|
|
21
|
+
readonly defaultExpanded?: boolean;
|
|
22
|
+
readonly onExpandedChange?: (expanded: boolean) => void;
|
|
23
|
+
readonly className?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Shared chat navigation chrome. Children remain mounted while closed to retain
|
|
27
|
+
* the consumer's active AI SDK conversation, pending approvals and attachments.
|
|
28
|
+
* The dock never creates a second chat runtime or reads application messages.
|
|
29
|
+
* Desktop is deliberately non-modal: Tab can move back into the page.
|
|
30
|
+
* On mobile the full-screen modal sheet traps sequential keyboard focus.
|
|
31
|
+
*/
|
|
32
|
+
export declare function AIChatDock({ title, description, launcherLabel, showLauncher, panelId: controlledPanelId, externalLauncherId, children, open, defaultOpen, onOpenChange, expanded, defaultExpanded, onExpandedChange, className, }: AIChatDockProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=AIChatDock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIChatDock.d.ts","sourceRoot":"","sources":["../../../src/components/ai-chat/AIChatDock.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3E,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,kFAAkF;IAClF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,qFAAqF;IACrF,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,uEAAuE;IACvE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,EACX,aAAa,EACb,YAAmB,EACnB,OAAO,EAAE,iBAAiB,EAC1B,kBAAkB,EAClB,QAAQ,EACR,IAAI,EACJ,WAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,eAAuB,EACvB,gBAAgB,EAChB,SAAS,GACV,EAAE,eAAe,2CAsJjB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ButtonHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
/** A single screen-edge action rail shared by unrelated application features. */
|
|
3
|
+
export interface FloatingActionStackProps {
|
|
4
|
+
readonly children: ReactNode;
|
|
5
|
+
readonly className?: string;
|
|
6
|
+
readonly label?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function FloatingActionStack({ children, className, label }: FloatingActionStackProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export interface FloatingActionButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'type'> {
|
|
10
|
+
/** Stable accessible name, including when the mobile label is hidden. */
|
|
11
|
+
readonly label: string;
|
|
12
|
+
readonly icon: ReactNode;
|
|
13
|
+
readonly children?: ReactNode;
|
|
14
|
+
/** Use secondary styling for contextual actions above the primary launcher. */
|
|
15
|
+
readonly variant?: 'primary' | 'secondary';
|
|
16
|
+
}
|
|
17
|
+
/** A directly accessible action, not a speed-dial menu or nested overlay. */
|
|
18
|
+
export declare function FloatingActionButton({ label, icon, children, variant, className, ...buttonProps }: FloatingActionButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
//# sourceMappingURL=FloatingActionStack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FloatingActionStack.d.ts","sourceRoot":"","sources":["../../../src/components/floating-action-stack/FloatingActionStack.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAI7D,iFAAiF;AACjF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAuB,EAAE,EAAE,wBAAwB,2CAS7G;AAED,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACtG,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;CAC5C;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,OAAmB,EACnB,SAAS,EACT,GAAG,WAAW,EACf,EAAE,yBAAyB,2CAa3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FloatingActionStack.test.d.ts","sourceRoot":"","sources":["../../../src/components/floating-action-stack/FloatingActionStack.test.tsx"],"names":[],"mappings":""}
|
package/dist/index.cjs
CHANGED
|
@@ -38,6 +38,13 @@ const require_DataTable = require("./index69.cjs");
|
|
|
38
38
|
const require_SettingsPage = require("./index71.cjs");
|
|
39
39
|
const require_ErrorPage = require("./index73.cjs");
|
|
40
40
|
const require_EmptyStatePage = require("./index75.cjs");
|
|
41
|
+
const require_AIChat = require("./index77.cjs");
|
|
42
|
+
const require_AIChatDock = require("./index79.cjs");
|
|
43
|
+
const require_FloatingActionStack = require("./index81.cjs");
|
|
44
|
+
exports.AIChat = require_AIChat.AIChat;
|
|
45
|
+
exports.AIChatDock = require_AIChatDock.AIChatDock;
|
|
46
|
+
exports.AIChatMessageBubble = require_AIChat.AIChatMessageBubble;
|
|
47
|
+
exports.AIChatView = require_AIChat.AIChatView;
|
|
41
48
|
exports.Alert = require_Alert.Alert;
|
|
42
49
|
exports.AppShell = require_AppShell.AppShell;
|
|
43
50
|
exports.AuthCard = require_AuthCard.AuthCard;
|
|
@@ -66,6 +73,8 @@ exports.DropdownMenuTrigger = require_DropdownMenu.DropdownMenuTrigger;
|
|
|
66
73
|
exports.EmptyState = require_EmptyState.EmptyState;
|
|
67
74
|
exports.EmptyStatePage = require_EmptyStatePage.EmptyStatePage;
|
|
68
75
|
exports.ErrorPage = require_ErrorPage.ErrorPage;
|
|
76
|
+
exports.FloatingActionButton = require_FloatingActionStack.FloatingActionButton;
|
|
77
|
+
exports.FloatingActionStack = require_FloatingActionStack.FloatingActionStack;
|
|
69
78
|
exports.ForgotPasswordPage = require_AuthPages.ForgotPasswordPage;
|
|
70
79
|
exports.Inline = require_LayoutPrimitives.Inline;
|
|
71
80
|
exports.Input = require_Input.Input;
|
package/dist/index.d.ts
CHANGED
|
@@ -71,4 +71,11 @@ export type { ErrorPageProps } from "./components/error-page/ErrorPage";
|
|
|
71
71
|
export { ErrorPage, NotFoundPage, MaintenancePage } from "./components/error-page/ErrorPage";
|
|
72
72
|
export type { EmptyStatePageProps, EmptyStatePageVariant } from "./components/empty-state-page/EmptyStatePage";
|
|
73
73
|
export { EmptyStatePage } from "./components/empty-state-page/EmptyStatePage";
|
|
74
|
+
export type { AIChatProps, AIChatMessage, AIChatViewProps, AIChatAttachmentOptions, AIChatSelectedAttachment, AIChatHistoryAdapter, AIChatToolApprovalHandler, AIChatToolRendererProps, AIChatComponents, AIChatMessageRendererProps, AIChatReasoningRendererProps, AIChatSource, AIChatSourceRendererProps, AIChatDataRendererProps, AIChatErrorRendererProps, } from "./components/ai-chat/AIChat";
|
|
75
|
+
export { AIChat, AIChatView, AIChatMessageBubble } from "./components/ai-chat/AIChat";
|
|
76
|
+
export type { AIChatMessageBubbleProps } from "./components/ai-chat/AIChat";
|
|
77
|
+
export { AIChatDock } from "./components/ai-chat/AIChatDock";
|
|
78
|
+
export type { AIChatDockProps } from "./components/ai-chat/AIChatDock";
|
|
79
|
+
export { FloatingActionStack, FloatingActionButton } from "./components/floating-action-stack/FloatingActionStack";
|
|
80
|
+
export type { FloatingActionStackProps, FloatingActionButtonProps } from "./components/floating-action-stack/FloatingActionStack";
|
|
74
81
|
//# 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":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -37,4 +37,7 @@ import { DataTable } from "./index68.js";
|
|
|
37
37
|
import { SettingsPage } from "./index70.js";
|
|
38
38
|
import { ErrorPage, MaintenancePage, NotFoundPage } from "./index72.js";
|
|
39
39
|
import { EmptyStatePage } from "./index74.js";
|
|
40
|
-
|
|
40
|
+
import { AIChat, AIChatMessageBubble, AIChatView } from "./index76.js";
|
|
41
|
+
import { AIChatDock } from "./index78.js";
|
|
42
|
+
import { FloatingActionButton, FloatingActionStack } from "./index80.js";
|
|
43
|
+
export { AIChat, AIChatDock, AIChatMessageBubble, AIChatView, Alert, AppShell, AuthCard, Avatar, AvatarFallback, AvatarImage, Button, Card, Checkbox, DataTable, Dropdown, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStatePage, ErrorPage, FloatingActionButton, FloatingActionStack, ForgotPasswordPage, Inline, Input, Label, MaintenancePage, Modal, ModalOverlay, MultiSelect, NotFoundPage, PageContainer, PageHeader, Pill, Progress, SectionHeader, SegmentedToggle, Select, SettingsPage, SidebarNav, SignInPage, SignUpPage, Skeleton, Stack, Stat, StatGroup, Surface, ThemeProvider, ThemeToggleButton, ToastProvider, Toolbar, ToolbarGroup, TopBar, cx, useTheme, useToast };
|
package/dist/index75.js
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
//#region src/components/ai-chat/ai-chat.module.css
|
|
2
|
+
var container = "uzi-ai-chat-module__container__UoyFb";
|
|
3
|
+
var scope = "uzi-ai-chat-module__scope__6xOgo";
|
|
4
|
+
var scopeLabel = "uzi-ai-chat-module__scopeLabel__LHbKZ";
|
|
5
|
+
var scopeHelp = "uzi-ai-chat-module__scopeHelp__NddsL";
|
|
6
|
+
var closeBtn = "uzi-ai-chat-module__closeBtn__IeRH2";
|
|
7
|
+
var sendButton = "uzi-ai-chat-module__sendButton__S9MmM";
|
|
8
|
+
var errorActions = "uzi-ai-chat-module__errorActions__MWoVQ";
|
|
9
|
+
var historyLimit = "uzi-ai-chat-module__historyLimit__LgZzD";
|
|
10
|
+
var thread = "uzi-ai-chat-module__thread__Rqyeu";
|
|
11
|
+
var viewport = "uzi-ai-chat-module__viewport__-CgLF";
|
|
12
|
+
var chatToolbar = "uzi-ai-chat-module__chatToolbar__-QMr9";
|
|
13
|
+
var messageList = "uzi-ai-chat-module__messageList__G3H50";
|
|
14
|
+
var userMessage = "uzi-ai-chat-module__userMessage__iGksi";
|
|
15
|
+
var assistantMessage = "uzi-ai-chat-module__assistantMessage__hRdxP";
|
|
16
|
+
var textPart = "uzi-ai-chat-module__textPart__U0myJ";
|
|
17
|
+
var reasoning = "uzi-ai-chat-module__reasoning__7Xf83";
|
|
18
|
+
var toolPart = "uzi-ai-chat-module__toolPart__P160m";
|
|
19
|
+
var reasoningSummary = "uzi-ai-chat-module__reasoningSummary__3gaQ3";
|
|
20
|
+
var reasoningText = "uzi-ai-chat-module__reasoningText__qxl36";
|
|
21
|
+
var sources = "uzi-ai-chat-module__sources__EwoEv";
|
|
22
|
+
var sourcesLabel = "uzi-ai-chat-module__sourcesLabel__YV6j1";
|
|
23
|
+
var data = "uzi-ai-chat-module__data__6pYCT";
|
|
24
|
+
var structuredData = "uzi-ai-chat-module__structuredData__CVeqF";
|
|
25
|
+
var footer = "uzi-ai-chat-module__footer__VzCvT";
|
|
26
|
+
var composerForm = "uzi-ai-chat-module__composerForm__E2Wqd";
|
|
27
|
+
var input = "uzi-ai-chat-module__input__-Rzh8";
|
|
28
|
+
var status = "uzi-ai-chat-module__status__Wm3t3";
|
|
29
|
+
var error = "uzi-ai-chat-module__error__csAOF";
|
|
30
|
+
var emptyState = "uzi-ai-chat-module__emptyState__JzB1x";
|
|
31
|
+
var composerExtras = "uzi-ai-chat-module__composerExtras__B1qBc";
|
|
32
|
+
var composerActions = "uzi-ai-chat-module__composerActions__wrPZO";
|
|
33
|
+
var approvalActions = "uzi-ai-chat-module__approvalActions__ptwyO";
|
|
34
|
+
var attachmentList = "uzi-ai-chat-module__attachmentList__isbAi";
|
|
35
|
+
var attachmentError = "uzi-ai-chat-module__attachmentError__E-kU-";
|
|
36
|
+
var messageBubble = "uzi-ai-chat-module__messageBubble__ZG7M-";
|
|
37
|
+
var messageLabel = "uzi-ai-chat-module__messageLabel__esd4p";
|
|
38
|
+
var composerSurface = "uzi-ai-chat-module__composerSurface__t7lZs";
|
|
39
|
+
var composerRow = "uzi-ai-chat-module__composerRow__Mjqy2";
|
|
40
|
+
var composerIconButton = "uzi-ai-chat-module__composerIconButton__6FYlZ";
|
|
41
|
+
var visuallyHidden = "uzi-ai-chat-module__visuallyHidden__qVCl7";
|
|
42
|
+
var attachmentThumbnail = "uzi-ai-chat-module__attachmentThumbnail__OzmIc";
|
|
43
|
+
var attachmentFilename = "uzi-ai-chat-module__attachmentFilename__yHCLk";
|
|
44
|
+
var ai_chat_module_default = {
|
|
45
|
+
container,
|
|
46
|
+
scope,
|
|
47
|
+
scopeLabel,
|
|
48
|
+
scopeHelp,
|
|
49
|
+
closeBtn,
|
|
50
|
+
sendButton,
|
|
51
|
+
errorActions,
|
|
52
|
+
historyLimit,
|
|
53
|
+
thread,
|
|
54
|
+
viewport,
|
|
55
|
+
chatToolbar,
|
|
56
|
+
messageList,
|
|
57
|
+
userMessage,
|
|
58
|
+
assistantMessage,
|
|
59
|
+
textPart,
|
|
60
|
+
reasoning,
|
|
61
|
+
toolPart,
|
|
62
|
+
reasoningSummary,
|
|
63
|
+
reasoningText,
|
|
64
|
+
sources,
|
|
65
|
+
sourcesLabel,
|
|
66
|
+
data,
|
|
67
|
+
structuredData,
|
|
68
|
+
footer,
|
|
69
|
+
composerForm,
|
|
70
|
+
input,
|
|
71
|
+
status,
|
|
72
|
+
error,
|
|
73
|
+
emptyState,
|
|
74
|
+
composerExtras,
|
|
75
|
+
composerActions,
|
|
76
|
+
approvalActions,
|
|
77
|
+
attachmentList,
|
|
78
|
+
attachmentError,
|
|
79
|
+
messageBubble,
|
|
80
|
+
messageLabel,
|
|
81
|
+
composerSurface,
|
|
82
|
+
composerRow,
|
|
83
|
+
composerIconButton,
|
|
84
|
+
visuallyHidden,
|
|
85
|
+
attachmentThumbnail,
|
|
86
|
+
attachmentFilename
|
|
87
|
+
};
|
|
88
|
+
//#endregion
|
|
89
|
+
export { approvalActions, assistantMessage, attachmentError, attachmentFilename, attachmentList, attachmentThumbnail, chatToolbar, closeBtn, composerActions, composerExtras, composerForm, composerIconButton, composerRow, composerSurface, container, data, ai_chat_module_default as default, emptyState, error, errorActions, footer, historyLimit, input, messageBubble, messageLabel, messageList, reasoning, reasoningSummary, reasoningText, scope, scopeHelp, scopeLabel, sendButton, sources, sourcesLabel, status, structuredData, textPart, thread, toolPart, userMessage, viewport, visuallyHidden };
|
|
90
|
+
|
|
91
|
+
//# sourceMappingURL=index75.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index75.js","names":[],"sources":["../src/components/ai-chat/ai-chat.module.css"],"sourcesContent":[".container {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n max-height: none;\n overflow: hidden;\n position: relative;\n}\n\n.scope {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n padding: 0.75rem 3rem 0.75rem 1rem;\n background: var(--uzi-surface-1, var(--muted));\n border-bottom: 1px solid var(--border);\n}\n\n.scopeLabel {\n font-size: 0.6875rem;\n font-weight: 650;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n color: var(--muted-foreground);\n}\n\n.scope strong {\n font-size: 0.875rem;\n}\n\n.scopeHelp {\n margin: 0;\n font-size: 0.75rem;\n color: var(--muted-foreground);\n line-height: 1.5;\n}\n\n.closeBtn {\n position: absolute;\n top: 0.5rem;\n right: 0.5rem;\n z-index: 1;\n display: grid;\n place-items: center;\n width: 2rem;\n height: 2rem;\n border: 0;\n border-radius: 50%;\n background: transparent;\n color: var(--muted-foreground);\n cursor: pointer;\n font-size: 0.875rem;\n}\n\n.closeBtn:hover {\n background: var(--uzi-surface-2, var(--muted));\n color: var(--foreground);\n}\n\n.closeBtn:focus-visible,\n.sendButton:focus-visible,\n.errorActions button:focus-visible,\n.historyLimit button:focus-visible {\n outline: 2px solid var(--primary);\n outline-offset: 2px;\n}\n\n.thread {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n}\n\n.viewport {\n flex: 1;\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow-y: auto;\n overflow-x: hidden;\n gap: 0.75rem;\n}\n\n.chatToolbar {\n position: sticky;\n top: 0;\n z-index: 1;\n display: flex;\n justify-content: flex-end;\n padding: 0.5rem 1rem;\n background: var(--uzi-surface-1, var(--background));\n border-bottom: 1px solid var(--border);\n}\n\n.chatToolbar button {\n border: 0;\n border-radius: 0.375rem;\n padding: 0.35rem 0.5rem;\n background: transparent;\n color: var(--muted-foreground);\n font: inherit;\n font-size: 0.75rem;\n cursor: pointer;\n}\n\n.chatToolbar button:hover {\n color: var(--foreground);\n background: var(--uzi-surface-2, var(--muted));\n}\n\n.chatToolbar button:focus-visible {\n outline: 2px solid var(--primary);\n outline-offset: 2px;\n}\n\n.messageList {\n display: flex;\n flex: 1 0 auto;\n flex-direction: column;\n gap: 0.75rem;\n padding: 1rem;\n}\n\n.userMessage,\n.assistantMessage {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n padding: 0.75rem 1rem;\n border-radius: 0.75rem;\n color: var(--foreground);\n overflow-wrap: anywhere;\n}\n\n.userMessage {\n background: color-mix(in srgb, var(--primary) 10%, transparent);\n border: 1px solid color-mix(in srgb, var(--primary) 20%, transparent);\n}\n\n.assistantMessage {\n background: var(--muted);\n border: 1px solid var(--border);\n}\n\n.textPart {\n white-space: pre-wrap;\n line-height: 1.6;\n}\n\n.reasoning,\n.toolPart {\n border: 1px solid var(--border);\n border-radius: 0.5rem;\n padding: 0.5rem 0.75rem;\n background: var(--uzi-surface-1, transparent);\n}\n\n.reasoningSummary,\n.toolPart summary {\n cursor: pointer;\n font-size: 0.75rem;\n font-weight: 600;\n color: var(--muted-foreground);\n}\n\n.reasoningText {\n margin: 0.5rem 0 0;\n font-size: 0.8125rem;\n line-height: 1.6;\n color: var(--muted-foreground);\n white-space: pre-wrap;\n}\n\n.sources {\n padding-top: 0.5rem;\n border-top: 1px solid var(--border);\n}\n\n.sourcesLabel {\n display: block;\n font-size: 0.6875rem;\n font-weight: 650;\n color: var(--muted-foreground);\n margin-bottom: 0.25rem;\n}\n\n.sources ul {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n margin: 0;\n padding-left: 1.25rem;\n}\n\n.sources li {\n font-size: 0.75rem;\n overflow-wrap: anywhere;\n}\n\n.data {\n padding: 0.5rem;\n background: var(--uzi-surface-2, var(--muted));\n border-radius: 0.5rem;\n overflow-x: auto;\n}\n\n.structuredData {\n margin: 0;\n padding: 0.5rem 0;\n max-width: 100%;\n overflow-x: auto;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n font-size: 0.75rem;\n line-height: 1.5;\n}\n\n.footer {\n position: sticky;\n bottom: 0;\n z-index: 1;\n flex-shrink: 0;\n background: var(--background);\n border-top: 1px solid var(--border);\n}\n\n.composerForm {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: end;\n gap: 0.75rem;\n padding: 0.75rem 1rem;\n}\n\n.input {\n width: 100%;\n min-height: 2.5rem;\n padding: 0.5rem 0.75rem;\n border: 1px solid var(--border);\n border-radius: 0.5rem;\n background: var(--background);\n color: var(--foreground);\n font: inherit;\n font-size: 0.875rem;\n line-height: 1.5;\n resize: vertical;\n}\n\n.input:focus {\n outline: none;\n border-color: var(--primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 30%, transparent);\n}\n\n.input::placeholder {\n color: var(--muted-foreground);\n}\n\n.input:disabled,\n.sendButton:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.sendButton {\n min-height: 2.5rem;\n padding: 0.5rem 0.875rem;\n border: 1px solid var(--border);\n border-radius: 0.5rem;\n background: var(--primary);\n color: var(--primary-foreground);\n font: inherit;\n font-size: 0.875rem;\n font-weight: 600;\n cursor: pointer;\n}\n\n.sendButton:not(:disabled):hover {\n filter: brightness(0.95);\n}\n\n.status {\n margin: 0;\n padding: 0.5rem 1rem;\n text-align: center;\n font-size: 0.8125rem;\n color: var(--muted-foreground);\n font-style: italic;\n}\n\n.error {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n padding: 0.75rem 1rem;\n border: 1px solid var(--destructive);\n border-radius: 0.5rem;\n margin: 0.75rem 1rem;\n background: color-mix(in srgb, var(--destructive) 10%, transparent);\n}\n\n.error p {\n margin: 0;\n color: var(--destructive);\n font-size: 0.8125rem;\n}\n\n.errorActions {\n display: flex;\n gap: 0.5rem;\n}\n\n.errorActions button,\n.historyLimit button {\n padding: 0.375rem 0.75rem;\n border: 1px solid var(--border);\n border-radius: 0.375rem;\n background: transparent;\n color: var(--foreground);\n font: inherit;\n font-size: 0.75rem;\n cursor: pointer;\n}\n\n.errorActions button:hover,\n.historyLimit button:hover {\n background: var(--uzi-surface-2, var(--muted));\n}\n\n.historyLimit {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n align-items: center;\n padding: 0.75rem 1rem;\n margin: 0.75rem 1rem;\n background: var(--uzi-surface-1, var(--muted));\n border: 1px solid var(--border);\n border-radius: 0.5rem;\n}\n\n.historyLimit span {\n font-size: 0.75rem;\n color: var(--muted-foreground);\n}\n\n.emptyState {\n display: grid;\n place-items: center;\n flex: 1;\n min-height: 12rem;\n color: var(--muted-foreground);\n text-align: center;\n}\n\n.emptyState p {\n margin: 0;\n font-size: 0.875rem;\n}\n\n@media (max-width: 640px) {\n .composerForm {\n grid-template-columns: minmax(0, 1fr) auto;\n }\n\n .errorActions {\n flex-wrap: wrap;\n }\n}\n\n/* Optional integration controls use the same Uzi surface and layout tokens. */\n.composerExtras {\n grid-column: 1 / -1;\n min-width: 0;\n}\n\n.composerActions {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.approvalActions { display: flex; align-items: center; flex-wrap: wrap; gap: 0.5rem; padding-top: 0.5rem; }\n.approvalActions button, .attachmentList button {\n background: var(--background); color: var(--foreground); border: 1px solid var(--border);\n border-radius: 0.375rem; padding: 0.3rem 0.55rem; cursor: pointer;\n}\n.approvalActions button:disabled { opacity: 0.5; cursor: not-allowed; }\n.attachmentError { color: var(--destructive); padding: 0.5rem 1rem; margin: 0; }\n.attachmentList { display: flex; flex-wrap: wrap; gap: 0.5rem; padding: 0.4rem 0; margin: 0; list-style: none; }\n.attachmentList li { display: inline-flex; gap: 0.5rem; align-items: center; font-size: 0.75rem; }\n\n/* Role-aware message layout shared by the default renderer and consumer apps. */\n.messageBubble { width: fit-content; min-width: 0; max-width: 100%; }\n.messageBubble.userMessage { align-self: flex-end; max-width: min(90%, 42rem); }\n.messageBubble.assistantMessage { align-self: flex-start; max-width: 100%; }\n.messageLabel { font-size: 0.6875rem; font-weight: 650; color: var(--muted-foreground); }\n\n/* Shared compact composer: same visual grammar as Betty, without app-owned behavior. */\n.composerSurface {\n grid-column: 1 / -1;\n min-width: 0;\n border: 1px solid var(--border);\n border-radius: 0.875rem;\n background: var(--background);\n}\n.composerSurface:focus-within { outline: 2px solid var(--ring); outline-offset: 2px; }\n.composerRow { display: flex; align-items: end; min-width: 0; gap: 0.375rem; padding: 0.375rem; }\n.composerRow .input {\n display: block; flex: 1; width: 0; min-width: 0; min-height: 2.75rem;\n max-height: 11rem; padding: 0.625rem 0.25rem; border: 0;\n background: transparent; resize: none; font-size: 1rem;\n}\n.composerRow .input:focus { outline: none; box-shadow: none; }\n.composerIconButton, .composerRow .sendButton {\n display: grid; place-items: center; flex-shrink: 0;\n width: 2.75rem; height: 2.75rem; min-height: 2.75rem;\n padding: 0; border-radius: 0.625rem; cursor: pointer;\n}\n.composerIconButton {\n color: var(--foreground); border: 0; background: transparent;\n}\n.composerIconButton:hover:not(:disabled) { background: var(--muted); }\n.composerRow .sendButton { border: 0; background: var(--primary); color: var(--primary-foreground); }\n.composerIconButton:focus-visible, .composerRow .sendButton:focus-visible {\n outline: 2px solid var(--ring); outline-offset: 2px;\n}\n.composerIconButton:disabled { opacity: 0.5; cursor: not-allowed; }\n.visuallyHidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }\n\n/* Thumbnail treatment matches the Betty attachment shelf. */\n.attachmentList {\n gap: 0.5rem;\n padding: 0;\n align-items: center;\n}\n.attachmentList li {\n max-width: 100%;\n position: relative;\n min-height: 3rem;\n border-radius: 0.625rem;\n border: 1px solid var(--border);\n background: var(--uzi-surface-1, var(--muted));\n padding: 0.125rem;\n}\n.attachmentThumbnail {\n width: 3rem;\n height: 3rem;\n border-radius: 0.5rem;\n object-fit: cover;\n}\n.attachmentFilename {\n max-width: 11rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n padding: 0.5rem;\n}\n.attachmentList li button {\n flex-shrink: 0;\n border: 0;\n background: transparent;\n color: var(--muted-foreground);\n border-radius: 0.4rem;\n}\n.attachmentList li button:hover { color: var(--foreground); background: var(--muted); }\n"],"mappings":""}
|
package/dist/index76.cjs
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
//#region src/components/ai-chat/ai-chat.module.css
|
|
2
|
+
var container = "uzi-ai-chat-module__container__UoyFb";
|
|
3
|
+
var scope = "uzi-ai-chat-module__scope__6xOgo";
|
|
4
|
+
var scopeLabel = "uzi-ai-chat-module__scopeLabel__LHbKZ";
|
|
5
|
+
var scopeHelp = "uzi-ai-chat-module__scopeHelp__NddsL";
|
|
6
|
+
var closeBtn = "uzi-ai-chat-module__closeBtn__IeRH2";
|
|
7
|
+
var sendButton = "uzi-ai-chat-module__sendButton__S9MmM";
|
|
8
|
+
var errorActions = "uzi-ai-chat-module__errorActions__MWoVQ";
|
|
9
|
+
var historyLimit = "uzi-ai-chat-module__historyLimit__LgZzD";
|
|
10
|
+
var thread = "uzi-ai-chat-module__thread__Rqyeu";
|
|
11
|
+
var viewport = "uzi-ai-chat-module__viewport__-CgLF";
|
|
12
|
+
var chatToolbar = "uzi-ai-chat-module__chatToolbar__-QMr9";
|
|
13
|
+
var messageList = "uzi-ai-chat-module__messageList__G3H50";
|
|
14
|
+
var userMessage = "uzi-ai-chat-module__userMessage__iGksi";
|
|
15
|
+
var assistantMessage = "uzi-ai-chat-module__assistantMessage__hRdxP";
|
|
16
|
+
var textPart = "uzi-ai-chat-module__textPart__U0myJ";
|
|
17
|
+
var reasoning = "uzi-ai-chat-module__reasoning__7Xf83";
|
|
18
|
+
var toolPart = "uzi-ai-chat-module__toolPart__P160m";
|
|
19
|
+
var reasoningSummary = "uzi-ai-chat-module__reasoningSummary__3gaQ3";
|
|
20
|
+
var reasoningText = "uzi-ai-chat-module__reasoningText__qxl36";
|
|
21
|
+
var sources = "uzi-ai-chat-module__sources__EwoEv";
|
|
22
|
+
var sourcesLabel = "uzi-ai-chat-module__sourcesLabel__YV6j1";
|
|
23
|
+
var data = "uzi-ai-chat-module__data__6pYCT";
|
|
24
|
+
var structuredData = "uzi-ai-chat-module__structuredData__CVeqF";
|
|
25
|
+
var footer = "uzi-ai-chat-module__footer__VzCvT";
|
|
26
|
+
var composerForm = "uzi-ai-chat-module__composerForm__E2Wqd";
|
|
27
|
+
var input = "uzi-ai-chat-module__input__-Rzh8";
|
|
28
|
+
var status = "uzi-ai-chat-module__status__Wm3t3";
|
|
29
|
+
var error = "uzi-ai-chat-module__error__csAOF";
|
|
30
|
+
var emptyState = "uzi-ai-chat-module__emptyState__JzB1x";
|
|
31
|
+
var composerExtras = "uzi-ai-chat-module__composerExtras__B1qBc";
|
|
32
|
+
var composerActions = "uzi-ai-chat-module__composerActions__wrPZO";
|
|
33
|
+
var approvalActions = "uzi-ai-chat-module__approvalActions__ptwyO";
|
|
34
|
+
var attachmentList = "uzi-ai-chat-module__attachmentList__isbAi";
|
|
35
|
+
var attachmentError = "uzi-ai-chat-module__attachmentError__E-kU-";
|
|
36
|
+
var messageBubble = "uzi-ai-chat-module__messageBubble__ZG7M-";
|
|
37
|
+
var messageLabel = "uzi-ai-chat-module__messageLabel__esd4p";
|
|
38
|
+
var composerSurface = "uzi-ai-chat-module__composerSurface__t7lZs";
|
|
39
|
+
var composerRow = "uzi-ai-chat-module__composerRow__Mjqy2";
|
|
40
|
+
var composerIconButton = "uzi-ai-chat-module__composerIconButton__6FYlZ";
|
|
41
|
+
var visuallyHidden = "uzi-ai-chat-module__visuallyHidden__qVCl7";
|
|
42
|
+
var attachmentThumbnail = "uzi-ai-chat-module__attachmentThumbnail__OzmIc";
|
|
43
|
+
var attachmentFilename = "uzi-ai-chat-module__attachmentFilename__yHCLk";
|
|
44
|
+
var ai_chat_module_default = {
|
|
45
|
+
container,
|
|
46
|
+
scope,
|
|
47
|
+
scopeLabel,
|
|
48
|
+
scopeHelp,
|
|
49
|
+
closeBtn,
|
|
50
|
+
sendButton,
|
|
51
|
+
errorActions,
|
|
52
|
+
historyLimit,
|
|
53
|
+
thread,
|
|
54
|
+
viewport,
|
|
55
|
+
chatToolbar,
|
|
56
|
+
messageList,
|
|
57
|
+
userMessage,
|
|
58
|
+
assistantMessage,
|
|
59
|
+
textPart,
|
|
60
|
+
reasoning,
|
|
61
|
+
toolPart,
|
|
62
|
+
reasoningSummary,
|
|
63
|
+
reasoningText,
|
|
64
|
+
sources,
|
|
65
|
+
sourcesLabel,
|
|
66
|
+
data,
|
|
67
|
+
structuredData,
|
|
68
|
+
footer,
|
|
69
|
+
composerForm,
|
|
70
|
+
input,
|
|
71
|
+
status,
|
|
72
|
+
error,
|
|
73
|
+
emptyState,
|
|
74
|
+
composerExtras,
|
|
75
|
+
composerActions,
|
|
76
|
+
approvalActions,
|
|
77
|
+
attachmentList,
|
|
78
|
+
attachmentError,
|
|
79
|
+
messageBubble,
|
|
80
|
+
messageLabel,
|
|
81
|
+
composerSurface,
|
|
82
|
+
composerRow,
|
|
83
|
+
composerIconButton,
|
|
84
|
+
visuallyHidden,
|
|
85
|
+
attachmentThumbnail,
|
|
86
|
+
attachmentFilename
|
|
87
|
+
};
|
|
88
|
+
//#endregion
|
|
89
|
+
exports.approvalActions = approvalActions;
|
|
90
|
+
exports.assistantMessage = assistantMessage;
|
|
91
|
+
exports.attachmentError = attachmentError;
|
|
92
|
+
exports.attachmentFilename = attachmentFilename;
|
|
93
|
+
exports.attachmentList = attachmentList;
|
|
94
|
+
exports.attachmentThumbnail = attachmentThumbnail;
|
|
95
|
+
exports.chatToolbar = chatToolbar;
|
|
96
|
+
exports.closeBtn = closeBtn;
|
|
97
|
+
exports.composerActions = composerActions;
|
|
98
|
+
exports.composerExtras = composerExtras;
|
|
99
|
+
exports.composerForm = composerForm;
|
|
100
|
+
exports.composerIconButton = composerIconButton;
|
|
101
|
+
exports.composerRow = composerRow;
|
|
102
|
+
exports.composerSurface = composerSurface;
|
|
103
|
+
exports.container = container;
|
|
104
|
+
exports.data = data;
|
|
105
|
+
exports.default = ai_chat_module_default;
|
|
106
|
+
exports.emptyState = emptyState;
|
|
107
|
+
exports.error = error;
|
|
108
|
+
exports.errorActions = errorActions;
|
|
109
|
+
exports.footer = footer;
|
|
110
|
+
exports.historyLimit = historyLimit;
|
|
111
|
+
exports.input = input;
|
|
112
|
+
exports.messageBubble = messageBubble;
|
|
113
|
+
exports.messageLabel = messageLabel;
|
|
114
|
+
exports.messageList = messageList;
|
|
115
|
+
exports.reasoning = reasoning;
|
|
116
|
+
exports.reasoningSummary = reasoningSummary;
|
|
117
|
+
exports.reasoningText = reasoningText;
|
|
118
|
+
exports.scope = scope;
|
|
119
|
+
exports.scopeHelp = scopeHelp;
|
|
120
|
+
exports.scopeLabel = scopeLabel;
|
|
121
|
+
exports.sendButton = sendButton;
|
|
122
|
+
exports.sources = sources;
|
|
123
|
+
exports.sourcesLabel = sourcesLabel;
|
|
124
|
+
exports.status = status;
|
|
125
|
+
exports.structuredData = structuredData;
|
|
126
|
+
exports.textPart = textPart;
|
|
127
|
+
exports.thread = thread;
|
|
128
|
+
exports.toolPart = toolPart;
|
|
129
|
+
exports.userMessage = userMessage;
|
|
130
|
+
exports.viewport = viewport;
|
|
131
|
+
exports.visuallyHidden = visuallyHidden;
|
|
132
|
+
|
|
133
|
+
//# sourceMappingURL=index76.cjs.map
|