@stll/ui 0.45.0 → 0.46.0

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 (42) hide show
  1. package/README.md +2 -1
  2. package/dist/components/ai-label.d.ts +33 -0
  3. package/dist/components/ai-label.js +42 -0
  4. package/dist/components/alert-dialog.js +3 -2
  5. package/dist/components/animated-count.d.ts +13 -0
  6. package/dist/components/animated-count.js +63 -0
  7. package/dist/components/application-rail.js +1 -1
  8. package/dist/components/brand-icons.d.ts +1 -0
  9. package/dist/components/brand-icons.js +8 -1
  10. package/dist/components/button.d.ts +2 -2
  11. package/dist/components/button.js +12 -2
  12. package/dist/components/command.js +1 -1
  13. package/dist/components/dialog.js +3 -2
  14. package/dist/components/document-identity-badge.d.ts +1 -1
  15. package/dist/components/input-group.d.ts +1 -1
  16. package/dist/components/input-otp.js +1 -1
  17. package/dist/components/landing.js +1 -1
  18. package/dist/components/list.d.ts +8 -2
  19. package/dist/components/list.js +10 -4
  20. package/dist/components/menu.js +1 -1
  21. package/dist/components/popover.js +1 -1
  22. package/dist/components/select.js +1 -1
  23. package/dist/components/sheet.js +19 -2
  24. package/dist/components/sidebar.js +8 -8
  25. package/dist/components/status-mark.d.ts +17 -0
  26. package/dist/components/status-mark.js +74 -0
  27. package/dist/components/swap-text.d.ts +16 -0
  28. package/dist/components/swap-text.js +52 -0
  29. package/dist/components/table-chart.d.ts +20 -0
  30. package/dist/components/table-chart.js +274 -0
  31. package/dist/components/tabs.js +1 -1
  32. package/dist/components/toast.js +3 -2
  33. package/dist/components/workspace-shell.js +5 -4
  34. package/dist/icons.js +1 -2
  35. package/dist/index.d.ts +2 -2
  36. package/dist/index.js +2 -2
  37. package/dist/inspector/dock.js +1 -1
  38. package/dist/kanban/virtual-cell.js +1 -1
  39. package/dist/lib/safe-area.d.ts +11 -0
  40. package/dist/lib/safe-area.js +12 -0
  41. package/dist/styles/theme.css +79 -0
  42. package/package.json +28 -4
