@doscientos/ui 0.1.18 → 0.1.20

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.cjs CHANGED
@@ -83,6 +83,16 @@ __export(index_exports, {
83
83
  CommandItem: () => CommandItem,
84
84
  CommandList: () => CommandList,
85
85
  ConfirmDialog: () => ConfirmDialog,
86
+ Dialog: () => Dialog,
87
+ DialogClose: () => DialogClose,
88
+ DialogContent: () => DialogContent,
89
+ DialogDescription: () => DialogDescription,
90
+ DialogFooter: () => DialogFooter,
91
+ DialogHeader: () => DialogHeader,
92
+ DialogOverlay: () => DialogOverlay,
93
+ DialogPortal: () => DialogPortal,
94
+ DialogTitle: () => DialogTitle,
95
+ DialogTrigger: () => DialogTrigger,
86
96
  Drawer: () => Drawer,
87
97
  DrawerDescription: () => DrawerDescription,
88
98
  DrawerFooter: () => DrawerFooter,
@@ -1165,36 +1175,183 @@ function ConfirmDialog({
1165
1175
  );
1166
1176
  }
1167
1177
 
1168
- // src/ui/drawer/drawer.tsx
1178
+ // src/ui/dialog/dialog.tsx
1179
+ var import_lucide_react4 = require("lucide-react");
1180
+ var React2 = __toESM(require("react"), 1);
1169
1181
  var import_react_aria_components10 = require("react-aria-components");
1170
1182
  var import_jsx_runtime16 = require("react/jsx-runtime");
1183
+ var DialogContext = React2.createContext(null);
1184
+ function useDialogContext() {
1185
+ const context = React2.useContext(DialogContext);
1186
+ if (!context) throw new Error("Dialog components must be rendered within Dialog.");
1187
+ return context;
1188
+ }
1189
+ function Dialog({ children, defaultOpen = false, onOpenChange, open: controlledOpen }) {
1190
+ const [uncontrolledOpen, setUncontrolledOpen] = React2.useState(defaultOpen);
1191
+ const open = controlledOpen ?? uncontrolledOpen;
1192
+ const setOpen = React2.useCallback(
1193
+ (nextOpen) => {
1194
+ if (controlledOpen === void 0) setUncontrolledOpen(nextOpen);
1195
+ onOpenChange?.(nextOpen);
1196
+ },
1197
+ [controlledOpen, onOpenChange]
1198
+ );
1199
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(DialogContext.Provider, { value: { open, setOpen }, children });
1200
+ }
1201
+ function DialogTrigger({ asChild = false, children, onClick, ...props }) {
1202
+ const { setOpen } = useDialogContext();
1203
+ const handleClick = (event) => {
1204
+ onClick?.(event);
1205
+ if (!event.defaultPrevented) setOpen(true);
1206
+ };
1207
+ if (asChild && React2.isValidElement(children)) {
1208
+ const child = children;
1209
+ return React2.cloneElement(child, {
1210
+ ...props,
1211
+ "data-slot": "dialog-trigger",
1212
+ onClick: (event) => {
1213
+ child.props.onClick?.(event);
1214
+ handleClick(event);
1215
+ }
1216
+ });
1217
+ }
1218
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Button, { "data-slot": "dialog-trigger", onPress: () => setOpen(true), ...props, children });
1219
+ }
1220
+ function DialogPortal({ children }) {
1221
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_jsx_runtime16.Fragment, { children });
1222
+ }
1223
+ function DialogOverlay({ children, className, ...props }) {
1224
+ const { open, setOpen } = useDialogContext();
1225
+ if (!open) return null;
1226
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1227
+ import_react_aria_components10.ModalOverlay,
1228
+ {
1229
+ "data-slot": "dialog-overlay",
1230
+ isDismissable: true,
1231
+ isOpen: open,
1232
+ onOpenChange: setOpen,
1233
+ className: cn(
1234
+ "fixed inset-0 isolate z-50 grid place-items-center bg-black/10 p-4 duration-100 supports-backdrop-filter:backdrop-blur-xs data-entering:animate-ui-overlay-in data-exiting:animate-ui-overlay-out",
1235
+ className
1236
+ ),
1237
+ ...props,
1238
+ children
1239
+ }
1240
+ );
1241
+ }
1242
+ function DialogContent({
1243
+ children,
1244
+ className,
1245
+ onOverlayClick,
1246
+ showCloseButton = true,
1247
+ ...props
1248
+ }) {
1249
+ const { setOpen } = useDialogContext();
1250
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(DialogPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1251
+ DialogOverlay,
1252
+ {
1253
+ onClick: (event) => {
1254
+ if (event.target === event.currentTarget) onOverlayClick?.(event);
1255
+ },
1256
+ children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1257
+ import_react_aria_components10.Modal,
1258
+ {
1259
+ className: cn(
1260
+ "w-full max-w-[calc(100%-2rem)] max-h-[calc(100dvh-2rem)] outline-none sm:max-w-sm",
1261
+ className
1262
+ ),
1263
+ children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
1264
+ import_react_aria_components10.Dialog,
1265
+ {
1266
+ "data-slot": "dialog-content",
1267
+ className: cn(
1268
+ "grid max-h-[calc(100dvh-2rem)] gap-4 overflow-y-auto rounded-xl bg-background p-4 text-sm text-foreground ring-1 ring-foreground/10 outline-none",
1269
+ className
1270
+ ),
1271
+ ...props,
1272
+ children: [
1273
+ children,
1274
+ showCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1275
+ Button,
1276
+ {
1277
+ "aria-label": "Cerrar di\xE1logo",
1278
+ "data-slot": "dialog-close",
1279
+ variant: "ghost",
1280
+ className: "absolute top-2 right-2",
1281
+ size: "icon-sm",
1282
+ onPress: () => setOpen(false),
1283
+ children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react4.XIcon, {})
1284
+ }
1285
+ ) : null
1286
+ ]
1287
+ }
1288
+ )
1289
+ }
1290
+ )
1291
+ }
1292
+ ) });
1293
+ }
1294
+ function DialogClose({ asChild = false, children, onClick, ...props }) {
1295
+ const { setOpen } = useDialogContext();
1296
+ if (asChild && React2.isValidElement(children)) {
1297
+ const child = children;
1298
+ return React2.cloneElement(child, {
1299
+ ...props,
1300
+ "data-slot": "dialog-close",
1301
+ onClick: (event) => {
1302
+ child.props.onClick?.(event);
1303
+ if (!event.defaultPrevented) setOpen(false);
1304
+ }
1305
+ });
1306
+ }
1307
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Button, { "data-slot": "dialog-close", onPress: () => setOpen(false), ...props, children });
1308
+ }
1309
+ function DialogHeader({ className, ...props }) {
1310
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { "data-slot": "dialog-header", className: cn("flex flex-col gap-2", className), ...props });
1311
+ }
1312
+ function DialogFooter({ className, showCloseButton = false, children, ...props }) {
1313
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { "data-slot": "dialog-footer", className: cn("-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:flex-wrap sm:justify-end", className), ...props, children: [
1314
+ children,
1315
+ showCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(DialogClose, { variant: "outline", children: "Cerrar" }) : null
1316
+ ] });
1317
+ }
1318
+ function DialogTitle({ className, ...props }) {
1319
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react_aria_components10.Heading, { slot: "title", "data-slot": "dialog-title", className: cn("font-heading text-base leading-none font-medium", className), ...props });
1320
+ }
1321
+ function DialogDescription({ className, ...props }) {
1322
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react_aria_components10.Text, { slot: "description", "data-slot": "dialog-description", className: cn("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground", className), ...props });
1323
+ }
1324
+
1325
+ // src/ui/drawer/drawer.tsx
1326
+ var import_react_aria_components11 = require("react-aria-components");
1327
+ var import_jsx_runtime17 = require("react/jsx-runtime");
1171
1328
  var sideStyles = { left: "inset-y-0 left-0 h-full w-[min(22rem,calc(100%-2rem))] data-entering:animate-ui-surface-in", right: "inset-y-0 right-0 h-full w-[min(22rem,calc(100%-2rem))] data-entering:animate-ui-surface-in", bottom: "inset-x-0 bottom-0 max-h-[85vh] w-full data-entering:animate-ui-surface-in" };
1172
1329
  function Drawer({ children, side = "right", className, ...props }) {
1173
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react_aria_components10.ModalOverlay, { isDismissable: true, className: "fixed inset-0 z-50 bg-black/20 backdrop-blur-[1px] motion-safe:data-entering:animate-ui-overlay-in motion-safe:data-exiting:animate-ui-overlay-out", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react_aria_components10.Modal, { className: cn("absolute grid gap-4 overflow-y-auto rounded-xl border border-border bg-background p-5 text-foreground shadow-xl outline-none", sideStyles[side], className), children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react_aria_components10.Dialog, { "data-slot": "drawer", className: "outline-none", children }) }) });
1330
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_aria_components11.ModalOverlay, { isDismissable: true, className: "fixed inset-0 z-50 bg-black/20 backdrop-blur-[1px] motion-safe:data-entering:animate-ui-overlay-in motion-safe:data-exiting:animate-ui-overlay-out", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_aria_components11.Modal, { className: cn("absolute grid gap-4 overflow-y-auto rounded-xl border border-border bg-background p-5 text-foreground shadow-xl outline-none", sideStyles[side], className), children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_aria_components11.Dialog, { "data-slot": "drawer", className: "outline-none", children }) }) });
1174
1331
  }
1175
1332
  function DrawerHeader({ className, ...props }) {
1176
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { "data-slot": "drawer-header", className: cn("flex flex-col gap-1.5", className), ...props });
1333
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { "data-slot": "drawer-header", className: cn("flex flex-col gap-1.5", className), ...props });
1177
1334
  }
1178
1335
  function DrawerFooter({ className, ...props }) {
1179
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { "data-slot": "drawer-footer", className: cn("mt-auto flex flex-col-reverse gap-2 pt-4 sm:flex-row sm:justify-end", className), ...props });
1336
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { "data-slot": "drawer-footer", className: cn("mt-auto flex flex-col-reverse gap-2 pt-4 sm:flex-row sm:justify-end", className), ...props });
1180
1337
  }
1181
1338
  function DrawerTitle({ className, ...props }) {
1182
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h2", { "data-slot": "drawer-title", className: cn("text-base font-semibold", className), ...props });
1339
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h2", { "data-slot": "drawer-title", className: cn("text-base font-semibold", className), ...props });
1183
1340
  }
1184
1341
  function DrawerDescription({ className, ...props }) {
1185
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { "data-slot": "drawer-description", className: cn("text-sm text-muted-foreground", className), ...props });
1342
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { "data-slot": "drawer-description", className: cn("text-sm text-muted-foreground", className), ...props });
1186
1343
  }
1187
1344
 
1188
1345
  // src/ui/dropdown-menu/dropdown-menu.tsx
