@evinvest/uikit 0.3.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1012,6 +1012,329 @@ function FieldError({
1012
1012
  );
1013
1013
  }
1014
1014
 
1015
+ // src/components/footer.tsx
1016
+ import * as React22 from "react";
1017
+
1018
+ // src/components/container.tsx
1019
+ import "react";
1020
+
1021
+ // src/generated/container.ts
1022
+ var CONTAINER_BASE = "mx-auto w-full max-w-[var(--page-max,90rem)] px-[var(--page-px,1rem)]";
1023
+
1024
+ // src/components/container.tsx
1025
+ import { jsx as jsx11 } from "react/jsx-runtime";
1026
+ function Container({ className, ...props }) {
1027
+ return /* @__PURE__ */ jsx11(
1028
+ "div",
1029
+ {
1030
+ "data-slot": "container",
1031
+ className: cn(CONTAINER_BASE, className),
1032
+ ...props
1033
+ }
1034
+ );
1035
+ }
1036
+
1037
+ // src/components/logo.tsx
1038
+ import "react";
1039
+ import { jsx as jsx12 } from "react/jsx-runtime";
1040
+ var LOGO_DATA_URI = "data:image/svg+xml,%3Csvg width=%22387%22 height=%22335%22 viewBox=%220 0 387 335%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M0.120605 130.841L140.84 112.176V61.7481L156.149 65.3501V104.786L163.641 103.662V66.6599L178.625 69.607V102.353L185.791 101.043V61.0932L156.475 48.3224L119.992 60.4383V101.043L0.120605 130.841Z%22 fill=%22black%22/%3E%3Cpath d=%22M213.479 112.176L237.584 114.469L237.258 0.841309L202.078 19.8338V72.8816L213.479 78.1209V112.176Z%22 fill=%22black%22/%3E%3Cpath d=%22M240.841 0.841309L276.347 20.1612V117.743L260.711 115.778V26.3829L240.841 15.9043V0.841309Z%22 fill=%22black%22/%3E%3Cpath d=%22M284.816 118.725L386.121 127.239L304.36 109.884V74.1914L284.816 63.7128V118.725Z%22 fill=%22black%22/%3E%3Cpath d=%22M0.120605 130.841L140.84 112.176V61.7481L156.149 65.3501V104.786L163.641 103.662V66.6599L178.625 69.607V102.353L185.791 101.043V61.0932L156.475 48.3224L119.992 60.4383V101.043L0.120605 130.841Z%22 stroke=%22black%22/%3E%3Cpath d=%22M213.479 112.176L237.584 114.469L237.258 0.841309L202.078 19.8338V72.8816L213.479 78.1209V112.176Z%22 stroke=%22black%22/%3E%3Cpath d=%22M240.841 0.841309L276.347 20.1612V117.743L260.711 115.778V26.3829L240.841 15.9043V0.841309Z%22 stroke=%22black%22/%3E%3Cpath d=%22M284.816 118.725L386.121 127.239L304.36 109.884V74.1914L284.816 63.7128V118.725Z%22 stroke=%22black%22/%3E%3Cpath d=%22M25.1206 333.987H31.6206V306.987H25.1206V333.987Z%22 fill=%22black%22/%3E%3Cpath d=%22M92.6206 333.987H100.121L110.621 307.487H104.621L96.6206 325.987L88.6206 307.487H81.6206L92.6206 333.987Z%22 fill=%22black%22/%3E%3Cpath d=%22M44.6206 333.987H51.6206V318.987L65.1206 333.987H71.6206V307.487H65.1206V322.987L50.6206 307.487H44.6206V333.987Z%22 fill=%22black%22/%3E%3Cpath d=%22M120.621 333.987H142.121V329.487H127.621V322.987H140.121V318.487H127.621V312.487H142.121V307.487H120.621V333.987Z%22 fill=%22black%22/%3E%3Cpath d=%22M152.121 331.987L153.621 327.987C165.659 329.418 167.304 330.676 168.121 326.487C168.937 322.297 152.785 322.989 152.621 313.987C152.456 304.984 165.853 306.198 174.121 308.487L173.121 312.487C162.364 310.724 159.121 310.487 159.121 313.987C159.121 317.487 175.621 318.748 175.621 326.487C175.621 334.225 167.278 335.691 152.121 331.987Z%22 fill=%22black%22/%3E%3Cpath d=%22M192.621 333.987H199.621V312.487H208.621V307.487H183.621V312.487H192.621V333.987Z%22 fill=%22black%22/%3E%3Cpath d=%22M219.121 333.987H225.121V318.987L233.621 329.987H237.621L245.121 318.987V333.987L252.121 333.987V307.487H245.121L235.621 322.487L225.121 307.487H219.121V333.987Z%22 fill=%22black%22/%3E%3Cpath d=%22M265.121 333.987H286.621V329.487H272.121V322.987H284.621V318.487H272.121V312.487H286.621V307.487H265.121V333.987Z%22 fill=%22black%22/%3E%3Cpath d=%22M298.621 333.987H305.621V318.987L319.121 333.987H325.621V307.487H319.121V322.987L304.621 307.487H298.621V333.987Z%22 fill=%22black%22/%3E%3Cpath d=%22M345.121 333.987H352.121V312.487H361.121V307.487H336.121V312.487H345.121V333.987Z%22 fill=%22black%22/%3E%3Cpath d=%22M25.1206 333.987H31.6206V306.987H25.1206V333.987Z%22 stroke=%22black%22/%3E%3Cpath d=%22M92.6206 333.987H100.121L110.621 307.487H104.621L96.6206 325.987L88.6206 307.487H81.6206L92.6206 333.987Z%22 stroke=%22black%22/%3E%3Cpath d=%22M44.6206 333.987H51.6206V318.987L65.1206 333.987H71.6206V307.487H65.1206V322.987L50.6206 307.487H44.6206V333.987Z%22 stroke=%22black%22/%3E%3Cpath d=%22M120.621 333.987H142.121V329.487H127.621V322.987H140.121V318.487H127.621V312.487H142.121V307.487H120.621V333.987Z%22 stroke=%22black%22/%3E%3Cpath d=%22M152.121 331.987L153.621 327.987C165.659 329.418 167.304 330.676 168.121 326.487C168.937 322.297 152.785 322.989 152.621 313.987C152.456 304.984 165.853 306.198 174.121 308.487L173.121 312.487C162.364 310.724 159.121 310.487 159.121 313.987C159.121 317.487 175.621 318.748 175.621 326.487C175.621 334.225 167.278 335.691 152.121 331.987Z%22 stroke=%22black%22/%3E%3Cpath d=%22M192.621 333.987H199.621V312.487H208.621V307.487H183.621V312.487H192.621V333.987Z%22 stroke=%22black%22/%3E%3Cpath d=%22M219.121 333.987H225.121V318.987L233.621 329.987H237.621L245.121 318.987V333.987L252.121 333.987V307.487H245.121L235.621 322.487L225.121 307.487H219.121V333.987Z%22 stroke=%22black%22/%3E%3Cpath d=%22M265.121 333.987H286.621V329.487H272.121V322.987H284.621V318.487H272.121V312.487H286.621V307.487H265.121V333.987Z%22 stroke=%22black%22/%3E%3Cpath d=%22M298.621 333.987H305.621V318.987L319.121 333.987H325.621V307.487H319.121V322.987L304.621 307.487H298.621V333.987Z%22 stroke=%22black%22/%3E%3Cpath d=%22M345.121 333.987H352.121V312.487H361.121V307.487H336.121V312.487H345.121V333.987Z%22 stroke=%22black%22/%3E%3Cpath d=%22M232.621 276.02L166.121 145.841H204.905L255.905 246.341L306.905 145.841H345.905L279.405 276.02H232.621Z%22 fill=%22black%22 stroke=%22black%22/%3E%3Cpath d=%22M41.1206 276.02H208.336L195.73 251.341H74.8362V220.341H179.894L168.144 197.341H74.8362V170.841L154.352 170.341L141.836 145.841H41.1206V276.02Z%22 fill=%22black%22 stroke=%22black%22/%3E%3C/svg%3E";
1041
+ var LOGO_BG = "oklch(0.256 0.1 260)";
1042
+ function Logo({ className, withBackground = false, src }) {
1043
+ const maskUrl = `url("${src ?? LOGO_DATA_URI}")`;
1044
+ const maskStyle = {
1045
+ backgroundColor: "currentColor",
1046
+ maskImage: maskUrl,
1047
+ WebkitMaskImage: maskUrl,
1048
+ maskRepeat: "no-repeat",
1049
+ WebkitMaskRepeat: "no-repeat",
1050
+ maskPosition: "center",
1051
+ WebkitMaskPosition: "center",
1052
+ maskSize: "contain",
1053
+ WebkitMaskSize: "contain"
1054
+ };
1055
+ const mark = /* @__PURE__ */ jsx12(
1056
+ "span",
1057
+ {
1058
+ "data-slot": "logo",
1059
+ role: "img",
1060
+ "aria-label": "EV Investment",
1061
+ style: maskStyle,
1062
+ className: cn("inline-block", withBackground ? "w-3/5 h-3/5" : className)
1063
+ }
1064
+ );
1065
+ if (!withBackground) return mark;
1066
+ return /* @__PURE__ */ jsx12(
1067
+ "span",
1068
+ {
1069
+ "data-slot": "logo-background",
1070
+ className: cn("inline-flex items-center justify-center", className),
1071
+ style: { backgroundColor: LOGO_BG },
1072
+ children: mark
1073
+ }
1074
+ );
1075
+ }
1076
+
1077
+ // src/components/footer.tsx
1078
+ import { Fragment as Fragment2, jsx as jsx13, jsxs as jsxs3 } from "react/jsx-runtime";
1079
+ var DEFAULT_DESCRIPTION = "EV Investment is a registered real estate advisory and investment management fund specializing in premium coastal developments in Quy Nhon, Binh Dinh province, Vietnam.";
1080
+ var DEFAULT_OFFICES = [
1081
+ {
1082
+ name: "Quy Nhon Head Office",
1083
+ address: "102 An Duong Vuong St, Nguyen Van Cu Ward, Quy Nhon City, Vietnam"
1084
+ },
1085
+ {
1086
+ name: "Ho Chi Minh Representative",
1087
+ address: "Deutsches Haus, 33 Le Duan Blvd, District 1, Ho Chi Minh City, Vietnam"
1088
+ }
1089
+ ];
1090
+ var DEFAULT_LEGAL_LINKS = [
1091
+ { label: "Privacy Policy", href: "#hero" },
1092
+ { label: "Terms of Service", href: "#hero" }
1093
+ ];
1094
+ function Footer({
1095
+ nav,
1096
+ description = DEFAULT_DESCRIPTION,
1097
+ offices = DEFAULT_OFFICES,
1098
+ legalLinks = DEFAULT_LEGAL_LINKS,
1099
+ newsletter,
1100
+ newsletterBlurb = "Subscribe, to receive our macro reports",
1101
+ version,
1102
+ commitHref,
1103
+ tagline = "Quy Nhon Fund",
1104
+ linkComponent,
1105
+ children
1106
+ }) {
1107
+ const L = linkComponent ?? "a";
1108
+ return /* @__PURE__ */ jsxs3(
1109
+ "footer",
1110
+ {
1111
+ "data-slot": "footer",
1112
+ className: "bg-main-black border-t border-main-mist/10 py-16",
1113
+ children: [
1114
+ children,
1115
+ /* @__PURE__ */ jsxs3(Container, { children: [
1116
+ /* @__PURE__ */ jsxs3("div", { className: "grid grid-cols-2 gap-x-8 gap-y-8 lg:grid-cols-12 mb-12", children: [
1117
+ /* @__PURE__ */ jsxs3("div", { className: "col-span-2 lg:col-span-3", children: [
1118
+ /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-3 mb-6", children: [
1119
+ /* @__PURE__ */ jsx13(Logo, { className: "w-8 h-8 text-white" }),
1120
+ /* @__PURE__ */ jsxs3("div", { className: "flex flex-col", children: [
1121
+ /* @__PURE__ */ jsx13("span", { className: "font-serif-display font-bold text-base tracking-wider text-white", children: "EV INVESTMENT" }),
1122
+ /* @__PURE__ */ jsx13("span", { className: "text-[8px] font-mono-tech tracking-[0.3em] text-main-accent-t1 uppercase", children: tagline })
1123
+ ] })
1124
+ ] }),
1125
+ /* @__PURE__ */ jsx13("p", { className: "text-main-mist/40 text-xs font-light max-w-sm leading-relaxed mb-6", children: description }),
1126
+ /* @__PURE__ */ jsx13("div", { className: "flex gap-4 text-xs font-mono-tech text-main-accent-t1", children: legalLinks.map((link, i) => /* @__PURE__ */ jsxs3(React22.Fragment, { children: [
1127
+ i > 0 && /* @__PURE__ */ jsx13("span", { className: "text-main-mist/20", children: "|" }),
1128
+ /* @__PURE__ */ jsx13(L, { href: link.href, className: "hover:underline", children: link.label })
1129
+ ] }, link.label)) })
1130
+ ] }),
1131
+ nav.map((group) => /* @__PURE__ */ jsxs3(
1132
+ "nav",
1133
+ {
1134
+ "aria-label": `Footer ${group.heading} links`,
1135
+ className: "lg:col-span-2",
1136
+ children: [
1137
+ /* @__PURE__ */ jsx13("h4", { className: "font-mono-tech text-xs text-white uppercase tracking-widest mb-6", children: group.heading }),
1138
+ /* @__PURE__ */ jsx13("ul", { className: "space-y-3", children: group.links.map((link) => /* @__PURE__ */ jsx13("li", { children: /* @__PURE__ */ jsx13(
1139
+ L,
1140
+ {
1141
+ href: link.href,
1142
+ className: "text-xs font-light text-main-mist/70 hover:text-main-accent-t1 transition-colors",
1143
+ children: link.label
1144
+ }
1145
+ ) }, link.href)) })
1146
+ ]
1147
+ },
1148
+ group.heading
1149
+ )),
1150
+ /* @__PURE__ */ jsxs3("div", { className: "col-span-2 lg:col-span-3", children: [
1151
+ /* @__PURE__ */ jsx13("h4", { className: "font-mono-tech text-xs text-white uppercase tracking-widest mb-6", children: "Offices" }),
1152
+ /* @__PURE__ */ jsx13("ul", { className: "space-y-4 text-xs text-main-mist/70 font-light leading-relaxed", children: offices.map((office) => /* @__PURE__ */ jsxs3("li", { children: [
1153
+ /* @__PURE__ */ jsx13("strong", { className: "text-white block font-mono-tech text-[10px] uppercase tracking-wider mb-1", children: office.name }),
1154
+ office.address
1155
+ ] }, office.name)) })
1156
+ ] }),
1157
+ newsletter && /* @__PURE__ */ jsxs3("div", { className: "col-span-2 lg:col-span-2", children: [
1158
+ /* @__PURE__ */ jsx13("h4", { className: "font-mono-tech text-xs text-white uppercase tracking-widest mb-6", children: "Newsletter" }),
1159
+ /* @__PURE__ */ jsx13("p", { className: "text-sm sm:text-xs font-light leading-relaxed text-main-mist/70 mb-4", children: newsletterBlurb }),
1160
+ newsletter
1161
+ ] })
1162
+ ] }),
1163
+ /* @__PURE__ */ jsx13("div", { className: "border-t border-main-mist/10 pt-8 text-[10px] font-mono-tech text-main-mist/40", children: /* @__PURE__ */ jsxs3("p", { children: [
1164
+ "\xA9 2026 EV Investment. All rights reserved.",
1165
+ version && /* @__PURE__ */ jsxs3(Fragment2, { children: [
1166
+ " ",
1167
+ /* @__PURE__ */ jsx13("a", { href: commitHref, className: "text-main-mist/30", children: version })
1168
+ ] })
1169
+ ] }) })
1170
+ ] })
1171
+ ]
1172
+ }
1173
+ );
1174
+ }
1175
+
1176
+ // src/components/header.tsx
1177
+ import * as React23 from "react";
1178
+ import { jsx as jsx14, jsxs as jsxs4 } from "react/jsx-runtime";
1179
+ function Header({
1180
+ nav,
1181
+ cta,
1182
+ mobileCta,
1183
+ tagline = "Quy Nhon Fund",
1184
+ homeHref = "/",
1185
+ className,
1186
+ linkComponent,
1187
+ variant = "marketing",
1188
+ hideNav = false
1189
+ }) {
1190
+ const L = linkComponent ?? "a";
1191
+ const compact = variant === "compact";
1192
+ const [hasScrolled, setHasScrolled] = React23.useState(false);
1193
+ React23.useEffect(() => {
1194
+ if (compact) return;
1195
+ const handleScroll = () => setHasScrolled(window.scrollY > 50);
1196
+ window.addEventListener("scroll", handleScroll);
1197
+ return () => window.removeEventListener("scroll", handleScroll);
1198
+ }, [compact]);
1199
+ return /* @__PURE__ */ jsx14(
1200
+ "header",
1201
+ {
1202
+ "data-slot": "header",
1203
+ "data-variant": variant,
1204
+ className: cn(
1205
+ "fixed top-0 left-0 w-full z-[60] border-b",
1206
+ compact ? (
1207
+ // Fixed 4rem bar (py-3 + the 40px lockup): opaque by default so app
1208
+ // content beneath it never bleeds through.
1209
+ "h-16 bg-main-black/90 backdrop-blur-md border-main-mist/10"
1210
+ ) : cn(
1211
+ "transition-all duration-500",
1212
+ hasScrolled ? "bg-main-black/90 backdrop-blur-md border-main-mist/10 py-4" : "bg-transparent border-transparent py-6"
1213
+ ),
1214
+ className
1215
+ ),
1216
+ children: /* @__PURE__ */ jsxs4(Container, { className: "flex h-full items-center justify-between gap-4", children: [
1217
+ /* @__PURE__ */ jsxs4(
1218
+ L,
1219
+ {
1220
+ href: homeHref,
1221
+ className: "flex items-center gap-3",
1222
+ "aria-label": "EV Investment \u2014 home",
1223
+ children: [
1224
+ /* @__PURE__ */ jsx14(Logo, { className: "w-10 h-10 text-white" }),
1225
+ /* @__PURE__ */ jsxs4("div", { className: "flex flex-col", children: [
1226
+ /* @__PURE__ */ jsx14("span", { className: "font-serif-display font-bold text-lg tracking-wider text-white", children: "EV INVESTMENT" }),
1227
+ /* @__PURE__ */ jsx14("span", { className: "text-[9px] font-mono-tech tracking-[0.3em] text-main-accent-t1 uppercase", children: tagline })
1228
+ ] })
1229
+ ]
1230
+ }
1231
+ ),
1232
+ !hideNav && /* @__PURE__ */ jsx14("nav", { className: "hidden lg:flex items-center gap-6 font-mono-tech text-xs tracking-widest uppercase", children: nav.map((item) => /* @__PURE__ */ jsx14(
1233
+ L,
1234
+ {
1235
+ href: item.href,
1236
+ className: "text-main-mist/80 hover:text-main-accent-t1 transition-colors",
1237
+ children: item.label
1238
+ },
1239
+ item.href
1240
+ )) }),
1241
+ /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-3", children: [
1242
+ cta,
1243
+ !hideNav && /* @__PURE__ */ jsx14(MobileMenu, { nav, cta: mobileCta ?? cta, linkComponent: L })
1244
+ ] })
1245
+ ] })
1246
+ }
1247
+ );
1248
+ }
1249
+ function MobileMenu({
1250
+ nav,
1251
+ cta,
1252
+ linkComponent: L
1253
+ }) {
1254
+ const [open, setOpen] = React23.useState(false);
1255
+ React23.useEffect(() => {
1256
+ if (!open) return;
1257
+ document.body.style.overflow = "hidden";
1258
+ const onKeyDown = (e) => {
1259
+ if (e.key === "Escape") setOpen(false);
1260
+ };
1261
+ window.addEventListener("keydown", onKeyDown);
1262
+ return () => {
1263
+ document.body.style.overflow = "";
1264
+ window.removeEventListener("keydown", onKeyDown);
1265
+ };
1266
+ }, [open]);
1267
+ const closeOnNavigation = (e) => {
1268
+ if (e.target.closest("a, button")) setOpen(false);
1269
+ };
1270
+ return /* @__PURE__ */ jsxs4("div", { className: "lg:hidden", children: [
1271
+ /* @__PURE__ */ jsx14(
1272
+ "button",
1273
+ {
1274
+ type: "button",
1275
+ "aria-label": "Open menu",
1276
+ "aria-expanded": open,
1277
+ "aria-haspopup": "menu",
1278
+ onClick: () => setOpen(true),
1279
+ className: "flex size-10 items-center justify-center text-white",
1280
+ children: /* @__PURE__ */ jsx14(
1281
+ "svg",
1282
+ {
1283
+ className: "size-6",
1284
+ viewBox: "0 0 24 24",
1285
+ fill: "none",
1286
+ stroke: "currentColor",
1287
+ strokeWidth: 2,
1288
+ strokeLinecap: "round",
1289
+ strokeLinejoin: "round",
1290
+ children: /* @__PURE__ */ jsx14("path", { d: "M4 6h16M4 12h16M4 18h16" })
1291
+ }
1292
+ )
1293
+ }
1294
+ ),
1295
+ open && /* @__PURE__ */ jsx14(Portal, { children: /* @__PURE__ */ jsxs4(
1296
+ "div",
1297
+ {
1298
+ onClick: closeOnNavigation,
1299
+ className: "fixed inset-0 z-[70] flex flex-col bg-main-black px-6 pb-10 duration-200 animate-in fade-in lg:hidden",
1300
+ children: [
1301
+ /* @__PURE__ */ jsx14("div", { className: "flex h-20 shrink-0 items-center justify-end", children: /* @__PURE__ */ jsx14(
1302
+ "button",
1303
+ {
1304
+ type: "button",
1305
+ "aria-label": "Close menu",
1306
+ className: "flex size-10 items-center justify-center text-white",
1307
+ children: /* @__PURE__ */ jsx14(
1308
+ "svg",
1309
+ {
1310
+ className: "size-6",
1311
+ viewBox: "0 0 24 24",
1312
+ fill: "none",
1313
+ stroke: "currentColor",
1314
+ strokeWidth: 2,
1315
+ strokeLinecap: "round",
1316
+ strokeLinejoin: "round",
1317
+ children: /* @__PURE__ */ jsx14("path", { d: "M18 6 6 18M6 6l12 12" })
1318
+ }
1319
+ )
1320
+ }
1321
+ ) }),
1322
+ /* @__PURE__ */ jsx14("nav", { className: "flex flex-col font-mono-tech text-sm uppercase tracking-widest duration-300 ease-out animate-in fade-in slide-in-from-top-4", children: nav.map((item) => /* @__PURE__ */ jsx14(
1323
+ L,
1324
+ {
1325
+ href: item.href,
1326
+ className: "border-b border-main-mist/10 py-4 text-main-mist/80 transition-colors hover:text-main-accent-t1",
1327
+ children: item.label
1328
+ },
1329
+ item.href
1330
+ )) }),
1331
+ cta && /* @__PURE__ */ jsx14("div", { className: "mt-8 w-full block", children: cta })
1332
+ ]
1333
+ }
1334
+ ) })
1335
+ ] });
1336
+ }
1337
+
1015
1338
  // src/components/input.tsx
1016
1339
  import "react";
1017
1340
 
@@ -1019,9 +1342,9 @@ import "react";
1019
1342
  var INPUT_BASE = "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 aria-invalid:border-destructive";
1020
1343
 
1021
1344
  // src/components/input.tsx
