@timbal-ai/timbal-react 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +11 -0
  3. package/dist/app.cjs +10 -4
  4. package/dist/app.d.cts +2 -2
  5. package/dist/app.d.ts +2 -2
  6. package/dist/app.esm.js +4 -4
  7. package/dist/{chart-artifact-bWUa-iSG.d.cts → chart-artifact-C2m891nx.d.cts} +1 -1
  8. package/dist/{chart-artifact-BFDz8Tf9.d.ts → chart-artifact-CqqhdSR9.d.ts} +1 -1
  9. package/dist/{chat-CWtQWDtJ.d.cts → chat-Bed4FQSl.d.cts} +10 -0
  10. package/dist/{chat-CWtQWDtJ.d.ts → chat-Bed4FQSl.d.ts} +10 -0
  11. package/dist/chat.cjs +5 -1
  12. package/dist/chat.d.cts +1 -1
  13. package/dist/chat.d.ts +1 -1
  14. package/dist/chat.esm.js +3 -3
  15. package/dist/{chunk-7O5VY3TP.esm.js → chunk-4AO3HCAR.esm.js} +4 -4
  16. package/dist/chunk-LSEUKTU5.esm.js +435 -0
  17. package/dist/{chunk-2XZ3S4OP.esm.js → chunk-QKO67F4V.esm.js} +39 -0
  18. package/dist/{chunk-TLUF2RUL.esm.js → chunk-VVTTLIGT.esm.js} +6 -2
  19. package/dist/{chunk-TDIJHV4I.esm.js → chunk-YNDXBN6C.esm.js} +1 -1
  20. package/dist/{chunk-533MK5EA.esm.js → chunk-ZEDE2TWQ.esm.js} +8 -6
  21. package/dist/{chunk-N3PYVTY5.esm.js → chunk-ZG5NBHOS.esm.js} +2 -2
  22. package/dist/index.cjs +509 -4
  23. package/dist/index.d.cts +5 -5
  24. package/dist/index.d.ts +5 -5
  25. package/dist/index.esm.js +70 -6
  26. package/dist/studio.cjs +5 -1
  27. package/dist/studio.d.cts +2 -2
  28. package/dist/studio.d.ts +2 -2
  29. package/dist/studio.esm.js +5 -5
  30. package/dist/styles.css +8 -4
  31. package/dist/ui.cjs +507 -8
  32. package/dist/ui.d.cts +45 -2
  33. package/dist/ui.d.ts +45 -2
  34. package/dist/ui.esm.js +66 -2
  35. package/dist/{welcome-C89Mgdaw.d.cts → welcome-COOb05a5.d.cts} +1 -1
  36. package/dist/{welcome-BBmB3tl7.d.ts → welcome-DE08m9ca.d.ts} +1 -1
  37. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,38 @@
2
2
 
3
3
  All notable changes to `@timbal-ai/timbal-react` are documented here.
4
4
 
5
+ ## [0.8.0] — 2026-06-02
6
+
7
+ ### Added
8
+
9
+ - **Headless UI primitives** (`@timbal-ai/timbal-react/ui`, also re-exported from the root) — token-styled Radix wrappers so apps stop hand-rolling raw HTML:
10
+ - **`DropdownMenu`** family (`DropdownMenu`, `DropdownMenuTrigger`, `DropdownMenuContent`, `DropdownMenuItem`, `DropdownMenuCheckboxItem`, `DropdownMenuRadioGroup`/`DropdownMenuRadioItem`, `DropdownMenuLabel`, `DropdownMenuSeparator`, `DropdownMenuShortcut`, `DropdownMenuGroup`, `DropdownMenuSub`/`DropdownMenuSubTrigger`/`DropdownMenuSubContent`) — row actions and overflow menus.
11
+ - **`Popover`** family (`Popover`, `PopoverTrigger`, `PopoverContent`, `PopoverAnchor`) — filters, pickers, lightweight floating panels.
12
+ - **`Select`** family (`Select`, `SelectTrigger`, `SelectValue`, `SelectContent`, `SelectItem`, `SelectGroup`, `SelectLabel`, `SelectSeparator`, scroll buttons) — rich select beyond the native `FieldSelect`.
13
+ - **`DialogHeader`**, **`DialogFooter`**, **`DialogDescription`** added to the `Dialog` family so dialog layout no longer has to be hand-rolled.
14
+
15
+ All new primitives use the package design tokens (`bg-popover`, `border-border`, `shadow-card`, `focus:bg-accent`, …), portal above dialogs (`z-[80]`), and require no extra dependencies — `radix-ui` and `tw-animate-css` are already in the stack.
16
+
17
+ ---
18
+
19
+ ## [0.7.1] — 2026-06-02
20
+
21
+ ### Changed
22
+
23
+ - **Opaque elevated surfaces** — `--elevated-from` / `--elevated-to` no longer use alpha in light or dark themes, preserving the signature vertical gradient with no background bleed-through.
24
+
25
+ ### Added
26
+
27
+ - **`TIMBAL_V2_ELEVATED_SURFACE`** — elevated card/list surface (gradient + border + `shadow-card`) without hover/active fill shifts, for catalog cards and connection lists.
28
+ - **`TIMBAL_V2_LOGO_TILE`** — logo/integration mark tile pinned to the light plate in both themes so dark provider logos stay legible.
29
+ - **`STORAGE_KEYS.theme`** — localStorage key used by `ModeToggle` in uncontrolled mode.
30
+
31
+ ### Fixed
32
+
33
+ - **`StatTile`** typography aligned with platform metrics (normal weight, compact labels, tabular numerals).
34
+
35
+ ---
36
+
5
37
  ## [0.7.0] — 2026-05-29
