@pactor-app/ui 1.20.0 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -900,45 +900,13 @@ function CommandItem({
900
900
  );
901
901
  }
902
902
 
903
- // src/ui/chart.tsx
904
- import { ResponsiveContainer } from "recharts";
905
- import { jsx as jsx14 } from "react/jsx-runtime";
906
- var CHART_TOKEN_COLORS = [
907
- "var(--chart-1)",
908
- "var(--chart-2)",
909
- "var(--chart-3)",
910
- "var(--chart-4)",
911
- "var(--chart-5)"
912
- ];
913
- function chartColor(index, colors) {
914
- if (colors && colors.length > 0) {
915
- return colors[index % colors.length];
916
- }
917
- return CHART_TOKEN_COLORS[index % CHART_TOKEN_COLORS.length];
918
- }
919
- function ChartContainer({
920
- className,
921
- children,
922
- ...props
923
- }) {
924
- return /* @__PURE__ */ jsx14(
925
- "div",
926
- {
927
- "data-slot": "chart-container",
928
- className: cn("h-64 w-full", className),
929
- ...props,
930
- children: /* @__PURE__ */ jsx14(ResponsiveContainer, { width: "100%", height: "100%", children })
931
- }
932
- );
933
- }
934
-
935
903
  // src/ui/textarea.tsx
