@stll/ui 0.45.0 → 0.47.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.
- package/README.md +2 -1
- package/dist/components/ai-label.d.ts +33 -0
- package/dist/components/ai-label.js +42 -0
- package/dist/components/alert-dialog.js +3 -2
- package/dist/components/animated-count.d.ts +13 -0
- package/dist/components/animated-count.js +63 -0
- package/dist/components/application-rail.js +1 -1
- package/dist/components/brand-icons.d.ts +1 -0
- package/dist/components/brand-icons.js +8 -1
- package/dist/components/button.d.ts +2 -2
- package/dist/components/button.js +12 -2
- package/dist/components/command.js +1 -1
- package/dist/components/dialog.js +3 -2
- package/dist/components/document-identity-badge.d.ts +1 -1
- package/dist/components/input-group.d.ts +1 -1
- package/dist/components/input-otp.js +1 -1
- package/dist/components/landing.js +1 -1
- package/dist/components/list.d.ts +8 -2
- package/dist/components/list.js +10 -4
- package/dist/components/menu.js +1 -1
- package/dist/components/popover.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/sheet.js +19 -2
- package/dist/components/sidebar.d.ts +1 -1
- package/dist/components/sidebar.js +8 -8
- package/dist/components/status-mark.d.ts +17 -0
- package/dist/components/status-mark.js +74 -0
- package/dist/components/swap-text.d.ts +16 -0
- package/dist/components/swap-text.js +52 -0
- package/dist/components/table-chart.d.ts +20 -0
- package/dist/components/table-chart.js +274 -0
- package/dist/components/tabs.js +1 -1
- package/dist/components/toast.js +3 -2
- package/dist/components/workspace-shell.js +5 -4
- package/dist/icons.js +1 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/inspector/dock.js +1 -1
- package/dist/kanban/virtual-cell.js +1 -1
- package/dist/lib/safe-area.d.ts +11 -0
- package/dist/lib/safe-area.js +12 -0
- package/dist/styles/theme.css +79 -0
- 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 };
|
package/dist/components/tabs.js
CHANGED
|
@@ -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
|
});
|
package/dist/components/toast.js
CHANGED
|
@@ -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
|
|
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:
|
|
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
|
|
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-
|
|
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
|
-
|
|
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 };
|