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

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.
Files changed (47) hide show
  1. package/dist/components/data/ag-grid-react/cell-renderers/editors/list-select-cell-editor.js +56 -42
  2. package/dist/components/data/ag-grid-react/cell-renderers/editors/select-cell-editor.js +48 -45
  3. package/dist/components/data/ag-grid-react/cell-renderers/list-select-display-renderer.js +31 -33
  4. package/dist/components/data/ag-grid-react/cell-renderers/select-display-renderer.js +18 -17
  5. package/dist/components/data/ag-grid-react/editable-utils.d.ts +9 -1
  6. package/dist/components/data/ag-grid-react/editable-utils.js +46 -41
  7. package/dist/components/data/expandable-list-item/expandable-list-item-attributes.js +3 -2
  8. package/dist/components/data/expandable-list-item/expandable-list-item-metrics.js +3 -2
  9. package/dist/components/data/expandable-list-item/sku-picker-chrome.d.ts +2 -1
  10. package/dist/components/data/expandable-list-item/sku-picker-chrome.js +51 -40
  11. package/dist/components/data/expandable-list-item/useServerSkuInfinitePages.d.ts +2 -1
  12. package/dist/components/data/expandable-list-item/virtualized-responsive-grid.catalog.d.ts +5 -4
  13. package/dist/components/data-display/chart/chart-scatter3d.d.ts +39 -0
  14. package/dist/components/data-display/chart/chart-scatter3d.js +180 -0
  15. package/dist/components/data-display/chart/chart.js +125 -112
  16. package/dist/components/data-display/chart/chart.utils.js +122 -92
  17. package/dist/components/feedback/tooltip/button-icon-tooltip.d.ts +4 -1
  18. package/dist/components/feedback/tooltip/button-icon-tooltip.js +14 -12
  19. package/dist/components/feedback/tooltip/tab-tooltip-render.js +3 -2
  20. package/dist/components/feedback/tooltip/use-overflow-tooltip.js +44 -36
  21. package/dist/components/flows/command-palette/shortcut-settings.js +10 -10
  22. package/dist/components/flows/filter-panel/filter-panel.js +4 -4
  23. package/dist/components/flows/iris-chat/iris-chat-menu.js +100 -73
  24. package/dist/components/forms/choice-card/choice-card-percent.js +68 -50
  25. package/dist/components/forms/choice-card/choice-card.js +23 -23
  26. package/dist/components/forms/select/components/SelectMenuPanel.js +15 -15
  27. package/dist/components/forms/select/components/SelectTriggerValue.js +3 -2
  28. package/dist/components/forms/select/components/Submenu.js +3 -2
  29. package/dist/components/layout/horizontal-scroller/horizontal-scroller-mask.d.ts +3 -0
  30. package/dist/components/layout/horizontal-scroller/horizontal-scroller-mask.js +12 -0
  31. package/dist/components/layout/horizontal-scroller/horizontal-scroller.js +181 -125
  32. package/dist/components/layout/horizontal-scroller/horizontal-scroller.types.d.ts +2 -0
  33. package/dist/components/layout/horizontal-scroller/scroll-overflow-affordance.d.ts +3 -1
  34. package/dist/components/layout/horizontal-scroller/scroll-overflow-affordance.js +77 -67
  35. package/dist/components/primitives/iris/iris-insight-truncated-text.d.ts +3 -0
  36. package/dist/components/primitives/iris/iris-insight-truncated-text.js +33 -0
  37. package/dist/components/primitives/iris/iris.d.ts +2 -1
  38. package/dist/components/primitives/iris/iris.js +57 -67
  39. package/dist/components/primitives/iris/iris.types.d.ts +7 -0
  40. package/dist/components/primitives/stepper/internals/stepper-summary.js +5 -5
  41. package/dist/form-react/Fields/VirtualizedListField.js +69 -64
  42. package/dist/impact-nova-components.css +35 -8
  43. package/dist/impact-nova.css +1 -1
  44. package/dist/lib/alphabetical-sort.js +13 -0
  45. package/dist/llms/rules/installation.js +1 -1
  46. package/dist/llms/rules/requirements.js +1 -1
  47. package/package.json +2 -2
