@tailor-platform/app-shell 1.14.0 → 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/LICENSE.md +21 -0
  2. package/dist/app-shell-core.css +1 -1
  3. package/dist/app-shell.d.ts +1203 -316
  4. package/dist/app-shell.js +4562 -3307
  5. package/dist/{appshell-CtS8Y3LW.js → appshell-B0wh5Lq0.js} +850 -549
  6. package/dist/style-entry.d.ts +118 -98
  7. package/dist/testing.d.ts +118 -98
  8. package/dist/testing.js +1 -1
  9. package/dist/themes/_template.css +1 -1
  10. package/dist/vite-plugin.d.ts +118 -98
  11. package/package.json +13 -13
  12. package/skills/app-shell-patterns/SKILL.md +108 -24
  13. package/skills/app-shell-patterns/references/api/create-ai-gateway-client.md +115 -0
  14. package/skills/app-shell-patterns/references/api/create-typed-paths.md +117 -0
  15. package/skills/app-shell-patterns/references/api/define-i18n-labels.md +143 -0
  16. package/skills/app-shell-patterns/references/api/define-module.md +247 -0
  17. package/skills/app-shell-patterns/references/api/define-resource.md +307 -0
  18. package/skills/app-shell-patterns/references/api/guards/hidden.md +202 -0
  19. package/skills/app-shell-patterns/references/api/guards/overview.md +354 -0
  20. package/skills/app-shell-patterns/references/api/guards/pass.md +129 -0
  21. package/skills/app-shell-patterns/references/api/guards/redirect-to.md +307 -0
  22. package/skills/app-shell-patterns/references/api/router/use-location.md +240 -0
  23. package/skills/app-shell-patterns/references/api/router/use-navigate.md +138 -0
  24. package/skills/app-shell-patterns/references/api/router/use-params.md +218 -0
  25. package/skills/app-shell-patterns/references/api/use-ai-chat.md +110 -0
  26. package/skills/app-shell-patterns/references/api/use-app-shell-config.md +126 -0
  27. package/skills/app-shell-patterns/references/api/use-app-shell-data.md +146 -0
  28. package/skills/app-shell-patterns/references/api/use-app-shell.md +143 -0
  29. package/skills/app-shell-patterns/references/api/use-auth.md +145 -0
  30. package/skills/app-shell-patterns/references/api/use-override-breadcrumb.md +74 -0
  31. package/skills/app-shell-patterns/references/api/use-page-meta.md +96 -0
  32. package/skills/app-shell-patterns/references/api/use-register-command-palette-actions.md +90 -0
  33. package/skills/app-shell-patterns/references/api/use-resolved-locale.md +67 -0
  34. package/skills/app-shell-patterns/references/api/use-route-error.md +214 -0
  35. package/skills/app-shell-patterns/references/api/use-theme.md +108 -0
  36. package/skills/app-shell-patterns/references/api/use-time-zone.md +80 -0
  37. package/skills/app-shell-patterns/references/api/use-toast.md +107 -0
  38. package/skills/app-shell-patterns/references/components/action-panel.md +168 -0
  39. package/skills/app-shell-patterns/references/components/activity-card.md +142 -0
  40. package/skills/app-shell-patterns/references/components/ai-chat.md +315 -0
  41. package/skills/app-shell-patterns/references/components/alert.md +202 -0
  42. package/skills/app-shell-patterns/references/components/app-shell.md +530 -0
  43. package/skills/app-shell-patterns/references/components/appearance-switcher.md +87 -0
  44. package/skills/app-shell-patterns/references/components/attachment.md +138 -0
  45. package/skills/app-shell-patterns/references/components/autocomplete.md +278 -0
  46. package/skills/app-shell-patterns/references/components/avatar.md +80 -0
  47. package/skills/app-shell-patterns/references/components/badge.md +309 -0
  48. package/skills/app-shell-patterns/references/components/button.md +164 -0
  49. package/skills/app-shell-patterns/references/components/card.md +109 -0
  50. package/skills/app-shell-patterns/references/components/checkbox.md +169 -0
  51. package/skills/app-shell-patterns/references/components/combobox.md +318 -0
  52. package/skills/app-shell-patterns/references/components/command-palette.md +413 -0
  53. package/skills/app-shell-patterns/references/components/csv-importer.md +214 -0
  54. package/skills/app-shell-patterns/references/components/data-table.md +953 -0
  55. package/skills/app-shell-patterns/references/components/date-picker.md +248 -0
  56. package/skills/app-shell-patterns/references/components/default-header.md +75 -0
  57. package/skills/app-shell-patterns/references/components/default-sidebar.md +136 -0
  58. package/skills/app-shell-patterns/references/components/description-card.md +569 -0
  59. package/skills/app-shell-patterns/references/components/dialog.md +164 -0
  60. package/skills/app-shell-patterns/references/components/document-progress-card.md +154 -0
  61. package/skills/app-shell-patterns/references/components/form.md +378 -0
  62. package/skills/app-shell-patterns/references/components/global-header-layout.md +132 -0
  63. package/skills/app-shell-patterns/references/components/grid.md +184 -0
  64. package/skills/app-shell-patterns/references/components/input.md +83 -0
  65. package/skills/app-shell-patterns/references/components/layout.md +539 -0
  66. package/skills/app-shell-patterns/references/components/menu.md +218 -0
  67. package/skills/app-shell-patterns/references/components/metric-card.md +94 -0
  68. package/skills/app-shell-patterns/references/components/select.md +283 -0
  69. package/skills/app-shell-patterns/references/components/sheet.md +237 -0
  70. package/skills/app-shell-patterns/references/components/sidebar-group.md +466 -0
  71. package/skills/app-shell-patterns/references/components/sidebar-item.md +458 -0
  72. package/skills/app-shell-patterns/references/components/sidebar-layout.md +258 -0
  73. package/skills/app-shell-patterns/references/components/spinner.md +81 -0
  74. package/skills/app-shell-patterns/references/components/table.md +188 -0
  75. package/skills/app-shell-patterns/references/components/tabs.md +158 -0
  76. package/skills/app-shell-patterns/references/components/textarea.md +122 -0
  77. package/skills/app-shell-patterns/references/components/timeline.md +317 -0
  78. package/skills/app-shell-patterns/references/components/toolbar.md +138 -0
  79. package/skills/app-shell-patterns/references/components/tooltip.md +144 -0
  80. package/skills/app-shell-patterns/references/components/with-guard.md +445 -0
  81. package/skills/app-shell-patterns/references/concepts/authentication.md +301 -0
  82. package/skills/app-shell-patterns/references/concepts/custom-components.md +59 -0
  83. package/skills/app-shell-patterns/references/concepts/file-based-routing.md +350 -0
  84. package/skills/app-shell-patterns/references/{fundamental → concepts}/graphql.md +11 -4
  85. package/skills/app-shell-patterns/references/concepts/modules-and-resources.md +229 -0
  86. package/skills/app-shell-patterns/references/concepts/routing-navigation.md +387 -0
  87. package/skills/app-shell-patterns/references/concepts/sidebar-navigation.md +388 -0
  88. package/skills/app-shell-patterns/references/{fundamental/design-system.md → concepts/styling-theming.md} +260 -105
  89. package/skills/app-shell-patterns/references/migrations.md +34 -0
  90. package/skills/app-shell-patterns/references/pages/document-detail.md +1125 -0
  91. package/skills/app-shell-patterns/references/patterns/form-composer.md +44 -46
  92. package/skills/app-shell-patterns/references/patterns/form-modal.md +39 -100
  93. package/skills/app-shell-patterns/references/patterns/form-sectioned.md +12 -38
  94. package/skills/app-shell-patterns/references/patterns/form-single-page.md +11 -32
  95. package/skills/app-shell-patterns/references/patterns/form-wizard.md +12 -53
  96. package/skills/app-shell-patterns/references/patterns/interaction-confirm.md +11 -27
  97. package/skills/app-shell-patterns/references/patterns/interaction-multi-select.md +14 -28
  98. package/skills/app-shell-patterns/references/patterns/interaction-toast.md +10 -34
  99. package/skills/app-shell-patterns/references/patterns/list-dense-scan.md +11 -86
  100. package/skills/app-shell-patterns/references/fundamental/components.md +0 -981
  101. package/skills/app-shell-patterns/references/patterns/detail-hero-with-actions.md +0 -201
@@ -10,9 +10,11 @@ import { CalendarDate } from '@internationalized/date';
10
10
  import { CalendarDateTime } from '@internationalized/date';
11
11
  import { Checkbox as Checkbox_2 } from '@base-ui/react/checkbox';
12
12
  import { ClassProp } from 'class-variance-authority/types';
13
+ import { Collapsible } from '@base-ui/react/collapsible';
13
14
  import { Combobox as Combobox_2 } from '@base-ui/react/combobox';
14
15
  import { ComboboxFilter } from '@base-ui/react/combobox';
15
16
  import { ComboboxFilterOptions } from '@base-ui/react/combobox';
17
+ import { ComponentProps } from 'react';
16
18
  import { CSSProperties } from 'react';
17
19
  import { DateValue } from '@internationalized/date';
18
20
  import { Dialog as Dialog_2 } from '@base-ui/react/dialog';
@@ -27,6 +29,7 @@ import { Link } from 'react-router';
27
29
  import { LinkProps } from 'react-router';
28
30
  import { LoaderFunctionArgs } from 'react-router';
29
31
  import { Location as Location_2 } from 'react-router';
32
+ import { LucideIcon } from 'lucide-react';
30
33
  import { Menu as Menu_2 } from '@base-ui/react/menu';
31
34
  import { Navigate } from 'react-router';
32
35
  import { NavigateFunction } from 'react-router';
@@ -65,6 +68,9 @@ import { useSearchParams } from 'react-router';
65
68
  import { VariantProps } from 'class-variance-authority';
66
69
  import { ZonedDateTime } from '@internationalized/date';
67
70
 
71
+ /** A single icon-button action — copy, retry, feedback. */
72
+ declare function Action({ label, className, disabled, children, onClick }: ActionProps): JSX.Element;
73
+
68
74
  /**
69
75
  * A single action row in the ActionPanel (icon + label, triggered by onClick).
70
76
  * For navigation, call useNavigate() inside onClick (e.g. navigate("/path")).
@@ -91,7 +97,7 @@ declare interface ActionItem {
91
97
  *
92
98
  * Each row has an icon and label and is triggered by onClick. For navigation, use
93
99
  * useNavigate() inside the callback (e.g. onClick: () => navigate("/path")).
94
- * Use `astw:w-full` so the panel fills the width of its parent container.
100
+ * The panel already fills the width of its parent container.
95
101
  *
96
102
  * When an action has `loading: true`, the row shows a spinner in the icon slot and is
97
103
  * non-interactive (useful for backend-driven actions: parent sets loading from mutation/request state).
@@ -132,8 +138,18 @@ export declare interface ActionPanelProps {
132
138
  className?: string;
133
139
  }
134
140
 
141
+ declare type ActionProps = Pick<React_2.ComponentProps<typeof Button>, "className" | "disabled" | "children" | "onClick"> & {
142
+ /** Accessible name; also shown as the hover tooltip. */
143
+ label: string;
144
+ };
145
+
146
+ /** Row of icon-button actions under a finished assistant turn. */
147
+ declare function Actions({ className, ...props }: ActionsProps): JSX.Element;
148
+
149
+ declare type ActionsProps = React_2.ComponentProps<"div">;
150
+
135
151
  export declare const ActivityCard: typeof ActivityCardStandalone & {
136
- Root: typeof Root_2;
152
+ Root: typeof Root_3;
137
153
  Items: typeof Items;
138
154
  Item: typeof Item;
139
155
  };
