impact-nova 3.0.0-alpha.3 → 3.0.0-alpha.4

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.
@@ -1,7 +1,7 @@
1
- import { getDefaultExportFromCjs as e } from "./_commonjsHelpers.js";
2
- import { __require as r } from "../node_modules/extend/index.js";
3
- var t = r();
4
- const a = /* @__PURE__ */ e(t);
1
+ import { getDefaultExportFromCjs as r } from "./_commonjsHelpers.js";
2
+ import { __require as o } from "../node_modules/style-to-js/cjs/index.js";
3
+ var t = o();
4
+ const a = /* @__PURE__ */ r(t);
5
5
  export {
6
6
  a as default
7
7
  };
@@ -1,7 +1,7 @@
1
- import { getDefaultExportFromCjs as r } from "./_commonjsHelpers.js";
2
- import { __require as o } from "../node_modules/style-to-js/cjs/index.js";
3
- var t = o();
4
- const a = /* @__PURE__ */ r(t);
1
+ import { getDefaultExportFromCjs as e } from "./_commonjsHelpers.js";
2
+ import { __require as r } from "../node_modules/extend/index.js";
3
+ var t = r();
4
+ const a = /* @__PURE__ */ e(t);
5
5
  export {
6
6
  a as default
7
7
  };
@@ -3,8 +3,7 @@ import { Badge as s } from "../../data-display/badge/badge.js";
3
3
  import { FilterPopoverContent as u } from "../../flows/filter-strip/filter-tag-list.js";
4
4
  import { Popover as b, PopoverTrigger as f } from "../../feedback/popover/popover.js";
5
5
  import { Tooltip as g, TooltipTrigger as v, TooltipContent as x } from "../../feedback/tooltip/tooltip.js";