@@ -0,0 +1,74 @@
1
+ "use client";
2
+ import { cn } from "../lib/utils.js";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ //#region src/components/status-mark.tsx
5
+ const RING_RADIUS = 6.25;
6
+ const CHECK_PATH = "M5.4 8.3 7.2 10.1 10.6 6.3";
7
+ const CROSS_PATH = "M6.1 6.1 9.9 9.9M9.9 6.1 6.1 9.9";
8
+ const on = {
9
+ active: "group-data-[status=running]/status:opacity-100 group-data-[status=done]/status:opacity-50 group-data-[status=failed]/status:opacity-60",
10
+ settled: "group-data-[status=done]/status:[stroke-dasharray:100_0] group-data-[status=failed]/status:[stroke-dasharray:100_0]"
11
+ };
12
+ const RING_CLASS = cn("opacity-55 [stroke-dasharray:3.75_8.75]", "transition-[stroke-dasharray,opacity] duration-300 ease-in-out motion-reduce:transition-[opacity]", "group-data-[status=running]/status:[stroke-dasharray:30_70]", on.active, on.settled, "motion-reduce:group-data-[status=running]/status:animate-status-breathe");
13
+ const SPIN_CLASS = "origin-center [transform-box:view-box] animate-status-spin [animation-play-state:paused] motion-safe:group-data-[status=running]/status:[animation-play-state:running]";
14
+ const markClass = (status) => cn("opacity-0 [stroke-dasharray:1_2] [stroke-dashoffset:1.05]", "[transition:stroke-dashoffset_150ms_cubic-bezier(0.22,1,0.36,1),opacity_0ms_linear_150ms]", status === "done" ? "group-data-[status=done]/status:opacity-100 group-data-[status=done]/status:[stroke-dashoffset:0] group-data-[status=done]/status:[transition:stroke-dashoffset_300ms_cubic-bezier(0.22,1,0.36,1)_140ms,opacity_0ms_linear_140ms]" : "group-data-[status=failed]/status:opacity-100 group-data-[status=failed]/status:[stroke-dashoffset:0] group-data-[status=failed]/status:[transition:stroke-dashoffset_300ms_cubic-bezier(0.22,1,0.36,1)_140ms,opacity_0ms_linear_140ms]", "motion-reduce:[stroke-dashoffset:0] motion-reduce:[transition:opacity_200ms_ease]");
15
+ /**
16
+ * One glyph for a unit of work across its life: dashes while it waits, a
17
+ * turning arc while it runs, then a closed ring with a check or a cross
18
+ * drawn in. Monochrome by design: it takes the text colour, and only a
19
+ * failure eases to destructive.
20
+ */
21
+ const StatusMark = ({ className, label, status }) => /* @__PURE__ */ jsxs("svg", {
22
+ className: cn("group/status size-4 shrink-0 transition-[color] duration-200", status === "failed" && "text-destructive", className),
23
+ "data-slot": "status-mark",
24
+ "data-status": status,
25
+ fill: "none",
26
+ stroke: "currentColor",
27
+ strokeLinecap: "round",
28
+ strokeLinejoin: "round",
29
+ strokeWidth: 1.5,
30
+ viewBox: "0 0 16 16",
31
+ ...label === void 0 ? { "aria-hidden": true } : {
32
+ "aria-label": label,
33
+ role: "img"
34
+ },
35
+ children: [
36
+ /* @__PURE__ */ jsx("circle", {
37
+ className: "opacity-0 transition-opacity duration-200 group-data-[status=done]/status:opacity-[0.06] group-data-[status=failed]/status:opacity-[0.08]",
38
+ cx: "8",
39
+ cy: "8",
40
+ fill: "currentColor",
41
+ r: RING_RADIUS,
42
+ stroke: "none"
43
+ }),
44
+ /* @__PURE__ */ jsx("circle", {
45
+ className: "opacity-0 transition-opacity duration-200 group-data-[status=running]/status:opacity-20",
46
+ cx: "8",
47
+ cy: "8",
48
+ r: RING_RADIUS
49
+ }),
50
+ /* @__PURE__ */ jsx("g", {
51
+ className: SPIN_CLASS,
52
+ children: /* @__PURE__ */ jsx("circle", {
53
+ className: RING_CLASS,
54
+ cx: "8",
55
+ cy: "8",
56
+ pathLength: 100,
57
+ r: RING_RADIUS,
58
+ transform: "rotate(-90 8 8)"
59
+ })
60
+ }),
61
+ /* @__PURE__ */ jsx("path", {
62
+ className: markClass("done"),
63
+ d: CHECK_PATH,
64
+ pathLength: 1
65
+ }),
66
+ /* @__PURE__ */ jsx("path", {
67
+ className: markClass("failed"),
68
+ d: CROSS_PATH,
69
+ pathLength: 1
70
+ })
71
+ ]
72
+ });
73
+ //#endregion
74
+ export { StatusMark };
@@ -0,0 +1,16 @@
1
+ //#region src/components/swap-text.d.ts
2
+ /**
3
+ * A short label that changes in place (a live status line): the old text
4
+ * lifts out with a slight blur while the new one rises into the same cell,
5
+ * so the change reads as one motion instead of a blink. Both layers share a
6
+ * grid cell, so nothing reflows mid-swap. The first render is still, and
7
+ * under reduced motion the label simply changes.
8
+ */
9
+ declare const SwapText: ({ className, text }: {
10
+ /** Applied to the text inside each layer, so a text effect with its own
11
+ * animation (a shimmer) runs alongside the swap instead of replacing it. */
12
+ className?: string;
13
+ text: string;
14
+ }) => import("react").JSX.Element;
15
+ //#endregion
16
+ export { SwapText };
@@ -0,0 +1,52 @@
1
+ "use client";
2
+ import { cn } from "../lib/utils.js";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { useState } from "react";
5
+ //#region src/components/swap-text.tsx
6
+ /**
7
+ * A short label that changes in place (a live status line): the old text
8
+ * lifts out with a slight blur while the new one rises into the same cell,
9
+ * so the change reads as one motion instead of a blink. Both layers share a
10
+ * grid cell, so nothing reflows mid-swap. The first render is still, and
11
+ * under reduced motion the label simply changes.
12
+ */
13
+ const SwapText = ({ className, text }) => {
14
+ const [state, setState] = useState({
15
+ current: text,
16
+ generation: 0,
17
+ previous: null
18
+ });
19
+ if (state.current !== text) setState({
20
+ current: text,
21
+ generation: state.generation + 1,
22
+ previous: state.current
23
+ });
24
+ const hasSwapped = state.generation > 0;
25
+ return /* @__PURE__ */ jsxs("span", {
26
+ className: "inline-grid",
27
+ "data-slot": "swap-text",
28
+ children: [state.previous !== null && /* @__PURE__ */ jsx("span", {
29
+ "aria-hidden": "true",
30
+ className: "motion-safe:animate-swap-out col-start-1 row-start-1 motion-reduce:hidden",
31
+ onAnimationEnd: (event) => {
32
+ if (event.target !== event.currentTarget) return;
33
+ setState((current) => current.generation === state.generation ? {
34
+ ...current,
35
+ previous: null
36
+ } : current);
37
+ },
38
+ children: /* @__PURE__ */ jsx("span", {
39
+ className,
40
+ children: state.previous
41
+ })
42
+ }, `out-${state.generation}`), /* @__PURE__ */ jsx("span", {
43
+ className: cn("col-start-1 row-start-1", hasSwapped && "motion-safe:animate-swap-in"),
44
+ children: /* @__PURE__ */ jsx("span", {
45
+ className,
46
+ children: state.current
47
+ })
48
+ }, `in-${state.generation}`)]
49
+ });
50
+ };
51
+ //#endregion
52
+ export { SwapText };
@@ -0,0 +1,20 @@
1
+ //#region src/components/table-chart.d.ts
2
+ export type TableChartKind = "bar" | "line" | "pie" | "scatter";
3
+ export type TableChartPoint = {
4
+ label: string;
5
+ x: number;
6
+ y: number;
7
+ series?: string;
8
+ };
9
+ export type TableChartProps = {
10
+ kind: TableChartKind;
11
+ points: readonly TableChartPoint[];
12
+ title: string;
13
+ summary: string;
14
+ xLabel?: string | undefined;
15
+ yLabel?: string | undefined;
16
+ xMode?: "numeric" | "category";
17
+ formatNumber: (value: number) => string;
18
+ };
19
+ export declare const TableChart: ({ kind, points, title, summary, xLabel, yLabel, xMode, formatNumber }: TableChartProps) => import("react").JSX.Element;
20
+ //#endregion
@@ -0,0 +1,274 @@
1
+ "use client";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import { useId } from "react";
4
+ import { panic } from "better-result";
5
+ //#region src/components/table-chart.tsx
6
+ const WIDTH = 640;
7
+ const HEIGHT = 360;
8
+ const PLOT = {
9
+ x: 76,
10
+ y: 24,
11
+ width: 540,
12
+ height: 260
13
+ };
14
+ const MAX_POINTS = 500;
15
+ const TICK_COUNT = 4;
16
+ const PALETTE_SIZE = 8;
17
+ const scale = (values, includeZero) => {
18
+ const magnitude = Math.max(1, ...values.map((value) => Math.abs(value)));
19
+ const normalized = values.map((value) => value / magnitude);
20
+ let low = Math.min(...normalized, ...includeZero ? [0] : []);
21
+ let high = Math.max(...normalized, ...includeZero ? [0] : []);
22
+ if (low === high) {
23
+ low = Math.min(0, low);
24
+ high = Math.max(0, high);
25
+ if (low === high) {
26
+ low = -1;
27
+ high = 1;
28
+ }
29
+ }
30
+ return {
31
+ position: (value) => (value / magnitude - low) / (high - low),
32
+ tick: (index) => (low + (high - low) * index / TICK_COUNT) * magnitude
33
+ };
34
+ };
35
+ const color = (index) => `var(--chart-${index % PALETTE_SIZE + 1})`;
36
+ const identifyPoints = (points) => {
37
+ const occurrences = /* @__PURE__ */ new Map();
38
+ return points.map((point) => {
39
+ const identity = JSON.stringify([
40
+ point.label,
41
+ point.x,
42
+ point.y,
43
+ point.series
44
+ ]);
45
+ const occurrence = occurrences.get(identity) ?? 0;
46
+ occurrences.set(identity, occurrence + 1);
47
+ return {
48
+ point,
49
+ key: `${identity}:${occurrence}`
50
+ };
51
+ });
52
+ };
53
+ const CartesianPlot = ({ kind, points, formatNumber, xMode = "numeric" }) => {
54
+ const xScale = scale(points.map(({ x }) => x), false);
55
+ const yScale = scale(points.map(({ y }) => y), kind === "bar");
56
+ const x = (value) => PLOT.x + xScale.position(value) * PLOT.width;
57
+ const y = (value) => PLOT.y + (1 - yScale.position(value)) * PLOT.height;
58
+ const keyedPoints = identifyPoints(points);
59
+ const groups = Map.groupBy(keyedPoints, ({ point }) => point.series ?? "");
60
+ const seriesNames = [...groups.keys()];
61
+ const barStep = PLOT.width / points.length;
62
+ const labelStep = Math.max(1, Math.ceil(points.length / 8));
63
+ const categories = [...new Map(points.map((point) => [point.x, point])).values()];
64
+ const categoryStep = Math.max(1, Math.ceil(categories.length / 8));
65
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
66
+ Array.from({ length: 5 }, (_, index) => {
67
+ const value = yScale.tick(index);
68
+ const ordinate = PLOT.y + (1 - index / TICK_COUNT) * PLOT.height;
69
+ return /* @__PURE__ */ jsxs("g", {
70
+ "data-slot": "chart-y-tick",
71
+ children: [/* @__PURE__ */ jsx("line", {
72
+ x1: PLOT.x,
73
+ x2: PLOT.x + PLOT.width,
74
+ y1: ordinate,
75
+ y2: ordinate,
76
+ stroke: "var(--border)"
77
+ }), /* @__PURE__ */ jsx("text", {
78
+ x: PLOT.x - 8,
79
+ y: ordinate + 4,
80
+ textAnchor: "end",
81
+ fill: "var(--muted-foreground)",
82
+ children: formatNumber(value)
83
+ })]
84
+ }, index);
85
+ }),
86
+ /* @__PURE__ */ jsx("path", {
87
+ "data-slot": "chart-axis",
88
+ d: `M ${PLOT.x} ${PLOT.y} V ${PLOT.y + PLOT.height} H ${PLOT.x + PLOT.width}`,
89
+ fill: "none",
90
+ stroke: "var(--muted-foreground)"
91
+ }),
92
+ kind === "bar" ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("line", {
93
+ "data-slot": "chart-zero",
94
+ x1: PLOT.x,
95
+ x2: PLOT.x + PLOT.width,
96
+ y1: y(0),
97
+ y2: y(0),
98
+ stroke: "var(--muted-foreground)"
99
+ }), keyedPoints.map(({ point, key }, index) => /* @__PURE__ */ jsxs("g", { children: [/* @__PURE__ */ jsx("rect", {
100
+ "data-slot": "chart-bar",
101
+ x: PLOT.x + index * barStep + barStep * .15,
102
+ y: Math.min(y(point.y), y(0)),
103
+ width: barStep * .7,
104
+ height: Math.abs(y(point.y) - y(0)),
105
+ fill: color(seriesNames.indexOf(point.series ?? "")),
106
+ children: /* @__PURE__ */ jsx("title", { children: `${point.label}: ${formatNumber(point.y)}${point.series ? ` (${point.series})` : ""}` })
107
+ }), index % labelStep === 0 && /* @__PURE__ */ jsx("text", {
108
+ x: PLOT.x + (index + .5) * barStep,
109
+ y: PLOT.y + PLOT.height + 20,
110
+ textAnchor: "middle",
111
+ fill: "var(--muted-foreground)",
112
+ style: { unicodeBidi: "plaintext" },
113
+ children: point.label.length > 16 ? `${point.label.slice(0, 15)}…` : point.label
114
+ })] }, key))] }) : /* @__PURE__ */ jsxs(Fragment, { children: [xMode === "category" ? categories.filter((_, index) => index % categoryStep === 0).map((point) => /* @__PURE__ */ jsx("text", {
115
+ "data-slot": "chart-x-tick",
116
+ x: x(point.x),
117
+ y: PLOT.y + PLOT.height + 20,
118
+ textAnchor: "middle",
119
+ fill: "var(--muted-foreground)",
120
+ style: { unicodeBidi: "plaintext" },
121
+ children: point.label.length > 16 ? `${point.label.slice(0, 15)}…` : point.label
122
+ }, point.x)) : Array.from({ length: 5 }, (_, index) => /* @__PURE__ */ jsx("text", {
123
+ "data-slot": "chart-x-tick",
124
+ x: PLOT.x + index / TICK_COUNT * PLOT.width,
125
+ y: PLOT.y + PLOT.height + 20,
126
+ textAnchor: "middle",
127
+ fill: "var(--muted-foreground)",
128
+ children: formatNumber(xScale.tick(index))
129
+ }, index)), [...groups].map(([name, group], index) => /* @__PURE__ */ jsxs("g", { children: [kind === "line" && /* @__PURE__ */ jsx("polyline", {
130
+ "data-slot": "chart-line",
131
+ points: group.map(({ point }) => `${x(point.x)},${y(point.y)}`).join(" "),
132
+ fill: "none",
133
+ stroke: color(index),
134
+ strokeWidth: 2
135
+ }), group.map(({ point, key }) => /* @__PURE__ */ jsx("circle", {
136
+ "data-slot": "chart-point",
137
+ cx: x(point.x),
138
+ cy: y(point.y),
139
+ r: 4,
140
+ fill: color(index),
141
+ children: /* @__PURE__ */ jsx("title", { children: `${point.label}: ${xMode === "numeric" ? `${formatNumber(point.x)}, ` : ""}${formatNumber(point.y)}${name ? ` (${name})` : ""}` })
142
+ }, key))] }, name))] })
143
+ ] });
144
+ };
145
+ const PiePlot = ({ points, formatNumber }) => {
146
+ if (points.some(({ y }) => y < 0)) panic("Pie chart values must be nonnegative");
147
+ const magnitude = Math.max(1, ...points.map(({ y }) => y));
148
+ const total = points.reduce((sum, { y }) => sum + y / magnitude, 0);
149
+ const radius = 110;
150
+ const center = {
151
+ x: WIDTH / 2,
152
+ y: 155
153
+ };
154
+ let angle = -Math.PI / 2;
155
+ const slices = [];
156
+ for (const [index, { point, key }] of identifyPoints(points).entries()) {
157
+ if (point.y === 0 || total === 0) continue;
158
+ const fraction = point.y / magnitude / total;
159
+ const start = angle;
160
+ angle += fraction * Math.PI * 2;
161
+ const path = `M ${center.x} ${center.y} L ${center.x + radius * Math.cos(start)} ${center.y + radius * Math.sin(start)} A ${radius} ${radius} 0 ${fraction > .5 ? 1 : 0} 1 ${center.x + radius * Math.cos(angle)} ${center.y + radius * Math.sin(angle)} Z`;
162
+ slices.push({
163
+ point,
164
+ key,
165
+ index,
166
+ fraction,
167
+ path
168
+ });
169
+ }
170
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("circle", {
171
+ cx: center.x,
172
+ cy: center.y,
173
+ r: radius,
174
+ fill: "var(--muted)"
175
+ }), slices.map(({ point, key, index, fraction, path }) => {
176
+ if (fraction === 1) return /* @__PURE__ */ jsx("circle", {
177
+ "data-slot": "chart-slice",
178
+ cx: center.x,
179
+ cy: center.y,
180
+ r: radius,
181
+ fill: color(index),
182
+ children: /* @__PURE__ */ jsx("title", { children: `${point.label}: ${formatNumber(point.y)}` })
183
+ }, key);
184
+ return /* @__PURE__ */ jsx("path", {
185
+ "data-slot": "chart-slice",
186
+ d: path,
187
+ fill: color(index),
188
+ stroke: "var(--background)",
189
+ children: /* @__PURE__ */ jsx("title", { children: `${point.label}: ${formatNumber(point.y)}` })
190
+ }, key);
191
+ })] });
192
+ };
193
+ const TableChart = ({ kind, points, title, summary, xLabel, yLabel, xMode = "numeric", formatNumber }) => {
194
+ const id = useId();
195
+ if (points.length === 0 || points.length > MAX_POINTS || points.some(({ x, y }) => !Number.isFinite(x) || !Number.isFinite(y))) panic("Chart requires between 1 and 500 finite points");
196
+ const legend = (kind === "pie" ? points.map(({ label, series }) => series ? `${label} (${series})` : label) : [...new Set(points.map(({ series }) => series ?? ""))]).map((name, index) => ({
197
+ name,
198
+ index
199
+ })).filter(({ name }) => name.length > 0);
200
+ return /* @__PURE__ */ jsxs("figure", {
201
+ "data-slot": "table-chart",
202
+ className: "text-foreground min-w-0 space-y-2",
203
+ children: [
204
+ /* @__PURE__ */ jsx("p", {
205
+ className: "text-sm font-medium",
206
+ children: /* @__PURE__ */ jsx("bdi", { children: title })
207
+ }),
208
+ /* @__PURE__ */ jsxs("svg", {
209
+ role: "img",
210
+ "aria-labelledby": `${id}-title`,
211
+ "aria-describedby": `${id}-summary`,
212
+ viewBox: `0 0 ${WIDTH} ${HEIGHT}`,
213
+ className: "block w-full text-xs tabular-nums",
214
+ direction: "ltr",
215
+ children: [
216
+ /* @__PURE__ */ jsx("title", {
217
+ id: `${id}-title`,
218
+ children: title
219
+ }),
220
+ /* @__PURE__ */ jsx("desc", {
221
+ id: `${id}-summary`,
222
+ children: summary
223
+ }),
224
+ kind === "pie" ? /* @__PURE__ */ jsx(PiePlot, {
225
+ points,
226
+ formatNumber
227
+ }) : /* @__PURE__ */ jsx(CartesianPlot, {
228
+ kind,
229
+ points,
230
+ formatNumber,
231
+ xMode
232
+ }),
233
+ kind !== "pie" && xLabel && /* @__PURE__ */ jsx("text", {
234
+ x: PLOT.x + PLOT.width / 2,
235
+ y: 344,
236
+ textAnchor: "middle",
237
+ fill: "var(--foreground)",
238
+ style: { unicodeBidi: "plaintext" },
239
+ children: xLabel
240
+ }),
241
+ kind !== "pie" && yLabel && /* @__PURE__ */ jsx("text", {
242
+ x: 18,
243
+ y: PLOT.y + PLOT.height / 2,
244
+ transform: `rotate(-90 18 ${PLOT.y + PLOT.height / 2})`,
245
+ textAnchor: "middle",
246
+ fill: "var(--foreground)",
247
+ style: { unicodeBidi: "plaintext" },
248
+ children: yLabel
249
+ })
250
+ ]
251
+ }),
252
+ legend.length > 0 && /* @__PURE__ */ jsx("ul", {
253
+ className: "flex flex-wrap gap-x-4 gap-y-1 text-xs",
254
+ children: legend.map(({ name, index }) => /* @__PURE__ */ jsxs("li", {
255
+ className: "flex min-w-0 items-center gap-1",
256
+ children: [/* @__PURE__ */ jsx("span", {
257
+ "aria-hidden": "true",
258
+ className: "size-2 shrink-0 rounded-full",
259
+ style: { background: color(index) }
260
+ }), /* @__PURE__ */ jsx("bdi", {
261
+ className: "wrap-break-word",
262
+ children: name
263
+ })]
264
+ }, index))
265
+ }),
266
+ /* @__PURE__ */ jsx("figcaption", {
267
+ className: "text-muted-foreground text-sm",
268
+ children: /* @__PURE__ */ jsx("bdi", { children: summary })
269
+ })
270
+ ]
271
+ });
272
+ };
273
+ //#endregion
274
+ export { TableChart };
@@ -33,7 +33,7 @@ const TabsList = ({ variant = "default", className, children, ref, ...props }) =
33
33
  });
