@ai-matrx/design-system 0.6.0 → 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,12 +503,73 @@ 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: {
@@ -402,10 +620,10 @@ var buttonVariants = cva2(
402
620
  }
403
621
  }
404
622
  );
405
- var Button = React3.forwardRef(
623
+ var Button = React4.forwardRef(
406
624
  ({ className, variant, size, asChild = false, ...props }, ref) => {
407
625
  const Component = asChild ? Slot : "button";
408
- return /* @__PURE__ */ jsx5(
626
+ return /* @__PURE__ */ jsx7(
409
627
  Component,
410
628
  {
411
629
  className: cn(buttonVariants({ variant, size, className })),
@@ -417,16 +635,166 @@ var Button = React3.forwardRef(
417
635
  );
418
636
  Button.displayName = "Button";
419
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
+
420
788
  // src/avatar.tsx
421
789
  import * as AvatarPrimitive from "@radix-ui/react-avatar";
422
- import * as React4 from "react";
423
- import { jsx as jsx6 } from "react/jsx-runtime";
790
+ import * as React7 from "react";
791
+ import { jsx as jsx10 } from "react/jsx-runtime";
424
792
  var AVATAR_SIZES = {
425
793
  sm: "h-8 w-8 text-[11px]",
426
794
  md: "h-9 w-9 text-xs",
427
795
  lg: "h-10 w-10 text-sm"
428
796
  };
429
- var Avatar = React4.forwardRef(({ className, size = "lg", ...props }, ref) => /* @__PURE__ */ jsx6(
797
+ var Avatar = React7.forwardRef(({ className, size = "lg", ...props }, ref) => /* @__PURE__ */ jsx10(
430
798
  AvatarPrimitive.Root,
431
799
  {
432
800
  ref,
@@ -440,7 +808,7 @@ var Avatar = React4.forwardRef(({ className, size = "lg", ...props }, ref) => /*
440
808
  }
441
809
  ));
442
810
  Avatar.displayName = AvatarPrimitive.Root.displayName;
443
- var AvatarImage = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(
811
+ var AvatarImage = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
444
812
  AvatarPrimitive.Image,
445
813
  {
446
814
  ref,
@@ -450,7 +818,7 @@ var AvatarImage = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE
450
818
  }
451
819
  ));
452
820
  AvatarImage.displayName = AvatarPrimitive.Image.displayName;
453
- var AvatarFallback = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(
821
+ var AvatarFallback = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
454
822
  AvatarPrimitive.Fallback,
455
823
  {
456
824
  ref,
@@ -465,8 +833,8 @@ var AvatarFallback = React4.forwardRef(({ className, ...props }, ref) => /* @__P
465
833
  AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
466
834
 
467
835
  // src/card.tsx
468
- import * as React5 from "react";
469
- import { jsx as jsx7 } from "react/jsx-runtime";
836
+ import * as React8 from "react";
837
+ import { jsx as jsx11 } from "react/jsx-runtime";
470
838
  var CARD_SIZES = {
471
839
  sm: {
472
840
  root: "rounded-xl border bg-card text-card-foreground shadow",
@@ -484,12 +852,12 @@ var CARD_SIZES = {
484
852
  padTopless: "p-6 pt-0"
485
853
  }
486
854
  };
487
- var CardSizeContext = React5.createContext("md");
855
+ var CardSizeContext = React8.createContext("md");
488
856
  function useCardSize() {
489
- return React5.useContext(CardSizeContext);
857
+ return React8.useContext(CardSizeContext);
490
858
  }
491
- var Card = React5.forwardRef(
492
- ({ 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(
493
861
  "div",
494
862
  {
495
863
  ref,
@@ -501,9 +869,9 @@ var Card = React5.forwardRef(
501
869
  ) })
502
870
  );
503
871
  Card.displayName = "Card";
504
- var CardHeader = React5.forwardRef(({ className, ...props }, ref) => {
872
+ var CardHeader = React8.forwardRef(({ className, ...props }, ref) => {
505
873
  const size = useCardSize();
506
- return /* @__PURE__ */ jsx7(
874
+ return /* @__PURE__ */ jsx11(
507
875
  "div",
508
876
  {
509
877
  ref,
@@ -518,7 +886,7 @@ var CardHeader = React5.forwardRef(({ className, ...props }, ref) => {
518
886
  );
519
887
  });
520
888
  CardHeader.displayName = "CardHeader";
521
- var CardTitle = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(
889
+ var CardTitle = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
522
890
  "h3",
523
891
  {
524
892
  ref,
@@ -528,7 +896,7 @@ var CardTitle = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__
528
896
  }
529
897
  ));
530
898
  CardTitle.displayName = "CardTitle";
531
- var CardDescription = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(
899
+ var CardDescription = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
532
900
  "p",
533
901
  {
534
902
  ref,
@@ -538,7 +906,7 @@ var CardDescription = React5.forwardRef(({ className, ...props }, ref) => /* @__
538
906
  }
539
907
  ));
540
908
  CardDescription.displayName = "CardDescription";
541
- var CardAction = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(
909
+ var CardAction = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
542
910
  "div",
543
911
  {
544
912
  ref,
@@ -548,9 +916,9 @@ var CardAction = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE_
548
916
  }
549
917
  ));
550
918
  CardAction.displayName = "CardAction";
551
- var CardContent = React5.forwardRef(({ className, ...props }, ref) => {
919
+ var CardContent = React8.forwardRef(({ className, ...props }, ref) => {
552
920
  const size = useCardSize();
553
- return /* @__PURE__ */ jsx7(
921
+ return /* @__PURE__ */ jsx11(
554
922
  "div",
555
923
  {
556
924
  ref,
@@ -561,9 +929,9 @@ var CardContent = React5.forwardRef(({ className, ...props }, ref) => {
561
929
  );
562
930
  });
563
931
  CardContent.displayName = "CardContent";
564
- var CardFooter = React5.forwardRef(({ className, ...props }, ref) => {
932
+ var CardFooter = React8.forwardRef(({ className, ...props }, ref) => {
565
933
  const size = useCardSize();
566
- return /* @__PURE__ */ jsx7(
934
+ return /* @__PURE__ */ jsx11(
567
935
  "div",
568
936
  {
569
937
  ref,
@@ -581,13 +949,13 @@ CardFooter.displayName = "CardFooter";
581
949
 
582
950
  // src/checkbox.tsx
583
951
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
584
- import * as React6 from "react";
585
- import { jsx as jsx8 } from "react/jsx-runtime";
952
+ import * as React9 from "react";
953
+ import { jsx as jsx12 } from "react/jsx-runtime";
586
954
  var CHECKBOX_SIZES = {
587
955
  sm: { root: "h-3.5 w-3.5 rounded-xs", glyph: "h-3 w-3" },
588
956
  md: { root: "h-4 w-4 rounded-sm", glyph: "h-3.5 w-3.5" }
589
957
  };
590
- var Checkbox = React6.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx8(
958
+ var Checkbox = React9.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx12(
591
959
  CheckboxPrimitive.Root,
592
960
  {
593
961
  ref,
@@ -598,12 +966,12 @@ var Checkbox = React6.forwardRef(({ className, size = "md", ...props }, ref) =>
598
966
  className
599
967
  ),
600
968
  ...props,
601
- children: /* @__PURE__ */ jsx8(
969
+ children: /* @__PURE__ */ jsx12(
602
970
  CheckboxPrimitive.Indicator,
603
971
  {
604
972
  "data-slot": "checkbox-indicator",
605
973
  className: "flex items-center justify-center text-current",
606
- 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 })
607
975
  }
608
976
  )
609
977
  }
@@ -619,35 +987,15 @@ var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
619
987
  // src/command.tsx
620
988
  import * as DialogPrimitive from "@radix-ui/react-dialog";
621
989
  import { Command as CommandPrimitive } from "cmdk";
622
- import * as React9 from "react";
623
-
624
- // src/portal-container.tsx
625
- import * as React7 from "react";
626
- import { jsx as jsx9 } from "react/jsx-runtime";
627
- var PortalContainerContext = React7.createContext(
628
- void 0
629
- );
630
- function PortalContainerProvider({
631
- container,
632
- children
633
- }) {
634
- return /* @__PURE__ */ jsx9(PortalContainerContext.Provider, { value: container ?? void 0, children });
635
- }
636
- function usePortalContainer(explicit) {
637
- const injected = React7.useContext(PortalContainerContext);
638
- if (explicit !== void 0) {
639
- return explicit ?? void 0;
640
- }
641
- return injected ?? void 0;
642
- }
990
+ import * as React11 from "react";
643
991
 
644
992
  // src/use-is-mobile.ts
645
- import * as React8 from "react";
993
+ import * as React10 from "react";
646
994
  var MOBILE_BREAKPOINT = 768;
647
995
  function useIsMobile() {
648
- const [isMobile, setIsMobile] = React8.useState(false);
649
- const [hasMounted, setHasMounted] = React8.useState(false);
650
- React8.useEffect(() => {
996
+ const [isMobile, setIsMobile] = React10.useState(false);
997
+ const [hasMounted, setHasMounted] = React10.useState(false);
998
+ React10.useEffect(() => {
651
999
  setHasMounted(true);
652
1000
  const onChange = () => {
653
1001
  setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
@@ -667,8 +1015,8 @@ function useIsMobile() {
667
1015
  }
668
1016
 
669
1017
  // src/command.tsx
670
- import { jsx as jsx10, jsxs as jsxs3 } from "react/jsx-runtime";
671
- 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(
672
1020
  CommandPrimitive,
673
1021
  {
674
1022
  ref,
@@ -683,18 +1031,18 @@ Command.displayName = CommandPrimitive.displayName;
683
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";
684
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";
685
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";
686
- var CommandDialogContent = React9.forwardRef(({ className, children, container, ...props }, ref) => {
1034
+ var CommandDialogContent = React11.forwardRef(({ className, children, container, ...props }, ref) => {
687
1035
  const isMobile = useIsMobile();
688
1036
  const isModal = useRadixDialogModal();
689
1037
  const portalContainer = usePortalContainer(container);
690
- return /* @__PURE__ */ jsxs3(DialogPrimitive.Portal, { container: portalContainer, children: [
691
- isModal ? /* @__PURE__ */ jsx10(
1038
+ return /* @__PURE__ */ jsxs5(DialogPrimitive.Portal, { container: portalContainer, children: [
1039
+ isModal ? /* @__PURE__ */ jsx13(
692
1040
  DialogPrimitive.Overlay,
693
1041
  {
694
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"
695
1043
  }
696
1044
  ) : null,
697
- /* @__PURE__ */ jsxs3(
1045
+ /* @__PURE__ */ jsxs5(
698
1046
  DialogPrimitive.Content,
699
1047
  {
700
1048
  ref,
@@ -709,9 +1057,9 @@ var CommandDialogContent = React9.forwardRef(({ className, children, container,
709
1057
  ...props,
710
1058
  children: [
711
1059
  children,
712
- /* @__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: [
713
- /* @__PURE__ */ jsx10(XIcon, { className: "h-4 w-4" }),
714
- /* @__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" })
715
1063
  ] })
716
1064
  ]
717
1065
  }
@@ -725,21 +1073,21 @@ var CommandDialog = ({
725
1073
  ...props
726
1074
  }) => {
727
1075
  const modal = props.modal ?? true;
728
- 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(
729
1077
  CommandDialogContent,
730
1078
  {
731
1079
  className: "overflow-hidden p-0",
732
1080
  ...container !== void 0 ? { container } : {},
733
1081
  children: [
734
- /* @__PURE__ */ jsx10(DialogPrimitive.Title, { className: "sr-only" }),
735
- /* @__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 })
736
1084
  ]
737
1085
  }
738
1086
  ) }) });
739
1087
  };
740
- var CommandInput = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs3("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
741
- /* @__PURE__ */ jsx10(MagnifyingGlassIcon, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
742
- /* @__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(
743
1091
  CommandPrimitive.Input,
744
1092
  {
745
1093
  ref,
@@ -752,7 +1100,7 @@ var CommandInput = React9.forwardRef(({ className, ...props }, ref) => /* @__PUR
752
1100
  )
753
1101
  ] }));
754
1102
  CommandInput.displayName = CommandPrimitive.Input.displayName;
755
- var CommandList = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
1103
+ var CommandList = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
756
1104
  CommandPrimitive.List,
757
1105
  {
758
1106
  ref,
@@ -761,7 +1109,7 @@ var CommandList = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE
761
1109
  }
762
1110
  ));
763
1111
  CommandList.displayName = CommandPrimitive.List.displayName;
764
- var CommandEmpty = React9.forwardRef((props, ref) => /* @__PURE__ */ jsx10(
1112
+ var CommandEmpty = React11.forwardRef((props, ref) => /* @__PURE__ */ jsx13(
765
1113
  CommandPrimitive.Empty,
766
1114
  {
767
1115
  ref,
@@ -770,7 +1118,7 @@ var CommandEmpty = React9.forwardRef((props, ref) => /* @__PURE__ */ jsx10(
770
1118
  }
771
1119
  ));
772
1120
  CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
773
- var CommandGroup = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
1121
+ var CommandGroup = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
774
1122
  CommandPrimitive.Group,
775
1123
  {
776
1124
  ref,
@@ -782,7 +1130,7 @@ var CommandGroup = React9.forwardRef(({ className, ...props }, ref) => /* @__PUR
782
1130
  }
783
1131
  ));
784
1132
  CommandGroup.displayName = CommandPrimitive.Group.displayName;
785
- var CommandSeparator = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
1133
+ var CommandSeparator = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
786
1134
  CommandPrimitive.Separator,
787
1135
  {
788
1136
  ref,
@@ -791,7 +1139,7 @@ var CommandSeparator = React9.forwardRef(({ className, ...props }, ref) => /* @_
791
1139
  }
792
1140
  ));
793
1141
  CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
794
- var CommandItem = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
1142
+ var CommandItem = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
795
1143
  CommandPrimitive.Item,
796
1144
  {
797
1145
  ref,
@@ -807,7 +1155,7 @@ var CommandShortcut = ({
807
1155
  className,
808
1156
  ...props
809
1157
  }) => {
810
- return /* @__PURE__ */ jsx10(
1158
+ return /* @__PURE__ */ jsx13(
811
1159
  "span",
812
1160
  {
813
1161
  className: cn(
@@ -822,8 +1170,8 @@ CommandShortcut.displayName = "CommandShortcut";
822
1170
 
823
1171
  // src/context-menu.tsx
824
1172
  import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
825
- import * as React10 from "react";
826
- 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";
827
1175
  var ContextMenu = ContextMenuPrimitive.Root;
828
1176
  var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
829
1177
  var ContextMenuGroup = ContextMenuPrimitive.Group;
@@ -834,7 +1182,7 @@ var SURFACE_CLASS = "z-50 min-w-[8rem] max-h-[var(--radix-context-menu-content-a
834
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";
835
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";
836
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";
837
- var ContextMenuSubTrigger = React10.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs4(
1185
+ var ContextMenuSubTrigger = React12.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs6(
838
1186
  ContextMenuPrimitive.SubTrigger,
839
1187
  {
840
1188
  ref,
@@ -847,12 +1195,12 @@ var ContextMenuSubTrigger = React10.forwardRef(({ className, inset, children, ..
847
1195
  ...props,
848
1196
  children: [
849
1197
  children,
850
- /* @__PURE__ */ jsx11(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
1198
+ /* @__PURE__ */ jsx14(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
851
1199
  ]
852
1200
  }
853
1201
  ));
854
1202
  ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
855
- var ContextMenuSubContent = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
1203
+ var ContextMenuSubContent = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
856
1204
  ContextMenuPrimitive.SubContent,
857
1205
  {
858
1206
  ref,
@@ -862,9 +1210,9 @@ var ContextMenuSubContent = React10.forwardRef(({ className, ...props }, ref) =>
862
1210
  }
863
1211
  ));
864
1212
  ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
865
- var ContextMenuContent = React10.forwardRef(({ className, container, ...props }, ref) => {
1213
+ var ContextMenuContent = React12.forwardRef(({ className, container, ...props }, ref) => {
866
1214
  const portalContainer = usePortalContainer(container);
867
- return /* @__PURE__ */ jsx11(ContextMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx11(
1215
+ return /* @__PURE__ */ jsx14(ContextMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx14(
868
1216
  ContextMenuPrimitive.Content,
869
1217
  {
870
1218
  ref,
@@ -875,7 +1223,7 @@ var ContextMenuContent = React10.forwardRef(({ className, container, ...props },
875
1223
  ) });
876
1224
  });
877
1225
  ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
878
- var ContextMenuItem = React10.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx11(
1226
+ var ContextMenuItem = React12.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx14(
879
1227
  ContextMenuPrimitive.Item,
880
1228
  {
881
1229
  ref,
@@ -890,7 +1238,7 @@ var ContextMenuItem = React10.forwardRef(({ className, inset, ...props }, ref) =
890
1238
  }
891
1239
  ));
892
1240
  ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
893
- var ContextMenuCheckboxItem = React10.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs4(
1241
+ var ContextMenuCheckboxItem = React12.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs6(
894
1242
  ContextMenuPrimitive.CheckboxItem,
895
1243
  {
896
1244
  ref,
@@ -898,13 +1246,13 @@ var ContextMenuCheckboxItem = React10.forwardRef(({ className, children, ...prop
898
1246
  className: cn(INDICATOR_ITEM_CLASS, className),
899
1247
  ...props,
900
1248
  children: [
901
- /* @__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" }) }) }),
902
1250
  children
903
1251
  ]
904
1252
  }
905
1253
  ));
906
1254
  ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
907
- var ContextMenuRadioItem = React10.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs4(
1255
+ var ContextMenuRadioItem = React12.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs6(
908
1256
  ContextMenuPrimitive.RadioItem,
909
1257
  {
910
1258
  ref,
@@ -912,13 +1260,13 @@ var ContextMenuRadioItem = React10.forwardRef(({ className, children, ...props }
912
1260
  className: cn(INDICATOR_ITEM_CLASS, className),
913
1261
  ...props,
914
1262
  children: [
915
- /* @__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" }) }) }),
916
1264
  children
917
1265
  ]
918
1266
  }
919
1267
  ));
920
1268
  ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
921
- var ContextMenuLabel = React10.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx11(
1269
+ var ContextMenuLabel = React12.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx14(
922
1270
  ContextMenuPrimitive.Label,
923
1271
  {
924
1272
  ref,
@@ -932,7 +1280,7 @@ var ContextMenuLabel = React10.forwardRef(({ className, inset, ...props }, ref)
932
1280
  }
933
1281
  ));
934
1282
  ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
935
- var ContextMenuSeparator = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
1283
+ var ContextMenuSeparator = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
936
1284
  ContextMenuPrimitive.Separator,
937
1285
  {
938
1286
  ref,
@@ -945,7 +1293,7 @@ ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
945
1293
  var ContextMenuShortcut = ({
946
1294
  className,
947
1295
  ...props
948
- }) => /* @__PURE__ */ jsx11(
1296
+ }) => /* @__PURE__ */ jsx14(
949
1297
  "span",
950
1298
  {
951
1299
  "data-slot": "context-menu-shortcut",
@@ -963,15 +1311,15 @@ import {
963
1311
 
964
1312
  // src/popover.tsx
965
1313
  import * as PopoverPrimitive from "@radix-ui/react-popover";
966
- import * as React11 from "react";
967
- import { jsx as jsx12 } from "react/jsx-runtime";
1314
+ import * as React13 from "react";
1315
+ import { jsx as jsx15 } from "react/jsx-runtime";
968
1316
  var Popover = PopoverPrimitive.Root;
969
1317
  var PopoverTrigger = PopoverPrimitive.Trigger;
970
1318
  var PopoverAnchor = PopoverPrimitive.Anchor;
971
- var PopoverContent = React11.forwardRef(
1319
+ var PopoverContent = React13.forwardRef(
972
1320
  ({ className, align = "center", sideOffset = 4, container, ...props }, ref) => {
973
1321
  const portalContainer = usePortalContainer(container);
974
- return /* @__PURE__ */ jsx12(PopoverPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx12(
1322
+ return /* @__PURE__ */ jsx15(PopoverPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx15(
975
1323
  PopoverPrimitive.Content,
976
1324
  {
977
1325
  ref,
@@ -995,7 +1343,7 @@ var PopoverContent = React11.forwardRef(
995
1343
  PopoverContent.displayName = PopoverPrimitive.Content.displayName;
996
1344
 
997
1345
  // src/creatable-picker.tsx
998
- import { jsx as jsx13, jsxs as jsxs5 } from "react/jsx-runtime";
1346
+ import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
999
1347
  function article(noun) {
1000
1348
  return /^[aeiou]/i.test(noun.trim()) ? `an ${noun}` : `a ${noun}`;
1001
1349
  }
@@ -1070,8 +1418,8 @@ function CreatablePicker({
1070
1418
  setBusy(false);
1071
1419
  }
1072
1420
  };
1073
- return /* @__PURE__ */ jsxs5(Popover, { open, onOpenChange: (next) => next ? setOpen(true) : close(), children: [
1074
- /* @__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(
1075
1423
  "button",
1076
1424
  {
1077
1425
  type: "button",
@@ -1085,12 +1433,12 @@ function CreatablePicker({
1085
1433
  triggerClassName
1086
1434
  ),
1087
1435
  children: [
1088
- /* @__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 }) }),
1089
- /* @__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" })
1090
1438
  ]
1091
1439
  }
1092
1440
  ) }),
1093
- /* @__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(
1094
1442
  Command,
1095
1443
  {
1096
1444
  filter: (itemValue, search, keywords) => {
@@ -1098,7 +1446,7 @@ function CreatablePicker({
1098
1446
  return haystack.includes(search.toLowerCase()) ? 1 : 0;
1099
1447
  },
1100
1448
  children: [
1101
- /* @__PURE__ */ jsx13(
1449
+ /* @__PURE__ */ jsx16(
1102
1450
  CommandInput,
1103
1451
  {
1104
1452
  ref: inputRef,
@@ -1110,13 +1458,13 @@ function CreatablePicker({
1110
1458
  placeholder: searchPlaceholder ?? `Search or add ${article(noun)}\u2026`
1111
1459
  }
1112
1460
  ),
1113
- /* @__PURE__ */ jsxs5(CommandList, { children: [
1114
- /* @__PURE__ */ jsx13(CommandEmpty, { children: emptyLabel }),
1115
- groups.map((group) => /* @__PURE__ */ jsx13(
1461
+ /* @__PURE__ */ jsxs7(CommandList, { children: [
1462
+ /* @__PURE__ */ jsx16(CommandEmpty, { children: emptyLabel }),
1463
+ groups.map((group) => /* @__PURE__ */ jsx16(
1116
1464
  CommandGroup,
1117
1465
  {
1118
1466
  ...group.heading === void 0 ? {} : { heading: group.heading },
1119
- children: group.options.map((option) => /* @__PURE__ */ jsxs5(
1467
+ children: group.options.map((option) => /* @__PURE__ */ jsxs7(
1120
1468
  CommandItem,
1121
1469
  {
1122
1470
  value: option.label,
@@ -1127,7 +1475,7 @@ function CreatablePicker({
1127
1475
  },
1128
1476
  className: "gap-2 text-xs",
1129
1477
  children: [
1130
- /* @__PURE__ */ jsx13(
1478
+ /* @__PURE__ */ jsx16(
1131
1479
  LucideCheckIcon,
1132
1480
  {
1133
1481
  className: cn(
@@ -1136,8 +1484,8 @@ function CreatablePicker({
1136
1484
  )
1137
1485
  }
1138
1486
  ),
1139
- /* @__PURE__ */ jsx13("span", { className: "min-w-0 flex-1 truncate", children: option.render ?? option.label }),
1140
- 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
1141
1489
  ]
1142
1490
  },
1143
1491
  option.value
@@ -1146,9 +1494,9 @@ function CreatablePicker({
1146
1494
  group.heading ?? "__ungrouped__"
1147
1495
  ))
1148
1496
  ] }),
1149
- canCreate ? /* @__PURE__ */ jsxs5("div", { className: "space-y-1 border-t border-border p-1", children: [
1150
- createExtra && typed && !exactMatch ? /* @__PURE__ */ jsx13("div", { className: "px-1 pt-0.5", children: typeof createExtra === "function" ? createExtra(typed) : createExtra }) : null,
1151
- /* @__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(
1152
1500
  "button",
1153
1501
  {
1154
1502
  type: "button",
@@ -1156,22 +1504,22 @@ function CreatablePicker({
1156
1504
  onClick: () => void create(typed),
1157
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",
1158
1506
  children: [
1159
- busy ? /* @__PURE__ */ jsx13(Loader2Icon, { className: "size-3.5 shrink-0 animate-spin" }) : /* @__PURE__ */ jsx13(PlusIcon, { className: "size-3.5 shrink-0" }),
1160
- /* @__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` })
1161
1509
  ]
1162
1510
  }
1163
1511
  ),
1164
- 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: [
1165
1513
  "Type the name of the ",
1166
1514
  noun,
1167
1515
  " you want to add \u2014 then this creates it."
1168
1516
  ] }) : null
1169
1517
  ] }) : null,
1170
- 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: [
1171
1519
  footerActions?.map((action) => {
1172
1520
  const Icon2 = action.icon;
1173
- return /* @__PURE__ */ jsxs5("div", { children: [
1174
- /* @__PURE__ */ jsxs5(
1521
+ return /* @__PURE__ */ jsxs7("div", { children: [
1522
+ /* @__PURE__ */ jsxs7(
1175
1523
  "button",
1176
1524
  {
1177
1525
  type: "button",
@@ -1181,15 +1529,15 @@ function CreatablePicker({
1181
1529
  },
1182
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",
1183
1531
  children: [
1184
- Icon2 ? /* @__PURE__ */ jsx13(Icon2, { className: "size-3.5 shrink-0" }) : null,
1185
- /* @__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 })
1186
1534
  ]
1187
1535
  }
1188
1536
  ),
1189
- 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
1190
1538
  ] }, action.label);
1191
1539
  }),
1192
- manageAction ? /* @__PURE__ */ jsxs5(
1540
+ manageAction ? /* @__PURE__ */ jsxs7(
1193
1541
  "a",
1194
1542
  {
1195
1543
  href: manageAction.href,
@@ -1198,18 +1546,18 @@ function CreatablePicker({
1198
1546
  onClick: close,
1199
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",
1200
1548
  children: [
1201
- /* @__PURE__ */ jsx13(ExternalLinkIcon, { className: "size-3.5 shrink-0" }),
1202
- /* @__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 })
1203
1551
  ]
1204
1552
  }
1205
1553
  ) : null
1206
1554
  ] }) : null,
1207
- lockedNote ? /* @__PURE__ */ jsxs5("div", { className: "space-y-1 border-t border-border p-2", children: [
1208
- /* @__PURE__ */ jsxs5("p", { className: "flex gap-1.5 text-[11px] leading-snug text-muted-foreground", children: [
1209
- /* @__PURE__ */ jsx13(LockIcon, { className: "mt-px size-3 shrink-0" }),
1210
- /* @__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 })
1211
1559
  ] }),
1212
- lockedAction ? /* @__PURE__ */ jsxs5(
1560
+ lockedAction ? /* @__PURE__ */ jsxs7(
1213
1561
  "button",
1214
1562
  {
1215
1563
  type: "button",
@@ -1219,8 +1567,8 @@ function CreatablePicker({
1219
1567
  },
1220
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",
1221
1569
  children: [
1222
- /* @__PURE__ */ jsx13(PlusIcon, { className: "size-3.5 shrink-0" }),
1223
- /* @__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 })
1224
1572
  ]
1225
1573
  }
1226
1574
  ) : null
@@ -1234,15 +1582,15 @@ function CreatablePicker({
1234
1582
  // src/dialog.tsx
1235
1583
  import * as DialogPrimitive2 from "@radix-ui/react-dialog";
1236
1584
  import * as VisuallyHidden2 from "@radix-ui/react-visually-hidden";
1237
- import { treeContainsComponent } from "@ai-matrx/kit/react-tree";
1238
- import * as React12 from "react";
1239
- 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";
1240
1588
  var Dialog = ({
1241
1589
  children,
1242
1590
  ...props
1243
1591
  }) => {
1244
1592
  const modal = props.modal ?? true;
1245
- 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 }) });
1246
1594
  };
1247
1595
  Dialog.displayName = "Dialog";
1248
1596
  var DialogTrigger = DialogPrimitive2.Trigger;
@@ -1252,12 +1600,12 @@ var DialogPortal = ({
1252
1600
  ...props
1253
1601
  }) => {
1254
1602
  const resolved = usePortalContainer(container);
1255
- return /* @__PURE__ */ jsx14(DialogPrimitive2.Portal, { container: resolved ?? null, ...props });
1603
+ return /* @__PURE__ */ jsx17(DialogPrimitive2.Portal, { container: resolved ?? null, ...props });
1256
1604
  };
1257
1605
  DialogPortal.displayName = "DialogPortal";
1258
- var DialogContainerContext = React12.createContext(null);
1259
- var useDialogContainer = () => React12.useContext(DialogContainerContext);
1260
- 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(
1261
1609
  DialogPrimitive2.Overlay,
1262
1610
  {
1263
1611
  ref,
@@ -1272,9 +1620,9 @@ var DialogOverlay = React12.forwardRef(({ className, ...props }, ref) => /* @__P
1272
1620
  }
1273
1621
  ));
1274
1622
  DialogOverlay.displayName = DialogPrimitive2.Overlay.displayName;
1275
- var DialogContentPrimitive = React12.forwardRef((props, ref) => {
1623
+ var DialogContentPrimitive = React14.forwardRef((props, ref) => {
1276
1624
  const isModal = useRadixDialogModal();
1277
- return /* @__PURE__ */ jsx14(
1625
+ return /* @__PURE__ */ jsx17(
1278
1626
  DialogPrimitive2.Content,
1279
1627
  {
1280
1628
  ...props,
@@ -1287,7 +1635,7 @@ DialogContentPrimitive.displayName = "DialogContentPrimitive";
1287
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";
1288
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";
1289
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";
1290
- var DialogContent = React12.forwardRef(
1638
+ var DialogContent = React14.forwardRef(
1291
1639
  ({
1292
1640
  className,
1293
1641
  children,
@@ -1300,10 +1648,10 @@ var DialogContent = React12.forwardRef(
1300
1648
  const isModal = useRadixDialogModal();
1301
1649
  const injectedContainer = usePortalContainer(container);
1302
1650
  const asSheet = mobileSheet && isMobile;
1303
- const [containerEl, setContainerEl] = React12.useState(
1651
+ const [containerEl, setContainerEl] = React14.useState(
1304
1652
  null
1305
1653
  );
1306
- const mergedRef = React12.useCallback(
1654
+ const mergedRef = React14.useCallback(
1307
1655
  (node) => {
1308
1656
  setContainerEl(node);
1309
1657
  if (typeof ref === "function") ref(node);
@@ -1312,11 +1660,11 @@ var DialogContent = React12.forwardRef(
1312
1660
  },
1313
1661
  [ref]
1314
1662
  );
1315
- const hasTitle = treeContainsComponent(children, DialogTitle) || treeContainsComponent(children, DialogPrimitive2.Title);
1316
- const hasDescription = treeContainsComponent(children, DialogDescription) || treeContainsComponent(children, DialogPrimitive2.Description);
1317
- return /* @__PURE__ */ jsxs6(DialogPortal, { container, children: [
1318
- isModal ? /* @__PURE__ */ jsx14(DialogOverlay, {}) : null,
1319
- /* @__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(
1320
1668
  DialogContentPrimitive,
1321
1669
  {
1322
1670
  ref: mergedRef,
@@ -1334,23 +1682,23 @@ var DialogContent = React12.forwardRef(
1334
1682
  ...hasDescription ? {} : { "aria-describedby": void 0 },
1335
1683
  ...props,
1336
1684
  children: [
1337
- hasTitle ? null : /* @__PURE__ */ jsx14(VisuallyHidden2.Root, { children: /* @__PURE__ */ jsx14(DialogPrimitive2.Title, { children: "Dialog" }) }),
1338
- /* @__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(
1339
1687
  PortalContainerProvider,
1340
1688
  {
1341
1689
  container: containerEl ?? injectedContainer ?? null,
1342
1690
  children
1343
1691
  }
1344
1692
  ) }),
1345
- showCloseButton ? /* @__PURE__ */ jsxs6(
1693
+ showCloseButton ? /* @__PURE__ */ jsxs8(
1346
1694
  DialogPrimitive2.Close,
1347
1695
  {
1348
1696
  "data-slot": "dialog-close",
1349
1697
  "aria-label": "Close",
1350
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",
1351
1699
  children: [
1352
- /* @__PURE__ */ jsx14(XIcon, { className: "h-4 w-4" }),
1353
- /* @__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" })
1354
1702
  ]
1355
1703
  }
1356
1704
  ) : null
@@ -1364,7 +1712,7 @@ DialogContent.displayName = DialogPrimitive2.Content.displayName;
1364
1712
  var DialogHeader = ({
1365
1713
  className,
1366
1714
  ...props
1367
- }) => /* @__PURE__ */ jsx14(
1715
+ }) => /* @__PURE__ */ jsx17(
1368
1716
  "div",
1369
1717
  {
1370
1718
  "data-slot": "dialog-header",
@@ -1381,7 +1729,7 @@ DialogHeader.displayName = "DialogHeader";
1381
1729
  var DialogFooter = ({
1382
1730
  className,
1383
1731
  ...props
1384
- }) => /* @__PURE__ */ jsx14(
1732
+ }) => /* @__PURE__ */ jsx17(
1385
1733
  "div",
1386
1734
  {
1387
1735
  "data-slot": "dialog-footer",
@@ -1395,7 +1743,7 @@ var DialogFooter = ({
1395
1743
  }
1396
1744
  );
1397
1745
  DialogFooter.displayName = "DialogFooter";
1398
- var DialogTitle = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
1746
+ var DialogTitle = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
1399
1747
  DialogPrimitive2.Title,
1400
1748
  {
1401
1749
  ref,
@@ -1405,7 +1753,7 @@ var DialogTitle = React12.forwardRef(({ className, ...props }, ref) => /* @__PUR
1405
1753
  }
1406
1754
  ));
1407
1755
  DialogTitle.displayName = DialogPrimitive2.Title.displayName;
1408
- var DialogDescription = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
1756
+ var DialogDescription = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
1409
1757
  DialogPrimitive2.Description,
1410
1758
  {
1411
1759
  ref,
@@ -1418,8 +1766,8 @@ DialogDescription.displayName = DialogPrimitive2.Description.displayName;
1418
1766
 
1419
1767
  // src/dropdown-menu.tsx
1420
1768
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
1421
- import * as React13 from "react";
1422
- 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";
1423
1771
  var DropdownMenu = DropdownMenuPrimitive.Root;
1424
1772
  var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
1425
1773
  var DropdownMenuGroup = DropdownMenuPrimitive.Group;
@@ -1430,7 +1778,7 @@ var MENU_SURFACE_CLASS = "z-[10001] min-w-[8rem] max-h-[var(--radix-dropdown-men
1430
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";
1431
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";
1432
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";
1433
- var DropdownMenuSubTrigger = React13.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs7(
1781
+ var DropdownMenuSubTrigger = React15.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs9(
1434
1782
  DropdownMenuPrimitive.SubTrigger,
1435
1783
  {
1436
1784
  ref,
@@ -1443,12 +1791,12 @@ var DropdownMenuSubTrigger = React13.forwardRef(({ className, inset, children, .
1443
1791
  ...props,
1444
1792
  children: [
1445
1793
  children,
1446
- /* @__PURE__ */ jsx15(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
1794
+ /* @__PURE__ */ jsx18(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
1447
1795
  ]
1448
1796
  }
1449
1797
  ));
1450
1798
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
1451
- var DropdownMenuSubContent = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
1799
+ var DropdownMenuSubContent = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
1452
1800
  DropdownMenuPrimitive.SubContent,
1453
1801
  {
1454
1802
  ref,
@@ -1458,9 +1806,9 @@ var DropdownMenuSubContent = React13.forwardRef(({ className, ...props }, ref) =
1458
1806
  }
1459
1807
  ));
1460
1808
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
1461
- var DropdownMenuContent = React13.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => {
1809
+ var DropdownMenuContent = React15.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => {
1462
1810
  const portalContainer = usePortalContainer(container);
1463
- return /* @__PURE__ */ jsx15(DropdownMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx15(
1811
+ return /* @__PURE__ */ jsx18(DropdownMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx18(
1464
1812
  DropdownMenuPrimitive.Content,
1465
1813
  {
1466
1814
  ref,
@@ -1477,7 +1825,7 @@ var DropdownMenuContent = React13.forwardRef(({ className, sideOffset = 4, conta
1477
1825
  ) });
1478
1826
  });
1479
1827
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
1480
- var DropdownMenuItem = React13.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx15(
1828
+ var DropdownMenuItem = React15.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx18(
1481
1829
  DropdownMenuPrimitive.Item,
1482
1830
  {
1483
1831
  ref,
@@ -1487,7 +1835,7 @@ var DropdownMenuItem = React13.forwardRef(({ className, inset, ...props }, ref)
1487
1835
  }
1488
1836
  ));
1489
1837
  DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
1490
- var DropdownMenuCheckboxItem = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs7(
1838
+ var DropdownMenuCheckboxItem = React15.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs9(
1491
1839
  DropdownMenuPrimitive.CheckboxItem,
1492
1840
  {
1493
1841
  ref,
@@ -1495,13 +1843,13 @@ var DropdownMenuCheckboxItem = React13.forwardRef(({ className, children, ...pro
1495
1843
  className: cn(MENU_INDICATOR_ITEM_CLASS, className),
1496
1844
  ...props,
1497
1845
  children: [
1498
- /* @__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" }) }) }),
1499
1847
  children
1500
1848
  ]
1501
1849
  }
1502
1850
  ));
1503
1851
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
1504
- var DropdownMenuRadioItem = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs7(
1852
+ var DropdownMenuRadioItem = React15.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs9(
1505
1853
  DropdownMenuPrimitive.RadioItem,
1506
1854
  {
1507
1855
  ref,
@@ -1509,13 +1857,13 @@ var DropdownMenuRadioItem = React13.forwardRef(({ className, children, ...props
1509
1857
  className: cn(MENU_INDICATOR_ITEM_CLASS, className),
1510
1858
  ...props,
1511
1859
  children: [
1512
- /* @__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" }) }) }),
1513
1861
  children
1514
1862
  ]
1515
1863
  }
1516
1864
  ));
1517
1865
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
1518
- var DropdownMenuLabel = React13.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx15(
1866
+ var DropdownMenuLabel = React15.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx18(
1519
1867
  DropdownMenuPrimitive.Label,
1520
1868
  {
1521
1869
  ref,
@@ -1525,7 +1873,7 @@ var DropdownMenuLabel = React13.forwardRef(({ className, inset, ...props }, ref)
1525
1873
  }
1526
1874
  ));
1527
1875
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
1528
- var DropdownMenuSeparator = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
1876
+ var DropdownMenuSeparator = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
1529
1877
  DropdownMenuPrimitive.Separator,
1530
1878
  {
1531
1879
  ref,
@@ -1538,7 +1886,7 @@ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
1538
1886
  var DropdownMenuShortcut = ({
1539
1887
  className,
1540
1888
  ...props
1541
- }) => /* @__PURE__ */ jsx15(
1889
+ }) => /* @__PURE__ */ jsx18(
1542
1890
  "span",
1543
1891
  {
1544
1892
  "data-slot": "dropdown-menu-shortcut",
@@ -1550,7 +1898,7 @@ DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
1550
1898
 
1551
1899
  // src/editable-label.tsx
1552
1900
  import { useCallback as useCallback2, useEffect as useEffect2, useRef as useRef2, useState as useState4 } from "react";
1553
- import { jsx as jsx16, jsxs as jsxs8 } from "react/jsx-runtime";
1901
+ import { jsx as jsx19, jsxs as jsxs10 } from "react/jsx-runtime";
1554
1902
  function EditableLabel({
1555
1903
  value,
1556
1904
  onCommit,
@@ -1657,8 +2005,8 @@ function EditableLabel({
1657
2005
  setEditing
1658
2006
  ]);
1659
2007
  if (editing) {
1660
- return /* @__PURE__ */ jsxs8("span", { className: cn("relative flex min-w-0 flex-1 items-center", className), children: [
1661
- /* @__PURE__ */ jsx16(
2008
+ return /* @__PURE__ */ jsxs10("span", { className: cn("relative flex min-w-0 flex-1 items-center", className), children: [
2009
+ /* @__PURE__ */ jsx19(
1662
2010
  "input",
1663
2011
  {
1664
2012
  ref: inputRef,
@@ -1698,12 +2046,12 @@ function EditableLabel({
1698
2046
  )
1699
2047
  }
1700
2048
  ),
1701
- busy && /* @__PURE__ */ jsx16(Loader2Icon, { className: "absolute right-1 h-3.5 w-3.5 animate-spin text-muted-foreground" }),
1702
- 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 })
1703
2051
  ] });
1704
2052
  }
1705
2053
  if (controlled) return null;
1706
- return /* @__PURE__ */ jsx16(
2054
+ return /* @__PURE__ */ jsx19(
1707
2055
  "button",
1708
2056
  {
1709
2057
  type: "button",
@@ -1737,8 +2085,8 @@ function EditableLabel({
1737
2085
  }
1738
2086
 
1739
2087
  // src/input.tsx
1740
- import * as React14 from "react";
1741
- 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";
1742
2090
  var getVariantStyles = (variant = "default") => {
1743
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
1744
2092
  file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground
@@ -1766,9 +2114,9 @@ var getVariantStyles = (variant = "default") => {
1766
2114
  return baseStyles;
1767
2115
  }
1768
2116
  };
1769
- var Input = React14.forwardRef(
2117
+ var Input = React16.forwardRef(
1770
2118
  ({ className, type, variant = "default", ...props }, ref) => {
1771
- return /* @__PURE__ */ jsx17(
2119
+ return /* @__PURE__ */ jsx20(
1772
2120
  "input",
1773
2121
  {
1774
2122
  type,
@@ -1780,7 +2128,7 @@ var Input = React14.forwardRef(
1780
2128
  }
1781
2129
  );
1782
2130
  Input.displayName = "Input";
1783
- var EnterInput = React14.forwardRef(
2131
+ var EnterInput = React16.forwardRef(
1784
2132
  ({ onEnter, ...props }, ref) => {
1785
2133
  const handleKeyDown = (e) => {
1786
2134
  if (e.key === "Enter" && onEnter) {
@@ -1788,7 +2136,7 @@ var EnterInput = React14.forwardRef(
1788
2136
  onEnter();
1789
2137
  }
1790
2138
  };
1791
- return /* @__PURE__ */ jsx17(
2139
+ return /* @__PURE__ */ jsx20(
1792
2140
  Input,
1793
2141
  {
1794
2142
  ...props,
@@ -1804,11 +2152,11 @@ var EnterInput = React14.forwardRef(
1804
2152
  }
1805
2153
  );
1806
2154
  EnterInput.displayName = "EnterInput";
1807
- var BasicInput = React14.forwardRef(
2155
+ var BasicInput = React16.forwardRef(
1808
2156
  // `variant` is accepted (prop-compatible with Input) but intentionally
1809
2157
  // unused — and destructured so it never leaks onto the DOM element.
1810
2158
  ({ className, type, variant: _variant = "default", ...props }, ref) => {
1811
- return /* @__PURE__ */ jsx17(
2159
+ return /* @__PURE__ */ jsx20(
1812
2160
  "input",
1813
2161
  {
1814
2162
  type,
@@ -1823,10 +2171,10 @@ var BasicInput = React14.forwardRef(
1823
2171
  }
1824
2172
  );
1825
2173
  BasicInput.displayName = "BasicInput";
1826
- var InputWithPrefix = React14.forwardRef(({ prefix, className, wrapperClassName, ...props }, ref) => {
1827
- return /* @__PURE__ */ jsxs9("div", { className: cn("relative", wrapperClassName), children: [
1828
- prefix && /* @__PURE__ */ jsx17("div", { className: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground", children: prefix }),
1829
- /* @__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(
1830
2178
  Input,
1831
2179
  {
1832
2180
  ref,
@@ -1840,9 +2188,9 @@ InputWithPrefix.displayName = "InputWithPrefix";
1840
2188
 
1841
2189
  // src/label.tsx
1842
2190
  import * as LabelPrimitive from "@radix-ui/react-label";
1843
- import * as React15 from "react";
1844
- import { jsx as jsx18 } from "react/jsx-runtime";
1845
- 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(
1846
2194
  LabelPrimitive.Root,
1847
2195
  {
1848
2196
  ref,
@@ -1857,7 +2205,7 @@ Label3.displayName = LabelPrimitive.Root.displayName;
1857
2205
 
1858
2206
  // src/overflow-toolbar.tsx
1859
2207
  import { useLayoutEffect, useMemo, useRef as useRef3, useState as useState5 } from "react";
1860
- 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";
1861
2209
  var GAP_PX = 6;
1862
2210
  var TONE = {
1863
2211
  default: "border border-border bg-background hover:bg-accent text-foreground",
@@ -1879,16 +2227,16 @@ function ToolbarButton({
1879
2227
  action.hideLabel && !action.running ? "w-7 justify-center px-0" : "px-2",
1880
2228
  TONE[tone]
1881
2229
  );
1882
- const inner = /* @__PURE__ */ jsxs10(Fragment, { children: [
1883
- /* @__PURE__ */ jsx19(
2230
+ const inner = /* @__PURE__ */ jsxs12(Fragment, { children: [
2231
+ /* @__PURE__ */ jsx22(
1884
2232
  Icon2,
1885
2233
  {
1886
2234
  className: cn("w-3.5 h-3.5 shrink-0", action.running && "animate-spin")
1887
2235
  }
1888
2236
  ),
1889
- showLabel && /* @__PURE__ */ jsx19("span", { children: text })
2237
+ showLabel && /* @__PURE__ */ jsx22("span", { children: text })
1890
2238
  ] });
1891
- const control = action.href && !action.disabled ? /* @__PURE__ */ jsx19(
2239
+ const control = action.href && !action.disabled ? /* @__PURE__ */ jsx22(
1892
2240
  "a",
1893
2241
  {
1894
2242
  href: action.href,
@@ -1898,7 +2246,7 @@ function ToolbarButton({
1898
2246
  "aria-label": action.label,
1899
2247
  children: inner
1900
2248
  }
1901
- ) : /* @__PURE__ */ jsx19(
2249
+ ) : /* @__PURE__ */ jsx22(
1902
2250
  "button",
1903
2251
  {
1904
2252
  type: "button",
@@ -1910,12 +2258,12 @@ function ToolbarButton({
1910
2258
  }
1911
2259
  );
1912
2260
  if (enableTooltip && action.hideLabel && renderTooltip) {
1913
- return /* @__PURE__ */ jsx19(Fragment, { children: renderTooltip(control, action.label) });
2261
+ return /* @__PURE__ */ jsx22(Fragment, { children: renderTooltip(control, action.label) });
1914
2262
  }
1915
2263
  return control;
1916
2264
  }
1917
2265
  function OverflowTrigger({ ariaLabel }) {
1918
- return /* @__PURE__ */ jsx19(
2266
+ return /* @__PURE__ */ jsx22(
1919
2267
  "button",
1920
2268
  {
1921
2269
  type: "button",
@@ -1926,7 +2274,7 @@ function OverflowTrigger({ ariaLabel }) {
1926
2274
  "inline-flex items-center justify-center h-7 w-7 rounded-md transition-colors",
1927
2275
  "border border-border bg-background hover:bg-accent text-foreground"
1928
2276
  ),
1929
- children: /* @__PURE__ */ jsx19(MoreHorizontalIcon, { className: "w-3.5 h-3.5" })
2277
+ children: /* @__PURE__ */ jsx22(MoreHorizontalIcon, { className: "w-3.5 h-3.5" })
1930
2278
  }
1931
2279
  );
1932
2280
  }
@@ -1986,22 +2334,22 @@ function OverflowToolbar({
1986
2334
  }, [signature, leading != null]);
1987
2335
  const shown = visibleActions.slice(0, visibleCount);
1988
2336
  const hidden = visibleActions.slice(visibleCount);
1989
- return /* @__PURE__ */ jsxs10("div", { ref: containerRef, className: cn("relative min-w-0", className), children: [
1990
- /* @__PURE__ */ jsxs10(
2337
+ return /* @__PURE__ */ jsxs12("div", { ref: containerRef, className: cn("relative min-w-0", className), children: [
2338
+ /* @__PURE__ */ jsxs12(
1991
2339
  "div",
1992
2340
  {
1993
2341
  ref: ghostRef,
1994
2342
  "aria-hidden": true,
1995
2343
  className: "pointer-events-none absolute left-0 top-0 flex items-center gap-1.5 opacity-0",
1996
2344
  children: [
1997
- visibleActions.map((a) => /* @__PURE__ */ jsx19(ToolbarButton, { action: a }, a.id)),
1998
- /* @__PURE__ */ jsx19(OverflowTrigger, { ariaLabel: overflowAriaLabel })
2345
+ visibleActions.map((a) => /* @__PURE__ */ jsx22(ToolbarButton, { action: a }, a.id)),
2346
+ /* @__PURE__ */ jsx22(OverflowTrigger, { ariaLabel: overflowAriaLabel })
1999
2347
  ]
2000
2348
  }
2001
2349
  ),
2002
- /* @__PURE__ */ jsxs10("div", { className: "flex items-center justify-end gap-1.5", children: [
2003
- leading != null && /* @__PURE__ */ jsx19("span", { ref: leadingRef, className: "shrink-0", children: leading }),
2004
- 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(
2005
2353
  ToolbarButton,
2006
2354
  {
2007
2355
  action: a,
@@ -2012,7 +2360,7 @@ function OverflowToolbar({
2012
2360
  )),
2013
2361
  hidden.length > 0 && renderOverflowMenu({
2014
2362
  actions: hidden,
2015
- trigger: /* @__PURE__ */ jsx19(OverflowTrigger, { ariaLabel: overflowAriaLabel })
2363
+ trigger: /* @__PURE__ */ jsx22(OverflowTrigger, { ariaLabel: overflowAriaLabel })
2016
2364
  })
2017
2365
  ] })
2018
2366
  ] });
@@ -2020,20 +2368,20 @@ function OverflowToolbar({
2020
2368
 
2021
2369
  // src/progress.tsx
2022
2370
  import * as ProgressPrimitive from "@radix-ui/react-progress";
2023
- import * as React17 from "react";
2024
- import { jsx as jsx20 } from "react/jsx-runtime";
2371
+ import * as React19 from "react";
2372
+ import { jsx as jsx23 } from "react/jsx-runtime";
2025
2373
  var PROGRESS_TONES = {
2026
2374
  default: "bg-primary",
2027
2375
  success: "bg-success",
2028
2376
  warning: "bg-warning",
2029
2377
  destructive: "bg-destructive"
2030
2378
  };
2031
- var Progress = React17.forwardRef(({ className, tone = "default", indicatorClassName, ...props }, ref) => {
2379
+ var Progress = React19.forwardRef(({ className, tone = "default", indicatorClassName, ...props }, ref) => {
2032
2380
  const { value, max } = props;
2033
2381
  const ceiling = max ?? 100;
2034
2382
  const isIndeterminate = value === null || value === void 0;
2035
2383
  const pct = isIndeterminate ? 0 : Math.min(100, Math.max(0, value / ceiling * 100));
2036
- return /* @__PURE__ */ jsx20(
2384
+ return /* @__PURE__ */ jsx23(
2037
2385
  ProgressPrimitive.Root,
2038
2386
  {
2039
2387
  ref,
@@ -2043,7 +2391,7 @@ var Progress = React17.forwardRef(({ className, tone = "default", indicatorClass
2043
2391
  className
2044
2392
  ),
2045
2393
  ...props,
2046
- children: /* @__PURE__ */ jsx20(
2394
+ children: /* @__PURE__ */ jsx23(
2047
2395
  ProgressPrimitive.Indicator,
2048
2396
  {
2049
2397
  "data-slot": "progress-indicator",
@@ -2063,9 +2411,9 @@ Progress.displayName = ProgressPrimitive.Root.displayName;
2063
2411
 
2064
2412
  // src/scroll-area.tsx
2065
2413
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
2066
- import * as React18 from "react";
2067
- import { jsx as jsx21, jsxs as jsxs11 } from "react/jsx-runtime";
2068
- 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(
2069
2417
  ({
2070
2418
  className,
2071
2419
  children,
@@ -2074,7 +2422,7 @@ var ScrollArea = React18.forwardRef(
2074
2422
  scrollBarClassName,
2075
2423
  orientation = "vertical",
2076
2424
  ...props
2077
- }, ref) => /* @__PURE__ */ jsxs11(
2425
+ }, ref) => /* @__PURE__ */ jsxs13(
2078
2426
  ScrollAreaPrimitive.Root,
2079
2427
  {
2080
2428
  ref,
@@ -2082,7 +2430,7 @@ var ScrollArea = React18.forwardRef(
2082
2430
  className: cn("relative overflow-hidden", className),
2083
2431
  ...props,
2084
2432
  children: [
2085
- /* @__PURE__ */ jsx21(
2433
+ /* @__PURE__ */ jsx24(
2086
2434
  ScrollAreaPrimitive.Viewport,
2087
2435
  {
2088
2436
  ref: viewportRef,
@@ -2091,14 +2439,14 @@ var ScrollArea = React18.forwardRef(
2091
2439
  children
2092
2440
  }
2093
2441
  ),
2094
- /* @__PURE__ */ jsx21(ScrollBar, { orientation, className: scrollBarClassName }),
2095
- /* @__PURE__ */ jsx21(ScrollAreaPrimitive.Corner, {})
2442
+ /* @__PURE__ */ jsx24(ScrollBar, { orientation, className: scrollBarClassName }),
2443
+ /* @__PURE__ */ jsx24(ScrollAreaPrimitive.Corner, {})
2096
2444
  ]
2097
2445
  }
2098
2446
  )
2099
2447
  );
2100
2448
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
2101
- var ScrollBar = React18.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx21(
2449
+ var ScrollBar = React20.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx24(
2102
2450
  ScrollAreaPrimitive.ScrollAreaScrollbar,
2103
2451
  {
2104
2452
  ref,
@@ -2111,7 +2459,7 @@ var ScrollBar = React18.forwardRef(({ className, orientation = "vertical", ...pr
2111
2459
  className
2112
2460
  ),
2113
2461
  ...props,
2114
- children: /* @__PURE__ */ jsx21(
2462
+ children: /* @__PURE__ */ jsx24(
2115
2463
  ScrollAreaPrimitive.ScrollAreaThumb,
2116
2464
  {
2117
2465
  "data-slot": "scroll-area-thumb",
@@ -2123,7 +2471,7 @@ var ScrollBar = React18.forwardRef(({ className, orientation = "vertical", ...pr
2123
2471
  ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
2124
2472
 
2125
2473
  // src/score-ring.tsx
2126
- import { jsx as jsx22, jsxs as jsxs12 } from "react/jsx-runtime";
2474
+ import { jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
2127
2475
  var DEFAULT_SCORE_THRESHOLDS = {
2128
2476
  good: 75,
2129
2477
  warning: 50
@@ -2154,7 +2502,7 @@ function ScoreRing({
2154
2502
  const circumference = 2 * Math.PI * radius;
2155
2503
  const boundedPct = pct === null ? 0 : Math.max(0, Math.min(100, pct));
2156
2504
  const dashOffset = circumference * (1 - boundedPct / 100);
2157
- return /* @__PURE__ */ jsxs12(
2505
+ return /* @__PURE__ */ jsxs14(
2158
2506
  "div",
2159
2507
  {
2160
2508
  className: cn(
@@ -2165,8 +2513,8 @@ function ScoreRing({
2165
2513
  role: "img",
2166
2514
  "aria-label": `${label ?? "Score"}: ${pct === null ? "not available" : `${pct} out of 100`}`,
2167
2515
  children: [
2168
- /* @__PURE__ */ jsxs12("svg", { viewBox: "0 0 100 100", className: "h-full w-full -rotate-90", children: [
2169
- /* @__PURE__ */ jsx22(
2516
+ /* @__PURE__ */ jsxs14("svg", { viewBox: "0 0 100 100", className: "h-full w-full -rotate-90", children: [
2517
+ /* @__PURE__ */ jsx25(
2170
2518
  "circle",
2171
2519
  {
2172
2520
  cx: "50",
@@ -2177,7 +2525,7 @@ function ScoreRing({
2177
2525
  fill: "none"
2178
2526
  }
2179
2527
  ),
2180
- pct !== null ? /* @__PURE__ */ jsx22(
2528
+ pct !== null ? /* @__PURE__ */ jsx25(
2181
2529
  "circle",
2182
2530
  {
2183
2531
  cx: "50",
@@ -2196,8 +2544,8 @@ function ScoreRing({
2196
2544
  }
2197
2545
  ) : null
2198
2546
  ] }),
2199
- /* @__PURE__ */ jsxs12("div", { className: "absolute flex flex-col items-center justify-center", children: [
2200
- /* @__PURE__ */ jsx22(
2547
+ /* @__PURE__ */ jsxs14("div", { className: "absolute flex flex-col items-center justify-center", children: [
2548
+ /* @__PURE__ */ jsx25(
2201
2549
  "span",
2202
2550
  {
2203
2551
  className: cn(
@@ -2207,7 +2555,7 @@ function ScoreRing({
2207
2555
  children: pct === null ? "\u2014" : `${pct}${suffix}`
2208
2556
  }
2209
2557
  ),
2210
- 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
2211
2559
  ] })
2212
2560
  ]
2213
2561
  }
@@ -2215,7 +2563,7 @@ function ScoreRing({
2215
2563
  }
2216
2564
 
2217
2565
  // src/segmented-control.tsx
2218
- import { jsx as jsx23 } from "react/jsx-runtime";
2566
+ import { jsx as jsx26 } from "react/jsx-runtime";
2219
2567
  function SegmentedControl({
2220
2568
  value,
2221
2569
  onValueChange,
@@ -2230,7 +2578,7 @@ function SegmentedControl({
2230
2578
  md: "h-9 text-sm",
2231
2579
  lg: "h-10 text-base"
2232
2580
  };
2233
- return /* @__PURE__ */ jsx23(
2581
+ return /* @__PURE__ */ jsx26(
2234
2582
  "div",
2235
2583
  {
2236
2584
  className: cn(
@@ -2241,7 +2589,7 @@ function SegmentedControl({
2241
2589
  role: "tablist",
2242
2590
  children: data.map((option) => {
2243
2591
  const isActive = value === option.value;
2244
- return /* @__PURE__ */ jsx23(
2592
+ return /* @__PURE__ */ jsx26(
2245
2593
  "button",
2246
2594
  {
2247
2595
  type: "button",
@@ -2267,13 +2615,13 @@ function SegmentedControl({
2267
2615
 
2268
2616
  // src/select.tsx
2269
2617
  import * as SelectPrimitive from "@radix-ui/react-select";
2270
- import { cva as cva3 } from "class-variance-authority";
2271
- import * as React19 from "react";
2272
- 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";
2273
2621
  var Select = SelectPrimitive.Root;
2274
2622
  var SelectGroup = SelectPrimitive.Group;
2275
2623
  var SelectValue = SelectPrimitive.Value;
2276
- var selectTriggerVariants = cva3(
2624
+ var selectTriggerVariants = cva4(
2277
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",
2278
2626
  {
2279
2627
  variants: {
@@ -2288,7 +2636,7 @@ var selectTriggerVariants = cva3(
2288
2636
  }
2289
2637
  }
2290
2638
  );
2291
- 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(
2292
2640
  SelectPrimitive.Trigger,
2293
2641
  {
2294
2642
  ref,
@@ -2296,12 +2644,12 @@ var SelectTrigger = React19.forwardRef(({ className, children, hideArrow = false
2296
2644
  ...props,
2297
2645
  children: [
2298
2646
  children,
2299
- !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" }) })
2300
2648
  ]
2301
2649
  }
2302
2650
  ));
2303
2651
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
2304
- var SelectScrollUpButton = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
2652
+ var SelectScrollUpButton = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
2305
2653
  SelectPrimitive.ScrollUpButton,
2306
2654
  {
2307
2655
  ref,
@@ -2310,11 +2658,11 @@ var SelectScrollUpButton = React19.forwardRef(({ className, ...props }, ref) =>
2310
2658
  className
2311
2659
  ),
2312
2660
  ...props,
2313
- children: /* @__PURE__ */ jsx24(RadixChevronUpIcon, {})
2661
+ children: /* @__PURE__ */ jsx27(RadixChevronUpIcon, {})
2314
2662
  }
2315
2663
  ));
2316
2664
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
2317
- var SelectScrollDownButton = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
2665
+ var SelectScrollDownButton = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
2318
2666
  SelectPrimitive.ScrollDownButton,
2319
2667
  {
2320
2668
  ref,
@@ -2323,13 +2671,13 @@ var SelectScrollDownButton = React19.forwardRef(({ className, ...props }, ref) =
2323
2671
  className
2324
2672
  ),
2325
2673
  ...props,
2326
- children: /* @__PURE__ */ jsx24(RadixChevronDownIcon, {})
2674
+ children: /* @__PURE__ */ jsx27(RadixChevronDownIcon, {})
2327
2675
  }
2328
2676
  ));
2329
2677
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
2330
- var SelectContent = React19.forwardRef(({ className, children, position = "popper", container, ...props }, ref) => {
2678
+ var SelectContent = React21.forwardRef(({ className, children, position = "popper", container, ...props }, ref) => {
2331
2679
  const portalContainer = usePortalContainer(container);
2332
- return /* @__PURE__ */ jsx24(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs13(
2680
+ return /* @__PURE__ */ jsx27(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs15(
2333
2681
  SelectPrimitive.Content,
2334
2682
  {
2335
2683
  ref,
@@ -2341,8 +2689,8 @@ var SelectContent = React19.forwardRef(({ className, children, position = "poppe
2341
2689
  position,
2342
2690
  ...props,
2343
2691
  children: [
2344
- /* @__PURE__ */ jsx24(SelectScrollUpButton, {}),
2345
- /* @__PURE__ */ jsx24(
2692
+ /* @__PURE__ */ jsx27(SelectScrollUpButton, {}),
2693
+ /* @__PURE__ */ jsx27(
2346
2694
  SelectPrimitive.Viewport,
2347
2695
  {
2348
2696
  className: cn(
@@ -2352,13 +2700,13 @@ var SelectContent = React19.forwardRef(({ className, children, position = "poppe
2352
2700
  children
2353
2701
  }
2354
2702
  ),
2355
- /* @__PURE__ */ jsx24(SelectScrollDownButton, {})
2703
+ /* @__PURE__ */ jsx27(SelectScrollDownButton, {})
2356
2704
  ]
2357
2705
  }
2358
2706
  ) });
2359
2707
  });
2360
2708
  SelectContent.displayName = SelectPrimitive.Content.displayName;
2361
- var SelectLabel = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
2709
+ var SelectLabel = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
2362
2710
  SelectPrimitive.Label,
2363
2711
  {
2364
2712
  ref,
@@ -2367,7 +2715,7 @@ var SelectLabel = React19.forwardRef(({ className, ...props }, ref) => /* @__PUR
2367
2715
  }
2368
2716
  ));
2369
2717
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
2370
- var SelectItem = React19.forwardRef(({ className, children, description, ...props }, ref) => /* @__PURE__ */ jsxs13(
2718
+ var SelectItem = React21.forwardRef(({ className, children, description, ...props }, ref) => /* @__PURE__ */ jsxs15(
2371
2719
  SelectPrimitive.Item,
2372
2720
  {
2373
2721
  ref,
@@ -2378,14 +2726,14 @@ var SelectItem = React19.forwardRef(({ className, children, description, ...prop
2378
2726
  ),
2379
2727
  ...props,
2380
2728
  children: [
2381
- /* @__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" }) }) }),
2382
- /* @__PURE__ */ jsx24(SelectPrimitive.ItemText, { children }),
2383
- 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
2384
2732
  ]
2385
2733
  }
2386
2734
  ));
2387
2735
  SelectItem.displayName = SelectPrimitive.Item.displayName;
2388
- var SelectSeparator = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
2736
+ var SelectSeparator = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
2389
2737
  SelectPrimitive.Separator,
2390
2738
  {
2391
2739
  ref,
@@ -2397,9 +2745,9 @@ SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
2397
2745
 
2398
2746
  // src/separator.tsx
2399
2747
  import * as SeparatorPrimitive from "@radix-ui/react-separator";
2400
- import * as React20 from "react";
2401
- import { jsx as jsx25 } from "react/jsx-runtime";
2402
- 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(
2403
2751
  SeparatorPrimitive.Root,
2404
2752
  {
2405
2753
  ref,
@@ -2417,13 +2765,13 @@ Separator4.displayName = SeparatorPrimitive.Root.displayName;
2417
2765
 
2418
2766
  // src/sheet.tsx
2419
2767
  import * as SheetPrimitive from "@radix-ui/react-dialog";
2420
- import { treeContainsComponent as treeContainsComponent2 } from "@ai-matrx/kit/react-tree";
2421
- import { cva as cva4 } from "class-variance-authority";
2422
- import * as React21 from "react";
2423
- import { jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
2424
- 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) => {
2425
2773
  const isModal = useRadixDialogModal();
2426
- return /* @__PURE__ */ jsx26(
2774
+ return /* @__PURE__ */ jsx29(
2427
2775
  SheetPrimitive.Content,
2428
2776
  {
2429
2777
  ...props,
@@ -2433,15 +2781,15 @@ var SheetContentBase = React21.forwardRef(({ ...props }, ref) => {
2433
2781
  );
2434
2782
  });
2435
2783
  SheetContentBase.displayName = "SheetContentBase";
2436
- var Sheet = React21.forwardRef(({ children, ...props }, _ref) => {
2784
+ var Sheet = React23.forwardRef(({ children, ...props }, _ref) => {
2437
2785
  const modal = props.modal ?? true;
2438
- 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 }) });
2439
2787
  });
2440
2788
  Sheet.displayName = "Sheet";
2441
2789
  var SheetTrigger = SheetPrimitive.Trigger;
2442
2790
  var SheetClose = SheetPrimitive.Close;
2443
2791
  var SheetPortal = SheetPrimitive.Portal;
2444
- var SheetOverlay = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
2792
+ var SheetOverlay = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
2445
2793
  SheetPrimitive.Overlay,
2446
2794
  {
2447
2795
  className: cn(
@@ -2453,7 +2801,7 @@ var SheetOverlay = React21.forwardRef(({ className, ...props }, ref) => /* @__PU
2453
2801
  }
2454
2802
  ));
2455
2803
  SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
2456
- var sheetVariants = cva4(
2804
+ var sheetVariants = cva5(
2457
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",
2458
2806
  {
2459
2807
  variants: {
@@ -2470,7 +2818,7 @@ var sheetVariants = cva4(
2470
2818
  }
2471
2819
  }
2472
2820
  );
2473
- var SheetDescription = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
2821
+ var SheetDescription = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
2474
2822
  SheetPrimitive.Description,
2475
2823
  {
2476
2824
  ref,
@@ -2479,7 +2827,7 @@ var SheetDescription = React21.forwardRef(({ className, ...props }, ref) => /* @
2479
2827
  }
2480
2828
  ));
2481
2829
  SheetDescription.displayName = SheetPrimitive.Description.displayName;
2482
- var SheetContent = React21.forwardRef(
2830
+ var SheetContent = React23.forwardRef(
2483
2831
  ({
2484
2832
  side = "right",
2485
2833
  className,
@@ -2489,10 +2837,10 @@ var SheetContent = React21.forwardRef(
2489
2837
  overlayClassName,
2490
2838
  ...props
2491
2839
  }, ref) => {
2492
- const hasDescription = treeContainsComponent2(children, SheetDescription) || treeContainsComponent2(children, SheetPrimitive.Description);
2493
- return /* @__PURE__ */ jsxs14(SheetPortal, { children: [
2494
- !hideOverlay && /* @__PURE__ */ jsx26(SheetOverlay, { className: overlayClassName }),
2495
- /* @__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(
2496
2844
  SheetContentBase,
2497
2845
  {
2498
2846
  ref,
@@ -2500,9 +2848,9 @@ var SheetContent = React21.forwardRef(
2500
2848
  ...hasDescription ? {} : { "aria-describedby": void 0 },
2501
2849
  ...props,
2502
2850
  children: [
2503
- !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: [
2504
- /* @__PURE__ */ jsx26(Cross2Icon, { className: "h-4 w-4" }),
2505
- /* @__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" })
2506
2854
  ] }),
2507
2855
  children
2508
2856
  ]
@@ -2515,7 +2863,7 @@ SheetContent.displayName = SheetPrimitive.Content.displayName;
2515
2863
  var SheetHeader = ({
2516
2864
  className,
2517
2865
  ...props
2518
- }) => /* @__PURE__ */ jsx26(
2866
+ }) => /* @__PURE__ */ jsx29(
2519
2867
  "div",
2520
2868
  {
2521
2869
  className: cn(
@@ -2529,7 +2877,7 @@ SheetHeader.displayName = "SheetHeader";
2529
2877
  var SheetFooter = ({
2530
2878
  className,
2531
2879
  ...props
2532
- }) => /* @__PURE__ */ jsx26(
2880
+ }) => /* @__PURE__ */ jsx29(
2533
2881
  "div",
2534
2882
  {
2535
2883
  className: cn(
@@ -2540,7 +2888,7 @@ var SheetFooter = ({
2540
2888
  }
2541
2889
  );
2542
2890
  SheetFooter.displayName = "SheetFooter";
2543
- var SheetTitle = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
2891
+ var SheetTitle = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
2544
2892
  SheetPrimitive.Title,
2545
2893
  {
2546
2894
  ref,
@@ -2551,12 +2899,12 @@ var SheetTitle = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE
2551
2899
  SheetTitle.displayName = SheetPrimitive.Title.displayName;
2552
2900
 
2553
2901
  // src/skeleton.tsx
2554
- import { jsx as jsx27 } from "react/jsx-runtime";
2902
+ import { jsx as jsx30 } from "react/jsx-runtime";
2555
2903
  function Skeleton({
2556
2904
  className,
2557
2905
  ...props
2558
2906
  }) {
2559
- return /* @__PURE__ */ jsx27(
2907
+ return /* @__PURE__ */ jsx30(
2560
2908
  "div",
2561
2909
  {
2562
2910
  className: cn("animate-pulse rounded-md bg-primary/10", className),
@@ -2567,8 +2915,8 @@ function Skeleton({
2567
2915
 
2568
2916
  // src/switch.tsx
2569
2917
  import * as SwitchPrimitives from "@radix-ui/react-switch";
2570
- import * as React22 from "react";
2571
- import { jsx as jsx28 } from "react/jsx-runtime";
2918
+ import * as React24 from "react";
2919
+ import { jsx as jsx31 } from "react/jsx-runtime";
2572
2920
  var SWITCH_SIZES = {
2573
2921
  sm: {
2574
2922
  root: "h-4 w-9 border-border data-[state=unchecked]:bg-input",
@@ -2579,7 +2927,7 @@ var SWITCH_SIZES = {
2579
2927
  thumb: "h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
2580
2928
  }
2581
2929
  };
2582
- var Switch = React22.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx28(
2930
+ var Switch = React24.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx31(
2583
2931
  SwitchPrimitives.Root,
2584
2932
  {
2585
2933
  ref,
@@ -2590,7 +2938,7 @@ var Switch = React22.forwardRef(({ className, size = "md", ...props }, ref) => /
2590
2938
  className
2591
2939
  ),
2592
2940
  ...props,
2593
- children: /* @__PURE__ */ jsx28(
2941
+ children: /* @__PURE__ */ jsx31(
2594
2942
  SwitchPrimitives.Thumb,
2595
2943
  {
2596
2944
  "data-slot": "switch-thumb",
@@ -2606,7 +2954,7 @@ Switch.displayName = SwitchPrimitives.Root.displayName;
2606
2954
 
2607
2955
  // src/tabbed-bottom-sheet.tsx
2608
2956
  import { useState as useState6 } from "react";
2609
- import { jsx as jsx29, jsxs as jsxs15 } from "react/jsx-runtime";
2957
+ import { jsx as jsx32, jsxs as jsxs17 } from "react/jsx-runtime";
2610
2958
  function TabbedBottomSheet({
2611
2959
  open,
2612
2960
  onOpenChange,
@@ -2620,15 +2968,15 @@ function TabbedBottomSheet({
2620
2968
  if (open) setSelectedTabId(null);
2621
2969
  }
2622
2970
  const selectedTab = selectedTabId ? tabs.find((tab) => tab.id === selectedTabId) : null;
2623
- return /* @__PURE__ */ jsx29(
2971
+ return /* @__PURE__ */ jsx32(
2624
2972
  BottomSheet,
2625
2973
  {
2626
2974
  open,
2627
2975
  onOpenChange,
2628
2976
  title,
2629
2977
  size: "full",
2630
- children: /* @__PURE__ */ jsxs15("div", { className: "matrx-mobile-sheet flex min-h-0 flex-1 flex-col", children: [
2631
- /* @__PURE__ */ jsx29(
2978
+ children: /* @__PURE__ */ jsxs17("div", { className: "matrx-mobile-sheet flex min-h-0 flex-1 flex-col", children: [
2979
+ /* @__PURE__ */ jsx32(
2632
2980
  BottomSheetHeader,
2633
2981
  {
2634
2982
  title: selectedTab ? selectedTab.label : title,
@@ -2636,19 +2984,19 @@ function TabbedBottomSheet({
2636
2984
  onBack: () => setSelectedTabId(null)
2637
2985
  }
2638
2986
  ),
2639
- 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) => {
2640
2988
  const Icon2 = tab.icon;
2641
- return /* @__PURE__ */ jsx29("li", { children: /* @__PURE__ */ jsxs15(
2989
+ return /* @__PURE__ */ jsx32("li", { children: /* @__PURE__ */ jsxs17(
2642
2990
  "button",
2643
2991
  {
2644
2992
  type: "button",
2645
2993
  onClick: () => setSelectedTabId(tab.id),
2646
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",
2647
2995
  children: [
2648
- Icon2 ? /* @__PURE__ */ jsx29(Icon2, { className: "h-5 w-5 shrink-0 text-muted-foreground" }) : null,
2649
- /* @__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 }),
2650
2998
  tab.trailing,
2651
- /* @__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" })
2652
3000
  ]
2653
3001
  }
2654
3002
  ) }, tab.id);
@@ -2659,19 +3007,19 @@ function TabbedBottomSheet({
2659
3007
  }
2660
3008
 
2661
3009
  // src/table.tsx
2662
- import * as React23 from "react";
2663
- import { jsx as jsx30 } from "react/jsx-runtime";
3010
+ import * as React25 from "react";
3011
+ import { jsx as jsx33 } from "react/jsx-runtime";
2664
3012
  var TABLE_SIZES = {
2665
3013
  sm: { head: "px-2", cell: "p-2" },
2666
3014
  md: { head: "px-3", cell: "p-3" }
2667
3015
  };
2668
- var TableSizeContext = React23.createContext("md");
3016
+ var TableSizeContext = React25.createContext("md");
2669
3017
  function useTableSize() {
2670
- return React23.useContext(TableSizeContext);
3018
+ return React25.useContext(TableSizeContext);
2671
3019
  }
2672
- var Table = React23.forwardRef(
3020
+ var Table = React25.forwardRef(
2673
3021
  ({ className, size = "md", wrap = true, wrapperClassName, ...props }, ref) => {
2674
- const table = /* @__PURE__ */ jsx30(
3022
+ const table = /* @__PURE__ */ jsx33(
2675
3023
  "table",
2676
3024
  {
2677
3025
  ref,
@@ -2681,7 +3029,7 @@ var Table = React23.forwardRef(
2681
3029
  ...props
2682
3030
  }
2683
3031
  );
2684
- return /* @__PURE__ */ jsx30(TableSizeContext.Provider, { value: size, children: wrap ? /* @__PURE__ */ jsx30(
3032
+ return /* @__PURE__ */ jsx33(TableSizeContext.Provider, { value: size, children: wrap ? /* @__PURE__ */ jsx33(
2685
3033
  "div",
2686
3034
  {
2687
3035
  "data-slot": "table-wrapper",
@@ -2692,7 +3040,7 @@ var Table = React23.forwardRef(
2692
3040
  }
2693
3041
  );
2694
3042
  Table.displayName = "Table";
2695
- var TableHeader = React23.forwardRef(({ className, sticky = false, ...props }, ref) => /* @__PURE__ */ jsx30(
3043
+ var TableHeader = React25.forwardRef(({ className, sticky = false, ...props }, ref) => /* @__PURE__ */ jsx33(
2696
3044
  "thead",
2697
3045
  {
2698
3046
  ref,
@@ -2706,7 +3054,7 @@ var TableHeader = React23.forwardRef(({ className, sticky = false, ...props }, r
2706
3054
  }
2707
3055
  ));
2708
3056
  TableHeader.displayName = "TableHeader";
2709
- var TableBody = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
3057
+ var TableBody = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
2710
3058
  "tbody",
2711
3059
  {
2712
3060
  ref,
@@ -2716,7 +3064,7 @@ var TableBody = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE_
2716
3064
  }
2717
3065
  ));
2718
3066
  TableBody.displayName = "TableBody";
2719
- var TableFooter = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
3067
+ var TableFooter = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
2720
3068
  "tfoot",
2721
3069
  {
2722
3070
  ref,
@@ -2729,7 +3077,7 @@ var TableFooter = React23.forwardRef(({ className, ...props }, ref) => /* @__PUR
2729
3077
  }
2730
3078
  ));
2731
3079
  TableFooter.displayName = "TableFooter";
2732
- var TableRow = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
3080
+ var TableRow = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
2733
3081
  "tr",
2734
3082
  {
2735
3083
  ref,
@@ -2742,9 +3090,9 @@ var TableRow = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__
2742
3090
  }
2743
3091
  ));
2744
3092
  TableRow.displayName = "TableRow";
2745
- var TableHead = React23.forwardRef(({ className, ...props }, ref) => {
3093
+ var TableHead = React25.forwardRef(({ className, ...props }, ref) => {
2746
3094
  const size = useTableSize();
2747
- return /* @__PURE__ */ jsx30(
3095
+ return /* @__PURE__ */ jsx33(
2748
3096
  "th",
2749
3097
  {
2750
3098
  ref,
@@ -2759,9 +3107,9 @@ var TableHead = React23.forwardRef(({ className, ...props }, ref) => {
2759
3107
  );
2760
3108
  });
2761
3109
  TableHead.displayName = "TableHead";
2762
- var TableCell = React23.forwardRef(({ className, ...props }, ref) => {
3110
+ var TableCell = React25.forwardRef(({ className, ...props }, ref) => {
2763
3111
  const size = useTableSize();
2764
- return /* @__PURE__ */ jsx30(
3112
+ return /* @__PURE__ */ jsx33(
2765
3113
  "td",
2766
3114
  {
2767
3115
  ref,
@@ -2776,7 +3124,7 @@ var TableCell = React23.forwardRef(({ className, ...props }, ref) => {
2776
3124
  );
2777
3125
  });
2778
3126
  TableCell.displayName = "TableCell";
2779
- var TableCaption = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
3127
+ var TableCaption = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
2780
3128
  "caption",
2781
3129
  {
2782
3130
  ref,
@@ -2789,11 +3137,11 @@ TableCaption.displayName = "TableCaption";
2789
3137
 
2790
3138
  // src/tabs.tsx
2791
3139
  import * as TabsPrimitive from "@radix-ui/react-tabs";
2792
- import * as React24 from "react";
2793
- import { jsx as jsx31 } from "react/jsx-runtime";
3140
+ import * as React26 from "react";
3141
+ import { jsx as jsx34 } from "react/jsx-runtime";
2794
3142
  var Tabs = TabsPrimitive.Root;
2795
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";
2796
- var TabsList = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
3144
+ var TabsList = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
2797
3145
  TabsPrimitive.List,
2798
3146
  {
2799
3147
  ref,
@@ -2806,7 +3154,7 @@ var TabsList = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__
2806
3154
  }
2807
3155
  ));
2808
3156
  TabsList.displayName = TabsPrimitive.List.displayName;
2809
- var TabsTrigger = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
3157
+ var TabsTrigger = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
2810
3158
  TabsPrimitive.Trigger,
2811
3159
  {
2812
3160
  ref,
@@ -2820,7 +3168,7 @@ var TabsTrigger = React24.forwardRef(({ className, ...props }, ref) => /* @__PUR
2820
3168
  }
2821
3169
  ));
2822
3170
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
2823
- var TabsTriggerCore = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
3171
+ var TabsTriggerCore = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
2824
3172
  TabsPrimitive.Trigger,
2825
3173
  {
2826
3174
  ref,
@@ -2830,7 +3178,7 @@ var TabsTriggerCore = React24.forwardRef(({ className, ...props }, ref) => /* @_
2830
3178
  }
2831
3179
  ));
2832
3180
  TabsTriggerCore.displayName = TabsPrimitive.Trigger.displayName;
2833
- var TabsContent = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
3181
+ var TabsContent = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
2834
3182
  TabsPrimitive.Content,
2835
3183
  {
2836
3184
  ref,
@@ -2846,8 +3194,8 @@ var TabsContent = React24.forwardRef(({ className, ...props }, ref) => /* @__PUR
2846
3194
  TabsContent.displayName = TabsPrimitive.Content.displayName;
2847
3195
 
2848
3196
  // src/textarea.tsx
2849
- import * as React25 from "react";
2850
- 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";
2851
3199
  var FILL_HEIGHT_REGEX = /(?:^|\s)(h-full|h-dvh|flex-1|grow)(?:\s|$)/;
2852
3200
  var FILL_WIDTH_REGEX = /(?:^|\s)(w-full|w-screen)(?:\s|$)/;
2853
3201
  function getStretchClasses(className) {
@@ -2860,7 +3208,7 @@ function getStretchClasses(className) {
2860
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";
2861
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";
2862
3210
  function useAutoGrow(ref, value, autoGrow = false, minHeight, maxHeight) {
2863
- React25.useEffect(() => {
3211
+ React27.useEffect(() => {
2864
3212
  if (!autoGrow || !ref.current) return;
2865
3213
  const textarea = ref.current;
2866
3214
  textarea.style.height = "auto";
@@ -2876,8 +3224,8 @@ function useAutoGrow(ref, value, autoGrow = false, minHeight, maxHeight) {
2876
3224
  }, [value, autoGrow, minHeight, maxHeight, ref]);
2877
3225
  }
2878
3226
  function useMergedTextareaRef(forwarded) {
2879
- const internal = React25.useRef(null);
2880
- const callback = React25.useCallback(
3227
+ const internal = React27.useRef(null);
3228
+ const callback = React27.useCallback(
2881
3229
  (node) => {
2882
3230
  internal.current = node;
2883
3231
  if (typeof forwarded === "function") forwarded(node);
@@ -2894,13 +3242,13 @@ function boxStyle(minHeight, maxHeight) {
2894
3242
  maxHeight: maxHeight ? `${maxHeight}px` : void 0
2895
3243
  };
2896
3244
  }
2897
- var Textarea = React25.forwardRef(
3245
+ var Textarea = React27.forwardRef(
2898
3246
  ({ className, autoGrow, minHeight, maxHeight, wrapperClassName, ...props }, forwarded) => {
2899
3247
  const { ref, callback } = useMergedTextareaRef(forwarded);
2900
3248
  const stretchClasses = getStretchClasses(className);
2901
3249
  const needsWrapper = Boolean(wrapperClassName || stretchClasses);
2902
3250
  useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
2903
- const textarea = /* @__PURE__ */ jsx32(
3251
+ const textarea = /* @__PURE__ */ jsx35(
2904
3252
  "textarea",
2905
3253
  {
2906
3254
  ref: callback,
@@ -2916,15 +3264,15 @@ var Textarea = React25.forwardRef(
2916
3264
  }
2917
3265
  );
2918
3266
  if (!needsWrapper) return textarea;
2919
- return /* @__PURE__ */ jsx32("div", { className: cn(stretchClasses, wrapperClassName), children: textarea });
3267
+ return /* @__PURE__ */ jsx35("div", { className: cn(stretchClasses, wrapperClassName), children: textarea });
2920
3268
  }
2921
3269
  );
2922
3270
  Textarea.displayName = "Textarea";
2923
- var BasicTextarea = React25.forwardRef(
3271
+ var BasicTextarea = React27.forwardRef(
2924
3272
  ({ className, autoGrow, minHeight, maxHeight, ...props }, forwarded) => {
2925
3273
  const { ref, callback } = useMergedTextareaRef(forwarded);
2926
3274
  useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
2927
- return /* @__PURE__ */ jsx32(
3275
+ return /* @__PURE__ */ jsx35(
2928
3276
  "textarea",
2929
3277
  {
2930
3278
  ref: callback,
@@ -2942,7 +3290,7 @@ var BasicTextarea = React25.forwardRef(
2942
3290
  }
2943
3291
  );
2944
3292
  BasicTextarea.displayName = "BasicTextarea";
2945
- var TextareaWithPrefix = React25.forwardRef(
3293
+ var TextareaWithPrefix = React27.forwardRef(
2946
3294
  ({
2947
3295
  prefix,
2948
3296
  className,
@@ -2954,13 +3302,13 @@ var TextareaWithPrefix = React25.forwardRef(
2954
3302
  }, forwarded) => {
2955
3303
  const { ref, callback } = useMergedTextareaRef(forwarded);
2956
3304
  useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
2957
- return /* @__PURE__ */ jsxs16(
3305
+ return /* @__PURE__ */ jsxs18(
2958
3306
  "div",
2959
3307
  {
2960
3308
  className: cn("relative", getStretchClasses(className), wrapperClassName),
2961
3309
  children: [
2962
- prefix ? /* @__PURE__ */ jsx32("div", { className: "pointer-events-none absolute left-3 top-3 z-10 text-muted-foreground", children: prefix }) : null,
2963
- /* @__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(
2964
3312
  "textarea",
2965
3313
  {
2966
3314
  ref: callback,
@@ -3036,7 +3384,325 @@ function useScrollFade() {
3036
3384
  }
3037
3385
  };
3038
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;
3039
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,
3040
3706
  Avatar,
3041
3707
  AvatarFallback,
3042
3708
  AvatarImage,
@@ -3096,6 +3762,18 @@ export {
3096
3762
  DialogPortal,
3097
3763
  DialogTitle,
3098
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,
3099
3777
  DropdownMenu,
3100
3778
  DropdownMenuCheckboxItem,
3101
3779
  DropdownMenuContent,
@@ -3113,6 +3791,9 @@ export {
3113
3791
  DropdownMenuTrigger,
3114
3792
  EditableLabel,
3115
3793
  EnterInput,
3794
+ HoverCard,
3795
+ HoverCardContent,
3796
+ HoverCardTrigger,
3116
3797
  Input,
3117
3798
  InputWithPrefix,
3118
3799
  Label3 as Label,
@@ -3124,7 +3805,12 @@ export {
3124
3805
  PopoverTrigger,
3125
3806
  PortalContainerProvider,
3126
3807
  Progress,
3808
+ RadioGroup3 as RadioGroup,
3809
+ RadioGroupItem,
3127
3810
  RadixDialogModalProvider,
3811
+ ResizableHandle,
3812
+ ResizablePanel,
3813
+ ResizablePanelGroup,
3128
3814
  ScoreRing,
3129
3815
  ScrollArea,
3130
3816
  ScrollBar,
@@ -3151,6 +3837,7 @@ export {
3151
3837
  SheetTitle,
3152
3838
  SheetTrigger,
3153
3839
  Skeleton,
3840
+ Slider,
3154
3841
  Switch,
3155
3842
  TabbedBottomSheet,
3156
3843
  Table,
@@ -3168,6 +3855,14 @@ export {
3168
3855
  TabsTriggerCore,
3169
3856
  Textarea,
3170
3857
  TextareaWithPrefix,
3858
+ Toggle,
3859
+ ToggleGroup,
3860
+ ToggleGroupItem,
3861
+ Tooltip,
3862
+ TooltipContent,
3863
+ TooltipProvider,
3864
+ TooltipTrigger,
3865
+ alertVariants,
3171
3866
  badgeVariants,
3172
3867
  buttonVariants,
3173
3868
  cn,
@@ -3175,8 +3870,10 @@ export {
3175
3870
  scoreRingColorClasses,
3176
3871
  selectTriggerVariants,
3177
3872
  sheetVariants,
3873
+ toggleVariants,
3178
3874
  useCardSize,
3179
3875
  useDialogContainer,
3876
+ useDrawerDirection,
3180
3877
  useIsMobile,
3181
3878
  usePortalContainer,
3182
3879
  useRadixDialogModal,