6
- import "react";
7
- function I({
6
+ function w({
8
7
  tags: o,
9
8
  title: l = "Attributes",
10
9
  maxVisibleTags: n = 4,
@@ -71,5 +70,5 @@ function I({
71
70
  );
72
71
  }
73
72
  export {
74
- I as ExpandableListItemAttributes
73
+ w as ExpandableListItemAttributes
75
74
  };
@@ -1,9 +1,8 @@
1
1
  import { jsx as e, jsxs as s } from "react/jsx-runtime";
2
2
  import { ScrollOverflowAffordance as o } from "../../layout/horizontal-scroller/scroll-overflow-affordance.js";
3
- import "react";
4
3
  import { OverflowTooltip as r } from "../../feedback/tooltip/overflow-tooltip.js";
5
4
  const m = 128;
6
- function f({
5
+ function x({
7
6
  columns: i,
8
7
  sectionId: l = "metrics"
9
8
  }) {
@@ -51,5 +50,5 @@ function f({
51
50
  );
52
51
  }
53
52
  export {
54
- f as ExpandableListItemMetrics
53
+ x as ExpandableListItemMetrics
55
54
  };
@@ -1,9 +1,9 @@
1
1
  import { jsx as t, jsxs as l } from "react/jsx-runtime";
2
- import { Search as s, CardView as m, ListFilter as u, TextFormat as h, Back as b } from "impact-nova-icons";
2
+ import { Search as s, CardView as m, ListFilter as h, TextFormat as u, Back as b } from "impact-nova-icons";
3
3
  import "react";
4
- import { Badge as f } from "../../data-display/badge/badge.js";
4
+ import { Badge as v } from "../../data-display/badge/badge.js";
5
5
  import { ButtonIconTooltip as r } from "../../feedback/tooltip/button-icon-tooltip.js";
6
- import { Input as v } from "../../forms/input/input.js";
6
+ import { Input as f } from "../../forms/input/input.js";
7
7
  import { Accordion as x, AccordionItem as g, AccordionTrigger as w, AccordionContent as C } from "../../primitives/accordion/accordion.js";
8
8
  import { Button as i } from "../../primitives/button/button.js";
9
9
  import { cn as N } from "../../../lib/utils.js";
@@ -19,7 +19,7 @@ function y(e) {
19
19
  const a = Math.max(0, e.selectedCount - e.previewCodes.length);
20
20
  return /* @__PURE__ */ l("div", { className: "flex min-w-0 items-center gap-1", children: [
21
21
  /* @__PURE__ */ t("p", { className: "truncate text-xs font-medium text-content-muted", children: e.previewCodes.join(", ") }),
22
- a > 0 ? /* @__PURE__ */ l(f, { variant: "subtle", color: "primary", size: "sm", shape: "square", children: [
22
+ a > 0 ? /* @__PURE__ */ l(v, { variant: "subtle", color: "primary", size: "sm", shape: "square", children: [
23
23
  "+",
24
24
  a
25
25
  ] }) : null
@@ -36,7 +36,7 @@ function V(e) {
36
36
  ), c = /* @__PURE__ */ l("div", { className: "flex items-center justify-between gap-3", children: [
37
37
  /* @__PURE__ */ l("div", { className: "flex items-center gap-3", children: [
38
38
  /* @__PURE__ */ t(
39
- v,
39
+ f,
40
40
  {
41
41
  size: "default",
42
42
  className: "w-[200px]",
@@ -60,7 +60,7 @@ function V(e) {
60
60
  "aria-label": e.view === "card" ? "Switch to list view" : "Switch to card view",
61
61
  "aria-pressed": e.view === "list",
62
62
  onClick: () => e.onViewChange(e.view === "card" ? "list" : "card"),
63
- children: e.view === "card" ? /* @__PURE__ */ t(m, {}) : /* @__PURE__ */ t(u, {})
63
+ children: e.view === "card" ? /* @__PURE__ */ t(m, {}) : /* @__PURE__ */ t(h, {})
64
64
  }
65
65
  )
66
66
  }
@@ -75,7 +75,7 @@ function V(e) {
75
75
  "aria-pressed": e.sortAlphabetically,
76
76
  className: S(e.sortAlphabetically),
77
77
  onClick: e.onToggleSort,
78
- children: /* @__PURE__ */ t(h, {})
78
+ children: /* @__PURE__ */ t(u, {})
79
79
  }
80
80
  ) })
81
81
  ] }),
@@ -84,7 +84,8 @@ function V(e) {
84
84
  i,
85
85
  {
86
86
  type: "button",
87
- variant: "link",
87
+ variant: "ghost",
88
+ className: "text-brand hover:text-brand",
88
89
  onClick: e.onSelectAll,
89
90
  disabled: e.allSelected === !0,
90
91
  children: "Select All"
@@ -94,7 +95,8 @@ function V(e) {
94
95
  i,
95
96
  {
96
97
  type: "button",
97
- variant: "link",
98
+ variant: "ghost",
99
+ className: "text-brand hover:text-brand",
98
100
  onClick: e.onClear,
99
101
  disabled: e.selectedCount === 0,
100
102
  children: "Clear"
@@ -1,7 +1,6 @@
1
1
  import { jsxs as t, jsx as e } from "react/jsx-runtime";
2
2
  import { Tooltip as l, TooltipTrigger as n, TooltipContent as o } from "./tooltip.js";
3
- import "react";
4
- const p = (i, r, a) => /* @__PURE__ */ t(l, { children: [
3
+ const d = (i, r, a) => /* @__PURE__ */ t(l, { children: [
5
4
  /* @__PURE__ */ e(n, { asChild: !0, children: /* @__PURE__ */ e("span", { className: "inline-flex items-center justify-center h-full w-full", children: i }) }),
6
5
  /* @__PURE__ */ e(o, { variant: "tertiary", className: a, children: r })
7
6
  ] }), h = (i, r) => /* @__PURE__ */ t(l, { children: [
@@ -10,5 +9,5 @@ const p = (i, r, a) => /* @__PURE__ */ t(l, { children: [
10
9
  ] });
11
10
  export {
12
11
  h as defaultAccordionTooltipRender,
13
- p as defaultTabTooltipRender
12
+ d as defaultTabTooltipRender
14
13
  };
@@ -2,17 +2,17 @@ import { jsx as r, jsxs as h, Fragment as z } from "react/jsx-runtime";
2
2
  import * as o from "react";
3
3
  import { Person as G, Monitor as U, PriorityAlert as q, Locked as O, Reset as B } from "impact-nova-icons";
4
4
  import { cn as p } from "../../../lib/utils.js";
5
- import { Kbd as $ } from "../../primitives/kbd/kbd.js";
6
- import { keybindingToString as H } from "../../primitives/kbd/keybinding-display.js";
7
5
  import { OverflowTooltip as A } from "../../feedback/tooltip/overflow-tooltip.js";
8
- import { ModuleRegistry as V, AllCommunityModule as J } from "ag-grid-community";
9
- import { AllEnterpriseModule as Q } from "ag-grid-enterprise";
10
- import { DataTable as X, DataTableContent as Y } from "../../data/data-table/data-table.js";
6
+ import { ModuleRegistry as $, AllCommunityModule as H } from "ag-grid-community";
7
+ import { AllEnterpriseModule as V } from "ag-grid-enterprise";
8
+ import { DataTable as J, DataTableContent as Q } from "../../data/data-table/data-table.js";
11
9
  import { AG_CELL_NO_PADDING as F } from "../../data/ag-grid-react/cell-renderers/index.js";
10
+ import { Kbd as X } from "../../primitives/kbd/kbd.js";
11
+ import { keybindingToString as Y } from "../../primitives/kbd/keybinding-display.js";
12
12
  import { useCommandPalette as Z } from "./use-command-palette.js";
13
13
  import { COMMAND_SOURCE_LABELS as m, keybindingFromEvent as W, isReservedShortcut as ee } from "./utils.js";
14
14
  import { BadgeCellRenderer as te } from "../../data/ag-grid-react/cell-renderers/badge-cell-renderer.js";
15
- V.registerModules([J, Q]);
15
+ $.registerModules([H, V]);
16
16
  function re(a) {
17
17
  const t = a.data;
18
18
  return t ? /* @__PURE__ */ h("div", { className: "flex items-center gap-2 min-w-0 h-full", children: [
@@ -69,7 +69,7 @@ function ne(a) {
69
69
  "flex items-center justify-end h-full w-full text-end",
70
70
  t.customisable ? "cursor-pointer" : "cursor-default opacity-70"
71
71
  ),
72
- children: /* @__PURE__ */ r($, { keybinding: t.keybinding, size: "sm" })
72
+ children: /* @__PURE__ */ r(X, { keybinding: t.keybinding, size: "sm" })
73
73
  }
74
74
  ) : t.customisable ? /* @__PURE__ */ r(
75
75
  "button",
@@ -133,7 +133,7 @@ function le({
133
133
  description: e.description || "",
134
134
  category: e.category || "General",
135
135
  keybinding: i,
136
- keybindingDisplay: i ? H(i) : "",
136
+ keybindingDisplay: i ? Y(i) : "",
137
137
  scope: e.scope,
138
138
  source: D,
139
139
  sourceColor: T ? "primary" : "neutral",
@@ -278,10 +278,10 @@ function le({
278
278
  u?.type === "conflict" ? /* @__PURE__ */ r(q, { className: "h-3.5 w-3.5 shrink-0" }) : u?.type === "reserved" ? /* @__PURE__ */ r(O, { className: "h-3.5 w-3.5 shrink-0" }) : c ? /* @__PURE__ */ r("span", { className: "shrink-0 text-base", children: "⌨️" }) : null,
279
279
  /* @__PURE__ */ r("span", { children: u ? u.text : L })
280
280
  ] }) : null;
281
- return /* @__PURE__ */ h(X, { className: p("flex flex-col w-full h-full border-t-0", a), children: [
281
+ return /* @__PURE__ */ h(J, { className: p("flex flex-col w-full h-full border-t-0", a), children: [
282
282
  s ? s(E) : E,
283
283
  /* @__PURE__ */ r(
284
- Y,
284
+ Q,
285
285
  {
286
286
  rowData: y,
287
287
  columnDefs: I,
@@ -6,8 +6,8 @@ import { cn as o } from "../../../lib/utils.js";
6
6
  import { MultiColorFilter as F, Cross as P, InfoBadge as u } from "impact-nova-icons";
7
7
  import { Button as D } from "../../primitives/button/button.js";
8
8
  import { Tooltip as c, TooltipTrigger as f, TooltipContent as h } from "../../feedback/tooltip/tooltip.js";
9
- import { Kbd as S } from "../../primitives/kbd/kbd.js";
10
- import { OverflowTooltip as j } from "../../feedback/tooltip/overflow-tooltip.js";
9
+ import { OverflowTooltip as S } from "../../feedback/tooltip/overflow-tooltip.js";
10
+ import { Kbd as j } from "../../primitives/kbd/kbd.js";
11
11
  import { useImpactNovaI18n as v } from "../../../i18n/use-impact-nova-i18n.js";
12
12
  import { useOverlayHostDismissNestedLayersOnNavigation as I } from "../../../lib/overlay/overlay-portal-context.js";
13
13
  import { preventDismissOnTooltipOutside as x } from "../../../lib/overlay/prevent-dismiss-on-tooltip-outside.js";
@@ -145,14 +145,14 @@ const O = ({
145
145
  ),
146
146
  /* @__PURE__ */ a("div", { className: "flex items-center gap-1 min-w-0", children: [
147
147
  /* @__PURE__ */ e(
148
- j,
148
+ S,
149
149
  {
150
150
  triggerClassName: "truncate font-['Manrope'] block min-w-0",
151
151
  content: t.tooltipKeybinding ? /* @__PURE__ */ a("span", { className: "flex items-center gap-2", children: [
152
152
  t.label,
153
153
  " ",
154
154
  /* @__PURE__ */ e(
155
- S,
155
+ j,
156
156
  {
157
157
  keybinding: t.tooltipKeybinding,
158
158
  size: "sm"
@@ -1,5 +1,5 @@
1
1
  import { cva as e } from "class-variance-authority";
2
- const r = "border-stroke-subtle p-3 hover:border-brand", a = "border-brand border-l-[3px] border-l-brand bg-brand-tint py-3 pr-3 pl-2.5 shadow-elevation-header", s = e(
2
+ const r = "border-stroke-subtle p-3 hover:border-stroke-field hover:bg-accent", a = "border-brand border-l-[3px] border-l-brand bg-brand-tint py-3 pr-3 pl-2.5 shadow-elevation-header hover:bg-brand-tint", o = e(
3
3
  [
4
4
  "group relative cursor-pointer select-none transition-[border-color,background-color,box-shadow] duration-150",
5
5
  "has-[[data-slot=choice-card-control]:focus-visible]:outline-none has-[[data-slot=choice-card-control]:focus-visible]:ring-1 has-[[data-slot=choice-card-control]:focus-visible]:ring-focus-ring"
@@ -7,7 +7,7 @@ const r = "border-stroke-subtle p-3 hover:border-brand", a = "border-brand borde
7
7
  {
8
8
  variants: {
9
9
  variant: {
10
- default: "flex flex-row items-start justify-between gap-2 overflow-hidden rounded-xl border border-solid bg-canvas-elevated",
10
+ default: "flex flex-row items-center justify-between gap-2 overflow-hidden rounded-xl border border-solid bg-canvas-elevated",
11
11
  featured: "flex h-[116px] w-[215px] shrink-0 flex-col overflow-hidden rounded-2xl border border-solid bg-canvas-elevated p-0",
12
12
  compare: "flex flex-col items-stretch gap-4 overflow-visible rounded-xl border border-solid p-3"
13
13
  },
@@ -96,5 +96,5 @@ const r = "border-stroke-subtle p-3 hover:border-brand", a = "border-brand borde
96
96
  }
97
97
  );
98
98
  export {
99
- s as choiceCardVariants
99
+ o as choiceCardVariants
100
100
  };
@@ -1,9 +1,8 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
2
  import { cn as x } from "../../../../lib/utils.js";
3
- import "react";
4
3
  import { OverflowTooltip as m } from "../../../feedback/tooltip/overflow-tooltip.js";
5
4
  import { isInvertedSelection as h, isOptionArray as d } from "../utils/select.js";
6
- function C({
5
+ function w({
7
6
  isMulti: u,
8
7
  isDisabled: p,
9
8
  internalValue: o,
@@ -53,5 +52,5 @@ function C({
53
52
  );
54
53
  }
55
54
  export {
56
- C as SelectTriggerValue
55
+ w as SelectTriggerValue
57
56
  };
@@ -1,14 +1,13 @@
1
1
  import { jsxs as s, jsx as t } from "react/jsx-runtime";
2
2
  import * as i from "@radix-ui/react-popover";
3
3
  import { Checkbox as P } from "../../checkbox/checkbox.js";
4
- import "react";
5
4
  import { OverflowTooltip as y } from "../../../feedback/tooltip/overflow-tooltip.js";
6
5
  import { ChevronRight as A, Checkmark as O } from "impact-nova-icons";
7
6
  import { cn as v } from "../../../../lib/utils.js";
8
7
  import { useOverlayPortalContainer as T } from "../../../../lib/overlay/overlay-portal-context.js";
9
8
  import { OVERLAY_NESTED_FLOATING_INSTANT_HIDE_CLASS as _ } from "../../../../lib/overlay/overlay-host.constants.js";
10
9
  import { useSuppressOptionClickForTextSelection as E } from "../hooks/useSuppressOptionClickForTextSelection.js";
11
- const R = ({
10
+ const G = ({
12
11
  parentOption: n,
13
12
  isMulti: u,
14
13
  isReadOnly: l,
@@ -106,5 +105,5 @@ const R = ({
106
105
  ] });
107
106
  };
108
107
  export {
109
- R as Submenu
108
+ G as Submenu
110
109
  };
@@ -14,6 +14,7 @@ declare const IrisMenu: React.ForwardRefExoticComponent<React.HTMLAttributes<HTM
14
14
  appearance?: import('./iris.types').IrisMenuAppearance;
15
15
  onAskInChat?: () => void;
16
16
  askInChatLabel?: string;
17
+ overflowTooltipContent?: React.ReactNode;
17
18
  } & React.RefAttributes<HTMLDivElement>>;
18
19
  declare const IrisInsight: React.ForwardRefExoticComponent<IrisInsightProps & React.RefAttributes<HTMLDivElement>>;
19
20
  export { IrisControlProvider, IrisControlRegion, } from './iris-control-region';
@@ -1,109 +1,110 @@
1
- import { jsx as t, jsxs as g } from "react/jsx-runtime";
1
+ import { jsx as t, jsxs as I } from "react/jsx-runtime";
2
2
  import * as x from "react";
3
- import { Alan as C } from "impact-nova-icons";
4
- import { Button as p } from "../button/button.js";
3
+ import { Alan as b } from "impact-nova-icons";
4
+ import { Button as w } from "../button/button.js";
5
5
  import { Popover as B, PopoverTrigger as z, PopoverContent as k } from "../../feedback/popover/popover.js";
6
6
  import { OverflowTooltip as A } from "../../feedback/tooltip/overflow-tooltip.js";
7
- import { createComponent as f } from "../../../lib/primitives/create-component.js";
7
+ import { createComponent as g } from "../../../lib/primitives/create-component.js";
8
8
  import { cn as l } from "../../../lib/utils.js";
9
- import { IrisAlanGradientIcon as I } from "./iris-alan-gradient-icon.js";
10
- import { irisButtonToButtonSize as V, irisButtonVariants as O, irisChromeWrapperVariants as P, irisIconChromeWrapperVariants as T, irisIconFilledButtonVariants as S, irisIconButtonToButtonSize as j, irisIconButtonVariants as y, irisMenuVariants as M } from "./iris.variants.js";
9
+ import { IrisAlanGradientIcon as v } from "./iris-alan-gradient-icon.js";
10
+ import { irisButtonToButtonSize as T, irisButtonVariants as V, irisChromeWrapperVariants as O, irisIconChromeWrapperVariants as P, irisIconFilledButtonVariants as y, irisIconButtonToButtonSize as S, irisIconButtonVariants as j, irisMenuVariants as M } from "./iris.variants.js";
11
11
  import { IrisControlProvider as _, IrisControlRegion as $ } from "./iris-control-region.js";
12
12
  import { IrisAgentCursor as ii } from "./iris-agent-cursor.js";
13
- import { useIrisControl as ni } from "./iris-control-context.js";
13
+ import { useIrisControl as oi } from "./iris-control-context.js";
14
14
  const G = {
15
15
  sm: 14,
16
16
  md: 16,
17
17
  lg: 16
18
- }, U = f(
18
+ }, U = g(
19
19
  "IrisButton",
20
20
  ({
21
- className: n,
21
+ className: o,
22
22
  size: i = "md",
23
- shape: o = "default",
23
+ shape: n = "default",
24
24
  children: e,
25
25
  type: s = "button",
26
26
  ...r
27
- }, a) => /* @__PURE__ */ t("span", { className: P({ shape: o }), children: /* @__PURE__ */ g(
28
- p,
27
+ }, a) => /* @__PURE__ */ t("span", { className: O({ shape: n }), children: /* @__PURE__ */ I(
28
+ w,
29
29
  {
30
30
  ref: a,
31
31
  type: s,
32
32
  variant: "ghost",
33
- size: V[i],
33
+ size: T[i],
34
34
  "data-component": "iris-button",
35
35
  "data-size": i,
36
- "data-shape": o,
37
- className: l(O({ size: i }), n),
36
+ "data-shape": n,
37
+ className: l(V({ size: i }), o),
38
38
  ...r,
39
39
  children: [
40
- /* @__PURE__ */ t(I, { size: G[i] }),
40
+ /* @__PURE__ */ t(v, { size: G[i] }),
41
41
  e ?? "Ask Iris"
42
42
  ]
43
43
  }
44
44
  ) })
45
- ), R = f(
45
+ ), R = g(
46
46
  "IrisIconButton",
47
47
  ({
48
- className: n,
48
+ className: o,
49
49
  appearance: i = "outline",
50
- size: o = "md",
50
+ size: n = "md",
51
51
  shape: e = "default",
52
52
  type: s = "button",
53
53
  "aria-label": r = "Ask Iris",
54
54
  ...a
55
- }, m) => {
56
- const c = T({ appearance: i, shape: e }), d = i === "filled" ? /* @__PURE__ */ t(C, { size: 16, className: "text-brand-foreground" }) : /* @__PURE__ */ t(I, { size: 16 });
57
- return i === "filled" ? /* @__PURE__ */ t("span", { className: c, children: /* @__PURE__ */ t(
55
+ }, d) => {
56
+ const m = P({ appearance: i, shape: e }), c = i === "filled" ? /* @__PURE__ */ t(b, { size: 16, className: "text-brand-foreground" }) : /* @__PURE__ */ t(v, { size: 16 });
57
+ return i === "filled" ? /* @__PURE__ */ t("span", { className: m, children: /* @__PURE__ */ t(
58
58
  "button",
59
59
  {
60
- ref: m,
60
+ ref: d,
61
61
  type: s,
62
62
  "data-component": "iris-icon-button",
63
63
  "data-appearance": i,
64
- "data-size": o,
64
+ "data-size": n,
65
65
  "data-shape": e,
66
66
  "aria-label": r,
67
- className: l(S({ size: o }), n),
67
+ className: l(y({ size: n }), o),
68
68
  ...a,
69
- children: d
69
+ children: c
70
70
  }
71
- ) }) : /* @__PURE__ */ t("span", { className: c, children: /* @__PURE__ */ t(
72
- p,
71
+ ) }) : /* @__PURE__ */ t("span", { className: m, children: /* @__PURE__ */ t(
72
+ w,
73
73
  {
74
- ref: m,
74
+ ref: d,
75
75
  type: s,
76
76
  variant: "ghost",
77
- size: j[o],
77
+ size: S[n],
78
78
  "data-component": "iris-icon-button",
79
79
  "data-appearance": i,
80
- "data-size": o,
80
+ "data-size": n,
81
81
  "data-shape": e,
82
82
  "aria-label": r,
83
- className: l(y({ size: o }), n),
83
+ className: l(j({ size: n }), o),
84
84
  ...a,
85
- children: d
85
+ children: c
86
86
  }
87
87
  ) });
88
88
  }
89
- ), N = f(
89
+ ), C = g(
90
90
  "IrisMenu",
91
91
  ({
92
- className: n,
92
+ className: o,
93
93
  appearance: i = "loading",
94
- children: o,
94
+ children: n,
95
95
  onAskInChat: e,
96
96
  askInChatLabel: s = "Ask in chat",
97
- ...r
98
- }, a) => {
99
- const m = i === "loading" || i === "status", c = i === "card", d = /* @__PURE__ */ g(
97
+ overflowTooltipContent: r,
98
+ ...a
99
+ }, d) => {
100
+ const m = i === "loading" || i === "status", c = i === "card", f = r ?? (typeof n == "string" ? n : void 0), u = /* @__PURE__ */ I(
100
101
  "div",
101
102
  {
102
- ref: a,
103
+ ref: d,
103
104
  "data-component": "iris-menu",
104
105
  "data-appearance": i,
105
- className: l(M({ appearance: i }), n),
106
- ...r,
106
+ className: l(M({ appearance: i }), o),
107
+ ...a,
107
108
  children: [
108
109
  m && /* @__PURE__ */ t(
109
110
  "span",
@@ -112,7 +113,7 @@ const G = {
112
113
  "inline-flex shrink-0 items-center justify-center",
113
114
  i === "status" ? "size-4" : "size-6"
114
115
  ),
115
- children: /* @__PURE__ */ t(I, { size: i === "status" ? 16 : 20 })
116
+ children: /* @__PURE__ */ t(v, { size: i === "status" ? 16 : 20 })
116
117
  }
117
118
  ),
118
119
  /* @__PURE__ */ t(
@@ -133,12 +134,13 @@ const G = {
133
134
  variant: "secondary",
134
135
  side: "top",
135
136
  sideOffset: 10,
136
- children: o
137
+ content: f,
138
+ children: n
137
139
  }
138
- ) : o
140
+ ) : n
139
141
  }
140
142
  ),
141
- c && e && /* @__PURE__ */ t(p, { variant: "outline", size: "sm", className: "max-h-7 capitalize", onClick: e, children: s })
143
+ c && e && /* @__PURE__ */ t(w, { variant: "outline", size: "sm", className: "max-h-7 capitalize", onClick: e, children: s })
142
144
  ]
143
145
  }
144
146
  );
@@ -149,66 +151,66 @@ const G = {
149
151
  "iris-edge-wash-shell iris-edge-wash-shell--menu rounded-xl motion-reduce:animate-none",
150
152
  i === "status" && "iris-edge-wash-shell--fluid iris-edge-wash-shell--menu-plain"
151
153
  ),
152
- children: d
154
+ children: u
153
155
  }
154
- ) : d;
156
+ ) : u;
155
157
  }
156
- ), X = f(
158
+ ), X = g(
157
159
  "IrisInsight",
158
160
  ({
159
- status: n = "idle",
161
+ status: o = "idle",
160
162
  iconSize: i = "md",
161
- iconAppearance: o = "outline",
163
+ iconAppearance: n = "outline",
162
164
  loadingLabel: e = "Gathering insights...",
163
165
  onTriggerClick: s,
164
166
  onAskInChat: r,
165
167
  askInChatLabel: a,
166
- className: m,
167
- children: c
168
- }, d) => {
169
- const [w, v] = x.useState(!1), u = n === "loading" || n === "ready", b = n === "loading";
168
+ className: d,
169
+ children: m
170
+ }, c) => {
171
+ const [f, u] = x.useState(!1), h = o === "loading" || o === "ready", N = o === "loading";
170
172
  return x.useEffect(() => {
171
- n === "loading" && v(!0);
172
- }, [n]), /* @__PURE__ */ t(
173
+ o === "loading" && u(!0);
174
+ }, [o]), /* @__PURE__ */ t(
173
175
  "div",
174
176
  {
175
- ref: d,
177
+ ref: c,
176
178
  "data-component": "iris",
177
- "data-status": n,
178
- className: l("relative inline-flex items-start", m),
179
- children: /* @__PURE__ */ g(
179
+ "data-status": o,
180
+ className: l("relative inline-flex items-start", d),
181
+ children: /* @__PURE__ */ I(
180
182
  B,
181
183
  {
182
- open: u ? w : !1,
183
- onOpenChange: (h) => {
184
- u && v(h);
184
+ open: h ? f : !1,
185
+ onOpenChange: (p) => {
186
+ h && u(p);
185
187
  },
186
188
  children: [
187
189
  /* @__PURE__ */ t(z, { asChild: !0, children: /* @__PURE__ */ t(
188
190
  R,
189
191
  {
190
192
  size: i,
191
- appearance: b ? "filled" : o,
192
- "aria-expanded": w && u,
193
- onClick: (h) => {
194
- n === "idle" && (s?.(), h.preventDefault());
193
+ appearance: N ? "filled" : n,
194
+ "aria-expanded": f && h,
195
+ onClick: (p) => {
196
+ o === "idle" && (s?.(), p.preventDefault());
195
197
  }
196
198
  }
197
199
  ) }),
198
- u && /* @__PURE__ */ t(
200
+ h && /* @__PURE__ */ t(
199
201
  k,
200
202
  {
201
203
  align: "end",
202
204
  side: "bottom",
203
205
  sideOffset: 7,
204
206
  className: "w-auto border-0 bg-transparent p-0 shadow-none motion-reduce:animate-none",
205
- children: n === "loading" ? /* @__PURE__ */ t(N, { appearance: "loading", children: e }) : /* @__PURE__ */ t(
206
- N,
207
+ children: o === "loading" ? /* @__PURE__ */ t(C, { appearance: "loading", children: e }) : /* @__PURE__ */ t(
208
+ C,
207
209
  {
208
210
  appearance: "card",
209
211
  onAskInChat: r,
210
212
  askInChatLabel: a,
211
- children: c
213
+ children: m
212
214
  }
213
215
  )
214
216
  }
@@ -227,6 +229,6 @@ export {
227
229
  $ as IrisControlRegion,
228
230
  R as IrisIconButton,
229
231
  X as IrisInsight,
230
- N as IrisMenu,
231
- ni as useIrisControl
232
+ C as IrisMenu,
233
+ oi as useIrisControl
232
234
  };
@@ -19,6 +19,8 @@ export type IrisMenuProps = React.HTMLAttributes<HTMLDivElement> & {
19
19
  appearance?: IrisMenuAppearance;
20
20
  onAskInChat?: () => void;
21
21
  askInChatLabel?: string;
22
+ /** Tooltip body when `children` is not a plain string (e.g. formatted insight copy). */
23
+ overflowTooltipContent?: React.ReactNode;
22
24
  };
23
25
  export type IrisInsightStatus = "idle" | "loading" | "ready";
24
26
  export type IrisInsightProps = {
@@ -72,11 +72,16 @@ function _(e) {
72
72
  disabled: e.disabled,
73
73
  "aria-label": d(e.option),
74
74
  className: S(
75
- "w-full min-w-0",
76
- !r && "items-center justify-start gap-3 rounded-none border-0 bg-transparent p-0 shadow-none hover:border-0 data-[selected]:border-0 data-[selected]:bg-transparent data-[selected]:shadow-none"
75
+ "w-full min-w-0 items-center",
76
+ !r && "justify-start gap-3 rounded-none border-0 bg-transparent p-0 shadow-none hover:border-0 data-[selected]:border-0 data-[selected]:bg-transparent data-[selected]:shadow-none"
77
77
  ),
78
78
  children: [
79
- /* @__PURE__ */ i(q, { className: r ? "order-last" : "order-first" }),
79
+ /* @__PURE__ */ i(
80
+ q,
81
+ {
82
+ className: r ? "order-last self-center" : "order-first self-center"
83
+ }
84
+ ),
80
85
  /* @__PURE__ */ i(z, { className: "min-w-0", children: /* @__PURE__ */ i(D, { className: "whitespace-normal normal-case", children: d(e.option) }) })
81
86
  ]
82
87
  }