6
38
 
7
39
  ### Added
package/README.md CHANGED
@@ -134,6 +134,16 @@ Suggestions also accept a function (sync or async) for per-user or server-driven
134
134
 
135
135
  Each chip supports `icon`, `description`, and `prompt` (sent instead of `title` when clicked).
136
136
 
137
+ In `AppChatPanel` (`variant="panel"`), welcome suggestions are **off** by default. Enable them with `showWelcomeSuggestions`:
138
+
139
+ ```tsx
140
+ <AppChatPanel
141
+ workforceId="your-workforce-id"
142
+ showWelcomeSuggestions
143
+ suggestions={[{ title: "Summarize this dashboard" }]}
144
+ />
145
+ ```
146
+
137
147
  ### Placeholder and width
138
148
 
139
149
  ```tsx
@@ -605,6 +615,7 @@ import {
605
615
  | `welcome.heading` | `string` | `"How can I help you today?"` | Welcome screen heading |
606
616
  | `welcome.subheading` | `string` | `"Send a message to start a conversation."` | Welcome screen subheading |
607
617
  | `suggestions` | `{ title: string; description?: string }[]` | — | Suggestion chips on the welcome screen |
618
+ | `showWelcomeSuggestions` | `boolean` | `true` (`default` variant), `false` (`panel`) | Show built-in welcome suggestions when `suggestions` is set |
608
619
  | `composerPlaceholder` | `string` | `"Send a message..."` | Composer input placeholder |
609
620
  | `components` | `ThreadComponents` | — | Override individual UI slots |
610
621
  | `onArtifactEvent` | `(event: UiEventEnvelope) => void` | — | Called when a `ui` artifact fires an `emit` action |
package/dist/app.cjs CHANGED
@@ -4619,6 +4619,7 @@ var Thread = ({
4619
4619
  maxWidth: maxWidthProp,
4620
4620
  welcome,
4621
4621
  suggestions,
4622
+ showWelcomeSuggestions,
4622
4623
  composerPlaceholder,
4623
4624
  components,
4624
4625
  artifacts,
@@ -4667,6 +4668,7 @@ var Thread = ({
4667
4668
  {
4668
4669
  config: welcome,
4669
4670
  suggestions,
4671
+ showWelcomeSuggestions,
4670
4672
  Suggestions: SuggestionsSlot
4671
4673
  }
4672
4674
  ),
@@ -4747,10 +4749,12 @@ var welcomeIcon = {
4747
4749
  var ThreadWelcome = ({
4748
4750
  config,
4749
4751
  suggestions,
4752
+ showWelcomeSuggestions: showWelcomeSuggestionsProp,
4750
4753
  Suggestions: SuggestionsSlot = Suggestions
4751
4754
  }) => {
4752
4755
  const isEmpty = (0, import_react35.useThread)((s) => s.messages.length === 0);
4753
4756
  const isPanel = useThreadVariant() === "panel";
4757
+ const showWelcomeSuggestions = showWelcomeSuggestionsProp ?? !isPanel;
4754
4758
  if (!isEmpty) return null;
4755
4759
  const defaultHeading = isPanel ? "Ask about this page" : "How can I help you today?";
4756
4760
  const defaultSubheading = isPanel ? "The assistant can use dashboard context from your app." : "Send a message to start a conversation.";
@@ -4789,7 +4793,7 @@ var ThreadWelcome = ({
4789
4793
  ]
4790
4794
  }
4791
4795
  ) }),
4792
- suggestions && !isPanel ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "aui-thread-welcome-suggestions mx-auto w-full max-w-(--thread-max-width) px-2", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(SuggestionsSlot, { suggestions }) }) : null
4796
+ showWelcomeSuggestions && suggestions ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "aui-thread-welcome-suggestions mx-auto w-full max-w-(--thread-max-width) px-2", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(SuggestionsSlot, { suggestions }) }) : null
4793
4797
  ] });
4794
4798
  };
4795
4799
  var MessageError = () => {
@@ -4974,8 +4978,7 @@ var EditComposer = () => {
4974
4978
  var import_jsx_runtime37 = require("react/jsx-runtime");
4975
4979
  var shellClass = "aui-app-chat-panel flex h-full min-h-0 flex-col overflow-hidden";
4976
4980
  var chromeClass = cn(
4977
- "aui-app-chat-panel-chrome relative z-20 flex min-h-12 shrink-0 items-center justify-end",
4978
- "bg-card/90 px-2 pt-3 pb-3 backdrop-blur-sm"
4981
+ "aui-app-chat-panel-chrome relative z-20 flex min-h-10 shrink-0 items-center justify-end px-2 pt-2"
4979
4982
  );
4980
4983
  var closeButtonClass = cn(
4981
4984
  "aui-app-chat-panel-close flex size-8 shrink-0 items-center justify-center rounded-md",
@@ -4992,8 +4995,9 @@ var bodyClass = cn(
4992
4995
  "[&_.aui-thread-viewport]:[scrollbar-gutter:stable_both-edges]",
4993
4996
  // Tighter symmetric horizontal inset for panel + composer
4994
4997
  "[&_.aui-thread-viewport]:!px-2",
4995
- "[&_.aui-thread-viewport]:!pt-2",
4998
+ "[&_.aui-thread-viewport]:!pt-1",
4996
4999
  "[&_.aui-user-message-root]:!px-0",
5000
+ "[&_.aui-user-message-root]:!pe-1",
4997
5001
  "[&_.aui-composer-input]:!px-2",
4998
5002
  "[&_.aui-composer-action-wrapper]:!px-2"
4999
5003
  );
@@ -5008,6 +5012,7 @@ var AppChatPanel = ({
5008
5012
  debug,
5009
5013
  welcome,
5010
5014
  suggestions,
5015
+ showWelcomeSuggestions,
5011
5016
  composerPlaceholder,
5012
5017
  components,
5013
5018
  artifacts,
@@ -5043,6 +5048,7 @@ var AppChatPanel = ({
5043
5048
  className: "aui-app-chat-panel-thread",
5044
5049
  welcome,
5045
5050
  suggestions,
5051
+ showWelcomeSuggestions,
5046
5052
  composerPlaceholder,
5047
5053
  components,
5048
5054
  artifacts,
package/dist/app.d.cts CHANGED
@@ -1,6 +1,6 @@
1
- export { A as APP_KIT_AGENT_INSTRUCTIONS, a as AppChatPanel, b as AppChatPanelProps, c as AppConfirmDialog, d as AppConfirmDialogProps, e as AppCopilotContextValue, f as AppCopilotProvider, g as AppCopilotProviderProps, h as AppShell, i as AppShellChatControls, j as AppShellChatTrigger, k as AppShellChatTriggerProps, l as AppShellProps, m as AppShellTopbar, n as AppShellTopbarProps, B as BreadcrumbItem, o as Breadcrumbs, p as BreadcrumbsProps, C as CHART_PALETTE, q as ChartArtifactView, r as ChartLayout, s as ChartPanel, t as ChartPanelProps, u as ChartSeries, v as ChartVariant, w as ConnectionRow, x as ConnectionRowList, y as ConnectionRowListProps, z as ConnectionRowProps, D as DangerZone, E as DangerZoneAction, F as DangerZoneActionProps, G as DangerZoneProps, H as DataTable, I as DataTableColumn, J as DataTableProps, K as DataTableSort, L as DataTableSortDirection, M as DescriptionItem, N as DescriptionList, O as DescriptionListProps, P as EmptyState, Q as EmptyStateProps, R as ExpandableSection, S as ExpandableSectionProps, T as Field, U as FieldInput, V as FieldInputProps, W as FieldProps, X as FieldRow, Y as FieldRowProps, Z as FieldSelect, _ as FieldSelectProps, $ as FieldSwitch, a0 as FieldSwitchProps, a1 as FieldTextarea, a2 as FieldTextareaProps, a3 as FilterBar, a4 as FilterBarProps, a5 as FloatingUnsavedChangesBar, a6 as FloatingUnsavedChangesBarProps, a7 as FormSection, a8 as FormSectionProps, a9 as INTEGRATION_CATALOG_CARD_HEIGHT_CLASS, aa as InfoCard, ab as InfoCardProps, ac as InfoCardTone, ad as IntegrationCard, ae as IntegrationCardProps, af as IntegrationCardStatus, ag as IntegrationsEmptyState, ah as IntegrationsEmptyStateProps, ai as LineAreaChart, aj as LineAreaChartProps, ak as MetricChartCard, al as MetricChartCardProps, am as MetricChartMetric, an as MetricRow, ao as MetricRowItem, ap as MetricRowProps, aq as MetricTile, ar as MetricTileProps, as as Page, at as PageHeader, au as PageHeaderProps, av as PageProps, aw as PlanBadge, ax as PlanBadgeProps, ay as PlanBadgeTone, az as ResourceCard, aA as ResourceCardProps, aB as SearchInput, aC as SearchInputProps, aD as Section, aE as SectionProps, aF as SettingsSection, aG as SettingsSectionHeader, aH as SettingsSectionHeaderProps, aI as SettingsSectionProps, aJ as Sparkline, aK as SparklineProps, aL as StatTile, aM as StatTileProps, aN as StatusBadge, aO as StatusBadgeProps, aP as StatusBadgeTone, aQ as StatusDot, aR as StatusDotProps, aS as StatusDotTone, aT as SubNav, aU as SubNavItem, aV as SubNavProps, aW as SurfaceCard, aX as SurfaceCardProps, aY as connectionRowListClass, aZ as useAppCopilotContext, a_ as useAppShellChat } from './chart-artifact-bWUa-iSG.cjs';
1
+ export { A as APP_KIT_AGENT_INSTRUCTIONS, a as AppChatPanel, b as AppChatPanelProps, c as AppConfirmDialog, d as AppConfirmDialogProps, e as AppCopilotContextValue, f as AppCopilotProvider, g as AppCopilotProviderProps, h as AppShell, i as AppShellChatControls, j as AppShellChatTrigger, k as AppShellChatTriggerProps, l as AppShellProps, m as AppShellTopbar, n as AppShellTopbarProps, B as BreadcrumbItem, o as Breadcrumbs, p as BreadcrumbsProps, C as CHART_PALETTE, q as ChartArtifactView, r as ChartLayout, s as ChartPanel, t as ChartPanelProps, u as ChartSeries, v as ChartVariant, w as ConnectionRow, x as ConnectionRowList, y as ConnectionRowListProps, z as ConnectionRowProps, D as DangerZone, E as DangerZoneAction, F as DangerZoneActionProps, G as DangerZoneProps, H as DataTable, I as DataTableColumn, J as DataTableProps, K as DataTableSort, L as DataTableSortDirection, M as DescriptionItem, N as DescriptionList, O as DescriptionListProps, P as EmptyState, Q as EmptyStateProps, R as ExpandableSection, S as ExpandableSectionProps, T as Field, U as FieldInput, V as FieldInputProps, W as FieldProps, X as FieldRow, Y as FieldRowProps, Z as FieldSelect, _ as FieldSelectProps, $ as FieldSwitch, a0 as FieldSwitchProps, a1 as FieldTextarea, a2 as FieldTextareaProps, a3 as FilterBar, a4 as FilterBarProps, a5 as FloatingUnsavedChangesBar, a6 as FloatingUnsavedChangesBarProps, a7 as FormSection, a8 as FormSectionProps, a9 as INTEGRATION_CATALOG_CARD_HEIGHT_CLASS, aa as InfoCard, ab as InfoCardProps, ac as InfoCardTone, ad as IntegrationCard, ae as IntegrationCardProps, af as IntegrationCardStatus, ag as IntegrationsEmptyState, ah as IntegrationsEmptyStateProps, ai as LineAreaChart, aj as LineAreaChartProps, ak as MetricChartCard, al as MetricChartCardProps, am as MetricChartMetric, an as MetricRow, ao as MetricRowItem, ap as MetricRowProps, aq as MetricTile, ar as MetricTileProps, as as Page, at as PageHeader, au as PageHeaderProps, av as PageProps, aw as PlanBadge, ax as PlanBadgeProps, ay as PlanBadgeTone, az as ResourceCard, aA as ResourceCardProps, aB as SearchInput, aC as SearchInputProps, aD as Section, aE as SectionProps, aF as SettingsSection, aG as SettingsSectionHeader, aH as SettingsSectionHeaderProps, aI as SettingsSectionProps, aJ as Sparkline, aK as SparklineProps, aL as StatTile, aM as StatTileProps, aN as StatusBadge, aO as StatusBadgeProps, aP as StatusBadgeTone, aQ as StatusDot, aR as StatusDotProps, aS as StatusDotTone, aT as SubNav, aU as SubNavItem, aV as SubNavProps, aW as SurfaceCard, aX as SurfaceCardProps, aY as connectionRowListClass, aZ as useAppCopilotContext, a_ as useAppShellChat } from './chart-artifact-C2m891nx.cjs';
2
2
  export { B as Button } from './button-CIKzUrJI.cjs';
3
- export { C as ChartArtifact, T as ThreadVariant, a as TimbalChat, b as TimbalChatProps } from './chat-CWtQWDtJ.cjs';
3
+ export { C as ChartArtifact, T as ThreadVariant, a as TimbalChat, b as TimbalChatProps } from './chat-Bed4FQSl.cjs';
4
4
  import 'react';
5
5
  import 'react/jsx-runtime';
6
6
  import 'class-variance-authority/types';
package/dist/app.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export { A as APP_KIT_AGENT_INSTRUCTIONS, a as AppChatPanel, b as AppChatPanelProps, c as AppConfirmDialog, d as AppConfirmDialogProps, e as AppCopilotContextValue, f as AppCopilotProvider, g as AppCopilotProviderProps, h as AppShell, i as AppShellChatControls, j as AppShellChatTrigger, k as AppShellChatTriggerProps, l as AppShellProps, m as AppShellTopbar, n as AppShellTopbarProps, B as BreadcrumbItem, o as Breadcrumbs, p as BreadcrumbsProps, C as CHART_PALETTE, q as ChartArtifactView, r as ChartLayout, s as ChartPanel, t as ChartPanelProps, u as ChartSeries, v as ChartVariant, w as ConnectionRow, x as ConnectionRowList, y as ConnectionRowListProps, z as ConnectionRowProps, D as DangerZone, E as DangerZoneAction, F as DangerZoneActionProps, G as DangerZoneProps, H as DataTable, I as DataTableColumn, J as DataTableProps, K as DataTableSort, L as DataTableSortDirection, M as DescriptionItem, N as DescriptionList, O as DescriptionListProps, P as EmptyState, Q as EmptyStateProps, R as ExpandableSection, S as ExpandableSectionProps, T as Field, U as FieldInput, V as FieldInputProps, W as FieldProps, X as FieldRow, Y as FieldRowProps, Z as FieldSelect, _ as FieldSelectProps, $ as FieldSwitch, a0 as FieldSwitchProps, a1 as FieldTextarea, a2 as FieldTextareaProps, a3 as FilterBar, a4 as FilterBarProps, a5 as FloatingUnsavedChangesBar, a6 as FloatingUnsavedChangesBarProps, a7 as FormSection, a8 as FormSectionProps, a9 as INTEGRATION_CATALOG_CARD_HEIGHT_CLASS, aa as InfoCard, ab as InfoCardProps, ac as InfoCardTone, ad as IntegrationCard, ae as IntegrationCardProps, af as IntegrationCardStatus, ag as IntegrationsEmptyState, ah as IntegrationsEmptyStateProps, ai as LineAreaChart, aj as LineAreaChartProps, ak as MetricChartCard, al as MetricChartCardProps, am as MetricChartMetric, an as MetricRow, ao as MetricRowItem, ap as MetricRowProps, aq as MetricTile, ar as MetricTileProps, as as Page, at as PageHeader, au as PageHeaderProps, av as PageProps, aw as PlanBadge, ax as PlanBadgeProps, ay as PlanBadgeTone, az as ResourceCard, aA as ResourceCardProps, aB as SearchInput, aC as SearchInputProps, aD as Section, aE as SectionProps, aF as SettingsSection, aG as SettingsSectionHeader, aH as SettingsSectionHeaderProps, aI as SettingsSectionProps, aJ as Sparkline, aK as SparklineProps, aL as StatTile, aM as StatTileProps, aN as StatusBadge, aO as StatusBadgeProps, aP as StatusBadgeTone, aQ as StatusDot, aR as StatusDotProps, aS as StatusDotTone, aT as SubNav, aU as SubNavItem, aV as SubNavProps, aW as SurfaceCard, aX as SurfaceCardProps, aY as connectionRowListClass, aZ as useAppCopilotContext, a_ as useAppShellChat } from './chart-artifact-BFDz8Tf9.js';
1
+ export { A as APP_KIT_AGENT_INSTRUCTIONS, a as AppChatPanel, b as AppChatPanelProps, c as AppConfirmDialog, d as AppConfirmDialogProps, e as AppCopilotContextValue, f as AppCopilotProvider, g as AppCopilotProviderProps, h as AppShell, i as AppShellChatControls, j as AppShellChatTrigger, k as AppShellChatTriggerProps, l as AppShellProps, m as AppShellTopbar, n as AppShellTopbarProps, B as BreadcrumbItem, o as Breadcrumbs, p as BreadcrumbsProps, C as CHART_PALETTE, q as ChartArtifactView, r as ChartLayout, s as ChartPanel, t as ChartPanelProps, u as ChartSeries, v as ChartVariant, w as ConnectionRow, x as ConnectionRowList, y as ConnectionRowListProps, z as ConnectionRowProps, D as DangerZone, E as DangerZoneAction, F as DangerZoneActionProps, G as DangerZoneProps, H as DataTable, I as DataTableColumn, J as DataTableProps, K as DataTableSort, L as DataTableSortDirection, M as DescriptionItem, N as DescriptionList, O as DescriptionListProps, P as EmptyState, Q as EmptyStateProps, R as ExpandableSection, S as ExpandableSectionProps, T as Field, U as FieldInput, V as FieldInputProps, W as FieldProps, X as FieldRow, Y as FieldRowProps, Z as FieldSelect, _ as FieldSelectProps, $ as FieldSwitch, a0 as FieldSwitchProps, a1 as FieldTextarea, a2 as FieldTextareaProps, a3 as FilterBar, a4 as FilterBarProps, a5 as FloatingUnsavedChangesBar, a6 as FloatingUnsavedChangesBarProps, a7 as FormSection, a8 as FormSectionProps, a9 as INTEGRATION_CATALOG_CARD_HEIGHT_CLASS, aa as InfoCard, ab as InfoCardProps, ac as InfoCardTone, ad as IntegrationCard, ae as IntegrationCardProps, af as IntegrationCardStatus, ag as IntegrationsEmptyState, ah as IntegrationsEmptyStateProps, ai as LineAreaChart, aj as LineAreaChartProps, ak as MetricChartCard, al as MetricChartCardProps, am as MetricChartMetric, an as MetricRow, ao as MetricRowItem, ap as MetricRowProps, aq as MetricTile, ar as MetricTileProps, as as Page, at as PageHeader, au as PageHeaderProps, av as PageProps, aw as PlanBadge, ax as PlanBadgeProps, ay as PlanBadgeTone, az as ResourceCard, aA as ResourceCardProps, aB as SearchInput, aC as SearchInputProps, aD as Section, aE as SectionProps, aF as SettingsSection, aG as SettingsSectionHeader, aH as SettingsSectionHeaderProps, aI as SettingsSectionProps, aJ as Sparkline, aK as SparklineProps, aL as StatTile, aM as StatTileProps, aN as StatusBadge, aO as StatusBadgeProps, aP as StatusBadgeTone, aQ as StatusDot, aR as StatusDotProps, aS as StatusDotTone, aT as SubNav, aU as SubNavItem, aV as SubNavProps, aW as SurfaceCard, aX as SurfaceCardProps, aY as connectionRowListClass, aZ as useAppCopilotContext, a_ as useAppShellChat } from './chart-artifact-CqqhdSR9.js';
2
2
  export { B as Button } from './button-CIKzUrJI.js';
3
- export { C as ChartArtifact, T as ThreadVariant, a as TimbalChat, b as TimbalChatProps } from './chat-CWtQWDtJ.js';
3
+ export { C as ChartArtifact, T as ThreadVariant, a as TimbalChat, b as TimbalChatProps } from './chat-Bed4FQSl.js';
4
4
  import 'react';
5
5
  import 'react/jsx-runtime';
6
6
  import 'class-variance-authority/types';
package/dist/app.esm.js CHANGED
@@ -56,18 +56,18 @@ import {
56
56
  connectionRowListClass,
57
57
  useAppCopilotContext,
58
58
  useAppShellChat
59
- } from "./chunk-533MK5EA.esm.js";
59
+ } from "./chunk-ZEDE2TWQ.esm.js";
60
60
  import "./chunk-Z27GBSOT.esm.js";
61
61
  import {
62
62
  CHART_PALETTE,
63
63
  ChartArtifactView,
64
64
  LineAreaChart,
65
65
  TimbalChat
66
- } from "./chunk-TLUF2RUL.esm.js";
67
- import "./chunk-TDIJHV4I.esm.js";
66
+ } from "./chunk-VVTTLIGT.esm.js";
67
+ import "./chunk-YNDXBN6C.esm.js";
68
68
  import {
69
69
  Button
70
- } from "./chunk-2XZ3S4OP.esm.js";
70
+ } from "./chunk-QKO67F4V.esm.js";
71
71
  export {
72
72
  APP_KIT_AGENT_INSTRUCTIONS,
73
73
  AppChatPanel,
@@ -1,5 +1,5 @@
1
1
  import { FC, ReactNode, InputHTMLAttributes, TextareaHTMLAttributes, SelectHTMLAttributes } from 'react';
2
- import { w as TimbalRuntimeProviderProps, q as ThreadProps, C as ChartArtifact } from './chat-CWtQWDtJ.cjs';
2
+ import { w as TimbalRuntimeProviderProps, q as ThreadProps, C as ChartArtifact } from './chat-Bed4FQSl.cjs';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
 
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  import { FC, ReactNode, InputHTMLAttributes, TextareaHTMLAttributes, SelectHTMLAttributes } from 'react';
2
- import { w as TimbalRuntimeProviderProps, q as ThreadProps, C as ChartArtifact } from './chat-CWtQWDtJ.js';
2
+ import { w as TimbalRuntimeProviderProps, q as ThreadProps, C as ChartArtifact } from './chat-Bed4FQSl.js';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
 
5
5
  /**
@@ -374,6 +374,11 @@ interface ThreadWelcomeConfig {
374
374
  interface ThreadWelcomeProps {
375
375
  config?: ThreadWelcomeConfig;
376
376
  suggestions?: SuggestionsSource;
377
+ /**
378
+ * When set, controls whether the default welcome renders `suggestions`.
379
+ * Omitted: shown for `variant="default"`, hidden for `variant="panel"`.
380
+ */
381
+ showWelcomeSuggestions?: boolean;
377
382
  /**
378
383
  * The resolved `Suggestions` component (default or user-overridden via
379
384
  * `components.Suggestions`). Custom Welcome implementations should render
@@ -420,6 +425,11 @@ interface ThreadProps {
420
425
  * async function for per-user suggestions.
421
426
  */
422
427
  suggestions?: SuggestionsSource;
428
+ /**
429
+ * Show suggestion rows on the built-in welcome when `suggestions` is set.
430
+ * Default: `true` for `variant="default"`, `false` for `variant="panel"`.
431
+ */
432
+ showWelcomeSuggestions?: boolean;
423
433
  /** Composer input placeholder. Default: "Send a message...". */
424
434
  composerPlaceholder?: string;
425
435
  /** Override individual UI slots while keeping the rest as defaults. */
@@ -374,6 +374,11 @@ interface ThreadWelcomeConfig {
374
374
  interface ThreadWelcomeProps {
375
375
  config?: ThreadWelcomeConfig;
376
376
  suggestions?: SuggestionsSource;
377
+ /**
378
+ * When set, controls whether the default welcome renders `suggestions`.
379
+ * Omitted: shown for `variant="default"`, hidden for `variant="panel"`.
380
+ */
381
+ showWelcomeSuggestions?: boolean;
377
382
  /**
378
383
  * The resolved `Suggestions` component (default or user-overridden via
379
384
  * `components.Suggestions`). Custom Welcome implementations should render
@@ -420,6 +425,11 @@ interface ThreadProps {
420
425
  * async function for per-user suggestions.
421
426
  */
422
427
  suggestions?: SuggestionsSource;
428
+ /**
429
+ * Show suggestion rows on the built-in welcome when `suggestions` is set.
430
+ * Default: `true` for `variant="default"`, `false` for `variant="panel"`.
431
+ */
432
+ showWelcomeSuggestions?: boolean;
423
433
  /** Composer input placeholder. Default: "Send a message...". */
424
434
  composerPlaceholder?: string;
425
435
  /** Override individual UI slots while keeping the rest as defaults. */
package/dist/chat.cjs CHANGED
@@ -3999,6 +3999,7 @@ var Thread = ({
3999
3999
  maxWidth: maxWidthProp,
4000
4000
  welcome,
4001
4001
  suggestions,
4002
+ showWelcomeSuggestions,
4002
4003
  composerPlaceholder,
4003
4004
  components,
4004
4005
  artifacts,
@@ -4047,6 +4048,7 @@ var Thread = ({
4047
4048
  {
4048
4049
  config: welcome,
4049
4050
  suggestions,
4051
+ showWelcomeSuggestions,
4050
4052
  Suggestions: SuggestionsSlot
4051
4053
  }
4052
4054
  ),
@@ -4127,10 +4129,12 @@ var welcomeIcon = {
4127
4129
  var ThreadWelcome = ({
4128
4130
  config,
4129
4131
  suggestions,
4132
+ showWelcomeSuggestions: showWelcomeSuggestionsProp,
4130
4133
  Suggestions: SuggestionsSlot = Suggestions
4131
4134
  }) => {
4132
4135
  const isEmpty = (0, import_react30.useThread)((s) => s.messages.length === 0);
4133
4136
  const isPanel = useThreadVariant() === "panel";
4137
+ const showWelcomeSuggestions = showWelcomeSuggestionsProp ?? !isPanel;
4134
4138
  if (!isEmpty) return null;
4135
4139
  const defaultHeading = isPanel ? "Ask about this page" : "How can I help you today?";
4136
4140
  const defaultSubheading = isPanel ? "The assistant can use dashboard context from your app." : "Send a message to start a conversation.";
@@ -4169,7 +4173,7 @@ var ThreadWelcome = ({
4169
4173
  ]
4170
4174
  }
4171
4175
  ) }),
4172
- suggestions && !isPanel ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "aui-thread-welcome-suggestions mx-auto w-full max-w-(--thread-max-width) px-2", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SuggestionsSlot, { suggestions }) }) : null
4176
+ showWelcomeSuggestions && suggestions ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "aui-thread-welcome-suggestions mx-auto w-full max-w-(--thread-max-width) px-2", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SuggestionsSlot, { suggestions }) }) : null
4173
4177
  ] });
4174
4178
  };
4175
4179
  var MessageError = () => {
package/dist/chat.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- export { c as ChatAttachment, d as ChatMessage, e as Composer, f as ComposerProps, g as ContentPart, S as SendOptions, h as Suggestions, i as SuggestionsComponent, j as SuggestionsSlotProps, k as SuggestionsSource, l as TextContentPart, m as ThinkingContentPart, n as Thread, o as ThreadArtifactsConfig, p as ThreadComponents, q as ThreadProps, r as ThreadSuggestion, s as ThreadSuggestionsProps, T as ThreadVariant, t as ThreadWelcomeConfig, u as ThreadWelcomeProps, a as TimbalChat, b as TimbalChatProps, v as TimbalRuntimeProvider, w as TimbalRuntimeProviderProps, x as TimbalStreamApi, y as ToolCallContentPart, U as UseTimbalStreamOptions, z as useResolvedSuggestions, A as useTimbalRuntime, B as useTimbalStream } from './chat-CWtQWDtJ.cjs';
1
+ export { c as ChatAttachment, d as ChatMessage, e as Composer, f as ComposerProps, g as ContentPart, S as SendOptions, h as Suggestions, i as SuggestionsComponent, j as SuggestionsSlotProps, k as SuggestionsSource, l as TextContentPart, m as ThinkingContentPart, n as Thread, o as ThreadArtifactsConfig, p as ThreadComponents, q as ThreadProps, r as ThreadSuggestion, s as ThreadSuggestionsProps, T as ThreadVariant, t as ThreadWelcomeConfig, u as ThreadWelcomeProps, a as TimbalChat, b as TimbalChatProps, v as TimbalRuntimeProvider, w as TimbalRuntimeProviderProps, x as TimbalStreamApi, y as ToolCallContentPart, U as UseTimbalStreamOptions, z as useResolvedSuggestions, A as useTimbalRuntime, B as useTimbalStream } from './chat-Bed4FQSl.cjs';
2
2
  export { M as MarkdownText, T as THREAD_DEFAULT_MAX_WIDTH, a as ToolFallback, b as TooltipIconButton, c as TooltipIconButtonProps, W as WorkforceSelector, d as WorkforceSelectorProps, e as assistantMessageContentClass, f as assistantMessageRootClass, t as threadMessageColumnClass, u as useToolRunning, g as userMessageRootClass } from './layout-C2G-FcER.cjs';
3
3
  import { FC } from 'react';
4
4
  import 'react/jsx-runtime';
package/dist/chat.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { c as ChatAttachment, d as ChatMessage, e as Composer, f as ComposerProps, g as ContentPart, S as SendOptions, h as Suggestions, i as SuggestionsComponent, j as SuggestionsSlotProps, k as SuggestionsSource, l as TextContentPart, m as ThinkingContentPart, n as Thread, o as ThreadArtifactsConfig, p as ThreadComponents, q as ThreadProps, r as ThreadSuggestion, s as ThreadSuggestionsProps, T as ThreadVariant, t as ThreadWelcomeConfig, u as ThreadWelcomeProps, a as TimbalChat, b as TimbalChatProps, v as TimbalRuntimeProvider, w as TimbalRuntimeProviderProps, x as TimbalStreamApi, y as ToolCallContentPart, U as UseTimbalStreamOptions, z as useResolvedSuggestions, A as useTimbalRuntime, B as useTimbalStream } from './chat-CWtQWDtJ.js';
1
+ export { c as ChatAttachment, d as ChatMessage, e as Composer, f as ComposerProps, g as ContentPart, S as SendOptions, h as Suggestions, i as SuggestionsComponent, j as SuggestionsSlotProps, k as SuggestionsSource, l as TextContentPart, m as ThinkingContentPart, n as Thread, o as ThreadArtifactsConfig, p as ThreadComponents, q as ThreadProps, r as ThreadSuggestion, s as ThreadSuggestionsProps, T as ThreadVariant, t as ThreadWelcomeConfig, u as ThreadWelcomeProps, a as TimbalChat, b as TimbalChatProps, v as TimbalRuntimeProvider, w as TimbalRuntimeProviderProps, x as TimbalStreamApi, y as ToolCallContentPart, U as UseTimbalStreamOptions, z as useResolvedSuggestions, A as useTimbalRuntime, B as useTimbalStream } from './chat-Bed4FQSl.js';
2
2
  export { M as MarkdownText, T as THREAD_DEFAULT_MAX_WIDTH, a as ToolFallback, b as TooltipIconButton, c as TooltipIconButtonProps, W as WorkforceSelector, d as WorkforceSelectorProps, e as assistantMessageContentClass, f as assistantMessageRootClass, t as threadMessageColumnClass, u as useToolRunning, g as userMessageRootClass } from './layout-BTJyU8wd.js';
3
3
  import { FC } from 'react';
4
4
  import 'react/jsx-runtime';
package/dist/chat.esm.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-KC5QLVUG.esm.js";
8
8
  import {
9
9
  WorkforceSelector
10
- } from "./chunk-N3PYVTY5.esm.js";
10
+ } from "./chunk-ZG5NBHOS.esm.js";
11
11
  import {
12
12
  Composer,
13
13
  ComposerAddAttachment,
@@ -24,8 +24,8 @@ import {
24
24
  useTimbalRuntime,
25
25
  useTimbalStream,
26
26
  useToolRunning
27
- } from "./chunk-TLUF2RUL.esm.js";
28
- import "./chunk-2XZ3S4OP.esm.js";
27
+ } from "./chunk-VVTTLIGT.esm.js";
28
+ import "./chunk-QKO67F4V.esm.js";
29
29
  export {
30
30
  Composer,
31
31
  ComposerAddAttachment,
@@ -20,7 +20,7 @@ import {
20
20
  } from "./chunk-Z27GBSOT.esm.js";
21
21
  import {
22
22
  WorkforceSelector
23
- } from "./chunk-N3PYVTY5.esm.js";
23
+ } from "./chunk-ZG5NBHOS.esm.js";
24
24
  import {
25
25
  Composer,
26
26
  TimbalChat,
@@ -43,10 +43,10 @@ import {
43
43
  studioTopbarIconPillClass,
44
44
  studioTopbarPillHeightClass,
45
45
  useTimbalRuntime
46
- } from "./chunk-TLUF2RUL.esm.js";
46
+ } from "./chunk-VVTTLIGT.esm.js";
47
47
  import {
48
48
  PillSegmentedTabs
49
- } from "./chunk-TDIJHV4I.esm.js";
49
+ } from "./chunk-YNDXBN6C.esm.js";
50
50
  import {
51
51
  Avatar,
52
52
  AvatarFallback,
@@ -56,7 +56,7 @@ import {
56
56
  TooltipContent,
57
57
  TooltipTrigger,
58
58
  cn
59
- } from "./chunk-2XZ3S4OP.esm.js";
59
+ } from "./chunk-QKO67F4V.esm.js";
60
60
 
61
61
  // src/hooks/use-workforces.ts
62
62
  import { useEffect, useMemo, useRef, useState } from "react";