@invana/ui 0.0.24 → 0.0.25
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/dist/index.cjs +368 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +206 -1
- package/dist/index.d.ts +206 -1
- package/dist/index.js +365 -1
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -3944,6 +3944,56 @@ var CitationRow = React23.forwardRef(
|
|
|
3944
3944
|
)
|
|
3945
3945
|
);
|
|
3946
3946
|
CitationRow.displayName = "CitationRow";
|
|
3947
|
+
var ClampedText = React23.forwardRef(
|
|
3948
|
+
({
|
|
3949
|
+
lines = 3,
|
|
3950
|
+
moreLabel = "Show more",
|
|
3951
|
+
lessLabel = "Show less",
|
|
3952
|
+
className,
|
|
3953
|
+
children,
|
|
3954
|
+
...props
|
|
3955
|
+
}, ref) => {
|
|
3956
|
+
const [expanded, setExpanded] = React23.useState(false);
|
|
3957
|
+
const [clipped, setClipped] = React23.useState(false);
|
|
3958
|
+
const bodyRef = React23.useRef(null);
|
|
3959
|
+
React23.useLayoutEffect(() => {
|
|
3960
|
+
const el = bodyRef.current;
|
|
3961
|
+
if (!el || expanded) return;
|
|
3962
|
+
const measure = () => setClipped(el.scrollHeight - el.clientHeight > 1);
|
|
3963
|
+
measure();
|
|
3964
|
+
const observer = new ResizeObserver(measure);
|
|
3965
|
+
observer.observe(el);
|
|
3966
|
+
return () => observer.disconnect();
|
|
3967
|
+
}, [expanded, children, lines]);
|
|
3968
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: cn("min-w-0", className), ...props, children: [
|
|
3969
|
+
/* @__PURE__ */ jsx(
|
|
3970
|
+
"p",
|
|
3971
|
+
{
|
|
3972
|
+
ref: bodyRef,
|
|
3973
|
+
className: cn(
|
|
3974
|
+
"whitespace-pre-line",
|
|
3975
|
+
!expanded && "overflow-hidden [-webkit-box-orient:vertical] [-webkit-line-clamp:var(--clamped-lines)] [display:-webkit-box]"
|
|
3976
|
+
),
|
|
3977
|
+
style: { "--clamped-lines": lines },
|
|
3978
|
+
children
|
|
3979
|
+
}
|
|
3980
|
+
),
|
|
3981
|
+
clipped ? /* @__PURE__ */ jsx(
|
|
3982
|
+
Button,
|
|
3983
|
+
{
|
|
3984
|
+
type: "button",
|
|
3985
|
+
variant: "link",
|
|
3986
|
+
size: "sm",
|
|
3987
|
+
className: "h-auto p-0",
|
|
3988
|
+
"aria-expanded": expanded,
|
|
3989
|
+
onClick: () => setExpanded((open) => !open),
|
|
3990
|
+
children: expanded ? lessLabel : moreLabel
|
|
3991
|
+
}
|
|
3992
|
+
) : null
|
|
3993
|
+
] });
|
|
3994
|
+
}
|
|
3995
|
+
);
|
|
3996
|
+
ClampedText.displayName = "ClampedText";
|
|
3947
3997
|
var ClarifyCard = React23.forwardRef(
|
|
3948
3998
|
({
|
|
3949
3999
|
step,
|
|
@@ -5152,6 +5202,27 @@ var SearchInput = ({
|
|
|
5152
5202
|
}
|
|
5153
5203
|
);
|
|
5154
5204
|
};
|
|
5205
|
+
var Eyebrow = React23.forwardRef(
|
|
5206
|
+
({ aside, tone = "muted", className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
5207
|
+
"div",
|
|
5208
|
+
{
|
|
5209
|
+
ref,
|
|
5210
|
+
className: cn(
|
|
5211
|
+
"flex items-baseline gap-2 text-meta font-semibold uppercase tracking-wide",
|
|
5212
|
+
tone === "muted" && "text-muted-foreground",
|
|
5213
|
+
tone === "foreground" && "text-foreground",
|
|
5214
|
+
tone === "accent" && "text-primary",
|
|
5215
|
+
className
|
|
5216
|
+
),
|
|
5217
|
+
...props,
|
|
5218
|
+
children: [
|
|
5219
|
+
/* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children }),
|
|
5220
|
+
aside != null ? /* @__PURE__ */ jsx("span", { className: "ml-auto shrink-0 font-normal normal-case tracking-normal text-muted-foreground", children: aside }) : null
|
|
5221
|
+
]
|
|
5222
|
+
}
|
|
5223
|
+
)
|
|
5224
|
+
);
|
|
5225
|
+
Eyebrow.displayName = "Eyebrow";
|
|
5155
5226
|
var SectionHeader = React23.forwardRef(({ icon, title, count, actions, bare, className, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
5156
5227
|
"div",
|
|
5157
5228
|
{
|
|
@@ -5325,6 +5396,299 @@ function TabbedPanel({
|
|
|
5325
5396
|
footerContent && /* @__PURE__ */ jsx(CardFooter, { className: cn("shrink-0", footerClassName), children: footerContent })
|
|
5326
5397
|
] }) }) });
|
|
5327
5398
|
}
|
|
5399
|
+
var BAR = {
|
|
5400
|
+
succeeded: "bg-success",
|
|
5401
|
+
running: "bg-info",
|
|
5402
|
+
failed: "bg-destructive",
|
|
5403
|
+
needs_input: "bg-warning",
|
|
5404
|
+
stopped: "bg-muted-foreground",
|
|
5405
|
+
skipped: "bg-transparent",
|
|
5406
|
+
queued: "bg-transparent"
|
|
5407
|
+
};
|
|
5408
|
+
var DOT = {
|
|
5409
|
+
succeeded: "success",
|
|
5410
|
+
running: "running",
|
|
5411
|
+
failed: "error",
|
|
5412
|
+
needs_input: "warning",
|
|
5413
|
+
stopped: "muted",
|
|
5414
|
+
skipped: "muted",
|
|
5415
|
+
queued: "queued"
|
|
5416
|
+
};
|
|
5417
|
+
var STATUS_LABEL = {
|
|
5418
|
+
succeeded: "succeeded",
|
|
5419
|
+
running: "running",
|
|
5420
|
+
failed: "failed",
|
|
5421
|
+
needs_input: "needs input",
|
|
5422
|
+
stopped: "stopped",
|
|
5423
|
+
skipped: "never ran",
|
|
5424
|
+
queued: "not started"
|
|
5425
|
+
};
|
|
5426
|
+
function renderResult(result) {
|
|
5427
|
+
if (result == null) return null;
|
|
5428
|
+
if (React23.isValidElement(result)) return result;
|
|
5429
|
+
if (typeof result !== "object") {
|
|
5430
|
+
return /* @__PURE__ */ jsx("span", { className: "font-mono text-meta", children: String(result) });
|
|
5431
|
+
}
|
|
5432
|
+
const entries = Object.entries(result);
|
|
5433
|
+
const scalars = entries.filter(([, v]) => v == null || typeof v !== "object");
|
|
5434
|
+
const nested = entries.filter(([, v]) => v != null && typeof v === "object");
|
|
5435
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5436
|
+
scalars.length ? /* @__PURE__ */ jsx(PropertyList, { labelWidth: 96, children: scalars.map(([k, v]) => /* @__PURE__ */ jsx(PropertyRow, { label: k, mono: true, className: "py-0.5", children: v == null ? "\u2014" : String(v) }, k)) }) : null,
|
|
5437
|
+
nested.map(([k, v]) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5", children: [
|
|
5438
|
+
/* @__PURE__ */ jsx("span", { className: "text-meta text-muted-foreground", children: k }),
|
|
5439
|
+
/* @__PURE__ */ jsx("pre", { className: "max-h-40 overflow-auto border border-border bg-muted/40 p-1.5 font-mono text-meta", children: JSON.stringify(v, null, 2) })
|
|
5440
|
+
] }, k))
|
|
5441
|
+
] });
|
|
5442
|
+
}
|
|
5443
|
+
var TaskGanttDetailCard = React23.forwardRef(({ task, elapsedMs, formatDuration = defaultFormatDuration, className, ...props }, ref) => {
|
|
5444
|
+
const status = task.status ?? "succeeded";
|
|
5445
|
+
const ms = task.durationMs ?? elapsedMs;
|
|
5446
|
+
const duration = task.duration ?? (ms != null ? formatDuration(ms) : "\u2014");
|
|
5447
|
+
const attempts = task.attempts ?? [];
|
|
5448
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: cn("flex flex-col gap-2", className), ...props, children: [
|
|
5449
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-baseline gap-2", children: [
|
|
5450
|
+
/* @__PURE__ */ jsx(StatusDot, { tone: DOT[status], size: "md", className: "translate-y-px" }),
|
|
5451
|
+
/* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate font-mono text-meta font-medium", children: task.key }),
|
|
5452
|
+
/* @__PURE__ */ jsx("span", { className: "shrink-0 font-mono text-meta text-muted-foreground tabular-nums", children: duration })
|
|
5453
|
+
] }),
|
|
5454
|
+
/* @__PURE__ */ jsxs("div", { className: "text-meta text-muted-foreground", children: [
|
|
5455
|
+
STATUS_LABEL[status],
|
|
5456
|
+
task.summary != null ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5457
|
+
" \xB7 ",
|
|
5458
|
+
task.summary
|
|
5459
|
+
] }) : null
|
|
5460
|
+
] }),
|
|
5461
|
+
attempts.length ? /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-0.5", children: attempts.map((a, i) => /* @__PURE__ */ jsxs("span", { className: "text-meta text-muted-foreground", children: [
|
|
5462
|
+
/* @__PURE__ */ jsxs("span", { className: "font-medium text-warning", children: [
|
|
5463
|
+
"attempt ",
|
|
5464
|
+
i + 1
|
|
5465
|
+
] }),
|
|
5466
|
+
" ",
|
|
5467
|
+
a.title ?? `${a.status ?? "failed"}${a.durationMs != null ? ` \xB7 ${formatDuration(a.durationMs)}` : ""}`
|
|
5468
|
+
] }, i)) }) : null,
|
|
5469
|
+
task.error != null ? /* @__PURE__ */ jsxs(
|
|
5470
|
+
"div",
|
|
5471
|
+
{
|
|
5472
|
+
style: { borderColor: "var(--color-destructive)" },
|
|
5473
|
+
className: "border-l-2 bg-destructive/10 px-2 py-1.5",
|
|
5474
|
+
children: [
|
|
5475
|
+
task.error.code != null ? /* @__PURE__ */ jsx("div", { className: "font-mono text-meta font-medium text-destructive", children: task.error.code }) : null,
|
|
5476
|
+
task.error.message != null ? /* @__PURE__ */ jsx("div", { className: "text-meta", children: task.error.message }) : null,
|
|
5477
|
+
task.error.detail != null ? /* @__PURE__ */ jsx("pre", { className: "mt-1 max-h-32 overflow-auto whitespace-pre-wrap font-mono text-meta text-muted-foreground", children: task.error.detail }) : null
|
|
5478
|
+
]
|
|
5479
|
+
}
|
|
5480
|
+
) : null,
|
|
5481
|
+
task.result != null ? renderResult(task.result) : null,
|
|
5482
|
+
task.log != null ? /* @__PURE__ */ jsx("div", { className: "border-t border-border pt-1.5 font-mono text-meta text-muted-foreground", children: task.log }) : null
|
|
5483
|
+
] });
|
|
5484
|
+
});
|
|
5485
|
+
TaskGanttDetailCard.displayName = "TaskGanttDetailCard";
|
|
5486
|
+
var toMs = (t) => t instanceof Date ? t.getTime() : typeof t === "number" ? t : Date.parse(t);
|
|
5487
|
+
var defaultFormatDuration = (ms) => {
|
|
5488
|
+
if (ms < 100) return `${Math.round(ms)}ms`;
|
|
5489
|
+
const s = ms / 1e3;
|
|
5490
|
+
return s < 10 ? `${(Math.round(s * 10) / 10).toFixed(1)}s` : `${Math.round(s)}s`;
|
|
5491
|
+
};
|
|
5492
|
+
var defaultFormatTick = (ms) => {
|
|
5493
|
+
if (ms === 0) return "0s";
|
|
5494
|
+
const s = ms / 1e3;
|
|
5495
|
+
return Number.isInteger(s) ? `${s}s` : `${(Math.round(s * 10) / 10).toFixed(1)}s`;
|
|
5496
|
+
};
|
|
5497
|
+
function place(seg, origin) {
|
|
5498
|
+
let start = seg.startMs;
|
|
5499
|
+
if (start == null && seg.startedAt != null && origin != null) {
|
|
5500
|
+
start = toMs(seg.startedAt) - origin;
|
|
5501
|
+
}
|
|
5502
|
+
if (start == null || Number.isNaN(start)) return null;
|
|
5503
|
+
let duration = seg.durationMs;
|
|
5504
|
+
if (duration == null && seg.startedAt != null && seg.finishedAt != null) {
|
|
5505
|
+
duration = toMs(seg.finishedAt) - toMs(seg.startedAt);
|
|
5506
|
+
}
|
|
5507
|
+
return { start, duration: duration != null && duration > 0 ? duration : 0 };
|
|
5508
|
+
}
|
|
5509
|
+
var TaskGantt = React23.forwardRef(
|
|
5510
|
+
({
|
|
5511
|
+
tasks,
|
|
5512
|
+
origin,
|
|
5513
|
+
spanMs,
|
|
5514
|
+
nowMs,
|
|
5515
|
+
openEnded,
|
|
5516
|
+
ticks = 4,
|
|
5517
|
+
formatTick = defaultFormatTick,
|
|
5518
|
+
formatDuration = defaultFormatDuration,
|
|
5519
|
+
labelWidth = 112,
|
|
5520
|
+
density = "comfortable",
|
|
5521
|
+
showDetail = true,
|
|
5522
|
+
renderDetail,
|
|
5523
|
+
detailProps,
|
|
5524
|
+
selectedKey,
|
|
5525
|
+
onSelectTask,
|
|
5526
|
+
className,
|
|
5527
|
+
...props
|
|
5528
|
+
}, ref) => {
|
|
5529
|
+
const barHeight = density === "compact" ? 11 : 13;
|
|
5530
|
+
const durationWidth = 40;
|
|
5531
|
+
const rows = React23.useMemo(() => {
|
|
5532
|
+
const stamps = [];
|
|
5533
|
+
for (const t of [...tasks, ...tasks.flatMap((t2) => t2.attempts ?? [])]) {
|
|
5534
|
+
if (t.startedAt != null) stamps.push(toMs(t.startedAt));
|
|
5535
|
+
}
|
|
5536
|
+
const zero = origin != null ? toMs(origin) : stamps.length ? Math.min(...stamps) : void 0;
|
|
5537
|
+
return tasks.map((task) => {
|
|
5538
|
+
const segments = [...task.attempts ?? [], task].map((seg) => {
|
|
5539
|
+
const at = place(seg, zero);
|
|
5540
|
+
return at ? { ...at, status: seg.status ?? task.status ?? "succeeded", title: seg.title } : null;
|
|
5541
|
+
}).filter((s) => s !== null);
|
|
5542
|
+
const last = segments[segments.length - 1];
|
|
5543
|
+
return { task, segments, end: last ? last.start + last.duration : 0 };
|
|
5544
|
+
});
|
|
5545
|
+
}, [tasks, origin]);
|
|
5546
|
+
const span = Math.max(
|
|
5547
|
+
spanMs ?? Math.max(nowMs ?? 0, ...rows.map((r) => r.end)),
|
|
5548
|
+
1
|
|
5549
|
+
);
|
|
5550
|
+
const pct = (ms) => `${Math.max(0, Math.min(100, ms / span * 100))}%`;
|
|
5551
|
+
const axis = Array.from(
|
|
5552
|
+
{ length: ticks + 1 },
|
|
5553
|
+
(_, i) => formatTick(span / ticks * i)
|
|
5554
|
+
);
|
|
5555
|
+
const lastLabel = openEnded ? `${axis[axis.length - 1]}+` : axis[axis.length - 1];
|
|
5556
|
+
const detailFor = (task, elapsedMs) => {
|
|
5557
|
+
if (!showDetail) return null;
|
|
5558
|
+
if (renderDetail) return renderDetail(task);
|
|
5559
|
+
if (task.detail != null) return task.detail;
|
|
5560
|
+
const hasBody = task.result != null || task.error != null || task.log != null || task.summary != null || (task.attempts?.length ?? 0) > 0;
|
|
5561
|
+
if (!hasBody) return null;
|
|
5562
|
+
return /* @__PURE__ */ jsx(
|
|
5563
|
+
TaskGanttDetailCard,
|
|
5564
|
+
{
|
|
5565
|
+
task,
|
|
5566
|
+
elapsedMs,
|
|
5567
|
+
formatDuration
|
|
5568
|
+
}
|
|
5569
|
+
);
|
|
5570
|
+
};
|
|
5571
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: cn("flex flex-col", className), ...props, children: [
|
|
5572
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 pt-0.5 pb-1", "aria-hidden": true, children: [
|
|
5573
|
+
/* @__PURE__ */ jsx("span", { className: "shrink-0", style: { width: labelWidth } }),
|
|
5574
|
+
/* @__PURE__ */ jsx("span", { className: "flex flex-1", children: axis.slice(0, -1).map((label, i) => /* @__PURE__ */ jsx(
|
|
5575
|
+
"span",
|
|
5576
|
+
{
|
|
5577
|
+
className: "flex-1 border-l border-border pl-1 text-meta text-muted-foreground tabular-nums",
|
|
5578
|
+
children: label
|
|
5579
|
+
},
|
|
5580
|
+
i
|
|
5581
|
+
)) }),
|
|
5582
|
+
/* @__PURE__ */ jsx(
|
|
5583
|
+
"span",
|
|
5584
|
+
{
|
|
5585
|
+
className: "shrink-0 text-right text-meta text-muted-foreground tabular-nums",
|
|
5586
|
+
style: { width: durationWidth },
|
|
5587
|
+
children: lastLabel
|
|
5588
|
+
}
|
|
5589
|
+
)
|
|
5590
|
+
] }),
|
|
5591
|
+
rows.map(({ task, segments }) => {
|
|
5592
|
+
const neverRan = segments.length === 0;
|
|
5593
|
+
const selected = selectedKey != null && selectedKey === task.key;
|
|
5594
|
+
const pickable = onSelectTask != null;
|
|
5595
|
+
const elapsed = task.durationMs ?? segments[segments.length - 1]?.duration;
|
|
5596
|
+
const duration = task.duration ?? (neverRan || elapsed == null ? "\u2014" : formatDuration(elapsed));
|
|
5597
|
+
const detail = detailFor(task, elapsed);
|
|
5598
|
+
const row = /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 py-[3px]", children: [
|
|
5599
|
+
/* @__PURE__ */ jsx(
|
|
5600
|
+
"span",
|
|
5601
|
+
{
|
|
5602
|
+
className: cn(
|
|
5603
|
+
"shrink-0 truncate font-mono text-meta",
|
|
5604
|
+
neverRan && "text-muted-foreground"
|
|
5605
|
+
),
|
|
5606
|
+
style: { width: labelWidth },
|
|
5607
|
+
title: task.key,
|
|
5608
|
+
children: task.label ?? task.key
|
|
5609
|
+
}
|
|
5610
|
+
),
|
|
5611
|
+
/* @__PURE__ */ jsxs(
|
|
5612
|
+
"span",
|
|
5613
|
+
{
|
|
5614
|
+
className: "relative min-w-0 flex-1 bg-muted/55",
|
|
5615
|
+
style: { height: barHeight },
|
|
5616
|
+
children: [
|
|
5617
|
+
neverRan ? /* @__PURE__ */ jsx("span", { className: "absolute inset-0 border border-dashed border-border" }) : segments.map((seg, i) => /* @__PURE__ */ jsx(
|
|
5618
|
+
"span",
|
|
5619
|
+
{
|
|
5620
|
+
title: seg.title ?? `${task.key} \xB7 ${seg.status} \xB7 ${formatDuration(seg.duration)}`,
|
|
5621
|
+
className: cn("absolute inset-y-0 rounded-[1px]", BAR[seg.status]),
|
|
5622
|
+
style: {
|
|
5623
|
+
left: pct(seg.start),
|
|
5624
|
+
width: pct(seg.duration),
|
|
5625
|
+
minWidth: 2
|
|
5626
|
+
}
|
|
5627
|
+
},
|
|
5628
|
+
i
|
|
5629
|
+
)),
|
|
5630
|
+
nowMs != null ? /* @__PURE__ */ jsx(
|
|
5631
|
+
"span",
|
|
5632
|
+
{
|
|
5633
|
+
className: "absolute -top-0.5 -bottom-0.5 w-px bg-info/70",
|
|
5634
|
+
style: { left: pct(nowMs) },
|
|
5635
|
+
"aria-hidden": true
|
|
5636
|
+
}
|
|
5637
|
+
) : null
|
|
5638
|
+
]
|
|
5639
|
+
}
|
|
5640
|
+
),
|
|
5641
|
+
/* @__PURE__ */ jsx(
|
|
5642
|
+
"span",
|
|
5643
|
+
{
|
|
5644
|
+
className: "shrink-0 text-right font-mono text-meta text-muted-foreground tabular-nums",
|
|
5645
|
+
style: { width: durationWidth },
|
|
5646
|
+
children: duration
|
|
5647
|
+
}
|
|
5648
|
+
)
|
|
5649
|
+
] }) });
|
|
5650
|
+
const trigger = pickable ? /* @__PURE__ */ jsx(
|
|
5651
|
+
"button",
|
|
5652
|
+
{
|
|
5653
|
+
type: "button",
|
|
5654
|
+
"aria-pressed": selected,
|
|
5655
|
+
onClick: () => onSelectTask(task.key),
|
|
5656
|
+
className: cn(
|
|
5657
|
+
"w-full cursor-pointer text-left focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50",
|
|
5658
|
+
"hover:bg-accent/60",
|
|
5659
|
+
selected && "bg-accent"
|
|
5660
|
+
),
|
|
5661
|
+
children: row
|
|
5662
|
+
}
|
|
5663
|
+
) : /* @__PURE__ */ jsx("div", { className: cn(detail != null && "hover:bg-accent/60"), children: row });
|
|
5664
|
+
if (detail == null) return /* @__PURE__ */ jsx("div", { children: trigger }, task.key);
|
|
5665
|
+
return /* @__PURE__ */ jsxs(
|
|
5666
|
+
HoverCard,
|
|
5667
|
+
{
|
|
5668
|
+
openDelay: detailProps?.openDelay ?? 200,
|
|
5669
|
+
closeDelay: detailProps?.closeDelay ?? 80,
|
|
5670
|
+
children: [
|
|
5671
|
+
/* @__PURE__ */ jsx(HoverCardTrigger, { asChild: true, children: trigger }),
|
|
5672
|
+
/* @__PURE__ */ jsx(
|
|
5673
|
+
HoverCardContent,
|
|
5674
|
+
{
|
|
5675
|
+
side: detailProps?.side ?? "right",
|
|
5676
|
+
align: detailProps?.align ?? "start",
|
|
5677
|
+
sideOffset: detailProps?.sideOffset ?? 8,
|
|
5678
|
+
style: detailProps?.width != null ? { width: detailProps.width } : void 0,
|
|
5679
|
+
className: cn("w-72 p-3", detailProps?.className),
|
|
5680
|
+
children: detail
|
|
5681
|
+
}
|
|
5682
|
+
)
|
|
5683
|
+
]
|
|
5684
|
+
},
|
|
5685
|
+
task.key
|
|
5686
|
+
);
|
|
5687
|
+
})
|
|
5688
|
+
] });
|
|
5689
|
+
}
|
|
5690
|
+
);
|
|
5691
|
+
TaskGantt.displayName = "TaskGantt";
|
|
5328
5692
|
var TemplatePicker = React23.forwardRef(({ heading, options, value, onSelect, footnote, className, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
5329
5693
|
"div",
|
|
5330
5694
|
{
|
|
@@ -6108,6 +6472,6 @@ var Typography = {
|
|
|
6108
6472
|
Pre: TypographyPre
|
|
6109
6473
|
};
|
|
6110
6474
|
|
|
6111
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AgentChip, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppStatusBar, Avatar, AvatarFallback, AvatarImage, Badge, BarChartH, BarChartV, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, ButtonWithTooltip, CannotAnswerCard, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CardWithHeader, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChatSession, ChatSessionActivityRow, ChatSessionActivitySubLine, ChatSessionComposer, ChatSessionContextChip, ChatSessionDisclosure, ChatSessionMessage, ChatSessionMessageOptions, ChatSessionProgressLine, ChatSessionPromptRow, ChatSessionStatusBar, ChatSessionTaskGroup, ChatSessionTaskRow, CitationList, CitationMarker, CitationRow, ClarifyCard, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextBar, DiagnosisCard, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffList, DiffRow, DivergingBar, DotRating, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmissionCard, EmissionHeader, EmptyState, EmptyStateLock, ErrorBoundary, FilterBar, FilterChip, HeatStrip, HoverCard, HoverCardContent, HoverCardTrigger, Item3 as Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Legend, LegendItem, MenuItem, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MetricGrid, MetricTile, NavBase, NavHorizontal, NavHorizontalItems, NavItems, NavVertical, NavVerticalItems, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NestedMenu, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PanelContent, PanelStack, Popover, PopoverContent, PopoverTrigger, Progress, PropertyList, PropertyRow, ProposalCard, RatingControl, RepairNote, ResizableHandle, ResizablePanel, ResizablePanelGroup, RetryNote, RichSelect, ScrollArea, ScrollBar, SearchInput, SectionHeader, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Sparkline, Spinner, StatusDot, TabbedPanel, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TemplatePicker, Terminal, TerminalLine, TimelineEntry, TimelineFooter, TimelineList, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Toolbar, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Tour, TreeItem, TreeView, Typography, TypographyBlockquote, TypographyH1, TypographyH2, TypographyH3, TypographyH4, TypographyH5, TypographyH6, TypographyInlineCode, TypographyLarge, TypographyLead, TypographyList, TypographyMuted, TypographyP, TypographyPre, TypographySmall, UnderDevelopment, agentChipVariants, badgeVariants, buttonGroupVariants, buttonVariants, chatSessionGutterClass, cn, navigationMenuTriggerStyle, statusDotVariants, toggleVariants, useOverflowItems, useSidebar, useTour };
|
|
6475
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AgentChip, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppStatusBar, Avatar, AvatarFallback, AvatarImage, Badge, BarChartH, BarChartV, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, ButtonWithTooltip, CannotAnswerCard, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CardWithHeader, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChatSession, ChatSessionActivityRow, ChatSessionActivitySubLine, ChatSessionComposer, ChatSessionContextChip, ChatSessionDisclosure, ChatSessionMessage, ChatSessionMessageOptions, ChatSessionProgressLine, ChatSessionPromptRow, ChatSessionStatusBar, ChatSessionTaskGroup, ChatSessionTaskRow, CitationList, CitationMarker, CitationRow, ClampedText, ClarifyCard, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextBar, DiagnosisCard, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffList, DiffRow, DivergingBar, DotRating, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmissionCard, EmissionHeader, EmptyState, EmptyStateLock, ErrorBoundary, Eyebrow, FilterBar, FilterChip, HeatStrip, HoverCard, HoverCardContent, HoverCardTrigger, Item3 as Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Legend, LegendItem, MenuItem, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MetricGrid, MetricTile, NavBase, NavHorizontal, NavHorizontalItems, NavItems, NavVertical, NavVerticalItems, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NestedMenu, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PanelContent, PanelStack, Popover, PopoverContent, PopoverTrigger, Progress, PropertyList, PropertyRow, ProposalCard, RatingControl, RepairNote, ResizableHandle, ResizablePanel, ResizablePanelGroup, RetryNote, RichSelect, ScrollArea, ScrollBar, SearchInput, SectionHeader, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Sparkline, Spinner, StatusDot, TabbedPanel, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TaskGantt, TaskGanttDetailCard, TemplatePicker, Terminal, TerminalLine, TimelineEntry, TimelineFooter, TimelineList, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Toolbar, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Tour, TreeItem, TreeView, Typography, TypographyBlockquote, TypographyH1, TypographyH2, TypographyH3, TypographyH4, TypographyH5, TypographyH6, TypographyInlineCode, TypographyLarge, TypographyLead, TypographyList, TypographyMuted, TypographyP, TypographyPre, TypographySmall, UnderDevelopment, agentChipVariants, badgeVariants, buttonGroupVariants, buttonVariants, chatSessionGutterClass, cn, navigationMenuTriggerStyle, statusDotVariants, toggleVariants, useOverflowItems, useSidebar, useTour };
|
|
6112
6476
|
//# sourceMappingURL=index.js.map
|
|
6113
6477
|
//# sourceMappingURL=index.js.map
|