@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/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 jsx2, jsxs } from "react/jsx-runtime";
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__ */ jsx2("svg", { ...lucideProps(props), children: /* @__PURE__ */ jsx2("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" }) });
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__ */ jsx2("svg", { ...lucideProps(props), children: /* @__PURE__ */ jsx2("path", { d: "m15 18-6-6 6-6" }) });
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__ */ jsx2("svg", { ...lucideProps(props), children: /* @__PURE__ */ jsx2("path", { d: "m9 18 6-6-6-6" }) });
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__ */ jsxs("svg", { ...lucideProps(props), children: [
71
- /* @__PURE__ */ jsx2("circle", { cx: "12", cy: "12", r: "1" }),
72
- /* @__PURE__ */ jsx2("circle", { cx: "19", cy: "12", r: "1" }),
73
- /* @__PURE__ */ jsx2("circle", { cx: "5", cy: "12", r: "1" })
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__ */ jsx2("svg", { ...lucideProps(props), children: /* @__PURE__ */ jsx2("path", { d: "M20 6 9 17l-5-5" }) });
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__ */ jsxs("svg", { ...lucideProps(props), children: [
81
- /* @__PURE__ */ jsx2("path", { d: "m7 15 5 5 5-5" }),
82
- /* @__PURE__ */ jsx2("path", { d: "m7 9 5-5 5 5" })
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__ */ jsxs("svg", { ...lucideProps(props), children: [
87
- /* @__PURE__ */ jsx2("path", { d: "M15 3h6v6" }),
88
- /* @__PURE__ */ jsx2("path", { d: "M10 14 21 3" }),
89
- /* @__PURE__ */ jsx2("path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" })
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__ */ jsxs("svg", { ...lucideProps(props), children: [
94
- /* @__PURE__ */ jsx2("rect", { width: "18", height: "11", x: "3", y: "11", rx: "2", ry: "2" }),
95
- /* @__PURE__ */ jsx2("path", { d: "M7 11V7a5 5 0 0 1 10 0v4" })
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__ */ jsxs("svg", { ...lucideProps(props), children: [
100
- /* @__PURE__ */ jsx2("path", { d: "M5 12h14" }),
101
- /* @__PURE__ */ jsx2("path", { d: "M12 5v14" })
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__ */ jsxs("svg", { ...lucideProps(props), children: [
106
- /* @__PURE__ */ jsx2("path", { d: "M18 6 6 18" }),
107
- /* @__PURE__ */ jsx2("path", { d: "m6 6 12 12" })
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__ */ jsx2("svg", { ...radixProps(props), children: /* @__PURE__ */ jsx2(
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__ */ jsx2("svg", { ...radixProps(props), children: /* @__PURE__ */ jsx2(
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__ */ jsx2("svg", { ...radixProps(props), children: /* @__PURE__ */ jsx2(
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__ */ jsx2("svg", { ...radixProps(props), children: /* @__PURE__ */ jsx2(
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__ */ jsx2("svg", { ...radixProps(props), children: /* @__PURE__ */ jsx2(
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__ */ jsx2("svg", { ...radixProps(props), children: /* @__PURE__ */ jsx2(
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__ */ jsx2("svg", { ...radixProps(props), children: /* @__PURE__ */ jsx2(
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__ */ jsx2(
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__ */ jsx2(
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
- // src/radix-dialog-modal-context.tsx
219
- import * as React from "react";
220
- import { jsx as jsx3 } from "react/jsx-runtime";
221
- var RadixDialogModalContext = React.createContext(true);
222
- function RadixDialogModalProvider({
223
- children,
224
- modal
225
- }) {
226
- return /* @__PURE__ */ jsx3(RadixDialogModalContext.Provider, { value: modal, children });
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 jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
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__ */ jsx4(DrawerRoot, { open, onOpenChange, children: /* @__PURE__ */ jsxs2(DrawerPrimitive.Portal, { children: [
260
- /* @__PURE__ */ jsx4(
261
- DrawerPrimitive.Overlay,
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__ */ jsxs2(
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__ */ jsxs2(VisuallyHidden, { children: [
285
- /* @__PURE__ */ jsx4(DrawerPrimitive.Title, { children: title }),
286
- /* @__PURE__ */ jsx4(DrawerPrimitive.Description, { children: "Bottom sheet panel." })
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__ */ jsx4("div", { className: "mx-auto mt-3 mb-1 h-1.5 w-10 rounded-full bg-muted-foreground/30 flex-shrink-0" }),
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__ */ jsxs2("div", { className: "flex items-center px-2 pt-1 pb-2 flex-shrink-0 min-h-[44px]", children: [
302
- /* @__PURE__ */ jsx4("div", { className: "min-w-[44px] flex items-center justify-start", children: /* @__PURE__ */ jsx4(
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__ */ jsx4(ChevronLeftIcon, { className: "h-4 w-4 text-foreground" })
469
+ children: /* @__PURE__ */ jsx5(ChevronLeftIcon, { className: "h-4 w-4 text-foreground" })
313
470
  }
314
471
  ) }),
315
- /* @__PURE__ */ jsx4("span", { className: "text-[17px] font-semibold flex-1 text-center truncate", children: title }),
316
- /* @__PURE__ */ jsx4("div", { className: "min-w-[44px] flex items-center justify-end", children: trailing })
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__ */ jsx4(
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__ */ jsx4(
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/button.tsx
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 jsx5 } from "react/jsx-runtime";
354
- var buttonVariants = cva2(
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
- default: "h-9 px-4 py-2",
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 = React3.forwardRef(
623
+ var Button = React4.forwardRef(
382
624
  ({ className, variant, size, asChild = false, ...props }, ref) => {
383
625
  const Component = asChild ? Slot : "button";
384
- return /* @__PURE__ */ jsx5(
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 React4 from "react";
399
- import { jsx as jsx6 } from "react/jsx-runtime";
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 = React4.forwardRef(({ className, size = "lg", ...props }, ref) => /* @__PURE__ */ jsx6(
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 = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(
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 = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(
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 React5 from "react";
445
- import { jsx as jsx7 } from "react/jsx-runtime";
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 = React5.createContext("md");
855
+ var CardSizeContext = React8.createContext("md");
464
856
  function useCardSize() {
465
- return React5.useContext(CardSizeContext);
857
+ return React8.useContext(CardSizeContext);
466
858
  }
467
- var Card = React5.forwardRef(
468
- ({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx7(CardSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx7(
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 = React5.forwardRef(({ className, ...props }, ref) => {
872
+ var CardHeader = React8.forwardRef(({ className, ...props }, ref) => {
481
873
  const size = useCardSize();
482
- return /* @__PURE__ */ jsx7(
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 = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(
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 = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(
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 = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(
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 = React5.forwardRef(({ className, ...props }, ref) => {
919
+ var CardContent = React8.forwardRef(({ className, ...props }, ref) => {
528
920
  const size = useCardSize();
529
- return /* @__PURE__ */ jsx7(
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 = React5.forwardRef(({ className, ...props }, ref) => {
932
+ var CardFooter = React8.forwardRef(({ className, ...props }, ref) => {
541
933
  const size = useCardSize();
542
- return /* @__PURE__ */ jsx7(
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 React6 from "react";
561
- import { jsx as jsx8 } from "react/jsx-runtime";
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 = React6.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx8(
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__ */ jsx8(
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__ */ jsx8(DividerHorizontalIcon, { className: CHECKBOX_SIZES[size].glyph }) : /* @__PURE__ */ jsx8(CheckIcon, { className: CHECKBOX_SIZES[size].glyph })
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 React9 from "react";
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 React8 from "react";
993
+ import * as React10 from "react";
622
994
  var MOBILE_BREAKPOINT = 768;
623
995
  function useIsMobile() {
624
- const [isMobile, setIsMobile] = React8.useState(false);
625
- const [hasMounted, setHasMounted] = React8.useState(false);
626
- React8.useEffect(() => {
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 jsx10, jsxs as jsxs3 } from "react/jsx-runtime";
647
- var Command = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
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 = React9.forwardRef(({ className, children, container, ...props }, ref) => {
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__ */ jsxs3(DialogPrimitive.Portal, { container: portalContainer, children: [
667
- isModal ? /* @__PURE__ */ jsx10(
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__ */ jsxs3(
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__ */ jsxs3(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: [
689
- /* @__PURE__ */ jsx10(XIcon, { className: "h-4 w-4" }),
690
- /* @__PURE__ */ jsx10("span", { className: "sr-only", children: "Close" })
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__ */ jsx10(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ jsx10(DialogPrimitive.Root, { ...props, modal, children: /* @__PURE__ */ jsxs3(
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__ */ jsx10(DialogPrimitive.Title, { className: "sr-only" }),
711
- /* @__PURE__ */ jsx10(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 })
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 = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs3("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
717
- /* @__PURE__ */ jsx10(MagnifyingGlassIcon, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
718
- /* @__PURE__ */ jsx10(
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 = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
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 = React9.forwardRef((props, ref) => /* @__PURE__ */ jsx10(
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 = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
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 = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
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 = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
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__ */ jsx10(
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 React10 from "react";
802
- import { jsx as jsx11, jsxs as jsxs4 } from "react/jsx-runtime";
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 = React10.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs4(
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__ */ jsx11(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
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 = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
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 = React10.forwardRef(({ className, container, ...props }, ref) => {
1213
+ var ContextMenuContent = React12.forwardRef(({ className, container, ...props }, ref) => {
842
1214
  const portalContainer = usePortalContainer(container);
843
- return /* @__PURE__ */ jsx11(ContextMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx11(
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 = React10.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx11(
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 = React10.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs4(
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__ */ jsx11("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx11(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx11(CheckIcon, { className: "h-4 w-4" }) }) }),
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 = React10.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs4(
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__ */ jsx11("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx11(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx11(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
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 = React10.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx11(
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 = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
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__ */ jsx11(
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 React11 from "react";
943
- import { jsx as jsx12 } from "react/jsx-runtime";
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 = React11.forwardRef(
1319
+ var PopoverContent = React13.forwardRef(
948
1320
  ({ className, align = "center", sideOffset = 4, container, ...props }, ref) => {
949
1321
  const portalContainer = usePortalContainer(container);
950
- return /* @__PURE__ */ jsx12(PopoverPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx12(
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 jsx13, jsxs as jsxs5 } from "react/jsx-runtime";
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__ */ jsxs5(Popover, { open, onOpenChange: (next) => next ? setOpen(true) : close(), children: [
1050
- /* @__PURE__ */ jsx13(PopoverTrigger, { asChild: true, disabled, children: /* @__PURE__ */ jsxs5(
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__ */ jsx13("span", { className: "min-w-0 flex-1 truncate", children: selected ? renderSelected ?? selected.render ?? selected.label : /* @__PURE__ */ jsx13("span", { className: "text-muted-foreground", children: loading ? "Loading\u2026" : placeholder }) }),
1065
- /* @__PURE__ */ jsx13(ChevronsUpDownIcon, { className: "size-3.5 shrink-0 opacity-50" })
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__ */ jsx13(PopoverContent, { align: "start", className: "w-[--radix-popover-trigger-width] min-w-56 p-0", children: /* @__PURE__ */ jsxs5(
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__ */ jsx13(
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__ */ jsxs5(CommandList, { children: [
1090
- /* @__PURE__ */ jsx13(CommandEmpty, { children: emptyLabel }),
1091
- groups.map((group) => /* @__PURE__ */ jsx13(
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__ */ jsxs5(
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__ */ jsx13(
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__ */ jsx13("span", { className: "min-w-0 flex-1 truncate", children: option.render ?? option.label }),
1116
- option.hint ? /* @__PURE__ */ jsx13("span", { className: "shrink-0 text-[10px] text-muted-foreground", children: option.hint }) : null
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__ */ jsxs5("div", { className: "space-y-1 border-t border-border p-1", children: [
1126
- createExtra && typed && !exactMatch ? /* @__PURE__ */ jsx13("div", { className: "px-1 pt-0.5", children: typeof createExtra === "function" ? createExtra(typed) : createExtra }) : null,
1127
- /* @__PURE__ */ jsxs5(
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__ */ jsx13(Loader2Icon, { className: "size-3.5 shrink-0 animate-spin" }) : /* @__PURE__ */ jsx13(PlusIcon, { className: "size-3.5 shrink-0" }),
1136
- /* @__PURE__ */ jsx13("span", { className: "min-w-0 truncate", children: typed && !exactMatch ? `Create \u201C${typed}\u201D` : `Add ${article(noun)}\u2026` })
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__ */ jsxs5("p", { className: "px-2 pb-0.5 text-[11px] leading-snug text-muted-foreground", children: [
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__ */ jsxs5("div", { className: "space-y-0.5 border-t border-border p-1", children: [
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__ */ jsxs5("div", { children: [
1150
- /* @__PURE__ */ jsxs5(
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__ */ jsx13(Icon2, { className: "size-3.5 shrink-0" }) : null,
1161
- /* @__PURE__ */ jsx13("span", { className: "min-w-0 truncate", children: action.label })
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__ */ jsx13("p", { className: "px-2 pb-1 text-[10px] leading-snug text-muted-foreground", children: action.note }) : null
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__ */ jsxs5(
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__ */ jsx13(ExternalLinkIcon, { className: "size-3.5 shrink-0" }),
1178
- /* @__PURE__ */ jsx13("span", { className: "min-w-0 truncate", children: manageAction.label })
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__ */ jsxs5("div", { className: "space-y-1 border-t border-border p-2", children: [
1184
- /* @__PURE__ */ jsxs5("p", { className: "flex gap-1.5 text-[11px] leading-snug text-muted-foreground", children: [
1185
- /* @__PURE__ */ jsx13(LockIcon, { className: "mt-px size-3 shrink-0" }),
1186
- /* @__PURE__ */ jsx13("span", { children: lockedNote })
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__ */ jsxs5(
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__ */ jsx13(PlusIcon, { className: "size-3.5 shrink-0" }),
1199
- /* @__PURE__ */ jsx13("span", { className: "min-w-0 truncate", children: lockedAction.label })
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 React12 from "react";
1215
- import { jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
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__ */ jsx14(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ jsx14(DialogPrimitive2.Root, { ...props, modal, children }) });
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__ */ jsx14(DialogPrimitive2.Portal, { container: resolved ?? null, ...props });
1603
+ return /* @__PURE__ */ jsx17(DialogPrimitive2.Portal, { container: resolved ?? null, ...props });
1232
1604
  };
1233
1605
  DialogPortal.displayName = "DialogPortal";
1234
- var DialogContainerContext = React12.createContext(null);
1235
- var useDialogContainer = () => React12.useContext(DialogContainerContext);
1236
- var DialogOverlay = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
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 = React12.forwardRef((props, ref) => {
1623
+ var DialogContentPrimitive = React14.forwardRef((props, ref) => {
1252
1624
  const isModal = useRadixDialogModal();
1253
- return /* @__PURE__ */ jsx14(
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 = React12.forwardRef(
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] = React12.useState(
1651
+ const [containerEl, setContainerEl] = React14.useState(
1280
1652
  null
1281
1653
  );
1282
- const mergedRef = React12.useCallback(
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 = treeContainsComponent(children, DialogTitle) || treeContainsComponent(children, DialogPrimitive2.Title);
1292
- const hasDescription = treeContainsComponent(children, DialogDescription) || treeContainsComponent(children, DialogPrimitive2.Description);
1293
- return /* @__PURE__ */ jsxs6(DialogPortal, { container, children: [
1294
- isModal ? /* @__PURE__ */ jsx14(DialogOverlay, {}) : null,
1295
- /* @__PURE__ */ jsxs6(
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__ */ jsx14(VisuallyHidden2.Root, { children: /* @__PURE__ */ jsx14(DialogPrimitive2.Title, { children: "Dialog" }) }),
1314
- /* @__PURE__ */ jsx14(DialogContainerContext.Provider, { value: containerEl, children: /* @__PURE__ */ jsx14(
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__ */ jsxs6(
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__ */ jsx14(XIcon, { className: "h-4 w-4" }),
1329
- /* @__PURE__ */ jsx14("span", { className: "sr-only", children: "Close" })
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__ */ jsx14(
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__ */ jsx14(
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 = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
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 = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
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 React13 from "react";
1398
- import { jsx as jsx15, jsxs as jsxs7 } from "react/jsx-runtime";
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 = React13.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs7(
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__ */ jsx15(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
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 = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
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 = React13.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => {
1809
+ var DropdownMenuContent = React15.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => {
1438
1810
  const portalContainer = usePortalContainer(container);
1439
- return /* @__PURE__ */ jsx15(DropdownMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx15(
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 = React13.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx15(
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 = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs7(
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__ */ jsx15("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx15(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx15(CheckIcon, { className: "h-4 w-4" }) }) }),
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 = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs7(
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__ */ jsx15("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx15(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx15(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
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 = React13.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx15(
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 = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
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__ */ jsx15(
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 jsx16, jsxs as jsxs8 } from "react/jsx-runtime";
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__ */ jsxs8("span", { className: cn("relative flex min-w-0 flex-1 items-center", className), children: [
1637
- /* @__PURE__ */ jsx16(
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__ */ jsx16(Loader2Icon, { className: "absolute right-1 h-3.5 w-3.5 animate-spin text-muted-foreground" }),
1678
- error && /* @__PURE__ */ jsx16("span", { className: "absolute left-0 top-full mt-0.5 whitespace-nowrap text-xs text-destructive", children: error })
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__ */ jsx16(
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 React14 from "react";
1717
- import { jsx as jsx17, jsxs as jsxs9 } from "react/jsx-runtime";
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 = React14.forwardRef(
2117
+ var Input = React16.forwardRef(
1746
2118
  ({ className, type, variant = "default", ...props }, ref) => {
1747
- return /* @__PURE__ */ jsx17(
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 = React14.forwardRef(
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__ */ jsx17(
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 = React14.forwardRef(
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__ */ jsx17(
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 = React14.forwardRef(({ prefix, className, wrapperClassName, ...props }, ref) => {
1803
- return /* @__PURE__ */ jsxs9("div", { className: cn("relative", wrapperClassName), children: [
1804
- prefix && /* @__PURE__ */ jsx17("div", { className: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground", children: prefix }),
1805
- /* @__PURE__ */ jsx17(
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 React15 from "react";
1820
- import { jsx as jsx18 } from "react/jsx-runtime";
1821
- var Label3 = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
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 jsx19, jsxs as jsxs10 } from "react/jsx-runtime";
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__ */ jsxs10(Fragment, { children: [
1859
- /* @__PURE__ */ jsx19(
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__ */ jsx19("span", { children: text })
2237
+ showLabel && /* @__PURE__ */ jsx22("span", { children: text })
1866
2238
  ] });
1867
- const control = action.href && !action.disabled ? /* @__PURE__ */ jsx19(
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__ */ jsx19(
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__ */ jsx19(Fragment, { children: renderTooltip(control, action.label) });
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__ */ jsx19(
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__ */ jsx19(MoreHorizontalIcon, { className: "w-3.5 h-3.5" })
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__ */ jsxs10("div", { ref: containerRef, className: cn("relative min-w-0", className), children: [
1966
- /* @__PURE__ */ jsxs10(
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__ */ jsx19(ToolbarButton, { action: a }, a.id)),
1974
- /* @__PURE__ */ jsx19(OverflowTrigger, { ariaLabel: overflowAriaLabel })
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__ */ jsxs10("div", { className: "flex items-center justify-end gap-1.5", children: [
1979
- leading != null && /* @__PURE__ */ jsx19("span", { ref: leadingRef, className: "shrink-0", children: leading }),
1980
- shown.map((a) => /* @__PURE__ */ jsx19(
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__ */ jsx19(OverflowTrigger, { ariaLabel: overflowAriaLabel })
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 React17 from "react";
2000
- import { jsx as jsx20 } from "react/jsx-runtime";
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 = React17.forwardRef(({ className, tone = "default", indicatorClassName, ...props }, ref) => {
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__ */ jsx20(
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__ */ jsx20(
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 React18 from "react";
2043
- import { jsx as jsx21, jsxs as jsxs11 } from "react/jsx-runtime";
2044
- var ScrollArea = React18.forwardRef(
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__ */ jsxs11(
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__ */ jsx21(
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__ */ jsx21(ScrollBar, { orientation, className: scrollBarClassName }),
2071
- /* @__PURE__ */ jsx21(ScrollAreaPrimitive.Corner, {})
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 = React18.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx21(
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__ */ jsx21(
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 jsx22, jsxs as jsxs12 } from "react/jsx-runtime";
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__ */ jsxs12(
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__ */ jsxs12("svg", { viewBox: "0 0 100 100", className: "h-full w-full -rotate-90", children: [
2145
- /* @__PURE__ */ jsx22(
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__ */ jsx22(
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__ */ jsxs12("div", { className: "absolute flex flex-col items-center justify-center", children: [
2176
- /* @__PURE__ */ jsx22(
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__ */ jsx22("span", { className: "max-w-[74px] truncate text-[9px] font-semibold uppercase tracking-wide text-muted-foreground", children: label }) : null
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 jsx23 } from "react/jsx-runtime";
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__ */ jsx23(
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__ */ jsx23(
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 cva3 } from "class-variance-authority";
2247
- import * as React19 from "react";
2248
- import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
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 = cva3(
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 = React19.forwardRef(({ className, children, hideArrow = false, size, ...props }, ref) => /* @__PURE__ */ jsxs13(
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__ */ jsx24(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx24(RadixChevronDownIcon, { className: "h-4 w-4 opacity-50" }) })
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 = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
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__ */ jsx24(RadixChevronUpIcon, {})
2661
+ children: /* @__PURE__ */ jsx27(RadixChevronUpIcon, {})
2290
2662
  }
2291
2663
  ));
2292
2664
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
2293
- var SelectScrollDownButton = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
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__ */ jsx24(RadixChevronDownIcon, {})
2674
+ children: /* @__PURE__ */ jsx27(RadixChevronDownIcon, {})
2303
2675
  }
2304
2676
  ));
2305
2677
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
2306
- var SelectContent = React19.forwardRef(({ className, children, position = "popper", container, ...props }, ref) => {
2678
+ var SelectContent = React21.forwardRef(({ className, children, position = "popper", container, ...props }, ref) => {
2307
2679
  const portalContainer = usePortalContainer(container);
2308
- return /* @__PURE__ */ jsx24(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs13(
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__ */ jsx24(SelectScrollUpButton, {}),
2321
- /* @__PURE__ */ jsx24(
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__ */ jsx24(SelectScrollDownButton, {})
2703
+ /* @__PURE__ */ jsx27(SelectScrollDownButton, {})
2332
2704
  ]
2333
2705
  }
2334
2706
  ) });
2335
2707
  });
2336
2708
  SelectContent.displayName = SelectPrimitive.Content.displayName;
2337
- var SelectLabel = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
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 = React19.forwardRef(({ className, children, description, ...props }, ref) => /* @__PURE__ */ jsxs13(
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__ */ jsx24("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx24(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(CheckIcon, { className: "h-4 w-4" }) }) }),
2358
- /* @__PURE__ */ jsx24(SelectPrimitive.ItemText, { children }),
2359
- description ? /* @__PURE__ */ jsx24("span", { className: "block text-xs leading-snug text-muted-foreground", children: description }) : null
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 = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
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 React20 from "react";
2377
- import { jsx as jsx25 } from "react/jsx-runtime";
2378
- var Separator4 = React20.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx25(
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 treeContainsComponent2 } from "@ai-matrx/kit/react-tree";
2397
- import { cva as cva4 } from "class-variance-authority";
2398
- import * as React21 from "react";
2399
- import { jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
2400
- var SheetContentBase = React21.forwardRef(({ ...props }, ref) => {
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__ */ jsx26(
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 = React21.forwardRef(({ children, ...props }, _ref) => {
2784
+ var Sheet = React23.forwardRef(({ children, ...props }, _ref) => {
2413
2785
  const modal = props.modal ?? true;
2414
- return /* @__PURE__ */ jsx26(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ jsx26(SheetPrimitive.Root, { ...props, modal, children }) });
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 = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
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 = cva4(
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 = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
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 = React21.forwardRef(
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 = treeContainsComponent2(children, SheetDescription) || treeContainsComponent2(children, SheetPrimitive.Description);
2469
- return /* @__PURE__ */ jsxs14(SheetPortal, { children: [
2470
- !hideOverlay && /* @__PURE__ */ jsx26(SheetOverlay, { className: overlayClassName }),
2471
- /* @__PURE__ */ jsxs14(
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__ */ jsxs14(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: [
2480
- /* @__PURE__ */ jsx26(Cross2Icon, { className: "h-4 w-4" }),
2481
- /* @__PURE__ */ jsx26("span", { className: "sr-only", children: "Close" })
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__ */ jsx26(
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__ */ jsx26(
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 = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
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 jsx27 } from "react/jsx-runtime";
2902
+ import { jsx as jsx30 } from "react/jsx-runtime";
2531
2903
  function Skeleton({
2532
2904
  className,
2533
2905
  ...props
2534
2906
  }) {
2535
- return /* @__PURE__ */ jsx27(
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 React22 from "react";
2547
- import { jsx as jsx28 } from "react/jsx-runtime";
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 = React22.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx28(
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__ */ jsx28(
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 jsx29, jsxs as jsxs15 } from "react/jsx-runtime";
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__ */ jsx29(
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__ */ jsxs15("div", { className: "matrx-mobile-sheet flex min-h-0 flex-1 flex-col", children: [
2607
- /* @__PURE__ */ jsx29(
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__ */ jsx29("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden pb-safe", children: selectedTab.content }) : /* @__PURE__ */ jsx29(BottomSheetBody, { children: /* @__PURE__ */ jsx29("ul", { className: "divide-y divide-border", children: tabs.map((tab) => {
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__ */ jsx29("li", { children: /* @__PURE__ */ jsxs15(
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__ */ jsx29(Icon2, { className: "h-5 w-5 shrink-0 text-muted-foreground" }) : null,
2625
- /* @__PURE__ */ jsx29("span", { className: "min-w-0 flex-1 text-base text-foreground", children: tab.label }),
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__ */ jsx29(ChevronRightIcon, { className: "h-5 w-5 shrink-0 text-muted-foreground" })
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 React23 from "react";
2639
- import { jsx as jsx30 } from "react/jsx-runtime";
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 = React23.createContext("md");
3016
+ var TableSizeContext = React25.createContext("md");
2645
3017
  function useTableSize() {
2646
- return React23.useContext(TableSizeContext);
3018
+ return React25.useContext(TableSizeContext);
2647
3019
  }
2648
- var Table = React23.forwardRef(
3020
+ var Table = React25.forwardRef(
2649
3021
  ({ className, size = "md", wrap = true, wrapperClassName, ...props }, ref) => {
2650
- const table = /* @__PURE__ */ jsx30(
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__ */ jsx30(TableSizeContext.Provider, { value: size, children: wrap ? /* @__PURE__ */ jsx30(
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 = React23.forwardRef(({ className, sticky = false, ...props }, ref) => /* @__PURE__ */ jsx30(
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 = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
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 = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
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 = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
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 = React23.forwardRef(({ className, ...props }, ref) => {
3093
+ var TableHead = React25.forwardRef(({ className, ...props }, ref) => {
2722
3094
  const size = useTableSize();
2723
- return /* @__PURE__ */ jsx30(
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 = React23.forwardRef(({ className, ...props }, ref) => {
3110
+ var TableCell = React25.forwardRef(({ className, ...props }, ref) => {
2739
3111
  const size = useTableSize();
2740
- return /* @__PURE__ */ jsx30(
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 = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
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 React24 from "react";
2769
- import { jsx as jsx31 } from "react/jsx-runtime";
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 = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
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 = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
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 = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
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 = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
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 React25 from "react";
2826
- import { jsx as jsx32, jsxs as jsxs16 } from "react/jsx-runtime";
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
- React25.useEffect(() => {
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 = React25.useRef(null);
2856
- const callback = React25.useCallback(
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 = React25.forwardRef(
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__ */ jsx32(
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__ */ jsx32("div", { className: cn(stretchClasses, wrapperClassName), children: textarea });
3267
+ return /* @__PURE__ */ jsx35("div", { className: cn(stretchClasses, wrapperClassName), children: textarea });
2896
3268
  }
2897
3269
  );
2898
3270
  Textarea.displayName = "Textarea";
2899
- var BasicTextarea = React25.forwardRef(
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__ */ jsx32(
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 = React25.forwardRef(
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__ */ jsxs16(
3305
+ return /* @__PURE__ */ jsxs18(
2934
3306
  "div",
2935
3307
  {
2936
3308
  className: cn("relative", getStretchClasses(className), wrapperClassName),
2937
3309
  children: [
2938
- prefix ? /* @__PURE__ */ jsx32("div", { className: "pointer-events-none absolute left-3 top-3 z-10 text-muted-foreground", children: prefix }) : null,
2939
- /* @__PURE__ */ jsx32(
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,