ai-design-system 0.1.51 → 0.1.52

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.
@@ -40,7 +40,7 @@ export const InboxPanel = React.memo<InboxPanelProps>(
40
40
  </div>
41
41
  ) : null}
42
42
 
43
- <div className="px-4 pb-2">
43
+ <div className="px-4 pt-4 pb-2">
44
44
  <Input
45
45
  aria-label="Search inbox items"
46
46
  className="h-8"
@@ -21,6 +21,7 @@ export const SectionLayout = React.memo<SectionLayoutProps>(
21
21
  resizable = true,
22
22
  dragHandleColor = "border",
23
23
  className,
24
+ padded = true,
24
25
  ...props
25
26
  }) => {
26
27
  // Transform sections to include headers
@@ -47,6 +48,7 @@ export const SectionLayout = React.memo<SectionLayoutProps>(
47
48
  onSectionResize={onSectionResize}
48
49
  dragHandleColor={dragHandleColor}
49
50
  className={className}
51
+ padded={padded}
50
52
  {...props}
51
53
  />
52
54
  )
@@ -20,4 +20,5 @@ export interface SectionLayoutProps extends React.ComponentPropsWithoutRef<"div"
20
20
  onSectionResize?: (sectionId: string, newSize: number) => void;
21
21
  resizable?: boolean;
22
22
  dragHandleColor?: "primary" | "secondary" | "accent" | "border" | "muted";
23
+ padded?: boolean;
23
24
  }
@@ -18,6 +18,7 @@ export interface AdjustableLayoutProps extends React.ComponentPropsWithoutRef<"d
18
18
  storageKey?: string // localStorage key for persistence
19
19
  onSectionResize?: (sectionId: string, newSize: number) => void
20
20
  dragHandleColor?: "primary" | "secondary" | "accent" | "border" | "muted"
21
+ padded?: boolean
21
22
  }
22
23
 
23
24
  /**
@@ -28,19 +29,20 @@ export interface AdjustableLayoutProps extends React.ComponentPropsWithoutRef<"d
28
29
  * Supports localStorage persistence and responsive behavior.
29
30
  */
