@invana/ui 0.0.25 → 0.0.27
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 +319 -42
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +265 -3
- package/dist/index.d.ts +265 -3
- package/dist/index.js +315 -43
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -2781,6 +2781,36 @@ var AgentChip = React23.forwardRef(
|
|
|
2781
2781
|
)
|
|
2782
2782
|
);
|
|
2783
2783
|
AgentChip.displayName = "AgentChip";
|
|
2784
|
+
var SWATCH = {
|
|
2785
|
+
none: "bg-muted-foreground",
|
|
2786
|
+
network: "bg-warning",
|
|
2787
|
+
graph_read: "bg-success",
|
|
2788
|
+
graph_write: "bg-data-2",
|
|
2789
|
+
schema_write: "bg-data-4",
|
|
2790
|
+
ingest: "bg-info",
|
|
2791
|
+
llm: "bg-data-7",
|
|
2792
|
+
plan_write: "bg-data-5",
|
|
2793
|
+
work_write: "bg-destructive"
|
|
2794
|
+
};
|
|
2795
|
+
var BoundChip = React23.forwardRef(
|
|
2796
|
+
({ bound, swatchOnly, className, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
2797
|
+
"span",
|
|
2798
|
+
{
|
|
2799
|
+
ref,
|
|
2800
|
+
className: cn(
|
|
2801
|
+
"inline-flex max-w-full shrink-0 items-center gap-1.5 font-mono text-meta text-muted-foreground",
|
|
2802
|
+
className
|
|
2803
|
+
),
|
|
2804
|
+
"aria-label": swatchOnly ? `bound: ${bound}` : void 0,
|
|
2805
|
+
...props,
|
|
2806
|
+
children: [
|
|
2807
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: cn("size-1.5 shrink-0", SWATCH[bound]) }),
|
|
2808
|
+
swatchOnly ? null : /* @__PURE__ */ jsx("span", { className: "truncate", children: bound })
|
|
2809
|
+
]
|
|
2810
|
+
}
|
|
2811
|
+
)
|
|
2812
|
+
);
|
|
2813
|
+
BoundChip.displayName = "BoundChip";
|
|
2784
2814
|
var stateVariants = cva("inline-flex shrink-0 items-center gap-1.5 font-medium", {
|
|
2785
2815
|
variants: {
|
|
2786
2816
|
tone: {
|
|
@@ -4561,17 +4591,59 @@ var MenuItem = ({
|
|
|
4561
4591
|
)
|
|
4562
4592
|
] });
|
|
4563
4593
|
};
|
|
4594
|
+
var TONE = {
|
|
4595
|
+
running: "text-info",
|
|
4596
|
+
success: "text-success",
|
|
4597
|
+
warning: "text-warning",
|
|
4598
|
+
error: "text-destructive",
|
|
4599
|
+
info: "text-info"
|
|
4600
|
+
};
|
|
4564
4601
|
var MetricTile = React23.forwardRef(
|
|
4565
|
-
({ label, value, caption, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
4602
|
+
({ label, value, caption, tone, meter, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
4566
4603
|
"div",
|
|
4567
4604
|
{
|
|
4568
4605
|
ref,
|
|
4569
|
-
className: cn(
|
|
4606
|
+
className: cn(
|
|
4607
|
+
"flex flex-col gap-px border border-border bg-card px-3 py-2.5",
|
|
4608
|
+
className
|
|
4609
|
+
),
|
|
4570
4610
|
...props,
|
|
4571
4611
|
children: [
|
|
4572
|
-
/* @__PURE__ */ jsx("span", { className: "truncate text-meta text-muted-foreground", children: label }),
|
|
4573
|
-
/* @__PURE__ */ jsx(
|
|
4612
|
+
/* @__PURE__ */ jsx("span", { className: "truncate text-meta font-semibold uppercase tracking-wide text-muted-foreground", children: label }),
|
|
4613
|
+
/* @__PURE__ */ jsx(
|
|
4614
|
+
"span",
|
|
4615
|
+
{
|
|
4616
|
+
className: cn(
|
|
4617
|
+
// Mono, because a metric is a figure: proportional digits make
|
|
4618
|
+
// `1,880` and `2 / 5` in adjacent tiles sit at different widths, and
|
|
4619
|
+
// a strip of six stops reading as one row of numbers.
|
|
4620
|
+
"font-mono text-lg font-semibold leading-tight",
|
|
4621
|
+
tone ? TONE[tone] : void 0
|
|
4622
|
+
),
|
|
4623
|
+
children: value
|
|
4624
|
+
}
|
|
4625
|
+
),
|
|
4574
4626
|
caption != null ? /* @__PURE__ */ jsx("span", { className: "text-meta text-muted-foreground", children: caption }) : null,
|
|
4627
|
+
meter != null ? (
|
|
4628
|
+
// Not a <Progress>: that is a control-sized, rounded, animated bar for
|
|
4629
|
+
// work in flight. This is a 4px rule that says how much of a ceiling is
|
|
4630
|
+
// gone, and it must not read as a second value in the tile.
|
|
4631
|
+
/* @__PURE__ */ jsx(
|
|
4632
|
+
"div",
|
|
4633
|
+
{
|
|
4634
|
+
className: "mt-1 h-1 w-full bg-muted",
|
|
4635
|
+
role: "img",
|
|
4636
|
+
"aria-label": `${Math.round(Math.min(Math.max(meter, 0), 1) * 100)}% of the ceiling`,
|
|
4637
|
+
children: /* @__PURE__ */ jsx(
|
|
4638
|
+
"div",
|
|
4639
|
+
{
|
|
4640
|
+
className: cn("h-full", tone ? TONE[tone] : "text-primary", "bg-current"),
|
|
4641
|
+
style: { width: `${Math.min(Math.max(meter, 0), 1) * 100}%` }
|
|
4642
|
+
}
|
|
4643
|
+
)
|
|
4644
|
+
}
|
|
4645
|
+
)
|
|
4646
|
+
) : null,
|
|
4575
4647
|
children
|
|
4576
4648
|
]
|
|
4577
4649
|
}
|
|
@@ -4579,12 +4651,13 @@ var MetricTile = React23.forwardRef(
|
|
|
4579
4651
|
);
|
|
4580
4652
|
MetricTile.displayName = "MetricTile";
|
|
4581
4653
|
var MetricGrid = React23.forwardRef(
|
|
4582
|
-
({ minTileWidth = 120, className, style, children, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
4654
|
+
({ minTileWidth = 120, gap = 6, className, style, children, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
4583
4655
|
"div",
|
|
4584
4656
|
{
|
|
4585
4657
|
ref,
|
|
4586
|
-
className: cn("grid
|
|
4658
|
+
className: cn("grid", className),
|
|
4587
4659
|
style: {
|
|
4660
|
+
gap,
|
|
4588
4661
|
gridTemplateColumns: `repeat(auto-fit, minmax(${minTileWidth}px, 1fr))`,
|
|
4589
4662
|
...style
|
|
4590
4663
|
},
|
|
@@ -4636,6 +4709,67 @@ var NestedMenu = (props) => {
|
|
|
4636
4709
|
}
|
|
4637
4710
|
);
|
|
4638
4711
|
};
|
|
4712
|
+
var Eyebrow = React23.forwardRef(
|
|
4713
|
+
({ aside, tone = "muted", className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
4714
|
+
"div",
|
|
4715
|
+
{
|
|
4716
|
+
ref,
|
|
4717
|
+
className: cn(
|
|
4718
|
+
"flex items-baseline gap-2 text-meta font-semibold uppercase tracking-wide",
|
|
4719
|
+
tone === "muted" && "text-muted-foreground",
|
|
4720
|
+
tone === "foreground" && "text-foreground",
|
|
4721
|
+
tone === "accent" && "text-primary",
|
|
4722
|
+
className
|
|
4723
|
+
),
|
|
4724
|
+
...props,
|
|
4725
|
+
children: [
|
|
4726
|
+
/* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children }),
|
|
4727
|
+
aside != null ? /* @__PURE__ */ jsx("span", { className: "ml-auto shrink-0 font-normal normal-case tracking-normal text-muted-foreground", children: aside }) : null
|
|
4728
|
+
]
|
|
4729
|
+
}
|
|
4730
|
+
)
|
|
4731
|
+
);
|
|
4732
|
+
Eyebrow.displayName = "Eyebrow";
|
|
4733
|
+
var PanelBox = React23.forwardRef(
|
|
4734
|
+
({ title, aside, flush, className, headerClassName, bodyClassName, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
4735
|
+
Card,
|
|
4736
|
+
{
|
|
4737
|
+
ref,
|
|
4738
|
+
className: cn(
|
|
4739
|
+
// A band is square and flat: the radius and the lift belong to cards
|
|
4740
|
+
// that float, and twenty of these in a column would read as twenty
|
|
4741
|
+
// floating things rather than one page.
|
|
4742
|
+
"flex min-w-0 flex-col overflow-hidden rounded-control shadow-none",
|
|
4743
|
+
className
|
|
4744
|
+
),
|
|
4745
|
+
...props,
|
|
4746
|
+
children: [
|
|
4747
|
+
/* @__PURE__ */ jsx(
|
|
4748
|
+
"div",
|
|
4749
|
+
{
|
|
4750
|
+
className: cn(
|
|
4751
|
+
"flex h-[31px] shrink-0 items-center border-b border-border px-2.5",
|
|
4752
|
+
headerClassName
|
|
4753
|
+
),
|
|
4754
|
+
children: /* @__PURE__ */ jsx(Eyebrow, { aside, className: "w-full", children: title })
|
|
4755
|
+
}
|
|
4756
|
+
),
|
|
4757
|
+
/* @__PURE__ */ jsx(
|
|
4758
|
+
"div",
|
|
4759
|
+
{
|
|
4760
|
+
className: cn(
|
|
4761
|
+
"flex min-w-0 flex-col",
|
|
4762
|
+
flush ? "p-0" : "px-2.5 py-2",
|
|
4763
|
+
bodyClassName
|
|
4764
|
+
),
|
|
4765
|
+
children
|
|
4766
|
+
}
|
|
4767
|
+
)
|
|
4768
|
+
]
|
|
4769
|
+
}
|
|
4770
|
+
)
|
|
4771
|
+
);
|
|
4772
|
+
PanelBox.displayName = "PanelBox";
|
|
4639
4773
|
function PanelContent({
|
|
4640
4774
|
title,
|
|
4641
4775
|
titleText,
|
|
@@ -4679,6 +4813,8 @@ function PanelContent({
|
|
|
4679
4813
|
}
|
|
4680
4814
|
function PanelStack({
|
|
4681
4815
|
sections,
|
|
4816
|
+
stackRef,
|
|
4817
|
+
onCollapsedChange,
|
|
4682
4818
|
headerHeight = 35,
|
|
4683
4819
|
withHandle = false,
|
|
4684
4820
|
className,
|
|
@@ -4723,19 +4859,26 @@ function PanelStack({
|
|
|
4723
4859
|
for (const s of targets) refs.current[s.id]?.collapse();
|
|
4724
4860
|
group.setLayout(next);
|
|
4725
4861
|
}, []);
|
|
4726
|
-
const
|
|
4862
|
+
const notify = React23.useRef(onCollapsedChange);
|
|
4863
|
+
React23.useEffect(() => {
|
|
4864
|
+
notify.current = onCollapsedChange;
|
|
4865
|
+
}, [onCollapsedChange]);
|
|
4866
|
+
const collapsedRef = React23.useRef(collapsed);
|
|
4867
|
+
collapsedRef.current = collapsed;
|
|
4868
|
+
const collapsePanel = React23.useCallback((id) => {
|
|
4727
4869
|
const ref = refs.current[id];
|
|
4728
|
-
if (!ref) return;
|
|
4729
|
-
|
|
4730
|
-
|
|
4731
|
-
|
|
4732
|
-
|
|
4870
|
+
if (!ref || ref.isCollapsed()) return;
|
|
4871
|
+
ref.collapse();
|
|
4872
|
+
}, []);
|
|
4873
|
+
const expandPanel = React23.useCallback((id) => {
|
|
4874
|
+
const ref = refs.current[id];
|
|
4875
|
+
if (!ref || !ref.isCollapsed()) return;
|
|
4733
4876
|
ref.expand();
|
|
4734
4877
|
if (!ref.isCollapsed()) return;
|
|
4735
4878
|
const group = groupRef.current;
|
|
4736
4879
|
if (!group) return;
|
|
4737
4880
|
const layout = group.getLayout();
|
|
4738
|
-
const donor = Object.entries(layout).filter(([panelId]) => panelId !== id && !
|
|
4881
|
+
const donor = Object.entries(layout).filter(([panelId]) => panelId !== id && !collapsedRef.current[panelId]).sort((a, b) => b[1] - a[1])[0];
|
|
4739
4882
|
if (!donor) return;
|
|
4740
4883
|
const [donorId, donorPct] = donor;
|
|
4741
4884
|
const share = donorPct / 2;
|
|
@@ -4744,7 +4887,26 @@ function PanelStack({
|
|
|
4744
4887
|
[id]: (layout[id] ?? 0) + share,
|
|
4745
4888
|
[donorId]: donorPct - share
|
|
4746
4889
|
});
|
|
4747
|
-
};
|
|
4890
|
+
}, []);
|
|
4891
|
+
const toggle = React23.useCallback(
|
|
4892
|
+
(id) => {
|
|
4893
|
+
const ref = refs.current[id];
|
|
4894
|
+
if (!ref) return;
|
|
4895
|
+
if (ref.isCollapsed()) expandPanel(id);
|
|
4896
|
+
else collapsePanel(id);
|
|
4897
|
+
},
|
|
4898
|
+
[expandPanel, collapsePanel]
|
|
4899
|
+
);
|
|
4900
|
+
React23.useImperativeHandle(
|
|
4901
|
+
stackRef,
|
|
4902
|
+
() => ({
|
|
4903
|
+
expand: expandPanel,
|
|
4904
|
+
collapse: collapsePanel,
|
|
4905
|
+
toggle,
|
|
4906
|
+
isCollapsed: (id) => !!collapsedRef.current[id]
|
|
4907
|
+
}),
|
|
4908
|
+
[expandPanel, collapsePanel, toggle]
|
|
4909
|
+
);
|
|
4748
4910
|
return (
|
|
4749
4911
|
// Header actions are nav items, and those carry tooltips — provide the
|
|
4750
4912
|
// context here so a `PanelStack` works outside an app shell too. Nesting
|
|
@@ -4782,9 +4944,12 @@ function PanelStack({
|
|
|
4782
4944
|
},
|
|
4783
4945
|
onResize: (size) => {
|
|
4784
4946
|
const next = size.inPixels <= headerHeight + 1;
|
|
4785
|
-
setCollapsed(
|
|
4786
|
-
(prev
|
|
4787
|
-
|
|
4947
|
+
setCollapsed((prev) => {
|
|
4948
|
+
if (prev[section.id] === next) return prev;
|
|
4949
|
+
const map = { ...prev, [section.id]: next };
|
|
4950
|
+
notify.current?.(map);
|
|
4951
|
+
return map;
|
|
4952
|
+
});
|
|
4788
4953
|
},
|
|
4789
4954
|
className: "flex flex-col overflow-hidden",
|
|
4790
4955
|
children: [
|
|
@@ -4883,6 +5048,47 @@ var PropertyRow = React23.forwardRef(
|
|
|
4883
5048
|
)
|
|
4884
5049
|
);
|
|
4885
5050
|
PropertyRow.displayName = "PropertyRow";
|
|
5051
|
+
var RecordHeader = React23.forwardRef(
|
|
5052
|
+
({ tone, crumbs, chips, actions, className, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
5053
|
+
"div",
|
|
5054
|
+
{
|
|
5055
|
+
ref,
|
|
5056
|
+
className: cn(
|
|
5057
|
+
"flex shrink-0 items-center gap-2.5 border-b border-border bg-card px-4 py-2.5",
|
|
5058
|
+
className
|
|
5059
|
+
),
|
|
5060
|
+
...props,
|
|
5061
|
+
children: [
|
|
5062
|
+
tone ? /* @__PURE__ */ jsx(StatusDot, { tone, size: "lg" }) : null,
|
|
5063
|
+
/* @__PURE__ */ jsx("div", { className: "flex min-w-0 items-center gap-1.5", children: crumbs.map((crumb, i) => {
|
|
5064
|
+
const last = i === crumbs.length - 1;
|
|
5065
|
+
return /* @__PURE__ */ jsxs(React23.Fragment, { children: [
|
|
5066
|
+
i > 0 ? /* @__PURE__ */ jsx(
|
|
5067
|
+
ChevronRight,
|
|
5068
|
+
{
|
|
5069
|
+
"aria-hidden": true,
|
|
5070
|
+
className: "size-3.5 shrink-0 text-muted-foreground/60"
|
|
5071
|
+
}
|
|
5072
|
+
) : null,
|
|
5073
|
+
/* @__PURE__ */ jsx(
|
|
5074
|
+
"span",
|
|
5075
|
+
{
|
|
5076
|
+
className: cn(
|
|
5077
|
+
"min-w-0 truncate font-mono",
|
|
5078
|
+
last ? "text-base font-semibold text-foreground" : "text-muted-foreground"
|
|
5079
|
+
),
|
|
5080
|
+
children: crumb
|
|
5081
|
+
}
|
|
5082
|
+
)
|
|
5083
|
+
] }, i);
|
|
5084
|
+
}) }),
|
|
5085
|
+
chips ? /* @__PURE__ */ jsx("span", { className: "flex shrink-0 items-center gap-1.5", children: chips }) : null,
|
|
5086
|
+
actions ? /* @__PURE__ */ jsx("span", { className: "ml-auto flex shrink-0 items-center gap-1.5", children: actions }) : null
|
|
5087
|
+
]
|
|
5088
|
+
}
|
|
5089
|
+
)
|
|
5090
|
+
);
|
|
5091
|
+
RecordHeader.displayName = "RecordHeader";
|
|
4886
5092
|
var ProposalCard = React23.forwardRef(
|
|
4887
5093
|
({
|
|
4888
5094
|
title,
|
|
@@ -5202,27 +5408,6 @@ var SearchInput = ({
|
|
|
5202
5408
|
}
|
|
5203
5409
|
);
|
|
5204
5410
|
};
|
|
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";
|
|
5226
5411
|
var SectionHeader = React23.forwardRef(({ icon, title, count, actions, bare, className, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
5227
5412
|
"div",
|
|
5228
5413
|
{
|
|
@@ -5689,6 +5874,85 @@ var TaskGantt = React23.forwardRef(
|
|
|
5689
5874
|
}
|
|
5690
5875
|
);
|
|
5691
5876
|
TaskGantt.displayName = "TaskGantt";
|
|
5877
|
+
var TaskNode = React23.forwardRef(
|
|
5878
|
+
({ taskKey, bound, status, tags, meta, selected, gate, dim, ghost, className, ...props }, ref) => {
|
|
5879
|
+
if (ghost) {
|
|
5880
|
+
return /* @__PURE__ */ jsxs(
|
|
5881
|
+
"div",
|
|
5882
|
+
{
|
|
5883
|
+
ref,
|
|
5884
|
+
className: cn(
|
|
5885
|
+
"flex w-[146px] flex-col gap-1 border border-dashed border-border p-2",
|
|
5886
|
+
"text-meta text-muted-foreground",
|
|
5887
|
+
className
|
|
5888
|
+
),
|
|
5889
|
+
...props,
|
|
5890
|
+
children: [
|
|
5891
|
+
/* @__PURE__ */ jsx("span", { className: "truncate font-mono", children: taskKey }),
|
|
5892
|
+
meta != null ? /* @__PURE__ */ jsx("span", { className: "truncate", children: meta }) : null
|
|
5893
|
+
]
|
|
5894
|
+
}
|
|
5895
|
+
);
|
|
5896
|
+
}
|
|
5897
|
+
return /* @__PURE__ */ jsxs(
|
|
5898
|
+
"div",
|
|
5899
|
+
{
|
|
5900
|
+
ref,
|
|
5901
|
+
"data-selected": selected || void 0,
|
|
5902
|
+
className: cn(
|
|
5903
|
+
"relative flex w-[146px] flex-col gap-1 border bg-card p-2 shadow-xs",
|
|
5904
|
+
// The ring says one thing at a time, in this order: you picked it,
|
|
5905
|
+
// it is held for approval, it failed. A node cannot be two of those.
|
|
5906
|
+
selected ? "border-primary ring-2 ring-primary/25" : gate ? "border-warning" : status === "error" ? "border-destructive" : "border-border",
|
|
5907
|
+
dim && "opacity-45",
|
|
5908
|
+
className
|
|
5909
|
+
),
|
|
5910
|
+
...props,
|
|
5911
|
+
children: [
|
|
5912
|
+
selected ? ["-left-1 -top-1", "-right-1 -top-1", "-bottom-1 -left-1", "-bottom-1 -right-1"].map(
|
|
5913
|
+
(pos) => /* @__PURE__ */ jsx(
|
|
5914
|
+
"span",
|
|
5915
|
+
{
|
|
5916
|
+
"aria-hidden": true,
|
|
5917
|
+
className: cn("absolute size-[7px] border-[1.5px] border-primary bg-card", pos)
|
|
5918
|
+
},
|
|
5919
|
+
pos
|
|
5920
|
+
)
|
|
5921
|
+
) : null,
|
|
5922
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
5923
|
+
status ? /* @__PURE__ */ jsx(StatusDot, { tone: status, size: "sm" }) : null,
|
|
5924
|
+
/* @__PURE__ */ jsx("span", { className: "min-w-0 truncate font-mono", children: taskKey })
|
|
5925
|
+
] }),
|
|
5926
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
|
|
5927
|
+
/* @__PURE__ */ jsx(BoundChip, { bound }),
|
|
5928
|
+
tags?.map((tag, i) => /* @__PURE__ */ jsx(
|
|
5929
|
+
"span",
|
|
5930
|
+
{
|
|
5931
|
+
className: cn(
|
|
5932
|
+
"shrink-0 border px-1 text-meta",
|
|
5933
|
+
tag.tone === "warning" ? "border-warning/40 text-warning" : "border-border text-muted-foreground"
|
|
5934
|
+
),
|
|
5935
|
+
children: tag.label
|
|
5936
|
+
},
|
|
5937
|
+
i
|
|
5938
|
+
))
|
|
5939
|
+
] }),
|
|
5940
|
+
meta != null ? /* @__PURE__ */ jsx(
|
|
5941
|
+
"div",
|
|
5942
|
+
{
|
|
5943
|
+
className: cn(
|
|
5944
|
+
"truncate text-meta",
|
|
5945
|
+
gate ? "text-warning" : "text-muted-foreground"
|
|
5946
|
+
),
|
|
5947
|
+
children: meta
|
|
5948
|
+
}
|
|
5949
|
+
) : null
|
|
5950
|
+
]
|
|
5951
|
+
}
|
|
5952
|
+
);
|
|
5953
|
+
}
|
|
5954
|
+
);
|
|
5955
|
+
TaskNode.displayName = "TaskNode";
|
|
5692
5956
|
var TemplatePicker = React23.forwardRef(({ heading, options, value, onSelect, footnote, className, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
5693
5957
|
"div",
|
|
5694
5958
|
{
|
|
@@ -5729,6 +5993,12 @@ var TemplatePicker = React23.forwardRef(({ heading, options, value, onSelect, fo
|
|
|
5729
5993
|
}
|
|
5730
5994
|
));
|
|
5731
5995
|
TemplatePicker.displayName = "TemplatePicker";
|
|
5996
|
+
var LEVEL = {
|
|
5997
|
+
info: "text-success",
|
|
5998
|
+
warn: "text-warning",
|
|
5999
|
+
error: "text-destructive",
|
|
6000
|
+
debug: "text-muted-foreground"
|
|
6001
|
+
};
|
|
5732
6002
|
var MARKER = {
|
|
5733
6003
|
prompt: "$",
|
|
5734
6004
|
output: "\u2192",
|
|
@@ -5760,19 +6030,19 @@ var Terminal = React23.forwardRef(
|
|
|
5760
6030
|
);
|
|
5761
6031
|
Terminal.displayName = "Terminal";
|
|
5762
6032
|
var TerminalLine = React23.forwardRef(
|
|
5763
|
-
({ kind = "output", columns, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
6033
|
+
({ kind = "output", level, levelColumn = 1, columns, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
5764
6034
|
"div",
|
|
5765
6035
|
{
|
|
5766
6036
|
ref,
|
|
5767
6037
|
className: cn(
|
|
5768
6038
|
"items-baseline gap-2 whitespace-pre",
|
|
5769
|
-
columns ? "grid [grid-template-columns:auto_var(--terminal-cols)]" : "flex",
|
|
6039
|
+
columns ? level ? "grid [grid-template-columns:var(--terminal-cols)]" : "grid [grid-template-columns:auto_var(--terminal-cols)]" : "flex",
|
|
5770
6040
|
kind === "comment" && "text-muted-foreground",
|
|
5771
6041
|
className
|
|
5772
6042
|
),
|
|
5773
6043
|
...props,
|
|
5774
6044
|
children: [
|
|
5775
|
-
/* @__PURE__ */ jsx(
|
|
6045
|
+
level ? null : /* @__PURE__ */ jsx(
|
|
5776
6046
|
"span",
|
|
5777
6047
|
{
|
|
5778
6048
|
"aria-hidden": true,
|
|
@@ -5788,7 +6058,9 @@ var TerminalLine = React23.forwardRef(
|
|
|
5788
6058
|
{
|
|
5789
6059
|
className: cn(
|
|
5790
6060
|
"min-w-0 truncate",
|
|
5791
|
-
|
|
6061
|
+
// A log tints its level cell and greys everything that is not the
|
|
6062
|
+
// message; a transcript greys only its trailing cell.
|
|
6063
|
+
level ? i === levelColumn ? LEVEL[level] : i === columns.length - 1 ? void 0 : "text-muted-foreground" : i === columns.length - 1 && "text-muted-foreground"
|
|
5792
6064
|
),
|
|
5793
6065
|
children: c
|
|
5794
6066
|
},
|
|
@@ -6472,6 +6744,6 @@ var Typography = {
|
|
|
6472
6744
|
Pre: TypographyPre
|
|
6473
6745
|
};
|
|
6474
6746
|
|
|
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 };
|
|
6747
|
+
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, BoundChip, 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, PanelBox, PanelContent, PanelStack, Popover, PopoverContent, PopoverTrigger, Progress, PropertyList, PropertyRow, ProposalCard, RatingControl, RecordHeader, 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, TaskNode, 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, SWATCH as boundSwatch, buttonGroupVariants, buttonVariants, chatSessionGutterClass, cn, navigationMenuTriggerStyle, statusDotVariants, toggleVariants, useOverflowItems, useSidebar, useTour };
|
|
6476
6748
|
//# sourceMappingURL=index.js.map
|
|
6477
6749
|
//# sourceMappingURL=index.js.map
|