@pollinations/ui 0.1.0-alpha.1 → 0.1.0-alpha.4

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