1022
- import { jsx as jsx11 } from "react/jsx-runtime";
1345
+ import { jsx as jsx15 } from "react/jsx-runtime";
1023
1346
  function Input({ className, type, ...props }) {
1024
- return /* @__PURE__ */ jsx11(
1347
+ return /* @__PURE__ */ jsx15(
1025
1348
  "input",
1026
1349
  {
1027
1350
  type,
@@ -1039,9 +1362,9 @@ import "react";
1039
1362
  var TEXTAREA_BASE = "border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 aria-invalid:border-destructive flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm";
1040
1363
 
1041
1364
  // src/components/textarea.tsx
1042
- import { jsx as jsx12 } from "react/jsx-runtime";
1365
+ import { jsx as jsx16 } from "react/jsx-runtime";
1043
1366
  function Textarea({ className, ...props }) {
1044
- return /* @__PURE__ */ jsx12("textarea", { "data-slot": "textarea", className: cn(TEXTAREA_BASE, className), ...props });
1367
+ return /* @__PURE__ */ jsx16("textarea", { "data-slot": "textarea", className: cn(TEXTAREA_BASE, className), ...props });
1045
1368
  }
1046
1369
 
1047
1370
  // src/components/input-group.tsx
@@ -1068,12 +1391,12 @@ var INPUT_GROUP_INPUT_CONTROL = "flex-1 rounded-none border-0 bg-transparent sha
1068
1391
  var INPUT_GROUP_TEXTAREA_CONTROL = "flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0";
1069
1392
 
1070
1393
  // src/components/input-group.tsx
1071
- import { jsx as jsx13 } from "react/jsx-runtime";
1394
+ import { jsx as jsx17 } from "react/jsx-runtime";
1072
1395
  function InputGroup({
1073
1396
  className,
1074
1397
  ...props
1075
1398
  }) {
1076
- return /* @__PURE__ */ jsx13(
1399
+ return /* @__PURE__ */ jsx17(
1077
1400
  "div",
1078
1401
  {
1079
1402
  "data-slot": "input-group",
@@ -1088,7 +1411,7 @@ function InputGroupAddon({
1088
1411
  align = "inline-start",
1089
1412
  ...props
1090
1413
  }) {
1091
- return /* @__PURE__ */ jsx13(
1414
+ return /* @__PURE__ */ jsx17(
1092
1415
  "div",
1093
1416
  {
1094
1417
  role: "group",
@@ -1114,7 +1437,7 @@ function InputGroupButton({
1114
1437
  size = "xs",
1115
1438
  ...props
1116
1439
  }) {
1117
- return /* @__PURE__ */ jsx13(
1440
+ return /* @__PURE__ */ jsx17(
1118
1441
  Button,
1119
1442
  {
1120
1443
  type,
@@ -1133,7 +1456,7 @@ function InputGroupText({
1133
1456
  className,
1134
1457
  ...props
1135
1458
  }) {
1136
- return /* @__PURE__ */ jsx13(
1459
+ return /* @__PURE__ */ jsx17(
1137
1460
  "span",
1138
1461
  {
1139
1462
  className: cn(INPUT_GROUP_TEXT, className),
@@ -1145,7 +1468,7 @@ function InputGroupInput({
1145
1468
  className,
1146
1469
  ...props
1147
1470
  }) {
1148
- return /* @__PURE__ */ jsx13(
1471
+ return /* @__PURE__ */ jsx17(
1149
1472
  Input,
1150
1473
  {
1151
1474
  "data-slot": "input-group-control",
@@ -1158,7 +1481,7 @@ function InputGroupTextarea({
1158
1481
  className,
1159
1482
  ...props
1160
1483
  }) {
1161
- return /* @__PURE__ */ jsx13(
1484
+ return /* @__PURE__ */ jsx17(
1162
1485
  Textarea,
1163
1486
  {
1164
1487
  "data-slot": "input-group-control",
@@ -1182,13 +1505,13 @@ var separatorOrientations = {
1182
1505
  };
1183
1506
 
1184
1507
  // src/components/separator.tsx
1185
- import { jsx as jsx14 } from "react/jsx-runtime";
1508
+ import { jsx as jsx18 } from "react/jsx-runtime";
1186
1509
  function Separator({
1187
1510
  className,
1188
1511
  orientation = "horizontal",
1189
1512
  ...props
1190
1513
  }) {
1191
- return /* @__PURE__ */ jsx14(
1514
+ return /* @__PURE__ */ jsx18(
1192
1515
  "div",
1193
1516
  {
1194
1517
  role: "separator",
@@ -1231,9 +1554,9 @@ var ITEM_HEADER = "flex basis-full items-center justify-between gap-2";
1231
1554
  var ITEM_FOOTER = "flex basis-full items-center justify-between gap-2";
1232
1555
 
1233
1556
  // src/components/item.tsx
1234
- import { jsx as jsx15 } from "react/jsx-runtime";
1557
+ import { jsx as jsx19 } from "react/jsx-runtime";
1235
1558
  function ItemGroup({ className, ...props }) {
1236
- return /* @__PURE__ */ jsx15(
1559
+ return /* @__PURE__ */ jsx19(
1237
1560
  "div",
1238
1561
  {
1239
1562
  role: "list",
@@ -1247,7 +1570,7 @@ function ItemSeparator({
1247
1570
  className,
1248
1571
  ...props
1249
1572
  }) {
1250
- return /* @__PURE__ */ jsx15(
1573
+ return /* @__PURE__ */ jsx19(
1251
1574
  Separator,
1252
1575
  {
1253
1576
  "data-slot": "item-separator",
@@ -1265,7 +1588,7 @@ function Item({
1265
1588
  ...props
1266
1589
  }) {
1267
1590
  const Comp = asChild ? Slot : "div";
1268
- return /* @__PURE__ */ jsx15(
1591
+ return /* @__PURE__ */ jsx19(
1269
1592
  Comp,
1270
1593
  {
1271
1594
  "data-slot": "item",
@@ -1281,7 +1604,7 @@ function ItemMedia({
1281
1604
  variant = "default",
1282
1605
  ...props
1283
1606
  }) {
1284
- return /* @__PURE__ */ jsx15(
1607
+ return /* @__PURE__ */ jsx19(
1285
1608
  "div",
1286
1609
  {
1287
1610
  "data-slot": "item-media",
@@ -1295,7 +1618,7 @@ function ItemContent({
1295
1618
  className,
1296
1619
  ...props
1297
1620
  }) {
1298
- return /* @__PURE__ */ jsx15(
1621
+ return /* @__PURE__ */ jsx19(
1299
1622
  "div",
1300
1623
  {
1301
1624
  "data-slot": "item-content",
@@ -1305,7 +1628,7 @@ function ItemContent({
1305
1628
  );
1306
1629
  }
1307
1630
  function ItemTitle({ className, ...props }) {
1308
- return /* @__PURE__ */ jsx15(
1631
+ return /* @__PURE__ */ jsx19(
1309
1632
  "div",
1310
1633
  {
1311
1634
  "data-slot": "item-title",
@@ -1318,7 +1641,7 @@ function ItemDescription({
1318
1641
  className,
1319
1642
  ...props
1320
1643
  }) {
1321
- return /* @__PURE__ */ jsx15(
1644
+ return /* @__PURE__ */ jsx19(
1322
1645
  "p",
1323
1646
  {
1324
1647
  "data-slot": "item-description",
@@ -1331,7 +1654,7 @@ function ItemActions({
1331
1654
  className,
1332
1655
  ...props
1333
1656
  }) {
1334
- return /* @__PURE__ */ jsx15(
1657
+ return /* @__PURE__ */ jsx19(
1335
1658
  "div",
1336
1659
  {
1337
1660
  "data-slot": "item-actions",
@@ -1344,7 +1667,7 @@ function ItemHeader({
1344
1667
  className,
1345
1668
  ...props
1346
1669
  }) {
1347
- return /* @__PURE__ */ jsx15(
1670
+ return /* @__PURE__ */ jsx19(
1348
1671
  "div",
1349
1672
  {
1350
1673
  "data-slot": "item-header",
@@ -1357,7 +1680,7 @@ function ItemFooter({
1357
1680
  className,
1358
1681
  ...props
1359
1682
  }) {
1360
- return /* @__PURE__ */ jsx15(
1683
+ return /* @__PURE__ */ jsx19(
1361
1684
  "div",
1362
1685
  {
1363
1686
  "data-slot": "item-footer",
@@ -1375,9 +1698,9 @@ var KBD_BASE = "bg-muted text-muted-foreground pointer-events-none inline-flex h
1375
1698
  var KBD_GROUP_BASE = "inline-flex items-center gap-1";
1376
1699
 
1377
1700
  // src/components/kbd.tsx
1378
- import { jsx as jsx16 } from "react/jsx-runtime";
1701
+ import { jsx as jsx20 } from "react/jsx-runtime";
1379
1702
  function Kbd({ className, ...props }) {
1380
- return /* @__PURE__ */ jsx16(
1703
+ return /* @__PURE__ */ jsx20(
1381
1704
  "kbd",
1382
1705
  {
1383
1706
  "data-slot": "kbd",
@@ -1387,7 +1710,7 @@ function Kbd({ className, ...props }) {
1387
1710
  );
1388
1711
  }
1389
1712
  function KbdGroup({ className, ...props }) {
1390
- return /* @__PURE__ */ jsx16(
1713
+ return /* @__PURE__ */ jsx20(
1391
1714
  "kbd",
1392
1715
  {
1393
1716
  "data-slot": "kbd-group",
@@ -1399,9 +1722,9 @@ function KbdGroup({ className, ...props }) {
1399
1722
 
1400
1723
  // src/components/pagination.tsx
1401
1724
  import "react";
1402
- import { jsx as jsx17, jsxs as jsxs3 } from "react/jsx-runtime";
1725
+ import { jsx as jsx21, jsxs as jsxs5 } from "react/jsx-runtime";
1403
1726
  function Pagination({ className, ...props }) {
1404
- return /* @__PURE__ */ jsx17(
1727
+ return /* @__PURE__ */ jsx21(
1405
1728
  "nav",
1406
1729
  {
1407
1730
  role: "navigation",
@@ -1416,7 +1739,7 @@ function PaginationContent({
1416
1739
  className,
1417
1740
  ...props
1418
1741
  }) {
1419
- return /* @__PURE__ */ jsx17(
1742
+ return /* @__PURE__ */ jsx21(
1420
1743
  "ul",
1421
1744
  {
1422
1745
  "data-slot": "pagination-content",
@@ -1426,7 +1749,7 @@ function PaginationContent({
1426
1749
  );
1427
1750
  }
1428
1751
  function PaginationItem(props) {
1429
- return /* @__PURE__ */ jsx17("li", { "data-slot": "pagination-item", ...props });
1752
+ return /* @__PURE__ */ jsx21("li", { "data-slot": "pagination-item", ...props });
1430
1753
  }
1431
1754
  function PaginationLink({
1432
1755
  className,
@@ -1434,7 +1757,7 @@ function PaginationLink({
1434
1757
  size = "icon",
1435
1758
  ...props
1436
1759
  }) {
1437
- return /* @__PURE__ */ jsx17(
1760
+ return /* @__PURE__ */ jsx21(
1438
1761
  "a",
1439
1762
  {
1440
1763
  "aria-current": isActive ? "page" : void 0,
@@ -1451,9 +1774,9 @@ function PaginationLink({
1451
1774
  }
1452
1775
  );
1453
1776
  }
1454
- var ChevronLeft = () => /* @__PURE__ */ jsx17("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: /* @__PURE__ */ jsx17("path", { d: "m15 18-6-6 6-6" }) });
1455
- var ChevronRight = () => /* @__PURE__ */ jsx17("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: /* @__PURE__ */ jsx17("path", { d: "m9 18 6-6-6-6" }) });
1456
- var MoreHorizontal = () => /* @__PURE__ */ jsxs3(
1777
+ var ChevronLeft = () => /* @__PURE__ */ jsx21("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: /* @__PURE__ */ jsx21("path", { d: "m15 18-6-6 6-6" }) });
1778
+ var ChevronRight = () => /* @__PURE__ */ jsx21("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: /* @__PURE__ */ jsx21("path", { d: "m9 18 6-6-6-6" }) });
1779
+ var MoreHorizontal = () => /* @__PURE__ */ jsxs5(
1457
1780
  "svg",
1458
1781
  {
1459
1782
  className: "size-4",
@@ -1462,9 +1785,9 @@ var MoreHorizontal = () => /* @__PURE__ */ jsxs3(
1462
1785
  stroke: "currentColor",
1463
1786
  strokeWidth: 2,
1464
1787
  children: [
1465
- /* @__PURE__ */ jsx17("circle", { cx: "12", cy: "12", r: "1" }),
1466
- /* @__PURE__ */ jsx17("circle", { cx: "19", cy: "12", r: "1" }),
1467
- /* @__PURE__ */ jsx17("circle", { cx: "5", cy: "12", r: "1" })
1788
+ /* @__PURE__ */ jsx21("circle", { cx: "12", cy: "12", r: "1" }),
1789
+ /* @__PURE__ */ jsx21("circle", { cx: "19", cy: "12", r: "1" }),
1790
+ /* @__PURE__ */ jsx21("circle", { cx: "5", cy: "12", r: "1" })
1468
1791
  ]
1469
1792
  }
1470
1793
  );
@@ -1472,7 +1795,7 @@ function PaginationPrevious({
1472
1795
  className,
1473
1796
  ...props
1474
1797
  }) {
1475
- return /* @__PURE__ */ jsxs3(
1798
+ return /* @__PURE__ */ jsxs5(
1476
1799
  PaginationLink,
1477
1800
  {
1478
1801
  "aria-label": "Go to previous page",
@@ -1480,8 +1803,8 @@ function PaginationPrevious({
1480
1803
  className: cn("gap-1 px-2.5 sm:pl-2.5", className),
1481
1804
  ...props,
1482
1805
  children: [
1483
- /* @__PURE__ */ jsx17(ChevronLeft, {}),
1484
- /* @__PURE__ */ jsx17("span", { className: "hidden sm:block", children: "Previous" })
1806
+ /* @__PURE__ */ jsx21(ChevronLeft, {}),
1807
+ /* @__PURE__ */ jsx21("span", { className: "hidden sm:block", children: "Previous" })
1485
1808
  ]
1486
1809
  }
1487
1810
  );
@@ -1490,7 +1813,7 @@ function PaginationNext({
1490
1813
  className,
1491
1814
  ...props
1492
1815
  }) {
1493
- return /* @__PURE__ */ jsxs3(
1816
+ return /* @__PURE__ */ jsxs5(
1494
1817
  PaginationLink,
1495
1818
  {
1496
1819
  "aria-label": "Go to next page",
@@ -1498,8 +1821,8 @@ function PaginationNext({
1498
1821
  className: cn("gap-1 px-2.5 sm:pr-2.5", className),
1499
1822
  ...props,
1500
1823
  children: [
1501
- /* @__PURE__ */ jsx17("span", { className: "hidden sm:block", children: "Next" }),
1502
- /* @__PURE__ */ jsx17(ChevronRight, {})
1824
+ /* @__PURE__ */ jsx21("span", { className: "hidden sm:block", children: "Next" }),
1825
+ /* @__PURE__ */ jsx21(ChevronRight, {})
1503
1826
  ]
1504
1827
  }
1505
1828
  );
@@ -1508,7 +1831,7 @@ function PaginationEllipsis({
1508
1831
  className,
1509
1832
  ...props
1510
1833
  }) {
1511
- return /* @__PURE__ */ jsxs3(
1834
+ return /* @__PURE__ */ jsxs5(
1512
1835
  "span",
1513
1836
  {
1514
1837
  "aria-hidden": true,
@@ -1516,8 +1839,8 @@ function PaginationEllipsis({
1516
1839
  className: cn("flex size-9 items-center justify-center", className),
1517
1840
  ...props,
1518
1841
  children: [
1519
- /* @__PURE__ */ jsx17(MoreHorizontal, {}),
1520
- /* @__PURE__ */ jsx17("span", { className: "sr-only", children: "More pages" })
1842
+ /* @__PURE__ */ jsx21(MoreHorizontal, {}),
1843
+ /* @__PURE__ */ jsx21("span", { className: "sr-only", children: "More pages" })
1521
1844
  ]
1522
1845
  }
1523
1846
  );
@@ -1531,9 +1854,9 @@ var PROGRESS_TRACK = "bg-primary/20 relative h-2 w-full overflow-hidden rounded-
1531
1854
  var PROGRESS_INDICATOR = "bg-primary h-full w-full flex-1 transition-all";
1532
1855
 
1533
1856
  // src/components/progress.tsx
1534
- import { jsx as jsx18 } from "react/jsx-runtime";
1857
+ import { jsx as jsx22 } from "react/jsx-runtime";
1535
1858
  function Progress({ className, value = 0, ...props }) {
1536
- return /* @__PURE__ */ jsx18(
1859
+ return /* @__PURE__ */ jsx22(
1537
1860
  "div",
1538
1861
  {
1539
1862
  "data-slot": "progress",
@@ -1543,7 +1866,7 @@ function Progress({ className, value = 0, ...props }) {
1543
1866
  "aria-valuemax": 100,
1544
1867
  className: cn(PROGRESS_TRACK, className),
1545
1868
  ...props,
1546
- children: /* @__PURE__ */ jsx18(
1869
+ children: /* @__PURE__ */ jsx22(
1547
1870
  "div",
1548
1871
  {
1549
1872
  "data-slot": "progress-indicator",
@@ -1562,9 +1885,9 @@ import "react";
1562
1885
  var SKELETON_BASE = "bg-accent animate-pulse rounded-md";
1563
1886
 
1564
1887
  // src/components/skeleton.tsx
1565
- import { jsx as jsx19 } from "react/jsx-runtime";
1888
+ import { jsx as jsx23 } from "react/jsx-runtime";
1566
1889
  function Skeleton({ className, ...props }) {
1567
- return /* @__PURE__ */ jsx19(
1890
+ return /* @__PURE__ */ jsx23(
1568
1891
  "div",
1569
1892
  {
1570
1893
  "data-slot": "skeleton",
@@ -1576,9 +1899,9 @@ function Skeleton({ className, ...props }) {
1576
1899
 
1577
1900
  // src/components/spinner.tsx
1578
1901
  import "react";
1579
- import { jsx as jsx20 } from "react/jsx-runtime";
1902
+ import { jsx as jsx24 } from "react/jsx-runtime";
1580
1903
  function Spinner({ className, ...props }) {
1581
- return /* @__PURE__ */ jsx20(
1904
+ return /* @__PURE__ */ jsx24(
1582
1905
  "svg",
1583
1906
  {
1584
1907
  role: "status",
@@ -1589,7 +1912,7 @@ function Spinner({ className, ...props }) {
1589
1912
  stroke: "currentColor",
1590
1913
  strokeWidth: 2,
1591
1914
  ...props,
1592
- children: /* @__PURE__ */ jsx20("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" })
1915
+ children: /* @__PURE__ */ jsx24("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" })
1593
1916
  }
1594
1917
  );
1595
1918
  }
@@ -1609,14 +1932,14 @@ var TABLE_CELL = "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr
1609
1932
  var TABLE_CAPTION = "text-muted-foreground mt-4 text-sm";
1610
1933
 
1611
1934
  // src/components/table.tsx
1612
- import { jsx as jsx21 } from "react/jsx-runtime";
1935
+ import { jsx as jsx25 } from "react/jsx-runtime";
1613
1936
  function Table({ className, ...props }) {
1614
- return /* @__PURE__ */ jsx21(
1937
+ return /* @__PURE__ */ jsx25(
1615
1938
  "div",
1616
1939
  {
1617
1940
  "data-slot": "table-container",
1618
1941
  className: TABLE_CONTAINER,
1619
- children: /* @__PURE__ */ jsx21(
1942
+ children: /* @__PURE__ */ jsx25(
1620
1943
  "table",
1621
1944
  {
1622
1945
  "data-slot": "table",
@@ -1631,7 +1954,7 @@ function TableHeader({
1631
1954
  className,
1632
1955
  ...props
1633
1956
  }) {
1634
- return /* @__PURE__ */ jsx21(
1957
+ return /* @__PURE__ */ jsx25(
1635
1958
  "thead",
1636
1959
  {
1637
1960
  "data-slot": "table-header",
@@ -1644,7 +1967,7 @@ function TableBody({
1644
1967
  className,
1645
1968
  ...props
1646
1969
  }) {
1647
- return /* @__PURE__ */ jsx21(
1970
+ return /* @__PURE__ */ jsx25(
1648
1971
  "tbody",
1649
1972
  {
1650
1973
  "data-slot": "table-body",
@@ -1657,7 +1980,7 @@ function TableFooter({
1657
1980
  className,
1658
1981
  ...props
1659
1982
  }) {
1660
- return /* @__PURE__ */ jsx21(
1983
+ return /* @__PURE__ */ jsx25(
1661
1984
  "tfoot",
1662
1985
  {
1663
1986
  "data-slot": "table-footer",
@@ -1667,7 +1990,7 @@ function TableFooter({
1667
1990
  );
1668
1991
  }
1669
1992
  function TableRow({ className, ...props }) {
1670
- return /* @__PURE__ */ jsx21(
1993
+ return /* @__PURE__ */ jsx25(
1671
1994
  "tr",
1672
1995
  {
1673
1996
  "data-slot": "table-row",
@@ -1677,7 +2000,7 @@ function TableRow({ className, ...props }) {
1677
2000
  );
1678
2001
  }
1679
2002
  function TableHead({ className, ...props }) {
1680
- return /* @__PURE__ */ jsx21(
2003
+ return /* @__PURE__ */ jsx25(
1681
2004
  "th",
1682
2005
  {
1683
2006
  "data-slot": "table-head",
@@ -1687,7 +2010,7 @@ function TableHead({ className, ...props }) {
1687
2010
  );
1688
2011
  }
1689
2012
  function TableCell({ className, ...props }) {
1690
- return /* @__PURE__ */ jsx21(
2013
+ return /* @__PURE__ */ jsx25(
1691
2014
  "td",
1692
2015
  {
1693
2016
  "data-slot": "table-cell",
@@ -1700,7 +2023,7 @@ function TableCaption({
1700
2023
  className,
1701
2024
  ...props
1702
2025
  }) {
1703
- return /* @__PURE__ */ jsx21(
2026
+ return /* @__PURE__ */ jsx25(
1704
2027
  "caption",
1705
2028
  {
1706
2029
  "data-slot": "table-caption",
@@ -1711,7 +2034,7 @@ function TableCaption({
1711
2034
  }
1712
2035
 
1713
2036
  // src/components/accordion.tsx
1714
- import * as React31 from "react";
2037
+ import * as React35 from "react";
1715
2038
 
1716
2039
  // src/generated/accordion.ts
1717
2040
  var ACCORDION_ITEM = "border-b last:border-b-0";
@@ -1721,16 +2044,16 @@ var ACCORDION_CONTENT = "data-[state=closed]:animate-accordion-up data-[state=op
1721
2044
  var ACCORDION_CONTENT_INNER = "pt-0 pb-4";
1722
2045
 
1723
2046
  // src/components/accordion.tsx
1724
- import { jsx as jsx22, jsxs as jsxs4 } from "react/jsx-runtime";
1725
- var AccordionContext = React31.createContext(null);
2047
+ import { jsx as jsx26, jsxs as jsxs6 } from "react/jsx-runtime";
2048
+ var AccordionContext = React35.createContext(null);
1726
2049
  function useAccordion() {
1727
- const ctx = React31.useContext(AccordionContext);
2050
+ const ctx = React35.useContext(AccordionContext);
1728
2051
  if (!ctx) throw new Error("Accordion parts must be used within <Accordion>");
1729
2052
  return ctx;
1730
2053
  }
1731
- var ItemContext = React31.createContext(null);
2054
+ var ItemContext = React35.createContext(null);
1732
2055
  function useItemValue() {
1733
- const value = React31.useContext(ItemContext);
2056
+ const value = React35.useContext(ItemContext);
1734
2057
  if (value === null)
1735
2058
  throw new Error("AccordionTrigger/Content must be used within <AccordionItem>");
1736
2059
  return value;
@@ -1758,7 +2081,7 @@ function Accordion({
1758
2081
  if (open.includes(v)) setOpen(collapsible ? [] : open);
1759
2082
  else setOpen([v]);
1760
2083
  };
1761
- return /* @__PURE__ */ jsx22(AccordionContext.Provider, { value: { isOpen, toggle }, children: /* @__PURE__ */ jsx22("div", { "data-slot": "accordion", ...props, children }) });
2084
+ return /* @__PURE__ */ jsx26(AccordionContext.Provider, { value: { isOpen, toggle }, children: /* @__PURE__ */ jsx26("div", { "data-slot": "accordion", ...props, children }) });
1762
2085
  }
1763
2086
  function AccordionItem({
1764
2087
  className,
@@ -1766,7 +2089,7 @@ function AccordionItem({
1766
2089
  children,
1767
2090
  ...props
1768
2091
  }) {
1769
- return /* @__PURE__ */ jsx22(ItemContext.Provider, { value, children: /* @__PURE__ */ jsx22(
2092
+ return /* @__PURE__ */ jsx26(ItemContext.Provider, { value, children: /* @__PURE__ */ jsx26(
1770
2093
  "div",
1771
2094
  {
1772
2095
  "data-slot": "accordion-item",
@@ -1785,7 +2108,7 @@ function AccordionTrigger({
1785
2108
  const { isOpen, toggle } = useAccordion();
1786
2109
  const value = useItemValue();
1787
2110
  const open = isOpen(value);
1788
- return /* @__PURE__ */ jsx22("h3", { className: ACCORDION_HEADER, "data-slot": "accordion-header", children: /* @__PURE__ */ jsxs4(
2111
+ return /* @__PURE__ */ jsx26("h3", { className: ACCORDION_HEADER, "data-slot": "accordion-header", children: /* @__PURE__ */ jsxs6(
1789
2112
  "button",
1790
2113
  {
1791
2114
  type: "button",
@@ -1800,7 +2123,7 @@ function AccordionTrigger({
1800
2123
  ...props,
1801
2124
  children: [
1802
2125
  children,
1803
- /* @__PURE__ */ jsx22(
2126
+ /* @__PURE__ */ jsx26(
1804
2127
  "svg",
1805
2128
  {
1806
2129
  xmlns: "http://www.w3.org/2000/svg",
@@ -1813,7 +2136,7 @@ function AccordionTrigger({
1813
2136
  strokeLinecap: "round",
1814
2137
  strokeLinejoin: "round",
1815
2138
  className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200",
1816
- children: /* @__PURE__ */ jsx22("path", { d: "m6 9 6 6 6-6" })
2139
+ children: /* @__PURE__ */ jsx26("path", { d: "m6 9 6 6 6-6" })
1817
2140
  }
1818
2141
  )
1819
2142
  ]
@@ -1828,26 +2151,26 @@ function AccordionContent({
1828
2151
  const { isOpen } = useAccordion();
1829
2152
  const value = useItemValue();
1830
2153
  if (!isOpen(value)) return null;
1831
- return /* @__PURE__ */ jsx22(
2154
+ return /* @__PURE__ */ jsx26(
1832
2155
  "div",
1833
2156
  {
1834
2157
  "data-slot": "accordion-content",
1835
2158
  "data-state": "open",
1836
2159
  className: ACCORDION_CONTENT,
1837
2160
  ...props,
1838
- children: /* @__PURE__ */ jsx22("div", { className: cn(ACCORDION_CONTENT_INNER, className), children })
2161
+ children: /* @__PURE__ */ jsx26("div", { className: cn(ACCORDION_CONTENT_INNER, className), children })
1839
2162
  }
1840
2163
  );
1841
2164
  }
1842
2165
 
1843
2166
  // src/components/collapsible.tsx
1844
- import * as React32 from "react";
1845
- import { jsx as jsx23 } from "react/jsx-runtime";
1846
- var CollapsibleContext = React32.createContext(
2167
+ import * as React36 from "react";
2168
+ import { jsx as jsx27 } from "react/jsx-runtime";
2169
+ var CollapsibleContext = React36.createContext(
1847
2170
  null
1848
2171
  );
1849
2172
  function useCollapsible() {
1850
- const ctx = React32.useContext(CollapsibleContext);
2173
+ const ctx = React36.useContext(CollapsibleContext);
1851
2174
  if (!ctx) throw new Error("Collapsible parts must be used within <Collapsible>");
1852
2175
  return ctx;
1853
2176
  }
@@ -1863,14 +2186,14 @@ function Collapsible({
1863
2186
  defaultValue: defaultOpen,
1864
2187
  ...onOpenChange ? { onChange: onOpenChange } : {}
1865
2188
  });
1866
- return /* @__PURE__ */ jsx23(CollapsibleContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx23("div", { "data-slot": "collapsible", "data-state": isOpen ? "open" : "closed", ...props, children }) });
2189
+ return /* @__PURE__ */ jsx27(CollapsibleContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx27("div", { "data-slot": "collapsible", "data-state": isOpen ? "open" : "closed", ...props, children }) });
1867
2190
  }
1868
2191
  function CollapsibleTrigger({
1869
2192
  onClick,
1870
2193
  ...props
1871
2194
  }) {
1872
2195
  const { open, setOpen } = useCollapsible();
1873
- return /* @__PURE__ */ jsx23(
2196
+ return /* @__PURE__ */ jsx27(
1874
2197
  "button",
1875
2198
  {
1876
2199
  type: "button",
@@ -1891,30 +2214,11 @@ function CollapsibleContent({
1891
2214
  }) {
1892
2215
  const { open } = useCollapsible();
1893
2216
  if (!open) return null;
1894
- return /* @__PURE__ */ jsx23("div", { "data-slot": "collapsible-content", "data-state": "open", ...props, children });
1895
- }
1896
-
1897
- // src/components/container.tsx
1898
- import "react";
1899
-
1900
- // src/generated/container.ts
1901
- var CONTAINER_BASE = "mx-auto w-full max-w-[var(--page-max,90rem)] px-[var(--page-px,1rem)]";
1902
-
1903
- // src/components/container.tsx
1904
- import { jsx as jsx24 } from "react/jsx-runtime";
1905
- function Container({ className, ...props }) {
1906
- return /* @__PURE__ */ jsx24(
1907
- "div",
1908
- {
1909
- "data-slot": "container",
1910
- className: cn(CONTAINER_BASE, className),
1911
- ...props
1912
- }
1913
- );
2217
+ return /* @__PURE__ */ jsx27("div", { "data-slot": "collapsible-content", "data-state": "open", ...props, children });
1914
2218
  }
1915
2219
 
1916
2220
  // src/components/tabs.tsx
1917
- import * as React34 from "react";
2221
+ import * as React37 from "react";
1918
2222
 
1919
2223
  // src/generated/tabs.ts
1920
2224
  var TABS_ROOT = "flex flex-col gap-2";
@@ -1923,10 +2227,10 @@ var TABS_TRIGGER = "data-[state=active]:bg-background focus-visible:border-ring
1923
2227
  var TABS_CONTENT = "flex-1 outline-none";
1924
2228
 
1925
2229
  // src/components/tabs.tsx
1926
- import { jsx as jsx25 } from "react/jsx-runtime";
1927
- var TabsContext = React34.createContext(null);
2230
+ import { jsx as jsx28 } from "react/jsx-runtime";
2231
+ var TabsContext = React37.createContext(null);
1928
2232
  function useTabs() {
1929
- const ctx = React34.useContext(TabsContext);
2233
+ const ctx = React37.useContext(TabsContext);
1930
2234
  if (!ctx) throw new Error("Tabs parts must be used within <Tabs>");
1931
2235
  return ctx;
1932
2236
  }
@@ -1944,7 +2248,7 @@ function Tabs({
1944
2248
  defaultValue,
1945
2249
  ...onValueChange ? { onChange: onValueChange } : {}
1946
2250
  });
1947
- return /* @__PURE__ */ jsx25(TabsContext.Provider, { value: { value: active, setValue, orientation }, children: /* @__PURE__ */ jsx25(
2251
+ return /* @__PURE__ */ jsx28(TabsContext.Provider, { value: { value: active, setValue, orientation }, children: /* @__PURE__ */ jsx28(
1948
2252
  "div",
1949
2253
  {
1950
2254
  "data-slot": "tabs",
@@ -1962,12 +2266,12 @@ function TabsList({
1962
2266
  ...props
1963
2267
  }) {
1964
2268
  const { orientation } = useTabs();
1965
- const items = React34.Children.toArray(children);
2269
+ const items = React37.Children.toArray(children);
1966
2270
  const { activeIndex, setActiveIndex, onKeyDown: rovingKeyDown } = useRovingFocus({
1967
2271
  count: items.length,
1968
2272
  orientation: orientation === "vertical" ? "vertical" : "horizontal"
1969
2273
  });
1970
- return /* @__PURE__ */ jsx25(
2274
+ return /* @__PURE__ */ jsx28(
1971
2275
  "div",
1972
2276
  {
1973
2277
  role: "tablist",
@@ -1980,7 +2284,7 @@ function TabsList({
1980
2284
  },
1981
2285
  ...props,
1982
2286
  children: items.map(
1983
- (child, index) => React34.isValidElement(child) ? React34.cloneElement(child, {
2287
+ (child, index) => React37.isValidElement(child) ? React37.cloneElement(child, {
1984
2288
  __index: index,
1985
2289
  __isFocusItem: index === activeIndex,
1986
2290
  __onFocusItem: () => setActiveIndex(index)
@@ -2000,7 +2304,7 @@ function TabsTrigger({
2000
2304
  }) {
2001
2305
  const { value: active, setValue } = useTabs();
2002
2306
  const selected = active === value;
2003
- return /* @__PURE__ */ jsx25(
2307
+ return /* @__PURE__ */ jsx28(
2004
2308
  "button",
2005
2309
  {
2006
2310
  type: "button",
@@ -2031,7 +2335,7 @@ function TabsContent({
2031
2335
  }) {
2032
2336
  const { value: active } = useTabs();
2033
2337
  if (active !== value) return null;
2034
- return /* @__PURE__ */ jsx25(
2338
+ return /* @__PURE__ */ jsx28(
2035
2339
  "div",
2036
2340
  {
2037
2341
  role: "tabpanel",
@@ -2060,7 +2364,7 @@ var toggleSizeClasses = {
2060
2364
  };
2061
2365
 
2062
2366
  // src/components/toggle.tsx
2063
- import { jsx as jsx26 } from "react/jsx-runtime";
2367
+ import { jsx as jsx29 } from "react/jsx-runtime";
2064
2368
  function toggleVariants({
2065
2369
  variant = "default",
2066
2370
  size = "default",
@@ -2083,7 +2387,7 @@ function Toggle({
2083
2387
  defaultValue: defaultPressed,
2084
2388
  ...onPressedChange ? { onChange: onPressedChange } : {}
2085
2389
  });
2086
- return /* @__PURE__ */ jsx26(
2390
+ return /* @__PURE__ */ jsx29(
2087
2391
  "button",
2088
2392
  {
2089
2393
  type: "button",
@@ -2101,9 +2405,9 @@ function Toggle({
2101
2405
  }
2102
2406
 
2103
2407
  // src/components/toggle-group.tsx
2104
- import * as React36 from "react";
2105
- import { jsx as jsx27 } from "react/jsx-runtime";
2106
- var ToggleGroupContext = React36.createContext({
2408
+ import * as React39 from "react";
2409
+ import { jsx as jsx30 } from "react/jsx-runtime";
2410
+ var ToggleGroupContext = React39.createContext({
2107
2411
  variant: "default",
2108
2412
  size: "default",
2109
2413
  value: [],
@@ -2130,7 +2434,7 @@ function ToggleGroup({
2130
2434
  defaultValue: toArray(defaultValue),
2131
2435
  onChange: (next) => onValueChange?.(type === "single" ? next[0] ?? "" : next)
2132
2436
  });
2133
- const toggle = React36.useCallback(
2437
+ const toggle = React39.useCallback(
2134
2438
  (itemValue) => {
2135
2439
  if (type === "single") {
2136
2440
  setSelected(selected.includes(itemValue) ? [] : [itemValue]);
@@ -2142,7 +2446,7 @@ function ToggleGroup({
2142
2446
  },
2143
2447
  [type, selected, setSelected]
2144
2448
  );
2145
- return /* @__PURE__ */ jsx27(
2449
+ return /* @__PURE__ */ jsx30(
2146
2450
  "div",
2147
2451
  {
2148
2452
  "data-slot": "toggle-group",
@@ -2153,7 +2457,7 @@ function ToggleGroup({
2153
2457
  className
2154
2458
  ),
2155
2459
  ...props,
2156
- children: /* @__PURE__ */ jsx27(ToggleGroupContext.Provider, { value: { variant, size, value: selected, toggle }, children })
2460
+ children: /* @__PURE__ */ jsx30(ToggleGroupContext.Provider, { value: { variant, size, value: selected, toggle }, children })
2157
2461
  }
2158
2462
  );
2159
2463
  }
@@ -2166,11 +2470,11 @@ function ToggleGroupItem({
2166
2470
  onClick,
2167
2471
  ...props
2168
2472
  }) {
2169
- const context = React36.useContext(ToggleGroupContext);
2473
+ const context = React39.useContext(ToggleGroupContext);
2170
2474
  const resolvedVariant = context.variant || variant || "default";
2171
2475
  const resolvedSize = context.size || size || "default";
2172
2476
  const on = context.value.includes(value);
2173
- return /* @__PURE__ */ jsx27(
2477
+ return /* @__PURE__ */ jsx30(
2174
2478
  "button",
2175
2479
  {
2176
2480
  type: "button",
@@ -2196,7 +2500,7 @@ function ToggleGroupItem({
2196
2500
 
2197
2501
  // src/components/switch.tsx
2198
2502
  import "react";
2199
- import { jsx as jsx28 } from "react/jsx-runtime";
2503
+ import { jsx as jsx31 } from "react/jsx-runtime";
2200
2504
  function Switch({
2201
2505
  className,
2202
2506
  checked,
@@ -2212,7 +2516,7 @@ function Switch({
2212
2516
  ...onCheckedChange ? { onChange: onCheckedChange } : {}
2213
2517
  });
2214
2518
  const state = on ? "checked" : "unchecked";
2215
- return /* @__PURE__ */ jsx28(
2519
+ return /* @__PURE__ */ jsx31(
2216
2520
  "button",
2217
2521
  {
2218
2522
  type: "button",
@@ -2230,7 +2534,7 @@ function Switch({
2230
2534
  setOn(!on);
2231
2535
  },
2232
2536
  ...props,
2233
- children: /* @__PURE__ */ jsx28(
2537
+ children: /* @__PURE__ */ jsx31(
2234
2538
  "span",
2235
2539
  {
2236
2540
  "data-slot": "switch-thumb",
@@ -2244,7 +2548,7 @@ function Switch({
2244
2548
 
2245
2549
  // src/components/checkbox.tsx
2246
2550
  import "react";
2247
- import { jsx as jsx29 } from "react/jsx-runtime";
2551
+ import { jsx as jsx32 } from "react/jsx-runtime";
2248
2552
  function Checkbox({
2249
2553
  className,
2250
2554
  checked,
@@ -2260,7 +2564,7 @@ function Checkbox({
2260
2564
  ...onCheckedChange ? { onChange: onCheckedChange } : {}
2261
2565
  });
2262
2566
  const state = on ? "checked" : "unchecked";
2263
- return /* @__PURE__ */ jsx29(
2567
+ return /* @__PURE__ */ jsx32(
2264
2568
  "button",
2265
2569
  {
2266
2570
  type: "button",
@@ -2278,12 +2582,12 @@ function Checkbox({
2278
2582
  setOn(!on);
2279
2583
  },
2280
2584
  ...props,
2281
- children: on && /* @__PURE__ */ jsx29(
2585
+ children: on && /* @__PURE__ */ jsx32(
2282
2586
  "span",
2283
2587
  {
2284
2588
  "data-slot": "checkbox-indicator",
2285
2589
  className: "flex items-center justify-center text-current transition-none",
2286
- children: /* @__PURE__ */ jsx29(
2590
+ children: /* @__PURE__ */ jsx32(
2287
2591
  "svg",
2288
2592
  {
2289
2593
  xmlns: "http://www.w3.org/2000/svg",
@@ -2295,7 +2599,7 @@ function Checkbox({
2295
2599
  strokeLinejoin: "round",
2296
2600
  className: "size-3.5",
2297
2601
  "aria-hidden": "true",
2298
- children: /* @__PURE__ */ jsx29("path", { d: "M20 6 9 17l-5-5" })
2602
+ children: /* @__PURE__ */ jsx32("path", { d: "M20 6 9 17l-5-5" })
2299
2603
  }
2300
2604
  )
2301
2605
  }
@@ -2305,15 +2609,15 @@ function Checkbox({
2305
2609
  }
2306
2610
 
2307
2611
  // src/components/radio-group.tsx
2308
- import * as React39 from "react";
2612
+ import * as React42 from "react";
2309
2613
 
2310
2614
  // src/generated/radio-group.ts
2311
2615
  var RADIO_GROUP_ROOT = "grid gap-3";
2312
2616
  var RADIO_GROUP_ITEM = "border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 aria-invalid:border-destructive aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50";
2313
2617
 
2314
2618
  // src/components/radio-group.tsx
2315
- import { jsx as jsx30 } from "react/jsx-runtime";
2316
- var RadioGroupContext = React39.createContext(
2619
+ import { jsx as jsx33 } from "react/jsx-runtime";
2620
+ var RadioGroupContext = React42.createContext(
2317
2621
  null
2318
2622
  );
2319
2623
  function RadioGroup({
@@ -2330,10 +2634,10 @@ function RadioGroup({
2330
2634
  defaultValue,
2331
2635
  ...onValueChange ? { onChange: onValueChange } : {}
2332
2636
  });
2333
- const itemsRef = React39.useRef([]);
2334
- const [count, setCount] = React39.useState(0);
2637
+ const itemsRef = React42.useRef([]);
2638
+ const [count, setCount] = React42.useState(0);
2335
2639
  const { activeIndex, setActiveIndex, onKeyDown: rovingKeyDown } = useRovingFocus({ count, orientation: "vertical", loop: true });
2336
- const register = React39.useCallback((el) => {
2640
+ const register = React42.useCallback((el) => {
2337
2641
  const list = itemsRef.current;
2338
2642
  let index = list.indexOf(el);
2339
2643
  if (index === -1) {
@@ -2343,11 +2647,11 @@ function RadioGroup({
2343
2647
  }
2344
2648
  return index;
2345
2649
  }, []);
2346
- const ctx = React39.useMemo(
2650
+ const ctx = React42.useMemo(
2347
2651
  () => ({ value: current, setValue: setCurrent, register, activeIndex, setActiveIndex }),
2348
2652
  [current, setCurrent, register, activeIndex, setActiveIndex]
2349
2653
  );
2350
- return /* @__PURE__ */ jsx30(RadioGroupContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx30(
2654
+ return /* @__PURE__ */ jsx33(RadioGroupContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx33(
2351
2655
  "div",
2352
2656
  {
2353
2657
  "data-slot": "radio-group",
@@ -2369,14 +2673,14 @@ function RadioGroupItem({
2369
2673
  onClick,
2370
2674
  ...props
2371
2675
  }) {
2372
- const ctx = React39.useContext(RadioGroupContext);
2676
+ const ctx = React42.useContext(RadioGroupContext);
2373
2677
  if (!ctx) throw new Error("RadioGroupItem must be used within a RadioGroup");
2374
- const indexRef = React39.useRef(-1);
2678
+ const indexRef = React42.useRef(-1);
2375
2679
  const checked = ctx.value === value;
2376
- React39.useEffect(() => {
2680
+ React42.useEffect(() => {
2377
2681
  if (checked) ctx.setActiveIndex(indexRef.current);
2378
2682
  }, [checked]);
2379
- return /* @__PURE__ */ jsx30(
2683
+ return /* @__PURE__ */ jsx33(
2380
2684
  "button",
2381
2685
  {
2382
2686
  ref: (el) => {
@@ -2395,18 +2699,18 @@ function RadioGroupItem({
2395
2699
  ctx.setValue(value);
2396
2700
  },
2397
2701
  ...props,
2398
- children: checked ? /* @__PURE__ */ jsx30(
2702
+ children: checked ? /* @__PURE__ */ jsx33(
2399
2703
  "span",
2400
2704
  {
2401
2705
  "data-slot": "radio-group-indicator",
2402
2706
  className: "relative flex items-center justify-center",
2403
- children: /* @__PURE__ */ jsx30(
2707
+ children: /* @__PURE__ */ jsx33(
2404
2708
  "svg",
2405
2709
  {
2406
2710
  className: "fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2",
2407
2711
  viewBox: "0 0 24 24",
2408
2712
  "aria-hidden": "true",
2409
- children: /* @__PURE__ */ jsx30("circle", { cx: "12", cy: "12", r: "10" })
2713
+ children: /* @__PURE__ */ jsx33("circle", { cx: "12", cy: "12", r: "10" })
2410
2714
  }
2411
2715
  )
2412
2716
  }
@@ -2416,7 +2720,7 @@ function RadioGroupItem({
2416
2720
  }
2417
2721
 
2418
2722
  // src/components/slider.tsx
2419
- import * as React40 from "react";
2723
+ import * as React43 from "react";
2420
2724
 
2421
2725
  // src/generated/slider.ts
2422
2726
  var SLIDER_ROOT = "relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col";
@@ -2425,7 +2729,7 @@ var SLIDER_RANGE = "bg-primary absolute data-[orientation=horizontal]:h-full dat
2425
2729
  var SLIDER_THUMB = "border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50";
2426
2730
 
2427
2731
  // src/components/slider.tsx
2428
- import { jsx as jsx31, jsxs as jsxs5 } from "react/jsx-runtime";
2732
+ import { jsx as jsx34, jsxs as jsxs7 } from "react/jsx-runtime";
2429
2733
  function clampStep(value, min, max, step) {
2430
2734
  const clamped = Math.min(max, Math.max(min, value));
2431
2735
  if (step <= 0) return clamped;
@@ -2452,9 +2756,9 @@ function Slider({
2452
2756
  const current = clampStep(raw, min, max, step);
2453
2757
  const span = Math.max(max - min, Number.EPSILON);
2454
2758
  const percent = Math.min(100, Math.max(0, (current - min) / span * 100));
2455
- const trackRef = React40.useRef(null);
2456
- const draggingRef = React40.useRef(false);
2457
- const valueFromPointer = React40.useCallback(
2759
+ const trackRef = React43.useRef(null);
2760
+ const draggingRef = React43.useRef(false);
2761
+ const valueFromPointer = React43.useCallback(
2458
2762
  (clientX, clientY) => {
2459
2763
  const rect = trackRef.current?.getBoundingClientRect();
2460
2764
  if (!rect) return current;
@@ -2503,7 +2807,7 @@ function Slider({
2503
2807
  };
2504
2808
  const rangeStyle = orientation === "vertical" ? { height: `${percent}%` } : { width: `${percent}%` };
2505
2809
  const thumbStyle = orientation === "vertical" ? { position: "absolute", bottom: `${percent}%`, left: "50%", transform: "translate(-50%, 50%)" } : { position: "absolute", left: `${percent}%`, top: "50%", transform: "translate(-50%, -50%)" };
2506
- return /* @__PURE__ */ jsxs5(
2810
+ return /* @__PURE__ */ jsxs7(
2507
2811
  "span",
2508
2812
  {
2509
2813
  "data-slot": "slider",
@@ -2515,14 +2819,14 @@ function Slider({
2515
2819
  onPointerMove,
2516
2820
  onPointerUp,
2517
2821
  children: [
2518
- /* @__PURE__ */ jsx31(
2822
+ /* @__PURE__ */ jsx34(
2519
2823
  "span",
2520
2824
  {
2521
2825
  ref: trackRef,
2522
2826
  "data-slot": "slider-track",
2523
2827
  "data-orientation": orientation,
2524
2828
  className: SLIDER_TRACK,
2525
- children: /* @__PURE__ */ jsx31(
2829
+ children: /* @__PURE__ */ jsx34(
2526
2830
  "span",
2527
2831
  {
2528
2832
  "data-slot": "slider-range",
@@ -2533,7 +2837,7 @@ function Slider({
2533
2837
  )
2534
2838
  }
2535
2839
  ),
2536
- /* @__PURE__ */ jsx31(
2840
+ /* @__PURE__ */ jsx34(
2537
2841
  "span",
2538
2842
  {
2539
2843
  "data-slot": "slider-thumb",
@@ -2568,15 +2872,15 @@ var scrollBarOrientations = {
2568
2872
  };
2569
2873
 
2570
2874
  // src/components/scroll-area.tsx
2571
- import { jsx as jsx32, jsxs as jsxs6 } from "react/jsx-runtime";
2875
+ import { jsx as jsx35, jsxs as jsxs8 } from "react/jsx-runtime";
2572
2876
  function ScrollArea({
2573
2877
  className,
2574
2878
  children,
2575
2879
  ...props
2576
2880
  }) {
2577
- return /* @__PURE__ */ jsxs6("div", { "data-slot": "scroll-area", className: cn("relative", className), ...props, children: [
2578
- /* @__PURE__ */ jsx32("div", { "data-slot": "scroll-area-viewport", className: SCROLL_AREA_VIEWPORT, children }),
2579
- /* @__PURE__ */ jsx32(ScrollBar, {})
2881
+ return /* @__PURE__ */ jsxs8("div", { "data-slot": "scroll-area", className: cn("relative", className), ...props, children: [
2882
+ /* @__PURE__ */ jsx35("div", { "data-slot": "scroll-area-viewport", className: SCROLL_AREA_VIEWPORT, children }),
2883
+ /* @__PURE__ */ jsx35(ScrollBar, {})
2580
2884
  ] });
2581
2885
  }
2582
2886
  function ScrollBar({
@@ -2584,20 +2888,20 @@ function ScrollBar({
2584
2888
  orientation = "vertical",
2585
2889
  ...props
2586
2890
  }) {
2587
- return /* @__PURE__ */ jsx32(
2891
+ return /* @__PURE__ */ jsx35(
2588
2892
  "div",
2589
2893
  {
2590
2894
  "data-slot": "scroll-area-scrollbar",
2591
2895
  "data-orientation": orientation,
2592
2896
  className: cn(SCROLLBAR_BASE, scrollBarOrientations[orientation], className),
2593
2897
  ...props,
2594
- children: /* @__PURE__ */ jsx32("div", { "data-slot": "scroll-area-thumb", className: SCROLL_AREA_THUMB })
2898
+ children: /* @__PURE__ */ jsx35("div", { "data-slot": "scroll-area-thumb", className: SCROLL_AREA_THUMB })
2595
2899
  }
2596
2900
  );
2597
2901
  }
2598
2902
 
2599
2903
  // src/components/sidebar.tsx
2600
- import * as React42 from "react";
2904
+ import * as React45 from "react";
2601
2905
 
2602
2906
  // src/generated/sidebar.ts
2603
2907
  var SIDEBAR_MENU_BUTTON_BASE = "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0";
@@ -2627,12 +2931,12 @@ var SIDEBAR_MENU = "flex w-full min-w-0 flex-col gap-1";
2627
2931
  var SIDEBAR_MENU_ITEM = "group/menu-item relative";
2628
2932
 
2629
2933
  // src/components/sidebar.tsx
2630
- import { jsx as jsx33, jsxs as jsxs7 } from "react/jsx-runtime";
2934
+ import { jsx as jsx36, jsxs as jsxs9 } from "react/jsx-runtime";
2631
2935
  var SIDEBAR_WIDTH = "16rem";
2632
2936
  var SIDEBAR_WIDTH_ICON = "3rem";
2633
- var SidebarContext = React42.createContext(null);
2937
+ var SidebarContext = React45.createContext(null);
2634
2938
  function useSidebar() {
2635
- const ctx = React42.useContext(SidebarContext);
2939
+ const ctx = React45.useContext(SidebarContext);
2636
2940
  if (!ctx) throw new Error("useSidebar must be used within a SidebarProvider.");
2637
2941
  return ctx;
2638
2942
  }
@@ -2650,16 +2954,16 @@ function SidebarProvider({
2650
2954
  defaultValue: defaultOpen,
2651
2955
  ...onOpenChange ? { onChange: onOpenChange } : {}
2652
2956
  });
2653
- const toggleSidebar = React42.useCallback(
2957
+ const toggleSidebar = React45.useCallback(
2654
2958
  () => setOpen(!open),
2655
2959
  [open, setOpen]
2656
2960
  );
2657
2961
  const state = open ? "expanded" : "collapsed";
2658
- const contextValue = React42.useMemo(
2962
+ const contextValue = React45.useMemo(
2659
2963
  () => ({ state, open, setOpen, toggleSidebar }),
2660
2964
  [state, open, setOpen, toggleSidebar]
2661
2965
  );
2662
- return /* @__PURE__ */ jsx33(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx33(
2966
+ return /* @__PURE__ */ jsx36(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx36(
2663
2967
  "div",
2664
2968
  {
2665
2969
  "data-slot": "sidebar-wrapper",
@@ -2684,7 +2988,7 @@ function Sidebar({
2684
2988
  }) {
2685
2989
  const { state } = useSidebar();
2686
2990
  if (collapsible === "none") {
2687
- return /* @__PURE__ */ jsx33(
2991
+ return /* @__PURE__ */ jsx36(
2688
2992
  "div",
2689
2993
  {
2690
2994
  "data-slot": "sidebar",
@@ -2694,7 +2998,7 @@ function Sidebar({
2694
2998
  }
2695
2999
  );
2696
3000
  }
2697
- return /* @__PURE__ */ jsx33(
3001
+ return /* @__PURE__ */ jsx36(
2698
3002
  "div",
2699
3003
  {
2700
3004
  className: "group peer text-sidebar-foreground hidden md:block",
@@ -2703,7 +3007,7 @@ function Sidebar({
2703
3007
  "data-variant": variant,
2704
3008
  "data-side": side,
2705
3009
  "data-slot": "sidebar",
2706
- children: /* @__PURE__ */ jsx33(
3010
+ children: /* @__PURE__ */ jsx36(
2707
3011
  "div",
2708
3012
  {
2709
3013
  "data-slot": "sidebar-inner",
@@ -2722,7 +3026,7 @@ function SidebarTrigger({
2722
3026
  ...props
2723
3027
  }) {
2724
3028
  const { toggleSidebar } = useSidebar();
2725
- return /* @__PURE__ */ jsxs7(
3029
+ return /* @__PURE__ */ jsxs9(
2726
3030
  "button",
2727
3031
  {
2728
3032
  type: "button",
@@ -2737,7 +3041,7 @@ function SidebarTrigger({
2737
3041
  ...props,
2738
3042
  children: [
2739
3043
  children,
2740
- /* @__PURE__ */ jsx33("span", { className: "sr-only", children: "Toggle Sidebar" })
3044
+ /* @__PURE__ */ jsx36("span", { className: "sr-only", children: "Toggle Sidebar" })
2741
3045
  ]
2742
3046
  }
2743
3047
  );
@@ -2747,7 +3051,7 @@ function SidebarRail({
2747
3051
  ...props
2748
3052
  }) {
2749
3053
  const { toggleSidebar } = useSidebar();
2750
- return /* @__PURE__ */ jsx33(
3054
+ return /* @__PURE__ */ jsx36(
2751
3055
  "button",
2752
3056
  {
2753
3057
  type: "button",
@@ -2763,7 +3067,7 @@ function SidebarRail({
2763
3067
  );
2764
3068
  }
2765
3069
  function SidebarInset({ className, ...props }) {
2766
- return /* @__PURE__ */ jsx33(
3070
+ return /* @__PURE__ */ jsx36(
2767
3071
  "main",
2768
3072
  {
2769
3073
  "data-slot": "sidebar-inset",
@@ -2773,7 +3077,7 @@ function SidebarInset({ className, ...props }) {
2773
3077
  );
2774
3078
  }
2775
3079
  function SidebarHeader({ className, ...props }) {
2776
- return /* @__PURE__ */ jsx33(
3080
+ return /* @__PURE__ */ jsx36(
2777
3081
  "div",
2778
3082
  {
2779
3083
  "data-slot": "sidebar-header",
@@ -2784,7 +3088,7 @@ function SidebarHeader({ className, ...props }) {
2784
3088
  );
2785
3089
  }
2786
3090
  function SidebarFooter({ className, ...props }) {
2787
- return /* @__PURE__ */ jsx33(
3091
+ return /* @__PURE__ */ jsx36(
2788
3092
  "div",
2789
3093
  {
2790
3094
  "data-slot": "sidebar-footer",
@@ -2798,7 +3102,7 @@ function SidebarSeparator({
2798
3102
  className,
2799
3103
  ...props
2800
3104
  }) {
2801
- return /* @__PURE__ */ jsx33(
3105
+ return /* @__PURE__ */ jsx36(
2802
3106
  "div",
2803
3107
  {
2804
3108
  "data-slot": "sidebar-separator",
@@ -2810,7 +3114,7 @@ function SidebarSeparator({
2810
3114
  );
2811
3115
  }
2812
3116
  function SidebarContent({ className, ...props }) {
2813
- return /* @__PURE__ */ jsx33(
3117
+ return /* @__PURE__ */ jsx36(
2814
3118
  "div",
2815
3119
  {
2816
3120
  "data-slot": "sidebar-content",
@@ -2821,7 +3125,7 @@ function SidebarContent({ className, ...props }) {
2821
3125
  );
2822
3126
  }
2823
3127
  function SidebarGroup({ className, ...props }) {
2824
- return /* @__PURE__ */ jsx33(
3128
+ return /* @__PURE__ */ jsx36(
2825
3129
  "div",
2826
3130
  {
2827
3131
  "data-slot": "sidebar-group",
@@ -2837,7 +3141,7 @@ function SidebarGroupLabel({
2837
3141
  ...props
2838
3142
  }) {
2839
3143
  const Comp = asChild ? Slot : "div";
2840
- return /* @__PURE__ */ jsx33(
3144
+ return /* @__PURE__ */ jsx36(
2841
3145
  Comp,
2842
3146
  {
2843
3147
  "data-slot": "sidebar-group-label",
@@ -2851,7 +3155,7 @@ function SidebarGroupContent({
2851
3155
  className,
2852
3156
  ...props
2853
3157
  }) {
2854
- return /* @__PURE__ */ jsx33(
3158
+ return /* @__PURE__ */ jsx36(
2855
3159
  "div",
2856
3160
  {
2857
3161
  "data-slot": "sidebar-group-content",
@@ -2862,7 +3166,7 @@ function SidebarGroupContent({
2862
3166
  );
2863
3167
  }
2864
3168
  function SidebarMenu({ className, ...props }) {
2865
- return /* @__PURE__ */ jsx33(
3169
+ return /* @__PURE__ */ jsx36(
2866
3170
  "ul",
2867
3171
  {
2868
3172
  "data-slot": "sidebar-menu",
@@ -2873,7 +3177,7 @@ function SidebarMenu({ className, ...props }) {
2873
3177
  );
2874
3178
  }
2875
3179
  function SidebarMenuItem({ className, ...props }) {
2876
- return /* @__PURE__ */ jsx33(
3180
+ return /* @__PURE__ */ jsx36(
2877
3181
  "li",
2878
3182
  {
2879
3183
  "data-slot": "sidebar-menu-item",
@@ -2892,7 +3196,7 @@ function SidebarMenuButton({
2892
3196
  ...props
2893
3197
  }) {
2894
3198
  const Comp = asChild ? Slot : "button";
2895
- return /* @__PURE__ */ jsx33(
3199
+ return /* @__PURE__ */ jsx36(
2896
3200
  Comp,
2897
3201
  {
2898
3202
  "data-slot": "sidebar-menu-button",
@@ -2911,7 +3215,7 @@ function SidebarMenuButton({
2911
3215
  }
2912
3216
 
2913
3217
  // src/components/carousel.tsx
2914
- import * as React43 from "react";
3218
+ import * as React46 from "react";
2915
3219
 
2916
3220
  // src/generated/carousel.ts
2917
3221
  var CAROUSEL_CONTENT_VIEWPORT = "overflow-hidden";
@@ -2930,10 +3234,10 @@ var CAROUSEL_EDGE_FADE_PREV = "pointer-events-none absolute inset-y-0 left-0 w-2
2930
3234
  var CAROUSEL_EDGE_FADE_NEXT = "pointer-events-none absolute inset-y-0 right-0 w-20 bg-gradient-to-l from-background via-background/60 to-transparent transition-opacity duration-300";
2931
3235
 
2932
3236
  // src/components/carousel.tsx
2933
- import { Fragment, jsx as jsx34, jsxs as jsxs8 } from "react/jsx-runtime";
2934
- var CarouselContext = React43.createContext(null);
3237
+ import { Fragment as Fragment3, jsx as jsx37, jsxs as jsxs10 } from "react/jsx-runtime";
3238
+ var CarouselContext = React46.createContext(null);
2935
3239
  function useCarousel() {
2936
- const context = React43.useContext(CarouselContext);
3240
+ const context = React46.useContext(CarouselContext);
2937
3241
  if (!context) {
2938
3242
  throw new Error("useCarousel must be used within a <Carousel />");
2939
3243
  }
@@ -2954,13 +3258,13 @@ function Carousel({
2954
3258
  defaultValue: defaultIndex,
2955
3259
  onChange: onIndexChange
2956
3260
  });
2957
- const [count, setCount] = React43.useState(0);
3261
+ const [count, setCount] = React46.useState(0);
2958
3262
  const canScrollPrev = index > 0;
2959
3263
  const canScrollNext = index < count - 1;
2960
- const scrollPrev = React43.useCallback(() => {
3264
+ const scrollPrev = React46.useCallback(() => {
2961
3265
  if (index > 0) setIndex(index - 1);
2962
3266
  }, [index, setIndex]);
2963
- const scrollNext = React43.useCallback(() => {
3267
+ const scrollNext = React46.useCallback(() => {
2964
3268
  if (index < count - 1) setIndex(index + 1);
2965
3269
  }, [index, count, setIndex]);
2966
3270
  const handleKeyDown = (event) => {
@@ -2973,7 +3277,7 @@ function Carousel({
2973
3277
  }
2974
3278
  onKeyDown?.(event);
2975
3279
  };
2976
- return /* @__PURE__ */ jsx34(
3280
+ return /* @__PURE__ */ jsx37(
2977
3281
  CarouselContext.Provider,
2978
3282
  {
2979
3283
  value: {
@@ -2986,7 +3290,7 @@ function Carousel({
2986
3290
  canScrollPrev,
2987
3291
  canScrollNext
2988
3292
  },
2989
- children: /* @__PURE__ */ jsx34(
3293
+ children: /* @__PURE__ */ jsx37(
2990
3294
  "div",
2991
3295
  {
2992
3296
  onKeyDownCapture: handleKeyDown,
@@ -3008,12 +3312,12 @@ function CarouselContent({
3008
3312
  ...props
3009
3313
  }) {
3010
3314
  const { orientation, index, setCount } = useCarousel();
3011
- const childCount = React43.Children.count(children);
3012
- React43.useEffect(() => {
3315
+ const childCount = React46.Children.count(children);
3316
+ React46.useEffect(() => {
3013
3317
  setCount(childCount);
3014
3318
  }, [childCount, setCount]);
3015
3319
  const transform = orientation === "horizontal" ? `translate3d(-${index * 100}%, 0, 0)` : `translate3d(0, -${index * 100}%, 0)`;
3016
- return /* @__PURE__ */ jsx34("div", { className: CAROUSEL_CONTENT_VIEWPORT, "data-slot": "carousel-content", children: /* @__PURE__ */ jsx34(
3320
+ return /* @__PURE__ */ jsx37("div", { className: CAROUSEL_CONTENT_VIEWPORT, "data-slot": "carousel-content", children: /* @__PURE__ */ jsx37(
3017
3321
  "div",
3018
3322
  {
3019
3323
  className: cn(
@@ -3032,7 +3336,7 @@ function CarouselItem({
3032
3336
  ...props
3033
3337
  }) {
3034
3338
  const { orientation } = useCarousel();
3035
- return /* @__PURE__ */ jsx34(
3339
+ return /* @__PURE__ */ jsx37(
3036
3340
  "div",
3037
3341
  {
3038
3342
  role: "group",
@@ -3051,8 +3355,8 @@ function CarouselEdgeFade({
3051
3355
  className
3052
3356
  }) {
3053
3357
  const { canScrollPrev, canScrollNext } = useCarousel();
3054
- return /* @__PURE__ */ jsxs8(Fragment, { children: [
3055
- /* @__PURE__ */ jsx34(
3358
+ return /* @__PURE__ */ jsxs10(Fragment3, { children: [
3359
+ /* @__PURE__ */ jsx37(
3056
3360
  "div",
3057
3361
  {
3058
3362
  "aria-hidden": true,
@@ -3063,7 +3367,7 @@ function CarouselEdgeFade({
3063
3367
  )
3064
3368
  }
3065
3369
  ),
3066
- /* @__PURE__ */ jsx34(
3370
+ /* @__PURE__ */ jsx37(
3067
3371
  "div",
3068
3372
  {
3069
3373
  "aria-hidden": true,
@@ -3083,7 +3387,7 @@ function CarouselPrevious({
3083
3387
  ...props
3084
3388
  }) {
3085
3389
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
3086
- return /* @__PURE__ */ jsxs8(
3390
+ return /* @__PURE__ */ jsxs10(
3087
3391
  Button,
3088
3392
  {
3089
3393
  "data-slot": "carousel-previous",
@@ -3098,7 +3402,7 @@ function CarouselPrevious({
3098
3402
  onClick: scrollPrev,
3099
3403
  ...props,
3100
3404
  children: [
3101
- /* @__PURE__ */ jsx34(
3405
+ /* @__PURE__ */ jsx37(
3102
3406
  "svg",
3103
3407
  {
3104
3408
  xmlns: "http://www.w3.org/2000/svg",
@@ -3109,10 +3413,10 @@ function CarouselPrevious({
3109
3413
  strokeLinecap: "round",
3110
3414
  strokeLinejoin: "round",
3111
3415
  "aria-hidden": "true",
3112
- children: /* @__PURE__ */ jsx34("path", { d: "m15 18-6-6 6-6" })
3416
+ children: /* @__PURE__ */ jsx37("path", { d: "m15 18-6-6 6-6" })
3113
3417
  }
3114
3418
  ),
3115
- /* @__PURE__ */ jsx34("span", { className: "sr-only", children: "Previous slide" })
3419
+ /* @__PURE__ */ jsx37("span", { className: "sr-only", children: "Previous slide" })
3116
3420
  ]
3117
3421
  }
3118
3422
  );
@@ -3124,7 +3428,7 @@ function CarouselNext({
3124
3428
  ...props
3125
3429
  }) {
3126
3430
  const { orientation, scrollNext, canScrollNext } = useCarousel();
3127
- return /* @__PURE__ */ jsxs8(
3431
+ return /* @__PURE__ */ jsxs10(
3128
3432
  Button,
3129
3433
  {
3130
3434
  "data-slot": "carousel-next",
@@ -3139,7 +3443,7 @@ function CarouselNext({
3139
3443
  onClick: scrollNext,
3140
3444
  ...props,
3141
3445
  children: [
3142
- /* @__PURE__ */ jsx34(
3446
+ /* @__PURE__ */ jsx37(
3143
3447
  "svg",
3144
3448
  {
3145
3449
  xmlns: "http://www.w3.org/2000/svg",
@@ -3150,17 +3454,17 @@ function CarouselNext({
3150
3454
  strokeLinecap: "round",
3151
3455
  strokeLinejoin: "round",
3152
3456
  "aria-hidden": "true",
3153
- children: /* @__PURE__ */ jsx34("path", { d: "m9 18 6-6-6-6" })
3457
+ children: /* @__PURE__ */ jsx37("path", { d: "m9 18 6-6-6-6" })
3154
3458
  }
3155
3459
  ),
3156
- /* @__PURE__ */ jsx34("span", { className: "sr-only", children: "Next slide" })
3460
+ /* @__PURE__ */ jsx37("span", { className: "sr-only", children: "Next slide" })
3157
3461
  ]
3158
3462
  }
3159
3463
  );
3160
3464
  }
3161
3465
 
3162
3466
  // src/components/input-otp.tsx
3163
- import * as React44 from "react";
3467
+ import * as React47 from "react";
3164
3468
 
3165
3469
  // src/generated/input-otp.ts
3166
3470
  var INPUT_OTP_CONTAINER = "relative flex items-center gap-2 has-disabled:opacity-50";
@@ -3171,10 +3475,10 @@ var INPUT_OTP_SLOT_CARET_WRAPPER = "pointer-events-none absolute inset-0 flex it
3171
3475
  var INPUT_OTP_SLOT_CARET = "animate-caret-blink bg-foreground h-4 w-px duration-1000";
3172
3476
 
3173
3477
  // src/components/input-otp.tsx
3174
- import { jsx as jsx35, jsxs as jsxs9 } from "react/jsx-runtime";
3175
- var InputOTPContext = React44.createContext(null);
3478
+ import { jsx as jsx38, jsxs as jsxs11 } from "react/jsx-runtime";
3479
+ var InputOTPContext = React47.createContext(null);
3176
3480
  function useInputOTP() {
3177
- const context = React44.useContext(InputOTPContext);
3481
+ const context = React47.useContext(InputOTPContext);
3178
3482
  if (!context) {
3179
3483
  throw new Error("InputOTP slots must be used within an <InputOTP />");
3180
3484
  }
@@ -3196,16 +3500,16 @@ function InputOTP({
3196
3500
  defaultValue,
3197
3501
  onChange
3198
3502
  });
3199
- const [focused, setFocused] = React44.useState(false);
3503
+ const [focused, setFocused] = React47.useState(false);
3200
3504
  const activeIndex = focused ? Math.min(value.length, maxLength - 1) : -1;
3201
- return /* @__PURE__ */ jsx35(InputOTPContext.Provider, { value: { value, maxLength, activeIndex }, children: /* @__PURE__ */ jsxs9(
3505
+ return /* @__PURE__ */ jsx38(InputOTPContext.Provider, { value: { value, maxLength, activeIndex }, children: /* @__PURE__ */ jsxs11(
3202
3506
  "div",
3203
3507
  {
3204
3508
  "data-slot": "input-otp",
3205
3509
  className: cn(INPUT_OTP_CONTAINER, containerClassName),
3206
3510
  children: [
3207
3511
  children,
3208
- /* @__PURE__ */ jsx35(
3512
+ /* @__PURE__ */ jsx38(
3209
3513
  "input",
3210
3514
  {
3211
3515
  inputMode: "numeric",
@@ -3228,7 +3532,7 @@ function InputOTPGroup({
3228
3532
  className,
3229
3533
  ...props
3230
3534
  }) {
3231
- return /* @__PURE__ */ jsx35(
3535
+ return /* @__PURE__ */ jsx38(
3232
3536
  "div",
3233
3537
  {
3234
3538
  "data-slot": "input-otp-group",
@@ -3242,7 +3546,7 @@ function InputOTPSlot({ index, className, ...props }) {
3242
3546
  const char = value[index];
3243
3547
  const isActive = activeIndex === index;
3244
3548
  const hasFakeCaret = isActive && char === void 0;
3245
- return /* @__PURE__ */ jsxs9(
3549
+ return /* @__PURE__ */ jsxs11(
3246
3550
  "div",
3247
3551
  {
3248
3552
  "data-slot": "input-otp-slot",
@@ -3251,13 +3555,13 @@ function InputOTPSlot({ index, className, ...props }) {
3251
3555
  ...props,
3252
3556
  children: [
3253
3557
  char,
3254
- hasFakeCaret && /* @__PURE__ */ jsx35("div", { className: INPUT_OTP_SLOT_CARET_WRAPPER, children: /* @__PURE__ */ jsx35("div", { className: INPUT_OTP_SLOT_CARET }) })
3558
+ hasFakeCaret && /* @__PURE__ */ jsx38("div", { className: INPUT_OTP_SLOT_CARET_WRAPPER, children: /* @__PURE__ */ jsx38("div", { className: INPUT_OTP_SLOT_CARET }) })
3255
3559
  ]
3256
3560
  }
3257
3561
  );
3258
3562
  }
3259
3563
  function InputOTPSeparator({ ...props }) {
3260
- return /* @__PURE__ */ jsx35("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ jsx35(
3564
+ return /* @__PURE__ */ jsx38("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ jsx38(
3261
3565
  "svg",
3262
3566
  {
3263
3567
  xmlns: "http://www.w3.org/2000/svg",
@@ -3268,27 +3572,27 @@ function InputOTPSeparator({ ...props }) {
3268
3572
  strokeLinecap: "round",
3269
3573
  strokeLinejoin: "round",
3270
3574
  "aria-hidden": "true",
3271
- children: /* @__PURE__ */ jsx35("path", { d: "M5 12h14" })
3575
+ children: /* @__PURE__ */ jsx38("path", { d: "M5 12h14" })
3272
3576
  }
3273
3577
  ) });
3274
3578
  }
3275
3579
 
3276
3580
  // src/components/tooltip.tsx
3277
- import * as React45 from "react";
3581
+ import * as React48 from "react";
3278
3582
 
3279
3583
  // src/generated/tooltip.ts
3280
3584
  var TOOLTIP_CONTENT = "bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit rounded-md px-3 py-1.5 text-xs text-balance";
3281
3585
 
3282
3586
  // src/components/tooltip.tsx
3283
- import { Fragment as Fragment2, jsx as jsx36 } from "react/jsx-runtime";
3284
- var TooltipContext = React45.createContext(null);
3587
+ import { Fragment as Fragment4, jsx as jsx39 } from "react/jsx-runtime";
3588
+ var TooltipContext = React48.createContext(null);
3285
3589
  function useTooltip() {
3286
- const ctx = React45.useContext(TooltipContext);
3590
+ const ctx = React48.useContext(TooltipContext);
3287
3591
  if (!ctx) throw new Error("Tooltip parts must be used within <Tooltip>");
3288
3592
  return ctx;
3289
3593
  }
3290
3594
  function TooltipProvider({ children }) {
3291
- return /* @__PURE__ */ jsx36(Fragment2, { children });
3595
+ return /* @__PURE__ */ jsx39(Fragment4, { children });
3292
3596
  }
3293
3597
  function Tooltip({ open, defaultOpen = false, onOpenChange, children }) {
3294
3598
  const [isOpen, setOpen] = useControllableState({
@@ -3296,8 +3600,8 @@ function Tooltip({ open, defaultOpen = false, onOpenChange, children }) {
3296
3600
  defaultValue: defaultOpen,
3297
3601
  ...onOpenChange ? { onChange: onOpenChange } : {}
3298
3602
  });
3299
- const anchorRef = React45.useRef(null);
3300
- return /* @__PURE__ */ jsx36(TooltipProvider, { children: /* @__PURE__ */ jsx36(TooltipContext.Provider, { value: { open: isOpen, setOpen, anchorRef }, children }) });
3603
+ const anchorRef = React48.useRef(null);
3604
+ return /* @__PURE__ */ jsx39(TooltipProvider, { children: /* @__PURE__ */ jsx39(TooltipContext.Provider, { value: { open: isOpen, setOpen, anchorRef }, children }) });
3301
3605
  }
3302
3606
  function TooltipTrigger({
3303
3607
  asChild = false,
@@ -3309,7 +3613,7 @@ function TooltipTrigger({
3309
3613
  }) {
3310
3614
  const { setOpen, anchorRef } = useTooltip();
3311
3615
  const Comp = asChild ? Slot : "button";
3312
- return /* @__PURE__ */ jsx36(
3616
+ return /* @__PURE__ */ jsx39(
3313
3617
  Comp,
3314
3618
  {
3315
3619
  "data-slot": "tooltip-trigger",
@@ -3350,7 +3654,7 @@ function TooltipContent({
3350
3654
  offset: sideOffset
3351
3655
  });
3352
3656
  if (!isPresent) return null;
3353
- return /* @__PURE__ */ jsx36(Portal, { children: /* @__PURE__ */ jsx36(
3657
+ return /* @__PURE__ */ jsx39(Portal, { children: /* @__PURE__ */ jsx39(
3354
3658
  "div",
3355
3659
  {
3356
3660
  "data-slot": "tooltip-content",
@@ -3367,16 +3671,16 @@ function TooltipContent({
3367
3671
  }
3368
3672
 
3369
3673
  // src/components/popover.tsx
3370
- import * as React46 from "react";
3674
+ import * as React49 from "react";
3371
3675
 
3372
3676
  // src/generated/popover.ts
3373
3677
  var POPOVER_CONTENT = "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-hidden";
3374
3678
 
3375
3679
  // src/components/popover.tsx
3376
- import { jsx as jsx37 } from "react/jsx-runtime";
3377
- var PopoverContext = React46.createContext(null);
3680
+ import { jsx as jsx40 } from "react/jsx-runtime";
3681
+ var PopoverContext = React49.createContext(null);
3378
3682
  function usePopover() {
3379
- const ctx = React46.useContext(PopoverContext);
3683
+ const ctx = React49.useContext(PopoverContext);
3380
3684
  if (!ctx) throw new Error("Popover parts must be used within <Popover>");
3381
3685
  return ctx;
3382
3686
  }
@@ -3386,13 +3690,13 @@ function Popover({ open, defaultOpen = false, onOpenChange, children }) {
3386
3690
  defaultValue: defaultOpen,
3387
3691
  ...onOpenChange ? { onChange: onOpenChange } : {}
3388
3692
  });
3389
- const anchorRef = React46.useRef(null);
3390
- return /* @__PURE__ */ jsx37(PopoverContext.Provider, { value: { open: isOpen, setOpen, anchorRef }, children });
3693
+ const anchorRef = React49.useRef(null);
3694
+ return /* @__PURE__ */ jsx40(PopoverContext.Provider, { value: { open: isOpen, setOpen, anchorRef }, children });
3391
3695
  }
3392
3696
  function PopoverTrigger({ asChild = false, onClick, ...props }) {
3393
3697
  const { open, setOpen, anchorRef } = usePopover();
3394
3698
  const Comp = asChild ? Slot : "button";
3395
- return /* @__PURE__ */ jsx37(
3699
+ return /* @__PURE__ */ jsx40(
3396
3700
  Comp,
3397
3701
  {
3398
3702
  "data-slot": "popover-trigger",
@@ -3409,7 +3713,7 @@ function PopoverTrigger({ asChild = false, onClick, ...props }) {
3409
3713
  function PopoverAnchor({ asChild = false, ...props }) {
3410
3714
  const { anchorRef } = usePopover();
3411
3715
  const Comp = asChild ? Slot : "div";
3412
- return /* @__PURE__ */ jsx37(
3716
+ return /* @__PURE__ */ jsx40(
3413
3717
  Comp,
3414
3718
  {
3415
3719
  "data-slot": "popover-anchor",
@@ -3441,7 +3745,7 @@ function PopoverContent({
3441
3745
  exclude: [anchorRef]
3442
3746
  });
3443
3747
  if (!isPresent) return null;
3444
- return /* @__PURE__ */ jsx37(Portal, { children: /* @__PURE__ */ jsx37(
3748
+ return /* @__PURE__ */ jsx40(Portal, { children: /* @__PURE__ */ jsx40(
3445
3749
  "div",
3446
3750
  {
3447
3751
  "data-slot": "popover-content",
@@ -3461,16 +3765,16 @@ function PopoverContent({
3461
3765
  }
3462
3766
 
3463
3767
  // src/components/hover-card.tsx
3464
- import * as React47 from "react";
3768
+ import * as React50 from "react";
3465
3769
 
3466
3770
  // src/generated/hover-card.ts
3467
3771
  var HOVER_CARD_CONTENT = "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 rounded-md border p-4 shadow-md outline-hidden";
3468
3772
 
3469
3773
  // src/components/hover-card.tsx
3470
- import { jsx as jsx38 } from "react/jsx-runtime";
3471
- var HoverCardContext = React47.createContext(null);
3774
+ import { jsx as jsx41 } from "react/jsx-runtime";
3775
+ var HoverCardContext = React50.createContext(null);
3472
3776
  function useHoverCard() {
3473
- const ctx = React47.useContext(HoverCardContext);
3777
+ const ctx = React50.useContext(HoverCardContext);
3474
3778
  if (!ctx) throw new Error("HoverCard parts must be used within <HoverCard>");
3475
3779
  return ctx;
3476
3780
  }
@@ -3480,8 +3784,8 @@ function HoverCard({ open, defaultOpen = false, onOpenChange, children }) {
3480
3784
  defaultValue: defaultOpen,
3481
3785
  ...onOpenChange ? { onChange: onOpenChange } : {}
3482
3786
  });
3483
- const anchorRef = React47.useRef(null);
3484
- return /* @__PURE__ */ jsx38(HoverCardContext.Provider, { value: { open: isOpen, setOpen, anchorRef }, children });
3787
+ const anchorRef = React50.useRef(null);
3788
+ return /* @__PURE__ */ jsx41(HoverCardContext.Provider, { value: { open: isOpen, setOpen, anchorRef }, children });
3485
3789
  }
3486
3790
  function HoverCardTrigger({
3487
3791
  asChild = false,
@@ -3491,7 +3795,7 @@ function HoverCardTrigger({
3491
3795
  }) {
3492
3796
  const { setOpen, anchorRef } = useHoverCard();
3493
3797
  const Comp = asChild ? Slot : "a";
3494
- return /* @__PURE__ */ jsx38(
3798
+ return /* @__PURE__ */ jsx41(
3495
3799
  Comp,
3496
3800
  {
3497
3801
  "data-slot": "hover-card-trigger",
@@ -3526,7 +3830,7 @@ function HoverCardContent({
3526
3830
  offset: sideOffset
3527
3831
  });
3528
3832
  if (!isPresent) return null;
3529
- return /* @__PURE__ */ jsx38(Portal, { children: /* @__PURE__ */ jsx38(
3833
+ return /* @__PURE__ */ jsx41(Portal, { children: /* @__PURE__ */ jsx41(
3530
3834
  "div",
3531
3835
  {
3532
3836
  "data-slot": "hover-card-content",
@@ -3543,7 +3847,7 @@ function HoverCardContent({
3543
3847
  }
3544
3848
 
3545
3849
  // src/components/dropdown-menu.tsx
3546
- import * as React48 from "react";
3850
+ import * as React51 from "react";
3547
3851
 
3548
3852
  // src/generated/dropdown-menu.ts
3549
3853
  var DROPDOWN_MENU_CONTENT = "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md";
@@ -3557,12 +3861,12 @@ var DROPDOWN_MENU_SEPARATOR = "bg-border -mx-1 my-1 h-px";
3557
3861
  var DROPDOWN_MENU_SHORTCUT = "text-muted-foreground ml-auto text-xs tracking-widest";
3558
3862
 
3559
3863
  // src/components/dropdown-menu.tsx
3560
- import { jsx as jsx39, jsxs as jsxs10 } from "react/jsx-runtime";
3561
- var DropdownMenuContext = React48.createContext(
3864
+ import { jsx as jsx42, jsxs as jsxs12 } from "react/jsx-runtime";
3865
+ var DropdownMenuContext = React51.createContext(
3562
3866
  null
3563
3867
  );
3564
3868
  function useDropdownMenu() {
3565
- const ctx = React48.useContext(DropdownMenuContext);
3869
+ const ctx = React51.useContext(DropdownMenuContext);
3566
3870
  if (!ctx) throw new Error("DropdownMenu parts must be used within <DropdownMenu>");
3567
3871
  return ctx;
3568
3872
  }
@@ -3572,16 +3876,16 @@ function DropdownMenu({ open, defaultOpen = false, onOpenChange, children }) {
3572
3876
  defaultValue: defaultOpen,
3573
3877
  ...onOpenChange ? { onChange: onOpenChange } : {}
3574
3878
  });
3575
- const anchorRef = React48.useRef(null);
3576
- return /* @__PURE__ */ jsx39(DropdownMenuContext.Provider, { value: { open: isOpen, setOpen, anchorRef }, children: /* @__PURE__ */ jsx39("div", { "data-slot": "dropdown-menu", children }) });
3879
+ const anchorRef = React51.useRef(null);
3880
+ return /* @__PURE__ */ jsx42(DropdownMenuContext.Provider, { value: { open: isOpen, setOpen, anchorRef }, children: /* @__PURE__ */ jsx42("div", { "data-slot": "dropdown-menu", children }) });
3577
3881
  }
3578
3882
  function DropdownMenuPortal({ children }) {
3579
- return /* @__PURE__ */ jsx39(Portal, { children });
3883
+ return /* @__PURE__ */ jsx42(Portal, { children });
3580
3884
  }
3581
3885
  function DropdownMenuTrigger({ asChild = false, onClick, ...props }) {
3582
3886
  const { open, setOpen, anchorRef } = useDropdownMenu();
3583
3887
  const Comp = asChild ? Slot : "button";
3584
- return /* @__PURE__ */ jsx39(
3888
+ return /* @__PURE__ */ jsx42(
3585
3889
  Comp,
3586
3890
  {
3587
3891
  "data-slot": "dropdown-menu-trigger",
@@ -3617,7 +3921,7 @@ function DropdownMenuContent({
3617
3921
  onDismiss: () => setOpen(false),
3618
3922
  exclude: [anchorRef]
3619
3923
  });
3620
- const contentRef = React48.useRef(null);
3924
+ const contentRef = React51.useRef(null);
3621
3925
  const items = () => Array.from(
3622
3926
  contentRef.current?.querySelectorAll("[role^='menuitem']") ?? []
3623
3927
  ).filter((el) => el.getAttribute("data-disabled") === null);
@@ -3626,13 +3930,13 @@ function DropdownMenuContent({
3626
3930
  orientation: "vertical",
3627
3931
  loop: true
3628
3932
  });
3629
- React48.useEffect(() => {
3933
+ React51.useEffect(() => {
3630
3934
  if (!open) return;
3631
3935
  items()[activeIndex]?.focus();
3632
3936
  }, [open, activeIndex]);
3633
- const close = React48.useCallback(() => setOpen(false), [setOpen]);
3937
+ const close = React51.useCallback(() => setOpen(false), [setOpen]);
3634
3938
  if (!isPresent) return null;
3635
- return /* @__PURE__ */ jsx39(Portal, { children: /* @__PURE__ */ jsx39(DropdownMenuCloseContext.Provider, { value: close, children: /* @__PURE__ */ jsx39(
3939
+ return /* @__PURE__ */ jsx42(Portal, { children: /* @__PURE__ */ jsx42(DropdownMenuCloseContext.Provider, { value: close, children: /* @__PURE__ */ jsx42(
3636
3940
  "div",
3637
3941
  {
3638
3942
  "data-slot": "dropdown-menu-content",
@@ -3655,10 +3959,10 @@ function DropdownMenuContent({
3655
3959
  }
3656
3960
  ) }) });
3657
3961
  }
3658
- var DropdownMenuCloseContext = React48.createContext(() => {
3962
+ var DropdownMenuCloseContext = React51.createContext(() => {
3659
3963
  });
3660
3964
  function DropdownMenuGroup({ className, ...props }) {
3661
- return /* @__PURE__ */ jsx39("div", { "data-slot": "dropdown-menu-group", role: "group", className, ...props });
3965
+ return /* @__PURE__ */ jsx42("div", { "data-slot": "dropdown-menu-group", role: "group", className, ...props });
3662
3966
  }
3663
3967
  function DropdownMenuItem({
3664
3968
  className,
@@ -3669,8 +3973,8 @@ function DropdownMenuItem({
3669
3973
  onKeyDown,
3670
3974
  ...props
3671
3975
  }) {
3672
- const close = React48.useContext(DropdownMenuCloseContext);
3673
- return /* @__PURE__ */ jsx39(
3976
+ const close = React51.useContext(DropdownMenuCloseContext);
3977
+ return /* @__PURE__ */ jsx42(
3674
3978
  "div",
3675
3979
  {
3676
3980
  "data-slot": "dropdown-menu-item",
@@ -3707,8 +4011,8 @@ function DropdownMenuCheckboxItem({
3707
4011
  onClick,
3708
4012
  ...props
3709
4013
  }) {
3710
- const close = React48.useContext(DropdownMenuCloseContext);
3711
- return /* @__PURE__ */ jsxs10(
4014
+ const close = React51.useContext(DropdownMenuCloseContext);
4015
+ return /* @__PURE__ */ jsxs12(
3712
4016
  "div",
3713
4017
  {
3714
4018
  "data-slot": "dropdown-menu-checkbox-item",
@@ -3728,13 +4032,13 @@ function DropdownMenuCheckboxItem({
3728
4032
  },
3729
4033
  ...props,
3730
4034
  children: [
3731
- /* @__PURE__ */ jsx39("span", { className: DROPDOWN_MENU_ITEM_INDICATOR, children: checked ? /* @__PURE__ */ jsx39("svg", { className: "size-4", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx39("path", { d: "M20 6 9 17l-5-5" }) }) : null }),
4035
+ /* @__PURE__ */ jsx42("span", { className: DROPDOWN_MENU_ITEM_INDICATOR, children: checked ? /* @__PURE__ */ jsx42("svg", { className: "size-4", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx42("path", { d: "M20 6 9 17l-5-5" }) }) : null }),
3732
4036
  children
3733
4037
  ]
3734
4038
  }
3735
4039
  );
3736
4040
  }
3737
- var DropdownMenuRadioGroupContext = React48.createContext(null);
4041
+ var DropdownMenuRadioGroupContext = React51.createContext(null);
3738
4042
  function DropdownMenuRadioGroup({
3739
4043
  className,
3740
4044
  value,
@@ -3742,11 +4046,11 @@ function DropdownMenuRadioGroup({
3742
4046
  children,
3743
4047
  ...props
3744
4048
  }) {
3745
- const ctx = React48.useMemo(
4049
+ const ctx = React51.useMemo(
3746
4050
  () => ({ value, setValue: (next) => onValueChange?.(next) }),
3747
4051
  [value, onValueChange]
3748
4052
  );
3749
- return /* @__PURE__ */ jsx39(DropdownMenuRadioGroupContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx39("div", { "data-slot": "dropdown-menu-radio-group", role: "group", className, ...props, children }) });
4053
+ return /* @__PURE__ */ jsx42(DropdownMenuRadioGroupContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx42("div", { "data-slot": "dropdown-menu-radio-group", role: "group", className, ...props, children }) });
3750
4054
  }
3751
4055
  function DropdownMenuRadioItem({
3752
4056
  className,
@@ -3756,10 +4060,10 @@ function DropdownMenuRadioItem({
3756
4060
  onClick,
3757
4061
  ...props
3758
4062
  }) {
3759
- const close = React48.useContext(DropdownMenuCloseContext);
3760
- const group = React48.useContext(DropdownMenuRadioGroupContext);
4063
+ const close = React51.useContext(DropdownMenuCloseContext);
4064
+ const group = React51.useContext(DropdownMenuRadioGroupContext);
3761
4065
  const checked = group?.value === value;
3762
- return /* @__PURE__ */ jsxs10(
4066
+ return /* @__PURE__ */ jsxs12(
3763
4067
  "div",
3764
4068
  {
3765
4069
  "data-slot": "dropdown-menu-radio-item",
@@ -3780,14 +4084,14 @@ function DropdownMenuRadioItem({
3780
4084
  },
3781
4085
  ...props,
3782
4086
  children: [
3783
- /* @__PURE__ */ jsx39("span", { className: DROPDOWN_MENU_ITEM_INDICATOR, children: checked ? /* @__PURE__ */ jsx39("svg", { className: "size-2 fill-current", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ jsx39("circle", { cx: "12", cy: "12", r: "10" }) }) : null }),
4087
+ /* @__PURE__ */ jsx42("span", { className: DROPDOWN_MENU_ITEM_INDICATOR, children: checked ? /* @__PURE__ */ jsx42("svg", { className: "size-2 fill-current", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ jsx42("circle", { cx: "12", cy: "12", r: "10" }) }) : null }),
3784
4088
  children
3785
4089
  ]
3786
4090
  }
3787
4091
  );
3788
4092
  }
3789
4093
  function DropdownMenuLabel({ className, inset, ...props }) {
3790
- return /* @__PURE__ */ jsx39(
4094
+ return /* @__PURE__ */ jsx42(
3791
4095
  "div",
3792
4096
  {
3793
4097
  "data-slot": "dropdown-menu-label",
@@ -3798,7 +4102,7 @@ function DropdownMenuLabel({ className, inset, ...props }) {
3798
4102
  );
3799
4103
  }
3800
4104
  function DropdownMenuSeparator({ className, ...props }) {
3801
- return /* @__PURE__ */ jsx39(
4105
+ return /* @__PURE__ */ jsx42(
3802
4106
  "div",
3803
4107
  {
3804
4108
  "data-slot": "dropdown-menu-separator",
@@ -3809,7 +4113,7 @@ function DropdownMenuSeparator({ className, ...props }) {
3809
4113
  );
3810
4114
  }
3811
4115
  function DropdownMenuShortcut({ className, ...props }) {
3812
- return /* @__PURE__ */ jsx39(
4116
+ return /* @__PURE__ */ jsx42(
3813
4117
  "span",
3814
4118
  {
3815
4119
  "data-slot": "dropdown-menu-shortcut",
@@ -3818,18 +4122,18 @@ function DropdownMenuShortcut({ className, ...props }) {
3818
4122
  }
3819
4123
  );
3820
4124
  }
3821
- var DropdownMenuSubContext = React48.createContext(null);
4125
+ var DropdownMenuSubContext = React51.createContext(null);
3822
4126
  function DropdownMenuSub({ open, defaultOpen = false, onOpenChange, children }) {
3823
4127
  const [isOpen, setOpen] = useControllableState({
3824
4128
  ...open !== void 0 ? { value: open } : {},
3825
4129
  defaultValue: defaultOpen,
3826
4130
  ...onOpenChange ? { onChange: onOpenChange } : {}
3827
4131
  });
3828
- return /* @__PURE__ */ jsx39(DropdownMenuSubContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx39("div", { "data-slot": "dropdown-menu-sub", children }) });
4132
+ return /* @__PURE__ */ jsx42(DropdownMenuSubContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx42("div", { "data-slot": "dropdown-menu-sub", children }) });
3829
4133
  }
3830
4134
  function DropdownMenuSubTrigger({ className, inset, children, onClick, ...props }) {
3831
- const ctx = React48.useContext(DropdownMenuSubContext);
3832
- return /* @__PURE__ */ jsxs10(
4135
+ const ctx = React51.useContext(DropdownMenuSubContext);
4136
+ return /* @__PURE__ */ jsxs12(
3833
4137
  "div",
3834
4138
  {
3835
4139
  "data-slot": "dropdown-menu-sub-trigger",
@@ -3850,15 +4154,15 @@ function DropdownMenuSubTrigger({ className, inset, children, onClick, ...props
3850
4154
  ...props,
3851
4155
  children: [
3852
4156
  children,
3853
- /* @__PURE__ */ jsx39("svg", { className: "ml-auto size-4", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx39("path", { d: "m9 18 6-6-6-6" }) })
4157
+ /* @__PURE__ */ jsx42("svg", { className: "ml-auto size-4", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx42("path", { d: "m9 18 6-6-6-6" }) })
3854
4158
  ]
3855
4159
  }
3856
4160
  );
3857
4161
  }
3858
4162
  function DropdownMenuSubContent({ className, children, ...props }) {
3859
- const ctx = React48.useContext(DropdownMenuSubContext);
4163
+ const ctx = React51.useContext(DropdownMenuSubContext);
3860
4164
  if (!ctx?.open) return null;
3861
- return /* @__PURE__ */ jsx39(
4165
+ return /* @__PURE__ */ jsx42(
3862
4166
  "div",
3863
4167
  {
3864
4168
  "data-slot": "dropdown-menu-sub-content",
@@ -3875,7 +4179,7 @@ function DropdownMenuSubContent({ className, children, ...props }) {
3875
4179
  }
3876
4180
 
3877
4181
  // src/components/context-menu.tsx
3878
- import * as React49 from "react";
4182
+ import * as React52 from "react";
3879
4183
 
3880
4184
  // src/generated/context-menu.ts
3881
4185
  var CONTEXT_MENU_CONTENT = "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md";
@@ -3888,10 +4192,10 @@ var CONTEXT_MENU_SEPARATOR = "bg-border -mx-1 my-1 h-px";
3888
4192
  var CONTEXT_MENU_SHORTCUT = "text-muted-foreground ml-auto text-xs tracking-widest";
3889
4193
 
3890
4194
  // src/components/context-menu.tsx
3891
- import { jsx as jsx40, jsxs as jsxs11 } from "react/jsx-runtime";
3892
- var ContextMenuContext = React49.createContext(null);
4195
+ import { jsx as jsx43, jsxs as jsxs13 } from "react/jsx-runtime";
4196
+ var ContextMenuContext = React52.createContext(null);
3893
4197
  function useContextMenu() {
3894
- const ctx = React49.useContext(ContextMenuContext);
4198
+ const ctx = React52.useContext(ContextMenuContext);
3895
4199
  if (!ctx) throw new Error("ContextMenu parts must be used within <ContextMenu>");
3896
4200
  return ctx;
3897
4201
  }
@@ -3901,16 +4205,16 @@ function ContextMenu({ open, defaultOpen = false, onOpenChange, children }) {
3901
4205
  defaultValue: defaultOpen,
3902
4206
  ...onOpenChange ? { onChange: onOpenChange } : {}
3903
4207
  });
3904
- const [point, setPoint] = React49.useState({ x: 0, y: 0 });
3905
- return /* @__PURE__ */ jsx40(ContextMenuContext.Provider, { value: { open: isOpen, setOpen, point, setPoint }, children: /* @__PURE__ */ jsx40("div", { "data-slot": "context-menu", children }) });
4208
+ const [point, setPoint] = React52.useState({ x: 0, y: 0 });
4209
+ return /* @__PURE__ */ jsx43(ContextMenuContext.Provider, { value: { open: isOpen, setOpen, point, setPoint }, children: /* @__PURE__ */ jsx43("div", { "data-slot": "context-menu", children }) });
3906
4210
  }
3907
4211
  function ContextMenuPortal({ children }) {
3908
- return /* @__PURE__ */ jsx40(Portal, { children });
4212
+ return /* @__PURE__ */ jsx43(Portal, { children });
3909
4213
  }
3910
4214
  function ContextMenuTrigger({ asChild = false, onContextMenu, ...props }) {
3911
4215
  const { setOpen, setPoint } = useContextMenu();
3912
4216
  const Comp = asChild ? Slot : "div";
3913
- return /* @__PURE__ */ jsx40(
4217
+ return /* @__PURE__ */ jsx43(
3914
4218
  Comp,
3915
4219
  {
3916
4220
  "data-slot": "context-menu-trigger",
@@ -3925,9 +4229,9 @@ function ContextMenuTrigger({ asChild = false, onContextMenu, ...props }) {
3925
4229
  );
3926
4230
  }
3927
4231
  function ContextMenuGroup({ className, ...props }) {
3928
- return /* @__PURE__ */ jsx40("div", { "data-slot": "context-menu-group", role: "group", className, ...props });
4232
+ return /* @__PURE__ */ jsx43("div", { "data-slot": "context-menu-group", role: "group", className, ...props });
3929
4233
  }
3930
- var ContextMenuCloseContext = React49.createContext(() => {
4234
+ var ContextMenuCloseContext = React52.createContext(() => {
3931
4235
  });
3932
4236
  function ContextMenuContent({ className, children, ...props }) {
3933
4237
  const { open, setOpen, point } = useContextMenu();
@@ -3936,7 +4240,7 @@ function ContextMenuContent({ className, children, ...props }) {
3936
4240
  enabled: open,
3937
4241
  onDismiss: () => setOpen(false)
3938
4242
  });
3939
- const contentRef = React49.useRef(null);
4243
+ const contentRef = React52.useRef(null);
3940
4244
  const items = () => Array.from(
3941
4245
  contentRef.current?.querySelectorAll("[role^='menuitem']") ?? []
3942
4246
  ).filter((el) => el.getAttribute("data-disabled") === null);
@@ -3945,13 +4249,13 @@ function ContextMenuContent({ className, children, ...props }) {
3945
4249
  orientation: "vertical",
3946
4250
  loop: true
3947
4251
  });
3948
- React49.useEffect(() => {
4252
+ React52.useEffect(() => {
3949
4253
  if (!open) return;
3950
4254
  items()[activeIndex]?.focus();
3951
4255
  }, [open, activeIndex]);
3952
- const close = React49.useCallback(() => setOpen(false), [setOpen]);
4256
+ const close = React52.useCallback(() => setOpen(false), [setOpen]);
3953
4257
  if (!isPresent) return null;
3954
- return /* @__PURE__ */ jsx40(Portal, { children: /* @__PURE__ */ jsx40(ContextMenuCloseContext.Provider, { value: close, children: /* @__PURE__ */ jsx40(
4258
+ return /* @__PURE__ */ jsx43(Portal, { children: /* @__PURE__ */ jsx43(ContextMenuCloseContext.Provider, { value: close, children: /* @__PURE__ */ jsx43(
3955
4259
  "div",
3956
4260
  {
3957
4261
  "data-slot": "context-menu-content",
@@ -3983,8 +4287,8 @@ function ContextMenuItem({
3983
4287
  onKeyDown,
3984
4288
  ...props
3985
4289
  }) {
3986
- const close = React49.useContext(ContextMenuCloseContext);
3987
- return /* @__PURE__ */ jsx40(
4290
+ const close = React52.useContext(ContextMenuCloseContext);
4291
+ return /* @__PURE__ */ jsx43(
3988
4292
  "div",
3989
4293
  {
3990
4294
  "data-slot": "context-menu-item",
@@ -4021,8 +4325,8 @@ function ContextMenuCheckboxItem({
4021
4325
  onClick,
4022
4326
  ...props
4023
4327
  }) {
4024
- const close = React49.useContext(ContextMenuCloseContext);
4025
- return /* @__PURE__ */ jsxs11(
4328
+ const close = React52.useContext(ContextMenuCloseContext);
4329
+ return /* @__PURE__ */ jsxs13(
4026
4330
  "div",
4027
4331
  {
4028
4332
  "data-slot": "context-menu-checkbox-item",
@@ -4042,13 +4346,13 @@ function ContextMenuCheckboxItem({
4042
4346
  },
4043
4347
  ...props,
4044
4348
  children: [
4045
- /* @__PURE__ */ jsx40("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: checked ? /* @__PURE__ */ jsx40("svg", { className: "size-4", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx40("path", { d: "M20 6 9 17l-5-5" }) }) : null }),
4349
+ /* @__PURE__ */ jsx43("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: checked ? /* @__PURE__ */ jsx43("svg", { className: "size-4", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx43("path", { d: "M20 6 9 17l-5-5" }) }) : null }),
4046
4350
  children
4047
4351
  ]
4048
4352
  }
4049
4353
  );
4050
4354
  }
4051
- var ContextMenuRadioGroupContext = React49.createContext(null);
4355
+ var ContextMenuRadioGroupContext = React52.createContext(null);
4052
4356
  function ContextMenuRadioGroup({
4053
4357
  className,
4054
4358
  value,
@@ -4056,11 +4360,11 @@ function ContextMenuRadioGroup({
4056
4360
  children,
4057
4361
  ...props
4058
4362
  }) {
4059
- const ctx = React49.useMemo(
4363
+ const ctx = React52.useMemo(
4060
4364
  () => ({ value, setValue: (next) => onValueChange?.(next) }),
4061
4365
  [value, onValueChange]
4062
4366
  );
4063
- return /* @__PURE__ */ jsx40(ContextMenuRadioGroupContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx40("div", { "data-slot": "context-menu-radio-group", role: "group", className, ...props, children }) });
4367
+ return /* @__PURE__ */ jsx43(ContextMenuRadioGroupContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx43("div", { "data-slot": "context-menu-radio-group", role: "group", className, ...props, children }) });
4064
4368
  }
4065
4369
  function ContextMenuRadioItem({
4066
4370
  className,
@@ -4070,10 +4374,10 @@ function ContextMenuRadioItem({
4070
4374
  onClick,
4071
4375
  ...props
4072
4376
  }) {
4073
- const close = React49.useContext(ContextMenuCloseContext);
4074
- const group = React49.useContext(ContextMenuRadioGroupContext);
4377
+ const close = React52.useContext(ContextMenuCloseContext);
4378
+ const group = React52.useContext(ContextMenuRadioGroupContext);
4075
4379
  const checked = group?.value === value;
4076
- return /* @__PURE__ */ jsxs11(
4380
+ return /* @__PURE__ */ jsxs13(
4077
4381
  "div",
4078
4382
  {
4079
4383
  "data-slot": "context-menu-radio-item",
@@ -4094,14 +4398,14 @@ function ContextMenuRadioItem({
4094
4398
  },
4095
4399
  ...props,
4096
4400
  children: [
4097
- /* @__PURE__ */ jsx40("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: checked ? /* @__PURE__ */ jsx40("svg", { className: "size-2 fill-current", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ jsx40("circle", { cx: "12", cy: "12", r: "10" }) }) : null }),
4401
+ /* @__PURE__ */ jsx43("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: checked ? /* @__PURE__ */ jsx43("svg", { className: "size-2 fill-current", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ jsx43("circle", { cx: "12", cy: "12", r: "10" }) }) : null }),
4098
4402
  children
4099
4403
  ]
4100
4404
  }
4101
4405
  );
4102
4406
  }
4103
4407
  function ContextMenuLabel({ className, inset, ...props }) {
4104
- return /* @__PURE__ */ jsx40(
4408
+ return /* @__PURE__ */ jsx43(
4105
4409
  "div",
4106
4410
  {
4107
4411
  "data-slot": "context-menu-label",
@@ -4112,7 +4416,7 @@ function ContextMenuLabel({ className, inset, ...props }) {
4112
4416
  );
4113
4417
  }
4114
4418
  function ContextMenuSeparator({ className, ...props }) {
4115
- return /* @__PURE__ */ jsx40(
4419
+ return /* @__PURE__ */ jsx43(
4116
4420
  "div",
4117
4421
  {
4118
4422
  "data-slot": "context-menu-separator",
@@ -4123,7 +4427,7 @@ function ContextMenuSeparator({ className, ...props }) {
4123
4427
  );
4124
4428
  }
4125
4429
  function ContextMenuShortcut({ className, ...props }) {
4126
- return /* @__PURE__ */ jsx40(
4430
+ return /* @__PURE__ */ jsx43(
4127
4431
  "span",
4128
4432
  {
4129
4433
  "data-slot": "context-menu-shortcut",
@@ -4132,18 +4436,18 @@ function ContextMenuShortcut({ className, ...props }) {
4132
4436
  }
4133
4437
  );
4134
4438
  }
4135
- var ContextMenuSubContext = React49.createContext(null);
4439
+ var ContextMenuSubContext = React52.createContext(null);
4136
4440
  function ContextMenuSub({ open, defaultOpen = false, onOpenChange, children }) {
4137
4441
  const [isOpen, setOpen] = useControllableState({
4138
4442
  ...open !== void 0 ? { value: open } : {},
4139
4443
  defaultValue: defaultOpen,
4140
4444
  ...onOpenChange ? { onChange: onOpenChange } : {}
4141
4445
  });
4142
- return /* @__PURE__ */ jsx40(ContextMenuSubContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx40("div", { "data-slot": "context-menu-sub", children }) });
4446
+ return /* @__PURE__ */ jsx43(ContextMenuSubContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx43("div", { "data-slot": "context-menu-sub", children }) });
4143
4447
  }
4144
4448
  function ContextMenuSubTrigger({ className, inset, children, onClick, ...props }) {
4145
- const ctx = React49.useContext(ContextMenuSubContext);
4146
- return /* @__PURE__ */ jsxs11(
4449
+ const ctx = React52.useContext(ContextMenuSubContext);
4450
+ return /* @__PURE__ */ jsxs13(
4147
4451
  "div",
4148
4452
  {
4149
4453
  "data-slot": "context-menu-sub-trigger",
@@ -4164,15 +4468,15 @@ function ContextMenuSubTrigger({ className, inset, children, onClick, ...props }
4164
4468
  ...props,
4165
4469
  children: [
4166
4470
  children,
4167
- /* @__PURE__ */ jsx40("svg", { className: "ml-auto", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx40("path", { d: "m9 18 6-6-6-6" }) })
4471
+ /* @__PURE__ */ jsx43("svg", { className: "ml-auto", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx43("path", { d: "m9 18 6-6-6-6" }) })
4168
4472
  ]
4169
4473
  }
4170
4474
  );
4171
4475
  }
4172
4476
  function ContextMenuSubContent({ className, children, ...props }) {
4173
- const ctx = React49.useContext(ContextMenuSubContext);
4477
+ const ctx = React52.useContext(ContextMenuSubContext);
4174
4478
  if (!ctx?.open) return null;
4175
- return /* @__PURE__ */ jsx40(
4479
+ return /* @__PURE__ */ jsx43(
4176
4480
  "div",
4177
4481
  {
4178
4482
  "data-slot": "context-menu-sub-content",
@@ -4189,7 +4493,7 @@ function ContextMenuSubContent({ className, children, ...props }) {
4189
4493
  }
4190
4494
 
4191
4495
  // src/components/menubar.tsx
4192
- import * as React50 from "react";
4496
+ import * as React53 from "react";
4193
4497
 
4194
4498
  // src/generated/menubar.ts
4195
4499
  var MENUBAR_ROOT = "bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs";
@@ -4206,16 +4510,16 @@ var MENUBAR_SUB_TRIGGER = "focus:bg-accent focus:text-accent-foreground data-[st
4206
4510
  var MENUBAR_SUB_CONTENT = "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 absolute z-50 min-w-[8rem] overflow-hidden rounded-md border p-1 shadow-lg";
4207
4511
 
4208
4512
  // src/components/menubar.tsx
4209
- import { jsx as jsx41, jsxs as jsxs12 } from "react/jsx-runtime";
4210
- var MenubarMenuContext = React50.createContext(null);
4513
+ import { jsx as jsx44, jsxs as jsxs14 } from "react/jsx-runtime";
4514
+ var MenubarMenuContext = React53.createContext(null);
4211
4515
  function useMenu() {
4212
- const ctx = React50.useContext(MenubarMenuContext);
4516
+ const ctx = React53.useContext(MenubarMenuContext);
4213
4517
  if (!ctx) throw new Error("Menubar parts must be used within <MenubarMenu>");
4214
4518
  return ctx;
4215
4519
  }
4216
- var MenubarRadioGroupContext = React50.createContext(null);
4520
+ var MenubarRadioGroupContext = React53.createContext(null);
4217
4521
  function Menubar({ className, ...props }) {
4218
- return /* @__PURE__ */ jsx41(
4522
+ return /* @__PURE__ */ jsx44(
4219
4523
  "div",
4220
4524
  {
4221
4525
  "data-slot": "menubar",
@@ -4231,12 +4535,12 @@ function MenubarMenu({ open, defaultOpen = false, onOpenChange, children }) {
4231
4535
  defaultValue: defaultOpen,
4232
4536
  onChange: onOpenChange
4233
4537
  });
4234
- const triggerRef = React50.useRef(null);
4235
- return /* @__PURE__ */ jsx41(MenubarMenuContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children: /* @__PURE__ */ jsx41("div", { "data-slot": "menubar-menu", className: "relative", children }) });
4538
+ const triggerRef = React53.useRef(null);
4539
+ return /* @__PURE__ */ jsx44(MenubarMenuContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children: /* @__PURE__ */ jsx44("div", { "data-slot": "menubar-menu", className: "relative", children }) });
4236
4540
  }
4237
4541
  function MenubarTrigger({ className, onClick, ...props }) {
4238
4542
  const { open, setOpen, triggerRef } = useMenu();
4239
- return /* @__PURE__ */ jsx41(
4543
+ return /* @__PURE__ */ jsx44(
4240
4544
  "button",
4241
4545
  {
4242
4546
  ref: triggerRef,
@@ -4272,10 +4576,10 @@ function MenubarContent({
4272
4576
  onDismiss: () => setOpen(false),
4273
4577
  exclude: [triggerRef]
4274
4578
  });
4275
- const items = React50.Children.toArray(children);
4579
+ const items = React53.Children.toArray(children);
4276
4580
  const { onKeyDown } = useRovingFocus({ count: items.length, orientation: "vertical" });
4277
4581
  if (!isPresent) return null;
4278
- return /* @__PURE__ */ jsx41(Portal, { children: /* @__PURE__ */ jsx41(
4582
+ return /* @__PURE__ */ jsx44(Portal, { children: /* @__PURE__ */ jsx44(
4279
4583
  "div",
4280
4584
  {
4281
4585
  ref: mergeRefs(presenceRef, floatingRef, dismissRef),
@@ -4292,7 +4596,7 @@ function MenubarContent({
4292
4596
  ) });
4293
4597
  }
4294
4598
  function MenubarGroup({ className, ...props }) {
4295
- return /* @__PURE__ */ jsx41("div", { "data-slot": "menubar-group", role: "group", className, ...props });
4599
+ return /* @__PURE__ */ jsx44("div", { "data-slot": "menubar-group", role: "group", className, ...props });
4296
4600
  }
4297
4601
  function MenubarItem({
4298
4602
  className,
@@ -4300,7 +4604,7 @@ function MenubarItem({
4300
4604
  variant = "default",
4301
4605
  ...props
4302
4606
  }) {
4303
- return /* @__PURE__ */ jsx41(
4607
+ return /* @__PURE__ */ jsx44(
4304
4608
  "div",
4305
4609
  {
4306
4610
  "data-slot": "menubar-item",
@@ -4319,7 +4623,7 @@ function MenubarCheckboxItem({
4319
4623
  checked,
4320
4624
  ...props
4321
4625
  }) {
4322
- return /* @__PURE__ */ jsxs12(
4626
+ return /* @__PURE__ */ jsxs14(
4323
4627
  "div",
4324
4628
  {
4325
4629
  "data-slot": "menubar-checkbox-item",
@@ -4329,7 +4633,7 @@ function MenubarCheckboxItem({
4329
4633
  className: cn(MENUBAR_CHECKBOX_ITEM, className),
4330
4634
  ...props,
4331
4635
  children: [
4332
- /* @__PURE__ */ jsx41("span", { className: MENUBAR_ITEM_INDICATOR, children: checked && /* @__PURE__ */ jsx41(
4636
+ /* @__PURE__ */ jsx44("span", { className: MENUBAR_ITEM_INDICATOR, children: checked && /* @__PURE__ */ jsx44(
4333
4637
  "svg",
4334
4638
  {
4335
4639
  className: "size-4",
@@ -4339,7 +4643,7 @@ function MenubarCheckboxItem({
4339
4643
  strokeWidth: "2",
4340
4644
  strokeLinecap: "round",
4341
4645
  strokeLinejoin: "round",
4342
- children: /* @__PURE__ */ jsx41("path", { d: "M20 6 9 17l-5-5" })
4646
+ children: /* @__PURE__ */ jsx44("path", { d: "M20 6 9 17l-5-5" })
4343
4647
  }
4344
4648
  ) }),
4345
4649
  children
@@ -4359,7 +4663,7 @@ function MenubarRadioGroup({
4359
4663
  defaultValue,
4360
4664
  onChange: onValueChange
4361
4665
  });
4362
- return /* @__PURE__ */ jsx41(MenubarRadioGroupContext.Provider, { value: { value: current, onValueChange: setValue }, children: /* @__PURE__ */ jsx41("div", { "data-slot": "menubar-radio-group", role: "group", className, children }) });
4666
+ return /* @__PURE__ */ jsx44(MenubarRadioGroupContext.Provider, { value: { value: current, onValueChange: setValue }, children: /* @__PURE__ */ jsx44("div", { "data-slot": "menubar-radio-group", role: "group", className, children }) });
4363
4667
  }
4364
4668
  function MenubarRadioItem({
4365
4669
  className,
@@ -4367,9 +4671,9 @@ function MenubarRadioItem({
4367
4671
  value,
4368
4672
  ...props
4369
4673
  }) {
4370
- const ctx = React50.useContext(MenubarRadioGroupContext);
4674
+ const ctx = React53.useContext(MenubarRadioGroupContext);
4371
4675
  const checked = ctx?.value === value;
4372
- return /* @__PURE__ */ jsxs12(
4676
+ return /* @__PURE__ */ jsxs14(
4373
4677
  "div",
4374
4678
  {
4375
4679
  "data-slot": "menubar-radio-item",
@@ -4380,7 +4684,7 @@ function MenubarRadioItem({
4380
4684
  onClick: () => ctx?.onValueChange(value),
4381
4685
  ...props,
4382
4686
  children: [
4383
- /* @__PURE__ */ jsx41("span", { className: MENUBAR_ITEM_INDICATOR, children: checked && /* @__PURE__ */ jsx41("svg", { className: "size-2 fill-current", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx41("circle", { cx: "12", cy: "12", r: "10" }) }) }),
4687
+ /* @__PURE__ */ jsx44("span", { className: MENUBAR_ITEM_INDICATOR, children: checked && /* @__PURE__ */ jsx44("svg", { className: "size-2 fill-current", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx44("circle", { cx: "12", cy: "12", r: "10" }) }) }),
4384
4688
  children
4385
4689
  ]
4386
4690
  }
@@ -4391,7 +4695,7 @@ function MenubarLabel({
4391
4695
  inset,
4392
4696
  ...props
4393
4697
  }) {
4394
- return /* @__PURE__ */ jsx41(
4698
+ return /* @__PURE__ */ jsx44(
4395
4699
  "div",
4396
4700
  {
4397
4701
  "data-slot": "menubar-label",
@@ -4402,7 +4706,7 @@ function MenubarLabel({
4402
4706
  );
4403
4707
  }
4404
4708
  function MenubarSeparator({ className, ...props }) {
4405
- return /* @__PURE__ */ jsx41(
4709
+ return /* @__PURE__ */ jsx44(
4406
4710
  "div",
4407
4711
  {
4408
4712
  "data-slot": "menubar-separator",
@@ -4413,7 +4717,7 @@ function MenubarSeparator({ className, ...props }) {
4413
4717
  );
4414
4718
  }
4415
4719
  function MenubarShortcut({ className, ...props }) {
4416
- return /* @__PURE__ */ jsx41(
4720
+ return /* @__PURE__ */ jsx44(
4417
4721
  "span",
4418
4722
  {
4419
4723
  "data-slot": "menubar-shortcut",
@@ -4422,9 +4726,9 @@ function MenubarShortcut({ className, ...props }) {
4422
4726
  }
4423
4727
  );
4424
4728
  }
4425
- var MenubarSubContext = React50.createContext(null);
4729
+ var MenubarSubContext = React53.createContext(null);
4426
4730
  function useSub() {
4427
- const ctx = React50.useContext(MenubarSubContext);
4731
+ const ctx = React53.useContext(MenubarSubContext);
4428
4732
  if (!ctx) throw new Error("MenubarSub parts must be used within <MenubarSub>");
4429
4733
  return ctx;
4430
4734
  }
@@ -4434,7 +4738,7 @@ function MenubarSub({ open, defaultOpen = false, onOpenChange, children }) {
4434
4738
  defaultValue: defaultOpen,
4435
4739
  onChange: onOpenChange
4436
4740
  });
4437
- return /* @__PURE__ */ jsx41(MenubarSubContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx41("div", { "data-slot": "menubar-sub", className: "relative", children }) });
4741
+ return /* @__PURE__ */ jsx44(MenubarSubContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx44("div", { "data-slot": "menubar-sub", className: "relative", children }) });
4438
4742
  }
4439
4743
  function MenubarSubTrigger({
4440
4744
  className,
@@ -4444,7 +4748,7 @@ function MenubarSubTrigger({
4444
4748
  ...props
4445
4749
  }) {
4446
4750
  const { open, setOpen } = useSub();
4447
- return /* @__PURE__ */ jsxs12(
4751
+ return /* @__PURE__ */ jsxs14(
4448
4752
  "div",
4449
4753
  {
4450
4754
  "data-slot": "menubar-sub-trigger",
@@ -4460,7 +4764,7 @@ function MenubarSubTrigger({
4460
4764
  ...props,
4461
4765
  children: [
4462
4766
  children,
4463
- /* @__PURE__ */ jsx41(
4767
+ /* @__PURE__ */ jsx44(
4464
4768
  "svg",
4465
4769
  {
4466
4770
  className: "ml-auto h-4 w-4",
@@ -4470,7 +4774,7 @@ function MenubarSubTrigger({
4470
4774
  strokeWidth: "2",
4471
4775
  strokeLinecap: "round",
4472
4776
  strokeLinejoin: "round",
4473
- children: /* @__PURE__ */ jsx41("path", { d: "m9 18 6-6-6-6" })
4777
+ children: /* @__PURE__ */ jsx44("path", { d: "m9 18 6-6-6-6" })
4474
4778
  }
4475
4779
  )
4476
4780
  ]
@@ -4481,7 +4785,7 @@ function MenubarSubContent({ className, children, ...props }) {
4481
4785
  const { open } = useSub();
4482
4786
  const { isPresent, ref } = usePresence(open);
4483
4787
  if (!isPresent) return null;
4484
- return /* @__PURE__ */ jsx41(
4788
+ return /* @__PURE__ */ jsx44(
4485
4789
  "div",
4486
4790
  {
4487
4791
  ref,
@@ -4496,7 +4800,7 @@ function MenubarSubContent({ className, children, ...props }) {
4496
4800
  }
4497
4801
 
4498
4802
  // src/components/navigation-menu.tsx
4499
- import * as React51 from "react";
4803
+ import * as React54 from "react";
4500
4804
 
4501
4805
  // src/generated/navigation-menu.ts
4502
4806
  var NAVIGATION_MENU = "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center";
@@ -4509,13 +4813,13 @@ var NAVIGATION_MENU_INDICATOR = "data-[state=visible]:animate-in data-[state=hid
4509
4813
  var NAVIGATION_MENU_VIEWPORT = "origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]";
4510
4814
 
4511
4815
  // src/components/navigation-menu.tsx
4512
- import { jsx as jsx42, jsxs as jsxs13 } from "react/jsx-runtime";
4816
+ import { jsx as jsx45, jsxs as jsxs15 } from "react/jsx-runtime";
4513
4817
  function navigationMenuTriggerStyle() {
4514
4818
  return NAVIGATION_MENU_TRIGGER_STYLE;
4515
4819
  }
4516
- var NavigationMenuItemContext = React51.createContext(null);
4820
+ var NavigationMenuItemContext = React54.createContext(null);
4517
4821
  function useItem() {
4518
- const ctx = React51.useContext(NavigationMenuItemContext);
4822
+ const ctx = React54.useContext(NavigationMenuItemContext);
4519
4823
  if (!ctx) throw new Error("NavigationMenu parts must be used within <NavigationMenuItem>");
4520
4824
  return ctx;
4521
4825
  }
@@ -4525,7 +4829,7 @@ function NavigationMenu({
4525
4829
  viewport = true,
4526
4830
  ...props
4527
4831
  }) {
4528
- return /* @__PURE__ */ jsxs13(
4832
+ return /* @__PURE__ */ jsxs15(
4529
4833
  "nav",
4530
4834
  {
4531
4835
  "data-slot": "navigation-menu",
@@ -4538,13 +4842,13 @@ function NavigationMenu({
4538
4842
  ...props,
4539
4843
  children: [
4540
4844
  children,
4541
- viewport && /* @__PURE__ */ jsx42(NavigationMenuViewport, {})
4845
+ viewport && /* @__PURE__ */ jsx45(NavigationMenuViewport, {})
4542
4846
  ]
4543
4847
  }
4544
4848
  );
4545
4849
  }
4546
4850
  function NavigationMenuList({ className, ...props }) {
4547
- return /* @__PURE__ */ jsx42(
4851
+ return /* @__PURE__ */ jsx45(
4548
4852
  "ul",
4549
4853
  {
4550
4854
  "data-slot": "navigation-menu-list",
@@ -4570,8 +4874,8 @@ function NavigationMenuItem({
4570
4874
  defaultValue: defaultOpen,
4571
4875
  onChange: onOpenChange
4572
4876
  });
4573
- const triggerRef = React51.useRef(null);
4574
- return /* @__PURE__ */ jsx42(NavigationMenuItemContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children: /* @__PURE__ */ jsx42("li", { "data-slot": "navigation-menu-item", className: cn(NAVIGATION_MENU_ITEM, className), ...props, children }) });
4877
+ const triggerRef = React54.useRef(null);
4878
+ return /* @__PURE__ */ jsx45(NavigationMenuItemContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children: /* @__PURE__ */ jsx45("li", { "data-slot": "navigation-menu-item", className: cn(NAVIGATION_MENU_ITEM, className), ...props, children }) });
4575
4879
  }
4576
4880
  function NavigationMenuTrigger({
4577
4881
  className,
@@ -4580,7 +4884,7 @@ function NavigationMenuTrigger({
4580
4884
  ...props
4581
4885
  }) {
4582
4886
  const { open, setOpen, triggerRef } = useItem();
4583
- return /* @__PURE__ */ jsxs13(
4887
+ return /* @__PURE__ */ jsxs15(
4584
4888
  "button",
4585
4889
  {
4586
4890
  ref: triggerRef,
@@ -4596,7 +4900,7 @@ function NavigationMenuTrigger({
4596
4900
  children: [
4597
4901
  children,
4598
4902
  " ",
4599
- /* @__PURE__ */ jsx42(
4903
+ /* @__PURE__ */ jsx45(
4600
4904
  "svg",
4601
4905
  {
4602
4906
  className: "relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180",
@@ -4607,7 +4911,7 @@ function NavigationMenuTrigger({
4607
4911
  strokeLinecap: "round",
4608
4912
  strokeLinejoin: "round",
4609
4913
  "aria-hidden": "true",
4610
- children: /* @__PURE__ */ jsx42("path", { d: "m6 9 6 6 6-6" })
4914
+ children: /* @__PURE__ */ jsx45("path", { d: "m6 9 6 6 6-6" })
4611
4915
  }
4612
4916
  )
4613
4917
  ]
@@ -4623,7 +4927,7 @@ function NavigationMenuContent({ className, children, ...props }) {
4623
4927
  exclude: [triggerRef]
4624
4928
  });
4625
4929
  if (!isPresent) return null;
4626
- return /* @__PURE__ */ jsx42(
4930
+ return /* @__PURE__ */ jsx45(
4627
4931
  "div",
4628
4932
  {
4629
4933
  ref: mergeRefs(presenceRef, dismissRef),
@@ -4639,7 +4943,7 @@ function NavigationMenuContent({ className, children, ...props }) {
4639
4943
  );
4640
4944
  }
4641
4945
  function NavigationMenuViewport({ className, ...props }) {
4642
- return /* @__PURE__ */ jsx42("div", { className: "absolute top-full left-0 isolate z-50 flex justify-center", children: /* @__PURE__ */ jsx42(
4946
+ return /* @__PURE__ */ jsx45("div", { className: "absolute top-full left-0 isolate z-50 flex justify-center", children: /* @__PURE__ */ jsx45(
4643
4947
  "div",
4644
4948
  {
4645
4949
  "data-slot": "navigation-menu-viewport",
@@ -4657,7 +4961,7 @@ function NavigationMenuLink({
4657
4961
  ...props
4658
4962
  }) {
4659
4963
  const Comp = asChild ? Slot : "a";
4660
- return /* @__PURE__ */ jsx42(
4964
+ return /* @__PURE__ */ jsx45(
4661
4965
  Comp,
4662
4966
  {
4663
4967
  "data-slot": "navigation-menu-link",
@@ -4670,7 +4974,7 @@ function NavigationMenuLink({
4670
4974
  );
4671
4975
  }
4672
4976
  function NavigationMenuIndicator({ className, ...props }) {
4673
- return /* @__PURE__ */ jsx42(
4977
+ return /* @__PURE__ */ jsx45(
4674
4978
  "div",
4675
4979
  {
4676
4980
  "data-slot": "navigation-menu-indicator",
@@ -4679,13 +4983,13 @@ function NavigationMenuIndicator({ className, ...props }) {
4679
4983
  className
4680
4984
  ),
4681
4985
  ...props,
4682
- children: /* @__PURE__ */ jsx42("div", { className: "bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" })
4986
+ children: /* @__PURE__ */ jsx45("div", { className: "bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" })
4683
4987
  }
4684
4988
  );
4685
4989
  }
4686
4990
 
4687
4991
  // src/components/dialog.tsx
4688
- import * as React52 from "react";
4992
+ import * as React55 from "react";
4689
4993
 
4690
4994
  // src/generated/dialog.ts
4691
4995
  var DIALOG_OVERLAY = "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50";
@@ -4697,10 +5001,10 @@ var DIALOG_TITLE = "text-lg leading-none font-semibold";
4697
5001
  var DIALOG_DESCRIPTION = "text-muted-foreground text-sm";
4698
5002
 
4699
5003
  // src/components/dialog.tsx
4700
- import { Fragment as Fragment3, jsx as jsx43, jsxs as jsxs14 } from "react/jsx-runtime";
4701
- var DialogContext = React52.createContext(null);
5004
+ import { Fragment as Fragment5, jsx as jsx46, jsxs as jsxs16 } from "react/jsx-runtime";
5005
+ var DialogContext = React55.createContext(null);
4702
5006
  function useDialog() {
4703
- const ctx = React52.useContext(DialogContext);
5007
+ const ctx = React55.useContext(DialogContext);
4704
5008
  if (!ctx) throw new Error("Dialog parts must be used within <Dialog>");
4705
5009
  return ctx;
4706
5010
  }
@@ -4710,13 +5014,13 @@ function Dialog({ open, defaultOpen = false, onOpenChange, children }) {
4710
5014
  defaultValue: defaultOpen,
4711
5015
  ...onOpenChange ? { onChange: onOpenChange } : {}
4712
5016
  });
4713
- const triggerRef = React52.useRef(null);
4714
- return /* @__PURE__ */ jsx43(DialogContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children });
5017
+ const triggerRef = React55.useRef(null);
5018
+ return /* @__PURE__ */ jsx46(DialogContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children });
4715
5019
  }
4716
5020
  function DialogTrigger({ asChild = false, onClick, ...props }) {
4717
5021
  const { open, setOpen, triggerRef } = useDialog();
4718
5022
  const Comp = asChild ? Slot : "button";
4719
- return /* @__PURE__ */ jsx43(
5023
+ return /* @__PURE__ */ jsx46(
4720
5024
  Comp,
4721
5025
  {
4722
5026
  "data-slot": "dialog-trigger",
@@ -4731,11 +5035,11 @@ function DialogTrigger({ asChild = false, onClick, ...props }) {
4731
5035
  );
4732
5036
  }
4733
5037
  function DialogPortal({ children }) {
4734
- return /* @__PURE__ */ jsx43(Fragment3, { children });
5038
+ return /* @__PURE__ */ jsx46(Fragment5, { children });
4735
5039
  }
4736
5040
  function DialogOverlay({ className, ...props }) {
4737
5041
  const { open, setOpen } = useDialog();
4738
- return /* @__PURE__ */ jsx43(
5042
+ return /* @__PURE__ */ jsx46(
4739
5043
  "div",
4740
5044
  {
4741
5045
  "data-slot": "dialog-overlay",
@@ -4746,7 +5050,7 @@ function DialogOverlay({ className, ...props }) {
4746
5050
  }
4747
5051
  );
4748
5052
  }
4749
- var XIcon = (props) => /* @__PURE__ */ jsx43(
5053
+ var XIcon = (props) => /* @__PURE__ */ jsx46(
4750
5054
  "svg",
4751
5055
  {
4752
5056
  xmlns: "http://www.w3.org/2000/svg",
@@ -4759,7 +5063,7 @@ var XIcon = (props) => /* @__PURE__ */ jsx43(
4759
5063
  strokeLinecap: "round",
4760
5064
  strokeLinejoin: "round",
4761
5065
  ...props,
4762
- children: /* @__PURE__ */ jsx43("path", { d: "M18 6 6 18M6 6l12 12" })
5066
+ children: /* @__PURE__ */ jsx46("path", { d: "M18 6 6 18M6 6l12 12" })
4763
5067
  }
4764
5068
  );
4765
5069
  function DialogContent({
@@ -4776,7 +5080,7 @@ function DialogContent({
4776
5080
  onDismiss: () => setOpen(false),
4777
5081
  exclude: [triggerRef]
4778
5082
  });
4779
- React52.useEffect(() => {
5083
+ React55.useEffect(() => {
4780
5084
  if (!open) return;
4781
5085
  const prev = document.body.style.overflow;
4782
5086
  document.body.style.overflow = "hidden";
@@ -4785,9 +5089,9 @@ function DialogContent({
4785
5089
  };
4786
5090
  }, [open]);
4787
5091
  if (!isPresent) return null;
4788
- return /* @__PURE__ */ jsxs14(Portal, { children: [
4789
- /* @__PURE__ */ jsx43(DialogOverlay, {}),
4790
- /* @__PURE__ */ jsxs14(
5092
+ return /* @__PURE__ */ jsxs16(Portal, { children: [
5093
+ /* @__PURE__ */ jsx46(DialogOverlay, {}),
5094
+ /* @__PURE__ */ jsxs16(
4791
5095
  "div",
4792
5096
  {
4793
5097
  "data-slot": "dialog-content",
@@ -4799,7 +5103,7 @@ function DialogContent({
4799
5103
  ...props,
4800
5104
  children: [
4801
5105
  children,
4802
- showCloseButton && /* @__PURE__ */ jsxs14(
5106
+ showCloseButton && /* @__PURE__ */ jsxs16(
4803
5107
  "button",
4804
5108
  {
4805
5109
  type: "button",
@@ -4807,8 +5111,8 @@ function DialogContent({
4807
5111
  onClick: () => setOpen(false),
4808
5112
  className: DIALOG_CLOSE,
4809
5113
  children: [
4810
- /* @__PURE__ */ jsx43(XIcon, {}),
4811
- /* @__PURE__ */ jsx43("span", { className: "sr-only", children: "Close" })
5114
+ /* @__PURE__ */ jsx46(XIcon, {}),
5115
+ /* @__PURE__ */ jsx46("span", { className: "sr-only", children: "Close" })
4812
5116
  ]
4813
5117
  }
4814
5118
  )
@@ -4820,7 +5124,7 @@ function DialogContent({
4820
5124
  function DialogClose({ asChild = false, onClick, ...props }) {
4821
5125
  const { setOpen } = useDialog();
4822
5126
  const Comp = asChild ? Slot : "button";
4823
- return /* @__PURE__ */ jsx43(
5127
+ return /* @__PURE__ */ jsx46(
4824
5128
  Comp,
4825
5129
  {
4826
5130
  "data-slot": "dialog-close",
@@ -4833,7 +5137,7 @@ function DialogClose({ asChild = false, onClick, ...props }) {
4833
5137
  );
4834
5138
  }
4835
5139
  function DialogHeader({ className, ...props }) {
4836
- return /* @__PURE__ */ jsx43(
5140
+ return /* @__PURE__ */ jsx46(
4837
5141
  "div",
4838
5142
  {
4839
5143
  "data-slot": "dialog-header",
@@ -4843,7 +5147,7 @@ function DialogHeader({ className, ...props }) {
4843
5147
  );
4844
5148
  }
4845
5149
  function DialogFooter({ className, ...props }) {
4846
- return /* @__PURE__ */ jsx43(
5150
+ return /* @__PURE__ */ jsx46(
4847
5151
  "div",
4848
5152
  {
4849
5153
  "data-slot": "dialog-footer",
@@ -4853,7 +5157,7 @@ function DialogFooter({ className, ...props }) {
4853
5157
  );
4854
5158
  }
4855
5159
  function DialogTitle({ className, ...props }) {
4856
- return /* @__PURE__ */ jsx43(
5160
+ return /* @__PURE__ */ jsx46(
4857
5161
  "h2",
4858
5162
  {
4859
5163
  "data-slot": "dialog-title",
@@ -4863,7 +5167,7 @@ function DialogTitle({ className, ...props }) {
4863
5167
  );
4864
5168
  }
4865
5169
  function DialogDescription({ className, ...props }) {
4866
- return /* @__PURE__ */ jsx43(
5170
+ return /* @__PURE__ */ jsx46(
4867
5171
  "p",
4868
5172
  {
4869
5173
  "data-slot": "dialog-description",
@@ -4874,7 +5178,7 @@ function DialogDescription({ className, ...props }) {
4874
5178
  }
4875
5179
 
4876
5180
  // src/components/alert-dialog.tsx
4877
- import * as React53 from "react";
5181
+ import * as React56 from "react";
4878
5182
 
4879
5183
  // src/generated/alert-dialog.ts
4880
5184
  var ALERT_DIALOG_OVERLAY = "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50";
@@ -4885,10 +5189,10 @@ var ALERT_DIALOG_TITLE = "text-lg font-semibold";
4885
5189
  var ALERT_DIALOG_DESCRIPTION = "text-muted-foreground text-sm";
4886
5190
 
4887
5191
  // src/components/alert-dialog.tsx
4888
- import { jsx as jsx44, jsxs as jsxs15 } from "react/jsx-runtime";
4889
- var AlertDialogContext = React53.createContext(null);
5192
+ import { jsx as jsx47, jsxs as jsxs17 } from "react/jsx-runtime";
5193
+ var AlertDialogContext = React56.createContext(null);
4890
5194
  function useAlertDialog() {
4891
- const ctx = React53.useContext(AlertDialogContext);
5195
+ const ctx = React56.useContext(AlertDialogContext);
4892
5196
  if (!ctx) throw new Error("AlertDialog parts must be used within <AlertDialog>");
4893
5197
  return ctx;
4894
5198
  }
@@ -4898,13 +5202,13 @@ function AlertDialog({ open, defaultOpen = false, onOpenChange, children }) {
4898
5202
  defaultValue: defaultOpen,
4899
5203
  ...onOpenChange ? { onChange: onOpenChange } : {}
4900
5204
  });
4901
- const triggerRef = React53.useRef(null);
4902
- return /* @__PURE__ */ jsx44(AlertDialogContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children });
5205
+ const triggerRef = React56.useRef(null);
5206
+ return /* @__PURE__ */ jsx47(AlertDialogContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children });
4903
5207
  }
4904
5208
  function AlertDialogTrigger({ asChild = false, onClick, ...props }) {
4905
5209
  const { open, setOpen, triggerRef } = useAlertDialog();
4906
5210
  const Comp = asChild ? Slot : "button";
4907
- return /* @__PURE__ */ jsx44(
5211
+ return /* @__PURE__ */ jsx47(
4908
5212
  Comp,
4909
5213
  {
4910
5214
  "data-slot": "alert-dialog-trigger",
@@ -4920,7 +5224,7 @@ function AlertDialogTrigger({ asChild = false, onClick, ...props }) {
4920
5224
  }
4921
5225
  function AlertDialogOverlay({ className, ...props }) {
4922
5226
  const { open, setOpen } = useAlertDialog();
4923
- return /* @__PURE__ */ jsx44(
5227
+ return /* @__PURE__ */ jsx47(
4924
5228
  "div",
4925
5229
  {
4926
5230
  "data-slot": "alert-dialog-overlay",
@@ -4941,9 +5245,9 @@ function AlertDialogContent({ className, children, ...props }) {
4941
5245
  exclude: [triggerRef]
4942
5246
  });
4943
5247
  if (!isPresent) return null;
4944
- return /* @__PURE__ */ jsxs15(Portal, { children: [
4945
- /* @__PURE__ */ jsx44(AlertDialogOverlay, {}),
4946
- /* @__PURE__ */ jsx44(
5248
+ return /* @__PURE__ */ jsxs17(Portal, { children: [
5249
+ /* @__PURE__ */ jsx47(AlertDialogOverlay, {}),
5250
+ /* @__PURE__ */ jsx47(
4947
5251
  "div",
4948
5252
  {
4949
5253
  "data-slot": "alert-dialog-content",
@@ -4959,7 +5263,7 @@ function AlertDialogContent({ className, children, ...props }) {
4959
5263
  ] });
4960
5264
  }
4961
5265
  function AlertDialogHeader({ className, ...props }) {
4962
- return /* @__PURE__ */ jsx44(
5266
+ return /* @__PURE__ */ jsx47(
4963
5267
  "div",
4964
5268
  {
4965
5269
  "data-slot": "alert-dialog-header",
@@ -4969,7 +5273,7 @@ function AlertDialogHeader({ className, ...props }) {
4969
5273
  );
4970
5274
  }
4971
5275
  function AlertDialogFooter({ className, ...props }) {
4972
- return /* @__PURE__ */ jsx44(
5276
+ return /* @__PURE__ */ jsx47(
4973
5277
  "div",
4974
5278
  {
4975
5279
  "data-slot": "alert-dialog-footer",
@@ -4979,7 +5283,7 @@ function AlertDialogFooter({ className, ...props }) {
4979
5283
  );
4980
5284
  }
4981
5285
  function AlertDialogTitle({ className, ...props }) {
4982
- return /* @__PURE__ */ jsx44(
5286
+ return /* @__PURE__ */ jsx47(
4983
5287
  "h2",
4984
5288
  {
4985
5289
  "data-slot": "alert-dialog-title",
@@ -4989,7 +5293,7 @@ function AlertDialogTitle({ className, ...props }) {
4989
5293
  );
4990
5294
  }
4991
5295
  function AlertDialogDescription({ className, ...props }) {
4992
- return /* @__PURE__ */ jsx44(
5296
+ return /* @__PURE__ */ jsx47(
4993
5297
  "p",
4994
5298
  {
4995
5299
  "data-slot": "alert-dialog-description",
@@ -5000,7 +5304,7 @@ function AlertDialogDescription({ className, ...props }) {
5000
5304
  }
5001
5305
  function AlertDialogAction({ className, onClick, ...props }) {
5002
5306
  const { setOpen } = useAlertDialog();
5003
- return /* @__PURE__ */ jsx44(
5307
+ return /* @__PURE__ */ jsx47(
5004
5308
  "button",
5005
5309
  {
5006
5310
  "data-slot": "alert-dialog-action",
@@ -5015,7 +5319,7 @@ function AlertDialogAction({ className, onClick, ...props }) {
5015
5319
  }
5016
5320
  function AlertDialogCancel({ className, onClick, ...props }) {
5017
5321
  const { setOpen } = useAlertDialog();
5018
- return /* @__PURE__ */ jsx44(
5322
+ return /* @__PURE__ */ jsx47(
5019
5323
  "button",
5020
5324
  {
5021
5325
  "data-slot": "alert-dialog-cancel",
@@ -5030,7 +5334,7 @@ function AlertDialogCancel({ className, onClick, ...props }) {
5030
5334
  }
5031
5335
 
5032
5336
  // src/components/sheet.tsx
5033
- import * as React54 from "react";
5337
+ import * as React57 from "react";
5034
5338
 
5035
5339
  // src/generated/sheet.ts
5036
5340
  var SHEET_OVERLAY = "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50";
@@ -5046,10 +5350,10 @@ var SHEET_TITLE = "text-foreground font-semibold";
5046
5350
  var SHEET_DESCRIPTION = "text-muted-foreground text-sm";
5047
5351
 
5048
5352
  // src/components/sheet.tsx
5049
- import { jsx as jsx45, jsxs as jsxs16 } from "react/jsx-runtime";
5050
- var SheetContext = React54.createContext(null);
5353
+ import { jsx as jsx48, jsxs as jsxs18 } from "react/jsx-runtime";
5354
+ var SheetContext = React57.createContext(null);
5051
5355
  function useSheet() {
5052
- const ctx = React54.useContext(SheetContext);
5356
+ const ctx = React57.useContext(SheetContext);
5053
5357
  if (!ctx) throw new Error("Sheet parts must be used within <Sheet>");
5054
5358
  return ctx;
5055
5359
  }
@@ -5059,13 +5363,13 @@ function Sheet({ open, defaultOpen = false, onOpenChange, children }) {
5059
5363
  defaultValue: defaultOpen,
5060
5364
  ...onOpenChange ? { onChange: onOpenChange } : {}
5061
5365
  });
5062
- const triggerRef = React54.useRef(null);
5063
- return /* @__PURE__ */ jsx45(SheetContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children });
5366
+ const triggerRef = React57.useRef(null);
5367
+ return /* @__PURE__ */ jsx48(SheetContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children });
5064
5368
  }
5065
5369
  function SheetTrigger({ asChild = false, onClick, ...props }) {
5066
5370
  const { open, setOpen, triggerRef } = useSheet();
5067
5371
  const Comp = asChild ? Slot : "button";
5068
- return /* @__PURE__ */ jsx45(
5372
+ return /* @__PURE__ */ jsx48(
5069
5373
  Comp,
5070
5374
  {
5071
5375
  "data-slot": "sheet-trigger",
@@ -5081,7 +5385,7 @@ function SheetTrigger({ asChild = false, onClick, ...props }) {
5081
5385
  }
5082
5386
  function SheetOverlay({ className, ...props }) {
5083
5387
  const { open, setOpen } = useSheet();
5084
- return /* @__PURE__ */ jsx45(
5388
+ return /* @__PURE__ */ jsx48(
5085
5389
  "div",
5086
5390
  {
5087
5391
  "data-slot": "sheet-overlay",
@@ -5098,7 +5402,7 @@ var sheetSideClasses = {
5098
5402
  top: SHEET_SIDE_TOP,
5099
5403
  bottom: SHEET_SIDE_BOTTOM
5100
5404
  };
5101
- var XIcon2 = (props) => /* @__PURE__ */ jsx45(
5405
+ var XIcon2 = (props) => /* @__PURE__ */ jsx48(
5102
5406
  "svg",
5103
5407
  {
5104
5408
  xmlns: "http://www.w3.org/2000/svg",
@@ -5111,7 +5415,7 @@ var XIcon2 = (props) => /* @__PURE__ */ jsx45(
5111
5415
  strokeLinecap: "round",
5112
5416
  strokeLinejoin: "round",
5113
5417
  ...props,
5114
- children: /* @__PURE__ */ jsx45("path", { d: "M18 6 6 18M6 6l12 12" })
5418
+ children: /* @__PURE__ */ jsx48("path", { d: "M18 6 6 18M6 6l12 12" })
5115
5419
  }
5116
5420
  );
5117
5421
  function SheetContent({ className, children, side = "right", ...props }) {
@@ -5124,9 +5428,9 @@ function SheetContent({ className, children, side = "right", ...props }) {
5124
5428
  exclude: [triggerRef]
5125
5429
  });
5126
5430
  if (!isPresent) return null;
5127
- return /* @__PURE__ */ jsxs16(Portal, { children: [
5128
- /* @__PURE__ */ jsx45(SheetOverlay, {}),
5129
- /* @__PURE__ */ jsxs16(
5431
+ return /* @__PURE__ */ jsxs18(Portal, { children: [
5432
+ /* @__PURE__ */ jsx48(SheetOverlay, {}),
5433
+ /* @__PURE__ */ jsxs18(
5130
5434
  "div",
5131
5435
  {
5132
5436
  "data-slot": "sheet-content",
@@ -5138,7 +5442,7 @@ function SheetContent({ className, children, side = "right", ...props }) {
5138
5442
  ...props,
5139
5443
  children: [
5140
5444
  children,
5141
- /* @__PURE__ */ jsxs16(
5445
+ /* @__PURE__ */ jsxs18(
5142
5446
  "button",
5143
5447
  {
5144
5448
  type: "button",
@@ -5146,8 +5450,8 @@ function SheetContent({ className, children, side = "right", ...props }) {
5146
5450
  onClick: () => setOpen(false),
5147
5451
  className: SHEET_CLOSE,
5148
5452
  children: [
5149
- /* @__PURE__ */ jsx45(XIcon2, { className: "size-4" }),
5150
- /* @__PURE__ */ jsx45("span", { className: "sr-only", children: "Close" })
5453
+ /* @__PURE__ */ jsx48(XIcon2, { className: "size-4" }),
5454
+ /* @__PURE__ */ jsx48("span", { className: "sr-only", children: "Close" })
5151
5455
  ]
5152
5456
  }
5153
5457
  )
@@ -5159,7 +5463,7 @@ function SheetContent({ className, children, side = "right", ...props }) {
5159
5463
  function SheetClose({ asChild = false, onClick, ...props }) {
5160
5464
  const { setOpen } = useSheet();
5161
5465
  const Comp = asChild ? Slot : "button";
5162
- return /* @__PURE__ */ jsx45(
5466
+ return /* @__PURE__ */ jsx48(
5163
5467
  Comp,
5164
5468
  {
5165
5469
  "data-slot": "sheet-close",
@@ -5172,7 +5476,7 @@ function SheetClose({ asChild = false, onClick, ...props }) {
5172
5476
  );
5173
5477
  }
5174
5478
  function SheetHeader({ className, ...props }) {
5175
- return /* @__PURE__ */ jsx45(
5479
+ return /* @__PURE__ */ jsx48(
5176
5480
  "div",
5177
5481
  {
5178
5482
  "data-slot": "sheet-header",
@@ -5182,7 +5486,7 @@ function SheetHeader({ className, ...props }) {
5182
5486
  );
5183
5487
  }
5184
5488
  function SheetFooter({ className, ...props }) {
5185
- return /* @__PURE__ */ jsx45(
5489
+ return /* @__PURE__ */ jsx48(
5186
5490
  "div",
5187
5491
  {
5188
5492
  "data-slot": "sheet-footer",
@@ -5192,7 +5496,7 @@ function SheetFooter({ className, ...props }) {
5192
5496
  );
5193
5497
  }
5194
5498
  function SheetTitle({ className, ...props }) {
5195
- return /* @__PURE__ */ jsx45(
5499
+ return /* @__PURE__ */ jsx48(
5196
5500
  "h2",
5197
5501
  {
5198
5502
  "data-slot": "sheet-title",
@@ -5202,7 +5506,7 @@ function SheetTitle({ className, ...props }) {
5202
5506
  );
5203
5507
  }
5204
5508
  function SheetDescription({ className, ...props }) {
5205
- return /* @__PURE__ */ jsx45(
5509
+ return /* @__PURE__ */ jsx48(
5206
5510
  "p",
5207
5511
  {
5208
5512
  "data-slot": "sheet-description",
@@ -5213,7 +5517,7 @@ function SheetDescription({ className, ...props }) {
5213
5517
  }
5214
5518
 
5215
5519
  // src/components/drawer.tsx
5216
- import * as React55 from "react";
5520
+ import * as React58 from "react";
5217
5521
 
5218
5522
  // src/generated/drawer.ts
5219
5523
  var DRAWER_CONTENT_BASE = "bg-background fixed z-50 flex h-auto border";
@@ -5231,10 +5535,10 @@ var DRAWER_TITLE = "text-foreground font-semibold";
5231
5535
  var DRAWER_DESCRIPTION = "text-muted-foreground text-sm";
5232
5536
 
5233
5537
  // src/components/drawer.tsx
5234
- import { jsx as jsx46, jsxs as jsxs17 } from "react/jsx-runtime";
5235
- var DrawerContext = React55.createContext(null);
5538
+ import { jsx as jsx49, jsxs as jsxs19 } from "react/jsx-runtime";
5539
+ var DrawerContext = React58.createContext(null);
5236
5540
  function useDrawer() {
5237
- const ctx = React55.useContext(DrawerContext);
5541
+ const ctx = React58.useContext(DrawerContext);
5238
5542
  if (!ctx) throw new Error("Drawer parts must be used within <Drawer>");
5239
5543
  return ctx;
5240
5544
  }
@@ -5250,12 +5554,12 @@ function Drawer({
5250
5554
  defaultValue: defaultOpen,
5251
5555
  ...onOpenChange ? { onChange: onOpenChange } : {}
5252
5556
  });
5253
- return /* @__PURE__ */ jsx46(DrawerContext.Provider, { value: { open: isOpen, setOpen, direction }, children: /* @__PURE__ */ jsx46("div", { "data-slot": "drawer", children }) });
5557
+ return /* @__PURE__ */ jsx49(DrawerContext.Provider, { value: { open: isOpen, setOpen, direction }, children: /* @__PURE__ */ jsx49("div", { "data-slot": "drawer", children }) });
5254
5558
  }
5255
5559
  function DrawerTrigger({ asChild = false, onClick, ...props }) {
5256
5560
  const { setOpen } = useDrawer();
5257
5561
  const Comp = asChild ? Slot : "button";
5258
- return /* @__PURE__ */ jsx46(
5562
+ return /* @__PURE__ */ jsx49(
5259
5563
  Comp,
5260
5564
  {
5261
5565
  "data-slot": "drawer-trigger",
@@ -5270,7 +5574,7 @@ function DrawerTrigger({ asChild = false, onClick, ...props }) {
5270
5574
  function DrawerClose({ asChild = false, onClick, ...props }) {
5271
5575
  const { setOpen } = useDrawer();
5272
5576
  const Comp = asChild ? Slot : "button";
5273
- return /* @__PURE__ */ jsx46(
5577
+ return /* @__PURE__ */ jsx49(
5274
5578
  Comp,
5275
5579
  {
5276
5580
  "data-slot": "drawer-close",
@@ -5285,7 +5589,7 @@ function DrawerClose({ asChild = false, onClick, ...props }) {
5285
5589
  function DrawerOverlay({ className, ...props }) {
5286
5590
  const { open, setOpen } = useDrawer();
5287
5591
  if (!open) return null;
5288
- return /* @__PURE__ */ jsx46(
5592
+ return /* @__PURE__ */ jsx49(
5289
5593
  "div",
5290
5594
  {
5291
5595
  "data-slot": "drawer-overlay",
@@ -5300,8 +5604,8 @@ function DrawerContent({ className, children, ...props }) {
5300
5604
  const { open, setOpen, direction } = useDrawer();
5301
5605
  const scopeRef = useFocusScope(open);
5302
5606
  if (!open) return null;
5303
- return /* @__PURE__ */ jsxs17(Portal, { children: [
5304
- /* @__PURE__ */ jsx46(
5607
+ return /* @__PURE__ */ jsxs19(Portal, { children: [
5608
+ /* @__PURE__ */ jsx49(
5305
5609
  "div",
5306
5610
  {
5307
5611
  "data-slot": "drawer-overlay",
@@ -5309,7 +5613,7 @@ function DrawerContent({ className, children, ...props }) {
5309
5613
  onClick: () => setOpen(false)
5310
5614
  }
5311
5615
  ),
5312
- /* @__PURE__ */ jsxs17(
5616
+ /* @__PURE__ */ jsxs19(
5313
5617
  "div",
5314
5618
  {
5315
5619
  role: "dialog",
@@ -5324,7 +5628,7 @@ function DrawerContent({ className, children, ...props }) {
5324
5628
  className: cn(DRAWER_CONTENT_BASE, drawerDirectionClasses[direction], className),
5325
5629
  ...props,
5326
5630
  children: [
5327
- direction === "bottom" ? /* @__PURE__ */ jsx46(
5631
+ direction === "bottom" ? /* @__PURE__ */ jsx49(
5328
5632
  "div",
5329
5633
  {
5330
5634
  "data-slot": "drawer-handle",
@@ -5338,7 +5642,7 @@ function DrawerContent({ className, children, ...props }) {
5338
5642
  ] });
5339
5643
  }
5340
5644
  function DrawerHeader({ className, ...props }) {
5341
- return /* @__PURE__ */ jsx46(
5645
+ return /* @__PURE__ */ jsx49(
5342
5646
  "div",
5343
5647
  {
5344
5648
  "data-slot": "drawer-header",
@@ -5348,7 +5652,7 @@ function DrawerHeader({ className, ...props }) {
5348
5652
  );
5349
5653
  }
5350
5654
  function DrawerFooter({ className, ...props }) {
5351
- return /* @__PURE__ */ jsx46(
5655
+ return /* @__PURE__ */ jsx49(
5352
5656
  "div",
5353
5657
  {
5354
5658
  "data-slot": "drawer-footer",
@@ -5358,7 +5662,7 @@ function DrawerFooter({ className, ...props }) {
5358
5662
  );
5359
5663
  }
5360
5664
  function DrawerTitle({ className, ...props }) {
5361
- return /* @__PURE__ */ jsx46(
5665
+ return /* @__PURE__ */ jsx49(
5362
5666
  "div",
5363
5667
  {
5364
5668
  "data-slot": "drawer-title",
@@ -5368,7 +5672,7 @@ function DrawerTitle({ className, ...props }) {
5368
5672
  );
5369
5673
  }
5370
5674
  function DrawerDescription({ className, ...props }) {
5371
- return /* @__PURE__ */ jsx46(
5675
+ return /* @__PURE__ */ jsx49(
5372
5676
  "div",
5373
5677
  {
5374
5678
  "data-slot": "drawer-description",
@@ -5379,11 +5683,11 @@ function DrawerDescription({ className, ...props }) {
5379
5683
  }
5380
5684
 
5381
5685
  // src/components/select.tsx
5382
- import * as React56 from "react";
5383
- import { jsx as jsx47, jsxs as jsxs18 } from "react/jsx-runtime";
5384
- var SelectContext = React56.createContext(null);
5686
+ import * as React59 from "react";
5687
+ import { jsx as jsx50, jsxs as jsxs20 } from "react/jsx-runtime";
5688
+ var SelectContext = React59.createContext(null);
5385
5689
  function useSelect() {
5386
- const ctx = React56.useContext(SelectContext);
5690
+ const ctx = React59.useContext(SelectContext);
5387
5691
  if (!ctx) throw new Error("Select parts must be used within <Select>");
5388
5692
  return ctx;
5389
5693
  }
@@ -5406,8 +5710,8 @@ function Select({
5406
5710
  defaultValue: defaultOpen,
5407
5711
  ...onOpenChange ? { onChange: onOpenChange } : {}
5408
5712
  });
5409
- const anchorRef = React56.useRef(null);
5410
- return /* @__PURE__ */ jsx47(
5713
+ const anchorRef = React59.useRef(null);
5714
+ return /* @__PURE__ */ jsx50(
5411
5715
  SelectContext.Provider,
5412
5716
  {
5413
5717
  value: { value: currentValue, setValue, open: isOpen, setOpen, anchorRef },
@@ -5423,7 +5727,7 @@ function SelectTrigger({
5423
5727
  ...props
5424
5728
  }) {
5425
5729
  const { open, setOpen, anchorRef } = useSelect();
5426
- return /* @__PURE__ */ jsxs18(
5730
+ return /* @__PURE__ */ jsxs20(
5427
5731
  "button",
5428
5732
  {
5429
5733
  type: "button",
@@ -5444,7 +5748,7 @@ function SelectTrigger({
5444
5748
  ...props,
5445
5749
  children: [
5446
5750
  children,
5447
- /* @__PURE__ */ jsx47(
5751
+ /* @__PURE__ */ jsx50(
5448
5752
  "svg",
5449
5753
  {
5450
5754
  xmlns: "http://www.w3.org/2000/svg",
@@ -5458,7 +5762,7 @@ function SelectTrigger({
5458
5762
  strokeLinejoin: "round",
5459
5763
  className: "size-4 opacity-50",
5460
5764
  "aria-hidden": "true",
5461
- children: /* @__PURE__ */ jsx47("path", { d: "m6 9 6 6 6-6" })
5765
+ children: /* @__PURE__ */ jsx50("path", { d: "m6 9 6 6 6-6" })
5462
5766
  }
5463
5767
  )
5464
5768
  ]
@@ -5468,7 +5772,7 @@ function SelectTrigger({
5468
5772
  function SelectValue({ className, placeholder, ...props }) {
5469
5773
  const { value } = useSelect();
5470
5774
  const isEmpty = value === "";
5471
- return /* @__PURE__ */ jsx47(
5775
+ return /* @__PURE__ */ jsx50(
5472
5776
  "span",
5473
5777
  {
5474
5778
  "data-slot": "select-value",
@@ -5501,13 +5805,13 @@ function SelectContent({
5501
5805
  onDismiss: () => setOpen(false),
5502
5806
  exclude: [anchorRef]
5503
5807
  });
5504
- const items = React56.Children.toArray(children).filter(React56.isValidElement);
5808
+ const items = React59.Children.toArray(children).filter(React59.isValidElement);
5505
5809
  const { activeIndex, setActiveIndex, onKeyDown } = useRovingFocus({
5506
5810
  count: items.length,
5507
5811
  orientation: "vertical"
5508
5812
  });
5509
5813
  if (!isPresent) return null;
5510
- return /* @__PURE__ */ jsx47(Portal, { children: /* @__PURE__ */ jsx47(
5814
+ return /* @__PURE__ */ jsx50(Portal, { children: /* @__PURE__ */ jsx50(
5511
5815
  "div",
5512
5816
  {
5513
5817
  role: "listbox",
@@ -5523,8 +5827,8 @@ function SelectContent({
5523
5827
  className
5524
5828
  ),
5525
5829
  ...props,
5526
- children: /* @__PURE__ */ jsx47("div", { className: "p-1", children: items.map(
5527
- (child, index) => React56.cloneElement(child, {
5830
+ children: /* @__PURE__ */ jsx50("div", { className: "p-1", children: items.map(
5831
+ (child, index) => React59.cloneElement(child, {
5528
5832
  __index: index,
5529
5833
  __active: index === activeIndex,
5530
5834
  __setActive: setActiveIndex
@@ -5544,7 +5848,7 @@ function SelectItem({
5544
5848
  }) {
5545
5849
  const { value: selectedValue, setValue, setOpen } = useSelect();
5546
5850
  const selected = selectedValue === value;
5547
- return /* @__PURE__ */ jsxs18(
5851
+ return /* @__PURE__ */ jsxs20(
5548
5852
  "div",
5549
5853
  {
5550
5854
  role: "option",
@@ -5569,7 +5873,7 @@ function SelectItem({
5569
5873
  ),
5570
5874
  ...props,
5571
5875
  children: [
5572
- selected ? /* @__PURE__ */ jsx47("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx47(
5876
+ selected ? /* @__PURE__ */ jsx50("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx50(
5573
5877
  "svg",
5574
5878
  {
5575
5879
  xmlns: "http://www.w3.org/2000/svg",
@@ -5583,19 +5887,19 @@ function SelectItem({
5583
5887
  strokeLinejoin: "round",
5584
5888
  className: "size-4",
5585
5889
  "aria-hidden": "true",
5586
- children: /* @__PURE__ */ jsx47("path", { d: "M20 6 9 17l-5-5" })
5890
+ children: /* @__PURE__ */ jsx50("path", { d: "M20 6 9 17l-5-5" })
5587
5891
  }
5588
5892
  ) }) : null,
5589
- /* @__PURE__ */ jsx47("span", { children })
5893
+ /* @__PURE__ */ jsx50("span", { children })
5590
5894
  ]
5591
5895
  }
5592
5896
  );
5593
5897
  }
5594
5898
  function SelectGroup({ className, ...props }) {
5595
- return /* @__PURE__ */ jsx47("div", { role: "group", "data-slot": "select-group", className, ...props });
5899
+ return /* @__PURE__ */ jsx50("div", { role: "group", "data-slot": "select-group", className, ...props });
5596
5900
  }
5597
5901
  function SelectLabel({ className, ...props }) {
5598
- return /* @__PURE__ */ jsx47(
5902
+ return /* @__PURE__ */ jsx50(
5599
5903
  "div",
5600
5904
  {
5601
5905
  "data-slot": "select-label",
@@ -5605,7 +5909,7 @@ function SelectLabel({ className, ...props }) {
5605
5909
  );
5606
5910
  }
5607
5911
  function SelectSeparator({ className, ...props }) {
5608
- return /* @__PURE__ */ jsx47(
5912
+ return /* @__PURE__ */ jsx50(
5609
5913
  "div",
5610
5914
  {
5611
5915
  "data-slot": "select-separator",
@@ -5616,7 +5920,7 @@ function SelectSeparator({ className, ...props }) {
5616
5920
  }
5617
5921
 
5618
5922
  // src/components/command.tsx
5619
- import * as React57 from "react";
5923
+ import * as React60 from "react";
5620
5924
 
5621
5925
  // src/generated/command.ts
5622
5926
  var COMMAND_ROOT = "bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md";
@@ -5633,10 +5937,10 @@ var COMMAND_SEPARATOR = "bg-border -mx-1 h-px";
5633
5937
  var COMMAND_SHORTCUT = "text-muted-foreground ml-auto text-xs tracking-widest";
5634
5938
 
5635
5939
  // src/components/command.tsx
5636
- import { jsx as jsx48, jsxs as jsxs19 } from "react/jsx-runtime";
5637
- var CommandContext = React57.createContext(null);
5940
+ import { jsx as jsx51, jsxs as jsxs21 } from "react/jsx-runtime";
5941
+ var CommandContext = React60.createContext(null);
5638
5942
  function useCommand() {
5639
- const ctx = React57.useContext(CommandContext);
5943
+ const ctx = React60.useContext(CommandContext);
5640
5944
  if (!ctx) throw new Error("Command parts must be used within <Command>");
5641
5945
  return ctx;
5642
5946
  }
@@ -5653,7 +5957,7 @@ function Command({
5653
5957
  defaultValue: defaultSearch,
5654
5958
  ...onSearchChange ? { onChange: onSearchChange } : {}
5655
5959
  });
5656
- return /* @__PURE__ */ jsx48(CommandContext.Provider, { value: { search: currentSearch, setSearch }, children: /* @__PURE__ */ jsx48(
5960
+ return /* @__PURE__ */ jsx51(CommandContext.Provider, { value: { search: currentSearch, setSearch }, children: /* @__PURE__ */ jsx51(
5657
5961
  "div",
5658
5962
  {
5659
5963
  "data-slot": "command",
@@ -5677,8 +5981,8 @@ function CommandDialog({
5677
5981
  });
5678
5982
  const scopeRef = useFocusScope(isOpen);
5679
5983
  if (!isOpen) return null;
5680
- return /* @__PURE__ */ jsxs19(Portal, { children: [
5681
- /* @__PURE__ */ jsx48(
5984
+ return /* @__PURE__ */ jsxs21(Portal, { children: [
5985
+ /* @__PURE__ */ jsx51(
5682
5986
  "div",
5683
5987
  {
5684
5988
  "data-slot": "command-overlay",
@@ -5686,7 +5990,7 @@ function CommandDialog({
5686
5990
  onClick: () => setOpen(false)
5687
5991
  }
5688
5992
  ),
5689
- /* @__PURE__ */ jsx48(
5993
+ /* @__PURE__ */ jsx51(
5690
5994
  "div",
5691
5995
  {
5692
5996
  role: "dialog",
@@ -5697,7 +6001,7 @@ function CommandDialog({
5697
6001
  if (e.key === "Escape") setOpen(false);
5698
6002
  },
5699
6003
  className: cn(COMMAND_DIALOG_CONTENT, className),
5700
- children: /* @__PURE__ */ jsx48(Command, { className: COMMAND_DIALOG_COMMAND, children })
6004
+ children: /* @__PURE__ */ jsx51(Command, { className: COMMAND_DIALOG_COMMAND, children })
5701
6005
  }
5702
6006
  )
5703
6007
  ] });
@@ -5707,8 +6011,8 @@ function CommandInput({
5707
6011
  ...props
5708
6012
  }) {
5709
6013
  const { search, setSearch } = useCommand();
5710
- return /* @__PURE__ */ jsxs19("div", { className: COMMAND_INPUT_WRAPPER, "data-slot": "command-input-wrapper", children: [
5711
- /* @__PURE__ */ jsxs19(
6014
+ return /* @__PURE__ */ jsxs21("div", { className: COMMAND_INPUT_WRAPPER, "data-slot": "command-input-wrapper", children: [
6015
+ /* @__PURE__ */ jsxs21(
5712
6016
  "svg",
5713
6017
  {
5714
6018
  xmlns: "http://www.w3.org/2000/svg",
@@ -5723,12 +6027,12 @@ function CommandInput({
5723
6027
  className: "size-4 shrink-0 opacity-50",
5724
6028
  "aria-hidden": "true",
5725
6029
  children: [
5726
- /* @__PURE__ */ jsx48("circle", { cx: "11", cy: "11", r: "8" }),
5727
- /* @__PURE__ */ jsx48("path", { d: "m21 21-4.3-4.3" })
6030
+ /* @__PURE__ */ jsx51("circle", { cx: "11", cy: "11", r: "8" }),
6031
+ /* @__PURE__ */ jsx51("path", { d: "m21 21-4.3-4.3" })
5728
6032
  ]
5729
6033
  }
5730
6034
  ),
5731
- /* @__PURE__ */ jsx48(
6035
+ /* @__PURE__ */ jsx51(
5732
6036
  "input",
5733
6037
  {
5734
6038
  type: "text",
@@ -5743,7 +6047,7 @@ function CommandInput({
5743
6047
  ] });
5744
6048
  }
5745
6049
  function CommandList({ className, ...props }) {
5746
- return /* @__PURE__ */ jsx48(
6050
+ return /* @__PURE__ */ jsx51(
5747
6051
  "div",
5748
6052
  {
5749
6053
  role: "listbox",
@@ -5757,7 +6061,7 @@ function CommandEmpty({ className, children, ...props }) {
5757
6061
  const { search } = useCommand();
5758
6062
  const hasQuery = search.trim() !== "";
5759
6063
  if (!hasQuery) return null;
5760
- return /* @__PURE__ */ jsx48(
6064
+ return /* @__PURE__ */ jsx51(
5761
6065
  "div",
5762
6066
  {
5763
6067
  "data-slot": "command-empty",
@@ -5768,7 +6072,7 @@ function CommandEmpty({ className, children, ...props }) {
5768
6072
  );
5769
6073
  }
5770
6074
  function CommandGroup({ className, heading, children, ...props }) {
5771
- return /* @__PURE__ */ jsxs19(
6075
+ return /* @__PURE__ */ jsxs21(
5772
6076
  "div",
5773
6077
  {
5774
6078
  role: "group",
@@ -5776,7 +6080,7 @@ function CommandGroup({ className, heading, children, ...props }) {
5776
6080
  className: cn(COMMAND_GROUP, className),
5777
6081
  ...props,
5778
6082
  children: [
5779
- heading ? /* @__PURE__ */ jsx48("div", { "data-slot": "command-group-heading", children: heading }) : null,
6083
+ heading ? /* @__PURE__ */ jsx51("div", { "data-slot": "command-group-heading", children: heading }) : null,
5780
6084
  children
5781
6085
  ]
5782
6086
  }
@@ -5793,7 +6097,7 @@ function CommandItem({
5793
6097
  const { search } = useCommand();
5794
6098
  const query = search.toLowerCase();
5795
6099
  if (query !== "" && !value.toLowerCase().includes(query)) return null;
5796
- return /* @__PURE__ */ jsx48(
6100
+ return /* @__PURE__ */ jsx51(
5797
6101
  "div",
5798
6102
  {
5799
6103
  role: "option",
@@ -5811,7 +6115,7 @@ function CommandItem({
5811
6115
  );
5812
6116
  }
5813
6117
  function CommandSeparator({ className, ...props }) {
5814
- return /* @__PURE__ */ jsx48(
6118
+ return /* @__PURE__ */ jsx51(
5815
6119
  "div",
5816
6120
  {
5817
6121
  "data-slot": "command-separator",
@@ -5821,7 +6125,7 @@ function CommandSeparator({ className, ...props }) {
5821
6125
  );
5822
6126
  }
5823
6127
  function CommandShortcut({ className, ...props }) {
5824
- return /* @__PURE__ */ jsx48(
6128
+ return /* @__PURE__ */ jsx51(
5825
6129
  "span",
5826
6130
  {
5827
6131
  "data-slot": "command-shortcut",
@@ -5832,7 +6136,7 @@ function CommandShortcut({ className, ...props }) {
5832
6136
  }
5833
6137
 
5834
6138
  // src/components/chart.tsx
5835
- import * as React58 from "react";
6139
+ import * as React61 from "react";
5836
6140
 
5837
6141
  // src/generated/chart.ts
5838
6142
  var CHART_CONTAINER = "flex aspect-video justify-center text-xs [&_.recharts-layer]:outline-hidden [&_.recharts-surface]:outline-hidden [&_svg]:outline-hidden";
@@ -5840,10 +6144,10 @@ var CHART_TOOLTIP = "border-border/50 bg-background grid min-w-[8rem] items-star
5840
6144
  var CHART_LEGEND = "flex items-center justify-center gap-4";
5841
6145
 
5842
6146
  // src/components/chart.tsx
5843
- import { Fragment as Fragment4, jsx as jsx49, jsxs as jsxs20 } from "react/jsx-runtime";
5844
- var ChartContext = React58.createContext(null);
6147
+ import { Fragment as Fragment6, jsx as jsx52, jsxs as jsxs22 } from "react/jsx-runtime";
6148
+ var ChartContext = React61.createContext(null);
5845
6149
  function useChart() {
5846
- const context = React58.useContext(ChartContext);
6150
+ const context = React61.useContext(ChartContext);
5847
6151
  if (!context) {
5848
6152
  throw new Error("useChart must be used within a <ChartContainer />");
5849
6153
  }
@@ -5856,9 +6160,9 @@ function ChartContainer({
5856
6160
  config,
5857
6161
  ...props
5858
6162
  }) {
5859
- const uniqueId = React58.useId();
6163
+ const uniqueId = React61.useId();
5860
6164
  const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
5861
- return /* @__PURE__ */ jsx49(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs20(
6165
+ return /* @__PURE__ */ jsx52(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs22(
5862
6166
  "div",
5863
6167
  {
5864
6168
  "data-slot": "chart",
@@ -5866,7 +6170,7 @@ function ChartContainer({
5866
6170
  className: cn(CHART_CONTAINER, className),
5867
6171
  ...props,
5868
6172
  children: [
5869
- /* @__PURE__ */ jsx49(ChartStyle, { id: chartId, config }),
6173
+ /* @__PURE__ */ jsx52(ChartStyle, { id: chartId, config }),
5870
6174
  children
5871
6175
  ]
5872
6176
  }
@@ -5877,7 +6181,7 @@ var ChartStyle = ({ id, config }) => {
5877
6181
  if (!colorConfig.length) {
5878
6182
  return null;
5879
6183
  }
5880
- return /* @__PURE__ */ jsx49(
6184
+ return /* @__PURE__ */ jsx52(
5881
6185
  "style",
5882
6186
  {
5883
6187
  dangerouslySetInnerHTML: {
@@ -5888,7 +6192,7 @@ ${colorConfig.map(([key, itemConfig]) => ` --color-${key}: ${itemConfig.color};
5888
6192
  }
5889
6193
  );
5890
6194
  };
5891
- var ChartTooltip = ({ children }) => /* @__PURE__ */ jsx49(Fragment4, { children });
6195
+ var ChartTooltip = ({ children }) => /* @__PURE__ */ jsx52(Fragment6, { children });
5892
6196
  function ChartTooltipContent({
5893
6197
  className,
5894
6198
  items = [],
@@ -5901,21 +6205,21 @@ function ChartTooltipContent({
5901
6205
  if (!items.length) {
5902
6206
  return null;
5903
6207
  }
5904
- return /* @__PURE__ */ jsxs20(
6208
+ return /* @__PURE__ */ jsxs22(
5905
6209
  "div",
5906
6210
  {
5907
6211
  "data-slot": "chart-tooltip",
5908
6212
  className: cn(CHART_TOOLTIP, className),
5909
6213
  children: [
5910
- !hideLabel && label ? /* @__PURE__ */ jsx49("div", { className: cn("font-medium", labelClassName), children: label }) : null,
5911
- /* @__PURE__ */ jsx49("div", { className: "grid gap-1.5", children: items.map((item, index) => /* @__PURE__ */ jsxs20(
6214
+ !hideLabel && label ? /* @__PURE__ */ jsx52("div", { className: cn("font-medium", labelClassName), children: label }) : null,
6215
+ /* @__PURE__ */ jsx52("div", { className: "grid gap-1.5", children: items.map((item, index) => /* @__PURE__ */ jsxs22(
5912
6216
  "div",
5913
6217
  {
5914
6218
  className: cn(
5915
6219
  "[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 items-center"
5916
6220
  ),
5917
6221
  children: [
5918
- !hideIndicator && /* @__PURE__ */ jsx49(
6222
+ !hideIndicator && /* @__PURE__ */ jsx52(
5919
6223
  "div",
5920
6224
  {
5921
6225
  className: "shrink-0 rounded-[2px] h-2.5 w-2.5",
@@ -5925,9 +6229,9 @@ function ChartTooltipContent({
5925
6229
  }
5926
6230
  }
5927
6231
  ),
5928
- /* @__PURE__ */ jsxs20("div", { className: "flex flex-1 justify-between leading-none items-center", children: [
5929
- /* @__PURE__ */ jsx49("span", { className: "text-muted-foreground", children: item.label }),
5930
- item.value !== void 0 && /* @__PURE__ */ jsx49("span", { className: "text-foreground font-mono font-medium tabular-nums", children: item.value })
6232
+ /* @__PURE__ */ jsxs22("div", { className: "flex flex-1 justify-between leading-none items-center", children: [
6233
+ /* @__PURE__ */ jsx52("span", { className: "text-muted-foreground", children: item.label }),
6234
+ item.value !== void 0 && /* @__PURE__ */ jsx52("span", { className: "text-foreground font-mono font-medium tabular-nums", children: item.value })
5931
6235
  ] })
5932
6236
  ]
5933
6237
  },
@@ -5937,7 +6241,7 @@ function ChartTooltipContent({
5937
6241
  }
5938
6242
  );
5939
6243
  }
5940
- var ChartLegend = ({ children }) => /* @__PURE__ */ jsx49(Fragment4, { children });
6244
+ var ChartLegend = ({ children }) => /* @__PURE__ */ jsx52(Fragment6, { children });
5941
6245
  function ChartLegendContent({
5942
6246
  className,
5943
6247
  hideIcon = false,
@@ -5951,19 +6255,19 @@ function ChartLegendContent({
5951
6255
  if (!rows.length) {
5952
6256
  return null;
5953
6257
  }
5954
- return /* @__PURE__ */ jsx49(
6258
+ return /* @__PURE__ */ jsx52(
5955
6259
  "div",
5956
6260
  {
5957
6261
  "data-slot": "chart-legend",
5958
6262
  className: cn(CHART_LEGEND, className),
5959
- children: rows.map((item, index) => /* @__PURE__ */ jsxs20(
6263
+ children: rows.map((item, index) => /* @__PURE__ */ jsxs22(
5960
6264
  "div",
5961
6265
  {
5962
6266
  className: cn(
5963
6267
  "[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"
5964
6268
  ),
5965
6269
  children: [
5966
- !hideIcon && /* @__PURE__ */ jsx49(
6270
+ !hideIcon && /* @__PURE__ */ jsx52(
5967
6271
  "div",
5968
6272
  {
5969
6273
  className: "h-2 w-2 shrink-0 rounded-[2px]",
@@ -5980,7 +6284,7 @@ function ChartLegendContent({
5980
6284
  }
5981
6285
 
5982
6286
  // src/components/calendar.tsx
5983
- import * as React59 from "react";
6287
+ import * as React62 from "react";
5984
6288
 
5985
6289
  // src/generated/calendar.ts
5986
6290
  var CALENDAR_ROOT = "bg-background p-3 w-fit";
@@ -5998,7 +6302,7 @@ var CALENDAR_DAY_SELECTED = "bg-primary text-primary-foreground";
5998
6302
  var CALENDAR_DAY_TODAY = "bg-accent text-accent-foreground rounded-md";
5999
6303
 
6000
6304
  // src/components/calendar.tsx
6001
- import { jsx as jsx50, jsxs as jsxs21 } from "react/jsx-runtime";
6305
+ import { jsx as jsx53, jsxs as jsxs23 } from "react/jsx-runtime";
6002
6306
  var MONTHS = [
6003
6307
  "January",
6004
6308
  "February",
@@ -6017,7 +6321,7 @@ var WEEKDAYS = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"];
6017
6321
  var CHEVRON_LEFT = "m15 18-6-6 6-6";
6018
6322
  var CHEVRON_RIGHT = "m9 18 6-6-6-6";
6019
6323
  function Chevron({ d }) {
6020
- return /* @__PURE__ */ jsx50(
6324
+ return /* @__PURE__ */ jsx53(
6021
6325
  "svg",
6022
6326
  {
6023
6327
  className: "size-4",
@@ -6031,7 +6335,7 @@ function Chevron({ d }) {
6031
6335
  strokeLinecap: "round",
6032
6336
  strokeLinejoin: "round",
6033
6337
  "aria-hidden": true,
6034
- children: /* @__PURE__ */ jsx50("path", { d })
6338
+ children: /* @__PURE__ */ jsx53("path", { d })
6035
6339
  }
6036
6340
  );
6037
6341
  }
@@ -6053,7 +6357,7 @@ function Calendar({
6053
6357
  today = /* @__PURE__ */ new Date(),
6054
6358
  className
6055
6359
  }) {
6056
- const [internal, setInternal] = React59.useState(
6360
+ const [internal, setInternal] = React62.useState(
6057
6361
  () => startOfMonth(defaultMonth ?? /* @__PURE__ */ new Date())
6058
6362
  );
6059
6363
  const view = month ? startOfMonth(month) : internal;
@@ -6078,38 +6382,38 @@ function Calendar({
6078
6382
  size: "icon",
6079
6383
  className: CALENDAR_NAV_BUTTON
6080
6384
  });
6081
- return /* @__PURE__ */ jsxs21(
6385
+ return /* @__PURE__ */ jsxs23(
6082
6386
  "div",
6083
6387
  {
6084
6388
  "data-slot": "calendar",
6085
6389
  role: "application",
6086
6390
  className: cn(CALENDAR_ROOT, className),
6087
6391
  children: [
6088
- /* @__PURE__ */ jsxs21("div", { className: CALENDAR_NAV, children: [
6089
- /* @__PURE__ */ jsx50(
6392
+ /* @__PURE__ */ jsxs23("div", { className: CALENDAR_NAV, children: [
6393
+ /* @__PURE__ */ jsx53(
6090
6394
  "button",
6091
6395
  {
6092
6396
  type: "button",
6093
6397
  className: navClass,
6094
6398
  "aria-label": "Previous month",
6095
6399
  onClick: () => go(-1),
6096
- children: /* @__PURE__ */ jsx50(Chevron, { d: CHEVRON_LEFT })
6400
+ children: /* @__PURE__ */ jsx53(Chevron, { d: CHEVRON_LEFT })
6097
6401
  }
6098
6402
  ),
6099
- /* @__PURE__ */ jsx50("div", { className: CALENDAR_CAPTION, children: caption }),
6100
- /* @__PURE__ */ jsx50(
6403
+ /* @__PURE__ */ jsx53("div", { className: CALENDAR_CAPTION, children: caption }),
6404
+ /* @__PURE__ */ jsx53(
6101
6405
  "button",
6102
6406
  {
6103
6407
  type: "button",
6104
6408
  className: navClass,
6105
6409
  "aria-label": "Next month",
6106
6410
  onClick: () => go(1),
6107
- children: /* @__PURE__ */ jsx50(Chevron, { d: CHEVRON_RIGHT })
6411
+ children: /* @__PURE__ */ jsx53(Chevron, { d: CHEVRON_RIGHT })
6108
6412
  }
6109
6413
  )
6110
6414
  ] }),
6111
- /* @__PURE__ */ jsxs21("table", { className: CALENDAR_GRID, role: "grid", children: [
6112
- /* @__PURE__ */ jsx50("thead", { children: /* @__PURE__ */ jsx50("tr", { className: CALENDAR_WEEKDAY_ROW, children: WEEKDAYS.map((wd) => /* @__PURE__ */ jsx50(
6415
+ /* @__PURE__ */ jsxs23("table", { className: CALENDAR_GRID, role: "grid", children: [
6416
+ /* @__PURE__ */ jsx53("thead", { children: /* @__PURE__ */ jsx53("tr", { className: CALENDAR_WEEKDAY_ROW, children: WEEKDAYS.map((wd) => /* @__PURE__ */ jsx53(
6113
6417
  "th",
6114
6418
  {
6115
6419
  scope: "col",
@@ -6118,9 +6422,9 @@ function Calendar({
6118
6422
  },
6119
6423
  wd
6120
6424
  )) }) }),
6121
- /* @__PURE__ */ jsx50("tbody", { children: weeks.map((week, wi) => /* @__PURE__ */ jsx50("tr", { className: CALENDAR_WEEK, children: week.map((cell, ci) => {
6425
+ /* @__PURE__ */ jsx53("tbody", { children: weeks.map((week, wi) => /* @__PURE__ */ jsx53("tr", { className: CALENDAR_WEEK, children: week.map((cell, ci) => {
6122
6426
  if (cell === null) {
6123
- return /* @__PURE__ */ jsx50(
6427
+ return /* @__PURE__ */ jsx53(
6124
6428
  "td",
6125
6429
  {
6126
6430
  className: CALENDAR_DAY_EMPTY
@@ -6131,13 +6435,13 @@ function Calendar({
6131
6435
  const date = new Date(year, monthIndex, cell);
6132
6436
  const isSelected = sameDay(selected, date);
6133
6437
  const isToday = sameDay(today, date);
6134
- return /* @__PURE__ */ jsx50(
6438
+ return /* @__PURE__ */ jsx53(
6135
6439
  "td",
6136
6440
  {
6137
6441
  role: "gridcell",
6138
6442
  "aria-selected": isSelected,
6139
6443
  className: CALENDAR_DAY_CELL,
6140
- children: /* @__PURE__ */ jsx50(
6444
+ children: /* @__PURE__ */ jsx53(
6141
6445
  "button",
6142
6446
  {
6143
6447
  type: "button",
@@ -6167,7 +6471,7 @@ function Calendar({
6167
6471
  }
6168
6472
 
6169
6473
  // src/components/sonner.tsx
6170
- import * as React60 from "react";
6474
+ import * as React63 from "react";
6171
6475
 
6172
6476
  // src/generated/sonner.ts
6173
6477
  var TOAST_BASE = "pointer-events-auto flex w-full items-start gap-3 rounded-md border p-4 text-sm shadow-lg";
@@ -6192,7 +6496,7 @@ var TOAST_CONTENT = "flex-1 space-y-1";
6192
6496
  var TOAST_TITLE = "font-medium";
6193
6497
 
6194
6498
  // src/components/sonner.tsx
6195
- import { jsx as jsx51, jsxs as jsxs22 } from "react/jsx-runtime";
6499
+ import { jsx as jsx54, jsxs as jsxs24 } from "react/jsx-runtime";
6196
6500
  var DEFAULT_DURATION = 4e3;
6197
6501
  var SWIPE_THRESHOLD = 45;
6198
6502
  var SWIPE_VELOCITY = 0.11;
@@ -6257,17 +6561,17 @@ function ToastItem({
6257
6561
  reportHeight,
6258
6562
  removeHeight
6259
6563
  }) {
6260
- const ref = React60.useRef(null);
6261
- const [height, setHeight] = React60.useState(0);
6262
- const remainingRef = React60.useRef(t.duration);
6263
- const startedRef = React60.useRef(0);
6264
- const flingRef = React60.useRef(
6564
+ const ref = React63.useRef(null);
6565
+ const [height, setHeight] = React63.useState(0);
6566
+ const remainingRef = React63.useRef(t.duration);
6567
+ const startedRef = React63.useRef(0);
6568
+ const flingRef = React63.useRef(
6265
6569
  void 0
6266
6570
  );
6267
- const dragRef = React60.useRef(
6571
+ const dragRef = React63.useRef(
6268
6572
  null
6269
6573
  );
6270
- React60.useLayoutEffect(() => {
6574
+ React63.useLayoutEffect(() => {
6271
6575
  const el = ref.current;
6272
6576
  if (!el) return;
6273
6577
  el.style.height = "auto";
@@ -6278,8 +6582,8 @@ function ToastItem({
6278
6582
  reportHeight(t.id, h);
6279
6583
  }
6280
6584
  }, [t.id, t.message, t.description, reportHeight]);
6281
- React60.useEffect(() => () => removeHeight(t.id), [t.id, removeHeight]);
6282
- React60.useEffect(() => {
6585
+ React63.useEffect(() => () => removeHeight(t.id), [t.id, removeHeight]);
6586
+ React63.useEffect(() => {
6283
6587
  if (t.duration === Infinity || t.state === "closing" || paused) return;
6284
6588
  startedRef.current = Date.now();
6285
6589
  const id = setTimeout(() => store.dismiss(t.id), remainingRef.current);
@@ -6291,7 +6595,7 @@ function ToastItem({
6291
6595
  );
6292
6596
  };
6293
6597
  }, [paused, t.id, t.duration, t.state]);
6294
- React60.useEffect(
6598
+ React63.useEffect(
6295
6599
  () => () => {
6296
6600
  if (flingRef.current) clearTimeout(flingRef.current);
6297
6601
  },
@@ -6350,7 +6654,7 @@ function ToastItem({
6350
6654
  );
6351
6655
  }
6352
6656
  };
6353
- return /* @__PURE__ */ jsxs22(
6657
+ return /* @__PURE__ */ jsxs24(
6354
6658
  "li",
6355
6659
  {
6356
6660
  ref,
@@ -6378,11 +6682,11 @@ function ToastItem({
6378
6682
  toastVariantClasses[t.variant]
6379
6683
  ),
6380
6684
  children: [
6381
- /* @__PURE__ */ jsxs22("div", { className: TOAST_CONTENT, children: [
6382
- /* @__PURE__ */ jsx51("div", { className: TOAST_TITLE, children: t.message }),
6383
- t.description ? /* @__PURE__ */ jsx51("div", { className: "text-muted-foreground text-sm", children: t.description }) : null
6685
+ /* @__PURE__ */ jsxs24("div", { className: TOAST_CONTENT, children: [
6686
+ /* @__PURE__ */ jsx54("div", { className: TOAST_TITLE, children: t.message }),
6687
+ t.description ? /* @__PURE__ */ jsx54("div", { className: "text-muted-foreground text-sm", children: t.description }) : null
6384
6688
  ] }),
6385
- /* @__PURE__ */ jsx51(
6689
+ /* @__PURE__ */ jsx54(
6386
6690
  "button",
6387
6691
  {
6388
6692
  type: "button",
@@ -6390,7 +6694,7 @@ function ToastItem({
6390
6694
  "data-slot": "toast-close",
6391
6695
  onClick: () => store.dismiss(t.id),
6392
6696
  className: TOAST_CLOSE,
6393
- children: /* @__PURE__ */ jsx51(
6697
+ children: /* @__PURE__ */ jsx54(
6394
6698
  "svg",
6395
6699
  {
6396
6700
  xmlns: "http://www.w3.org/2000/svg",
@@ -6403,7 +6707,7 @@ function ToastItem({
6403
6707
  strokeLinecap: "round",
6404
6708
  strokeLinejoin: "round",
6405
6709
  "aria-hidden": "true",
6406
- children: /* @__PURE__ */ jsx51("path", { d: "M18 6 6 18M6 6l12 12" })
6710
+ children: /* @__PURE__ */ jsx54("path", { d: "M18 6 6 18M6 6l12 12" })
6407
6711
  }
6408
6712
  )
6409
6713
  }
@@ -6417,17 +6721,17 @@ function Toaster({
6417
6721
  className,
6418
6722
  ...props
6419
6723
  }) {
6420
- const [toasts, setToasts] = React60.useState([]);
6421
- const [heights, setHeights] = React60.useState(/* @__PURE__ */ new Map());
6422
- const [paused, setPaused] = React60.useState(false);
6423
- React60.useEffect(() => store.subscribe(setToasts), []);
6724
+ const [toasts, setToasts] = React63.useState([]);
6725
+ const [heights, setHeights] = React63.useState(/* @__PURE__ */ new Map());
6726
+ const [paused, setPaused] = React63.useState(false);
6727
+ React63.useEffect(() => store.subscribe(setToasts), []);
6424
6728
  const onEnter = () => setPaused(true);
6425
6729
  const onLeave = (e) => {
6426
6730
  if (!e.currentTarget.contains(e.relatedTarget)) {
6427
6731
  setPaused(false);
6428
6732
  }
6429
6733
  };
6430
- const reportHeight = React60.useCallback((id, h) => {
6734
+ const reportHeight = React63.useCallback((id, h) => {
6431
6735
  setHeights((prev) => {
6432
6736
  if (prev.get(id) === h) return prev;
6433
6737
  const next = new Map(prev);
@@ -6435,7 +6739,7 @@ function Toaster({
6435
6739
  return next;
6436
6740
  });
6437
6741
  }, []);
6438
- const removeHeight = React60.useCallback((id) => {
6742
+ const removeHeight = React63.useCallback((id) => {
6439
6743
  setHeights((prev) => {
6440
6744
  if (!prev.has(id)) return prev;
6441
6745
  const next = new Map(prev);
@@ -6453,7 +6757,7 @@ function Toaster({
6453
6757
  sum += heights.get(t.id) ?? 0;
6454
6758
  return o;
6455
6759
  });
6456
- return /* @__PURE__ */ jsx51(
6760
+ return /* @__PURE__ */ jsx54(
6457
6761
  "ol",
6458
6762
  {
6459
6763
  "data-slot": "toaster",
@@ -6474,7 +6778,7 @@ function Toaster({
6474
6778
  onPointerOut: onLeave,
6475
6779
  onFocus: onEnter,
6476
6780
  onBlur: onLeave,
6477
- children: ordered.map((t, i) => /* @__PURE__ */ jsx51(
6781
+ children: ordered.map((t, i) => /* @__PURE__ */ jsx54(
6478
6782
  ToastItem,
6479
6783
  {
6480
6784
  toast: t,
@@ -6492,7 +6796,7 @@ function Toaster({
6492
6796
  }
6493
6797
 
6494
6798
  // src/components/form.tsx
6495
- import * as React61 from "react";
6799
+ import * as React64 from "react";
6496
6800
 
6497
6801
  // src/generated/form.ts
6498
6802
  var FORM_ITEM = "grid gap-2";
@@ -6500,21 +6804,21 @@ var FORM_DESCRIPTION = "text-muted-foreground text-sm";
6500
6804
  var FORM_MESSAGE = "text-destructive text-sm";
6501
6805
 
6502
6806
  // src/components/form.tsx
6503
- import { jsx as jsx52 } from "react/jsx-runtime";
6504
- var FormItemContext = React61.createContext(null);
6807
+ import { jsx as jsx55 } from "react/jsx-runtime";
6808
+ var FormItemContext = React64.createContext(null);
6505
6809
  function useFormItem() {
6506
- const ctx = React61.useContext(FormItemContext);
6810
+ const ctx = React64.useContext(FormItemContext);
6507
6811
  if (!ctx) {
6508
6812
  throw new Error("Form parts must be used within <FormItem>");
6509
6813
  }
6510
6814
  return ctx;
6511
6815
  }
6512
6816
  function Form({ ...props }) {
6513
- return /* @__PURE__ */ jsx52("form", { "data-slot": "form", ...props });
6817
+ return /* @__PURE__ */ jsx55("form", { "data-slot": "form", ...props });
6514
6818
  }
6515
6819
  function FormItem({ className, ...props }) {
6516
- const id = React61.useId();
6517
- const value = React61.useMemo(
6820
+ const id = React64.useId();
6821
+ const value = React64.useMemo(
6518
6822
  () => ({
6519
6823
  id,
6520
6824
  formItemId: `${id}-form-item`,
@@ -6523,7 +6827,7 @@ function FormItem({ className, ...props }) {
6523
6827
  }),
6524
6828
  [id]
6525
6829
  );
6526
- return /* @__PURE__ */ jsx52(FormItemContext.Provider, { value, children: /* @__PURE__ */ jsx52("div", { "data-slot": "form-item", className: cn(FORM_ITEM, className), ...props }) });
6830
+ return /* @__PURE__ */ jsx55(FormItemContext.Provider, { value, children: /* @__PURE__ */ jsx55("div", { "data-slot": "form-item", className: cn(FORM_ITEM, className), ...props }) });
6527
6831
  }
6528
6832
  function FormLabel({
6529
6833
  className,
@@ -6531,7 +6835,7 @@ function FormLabel({
6531
6835
  ...props
6532
6836
  }) {
6533
6837
  const { formItemId } = useFormItem();
6534
- return /* @__PURE__ */ jsx52(
6838
+ return /* @__PURE__ */ jsx55(
6535
6839
  Label,
6536
6840
  {
6537
6841
  "data-slot": "form-label",
@@ -6547,7 +6851,7 @@ function FormControl({
6547
6851
  ...props
6548
6852
  }) {
6549
6853
  const { formItemId, formDescriptionId, formMessageId } = useFormItem();
6550
- return /* @__PURE__ */ jsx52(
6854
+ return /* @__PURE__ */ jsx55(
6551
6855
  Slot,
6552
6856
  {
6553
6857
  "data-slot": "form-control",
@@ -6560,7 +6864,7 @@ function FormControl({
6560
6864
  }
6561
6865
  function FormDescription({ className, ...props }) {
6562
6866
  const { formDescriptionId } = useFormItem();
6563
- return /* @__PURE__ */ jsx52(
6867
+ return /* @__PURE__ */ jsx55(
6564
6868
  "p",
6565
6869
  {
6566
6870
  "data-slot": "form-description",
@@ -6575,7 +6879,7 @@ function FormMessage({ className, children, ...props }) {
6575
6879
  if (!children) {
6576
6880
  return null;
6577
6881
  }
6578
- return /* @__PURE__ */ jsx52(
6882
+ return /* @__PURE__ */ jsx55(
6579
6883
  "p",
6580
6884
  {
6581
6885
  "data-slot": "form-message",
@@ -6588,7 +6892,7 @@ function FormMessage({ className, children, ...props }) {
6588
6892
  }
6589
6893
 
6590
6894
  // src/components/resizable.tsx
6591
- import * as React62 from "react";
6895
+ import * as React65 from "react";
6592
6896
 
6593
6897
  // src/generated/resizable.ts
6594
6898
  var RESIZABLE_GROUP = "flex h-full w-full data-[panel-group-direction=vertical]:flex-col";
@@ -6597,10 +6901,10 @@ var RESIZABLE_HANDLE = "bg-border focus-visible:ring-ring relative flex w-px ite
6597
6901
  var RESIZABLE_HANDLE_GRIP = "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border";
6598
6902
 
6599
6903
  // src/components/resizable.tsx
6600
- import { jsx as jsx53, jsxs as jsxs23 } from "react/jsx-runtime";
6601
- var ResizableContext = React62.createContext(null);
6904
+ import { jsx as jsx56, jsxs as jsxs25 } from "react/jsx-runtime";
6905
+ var ResizableContext = React65.createContext(null);
6602
6906
  function useResizable() {
6603
- const ctx = React62.useContext(ResizableContext);
6907
+ const ctx = React65.useContext(ResizableContext);
6604
6908
  if (!ctx)
6605
6909
  throw new Error("Resizable parts must be used within a ResizablePanelGroup");
6606
6910
  return ctx;
@@ -6623,9 +6927,9 @@ function ResizablePanelGroup({
6623
6927
  children,
6624
6928
  ...props
6625
6929
  }) {
6626
- const [sizes, setSizes] = React62.useState([]);
6627
- const groupRef = React62.useRef(null);
6628
- const register = React62.useCallback((index, defaultSize) => {
6930
+ const [sizes, setSizes] = React65.useState([]);
6931
+ const groupRef = React65.useRef(null);
6932
+ const register = React65.useCallback((index, defaultSize) => {
6629
6933
  setSizes((prev) => {
6630
6934
  if (prev[index] !== void 0) return prev;
6631
6935
  const next = prev.slice();
@@ -6634,14 +6938,14 @@ function ResizablePanelGroup({
6634
6938
  return next;
6635
6939
  });
6636
6940
  }, []);
6637
- React62.useEffect(() => {
6941
+ React65.useEffect(() => {
6638
6942
  if (sizes.length) onLayout?.(sizes);
6639
6943
  }, [sizes, onLayout]);
6640
- const value = React62.useMemo(
6944
+ const value = React65.useMemo(
6641
6945
  () => ({ sizes, setSizes, register, direction, keyboardStep, groupRef }),
6642
6946
  [sizes, register, direction, keyboardStep]
6643
6947
  );
6644
- return /* @__PURE__ */ jsx53(ResizableContext.Provider, { value, children: /* @__PURE__ */ jsx53(
6948
+ return /* @__PURE__ */ jsx56(ResizableContext.Provider, { value, children: /* @__PURE__ */ jsx56(
6645
6949
  "div",
6646
6950
  {
6647
6951
  ref: groupRef,
@@ -6662,11 +6966,11 @@ function ResizablePanel({
6662
6966
  ...props
6663
6967
  }) {
6664
6968
  const { sizes, register } = useResizable();
6665
- React62.useEffect(() => {
6969
+ React65.useEffect(() => {
6666
6970
  register(index, defaultSize);
6667
6971
  }, [register, index, defaultSize]);
6668
6972
  const basis = sizes[index] ?? defaultSize;
6669
- return /* @__PURE__ */ jsx53(
6973
+ return /* @__PURE__ */ jsx56(
6670
6974
  "div",
6671
6975
  {
6672
6976
  "data-slot": "resizable-panel",
@@ -6685,12 +6989,12 @@ function ResizableHandle({
6685
6989
  ...props
6686
6990
  }) {
6687
6991
  const { setSizes, direction, keyboardStep, groupRef } = useResizable();
6688
- const draggingRef = React62.useRef(false);
6689
- const resize = React62.useCallback(
6992
+ const draggingRef = React65.useRef(false);
6993
+ const resize = React65.useCallback(
6690
6994
  (delta) => setSizes((prev) => redistribute(prev, index, delta)),
6691
6995
  [setSizes, index]
6692
6996
  );
6693
- const onPointerMove = React62.useCallback(
6997
+ const onPointerMove = React65.useCallback(
6694
6998
  (event) => {
6695
6999
  if (!draggingRef.current) return;
6696
7000
  const rect = groupRef.current?.getBoundingClientRect();
@@ -6702,7 +7006,7 @@ function ResizableHandle({
6702
7006
  },
6703
7007
  [direction, resize, groupRef]
6704
7008
  );
6705
- const onPointerUp = React62.useCallback(() => {
7009
+ const onPointerUp = React65.useCallback(() => {
6706
7010
  draggingRef.current = false;
6707
7011
  window.removeEventListener("pointermove", onPointerMove);
6708
7012
  window.removeEventListener("pointerup", onPointerUp);
@@ -6713,7 +7017,7 @@ function ResizableHandle({
6713
7017
  window.addEventListener("pointermove", onPointerMove);
6714
7018
  window.addEventListener("pointerup", onPointerUp);
6715
7019
  };
6716
- React62.useEffect(() => () => onPointerUp(), [onPointerUp]);
7020
+ React65.useEffect(() => () => onPointerUp(), [onPointerUp]);
6717
7021
  const onKeyDown = (event) => {
6718
7022
  let delta;
6719
7023
  switch (event.key) {
@@ -6733,7 +7037,7 @@ function ResizableHandle({
6733
7037
  event.preventDefault();
6734
7038
  resize(delta);
6735
7039
  };
6736
- return /* @__PURE__ */ jsxs23(
7040
+ return /* @__PURE__ */ jsxs25(
6737
7041
  "div",
6738
7042
  {
6739
7043
  "data-slot": "resizable-handle",
@@ -6746,7 +7050,7 @@ function ResizableHandle({
6746
7050
  onKeyDown,
6747
7051
  ...props,
6748
7052
  children: [
6749
- withHandle && /* @__PURE__ */ jsx53("div", { className: RESIZABLE_HANDLE_GRIP, children: /* @__PURE__ */ jsxs23(
7053
+ withHandle && /* @__PURE__ */ jsx56("div", { className: RESIZABLE_HANDLE_GRIP, children: /* @__PURE__ */ jsxs25(
6750
7054
  "svg",
6751
7055
  {
6752
7056
  className: "size-2.5",
@@ -6761,12 +7065,12 @@ function ResizableHandle({
6761
7065
  strokeLinejoin: "round",
6762
7066
  "aria-hidden": "true",
6763
7067
  children: [
6764
- /* @__PURE__ */ jsx53("circle", { cx: "9", cy: "12", r: "1" }),
6765
- /* @__PURE__ */ jsx53("circle", { cx: "9", cy: "5", r: "1" }),
6766
- /* @__PURE__ */ jsx53("circle", { cx: "9", cy: "19", r: "1" }),
6767
- /* @__PURE__ */ jsx53("circle", { cx: "15", cy: "12", r: "1" }),
6768
- /* @__PURE__ */ jsx53("circle", { cx: "15", cy: "5", r: "1" }),
6769
- /* @__PURE__ */ jsx53("circle", { cx: "15", cy: "19", r: "1" })
7068
+ /* @__PURE__ */ jsx56("circle", { cx: "9", cy: "12", r: "1" }),
7069
+ /* @__PURE__ */ jsx56("circle", { cx: "9", cy: "5", r: "1" }),
7070
+ /* @__PURE__ */ jsx56("circle", { cx: "9", cy: "19", r: "1" }),
7071
+ /* @__PURE__ */ jsx56("circle", { cx: "15", cy: "12", r: "1" }),
7072
+ /* @__PURE__ */ jsx56("circle", { cx: "15", cy: "5", r: "1" }),
7073
+ /* @__PURE__ */ jsx56("circle", { cx: "15", cy: "19", r: "1" })
6770
7074
  ]
6771
7075
  }
6772
7076
  ) }),
@@ -6907,12 +7211,14 @@ export {
6907
7211
  FieldSeparator,
6908
7212
  FieldSet,
6909
7213
  FieldTitle,
7214
+ Footer,
6910
7215
  Form,
6911
7216
  FormControl,
6912
7217
  FormDescription,
6913
7218
  FormItem,
6914
7219
  FormLabel,
6915
7220
  FormMessage,
7221
+ Header,
6916
7222
  HoverCard,
6917
7223
  HoverCardContent,
6918
7224
  HoverCardTrigger,
@@ -6940,6 +7246,7 @@ export {
6940
7246
  Kbd,
6941
7247
  KbdGroup,
6942
7248
  Label,
7249
+ Logo,
6943
7250
  Menubar,
6944
7251
  MenubarCheckboxItem,
6945
7252
  MenubarContent,