@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 CHANGED
@@ -2821,6 +2821,36 @@ var AgentChip = React23__namespace.forwardRef(
2821
2821
  )
2822
2822
  );
2823
2823
  AgentChip.displayName = "AgentChip";
2824
+ var SWATCH = {
2825
+ none: "bg-muted-foreground",
2826
+ network: "bg-warning",
2827
+ graph_read: "bg-success",
2828
+ graph_write: "bg-data-2",
2829
+ schema_write: "bg-data-4",
2830
+ ingest: "bg-info",
2831
+ llm: "bg-data-7",
2832
+ plan_write: "bg-data-5",
2833
+ work_write: "bg-destructive"
2834
+ };
2835
+ var BoundChip = React23__namespace.forwardRef(
2836
+ ({ bound, swatchOnly, className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
2837
+ "span",
2838
+ {
2839
+ ref,
2840
+ className: cn(
2841
+ "inline-flex max-w-full shrink-0 items-center gap-1.5 font-mono text-meta text-muted-foreground",
2842
+ className
2843
+ ),
2844
+ "aria-label": swatchOnly ? `bound: ${bound}` : void 0,
2845
+ ...props,
2846
+ children: [
2847
+ /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, className: cn("size-1.5 shrink-0", SWATCH[bound]) }),
2848
+ swatchOnly ? null : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: bound })
2849
+ ]
2850
+ }
2851
+ )
2852
+ );
2853
+ BoundChip.displayName = "BoundChip";
2824
2854
  var stateVariants = classVarianceAuthority.cva("inline-flex shrink-0 items-center gap-1.5 font-medium", {
2825
2855
  variants: {
2826
2856
  tone: {
@@ -4601,17 +4631,59 @@ var MenuItem = ({
4601
4631
  )
4602
4632
  ] });
4603
4633
  };
4634
+ var TONE = {
4635
+ running: "text-info",
4636
+ success: "text-success",
4637
+ warning: "text-warning",
4638
+ error: "text-destructive",
4639
+ info: "text-info"
4640
+ };
4604
4641
  var MetricTile = React23__namespace.forwardRef(
4605
- ({ label, value, caption, className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
4642
+ ({ label, value, caption, tone, meter, className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
4606
4643
  "div",
4607
4644
  {
4608
4645
  ref,
4609
- className: cn("flex flex-col gap-0.5 border border-border bg-card p-2", className),
4646
+ className: cn(
4647
+ "flex flex-col gap-px border border-border bg-card px-3 py-2.5",
4648
+ className
4649
+ ),
4610
4650
  ...props,
4611
4651
  children: [
4612
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-meta text-muted-foreground", children: label }),
4613
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-base font-medium leading-tight", children: value }),
4652
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-meta font-semibold uppercase tracking-wide text-muted-foreground", children: label }),
4653
+ /* @__PURE__ */ jsxRuntime.jsx(
4654
+ "span",
4655
+ {
4656
+ className: cn(
4657
+ // Mono, because a metric is a figure: proportional digits make
4658
+ // `1,880` and `2 / 5` in adjacent tiles sit at different widths, and
4659
+ // a strip of six stops reading as one row of numbers.
4660
+ "font-mono text-lg font-semibold leading-tight",
4661
+ tone ? TONE[tone] : void 0
4662
+ ),
4663
+ children: value
4664
+ }
4665
+ ),
4614
4666
  caption != null ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-meta text-muted-foreground", children: caption }) : null,
4667
+ meter != null ? (
4668
+ // Not a <Progress>: that is a control-sized, rounded, animated bar for
4669
+ // work in flight. This is a 4px rule that says how much of a ceiling is
4670
+ // gone, and it must not read as a second value in the tile.
4671
+ /* @__PURE__ */ jsxRuntime.jsx(
4672
+ "div",
4673
+ {
4674
+ className: "mt-1 h-1 w-full bg-muted",
4675
+ role: "img",
4676
+ "aria-label": `${Math.round(Math.min(Math.max(meter, 0), 1) * 100)}% of the ceiling`,
4677
+ children: /* @__PURE__ */ jsxRuntime.jsx(
4678
+ "div",
4679
+ {
4680
+ className: cn("h-full", tone ? TONE[tone] : "text-primary", "bg-current"),
4681
+ style: { width: `${Math.min(Math.max(meter, 0), 1) * 100}%` }
4682
+ }
4683
+ )
4684
+ }
4685
+ )
4686
+ ) : null,
4615
4687
  children
4616
4688
  ]
4617
4689
  }
@@ -4619,12 +4691,13 @@ var MetricTile = React23__namespace.forwardRef(
4619
4691
  );
4620
4692
  MetricTile.displayName = "MetricTile";
4621
4693
  var MetricGrid = React23__namespace.forwardRef(
4622
- ({ minTileWidth = 120, className, style, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
4694
+ ({ minTileWidth = 120, gap = 6, className, style, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
4623
4695
  "div",
4624
4696
  {
4625
4697
  ref,
4626
- className: cn("grid gap-1.5", className),
4698
+ className: cn("grid", className),
4627
4699
  style: {
4700
+ gap,
4628
4701
  gridTemplateColumns: `repeat(auto-fit, minmax(${minTileWidth}px, 1fr))`,
4629
4702
  ...style
4630
4703
  },
@@ -4676,6 +4749,67 @@ var NestedMenu = (props) => {
4676
4749
  }
4677
4750
  );
4678
4751
  };
4752
+ var Eyebrow = React23__namespace.forwardRef(
4753
+ ({ aside, tone = "muted", className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
4754
+ "div",
4755
+ {
4756
+ ref,
4757
+ className: cn(
4758
+ "flex items-baseline gap-2 text-meta font-semibold uppercase tracking-wide",
4759
+ tone === "muted" && "text-muted-foreground",
4760
+ tone === "foreground" && "text-foreground",
4761
+ tone === "accent" && "text-primary",
4762
+ className
4763
+ ),
4764
+ ...props,
4765
+ children: [
4766
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate", children }),
4767
+ aside != null ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto shrink-0 font-normal normal-case tracking-normal text-muted-foreground", children: aside }) : null
4768
+ ]
4769
+ }
4770
+ )
4771
+ );
4772
+ Eyebrow.displayName = "Eyebrow";
4773
+ var PanelBox = React23__namespace.forwardRef(
4774
+ ({ title, aside, flush, className, headerClassName, bodyClassName, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
4775
+ Card,
4776
+ {
4777
+ ref,
4778
+ className: cn(
4779
+ // A band is square and flat: the radius and the lift belong to cards
4780
+ // that float, and twenty of these in a column would read as twenty
4781
+ // floating things rather than one page.
4782
+ "flex min-w-0 flex-col overflow-hidden rounded-control shadow-none",
4783
+ className
4784
+ ),
4785
+ ...props,
4786
+ children: [
4787
+ /* @__PURE__ */ jsxRuntime.jsx(
4788
+ "div",
4789
+ {
4790
+ className: cn(
4791
+ "flex h-[31px] shrink-0 items-center border-b border-border px-2.5",
4792
+ headerClassName
4793
+ ),
4794
+ children: /* @__PURE__ */ jsxRuntime.jsx(Eyebrow, { aside, className: "w-full", children: title })
4795
+ }
4796
+ ),
4797
+ /* @__PURE__ */ jsxRuntime.jsx(
4798
+ "div",
4799
+ {
4800
+ className: cn(
4801
+ "flex min-w-0 flex-col",
4802
+ flush ? "p-0" : "px-2.5 py-2",
4803
+ bodyClassName
4804
+ ),
4805
+ children
4806
+ }
4807
+ )
4808
+ ]
4809
+ }
4810
+ )
4811
+ );
4812
+ PanelBox.displayName = "PanelBox";
4679
4813
  function PanelContent({
4680
4814
  title,
4681
4815
  titleText,
@@ -4719,6 +4853,8 @@ function PanelContent({
4719
4853
  }
4720
4854
  function PanelStack({
4721
4855
  sections,
4856
+ stackRef,
4857
+ onCollapsedChange,
4722
4858
  headerHeight = 35,
4723
4859
  withHandle = false,
4724
4860
  className,
@@ -4763,19 +4899,26 @@ function PanelStack({
4763
4899
  for (const s of targets) refs.current[s.id]?.collapse();
4764
4900
  group.setLayout(next);
4765
4901
  }, []);
4766
- const toggle = (id) => {
4902
+ const notify = React23__namespace.useRef(onCollapsedChange);
4903
+ React23__namespace.useEffect(() => {
4904
+ notify.current = onCollapsedChange;
4905
+ }, [onCollapsedChange]);
4906
+ const collapsedRef = React23__namespace.useRef(collapsed);
4907
+ collapsedRef.current = collapsed;
4908
+ const collapsePanel = React23__namespace.useCallback((id) => {
4767
4909
  const ref = refs.current[id];
4768
- if (!ref) return;
4769
- if (!ref.isCollapsed()) {
4770
- ref.collapse();
4771
- return;
4772
- }
4910
+ if (!ref || ref.isCollapsed()) return;
4911
+ ref.collapse();
4912
+ }, []);
4913
+ const expandPanel = React23__namespace.useCallback((id) => {
4914
+ const ref = refs.current[id];
4915
+ if (!ref || !ref.isCollapsed()) return;
4773
4916
  ref.expand();
4774
4917
  if (!ref.isCollapsed()) return;
4775
4918
  const group = groupRef.current;
4776
4919
  if (!group) return;
4777
4920
  const layout = group.getLayout();
4778
- const donor = Object.entries(layout).filter(([panelId]) => panelId !== id && !collapsed[panelId]).sort((a, b) => b[1] - a[1])[0];
4921
+ const donor = Object.entries(layout).filter(([panelId]) => panelId !== id && !collapsedRef.current[panelId]).sort((a, b) => b[1] - a[1])[0];
4779
4922
  if (!donor) return;
4780
4923
  const [donorId, donorPct] = donor;
4781
4924
  const share = donorPct / 2;
@@ -4784,7 +4927,26 @@ function PanelStack({
4784
4927
  [id]: (layout[id] ?? 0) + share,
4785
4928
  [donorId]: donorPct - share
4786
4929
  });
4787
- };
4930
+ }, []);
4931
+ const toggle = React23__namespace.useCallback(
4932
+ (id) => {
4933
+ const ref = refs.current[id];
4934
+ if (!ref) return;
4935
+ if (ref.isCollapsed()) expandPanel(id);
4936
+ else collapsePanel(id);
4937
+ },
4938
+ [expandPanel, collapsePanel]
4939
+ );
4940
+ React23__namespace.useImperativeHandle(
4941
+ stackRef,
4942
+ () => ({
4943
+ expand: expandPanel,
4944
+ collapse: collapsePanel,
4945
+ toggle,
4946
+ isCollapsed: (id) => !!collapsedRef.current[id]
4947
+ }),
4948
+ [expandPanel, collapsePanel, toggle]
4949
+ );
4788
4950
  return (
4789
4951
  // Header actions are nav items, and those carry tooltips — provide the
4790
4952
  // context here so a `PanelStack` works outside an app shell too. Nesting
@@ -4822,9 +4984,12 @@ function PanelStack({
4822
4984
  },
4823
4985
  onResize: (size) => {
4824
4986
  const next = size.inPixels <= headerHeight + 1;
4825
- setCollapsed(
4826
- (prev) => prev[section.id] === next ? prev : { ...prev, [section.id]: next }
4827
- );
4987
+ setCollapsed((prev) => {
4988
+ if (prev[section.id] === next) return prev;
4989
+ const map = { ...prev, [section.id]: next };
4990
+ notify.current?.(map);
4991
+ return map;
4992
+ });
4828
4993
  },
4829
4994
  className: "flex flex-col overflow-hidden",
4830
4995
  children: [
@@ -4923,6 +5088,47 @@ var PropertyRow = React23__namespace.forwardRef(
4923
5088
  )
4924
5089
  );
4925
5090
  PropertyRow.displayName = "PropertyRow";
5091
+ var RecordHeader = React23__namespace.forwardRef(
5092
+ ({ tone, crumbs, chips, actions, className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
5093
+ "div",
5094
+ {
5095
+ ref,
5096
+ className: cn(
5097
+ "flex shrink-0 items-center gap-2.5 border-b border-border bg-card px-4 py-2.5",
5098
+ className
5099
+ ),
5100
+ ...props,
5101
+ children: [
5102
+ tone ? /* @__PURE__ */ jsxRuntime.jsx(StatusDot, { tone, size: "lg" }) : null,
5103
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-0 items-center gap-1.5", children: crumbs.map((crumb, i) => {
5104
+ const last = i === crumbs.length - 1;
5105
+ return /* @__PURE__ */ jsxRuntime.jsxs(React23__namespace.Fragment, { children: [
5106
+ i > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
5107
+ lucideReact.ChevronRight,
5108
+ {
5109
+ "aria-hidden": true,
5110
+ className: "size-3.5 shrink-0 text-muted-foreground/60"
5111
+ }
5112
+ ) : null,
5113
+ /* @__PURE__ */ jsxRuntime.jsx(
5114
+ "span",
5115
+ {
5116
+ className: cn(
5117
+ "min-w-0 truncate font-mono",
5118
+ last ? "text-base font-semibold text-foreground" : "text-muted-foreground"
5119
+ ),
5120
+ children: crumb
5121
+ }
5122
+ )
5123
+ ] }, i);
5124
+ }) }),
5125
+ chips ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex shrink-0 items-center gap-1.5", children: chips }) : null,
5126
+ actions ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto flex shrink-0 items-center gap-1.5", children: actions }) : null
5127
+ ]
5128
+ }
5129
+ )
5130
+ );
5131
+ RecordHeader.displayName = "RecordHeader";
4926
5132
  var ProposalCard = React23__namespace.forwardRef(
4927
5133
  ({
4928
5134
  title,
@@ -5242,27 +5448,6 @@ var SearchInput = ({
5242
5448
  }
5243
5449
  );
5244
5450
  };
5245
- var Eyebrow = React23__namespace.forwardRef(
5246
- ({ aside, tone = "muted", className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
5247
- "div",
5248
- {
5249
- ref,
5250
- className: cn(
5251
- "flex items-baseline gap-2 text-meta font-semibold uppercase tracking-wide",
5252
- tone === "muted" && "text-muted-foreground",
5253
- tone === "foreground" && "text-foreground",
5254
- tone === "accent" && "text-primary",
5255
- className
5256
- ),
5257
- ...props,
5258
- children: [
5259
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate", children }),
5260
- aside != null ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto shrink-0 font-normal normal-case tracking-normal text-muted-foreground", children: aside }) : null
5261
- ]
5262
- }
5263
- )
5264
- );
5265
- Eyebrow.displayName = "Eyebrow";
5266
5451
  var SectionHeader = React23__namespace.forwardRef(({ icon, title, count, actions, bare, className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
5267
5452
  "div",
5268
5453
  {
@@ -5729,6 +5914,85 @@ var TaskGantt = React23__namespace.forwardRef(
5729
5914
  }
5730
5915
  );
5731
5916
  TaskGantt.displayName = "TaskGantt";
5917
+ var TaskNode = React23__namespace.forwardRef(
5918
+ ({ taskKey, bound, status, tags, meta, selected, gate, dim, ghost, className, ...props }, ref) => {
5919
+ if (ghost) {
5920
+ return /* @__PURE__ */ jsxRuntime.jsxs(
5921
+ "div",
5922
+ {
5923
+ ref,
5924
+ className: cn(
5925
+ "flex w-[146px] flex-col gap-1 border border-dashed border-border p-2",
5926
+ "text-meta text-muted-foreground",
5927
+ className
5928
+ ),
5929
+ ...props,
5930
+ children: [
5931
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate font-mono", children: taskKey }),
5932
+ meta != null ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: meta }) : null
5933
+ ]
5934
+ }
5935
+ );
5936
+ }
5937
+ return /* @__PURE__ */ jsxRuntime.jsxs(
5938
+ "div",
5939
+ {
5940
+ ref,
5941
+ "data-selected": selected || void 0,
5942
+ className: cn(
5943
+ "relative flex w-[146px] flex-col gap-1 border bg-card p-2 shadow-xs",
5944
+ // The ring says one thing at a time, in this order: you picked it,
5945
+ // it is held for approval, it failed. A node cannot be two of those.
5946
+ selected ? "border-primary ring-2 ring-primary/25" : gate ? "border-warning" : status === "error" ? "border-destructive" : "border-border",
5947
+ dim && "opacity-45",
5948
+ className
5949
+ ),
5950
+ ...props,
5951
+ children: [
5952
+ selected ? ["-left-1 -top-1", "-right-1 -top-1", "-bottom-1 -left-1", "-bottom-1 -right-1"].map(
5953
+ (pos) => /* @__PURE__ */ jsxRuntime.jsx(
5954
+ "span",
5955
+ {
5956
+ "aria-hidden": true,
5957
+ className: cn("absolute size-[7px] border-[1.5px] border-primary bg-card", pos)
5958
+ },
5959
+ pos
5960
+ )
5961
+ ) : null,
5962
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
5963
+ status ? /* @__PURE__ */ jsxRuntime.jsx(StatusDot, { tone: status, size: "sm" }) : null,
5964
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate font-mono", children: taskKey })
5965
+ ] }),
5966
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
5967
+ /* @__PURE__ */ jsxRuntime.jsx(BoundChip, { bound }),
5968
+ tags?.map((tag, i) => /* @__PURE__ */ jsxRuntime.jsx(
5969
+ "span",
5970
+ {
5971
+ className: cn(
5972
+ "shrink-0 border px-1 text-meta",
5973
+ tag.tone === "warning" ? "border-warning/40 text-warning" : "border-border text-muted-foreground"
5974
+ ),
5975
+ children: tag.label
5976
+ },
5977
+ i
5978
+ ))
5979
+ ] }),
5980
+ meta != null ? /* @__PURE__ */ jsxRuntime.jsx(
5981
+ "div",
5982
+ {
5983
+ className: cn(
5984
+ "truncate text-meta",
5985
+ gate ? "text-warning" : "text-muted-foreground"
5986
+ ),
5987
+ children: meta
5988
+ }
5989
+ ) : null
5990
+ ]
5991
+ }
5992
+ );
5993
+ }
5994
+ );
5995
+ TaskNode.displayName = "TaskNode";
5732
5996
  var TemplatePicker = React23__namespace.forwardRef(({ heading, options, value, onSelect, footnote, className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
5733
5997
  "div",
5734
5998
  {
@@ -5769,6 +6033,12 @@ var TemplatePicker = React23__namespace.forwardRef(({ heading, options, value, o
5769
6033
  }
5770
6034
  ));
5771
6035
  TemplatePicker.displayName = "TemplatePicker";
6036
+ var LEVEL = {
6037
+ info: "text-success",
6038
+ warn: "text-warning",
6039
+ error: "text-destructive",
6040
+ debug: "text-muted-foreground"
6041
+ };
5772
6042
  var MARKER = {
5773
6043
  prompt: "$",
5774
6044
  output: "\u2192",
@@ -5800,19 +6070,19 @@ var Terminal = React23__namespace.forwardRef(
5800
6070
  );
5801
6071
  Terminal.displayName = "Terminal";
5802
6072
  var TerminalLine = React23__namespace.forwardRef(
5803
- ({ kind = "output", columns, className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
6073
+ ({ kind = "output", level, levelColumn = 1, columns, className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
5804
6074
  "div",
5805
6075
  {
5806
6076
  ref,
5807
6077
  className: cn(
5808
6078
  "items-baseline gap-2 whitespace-pre",
5809
- columns ? "grid [grid-template-columns:auto_var(--terminal-cols)]" : "flex",
6079
+ columns ? level ? "grid [grid-template-columns:var(--terminal-cols)]" : "grid [grid-template-columns:auto_var(--terminal-cols)]" : "flex",
5810
6080
  kind === "comment" && "text-muted-foreground",
5811
6081
  className
5812
6082
  ),
5813
6083
  ...props,
5814
6084
  children: [
5815
- /* @__PURE__ */ jsxRuntime.jsx(
6085
+ level ? null : /* @__PURE__ */ jsxRuntime.jsx(
5816
6086
  "span",
5817
6087
  {
5818
6088
  "aria-hidden": true,
@@ -5828,7 +6098,9 @@ var TerminalLine = React23__namespace.forwardRef(
5828
6098
  {
5829
6099
  className: cn(
5830
6100
  "min-w-0 truncate",
5831
- i === columns.length - 1 && "text-muted-foreground"
6101
+ // A log tints its level cell and greys everything that is not the
6102
+ // message; a transcript greys only its trailing cell.
6103
+ level ? i === levelColumn ? LEVEL[level] : i === columns.length - 1 ? void 0 : "text-muted-foreground" : i === columns.length - 1 && "text-muted-foreground"
5832
6104
  ),
5833
6105
  children: c
5834
6106
  },
@@ -6538,6 +6810,7 @@ exports.AvatarImage = AvatarImage;
6538
6810
  exports.Badge = Badge;
6539
6811
  exports.BarChartH = BarChartH;
6540
6812
  exports.BarChartV = BarChartV;
6813
+ exports.BoundChip = BoundChip;
6541
6814
  exports.Breadcrumb = Breadcrumb;
6542
6815
  exports.BreadcrumbEllipsis = BreadcrumbEllipsis;
6543
6816
  exports.BreadcrumbItem = BreadcrumbItem;
@@ -6688,6 +6961,7 @@ exports.PaginationItem = PaginationItem;
6688
6961
  exports.PaginationLink = PaginationLink;
6689
6962
  exports.PaginationNext = PaginationNext;
6690
6963
  exports.PaginationPrevious = PaginationPrevious;
6964
+ exports.PanelBox = PanelBox;
6691
6965
  exports.PanelContent = PanelContent;
6692
6966
  exports.PanelStack = PanelStack;
6693
6967
  exports.Popover = Popover;
@@ -6698,6 +6972,7 @@ exports.PropertyList = PropertyList;
6698
6972
  exports.PropertyRow = PropertyRow;
6699
6973
  exports.ProposalCard = ProposalCard;
6700
6974
  exports.RatingControl = RatingControl;
6975
+ exports.RecordHeader = RecordHeader;
6701
6976
  exports.RepairNote = RepairNote;
6702
6977
  exports.ResizableHandle = ResizableHandle;
6703
6978
  exports.ResizablePanel = ResizablePanel;
@@ -6761,6 +7036,7 @@ exports.TabsList = TabsList;
6761
7036
  exports.TabsTrigger = TabsTrigger;
6762
7037
  exports.TaskGantt = TaskGantt;
6763
7038
  exports.TaskGanttDetailCard = TaskGanttDetailCard;
7039
+ exports.TaskNode = TaskNode;
6764
7040
  exports.TemplatePicker = TemplatePicker;
6765
7041
  exports.Terminal = Terminal;
6766
7042
  exports.TerminalLine = TerminalLine;
@@ -6798,6 +7074,7 @@ exports.TypographySmall = TypographySmall;
6798
7074
  exports.UnderDevelopment = UnderDevelopment;
6799
7075
  exports.agentChipVariants = agentChipVariants;
6800
7076
  exports.badgeVariants = badgeVariants;
7077
+ exports.boundSwatch = SWATCH;
6801
7078
  exports.buttonGroupVariants = buttonGroupVariants;
6802
7079
  exports.buttonVariants = buttonVariants;
6803
7080
  exports.chatSessionGutterClass = chatSessionGutterClass;