34
34
  };
35
35
  const TabsTab = ({ className, ...props }) => /* @__PURE__ */ jsx(Tabs$1.Tab, {
36
- className: cn("hover:text-foreground focus-visible:ring-ring data-active:text-foreground relative flex h-9 shrink-0 grow cursor-pointer items-center justify-center gap-1.5 rounded-md border border-transparent px-[calc(--spacing(2.5)-1px)] text-base font-medium whitespace-nowrap outline-none focus-visible:ring-2 focus-visible:ring-inset data-disabled:pointer-events-none data-disabled:opacity-64 data-[orientation=vertical]:w-full data-[orientation=vertical]:justify-start sm:h-8 sm:text-sm [&_svg]:pointer-events-none [&_svg]:-mx-0.5 [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4.5 sm:[&_svg:not([class*='size-'])]:size-4", className),
36
+ className: cn("hover:text-foreground focus-visible:ring-ring data-active:text-foreground relative flex h-9 shrink-0 grow cursor-pointer items-center justify-center gap-1.5 rounded-md border border-transparent px-[calc(--spacing(2.5)-1px)] text-base font-medium whitespace-nowrap outline-none select-none focus-visible:ring-2 focus-visible:ring-inset data-disabled:pointer-events-none data-disabled:opacity-64 data-[orientation=vertical]:w-full data-[orientation=vertical]:justify-start sm:h-8 sm:text-sm [&_svg]:pointer-events-none [&_svg]:-mx-0.5 [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4.5 sm:[&_svg:not([class*='size-'])]:size-4", className),
37
37
  "data-slot": "tabs-tab",
38
38
  ...props
39
39
  });
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
  import { CircleAlertIcon, CircleCheckIcon, InfoIcon, TriangleAlertIcon, XIcon } from "../icons.js";
3
3
  import { cn } from "../lib/utils.js";
4
+ import { SAFE_AREA_TOAST_GEOMETRY_CLASS_NAME } from "../lib/safe-area.js";
4
5
  import { Loader } from "./loader.js";
5
6
  import { buttonVariants } from "./button.js";
6
7
  import { ScrollArea } from "./scroll-area.js";