@@ -223,6 +239,8 @@ export declare interface ActivityCardRootProps<T extends ActivityCardBaseItem> {
223
239
  */
224
240
  declare function ActivityCardStandalone({ items, title, maxVisible, overflowLabel, groupBy, className, }: ActivityCardProps): JSX.Element;
225
241
 
242
+ export declare const AIChat: AIChatComponent;
243
+
226
244
  export declare type AIChatCompletionEvent = {
227
245
  type: "text-delta";
228
246
  text: string;
@@ -231,12 +249,103 @@ export declare type AIChatCompletionEvent = {
231
249
  finishReason?: string;
232
250
  };
233
251
 
252
+ declare type AIChatComponent = typeof AIChatRoot & {
253
+ Header: typeof Header;
254
+ Conversation: typeof Conversation;
255
+ Composer: typeof Composer;
256
+ EmptyState: typeof ConversationEmptyState;
257
+ Message: typeof Message;
258
+ Response: typeof Response_2;
259
+ Suggestions: typeof Suggestions;
260
+ Suggestion: typeof Suggestion;
261
+ Actions: typeof Actions;
262
+ Action: typeof Action;
263
+ Reasoning: typeof Reasoning;
264
+ ReasoningTrigger: typeof ReasoningTrigger;
265
+ ReasoningContent: typeof ReasoningContent;
266
+ ChainOfThought: typeof ChainOfThought;
267
+ ChainOfThoughtHeader: typeof ChainOfThoughtHeader;
268
+ ChainOfThoughtContent: typeof ChainOfThoughtContent;
269
+ ChainOfThoughtStep: typeof ChainOfThoughtStep;
270
+ ChainOfThoughtSearchResults: typeof ChainOfThoughtSearchResults;
271
+ ChainOfThoughtSearchResult: typeof ChainOfThoughtSearchResult;
272
+ Tool: typeof Tool;
273
+ ToolHeader: typeof ToolHeader;
274
+ ToolContent: typeof ToolContent;
275
+ ToolInput: typeof ToolInput;
276
+ ToolOutput: typeof ToolOutput;
277
+ Sources: typeof Sources;
278
+ SourcesTrigger: typeof SourcesTrigger;
279
+ SourcesContent: typeof SourcesContent;
280
+ Source: typeof Source;
281
+ History: typeof ChatHistory;
282
+ };
283
+
284
+ export declare type AIChatComposerProps = {
285
+ /** Called with the trimmed prompt when the composer submits. */
286
+ onSubmit: (message: string) => void;
287
+ /** Called from the Stop button while the chat's `status` is `"submitted"` or `"streaming"`. Omit to show a plain busy state with no Stop affordance. */
288
+ onStop?: () => void;
289
+ /** Controlled draft. Cleared (via `onValueChange("")`) after a successful submit. */
290
+ value?: string;
291
+ /** Uncontrolled draft's initial value. */
292
+ defaultValue?: string;
293
+ onValueChange?: (value: string) => void;
294
+ placeholder?: string;
295
+ /** Disables the composer. The transcript above it is unaffected. */
296
+ disabled?: boolean;
297
+ /**
298
+ * Enter submits; Shift+Enter inserts a newline. IME-safe: Enter during
299
+ * kana→kanji conversion confirms the candidate rather than submitting.
300
+ * @default true
301
+ */
302
+ submitOnEnter?: boolean;
303
+ /** Open slot on the action row — a visibility toggle, a model picker, a template select. */
304
+ actions?: ReactNode;
305
+ className?: string;
306
+ };
307
+
308
+ export declare type AIChatConversationProps = ComponentProps<"div"> & {
309
+ /**
310
+ * Follow content growth (streaming text, new turns) while the reader is
311
+ * pinned to the bottom. Set `false` for a plain scrollable region with no
312
+ * auto-follow; the scroll-to-latest button still works.
313
+ * @default true
314
+ */
315
+ autoScroll?: boolean;
316
+ };
317
+
318
+ export declare type AIChatHeaderProps = {
319
+ /** Title text. */
320
+ title?: ReactNode;
321
+ /** Leading graphic. Defaults to a sparkle; pass `null` for none, or a control (e.g. a collapse button) for a docked panel. */
322
+ icon?: ReactNode;
323
+ /** Right-aligned slot — compose it from `AIChat.Action`. */
324
+ actions?: ReactNode;
325
+ className?: string;
326
+ };
327
+
234
328
  export declare interface AIChatMessage {
235
329
  id: string;
236
330
  role: "user" | "assistant";
237
331
  content: string;
238
332
  }
239
333
 
334
+ export declare type AIChatProps = Omit<ComponentProps<"div">, "children"> & {
335
+ /**
336
+ * `AIChat.Header`, `AIChat.Conversation`, and `AIChat.Composer`, in any
337
+ * order — the root places them. They must be **direct** children: regions
338
+ * are matched by component identity, so one wrapped in your own component
339
+ * (`const AppComposer = () => <AIChat.Composer … />`) is not recognised and
340
+ * is dropped. To preset props, spread them onto the region instead.
341
+ */
342
+ children: ReactNode;
343
+ /** The chat's state. Plugs directly into `useAIChat()`'s `status`; `AIChat.Composer` reads it for its busy/Stop state. */
344
+ status?: AIChatStatus;
345
+ };
346
+
347
+ declare function AIChatRoot({ className, children, status, ...props }: AIChatProps): JSX.Element;
348
+
240
349
  export declare type AIChatStatus = "ready" | "submitted" | "streaming" | "error";
241
350
 
242
351
  export declare type AIGatewayChatMessage = {
@@ -261,7 +370,7 @@ export declare interface AIGatewayClient {
261
370
  }
262
371
 
263
372
  export declare const Alert: {
264
- Root: typeof Root;
373
+ Root: typeof Root_2;
265
374
  Title: typeof Title;
266
375
  Description: typeof Description;
267
376
  };
@@ -269,7 +378,7 @@ export declare const Alert: {
269
378
  export declare type AlertProps = RootProps;
270
379
 
271
380
  export declare const alertVariants: (props?: ({
272
- variant?: "error" | "neutral" | "success" | "warning" | "info" | null | undefined;
381
+ variant?: "error" | "success" | "warning" | "neutral" | "info" | null | undefined;
273
382
  } & ClassProp) | undefined) => string;
274
383
 
275
384
  declare type Anchor = "start" | "center" | "end";
@@ -425,6 +534,27 @@ export declare type AppShellProps = SharedAppShellProps & {
425
534
  export declare interface AppShellRegister {
426
535
  }
427
536
 
537
+ export declare type AppShellSidebarState = {
538
+ /**
539
+ * Whether the sidebar is expanded on desktop — the same signal the DOM
540
+ * exposes as `[data-slot="sidebar"][data-state]`.
541
+ *
542
+ * On mobile the sidebar is an overlay sheet rather than an in-flow column,
543
+ * so this does not describe how much room the content has; branch on
544
+ * `isMobile` when that distinction matters.
545
+ */
546
+ open: boolean;
547
+ /** Whether the viewport is below the mobile breakpoint (768px). */
548
+ isMobile: boolean;
549
+ /** Expand or collapse the sidebar. */
550
+ setOpen: (open: boolean) => void;
551
+ /**
552
+ * Toggle the sidebar — the same action as `<SidebarLayout.Trigger />` and the
553
+ * ⌘B / Ctrl+B shortcut, including the mobile and tablet overlay behaviour.
554
+ */
555
+ toggle: () => void;
556
+ };
557
+
428
558
  /**
429
559
  * Fetcher specification for async item loading.
430
560
  *
@@ -867,7 +997,7 @@ declare namespace AutocompleteValue {
867
997
  }
868
998
 
869
999
  export declare const Avatar: {
870
- Root: typeof Root_3;
1000
+ Root: typeof Root_4;
871
1001
  Image: typeof Image_2;
872
1002
  Fallback: typeof Fallback;
873
1003
  };
@@ -914,7 +1044,7 @@ export declare interface BadgeProps extends React_2.HTMLAttributes<HTMLDivElemen
914
1044
  export declare type BadgeVariant = NonNullable<BadgeProps["variant"]>;
915
1045
 
916
1046
  export declare const badgeVariants: (props?: ({
917
- variant?: "default" | "error" | "neutral" | "success" | "warning" | "info" | "subtle-success" | "subtle-warning" | "subtle-error" | "subtle-info" | "outline-success" | "outline-warning" | "outline-error" | "outline-info" | "outline-neutral" | null | undefined;
1047
+ variant?: "default" | "error" | "success" | "warning" | "neutral" | "info" | "subtle-success" | "subtle-warning" | "subtle-error" | "subtle-info" | "outline-success" | "outline-warning" | "outline-error" | "outline-info" | "outline-neutral" | null | undefined;
918
1048
  } & ClassProp) | undefined) => string;
919
1049
 
920
1050
  export { Blocker }
@@ -958,14 +1088,15 @@ export declare type BuildQueryVariables<TTable extends TableMetadata> = {
958
1088
  * <Button variant="destructive">Delete</Button>
959
1089
  * ```
960
1090
  */
961
- export declare function Button({ className, variant, size, render, children, ...props }: ButtonProps): React_2.ReactElement<unknown, string | React_2.JSXElementConstructor<any>>;
1091
+ export declare function Button({ className, variant, size, render, children, ref: forwardedRef, ...props }: ButtonProps): React_2.ReactElement<unknown, string | React_2.JSXElementConstructor<any>>;
962
1092
 
963
1093
  export declare type ButtonProps = React_2.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
1094
+ /** Custom element to render as (Base UI render prop) */
964
1095
  render?: React_2.ReactElement;
965
1096
  };
966
1097
 
967
1098
  export declare const buttonVariants: (props?: ({
968
- variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
1099
+ variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
969
1100
  size?: "default" | "xs" | "sm" | "lg" | "icon" | null | undefined;
970
1101
  } & ClassProp) | undefined) => string;
971
1102
 
@@ -1031,9 +1162,9 @@ declare namespace Caption {
1031
1162
  }
1032
1163
 
1033
1164
  export declare const Card: {
1034
- Root: typeof Root_5;
1035
- Header: typeof Header_3;
1036
- Content: typeof Content;
1165
+ Root: typeof Root_6;
1166
+ Header: typeof Header_4;
1167
+ Content: typeof Content_2;
1037
1168
  };
1038
1169
 
1039
1170
  /** A table data cell (`<td>`). */
@@ -1049,6 +1180,86 @@ declare type CellProps = React_2.ComponentProps<"td"> & {
1049
1180
  align?: CellAlign;
1050
1181
  };
1051
1182
 
1183
+ /**
1184
+ * Structured step timeline for agentic turns — the discrete plan being
1185
+ * executed, each step with a status and optional result chips. Use
1186
+ * `AIChat.Reasoning` for free-form thinking text and this for multi-step tool
1187
+ * plans.
1188
+ *
1189
+ * @example
1190
+ * ```tsx
1191
+ * <AIChat.ChainOfThought defaultOpen>
1192
+ * <AIChat.ChainOfThoughtHeader />
1193
+ * <AIChat.ChainOfThoughtContent>
1194
+ * <AIChat.ChainOfThoughtStep label="Searching" status="complete" />
1195
+ * <AIChat.ChainOfThoughtStep label="Drafting the answer" status="active" />
1196
+ * </AIChat.ChainOfThoughtContent>
1197
+ * </AIChat.ChainOfThought>
1198
+ * ```
1199
+ */
1200
+ declare function ChainOfThought({ className, children, ...props }: ChainOfThoughtProps): JSX.Element;
1201
+
1202
+ declare function ChainOfThoughtContent({ className, ...props }: ChainOfThoughtContentProps): JSX.Element;
1203
+
1204
+ declare type ChainOfThoughtContentProps = ComponentProps<typeof DisclosurePanel>;
1205
+
1206
+ declare function ChainOfThoughtHeader({ label, className, ...props }: ChainOfThoughtHeaderProps): JSX.Element;
1207
+
1208
+ declare type ChainOfThoughtHeaderProps = Omit<ComponentProps<typeof DisclosureTrigger>, "children"> & {
1209
+ /** Overrides the default "Chain of thought" label. */
1210
+ label?: string;
1211
+ };
1212
+
1213
+ declare type ChainOfThoughtProps = Omit<ComponentProps<typeof DisclosureRoot>, "children"> & {
1214
+ children: ReactNode;
1215
+ };
1216
+
1217
+ declare function ChainOfThoughtSearchResult({ className, variant, children, }: ChainOfThoughtSearchResultProps): JSX.Element;
1218
+
1219
+ declare type ChainOfThoughtSearchResultProps = Pick<ComponentProps<typeof Badge>, "className" | "children" | "variant">;
1220
+
1221
+ declare function ChainOfThoughtSearchResults({ className, ...props }: ChainOfThoughtSearchResultsProps): JSX.Element;
1222
+
1223
+ declare type ChainOfThoughtSearchResultsProps = ComponentProps<"div">;
1224
+
1225
+ declare function ChainOfThoughtStep({ label, description, icon: Icon, status, className, children, ...props }: ChainOfThoughtStepProps): JSX.Element;
1226
+
1227
+ declare type ChainOfThoughtStepProps = ComponentProps<"div"> & {
1228
+ label: string;
1229
+ description?: string;
1230
+ /** Lucide icon for the marker; a plain dot when omitted. */
1231
+ icon?: LucideIcon;
1232
+ status?: ChainOfThoughtStepStatus;
1233
+ };
1234
+
1235
+ export declare type ChainOfThoughtStepStatus = "complete" | "active" | "pending";
1236
+
1237
+ /**
1238
+ * Grouped list of past conversations ("Today", "Previous 7 days", …) for
1239
+ * reopening an earlier chat. Layout-agnostic — render it in a popover, a
1240
+ * `Sheet`, or a sidebar section of a full chat page. Group titles and date
1241
+ * bucketing are the caller's own. Deleting is optional — pass `onDelete` to
1242
+ * reveal a delete button on hover.
1243
+ */
1244
+ declare function ChatHistory({ groups, activeId, onSelect, onDelete, className, ...props }: ChatHistoryProps): JSX.Element;
1245
+
1246
+ export declare type ChatHistoryGroupData = {
1247
+ title: string;
1248
+ items: ChatHistoryItemData[];
1249
+ };
1250
+
1251
+ export declare type ChatHistoryItemData = {
1252
+ id: string;
1253
+ title: string;
1254
+ };
1255
+
1256
+ declare type ChatHistoryProps = Omit<ComponentProps<"nav">, "onSelect"> & {
1257
+ groups: ChatHistoryGroupData[];
1258
+ activeId?: string;
1259
+ onSelect?: (id: string) => void;
1260
+ onDelete?: (id: string) => void;
1261
+ };
1262
+
1052
1263
  /**
1053
1264
  * A styled checkbox for boolean form fields.
1054
1265
  *
@@ -1360,6 +1571,13 @@ declare interface ColumnBase<TRow extends Record<string, unknown>> {
1360
1571
  * `type` is set). Always wins over the built-in renderer when both are
1361
1572
  * present.
1362
1573
  *
1574
+ * `render` is a **presentation** hook. Built-in behaviors that need the raw
1575
+ * cell value — such as truncation tooltips, cell context-menu copy/filter
1576
+ * actions, and typed renderers — still resolve that value from `accessor`
1577
+ * first, then `row[col.id]`. When neither exists, those behaviors fall back
1578
+ * to the return value of `render(row)` only if it is a primitive
1579
+ * (`string`/`number`/`boolean`/`bigint`).
1580
+ *
1363
1581
  * Kept on the base (not per-branch) so callback contextual typing works
1364
1582
  * across spread-then-override patterns like `column({ ...inferred, render })`.
1365
1583
  */
@@ -1367,17 +1585,21 @@ declare interface ColumnBase<TRow extends Record<string, unknown>> {
1367
1585
  /**
1368
1586
  * Custom header renderer.
1369
1587
  *
1370
- * When omitted, the built-in header renders `label` and, for sortable
1371
- * columns, owns the sort button and indicator. When provided, the return
1372
- * value replaces the built-in header entirely. Sortable custom headers
1373
- * receive `sortDirection` and `activateSort()` and must render their own
1374
- * click surface and sort indicator.
1588
+ * `header` is a **presentation** hook. When omitted, the built-in header
1589
+ * renders `label` and, for sortable columns, owns the sort button and
1590
+ * indicator. When provided, the return value replaces the built-in header
1591
+ * entirely. Sortable custom headers receive `sortDirection` and
1592
+ * `activateSort()` and must render their own click surface and sort
1593
+ * indicator for left-click sorting; built-in header context-menu actions are
1594
+ * still driven by `label`, `sort`, and other column metadata.
1375
1595
  */
1376
1596
  header?: (ctx: HeaderRenderContext) => ReactNode;
1377
1597
  /**
1378
- * Stable identifier used for column visibility toggling and as the React key.
1379
- * Falls back to `label` when omitted. Set this explicitly when `label` is
1380
- * absent or not unique.
1598
+ * Stable identifier used for column visibility toggling, persisted layout
1599
+ * state, raw-value fallback (`row[col.id]`), and as the React key. Falls
1600
+ * back to `label` when omitted. Set this explicitly when `label` is absent,
1601
+ * not unique, or when a custom-rendered column should still participate in
1602
+ * built-in cell behaviors that need a raw value.
1381
1603
  */
1382
1604
  id?: string;
1383
1605
  /** Fixed column width in pixels. When omitted the column sizes naturally. */
@@ -1402,9 +1624,8 @@ declare interface ColumnBase<TRow extends Record<string, unknown>> {
1402
1624
  align?: "left" | "right";
1403
1625
  /**
1404
1626
  * When `true`, the cell content is truncated with an ellipsis when it
1405
- * overflows. A `<Tooltip>` is wired up automatically when `accessor`
1406
- * returns a string or number, so hovering the cell reveals the full
1407
- * value.
1627
+ * overflows. A `<Tooltip>` is wired up automatically when the resolved raw
1628
+ * value is a string or number (`accessor` first, then `row[col.id]`).
1408
1629
  *
1409
1630
  * Truncation requires the cell to be shrinkable — the body cell sets
1410
1631
  * `max-w-0`, which collapses unless another column anchors the row width.
@@ -1413,19 +1634,24 @@ declare interface ColumnBase<TRow extends Record<string, unknown>> {
1413
1634
  */
1414
1635
  truncate?: boolean;
1415
1636
  /**
1416
- * Sort configuration. When set, the column header becomes clickable and
1417
- * cycles through `Asc → Desc → undefined`.
1637
+ * Sort configuration. When set, the column participates in built-in sort
1638
+ * behaviors such as the default clickable header and the header context-menu
1639
+ * sort submenu. Left-click sorting from a custom `header` still requires that
1640
+ * renderer to call `ctx.activateSort()`.
1641
+ *
1418
1642
  * Use `fieldTypeToSortConfig` or `inferColumns` to derive this automatically.
1419
1643
  */
1420
1644
  sort?: SortConfig;
1421
1645
  /**
1422
1646
  * Filter configuration. When set, this column appears as an option in
1423
- * `DataTable.Filters`.
1647
+ * `DataTable.Filters` and, when collection `control` is available, can also
1648
+ * drive the built-in cell context-menu filter actions.
1424
1649
  *
1425
1650
  * `operators` optionally narrows the conditions exposed by the built-in
1426
1651
  * filter UI for this column. Order controls both the menu order and the
1427
1652
  * default operator. This affects the DataTable UI only — collection control
1428
1653
  * APIs and persisted filter state still accept the full backend operator set.
1654
+ * The cell context-menu narrows this further to single-value operators only.
1429
1655
  *
1430
1656
  * Use `fieldTypeToFilterConfig` or `inferColumns` to derive this automatically.
1431
1657
  */
@@ -1523,11 +1749,13 @@ declare type Columns = 3 | 4;
1523
1749
  * - `type: "text"` rejects `typeOptions` entirely.
1524
1750
  *
1525
1751
  * `accessor` lives on each branch (rather than `ColumnBase`) so the built-in
1526
- * renderers can constrain what a column produces. Returning an array or a
1527
- * non-Date object is a compile error on a typed branch, instead of silently
1528
- * rendering `[object Object]`. Untyped columns (`type?: undefined`) still
1529
- * accept `unknown` — they're rendered by an explicit `render`. `null` and
1530
- * `undefined` are always allowed: every built-in renderer maps them to the
1752
+ * renderers can constrain what a column produces. It is also the primary
1753
+ * source of truth for built-in cell behaviors that need the raw value
1754
+ * (truncate tooltip, cell context-menu copy/filter actions). Returning an
1755
+ * array or a non-Date object is a compile error on a typed branch, instead of
1756
+ * silently rendering `[object Object]`. Untyped columns (`type?: undefined`)
1757
+ * still accept `unknown` — they're rendered by an explicit `render`. `null`
1758
+ * and `undefined` are always allowed: every built-in renderer maps them to the
1531
1759
  * `—` placeholder.
1532
1760
  *
1533
1761
  * Prefer `Column<TRow>` in most cases; this is exported so consumers can
@@ -1670,7 +1898,7 @@ declare namespace ComboboxGroupLabel {
1670
1898
  var displayName: string;
1671
1899
  }
1672
1900
 
1673
- declare function ComboboxInput({ className, ...props }: React_2.ComponentProps<typeof Combobox_2.Input>): JSX.Element;
1901
+ declare function ComboboxInput({ className, ref: forwardedRef, ...props }: React_2.ComponentProps<typeof Combobox_2.Input>): JSX.Element;
1674
1902
 
1675
1903
  declare namespace ComboboxInput {
1676
1904
  var displayName: string;
@@ -1939,51 +2167,76 @@ declare type CommonProps = {
1939
2167
  guards?: Guard[];
1940
2168
  };
1941
2169
 
1942
- declare function Content({ className, ...props }: React_2.ComponentProps<"div">): JSX.Element;
2170
+ /**
2171
+ * The chat's fixed footer: a `Textarea` body over one action row, following
2172
+ * the `form/composer` pattern — left side open for `actions`, right side fixed
2173
+ * to a single submit control. Enter submits and is IME-safe; Shift+Enter
2174
+ * inserts a newline. The submit button becomes Stop while the chat's `status`
2175
+ * is busy.
2176
+ *
2177
+ * Reads `status` from the surrounding `AIChat`.
2178
+ */
2179
+ declare function Composer({ onSubmit, onStop, value, defaultValue, onValueChange, placeholder, disabled, submitOnEnter, actions, className, }: AIChatComposerProps): JSX.Element;
2180
+
2181
+ /** The tooltip popup that displays additional information. */
2182
+ declare function Content({ className, position, side: _side, align: _align, sideOffset: _sideOffset, noArrow, children, ...restProps }: React_2.ComponentProps<typeof Tooltip_2.Popup> & {
2183
+ position?: PositionProps;
2184
+ noArrow?: boolean;
2185
+ /** @deprecated Use `position={{ side }}` instead. */
2186
+ side?: PositionProps["side"];
2187
+ /** @deprecated Use `position={{ align }}` instead. */
2188
+ align?: PositionProps["align"];
2189
+ /** @deprecated Use `position={{ sideOffset }}` instead. */
2190
+ sideOffset?: PositionProps["sideOffset"];
2191
+ }): JSX.Element;
1943
2192
 
1944
2193
  declare namespace Content {
1945
2194
  var displayName: string;
1946
2195
  }
1947
2196
 
1948
- /** The main dialog panel that contains the dialog content. Automatically includes a close button and overlay. */
1949
- declare function Content_2({ className, children, ...props }: React_2.ComponentProps<typeof Dialog_2.Popup>): JSX.Element;
2197
+ declare function Content_2({ className, ...props }: React_2.ComponentProps<"div">): JSX.Element;
1950
2198
 
1951
2199
  declare namespace Content_2 {
1952
2200
  var displayName: string;
1953
2201
  }
1954
2202
 
1955
- /** The menu popup that displays menu items. */
1956
- declare function Content_3({ className, position, children, ...restProps }: React_2.ComponentProps<typeof Menu_2.Popup> & {
1957
- position?: PositionProps;
1958
- }): JSX.Element;
2203
+ /** The main dialog panel that contains the dialog content. Automatically includes a close button and overlay. */
2204
+ declare function Content_3({ className, children, ...props }: React_2.ComponentProps<typeof Dialog_2.Popup>): JSX.Element;
1959
2205
 
1960
2206
  declare namespace Content_3 {
1961
2207
  var displayName: string;
1962
2208
  }
1963
2209
 
1964
- /** The main sheet panel. The `side` and modal behavior are inherited from `Sheet.Root` via context. */
1965
- declare function Content_4({ className, children, size, ...props }: SheetContentProps): JSX.Element;
2210
+ /** The menu popup that displays menu items. */
2211
+ declare function Content_4({ className, position, children, ...restProps }: React_2.ComponentProps<typeof Menu_2.Popup> & {
2212
+ position?: PositionProps;
2213
+ }): JSX.Element;
1966
2214
 
1967
2215
  declare namespace Content_4 {
1968
2216
  var displayName: string;
1969
2217
  }
1970
2218
 
1971
- /** The tooltip popup that displays additional information. */
1972
- declare function Content_5({ className, position, side: _side, align: _align, sideOffset: _sideOffset, noArrow, children, ...restProps }: React_2.ComponentProps<typeof Tooltip_2.Popup> & {
1973
- position?: PositionProps;
1974
- noArrow?: boolean;
1975
- /** @deprecated Use `position={{ side }}` instead. */
1976
- side?: PositionProps["side"];
1977
- /** @deprecated Use `position={{ align }}` instead. */
1978
- align?: PositionProps["align"];
1979
- /** @deprecated Use `position={{ sideOffset }}` instead. */
1980
- sideOffset?: PositionProps["sideOffset"];
1981
- }): JSX.Element;
2219
+ /** The main sheet panel. The `side` and modal behavior are inherited from `Sheet.Root` via context. */
2220
+ declare function Content_5({ className, children, size, ...props }: SheetContentProps): JSX.Element;
1982
2221
 
1983
2222
  declare namespace Content_5 {
1984
2223
  var displayName: string;
1985
2224
  }
1986
2225
 
2226
+ export declare type ContentContainerProps = {
2227
+ /**
2228
+ * Pinned chrome rendered above the scroll region — it stays put while the
2229
+ * content below it scrolls. Pass `<SidebarLayout.DefaultHeader />` for the
2230
+ * built-in top bar, your own node to replace it, or omit it entirely for a
2231
+ * bare content column.
2232
+ */
2233
+ header?: React.ReactNode;
2234
+ /** Extra classes for the content column itself (the `<main>` element). */
2235
+ className?: string;
2236
+ /** Scrolling page content. Usually `<SidebarLayout.Outlet />`. */
2237
+ children?: React.ReactNode;
2238
+ };
2239
+
1987
2240
  /**
1988
2241
  * Context data type inferred from AppShellRegister.
1989
2242
  * Falls back to Record<string, unknown> if not augmented.
@@ -2005,6 +2258,32 @@ declare namespace Control {
2005
2258
  var displayName: string;
2006
2259
  }
2007
2260
 
2261
+ /**
2262
+ * The transcript region: a scroll container that follows streaming output,
2263
+ * with a scroll-to-latest button that appears once the reader scrolls away.
2264
+ * While the reader is pinned to the bottom, growing content keeps the view
2265
+ * scrolled down; as soon as they scroll up to reread earlier messages,
2266
+ * following stops — a plain scrollIntoView-on-change can't tell the
2267
+ * difference and yanks the view back mid-read.
2268
+ *
2269
+ * Compose the transcript inside it from `AIChat.Message`, `AIChat.Response`,
2270
+ * and the other parts, or `AIChat.EmptyState` while there are no turns.
2271
+ */
2272
+ declare function Conversation({ className, autoScroll, children, ...props }: AIChatConversationProps): JSX.Element;
2273
+
2274
+ /**
2275
+ * Centered placeholder shown while the conversation has no turns yet. Stacks
2276
+ * `icon`, then the `title`/`description` block, then `children` — so starter
2277
+ * suggestions go in `children` alongside the text rather than replacing it.
2278
+ */
2279
+ declare function ConversationEmptyState({ className, title, description, icon, children, ...props }: ConversationEmptyStateProps): JSX.Element;
2280
+
2281
+ declare type ConversationEmptyStateProps = ComponentProps<"div"> & {
2282
+ title?: string;
2283
+ description?: string;
2284
+ icon?: ReactNode;
2285
+ };
2286
+
2008
2287
  /**
2009
2288
  * Creatable opt-in props. When `onCreateItem` is provided, the combobox allows
2010
2289
  * users to create new items on-the-fly.
@@ -2269,6 +2548,8 @@ export declare const DataTable: {
2269
2548
  * `useCollectionVariables()`, otherwise this component throws at render time.
2270
2549
  */
2271
2550
  readonly Filters: typeof DataTableFilters;
2551
+ /** Built-in column visibility, ordering, and pinning controls. */
2552
+ readonly ColumnSettings: typeof DataTableColumnSettings;
2272
2553
  /**
2273
2554
  * Renders `<table>` with built-in `Headers` and `Body`.
2274
2555
  * Place inside `DataTable.Root`.
@@ -2294,6 +2575,22 @@ export declare const DataTable: {
2294
2575
 
2295
2576
  declare type DataTableBooleanFilterOperator = OperatorForFilterType["boolean"];
2296
2577
 
2578
+ /**
2579
+ * A "Columns" toolbar popover with three drop zones — **Fixed left**,
2580
+ * **Scrollable**, and **Fixed right**. Drag a column into a zone to pin it to
2581
+ * that edge (or unpin it), and drag within a zone to reorder. Each row has a
2582
+ * visibility checkbox. State persists when `useDataTable` has a `tableId`.
2583
+ *
2584
+ * Place inside any toolbar or other action layout within `DataTable.Root`.
2585
+ */
2586
+ declare function DataTableColumnSettings({ className }: {
2587
+ className?: string;
2588
+ }): JSX.Element;
2589
+
2590
+ declare namespace DataTableColumnSettings {
2591
+ var displayName: string;
2592
+ }
2593
+
2297
2594
  /**
2298
2595
  * Context value provided by `DataTable.Root`.
2299
2596
  *
@@ -2773,6 +3070,28 @@ export declare type DefaultSidebarProps = {
2773
3070
  * Auto-generation is completely disabled when children is specified.
2774
3071
  */
2775
3072
  children?: React.ReactNode;
3073
+ /**
3074
+ * Hide the sidebar's own header row (org title + collapse toggle). Use when a
3075
+ * global top bar already owns those — e.g. `SidebarLayout topBar`.
3076
+ *
3077
+ * @default false
3078
+ */
3079
+ hideHeader?: boolean;
3080
+ /**
3081
+ * Hide the built-in Search entry. Use when the command palette is already
3082
+ * reachable elsewhere — e.g. a global search box in `SidebarLayout topBar`.
3083
+ *
3084
+ * @default false
3085
+ */
3086
+ hideSearch?: boolean;
3087
+ /**
3088
+ * Collapse to a narrow icon rail (icons stay visible) instead of sliding
3089
+ * fully off-canvas. The rail then stays visible at every width — including
3090
+ * mobile, where it replaces the off-canvas drawer with the icon-width rail.
3091
+ *
3092
+ * @default false
3093
+ */
3094
+ iconRail?: boolean;
2776
3095
  };
2777
3096
 
2778
3097
  /**
@@ -3070,20 +3389,37 @@ export declare interface DescriptionCardProps<TData extends object = Record<stri
3070
3389
  }
3071
3390
 
3072
3391
  export declare const Dialog: {
3073
- Root: typeof Root_6;
3392
+ Root: typeof Root_7;
3074
3393
  Close: typeof Close;
3075
- Content: typeof Content_2;
3394
+ Content: typeof Content_3;
3076
3395
  Description: typeof Description_2;
3077
3396
  Footer: typeof Footer_2;
3078
- Header: typeof Header_4;
3397
+ Header: typeof Header_5;
3079
3398
  Title: typeof Title_2;
3080
- Trigger: typeof Trigger;
3399
+ Trigger: typeof Trigger_2;
3081
3400
  };
3082
3401
 
3083
3402
  declare type DialogRootProps = Pick<React_2.ComponentProps<typeof Dialog_2.Root>, "open" | "defaultOpen" | "onOpenChange" | "modal"> & {
3084
3403
  children: React_2.ReactNode;
3085
3404
  };
3086
3405
 
3406
+ declare function DisclosurePanel({ className, ...props }: DisclosurePanelProps): JSX.Element;
3407
+
3408
+ declare type DisclosurePanelProps = React_2.ComponentProps<typeof Collapsible.Panel>;
3409
+
3410
+ declare function DisclosureRoot({ className, children, ...props }: DisclosureRootProps): JSX.Element;
3411
+
3412
+ declare type DisclosureRootProps = Pick<React_2.ComponentProps<typeof Collapsible.Root>, "open" | "defaultOpen" | "onOpenChange"> & {
3413
+ className?: string;
3414
+ children: React_2.ReactNode;
3415
+ };
3416
+
3417
+ declare function DisclosureTrigger({ className, children, ...props }: DisclosureTriggerProps): JSX.Element;
3418
+
3419
+ declare type DisclosureTriggerProps = Omit<React_2.ComponentProps<typeof Collapsible.Trigger>, "children"> & {
3420
+ children: React_2.ReactNode;
3421
+ };
3422
+
3087
3423
  /**
3088
3424
  * DocumentProgressCard — a generic, presentational card for a document's
3089
3425
  * lifecycle/fulfilment state: an optional headline percentage, a stacked
@@ -3154,6 +3490,8 @@ declare interface DocumentProgressSegment {
3154
3490
  color: DocumentProgressColor;
3155
3491
  }
3156
3492
 
3493
+ export declare const DynamicBreadcrumb: () => JSX.Element;
3494
+
3157
3495
  declare type DynamicLocales<Def extends Record<string, LabelValue>> = {
3158
3496
  [locale: string]: Partial<LabelDefinition<Def>> | undefined;
3159
3497
  };
@@ -3309,7 +3647,7 @@ declare namespace Fallback {
3309
3647
  }
3310
3648
 
3311
3649
  export declare const Field: {
3312
- Root: typeof Root_7;
3650
+ Root: typeof Root_8;
3313
3651
  Label: typeof Label;
3314
3652
  Control: typeof Control;
3315
3653
  Description: typeof Description_3;
@@ -3425,7 +3763,7 @@ declare type FieldRootProps = Pick<React_2.ComponentProps<typeof Field_2.Root>,
3425
3763
  };
3426
3764
 
3427
3765
  export declare const Fieldset: {
3428
- Root: typeof Root_8;
3766
+ Root: typeof Root_9;
3429
3767
  Legend: typeof Legend;
3430
3768
  };
3431
3769
 
@@ -3700,51 +4038,183 @@ declare type FormSubmitEventDetails = NonNullable<React_2.ComponentProps<typeof
3700
4038
  export { getLocalTimeZone }
3701
4039
 
3702
4040
  /**
3703
- * Hand-rolled segmented-date-field state.
4041
+ * GlobalHeader — the app-wide top bar for {@link GlobalHeaderLayout}.
3704
4042
  *
3705
- * This is the logic react-aria's `useDateFieldState` would otherwise provide.
3706
- * We own it here: locale-driven segment ordering (via `DateFormatter`), per-
3707
- * segment spinbutton semantics (increment/decrement with context-aware limits),
3708
- * numeric type-to-fill with auto-advance, and value-type discrimination by
3709
- * `granularity`. No `Date` ever escapes — `onChange` emits `@internationalized/date`
3710
- * values (or `null`).
4043
+ * Codifies the header layout so consumers don't hand-assemble it: the app title
4044
+ * (from `AppShell`) and the route-driven breadcrumb sit on the left, and the
4045
+ * `actions` cluster (defaulting to the appearance switcher) on the right.
4046
+ *
4047
+ * Use it via the `GlobalHeaderLayout.DefaultHeader` namespace.
4048
+ *
4049
+ * @example
4050
+ * ```tsx
4051
+ * <GlobalHeaderLayout
4052
+ * header={
4053
+ * <GlobalHeaderLayout.DefaultHeader
4054
+ * actions={[<AccountMenu key="account" />, <AppearanceSwitcher key="appearance" />]}
4055
+ * />
4056
+ * }
4057
+ * />
4058
+ * ```
3711
4059
  */
3712
- declare type Granularity = "day" | "hour" | "minute" | "second";
3713
-
3714
- export declare const Grid: React_2.ForwardRefExoticComponent<Omit<GridProps, "ref"> & React_2.RefAttributes<HTMLDivElement>> & {
3715
- Item: React_2.ForwardRefExoticComponent<Omit<GridItemProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
4060
+ export declare const GlobalHeader: {
4061
+ ({ actions }: GlobalHeaderProps): JSX.Element;
4062
+ displayName: string;
3716
4063
  };
3717
4064
 
3718
4065
  /**
3719
- * Props for {@link Grid.Item} — a grid cell that spans or is placed explicitly.
4066
+ * GlobalHeaderLayout — the app-shell layout with an app-wide header above the
4067
+ * whole shell and a sidebar that collapses to a persistent icon rail.
3720
4068
  *
3721
- * Only needed when a child must span multiple tracks or be positioned; plain
3722
- * children render in a single cell without it.
4069
+ * It is a thin, opinionated wrapper over {@link SidebarLayout}: it wires the
4070
+ * global top bar, drops the sidebar's own header, and turns on the icon rail so
4071
+ * consumers get the intended experience without reconstructing it from
4072
+ * individual props. Reach for `SidebarLayout` directly when you need the
4073
+ * flexible primitive instead.
4074
+ *
4075
+ * @example
4076
+ * ```tsx
4077
+ * <GlobalHeaderLayout
4078
+ * header={<GlobalHeaderLayout.DefaultHeader actions={[<AppearanceSwitcher key="a" />]} />}
4079
+ * sidebar={
4080
+ * <GlobalHeaderLayout.DefaultSidebar>
4081
+ * <SidebarItem to="/" />
4082
+ * <SidebarGroup title="Main" icon={<LayersIcon />}>
4083
+ * <SidebarItem to="/dashboard" />
4084
+ * <SidebarItem to="/orders" />
4085
+ * </SidebarGroup>
4086
+ * </GlobalHeaderLayout.DefaultSidebar>
4087
+ * }
4088
+ * >
4089
+ * {({ Outlet }) => <Outlet />}
4090
+ * </GlobalHeaderLayout>
4091
+ * ```
3723
4092
  */
3724
- export declare interface GridItemProps extends React_2.ComponentProps<"div"> {
3725
- /** Number of columns to span, or `"full"` to span all columns. Responsive. */
3726
- colSpan?: Responsive<number | "full">;
3727
- /** Number of rows to span, or `"full"` to span all rows. Responsive. */
3728
- rowSpan?: Responsive<number | "full">;
3729
- /** 1-based column line to start at (`grid-column-start`). Responsive. */
3730
- colStart?: Responsive<number>;
3731
- /** 1-based column line to end at (`grid-column-end`). Responsive. */
3732
- colEnd?: Responsive<number>;
4093
+ export declare function GlobalHeaderLayout(props: GlobalHeaderLayoutProps): JSX.Element;
4094
+
4095
+ export declare namespace GlobalHeaderLayout {
4096
+ var DefaultHeader: {
4097
+ ({ actions }: GlobalHeaderProps): JSX.Element;
4098
+ displayName: string;
4099
+ };
4100
+ var DefaultSidebar: {
4101
+ ({ footer, ...rest }: DefaultSidebarProps): JSX.Element;
4102
+ displayName: string;
4103
+ };
4104
+ var ContentContainer: {
4105
+ ({ header, className, children }: ContentContainerProps): JSX.Element;
4106
+ displayName: string;
4107
+ };
4108
+ var Outlet: () => JSX.Element;
4109
+ var Trigger: {
4110
+ ({ className, onClick }: TriggerProps): JSX.Element;
4111
+ displayName: string;
4112
+ };
4113
+ var Breadcrumb: () => JSX.Element;
3733
4114
  }
3734
4115
 
3735
4116
  /**
3736
- * Props for the {@link Grid} component.
3737
- *
3738
- * `Grid` is a generic, presentational CSS-Grid container. It does not assume
3739
- * any data shape — children flow into the tracks defined by `columns`/`rows`.
4117
+ * The eject: you own the whole region beside the sidebar (e.g. a table-of-
4118
+ * contents rail + content + an assistant panel), composed from the namespaced
4119
+ * building blocks. See {@link SidebarLayout}'s `body` slot.
3740
4120
  */
3741
- export declare interface GridProps extends React_2.ComponentProps<"div"> {
4121
+ declare type GlobalHeaderLayoutBodyProps = GlobalHeaderLayoutCommonProps & {
4122
+ body: React.ReactNode;
4123
+ children?: never;
4124
+ };
4125
+
4126
+ declare type GlobalHeaderLayoutCommonProps = {
3742
4127
  /**
3743
- * Column tracks. A number creates that many equal columns
3744
- * (`repeat(n, minmax(0, 1fr))`); a string is used verbatim as a
3745
- * `grid-template-columns` value (e.g. `"280px 1fr"`). Responsive.
4128
+ * The app-wide top bar, spanning above the sidebar and content.
4129
+ *
4130
+ * @default <GlobalHeaderLayout.DefaultHeader />
3746
4131
  */
3747
- columns?: Responsive<number | string>;
4132
+ header?: React.ReactNode;
4133
+ /**
4134
+ * The primary sidebar.
4135
+ *
4136
+ * @default <GlobalHeaderLayout.DefaultSidebar />
4137
+ */
4138
+ sidebar?: React.ReactNode;
4139
+ /** Whether the sidebar is expanded by default on desktop. @default true */
4140
+ defaultOpen?: boolean;
4141
+ /** Whether the sidebar can be collapsed. @default true */
4142
+ collapsible?: boolean;
4143
+ };
4144
+
4145
+ /** Default content layout — you render the page via the `Outlet` render prop. */
4146
+ declare type GlobalHeaderLayoutDefaultProps = GlobalHeaderLayoutCommonProps & {
4147
+ children?: (props: {
4148
+ Outlet: () => React.ReactNode;
4149
+ }) => React.ReactNode;
4150
+ /** Not available alongside `children` — see the `body` overload. */
4151
+ body?: never;
4152
+ };
4153
+
4154
+ export declare type GlobalHeaderLayoutProps = GlobalHeaderLayoutDefaultProps | GlobalHeaderLayoutBodyProps;
4155
+
4156
+ export declare type GlobalHeaderProps = {
4157
+ /**
4158
+ * The right-hand cluster of the header. Rendered in a horizontal,
4159
+ * vertically-centered row with consistent spacing — you don't wrap it
4160
+ * yourself. Accepts a single node or an array of nodes.
4161
+ *
4162
+ * **`actions` replaces the entire right-hand cluster, including the
4163
+ * appearance switcher.** When omitted, it defaults to just the
4164
+ * `<AppearanceSwitcher />`. Include `<AppearanceSwitcher />` in your array to
4165
+ * keep it. Passing `actions={[]}` renders an empty right side.
4166
+ *
4167
+ * @default [<AppearanceSwitcher />]
4168
+ */
4169
+ actions?: React.ReactNode | React.ReactNode[];
4170
+ };
4171
+
4172
+ /**
4173
+ * Hand-rolled segmented-date-field state.
4174
+ *
4175
+ * This is the logic react-aria's `useDateFieldState` would otherwise provide.
4176
+ * We own it here: locale-driven segment ordering (via `DateFormatter`), per-
4177
+ * segment spinbutton semantics (increment/decrement with context-aware limits),
4178
+ * numeric type-to-fill with auto-advance, and value-type discrimination by
4179
+ * `granularity`. No `Date` ever escapes — `onChange` emits `@internationalized/date`
4180
+ * values (or `null`).
4181
+ */
4182
+ declare type Granularity = "day" | "hour" | "minute" | "second";
4183
+
4184
+ export declare const Grid: React_2.ForwardRefExoticComponent<Omit<GridProps, "ref"> & React_2.RefAttributes<HTMLDivElement>> & {
4185
+ Item: React_2.ForwardRefExoticComponent<Omit<GridItemProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
4186
+ };
4187
+
4188
+ /**
4189
+ * Props for {@link Grid.Item} — a grid cell that spans or is placed explicitly.
4190
+ *
4191
+ * Only needed when a child must span multiple tracks or be positioned; plain
4192
+ * children render in a single cell without it.
4193
+ */
4194
+ export declare interface GridItemProps extends React_2.ComponentProps<"div"> {
4195
+ /** Number of columns to span, or `"full"` to span all columns. Responsive. */
4196
+ colSpan?: Responsive<number | "full">;
4197
+ /** Number of rows to span, or `"full"` to span all rows. Responsive. */
4198
+ rowSpan?: Responsive<number | "full">;
4199
+ /** 1-based column line to start at (`grid-column-start`). Responsive. */
4200
+ colStart?: Responsive<number>;
4201
+ /** 1-based column line to end at (`grid-column-end`). Responsive. */
4202
+ colEnd?: Responsive<number>;
4203
+ }
4204
+
4205
+ /**
4206
+ * Props for the {@link Grid} component.
4207
+ *
4208
+ * `Grid` is a generic, presentational CSS-Grid container. It does not assume
4209
+ * any data shape — children flow into the tracks defined by `columns`/`rows`.
4210
+ */
4211
+ export declare interface GridProps extends React_2.ComponentProps<"div"> {
4212
+ /**
4213
+ * Column tracks. A number creates that many equal columns
4214
+ * (`repeat(n, minmax(0, 1fr))`); a string is used verbatim as a
4215
+ * `grid-template-columns` value (e.g. `"280px 1fr"`). Responsive.
4216
+ */
4217
+ columns?: Responsive<number | string>;
3748
4218
  /**
3749
4219
  * Row tracks. A number creates that many equal rows
3750
4220
  * (`repeat(n, minmax(0, 1fr))`); a string is used verbatim as a
@@ -3781,6 +4251,13 @@ declare namespace Group {
3781
4251
  var displayName: string;
3782
4252
  }
3783
4253
 
4254
+ /** A related group of controls within a toolbar row. */
4255
+ declare function Group_2({ className, ...props }: ToolbarGroupProps): JSX.Element;
4256
+
4257
+ declare namespace Group_2 {
4258
+ var displayName: string;
4259
+ }
4260
+
3784
4261
  /** An accessible label that is automatically associated with its parent group. */
3785
4262
  declare function GroupLabel({ className, ...props }: React_2.ComponentProps<typeof Menu_2.GroupLabel>): JSX.Element;
3786
4263
 
@@ -3827,6 +4304,13 @@ declare namespace Head {
3827
4304
  var displayName: string;
3828
4305
  }
3829
4306
 
4307
+ /**
4308
+ * Fixed strip above the transcript: a leading graphic and title on the left,
4309
+ * an open action slot on the right, closed by a rule that runs the full width
4310
+ * of the surface.
4311
+ */
4312
+ declare function Header({ title, icon, actions, className }: AIChatHeaderProps): JSX.Element;
4313
+
3830
4314
  /**
3831
4315
  * Layout.Header — Page-level header with title, actions, and an optional
3832
4316
  * full-width slot.
@@ -3866,36 +4350,36 @@ declare namespace Head {
3866
4350
  * </Layout>
3867
4351
  * ```
3868
4352
  */
3869
- declare function Header({ title, actions, children }: LayoutHeaderProps): JSX.Element;
4353
+ declare function Header_2({ title, actions, children }: LayoutHeaderProps): JSX.Element;
3870
4354
 
3871
- declare namespace Header {
4355
+ declare namespace Header_2 {
3872
4356
  var displayName: string;
3873
4357
  }
3874
4358
 
3875
4359
  /** The table header section (`<thead>`). */
3876
- declare function Header_2({ className, ...props }: React_2.ComponentProps<"thead">): JSX.Element;
4360
+ declare function Header_3({ className, ...props }: React_2.ComponentProps<"thead">): JSX.Element;
3877
4361
 
3878
- declare namespace Header_2 {
4362
+ declare namespace Header_3 {
3879
4363
  var displayName: string;
3880
4364
  }
3881
4365
 
3882
- declare function Header_3({ className, title, description, children, ...props }: HeaderProps): JSX.Element;
4366
+ declare function Header_4({ className, title, description, children, ...props }: HeaderProps): JSX.Element;
3883
4367
 
3884
- declare namespace Header_3 {
4368
+ declare namespace Header_4 {
3885
4369
  var displayName: string;
3886
4370
  }
3887
4371
 
3888
4372
  /** A layout wrapper for the dialog title and description. */
3889
- declare function Header_4({ className, ...props }: React_2.ComponentProps<"div">): JSX.Element;
4373
+ declare function Header_5({ className, ...props }: React_2.ComponentProps<"div">): JSX.Element;
3890
4374
 
3891
- declare namespace Header_4 {
4375
+ declare namespace Header_5 {
3892
4376
  var displayName: string;
3893
4377
  }
3894
4378
 
3895
4379
  /** A layout wrapper for the sheet title, close button, and optional action buttons. */
3896
- declare function Header_5({ className, action, children, ...props }: SheetHeaderProps): JSX.Element;
4380
+ declare function Header_6({ className, action, children, ...props }: SheetHeaderProps): JSX.Element;
3897
4381
 
3898
- declare namespace Header_5 {
4382
+ declare namespace Header_6 {
3899
4383
  var displayName: string;
3900
4384
  }
3901
4385
 
@@ -3981,7 +4465,7 @@ declare type InferredFieldFilterType<TTable extends TableMetadata, TFieldName ex
3981
4465
  * <Input type="email" disabled />
3982
4466
  * ```
3983
4467
  */
3984
- export declare function Input({ className, type, ...props }: InputProps): JSX.Element;
4468
+ export declare function Input({ className, type, ref: forwardedRef, ...props }: InputProps): JSX.Element;
3985
4469
 
3986
4470
  export declare type InputProps = React_2.ComponentProps<"input">;
3987
4471
 
@@ -4105,7 +4589,7 @@ export declare const Layout: LayoutComponent;
4105
4589
  */
4106
4590
  declare type LayoutComponent = typeof LayoutRoot & {
4107
4591
  Column: typeof Column_2;
4108
- Header: typeof Header;
4592
+ Header: typeof Header_2;
4109
4593
  };
4110
4594
 
4111
4595
  /**
@@ -4134,12 +4618,7 @@ export declare interface LayoutProps {
4134
4618
  className?: string;
4135
4619
  /** Inline styles */
4136
4620
  style?: CSSProperties;
4137
- /**
4138
- * Gap between columns (default: 4 = 16px)
4139
- *
4140
- * @deprecated Remove the `gap` prop and use `className` with the `astw:` prefix
4141
- * (e.g. `className="astw:gap-6"`) to override the default gap.
4142
- */
4621
+ /** Gap between columns (default: 4 = 16px; supported steps: 4, 6, and 8). */
4143
4622
  gap?: number;
4144
4623
  /** Header title - displayed at the top of the layout
4145
4624
  *
@@ -4217,6 +4696,11 @@ declare type LocalizedString = string | ((locale: string) => string);
4217
4696
 
4218
4697
  export { Location_2 as Location }
4219
4698
 
4699
+ declare type Login = {
4700
+ (): ReturnType<AuthClient["login"]>;
4701
+ (options: NonNullable<Parameters<AuthClient["login"]>[0]>): ReturnType<AuthClient["login"]>;
4702
+ };
4703
+
4220
4704
  /** Shape returned by `mapItem` to describe how an item appears in the dropdown. */
4221
4705
  export declare interface MappedItem {
4222
4706
  /** Display text — used for filtering, a11y, and fallback display. */
@@ -4228,9 +4712,9 @@ export declare interface MappedItem {
4228
4712
  }
4229
4713
 
4230
4714
  export declare const Menu: {
4231
- Root: typeof Root_9;
4232
- Trigger: typeof Trigger_2;
4233
- Content: typeof Content_3;
4715
+ Root: typeof Root_10;
4716
+ Trigger: typeof Trigger_3;
4717
+ Content: typeof Content_4;
4234
4718
  Item: typeof Item_2;
4235
4719
  LinkItem: typeof LinkItem;
4236
4720
  CheckboxItem: typeof CheckboxItem;
@@ -4256,6 +4740,21 @@ declare namespace MenuSeparator {
4256
4740
  var displayName: string;
4257
4741
  }
4258
4742
 
4743
+ /**
4744
+ * One turn in the conversation. User turns render as a right-aligned primary
4745
+ * bubble; assistant turns take the full width with no bubble, leaving room
4746
+ * for reasoning, tool calls, and citations to stack above the response text.
4747
+ * `data-from` is the styling hook for callers who need to target a turn from
4748
+ * outside.
4749
+ */
4750
+ declare function Message({ className, from, children, ...props }: MessageProps): JSX.Element;
4751
+
4752
+ declare type MessageProps = Omit<React_2.ComponentProps<"div">, "children"> & {
4753
+ /** Who sent the turn — styles the alignment and bubble. */
4754
+ from: "user" | "assistant";
4755
+ children: React_2.ReactNode;
4756
+ };
4757
+
4259
4758
  declare type MetadataFieldFilterOptions<TType extends FilterConfig["type"] = FilterConfig["type"]> = {
4260
4759
  operators?: NonEmptyReadonlyArray<DataTableUiFilterOperatorByType[TType]>;
4261
4760
  };
@@ -4644,6 +5143,44 @@ export declare interface RangeCalendarProps<T extends DateValue = DateValue> {
4644
5143
  locale?: string;
4645
5144
  }
4646
5145
 
5146
+ /**
5147
+ * Collapsible "thinking" block for models that stream reasoning before the
5148
+ * final answer. Follows the stream — open while tokens arrive, closed once
5149
+ * they stop — until the reader toggles it, after which their choice sticks.
5150
+ *
5151
+ * @example
5152
+ * ```tsx
5153
+ * <AIChat.Reasoning isStreaming={reasoning.streaming} duration={reasoning.duration}>
5154
+ * <AIChat.ReasoningTrigger />
5155
+ * <AIChat.ReasoningContent>{reasoning.text}</AIChat.ReasoningContent>
5156
+ * </AIChat.Reasoning>
5157
+ * ```
5158
+ */
5159
+ declare function Reasoning({ className, isStreaming, duration, defaultOpen, children, ...props }: ReasoningProps): JSX.Element;
5160
+
5161
+ declare function ReasoningContent({ children, className, ...props }: ReasoningContentProps): JSX.Element;
5162
+
5163
+ declare type ReasoningContentProps = Omit<ComponentProps<typeof DisclosurePanel>, "children"> & {
5164
+ children: string;
5165
+ };
5166
+
5167
+ declare type ReasoningProps = ComponentProps<"div"> & {
5168
+ /** True while reasoning tokens are still arriving. */
5169
+ isStreaming?: boolean;
5170
+ /** Seconds spent thinking; shown in the trigger once streaming ends. */
5171
+ duration?: number;
5172
+ /** Keep the block open even when no tokens are streaming. */
5173
+ defaultOpen?: boolean;
5174
+ children: ReactNode;
5175
+ };
5176
+
5177
+ declare function ReasoningTrigger({ label, className, ...props }: ReasoningTriggerProps): JSX.Element;
5178
+
5179
+ declare type ReasoningTriggerProps = Omit<ComponentProps<typeof DisclosureTrigger>, "children"> & {
5180
+ /** Overrides the default "Thinking… / Thought for Ns" label. */
5181
+ label?: string;
5182
+ };
5183
+
4647
5184
  /**
4648
5185
  * Redirect to another path.
4649
5186
  *
@@ -4702,6 +5239,20 @@ declare type ResourceMeta = {
4702
5239
  breadcrumbTitle?: string | ((segment: string) => string);
4703
5240
  };
4704
5241
 
5242
+ /**
5243
+ * Renders the markdown subset a streamed LLM response actually emits — bold,
5244
+ * inline code, links, headings, and bullet/numbered lists — without a
5245
+ * markdown dependency. For full CommonMark (tables, nested lists, math), swap
5246
+ * this for `react-markdown` or the AI SDK's `streamdown`; call sites keep the
5247
+ * same `<AIChat.Response>{text}</AIChat.Response>` shape either way.
5248
+ */
5249
+ declare function Response_2({ children, className }: ResponseProps): JSX.Element;
5250
+
5251
+ declare type ResponseProps = {
5252
+ children: string;
5253
+ className?: string;
5254
+ };
5255
+
4705
5256
  /**
4706
5257
  * A value that can either be a single value applied at all breakpoints, or an
4707
5258
  * object keyed by breakpoint for responsive behavior.
@@ -4714,12 +5265,47 @@ declare type ResourceMeta = {
4714
5265
  */
4715
5266
  declare type Responsive<T> = T | Partial<Record<Breakpoint, T>>;
4716
5267
 
4717
- declare function Root({ className, variant, action, dismissible, onDismiss, children, ...props }: RootProps): JSX.Element | null;
5268
+ /**
5269
+ * The root component that manages tooltip open/close state.
5270
+ *
5271
+ * @example
5272
+ * ```tsx
5273
+ * <Tooltip.Root>
5274
+ * <Tooltip.Trigger render={<Button variant="outline" />}>
5275
+ * Hover me
5276
+ * </Tooltip.Trigger>
5277
+ * <Tooltip.Content>Helpful information</Tooltip.Content>
5278
+ * </Tooltip.Root>
5279
+ * ```
5280
+ */
5281
+ declare function Root({ children, ...props }: TooltipRootProps): JSX.Element;
4718
5282
 
4719
5283
  declare namespace Root {
4720
5284
  var displayName: string;
4721
5285
  }
4722
5286
 
5287
+ /**
5288
+ * The root component that manages menu open/close state.
5289
+ *
5290
+ * @example
5291
+ * ```tsx
5292
+ * <Menu.Root>
5293
+ * <Menu.Trigger>Open menu</Menu.Trigger>
5294
+ * <Menu.Content>
5295
+ * <Menu.Item>Edit</Menu.Item>
5296
+ * <Menu.Item>Duplicate</Menu.Item>
5297
+ * <Menu.Separator />
5298
+ * <Menu.Item>Delete</Menu.Item>
5299
+ * </Menu.Content>
5300
+ * </Menu.Root>
5301
+ * ```
5302
+ */
5303
+ declare function Root_10({ children, ...props }: MenuRootProps): JSX.Element;
5304
+
5305
+ declare namespace Root_10 {
5306
+ var displayName: string;
5307
+ }
5308
+
4723
5309
  /**
4724
5310
  * The root component that manages sheet open/close state.
4725
5311
  * The `side` prop controls which edge of the screen the sheet slides in from.
@@ -4740,9 +5326,9 @@ declare namespace Root {
4740
5326
  * </Sheet.Root>
4741
5327
  * ```
4742
5328
  */
4743
- declare function Root_10({ side, modal, ...props }: SheetRootProps): JSX.Element;
5329
+ declare function Root_11({ side, modal, ...props }: SheetRootProps): JSX.Element;
4744
5330
 
4745
- declare namespace Root_10 {
5331
+ declare namespace Root_11 {
4746
5332
  var displayName: string;
4747
5333
  }
4748
5334
 
@@ -4763,28 +5349,16 @@ declare namespace Root_10 {
4763
5349
  * </Tabs.Root>
4764
5350
  * ```
4765
5351
  */
4766
- declare function Root_11({ className, children, variant, size, ...props }: RootProps_3): JSX.Element;
5352
+ declare function Root_12({ className, children, variant, size, ...props }: RootProps_3): JSX.Element;
4767
5353
 
4768
- declare namespace Root_11 {
5354
+ declare namespace Root_12 {
4769
5355
  var displayName: string;
4770
5356
  }
4771
5357
 
4772
- /**
4773
- * The root component that manages tooltip open/close state.
4774
- *
4775
- * @example
4776
- * ```tsx
4777
- * <Tooltip.Root>
4778
- * <Tooltip.Trigger render={<Button variant="outline" />}>
4779
- * Hover me
4780
- * </Tooltip.Trigger>
4781
- * <Tooltip.Content>Helpful information</Tooltip.Content>
4782
- * </Tooltip.Root>
4783
- * ```
4784
- */
4785
- declare function Root_12({ children, ...props }: TooltipRootProps): JSX.Element;
5358
+ /** A full-width visual container for one or more rows of related controls. */
5359
+ declare function Root_13({ className, ...props }: ToolbarProps): JSX.Element;
4786
5360
 
4787
- declare namespace Root_12 {
5361
+ declare namespace Root_13 {
4788
5362
  var displayName: string;
4789
5363
  }
4790
5364
 
@@ -4802,18 +5376,24 @@ declare namespace Root_12 {
4802
5376
  * </Timeline.Root>
4803
5377
  * ```
4804
5378
  */
4805
- declare function Root_13({ start, end, children, className, style }: TimelineRootProps): JSX.Element;
5379
+ declare function Root_14({ start, end, children, className, style }: TimelineRootProps): JSX.Element;
4806
5380
 
4807
- declare namespace Root_13 {
5381
+ declare namespace Root_14 {
4808
5382
  var displayName: string;
4809
5383
  }
4810
5384
 
4811
- declare function Root_2<T extends ActivityCardBaseItem>({ items, title, maxVisible, overflowLabel, groupBy, className, children, }: ActivityCardRootProps<T>): JSX.Element;
5385
+ declare function Root_2({ className, variant, action, dismissible, onDismiss, children, ...props }: RootProps): JSX.Element | null;
4812
5386
 
4813
5387
  declare namespace Root_2 {
4814
5388
  var displayName: string;
4815
5389
  }
4816
5390
 
5391
+ declare function Root_3<T extends ActivityCardBaseItem>({ items, title, maxVisible, overflowLabel, groupBy, className, children, }: ActivityCardRootProps<T>): JSX.Element;
5392
+
5393
+ declare namespace Root_3 {
5394
+ var displayName: string;
5395
+ }
5396
+
4817
5397
  /**
4818
5398
  * Root container for an avatar (image with optional fallback).
4819
5399
  *
@@ -4827,9 +5407,9 @@ declare namespace Root_2 {
4827
5407
  * </Avatar.Root>
4828
5408
  * ```
4829
5409
  */
4830
- declare function Root_3({ className, size, ...props }: AvatarProps): JSX.Element;
5410
+ declare function Root_4({ className, size, ...props }: AvatarProps): JSX.Element;
4831
5411
 
4832
- declare namespace Root_3 {
5412
+ declare namespace Root_4 {
4833
5413
  var displayName: string;
4834
5414
  }
4835
5415
 
@@ -4856,15 +5436,15 @@ declare namespace Root_3 {
4856
5436
  * </Table.Root>
4857
5437
  * ```
4858
5438
  */
4859
- declare function Root_4({ className, containerClassName, containerRef, ...props }: RootProps_2): JSX.Element;
5439
+ declare function Root_5({ className, containerClassName, containerRef, ...props }: RootProps_2): JSX.Element;
4860
5440
 
4861
- declare namespace Root_4 {
5441
+ declare namespace Root_5 {
4862
5442
  var displayName: string;
4863
5443
  }
4864
5444
 
4865
- declare function Root_5({ className, ...props }: React_2.ComponentProps<"div">): JSX.Element;
5445
+ declare function Root_6({ className, ...props }: React_2.ComponentProps<"div">): JSX.Element;
4866
5446
 
4867
- declare namespace Root_5 {
5447
+ declare namespace Root_6 {
4868
5448
  var displayName: string;
4869
5449
  }
4870
5450
 
@@ -4888,9 +5468,9 @@ declare namespace Root_5 {
4888
5468
  * </Dialog.Root>
4889
5469
  * ```
4890
5470
  */
4891
- declare function Root_6({ ...props }: DialogRootProps): JSX.Element;
5471
+ declare function Root_7({ ...props }: DialogRootProps): JSX.Element;
4892
5472
 
4893
- declare namespace Root_6 {
5473
+ declare namespace Root_7 {
4894
5474
  var displayName: string;
4895
5475
  }
4896
5476
 
@@ -4941,37 +5521,15 @@ declare namespace Root_6 {
4941
5521
  * > error routing, add `name={field.name}` to `Field.Root` so errors can be
4942
5522
  * > matched by field name.
4943
5523
  */
4944
- declare function Root_7({ className, children, isTouched, isDirty, invalid, error, isValidating: _isValidating, ...props }: FieldRootProps & {
5524
+ declare function Root_8({ className, children, isTouched, isDirty, invalid, error, isValidating: _isValidating, ...props }: FieldRootProps & {
4945
5525
  isValidating?: unknown;
4946
5526
  }): JSX.Element;
4947
5527
 
4948
- declare namespace Root_7 {
4949
- var displayName: string;
4950
- }
4951
-
4952
- declare function Root_8({ className, ...props }: FieldsetRootProps): JSX.Element;
4953
-
4954
5528
  declare namespace Root_8 {
4955
5529
  var displayName: string;
4956
5530
  }
4957
5531
 
4958
- /**
4959
- * The root component that manages menu open/close state.
4960
- *
4961
- * @example
4962
- * ```tsx
4963
- * <Menu.Root>
4964
- * <Menu.Trigger>Open menu</Menu.Trigger>
4965
- * <Menu.Content>
4966
- * <Menu.Item>Edit</Menu.Item>
4967
- * <Menu.Item>Duplicate</Menu.Item>
4968
- * <Menu.Separator />
4969
- * <Menu.Item>Delete</Menu.Item>
4970
- * </Menu.Content>
4971
- * </Menu.Root>
4972
- * ```
4973
- */
4974
- declare function Root_9({ children, ...props }: MenuRootProps): JSX.Element;
5532
+ declare function Root_9({ className, ...props }: FieldsetRootProps): JSX.Element;
4975
5533
 
4976
5534
  declare namespace Root_9 {
4977
5535
  var displayName: string;
@@ -4990,8 +5548,11 @@ declare type RootConfiguration = {
4990
5548
  };
4991
5549
 
4992
5550
  declare type RootProps = React_2.ComponentProps<"div"> & VariantProps<typeof alertVariants> & {
5551
+ /** Action element rendered below the description */
4993
5552
  action?: React_2.ReactNode;
5553
+ /** Shows a dismiss button; hides the alert when clicked */
4994
5554
  dismissible?: boolean;
5555
+ /** Callback invoked when the dismiss button is clicked */
4995
5556
  onDismiss?: () => void;
4996
5557
  };
4997
5558
 
@@ -5030,6 +5591,13 @@ declare namespace Row {
5030
5591
  var displayName: string;
5031
5592
  }
5032
5593
 
5594
+ /** One independently navigable horizontal row of toolbar controls. */
5595
+ declare function Row_2({ className, justify, onKeyDown, ref: forwardedRef, ...props }: ToolbarRowProps): JSX.Element;
5596
+
5597
+ declare namespace Row_2 {
5598
+ var displayName: string;
5599
+ }
5600
+
5033
5601
  /**
5034
5602
  * A single body row.
5035
5603
  *
@@ -5043,9 +5611,9 @@ declare namespace Row {
5043
5611
  * </Timeline.Row>
5044
5612
  * ```
5045
5613
  */
5046
- declare function Row_2({ children, className, style, height, background }: TimelineRowProps): JSX.Element;
5614
+ declare function Row_3({ children, className, style, height, background }: TimelineRowProps): JSX.Element;
5047
5615
 
5048
- declare namespace Row_2 {
5616
+ declare namespace Row_3 {
5049
5617
  var displayName: string;
5050
5618
  }
5051
5619
 
@@ -5374,7 +5942,7 @@ declare type SelectStandaloneProps<I> = ({
5374
5942
  items: I[];
5375
5943
  } & SelectPropsMultiple<ExtractItem<I>>);
5376
5944
 
5377
- declare function SelectTrigger({ className, children, ...props }: React_2.ComponentProps<typeof Select_2.Trigger>): JSX.Element;
5945
+ declare function SelectTrigger({ className, children, ref: forwardedRef, ...props }: React_2.ComponentProps<typeof Select_2.Trigger>): JSX.Element;
5378
5946
 
5379
5947
  declare namespace SelectTrigger {
5380
5948
  var displayName: string;
@@ -5386,6 +5954,13 @@ declare namespace SelectValue {
5386
5954
  var displayName: string;
5387
5955
  }
5388
5956
 
5957
+ /** A vertical separator for groups within a horizontal toolbar row. */
5958
+ declare function Separator({ className, ...props }: ToolbarSeparatorProps): JSX.Element;
5959
+
5960
+ declare namespace Separator {
5961
+ var displayName: string;
5962
+ }
5963
+
5389
5964
  /**
5390
5965
  * Shared props between `AppShellProps` and the internal `WithPages` wrapper.
5391
5966
  *
@@ -5572,11 +6147,11 @@ declare type SharedAppShellProps = React.PropsWithChildren<{
5572
6147
  }>;
5573
6148
 
5574
6149
  export declare const Sheet: {
5575
- Root: typeof Root_10;
5576
- Trigger: typeof Trigger_3;
6150
+ Root: typeof Root_11;
6151
+ Trigger: typeof Trigger_4;
5577
6152
  Close: typeof Close_2;
5578
- Content: typeof Content_4;
5579
- Header: typeof Header_5;
6153
+ Content: typeof Content_5;
6154
+ Header: typeof Header_6;
5580
6155
  Footer: typeof Footer_3;
5581
6156
  Title: typeof Title_3;
5582
6157
  Description: typeof Description_4;
@@ -5692,10 +6267,10 @@ export declare type SidebarItemProps = {
5692
6267
  */
5693
6268
  to: string;
5694
6269
  /**
5695
- * Override title.
6270
+ * Override title (i18n supported).
5696
6271
  * When omitted, title is auto-resolved from resource meta.
5697
6272
  */
5698
- title?: string;
6273
+ title?: LocalizedString;
5699
6274
  /**
5700
6275
  * Override icon.
5701
6276
  * When omitted, icon is auto-resolved from resource meta.
@@ -5740,28 +6315,70 @@ export declare namespace SidebarLayout {
5740
6315
  ({ actions }: DefaultHeaderProps): JSX.Element;
5741
6316
  displayName: string;
5742
6317
  };
6318
+ var ContentContainer: {
6319
+ ({ header, className, children }: ContentContainerProps): JSX.Element;
6320
+ displayName: string;
6321
+ };
6322
+ var Outlet: () => JSX.Element;
6323
+ var Trigger: {
6324
+ ({ className, onClick }: TriggerProps): JSX.Element;
6325
+ displayName: string;
6326
+ };
5743
6327
  }
5744
6328
 
5745
- export declare type SidebarLayoutProps = {
6329
+ /**
6330
+ * The eject: you own the whole region beside the sidebar, including where the
6331
+ * header goes. `header` and `children` are unavailable here by construction —
6332
+ * they describe a content column you are now supplying yourself.
6333
+ */
6334
+ declare type SidebarLayoutBodyProps = SidebarLayoutCommonProps & {
5746
6335
  /**
5747
- * Custom content renderer.
6336
+ * Replaces everything to the right of the sidebar — the escape hatch for
6337
+ * page layouts the default content column can't express, such as a
6338
+ * table-of-contents rail or an assistant panel docked flush against the
6339
+ * viewport edge.
6340
+ *
6341
+ * Whatever you pass becomes a flex row alongside the sidebar, so it widens
6342
+ * and narrows with the sidebar automatically. Compose it from the namespaced
6343
+ * building blocks rather than rebuilding them:
6344
+ *
6345
+ * - `<SidebarLayout.ContentContainer>` — the stock content column (inset
6346
+ * padding, pinned header slot, scroll region, `useAppShellScrollContainer()`)
6347
+ * - `<SidebarLayout.Outlet />` — the current page
6348
+ * - `<SidebarLayout.DefaultHeader />` — the built-in top bar
6349
+ * - `<SidebarLayout.Trigger />` — the sidebar collapse toggle
6350
+ * - `useAppShellSidebar()` — subscribe to the sidebar's collapsed state
6351
+ *
6352
+ * The header lives inside `body` too — pass it to `ContentContainer` so it
6353
+ * stays pinned above that column's scroll region.
5748
6354
  *
5749
6355
  * @example
5750
6356
  * ```tsx
5751
- * <SidebarLayout>
5752
- * {({ Outlet }) => (
6357
+ * <SidebarLayout
6358
+ * body={
5753
6359
  * <>
5754
- * <CustomHeader />
5755
- * <Outlet />
5756
- * <CustomFooter />
6360
+ * <aside className="w-64 shrink-0 border-r overflow-y-auto">
6361
+ * <TableOfContents />
6362
+ * </aside>
6363
+ * <SidebarLayout.ContentContainer header={<SidebarLayout.DefaultHeader />}>
6364
+ * <SidebarLayout.Outlet />
6365
+ * </SidebarLayout.ContentContainer>
6366
+ * <aside className="w-96 shrink-0 border-l overflow-y-auto">
6367
+ * <AssistantPanel />
6368
+ * </aside>
5757
6369
  * </>
5758
- * )}
5759
- * </SidebarLayout>
6370
+ * }
6371
+ * />
5760
6372
  * ```
5761
6373
  */
5762
- children?: (props: {
5763
- Outlet: () => React.ReactNode;
5764
- }) => React.ReactNode;
6374
+ body: React.ReactNode;
6375
+ /** Place your header inside `body`, via `<SidebarLayout.ContentContainer header={…}>`. */
6376
+ header?: never;
6377
+ /** Place your content inside `body`, via `<SidebarLayout.Outlet />`. */
6378
+ children?: never;
6379
+ };
6380
+
6381
+ declare type SidebarLayoutCommonProps = {
5765
6382
  /**
5766
6383
  * Custom sidebar content. Replaces the whole sidebar region.
5767
6384
  *
@@ -5772,6 +6389,42 @@ export declare type SidebarLayoutProps = {
5772
6389
  * ```
5773
6390
  */
5774
6391
  sidebar?: React.ReactNode;
6392
+ /**
6393
+ * Whether the sidebar is open by default on desktop.
6394
+ *
6395
+ * @default true
6396
+ */
6397
+ defaultOpen?: boolean;
6398
+ /**
6399
+ * Whether the sidebar can be collapsed.
6400
+ * When set to `false`, the sidebar is always visible and cannot be toggled.
6401
+ * `defaultOpen` is ignored when this is `false`.
6402
+ *
6403
+ * @default true
6404
+ */
6405
+ collapsible?: boolean;
6406
+ /**
6407
+ * A global top bar rendered above **everything** — spanning the full width
6408
+ * across the top of the primary sidebar and the content region alike. The
6409
+ * sidebar and content then sit in a row beneath it.
6410
+ *
6411
+ * This is distinct from the content `header` (which sits above the content
6412
+ * column only): use `topBar` when you want a single app-wide bar over the
6413
+ * whole layout. Pair it with `<SidebarLayout.DefaultSidebar hideHeader />`
6414
+ * (and often `iconRail`) so the sidebar defers its own header to the bar.
6415
+ *
6416
+ * The bar should be `3.5rem` (h-14) tall: the fixed sidebar is offset to start
6417
+ * just beneath it (via the internal `--appshell-topbar-h`, fixed at `3.5rem`
6418
+ * while a `topBar` is present).
6419
+ */
6420
+ topBar?: React.ReactNode;
6421
+ };
6422
+
6423
+ /**
6424
+ * The default layout: AppShell owns the content column, you customise its
6425
+ * header and content.
6426
+ */
6427
+ declare type SidebarLayoutDefaultProps = SidebarLayoutCommonProps & {
5775
6428
  /**
5776
6429
  * Custom header content. Replaces the whole top-bar region.
5777
6430
  *
@@ -5797,21 +6450,48 @@ export declare type SidebarLayoutProps = {
5797
6450
  */
5798
6451
  header?: React.ReactNode;
5799
6452
  /**
5800
- * Whether the sidebar is open by default on desktop.
5801
- *
5802
- * @default true
5803
- */
5804
- defaultOpen?: boolean;
5805
- /**
5806
- * Whether the sidebar can be collapsed.
5807
- * When set to `false`, the sidebar is always visible and cannot be toggled.
5808
- * `defaultOpen` is ignored when this is `false`.
6453
+ * Custom content renderer.
5809
6454
  *
5810
- * @default true
6455
+ * @example
6456
+ * ```tsx
6457
+ * <SidebarLayout>
6458
+ * {({ Outlet }) => (
6459
+ * <>
6460
+ * <CustomHeader />
6461
+ * <Outlet />
6462
+ * <CustomFooter />
6463
+ * </>
6464
+ * )}
6465
+ * </SidebarLayout>
6466
+ * ```
5811
6467
  */
5812
- collapsible?: boolean;
6468
+ children?: (props: {
6469
+ Outlet: () => React.ReactNode;
6470
+ }) => React.ReactNode;
6471
+ /** Not available alongside `header`/`children` — see the `body` overload. */
6472
+ body?: never;
5813
6473
  };
5814
6474
 
6475
+ /**
6476
+ * Either the default layout (`header` + `children`) or the ejected one (`body`)
6477
+ * — never both. Passing `body` alongside `header`/`children` is a type error,
6478
+ * because `body` replaces the very region those two describe.
6479
+ */
6480
+ export declare type SidebarLayoutProps = SidebarLayoutDefaultProps | SidebarLayoutBodyProps;
6481
+
6482
+ export declare function SidebarMenuButton({ render, isActive, variant, size, tooltip, className, children, onClick, ...props }: React_2.ComponentProps<"button"> & {
6483
+ render?: React_2.ReactElement;
6484
+ isActive?: boolean;
6485
+ tooltip?: string | React_2.ComponentProps<typeof Tooltip.Content>;
6486
+ } & VariantProps<typeof sidebarMenuButtonVariants>): JSX.Element;
6487
+
6488
+ declare const sidebarMenuButtonVariants: (props?: ({
6489
+ variant?: "default" | "outline" | null | undefined;
6490
+ size?: "default" | "sm" | "lg" | null | undefined;
6491
+ } & ClassProp) | undefined) => string;
6492
+
6493
+ export declare function SidebarMenuItem({ className, ...props }: React_2.ComponentProps<"li">): JSX.Element;
6494
+
5815
6495
  /**
5816
6496
  * A visual divider for sidebar navigation.
5817
6497
  *
@@ -5865,6 +6545,59 @@ export declare interface SortState {
5865
6545
  direction: "Asc" | "Desc";
5866
6546
  }
5867
6547
 
6548
+ declare function Source({ title, className, ...props }: SourceProps): JSX.Element;
6549
+
6550
+ declare type SourceProps = Omit<ComponentProps<"button">, "title"> & {
6551
+ /** Display name of the cited document. */
6552
+ title: string;
6553
+ };
6554
+
6555
+ /**
6556
+ * Collapsible citation list for a grounded answer. Renders a compact
6557
+ * "Used N sources" trigger under the answer; expanding lists each source the
6558
+ * model actually consulted.
6559
+ *
6560
+ * @example
6561
+ * ```tsx
6562
+ * <AIChat.Sources>
6563
+ * <AIChat.SourcesTrigger count={sources.length} />
6564
+ * <AIChat.SourcesContent>
6565
+ * {sources.map((s) => (
6566
+ * <AIChat.Source key={s.id} title={s.title} onClick={() => open(s.id)} />
6567
+ * ))}
6568
+ * </AIChat.SourcesContent>
6569
+ * </AIChat.Sources>
6570
+ * ```
6571
+ */
6572
+ declare function Sources({ className, children, ...props }: SourcesProps): JSX.Element;
6573
+
6574
+ declare function SourcesContent({ className, ...props }: SourcesContentProps): JSX.Element;
6575
+
6576
+ declare type SourcesContentProps = ComponentProps<typeof DisclosurePanel>;
6577
+
6578
+ declare type SourcesProps = Omit<ComponentProps<typeof DisclosureRoot>, "children"> & {
6579
+ children: ReactNode;
6580
+ };
6581
+
6582
+ declare function SourcesTrigger({ count, className, ...props }: SourcesTriggerProps): JSX.Element;
6583
+
6584
+ declare type SourcesTriggerProps = Omit<ComponentProps<typeof DisclosureTrigger>, "children"> & {
6585
+ count: number;
6586
+ };
6587
+
6588
+ export declare function Spinner({ className, size, width, height, ...props }: SpinnerProps): JSX.Element;
6589
+
6590
+ declare const SPINNER_SIZES: {
6591
+ readonly xs: 12;
6592
+ readonly sm: 14;
6593
+ readonly default: 16;
6594
+ readonly lg: 20;
6595
+ };
6596
+
6597
+ export declare type SpinnerProps = React_2.ComponentProps<"svg"> & {
6598
+ size?: keyof typeof SPINNER_SIZES;
6599
+ };
6600
+
5868
6601
  /** Groups all parts of a submenu. */
5869
6602
  declare function SubmenuRoot({ children, ...props }: SubmenuRootProps): JSX.Element;
5870
6603
 
@@ -5883,16 +6616,33 @@ declare namespace SubmenuTrigger {
5883
6616
  var displayName: string;
5884
6617
  }
5885
6618
 
6619
+ /**
6620
+ * A starter-prompt chip. Submits `suggestion` as if the user had typed and
6621
+ * sent it — the fastest way to teach people what the assistant is good at.
6622
+ */
6623
+ declare function Suggestion({ suggestion, onSelect, className, disabled, children }: SuggestionProps): JSX.Element;
6624
+
6625
+ declare type SuggestionProps = Pick<React_2.ComponentProps<typeof Button>, "className" | "disabled" | "children"> & {
6626
+ /** Prompt text; submitted through `onSelect`, and shown unless `children` overrides it. */
6627
+ suggestion: string;
6628
+ onSelect?: (suggestion: string) => void;
6629
+ };
6630
+
6631
+ /** Wraps a row of starter-prompt chips for the empty conversation state. */
6632
+ declare function Suggestions({ className, children, ...props }: SuggestionsProps): JSX.Element;
6633
+
6634
+ declare type SuggestionsProps = React_2.ComponentProps<"div">;
6635
+
5886
6636
  /** An individual interactive tab button that toggles the corresponding panel. */
5887
- declare function Tab({ className, children, ...props }: React_2.ComponentProps<typeof Tabs_2.Tab>): JSX.Element;
6637
+ declare function Tab({ className, children, ref: forwardedRef, ...props }: React_2.ComponentProps<typeof Tabs_2.Tab>): JSX.Element;
5888
6638
 
5889
6639
  declare namespace Tab {
5890
6640
  var displayName: string;
5891
6641
  }
5892
6642
 
5893
6643
  export declare const Table: {
5894
- Root: typeof Root_4;
5895
- Header: typeof Header_2;
6644
+ Root: typeof Root_5;
6645
+ Header: typeof Header_3;
5896
6646
  Body: typeof Body_2;
5897
6647
  Footer: typeof Footer;
5898
6648
  Row: typeof Row;
@@ -5954,7 +6704,7 @@ export declare type TableOrderableFieldName<TTable extends TableMetadata> = Extr
5954
6704
  } ? N extends string ? N : never : never;
5955
6705
 
5956
6706
  export declare const Tabs: {
5957
- Root: typeof Root_11;
6707
+ Root: typeof Root_12;
5958
6708
  List: typeof List;
5959
6709
  Tab: typeof Tab;
5960
6710
  Panel: typeof Panel;
@@ -6043,9 +6793,9 @@ export { Time }
6043
6793
  * ```
6044
6794
  */
6045
6795
  export declare const Timeline: {
6046
- Root: typeof Root_13;
6796
+ Root: typeof Root_14;
6047
6797
  Viewport: typeof Viewport;
6048
- Row: typeof Row_2;
6798
+ Row: typeof Row_3;
6049
6799
  Interval: typeof Interval;
6050
6800
  Link: typeof TimelineLink;
6051
6801
  };
@@ -6410,10 +7160,87 @@ declare namespace Title_3 {
6410
7160
 
6411
7161
  export { To }
6412
7162
 
7163
+ /**
7164
+ * Collapsible tool-call card. Shows which tool the model invoked and its live
7165
+ * status in the header; expanding reveals the input parameters and the result
7166
+ * (or error) as JSON.
7167
+ *
7168
+ * @example
7169
+ * ```tsx
7170
+ * <AIChat.Tool>
7171
+ * <AIChat.ToolHeader toolName="search_kb" state={call.state} />
7172
+ * <AIChat.ToolContent>
7173
+ * <AIChat.ToolInput input={call.input} />
7174
+ * <AIChat.ToolOutput output={call.output} errorText={call.errorText} />
7175
+ * </AIChat.ToolContent>
7176
+ * </AIChat.Tool>
7177
+ * ```
7178
+ */
7179
+ declare function Tool({ className, children, ...props }: ToolProps): JSX.Element;
7180
+
7181
+ export declare const Toolbar: {
7182
+ Root: typeof Root_13;
7183
+ Row: typeof Row_2;
7184
+ Group: typeof Group_2;
7185
+ Separator: typeof Separator;
7186
+ };
7187
+
7188
+ declare type ToolbarGroupProps = React_2.ComponentProps<"div">;
7189
+
7190
+ export declare type ToolbarProps = React_2.ComponentProps<"div">;
7191
+
7192
+ declare type ToolbarRowProps = Omit<React_2.ComponentProps<"div">, "role" | "onKeyDown"> & {
7193
+ /** Distribute the row's outer groups between its two edges. */
7194
+ justify?: "start" | "between";
7195
+ onKeyDown?: React_2.KeyboardEventHandler<HTMLDivElement>;
7196
+ };
7197
+
7198
+ declare type ToolbarSeparatorProps = Omit<React_2.ComponentProps<"div">, "role" | "aria-orientation">;
7199
+
7200
+ declare function ToolContent({ className, ...props }: ToolContentProps): JSX.Element;
7201
+
7202
+ declare type ToolContentProps = ComponentProps<typeof DisclosurePanel>;
7203
+
7204
+ declare function ToolHeader({ toolName, state, title, className, ...props }: ToolHeaderProps): JSX.Element;
7205
+
7206
+ declare type ToolHeaderProps = Omit<ComponentProps<typeof DisclosureTrigger>, "children" | "title"> & {
7207
+ toolName: string;
7208
+ state: ToolState;
7209
+ /** Human-readable label shown instead of the raw tool name. */
7210
+ title?: string;
7211
+ };
7212
+
7213
+ declare function ToolInput({ input, className, ...props }: ToolInputProps): JSX.Element;
7214
+
7215
+ declare type ToolInputProps = ComponentProps<"div"> & {
7216
+ input: unknown;
7217
+ };
7218
+
7219
+ declare function ToolOutput({ output, errorText, className, ...props }: ToolOutputProps): JSX.Element | null;
7220
+
7221
+ declare type ToolOutputProps = ComponentProps<"div"> & {
7222
+ output?: unknown;
7223
+ errorText?: string;
7224
+ };
7225
+
7226
+ declare type ToolProps = Omit<ComponentProps<typeof DisclosureRoot>, "children"> & {
7227
+ children: ReactNode;
7228
+ };
7229
+
7230
+ /**
7231
+ * Maps 1:1 to the AI SDK's tool-part lifecycle, so a streaming loop can
7232
+ * update a call in place as parts arrive:
7233
+ * - `input-streaming` — the model is still writing the arguments
7234
+ * - `input-available` — arguments complete, tool executing
7235
+ * - `output-available` — finished with a result
7236
+ * - `output-error` — finished with an error
7237
+ */
7238
+ export declare type ToolState = "input-streaming" | "input-available" | "output-available" | "output-error";
7239
+
6413
7240
  export declare const Tooltip: {
6414
- Root: typeof Root_12;
6415
- Trigger: typeof Trigger_4;
6416
- Content: typeof Content_5;
7241
+ Root: typeof Root;
7242
+ Trigger: typeof Trigger;
7243
+ Content: typeof Content;
6417
7244
  Provider: typeof Provider;
6418
7245
  };
6419
7246
 
@@ -6421,34 +7248,44 @@ declare type TooltipRootProps = Pick<React_2.ComponentProps<typeof Tooltip_2.Roo
6421
7248
  children: React_2.ReactNode;
6422
7249
  };
6423
7250
 
6424
- /** The element that opens the dialog when clicked. */
6425
- declare function Trigger({ ...props }: React_2.ComponentProps<typeof Dialog_2.Trigger>): JSX.Element;
7251
+ /** The element that triggers the tooltip on hover or focus. */
7252
+ declare function Trigger({ ...props }: React_2.ComponentProps<typeof Tooltip_2.Trigger>): JSX.Element;
6426
7253
 
6427
7254
  declare namespace Trigger {
6428
7255
  var displayName: string;
6429
7256
  }
6430
7257
 
6431
- /** The element that opens the menu when clicked. */
6432
- declare function Trigger_2({ ...props }: React_2.ComponentProps<typeof Menu_2.Trigger>): JSX.Element;
7258
+ /** The element that opens the dialog when clicked. */
7259
+ declare function Trigger_2({ ...props }: React_2.ComponentProps<typeof Dialog_2.Trigger>): JSX.Element;
6433
7260
 
6434
7261
  declare namespace Trigger_2 {
6435
7262
  var displayName: string;
6436
7263
  }
6437
7264
 
6438
- /** The element that opens the sheet when clicked. */
6439
- declare function Trigger_3({ ...props }: React_2.ComponentProps<typeof Drawer.Trigger>): JSX.Element;
7265
+ /** The element that opens the menu when clicked. */
7266
+ declare function Trigger_3({ ...props }: React_2.ComponentProps<typeof Menu_2.Trigger>): JSX.Element;
6440
7267
 
6441
7268
  declare namespace Trigger_3 {
6442
7269
  var displayName: string;
6443
7270
  }
6444
7271
 
6445
- /** The element that triggers the tooltip on hover or focus. */
6446
- declare function Trigger_4({ ...props }: React_2.ComponentProps<typeof Tooltip_2.Trigger>): JSX.Element;
7272
+ /** The element that opens the sheet when clicked. */
7273
+ declare function Trigger_4({ ...props }: React_2.ComponentProps<typeof Drawer.Trigger>): JSX.Element;
6447
7274
 
6448
7275
  declare namespace Trigger_4 {
6449
7276
  var displayName: string;
6450
7277
  }
6451
7278
 
7279
+ declare type TriggerProps = {
7280
+ /** Extra classes for the trigger button. */
7281
+ className?: string;
7282
+ /**
7283
+ * Runs before the sidebar toggles. The toggle itself is not cancellable —
7284
+ * use `useAppShellSidebar()` if you need to drive the state directly.
7285
+ */
7286
+ onClick?: React.MouseEventHandler<HTMLButtonElement>;
7287
+ };
7288
+
6452
7289
  /**
6453
7290
  * Metadata-aware collection variables that remain assignable to the broad
6454
7291
  * `CollectionVariables` shape expected by GraphQL clients.
@@ -6565,6 +7402,23 @@ export declare const useAppShellData: () => AppShellDataContextType;
6565
7402
  */
6566
7403
  export declare function useAppShellScrollContainer(): RefObject<HTMLElement | null>;
6567
7404
 
7405
+ /**
7406
+ * Read and control the AppShell sidebar's collapsed state.
7407
+ *
7408
+ * Use this instead of observing `[data-slot="sidebar"][data-state]` or clicking
7409
+ * the trigger through the DOM — those reach into internals that can change
7410
+ * between releases.
7411
+ *
7412
+ * ```tsx
7413
+ * const { open, toggle } = useAppShellSidebar();
7414
+ * return <button onClick={toggle}>{open ? "Hide nav" : "Show nav"}</button>;
7415
+ * ```
7416
+ *
7417
+ * Outside a `SidebarLayout` there is no sidebar to describe, so this reports
7418
+ * `open: true` with no-op setters rather than throwing.
7419
+ */
7420
+ export declare function useAppShellSidebar(): AppShellSidebarState;
7421
+
6568
7422
  /**
6569
7423
  * Hook that encapsulates the async select pattern — fetching on open,
6570
7424
  * request cancellation via `AbortController`, and loading/error state.
@@ -6786,7 +7640,7 @@ declare type UseAttachmentReturn = {
6786
7640
  * const { isAuthenticated, isReady, login, logout } = useAuth();
6787
7641
  *
6788
7642
  * if (!isReady) return <Loading />;
6789
- * if (!isAuthenticated) return <button onClick={login}>Log In</button>;
7643
+ * if (!isAuthenticated) return <button onClick={() => void login()}>Log In</button>;
6790
7644
  *
6791
7645
  * return <button onClick={logout}>Log Out</button>;
6792
7646
  * }
@@ -6796,7 +7650,7 @@ export declare const useAuth: () => {
6796
7650
  error: string | null;
6797
7651
  isAuthenticated: boolean;
6798
7652
  isReady: boolean;
6799
- login: () => Promise<void>;
7653
+ login: Login;
6800
7654
  logout: () => Promise<void>;
6801
7655
  checkAuthStatus: () => Promise<AuthState>;
6802
7656
  };
@@ -6840,7 +7694,7 @@ export declare const useAuth: () => {
6840
7694
  * // isReady is guaranteed to be true here (Suspense handles loading)
6841
7695
  *
6842
7696
  * if (!isAuthenticated) {
6843
- * return <button onClick={login}>Log In</button>;
7697
+ * return <button onClick={() => void login()}>Log In</button>;
6844
7698
  * }
6845
7699
  *
6846
7700
  * return (
@@ -6855,7 +7709,7 @@ export declare const useAuth: () => {
6855
7709
  export declare const useAuthSuspense: () => {
6856
7710
  error: string | null;
6857
7711
  isAuthenticated: boolean;
6858
- login: () => Promise<void>;
7712
+ login: Login;
6859
7713
  logout: () => Promise<void>;
6860
7714
  checkAuthStatus: () => Promise<AuthState>;
6861
7715
  };
@@ -7397,6 +8251,19 @@ export declare const usePageMeta: (path: string) => PageMeta | null;
7397
8251
 
7398
8252
  export { useParams }
7399
8253
 
8254
+ /**
8255
+ * Hook to retrieve the current path segments and their corresponding titles.
8256
+ */
8257
+ export declare const usePathSegments: () => {
8258
+ basePath: string | null;
8259
+ segments: {
8260
+ segment: string;
8261
+ path: string;
8262
+ title: string;
8263
+ clickable: boolean;
8264
+ }[];
8265
+ };
8266
+
7400
8267
  /**
7401
8268
  * Declaratively register contextual actions to the CommandPalette.
7402
8269
  *
@@ -7664,92 +8531,97 @@ export { ZonedDateTime }
7664
8531
  export { }
7665
8532
 
7666
8533
 
7667
- declare namespace AutocompleteStandalone {
8534
+ declare namespace Root {
7668
8535
  var displayName: string;
7669
8536
  }
7670
8537
 
7671
8538
 
7672
- declare namespace AutocompleteAsyncStandalone {
8539
+ declare namespace Viewport {
7673
8540
  var displayName: string;
7674
8541
  }
7675
8542
 
7676
8543
 
7677
- declare namespace AutocompleteRoot {
8544
+ declare namespace Row {
7678
8545
  var displayName: string;
7679
8546
  }
7680
8547
 
7681
8548
 
7682
- declare namespace AutocompleteValue {
8549
+ declare namespace Interval {
7683
8550
  var displayName: string;
7684
8551
  }
7685
8552
 
7686
8553
 
7687
- declare namespace AutocompleteInput {
8554
+ declare namespace TimelineLink {
7688
8555
  var displayName: string;
7689
8556
  }
7690
8557
 
7691
8558
 
7692
- declare namespace AutocompleteTrigger {
8559
+ declare namespace Root {
7693
8560
  var displayName: string;
7694
8561
  }
7695
8562
 
7696
8563
 
7697
- declare namespace AutocompleteInputGroup {
8564
+ declare namespace Title {
7698
8565
  var displayName: string;
7699
8566
  }
7700
8567
 
7701
8568
 
7702
- declare namespace AutocompleteContent {
8569
+ declare namespace Description {
7703
8570
  var displayName: string;
7704
8571
  }
7705
8572
 
7706
8573
 
7707
- declare namespace AutocompleteList {
8574
+ declare namespace Root {
7708
8575
  var displayName: string;
7709
8576
  }
7710
8577
 
7711
8578
 
7712
- declare namespace AutocompleteItem {
8579
+ declare namespace List {
7713
8580
  var displayName: string;
7714
8581
  }
7715
8582
 
7716
8583
 
7717
- declare namespace AutocompleteEmpty {
8584
+ declare namespace Tab {
7718
8585
  var displayName: string;
7719
8586
  }
7720
8587
 
7721
8588
 
7722
- declare namespace AutocompleteClear {
8589
+ declare namespace Panel {
7723
8590
  var displayName: string;
7724
8591
  }
7725
8592
 
7726
8593
 
7727
- declare namespace AutocompleteGroup {
8594
+ declare namespace Root {
7728
8595
  var displayName: string;
7729
8596
  }
7730
8597
 
7731
8598
 
7732
- declare namespace AutocompleteGroupLabel {
8599
+ declare namespace Image {
7733
8600
  var displayName: string;
7734
8601
  }
7735
8602
 
7736
8603
 
7737
- declare namespace AutocompleteCollection {
8604
+ declare namespace Fallback {
7738
8605
  var displayName: string;
7739
8606
  }
7740
8607
 
7741
8608
 
7742
- declare namespace AutocompleteStatus {
8609
+ declare namespace Root {
7743
8610
  var displayName: string;
7744
8611
  }
7745
8612
 
7746
8613
 
7747
- declare namespace Root {
8614
+ declare namespace Header {
7748
8615
  var displayName: string;
7749
8616
  }
7750
8617
 
7751
8618
 
7752
- declare namespace Viewport {
8619
+ declare namespace Body {
8620
+ var displayName: string;
8621
+ }
8622
+
8623
+
8624
+ declare namespace Footer {
7753
8625
  var displayName: string;
7754
8626
  }
7755
8627
 
@@ -7759,17 +8631,17 @@ declare namespace Row {
7759
8631
  }
7760
8632
 
7761
8633
 
7762
- declare namespace Interval {
8634
+ declare namespace Head {
7763
8635
  var displayName: string;
7764
8636
  }
7765
8637
 
7766
8638
 
7767
- declare namespace TimelineLink {
8639
+ declare namespace Cell {
7768
8640
  var displayName: string;
7769
8641
  }
7770
8642
 
7771
8643
 
7772
- declare namespace Provider {
8644
+ declare namespace Caption {
7773
8645
  var displayName: string;
7774
8646
  }
7775
8647
 
@@ -7779,7 +8651,7 @@ declare namespace Root {
7779
8651
  }
7780
8652
 
7781
8653
 
7782
- declare namespace Trigger {
8654
+ declare namespace Header {
7783
8655
  var displayName: string;
7784
8656
  }
7785
8657
 
@@ -7789,42 +8661,42 @@ declare namespace Content {
7789
8661
  }
7790
8662
 
7791
8663
 
7792
- declare namespace SelectRoot {
8664
+ declare namespace Root {
7793
8665
  var displayName: string;
7794
8666
  }
7795
8667
 
7796
8668
 
7797
- declare namespace SelectTrigger {
8669
+ declare namespace Trigger {
7798
8670
  var displayName: string;
7799
8671
  }
7800
8672
 
7801
8673
 
7802
- declare namespace SelectValue {
8674
+ declare namespace Close {
7803
8675
  var displayName: string;
7804
8676
  }
7805
8677
 
7806
8678
 
7807
- declare namespace SelectContent {
8679
+ declare namespace Content {
7808
8680
  var displayName: string;
7809
8681
  }
7810
8682
 
7811
8683
 
7812
- declare namespace SelectItem {
8684
+ declare namespace Header {
7813
8685
  var displayName: string;
7814
8686
  }
7815
8687
 
7816
8688
 
7817
- declare namespace SelectGroup {
8689
+ declare namespace Footer {
7818
8690
  var displayName: string;
7819
8691
  }
7820
8692
 
7821
8693
 
7822
- declare namespace SelectGroupLabel {
8694
+ declare namespace Title {
7823
8695
  var displayName: string;
7824
8696
  }
7825
8697
 
7826
8698
 
7827
- declare namespace SelectSeparator {
8699
+ declare namespace Description {
7828
8700
  var displayName: string;
7829
8701
  }
7830
8702
 
@@ -7834,102 +8706,112 @@ declare namespace Root {
7834
8706
  }
7835
8707
 
7836
8708
 
7837
- declare namespace Trigger {
8709
+ declare namespace Label {
7838
8710
  var displayName: string;
7839
8711
  }
7840
8712
 
7841
8713
 
7842
- declare namespace Content {
8714
+ declare namespace Control {
7843
8715
  var displayName: string;
7844
8716
  }
7845
8717
 
7846
8718
 
7847
- declare namespace Item {
8719
+ declare namespace Description {
7848
8720
  var displayName: string;
7849
8721
  }
7850
8722
 
7851
8723
 
7852
- declare namespace LinkItem {
8724
+ declare namespace Error {
7853
8725
  var displayName: string;
7854
8726
  }
7855
8727
 
7856
8728
 
7857
- declare namespace CheckboxItem {
8729
+ declare namespace Validity {
7858
8730
  var displayName: string;
7859
8731
  }
7860
8732
 
7861
8733
 
7862
- declare namespace CheckboxItemIndicator {
8734
+ declare namespace Root {
7863
8735
  var displayName: string;
7864
8736
  }
7865
8737
 
7866
8738
 
7867
- declare namespace RadioItem {
8739
+ declare namespace Legend {
7868
8740
  var displayName: string;
7869
8741
  }
7870
8742
 
7871
8743
 
7872
- declare namespace RadioItemIndicator {
8744
+ declare namespace Root {
7873
8745
  var displayName: string;
7874
8746
  }
7875
8747
 
7876
8748
 
7877
- declare namespace RadioGroup {
8749
+ declare namespace Trigger {
7878
8750
  var displayName: string;
7879
8751
  }
7880
8752
 
7881
8753
 
7882
- declare namespace Group {
8754
+ declare namespace Content {
7883
8755
  var displayName: string;
7884
8756
  }
7885
8757
 
7886
8758
 
7887
- declare namespace GroupLabel {
8759
+ declare namespace Item {
7888
8760
  var displayName: string;
7889
8761
  }
7890
8762
 
7891
8763
 
7892
- declare namespace MenuSeparator {
8764
+ declare namespace LinkItem {
7893
8765
  var displayName: string;
7894
8766
  }
7895
8767
 
7896
8768
 
7897
- declare namespace SubmenuRoot {
8769
+ declare namespace CheckboxItem {
7898
8770
  var displayName: string;
7899
8771
  }
7900
8772
 
7901
8773
 
7902
- declare namespace SubmenuTrigger {
8774
+ declare namespace CheckboxItemIndicator {
7903
8775
  var displayName: string;
7904
8776
  }
7905
8777
 
7906
8778
 
7907
- declare namespace Root {
8779
+ declare namespace RadioItem {
7908
8780
  var displayName: string;
7909
8781
  }
7910
8782
 
7911
8783
 
7912
- declare namespace Image {
8784
+ declare namespace RadioItemIndicator {
7913
8785
  var displayName: string;
7914
8786
  }
7915
8787
 
7916
8788
 
7917
- declare namespace Fallback {
8789
+ declare namespace RadioGroup {
7918
8790
  var displayName: string;
7919
8791
  }
7920
8792
 
7921
8793
 
7922
- declare namespace Root {
8794
+ declare namespace Group {
7923
8795
  var displayName: string;
7924
8796
  }
7925
8797
 
7926
8798
 
7927
- declare namespace Title {
8799
+ declare namespace GroupLabel {
7928
8800
  var displayName: string;
7929
8801
  }
7930
8802
 
7931
8803
 
7932
- declare namespace Description {
8804
+ declare namespace MenuSeparator {
8805
+ var displayName: string;
8806
+ }
8807
+
8808
+
8809
+ declare namespace SubmenuRoot {
8810
+ var displayName: string;
8811
+ }
8812
+
8813
+
8814
+ declare namespace SubmenuTrigger {
7933
8815
  var displayName: string;
7934
8816
  }
7935
8817
 
@@ -7979,57 +8861,77 @@ declare namespace Root {
7979
8861
  }
7980
8862
 
7981
8863
 
7982
- declare namespace Header {
8864
+ declare namespace Row {
7983
8865
  var displayName: string;
7984
8866
  }
7985
8867
 
7986
8868
 
7987
- declare namespace Body {
8869
+ declare namespace Group {
7988
8870
  var displayName: string;
7989
8871
  }
7990
8872
 
7991
8873
 
7992
- declare namespace Footer {
8874
+ declare namespace Separator {
7993
8875
  var displayName: string;
7994
8876
  }
7995
8877
 
7996
8878
 
7997
- declare namespace Row {
8879
+ declare namespace SelectRoot {
7998
8880
  var displayName: string;
7999
8881
  }
8000
8882
 
8001
8883
 
8002
- declare namespace Head {
8884
+ declare namespace SelectTrigger {
8003
8885
  var displayName: string;
8004
8886
  }
8005
8887
 
8006
8888
 
8007
- declare namespace Cell {
8889
+ declare namespace SelectValue {
8008
8890
  var displayName: string;
8009
8891
  }
8010
8892
 
8011
8893
 
8012
- declare namespace Caption {
8894
+ declare namespace SelectContent {
8013
8895
  var displayName: string;
8014
8896
  }
8015
8897
 
8016
8898
 
8017
- declare namespace Root {
8899
+ declare namespace SelectItem {
8018
8900
  var displayName: string;
8019
8901
  }
8020
8902
 
8021
8903
 
8022
- declare namespace List {
8904
+ declare namespace SelectGroup {
8023
8905
  var displayName: string;
8024
8906
  }
8025
8907
 
8026
8908
 
8027
- declare namespace Tab {
8909
+ declare namespace SelectGroupLabel {
8028
8910
  var displayName: string;
8029
8911
  }
8030
8912
 
8031
8913
 
8032
- declare namespace Panel {
8914
+ declare namespace SelectSeparator {
8915
+ var displayName: string;
8916
+ }
8917
+
8918
+
8919
+ declare namespace Provider {
8920
+ var displayName: string;
8921
+ }
8922
+
8923
+
8924
+ declare namespace Root {
8925
+ var displayName: string;
8926
+ }
8927
+
8928
+
8929
+ declare namespace Trigger {
8930
+ var displayName: string;
8931
+ }
8932
+
8933
+
8934
+ declare namespace Content {
8033
8935
  var displayName: string;
8034
8936
  }
8035
8937
 
@@ -8119,97 +9021,97 @@ declare namespace ComboboxCollection {
8119
9021
  }
8120
9022
 
8121
9023
 
8122
- declare namespace DataTableRoot {
9024
+ declare namespace AutocompleteStandalone {
8123
9025
  var displayName: string;
8124
9026
  }
8125
9027
 
8126
9028
 
8127
- declare namespace DataTableTable {
9029
+ declare namespace AutocompleteAsyncStandalone {
8128
9030
  var displayName: string;
8129
9031
  }
8130
9032
 
8131
9033
 
8132
- declare namespace DataTableFooter {
9034
+ declare namespace AutocompleteRoot {
8133
9035
  var displayName: string;
8134
9036
  }
8135
9037
 
8136
9038
 
8137
- declare namespace Root {
9039
+ declare namespace AutocompleteValue {
8138
9040
  var displayName: string;
8139
9041
  }
8140
9042
 
8141
9043
 
8142
- declare namespace Label {
9044
+ declare namespace AutocompleteInput {
8143
9045
  var displayName: string;
8144
9046
  }
8145
9047
 
8146
9048
 
8147
- declare namespace Control {
9049
+ declare namespace AutocompleteTrigger {
8148
9050
  var displayName: string;
8149
9051
  }
8150
9052
 
8151
9053
 
8152
- declare namespace Description {
9054
+ declare namespace AutocompleteInputGroup {
8153
9055
  var displayName: string;
8154
9056
  }
8155
9057
 
8156
9058
 
8157
- declare namespace Error {
9059
+ declare namespace AutocompleteContent {
8158
9060
  var displayName: string;
8159
9061
  }
8160
9062
 
8161
9063
 
8162
- declare namespace Validity {
9064
+ declare namespace AutocompleteList {
8163
9065
  var displayName: string;
8164
9066
  }
8165
9067
 
8166
9068
 
8167
- declare namespace Root {
9069
+ declare namespace AutocompleteItem {
8168
9070
  var displayName: string;
8169
9071
  }
8170
9072
 
8171
9073
 
8172
- declare namespace Legend {
9074
+ declare namespace AutocompleteEmpty {
8173
9075
  var displayName: string;
8174
9076
  }
8175
9077
 
8176
9078
 
8177
- declare namespace Root {
9079
+ declare namespace AutocompleteClear {
8178
9080
  var displayName: string;
8179
9081
  }
8180
9082
 
8181
9083
 
8182
- declare namespace Trigger {
9084
+ declare namespace AutocompleteGroup {
8183
9085
  var displayName: string;
8184
9086
  }
8185
9087
 
8186
9088
 
8187
- declare namespace Close {
9089
+ declare namespace AutocompleteGroupLabel {
8188
9090
  var displayName: string;
8189
9091
  }
8190
9092
 
8191
9093
 
8192
- declare namespace Content {
9094
+ declare namespace AutocompleteCollection {
8193
9095
  var displayName: string;
8194
9096
  }
8195
9097
 
8196
9098
 
8197
- declare namespace Header {
9099
+ declare namespace AutocompleteStatus {
8198
9100
  var displayName: string;
8199
9101
  }
8200
9102
 
8201
9103
 
8202
- declare namespace Footer {
9104
+ declare namespace DataTableRoot {
8203
9105
  var displayName: string;
8204
9106
  }
8205
9107
 
8206
9108
 
8207
- declare namespace Title {
9109
+ declare namespace DataTableTable {
8208
9110
  var displayName: string;
8209
9111
  }
8210
9112
 
8211
9113
 
8212
- declare namespace Description {
9114
+ declare namespace DataTableFooter {
8213
9115
  var displayName: string;
8214
9116
  }
8215
9117
 
@@ -8219,27 +9121,17 @@ declare namespace Root {
8219
9121
  }
8220
9122
 
8221
9123
 
8222
- declare namespace Header {
8223
- var displayName: string;
8224
- }
8225
-
8226
-
8227
- declare namespace Content {
8228
- var displayName: string;
8229
- }
8230
-
8231
-
8232
- declare namespace Root {
9124
+ declare namespace Items {
8233
9125
  var displayName: string;
8234
9126
  }
8235
9127
 
8236
9128
 
8237
- declare namespace Items {
9129
+ declare namespace Item {
8238
9130
  var displayName: string;
8239
9131
  }
8240
9132
 
8241
9133
 
8242
- declare namespace Item {
9134
+ declare namespace DataTableColumnSettings {
8243
9135
  var displayName: string;
8244
9136
  }
8245
9137
 
@@ -8257,8 +9149,3 @@ declare namespace DataTableFilters {
8257
9149
  declare namespace AsyncErrorState {
8258
9150
  var displayName: string;
8259
9151
  }
8260
-
8261
-
8262
- declare namespace DataTableColumnSettings {
8263
- var displayName: string;
8264
- }