30
31
  export const AdjustableLayout = React.memo<AdjustableLayoutProps>(
31
- ({
32
- sections,
33
- orientation = "horizontal",
32
+ ({
33
+ sections,
34
+ orientation = "horizontal",
34
35
  storageKey,
35
36
  onSectionResize,
36
37
  dragHandleColor = "border",
37
38
  className,
38
- ...props
39
+ padded = false,
40
+ ...props
39
41
  }) => {
40
42
  // Color mapping for drag handles
41
43
  const colorMap = {
42
44
  primary: "bg-primary hover:bg-primary/90",
43
- secondary: "bg-secondary hover:bg-secondary/80",
45
+ secondary: "bg-secondary hover:bg-secondary/80",
44
46
  accent: "bg-accent hover:bg-accent/80",
45
47
  border: "bg-border hover:bg-border/80",
46
48
  muted: "bg-muted hover:bg-muted/80"
@@ -49,7 +51,7 @@ export const AdjustableLayout = React.memo<AdjustableLayoutProps>(
49
51
  const hoverColorMap = {
50
52
  primary: "group-hover:bg-primary/30",
51
53
  secondary: "group-hover:bg-secondary/30",
52
- accent: "group-hover:bg-accent/30",
54
+ accent: "group-hover:bg-accent/30",
53
55
  border: "group-hover:bg-border/30",
54
56
  muted: "group-hover:bg-muted/30"
55
57
  }
@@ -77,7 +79,7 @@ export const AdjustableLayout = React.memo<AdjustableLayoutProps>(
77
79
  } catch {
78
80
  // ignore malformed storage
79
81
  }
80
- // eslint-disable-next-line react-hooks/exhaustive-deps
82
+ // eslint-disable-next-line react-hooks/exhaustive-deps
81
83
  }, [storageKey])
82
84
 
83
85
  const [draggingIndex, setDraggingIndex] = React.useState<number | null>(null)
@@ -119,33 +121,33 @@ export const AdjustableLayout = React.memo<AdjustableLayoutProps>(
119
121
 
120
122
  const currentX = orientation === "horizontal" ? e.clientX : e.clientY
121
123
  const deltaX = currentX - startX
122
-
124
+
123
125
  const deltaPercent = (deltaX / containerSize) * 100
124
-
126
+
125
127
  const p1 = sections[draggingIndex]
126
128
  const p2 = sections[draggingIndex + 1]
127
-
129
+
128
130
  const p1Start = startSizes[draggingIndex]
129
131
  const p2Start = startSizes[draggingIndex + 1]
130
-
132
+
131
133
  const p1Min = p1.minSize ?? 10
132
134
  const p1Max = p1.maxSize ?? 80
133
135
  const p2Min = p2.minSize ?? 10
134
136
  const p2Max = p2.maxSize ?? 80
135
-
137
+
136
138
  // Calculate how much we can actually change panel 1
137
139
  // If deltaPercent > 0, we are growing p1 and shrinking p2
138
140
  const maxPositiveDelta = Math.max(0, Math.min(
139
141
  p1Max - p1Start, // Space p1 has to grow
140
142
  p2Start - p2Min // Space p2 has to shrink
141
143
  ))
142
-
144
+
143
145
  // If deltaPercent < 0, we are shrinking p1 and growing p2
144
146
  const maxNegativeDelta = Math.min(0, Math.max(
145
147
  p1Min - p1Start, // Space p1 has to shrink (negative)
146
148
  p2Start - p2Max // Space p2 has to grow (negative)
147
149
  ))
148
-
150
+
149
151
  // Clamp the delta
150
152
  let clampedDelta = deltaPercent
151
153
  if (clampedDelta > 0) {
@@ -153,17 +155,17 @@ export const AdjustableLayout = React.memo<AdjustableLayoutProps>(
153
155
  } else {
154
156
  clampedDelta = Math.max(clampedDelta, maxNegativeDelta)
155
157
  }
156
-
158
+
157
159
  const newSizes = [...startSizes]
158
160
  newSizes[draggingIndex] = p1Start + clampedDelta
159
161
  newSizes[draggingIndex + 1] = p2Start - clampedDelta
160
-
162
+
161
163
  // Normalize to 100% just in case of floating point drift
162
164
  const total = newSizes.reduce((sum, size) => sum + size, 0)
163
165
  const normalizedSizes = newSizes.map(size => (size / total) * 100)
164
-
166
+
165
167
  setSizes(normalizedSizes)
166
-
168
+
167
169
  // Notify parent
168
170
  if (onSectionResize) {
169
171
  onSectionResize(sections[draggingIndex].id, normalizedSizes[draggingIndex])
@@ -201,12 +203,12 @@ export const AdjustableLayout = React.memo<AdjustableLayoutProps>(
201
203
  ? { flex: `0 0 ${section.fixedSize}`, width: section.fixedSize, minWidth: section.fixedSize }
202
204
  : { flex: `0 0 ${section.fixedSize}`, height: section.fixedSize, minHeight: section.fixedSize }
203
205
  : null
204
-
206
+
205
207
  return (
206
208
  <React.Fragment key={section.id}>
207
209
  <div
208
210
  className={cn(
209
- "min-h-0 overflow-hidden bg-card border border-border rounded-md",
211
+ "min-h-0 overflow-hidden bg-card border border-border rounded-xl",
210
212
  section.className
211
213
  )}
212
214
  style={{
@@ -217,25 +219,35 @@ export const AdjustableLayout = React.memo<AdjustableLayoutProps>(
217
219
  >
218
220
  {section.content}
219
221
  </div>
220
-
222
+
221
223
  {/* Show drag handle after this panel if it's not the last one */}
222
224
  {isResizable && (
223
225
  <div
224
226
  className={cn(
225
- `${colorMap[dragHandleColor]} flex-shrink-0 transition-colors duration-200 relative group`,
226
- orientation === "vertical"
227
- ? "cursor-row-resize h-1 w-full"
228
- : "cursor-col-resize w-1 h-full"
227
+ "flex-shrink-0 flex items-center justify-center relative group",
228
+ orientation === "vertical"
229
+ ? "cursor-row-resize h-2 w-full"
230
+ : "cursor-col-resize w-2 h-full"
229
231
  )}
230
232
  onMouseDown={(e) => handleMouseDown(index, e)}
231
233
  >
232
- <div
234
+ {/* Visible pill */}
235
+ <div
236
+ className={cn(
237
+ `${colorMap[dragHandleColor]} transition-colors duration-200 rounded-full`,
238
+ orientation === "vertical"
239
+ ? "h-1 w-8"
240
+ : "w-1 h-8"
241
+ )}
242
+ />
243
+ {/* Invisible large hit area */}
244
+ <div
233
245
  className={cn(
234
- `absolute inset-0 ${hoverColorMap[dragHandleColor]}`,
235
- orientation === "vertical"
236
- ? "h-3 -translate-y-1"
237
- : "w-3 -translate-x-1"
238
- )}
246
+ "absolute z-10",
247
+ orientation === "vertical"
248
+ ? "inset-x-0 -top-2 -bottom-2"
249
+ : "inset-y-0 -left-2 -right-2"
250
+ )}
239
251
  />
240
252
  </div>
241
253
  )}
@@ -248,12 +260,13 @@ export const AdjustableLayout = React.memo<AdjustableLayoutProps>(
248
260
  ref={containerRef}
249
261
  className={cn(
250
262
  "flex overflow-hidden h-full gap-1 min-w-0",
263
+ padded && "p-4",
251
264
  orientation === "horizontal" ? "flex-row" : "flex-col",
252
265
  className
253
266
  )}
254
267
  {...props}
255
268
  >
256
- {sections.map((section, index) =>
269
+ {sections.map((section, index) =>
257
270
  renderPanel(section, sizes[index], index)
258
271
  )}
259
272
  </div>
@@ -12,6 +12,7 @@ export interface NavigationItem {
12
12
  url: string
13
13
  icon?: string
14
14
  isActive?: boolean
15
+ onClick?: (e: React.MouseEvent) => void
15
16
  }
16
17
 
17
18
  export interface NavigationListProps {
@@ -29,7 +30,13 @@ export const NavigationList = React.memo<NavigationListProps>(
29
30
  <SidebarMenuButton
30
31
  tooltip={item.title}
31
32
  isActive={item.isActive}
32
- onClick={() => onItemClick?.(item)}
33
+ onClick={(e) => {
34
+ if (item.onClick) {
35
+ e.preventDefault();
36
+ item.onClick(e);
37
+ }
38
+ onItemClick?.(item)
39
+ }}
33
40
  asChild
34
41
  >
35
42
  <a href={item.url}>
@@ -3,5 +3,6 @@ export interface NavigationItem {
3
3
  url: string;
4
4
  icon?: string;
5
5
  isActive?: boolean;
6
+ onClick?: (e: React.MouseEvent) => void;
6
7
  items?: NavigationItem[];
7
8
  }
@@ -14,6 +14,8 @@ import {
14
14
  type PromptInputProps as AIPromptInputProps,
15
15
  } from "@/components/ai-elements/prompt-input";
16
16
  import type { FormEvent } from "react";
17
+ import { Button } from "@/components/primitives/Button";
18
+ import { Icon } from "@/components/primitives/Icon";
17
19
 
18
20
  export interface PromptInputBlockProps
19
21
  extends Omit<
@@ -80,7 +82,9 @@ export const PromptInput = React.memo<PromptInputBlockProps>(
80
82
  </PromptInputBody>
81
83
  <PromptInputFooter>
82
84
  <PromptInputTools>
83
- {}
85
+ <Button variant="ghost" size="icon" className="h-8 w-8 rounded-full" type="button" disabled={disabled}>
86
+ <Icon name="plus" size="sm" />
87
+ </Button>
84
88
  </PromptInputTools>
85
89
  <PromptInputSubmit disabled={disabled} status={loading ? "submitted" : undefined} />
86
90
  </PromptInputFooter>
@@ -182,3 +182,7 @@ export type { LayoutProviderProps } from './LayoutProvider'
182
182
  // PromptInput Composite
183
183
  export { PromptInput } from './PromptInput'
184
184
  export type { PromptInputBlockProps } from './PromptInput'
185
+
186
+ // ChatToggleButton Composite
187
+ export { ChatToggleButton } from './ChatToggleButton'
188
+ export type { ChatToggleButtonProps } from './ChatToggleButton'
@@ -227,7 +227,7 @@ export const RefinementPanel = React.memo<RefinementPanelProps>(
227
227
 
228
228
  if (activeApprovalRequest) {
229
229
  dialog = (
230
- <div className="w-full flex-shrink-0 bg-background p-4">
230
+ <div className="w-full flex-shrink-0 bg-card p-4 rounded-2xl border shadow-sm overflow-hidden">
231
231
  <ApprovalCard
232
232
  actionRequest={activeApprovalRequest}
233
233
  reviewConfig={reviewConfig}
@@ -242,8 +242,8 @@ export const RefinementPanel = React.memo<RefinementPanelProps>(
242
242
  );
243
243
  } else if (fileChanges.length > 0) {
244
244
  dialog = (
245
- <div className="w-full flex-shrink-0 border-t">
246
- <div className="max-h-[40vh] overflow-y-auto bg-background">
245
+ <div className="w-full flex-shrink-0">
246
+ <div className="max-h-[40vh] overflow-y-auto bg-card rounded-2xl border shadow-sm overflow-hidden p-2">
247
247
  <FileChangeQueue
248
248
  changes={fileChanges}
249
249
  title="Review and approve these file changes"
@@ -264,12 +264,13 @@ export const RefinementPanel = React.memo<RefinementPanelProps>(
264
264
  showAvatars={true}
265
265
  className="flex-1 min-h-0"
266
266
  />
267
- <div className="sticky bottom-0 z-10 bg-background border-t">
267
+ <div className="sticky bottom-0 z-10 p-4 bg-gradient-to-t from-card via-card to-transparent pt-6">
268
268
  <PromptInput
269
269
  dialog={dialog}
270
270
  placeholder={placeholder}
271
271
  onSubmit={onSubmit}
272
272
  loading={loading}
273
+ className="rounded-2xl border bg-background shadow-sm overflow-hidden"
273
274
  />
274
275
  </div>
275
276
  </div>
@@ -162,10 +162,11 @@ export const WorkflowObservabilityFeature = React.memo<WorkflowObservabilityFeat
162
162
  dragHandleColor="border"
163
163
  orientation="horizontal"
164
164
  resizable={false}
165
+ padded={false}
165
166
  sections={observabilitySections}
166
167
  />
167
168
  ) : (
168
- <div className="rounded-lg border p-6 text-muted-foreground text-sm">
169
+ <div className="flex h-full items-center justify-center p-6 text-muted-foreground text-sm text-center">
169
170
  Select a run to inspect trace, events, and streams.
170
171
  </div>
171
172
  )
@@ -181,6 +182,7 @@ export const WorkflowObservabilityFeature = React.memo<WorkflowObservabilityFeat
181
182
  return [
182
183
  {
183
184
  id: "inbox",
185
+ className: "border-none bg-transparent",
184
186
  content: (
185
187
  <InboxPanel
186
188
  items={inbox.items}
@@ -214,6 +216,7 @@ export const WorkflowObservabilityFeature = React.memo<WorkflowObservabilityFeat
214
216
  dragHandleColor="primary"
215
217
  orientation="horizontal"
216
218
  resizable={false}
219
+ padded={false}
217
220
  sections={rootSections}
218
221
  />
219
222
  ) : (
@@ -8,7 +8,7 @@ export type * from './blocks';
8
8
  export type * from './features';
9
9
 
10
10
  // Composites (value exports not covered by export type *)
11
- export { ModeSwitcher, ApprovalCard, ProjectSwitcher, FormReportsDrawerForm } from './composites';
11
+ export { ModeSwitcher, ApprovalCard, ProjectSwitcher, FormReportsDrawerForm, ChatToggleButton } from './composites';
12
12
  export type { ApprovalCardProps, ActionRequest, ReviewConfig, ProjectSwitcherProps, Project, FormReportsDrawerFormProps } from './composites';
13
13
  export { getLayoutedElements, SectionLayout } from './blocks';
14
14
  export type { SectionLayoutSection } from './blocks';
package/dist/index.cjs CHANGED
@@ -1402,7 +1402,13 @@ var NavigationList = React3__namespace.memo(
1402
1402
  {
1403
1403
  tooltip: item.title,
1404
1404
  isActive: item.isActive,
1405
- onClick: () => onItemClick == null ? void 0 : onItemClick(item),
1405
+ onClick: (e) => {
1406
+ if (item.onClick) {
1407
+ e.preventDefault();
1408
+ item.onClick(e);
1409
+ }
1410
+ onItemClick == null ? void 0 : onItemClick(item);
1411
+ },
1406
1412
  asChild: true,
1407
1413
  children: /* @__PURE__ */ jsxRuntime.jsxs("a", { href: item.url, children: [
1408
1414
  item.icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: item.icon }),
@@ -1672,14 +1678,16 @@ var AdjustableLayout = React3__namespace.memo(
1672
1678
  storageKey,
1673
1679
  onSectionResize,
1674
1680
  dragHandleColor = "border",
1675
- className
1681
+ className,
1682
+ padded = false
1676
1683
  } = _b, props = __objRest(_b, [
1677
1684
  "sections",
1678
1685
  "orientation",
1679
1686
  "storageKey",
1680
1687
  "onSectionResize",
1681
1688
  "dragHandleColor",
1682
- "className"
1689
+ "className",
1690
+ "padded"
1683
1691
  ]);
1684
1692
  const colorMap = {
1685
1693
  primary: "bg-primary hover:bg-primary/90",
@@ -1688,13 +1696,6 @@ var AdjustableLayout = React3__namespace.memo(
1688
1696
  border: "bg-border hover:bg-border/80",
1689
1697
  muted: "bg-muted hover:bg-muted/80"
1690
1698
  };
1691
- const hoverColorMap = {
1692
- primary: "group-hover:bg-primary/30",
1693
- secondary: "group-hover:bg-secondary/30",
1694
- accent: "group-hover:bg-accent/30",
1695
- border: "group-hover:bg-border/30",
1696
- muted: "group-hover:bg-muted/30"
1697
- };
1698
1699
  const containerRef = React3__namespace.useRef(null);
1699
1700
  const defaultSizes = React3__namespace.useMemo(() => {
1700
1701
  const raw = sections.map((section) => {
@@ -1809,7 +1810,7 @@ var AdjustableLayout = React3__namespace.memo(
1809
1810
  "div",
1810
1811
  {
1811
1812
  className: cn(
1812
- "min-h-0 overflow-hidden bg-card border border-border rounded-md",
1813
+ "min-h-0 overflow-hidden bg-card border border-border rounded-xl",
1813
1814
  section.className
1814
1815
  ),
1815
1816
  style: __spreadProps(__spreadValues({}, fixedStyle != null ? fixedStyle : { flex: `${size} 1 0%` }), {
@@ -1819,23 +1820,34 @@ var AdjustableLayout = React3__namespace.memo(
1819
1820
  children: section.content
1820
1821
  }
1821
1822
  ),
1822
- isResizable && /* @__PURE__ */ jsxRuntime.jsx(
1823
+ isResizable && /* @__PURE__ */ jsxRuntime.jsxs(
1823
1824
  "div",
1824
1825
  {
1825
1826
  className: cn(
1826
- `${colorMap[dragHandleColor]} flex-shrink-0 transition-colors duration-200 relative group`,
1827
- orientation === "vertical" ? "cursor-row-resize h-1 w-full" : "cursor-col-resize w-1 h-full"
1827
+ "flex-shrink-0 flex items-center justify-center relative group",
1828
+ orientation === "vertical" ? "cursor-row-resize h-2 w-full" : "cursor-col-resize w-2 h-full"
1828
1829
  ),
1829
1830
  onMouseDown: (e) => handleMouseDown(index, e),
1830
- children: /* @__PURE__ */ jsxRuntime.jsx(
1831
- "div",
1832
- {
1833
- className: cn(
1834
- `absolute inset-0 ${hoverColorMap[dragHandleColor]}`,
1835
- orientation === "vertical" ? "h-3 -translate-y-1" : "w-3 -translate-x-1"
1836
- )
1837
- }
1838
- )
1831
+ children: [
1832
+ /* @__PURE__ */ jsxRuntime.jsx(
1833
+ "div",
1834
+ {
1835
+ className: cn(
1836
+ `${colorMap[dragHandleColor]} transition-colors duration-200 rounded-full`,
1837
+ orientation === "vertical" ? "h-1 w-8" : "w-1 h-8"
1838
+ )
1839
+ }
1840
+ ),
1841
+ /* @__PURE__ */ jsxRuntime.jsx(
1842
+ "div",
1843
+ {
1844
+ className: cn(
1845
+ "absolute z-10",
1846
+ orientation === "vertical" ? "inset-x-0 -top-2 -bottom-2" : "inset-y-0 -left-2 -right-2"
1847
+ )
1848
+ }
1849
+ )
1850
+ ]
1839
1851
  }
1840
1852
  )
1841
1853
  ] }, section.id);
@@ -1846,6 +1858,7 @@ var AdjustableLayout = React3__namespace.memo(
1846
1858
  ref: containerRef,
1847
1859
  className: cn(
1848
1860
  "flex overflow-hidden h-full gap-1 min-w-0",
1861
+ padded && "p-4",
1849
1862
  orientation === "horizontal" ? "flex-row" : "flex-col",
1850
1863
  className
1851
1864
  )
@@ -1965,7 +1978,8 @@ var SectionLayout = React3__namespace.memo(
1965
1978
  onSectionResize,
1966
1979
  resizable = true,
1967
1980
  dragHandleColor = "border",
1968
- className
1981
+ className,
1982
+ padded = true
1969
1983
  } = _b, props = __objRest(_b, [
1970
1984
  "sections",
1971
1985
  "orientation",
@@ -1973,7 +1987,8 @@ var SectionLayout = React3__namespace.memo(
1973
1987
  "onSectionResize",
1974
1988
  "resizable",
1975
1989
  "dragHandleColor",
1976
- "className"
1990
+ "className",
1991
+ "padded"
1977
1992
  ]);
1978
1993
  const transformedSections = sections.map((section) => __spreadProps(__spreadValues({}, section), {
1979
1994
  resizable,
@@ -1990,7 +2005,8 @@ var SectionLayout = React3__namespace.memo(
1990
2005
  storageKey,
1991
2006
  onSectionResize,
1992
2007
  dragHandleColor,
1993
- className
2008
+ className,
2009
+ padded
1994
2010
  }, props)
1995
2011
  );
1996
2012
  }
@@ -4986,7 +5002,7 @@ var PromptInput2 = React3__namespace.memo(
4986
5002
  }
4987
5003
  ) }),
4988
5004
  /* @__PURE__ */ jsxRuntime.jsxs(PromptInputFooter, { children: [
4989
- /* @__PURE__ */ jsxRuntime.jsx(PromptInputTools, {}),
5005
+ /* @__PURE__ */ jsxRuntime.jsx(PromptInputTools, { children: /* @__PURE__ */ jsxRuntime.jsx(Button2, { variant: "ghost", size: "icon", className: "h-8 w-8 rounded-full", type: "button", disabled, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "plus", size: "sm" }) }) }),
4990
5006
  /* @__PURE__ */ jsxRuntime.jsx(PromptInputSubmit, { disabled, status: loading ? "submitted" : void 0 })
4991
5007
  ] })
4992
5008
  ] }));
@@ -5577,7 +5593,7 @@ var RefinementPanel = React3__namespace.memo(
5577
5593
  }, [activeApprovalRequest]);
5578
5594
  let dialog = null;
5579
5595
  if (activeApprovalRequest) {
5580
- dialog = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full flex-shrink-0 bg-background p-4", children: /* @__PURE__ */ jsxRuntime.jsx(
5596
+ dialog = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full flex-shrink-0 bg-card p-4 rounded-2xl border shadow-sm overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
5581
5597
  ApprovalCard,
5582
5598
  {
5583
5599
  actionRequest: activeApprovalRequest,
@@ -5591,7 +5607,7 @@ var RefinementPanel = React3__namespace.memo(
5591
5607
  }
5592
5608
  ) });
5593
5609
  } else if (fileChanges.length > 0) {
5594
- dialog = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full flex-shrink-0 border-t", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-[40vh] overflow-y-auto bg-background", children: /* @__PURE__ */ jsxRuntime.jsx(
5610
+ dialog = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full flex-shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-[40vh] overflow-y-auto bg-card rounded-2xl border shadow-sm overflow-hidden p-2", children: /* @__PURE__ */ jsxRuntime.jsx(
5595
5611
  FileChangeQueue,
5596
5612
  {
5597
5613
  changes: fileChanges,
@@ -5612,13 +5628,14 @@ var RefinementPanel = React3__namespace.memo(
5612
5628
  className: "flex-1 min-h-0"
5613
5629
  }
5614
5630
  ),
5615
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sticky bottom-0 z-10 bg-background border-t", children: /* @__PURE__ */ jsxRuntime.jsx(
5631
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sticky bottom-0 z-10 p-4 bg-gradient-to-t from-card via-card to-transparent pt-6", children: /* @__PURE__ */ jsxRuntime.jsx(
5616
5632
  PromptInput2,
5617
5633
  {
5618
5634
  dialog,
5619
5635
  placeholder,
5620
5636
  onSubmit,
5621
- loading
5637
+ loading,
5638
+ className: "rounded-2xl border bg-background shadow-sm overflow-hidden"
5622
5639
  }
5623
5640
  ) })
5624
5641
  ] });
@@ -11419,7 +11436,7 @@ var InboxPanel = React3__namespace.memo(
11419
11436
  title ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-sm font-semibold text-muted-foreground", children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", {}),
11420
11437
  headerAction ? /* @__PURE__ */ jsxRuntime.jsx("div", { children: headerAction }) : null
11421
11438
  ] }) : null,
11422
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 pb-2", children: /* @__PURE__ */ jsxRuntime.jsx(
11439
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 pt-4 pb-2", children: /* @__PURE__ */ jsxRuntime.jsx(
11423
11440
  Input2,
11424
11441
  {
11425
11442
  "aria-label": "Search inbox items",
@@ -11548,9 +11565,10 @@ var WorkflowObservabilityFeature = React3__namespace.memo(
11548
11565
  dragHandleColor: "border",
11549
11566
  orientation: "horizontal",
11550
11567
  resizable: false,
11568
+ padded: false,
11551
11569
  sections: observabilitySections
11552
11570
  }
11553
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-lg border p-6 text-muted-foreground text-sm", children: "Select a run to inspect trace, events, and streams." });
11571
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full items-center justify-center p-6 text-muted-foreground text-sm text-center", children: "Select a run to inspect trace, events, and streams." });
11554
11572
  const rootSections = React3__namespace.useMemo(() => {
11555
11573
  var _a, _b;
11556
11574
  if (!inbox) {
@@ -11561,6 +11579,7 @@ var WorkflowObservabilityFeature = React3__namespace.memo(
11561
11579
  return [
11562
11580
  {
11563
11581
  id: "inbox",
11582
+ className: "border-none bg-transparent",
11564
11583
  content: /* @__PURE__ */ jsxRuntime.jsx(
11565
11584
  InboxPanel,
11566
11585
  {
@@ -11593,6 +11612,7 @@ var WorkflowObservabilityFeature = React3__namespace.memo(
11593
11612
  dragHandleColor: "primary",
11594
11613
  orientation: "horizontal",
11595
11614
  resizable: false,
11615
+ padded: false,
11596
11616
  sections: rootSections
11597
11617
  }
11598
11618
  ) : observabilityContent });
@@ -11683,6 +11703,7 @@ Object.defineProperty(exports, "applyNodeChanges", {
11683
11703
  });
11684
11704
  exports.AIDocEditor = AIDocEditor;
11685
11705
  exports.ApprovalCard = ApprovalCard;
11706
+ exports.ChatToggleButton = ChatToggleButton;
11686
11707
  exports.DashboardFeature = DashboardFeature;
11687
11708
  exports.FormReportsDrawerForm = FormReportsDrawerForm;
11688
11709
  exports.FormReportsFeature = FormReportsFeature;