@pollinations/ui 0.1.0-alpha.1 → 0.1.0-alpha.3
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 +137 -36
- package/dist/Button-CO3Dpbkj.d.cts +29 -0
- package/dist/Button-CO3Dpbkj.d.ts +29 -0
- package/dist/Chip-v-ADv6cz.d.cts +18 -0
- package/dist/Chip-v-ADv6cz.d.ts +18 -0
- package/dist/Dialog-yXzIFrDg.d.cts +63 -0
- package/dist/Dialog-yXzIFrDg.d.ts +63 -0
- package/dist/app-user-menu/sdk.cjs +631 -235
- package/dist/app-user-menu/sdk.cjs.map +1 -1
- package/dist/app-user-menu/sdk.d.cts +6 -7
- package/dist/app-user-menu/sdk.d.ts +6 -7
- package/dist/app-user-menu/sdk.js +639 -236
- package/dist/app-user-menu/sdk.js.map +1 -1
- package/dist/app.css +6 -122
- package/dist/auth/index.cjs +1346 -76
- package/dist/auth/index.cjs.map +1 -1
- package/dist/auth/index.d.cts +88 -6
- package/dist/auth/index.d.ts +88 -6
- package/dist/auth/index.js +1343 -75
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/sdk.cjs +239 -0
- package/dist/auth/sdk.cjs.map +1 -0
- package/dist/auth/sdk.d.cts +40 -0
- package/dist/auth/sdk.d.ts +40 -0
- package/dist/auth/sdk.js +208 -0
- package/dist/auth/sdk.js.map +1 -0
- package/dist/brand/lockup-horizontal-black.png +0 -0
- package/dist/brand/lockup-horizontal-black.svg +4 -0
- package/dist/brand/lockup-horizontal-white.png +0 -0
- package/dist/brand/lockup-horizontal-white.svg +4 -0
- package/dist/brand/lockup-horizontal.svg +1 -0
- package/dist/brand/lockup-stacked-black.png +0 -0
- package/dist/brand/lockup-stacked-black.svg +4 -0
- package/dist/brand/lockup-stacked-white.png +0 -0
- package/dist/brand/lockup-stacked-white.svg +4 -0
- package/dist/brand/lockup-stacked.svg +4 -0
- package/dist/brand/mark-black.png +0 -0
- package/dist/brand/mark-black.svg +3 -0
- package/dist/brand/mark-white.png +0 -0
- package/dist/brand/mark-white.svg +3 -0
- package/dist/brand/mark.svg +1 -0
- package/dist/brand/polli/polli-lockup-horizontal-black.png +0 -0
- package/dist/brand/polli/polli-lockup-horizontal-white.png +0 -0
- package/dist/brand/polli/polli-lockup-stacked-black.png +0 -0
- package/dist/brand/polli/polli-lockup-stacked-white.png +0 -0
- package/dist/brand/polli/polli.png +0 -0
- package/dist/brand/wordmark-black.png +0 -0
- package/dist/brand/wordmark-black.svg +1 -0
- package/dist/brand/wordmark-white.png +0 -0
- package/dist/brand/wordmark-white.svg +1 -0
- package/dist/brand/wordmark.svg +1 -0
- package/dist/fonts/geist-pixel-square.woff2 +0 -0
- package/dist/gen/index.cjs +395 -214
- package/dist/gen/index.cjs.map +1 -1
- package/dist/gen/index.d.cts +64 -19
- package/dist/gen/index.d.ts +64 -19
- package/dist/gen/index.js +391 -212
- package/dist/gen/index.js.map +1 -1
- package/dist/index.browser.min.js +2 -0
- package/dist/index.browser.min.js.map +1 -0
- package/dist/index.cjs +3464 -1559
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +498 -174
- package/dist/index.d.ts +498 -174
- package/dist/index.js +3518 -1671
- package/dist/index.js.map +1 -1
- package/dist/licenses/Geist-OFL.txt +93 -0
- package/dist/markdown.cjs +821 -0
- package/dist/markdown.cjs.map +1 -0
- package/dist/markdown.d.cts +16 -0
- package/dist/markdown.d.ts +16 -0
- package/dist/markdown.js +792 -0
- package/dist/markdown.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/theme.css +92 -0
- package/dist/wallet/index.cjs +255 -42
- package/dist/wallet/index.cjs.map +1 -1
- package/dist/wallet/index.d.cts +29 -7
- package/dist/wallet/index.d.ts +29 -7
- package/dist/wallet/index.js +254 -42
- package/dist/wallet/index.js.map +1 -1
- package/package.json +106 -89
- package/dist/Chip-CQCq34kS.d.cts +0 -20
- package/dist/Chip-Cj4xG7Te.d.ts +0 -20
- package/dist/assets/logo-wordmark.svg +0 -1
- package/dist/assets/logo.svg +0 -4
- package/dist/theme-jRPPBmld.d.cts +0 -20
- package/dist/theme-jRPPBmld.d.ts +0 -20
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,58 @@
|
|
|
1
|
-
import * as react from 'react';
|
|
2
|
-
import { FC, ComponentPropsWithoutRef, ReactNode, RefObject, ButtonHTMLAttributes, PropsWithChildren, CSSProperties, ElementType } from 'react';
|
|
3
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
import * as react from 'react';
|
|
3
|
+
import { ReactNode, CSSProperties, FC, ComponentPropsWithoutRef, RefObject, ButtonHTMLAttributes, PropsWithChildren, ComponentType, ElementType } from 'react';
|
|
4
|
+
import { S as ScrollAreaProps, D as DialogProps } from './Dialog-yXzIFrDg.js';
|
|
5
|
+
export { a as Dialog, b as DialogBody, c as DialogBodyProps, d as DialogDescription, e as DialogFooter, f as DialogFooterProps, g as DialogHeader, h as DialogHeaderProps, i as DialogTitle, j as ScrollArea } from './Dialog-yXzIFrDg.js';
|
|
6
|
+
import { B as ButtonProps, a as ButtonAppearance } from './Button-CO3Dpbkj.js';
|
|
7
|
+
export { b as Button } from './Button-CO3Dpbkj.js';
|
|
8
|
+
export { C as Chip } from './Chip-v-ADv6cz.js';
|
|
8
9
|
export { Field } from '@ark-ui/react/field';
|
|
10
|
+
import '@ark-ui/react/dialog';
|
|
9
11
|
|
|
10
|
-
type
|
|
11
|
-
|
|
12
|
+
type DropdownProps = {
|
|
13
|
+
/** Trigger element; receives the current open state (e.g. to rotate a chevron). */
|
|
14
|
+
trigger: (open: boolean) => ReactNode;
|
|
15
|
+
/** Panel content. As a function, receives `close` to dismiss after a selection. */
|
|
16
|
+
children: ReactNode | ((close: () => void) => ReactNode);
|
|
17
|
+
/** Panel placement relative to the trigger. */
|
|
18
|
+
align?: "start" | "end";
|
|
19
|
+
side?: "top" | "bottom";
|
|
20
|
+
/** Controlled open state. Omit to let the Dropdown manage its own. */
|
|
21
|
+
open?: boolean;
|
|
22
|
+
/** Render inside the parent dialog so its focus and accessibility scope includes the menu. */
|
|
23
|
+
portalled?: boolean;
|
|
24
|
+
onOpenChange?: (open: boolean) => void;
|
|
25
|
+
/** Appended after the surface (widths, padding, max-height…). */
|
|
26
|
+
className?: string;
|
|
27
|
+
/** Theme variables for portaled content that cannot inherit from its trigger. */
|
|
28
|
+
panelStyle?: CSSProperties;
|
|
29
|
+
};
|
|
30
|
+
declare const Dropdown: FC<DropdownProps>;
|
|
31
|
+
|
|
32
|
+
type AccountIdentityProps = {
|
|
33
|
+
name: string;
|
|
34
|
+
avatarUrl?: string | null;
|
|
35
|
+
secondaryContent?: ReactNode;
|
|
36
|
+
/** Optional dashboard destination, owned by the caller. Opens in a new tab. */
|
|
37
|
+
dashboardHref?: string;
|
|
38
|
+
className?: string;
|
|
39
|
+
};
|
|
40
|
+
declare function AccountIdentity({ name, avatarUrl, secondaryContent, dashboardHref, className, }: AccountIdentityProps): react_jsx_runtime.JSX.Element;
|
|
41
|
+
type AccountMenuProps = AccountIdentityProps & {
|
|
42
|
+
/** The caller owns navigation, permissions and sign-out behavior. */
|
|
43
|
+
children: DropdownProps["children"];
|
|
44
|
+
menuClassName?: string;
|
|
45
|
+
side?: "top" | "bottom";
|
|
46
|
+
menuLabel?: string;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* With `dashboardHref` the avatar is a link and the name/chevron open the
|
|
50
|
+
* menu; without one the whole pill is the trigger.
|
|
51
|
+
*/
|
|
52
|
+
declare function AccountMenu({ name, avatarUrl, dashboardHref, secondaryContent, children, className, menuClassName, side, menuLabel, }: AccountMenuProps): react_jsx_runtime.JSX.Element;
|
|
53
|
+
|
|
54
|
+
type AlertIntent = "info" | "advisory" | "warning" | "danger";
|
|
55
|
+
type AlertProps = Omit<ComponentPropsWithoutRef<"div">, "title"> & {
|
|
12
56
|
intent?: AlertIntent;
|
|
13
57
|
title?: ReactNode;
|
|
14
58
|
};
|
|
@@ -28,10 +72,75 @@ type AppHeaderProps = {
|
|
|
28
72
|
};
|
|
29
73
|
declare function AppHeader({ children, navLabel, autoHide, scrollTargetRef, brandHref, brandLabel, className, innerClassName, navClassName, }: AppHeaderProps): react_jsx_runtime.JSX.Element;
|
|
30
74
|
|
|
75
|
+
type CalloutProps = {
|
|
76
|
+
title: ReactNode;
|
|
77
|
+
body: ReactNode;
|
|
78
|
+
children: ReactNode;
|
|
79
|
+
tone?: "theme" | "dark";
|
|
80
|
+
className?: string;
|
|
81
|
+
};
|
|
82
|
+
/** Prominent closing panel with a title, supporting copy, and actions. */
|
|
83
|
+
declare function Callout({ title, body, children, tone, className, }: CalloutProps): react_jsx_runtime.JSX.Element;
|
|
84
|
+
|
|
85
|
+
type ChatConversationProps = Omit<ScrollAreaProps, "children" | "className"> & {
|
|
86
|
+
children: ReactNode;
|
|
87
|
+
className?: string;
|
|
88
|
+
viewportClassName?: string;
|
|
89
|
+
showScrollButton?: boolean;
|
|
90
|
+
onScrollToBottom?: () => void;
|
|
91
|
+
scrollButtonLabel?: string;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Scrollable chat transcript with an optional jump-to-latest control.
|
|
95
|
+
* Message data and streaming remain the consumer's responsibility.
|
|
96
|
+
*/
|
|
97
|
+
declare const ChatConversation: react.ForwardRefExoticComponent<Omit<ScrollAreaProps, "className" | "children"> & {
|
|
98
|
+
children: ReactNode;
|
|
99
|
+
className?: string;
|
|
100
|
+
viewportClassName?: string;
|
|
101
|
+
showScrollButton?: boolean;
|
|
102
|
+
onScrollToBottom?: () => void;
|
|
103
|
+
scrollButtonLabel?: string;
|
|
104
|
+
} & react.RefAttributes<HTMLDivElement>>;
|
|
105
|
+
type ChatConversationContentProps = ComponentPropsWithoutRef<"div">;
|
|
106
|
+
declare function ChatConversationContent({ className, ...props }: ChatConversationContentProps): react_jsx_runtime.JSX.Element;
|
|
107
|
+
|
|
108
|
+
type ChatMessageRole = "user" | "assistant" | "system";
|
|
109
|
+
type ChatMessageProps = ComponentPropsWithoutRef<"article"> & {
|
|
110
|
+
from: ChatMessageRole;
|
|
111
|
+
};
|
|
112
|
+
/** Protocol-neutral message surface inspired by AI Elements' Message suite. */
|
|
113
|
+
declare function ChatMessage({ from, className, children, ...props }: ChatMessageProps): react_jsx_runtime.JSX.Element;
|
|
114
|
+
type ChatMessageHeaderProps = ComponentPropsWithoutRef<"header"> & {
|
|
115
|
+
from: ChatMessageRole;
|
|
116
|
+
label?: ReactNode;
|
|
117
|
+
icon?: ReactNode;
|
|
118
|
+
};
|
|
119
|
+
declare function ChatMessageHeader({ from, label, icon, className, ...props }: ChatMessageHeaderProps): react_jsx_runtime.JSX.Element;
|
|
120
|
+
type ChatMessageContentProps = ComponentPropsWithoutRef<"div">;
|
|
121
|
+
declare function ChatMessageContent({ className, ...props }: ChatMessageContentProps): react_jsx_runtime.JSX.Element;
|
|
122
|
+
type ChatMessageActionsProps = ComponentPropsWithoutRef<"footer">;
|
|
123
|
+
declare function ChatMessageActions({ className, ...props }: ChatMessageActionsProps): react_jsx_runtime.JSX.Element;
|
|
124
|
+
|
|
125
|
+
type ChatPromptInputProps = ComponentPropsWithoutRef<"fieldset">;
|
|
126
|
+
/**
|
|
127
|
+
* Composable prompt shell. Put attachments or controls before the textarea and
|
|
128
|
+
* actions in ChatPromptInputFooter; submission stays owned by the parent form.
|
|
129
|
+
*/
|
|
130
|
+
declare function ChatPromptInput({ className, ...props }: ChatPromptInputProps): react_jsx_runtime.JSX.Element;
|
|
131
|
+
declare const ChatPromptTextarea: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "ref"> & {
|
|
132
|
+
error?: boolean;
|
|
133
|
+
} & react.RefAttributes<HTMLTextAreaElement>>;
|
|
134
|
+
type ChatPromptInputFooterProps = ComponentPropsWithoutRef<"div"> & {
|
|
135
|
+
start?: ReactNode;
|
|
136
|
+
end?: ReactNode;
|
|
137
|
+
};
|
|
138
|
+
declare function ChatPromptInputFooter({ start, end, children, className, ...props }: ChatPromptInputFooterProps): react_jsx_runtime.JSX.Element;
|
|
139
|
+
|
|
31
140
|
type CodeBlockOwnProps = {
|
|
32
141
|
code: string;
|
|
33
|
-
theme?: ThemeName;
|
|
34
142
|
codeClassName?: string;
|
|
143
|
+
language?: string;
|
|
35
144
|
};
|
|
36
145
|
type CodeBlockProps = CodeBlockOwnProps & Omit<ComponentPropsWithoutRef<"div">, keyof CodeBlockOwnProps | "children">;
|
|
37
146
|
declare const CodeBlock: FC<CodeBlockProps>;
|
|
@@ -43,8 +152,11 @@ type CollapsibleProps = {
|
|
|
43
152
|
onToggle: () => void;
|
|
44
153
|
children: ReactNode;
|
|
45
154
|
disabled?: boolean;
|
|
46
|
-
/** Outer wrapper classes —
|
|
155
|
+
/** Outer wrapper classes — border, rounding, etc. Keep it bg-free if the
|
|
156
|
+
* expanded panel should stay transparent; put any fill on the trigger. */
|
|
47
157
|
wrapperClassName?: string;
|
|
158
|
+
/** Trigger/header base classes (e.g. a selected background). */
|
|
159
|
+
triggerClassName?: string;
|
|
48
160
|
/** Trigger hover classes. Defaults to `polli:hover:bg-theme-bg-active`. */
|
|
49
161
|
hoverClassName?: string;
|
|
50
162
|
/** Trigger focus classes. */
|
|
@@ -64,28 +176,142 @@ type CollapsibleProps = {
|
|
|
64
176
|
*/
|
|
65
177
|
declare const Collapsible: FC<CollapsibleProps>;
|
|
66
178
|
|
|
179
|
+
type ConfirmIntent = "danger" | "info" | "neutral" | "commit";
|
|
180
|
+
type ConfirmationDialogProps = {
|
|
181
|
+
open: boolean;
|
|
182
|
+
title: ReactNode;
|
|
183
|
+
/** Short explanation rendered as body text. */
|
|
184
|
+
description?: ReactNode;
|
|
185
|
+
/** Extra body content below the description (alerts, inputs). */
|
|
186
|
+
children?: ReactNode;
|
|
187
|
+
confirmLabel: ReactNode;
|
|
188
|
+
/** Confirm button recipe; also picks the default confirm icon. */
|
|
189
|
+
intent?: ConfirmIntent;
|
|
190
|
+
/** Override the confirm icon when the action is not a plain delete/confirm. */
|
|
191
|
+
confirmIcon?: ReactNode;
|
|
192
|
+
confirmDisabled?: boolean;
|
|
193
|
+
cancelDisabled?: boolean;
|
|
194
|
+
onConfirm: () => void;
|
|
195
|
+
onCancel: () => void;
|
|
196
|
+
size?: DialogProps["size"];
|
|
197
|
+
};
|
|
198
|
+
/** One floating Cancel + confirm action for every yes/no dialog. */
|
|
199
|
+
declare function ConfirmationDialog({ open, title, description, children, confirmLabel, intent, confirmIcon, confirmDisabled, cancelDisabled, onConfirm, onCancel, size, }: ConfirmationDialogProps): react_jsx_runtime.JSX.Element;
|
|
200
|
+
|
|
201
|
+
type ContentHeaderProps = {
|
|
202
|
+
eyebrow: ReactNode;
|
|
203
|
+
title: ReactNode;
|
|
204
|
+
subtitle?: ReactNode;
|
|
205
|
+
action?: ReactNode;
|
|
206
|
+
variant?: "page" | "section";
|
|
207
|
+
className?: string;
|
|
208
|
+
};
|
|
209
|
+
/** Shared page/section heading rhythm with an optional trailing action. */
|
|
210
|
+
declare function ContentHeader({ eyebrow, title, subtitle, action, variant, className, }: ContentHeaderProps): react_jsx_runtime.JSX.Element;
|
|
211
|
+
|
|
67
212
|
type CopyValue = string | (() => string | Promise<string>);
|
|
68
213
|
type CopyButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children" | "className" | "onClick" | "type" | "value"> & {
|
|
69
214
|
value: CopyValue;
|
|
70
215
|
children: ReactNode | ((copied: boolean) => ReactNode);
|
|
71
216
|
copiedTimeoutMs?: number;
|
|
72
217
|
tooltip?: ReactNode;
|
|
218
|
+
tooltipAlign?: "start" | "center";
|
|
219
|
+
tooltipClampToViewport?: boolean;
|
|
220
|
+
tooltipMaxWidth?: number;
|
|
73
221
|
copiedTooltip?: ReactNode;
|
|
74
222
|
tooltipClassName?: string;
|
|
75
223
|
className?: string | ((copied: boolean) => string);
|
|
224
|
+
variant?: "plain" | "button";
|
|
225
|
+
/** Button intent, used with `variant="button"`. */
|
|
226
|
+
intent?: ButtonProps<"button">["intent"];
|
|
76
227
|
onCopied?: () => void;
|
|
77
228
|
onCopyError?: (error: unknown) => void;
|
|
78
229
|
};
|
|
79
|
-
declare function CopyButton({ value, children, copiedTimeoutMs, tooltip, copiedTooltip, tooltipClassName, className, onCopied, onCopyError, ...buttonProps }: CopyButtonProps): react_jsx_runtime.JSX.Element;
|
|
230
|
+
declare function CopyButton({ value, children, copiedTimeoutMs, tooltip, tooltipAlign, tooltipClampToViewport, tooltipMaxWidth, copiedTooltip, tooltipClassName, className, variant, intent, onCopied, onCopyError, ...buttonProps }: CopyButtonProps): react_jsx_runtime.JSX.Element;
|
|
80
231
|
|
|
81
|
-
type
|
|
82
|
-
|
|
83
|
-
|
|
232
|
+
type CopyFieldProps = Pick<CopyButtonProps, "value" | "onCopied" | "onCopyError" | "copiedTimeoutMs"> & {
|
|
233
|
+
/** Accessible name, e.g. "Copy secret key". */
|
|
234
|
+
label: string;
|
|
235
|
+
/** What to show; defaults to the value itself (lists pass a truncated form). */
|
|
236
|
+
display?: ReactNode;
|
|
237
|
+
className?: string;
|
|
238
|
+
};
|
|
239
|
+
/**
|
|
240
|
+
* A value the user copies but never edits: looks like a field, behaves like a
|
|
241
|
+
* button. The whole surface copies on click; the end icon confirms.
|
|
242
|
+
*/
|
|
243
|
+
declare function CopyField({ value, label, display, className, ...copy }: CopyFieldProps): react_jsx_runtime.JSX.Element;
|
|
244
|
+
|
|
245
|
+
type InputProps = React.ComponentPropsWithoutRef<"input"> & {
|
|
246
|
+
error?: boolean;
|
|
247
|
+
hideNumberSteppers?: boolean;
|
|
248
|
+
};
|
|
249
|
+
declare const Input: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & {
|
|
250
|
+
error?: boolean;
|
|
251
|
+
hideNumberSteppers?: boolean;
|
|
252
|
+
} & react.RefAttributes<HTMLInputElement>>;
|
|
253
|
+
|
|
254
|
+
type EditableComboboxProps = Omit<InputProps, "onChange" | "value"> & {
|
|
255
|
+
value: string;
|
|
256
|
+
options: string[];
|
|
257
|
+
onChange: (value: string) => void;
|
|
258
|
+
emptyMessage?: string;
|
|
259
|
+
align?: "start" | "end";
|
|
260
|
+
open?: boolean;
|
|
261
|
+
onOpenChange?: (open: boolean) => void;
|
|
262
|
+
/** Controlled filter inputs can keep incomplete selections open. */
|
|
263
|
+
closeOnSelect?: boolean;
|
|
264
|
+
/**
|
|
265
|
+
* Content rendered inside the input shell before the text field. Enables
|
|
266
|
+
* the wrapped shell layout and replaces the standalone chevron trigger.
|
|
267
|
+
*/
|
|
268
|
+
startContent?: ReactNode;
|
|
269
|
+
/** Optional class for the suggestions panel. */
|
|
270
|
+
contentClassName?: string;
|
|
271
|
+
};
|
|
272
|
+
type EditableComboboxTokenProps = Omit<ComponentPropsWithoutRef<"button">, "children" | "type"> & {
|
|
273
|
+
label: string;
|
|
274
|
+
value: string;
|
|
275
|
+
highlighted?: boolean;
|
|
276
|
+
};
|
|
277
|
+
/** Interactive filter token intended for an EditableCombobox startContent slot. */
|
|
278
|
+
declare function EditableComboboxToken({ label, value, highlighted, className, ...buttonProps }: EditableComboboxTokenProps): react_jsx_runtime.JSX.Element;
|
|
279
|
+
declare function EditableCombobox({ value, options, onChange, emptyMessage, align, open, onOpenChange, closeOnSelect, startContent, contentClassName, className, disabled, name, placeholder, required, ...inputProps }: EditableComboboxProps): react_jsx_runtime.JSX.Element;
|
|
280
|
+
|
|
281
|
+
type ExternalLinkButtonBaseProps = {
|
|
84
282
|
size?: "sm" | "md" | "lg";
|
|
283
|
+
appearance?: ButtonAppearance;
|
|
284
|
+
intent?: ButtonProps["intent"];
|
|
285
|
+
/** Set false for another Pollinations property that should behave as product navigation. */
|
|
286
|
+
external?: boolean;
|
|
287
|
+
showIcon?: boolean;
|
|
288
|
+
/** Leading icon, rendered before the label. */
|
|
289
|
+
icon?: ReactNode;
|
|
85
290
|
className?: string;
|
|
86
291
|
children: ReactNode;
|
|
87
292
|
};
|
|
88
|
-
|
|
293
|
+
type ExternalLinkButtonAnchorProps = ExternalLinkButtonBaseProps & {
|
|
294
|
+
href: string;
|
|
295
|
+
} & Omit<ComponentPropsWithoutRef<"a">, "children" | "className" | "href">;
|
|
296
|
+
type ExternalLinkButtonNativeButtonProps = ExternalLinkButtonBaseProps & Omit<ComponentPropsWithoutRef<"button">, "children" | "className">;
|
|
297
|
+
type ExternalLinkButtonProps = ExternalLinkButtonAnchorProps | ExternalLinkButtonNativeButtonProps;
|
|
298
|
+
/** Primary flow actions such as checkout or authorization. Use InlineLink for navigation. */
|
|
299
|
+
declare function ExternalLinkButton(props: ExternalLinkButtonProps): react_jsx_runtime.JSX.Element;
|
|
300
|
+
|
|
301
|
+
type FieldStackProps = {
|
|
302
|
+
/** Omit for a self-describing control; label the input itself. */
|
|
303
|
+
label?: ReactNode;
|
|
304
|
+
children: ReactNode;
|
|
305
|
+
helper?: ReactNode;
|
|
306
|
+
action?: ReactNode;
|
|
307
|
+
error?: ReactNode;
|
|
308
|
+
alignLabelRow?: boolean;
|
|
309
|
+
className?: string;
|
|
310
|
+
labelClassName?: string;
|
|
311
|
+
helperClassName?: string;
|
|
312
|
+
errorClassName?: string;
|
|
313
|
+
};
|
|
314
|
+
declare function FieldStack({ label, children, helper, action, error, alignLabelRow, className, labelClassName, helperClassName, errorClassName, }: FieldStackProps): react_jsx_runtime.JSX.Element;
|
|
89
315
|
|
|
90
316
|
type RejectReason = "type" | "size" | "count";
|
|
91
317
|
type RejectedFile = {
|
|
@@ -103,13 +329,13 @@ type FileUploadProps = {
|
|
|
103
329
|
icon?: ReactNode;
|
|
104
330
|
label?: ReactNode;
|
|
105
331
|
previewIcon?: ReactNode;
|
|
332
|
+
/** Compact drop zone, or preview-only strip for a parent drop target. */
|
|
333
|
+
variant?: "default" | "compact" | "inline";
|
|
106
334
|
/** Fully locks the field: no add, no remove, drops ignored. */
|
|
107
335
|
disabled?: boolean;
|
|
108
|
-
/** Optional cascade override; defaults to the inherited `[data-theme]`. */
|
|
109
|
-
theme?: ThemeName;
|
|
110
336
|
className?: string;
|
|
111
337
|
};
|
|
112
|
-
declare function FileUpload({ value, onChange, onReject, maxFiles, maxSizeBytes, accept, icon, label, previewIcon,
|
|
338
|
+
declare function FileUpload({ value, onChange, onReject, maxFiles, maxSizeBytes, accept, icon, label, previewIcon, variant, disabled, className, }: FileUploadProps): react_jsx_runtime.JSX.Element | null;
|
|
113
339
|
|
|
114
340
|
type InfoTipProps = {
|
|
115
341
|
text?: ReactNode;
|
|
@@ -119,16 +345,28 @@ type InfoTipProps = {
|
|
|
119
345
|
/**
|
|
120
346
|
* Small "i" badge that opens a tooltip on hover, click, or focus.
|
|
121
347
|
*
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
* (`bg-theme-bg-pale` + `border-theme-border` + `text-theme-text-strong`,
|
|
125
|
-
* viewport-clamped). Cursor on the badge is `cursor-help`.
|
|
348
|
+
* Quiet neutral badge and shared, viewport-clamped tooltip popup.
|
|
349
|
+
* The help cursor indicates that more information is available.
|
|
126
350
|
*/
|
|
127
351
|
declare const InfoTip: FC<InfoTipProps>;
|
|
128
352
|
|
|
353
|
+
type KeyChipProps = {
|
|
354
|
+
/** The visible start of the key, e.g. "sk_0ysBCkH". */
|
|
355
|
+
prefix: string;
|
|
356
|
+
/** The full key, when known: the chip then copies it on click. */
|
|
357
|
+
value?: string | null;
|
|
358
|
+
/** Accessible name for the copy action. */
|
|
359
|
+
label?: string;
|
|
360
|
+
className?: string;
|
|
361
|
+
};
|
|
362
|
+
/**
|
|
363
|
+
* One badge for every key: prefix and ellipsis, nothing else. A secret key
|
|
364
|
+
* only ever shows its prefix; a key whose value is known copies on click and
|
|
365
|
+
* carries the clipboard icon.
|
|
366
|
+
*/
|
|
367
|
+
declare function KeyChip({ prefix, value, label, className, }: KeyChipProps): react_jsx_runtime.JSX.Element;
|
|
368
|
+
|
|
129
369
|
type BaseLinkCardProps = {
|
|
130
|
-
/** Override the cascade theme for this card's subtree. */
|
|
131
|
-
theme?: ThemeName;
|
|
132
370
|
external?: boolean;
|
|
133
371
|
showIcon?: boolean;
|
|
134
372
|
className?: string;
|
|
@@ -137,21 +375,12 @@ type BaseLinkCardProps = {
|
|
|
137
375
|
type LinkCardProps<T extends React.ElementType = "a"> = PropsWithChildren<BaseLinkCardProps> & {
|
|
138
376
|
as?: T;
|
|
139
377
|
} & Omit<React.ComponentPropsWithoutRef<T>, keyof BaseLinkCardProps | "as">;
|
|
140
|
-
declare function LinkCard<T extends React.ElementType = "a">({ as,
|
|
141
|
-
|
|
142
|
-
type MarkdownProps = {
|
|
143
|
-
children: string;
|
|
144
|
-
className?: string;
|
|
145
|
-
};
|
|
146
|
-
/** Compact markdown for cards and snippets. Use Prose for document-style content. */
|
|
147
|
-
declare function Markdown({ children, className }: MarkdownProps): react_jsx_runtime.JSX.Element;
|
|
378
|
+
declare function LinkCard<T extends React.ElementType = "a">({ as, external, showIcon, className, surfaceClassName, children, ...linkProps }: LinkCardProps<T>): react_jsx_runtime.JSX.Element;
|
|
148
379
|
|
|
149
380
|
type MediaPlaceholderProps = ComponentPropsWithoutRef<"div"> & {
|
|
150
|
-
theme?: ThemeName;
|
|
151
381
|
icon?: ReactNode;
|
|
152
382
|
label?: ReactNode;
|
|
153
383
|
detail?: ReactNode;
|
|
154
|
-
action?: ReactNode;
|
|
155
384
|
};
|
|
156
385
|
declare const MediaPlaceholder: FC<MediaPlaceholderProps>;
|
|
157
386
|
|
|
@@ -166,57 +395,66 @@ type MultiSelectProps = {
|
|
|
166
395
|
placeholder: string;
|
|
167
396
|
disabled?: boolean;
|
|
168
397
|
disabledText?: string;
|
|
398
|
+
disabledTooltip?: string;
|
|
169
399
|
align?: "start" | "end";
|
|
170
400
|
label?: string;
|
|
171
|
-
|
|
401
|
+
/** Accessible name when the visible label is supplied by the caller. */
|
|
402
|
+
ariaLabel?: string;
|
|
403
|
+
/** Fill the available width, allowing the trigger label to truncate. */
|
|
404
|
+
fullWidth?: boolean;
|
|
172
405
|
};
|
|
173
406
|
declare const MultiSelect: FC<MultiSelectProps>;
|
|
174
407
|
|
|
175
408
|
type BaseNavItemProps = {
|
|
176
|
-
/**
|
|
177
|
-
theme?: ThemeName;
|
|
178
|
-
/** Current/selected item — fills with the section color + sets `aria-current`. */
|
|
409
|
+
/** Current/selected item — fills with the accent + sets `aria-current`. */
|
|
179
410
|
active?: boolean;
|
|
411
|
+
/** Optional leading icon. */
|
|
412
|
+
icon?: ComponentType<{
|
|
413
|
+
className?: string;
|
|
414
|
+
}>;
|
|
180
415
|
className?: string;
|
|
181
416
|
};
|
|
182
417
|
type NavItemProps<T extends React.ElementType = "button"> = PropsWithChildren<BaseNavItemProps> & {
|
|
183
418
|
as?: T;
|
|
184
419
|
} & Omit<React.ComponentPropsWithoutRef<T>, keyof BaseNavItemProps | "as">;
|
|
185
420
|
/**
|
|
186
|
-
* Minimal nav item — a
|
|
187
|
-
* when
|
|
188
|
-
*
|
|
189
|
-
*
|
|
421
|
+
* Minimal nav item — a pill that's neutral when inactive and filled with the
|
|
422
|
+
* accent when active, with an optional leading icon. Polymorphic: `<NavItem>`
|
|
423
|
+
* (button) for in-page nav, `<NavItem as={Link} active={…}>` for routed nav.
|
|
424
|
+
* Shared by the enter dashboard rail and apps so both use one design.
|
|
190
425
|
*/
|
|
191
|
-
declare function NavItem<T extends React.ElementType = "button">({ as,
|
|
426
|
+
declare function NavItem<T extends React.ElementType = "button">({ as, active, icon: Icon, className, children, ...rest }: NavItemProps<T>): react_jsx_runtime.JSX.Element;
|
|
192
427
|
|
|
193
428
|
type PeriodGranularity = "day" | "week" | "month";
|
|
194
429
|
type PeriodSelection = {
|
|
195
430
|
granularity: PeriodGranularity;
|
|
196
431
|
period: string;
|
|
197
432
|
};
|
|
433
|
+
type PeriodWindow = {
|
|
434
|
+
start: Date;
|
|
435
|
+
end: Date;
|
|
436
|
+
};
|
|
437
|
+
declare function periodFromDate(granularity: PeriodGranularity, date?: Date): PeriodSelection;
|
|
198
438
|
declare function currentPeriod(): PeriodSelection;
|
|
439
|
+
declare function periodToWindow(selection: PeriodSelection): PeriodWindow;
|
|
199
440
|
declare function getPeriodBucketKeys(selection: PeriodSelection): string[];
|
|
200
441
|
declare function periodBucketKeyToDate(bucketKey: string, granularity: PeriodGranularity): Date;
|
|
442
|
+
declare function isPeriodSelectable(selection: PeriodSelection, minDate?: Date, maxDate?: Date): boolean;
|
|
201
443
|
|
|
202
444
|
type PeriodPickerProps = {
|
|
203
445
|
value: PeriodSelection;
|
|
204
446
|
onChange: (value: PeriodSelection) => void;
|
|
205
|
-
theme: ThemeName;
|
|
206
447
|
minDate?: Date;
|
|
207
448
|
maxDate?: Date;
|
|
449
|
+
/** Custom trigger for a calendar with a fixed granularity. */
|
|
450
|
+
trigger?: (open: boolean) => ReactNode;
|
|
451
|
+
/** Optional controls above the calendar grid. */
|
|
452
|
+
header?: ReactNode;
|
|
208
453
|
};
|
|
209
454
|
declare const PeriodPicker: FC<PeriodPickerProps>;
|
|
210
455
|
|
|
211
|
-
type ProseProps = {
|
|
212
|
-
children: string;
|
|
213
|
-
className?: string;
|
|
214
|
-
};
|
|
215
|
-
declare function Prose({ children, className }: ProseProps): react_jsx_runtime.JSX.Element;
|
|
216
|
-
|
|
217
456
|
type SectionProps = {
|
|
218
457
|
title: string;
|
|
219
|
-
theme: ThemeName;
|
|
220
458
|
id?: string;
|
|
221
459
|
framed?: boolean;
|
|
222
460
|
intro?: ReactNode;
|
|
@@ -239,7 +477,6 @@ type StatCardProps = {
|
|
|
239
477
|
value: ReactNode;
|
|
240
478
|
detail?: ReactNode;
|
|
241
479
|
variant?: StatCardVariant;
|
|
242
|
-
theme?: ThemeName;
|
|
243
480
|
className?: string;
|
|
244
481
|
labelClassName?: string;
|
|
245
482
|
valueClassName?: string;
|
|
@@ -247,6 +484,19 @@ type StatCardProps = {
|
|
|
247
484
|
};
|
|
248
485
|
declare const StatCard: FC<StatCardProps>;
|
|
249
486
|
|
|
487
|
+
type ToolCallStatus = "pending" | "running" | "approval-requested" | "approval-responded" | "complete" | "error" | "denied";
|
|
488
|
+
interface ToolCallDetailsProps {
|
|
489
|
+
name: string;
|
|
490
|
+
input?: unknown;
|
|
491
|
+
output?: unknown;
|
|
492
|
+
error?: unknown;
|
|
493
|
+
status?: ToolCallStatus;
|
|
494
|
+
defaultOpen?: boolean;
|
|
495
|
+
className?: string;
|
|
496
|
+
}
|
|
497
|
+
/** Framework-neutral disclosure for server- or client-executed tool calls. */
|
|
498
|
+
declare function ToolCallDetails({ name, input, output, error, status, defaultOpen, className, }: ToolCallDetailsProps): react_jsx_runtime.JSX.Element;
|
|
499
|
+
|
|
250
500
|
/** Class merge for apps consuming the unprefixed Tailwind bridge in app.css. */
|
|
251
501
|
declare function cn(...inputs: (string | undefined | null | false)[]): string;
|
|
252
502
|
|
|
@@ -256,30 +506,7 @@ declare function cn(...inputs: (string | undefined | null | false)[]): string;
|
|
|
256
506
|
*/
|
|
257
507
|
declare function useScrollLock(enabled?: boolean): void;
|
|
258
508
|
|
|
259
|
-
|
|
260
|
-
type ButtonIntent = "danger";
|
|
261
|
-
declare const sizes: {
|
|
262
|
-
readonly sm: "polli:px-2 polli:pt-0.5 polli:pb-1";
|
|
263
|
-
readonly md: "polli:px-4 polli:pt-1.5 polli:pb-2";
|
|
264
|
-
readonly lg: "polli:px-6 polli:py-3";
|
|
265
|
-
};
|
|
266
|
-
type BaseButtonProps = {
|
|
267
|
-
/** Override the cascade theme for this button's subtree. Ignored when `intent` is set. */
|
|
268
|
-
theme?: ThemeName;
|
|
269
|
-
/** Only `"danger"` for now. */
|
|
270
|
-
intent?: ButtonIntent;
|
|
271
|
-
size?: keyof typeof sizes;
|
|
272
|
-
className?: string;
|
|
273
|
-
disabled?: boolean;
|
|
274
|
-
};
|
|
275
|
-
type ButtonProps<T extends React.ElementType = "button"> = PropsWithChildren<BaseButtonProps> & {
|
|
276
|
-
as?: T;
|
|
277
|
-
} & Omit<React.ComponentPropsWithoutRef<T>, keyof BaseButtonProps | "as">;
|
|
278
|
-
declare function Button<T extends React.ElementType = "button">({ as, children, theme, intent, size, className, disabled, ...buttonProps }: ButtonProps<T>): react_jsx_runtime.JSX.Element;
|
|
279
|
-
|
|
280
|
-
type ButtonGroupProps = ComponentPropsWithoutRef<"div"> & {
|
|
281
|
-
wrap?: boolean;
|
|
282
|
-
};
|
|
509
|
+
type ButtonGroupProps = ComponentPropsWithoutRef<"div">;
|
|
283
510
|
declare const ButtonGroup: FC<ButtonGroupProps>;
|
|
284
511
|
|
|
285
512
|
type ChevronIconProps = {
|
|
@@ -293,47 +520,56 @@ type ChevronIconProps = {
|
|
|
293
520
|
*/
|
|
294
521
|
declare const ChevronIcon: FC<ChevronIconProps>;
|
|
295
522
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
523
|
+
/**
|
|
524
|
+
* Light/dark colour mode. The chosen mode is reflected as `class="dark"` on
|
|
525
|
+
* <html>, which flips the design-system tokens (see styles/tokens.css: `.dark`
|
|
526
|
+
* + `.dark [data-theme]`). One shared module-level store backs every
|
|
527
|
+
* `useColorMode()` consumer, so duplicate toggles never desync and changes
|
|
528
|
+
* propagate across tabs.
|
|
529
|
+
*
|
|
530
|
+
* The chosen mode is persisted to localStorage (per-origin), which also powers
|
|
531
|
+
* the cross-tab `storage` sync below. Read priority: localStorage → system
|
|
532
|
+
* preference.
|
|
533
|
+
*
|
|
534
|
+
* Host apps should set the initial class pre-paint (a tiny inline script in the
|
|
535
|
+
* document head, reading the same key) to avoid a flash of light before React
|
|
536
|
+
* mounts; this store is the source of truth after hydration.
|
|
537
|
+
*
|
|
538
|
+
* Side-effect-free on import: the <html> sync and the cross-tab listener are
|
|
539
|
+
* attached lazily on first subscribe, so importing this module (e.g. via the
|
|
540
|
+
* package barrel) never mutates the DOM on its own.
|
|
541
|
+
*/
|
|
542
|
+
type ColorMode = "light" | "dark";
|
|
543
|
+
/**
|
|
544
|
+
* Set the color mode programmatically. Updates the shared store (so every
|
|
545
|
+
* `useColorMode()` consumer re-renders), flips the `.dark` class, and persists
|
|
546
|
+
* to localStorage.
|
|
547
|
+
*/
|
|
548
|
+
declare function setColorMode(mode: ColorMode): void;
|
|
549
|
+
declare function useColorMode(): {
|
|
550
|
+
mode: ColorMode;
|
|
551
|
+
isDark: boolean;
|
|
552
|
+
toggle: () => void;
|
|
300
553
|
};
|
|
301
|
-
|
|
554
|
+
/**
|
|
555
|
+
* Sliding sun/moon switch. Light/dark is a two-state choice, not an on/off
|
|
556
|
+
* affordance, so this uses `Switch`'s shape but its own palette. The thumb
|
|
557
|
+
* carries the active mode's icon tinted with the accent (`text-soft`); the
|
|
558
|
+
* mode you'd switch to sits ghosted (faint neutral) on the
|
|
559
|
+
* empty side. Self-contained — wires itself to `useColorMode`.
|
|
560
|
+
*/
|
|
561
|
+
declare const ColorModeToggle: FC;
|
|
562
|
+
|
|
563
|
+
type DrawerProps = {
|
|
302
564
|
open: boolean;
|
|
303
|
-
onOpenChange
|
|
304
|
-
|
|
305
|
-
triggerAsChild?: boolean;
|
|
306
|
-
triggerClassName?: string;
|
|
307
|
-
title?: ReactNode;
|
|
308
|
-
titleClassName?: string;
|
|
309
|
-
ariaLabel?: string;
|
|
310
|
-
labelledBy?: string;
|
|
311
|
-
theme?: ThemeName;
|
|
312
|
-
size?: keyof typeof sizeClasses;
|
|
313
|
-
showBackdrop?: boolean;
|
|
314
|
-
backdropClassName?: string;
|
|
315
|
-
positionerClassName?: string;
|
|
316
|
-
contentClassName?: string;
|
|
565
|
+
onOpenChange: (open: boolean) => void;
|
|
566
|
+
ariaLabel: string;
|
|
317
567
|
children: ReactNode;
|
|
568
|
+
side?: "left" | "right";
|
|
569
|
+
contentClassName?: string;
|
|
318
570
|
};
|
|
319
|
-
|
|
320
|
-
declare const
|
|
321
|
-
|
|
322
|
-
type DropdownProps = {
|
|
323
|
-
theme: ThemeName;
|
|
324
|
-
/** Trigger element; receives the current open state (e.g. to rotate a chevron). */
|
|
325
|
-
trigger: (open: boolean) => ReactNode;
|
|
326
|
-
/** Panel content. As a function, receives `close` to dismiss after a selection. */
|
|
327
|
-
children: ReactNode | ((close: () => void) => ReactNode);
|
|
328
|
-
/** Panel placement relative to the trigger. */
|
|
329
|
-
align?: "start" | "end";
|
|
330
|
-
/** Controlled open state. Omit to let the Dropdown manage its own. */
|
|
331
|
-
open?: boolean;
|
|
332
|
-
onOpenChange?: (open: boolean) => void;
|
|
333
|
-
/** Appended after the surface (widths, padding, max-height…). */
|
|
334
|
-
className?: string;
|
|
335
|
-
};
|
|
336
|
-
declare const Dropdown: FC<DropdownProps>;
|
|
571
|
+
/** Accessible side drawer for mobile navigation and compact tools. */
|
|
572
|
+
declare const Drawer: FC<DrawerProps>;
|
|
337
573
|
|
|
338
574
|
type BaseDropdownItemProps = {
|
|
339
575
|
className?: string;
|
|
@@ -343,82 +579,147 @@ type DropdownItemProps<T extends React.ElementType = "button"> = PropsWithChildr
|
|
|
343
579
|
} & Omit<React.ComponentPropsWithoutRef<T>, keyof BaseDropdownItemProps | "as">;
|
|
344
580
|
declare function DropdownItem<T extends React.ElementType = "button">({ as, className, children, ...rest }: DropdownItemProps<T>): react_jsx_runtime.JSX.Element;
|
|
345
581
|
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
582
|
+
declare const sizeClasses: {
|
|
583
|
+
readonly page: "polli:text-sm polli:tracking-widest polli:text-theme-text-soft";
|
|
584
|
+
readonly card: "polli:text-xs polli:tracking-wider polli:text-theme-text-soft";
|
|
585
|
+
readonly chrome: "polli:text-micro polli:tracking-widest polli:text-theme-text-muted";
|
|
586
|
+
};
|
|
587
|
+
type EyebrowOwnProps<T extends ElementType> = {
|
|
588
|
+
as?: T;
|
|
589
|
+
size?: keyof typeof sizeClasses;
|
|
590
|
+
className?: string;
|
|
591
|
+
children: ReactNode;
|
|
592
|
+
};
|
|
593
|
+
type EyebrowProps<T extends ElementType = "span"> = EyebrowOwnProps<T> & Omit<ComponentPropsWithoutRef<T>, keyof EyebrowOwnProps<T>>;
|
|
594
|
+
/** Uppercase pixel label for page, card, and chrome metadata. */
|
|
595
|
+
declare function Eyebrow<T extends ElementType = "span">({ as, size, className, children, ...rest }: EyebrowProps<T>): react_jsx_runtime.JSX.Element;
|
|
596
|
+
|
|
597
|
+
/** `danger` (delete, red) and `info` (edit/links, blue). */
|
|
598
|
+
type IconButtonIntent = "danger" | "info";
|
|
599
|
+
type IconButtonVariant = "tile" | "ghost";
|
|
600
|
+
type IconButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children" | "className" | "title"> & {
|
|
349
601
|
intent?: IconButtonIntent;
|
|
602
|
+
variant?: IconButtonVariant;
|
|
603
|
+
pressed?: boolean;
|
|
350
604
|
title?: string;
|
|
351
|
-
|
|
605
|
+
tooltip?: ReactNode;
|
|
606
|
+
tooltipAlign?: "start" | "center";
|
|
607
|
+
tooltipClampToViewport?: boolean;
|
|
352
608
|
children: ReactNode;
|
|
353
609
|
className?: string;
|
|
610
|
+
size?: "sm" | "md";
|
|
354
611
|
};
|
|
355
|
-
declare const IconButton:
|
|
612
|
+
declare const IconButton: react.ForwardRefExoticComponent<Omit<ButtonHTMLAttributes<HTMLButtonElement>, "className" | "children" | "title"> & {
|
|
613
|
+
intent?: IconButtonIntent;
|
|
614
|
+
variant?: IconButtonVariant;
|
|
615
|
+
pressed?: boolean;
|
|
616
|
+
title?: string;
|
|
617
|
+
tooltip?: ReactNode;
|
|
618
|
+
tooltipAlign?: "start" | "center";
|
|
619
|
+
tooltipClampToViewport?: boolean;
|
|
620
|
+
children: ReactNode;
|
|
621
|
+
className?: string;
|
|
622
|
+
size?: "sm" | "md";
|
|
623
|
+
} & react.RefAttributes<HTMLButtonElement>>;
|
|
356
624
|
|
|
357
625
|
type BaseInlineLinkProps = {
|
|
358
|
-
/** Override the cascade theme for this link's subtree. */
|
|
359
|
-
theme?: ThemeName;
|
|
360
626
|
/** Set explicitly for non-http external links, or false for custom routing components. */
|
|
361
627
|
external?: boolean;
|
|
362
628
|
showIcon?: boolean;
|
|
629
|
+
/** Inline text inherits its size; footers use 13px and standalone links 14px. */
|
|
630
|
+
size?: "inherit" | "footer" | "sm";
|
|
631
|
+
/** Accent for prominent links; quiet for secondary navigation. */
|
|
632
|
+
tone?: "accent" | "quiet";
|
|
363
633
|
className?: string;
|
|
364
634
|
};
|
|
365
635
|
type InlineLinkProps<T extends React.ElementType = "a"> = PropsWithChildren<BaseInlineLinkProps> & {
|
|
366
636
|
as?: T;
|
|
367
637
|
} & Omit<React.ComponentPropsWithoutRef<T>, keyof BaseInlineLinkProps | "as">;
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
};
|
|
374
|
-
declare const Input: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & {
|
|
375
|
-
error?: boolean;
|
|
376
|
-
hideNumberSteppers?: boolean;
|
|
377
|
-
} & react.RefAttributes<HTMLInputElement>>;
|
|
638
|
+
/** Shared text-link rule: surrounding font, selectable ink, persistent underline,
|
|
639
|
+
* visible keyboard focus, and an external arrow only when leaving the app.
|
|
640
|
+
* Navigation and button-shaped actions use their own primitives.
|
|
641
|
+
*/
|
|
642
|
+
declare function InlineLink<T extends React.ElementType = "a">({ as, external, showIcon, size, tone, className, children, ...linkProps }: InlineLinkProps<T>): react_jsx_runtime.JSX.Element;
|
|
378
643
|
|
|
379
644
|
/** Icons inherit color via currentColor and size via className or SVG props. */
|
|
380
645
|
type IconProps = ComponentPropsWithoutRef<"svg">;
|
|
381
646
|
|
|
382
647
|
declare function AppIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
648
|
+
declare function AccountIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
649
|
+
declare function ArrowRightIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
383
650
|
declare function BeakerIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
651
|
+
declare function BotIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
384
652
|
declare function BookIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
653
|
+
declare function BugIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
385
654
|
declare function CheckIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
386
655
|
declare function ClipboardIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
387
656
|
declare function ClockIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
388
657
|
declare function DiscordIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
658
|
+
declare function InstagramIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
659
|
+
declare function XSocialIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
660
|
+
declare function LinkedInIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
389
661
|
declare function DownloadIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
662
|
+
declare function ExpandIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
663
|
+
declare function PlayIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
664
|
+
declare function PauseIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
665
|
+
declare function CloudUploadIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
390
666
|
declare function ExternalLinkIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
391
667
|
declare function GenApiIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
668
|
+
declare function GitBranchIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
669
|
+
declare function GitPullRequestIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
670
|
+
declare function GraduationCapIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
671
|
+
declare function SparklesIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
392
672
|
declare function GitHubIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
393
673
|
declare function ImageIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
674
|
+
declare function CubeIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
394
675
|
declare function AudioIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
395
676
|
declare function LockIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
677
|
+
declare function LogInIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
678
|
+
declare function LogOutIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
396
679
|
declare function MailIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
397
680
|
declare function McpIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
398
681
|
declare function MenuIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
682
|
+
declare function NewspaperIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
399
683
|
declare function PlusIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
400
684
|
declare function TerminalIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
685
|
+
declare function ToolIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
686
|
+
declare function TargetIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
401
687
|
declare function TokensIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
688
|
+
declare function UsageIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
689
|
+
declare function WarningIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
402
690
|
declare function TrendUpIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
691
|
+
declare function EarningsIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
403
692
|
declare function WalletIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
693
|
+
declare function MoonIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
694
|
+
declare function SunIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
404
695
|
declare function XIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
declare
|
|
420
|
-
|
|
421
|
-
|
|
696
|
+
declare function TrashIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
697
|
+
declare function ChatIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
698
|
+
declare function RobotIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
699
|
+
declare function EyeIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
700
|
+
declare function EyeOffIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
701
|
+
declare function VideoIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
702
|
+
declare function MicIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
703
|
+
declare function SpeakerIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
704
|
+
declare function MegaphoneIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
705
|
+
declare function ReasoningIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
706
|
+
declare function RocketIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
707
|
+
declare function SearchIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
708
|
+
declare function SignOutIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
709
|
+
declare function PowerIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
710
|
+
declare function SparkleIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
711
|
+
declare function StarIcon({ filled, ...props }: IconProps & {
|
|
712
|
+
filled?: boolean;
|
|
713
|
+
}): react_jsx_runtime.JSX.Element;
|
|
714
|
+
declare function CodeIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
715
|
+
declare function DatabaseIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
716
|
+
declare function CardIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
717
|
+
declare function SproutIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
718
|
+
declare function PencilIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
719
|
+
declare function KeyIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
720
|
+
declare function GlobeIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
721
|
+
declare function ArrowLeftIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
722
|
+
declare function RefreshIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
422
723
|
|
|
423
724
|
type SliderProps = Omit<React.ComponentPropsWithoutRef<"input">, "type"> & {
|
|
424
725
|
/** Fill percentage from 0-100. Falls back to value/min/max when omitted. */
|
|
@@ -431,19 +732,24 @@ declare const Slider: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHT
|
|
|
431
732
|
|
|
432
733
|
type SurfaceVariant = "panel" | "card" | "card-themed";
|
|
433
734
|
type SurfaceOwnProps = {
|
|
434
|
-
/** Override the cascade theme for this surface's subtree. */
|
|
435
|
-
theme?: ThemeName;
|
|
436
735
|
/**
|
|
437
|
-
*
|
|
438
|
-
* - `panel` —
|
|
439
|
-
* - `card` —
|
|
440
|
-
* - `card-themed` —
|
|
736
|
+
* Depth role (all opaque, elevation via shadow not borders):
|
|
737
|
+
* - `panel` — Level 1 container: themed bg, container shadow
|
|
738
|
+
* - `card` — Level 2 well: neutral surface, well shadow (default)
|
|
739
|
+
* - `card-themed` — themed well: theme-tinted, well shadow
|
|
441
740
|
*/
|
|
442
741
|
variant?: SurfaceVariant;
|
|
443
742
|
className?: string;
|
|
444
743
|
};
|
|
445
|
-
|
|
446
|
-
|
|
744
|
+
/**
|
|
745
|
+
* Polymorphic like Button, TabButton and LinkCard, so a card that is itself a
|
|
746
|
+
* link renders one element instead of an anchor wrapping a div. Defaults to
|
|
747
|
+
* <div>, so existing call sites are unchanged.
|
|
748
|
+
*/
|
|
749
|
+
type SurfaceProps<T extends ElementType = "div"> = SurfaceOwnProps & {
|
|
750
|
+
as?: T;
|
|
751
|
+
} & Omit<ComponentPropsWithoutRef<T>, keyof SurfaceOwnProps | "as" | "color">;
|
|
752
|
+
declare function Surface<T extends ElementType = "div">({ as, variant, className, children, ...rest }: SurfaceProps<T>): react_jsx_runtime.JSX.Element;
|
|
447
753
|
|
|
448
754
|
type SwitchStatus = "off" | "on" | "invalid";
|
|
449
755
|
type SwitchProps = {
|
|
@@ -458,36 +764,46 @@ type SwitchProps = {
|
|
|
458
764
|
};
|
|
459
765
|
/**
|
|
460
766
|
* Binary toggle primitive. Universal palette — does NOT follow the page
|
|
461
|
-
* theme.
|
|
462
|
-
* for "enabled but needs attention").
|
|
767
|
+
* theme. Light thumb in both modes; track states: off (grey), on (green),
|
|
768
|
+
* invalid (red, for "enabled but needs attention").
|
|
463
769
|
*
|
|
464
770
|
* `checked` drives thumb position; `status` drives track colour. So
|
|
465
771
|
* `checked={true} status="invalid"` renders thumb-right with a red track.
|
|
466
772
|
*/
|
|
467
773
|
declare const Switch: FC<SwitchProps>;
|
|
468
774
|
|
|
469
|
-
type
|
|
775
|
+
type TabButtonOwnProps = {
|
|
470
776
|
active: boolean;
|
|
471
|
-
|
|
777
|
+
/** Omit when rendering as a link (`as`) and navigation carries the change. */
|
|
778
|
+
onClick?: () => void;
|
|
472
779
|
children: ReactNode;
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
variant?: "default" | "ghost";
|
|
780
|
+
size?: "lg" | "md" | "sm" | "xs";
|
|
781
|
+
variant?: "soft" | "ghost";
|
|
782
|
+
intent?: "neutral";
|
|
477
783
|
ariaLabel?: string;
|
|
478
784
|
disabled?: boolean;
|
|
479
785
|
className?: string;
|
|
480
786
|
};
|
|
481
|
-
|
|
787
|
+
/**
|
|
788
|
+
* Polymorphic like Button, so a tab that navigates can render a real anchor
|
|
789
|
+
* instead of a click handler — middle-click, right-click and crawlers all
|
|
790
|
+
* depend on that. Defaults to <button>, so existing call sites are unchanged.
|
|
791
|
+
*/
|
|
792
|
+
type TabButtonProps<T extends ElementType = "button"> = TabButtonOwnProps & {
|
|
793
|
+
as?: T;
|
|
794
|
+
} & Omit<ComponentPropsWithoutRef<T>, keyof TabButtonOwnProps | "as">;
|
|
795
|
+
declare function TabButton<T extends ElementType = "button">({ as, active, onClick, children, size, variant, intent, ariaLabel, disabled, className, ...rest }: TabButtonProps<T>): react_jsx_runtime.JSX.Element;
|
|
482
796
|
|
|
483
797
|
type Align = "left" | "center" | "right";
|
|
484
|
-
type RowIntent = "default" | "
|
|
798
|
+
type RowIntent = "default" | "warning" | "danger";
|
|
485
799
|
type SortDirection = "asc" | "desc";
|
|
486
800
|
type TableProps = ComponentPropsWithoutRef<"table">;
|
|
487
801
|
declare const Table: FC<TableProps>;
|
|
488
802
|
type TableHeadProps = ComponentPropsWithoutRef<"thead">;
|
|
489
803
|
declare const TableHead: FC<TableHeadProps>;
|
|
490
|
-
type TableBodyProps = ComponentPropsWithoutRef<"tbody"
|
|
804
|
+
type TableBodyProps = ComponentPropsWithoutRef<"tbody"> & {
|
|
805
|
+
divider?: "themed" | "neutral";
|
|
806
|
+
};
|
|
491
807
|
declare const TableBody: FC<TableBodyProps>;
|
|
492
808
|
type TableRowProps = ComponentPropsWithoutRef<"tr"> & {
|
|
493
809
|
intent?: RowIntent;
|
|
@@ -508,6 +824,16 @@ type TableCellProps = ComponentPropsWithoutRef<"td"> & {
|
|
|
508
824
|
};
|
|
509
825
|
declare const TableCell: FC<TableCellProps>;
|
|
510
826
|
|
|
827
|
+
type TableDisclosureButtonProps = {
|
|
828
|
+
children: ReactNode;
|
|
829
|
+
disabled?: boolean;
|
|
830
|
+
expanded: boolean;
|
|
831
|
+
onClick: () => void;
|
|
832
|
+
className?: string;
|
|
833
|
+
};
|
|
834
|
+
/** Compact disclosure trigger for expandable table rows. */
|
|
835
|
+
declare const TableDisclosureButton: FC<TableDisclosureButtonProps>;
|
|
836
|
+
|
|
511
837
|
type TextareaProps = React.ComponentPropsWithoutRef<"textarea"> & {
|
|
512
838
|
error?: boolean;
|
|
513
839
|
};
|
|
@@ -518,10 +844,15 @@ declare const Textarea: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLP
|
|
|
518
844
|
type TooltipProps = {
|
|
519
845
|
children: ReactNode;
|
|
520
846
|
content: ReactNode;
|
|
847
|
+
align?: "start" | "center";
|
|
521
848
|
ariaLabel?: string;
|
|
849
|
+
clampToViewport?: boolean;
|
|
522
850
|
className?: string;
|
|
851
|
+
maxWidth?: number;
|
|
523
852
|
onClick?: () => void;
|
|
853
|
+
stopClickPropagation?: boolean;
|
|
524
854
|
style?: CSSProperties;
|
|
855
|
+
tapEnabled?: boolean;
|
|
525
856
|
triggerAs?: "button" | "span";
|
|
526
857
|
/**
|
|
527
858
|
* When true, the inner cursor wrapper uses display:contents so the
|
|
@@ -536,13 +867,6 @@ type HeadingSize = "display" | "title" | "section" | "subsection" | "card";
|
|
|
536
867
|
type TextSize = "body" | "sm" | "xs" | "micro";
|
|
537
868
|
type TextTone = "base" | "strong" | "soft" | "muted";
|
|
538
869
|
type TextWeight = "normal" | "medium" | "semibold" | "bold";
|
|
539
|
-
declare function headingClassName(size: HeadingSize, className?: string): string;
|
|
540
|
-
declare function textClassName({ size, tone, weight, className, }: {
|
|
541
|
-
size: TextSize;
|
|
542
|
-
tone: TextTone;
|
|
543
|
-
weight: TextWeight;
|
|
544
|
-
className?: string;
|
|
545
|
-
}): string;
|
|
546
870
|
type HeadingOwnProps<T extends ElementType> = PropsWithChildren<{
|
|
547
871
|
as?: T;
|
|
548
872
|
size?: HeadingSize;
|
|
@@ -560,4 +884,4 @@ type TextOwnProps<T extends ElementType> = PropsWithChildren<{
|
|
|
560
884
|
type TextProps<T extends ElementType = "p"> = TextOwnProps<T> & Omit<ComponentPropsWithoutRef<T>, keyof TextOwnProps<T>>;
|
|
561
885
|
declare function Text<T extends ElementType = "p">({ as, size, tone, weight, className, children, ...rest }: TextProps<T>): react_jsx_runtime.JSX.Element;
|
|
562
886
|
|
|
563
|
-
export { Alert, type AlertProps, AppHeader, type AppHeaderProps, AppIcon, AudioIcon, BeakerIcon, BookIcon,
|
|
887
|
+
export { AccountIcon, AccountIdentity, type AccountIdentityProps, AccountMenu, type AccountMenuProps, Alert, type AlertProps, AppHeader, type AppHeaderProps, AppIcon, ArrowLeftIcon, ArrowRightIcon, AudioIcon, BeakerIcon, BookIcon, BotIcon, BugIcon, ButtonAppearance, ButtonGroup, type ButtonGroupProps, ButtonProps, Callout, type CalloutProps, CardIcon, ChatConversation, ChatConversationContent, type ChatConversationContentProps, type ChatConversationProps, ChatIcon, ChatMessage, ChatMessageActions, type ChatMessageActionsProps, ChatMessageContent, type ChatMessageContentProps, ChatMessageHeader, type ChatMessageHeaderProps, type ChatMessageProps, type ChatMessageRole, ChatPromptInput, ChatPromptInputFooter, type ChatPromptInputFooterProps, type ChatPromptInputProps, ChatPromptTextarea, CheckIcon, ChevronIcon, ClipboardIcon, ClockIcon, CloudUploadIcon, CodeBlock, type CodeBlockProps, CodeIcon, Collapsible, type CollapsibleProps, ColorModeToggle, ConfirmationDialog, type ConfirmationDialogProps, ContentHeader, type ContentHeaderProps, CopyButton, type CopyButtonProps, CopyField, type CopyFieldProps, CubeIcon, DatabaseIcon, DialogProps, DiscordIcon, DownloadIcon, Drawer, type DrawerProps, Dropdown, DropdownItem, type DropdownItemProps, type DropdownProps, EarningsIcon, EditableCombobox, type EditableComboboxProps, EditableComboboxToken, type EditableComboboxTokenProps, ExpandIcon, ExternalLinkButton, type ExternalLinkButtonProps, ExternalLinkIcon, EyeIcon, EyeOffIcon, Eyebrow, type EyebrowProps, FieldStack, type FieldStackProps, FileUpload, type FileUploadProps, GenApiIcon, GitBranchIcon, GitHubIcon, GitPullRequestIcon, GlobeIcon, GraduationCapIcon, Heading, type HeadingProps, IconButton, type IconButtonIntent, type IconButtonProps, type IconButtonVariant, type IconProps, ImageIcon, InfoTip, InlineLink, type InlineLinkProps, Input, type InputProps, InstagramIcon, KeyChip, type KeyChipProps, KeyIcon, LinkCard, type LinkCardProps, LinkedInIcon, LockIcon, LogInIcon, LogOutIcon, MailIcon, McpIcon, MediaPlaceholder, type MediaPlaceholderProps, MegaphoneIcon, MenuIcon, MicIcon, MoonIcon, MultiSelect, type MultiSelectProps, NavItem, type NavItemProps, NewspaperIcon, PauseIcon, PencilIcon, type PeriodGranularity, PeriodPicker, type PeriodPickerProps, type PeriodSelection, PlayIcon, PlusIcon, PowerIcon, ReasoningIcon, RefreshIcon, RobotIcon, RocketIcon, ScrollAreaProps, SearchIcon, Section, type SectionProps, SignOutIcon, Slider, type SliderProps, SparkleIcon, SparklesIcon, SpeakerIcon, SproutIcon, StarIcon, StatCard, type StatCardProps, SunIcon, Surface, type SurfaceProps, Switch, type SwitchProps, type SwitchStatus, TabButton, type TabButtonProps, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableDisclosureButton, type TableDisclosureButtonProps, TableHead, type TableHeadProps, TableHeaderCell, type TableHeaderCellProps, type TableProps, TableRow, type TableRowProps, TargetIcon, TerminalIcon, Text, type TextProps, Textarea, type TextareaProps, TokensIcon, ToolCallDetails, type ToolCallDetailsProps, type ToolCallStatus, ToolIcon, Tooltip, TrashIcon, TrendUpIcon, UsageIcon, VideoIcon, WalletIcon, WarningIcon, XIcon, XSocialIcon, cn, currentPeriod, getPeriodBucketKeys, isPeriodSelectable, periodBucketKeyToDate, periodFromDate, periodToWindow, setColorMode, useColorMode, useScrollLock };
|