936
- import { jsx as jsx15 } from "react/jsx-runtime";
904
+ import { jsx as jsx14 } from "react/jsx-runtime";
937
905
  function Textarea({
938
906
  className,
939
907
  ...props
940
908
  }) {
941
- return /* @__PURE__ */ jsx15(
909
+ return /* @__PURE__ */ jsx14(
942
910
  "textarea",
943
911
  {
944
912
  "data-slot": "textarea",
@@ -953,22 +921,22 @@ function Textarea({
953
921
 
954
922
  // src/ui/context-menu.tsx
955
923
  import { ContextMenu as ContextMenuPrimitive } from "@base-ui/react/context-menu";
956
- import { jsx as jsx16 } from "react/jsx-runtime";
924
+ import { jsx as jsx15 } from "react/jsx-runtime";
957
925
  function ContextMenu({
958
926
  ...props
959
927
  }) {
960
- return /* @__PURE__ */ jsx16(ContextMenuPrimitive.Root, { "data-slot": "context-menu", ...props });
928
+ return /* @__PURE__ */ jsx15(ContextMenuPrimitive.Root, { "data-slot": "context-menu", ...props });
961
929
  }
962
930
  function ContextMenuTrigger({
963
931
  ...props
964
932
  }) {
965
- return /* @__PURE__ */ jsx16(ContextMenuPrimitive.Trigger, { "data-slot": "context-menu-trigger", ...props });
933
+ return /* @__PURE__ */ jsx15(ContextMenuPrimitive.Trigger, { "data-slot": "context-menu-trigger", ...props });
966
934
  }
967
935
  function ContextMenuContent({
968
936
  className,
969
937
  ...props
970
938
  }) {
971
- return /* @__PURE__ */ jsx16(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx16(ContextMenuPrimitive.Positioner, { className: "isolate z-50", children: /* @__PURE__ */ jsx16(
939
+ return /* @__PURE__ */ jsx15(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx15(ContextMenuPrimitive.Positioner, { className: "isolate z-50", children: /* @__PURE__ */ jsx15(
972
940
  ContextMenuPrimitive.Popup,
973
941
  {
974
942
  "data-slot": "context-menu-content",
@@ -985,7 +953,7 @@ function ContextMenuItem({
985
953
  variant = "default",
986
954
  ...props
987
955
  }) {
988
- return /* @__PURE__ */ jsx16(
956
+ return /* @__PURE__ */ jsx15(
989
957
  ContextMenuPrimitive.Item,
990
958
  {
991
959
  "data-slot": "context-menu-item",
@@ -1002,7 +970,7 @@ function ContextMenuSeparator({
1002
970
  className,
1003
971
  ...props
1004
972
  }) {
1005
- return /* @__PURE__ */ jsx16(
973
+ return /* @__PURE__ */ jsx15(
1006
974
  ContextMenuPrimitive.Separator,
1007
975
  {
1008
976
  "data-slot": "context-menu-separator",
@@ -1013,14 +981,14 @@ function ContextMenuSeparator({
1013
981
  }
1014
982
 
1015
983
  // src/ui/table.tsx
1016
- import { jsx as jsx17 } from "react/jsx-runtime";
984
+ import { jsx as jsx16 } from "react/jsx-runtime";
1017
985
  function Table({ className, ...props }) {
1018
- return /* @__PURE__ */ jsx17(
986
+ return /* @__PURE__ */ jsx16(
1019
987
  "div",
1020
988
  {
1021
989
  "data-slot": "table-container",
1022
990
  className: "relative w-full overflow-x-auto",
1023
- children: /* @__PURE__ */ jsx17(
991
+ children: /* @__PURE__ */ jsx16(
1024
992
  "table",
1025
993
  {
1026
994
  "data-slot": "table",
@@ -1032,7 +1000,7 @@ function Table({ className, ...props }) {
1032
1000
  );
1033
1001
  }
1034
1002
  function TableHeader({ className, ...props }) {
1035
- return /* @__PURE__ */ jsx17(
1003
+ return /* @__PURE__ */ jsx16(
1036
1004
  "thead",
1037
1005
  {
1038
1006
  "data-slot": "table-header",
@@ -1042,7 +1010,7 @@ function TableHeader({ className, ...props }) {
1042
1010
  );
1043
1011
  }
1044
1012
  function TableBody({ className, ...props }) {
1045
- return /* @__PURE__ */ jsx17(
1013
+ return /* @__PURE__ */ jsx16(
1046
1014
  "tbody",
1047
1015
  {
1048
1016
  "data-slot": "table-body",
@@ -1052,7 +1020,7 @@ function TableBody({ className, ...props }) {
1052
1020
  );
1053
1021
  }
1054
1022
  function TableFooter({ className, ...props }) {
1055
- return /* @__PURE__ */ jsx17(
1023
+ return /* @__PURE__ */ jsx16(
1056
1024
  "tfoot",
1057
1025
  {
1058
1026
  "data-slot": "table-footer",
@@ -1065,7 +1033,7 @@ function TableFooter({ className, ...props }) {
1065
1033
  );
1066
1034
  }
1067
1035
  function TableRow({ className, ...props }) {
1068
- return /* @__PURE__ */ jsx17(
1036
+ return /* @__PURE__ */ jsx16(
1069
1037
  "tr",
1070
1038
  {
1071
1039
  "data-slot": "table-row",
@@ -1078,7 +1046,7 @@ function TableRow({ className, ...props }) {
1078
1046
  );
1079
1047
  }
1080
1048
  function TableHead({ className, ...props }) {
1081
- return /* @__PURE__ */ jsx17(
1049
+ return /* @__PURE__ */ jsx16(
1082
1050
  "th",
1083
1051
  {
1084
1052
  "data-slot": "table-head",
@@ -1091,7 +1059,7 @@ function TableHead({ className, ...props }) {
1091
1059
  );
1092
1060
  }
1093
1061
  function TableCell({ className, ...props }) {
1094
- return /* @__PURE__ */ jsx17(
1062
+ return /* @__PURE__ */ jsx16(
1095
1063
  "td",
1096
1064
  {
1097
1065
  "data-slot": "table-cell",
@@ -1107,7 +1075,7 @@ function TableCaption({
1107
1075
  className,
1108
1076
  ...props
1109
1077
  }) {
1110
- return /* @__PURE__ */ jsx17(
1078
+ return /* @__PURE__ */ jsx16(
1111
1079
  "caption",
1112
1080
  {
1113
1081
  "data-slot": "table-caption",
@@ -1120,16 +1088,16 @@ function TableCaption({
1120
1088
  // src/ui/dropdown-menu.tsx
1121
1089
  import { Menu as MenuPrimitive } from "@base-ui/react/menu";
1122
1090
  import { ChevronRightIcon as ChevronRightIcon4 } from "lucide-react";
1123
- import { jsx as jsx18, jsxs as jsxs7 } from "react/jsx-runtime";
1091
+ import { jsx as jsx17, jsxs as jsxs7 } from "react/jsx-runtime";
1124
1092
  function DropdownMenu({
1125
1093
  ...props
1126
1094
  }) {
1127
- return /* @__PURE__ */ jsx18(MenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
1095
+ return /* @__PURE__ */ jsx17(MenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
1128
1096
  }
1129
1097
  function DropdownMenuTrigger({
1130
1098
  ...props
1131
1099
  }) {
1132
- return /* @__PURE__ */ jsx18(MenuPrimitive.Trigger, { "data-slot": "dropdown-menu-trigger", ...props });
1100
+ return /* @__PURE__ */ jsx17(MenuPrimitive.Trigger, { "data-slot": "dropdown-menu-trigger", ...props });
1133
1101
  }
1134
1102
  function DropdownMenuContent({
1135
1103
  className,
@@ -1138,14 +1106,14 @@ function DropdownMenuContent({
1138
1106
  sideOffset = 4,
1139
1107
  ...props
1140
1108
  }) {
1141
- return /* @__PURE__ */ jsx18(MenuPrimitive.Portal, { children: /* @__PURE__ */ jsx18(
1109
+ return /* @__PURE__ */ jsx17(MenuPrimitive.Portal, { children: /* @__PURE__ */ jsx17(
1142
1110
  MenuPrimitive.Positioner,
1143
1111
  {
1144
1112
  align,
1145
1113
  side,
1146
1114
  sideOffset,
1147
1115
  className: "isolate z-50",
1148
- children: /* @__PURE__ */ jsx18(
1116
+ children: /* @__PURE__ */ jsx17(
1149
1117
  MenuPrimitive.Popup,
1150
1118
  {
1151
1119
  "data-slot": "dropdown-menu-content",
@@ -1164,7 +1132,7 @@ function DropdownMenuItem({
1164
1132
  variant = "default",
1165
1133
  ...props
1166
1134
  }) {
1167
- return /* @__PURE__ */ jsx18(
1135
+ return /* @__PURE__ */ jsx17(
1168
1136
  MenuPrimitive.Item,
1169
1137
  {
1170
1138
  "data-slot": "dropdown-menu-item",
@@ -1181,7 +1149,7 @@ function DropdownMenuSeparator({
1181
1149
  className,
1182
1150
  ...props
1183
1151
  }) {
1184
- return /* @__PURE__ */ jsx18(
1152
+ return /* @__PURE__ */ jsx17(
1185
1153
  MenuPrimitive.Separator,
1186
1154
  {
1187
1155
  "data-slot": "dropdown-menu-separator",
@@ -1193,7 +1161,7 @@ function DropdownMenuSeparator({
1193
1161
  function DropdownMenuSub({
1194
1162
  ...props
1195
1163
  }) {
1196
- return /* @__PURE__ */ jsx18(MenuPrimitive.SubmenuRoot, { "data-slot": "dropdown-menu-sub", ...props });
1164
+ return /* @__PURE__ */ jsx17(MenuPrimitive.SubmenuRoot, { "data-slot": "dropdown-menu-sub", ...props });
1197
1165
  }
1198
1166
  function DropdownMenuSubTrigger({
1199
1167
  className,
@@ -1211,7 +1179,7 @@ function DropdownMenuSubTrigger({
1211
1179
  ...props,
1212
1180
  children: [
1213
1181
  children,
1214
- /* @__PURE__ */ jsx18(ChevronRightIcon4, { className: "ml-auto" })
1182
+ /* @__PURE__ */ jsx17(ChevronRightIcon4, { className: "ml-auto" })
1215
1183
  ]
1216
1184
  }
1217
1185
  );
@@ -1221,7 +1189,7 @@ function DropdownMenuSubContent({
1221
1189
  sideOffset = 2,
1222
1190
  ...props
1223
1191
  }) {
1224
- return /* @__PURE__ */ jsx18(MenuPrimitive.Portal, { children: /* @__PURE__ */ jsx18(MenuPrimitive.Positioner, { sideOffset, className: "isolate z-50", children: /* @__PURE__ */ jsx18(
1192
+ return /* @__PURE__ */ jsx17(MenuPrimitive.Portal, { children: /* @__PURE__ */ jsx17(MenuPrimitive.Positioner, { sideOffset, className: "isolate z-50", children: /* @__PURE__ */ jsx17(
1225
1193
  MenuPrimitive.Popup,
1226
1194
  {
1227
1195
  "data-slot": "dropdown-menu-sub-content",
@@ -1235,9 +1203,9 @@ function DropdownMenuSubContent({
1235
1203
  }
1236
1204
 
1237
1205
  // src/ui/empty.tsx
1238
- import { jsx as jsx19 } from "react/jsx-runtime";
1206
+ import { jsx as jsx18 } from "react/jsx-runtime";
1239
1207
  function Empty({ className, ...props }) {
1240
- return /* @__PURE__ */ jsx19(
1208
+ return /* @__PURE__ */ jsx18(
1241
1209
  "div",
1242
1210
  {
1243
1211
  "data-slot": "empty",
@@ -1250,7 +1218,7 @@ function Empty({ className, ...props }) {
1250
1218
  );
1251
1219
  }
1252
1220
  function EmptyHeader({ className, ...props }) {
1253
- return /* @__PURE__ */ jsx19(
1221
+ return /* @__PURE__ */ jsx18(
1254
1222
  "div",
1255
1223
  {
1256
1224
  "data-slot": "empty-header",
@@ -1260,7 +1228,7 @@ function EmptyHeader({ className, ...props }) {
1260
1228
  );
1261
1229
  }
1262
1230
  function EmptyTitle({ className, ...props }) {
1263
- return /* @__PURE__ */ jsx19(
1231
+ return /* @__PURE__ */ jsx18(
1264
1232
  "div",
1265
1233
  {
1266
1234
  "data-slot": "empty-title",
@@ -1270,7 +1238,7 @@ function EmptyTitle({ className, ...props }) {
1270
1238
  );
1271
1239
  }
1272
1240
  function EmptyDescription({ className, ...props }) {
1273
- return /* @__PURE__ */ jsx19(
1241
+ return /* @__PURE__ */ jsx18(
1274
1242
  "p",
1275
1243
  {
1276
1244
  "data-slot": "empty-description",
@@ -1280,7 +1248,7 @@ function EmptyDescription({ className, ...props }) {
1280
1248
  );
1281
1249
  }
1282
1250
  function EmptyContent({ className, ...props }) {
1283
- return /* @__PURE__ */ jsx19(
1251
+ return /* @__PURE__ */ jsx18(
1284
1252
  "div",
1285
1253
  {
1286
1254
  "data-slot": "empty-content",
@@ -1295,9 +1263,9 @@ function EmptyContent({ className, ...props }) {
1295
1263
 
1296
1264
  // src/ui/field.tsx
1297
1265
  import { Field as FieldPrimitive } from "@base-ui/react/field";
1298
- import { jsx as jsx20 } from "react/jsx-runtime";
1266
+ import { jsx as jsx19 } from "react/jsx-runtime";
1299
1267
  function Field({ className, ...props }) {
1300
- return /* @__PURE__ */ jsx20(
1268
+ return /* @__PURE__ */ jsx19(
1301
1269
  FieldPrimitive.Root,
1302
1270
  {
1303
1271
  "data-slot": "field",
@@ -1307,7 +1275,7 @@ function Field({ className, ...props }) {
1307
1275
  );
1308
1276
  }
1309
1277
  function FieldLabel({ className, ...props }) {
1310
- return /* @__PURE__ */ jsx20(
1278
+ return /* @__PURE__ */ jsx19(
1311
1279
  FieldPrimitive.Label,
1312
1280
  {
1313
1281
  "data-slot": "field-label",
@@ -1317,7 +1285,7 @@ function FieldLabel({ className, ...props }) {
1317
1285
  );
1318
1286
  }
1319
1287
  function FieldDescription({ className, ...props }) {
1320
- return /* @__PURE__ */ jsx20(
1288
+ return /* @__PURE__ */ jsx19(
1321
1289
  FieldPrimitive.Description,
1322
1290
  {
1323
1291
  "data-slot": "field-description",
@@ -1327,7 +1295,7 @@ function FieldDescription({ className, ...props }) {
1327
1295
  );
1328
1296
  }
1329
1297
  function FieldError({ className, ...props }) {
1330
- return /* @__PURE__ */ jsx20(
1298
+ return /* @__PURE__ */ jsx19(
1331
1299
  FieldPrimitive.Error,
1332
1300
  {
1333
1301
  "data-slot": "field-error",
@@ -1339,16 +1307,16 @@ function FieldError({ className, ...props }) {
1339
1307
 
1340
1308
  // src/ui/hover-card.tsx
1341
1309
  import { PreviewCard as PreviewCardPrimitive } from "@base-ui/react/preview-card";
1342
- import { jsx as jsx21 } from "react/jsx-runtime";
1310
+ import { jsx as jsx20 } from "react/jsx-runtime";
1343
1311
  function HoverCard({
1344
1312
  ...props
1345
1313
  }) {
1346
- return /* @__PURE__ */ jsx21(PreviewCardPrimitive.Root, { "data-slot": "hover-card", ...props });
1314
+ return /* @__PURE__ */ jsx20(PreviewCardPrimitive.Root, { "data-slot": "hover-card", ...props });
1347
1315
  }
1348
1316
  function HoverCardTrigger({
1349
1317
  ...props
1350
1318
  }) {
1351
- return /* @__PURE__ */ jsx21(PreviewCardPrimitive.Trigger, { "data-slot": "hover-card-trigger", ...props });
1319
+ return /* @__PURE__ */ jsx20(PreviewCardPrimitive.Trigger, { "data-slot": "hover-card-trigger", ...props });
1352
1320
  }
1353
1321
  function HoverCardContent({
1354
1322
  className,
@@ -1357,14 +1325,14 @@ function HoverCardContent({
1357
1325
  sideOffset = 4,
1358
1326
  ...props
1359
1327
  }) {
1360
- return /* @__PURE__ */ jsx21(PreviewCardPrimitive.Portal, { children: /* @__PURE__ */ jsx21(
1328
+ return /* @__PURE__ */ jsx20(PreviewCardPrimitive.Portal, { children: /* @__PURE__ */ jsx20(
1361
1329
  PreviewCardPrimitive.Positioner,
1362
1330
  {
1363
1331
  align,
1364
1332
  side,
1365
1333
  sideOffset,
1366
1334
  className: "isolate z-50",
1367
- children: /* @__PURE__ */ jsx21(
1335
+ children: /* @__PURE__ */ jsx20(
1368
1336
  PreviewCardPrimitive.Popup,
1369
1337
  {
1370
1338
  "data-slot": "hover-card-content",
@@ -1380,9 +1348,9 @@ function HoverCardContent({
1380
1348
  }
1381
1349
 
1382
1350
  // src/ui/input-group.tsx
1383
- import { jsx as jsx22 } from "react/jsx-runtime";
1351
+ import { jsx as jsx21 } from "react/jsx-runtime";
1384
1352
  function InputGroup({ className, ...props }) {
1385
- return /* @__PURE__ */ jsx22(
1353
+ return /* @__PURE__ */ jsx21(
1386
1354
  "div",
1387
1355
  {
1388
1356
  "data-slot": "input-group",
@@ -1404,7 +1372,7 @@ function InputGroupAddon({
1404
1372
  align = "inline-start",
1405
1373
  ...props
1406
1374
  }) {
1407
- return /* @__PURE__ */ jsx22(
1375
+ return /* @__PURE__ */ jsx21(
1408
1376
  "div",
1409
1377
  {
1410
1378
  role: "group",
@@ -1423,7 +1391,7 @@ function InputGroupInput({
1423
1391
  className,
1424
1392
  ...props
1425
1393
  }) {
1426
- return /* @__PURE__ */ jsx22(
1394
+ return /* @__PURE__ */ jsx21(
1427
1395
  "input",
1428
1396
  {
1429
1397
  "data-slot": "input-group-input",
@@ -1440,13 +1408,13 @@ function InputGroupInput({
1440
1408
  import { OTPInput, OTPInputContext } from "input-otp";
1441
1409
  import { MinusIcon } from "lucide-react";
1442
1410
  import * as React3 from "react";
1443
- import { jsx as jsx23, jsxs as jsxs8 } from "react/jsx-runtime";
1411
+ import { jsx as jsx22, jsxs as jsxs8 } from "react/jsx-runtime";
1444
1412
  function InputOTP({
1445
1413
  className,
1446
1414
  containerClassName,
1447
1415
  ...props
1448
1416
  }) {
1449
- return /* @__PURE__ */ jsx23(
1417
+ return /* @__PURE__ */ jsx22(
1450
1418
  OTPInput,
1451
1419
  {
1452
1420
  "data-slot": "input-otp",
@@ -1460,7 +1428,7 @@ function InputOTP({
1460
1428
  );
1461
1429
  }
1462
1430
  function InputOTPGroup({ className, ...props }) {
1463
- return /* @__PURE__ */ jsx23(
1431
+ return /* @__PURE__ */ jsx22(
1464
1432
  "div",
1465
1433
  {
1466
1434
  "data-slot": "input-otp-group",
@@ -1488,19 +1456,19 @@ function InputOTPSlot({
1488
1456
  ...props,
1489
1457
  children: [
1490
1458
  char,
1491
- hasFakeCaret ? /* @__PURE__ */ jsx23("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx23("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) }) : null
1459
+ hasFakeCaret ? /* @__PURE__ */ jsx22("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx22("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) }) : null
1492
1460
  ]
1493
1461
  }
1494
1462
  );
1495
1463
  }
1496
1464
  function InputOTPSeparator({ ...props }) {
1497
- return /* @__PURE__ */ jsx23("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ jsx23(MinusIcon, {}) });
1465
+ return /* @__PURE__ */ jsx22("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ jsx22(MinusIcon, {}) });
1498
1466
  }
1499
1467
 
1500
1468
  // src/ui/item.tsx
1501
- import { jsx as jsx24 } from "react/jsx-runtime";
1469
+ import { jsx as jsx23 } from "react/jsx-runtime";
1502
1470
  function Item({ className, ...props }) {
1503
- return /* @__PURE__ */ jsx24(
1471
+ return /* @__PURE__ */ jsx23(
1504
1472
  "div",
1505
1473
  {
1506
1474
  "data-slot": "item",
@@ -1513,7 +1481,7 @@ function Item({ className, ...props }) {
1513
1481
  );
1514
1482
  }
1515
1483
  function ItemMedia({ className, ...props }) {
1516
- return /* @__PURE__ */ jsx24(
1484
+ return /* @__PURE__ */ jsx23(
1517
1485
  "div",
1518
1486
  {
1519
1487
  "data-slot": "item-media",
@@ -1526,7 +1494,7 @@ function ItemMedia({ className, ...props }) {
1526
1494
  );
1527
1495
  }
1528
1496
  function ItemContent({ className, ...props }) {
1529
- return /* @__PURE__ */ jsx24(
1497
+ return /* @__PURE__ */ jsx23(
1530
1498
  "div",
1531
1499
  {
1532
1500
  "data-slot": "item-content",
@@ -1536,7 +1504,7 @@ function ItemContent({ className, ...props }) {
1536
1504
  );
1537
1505
  }
1538
1506
  function ItemTitle({ className, ...props }) {
1539
- return /* @__PURE__ */ jsx24(
1507
+ return /* @__PURE__ */ jsx23(
1540
1508
  "div",
1541
1509
  {
1542
1510
  "data-slot": "item-title",
@@ -1546,7 +1514,7 @@ function ItemTitle({ className, ...props }) {
1546
1514
  );
1547
1515
  }
1548
1516
  function ItemDescription({ className, ...props }) {
1549
- return /* @__PURE__ */ jsx24(
1517
+ return /* @__PURE__ */ jsx23(
1550
1518
  "p",
1551
1519
  {
1552
1520
  "data-slot": "item-description",
@@ -1556,7 +1524,7 @@ function ItemDescription({ className, ...props }) {
1556
1524
  );
1557
1525
  }
1558
1526
  function ItemActions({ className, ...props }) {
1559
- return /* @__PURE__ */ jsx24(
1527
+ return /* @__PURE__ */ jsx23(
1560
1528
  "div",
1561
1529
  {
1562
1530
  "data-slot": "item-actions",
@@ -1567,9 +1535,9 @@ function ItemActions({ className, ...props }) {
1567
1535
  }
1568
1536
 
1569
1537
  // src/ui/kbd.tsx
1570
- import { jsx as jsx25 } from "react/jsx-runtime";
1538
+ import { jsx as jsx24 } from "react/jsx-runtime";
1571
1539
  function Kbd({ className, ...props }) {
1572
- return /* @__PURE__ */ jsx25(
1540
+ return /* @__PURE__ */ jsx24(
1573
1541
  "kbd",
1574
1542
  {
1575
1543
  "data-slot": "kbd",
@@ -1583,12 +1551,12 @@ function Kbd({ className, ...props }) {
1583
1551
  }
1584
1552
 
1585
1553
  // src/ui/label.tsx
1586
- import { jsx as jsx26 } from "react/jsx-runtime";
1554
+ import { jsx as jsx25 } from "react/jsx-runtime";
1587
1555
  function Label({
1588
1556
  className,
1589
1557
  ...props
1590
1558
  }) {
1591
- return /* @__PURE__ */ jsx26(
1559
+ return /* @__PURE__ */ jsx25(
1592
1560
  "label",
1593
1561
  {
1594
1562
  "data-slot": "label",
@@ -1601,6 +1569,22 @@ function Label({
1601
1569
  );
1602
1570
  }
1603
1571
 
1572
+ // src/ui/spinner.tsx
1573
+ import { Loader2Icon } from "lucide-react";
1574
+ import { jsx as jsx26 } from "react/jsx-runtime";
1575
+ function Spinner({ className, ...props }) {
1576
+ return /* @__PURE__ */ jsx26(
1577
+ Loader2Icon,
1578
+ {
1579
+ role: "status",
1580
+ "aria-label": "Loading",
1581
+ "data-slot": "spinner",
1582
+ className: cn("size-4 animate-spin", className),
1583
+ ...props
1584
+ }
1585
+ );
1586
+ }
1587
+
1604
1588
  // src/ui/menubar.tsx
1605
1589
  import { Menu as MenuPrimitive2 } from "@base-ui/react/menu";
1606
1590
  import { Menubar as MenubarPrimitive } from "@base-ui/react/menubar";
@@ -1702,17 +1686,93 @@ function MenubarSeparator({
1702
1686
  );
1703
1687
  }
1704
1688
 
1689
+ // src/ui/toast.tsx
1690
+ import { Toast as ToastPrimitive } from "@base-ui/react/toast";
1691
+ import { XIcon } from "lucide-react";
1692
+ import { jsx as jsx28, jsxs as jsxs9 } from "react/jsx-runtime";
1693
+ var toastManager = ToastPrimitive.createToastManager();
1694
+ function toast(message, options = {}) {
1695
+ return toastManager.add({
1696
+ title: message,
1697
+ description: options.description,
1698
+ type: options.variant ?? "info",
1699
+ timeout: options.duration
1700
+ });
1701
+ }
1702
+ var toastVariantClass = {
1703
+ success: "border-l-4 border-l-success",
1704
+ error: "border-l-4 border-l-destructive",
1705
+ info: "border-l-4 border-l-info",
1706
+ warning: "border-l-4 border-l-warning"
1707
+ };
1708
+ function ToasterViewport({ className }) {
1709
+ const { toasts } = ToastPrimitive.useToastManager();
1710
+ return /* @__PURE__ */ jsx28(ToastPrimitive.Portal, { children: /* @__PURE__ */ jsx28(
1711
+ ToastPrimitive.Viewport,
1712
+ {
1713
+ "data-slot": "toast-viewport",
1714
+ className: cn(
1715
+ "fixed top-4 right-4 z-[100] flex w-80 flex-col gap-2 outline-none",
1716
+ className
1717
+ ),
1718
+ children: toasts.map((item) => /* @__PURE__ */ jsx28(
1719
+ ToastPrimitive.Root,
1720
+ {
1721
+ toast: item,
1722
+ "data-slot": "toast",
1723
+ "data-type": item.type ?? "info",
1724
+ className: cn(
1725
+ "rounded-md border border-border bg-popover px-4 py-3 text-sm text-popover-foreground shadow-md shadow-(color:--shadow-color) transition-[opacity,transform] duration-200 data-ending-style:animate-toast-out data-starting-style:animate-toast-in",
1726
+ toastVariantClass[item.type ?? "info"] ?? toastVariantClass.info
1727
+ ),
1728
+ children: /* @__PURE__ */ jsxs9(ToastPrimitive.Content, { className: "flex items-start justify-between gap-2", children: [
1729
+ /* @__PURE__ */ jsxs9("div", { className: "grid gap-0.5", children: [
1730
+ /* @__PURE__ */ jsx28(
1731
+ ToastPrimitive.Title,
1732
+ {
1733
+ "data-slot": "toast-title",
1734
+ className: "font-medium"
1735
+ }
1736
+ ),
1737
+ /* @__PURE__ */ jsx28(
1738
+ ToastPrimitive.Description,
1739
+ {
1740
+ "data-slot": "toast-description",
1741
+ className: "text-muted-foreground"
1742
+ }
1743
+ )
1744
+ ] }),
1745
+ /* @__PURE__ */ jsx28(
1746
+ ToastPrimitive.Close,
1747
+ {
1748
+ "data-slot": "toast-close",
1749
+ "aria-label": "Close",
1750
+ className: "cursor-pointer rounded-xs opacity-70 transition-opacity hover:opacity-100 focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none [&_svg]:size-3.5",
1751
+ children: /* @__PURE__ */ jsx28(XIcon, {})
1752
+ }
1753
+ )
1754
+ ] })
1755
+ },
1756
+ item.id
1757
+ ))
1758
+ }
1759
+ ) });
1760
+ }
1761
+ function Toaster({ className }) {
1762
+ return /* @__PURE__ */ jsx28(ToastPrimitive.Provider, { toastManager, children: /* @__PURE__ */ jsx28(ToasterViewport, { className }) });
1763
+ }
1764
+
1705
1765
  // src/ui/navigation-menu.tsx
1706
1766
  import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/navigation-menu";
1707
1767
  import { ChevronDownIcon as ChevronDownIcon2 } from "lucide-react";
1708
1768
  import { cva as cva3 } from "class-variance-authority";
1709
- import { jsx as jsx28, jsxs as jsxs9 } from "react/jsx-runtime";
1769
+ import { jsx as jsx29, jsxs as jsxs10 } from "react/jsx-runtime";
1710
1770
  function NavigationMenu({
1711
1771
  className,
1712
1772
  children,
1713
1773
  ...props
1714
1774
  }) {
1715
- return /* @__PURE__ */ jsxs9(
1775
+ return /* @__PURE__ */ jsxs10(
1716
1776
  NavigationMenuPrimitive.Root,
1717
1777
  {
1718
1778
  "data-slot": "navigation-menu",
@@ -1720,7 +1780,7 @@ function NavigationMenu({
1720
1780
  ...props,
1721
1781
  children: [
1722
1782
  children,
1723
- /* @__PURE__ */ jsx28(NavigationMenuViewport, {})
1783
+ /* @__PURE__ */ jsx29(NavigationMenuViewport, {})
1724
1784
  ]
1725
1785
  }
1726
1786
  );
@@ -1729,7 +1789,7 @@ function NavigationMenuList({
1729
1789
  className,
1730
1790
  ...props
1731
1791
  }) {
1732
- return /* @__PURE__ */ jsx28(
1792
+ return /* @__PURE__ */ jsx29(
1733
1793
  NavigationMenuPrimitive.List,
1734
1794
  {
1735
1795
  "data-slot": "navigation-menu-list",
@@ -1742,7 +1802,7 @@ function NavigationMenuItem({
1742
1802
  className,
1743
1803
  ...props
1744
1804
  }) {
1745
- return /* @__PURE__ */ jsx28(
1805
+ return /* @__PURE__ */ jsx29(
1746
1806
  NavigationMenuPrimitive.Item,
1747
1807
  {
1748
1808
  "data-slot": "navigation-menu-item",
@@ -1759,7 +1819,7 @@ function NavigationMenuTrigger({
1759
1819
  children,
1760
1820
  ...props
1761
1821
  }) {
1762
- return /* @__PURE__ */ jsxs9(
1822
+ return /* @__PURE__ */ jsxs10(
1763
1823
  NavigationMenuPrimitive.Trigger,
1764
1824
  {
1765
1825
  "data-slot": "navigation-menu-trigger",
@@ -1767,7 +1827,7 @@ function NavigationMenuTrigger({
1767
1827
  ...props,
1768
1828
  children: [
1769
1829
  children,
1770
- /* @__PURE__ */ jsx28(
1830
+ /* @__PURE__ */ jsx29(
1771
1831
  ChevronDownIcon2,
1772
1832
  {
1773
1833
  className: "relative top-px ml-1 size-3 transition-transform duration-200 group-data-open/navigation-menu-trigger:rotate-180",
@@ -1782,7 +1842,7 @@ function NavigationMenuContent({
1782
1842
  className,
1783
1843
  ...props
1784
1844
  }) {
1785
- return /* @__PURE__ */ jsx28(
1845
+ return /* @__PURE__ */ jsx29(
1786
1846
  NavigationMenuPrimitive.Content,
1787
1847
  {
1788
1848
  "data-slot": "navigation-menu-content",
@@ -1795,13 +1855,13 @@ function NavigationMenuContent({
1795
1855
  );
1796
1856
  }
1797
1857
  function NavigationMenuViewport({ className }) {
1798
- return /* @__PURE__ */ jsx28(NavigationMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx28(
1858
+ return /* @__PURE__ */ jsx29(NavigationMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx29(
1799
1859
  NavigationMenuPrimitive.Positioner,
1800
1860
  {
1801
1861
  side: "bottom",
1802
1862
  align: "start",
1803
1863
  className: "isolate z-50",
1804
- children: /* @__PURE__ */ jsx28(
1864
+ children: /* @__PURE__ */ jsx29(
1805
1865
  NavigationMenuPrimitive.Popup,
1806
1866
  {
1807
1867
  "data-slot": "navigation-menu-popup",
@@ -1809,7 +1869,7 @@ function NavigationMenuViewport({ className }) {
1809
1869
  "origin-(--transform-origin) overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fill-mode-forwards data-closed:fade-out-0 data-closed:zoom-out-95",
1810
1870
  className
1811
1871
  ),
1812
- children: /* @__PURE__ */ jsx28(NavigationMenuPrimitive.Viewport, { "data-slot": "navigation-menu-viewport" })
1872
+ children: /* @__PURE__ */ jsx29(NavigationMenuPrimitive.Viewport, { "data-slot": "navigation-menu-viewport" })
1813
1873
  }
1814
1874
  )
1815
1875
  }
@@ -1819,7 +1879,7 @@ function NavigationMenuLink({
1819
1879
  className,
1820
1880
  ...props
1821
1881
  }) {
1822
- return /* @__PURE__ */ jsx28(
1882
+ return /* @__PURE__ */ jsx29(
1823
1883
  NavigationMenuPrimitive.Link,
1824
1884
  {
1825
1885
  "data-slot": "navigation-menu-link",
@@ -1834,9 +1894,9 @@ function NavigationMenuLink({
1834
1894
 
1835
1895
  // src/ui/pagination.tsx
1836
1896
  import { ChevronLeftIcon as ChevronLeftIcon3, ChevronRightIcon as ChevronRightIcon5, MoreHorizontalIcon as MoreHorizontalIcon2 } from "lucide-react";
1837
- import { jsx as jsx29, jsxs as jsxs10 } from "react/jsx-runtime";
1897
+ import { jsx as jsx30, jsxs as jsxs11 } from "react/jsx-runtime";
1838
1898
  function Pagination({ className, ...props }) {
1839
- return /* @__PURE__ */ jsx29(
1899
+ return /* @__PURE__ */ jsx30(
1840
1900
  "nav",
1841
1901
  {
1842
1902
  role: "navigation",
@@ -1848,7 +1908,7 @@ function Pagination({ className, ...props }) {
1848
1908
  );
1849
1909
  }
1850
1910
  function PaginationContent({ className, ...props }) {
1851
- return /* @__PURE__ */ jsx29(
1911
+ return /* @__PURE__ */ jsx30(
1852
1912
  "ul",
1853
1913
  {
1854
1914
  "data-slot": "pagination-content",
@@ -1858,7 +1918,7 @@ function PaginationContent({ className, ...props }) {
1858
1918
  );
1859
1919
  }
1860
1920
  function PaginationItem({ ...props }) {
1861
- return /* @__PURE__ */ jsx29("li", { "data-slot": "pagination-item", ...props });
1921
+ return /* @__PURE__ */ jsx30("li", { "data-slot": "pagination-item", ...props });
1862
1922
  }
1863
1923
  function PaginationLink({
1864
1924
  className,
@@ -1866,7 +1926,7 @@ function PaginationLink({
1866
1926
  disabled,
1867
1927
  ...props
1868
1928
  }) {
1869
- return /* @__PURE__ */ jsx29(
1929
+ return /* @__PURE__ */ jsx30(
1870
1930
  "a",
1871
1931
  {
1872
1932
  "aria-current": isActive ? "page" : void 0,
@@ -1890,15 +1950,15 @@ function PaginationPrevious({
1890
1950
  className,
1891
1951
  ...props
1892
1952
  }) {
1893
- return /* @__PURE__ */ jsxs10(
1953
+ return /* @__PURE__ */ jsxs11(
1894
1954
  PaginationLink,
1895
1955
  {
1896
1956
  "aria-label": "Go to previous page",
1897
1957
  className: cn("gap-1 px-2.5 sm:pl-2.5", className),
1898
1958
  ...props,
1899
1959
  children: [
1900
- /* @__PURE__ */ jsx29(ChevronLeftIcon3, {}),
1901
- /* @__PURE__ */ jsx29("span", { className: "hidden sm:block", children: "Previous" })
1960
+ /* @__PURE__ */ jsx30(ChevronLeftIcon3, {}),
1961
+ /* @__PURE__ */ jsx30("span", { className: "hidden sm:block", children: "Previous" })
1902
1962
  ]
1903
1963
  }
1904
1964
  );
@@ -1907,21 +1967,21 @@ function PaginationNext({
1907
1967
  className,
1908
1968
  ...props
1909
1969
  }) {
1910
- return /* @__PURE__ */ jsxs10(
1970
+ return /* @__PURE__ */ jsxs11(
1911
1971
  PaginationLink,
1912
1972
  {
1913
1973
  "aria-label": "Go to next page",
1914
1974
  className: cn("gap-1 px-2.5 sm:pr-2.5", className),
1915
1975
  ...props,
1916
1976
  children: [
1917
- /* @__PURE__ */ jsx29("span", { className: "hidden sm:block", children: "Next" }),
1918
- /* @__PURE__ */ jsx29(ChevronRightIcon5, {})
1977
+ /* @__PURE__ */ jsx30("span", { className: "hidden sm:block", children: "Next" }),
1978
+ /* @__PURE__ */ jsx30(ChevronRightIcon5, {})
1919
1979
  ]
1920
1980
  }
1921
1981
  );
1922
1982
  }
1923
1983
  function PaginationEllipsis({ className, ...props }) {
1924
- return /* @__PURE__ */ jsxs10(
1984
+ return /* @__PURE__ */ jsxs11(
1925
1985
  "span",
1926
1986
  {
1927
1987
  "aria-hidden": true,
@@ -1929,8 +1989,8 @@ function PaginationEllipsis({ className, ...props }) {
1929
1989
  className: cn("flex size-9 items-center justify-center", className),
1930
1990
  ...props,
1931
1991
  children: [
1932
- /* @__PURE__ */ jsx29(MoreHorizontalIcon2, { className: "size-4" }),
1933
- /* @__PURE__ */ jsx29("span", { className: "sr-only", children: "More pages" })
1992
+ /* @__PURE__ */ jsx30(MoreHorizontalIcon2, { className: "size-4" }),
1993
+ /* @__PURE__ */ jsx30("span", { className: "sr-only", children: "More pages" })
1934
1994
  ]
1935
1995
  }
1936
1996
  );
@@ -1938,9 +1998,9 @@ function PaginationEllipsis({ className, ...props }) {
1938
1998
 
1939
1999
  // src/ui/progress.tsx
1940
2000
  import { Progress as ProgressPrimitive } from "@base-ui/react/progress";
1941
- import { jsx as jsx30 } from "react/jsx-runtime";
2001
+ import { jsx as jsx31 } from "react/jsx-runtime";
1942
2002
  function Progress({ className, ...props }) {
1943
- return /* @__PURE__ */ jsx30(
2003
+ return /* @__PURE__ */ jsx31(
1944
2004
  ProgressPrimitive.Root,
1945
2005
  {
1946
2006
  "data-slot": "progress",
@@ -1950,7 +2010,7 @@ function Progress({ className, ...props }) {
1950
2010
  );
1951
2011
  }
1952
2012
  function ProgressTrack({ className, ...props }) {
1953
- return /* @__PURE__ */ jsx30(
2013
+ return /* @__PURE__ */ jsx31(
1954
2014
  ProgressPrimitive.Track,
1955
2015
  {
1956
2016
  "data-slot": "progress-track",
@@ -1963,7 +2023,7 @@ function ProgressIndicator({
1963
2023
  className,
1964
2024
  ...props
1965
2025
  }) {
1966
- return /* @__PURE__ */ jsx30(
2026
+ return /* @__PURE__ */ jsx31(
1967
2027
  ProgressPrimitive.Indicator,
1968
2028
  {
1969
2029
  "data-slot": "progress-indicator",
@@ -1979,9 +2039,9 @@ function ProgressIndicator({
1979
2039
  // src/ui/radio-group.tsx
1980
2040
  import { Radio as RadioPrimitive } from "@base-ui/react/radio";
1981
2041
  import { RadioGroup as RadioGroupPrimitive } from "@base-ui/react/radio-group";
1982
- import { jsx as jsx31 } from "react/jsx-runtime";
2042
+ import { jsx as jsx32 } from "react/jsx-runtime";
1983
2043
  function RadioGroup({ className, ...props }) {
1984
- return /* @__PURE__ */ jsx31(
2044
+ return /* @__PURE__ */ jsx32(
1985
2045
  RadioGroupPrimitive,
1986
2046
  {
1987
2047
  "data-slot": "radio-group",
@@ -1991,7 +2051,7 @@ function RadioGroup({ className, ...props }) {
1991
2051
  );
1992
2052
  }
1993
2053
  function RadioGroupItem({ className, ...props }) {
1994
- return /* @__PURE__ */ jsx31(
2054
+ return /* @__PURE__ */ jsx32(
1995
2055
  RadioPrimitive.Root,
1996
2056
  {
1997
2057
  "data-slot": "radio-group-item",
@@ -2000,12 +2060,12 @@ function RadioGroupItem({ className, ...props }) {
2000
2060
  className
2001
2061
  ),
2002
2062
  ...props,
2003
- children: /* @__PURE__ */ jsx31(
2063
+ children: /* @__PURE__ */ jsx32(
2004
2064
  RadioPrimitive.Indicator,
2005
2065
  {
2006
2066
  "data-slot": "radio-group-indicator",
2007
2067
  className: "flex items-center justify-center",
2008
- children: /* @__PURE__ */ jsx31("span", { className: "size-2 rounded-full bg-(--radio-checked)" })
2068
+ children: /* @__PURE__ */ jsx32("span", { className: "size-2 rounded-full bg-(--radio-checked)" })
2009
2069
  }
2010
2070
  )
2011
2071
  }
@@ -2019,12 +2079,12 @@ import {
2019
2079
  Panel as PanelPrimitive,
2020
2080
  Separator as PanelResizeHandlePrimitive
2021
2081
  } from "react-resizable-panels";
2022
- import { jsx as jsx32 } from "react/jsx-runtime";
2082
+ import { jsx as jsx33 } from "react/jsx-runtime";
2023
2083
  function PanelGroup({
2024
2084
  className,
2025
2085
  ...props
2026
2086
  }) {
2027
- return /* @__PURE__ */ jsx32(
2087
+ return /* @__PURE__ */ jsx33(
2028
2088
  PanelGroupPrimitive,
2029
2089
  {
2030
2090
  "data-slot": "resizable-panel-group",
@@ -2037,14 +2097,14 @@ function PanelGroup({
2037
2097
  );
2038
2098
  }
2039
2099
  function Panel({ ...props }) {
2040
- return /* @__PURE__ */ jsx32(PanelPrimitive, { "data-slot": "resizable-panel", ...props });
2100
+ return /* @__PURE__ */ jsx33(PanelPrimitive, { "data-slot": "resizable-panel", ...props });
2041
2101
  }
2042
2102
  function ResizableHandle({
2043
2103
  withHandle,
2044
2104
  className,
2045
2105
  ...props
2046
2106
  }) {
2047
- return /* @__PURE__ */ jsx32(
2107
+ return /* @__PURE__ */ jsx33(
2048
2108
  PanelResizeHandlePrimitive,
2049
2109
  {
2050
2110
  "data-slot": "resizable-handle",
@@ -2053,27 +2113,27 @@ function ResizableHandle({
2053
2113
  className
2054
2114
  ),
2055
2115
  ...props,
2056
- children: withHandle ? /* @__PURE__ */ jsx32("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-xs border border-border bg-border", children: /* @__PURE__ */ jsx32(GripVerticalIcon, { className: "size-2.5" }) }) : null
2116
+ children: withHandle ? /* @__PURE__ */ jsx33("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-xs border border-border bg-border", children: /* @__PURE__ */ jsx33(GripVerticalIcon, { className: "size-2.5" }) }) : null
2057
2117
  }
2058
2118
  );
2059
2119
  }
2060
2120
 
2061
2121
  // src/ui/scroll-area.tsx
2062
2122
  import { ScrollArea as ScrollAreaPrimitive } from "@base-ui/react/scroll-area";
2063
- import { jsx as jsx33, jsxs as jsxs11 } from "react/jsx-runtime";
2123
+ import { jsx as jsx34, jsxs as jsxs12 } from "react/jsx-runtime";
2064
2124
  function ScrollArea({
2065
2125
  className,
2066
2126
  children,
2067
2127
  ...props
2068
2128
  }) {
2069
- return /* @__PURE__ */ jsxs11(
2129
+ return /* @__PURE__ */ jsxs12(
2070
2130
  ScrollAreaPrimitive.Root,
2071
2131
  {
2072
2132
  "data-slot": "scroll-area",
2073
2133
  className: cn("relative overflow-hidden", className),
2074
2134
  ...props,
2075
2135
  children: [
2076
- /* @__PURE__ */ jsx33(
2136
+ /* @__PURE__ */ jsx34(
2077
2137
  ScrollAreaPrimitive.Viewport,
2078
2138
  {
2079
2139
  "data-slot": "scroll-area-viewport",
@@ -2081,8 +2141,8 @@ function ScrollArea({
2081
2141
  children
2082
2142
  }
2083
2143
  ),
2084
- /* @__PURE__ */ jsx33(ScrollBar, {}),
2085
- /* @__PURE__ */ jsx33(ScrollAreaPrimitive.Corner, {})
2144
+ /* @__PURE__ */ jsx34(ScrollBar, {}),
2145
+ /* @__PURE__ */ jsx34(ScrollAreaPrimitive.Corner, {})
2086
2146
  ]
2087
2147
  }
2088
2148
  );
@@ -2092,7 +2152,7 @@ function ScrollBar({
2092
2152
  orientation = "vertical",
2093
2153
  ...props
2094
2154
  }) {
2095
- return /* @__PURE__ */ jsx33(
2155
+ return /* @__PURE__ */ jsx34(
2096
2156
  ScrollAreaPrimitive.Scrollbar,
2097
2157
  {
2098
2158
  "data-slot": "scroll-area-scrollbar",
@@ -2104,7 +2164,7 @@ function ScrollBar({
2104
2164
  className
2105
2165
  ),
2106
2166
  ...props,
2107
- children: /* @__PURE__ */ jsx33(
2167
+ children: /* @__PURE__ */ jsx34(
2108
2168
  ScrollAreaPrimitive.Thumb,
2109
2169
  {
2110
2170
  "data-slot": "scroll-area-thumb",
@@ -2118,17 +2178,17 @@ function ScrollBar({
2118
2178
  // src/ui/select.tsx
2119
2179
  import { Select as SelectPrimitive } from "@base-ui/react/select";
2120
2180
  import { CheckIcon as CheckIcon2, ChevronDownIcon as ChevronDownIcon3, ChevronUpIcon } from "lucide-react";
2121
- import { jsx as jsx34, jsxs as jsxs12 } from "react/jsx-runtime";
2181
+ import { jsx as jsx35, jsxs as jsxs13 } from "react/jsx-runtime";
2122
2182
  var Select = SelectPrimitive.Root;
2123
2183
  function SelectGroup({
2124
2184
  ...props
2125
2185
  }) {
2126
- return /* @__PURE__ */ jsx34(SelectPrimitive.Group, { "data-slot": "select-group", ...props });
2186
+ return /* @__PURE__ */ jsx35(SelectPrimitive.Group, { "data-slot": "select-group", ...props });
2127
2187
  }
2128
2188
  function SelectValue({
2129
2189
  ...props
2130
2190
  }) {
2131
- return /* @__PURE__ */ jsx34(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
2191
+ return /* @__PURE__ */ jsx35(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
2132
2192
  }
2133
2193
  function SelectTrigger({
2134
2194
  className,
@@ -2136,7 +2196,7 @@ function SelectTrigger({
2136
2196
  children,
2137
2197
  ...props
2138
2198
  }) {
2139
- return /* @__PURE__ */ jsxs12(
2199
+ return /* @__PURE__ */ jsxs13(
2140
2200
  SelectPrimitive.Trigger,
2141
2201
  {
2142
2202
  "data-slot": "select-trigger",
@@ -2148,10 +2208,10 @@ function SelectTrigger({
2148
2208
  ...props,
2149
2209
  children: [
2150
2210
  children,
2151
- /* @__PURE__ */ jsx34(
2211
+ /* @__PURE__ */ jsx35(
2152
2212
  SelectPrimitive.Icon,
2153
2213
  {
2154
- render: /* @__PURE__ */ jsx34(ChevronDownIcon3, { className: "size-4 opacity-50" })
2214
+ render: /* @__PURE__ */ jsx35(ChevronDownIcon3, { className: "size-4 opacity-50" })
2155
2215
  }
2156
2216
  )
2157
2217
  ]
@@ -2169,7 +2229,7 @@ function SelectContent({
2169
2229
  alignItemWithTrigger = false,
2170
2230
  ...props
2171
2231
  }) {
2172
- return /* @__PURE__ */ jsx34(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsx34(
2232
+ return /* @__PURE__ */ jsx35(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsx35(
2173
2233
  SelectPrimitive.Positioner,
2174
2234
  {
2175
2235
  side,
@@ -2177,7 +2237,7 @@ function SelectContent({
2177
2237
  align,
2178
2238
  alignItemWithTrigger,
2179
2239
  className: "isolate z-50",
2180
- children: /* @__PURE__ */ jsxs12(
2240
+ children: /* @__PURE__ */ jsxs13(
2181
2241
  SelectPrimitive.Popup,
2182
2242
  {
2183
2243
  "data-slot": "select-content",
@@ -2191,9 +2251,9 @@ function SelectContent({
2191
2251
  ),
2192
2252
  ...props,
2193
2253
  children: [
2194
- /* @__PURE__ */ jsx34(SelectScrollUpButton, {}),
2195
- /* @__PURE__ */ jsx34(SelectPrimitive.List, { className: "p-1", children }),
2196
- /* @__PURE__ */ jsx34(SelectScrollDownButton, {})
2254
+ /* @__PURE__ */ jsx35(SelectScrollUpButton, {}),
2255
+ /* @__PURE__ */ jsx35(SelectPrimitive.List, { className: "p-1", children }),
2256
+ /* @__PURE__ */ jsx35(SelectScrollDownButton, {})
2197
2257
  ]
2198
2258
  }
2199
2259
  )
@@ -2204,7 +2264,7 @@ function SelectLabel({
2204
2264
  className,
2205
2265
  ...props
2206
2266
  }) {
2207
- return /* @__PURE__ */ jsx34(
2267
+ return /* @__PURE__ */ jsx35(
2208
2268
  SelectPrimitive.GroupLabel,
2209
2269
  {
2210
2270
  "data-slot": "select-label",
@@ -2218,7 +2278,7 @@ function SelectItem({
2218
2278
  children,
2219
2279
  ...props
2220
2280
  }) {
2221
- return /* @__PURE__ */ jsxs12(
2281
+ return /* @__PURE__ */ jsxs13(
2222
2282
  SelectPrimitive.Item,
2223
2283
  {
2224
2284
  "data-slot": "select-item",
@@ -2228,8 +2288,8 @@ function SelectItem({
2228
2288
  ),
2229
2289
  ...props,
2230
2290
  children: [
2231
- /* @__PURE__ */ jsx34("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx34(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx34(CheckIcon2, { className: "size-4" }) }) }),
2232
- /* @__PURE__ */ jsx34(SelectPrimitive.ItemText, { children })
2291
+ /* @__PURE__ */ jsx35("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx35(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx35(CheckIcon2, { className: "size-4" }) }) }),
2292
+ /* @__PURE__ */ jsx35(SelectPrimitive.ItemText, { children })
2233
2293
  ]
2234
2294
  }
2235
2295
  );
@@ -2238,7 +2298,7 @@ function SelectSeparator({
2238
2298
  className,
2239
2299
  ...props
2240
2300
  }) {
2241
- return /* @__PURE__ */ jsx34(
2301
+ return /* @__PURE__ */ jsx35(
2242
2302
  SelectPrimitive.Separator,
2243
2303
  {
2244
2304
  "data-slot": "select-separator",
@@ -2251,7 +2311,7 @@ function SelectScrollUpButton({
2251
2311
  className,
2252
2312
  ...props
2253
2313
  }) {
2254
- return /* @__PURE__ */ jsx34(
2314
+ return /* @__PURE__ */ jsx35(
2255
2315
  SelectPrimitive.ScrollUpArrow,
2256
2316
  {
2257
2317
  "data-slot": "select-scroll-up-button",
@@ -2260,7 +2320,7 @@ function SelectScrollUpButton({
2260
2320
  className
2261
2321
  ),
2262
2322
  ...props,
2263
- children: /* @__PURE__ */ jsx34(ChevronUpIcon, { className: "size-4" })
2323
+ children: /* @__PURE__ */ jsx35(ChevronUpIcon, { className: "size-4" })
2264
2324
  }
2265
2325
  );
2266
2326
  }
@@ -2268,7 +2328,7 @@ function SelectScrollDownButton({
2268
2328
  className,
2269
2329
  ...props
2270
2330
  }) {
2271
- return /* @__PURE__ */ jsx34(
2331
+ return /* @__PURE__ */ jsx35(
2272
2332
  SelectPrimitive.ScrollDownArrow,
2273
2333
  {
2274
2334
  "data-slot": "select-scroll-down-button",
@@ -2277,16 +2337,16 @@ function SelectScrollDownButton({
2277
2337
  className
2278
2338
  ),
2279
2339
  ...props,
2280
- children: /* @__PURE__ */ jsx34(ChevronDownIcon3, { className: "size-4" })
2340
+ children: /* @__PURE__ */ jsx35(ChevronDownIcon3, { className: "size-4" })
2281
2341
  }
2282
2342
  );
2283
2343
  }
2284
2344
 
2285
2345
  // src/ui/slider.tsx
2286
2346
  import { Slider as SliderPrimitive } from "@base-ui/react/slider";
2287
- import { jsx as jsx35 } from "react/jsx-runtime";
2347
+ import { jsx as jsx36 } from "react/jsx-runtime";
2288
2348
  function Slider({ className, ...props }) {
2289
- return /* @__PURE__ */ jsx35(
2349
+ return /* @__PURE__ */ jsx36(
2290
2350
  SliderPrimitive.Root,
2291
2351
  {
2292
2352
  "data-slot": "slider",
@@ -2299,7 +2359,7 @@ function Slider({ className, ...props }) {
2299
2359
  );
2300
2360
  }
2301
2361
  function SliderControl({ className, ...props }) {
2302
- return /* @__PURE__ */ jsx35(
2362
+ return /* @__PURE__ */ jsx36(
2303
2363
  SliderPrimitive.Control,
2304
2364
  {
2305
2365
  "data-slot": "slider-control",
@@ -2309,7 +2369,7 @@ function SliderControl({ className, ...props }) {
2309
2369
  );
2310
2370
  }
2311
2371
  function SliderTrack({ className, ...props }) {
2312
- return /* @__PURE__ */ jsx35(
2372
+ return /* @__PURE__ */ jsx36(
2313
2373
  SliderPrimitive.Track,
2314
2374
  {
2315
2375
  "data-slot": "slider-track",
@@ -2322,7 +2382,7 @@ function SliderTrack({ className, ...props }) {
2322
2382
  );
2323
2383
  }
2324
2384
  function SliderIndicator({ className, ...props }) {
2325
- return /* @__PURE__ */ jsx35(
2385
+ return /* @__PURE__ */ jsx36(
2326
2386
  SliderPrimitive.Indicator,
2327
2387
  {
2328
2388
  "data-slot": "slider-indicator",
@@ -2332,7 +2392,7 @@ function SliderIndicator({ className, ...props }) {
2332
2392
  );
2333
2393
  }
2334
2394
  function SliderThumb({ className, ...props }) {
2335
- return /* @__PURE__ */ jsx35(
2395
+ return /* @__PURE__ */ jsx36(
2336
2396
  SliderPrimitive.Thumb,
2337
2397
  {
2338
2398
  "data-slot": "slider-thumb",
@@ -2345,101 +2405,11 @@ function SliderThumb({ className, ...props }) {
2345
2405
  );
2346
2406
  }
2347
2407
 
2348
- // src/ui/toast.tsx
2349
- import { Toast as ToastPrimitive } from "@base-ui/react/toast";
2350
- import { XIcon } from "lucide-react";
2351
- import { jsx as jsx36, jsxs as jsxs13 } from "react/jsx-runtime";
2352
- var toastManager = ToastPrimitive.createToastManager();
2353
- function toast(message, options = {}) {
2354
- return toastManager.add({
2355
- title: message,
2356
- description: options.description,
2357
- type: options.variant ?? "info"
2358
- });
2359
- }
2360
- var toastVariantClass = {
2361
- success: "border-l-4 border-l-success",
2362
- error: "border-l-4 border-l-destructive",
2363
- info: "border-l-4 border-l-info"
2364
- };
2365
- function ToasterViewport({ className }) {
2366
- const { toasts } = ToastPrimitive.useToastManager();
2367
- return /* @__PURE__ */ jsx36(ToastPrimitive.Portal, { children: /* @__PURE__ */ jsx36(
2368
- ToastPrimitive.Viewport,
2369
- {
2370
- "data-slot": "toast-viewport",
2371
- className: cn(
2372
- "fixed top-4 right-4 z-[100] flex w-80 flex-col gap-2 outline-none",
2373
- className
2374
- ),
2375
- children: toasts.map((item) => /* @__PURE__ */ jsx36(
2376
- ToastPrimitive.Root,
2377
- {
2378
- toast: item,
2379
- "data-slot": "toast",
2380
- "data-type": item.type ?? "info",
2381
- className: cn(
2382
- "rounded-md border border-border bg-popover px-4 py-3 text-sm text-popover-foreground shadow-md shadow-(color:--shadow-color) transition-[opacity,transform] duration-200 data-ending-style:animate-toast-out data-starting-style:animate-toast-in",
2383
- toastVariantClass[item.type ?? "info"] ?? toastVariantClass.info
2384
- ),
2385
- children: /* @__PURE__ */ jsxs13(ToastPrimitive.Content, { className: "flex items-start justify-between gap-2", children: [
2386
- /* @__PURE__ */ jsxs13("div", { className: "grid gap-0.5", children: [
2387
- /* @__PURE__ */ jsx36(
2388
- ToastPrimitive.Title,
2389
- {
2390
- "data-slot": "toast-title",
2391
- className: "font-medium"
2392
- }
2393
- ),
2394
- /* @__PURE__ */ jsx36(
2395
- ToastPrimitive.Description,
2396
- {
2397
- "data-slot": "toast-description",
2398
- className: "text-muted-foreground"
2399
- }
2400
- )
2401
- ] }),
2402
- /* @__PURE__ */ jsx36(
2403
- ToastPrimitive.Close,
2404
- {
2405
- "data-slot": "toast-close",
2406
- "aria-label": "Close",
2407
- className: "cursor-pointer rounded-xs opacity-70 transition-opacity hover:opacity-100 focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none [&_svg]:size-3.5",
2408
- children: /* @__PURE__ */ jsx36(XIcon, {})
2409
- }
2410
- )
2411
- ] })
2412
- },
2413
- item.id
2414
- ))
2415
- }
2416
- ) });
2417
- }
2418
- function Toaster({ className }) {
2419
- return /* @__PURE__ */ jsx36(ToastPrimitive.Provider, { toastManager, children: /* @__PURE__ */ jsx36(ToasterViewport, { className }) });
2420
- }
2421
-
2422
- // src/ui/spinner.tsx
2423
- import { Loader2Icon } from "lucide-react";
2424
- import { jsx as jsx37 } from "react/jsx-runtime";
2425
- function Spinner({ className, ...props }) {
2426
- return /* @__PURE__ */ jsx37(
2427
- Loader2Icon,
2428
- {
2429
- role: "status",
2430
- "aria-label": "Loading",
2431
- "data-slot": "spinner",
2432
- className: cn("size-4 animate-spin", className),
2433
- ...props
2434
- }
2435
- );
2436
- }
2437
-
2438
2408
  // src/ui/switch.tsx
2439
2409
  import { Switch as SwitchPrimitive } from "@base-ui/react/switch";
2440
- import { jsx as jsx38 } from "react/jsx-runtime";
2410
+ import { jsx as jsx37 } from "react/jsx-runtime";
2441
2411
  function Switch({ className, ...props }) {
2442
- return /* @__PURE__ */ jsx38(
2412
+ return /* @__PURE__ */ jsx37(
2443
2413
  SwitchPrimitive.Root,
2444
2414
  {
2445
2415
  "data-slot": "switch",
@@ -2448,7 +2418,7 @@ function Switch({ className, ...props }) {
2448
2418
  className
2449
2419
  ),
2450
2420
  ...props,
2451
- children: /* @__PURE__ */ jsx38(
2421
+ children: /* @__PURE__ */ jsx37(
2452
2422
  SwitchPrimitive.Thumb,
2453
2423
  {
2454
2424
  "data-slot": "switch-thumb",
@@ -2462,12 +2432,12 @@ function Switch({ className, ...props }) {
2462
2432
  // src/ui/tabs.tsx
2463
2433
  import { Tabs as TabsPrimitive } from "@base-ui/react/tabs";
2464
2434
  import { cva as cva4 } from "class-variance-authority";
2465
- import { jsx as jsx39 } from "react/jsx-runtime";
2435
+ import { jsx as jsx38 } from "react/jsx-runtime";
2466
2436
  function Tabs({
2467
2437
  className,
2468
2438
  ...props
2469
2439
  }) {
2470
- return /* @__PURE__ */ jsx39(
2440
+ return /* @__PURE__ */ jsx38(
2471
2441
  TabsPrimitive.Root,
2472
2442
  {
2473
2443
  "data-slot": "tabs",
@@ -2496,7 +2466,7 @@ function TabsList({
2496
2466
  variant,
2497
2467
  ...props
2498
2468
  }) {
2499
- return /* @__PURE__ */ jsx39(
2469
+ return /* @__PURE__ */ jsx38(
2500
2470
  TabsPrimitive.List,
2501
2471
  {
2502
2472
  "data-slot": "tabs-list",
@@ -2510,7 +2480,7 @@ function TabsTrigger({
2510
2480
  className,
2511
2481
  ...props
2512
2482
  }) {
2513
- return /* @__PURE__ */ jsx39(
2483
+ return /* @__PURE__ */ jsx38(
2514
2484
  TabsPrimitive.Tab,
2515
2485
  {
2516
2486
  "data-slot": "tabs-trigger",
@@ -2532,7 +2502,7 @@ function TabsContent({
2532
2502
  className,
2533
2503
  ...props
2534
2504
  }) {
2535
- return /* @__PURE__ */ jsx39(
2505
+ return /* @__PURE__ */ jsx38(
2536
2506
  TabsPrimitive.Panel,
2537
2507
  {
2538
2508
  "data-slot": "tabs-content",
@@ -2545,7 +2515,7 @@ function TabsContent({
2545
2515
  // src/ui/toggle.tsx
2546
2516
  import { Toggle as TogglePrimitive } from "@base-ui/react/toggle";
2547
2517
  import { cva as cva5 } from "class-variance-authority";
2548
- import { jsx as jsx40 } from "react/jsx-runtime";
2518
+ import { jsx as jsx39 } from "react/jsx-runtime";
2549
2519
  var toggleVariants = cva5(
2550
2520
  "inline-flex cursor-pointer items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-colors outline-none hover:bg-muted hover:text-muted-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 data-pressed:bg-accent data-pressed:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2551
2521
  {
@@ -2572,7 +2542,7 @@ function Toggle({
2572
2542
  size,
2573
2543
  ...props
2574
2544
  }) {
2575
- return /* @__PURE__ */ jsx40(
2545
+ return /* @__PURE__ */ jsx39(
2576
2546
  TogglePrimitive,
2577
2547
  {
2578
2548
  "data-slot": "toggle",
@@ -2586,7 +2556,7 @@ function Toggle({
2586
2556
  import { Toggle as TogglePrimitive2 } from "@base-ui/react/toggle";
2587
2557
  import { ToggleGroup as ToggleGroupPrimitive } from "@base-ui/react/toggle-group";
2588
2558
  import * as React4 from "react";
2589
- import { jsx as jsx41 } from "react/jsx-runtime";
2559
+ import { jsx as jsx40 } from "react/jsx-runtime";
2590
2560
  var ToggleGroupContext = React4.createContext({
2591
2561
  size: "default",
2592
2562
  variant: "default"
@@ -2598,7 +2568,7 @@ function ToggleGroup({
2598
2568
  children,
2599
2569
  ...props
2600
2570
  }) {
2601
- return /* @__PURE__ */ jsx41(
2571
+ return /* @__PURE__ */ jsx40(
2602
2572
  ToggleGroupPrimitive,
2603
2573
  {
2604
2574
  "data-slot": "toggle-group",
@@ -2609,7 +2579,7 @@ function ToggleGroup({
2609
2579
  className
2610
2580
  ),
2611
2581
  ...props,
2612
- children: /* @__PURE__ */ jsx41(ToggleGroupContext.Provider, { value: { variant, size }, children })
2582
+ children: /* @__PURE__ */ jsx40(ToggleGroupContext.Provider, { value: { variant, size }, children })
2613
2583
  }
2614
2584
  );
2615
2585
  }
@@ -2621,7 +2591,7 @@ function ToggleGroupItem({
2621
2591
  ...props
2622
2592
  }) {
2623
2593
  const context = React4.useContext(ToggleGroupContext);
2624
- return /* @__PURE__ */ jsx41(
2594
+ return /* @__PURE__ */ jsx40(
2625
2595
  TogglePrimitive2,
2626
2596
  {
2627
2597
  "data-slot": "toggle-group-item",
@@ -2643,7 +2613,7 @@ function ToggleGroupItem({
2643
2613
 
2644
2614
  // src/ui/typography.tsx
2645
2615
  import { cva as cva6 } from "class-variance-authority";
2646
- import { jsx as jsx42 } from "react/jsx-runtime";
2616
+ import { jsx as jsx41 } from "react/jsx-runtime";
2647
2617
  var typographyVariants = cva6("", {
2648
2618
  variants: {
2649
2619
  variant: {
@@ -2679,7 +2649,7 @@ var variantTagMap = {
2679
2649
  };
2680
2650
  function Typography({ className, variant = "p", ...props }) {
2681
2651
  const Tag = variantTagMap[variant ?? "p"];
2682
- return /* @__PURE__ */ jsx42(
2652
+ return /* @__PURE__ */ jsx41(
2683
2653
  Tag,
2684
2654
  {
2685
2655
  "data-slot": "typography",
@@ -2690,6 +2660,120 @@ function Typography({ className, variant = "p", ...props }) {
2690
2660
  );
2691
2661
  }
2692
2662
 
2663
+ // src/ui/bubble.tsx
2664
+ import * as React5 from "react";
2665
+ import { cva as cva7 } from "class-variance-authority";
2666
+ import { jsx as jsx42 } from "react/jsx-runtime";
2667
+ function BubbleGroup({ className, ...props }) {
2668
+ return /* @__PURE__ */ jsx42(
2669
+ "div",
2670
+ {
2671
+ "data-slot": "bubble-group",
2672
+ className: cn("flex min-w-0 flex-col gap-2", className),
2673
+ ...props
2674
+ }
2675
+ );
2676
+ }
2677
+ var bubbleVariants = cva7(
2678
+ "group/bubble relative flex w-fit max-w-[80%] min-w-0 flex-col gap-1 group-data-[align=end]/message:self-end data-[align=end]:self-end data-[variant=ghost]:max-w-full",
2679
+ {
2680
+ variants: {
2681
+ variant: {
2682
+ default: "*:data-[slot=bubble-content]:bg-primary *:data-[slot=bubble-content]:text-primary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-primary/80",
2683
+ secondary: "*:data-[slot=bubble-content]:bg-secondary *:data-[slot=bubble-content]:text-secondary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)]",
2684
+ muted: "*:data-[slot=bubble-content]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--muted),var(--foreground)_5%)]",
2685
+ tinted: "*:data-[slot=bubble-content]:bg-(--bubble-background) *:data-[slot=bubble-content]:text-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-(--bubble-hover-background)",
2686
+ outline: "*:data-[slot=bubble-content]:border-border *:data-[slot=bubble-content]:bg-card [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-input/30",
2687
+ ghost: "border-none *:data-[slot=bubble-content]:rounded-none *:data-[slot=bubble-content]:bg-transparent *:data-[slot=bubble-content]:p-0 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted/50",
2688
+ destructive: "*:data-[slot=bubble-content]:bg-destructive/10 *:data-[slot=bubble-content]:text-destructive dark:*:data-[slot=bubble-content]:bg-destructive/20 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/20 dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/30"
2689
+ }
2690
+ },
2691
+ defaultVariants: {
2692
+ variant: "default"
2693
+ }
2694
+ }
2695
+ );
2696
+ function Bubble({
2697
+ variant = "default",
2698
+ align = "start",
2699
+ className,
2700
+ ...props
2701
+ }) {
2702
+ return /* @__PURE__ */ jsx42(
2703
+ "div",
2704
+ {
2705
+ "data-slot": "bubble",
2706
+ "data-variant": variant,
2707
+ "data-align": align,
2708
+ className: cn(bubbleVariants({ variant }), className),
2709
+ ...props
2710
+ }
2711
+ );
2712
+ }
2713
+ function BubbleContent({
2714
+ asChild = false,
2715
+ className,
2716
+ children,
2717
+ ...props
2718
+ }) {
2719
+ const cls = cn(
2720
+ "w-fit max-w-full min-w-0 overflow-hidden rounded-xl border border-transparent px-3 py-2 text-sm leading-relaxed wrap-break-word group-data-[align=end]/bubble:self-end [button]:text-left [button,a]:transition-colors [button,a]:outline-none [button,a]:focus-visible:border-ring [button,a]:focus-visible:ring-3 [button,a]:focus-visible:ring-ring/50",
2721
+ className
2722
+ );
2723
+ if (asChild && React5.isValidElement(children)) {
2724
+ return React5.cloneElement(children, {
2725
+ "data-slot": "bubble-content",
2726
+ className: cn(cls, children.props.className),
2727
+ ...props
2728
+ });
2729
+ }
2730
+ return /* @__PURE__ */ jsx42(
2731
+ "div",
2732
+ {
2733
+ "data-slot": "bubble-content",
2734
+ className: cls,
2735
+ ...props,
2736
+ children
2737
+ }
2738
+ );
2739
+ }
2740
+ var bubbleReactionsVariants = cva7(
2741
+ "absolute z-10 flex w-fit shrink-0 items-center justify-center gap-1 rounded-full bg-muted px-1.5 py-0.5 text-sm ring-3 ring-card has-[button]:p-0",
2742
+ {
2743
+ variants: {
2744
+ side: {
2745
+ top: "top-0 -translate-y-3/4",
2746
+ bottom: "bottom-0 translate-y-3/4"
2747
+ },
2748
+ align: {
2749
+ start: "left-3",
2750
+ end: "right-3"
2751
+ }
2752
+ },
2753
+ defaultVariants: {
2754
+ side: "bottom",
2755
+ align: "end"
2756
+ }
2757
+ }
2758
+ );
2759
+ function BubbleReactions({
2760
+ side = "bottom",
2761
+ align = "end",
2762
+ className,
2763
+ ...props
2764
+ }) {
2765
+ return /* @__PURE__ */ jsx42(
2766
+ "div",
2767
+ {
2768
+ "data-slot": "bubble-reactions",
2769
+ "data-align": align,
2770
+ "data-side": side,
2771
+ className: cn(bubbleReactionsVariants({ side, align }), className),
2772
+ ...props
2773
+ }
2774
+ );
2775
+ }
2776
+
2693
2777
  export {
2694
2778
  Alert,
2695
2779
  AlertTitle,
@@ -2739,9 +2823,6 @@ export {
2739
2823
  CommandEmpty,
2740
2824
  CommandGroup,
2741
2825
  CommandItem,
2742
- CHART_TOKEN_COLORS,
2743
- chartColor,
2744
- ChartContainer,
2745
2826
  Textarea,
2746
2827
  ContextMenu,
2747
2828
  ContextMenuTrigger,
@@ -2791,12 +2872,16 @@ export {
2791
2872
  ItemActions,
2792
2873
  Kbd,
2793
2874
  Label,
2875
+ Spinner,
2794
2876
  Menubar,
2795
2877
  MenubarMenu,
2796
2878
  MenubarTrigger,
2797
2879
  MenubarContent,
2798
2880
  MenubarItem,
2799
2881
  MenubarSeparator,
2882
+ toastManager,
2883
+ toast,
2884
+ Toaster,
2800
2885
  NavigationMenu,
2801
2886
  NavigationMenuList,
2802
2887
  NavigationMenuItem,
@@ -2837,10 +2922,6 @@ export {
2837
2922
  SliderTrack,
2838
2923
  SliderIndicator,
2839
2924
  SliderThumb,
2840
- toastManager,
2841
- toast,
2842
- Toaster,
2843
- Spinner,
2844
2925
  Switch,
2845
2926
  Tabs,
2846
2927
  TabsList,
@@ -2851,5 +2932,9 @@ export {
2851
2932
  ToggleGroup,
2852
2933
  ToggleGroupItem,
2853
2934
  typographyVariants,
2854
- Typography
2935
+ Typography,
2936
+ BubbleGroup,
2937
+ Bubble,
2938
+ BubbleContent,
2939
+ BubbleReactions
2855
2940
  };