@ai-matrx/design-system 0.5.2 → 0.7.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/CHANGELOG.md +148 -1
- package/README.md +8 -4
- package/dist/index.cjs +1136 -415
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +381 -5
- package/dist/index.d.ts +381 -5
- package/dist/index.js +1136 -415
- package/dist/index.js.map +1 -1
- package/dist/styles.css +20 -0
- package/package.json +9 -1
package/dist/index.js
CHANGED
|
@@ -39,11 +39,187 @@ function Badge({ className, variant, ...props }) {
|
|
|
39
39
|
|
|
40
40
|
// src/bottom-sheet.tsx
|
|
41
41
|
import { VisuallyHidden } from "@radix-ui/react-visually-hidden";
|
|
42
|
+
import { Drawer as DrawerPrimitive2 } from "vaul";
|
|
43
|
+
|
|
44
|
+
// src/drawer.tsx
|
|
45
|
+
import { treeContainsComponent } from "@ai-matrx/kit/react-tree";
|
|
42
46
|
import * as React2 from "react";
|
|
43
47
|
import { Drawer as DrawerPrimitive } from "vaul";
|
|
44
48
|
|
|
49
|
+
// src/radix-dialog-modal-context.tsx
|
|
50
|
+
import * as React from "react";
|
|
51
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
52
|
+
var RadixDialogModalContext = React.createContext(true);
|
|
53
|
+
function RadixDialogModalProvider({
|
|
54
|
+
children,
|
|
55
|
+
modal
|
|
56
|
+
}) {
|
|
57
|
+
return /* @__PURE__ */ jsx2(RadixDialogModalContext.Provider, { value: modal, children });
|
|
58
|
+
}
|
|
59
|
+
function useRadixDialogModal() {
|
|
60
|
+
return React.useContext(RadixDialogModalContext);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// src/drawer.tsx
|
|
64
|
+
import { jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
65
|
+
var DrawerDirectionContext = React2.createContext("bottom");
|
|
66
|
+
var useDrawerDirection = () => React2.useContext(DrawerDirectionContext);
|
|
67
|
+
var Drawer = ({
|
|
68
|
+
children,
|
|
69
|
+
shouldScaleBackground = true,
|
|
70
|
+
...props
|
|
71
|
+
}) => {
|
|
72
|
+
const direction = props.direction ?? "bottom";
|
|
73
|
+
return /* @__PURE__ */ jsx3(RadixDialogModalProvider, { modal: true, children: /* @__PURE__ */ jsx3(DrawerDirectionContext.Provider, { value: direction, children: /* @__PURE__ */ jsx3(
|
|
74
|
+
DrawerPrimitive.Root,
|
|
75
|
+
{
|
|
76
|
+
modal: true,
|
|
77
|
+
shouldScaleBackground,
|
|
78
|
+
...props,
|
|
79
|
+
direction,
|
|
80
|
+
children
|
|
81
|
+
}
|
|
82
|
+
) }) });
|
|
83
|
+
};
|
|
84
|
+
Drawer.displayName = "Drawer";
|
|
85
|
+
var DrawerTrigger = DrawerPrimitive.Trigger;
|
|
86
|
+
var DrawerPortal = DrawerPrimitive.Portal;
|
|
87
|
+
var DrawerClose = DrawerPrimitive.Close;
|
|
88
|
+
var DrawerOverlay = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx3(
|
|
89
|
+
DrawerPrimitive.Overlay,
|
|
90
|
+
{
|
|
91
|
+
ref,
|
|
92
|
+
"data-slot": "drawer-overlay",
|
|
93
|
+
className: cn(
|
|
94
|
+
"fixed inset-0 z-[10000] bg-[var(--matrx-overlay-scrim)]",
|
|
95
|
+
className
|
|
96
|
+
),
|
|
97
|
+
...props
|
|
98
|
+
}
|
|
99
|
+
));
|
|
100
|
+
DrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;
|
|
101
|
+
var DrawerDescription = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx3(
|
|
102
|
+
DrawerPrimitive.Description,
|
|
103
|
+
{
|
|
104
|
+
ref,
|
|
105
|
+
"data-slot": "drawer-description",
|
|
106
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
107
|
+
...props
|
|
108
|
+
}
|
|
109
|
+
));
|
|
110
|
+
DrawerDescription.displayName = DrawerPrimitive.Description.displayName;
|
|
111
|
+
var DrawerContentPrimitive = React2.forwardRef((props, ref) => /* @__PURE__ */ jsx3(DrawerPrimitive.Content, { ...props, ref, "aria-modal": "true" }));
|
|
112
|
+
DrawerContentPrimitive.displayName = "DrawerContentPrimitive";
|
|
113
|
+
var DIRECTION_CLASSES = {
|
|
114
|
+
bottom: "inset-x-0 bottom-0 mt-24 flex-col rounded-t-[10px] border-t pb-safe",
|
|
115
|
+
top: "inset-x-0 top-0 mb-24 flex-col rounded-b-[10px] border-b pt-safe",
|
|
116
|
+
left: "inset-y-0 left-0 mr-24 flex-row rounded-r-[10px] border-r",
|
|
117
|
+
right: "inset-y-0 right-0 ml-24 flex-row rounded-l-[10px] border-l"
|
|
118
|
+
};
|
|
119
|
+
var SIZE_CLASSES = {
|
|
120
|
+
bottom: { adaptive: "h-auto max-h-[90dvh]", full: "h-[92dvh]" },
|
|
121
|
+
top: { adaptive: "h-auto max-h-[90dvh]", full: "h-[92dvh]" },
|
|
122
|
+
left: { adaptive: "w-auto max-w-[92vw]", full: "h-dvh w-[92vw] max-w-sm" },
|
|
123
|
+
right: { adaptive: "w-auto max-w-[92vw]", full: "h-dvh w-[92vw] max-w-sm" }
|
|
124
|
+
};
|
|
125
|
+
var DrawerContent = React2.forwardRef(({ className, children, size = "adaptive", showHandle, ...props }, ref) => {
|
|
126
|
+
const direction = useDrawerDirection();
|
|
127
|
+
const hasDescription = treeContainsComponent(children, DrawerDescription) || treeContainsComponent(children, DrawerPrimitive.Description);
|
|
128
|
+
const withHandle = showHandle ?? (direction === "bottom" || direction === "top");
|
|
129
|
+
return /* @__PURE__ */ jsxs(DrawerPortal, { children: [
|
|
130
|
+
/* @__PURE__ */ jsx3(DrawerOverlay, {}),
|
|
131
|
+
/* @__PURE__ */ jsxs(
|
|
132
|
+
DrawerContentPrimitive,
|
|
133
|
+
{
|
|
134
|
+
ref,
|
|
135
|
+
"data-slot": "drawer-content",
|
|
136
|
+
"data-direction": direction,
|
|
137
|
+
className: cn(
|
|
138
|
+
"fixed z-[10000] flex min-w-0 border bg-background",
|
|
139
|
+
DIRECTION_CLASSES[direction],
|
|
140
|
+
SIZE_CLASSES[direction][size],
|
|
141
|
+
className
|
|
142
|
+
),
|
|
143
|
+
...hasDescription ? {} : { "aria-describedby": void 0 },
|
|
144
|
+
...props,
|
|
145
|
+
children: [
|
|
146
|
+
withHandle ? (
|
|
147
|
+
// Rule 3: the pill is 4px; the TARGET is 44px.
|
|
148
|
+
/* @__PURE__ */ jsx3(
|
|
149
|
+
"div",
|
|
150
|
+
{
|
|
151
|
+
"aria-hidden": true,
|
|
152
|
+
"data-slot": "drawer-handle",
|
|
153
|
+
className: cn(
|
|
154
|
+
"flex min-h-11 w-full shrink-0 cursor-grab items-center justify-center active:cursor-grabbing",
|
|
155
|
+
direction === "top" && "order-last"
|
|
156
|
+
),
|
|
157
|
+
children: /* @__PURE__ */ jsx3("div", { className: "h-1 w-[100px] rounded-full bg-muted" })
|
|
158
|
+
}
|
|
159
|
+
)
|
|
160
|
+
) : null,
|
|
161
|
+
children
|
|
162
|
+
]
|
|
163
|
+
}
|
|
164
|
+
)
|
|
165
|
+
] });
|
|
166
|
+
});
|
|
167
|
+
DrawerContent.displayName = "DrawerContent";
|
|
168
|
+
var DrawerHeader = ({
|
|
169
|
+
className,
|
|
170
|
+
...props
|
|
171
|
+
}) => /* @__PURE__ */ jsx3(
|
|
172
|
+
"div",
|
|
173
|
+
{
|
|
174
|
+
"data-slot": "drawer-header",
|
|
175
|
+
className: cn(
|
|
176
|
+
"grid shrink-0 gap-1.5 p-4 text-center sm:text-left",
|
|
177
|
+
className
|
|
178
|
+
),
|
|
179
|
+
...props
|
|
180
|
+
}
|
|
181
|
+
);
|
|
182
|
+
DrawerHeader.displayName = "DrawerHeader";
|
|
183
|
+
var DrawerBody = ({
|
|
184
|
+
className,
|
|
185
|
+
...props
|
|
186
|
+
}) => /* @__PURE__ */ jsx3(
|
|
187
|
+
"div",
|
|
188
|
+
{
|
|
189
|
+
"data-slot": "drawer-body",
|
|
190
|
+
className: cn("min-h-0 flex-1 overflow-y-auto overscroll-contain px-4", className),
|
|
191
|
+
...props
|
|
192
|
+
}
|
|
193
|
+
);
|
|
194
|
+
DrawerBody.displayName = "DrawerBody";
|
|
195
|
+
var DrawerFooter = ({
|
|
196
|
+
className,
|
|
197
|
+
...props
|
|
198
|
+
}) => /* @__PURE__ */ jsx3(
|
|
199
|
+
"div",
|
|
200
|
+
{
|
|
201
|
+
"data-slot": "drawer-footer",
|
|
202
|
+
className: cn("mt-auto flex shrink-0 flex-col gap-2 p-4 pb-safe", className),
|
|
203
|
+
...props
|
|
204
|
+
}
|
|
205
|
+
);
|
|
206
|
+
DrawerFooter.displayName = "DrawerFooter";
|
|
207
|
+
var DrawerTitle = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx3(
|
|
208
|
+
DrawerPrimitive.Title,
|
|
209
|
+
{
|
|
210
|
+
ref,
|
|
211
|
+
"data-slot": "drawer-title",
|
|
212
|
+
className: cn(
|
|
213
|
+
"text-lg font-semibold leading-none tracking-tight",
|
|
214
|
+
className
|
|
215
|
+
),
|
|
216
|
+
...props
|
|
217
|
+
}
|
|
218
|
+
));
|
|
219
|
+
DrawerTitle.displayName = DrawerPrimitive.Title.displayName;
|
|
220
|
+
|
|
45
221
|
// src/icons.tsx
|
|
46
|
-
import { jsx as
|
|
222
|
+
import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
47
223
|
function lucideProps(props) {
|
|
48
224
|
return {
|
|
49
225
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -58,53 +234,53 @@ function lucideProps(props) {
|
|
|
58
234
|
};
|
|
59
235
|
}
|
|
60
236
|
function Loader2Icon(props) {
|
|
61
|
-
return /* @__PURE__ */
|
|
237
|
+
return /* @__PURE__ */ jsx4("svg", { ...lucideProps(props), children: /* @__PURE__ */ jsx4("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" }) });
|
|
62
238
|
}
|
|
63
239
|
function ChevronLeftIcon(props) {
|
|
64
|
-
return /* @__PURE__ */
|
|
240
|
+
return /* @__PURE__ */ jsx4("svg", { ...lucideProps(props), children: /* @__PURE__ */ jsx4("path", { d: "m15 18-6-6 6-6" }) });
|
|
65
241
|
}
|
|
66
242
|
function ChevronRightIcon(props) {
|
|
67
|
-
return /* @__PURE__ */
|
|
243
|
+
return /* @__PURE__ */ jsx4("svg", { ...lucideProps(props), children: /* @__PURE__ */ jsx4("path", { d: "m9 18 6-6-6-6" }) });
|
|
68
244
|
}
|
|
69
245
|
function MoreHorizontalIcon(props) {
|
|
70
|
-
return /* @__PURE__ */
|
|
71
|
-
/* @__PURE__ */
|
|
72
|
-
/* @__PURE__ */
|
|
73
|
-
/* @__PURE__ */
|
|
246
|
+
return /* @__PURE__ */ jsxs2("svg", { ...lucideProps(props), children: [
|
|
247
|
+
/* @__PURE__ */ jsx4("circle", { cx: "12", cy: "12", r: "1" }),
|
|
248
|
+
/* @__PURE__ */ jsx4("circle", { cx: "19", cy: "12", r: "1" }),
|
|
249
|
+
/* @__PURE__ */ jsx4("circle", { cx: "5", cy: "12", r: "1" })
|
|
74
250
|
] });
|
|
75
251
|
}
|
|
76
252
|
function LucideCheckIcon(props) {
|
|
77
|
-
return /* @__PURE__ */
|
|
253
|
+
return /* @__PURE__ */ jsx4("svg", { ...lucideProps(props), children: /* @__PURE__ */ jsx4("path", { d: "M20 6 9 17l-5-5" }) });
|
|
78
254
|
}
|
|
79
255
|
function ChevronsUpDownIcon(props) {
|
|
80
|
-
return /* @__PURE__ */
|
|
81
|
-
/* @__PURE__ */
|
|
82
|
-
/* @__PURE__ */
|
|
256
|
+
return /* @__PURE__ */ jsxs2("svg", { ...lucideProps(props), children: [
|
|
257
|
+
/* @__PURE__ */ jsx4("path", { d: "m7 15 5 5 5-5" }),
|
|
258
|
+
/* @__PURE__ */ jsx4("path", { d: "m7 9 5-5 5 5" })
|
|
83
259
|
] });
|
|
84
260
|
}
|
|
85
261
|
function ExternalLinkIcon(props) {
|
|
86
|
-
return /* @__PURE__ */
|
|
87
|
-
/* @__PURE__ */
|
|
88
|
-
/* @__PURE__ */
|
|
89
|
-
/* @__PURE__ */
|
|
262
|
+
return /* @__PURE__ */ jsxs2("svg", { ...lucideProps(props), children: [
|
|
263
|
+
/* @__PURE__ */ jsx4("path", { d: "M15 3h6v6" }),
|
|
264
|
+
/* @__PURE__ */ jsx4("path", { d: "M10 14 21 3" }),
|
|
265
|
+
/* @__PURE__ */ jsx4("path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" })
|
|
90
266
|
] });
|
|
91
267
|
}
|
|
92
268
|
function LockIcon(props) {
|
|
93
|
-
return /* @__PURE__ */
|
|
94
|
-
/* @__PURE__ */
|
|
95
|
-
/* @__PURE__ */
|
|
269
|
+
return /* @__PURE__ */ jsxs2("svg", { ...lucideProps(props), children: [
|
|
270
|
+
/* @__PURE__ */ jsx4("rect", { width: "18", height: "11", x: "3", y: "11", rx: "2", ry: "2" }),
|
|
271
|
+
/* @__PURE__ */ jsx4("path", { d: "M7 11V7a5 5 0 0 1 10 0v4" })
|
|
96
272
|
] });
|
|
97
273
|
}
|
|
98
274
|
function PlusIcon(props) {
|
|
99
|
-
return /* @__PURE__ */
|
|
100
|
-
/* @__PURE__ */
|
|
101
|
-
/* @__PURE__ */
|
|
275
|
+
return /* @__PURE__ */ jsxs2("svg", { ...lucideProps(props), children: [
|
|
276
|
+
/* @__PURE__ */ jsx4("path", { d: "M5 12h14" }),
|
|
277
|
+
/* @__PURE__ */ jsx4("path", { d: "M12 5v14" })
|
|
102
278
|
] });
|
|
103
279
|
}
|
|
104
280
|
function XIcon(props) {
|
|
105
|
-
return /* @__PURE__ */
|
|
106
|
-
/* @__PURE__ */
|
|
107
|
-
/* @__PURE__ */
|
|
281
|
+
return /* @__PURE__ */ jsxs2("svg", { ...lucideProps(props), children: [
|
|
282
|
+
/* @__PURE__ */ jsx4("path", { d: "M18 6 6 18" }),
|
|
283
|
+
/* @__PURE__ */ jsx4("path", { d: "m6 6 12 12" })
|
|
108
284
|
] });
|
|
109
285
|
}
|
|
110
286
|
function radixProps(props) {
|
|
@@ -119,7 +295,7 @@ function radixProps(props) {
|
|
|
119
295
|
};
|
|
120
296
|
}
|
|
121
297
|
function MagnifyingGlassIcon(props) {
|
|
122
|
-
return /* @__PURE__ */
|
|
298
|
+
return /* @__PURE__ */ jsx4("svg", { ...radixProps(props), children: /* @__PURE__ */ jsx4(
|
|
123
299
|
"path",
|
|
124
300
|
{
|
|
125
301
|
d: "M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159Z",
|
|
@@ -130,7 +306,7 @@ function MagnifyingGlassIcon(props) {
|
|
|
130
306
|
) });
|
|
131
307
|
}
|
|
132
308
|
function CheckIcon(props) {
|
|
133
|
-
return /* @__PURE__ */
|
|
309
|
+
return /* @__PURE__ */ jsx4("svg", { ...radixProps(props), children: /* @__PURE__ */ jsx4(
|
|
134
310
|
"path",
|
|
135
311
|
{
|
|
136
312
|
d: "M11.4669 3.72684C11.7558 3.91574 11.8369 4.30308 11.648 4.59198L7.39799 11.092C7.29783 11.2452 7.13556 11.3467 6.95402 11.3699C6.77247 11.3931 6.58989 11.3355 6.45446 11.2124L3.70446 8.71241C3.44905 8.48022 3.43023 8.08494 3.66242 7.82953C3.89461 7.57412 4.28989 7.55529 4.5453 7.78749L6.75292 9.79441L10.6018 3.90792C10.7907 3.61902 11.178 3.53795 11.4669 3.72684Z",
|
|
@@ -141,7 +317,7 @@ function CheckIcon(props) {
|
|
|
141
317
|
) });
|
|
142
318
|
}
|
|
143
319
|
function DividerHorizontalIcon(props) {
|
|
144
|
-
return /* @__PURE__ */
|
|
320
|
+
return /* @__PURE__ */ jsx4("svg", { ...radixProps(props), children: /* @__PURE__ */ jsx4(
|
|
145
321
|
"path",
|
|
146
322
|
{
|
|
147
323
|
d: "M2 7.5C2 7.22386 2.22386 7 2.5 7H12.5C12.7761 7 13 7.22386 13 7.5C13 7.77614 12.7761 8 12.5 8H2.5C2.22386 8 2 7.77614 2 7.5Z",
|
|
@@ -152,7 +328,7 @@ function DividerHorizontalIcon(props) {
|
|
|
152
328
|
) });
|
|
153
329
|
}
|
|
154
330
|
function DotFilledIcon(props) {
|
|
155
|
-
return /* @__PURE__ */
|
|
331
|
+
return /* @__PURE__ */ jsx4("svg", { ...radixProps(props), children: /* @__PURE__ */ jsx4(
|
|
156
332
|
"path",
|
|
157
333
|
{
|
|
158
334
|
d: "M9.875 7.5C9.875 8.81168 8.81168 9.875 7.5 9.875C6.18832 9.875 5.125 8.81168 5.125 7.5C5.125 6.18832 6.18832 5.125 7.5 5.125C8.81168 5.125 9.875 6.18832 9.875 7.5Z",
|
|
@@ -161,7 +337,7 @@ function DotFilledIcon(props) {
|
|
|
161
337
|
) });
|
|
162
338
|
}
|
|
163
339
|
function RadixChevronRightIcon(props) {
|
|
164
|
-
return /* @__PURE__ */
|
|
340
|
+
return /* @__PURE__ */ jsx4("svg", { ...radixProps(props), children: /* @__PURE__ */ jsx4(
|
|
165
341
|
"path",
|
|
166
342
|
{
|
|
167
343
|
d: "M6.1584 3.13508C6.35985 2.94621 6.67627 2.95642 6.86514 3.15788L10.6151 7.15788C10.7954 7.3502 10.7954 7.64949 10.6151 7.84182L6.86514 11.8418C6.67627 12.0433 6.35985 12.0535 6.1584 11.8646C5.95694 11.6757 5.94673 11.3593 6.1356 11.1579L9.565 7.49985L6.1356 3.84182C5.94673 3.64036 5.95694 3.32394 6.1584 3.13508Z",
|
|
@@ -172,7 +348,7 @@ function RadixChevronRightIcon(props) {
|
|
|
172
348
|
) });
|
|
173
349
|
}
|
|
174
350
|
function RadixChevronDownIcon(props) {
|
|
175
|
-
return /* @__PURE__ */
|
|
351
|
+
return /* @__PURE__ */ jsx4("svg", { ...radixProps(props), children: /* @__PURE__ */ jsx4(
|
|
176
352
|
"path",
|
|
177
353
|
{
|
|
178
354
|
d: "M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z",
|
|
@@ -183,7 +359,7 @@ function RadixChevronDownIcon(props) {
|
|
|
183
359
|
) });
|
|
184
360
|
}
|
|
185
361
|
function RadixChevronUpIcon(props) {
|
|
186
|
-
return /* @__PURE__ */
|
|
362
|
+
return /* @__PURE__ */ jsx4("svg", { ...radixProps(props), children: /* @__PURE__ */ jsx4(
|
|
187
363
|
"path",
|
|
188
364
|
{
|
|
189
365
|
d: "M3.13523 8.84197C3.3241 9.04343 3.64052 9.05363 3.84197 8.86477L7.5 5.43536L11.158 8.86477C11.3595 9.05363 11.6759 9.04343 11.8648 8.84197C12.0536 8.64051 12.0434 8.32409 11.842 8.13523L7.84197 4.38523C7.64964 4.20492 7.35036 4.20492 7.15803 4.38523L3.15803 8.13523C2.95657 8.32409 2.94637 8.64051 3.13523 8.84197Z",
|
|
@@ -194,7 +370,7 @@ function RadixChevronUpIcon(props) {
|
|
|
194
370
|
) });
|
|
195
371
|
}
|
|
196
372
|
function Cross2Icon(props) {
|
|
197
|
-
return /* @__PURE__ */
|
|
373
|
+
return /* @__PURE__ */ jsx4(
|
|
198
374
|
"svg",
|
|
199
375
|
{
|
|
200
376
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -202,7 +378,7 @@ function Cross2Icon(props) {
|
|
|
202
378
|
fill: "none",
|
|
203
379
|
"aria-hidden": true,
|
|
204
380
|
...props,
|
|
205
|
-
children: /* @__PURE__ */
|
|
381
|
+
children: /* @__PURE__ */ jsx4(
|
|
206
382
|
"path",
|
|
207
383
|
{
|
|
208
384
|
d: "M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z",
|
|
@@ -214,39 +390,20 @@ function Cross2Icon(props) {
|
|
|
214
390
|
}
|
|
215
391
|
);
|
|
216
392
|
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
}
|
|
228
|
-
function useRadixDialogModal() {
|
|
229
|
-
return React.useContext(RadixDialogModalContext);
|
|
393
|
+
function DragHandleDots2Icon(props) {
|
|
394
|
+
return /* @__PURE__ */ jsx4("svg", { ...radixProps(props), children: /* @__PURE__ */ jsx4(
|
|
395
|
+
"path",
|
|
396
|
+
{
|
|
397
|
+
d: "M4.5 2.5C5.05228 2.5 5.5 2.05228 5.5 1.5C5.5 0.947715 5.05228 0.5 4.5 0.5C3.94772 0.5 3.5 0.947715 3.5 1.5C3.5 2.05228 3.94772 2.5 4.5 2.5ZM4.5 6.5C5.05228 6.5 5.5 6.05229 5.5 5.5C5.5 4.94771 5.05228 4.5 4.5 4.5C3.94772 4.5 3.5 4.94771 3.5 5.5C3.5 6.05229 3.94772 6.5 4.5 6.5ZM5.5 9.5C5.5 10.0523 5.05228 10.5 4.5 10.5C3.94772 10.5 3.5 10.0523 3.5 9.5C3.5 8.94771 3.94772 8.5 4.5 8.5C5.05228 8.5 5.5 8.94771 5.5 9.5ZM4.5 14.5C5.05228 14.5 5.5 14.0523 5.5 13.5C5.5 12.9477 5.05228 12.5 4.5 12.5C3.94772 12.5 3.5 12.9477 3.5 13.5C3.5 14.0523 3.94772 14.5 4.5 14.5ZM11.5 1.5C11.5 2.05228 11.0523 2.5 10.5 2.5C9.94771 2.5 9.5 2.05228 9.5 1.5C9.5 0.947715 9.94771 0.5 10.5 0.5C11.0523 0.5 11.5 0.947715 11.5 1.5ZM10.5 6.5C11.0523 6.5 11.5 6.05229 11.5 5.5C11.5 4.94771 11.0523 4.5 10.5 4.5C9.94771 4.5 9.5 4.94771 9.5 5.5C9.5 6.05229 9.94771 6.5 10.5 6.5ZM11.5 9.5C11.5 10.0523 11.0523 10.5 10.5 10.5C9.94771 10.5 9.5 10.0523 9.5 9.5C9.5 8.94771 9.94771 8.5 10.5 8.5C11.0523 8.5 11.5 8.94771 11.5 9.5ZM10.5 14.5C11.0523 14.5 11.5 14.0523 11.5 13.5C11.5 12.9477 11.0523 12.5 10.5 12.5C9.94771 12.5 9.5 12.9477 9.5 13.5C9.5 14.0523 9.94771 14.5 10.5 14.5Z",
|
|
398
|
+
fill: "currentColor",
|
|
399
|
+
fillRule: "evenodd",
|
|
400
|
+
clipRule: "evenodd"
|
|
401
|
+
}
|
|
402
|
+
) });
|
|
230
403
|
}
|
|
231
404
|
|
|
232
405
|
// src/bottom-sheet.tsx
|
|
233
|
-
import { jsx as
|
|
234
|
-
var DrawerRoot = ({
|
|
235
|
-
children,
|
|
236
|
-
shouldScaleBackground = true,
|
|
237
|
-
...props
|
|
238
|
-
}) => /* @__PURE__ */ jsx4(RadixDialogModalProvider, { modal: true, children: /* @__PURE__ */ jsx4(
|
|
239
|
-
DrawerPrimitive.Root,
|
|
240
|
-
{
|
|
241
|
-
modal: true,
|
|
242
|
-
shouldScaleBackground,
|
|
243
|
-
...props,
|
|
244
|
-
children
|
|
245
|
-
}
|
|
246
|
-
) });
|
|
247
|
-
DrawerRoot.displayName = "DrawerRoot";
|
|
248
|
-
var DrawerContentPrimitive = React2.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx4(DrawerPrimitive.Content, { ...props, ref, "aria-modal": "true" }));
|
|
249
|
-
DrawerContentPrimitive.displayName = "DrawerContentPrimitive";
|
|
406
|
+
import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
250
407
|
function BottomSheet({
|
|
251
408
|
open,
|
|
252
409
|
onOpenChange,
|
|
@@ -256,15 +413,15 @@ function BottomSheet({
|
|
|
256
413
|
contentClassName,
|
|
257
414
|
children
|
|
258
415
|
}) {
|
|
259
|
-
return /* @__PURE__ */
|
|
260
|
-
/* @__PURE__ */
|
|
261
|
-
|
|
416
|
+
return /* @__PURE__ */ jsx5(Drawer, { open, onOpenChange, children: /* @__PURE__ */ jsxs3(DrawerPrimitive2.Portal, { children: [
|
|
417
|
+
/* @__PURE__ */ jsx5(
|
|
418
|
+
DrawerPrimitive2.Overlay,
|
|
262
419
|
{
|
|
263
420
|
className: cn("fixed inset-0 z-50 bg-[var(--matrx-overlay-scrim)]", "fixed inset-0 z-50"),
|
|
264
421
|
style: { background: "var(--matrx-overlay-scrim-drawer)" }
|
|
265
422
|
}
|
|
266
423
|
),
|
|
267
|
-
/* @__PURE__ */
|
|
424
|
+
/* @__PURE__ */ jsxs3(
|
|
268
425
|
DrawerContentPrimitive,
|
|
269
426
|
{
|
|
270
427
|
className: cn(
|
|
@@ -281,11 +438,11 @@ function BottomSheet({
|
|
|
281
438
|
borderBottom: "none"
|
|
282
439
|
} : void 0,
|
|
283
440
|
children: [
|
|
284
|
-
/* @__PURE__ */
|
|
285
|
-
/* @__PURE__ */
|
|
286
|
-
/* @__PURE__ */
|
|
441
|
+
/* @__PURE__ */ jsxs3(VisuallyHidden, { children: [
|
|
442
|
+
/* @__PURE__ */ jsx5(DrawerPrimitive2.Title, { children: title }),
|
|
443
|
+
/* @__PURE__ */ jsx5(DrawerPrimitive2.Description, { children: "Bottom sheet panel." })
|
|
287
444
|
] }),
|
|
288
|
-
/* @__PURE__ */
|
|
445
|
+
/* @__PURE__ */ jsx5("div", { className: "mx-auto mt-3 mb-1 h-1.5 w-10 rounded-full bg-muted-foreground/30 flex-shrink-0" }),
|
|
289
446
|
children
|
|
290
447
|
]
|
|
291
448
|
}
|
|
@@ -298,8 +455,8 @@ function BottomSheetHeader({
|
|
|
298
455
|
onBack,
|
|
299
456
|
trailing
|
|
300
457
|
}) {
|
|
301
|
-
return /* @__PURE__ */
|
|
302
|
-
/* @__PURE__ */
|
|
458
|
+
return /* @__PURE__ */ jsxs3("div", { className: "flex items-center px-2 pt-1 pb-2 flex-shrink-0 min-h-[44px]", children: [
|
|
459
|
+
/* @__PURE__ */ jsx5("div", { className: "min-w-[44px] flex items-center justify-start", children: /* @__PURE__ */ jsx5(
|
|
303
460
|
"button",
|
|
304
461
|
{
|
|
305
462
|
onClick: onBack,
|
|
@@ -309,15 +466,15 @@ function BottomSheetHeader({
|
|
|
309
466
|
),
|
|
310
467
|
"aria-hidden": !showBack,
|
|
311
468
|
tabIndex: showBack ? 0 : -1,
|
|
312
|
-
children: /* @__PURE__ */
|
|
469
|
+
children: /* @__PURE__ */ jsx5(ChevronLeftIcon, { className: "h-4 w-4 text-foreground" })
|
|
313
470
|
}
|
|
314
471
|
) }),
|
|
315
|
-
/* @__PURE__ */
|
|
316
|
-
/* @__PURE__ */
|
|
472
|
+
/* @__PURE__ */ jsx5("span", { className: "text-[17px] font-semibold flex-1 text-center truncate", children: title }),
|
|
473
|
+
/* @__PURE__ */ jsx5("div", { className: "min-w-[44px] flex items-center justify-end", children: trailing })
|
|
317
474
|
] });
|
|
318
475
|
}
|
|
319
476
|
function BottomSheetBody({ children, className }) {
|
|
320
|
-
return /* @__PURE__ */
|
|
477
|
+
return /* @__PURE__ */ jsx5(
|
|
321
478
|
"div",
|
|
322
479
|
{
|
|
323
480
|
className: cn(
|
|
@@ -334,7 +491,7 @@ function BottomSheetFooter({
|
|
|
334
491
|
children,
|
|
335
492
|
className
|
|
336
493
|
}) {
|
|
337
|
-
return /* @__PURE__ */
|
|
494
|
+
return /* @__PURE__ */ jsx5(
|
|
338
495
|
"div",
|
|
339
496
|
{
|
|
340
497
|
className: cn(
|
|
@@ -346,30 +503,115 @@ function BottomSheetFooter({
|
|
|
346
503
|
);
|
|
347
504
|
}
|
|
348
505
|
|
|
349
|
-
// src/
|
|
350
|
-
import { Slot } from "@radix-ui/react-slot";
|
|
506
|
+
// src/alert.tsx
|
|
351
507
|
import { cva as cva2 } from "class-variance-authority";
|
|
352
508
|
import * as React3 from "react";
|
|
353
|
-
import { jsx as
|
|
354
|
-
var
|
|
509
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
510
|
+
var alertVariants = cva2(
|
|
511
|
+
"relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg~*]:pl-7",
|
|
512
|
+
{
|
|
513
|
+
variants: {
|
|
514
|
+
variant: {
|
|
515
|
+
default: "bg-background text-foreground [&>svg]:text-foreground",
|
|
516
|
+
destructive: "border-destructive/50 bg-destructive/5 text-destructive dark:border-destructive [&>svg]:text-destructive",
|
|
517
|
+
warning: "border-warning/50 bg-warning/5 text-warning dark:border-warning [&>svg]:text-warning",
|
|
518
|
+
success: "border-success/50 bg-success/5 text-success dark:border-success [&>svg]:text-success",
|
|
519
|
+
info: "border-info/50 bg-info/5 text-info dark:border-info [&>svg]:text-info"
|
|
520
|
+
}
|
|
521
|
+
},
|
|
522
|
+
defaultVariants: {
|
|
523
|
+
variant: "default"
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
);
|
|
527
|
+
var Alert = React3.forwardRef(
|
|
528
|
+
({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx6(
|
|
529
|
+
"div",
|
|
530
|
+
{
|
|
531
|
+
ref,
|
|
532
|
+
role: "alert",
|
|
533
|
+
"data-slot": "alert",
|
|
534
|
+
"data-variant": variant ?? "default",
|
|
535
|
+
className: cn(alertVariants({ variant }), className),
|
|
536
|
+
...props
|
|
537
|
+
}
|
|
538
|
+
)
|
|
539
|
+
);
|
|
540
|
+
Alert.displayName = "Alert";
|
|
541
|
+
var AlertTitle = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(
|
|
542
|
+
"h5",
|
|
543
|
+
{
|
|
544
|
+
ref,
|
|
545
|
+
"data-slot": "alert-title",
|
|
546
|
+
className: cn("mb-1 font-medium leading-none tracking-tight", className),
|
|
547
|
+
...props
|
|
548
|
+
}
|
|
549
|
+
));
|
|
550
|
+
AlertTitle.displayName = "AlertTitle";
|
|
551
|
+
var AlertDescription = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(
|
|
552
|
+
"div",
|
|
553
|
+
{
|
|
554
|
+
ref,
|
|
555
|
+
"data-slot": "alert-description",
|
|
556
|
+
className: cn("text-sm [&_p]:leading-relaxed", className),
|
|
557
|
+
...props
|
|
558
|
+
}
|
|
559
|
+
));
|
|
560
|
+
AlertDescription.displayName = "AlertDescription";
|
|
561
|
+
|
|
562
|
+
// src/alert-dialog.tsx
|
|
563
|
+
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
|
|
564
|
+
import { treeContainsComponent as treeContainsComponent2 } from "@ai-matrx/kit/react-tree";
|
|
565
|
+
import * as React6 from "react";
|
|
566
|
+
|
|
567
|
+
// src/button.tsx
|
|
568
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
569
|
+
import { cva as cva3 } from "class-variance-authority";
|
|
570
|
+
import * as React4 from "react";
|
|
571
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
572
|
+
var buttonVariants = cva3(
|
|
355
573
|
"inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-0 disabled:pointer-events-none disabled:opacity-50 active:scale-[0.98] [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
356
574
|
{
|
|
357
575
|
variants: {
|
|
358
576
|
variant: {
|
|
359
577
|
default: "bg-primary text-primary-foreground shadow-sm hover:bg-primary/90",
|
|
578
|
+
/**
|
|
579
|
+
* An explicit spelling of `default`, identical by construction. It is
|
|
580
|
+
* not decoration: matrx-frontend's `ButtonMine` fork carried it, ~17
|
|
581
|
+
* call sites say `variant="primary"`, and the alternative to keeping
|
|
582
|
+
* the word was a host shim translating a prop — the massage C22 bans.
|
|
583
|
+
*/
|
|
584
|
+
primary: "bg-primary text-primary-foreground shadow-sm hover:bg-primary/90",
|
|
360
585
|
destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
|
|
586
|
+
/** The affirmative twin of `destructive` — confirm, approve, publish. */
|
|
587
|
+
success: "bg-success text-success-foreground shadow-sm hover:bg-success/90",
|
|
361
588
|
outline: "border border-border bg-card shadow-sm hover:bg-accent hover:text-accent-foreground",
|
|
362
589
|
secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
|
|
363
590
|
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
364
591
|
link: "text-primary underline-offset-4 hover:underline",
|
|
365
592
|
subtle: "border border-transparent bg-muted/50 text-foreground hover:border-border hover:bg-muted"
|
|
366
593
|
},
|
|
594
|
+
/**
|
|
595
|
+
* ONE size scale, xs → 3xl, plus the two icon boxes. The top and bottom
|
|
596
|
+
* of the scale came in from matrx-frontend's `ButtonMine` fork (2026-09-07):
|
|
597
|
+
* a dense toolbar needs `xs`, and a marketing/hero call to action needs
|
|
598
|
+
* `xl`+. A host that has to reach outside this scale forks the button,
|
|
599
|
+
* which is exactly how `ButtonMine` was born.
|
|
600
|
+
*/
|
|
367
601
|
size: {
|
|
368
|
-
|
|
602
|
+
xs: "h-6 rounded-md px-1 text-xs",
|
|
369
603
|
sm: "h-8 rounded-md px-3 text-xs",
|
|
604
|
+
default: "h-9 px-4 py-2",
|
|
605
|
+
/** An explicit spelling of `default` (the fork's middle rung). */
|
|
606
|
+
md: "h-9 px-4 py-2",
|
|
370
607
|
lg: "h-10 rounded-md px-6",
|
|
608
|
+
xl: "h-12 px-8 py-3 text-base",
|
|
609
|
+
"2xl": "h-14 px-10 py-3 text-base",
|
|
610
|
+
"3xl": "h-16 px-12 py-3 text-base",
|
|
371
611
|
icon: "h-9 w-9",
|
|
372
|
-
"icon-sm": "h-7 w-7"
|
|
612
|
+
"icon-sm": "h-7 w-7",
|
|
613
|
+
/** A circular icon box — an avatar-shaped control, not a square one. */
|
|
614
|
+
roundIcon: "h-8 w-8 rounded-full p-0"
|
|
373
615
|
}
|
|
374
616
|
},
|
|
375
617
|
defaultVariants: {
|
|
@@ -378,10 +620,10 @@ var buttonVariants = cva2(
|
|
|
378
620
|
}
|
|
379
621
|
}
|
|
380
622
|
);
|
|
381
|
-
var Button =
|
|
623
|
+
var Button = React4.forwardRef(
|
|
382
624
|
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
383
625
|
const Component = asChild ? Slot : "button";
|
|
384
|
-
return /* @__PURE__ */
|
|
626
|
+
return /* @__PURE__ */ jsx7(
|
|
385
627
|
Component,
|
|
386
628
|
{
|
|
387
629
|
className: cn(buttonVariants({ variant, size, className })),
|
|
@@ -393,16 +635,166 @@ var Button = React3.forwardRef(
|
|
|
393
635
|
);
|
|
394
636
|
Button.displayName = "Button";
|
|
395
637
|
|
|
638
|
+
// src/portal-container.tsx
|
|
639
|
+
import * as React5 from "react";
|
|
640
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
641
|
+
var PortalContainerContext = React5.createContext(
|
|
642
|
+
void 0
|
|
643
|
+
);
|
|
644
|
+
function PortalContainerProvider({
|
|
645
|
+
container,
|
|
646
|
+
children
|
|
647
|
+
}) {
|
|
648
|
+
return /* @__PURE__ */ jsx8(PortalContainerContext.Provider, { value: container ?? void 0, children });
|
|
649
|
+
}
|
|
650
|
+
function usePortalContainer(explicit) {
|
|
651
|
+
const injected = React5.useContext(PortalContainerContext);
|
|
652
|
+
if (explicit !== void 0) {
|
|
653
|
+
return explicit ?? void 0;
|
|
654
|
+
}
|
|
655
|
+
return injected ?? void 0;
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
// src/alert-dialog.tsx
|
|
659
|
+
import { jsx as jsx9, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
660
|
+
var AlertDialog = AlertDialogPrimitive.Root;
|
|
661
|
+
var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
|
|
662
|
+
var AlertDialogPortal = ({
|
|
663
|
+
container,
|
|
664
|
+
...props
|
|
665
|
+
}) => {
|
|
666
|
+
const resolved = usePortalContainer(container);
|
|
667
|
+
return /* @__PURE__ */ jsx9(AlertDialogPrimitive.Portal, { container: resolved ?? null, ...props });
|
|
668
|
+
};
|
|
669
|
+
AlertDialogPortal.displayName = "AlertDialogPortal";
|
|
670
|
+
var AlertDialogOverlay = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
671
|
+
AlertDialogPrimitive.Overlay,
|
|
672
|
+
{
|
|
673
|
+
ref,
|
|
674
|
+
"data-slot": "alert-dialog-overlay",
|
|
675
|
+
className: cn(
|
|
676
|
+
"fixed inset-0 z-[10000] bg-[var(--matrx-overlay-scrim)] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
677
|
+
className
|
|
678
|
+
),
|
|
679
|
+
...props
|
|
680
|
+
}
|
|
681
|
+
));
|
|
682
|
+
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
683
|
+
var AlertDialogContentPrimitive = React6.forwardRef((props, ref) => /* @__PURE__ */ jsx9(AlertDialogPrimitive.Content, { ...props, ref, "aria-modal": "true" }));
|
|
684
|
+
AlertDialogContentPrimitive.displayName = "AlertDialogContentPrimitive";
|
|
685
|
+
var AlertDialogDescription = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
686
|
+
AlertDialogPrimitive.Description,
|
|
687
|
+
{
|
|
688
|
+
ref,
|
|
689
|
+
"data-slot": "alert-dialog-description",
|
|
690
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
691
|
+
...props
|
|
692
|
+
}
|
|
693
|
+
));
|
|
694
|
+
AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
|
|
695
|
+
var AlertDialogContent = React6.forwardRef(({ className, children, container, ...props }, ref) => {
|
|
696
|
+
const hasDescription = treeContainsComponent2(children, AlertDialogDescription) || treeContainsComponent2(children, AlertDialogPrimitive.Description);
|
|
697
|
+
return /* @__PURE__ */ jsxs4(AlertDialogPortal, { container, children: [
|
|
698
|
+
/* @__PURE__ */ jsx9(AlertDialogOverlay, {}),
|
|
699
|
+
/* @__PURE__ */ jsxs4(
|
|
700
|
+
AlertDialogContentPrimitive,
|
|
701
|
+
{
|
|
702
|
+
ref,
|
|
703
|
+
"data-slot": "alert-dialog-content",
|
|
704
|
+
className: cn(
|
|
705
|
+
"fixed left-[50%] top-[50%] z-[10000] grid min-w-0 w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200",
|
|
706
|
+
// Ruling 3 — never taller than the viewport, always scrollable, and
|
|
707
|
+
// the footer stays reachable via --dialog-pad like Dialog's.
|
|
708
|
+
"max-h-[85dvh] overflow-y-auto overscroll-contain [--dialog-pad:1.5rem] overflow-x-clip [overflow-wrap:anywhere] [&>*]:min-w-0 [&>*]:max-w-full",
|
|
709
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
|
|
710
|
+
className
|
|
711
|
+
),
|
|
712
|
+
...props,
|
|
713
|
+
children: [
|
|
714
|
+
hasDescription ? null : /* @__PURE__ */ jsx9(AlertDialogPrimitive.Description, { className: "sr-only", children: "Please confirm the action described in this dialog." }),
|
|
715
|
+
children
|
|
716
|
+
]
|
|
717
|
+
}
|
|
718
|
+
)
|
|
719
|
+
] });
|
|
720
|
+
});
|
|
721
|
+
AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
|
|
722
|
+
var AlertDialogHeader = ({
|
|
723
|
+
className,
|
|
724
|
+
...props
|
|
725
|
+
}) => /* @__PURE__ */ jsx9(
|
|
726
|
+
"div",
|
|
727
|
+
{
|
|
728
|
+
"data-slot": "alert-dialog-header",
|
|
729
|
+
className: cn("flex flex-col space-y-2 text-center sm:text-left", className),
|
|
730
|
+
...props
|
|
731
|
+
}
|
|
732
|
+
);
|
|
733
|
+
AlertDialogHeader.displayName = "AlertDialogHeader";
|
|
734
|
+
var AlertDialogFooter = ({
|
|
735
|
+
className,
|
|
736
|
+
...props
|
|
737
|
+
}) => /* @__PURE__ */ jsx9(
|
|
738
|
+
"div",
|
|
739
|
+
{
|
|
740
|
+
"data-slot": "alert-dialog-footer",
|
|
741
|
+
className: cn(
|
|
742
|
+
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
743
|
+
// Ruling 3/4 — sticky to the card edges so a scrolled body never shows
|
|
744
|
+
// through under the actions, and safe-area padded on a phone.
|
|
745
|
+
"sticky bottom-0 z-10 bg-background pt-3",
|
|
746
|
+
"mx-[calc(var(--dialog-pad,0px)*-1)] mb-[calc(var(--dialog-pad,0px)*-1)] px-[var(--dialog-pad,0px)] pb-[var(--dialog-pad,0px)]",
|
|
747
|
+
className
|
|
748
|
+
),
|
|
749
|
+
...props
|
|
750
|
+
}
|
|
751
|
+
);
|
|
752
|
+
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
753
|
+
var AlertDialogTitle = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
754
|
+
AlertDialogPrimitive.Title,
|
|
755
|
+
{
|
|
756
|
+
ref,
|
|
757
|
+
"data-slot": "alert-dialog-title",
|
|
758
|
+
className: cn("text-lg font-semibold", className),
|
|
759
|
+
...props
|
|
760
|
+
}
|
|
761
|
+
));
|
|
762
|
+
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
|
|
763
|
+
var AlertDialogAction = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
764
|
+
AlertDialogPrimitive.Action,
|
|
765
|
+
{
|
|
766
|
+
ref,
|
|
767
|
+
"data-slot": "alert-dialog-action",
|
|
768
|
+
className: cn(buttonVariants(), className),
|
|
769
|
+
...props
|
|
770
|
+
}
|
|
771
|
+
));
|
|
772
|
+
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
773
|
+
var AlertDialogCancel = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
774
|
+
AlertDialogPrimitive.Cancel,
|
|
775
|
+
{
|
|
776
|
+
ref,
|
|
777
|
+
"data-slot": "alert-dialog-cancel",
|
|
778
|
+
className: cn(
|
|
779
|
+
buttonVariants({ variant: "outline" }),
|
|
780
|
+
"mt-2 sm:mt-0",
|
|
781
|
+
className
|
|
782
|
+
),
|
|
783
|
+
...props
|
|
784
|
+
}
|
|
785
|
+
));
|
|
786
|
+
AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
|
|
787
|
+
|
|
396
788
|
// src/avatar.tsx
|
|
397
789
|
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
398
|
-
import * as
|
|
399
|
-
import { jsx as
|
|
790
|
+
import * as React7 from "react";
|
|
791
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
400
792
|
var AVATAR_SIZES = {
|
|
401
793
|
sm: "h-8 w-8 text-[11px]",
|
|
402
794
|
md: "h-9 w-9 text-xs",
|
|
403
795
|
lg: "h-10 w-10 text-sm"
|
|
404
796
|
};
|
|
405
|
-
var Avatar =
|
|
797
|
+
var Avatar = React7.forwardRef(({ className, size = "lg", ...props }, ref) => /* @__PURE__ */ jsx10(
|
|
406
798
|
AvatarPrimitive.Root,
|
|
407
799
|
{
|
|
408
800
|
ref,
|
|
@@ -416,7 +808,7 @@ var Avatar = React4.forwardRef(({ className, size = "lg", ...props }, ref) => /*
|
|
|
416
808
|
}
|
|
417
809
|
));
|
|
418
810
|
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
419
|
-
var AvatarImage =
|
|
811
|
+
var AvatarImage = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
|
|
420
812
|
AvatarPrimitive.Image,
|
|
421
813
|
{
|
|
422
814
|
ref,
|
|
@@ -426,7 +818,7 @@ var AvatarImage = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
426
818
|
}
|
|
427
819
|
));
|
|
428
820
|
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
429
|
-
var AvatarFallback =
|
|
821
|
+
var AvatarFallback = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
|
|
430
822
|
AvatarPrimitive.Fallback,
|
|
431
823
|
{
|
|
432
824
|
ref,
|
|
@@ -441,8 +833,8 @@ var AvatarFallback = React4.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
441
833
|
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
442
834
|
|
|
443
835
|
// src/card.tsx
|
|
444
|
-
import * as
|
|
445
|
-
import { jsx as
|
|
836
|
+
import * as React8 from "react";
|
|
837
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
446
838
|
var CARD_SIZES = {
|
|
447
839
|
sm: {
|
|
448
840
|
root: "rounded-xl border bg-card text-card-foreground shadow",
|
|
@@ -460,12 +852,12 @@ var CARD_SIZES = {
|
|
|
460
852
|
padTopless: "p-6 pt-0"
|
|
461
853
|
}
|
|
462
854
|
};
|
|
463
|
-
var CardSizeContext =
|
|
855
|
+
var CardSizeContext = React8.createContext("md");
|
|
464
856
|
function useCardSize() {
|
|
465
|
-
return
|
|
857
|
+
return React8.useContext(CardSizeContext);
|
|
466
858
|
}
|
|
467
|
-
var Card =
|
|
468
|
-
({ className, size = "md", ...props }, ref) => /* @__PURE__ */
|
|
859
|
+
var Card = React8.forwardRef(
|
|
860
|
+
({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx11(CardSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx11(
|
|
469
861
|
"div",
|
|
470
862
|
{
|
|
471
863
|
ref,
|
|
@@ -477,9 +869,9 @@ var Card = React5.forwardRef(
|
|
|
477
869
|
) })
|
|
478
870
|
);
|
|
479
871
|
Card.displayName = "Card";
|
|
480
|
-
var CardHeader =
|
|
872
|
+
var CardHeader = React8.forwardRef(({ className, ...props }, ref) => {
|
|
481
873
|
const size = useCardSize();
|
|
482
|
-
return /* @__PURE__ */
|
|
874
|
+
return /* @__PURE__ */ jsx11(
|
|
483
875
|
"div",
|
|
484
876
|
{
|
|
485
877
|
ref,
|
|
@@ -494,7 +886,7 @@ var CardHeader = React5.forwardRef(({ className, ...props }, ref) => {
|
|
|
494
886
|
);
|
|
495
887
|
});
|
|
496
888
|
CardHeader.displayName = "CardHeader";
|
|
497
|
-
var CardTitle =
|
|
889
|
+
var CardTitle = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
|
|
498
890
|
"h3",
|
|
499
891
|
{
|
|
500
892
|
ref,
|
|
@@ -504,7 +896,7 @@ var CardTitle = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
504
896
|
}
|
|
505
897
|
));
|
|
506
898
|
CardTitle.displayName = "CardTitle";
|
|
507
|
-
var CardDescription =
|
|
899
|
+
var CardDescription = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
|
|
508
900
|
"p",
|
|
509
901
|
{
|
|
510
902
|
ref,
|
|
@@ -514,7 +906,7 @@ var CardDescription = React5.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
514
906
|
}
|
|
515
907
|
));
|
|
516
908
|
CardDescription.displayName = "CardDescription";
|
|
517
|
-
var CardAction =
|
|
909
|
+
var CardAction = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
|
|
518
910
|
"div",
|
|
519
911
|
{
|
|
520
912
|
ref,
|
|
@@ -524,9 +916,9 @@ var CardAction = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
524
916
|
}
|
|
525
917
|
));
|
|
526
918
|
CardAction.displayName = "CardAction";
|
|
527
|
-
var CardContent =
|
|
919
|
+
var CardContent = React8.forwardRef(({ className, ...props }, ref) => {
|
|
528
920
|
const size = useCardSize();
|
|
529
|
-
return /* @__PURE__ */
|
|
921
|
+
return /* @__PURE__ */ jsx11(
|
|
530
922
|
"div",
|
|
531
923
|
{
|
|
532
924
|
ref,
|
|
@@ -537,9 +929,9 @@ var CardContent = React5.forwardRef(({ className, ...props }, ref) => {
|
|
|
537
929
|
);
|
|
538
930
|
});
|
|
539
931
|
CardContent.displayName = "CardContent";
|
|
540
|
-
var CardFooter =
|
|
932
|
+
var CardFooter = React8.forwardRef(({ className, ...props }, ref) => {
|
|
541
933
|
const size = useCardSize();
|
|
542
|
-
return /* @__PURE__ */
|
|
934
|
+
return /* @__PURE__ */ jsx11(
|
|
543
935
|
"div",
|
|
544
936
|
{
|
|
545
937
|
ref,
|
|
@@ -557,13 +949,13 @@ CardFooter.displayName = "CardFooter";
|
|
|
557
949
|
|
|
558
950
|
// src/checkbox.tsx
|
|
559
951
|
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
560
|
-
import * as
|
|
561
|
-
import { jsx as
|
|
952
|
+
import * as React9 from "react";
|
|
953
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
562
954
|
var CHECKBOX_SIZES = {
|
|
563
955
|
sm: { root: "h-3.5 w-3.5 rounded-xs", glyph: "h-3 w-3" },
|
|
564
956
|
md: { root: "h-4 w-4 rounded-sm", glyph: "h-3.5 w-3.5" }
|
|
565
957
|
};
|
|
566
|
-
var Checkbox =
|
|
958
|
+
var Checkbox = React9.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
567
959
|
CheckboxPrimitive.Root,
|
|
568
960
|
{
|
|
569
961
|
ref,
|
|
@@ -574,12 +966,12 @@ var Checkbox = React6.forwardRef(({ className, size = "md", ...props }, ref) =>
|
|
|
574
966
|
className
|
|
575
967
|
),
|
|
576
968
|
...props,
|
|
577
|
-
children: /* @__PURE__ */
|
|
969
|
+
children: /* @__PURE__ */ jsx12(
|
|
578
970
|
CheckboxPrimitive.Indicator,
|
|
579
971
|
{
|
|
580
972
|
"data-slot": "checkbox-indicator",
|
|
581
973
|
className: "flex items-center justify-center text-current",
|
|
582
|
-
children: props.checked === "indeterminate" ? /* @__PURE__ */
|
|
974
|
+
children: props.checked === "indeterminate" ? /* @__PURE__ */ jsx12(DividerHorizontalIcon, { className: CHECKBOX_SIZES[size].glyph }) : /* @__PURE__ */ jsx12(CheckIcon, { className: CHECKBOX_SIZES[size].glyph })
|
|
583
975
|
}
|
|
584
976
|
)
|
|
585
977
|
}
|
|
@@ -595,35 +987,15 @@ var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
|
|
|
595
987
|
// src/command.tsx
|
|
596
988
|
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
597
989
|
import { Command as CommandPrimitive } from "cmdk";
|
|
598
|
-
import * as
|
|
599
|
-
|
|
600
|
-
// src/portal-container.tsx
|
|
601
|
-
import * as React7 from "react";
|
|
602
|
-
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
603
|
-
var PortalContainerContext = React7.createContext(
|
|
604
|
-
void 0
|
|
605
|
-
);
|
|
606
|
-
function PortalContainerProvider({
|
|
607
|
-
container,
|
|
608
|
-
children
|
|
609
|
-
}) {
|
|
610
|
-
return /* @__PURE__ */ jsx9(PortalContainerContext.Provider, { value: container ?? void 0, children });
|
|
611
|
-
}
|
|
612
|
-
function usePortalContainer(explicit) {
|
|
613
|
-
const injected = React7.useContext(PortalContainerContext);
|
|
614
|
-
if (explicit !== void 0) {
|
|
615
|
-
return explicit ?? void 0;
|
|
616
|
-
}
|
|
617
|
-
return injected ?? void 0;
|
|
618
|
-
}
|
|
990
|
+
import * as React11 from "react";
|
|
619
991
|
|
|
620
992
|
// src/use-is-mobile.ts
|
|
621
|
-
import * as
|
|
993
|
+
import * as React10 from "react";
|
|
622
994
|
var MOBILE_BREAKPOINT = 768;
|
|
623
995
|
function useIsMobile() {
|
|
624
|
-
const [isMobile, setIsMobile] =
|
|
625
|
-
const [hasMounted, setHasMounted] =
|
|
626
|
-
|
|
996
|
+
const [isMobile, setIsMobile] = React10.useState(false);
|
|
997
|
+
const [hasMounted, setHasMounted] = React10.useState(false);
|
|
998
|
+
React10.useEffect(() => {
|
|
627
999
|
setHasMounted(true);
|
|
628
1000
|
const onChange = () => {
|
|
629
1001
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -643,8 +1015,8 @@ function useIsMobile() {
|
|
|
643
1015
|
}
|
|
644
1016
|
|
|
645
1017
|
// src/command.tsx
|
|
646
|
-
import { jsx as
|
|
647
|
-
var Command =
|
|
1018
|
+
import { jsx as jsx13, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1019
|
+
var Command = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
|
|
648
1020
|
CommandPrimitive,
|
|
649
1021
|
{
|
|
650
1022
|
ref,
|
|
@@ -659,18 +1031,18 @@ Command.displayName = CommandPrimitive.displayName;
|
|
|
659
1031
|
var DIALOG_DESKTOP_CLASSES = "fixed left-[50%] top-[50%] z-[10000] grid min-w-0 w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 overflow-x-clip border bg-background p-6 shadow-lg [overflow-wrap:anywhere] [&>*]:min-w-0 [&>*]:max-w-full duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg";
|
|
660
1032
|
var DIALOG_MOBILE_SHEET_CLASSES = "fixed inset-x-0 bottom-0 left-0 right-0 top-auto z-[10000] flex min-w-0 flex-col w-full max-w-full max-h-[90dvh] translate-x-0 translate-y-0 gap-4 overflow-x-clip border-t bg-background p-4 pb-safe shadow-lg [overflow-wrap:anywhere] [&>*]:min-w-0 [&>*]:max-w-full duration-200 rounded-t-2xl rounded-b-none overflow-y-auto overscroll-contain data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom";
|
|
661
1033
|
var DIALOG_MOBILE_SHEET_OVERRIDE = "inset-x-0 bottom-0 left-0 right-0 top-auto translate-x-0 translate-y-0 w-full max-w-full max-h-[90dvh] rounded-b-none rounded-t-2xl overflow-y-auto";
|
|
662
|
-
var CommandDialogContent =
|
|
1034
|
+
var CommandDialogContent = React11.forwardRef(({ className, children, container, ...props }, ref) => {
|
|
663
1035
|
const isMobile = useIsMobile();
|
|
664
1036
|
const isModal = useRadixDialogModal();
|
|
665
1037
|
const portalContainer = usePortalContainer(container);
|
|
666
|
-
return /* @__PURE__ */
|
|
667
|
-
isModal ? /* @__PURE__ */
|
|
1038
|
+
return /* @__PURE__ */ jsxs5(DialogPrimitive.Portal, { container: portalContainer, children: [
|
|
1039
|
+
isModal ? /* @__PURE__ */ jsx13(
|
|
668
1040
|
DialogPrimitive.Overlay,
|
|
669
1041
|
{
|
|
670
1042
|
className: "fixed inset-0 z-[10000] bg-[var(--matrx-overlay-scrim-soft)] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"
|
|
671
1043
|
}
|
|
672
1044
|
) : null,
|
|
673
|
-
/* @__PURE__ */
|
|
1045
|
+
/* @__PURE__ */ jsxs5(
|
|
674
1046
|
DialogPrimitive.Content,
|
|
675
1047
|
{
|
|
676
1048
|
ref,
|
|
@@ -685,9 +1057,9 @@ var CommandDialogContent = React9.forwardRef(({ className, children, container,
|
|
|
685
1057
|
...props,
|
|
686
1058
|
children: [
|
|
687
1059
|
children,
|
|
688
|
-
/* @__PURE__ */
|
|
689
|
-
/* @__PURE__ */
|
|
690
|
-
/* @__PURE__ */
|
|
1060
|
+
/* @__PURE__ */ jsxs5(DialogPrimitive.Close, { className: "absolute right-2 top-4 flex h-10 w-10 items-center justify-center rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground sm:right-4", children: [
|
|
1061
|
+
/* @__PURE__ */ jsx13(XIcon, { className: "h-4 w-4" }),
|
|
1062
|
+
/* @__PURE__ */ jsx13("span", { className: "sr-only", children: "Close" })
|
|
691
1063
|
] })
|
|
692
1064
|
]
|
|
693
1065
|
}
|
|
@@ -701,21 +1073,21 @@ var CommandDialog = ({
|
|
|
701
1073
|
...props
|
|
702
1074
|
}) => {
|
|
703
1075
|
const modal = props.modal ?? true;
|
|
704
|
-
return /* @__PURE__ */
|
|
1076
|
+
return /* @__PURE__ */ jsx13(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ jsx13(DialogPrimitive.Root, { ...props, modal, children: /* @__PURE__ */ jsxs5(
|
|
705
1077
|
CommandDialogContent,
|
|
706
1078
|
{
|
|
707
1079
|
className: "overflow-hidden p-0",
|
|
708
1080
|
...container !== void 0 ? { container } : {},
|
|
709
1081
|
children: [
|
|
710
|
-
/* @__PURE__ */
|
|
711
|
-
/* @__PURE__ */
|
|
1082
|
+
/* @__PURE__ */ jsx13(DialogPrimitive.Title, { className: "sr-only" }),
|
|
1083
|
+
/* @__PURE__ */ jsx13(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children })
|
|
712
1084
|
]
|
|
713
1085
|
}
|
|
714
1086
|
) }) });
|
|
715
1087
|
};
|
|
716
|
-
var CommandInput =
|
|
717
|
-
/* @__PURE__ */
|
|
718
|
-
/* @__PURE__ */
|
|
1088
|
+
var CommandInput = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs5("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
1089
|
+
/* @__PURE__ */ jsx13(MagnifyingGlassIcon, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
1090
|
+
/* @__PURE__ */ jsx13(
|
|
719
1091
|
CommandPrimitive.Input,
|
|
720
1092
|
{
|
|
721
1093
|
ref,
|
|
@@ -728,7 +1100,7 @@ var CommandInput = React9.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
728
1100
|
)
|
|
729
1101
|
] }));
|
|
730
1102
|
CommandInput.displayName = CommandPrimitive.Input.displayName;
|
|
731
|
-
var CommandList =
|
|
1103
|
+
var CommandList = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
|
|
732
1104
|
CommandPrimitive.List,
|
|
733
1105
|
{
|
|
734
1106
|
ref,
|
|
@@ -737,7 +1109,7 @@ var CommandList = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
737
1109
|
}
|
|
738
1110
|
));
|
|
739
1111
|
CommandList.displayName = CommandPrimitive.List.displayName;
|
|
740
|
-
var CommandEmpty =
|
|
1112
|
+
var CommandEmpty = React11.forwardRef((props, ref) => /* @__PURE__ */ jsx13(
|
|
741
1113
|
CommandPrimitive.Empty,
|
|
742
1114
|
{
|
|
743
1115
|
ref,
|
|
@@ -746,7 +1118,7 @@ var CommandEmpty = React9.forwardRef((props, ref) => /* @__PURE__ */ jsx10(
|
|
|
746
1118
|
}
|
|
747
1119
|
));
|
|
748
1120
|
CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
|
|
749
|
-
var CommandGroup =
|
|
1121
|
+
var CommandGroup = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
|
|
750
1122
|
CommandPrimitive.Group,
|
|
751
1123
|
{
|
|
752
1124
|
ref,
|
|
@@ -758,7 +1130,7 @@ var CommandGroup = React9.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
758
1130
|
}
|
|
759
1131
|
));
|
|
760
1132
|
CommandGroup.displayName = CommandPrimitive.Group.displayName;
|
|
761
|
-
var CommandSeparator =
|
|
1133
|
+
var CommandSeparator = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
|
|
762
1134
|
CommandPrimitive.Separator,
|
|
763
1135
|
{
|
|
764
1136
|
ref,
|
|
@@ -767,7 +1139,7 @@ var CommandSeparator = React9.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
767
1139
|
}
|
|
768
1140
|
));
|
|
769
1141
|
CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
|
|
770
|
-
var CommandItem =
|
|
1142
|
+
var CommandItem = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
|
|
771
1143
|
CommandPrimitive.Item,
|
|
772
1144
|
{
|
|
773
1145
|
ref,
|
|
@@ -783,7 +1155,7 @@ var CommandShortcut = ({
|
|
|
783
1155
|
className,
|
|
784
1156
|
...props
|
|
785
1157
|
}) => {
|
|
786
|
-
return /* @__PURE__ */
|
|
1158
|
+
return /* @__PURE__ */ jsx13(
|
|
787
1159
|
"span",
|
|
788
1160
|
{
|
|
789
1161
|
className: cn(
|
|
@@ -798,8 +1170,8 @@ CommandShortcut.displayName = "CommandShortcut";
|
|
|
798
1170
|
|
|
799
1171
|
// src/context-menu.tsx
|
|
800
1172
|
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
801
|
-
import * as
|
|
802
|
-
import { jsx as
|
|
1173
|
+
import * as React12 from "react";
|
|
1174
|
+
import { jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
803
1175
|
var ContextMenu = ContextMenuPrimitive.Root;
|
|
804
1176
|
var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
805
1177
|
var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
@@ -810,7 +1182,7 @@ var SURFACE_CLASS = "z-50 min-w-[8rem] max-h-[var(--radix-context-menu-content-a
|
|
|
810
1182
|
var MOTION_CLASS = "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2";
|
|
811
1183
|
var ITEM_CLASS = "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
|
|
812
1184
|
var INDICATOR_ITEM_CLASS = "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
|
|
813
|
-
var ContextMenuSubTrigger =
|
|
1185
|
+
var ContextMenuSubTrigger = React12.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs6(
|
|
814
1186
|
ContextMenuPrimitive.SubTrigger,
|
|
815
1187
|
{
|
|
816
1188
|
ref,
|
|
@@ -823,12 +1195,12 @@ var ContextMenuSubTrigger = React10.forwardRef(({ className, inset, children, ..
|
|
|
823
1195
|
...props,
|
|
824
1196
|
children: [
|
|
825
1197
|
children,
|
|
826
|
-
/* @__PURE__ */
|
|
1198
|
+
/* @__PURE__ */ jsx14(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
|
|
827
1199
|
]
|
|
828
1200
|
}
|
|
829
1201
|
));
|
|
830
1202
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
831
|
-
var ContextMenuSubContent =
|
|
1203
|
+
var ContextMenuSubContent = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
832
1204
|
ContextMenuPrimitive.SubContent,
|
|
833
1205
|
{
|
|
834
1206
|
ref,
|
|
@@ -838,9 +1210,9 @@ var ContextMenuSubContent = React10.forwardRef(({ className, ...props }, ref) =>
|
|
|
838
1210
|
}
|
|
839
1211
|
));
|
|
840
1212
|
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
841
|
-
var ContextMenuContent =
|
|
1213
|
+
var ContextMenuContent = React12.forwardRef(({ className, container, ...props }, ref) => {
|
|
842
1214
|
const portalContainer = usePortalContainer(container);
|
|
843
|
-
return /* @__PURE__ */
|
|
1215
|
+
return /* @__PURE__ */ jsx14(ContextMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx14(
|
|
844
1216
|
ContextMenuPrimitive.Content,
|
|
845
1217
|
{
|
|
846
1218
|
ref,
|
|
@@ -851,7 +1223,7 @@ var ContextMenuContent = React10.forwardRef(({ className, container, ...props },
|
|
|
851
1223
|
) });
|
|
852
1224
|
});
|
|
853
1225
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
854
|
-
var ContextMenuItem =
|
|
1226
|
+
var ContextMenuItem = React12.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
855
1227
|
ContextMenuPrimitive.Item,
|
|
856
1228
|
{
|
|
857
1229
|
ref,
|
|
@@ -866,7 +1238,7 @@ var ContextMenuItem = React10.forwardRef(({ className, inset, ...props }, ref) =
|
|
|
866
1238
|
}
|
|
867
1239
|
));
|
|
868
1240
|
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
869
|
-
var ContextMenuCheckboxItem =
|
|
1241
|
+
var ContextMenuCheckboxItem = React12.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs6(
|
|
870
1242
|
ContextMenuPrimitive.CheckboxItem,
|
|
871
1243
|
{
|
|
872
1244
|
ref,
|
|
@@ -874,13 +1246,13 @@ var ContextMenuCheckboxItem = React10.forwardRef(({ className, children, ...prop
|
|
|
874
1246
|
className: cn(INDICATOR_ITEM_CLASS, className),
|
|
875
1247
|
...props,
|
|
876
1248
|
children: [
|
|
877
|
-
/* @__PURE__ */
|
|
1249
|
+
/* @__PURE__ */ jsx14("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx14(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx14(CheckIcon, { className: "h-4 w-4" }) }) }),
|
|
878
1250
|
children
|
|
879
1251
|
]
|
|
880
1252
|
}
|
|
881
1253
|
));
|
|
882
1254
|
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
883
|
-
var ContextMenuRadioItem =
|
|
1255
|
+
var ContextMenuRadioItem = React12.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs6(
|
|
884
1256
|
ContextMenuPrimitive.RadioItem,
|
|
885
1257
|
{
|
|
886
1258
|
ref,
|
|
@@ -888,13 +1260,13 @@ var ContextMenuRadioItem = React10.forwardRef(({ className, children, ...props }
|
|
|
888
1260
|
className: cn(INDICATOR_ITEM_CLASS, className),
|
|
889
1261
|
...props,
|
|
890
1262
|
children: [
|
|
891
|
-
/* @__PURE__ */
|
|
1263
|
+
/* @__PURE__ */ jsx14("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx14(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx14(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
|
|
892
1264
|
children
|
|
893
1265
|
]
|
|
894
1266
|
}
|
|
895
1267
|
));
|
|
896
1268
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
897
|
-
var ContextMenuLabel =
|
|
1269
|
+
var ContextMenuLabel = React12.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
898
1270
|
ContextMenuPrimitive.Label,
|
|
899
1271
|
{
|
|
900
1272
|
ref,
|
|
@@ -908,7 +1280,7 @@ var ContextMenuLabel = React10.forwardRef(({ className, inset, ...props }, ref)
|
|
|
908
1280
|
}
|
|
909
1281
|
));
|
|
910
1282
|
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
911
|
-
var ContextMenuSeparator =
|
|
1283
|
+
var ContextMenuSeparator = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
912
1284
|
ContextMenuPrimitive.Separator,
|
|
913
1285
|
{
|
|
914
1286
|
ref,
|
|
@@ -921,7 +1293,7 @@ ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
|
921
1293
|
var ContextMenuShortcut = ({
|
|
922
1294
|
className,
|
|
923
1295
|
...props
|
|
924
|
-
}) => /* @__PURE__ */
|
|
1296
|
+
}) => /* @__PURE__ */ jsx14(
|
|
925
1297
|
"span",
|
|
926
1298
|
{
|
|
927
1299
|
"data-slot": "context-menu-shortcut",
|
|
@@ -939,15 +1311,15 @@ import {
|
|
|
939
1311
|
|
|
940
1312
|
// src/popover.tsx
|
|
941
1313
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
942
|
-
import * as
|
|
943
|
-
import { jsx as
|
|
1314
|
+
import * as React13 from "react";
|
|
1315
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
944
1316
|
var Popover = PopoverPrimitive.Root;
|
|
945
1317
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
946
1318
|
var PopoverAnchor = PopoverPrimitive.Anchor;
|
|
947
|
-
var PopoverContent =
|
|
1319
|
+
var PopoverContent = React13.forwardRef(
|
|
948
1320
|
({ className, align = "center", sideOffset = 4, container, ...props }, ref) => {
|
|
949
1321
|
const portalContainer = usePortalContainer(container);
|
|
950
|
-
return /* @__PURE__ */
|
|
1322
|
+
return /* @__PURE__ */ jsx15(PopoverPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx15(
|
|
951
1323
|
PopoverPrimitive.Content,
|
|
952
1324
|
{
|
|
953
1325
|
ref,
|
|
@@ -971,7 +1343,7 @@ var PopoverContent = React11.forwardRef(
|
|
|
971
1343
|
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
972
1344
|
|
|
973
1345
|
// src/creatable-picker.tsx
|
|
974
|
-
import { jsx as
|
|
1346
|
+
import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
975
1347
|
function article(noun) {
|
|
976
1348
|
return /^[aeiou]/i.test(noun.trim()) ? `an ${noun}` : `a ${noun}`;
|
|
977
1349
|
}
|
|
@@ -1046,8 +1418,8 @@ function CreatablePicker({
|
|
|
1046
1418
|
setBusy(false);
|
|
1047
1419
|
}
|
|
1048
1420
|
};
|
|
1049
|
-
return /* @__PURE__ */
|
|
1050
|
-
/* @__PURE__ */
|
|
1421
|
+
return /* @__PURE__ */ jsxs7(Popover, { open, onOpenChange: (next) => next ? setOpen(true) : close(), children: [
|
|
1422
|
+
/* @__PURE__ */ jsx16(PopoverTrigger, { asChild: true, disabled, children: /* @__PURE__ */ jsxs7(
|
|
1051
1423
|
"button",
|
|
1052
1424
|
{
|
|
1053
1425
|
type: "button",
|
|
@@ -1061,12 +1433,12 @@ function CreatablePicker({
|
|
|
1061
1433
|
triggerClassName
|
|
1062
1434
|
),
|
|
1063
1435
|
children: [
|
|
1064
|
-
/* @__PURE__ */
|
|
1065
|
-
/* @__PURE__ */
|
|
1436
|
+
/* @__PURE__ */ jsx16("span", { className: "min-w-0 flex-1 truncate", children: selected ? renderSelected ?? selected.render ?? selected.label : /* @__PURE__ */ jsx16("span", { className: "text-muted-foreground", children: loading ? "Loading\u2026" : placeholder }) }),
|
|
1437
|
+
/* @__PURE__ */ jsx16(ChevronsUpDownIcon, { className: "size-3.5 shrink-0 opacity-50" })
|
|
1066
1438
|
]
|
|
1067
1439
|
}
|
|
1068
1440
|
) }),
|
|
1069
|
-
/* @__PURE__ */
|
|
1441
|
+
/* @__PURE__ */ jsx16(PopoverContent, { align: "start", className: "w-[--radix-popover-trigger-width] min-w-56 p-0", children: /* @__PURE__ */ jsxs7(
|
|
1070
1442
|
Command,
|
|
1071
1443
|
{
|
|
1072
1444
|
filter: (itemValue, search, keywords) => {
|
|
@@ -1074,7 +1446,7 @@ function CreatablePicker({
|
|
|
1074
1446
|
return haystack.includes(search.toLowerCase()) ? 1 : 0;
|
|
1075
1447
|
},
|
|
1076
1448
|
children: [
|
|
1077
|
-
/* @__PURE__ */
|
|
1449
|
+
/* @__PURE__ */ jsx16(
|
|
1078
1450
|
CommandInput,
|
|
1079
1451
|
{
|
|
1080
1452
|
ref: inputRef,
|
|
@@ -1086,13 +1458,13 @@ function CreatablePicker({
|
|
|
1086
1458
|
placeholder: searchPlaceholder ?? `Search or add ${article(noun)}\u2026`
|
|
1087
1459
|
}
|
|
1088
1460
|
),
|
|
1089
|
-
/* @__PURE__ */
|
|
1090
|
-
/* @__PURE__ */
|
|
1091
|
-
groups.map((group) => /* @__PURE__ */
|
|
1461
|
+
/* @__PURE__ */ jsxs7(CommandList, { children: [
|
|
1462
|
+
/* @__PURE__ */ jsx16(CommandEmpty, { children: emptyLabel }),
|
|
1463
|
+
groups.map((group) => /* @__PURE__ */ jsx16(
|
|
1092
1464
|
CommandGroup,
|
|
1093
1465
|
{
|
|
1094
1466
|
...group.heading === void 0 ? {} : { heading: group.heading },
|
|
1095
|
-
children: group.options.map((option) => /* @__PURE__ */
|
|
1467
|
+
children: group.options.map((option) => /* @__PURE__ */ jsxs7(
|
|
1096
1468
|
CommandItem,
|
|
1097
1469
|
{
|
|
1098
1470
|
value: option.label,
|
|
@@ -1103,7 +1475,7 @@ function CreatablePicker({
|
|
|
1103
1475
|
},
|
|
1104
1476
|
className: "gap-2 text-xs",
|
|
1105
1477
|
children: [
|
|
1106
|
-
/* @__PURE__ */
|
|
1478
|
+
/* @__PURE__ */ jsx16(
|
|
1107
1479
|
LucideCheckIcon,
|
|
1108
1480
|
{
|
|
1109
1481
|
className: cn(
|
|
@@ -1112,8 +1484,8 @@ function CreatablePicker({
|
|
|
1112
1484
|
)
|
|
1113
1485
|
}
|
|
1114
1486
|
),
|
|
1115
|
-
/* @__PURE__ */
|
|
1116
|
-
option.hint ? /* @__PURE__ */
|
|
1487
|
+
/* @__PURE__ */ jsx16("span", { className: "min-w-0 flex-1 truncate", children: option.render ?? option.label }),
|
|
1488
|
+
option.hint ? /* @__PURE__ */ jsx16("span", { className: "shrink-0 text-[10px] text-muted-foreground", children: option.hint }) : null
|
|
1117
1489
|
]
|
|
1118
1490
|
},
|
|
1119
1491
|
option.value
|
|
@@ -1122,9 +1494,9 @@ function CreatablePicker({
|
|
|
1122
1494
|
group.heading ?? "__ungrouped__"
|
|
1123
1495
|
))
|
|
1124
1496
|
] }),
|
|
1125
|
-
canCreate ? /* @__PURE__ */
|
|
1126
|
-
createExtra && typed && !exactMatch ? /* @__PURE__ */
|
|
1127
|
-
/* @__PURE__ */
|
|
1497
|
+
canCreate ? /* @__PURE__ */ jsxs7("div", { className: "space-y-1 border-t border-border p-1", children: [
|
|
1498
|
+
createExtra && typed && !exactMatch ? /* @__PURE__ */ jsx16("div", { className: "px-1 pt-0.5", children: typeof createExtra === "function" ? createExtra(typed) : createExtra }) : null,
|
|
1499
|
+
/* @__PURE__ */ jsxs7(
|
|
1128
1500
|
"button",
|
|
1129
1501
|
{
|
|
1130
1502
|
type: "button",
|
|
@@ -1132,22 +1504,22 @@ function CreatablePicker({
|
|
|
1132
1504
|
onClick: () => void create(typed),
|
|
1133
1505
|
className: "flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground disabled:opacity-50",
|
|
1134
1506
|
children: [
|
|
1135
|
-
busy ? /* @__PURE__ */
|
|
1136
|
-
/* @__PURE__ */
|
|
1507
|
+
busy ? /* @__PURE__ */ jsx16(Loader2Icon, { className: "size-3.5 shrink-0 animate-spin" }) : /* @__PURE__ */ jsx16(PlusIcon, { className: "size-3.5 shrink-0" }),
|
|
1508
|
+
/* @__PURE__ */ jsx16("span", { className: "min-w-0 truncate", children: typed && !exactMatch ? `Create \u201C${typed}\u201D` : `Add ${article(noun)}\u2026` })
|
|
1137
1509
|
]
|
|
1138
1510
|
}
|
|
1139
1511
|
),
|
|
1140
|
-
needsName ? /* @__PURE__ */
|
|
1512
|
+
needsName ? /* @__PURE__ */ jsxs7("p", { className: "px-2 pb-0.5 text-[11px] leading-snug text-muted-foreground", children: [
|
|
1141
1513
|
"Type the name of the ",
|
|
1142
1514
|
noun,
|
|
1143
1515
|
" you want to add \u2014 then this creates it."
|
|
1144
1516
|
] }) : null
|
|
1145
1517
|
] }) : null,
|
|
1146
|
-
footerActions?.length || manageAction ? /* @__PURE__ */
|
|
1518
|
+
footerActions?.length || manageAction ? /* @__PURE__ */ jsxs7("div", { className: "space-y-0.5 border-t border-border p-1", children: [
|
|
1147
1519
|
footerActions?.map((action) => {
|
|
1148
1520
|
const Icon2 = action.icon;
|
|
1149
|
-
return /* @__PURE__ */
|
|
1150
|
-
/* @__PURE__ */
|
|
1521
|
+
return /* @__PURE__ */ jsxs7("div", { children: [
|
|
1522
|
+
/* @__PURE__ */ jsxs7(
|
|
1151
1523
|
"button",
|
|
1152
1524
|
{
|
|
1153
1525
|
type: "button",
|
|
@@ -1157,15 +1529,15 @@ function CreatablePicker({
|
|
|
1157
1529
|
},
|
|
1158
1530
|
className: "flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",
|
|
1159
1531
|
children: [
|
|
1160
|
-
Icon2 ? /* @__PURE__ */
|
|
1161
|
-
/* @__PURE__ */
|
|
1532
|
+
Icon2 ? /* @__PURE__ */ jsx16(Icon2, { className: "size-3.5 shrink-0" }) : null,
|
|
1533
|
+
/* @__PURE__ */ jsx16("span", { className: "min-w-0 truncate", children: action.label })
|
|
1162
1534
|
]
|
|
1163
1535
|
}
|
|
1164
1536
|
),
|
|
1165
|
-
action.note ? /* @__PURE__ */
|
|
1537
|
+
action.note ? /* @__PURE__ */ jsx16("p", { className: "px-2 pb-1 text-[10px] leading-snug text-muted-foreground", children: action.note }) : null
|
|
1166
1538
|
] }, action.label);
|
|
1167
1539
|
}),
|
|
1168
|
-
manageAction ? /* @__PURE__ */
|
|
1540
|
+
manageAction ? /* @__PURE__ */ jsxs7(
|
|
1169
1541
|
"a",
|
|
1170
1542
|
{
|
|
1171
1543
|
href: manageAction.href,
|
|
@@ -1174,18 +1546,18 @@ function CreatablePicker({
|
|
|
1174
1546
|
onClick: close,
|
|
1175
1547
|
className: "flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",
|
|
1176
1548
|
children: [
|
|
1177
|
-
/* @__PURE__ */
|
|
1178
|
-
/* @__PURE__ */
|
|
1549
|
+
/* @__PURE__ */ jsx16(ExternalLinkIcon, { className: "size-3.5 shrink-0" }),
|
|
1550
|
+
/* @__PURE__ */ jsx16("span", { className: "min-w-0 truncate", children: manageAction.label })
|
|
1179
1551
|
]
|
|
1180
1552
|
}
|
|
1181
1553
|
) : null
|
|
1182
1554
|
] }) : null,
|
|
1183
|
-
lockedNote ? /* @__PURE__ */
|
|
1184
|
-
/* @__PURE__ */
|
|
1185
|
-
/* @__PURE__ */
|
|
1186
|
-
/* @__PURE__ */
|
|
1555
|
+
lockedNote ? /* @__PURE__ */ jsxs7("div", { className: "space-y-1 border-t border-border p-2", children: [
|
|
1556
|
+
/* @__PURE__ */ jsxs7("p", { className: "flex gap-1.5 text-[11px] leading-snug text-muted-foreground", children: [
|
|
1557
|
+
/* @__PURE__ */ jsx16(LockIcon, { className: "mt-px size-3 shrink-0" }),
|
|
1558
|
+
/* @__PURE__ */ jsx16("span", { children: lockedNote })
|
|
1187
1559
|
] }),
|
|
1188
|
-
lockedAction ? /* @__PURE__ */
|
|
1560
|
+
lockedAction ? /* @__PURE__ */ jsxs7(
|
|
1189
1561
|
"button",
|
|
1190
1562
|
{
|
|
1191
1563
|
type: "button",
|
|
@@ -1195,8 +1567,8 @@ function CreatablePicker({
|
|
|
1195
1567
|
},
|
|
1196
1568
|
className: "flex w-full items-center gap-2 rounded-sm px-1 py-1 text-left text-xs font-medium text-primary transition-colors hover:bg-accent",
|
|
1197
1569
|
children: [
|
|
1198
|
-
/* @__PURE__ */
|
|
1199
|
-
/* @__PURE__ */
|
|
1570
|
+
/* @__PURE__ */ jsx16(PlusIcon, { className: "size-3.5 shrink-0" }),
|
|
1571
|
+
/* @__PURE__ */ jsx16("span", { className: "min-w-0 truncate", children: lockedAction.label })
|
|
1200
1572
|
]
|
|
1201
1573
|
}
|
|
1202
1574
|
) : null
|
|
@@ -1210,15 +1582,15 @@ function CreatablePicker({
|
|
|
1210
1582
|
// src/dialog.tsx
|
|
1211
1583
|
import * as DialogPrimitive2 from "@radix-ui/react-dialog";
|
|
1212
1584
|
import * as VisuallyHidden2 from "@radix-ui/react-visually-hidden";
|
|
1213
|
-
import { treeContainsComponent } from "@ai-matrx/kit/react-tree";
|
|
1214
|
-
import * as
|
|
1215
|
-
import { jsx as
|
|
1585
|
+
import { treeContainsComponent as treeContainsComponent3 } from "@ai-matrx/kit/react-tree";
|
|
1586
|
+
import * as React14 from "react";
|
|
1587
|
+
import { jsx as jsx17, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1216
1588
|
var Dialog = ({
|
|
1217
1589
|
children,
|
|
1218
1590
|
...props
|
|
1219
1591
|
}) => {
|
|
1220
1592
|
const modal = props.modal ?? true;
|
|
1221
|
-
return /* @__PURE__ */
|
|
1593
|
+
return /* @__PURE__ */ jsx17(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ jsx17(DialogPrimitive2.Root, { ...props, modal, children }) });
|
|
1222
1594
|
};
|
|
1223
1595
|
Dialog.displayName = "Dialog";
|
|
1224
1596
|
var DialogTrigger = DialogPrimitive2.Trigger;
|
|
@@ -1228,12 +1600,12 @@ var DialogPortal = ({
|
|
|
1228
1600
|
...props
|
|
1229
1601
|
}) => {
|
|
1230
1602
|
const resolved = usePortalContainer(container);
|
|
1231
|
-
return /* @__PURE__ */
|
|
1603
|
+
return /* @__PURE__ */ jsx17(DialogPrimitive2.Portal, { container: resolved ?? null, ...props });
|
|
1232
1604
|
};
|
|
1233
1605
|
DialogPortal.displayName = "DialogPortal";
|
|
1234
|
-
var DialogContainerContext =
|
|
1235
|
-
var useDialogContainer = () =>
|
|
1236
|
-
var DialogOverlay =
|
|
1606
|
+
var DialogContainerContext = React14.createContext(null);
|
|
1607
|
+
var useDialogContainer = () => React14.useContext(DialogContainerContext);
|
|
1608
|
+
var DialogOverlay = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
|
|
1237
1609
|
DialogPrimitive2.Overlay,
|
|
1238
1610
|
{
|
|
1239
1611
|
ref,
|
|
@@ -1248,9 +1620,9 @@ var DialogOverlay = React12.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
1248
1620
|
}
|
|
1249
1621
|
));
|
|
1250
1622
|
DialogOverlay.displayName = DialogPrimitive2.Overlay.displayName;
|
|
1251
|
-
var DialogContentPrimitive =
|
|
1623
|
+
var DialogContentPrimitive = React14.forwardRef((props, ref) => {
|
|
1252
1624
|
const isModal = useRadixDialogModal();
|
|
1253
|
-
return /* @__PURE__ */
|
|
1625
|
+
return /* @__PURE__ */ jsx17(
|
|
1254
1626
|
DialogPrimitive2.Content,
|
|
1255
1627
|
{
|
|
1256
1628
|
...props,
|
|
@@ -1263,7 +1635,7 @@ DialogContentPrimitive.displayName = "DialogContentPrimitive";
|
|
|
1263
1635
|
var DIALOG_DESKTOP_CLASSES2 = "fixed left-[50%] top-[50%] z-[10000] grid min-w-0 w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 max-h-[85dvh] overflow-y-auto overscroll-contain [--dialog-pad:1.5rem] overflow-x-clip border bg-background p-6 shadow-lg [overflow-wrap:anywhere] [&>*]:min-w-0 [&>*]:max-w-full duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg";
|
|
1264
1636
|
var DIALOG_MOBILE_SHEET_CLASSES2 = "matrx-mobile-sheet fixed inset-x-0 bottom-0 left-0 right-0 top-auto z-[10000] flex min-w-0 flex-col w-full max-w-full max-h-[90dvh] translate-x-0 translate-y-0 gap-4 [--dialog-pad:1rem] overflow-x-clip border-t bg-background p-4 pb-safe shadow-lg [overflow-wrap:anywhere] [&>*]:min-w-0 [&>*]:max-w-full duration-200 rounded-t-2xl rounded-b-none overflow-y-auto overscroll-contain data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom";
|
|
1265
1637
|
var DIALOG_MOBILE_SHEET_OVERRIDE2 = "inset-x-0 bottom-0 left-0 right-0 top-auto translate-x-0 translate-y-0 w-full max-w-full max-h-[90dvh] rounded-b-none rounded-t-2xl overflow-y-auto";
|
|
1266
|
-
var DialogContent =
|
|
1638
|
+
var DialogContent = React14.forwardRef(
|
|
1267
1639
|
({
|
|
1268
1640
|
className,
|
|
1269
1641
|
children,
|
|
@@ -1276,10 +1648,10 @@ var DialogContent = React12.forwardRef(
|
|
|
1276
1648
|
const isModal = useRadixDialogModal();
|
|
1277
1649
|
const injectedContainer = usePortalContainer(container);
|
|
1278
1650
|
const asSheet = mobileSheet && isMobile;
|
|
1279
|
-
const [containerEl, setContainerEl] =
|
|
1651
|
+
const [containerEl, setContainerEl] = React14.useState(
|
|
1280
1652
|
null
|
|
1281
1653
|
);
|
|
1282
|
-
const mergedRef =
|
|
1654
|
+
const mergedRef = React14.useCallback(
|
|
1283
1655
|
(node) => {
|
|
1284
1656
|
setContainerEl(node);
|
|
1285
1657
|
if (typeof ref === "function") ref(node);
|
|
@@ -1288,11 +1660,11 @@ var DialogContent = React12.forwardRef(
|
|
|
1288
1660
|
},
|
|
1289
1661
|
[ref]
|
|
1290
1662
|
);
|
|
1291
|
-
const hasTitle =
|
|
1292
|
-
const hasDescription =
|
|
1293
|
-
return /* @__PURE__ */
|
|
1294
|
-
isModal ? /* @__PURE__ */
|
|
1295
|
-
/* @__PURE__ */
|
|
1663
|
+
const hasTitle = treeContainsComponent3(children, DialogTitle) || treeContainsComponent3(children, DialogPrimitive2.Title);
|
|
1664
|
+
const hasDescription = treeContainsComponent3(children, DialogDescription) || treeContainsComponent3(children, DialogPrimitive2.Description);
|
|
1665
|
+
return /* @__PURE__ */ jsxs8(DialogPortal, { container, children: [
|
|
1666
|
+
isModal ? /* @__PURE__ */ jsx17(DialogOverlay, {}) : null,
|
|
1667
|
+
/* @__PURE__ */ jsxs8(
|
|
1296
1668
|
DialogContentPrimitive,
|
|
1297
1669
|
{
|
|
1298
1670
|
ref: mergedRef,
|
|
@@ -1310,23 +1682,23 @@ var DialogContent = React12.forwardRef(
|
|
|
1310
1682
|
...hasDescription ? {} : { "aria-describedby": void 0 },
|
|
1311
1683
|
...props,
|
|
1312
1684
|
children: [
|
|
1313
|
-
hasTitle ? null : /* @__PURE__ */
|
|
1314
|
-
/* @__PURE__ */
|
|
1685
|
+
hasTitle ? null : /* @__PURE__ */ jsx17(VisuallyHidden2.Root, { children: /* @__PURE__ */ jsx17(DialogPrimitive2.Title, { children: "Dialog" }) }),
|
|
1686
|
+
/* @__PURE__ */ jsx17(DialogContainerContext.Provider, { value: containerEl, children: /* @__PURE__ */ jsx17(
|
|
1315
1687
|
PortalContainerProvider,
|
|
1316
1688
|
{
|
|
1317
1689
|
container: containerEl ?? injectedContainer ?? null,
|
|
1318
1690
|
children
|
|
1319
1691
|
}
|
|
1320
1692
|
) }),
|
|
1321
|
-
showCloseButton ? /* @__PURE__ */
|
|
1693
|
+
showCloseButton ? /* @__PURE__ */ jsxs8(
|
|
1322
1694
|
DialogPrimitive2.Close,
|
|
1323
1695
|
{
|
|
1324
1696
|
"data-slot": "dialog-close",
|
|
1325
1697
|
"aria-label": "Close",
|
|
1326
1698
|
className: "absolute right-2 top-4 flex h-11 w-11 items-center justify-center rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground sm:right-4 lg:h-10 lg:w-10",
|
|
1327
1699
|
children: [
|
|
1328
|
-
/* @__PURE__ */
|
|
1329
|
-
/* @__PURE__ */
|
|
1700
|
+
/* @__PURE__ */ jsx17(XIcon, { className: "h-4 w-4" }),
|
|
1701
|
+
/* @__PURE__ */ jsx17("span", { className: "sr-only", children: "Close" })
|
|
1330
1702
|
]
|
|
1331
1703
|
}
|
|
1332
1704
|
) : null
|
|
@@ -1340,7 +1712,7 @@ DialogContent.displayName = DialogPrimitive2.Content.displayName;
|
|
|
1340
1712
|
var DialogHeader = ({
|
|
1341
1713
|
className,
|
|
1342
1714
|
...props
|
|
1343
|
-
}) => /* @__PURE__ */
|
|
1715
|
+
}) => /* @__PURE__ */ jsx17(
|
|
1344
1716
|
"div",
|
|
1345
1717
|
{
|
|
1346
1718
|
"data-slot": "dialog-header",
|
|
@@ -1357,7 +1729,7 @@ DialogHeader.displayName = "DialogHeader";
|
|
|
1357
1729
|
var DialogFooter = ({
|
|
1358
1730
|
className,
|
|
1359
1731
|
...props
|
|
1360
|
-
}) => /* @__PURE__ */
|
|
1732
|
+
}) => /* @__PURE__ */ jsx17(
|
|
1361
1733
|
"div",
|
|
1362
1734
|
{
|
|
1363
1735
|
"data-slot": "dialog-footer",
|
|
@@ -1371,7 +1743,7 @@ var DialogFooter = ({
|
|
|
1371
1743
|
}
|
|
1372
1744
|
);
|
|
1373
1745
|
DialogFooter.displayName = "DialogFooter";
|
|
1374
|
-
var DialogTitle =
|
|
1746
|
+
var DialogTitle = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
|
|
1375
1747
|
DialogPrimitive2.Title,
|
|
1376
1748
|
{
|
|
1377
1749
|
ref,
|
|
@@ -1381,7 +1753,7 @@ var DialogTitle = React12.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1381
1753
|
}
|
|
1382
1754
|
));
|
|
1383
1755
|
DialogTitle.displayName = DialogPrimitive2.Title.displayName;
|
|
1384
|
-
var DialogDescription =
|
|
1756
|
+
var DialogDescription = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
|
|
1385
1757
|
DialogPrimitive2.Description,
|
|
1386
1758
|
{
|
|
1387
1759
|
ref,
|
|
@@ -1394,8 +1766,8 @@ DialogDescription.displayName = DialogPrimitive2.Description.displayName;
|
|
|
1394
1766
|
|
|
1395
1767
|
// src/dropdown-menu.tsx
|
|
1396
1768
|
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
1397
|
-
import * as
|
|
1398
|
-
import { jsx as
|
|
1769
|
+
import * as React15 from "react";
|
|
1770
|
+
import { jsx as jsx18, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1399
1771
|
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
1400
1772
|
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
1401
1773
|
var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
@@ -1406,7 +1778,7 @@ var MENU_SURFACE_CLASS = "z-[10001] min-w-[8rem] max-h-[var(--radix-dropdown-men
|
|
|
1406
1778
|
var MENU_MOTION_CLASS = "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2";
|
|
1407
1779
|
var MENU_ITEM_CLASS = "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
|
|
1408
1780
|
var MENU_INDICATOR_ITEM_CLASS = "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
|
|
1409
|
-
var DropdownMenuSubTrigger =
|
|
1781
|
+
var DropdownMenuSubTrigger = React15.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs9(
|
|
1410
1782
|
DropdownMenuPrimitive.SubTrigger,
|
|
1411
1783
|
{
|
|
1412
1784
|
ref,
|
|
@@ -1419,12 +1791,12 @@ var DropdownMenuSubTrigger = React13.forwardRef(({ className, inset, children, .
|
|
|
1419
1791
|
...props,
|
|
1420
1792
|
children: [
|
|
1421
1793
|
children,
|
|
1422
|
-
/* @__PURE__ */
|
|
1794
|
+
/* @__PURE__ */ jsx18(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
|
|
1423
1795
|
]
|
|
1424
1796
|
}
|
|
1425
1797
|
));
|
|
1426
1798
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
1427
|
-
var DropdownMenuSubContent =
|
|
1799
|
+
var DropdownMenuSubContent = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
1428
1800
|
DropdownMenuPrimitive.SubContent,
|
|
1429
1801
|
{
|
|
1430
1802
|
ref,
|
|
@@ -1434,9 +1806,9 @@ var DropdownMenuSubContent = React13.forwardRef(({ className, ...props }, ref) =
|
|
|
1434
1806
|
}
|
|
1435
1807
|
));
|
|
1436
1808
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
1437
|
-
var DropdownMenuContent =
|
|
1809
|
+
var DropdownMenuContent = React15.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => {
|
|
1438
1810
|
const portalContainer = usePortalContainer(container);
|
|
1439
|
-
return /* @__PURE__ */
|
|
1811
|
+
return /* @__PURE__ */ jsx18(DropdownMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx18(
|
|
1440
1812
|
DropdownMenuPrimitive.Content,
|
|
1441
1813
|
{
|
|
1442
1814
|
ref,
|
|
@@ -1453,7 +1825,7 @@ var DropdownMenuContent = React13.forwardRef(({ className, sideOffset = 4, conta
|
|
|
1453
1825
|
) });
|
|
1454
1826
|
});
|
|
1455
1827
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
1456
|
-
var DropdownMenuItem =
|
|
1828
|
+
var DropdownMenuItem = React15.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
1457
1829
|
DropdownMenuPrimitive.Item,
|
|
1458
1830
|
{
|
|
1459
1831
|
ref,
|
|
@@ -1463,7 +1835,7 @@ var DropdownMenuItem = React13.forwardRef(({ className, inset, ...props }, ref)
|
|
|
1463
1835
|
}
|
|
1464
1836
|
));
|
|
1465
1837
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
1466
|
-
var DropdownMenuCheckboxItem =
|
|
1838
|
+
var DropdownMenuCheckboxItem = React15.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs9(
|
|
1467
1839
|
DropdownMenuPrimitive.CheckboxItem,
|
|
1468
1840
|
{
|
|
1469
1841
|
ref,
|
|
@@ -1471,13 +1843,13 @@ var DropdownMenuCheckboxItem = React13.forwardRef(({ className, children, ...pro
|
|
|
1471
1843
|
className: cn(MENU_INDICATOR_ITEM_CLASS, className),
|
|
1472
1844
|
...props,
|
|
1473
1845
|
children: [
|
|
1474
|
-
/* @__PURE__ */
|
|
1846
|
+
/* @__PURE__ */ jsx18("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx18(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx18(CheckIcon, { className: "h-4 w-4" }) }) }),
|
|
1475
1847
|
children
|
|
1476
1848
|
]
|
|
1477
1849
|
}
|
|
1478
1850
|
));
|
|
1479
1851
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
1480
|
-
var DropdownMenuRadioItem =
|
|
1852
|
+
var DropdownMenuRadioItem = React15.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs9(
|
|
1481
1853
|
DropdownMenuPrimitive.RadioItem,
|
|
1482
1854
|
{
|
|
1483
1855
|
ref,
|
|
@@ -1485,13 +1857,13 @@ var DropdownMenuRadioItem = React13.forwardRef(({ className, children, ...props
|
|
|
1485
1857
|
className: cn(MENU_INDICATOR_ITEM_CLASS, className),
|
|
1486
1858
|
...props,
|
|
1487
1859
|
children: [
|
|
1488
|
-
/* @__PURE__ */
|
|
1860
|
+
/* @__PURE__ */ jsx18("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx18(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx18(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
|
|
1489
1861
|
children
|
|
1490
1862
|
]
|
|
1491
1863
|
}
|
|
1492
1864
|
));
|
|
1493
1865
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
1494
|
-
var DropdownMenuLabel =
|
|
1866
|
+
var DropdownMenuLabel = React15.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
1495
1867
|
DropdownMenuPrimitive.Label,
|
|
1496
1868
|
{
|
|
1497
1869
|
ref,
|
|
@@ -1501,7 +1873,7 @@ var DropdownMenuLabel = React13.forwardRef(({ className, inset, ...props }, ref)
|
|
|
1501
1873
|
}
|
|
1502
1874
|
));
|
|
1503
1875
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
1504
|
-
var DropdownMenuSeparator =
|
|
1876
|
+
var DropdownMenuSeparator = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
1505
1877
|
DropdownMenuPrimitive.Separator,
|
|
1506
1878
|
{
|
|
1507
1879
|
ref,
|
|
@@ -1514,7 +1886,7 @@ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
|
1514
1886
|
var DropdownMenuShortcut = ({
|
|
1515
1887
|
className,
|
|
1516
1888
|
...props
|
|
1517
|
-
}) => /* @__PURE__ */
|
|
1889
|
+
}) => /* @__PURE__ */ jsx18(
|
|
1518
1890
|
"span",
|
|
1519
1891
|
{
|
|
1520
1892
|
"data-slot": "dropdown-menu-shortcut",
|
|
@@ -1526,7 +1898,7 @@ DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
|
1526
1898
|
|
|
1527
1899
|
// src/editable-label.tsx
|
|
1528
1900
|
import { useCallback as useCallback2, useEffect as useEffect2, useRef as useRef2, useState as useState4 } from "react";
|
|
1529
|
-
import { jsx as
|
|
1901
|
+
import { jsx as jsx19, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1530
1902
|
function EditableLabel({
|
|
1531
1903
|
value,
|
|
1532
1904
|
onCommit,
|
|
@@ -1633,8 +2005,8 @@ function EditableLabel({
|
|
|
1633
2005
|
setEditing
|
|
1634
2006
|
]);
|
|
1635
2007
|
if (editing) {
|
|
1636
|
-
return /* @__PURE__ */
|
|
1637
|
-
/* @__PURE__ */
|
|
2008
|
+
return /* @__PURE__ */ jsxs10("span", { className: cn("relative flex min-w-0 flex-1 items-center", className), children: [
|
|
2009
|
+
/* @__PURE__ */ jsx19(
|
|
1638
2010
|
"input",
|
|
1639
2011
|
{
|
|
1640
2012
|
ref: inputRef,
|
|
@@ -1674,12 +2046,12 @@ function EditableLabel({
|
|
|
1674
2046
|
)
|
|
1675
2047
|
}
|
|
1676
2048
|
),
|
|
1677
|
-
busy && /* @__PURE__ */
|
|
1678
|
-
error && /* @__PURE__ */
|
|
2049
|
+
busy && /* @__PURE__ */ jsx19(Loader2Icon, { className: "absolute right-1 h-3.5 w-3.5 animate-spin text-muted-foreground" }),
|
|
2050
|
+
error && /* @__PURE__ */ jsx19("span", { className: "absolute left-0 top-full mt-0.5 whitespace-nowrap text-xs text-destructive", children: error })
|
|
1679
2051
|
] });
|
|
1680
2052
|
}
|
|
1681
2053
|
if (controlled) return null;
|
|
1682
|
-
return /* @__PURE__ */
|
|
2054
|
+
return /* @__PURE__ */ jsx19(
|
|
1683
2055
|
"button",
|
|
1684
2056
|
{
|
|
1685
2057
|
type: "button",
|
|
@@ -1713,8 +2085,8 @@ function EditableLabel({
|
|
|
1713
2085
|
}
|
|
1714
2086
|
|
|
1715
2087
|
// src/input.tsx
|
|
1716
|
-
import * as
|
|
1717
|
-
import { jsx as
|
|
2088
|
+
import * as React16 from "react";
|
|
2089
|
+
import { jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1718
2090
|
var getVariantStyles = (variant = "default") => {
|
|
1719
2091
|
const baseStyles = `flex h-10 w-full border border-border bg-background text-foreground shadow-input rounded-md px-3 py-2 text-sm file:border-0 file:bg-transparent
|
|
1720
2092
|
file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground
|
|
@@ -1742,9 +2114,9 @@ var getVariantStyles = (variant = "default") => {
|
|
|
1742
2114
|
return baseStyles;
|
|
1743
2115
|
}
|
|
1744
2116
|
};
|
|
1745
|
-
var Input =
|
|
2117
|
+
var Input = React16.forwardRef(
|
|
1746
2118
|
({ className, type, variant = "default", ...props }, ref) => {
|
|
1747
|
-
return /* @__PURE__ */
|
|
2119
|
+
return /* @__PURE__ */ jsx20(
|
|
1748
2120
|
"input",
|
|
1749
2121
|
{
|
|
1750
2122
|
type,
|
|
@@ -1756,7 +2128,7 @@ var Input = React14.forwardRef(
|
|
|
1756
2128
|
}
|
|
1757
2129
|
);
|
|
1758
2130
|
Input.displayName = "Input";
|
|
1759
|
-
var EnterInput =
|
|
2131
|
+
var EnterInput = React16.forwardRef(
|
|
1760
2132
|
({ onEnter, ...props }, ref) => {
|
|
1761
2133
|
const handleKeyDown = (e) => {
|
|
1762
2134
|
if (e.key === "Enter" && onEnter) {
|
|
@@ -1764,7 +2136,7 @@ var EnterInput = React14.forwardRef(
|
|
|
1764
2136
|
onEnter();
|
|
1765
2137
|
}
|
|
1766
2138
|
};
|
|
1767
|
-
return /* @__PURE__ */
|
|
2139
|
+
return /* @__PURE__ */ jsx20(
|
|
1768
2140
|
Input,
|
|
1769
2141
|
{
|
|
1770
2142
|
...props,
|
|
@@ -1780,11 +2152,11 @@ var EnterInput = React14.forwardRef(
|
|
|
1780
2152
|
}
|
|
1781
2153
|
);
|
|
1782
2154
|
EnterInput.displayName = "EnterInput";
|
|
1783
|
-
var BasicInput =
|
|
2155
|
+
var BasicInput = React16.forwardRef(
|
|
1784
2156
|
// `variant` is accepted (prop-compatible with Input) but intentionally
|
|
1785
2157
|
// unused — and destructured so it never leaks onto the DOM element.
|
|
1786
2158
|
({ className, type, variant: _variant = "default", ...props }, ref) => {
|
|
1787
|
-
return /* @__PURE__ */
|
|
2159
|
+
return /* @__PURE__ */ jsx20(
|
|
1788
2160
|
"input",
|
|
1789
2161
|
{
|
|
1790
2162
|
type,
|
|
@@ -1799,10 +2171,10 @@ var BasicInput = React14.forwardRef(
|
|
|
1799
2171
|
}
|
|
1800
2172
|
);
|
|
1801
2173
|
BasicInput.displayName = "BasicInput";
|
|
1802
|
-
var InputWithPrefix =
|
|
1803
|
-
return /* @__PURE__ */
|
|
1804
|
-
prefix && /* @__PURE__ */
|
|
1805
|
-
/* @__PURE__ */
|
|
2174
|
+
var InputWithPrefix = React16.forwardRef(({ prefix, className, wrapperClassName, ...props }, ref) => {
|
|
2175
|
+
return /* @__PURE__ */ jsxs11("div", { className: cn("relative", wrapperClassName), children: [
|
|
2176
|
+
prefix && /* @__PURE__ */ jsx20("div", { className: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground", children: prefix }),
|
|
2177
|
+
/* @__PURE__ */ jsx20(
|
|
1806
2178
|
Input,
|
|
1807
2179
|
{
|
|
1808
2180
|
ref,
|
|
@@ -1816,9 +2188,9 @@ InputWithPrefix.displayName = "InputWithPrefix";
|
|
|
1816
2188
|
|
|
1817
2189
|
// src/label.tsx
|
|
1818
2190
|
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
1819
|
-
import * as
|
|
1820
|
-
import { jsx as
|
|
1821
|
-
var Label3 =
|
|
2191
|
+
import * as React17 from "react";
|
|
2192
|
+
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
2193
|
+
var Label3 = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
1822
2194
|
LabelPrimitive.Root,
|
|
1823
2195
|
{
|
|
1824
2196
|
ref,
|
|
@@ -1833,7 +2205,7 @@ Label3.displayName = LabelPrimitive.Root.displayName;
|
|
|
1833
2205
|
|
|
1834
2206
|
// src/overflow-toolbar.tsx
|
|
1835
2207
|
import { useLayoutEffect, useMemo, useRef as useRef3, useState as useState5 } from "react";
|
|
1836
|
-
import { Fragment, jsx as
|
|
2208
|
+
import { Fragment, jsx as jsx22, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1837
2209
|
var GAP_PX = 6;
|
|
1838
2210
|
var TONE = {
|
|
1839
2211
|
default: "border border-border bg-background hover:bg-accent text-foreground",
|
|
@@ -1855,16 +2227,16 @@ function ToolbarButton({
|
|
|
1855
2227
|
action.hideLabel && !action.running ? "w-7 justify-center px-0" : "px-2",
|
|
1856
2228
|
TONE[tone]
|
|
1857
2229
|
);
|
|
1858
|
-
const inner = /* @__PURE__ */
|
|
1859
|
-
/* @__PURE__ */
|
|
2230
|
+
const inner = /* @__PURE__ */ jsxs12(Fragment, { children: [
|
|
2231
|
+
/* @__PURE__ */ jsx22(
|
|
1860
2232
|
Icon2,
|
|
1861
2233
|
{
|
|
1862
2234
|
className: cn("w-3.5 h-3.5 shrink-0", action.running && "animate-spin")
|
|
1863
2235
|
}
|
|
1864
2236
|
),
|
|
1865
|
-
showLabel && /* @__PURE__ */
|
|
2237
|
+
showLabel && /* @__PURE__ */ jsx22("span", { children: text })
|
|
1866
2238
|
] });
|
|
1867
|
-
const control = action.href && !action.disabled ? /* @__PURE__ */
|
|
2239
|
+
const control = action.href && !action.disabled ? /* @__PURE__ */ jsx22(
|
|
1868
2240
|
"a",
|
|
1869
2241
|
{
|
|
1870
2242
|
href: action.href,
|
|
@@ -1874,7 +2246,7 @@ function ToolbarButton({
|
|
|
1874
2246
|
"aria-label": action.label,
|
|
1875
2247
|
children: inner
|
|
1876
2248
|
}
|
|
1877
|
-
) : /* @__PURE__ */
|
|
2249
|
+
) : /* @__PURE__ */ jsx22(
|
|
1878
2250
|
"button",
|
|
1879
2251
|
{
|
|
1880
2252
|
type: "button",
|
|
@@ -1886,12 +2258,12 @@ function ToolbarButton({
|
|
|
1886
2258
|
}
|
|
1887
2259
|
);
|
|
1888
2260
|
if (enableTooltip && action.hideLabel && renderTooltip) {
|
|
1889
|
-
return /* @__PURE__ */
|
|
2261
|
+
return /* @__PURE__ */ jsx22(Fragment, { children: renderTooltip(control, action.label) });
|
|
1890
2262
|
}
|
|
1891
2263
|
return control;
|
|
1892
2264
|
}
|
|
1893
2265
|
function OverflowTrigger({ ariaLabel }) {
|
|
1894
|
-
return /* @__PURE__ */
|
|
2266
|
+
return /* @__PURE__ */ jsx22(
|
|
1895
2267
|
"button",
|
|
1896
2268
|
{
|
|
1897
2269
|
type: "button",
|
|
@@ -1902,7 +2274,7 @@ function OverflowTrigger({ ariaLabel }) {
|
|
|
1902
2274
|
"inline-flex items-center justify-center h-7 w-7 rounded-md transition-colors",
|
|
1903
2275
|
"border border-border bg-background hover:bg-accent text-foreground"
|
|
1904
2276
|
),
|
|
1905
|
-
children: /* @__PURE__ */
|
|
2277
|
+
children: /* @__PURE__ */ jsx22(MoreHorizontalIcon, { className: "w-3.5 h-3.5" })
|
|
1906
2278
|
}
|
|
1907
2279
|
);
|
|
1908
2280
|
}
|
|
@@ -1962,22 +2334,22 @@ function OverflowToolbar({
|
|
|
1962
2334
|
}, [signature, leading != null]);
|
|
1963
2335
|
const shown = visibleActions.slice(0, visibleCount);
|
|
1964
2336
|
const hidden = visibleActions.slice(visibleCount);
|
|
1965
|
-
return /* @__PURE__ */
|
|
1966
|
-
/* @__PURE__ */
|
|
2337
|
+
return /* @__PURE__ */ jsxs12("div", { ref: containerRef, className: cn("relative min-w-0", className), children: [
|
|
2338
|
+
/* @__PURE__ */ jsxs12(
|
|
1967
2339
|
"div",
|
|
1968
2340
|
{
|
|
1969
2341
|
ref: ghostRef,
|
|
1970
2342
|
"aria-hidden": true,
|
|
1971
2343
|
className: "pointer-events-none absolute left-0 top-0 flex items-center gap-1.5 opacity-0",
|
|
1972
2344
|
children: [
|
|
1973
|
-
visibleActions.map((a) => /* @__PURE__ */
|
|
1974
|
-
/* @__PURE__ */
|
|
2345
|
+
visibleActions.map((a) => /* @__PURE__ */ jsx22(ToolbarButton, { action: a }, a.id)),
|
|
2346
|
+
/* @__PURE__ */ jsx22(OverflowTrigger, { ariaLabel: overflowAriaLabel })
|
|
1975
2347
|
]
|
|
1976
2348
|
}
|
|
1977
2349
|
),
|
|
1978
|
-
/* @__PURE__ */
|
|
1979
|
-
leading != null && /* @__PURE__ */
|
|
1980
|
-
shown.map((a) => /* @__PURE__ */
|
|
2350
|
+
/* @__PURE__ */ jsxs12("div", { className: "flex items-center justify-end gap-1.5", children: [
|
|
2351
|
+
leading != null && /* @__PURE__ */ jsx22("span", { ref: leadingRef, className: "shrink-0", children: leading }),
|
|
2352
|
+
shown.map((a) => /* @__PURE__ */ jsx22(
|
|
1981
2353
|
ToolbarButton,
|
|
1982
2354
|
{
|
|
1983
2355
|
action: a,
|
|
@@ -1988,7 +2360,7 @@ function OverflowToolbar({
|
|
|
1988
2360
|
)),
|
|
1989
2361
|
hidden.length > 0 && renderOverflowMenu({
|
|
1990
2362
|
actions: hidden,
|
|
1991
|
-
trigger: /* @__PURE__ */
|
|
2363
|
+
trigger: /* @__PURE__ */ jsx22(OverflowTrigger, { ariaLabel: overflowAriaLabel })
|
|
1992
2364
|
})
|
|
1993
2365
|
] })
|
|
1994
2366
|
] });
|
|
@@ -1996,20 +2368,20 @@ function OverflowToolbar({
|
|
|
1996
2368
|
|
|
1997
2369
|
// src/progress.tsx
|
|
1998
2370
|
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
1999
|
-
import * as
|
|
2000
|
-
import { jsx as
|
|
2371
|
+
import * as React19 from "react";
|
|
2372
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
2001
2373
|
var PROGRESS_TONES = {
|
|
2002
2374
|
default: "bg-primary",
|
|
2003
2375
|
success: "bg-success",
|
|
2004
2376
|
warning: "bg-warning",
|
|
2005
2377
|
destructive: "bg-destructive"
|
|
2006
2378
|
};
|
|
2007
|
-
var Progress =
|
|
2379
|
+
var Progress = React19.forwardRef(({ className, tone = "default", indicatorClassName, ...props }, ref) => {
|
|
2008
2380
|
const { value, max } = props;
|
|
2009
2381
|
const ceiling = max ?? 100;
|
|
2010
2382
|
const isIndeterminate = value === null || value === void 0;
|
|
2011
2383
|
const pct = isIndeterminate ? 0 : Math.min(100, Math.max(0, value / ceiling * 100));
|
|
2012
|
-
return /* @__PURE__ */
|
|
2384
|
+
return /* @__PURE__ */ jsx23(
|
|
2013
2385
|
ProgressPrimitive.Root,
|
|
2014
2386
|
{
|
|
2015
2387
|
ref,
|
|
@@ -2019,7 +2391,7 @@ var Progress = React17.forwardRef(({ className, tone = "default", indicatorClass
|
|
|
2019
2391
|
className
|
|
2020
2392
|
),
|
|
2021
2393
|
...props,
|
|
2022
|
-
children: /* @__PURE__ */
|
|
2394
|
+
children: /* @__PURE__ */ jsx23(
|
|
2023
2395
|
ProgressPrimitive.Indicator,
|
|
2024
2396
|
{
|
|
2025
2397
|
"data-slot": "progress-indicator",
|
|
@@ -2039,9 +2411,9 @@ Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
|
2039
2411
|
|
|
2040
2412
|
// src/scroll-area.tsx
|
|
2041
2413
|
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
2042
|
-
import * as
|
|
2043
|
-
import { jsx as
|
|
2044
|
-
var ScrollArea =
|
|
2414
|
+
import * as React20 from "react";
|
|
2415
|
+
import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
2416
|
+
var ScrollArea = React20.forwardRef(
|
|
2045
2417
|
({
|
|
2046
2418
|
className,
|
|
2047
2419
|
children,
|
|
@@ -2050,7 +2422,7 @@ var ScrollArea = React18.forwardRef(
|
|
|
2050
2422
|
scrollBarClassName,
|
|
2051
2423
|
orientation = "vertical",
|
|
2052
2424
|
...props
|
|
2053
|
-
}, ref) => /* @__PURE__ */
|
|
2425
|
+
}, ref) => /* @__PURE__ */ jsxs13(
|
|
2054
2426
|
ScrollAreaPrimitive.Root,
|
|
2055
2427
|
{
|
|
2056
2428
|
ref,
|
|
@@ -2058,7 +2430,7 @@ var ScrollArea = React18.forwardRef(
|
|
|
2058
2430
|
className: cn("relative overflow-hidden", className),
|
|
2059
2431
|
...props,
|
|
2060
2432
|
children: [
|
|
2061
|
-
/* @__PURE__ */
|
|
2433
|
+
/* @__PURE__ */ jsx24(
|
|
2062
2434
|
ScrollAreaPrimitive.Viewport,
|
|
2063
2435
|
{
|
|
2064
2436
|
ref: viewportRef,
|
|
@@ -2067,14 +2439,14 @@ var ScrollArea = React18.forwardRef(
|
|
|
2067
2439
|
children
|
|
2068
2440
|
}
|
|
2069
2441
|
),
|
|
2070
|
-
/* @__PURE__ */
|
|
2071
|
-
/* @__PURE__ */
|
|
2442
|
+
/* @__PURE__ */ jsx24(ScrollBar, { orientation, className: scrollBarClassName }),
|
|
2443
|
+
/* @__PURE__ */ jsx24(ScrollAreaPrimitive.Corner, {})
|
|
2072
2444
|
]
|
|
2073
2445
|
}
|
|
2074
2446
|
)
|
|
2075
2447
|
);
|
|
2076
2448
|
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
2077
|
-
var ScrollBar =
|
|
2449
|
+
var ScrollBar = React20.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx24(
|
|
2078
2450
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
2079
2451
|
{
|
|
2080
2452
|
ref,
|
|
@@ -2087,7 +2459,7 @@ var ScrollBar = React18.forwardRef(({ className, orientation = "vertical", ...pr
|
|
|
2087
2459
|
className
|
|
2088
2460
|
),
|
|
2089
2461
|
...props,
|
|
2090
|
-
children: /* @__PURE__ */
|
|
2462
|
+
children: /* @__PURE__ */ jsx24(
|
|
2091
2463
|
ScrollAreaPrimitive.ScrollAreaThumb,
|
|
2092
2464
|
{
|
|
2093
2465
|
"data-slot": "scroll-area-thumb",
|
|
@@ -2099,7 +2471,7 @@ var ScrollBar = React18.forwardRef(({ className, orientation = "vertical", ...pr
|
|
|
2099
2471
|
ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
2100
2472
|
|
|
2101
2473
|
// src/score-ring.tsx
|
|
2102
|
-
import { jsx as
|
|
2474
|
+
import { jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2103
2475
|
var DEFAULT_SCORE_THRESHOLDS = {
|
|
2104
2476
|
good: 75,
|
|
2105
2477
|
warning: 50
|
|
@@ -2130,7 +2502,7 @@ function ScoreRing({
|
|
|
2130
2502
|
const circumference = 2 * Math.PI * radius;
|
|
2131
2503
|
const boundedPct = pct === null ? 0 : Math.max(0, Math.min(100, pct));
|
|
2132
2504
|
const dashOffset = circumference * (1 - boundedPct / 100);
|
|
2133
|
-
return /* @__PURE__ */
|
|
2505
|
+
return /* @__PURE__ */ jsxs14(
|
|
2134
2506
|
"div",
|
|
2135
2507
|
{
|
|
2136
2508
|
className: cn(
|
|
@@ -2141,8 +2513,8 @@ function ScoreRing({
|
|
|
2141
2513
|
role: "img",
|
|
2142
2514
|
"aria-label": `${label ?? "Score"}: ${pct === null ? "not available" : `${pct} out of 100`}`,
|
|
2143
2515
|
children: [
|
|
2144
|
-
/* @__PURE__ */
|
|
2145
|
-
/* @__PURE__ */
|
|
2516
|
+
/* @__PURE__ */ jsxs14("svg", { viewBox: "0 0 100 100", className: "h-full w-full -rotate-90", children: [
|
|
2517
|
+
/* @__PURE__ */ jsx25(
|
|
2146
2518
|
"circle",
|
|
2147
2519
|
{
|
|
2148
2520
|
cx: "50",
|
|
@@ -2153,7 +2525,7 @@ function ScoreRing({
|
|
|
2153
2525
|
fill: "none"
|
|
2154
2526
|
}
|
|
2155
2527
|
),
|
|
2156
|
-
pct !== null ? /* @__PURE__ */
|
|
2528
|
+
pct !== null ? /* @__PURE__ */ jsx25(
|
|
2157
2529
|
"circle",
|
|
2158
2530
|
{
|
|
2159
2531
|
cx: "50",
|
|
@@ -2172,8 +2544,8 @@ function ScoreRing({
|
|
|
2172
2544
|
}
|
|
2173
2545
|
) : null
|
|
2174
2546
|
] }),
|
|
2175
|
-
/* @__PURE__ */
|
|
2176
|
-
/* @__PURE__ */
|
|
2547
|
+
/* @__PURE__ */ jsxs14("div", { className: "absolute flex flex-col items-center justify-center", children: [
|
|
2548
|
+
/* @__PURE__ */ jsx25(
|
|
2177
2549
|
"span",
|
|
2178
2550
|
{
|
|
2179
2551
|
className: cn(
|
|
@@ -2183,7 +2555,7 @@ function ScoreRing({
|
|
|
2183
2555
|
children: pct === null ? "\u2014" : `${pct}${suffix}`
|
|
2184
2556
|
}
|
|
2185
2557
|
),
|
|
2186
|
-
label ? /* @__PURE__ */
|
|
2558
|
+
label ? /* @__PURE__ */ jsx25("span", { className: "max-w-[74px] truncate text-[9px] font-semibold uppercase tracking-wide text-muted-foreground", children: label }) : null
|
|
2187
2559
|
] })
|
|
2188
2560
|
]
|
|
2189
2561
|
}
|
|
@@ -2191,7 +2563,7 @@ function ScoreRing({
|
|
|
2191
2563
|
}
|
|
2192
2564
|
|
|
2193
2565
|
// src/segmented-control.tsx
|
|
2194
|
-
import { jsx as
|
|
2566
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
2195
2567
|
function SegmentedControl({
|
|
2196
2568
|
value,
|
|
2197
2569
|
onValueChange,
|
|
@@ -2206,7 +2578,7 @@ function SegmentedControl({
|
|
|
2206
2578
|
md: "h-9 text-sm",
|
|
2207
2579
|
lg: "h-10 text-base"
|
|
2208
2580
|
};
|
|
2209
|
-
return /* @__PURE__ */
|
|
2581
|
+
return /* @__PURE__ */ jsx26(
|
|
2210
2582
|
"div",
|
|
2211
2583
|
{
|
|
2212
2584
|
className: cn(
|
|
@@ -2217,7 +2589,7 @@ function SegmentedControl({
|
|
|
2217
2589
|
role: "tablist",
|
|
2218
2590
|
children: data.map((option) => {
|
|
2219
2591
|
const isActive = value === option.value;
|
|
2220
|
-
return /* @__PURE__ */
|
|
2592
|
+
return /* @__PURE__ */ jsx26(
|
|
2221
2593
|
"button",
|
|
2222
2594
|
{
|
|
2223
2595
|
type: "button",
|
|
@@ -2243,13 +2615,13 @@ function SegmentedControl({
|
|
|
2243
2615
|
|
|
2244
2616
|
// src/select.tsx
|
|
2245
2617
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
2246
|
-
import { cva as
|
|
2247
|
-
import * as
|
|
2248
|
-
import { jsx as
|
|
2618
|
+
import { cva as cva4 } from "class-variance-authority";
|
|
2619
|
+
import * as React21 from "react";
|
|
2620
|
+
import { jsx as jsx27, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2249
2621
|
var Select = SelectPrimitive.Root;
|
|
2250
2622
|
var SelectGroup = SelectPrimitive.Group;
|
|
2251
2623
|
var SelectValue = SelectPrimitive.Value;
|
|
2252
|
-
var selectTriggerVariants =
|
|
2624
|
+
var selectTriggerVariants = cva4(
|
|
2253
2625
|
"flex w-full items-center justify-between whitespace-nowrap rounded-md border border-border bg-card text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground transition-colors hover:bg-accent hover:border-accent-foreground/20 focus:outline-none focus:ring-1 focus:ring-primary/30 focus:border-primary/40 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
|
|
2254
2626
|
{
|
|
2255
2627
|
variants: {
|
|
@@ -2264,7 +2636,7 @@ var selectTriggerVariants = cva3(
|
|
|
2264
2636
|
}
|
|
2265
2637
|
}
|
|
2266
2638
|
);
|
|
2267
|
-
var SelectTrigger =
|
|
2639
|
+
var SelectTrigger = React21.forwardRef(({ className, children, hideArrow = false, size, ...props }, ref) => /* @__PURE__ */ jsxs15(
|
|
2268
2640
|
SelectPrimitive.Trigger,
|
|
2269
2641
|
{
|
|
2270
2642
|
ref,
|
|
@@ -2272,12 +2644,12 @@ var SelectTrigger = React19.forwardRef(({ className, children, hideArrow = false
|
|
|
2272
2644
|
...props,
|
|
2273
2645
|
children: [
|
|
2274
2646
|
children,
|
|
2275
|
-
!hideArrow && /* @__PURE__ */
|
|
2647
|
+
!hideArrow && /* @__PURE__ */ jsx27(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx27(RadixChevronDownIcon, { className: "h-4 w-4 opacity-50" }) })
|
|
2276
2648
|
]
|
|
2277
2649
|
}
|
|
2278
2650
|
));
|
|
2279
2651
|
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
2280
|
-
var SelectScrollUpButton =
|
|
2652
|
+
var SelectScrollUpButton = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
|
|
2281
2653
|
SelectPrimitive.ScrollUpButton,
|
|
2282
2654
|
{
|
|
2283
2655
|
ref,
|
|
@@ -2286,11 +2658,11 @@ var SelectScrollUpButton = React19.forwardRef(({ className, ...props }, ref) =>
|
|
|
2286
2658
|
className
|
|
2287
2659
|
),
|
|
2288
2660
|
...props,
|
|
2289
|
-
children: /* @__PURE__ */
|
|
2661
|
+
children: /* @__PURE__ */ jsx27(RadixChevronUpIcon, {})
|
|
2290
2662
|
}
|
|
2291
2663
|
));
|
|
2292
2664
|
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
2293
|
-
var SelectScrollDownButton =
|
|
2665
|
+
var SelectScrollDownButton = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
|
|
2294
2666
|
SelectPrimitive.ScrollDownButton,
|
|
2295
2667
|
{
|
|
2296
2668
|
ref,
|
|
@@ -2299,13 +2671,13 @@ var SelectScrollDownButton = React19.forwardRef(({ className, ...props }, ref) =
|
|
|
2299
2671
|
className
|
|
2300
2672
|
),
|
|
2301
2673
|
...props,
|
|
2302
|
-
children: /* @__PURE__ */
|
|
2674
|
+
children: /* @__PURE__ */ jsx27(RadixChevronDownIcon, {})
|
|
2303
2675
|
}
|
|
2304
2676
|
));
|
|
2305
2677
|
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
2306
|
-
var SelectContent =
|
|
2678
|
+
var SelectContent = React21.forwardRef(({ className, children, position = "popper", container, ...props }, ref) => {
|
|
2307
2679
|
const portalContainer = usePortalContainer(container);
|
|
2308
|
-
return /* @__PURE__ */
|
|
2680
|
+
return /* @__PURE__ */ jsx27(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs15(
|
|
2309
2681
|
SelectPrimitive.Content,
|
|
2310
2682
|
{
|
|
2311
2683
|
ref,
|
|
@@ -2317,8 +2689,8 @@ var SelectContent = React19.forwardRef(({ className, children, position = "poppe
|
|
|
2317
2689
|
position,
|
|
2318
2690
|
...props,
|
|
2319
2691
|
children: [
|
|
2320
|
-
/* @__PURE__ */
|
|
2321
|
-
/* @__PURE__ */
|
|
2692
|
+
/* @__PURE__ */ jsx27(SelectScrollUpButton, {}),
|
|
2693
|
+
/* @__PURE__ */ jsx27(
|
|
2322
2694
|
SelectPrimitive.Viewport,
|
|
2323
2695
|
{
|
|
2324
2696
|
className: cn(
|
|
@@ -2328,13 +2700,13 @@ var SelectContent = React19.forwardRef(({ className, children, position = "poppe
|
|
|
2328
2700
|
children
|
|
2329
2701
|
}
|
|
2330
2702
|
),
|
|
2331
|
-
/* @__PURE__ */
|
|
2703
|
+
/* @__PURE__ */ jsx27(SelectScrollDownButton, {})
|
|
2332
2704
|
]
|
|
2333
2705
|
}
|
|
2334
2706
|
) });
|
|
2335
2707
|
});
|
|
2336
2708
|
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
2337
|
-
var SelectLabel =
|
|
2709
|
+
var SelectLabel = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
|
|
2338
2710
|
SelectPrimitive.Label,
|
|
2339
2711
|
{
|
|
2340
2712
|
ref,
|
|
@@ -2343,7 +2715,7 @@ var SelectLabel = React19.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
2343
2715
|
}
|
|
2344
2716
|
));
|
|
2345
2717
|
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
2346
|
-
var SelectItem =
|
|
2718
|
+
var SelectItem = React21.forwardRef(({ className, children, description, ...props }, ref) => /* @__PURE__ */ jsxs15(
|
|
2347
2719
|
SelectPrimitive.Item,
|
|
2348
2720
|
{
|
|
2349
2721
|
ref,
|
|
@@ -2354,14 +2726,14 @@ var SelectItem = React19.forwardRef(({ className, children, description, ...prop
|
|
|
2354
2726
|
),
|
|
2355
2727
|
...props,
|
|
2356
2728
|
children: [
|
|
2357
|
-
/* @__PURE__ */
|
|
2358
|
-
/* @__PURE__ */
|
|
2359
|
-
description ? /* @__PURE__ */
|
|
2729
|
+
/* @__PURE__ */ jsx27("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx27(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx27(CheckIcon, { className: "h-4 w-4" }) }) }),
|
|
2730
|
+
/* @__PURE__ */ jsx27(SelectPrimitive.ItemText, { children }),
|
|
2731
|
+
description ? /* @__PURE__ */ jsx27("span", { className: "block text-xs leading-snug text-muted-foreground", children: description }) : null
|
|
2360
2732
|
]
|
|
2361
2733
|
}
|
|
2362
2734
|
));
|
|
2363
2735
|
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
2364
|
-
var SelectSeparator =
|
|
2736
|
+
var SelectSeparator = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
|
|
2365
2737
|
SelectPrimitive.Separator,
|
|
2366
2738
|
{
|
|
2367
2739
|
ref,
|
|
@@ -2373,9 +2745,9 @@ SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
|
2373
2745
|
|
|
2374
2746
|
// src/separator.tsx
|
|
2375
2747
|
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
2376
|
-
import * as
|
|
2377
|
-
import { jsx as
|
|
2378
|
-
var Separator4 =
|
|
2748
|
+
import * as React22 from "react";
|
|
2749
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
2750
|
+
var Separator4 = React22.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx28(
|
|
2379
2751
|
SeparatorPrimitive.Root,
|
|
2380
2752
|
{
|
|
2381
2753
|
ref,
|
|
@@ -2393,13 +2765,13 @@ Separator4.displayName = SeparatorPrimitive.Root.displayName;
|
|
|
2393
2765
|
|
|
2394
2766
|
// src/sheet.tsx
|
|
2395
2767
|
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
2396
|
-
import { treeContainsComponent as
|
|
2397
|
-
import { cva as
|
|
2398
|
-
import * as
|
|
2399
|
-
import { jsx as
|
|
2400
|
-
var SheetContentBase =
|
|
2768
|
+
import { treeContainsComponent as treeContainsComponent4 } from "@ai-matrx/kit/react-tree";
|
|
2769
|
+
import { cva as cva5 } from "class-variance-authority";
|
|
2770
|
+
import * as React23 from "react";
|
|
2771
|
+
import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2772
|
+
var SheetContentBase = React23.forwardRef(({ ...props }, ref) => {
|
|
2401
2773
|
const isModal = useRadixDialogModal();
|
|
2402
|
-
return /* @__PURE__ */
|
|
2774
|
+
return /* @__PURE__ */ jsx29(
|
|
2403
2775
|
SheetPrimitive.Content,
|
|
2404
2776
|
{
|
|
2405
2777
|
...props,
|
|
@@ -2409,15 +2781,15 @@ var SheetContentBase = React21.forwardRef(({ ...props }, ref) => {
|
|
|
2409
2781
|
);
|
|
2410
2782
|
});
|
|
2411
2783
|
SheetContentBase.displayName = "SheetContentBase";
|
|
2412
|
-
var Sheet =
|
|
2784
|
+
var Sheet = React23.forwardRef(({ children, ...props }, _ref) => {
|
|
2413
2785
|
const modal = props.modal ?? true;
|
|
2414
|
-
return /* @__PURE__ */
|
|
2786
|
+
return /* @__PURE__ */ jsx29(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ jsx29(SheetPrimitive.Root, { ...props, modal, children }) });
|
|
2415
2787
|
});
|
|
2416
2788
|
Sheet.displayName = "Sheet";
|
|
2417
2789
|
var SheetTrigger = SheetPrimitive.Trigger;
|
|
2418
2790
|
var SheetClose = SheetPrimitive.Close;
|
|
2419
2791
|
var SheetPortal = SheetPrimitive.Portal;
|
|
2420
|
-
var SheetOverlay =
|
|
2792
|
+
var SheetOverlay = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
|
|
2421
2793
|
SheetPrimitive.Overlay,
|
|
2422
2794
|
{
|
|
2423
2795
|
className: cn(
|
|
@@ -2429,7 +2801,7 @@ var SheetOverlay = React21.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
2429
2801
|
}
|
|
2430
2802
|
));
|
|
2431
2803
|
SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
|
|
2432
|
-
var sheetVariants =
|
|
2804
|
+
var sheetVariants = cva5(
|
|
2433
2805
|
"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
2434
2806
|
{
|
|
2435
2807
|
variants: {
|
|
@@ -2446,7 +2818,7 @@ var sheetVariants = cva4(
|
|
|
2446
2818
|
}
|
|
2447
2819
|
}
|
|
2448
2820
|
);
|
|
2449
|
-
var SheetDescription =
|
|
2821
|
+
var SheetDescription = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
|
|
2450
2822
|
SheetPrimitive.Description,
|
|
2451
2823
|
{
|
|
2452
2824
|
ref,
|
|
@@ -2455,7 +2827,7 @@ var SheetDescription = React21.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
2455
2827
|
}
|
|
2456
2828
|
));
|
|
2457
2829
|
SheetDescription.displayName = SheetPrimitive.Description.displayName;
|
|
2458
|
-
var SheetContent =
|
|
2830
|
+
var SheetContent = React23.forwardRef(
|
|
2459
2831
|
({
|
|
2460
2832
|
side = "right",
|
|
2461
2833
|
className,
|
|
@@ -2465,10 +2837,10 @@ var SheetContent = React21.forwardRef(
|
|
|
2465
2837
|
overlayClassName,
|
|
2466
2838
|
...props
|
|
2467
2839
|
}, ref) => {
|
|
2468
|
-
const hasDescription =
|
|
2469
|
-
return /* @__PURE__ */
|
|
2470
|
-
!hideOverlay && /* @__PURE__ */
|
|
2471
|
-
/* @__PURE__ */
|
|
2840
|
+
const hasDescription = treeContainsComponent4(children, SheetDescription) || treeContainsComponent4(children, SheetPrimitive.Description);
|
|
2841
|
+
return /* @__PURE__ */ jsxs16(SheetPortal, { children: [
|
|
2842
|
+
!hideOverlay && /* @__PURE__ */ jsx29(SheetOverlay, { className: overlayClassName }),
|
|
2843
|
+
/* @__PURE__ */ jsxs16(
|
|
2472
2844
|
SheetContentBase,
|
|
2473
2845
|
{
|
|
2474
2846
|
ref,
|
|
@@ -2476,9 +2848,9 @@ var SheetContent = React21.forwardRef(
|
|
|
2476
2848
|
...hasDescription ? {} : { "aria-describedby": void 0 },
|
|
2477
2849
|
...props,
|
|
2478
2850
|
children: [
|
|
2479
|
-
!hideCloseButton && /* @__PURE__ */
|
|
2480
|
-
/* @__PURE__ */
|
|
2481
|
-
/* @__PURE__ */
|
|
2851
|
+
!hideCloseButton && /* @__PURE__ */ jsxs16(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
|
|
2852
|
+
/* @__PURE__ */ jsx29(Cross2Icon, { className: "h-4 w-4" }),
|
|
2853
|
+
/* @__PURE__ */ jsx29("span", { className: "sr-only", children: "Close" })
|
|
2482
2854
|
] }),
|
|
2483
2855
|
children
|
|
2484
2856
|
]
|
|
@@ -2491,7 +2863,7 @@ SheetContent.displayName = SheetPrimitive.Content.displayName;
|
|
|
2491
2863
|
var SheetHeader = ({
|
|
2492
2864
|
className,
|
|
2493
2865
|
...props
|
|
2494
|
-
}) => /* @__PURE__ */
|
|
2866
|
+
}) => /* @__PURE__ */ jsx29(
|
|
2495
2867
|
"div",
|
|
2496
2868
|
{
|
|
2497
2869
|
className: cn(
|
|
@@ -2505,7 +2877,7 @@ SheetHeader.displayName = "SheetHeader";
|
|
|
2505
2877
|
var SheetFooter = ({
|
|
2506
2878
|
className,
|
|
2507
2879
|
...props
|
|
2508
|
-
}) => /* @__PURE__ */
|
|
2880
|
+
}) => /* @__PURE__ */ jsx29(
|
|
2509
2881
|
"div",
|
|
2510
2882
|
{
|
|
2511
2883
|
className: cn(
|
|
@@ -2516,7 +2888,7 @@ var SheetFooter = ({
|
|
|
2516
2888
|
}
|
|
2517
2889
|
);
|
|
2518
2890
|
SheetFooter.displayName = "SheetFooter";
|
|
2519
|
-
var SheetTitle =
|
|
2891
|
+
var SheetTitle = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
|
|
2520
2892
|
SheetPrimitive.Title,
|
|
2521
2893
|
{
|
|
2522
2894
|
ref,
|
|
@@ -2527,12 +2899,12 @@ var SheetTitle = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
2527
2899
|
SheetTitle.displayName = SheetPrimitive.Title.displayName;
|
|
2528
2900
|
|
|
2529
2901
|
// src/skeleton.tsx
|
|
2530
|
-
import { jsx as
|
|
2902
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
2531
2903
|
function Skeleton({
|
|
2532
2904
|
className,
|
|
2533
2905
|
...props
|
|
2534
2906
|
}) {
|
|
2535
|
-
return /* @__PURE__ */
|
|
2907
|
+
return /* @__PURE__ */ jsx30(
|
|
2536
2908
|
"div",
|
|
2537
2909
|
{
|
|
2538
2910
|
className: cn("animate-pulse rounded-md bg-primary/10", className),
|
|
@@ -2543,8 +2915,8 @@ function Skeleton({
|
|
|
2543
2915
|
|
|
2544
2916
|
// src/switch.tsx
|
|
2545
2917
|
import * as SwitchPrimitives from "@radix-ui/react-switch";
|
|
2546
|
-
import * as
|
|
2547
|
-
import { jsx as
|
|
2918
|
+
import * as React24 from "react";
|
|
2919
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
2548
2920
|
var SWITCH_SIZES = {
|
|
2549
2921
|
sm: {
|
|
2550
2922
|
root: "h-4 w-9 border-border data-[state=unchecked]:bg-input",
|
|
@@ -2555,7 +2927,7 @@ var SWITCH_SIZES = {
|
|
|
2555
2927
|
thumb: "h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
|
|
2556
2928
|
}
|
|
2557
2929
|
};
|
|
2558
|
-
var Switch =
|
|
2930
|
+
var Switch = React24.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx31(
|
|
2559
2931
|
SwitchPrimitives.Root,
|
|
2560
2932
|
{
|
|
2561
2933
|
ref,
|
|
@@ -2566,7 +2938,7 @@ var Switch = React22.forwardRef(({ className, size = "md", ...props }, ref) => /
|
|
|
2566
2938
|
className
|
|
2567
2939
|
),
|
|
2568
2940
|
...props,
|
|
2569
|
-
children: /* @__PURE__ */
|
|
2941
|
+
children: /* @__PURE__ */ jsx31(
|
|
2570
2942
|
SwitchPrimitives.Thumb,
|
|
2571
2943
|
{
|
|
2572
2944
|
"data-slot": "switch-thumb",
|
|
@@ -2582,7 +2954,7 @@ Switch.displayName = SwitchPrimitives.Root.displayName;
|
|
|
2582
2954
|
|
|
2583
2955
|
// src/tabbed-bottom-sheet.tsx
|
|
2584
2956
|
import { useState as useState6 } from "react";
|
|
2585
|
-
import { jsx as
|
|
2957
|
+
import { jsx as jsx32, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2586
2958
|
function TabbedBottomSheet({
|
|
2587
2959
|
open,
|
|
2588
2960
|
onOpenChange,
|
|
@@ -2596,15 +2968,15 @@ function TabbedBottomSheet({
|
|
|
2596
2968
|
if (open) setSelectedTabId(null);
|
|
2597
2969
|
}
|
|
2598
2970
|
const selectedTab = selectedTabId ? tabs.find((tab) => tab.id === selectedTabId) : null;
|
|
2599
|
-
return /* @__PURE__ */
|
|
2971
|
+
return /* @__PURE__ */ jsx32(
|
|
2600
2972
|
BottomSheet,
|
|
2601
2973
|
{
|
|
2602
2974
|
open,
|
|
2603
2975
|
onOpenChange,
|
|
2604
2976
|
title,
|
|
2605
2977
|
size: "full",
|
|
2606
|
-
children: /* @__PURE__ */
|
|
2607
|
-
/* @__PURE__ */
|
|
2978
|
+
children: /* @__PURE__ */ jsxs17("div", { className: "matrx-mobile-sheet flex min-h-0 flex-1 flex-col", children: [
|
|
2979
|
+
/* @__PURE__ */ jsx32(
|
|
2608
2980
|
BottomSheetHeader,
|
|
2609
2981
|
{
|
|
2610
2982
|
title: selectedTab ? selectedTab.label : title,
|
|
@@ -2612,19 +2984,19 @@ function TabbedBottomSheet({
|
|
|
2612
2984
|
onBack: () => setSelectedTabId(null)
|
|
2613
2985
|
}
|
|
2614
2986
|
),
|
|
2615
|
-
selectedTab ? /* @__PURE__ */
|
|
2987
|
+
selectedTab ? /* @__PURE__ */ jsx32("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden pb-safe", children: selectedTab.content }) : /* @__PURE__ */ jsx32(BottomSheetBody, { children: /* @__PURE__ */ jsx32("ul", { className: "divide-y divide-border", children: tabs.map((tab) => {
|
|
2616
2988
|
const Icon2 = tab.icon;
|
|
2617
|
-
return /* @__PURE__ */
|
|
2989
|
+
return /* @__PURE__ */ jsx32("li", { children: /* @__PURE__ */ jsxs17(
|
|
2618
2990
|
"button",
|
|
2619
2991
|
{
|
|
2620
2992
|
type: "button",
|
|
2621
2993
|
onClick: () => setSelectedTabId(tab.id),
|
|
2622
2994
|
className: "flex w-full items-center gap-3 px-4 py-3.5 text-left transition-colors hover:bg-muted/60 active:bg-muted",
|
|
2623
2995
|
children: [
|
|
2624
|
-
Icon2 ? /* @__PURE__ */
|
|
2625
|
-
/* @__PURE__ */
|
|
2996
|
+
Icon2 ? /* @__PURE__ */ jsx32(Icon2, { className: "h-5 w-5 shrink-0 text-muted-foreground" }) : null,
|
|
2997
|
+
/* @__PURE__ */ jsx32("span", { className: "min-w-0 flex-1 text-base text-foreground", children: tab.label }),
|
|
2626
2998
|
tab.trailing,
|
|
2627
|
-
/* @__PURE__ */
|
|
2999
|
+
/* @__PURE__ */ jsx32(ChevronRightIcon, { className: "h-5 w-5 shrink-0 text-muted-foreground" })
|
|
2628
3000
|
]
|
|
2629
3001
|
}
|
|
2630
3002
|
) }, tab.id);
|
|
@@ -2635,19 +3007,19 @@ function TabbedBottomSheet({
|
|
|
2635
3007
|
}
|
|
2636
3008
|
|
|
2637
3009
|
// src/table.tsx
|
|
2638
|
-
import * as
|
|
2639
|
-
import { jsx as
|
|
3010
|
+
import * as React25 from "react";
|
|
3011
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
2640
3012
|
var TABLE_SIZES = {
|
|
2641
3013
|
sm: { head: "px-2", cell: "p-2" },
|
|
2642
3014
|
md: { head: "px-3", cell: "p-3" }
|
|
2643
3015
|
};
|
|
2644
|
-
var TableSizeContext =
|
|
3016
|
+
var TableSizeContext = React25.createContext("md");
|
|
2645
3017
|
function useTableSize() {
|
|
2646
|
-
return
|
|
3018
|
+
return React25.useContext(TableSizeContext);
|
|
2647
3019
|
}
|
|
2648
|
-
var Table =
|
|
3020
|
+
var Table = React25.forwardRef(
|
|
2649
3021
|
({ className, size = "md", wrap = true, wrapperClassName, ...props }, ref) => {
|
|
2650
|
-
const table = /* @__PURE__ */
|
|
3022
|
+
const table = /* @__PURE__ */ jsx33(
|
|
2651
3023
|
"table",
|
|
2652
3024
|
{
|
|
2653
3025
|
ref,
|
|
@@ -2657,7 +3029,7 @@ var Table = React23.forwardRef(
|
|
|
2657
3029
|
...props
|
|
2658
3030
|
}
|
|
2659
3031
|
);
|
|
2660
|
-
return /* @__PURE__ */
|
|
3032
|
+
return /* @__PURE__ */ jsx33(TableSizeContext.Provider, { value: size, children: wrap ? /* @__PURE__ */ jsx33(
|
|
2661
3033
|
"div",
|
|
2662
3034
|
{
|
|
2663
3035
|
"data-slot": "table-wrapper",
|
|
@@ -2668,7 +3040,7 @@ var Table = React23.forwardRef(
|
|
|
2668
3040
|
}
|
|
2669
3041
|
);
|
|
2670
3042
|
Table.displayName = "Table";
|
|
2671
|
-
var TableHeader =
|
|
3043
|
+
var TableHeader = React25.forwardRef(({ className, sticky = false, ...props }, ref) => /* @__PURE__ */ jsx33(
|
|
2672
3044
|
"thead",
|
|
2673
3045
|
{
|
|
2674
3046
|
ref,
|
|
@@ -2682,7 +3054,7 @@ var TableHeader = React23.forwardRef(({ className, sticky = false, ...props }, r
|
|
|
2682
3054
|
}
|
|
2683
3055
|
));
|
|
2684
3056
|
TableHeader.displayName = "TableHeader";
|
|
2685
|
-
var TableBody =
|
|
3057
|
+
var TableBody = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
|
|
2686
3058
|
"tbody",
|
|
2687
3059
|
{
|
|
2688
3060
|
ref,
|
|
@@ -2692,7 +3064,7 @@ var TableBody = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
2692
3064
|
}
|
|
2693
3065
|
));
|
|
2694
3066
|
TableBody.displayName = "TableBody";
|
|
2695
|
-
var TableFooter =
|
|
3067
|
+
var TableFooter = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
|
|
2696
3068
|
"tfoot",
|
|
2697
3069
|
{
|
|
2698
3070
|
ref,
|
|
@@ -2705,7 +3077,7 @@ var TableFooter = React23.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
2705
3077
|
}
|
|
2706
3078
|
));
|
|
2707
3079
|
TableFooter.displayName = "TableFooter";
|
|
2708
|
-
var TableRow =
|
|
3080
|
+
var TableRow = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
|
|
2709
3081
|
"tr",
|
|
2710
3082
|
{
|
|
2711
3083
|
ref,
|
|
@@ -2718,9 +3090,9 @@ var TableRow = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
2718
3090
|
}
|
|
2719
3091
|
));
|
|
2720
3092
|
TableRow.displayName = "TableRow";
|
|
2721
|
-
var TableHead =
|
|
3093
|
+
var TableHead = React25.forwardRef(({ className, ...props }, ref) => {
|
|
2722
3094
|
const size = useTableSize();
|
|
2723
|
-
return /* @__PURE__ */
|
|
3095
|
+
return /* @__PURE__ */ jsx33(
|
|
2724
3096
|
"th",
|
|
2725
3097
|
{
|
|
2726
3098
|
ref,
|
|
@@ -2735,9 +3107,9 @@ var TableHead = React23.forwardRef(({ className, ...props }, ref) => {
|
|
|
2735
3107
|
);
|
|
2736
3108
|
});
|
|
2737
3109
|
TableHead.displayName = "TableHead";
|
|
2738
|
-
var TableCell =
|
|
3110
|
+
var TableCell = React25.forwardRef(({ className, ...props }, ref) => {
|
|
2739
3111
|
const size = useTableSize();
|
|
2740
|
-
return /* @__PURE__ */
|
|
3112
|
+
return /* @__PURE__ */ jsx33(
|
|
2741
3113
|
"td",
|
|
2742
3114
|
{
|
|
2743
3115
|
ref,
|
|
@@ -2752,7 +3124,7 @@ var TableCell = React23.forwardRef(({ className, ...props }, ref) => {
|
|
|
2752
3124
|
);
|
|
2753
3125
|
});
|
|
2754
3126
|
TableCell.displayName = "TableCell";
|
|
2755
|
-
var TableCaption =
|
|
3127
|
+
var TableCaption = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
|
|
2756
3128
|
"caption",
|
|
2757
3129
|
{
|
|
2758
3130
|
ref,
|
|
@@ -2765,11 +3137,11 @@ TableCaption.displayName = "TableCaption";
|
|
|
2765
3137
|
|
|
2766
3138
|
// src/tabs.tsx
|
|
2767
3139
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
2768
|
-
import * as
|
|
2769
|
-
import { jsx as
|
|
3140
|
+
import * as React26 from "react";
|
|
3141
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
2770
3142
|
var Tabs = TabsPrimitive.Root;
|
|
2771
3143
|
var TABS_TRIGGER_BASE = "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm";
|
|
2772
|
-
var TabsList =
|
|
3144
|
+
var TabsList = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
|
|
2773
3145
|
TabsPrimitive.List,
|
|
2774
3146
|
{
|
|
2775
3147
|
ref,
|
|
@@ -2782,7 +3154,7 @@ var TabsList = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
2782
3154
|
}
|
|
2783
3155
|
));
|
|
2784
3156
|
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
2785
|
-
var TabsTrigger =
|
|
3157
|
+
var TabsTrigger = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
|
|
2786
3158
|
TabsPrimitive.Trigger,
|
|
2787
3159
|
{
|
|
2788
3160
|
ref,
|
|
@@ -2796,7 +3168,7 @@ var TabsTrigger = React24.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
2796
3168
|
}
|
|
2797
3169
|
));
|
|
2798
3170
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
2799
|
-
var TabsTriggerCore =
|
|
3171
|
+
var TabsTriggerCore = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
|
|
2800
3172
|
TabsPrimitive.Trigger,
|
|
2801
3173
|
{
|
|
2802
3174
|
ref,
|
|
@@ -2806,7 +3178,7 @@ var TabsTriggerCore = React24.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
2806
3178
|
}
|
|
2807
3179
|
));
|
|
2808
3180
|
TabsTriggerCore.displayName = TabsPrimitive.Trigger.displayName;
|
|
2809
|
-
var TabsContent =
|
|
3181
|
+
var TabsContent = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
|
|
2810
3182
|
TabsPrimitive.Content,
|
|
2811
3183
|
{
|
|
2812
3184
|
ref,
|
|
@@ -2822,8 +3194,8 @@ var TabsContent = React24.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
2822
3194
|
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
2823
3195
|
|
|
2824
3196
|
// src/textarea.tsx
|
|
2825
|
-
import * as
|
|
2826
|
-
import { jsx as
|
|
3197
|
+
import * as React27 from "react";
|
|
3198
|
+
import { jsx as jsx35, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2827
3199
|
var FILL_HEIGHT_REGEX = /(?:^|\s)(h-full|h-dvh|flex-1|grow)(?:\s|$)/;
|
|
2828
3200
|
var FILL_WIDTH_REGEX = /(?:^|\s)(w-full|w-screen)(?:\s|$)/;
|
|
2829
3201
|
function getStretchClasses(className) {
|
|
@@ -2836,7 +3208,7 @@ function getStretchClasses(className) {
|
|
|
2836
3208
|
var TEXTAREA_ELEVATED_CLASS = "flex h-auto w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground shadow-textarea transition duration-400 placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[2px] focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50";
|
|
2837
3209
|
var TEXTAREA_CONTROL_CLASS = "flex w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm text-foreground shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50";
|
|
2838
3210
|
function useAutoGrow(ref, value, autoGrow = false, minHeight, maxHeight) {
|
|
2839
|
-
|
|
3211
|
+
React27.useEffect(() => {
|
|
2840
3212
|
if (!autoGrow || !ref.current) return;
|
|
2841
3213
|
const textarea = ref.current;
|
|
2842
3214
|
textarea.style.height = "auto";
|
|
@@ -2852,8 +3224,8 @@ function useAutoGrow(ref, value, autoGrow = false, minHeight, maxHeight) {
|
|
|
2852
3224
|
}, [value, autoGrow, minHeight, maxHeight, ref]);
|
|
2853
3225
|
}
|
|
2854
3226
|
function useMergedTextareaRef(forwarded) {
|
|
2855
|
-
const internal =
|
|
2856
|
-
const callback =
|
|
3227
|
+
const internal = React27.useRef(null);
|
|
3228
|
+
const callback = React27.useCallback(
|
|
2857
3229
|
(node) => {
|
|
2858
3230
|
internal.current = node;
|
|
2859
3231
|
if (typeof forwarded === "function") forwarded(node);
|
|
@@ -2870,13 +3242,13 @@ function boxStyle(minHeight, maxHeight) {
|
|
|
2870
3242
|
maxHeight: maxHeight ? `${maxHeight}px` : void 0
|
|
2871
3243
|
};
|
|
2872
3244
|
}
|
|
2873
|
-
var Textarea =
|
|
3245
|
+
var Textarea = React27.forwardRef(
|
|
2874
3246
|
({ className, autoGrow, minHeight, maxHeight, wrapperClassName, ...props }, forwarded) => {
|
|
2875
3247
|
const { ref, callback } = useMergedTextareaRef(forwarded);
|
|
2876
3248
|
const stretchClasses = getStretchClasses(className);
|
|
2877
3249
|
const needsWrapper = Boolean(wrapperClassName || stretchClasses);
|
|
2878
3250
|
useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
|
|
2879
|
-
const textarea = /* @__PURE__ */
|
|
3251
|
+
const textarea = /* @__PURE__ */ jsx35(
|
|
2880
3252
|
"textarea",
|
|
2881
3253
|
{
|
|
2882
3254
|
ref: callback,
|
|
@@ -2892,15 +3264,15 @@ var Textarea = React25.forwardRef(
|
|
|
2892
3264
|
}
|
|
2893
3265
|
);
|
|
2894
3266
|
if (!needsWrapper) return textarea;
|
|
2895
|
-
return /* @__PURE__ */
|
|
3267
|
+
return /* @__PURE__ */ jsx35("div", { className: cn(stretchClasses, wrapperClassName), children: textarea });
|
|
2896
3268
|
}
|
|
2897
3269
|
);
|
|
2898
3270
|
Textarea.displayName = "Textarea";
|
|
2899
|
-
var BasicTextarea =
|
|
3271
|
+
var BasicTextarea = React27.forwardRef(
|
|
2900
3272
|
({ className, autoGrow, minHeight, maxHeight, ...props }, forwarded) => {
|
|
2901
3273
|
const { ref, callback } = useMergedTextareaRef(forwarded);
|
|
2902
3274
|
useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
|
|
2903
|
-
return /* @__PURE__ */
|
|
3275
|
+
return /* @__PURE__ */ jsx35(
|
|
2904
3276
|
"textarea",
|
|
2905
3277
|
{
|
|
2906
3278
|
ref: callback,
|
|
@@ -2918,7 +3290,7 @@ var BasicTextarea = React25.forwardRef(
|
|
|
2918
3290
|
}
|
|
2919
3291
|
);
|
|
2920
3292
|
BasicTextarea.displayName = "BasicTextarea";
|
|
2921
|
-
var TextareaWithPrefix =
|
|
3293
|
+
var TextareaWithPrefix = React27.forwardRef(
|
|
2922
3294
|
({
|
|
2923
3295
|
prefix,
|
|
2924
3296
|
className,
|
|
@@ -2930,13 +3302,13 @@ var TextareaWithPrefix = React25.forwardRef(
|
|
|
2930
3302
|
}, forwarded) => {
|
|
2931
3303
|
const { ref, callback } = useMergedTextareaRef(forwarded);
|
|
2932
3304
|
useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
|
|
2933
|
-
return /* @__PURE__ */
|
|
3305
|
+
return /* @__PURE__ */ jsxs18(
|
|
2934
3306
|
"div",
|
|
2935
3307
|
{
|
|
2936
3308
|
className: cn("relative", getStretchClasses(className), wrapperClassName),
|
|
2937
3309
|
children: [
|
|
2938
|
-
prefix ? /* @__PURE__ */
|
|
2939
|
-
/* @__PURE__ */
|
|
3310
|
+
prefix ? /* @__PURE__ */ jsx35("div", { className: "pointer-events-none absolute left-3 top-3 z-10 text-muted-foreground", children: prefix }) : null,
|
|
3311
|
+
/* @__PURE__ */ jsx35(
|
|
2940
3312
|
"textarea",
|
|
2941
3313
|
{
|
|
2942
3314
|
ref: callback,
|
|
@@ -3012,7 +3384,325 @@ function useScrollFade() {
|
|
|
3012
3384
|
}
|
|
3013
3385
|
};
|
|
3014
3386
|
}
|
|
3387
|
+
|
|
3388
|
+
// src/hover-card.tsx
|
|
3389
|
+
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
3390
|
+
import * as React28 from "react";
|
|
3391
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
3392
|
+
var HoverCard = HoverCardPrimitive.Root;
|
|
3393
|
+
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
3394
|
+
var HoverCardContent = React28.forwardRef(({ className, align = "center", sideOffset = 4, container, ...props }, ref) => {
|
|
3395
|
+
const resolved = usePortalContainer(container);
|
|
3396
|
+
return /* @__PURE__ */ jsx36(HoverCardPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ jsx36(
|
|
3397
|
+
HoverCardPrimitive.Content,
|
|
3398
|
+
{
|
|
3399
|
+
ref,
|
|
3400
|
+
"data-slot": "hover-card-content",
|
|
3401
|
+
align,
|
|
3402
|
+
sideOffset,
|
|
3403
|
+
className: cn(
|
|
3404
|
+
"z-[10001] w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
3405
|
+
className
|
|
3406
|
+
),
|
|
3407
|
+
...props
|
|
3408
|
+
}
|
|
3409
|
+
) });
|
|
3410
|
+
});
|
|
3411
|
+
HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
|
3412
|
+
|
|
3413
|
+
// src/radio-group.tsx
|
|
3414
|
+
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
3415
|
+
import * as React29 from "react";
|
|
3416
|
+
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
3417
|
+
var RadioGroupSizeContext = React29.createContext("md");
|
|
3418
|
+
var CONTROL_CLASSES = {
|
|
3419
|
+
sm: "h-3.5 w-3.5",
|
|
3420
|
+
md: "h-4 w-4",
|
|
3421
|
+
lg: "h-5 w-5"
|
|
3422
|
+
};
|
|
3423
|
+
var DOT_CLASSES = {
|
|
3424
|
+
sm: "h-1 w-1",
|
|
3425
|
+
md: "h-1.5 w-1.5",
|
|
3426
|
+
lg: "h-2 w-2"
|
|
3427
|
+
};
|
|
3428
|
+
var RadioGroup3 = React29.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx37(RadioGroupSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx37(
|
|
3429
|
+
RadioGroupPrimitive.Root,
|
|
3430
|
+
{
|
|
3431
|
+
ref,
|
|
3432
|
+
"data-slot": "radio-group",
|
|
3433
|
+
className: cn("grid gap-2", className),
|
|
3434
|
+
...props
|
|
3435
|
+
}
|
|
3436
|
+
) }));
|
|
3437
|
+
RadioGroup3.displayName = RadioGroupPrimitive.Root.displayName;
|
|
3438
|
+
var RadioGroupItem = React29.forwardRef(({ className, size, ...props }, ref) => {
|
|
3439
|
+
const groupSize = React29.useContext(RadioGroupSizeContext);
|
|
3440
|
+
const resolved = size ?? groupSize;
|
|
3441
|
+
return /* @__PURE__ */ jsx37(
|
|
3442
|
+
RadioGroupPrimitive.Item,
|
|
3443
|
+
{
|
|
3444
|
+
ref,
|
|
3445
|
+
"data-slot": "radio-group-item",
|
|
3446
|
+
className: cn(
|
|
3447
|
+
"relative aspect-square shrink-0 rounded-full border border-primary shadow",
|
|
3448
|
+
"focus:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
3449
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
3450
|
+
"data-[state=checked]:border-primary data-[state=checked]:bg-primary",
|
|
3451
|
+
// Ruling 2 — invisible 44px target on touch, layout untouched.
|
|
3452
|
+
"after:absolute after:left-1/2 after:top-1/2 after:-translate-x-1/2 after:-translate-y-1/2 after:content-['']",
|
|
3453
|
+
"pointer-coarse:after:h-11 pointer-coarse:after:w-11",
|
|
3454
|
+
CONTROL_CLASSES[resolved],
|
|
3455
|
+
className
|
|
3456
|
+
),
|
|
3457
|
+
...props,
|
|
3458
|
+
children: /* @__PURE__ */ jsx37(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx37(
|
|
3459
|
+
"div",
|
|
3460
|
+
{
|
|
3461
|
+
className: cn("rounded-full bg-primary-foreground", DOT_CLASSES[resolved])
|
|
3462
|
+
}
|
|
3463
|
+
) })
|
|
3464
|
+
}
|
|
3465
|
+
);
|
|
3466
|
+
});
|
|
3467
|
+
RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
3468
|
+
|
|
3469
|
+
// src/resizable.tsx
|
|
3470
|
+
import { Group as Group4, Panel, Separator as Separator5 } from "react-resizable-panels";
|
|
3471
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
3472
|
+
var HANDLE_SIZES = {
|
|
3473
|
+
xs: "w-0.5 [&[aria-orientation=horizontal]]:h-0.5 [&[aria-orientation=horizontal]]:w-full",
|
|
3474
|
+
sm: "w-1 [&[aria-orientation=horizontal]]:h-1 [&[aria-orientation=horizontal]]:w-full",
|
|
3475
|
+
md: "w-1.5 [&[aria-orientation=horizontal]]:h-1.5 [&[aria-orientation=horizontal]]:w-full",
|
|
3476
|
+
lg: "w-2 [&[aria-orientation=horizontal]]:h-2 [&[aria-orientation=horizontal]]:w-full",
|
|
3477
|
+
xl: "w-3 [&[aria-orientation=horizontal]]:h-3 [&[aria-orientation=horizontal]]:w-full",
|
|
3478
|
+
"2xl": "w-4 [&[aria-orientation=horizontal]]:h-4 [&[aria-orientation=horizontal]]:w-full",
|
|
3479
|
+
"3xl": "w-6 [&[aria-orientation=horizontal]]:h-6 [&[aria-orientation=horizontal]]:w-full",
|
|
3480
|
+
"4xl": "w-8 [&[aria-orientation=horizontal]]:h-8 [&[aria-orientation=horizontal]]:w-full"
|
|
3481
|
+
};
|
|
3482
|
+
var ResizablePanelGroup = ({
|
|
3483
|
+
className,
|
|
3484
|
+
...props
|
|
3485
|
+
}) => /* @__PURE__ */ jsx38(
|
|
3486
|
+
Group4,
|
|
3487
|
+
{
|
|
3488
|
+
"data-slot": "resizable-group",
|
|
3489
|
+
className: cn("flex h-full w-full", className),
|
|
3490
|
+
...props
|
|
3491
|
+
}
|
|
3492
|
+
);
|
|
3493
|
+
ResizablePanelGroup.displayName = "ResizablePanelGroup";
|
|
3494
|
+
var ResizablePanel = Panel;
|
|
3495
|
+
var ResizableHandle = ({
|
|
3496
|
+
withHandle,
|
|
3497
|
+
size = "sm",
|
|
3498
|
+
className,
|
|
3499
|
+
...props
|
|
3500
|
+
}) => /* @__PURE__ */ jsx38(
|
|
3501
|
+
Separator5,
|
|
3502
|
+
{
|
|
3503
|
+
"data-slot": "resizable-handle",
|
|
3504
|
+
className: cn(
|
|
3505
|
+
"group/handle relative flex shrink-0 items-center justify-center bg-border transition-colors",
|
|
3506
|
+
// Invisible hit target centered on the line; wider still on touch.
|
|
3507
|
+
"after:absolute after:inset-y-0 after:left-1/2 after:w-1.5 after:-translate-x-1/2 after:content-['']",
|
|
3508
|
+
"pointer-coarse:after:w-11",
|
|
3509
|
+
"[&[aria-orientation=horizontal]]:after:inset-x-0 [&[aria-orientation=horizontal]]:after:left-0 [&[aria-orientation=horizontal]]:after:top-1/2 [&[aria-orientation=horizontal]]:after:h-1.5 [&[aria-orientation=horizontal]]:after:w-full [&[aria-orientation=horizontal]]:after:-translate-x-0 [&[aria-orientation=horizontal]]:after:-translate-y-1/2",
|
|
3510
|
+
"pointer-coarse:[&[aria-orientation=horizontal]]:after:h-11",
|
|
3511
|
+
// The drag-outline bug: suppress for ALL focus, restore for keyboard.
|
|
3512
|
+
"focus:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1",
|
|
3513
|
+
// Library-driven state feedback.
|
|
3514
|
+
"data-[separator=hover]:bg-primary data-[separator=active]:bg-primary",
|
|
3515
|
+
HANDLE_SIZES[size],
|
|
3516
|
+
"cursor-col-resize [&[aria-orientation=horizontal]]:cursor-row-resize",
|
|
3517
|
+
className
|
|
3518
|
+
),
|
|
3519
|
+
...props,
|
|
3520
|
+
children: withHandle ? /* @__PURE__ */ jsx38("div", { className: "z-10 flex h-8 w-4 items-center justify-center rounded-sm border bg-border group-aria-[orientation=horizontal]/handle:h-4 group-aria-[orientation=horizontal]/handle:w-8", children: /* @__PURE__ */ jsx38(DragHandleDots2Icon, { className: "h-2.5 w-2.5 group-aria-[orientation=horizontal]/handle:rotate-90" }) }) : null
|
|
3521
|
+
}
|
|
3522
|
+
);
|
|
3523
|
+
ResizableHandle.displayName = "ResizableHandle";
|
|
3524
|
+
|
|
3525
|
+
// src/slider.tsx
|
|
3526
|
+
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
3527
|
+
import * as React30 from "react";
|
|
3528
|
+
import { jsx as jsx39, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
3529
|
+
var TRACK_CLASSES = {
|
|
3530
|
+
sm: "h-1",
|
|
3531
|
+
md: "h-1.5",
|
|
3532
|
+
lg: "h-2.5"
|
|
3533
|
+
};
|
|
3534
|
+
var THUMB_CLASSES = {
|
|
3535
|
+
sm: "h-3.5 w-3.5",
|
|
3536
|
+
md: "h-4 w-4",
|
|
3537
|
+
lg: "h-5 w-5"
|
|
3538
|
+
};
|
|
3539
|
+
var Slider = React30.forwardRef(({ className, size = "md", ...props }, ref) => {
|
|
3540
|
+
const thumbCount = Math.max(
|
|
3541
|
+
1,
|
|
3542
|
+
(props.value ?? props.defaultValue ?? [0]).length
|
|
3543
|
+
);
|
|
3544
|
+
return /* @__PURE__ */ jsxs19(
|
|
3545
|
+
SliderPrimitive.Root,
|
|
3546
|
+
{
|
|
3547
|
+
ref,
|
|
3548
|
+
"data-slot": "slider",
|
|
3549
|
+
className: cn(
|
|
3550
|
+
"relative flex w-full touch-none select-none items-center data-[disabled]:opacity-50",
|
|
3551
|
+
"data-[orientation=vertical]:h-full data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",
|
|
3552
|
+
className
|
|
3553
|
+
),
|
|
3554
|
+
...props,
|
|
3555
|
+
children: [
|
|
3556
|
+
/* @__PURE__ */ jsx39(
|
|
3557
|
+
SliderPrimitive.Track,
|
|
3558
|
+
{
|
|
3559
|
+
"data-slot": "slider-track",
|
|
3560
|
+
className: cn(
|
|
3561
|
+
"relative w-full grow overflow-hidden rounded-full bg-primary/20",
|
|
3562
|
+
TRACK_CLASSES[size],
|
|
3563
|
+
"data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"
|
|
3564
|
+
),
|
|
3565
|
+
children: /* @__PURE__ */ jsx39(
|
|
3566
|
+
SliderPrimitive.Range,
|
|
3567
|
+
{
|
|
3568
|
+
"data-slot": "slider-range",
|
|
3569
|
+
className: "absolute h-full bg-primary data-[orientation=vertical]:w-full"
|
|
3570
|
+
}
|
|
3571
|
+
)
|
|
3572
|
+
}
|
|
3573
|
+
),
|
|
3574
|
+
Array.from({ length: thumbCount }, (_, index) => /* @__PURE__ */ jsx39(
|
|
3575
|
+
SliderPrimitive.Thumb,
|
|
3576
|
+
{
|
|
3577
|
+
"data-slot": "slider-thumb",
|
|
3578
|
+
className: cn(
|
|
3579
|
+
"relative block cursor-grab rounded-full border border-primary/50 bg-background shadow transition-colors active:cursor-grabbing",
|
|
3580
|
+
"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
3581
|
+
"disabled:pointer-events-none disabled:opacity-50",
|
|
3582
|
+
// Ruling 1 — invisible 44px target, coarse pointers only, so a
|
|
3583
|
+
// dense desktop row keeps its exact hit behaviour.
|
|
3584
|
+
"after:absolute after:left-1/2 after:top-1/2 after:-translate-x-1/2 after:-translate-y-1/2 after:content-['']",
|
|
3585
|
+
"pointer-coarse:after:h-11 pointer-coarse:after:w-11",
|
|
3586
|
+
THUMB_CLASSES[size]
|
|
3587
|
+
)
|
|
3588
|
+
},
|
|
3589
|
+
index
|
|
3590
|
+
))
|
|
3591
|
+
]
|
|
3592
|
+
}
|
|
3593
|
+
);
|
|
3594
|
+
});
|
|
3595
|
+
Slider.displayName = SliderPrimitive.Root.displayName;
|
|
3596
|
+
|
|
3597
|
+
// src/toggle.tsx
|
|
3598
|
+
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
3599
|
+
import * as TogglePrimitive from "@radix-ui/react-toggle";
|
|
3600
|
+
import { cva as cva6 } from "class-variance-authority";
|
|
3601
|
+
import * as React31 from "react";
|
|
3602
|
+
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
3603
|
+
var toggleVariants = cva6(
|
|
3604
|
+
"inline-flex cursor-pointer items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
3605
|
+
{
|
|
3606
|
+
variants: {
|
|
3607
|
+
variant: {
|
|
3608
|
+
default: "bg-transparent",
|
|
3609
|
+
outline: "border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground"
|
|
3610
|
+
},
|
|
3611
|
+
size: {
|
|
3612
|
+
default: "h-9 min-w-9 px-3",
|
|
3613
|
+
sm: "h-8 min-w-8 px-2",
|
|
3614
|
+
lg: "h-10 min-w-10 px-3"
|
|
3615
|
+
}
|
|
3616
|
+
},
|
|
3617
|
+
defaultVariants: {
|
|
3618
|
+
variant: "default",
|
|
3619
|
+
size: "default"
|
|
3620
|
+
}
|
|
3621
|
+
}
|
|
3622
|
+
);
|
|
3623
|
+
var Toggle = React31.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx40(
|
|
3624
|
+
TogglePrimitive.Root,
|
|
3625
|
+
{
|
|
3626
|
+
ref,
|
|
3627
|
+
"data-slot": "toggle",
|
|
3628
|
+
className: cn(toggleVariants({ variant, size }), className),
|
|
3629
|
+
...props
|
|
3630
|
+
}
|
|
3631
|
+
));
|
|
3632
|
+
Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
3633
|
+
var ToggleGroupContext = React31.createContext({ size: "default", variant: "default" });
|
|
3634
|
+
var ToggleGroup = React31.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx40(
|
|
3635
|
+
ToggleGroupPrimitive.Root,
|
|
3636
|
+
{
|
|
3637
|
+
ref,
|
|
3638
|
+
"data-slot": "toggle-group",
|
|
3639
|
+
className: cn("flex items-center justify-center gap-1", className),
|
|
3640
|
+
...props,
|
|
3641
|
+
children: /* @__PURE__ */ jsx40(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
3642
|
+
}
|
|
3643
|
+
));
|
|
3644
|
+
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
3645
|
+
var ToggleGroupItem = React31.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
3646
|
+
const context = React31.useContext(ToggleGroupContext);
|
|
3647
|
+
return /* @__PURE__ */ jsx40(
|
|
3648
|
+
ToggleGroupPrimitive.Item,
|
|
3649
|
+
{
|
|
3650
|
+
ref,
|
|
3651
|
+
"data-slot": "toggle-group-item",
|
|
3652
|
+
className: cn(
|
|
3653
|
+
toggleVariants({
|
|
3654
|
+
variant: context.variant ?? variant,
|
|
3655
|
+
size: context.size ?? size
|
|
3656
|
+
}),
|
|
3657
|
+
className
|
|
3658
|
+
),
|
|
3659
|
+
...props,
|
|
3660
|
+
children
|
|
3661
|
+
}
|
|
3662
|
+
);
|
|
3663
|
+
});
|
|
3664
|
+
ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
3665
|
+
|
|
3666
|
+
// src/tooltip.tsx
|
|
3667
|
+
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
3668
|
+
import * as React32 from "react";
|
|
3669
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
3670
|
+
var TooltipProvider = TooltipPrimitive.Provider;
|
|
3671
|
+
var Tooltip = TooltipPrimitive.Root;
|
|
3672
|
+
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
3673
|
+
var TooltipContent = React32.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => {
|
|
3674
|
+
const resolved = usePortalContainer(container);
|
|
3675
|
+
return /* @__PURE__ */ jsx41(TooltipPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ jsx41(
|
|
3676
|
+
TooltipPrimitive.Content,
|
|
3677
|
+
{
|
|
3678
|
+
ref,
|
|
3679
|
+
"data-slot": "tooltip-content",
|
|
3680
|
+
sideOffset,
|
|
3681
|
+
className: cn(
|
|
3682
|
+
"z-[10001] overflow-hidden rounded-md border border-border bg-popover px-3 py-1.5 text-xs text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
3683
|
+
className
|
|
3684
|
+
),
|
|
3685
|
+
...props
|
|
3686
|
+
}
|
|
3687
|
+
) });
|
|
3688
|
+
});
|
|
3689
|
+
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
3015
3690
|
export {
|
|
3691
|
+
Alert,
|
|
3692
|
+
AlertDescription,
|
|
3693
|
+
AlertDialog,
|
|
3694
|
+
AlertDialogAction,
|
|
3695
|
+
AlertDialogCancel,
|
|
3696
|
+
AlertDialogContent,
|
|
3697
|
+
AlertDialogContentPrimitive,
|
|
3698
|
+
AlertDialogDescription,
|
|
3699
|
+
AlertDialogFooter,
|
|
3700
|
+
AlertDialogHeader,
|
|
3701
|
+
AlertDialogOverlay,
|
|
3702
|
+
AlertDialogPortal,
|
|
3703
|
+
AlertDialogTitle,
|
|
3704
|
+
AlertDialogTrigger,
|
|
3705
|
+
AlertTitle,
|
|
3016
3706
|
Avatar,
|
|
3017
3707
|
AvatarFallback,
|
|
3018
3708
|
AvatarImage,
|
|
@@ -3072,6 +3762,18 @@ export {
|
|
|
3072
3762
|
DialogPortal,
|
|
3073
3763
|
DialogTitle,
|
|
3074
3764
|
DialogTrigger,
|
|
3765
|
+
Drawer,
|
|
3766
|
+
DrawerBody,
|
|
3767
|
+
DrawerClose,
|
|
3768
|
+
DrawerContent,
|
|
3769
|
+
DrawerContentPrimitive,
|
|
3770
|
+
DrawerDescription,
|
|
3771
|
+
DrawerFooter,
|
|
3772
|
+
DrawerHeader,
|
|
3773
|
+
DrawerOverlay,
|
|
3774
|
+
DrawerPortal,
|
|
3775
|
+
DrawerTitle,
|
|
3776
|
+
DrawerTrigger,
|
|
3075
3777
|
DropdownMenu,
|
|
3076
3778
|
DropdownMenuCheckboxItem,
|
|
3077
3779
|
DropdownMenuContent,
|
|
@@ -3089,6 +3791,9 @@ export {
|
|
|
3089
3791
|
DropdownMenuTrigger,
|
|
3090
3792
|
EditableLabel,
|
|
3091
3793
|
EnterInput,
|
|
3794
|
+
HoverCard,
|
|
3795
|
+
HoverCardContent,
|
|
3796
|
+
HoverCardTrigger,
|
|
3092
3797
|
Input,
|
|
3093
3798
|
InputWithPrefix,
|
|
3094
3799
|
Label3 as Label,
|
|
@@ -3100,7 +3805,12 @@ export {
|
|
|
3100
3805
|
PopoverTrigger,
|
|
3101
3806
|
PortalContainerProvider,
|
|
3102
3807
|
Progress,
|
|
3808
|
+
RadioGroup3 as RadioGroup,
|
|
3809
|
+
RadioGroupItem,
|
|
3103
3810
|
RadixDialogModalProvider,
|
|
3811
|
+
ResizableHandle,
|
|
3812
|
+
ResizablePanel,
|
|
3813
|
+
ResizablePanelGroup,
|
|
3104
3814
|
ScoreRing,
|
|
3105
3815
|
ScrollArea,
|
|
3106
3816
|
ScrollBar,
|
|
@@ -3127,6 +3837,7 @@ export {
|
|
|
3127
3837
|
SheetTitle,
|
|
3128
3838
|
SheetTrigger,
|
|
3129
3839
|
Skeleton,
|
|
3840
|
+
Slider,
|
|
3130
3841
|
Switch,
|
|
3131
3842
|
TabbedBottomSheet,
|
|
3132
3843
|
Table,
|
|
@@ -3144,6 +3855,14 @@ export {
|
|
|
3144
3855
|
TabsTriggerCore,
|
|
3145
3856
|
Textarea,
|
|
3146
3857
|
TextareaWithPrefix,
|
|
3858
|
+
Toggle,
|
|
3859
|
+
ToggleGroup,
|
|
3860
|
+
ToggleGroupItem,
|
|
3861
|
+
Tooltip,
|
|
3862
|
+
TooltipContent,
|
|
3863
|
+
TooltipProvider,
|
|
3864
|
+
TooltipTrigger,
|
|
3865
|
+
alertVariants,
|
|
3147
3866
|
badgeVariants,
|
|
3148
3867
|
buttonVariants,
|
|
3149
3868
|
cn,
|
|
@@ -3151,8 +3870,10 @@ export {
|
|
|
3151
3870
|
scoreRingColorClasses,
|
|
3152
3871
|
selectTriggerVariants,
|
|
3153
3872
|
sheetVariants,
|
|
3873
|
+
toggleVariants,
|
|
3154
3874
|
useCardSize,
|
|
3155
3875
|
useDialogContainer,
|
|
3876
|
+
useDrawerDirection,
|
|
3156
3877
|
useIsMobile,
|
|
3157
3878
|
usePortalContainer,
|
|
3158
3879
|
useRadixDialogModal,
|