@evinvest/uikit 0.3.2 → 0.4.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 +85 -1
- package/dist/index.js +883 -588
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1012,6 +1012,317 @@ 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
|
+
}) {
|
|
1188
|
+
const L = linkComponent ?? "a";
|
|
1189
|
+
const [hasScrolled, setHasScrolled] = React23.useState(false);
|
|
1190
|
+
React23.useEffect(() => {
|
|
1191
|
+
const handleScroll = () => setHasScrolled(window.scrollY > 50);
|
|
1192
|
+
window.addEventListener("scroll", handleScroll);
|
|
1193
|
+
return () => window.removeEventListener("scroll", handleScroll);
|
|
1194
|
+
}, []);
|
|
1195
|
+
return /* @__PURE__ */ jsx14(
|
|
1196
|
+
"header",
|
|
1197
|
+
{
|
|
1198
|
+
"data-slot": "header",
|
|
1199
|
+
className: cn(
|
|
1200
|
+
"fixed top-0 left-0 w-full z-[60] transition-all duration-500 border-b",
|
|
1201
|
+
hasScrolled ? "bg-main-black/90 backdrop-blur-md border-main-mist/10 py-4" : "bg-transparent border-transparent py-6",
|
|
1202
|
+
className
|
|
1203
|
+
),
|
|
1204
|
+
children: /* @__PURE__ */ jsxs4(Container, { className: "flex items-center justify-between gap-4", children: [
|
|
1205
|
+
/* @__PURE__ */ jsxs4(
|
|
1206
|
+
L,
|
|
1207
|
+
{
|
|
1208
|
+
href: homeHref,
|
|
1209
|
+
className: "flex items-center gap-3",
|
|
1210
|
+
"aria-label": "EV Investment \u2014 home",
|
|
1211
|
+
children: [
|
|
1212
|
+
/* @__PURE__ */ jsx14(Logo, { className: "w-10 h-10 text-white" }),
|
|
1213
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex flex-col", children: [
|
|
1214
|
+
/* @__PURE__ */ jsx14("span", { className: "font-serif-display font-bold text-lg tracking-wider text-white", children: "EV INVESTMENT" }),
|
|
1215
|
+
/* @__PURE__ */ jsx14("span", { className: "text-[9px] font-mono-tech tracking-[0.3em] text-main-accent-t1 uppercase", children: tagline })
|
|
1216
|
+
] })
|
|
1217
|
+
]
|
|
1218
|
+
}
|
|
1219
|
+
),
|
|
1220
|
+
/* @__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(
|
|
1221
|
+
L,
|
|
1222
|
+
{
|
|
1223
|
+
href: item.href,
|
|
1224
|
+
className: "text-main-mist/80 hover:text-main-accent-t1 transition-colors",
|
|
1225
|
+
children: item.label
|
|
1226
|
+
},
|
|
1227
|
+
item.href
|
|
1228
|
+
)) }),
|
|
1229
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-3", children: [
|
|
1230
|
+
cta,
|
|
1231
|
+
/* @__PURE__ */ jsx14(MobileMenu, { nav, cta: mobileCta ?? cta, linkComponent: L })
|
|
1232
|
+
] })
|
|
1233
|
+
] })
|
|
1234
|
+
}
|
|
1235
|
+
);
|
|
1236
|
+
}
|
|
1237
|
+
function MobileMenu({
|
|
1238
|
+
nav,
|
|
1239
|
+
cta,
|
|
1240
|
+
linkComponent: L
|
|
1241
|
+
}) {
|
|
1242
|
+
const [open, setOpen] = React23.useState(false);
|
|
1243
|
+
React23.useEffect(() => {
|
|
1244
|
+
if (!open) return;
|
|
1245
|
+
document.body.style.overflow = "hidden";
|
|
1246
|
+
const onKeyDown = (e) => {
|
|
1247
|
+
if (e.key === "Escape") setOpen(false);
|
|
1248
|
+
};
|
|
1249
|
+
window.addEventListener("keydown", onKeyDown);
|
|
1250
|
+
return () => {
|
|
1251
|
+
document.body.style.overflow = "";
|
|
1252
|
+
window.removeEventListener("keydown", onKeyDown);
|
|
1253
|
+
};
|
|
1254
|
+
}, [open]);
|
|
1255
|
+
const closeOnNavigation = (e) => {
|
|
1256
|
+
if (e.target.closest("a, button")) setOpen(false);
|
|
1257
|
+
};
|
|
1258
|
+
return /* @__PURE__ */ jsxs4("div", { className: "lg:hidden", children: [
|
|
1259
|
+
/* @__PURE__ */ jsx14(
|
|
1260
|
+
"button",
|
|
1261
|
+
{
|
|
1262
|
+
type: "button",
|
|
1263
|
+
"aria-label": "Open menu",
|
|
1264
|
+
"aria-expanded": open,
|
|
1265
|
+
"aria-haspopup": "menu",
|
|
1266
|
+
onClick: () => setOpen(true),
|
|
1267
|
+
className: "flex size-10 items-center justify-center text-white",
|
|
1268
|
+
children: /* @__PURE__ */ jsx14(
|
|
1269
|
+
"svg",
|
|
1270
|
+
{
|
|
1271
|
+
className: "size-6",
|
|
1272
|
+
viewBox: "0 0 24 24",
|
|
1273
|
+
fill: "none",
|
|
1274
|
+
stroke: "currentColor",
|
|
1275
|
+
strokeWidth: 2,
|
|
1276
|
+
strokeLinecap: "round",
|
|
1277
|
+
strokeLinejoin: "round",
|
|
1278
|
+
children: /* @__PURE__ */ jsx14("path", { d: "M4 6h16M4 12h16M4 18h16" })
|
|
1279
|
+
}
|
|
1280
|
+
)
|
|
1281
|
+
}
|
|
1282
|
+
),
|
|
1283
|
+
open && /* @__PURE__ */ jsx14(Portal, { children: /* @__PURE__ */ jsxs4(
|
|
1284
|
+
"div",
|
|
1285
|
+
{
|
|
1286
|
+
onClick: closeOnNavigation,
|
|
1287
|
+
className: "fixed inset-0 z-[70] flex flex-col bg-main-black px-6 pb-10 duration-200 animate-in fade-in lg:hidden",
|
|
1288
|
+
children: [
|
|
1289
|
+
/* @__PURE__ */ jsx14("div", { className: "flex h-20 shrink-0 items-center justify-end", children: /* @__PURE__ */ jsx14(
|
|
1290
|
+
"button",
|
|
1291
|
+
{
|
|
1292
|
+
type: "button",
|
|
1293
|
+
"aria-label": "Close menu",
|
|
1294
|
+
className: "flex size-10 items-center justify-center text-white",
|
|
1295
|
+
children: /* @__PURE__ */ jsx14(
|
|
1296
|
+
"svg",
|
|
1297
|
+
{
|
|
1298
|
+
className: "size-6",
|
|
1299
|
+
viewBox: "0 0 24 24",
|
|
1300
|
+
fill: "none",
|
|
1301
|
+
stroke: "currentColor",
|
|
1302
|
+
strokeWidth: 2,
|
|
1303
|
+
strokeLinecap: "round",
|
|
1304
|
+
strokeLinejoin: "round",
|
|
1305
|
+
children: /* @__PURE__ */ jsx14("path", { d: "M18 6 6 18M6 6l12 12" })
|
|
1306
|
+
}
|
|
1307
|
+
)
|
|
1308
|
+
}
|
|
1309
|
+
) }),
|
|
1310
|
+
/* @__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(
|
|
1311
|
+
L,
|
|
1312
|
+
{
|
|
1313
|
+
href: item.href,
|
|
1314
|
+
className: "border-b border-main-mist/10 py-4 text-main-mist/80 transition-colors hover:text-main-accent-t1",
|
|
1315
|
+
children: item.label
|
|
1316
|
+
},
|
|
1317
|
+
item.href
|
|
1318
|
+
)) }),
|
|
1319
|
+
cta && /* @__PURE__ */ jsx14("div", { className: "mt-8 w-full block", children: cta })
|
|
1320
|
+
]
|
|
1321
|
+
}
|
|
1322
|
+
) })
|
|
1323
|
+
] });
|
|
1324
|
+
}
|
|
1325
|
+
|
|
1015
1326
|
// src/components/input.tsx
|
|
1016
1327
|
import "react";
|
|
1017
1328
|
|
|
@@ -1019,9 +1330,9 @@ import "react";
|
|
|
1019
1330
|
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
1331
|
|
|
1021
1332
|
// src/components/input.tsx
|
|
1022
|
-
import { jsx as
|
|
1333
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
1023
1334
|
function Input({ className, type, ...props }) {
|
|
1024
|
-
return /* @__PURE__ */
|
|
1335
|
+
return /* @__PURE__ */ jsx15(
|
|
1025
1336
|
"input",
|
|
1026
1337
|
{
|
|
1027
1338
|
type,
|
|
@@ -1039,9 +1350,9 @@ import "react";
|
|
|
1039
1350
|
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
1351
|
|
|
1041
1352
|
// src/components/textarea.tsx
|
|
1042
|
-
import { jsx as
|
|
1353
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
1043
1354
|
function Textarea({ className, ...props }) {
|
|
1044
|
-
return /* @__PURE__ */
|
|
1355
|
+
return /* @__PURE__ */ jsx16("textarea", { "data-slot": "textarea", className: cn(TEXTAREA_BASE, className), ...props });
|
|
1045
1356
|
}
|
|
1046
1357
|
|
|
1047
1358
|
// src/components/input-group.tsx
|
|
@@ -1068,12 +1379,12 @@ var INPUT_GROUP_INPUT_CONTROL = "flex-1 rounded-none border-0 bg-transparent sha
|
|
|
1068
1379
|
var INPUT_GROUP_TEXTAREA_CONTROL = "flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0";
|
|
1069
1380
|
|
|
1070
1381
|
// src/components/input-group.tsx
|
|
1071
|
-
import { jsx as
|
|
1382
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
1072
1383
|
function InputGroup({
|
|
1073
1384
|
className,
|
|
1074
1385
|
...props
|
|
1075
1386
|
}) {
|
|
1076
|
-
return /* @__PURE__ */
|
|
1387
|
+
return /* @__PURE__ */ jsx17(
|
|
1077
1388
|
"div",
|
|
1078
1389
|
{
|
|
1079
1390
|
"data-slot": "input-group",
|
|
@@ -1088,7 +1399,7 @@ function InputGroupAddon({
|
|
|
1088
1399
|
align = "inline-start",
|
|
1089
1400
|
...props
|
|
1090
1401
|
}) {
|
|
1091
|
-
return /* @__PURE__ */
|
|
1402
|
+
return /* @__PURE__ */ jsx17(
|
|
1092
1403
|
"div",
|
|
1093
1404
|
{
|
|
1094
1405
|
role: "group",
|
|
@@ -1114,7 +1425,7 @@ function InputGroupButton({
|
|
|
1114
1425
|
size = "xs",
|
|
1115
1426
|
...props
|
|
1116
1427
|
}) {
|
|
1117
|
-
return /* @__PURE__ */
|
|
1428
|
+
return /* @__PURE__ */ jsx17(
|
|
1118
1429
|
Button,
|
|
1119
1430
|
{
|
|
1120
1431
|
type,
|
|
@@ -1133,7 +1444,7 @@ function InputGroupText({
|
|
|
1133
1444
|
className,
|
|
1134
1445
|
...props
|
|
1135
1446
|
}) {
|
|
1136
|
-
return /* @__PURE__ */
|
|
1447
|
+
return /* @__PURE__ */ jsx17(
|
|
1137
1448
|
"span",
|
|
1138
1449
|
{
|
|
1139
1450
|
className: cn(INPUT_GROUP_TEXT, className),
|
|
@@ -1145,7 +1456,7 @@ function InputGroupInput({
|
|
|
1145
1456
|
className,
|
|
1146
1457
|
...props
|
|
1147
1458
|
}) {
|
|
1148
|
-
return /* @__PURE__ */
|
|
1459
|
+
return /* @__PURE__ */ jsx17(
|
|
1149
1460
|
Input,
|
|
1150
1461
|
{
|
|
1151
1462
|
"data-slot": "input-group-control",
|
|
@@ -1158,7 +1469,7 @@ function InputGroupTextarea({
|
|
|
1158
1469
|
className,
|
|
1159
1470
|
...props
|
|
1160
1471
|
}) {
|
|
1161
|
-
return /* @__PURE__ */
|
|
1472
|
+
return /* @__PURE__ */ jsx17(
|
|
1162
1473
|
Textarea,
|
|
1163
1474
|
{
|
|
1164
1475
|
"data-slot": "input-group-control",
|
|
@@ -1182,13 +1493,13 @@ var separatorOrientations = {
|
|
|
1182
1493
|
};
|
|
1183
1494
|
|
|
1184
1495
|
// src/components/separator.tsx
|
|
1185
|
-
import { jsx as
|
|
1496
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
1186
1497
|
function Separator({
|
|
1187
1498
|
className,
|
|
1188
1499
|
orientation = "horizontal",
|
|
1189
1500
|
...props
|
|
1190
1501
|
}) {
|
|
1191
|
-
return /* @__PURE__ */
|
|
1502
|
+
return /* @__PURE__ */ jsx18(
|
|
1192
1503
|
"div",
|
|
1193
1504
|
{
|
|
1194
1505
|
role: "separator",
|
|
@@ -1231,9 +1542,9 @@ var ITEM_HEADER = "flex basis-full items-center justify-between gap-2";
|
|
|
1231
1542
|
var ITEM_FOOTER = "flex basis-full items-center justify-between gap-2";
|
|
1232
1543
|
|
|
1233
1544
|
// src/components/item.tsx
|
|
1234
|
-
import { jsx as
|
|
1545
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
1235
1546
|
function ItemGroup({ className, ...props }) {
|
|
1236
|
-
return /* @__PURE__ */
|
|
1547
|
+
return /* @__PURE__ */ jsx19(
|
|
1237
1548
|
"div",
|
|
1238
1549
|
{
|
|
1239
1550
|
role: "list",
|
|
@@ -1247,7 +1558,7 @@ function ItemSeparator({
|
|
|
1247
1558
|
className,
|
|
1248
1559
|
...props
|
|
1249
1560
|
}) {
|
|
1250
|
-
return /* @__PURE__ */
|
|
1561
|
+
return /* @__PURE__ */ jsx19(
|
|
1251
1562
|
Separator,
|
|
1252
1563
|
{
|
|
1253
1564
|
"data-slot": "item-separator",
|
|
@@ -1265,7 +1576,7 @@ function Item({
|
|
|
1265
1576
|
...props
|
|
1266
1577
|
}) {
|
|
1267
1578
|
const Comp = asChild ? Slot : "div";
|
|
1268
|
-
return /* @__PURE__ */
|
|
1579
|
+
return /* @__PURE__ */ jsx19(
|
|
1269
1580
|
Comp,
|
|
1270
1581
|
{
|
|
1271
1582
|
"data-slot": "item",
|
|
@@ -1281,7 +1592,7 @@ function ItemMedia({
|
|
|
1281
1592
|
variant = "default",
|
|
1282
1593
|
...props
|
|
1283
1594
|
}) {
|
|
1284
|
-
return /* @__PURE__ */
|
|
1595
|
+
return /* @__PURE__ */ jsx19(
|
|
1285
1596
|
"div",
|
|
1286
1597
|
{
|
|
1287
1598
|
"data-slot": "item-media",
|
|
@@ -1295,7 +1606,7 @@ function ItemContent({
|
|
|
1295
1606
|
className,
|
|
1296
1607
|
...props
|
|
1297
1608
|
}) {
|
|
1298
|
-
return /* @__PURE__ */
|
|
1609
|
+
return /* @__PURE__ */ jsx19(
|
|
1299
1610
|
"div",
|
|
1300
1611
|
{
|
|
1301
1612
|
"data-slot": "item-content",
|
|
@@ -1305,7 +1616,7 @@ function ItemContent({
|
|
|
1305
1616
|
);
|
|
1306
1617
|
}
|
|
1307
1618
|
function ItemTitle({ className, ...props }) {
|
|
1308
|
-
return /* @__PURE__ */
|
|
1619
|
+
return /* @__PURE__ */ jsx19(
|
|
1309
1620
|
"div",
|
|
1310
1621
|
{
|
|
1311
1622
|
"data-slot": "item-title",
|
|
@@ -1318,7 +1629,7 @@ function ItemDescription({
|
|
|
1318
1629
|
className,
|
|
1319
1630
|
...props
|
|
1320
1631
|
}) {
|
|
1321
|
-
return /* @__PURE__ */
|
|
1632
|
+
return /* @__PURE__ */ jsx19(
|
|
1322
1633
|
"p",
|
|
1323
1634
|
{
|
|
1324
1635
|
"data-slot": "item-description",
|
|
@@ -1331,7 +1642,7 @@ function ItemActions({
|
|
|
1331
1642
|
className,
|
|
1332
1643
|
...props
|
|
1333
1644
|
}) {
|
|
1334
|
-
return /* @__PURE__ */
|
|
1645
|
+
return /* @__PURE__ */ jsx19(
|
|
1335
1646
|
"div",
|
|
1336
1647
|
{
|
|
1337
1648
|
"data-slot": "item-actions",
|
|
@@ -1344,7 +1655,7 @@ function ItemHeader({
|
|
|
1344
1655
|
className,
|
|
1345
1656
|
...props
|
|
1346
1657
|
}) {
|
|
1347
|
-
return /* @__PURE__ */
|
|
1658
|
+
return /* @__PURE__ */ jsx19(
|
|
1348
1659
|
"div",
|
|
1349
1660
|
{
|
|
1350
1661
|
"data-slot": "item-header",
|
|
@@ -1357,7 +1668,7 @@ function ItemFooter({
|
|
|
1357
1668
|
className,
|
|
1358
1669
|
...props
|
|
1359
1670
|
}) {
|
|
1360
|
-
return /* @__PURE__ */
|
|
1671
|
+
return /* @__PURE__ */ jsx19(
|
|
1361
1672
|
"div",
|
|
1362
1673
|
{
|
|
1363
1674
|
"data-slot": "item-footer",
|
|
@@ -1375,9 +1686,9 @@ var KBD_BASE = "bg-muted text-muted-foreground pointer-events-none inline-flex h
|
|
|
1375
1686
|
var KBD_GROUP_BASE = "inline-flex items-center gap-1";
|
|
1376
1687
|
|
|
1377
1688
|
// src/components/kbd.tsx
|
|
1378
|
-
import { jsx as
|
|
1689
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
1379
1690
|
function Kbd({ className, ...props }) {
|
|
1380
|
-
return /* @__PURE__ */
|
|
1691
|
+
return /* @__PURE__ */ jsx20(
|
|
1381
1692
|
"kbd",
|
|
1382
1693
|
{
|
|
1383
1694
|
"data-slot": "kbd",
|
|
@@ -1387,7 +1698,7 @@ function Kbd({ className, ...props }) {
|
|
|
1387
1698
|
);
|
|
1388
1699
|
}
|
|
1389
1700
|
function KbdGroup({ className, ...props }) {
|
|
1390
|
-
return /* @__PURE__ */
|
|
1701
|
+
return /* @__PURE__ */ jsx20(
|
|
1391
1702
|
"kbd",
|
|
1392
1703
|
{
|
|
1393
1704
|
"data-slot": "kbd-group",
|
|
@@ -1399,9 +1710,9 @@ function KbdGroup({ className, ...props }) {
|
|
|
1399
1710
|
|
|
1400
1711
|
// src/components/pagination.tsx
|
|
1401
1712
|
import "react";
|
|
1402
|
-
import { jsx as
|
|
1713
|
+
import { jsx as jsx21, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1403
1714
|
function Pagination({ className, ...props }) {
|
|
1404
|
-
return /* @__PURE__ */
|
|
1715
|
+
return /* @__PURE__ */ jsx21(
|
|
1405
1716
|
"nav",
|
|
1406
1717
|
{
|
|
1407
1718
|
role: "navigation",
|
|
@@ -1416,7 +1727,7 @@ function PaginationContent({
|
|
|
1416
1727
|
className,
|
|
1417
1728
|
...props
|
|
1418
1729
|
}) {
|
|
1419
|
-
return /* @__PURE__ */
|
|
1730
|
+
return /* @__PURE__ */ jsx21(
|
|
1420
1731
|
"ul",
|
|
1421
1732
|
{
|
|
1422
1733
|
"data-slot": "pagination-content",
|
|
@@ -1426,7 +1737,7 @@ function PaginationContent({
|
|
|
1426
1737
|
);
|
|
1427
1738
|
}
|
|
1428
1739
|
function PaginationItem(props) {
|
|
1429
|
-
return /* @__PURE__ */
|
|
1740
|
+
return /* @__PURE__ */ jsx21("li", { "data-slot": "pagination-item", ...props });
|
|
1430
1741
|
}
|
|
1431
1742
|
function PaginationLink({
|
|
1432
1743
|
className,
|
|
@@ -1434,7 +1745,7 @@ function PaginationLink({
|
|
|
1434
1745
|
size = "icon",
|
|
1435
1746
|
...props
|
|
1436
1747
|
}) {
|
|
1437
|
-
return /* @__PURE__ */
|
|
1748
|
+
return /* @__PURE__ */ jsx21(
|
|
1438
1749
|
"a",
|
|
1439
1750
|
{
|
|
1440
1751
|
"aria-current": isActive ? "page" : void 0,
|
|
@@ -1451,9 +1762,9 @@ function PaginationLink({
|
|
|
1451
1762
|
}
|
|
1452
1763
|
);
|
|
1453
1764
|
}
|
|
1454
|
-
var ChevronLeft = () => /* @__PURE__ */
|
|
1455
|
-
var ChevronRight = () => /* @__PURE__ */
|
|
1456
|
-
var MoreHorizontal = () => /* @__PURE__ */
|
|
1765
|
+
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" }) });
|
|
1766
|
+
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" }) });
|
|
1767
|
+
var MoreHorizontal = () => /* @__PURE__ */ jsxs5(
|
|
1457
1768
|
"svg",
|
|
1458
1769
|
{
|
|
1459
1770
|
className: "size-4",
|
|
@@ -1462,9 +1773,9 @@ var MoreHorizontal = () => /* @__PURE__ */ jsxs3(
|
|
|
1462
1773
|
stroke: "currentColor",
|
|
1463
1774
|
strokeWidth: 2,
|
|
1464
1775
|
children: [
|
|
1465
|
-
/* @__PURE__ */
|
|
1466
|
-
/* @__PURE__ */
|
|
1467
|
-
/* @__PURE__ */
|
|
1776
|
+
/* @__PURE__ */ jsx21("circle", { cx: "12", cy: "12", r: "1" }),
|
|
1777
|
+
/* @__PURE__ */ jsx21("circle", { cx: "19", cy: "12", r: "1" }),
|
|
1778
|
+
/* @__PURE__ */ jsx21("circle", { cx: "5", cy: "12", r: "1" })
|
|
1468
1779
|
]
|
|
1469
1780
|
}
|
|
1470
1781
|
);
|
|
@@ -1472,7 +1783,7 @@ function PaginationPrevious({
|
|
|
1472
1783
|
className,
|
|
1473
1784
|
...props
|
|
1474
1785
|
}) {
|
|
1475
|
-
return /* @__PURE__ */
|
|
1786
|
+
return /* @__PURE__ */ jsxs5(
|
|
1476
1787
|
PaginationLink,
|
|
1477
1788
|
{
|
|
1478
1789
|
"aria-label": "Go to previous page",
|
|
@@ -1480,8 +1791,8 @@ function PaginationPrevious({
|
|
|
1480
1791
|
className: cn("gap-1 px-2.5 sm:pl-2.5", className),
|
|
1481
1792
|
...props,
|
|
1482
1793
|
children: [
|
|
1483
|
-
/* @__PURE__ */
|
|
1484
|
-
/* @__PURE__ */
|
|
1794
|
+
/* @__PURE__ */ jsx21(ChevronLeft, {}),
|
|
1795
|
+
/* @__PURE__ */ jsx21("span", { className: "hidden sm:block", children: "Previous" })
|
|
1485
1796
|
]
|
|
1486
1797
|
}
|
|
1487
1798
|
);
|
|
@@ -1490,7 +1801,7 @@ function PaginationNext({
|
|
|
1490
1801
|
className,
|
|
1491
1802
|
...props
|
|
1492
1803
|
}) {
|
|
1493
|
-
return /* @__PURE__ */
|
|
1804
|
+
return /* @__PURE__ */ jsxs5(
|
|
1494
1805
|
PaginationLink,
|
|
1495
1806
|
{
|
|
1496
1807
|
"aria-label": "Go to next page",
|
|
@@ -1498,8 +1809,8 @@ function PaginationNext({
|
|
|
1498
1809
|
className: cn("gap-1 px-2.5 sm:pr-2.5", className),
|
|
1499
1810
|
...props,
|
|
1500
1811
|
children: [
|
|
1501
|
-
/* @__PURE__ */
|
|
1502
|
-
/* @__PURE__ */
|
|
1812
|
+
/* @__PURE__ */ jsx21("span", { className: "hidden sm:block", children: "Next" }),
|
|
1813
|
+
/* @__PURE__ */ jsx21(ChevronRight, {})
|
|
1503
1814
|
]
|
|
1504
1815
|
}
|
|
1505
1816
|
);
|
|
@@ -1508,7 +1819,7 @@ function PaginationEllipsis({
|
|
|
1508
1819
|
className,
|
|
1509
1820
|
...props
|
|
1510
1821
|
}) {
|
|
1511
|
-
return /* @__PURE__ */
|
|
1822
|
+
return /* @__PURE__ */ jsxs5(
|
|
1512
1823
|
"span",
|
|
1513
1824
|
{
|
|
1514
1825
|
"aria-hidden": true,
|
|
@@ -1516,8 +1827,8 @@ function PaginationEllipsis({
|
|
|
1516
1827
|
className: cn("flex size-9 items-center justify-center", className),
|
|
1517
1828
|
...props,
|
|
1518
1829
|
children: [
|
|
1519
|
-
/* @__PURE__ */
|
|
1520
|
-
/* @__PURE__ */
|
|
1830
|
+
/* @__PURE__ */ jsx21(MoreHorizontal, {}),
|
|
1831
|
+
/* @__PURE__ */ jsx21("span", { className: "sr-only", children: "More pages" })
|
|
1521
1832
|
]
|
|
1522
1833
|
}
|
|
1523
1834
|
);
|
|
@@ -1531,9 +1842,9 @@ var PROGRESS_TRACK = "bg-primary/20 relative h-2 w-full overflow-hidden rounded-
|
|
|
1531
1842
|
var PROGRESS_INDICATOR = "bg-primary h-full w-full flex-1 transition-all";
|
|
1532
1843
|
|
|
1533
1844
|
// src/components/progress.tsx
|
|
1534
|
-
import { jsx as
|
|
1845
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
1535
1846
|
function Progress({ className, value = 0, ...props }) {
|
|
1536
|
-
return /* @__PURE__ */
|
|
1847
|
+
return /* @__PURE__ */ jsx22(
|
|
1537
1848
|
"div",
|
|
1538
1849
|
{
|
|
1539
1850
|
"data-slot": "progress",
|
|
@@ -1543,7 +1854,7 @@ function Progress({ className, value = 0, ...props }) {
|
|
|
1543
1854
|
"aria-valuemax": 100,
|
|
1544
1855
|
className: cn(PROGRESS_TRACK, className),
|
|
1545
1856
|
...props,
|
|
1546
|
-
children: /* @__PURE__ */
|
|
1857
|
+
children: /* @__PURE__ */ jsx22(
|
|
1547
1858
|
"div",
|
|
1548
1859
|
{
|
|
1549
1860
|
"data-slot": "progress-indicator",
|
|
@@ -1562,9 +1873,9 @@ import "react";
|
|
|
1562
1873
|
var SKELETON_BASE = "bg-accent animate-pulse rounded-md";
|
|
1563
1874
|
|
|
1564
1875
|
// src/components/skeleton.tsx
|
|
1565
|
-
import { jsx as
|
|
1876
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
1566
1877
|
function Skeleton({ className, ...props }) {
|
|
1567
|
-
return /* @__PURE__ */
|
|
1878
|
+
return /* @__PURE__ */ jsx23(
|
|
1568
1879
|
"div",
|
|
1569
1880
|
{
|
|
1570
1881
|
"data-slot": "skeleton",
|
|
@@ -1576,9 +1887,9 @@ function Skeleton({ className, ...props }) {
|
|
|
1576
1887
|
|
|
1577
1888
|
// src/components/spinner.tsx
|
|
1578
1889
|
import "react";
|
|
1579
|
-
import { jsx as
|
|
1890
|
+
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
1580
1891
|
function Spinner({ className, ...props }) {
|
|
1581
|
-
return /* @__PURE__ */
|
|
1892
|
+
return /* @__PURE__ */ jsx24(
|
|
1582
1893
|
"svg",
|
|
1583
1894
|
{
|
|
1584
1895
|
role: "status",
|
|
@@ -1589,7 +1900,7 @@ function Spinner({ className, ...props }) {
|
|
|
1589
1900
|
stroke: "currentColor",
|
|
1590
1901
|
strokeWidth: 2,
|
|
1591
1902
|
...props,
|
|
1592
|
-
children: /* @__PURE__ */
|
|
1903
|
+
children: /* @__PURE__ */ jsx24("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" })
|
|
1593
1904
|
}
|
|
1594
1905
|
);
|
|
1595
1906
|
}
|
|
@@ -1609,14 +1920,14 @@ var TABLE_CELL = "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr
|
|
|
1609
1920
|
var TABLE_CAPTION = "text-muted-foreground mt-4 text-sm";
|
|
1610
1921
|
|
|
1611
1922
|
// src/components/table.tsx
|
|
1612
|
-
import { jsx as
|
|
1923
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
1613
1924
|
function Table({ className, ...props }) {
|
|
1614
|
-
return /* @__PURE__ */
|
|
1925
|
+
return /* @__PURE__ */ jsx25(
|
|
1615
1926
|
"div",
|
|
1616
1927
|
{
|
|
1617
1928
|
"data-slot": "table-container",
|
|
1618
1929
|
className: TABLE_CONTAINER,
|
|
1619
|
-
children: /* @__PURE__ */
|
|
1930
|
+
children: /* @__PURE__ */ jsx25(
|
|
1620
1931
|
"table",
|
|
1621
1932
|
{
|
|
1622
1933
|
"data-slot": "table",
|
|
@@ -1631,7 +1942,7 @@ function TableHeader({
|
|
|
1631
1942
|
className,
|
|
1632
1943
|
...props
|
|
1633
1944
|
}) {
|
|
1634
|
-
return /* @__PURE__ */
|
|
1945
|
+
return /* @__PURE__ */ jsx25(
|
|
1635
1946
|
"thead",
|
|
1636
1947
|
{
|
|
1637
1948
|
"data-slot": "table-header",
|
|
@@ -1644,7 +1955,7 @@ function TableBody({
|
|
|
1644
1955
|
className,
|
|
1645
1956
|
...props
|
|
1646
1957
|
}) {
|
|
1647
|
-
return /* @__PURE__ */
|
|
1958
|
+
return /* @__PURE__ */ jsx25(
|
|
1648
1959
|
"tbody",
|
|
1649
1960
|
{
|
|
1650
1961
|
"data-slot": "table-body",
|
|
@@ -1657,7 +1968,7 @@ function TableFooter({
|
|
|
1657
1968
|
className,
|
|
1658
1969
|
...props
|
|
1659
1970
|
}) {
|
|
1660
|
-
return /* @__PURE__ */
|
|
1971
|
+
return /* @__PURE__ */ jsx25(
|
|
1661
1972
|
"tfoot",
|
|
1662
1973
|
{
|
|
1663
1974
|
"data-slot": "table-footer",
|
|
@@ -1667,7 +1978,7 @@ function TableFooter({
|
|
|
1667
1978
|
);
|
|
1668
1979
|
}
|
|
1669
1980
|
function TableRow({ className, ...props }) {
|
|
1670
|
-
return /* @__PURE__ */
|
|
1981
|
+
return /* @__PURE__ */ jsx25(
|
|
1671
1982
|
"tr",
|
|
1672
1983
|
{
|
|
1673
1984
|
"data-slot": "table-row",
|
|
@@ -1677,7 +1988,7 @@ function TableRow({ className, ...props }) {
|
|
|
1677
1988
|
);
|
|
1678
1989
|
}
|
|
1679
1990
|
function TableHead({ className, ...props }) {
|
|
1680
|
-
return /* @__PURE__ */
|
|
1991
|
+
return /* @__PURE__ */ jsx25(
|
|
1681
1992
|
"th",
|
|
1682
1993
|
{
|
|
1683
1994
|
"data-slot": "table-head",
|
|
@@ -1687,7 +1998,7 @@ function TableHead({ className, ...props }) {
|
|
|
1687
1998
|
);
|
|
1688
1999
|
}
|
|
1689
2000
|
function TableCell({ className, ...props }) {
|
|
1690
|
-
return /* @__PURE__ */
|
|
2001
|
+
return /* @__PURE__ */ jsx25(
|
|
1691
2002
|
"td",
|
|
1692
2003
|
{
|
|
1693
2004
|
"data-slot": "table-cell",
|
|
@@ -1700,7 +2011,7 @@ function TableCaption({
|
|
|
1700
2011
|
className,
|
|
1701
2012
|
...props
|
|
1702
2013
|
}) {
|
|
1703
|
-
return /* @__PURE__ */
|
|
2014
|
+
return /* @__PURE__ */ jsx25(
|
|
1704
2015
|
"caption",
|
|
1705
2016
|
{
|
|
1706
2017
|
"data-slot": "table-caption",
|
|
@@ -1711,7 +2022,7 @@ function TableCaption({
|
|
|
1711
2022
|
}
|
|
1712
2023
|
|
|
1713
2024
|
// src/components/accordion.tsx
|
|
1714
|
-
import * as
|
|
2025
|
+
import * as React35 from "react";
|
|
1715
2026
|
|
|
1716
2027
|
// src/generated/accordion.ts
|
|
1717
2028
|
var ACCORDION_ITEM = "border-b last:border-b-0";
|
|
@@ -1721,16 +2032,16 @@ var ACCORDION_CONTENT = "data-[state=closed]:animate-accordion-up data-[state=op
|
|
|
1721
2032
|
var ACCORDION_CONTENT_INNER = "pt-0 pb-4";
|
|
1722
2033
|
|
|
1723
2034
|
// src/components/accordion.tsx
|
|
1724
|
-
import { jsx as
|
|
1725
|
-
var AccordionContext =
|
|
2035
|
+
import { jsx as jsx26, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
2036
|
+
var AccordionContext = React35.createContext(null);
|
|
1726
2037
|
function useAccordion() {
|
|
1727
|
-
const ctx =
|
|
2038
|
+
const ctx = React35.useContext(AccordionContext);
|
|
1728
2039
|
if (!ctx) throw new Error("Accordion parts must be used within <Accordion>");
|
|
1729
2040
|
return ctx;
|
|
1730
2041
|
}
|
|
1731
|
-
var ItemContext =
|
|
2042
|
+
var ItemContext = React35.createContext(null);
|
|
1732
2043
|
function useItemValue() {
|
|
1733
|
-
const value =
|
|
2044
|
+
const value = React35.useContext(ItemContext);
|
|
1734
2045
|
if (value === null)
|
|
1735
2046
|
throw new Error("AccordionTrigger/Content must be used within <AccordionItem>");
|
|
1736
2047
|
return value;
|
|
@@ -1758,7 +2069,7 @@ function Accordion({
|
|
|
1758
2069
|
if (open.includes(v)) setOpen(collapsible ? [] : open);
|
|
1759
2070
|
else setOpen([v]);
|
|
1760
2071
|
};
|
|
1761
|
-
return /* @__PURE__ */
|
|
2072
|
+
return /* @__PURE__ */ jsx26(AccordionContext.Provider, { value: { isOpen, toggle }, children: /* @__PURE__ */ jsx26("div", { "data-slot": "accordion", ...props, children }) });
|
|
1762
2073
|
}
|
|
1763
2074
|
function AccordionItem({
|
|
1764
2075
|
className,
|
|
@@ -1766,7 +2077,7 @@ function AccordionItem({
|
|
|
1766
2077
|
children,
|
|
1767
2078
|
...props
|
|
1768
2079
|
}) {
|
|
1769
|
-
return /* @__PURE__ */
|
|
2080
|
+
return /* @__PURE__ */ jsx26(ItemContext.Provider, { value, children: /* @__PURE__ */ jsx26(
|
|
1770
2081
|
"div",
|
|
1771
2082
|
{
|
|
1772
2083
|
"data-slot": "accordion-item",
|
|
@@ -1785,7 +2096,7 @@ function AccordionTrigger({
|
|
|
1785
2096
|
const { isOpen, toggle } = useAccordion();
|
|
1786
2097
|
const value = useItemValue();
|
|
1787
2098
|
const open = isOpen(value);
|
|
1788
|
-
return /* @__PURE__ */
|
|
2099
|
+
return /* @__PURE__ */ jsx26("h3", { className: ACCORDION_HEADER, "data-slot": "accordion-header", children: /* @__PURE__ */ jsxs6(
|
|
1789
2100
|
"button",
|
|
1790
2101
|
{
|
|
1791
2102
|
type: "button",
|
|
@@ -1800,7 +2111,7 @@ function AccordionTrigger({
|
|
|
1800
2111
|
...props,
|
|
1801
2112
|
children: [
|
|
1802
2113
|
children,
|
|
1803
|
-
/* @__PURE__ */
|
|
2114
|
+
/* @__PURE__ */ jsx26(
|
|
1804
2115
|
"svg",
|
|
1805
2116
|
{
|
|
1806
2117
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -1813,7 +2124,7 @@ function AccordionTrigger({
|
|
|
1813
2124
|
strokeLinecap: "round",
|
|
1814
2125
|
strokeLinejoin: "round",
|
|
1815
2126
|
className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200",
|
|
1816
|
-
children: /* @__PURE__ */
|
|
2127
|
+
children: /* @__PURE__ */ jsx26("path", { d: "m6 9 6 6 6-6" })
|
|
1817
2128
|
}
|
|
1818
2129
|
)
|
|
1819
2130
|
]
|
|
@@ -1828,26 +2139,26 @@ function AccordionContent({
|
|
|
1828
2139
|
const { isOpen } = useAccordion();
|
|
1829
2140
|
const value = useItemValue();
|
|
1830
2141
|
if (!isOpen(value)) return null;
|
|
1831
|
-
return /* @__PURE__ */
|
|
2142
|
+
return /* @__PURE__ */ jsx26(
|
|
1832
2143
|
"div",
|
|
1833
2144
|
{
|
|
1834
2145
|
"data-slot": "accordion-content",
|
|
1835
2146
|
"data-state": "open",
|
|
1836
2147
|
className: ACCORDION_CONTENT,
|
|
1837
2148
|
...props,
|
|
1838
|
-
children: /* @__PURE__ */
|
|
2149
|
+
children: /* @__PURE__ */ jsx26("div", { className: cn(ACCORDION_CONTENT_INNER, className), children })
|
|
1839
2150
|
}
|
|
1840
2151
|
);
|
|
1841
2152
|
}
|
|
1842
2153
|
|
|
1843
2154
|
// src/components/collapsible.tsx
|
|
1844
|
-
import * as
|
|
1845
|
-
import { jsx as
|
|
1846
|
-
var CollapsibleContext =
|
|
2155
|
+
import * as React36 from "react";
|
|
2156
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
2157
|
+
var CollapsibleContext = React36.createContext(
|
|
1847
2158
|
null
|
|
1848
2159
|
);
|
|
1849
2160
|
function useCollapsible() {
|
|
1850
|
-
const ctx =
|
|
2161
|
+
const ctx = React36.useContext(CollapsibleContext);
|
|
1851
2162
|
if (!ctx) throw new Error("Collapsible parts must be used within <Collapsible>");
|
|
1852
2163
|
return ctx;
|
|
1853
2164
|
}
|
|
@@ -1863,14 +2174,14 @@ function Collapsible({
|
|
|
1863
2174
|
defaultValue: defaultOpen,
|
|
1864
2175
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
1865
2176
|
});
|
|
1866
|
-
return /* @__PURE__ */
|
|
2177
|
+
return /* @__PURE__ */ jsx27(CollapsibleContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx27("div", { "data-slot": "collapsible", "data-state": isOpen ? "open" : "closed", ...props, children }) });
|
|
1867
2178
|
}
|
|
1868
2179
|
function CollapsibleTrigger({
|
|
1869
2180
|
onClick,
|
|
1870
2181
|
...props
|
|
1871
2182
|
}) {
|
|
1872
2183
|
const { open, setOpen } = useCollapsible();
|
|
1873
|
-
return /* @__PURE__ */
|
|
2184
|
+
return /* @__PURE__ */ jsx27(
|
|
1874
2185
|
"button",
|
|
1875
2186
|
{
|
|
1876
2187
|
type: "button",
|
|
@@ -1891,30 +2202,11 @@ function CollapsibleContent({
|
|
|
1891
2202
|
}) {
|
|
1892
2203
|
const { open } = useCollapsible();
|
|
1893
2204
|
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
|
-
);
|
|
2205
|
+
return /* @__PURE__ */ jsx27("div", { "data-slot": "collapsible-content", "data-state": "open", ...props, children });
|
|
1914
2206
|
}
|
|
1915
2207
|
|
|
1916
2208
|
// src/components/tabs.tsx
|
|
1917
|
-
import * as
|
|
2209
|
+
import * as React37 from "react";
|
|
1918
2210
|
|
|
1919
2211
|
// src/generated/tabs.ts
|
|
1920
2212
|
var TABS_ROOT = "flex flex-col gap-2";
|
|
@@ -1923,10 +2215,10 @@ var TABS_TRIGGER = "data-[state=active]:bg-background focus-visible:border-ring
|
|
|
1923
2215
|
var TABS_CONTENT = "flex-1 outline-none";
|
|
1924
2216
|
|
|
1925
2217
|
// src/components/tabs.tsx
|
|
1926
|
-
import { jsx as
|
|
1927
|
-
var TabsContext =
|
|
2218
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
2219
|
+
var TabsContext = React37.createContext(null);
|
|
1928
2220
|
function useTabs() {
|
|
1929
|
-
const ctx =
|
|
2221
|
+
const ctx = React37.useContext(TabsContext);
|
|
1930
2222
|
if (!ctx) throw new Error("Tabs parts must be used within <Tabs>");
|
|
1931
2223
|
return ctx;
|
|
1932
2224
|
}
|
|
@@ -1944,7 +2236,7 @@ function Tabs({
|
|
|
1944
2236
|
defaultValue,
|
|
1945
2237
|
...onValueChange ? { onChange: onValueChange } : {}
|
|
1946
2238
|
});
|
|
1947
|
-
return /* @__PURE__ */
|
|
2239
|
+
return /* @__PURE__ */ jsx28(TabsContext.Provider, { value: { value: active, setValue, orientation }, children: /* @__PURE__ */ jsx28(
|
|
1948
2240
|
"div",
|
|
1949
2241
|
{
|
|
1950
2242
|
"data-slot": "tabs",
|
|
@@ -1962,12 +2254,12 @@ function TabsList({
|
|
|
1962
2254
|
...props
|
|
1963
2255
|
}) {
|
|
1964
2256
|
const { orientation } = useTabs();
|
|
1965
|
-
const items =
|
|
2257
|
+
const items = React37.Children.toArray(children);
|
|
1966
2258
|
const { activeIndex, setActiveIndex, onKeyDown: rovingKeyDown } = useRovingFocus({
|
|
1967
2259
|
count: items.length,
|
|
1968
2260
|
orientation: orientation === "vertical" ? "vertical" : "horizontal"
|
|
1969
2261
|
});
|
|
1970
|
-
return /* @__PURE__ */
|
|
2262
|
+
return /* @__PURE__ */ jsx28(
|
|
1971
2263
|
"div",
|
|
1972
2264
|
{
|
|
1973
2265
|
role: "tablist",
|
|
@@ -1980,7 +2272,7 @@ function TabsList({
|
|
|
1980
2272
|
},
|
|
1981
2273
|
...props,
|
|
1982
2274
|
children: items.map(
|
|
1983
|
-
(child, index) =>
|
|
2275
|
+
(child, index) => React37.isValidElement(child) ? React37.cloneElement(child, {
|
|
1984
2276
|
__index: index,
|
|
1985
2277
|
__isFocusItem: index === activeIndex,
|
|
1986
2278
|
__onFocusItem: () => setActiveIndex(index)
|
|
@@ -2000,7 +2292,7 @@ function TabsTrigger({
|
|
|
2000
2292
|
}) {
|
|
2001
2293
|
const { value: active, setValue } = useTabs();
|
|
2002
2294
|
const selected = active === value;
|
|
2003
|
-
return /* @__PURE__ */
|
|
2295
|
+
return /* @__PURE__ */ jsx28(
|
|
2004
2296
|
"button",
|
|
2005
2297
|
{
|
|
2006
2298
|
type: "button",
|
|
@@ -2031,7 +2323,7 @@ function TabsContent({
|
|
|
2031
2323
|
}) {
|
|
2032
2324
|
const { value: active } = useTabs();
|
|
2033
2325
|
if (active !== value) return null;
|
|
2034
|
-
return /* @__PURE__ */
|
|
2326
|
+
return /* @__PURE__ */ jsx28(
|
|
2035
2327
|
"div",
|
|
2036
2328
|
{
|
|
2037
2329
|
role: "tabpanel",
|
|
@@ -2060,7 +2352,7 @@ var toggleSizeClasses = {
|
|
|
2060
2352
|
};
|
|
2061
2353
|
|
|
2062
2354
|
// src/components/toggle.tsx
|
|
2063
|
-
import { jsx as
|
|
2355
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
2064
2356
|
function toggleVariants({
|
|
2065
2357
|
variant = "default",
|
|
2066
2358
|
size = "default",
|
|
@@ -2083,7 +2375,7 @@ function Toggle({
|
|
|
2083
2375
|
defaultValue: defaultPressed,
|
|
2084
2376
|
...onPressedChange ? { onChange: onPressedChange } : {}
|
|
2085
2377
|
});
|
|
2086
|
-
return /* @__PURE__ */
|
|
2378
|
+
return /* @__PURE__ */ jsx29(
|
|
2087
2379
|
"button",
|
|
2088
2380
|
{
|
|
2089
2381
|
type: "button",
|
|
@@ -2101,9 +2393,9 @@ function Toggle({
|
|
|
2101
2393
|
}
|
|
2102
2394
|
|
|
2103
2395
|
// src/components/toggle-group.tsx
|
|
2104
|
-
import * as
|
|
2105
|
-
import { jsx as
|
|
2106
|
-
var ToggleGroupContext =
|
|
2396
|
+
import * as React39 from "react";
|
|
2397
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
2398
|
+
var ToggleGroupContext = React39.createContext({
|
|
2107
2399
|
variant: "default",
|
|
2108
2400
|
size: "default",
|
|
2109
2401
|
value: [],
|
|
@@ -2130,7 +2422,7 @@ function ToggleGroup({
|
|
|
2130
2422
|
defaultValue: toArray(defaultValue),
|
|
2131
2423
|
onChange: (next) => onValueChange?.(type === "single" ? next[0] ?? "" : next)
|
|
2132
2424
|
});
|
|
2133
|
-
const toggle =
|
|
2425
|
+
const toggle = React39.useCallback(
|
|
2134
2426
|
(itemValue) => {
|
|
2135
2427
|
if (type === "single") {
|
|
2136
2428
|
setSelected(selected.includes(itemValue) ? [] : [itemValue]);
|
|
@@ -2142,7 +2434,7 @@ function ToggleGroup({
|
|
|
2142
2434
|
},
|
|
2143
2435
|
[type, selected, setSelected]
|
|
2144
2436
|
);
|
|
2145
|
-
return /* @__PURE__ */
|
|
2437
|
+
return /* @__PURE__ */ jsx30(
|
|
2146
2438
|
"div",
|
|
2147
2439
|
{
|
|
2148
2440
|
"data-slot": "toggle-group",
|
|
@@ -2153,7 +2445,7 @@ function ToggleGroup({
|
|
|
2153
2445
|
className
|
|
2154
2446
|
),
|
|
2155
2447
|
...props,
|
|
2156
|
-
children: /* @__PURE__ */
|
|
2448
|
+
children: /* @__PURE__ */ jsx30(ToggleGroupContext.Provider, { value: { variant, size, value: selected, toggle }, children })
|
|
2157
2449
|
}
|
|
2158
2450
|
);
|
|
2159
2451
|
}
|
|
@@ -2166,11 +2458,11 @@ function ToggleGroupItem({
|
|
|
2166
2458
|
onClick,
|
|
2167
2459
|
...props
|
|
2168
2460
|
}) {
|
|
2169
|
-
const context =
|
|
2461
|
+
const context = React39.useContext(ToggleGroupContext);
|
|
2170
2462
|
const resolvedVariant = context.variant || variant || "default";
|
|
2171
2463
|
const resolvedSize = context.size || size || "default";
|
|
2172
2464
|
const on = context.value.includes(value);
|
|
2173
|
-
return /* @__PURE__ */
|
|
2465
|
+
return /* @__PURE__ */ jsx30(
|
|
2174
2466
|
"button",
|
|
2175
2467
|
{
|
|
2176
2468
|
type: "button",
|
|
@@ -2196,7 +2488,7 @@ function ToggleGroupItem({
|
|
|
2196
2488
|
|
|
2197
2489
|
// src/components/switch.tsx
|
|
2198
2490
|
import "react";
|
|
2199
|
-
import { jsx as
|
|
2491
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
2200
2492
|
function Switch({
|
|
2201
2493
|
className,
|
|
2202
2494
|
checked,
|
|
@@ -2212,7 +2504,7 @@ function Switch({
|
|
|
2212
2504
|
...onCheckedChange ? { onChange: onCheckedChange } : {}
|
|
2213
2505
|
});
|
|
2214
2506
|
const state = on ? "checked" : "unchecked";
|
|
2215
|
-
return /* @__PURE__ */
|
|
2507
|
+
return /* @__PURE__ */ jsx31(
|
|
2216
2508
|
"button",
|
|
2217
2509
|
{
|
|
2218
2510
|
type: "button",
|
|
@@ -2230,7 +2522,7 @@ function Switch({
|
|
|
2230
2522
|
setOn(!on);
|
|
2231
2523
|
},
|
|
2232
2524
|
...props,
|
|
2233
|
-
children: /* @__PURE__ */
|
|
2525
|
+
children: /* @__PURE__ */ jsx31(
|
|
2234
2526
|
"span",
|
|
2235
2527
|
{
|
|
2236
2528
|
"data-slot": "switch-thumb",
|
|
@@ -2244,7 +2536,7 @@ function Switch({
|
|
|
2244
2536
|
|
|
2245
2537
|
// src/components/checkbox.tsx
|
|
2246
2538
|
import "react";
|
|
2247
|
-
import { jsx as
|
|
2539
|
+
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
2248
2540
|
function Checkbox({
|
|
2249
2541
|
className,
|
|
2250
2542
|
checked,
|
|
@@ -2260,7 +2552,7 @@ function Checkbox({
|
|
|
2260
2552
|
...onCheckedChange ? { onChange: onCheckedChange } : {}
|
|
2261
2553
|
});
|
|
2262
2554
|
const state = on ? "checked" : "unchecked";
|
|
2263
|
-
return /* @__PURE__ */
|
|
2555
|
+
return /* @__PURE__ */ jsx32(
|
|
2264
2556
|
"button",
|
|
2265
2557
|
{
|
|
2266
2558
|
type: "button",
|
|
@@ -2278,12 +2570,12 @@ function Checkbox({
|
|
|
2278
2570
|
setOn(!on);
|
|
2279
2571
|
},
|
|
2280
2572
|
...props,
|
|
2281
|
-
children: on && /* @__PURE__ */
|
|
2573
|
+
children: on && /* @__PURE__ */ jsx32(
|
|
2282
2574
|
"span",
|
|
2283
2575
|
{
|
|
2284
2576
|
"data-slot": "checkbox-indicator",
|
|
2285
2577
|
className: "flex items-center justify-center text-current transition-none",
|
|
2286
|
-
children: /* @__PURE__ */
|
|
2578
|
+
children: /* @__PURE__ */ jsx32(
|
|
2287
2579
|
"svg",
|
|
2288
2580
|
{
|
|
2289
2581
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -2295,7 +2587,7 @@ function Checkbox({
|
|
|
2295
2587
|
strokeLinejoin: "round",
|
|
2296
2588
|
className: "size-3.5",
|
|
2297
2589
|
"aria-hidden": "true",
|
|
2298
|
-
children: /* @__PURE__ */
|
|
2590
|
+
children: /* @__PURE__ */ jsx32("path", { d: "M20 6 9 17l-5-5" })
|
|
2299
2591
|
}
|
|
2300
2592
|
)
|
|
2301
2593
|
}
|
|
@@ -2305,15 +2597,15 @@ function Checkbox({
|
|
|
2305
2597
|
}
|
|
2306
2598
|
|
|
2307
2599
|
// src/components/radio-group.tsx
|
|
2308
|
-
import * as
|
|
2600
|
+
import * as React42 from "react";
|
|
2309
2601
|
|
|
2310
2602
|
// src/generated/radio-group.ts
|
|
2311
2603
|
var RADIO_GROUP_ROOT = "grid gap-3";
|
|
2312
2604
|
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
2605
|
|
|
2314
2606
|
// src/components/radio-group.tsx
|
|
2315
|
-
import { jsx as
|
|
2316
|
-
var RadioGroupContext =
|
|
2607
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
2608
|
+
var RadioGroupContext = React42.createContext(
|
|
2317
2609
|
null
|
|
2318
2610
|
);
|
|
2319
2611
|
function RadioGroup({
|
|
@@ -2330,10 +2622,10 @@ function RadioGroup({
|
|
|
2330
2622
|
defaultValue,
|
|
2331
2623
|
...onValueChange ? { onChange: onValueChange } : {}
|
|
2332
2624
|
});
|
|
2333
|
-
const itemsRef =
|
|
2334
|
-
const [count, setCount] =
|
|
2625
|
+
const itemsRef = React42.useRef([]);
|
|
2626
|
+
const [count, setCount] = React42.useState(0);
|
|
2335
2627
|
const { activeIndex, setActiveIndex, onKeyDown: rovingKeyDown } = useRovingFocus({ count, orientation: "vertical", loop: true });
|
|
2336
|
-
const register =
|
|
2628
|
+
const register = React42.useCallback((el) => {
|
|
2337
2629
|
const list = itemsRef.current;
|
|
2338
2630
|
let index = list.indexOf(el);
|
|
2339
2631
|
if (index === -1) {
|
|
@@ -2343,11 +2635,11 @@ function RadioGroup({
|
|
|
2343
2635
|
}
|
|
2344
2636
|
return index;
|
|
2345
2637
|
}, []);
|
|
2346
|
-
const ctx =
|
|
2638
|
+
const ctx = React42.useMemo(
|
|
2347
2639
|
() => ({ value: current, setValue: setCurrent, register, activeIndex, setActiveIndex }),
|
|
2348
2640
|
[current, setCurrent, register, activeIndex, setActiveIndex]
|
|
2349
2641
|
);
|
|
2350
|
-
return /* @__PURE__ */
|
|
2642
|
+
return /* @__PURE__ */ jsx33(RadioGroupContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx33(
|
|
2351
2643
|
"div",
|
|
2352
2644
|
{
|
|
2353
2645
|
"data-slot": "radio-group",
|
|
@@ -2369,14 +2661,14 @@ function RadioGroupItem({
|
|
|
2369
2661
|
onClick,
|
|
2370
2662
|
...props
|
|
2371
2663
|
}) {
|
|
2372
|
-
const ctx =
|
|
2664
|
+
const ctx = React42.useContext(RadioGroupContext);
|
|
2373
2665
|
if (!ctx) throw new Error("RadioGroupItem must be used within a RadioGroup");
|
|
2374
|
-
const indexRef =
|
|
2666
|
+
const indexRef = React42.useRef(-1);
|
|
2375
2667
|
const checked = ctx.value === value;
|
|
2376
|
-
|
|
2668
|
+
React42.useEffect(() => {
|
|
2377
2669
|
if (checked) ctx.setActiveIndex(indexRef.current);
|
|
2378
2670
|
}, [checked]);
|
|
2379
|
-
return /* @__PURE__ */
|
|
2671
|
+
return /* @__PURE__ */ jsx33(
|
|
2380
2672
|
"button",
|
|
2381
2673
|
{
|
|
2382
2674
|
ref: (el) => {
|
|
@@ -2395,18 +2687,18 @@ function RadioGroupItem({
|
|
|
2395
2687
|
ctx.setValue(value);
|
|
2396
2688
|
},
|
|
2397
2689
|
...props,
|
|
2398
|
-
children: checked ? /* @__PURE__ */
|
|
2690
|
+
children: checked ? /* @__PURE__ */ jsx33(
|
|
2399
2691
|
"span",
|
|
2400
2692
|
{
|
|
2401
2693
|
"data-slot": "radio-group-indicator",
|
|
2402
2694
|
className: "relative flex items-center justify-center",
|
|
2403
|
-
children: /* @__PURE__ */
|
|
2695
|
+
children: /* @__PURE__ */ jsx33(
|
|
2404
2696
|
"svg",
|
|
2405
2697
|
{
|
|
2406
2698
|
className: "fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2",
|
|
2407
2699
|
viewBox: "0 0 24 24",
|
|
2408
2700
|
"aria-hidden": "true",
|
|
2409
|
-
children: /* @__PURE__ */
|
|
2701
|
+
children: /* @__PURE__ */ jsx33("circle", { cx: "12", cy: "12", r: "10" })
|
|
2410
2702
|
}
|
|
2411
2703
|
)
|
|
2412
2704
|
}
|
|
@@ -2416,7 +2708,7 @@ function RadioGroupItem({
|
|
|
2416
2708
|
}
|
|
2417
2709
|
|
|
2418
2710
|
// src/components/slider.tsx
|
|
2419
|
-
import * as
|
|
2711
|
+
import * as React43 from "react";
|
|
2420
2712
|
|
|
2421
2713
|
// src/generated/slider.ts
|
|
2422
2714
|
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 +2717,7 @@ var SLIDER_RANGE = "bg-primary absolute data-[orientation=horizontal]:h-full dat
|
|
|
2425
2717
|
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
2718
|
|
|
2427
2719
|
// src/components/slider.tsx
|
|
2428
|
-
import { jsx as
|
|
2720
|
+
import { jsx as jsx34, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
2429
2721
|
function clampStep(value, min, max, step) {
|
|
2430
2722
|
const clamped = Math.min(max, Math.max(min, value));
|
|
2431
2723
|
if (step <= 0) return clamped;
|
|
@@ -2452,9 +2744,9 @@ function Slider({
|
|
|
2452
2744
|
const current = clampStep(raw, min, max, step);
|
|
2453
2745
|
const span = Math.max(max - min, Number.EPSILON);
|
|
2454
2746
|
const percent = Math.min(100, Math.max(0, (current - min) / span * 100));
|
|
2455
|
-
const trackRef =
|
|
2456
|
-
const draggingRef =
|
|
2457
|
-
const valueFromPointer =
|
|
2747
|
+
const trackRef = React43.useRef(null);
|
|
2748
|
+
const draggingRef = React43.useRef(false);
|
|
2749
|
+
const valueFromPointer = React43.useCallback(
|
|
2458
2750
|
(clientX, clientY) => {
|
|
2459
2751
|
const rect = trackRef.current?.getBoundingClientRect();
|
|
2460
2752
|
if (!rect) return current;
|
|
@@ -2503,7 +2795,7 @@ function Slider({
|
|
|
2503
2795
|
};
|
|
2504
2796
|
const rangeStyle = orientation === "vertical" ? { height: `${percent}%` } : { width: `${percent}%` };
|
|
2505
2797
|
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__ */
|
|
2798
|
+
return /* @__PURE__ */ jsxs7(
|
|
2507
2799
|
"span",
|
|
2508
2800
|
{
|
|
2509
2801
|
"data-slot": "slider",
|
|
@@ -2515,14 +2807,14 @@ function Slider({
|
|
|
2515
2807
|
onPointerMove,
|
|
2516
2808
|
onPointerUp,
|
|
2517
2809
|
children: [
|
|
2518
|
-
/* @__PURE__ */
|
|
2810
|
+
/* @__PURE__ */ jsx34(
|
|
2519
2811
|
"span",
|
|
2520
2812
|
{
|
|
2521
2813
|
ref: trackRef,
|
|
2522
2814
|
"data-slot": "slider-track",
|
|
2523
2815
|
"data-orientation": orientation,
|
|
2524
2816
|
className: SLIDER_TRACK,
|
|
2525
|
-
children: /* @__PURE__ */
|
|
2817
|
+
children: /* @__PURE__ */ jsx34(
|
|
2526
2818
|
"span",
|
|
2527
2819
|
{
|
|
2528
2820
|
"data-slot": "slider-range",
|
|
@@ -2533,7 +2825,7 @@ function Slider({
|
|
|
2533
2825
|
)
|
|
2534
2826
|
}
|
|
2535
2827
|
),
|
|
2536
|
-
/* @__PURE__ */
|
|
2828
|
+
/* @__PURE__ */ jsx34(
|
|
2537
2829
|
"span",
|
|
2538
2830
|
{
|
|
2539
2831
|
"data-slot": "slider-thumb",
|
|
@@ -2568,15 +2860,15 @@ var scrollBarOrientations = {
|
|
|
2568
2860
|
};
|
|
2569
2861
|
|
|
2570
2862
|
// src/components/scroll-area.tsx
|
|
2571
|
-
import { jsx as
|
|
2863
|
+
import { jsx as jsx35, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2572
2864
|
function ScrollArea({
|
|
2573
2865
|
className,
|
|
2574
2866
|
children,
|
|
2575
2867
|
...props
|
|
2576
2868
|
}) {
|
|
2577
|
-
return /* @__PURE__ */
|
|
2578
|
-
/* @__PURE__ */
|
|
2579
|
-
/* @__PURE__ */
|
|
2869
|
+
return /* @__PURE__ */ jsxs8("div", { "data-slot": "scroll-area", className: cn("relative", className), ...props, children: [
|
|
2870
|
+
/* @__PURE__ */ jsx35("div", { "data-slot": "scroll-area-viewport", className: SCROLL_AREA_VIEWPORT, children }),
|
|
2871
|
+
/* @__PURE__ */ jsx35(ScrollBar, {})
|
|
2580
2872
|
] });
|
|
2581
2873
|
}
|
|
2582
2874
|
function ScrollBar({
|
|
@@ -2584,20 +2876,20 @@ function ScrollBar({
|
|
|
2584
2876
|
orientation = "vertical",
|
|
2585
2877
|
...props
|
|
2586
2878
|
}) {
|
|
2587
|
-
return /* @__PURE__ */
|
|
2879
|
+
return /* @__PURE__ */ jsx35(
|
|
2588
2880
|
"div",
|
|
2589
2881
|
{
|
|
2590
2882
|
"data-slot": "scroll-area-scrollbar",
|
|
2591
2883
|
"data-orientation": orientation,
|
|
2592
2884
|
className: cn(SCROLLBAR_BASE, scrollBarOrientations[orientation], className),
|
|
2593
2885
|
...props,
|
|
2594
|
-
children: /* @__PURE__ */
|
|
2886
|
+
children: /* @__PURE__ */ jsx35("div", { "data-slot": "scroll-area-thumb", className: SCROLL_AREA_THUMB })
|
|
2595
2887
|
}
|
|
2596
2888
|
);
|
|
2597
2889
|
}
|
|
2598
2890
|
|
|
2599
2891
|
// src/components/sidebar.tsx
|
|
2600
|
-
import * as
|
|
2892
|
+
import * as React45 from "react";
|
|
2601
2893
|
|
|
2602
2894
|
// src/generated/sidebar.ts
|
|
2603
2895
|
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 +2919,12 @@ var SIDEBAR_MENU = "flex w-full min-w-0 flex-col gap-1";
|
|
|
2627
2919
|
var SIDEBAR_MENU_ITEM = "group/menu-item relative";
|
|
2628
2920
|
|
|
2629
2921
|
// src/components/sidebar.tsx
|
|
2630
|
-
import { jsx as
|
|
2922
|
+
import { jsx as jsx36, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2631
2923
|
var SIDEBAR_WIDTH = "16rem";
|
|
2632
2924
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
2633
|
-
var SidebarContext =
|
|
2925
|
+
var SidebarContext = React45.createContext(null);
|
|
2634
2926
|
function useSidebar() {
|
|
2635
|
-
const ctx =
|
|
2927
|
+
const ctx = React45.useContext(SidebarContext);
|
|
2636
2928
|
if (!ctx) throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
2637
2929
|
return ctx;
|
|
2638
2930
|
}
|
|
@@ -2650,16 +2942,16 @@ function SidebarProvider({
|
|
|
2650
2942
|
defaultValue: defaultOpen,
|
|
2651
2943
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
2652
2944
|
});
|
|
2653
|
-
const toggleSidebar =
|
|
2945
|
+
const toggleSidebar = React45.useCallback(
|
|
2654
2946
|
() => setOpen(!open),
|
|
2655
2947
|
[open, setOpen]
|
|
2656
2948
|
);
|
|
2657
2949
|
const state = open ? "expanded" : "collapsed";
|
|
2658
|
-
const contextValue =
|
|
2950
|
+
const contextValue = React45.useMemo(
|
|
2659
2951
|
() => ({ state, open, setOpen, toggleSidebar }),
|
|
2660
2952
|
[state, open, setOpen, toggleSidebar]
|
|
2661
2953
|
);
|
|
2662
|
-
return /* @__PURE__ */
|
|
2954
|
+
return /* @__PURE__ */ jsx36(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx36(
|
|
2663
2955
|
"div",
|
|
2664
2956
|
{
|
|
2665
2957
|
"data-slot": "sidebar-wrapper",
|
|
@@ -2684,7 +2976,7 @@ function Sidebar({
|
|
|
2684
2976
|
}) {
|
|
2685
2977
|
const { state } = useSidebar();
|
|
2686
2978
|
if (collapsible === "none") {
|
|
2687
|
-
return /* @__PURE__ */
|
|
2979
|
+
return /* @__PURE__ */ jsx36(
|
|
2688
2980
|
"div",
|
|
2689
2981
|
{
|
|
2690
2982
|
"data-slot": "sidebar",
|
|
@@ -2694,7 +2986,7 @@ function Sidebar({
|
|
|
2694
2986
|
}
|
|
2695
2987
|
);
|
|
2696
2988
|
}
|
|
2697
|
-
return /* @__PURE__ */
|
|
2989
|
+
return /* @__PURE__ */ jsx36(
|
|
2698
2990
|
"div",
|
|
2699
2991
|
{
|
|
2700
2992
|
className: "group peer text-sidebar-foreground hidden md:block",
|
|
@@ -2703,7 +2995,7 @@ function Sidebar({
|
|
|
2703
2995
|
"data-variant": variant,
|
|
2704
2996
|
"data-side": side,
|
|
2705
2997
|
"data-slot": "sidebar",
|
|
2706
|
-
children: /* @__PURE__ */
|
|
2998
|
+
children: /* @__PURE__ */ jsx36(
|
|
2707
2999
|
"div",
|
|
2708
3000
|
{
|
|
2709
3001
|
"data-slot": "sidebar-inner",
|
|
@@ -2722,7 +3014,7 @@ function SidebarTrigger({
|
|
|
2722
3014
|
...props
|
|
2723
3015
|
}) {
|
|
2724
3016
|
const { toggleSidebar } = useSidebar();
|
|
2725
|
-
return /* @__PURE__ */
|
|
3017
|
+
return /* @__PURE__ */ jsxs9(
|
|
2726
3018
|
"button",
|
|
2727
3019
|
{
|
|
2728
3020
|
type: "button",
|
|
@@ -2737,7 +3029,7 @@ function SidebarTrigger({
|
|
|
2737
3029
|
...props,
|
|
2738
3030
|
children: [
|
|
2739
3031
|
children,
|
|
2740
|
-
/* @__PURE__ */
|
|
3032
|
+
/* @__PURE__ */ jsx36("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
2741
3033
|
]
|
|
2742
3034
|
}
|
|
2743
3035
|
);
|
|
@@ -2747,7 +3039,7 @@ function SidebarRail({
|
|
|
2747
3039
|
...props
|
|
2748
3040
|
}) {
|
|
2749
3041
|
const { toggleSidebar } = useSidebar();
|
|
2750
|
-
return /* @__PURE__ */
|
|
3042
|
+
return /* @__PURE__ */ jsx36(
|
|
2751
3043
|
"button",
|
|
2752
3044
|
{
|
|
2753
3045
|
type: "button",
|
|
@@ -2763,7 +3055,7 @@ function SidebarRail({
|
|
|
2763
3055
|
);
|
|
2764
3056
|
}
|
|
2765
3057
|
function SidebarInset({ className, ...props }) {
|
|
2766
|
-
return /* @__PURE__ */
|
|
3058
|
+
return /* @__PURE__ */ jsx36(
|
|
2767
3059
|
"main",
|
|
2768
3060
|
{
|
|
2769
3061
|
"data-slot": "sidebar-inset",
|
|
@@ -2773,7 +3065,7 @@ function SidebarInset({ className, ...props }) {
|
|
|
2773
3065
|
);
|
|
2774
3066
|
}
|
|
2775
3067
|
function SidebarHeader({ className, ...props }) {
|
|
2776
|
-
return /* @__PURE__ */
|
|
3068
|
+
return /* @__PURE__ */ jsx36(
|
|
2777
3069
|
"div",
|
|
2778
3070
|
{
|
|
2779
3071
|
"data-slot": "sidebar-header",
|
|
@@ -2784,7 +3076,7 @@ function SidebarHeader({ className, ...props }) {
|
|
|
2784
3076
|
);
|
|
2785
3077
|
}
|
|
2786
3078
|
function SidebarFooter({ className, ...props }) {
|
|
2787
|
-
return /* @__PURE__ */
|
|
3079
|
+
return /* @__PURE__ */ jsx36(
|
|
2788
3080
|
"div",
|
|
2789
3081
|
{
|
|
2790
3082
|
"data-slot": "sidebar-footer",
|
|
@@ -2798,7 +3090,7 @@ function SidebarSeparator({
|
|
|
2798
3090
|
className,
|
|
2799
3091
|
...props
|
|
2800
3092
|
}) {
|
|
2801
|
-
return /* @__PURE__ */
|
|
3093
|
+
return /* @__PURE__ */ jsx36(
|
|
2802
3094
|
"div",
|
|
2803
3095
|
{
|
|
2804
3096
|
"data-slot": "sidebar-separator",
|
|
@@ -2810,7 +3102,7 @@ function SidebarSeparator({
|
|
|
2810
3102
|
);
|
|
2811
3103
|
}
|
|
2812
3104
|
function SidebarContent({ className, ...props }) {
|
|
2813
|
-
return /* @__PURE__ */
|
|
3105
|
+
return /* @__PURE__ */ jsx36(
|
|
2814
3106
|
"div",
|
|
2815
3107
|
{
|
|
2816
3108
|
"data-slot": "sidebar-content",
|
|
@@ -2821,7 +3113,7 @@ function SidebarContent({ className, ...props }) {
|
|
|
2821
3113
|
);
|
|
2822
3114
|
}
|
|
2823
3115
|
function SidebarGroup({ className, ...props }) {
|
|
2824
|
-
return /* @__PURE__ */
|
|
3116
|
+
return /* @__PURE__ */ jsx36(
|
|
2825
3117
|
"div",
|
|
2826
3118
|
{
|
|
2827
3119
|
"data-slot": "sidebar-group",
|
|
@@ -2837,7 +3129,7 @@ function SidebarGroupLabel({
|
|
|
2837
3129
|
...props
|
|
2838
3130
|
}) {
|
|
2839
3131
|
const Comp = asChild ? Slot : "div";
|
|
2840
|
-
return /* @__PURE__ */
|
|
3132
|
+
return /* @__PURE__ */ jsx36(
|
|
2841
3133
|
Comp,
|
|
2842
3134
|
{
|
|
2843
3135
|
"data-slot": "sidebar-group-label",
|
|
@@ -2851,7 +3143,7 @@ function SidebarGroupContent({
|
|
|
2851
3143
|
className,
|
|
2852
3144
|
...props
|
|
2853
3145
|
}) {
|
|
2854
|
-
return /* @__PURE__ */
|
|
3146
|
+
return /* @__PURE__ */ jsx36(
|
|
2855
3147
|
"div",
|
|
2856
3148
|
{
|
|
2857
3149
|
"data-slot": "sidebar-group-content",
|
|
@@ -2862,7 +3154,7 @@ function SidebarGroupContent({
|
|
|
2862
3154
|
);
|
|
2863
3155
|
}
|
|
2864
3156
|
function SidebarMenu({ className, ...props }) {
|
|
2865
|
-
return /* @__PURE__ */
|
|
3157
|
+
return /* @__PURE__ */ jsx36(
|
|
2866
3158
|
"ul",
|
|
2867
3159
|
{
|
|
2868
3160
|
"data-slot": "sidebar-menu",
|
|
@@ -2873,7 +3165,7 @@ function SidebarMenu({ className, ...props }) {
|
|
|
2873
3165
|
);
|
|
2874
3166
|
}
|
|
2875
3167
|
function SidebarMenuItem({ className, ...props }) {
|
|
2876
|
-
return /* @__PURE__ */
|
|
3168
|
+
return /* @__PURE__ */ jsx36(
|
|
2877
3169
|
"li",
|
|
2878
3170
|
{
|
|
2879
3171
|
"data-slot": "sidebar-menu-item",
|
|
@@ -2892,7 +3184,7 @@ function SidebarMenuButton({
|
|
|
2892
3184
|
...props
|
|
2893
3185
|
}) {
|
|
2894
3186
|
const Comp = asChild ? Slot : "button";
|
|
2895
|
-
return /* @__PURE__ */
|
|
3187
|
+
return /* @__PURE__ */ jsx36(
|
|
2896
3188
|
Comp,
|
|
2897
3189
|
{
|
|
2898
3190
|
"data-slot": "sidebar-menu-button",
|
|
@@ -2911,7 +3203,7 @@ function SidebarMenuButton({
|
|
|
2911
3203
|
}
|
|
2912
3204
|
|
|
2913
3205
|
// src/components/carousel.tsx
|
|
2914
|
-
import * as
|
|
3206
|
+
import * as React46 from "react";
|
|
2915
3207
|
|
|
2916
3208
|
// src/generated/carousel.ts
|
|
2917
3209
|
var CAROUSEL_CONTENT_VIEWPORT = "overflow-hidden";
|
|
@@ -2930,10 +3222,10 @@ var CAROUSEL_EDGE_FADE_PREV = "pointer-events-none absolute inset-y-0 left-0 w-2
|
|
|
2930
3222
|
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
3223
|
|
|
2932
3224
|
// src/components/carousel.tsx
|
|
2933
|
-
import { Fragment, jsx as
|
|
2934
|
-
var CarouselContext =
|
|
3225
|
+
import { Fragment as Fragment3, jsx as jsx37, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
3226
|
+
var CarouselContext = React46.createContext(null);
|
|
2935
3227
|
function useCarousel() {
|
|
2936
|
-
const context =
|
|
3228
|
+
const context = React46.useContext(CarouselContext);
|
|
2937
3229
|
if (!context) {
|
|
2938
3230
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
2939
3231
|
}
|
|
@@ -2954,13 +3246,13 @@ function Carousel({
|
|
|
2954
3246
|
defaultValue: defaultIndex,
|
|
2955
3247
|
onChange: onIndexChange
|
|
2956
3248
|
});
|
|
2957
|
-
const [count, setCount] =
|
|
3249
|
+
const [count, setCount] = React46.useState(0);
|
|
2958
3250
|
const canScrollPrev = index > 0;
|
|
2959
3251
|
const canScrollNext = index < count - 1;
|
|
2960
|
-
const scrollPrev =
|
|
3252
|
+
const scrollPrev = React46.useCallback(() => {
|
|
2961
3253
|
if (index > 0) setIndex(index - 1);
|
|
2962
3254
|
}, [index, setIndex]);
|
|
2963
|
-
const scrollNext =
|
|
3255
|
+
const scrollNext = React46.useCallback(() => {
|
|
2964
3256
|
if (index < count - 1) setIndex(index + 1);
|
|
2965
3257
|
}, [index, count, setIndex]);
|
|
2966
3258
|
const handleKeyDown = (event) => {
|
|
@@ -2973,7 +3265,7 @@ function Carousel({
|
|
|
2973
3265
|
}
|
|
2974
3266
|
onKeyDown?.(event);
|
|
2975
3267
|
};
|
|
2976
|
-
return /* @__PURE__ */
|
|
3268
|
+
return /* @__PURE__ */ jsx37(
|
|
2977
3269
|
CarouselContext.Provider,
|
|
2978
3270
|
{
|
|
2979
3271
|
value: {
|
|
@@ -2986,7 +3278,7 @@ function Carousel({
|
|
|
2986
3278
|
canScrollPrev,
|
|
2987
3279
|
canScrollNext
|
|
2988
3280
|
},
|
|
2989
|
-
children: /* @__PURE__ */
|
|
3281
|
+
children: /* @__PURE__ */ jsx37(
|
|
2990
3282
|
"div",
|
|
2991
3283
|
{
|
|
2992
3284
|
onKeyDownCapture: handleKeyDown,
|
|
@@ -3008,12 +3300,12 @@ function CarouselContent({
|
|
|
3008
3300
|
...props
|
|
3009
3301
|
}) {
|
|
3010
3302
|
const { orientation, index, setCount } = useCarousel();
|
|
3011
|
-
const childCount =
|
|
3012
|
-
|
|
3303
|
+
const childCount = React46.Children.count(children);
|
|
3304
|
+
React46.useEffect(() => {
|
|
3013
3305
|
setCount(childCount);
|
|
3014
3306
|
}, [childCount, setCount]);
|
|
3015
3307
|
const transform = orientation === "horizontal" ? `translate3d(-${index * 100}%, 0, 0)` : `translate3d(0, -${index * 100}%, 0)`;
|
|
3016
|
-
return /* @__PURE__ */
|
|
3308
|
+
return /* @__PURE__ */ jsx37("div", { className: CAROUSEL_CONTENT_VIEWPORT, "data-slot": "carousel-content", children: /* @__PURE__ */ jsx37(
|
|
3017
3309
|
"div",
|
|
3018
3310
|
{
|
|
3019
3311
|
className: cn(
|
|
@@ -3032,7 +3324,7 @@ function CarouselItem({
|
|
|
3032
3324
|
...props
|
|
3033
3325
|
}) {
|
|
3034
3326
|
const { orientation } = useCarousel();
|
|
3035
|
-
return /* @__PURE__ */
|
|
3327
|
+
return /* @__PURE__ */ jsx37(
|
|
3036
3328
|
"div",
|
|
3037
3329
|
{
|
|
3038
3330
|
role: "group",
|
|
@@ -3051,8 +3343,8 @@ function CarouselEdgeFade({
|
|
|
3051
3343
|
className
|
|
3052
3344
|
}) {
|
|
3053
3345
|
const { canScrollPrev, canScrollNext } = useCarousel();
|
|
3054
|
-
return /* @__PURE__ */
|
|
3055
|
-
/* @__PURE__ */
|
|
3346
|
+
return /* @__PURE__ */ jsxs10(Fragment3, { children: [
|
|
3347
|
+
/* @__PURE__ */ jsx37(
|
|
3056
3348
|
"div",
|
|
3057
3349
|
{
|
|
3058
3350
|
"aria-hidden": true,
|
|
@@ -3063,7 +3355,7 @@ function CarouselEdgeFade({
|
|
|
3063
3355
|
)
|
|
3064
3356
|
}
|
|
3065
3357
|
),
|
|
3066
|
-
/* @__PURE__ */
|
|
3358
|
+
/* @__PURE__ */ jsx37(
|
|
3067
3359
|
"div",
|
|
3068
3360
|
{
|
|
3069
3361
|
"aria-hidden": true,
|
|
@@ -3083,7 +3375,7 @@ function CarouselPrevious({
|
|
|
3083
3375
|
...props
|
|
3084
3376
|
}) {
|
|
3085
3377
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
3086
|
-
return /* @__PURE__ */
|
|
3378
|
+
return /* @__PURE__ */ jsxs10(
|
|
3087
3379
|
Button,
|
|
3088
3380
|
{
|
|
3089
3381
|
"data-slot": "carousel-previous",
|
|
@@ -3098,7 +3390,7 @@ function CarouselPrevious({
|
|
|
3098
3390
|
onClick: scrollPrev,
|
|
3099
3391
|
...props,
|
|
3100
3392
|
children: [
|
|
3101
|
-
/* @__PURE__ */
|
|
3393
|
+
/* @__PURE__ */ jsx37(
|
|
3102
3394
|
"svg",
|
|
3103
3395
|
{
|
|
3104
3396
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -3109,10 +3401,10 @@ function CarouselPrevious({
|
|
|
3109
3401
|
strokeLinecap: "round",
|
|
3110
3402
|
strokeLinejoin: "round",
|
|
3111
3403
|
"aria-hidden": "true",
|
|
3112
|
-
children: /* @__PURE__ */
|
|
3404
|
+
children: /* @__PURE__ */ jsx37("path", { d: "m15 18-6-6 6-6" })
|
|
3113
3405
|
}
|
|
3114
3406
|
),
|
|
3115
|
-
/* @__PURE__ */
|
|
3407
|
+
/* @__PURE__ */ jsx37("span", { className: "sr-only", children: "Previous slide" })
|
|
3116
3408
|
]
|
|
3117
3409
|
}
|
|
3118
3410
|
);
|
|
@@ -3124,7 +3416,7 @@ function CarouselNext({
|
|
|
3124
3416
|
...props
|
|
3125
3417
|
}) {
|
|
3126
3418
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
3127
|
-
return /* @__PURE__ */
|
|
3419
|
+
return /* @__PURE__ */ jsxs10(
|
|
3128
3420
|
Button,
|
|
3129
3421
|
{
|
|
3130
3422
|
"data-slot": "carousel-next",
|
|
@@ -3139,7 +3431,7 @@ function CarouselNext({
|
|
|
3139
3431
|
onClick: scrollNext,
|
|
3140
3432
|
...props,
|
|
3141
3433
|
children: [
|
|
3142
|
-
/* @__PURE__ */
|
|
3434
|
+
/* @__PURE__ */ jsx37(
|
|
3143
3435
|
"svg",
|
|
3144
3436
|
{
|
|
3145
3437
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -3150,17 +3442,17 @@ function CarouselNext({
|
|
|
3150
3442
|
strokeLinecap: "round",
|
|
3151
3443
|
strokeLinejoin: "round",
|
|
3152
3444
|
"aria-hidden": "true",
|
|
3153
|
-
children: /* @__PURE__ */
|
|
3445
|
+
children: /* @__PURE__ */ jsx37("path", { d: "m9 18 6-6-6-6" })
|
|
3154
3446
|
}
|
|
3155
3447
|
),
|
|
3156
|
-
/* @__PURE__ */
|
|
3448
|
+
/* @__PURE__ */ jsx37("span", { className: "sr-only", children: "Next slide" })
|
|
3157
3449
|
]
|
|
3158
3450
|
}
|
|
3159
3451
|
);
|
|
3160
3452
|
}
|
|
3161
3453
|
|
|
3162
3454
|
// src/components/input-otp.tsx
|
|
3163
|
-
import * as
|
|
3455
|
+
import * as React47 from "react";
|
|
3164
3456
|
|
|
3165
3457
|
// src/generated/input-otp.ts
|
|
3166
3458
|
var INPUT_OTP_CONTAINER = "relative flex items-center gap-2 has-disabled:opacity-50";
|
|
@@ -3171,10 +3463,10 @@ var INPUT_OTP_SLOT_CARET_WRAPPER = "pointer-events-none absolute inset-0 flex it
|
|
|
3171
3463
|
var INPUT_OTP_SLOT_CARET = "animate-caret-blink bg-foreground h-4 w-px duration-1000";
|
|
3172
3464
|
|
|
3173
3465
|
// src/components/input-otp.tsx
|
|
3174
|
-
import { jsx as
|
|
3175
|
-
var InputOTPContext =
|
|
3466
|
+
import { jsx as jsx38, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
3467
|
+
var InputOTPContext = React47.createContext(null);
|
|
3176
3468
|
function useInputOTP() {
|
|
3177
|
-
const context =
|
|
3469
|
+
const context = React47.useContext(InputOTPContext);
|
|
3178
3470
|
if (!context) {
|
|
3179
3471
|
throw new Error("InputOTP slots must be used within an <InputOTP />");
|
|
3180
3472
|
}
|
|
@@ -3196,16 +3488,16 @@ function InputOTP({
|
|
|
3196
3488
|
defaultValue,
|
|
3197
3489
|
onChange
|
|
3198
3490
|
});
|
|
3199
|
-
const [focused, setFocused] =
|
|
3491
|
+
const [focused, setFocused] = React47.useState(false);
|
|
3200
3492
|
const activeIndex = focused ? Math.min(value.length, maxLength - 1) : -1;
|
|
3201
|
-
return /* @__PURE__ */
|
|
3493
|
+
return /* @__PURE__ */ jsx38(InputOTPContext.Provider, { value: { value, maxLength, activeIndex }, children: /* @__PURE__ */ jsxs11(
|
|
3202
3494
|
"div",
|
|
3203
3495
|
{
|
|
3204
3496
|
"data-slot": "input-otp",
|
|
3205
3497
|
className: cn(INPUT_OTP_CONTAINER, containerClassName),
|
|
3206
3498
|
children: [
|
|
3207
3499
|
children,
|
|
3208
|
-
/* @__PURE__ */
|
|
3500
|
+
/* @__PURE__ */ jsx38(
|
|
3209
3501
|
"input",
|
|
3210
3502
|
{
|
|
3211
3503
|
inputMode: "numeric",
|
|
@@ -3228,7 +3520,7 @@ function InputOTPGroup({
|
|
|
3228
3520
|
className,
|
|
3229
3521
|
...props
|
|
3230
3522
|
}) {
|
|
3231
|
-
return /* @__PURE__ */
|
|
3523
|
+
return /* @__PURE__ */ jsx38(
|
|
3232
3524
|
"div",
|
|
3233
3525
|
{
|
|
3234
3526
|
"data-slot": "input-otp-group",
|
|
@@ -3242,7 +3534,7 @@ function InputOTPSlot({ index, className, ...props }) {
|
|
|
3242
3534
|
const char = value[index];
|
|
3243
3535
|
const isActive = activeIndex === index;
|
|
3244
3536
|
const hasFakeCaret = isActive && char === void 0;
|
|
3245
|
-
return /* @__PURE__ */
|
|
3537
|
+
return /* @__PURE__ */ jsxs11(
|
|
3246
3538
|
"div",
|
|
3247
3539
|
{
|
|
3248
3540
|
"data-slot": "input-otp-slot",
|
|
@@ -3251,13 +3543,13 @@ function InputOTPSlot({ index, className, ...props }) {
|
|
|
3251
3543
|
...props,
|
|
3252
3544
|
children: [
|
|
3253
3545
|
char,
|
|
3254
|
-
hasFakeCaret && /* @__PURE__ */
|
|
3546
|
+
hasFakeCaret && /* @__PURE__ */ jsx38("div", { className: INPUT_OTP_SLOT_CARET_WRAPPER, children: /* @__PURE__ */ jsx38("div", { className: INPUT_OTP_SLOT_CARET }) })
|
|
3255
3547
|
]
|
|
3256
3548
|
}
|
|
3257
3549
|
);
|
|
3258
3550
|
}
|
|
3259
3551
|
function InputOTPSeparator({ ...props }) {
|
|
3260
|
-
return /* @__PURE__ */
|
|
3552
|
+
return /* @__PURE__ */ jsx38("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ jsx38(
|
|
3261
3553
|
"svg",
|
|
3262
3554
|
{
|
|
3263
3555
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -3268,27 +3560,27 @@ function InputOTPSeparator({ ...props }) {
|
|
|
3268
3560
|
strokeLinecap: "round",
|
|
3269
3561
|
strokeLinejoin: "round",
|
|
3270
3562
|
"aria-hidden": "true",
|
|
3271
|
-
children: /* @__PURE__ */
|
|
3563
|
+
children: /* @__PURE__ */ jsx38("path", { d: "M5 12h14" })
|
|
3272
3564
|
}
|
|
3273
3565
|
) });
|
|
3274
3566
|
}
|
|
3275
3567
|
|
|
3276
3568
|
// src/components/tooltip.tsx
|
|
3277
|
-
import * as
|
|
3569
|
+
import * as React48 from "react";
|
|
3278
3570
|
|
|
3279
3571
|
// src/generated/tooltip.ts
|
|
3280
3572
|
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
3573
|
|
|
3282
3574
|
// src/components/tooltip.tsx
|
|
3283
|
-
import { Fragment as
|
|
3284
|
-
var TooltipContext =
|
|
3575
|
+
import { Fragment as Fragment4, jsx as jsx39 } from "react/jsx-runtime";
|
|
3576
|
+
var TooltipContext = React48.createContext(null);
|
|
3285
3577
|
function useTooltip() {
|
|
3286
|
-
const ctx =
|
|
3578
|
+
const ctx = React48.useContext(TooltipContext);
|
|
3287
3579
|
if (!ctx) throw new Error("Tooltip parts must be used within <Tooltip>");
|
|
3288
3580
|
return ctx;
|
|
3289
3581
|
}
|
|
3290
3582
|
function TooltipProvider({ children }) {
|
|
3291
|
-
return /* @__PURE__ */
|
|
3583
|
+
return /* @__PURE__ */ jsx39(Fragment4, { children });
|
|
3292
3584
|
}
|
|
3293
3585
|
function Tooltip({ open, defaultOpen = false, onOpenChange, children }) {
|
|
3294
3586
|
const [isOpen, setOpen] = useControllableState({
|
|
@@ -3296,8 +3588,8 @@ function Tooltip({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
3296
3588
|
defaultValue: defaultOpen,
|
|
3297
3589
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
3298
3590
|
});
|
|
3299
|
-
const anchorRef =
|
|
3300
|
-
return /* @__PURE__ */
|
|
3591
|
+
const anchorRef = React48.useRef(null);
|
|
3592
|
+
return /* @__PURE__ */ jsx39(TooltipProvider, { children: /* @__PURE__ */ jsx39(TooltipContext.Provider, { value: { open: isOpen, setOpen, anchorRef }, children }) });
|
|
3301
3593
|
}
|
|
3302
3594
|
function TooltipTrigger({
|
|
3303
3595
|
asChild = false,
|
|
@@ -3309,7 +3601,7 @@ function TooltipTrigger({
|
|
|
3309
3601
|
}) {
|
|
3310
3602
|
const { setOpen, anchorRef } = useTooltip();
|
|
3311
3603
|
const Comp = asChild ? Slot : "button";
|
|
3312
|
-
return /* @__PURE__ */
|
|
3604
|
+
return /* @__PURE__ */ jsx39(
|
|
3313
3605
|
Comp,
|
|
3314
3606
|
{
|
|
3315
3607
|
"data-slot": "tooltip-trigger",
|
|
@@ -3350,7 +3642,7 @@ function TooltipContent({
|
|
|
3350
3642
|
offset: sideOffset
|
|
3351
3643
|
});
|
|
3352
3644
|
if (!isPresent) return null;
|
|
3353
|
-
return /* @__PURE__ */
|
|
3645
|
+
return /* @__PURE__ */ jsx39(Portal, { children: /* @__PURE__ */ jsx39(
|
|
3354
3646
|
"div",
|
|
3355
3647
|
{
|
|
3356
3648
|
"data-slot": "tooltip-content",
|
|
@@ -3367,16 +3659,16 @@ function TooltipContent({
|
|
|
3367
3659
|
}
|
|
3368
3660
|
|
|
3369
3661
|
// src/components/popover.tsx
|
|
3370
|
-
import * as
|
|
3662
|
+
import * as React49 from "react";
|
|
3371
3663
|
|
|
3372
3664
|
// src/generated/popover.ts
|
|
3373
3665
|
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
3666
|
|
|
3375
3667
|
// src/components/popover.tsx
|
|
3376
|
-
import { jsx as
|
|
3377
|
-
var PopoverContext =
|
|
3668
|
+
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
3669
|
+
var PopoverContext = React49.createContext(null);
|
|
3378
3670
|
function usePopover() {
|
|
3379
|
-
const ctx =
|
|
3671
|
+
const ctx = React49.useContext(PopoverContext);
|
|
3380
3672
|
if (!ctx) throw new Error("Popover parts must be used within <Popover>");
|
|
3381
3673
|
return ctx;
|
|
3382
3674
|
}
|
|
@@ -3386,13 +3678,13 @@ function Popover({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
3386
3678
|
defaultValue: defaultOpen,
|
|
3387
3679
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
3388
3680
|
});
|
|
3389
|
-
const anchorRef =
|
|
3390
|
-
return /* @__PURE__ */
|
|
3681
|
+
const anchorRef = React49.useRef(null);
|
|
3682
|
+
return /* @__PURE__ */ jsx40(PopoverContext.Provider, { value: { open: isOpen, setOpen, anchorRef }, children });
|
|
3391
3683
|
}
|
|
3392
3684
|
function PopoverTrigger({ asChild = false, onClick, ...props }) {
|
|
3393
3685
|
const { open, setOpen, anchorRef } = usePopover();
|
|
3394
3686
|
const Comp = asChild ? Slot : "button";
|
|
3395
|
-
return /* @__PURE__ */
|
|
3687
|
+
return /* @__PURE__ */ jsx40(
|
|
3396
3688
|
Comp,
|
|
3397
3689
|
{
|
|
3398
3690
|
"data-slot": "popover-trigger",
|
|
@@ -3409,7 +3701,7 @@ function PopoverTrigger({ asChild = false, onClick, ...props }) {
|
|
|
3409
3701
|
function PopoverAnchor({ asChild = false, ...props }) {
|
|
3410
3702
|
const { anchorRef } = usePopover();
|
|
3411
3703
|
const Comp = asChild ? Slot : "div";
|
|
3412
|
-
return /* @__PURE__ */
|
|
3704
|
+
return /* @__PURE__ */ jsx40(
|
|
3413
3705
|
Comp,
|
|
3414
3706
|
{
|
|
3415
3707
|
"data-slot": "popover-anchor",
|
|
@@ -3441,7 +3733,7 @@ function PopoverContent({
|
|
|
3441
3733
|
exclude: [anchorRef]
|
|
3442
3734
|
});
|
|
3443
3735
|
if (!isPresent) return null;
|
|
3444
|
-
return /* @__PURE__ */
|
|
3736
|
+
return /* @__PURE__ */ jsx40(Portal, { children: /* @__PURE__ */ jsx40(
|
|
3445
3737
|
"div",
|
|
3446
3738
|
{
|
|
3447
3739
|
"data-slot": "popover-content",
|
|
@@ -3461,16 +3753,16 @@ function PopoverContent({
|
|
|
3461
3753
|
}
|
|
3462
3754
|
|
|
3463
3755
|
// src/components/hover-card.tsx
|
|
3464
|
-
import * as
|
|
3756
|
+
import * as React50 from "react";
|
|
3465
3757
|
|
|
3466
3758
|
// src/generated/hover-card.ts
|
|
3467
3759
|
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
3760
|
|
|
3469
3761
|
// src/components/hover-card.tsx
|
|
3470
|
-
import { jsx as
|
|
3471
|
-
var HoverCardContext =
|
|
3762
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
3763
|
+
var HoverCardContext = React50.createContext(null);
|
|
3472
3764
|
function useHoverCard() {
|
|
3473
|
-
const ctx =
|
|
3765
|
+
const ctx = React50.useContext(HoverCardContext);
|
|
3474
3766
|
if (!ctx) throw new Error("HoverCard parts must be used within <HoverCard>");
|
|
3475
3767
|
return ctx;
|
|
3476
3768
|
}
|
|
@@ -3480,8 +3772,8 @@ function HoverCard({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
3480
3772
|
defaultValue: defaultOpen,
|
|
3481
3773
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
3482
3774
|
});
|
|
3483
|
-
const anchorRef =
|
|
3484
|
-
return /* @__PURE__ */
|
|
3775
|
+
const anchorRef = React50.useRef(null);
|
|
3776
|
+
return /* @__PURE__ */ jsx41(HoverCardContext.Provider, { value: { open: isOpen, setOpen, anchorRef }, children });
|
|
3485
3777
|
}
|
|
3486
3778
|
function HoverCardTrigger({
|
|
3487
3779
|
asChild = false,
|
|
@@ -3491,7 +3783,7 @@ function HoverCardTrigger({
|
|
|
3491
3783
|
}) {
|
|
3492
3784
|
const { setOpen, anchorRef } = useHoverCard();
|
|
3493
3785
|
const Comp = asChild ? Slot : "a";
|
|
3494
|
-
return /* @__PURE__ */
|
|
3786
|
+
return /* @__PURE__ */ jsx41(
|
|
3495
3787
|
Comp,
|
|
3496
3788
|
{
|
|
3497
3789
|
"data-slot": "hover-card-trigger",
|
|
@@ -3526,7 +3818,7 @@ function HoverCardContent({
|
|
|
3526
3818
|
offset: sideOffset
|
|
3527
3819
|
});
|
|
3528
3820
|
if (!isPresent) return null;
|
|
3529
|
-
return /* @__PURE__ */
|
|
3821
|
+
return /* @__PURE__ */ jsx41(Portal, { children: /* @__PURE__ */ jsx41(
|
|
3530
3822
|
"div",
|
|
3531
3823
|
{
|
|
3532
3824
|
"data-slot": "hover-card-content",
|
|
@@ -3543,7 +3835,7 @@ function HoverCardContent({
|
|
|
3543
3835
|
}
|
|
3544
3836
|
|
|
3545
3837
|
// src/components/dropdown-menu.tsx
|
|
3546
|
-
import * as
|
|
3838
|
+
import * as React51 from "react";
|
|
3547
3839
|
|
|
3548
3840
|
// src/generated/dropdown-menu.ts
|
|
3549
3841
|
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 +3849,12 @@ var DROPDOWN_MENU_SEPARATOR = "bg-border -mx-1 my-1 h-px";
|
|
|
3557
3849
|
var DROPDOWN_MENU_SHORTCUT = "text-muted-foreground ml-auto text-xs tracking-widest";
|
|
3558
3850
|
|
|
3559
3851
|
// src/components/dropdown-menu.tsx
|
|
3560
|
-
import { jsx as
|
|
3561
|
-
var DropdownMenuContext =
|
|
3852
|
+
import { jsx as jsx42, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
3853
|
+
var DropdownMenuContext = React51.createContext(
|
|
3562
3854
|
null
|
|
3563
3855
|
);
|
|
3564
3856
|
function useDropdownMenu() {
|
|
3565
|
-
const ctx =
|
|
3857
|
+
const ctx = React51.useContext(DropdownMenuContext);
|
|
3566
3858
|
if (!ctx) throw new Error("DropdownMenu parts must be used within <DropdownMenu>");
|
|
3567
3859
|
return ctx;
|
|
3568
3860
|
}
|
|
@@ -3572,16 +3864,16 @@ function DropdownMenu({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
3572
3864
|
defaultValue: defaultOpen,
|
|
3573
3865
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
3574
3866
|
});
|
|
3575
|
-
const anchorRef =
|
|
3576
|
-
return /* @__PURE__ */
|
|
3867
|
+
const anchorRef = React51.useRef(null);
|
|
3868
|
+
return /* @__PURE__ */ jsx42(DropdownMenuContext.Provider, { value: { open: isOpen, setOpen, anchorRef }, children: /* @__PURE__ */ jsx42("div", { "data-slot": "dropdown-menu", children }) });
|
|
3577
3869
|
}
|
|
3578
3870
|
function DropdownMenuPortal({ children }) {
|
|
3579
|
-
return /* @__PURE__ */
|
|
3871
|
+
return /* @__PURE__ */ jsx42(Portal, { children });
|
|
3580
3872
|
}
|
|
3581
3873
|
function DropdownMenuTrigger({ asChild = false, onClick, ...props }) {
|
|
3582
3874
|
const { open, setOpen, anchorRef } = useDropdownMenu();
|
|
3583
3875
|
const Comp = asChild ? Slot : "button";
|
|
3584
|
-
return /* @__PURE__ */
|
|
3876
|
+
return /* @__PURE__ */ jsx42(
|
|
3585
3877
|
Comp,
|
|
3586
3878
|
{
|
|
3587
3879
|
"data-slot": "dropdown-menu-trigger",
|
|
@@ -3617,7 +3909,7 @@ function DropdownMenuContent({
|
|
|
3617
3909
|
onDismiss: () => setOpen(false),
|
|
3618
3910
|
exclude: [anchorRef]
|
|
3619
3911
|
});
|
|
3620
|
-
const contentRef =
|
|
3912
|
+
const contentRef = React51.useRef(null);
|
|
3621
3913
|
const items = () => Array.from(
|
|
3622
3914
|
contentRef.current?.querySelectorAll("[role^='menuitem']") ?? []
|
|
3623
3915
|
).filter((el) => el.getAttribute("data-disabled") === null);
|
|
@@ -3626,13 +3918,13 @@ function DropdownMenuContent({
|
|
|
3626
3918
|
orientation: "vertical",
|
|
3627
3919
|
loop: true
|
|
3628
3920
|
});
|
|
3629
|
-
|
|
3921
|
+
React51.useEffect(() => {
|
|
3630
3922
|
if (!open) return;
|
|
3631
3923
|
items()[activeIndex]?.focus();
|
|
3632
3924
|
}, [open, activeIndex]);
|
|
3633
|
-
const close =
|
|
3925
|
+
const close = React51.useCallback(() => setOpen(false), [setOpen]);
|
|
3634
3926
|
if (!isPresent) return null;
|
|
3635
|
-
return /* @__PURE__ */
|
|
3927
|
+
return /* @__PURE__ */ jsx42(Portal, { children: /* @__PURE__ */ jsx42(DropdownMenuCloseContext.Provider, { value: close, children: /* @__PURE__ */ jsx42(
|
|
3636
3928
|
"div",
|
|
3637
3929
|
{
|
|
3638
3930
|
"data-slot": "dropdown-menu-content",
|
|
@@ -3655,10 +3947,10 @@ function DropdownMenuContent({
|
|
|
3655
3947
|
}
|
|
3656
3948
|
) }) });
|
|
3657
3949
|
}
|
|
3658
|
-
var DropdownMenuCloseContext =
|
|
3950
|
+
var DropdownMenuCloseContext = React51.createContext(() => {
|
|
3659
3951
|
});
|
|
3660
3952
|
function DropdownMenuGroup({ className, ...props }) {
|
|
3661
|
-
return /* @__PURE__ */
|
|
3953
|
+
return /* @__PURE__ */ jsx42("div", { "data-slot": "dropdown-menu-group", role: "group", className, ...props });
|
|
3662
3954
|
}
|
|
3663
3955
|
function DropdownMenuItem({
|
|
3664
3956
|
className,
|
|
@@ -3669,8 +3961,8 @@ function DropdownMenuItem({
|
|
|
3669
3961
|
onKeyDown,
|
|
3670
3962
|
...props
|
|
3671
3963
|
}) {
|
|
3672
|
-
const close =
|
|
3673
|
-
return /* @__PURE__ */
|
|
3964
|
+
const close = React51.useContext(DropdownMenuCloseContext);
|
|
3965
|
+
return /* @__PURE__ */ jsx42(
|
|
3674
3966
|
"div",
|
|
3675
3967
|
{
|
|
3676
3968
|
"data-slot": "dropdown-menu-item",
|
|
@@ -3707,8 +3999,8 @@ function DropdownMenuCheckboxItem({
|
|
|
3707
3999
|
onClick,
|
|
3708
4000
|
...props
|
|
3709
4001
|
}) {
|
|
3710
|
-
const close =
|
|
3711
|
-
return /* @__PURE__ */
|
|
4002
|
+
const close = React51.useContext(DropdownMenuCloseContext);
|
|
4003
|
+
return /* @__PURE__ */ jsxs12(
|
|
3712
4004
|
"div",
|
|
3713
4005
|
{
|
|
3714
4006
|
"data-slot": "dropdown-menu-checkbox-item",
|
|
@@ -3728,13 +4020,13 @@ function DropdownMenuCheckboxItem({
|
|
|
3728
4020
|
},
|
|
3729
4021
|
...props,
|
|
3730
4022
|
children: [
|
|
3731
|
-
/* @__PURE__ */
|
|
4023
|
+
/* @__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
4024
|
children
|
|
3733
4025
|
]
|
|
3734
4026
|
}
|
|
3735
4027
|
);
|
|
3736
4028
|
}
|
|
3737
|
-
var DropdownMenuRadioGroupContext =
|
|
4029
|
+
var DropdownMenuRadioGroupContext = React51.createContext(null);
|
|
3738
4030
|
function DropdownMenuRadioGroup({
|
|
3739
4031
|
className,
|
|
3740
4032
|
value,
|
|
@@ -3742,11 +4034,11 @@ function DropdownMenuRadioGroup({
|
|
|
3742
4034
|
children,
|
|
3743
4035
|
...props
|
|
3744
4036
|
}) {
|
|
3745
|
-
const ctx =
|
|
4037
|
+
const ctx = React51.useMemo(
|
|
3746
4038
|
() => ({ value, setValue: (next) => onValueChange?.(next) }),
|
|
3747
4039
|
[value, onValueChange]
|
|
3748
4040
|
);
|
|
3749
|
-
return /* @__PURE__ */
|
|
4041
|
+
return /* @__PURE__ */ jsx42(DropdownMenuRadioGroupContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx42("div", { "data-slot": "dropdown-menu-radio-group", role: "group", className, ...props, children }) });
|
|
3750
4042
|
}
|
|
3751
4043
|
function DropdownMenuRadioItem({
|
|
3752
4044
|
className,
|
|
@@ -3756,10 +4048,10 @@ function DropdownMenuRadioItem({
|
|
|
3756
4048
|
onClick,
|
|
3757
4049
|
...props
|
|
3758
4050
|
}) {
|
|
3759
|
-
const close =
|
|
3760
|
-
const group =
|
|
4051
|
+
const close = React51.useContext(DropdownMenuCloseContext);
|
|
4052
|
+
const group = React51.useContext(DropdownMenuRadioGroupContext);
|
|
3761
4053
|
const checked = group?.value === value;
|
|
3762
|
-
return /* @__PURE__ */
|
|
4054
|
+
return /* @__PURE__ */ jsxs12(
|
|
3763
4055
|
"div",
|
|
3764
4056
|
{
|
|
3765
4057
|
"data-slot": "dropdown-menu-radio-item",
|
|
@@ -3780,14 +4072,14 @@ function DropdownMenuRadioItem({
|
|
|
3780
4072
|
},
|
|
3781
4073
|
...props,
|
|
3782
4074
|
children: [
|
|
3783
|
-
/* @__PURE__ */
|
|
4075
|
+
/* @__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
4076
|
children
|
|
3785
4077
|
]
|
|
3786
4078
|
}
|
|
3787
4079
|
);
|
|
3788
4080
|
}
|
|
3789
4081
|
function DropdownMenuLabel({ className, inset, ...props }) {
|
|
3790
|
-
return /* @__PURE__ */
|
|
4082
|
+
return /* @__PURE__ */ jsx42(
|
|
3791
4083
|
"div",
|
|
3792
4084
|
{
|
|
3793
4085
|
"data-slot": "dropdown-menu-label",
|
|
@@ -3798,7 +4090,7 @@ function DropdownMenuLabel({ className, inset, ...props }) {
|
|
|
3798
4090
|
);
|
|
3799
4091
|
}
|
|
3800
4092
|
function DropdownMenuSeparator({ className, ...props }) {
|
|
3801
|
-
return /* @__PURE__ */
|
|
4093
|
+
return /* @__PURE__ */ jsx42(
|
|
3802
4094
|
"div",
|
|
3803
4095
|
{
|
|
3804
4096
|
"data-slot": "dropdown-menu-separator",
|
|
@@ -3809,7 +4101,7 @@ function DropdownMenuSeparator({ className, ...props }) {
|
|
|
3809
4101
|
);
|
|
3810
4102
|
}
|
|
3811
4103
|
function DropdownMenuShortcut({ className, ...props }) {
|
|
3812
|
-
return /* @__PURE__ */
|
|
4104
|
+
return /* @__PURE__ */ jsx42(
|
|
3813
4105
|
"span",
|
|
3814
4106
|
{
|
|
3815
4107
|
"data-slot": "dropdown-menu-shortcut",
|
|
@@ -3818,18 +4110,18 @@ function DropdownMenuShortcut({ className, ...props }) {
|
|
|
3818
4110
|
}
|
|
3819
4111
|
);
|
|
3820
4112
|
}
|
|
3821
|
-
var DropdownMenuSubContext =
|
|
4113
|
+
var DropdownMenuSubContext = React51.createContext(null);
|
|
3822
4114
|
function DropdownMenuSub({ open, defaultOpen = false, onOpenChange, children }) {
|
|
3823
4115
|
const [isOpen, setOpen] = useControllableState({
|
|
3824
4116
|
...open !== void 0 ? { value: open } : {},
|
|
3825
4117
|
defaultValue: defaultOpen,
|
|
3826
4118
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
3827
4119
|
});
|
|
3828
|
-
return /* @__PURE__ */
|
|
4120
|
+
return /* @__PURE__ */ jsx42(DropdownMenuSubContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx42("div", { "data-slot": "dropdown-menu-sub", children }) });
|
|
3829
4121
|
}
|
|
3830
4122
|
function DropdownMenuSubTrigger({ className, inset, children, onClick, ...props }) {
|
|
3831
|
-
const ctx =
|
|
3832
|
-
return /* @__PURE__ */
|
|
4123
|
+
const ctx = React51.useContext(DropdownMenuSubContext);
|
|
4124
|
+
return /* @__PURE__ */ jsxs12(
|
|
3833
4125
|
"div",
|
|
3834
4126
|
{
|
|
3835
4127
|
"data-slot": "dropdown-menu-sub-trigger",
|
|
@@ -3850,15 +4142,15 @@ function DropdownMenuSubTrigger({ className, inset, children, onClick, ...props
|
|
|
3850
4142
|
...props,
|
|
3851
4143
|
children: [
|
|
3852
4144
|
children,
|
|
3853
|
-
/* @__PURE__ */
|
|
4145
|
+
/* @__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
4146
|
]
|
|
3855
4147
|
}
|
|
3856
4148
|
);
|
|
3857
4149
|
}
|
|
3858
4150
|
function DropdownMenuSubContent({ className, children, ...props }) {
|
|
3859
|
-
const ctx =
|
|
4151
|
+
const ctx = React51.useContext(DropdownMenuSubContext);
|
|
3860
4152
|
if (!ctx?.open) return null;
|
|
3861
|
-
return /* @__PURE__ */
|
|
4153
|
+
return /* @__PURE__ */ jsx42(
|
|
3862
4154
|
"div",
|
|
3863
4155
|
{
|
|
3864
4156
|
"data-slot": "dropdown-menu-sub-content",
|
|
@@ -3875,7 +4167,7 @@ function DropdownMenuSubContent({ className, children, ...props }) {
|
|
|
3875
4167
|
}
|
|
3876
4168
|
|
|
3877
4169
|
// src/components/context-menu.tsx
|
|
3878
|
-
import * as
|
|
4170
|
+
import * as React52 from "react";
|
|
3879
4171
|
|
|
3880
4172
|
// src/generated/context-menu.ts
|
|
3881
4173
|
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 +4180,10 @@ var CONTEXT_MENU_SEPARATOR = "bg-border -mx-1 my-1 h-px";
|
|
|
3888
4180
|
var CONTEXT_MENU_SHORTCUT = "text-muted-foreground ml-auto text-xs tracking-widest";
|
|
3889
4181
|
|
|
3890
4182
|
// src/components/context-menu.tsx
|
|
3891
|
-
import { jsx as
|
|
3892
|
-
var ContextMenuContext =
|
|
4183
|
+
import { jsx as jsx43, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
4184
|
+
var ContextMenuContext = React52.createContext(null);
|
|
3893
4185
|
function useContextMenu() {
|
|
3894
|
-
const ctx =
|
|
4186
|
+
const ctx = React52.useContext(ContextMenuContext);
|
|
3895
4187
|
if (!ctx) throw new Error("ContextMenu parts must be used within <ContextMenu>");
|
|
3896
4188
|
return ctx;
|
|
3897
4189
|
}
|
|
@@ -3901,16 +4193,16 @@ function ContextMenu({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
3901
4193
|
defaultValue: defaultOpen,
|
|
3902
4194
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
3903
4195
|
});
|
|
3904
|
-
const [point, setPoint] =
|
|
3905
|
-
return /* @__PURE__ */
|
|
4196
|
+
const [point, setPoint] = React52.useState({ x: 0, y: 0 });
|
|
4197
|
+
return /* @__PURE__ */ jsx43(ContextMenuContext.Provider, { value: { open: isOpen, setOpen, point, setPoint }, children: /* @__PURE__ */ jsx43("div", { "data-slot": "context-menu", children }) });
|
|
3906
4198
|
}
|
|
3907
4199
|
function ContextMenuPortal({ children }) {
|
|
3908
|
-
return /* @__PURE__ */
|
|
4200
|
+
return /* @__PURE__ */ jsx43(Portal, { children });
|
|
3909
4201
|
}
|
|
3910
4202
|
function ContextMenuTrigger({ asChild = false, onContextMenu, ...props }) {
|
|
3911
4203
|
const { setOpen, setPoint } = useContextMenu();
|
|
3912
4204
|
const Comp = asChild ? Slot : "div";
|
|
3913
|
-
return /* @__PURE__ */
|
|
4205
|
+
return /* @__PURE__ */ jsx43(
|
|
3914
4206
|
Comp,
|
|
3915
4207
|
{
|
|
3916
4208
|
"data-slot": "context-menu-trigger",
|
|
@@ -3925,9 +4217,9 @@ function ContextMenuTrigger({ asChild = false, onContextMenu, ...props }) {
|
|
|
3925
4217
|
);
|
|
3926
4218
|
}
|
|
3927
4219
|
function ContextMenuGroup({ className, ...props }) {
|
|
3928
|
-
return /* @__PURE__ */
|
|
4220
|
+
return /* @__PURE__ */ jsx43("div", { "data-slot": "context-menu-group", role: "group", className, ...props });
|
|
3929
4221
|
}
|
|
3930
|
-
var ContextMenuCloseContext =
|
|
4222
|
+
var ContextMenuCloseContext = React52.createContext(() => {
|
|
3931
4223
|
});
|
|
3932
4224
|
function ContextMenuContent({ className, children, ...props }) {
|
|
3933
4225
|
const { open, setOpen, point } = useContextMenu();
|
|
@@ -3936,7 +4228,7 @@ function ContextMenuContent({ className, children, ...props }) {
|
|
|
3936
4228
|
enabled: open,
|
|
3937
4229
|
onDismiss: () => setOpen(false)
|
|
3938
4230
|
});
|
|
3939
|
-
const contentRef =
|
|
4231
|
+
const contentRef = React52.useRef(null);
|
|
3940
4232
|
const items = () => Array.from(
|
|
3941
4233
|
contentRef.current?.querySelectorAll("[role^='menuitem']") ?? []
|
|
3942
4234
|
).filter((el) => el.getAttribute("data-disabled") === null);
|
|
@@ -3945,13 +4237,13 @@ function ContextMenuContent({ className, children, ...props }) {
|
|
|
3945
4237
|
orientation: "vertical",
|
|
3946
4238
|
loop: true
|
|
3947
4239
|
});
|
|
3948
|
-
|
|
4240
|
+
React52.useEffect(() => {
|
|
3949
4241
|
if (!open) return;
|
|
3950
4242
|
items()[activeIndex]?.focus();
|
|
3951
4243
|
}, [open, activeIndex]);
|
|
3952
|
-
const close =
|
|
4244
|
+
const close = React52.useCallback(() => setOpen(false), [setOpen]);
|
|
3953
4245
|
if (!isPresent) return null;
|
|
3954
|
-
return /* @__PURE__ */
|
|
4246
|
+
return /* @__PURE__ */ jsx43(Portal, { children: /* @__PURE__ */ jsx43(ContextMenuCloseContext.Provider, { value: close, children: /* @__PURE__ */ jsx43(
|
|
3955
4247
|
"div",
|
|
3956
4248
|
{
|
|
3957
4249
|
"data-slot": "context-menu-content",
|
|
@@ -3983,8 +4275,8 @@ function ContextMenuItem({
|
|
|
3983
4275
|
onKeyDown,
|
|
3984
4276
|
...props
|
|
3985
4277
|
}) {
|
|
3986
|
-
const close =
|
|
3987
|
-
return /* @__PURE__ */
|
|
4278
|
+
const close = React52.useContext(ContextMenuCloseContext);
|
|
4279
|
+
return /* @__PURE__ */ jsx43(
|
|
3988
4280
|
"div",
|
|
3989
4281
|
{
|
|
3990
4282
|
"data-slot": "context-menu-item",
|
|
@@ -4021,8 +4313,8 @@ function ContextMenuCheckboxItem({
|
|
|
4021
4313
|
onClick,
|
|
4022
4314
|
...props
|
|
4023
4315
|
}) {
|
|
4024
|
-
const close =
|
|
4025
|
-
return /* @__PURE__ */
|
|
4316
|
+
const close = React52.useContext(ContextMenuCloseContext);
|
|
4317
|
+
return /* @__PURE__ */ jsxs13(
|
|
4026
4318
|
"div",
|
|
4027
4319
|
{
|
|
4028
4320
|
"data-slot": "context-menu-checkbox-item",
|
|
@@ -4042,13 +4334,13 @@ function ContextMenuCheckboxItem({
|
|
|
4042
4334
|
},
|
|
4043
4335
|
...props,
|
|
4044
4336
|
children: [
|
|
4045
|
-
/* @__PURE__ */
|
|
4337
|
+
/* @__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
4338
|
children
|
|
4047
4339
|
]
|
|
4048
4340
|
}
|
|
4049
4341
|
);
|
|
4050
4342
|
}
|
|
4051
|
-
var ContextMenuRadioGroupContext =
|
|
4343
|
+
var ContextMenuRadioGroupContext = React52.createContext(null);
|
|
4052
4344
|
function ContextMenuRadioGroup({
|
|
4053
4345
|
className,
|
|
4054
4346
|
value,
|
|
@@ -4056,11 +4348,11 @@ function ContextMenuRadioGroup({
|
|
|
4056
4348
|
children,
|
|
4057
4349
|
...props
|
|
4058
4350
|
}) {
|
|
4059
|
-
const ctx =
|
|
4351
|
+
const ctx = React52.useMemo(
|
|
4060
4352
|
() => ({ value, setValue: (next) => onValueChange?.(next) }),
|
|
4061
4353
|
[value, onValueChange]
|
|
4062
4354
|
);
|
|
4063
|
-
return /* @__PURE__ */
|
|
4355
|
+
return /* @__PURE__ */ jsx43(ContextMenuRadioGroupContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx43("div", { "data-slot": "context-menu-radio-group", role: "group", className, ...props, children }) });
|
|
4064
4356
|
}
|
|
4065
4357
|
function ContextMenuRadioItem({
|
|
4066
4358
|
className,
|
|
@@ -4070,10 +4362,10 @@ function ContextMenuRadioItem({
|
|
|
4070
4362
|
onClick,
|
|
4071
4363
|
...props
|
|
4072
4364
|
}) {
|
|
4073
|
-
const close =
|
|
4074
|
-
const group =
|
|
4365
|
+
const close = React52.useContext(ContextMenuCloseContext);
|
|
4366
|
+
const group = React52.useContext(ContextMenuRadioGroupContext);
|
|
4075
4367
|
const checked = group?.value === value;
|
|
4076
|
-
return /* @__PURE__ */
|
|
4368
|
+
return /* @__PURE__ */ jsxs13(
|
|
4077
4369
|
"div",
|
|
4078
4370
|
{
|
|
4079
4371
|
"data-slot": "context-menu-radio-item",
|
|
@@ -4094,14 +4386,14 @@ function ContextMenuRadioItem({
|
|
|
4094
4386
|
},
|
|
4095
4387
|
...props,
|
|
4096
4388
|
children: [
|
|
4097
|
-
/* @__PURE__ */
|
|
4389
|
+
/* @__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
4390
|
children
|
|
4099
4391
|
]
|
|
4100
4392
|
}
|
|
4101
4393
|
);
|
|
4102
4394
|
}
|
|
4103
4395
|
function ContextMenuLabel({ className, inset, ...props }) {
|
|
4104
|
-
return /* @__PURE__ */
|
|
4396
|
+
return /* @__PURE__ */ jsx43(
|
|
4105
4397
|
"div",
|
|
4106
4398
|
{
|
|
4107
4399
|
"data-slot": "context-menu-label",
|
|
@@ -4112,7 +4404,7 @@ function ContextMenuLabel({ className, inset, ...props }) {
|
|
|
4112
4404
|
);
|
|
4113
4405
|
}
|
|
4114
4406
|
function ContextMenuSeparator({ className, ...props }) {
|
|
4115
|
-
return /* @__PURE__ */
|
|
4407
|
+
return /* @__PURE__ */ jsx43(
|
|
4116
4408
|
"div",
|
|
4117
4409
|
{
|
|
4118
4410
|
"data-slot": "context-menu-separator",
|
|
@@ -4123,7 +4415,7 @@ function ContextMenuSeparator({ className, ...props }) {
|
|
|
4123
4415
|
);
|
|
4124
4416
|
}
|
|
4125
4417
|
function ContextMenuShortcut({ className, ...props }) {
|
|
4126
|
-
return /* @__PURE__ */
|
|
4418
|
+
return /* @__PURE__ */ jsx43(
|
|
4127
4419
|
"span",
|
|
4128
4420
|
{
|
|
4129
4421
|
"data-slot": "context-menu-shortcut",
|
|
@@ -4132,18 +4424,18 @@ function ContextMenuShortcut({ className, ...props }) {
|
|
|
4132
4424
|
}
|
|
4133
4425
|
);
|
|
4134
4426
|
}
|
|
4135
|
-
var ContextMenuSubContext =
|
|
4427
|
+
var ContextMenuSubContext = React52.createContext(null);
|
|
4136
4428
|
function ContextMenuSub({ open, defaultOpen = false, onOpenChange, children }) {
|
|
4137
4429
|
const [isOpen, setOpen] = useControllableState({
|
|
4138
4430
|
...open !== void 0 ? { value: open } : {},
|
|
4139
4431
|
defaultValue: defaultOpen,
|
|
4140
4432
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
4141
4433
|
});
|
|
4142
|
-
return /* @__PURE__ */
|
|
4434
|
+
return /* @__PURE__ */ jsx43(ContextMenuSubContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx43("div", { "data-slot": "context-menu-sub", children }) });
|
|
4143
4435
|
}
|
|
4144
4436
|
function ContextMenuSubTrigger({ className, inset, children, onClick, ...props }) {
|
|
4145
|
-
const ctx =
|
|
4146
|
-
return /* @__PURE__ */
|
|
4437
|
+
const ctx = React52.useContext(ContextMenuSubContext);
|
|
4438
|
+
return /* @__PURE__ */ jsxs13(
|
|
4147
4439
|
"div",
|
|
4148
4440
|
{
|
|
4149
4441
|
"data-slot": "context-menu-sub-trigger",
|
|
@@ -4164,15 +4456,15 @@ function ContextMenuSubTrigger({ className, inset, children, onClick, ...props }
|
|
|
4164
4456
|
...props,
|
|
4165
4457
|
children: [
|
|
4166
4458
|
children,
|
|
4167
|
-
/* @__PURE__ */
|
|
4459
|
+
/* @__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
4460
|
]
|
|
4169
4461
|
}
|
|
4170
4462
|
);
|
|
4171
4463
|
}
|
|
4172
4464
|
function ContextMenuSubContent({ className, children, ...props }) {
|
|
4173
|
-
const ctx =
|
|
4465
|
+
const ctx = React52.useContext(ContextMenuSubContext);
|
|
4174
4466
|
if (!ctx?.open) return null;
|
|
4175
|
-
return /* @__PURE__ */
|
|
4467
|
+
return /* @__PURE__ */ jsx43(
|
|
4176
4468
|
"div",
|
|
4177
4469
|
{
|
|
4178
4470
|
"data-slot": "context-menu-sub-content",
|
|
@@ -4189,7 +4481,7 @@ function ContextMenuSubContent({ className, children, ...props }) {
|
|
|
4189
4481
|
}
|
|
4190
4482
|
|
|
4191
4483
|
// src/components/menubar.tsx
|
|
4192
|
-
import * as
|
|
4484
|
+
import * as React53 from "react";
|
|
4193
4485
|
|
|
4194
4486
|
// src/generated/menubar.ts
|
|
4195
4487
|
var MENUBAR_ROOT = "bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs";
|
|
@@ -4206,16 +4498,16 @@ var MENUBAR_SUB_TRIGGER = "focus:bg-accent focus:text-accent-foreground data-[st
|
|
|
4206
4498
|
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
4499
|
|
|
4208
4500
|
// src/components/menubar.tsx
|
|
4209
|
-
import { jsx as
|
|
4210
|
-
var MenubarMenuContext =
|
|
4501
|
+
import { jsx as jsx44, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
4502
|
+
var MenubarMenuContext = React53.createContext(null);
|
|
4211
4503
|
function useMenu() {
|
|
4212
|
-
const ctx =
|
|
4504
|
+
const ctx = React53.useContext(MenubarMenuContext);
|
|
4213
4505
|
if (!ctx) throw new Error("Menubar parts must be used within <MenubarMenu>");
|
|
4214
4506
|
return ctx;
|
|
4215
4507
|
}
|
|
4216
|
-
var MenubarRadioGroupContext =
|
|
4508
|
+
var MenubarRadioGroupContext = React53.createContext(null);
|
|
4217
4509
|
function Menubar({ className, ...props }) {
|
|
4218
|
-
return /* @__PURE__ */
|
|
4510
|
+
return /* @__PURE__ */ jsx44(
|
|
4219
4511
|
"div",
|
|
4220
4512
|
{
|
|
4221
4513
|
"data-slot": "menubar",
|
|
@@ -4231,12 +4523,12 @@ function MenubarMenu({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
4231
4523
|
defaultValue: defaultOpen,
|
|
4232
4524
|
onChange: onOpenChange
|
|
4233
4525
|
});
|
|
4234
|
-
const triggerRef =
|
|
4235
|
-
return /* @__PURE__ */
|
|
4526
|
+
const triggerRef = React53.useRef(null);
|
|
4527
|
+
return /* @__PURE__ */ jsx44(MenubarMenuContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children: /* @__PURE__ */ jsx44("div", { "data-slot": "menubar-menu", className: "relative", children }) });
|
|
4236
4528
|
}
|
|
4237
4529
|
function MenubarTrigger({ className, onClick, ...props }) {
|
|
4238
4530
|
const { open, setOpen, triggerRef } = useMenu();
|
|
4239
|
-
return /* @__PURE__ */
|
|
4531
|
+
return /* @__PURE__ */ jsx44(
|
|
4240
4532
|
"button",
|
|
4241
4533
|
{
|
|
4242
4534
|
ref: triggerRef,
|
|
@@ -4272,10 +4564,10 @@ function MenubarContent({
|
|
|
4272
4564
|
onDismiss: () => setOpen(false),
|
|
4273
4565
|
exclude: [triggerRef]
|
|
4274
4566
|
});
|
|
4275
|
-
const items =
|
|
4567
|
+
const items = React53.Children.toArray(children);
|
|
4276
4568
|
const { onKeyDown } = useRovingFocus({ count: items.length, orientation: "vertical" });
|
|
4277
4569
|
if (!isPresent) return null;
|
|
4278
|
-
return /* @__PURE__ */
|
|
4570
|
+
return /* @__PURE__ */ jsx44(Portal, { children: /* @__PURE__ */ jsx44(
|
|
4279
4571
|
"div",
|
|
4280
4572
|
{
|
|
4281
4573
|
ref: mergeRefs(presenceRef, floatingRef, dismissRef),
|
|
@@ -4292,7 +4584,7 @@ function MenubarContent({
|
|
|
4292
4584
|
) });
|
|
4293
4585
|
}
|
|
4294
4586
|
function MenubarGroup({ className, ...props }) {
|
|
4295
|
-
return /* @__PURE__ */
|
|
4587
|
+
return /* @__PURE__ */ jsx44("div", { "data-slot": "menubar-group", role: "group", className, ...props });
|
|
4296
4588
|
}
|
|
4297
4589
|
function MenubarItem({
|
|
4298
4590
|
className,
|
|
@@ -4300,7 +4592,7 @@ function MenubarItem({
|
|
|
4300
4592
|
variant = "default",
|
|
4301
4593
|
...props
|
|
4302
4594
|
}) {
|
|
4303
|
-
return /* @__PURE__ */
|
|
4595
|
+
return /* @__PURE__ */ jsx44(
|
|
4304
4596
|
"div",
|
|
4305
4597
|
{
|
|
4306
4598
|
"data-slot": "menubar-item",
|
|
@@ -4319,7 +4611,7 @@ function MenubarCheckboxItem({
|
|
|
4319
4611
|
checked,
|
|
4320
4612
|
...props
|
|
4321
4613
|
}) {
|
|
4322
|
-
return /* @__PURE__ */
|
|
4614
|
+
return /* @__PURE__ */ jsxs14(
|
|
4323
4615
|
"div",
|
|
4324
4616
|
{
|
|
4325
4617
|
"data-slot": "menubar-checkbox-item",
|
|
@@ -4329,7 +4621,7 @@ function MenubarCheckboxItem({
|
|
|
4329
4621
|
className: cn(MENUBAR_CHECKBOX_ITEM, className),
|
|
4330
4622
|
...props,
|
|
4331
4623
|
children: [
|
|
4332
|
-
/* @__PURE__ */
|
|
4624
|
+
/* @__PURE__ */ jsx44("span", { className: MENUBAR_ITEM_INDICATOR, children: checked && /* @__PURE__ */ jsx44(
|
|
4333
4625
|
"svg",
|
|
4334
4626
|
{
|
|
4335
4627
|
className: "size-4",
|
|
@@ -4339,7 +4631,7 @@ function MenubarCheckboxItem({
|
|
|
4339
4631
|
strokeWidth: "2",
|
|
4340
4632
|
strokeLinecap: "round",
|
|
4341
4633
|
strokeLinejoin: "round",
|
|
4342
|
-
children: /* @__PURE__ */
|
|
4634
|
+
children: /* @__PURE__ */ jsx44("path", { d: "M20 6 9 17l-5-5" })
|
|
4343
4635
|
}
|
|
4344
4636
|
) }),
|
|
4345
4637
|
children
|
|
@@ -4359,7 +4651,7 @@ function MenubarRadioGroup({
|
|
|
4359
4651
|
defaultValue,
|
|
4360
4652
|
onChange: onValueChange
|
|
4361
4653
|
});
|
|
4362
|
-
return /* @__PURE__ */
|
|
4654
|
+
return /* @__PURE__ */ jsx44(MenubarRadioGroupContext.Provider, { value: { value: current, onValueChange: setValue }, children: /* @__PURE__ */ jsx44("div", { "data-slot": "menubar-radio-group", role: "group", className, children }) });
|
|
4363
4655
|
}
|
|
4364
4656
|
function MenubarRadioItem({
|
|
4365
4657
|
className,
|
|
@@ -4367,9 +4659,9 @@ function MenubarRadioItem({
|
|
|
4367
4659
|
value,
|
|
4368
4660
|
...props
|
|
4369
4661
|
}) {
|
|
4370
|
-
const ctx =
|
|
4662
|
+
const ctx = React53.useContext(MenubarRadioGroupContext);
|
|
4371
4663
|
const checked = ctx?.value === value;
|
|
4372
|
-
return /* @__PURE__ */
|
|
4664
|
+
return /* @__PURE__ */ jsxs14(
|
|
4373
4665
|
"div",
|
|
4374
4666
|
{
|
|
4375
4667
|
"data-slot": "menubar-radio-item",
|
|
@@ -4380,7 +4672,7 @@ function MenubarRadioItem({
|
|
|
4380
4672
|
onClick: () => ctx?.onValueChange(value),
|
|
4381
4673
|
...props,
|
|
4382
4674
|
children: [
|
|
4383
|
-
/* @__PURE__ */
|
|
4675
|
+
/* @__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
4676
|
children
|
|
4385
4677
|
]
|
|
4386
4678
|
}
|
|
@@ -4391,7 +4683,7 @@ function MenubarLabel({
|
|
|
4391
4683
|
inset,
|
|
4392
4684
|
...props
|
|
4393
4685
|
}) {
|
|
4394
|
-
return /* @__PURE__ */
|
|
4686
|
+
return /* @__PURE__ */ jsx44(
|
|
4395
4687
|
"div",
|
|
4396
4688
|
{
|
|
4397
4689
|
"data-slot": "menubar-label",
|
|
@@ -4402,7 +4694,7 @@ function MenubarLabel({
|
|
|
4402
4694
|
);
|
|
4403
4695
|
}
|
|
4404
4696
|
function MenubarSeparator({ className, ...props }) {
|
|
4405
|
-
return /* @__PURE__ */
|
|
4697
|
+
return /* @__PURE__ */ jsx44(
|
|
4406
4698
|
"div",
|
|
4407
4699
|
{
|
|
4408
4700
|
"data-slot": "menubar-separator",
|
|
@@ -4413,7 +4705,7 @@ function MenubarSeparator({ className, ...props }) {
|
|
|
4413
4705
|
);
|
|
4414
4706
|
}
|
|
4415
4707
|
function MenubarShortcut({ className, ...props }) {
|
|
4416
|
-
return /* @__PURE__ */
|
|
4708
|
+
return /* @__PURE__ */ jsx44(
|
|
4417
4709
|
"span",
|
|
4418
4710
|
{
|
|
4419
4711
|
"data-slot": "menubar-shortcut",
|
|
@@ -4422,9 +4714,9 @@ function MenubarShortcut({ className, ...props }) {
|
|
|
4422
4714
|
}
|
|
4423
4715
|
);
|
|
4424
4716
|
}
|
|
4425
|
-
var MenubarSubContext =
|
|
4717
|
+
var MenubarSubContext = React53.createContext(null);
|
|
4426
4718
|
function useSub() {
|
|
4427
|
-
const ctx =
|
|
4719
|
+
const ctx = React53.useContext(MenubarSubContext);
|
|
4428
4720
|
if (!ctx) throw new Error("MenubarSub parts must be used within <MenubarSub>");
|
|
4429
4721
|
return ctx;
|
|
4430
4722
|
}
|
|
@@ -4434,7 +4726,7 @@ function MenubarSub({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
4434
4726
|
defaultValue: defaultOpen,
|
|
4435
4727
|
onChange: onOpenChange
|
|
4436
4728
|
});
|
|
4437
|
-
return /* @__PURE__ */
|
|
4729
|
+
return /* @__PURE__ */ jsx44(MenubarSubContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx44("div", { "data-slot": "menubar-sub", className: "relative", children }) });
|
|
4438
4730
|
}
|
|
4439
4731
|
function MenubarSubTrigger({
|
|
4440
4732
|
className,
|
|
@@ -4444,7 +4736,7 @@ function MenubarSubTrigger({
|
|
|
4444
4736
|
...props
|
|
4445
4737
|
}) {
|
|
4446
4738
|
const { open, setOpen } = useSub();
|
|
4447
|
-
return /* @__PURE__ */
|
|
4739
|
+
return /* @__PURE__ */ jsxs14(
|
|
4448
4740
|
"div",
|
|
4449
4741
|
{
|
|
4450
4742
|
"data-slot": "menubar-sub-trigger",
|
|
@@ -4460,7 +4752,7 @@ function MenubarSubTrigger({
|
|
|
4460
4752
|
...props,
|
|
4461
4753
|
children: [
|
|
4462
4754
|
children,
|
|
4463
|
-
/* @__PURE__ */
|
|
4755
|
+
/* @__PURE__ */ jsx44(
|
|
4464
4756
|
"svg",
|
|
4465
4757
|
{
|
|
4466
4758
|
className: "ml-auto h-4 w-4",
|
|
@@ -4470,7 +4762,7 @@ function MenubarSubTrigger({
|
|
|
4470
4762
|
strokeWidth: "2",
|
|
4471
4763
|
strokeLinecap: "round",
|
|
4472
4764
|
strokeLinejoin: "round",
|
|
4473
|
-
children: /* @__PURE__ */
|
|
4765
|
+
children: /* @__PURE__ */ jsx44("path", { d: "m9 18 6-6-6-6" })
|
|
4474
4766
|
}
|
|
4475
4767
|
)
|
|
4476
4768
|
]
|
|
@@ -4481,7 +4773,7 @@ function MenubarSubContent({ className, children, ...props }) {
|
|
|
4481
4773
|
const { open } = useSub();
|
|
4482
4774
|
const { isPresent, ref } = usePresence(open);
|
|
4483
4775
|
if (!isPresent) return null;
|
|
4484
|
-
return /* @__PURE__ */
|
|
4776
|
+
return /* @__PURE__ */ jsx44(
|
|
4485
4777
|
"div",
|
|
4486
4778
|
{
|
|
4487
4779
|
ref,
|
|
@@ -4496,7 +4788,7 @@ function MenubarSubContent({ className, children, ...props }) {
|
|
|
4496
4788
|
}
|
|
4497
4789
|
|
|
4498
4790
|
// src/components/navigation-menu.tsx
|
|
4499
|
-
import * as
|
|
4791
|
+
import * as React54 from "react";
|
|
4500
4792
|
|
|
4501
4793
|
// src/generated/navigation-menu.ts
|
|
4502
4794
|
var NAVIGATION_MENU = "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center";
|
|
@@ -4509,13 +4801,13 @@ var NAVIGATION_MENU_INDICATOR = "data-[state=visible]:animate-in data-[state=hid
|
|
|
4509
4801
|
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
4802
|
|
|
4511
4803
|
// src/components/navigation-menu.tsx
|
|
4512
|
-
import { jsx as
|
|
4804
|
+
import { jsx as jsx45, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
4513
4805
|
function navigationMenuTriggerStyle() {
|
|
4514
4806
|
return NAVIGATION_MENU_TRIGGER_STYLE;
|
|
4515
4807
|
}
|
|
4516
|
-
var NavigationMenuItemContext =
|
|
4808
|
+
var NavigationMenuItemContext = React54.createContext(null);
|
|
4517
4809
|
function useItem() {
|
|
4518
|
-
const ctx =
|
|
4810
|
+
const ctx = React54.useContext(NavigationMenuItemContext);
|
|
4519
4811
|
if (!ctx) throw new Error("NavigationMenu parts must be used within <NavigationMenuItem>");
|
|
4520
4812
|
return ctx;
|
|
4521
4813
|
}
|
|
@@ -4525,7 +4817,7 @@ function NavigationMenu({
|
|
|
4525
4817
|
viewport = true,
|
|
4526
4818
|
...props
|
|
4527
4819
|
}) {
|
|
4528
|
-
return /* @__PURE__ */
|
|
4820
|
+
return /* @__PURE__ */ jsxs15(
|
|
4529
4821
|
"nav",
|
|
4530
4822
|
{
|
|
4531
4823
|
"data-slot": "navigation-menu",
|
|
@@ -4538,13 +4830,13 @@ function NavigationMenu({
|
|
|
4538
4830
|
...props,
|
|
4539
4831
|
children: [
|
|
4540
4832
|
children,
|
|
4541
|
-
viewport && /* @__PURE__ */
|
|
4833
|
+
viewport && /* @__PURE__ */ jsx45(NavigationMenuViewport, {})
|
|
4542
4834
|
]
|
|
4543
4835
|
}
|
|
4544
4836
|
);
|
|
4545
4837
|
}
|
|
4546
4838
|
function NavigationMenuList({ className, ...props }) {
|
|
4547
|
-
return /* @__PURE__ */
|
|
4839
|
+
return /* @__PURE__ */ jsx45(
|
|
4548
4840
|
"ul",
|
|
4549
4841
|
{
|
|
4550
4842
|
"data-slot": "navigation-menu-list",
|
|
@@ -4570,8 +4862,8 @@ function NavigationMenuItem({
|
|
|
4570
4862
|
defaultValue: defaultOpen,
|
|
4571
4863
|
onChange: onOpenChange
|
|
4572
4864
|
});
|
|
4573
|
-
const triggerRef =
|
|
4574
|
-
return /* @__PURE__ */
|
|
4865
|
+
const triggerRef = React54.useRef(null);
|
|
4866
|
+
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
4867
|
}
|
|
4576
4868
|
function NavigationMenuTrigger({
|
|
4577
4869
|
className,
|
|
@@ -4580,7 +4872,7 @@ function NavigationMenuTrigger({
|
|
|
4580
4872
|
...props
|
|
4581
4873
|
}) {
|
|
4582
4874
|
const { open, setOpen, triggerRef } = useItem();
|
|
4583
|
-
return /* @__PURE__ */
|
|
4875
|
+
return /* @__PURE__ */ jsxs15(
|
|
4584
4876
|
"button",
|
|
4585
4877
|
{
|
|
4586
4878
|
ref: triggerRef,
|
|
@@ -4596,7 +4888,7 @@ function NavigationMenuTrigger({
|
|
|
4596
4888
|
children: [
|
|
4597
4889
|
children,
|
|
4598
4890
|
" ",
|
|
4599
|
-
/* @__PURE__ */
|
|
4891
|
+
/* @__PURE__ */ jsx45(
|
|
4600
4892
|
"svg",
|
|
4601
4893
|
{
|
|
4602
4894
|
className: "relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180",
|
|
@@ -4607,7 +4899,7 @@ function NavigationMenuTrigger({
|
|
|
4607
4899
|
strokeLinecap: "round",
|
|
4608
4900
|
strokeLinejoin: "round",
|
|
4609
4901
|
"aria-hidden": "true",
|
|
4610
|
-
children: /* @__PURE__ */
|
|
4902
|
+
children: /* @__PURE__ */ jsx45("path", { d: "m6 9 6 6 6-6" })
|
|
4611
4903
|
}
|
|
4612
4904
|
)
|
|
4613
4905
|
]
|
|
@@ -4623,7 +4915,7 @@ function NavigationMenuContent({ className, children, ...props }) {
|
|
|
4623
4915
|
exclude: [triggerRef]
|
|
4624
4916
|
});
|
|
4625
4917
|
if (!isPresent) return null;
|
|
4626
|
-
return /* @__PURE__ */
|
|
4918
|
+
return /* @__PURE__ */ jsx45(
|
|
4627
4919
|
"div",
|
|
4628
4920
|
{
|
|
4629
4921
|
ref: mergeRefs(presenceRef, dismissRef),
|
|
@@ -4639,7 +4931,7 @@ function NavigationMenuContent({ className, children, ...props }) {
|
|
|
4639
4931
|
);
|
|
4640
4932
|
}
|
|
4641
4933
|
function NavigationMenuViewport({ className, ...props }) {
|
|
4642
|
-
return /* @__PURE__ */
|
|
4934
|
+
return /* @__PURE__ */ jsx45("div", { className: "absolute top-full left-0 isolate z-50 flex justify-center", children: /* @__PURE__ */ jsx45(
|
|
4643
4935
|
"div",
|
|
4644
4936
|
{
|
|
4645
4937
|
"data-slot": "navigation-menu-viewport",
|
|
@@ -4657,7 +4949,7 @@ function NavigationMenuLink({
|
|
|
4657
4949
|
...props
|
|
4658
4950
|
}) {
|
|
4659
4951
|
const Comp = asChild ? Slot : "a";
|
|
4660
|
-
return /* @__PURE__ */
|
|
4952
|
+
return /* @__PURE__ */ jsx45(
|
|
4661
4953
|
Comp,
|
|
4662
4954
|
{
|
|
4663
4955
|
"data-slot": "navigation-menu-link",
|
|
@@ -4670,7 +4962,7 @@ function NavigationMenuLink({
|
|
|
4670
4962
|
);
|
|
4671
4963
|
}
|
|
4672
4964
|
function NavigationMenuIndicator({ className, ...props }) {
|
|
4673
|
-
return /* @__PURE__ */
|
|
4965
|
+
return /* @__PURE__ */ jsx45(
|
|
4674
4966
|
"div",
|
|
4675
4967
|
{
|
|
4676
4968
|
"data-slot": "navigation-menu-indicator",
|
|
@@ -4679,13 +4971,13 @@ function NavigationMenuIndicator({ className, ...props }) {
|
|
|
4679
4971
|
className
|
|
4680
4972
|
),
|
|
4681
4973
|
...props,
|
|
4682
|
-
children: /* @__PURE__ */
|
|
4974
|
+
children: /* @__PURE__ */ jsx45("div", { className: "bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" })
|
|
4683
4975
|
}
|
|
4684
4976
|
);
|
|
4685
4977
|
}
|
|
4686
4978
|
|
|
4687
4979
|
// src/components/dialog.tsx
|
|
4688
|
-
import * as
|
|
4980
|
+
import * as React55 from "react";
|
|
4689
4981
|
|
|
4690
4982
|
// src/generated/dialog.ts
|
|
4691
4983
|
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 +4989,10 @@ var DIALOG_TITLE = "text-lg leading-none font-semibold";
|
|
|
4697
4989
|
var DIALOG_DESCRIPTION = "text-muted-foreground text-sm";
|
|
4698
4990
|
|
|
4699
4991
|
// src/components/dialog.tsx
|
|
4700
|
-
import { Fragment as
|
|
4701
|
-
var DialogContext =
|
|
4992
|
+
import { Fragment as Fragment5, jsx as jsx46, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
4993
|
+
var DialogContext = React55.createContext(null);
|
|
4702
4994
|
function useDialog() {
|
|
4703
|
-
const ctx =
|
|
4995
|
+
const ctx = React55.useContext(DialogContext);
|
|
4704
4996
|
if (!ctx) throw new Error("Dialog parts must be used within <Dialog>");
|
|
4705
4997
|
return ctx;
|
|
4706
4998
|
}
|
|
@@ -4710,13 +5002,13 @@ function Dialog({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
4710
5002
|
defaultValue: defaultOpen,
|
|
4711
5003
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
4712
5004
|
});
|
|
4713
|
-
const triggerRef =
|
|
4714
|
-
return /* @__PURE__ */
|
|
5005
|
+
const triggerRef = React55.useRef(null);
|
|
5006
|
+
return /* @__PURE__ */ jsx46(DialogContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children });
|
|
4715
5007
|
}
|
|
4716
5008
|
function DialogTrigger({ asChild = false, onClick, ...props }) {
|
|
4717
5009
|
const { open, setOpen, triggerRef } = useDialog();
|
|
4718
5010
|
const Comp = asChild ? Slot : "button";
|
|
4719
|
-
return /* @__PURE__ */
|
|
5011
|
+
return /* @__PURE__ */ jsx46(
|
|
4720
5012
|
Comp,
|
|
4721
5013
|
{
|
|
4722
5014
|
"data-slot": "dialog-trigger",
|
|
@@ -4731,11 +5023,11 @@ function DialogTrigger({ asChild = false, onClick, ...props }) {
|
|
|
4731
5023
|
);
|
|
4732
5024
|
}
|
|
4733
5025
|
function DialogPortal({ children }) {
|
|
4734
|
-
return /* @__PURE__ */
|
|
5026
|
+
return /* @__PURE__ */ jsx46(Fragment5, { children });
|
|
4735
5027
|
}
|
|
4736
5028
|
function DialogOverlay({ className, ...props }) {
|
|
4737
5029
|
const { open, setOpen } = useDialog();
|
|
4738
|
-
return /* @__PURE__ */
|
|
5030
|
+
return /* @__PURE__ */ jsx46(
|
|
4739
5031
|
"div",
|
|
4740
5032
|
{
|
|
4741
5033
|
"data-slot": "dialog-overlay",
|
|
@@ -4746,7 +5038,7 @@ function DialogOverlay({ className, ...props }) {
|
|
|
4746
5038
|
}
|
|
4747
5039
|
);
|
|
4748
5040
|
}
|
|
4749
|
-
var XIcon = (props) => /* @__PURE__ */
|
|
5041
|
+
var XIcon = (props) => /* @__PURE__ */ jsx46(
|
|
4750
5042
|
"svg",
|
|
4751
5043
|
{
|
|
4752
5044
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -4759,7 +5051,7 @@ var XIcon = (props) => /* @__PURE__ */ jsx43(
|
|
|
4759
5051
|
strokeLinecap: "round",
|
|
4760
5052
|
strokeLinejoin: "round",
|
|
4761
5053
|
...props,
|
|
4762
|
-
children: /* @__PURE__ */
|
|
5054
|
+
children: /* @__PURE__ */ jsx46("path", { d: "M18 6 6 18M6 6l12 12" })
|
|
4763
5055
|
}
|
|
4764
5056
|
);
|
|
4765
5057
|
function DialogContent({
|
|
@@ -4776,7 +5068,7 @@ function DialogContent({
|
|
|
4776
5068
|
onDismiss: () => setOpen(false),
|
|
4777
5069
|
exclude: [triggerRef]
|
|
4778
5070
|
});
|
|
4779
|
-
|
|
5071
|
+
React55.useEffect(() => {
|
|
4780
5072
|
if (!open) return;
|
|
4781
5073
|
const prev = document.body.style.overflow;
|
|
4782
5074
|
document.body.style.overflow = "hidden";
|
|
@@ -4785,9 +5077,9 @@ function DialogContent({
|
|
|
4785
5077
|
};
|
|
4786
5078
|
}, [open]);
|
|
4787
5079
|
if (!isPresent) return null;
|
|
4788
|
-
return /* @__PURE__ */
|
|
4789
|
-
/* @__PURE__ */
|
|
4790
|
-
/* @__PURE__ */
|
|
5080
|
+
return /* @__PURE__ */ jsxs16(Portal, { children: [
|
|
5081
|
+
/* @__PURE__ */ jsx46(DialogOverlay, {}),
|
|
5082
|
+
/* @__PURE__ */ jsxs16(
|
|
4791
5083
|
"div",
|
|
4792
5084
|
{
|
|
4793
5085
|
"data-slot": "dialog-content",
|
|
@@ -4799,7 +5091,7 @@ function DialogContent({
|
|
|
4799
5091
|
...props,
|
|
4800
5092
|
children: [
|
|
4801
5093
|
children,
|
|
4802
|
-
showCloseButton && /* @__PURE__ */
|
|
5094
|
+
showCloseButton && /* @__PURE__ */ jsxs16(
|
|
4803
5095
|
"button",
|
|
4804
5096
|
{
|
|
4805
5097
|
type: "button",
|
|
@@ -4807,8 +5099,8 @@ function DialogContent({
|
|
|
4807
5099
|
onClick: () => setOpen(false),
|
|
4808
5100
|
className: DIALOG_CLOSE,
|
|
4809
5101
|
children: [
|
|
4810
|
-
/* @__PURE__ */
|
|
4811
|
-
/* @__PURE__ */
|
|
5102
|
+
/* @__PURE__ */ jsx46(XIcon, {}),
|
|
5103
|
+
/* @__PURE__ */ jsx46("span", { className: "sr-only", children: "Close" })
|
|
4812
5104
|
]
|
|
4813
5105
|
}
|
|
4814
5106
|
)
|
|
@@ -4820,7 +5112,7 @@ function DialogContent({
|
|
|
4820
5112
|
function DialogClose({ asChild = false, onClick, ...props }) {
|
|
4821
5113
|
const { setOpen } = useDialog();
|
|
4822
5114
|
const Comp = asChild ? Slot : "button";
|
|
4823
|
-
return /* @__PURE__ */
|
|
5115
|
+
return /* @__PURE__ */ jsx46(
|
|
4824
5116
|
Comp,
|
|
4825
5117
|
{
|
|
4826
5118
|
"data-slot": "dialog-close",
|
|
@@ -4833,7 +5125,7 @@ function DialogClose({ asChild = false, onClick, ...props }) {
|
|
|
4833
5125
|
);
|
|
4834
5126
|
}
|
|
4835
5127
|
function DialogHeader({ className, ...props }) {
|
|
4836
|
-
return /* @__PURE__ */
|
|
5128
|
+
return /* @__PURE__ */ jsx46(
|
|
4837
5129
|
"div",
|
|
4838
5130
|
{
|
|
4839
5131
|
"data-slot": "dialog-header",
|
|
@@ -4843,7 +5135,7 @@ function DialogHeader({ className, ...props }) {
|
|
|
4843
5135
|
);
|
|
4844
5136
|
}
|
|
4845
5137
|
function DialogFooter({ className, ...props }) {
|
|
4846
|
-
return /* @__PURE__ */
|
|
5138
|
+
return /* @__PURE__ */ jsx46(
|
|
4847
5139
|
"div",
|
|
4848
5140
|
{
|
|
4849
5141
|
"data-slot": "dialog-footer",
|
|
@@ -4853,7 +5145,7 @@ function DialogFooter({ className, ...props }) {
|
|
|
4853
5145
|
);
|
|
4854
5146
|
}
|
|
4855
5147
|
function DialogTitle({ className, ...props }) {
|
|
4856
|
-
return /* @__PURE__ */
|
|
5148
|
+
return /* @__PURE__ */ jsx46(
|
|
4857
5149
|
"h2",
|
|
4858
5150
|
{
|
|
4859
5151
|
"data-slot": "dialog-title",
|
|
@@ -4863,7 +5155,7 @@ function DialogTitle({ className, ...props }) {
|
|
|
4863
5155
|
);
|
|
4864
5156
|
}
|
|
4865
5157
|
function DialogDescription({ className, ...props }) {
|
|
4866
|
-
return /* @__PURE__ */
|
|
5158
|
+
return /* @__PURE__ */ jsx46(
|
|
4867
5159
|
"p",
|
|
4868
5160
|
{
|
|
4869
5161
|
"data-slot": "dialog-description",
|
|
@@ -4874,7 +5166,7 @@ function DialogDescription({ className, ...props }) {
|
|
|
4874
5166
|
}
|
|
4875
5167
|
|
|
4876
5168
|
// src/components/alert-dialog.tsx
|
|
4877
|
-
import * as
|
|
5169
|
+
import * as React56 from "react";
|
|
4878
5170
|
|
|
4879
5171
|
// src/generated/alert-dialog.ts
|
|
4880
5172
|
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 +5177,10 @@ var ALERT_DIALOG_TITLE = "text-lg font-semibold";
|
|
|
4885
5177
|
var ALERT_DIALOG_DESCRIPTION = "text-muted-foreground text-sm";
|
|
4886
5178
|
|
|
4887
5179
|
// src/components/alert-dialog.tsx
|
|
4888
|
-
import { jsx as
|
|
4889
|
-
var AlertDialogContext =
|
|
5180
|
+
import { jsx as jsx47, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
5181
|
+
var AlertDialogContext = React56.createContext(null);
|
|
4890
5182
|
function useAlertDialog() {
|
|
4891
|
-
const ctx =
|
|
5183
|
+
const ctx = React56.useContext(AlertDialogContext);
|
|
4892
5184
|
if (!ctx) throw new Error("AlertDialog parts must be used within <AlertDialog>");
|
|
4893
5185
|
return ctx;
|
|
4894
5186
|
}
|
|
@@ -4898,13 +5190,13 @@ function AlertDialog({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
4898
5190
|
defaultValue: defaultOpen,
|
|
4899
5191
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
4900
5192
|
});
|
|
4901
|
-
const triggerRef =
|
|
4902
|
-
return /* @__PURE__ */
|
|
5193
|
+
const triggerRef = React56.useRef(null);
|
|
5194
|
+
return /* @__PURE__ */ jsx47(AlertDialogContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children });
|
|
4903
5195
|
}
|
|
4904
5196
|
function AlertDialogTrigger({ asChild = false, onClick, ...props }) {
|
|
4905
5197
|
const { open, setOpen, triggerRef } = useAlertDialog();
|
|
4906
5198
|
const Comp = asChild ? Slot : "button";
|
|
4907
|
-
return /* @__PURE__ */
|
|
5199
|
+
return /* @__PURE__ */ jsx47(
|
|
4908
5200
|
Comp,
|
|
4909
5201
|
{
|
|
4910
5202
|
"data-slot": "alert-dialog-trigger",
|
|
@@ -4920,7 +5212,7 @@ function AlertDialogTrigger({ asChild = false, onClick, ...props }) {
|
|
|
4920
5212
|
}
|
|
4921
5213
|
function AlertDialogOverlay({ className, ...props }) {
|
|
4922
5214
|
const { open, setOpen } = useAlertDialog();
|
|
4923
|
-
return /* @__PURE__ */
|
|
5215
|
+
return /* @__PURE__ */ jsx47(
|
|
4924
5216
|
"div",
|
|
4925
5217
|
{
|
|
4926
5218
|
"data-slot": "alert-dialog-overlay",
|
|
@@ -4941,9 +5233,9 @@ function AlertDialogContent({ className, children, ...props }) {
|
|
|
4941
5233
|
exclude: [triggerRef]
|
|
4942
5234
|
});
|
|
4943
5235
|
if (!isPresent) return null;
|
|
4944
|
-
return /* @__PURE__ */
|
|
4945
|
-
/* @__PURE__ */
|
|
4946
|
-
/* @__PURE__ */
|
|
5236
|
+
return /* @__PURE__ */ jsxs17(Portal, { children: [
|
|
5237
|
+
/* @__PURE__ */ jsx47(AlertDialogOverlay, {}),
|
|
5238
|
+
/* @__PURE__ */ jsx47(
|
|
4947
5239
|
"div",
|
|
4948
5240
|
{
|
|
4949
5241
|
"data-slot": "alert-dialog-content",
|
|
@@ -4959,7 +5251,7 @@ function AlertDialogContent({ className, children, ...props }) {
|
|
|
4959
5251
|
] });
|
|
4960
5252
|
}
|
|
4961
5253
|
function AlertDialogHeader({ className, ...props }) {
|
|
4962
|
-
return /* @__PURE__ */
|
|
5254
|
+
return /* @__PURE__ */ jsx47(
|
|
4963
5255
|
"div",
|
|
4964
5256
|
{
|
|
4965
5257
|
"data-slot": "alert-dialog-header",
|
|
@@ -4969,7 +5261,7 @@ function AlertDialogHeader({ className, ...props }) {
|
|
|
4969
5261
|
);
|
|
4970
5262
|
}
|
|
4971
5263
|
function AlertDialogFooter({ className, ...props }) {
|
|
4972
|
-
return /* @__PURE__ */
|
|
5264
|
+
return /* @__PURE__ */ jsx47(
|
|
4973
5265
|
"div",
|
|
4974
5266
|
{
|
|
4975
5267
|
"data-slot": "alert-dialog-footer",
|
|
@@ -4979,7 +5271,7 @@ function AlertDialogFooter({ className, ...props }) {
|
|
|
4979
5271
|
);
|
|
4980
5272
|
}
|
|
4981
5273
|
function AlertDialogTitle({ className, ...props }) {
|
|
4982
|
-
return /* @__PURE__ */
|
|
5274
|
+
return /* @__PURE__ */ jsx47(
|
|
4983
5275
|
"h2",
|
|
4984
5276
|
{
|
|
4985
5277
|
"data-slot": "alert-dialog-title",
|
|
@@ -4989,7 +5281,7 @@ function AlertDialogTitle({ className, ...props }) {
|
|
|
4989
5281
|
);
|
|
4990
5282
|
}
|
|
4991
5283
|
function AlertDialogDescription({ className, ...props }) {
|
|
4992
|
-
return /* @__PURE__ */
|
|
5284
|
+
return /* @__PURE__ */ jsx47(
|
|
4993
5285
|
"p",
|
|
4994
5286
|
{
|
|
4995
5287
|
"data-slot": "alert-dialog-description",
|
|
@@ -5000,7 +5292,7 @@ function AlertDialogDescription({ className, ...props }) {
|
|
|
5000
5292
|
}
|
|
5001
5293
|
function AlertDialogAction({ className, onClick, ...props }) {
|
|
5002
5294
|
const { setOpen } = useAlertDialog();
|
|
5003
|
-
return /* @__PURE__ */
|
|
5295
|
+
return /* @__PURE__ */ jsx47(
|
|
5004
5296
|
"button",
|
|
5005
5297
|
{
|
|
5006
5298
|
"data-slot": "alert-dialog-action",
|
|
@@ -5015,7 +5307,7 @@ function AlertDialogAction({ className, onClick, ...props }) {
|
|
|
5015
5307
|
}
|
|
5016
5308
|
function AlertDialogCancel({ className, onClick, ...props }) {
|
|
5017
5309
|
const { setOpen } = useAlertDialog();
|
|
5018
|
-
return /* @__PURE__ */
|
|
5310
|
+
return /* @__PURE__ */ jsx47(
|
|
5019
5311
|
"button",
|
|
5020
5312
|
{
|
|
5021
5313
|
"data-slot": "alert-dialog-cancel",
|
|
@@ -5030,7 +5322,7 @@ function AlertDialogCancel({ className, onClick, ...props }) {
|
|
|
5030
5322
|
}
|
|
5031
5323
|
|
|
5032
5324
|
// src/components/sheet.tsx
|
|
5033
|
-
import * as
|
|
5325
|
+
import * as React57 from "react";
|
|
5034
5326
|
|
|
5035
5327
|
// src/generated/sheet.ts
|
|
5036
5328
|
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 +5338,10 @@ var SHEET_TITLE = "text-foreground font-semibold";
|
|
|
5046
5338
|
var SHEET_DESCRIPTION = "text-muted-foreground text-sm";
|
|
5047
5339
|
|
|
5048
5340
|
// src/components/sheet.tsx
|
|
5049
|
-
import { jsx as
|
|
5050
|
-
var SheetContext =
|
|
5341
|
+
import { jsx as jsx48, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
5342
|
+
var SheetContext = React57.createContext(null);
|
|
5051
5343
|
function useSheet() {
|
|
5052
|
-
const ctx =
|
|
5344
|
+
const ctx = React57.useContext(SheetContext);
|
|
5053
5345
|
if (!ctx) throw new Error("Sheet parts must be used within <Sheet>");
|
|
5054
5346
|
return ctx;
|
|
5055
5347
|
}
|
|
@@ -5059,13 +5351,13 @@ function Sheet({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
5059
5351
|
defaultValue: defaultOpen,
|
|
5060
5352
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
5061
5353
|
});
|
|
5062
|
-
const triggerRef =
|
|
5063
|
-
return /* @__PURE__ */
|
|
5354
|
+
const triggerRef = React57.useRef(null);
|
|
5355
|
+
return /* @__PURE__ */ jsx48(SheetContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children });
|
|
5064
5356
|
}
|
|
5065
5357
|
function SheetTrigger({ asChild = false, onClick, ...props }) {
|
|
5066
5358
|
const { open, setOpen, triggerRef } = useSheet();
|
|
5067
5359
|
const Comp = asChild ? Slot : "button";
|
|
5068
|
-
return /* @__PURE__ */
|
|
5360
|
+
return /* @__PURE__ */ jsx48(
|
|
5069
5361
|
Comp,
|
|
5070
5362
|
{
|
|
5071
5363
|
"data-slot": "sheet-trigger",
|
|
@@ -5081,7 +5373,7 @@ function SheetTrigger({ asChild = false, onClick, ...props }) {
|
|
|
5081
5373
|
}
|
|
5082
5374
|
function SheetOverlay({ className, ...props }) {
|
|
5083
5375
|
const { open, setOpen } = useSheet();
|
|
5084
|
-
return /* @__PURE__ */
|
|
5376
|
+
return /* @__PURE__ */ jsx48(
|
|
5085
5377
|
"div",
|
|
5086
5378
|
{
|
|
5087
5379
|
"data-slot": "sheet-overlay",
|
|
@@ -5098,7 +5390,7 @@ var sheetSideClasses = {
|
|
|
5098
5390
|
top: SHEET_SIDE_TOP,
|
|
5099
5391
|
bottom: SHEET_SIDE_BOTTOM
|
|
5100
5392
|
};
|
|
5101
|
-
var XIcon2 = (props) => /* @__PURE__ */
|
|
5393
|
+
var XIcon2 = (props) => /* @__PURE__ */ jsx48(
|
|
5102
5394
|
"svg",
|
|
5103
5395
|
{
|
|
5104
5396
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -5111,7 +5403,7 @@ var XIcon2 = (props) => /* @__PURE__ */ jsx45(
|
|
|
5111
5403
|
strokeLinecap: "round",
|
|
5112
5404
|
strokeLinejoin: "round",
|
|
5113
5405
|
...props,
|
|
5114
|
-
children: /* @__PURE__ */
|
|
5406
|
+
children: /* @__PURE__ */ jsx48("path", { d: "M18 6 6 18M6 6l12 12" })
|
|
5115
5407
|
}
|
|
5116
5408
|
);
|
|
5117
5409
|
function SheetContent({ className, children, side = "right", ...props }) {
|
|
@@ -5124,9 +5416,9 @@ function SheetContent({ className, children, side = "right", ...props }) {
|
|
|
5124
5416
|
exclude: [triggerRef]
|
|
5125
5417
|
});
|
|
5126
5418
|
if (!isPresent) return null;
|
|
5127
|
-
return /* @__PURE__ */
|
|
5128
|
-
/* @__PURE__ */
|
|
5129
|
-
/* @__PURE__ */
|
|
5419
|
+
return /* @__PURE__ */ jsxs18(Portal, { children: [
|
|
5420
|
+
/* @__PURE__ */ jsx48(SheetOverlay, {}),
|
|
5421
|
+
/* @__PURE__ */ jsxs18(
|
|
5130
5422
|
"div",
|
|
5131
5423
|
{
|
|
5132
5424
|
"data-slot": "sheet-content",
|
|
@@ -5138,7 +5430,7 @@ function SheetContent({ className, children, side = "right", ...props }) {
|
|
|
5138
5430
|
...props,
|
|
5139
5431
|
children: [
|
|
5140
5432
|
children,
|
|
5141
|
-
/* @__PURE__ */
|
|
5433
|
+
/* @__PURE__ */ jsxs18(
|
|
5142
5434
|
"button",
|
|
5143
5435
|
{
|
|
5144
5436
|
type: "button",
|
|
@@ -5146,8 +5438,8 @@ function SheetContent({ className, children, side = "right", ...props }) {
|
|
|
5146
5438
|
onClick: () => setOpen(false),
|
|
5147
5439
|
className: SHEET_CLOSE,
|
|
5148
5440
|
children: [
|
|
5149
|
-
/* @__PURE__ */
|
|
5150
|
-
/* @__PURE__ */
|
|
5441
|
+
/* @__PURE__ */ jsx48(XIcon2, { className: "size-4" }),
|
|
5442
|
+
/* @__PURE__ */ jsx48("span", { className: "sr-only", children: "Close" })
|
|
5151
5443
|
]
|
|
5152
5444
|
}
|
|
5153
5445
|
)
|
|
@@ -5159,7 +5451,7 @@ function SheetContent({ className, children, side = "right", ...props }) {
|
|
|
5159
5451
|
function SheetClose({ asChild = false, onClick, ...props }) {
|
|
5160
5452
|
const { setOpen } = useSheet();
|
|
5161
5453
|
const Comp = asChild ? Slot : "button";
|
|
5162
|
-
return /* @__PURE__ */
|
|
5454
|
+
return /* @__PURE__ */ jsx48(
|
|
5163
5455
|
Comp,
|
|
5164
5456
|
{
|
|
5165
5457
|
"data-slot": "sheet-close",
|
|
@@ -5172,7 +5464,7 @@ function SheetClose({ asChild = false, onClick, ...props }) {
|
|
|
5172
5464
|
);
|
|
5173
5465
|
}
|
|
5174
5466
|
function SheetHeader({ className, ...props }) {
|
|
5175
|
-
return /* @__PURE__ */
|
|
5467
|
+
return /* @__PURE__ */ jsx48(
|
|
5176
5468
|
"div",
|
|
5177
5469
|
{
|
|
5178
5470
|
"data-slot": "sheet-header",
|
|
@@ -5182,7 +5474,7 @@ function SheetHeader({ className, ...props }) {
|
|
|
5182
5474
|
);
|
|
5183
5475
|
}
|
|
5184
5476
|
function SheetFooter({ className, ...props }) {
|
|
5185
|
-
return /* @__PURE__ */
|
|
5477
|
+
return /* @__PURE__ */ jsx48(
|
|
5186
5478
|
"div",
|
|
5187
5479
|
{
|
|
5188
5480
|
"data-slot": "sheet-footer",
|
|
@@ -5192,7 +5484,7 @@ function SheetFooter({ className, ...props }) {
|
|
|
5192
5484
|
);
|
|
5193
5485
|
}
|
|
5194
5486
|
function SheetTitle({ className, ...props }) {
|
|
5195
|
-
return /* @__PURE__ */
|
|
5487
|
+
return /* @__PURE__ */ jsx48(
|
|
5196
5488
|
"h2",
|
|
5197
5489
|
{
|
|
5198
5490
|
"data-slot": "sheet-title",
|
|
@@ -5202,7 +5494,7 @@ function SheetTitle({ className, ...props }) {
|
|
|
5202
5494
|
);
|
|
5203
5495
|
}
|
|
5204
5496
|
function SheetDescription({ className, ...props }) {
|
|
5205
|
-
return /* @__PURE__ */
|
|
5497
|
+
return /* @__PURE__ */ jsx48(
|
|
5206
5498
|
"p",
|
|
5207
5499
|
{
|
|
5208
5500
|
"data-slot": "sheet-description",
|
|
@@ -5213,7 +5505,7 @@ function SheetDescription({ className, ...props }) {
|
|
|
5213
5505
|
}
|
|
5214
5506
|
|
|
5215
5507
|
// src/components/drawer.tsx
|
|
5216
|
-
import * as
|
|
5508
|
+
import * as React58 from "react";
|
|
5217
5509
|
|
|
5218
5510
|
// src/generated/drawer.ts
|
|
5219
5511
|
var DRAWER_CONTENT_BASE = "bg-background fixed z-50 flex h-auto border";
|
|
@@ -5231,10 +5523,10 @@ var DRAWER_TITLE = "text-foreground font-semibold";
|
|
|
5231
5523
|
var DRAWER_DESCRIPTION = "text-muted-foreground text-sm";
|
|
5232
5524
|
|
|
5233
5525
|
// src/components/drawer.tsx
|
|
5234
|
-
import { jsx as
|
|
5235
|
-
var DrawerContext =
|
|
5526
|
+
import { jsx as jsx49, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
5527
|
+
var DrawerContext = React58.createContext(null);
|
|
5236
5528
|
function useDrawer() {
|
|
5237
|
-
const ctx =
|
|
5529
|
+
const ctx = React58.useContext(DrawerContext);
|
|
5238
5530
|
if (!ctx) throw new Error("Drawer parts must be used within <Drawer>");
|
|
5239
5531
|
return ctx;
|
|
5240
5532
|
}
|
|
@@ -5250,12 +5542,12 @@ function Drawer({
|
|
|
5250
5542
|
defaultValue: defaultOpen,
|
|
5251
5543
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
5252
5544
|
});
|
|
5253
|
-
return /* @__PURE__ */
|
|
5545
|
+
return /* @__PURE__ */ jsx49(DrawerContext.Provider, { value: { open: isOpen, setOpen, direction }, children: /* @__PURE__ */ jsx49("div", { "data-slot": "drawer", children }) });
|
|
5254
5546
|
}
|
|
5255
5547
|
function DrawerTrigger({ asChild = false, onClick, ...props }) {
|
|
5256
5548
|
const { setOpen } = useDrawer();
|
|
5257
5549
|
const Comp = asChild ? Slot : "button";
|
|
5258
|
-
return /* @__PURE__ */
|
|
5550
|
+
return /* @__PURE__ */ jsx49(
|
|
5259
5551
|
Comp,
|
|
5260
5552
|
{
|
|
5261
5553
|
"data-slot": "drawer-trigger",
|
|
@@ -5270,7 +5562,7 @@ function DrawerTrigger({ asChild = false, onClick, ...props }) {
|
|
|
5270
5562
|
function DrawerClose({ asChild = false, onClick, ...props }) {
|
|
5271
5563
|
const { setOpen } = useDrawer();
|
|
5272
5564
|
const Comp = asChild ? Slot : "button";
|
|
5273
|
-
return /* @__PURE__ */
|
|
5565
|
+
return /* @__PURE__ */ jsx49(
|
|
5274
5566
|
Comp,
|
|
5275
5567
|
{
|
|
5276
5568
|
"data-slot": "drawer-close",
|
|
@@ -5285,7 +5577,7 @@ function DrawerClose({ asChild = false, onClick, ...props }) {
|
|
|
5285
5577
|
function DrawerOverlay({ className, ...props }) {
|
|
5286
5578
|
const { open, setOpen } = useDrawer();
|
|
5287
5579
|
if (!open) return null;
|
|
5288
|
-
return /* @__PURE__ */
|
|
5580
|
+
return /* @__PURE__ */ jsx49(
|
|
5289
5581
|
"div",
|
|
5290
5582
|
{
|
|
5291
5583
|
"data-slot": "drawer-overlay",
|
|
@@ -5300,8 +5592,8 @@ function DrawerContent({ className, children, ...props }) {
|
|
|
5300
5592
|
const { open, setOpen, direction } = useDrawer();
|
|
5301
5593
|
const scopeRef = useFocusScope(open);
|
|
5302
5594
|
if (!open) return null;
|
|
5303
|
-
return /* @__PURE__ */
|
|
5304
|
-
/* @__PURE__ */
|
|
5595
|
+
return /* @__PURE__ */ jsxs19(Portal, { children: [
|
|
5596
|
+
/* @__PURE__ */ jsx49(
|
|
5305
5597
|
"div",
|
|
5306
5598
|
{
|
|
5307
5599
|
"data-slot": "drawer-overlay",
|
|
@@ -5309,7 +5601,7 @@ function DrawerContent({ className, children, ...props }) {
|
|
|
5309
5601
|
onClick: () => setOpen(false)
|
|
5310
5602
|
}
|
|
5311
5603
|
),
|
|
5312
|
-
/* @__PURE__ */
|
|
5604
|
+
/* @__PURE__ */ jsxs19(
|
|
5313
5605
|
"div",
|
|
5314
5606
|
{
|
|
5315
5607
|
role: "dialog",
|
|
@@ -5324,7 +5616,7 @@ function DrawerContent({ className, children, ...props }) {
|
|
|
5324
5616
|
className: cn(DRAWER_CONTENT_BASE, drawerDirectionClasses[direction], className),
|
|
5325
5617
|
...props,
|
|
5326
5618
|
children: [
|
|
5327
|
-
direction === "bottom" ? /* @__PURE__ */
|
|
5619
|
+
direction === "bottom" ? /* @__PURE__ */ jsx49(
|
|
5328
5620
|
"div",
|
|
5329
5621
|
{
|
|
5330
5622
|
"data-slot": "drawer-handle",
|
|
@@ -5338,7 +5630,7 @@ function DrawerContent({ className, children, ...props }) {
|
|
|
5338
5630
|
] });
|
|
5339
5631
|
}
|
|
5340
5632
|
function DrawerHeader({ className, ...props }) {
|
|
5341
|
-
return /* @__PURE__ */
|
|
5633
|
+
return /* @__PURE__ */ jsx49(
|
|
5342
5634
|
"div",
|
|
5343
5635
|
{
|
|
5344
5636
|
"data-slot": "drawer-header",
|
|
@@ -5348,7 +5640,7 @@ function DrawerHeader({ className, ...props }) {
|
|
|
5348
5640
|
);
|
|
5349
5641
|
}
|
|
5350
5642
|
function DrawerFooter({ className, ...props }) {
|
|
5351
|
-
return /* @__PURE__ */
|
|
5643
|
+
return /* @__PURE__ */ jsx49(
|
|
5352
5644
|
"div",
|
|
5353
5645
|
{
|
|
5354
5646
|
"data-slot": "drawer-footer",
|
|
@@ -5358,7 +5650,7 @@ function DrawerFooter({ className, ...props }) {
|
|
|
5358
5650
|
);
|
|
5359
5651
|
}
|
|
5360
5652
|
function DrawerTitle({ className, ...props }) {
|
|
5361
|
-
return /* @__PURE__ */
|
|
5653
|
+
return /* @__PURE__ */ jsx49(
|
|
5362
5654
|
"div",
|
|
5363
5655
|
{
|
|
5364
5656
|
"data-slot": "drawer-title",
|
|
@@ -5368,7 +5660,7 @@ function DrawerTitle({ className, ...props }) {
|
|
|
5368
5660
|
);
|
|
5369
5661
|
}
|
|
5370
5662
|
function DrawerDescription({ className, ...props }) {
|
|
5371
|
-
return /* @__PURE__ */
|
|
5663
|
+
return /* @__PURE__ */ jsx49(
|
|
5372
5664
|
"div",
|
|
5373
5665
|
{
|
|
5374
5666
|
"data-slot": "drawer-description",
|
|
@@ -5379,11 +5671,11 @@ function DrawerDescription({ className, ...props }) {
|
|
|
5379
5671
|
}
|
|
5380
5672
|
|
|
5381
5673
|
// src/components/select.tsx
|
|
5382
|
-
import * as
|
|
5383
|
-
import { jsx as
|
|
5384
|
-
var SelectContext =
|
|
5674
|
+
import * as React59 from "react";
|
|
5675
|
+
import { jsx as jsx50, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
5676
|
+
var SelectContext = React59.createContext(null);
|
|
5385
5677
|
function useSelect() {
|
|
5386
|
-
const ctx =
|
|
5678
|
+
const ctx = React59.useContext(SelectContext);
|
|
5387
5679
|
if (!ctx) throw new Error("Select parts must be used within <Select>");
|
|
5388
5680
|
return ctx;
|
|
5389
5681
|
}
|
|
@@ -5406,8 +5698,8 @@ function Select({
|
|
|
5406
5698
|
defaultValue: defaultOpen,
|
|
5407
5699
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
5408
5700
|
});
|
|
5409
|
-
const anchorRef =
|
|
5410
|
-
return /* @__PURE__ */
|
|
5701
|
+
const anchorRef = React59.useRef(null);
|
|
5702
|
+
return /* @__PURE__ */ jsx50(
|
|
5411
5703
|
SelectContext.Provider,
|
|
5412
5704
|
{
|
|
5413
5705
|
value: { value: currentValue, setValue, open: isOpen, setOpen, anchorRef },
|
|
@@ -5423,7 +5715,7 @@ function SelectTrigger({
|
|
|
5423
5715
|
...props
|
|
5424
5716
|
}) {
|
|
5425
5717
|
const { open, setOpen, anchorRef } = useSelect();
|
|
5426
|
-
return /* @__PURE__ */
|
|
5718
|
+
return /* @__PURE__ */ jsxs20(
|
|
5427
5719
|
"button",
|
|
5428
5720
|
{
|
|
5429
5721
|
type: "button",
|
|
@@ -5444,7 +5736,7 @@ function SelectTrigger({
|
|
|
5444
5736
|
...props,
|
|
5445
5737
|
children: [
|
|
5446
5738
|
children,
|
|
5447
|
-
/* @__PURE__ */
|
|
5739
|
+
/* @__PURE__ */ jsx50(
|
|
5448
5740
|
"svg",
|
|
5449
5741
|
{
|
|
5450
5742
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -5458,7 +5750,7 @@ function SelectTrigger({
|
|
|
5458
5750
|
strokeLinejoin: "round",
|
|
5459
5751
|
className: "size-4 opacity-50",
|
|
5460
5752
|
"aria-hidden": "true",
|
|
5461
|
-
children: /* @__PURE__ */
|
|
5753
|
+
children: /* @__PURE__ */ jsx50("path", { d: "m6 9 6 6 6-6" })
|
|
5462
5754
|
}
|
|
5463
5755
|
)
|
|
5464
5756
|
]
|
|
@@ -5468,7 +5760,7 @@ function SelectTrigger({
|
|
|
5468
5760
|
function SelectValue({ className, placeholder, ...props }) {
|
|
5469
5761
|
const { value } = useSelect();
|
|
5470
5762
|
const isEmpty = value === "";
|
|
5471
|
-
return /* @__PURE__ */
|
|
5763
|
+
return /* @__PURE__ */ jsx50(
|
|
5472
5764
|
"span",
|
|
5473
5765
|
{
|
|
5474
5766
|
"data-slot": "select-value",
|
|
@@ -5501,13 +5793,13 @@ function SelectContent({
|
|
|
5501
5793
|
onDismiss: () => setOpen(false),
|
|
5502
5794
|
exclude: [anchorRef]
|
|
5503
5795
|
});
|
|
5504
|
-
const items =
|
|
5796
|
+
const items = React59.Children.toArray(children).filter(React59.isValidElement);
|
|
5505
5797
|
const { activeIndex, setActiveIndex, onKeyDown } = useRovingFocus({
|
|
5506
5798
|
count: items.length,
|
|
5507
5799
|
orientation: "vertical"
|
|
5508
5800
|
});
|
|
5509
5801
|
if (!isPresent) return null;
|
|
5510
|
-
return /* @__PURE__ */
|
|
5802
|
+
return /* @__PURE__ */ jsx50(Portal, { children: /* @__PURE__ */ jsx50(
|
|
5511
5803
|
"div",
|
|
5512
5804
|
{
|
|
5513
5805
|
role: "listbox",
|
|
@@ -5523,8 +5815,8 @@ function SelectContent({
|
|
|
5523
5815
|
className
|
|
5524
5816
|
),
|
|
5525
5817
|
...props,
|
|
5526
|
-
children: /* @__PURE__ */
|
|
5527
|
-
(child, index) =>
|
|
5818
|
+
children: /* @__PURE__ */ jsx50("div", { className: "p-1", children: items.map(
|
|
5819
|
+
(child, index) => React59.cloneElement(child, {
|
|
5528
5820
|
__index: index,
|
|
5529
5821
|
__active: index === activeIndex,
|
|
5530
5822
|
__setActive: setActiveIndex
|
|
@@ -5544,7 +5836,7 @@ function SelectItem({
|
|
|
5544
5836
|
}) {
|
|
5545
5837
|
const { value: selectedValue, setValue, setOpen } = useSelect();
|
|
5546
5838
|
const selected = selectedValue === value;
|
|
5547
|
-
return /* @__PURE__ */
|
|
5839
|
+
return /* @__PURE__ */ jsxs20(
|
|
5548
5840
|
"div",
|
|
5549
5841
|
{
|
|
5550
5842
|
role: "option",
|
|
@@ -5569,7 +5861,7 @@ function SelectItem({
|
|
|
5569
5861
|
),
|
|
5570
5862
|
...props,
|
|
5571
5863
|
children: [
|
|
5572
|
-
selected ? /* @__PURE__ */
|
|
5864
|
+
selected ? /* @__PURE__ */ jsx50("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx50(
|
|
5573
5865
|
"svg",
|
|
5574
5866
|
{
|
|
5575
5867
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -5583,19 +5875,19 @@ function SelectItem({
|
|
|
5583
5875
|
strokeLinejoin: "round",
|
|
5584
5876
|
className: "size-4",
|
|
5585
5877
|
"aria-hidden": "true",
|
|
5586
|
-
children: /* @__PURE__ */
|
|
5878
|
+
children: /* @__PURE__ */ jsx50("path", { d: "M20 6 9 17l-5-5" })
|
|
5587
5879
|
}
|
|
5588
5880
|
) }) : null,
|
|
5589
|
-
/* @__PURE__ */
|
|
5881
|
+
/* @__PURE__ */ jsx50("span", { children })
|
|
5590
5882
|
]
|
|
5591
5883
|
}
|
|
5592
5884
|
);
|
|
5593
5885
|
}
|
|
5594
5886
|
function SelectGroup({ className, ...props }) {
|
|
5595
|
-
return /* @__PURE__ */
|
|
5887
|
+
return /* @__PURE__ */ jsx50("div", { role: "group", "data-slot": "select-group", className, ...props });
|
|
5596
5888
|
}
|
|
5597
5889
|
function SelectLabel({ className, ...props }) {
|
|
5598
|
-
return /* @__PURE__ */
|
|
5890
|
+
return /* @__PURE__ */ jsx50(
|
|
5599
5891
|
"div",
|
|
5600
5892
|
{
|
|
5601
5893
|
"data-slot": "select-label",
|
|
@@ -5605,7 +5897,7 @@ function SelectLabel({ className, ...props }) {
|
|
|
5605
5897
|
);
|
|
5606
5898
|
}
|
|
5607
5899
|
function SelectSeparator({ className, ...props }) {
|
|
5608
|
-
return /* @__PURE__ */
|
|
5900
|
+
return /* @__PURE__ */ jsx50(
|
|
5609
5901
|
"div",
|
|
5610
5902
|
{
|
|
5611
5903
|
"data-slot": "select-separator",
|
|
@@ -5616,7 +5908,7 @@ function SelectSeparator({ className, ...props }) {
|
|
|
5616
5908
|
}
|
|
5617
5909
|
|
|
5618
5910
|
// src/components/command.tsx
|
|
5619
|
-
import * as
|
|
5911
|
+
import * as React60 from "react";
|
|
5620
5912
|
|
|
5621
5913
|
// src/generated/command.ts
|
|
5622
5914
|
var COMMAND_ROOT = "bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md";
|
|
@@ -5633,10 +5925,10 @@ var COMMAND_SEPARATOR = "bg-border -mx-1 h-px";
|
|
|
5633
5925
|
var COMMAND_SHORTCUT = "text-muted-foreground ml-auto text-xs tracking-widest";
|
|
5634
5926
|
|
|
5635
5927
|
// src/components/command.tsx
|
|
5636
|
-
import { jsx as
|
|
5637
|
-
var CommandContext =
|
|
5928
|
+
import { jsx as jsx51, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
5929
|
+
var CommandContext = React60.createContext(null);
|
|
5638
5930
|
function useCommand() {
|
|
5639
|
-
const ctx =
|
|
5931
|
+
const ctx = React60.useContext(CommandContext);
|
|
5640
5932
|
if (!ctx) throw new Error("Command parts must be used within <Command>");
|
|
5641
5933
|
return ctx;
|
|
5642
5934
|
}
|
|
@@ -5653,7 +5945,7 @@ function Command({
|
|
|
5653
5945
|
defaultValue: defaultSearch,
|
|
5654
5946
|
...onSearchChange ? { onChange: onSearchChange } : {}
|
|
5655
5947
|
});
|
|
5656
|
-
return /* @__PURE__ */
|
|
5948
|
+
return /* @__PURE__ */ jsx51(CommandContext.Provider, { value: { search: currentSearch, setSearch }, children: /* @__PURE__ */ jsx51(
|
|
5657
5949
|
"div",
|
|
5658
5950
|
{
|
|
5659
5951
|
"data-slot": "command",
|
|
@@ -5677,8 +5969,8 @@ function CommandDialog({
|
|
|
5677
5969
|
});
|
|
5678
5970
|
const scopeRef = useFocusScope(isOpen);
|
|
5679
5971
|
if (!isOpen) return null;
|
|
5680
|
-
return /* @__PURE__ */
|
|
5681
|
-
/* @__PURE__ */
|
|
5972
|
+
return /* @__PURE__ */ jsxs21(Portal, { children: [
|
|
5973
|
+
/* @__PURE__ */ jsx51(
|
|
5682
5974
|
"div",
|
|
5683
5975
|
{
|
|
5684
5976
|
"data-slot": "command-overlay",
|
|
@@ -5686,7 +5978,7 @@ function CommandDialog({
|
|
|
5686
5978
|
onClick: () => setOpen(false)
|
|
5687
5979
|
}
|
|
5688
5980
|
),
|
|
5689
|
-
/* @__PURE__ */
|
|
5981
|
+
/* @__PURE__ */ jsx51(
|
|
5690
5982
|
"div",
|
|
5691
5983
|
{
|
|
5692
5984
|
role: "dialog",
|
|
@@ -5697,7 +5989,7 @@ function CommandDialog({
|
|
|
5697
5989
|
if (e.key === "Escape") setOpen(false);
|
|
5698
5990
|
},
|
|
5699
5991
|
className: cn(COMMAND_DIALOG_CONTENT, className),
|
|
5700
|
-
children: /* @__PURE__ */
|
|
5992
|
+
children: /* @__PURE__ */ jsx51(Command, { className: COMMAND_DIALOG_COMMAND, children })
|
|
5701
5993
|
}
|
|
5702
5994
|
)
|
|
5703
5995
|
] });
|
|
@@ -5707,8 +5999,8 @@ function CommandInput({
|
|
|
5707
5999
|
...props
|
|
5708
6000
|
}) {
|
|
5709
6001
|
const { search, setSearch } = useCommand();
|
|
5710
|
-
return /* @__PURE__ */
|
|
5711
|
-
/* @__PURE__ */
|
|
6002
|
+
return /* @__PURE__ */ jsxs21("div", { className: COMMAND_INPUT_WRAPPER, "data-slot": "command-input-wrapper", children: [
|
|
6003
|
+
/* @__PURE__ */ jsxs21(
|
|
5712
6004
|
"svg",
|
|
5713
6005
|
{
|
|
5714
6006
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -5723,12 +6015,12 @@ function CommandInput({
|
|
|
5723
6015
|
className: "size-4 shrink-0 opacity-50",
|
|
5724
6016
|
"aria-hidden": "true",
|
|
5725
6017
|
children: [
|
|
5726
|
-
/* @__PURE__ */
|
|
5727
|
-
/* @__PURE__ */
|
|
6018
|
+
/* @__PURE__ */ jsx51("circle", { cx: "11", cy: "11", r: "8" }),
|
|
6019
|
+
/* @__PURE__ */ jsx51("path", { d: "m21 21-4.3-4.3" })
|
|
5728
6020
|
]
|
|
5729
6021
|
}
|
|
5730
6022
|
),
|
|
5731
|
-
/* @__PURE__ */
|
|
6023
|
+
/* @__PURE__ */ jsx51(
|
|
5732
6024
|
"input",
|
|
5733
6025
|
{
|
|
5734
6026
|
type: "text",
|
|
@@ -5743,7 +6035,7 @@ function CommandInput({
|
|
|
5743
6035
|
] });
|
|
5744
6036
|
}
|
|
5745
6037
|
function CommandList({ className, ...props }) {
|
|
5746
|
-
return /* @__PURE__ */
|
|
6038
|
+
return /* @__PURE__ */ jsx51(
|
|
5747
6039
|
"div",
|
|
5748
6040
|
{
|
|
5749
6041
|
role: "listbox",
|
|
@@ -5757,7 +6049,7 @@ function CommandEmpty({ className, children, ...props }) {
|
|
|
5757
6049
|
const { search } = useCommand();
|
|
5758
6050
|
const hasQuery = search.trim() !== "";
|
|
5759
6051
|
if (!hasQuery) return null;
|
|
5760
|
-
return /* @__PURE__ */
|
|
6052
|
+
return /* @__PURE__ */ jsx51(
|
|
5761
6053
|
"div",
|
|
5762
6054
|
{
|
|
5763
6055
|
"data-slot": "command-empty",
|
|
@@ -5768,7 +6060,7 @@ function CommandEmpty({ className, children, ...props }) {
|
|
|
5768
6060
|
);
|
|
5769
6061
|
}
|
|
5770
6062
|
function CommandGroup({ className, heading, children, ...props }) {
|
|
5771
|
-
return /* @__PURE__ */
|
|
6063
|
+
return /* @__PURE__ */ jsxs21(
|
|
5772
6064
|
"div",
|
|
5773
6065
|
{
|
|
5774
6066
|
role: "group",
|
|
@@ -5776,7 +6068,7 @@ function CommandGroup({ className, heading, children, ...props }) {
|
|
|
5776
6068
|
className: cn(COMMAND_GROUP, className),
|
|
5777
6069
|
...props,
|
|
5778
6070
|
children: [
|
|
5779
|
-
heading ? /* @__PURE__ */
|
|
6071
|
+
heading ? /* @__PURE__ */ jsx51("div", { "data-slot": "command-group-heading", children: heading }) : null,
|
|
5780
6072
|
children
|
|
5781
6073
|
]
|
|
5782
6074
|
}
|
|
@@ -5793,7 +6085,7 @@ function CommandItem({
|
|
|
5793
6085
|
const { search } = useCommand();
|
|
5794
6086
|
const query = search.toLowerCase();
|
|
5795
6087
|
if (query !== "" && !value.toLowerCase().includes(query)) return null;
|
|
5796
|
-
return /* @__PURE__ */
|
|
6088
|
+
return /* @__PURE__ */ jsx51(
|
|
5797
6089
|
"div",
|
|
5798
6090
|
{
|
|
5799
6091
|
role: "option",
|
|
@@ -5811,7 +6103,7 @@ function CommandItem({
|
|
|
5811
6103
|
);
|
|
5812
6104
|
}
|
|
5813
6105
|
function CommandSeparator({ className, ...props }) {
|
|
5814
|
-
return /* @__PURE__ */
|
|
6106
|
+
return /* @__PURE__ */ jsx51(
|
|
5815
6107
|
"div",
|
|
5816
6108
|
{
|
|
5817
6109
|
"data-slot": "command-separator",
|
|
@@ -5821,7 +6113,7 @@ function CommandSeparator({ className, ...props }) {
|
|
|
5821
6113
|
);
|
|
5822
6114
|
}
|
|
5823
6115
|
function CommandShortcut({ className, ...props }) {
|
|
5824
|
-
return /* @__PURE__ */
|
|
6116
|
+
return /* @__PURE__ */ jsx51(
|
|
5825
6117
|
"span",
|
|
5826
6118
|
{
|
|
5827
6119
|
"data-slot": "command-shortcut",
|
|
@@ -5832,7 +6124,7 @@ function CommandShortcut({ className, ...props }) {
|
|
|
5832
6124
|
}
|
|
5833
6125
|
|
|
5834
6126
|
// src/components/chart.tsx
|
|
5835
|
-
import * as
|
|
6127
|
+
import * as React61 from "react";
|
|
5836
6128
|
|
|
5837
6129
|
// src/generated/chart.ts
|
|
5838
6130
|
var CHART_CONTAINER = "flex aspect-video justify-center text-xs [&_.recharts-layer]:outline-hidden [&_.recharts-surface]:outline-hidden [&_svg]:outline-hidden";
|
|
@@ -5840,10 +6132,10 @@ var CHART_TOOLTIP = "border-border/50 bg-background grid min-w-[8rem] items-star
|
|
|
5840
6132
|
var CHART_LEGEND = "flex items-center justify-center gap-4";
|
|
5841
6133
|
|
|
5842
6134
|
// src/components/chart.tsx
|
|
5843
|
-
import { Fragment as
|
|
5844
|
-
var ChartContext =
|
|
6135
|
+
import { Fragment as Fragment6, jsx as jsx52, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
6136
|
+
var ChartContext = React61.createContext(null);
|
|
5845
6137
|
function useChart() {
|
|
5846
|
-
const context =
|
|
6138
|
+
const context = React61.useContext(ChartContext);
|
|
5847
6139
|
if (!context) {
|
|
5848
6140
|
throw new Error("useChart must be used within a <ChartContainer />");
|
|
5849
6141
|
}
|
|
@@ -5856,9 +6148,9 @@ function ChartContainer({
|
|
|
5856
6148
|
config,
|
|
5857
6149
|
...props
|
|
5858
6150
|
}) {
|
|
5859
|
-
const uniqueId =
|
|
6151
|
+
const uniqueId = React61.useId();
|
|
5860
6152
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
5861
|
-
return /* @__PURE__ */
|
|
6153
|
+
return /* @__PURE__ */ jsx52(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs22(
|
|
5862
6154
|
"div",
|
|
5863
6155
|
{
|
|
5864
6156
|
"data-slot": "chart",
|
|
@@ -5866,7 +6158,7 @@ function ChartContainer({
|
|
|
5866
6158
|
className: cn(CHART_CONTAINER, className),
|
|
5867
6159
|
...props,
|
|
5868
6160
|
children: [
|
|
5869
|
-
/* @__PURE__ */
|
|
6161
|
+
/* @__PURE__ */ jsx52(ChartStyle, { id: chartId, config }),
|
|
5870
6162
|
children
|
|
5871
6163
|
]
|
|
5872
6164
|
}
|
|
@@ -5877,7 +6169,7 @@ var ChartStyle = ({ id, config }) => {
|
|
|
5877
6169
|
if (!colorConfig.length) {
|
|
5878
6170
|
return null;
|
|
5879
6171
|
}
|
|
5880
|
-
return /* @__PURE__ */
|
|
6172
|
+
return /* @__PURE__ */ jsx52(
|
|
5881
6173
|
"style",
|
|
5882
6174
|
{
|
|
5883
6175
|
dangerouslySetInnerHTML: {
|
|
@@ -5888,7 +6180,7 @@ ${colorConfig.map(([key, itemConfig]) => ` --color-${key}: ${itemConfig.color};
|
|
|
5888
6180
|
}
|
|
5889
6181
|
);
|
|
5890
6182
|
};
|
|
5891
|
-
var ChartTooltip = ({ children }) => /* @__PURE__ */
|
|
6183
|
+
var ChartTooltip = ({ children }) => /* @__PURE__ */ jsx52(Fragment6, { children });
|
|
5892
6184
|
function ChartTooltipContent({
|
|
5893
6185
|
className,
|
|
5894
6186
|
items = [],
|
|
@@ -5901,21 +6193,21 @@ function ChartTooltipContent({
|
|
|
5901
6193
|
if (!items.length) {
|
|
5902
6194
|
return null;
|
|
5903
6195
|
}
|
|
5904
|
-
return /* @__PURE__ */
|
|
6196
|
+
return /* @__PURE__ */ jsxs22(
|
|
5905
6197
|
"div",
|
|
5906
6198
|
{
|
|
5907
6199
|
"data-slot": "chart-tooltip",
|
|
5908
6200
|
className: cn(CHART_TOOLTIP, className),
|
|
5909
6201
|
children: [
|
|
5910
|
-
!hideLabel && label ? /* @__PURE__ */
|
|
5911
|
-
/* @__PURE__ */
|
|
6202
|
+
!hideLabel && label ? /* @__PURE__ */ jsx52("div", { className: cn("font-medium", labelClassName), children: label }) : null,
|
|
6203
|
+
/* @__PURE__ */ jsx52("div", { className: "grid gap-1.5", children: items.map((item, index) => /* @__PURE__ */ jsxs22(
|
|
5912
6204
|
"div",
|
|
5913
6205
|
{
|
|
5914
6206
|
className: cn(
|
|
5915
6207
|
"[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 items-center"
|
|
5916
6208
|
),
|
|
5917
6209
|
children: [
|
|
5918
|
-
!hideIndicator && /* @__PURE__ */
|
|
6210
|
+
!hideIndicator && /* @__PURE__ */ jsx52(
|
|
5919
6211
|
"div",
|
|
5920
6212
|
{
|
|
5921
6213
|
className: "shrink-0 rounded-[2px] h-2.5 w-2.5",
|
|
@@ -5925,9 +6217,9 @@ function ChartTooltipContent({
|
|
|
5925
6217
|
}
|
|
5926
6218
|
}
|
|
5927
6219
|
),
|
|
5928
|
-
/* @__PURE__ */
|
|
5929
|
-
/* @__PURE__ */
|
|
5930
|
-
item.value !== void 0 && /* @__PURE__ */
|
|
6220
|
+
/* @__PURE__ */ jsxs22("div", { className: "flex flex-1 justify-between leading-none items-center", children: [
|
|
6221
|
+
/* @__PURE__ */ jsx52("span", { className: "text-muted-foreground", children: item.label }),
|
|
6222
|
+
item.value !== void 0 && /* @__PURE__ */ jsx52("span", { className: "text-foreground font-mono font-medium tabular-nums", children: item.value })
|
|
5931
6223
|
] })
|
|
5932
6224
|
]
|
|
5933
6225
|
},
|
|
@@ -5937,7 +6229,7 @@ function ChartTooltipContent({
|
|
|
5937
6229
|
}
|
|
5938
6230
|
);
|
|
5939
6231
|
}
|
|
5940
|
-
var ChartLegend = ({ children }) => /* @__PURE__ */
|
|
6232
|
+
var ChartLegend = ({ children }) => /* @__PURE__ */ jsx52(Fragment6, { children });
|
|
5941
6233
|
function ChartLegendContent({
|
|
5942
6234
|
className,
|
|
5943
6235
|
hideIcon = false,
|
|
@@ -5951,19 +6243,19 @@ function ChartLegendContent({
|
|
|
5951
6243
|
if (!rows.length) {
|
|
5952
6244
|
return null;
|
|
5953
6245
|
}
|
|
5954
|
-
return /* @__PURE__ */
|
|
6246
|
+
return /* @__PURE__ */ jsx52(
|
|
5955
6247
|
"div",
|
|
5956
6248
|
{
|
|
5957
6249
|
"data-slot": "chart-legend",
|
|
5958
6250
|
className: cn(CHART_LEGEND, className),
|
|
5959
|
-
children: rows.map((item, index) => /* @__PURE__ */
|
|
6251
|
+
children: rows.map((item, index) => /* @__PURE__ */ jsxs22(
|
|
5960
6252
|
"div",
|
|
5961
6253
|
{
|
|
5962
6254
|
className: cn(
|
|
5963
6255
|
"[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"
|
|
5964
6256
|
),
|
|
5965
6257
|
children: [
|
|
5966
|
-
!hideIcon && /* @__PURE__ */
|
|
6258
|
+
!hideIcon && /* @__PURE__ */ jsx52(
|
|
5967
6259
|
"div",
|
|
5968
6260
|
{
|
|
5969
6261
|
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
@@ -5980,7 +6272,7 @@ function ChartLegendContent({
|
|
|
5980
6272
|
}
|
|
5981
6273
|
|
|
5982
6274
|
// src/components/calendar.tsx
|
|
5983
|
-
import * as
|
|
6275
|
+
import * as React62 from "react";
|
|
5984
6276
|
|
|
5985
6277
|
// src/generated/calendar.ts
|
|
5986
6278
|
var CALENDAR_ROOT = "bg-background p-3 w-fit";
|
|
@@ -5998,7 +6290,7 @@ var CALENDAR_DAY_SELECTED = "bg-primary text-primary-foreground";
|
|
|
5998
6290
|
var CALENDAR_DAY_TODAY = "bg-accent text-accent-foreground rounded-md";
|
|
5999
6291
|
|
|
6000
6292
|
// src/components/calendar.tsx
|
|
6001
|
-
import { jsx as
|
|
6293
|
+
import { jsx as jsx53, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
6002
6294
|
var MONTHS = [
|
|
6003
6295
|
"January",
|
|
6004
6296
|
"February",
|
|
@@ -6017,7 +6309,7 @@ var WEEKDAYS = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"];
|
|
|
6017
6309
|
var CHEVRON_LEFT = "m15 18-6-6 6-6";
|
|
6018
6310
|
var CHEVRON_RIGHT = "m9 18 6-6-6-6";
|
|
6019
6311
|
function Chevron({ d }) {
|
|
6020
|
-
return /* @__PURE__ */
|
|
6312
|
+
return /* @__PURE__ */ jsx53(
|
|
6021
6313
|
"svg",
|
|
6022
6314
|
{
|
|
6023
6315
|
className: "size-4",
|
|
@@ -6031,7 +6323,7 @@ function Chevron({ d }) {
|
|
|
6031
6323
|
strokeLinecap: "round",
|
|
6032
6324
|
strokeLinejoin: "round",
|
|
6033
6325
|
"aria-hidden": true,
|
|
6034
|
-
children: /* @__PURE__ */
|
|
6326
|
+
children: /* @__PURE__ */ jsx53("path", { d })
|
|
6035
6327
|
}
|
|
6036
6328
|
);
|
|
6037
6329
|
}
|
|
@@ -6053,7 +6345,7 @@ function Calendar({
|
|
|
6053
6345
|
today = /* @__PURE__ */ new Date(),
|
|
6054
6346
|
className
|
|
6055
6347
|
}) {
|
|
6056
|
-
const [internal, setInternal] =
|
|
6348
|
+
const [internal, setInternal] = React62.useState(
|
|
6057
6349
|
() => startOfMonth(defaultMonth ?? /* @__PURE__ */ new Date())
|
|
6058
6350
|
);
|
|
6059
6351
|
const view = month ? startOfMonth(month) : internal;
|
|
@@ -6078,38 +6370,38 @@ function Calendar({
|
|
|
6078
6370
|
size: "icon",
|
|
6079
6371
|
className: CALENDAR_NAV_BUTTON
|
|
6080
6372
|
});
|
|
6081
|
-
return /* @__PURE__ */
|
|
6373
|
+
return /* @__PURE__ */ jsxs23(
|
|
6082
6374
|
"div",
|
|
6083
6375
|
{
|
|
6084
6376
|
"data-slot": "calendar",
|
|
6085
6377
|
role: "application",
|
|
6086
6378
|
className: cn(CALENDAR_ROOT, className),
|
|
6087
6379
|
children: [
|
|
6088
|
-
/* @__PURE__ */
|
|
6089
|
-
/* @__PURE__ */
|
|
6380
|
+
/* @__PURE__ */ jsxs23("div", { className: CALENDAR_NAV, children: [
|
|
6381
|
+
/* @__PURE__ */ jsx53(
|
|
6090
6382
|
"button",
|
|
6091
6383
|
{
|
|
6092
6384
|
type: "button",
|
|
6093
6385
|
className: navClass,
|
|
6094
6386
|
"aria-label": "Previous month",
|
|
6095
6387
|
onClick: () => go(-1),
|
|
6096
|
-
children: /* @__PURE__ */
|
|
6388
|
+
children: /* @__PURE__ */ jsx53(Chevron, { d: CHEVRON_LEFT })
|
|
6097
6389
|
}
|
|
6098
6390
|
),
|
|
6099
|
-
/* @__PURE__ */
|
|
6100
|
-
/* @__PURE__ */
|
|
6391
|
+
/* @__PURE__ */ jsx53("div", { className: CALENDAR_CAPTION, children: caption }),
|
|
6392
|
+
/* @__PURE__ */ jsx53(
|
|
6101
6393
|
"button",
|
|
6102
6394
|
{
|
|
6103
6395
|
type: "button",
|
|
6104
6396
|
className: navClass,
|
|
6105
6397
|
"aria-label": "Next month",
|
|
6106
6398
|
onClick: () => go(1),
|
|
6107
|
-
children: /* @__PURE__ */
|
|
6399
|
+
children: /* @__PURE__ */ jsx53(Chevron, { d: CHEVRON_RIGHT })
|
|
6108
6400
|
}
|
|
6109
6401
|
)
|
|
6110
6402
|
] }),
|
|
6111
|
-
/* @__PURE__ */
|
|
6112
|
-
/* @__PURE__ */
|
|
6403
|
+
/* @__PURE__ */ jsxs23("table", { className: CALENDAR_GRID, role: "grid", children: [
|
|
6404
|
+
/* @__PURE__ */ jsx53("thead", { children: /* @__PURE__ */ jsx53("tr", { className: CALENDAR_WEEKDAY_ROW, children: WEEKDAYS.map((wd) => /* @__PURE__ */ jsx53(
|
|
6113
6405
|
"th",
|
|
6114
6406
|
{
|
|
6115
6407
|
scope: "col",
|
|
@@ -6118,9 +6410,9 @@ function Calendar({
|
|
|
6118
6410
|
},
|
|
6119
6411
|
wd
|
|
6120
6412
|
)) }) }),
|
|
6121
|
-
/* @__PURE__ */
|
|
6413
|
+
/* @__PURE__ */ jsx53("tbody", { children: weeks.map((week, wi) => /* @__PURE__ */ jsx53("tr", { className: CALENDAR_WEEK, children: week.map((cell, ci) => {
|
|
6122
6414
|
if (cell === null) {
|
|
6123
|
-
return /* @__PURE__ */
|
|
6415
|
+
return /* @__PURE__ */ jsx53(
|
|
6124
6416
|
"td",
|
|
6125
6417
|
{
|
|
6126
6418
|
className: CALENDAR_DAY_EMPTY
|
|
@@ -6131,13 +6423,13 @@ function Calendar({
|
|
|
6131
6423
|
const date = new Date(year, monthIndex, cell);
|
|
6132
6424
|
const isSelected = sameDay(selected, date);
|
|
6133
6425
|
const isToday = sameDay(today, date);
|
|
6134
|
-
return /* @__PURE__ */
|
|
6426
|
+
return /* @__PURE__ */ jsx53(
|
|
6135
6427
|
"td",
|
|
6136
6428
|
{
|
|
6137
6429
|
role: "gridcell",
|
|
6138
6430
|
"aria-selected": isSelected,
|
|
6139
6431
|
className: CALENDAR_DAY_CELL,
|
|
6140
|
-
children: /* @__PURE__ */
|
|
6432
|
+
children: /* @__PURE__ */ jsx53(
|
|
6141
6433
|
"button",
|
|
6142
6434
|
{
|
|
6143
6435
|
type: "button",
|
|
@@ -6167,7 +6459,7 @@ function Calendar({
|
|
|
6167
6459
|
}
|
|
6168
6460
|
|
|
6169
6461
|
// src/components/sonner.tsx
|
|
6170
|
-
import * as
|
|
6462
|
+
import * as React63 from "react";
|
|
6171
6463
|
|
|
6172
6464
|
// src/generated/sonner.ts
|
|
6173
6465
|
var TOAST_BASE = "pointer-events-auto flex w-full items-start gap-3 rounded-md border p-4 text-sm shadow-lg";
|
|
@@ -6192,7 +6484,7 @@ var TOAST_CONTENT = "flex-1 space-y-1";
|
|
|
6192
6484
|
var TOAST_TITLE = "font-medium";
|
|
6193
6485
|
|
|
6194
6486
|
// src/components/sonner.tsx
|
|
6195
|
-
import { jsx as
|
|
6487
|
+
import { jsx as jsx54, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
6196
6488
|
var DEFAULT_DURATION = 4e3;
|
|
6197
6489
|
var SWIPE_THRESHOLD = 45;
|
|
6198
6490
|
var SWIPE_VELOCITY = 0.11;
|
|
@@ -6257,17 +6549,17 @@ function ToastItem({
|
|
|
6257
6549
|
reportHeight,
|
|
6258
6550
|
removeHeight
|
|
6259
6551
|
}) {
|
|
6260
|
-
const ref =
|
|
6261
|
-
const [height, setHeight] =
|
|
6262
|
-
const remainingRef =
|
|
6263
|
-
const startedRef =
|
|
6264
|
-
const flingRef =
|
|
6552
|
+
const ref = React63.useRef(null);
|
|
6553
|
+
const [height, setHeight] = React63.useState(0);
|
|
6554
|
+
const remainingRef = React63.useRef(t.duration);
|
|
6555
|
+
const startedRef = React63.useRef(0);
|
|
6556
|
+
const flingRef = React63.useRef(
|
|
6265
6557
|
void 0
|
|
6266
6558
|
);
|
|
6267
|
-
const dragRef =
|
|
6559
|
+
const dragRef = React63.useRef(
|
|
6268
6560
|
null
|
|
6269
6561
|
);
|
|
6270
|
-
|
|
6562
|
+
React63.useLayoutEffect(() => {
|
|
6271
6563
|
const el = ref.current;
|
|
6272
6564
|
if (!el) return;
|
|
6273
6565
|
el.style.height = "auto";
|
|
@@ -6278,8 +6570,8 @@ function ToastItem({
|
|
|
6278
6570
|
reportHeight(t.id, h);
|
|
6279
6571
|
}
|
|
6280
6572
|
}, [t.id, t.message, t.description, reportHeight]);
|
|
6281
|
-
|
|
6282
|
-
|
|
6573
|
+
React63.useEffect(() => () => removeHeight(t.id), [t.id, removeHeight]);
|
|
6574
|
+
React63.useEffect(() => {
|
|
6283
6575
|
if (t.duration === Infinity || t.state === "closing" || paused) return;
|
|
6284
6576
|
startedRef.current = Date.now();
|
|
6285
6577
|
const id = setTimeout(() => store.dismiss(t.id), remainingRef.current);
|
|
@@ -6291,7 +6583,7 @@ function ToastItem({
|
|
|
6291
6583
|
);
|
|
6292
6584
|
};
|
|
6293
6585
|
}, [paused, t.id, t.duration, t.state]);
|
|
6294
|
-
|
|
6586
|
+
React63.useEffect(
|
|
6295
6587
|
() => () => {
|
|
6296
6588
|
if (flingRef.current) clearTimeout(flingRef.current);
|
|
6297
6589
|
},
|
|
@@ -6350,7 +6642,7 @@ function ToastItem({
|
|
|
6350
6642
|
);
|
|
6351
6643
|
}
|
|
6352
6644
|
};
|
|
6353
|
-
return /* @__PURE__ */
|
|
6645
|
+
return /* @__PURE__ */ jsxs24(
|
|
6354
6646
|
"li",
|
|
6355
6647
|
{
|
|
6356
6648
|
ref,
|
|
@@ -6378,11 +6670,11 @@ function ToastItem({
|
|
|
6378
6670
|
toastVariantClasses[t.variant]
|
|
6379
6671
|
),
|
|
6380
6672
|
children: [
|
|
6381
|
-
/* @__PURE__ */
|
|
6382
|
-
/* @__PURE__ */
|
|
6383
|
-
t.description ? /* @__PURE__ */
|
|
6673
|
+
/* @__PURE__ */ jsxs24("div", { className: TOAST_CONTENT, children: [
|
|
6674
|
+
/* @__PURE__ */ jsx54("div", { className: TOAST_TITLE, children: t.message }),
|
|
6675
|
+
t.description ? /* @__PURE__ */ jsx54("div", { className: "text-muted-foreground text-sm", children: t.description }) : null
|
|
6384
6676
|
] }),
|
|
6385
|
-
/* @__PURE__ */
|
|
6677
|
+
/* @__PURE__ */ jsx54(
|
|
6386
6678
|
"button",
|
|
6387
6679
|
{
|
|
6388
6680
|
type: "button",
|
|
@@ -6390,7 +6682,7 @@ function ToastItem({
|
|
|
6390
6682
|
"data-slot": "toast-close",
|
|
6391
6683
|
onClick: () => store.dismiss(t.id),
|
|
6392
6684
|
className: TOAST_CLOSE,
|
|
6393
|
-
children: /* @__PURE__ */
|
|
6685
|
+
children: /* @__PURE__ */ jsx54(
|
|
6394
6686
|
"svg",
|
|
6395
6687
|
{
|
|
6396
6688
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -6403,7 +6695,7 @@ function ToastItem({
|
|
|
6403
6695
|
strokeLinecap: "round",
|
|
6404
6696
|
strokeLinejoin: "round",
|
|
6405
6697
|
"aria-hidden": "true",
|
|
6406
|
-
children: /* @__PURE__ */
|
|
6698
|
+
children: /* @__PURE__ */ jsx54("path", { d: "M18 6 6 18M6 6l12 12" })
|
|
6407
6699
|
}
|
|
6408
6700
|
)
|
|
6409
6701
|
}
|
|
@@ -6417,17 +6709,17 @@ function Toaster({
|
|
|
6417
6709
|
className,
|
|
6418
6710
|
...props
|
|
6419
6711
|
}) {
|
|
6420
|
-
const [toasts, setToasts] =
|
|
6421
|
-
const [heights, setHeights] =
|
|
6422
|
-
const [paused, setPaused] =
|
|
6423
|
-
|
|
6712
|
+
const [toasts, setToasts] = React63.useState([]);
|
|
6713
|
+
const [heights, setHeights] = React63.useState(/* @__PURE__ */ new Map());
|
|
6714
|
+
const [paused, setPaused] = React63.useState(false);
|
|
6715
|
+
React63.useEffect(() => store.subscribe(setToasts), []);
|
|
6424
6716
|
const onEnter = () => setPaused(true);
|
|
6425
6717
|
const onLeave = (e) => {
|
|
6426
6718
|
if (!e.currentTarget.contains(e.relatedTarget)) {
|
|
6427
6719
|
setPaused(false);
|
|
6428
6720
|
}
|
|
6429
6721
|
};
|
|
6430
|
-
const reportHeight =
|
|
6722
|
+
const reportHeight = React63.useCallback((id, h) => {
|
|
6431
6723
|
setHeights((prev) => {
|
|
6432
6724
|
if (prev.get(id) === h) return prev;
|
|
6433
6725
|
const next = new Map(prev);
|
|
@@ -6435,7 +6727,7 @@ function Toaster({
|
|
|
6435
6727
|
return next;
|
|
6436
6728
|
});
|
|
6437
6729
|
}, []);
|
|
6438
|
-
const removeHeight =
|
|
6730
|
+
const removeHeight = React63.useCallback((id) => {
|
|
6439
6731
|
setHeights((prev) => {
|
|
6440
6732
|
if (!prev.has(id)) return prev;
|
|
6441
6733
|
const next = new Map(prev);
|
|
@@ -6453,7 +6745,7 @@ function Toaster({
|
|
|
6453
6745
|
sum += heights.get(t.id) ?? 0;
|
|
6454
6746
|
return o;
|
|
6455
6747
|
});
|
|
6456
|
-
return /* @__PURE__ */
|
|
6748
|
+
return /* @__PURE__ */ jsx54(
|
|
6457
6749
|
"ol",
|
|
6458
6750
|
{
|
|
6459
6751
|
"data-slot": "toaster",
|
|
@@ -6474,7 +6766,7 @@ function Toaster({
|
|
|
6474
6766
|
onPointerOut: onLeave,
|
|
6475
6767
|
onFocus: onEnter,
|
|
6476
6768
|
onBlur: onLeave,
|
|
6477
|
-
children: ordered.map((t, i) => /* @__PURE__ */
|
|
6769
|
+
children: ordered.map((t, i) => /* @__PURE__ */ jsx54(
|
|
6478
6770
|
ToastItem,
|
|
6479
6771
|
{
|
|
6480
6772
|
toast: t,
|
|
@@ -6492,7 +6784,7 @@ function Toaster({
|
|
|
6492
6784
|
}
|
|
6493
6785
|
|
|
6494
6786
|
// src/components/form.tsx
|
|
6495
|
-
import * as
|
|
6787
|
+
import * as React64 from "react";
|
|
6496
6788
|
|
|
6497
6789
|
// src/generated/form.ts
|
|
6498
6790
|
var FORM_ITEM = "grid gap-2";
|
|
@@ -6500,21 +6792,21 @@ var FORM_DESCRIPTION = "text-muted-foreground text-sm";
|
|
|
6500
6792
|
var FORM_MESSAGE = "text-destructive text-sm";
|
|
6501
6793
|
|
|
6502
6794
|
// src/components/form.tsx
|
|
6503
|
-
import { jsx as
|
|
6504
|
-
var FormItemContext =
|
|
6795
|
+
import { jsx as jsx55 } from "react/jsx-runtime";
|
|
6796
|
+
var FormItemContext = React64.createContext(null);
|
|
6505
6797
|
function useFormItem() {
|
|
6506
|
-
const ctx =
|
|
6798
|
+
const ctx = React64.useContext(FormItemContext);
|
|
6507
6799
|
if (!ctx) {
|
|
6508
6800
|
throw new Error("Form parts must be used within <FormItem>");
|
|
6509
6801
|
}
|
|
6510
6802
|
return ctx;
|
|
6511
6803
|
}
|
|
6512
6804
|
function Form({ ...props }) {
|
|
6513
|
-
return /* @__PURE__ */
|
|
6805
|
+
return /* @__PURE__ */ jsx55("form", { "data-slot": "form", ...props });
|
|
6514
6806
|
}
|
|
6515
6807
|
function FormItem({ className, ...props }) {
|
|
6516
|
-
const id =
|
|
6517
|
-
const value =
|
|
6808
|
+
const id = React64.useId();
|
|
6809
|
+
const value = React64.useMemo(
|
|
6518
6810
|
() => ({
|
|
6519
6811
|
id,
|
|
6520
6812
|
formItemId: `${id}-form-item`,
|
|
@@ -6523,7 +6815,7 @@ function FormItem({ className, ...props }) {
|
|
|
6523
6815
|
}),
|
|
6524
6816
|
[id]
|
|
6525
6817
|
);
|
|
6526
|
-
return /* @__PURE__ */
|
|
6818
|
+
return /* @__PURE__ */ jsx55(FormItemContext.Provider, { value, children: /* @__PURE__ */ jsx55("div", { "data-slot": "form-item", className: cn(FORM_ITEM, className), ...props }) });
|
|
6527
6819
|
}
|
|
6528
6820
|
function FormLabel({
|
|
6529
6821
|
className,
|
|
@@ -6531,7 +6823,7 @@ function FormLabel({
|
|
|
6531
6823
|
...props
|
|
6532
6824
|
}) {
|
|
6533
6825
|
const { formItemId } = useFormItem();
|
|
6534
|
-
return /* @__PURE__ */
|
|
6826
|
+
return /* @__PURE__ */ jsx55(
|
|
6535
6827
|
Label,
|
|
6536
6828
|
{
|
|
6537
6829
|
"data-slot": "form-label",
|
|
@@ -6547,7 +6839,7 @@ function FormControl({
|
|
|
6547
6839
|
...props
|
|
6548
6840
|
}) {
|
|
6549
6841
|
const { formItemId, formDescriptionId, formMessageId } = useFormItem();
|
|
6550
|
-
return /* @__PURE__ */
|
|
6842
|
+
return /* @__PURE__ */ jsx55(
|
|
6551
6843
|
Slot,
|
|
6552
6844
|
{
|
|
6553
6845
|
"data-slot": "form-control",
|
|
@@ -6560,7 +6852,7 @@ function FormControl({
|
|
|
6560
6852
|
}
|
|
6561
6853
|
function FormDescription({ className, ...props }) {
|
|
6562
6854
|
const { formDescriptionId } = useFormItem();
|
|
6563
|
-
return /* @__PURE__ */
|
|
6855
|
+
return /* @__PURE__ */ jsx55(
|
|
6564
6856
|
"p",
|
|
6565
6857
|
{
|
|
6566
6858
|
"data-slot": "form-description",
|
|
@@ -6575,7 +6867,7 @@ function FormMessage({ className, children, ...props }) {
|
|
|
6575
6867
|
if (!children) {
|
|
6576
6868
|
return null;
|
|
6577
6869
|
}
|
|
6578
|
-
return /* @__PURE__ */
|
|
6870
|
+
return /* @__PURE__ */ jsx55(
|
|
6579
6871
|
"p",
|
|
6580
6872
|
{
|
|
6581
6873
|
"data-slot": "form-message",
|
|
@@ -6588,7 +6880,7 @@ function FormMessage({ className, children, ...props }) {
|
|
|
6588
6880
|
}
|
|
6589
6881
|
|
|
6590
6882
|
// src/components/resizable.tsx
|
|
6591
|
-
import * as
|
|
6883
|
+
import * as React65 from "react";
|
|
6592
6884
|
|
|
6593
6885
|
// src/generated/resizable.ts
|
|
6594
6886
|
var RESIZABLE_GROUP = "flex h-full w-full data-[panel-group-direction=vertical]:flex-col";
|
|
@@ -6597,10 +6889,10 @@ var RESIZABLE_HANDLE = "bg-border focus-visible:ring-ring relative flex w-px ite
|
|
|
6597
6889
|
var RESIZABLE_HANDLE_GRIP = "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border";
|
|
6598
6890
|
|
|
6599
6891
|
// src/components/resizable.tsx
|
|
6600
|
-
import { jsx as
|
|
6601
|
-
var ResizableContext =
|
|
6892
|
+
import { jsx as jsx56, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
6893
|
+
var ResizableContext = React65.createContext(null);
|
|
6602
6894
|
function useResizable() {
|
|
6603
|
-
const ctx =
|
|
6895
|
+
const ctx = React65.useContext(ResizableContext);
|
|
6604
6896
|
if (!ctx)
|
|
6605
6897
|
throw new Error("Resizable parts must be used within a ResizablePanelGroup");
|
|
6606
6898
|
return ctx;
|
|
@@ -6623,9 +6915,9 @@ function ResizablePanelGroup({
|
|
|
6623
6915
|
children,
|
|
6624
6916
|
...props
|
|
6625
6917
|
}) {
|
|
6626
|
-
const [sizes, setSizes] =
|
|
6627
|
-
const groupRef =
|
|
6628
|
-
const register =
|
|
6918
|
+
const [sizes, setSizes] = React65.useState([]);
|
|
6919
|
+
const groupRef = React65.useRef(null);
|
|
6920
|
+
const register = React65.useCallback((index, defaultSize) => {
|
|
6629
6921
|
setSizes((prev) => {
|
|
6630
6922
|
if (prev[index] !== void 0) return prev;
|
|
6631
6923
|
const next = prev.slice();
|
|
@@ -6634,14 +6926,14 @@ function ResizablePanelGroup({
|
|
|
6634
6926
|
return next;
|
|
6635
6927
|
});
|
|
6636
6928
|
}, []);
|
|
6637
|
-
|
|
6929
|
+
React65.useEffect(() => {
|
|
6638
6930
|
if (sizes.length) onLayout?.(sizes);
|
|
6639
6931
|
}, [sizes, onLayout]);
|
|
6640
|
-
const value =
|
|
6932
|
+
const value = React65.useMemo(
|
|
6641
6933
|
() => ({ sizes, setSizes, register, direction, keyboardStep, groupRef }),
|
|
6642
6934
|
[sizes, register, direction, keyboardStep]
|
|
6643
6935
|
);
|
|
6644
|
-
return /* @__PURE__ */
|
|
6936
|
+
return /* @__PURE__ */ jsx56(ResizableContext.Provider, { value, children: /* @__PURE__ */ jsx56(
|
|
6645
6937
|
"div",
|
|
6646
6938
|
{
|
|
6647
6939
|
ref: groupRef,
|
|
@@ -6662,11 +6954,11 @@ function ResizablePanel({
|
|
|
6662
6954
|
...props
|
|
6663
6955
|
}) {
|
|
6664
6956
|
const { sizes, register } = useResizable();
|
|
6665
|
-
|
|
6957
|
+
React65.useEffect(() => {
|
|
6666
6958
|
register(index, defaultSize);
|
|
6667
6959
|
}, [register, index, defaultSize]);
|
|
6668
6960
|
const basis = sizes[index] ?? defaultSize;
|
|
6669
|
-
return /* @__PURE__ */
|
|
6961
|
+
return /* @__PURE__ */ jsx56(
|
|
6670
6962
|
"div",
|
|
6671
6963
|
{
|
|
6672
6964
|
"data-slot": "resizable-panel",
|
|
@@ -6685,12 +6977,12 @@ function ResizableHandle({
|
|
|
6685
6977
|
...props
|
|
6686
6978
|
}) {
|
|
6687
6979
|
const { setSizes, direction, keyboardStep, groupRef } = useResizable();
|
|
6688
|
-
const draggingRef =
|
|
6689
|
-
const resize =
|
|
6980
|
+
const draggingRef = React65.useRef(false);
|
|
6981
|
+
const resize = React65.useCallback(
|
|
6690
6982
|
(delta) => setSizes((prev) => redistribute(prev, index, delta)),
|
|
6691
6983
|
[setSizes, index]
|
|
6692
6984
|
);
|
|
6693
|
-
const onPointerMove =
|
|
6985
|
+
const onPointerMove = React65.useCallback(
|
|
6694
6986
|
(event) => {
|
|
6695
6987
|
if (!draggingRef.current) return;
|
|
6696
6988
|
const rect = groupRef.current?.getBoundingClientRect();
|
|
@@ -6702,7 +6994,7 @@ function ResizableHandle({
|
|
|
6702
6994
|
},
|
|
6703
6995
|
[direction, resize, groupRef]
|
|
6704
6996
|
);
|
|
6705
|
-
const onPointerUp =
|
|
6997
|
+
const onPointerUp = React65.useCallback(() => {
|
|
6706
6998
|
draggingRef.current = false;
|
|
6707
6999
|
window.removeEventListener("pointermove", onPointerMove);
|
|
6708
7000
|
window.removeEventListener("pointerup", onPointerUp);
|
|
@@ -6713,7 +7005,7 @@ function ResizableHandle({
|
|
|
6713
7005
|
window.addEventListener("pointermove", onPointerMove);
|
|
6714
7006
|
window.addEventListener("pointerup", onPointerUp);
|
|
6715
7007
|
};
|
|
6716
|
-
|
|
7008
|
+
React65.useEffect(() => () => onPointerUp(), [onPointerUp]);
|
|
6717
7009
|
const onKeyDown = (event) => {
|
|
6718
7010
|
let delta;
|
|
6719
7011
|
switch (event.key) {
|
|
@@ -6733,7 +7025,7 @@ function ResizableHandle({
|
|
|
6733
7025
|
event.preventDefault();
|
|
6734
7026
|
resize(delta);
|
|
6735
7027
|
};
|
|
6736
|
-
return /* @__PURE__ */
|
|
7028
|
+
return /* @__PURE__ */ jsxs25(
|
|
6737
7029
|
"div",
|
|
6738
7030
|
{
|
|
6739
7031
|
"data-slot": "resizable-handle",
|
|
@@ -6746,7 +7038,7 @@ function ResizableHandle({
|
|
|
6746
7038
|
onKeyDown,
|
|
6747
7039
|
...props,
|
|
6748
7040
|
children: [
|
|
6749
|
-
withHandle && /* @__PURE__ */
|
|
7041
|
+
withHandle && /* @__PURE__ */ jsx56("div", { className: RESIZABLE_HANDLE_GRIP, children: /* @__PURE__ */ jsxs25(
|
|
6750
7042
|
"svg",
|
|
6751
7043
|
{
|
|
6752
7044
|
className: "size-2.5",
|
|
@@ -6761,12 +7053,12 @@ function ResizableHandle({
|
|
|
6761
7053
|
strokeLinejoin: "round",
|
|
6762
7054
|
"aria-hidden": "true",
|
|
6763
7055
|
children: [
|
|
6764
|
-
/* @__PURE__ */
|
|
6765
|
-
/* @__PURE__ */
|
|
6766
|
-
/* @__PURE__ */
|
|
6767
|
-
/* @__PURE__ */
|
|
6768
|
-
/* @__PURE__ */
|
|
6769
|
-
/* @__PURE__ */
|
|
7056
|
+
/* @__PURE__ */ jsx56("circle", { cx: "9", cy: "12", r: "1" }),
|
|
7057
|
+
/* @__PURE__ */ jsx56("circle", { cx: "9", cy: "5", r: "1" }),
|
|
7058
|
+
/* @__PURE__ */ jsx56("circle", { cx: "9", cy: "19", r: "1" }),
|
|
7059
|
+
/* @__PURE__ */ jsx56("circle", { cx: "15", cy: "12", r: "1" }),
|
|
7060
|
+
/* @__PURE__ */ jsx56("circle", { cx: "15", cy: "5", r: "1" }),
|
|
7061
|
+
/* @__PURE__ */ jsx56("circle", { cx: "15", cy: "19", r: "1" })
|
|
6770
7062
|
]
|
|
6771
7063
|
}
|
|
6772
7064
|
) }),
|
|
@@ -6907,12 +7199,14 @@ export {
|
|
|
6907
7199
|
FieldSeparator,
|
|
6908
7200
|
FieldSet,
|
|
6909
7201
|
FieldTitle,
|
|
7202
|
+
Footer,
|
|
6910
7203
|
Form,
|
|
6911
7204
|
FormControl,
|
|
6912
7205
|
FormDescription,
|
|
6913
7206
|
FormItem,
|
|
6914
7207
|
FormLabel,
|
|
6915
7208
|
FormMessage,
|
|
7209
|
+
Header,
|
|
6916
7210
|
HoverCard,
|
|
6917
7211
|
HoverCardContent,
|
|
6918
7212
|
HoverCardTrigger,
|
|
@@ -6940,6 +7234,7 @@ export {
|
|
|
6940
7234
|
Kbd,
|
|
6941
7235
|
KbdGroup,
|
|
6942
7236
|
Label,
|
|
7237
|
+
Logo,
|
|
6943
7238
|
Menubar,
|
|
6944
7239
|
MenubarCheckboxItem,
|
|
6945
7240
|
MenubarContent,
|