@tomny-dev/uzi 0.7.0 → 0.7.1-pr.82.252.1.0f7aa55

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 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 interactive streaming, custom renderers, scoped requests, message limits and error recovery with mock responses; 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,7 @@ 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` | Streaming AI SDK chat surface with scoped context and customizable message renderers |
131
134
  | `Button` | Primary, secondary, outline, ghost variants |
132
135
  | `Card` | Discrete object container with tone/padding control |
133
136
  | `Surface` | Semantic visual grouping with base/subtle/raised/selected hierarchy |
@@ -169,6 +172,7 @@ In practice, `uzi` should spend its complexity budget on reusable app scaffoldin
169
172
  - [Application Scaffolding](docs/guides/application-scaffolding.md) — Page containers, headers, empty states, stats, and layout composition
170
173
  - [Visual Hierarchy](docs/guides/visual-hierarchy.md) — Surface levels, typography, borders, shadows, and toolbar conventions
171
174
  - [Form Patterns](docs/guides/form-patterns.md) — Input, Select, MultiSelect, SegmentedToggle patterns
175
+ - [AI Chat](docs/guides/ai-chat.md) — Streaming endpoint contract, authentication, scope authorization, renderers and local Storybook demos
172
176
 
173
177
  ## SSR Notes
174
178
 
@@ -0,0 +1,63 @@
1
+ import type { CSSProperties, ComponentType, ReactNode } from 'react';
2
+ export interface AIChatProps {
3
+ /** AI SDK UI-message stream endpoint. */
4
+ readonly api: string;
5
+ /** Opaque scope identifier sent to the API. Server must authorize it. */
6
+ readonly scope?: string;
7
+ /** Human-readable display text; never used as an access-control identifier. */
8
+ readonly scopeLabel?: string;
9
+ /** Fetch adapter for authentication, request instrumentation and local demos. */
10
+ readonly fetch?: typeof globalThis.fetch;
11
+ readonly headers?: Record<string, string>;
12
+ readonly credentials?: RequestCredentials;
13
+ /** Change this when the authenticated identity changes to reset the transcript. */
14
+ readonly sessionKey?: string | number;
15
+ /** Maximum number of user turns (default: 8). */
16
+ readonly messageLimit?: number;
17
+ readonly inputPlaceholder?: string;
18
+ readonly inputMaxLength?: number;
19
+ readonly components?: AIChatComponents;
20
+ readonly onClose?: () => void;
21
+ readonly className?: string;
22
+ readonly style?: CSSProperties;
23
+ }
24
+ export interface AIChatComponents {
25
+ readonly MessageRenderer?: ComponentType<AIChatMessageRendererProps>;
26
+ readonly ReasoningRenderer?: ComponentType<AIChatReasoningRendererProps>;
27
+ readonly SourceRenderer?: ComponentType<AIChatSourceRendererProps>;
28
+ readonly DataRenderer?: ComponentType<AIChatDataRendererProps>;
29
+ readonly ErrorRenderer?: ComponentType<AIChatErrorRendererProps>;
30
+ }
31
+ export interface AIChatMessageRendererProps {
32
+ readonly message: {
33
+ readonly id: string;
34
+ readonly role: 'user' | 'assistant';
35
+ readonly parts: readonly unknown[];
36
+ readonly metadata?: Record<string, unknown>;
37
+ };
38
+ readonly renderMessagePart: (part: Record<string, unknown>, index: number) => ReactNode;
39
+ }
40
+ export interface AIChatReasoningRendererProps {
41
+ readonly children: string;
42
+ readonly title?: string;
43
+ }
44
+ export interface AIChatSource {
45
+ readonly id: string;
46
+ readonly title?: string;
47
+ readonly url?: string;
48
+ }
49
+ export interface AIChatSourceRendererProps {
50
+ readonly sources: readonly AIChatSource[];
51
+ readonly renderSource: (source: AIChatSource, index: number) => ReactNode;
52
+ }
53
+ export interface AIChatDataRendererProps {
54
+ readonly data: readonly Record<string, unknown>[];
55
+ readonly renderDataItem: (item: Record<string, unknown>, index: number) => ReactNode;
56
+ }
57
+ export interface AIChatErrorRendererProps {
58
+ readonly error: Error;
59
+ readonly onRetry: () => void;
60
+ readonly onClear: () => void;
61
+ }
62
+ export declare function AIChat({ api, scope, scopeLabel, fetch: requestFetch, headers, credentials, sessionKey, messageLimit, inputPlaceholder, inputMaxLength, components, onClose, className, style, }: AIChatProps): import("react/jsx-runtime").JSX.Element;
63
+ //# 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AIChat.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIChat.test.d.ts","sourceRoot":"","sources":["../../../src/components/ai-chat/AIChat.test.tsx"],"names":[],"mappings":""}
package/dist/index.cjs CHANGED
@@ -38,6 +38,8 @@ 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
+ exports.AIChat = require_AIChat.AIChat;
41
43
  exports.Alert = require_Alert.Alert;
42
44
  exports.AppShell = require_AppShell.AppShell;
43
45
  exports.AuthCard = require_AuthCard.AuthCard;
package/dist/index.d.ts CHANGED
@@ -71,4 +71,6 @@ 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, AIChatComponents, AIChatMessageRendererProps, AIChatReasoningRendererProps, AIChatSource, AIChatSourceRendererProps, AIChatDataRendererProps, AIChatErrorRendererProps, } from "./components/ai-chat/AIChat";
75
+ export { AIChat } from "./components/ai-chat/AIChat";
74
76
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,mBAAmB,CAAC;AAG3B,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACzF,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEjF,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,YAAY,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,aAAa,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAEvD,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAG9C,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG/D,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC1E,YAAY,EACV,KAAK,EACL,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,SAAS,GACV,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE1D,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAEpE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE1D,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,yCAAyC,CAAC;AAGjD,YAAY,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE3D,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC9G,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAEjE,YAAY,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AACxG,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAE1E,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAEjE,YAAY,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/G,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAE1E,YAAY,EACV,sBAAsB,EACtB,eAAe,EACf,cAAc,GACf,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAEjE,YAAY,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,SAAS,EACT,UAAU,GACX,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,iDAAiD,CAAC;AAEhF,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEzD,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACpG,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAErE,YAAY,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AAGvF,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGhE,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAGhC,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE1D,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAG1D,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AACjH,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAGhF,YAAY,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAG3D,YAAY,EACV,eAAe,EACf,eAAe,EACf,uBAAuB,GACxB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAG/F,YAAY,EACV,MAAM,EACN,cAAc,EACd,kBAAkB,EAClB,aAAa,GACd,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAG9D,YAAY,EACV,iBAAiB,EACjB,eAAe,GAChB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAGvE,YAAY,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAG7F,YAAY,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAC/G,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC"}
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,5 @@ 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
- export { 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, 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 };
40
+ import { AIChat } from "./index76.js";
41
+ export { AIChat, 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, 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 };
@@ -1 +1 @@
1
- {"version":3,"file":"index14.js","names":[],"sources":["../src/components/modal/modal.module.css"],"sourcesContent":[".portalLayer {\n --uzi-modal-viewport-margin: 32px;\n\n position: fixed;\n inset: 0;\n z-index: var(--uzi-modal-z-index, 1000);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px;\n}\n\n.backdrop {\n position: absolute;\n inset: 0;\n background: rgba(0, 0, 0, 0.55);\n}\n\n.backdrop[data-state=\"open\"] {\n animation: backdropFadeIn 160ms ease;\n}\n\n.backdrop[data-state=\"closed\"] {\n animation: backdropFadeOut 140ms ease;\n}\n\n.overlayContent {\n position: relative;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n max-width: 100%;\n max-height: 100%;\n outline: none;\n}\n\n.overlayContent[data-state=\"open\"] {\n animation: modalContentIn 180ms ease;\n}\n\n.overlayContent[data-state=\"closed\"] {\n animation: modalContentOut 140ms ease;\n}\n\n.modal {\n background: var(--background);\n border: 1px solid var(--border);\n border-radius: 14px;\n max-height: calc(100vh - var(--uzi-modal-viewport-margin));\n max-height: calc(100dvh - var(--uzi-modal-viewport-margin));\n overflow: hidden;\n box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);\n display: flex;\n flex-direction: column;\n gap: 0;\n}\n\n/* Size variants */\n.size-sm { width: min(380px, calc(100vw - var(--uzi-modal-viewport-margin))); }\n.size-md { width: min(500px, calc(100vw - var(--uzi-modal-viewport-margin))); }\n.size-lg { width: min(640px, calc(100vw - var(--uzi-modal-viewport-margin))); }\n.size-xl { width: min(900px, calc(100vw - var(--uzi-modal-viewport-margin))); }\n\n.header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 12px;\n padding: 24px 24px 0;\n margin-bottom: 16px;\n}\n\n.titles {\n display: flex;\n flex-direction: column;\n gap: 3px;\n}\n\n.title {\n font-weight: 700;\n font-size: 16px;\n color: var(--foreground);\n line-height: 1.3;\n}\n\n.subtitle {\n font-size: 13px;\n color: var(--muted-foreground);\n line-height: 1.4;\n}\n\n.closeButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n flex-shrink: 0;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 6px;\n color: var(--muted-foreground);\n cursor: pointer;\n transition: background 0.12s, color 0.12s;\n padding: 0;\n}\n\n.closeButton:hover {\n background: color-mix(in srgb, var(--foreground) 7%, transparent);\n color: var(--foreground);\n}\n\n.closeButton:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.body {\n display: flex;\n flex-direction: column;\n gap: 12px;\n min-height: 0;\n overflow-y: auto;\n padding: 0 24px;\n}\n\n.body:last-child {\n padding-bottom: 24px;\n}\n\n.footer {\n display: flex;\n gap: 8px;\n padding: 0 24px 24px;\n margin-top: 20px;\n}\n\n@keyframes backdropFadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n@keyframes backdropFadeOut {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n}\n\n@keyframes modalContentIn {\n from {\n opacity: 0;\n transform: translateY(6px) scale(0.98);\n }\n\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n\n@keyframes modalContentOut {\n from {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n\n to {\n opacity: 0;\n transform: translateY(4px) scale(0.98);\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"index14.js","names":[],"sources":["../src/components/modal/modal.module.css"],"sourcesContent":[".portalLayer {\n --uzi-modal-viewport-margin: 32px;\n\n position: fixed;\n inset: 0;\n z-index: var(--uzi-modal-z-index, 1000);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px;\n}\n\n.backdrop {\n position: absolute;\n inset: 0;\n background: rgba(0, 0, 0, 0.55);\n}\n\n.backdrop[data-state=\"open\"] {\n animation: backdropFadeIn 160ms ease;\n}\n\n.backdrop[data-state=\"closed\"] {\n animation: backdropFadeOut 140ms ease;\n}\n\n.overlayContent {\n position: relative;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n max-width: 100%;\n max-height: 100%;\n outline: none;\n}\n\n.overlayContent[data-state=\"open\"] {\n animation: modalContentIn 180ms ease;\n}\n\n.overlayContent[data-state=\"closed\"] {\n animation: modalContentOut 140ms ease;\n}\n\n.modal {\n background: var(--uzi-surface-raised, var(--popover));\n border: 1px solid var(--border);\n border-radius: 14px;\n max-height: calc(100vh - var(--uzi-modal-viewport-margin));\n max-height: calc(100dvh - var(--uzi-modal-viewport-margin));\n overflow: hidden;\n box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);\n display: flex;\n flex-direction: column;\n gap: 0;\n}\n\n/* Size variants */\n.size-sm { width: min(380px, calc(100vw - var(--uzi-modal-viewport-margin))); }\n.size-md { width: min(500px, calc(100vw - var(--uzi-modal-viewport-margin))); }\n.size-lg { width: min(640px, calc(100vw - var(--uzi-modal-viewport-margin))); }\n.size-xl { width: min(900px, calc(100vw - var(--uzi-modal-viewport-margin))); }\n\n.header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 12px;\n padding: 24px 24px 0;\n margin-bottom: 16px;\n}\n\n.titles {\n display: flex;\n flex-direction: column;\n gap: 3px;\n}\n\n.title {\n font-weight: 700;\n font-size: 16px;\n color: var(--foreground);\n line-height: 1.3;\n}\n\n.subtitle {\n font-size: 13px;\n color: var(--muted-foreground);\n line-height: 1.4;\n}\n\n.closeButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n flex-shrink: 0;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 6px;\n color: var(--muted-foreground);\n cursor: pointer;\n transition: background 0.12s, color 0.12s;\n padding: 0;\n}\n\n.closeButton:hover {\n background: color-mix(in srgb, var(--foreground) 7%, transparent);\n color: var(--foreground);\n}\n\n.closeButton:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.body {\n display: flex;\n flex-direction: column;\n gap: 12px;\n min-height: 0;\n overflow-y: auto;\n padding: 0 24px;\n}\n\n.body:last-child {\n padding-bottom: 24px;\n}\n\n.footer {\n display: flex;\n gap: 8px;\n padding: 0 24px 24px;\n margin-top: 20px;\n}\n\n@keyframes backdropFadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n@keyframes backdropFadeOut {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n}\n\n@keyframes modalContentIn {\n from {\n opacity: 0;\n transform: translateY(6px) scale(0.98);\n }\n\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n\n@keyframes modalContentOut {\n from {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n\n to {\n opacity: 0;\n transform: translateY(4px) scale(0.98);\n }\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"index15.cjs","names":[],"sources":["../src/components/modal/modal.module.css"],"sourcesContent":[".portalLayer {\n --uzi-modal-viewport-margin: 32px;\n\n position: fixed;\n inset: 0;\n z-index: var(--uzi-modal-z-index, 1000);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px;\n}\n\n.backdrop {\n position: absolute;\n inset: 0;\n background: rgba(0, 0, 0, 0.55);\n}\n\n.backdrop[data-state=\"open\"] {\n animation: backdropFadeIn 160ms ease;\n}\n\n.backdrop[data-state=\"closed\"] {\n animation: backdropFadeOut 140ms ease;\n}\n\n.overlayContent {\n position: relative;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n max-width: 100%;\n max-height: 100%;\n outline: none;\n}\n\n.overlayContent[data-state=\"open\"] {\n animation: modalContentIn 180ms ease;\n}\n\n.overlayContent[data-state=\"closed\"] {\n animation: modalContentOut 140ms ease;\n}\n\n.modal {\n background: var(--background);\n border: 1px solid var(--border);\n border-radius: 14px;\n max-height: calc(100vh - var(--uzi-modal-viewport-margin));\n max-height: calc(100dvh - var(--uzi-modal-viewport-margin));\n overflow: hidden;\n box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);\n display: flex;\n flex-direction: column;\n gap: 0;\n}\n\n/* Size variants */\n.size-sm { width: min(380px, calc(100vw - var(--uzi-modal-viewport-margin))); }\n.size-md { width: min(500px, calc(100vw - var(--uzi-modal-viewport-margin))); }\n.size-lg { width: min(640px, calc(100vw - var(--uzi-modal-viewport-margin))); }\n.size-xl { width: min(900px, calc(100vw - var(--uzi-modal-viewport-margin))); }\n\n.header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 12px;\n padding: 24px 24px 0;\n margin-bottom: 16px;\n}\n\n.titles {\n display: flex;\n flex-direction: column;\n gap: 3px;\n}\n\n.title {\n font-weight: 700;\n font-size: 16px;\n color: var(--foreground);\n line-height: 1.3;\n}\n\n.subtitle {\n font-size: 13px;\n color: var(--muted-foreground);\n line-height: 1.4;\n}\n\n.closeButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n flex-shrink: 0;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 6px;\n color: var(--muted-foreground);\n cursor: pointer;\n transition: background 0.12s, color 0.12s;\n padding: 0;\n}\n\n.closeButton:hover {\n background: color-mix(in srgb, var(--foreground) 7%, transparent);\n color: var(--foreground);\n}\n\n.closeButton:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.body {\n display: flex;\n flex-direction: column;\n gap: 12px;\n min-height: 0;\n overflow-y: auto;\n padding: 0 24px;\n}\n\n.body:last-child {\n padding-bottom: 24px;\n}\n\n.footer {\n display: flex;\n gap: 8px;\n padding: 0 24px 24px;\n margin-top: 20px;\n}\n\n@keyframes backdropFadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n@keyframes backdropFadeOut {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n}\n\n@keyframes modalContentIn {\n from {\n opacity: 0;\n transform: translateY(6px) scale(0.98);\n }\n\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n\n@keyframes modalContentOut {\n from {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n\n to {\n opacity: 0;\n transform: translateY(4px) scale(0.98);\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"index15.cjs","names":[],"sources":["../src/components/modal/modal.module.css"],"sourcesContent":[".portalLayer {\n --uzi-modal-viewport-margin: 32px;\n\n position: fixed;\n inset: 0;\n z-index: var(--uzi-modal-z-index, 1000);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px;\n}\n\n.backdrop {\n position: absolute;\n inset: 0;\n background: rgba(0, 0, 0, 0.55);\n}\n\n.backdrop[data-state=\"open\"] {\n animation: backdropFadeIn 160ms ease;\n}\n\n.backdrop[data-state=\"closed\"] {\n animation: backdropFadeOut 140ms ease;\n}\n\n.overlayContent {\n position: relative;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n max-width: 100%;\n max-height: 100%;\n outline: none;\n}\n\n.overlayContent[data-state=\"open\"] {\n animation: modalContentIn 180ms ease;\n}\n\n.overlayContent[data-state=\"closed\"] {\n animation: modalContentOut 140ms ease;\n}\n\n.modal {\n background: var(--uzi-surface-raised, var(--popover));\n border: 1px solid var(--border);\n border-radius: 14px;\n max-height: calc(100vh - var(--uzi-modal-viewport-margin));\n max-height: calc(100dvh - var(--uzi-modal-viewport-margin));\n overflow: hidden;\n box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);\n display: flex;\n flex-direction: column;\n gap: 0;\n}\n\n/* Size variants */\n.size-sm { width: min(380px, calc(100vw - var(--uzi-modal-viewport-margin))); }\n.size-md { width: min(500px, calc(100vw - var(--uzi-modal-viewport-margin))); }\n.size-lg { width: min(640px, calc(100vw - var(--uzi-modal-viewport-margin))); }\n.size-xl { width: min(900px, calc(100vw - var(--uzi-modal-viewport-margin))); }\n\n.header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 12px;\n padding: 24px 24px 0;\n margin-bottom: 16px;\n}\n\n.titles {\n display: flex;\n flex-direction: column;\n gap: 3px;\n}\n\n.title {\n font-weight: 700;\n font-size: 16px;\n color: var(--foreground);\n line-height: 1.3;\n}\n\n.subtitle {\n font-size: 13px;\n color: var(--muted-foreground);\n line-height: 1.4;\n}\n\n.closeButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n flex-shrink: 0;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 6px;\n color: var(--muted-foreground);\n cursor: pointer;\n transition: background 0.12s, color 0.12s;\n padding: 0;\n}\n\n.closeButton:hover {\n background: color-mix(in srgb, var(--foreground) 7%, transparent);\n color: var(--foreground);\n}\n\n.closeButton:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.body {\n display: flex;\n flex-direction: column;\n gap: 12px;\n min-height: 0;\n overflow-y: auto;\n padding: 0 24px;\n}\n\n.body:last-child {\n padding-bottom: 24px;\n}\n\n.footer {\n display: flex;\n gap: 8px;\n padding: 0 24px 24px;\n margin-top: 20px;\n}\n\n@keyframes backdropFadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n@keyframes backdropFadeOut {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n}\n\n@keyframes modalContentIn {\n from {\n opacity: 0;\n transform: translateY(6px) scale(0.98);\n }\n\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n\n@keyframes modalContentOut {\n from {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n\n to {\n opacity: 0;\n transform: translateY(4px) scale(0.98);\n }\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"index20.js","names":[],"sources":["../src/components/input/input.module.css"],"sourcesContent":[".input {\n display: flex;\n width: 100%;\n min-height: 2.25rem;\n border-radius: 0.5rem;\n border: 1px solid var(--ts-input-border, var(--input));\n background: var(--ts-input-bg, var(--background));\n color: var(--ts-input-fg, var(--foreground));\n padding: 0.25rem 0.75rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n box-shadow: var(--ts-input-shadow, 0 1px 2px rgba(0, 0, 0, 0.04));\n transition: border-color 0.15s ease, background 0.15s ease;\n}\n\n.input::placeholder {\n color: var(--ts-input-placeholder, var(--muted-foreground));\n}\n\n.input:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.input:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"index20.js","names":[],"sources":["../src/components/input/input.module.css"],"sourcesContent":[".input {\n display: flex;\n width: 100%;\n min-height: 2.25rem;\n border-radius: 0.5rem;\n border: 1px solid var(--ts-input-border, var(--input));\n background: var(--ts-input-bg, var(--uzi-surface-2, var(--secondary)));\n color: var(--ts-input-fg, var(--foreground));\n padding: 0.25rem 0.75rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n box-shadow: var(--ts-input-shadow, 0 1px 2px rgba(0, 0, 0, 0.04));\n transition: border-color 0.15s ease, background 0.15s ease;\n}\n\n.input::placeholder {\n color: var(--ts-input-placeholder, var(--muted-foreground));\n}\n\n.input:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.input:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"index21.cjs","names":[],"sources":["../src/components/input/input.module.css"],"sourcesContent":[".input {\n display: flex;\n width: 100%;\n min-height: 2.25rem;\n border-radius: 0.5rem;\n border: 1px solid var(--ts-input-border, var(--input));\n background: var(--ts-input-bg, var(--background));\n color: var(--ts-input-fg, var(--foreground));\n padding: 0.25rem 0.75rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n box-shadow: var(--ts-input-shadow, 0 1px 2px rgba(0, 0, 0, 0.04));\n transition: border-color 0.15s ease, background 0.15s ease;\n}\n\n.input::placeholder {\n color: var(--ts-input-placeholder, var(--muted-foreground));\n}\n\n.input:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.input:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"index21.cjs","names":[],"sources":["../src/components/input/input.module.css"],"sourcesContent":[".input {\n display: flex;\n width: 100%;\n min-height: 2.25rem;\n border-radius: 0.5rem;\n border: 1px solid var(--ts-input-border, var(--input));\n background: var(--ts-input-bg, var(--uzi-surface-2, var(--secondary)));\n color: var(--ts-input-fg, var(--foreground));\n padding: 0.25rem 0.75rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n box-shadow: var(--ts-input-shadow, 0 1px 2px rgba(0, 0, 0, 0.04));\n transition: border-color 0.15s ease, background 0.15s ease;\n}\n\n.input::placeholder {\n color: var(--ts-input-placeholder, var(--muted-foreground));\n}\n\n.input:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.input:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"index26.js","names":[],"sources":["../src/components/multi-select/multi-select.module.css"],"sourcesContent":[".wrapper {\n position: relative;\n display: inline-flex;\n min-width: 0;\n max-width: 100%;\n}\n\n.wrapperFullWidth {\n width: 100%;\n}\n\n.trigger {\n width: 100%;\n min-width: 0;\n min-height: var(--uzi-control-min-height);\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.625rem;\n border-radius: var(--uzi-control-radius);\n border: 1px solid var(--ts-dropdown-border, var(--border));\n background: var(--ts-dropdown-bg, var(--panel));\n color: var(--ts-dropdown-text, var(--foreground));\n padding:\n var(--uzi-control-padding-y)\n var(--uzi-control-padding-x-compact)\n var(--uzi-control-padding-y)\n var(--uzi-control-padding-x);\n font-size: var(--uzi-control-font-size);\n line-height: var(--uzi-control-line-height);\n font-family: inherit;\n box-shadow: var(--uzi-control-shadow);\n transition:\n border-color 0.15s ease,\n background 0.15s ease,\n color 0.15s ease,\n box-shadow 0.15s ease;\n cursor: pointer;\n text-align: left;\n}\n\n.trigger:hover:not(:disabled) {\n border-color: var(--ts-dropdown-accent, var(--accent));\n box-shadow: var(--uzi-control-shadow-hover);\n}\n\n.trigger:focus-visible,\n.trigger[data-state=\"open\"] {\n border-color: var(--ts-dropdown-accent, var(--primary));\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n box-shadow: 0 0 0 1px color-mix(in srgb, var(--primary) 30%, transparent);\n}\n\n.trigger:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n box-shadow: none;\n}\n\n.value {\n min-width: 0;\n display: flex;\n flex: 1;\n flex-wrap: wrap;\n gap: 0.375rem;\n align-items: center;\n}\n\n.placeholder {\n color: var(--muted-foreground);\n}\n\n.summary {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: 500;\n}\n\n.chip {\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n padding: 2px 8px;\n border-radius: 999px;\n border: 1px solid color-mix(in srgb, var(--primary) 32%, transparent);\n background: color-mix(in srgb, var(--primary) 10%, transparent);\n color: var(--ts-dropdown-text, var(--foreground));\n font-size: 0.75rem;\n font-weight: 600;\n line-height: 1.2;\n white-space: nowrap;\n}\n\n.chipSummary {\n color: var(--primary);\n}\n\n.chevron {\n width: 10px;\n height: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--muted-foreground);\n flex-shrink: 0;\n transition: transform 0.15s ease, color 0.15s ease;\n}\n\n.trigger:hover:not(:disabled) .chevron,\n.trigger[data-state=\"open\"] .chevron {\n color: var(--ts-dropdown-text, var(--foreground));\n}\n\n.trigger[data-state=\"open\"] .chevron {\n transform: rotate(180deg);\n}\n\n.menu {\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n z-index: var(--uzi-popover-z-index, 1100);\n min-width: 100%;\n max-height: 16rem;\n overflow-y: auto;\n border: 1px solid var(--ts-menu-border, var(--border));\n border-radius: var(--uzi-menu-radius);\n background: var(--ts-menu-bg, var(--popover));\n color: var(--ts-menu-fg, var(--popover-foreground));\n padding: var(--uzi-menu-padding);\n box-shadow: var(--uzi-menu-shadow);\n animation: menuFadeIn 140ms ease;\n}\n\n.bulkAction {\n width: 100%;\n display: flex;\n align-items: center;\n border: none;\n border-radius: var(--uzi-menu-item-radius);\n background: transparent;\n color: inherit;\n padding: var(--uzi-menu-item-padding-y) var(--uzi-menu-item-padding-x);\n font: inherit;\n font-weight: 600;\n cursor: pointer;\n outline: none;\n}\n\n.bulkAction[data-highlighted] {\n background: var(--ts-menu-hover-bg, var(--accent));\n color: var(--ts-menu-hover-fg, var(--accent-foreground));\n}\n\n.bulkAction[data-disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.separator {\n height: 1px;\n margin: var(--uzi-menu-padding) 0;\n background: var(--ts-menu-border, var(--border));\n}\n\n.option {\n width: 100%;\n display: flex;\n align-items: center;\n gap: var(--uzi-menu-item-gap);\n border: none;\n border-radius: var(--uzi-menu-item-radius);\n background: transparent;\n color: inherit;\n padding: var(--uzi-menu-item-padding-y) var(--uzi-menu-item-padding-x);\n font: inherit;\n cursor: pointer;\n text-align: left;\n transition: background 0.12s ease, color 0.12s ease;\n}\n\n.option:hover:not(:disabled),\n.option:focus-visible,\n.option[data-highlighted] {\n background: var(--ts-menu-hover-bg, var(--accent));\n color: var(--ts-menu-hover-fg, var(--accent-foreground));\n outline: none;\n}\n\n.optionDisabled,\n.option[data-disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.optionSelected .optionLabel {\n color: var(--primary);\n}\n\n.indicator {\n width: 1rem;\n height: 1rem;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n border-radius: 0.3125rem;\n border: 1px solid var(--border);\n color: transparent;\n background: transparent;\n transition: border-color 0.12s ease, background 0.12s ease, color 0.12s ease;\n}\n\n.indicatorSelected {\n border-color: color-mix(in srgb, var(--primary) 55%, transparent);\n background: color-mix(in srgb, var(--primary) 12%, transparent);\n color: var(--primary);\n}\n\n.indicatorDisabled {\n opacity: 0.65;\n}\n\n.optionLabel {\n min-width: 0;\n flex: 1;\n display: inline-flex;\n align-items: center;\n gap: var(--uzi-menu-item-gap);\n}\n\n.optionIcon {\n width: 1rem;\n height: 1rem;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.optionIcon > * {\n max-width: 100%;\n max-height: 100%;\n}\n\n@keyframes menuFadeIn {\n from {\n opacity: 0;\n transform: translateY(-4px) scale(0.98);\n }\n\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"index26.js","names":[],"sources":["../src/components/multi-select/multi-select.module.css"],"sourcesContent":[".wrapper {\n position: relative;\n display: inline-flex;\n min-width: 0;\n max-width: 100%;\n}\n\n.wrapperFullWidth {\n width: 100%;\n}\n\n.trigger {\n width: 100%;\n min-width: 0;\n min-height: var(--uzi-control-min-height);\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.625rem;\n border-radius: var(--uzi-control-radius);\n border: 1px solid var(--ts-dropdown-border, var(--border));\n background: var(--ts-dropdown-bg, var(--uzi-surface-2, var(--secondary)));\n color: var(--ts-dropdown-text, var(--foreground));\n padding:\n var(--uzi-control-padding-y)\n var(--uzi-control-padding-x-compact)\n var(--uzi-control-padding-y)\n var(--uzi-control-padding-x);\n font-size: var(--uzi-control-font-size);\n line-height: var(--uzi-control-line-height);\n font-family: inherit;\n box-shadow: var(--uzi-control-shadow);\n transition:\n border-color 0.15s ease,\n background 0.15s ease,\n color 0.15s ease,\n box-shadow 0.15s ease;\n cursor: pointer;\n text-align: left;\n}\n\n.trigger:hover:not(:disabled) {\n border-color: var(--ts-dropdown-accent, var(--accent));\n box-shadow: var(--uzi-control-shadow-hover);\n}\n\n.trigger:focus-visible,\n.trigger[data-state=\"open\"] {\n border-color: var(--ts-dropdown-accent, var(--primary));\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n box-shadow: 0 0 0 1px color-mix(in srgb, var(--primary) 30%, transparent);\n}\n\n.trigger:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n box-shadow: none;\n}\n\n.value {\n min-width: 0;\n display: flex;\n flex: 1;\n flex-wrap: wrap;\n gap: 0.375rem;\n align-items: center;\n}\n\n.placeholder {\n color: var(--muted-foreground);\n}\n\n.summary {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: 500;\n}\n\n.chip {\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n padding: 2px 8px;\n border-radius: 999px;\n border: 1px solid color-mix(in srgb, var(--primary) 32%, transparent);\n background: color-mix(in srgb, var(--primary) 10%, transparent);\n color: var(--ts-dropdown-text, var(--foreground));\n font-size: 0.75rem;\n font-weight: 600;\n line-height: 1.2;\n white-space: nowrap;\n}\n\n.chipSummary {\n color: var(--primary);\n}\n\n.chevron {\n width: 10px;\n height: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--muted-foreground);\n flex-shrink: 0;\n transition: transform 0.15s ease, color 0.15s ease;\n}\n\n.trigger:hover:not(:disabled) .chevron,\n.trigger[data-state=\"open\"] .chevron {\n color: var(--ts-dropdown-text, var(--foreground));\n}\n\n.trigger[data-state=\"open\"] .chevron {\n transform: rotate(180deg);\n}\n\n.menu {\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n z-index: var(--uzi-popover-z-index, 1100);\n min-width: 100%;\n max-height: 16rem;\n overflow-y: auto;\n border: 1px solid var(--ts-menu-border, var(--border));\n border-radius: var(--uzi-menu-radius);\n background: var(--ts-menu-bg, var(--popover));\n color: var(--ts-menu-fg, var(--popover-foreground));\n padding: var(--uzi-menu-padding);\n box-shadow: var(--uzi-menu-shadow);\n animation: menuFadeIn 140ms ease;\n}\n\n.bulkAction {\n width: 100%;\n display: flex;\n align-items: center;\n border: none;\n border-radius: var(--uzi-menu-item-radius);\n background: transparent;\n color: inherit;\n padding: var(--uzi-menu-item-padding-y) var(--uzi-menu-item-padding-x);\n font: inherit;\n font-weight: 600;\n cursor: pointer;\n outline: none;\n}\n\n.bulkAction[data-highlighted] {\n background: var(--ts-menu-hover-bg, var(--accent));\n color: var(--ts-menu-hover-fg, var(--accent-foreground));\n}\n\n.bulkAction[data-disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.separator {\n height: 1px;\n margin: var(--uzi-menu-padding) 0;\n background: var(--ts-menu-border, var(--border));\n}\n\n.option {\n width: 100%;\n display: flex;\n align-items: center;\n gap: var(--uzi-menu-item-gap);\n border: none;\n border-radius: var(--uzi-menu-item-radius);\n background: transparent;\n color: inherit;\n padding: var(--uzi-menu-item-padding-y) var(--uzi-menu-item-padding-x);\n font: inherit;\n cursor: pointer;\n text-align: left;\n transition: background 0.12s ease, color 0.12s ease;\n}\n\n.option:hover:not(:disabled),\n.option:focus-visible,\n.option[data-highlighted] {\n background: var(--ts-menu-hover-bg, var(--accent));\n color: var(--ts-menu-hover-fg, var(--accent-foreground));\n outline: none;\n}\n\n.optionDisabled,\n.option[data-disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.optionSelected .optionLabel {\n color: var(--primary);\n}\n\n.indicator {\n width: 1rem;\n height: 1rem;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n border-radius: 0.3125rem;\n border: 1px solid var(--border);\n color: transparent;\n background: transparent;\n transition: border-color 0.12s ease, background 0.12s ease, color 0.12s ease;\n}\n\n.indicatorSelected {\n border-color: color-mix(in srgb, var(--primary) 55%, transparent);\n background: color-mix(in srgb, var(--primary) 12%, transparent);\n color: var(--primary);\n}\n\n.indicatorDisabled {\n opacity: 0.65;\n}\n\n.optionLabel {\n min-width: 0;\n flex: 1;\n display: inline-flex;\n align-items: center;\n gap: var(--uzi-menu-item-gap);\n}\n\n.optionIcon {\n width: 1rem;\n height: 1rem;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.optionIcon > * {\n max-width: 100%;\n max-height: 100%;\n}\n\n@keyframes menuFadeIn {\n from {\n opacity: 0;\n transform: translateY(-4px) scale(0.98);\n }\n\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"index27.cjs","names":[],"sources":["../src/components/multi-select/multi-select.module.css"],"sourcesContent":[".wrapper {\n position: relative;\n display: inline-flex;\n min-width: 0;\n max-width: 100%;\n}\n\n.wrapperFullWidth {\n width: 100%;\n}\n\n.trigger {\n width: 100%;\n min-width: 0;\n min-height: var(--uzi-control-min-height);\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.625rem;\n border-radius: var(--uzi-control-radius);\n border: 1px solid var(--ts-dropdown-border, var(--border));\n background: var(--ts-dropdown-bg, var(--panel));\n color: var(--ts-dropdown-text, var(--foreground));\n padding:\n var(--uzi-control-padding-y)\n var(--uzi-control-padding-x-compact)\n var(--uzi-control-padding-y)\n var(--uzi-control-padding-x);\n font-size: var(--uzi-control-font-size);\n line-height: var(--uzi-control-line-height);\n font-family: inherit;\n box-shadow: var(--uzi-control-shadow);\n transition:\n border-color 0.15s ease,\n background 0.15s ease,\n color 0.15s ease,\n box-shadow 0.15s ease;\n cursor: pointer;\n text-align: left;\n}\n\n.trigger:hover:not(:disabled) {\n border-color: var(--ts-dropdown-accent, var(--accent));\n box-shadow: var(--uzi-control-shadow-hover);\n}\n\n.trigger:focus-visible,\n.trigger[data-state=\"open\"] {\n border-color: var(--ts-dropdown-accent, var(--primary));\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n box-shadow: 0 0 0 1px color-mix(in srgb, var(--primary) 30%, transparent);\n}\n\n.trigger:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n box-shadow: none;\n}\n\n.value {\n min-width: 0;\n display: flex;\n flex: 1;\n flex-wrap: wrap;\n gap: 0.375rem;\n align-items: center;\n}\n\n.placeholder {\n color: var(--muted-foreground);\n}\n\n.summary {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: 500;\n}\n\n.chip {\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n padding: 2px 8px;\n border-radius: 999px;\n border: 1px solid color-mix(in srgb, var(--primary) 32%, transparent);\n background: color-mix(in srgb, var(--primary) 10%, transparent);\n color: var(--ts-dropdown-text, var(--foreground));\n font-size: 0.75rem;\n font-weight: 600;\n line-height: 1.2;\n white-space: nowrap;\n}\n\n.chipSummary {\n color: var(--primary);\n}\n\n.chevron {\n width: 10px;\n height: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--muted-foreground);\n flex-shrink: 0;\n transition: transform 0.15s ease, color 0.15s ease;\n}\n\n.trigger:hover:not(:disabled) .chevron,\n.trigger[data-state=\"open\"] .chevron {\n color: var(--ts-dropdown-text, var(--foreground));\n}\n\n.trigger[data-state=\"open\"] .chevron {\n transform: rotate(180deg);\n}\n\n.menu {\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n z-index: var(--uzi-popover-z-index, 1100);\n min-width: 100%;\n max-height: 16rem;\n overflow-y: auto;\n border: 1px solid var(--ts-menu-border, var(--border));\n border-radius: var(--uzi-menu-radius);\n background: var(--ts-menu-bg, var(--popover));\n color: var(--ts-menu-fg, var(--popover-foreground));\n padding: var(--uzi-menu-padding);\n box-shadow: var(--uzi-menu-shadow);\n animation: menuFadeIn 140ms ease;\n}\n\n.bulkAction {\n width: 100%;\n display: flex;\n align-items: center;\n border: none;\n border-radius: var(--uzi-menu-item-radius);\n background: transparent;\n color: inherit;\n padding: var(--uzi-menu-item-padding-y) var(--uzi-menu-item-padding-x);\n font: inherit;\n font-weight: 600;\n cursor: pointer;\n outline: none;\n}\n\n.bulkAction[data-highlighted] {\n background: var(--ts-menu-hover-bg, var(--accent));\n color: var(--ts-menu-hover-fg, var(--accent-foreground));\n}\n\n.bulkAction[data-disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.separator {\n height: 1px;\n margin: var(--uzi-menu-padding) 0;\n background: var(--ts-menu-border, var(--border));\n}\n\n.option {\n width: 100%;\n display: flex;\n align-items: center;\n gap: var(--uzi-menu-item-gap);\n border: none;\n border-radius: var(--uzi-menu-item-radius);\n background: transparent;\n color: inherit;\n padding: var(--uzi-menu-item-padding-y) var(--uzi-menu-item-padding-x);\n font: inherit;\n cursor: pointer;\n text-align: left;\n transition: background 0.12s ease, color 0.12s ease;\n}\n\n.option:hover:not(:disabled),\n.option:focus-visible,\n.option[data-highlighted] {\n background: var(--ts-menu-hover-bg, var(--accent));\n color: var(--ts-menu-hover-fg, var(--accent-foreground));\n outline: none;\n}\n\n.optionDisabled,\n.option[data-disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.optionSelected .optionLabel {\n color: var(--primary);\n}\n\n.indicator {\n width: 1rem;\n height: 1rem;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n border-radius: 0.3125rem;\n border: 1px solid var(--border);\n color: transparent;\n background: transparent;\n transition: border-color 0.12s ease, background 0.12s ease, color 0.12s ease;\n}\n\n.indicatorSelected {\n border-color: color-mix(in srgb, var(--primary) 55%, transparent);\n background: color-mix(in srgb, var(--primary) 12%, transparent);\n color: var(--primary);\n}\n\n.indicatorDisabled {\n opacity: 0.65;\n}\n\n.optionLabel {\n min-width: 0;\n flex: 1;\n display: inline-flex;\n align-items: center;\n gap: var(--uzi-menu-item-gap);\n}\n\n.optionIcon {\n width: 1rem;\n height: 1rem;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.optionIcon > * {\n max-width: 100%;\n max-height: 100%;\n}\n\n@keyframes menuFadeIn {\n from {\n opacity: 0;\n transform: translateY(-4px) scale(0.98);\n }\n\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"index27.cjs","names":[],"sources":["../src/components/multi-select/multi-select.module.css"],"sourcesContent":[".wrapper {\n position: relative;\n display: inline-flex;\n min-width: 0;\n max-width: 100%;\n}\n\n.wrapperFullWidth {\n width: 100%;\n}\n\n.trigger {\n width: 100%;\n min-width: 0;\n min-height: var(--uzi-control-min-height);\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.625rem;\n border-radius: var(--uzi-control-radius);\n border: 1px solid var(--ts-dropdown-border, var(--border));\n background: var(--ts-dropdown-bg, var(--uzi-surface-2, var(--secondary)));\n color: var(--ts-dropdown-text, var(--foreground));\n padding:\n var(--uzi-control-padding-y)\n var(--uzi-control-padding-x-compact)\n var(--uzi-control-padding-y)\n var(--uzi-control-padding-x);\n font-size: var(--uzi-control-font-size);\n line-height: var(--uzi-control-line-height);\n font-family: inherit;\n box-shadow: var(--uzi-control-shadow);\n transition:\n border-color 0.15s ease,\n background 0.15s ease,\n color 0.15s ease,\n box-shadow 0.15s ease;\n cursor: pointer;\n text-align: left;\n}\n\n.trigger:hover:not(:disabled) {\n border-color: var(--ts-dropdown-accent, var(--accent));\n box-shadow: var(--uzi-control-shadow-hover);\n}\n\n.trigger:focus-visible,\n.trigger[data-state=\"open\"] {\n border-color: var(--ts-dropdown-accent, var(--primary));\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n box-shadow: 0 0 0 1px color-mix(in srgb, var(--primary) 30%, transparent);\n}\n\n.trigger:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n box-shadow: none;\n}\n\n.value {\n min-width: 0;\n display: flex;\n flex: 1;\n flex-wrap: wrap;\n gap: 0.375rem;\n align-items: center;\n}\n\n.placeholder {\n color: var(--muted-foreground);\n}\n\n.summary {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: 500;\n}\n\n.chip {\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n padding: 2px 8px;\n border-radius: 999px;\n border: 1px solid color-mix(in srgb, var(--primary) 32%, transparent);\n background: color-mix(in srgb, var(--primary) 10%, transparent);\n color: var(--ts-dropdown-text, var(--foreground));\n font-size: 0.75rem;\n font-weight: 600;\n line-height: 1.2;\n white-space: nowrap;\n}\n\n.chipSummary {\n color: var(--primary);\n}\n\n.chevron {\n width: 10px;\n height: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--muted-foreground);\n flex-shrink: 0;\n transition: transform 0.15s ease, color 0.15s ease;\n}\n\n.trigger:hover:not(:disabled) .chevron,\n.trigger[data-state=\"open\"] .chevron {\n color: var(--ts-dropdown-text, var(--foreground));\n}\n\n.trigger[data-state=\"open\"] .chevron {\n transform: rotate(180deg);\n}\n\n.menu {\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n z-index: var(--uzi-popover-z-index, 1100);\n min-width: 100%;\n max-height: 16rem;\n overflow-y: auto;\n border: 1px solid var(--ts-menu-border, var(--border));\n border-radius: var(--uzi-menu-radius);\n background: var(--ts-menu-bg, var(--popover));\n color: var(--ts-menu-fg, var(--popover-foreground));\n padding: var(--uzi-menu-padding);\n box-shadow: var(--uzi-menu-shadow);\n animation: menuFadeIn 140ms ease;\n}\n\n.bulkAction {\n width: 100%;\n display: flex;\n align-items: center;\n border: none;\n border-radius: var(--uzi-menu-item-radius);\n background: transparent;\n color: inherit;\n padding: var(--uzi-menu-item-padding-y) var(--uzi-menu-item-padding-x);\n font: inherit;\n font-weight: 600;\n cursor: pointer;\n outline: none;\n}\n\n.bulkAction[data-highlighted] {\n background: var(--ts-menu-hover-bg, var(--accent));\n color: var(--ts-menu-hover-fg, var(--accent-foreground));\n}\n\n.bulkAction[data-disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.separator {\n height: 1px;\n margin: var(--uzi-menu-padding) 0;\n background: var(--ts-menu-border, var(--border));\n}\n\n.option {\n width: 100%;\n display: flex;\n align-items: center;\n gap: var(--uzi-menu-item-gap);\n border: none;\n border-radius: var(--uzi-menu-item-radius);\n background: transparent;\n color: inherit;\n padding: var(--uzi-menu-item-padding-y) var(--uzi-menu-item-padding-x);\n font: inherit;\n cursor: pointer;\n text-align: left;\n transition: background 0.12s ease, color 0.12s ease;\n}\n\n.option:hover:not(:disabled),\n.option:focus-visible,\n.option[data-highlighted] {\n background: var(--ts-menu-hover-bg, var(--accent));\n color: var(--ts-menu-hover-fg, var(--accent-foreground));\n outline: none;\n}\n\n.optionDisabled,\n.option[data-disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.optionSelected .optionLabel {\n color: var(--primary);\n}\n\n.indicator {\n width: 1rem;\n height: 1rem;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n border-radius: 0.3125rem;\n border: 1px solid var(--border);\n color: transparent;\n background: transparent;\n transition: border-color 0.12s ease, background 0.12s ease, color 0.12s ease;\n}\n\n.indicatorSelected {\n border-color: color-mix(in srgb, var(--primary) 55%, transparent);\n background: color-mix(in srgb, var(--primary) 12%, transparent);\n color: var(--primary);\n}\n\n.indicatorDisabled {\n opacity: 0.65;\n}\n\n.optionLabel {\n min-width: 0;\n flex: 1;\n display: inline-flex;\n align-items: center;\n gap: var(--uzi-menu-item-gap);\n}\n\n.optionIcon {\n width: 1rem;\n height: 1rem;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.optionIcon > * {\n max-width: 100%;\n max-height: 100%;\n}\n\n@keyframes menuFadeIn {\n from {\n opacity: 0;\n transform: translateY(-4px) scale(0.98);\n }\n\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"index28.js","names":[],"sources":["../src/components/select/select.module.css"],"sourcesContent":[".wrapper {\n position: relative;\n display: inline-flex;\n min-width: 0;\n max-width: 100%;\n}\n\n.wrapperFullWidth {\n width: 100%;\n}\n\n.wrapper:not(.wrapperFullWidth) .trigger {\n width: auto;\n}\n\n.trigger {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.625rem;\n width: 100%;\n min-width: 0;\n min-height: var(--uzi-control-min-height);\n border-radius: var(--uzi-control-radius);\n border: 1px solid var(--ts-dropdown-border, var(--border));\n background: var(--ts-dropdown-bg, var(--panel));\n color: var(--ts-dropdown-text, var(--foreground));\n padding:\n var(--uzi-control-padding-y)\n var(--uzi-control-padding-x-compact)\n var(--uzi-control-padding-y)\n var(--uzi-control-padding-x);\n font-size: var(--uzi-control-font-size);\n line-height: var(--uzi-control-line-height);\n font-family: inherit;\n font-weight: 500;\n box-shadow: var(--uzi-control-shadow);\n transition:\n border-color 0.15s ease,\n background 0.15s ease,\n color 0.15s ease,\n box-shadow 0.15s ease;\n cursor: pointer;\n text-align: left;\n}\n\n.value {\n min-width: 0;\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.trigger:hover:not(:disabled) {\n border-color: var(--ts-dropdown-accent, var(--accent));\n box-shadow: var(--uzi-control-shadow-hover);\n}\n\n.trigger:focus-visible {\n border-color: var(--ts-dropdown-accent, var(--primary));\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n box-shadow: 0 0 0 1px color-mix(in srgb, var(--primary) 30%, transparent);\n}\n\n.trigger[data-placeholder] {\n color: var(--muted-foreground);\n}\n\n.trigger:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n box-shadow: none;\n}\n\n.chevron {\n width: 10px;\n height: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--muted-foreground);\n flex-shrink: 0;\n position: relative;\n top: -1px;\n transition: transform 0.15s ease, color 0.15s ease;\n}\n\n.chevron svg {\n display: block;\n}\n\n.trigger:hover:not(:disabled) .chevron,\n.trigger[data-state=\"open\"] .chevron {\n color: var(--ts-dropdown-text, var(--foreground));\n}\n\n.trigger[data-state=\"open\"] .chevron {\n transform: rotate(180deg);\n}\n\n.content {\n z-index: var(--uzi-popover-z-index, 1100);\n min-width: var(--radix-select-trigger-width);\n max-height: min(18rem, var(--radix-select-content-available-height));\n overflow: hidden;\n border: 1px solid var(--ts-menu-border, var(--border));\n border-radius: var(--uzi-menu-radius);\n background: var(--ts-menu-bg, var(--popover));\n color: var(--ts-menu-fg, var(--popover-foreground));\n padding: var(--uzi-menu-padding);\n box-shadow: var(--uzi-menu-shadow);\n animation: selectFadeIn 140ms ease;\n}\n\n.viewport {\n max-height: inherit;\n overflow-y: auto;\n}\n\n.item {\n position: relative;\n display: flex;\n width: 100%;\n cursor: default;\n user-select: none;\n align-items: center;\n gap: var(--uzi-menu-item-gap);\n border-radius: var(--uzi-menu-item-radius);\n padding:\n var(--uzi-menu-item-padding-y)\n var(--uzi-menu-item-padding-x)\n var(--uzi-menu-item-padding-y)\n 2rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n outline: none;\n}\n\n.item[data-highlighted] {\n background: var(--ts-menu-hover-bg, var(--accent));\n color: var(--ts-menu-hover-fg, var(--accent-foreground));\n}\n\n.item[data-disabled] {\n pointer-events: none;\n opacity: 0.5;\n}\n\n.item[data-state=\"checked\"] {\n color: var(--primary);\n}\n\n.indicator {\n position: absolute;\n left: 0.625rem;\n display: inline-flex;\n width: 1rem;\n height: 1rem;\n align-items: center;\n justify-content: center;\n color: currentColor;\n}\n\n.indicatorIcon {\n display: block;\n}\n\n@keyframes selectFadeIn {\n from {\n opacity: 0;\n transform: translateY(-4px) scale(0.98);\n }\n\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"index28.js","names":[],"sources":["../src/components/select/select.module.css"],"sourcesContent":[".wrapper {\n position: relative;\n display: inline-flex;\n min-width: 0;\n max-width: 100%;\n}\n\n.wrapperFullWidth {\n width: 100%;\n}\n\n.wrapper:not(.wrapperFullWidth) .trigger {\n width: auto;\n}\n\n.trigger {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.625rem;\n width: 100%;\n min-width: 0;\n min-height: var(--uzi-control-min-height);\n border-radius: var(--uzi-control-radius);\n border: 1px solid var(--ts-dropdown-border, var(--border));\n background: var(--ts-dropdown-bg, var(--uzi-surface-2, var(--secondary)));\n color: var(--ts-dropdown-text, var(--foreground));\n padding:\n var(--uzi-control-padding-y)\n var(--uzi-control-padding-x-compact)\n var(--uzi-control-padding-y)\n var(--uzi-control-padding-x);\n font-size: var(--uzi-control-font-size);\n line-height: var(--uzi-control-line-height);\n font-family: inherit;\n font-weight: 500;\n box-shadow: var(--uzi-control-shadow);\n transition:\n border-color 0.15s ease,\n background 0.15s ease,\n color 0.15s ease,\n box-shadow 0.15s ease;\n cursor: pointer;\n text-align: left;\n}\n\n.value {\n min-width: 0;\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.trigger:hover:not(:disabled) {\n border-color: var(--ts-dropdown-accent, var(--accent));\n box-shadow: var(--uzi-control-shadow-hover);\n}\n\n.trigger:focus-visible {\n border-color: var(--ts-dropdown-accent, var(--primary));\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n box-shadow: 0 0 0 1px color-mix(in srgb, var(--primary) 30%, transparent);\n}\n\n.trigger[data-placeholder] {\n color: var(--muted-foreground);\n}\n\n.trigger:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n box-shadow: none;\n}\n\n.chevron {\n width: 10px;\n height: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--muted-foreground);\n flex-shrink: 0;\n position: relative;\n top: -1px;\n transition: transform 0.15s ease, color 0.15s ease;\n}\n\n.chevron svg {\n display: block;\n}\n\n.trigger:hover:not(:disabled) .chevron,\n.trigger[data-state=\"open\"] .chevron {\n color: var(--ts-dropdown-text, var(--foreground));\n}\n\n.trigger[data-state=\"open\"] .chevron {\n transform: rotate(180deg);\n}\n\n.content {\n z-index: var(--uzi-popover-z-index, 1100);\n min-width: var(--radix-select-trigger-width);\n max-height: min(18rem, var(--radix-select-content-available-height));\n overflow: hidden;\n border: 1px solid var(--ts-menu-border, var(--border));\n border-radius: var(--uzi-menu-radius);\n background: var(--ts-menu-bg, var(--popover));\n color: var(--ts-menu-fg, var(--popover-foreground));\n padding: var(--uzi-menu-padding);\n box-shadow: var(--uzi-menu-shadow);\n animation: selectFadeIn 140ms ease;\n}\n\n.viewport {\n max-height: inherit;\n overflow-y: auto;\n}\n\n.item {\n position: relative;\n display: flex;\n width: 100%;\n cursor: default;\n user-select: none;\n align-items: center;\n gap: var(--uzi-menu-item-gap);\n border-radius: var(--uzi-menu-item-radius);\n padding:\n var(--uzi-menu-item-padding-y)\n var(--uzi-menu-item-padding-x)\n var(--uzi-menu-item-padding-y)\n 2rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n outline: none;\n}\n\n.item[data-highlighted] {\n background: var(--ts-menu-hover-bg, var(--accent));\n color: var(--ts-menu-hover-fg, var(--accent-foreground));\n}\n\n.item[data-disabled] {\n pointer-events: none;\n opacity: 0.5;\n}\n\n.item[data-state=\"checked\"] {\n color: var(--primary);\n}\n\n.indicator {\n position: absolute;\n left: 0.625rem;\n display: inline-flex;\n width: 1rem;\n height: 1rem;\n align-items: center;\n justify-content: center;\n color: currentColor;\n}\n\n.indicatorIcon {\n display: block;\n}\n\n@keyframes selectFadeIn {\n from {\n opacity: 0;\n transform: translateY(-4px) scale(0.98);\n }\n\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"index29.cjs","names":[],"sources":["../src/components/select/select.module.css"],"sourcesContent":[".wrapper {\n position: relative;\n display: inline-flex;\n min-width: 0;\n max-width: 100%;\n}\n\n.wrapperFullWidth {\n width: 100%;\n}\n\n.wrapper:not(.wrapperFullWidth) .trigger {\n width: auto;\n}\n\n.trigger {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.625rem;\n width: 100%;\n min-width: 0;\n min-height: var(--uzi-control-min-height);\n border-radius: var(--uzi-control-radius);\n border: 1px solid var(--ts-dropdown-border, var(--border));\n background: var(--ts-dropdown-bg, var(--panel));\n color: var(--ts-dropdown-text, var(--foreground));\n padding:\n var(--uzi-control-padding-y)\n var(--uzi-control-padding-x-compact)\n var(--uzi-control-padding-y)\n var(--uzi-control-padding-x);\n font-size: var(--uzi-control-font-size);\n line-height: var(--uzi-control-line-height);\n font-family: inherit;\n font-weight: 500;\n box-shadow: var(--uzi-control-shadow);\n transition:\n border-color 0.15s ease,\n background 0.15s ease,\n color 0.15s ease,\n box-shadow 0.15s ease;\n cursor: pointer;\n text-align: left;\n}\n\n.value {\n min-width: 0;\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.trigger:hover:not(:disabled) {\n border-color: var(--ts-dropdown-accent, var(--accent));\n box-shadow: var(--uzi-control-shadow-hover);\n}\n\n.trigger:focus-visible {\n border-color: var(--ts-dropdown-accent, var(--primary));\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n box-shadow: 0 0 0 1px color-mix(in srgb, var(--primary) 30%, transparent);\n}\n\n.trigger[data-placeholder] {\n color: var(--muted-foreground);\n}\n\n.trigger:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n box-shadow: none;\n}\n\n.chevron {\n width: 10px;\n height: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--muted-foreground);\n flex-shrink: 0;\n position: relative;\n top: -1px;\n transition: transform 0.15s ease, color 0.15s ease;\n}\n\n.chevron svg {\n display: block;\n}\n\n.trigger:hover:not(:disabled) .chevron,\n.trigger[data-state=\"open\"] .chevron {\n color: var(--ts-dropdown-text, var(--foreground));\n}\n\n.trigger[data-state=\"open\"] .chevron {\n transform: rotate(180deg);\n}\n\n.content {\n z-index: var(--uzi-popover-z-index, 1100);\n min-width: var(--radix-select-trigger-width);\n max-height: min(18rem, var(--radix-select-content-available-height));\n overflow: hidden;\n border: 1px solid var(--ts-menu-border, var(--border));\n border-radius: var(--uzi-menu-radius);\n background: var(--ts-menu-bg, var(--popover));\n color: var(--ts-menu-fg, var(--popover-foreground));\n padding: var(--uzi-menu-padding);\n box-shadow: var(--uzi-menu-shadow);\n animation: selectFadeIn 140ms ease;\n}\n\n.viewport {\n max-height: inherit;\n overflow-y: auto;\n}\n\n.item {\n position: relative;\n display: flex;\n width: 100%;\n cursor: default;\n user-select: none;\n align-items: center;\n gap: var(--uzi-menu-item-gap);\n border-radius: var(--uzi-menu-item-radius);\n padding:\n var(--uzi-menu-item-padding-y)\n var(--uzi-menu-item-padding-x)\n var(--uzi-menu-item-padding-y)\n 2rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n outline: none;\n}\n\n.item[data-highlighted] {\n background: var(--ts-menu-hover-bg, var(--accent));\n color: var(--ts-menu-hover-fg, var(--accent-foreground));\n}\n\n.item[data-disabled] {\n pointer-events: none;\n opacity: 0.5;\n}\n\n.item[data-state=\"checked\"] {\n color: var(--primary);\n}\n\n.indicator {\n position: absolute;\n left: 0.625rem;\n display: inline-flex;\n width: 1rem;\n height: 1rem;\n align-items: center;\n justify-content: center;\n color: currentColor;\n}\n\n.indicatorIcon {\n display: block;\n}\n\n@keyframes selectFadeIn {\n from {\n opacity: 0;\n transform: translateY(-4px) scale(0.98);\n }\n\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"index29.cjs","names":[],"sources":["../src/components/select/select.module.css"],"sourcesContent":[".wrapper {\n position: relative;\n display: inline-flex;\n min-width: 0;\n max-width: 100%;\n}\n\n.wrapperFullWidth {\n width: 100%;\n}\n\n.wrapper:not(.wrapperFullWidth) .trigger {\n width: auto;\n}\n\n.trigger {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.625rem;\n width: 100%;\n min-width: 0;\n min-height: var(--uzi-control-min-height);\n border-radius: var(--uzi-control-radius);\n border: 1px solid var(--ts-dropdown-border, var(--border));\n background: var(--ts-dropdown-bg, var(--uzi-surface-2, var(--secondary)));\n color: var(--ts-dropdown-text, var(--foreground));\n padding:\n var(--uzi-control-padding-y)\n var(--uzi-control-padding-x-compact)\n var(--uzi-control-padding-y)\n var(--uzi-control-padding-x);\n font-size: var(--uzi-control-font-size);\n line-height: var(--uzi-control-line-height);\n font-family: inherit;\n font-weight: 500;\n box-shadow: var(--uzi-control-shadow);\n transition:\n border-color 0.15s ease,\n background 0.15s ease,\n color 0.15s ease,\n box-shadow 0.15s ease;\n cursor: pointer;\n text-align: left;\n}\n\n.value {\n min-width: 0;\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.trigger:hover:not(:disabled) {\n border-color: var(--ts-dropdown-accent, var(--accent));\n box-shadow: var(--uzi-control-shadow-hover);\n}\n\n.trigger:focus-visible {\n border-color: var(--ts-dropdown-accent, var(--primary));\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n box-shadow: 0 0 0 1px color-mix(in srgb, var(--primary) 30%, transparent);\n}\n\n.trigger[data-placeholder] {\n color: var(--muted-foreground);\n}\n\n.trigger:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n box-shadow: none;\n}\n\n.chevron {\n width: 10px;\n height: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--muted-foreground);\n flex-shrink: 0;\n position: relative;\n top: -1px;\n transition: transform 0.15s ease, color 0.15s ease;\n}\n\n.chevron svg {\n display: block;\n}\n\n.trigger:hover:not(:disabled) .chevron,\n.trigger[data-state=\"open\"] .chevron {\n color: var(--ts-dropdown-text, var(--foreground));\n}\n\n.trigger[data-state=\"open\"] .chevron {\n transform: rotate(180deg);\n}\n\n.content {\n z-index: var(--uzi-popover-z-index, 1100);\n min-width: var(--radix-select-trigger-width);\n max-height: min(18rem, var(--radix-select-content-available-height));\n overflow: hidden;\n border: 1px solid var(--ts-menu-border, var(--border));\n border-radius: var(--uzi-menu-radius);\n background: var(--ts-menu-bg, var(--popover));\n color: var(--ts-menu-fg, var(--popover-foreground));\n padding: var(--uzi-menu-padding);\n box-shadow: var(--uzi-menu-shadow);\n animation: selectFadeIn 140ms ease;\n}\n\n.viewport {\n max-height: inherit;\n overflow-y: auto;\n}\n\n.item {\n position: relative;\n display: flex;\n width: 100%;\n cursor: default;\n user-select: none;\n align-items: center;\n gap: var(--uzi-menu-item-gap);\n border-radius: var(--uzi-menu-item-radius);\n padding:\n var(--uzi-menu-item-padding-y)\n var(--uzi-menu-item-padding-x)\n var(--uzi-menu-item-padding-y)\n 2rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n outline: none;\n}\n\n.item[data-highlighted] {\n background: var(--ts-menu-hover-bg, var(--accent));\n color: var(--ts-menu-hover-fg, var(--accent-foreground));\n}\n\n.item[data-disabled] {\n pointer-events: none;\n opacity: 0.5;\n}\n\n.item[data-state=\"checked\"] {\n color: var(--primary);\n}\n\n.indicator {\n position: absolute;\n left: 0.625rem;\n display: inline-flex;\n width: 1rem;\n height: 1rem;\n align-items: center;\n justify-content: center;\n color: currentColor;\n}\n\n.indicatorIcon {\n display: block;\n}\n\n@keyframes selectFadeIn {\n from {\n opacity: 0;\n transform: translateY(-4px) scale(0.98);\n }\n\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"index4.js","names":[],"sources":["../src/components/button/button.module.css"],"sourcesContent":[".button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n font-family: inherit;\n font-weight: 600;\n border-radius: 8px;\n border: 1px solid transparent;\n cursor: pointer;\n text-decoration: none;\n transition:\n opacity 0.15s,\n border-color 0.15s,\n color 0.15s,\n background 0.15s;\n white-space: nowrap;\n line-height: 1;\n}\n\n.button:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.button svg {\n width: 1rem;\n height: 1rem;\n flex-shrink: 0;\n}\n\n.button:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n\n/* Sizes */\n.sizeSm {\n font-size: 0.82rem;\n min-height: 2rem;\n padding: 6px 14px;\n}\n\n.sizeMd {\n font-size: 0.95rem;\n min-height: 2.25rem;\n padding: 10px 22px;\n}\n\n.sizeLg {\n font-size: 1rem;\n min-height: 2.5rem;\n padding: 12px 28px;\n}\n\n.sizeIcon {\n width: 2.25rem;\n height: 2.25rem;\n padding: 0;\n}\n\n/* Variants */\n.variantPrimary {\n background: var(--ts-btn-primary-bg, var(--primary));\n color: var(--ts-btn-primary-text, var(--primary-foreground));\n}\n\n.variantPrimary:hover:not(:disabled) {\n opacity: 0.88;\n}\n\n.variantSecondary {\n background: var(--ts-btn-secondary-bg, var(--secondary));\n color: var(--ts-btn-secondary-text, var(--secondary-foreground));\n border-color: var(--ts-btn-secondary-border, var(--border));\n}\n\n.variantSecondary:hover:not(:disabled) {\n background: var(--ts-btn-secondary-hover-bg, color-mix(in srgb, var(--secondary) 90%, black));\n}\n\n.variantOutline {\n background: var(--ts-btn-outline-bg, var(--background));\n color: var(--ts-btn-outline-text, var(--foreground));\n border-color: var(--ts-btn-outline-border, var(--border));\n}\n\n.variantOutline:hover:not(:disabled) {\n background: var(--ts-btn-outline-hover-bg, var(--accent));\n color: var(--ts-btn-outline-hover-text, var(--accent-foreground));\n}\n\n.variantGhost {\n background: transparent;\n color: var(--ts-btn-ghost-text, var(--muted-foreground));\n padding-left: 8px;\n padding-right: 8px;\n}\n\n.variantGhost:hover:not(:disabled) {\n background: var(--ts-btn-ghost-hover-bg, var(--accent));\n color: var(--ts-btn-ghost-hover-text, var(--accent-foreground));\n}\n\n.variantDestructive {\n background: var(--ts-btn-danger-bg, var(--destructive));\n color: var(--ts-btn-danger-text, var(--destructive-foreground));\n}\n\n.variantDestructive:hover:not(:disabled) {\n opacity: 0.9;\n}\n\n.variantLink {\n background: transparent;\n color: var(--ts-btn-link-text, var(--primary));\n border-color: transparent;\n min-height: auto;\n padding: 0;\n border-radius: 0;\n}\n\n.variantLink:hover:not(:disabled) {\n text-decoration: underline;\n text-underline-offset: 0.2em;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"index4.js","names":[],"sources":["../src/components/button/button.module.css"],"sourcesContent":[".button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n font-family: inherit;\n font-weight: 600;\n border-radius: 8px;\n border: 1px solid transparent;\n cursor: pointer;\n text-decoration: none;\n transition:\n opacity 0.15s,\n border-color 0.15s,\n color 0.15s,\n background 0.15s;\n white-space: nowrap;\n line-height: 1;\n}\n\n.button:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.button svg {\n width: 1rem;\n height: 1rem;\n flex-shrink: 0;\n}\n\n.button:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n\n/* Sizes */\n.sizeSm {\n font-size: 0.82rem;\n min-height: 2rem;\n padding: 6px 14px;\n}\n\n.sizeMd {\n font-size: 0.95rem;\n min-height: 2.25rem;\n padding: 10px 22px;\n}\n\n.sizeLg {\n font-size: 1rem;\n min-height: 2.5rem;\n padding: 12px 28px;\n}\n\n.sizeIcon {\n width: 2.25rem;\n height: 2.25rem;\n padding: 0;\n}\n\n/* Variants */\n.variantPrimary {\n background: var(--ts-btn-primary-bg, var(--primary));\n color: var(--ts-btn-primary-text, var(--primary-foreground));\n}\n\n.variantPrimary:hover:not(:disabled) {\n opacity: 0.88;\n}\n\n.variantSecondary {\n background: var(--ts-btn-secondary-bg, var(--secondary));\n color: var(--ts-btn-secondary-text, var(--secondary-foreground));\n border-color: var(--ts-btn-secondary-border, var(--border));\n}\n\n.variantSecondary:hover:not(:disabled) {\n background: var(--ts-btn-secondary-hover-bg, color-mix(in srgb, var(--secondary) 90%, black));\n}\n\n.variantOutline {\n background: var(--ts-btn-outline-bg, transparent);\n color: var(--ts-btn-outline-text, var(--foreground));\n border-color: var(--ts-btn-outline-border, var(--border));\n}\n\n.variantOutline:hover:not(:disabled) {\n background: var(--ts-btn-outline-hover-bg, var(--accent));\n color: var(--ts-btn-outline-hover-text, var(--accent-foreground));\n}\n\n.variantGhost {\n background: transparent;\n color: var(--ts-btn-ghost-text, var(--muted-foreground));\n padding-left: 8px;\n padding-right: 8px;\n}\n\n.variantGhost:hover:not(:disabled) {\n background: var(--ts-btn-ghost-hover-bg, var(--accent));\n color: var(--ts-btn-ghost-hover-text, var(--accent-foreground));\n}\n\n.variantDestructive {\n background: var(--ts-btn-danger-bg, var(--destructive));\n color: var(--ts-btn-danger-text, var(--destructive-foreground));\n}\n\n.variantDestructive:hover:not(:disabled) {\n opacity: 0.9;\n}\n\n.variantLink {\n background: transparent;\n color: var(--ts-btn-link-text, var(--primary));\n border-color: transparent;\n min-height: auto;\n padding: 0;\n border-radius: 0;\n}\n\n.variantLink:hover:not(:disabled) {\n text-decoration: underline;\n text-underline-offset: 0.2em;\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"index5.cjs","names":[],"sources":["../src/components/button/button.module.css"],"sourcesContent":[".button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n font-family: inherit;\n font-weight: 600;\n border-radius: 8px;\n border: 1px solid transparent;\n cursor: pointer;\n text-decoration: none;\n transition:\n opacity 0.15s,\n border-color 0.15s,\n color 0.15s,\n background 0.15s;\n white-space: nowrap;\n line-height: 1;\n}\n\n.button:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.button svg {\n width: 1rem;\n height: 1rem;\n flex-shrink: 0;\n}\n\n.button:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n\n/* Sizes */\n.sizeSm {\n font-size: 0.82rem;\n min-height: 2rem;\n padding: 6px 14px;\n}\n\n.sizeMd {\n font-size: 0.95rem;\n min-height: 2.25rem;\n padding: 10px 22px;\n}\n\n.sizeLg {\n font-size: 1rem;\n min-height: 2.5rem;\n padding: 12px 28px;\n}\n\n.sizeIcon {\n width: 2.25rem;\n height: 2.25rem;\n padding: 0;\n}\n\n/* Variants */\n.variantPrimary {\n background: var(--ts-btn-primary-bg, var(--primary));\n color: var(--ts-btn-primary-text, var(--primary-foreground));\n}\n\n.variantPrimary:hover:not(:disabled) {\n opacity: 0.88;\n}\n\n.variantSecondary {\n background: var(--ts-btn-secondary-bg, var(--secondary));\n color: var(--ts-btn-secondary-text, var(--secondary-foreground));\n border-color: var(--ts-btn-secondary-border, var(--border));\n}\n\n.variantSecondary:hover:not(:disabled) {\n background: var(--ts-btn-secondary-hover-bg, color-mix(in srgb, var(--secondary) 90%, black));\n}\n\n.variantOutline {\n background: var(--ts-btn-outline-bg, var(--background));\n color: var(--ts-btn-outline-text, var(--foreground));\n border-color: var(--ts-btn-outline-border, var(--border));\n}\n\n.variantOutline:hover:not(:disabled) {\n background: var(--ts-btn-outline-hover-bg, var(--accent));\n color: var(--ts-btn-outline-hover-text, var(--accent-foreground));\n}\n\n.variantGhost {\n background: transparent;\n color: var(--ts-btn-ghost-text, var(--muted-foreground));\n padding-left: 8px;\n padding-right: 8px;\n}\n\n.variantGhost:hover:not(:disabled) {\n background: var(--ts-btn-ghost-hover-bg, var(--accent));\n color: var(--ts-btn-ghost-hover-text, var(--accent-foreground));\n}\n\n.variantDestructive {\n background: var(--ts-btn-danger-bg, var(--destructive));\n color: var(--ts-btn-danger-text, var(--destructive-foreground));\n}\n\n.variantDestructive:hover:not(:disabled) {\n opacity: 0.9;\n}\n\n.variantLink {\n background: transparent;\n color: var(--ts-btn-link-text, var(--primary));\n border-color: transparent;\n min-height: auto;\n padding: 0;\n border-radius: 0;\n}\n\n.variantLink:hover:not(:disabled) {\n text-decoration: underline;\n text-underline-offset: 0.2em;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"index5.cjs","names":[],"sources":["../src/components/button/button.module.css"],"sourcesContent":[".button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n font-family: inherit;\n font-weight: 600;\n border-radius: 8px;\n border: 1px solid transparent;\n cursor: pointer;\n text-decoration: none;\n transition:\n opacity 0.15s,\n border-color 0.15s,\n color 0.15s,\n background 0.15s;\n white-space: nowrap;\n line-height: 1;\n}\n\n.button:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.button svg {\n width: 1rem;\n height: 1rem;\n flex-shrink: 0;\n}\n\n.button:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n\n/* Sizes */\n.sizeSm {\n font-size: 0.82rem;\n min-height: 2rem;\n padding: 6px 14px;\n}\n\n.sizeMd {\n font-size: 0.95rem;\n min-height: 2.25rem;\n padding: 10px 22px;\n}\n\n.sizeLg {\n font-size: 1rem;\n min-height: 2.5rem;\n padding: 12px 28px;\n}\n\n.sizeIcon {\n width: 2.25rem;\n height: 2.25rem;\n padding: 0;\n}\n\n/* Variants */\n.variantPrimary {\n background: var(--ts-btn-primary-bg, var(--primary));\n color: var(--ts-btn-primary-text, var(--primary-foreground));\n}\n\n.variantPrimary:hover:not(:disabled) {\n opacity: 0.88;\n}\n\n.variantSecondary {\n background: var(--ts-btn-secondary-bg, var(--secondary));\n color: var(--ts-btn-secondary-text, var(--secondary-foreground));\n border-color: var(--ts-btn-secondary-border, var(--border));\n}\n\n.variantSecondary:hover:not(:disabled) {\n background: var(--ts-btn-secondary-hover-bg, color-mix(in srgb, var(--secondary) 90%, black));\n}\n\n.variantOutline {\n background: var(--ts-btn-outline-bg, transparent);\n color: var(--ts-btn-outline-text, var(--foreground));\n border-color: var(--ts-btn-outline-border, var(--border));\n}\n\n.variantOutline:hover:not(:disabled) {\n background: var(--ts-btn-outline-hover-bg, var(--accent));\n color: var(--ts-btn-outline-hover-text, var(--accent-foreground));\n}\n\n.variantGhost {\n background: transparent;\n color: var(--ts-btn-ghost-text, var(--muted-foreground));\n padding-left: 8px;\n padding-right: 8px;\n}\n\n.variantGhost:hover:not(:disabled) {\n background: var(--ts-btn-ghost-hover-bg, var(--accent));\n color: var(--ts-btn-ghost-hover-text, var(--accent-foreground));\n}\n\n.variantDestructive {\n background: var(--ts-btn-danger-bg, var(--destructive));\n color: var(--ts-btn-danger-text, var(--destructive-foreground));\n}\n\n.variantDestructive:hover:not(:disabled) {\n opacity: 0.9;\n}\n\n.variantLink {\n background: transparent;\n color: var(--ts-btn-link-text, var(--primary));\n border-color: transparent;\n min-height: auto;\n padding: 0;\n border-radius: 0;\n}\n\n.variantLink:hover:not(:disabled) {\n text-decoration: underline;\n text-underline-offset: 0.2em;\n}\n"],"mappings":""}
@@ -0,0 +1,65 @@
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 ai_chat_module_default = {
32
+ container,
33
+ scope,
34
+ scopeLabel,
35
+ scopeHelp,
36
+ closeBtn,
37
+ sendButton,
38
+ errorActions,
39
+ historyLimit,
40
+ thread,
41
+ viewport,
42
+ chatToolbar,
43
+ messageList,
44
+ userMessage,
45
+ assistantMessage,
46
+ textPart,
47
+ reasoning,
48
+ toolPart,
49
+ reasoningSummary,
50
+ reasoningText,
51
+ sources,
52
+ sourcesLabel,
53
+ data,
54
+ structuredData,
55
+ footer,
56
+ composerForm,
57
+ input,
58
+ status,
59
+ error,
60
+ emptyState
61
+ };
62
+ //#endregion
63
+ export { assistantMessage, chatToolbar, closeBtn, composerForm, container, data, ai_chat_module_default as default, emptyState, error, errorActions, footer, historyLimit, input, messageList, reasoning, reasoningSummary, reasoningText, scope, scopeHelp, scopeLabel, sendButton, sources, sourcesLabel, status, structuredData, textPart, thread, toolPart, userMessage, viewport };
64
+
65
+ //# 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: 18rem;\n max-height: 48rem;\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"],"mappings":""}
@@ -0,0 +1,94 @@
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 ai_chat_module_default = {
32
+ container,
33
+ scope,
34
+ scopeLabel,
35
+ scopeHelp,
36
+ closeBtn,
37
+ sendButton,
38
+ errorActions,
39
+ historyLimit,
40
+ thread,
41
+ viewport,
42
+ chatToolbar,
43
+ messageList,
44
+ userMessage,
45
+ assistantMessage,
46
+ textPart,
47
+ reasoning,
48
+ toolPart,
49
+ reasoningSummary,
50
+ reasoningText,
51
+ sources,
52
+ sourcesLabel,
53
+ data,
54
+ structuredData,
55
+ footer,
56
+ composerForm,
57
+ input,
58
+ status,
59
+ error,
60
+ emptyState
61
+ };
62
+ //#endregion
63
+ exports.assistantMessage = assistantMessage;
64
+ exports.chatToolbar = chatToolbar;
65
+ exports.closeBtn = closeBtn;
66
+ exports.composerForm = composerForm;
67
+ exports.container = container;
68
+ exports.data = data;
69
+ exports.default = ai_chat_module_default;
70
+ exports.emptyState = emptyState;
71
+ exports.error = error;
72
+ exports.errorActions = errorActions;
73
+ exports.footer = footer;
74
+ exports.historyLimit = historyLimit;
75
+ exports.input = input;
76
+ exports.messageList = messageList;
77
+ exports.reasoning = reasoning;
78
+ exports.reasoningSummary = reasoningSummary;
79
+ exports.reasoningText = reasoningText;
80
+ exports.scope = scope;
81
+ exports.scopeHelp = scopeHelp;
82
+ exports.scopeLabel = scopeLabel;
83
+ exports.sendButton = sendButton;
84
+ exports.sources = sources;
85
+ exports.sourcesLabel = sourcesLabel;
86
+ exports.status = status;
87
+ exports.structuredData = structuredData;
88
+ exports.textPart = textPart;
89
+ exports.thread = thread;
90
+ exports.toolPart = toolPart;
91
+ exports.userMessage = userMessage;
92
+ exports.viewport = viewport;
93
+
94
+ //# sourceMappingURL=index76.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index76.cjs","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: 18rem;\n max-height: 48rem;\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"],"mappings":""}