@@ -62,11 +63,11 @@ const Toasts = ({ position }) => {
62
63
  return /* @__PURE__ */ jsx(Toast.Portal, {
63
64
  "data-slot": "toast-portal",
64
65
  children: /* @__PURE__ */ jsx(Toast.Viewport, {
65
- className: cn("fixed z-[90] mx-auto flex w-[calc(100%-var(--toast-inset)*2)] max-w-90 [--toast-inset:--spacing(4)] sm:[--toast-inset:--spacing(8)]", "md:data-[position*=right]:w-[calc(100%-var(--toast-inset)*2-min(var(--stella-toast-right-offset,0px),calc(100vw-var(--toast-inset)*2-10rem)))]", "data-[position*=top]:top-(--toast-inset)", "data-[position*=bottom]:bottom-(--toast-inset)", "data-[position*=left]:start-(--toast-inset)", "data-[position*=right]:end-(--toast-inset)", "md:data-[position*=right]:end-[calc(var(--toast-inset)+min(var(--stella-toast-right-offset,0px),calc(100vw-var(--toast-inset)*2-10rem)))]", "data-[position*=center]:left-1/2 data-[position*=center]:-translate-x-1/2"),
66
+ className: cn("fixed z-[90] mx-auto flex max-w-90 [--toast-inset:--spacing(4)] sm:[--toast-inset:--spacing(8)]", SAFE_AREA_TOAST_GEOMETRY_CLASS_NAME, "data-[position*=top]:top-[calc(var(--toast-inset)+var(--safe-area-top))]", "data-[position*=bottom]:bottom-[calc(var(--toast-inset)+var(--safe-area-bottom))]"),
66
67
  "data-position": position,
67
68
  "data-slot": "toast-viewport",
68
69
  children: toasts.map((toastItem) => /* @__PURE__ */ jsx(Toast.Root, {
69
- className: cn("bg-popover text-popover-foreground absolute z-[calc(9999-var(--toast-index))] h-(--toast-calc-height) w-full rounded-lg border shadow-lg/5 [transition:transform_.5s_var(--ease-smooth),opacity_.5s,height_.15s] not-dark:bg-clip-padding before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] before:shadow-[0_1px_--theme(--color-black/4%)] motion-reduce:transition-none dark:before:shadow-[0_-1px_--theme(--color-white/6%)]", "data-[position*=right]:start-auto data-[position*=right]:end-0", "data-[position*=left]:start-0 data-[position*=left]:end-auto", "data-[position*=center]:start-0 data-[position*=center]:end-0", "data-[position*=top]:top-0 data-[position*=top]:bottom-auto data-[position*=top]:origin-top", "data-[position*=bottom]:top-auto data-[position*=bottom]:bottom-0 data-[position*=bottom]:origin-bottom", "after:absolute after:start-0 after:h-[calc(var(--toast-gap)+1px)] after:w-full", "data-[position*=top]:after:top-full", "data-[position*=bottom]:after:bottom-full", "[--toast-calc-height:var(--toast-frontmost-height,var(--toast-height))] [--toast-gap:--spacing(3)] [--toast-peek:--spacing(3)] [--toast-scale:calc(max(0,1-(var(--toast-index)*.1)))] [--toast-shrink:calc(1-var(--toast-scale))]", "data-[position*=top]:[--toast-calc-offset-y:calc(var(--toast-offset-y)+var(--toast-index)*var(--toast-gap)+var(--toast-swipe-movement-y))]", "data-[position*=bottom]:[--toast-calc-offset-y:calc(var(--toast-offset-y)*-1+var(--toast-index)*var(--toast-gap)*-1+var(--toast-swipe-movement-y))]", "data-[position*=top]:transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+(var(--toast-index)*var(--toast-peek))+(var(--toast-shrink)*var(--toast-calc-height))))_scale(var(--toast-scale))]", "data-[position*=bottom]:transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)-(var(--toast-index)*var(--toast-peek))-(var(--toast-shrink)*var(--toast-calc-height))))_scale(var(--toast-scale))]", "data-limited:opacity-0", "data-expanded:h-(--toast-height)", "data-position:data-expanded:transform-[translateX(var(--toast-swipe-movement-x))_translateY(var(--toast-calc-offset-y))]", "data-[position*=top]:data-starting-style:transform-[translateY(calc(-100%-var(--toast-inset)))]", "data-[position*=bottom]:data-starting-style:transform-[translateY(calc(100%+var(--toast-inset)))]", "data-ending-style:opacity-0", "data-ending-style:not-data-limited:not-data-swipe-direction:transform-[translateY(calc(100%+var(--toast-inset)))]", "data-ending-style:data-[swipe-direction=left]:transform-[translateX(calc(var(--toast-swipe-movement-x)-100%-var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]", "data-ending-style:data-[swipe-direction=right]:transform-[translateX(calc(var(--toast-swipe-movement-x)+100%+var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]", "data-ending-style:data-[swipe-direction=up]:transform-[translateY(calc(var(--toast-swipe-movement-y)-100%-var(--toast-inset)))]", "data-ending-style:data-[swipe-direction=down]:transform-[translateY(calc(var(--toast-swipe-movement-y)+100%+var(--toast-inset)))]", "data-expanded:data-ending-style:data-[swipe-direction=left]:transform-[translateX(calc(var(--toast-swipe-movement-x)-100%-var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]", "data-expanded:data-ending-style:data-[swipe-direction=right]:transform-[translateX(calc(var(--toast-swipe-movement-x)+100%+var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]", "data-expanded:data-ending-style:data-[swipe-direction=up]:transform-[translateY(calc(var(--toast-swipe-movement-y)-100%-var(--toast-inset)))]", "data-expanded:data-ending-style:data-[swipe-direction=down]:transform-[translateY(calc(var(--toast-swipe-movement-y)+100%+var(--toast-inset)))]"),
70
+ className: cn("bg-popover text-popover-foreground absolute z-[calc(9999-var(--toast-index))] h-(--toast-calc-height) w-full rounded-lg border shadow-lg/5 [transition:transform_300ms_var(--ease-out),opacity_300ms_var(--ease-out),height_150ms_var(--ease-out)] not-dark:bg-clip-padding before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] before:shadow-[0_1px_--theme(--color-black/4%)] data-ending-style:[transition-duration:200ms,200ms,150ms] motion-reduce:transition-none dark:before:shadow-[0_-1px_--theme(--color-white/6%)]", "data-[position*=right]:start-auto data-[position*=right]:end-0", "data-[position*=left]:start-0 data-[position*=left]:end-auto", "data-[position*=center]:start-0 data-[position*=center]:end-0", "data-[position*=top]:top-0 data-[position*=top]:bottom-auto data-[position*=top]:origin-top", "data-[position*=bottom]:top-auto data-[position*=bottom]:bottom-0 data-[position*=bottom]:origin-bottom", "after:absolute after:start-0 after:h-[calc(var(--toast-gap)+1px)] after:w-full", "data-[position*=top]:after:top-full", "data-[position*=bottom]:after:bottom-full", "[--toast-calc-height:var(--toast-frontmost-height,var(--toast-height))] [--toast-gap:--spacing(3)] [--toast-peek:--spacing(3)] [--toast-scale:calc(max(0,1-(var(--toast-index)*.1)))] [--toast-shrink:calc(1-var(--toast-scale))]", "data-[position*=top]:[--toast-calc-offset-y:calc(var(--toast-offset-y)+var(--toast-index)*var(--toast-gap)+var(--toast-swipe-movement-y))]", "data-[position*=bottom]:[--toast-calc-offset-y:calc(var(--toast-offset-y)*-1+var(--toast-index)*var(--toast-gap)*-1+var(--toast-swipe-movement-y))]", "data-[position*=top]:transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+(var(--toast-index)*var(--toast-peek))+(var(--toast-shrink)*var(--toast-calc-height))))_scale(var(--toast-scale))]", "data-[position*=bottom]:transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)-(var(--toast-index)*var(--toast-peek))-(var(--toast-shrink)*var(--toast-calc-height))))_scale(var(--toast-scale))]", "data-limited:opacity-0", "data-expanded:h-(--toast-height)", "data-position:data-expanded:transform-[translateX(var(--toast-swipe-movement-x))_translateY(var(--toast-calc-offset-y))]", "data-[position*=top]:data-starting-style:transform-[translateY(calc(-100%-var(--toast-inset)))]", "data-[position*=bottom]:data-starting-style:transform-[translateY(calc(100%+var(--toast-inset)))]", "data-ending-style:opacity-0", "data-ending-style:not-data-limited:not-data-swipe-direction:transform-[translateY(calc(100%+var(--toast-inset)))]", "data-ending-style:data-[swipe-direction=left]:transform-[translateX(calc(var(--toast-swipe-movement-x)-100%-var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]", "data-ending-style:data-[swipe-direction=right]:transform-[translateX(calc(var(--toast-swipe-movement-x)+100%+var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]", "data-ending-style:data-[swipe-direction=up]:transform-[translateY(calc(var(--toast-swipe-movement-y)-100%-var(--toast-inset)))]", "data-ending-style:data-[swipe-direction=down]:transform-[translateY(calc(var(--toast-swipe-movement-y)+100%+var(--toast-inset)))]", "data-expanded:data-ending-style:data-[swipe-direction=left]:transform-[translateX(calc(var(--toast-swipe-movement-x)-100%-var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]", "data-expanded:data-ending-style:data-[swipe-direction=right]:transform-[translateX(calc(var(--toast-swipe-movement-x)+100%+var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]", "data-expanded:data-ending-style:data-[swipe-direction=up]:transform-[translateY(calc(var(--toast-swipe-movement-y)-100%-var(--toast-inset)))]", "data-expanded:data-ending-style:data-[swipe-direction=down]:transform-[translateY(calc(var(--toast-swipe-movement-y)+100%+var(--toast-inset)))]"),
70
71
  "data-position": position,
71
72
  swipeDirection: (() => {
72
73
  if (position.includes("center")) return [isTop ? "up" : "down"];
@@ -2,6 +2,7 @@
2
2
  import { NewChatIcon } from "../icons.js";
3
3
  import { cn } from "../lib/utils.js";
4
4
  import { SHELL_CHROME_LAYER_CLASS_NAME } from "../lib/overlay-layer.js";
5
+ import { SAFE_AREA_BOTTOM_EDGE_CLASS_NAME, SAFE_AREA_TOP_EDGE_CLASS_NAME } from "../lib/safe-area.js";
5
6
  import { useIsMobile } from "../hooks/use-mobile.js";
6
7
  import { InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton } from "../inspector/chrome.js";
7
8
  import { Sheet, SheetContent as SheetPopup, SheetTitle, SheetTrigger } from "./sheet.js";
@@ -36,12 +37,12 @@ const WorkspaceShell = ({ children, endDock, navigation, topBar }) => {
36
37
  })
37
38
  });
38
39
  const frame = /* @__PURE__ */ jsxs("div", {
39
- className: "flex h-dvh min-h-0 w-full overflow-hidden",
40
+ className: cn("flex h-dvh min-h-0 w-full overflow-hidden", SAFE_AREA_TOP_EDGE_CLASS_NAME, SAFE_AREA_BOTTOM_EDGE_CLASS_NAME),
40
41
  "data-slot": "workspace-shell",
41
42
  children: [
42
43
  navigation.mode === "responsive" ? navigation.content : navigation.desktop,
43
44
  /* @__PURE__ */ jsxs("main", {
44
- className: cn("bg-background relative flex w-full min-w-0 flex-1 flex-col overflow-hidden", "md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2"),
45
+ className: cn("bg-background relative flex w-full min-w-0 flex-1 flex-col overflow-hidden", "max-md:ps-(--safe-area-inline-start) max-md:pe-(--safe-area-inline-end)", endDock === void 0 && "md:pe-(--safe-area-inline-end)", "md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2"),
45
46
  "data-slot": "workspace-shell-main",
46
47
  children: [/* @__PURE__ */ jsx("div", {
47
48
  className: cn("bg-background sticky top-0 shrink-0", SHELL_CHROME_LAYER_CLASS_NAME),
@@ -68,7 +69,7 @@ const WorkspaceShell = ({ children, endDock, navigation, topBar }) => {
68
69
  className: "sr-only",
69
70
  children: compactNavigation.label
70
71
  }), /* @__PURE__ */ jsx("div", {
71
- className: "bg-background flex h-full min-h-0 flex-col overflow-y-auto [padding-inline:max(0.75rem,env(safe-area-inset-left))_max(0.75rem,env(safe-area-inset-right))] [padding-block:max(0.75rem,env(safe-area-inset-top))_max(0.75rem,env(safe-area-inset-bottom))]",
72
+ className: "bg-background flex h-full min-h-0 flex-col overflow-y-auto overscroll-contain p-3",
72
73
  "data-slot": "workspace-compact-navigation",
73
74
  children: compactNavigation.content
74
75
  })]
@@ -82,7 +83,7 @@ const WorkspaceShell = ({ children, endDock, navigation, topBar }) => {
82
83
  */
83
84
  const WorkspaceEndRail = ({ chatAction, children, className, label, overlay, topAction }) => /* @__PURE__ */ jsxs(InspectorRail, {
84
85
  "aria-label": label,
85
- className: cn("h-dvh", className),
86
+ className: cn("h-full", className),
86
87
  children: [
87
88
  /* @__PURE__ */ jsx(InspectorRailCell, { children: topAction }),
88
89
  /* @__PURE__ */ jsx(InspectorRailContent, { children }),
package/dist/icons.js CHANGED
@@ -1,2 +1 @@
1
- import { ActivityIcon, AlarmClockIcon, AlertCircleIcon, AlertTriangleIcon, AlignJustifyIcon, AlignLeftIcon, ArchiveIcon, ArchiveRestoreIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpDownIcon, ArrowUpIcon, AtSignIcon, BanIcon, BanknoteIcon, BellIcon, BlocksIcon, BoldIcon, BookOpenCheckIcon, BookOpenIcon as CaseLawIcon, BookOpenIcon as SkillIcon, BookTextIcon, BookmarkIcon, BookmarkPlusIcon, BotIcon, BracesIcon, BrainIcon, Building2Icon, BuildingIcon, CableIcon, CalendarClockIcon, CalendarIcon, CheckCheckIcon, CheckCircle2Icon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsUpDownIcon, CircleAlertIcon, CircleCheckIcon, CircleDashedIcon, CircleDotIcon, CircleHelpIcon, CircleIcon, CircleOffIcon, CircleUserRoundIcon, ClipboardCheckIcon, ClipboardCopyIcon, ClipboardIcon, ClipboardListIcon, ClipboardPasteIcon, Clock3Icon, ClockIcon, CogIcon, Columns2Icon, Columns3Icon, ColumnsIcon, CommandIcon, CompassIcon, CopyIcon, CopyPlusIcon, CornerDownLeftIcon, CpuIcon, CropIcon, DatabaseIcon, DollarSignIcon, DownloadIcon, EditIcon, EllipsisIcon, EllipsisVerticalIcon, EqualIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileBadgeIcon, FileCheckIcon, FileCodeIcon, FileDiffIcon, FileDigitIcon, FileDownIcon, FileIcon, FileImageIcon, FileOutputIcon, FilePenLineIcon, FilePlus2Icon, FilePlusIcon, FileQuestionIcon, FileSearchIcon, FileSpreadsheetIcon, FileTextIcon, FileUpIcon, FilterIcon, FilterXIcon, FlagIcon, FlaskConicalIcon, FoldHorizontalIcon, FolderIcon, FolderInputIcon, FolderOpenIcon, FolderPlusIcon, FolderSyncIcon, FolderTreeIcon, FunctionSquareIcon, GanttChartIcon, GaugeIcon, GitBranchIcon, GitCommitHorizontalIcon, GitPullRequestIcon, GlobeIcon, GraduationCapIcon, GripVerticalIcon, HashIcon, Heading1Icon, Heading2Icon, Heading3Icon, HelpCircleIcon, HighlighterIcon, HistoryIcon, ImageIcon, ImageOffIcon, InboxIcon, InfoIcon, ItalicIcon, KanbanIcon, KeyRoundIcon, KeyboardIcon, LandmarkIcon, LanguagesIcon, LaptopIcon, LayersIcon, LayoutDashboardIcon, LayoutGridIcon, LayoutTemplateIcon, LibraryBigIcon, LibraryIcon, Link2Icon, LinkIcon, ListChecksIcon, ListFilterIcon, ListIcon, ListMinusIcon, ListOrderedIcon, ListTodoIcon, ListTreeIcon, ListXIcon, Loader2Icon, LoaderCircleIcon, LoaderIcon, LockIcon, LockKeyholeIcon, LockOpenIcon, LogOutIcon, MailIcon, Maximize2Icon, MegaphoneIcon, MessageCircleQuestionIcon, MessageSquareIcon, MessageSquarePlusIcon as NewChatIcon, MessageSquareQuoteIcon as AddCommentIcon, MessageSquareTextIcon, MessageSquareWarningIcon, MessagesSquareIcon, Minimize2Icon, MinusIcon, MonitorIcon, MoonIcon, MoreHorizontalIcon, NetworkIcon, PackageIcon, PaletteIcon, PanelLeftIcon, PanelRightIcon, PaperclipIcon, PauseIcon, PenIcon, PenLineIcon, PencilIcon, PencilLineIcon, PhoneIcon, PinIcon, PinOffIcon, PlayIcon, PlugIcon, PlusIcon, PowerIcon, PresentationIcon, PrinterIcon, QuoteIcon, Redo2Icon, RefreshCcwIcon, RefreshCwIcon, RepeatIcon, RotateCcwIcon, RotateCwIcon, RouteIcon, Rows2Icon, Rows3Icon, SaveIcon, ScanSearchIcon, ScanTextIcon, ScissorsIcon, ScrollTextIcon, SearchIcon, SearchXIcon, SendIcon, ServerIcon, Settings2Icon, ShapesIcon, ShieldAlertIcon, ShieldCheckIcon, ShieldIcon, SigmaIcon, SignatureIcon, SlashIcon, SlidersHorizontalIcon, SparklesIcon, SplitIcon, SquareCheckIcon, SquareIcon, SquareMinusIcon, SquarePenIcon, StarIcon, StarOffIcon, StickyNoteIcon, StrikethroughIcon, SunIcon, TableIcon, TagIcon, TagsIcon, TerminalIcon, TextIcon, TextQuoteIcon, ToggleLeftIcon, Trash2Icon, TrashIcon, TriangleAlertIcon, UnderlineIcon, Undo2Icon, UndoIcon, UnfoldHorizontalIcon, UngroupIcon, UploadIcon, UserCheckIcon, UserIcon, UserPlusIcon, UserRoundIcon, UsersIcon, VideoIcon, WandSparklesIcon as AiActionIcon, WavesIcon, WindIcon, WorkflowIcon, WrapTextIcon, WrenchIcon, XCircleIcon, XIcon, XSquareIcon, ZapIcon } from "lucide-react";
2
- export { ActivityIcon, AddCommentIcon, AiActionIcon, AlarmClockIcon, AlertCircleIcon, AlertTriangleIcon, AlignJustifyIcon, AlignLeftIcon, ArchiveIcon, ArchiveRestoreIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpDownIcon, ArrowUpIcon, AtSignIcon, BanIcon, BanknoteIcon, BellIcon, BlocksIcon, BoldIcon, BookOpenCheckIcon, BookTextIcon, BookmarkIcon, BookmarkPlusIcon, BotIcon, BracesIcon, BrainIcon, Building2Icon, BuildingIcon, CableIcon, CalendarClockIcon, CalendarIcon, CaseLawIcon, CheckCheckIcon, CheckCircle2Icon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsUpDownIcon, CircleAlertIcon, CircleCheckIcon, CircleDashedIcon, CircleDotIcon, CircleHelpIcon, CircleIcon, CircleOffIcon, CircleUserRoundIcon, ClipboardCheckIcon, ClipboardCopyIcon, ClipboardIcon, ClipboardListIcon, ClipboardPasteIcon, Clock3Icon, ClockIcon, CogIcon, Columns2Icon, Columns3Icon, ColumnsIcon, CommandIcon, CompassIcon, CopyIcon, CopyPlusIcon, CornerDownLeftIcon, CpuIcon, CropIcon, DatabaseIcon, DollarSignIcon, DownloadIcon, EditIcon, EllipsisIcon, EllipsisVerticalIcon, EqualIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileBadgeIcon, FileCheckIcon, FileCodeIcon, FileDiffIcon, FileDigitIcon, FileDownIcon, FileIcon, FileImageIcon, FileOutputIcon, FilePenLineIcon, FilePlus2Icon, FilePlusIcon, FileQuestionIcon, FileSearchIcon, FileSpreadsheetIcon, FileTextIcon, FileUpIcon, FilterIcon, FilterXIcon, FlagIcon, FlaskConicalIcon, FoldHorizontalIcon, FolderIcon, FolderInputIcon, FolderOpenIcon, FolderPlusIcon, FolderSyncIcon, FolderTreeIcon, FunctionSquareIcon, GanttChartIcon, GaugeIcon, GitBranchIcon, GitCommitHorizontalIcon, GitPullRequestIcon, GlobeIcon, GraduationCapIcon, GripVerticalIcon, HashIcon, Heading1Icon, Heading2Icon, Heading3Icon, HelpCircleIcon, HighlighterIcon, HistoryIcon, ImageIcon, ImageOffIcon, InboxIcon, InfoIcon, ItalicIcon, KanbanIcon, KeyRoundIcon, KeyboardIcon, LandmarkIcon, LanguagesIcon, LaptopIcon, LayersIcon, LayoutDashboardIcon, LayoutGridIcon, LayoutTemplateIcon, LibraryBigIcon, LibraryIcon, Link2Icon, LinkIcon, ListChecksIcon, ListFilterIcon, ListIcon, ListMinusIcon, ListOrderedIcon, ListTodoIcon, ListTreeIcon, ListXIcon, Loader2Icon, LoaderCircleIcon, LoaderIcon, LockIcon, LockKeyholeIcon, LockOpenIcon, LogOutIcon, MailIcon, Maximize2Icon, MegaphoneIcon, MessageCircleQuestionIcon, MessageSquareIcon, MessageSquareTextIcon, MessageSquareWarningIcon, MessagesSquareIcon, Minimize2Icon, MinusIcon, MonitorIcon, MoonIcon, MoreHorizontalIcon, NetworkIcon, NewChatIcon, PackageIcon, PaletteIcon, PanelLeftIcon, PanelRightIcon, PaperclipIcon, PauseIcon, PenIcon, PenLineIcon, PencilIcon, PencilLineIcon, PhoneIcon, PinIcon, PinOffIcon, PlayIcon, PlugIcon, PlusIcon, PowerIcon, PresentationIcon, PrinterIcon, QuoteIcon, Redo2Icon, RefreshCcwIcon, RefreshCwIcon, RepeatIcon, RotateCcwIcon, RotateCwIcon, RouteIcon, Rows2Icon, Rows3Icon, SaveIcon, ScanSearchIcon, ScanTextIcon, ScissorsIcon, ScrollTextIcon, SearchIcon, SearchXIcon, SendIcon, ServerIcon, Settings2Icon, ShapesIcon, ShieldAlertIcon, ShieldCheckIcon, ShieldIcon, SigmaIcon, SignatureIcon, SkillIcon, SlashIcon, SlidersHorizontalIcon, SparklesIcon, SplitIcon, SquareCheckIcon, SquareIcon, SquareMinusIcon, SquarePenIcon, StarIcon, StarOffIcon, StickyNoteIcon, StrikethroughIcon, SunIcon, TableIcon, TagIcon, TagsIcon, TerminalIcon, TextIcon, TextQuoteIcon, ToggleLeftIcon, Trash2Icon, TrashIcon, TriangleAlertIcon, UnderlineIcon, Undo2Icon, UndoIcon, UnfoldHorizontalIcon, UngroupIcon, UploadIcon, UserCheckIcon, UserIcon, UserPlusIcon, UserRoundIcon, UsersIcon, VideoIcon, WavesIcon, WindIcon, WorkflowIcon, WrapTextIcon, WrenchIcon, XCircleIcon, XIcon, XSquareIcon, ZapIcon };
1
+ export { ActivityIcon, MessageSquareQuoteIcon as AddCommentIcon, WandSparklesIcon as AiActionIcon, AlarmClockIcon, AlertCircleIcon, AlertTriangleIcon, AlignJustifyIcon, AlignLeftIcon, ArchiveIcon, ArchiveRestoreIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpDownIcon, ArrowUpIcon, AtSignIcon, BanIcon, BanknoteIcon, BellIcon, BlocksIcon, BoldIcon, BookOpenCheckIcon, BookTextIcon, BookmarkIcon, BookmarkPlusIcon, BotIcon, BracesIcon, BrainIcon, Building2Icon, BuildingIcon, CableIcon, CalendarClockIcon, CalendarIcon, BookOpenIcon as CaseLawIcon, CheckCheckIcon, CheckCircle2Icon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsUpDownIcon, CircleAlertIcon, CircleCheckIcon, CircleDashedIcon, CircleDotIcon, CircleHelpIcon, CircleIcon, CircleOffIcon, CircleUserRoundIcon, ClipboardCheckIcon, ClipboardCopyIcon, ClipboardIcon, ClipboardListIcon, ClipboardPasteIcon, Clock3Icon, ClockIcon, CogIcon, Columns2Icon, Columns3Icon, ColumnsIcon, CommandIcon, CompassIcon, CopyIcon, CopyPlusIcon, CornerDownLeftIcon, CpuIcon, CropIcon, DatabaseIcon, DollarSignIcon, DownloadIcon, EditIcon, EllipsisIcon, EllipsisVerticalIcon, EqualIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileBadgeIcon, FileCheckIcon, FileCodeIcon, FileDiffIcon, FileDigitIcon, FileDownIcon, FileIcon, FileImageIcon, FileOutputIcon, FilePenLineIcon, FilePlus2Icon, FilePlusIcon, FileQuestionIcon, FileSearchIcon, FileSpreadsheetIcon, FileTextIcon, FileUpIcon, FilterIcon, FilterXIcon, FlagIcon, FlaskConicalIcon, FoldHorizontalIcon, FolderIcon, FolderInputIcon, FolderOpenIcon, FolderPlusIcon, FolderSyncIcon, FolderTreeIcon, FunctionSquareIcon, GanttChartIcon, GaugeIcon, GitBranchIcon, GitCommitHorizontalIcon, GitPullRequestIcon, GlobeIcon, GraduationCapIcon, GripVerticalIcon, HashIcon, Heading1Icon, Heading2Icon, Heading3Icon, HelpCircleIcon, HighlighterIcon, HistoryIcon, ImageIcon, ImageOffIcon, InboxIcon, InfoIcon, ItalicIcon, KanbanIcon, KeyRoundIcon, KeyboardIcon, LandmarkIcon, LanguagesIcon, LaptopIcon, LayersIcon, LayoutDashboardIcon, LayoutGridIcon, LayoutTemplateIcon, LibraryBigIcon, LibraryIcon, Link2Icon, LinkIcon, ListChecksIcon, ListFilterIcon, ListIcon, ListMinusIcon, ListOrderedIcon, ListTodoIcon, ListTreeIcon, ListXIcon, Loader2Icon, LoaderCircleIcon, LoaderIcon, LockIcon, LockKeyholeIcon, LockOpenIcon, LogOutIcon, MailIcon, Maximize2Icon, MegaphoneIcon, MessageCircleQuestionIcon, MessageSquareIcon, MessageSquareTextIcon, MessageSquareWarningIcon, MessagesSquareIcon, Minimize2Icon, MinusIcon, MonitorIcon, MoonIcon, MoreHorizontalIcon, NetworkIcon, MessageSquarePlusIcon as NewChatIcon, PackageIcon, PaletteIcon, PanelLeftIcon, PanelRightIcon, PaperclipIcon, PauseIcon, PenIcon, PenLineIcon, PencilIcon, PencilLineIcon, PhoneIcon, PinIcon, PinOffIcon, PlayIcon, PlugIcon, PlusIcon, PowerIcon, PresentationIcon, PrinterIcon, QuoteIcon, Redo2Icon, RefreshCcwIcon, RefreshCwIcon, RepeatIcon, RotateCcwIcon, RotateCwIcon, RouteIcon, Rows2Icon, Rows3Icon, SaveIcon, ScanSearchIcon, ScanTextIcon, ScissorsIcon, ScrollTextIcon, SearchIcon, SearchXIcon, SendIcon, ServerIcon, Settings2Icon, ShapesIcon, ShieldAlertIcon, ShieldCheckIcon, ShieldIcon, SigmaIcon, SignatureIcon, BookOpenIcon as SkillIcon, SlashIcon, SlidersHorizontalIcon, SparklesIcon, SplitIcon, SquareCheckIcon, SquareIcon, SquareMinusIcon, SquarePenIcon, StarIcon, StarOffIcon, StickyNoteIcon, StrikethroughIcon, SunIcon, TableIcon, TagIcon, TagsIcon, TerminalIcon, TextIcon, TextQuoteIcon, ToggleLeftIcon, Trash2Icon, TrashIcon, TriangleAlertIcon, UnderlineIcon, Undo2Icon, UndoIcon, UnfoldHorizontalIcon, UngroupIcon, UploadIcon, UserCheckIcon, UserIcon, UserPlusIcon, UserRoundIcon, UsersIcon, VideoIcon, WavesIcon, WindIcon, WorkflowIcon, WrapTextIcon, WrenchIcon, XCircleIcon, XIcon, XSquareIcon, ZapIcon } from "lucide-react";
package/dist/index.d.ts CHANGED
@@ -8,7 +8,7 @@ import { AlertDialog, AlertDialogBackdrop, AlertDialogClose, AlertDialogContent
8
8
  import { APPLICATION_RAIL_BUTTON_SIZE, APPLICATION_RAIL_ICON_SIZE, APPLICATION_RAIL_WIDTH, ApplicationRail, ApplicationRailButton, ApplicationRailContent, ApplicationRailFooter, ApplicationRailHeader, ApplicationRailMenu, ApplicationRailSeparator } from "./components/application-rail.js";
9
9
  import { Avatar, AvatarFallback, AvatarImage } from "./components/avatar.js";
10
10
  import { BidiDirection, BidiText, BidiTextProps, UserText } from "./components/bidi-text.js";
11
- import { DiscordLogoIcon, GitHubLogoIcon } from "./components/brand-icons.js";
11
+ import { DiscordLogoIcon, GitHubLogoIcon, XLogoIcon } from "./components/brand-icons.js";
12
12
  import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "./components/breadcrumb.js";
13
13
  import { Button, buttonAccessibleDisabledClass, buttonVariants } from "./components/button.js";
14
14
  import { Checkbox } from "./components/checkbox.js";
@@ -103,4 +103,4 @@ import { ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffSegment, ReviewDiffS
103
103
  import { ReviewOutOfDateNotice, ReviewOutOfDateReason, ReviewOutOfDateTone } from "./review/review-out-of-date-notice.js";
104
104
  import { ReviewStatusBadge, ReviewStatusSize, ReviewStatusTone, ReviewStatusVariant } from "./review/review-status-badge.js";
105
105
  import { ReviewSeverityDot, ReviewSeverityLevel, ReviewStatusDot, reviewSeverityTone } from "./review/review-severity-dot.js";
106
- export { APPLICATION_RAIL_BUTTON_SIZE, APPLICATION_RAIL_ICON_SIZE, APPLICATION_RAIL_WIDTH, Accordion, AccordionPanel as AccordionContent, AccordionPanel, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogBackdrop, AlertDialogBackdrop as AlertDialogOverlay, AlertDialogClose, AlertDialogPopup as AlertDialogContent, AlertDialogPopup, AlertDialogCreateHandle, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogPanel, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertDialogViewport, AnchoredToastProvider, ApplicationRail, ApplicationRailButton, ApplicationRailContent, ApplicationRailFooter, ApplicationRailHeader, ApplicationRailMenu, ApplicationRailSeparator, Avatar, AvatarFallback, AvatarImage, BOARD_DRAG_OVERLAY_Z_INDEX, type BidiDirection, BidiText, type BidiTextProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, type BuildKanbanBoardMatrixParams, Button, CONTROL_SIZE, CONTROL_SIZES, CalendarCell, type CalendarDateRange, CalendarEntryButton, CalendarEntrySurface, CalendarGrid, CalendarHeaderCell, CalendarHeaderRow, Checkbox, ColorPicker, ColorPickerContent, type ColorPickerContentProps, type ColorPickerProps, type ColorPreset, ColorVariants, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxRow, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Command, CommandCollection, CommandDialog, CommandDialogPopup, CommandDialogTrigger, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandInput, CommandItem, CommandList, CommandPanel, CommandSeparator, CommandShortcut, type ControlSize, CopyButton, type CreateKanbanDropIntentParams, DEFAULT_PRESETS, DataTable, type DataTableAriaSort, type DataTableColumn, type DataTableProps, type DataTableRowAction, DatePickerPopover, type DatePickerPopoverProps, DestructiveActionConfirmation, DestructiveConfirmDialog, type DestructiveConfirmDialogProps, DetailsGrid, DetailsItem, Dialog, DialogBackdrop, DialogBackdrop as DialogOverlay, DialogClose, DialogPopup as DialogContent, DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogFormState, DialogHeader, DialogPanel, DialogPortal, DialogProvider, DialogTitle, DialogTrigger, DialogViewport, DirectionalIcon, DiscordLogoIcon, Menu as DropdownMenu, Menu, MenuCheckboxItem as DropdownMenuCheckboxItem, MenuCheckboxItem, MenuPopup as DropdownMenuContent, MenuPopup, MenuCreateHandle as DropdownMenuCreateHandle, MenuCreateHandle, MenuGroup as DropdownMenuGroup, MenuGroup, MenuItem as DropdownMenuItem, MenuItem, MenuGroupLabel as DropdownMenuLabel, MenuGroupLabel, MenuPortal as DropdownMenuPortal, MenuPortal, MenuRadioGroup as DropdownMenuRadioGroup, MenuRadioGroup, MenuRadioItem as DropdownMenuRadioItem, MenuRadioItem, MenuSeparator as DropdownMenuSeparator, MenuSeparator, MenuShortcut as DropdownMenuShortcut, MenuShortcut, MenuSub as DropdownMenuSub, MenuSub, MenuSubPopup as DropdownMenuSubContent, MenuSubPopup, MenuSubTrigger as DropdownMenuSubTrigger, MenuSubTrigger, MenuTrigger as DropdownMenuTrigger, MenuTrigger, Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldValidity, FileInput, type FileInputProps, Form, Frame, FrameDescription, FrameFooter, FrameHeader, FramePanel, FrameTitle, GitHubLogoIcon, HexColorPicker, type HexColorPickerProps, PreviewCard as HoverCard, PreviewCard, PreviewCardPopup as HoverCardContent, PreviewCardPopup, PreviewCardTrigger as HoverCardTrigger, PreviewCardTrigger, INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, InlineRenameInput, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, type InspectorDockMount, InspectorEmptyRow, InspectorEntityTab, type InspectorEntityTabInactiveIcon, InspectorFacetBar, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTitle, KANBAN_BAND_CAPTION_ROW_HEIGHT, KANBAN_BAND_CAPTION_ROW_HEIGHT_PX, KANBAN_BAND_PEEK_DELAY_MS, KANBAN_BAND_PEEK_LINGER_MS, KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_BOARD_AXES, KANBAN_CARD_DRAG_MIME, KANBAN_CARD_STICKY_TOP_VAR, KANBAN_CHROME_ROW_HEIGHT, KANBAN_CHROME_ROW_HEIGHT_PX, KANBAN_COLLAPSED_BAND_WIDTH_CLASS, KANBAN_COLLAPSED_BAND_WIDTH_PX, KANBAN_COLUMN_GAP_PX, KANBAN_COLUMN_WIDTH_CLASS, KANBAN_COLUMN_WIDTH_PX, KANBAN_STICKY_TOP_VAR, KANBAN_VIRTUAL_CELL_PAGINATION, type KanbanBandToggleActivation, type KanbanBoardAxis, type KanbanBoardCell, type KanbanBoardColumn, type KanbanBoardCoordinate, type KanbanBoardDestination, type KanbanBoardLane, type KanbanBoardMatrix, type KanbanBuiltInGroup, type KanbanCardFieldSelection, KanbanCardShell, type KanbanCardShellProps, KanbanCellAction, type KanbanCellActionProps, KanbanCollapsedBandCaption, type KanbanCollapsedBandCaptionProps, type KanbanColumnBand, KanbanColumnBandHeader, type KanbanColumnBandHeaderProps, type KanbanColumnBandSpan, KanbanColumnHeader, type KanbanColumnHeaderProps, type KanbanDropAxisChange, type KanbanDropIntent, type KanbanGroup, type KanbanGroupOption, type KanbanGrouping, type KanbanSchema, type KanbanSubgroupBandHeaderContext, KanbanSubgroupBoard, type KanbanSubgroupBoardProps, type KanbanSubgroupCellContext, type KanbanSubgroupCollapsedBandCellContext, type KanbanSubgroupColumnHeaderContext, type KanbanSubgroupLaneColumnActionContext, type KanbanSubgroupLaneColumnSummaryContext, type KanbanSubgroupLaneIdentityContext, KanbanVirtualCell, type KanbanVirtualCellPagination, type KanbanVirtualCellProps, Label, List, ListEmpty, ListGroup, ListGroupAction, ListGroupCount, ListGroupDescription, ListGroupHeader, ListGroupHeading, ListGroupTitle, ListItem, ListItemActions, ListItemContent, ListItemDescription, ListItemMedia, ListItemStatus, ListItemTitle, MenuPreviewLayout, MenuSection, OUTLINE_CONTROL_MIN_SIZE, OUTLINE_EMPHASIS, OVERLAY_COLLISION_PADDING, OVERLAY_LAYER_CLASS_NAMES, OptionColor, type OrderKanbanCellsByColumnsParams, OutlineEmphasis, OutlineItem, OutlineRail, OutlineRailProps, OverlayLayer, PROPERTY_ROW_GRID, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverClose, PopoverPopup as PopoverContent, PopoverPopup, PopoverCreateHandle, PopoverDescription, PopoverPanel, PopoverTitle, PopoverTrigger, PreviewCardPrimitive, PreviewPane, type RegisterKanbanBoardAutoScrollOptions, type RegisterKanbanCardDragOptions, type ResolveKanbanGroupValueParams, type ResolveKanbanGroupingParams, ResourceCalendar, type ResourceCalendarColumn, type ResourceCalendarEntry, type ResourceCalendarEntryTone, type ResourceCalendarLaneLayout, type ResourceCalendarLanePlacement, type ResourceCalendarPlacement, type ResourceCalendarResource, ReviewAuthorAvatar, ReviewCommentAuthor, ReviewCommentCard, ReviewDecisionActions, ReviewDecisionSize, ReviewDecisionState, ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffSegment, ReviewDiffSegmentType, ReviewDiffText, ReviewOutOfDateNotice, ReviewOutOfDateReason, ReviewOutOfDateTone, ReviewSeverityDot, ReviewSeverityLevel, ReviewStatusBadge, ReviewStatusDot, ReviewStatusSize, ReviewStatusTone, ReviewStatusVariant, SHELL_CHROME_LAYER_CLASS_NAME, SIDEBAR_WIDTH_ICON_PX, SIDEBAR_WIDTH_PX, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, ScrollArea, ScrollBar, ScrollToTop, ScrollToTopProps, SearchField, type SearchFieldProps, SecretInput, type SecretInputProps, SegmentedIconToggle, Select, SelectPopup as SelectContent, SelectPopup, SelectGroup, SelectGroupLabel, SelectItem, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetBackdrop, SheetBackdrop as SheetOverlay, SheetClose, SheetPopup as SheetContent, SheetPopup, SheetDescription, SheetFooter, SheetHeader, SheetPanel, SheetPortal, type SheetSide, 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, type SortDirection, SortableHead, type StatusTone, StellaMark, StellaWordmarkLatin, TOAST_RIGHT_OFFSET_VAR, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, TRACKED_DELETION_STYLE, TRACKED_INSERTION_STYLE, Table, TableBody, TableCaption, TableCell, type TableColumnCapabilities, type TableColumnDescriptor, TableFooter, TableHead, TableHeader, TableRow, type TableSchema, Tabs, TabsPanel as TabsContent, TabsPanel, TabsList, TabsTab, TabsTab as TabsTrigger, TextSeparator, Textarea, type TextareaProps, type ToastPosition, ToastProvider, Tooltip, TooltipPopup as TooltipContent, TooltipPopup, TooltipCreateHandle, TooltipProvider, TooltipTrigger, TypedCharacterEvent, UNKNOWN_AUTHOR_LABEL, UserText, type WorkspaceCompactNavigation, WorkspaceEndRail, type WorkspaceEndRailChatAction, type WorkspaceEndRailProps, type WorkspaceNavigation, WorkspaceShell, type WorkspaceShellProps, type WorkspaceTopBarContext, assertConsecutiveCalendarDates, buildKanbanBoardMatrix, buttonAccessibleDisabledClass, buttonVariants, cn, composeRefs, containedEventHandler, containedHandler, contentDir, createKanbanDropIntent, duplicateColumnIds, emptyColor, entityTabGlyph, findTableColumn, getFirstWeekday, getInitials, getKanbanBoardColumnIdentity, getKanbanBoardLaneIdentity, getKanbanGroupingPropertyId, getKanbanGroups, getLocaleWeekInfo, getResourceCalendarPlacement, getWeekendDays, hasKanbanColumnBands, hideableColumnIds, isKanbanGroupingRenderable, isStructuredInputType, layoutResourceCalendarEntries, nextCalendarDate, optionColors, orderKanbanCellsByColumns, outlineEntryText, parsePersistedPaneWidth, registerKanbanBoardAutoScroll, registerKanbanCardDrag, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKanbanColumnBands, resolveKanbanGroupOptions, resolveKanbanGrouping, resolveKeyboardWidth, resolveOptionColor, reviewDiffSegmentKeys, reviewSeverityTone, selectKanbanCardFieldIds, selectKanbanRows, shouldForceSidebarCollapsed, sidebarIdentityTriggerClassName, sortableColumnIds, stellaToast, tableColumnIds, tableColumnSizing, typedCharacter, useComboboxFilter, useContentDir, useDestructiveActionConfirmation, useInspectorPaneWidth, useIsMobile, useLatest, useSidebar, useSidebarInlineSize, useSidebarLayout, useViewportWidth, visibleColumnIds };
106
+ export { APPLICATION_RAIL_BUTTON_SIZE, APPLICATION_RAIL_ICON_SIZE, APPLICATION_RAIL_WIDTH, Accordion, AccordionPanel as AccordionContent, AccordionPanel, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogBackdrop, AlertDialogBackdrop as AlertDialogOverlay, AlertDialogClose, AlertDialogPopup as AlertDialogContent, AlertDialogPopup, AlertDialogCreateHandle, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogPanel, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertDialogViewport, AnchoredToastProvider, ApplicationRail, ApplicationRailButton, ApplicationRailContent, ApplicationRailFooter, ApplicationRailHeader, ApplicationRailMenu, ApplicationRailSeparator, Avatar, AvatarFallback, AvatarImage, BOARD_DRAG_OVERLAY_Z_INDEX, type BidiDirection, BidiText, type BidiTextProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, type BuildKanbanBoardMatrixParams, Button, CONTROL_SIZE, CONTROL_SIZES, CalendarCell, type CalendarDateRange, CalendarEntryButton, CalendarEntrySurface, CalendarGrid, CalendarHeaderCell, CalendarHeaderRow, Checkbox, ColorPicker, ColorPickerContent, type ColorPickerContentProps, type ColorPickerProps, type ColorPreset, ColorVariants, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxRow, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Command, CommandCollection, CommandDialog, CommandDialogPopup, CommandDialogTrigger, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandInput, CommandItem, CommandList, CommandPanel, CommandSeparator, CommandShortcut, type ControlSize, CopyButton, type CreateKanbanDropIntentParams, DEFAULT_PRESETS, DataTable, type DataTableAriaSort, type DataTableColumn, type DataTableProps, type DataTableRowAction, DatePickerPopover, type DatePickerPopoverProps, DestructiveActionConfirmation, DestructiveConfirmDialog, type DestructiveConfirmDialogProps, DetailsGrid, DetailsItem, Dialog, DialogBackdrop, DialogBackdrop as DialogOverlay, DialogClose, DialogPopup as DialogContent, DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogFormState, DialogHeader, DialogPanel, DialogPortal, DialogProvider, DialogTitle, DialogTrigger, DialogViewport, DirectionalIcon, DiscordLogoIcon, Menu as DropdownMenu, Menu, MenuCheckboxItem as DropdownMenuCheckboxItem, MenuCheckboxItem, MenuPopup as DropdownMenuContent, MenuPopup, MenuCreateHandle as DropdownMenuCreateHandle, MenuCreateHandle, MenuGroup as DropdownMenuGroup, MenuGroup, MenuItem as DropdownMenuItem, MenuItem, MenuGroupLabel as DropdownMenuLabel, MenuGroupLabel, MenuPortal as DropdownMenuPortal, MenuPortal, MenuRadioGroup as DropdownMenuRadioGroup, MenuRadioGroup, MenuRadioItem as DropdownMenuRadioItem, MenuRadioItem, MenuSeparator as DropdownMenuSeparator, MenuSeparator, MenuShortcut as DropdownMenuShortcut, MenuShortcut, MenuSub as DropdownMenuSub, MenuSub, MenuSubPopup as DropdownMenuSubContent, MenuSubPopup, MenuSubTrigger as DropdownMenuSubTrigger, MenuSubTrigger, MenuTrigger as DropdownMenuTrigger, MenuTrigger, Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldValidity, FileInput, type FileInputProps, Form, Frame, FrameDescription, FrameFooter, FrameHeader, FramePanel, FrameTitle, GitHubLogoIcon, HexColorPicker, type HexColorPickerProps, PreviewCard as HoverCard, PreviewCard, PreviewCardPopup as HoverCardContent, PreviewCardPopup, PreviewCardTrigger as HoverCardTrigger, PreviewCardTrigger, INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, InlineRenameInput, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, type InspectorDockMount, InspectorEmptyRow, InspectorEntityTab, type InspectorEntityTabInactiveIcon, InspectorFacetBar, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTitle, KANBAN_BAND_CAPTION_ROW_HEIGHT, KANBAN_BAND_CAPTION_ROW_HEIGHT_PX, KANBAN_BAND_PEEK_DELAY_MS, KANBAN_BAND_PEEK_LINGER_MS, KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_BOARD_AXES, KANBAN_CARD_DRAG_MIME, KANBAN_CARD_STICKY_TOP_VAR, KANBAN_CHROME_ROW_HEIGHT, KANBAN_CHROME_ROW_HEIGHT_PX, KANBAN_COLLAPSED_BAND_WIDTH_CLASS, KANBAN_COLLAPSED_BAND_WIDTH_PX, KANBAN_COLUMN_GAP_PX, KANBAN_COLUMN_WIDTH_CLASS, KANBAN_COLUMN_WIDTH_PX, KANBAN_STICKY_TOP_VAR, KANBAN_VIRTUAL_CELL_PAGINATION, type KanbanBandToggleActivation, type KanbanBoardAxis, type KanbanBoardCell, type KanbanBoardColumn, type KanbanBoardCoordinate, type KanbanBoardDestination, type KanbanBoardLane, type KanbanBoardMatrix, type KanbanBuiltInGroup, type KanbanCardFieldSelection, KanbanCardShell, type KanbanCardShellProps, KanbanCellAction, type KanbanCellActionProps, KanbanCollapsedBandCaption, type KanbanCollapsedBandCaptionProps, type KanbanColumnBand, KanbanColumnBandHeader, type KanbanColumnBandHeaderProps, type KanbanColumnBandSpan, KanbanColumnHeader, type KanbanColumnHeaderProps, type KanbanDropAxisChange, type KanbanDropIntent, type KanbanGroup, type KanbanGroupOption, type KanbanGrouping, type KanbanSchema, type KanbanSubgroupBandHeaderContext, KanbanSubgroupBoard, type KanbanSubgroupBoardProps, type KanbanSubgroupCellContext, type KanbanSubgroupCollapsedBandCellContext, type KanbanSubgroupColumnHeaderContext, type KanbanSubgroupLaneColumnActionContext, type KanbanSubgroupLaneColumnSummaryContext, type KanbanSubgroupLaneIdentityContext, KanbanVirtualCell, type KanbanVirtualCellPagination, type KanbanVirtualCellProps, Label, List, ListEmpty, ListGroup, ListGroupAction, ListGroupCount, ListGroupDescription, ListGroupHeader, ListGroupHeading, ListGroupTitle, ListItem, ListItemActions, ListItemContent, ListItemDescription, ListItemMedia, ListItemStatus, ListItemTitle, MenuPreviewLayout, MenuSection, OUTLINE_CONTROL_MIN_SIZE, OUTLINE_EMPHASIS, OVERLAY_COLLISION_PADDING, OVERLAY_LAYER_CLASS_NAMES, OptionColor, type OrderKanbanCellsByColumnsParams, OutlineEmphasis, OutlineItem, OutlineRail, OutlineRailProps, OverlayLayer, PROPERTY_ROW_GRID, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverClose, PopoverPopup as PopoverContent, PopoverPopup, PopoverCreateHandle, PopoverDescription, PopoverPanel, PopoverTitle, PopoverTrigger, PreviewCardPrimitive, PreviewPane, type RegisterKanbanBoardAutoScrollOptions, type RegisterKanbanCardDragOptions, type ResolveKanbanGroupValueParams, type ResolveKanbanGroupingParams, ResourceCalendar, type ResourceCalendarColumn, type ResourceCalendarEntry, type ResourceCalendarEntryTone, type ResourceCalendarLaneLayout, type ResourceCalendarLanePlacement, type ResourceCalendarPlacement, type ResourceCalendarResource, ReviewAuthorAvatar, ReviewCommentAuthor, ReviewCommentCard, ReviewDecisionActions, ReviewDecisionSize, ReviewDecisionState, ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffSegment, ReviewDiffSegmentType, ReviewDiffText, ReviewOutOfDateNotice, ReviewOutOfDateReason, ReviewOutOfDateTone, ReviewSeverityDot, ReviewSeverityLevel, ReviewStatusBadge, ReviewStatusDot, ReviewStatusSize, ReviewStatusTone, ReviewStatusVariant, SHELL_CHROME_LAYER_CLASS_NAME, SIDEBAR_WIDTH_ICON_PX, SIDEBAR_WIDTH_PX, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, ScrollArea, ScrollBar, ScrollToTop, ScrollToTopProps, SearchField, type SearchFieldProps, SecretInput, type SecretInputProps, SegmentedIconToggle, Select, SelectPopup as SelectContent, SelectPopup, SelectGroup, SelectGroupLabel, SelectItem, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetBackdrop, SheetBackdrop as SheetOverlay, SheetClose, SheetPopup as SheetContent, SheetPopup, SheetDescription, SheetFooter, SheetHeader, SheetPanel, SheetPortal, type SheetSide, 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, type SortDirection, SortableHead, type StatusTone, StellaMark, StellaWordmarkLatin, TOAST_RIGHT_OFFSET_VAR, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, TRACKED_DELETION_STYLE, TRACKED_INSERTION_STYLE, Table, TableBody, TableCaption, TableCell, type TableColumnCapabilities, type TableColumnDescriptor, TableFooter, TableHead, TableHeader, TableRow, type TableSchema, Tabs, TabsPanel as TabsContent, TabsPanel, TabsList, TabsTab, TabsTab as TabsTrigger, TextSeparator, Textarea, type TextareaProps, type ToastPosition, ToastProvider, Tooltip, TooltipPopup as TooltipContent, TooltipPopup, TooltipCreateHandle, TooltipProvider, TooltipTrigger, TypedCharacterEvent, UNKNOWN_AUTHOR_LABEL, UserText, type WorkspaceCompactNavigation, WorkspaceEndRail, type WorkspaceEndRailChatAction, type WorkspaceEndRailProps, type WorkspaceNavigation, WorkspaceShell, type WorkspaceShellProps, type WorkspaceTopBarContext, XLogoIcon, assertConsecutiveCalendarDates, buildKanbanBoardMatrix, buttonAccessibleDisabledClass, buttonVariants, cn, composeRefs, containedEventHandler, containedHandler, contentDir, createKanbanDropIntent, duplicateColumnIds, emptyColor, entityTabGlyph, findTableColumn, getFirstWeekday, getInitials, getKanbanBoardColumnIdentity, getKanbanBoardLaneIdentity, getKanbanGroupingPropertyId, getKanbanGroups, getLocaleWeekInfo, getResourceCalendarPlacement, getWeekendDays, hasKanbanColumnBands, hideableColumnIds, isKanbanGroupingRenderable, isStructuredInputType, layoutResourceCalendarEntries, nextCalendarDate, optionColors, orderKanbanCellsByColumns, outlineEntryText, parsePersistedPaneWidth, registerKanbanBoardAutoScroll, registerKanbanCardDrag, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKanbanColumnBands, resolveKanbanGroupOptions, resolveKanbanGrouping, resolveKeyboardWidth, resolveOptionColor, reviewDiffSegmentKeys, reviewSeverityTone, selectKanbanCardFieldIds, selectKanbanRows, shouldForceSidebarCollapsed, sidebarIdentityTriggerClassName, sortableColumnIds, stellaToast, tableColumnIds, tableColumnSizing, typedCharacter, useComboboxFilter, useContentDir, useDestructiveActionConfirmation, useInspectorPaneWidth, useIsMobile, useLatest, useSidebar, useSidebarInlineSize, useSidebarLayout, useViewportWidth, visibleColumnIds };