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.
- package/components/blocks/InboxPanel/InboxPanel.tsx +1 -1
- package/components/blocks/SectionLayout/SectionLayout.tsx +2 -0
- package/components/blocks/SectionLayout/interfaces.ts +1 -0
- package/components/composites/AdjustableLayout/AdjustableLayout.tsx +45 -32
- package/components/composites/NavigationList/NavigationList.tsx +8 -1
- package/components/composites/NavigationList/interfaces.ts +1 -0
- package/components/composites/PromptInput/PromptInput.tsx +5 -1
- package/components/composites/index.ts +4 -0
- package/components/features/RefinementPanel/RefinementPanel.tsx +5 -4
- package/components/features/WorkflowObservabilityFeature/WorkflowObservabilityFeature.tsx +4 -1
- package/components/index.ts +1 -1
- package/dist/index.cjs +54 -33
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +86 -8
- package/dist/index.d.ts +12 -8
- package/dist/index.js +54 -34
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -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
|
-
|
|
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
|
-
|
|
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-
|
|
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
|
-
|
|
226
|
-
orientation === "vertical"
|
|
227
|
-
? "cursor-row-resize h-
|
|
228
|
-
: "cursor-col-resize w-
|
|
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
|
-
|
|
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
|
-
|
|
235
|
-
orientation === "vertical"
|
|
236
|
-
? "
|
|
237
|
-
: "
|
|
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={() =>
|
|
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}>
|
|
@@ -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-
|
|
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
|
|
246
|
-
<div className="max-h-[40vh] overflow-y-auto bg-
|
|
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-
|
|
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="
|
|
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
|
) : (
|
package/components/index.ts
CHANGED
|
@@ -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: () =>
|
|
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-
|
|
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.
|
|
1823
|
+
isResizable && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1823
1824
|
"div",
|
|
1824
1825
|
{
|
|
1825
1826
|
className: cn(
|
|
1826
|
-
|
|
1827
|
-
orientation === "vertical" ? "cursor-row-resize h-
|
|
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:
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
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-
|
|
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
|
|
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-
|
|
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: "
|
|
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;
|