@@ -1,118 +1,128 @@
1
- import { jsxs as N, jsx as t } from "react/jsx-runtime";
1
+ import { jsxs as I, jsx as r } from "react/jsx-runtime";
2
2
  import "react";
3
- import { ChevronRight as D } from "impact-nova-icons";
4
- import { Button as A } from "../../primitives/button/button.js";
3
+ import { ChevronRight as R } from "impact-nova-icons";
4
+ import { Button as D } from "../../primitives/button/button.js";
5
5
  import { useImpactNovaI18n as L } from "../../../i18n/use-impact-nova-i18n.js";
6
- import { cn as r } from "../../../lib/utils.js";
7
- import { useHorizontalScrollOverflow as R } from "./use-horizontal-scroll-overflow.js";
8
- const s = 48;
9
- function $(a, o) {
10
- if (!(!a && !o))
11
- return a && o ? `linear-gradient(to right, transparent, black ${s}px, black calc(100% - ${s}px), transparent)` : o ? `linear-gradient(to right, black, black calc(100% - ${s}px), transparent 100%)` : `linear-gradient(to right, transparent, black ${s}px, black)`;
12
- }
13
- const u = "pointer-events-none absolute top-0 z-10 h-full w-14";
6
+ import { cn as o } from "../../../lib/utils.js";
7
+ import { horizontalScrollerEdgeFadeClassName as v, buildHorizontalScrollerMaskImage as C } from "./horizontal-scroller-mask.js";
8
+ import { useHorizontalScrollOverflow as A } from "./use-horizontal-scroll-overflow.js";
14
9
  function F({
15
- children: a,
16
- scrollStep: o,
17
- contentDependency: p,
18
- hideScrollbar: i = !0,
10
+ children: m,
11
+ scrollStep: h,
12
+ contentDependency: u,
13
+ hideScrollbar: l = !0,
19
14
  viewportClassName: g,
20
- viewportDataComponent: h = "scroll-overflow-affordance-viewport",
21
- className: b,
22
- ...w
15
+ viewportDataComponent: b = "scroll-overflow-affordance-viewport",
16
+ controlSize: p = "compact",
17
+ className: w,
18
+ ...x
23
19
  }) {
24
- const { t: c } = L(), {
25
- scrollRef: k,
26
- canScrollLeft: n,
27
- canScrollRight: l,
28
- scrollLeft: f,
29
- scrollRight: d
30
- } = R({ scrollStep: o, contentDependency: p }), v = $(n, l), x = (e) => {
31
- if (e.key === "ArrowLeft" && n) {
32
- e.preventDefault(), f();
20
+ const { t: s } = L(), {
21
+ scrollRef: y,
22
+ canScrollLeft: t,
23
+ canScrollRight: a,
24
+ scrollLeft: i,
25
+ scrollRight: c
26
+ } = A({ scrollStep: h, contentDependency: u }), f = C(
27
+ t,
28
+ a
29
+ ), k = (e) => {
30
+ if (e.key === "ArrowLeft" && t) {
31
+ e.preventDefault(), i();
33
32
  return;
34
33
  }
35
- e.key === "ArrowRight" && l && (e.preventDefault(), d());
36
- }, m = (e, y, z) => {
37
- if (z) return null;
38
- const I = c(e === "left" ? "horizontalScroller.scrollLeft" : "horizontalScroller.scrollRight");
39
- return /* @__PURE__ */ t(
40
- A,
34
+ e.key === "ArrowRight" && a && (e.preventDefault(), c());
35
+ }, d = (e, z, N) => {
36
+ if (N) return null;
37
+ const S = s(e === "left" ? "horizontalScroller.scrollLeft" : "horizontalScroller.scrollRight"), n = p === "default";
38
+ return /* @__PURE__ */ r(
39
+ D,
41
40
  {
42
41
  variant: "ghost",
43
- size: "iconSm",
44
- className: r(
45
- "absolute top-1/2 z-20 !size-5 !min-h-5 !min-w-5 -translate-y-1/2 rounded-full border border-stroke-hairline p-0",
46
- "bg-canvas-elevated/95 text-content-secondary shadow-sm",
47
- "hover:bg-canvas-muted hover:text-content",
48
- "[&_svg]:!size-3",
49
- e === "left" ? "left-0.5" : "right-0.5"
42
+ size: n ? "icon" : "iconSm",
43
+ className: o(
44
+ "absolute top-1/2 z-20 -translate-y-1/2",
45
+ n ? o(
46
+ "h-8 w-8 shrink-0 rounded-md border border-solid border-border-subtle",
47
+ "bg-canvas-elevated text-content-tertiary shadow-sm",
48
+ "hover:bg-canvas-elevated hover:text-brand",
49
+ e === "left" ? "left-1" : "right-1"
50
+ ) : o(
51
+ "!size-5 !min-h-5 !min-w-5 rounded-full border border-stroke-hairline p-0",
52
+ "bg-canvas-elevated/95 text-content-secondary shadow-sm",
53
+ "hover:bg-canvas-muted hover:text-content",
54
+ "[&_svg]:!size-3",
55
+ e === "left" ? "left-0.5" : "right-0.5"
56
+ )
50
57
  ),
51
- onClick: y,
52
- "aria-label": I,
58
+ onClick: z,
59
+ "aria-label": S,
53
60
  "data-component": e === "left" ? "scroll-overflow-affordance-prev" : "scroll-overflow-affordance-next",
54
61
  tabIndex: -1,
55
- children: /* @__PURE__ */ t(
56
- D,
62
+ children: /* @__PURE__ */ r(
63
+ R,
57
64
  {
58
- className: r(e === "left" && "rotate-180")
65
+ className: o(
66
+ n ? "h-4 w-4" : void 0,
67
+ e === "left" && "rotate-180"
68
+ )
59
69
  }
60
70
  )
61
71
  }
62
72
  );
63
73
  };
64
- return /* @__PURE__ */ N(
74
+ return /* @__PURE__ */ I(
65
75
  "div",
66
76
  {
67
- className: r("relative min-w-0", b),
77
+ className: o("relative min-w-0", w),
68
78
  "data-component": "scroll-overflow-affordance",
69
- ...w,
79
+ ...x,
70
80
  children: [
71
- n ? /* @__PURE__ */ t(
81
+ t ? /* @__PURE__ */ r(
72
82
  "div",
73
83
  {
74
84
  "aria-hidden": !0,
75
85
  "data-component": "scroll-overflow-affordance-fade-left",
76
- className: r(
77
- u,
86
+ className: o(
87
+ v,
78
88
  "left-0 bg-gradient-to-r from-canvas-elevated from-10% via-canvas-elevated/90 via-50% to-transparent"
79
89
  )
80
90
  }
81
91
  ) : null,
82
- l ? /* @__PURE__ */ t(
92
+ a ? /* @__PURE__ */ r(
83
93
  "div",
84
94
  {
85
95
  "aria-hidden": !0,
86
96
  "data-component": "scroll-overflow-affordance-fade-right",
87
- className: r(
88
- u,
97
+ className: o(
98
+ v,
89
99
  "right-0 bg-gradient-to-l from-canvas-elevated from-10% via-canvas-elevated/90 via-50% to-transparent"
90
100
  )
91
101
  }
92
102
  ) : null,
93
- m("left", f, !n),
94
- m("right", d, !l),
95
- /* @__PURE__ */ t(
103
+ d("left", i, !t),
104
+ d("right", c, !a),
105
+ /* @__PURE__ */ r(
96
106
  "div",
97
107
  {
98
- ref: k,
108
+ ref: y,
99
109
  tabIndex: 0,
100
- onKeyDown: x,
101
- className: r(
110
+ onKeyDown: k,
111
+ className: o(
102
112
  "overflow-x-auto overflow-y-hidden overscroll-x-contain scroll-smooth outline-none",
103
113
  "[-webkit-overflow-scrolling:touch]",
104
114
  "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1",
105
- i && "scrollbar-hide",
115
+ l && "scrollbar-hide",
106
116
  g
107
117
  ),
108
118
  style: {
109
- scrollbarWidth: i ? "none" : "auto",
110
- msOverflowStyle: i ? "none" : "auto",
111
- WebkitMaskImage: v,
112
- maskImage: v
119
+ scrollbarWidth: l ? "none" : "auto",
120
+ msOverflowStyle: l ? "none" : "auto",
121
+ WebkitMaskImage: f,
122
+ maskImage: f
113
123
  },
114
- "data-component": h,
115
- children: a
124
+ "data-component": b,
125
+ children: m
116
126
  }
117
127
  )
118
128
  ]
@@ -0,0 +1,3 @@
1
+ import { IrisInsightTruncatedTextProps } from './iris.types';
2
+ /** Default truncated Iris insight label + overflow tooltip (white fill, iris ring). */
3
+ export declare function IrisInsightTruncatedText({ children, overflowTooltipContent, className, triggerClassName, as, }: IrisInsightTruncatedTextProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,33 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import { OverflowTooltip as a } from "../../feedback/tooltip/overflow-tooltip.js";
3
+ import { cn as p } from "../../../lib/utils.js";
4
+ function c({
5
+ children: t,
6
+ overflowTooltipContent: o,
7
+ className: n,
8
+ triggerClassName: e,
9
+ as: r = "span"
10
+ }) {
11
+ const s = o ?? (typeof t == "string" ? t : void 0);
12
+ return /* @__PURE__ */ i(
13
+ a,
14
+ {
15
+ as: r,
16
+ triggerClassName: p(
17
+ "block w-full min-w-0 truncate whitespace-nowrap normal-case",
18
+ e
19
+ ),
20
+ contentClassName: "iris-menu-overflow-tooltip",
21
+ variant: "secondary",
22
+ side: "top",
23
+ align: "end",
24
+ sideOffset: 8,
25
+ content: s,
26
+ className: n,
27
+ children: t
28
+ }
29
+ );
30
+ }
31
+ export {
32
+ c as IrisInsightTruncatedText
33
+ };
@@ -20,6 +20,7 @@ declare const IrisInsight: React.ForwardRefExoticComponent<IrisInsightProps & Re
20
20
  export { IrisControlProvider, IrisControlRegion, } from './iris-control-region';
21
21
  export { IrisAgentCursor } from './iris-agent-cursor';
22
22
  export { useIrisControl } from './iris-control-context';
23
+ export { IrisInsightTruncatedText } from './iris-insight-truncated-text';
23
24
  export { IrisButton, IrisIconButton, IrisMenu, IrisInsight };
24
- export type { IrisButtonProps, IrisIconButtonProps, IrisMenuProps, IrisInsightProps, } from './iris.types';
25
+ export type { IrisButtonProps, IrisIconButtonProps, IrisMenuProps, IrisInsightProps, IrisInsightTruncatedTextProps, } from './iris.types';
25
26
  export type { IrisControlProviderProps, IrisControlRegionProps, IrisControlGlowPhase, IrisControlRegionVariant, } from './iris-control.types';
@@ -1,16 +1,16 @@
1
- import { jsx as t, jsxs as I } from "react/jsx-runtime";
1
+ import { jsx as t, jsxs as p } from "react/jsx-runtime";
2
2
  import * as x from "react";
3
- import { Alan as b } from "impact-nova-icons";
3
+ import { Alan as N } from "impact-nova-icons";
4
4
  import { Button as w } from "../button/button.js";
5
- import { Popover as B, PopoverTrigger as z, PopoverContent as k } from "../../feedback/popover/popover.js";
6
- import { OverflowTooltip as A } from "../../feedback/tooltip/overflow-tooltip.js";
5
+ import { Popover as B, PopoverTrigger as z, PopoverContent as T } from "../../feedback/popover/popover.js";
6
+ import { IrisInsightTruncatedText as A } from "./iris-insight-truncated-text.js";
7
7
  import { createComponent as g } from "../../../lib/primitives/create-component.js";
8
8
  import { cn as l } from "../../../lib/utils.js";
9
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";
10
+ import { irisButtonToButtonSize as V, irisButtonVariants as k, irisChromeWrapperVariants as P, irisIconChromeWrapperVariants as S, irisIconFilledButtonVariants as j, irisIconButtonToButtonSize as y, irisIconButtonVariants as M, irisMenuVariants as O } 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 oi } from "./iris-control-context.js";
13
+ import { useIrisControl as ni } from "./iris-control-context.js";
14
14
  const G = {
15
15
  sm: 14,
16
16
  md: 16,
@@ -18,53 +18,53 @@ const G = {
18
18
  }, U = g(
19
19
  "IrisButton",
20
20
  ({
21
- className: o,
21
+ className: n,
22
22
  size: i = "md",
23
- shape: n = "default",
24
- children: e,
25
- type: s = "button",
23
+ shape: o = "default",
24
+ children: s,
25
+ type: e = "button",
26
26
  ...r
27
- }, a) => /* @__PURE__ */ t("span", { className: O({ shape: n }), children: /* @__PURE__ */ I(
27
+ }, a) => /* @__PURE__ */ t("span", { className: P({ shape: o }), children: /* @__PURE__ */ p(
28
28
  w,
29
29
  {
30
30
  ref: a,
31
- type: s,
31
+ type: e,
32
32
  variant: "ghost",
33
- size: T[i],
33
+ size: V[i],
34
34
  "data-component": "iris-button",
35
35
  "data-size": i,
36
- "data-shape": n,
37
- className: l(V({ size: i }), o),
36
+ "data-shape": o,
37
+ className: l(k({ size: i }), n),
38
38
  ...r,
39
39
  children: [
40
40
  /* @__PURE__ */ t(v, { size: G[i] }),
41
- e ?? "Ask Iris"
41
+ s ?? "Ask Iris"
42
42
  ]
43
43
  }
44
44
  ) })
45
45
  ), R = g(
46
46
  "IrisIconButton",
47
47
  ({
48
- className: o,
48
+ className: n,
49
49
  appearance: i = "outline",
50
- size: n = "md",
51
- shape: e = "default",
52
- type: s = "button",
50
+ size: o = "md",
51
+ shape: s = "default",
52
+ type: e = "button",
53
53
  "aria-label": r = "Ask Iris",
54
54
  ...a
55
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 });
56
+ const m = S({ appearance: i, shape: s }), c = i === "filled" ? /* @__PURE__ */ t(N, { size: 16, className: "text-brand-foreground" }) : /* @__PURE__ */ t(v, { size: 16 });
57
57
  return i === "filled" ? /* @__PURE__ */ t("span", { className: m, children: /* @__PURE__ */ t(
58
58
  "button",
59
59
  {
60
60
  ref: d,
61
- type: s,
61
+ type: e,
62
62
  "data-component": "iris-icon-button",
63
63
  "data-appearance": i,
64
- "data-size": n,
65
- "data-shape": e,
64
+ "data-size": o,
65
+ "data-shape": s,
66
66
  "aria-label": r,
67
- className: l(y({ size: n }), o),
67
+ className: l(j({ size: o }), n),
68
68
  ...a,
69
69
  children: c
70
70
  }
@@ -72,15 +72,15 @@ const G = {
72
72
  w,
73
73
  {
74
74
  ref: d,
75
- type: s,
75
+ type: e,
76
76
  variant: "ghost",
77
- size: S[n],
77
+ size: y[o],
78
78
  "data-component": "iris-icon-button",
79
79
  "data-appearance": i,
80
- "data-size": n,
81
- "data-shape": e,
80
+ "data-size": o,
81
+ "data-shape": s,
82
82
  "aria-label": r,
83
- className: l(j({ size: n }), o),
83
+ className: l(M({ size: o }), n),
84
84
  ...a,
85
85
  children: c
86
86
  }
@@ -89,21 +89,21 @@ const G = {
89
89
  ), C = g(
90
90
  "IrisMenu",
91
91
  ({
92
- className: o,
92
+ className: n,
93
93
  appearance: i = "loading",
94
- children: n,
95
- onAskInChat: e,
96
- askInChatLabel: s = "Ask in chat",
94
+ children: o,
95
+ onAskInChat: s,
96
+ askInChatLabel: e = "Ask in chat",
97
97
  overflowTooltipContent: r,
98
98
  ...a
99
99
  }, d) => {
100
- const m = i === "loading" || i === "status", c = i === "card", f = r ?? (typeof n == "string" ? n : void 0), u = /* @__PURE__ */ I(
100
+ const m = i === "loading" || i === "status", c = i === "card", f = r ?? (typeof o == "string" ? o : void 0), u = /* @__PURE__ */ p(
101
101
  "div",
102
102
  {
103
103
  ref: d,
104
104
  "data-component": "iris-menu",
105
105
  "data-appearance": i,
106
- className: l(M({ appearance: i }), o),
106
+ className: l(O({ appearance: i }), n),
107
107
  ...a,
108
108
  children: [
109
109
  m && /* @__PURE__ */ t(
@@ -126,21 +126,10 @@ const G = {
126
126
  i === "status" && "min-w-0 flex-1 overflow-hidden",
127
127
  i === "loading" && "whitespace-nowrap"
128
128
  ),
129
- children: i === "status" ? /* @__PURE__ */ t(
130
- A,
131
- {
132
- triggerClassName: "block w-full min-w-0 truncate whitespace-nowrap normal-case",
133
- contentClassName: "iris-menu-overflow-tooltip",
134
- variant: "secondary",
135
- side: "top",
136
- sideOffset: 10,
137
- content: f,
138
- children: n
139
- }
140
- ) : n
129
+ children: i === "status" ? /* @__PURE__ */ t(A, { overflowTooltipContent: f, children: o }) : o
141
130
  }
142
131
  ),
143
- c && e && /* @__PURE__ */ t(w, { variant: "outline", size: "sm", className: "max-h-7 capitalize", onClick: e, children: s })
132
+ c && s && /* @__PURE__ */ t(w, { variant: "outline", size: "sm", className: "max-h-7 capitalize", onClick: s, children: e })
144
133
  ]
145
134
  }
146
135
  );
@@ -149,7 +138,7 @@ const G = {
149
138
  {
150
139
  className: l(
151
140
  "iris-edge-wash-shell iris-edge-wash-shell--menu rounded-xl motion-reduce:animate-none",
152
- i === "status" && "iris-edge-wash-shell--fluid iris-edge-wash-shell--menu-plain"
141
+ i === "status" && "iris-edge-wash-shell--fluid iris-edge-wash-shell--menu-plain w-full min-w-0"
153
142
  ),
154
143
  children: u
155
144
  }
@@ -158,53 +147,53 @@ const G = {
158
147
  ), X = g(
159
148
  "IrisInsight",
160
149
  ({
161
- status: o = "idle",
150
+ status: n = "idle",
162
151
  iconSize: i = "md",
163
- iconAppearance: n = "outline",
164
- loadingLabel: e = "Gathering insights...",
165
- onTriggerClick: s,
152
+ iconAppearance: o = "outline",
153
+ loadingLabel: s = "Gathering insights...",
154
+ onTriggerClick: e,
166
155
  onAskInChat: r,
167
156
  askInChatLabel: a,
168
157
  className: d,
169
158
  children: m
170
159
  }, c) => {
171
- const [f, u] = x.useState(!1), h = o === "loading" || o === "ready", N = o === "loading";
160
+ const [f, u] = x.useState(!1), h = n === "loading" || n === "ready", b = n === "loading";
172
161
  return x.useEffect(() => {
173
- o === "loading" && u(!0);
174
- }, [o]), /* @__PURE__ */ t(
162
+ n === "loading" && u(!0);
163
+ }, [n]), /* @__PURE__ */ t(
175
164
  "div",
176
165
  {
177
166
  ref: c,
178
167
  "data-component": "iris",
179
- "data-status": o,
168
+ "data-status": n,
180
169
  className: l("relative inline-flex items-start", d),
181
- children: /* @__PURE__ */ I(
170
+ children: /* @__PURE__ */ p(
182
171
  B,
183
172
  {
184
173
  open: h ? f : !1,
185
- onOpenChange: (p) => {
186
- h && u(p);
174
+ onOpenChange: (I) => {
175
+ h && u(I);
187
176
  },
188
177
  children: [
189
178
  /* @__PURE__ */ t(z, { asChild: !0, children: /* @__PURE__ */ t(
190
179
  R,
191
180
  {
192
181
  size: i,
193
- appearance: N ? "filled" : n,
182
+ appearance: b ? "filled" : o,
194
183
  "aria-expanded": f && h,
195
- onClick: (p) => {
196
- o === "idle" && (s?.(), p.preventDefault());
184
+ onClick: (I) => {
185
+ n === "idle" && (e?.(), I.preventDefault());
197
186
  }
198
187
  }
199
188
  ) }),
200
189
  h && /* @__PURE__ */ t(
201
- k,
190
+ T,
202
191
  {
203
192
  align: "end",
204
193
  side: "bottom",
205
194
  sideOffset: 7,
206
195
  className: "w-auto border-0 bg-transparent p-0 shadow-none motion-reduce:animate-none",
207
- children: o === "loading" ? /* @__PURE__ */ t(C, { appearance: "loading", children: e }) : /* @__PURE__ */ t(
196
+ children: n === "loading" ? /* @__PURE__ */ t(C, { appearance: "loading", children: s }) : /* @__PURE__ */ t(
208
197
  C,
209
198
  {
210
199
  appearance: "card",
@@ -229,6 +218,7 @@ export {
229
218
  $ as IrisControlRegion,
230
219
  R as IrisIconButton,
231
220
  X as IrisInsight,
221
+ A as IrisInsightTruncatedText,
232
222
  C as IrisMenu,
233
- oi as useIrisControl
223
+ ni as useIrisControl
234
224
  };
@@ -22,6 +22,13 @@ export type IrisMenuProps = React.HTMLAttributes<HTMLDivElement> & {
22
22
  /** Tooltip body when `children` is not a plain string (e.g. formatted insight copy). */
23
23
  overflowTooltipContent?: React.ReactNode;
24
24
  };
25
+ export type IrisInsightTruncatedTextProps = {
26
+ children: React.ReactNode;
27
+ overflowTooltipContent?: React.ReactNode;
28
+ className?: string;
29
+ triggerClassName?: string;
30
+ as?: "span" | "p" | "div";
31
+ };
25
32
  export type IrisInsightStatus = "idle" | "loading" | "ready";
26
33
  export type IrisInsightProps = {
27
34
  status?: IrisInsightStatus;
@@ -14,12 +14,12 @@ const V = p.forwardRef(
14
14
  onStepClick: m,
15
15
  stepAriaLabel: f,
16
16
  ...h
17
- }, b) => {
18
- const x = o.length, c = !!m;
17
+ }, x) => {
18
+ const b = o.length, c = !!m;
19
19
  return /* @__PURE__ */ e(
20
20
  "div",
21
21
  {
22
- ref: b,
22
+ ref: x,
23
23
  className: i(S({ variant: "summary" }), d),
24
24
  "data-orientation": "horizontal",
25
25
  "data-variant": "summary",
@@ -36,7 +36,7 @@ const V = p.forwardRef(
36
36
  status: a,
37
37
  disabled: t.disabled,
38
38
  interactive: c,
39
- ariaLabel: f(s, x),
39
+ ariaLabel: f(s, b),
40
40
  isActive: r,
41
41
  onStepClick: m,
42
42
  className: i(
@@ -87,7 +87,7 @@ const V = p.forwardRef(
87
87
  alt: "",
88
88
  "aria-hidden": !0,
89
89
  "data-summary-connector": "",
90
- className: "relative z-[1] -rotate-90 bg-canvas"
90
+ className: "relative z-[1] -rotate-90"
91
91
  }
92
92
  ) : null
93
93
  ] }) : null