1189
- var React2 = require("react");
1346
+ var React3 = require("react");
1190
1347
  var import_class_variance_authority6 = require("class-variance-authority");
1191
- var import_lucide_react4 = require("lucide-react");
1192
- var import_react_aria_components11 = require("react-aria-components");
1193
- var import_jsx_runtime17 = require("react/jsx-runtime");
1348
+ var import_lucide_react5 = require("lucide-react");
1349
+ var import_react_aria_components12 = require("react-aria-components");
1350
+ var import_jsx_runtime18 = require("react/jsx-runtime");
1194
1351
  function DropdownMenuTrigger({
1195
1352
  ...props
1196
1353
  }) {
1197
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_aria_components11.MenuTrigger, { "data-slot": "dropdown-menu-trigger", ...props });
1354
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_aria_components12.MenuTrigger, { "data-slot": "dropdown-menu-trigger", ...props });
1198
1355
  }
1199
1356
  function DropdownMenu({
1200
1357
  "data-slot": dataSlot = "dropdown-menu-content",
@@ -1205,16 +1362,16 @@ function DropdownMenu({
1205
1362
  children,
1206
1363
  ...props
1207
1364
  }) {
1208
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1209
- import_react_aria_components11.Popover,
1365
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1366
+ import_react_aria_components12.Popover,
1210
1367
  {
1211
1368
  "data-slot": dataSlot,
1212
1369
  placement,
1213
1370
  offset,
1214
1371
  crossOffset,
1215
1372
  className: cn("z-50 w-(--trigger-width) min-w-32 origin-(--trigger-anchor-point) overflow-x-hidden overflow-y-auto rounded-lg border border-border bg-popover p-1 text-popover-foreground shadow-lg outline-none motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out", className),
1216
- children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1217
- import_react_aria_components11.Menu,
1373
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1374
+ import_react_aria_components12.Menu,
1218
1375
  {
1219
1376
  className: "max-h-[inherit] overflow-x-hidden overflow-y-auto outline-hidden",
1220
1377
  ...props,
@@ -1227,15 +1384,15 @@ function DropdownMenu({
1227
1384
  function DropdownMenuGroup({
1228
1385
  ...props
1229
1386
  }) {
1230
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_aria_components11.MenuSection, { "data-slot": "dropdown-menu-group", ...props });
1387
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_aria_components12.MenuSection, { "data-slot": "dropdown-menu-group", ...props });
1231
1388
  }
1232
1389
  function DropdownMenuLabel({
1233
1390
  className,
1234
1391
  inset,
1235
1392
  ...props
1236
1393
  }) {
1237
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1238
- import_react_aria_components11.Header,
1394
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1395
+ import_react_aria_components12.Header,
1239
1396
  {
1240
1397
  "data-slot": "dropdown-menu-label",
1241
1398
  "data-inset": inset,
@@ -1266,27 +1423,27 @@ function DropdownMenuItem({
1266
1423
  children,
1267
1424
  ...props
1268
1425
  }) {
1269
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1270
- import_react_aria_components11.MenuItem,
1426
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1427
+ import_react_aria_components12.MenuItem,
1271
1428
  {
1272
1429
  "data-slot": "dropdown-menu-item",
1273
1430
  "data-inset": inset,
1274
1431
  "data-variant": variant,
1275
1432
  textValue: typeof children === "string" ? children : props.textValue,
1276
- className: (0, import_react_aria_components11.composeRenderProps)(
1433
+ className: (0, import_react_aria_components12.composeRenderProps)(
1277
1434
  className,
1278
1435
  (className2, { selectionMode }) => cn(dropdownMenuItemVariants({ selectionMode }), className2)
1279
1436
  ),
1280
1437
  ...props,
1281
- children: (0, import_react_aria_components11.composeRenderProps)(
1438
+ children: (0, import_react_aria_components12.composeRenderProps)(
1282
1439
  children,
1283
- (children2, { isSelected, selectionMode }) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_jsx_runtime17.Fragment, { children: [
1284
- selectionMode !== "none" ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1440
+ (children2, { isSelected, selectionMode }) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
1441
+ selectionMode !== "none" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1285
1442
  "span",
1286
1443
  {
1287
1444
  className: "pointer-events-none absolute right-2 flex items-center justify-center",
1288
1445
  "data-slot": selectionMode === "single" ? "dropdown-menu-radio-item-indicator" : "dropdown-menu-checkbox-item-indicator",
1289
- children: isSelected ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_lucide_react4.CheckIcon, {}) : null
1446
+ children: isSelected ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_lucide_react5.CheckIcon, {}) : null
1290
1447
  }
1291
1448
  ) : null,
1292
1449
  children2
@@ -1298,7 +1455,7 @@ function DropdownMenuItem({
1298
1455
  function DropdownMenuSub({
1299
1456
  ...props
1300
1457
  }) {
1301
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_aria_components11.SubmenuTrigger, { "data-slot": "dropdown-menu-sub", ...props });
1458
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_aria_components12.SubmenuTrigger, { "data-slot": "dropdown-menu-sub", ...props });
1302
1459
  }
1303
1460
  function DropdownMenuSubTrigger({
1304
1461
  className,
@@ -1306,8 +1463,8 @@ function DropdownMenuSubTrigger({
1306
1463
  children,
1307
1464
  ...props
1308
1465
  }) {
1309
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1310
- import_react_aria_components11.MenuItem,
1466
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1467
+ import_react_aria_components12.MenuItem,
1311
1468
  {
1312
1469
  "data-slot": "dropdown-menu-sub-trigger",
1313
1470
  "data-inset": inset,
@@ -1317,9 +1474,9 @@ function DropdownMenuSubTrigger({
1317
1474
  className
1318
1475
  ),
1319
1476
  ...props,
1320
- children: (0, import_react_aria_components11.composeRenderProps)(children, (children2) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_jsx_runtime17.Fragment, { children: [
1477
+ children: (0, import_react_aria_components12.composeRenderProps)(children, (children2) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
1321
1478
  children2,
1322
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_lucide_react4.ChevronRightIcon, { className: "cn-rtl-flip ml-auto" })
1479
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_lucide_react5.ChevronRightIcon, { className: "cn-rtl-flip ml-auto" })
1323
1480
  ] }))
1324
1481
  }
1325
1482
  );
@@ -1331,7 +1488,7 @@ function DropdownMenuSubContent({
1331
1488
  className,
1332
1489
  ...props
1333
1490
  }) {
1334
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1491
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1335
1492
  DropdownMenu,
1336
1493
  {
1337
1494
  "data-slot": "dropdown-menu-sub-content",
@@ -1347,8 +1504,8 @@ function DropdownMenuSeparator({
1347
1504
  className,
1348
1505
  ...props
1349
1506
  }) {
1350
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1351
- import_react_aria_components11.Separator,
1507
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1508
+ import_react_aria_components12.Separator,
1352
1509
  {
1353
1510
  "data-slot": "dropdown-menu-separator",
1354
1511
  className: cn("-mx-1 my-1 h-px bg-border", className),
@@ -1360,7 +1517,7 @@ function DropdownMenuShortcut({
1360
1517
  className,
1361
1518
  ...props
1362
1519
  }) {
1363
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1520
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1364
1521
  "span",
1365
1522
  {
1366
1523
  "data-slot": "dropdown-menu-shortcut",
@@ -1375,9 +1532,9 @@ function DropdownMenuShortcut({
1375
1532
 
1376
1533
  // src/ui/empty-state/empty-state.tsx
1377
1534
  var import_class_variance_authority7 = require("class-variance-authority");
1378
- var import_jsx_runtime18 = require("react/jsx-runtime");
1535
+ var import_jsx_runtime19 = require("react/jsx-runtime");
1379
1536
  function EmptyState({ className, ...props }) {
1380
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1537
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1381
1538
  "div",
1382
1539
  {
1383
1540
  "data-slot": "empty-state",
@@ -1390,7 +1547,7 @@ function EmptyState({ className, ...props }) {
1390
1547
  );
1391
1548
  }
1392
1549
  function EmptyStateHeader({ className, ...props }) {
1393
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1550
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1394
1551
  "div",
1395
1552
  {
1396
1553
  "data-slot": "empty-state-header",
@@ -1416,7 +1573,7 @@ function EmptyStateMedia({
1416
1573
  variant = "default",
1417
1574
  ...props
1418
1575
  }) {
1419
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1576
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1420
1577
  "div",
1421
1578
  {
1422
1579
  "data-slot": "empty-state-media",
@@ -1427,7 +1584,7 @@ function EmptyStateMedia({
1427
1584
  );
1428
1585
  }
1429
1586
  function EmptyStateTitle({ className, ...props }) {
1430
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1587
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1431
1588
  "h3",
1432
1589
  {
1433
1590
  "data-slot": "empty-state-title",
@@ -1437,7 +1594,7 @@ function EmptyStateTitle({ className, ...props }) {
1437
1594
  );
1438
1595
  }
1439
1596
  function EmptyStateDescription({ className, ...props }) {
1440
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1597
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1441
1598
  "p",
1442
1599
  {
1443
1600
  "data-slot": "empty-state-description",
@@ -1450,7 +1607,7 @@ function EmptyStateDescription({ className, ...props }) {
1450
1607
  );
1451
1608
  }
1452
1609
  function EmptyStateContent({ className, ...props }) {
1453
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1610
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1454
1611
  "div",
1455
1612
  {
1456
1613
  "data-slot": "empty-state-content",
@@ -1468,23 +1625,23 @@ var import_class_variance_authority8 = require("class-variance-authority");
1468
1625
 
1469
1626
  // src/ui/label/label.tsx
1470
1627
  var import_react6 = require("react");
1471
- var import_react_aria_components12 = require("react-aria-components");
1472
- var import_jsx_runtime19 = require("react/jsx-runtime");
1628
+ var import_react_aria_components13 = require("react-aria-components");
1629
+ var import_jsx_runtime20 = require("react/jsx-runtime");
1473
1630
  var Label2 = (0, import_react6.forwardRef)(function Label3({ className, ...props }, ref) {
1474
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_aria_components12.Label, { ref, "data-slot": "label", className: cn("flex items-center gap-2 text-sm font-medium leading-none select-none", className), ...props });
1631
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_aria_components13.Label, { ref, "data-slot": "label", className: cn("flex items-center gap-2 text-sm font-medium leading-none select-none", className), ...props });
1475
1632
  });
1476
1633
 
1477
1634
  // src/ui/field/field.tsx
1478
- var import_jsx_runtime20 = require("react/jsx-runtime");
1635
+ var import_jsx_runtime21 = require("react/jsx-runtime");
1479
1636
  function FieldSet({ className, ...props }) {
1480
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("fieldset", { "data-slot": "field-set", className: cn("flex flex-col gap-4", className), ...props });
1637
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("fieldset", { "data-slot": "field-set", className: cn("flex flex-col gap-4", className), ...props });
1481
1638
  }
1482
1639
  function FieldLegend({
1483
1640
  className,
1484
1641
  variant = "legend",
1485
1642
  ...props
1486
1643
  }) {
1487
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1644
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1488
1645
  "legend",
1489
1646
  {
1490
1647
  "data-slot": "field-legend",
@@ -1498,7 +1655,7 @@ function FieldLegend({
1498
1655
  );
1499
1656
  }
1500
1657
  function FieldGroup({ className, ...props }) {
1501
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1658
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1502
1659
  "div",
1503
1660
  {
1504
1661
  "data-slot": "field-group",
@@ -1526,7 +1683,7 @@ var fieldVariants = (0, import_class_variance_authority8.cva)(
1526
1683
  function Field({ className, orientation = "vertical", ...props }) {
1527
1684
  return (
1528
1685
  // biome-ignore lint/a11y/useSemanticElements: FieldSet provides native fieldset semantics when they are appropriate.
1529
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1686
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1530
1687
  "div",
1531
1688
  {
1532
1689
  role: "group",
@@ -1539,7 +1696,7 @@ function Field({ className, orientation = "vertical", ...props }) {
1539
1696
  );
1540
1697
  }
1541
1698
  function FieldContent({ className, ...props }) {
1542
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1699
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1543
1700
  "div",
1544
1701
  {
1545
1702
  "data-slot": "field-content",
@@ -1549,7 +1706,7 @@ function FieldContent({ className, ...props }) {
1549
1706
  );
1550
1707
  }
1551
1708
  function FieldLabel({ className, ...props }) {
1552
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1709
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1553
1710
  Label2,
1554
1711
  {
1555
1712
  "data-slot": "field-label",
@@ -1562,7 +1719,7 @@ function FieldLabel({ className, ...props }) {
1562
1719
  );
1563
1720
  }
1564
1721
  function FieldTitle({ className, ...props }) {
1565
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1722
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1566
1723
  "div",
1567
1724
  {
1568
1725
  "data-slot": "field-title",
@@ -1572,7 +1729,7 @@ function FieldTitle({ className, ...props }) {
1572
1729
  );
1573
1730
  }
1574
1731
  function FieldDescription({ className, ...props }) {
1575
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1732
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1576
1733
  "p",
1577
1734
  {
1578
1735
  "data-slot": "field-description",
@@ -1585,7 +1742,7 @@ function FieldDescription({ className, ...props }) {
1585
1742
  );
1586
1743
  }
1587
1744
  function FieldSeparator({ className, children, ...props }) {
1588
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1745
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
1589
1746
  "div",
1590
1747
  {
1591
1748
  "data-slot": "field-separator",
@@ -1593,8 +1750,8 @@ function FieldSeparator({ className, children, ...props }) {
1593
1750
  className: cn("relative -my-2 h-5 text-sm", className),
1594
1751
  ...props,
1595
1752
  children: [
1596
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Separator, { className: "absolute inset-0 top-1/2" }),
1597
- children ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1753
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Separator, { className: "absolute inset-0 top-1/2" }),
1754
+ children ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1598
1755
  "span",
1599
1756
  {
1600
1757
  "data-slot": "field-separator-content",
@@ -1608,9 +1765,9 @@ function FieldSeparator({ className, children, ...props }) {
1608
1765
  }
1609
1766
  function FieldError2({ className, children, errors, ...props }) {
1610
1767
  const messages = [...new Set(errors?.flatMap((error) => error?.message ?? []) ?? [])];
1611
- const content = children ?? (messages.length === 1 ? messages[0] : messages.length > 1 ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("ul", { className: "ml-4 list-disc", children: messages.map((message) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("li", { children: message }, message)) }) : null);
1768
+ const content = children ?? (messages.length === 1 ? messages[0] : messages.length > 1 ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("ul", { className: "ml-4 list-disc", children: messages.map((message) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("li", { children: message }, message)) }) : null);
1612
1769
  if (!content) return null;
1613
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1770
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1614
1771
  "div",
1615
1772
  {
1616
1773
  role: "alert",
@@ -1624,8 +1781,8 @@ function FieldError2({ className, children, errors, ...props }) {
1624
1781
 
1625
1782
  // src/ui/form-feedback/form-feedback.tsx
1626
1783
  var import_react7 = require("react");
1627
- var import_lucide_react5 = require("lucide-react");
1628
- var import_jsx_runtime21 = require("react/jsx-runtime");
1784
+ var import_lucide_react6 = require("lucide-react");
1785
+ var import_jsx_runtime22 = require("react/jsx-runtime");
1629
1786
  function useFormFeedback(options) {
1630
1787
  const resetMs = options?.successResetMs ?? 2500;
1631
1788
  const [state, setState] = (0, import_react7.useState)({ status: "idle" });
@@ -1655,57 +1812,57 @@ function useFormFeedback(options) {
1655
1812
  return { state, pending: state.status === "pending", setPending, setSuccess, setError, reset };
1656
1813
  }
1657
1814
  function FormFeedback({ state, className, pendingLabel = "Guardando\u2026", successLabel = "Guardado" }) {
1658
- if (state.status === "idle") return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { "aria-hidden": "true", className: cn("inline-flex h-5 items-center", className) });
1815
+ if (state.status === "idle") return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { "aria-hidden": "true", className: cn("inline-flex h-5 items-center", className) });
1659
1816
  const error = state.status === "error";
1660
1817
  const success = state.status === "success";
1661
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("span", { role: error ? "alert" : "status", "aria-live": "polite", className: cn("inline-flex h-5 items-center gap-1.5 text-xs", error && "text-destructive", success && "text-success", state.status === "pending" && "text-muted-foreground", className), children: [
1662
- state.status === "pending" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react5.LoaderCircle, { "aria-hidden": "true", className: "size-3.5 animate-spin" }),
1663
- success && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react5.CheckCircle, { "aria-hidden": "true", className: "size-3.5" }),
1664
- error && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react5.CircleAlert, { "aria-hidden": "true", className: "size-3.5" }),
1665
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { children: state.status === "pending" ? pendingLabel : success ? state.message ?? successLabel : state.message })
1818
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("span", { role: error ? "alert" : "status", "aria-live": "polite", className: cn("inline-flex h-5 items-center gap-1.5 text-xs", error && "text-destructive", success && "text-success", state.status === "pending" && "text-muted-foreground", className), children: [
1819
+ state.status === "pending" && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_lucide_react6.LoaderCircle, { "aria-hidden": "true", className: "size-3.5 animate-spin" }),
1820
+ success && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_lucide_react6.CheckCircle, { "aria-hidden": "true", className: "size-3.5" }),
1821
+ error && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_lucide_react6.CircleAlert, { "aria-hidden": "true", className: "size-3.5" }),
1822
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { children: state.status === "pending" ? pendingLabel : success ? state.message ?? successLabel : state.message })
1666
1823
  ] });
1667
1824
  }
1668
1825
 
1669
1826
  // src/ui/form-row/form-row.tsx
1670
- var import_jsx_runtime22 = require("react/jsx-runtime");
1827
+ var import_jsx_runtime23 = require("react/jsx-runtime");
1671
1828
  function FormRow({ label, htmlFor, required, hint, error, className, children }) {
1672
1829
  const hintId = hint ? `${htmlFor}-hint` : void 0;
1673
1830
  const errorId = error ? `${htmlFor}-error` : void 0;
1674
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { "data-slot": "form-row", className: cn("flex flex-col gap-1.5", className), children: [
1675
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("label", { htmlFor, className: "text-sm font-medium text-foreground", children: [
1831
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { "data-slot": "form-row", className: cn("flex flex-col gap-1.5", className), children: [
1832
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("label", { htmlFor, className: "text-sm font-medium text-foreground", children: [
1676
1833
  label,
1677
- required && /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
1678
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { "aria-hidden": "true", className: "ml-0.5 text-destructive", children: "*" }),
1679
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "sr-only", children: " (obligatorio)" })
1834
+ required && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
1835
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { "aria-hidden": "true", className: "ml-0.5 text-destructive", children: "*" }),
1836
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "sr-only", children: " (obligatorio)" })
1680
1837
  ] })
1681
1838
  ] }),
1682
1839
  children,
1683
- hint && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { id: hintId, className: "text-xs text-muted-foreground", children: hint }),
1684
- error && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { id: errorId, role: "alert", className: "text-xs font-medium text-destructive", children: error })
1840
+ hint && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { id: hintId, className: "text-xs text-muted-foreground", children: hint }),
1841
+ error && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { id: errorId, role: "alert", className: "text-xs font-medium text-destructive", children: error })
1685
1842
  ] });
1686
1843
  }
1687
1844
 
1688
1845
  // src/ui/icon-button/icon-button.tsx
1689
- var import_react_aria_components14 = require("react-aria-components");
1846
+ var import_react_aria_components15 = require("react-aria-components");
1690
1847
 
1691
1848
  // src/ui/tooltip/tooltip.tsx
1692
- var React3 = __toESM(require("react"), 1);
1693
- var import_react_aria_components13 = require("react-aria-components");
1694
- var import_jsx_runtime23 = require("react/jsx-runtime");
1849
+ var React4 = __toESM(require("react"), 1);
1850
+ var import_react_aria_components14 = require("react-aria-components");
1851
+ var import_jsx_runtime24 = require("react/jsx-runtime");
1695
1852
  function TooltipTrigger({
1696
1853
  delay = 0,
1697
1854
  children,
1698
1855
  ...props
1699
1856
  }) {
1700
- const [trigger, tooltip] = React3.Children.toArray(children);
1701
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
1702
- import_react_aria_components13.TooltipTrigger,
1857
+ const [trigger, tooltip] = React4.Children.toArray(children);
1858
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
1859
+ import_react_aria_components14.TooltipTrigger,
1703
1860
  {
1704
1861
  "data-slot": "tooltip-trigger",
1705
1862
  delay,
1706
1863
  ...props,
1707
1864
  children: [
1708
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_aria_components13.Focusable, { children: trigger }),
1865
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_aria_components14.Focusable, { children: trigger }),
1709
1866
  tooltip
1710
1867
  ]
1711
1868
  }
@@ -1719,8 +1876,8 @@ function Tooltip({
1719
1876
  children,
1720
1877
  ...props
1721
1878
  }) {
1722
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
1723
- import_react_aria_components13.Tooltip,
1879
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
1880
+ import_react_aria_components14.Tooltip,
1724
1881
  {
1725
1882
  "data-slot": "tooltip-content",
1726
1883
  placement,
@@ -1733,8 +1890,8 @@ function Tooltip({
1733
1890
  ...props,
1734
1891
  children: [
1735
1892
  children,
1736
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1737
- import_react_aria_components13.OverlayArrow,
1893
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1894
+ import_react_aria_components14.OverlayArrow,
1738
1895
  {
1739
1896
  className: "z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-xs bg-foreground fill-foreground",
1740
1897
  style: ({ placement: placement2, defaultStyle }) => ({
@@ -1751,7 +1908,7 @@ function Tooltip({
1751
1908
  }
1752
1909
 
1753
1910
  // src/ui/icon-button/icon-button.tsx
1754
- var import_jsx_runtime24 = require("react/jsx-runtime");
1911
+ var import_jsx_runtime25 = require("react/jsx-runtime");
1755
1912
  function IconButton({
1756
1913
  label,
1757
1914
  children,
@@ -1764,9 +1921,9 @@ function IconButton({
1764
1921
  buttonVariants({ variant, size: "icon" }),
1765
1922
  className
1766
1923
  );
1767
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(TooltipTrigger, { children: [
1768
- href ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1769
- import_react_aria_components14.Link,
1924
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(TooltipTrigger, { children: [
1925
+ href ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
1926
+ import_react_aria_components15.Link,
1770
1927
  {
1771
1928
  "data-slot": "icon-button",
1772
1929
  "aria-label": label,
@@ -1774,7 +1931,7 @@ function IconButton({
1774
1931
  className: linkClassName,
1775
1932
  children
1776
1933
  }
1777
- ) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1934
+ ) : /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
1778
1935
  Button,
1779
1936
  {
1780
1937
  "data-slot": "icon-button",
@@ -1786,7 +1943,7 @@ function IconButton({
1786
1943
  children
1787
1944
  }
1788
1945
  ),
1789
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Tooltip, { children: label })
1946
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Tooltip, { children: label })
1790
1947
  ] });
1791
1948
  }
1792
1949
 
@@ -1795,29 +1952,29 @@ var import_class_variance_authority9 = require("class-variance-authority");
1795
1952
 
1796
1953
  // src/ui/input/input.tsx
1797
1954
  var import_react8 = require("react");
1798
- var import_react_aria_components15 = require("react-aria-components");
1799
- var import_jsx_runtime25 = require("react/jsx-runtime");
1955
+ var import_react_aria_components16 = require("react-aria-components");
1956
+ var import_jsx_runtime26 = require("react/jsx-runtime");
1800
1957
  var InputImpl = (0, import_react8.forwardRef)(function Input2({ className, type, ...props }, ref) {
1801
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_aria_components15.Input, { ref, type, "data-slot": "input", className: cn("h-8 w-full min-w-0 rounded-lg border border-border bg-background px-2.5 py-1 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive", className), ...props });
1958
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_aria_components16.Input, { ref, type, "data-slot": "input", className: cn("h-8 w-full min-w-0 rounded-lg border border-border bg-background px-2.5 py-1 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive", className), ...props });
1802
1959
  });
1803
1960
  var Input3 = InputImpl;
1804
1961
 
1805
1962
  // src/ui/textarea/textarea.tsx
1806
1963
  var import_react9 = require("react");
1807
- var import_react_aria_components16 = require("react-aria-components");
1808
- var import_jsx_runtime26 = require("react/jsx-runtime");
1964
+ var import_react_aria_components17 = require("react-aria-components");
1965
+ var import_jsx_runtime27 = require("react/jsx-runtime");
1809
1966
  var TextareaImpl = (0, import_react9.forwardRef)(function Textarea({ className, ...props }, ref) {
1810
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_aria_components16.TextArea, { ref, "data-slot": "textarea", className: cn("min-h-20 w-full rounded-lg border border-border bg-background px-2.5 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive", className), ...props });
1967
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_aria_components17.TextArea, { ref, "data-slot": "textarea", className: cn("min-h-20 w-full rounded-lg border border-border bg-background px-2.5 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive", className), ...props });
1811
1968
  });
1812
1969
  var Textarea2 = TextareaImpl;
1813
1970
 
1814
1971
  // src/ui/input-group/input-group.tsx
1815
- var import_jsx_runtime27 = (
1972
+ var import_jsx_runtime28 = (
1816
1973
  // biome-ignore lint/a11y/useSemanticElements: fieldset cannot preserve this inline control composition.
1817
1974
  require("react/jsx-runtime")
1818
1975
  );
1819
1976
  function InputGroup({ className, ...props }) {
1820
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
1977
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1821
1978
  "div",
1822
1979
  {
1823
1980
  role: "group",
@@ -1852,7 +2009,7 @@ function InputGroupAddon({
1852
2009
  }) {
1853
2010
  return (
1854
2011
  // biome-ignore lint/a11y/useSemanticElements: this addon delegates focus to its associated input.
1855
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2012
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1856
2013
  "div",
1857
2014
  {
1858
2015
  role: "group",
@@ -1883,7 +2040,7 @@ function InputGroupButton({
1883
2040
  ...props
1884
2041
  }) {
1885
2042
  const buttonSize = size === "icon-xs" || size === "icon-sm" ? size : size;
1886
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2043
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1887
2044
  Button,
1888
2045
  {
1889
2046
  "data-slot": "input-group-button",
@@ -1896,7 +2053,7 @@ function InputGroupButton({
1896
2053
  );
1897
2054
  }
1898
2055
  function InputGroupText({ className, ...props }) {
1899
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2056
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1900
2057
  "span",
1901
2058
  {
1902
2059
  "data-slot": "input-group-text",
@@ -1909,7 +2066,7 @@ function InputGroupText({ className, ...props }) {
1909
2066
  );
1910
2067
  }
1911
2068
  function InputGroupInput({ className, ...props }) {
1912
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2069
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1913
2070
  Input3,
1914
2071
  {
1915
2072
  "data-slot": "input-group-control",
@@ -1922,7 +2079,7 @@ function InputGroupInput({ className, ...props }) {
1922
2079
  );
1923
2080
  }
1924
2081
  function InputGroupTextarea({ className, ...props }) {
1925
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2082
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1926
2083
  Textarea2,
1927
2084
  {
1928
2085
  "data-slot": "input-group-control",
@@ -1936,42 +2093,42 @@ function InputGroupTextarea({ className, ...props }) {
1936
2093
  }
1937
2094
 
1938
2095
  // src/ui/kbd/kbd.tsx
1939
- var import_jsx_runtime28 = require("react/jsx-runtime");
2096
+ var import_jsx_runtime29 = require("react/jsx-runtime");
1940
2097
  function Kbd({ className, ...props }) {
1941
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("kbd", { "data-slot": "kbd", className: cn("pointer-events-none inline-flex h-5 min-w-5 items-center justify-center gap-1 rounded-sm bg-muted px-1 font-sans text-xs font-medium text-muted-foreground select-none", className), ...props });
2098
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("kbd", { "data-slot": "kbd", className: cn("pointer-events-none inline-flex h-5 min-w-5 items-center justify-center gap-1 rounded-sm bg-muted px-1 font-sans text-xs font-medium text-muted-foreground select-none", className), ...props });
1942
2099
  }
1943
2100
  function KbdGroup({ className, ...props }) {
1944
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { "data-slot": "kbd-group", className: cn("inline-flex items-center gap-1", className), ...props });
2101
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { "data-slot": "kbd-group", className: cn("inline-flex items-center gap-1", className), ...props });
1945
2102
  }
1946
2103
 
1947
2104
  // src/ui/loading-overlay/loading-overlay.tsx
1948
- var import_lucide_react6 = require("lucide-react");
1949
- var import_jsx_runtime29 = require("react/jsx-runtime");
2105
+ var import_lucide_react7 = require("lucide-react");
2106
+ var import_jsx_runtime30 = require("react/jsx-runtime");
1950
2107
  function LoadingOverlay({ label = "Cargando", className, ...props }) {
1951
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { role: "status", "aria-live": "polite", className: cn("absolute inset-0 z-10 flex items-center justify-center bg-background/70 backdrop-blur-[2px]", className), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "flex items-center gap-2 rounded-lg border border-border bg-background px-3 py-2 text-sm shadow-sm", children: [
1952
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react6.LoaderCircle, { className: "animate-spin", "aria-hidden": "true" }),
1953
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { children: label })
2108
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { role: "status", "aria-live": "polite", className: cn("absolute inset-0 z-10 flex items-center justify-center bg-background/70 backdrop-blur-[2px]", className), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "flex items-center gap-2 rounded-lg border border-border bg-background px-3 py-2 text-sm shadow-sm", children: [
2109
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_lucide_react7.LoaderCircle, { className: "animate-spin", "aria-hidden": "true" }),
2110
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { children: label })
1954
2111
  ] }) });
1955
2112
  }
1956
2113
 
1957
2114
  // src/ui/menu/menu.tsx
1958
- var import_react_aria_components17 = require("react-aria-components");
1959
- var import_jsx_runtime30 = require("react/jsx-runtime");
1960
- var MenuTrigger = import_react_aria_components17.MenuTrigger;
2115
+ var import_react_aria_components18 = require("react-aria-components");
2116
+ var import_jsx_runtime31 = require("react/jsx-runtime");
2117
+ var MenuTrigger = import_react_aria_components18.MenuTrigger;
1961
2118
  function MenuContent({ className, ...props }) {
1962
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_aria_components17.Popover, { "data-slot": "menu-content", className: cn("min-w-40 overflow-hidden rounded-xl border border-border bg-background p-1.5 text-foreground shadow-lg motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out", className), ...props });
2119
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react_aria_components18.Popover, { "data-slot": "menu-content", className: cn("min-w-40 overflow-hidden rounded-xl border border-border bg-background p-1.5 text-foreground shadow-lg motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out", className), ...props });
1963
2120
  }
1964
2121
  function Menu({ className, ...props }) {
1965
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_aria_components17.Menu, { "data-slot": "menu", className: cn("outline-none", className), ...props });
2122
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react_aria_components18.Menu, { "data-slot": "menu", className: cn("outline-none", className), ...props });
1966
2123
  }
1967
2124
  function MenuItem({ className, children, ...props }) {
1968
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_aria_components17.MenuItem, { "data-slot": "menu-item", className: cn("flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none data-focused:bg-muted data-disabled:pointer-events-none data-disabled:opacity-50", className), ...props, children });
2125
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react_aria_components18.MenuItem, { "data-slot": "menu-item", className: cn("flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none data-focused:bg-muted data-disabled:pointer-events-none data-disabled:opacity-50", className), ...props, children });
1969
2126
  }
1970
2127
 
1971
2128
  // src/ui/otp-input/otp-input.tsx
1972
2129
  var import_react10 = require("react");
1973
- var import_react_aria_components18 = require("react-aria-components");
1974
- var import_jsx_runtime31 = require("react/jsx-runtime");
2130
+ var import_react_aria_components19 = require("react-aria-components");
2131
+ var import_jsx_runtime32 = require("react/jsx-runtime");
1975
2132
  function normalizeOtp(value, length) {
1976
2133
  return value.replace(/[^0-9]/g, "").slice(0, length);
1977
2134
  }
@@ -2023,7 +2180,7 @@ var OtpInputImpl = (0, import_react10.forwardRef)(function OtpInput({
2023
2180
  input.setSelectionRange(position, position);
2024
2181
  setSelectionStart(position);
2025
2182
  }
2026
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
2183
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
2027
2184
  "div",
2028
2185
  {
2029
2186
  "data-slot": "otp-input",
@@ -2033,8 +2190,8 @@ var OtpInputImpl = (0, import_react10.forwardRef)(function OtpInput({
2033
2190
  style: { gridTemplateColumns: `repeat(${slotCount}, minmax(0, 2.5rem))` },
2034
2191
  onPointerDown: handlePointerDown,
2035
2192
  children: [
2036
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2037
- import_react_aria_components18.Input,
2193
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2194
+ import_react_aria_components19.Input,
2038
2195
  {
2039
2196
  ...props,
2040
2197
  ref: inputRef,
@@ -2073,7 +2230,7 @@ var OtpInputImpl = (0, import_react10.forwardRef)(function OtpInput({
2073
2230
  }
2074
2231
  }
2075
2232
  ),
2076
- slots.map((slot, index) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2233
+ slots.map((slot, index) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2077
2234
  "span",
2078
2235
  {
2079
2236
  "aria-hidden": "true",
@@ -2096,56 +2253,56 @@ var OtpInputImpl = (0, import_react10.forwardRef)(function OtpInput({
2096
2253
  var OtpInput2 = OtpInputImpl;
2097
2254
 
2098
2255
  // src/ui/page-header/page-header.tsx
2099
- var import_jsx_runtime32 = require("react/jsx-runtime");
2256
+ var import_jsx_runtime33 = require("react/jsx-runtime");
2100
2257
  function PageHeader({ className, ...props }) {
2101
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("header", { "data-slot": "page-header", className: cn("flex flex-col gap-4 py-2 sm:flex-row sm:items-center sm:justify-between", className), ...props });
2258
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("header", { "data-slot": "page-header", className: cn("flex flex-col gap-4 py-2 sm:flex-row sm:items-center sm:justify-between", className), ...props });
2102
2259
  }
2103
2260
  function PageHeaderHeading({ className, ...props }) {
2104
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { "data-slot": "page-header-heading", className: cn("min-w-0", className), ...props });
2261
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { "data-slot": "page-header-heading", className: cn("min-w-0", className), ...props });
2105
2262
  }
2106
2263
  function PageHeaderTitle({ className, ...props }) {
2107
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("h1", { "data-slot": "page-header-title", className: cn("truncate text-xl font-semibold tracking-tight md:text-2xl", className), ...props });
2264
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("h1", { "data-slot": "page-header-title", className: cn("truncate text-xl font-semibold tracking-tight md:text-2xl", className), ...props });
2108
2265
  }
2109
2266
  function PageHeaderDescription({ className, ...props }) {
2110
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("p", { "data-slot": "page-header-description", className: cn("mt-1 text-sm text-muted-foreground", className), ...props });
2267
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("p", { "data-slot": "page-header-description", className: cn("mt-1 text-sm text-muted-foreground", className), ...props });
2111
2268
  }
2112
2269
  function PageHeaderActions({ className, ...props }) {
2113
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { "data-slot": "page-header-actions", className: cn("flex shrink-0 items-center gap-2", className), ...props });
2270
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { "data-slot": "page-header-actions", className: cn("flex shrink-0 items-center gap-2", className), ...props });
2114
2271
  }
2115
2272
 
2116
2273
  // src/ui/pagination/pagination.tsx
2117
- var import_lucide_react7 = require("lucide-react");
2118
- var import_jsx_runtime33 = require("react/jsx-runtime");
2274
+ var import_lucide_react8 = require("lucide-react");
2275
+ var import_jsx_runtime34 = require("react/jsx-runtime");
2119
2276
  function Pagination({ page, pageCount, onPageChange, className }) {
2120
2277
  const pages = Array.from({ length: pageCount }, (_, index) => index + 1);
2121
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("nav", { "aria-label": "Paginaci\xF3n", className: cn("flex items-center justify-between gap-4", className), children: [
2122
- /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("p", { className: "text-sm text-muted-foreground", children: [
2278
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("nav", { "aria-label": "Paginaci\xF3n", className: cn("flex items-center justify-between gap-4", className), children: [
2279
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("p", { className: "text-sm text-muted-foreground", children: [
2123
2280
  "P\xE1gina ",
2124
2281
  page,
2125
2282
  " de ",
2126
2283
  pageCount
2127
2284
  ] }),
2128
- /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex items-center gap-1", children: [
2129
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Button, { "aria-label": "P\xE1gina anterior", isDisabled: page <= 1, onPress: () => onPageChange(page - 1), size: "icon", variant: "ghost", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_lucide_react7.ChevronLeft, {}) }),
2130
- pages.map((item) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Button, { "aria-current": item === page ? "page" : void 0, "aria-label": `P\xE1gina ${item}`, onPress: () => onPageChange(item), size: "icon", variant: item === page ? "secondary" : "ghost", children: item }, item)),
2131
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Button, { "aria-label": "P\xE1gina siguiente", isDisabled: page >= pageCount, onPress: () => onPageChange(page + 1), size: "icon", variant: "ghost", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_lucide_react7.ChevronRight, {}) })
2285
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex items-center gap-1", children: [
2286
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Button, { "aria-label": "P\xE1gina anterior", isDisabled: page <= 1, onPress: () => onPageChange(page - 1), size: "icon", variant: "ghost", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_lucide_react8.ChevronLeft, {}) }),
2287
+ pages.map((item) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Button, { "aria-current": item === page ? "page" : void 0, "aria-label": `P\xE1gina ${item}`, onPress: () => onPageChange(item), size: "icon", variant: item === page ? "secondary" : "ghost", children: item }, item)),
2288
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Button, { "aria-label": "P\xE1gina siguiente", isDisabled: page >= pageCount, onPress: () => onPageChange(page + 1), size: "icon", variant: "ghost", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_lucide_react8.ChevronRight, {}) })
2132
2289
  ] })
2133
2290
  ] });
2134
2291
  }
2135
2292
 
2136
2293
  // src/ui/popover/popover.tsx
2137
- var import_react_aria_components19 = require("react-aria-components");
2138
- var import_jsx_runtime34 = require("react/jsx-runtime");
2139
- var PopoverTrigger = import_react_aria_components19.DialogTrigger;
2294
+ var import_react_aria_components20 = require("react-aria-components");
2295
+ var import_jsx_runtime35 = require("react/jsx-runtime");
2296
+ var PopoverTrigger = import_react_aria_components20.DialogTrigger;
2140
2297
  function Popover4({ className, ...props }) {
2141
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_react_aria_components19.Popover, { "data-slot": "popover", offset: 6, className: cn("min-w-48 rounded-xl border border-border bg-background p-1.5 text-foreground shadow-lg outline-none motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out", className), ...props });
2298
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_aria_components20.Popover, { "data-slot": "popover", offset: 6, className: cn("min-w-48 rounded-xl border border-border bg-background p-1.5 text-foreground shadow-lg outline-none motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out", className), ...props });
2142
2299
  }
2143
2300
  var PopoverContent = Popover4;
2144
2301
 
2145
2302
  // src/ui/quantity-input/quantity-input.tsx
2146
- var import_lucide_react8 = require("lucide-react");
2147
- var import_react_aria_components20 = require("react-aria-components");
2148
- var import_jsx_runtime35 = require("react/jsx-runtime");
2303
+ var import_lucide_react9 = require("lucide-react");
2304
+ var import_react_aria_components21 = require("react-aria-components");
2305
+ var import_jsx_runtime36 = require("react/jsx-runtime");
2149
2306
  function QuantityInput({
2150
2307
  className,
2151
2308
  inputClassName,
@@ -2155,23 +2312,23 @@ function QuantityInput({
2155
2312
  step = 1,
2156
2313
  ...props
2157
2314
  }) {
2158
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2159
- import_react_aria_components20.NumberField,
2315
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2316
+ import_react_aria_components21.NumberField,
2160
2317
  {
2161
2318
  ...props,
2162
2319
  minValue,
2163
2320
  step,
2164
2321
  "data-slot": "quantity-input",
2165
2322
  className: cn("group/quantity-input inline-flex min-w-0 data-disabled:cursor-not-allowed data-disabled:opacity-50", className),
2166
- children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
2167
- import_react_aria_components20.Group,
2323
+ children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
2324
+ import_react_aria_components21.Group,
2168
2325
  {
2169
2326
  "data-slot": "quantity-input-group",
2170
2327
  className: "flex h-8 min-w-0 items-stretch overflow-hidden rounded-lg border border-border bg-background text-foreground transition-[border-color,box-shadow] focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 group-data-invalid/quantity-input:border-destructive",
2171
2328
  children: [
2172
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_aria_components20.Button, { slot: "decrement", "aria-label": decrementAriaLabel, "data-slot": "quantity-input-decrement", className: "flex size-8 shrink-0 cursor-pointer items-center justify-center border-r border-border text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground data-focus-visible:bg-muted data-pressed:bg-muted data-disabled:pointer-events-none", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react8.Minus, { "aria-hidden": "true", className: "size-4" }) }),
2173
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_aria_components20.Input, { "data-slot": "quantity-input-value", className: cn("w-14 min-w-0 bg-transparent px-1 text-center text-sm tabular-nums outline-none", inputClassName) }),
2174
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_aria_components20.Button, { slot: "increment", "aria-label": incrementAriaLabel, "data-slot": "quantity-input-increment", className: "flex size-8 shrink-0 cursor-pointer items-center justify-center border-l border-border text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground data-focus-visible:bg-muted data-pressed:bg-muted data-disabled:pointer-events-none", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react8.Plus, { "aria-hidden": "true", className: "size-4" }) })
2329
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react_aria_components21.Button, { slot: "decrement", "aria-label": decrementAriaLabel, "data-slot": "quantity-input-decrement", className: "flex size-8 shrink-0 cursor-pointer items-center justify-center border-r border-border text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground data-focus-visible:bg-muted data-pressed:bg-muted data-disabled:pointer-events-none", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_lucide_react9.Minus, { "aria-hidden": "true", className: "size-4" }) }),
2330
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react_aria_components21.Input, { "data-slot": "quantity-input-value", className: cn("w-14 min-w-0 bg-transparent px-1 text-center text-sm tabular-nums outline-none", inputClassName) }),
2331
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react_aria_components21.Button, { slot: "increment", "aria-label": incrementAriaLabel, "data-slot": "quantity-input-increment", className: "flex size-8 shrink-0 cursor-pointer items-center justify-center border-l border-border text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground data-focus-visible:bg-muted data-pressed:bg-muted data-disabled:pointer-events-none", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_lucide_react9.Plus, { "aria-hidden": "true", className: "size-4" }) })
2175
2332
  ]
2176
2333
  }
2177
2334
  )
@@ -2180,50 +2337,50 @@ function QuantityInput({
2180
2337
  }
2181
2338
 
2182
2339
  // src/ui/search-field/search-field.tsx
2183
- var import_react_aria_components21 = require("react-aria-components");
2184
- var import_lucide_react9 = require("lucide-react");
2185
- var import_jsx_runtime36 = require("react/jsx-runtime");
2186
- var SearchField = import_react_aria_components21.SearchField;
2340
+ var import_react_aria_components22 = require("react-aria-components");
2341
+ var import_lucide_react10 = require("lucide-react");
2342
+ var import_jsx_runtime37 = require("react/jsx-runtime");
2343
+ var SearchField = import_react_aria_components22.SearchField;
2187
2344
  function SearchInput({ className, ...props }) {
2188
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react_aria_components21.Input, { "data-slot": "search-input", className: cn("h-8 w-full min-w-0 rounded-lg border border-border bg-background px-2.5 py-1 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-3 focus-visible:ring-ring/50", className), ...props });
2345
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_aria_components22.Input, { "data-slot": "search-input", className: cn("h-8 w-full min-w-0 rounded-lg border border-border bg-background px-2.5 py-1 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-3 focus-visible:ring-ring/50", className), ...props });
2189
2346
  }
2190
- function SearchClearButton({ className, children = /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_lucide_react9.X, { "aria-hidden": "true", className: "size-4" }), ...props }) {
2191
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react_aria_components21.Button, { slot: "clear", "data-slot": "search-clear", className: cn("absolute top-1/2 right-1 rounded p-1 text-muted-foreground outline-none hover:bg-muted data-focus-visible:ring-2 data-focus-visible:ring-ring", className), ...props, children });
2347
+ function SearchClearButton({ className, children = /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react10.X, { "aria-hidden": "true", className: "size-4" }), ...props }) {
2348
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_aria_components22.Button, { slot: "clear", "data-slot": "search-clear", className: cn("absolute top-1/2 right-1 rounded p-1 text-muted-foreground outline-none hover:bg-muted data-focus-visible:ring-2 data-focus-visible:ring-ring", className), ...props, children });
2192
2349
  }
2193
2350
 
2194
2351
  // src/ui/select/select.tsx
2195
- var import_react_aria_components22 = require("react-aria-components");
2196
- var import_lucide_react10 = require("lucide-react");
2197
- var import_jsx_runtime37 = require("react/jsx-runtime");
2198
- var Select = import_react_aria_components22.Select;
2352
+ var import_react_aria_components23 = require("react-aria-components");
2353
+ var import_lucide_react11 = require("lucide-react");
2354
+ var import_jsx_runtime38 = require("react/jsx-runtime");
2355
+ var Select = import_react_aria_components23.Select;
2199
2356
  function SelectTrigger({ className, children, ...props }) {
2200
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_aria_components22.Button, { "data-slot": "select-trigger", className: cn("group/select-trigger flex h-8 w-full min-w-36 items-center gap-2 rounded-lg border border-border bg-background px-2.5 text-left text-sm text-foreground outline-none data-focus-visible:ring-3 data-focus-visible:ring-ring/50 data-disabled:cursor-not-allowed data-disabled:opacity-50", className), ...props, children: (state) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
2357
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_aria_components23.Button, { "data-slot": "select-trigger", className: cn("group/select-trigger flex h-8 w-full min-w-36 items-center gap-2 rounded-lg border border-border bg-background px-2.5 text-left text-sm text-foreground outline-none data-focus-visible:ring-3 data-focus-visible:ring-ring/50 data-disabled:cursor-not-allowed data-disabled:opacity-50", className), ...props, children: (state) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
2201
2358
  typeof children === "function" ? children(state) : children,
2202
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react10.ChevronDown, { "aria-hidden": "true", className: "ml-auto size-4 text-muted-foreground transition-transform group-data-pressed/select-trigger:rotate-180 motion-reduce:transition-none" })
2359
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react11.ChevronDown, { "aria-hidden": "true", className: "ml-auto size-4 text-muted-foreground transition-transform group-data-pressed/select-trigger:rotate-180 motion-reduce:transition-none" })
2203
2360
  ] }) });
2204
2361
  }
2205
2362
  function SelectValue({ className, ...props }) {
2206
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_aria_components22.SelectValue, { "data-slot": "select-value", className: cn("flex-1 truncate data-placeholder:text-muted-foreground", className), ...props });
2363
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_aria_components23.SelectValue, { "data-slot": "select-value", className: cn("flex-1 truncate data-placeholder:text-muted-foreground", className), ...props });
2207
2364
  }
2208
2365
  function SelectContent({ className, ...props }) {
2209
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_aria_components22.Popover, { "data-slot": "select-content", className: cn("w-(--trigger-width) overflow-hidden rounded-xl border border-border bg-background p-1.5 text-foreground shadow-lg motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out", className), ...props });
2366
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_aria_components23.Popover, { "data-slot": "select-content", className: cn("w-(--trigger-width) overflow-hidden rounded-xl border border-border bg-background p-1.5 text-foreground shadow-lg motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out", className), ...props });
2210
2367
  }
2211
2368
  function SelectList({ className, ...props }) {
2212
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_aria_components22.ListBox, { "data-slot": "select-list", className: cn("max-h-64 overflow-y-auto", className), ...props });
2369
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_aria_components23.ListBox, { "data-slot": "select-list", className: cn("max-h-64 overflow-y-auto", className), ...props });
2213
2370
  }
2214
2371
  function SelectItem({ className, children, ...props }) {
2215
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_aria_components22.ListBoxItem, { "data-slot": "select-item", className: cn("flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none data-focused:bg-muted data-selected:bg-muted data-disabled:pointer-events-none data-disabled:opacity-50", className), ...props, children });
2372
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_aria_components23.ListBoxItem, { "data-slot": "select-item", className: cn("flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none data-focused:bg-muted data-selected:bg-muted data-disabled:pointer-events-none data-disabled:opacity-50", className), ...props, children });
2216
2373
  }
2217
2374
 
2218
2375
  // src/ui/sheet/sheet.tsx
2219
- var import_lucide_react11 = require("lucide-react");
2220
- var import_react_aria_components23 = require("react-aria-components");
2221
- var import_jsx_runtime38 = require("react/jsx-runtime");
2376
+ var import_lucide_react12 = require("lucide-react");
2377
+ var import_react_aria_components24 = require("react-aria-components");
2378
+ var import_jsx_runtime39 = require("react/jsx-runtime");
2222
2379
  function SheetTrigger({ ...props }) {
2223
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_aria_components23.DialogTrigger, { "data-slot": "sheet-trigger", ...props });
2380
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_react_aria_components24.DialogTrigger, { "data-slot": "sheet-trigger", ...props });
2224
2381
  }
2225
2382
  function SheetClose({ className, variant = "outline", size = "default", ...props }) {
2226
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2383
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2227
2384
  Button,
2228
2385
  {
2229
2386
  slot: "close",
@@ -2240,8 +2397,8 @@ function SheetOverlay({
2240
2397
  children,
2241
2398
  ...props
2242
2399
  }) {
2243
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2244
- import_react_aria_components23.ModalOverlay,
2400
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2401
+ import_react_aria_components24.ModalOverlay,
2245
2402
  {
2246
2403
  "data-slot": "sheet-overlay",
2247
2404
  isDismissable: true,
@@ -2261,8 +2418,8 @@ function Sheet({
2261
2418
  showCloseButton = true,
2262
2419
  ...props
2263
2420
  }) {
2264
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SheetOverlay, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2265
- import_react_aria_components23.Modal,
2421
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SheetOverlay, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2422
+ import_react_aria_components24.Modal,
2266
2423
  {
2267
2424
  "data-slot": "sheet-content",
2268
2425
  "data-side": side,
@@ -2270,16 +2427,16 @@ function Sheet({
2270
2427
  "fixed z-50 flex flex-col gap-4 border-border bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-entering:opacity-0 data-exiting:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-entering:translate-y-10 data-[side=bottom]:data-exiting:translate-y-10 data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-entering:-translate-x-10 data-[side=left]:data-exiting:-translate-x-10 data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-entering:translate-x-10 data-[side=right]:data-exiting:translate-x-10 data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-entering:-translate-y-10 data-[side=top]:data-exiting:-translate-y-10 data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",
2271
2428
  className
2272
2429
  ),
2273
- children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
2274
- import_react_aria_components23.Dialog,
2430
+ children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
2431
+ import_react_aria_components24.Dialog,
2275
2432
  {
2276
2433
  "data-slot": "sheet",
2277
2434
  className: "[display:inherit] h-full max-h-[inherit] [flex-direction:inherit] gap-[inherit] outline-none",
2278
2435
  children: [
2279
2436
  children,
2280
- showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(SheetClose, { variant: "ghost", className: "absolute top-3 right-3", size: "icon-sm", children: [
2281
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react11.XIcon, {}),
2282
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "sr-only", children: "Cerrar" })
2437
+ showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(SheetClose, { variant: "ghost", className: "absolute top-3 right-3", size: "icon-sm", children: [
2438
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react12.XIcon, {}),
2439
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "sr-only", children: "Cerrar" })
2283
2440
  ] })
2284
2441
  ]
2285
2442
  }
@@ -2294,10 +2451,10 @@ function SheetContent({
2294
2451
  showCloseButton = true,
2295
2452
  ...props
2296
2453
  }) {
2297
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Sheet, { className, side, showCloseButton, ...props, children });
2454
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Sheet, { className, side, showCloseButton, ...props, children });
2298
2455
  }
2299
2456
  function SheetHeader({ className, ...props }) {
2300
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2457
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2301
2458
  "div",
2302
2459
  {
2303
2460
  "data-slot": "sheet-header",
@@ -2307,7 +2464,7 @@ function SheetHeader({ className, ...props }) {
2307
2464
  );
2308
2465
  }
2309
2466
  function SheetFooter({ className, ...props }) {
2310
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2467
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2311
2468
  "div",
2312
2469
  {
2313
2470
  "data-slot": "sheet-footer",
@@ -2317,8 +2474,8 @@ function SheetFooter({ className, ...props }) {
2317
2474
  );
2318
2475
  }
2319
2476
  function SheetTitle({ className, ...props }) {
2320
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2321
- import_react_aria_components23.Heading,
2477
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2478
+ import_react_aria_components24.Heading,
2322
2479
  {
2323
2480
  slot: "title",
2324
2481
  "data-slot": "sheet-title",
@@ -2331,8 +2488,8 @@ function SheetDescription({
2331
2488
  className,
2332
2489
  ...props
2333
2490
  }) {
2334
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2335
- import_react_aria_components23.Text,
2491
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2492
+ import_react_aria_components24.Text,
2336
2493
  {
2337
2494
  slot: "description",
2338
2495
  "data-slot": "sheet-description",
@@ -2343,10 +2500,10 @@ function SheetDescription({
2343
2500
  }
2344
2501
 
2345
2502
  // src/ui/sidebar/sidebar.tsx
2346
- var import_lucide_react12 = require("lucide-react");
2503
+ var import_lucide_react13 = require("lucide-react");
2347
2504
  var import_react11 = require("react");
2348
- var import_react_aria_components24 = require("react-aria-components");
2349
- var import_jsx_runtime39 = require("react/jsx-runtime");
2505
+ var import_react_aria_components25 = require("react-aria-components");
2506
+ var import_jsx_runtime40 = require("react/jsx-runtime");
2350
2507
  var SidebarContext = (0, import_react11.createContext)(null);
2351
2508
  function useSidebar() {
2352
2509
  const context = (0, import_react11.useContext)(SidebarContext);
@@ -2367,14 +2524,14 @@ function SidebarProvider({
2367
2524
  }),
2368
2525
  [collapsed]
2369
2526
  );
2370
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SidebarContext.Provider, { value, children });
2527
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(SidebarContext.Provider, { value, children });
2371
2528
  }
2372
2529
  function Sidebar({
2373
2530
  className,
2374
2531
  ...props
2375
2532
  }) {
2376
2533
  const { collapsed } = useSidebar();
2377
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2534
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2378
2535
  "aside",
2379
2536
  {
2380
2537
  "data-slot": "sidebar",
@@ -2391,7 +2548,7 @@ function SidebarHeader({
2391
2548
  className,
2392
2549
  ...props
2393
2550
  }) {
2394
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2551
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2395
2552
  "div",
2396
2553
  {
2397
2554
  "data-slot": "sidebar-header",
@@ -2406,7 +2563,7 @@ function SidebarSearch({
2406
2563
  className,
2407
2564
  ...props
2408
2565
  }) {
2409
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
2566
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
2410
2567
  "button",
2411
2568
  {
2412
2569
  type: "button",
@@ -2417,9 +2574,9 @@ function SidebarSearch({
2417
2574
  ),
2418
2575
  ...props,
2419
2576
  children: [
2420
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react12.Search, { className: "size-4 shrink-0" }),
2421
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "flex-1 text-left", children: label }),
2422
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("kbd", { className: "rounded bg-secondary px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground", children: shortcut })
2577
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react13.Search, { className: "size-4 shrink-0" }),
2578
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "flex-1 text-left", children: label }),
2579
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("kbd", { className: "rounded bg-secondary px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground", children: shortcut })
2423
2580
  ]
2424
2581
  }
2425
2582
  );
@@ -2428,7 +2585,7 @@ function SidebarContent({
2428
2585
  className,
2429
2586
  ...props
2430
2587
  }) {
2431
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2588
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2432
2589
  "nav",
2433
2590
  {
2434
2591
  "data-slot": "sidebar-content",
@@ -2442,7 +2599,7 @@ function SidebarFooter({
2442
2599
  className,
2443
2600
  ...props
2444
2601
  }) {
2445
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2602
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2446
2603
  "div",
2447
2604
  {
2448
2605
  "data-slot": "sidebar-footer",
@@ -2461,14 +2618,14 @@ function SidebarGroup({
2461
2618
  ...props
2462
2619
  }) {
2463
2620
  const { collapsed } = useSidebar();
2464
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
2621
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
2465
2622
  "section",
2466
2623
  {
2467
2624
  "data-slot": "sidebar-group",
2468
2625
  className: cn("mb-4 last:mb-0", className),
2469
2626
  ...props,
2470
2627
  children: [
2471
- label && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2628
+ label && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2472
2629
  "h2",
2473
2630
  {
2474
2631
  className: cn(
@@ -2494,8 +2651,8 @@ function SidebarItem({
2494
2651
  }) {
2495
2652
  const { collapsed } = useSidebar();
2496
2653
  const content = typeof children === "function" ? label : children ?? label;
2497
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2498
- import_react_aria_components24.Link,
2654
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2655
+ import_react_aria_components25.Link,
2499
2656
  {
2500
2657
  "data-slot": "sidebar-item",
2501
2658
  "aria-current": active ? "page" : void 0,
@@ -2506,16 +2663,16 @@ function SidebarItem({
2506
2663
  typeof className === "function" ? className : className
2507
2664
  ),
2508
2665
  ...props,
2509
- children: (values) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
2510
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "flex size-4 shrink-0 items-center justify-center", children: icon }),
2511
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2666
+ children: (values) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_jsx_runtime40.Fragment, { children: [
2667
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "flex size-4 shrink-0 items-center justify-center", children: icon }),
2668
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2512
2669
  "span",
2513
2670
  {
2514
2671
  className: cn("min-w-0 flex-1 truncate", collapsed && "sr-only"),
2515
2672
  children: typeof children === "function" ? children(values) : content
2516
2673
  }
2517
2674
  ),
2518
- badge && !collapsed && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "text-xs text-muted-foreground", children: badge })
2675
+ badge && !collapsed && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "text-xs text-muted-foreground", children: badge })
2519
2676
  ] })
2520
2677
  }
2521
2678
  );
@@ -2524,7 +2681,7 @@ function SidebarSeparator({
2524
2681
  className,
2525
2682
  ...props
2526
2683
  }) {
2527
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2684
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2528
2685
  "hr",
2529
2686
  {
2530
2687
  "data-slot": "sidebar-separator",
@@ -2535,7 +2692,7 @@ function SidebarSeparator({
2535
2692
  }
2536
2693
  function SidebarTrigger({ className, ...props }) {
2537
2694
  const { collapsed, toggle } = useSidebar();
2538
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2695
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2539
2696
  Button,
2540
2697
  {
2541
2698
  "aria-label": collapsed ? "Expandir navegaci\xF3n" : "Colapsar navegaci\xF3n",
@@ -2544,7 +2701,7 @@ function SidebarTrigger({ className, ...props }) {
2544
2701
  variant: "ghost",
2545
2702
  className: cn("ml-auto", className),
2546
2703
  ...props,
2547
- children: collapsed ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react12.ChevronRight, {}) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react12.ChevronLeft, {})
2704
+ children: collapsed ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react13.ChevronRight, {}) : /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react13.ChevronLeft, {})
2548
2705
  }
2549
2706
  );
2550
2707
  }
@@ -2553,7 +2710,7 @@ function SidebarRail({
2553
2710
  ...props
2554
2711
  }) {
2555
2712
  const { toggle } = useSidebar();
2556
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2713
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2557
2714
  "button",
2558
2715
  {
2559
2716
  type: "button",
@@ -2568,7 +2725,7 @@ function SidebarRail({
2568
2725
  );
2569
2726
  }
2570
2727
  function SidebarMore({ className, ...props }) {
2571
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2728
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2572
2729
  Button,
2573
2730
  {
2574
2731
  "aria-label": "M\xE1s opciones",
@@ -2576,34 +2733,34 @@ function SidebarMore({ className, ...props }) {
2576
2733
  variant: "ghost",
2577
2734
  className: cn("size-7", className),
2578
2735
  ...props,
2579
- children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react12.Ellipsis, {})
2736
+ children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react13.Ellipsis, {})
2580
2737
  }
2581
2738
  );
2582
2739
  }
2583
2740
 
2584
2741
  // src/ui/skeleton/skeleton.tsx
2585
- var import_jsx_runtime40 = require("react/jsx-runtime");
2742
+ var import_jsx_runtime41 = require("react/jsx-runtime");
2586
2743
  function Skeleton({ className, ...props }) {
2587
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { "aria-hidden": "true", "data-slot": "skeleton", className: cn("animate-pulse rounded-md bg-muted", className), ...props });
2744
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { "aria-hidden": "true", "data-slot": "skeleton", className: cn("animate-pulse rounded-md bg-muted", className), ...props });
2588
2745
  }
2589
2746
 
2590
2747
  // src/ui/submit-button/submit-button.tsx
2591
2748
  var import_react_dom = require("react-dom");
2592
- var import_lucide_react13 = require("lucide-react");
2593
- var import_jsx_runtime41 = require("react/jsx-runtime");
2749
+ var import_lucide_react14 = require("lucide-react");
2750
+ var import_jsx_runtime42 = require("react/jsx-runtime");
2594
2751
  function SubmitButton({ pendingLabel = "Guardando\u2026", loading = false, children, isDisabled, size = "sm", ...props }) {
2595
2752
  const { pending } = (0, import_react_dom.useFormStatus)();
2596
2753
  const busy = pending || loading;
2597
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Button, { type: "submit", size, isDisabled: busy || isDisabled, "aria-busy": busy || void 0, ...props, children: busy ? /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, { children: [
2598
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_lucide_react13.LoaderCircle, { "aria-hidden": "true", className: "size-3.5 animate-spin" }),
2754
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Button, { type: "submit", size, isDisabled: busy || isDisabled, "aria-busy": busy || void 0, ...props, children: busy ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
2755
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react14.LoaderCircle, { "aria-hidden": "true", className: "size-3.5 animate-spin" }),
2599
2756
  pendingLabel
2600
2757
  ] }) : children });
2601
2758
  }
2602
2759
 
2603
2760
  // src/ui/switch/switch.tsx
2604
2761
  var import_react12 = require("react");
2605
- var import_react_aria_components25 = require("react-aria-components");
2606
- var import_jsx_runtime42 = require("react/jsx-runtime");
2762
+ var import_react_aria_components26 = require("react-aria-components");
2763
+ var import_jsx_runtime43 = require("react/jsx-runtime");
2607
2764
  var switchSizes = {
2608
2765
  sm: {
2609
2766
  control: "h-4 w-[1.875rem] p-0.5",
@@ -2659,8 +2816,8 @@ function Switch({
2659
2816
  ownerDocument.addEventListener("keydown", handleDirectionalKey);
2660
2817
  return () => ownerDocument.removeEventListener("keydown", handleDirectionalKey);
2661
2818
  }, [isDisabled, isReadOnly, resolvedInputRef]);
2662
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
2663
- import_react_aria_components25.Switch,
2819
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2820
+ import_react_aria_components26.Switch,
2664
2821
  {
2665
2822
  "data-slot": "switch",
2666
2823
  "data-size": size,
@@ -2676,8 +2833,8 @@ function Switch({
2676
2833
  children: (state) => {
2677
2834
  const isThumbActive = state.isHovered || state.isPressed;
2678
2835
  const thumbOffset = state.isSelected ? isThumbActive ? styles.activeSelectedOffset : styles.selectedOffset : "0";
2679
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
2680
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
2836
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_jsx_runtime43.Fragment, { children: [
2837
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2681
2838
  "span",
2682
2839
  {
2683
2840
  "aria-hidden": "true",
@@ -2691,7 +2848,7 @@ function Switch({
2691
2848
  "group-data-focus-visible/switch:ring-3 group-data-focus-visible/switch:ring-ring/50",
2692
2849
  styles.control
2693
2850
  ),
2694
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
2851
+ children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2695
2852
  "span",
2696
2853
  {
2697
2854
  "data-slot": "switch-thumb",
@@ -2711,9 +2868,9 @@ function Switch({
2711
2868
  )
2712
2869
  }
2713
2870
  ),
2714
- children || description ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("span", { className: "grid gap-0.5 leading-tight", children: [
2715
- children ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { "data-slot": "switch-label", className: "font-medium", children: typeof children === "function" ? children(state) : children }) : null,
2716
- description ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { "data-slot": "switch-description", className: "text-xs font-normal text-muted-foreground", children: description }) : null
2871
+ children || description ? /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("span", { className: "grid gap-0.5 leading-tight", children: [
2872
+ children ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { "data-slot": "switch-label", className: "font-medium", children: typeof children === "function" ? children(state) : children }) : null,
2873
+ description ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { "data-slot": "switch-description", className: "text-xs font-normal text-muted-foreground", children: description }) : null
2717
2874
  ] }) : null
2718
2875
  ] });
2719
2876
  }
@@ -2722,9 +2879,9 @@ function Switch({
2722
2879
  }
2723
2880
 
2724
2881
  // src/ui/table/table.tsx
2725
- var import_jsx_runtime43 = require("react/jsx-runtime");
2882
+ var import_jsx_runtime44 = require("react/jsx-runtime");
2726
2883
  function Table({ className, ...props }) {
2727
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { "data-slot": "table-container", className: "relative w-full overflow-x-auto", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2884
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { "data-slot": "table-container", className: "relative w-full overflow-x-auto", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2728
2885
  "table",
2729
2886
  {
2730
2887
  "data-slot": "table",
@@ -2734,10 +2891,10 @@ function Table({ className, ...props }) {
2734
2891
  ) });
2735
2892
  }
2736
2893
  function TableHeader({ className, ...props }) {
2737
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("thead", { "data-slot": "table-header", className: cn("[&_tr]:border-b", className), ...props });
2894
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("thead", { "data-slot": "table-header", className: cn("[&_tr]:border-b", className), ...props });
2738
2895
  }
2739
2896
  function TableBody({ className, ...props }) {
2740
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2897
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2741
2898
  "tbody",
2742
2899
  {
2743
2900
  "data-slot": "table-body",
@@ -2747,7 +2904,7 @@ function TableBody({ className, ...props }) {
2747
2904
  );
2748
2905
  }
2749
2906
  function TableRow({ className, ...props }) {
2750
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2907
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2751
2908
  "tr",
2752
2909
  {
2753
2910
  "data-slot": "table-row",
@@ -2760,7 +2917,7 @@ function TableRow({ className, ...props }) {
2760
2917
  );
2761
2918
  }
2762
2919
  function TableHead({ className, ...props }) {
2763
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2920
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2764
2921
  "th",
2765
2922
  {
2766
2923
  "data-slot": "table-head",
@@ -2773,7 +2930,7 @@ function TableHead({ className, ...props }) {
2773
2930
  );
2774
2931
  }
2775
2932
  function TableCell({ className, ...props }) {
2776
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2933
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2777
2934
  "td",
2778
2935
  {
2779
2936
  "data-slot": "table-cell",
@@ -2783,7 +2940,7 @@ function TableCell({ className, ...props }) {
2783
2940
  );
2784
2941
  }
2785
2942
  function TableCaption({ className, ...props }) {
2786
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2943
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2787
2944
  "caption",
2788
2945
  {
2789
2946
  "data-slot": "table-caption",
@@ -2793,7 +2950,7 @@ function TableCaption({ className, ...props }) {
2793
2950
  );
2794
2951
  }
2795
2952
  function TableFooter({ className, ...props }) {
2796
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2953
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2797
2954
  "tfoot",
2798
2955
  {
2799
2956
  "data-slot": "table-footer",
@@ -2804,28 +2961,28 @@ function TableFooter({ className, ...props }) {
2804
2961
  }
2805
2962
 
2806
2963
  // src/ui/tabs/tabs.tsx
2807
- var import_react_aria_components26 = require("react-aria-components");
2808
- var import_jsx_runtime44 = require("react/jsx-runtime");
2964
+ var import_react_aria_components27 = require("react-aria-components");
2965
+ var import_jsx_runtime45 = require("react/jsx-runtime");
2809
2966
  function Tabs({ className, ...props }) {
2810
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_react_aria_components26.Tabs, { "data-slot": "tabs", className: (0, import_react_aria_components26.composeRenderProps)(className, (value) => cn("flex flex-col gap-2", value)), ...props });
2967
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_react_aria_components27.Tabs, { "data-slot": "tabs", className: (0, import_react_aria_components27.composeRenderProps)(className, (value) => cn("flex flex-col gap-2", value)), ...props });
2811
2968
  }
2812
2969
  function TabsList({ className, ...props }) {
2813
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_react_aria_components26.TabList, { "data-slot": "tabs-list", className: (0, import_react_aria_components26.composeRenderProps)(className, (value) => cn("inline-flex w-fit items-center gap-1 rounded-lg bg-muted p-1 text-muted-foreground", value)), ...props });
2970
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_react_aria_components27.TabList, { "data-slot": "tabs-list", className: (0, import_react_aria_components27.composeRenderProps)(className, (value) => cn("inline-flex w-fit items-center gap-1 rounded-lg bg-muted p-1 text-muted-foreground", value)), ...props });
2814
2971
  }
2815
2972
  function TabsTrigger({ className, ...props }) {
2816
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_react_aria_components26.Tab, { "data-slot": "tabs-trigger", className: (0, import_react_aria_components26.composeRenderProps)(className, (value) => cn("inline-flex h-7 items-center justify-center gap-1.5 rounded-md px-2.5 text-sm font-medium outline-none transition-colors data-hovered:text-foreground data-selected:bg-background data-selected:text-foreground data-selected:shadow-sm data-focus-visible:ring-3 data-focus-visible:ring-ring/50 data-disabled:cursor-not-allowed data-disabled:opacity-50", value)), ...props });
2973
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_react_aria_components27.Tab, { "data-slot": "tabs-trigger", className: (0, import_react_aria_components27.composeRenderProps)(className, (value) => cn("inline-flex h-7 items-center justify-center gap-1.5 rounded-md px-2.5 text-sm font-medium outline-none transition-colors data-hovered:text-foreground data-selected:bg-background data-selected:text-foreground data-selected:shadow-sm data-focus-visible:ring-3 data-focus-visible:ring-ring/50 data-disabled:cursor-not-allowed data-disabled:opacity-50", value)), ...props });
2817
2974
  }
2818
2975
  function TabsPanels({ className, ...props }) {
2819
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_react_aria_components26.TabPanels, { "data-slot": "tabs-panels", className: cn("min-w-0", className), ...props });
2976
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_react_aria_components27.TabPanels, { "data-slot": "tabs-panels", className: cn("min-w-0", className), ...props });
2820
2977
  }
2821
2978
  function TabsContent({ className, ...props }) {
2822
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_react_aria_components26.TabPanel, { "data-slot": "tabs-content", className: (0, import_react_aria_components26.composeRenderProps)(className, (value) => cn("text-sm outline-none data-focus-visible:ring-3 data-focus-visible:ring-ring/50", value)), ...props });
2979
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_react_aria_components27.TabPanel, { "data-slot": "tabs-content", className: (0, import_react_aria_components27.composeRenderProps)(className, (value) => cn("text-sm outline-none data-focus-visible:ring-3 data-focus-visible:ring-ring/50", value)), ...props });
2823
2980
  }
2824
2981
 
2825
2982
  // src/ui/toast/toast.tsx
2826
2983
  var import_react13 = require("react");
2827
2984
  var import_sileo = require("sileo");
2828
- var import_jsx_runtime45 = require("react/jsx-runtime");
2985
+ var import_jsx_runtime46 = require("react/jsx-runtime");
2829
2986
  function toSileoOptions({ title, description, duration, position, action }) {
2830
2987
  return {
2831
2988
  title,
@@ -2864,18 +3021,18 @@ function useToast() {
2864
3021
  return toast;
2865
3022
  }
2866
3023
  function ToastProvider({ children }) {
2867
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_jsx_runtime45.Fragment, { children: [
3024
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(import_jsx_runtime46.Fragment, { children: [
2868
3025
  children,
2869
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Toaster, {})
3026
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Toaster, {})
2870
3027
  ] });
2871
3028
  }
2872
3029
  function Toaster({ position }) {
2873
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_sileo.Toaster, { position, options: { fill: "var(--ui-secondary)" } });
3030
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_sileo.Toaster, { position, options: { fill: "var(--ui-secondary)" } });
2874
3031
  }
2875
3032
  function ToastViewport({ position, visiblePosition, className }) {
2876
3033
  void className;
2877
3034
  if (visiblePosition && visiblePosition !== position) return null;
2878
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Toaster, { position });
3035
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Toaster, { position });
2879
3036
  }
2880
3037
  function Toast({ id, title, description, variant = "default", action, state = "open", duration = 0, position, onDismiss }) {
2881
3038
  (0, import_react13.useEffect)(() => {
@@ -2890,15 +3047,15 @@ function Toast({ id, title, description, variant = "default", action, state = "o
2890
3047
  }
2891
3048
 
2892
3049
  // src/ui/toolbar/toolbar.tsx
2893
- var import_jsx_runtime46 = require("react/jsx-runtime");
3050
+ var import_jsx_runtime47 = require("react/jsx-runtime");
2894
3051
  function Toolbar({ className, ...props }) {
2895
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { role: "toolbar", "data-slot": "toolbar", className: cn("flex flex-wrap items-center gap-2", className), ...props });
3052
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { role: "toolbar", "data-slot": "toolbar", className: cn("flex flex-wrap items-center gap-2", className), ...props });
2896
3053
  }
2897
3054
  function ToolbarGroup({ className, ...props }) {
2898
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { "data-slot": "toolbar-group", className: cn("flex items-center gap-2", className), ...props });
3055
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { "data-slot": "toolbar-group", className: cn("flex items-center gap-2", className), ...props });
2899
3056
  }
2900
3057
  function ToolbarSpacer({ className, ...props }) {
2901
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { "aria-hidden": "true", className: cn("hidden flex-1 sm:block", className), ...props });
3058
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { "aria-hidden": "true", className: cn("hidden flex-1 sm:block", className), ...props });
2902
3059
  }
2903
3060
  // Annotate the CommonJS export names for ESM import in node:
2904
3061
  0 && (module.exports = {
@@ -2954,6 +3111,16 @@ function ToolbarSpacer({ className, ...props }) {
2954
3111
  CommandItem,
2955
3112
  CommandList,
2956
3113
  ConfirmDialog,
3114
+ Dialog,
3115
+ DialogClose,
3116
+ DialogContent,
3117
+ DialogDescription,
3118
+ DialogFooter,
3119
+ DialogHeader,
3120
+ DialogOverlay,
3121
+ DialogPortal,
3122
+ DialogTitle,
3123
+ DialogTrigger,
2957
3124
  Drawer,
2958
3125
  DrawerDescription,
2959
3126
  DrawerFooter,