@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.d.ts +99 -1
- package/dist/index.js +895 -588
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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
|
|
1345
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
1023
1346
|
function Input({ className, type, ...props }) {
|
|
1024
|
-
return /* @__PURE__ */
|
|
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
|
|
1365
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
1043
1366
|
function Textarea({ className, ...props }) {
|
|
1044
|
-
return /* @__PURE__ */
|
|
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
|
|
1394
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
1072
1395
|
function InputGroup({
|
|
1073
1396
|
className,
|
|
1074
1397
|
...props
|
|
1075
1398
|
}) {
|
|
1076
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
1557
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
1235
1558
|
function ItemGroup({ className, ...props }) {
|
|
1236
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1701
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
1379
1702
|
function Kbd({ className, ...props }) {
|
|
1380
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
1725
|
+
import { jsx as jsx21, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1403
1726
|
function Pagination({ className, ...props }) {
|
|
1404
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1455
|
-
var ChevronRight = () => /* @__PURE__ */
|
|
1456
|
-
var MoreHorizontal = () => /* @__PURE__ */
|
|
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__ */
|
|
1466
|
-
/* @__PURE__ */
|
|
1467
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1484
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1502
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1520
|
-
/* @__PURE__ */
|
|
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
|
|
1857
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
1535
1858
|
function Progress({ className, value = 0, ...props }) {
|
|
1536
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
1888
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
1566
1889
|
function Skeleton({ className, ...props }) {
|
|
1567
|
-
return /* @__PURE__ */
|
|
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
|
|
1902
|
+
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
1580
1903
|
function Spinner({ className, ...props }) {
|
|
1581
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
1935
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
1613
1936
|
function Table({ className, ...props }) {
|
|
1614
|
-
return /* @__PURE__ */
|
|
1937
|
+
return /* @__PURE__ */ jsx25(
|
|
1615
1938
|
"div",
|
|
1616
1939
|
{
|
|
1617
1940
|
"data-slot": "table-container",
|
|
1618
1941
|
className: TABLE_CONTAINER,
|
|
1619
|
-
children: /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
1725
|
-
var AccordionContext =
|
|
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 =
|
|
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 =
|
|
2054
|
+
var ItemContext = React35.createContext(null);
|
|
1732
2055
|
function useItemValue() {
|
|
1733
|
-
const value =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1845
|
-
import { jsx as
|
|
1846
|
-
var CollapsibleContext =
|
|
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 =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
1927
|
-
var TabsContext =
|
|
2230
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
2231
|
+
var TabsContext = React37.createContext(null);
|
|
1928
2232
|
function useTabs() {
|
|
1929
|
-
const ctx =
|
|
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__ */
|
|
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 =
|
|
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__ */
|
|
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) =>
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
2105
|
-
import { jsx as
|
|
2106
|
-
var ToggleGroupContext =
|
|
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 =
|
|
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__ */
|
|
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__ */
|
|
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 =
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
2316
|
-
var RadioGroupContext =
|
|
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 =
|
|
2334
|
-
const [count, setCount] =
|
|
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 =
|
|
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 =
|
|
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__ */
|
|
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 =
|
|
2676
|
+
const ctx = React42.useContext(RadioGroupContext);
|
|
2373
2677
|
if (!ctx) throw new Error("RadioGroupItem must be used within a RadioGroup");
|
|
2374
|
-
const indexRef =
|
|
2678
|
+
const indexRef = React42.useRef(-1);
|
|
2375
2679
|
const checked = ctx.value === value;
|
|
2376
|
-
|
|
2680
|
+
React42.useEffect(() => {
|
|
2377
2681
|
if (checked) ctx.setActiveIndex(indexRef.current);
|
|
2378
2682
|
}, [checked]);
|
|
2379
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
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 =
|
|
2456
|
-
const draggingRef =
|
|
2457
|
-
const valueFromPointer =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
2578
|
-
/* @__PURE__ */
|
|
2579
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
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 =
|
|
2937
|
+
var SidebarContext = React45.createContext(null);
|
|
2634
2938
|
function useSidebar() {
|
|
2635
|
-
const ctx =
|
|
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 =
|
|
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 =
|
|
2962
|
+
const contextValue = React45.useMemo(
|
|
2659
2963
|
() => ({ state, open, setOpen, toggleSidebar }),
|
|
2660
2964
|
[state, open, setOpen, toggleSidebar]
|
|
2661
2965
|
);
|
|
2662
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
2934
|
-
var CarouselContext =
|
|
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 =
|
|
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] =
|
|
3261
|
+
const [count, setCount] = React46.useState(0);
|
|
2958
3262
|
const canScrollPrev = index > 0;
|
|
2959
3263
|
const canScrollNext = index < count - 1;
|
|
2960
|
-
const scrollPrev =
|
|
3264
|
+
const scrollPrev = React46.useCallback(() => {
|
|
2961
3265
|
if (index > 0) setIndex(index - 1);
|
|
2962
3266
|
}, [index, setIndex]);
|
|
2963
|
-
const scrollNext =
|
|
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__ */
|
|
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__ */
|
|
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 =
|
|
3012
|
-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
3055
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
3416
|
+
children: /* @__PURE__ */ jsx37("path", { d: "m15 18-6-6 6-6" })
|
|
3113
3417
|
}
|
|
3114
3418
|
),
|
|
3115
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
3457
|
+
children: /* @__PURE__ */ jsx37("path", { d: "m9 18 6-6-6-6" })
|
|
3154
3458
|
}
|
|
3155
3459
|
),
|
|
3156
|
-
/* @__PURE__ */
|
|
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
|
|
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
|
|
3175
|
-
var InputOTPContext =
|
|
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 =
|
|
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] =
|
|
3503
|
+
const [focused, setFocused] = React47.useState(false);
|
|
3200
3504
|
const activeIndex = focused ? Math.min(value.length, maxLength - 1) : -1;
|
|
3201
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
3284
|
-
var TooltipContext =
|
|
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 =
|
|
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__ */
|
|
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 =
|
|
3300
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
3377
|
-
var PopoverContext =
|
|
3680
|
+
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
3681
|
+
var PopoverContext = React49.createContext(null);
|
|
3378
3682
|
function usePopover() {
|
|
3379
|
-
const ctx =
|
|
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 =
|
|
3390
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
3471
|
-
var HoverCardContext =
|
|
3774
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
3775
|
+
var HoverCardContext = React50.createContext(null);
|
|
3472
3776
|
function useHoverCard() {
|
|
3473
|
-
const ctx =
|
|
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 =
|
|
3484
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
3561
|
-
var DropdownMenuContext =
|
|
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 =
|
|
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 =
|
|
3576
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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 =
|
|
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
|
-
|
|
3933
|
+
React51.useEffect(() => {
|
|
3630
3934
|
if (!open) return;
|
|
3631
3935
|
items()[activeIndex]?.focus();
|
|
3632
3936
|
}, [open, activeIndex]);
|
|
3633
|
-
const close =
|
|
3937
|
+
const close = React51.useCallback(() => setOpen(false), [setOpen]);
|
|
3634
3938
|
if (!isPresent) return null;
|
|
3635
|
-
return /* @__PURE__ */
|
|
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 =
|
|
3962
|
+
var DropdownMenuCloseContext = React51.createContext(() => {
|
|
3659
3963
|
});
|
|
3660
3964
|
function DropdownMenuGroup({ className, ...props }) {
|
|
3661
|
-
return /* @__PURE__ */
|
|
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 =
|
|
3673
|
-
return /* @__PURE__ */
|
|
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 =
|
|
3711
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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 =
|
|
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 =
|
|
4049
|
+
const ctx = React51.useMemo(
|
|
3746
4050
|
() => ({ value, setValue: (next) => onValueChange?.(next) }),
|
|
3747
4051
|
[value, onValueChange]
|
|
3748
4052
|
);
|
|
3749
|
-
return /* @__PURE__ */
|
|
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 =
|
|
3760
|
-
const group =
|
|
4063
|
+
const close = React51.useContext(DropdownMenuCloseContext);
|
|
4064
|
+
const group = React51.useContext(DropdownMenuRadioGroupContext);
|
|
3761
4065
|
const checked = group?.value === value;
|
|
3762
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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 =
|
|
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__ */
|
|
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 =
|
|
3832
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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 =
|
|
4163
|
+
const ctx = React51.useContext(DropdownMenuSubContext);
|
|
3860
4164
|
if (!ctx?.open) return null;
|
|
3861
|
-
return /* @__PURE__ */
|
|
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
|
|
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
|
|
3892
|
-
var ContextMenuContext =
|
|
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 =
|
|
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] =
|
|
3905
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
4232
|
+
return /* @__PURE__ */ jsx43("div", { "data-slot": "context-menu-group", role: "group", className, ...props });
|
|
3929
4233
|
}
|
|
3930
|
-
var ContextMenuCloseContext =
|
|
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 =
|
|
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
|
-
|
|
4252
|
+
React52.useEffect(() => {
|
|
3949
4253
|
if (!open) return;
|
|
3950
4254
|
items()[activeIndex]?.focus();
|
|
3951
4255
|
}, [open, activeIndex]);
|
|
3952
|
-
const close =
|
|
4256
|
+
const close = React52.useCallback(() => setOpen(false), [setOpen]);
|
|
3953
4257
|
if (!isPresent) return null;
|
|
3954
|
-
return /* @__PURE__ */
|
|
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 =
|
|
3987
|
-
return /* @__PURE__ */
|
|
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 =
|
|
4025
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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 =
|
|
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 =
|
|
4363
|
+
const ctx = React52.useMemo(
|
|
4060
4364
|
() => ({ value, setValue: (next) => onValueChange?.(next) }),
|
|
4061
4365
|
[value, onValueChange]
|
|
4062
4366
|
);
|
|
4063
|
-
return /* @__PURE__ */
|
|
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 =
|
|
4074
|
-
const group =
|
|
4377
|
+
const close = React52.useContext(ContextMenuCloseContext);
|
|
4378
|
+
const group = React52.useContext(ContextMenuRadioGroupContext);
|
|
4075
4379
|
const checked = group?.value === value;
|
|
4076
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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 =
|
|
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__ */
|
|
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 =
|
|
4146
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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 =
|
|
4477
|
+
const ctx = React52.useContext(ContextMenuSubContext);
|
|
4174
4478
|
if (!ctx?.open) return null;
|
|
4175
|
-
return /* @__PURE__ */
|
|
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
|
|
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
|
|
4210
|
-
var MenubarMenuContext =
|
|
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 =
|
|
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 =
|
|
4520
|
+
var MenubarRadioGroupContext = React53.createContext(null);
|
|
4217
4521
|
function Menubar({ className, ...props }) {
|
|
4218
|
-
return /* @__PURE__ */
|
|
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 =
|
|
4235
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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 =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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 =
|
|
4674
|
+
const ctx = React53.useContext(MenubarRadioGroupContext);
|
|
4371
4675
|
const checked = ctx?.value === value;
|
|
4372
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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 =
|
|
4729
|
+
var MenubarSubContext = React53.createContext(null);
|
|
4426
4730
|
function useSub() {
|
|
4427
|
-
const ctx =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
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 =
|
|
4820
|
+
var NavigationMenuItemContext = React54.createContext(null);
|
|
4517
4821
|
function useItem() {
|
|
4518
|
-
const ctx =
|
|
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__ */
|
|
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__ */
|
|
4845
|
+
viewport && /* @__PURE__ */ jsx45(NavigationMenuViewport, {})
|
|
4542
4846
|
]
|
|
4543
4847
|
}
|
|
4544
4848
|
);
|
|
4545
4849
|
}
|
|
4546
4850
|
function NavigationMenuList({ className, ...props }) {
|
|
4547
|
-
return /* @__PURE__ */
|
|
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 =
|
|
4574
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
4701
|
-
var DialogContext =
|
|
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 =
|
|
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 =
|
|
4714
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
5038
|
+
return /* @__PURE__ */ jsx46(Fragment5, { children });
|
|
4735
5039
|
}
|
|
4736
5040
|
function DialogOverlay({ className, ...props }) {
|
|
4737
5041
|
const { open, setOpen } = useDialog();
|
|
4738
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
-
|
|
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__ */
|
|
4789
|
-
/* @__PURE__ */
|
|
4790
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
4811
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
4889
|
-
var AlertDialogContext =
|
|
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 =
|
|
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 =
|
|
4902
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
4945
|
-
/* @__PURE__ */
|
|
4946
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
5050
|
-
var SheetContext =
|
|
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 =
|
|
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 =
|
|
5063
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
5128
|
-
/* @__PURE__ */
|
|
5129
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
5150
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
5235
|
-
var DrawerContext =
|
|
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 =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
5304
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
5383
|
-
import { jsx as
|
|
5384
|
-
var SelectContext =
|
|
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 =
|
|
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 =
|
|
5410
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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 =
|
|
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__ */
|
|
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__ */
|
|
5527
|
-
(child, index) =>
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
5890
|
+
children: /* @__PURE__ */ jsx50("path", { d: "M20 6 9 17l-5-5" })
|
|
5587
5891
|
}
|
|
5588
5892
|
) }) : null,
|
|
5589
|
-
/* @__PURE__ */
|
|
5893
|
+
/* @__PURE__ */ jsx50("span", { children })
|
|
5590
5894
|
]
|
|
5591
5895
|
}
|
|
5592
5896
|
);
|
|
5593
5897
|
}
|
|
5594
5898
|
function SelectGroup({ className, ...props }) {
|
|
5595
|
-
return /* @__PURE__ */
|
|
5899
|
+
return /* @__PURE__ */ jsx50("div", { role: "group", "data-slot": "select-group", className, ...props });
|
|
5596
5900
|
}
|
|
5597
5901
|
function SelectLabel({ className, ...props }) {
|
|
5598
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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
|
|
5637
|
-
var CommandContext =
|
|
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 =
|
|
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__ */
|
|
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__ */
|
|
5681
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
5711
|
-
/* @__PURE__ */
|
|
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__ */
|
|
5727
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
5844
|
-
var ChartContext =
|
|
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 =
|
|
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 =
|
|
6163
|
+
const uniqueId = React61.useId();
|
|
5860
6164
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
5861
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
5911
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
5929
|
-
/* @__PURE__ */
|
|
5930
|
-
item.value !== void 0 && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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] =
|
|
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__ */
|
|
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__ */
|
|
6089
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6400
|
+
children: /* @__PURE__ */ jsx53(Chevron, { d: CHEVRON_LEFT })
|
|
6097
6401
|
}
|
|
6098
6402
|
),
|
|
6099
|
-
/* @__PURE__ */
|
|
6100
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6411
|
+
children: /* @__PURE__ */ jsx53(Chevron, { d: CHEVRON_RIGHT })
|
|
6108
6412
|
}
|
|
6109
6413
|
)
|
|
6110
6414
|
] }),
|
|
6111
|
-
/* @__PURE__ */
|
|
6112
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
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 =
|
|
6261
|
-
const [height, setHeight] =
|
|
6262
|
-
const remainingRef =
|
|
6263
|
-
const startedRef =
|
|
6264
|
-
const flingRef =
|
|
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 =
|
|
6571
|
+
const dragRef = React63.useRef(
|
|
6268
6572
|
null
|
|
6269
6573
|
);
|
|
6270
|
-
|
|
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
|
-
|
|
6282
|
-
|
|
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
|
-
|
|
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__ */
|
|
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__ */
|
|
6382
|
-
/* @__PURE__ */
|
|
6383
|
-
t.description ? /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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] =
|
|
6421
|
-
const [heights, setHeights] =
|
|
6422
|
-
const [paused, setPaused] =
|
|
6423
|
-
|
|
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 =
|
|
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 =
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
6504
|
-
var FormItemContext =
|
|
6807
|
+
import { jsx as jsx55 } from "react/jsx-runtime";
|
|
6808
|
+
var FormItemContext = React64.createContext(null);
|
|
6505
6809
|
function useFormItem() {
|
|
6506
|
-
const ctx =
|
|
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__ */
|
|
6817
|
+
return /* @__PURE__ */ jsx55("form", { "data-slot": "form", ...props });
|
|
6514
6818
|
}
|
|
6515
6819
|
function FormItem({ className, ...props }) {
|
|
6516
|
-
const id =
|
|
6517
|
-
const value =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
6601
|
-
var ResizableContext =
|
|
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 =
|
|
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] =
|
|
6627
|
-
const groupRef =
|
|
6628
|
-
const register =
|
|
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
|
-
|
|
6941
|
+
React65.useEffect(() => {
|
|
6638
6942
|
if (sizes.length) onLayout?.(sizes);
|
|
6639
6943
|
}, [sizes, onLayout]);
|
|
6640
|
-
const value =
|
|
6944
|
+
const value = React65.useMemo(
|
|
6641
6945
|
() => ({ sizes, setSizes, register, direction, keyboardStep, groupRef }),
|
|
6642
6946
|
[sizes, register, direction, keyboardStep]
|
|
6643
6947
|
);
|
|
6644
|
-
return /* @__PURE__ */
|
|
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
|
-
|
|
6969
|
+
React65.useEffect(() => {
|
|
6666
6970
|
register(index, defaultSize);
|
|
6667
6971
|
}, [register, index, defaultSize]);
|
|
6668
6972
|
const basis = sizes[index] ?? defaultSize;
|
|
6669
|
-
return /* @__PURE__ */
|
|
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 =
|
|
6689
|
-
const resize =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
6765
|
-
/* @__PURE__ */
|
|
6766
|
-
/* @__PURE__ */
|
|
6767
|
-
/* @__PURE__ */
|
|
6768
|
-
/* @__PURE__ */
|
|
6769
|
-
/* @__PURE__ */
|
|
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,
|