@evinvest/uikit 0.7.0 → 0.8.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/README.md +4 -2
- package/dist/index.d.ts +59 -6
- package/dist/index.js +976 -645
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/styles/tokens.css +1 -1
package/dist/index.js
CHANGED
|
@@ -266,6 +266,53 @@ function useRovingFocus(opts) {
|
|
|
266
266
|
return { activeIndex, setActiveIndex, onKeyDown };
|
|
267
267
|
}
|
|
268
268
|
|
|
269
|
+
// src/primitives/use-hover-intent.ts
|
|
270
|
+
import * as React9 from "react";
|
|
271
|
+
function useHoverIntent(opts) {
|
|
272
|
+
const { onOpen, onClose, openDelay = 500, closeDelay = 0 } = opts;
|
|
273
|
+
const openRef = React9.useRef(onOpen);
|
|
274
|
+
const closeRef = React9.useRef(onClose);
|
|
275
|
+
React9.useEffect(() => {
|
|
276
|
+
openRef.current = onOpen;
|
|
277
|
+
closeRef.current = onClose;
|
|
278
|
+
});
|
|
279
|
+
const timer = React9.useRef(null);
|
|
280
|
+
const clear = React9.useCallback(() => {
|
|
281
|
+
if (timer.current != null) {
|
|
282
|
+
clearTimeout(timer.current);
|
|
283
|
+
timer.current = null;
|
|
284
|
+
}
|
|
285
|
+
}, []);
|
|
286
|
+
React9.useEffect(() => clear, [clear]);
|
|
287
|
+
const onPointerEnter = React9.useCallback(
|
|
288
|
+
(event) => {
|
|
289
|
+
if (event.pointerType !== "mouse") return;
|
|
290
|
+
clear();
|
|
291
|
+
timer.current = setTimeout(() => {
|
|
292
|
+
timer.current = null;
|
|
293
|
+
openRef.current();
|
|
294
|
+
}, openDelay);
|
|
295
|
+
},
|
|
296
|
+
[clear, openDelay]
|
|
297
|
+
);
|
|
298
|
+
const onPointerLeave = React9.useCallback(
|
|
299
|
+
(event) => {
|
|
300
|
+
if (event.pointerType !== "mouse") return;
|
|
301
|
+
clear();
|
|
302
|
+
if (closeDelay > 0) {
|
|
303
|
+
timer.current = setTimeout(() => {
|
|
304
|
+
timer.current = null;
|
|
305
|
+
closeRef.current();
|
|
306
|
+
}, closeDelay);
|
|
307
|
+
} else {
|
|
308
|
+
closeRef.current();
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
[clear, closeDelay]
|
|
312
|
+
);
|
|
313
|
+
return { onPointerEnter, onPointerLeave };
|
|
314
|
+
}
|
|
315
|
+
|
|
269
316
|
// src/primitives/merge-refs.ts
|
|
270
317
|
import "react";
|
|
271
318
|
function mergeRefs(...refs) {
|
|
@@ -327,7 +374,7 @@ function AlertDescription({
|
|
|
327
374
|
}
|
|
328
375
|
|
|
329
376
|
// src/components/avatar.tsx
|
|
330
|
-
import * as
|
|
377
|
+
import * as React12 from "react";
|
|
331
378
|
|
|
332
379
|
// src/generated/avatar.ts
|
|
333
380
|
var AVATAR = "relative flex size-8 shrink-0 overflow-hidden rounded-full";
|
|
@@ -351,7 +398,7 @@ function AvatarImage({
|
|
|
351
398
|
onError,
|
|
352
399
|
...props
|
|
353
400
|
}) {
|
|
354
|
-
const [errored, setErrored] =
|
|
401
|
+
const [errored, setErrored] = React12.useState(false);
|
|
355
402
|
if (errored) return null;
|
|
356
403
|
return /* @__PURE__ */ jsx2(
|
|
357
404
|
"img",
|
|
@@ -825,7 +872,7 @@ function EmptyContent({
|
|
|
825
872
|
}
|
|
826
873
|
|
|
827
874
|
// src/components/field.tsx
|
|
828
|
-
import * as
|
|
875
|
+
import * as React20 from "react";
|
|
829
876
|
|
|
830
877
|
// src/components/label.tsx
|
|
831
878
|
import "react";
|
|
@@ -983,7 +1030,7 @@ function FieldError({
|
|
|
983
1030
|
errors,
|
|
984
1031
|
...props
|
|
985
1032
|
}) {
|
|
986
|
-
const content =
|
|
1033
|
+
const content = React20.useMemo(() => {
|
|
987
1034
|
if (children) {
|
|
988
1035
|
return children;
|
|
989
1036
|
}
|
|
@@ -1012,8 +1059,92 @@ function FieldError({
|
|
|
1012
1059
|
);
|
|
1013
1060
|
}
|
|
1014
1061
|
|
|
1062
|
+
// src/components/section-descriptor.tsx
|
|
1063
|
+
import "react";
|
|
1064
|
+
import { Fragment, jsx as jsx11, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
1065
|
+
var SECTION_DESCRIPTOR = "flex flex-col gap-2 rounded-lg border bg-accent p-4 text-left";
|
|
1066
|
+
function InfoGlyph({ className }) {
|
|
1067
|
+
return /* @__PURE__ */ jsxs3(
|
|
1068
|
+
"svg",
|
|
1069
|
+
{
|
|
1070
|
+
viewBox: "0 0 24 24",
|
|
1071
|
+
fill: "none",
|
|
1072
|
+
stroke: "currentColor",
|
|
1073
|
+
strokeWidth: 2,
|
|
1074
|
+
strokeLinecap: "round",
|
|
1075
|
+
strokeLinejoin: "round",
|
|
1076
|
+
"aria-hidden": true,
|
|
1077
|
+
className: cn("size-4 shrink-0", className),
|
|
1078
|
+
children: [
|
|
1079
|
+
/* @__PURE__ */ jsx11("circle", { cx: "12", cy: "12", r: "10" }),
|
|
1080
|
+
/* @__PURE__ */ jsx11("path", { d: "M12 16v-4" }),
|
|
1081
|
+
/* @__PURE__ */ jsx11("path", { d: "M12 8h.01" })
|
|
1082
|
+
]
|
|
1083
|
+
}
|
|
1084
|
+
);
|
|
1085
|
+
}
|
|
1086
|
+
function SectionDescriptor({
|
|
1087
|
+
title,
|
|
1088
|
+
icon = true,
|
|
1089
|
+
collapsible = false,
|
|
1090
|
+
defaultOpen = false,
|
|
1091
|
+
className,
|
|
1092
|
+
children,
|
|
1093
|
+
...props
|
|
1094
|
+
}) {
|
|
1095
|
+
const titleContent = /* @__PURE__ */ jsxs3(Fragment, { children: [
|
|
1096
|
+
icon && /* @__PURE__ */ jsx11(InfoGlyph, { className: "text-main-accent-t1" }),
|
|
1097
|
+
/* @__PURE__ */ jsx11("span", { children: title })
|
|
1098
|
+
] });
|
|
1099
|
+
if (collapsible) {
|
|
1100
|
+
return /* @__PURE__ */ jsxs3(
|
|
1101
|
+
"details",
|
|
1102
|
+
{
|
|
1103
|
+
"data-slot": "section-descriptor",
|
|
1104
|
+
"data-collapsible": "",
|
|
1105
|
+
open: defaultOpen,
|
|
1106
|
+
className: cn(SECTION_DESCRIPTOR, className),
|
|
1107
|
+
...props,
|
|
1108
|
+
children: [
|
|
1109
|
+
/* @__PURE__ */ jsx11(
|
|
1110
|
+
"summary",
|
|
1111
|
+
{
|
|
1112
|
+
"data-slot": "section-descriptor-title",
|
|
1113
|
+
className: cn(
|
|
1114
|
+
FIELD_TITLE,
|
|
1115
|
+
"cursor-pointer list-none [&::-webkit-details-marker]:hidden"
|
|
1116
|
+
),
|
|
1117
|
+
children: titleContent
|
|
1118
|
+
}
|
|
1119
|
+
),
|
|
1120
|
+
/* @__PURE__ */ jsx11(
|
|
1121
|
+
"p",
|
|
1122
|
+
{
|
|
1123
|
+
"data-slot": "section-descriptor-body",
|
|
1124
|
+
className: cn(FIELD_DESCRIPTION, "mt-2"),
|
|
1125
|
+
children
|
|
1126
|
+
}
|
|
1127
|
+
)
|
|
1128
|
+
]
|
|
1129
|
+
}
|
|
1130
|
+
);
|
|
1131
|
+
}
|
|
1132
|
+
return /* @__PURE__ */ jsxs3(
|
|
1133
|
+
"section",
|
|
1134
|
+
{
|
|
1135
|
+
"data-slot": "section-descriptor",
|
|
1136
|
+
className: cn(SECTION_DESCRIPTOR, className),
|
|
1137
|
+
...props,
|
|
1138
|
+
children: [
|
|
1139
|
+
/* @__PURE__ */ jsx11("div", { "data-slot": "section-descriptor-title", className: FIELD_TITLE, children: titleContent }),
|
|
1140
|
+
/* @__PURE__ */ jsx11("p", { "data-slot": "section-descriptor-body", className: FIELD_DESCRIPTION, children })
|
|
1141
|
+
]
|
|
1142
|
+
}
|
|
1143
|
+
);
|
|
1144
|
+
}
|
|
1145
|
+
|
|
1015
1146
|
// src/components/footer.tsx
|
|
1016
|
-
import * as
|
|
1147
|
+
import * as React24 from "react";
|
|
1017
1148
|
|
|
1018
1149
|
// src/components/container.tsx
|
|
1019
1150
|
import "react";
|
|
@@ -1022,9 +1153,9 @@ import "react";
|
|
|
1022
1153
|
var CONTAINER_BASE = "mx-auto w-full max-w-[var(--page-max,90rem)] px-[var(--page-px,1rem)]";
|
|
1023
1154
|
|
|
1024
1155
|
// src/components/container.tsx
|
|
1025
|
-
import { jsx as
|
|
1156
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
1026
1157
|
function Container({ className, ...props }) {
|
|
1027
|
-
return /* @__PURE__ */
|
|
1158
|
+
return /* @__PURE__ */ jsx12(
|
|
1028
1159
|
"div",
|
|
1029
1160
|
{
|
|
1030
1161
|
"data-slot": "container",
|
|
@@ -1036,7 +1167,7 @@ function Container({ className, ...props }) {
|
|
|
1036
1167
|
|
|
1037
1168
|
// src/components/logo.tsx
|
|
1038
1169
|
import "react";
|
|
1039
|
-
import { jsx as
|
|
1170
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
1040
1171
|
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
1172
|
var LOGO_BG = "oklch(0.256 0.1 260)";
|
|
1042
1173
|
function Logo({ className, withBackground = false, src }) {
|
|
@@ -1052,7 +1183,7 @@ function Logo({ className, withBackground = false, src }) {
|
|
|
1052
1183
|
maskSize: "contain",
|
|
1053
1184
|
WebkitMaskSize: "contain"
|
|
1054
1185
|
};
|
|
1055
|
-
const mark = /* @__PURE__ */
|
|
1186
|
+
const mark = /* @__PURE__ */ jsx13(
|
|
1056
1187
|
"span",
|
|
1057
1188
|
{
|
|
1058
1189
|
"data-slot": "logo",
|
|
@@ -1063,7 +1194,7 @@ function Logo({ className, withBackground = false, src }) {
|
|
|
1063
1194
|
}
|
|
1064
1195
|
);
|
|
1065
1196
|
if (!withBackground) return mark;
|
|
1066
|
-
return /* @__PURE__ */
|
|
1197
|
+
return /* @__PURE__ */ jsx13(
|
|
1067
1198
|
"span",
|
|
1068
1199
|
{
|
|
1069
1200
|
"data-slot": "logo-background",
|
|
@@ -1075,7 +1206,7 @@ function Logo({ className, withBackground = false, src }) {
|
|
|
1075
1206
|
}
|
|
1076
1207
|
|
|
1077
1208
|
// src/components/footer.tsx
|
|
1078
|
-
import { Fragment as
|
|
1209
|
+
import { Fragment as Fragment3, jsx as jsx14, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1079
1210
|
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
1211
|
var DEFAULT_OFFICES = [
|
|
1081
1212
|
{
|
|
@@ -1105,37 +1236,37 @@ function Footer({
|
|
|
1105
1236
|
children
|
|
1106
1237
|
}) {
|
|
1107
1238
|
const L = linkComponent ?? "a";
|
|
1108
|
-
return /* @__PURE__ */
|
|
1239
|
+
return /* @__PURE__ */ jsxs4(
|
|
1109
1240
|
"footer",
|
|
1110
1241
|
{
|
|
1111
1242
|
"data-slot": "footer",
|
|
1112
1243
|
className: "bg-main-black border-t border-main-mist/10 py-16",
|
|
1113
1244
|
children: [
|
|
1114
1245
|
children,
|
|
1115
|
-
/* @__PURE__ */
|
|
1116
|
-
/* @__PURE__ */
|
|
1117
|
-
/* @__PURE__ */
|
|
1118
|
-
/* @__PURE__ */
|
|
1119
|
-
/* @__PURE__ */
|
|
1120
|
-
/* @__PURE__ */
|
|
1121
|
-
/* @__PURE__ */
|
|
1122
|
-
/* @__PURE__ */
|
|
1246
|
+
/* @__PURE__ */ jsxs4(Container, { children: [
|
|
1247
|
+
/* @__PURE__ */ jsxs4("div", { className: "grid grid-cols-2 gap-x-8 gap-y-8 lg:grid-cols-12 mb-12", children: [
|
|
1248
|
+
/* @__PURE__ */ jsxs4("div", { className: "col-span-2 lg:col-span-3", children: [
|
|
1249
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-3 mb-6", children: [
|
|
1250
|
+
/* @__PURE__ */ jsx14(Logo, { className: "w-8 h-8 text-white" }),
|
|
1251
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex flex-col", children: [
|
|
1252
|
+
/* @__PURE__ */ jsx14("span", { className: "font-serif-display font-bold text-base tracking-wider text-white", children: "EV INVESTMENT" }),
|
|
1253
|
+
/* @__PURE__ */ jsx14("span", { className: "text-[8px] font-mono-tech tracking-[0.3em] text-main-accent-t1 uppercase", children: tagline })
|
|
1123
1254
|
] })
|
|
1124
1255
|
] }),
|
|
1125
|
-
/* @__PURE__ */
|
|
1126
|
-
/* @__PURE__ */
|
|
1127
|
-
i > 0 && /* @__PURE__ */
|
|
1128
|
-
/* @__PURE__ */
|
|
1256
|
+
/* @__PURE__ */ jsx14("p", { className: "text-main-mist/40 text-xs font-light max-w-sm leading-relaxed mb-6", children: description }),
|
|
1257
|
+
/* @__PURE__ */ jsx14("div", { className: "flex gap-4 text-xs font-mono-tech text-main-accent-t1", children: legalLinks.map((link, i) => /* @__PURE__ */ jsxs4(React24.Fragment, { children: [
|
|
1258
|
+
i > 0 && /* @__PURE__ */ jsx14("span", { className: "text-main-mist/20", children: "|" }),
|
|
1259
|
+
/* @__PURE__ */ jsx14(L, { href: link.href, className: "hover:underline", children: link.label })
|
|
1129
1260
|
] }, link.label)) })
|
|
1130
1261
|
] }),
|
|
1131
|
-
nav.map((group) => /* @__PURE__ */
|
|
1262
|
+
nav.map((group) => /* @__PURE__ */ jsxs4(
|
|
1132
1263
|
"nav",
|
|
1133
1264
|
{
|
|
1134
1265
|
"aria-label": `Footer ${group.heading} links`,
|
|
1135
1266
|
className: "lg:col-span-2",
|
|
1136
1267
|
children: [
|
|
1137
|
-
/* @__PURE__ */
|
|
1138
|
-
/* @__PURE__ */
|
|
1268
|
+
/* @__PURE__ */ jsx14("h4", { className: "font-mono-tech text-xs text-white uppercase tracking-widest mb-6", children: group.heading }),
|
|
1269
|
+
/* @__PURE__ */ jsx14("ul", { className: "space-y-3", children: group.links.map((link) => /* @__PURE__ */ jsx14("li", { children: /* @__PURE__ */ jsx14(
|
|
1139
1270
|
L,
|
|
1140
1271
|
{
|
|
1141
1272
|
href: link.href,
|
|
@@ -1147,24 +1278,24 @@ function Footer({
|
|
|
1147
1278
|
},
|
|
1148
1279
|
group.heading
|
|
1149
1280
|
)),
|
|
1150
|
-
/* @__PURE__ */
|
|
1151
|
-
/* @__PURE__ */
|
|
1152
|
-
/* @__PURE__ */
|
|
1153
|
-
/* @__PURE__ */
|
|
1281
|
+
/* @__PURE__ */ jsxs4("div", { className: "col-span-2 lg:col-span-3", children: [
|
|
1282
|
+
/* @__PURE__ */ jsx14("h4", { className: "font-mono-tech text-xs text-white uppercase tracking-widest mb-6", children: "Offices" }),
|
|
1283
|
+
/* @__PURE__ */ jsx14("ul", { className: "space-y-4 text-xs text-main-mist/70 font-light leading-relaxed", children: offices.map((office) => /* @__PURE__ */ jsxs4("li", { children: [
|
|
1284
|
+
/* @__PURE__ */ jsx14("strong", { className: "text-white block font-mono-tech text-[10px] uppercase tracking-wider mb-1", children: office.name }),
|
|
1154
1285
|
office.address
|
|
1155
1286
|
] }, office.name)) })
|
|
1156
1287
|
] }),
|
|
1157
|
-
newsletter && /* @__PURE__ */
|
|
1158
|
-
/* @__PURE__ */
|
|
1159
|
-
/* @__PURE__ */
|
|
1288
|
+
newsletter && /* @__PURE__ */ jsxs4("div", { className: "col-span-2 lg:col-span-2", children: [
|
|
1289
|
+
/* @__PURE__ */ jsx14("h4", { className: "font-mono-tech text-xs text-white uppercase tracking-widest mb-6", children: "Newsletter" }),
|
|
1290
|
+
/* @__PURE__ */ jsx14("p", { className: "text-sm sm:text-xs font-light leading-relaxed text-main-mist/70 mb-4", children: newsletterBlurb }),
|
|
1160
1291
|
newsletter
|
|
1161
1292
|
] })
|
|
1162
1293
|
] }),
|
|
1163
|
-
/* @__PURE__ */
|
|
1294
|
+
/* @__PURE__ */ jsx14("div", { className: "border-t border-main-mist/10 pt-8 text-[10px] font-mono-tech text-main-mist/40", children: /* @__PURE__ */ jsxs4("p", { children: [
|
|
1164
1295
|
"\xA9 2026 EV Investment. All rights reserved.",
|
|
1165
|
-
version && /* @__PURE__ */
|
|
1296
|
+
version && /* @__PURE__ */ jsxs4(Fragment3, { children: [
|
|
1166
1297
|
" ",
|
|
1167
|
-
/* @__PURE__ */
|
|
1298
|
+
/* @__PURE__ */ jsx14("a", { href: commitHref, className: "text-main-mist/30", children: version })
|
|
1168
1299
|
] })
|
|
1169
1300
|
] }) })
|
|
1170
1301
|
] })
|
|
@@ -1180,9 +1311,9 @@ import "react";
|
|
|
1180
1311
|
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";
|
|
1181
1312
|
|
|
1182
1313
|
// src/components/input.tsx
|
|
1183
|
-
import { jsx as
|
|
1314
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
1184
1315
|
function Input({ className, type, ...props }) {
|
|
1185
|
-
return /* @__PURE__ */
|
|
1316
|
+
return /* @__PURE__ */ jsx15(
|
|
1186
1317
|
"input",
|
|
1187
1318
|
{
|
|
1188
1319
|
type,
|
|
@@ -1200,9 +1331,9 @@ import "react";
|
|
|
1200
1331
|
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";
|
|
1201
1332
|
|
|
1202
1333
|
// src/components/textarea.tsx
|
|
1203
|
-
import { jsx as
|
|
1334
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
1204
1335
|
function Textarea({ className, ...props }) {
|
|
1205
|
-
return /* @__PURE__ */
|
|
1336
|
+
return /* @__PURE__ */ jsx16("textarea", { "data-slot": "textarea", className: cn(TEXTAREA_BASE, className), ...props });
|
|
1206
1337
|
}
|
|
1207
1338
|
|
|
1208
1339
|
// src/components/input-group.tsx
|
|
@@ -1229,12 +1360,12 @@ var INPUT_GROUP_INPUT_CONTROL = "flex-1 rounded-none border-0 bg-transparent sha
|
|
|
1229
1360
|
var INPUT_GROUP_TEXTAREA_CONTROL = "flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0";
|
|
1230
1361
|
|
|
1231
1362
|
// src/components/input-group.tsx
|
|
1232
|
-
import { jsx as
|
|
1363
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
1233
1364
|
function InputGroup({
|
|
1234
1365
|
className,
|
|
1235
1366
|
...props
|
|
1236
1367
|
}) {
|
|
1237
|
-
return /* @__PURE__ */
|
|
1368
|
+
return /* @__PURE__ */ jsx17(
|
|
1238
1369
|
"div",
|
|
1239
1370
|
{
|
|
1240
1371
|
"data-slot": "input-group",
|
|
@@ -1249,7 +1380,7 @@ function InputGroupAddon({
|
|
|
1249
1380
|
align = "inline-start",
|
|
1250
1381
|
...props
|
|
1251
1382
|
}) {
|
|
1252
|
-
return /* @__PURE__ */
|
|
1383
|
+
return /* @__PURE__ */ jsx17(
|
|
1253
1384
|
"div",
|
|
1254
1385
|
{
|
|
1255
1386
|
role: "group",
|
|
@@ -1275,7 +1406,7 @@ function InputGroupButton({
|
|
|
1275
1406
|
size = "xs",
|
|
1276
1407
|
...props
|
|
1277
1408
|
}) {
|
|
1278
|
-
return /* @__PURE__ */
|
|
1409
|
+
return /* @__PURE__ */ jsx17(
|
|
1279
1410
|
Button,
|
|
1280
1411
|
{
|
|
1281
1412
|
type,
|
|
@@ -1294,7 +1425,7 @@ function InputGroupText({
|
|
|
1294
1425
|
className,
|
|
1295
1426
|
...props
|
|
1296
1427
|
}) {
|
|
1297
|
-
return /* @__PURE__ */
|
|
1428
|
+
return /* @__PURE__ */ jsx17(
|
|
1298
1429
|
"span",
|
|
1299
1430
|
{
|
|
1300
1431
|
className: cn(INPUT_GROUP_TEXT, className),
|
|
@@ -1306,7 +1437,7 @@ function InputGroupInput({
|
|
|
1306
1437
|
className,
|
|
1307
1438
|
...props
|
|
1308
1439
|
}) {
|
|
1309
|
-
return /* @__PURE__ */
|
|
1440
|
+
return /* @__PURE__ */ jsx17(
|
|
1310
1441
|
Input,
|
|
1311
1442
|
{
|
|
1312
1443
|
"data-slot": "input-group-control",
|
|
@@ -1319,7 +1450,7 @@ function InputGroupTextarea({
|
|
|
1319
1450
|
className,
|
|
1320
1451
|
...props
|
|
1321
1452
|
}) {
|
|
1322
|
-
return /* @__PURE__ */
|
|
1453
|
+
return /* @__PURE__ */ jsx17(
|
|
1323
1454
|
Textarea,
|
|
1324
1455
|
{
|
|
1325
1456
|
"data-slot": "input-group-control",
|
|
@@ -1343,13 +1474,13 @@ var separatorOrientations = {
|
|
|
1343
1474
|
};
|
|
1344
1475
|
|
|
1345
1476
|
// src/components/separator.tsx
|
|
1346
|
-
import { jsx as
|
|
1477
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
1347
1478
|
function Separator({
|
|
1348
1479
|
className,
|
|
1349
1480
|
orientation = "horizontal",
|
|
1350
1481
|
...props
|
|
1351
1482
|
}) {
|
|
1352
|
-
return /* @__PURE__ */
|
|
1483
|
+
return /* @__PURE__ */ jsx18(
|
|
1353
1484
|
"div",
|
|
1354
1485
|
{
|
|
1355
1486
|
role: "separator",
|
|
@@ -1392,9 +1523,9 @@ var ITEM_HEADER = "flex basis-full items-center justify-between gap-2";
|
|
|
1392
1523
|
var ITEM_FOOTER = "flex basis-full items-center justify-between gap-2";
|
|
1393
1524
|
|
|
1394
1525
|
// src/components/item.tsx
|
|
1395
|
-
import { jsx as
|
|
1526
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
1396
1527
|
function ItemGroup({ className, ...props }) {
|
|
1397
|
-
return /* @__PURE__ */
|
|
1528
|
+
return /* @__PURE__ */ jsx19(
|
|
1398
1529
|
"div",
|
|
1399
1530
|
{
|
|
1400
1531
|
role: "list",
|
|
@@ -1408,7 +1539,7 @@ function ItemSeparator({
|
|
|
1408
1539
|
className,
|
|
1409
1540
|
...props
|
|
1410
1541
|
}) {
|
|
1411
|
-
return /* @__PURE__ */
|
|
1542
|
+
return /* @__PURE__ */ jsx19(
|
|
1412
1543
|
Separator,
|
|
1413
1544
|
{
|
|
1414
1545
|
"data-slot": "item-separator",
|
|
@@ -1426,7 +1557,7 @@ function Item({
|
|
|
1426
1557
|
...props
|
|
1427
1558
|
}) {
|
|
1428
1559
|
const Comp = asChild ? Slot : "div";
|
|
1429
|
-
return /* @__PURE__ */
|
|
1560
|
+
return /* @__PURE__ */ jsx19(
|
|
1430
1561
|
Comp,
|
|
1431
1562
|
{
|
|
1432
1563
|
"data-slot": "item",
|
|
@@ -1442,7 +1573,7 @@ function ItemMedia({
|
|
|
1442
1573
|
variant = "default",
|
|
1443
1574
|
...props
|
|
1444
1575
|
}) {
|
|
1445
|
-
return /* @__PURE__ */
|
|
1576
|
+
return /* @__PURE__ */ jsx19(
|
|
1446
1577
|
"div",
|
|
1447
1578
|
{
|
|
1448
1579
|
"data-slot": "item-media",
|
|
@@ -1456,7 +1587,7 @@ function ItemContent({
|
|
|
1456
1587
|
className,
|
|
1457
1588
|
...props
|
|
1458
1589
|
}) {
|
|
1459
|
-
return /* @__PURE__ */
|
|
1590
|
+
return /* @__PURE__ */ jsx19(
|
|
1460
1591
|
"div",
|
|
1461
1592
|
{
|
|
1462
1593
|
"data-slot": "item-content",
|
|
@@ -1466,7 +1597,7 @@ function ItemContent({
|
|
|
1466
1597
|
);
|
|
1467
1598
|
}
|
|
1468
1599
|
function ItemTitle({ className, ...props }) {
|
|
1469
|
-
return /* @__PURE__ */
|
|
1600
|
+
return /* @__PURE__ */ jsx19(
|
|
1470
1601
|
"div",
|
|
1471
1602
|
{
|
|
1472
1603
|
"data-slot": "item-title",
|
|
@@ -1479,7 +1610,7 @@ function ItemDescription({
|
|
|
1479
1610
|
className,
|
|
1480
1611
|
...props
|
|
1481
1612
|
}) {
|
|
1482
|
-
return /* @__PURE__ */
|
|
1613
|
+
return /* @__PURE__ */ jsx19(
|
|
1483
1614
|
"p",
|
|
1484
1615
|
{
|
|
1485
1616
|
"data-slot": "item-description",
|
|
@@ -1492,7 +1623,7 @@ function ItemActions({
|
|
|
1492
1623
|
className,
|
|
1493
1624
|
...props
|
|
1494
1625
|
}) {
|
|
1495
|
-
return /* @__PURE__ */
|
|
1626
|
+
return /* @__PURE__ */ jsx19(
|
|
1496
1627
|
"div",
|
|
1497
1628
|
{
|
|
1498
1629
|
"data-slot": "item-actions",
|
|
@@ -1505,7 +1636,7 @@ function ItemHeader({
|
|
|
1505
1636
|
className,
|
|
1506
1637
|
...props
|
|
1507
1638
|
}) {
|
|
1508
|
-
return /* @__PURE__ */
|
|
1639
|
+
return /* @__PURE__ */ jsx19(
|
|
1509
1640
|
"div",
|
|
1510
1641
|
{
|
|
1511
1642
|
"data-slot": "item-header",
|
|
@@ -1518,7 +1649,7 @@ function ItemFooter({
|
|
|
1518
1649
|
className,
|
|
1519
1650
|
...props
|
|
1520
1651
|
}) {
|
|
1521
|
-
return /* @__PURE__ */
|
|
1652
|
+
return /* @__PURE__ */ jsx19(
|
|
1522
1653
|
"div",
|
|
1523
1654
|
{
|
|
1524
1655
|
"data-slot": "item-footer",
|
|
@@ -1536,9 +1667,9 @@ var KBD_BASE = "bg-muted text-muted-foreground pointer-events-none inline-flex h
|
|
|
1536
1667
|
var KBD_GROUP_BASE = "inline-flex items-center gap-1";
|
|
1537
1668
|
|
|
1538
1669
|
// src/components/kbd.tsx
|
|
1539
|
-
import { jsx as
|
|
1670
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
1540
1671
|
function Kbd({ className, ...props }) {
|
|
1541
|
-
return /* @__PURE__ */
|
|
1672
|
+
return /* @__PURE__ */ jsx20(
|
|
1542
1673
|
"kbd",
|
|
1543
1674
|
{
|
|
1544
1675
|
"data-slot": "kbd",
|
|
@@ -1548,7 +1679,7 @@ function Kbd({ className, ...props }) {
|
|
|
1548
1679
|
);
|
|
1549
1680
|
}
|
|
1550
1681
|
function KbdGroup({ className, ...props }) {
|
|
1551
|
-
return /* @__PURE__ */
|
|
1682
|
+
return /* @__PURE__ */ jsx20(
|
|
1552
1683
|
"kbd",
|
|
1553
1684
|
{
|
|
1554
1685
|
"data-slot": "kbd-group",
|
|
@@ -1560,9 +1691,9 @@ function KbdGroup({ className, ...props }) {
|
|
|
1560
1691
|
|
|
1561
1692
|
// src/components/pagination.tsx
|
|
1562
1693
|
import "react";
|
|
1563
|
-
import { jsx as
|
|
1694
|
+
import { jsx as jsx21, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1564
1695
|
function Pagination({ className, ...props }) {
|
|
1565
|
-
return /* @__PURE__ */
|
|
1696
|
+
return /* @__PURE__ */ jsx21(
|
|
1566
1697
|
"nav",
|
|
1567
1698
|
{
|
|
1568
1699
|
role: "navigation",
|
|
@@ -1577,7 +1708,7 @@ function PaginationContent({
|
|
|
1577
1708
|
className,
|
|
1578
1709
|
...props
|
|
1579
1710
|
}) {
|
|
1580
|
-
return /* @__PURE__ */
|
|
1711
|
+
return /* @__PURE__ */ jsx21(
|
|
1581
1712
|
"ul",
|
|
1582
1713
|
{
|
|
1583
1714
|
"data-slot": "pagination-content",
|
|
@@ -1587,7 +1718,7 @@ function PaginationContent({
|
|
|
1587
1718
|
);
|
|
1588
1719
|
}
|
|
1589
1720
|
function PaginationItem(props) {
|
|
1590
|
-
return /* @__PURE__ */
|
|
1721
|
+
return /* @__PURE__ */ jsx21("li", { "data-slot": "pagination-item", ...props });
|
|
1591
1722
|
}
|
|
1592
1723
|
function PaginationLink({
|
|
1593
1724
|
className,
|
|
@@ -1595,7 +1726,7 @@ function PaginationLink({
|
|
|
1595
1726
|
size = "icon",
|
|
1596
1727
|
...props
|
|
1597
1728
|
}) {
|
|
1598
|
-
return /* @__PURE__ */
|
|
1729
|
+
return /* @__PURE__ */ jsx21(
|
|
1599
1730
|
"a",
|
|
1600
1731
|
{
|
|
1601
1732
|
"aria-current": isActive ? "page" : void 0,
|
|
@@ -1612,9 +1743,9 @@ function PaginationLink({
|
|
|
1612
1743
|
}
|
|
1613
1744
|
);
|
|
1614
1745
|
}
|
|
1615
|
-
var ChevronLeft = () => /* @__PURE__ */
|
|
1616
|
-
var ChevronRight = () => /* @__PURE__ */
|
|
1617
|
-
var MoreHorizontal = () => /* @__PURE__ */
|
|
1746
|
+
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" }) });
|
|
1747
|
+
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" }) });
|
|
1748
|
+
var MoreHorizontal = () => /* @__PURE__ */ jsxs5(
|
|
1618
1749
|
"svg",
|
|
1619
1750
|
{
|
|
1620
1751
|
className: "size-4",
|
|
@@ -1623,9 +1754,9 @@ var MoreHorizontal = () => /* @__PURE__ */ jsxs4(
|
|
|
1623
1754
|
stroke: "currentColor",
|
|
1624
1755
|
strokeWidth: 2,
|
|
1625
1756
|
children: [
|
|
1626
|
-
/* @__PURE__ */
|
|
1627
|
-
/* @__PURE__ */
|
|
1628
|
-
/* @__PURE__ */
|
|
1757
|
+
/* @__PURE__ */ jsx21("circle", { cx: "12", cy: "12", r: "1" }),
|
|
1758
|
+
/* @__PURE__ */ jsx21("circle", { cx: "19", cy: "12", r: "1" }),
|
|
1759
|
+
/* @__PURE__ */ jsx21("circle", { cx: "5", cy: "12", r: "1" })
|
|
1629
1760
|
]
|
|
1630
1761
|
}
|
|
1631
1762
|
);
|
|
@@ -1633,7 +1764,7 @@ function PaginationPrevious({
|
|
|
1633
1764
|
className,
|
|
1634
1765
|
...props
|
|
1635
1766
|
}) {
|
|
1636
|
-
return /* @__PURE__ */
|
|
1767
|
+
return /* @__PURE__ */ jsxs5(
|
|
1637
1768
|
PaginationLink,
|
|
1638
1769
|
{
|
|
1639
1770
|
"aria-label": "Go to previous page",
|
|
@@ -1641,8 +1772,8 @@ function PaginationPrevious({
|
|
|
1641
1772
|
className: cn("gap-1 px-2.5 sm:pl-2.5", className),
|
|
1642
1773
|
...props,
|
|
1643
1774
|
children: [
|
|
1644
|
-
/* @__PURE__ */
|
|
1645
|
-
/* @__PURE__ */
|
|
1775
|
+
/* @__PURE__ */ jsx21(ChevronLeft, {}),
|
|
1776
|
+
/* @__PURE__ */ jsx21("span", { className: "hidden sm:block", children: "Previous" })
|
|
1646
1777
|
]
|
|
1647
1778
|
}
|
|
1648
1779
|
);
|
|
@@ -1651,7 +1782,7 @@ function PaginationNext({
|
|
|
1651
1782
|
className,
|
|
1652
1783
|
...props
|
|
1653
1784
|
}) {
|
|
1654
|
-
return /* @__PURE__ */
|
|
1785
|
+
return /* @__PURE__ */ jsxs5(
|
|
1655
1786
|
PaginationLink,
|
|
1656
1787
|
{
|
|
1657
1788
|
"aria-label": "Go to next page",
|
|
@@ -1659,8 +1790,8 @@ function PaginationNext({
|
|
|
1659
1790
|
className: cn("gap-1 px-2.5 sm:pr-2.5", className),
|
|
1660
1791
|
...props,
|
|
1661
1792
|
children: [
|
|
1662
|
-
/* @__PURE__ */
|
|
1663
|
-
/* @__PURE__ */
|
|
1793
|
+
/* @__PURE__ */ jsx21("span", { className: "hidden sm:block", children: "Next" }),
|
|
1794
|
+
/* @__PURE__ */ jsx21(ChevronRight, {})
|
|
1664
1795
|
]
|
|
1665
1796
|
}
|
|
1666
1797
|
);
|
|
@@ -1669,7 +1800,7 @@ function PaginationEllipsis({
|
|
|
1669
1800
|
className,
|
|
1670
1801
|
...props
|
|
1671
1802
|
}) {
|
|
1672
|
-
return /* @__PURE__ */
|
|
1803
|
+
return /* @__PURE__ */ jsxs5(
|
|
1673
1804
|
"span",
|
|
1674
1805
|
{
|
|
1675
1806
|
"aria-hidden": true,
|
|
@@ -1677,8 +1808,8 @@ function PaginationEllipsis({
|
|
|
1677
1808
|
className: cn("flex size-9 items-center justify-center", className),
|
|
1678
1809
|
...props,
|
|
1679
1810
|
children: [
|
|
1680
|
-
/* @__PURE__ */
|
|
1681
|
-
/* @__PURE__ */
|
|
1811
|
+
/* @__PURE__ */ jsx21(MoreHorizontal, {}),
|
|
1812
|
+
/* @__PURE__ */ jsx21("span", { className: "sr-only", children: "More pages" })
|
|
1682
1813
|
]
|
|
1683
1814
|
}
|
|
1684
1815
|
);
|
|
@@ -1692,9 +1823,9 @@ var PROGRESS_TRACK = "bg-primary/20 relative h-2 w-full overflow-hidden rounded-
|
|
|
1692
1823
|
var PROGRESS_INDICATOR = "bg-primary h-full w-full flex-1 transition-all";
|
|
1693
1824
|
|
|
1694
1825
|
// src/components/progress.tsx
|
|
1695
|
-
import { jsx as
|
|
1826
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
1696
1827
|
function Progress({ className, value = 0, ...props }) {
|
|
1697
|
-
return /* @__PURE__ */
|
|
1828
|
+
return /* @__PURE__ */ jsx22(
|
|
1698
1829
|
"div",
|
|
1699
1830
|
{
|
|
1700
1831
|
"data-slot": "progress",
|
|
@@ -1704,7 +1835,7 @@ function Progress({ className, value = 0, ...props }) {
|
|
|
1704
1835
|
"aria-valuemax": 100,
|
|
1705
1836
|
className: cn(PROGRESS_TRACK, className),
|
|
1706
1837
|
...props,
|
|
1707
|
-
children: /* @__PURE__ */
|
|
1838
|
+
children: /* @__PURE__ */ jsx22(
|
|
1708
1839
|
"div",
|
|
1709
1840
|
{
|
|
1710
1841
|
"data-slot": "progress-indicator",
|
|
@@ -1723,9 +1854,9 @@ import "react";
|
|
|
1723
1854
|
var SKELETON_BASE = "bg-accent animate-pulse rounded-md";
|
|
1724
1855
|
|
|
1725
1856
|
// src/components/skeleton.tsx
|
|
1726
|
-
import { jsx as
|
|
1857
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
1727
1858
|
function Skeleton({ className, ...props }) {
|
|
1728
|
-
return /* @__PURE__ */
|
|
1859
|
+
return /* @__PURE__ */ jsx23(
|
|
1729
1860
|
"div",
|
|
1730
1861
|
{
|
|
1731
1862
|
"data-slot": "skeleton",
|
|
@@ -1737,9 +1868,9 @@ function Skeleton({ className, ...props }) {
|
|
|
1737
1868
|
|
|
1738
1869
|
// src/components/spinner.tsx
|
|
1739
1870
|
import "react";
|
|
1740
|
-
import { jsx as
|
|
1871
|
+
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
1741
1872
|
function Spinner({ className, ...props }) {
|
|
1742
|
-
return /* @__PURE__ */
|
|
1873
|
+
return /* @__PURE__ */ jsx24(
|
|
1743
1874
|
"svg",
|
|
1744
1875
|
{
|
|
1745
1876
|
role: "status",
|
|
@@ -1750,14 +1881,14 @@ function Spinner({ className, ...props }) {
|
|
|
1750
1881
|
stroke: "currentColor",
|
|
1751
1882
|
strokeWidth: 2,
|
|
1752
1883
|
...props,
|
|
1753
|
-
children: /* @__PURE__ */
|
|
1884
|
+
children: /* @__PURE__ */ jsx24("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" })
|
|
1754
1885
|
}
|
|
1755
1886
|
);
|
|
1756
1887
|
}
|
|
1757
1888
|
|
|
1758
1889
|
// src/components/status-screen.tsx
|
|
1759
1890
|
import "react";
|
|
1760
|
-
import { jsx as
|
|
1891
|
+
import { jsx as jsx25, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1761
1892
|
var ACCENT_TEXT = {
|
|
1762
1893
|
teal: "text-main-accent-t1",
|
|
1763
1894
|
gold: "text-main-accent-t3",
|
|
@@ -1781,15 +1912,15 @@ function statusButtonClass(accent, variant) {
|
|
|
1781
1912
|
return cn(BTN_BASE, variant === "filled" ? BTN_FILLED[accent] : BTN_OUTLINE[accent]);
|
|
1782
1913
|
}
|
|
1783
1914
|
function LogoMark({ className }) {
|
|
1784
|
-
return /* @__PURE__ */
|
|
1785
|
-
/* @__PURE__ */
|
|
1786
|
-
/* @__PURE__ */
|
|
1787
|
-
/* @__PURE__ */
|
|
1788
|
-
/* @__PURE__ */
|
|
1915
|
+
return /* @__PURE__ */ jsx25("svg", { viewBox: "0 0 140 48", className, "aria-hidden": true, children: /* @__PURE__ */ jsxs6("g", { fill: "currentColor", children: [
|
|
1916
|
+
/* @__PURE__ */ jsx25("path", { d: "M0.0437012 47.3326L50.9499 40.5805V22.3378L56.4881 23.6408V37.9071L59.1984 37.5005V24.1147L64.6189 25.1808V37.0269L67.2113 36.553V22.1009L56.606 17.481L43.408 21.864V36.553L0.0437012 47.3326Z" }),
|
|
1917
|
+
/* @__PURE__ */ jsx25("path", { d: "M77.2277 40.5804L85.9478 41.4099L85.8299 0.304321L73.1033 7.17499V26.3654L77.2277 28.2608V40.5804Z" }),
|
|
1918
|
+
/* @__PURE__ */ jsx25("path", { d: "M87.126 0.304321L99.9705 7.29343V42.5943L94.3141 41.8835V9.54417L87.126 5.75347V0.304321Z" }),
|
|
1919
|
+
/* @__PURE__ */ jsx25("path", { d: "M103.034 42.9496L139.682 46.0296L110.104 39.7513V26.8393L103.034 23.0486V42.9496Z" })
|
|
1789
1920
|
] }) });
|
|
1790
1921
|
}
|
|
1791
1922
|
function ArrowLeftIcon({ className }) {
|
|
1792
|
-
return /* @__PURE__ */
|
|
1923
|
+
return /* @__PURE__ */ jsxs6(
|
|
1793
1924
|
"svg",
|
|
1794
1925
|
{
|
|
1795
1926
|
className,
|
|
@@ -1801,8 +1932,8 @@ function ArrowLeftIcon({ className }) {
|
|
|
1801
1932
|
strokeLinejoin: "round",
|
|
1802
1933
|
"aria-hidden": true,
|
|
1803
1934
|
children: [
|
|
1804
|
-
/* @__PURE__ */
|
|
1805
|
-
/* @__PURE__ */
|
|
1935
|
+
/* @__PURE__ */ jsx25("path", { d: "m12 19-7-7 7-7" }),
|
|
1936
|
+
/* @__PURE__ */ jsx25("path", { d: "M19 12H5" })
|
|
1806
1937
|
]
|
|
1807
1938
|
}
|
|
1808
1939
|
);
|
|
@@ -1821,8 +1952,8 @@ function StatusScreen({
|
|
|
1821
1952
|
}) {
|
|
1822
1953
|
const L = linkComponent ?? "a";
|
|
1823
1954
|
const accentText = ACCENT_TEXT[accent];
|
|
1824
|
-
return /* @__PURE__ */
|
|
1825
|
-
/* @__PURE__ */
|
|
1955
|
+
return /* @__PURE__ */ jsxs6("section", { className: "relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-main-black px-6 py-32 text-center", children: [
|
|
1956
|
+
/* @__PURE__ */ jsx25(
|
|
1826
1957
|
"div",
|
|
1827
1958
|
{
|
|
1828
1959
|
"aria-hidden": true,
|
|
@@ -1832,20 +1963,20 @@ function StatusScreen({
|
|
|
1832
1963
|
)
|
|
1833
1964
|
}
|
|
1834
1965
|
),
|
|
1835
|
-
/* @__PURE__ */
|
|
1836
|
-
/* @__PURE__ */
|
|
1837
|
-
/* @__PURE__ */
|
|
1838
|
-
/* @__PURE__ */
|
|
1839
|
-
/* @__PURE__ */
|
|
1966
|
+
/* @__PURE__ */ jsxs6("div", { className: "relative z-10 flex w-full max-w-2xl flex-col items-center", children: [
|
|
1967
|
+
/* @__PURE__ */ jsx25(LogoMark, { className: cn("mb-7 h-10 w-auto", accentText) }),
|
|
1968
|
+
/* @__PURE__ */ jsx25("p", { className: cn("mb-6 font-mono-tech text-[11px] uppercase tracking-[0.34em]", accentText), children: eyebrow }),
|
|
1969
|
+
/* @__PURE__ */ jsx25("p", { className: cn("font-serif-display text-[110px] font-medium leading-[0.9] sm:text-[180px]", accentText), children: code }),
|
|
1970
|
+
/* @__PURE__ */ jsxs6("h1", { className: "mt-4 font-serif-display text-3xl font-light leading-tight text-white sm:text-5xl", children: [
|
|
1840
1971
|
headlineLead,
|
|
1841
|
-
/* @__PURE__ */
|
|
1972
|
+
/* @__PURE__ */ jsx25("span", { className: cn("font-serif italic", accentText), children: headlineAccent }),
|
|
1842
1973
|
headlineTail
|
|
1843
1974
|
] }),
|
|
1844
|
-
/* @__PURE__ */
|
|
1845
|
-
/* @__PURE__ */
|
|
1975
|
+
/* @__PURE__ */ jsx25("p", { className: "mx-auto mt-5 max-w-md text-sm leading-relaxed text-main-mist/60 sm:text-base", children: subtext }),
|
|
1976
|
+
/* @__PURE__ */ jsxs6("div", { className: "mt-9 flex flex-col items-center gap-3 sm:flex-row", children: [
|
|
1846
1977
|
children,
|
|
1847
|
-
links?.map((link) => /* @__PURE__ */
|
|
1848
|
-
link.leadingArrow ? /* @__PURE__ */
|
|
1978
|
+
links?.map((link) => /* @__PURE__ */ jsxs6(L, { href: link.href, className: statusButtonClass(accent, link.variant ?? "filled"), children: [
|
|
1979
|
+
link.leadingArrow ? /* @__PURE__ */ jsx25(ArrowLeftIcon, { className: "mr-2 h-4 w-4" }) : null,
|
|
1849
1980
|
link.label
|
|
1850
1981
|
] }, link.label))
|
|
1851
1982
|
] })
|
|
@@ -1853,7 +1984,7 @@ function StatusScreen({
|
|
|
1853
1984
|
] });
|
|
1854
1985
|
}
|
|
1855
1986
|
function NotFound({ linkComponent = "a", homeHref = "/", contactHref = "/contact" }) {
|
|
1856
|
-
return /* @__PURE__ */
|
|
1987
|
+
return /* @__PURE__ */ jsx25(
|
|
1857
1988
|
StatusScreen,
|
|
1858
1989
|
{
|
|
1859
1990
|
accent: "teal",
|
|
@@ -1871,7 +2002,7 @@ function NotFound({ linkComponent = "a", homeHref = "/", contactHref = "/contact
|
|
|
1871
2002
|
);
|
|
1872
2003
|
}
|
|
1873
2004
|
function Forbidden({ linkComponent = "a", homeHref = "/", contactHref = "/contact" }) {
|
|
1874
|
-
return /* @__PURE__ */
|
|
2005
|
+
return /* @__PURE__ */ jsx25(
|
|
1875
2006
|
StatusScreen,
|
|
1876
2007
|
{
|
|
1877
2008
|
accent: "gold",
|
|
@@ -1889,7 +2020,7 @@ function Forbidden({ linkComponent = "a", homeHref = "/", contactHref = "/contac
|
|
|
1889
2020
|
);
|
|
1890
2021
|
}
|
|
1891
2022
|
function ServerError({ linkComponent = "a", homeHref = "/", reset }) {
|
|
1892
|
-
return /* @__PURE__ */
|
|
2023
|
+
return /* @__PURE__ */ jsx25(
|
|
1893
2024
|
StatusScreen,
|
|
1894
2025
|
{
|
|
1895
2026
|
accent: "red",
|
|
@@ -1900,7 +2031,7 @@ function ServerError({ linkComponent = "a", homeHref = "/", reset }) {
|
|
|
1900
2031
|
subtext: "Something broke on our end \u2014 not yours. We've been alerted and are restoring service. Please try again in a moment.",
|
|
1901
2032
|
linkComponent,
|
|
1902
2033
|
links: [{ label: "Back to home", href: homeHref, variant: "outline", leadingArrow: true }],
|
|
1903
|
-
children: /* @__PURE__ */
|
|
2034
|
+
children: /* @__PURE__ */ jsx25(
|
|
1904
2035
|
"button",
|
|
1905
2036
|
{
|
|
1906
2037
|
type: "button",
|
|
@@ -1928,14 +2059,14 @@ var TABLE_CELL = "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr
|
|
|
1928
2059
|
var TABLE_CAPTION = "text-muted-foreground mt-4 text-sm";
|
|
1929
2060
|
|
|
1930
2061
|
// src/components/table.tsx
|
|
1931
|
-
import { jsx as
|
|
2062
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
1932
2063
|
function Table({ className, ...props }) {
|
|
1933
|
-
return /* @__PURE__ */
|
|
2064
|
+
return /* @__PURE__ */ jsx26(
|
|
1934
2065
|
"div",
|
|
1935
2066
|
{
|
|
1936
2067
|
"data-slot": "table-container",
|
|
1937
2068
|
className: TABLE_CONTAINER,
|
|
1938
|
-
children: /* @__PURE__ */
|
|
2069
|
+
children: /* @__PURE__ */ jsx26(
|
|
1939
2070
|
"table",
|
|
1940
2071
|
{
|
|
1941
2072
|
"data-slot": "table",
|
|
@@ -1950,7 +2081,7 @@ function TableHeader({
|
|
|
1950
2081
|
className,
|
|
1951
2082
|
...props
|
|
1952
2083
|
}) {
|
|
1953
|
-
return /* @__PURE__ */
|
|
2084
|
+
return /* @__PURE__ */ jsx26(
|
|
1954
2085
|
"thead",
|
|
1955
2086
|
{
|
|
1956
2087
|
"data-slot": "table-header",
|
|
@@ -1963,7 +2094,7 @@ function TableBody({
|
|
|
1963
2094
|
className,
|
|
1964
2095
|
...props
|
|
1965
2096
|
}) {
|
|
1966
|
-
return /* @__PURE__ */
|
|
2097
|
+
return /* @__PURE__ */ jsx26(
|
|
1967
2098
|
"tbody",
|
|
1968
2099
|
{
|
|
1969
2100
|
"data-slot": "table-body",
|
|
@@ -1976,7 +2107,7 @@ function TableFooter({
|
|
|
1976
2107
|
className,
|
|
1977
2108
|
...props
|
|
1978
2109
|
}) {
|
|
1979
|
-
return /* @__PURE__ */
|
|
2110
|
+
return /* @__PURE__ */ jsx26(
|
|
1980
2111
|
"tfoot",
|
|
1981
2112
|
{
|
|
1982
2113
|
"data-slot": "table-footer",
|
|
@@ -1986,7 +2117,7 @@ function TableFooter({
|
|
|
1986
2117
|
);
|
|
1987
2118
|
}
|
|
1988
2119
|
function TableRow({ className, ...props }) {
|
|
1989
|
-
return /* @__PURE__ */
|
|
2120
|
+
return /* @__PURE__ */ jsx26(
|
|
1990
2121
|
"tr",
|
|
1991
2122
|
{
|
|
1992
2123
|
"data-slot": "table-row",
|
|
@@ -1996,7 +2127,7 @@ function TableRow({ className, ...props }) {
|
|
|
1996
2127
|
);
|
|
1997
2128
|
}
|
|
1998
2129
|
function TableHead({ className, ...props }) {
|
|
1999
|
-
return /* @__PURE__ */
|
|
2130
|
+
return /* @__PURE__ */ jsx26(
|
|
2000
2131
|
"th",
|
|
2001
2132
|
{
|
|
2002
2133
|
"data-slot": "table-head",
|
|
@@ -2006,7 +2137,7 @@ function TableHead({ className, ...props }) {
|
|
|
2006
2137
|
);
|
|
2007
2138
|
}
|
|
2008
2139
|
function TableCell({ className, ...props }) {
|
|
2009
|
-
return /* @__PURE__ */
|
|
2140
|
+
return /* @__PURE__ */ jsx26(
|
|
2010
2141
|
"td",
|
|
2011
2142
|
{
|
|
2012
2143
|
"data-slot": "table-cell",
|
|
@@ -2019,7 +2150,7 @@ function TableCaption({
|
|
|
2019
2150
|
className,
|
|
2020
2151
|
...props
|
|
2021
2152
|
}) {
|
|
2022
|
-
return /* @__PURE__ */
|
|
2153
|
+
return /* @__PURE__ */ jsx26(
|
|
2023
2154
|
"caption",
|
|
2024
2155
|
{
|
|
2025
2156
|
"data-slot": "table-caption",
|
|
@@ -2030,7 +2161,7 @@ function TableCaption({
|
|
|
2030
2161
|
}
|
|
2031
2162
|
|
|
2032
2163
|
// src/components/accordion.tsx
|
|
2033
|
-
import * as
|
|
2164
|
+
import * as React37 from "react";
|
|
2034
2165
|
|
|
2035
2166
|
// src/generated/accordion.ts
|
|
2036
2167
|
var ACCORDION_ITEM = "border-b last:border-b-0";
|
|
@@ -2040,16 +2171,16 @@ var ACCORDION_CONTENT = "data-[state=closed]:animate-accordion-up data-[state=op
|
|
|
2040
2171
|
var ACCORDION_CONTENT_INNER = "pt-0 pb-4";
|
|
2041
2172
|
|
|
2042
2173
|
// src/components/accordion.tsx
|
|
2043
|
-
import { jsx as
|
|
2044
|
-
var AccordionContext =
|
|
2174
|
+
import { jsx as jsx27, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
2175
|
+
var AccordionContext = React37.createContext(null);
|
|
2045
2176
|
function useAccordion() {
|
|
2046
|
-
const ctx =
|
|
2177
|
+
const ctx = React37.useContext(AccordionContext);
|
|
2047
2178
|
if (!ctx) throw new Error("Accordion parts must be used within <Accordion>");
|
|
2048
2179
|
return ctx;
|
|
2049
2180
|
}
|
|
2050
|
-
var ItemContext =
|
|
2181
|
+
var ItemContext = React37.createContext(null);
|
|
2051
2182
|
function useItemValue() {
|
|
2052
|
-
const value =
|
|
2183
|
+
const value = React37.useContext(ItemContext);
|
|
2053
2184
|
if (value === null)
|
|
2054
2185
|
throw new Error("AccordionTrigger/Content must be used within <AccordionItem>");
|
|
2055
2186
|
return value;
|
|
@@ -2077,7 +2208,7 @@ function Accordion({
|
|
|
2077
2208
|
if (open.includes(v)) setOpen(collapsible ? [] : open);
|
|
2078
2209
|
else setOpen([v]);
|
|
2079
2210
|
};
|
|
2080
|
-
return /* @__PURE__ */
|
|
2211
|
+
return /* @__PURE__ */ jsx27(AccordionContext.Provider, { value: { isOpen, toggle }, children: /* @__PURE__ */ jsx27("div", { "data-slot": "accordion", ...props, children }) });
|
|
2081
2212
|
}
|
|
2082
2213
|
function AccordionItem({
|
|
2083
2214
|
className,
|
|
@@ -2085,7 +2216,7 @@ function AccordionItem({
|
|
|
2085
2216
|
children,
|
|
2086
2217
|
...props
|
|
2087
2218
|
}) {
|
|
2088
|
-
return /* @__PURE__ */
|
|
2219
|
+
return /* @__PURE__ */ jsx27(ItemContext.Provider, { value, children: /* @__PURE__ */ jsx27(
|
|
2089
2220
|
"div",
|
|
2090
2221
|
{
|
|
2091
2222
|
"data-slot": "accordion-item",
|
|
@@ -2104,7 +2235,7 @@ function AccordionTrigger({
|
|
|
2104
2235
|
const { isOpen, toggle } = useAccordion();
|
|
2105
2236
|
const value = useItemValue();
|
|
2106
2237
|
const open = isOpen(value);
|
|
2107
|
-
return /* @__PURE__ */
|
|
2238
|
+
return /* @__PURE__ */ jsx27("h3", { className: ACCORDION_HEADER, "data-slot": "accordion-header", children: /* @__PURE__ */ jsxs7(
|
|
2108
2239
|
"button",
|
|
2109
2240
|
{
|
|
2110
2241
|
type: "button",
|
|
@@ -2119,7 +2250,7 @@ function AccordionTrigger({
|
|
|
2119
2250
|
...props,
|
|
2120
2251
|
children: [
|
|
2121
2252
|
children,
|
|
2122
|
-
/* @__PURE__ */
|
|
2253
|
+
/* @__PURE__ */ jsx27(
|
|
2123
2254
|
"svg",
|
|
2124
2255
|
{
|
|
2125
2256
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -2132,7 +2263,7 @@ function AccordionTrigger({
|
|
|
2132
2263
|
strokeLinecap: "round",
|
|
2133
2264
|
strokeLinejoin: "round",
|
|
2134
2265
|
className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200",
|
|
2135
|
-
children: /* @__PURE__ */
|
|
2266
|
+
children: /* @__PURE__ */ jsx27("path", { d: "m6 9 6 6 6-6" })
|
|
2136
2267
|
}
|
|
2137
2268
|
)
|
|
2138
2269
|
]
|
|
@@ -2147,26 +2278,26 @@ function AccordionContent({
|
|
|
2147
2278
|
const { isOpen } = useAccordion();
|
|
2148
2279
|
const value = useItemValue();
|
|
2149
2280
|
if (!isOpen(value)) return null;
|
|
2150
|
-
return /* @__PURE__ */
|
|
2281
|
+
return /* @__PURE__ */ jsx27(
|
|
2151
2282
|
"div",
|
|
2152
2283
|
{
|
|
2153
2284
|
"data-slot": "accordion-content",
|
|
2154
2285
|
"data-state": "open",
|
|
2155
2286
|
className: ACCORDION_CONTENT,
|
|
2156
2287
|
...props,
|
|
2157
|
-
children: /* @__PURE__ */
|
|
2288
|
+
children: /* @__PURE__ */ jsx27("div", { className: cn(ACCORDION_CONTENT_INNER, className), children })
|
|
2158
2289
|
}
|
|
2159
2290
|
);
|
|
2160
2291
|
}
|
|
2161
2292
|
|
|
2162
2293
|
// src/components/collapsible.tsx
|
|
2163
|
-
import * as
|
|
2164
|
-
import { jsx as
|
|
2165
|
-
var CollapsibleContext =
|
|
2294
|
+
import * as React38 from "react";
|
|
2295
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
2296
|
+
var CollapsibleContext = React38.createContext(
|
|
2166
2297
|
null
|
|
2167
2298
|
);
|
|
2168
2299
|
function useCollapsible() {
|
|
2169
|
-
const ctx =
|
|
2300
|
+
const ctx = React38.useContext(CollapsibleContext);
|
|
2170
2301
|
if (!ctx) throw new Error("Collapsible parts must be used within <Collapsible>");
|
|
2171
2302
|
return ctx;
|
|
2172
2303
|
}
|
|
@@ -2182,14 +2313,14 @@ function Collapsible({
|
|
|
2182
2313
|
defaultValue: defaultOpen,
|
|
2183
2314
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
2184
2315
|
});
|
|
2185
|
-
return /* @__PURE__ */
|
|
2316
|
+
return /* @__PURE__ */ jsx28(CollapsibleContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx28("div", { "data-slot": "collapsible", "data-state": isOpen ? "open" : "closed", ...props, children }) });
|
|
2186
2317
|
}
|
|
2187
2318
|
function CollapsibleTrigger({
|
|
2188
2319
|
onClick,
|
|
2189
2320
|
...props
|
|
2190
2321
|
}) {
|
|
2191
2322
|
const { open, setOpen } = useCollapsible();
|
|
2192
|
-
return /* @__PURE__ */
|
|
2323
|
+
return /* @__PURE__ */ jsx28(
|
|
2193
2324
|
"button",
|
|
2194
2325
|
{
|
|
2195
2326
|
type: "button",
|
|
@@ -2210,11 +2341,11 @@ function CollapsibleContent({
|
|
|
2210
2341
|
}) {
|
|
2211
2342
|
const { open } = useCollapsible();
|
|
2212
2343
|
if (!open) return null;
|
|
2213
|
-
return /* @__PURE__ */
|
|
2344
|
+
return /* @__PURE__ */ jsx28("div", { "data-slot": "collapsible-content", "data-state": "open", ...props, children });
|
|
2214
2345
|
}
|
|
2215
2346
|
|
|
2216
2347
|
// src/components/tabs.tsx
|
|
2217
|
-
import * as
|
|
2348
|
+
import * as React39 from "react";
|
|
2218
2349
|
|
|
2219
2350
|
// src/generated/tabs.ts
|
|
2220
2351
|
var TABS_ROOT = "flex flex-col gap-2";
|
|
@@ -2223,10 +2354,10 @@ var TABS_TRIGGER = "data-[state=active]:bg-background focus-visible:border-ring
|
|
|
2223
2354
|
var TABS_CONTENT = "flex-1 outline-none";
|
|
2224
2355
|
|
|
2225
2356
|
// src/components/tabs.tsx
|
|
2226
|
-
import { jsx as
|
|
2227
|
-
var TabsContext =
|
|
2357
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
2358
|
+
var TabsContext = React39.createContext(null);
|
|
2228
2359
|
function useTabs() {
|
|
2229
|
-
const ctx =
|
|
2360
|
+
const ctx = React39.useContext(TabsContext);
|
|
2230
2361
|
if (!ctx) throw new Error("Tabs parts must be used within <Tabs>");
|
|
2231
2362
|
return ctx;
|
|
2232
2363
|
}
|
|
@@ -2244,7 +2375,7 @@ function Tabs({
|
|
|
2244
2375
|
defaultValue,
|
|
2245
2376
|
...onValueChange ? { onChange: onValueChange } : {}
|
|
2246
2377
|
});
|
|
2247
|
-
return /* @__PURE__ */
|
|
2378
|
+
return /* @__PURE__ */ jsx29(TabsContext.Provider, { value: { value: active, setValue, orientation }, children: /* @__PURE__ */ jsx29(
|
|
2248
2379
|
"div",
|
|
2249
2380
|
{
|
|
2250
2381
|
"data-slot": "tabs",
|
|
@@ -2262,12 +2393,12 @@ function TabsList({
|
|
|
2262
2393
|
...props
|
|
2263
2394
|
}) {
|
|
2264
2395
|
const { orientation } = useTabs();
|
|
2265
|
-
const items =
|
|
2396
|
+
const items = React39.Children.toArray(children);
|
|
2266
2397
|
const { activeIndex, setActiveIndex, onKeyDown: rovingKeyDown } = useRovingFocus({
|
|
2267
2398
|
count: items.length,
|
|
2268
2399
|
orientation: orientation === "vertical" ? "vertical" : "horizontal"
|
|
2269
2400
|
});
|
|
2270
|
-
return /* @__PURE__ */
|
|
2401
|
+
return /* @__PURE__ */ jsx29(
|
|
2271
2402
|
"div",
|
|
2272
2403
|
{
|
|
2273
2404
|
role: "tablist",
|
|
@@ -2280,7 +2411,7 @@ function TabsList({
|
|
|
2280
2411
|
},
|
|
2281
2412
|
...props,
|
|
2282
2413
|
children: items.map(
|
|
2283
|
-
(child, index) =>
|
|
2414
|
+
(child, index) => React39.isValidElement(child) ? React39.cloneElement(child, {
|
|
2284
2415
|
__index: index,
|
|
2285
2416
|
__isFocusItem: index === activeIndex,
|
|
2286
2417
|
__onFocusItem: () => setActiveIndex(index)
|
|
@@ -2300,7 +2431,7 @@ function TabsTrigger({
|
|
|
2300
2431
|
}) {
|
|
2301
2432
|
const { value: active, setValue } = useTabs();
|
|
2302
2433
|
const selected = active === value;
|
|
2303
|
-
return /* @__PURE__ */
|
|
2434
|
+
return /* @__PURE__ */ jsx29(
|
|
2304
2435
|
"button",
|
|
2305
2436
|
{
|
|
2306
2437
|
type: "button",
|
|
@@ -2331,7 +2462,7 @@ function TabsContent({
|
|
|
2331
2462
|
}) {
|
|
2332
2463
|
const { value: active } = useTabs();
|
|
2333
2464
|
if (active !== value) return null;
|
|
2334
|
-
return /* @__PURE__ */
|
|
2465
|
+
return /* @__PURE__ */ jsx29(
|
|
2335
2466
|
"div",
|
|
2336
2467
|
{
|
|
2337
2468
|
role: "tabpanel",
|
|
@@ -2360,7 +2491,7 @@ var toggleSizeClasses = {
|
|
|
2360
2491
|
};
|
|
2361
2492
|
|
|
2362
2493
|
// src/components/toggle.tsx
|
|
2363
|
-
import { jsx as
|
|
2494
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
2364
2495
|
function toggleVariants({
|
|
2365
2496
|
variant = "default",
|
|
2366
2497
|
size = "default",
|
|
@@ -2383,7 +2514,7 @@ function Toggle({
|
|
|
2383
2514
|
defaultValue: defaultPressed,
|
|
2384
2515
|
...onPressedChange ? { onChange: onPressedChange } : {}
|
|
2385
2516
|
});
|
|
2386
|
-
return /* @__PURE__ */
|
|
2517
|
+
return /* @__PURE__ */ jsx30(
|
|
2387
2518
|
"button",
|
|
2388
2519
|
{
|
|
2389
2520
|
type: "button",
|
|
@@ -2401,9 +2532,9 @@ function Toggle({
|
|
|
2401
2532
|
}
|
|
2402
2533
|
|
|
2403
2534
|
// src/components/toggle-group.tsx
|
|
2404
|
-
import * as
|
|
2405
|
-
import { jsx as
|
|
2406
|
-
var ToggleGroupContext =
|
|
2535
|
+
import * as React41 from "react";
|
|
2536
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
2537
|
+
var ToggleGroupContext = React41.createContext({
|
|
2407
2538
|
variant: "default",
|
|
2408
2539
|
size: "default",
|
|
2409
2540
|
value: [],
|
|
@@ -2430,7 +2561,7 @@ function ToggleGroup({
|
|
|
2430
2561
|
defaultValue: toArray(defaultValue),
|
|
2431
2562
|
onChange: (next) => onValueChange?.(type === "single" ? next[0] ?? "" : next)
|
|
2432
2563
|
});
|
|
2433
|
-
const toggle =
|
|
2564
|
+
const toggle = React41.useCallback(
|
|
2434
2565
|
(itemValue) => {
|
|
2435
2566
|
if (type === "single") {
|
|
2436
2567
|
setSelected(selected.includes(itemValue) ? [] : [itemValue]);
|
|
@@ -2442,7 +2573,7 @@ function ToggleGroup({
|
|
|
2442
2573
|
},
|
|
2443
2574
|
[type, selected, setSelected]
|
|
2444
2575
|
);
|
|
2445
|
-
return /* @__PURE__ */
|
|
2576
|
+
return /* @__PURE__ */ jsx31(
|
|
2446
2577
|
"div",
|
|
2447
2578
|
{
|
|
2448
2579
|
"data-slot": "toggle-group",
|
|
@@ -2453,7 +2584,7 @@ function ToggleGroup({
|
|
|
2453
2584
|
className
|
|
2454
2585
|
),
|
|
2455
2586
|
...props,
|
|
2456
|
-
children: /* @__PURE__ */
|
|
2587
|
+
children: /* @__PURE__ */ jsx31(ToggleGroupContext.Provider, { value: { variant, size, value: selected, toggle }, children })
|
|
2457
2588
|
}
|
|
2458
2589
|
);
|
|
2459
2590
|
}
|
|
@@ -2466,11 +2597,11 @@ function ToggleGroupItem({
|
|
|
2466
2597
|
onClick,
|
|
2467
2598
|
...props
|
|
2468
2599
|
}) {
|
|
2469
|
-
const context =
|
|
2600
|
+
const context = React41.useContext(ToggleGroupContext);
|
|
2470
2601
|
const resolvedVariant = context.variant || variant || "default";
|
|
2471
2602
|
const resolvedSize = context.size || size || "default";
|
|
2472
2603
|
const on = context.value.includes(value);
|
|
2473
|
-
return /* @__PURE__ */
|
|
2604
|
+
return /* @__PURE__ */ jsx31(
|
|
2474
2605
|
"button",
|
|
2475
2606
|
{
|
|
2476
2607
|
type: "button",
|
|
@@ -2496,7 +2627,7 @@ function ToggleGroupItem({
|
|
|
2496
2627
|
|
|
2497
2628
|
// src/components/switch.tsx
|
|
2498
2629
|
import "react";
|
|
2499
|
-
import { jsx as
|
|
2630
|
+
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
2500
2631
|
function Switch({
|
|
2501
2632
|
className,
|
|
2502
2633
|
checked,
|
|
@@ -2512,7 +2643,7 @@ function Switch({
|
|
|
2512
2643
|
...onCheckedChange ? { onChange: onCheckedChange } : {}
|
|
2513
2644
|
});
|
|
2514
2645
|
const state = on ? "checked" : "unchecked";
|
|
2515
|
-
return /* @__PURE__ */
|
|
2646
|
+
return /* @__PURE__ */ jsx32(
|
|
2516
2647
|
"button",
|
|
2517
2648
|
{
|
|
2518
2649
|
type: "button",
|
|
@@ -2530,7 +2661,7 @@ function Switch({
|
|
|
2530
2661
|
setOn(!on);
|
|
2531
2662
|
},
|
|
2532
2663
|
...props,
|
|
2533
|
-
children: /* @__PURE__ */
|
|
2664
|
+
children: /* @__PURE__ */ jsx32(
|
|
2534
2665
|
"span",
|
|
2535
2666
|
{
|
|
2536
2667
|
"data-slot": "switch-thumb",
|
|
@@ -2544,7 +2675,7 @@ function Switch({
|
|
|
2544
2675
|
|
|
2545
2676
|
// src/components/checkbox.tsx
|
|
2546
2677
|
import "react";
|
|
2547
|
-
import { jsx as
|
|
2678
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
2548
2679
|
function Checkbox({
|
|
2549
2680
|
className,
|
|
2550
2681
|
checked,
|
|
@@ -2560,7 +2691,7 @@ function Checkbox({
|
|
|
2560
2691
|
...onCheckedChange ? { onChange: onCheckedChange } : {}
|
|
2561
2692
|
});
|
|
2562
2693
|
const state = on ? "checked" : "unchecked";
|
|
2563
|
-
return /* @__PURE__ */
|
|
2694
|
+
return /* @__PURE__ */ jsx33(
|
|
2564
2695
|
"button",
|
|
2565
2696
|
{
|
|
2566
2697
|
type: "button",
|
|
@@ -2578,12 +2709,12 @@ function Checkbox({
|
|
|
2578
2709
|
setOn(!on);
|
|
2579
2710
|
},
|
|
2580
2711
|
...props,
|
|
2581
|
-
children: on && /* @__PURE__ */
|
|
2712
|
+
children: on && /* @__PURE__ */ jsx33(
|
|
2582
2713
|
"span",
|
|
2583
2714
|
{
|
|
2584
2715
|
"data-slot": "checkbox-indicator",
|
|
2585
2716
|
className: "flex items-center justify-center text-current transition-none",
|
|
2586
|
-
children: /* @__PURE__ */
|
|
2717
|
+
children: /* @__PURE__ */ jsx33(
|
|
2587
2718
|
"svg",
|
|
2588
2719
|
{
|
|
2589
2720
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -2595,7 +2726,7 @@ function Checkbox({
|
|
|
2595
2726
|
strokeLinejoin: "round",
|
|
2596
2727
|
className: "size-3.5",
|
|
2597
2728
|
"aria-hidden": "true",
|
|
2598
|
-
children: /* @__PURE__ */
|
|
2729
|
+
children: /* @__PURE__ */ jsx33("path", { d: "M20 6 9 17l-5-5" })
|
|
2599
2730
|
}
|
|
2600
2731
|
)
|
|
2601
2732
|
}
|
|
@@ -2605,15 +2736,15 @@ function Checkbox({
|
|
|
2605
2736
|
}
|
|
2606
2737
|
|
|
2607
2738
|
// src/components/radio-group.tsx
|
|
2608
|
-
import * as
|
|
2739
|
+
import * as React44 from "react";
|
|
2609
2740
|
|
|
2610
2741
|
// src/generated/radio-group.ts
|
|
2611
2742
|
var RADIO_GROUP_ROOT = "grid gap-3";
|
|
2612
2743
|
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";
|
|
2613
2744
|
|
|
2614
2745
|
// src/components/radio-group.tsx
|
|
2615
|
-
import { jsx as
|
|
2616
|
-
var RadioGroupContext =
|
|
2746
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
2747
|
+
var RadioGroupContext = React44.createContext(
|
|
2617
2748
|
null
|
|
2618
2749
|
);
|
|
2619
2750
|
function RadioGroup({
|
|
@@ -2630,10 +2761,10 @@ function RadioGroup({
|
|
|
2630
2761
|
defaultValue,
|
|
2631
2762
|
...onValueChange ? { onChange: onValueChange } : {}
|
|
2632
2763
|
});
|
|
2633
|
-
const itemsRef =
|
|
2634
|
-
const [count, setCount] =
|
|
2764
|
+
const itemsRef = React44.useRef([]);
|
|
2765
|
+
const [count, setCount] = React44.useState(0);
|
|
2635
2766
|
const { activeIndex, setActiveIndex, onKeyDown: rovingKeyDown } = useRovingFocus({ count, orientation: "vertical", loop: true });
|
|
2636
|
-
const register =
|
|
2767
|
+
const register = React44.useCallback((el) => {
|
|
2637
2768
|
const list = itemsRef.current;
|
|
2638
2769
|
let index = list.indexOf(el);
|
|
2639
2770
|
if (index === -1) {
|
|
@@ -2643,11 +2774,11 @@ function RadioGroup({
|
|
|
2643
2774
|
}
|
|
2644
2775
|
return index;
|
|
2645
2776
|
}, []);
|
|
2646
|
-
const ctx =
|
|
2777
|
+
const ctx = React44.useMemo(
|
|
2647
2778
|
() => ({ value: current, setValue: setCurrent, register, activeIndex, setActiveIndex }),
|
|
2648
2779
|
[current, setCurrent, register, activeIndex, setActiveIndex]
|
|
2649
2780
|
);
|
|
2650
|
-
return /* @__PURE__ */
|
|
2781
|
+
return /* @__PURE__ */ jsx34(RadioGroupContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx34(
|
|
2651
2782
|
"div",
|
|
2652
2783
|
{
|
|
2653
2784
|
"data-slot": "radio-group",
|
|
@@ -2669,14 +2800,14 @@ function RadioGroupItem({
|
|
|
2669
2800
|
onClick,
|
|
2670
2801
|
...props
|
|
2671
2802
|
}) {
|
|
2672
|
-
const ctx =
|
|
2803
|
+
const ctx = React44.useContext(RadioGroupContext);
|
|
2673
2804
|
if (!ctx) throw new Error("RadioGroupItem must be used within a RadioGroup");
|
|
2674
|
-
const indexRef =
|
|
2805
|
+
const indexRef = React44.useRef(-1);
|
|
2675
2806
|
const checked = ctx.value === value;
|
|
2676
|
-
|
|
2807
|
+
React44.useEffect(() => {
|
|
2677
2808
|
if (checked) ctx.setActiveIndex(indexRef.current);
|
|
2678
2809
|
}, [checked]);
|
|
2679
|
-
return /* @__PURE__ */
|
|
2810
|
+
return /* @__PURE__ */ jsx34(
|
|
2680
2811
|
"button",
|
|
2681
2812
|
{
|
|
2682
2813
|
ref: (el) => {
|
|
@@ -2695,18 +2826,18 @@ function RadioGroupItem({
|
|
|
2695
2826
|
ctx.setValue(value);
|
|
2696
2827
|
},
|
|
2697
2828
|
...props,
|
|
2698
|
-
children: checked ? /* @__PURE__ */
|
|
2829
|
+
children: checked ? /* @__PURE__ */ jsx34(
|
|
2699
2830
|
"span",
|
|
2700
2831
|
{
|
|
2701
2832
|
"data-slot": "radio-group-indicator",
|
|
2702
2833
|
className: "relative flex items-center justify-center",
|
|
2703
|
-
children: /* @__PURE__ */
|
|
2834
|
+
children: /* @__PURE__ */ jsx34(
|
|
2704
2835
|
"svg",
|
|
2705
2836
|
{
|
|
2706
2837
|
className: "fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2",
|
|
2707
2838
|
viewBox: "0 0 24 24",
|
|
2708
2839
|
"aria-hidden": "true",
|
|
2709
|
-
children: /* @__PURE__ */
|
|
2840
|
+
children: /* @__PURE__ */ jsx34("circle", { cx: "12", cy: "12", r: "10" })
|
|
2710
2841
|
}
|
|
2711
2842
|
)
|
|
2712
2843
|
}
|
|
@@ -2716,7 +2847,7 @@ function RadioGroupItem({
|
|
|
2716
2847
|
}
|
|
2717
2848
|
|
|
2718
2849
|
// src/components/slider.tsx
|
|
2719
|
-
import * as
|
|
2850
|
+
import * as React45 from "react";
|
|
2720
2851
|
|
|
2721
2852
|
// src/generated/slider.ts
|
|
2722
2853
|
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";
|
|
@@ -2725,7 +2856,7 @@ var SLIDER_RANGE = "bg-primary absolute data-[orientation=horizontal]:h-full dat
|
|
|
2725
2856
|
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";
|
|
2726
2857
|
|
|
2727
2858
|
// src/components/slider.tsx
|
|
2728
|
-
import { jsx as
|
|
2859
|
+
import { jsx as jsx35, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2729
2860
|
function clampStep(value, min, max, step) {
|
|
2730
2861
|
const clamped = Math.min(max, Math.max(min, value));
|
|
2731
2862
|
if (step <= 0) return clamped;
|
|
@@ -2752,9 +2883,9 @@ function Slider({
|
|
|
2752
2883
|
const current = clampStep(raw, min, max, step);
|
|
2753
2884
|
const span = Math.max(max - min, Number.EPSILON);
|
|
2754
2885
|
const percent = Math.min(100, Math.max(0, (current - min) / span * 100));
|
|
2755
|
-
const trackRef =
|
|
2756
|
-
const draggingRef =
|
|
2757
|
-
const valueFromPointer =
|
|
2886
|
+
const trackRef = React45.useRef(null);
|
|
2887
|
+
const draggingRef = React45.useRef(false);
|
|
2888
|
+
const valueFromPointer = React45.useCallback(
|
|
2758
2889
|
(clientX, clientY) => {
|
|
2759
2890
|
const rect = trackRef.current?.getBoundingClientRect();
|
|
2760
2891
|
if (!rect) return current;
|
|
@@ -2803,7 +2934,7 @@ function Slider({
|
|
|
2803
2934
|
};
|
|
2804
2935
|
const rangeStyle = orientation === "vertical" ? { height: `${percent}%` } : { width: `${percent}%` };
|
|
2805
2936
|
const thumbStyle = orientation === "vertical" ? { position: "absolute", bottom: `${percent}%`, left: "50%", transform: "translate(-50%, 50%)" } : { position: "absolute", left: `${percent}%`, top: "50%", transform: "translate(-50%, -50%)" };
|
|
2806
|
-
return /* @__PURE__ */
|
|
2937
|
+
return /* @__PURE__ */ jsxs8(
|
|
2807
2938
|
"span",
|
|
2808
2939
|
{
|
|
2809
2940
|
"data-slot": "slider",
|
|
@@ -2815,14 +2946,14 @@ function Slider({
|
|
|
2815
2946
|
onPointerMove,
|
|
2816
2947
|
onPointerUp,
|
|
2817
2948
|
children: [
|
|
2818
|
-
/* @__PURE__ */
|
|
2949
|
+
/* @__PURE__ */ jsx35(
|
|
2819
2950
|
"span",
|
|
2820
2951
|
{
|
|
2821
2952
|
ref: trackRef,
|
|
2822
2953
|
"data-slot": "slider-track",
|
|
2823
2954
|
"data-orientation": orientation,
|
|
2824
2955
|
className: SLIDER_TRACK,
|
|
2825
|
-
children: /* @__PURE__ */
|
|
2956
|
+
children: /* @__PURE__ */ jsx35(
|
|
2826
2957
|
"span",
|
|
2827
2958
|
{
|
|
2828
2959
|
"data-slot": "slider-range",
|
|
@@ -2833,7 +2964,7 @@ function Slider({
|
|
|
2833
2964
|
)
|
|
2834
2965
|
}
|
|
2835
2966
|
),
|
|
2836
|
-
/* @__PURE__ */
|
|
2967
|
+
/* @__PURE__ */ jsx35(
|
|
2837
2968
|
"span",
|
|
2838
2969
|
{
|
|
2839
2970
|
"data-slot": "slider-thumb",
|
|
@@ -2868,15 +2999,15 @@ var scrollBarOrientations = {
|
|
|
2868
2999
|
};
|
|
2869
3000
|
|
|
2870
3001
|
// src/components/scroll-area.tsx
|
|
2871
|
-
import { jsx as
|
|
3002
|
+
import { jsx as jsx36, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2872
3003
|
function ScrollArea({
|
|
2873
3004
|
className,
|
|
2874
3005
|
children,
|
|
2875
3006
|
...props
|
|
2876
3007
|
}) {
|
|
2877
|
-
return /* @__PURE__ */
|
|
2878
|
-
/* @__PURE__ */
|
|
2879
|
-
/* @__PURE__ */
|
|
3008
|
+
return /* @__PURE__ */ jsxs9("div", { "data-slot": "scroll-area", className: cn("relative", className), ...props, children: [
|
|
3009
|
+
/* @__PURE__ */ jsx36("div", { "data-slot": "scroll-area-viewport", className: SCROLL_AREA_VIEWPORT, children }),
|
|
3010
|
+
/* @__PURE__ */ jsx36(ScrollBar, {})
|
|
2880
3011
|
] });
|
|
2881
3012
|
}
|
|
2882
3013
|
function ScrollBar({
|
|
@@ -2884,20 +3015,20 @@ function ScrollBar({
|
|
|
2884
3015
|
orientation = "vertical",
|
|
2885
3016
|
...props
|
|
2886
3017
|
}) {
|
|
2887
|
-
return /* @__PURE__ */
|
|
3018
|
+
return /* @__PURE__ */ jsx36(
|
|
2888
3019
|
"div",
|
|
2889
3020
|
{
|
|
2890
3021
|
"data-slot": "scroll-area-scrollbar",
|
|
2891
3022
|
"data-orientation": orientation,
|
|
2892
3023
|
className: cn(SCROLLBAR_BASE, scrollBarOrientations[orientation], className),
|
|
2893
3024
|
...props,
|
|
2894
|
-
children: /* @__PURE__ */
|
|
3025
|
+
children: /* @__PURE__ */ jsx36("div", { "data-slot": "scroll-area-thumb", className: SCROLL_AREA_THUMB })
|
|
2895
3026
|
}
|
|
2896
3027
|
);
|
|
2897
3028
|
}
|
|
2898
3029
|
|
|
2899
3030
|
// src/components/sidebar.tsx
|
|
2900
|
-
import * as
|
|
3031
|
+
import * as React47 from "react";
|
|
2901
3032
|
|
|
2902
3033
|
// src/generated/sidebar.ts
|
|
2903
3034
|
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";
|
|
@@ -2927,12 +3058,12 @@ var SIDEBAR_MENU = "flex w-full min-w-0 flex-col gap-1";
|
|
|
2927
3058
|
var SIDEBAR_MENU_ITEM = "group/menu-item relative";
|
|
2928
3059
|
|
|
2929
3060
|
// src/components/sidebar.tsx
|
|
2930
|
-
import { jsx as
|
|
3061
|
+
import { jsx as jsx37, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
2931
3062
|
var SIDEBAR_WIDTH = "16rem";
|
|
2932
3063
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
2933
|
-
var SidebarContext =
|
|
3064
|
+
var SidebarContext = React47.createContext(null);
|
|
2934
3065
|
function useSidebar() {
|
|
2935
|
-
const ctx =
|
|
3066
|
+
const ctx = React47.useContext(SidebarContext);
|
|
2936
3067
|
if (!ctx) throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
2937
3068
|
return ctx;
|
|
2938
3069
|
}
|
|
@@ -2950,16 +3081,16 @@ function SidebarProvider({
|
|
|
2950
3081
|
defaultValue: defaultOpen,
|
|
2951
3082
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
2952
3083
|
});
|
|
2953
|
-
const toggleSidebar =
|
|
3084
|
+
const toggleSidebar = React47.useCallback(
|
|
2954
3085
|
() => setOpen(!open),
|
|
2955
3086
|
[open, setOpen]
|
|
2956
3087
|
);
|
|
2957
3088
|
const state = open ? "expanded" : "collapsed";
|
|
2958
|
-
const contextValue =
|
|
3089
|
+
const contextValue = React47.useMemo(
|
|
2959
3090
|
() => ({ state, open, setOpen, toggleSidebar }),
|
|
2960
3091
|
[state, open, setOpen, toggleSidebar]
|
|
2961
3092
|
);
|
|
2962
|
-
return /* @__PURE__ */
|
|
3093
|
+
return /* @__PURE__ */ jsx37(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx37(
|
|
2963
3094
|
"div",
|
|
2964
3095
|
{
|
|
2965
3096
|
"data-slot": "sidebar-wrapper",
|
|
@@ -2984,7 +3115,7 @@ function Sidebar({
|
|
|
2984
3115
|
}) {
|
|
2985
3116
|
const { state } = useSidebar();
|
|
2986
3117
|
if (collapsible === "none") {
|
|
2987
|
-
return /* @__PURE__ */
|
|
3118
|
+
return /* @__PURE__ */ jsx37(
|
|
2988
3119
|
"div",
|
|
2989
3120
|
{
|
|
2990
3121
|
"data-slot": "sidebar",
|
|
@@ -2994,7 +3125,7 @@ function Sidebar({
|
|
|
2994
3125
|
}
|
|
2995
3126
|
);
|
|
2996
3127
|
}
|
|
2997
|
-
return /* @__PURE__ */
|
|
3128
|
+
return /* @__PURE__ */ jsx37(
|
|
2998
3129
|
"div",
|
|
2999
3130
|
{
|
|
3000
3131
|
className: "group peer text-sidebar-foreground hidden md:block",
|
|
@@ -3003,7 +3134,7 @@ function Sidebar({
|
|
|
3003
3134
|
"data-variant": variant,
|
|
3004
3135
|
"data-side": side,
|
|
3005
3136
|
"data-slot": "sidebar",
|
|
3006
|
-
children: /* @__PURE__ */
|
|
3137
|
+
children: /* @__PURE__ */ jsx37(
|
|
3007
3138
|
"div",
|
|
3008
3139
|
{
|
|
3009
3140
|
"data-slot": "sidebar-inner",
|
|
@@ -3022,7 +3153,7 @@ function SidebarTrigger({
|
|
|
3022
3153
|
...props
|
|
3023
3154
|
}) {
|
|
3024
3155
|
const { toggleSidebar } = useSidebar();
|
|
3025
|
-
return /* @__PURE__ */
|
|
3156
|
+
return /* @__PURE__ */ jsxs10(
|
|
3026
3157
|
"button",
|
|
3027
3158
|
{
|
|
3028
3159
|
type: "button",
|
|
@@ -3037,7 +3168,7 @@ function SidebarTrigger({
|
|
|
3037
3168
|
...props,
|
|
3038
3169
|
children: [
|
|
3039
3170
|
children,
|
|
3040
|
-
/* @__PURE__ */
|
|
3171
|
+
/* @__PURE__ */ jsx37("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
3041
3172
|
]
|
|
3042
3173
|
}
|
|
3043
3174
|
);
|
|
@@ -3047,7 +3178,7 @@ function SidebarRail({
|
|
|
3047
3178
|
...props
|
|
3048
3179
|
}) {
|
|
3049
3180
|
const { toggleSidebar } = useSidebar();
|
|
3050
|
-
return /* @__PURE__ */
|
|
3181
|
+
return /* @__PURE__ */ jsx37(
|
|
3051
3182
|
"button",
|
|
3052
3183
|
{
|
|
3053
3184
|
type: "button",
|
|
@@ -3063,7 +3194,7 @@ function SidebarRail({
|
|
|
3063
3194
|
);
|
|
3064
3195
|
}
|
|
3065
3196
|
function SidebarInset({ className, ...props }) {
|
|
3066
|
-
return /* @__PURE__ */
|
|
3197
|
+
return /* @__PURE__ */ jsx37(
|
|
3067
3198
|
"main",
|
|
3068
3199
|
{
|
|
3069
3200
|
"data-slot": "sidebar-inset",
|
|
@@ -3073,7 +3204,7 @@ function SidebarInset({ className, ...props }) {
|
|
|
3073
3204
|
);
|
|
3074
3205
|
}
|
|
3075
3206
|
function SidebarHeader({ className, ...props }) {
|
|
3076
|
-
return /* @__PURE__ */
|
|
3207
|
+
return /* @__PURE__ */ jsx37(
|
|
3077
3208
|
"div",
|
|
3078
3209
|
{
|
|
3079
3210
|
"data-slot": "sidebar-header",
|
|
@@ -3084,7 +3215,7 @@ function SidebarHeader({ className, ...props }) {
|
|
|
3084
3215
|
);
|
|
3085
3216
|
}
|
|
3086
3217
|
function SidebarFooter({ className, ...props }) {
|
|
3087
|
-
return /* @__PURE__ */
|
|
3218
|
+
return /* @__PURE__ */ jsx37(
|
|
3088
3219
|
"div",
|
|
3089
3220
|
{
|
|
3090
3221
|
"data-slot": "sidebar-footer",
|
|
@@ -3098,7 +3229,7 @@ function SidebarSeparator({
|
|
|
3098
3229
|
className,
|
|
3099
3230
|
...props
|
|
3100
3231
|
}) {
|
|
3101
|
-
return /* @__PURE__ */
|
|
3232
|
+
return /* @__PURE__ */ jsx37(
|
|
3102
3233
|
"div",
|
|
3103
3234
|
{
|
|
3104
3235
|
"data-slot": "sidebar-separator",
|
|
@@ -3110,7 +3241,7 @@ function SidebarSeparator({
|
|
|
3110
3241
|
);
|
|
3111
3242
|
}
|
|
3112
3243
|
function SidebarContent({ className, ...props }) {
|
|
3113
|
-
return /* @__PURE__ */
|
|
3244
|
+
return /* @__PURE__ */ jsx37(
|
|
3114
3245
|
"div",
|
|
3115
3246
|
{
|
|
3116
3247
|
"data-slot": "sidebar-content",
|
|
@@ -3121,7 +3252,7 @@ function SidebarContent({ className, ...props }) {
|
|
|
3121
3252
|
);
|
|
3122
3253
|
}
|
|
3123
3254
|
function SidebarGroup({ className, ...props }) {
|
|
3124
|
-
return /* @__PURE__ */
|
|
3255
|
+
return /* @__PURE__ */ jsx37(
|
|
3125
3256
|
"div",
|
|
3126
3257
|
{
|
|
3127
3258
|
"data-slot": "sidebar-group",
|
|
@@ -3137,7 +3268,7 @@ function SidebarGroupLabel({
|
|
|
3137
3268
|
...props
|
|
3138
3269
|
}) {
|
|
3139
3270
|
const Comp = asChild ? Slot : "div";
|
|
3140
|
-
return /* @__PURE__ */
|
|
3271
|
+
return /* @__PURE__ */ jsx37(
|
|
3141
3272
|
Comp,
|
|
3142
3273
|
{
|
|
3143
3274
|
"data-slot": "sidebar-group-label",
|
|
@@ -3151,7 +3282,7 @@ function SidebarGroupContent({
|
|
|
3151
3282
|
className,
|
|
3152
3283
|
...props
|
|
3153
3284
|
}) {
|
|
3154
|
-
return /* @__PURE__ */
|
|
3285
|
+
return /* @__PURE__ */ jsx37(
|
|
3155
3286
|
"div",
|
|
3156
3287
|
{
|
|
3157
3288
|
"data-slot": "sidebar-group-content",
|
|
@@ -3162,7 +3293,7 @@ function SidebarGroupContent({
|
|
|
3162
3293
|
);
|
|
3163
3294
|
}
|
|
3164
3295
|
function SidebarMenu({ className, ...props }) {
|
|
3165
|
-
return /* @__PURE__ */
|
|
3296
|
+
return /* @__PURE__ */ jsx37(
|
|
3166
3297
|
"ul",
|
|
3167
3298
|
{
|
|
3168
3299
|
"data-slot": "sidebar-menu",
|
|
@@ -3173,7 +3304,7 @@ function SidebarMenu({ className, ...props }) {
|
|
|
3173
3304
|
);
|
|
3174
3305
|
}
|
|
3175
3306
|
function SidebarMenuItem({ className, ...props }) {
|
|
3176
|
-
return /* @__PURE__ */
|
|
3307
|
+
return /* @__PURE__ */ jsx37(
|
|
3177
3308
|
"li",
|
|
3178
3309
|
{
|
|
3179
3310
|
"data-slot": "sidebar-menu-item",
|
|
@@ -3192,7 +3323,7 @@ function SidebarMenuButton({
|
|
|
3192
3323
|
...props
|
|
3193
3324
|
}) {
|
|
3194
3325
|
const Comp = asChild ? Slot : "button";
|
|
3195
|
-
return /* @__PURE__ */
|
|
3326
|
+
return /* @__PURE__ */ jsx37(
|
|
3196
3327
|
Comp,
|
|
3197
3328
|
{
|
|
3198
3329
|
"data-slot": "sidebar-menu-button",
|
|
@@ -3211,7 +3342,7 @@ function SidebarMenuButton({
|
|
|
3211
3342
|
}
|
|
3212
3343
|
|
|
3213
3344
|
// src/components/carousel.tsx
|
|
3214
|
-
import * as
|
|
3345
|
+
import * as React48 from "react";
|
|
3215
3346
|
|
|
3216
3347
|
// src/generated/carousel.ts
|
|
3217
3348
|
var CAROUSEL_CONTENT_VIEWPORT = "overflow-hidden";
|
|
@@ -3226,14 +3357,14 @@ var CAROUSEL_PREVIOUS_HORIZONTAL = "top-1/2 -left-12 -translate-y-1/2";
|
|
|
3226
3357
|
var CAROUSEL_PREVIOUS_VERTICAL = "-top-12 left-1/2 -translate-x-1/2 rotate-90";
|
|
3227
3358
|
var CAROUSEL_NEXT_HORIZONTAL = "top-1/2 -right-12 -translate-y-1/2";
|
|
3228
3359
|
var CAROUSEL_NEXT_VERTICAL = "-bottom-12 left-1/2 -translate-x-1/2 rotate-90";
|
|
3229
|
-
var CAROUSEL_EDGE_FADE_PREV = "pointer-events-none absolute inset-y-0 left-0 w-
|
|
3230
|
-
var CAROUSEL_EDGE_FADE_NEXT = "pointer-events-none absolute inset-y-0 right-0 w-
|
|
3360
|
+
var CAROUSEL_EDGE_FADE_PREV = "pointer-events-none absolute inset-y-0 left-0 w-24 bg-gradient-to-r from-background/45 via-background/20 to-transparent";
|
|
3361
|
+
var CAROUSEL_EDGE_FADE_NEXT = "pointer-events-none absolute inset-y-0 right-0 w-24 bg-gradient-to-l from-background/45 via-background/20 to-transparent";
|
|
3231
3362
|
|
|
3232
3363
|
// src/components/carousel.tsx
|
|
3233
|
-
import { Fragment as
|
|
3234
|
-
var CarouselContext =
|
|
3364
|
+
import { Fragment as Fragment4, jsx as jsx38, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
3365
|
+
var CarouselContext = React48.createContext(null);
|
|
3235
3366
|
function useCarousel() {
|
|
3236
|
-
const context =
|
|
3367
|
+
const context = React48.useContext(CarouselContext);
|
|
3237
3368
|
if (!context) {
|
|
3238
3369
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
3239
3370
|
}
|
|
@@ -3254,13 +3385,13 @@ function Carousel({
|
|
|
3254
3385
|
defaultValue: defaultIndex,
|
|
3255
3386
|
onChange: onIndexChange
|
|
3256
3387
|
});
|
|
3257
|
-
const [count, setCount] =
|
|
3388
|
+
const [count, setCount] = React48.useState(0);
|
|
3258
3389
|
const canScrollPrev = index > 0;
|
|
3259
3390
|
const canScrollNext = index < count - 1;
|
|
3260
|
-
const scrollPrev =
|
|
3391
|
+
const scrollPrev = React48.useCallback(() => {
|
|
3261
3392
|
if (index > 0) setIndex(index - 1);
|
|
3262
3393
|
}, [index, setIndex]);
|
|
3263
|
-
const scrollNext =
|
|
3394
|
+
const scrollNext = React48.useCallback(() => {
|
|
3264
3395
|
if (index < count - 1) setIndex(index + 1);
|
|
3265
3396
|
}, [index, count, setIndex]);
|
|
3266
3397
|
const handleKeyDown = (event) => {
|
|
@@ -3273,7 +3404,7 @@ function Carousel({
|
|
|
3273
3404
|
}
|
|
3274
3405
|
onKeyDown?.(event);
|
|
3275
3406
|
};
|
|
3276
|
-
return /* @__PURE__ */
|
|
3407
|
+
return /* @__PURE__ */ jsx38(
|
|
3277
3408
|
CarouselContext.Provider,
|
|
3278
3409
|
{
|
|
3279
3410
|
value: {
|
|
@@ -3286,7 +3417,7 @@ function Carousel({
|
|
|
3286
3417
|
canScrollPrev,
|
|
3287
3418
|
canScrollNext
|
|
3288
3419
|
},
|
|
3289
|
-
children: /* @__PURE__ */
|
|
3420
|
+
children: /* @__PURE__ */ jsx38(
|
|
3290
3421
|
"div",
|
|
3291
3422
|
{
|
|
3292
3423
|
onKeyDownCapture: handleKeyDown,
|
|
@@ -3308,12 +3439,12 @@ function CarouselContent({
|
|
|
3308
3439
|
...props
|
|
3309
3440
|
}) {
|
|
3310
3441
|
const { orientation, index, setCount } = useCarousel();
|
|
3311
|
-
const childCount =
|
|
3312
|
-
|
|
3442
|
+
const childCount = React48.Children.count(children);
|
|
3443
|
+
React48.useEffect(() => {
|
|
3313
3444
|
setCount(childCount);
|
|
3314
3445
|
}, [childCount, setCount]);
|
|
3315
3446
|
const transform = orientation === "horizontal" ? `translate3d(-${index * 100}%, 0, 0)` : `translate3d(0, -${index * 100}%, 0)`;
|
|
3316
|
-
return /* @__PURE__ */
|
|
3447
|
+
return /* @__PURE__ */ jsx38("div", { className: CAROUSEL_CONTENT_VIEWPORT, "data-slot": "carousel-content", children: /* @__PURE__ */ jsx38(
|
|
3317
3448
|
"div",
|
|
3318
3449
|
{
|
|
3319
3450
|
className: cn(
|
|
@@ -3332,7 +3463,7 @@ function CarouselItem({
|
|
|
3332
3463
|
...props
|
|
3333
3464
|
}) {
|
|
3334
3465
|
const { orientation } = useCarousel();
|
|
3335
|
-
return /* @__PURE__ */
|
|
3466
|
+
return /* @__PURE__ */ jsx38(
|
|
3336
3467
|
"div",
|
|
3337
3468
|
{
|
|
3338
3469
|
role: "group",
|
|
@@ -3351,8 +3482,8 @@ function CarouselEdgeFade({
|
|
|
3351
3482
|
className
|
|
3352
3483
|
}) {
|
|
3353
3484
|
const { canScrollPrev, canScrollNext } = useCarousel();
|
|
3354
|
-
return /* @__PURE__ */
|
|
3355
|
-
/* @__PURE__ */
|
|
3485
|
+
return /* @__PURE__ */ jsxs11(Fragment4, { children: [
|
|
3486
|
+
/* @__PURE__ */ jsx38(
|
|
3356
3487
|
"div",
|
|
3357
3488
|
{
|
|
3358
3489
|
"aria-hidden": true,
|
|
@@ -3363,7 +3494,7 @@ function CarouselEdgeFade({
|
|
|
3363
3494
|
)
|
|
3364
3495
|
}
|
|
3365
3496
|
),
|
|
3366
|
-
/* @__PURE__ */
|
|
3497
|
+
/* @__PURE__ */ jsx38(
|
|
3367
3498
|
"div",
|
|
3368
3499
|
{
|
|
3369
3500
|
"aria-hidden": true,
|
|
@@ -3383,7 +3514,7 @@ function CarouselPrevious({
|
|
|
3383
3514
|
...props
|
|
3384
3515
|
}) {
|
|
3385
3516
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
3386
|
-
return /* @__PURE__ */
|
|
3517
|
+
return /* @__PURE__ */ jsxs11(
|
|
3387
3518
|
Button,
|
|
3388
3519
|
{
|
|
3389
3520
|
"data-slot": "carousel-previous",
|
|
@@ -3398,7 +3529,7 @@ function CarouselPrevious({
|
|
|
3398
3529
|
onClick: scrollPrev,
|
|
3399
3530
|
...props,
|
|
3400
3531
|
children: [
|
|
3401
|
-
/* @__PURE__ */
|
|
3532
|
+
/* @__PURE__ */ jsx38(
|
|
3402
3533
|
"svg",
|
|
3403
3534
|
{
|
|
3404
3535
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -3409,10 +3540,10 @@ function CarouselPrevious({
|
|
|
3409
3540
|
strokeLinecap: "round",
|
|
3410
3541
|
strokeLinejoin: "round",
|
|
3411
3542
|
"aria-hidden": "true",
|
|
3412
|
-
children: /* @__PURE__ */
|
|
3543
|
+
children: /* @__PURE__ */ jsx38("path", { d: "m15 18-6-6 6-6" })
|
|
3413
3544
|
}
|
|
3414
3545
|
),
|
|
3415
|
-
/* @__PURE__ */
|
|
3546
|
+
/* @__PURE__ */ jsx38("span", { className: "sr-only", children: "Previous slide" })
|
|
3416
3547
|
]
|
|
3417
3548
|
}
|
|
3418
3549
|
);
|
|
@@ -3424,7 +3555,7 @@ function CarouselNext({
|
|
|
3424
3555
|
...props
|
|
3425
3556
|
}) {
|
|
3426
3557
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
3427
|
-
return /* @__PURE__ */
|
|
3558
|
+
return /* @__PURE__ */ jsxs11(
|
|
3428
3559
|
Button,
|
|
3429
3560
|
{
|
|
3430
3561
|
"data-slot": "carousel-next",
|
|
@@ -3439,7 +3570,7 @@ function CarouselNext({
|
|
|
3439
3570
|
onClick: scrollNext,
|
|
3440
3571
|
...props,
|
|
3441
3572
|
children: [
|
|
3442
|
-
/* @__PURE__ */
|
|
3573
|
+
/* @__PURE__ */ jsx38(
|
|
3443
3574
|
"svg",
|
|
3444
3575
|
{
|
|
3445
3576
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -3450,17 +3581,17 @@ function CarouselNext({
|
|
|
3450
3581
|
strokeLinecap: "round",
|
|
3451
3582
|
strokeLinejoin: "round",
|
|
3452
3583
|
"aria-hidden": "true",
|
|
3453
|
-
children: /* @__PURE__ */
|
|
3584
|
+
children: /* @__PURE__ */ jsx38("path", { d: "m9 18 6-6-6-6" })
|
|
3454
3585
|
}
|
|
3455
3586
|
),
|
|
3456
|
-
/* @__PURE__ */
|
|
3587
|
+
/* @__PURE__ */ jsx38("span", { className: "sr-only", children: "Next slide" })
|
|
3457
3588
|
]
|
|
3458
3589
|
}
|
|
3459
3590
|
);
|
|
3460
3591
|
}
|
|
3461
3592
|
|
|
3462
3593
|
// src/components/input-otp.tsx
|
|
3463
|
-
import * as
|
|
3594
|
+
import * as React49 from "react";
|
|
3464
3595
|
|
|
3465
3596
|
// src/generated/input-otp.ts
|
|
3466
3597
|
var INPUT_OTP_CONTAINER = "relative flex items-center gap-2 has-disabled:opacity-50";
|
|
@@ -3471,10 +3602,10 @@ var INPUT_OTP_SLOT_CARET_WRAPPER = "pointer-events-none absolute inset-0 flex it
|
|
|
3471
3602
|
var INPUT_OTP_SLOT_CARET = "animate-caret-blink bg-foreground h-4 w-px duration-1000";
|
|
3472
3603
|
|
|
3473
3604
|
// src/components/input-otp.tsx
|
|
3474
|
-
import { jsx as
|
|
3475
|
-
var InputOTPContext =
|
|
3605
|
+
import { jsx as jsx39, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
3606
|
+
var InputOTPContext = React49.createContext(null);
|
|
3476
3607
|
function useInputOTP() {
|
|
3477
|
-
const context =
|
|
3608
|
+
const context = React49.useContext(InputOTPContext);
|
|
3478
3609
|
if (!context) {
|
|
3479
3610
|
throw new Error("InputOTP slots must be used within an <InputOTP />");
|
|
3480
3611
|
}
|
|
@@ -3496,16 +3627,16 @@ function InputOTP({
|
|
|
3496
3627
|
defaultValue,
|
|
3497
3628
|
onChange
|
|
3498
3629
|
});
|
|
3499
|
-
const [focused, setFocused] =
|
|
3630
|
+
const [focused, setFocused] = React49.useState(false);
|
|
3500
3631
|
const activeIndex = focused ? Math.min(value.length, maxLength - 1) : -1;
|
|
3501
|
-
return /* @__PURE__ */
|
|
3632
|
+
return /* @__PURE__ */ jsx39(InputOTPContext.Provider, { value: { value, maxLength, activeIndex }, children: /* @__PURE__ */ jsxs12(
|
|
3502
3633
|
"div",
|
|
3503
3634
|
{
|
|
3504
3635
|
"data-slot": "input-otp",
|
|
3505
3636
|
className: cn(INPUT_OTP_CONTAINER, containerClassName),
|
|
3506
3637
|
children: [
|
|
3507
3638
|
children,
|
|
3508
|
-
/* @__PURE__ */
|
|
3639
|
+
/* @__PURE__ */ jsx39(
|
|
3509
3640
|
"input",
|
|
3510
3641
|
{
|
|
3511
3642
|
inputMode: "numeric",
|
|
@@ -3528,7 +3659,7 @@ function InputOTPGroup({
|
|
|
3528
3659
|
className,
|
|
3529
3660
|
...props
|
|
3530
3661
|
}) {
|
|
3531
|
-
return /* @__PURE__ */
|
|
3662
|
+
return /* @__PURE__ */ jsx39(
|
|
3532
3663
|
"div",
|
|
3533
3664
|
{
|
|
3534
3665
|
"data-slot": "input-otp-group",
|
|
@@ -3542,7 +3673,7 @@ function InputOTPSlot({ index, className, ...props }) {
|
|
|
3542
3673
|
const char = value[index];
|
|
3543
3674
|
const isActive = activeIndex === index;
|
|
3544
3675
|
const hasFakeCaret = isActive && char === void 0;
|
|
3545
|
-
return /* @__PURE__ */
|
|
3676
|
+
return /* @__PURE__ */ jsxs12(
|
|
3546
3677
|
"div",
|
|
3547
3678
|
{
|
|
3548
3679
|
"data-slot": "input-otp-slot",
|
|
@@ -3551,13 +3682,13 @@ function InputOTPSlot({ index, className, ...props }) {
|
|
|
3551
3682
|
...props,
|
|
3552
3683
|
children: [
|
|
3553
3684
|
char,
|
|
3554
|
-
hasFakeCaret && /* @__PURE__ */
|
|
3685
|
+
hasFakeCaret && /* @__PURE__ */ jsx39("div", { className: INPUT_OTP_SLOT_CARET_WRAPPER, children: /* @__PURE__ */ jsx39("div", { className: INPUT_OTP_SLOT_CARET }) })
|
|
3555
3686
|
]
|
|
3556
3687
|
}
|
|
3557
3688
|
);
|
|
3558
3689
|
}
|
|
3559
3690
|
function InputOTPSeparator({ ...props }) {
|
|
3560
|
-
return /* @__PURE__ */
|
|
3691
|
+
return /* @__PURE__ */ jsx39("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ jsx39(
|
|
3561
3692
|
"svg",
|
|
3562
3693
|
{
|
|
3563
3694
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -3568,27 +3699,27 @@ function InputOTPSeparator({ ...props }) {
|
|
|
3568
3699
|
strokeLinecap: "round",
|
|
3569
3700
|
strokeLinejoin: "round",
|
|
3570
3701
|
"aria-hidden": "true",
|
|
3571
|
-
children: /* @__PURE__ */
|
|
3702
|
+
children: /* @__PURE__ */ jsx39("path", { d: "M5 12h14" })
|
|
3572
3703
|
}
|
|
3573
3704
|
) });
|
|
3574
3705
|
}
|
|
3575
3706
|
|
|
3576
3707
|
// src/components/tooltip.tsx
|
|
3577
|
-
import * as
|
|
3708
|
+
import * as React50 from "react";
|
|
3578
3709
|
|
|
3579
3710
|
// src/generated/tooltip.ts
|
|
3580
3711
|
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";
|
|
3581
3712
|
|
|
3582
3713
|
// src/components/tooltip.tsx
|
|
3583
|
-
import { Fragment as
|
|
3584
|
-
var TooltipContext =
|
|
3714
|
+
import { Fragment as Fragment5, jsx as jsx40 } from "react/jsx-runtime";
|
|
3715
|
+
var TooltipContext = React50.createContext(null);
|
|
3585
3716
|
function useTooltip() {
|
|
3586
|
-
const ctx =
|
|
3717
|
+
const ctx = React50.useContext(TooltipContext);
|
|
3587
3718
|
if (!ctx) throw new Error("Tooltip parts must be used within <Tooltip>");
|
|
3588
3719
|
return ctx;
|
|
3589
3720
|
}
|
|
3590
3721
|
function TooltipProvider({ children }) {
|
|
3591
|
-
return /* @__PURE__ */
|
|
3722
|
+
return /* @__PURE__ */ jsx40(Fragment5, { children });
|
|
3592
3723
|
}
|
|
3593
3724
|
function Tooltip({ open, defaultOpen = false, onOpenChange, children }) {
|
|
3594
3725
|
const [isOpen, setOpen] = useControllableState({
|
|
@@ -3596,8 +3727,8 @@ function Tooltip({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
3596
3727
|
defaultValue: defaultOpen,
|
|
3597
3728
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
3598
3729
|
});
|
|
3599
|
-
const anchorRef =
|
|
3600
|
-
return /* @__PURE__ */
|
|
3730
|
+
const anchorRef = React50.useRef(null);
|
|
3731
|
+
return /* @__PURE__ */ jsx40(TooltipProvider, { children: /* @__PURE__ */ jsx40(TooltipContext.Provider, { value: { open: isOpen, setOpen, anchorRef }, children }) });
|
|
3601
3732
|
}
|
|
3602
3733
|
function TooltipTrigger({
|
|
3603
3734
|
asChild = false,
|
|
@@ -3609,7 +3740,7 @@ function TooltipTrigger({
|
|
|
3609
3740
|
}) {
|
|
3610
3741
|
const { setOpen, anchorRef } = useTooltip();
|
|
3611
3742
|
const Comp = asChild ? Slot : "button";
|
|
3612
|
-
return /* @__PURE__ */
|
|
3743
|
+
return /* @__PURE__ */ jsx40(
|
|
3613
3744
|
Comp,
|
|
3614
3745
|
{
|
|
3615
3746
|
"data-slot": "tooltip-trigger",
|
|
@@ -3650,7 +3781,7 @@ function TooltipContent({
|
|
|
3650
3781
|
offset: sideOffset
|
|
3651
3782
|
});
|
|
3652
3783
|
if (!isPresent) return null;
|
|
3653
|
-
return /* @__PURE__ */
|
|
3784
|
+
return /* @__PURE__ */ jsx40(Portal, { children: /* @__PURE__ */ jsx40(
|
|
3654
3785
|
"div",
|
|
3655
3786
|
{
|
|
3656
3787
|
"data-slot": "tooltip-content",
|
|
@@ -3667,16 +3798,16 @@ function TooltipContent({
|
|
|
3667
3798
|
}
|
|
3668
3799
|
|
|
3669
3800
|
// src/components/popover.tsx
|
|
3670
|
-
import * as
|
|
3801
|
+
import * as React51 from "react";
|
|
3671
3802
|
|
|
3672
3803
|
// src/generated/popover.ts
|
|
3673
3804
|
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";
|
|
3674
3805
|
|
|
3675
3806
|
// src/components/popover.tsx
|
|
3676
|
-
import { jsx as
|
|
3677
|
-
var PopoverContext =
|
|
3807
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
3808
|
+
var PopoverContext = React51.createContext(null);
|
|
3678
3809
|
function usePopover() {
|
|
3679
|
-
const ctx =
|
|
3810
|
+
const ctx = React51.useContext(PopoverContext);
|
|
3680
3811
|
if (!ctx) throw new Error("Popover parts must be used within <Popover>");
|
|
3681
3812
|
return ctx;
|
|
3682
3813
|
}
|
|
@@ -3686,13 +3817,13 @@ function Popover({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
3686
3817
|
defaultValue: defaultOpen,
|
|
3687
3818
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
3688
3819
|
});
|
|
3689
|
-
const anchorRef =
|
|
3690
|
-
return /* @__PURE__ */
|
|
3820
|
+
const anchorRef = React51.useRef(null);
|
|
3821
|
+
return /* @__PURE__ */ jsx41(PopoverContext.Provider, { value: { open: isOpen, setOpen, anchorRef }, children });
|
|
3691
3822
|
}
|
|
3692
3823
|
function PopoverTrigger({ asChild = false, onClick, ...props }) {
|
|
3693
3824
|
const { open, setOpen, anchorRef } = usePopover();
|
|
3694
3825
|
const Comp = asChild ? Slot : "button";
|
|
3695
|
-
return /* @__PURE__ */
|
|
3826
|
+
return /* @__PURE__ */ jsx41(
|
|
3696
3827
|
Comp,
|
|
3697
3828
|
{
|
|
3698
3829
|
"data-slot": "popover-trigger",
|
|
@@ -3709,7 +3840,7 @@ function PopoverTrigger({ asChild = false, onClick, ...props }) {
|
|
|
3709
3840
|
function PopoverAnchor({ asChild = false, ...props }) {
|
|
3710
3841
|
const { anchorRef } = usePopover();
|
|
3711
3842
|
const Comp = asChild ? Slot : "div";
|
|
3712
|
-
return /* @__PURE__ */
|
|
3843
|
+
return /* @__PURE__ */ jsx41(
|
|
3713
3844
|
Comp,
|
|
3714
3845
|
{
|
|
3715
3846
|
"data-slot": "popover-anchor",
|
|
@@ -3741,7 +3872,7 @@ function PopoverContent({
|
|
|
3741
3872
|
exclude: [anchorRef]
|
|
3742
3873
|
});
|
|
3743
3874
|
if (!isPresent) return null;
|
|
3744
|
-
return /* @__PURE__ */
|
|
3875
|
+
return /* @__PURE__ */ jsx41(Portal, { children: /* @__PURE__ */ jsx41(
|
|
3745
3876
|
"div",
|
|
3746
3877
|
{
|
|
3747
3878
|
"data-slot": "popover-content",
|
|
@@ -3760,17 +3891,163 @@ function PopoverContent({
|
|
|
3760
3891
|
) });
|
|
3761
3892
|
}
|
|
3762
3893
|
|
|
3894
|
+
// src/components/info-tip.tsx
|
|
3895
|
+
import * as React52 from "react";
|
|
3896
|
+
import { jsx as jsx42, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
3897
|
+
var InfoTipContext = React52.createContext(null);
|
|
3898
|
+
function useInfoTip() {
|
|
3899
|
+
const ctx = React52.useContext(InfoTipContext);
|
|
3900
|
+
if (!ctx) throw new Error("InfoTip parts must be used within <InfoTip>");
|
|
3901
|
+
return ctx;
|
|
3902
|
+
}
|
|
3903
|
+
function InfoTip({
|
|
3904
|
+
open,
|
|
3905
|
+
defaultOpen = false,
|
|
3906
|
+
onOpenChange,
|
|
3907
|
+
children
|
|
3908
|
+
}) {
|
|
3909
|
+
const [isOpen, setOpen] = useControllableState({
|
|
3910
|
+
...open !== void 0 ? { value: open } : {},
|
|
3911
|
+
defaultValue: defaultOpen,
|
|
3912
|
+
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
3913
|
+
});
|
|
3914
|
+
const anchorRef = React52.useRef(null);
|
|
3915
|
+
const contentId = React52.useId();
|
|
3916
|
+
return /* @__PURE__ */ jsx42(
|
|
3917
|
+
InfoTipContext.Provider,
|
|
3918
|
+
{
|
|
3919
|
+
value: { open: isOpen, setOpen, anchorRef, contentId },
|
|
3920
|
+
children
|
|
3921
|
+
}
|
|
3922
|
+
);
|
|
3923
|
+
}
|
|
3924
|
+
function InfoGlyph2({ className }) {
|
|
3925
|
+
return /* @__PURE__ */ jsxs13(
|
|
3926
|
+
"svg",
|
|
3927
|
+
{
|
|
3928
|
+
viewBox: "0 0 24 24",
|
|
3929
|
+
fill: "none",
|
|
3930
|
+
stroke: "currentColor",
|
|
3931
|
+
strokeWidth: 2,
|
|
3932
|
+
strokeLinecap: "round",
|
|
3933
|
+
strokeLinejoin: "round",
|
|
3934
|
+
"aria-hidden": true,
|
|
3935
|
+
className: cn("size-4", className),
|
|
3936
|
+
children: [
|
|
3937
|
+
/* @__PURE__ */ jsx42("circle", { cx: "12", cy: "12", r: "10" }),
|
|
3938
|
+
/* @__PURE__ */ jsx42("path", { d: "M12 16v-4" }),
|
|
3939
|
+
/* @__PURE__ */ jsx42("path", { d: "M12 8h.01" })
|
|
3940
|
+
]
|
|
3941
|
+
}
|
|
3942
|
+
);
|
|
3943
|
+
}
|
|
3944
|
+
function InfoTipTrigger({
|
|
3945
|
+
asChild = false,
|
|
3946
|
+
label = "More information",
|
|
3947
|
+
hoverDelay = 500,
|
|
3948
|
+
className,
|
|
3949
|
+
onClick,
|
|
3950
|
+
onBlur,
|
|
3951
|
+
onPointerEnter,
|
|
3952
|
+
onPointerLeave,
|
|
3953
|
+
children,
|
|
3954
|
+
...props
|
|
3955
|
+
}) {
|
|
3956
|
+
const { open, setOpen, anchorRef, contentId } = useInfoTip();
|
|
3957
|
+
const hover = useHoverIntent({
|
|
3958
|
+
onOpen: () => setOpen(true),
|
|
3959
|
+
onClose: () => setOpen(false),
|
|
3960
|
+
openDelay: hoverDelay
|
|
3961
|
+
});
|
|
3962
|
+
const Comp = asChild ? Slot : "button";
|
|
3963
|
+
return /* @__PURE__ */ jsx42(
|
|
3964
|
+
Comp,
|
|
3965
|
+
{
|
|
3966
|
+
"data-slot": "info-tip-trigger",
|
|
3967
|
+
"data-state": open ? "open" : "closed",
|
|
3968
|
+
type: asChild ? void 0 : "button",
|
|
3969
|
+
"aria-label": label,
|
|
3970
|
+
"aria-expanded": open,
|
|
3971
|
+
"aria-controls": contentId,
|
|
3972
|
+
ref: anchorRef,
|
|
3973
|
+
className: cn(
|
|
3974
|
+
"inline-flex size-4 shrink-0 cursor-help items-center justify-center rounded-full align-middle text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring data-[state=open]:text-main-accent-t1",
|
|
3975
|
+
className
|
|
3976
|
+
),
|
|
3977
|
+
onClick: (e) => {
|
|
3978
|
+
onClick?.(e);
|
|
3979
|
+
setOpen(!open);
|
|
3980
|
+
},
|
|
3981
|
+
onBlur: (e) => {
|
|
3982
|
+
onBlur?.(e);
|
|
3983
|
+
setOpen(false);
|
|
3984
|
+
},
|
|
3985
|
+
onPointerEnter: (e) => {
|
|
3986
|
+
onPointerEnter?.(e);
|
|
3987
|
+
hover.onPointerEnter(e);
|
|
3988
|
+
},
|
|
3989
|
+
onPointerLeave: (e) => {
|
|
3990
|
+
onPointerLeave?.(e);
|
|
3991
|
+
hover.onPointerLeave(e);
|
|
3992
|
+
},
|
|
3993
|
+
...props,
|
|
3994
|
+
children: children ?? /* @__PURE__ */ jsx42(InfoGlyph2, {})
|
|
3995
|
+
}
|
|
3996
|
+
);
|
|
3997
|
+
}
|
|
3998
|
+
function InfoTipContent({
|
|
3999
|
+
className,
|
|
4000
|
+
side: sideProp = "bottom",
|
|
4001
|
+
align = "center",
|
|
4002
|
+
sideOffset = 6,
|
|
4003
|
+
children,
|
|
4004
|
+
...props
|
|
4005
|
+
}) {
|
|
4006
|
+
const { open, setOpen, anchorRef, contentId } = useInfoTip();
|
|
4007
|
+
const { isPresent, ref: presRef } = usePresence(open);
|
|
4008
|
+
const { floatingRef, style, side } = useFloating({
|
|
4009
|
+
anchorRef,
|
|
4010
|
+
open,
|
|
4011
|
+
side: sideProp,
|
|
4012
|
+
align,
|
|
4013
|
+
offset: sideOffset
|
|
4014
|
+
});
|
|
4015
|
+
const dismissRef = useDismissableLayer({
|
|
4016
|
+
enabled: open,
|
|
4017
|
+
onDismiss: () => setOpen(false),
|
|
4018
|
+
exclude: [anchorRef]
|
|
4019
|
+
});
|
|
4020
|
+
if (!isPresent) return null;
|
|
4021
|
+
return /* @__PURE__ */ jsx42(Portal, { children: /* @__PURE__ */ jsx42(
|
|
4022
|
+
"div",
|
|
4023
|
+
{
|
|
4024
|
+
id: contentId,
|
|
4025
|
+
role: "status",
|
|
4026
|
+
"aria-live": "polite",
|
|
4027
|
+
"data-slot": "info-tip-content",
|
|
4028
|
+
"data-state": open ? "open" : "closed",
|
|
4029
|
+
"data-side": side,
|
|
4030
|
+
"data-align": align,
|
|
4031
|
+
ref: mergeRefs(floatingRef, dismissRef, presRef),
|
|
4032
|
+
style,
|
|
4033
|
+
className: cn(POPOVER_CONTENT, "w-64 p-3 text-sm", className),
|
|
4034
|
+
...props,
|
|
4035
|
+
children
|
|
4036
|
+
}
|
|
4037
|
+
) });
|
|
4038
|
+
}
|
|
4039
|
+
|
|
3763
4040
|
// src/components/hover-card.tsx
|
|
3764
|
-
import * as
|
|
4041
|
+
import * as React53 from "react";
|
|
3765
4042
|
|
|
3766
4043
|
// src/generated/hover-card.ts
|
|
3767
4044
|
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";
|
|
3768
4045
|
|
|
3769
4046
|
// src/components/hover-card.tsx
|
|
3770
|
-
import { jsx as
|
|
3771
|
-
var HoverCardContext =
|
|
4047
|
+
import { jsx as jsx43 } from "react/jsx-runtime";
|
|
4048
|
+
var HoverCardContext = React53.createContext(null);
|
|
3772
4049
|
function useHoverCard() {
|
|
3773
|
-
const ctx =
|
|
4050
|
+
const ctx = React53.useContext(HoverCardContext);
|
|
3774
4051
|
if (!ctx) throw new Error("HoverCard parts must be used within <HoverCard>");
|
|
3775
4052
|
return ctx;
|
|
3776
4053
|
}
|
|
@@ -3780,8 +4057,8 @@ function HoverCard({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
3780
4057
|
defaultValue: defaultOpen,
|
|
3781
4058
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
3782
4059
|
});
|
|
3783
|
-
const anchorRef =
|
|
3784
|
-
return /* @__PURE__ */
|
|
4060
|
+
const anchorRef = React53.useRef(null);
|
|
4061
|
+
return /* @__PURE__ */ jsx43(HoverCardContext.Provider, { value: { open: isOpen, setOpen, anchorRef }, children });
|
|
3785
4062
|
}
|
|
3786
4063
|
function HoverCardTrigger({
|
|
3787
4064
|
asChild = false,
|
|
@@ -3791,7 +4068,7 @@ function HoverCardTrigger({
|
|
|
3791
4068
|
}) {
|
|
3792
4069
|
const { setOpen, anchorRef } = useHoverCard();
|
|
3793
4070
|
const Comp = asChild ? Slot : "a";
|
|
3794
|
-
return /* @__PURE__ */
|
|
4071
|
+
return /* @__PURE__ */ jsx43(
|
|
3795
4072
|
Comp,
|
|
3796
4073
|
{
|
|
3797
4074
|
"data-slot": "hover-card-trigger",
|
|
@@ -3826,7 +4103,7 @@ function HoverCardContent({
|
|
|
3826
4103
|
offset: sideOffset
|
|
3827
4104
|
});
|
|
3828
4105
|
if (!isPresent) return null;
|
|
3829
|
-
return /* @__PURE__ */
|
|
4106
|
+
return /* @__PURE__ */ jsx43(Portal, { children: /* @__PURE__ */ jsx43(
|
|
3830
4107
|
"div",
|
|
3831
4108
|
{
|
|
3832
4109
|
"data-slot": "hover-card-content",
|
|
@@ -3843,7 +4120,7 @@ function HoverCardContent({
|
|
|
3843
4120
|
}
|
|
3844
4121
|
|
|
3845
4122
|
// src/components/dropdown-menu.tsx
|
|
3846
|
-
import * as
|
|
4123
|
+
import * as React54 from "react";
|
|
3847
4124
|
|
|
3848
4125
|
// src/generated/dropdown-menu.ts
|
|
3849
4126
|
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";
|
|
@@ -3857,12 +4134,12 @@ var DROPDOWN_MENU_SEPARATOR = "bg-border -mx-1 my-1 h-px";
|
|
|
3857
4134
|
var DROPDOWN_MENU_SHORTCUT = "text-muted-foreground ml-auto text-xs tracking-widest";
|
|
3858
4135
|
|
|
3859
4136
|
// src/components/dropdown-menu.tsx
|
|
3860
|
-
import { jsx as
|
|
3861
|
-
var DropdownMenuContext =
|
|
4137
|
+
import { jsx as jsx44, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
4138
|
+
var DropdownMenuContext = React54.createContext(
|
|
3862
4139
|
null
|
|
3863
4140
|
);
|
|
3864
4141
|
function useDropdownMenu() {
|
|
3865
|
-
const ctx =
|
|
4142
|
+
const ctx = React54.useContext(DropdownMenuContext);
|
|
3866
4143
|
if (!ctx) throw new Error("DropdownMenu parts must be used within <DropdownMenu>");
|
|
3867
4144
|
return ctx;
|
|
3868
4145
|
}
|
|
@@ -3872,16 +4149,16 @@ function DropdownMenu({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
3872
4149
|
defaultValue: defaultOpen,
|
|
3873
4150
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
3874
4151
|
});
|
|
3875
|
-
const anchorRef =
|
|
3876
|
-
return /* @__PURE__ */
|
|
4152
|
+
const anchorRef = React54.useRef(null);
|
|
4153
|
+
return /* @__PURE__ */ jsx44(DropdownMenuContext.Provider, { value: { open: isOpen, setOpen, anchorRef }, children: /* @__PURE__ */ jsx44("div", { "data-slot": "dropdown-menu", children }) });
|
|
3877
4154
|
}
|
|
3878
4155
|
function DropdownMenuPortal({ children }) {
|
|
3879
|
-
return /* @__PURE__ */
|
|
4156
|
+
return /* @__PURE__ */ jsx44(Portal, { children });
|
|
3880
4157
|
}
|
|
3881
4158
|
function DropdownMenuTrigger({ asChild = false, onClick, ...props }) {
|
|
3882
4159
|
const { open, setOpen, anchorRef } = useDropdownMenu();
|
|
3883
4160
|
const Comp = asChild ? Slot : "button";
|
|
3884
|
-
return /* @__PURE__ */
|
|
4161
|
+
return /* @__PURE__ */ jsx44(
|
|
3885
4162
|
Comp,
|
|
3886
4163
|
{
|
|
3887
4164
|
"data-slot": "dropdown-menu-trigger",
|
|
@@ -3917,7 +4194,7 @@ function DropdownMenuContent({
|
|
|
3917
4194
|
onDismiss: () => setOpen(false),
|
|
3918
4195
|
exclude: [anchorRef]
|
|
3919
4196
|
});
|
|
3920
|
-
const contentRef =
|
|
4197
|
+
const contentRef = React54.useRef(null);
|
|
3921
4198
|
const items = () => Array.from(
|
|
3922
4199
|
contentRef.current?.querySelectorAll("[role^='menuitem']") ?? []
|
|
3923
4200
|
).filter((el) => el.getAttribute("data-disabled") === null);
|
|
@@ -3926,13 +4203,13 @@ function DropdownMenuContent({
|
|
|
3926
4203
|
orientation: "vertical",
|
|
3927
4204
|
loop: true
|
|
3928
4205
|
});
|
|
3929
|
-
|
|
4206
|
+
React54.useEffect(() => {
|
|
3930
4207
|
if (!open) return;
|
|
3931
4208
|
items()[activeIndex]?.focus();
|
|
3932
4209
|
}, [open, activeIndex]);
|
|
3933
|
-
const close =
|
|
4210
|
+
const close = React54.useCallback(() => setOpen(false), [setOpen]);
|
|
3934
4211
|
if (!isPresent) return null;
|
|
3935
|
-
return /* @__PURE__ */
|
|
4212
|
+
return /* @__PURE__ */ jsx44(Portal, { children: /* @__PURE__ */ jsx44(DropdownMenuCloseContext.Provider, { value: close, children: /* @__PURE__ */ jsx44(
|
|
3936
4213
|
"div",
|
|
3937
4214
|
{
|
|
3938
4215
|
"data-slot": "dropdown-menu-content",
|
|
@@ -3955,10 +4232,10 @@ function DropdownMenuContent({
|
|
|
3955
4232
|
}
|
|
3956
4233
|
) }) });
|
|
3957
4234
|
}
|
|
3958
|
-
var DropdownMenuCloseContext =
|
|
4235
|
+
var DropdownMenuCloseContext = React54.createContext(() => {
|
|
3959
4236
|
});
|
|
3960
4237
|
function DropdownMenuGroup({ className, ...props }) {
|
|
3961
|
-
return /* @__PURE__ */
|
|
4238
|
+
return /* @__PURE__ */ jsx44("div", { "data-slot": "dropdown-menu-group", role: "group", className, ...props });
|
|
3962
4239
|
}
|
|
3963
4240
|
function DropdownMenuItem({
|
|
3964
4241
|
className,
|
|
@@ -3969,8 +4246,8 @@ function DropdownMenuItem({
|
|
|
3969
4246
|
onKeyDown,
|
|
3970
4247
|
...props
|
|
3971
4248
|
}) {
|
|
3972
|
-
const close =
|
|
3973
|
-
return /* @__PURE__ */
|
|
4249
|
+
const close = React54.useContext(DropdownMenuCloseContext);
|
|
4250
|
+
return /* @__PURE__ */ jsx44(
|
|
3974
4251
|
"div",
|
|
3975
4252
|
{
|
|
3976
4253
|
"data-slot": "dropdown-menu-item",
|
|
@@ -4007,8 +4284,8 @@ function DropdownMenuCheckboxItem({
|
|
|
4007
4284
|
onClick,
|
|
4008
4285
|
...props
|
|
4009
4286
|
}) {
|
|
4010
|
-
const close =
|
|
4011
|
-
return /* @__PURE__ */
|
|
4287
|
+
const close = React54.useContext(DropdownMenuCloseContext);
|
|
4288
|
+
return /* @__PURE__ */ jsxs14(
|
|
4012
4289
|
"div",
|
|
4013
4290
|
{
|
|
4014
4291
|
"data-slot": "dropdown-menu-checkbox-item",
|
|
@@ -4028,13 +4305,13 @@ function DropdownMenuCheckboxItem({
|
|
|
4028
4305
|
},
|
|
4029
4306
|
...props,
|
|
4030
4307
|
children: [
|
|
4031
|
-
/* @__PURE__ */
|
|
4308
|
+
/* @__PURE__ */ jsx44("span", { className: DROPDOWN_MENU_ITEM_INDICATOR, children: checked ? /* @__PURE__ */ jsx44("svg", { className: "size-4", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx44("path", { d: "M20 6 9 17l-5-5" }) }) : null }),
|
|
4032
4309
|
children
|
|
4033
4310
|
]
|
|
4034
4311
|
}
|
|
4035
4312
|
);
|
|
4036
4313
|
}
|
|
4037
|
-
var DropdownMenuRadioGroupContext =
|
|
4314
|
+
var DropdownMenuRadioGroupContext = React54.createContext(null);
|
|
4038
4315
|
function DropdownMenuRadioGroup({
|
|
4039
4316
|
className,
|
|
4040
4317
|
value,
|
|
@@ -4042,11 +4319,11 @@ function DropdownMenuRadioGroup({
|
|
|
4042
4319
|
children,
|
|
4043
4320
|
...props
|
|
4044
4321
|
}) {
|
|
4045
|
-
const ctx =
|
|
4322
|
+
const ctx = React54.useMemo(
|
|
4046
4323
|
() => ({ value, setValue: (next) => onValueChange?.(next) }),
|
|
4047
4324
|
[value, onValueChange]
|
|
4048
4325
|
);
|
|
4049
|
-
return /* @__PURE__ */
|
|
4326
|
+
return /* @__PURE__ */ jsx44(DropdownMenuRadioGroupContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx44("div", { "data-slot": "dropdown-menu-radio-group", role: "group", className, ...props, children }) });
|
|
4050
4327
|
}
|
|
4051
4328
|
function DropdownMenuRadioItem({
|
|
4052
4329
|
className,
|
|
@@ -4056,10 +4333,10 @@ function DropdownMenuRadioItem({
|
|
|
4056
4333
|
onClick,
|
|
4057
4334
|
...props
|
|
4058
4335
|
}) {
|
|
4059
|
-
const close =
|
|
4060
|
-
const group =
|
|
4336
|
+
const close = React54.useContext(DropdownMenuCloseContext);
|
|
4337
|
+
const group = React54.useContext(DropdownMenuRadioGroupContext);
|
|
4061
4338
|
const checked = group?.value === value;
|
|
4062
|
-
return /* @__PURE__ */
|
|
4339
|
+
return /* @__PURE__ */ jsxs14(
|
|
4063
4340
|
"div",
|
|
4064
4341
|
{
|
|
4065
4342
|
"data-slot": "dropdown-menu-radio-item",
|
|
@@ -4080,14 +4357,14 @@ function DropdownMenuRadioItem({
|
|
|
4080
4357
|
},
|
|
4081
4358
|
...props,
|
|
4082
4359
|
children: [
|
|
4083
|
-
/* @__PURE__ */
|
|
4360
|
+
/* @__PURE__ */ jsx44("span", { className: DROPDOWN_MENU_ITEM_INDICATOR, children: checked ? /* @__PURE__ */ jsx44("svg", { className: "size-2 fill-current", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ jsx44("circle", { cx: "12", cy: "12", r: "10" }) }) : null }),
|
|
4084
4361
|
children
|
|
4085
4362
|
]
|
|
4086
4363
|
}
|
|
4087
4364
|
);
|
|
4088
4365
|
}
|
|
4089
4366
|
function DropdownMenuLabel({ className, inset, ...props }) {
|
|
4090
|
-
return /* @__PURE__ */
|
|
4367
|
+
return /* @__PURE__ */ jsx44(
|
|
4091
4368
|
"div",
|
|
4092
4369
|
{
|
|
4093
4370
|
"data-slot": "dropdown-menu-label",
|
|
@@ -4098,7 +4375,7 @@ function DropdownMenuLabel({ className, inset, ...props }) {
|
|
|
4098
4375
|
);
|
|
4099
4376
|
}
|
|
4100
4377
|
function DropdownMenuSeparator({ className, ...props }) {
|
|
4101
|
-
return /* @__PURE__ */
|
|
4378
|
+
return /* @__PURE__ */ jsx44(
|
|
4102
4379
|
"div",
|
|
4103
4380
|
{
|
|
4104
4381
|
"data-slot": "dropdown-menu-separator",
|
|
@@ -4109,7 +4386,7 @@ function DropdownMenuSeparator({ className, ...props }) {
|
|
|
4109
4386
|
);
|
|
4110
4387
|
}
|
|
4111
4388
|
function DropdownMenuShortcut({ className, ...props }) {
|
|
4112
|
-
return /* @__PURE__ */
|
|
4389
|
+
return /* @__PURE__ */ jsx44(
|
|
4113
4390
|
"span",
|
|
4114
4391
|
{
|
|
4115
4392
|
"data-slot": "dropdown-menu-shortcut",
|
|
@@ -4118,18 +4395,18 @@ function DropdownMenuShortcut({ className, ...props }) {
|
|
|
4118
4395
|
}
|
|
4119
4396
|
);
|
|
4120
4397
|
}
|
|
4121
|
-
var DropdownMenuSubContext =
|
|
4398
|
+
var DropdownMenuSubContext = React54.createContext(null);
|
|
4122
4399
|
function DropdownMenuSub({ open, defaultOpen = false, onOpenChange, children }) {
|
|
4123
4400
|
const [isOpen, setOpen] = useControllableState({
|
|
4124
4401
|
...open !== void 0 ? { value: open } : {},
|
|
4125
4402
|
defaultValue: defaultOpen,
|
|
4126
4403
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
4127
4404
|
});
|
|
4128
|
-
return /* @__PURE__ */
|
|
4405
|
+
return /* @__PURE__ */ jsx44(DropdownMenuSubContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx44("div", { "data-slot": "dropdown-menu-sub", children }) });
|
|
4129
4406
|
}
|
|
4130
4407
|
function DropdownMenuSubTrigger({ className, inset, children, onClick, ...props }) {
|
|
4131
|
-
const ctx =
|
|
4132
|
-
return /* @__PURE__ */
|
|
4408
|
+
const ctx = React54.useContext(DropdownMenuSubContext);
|
|
4409
|
+
return /* @__PURE__ */ jsxs14(
|
|
4133
4410
|
"div",
|
|
4134
4411
|
{
|
|
4135
4412
|
"data-slot": "dropdown-menu-sub-trigger",
|
|
@@ -4150,15 +4427,15 @@ function DropdownMenuSubTrigger({ className, inset, children, onClick, ...props
|
|
|
4150
4427
|
...props,
|
|
4151
4428
|
children: [
|
|
4152
4429
|
children,
|
|
4153
|
-
/* @__PURE__ */
|
|
4430
|
+
/* @__PURE__ */ jsx44("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__ */ jsx44("path", { d: "m9 18 6-6-6-6" }) })
|
|
4154
4431
|
]
|
|
4155
4432
|
}
|
|
4156
4433
|
);
|
|
4157
4434
|
}
|
|
4158
4435
|
function DropdownMenuSubContent({ className, children, ...props }) {
|
|
4159
|
-
const ctx =
|
|
4436
|
+
const ctx = React54.useContext(DropdownMenuSubContext);
|
|
4160
4437
|
if (!ctx?.open) return null;
|
|
4161
|
-
return /* @__PURE__ */
|
|
4438
|
+
return /* @__PURE__ */ jsx44(
|
|
4162
4439
|
"div",
|
|
4163
4440
|
{
|
|
4164
4441
|
"data-slot": "dropdown-menu-sub-content",
|
|
@@ -4175,7 +4452,7 @@ function DropdownMenuSubContent({ className, children, ...props }) {
|
|
|
4175
4452
|
}
|
|
4176
4453
|
|
|
4177
4454
|
// src/components/context-menu.tsx
|
|
4178
|
-
import * as
|
|
4455
|
+
import * as React55 from "react";
|
|
4179
4456
|
|
|
4180
4457
|
// src/generated/context-menu.ts
|
|
4181
4458
|
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";
|
|
@@ -4188,10 +4465,10 @@ var CONTEXT_MENU_SEPARATOR = "bg-border -mx-1 my-1 h-px";
|
|
|
4188
4465
|
var CONTEXT_MENU_SHORTCUT = "text-muted-foreground ml-auto text-xs tracking-widest";
|
|
4189
4466
|
|
|
4190
4467
|
// src/components/context-menu.tsx
|
|
4191
|
-
import { jsx as
|
|
4192
|
-
var ContextMenuContext =
|
|
4468
|
+
import { jsx as jsx45, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
4469
|
+
var ContextMenuContext = React55.createContext(null);
|
|
4193
4470
|
function useContextMenu() {
|
|
4194
|
-
const ctx =
|
|
4471
|
+
const ctx = React55.useContext(ContextMenuContext);
|
|
4195
4472
|
if (!ctx) throw new Error("ContextMenu parts must be used within <ContextMenu>");
|
|
4196
4473
|
return ctx;
|
|
4197
4474
|
}
|
|
@@ -4201,16 +4478,16 @@ function ContextMenu({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
4201
4478
|
defaultValue: defaultOpen,
|
|
4202
4479
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
4203
4480
|
});
|
|
4204
|
-
const [point, setPoint] =
|
|
4205
|
-
return /* @__PURE__ */
|
|
4481
|
+
const [point, setPoint] = React55.useState({ x: 0, y: 0 });
|
|
4482
|
+
return /* @__PURE__ */ jsx45(ContextMenuContext.Provider, { value: { open: isOpen, setOpen, point, setPoint }, children: /* @__PURE__ */ jsx45("div", { "data-slot": "context-menu", children }) });
|
|
4206
4483
|
}
|
|
4207
4484
|
function ContextMenuPortal({ children }) {
|
|
4208
|
-
return /* @__PURE__ */
|
|
4485
|
+
return /* @__PURE__ */ jsx45(Portal, { children });
|
|
4209
4486
|
}
|
|
4210
4487
|
function ContextMenuTrigger({ asChild = false, onContextMenu, ...props }) {
|
|
4211
4488
|
const { setOpen, setPoint } = useContextMenu();
|
|
4212
4489
|
const Comp = asChild ? Slot : "div";
|
|
4213
|
-
return /* @__PURE__ */
|
|
4490
|
+
return /* @__PURE__ */ jsx45(
|
|
4214
4491
|
Comp,
|
|
4215
4492
|
{
|
|
4216
4493
|
"data-slot": "context-menu-trigger",
|
|
@@ -4225,9 +4502,9 @@ function ContextMenuTrigger({ asChild = false, onContextMenu, ...props }) {
|
|
|
4225
4502
|
);
|
|
4226
4503
|
}
|
|
4227
4504
|
function ContextMenuGroup({ className, ...props }) {
|
|
4228
|
-
return /* @__PURE__ */
|
|
4505
|
+
return /* @__PURE__ */ jsx45("div", { "data-slot": "context-menu-group", role: "group", className, ...props });
|
|
4229
4506
|
}
|
|
4230
|
-
var ContextMenuCloseContext =
|
|
4507
|
+
var ContextMenuCloseContext = React55.createContext(() => {
|
|
4231
4508
|
});
|
|
4232
4509
|
function ContextMenuContent({ className, children, ...props }) {
|
|
4233
4510
|
const { open, setOpen, point } = useContextMenu();
|
|
@@ -4236,7 +4513,7 @@ function ContextMenuContent({ className, children, ...props }) {
|
|
|
4236
4513
|
enabled: open,
|
|
4237
4514
|
onDismiss: () => setOpen(false)
|
|
4238
4515
|
});
|
|
4239
|
-
const contentRef =
|
|
4516
|
+
const contentRef = React55.useRef(null);
|
|
4240
4517
|
const items = () => Array.from(
|
|
4241
4518
|
contentRef.current?.querySelectorAll("[role^='menuitem']") ?? []
|
|
4242
4519
|
).filter((el) => el.getAttribute("data-disabled") === null);
|
|
@@ -4245,13 +4522,13 @@ function ContextMenuContent({ className, children, ...props }) {
|
|
|
4245
4522
|
orientation: "vertical",
|
|
4246
4523
|
loop: true
|
|
4247
4524
|
});
|
|
4248
|
-
|
|
4525
|
+
React55.useEffect(() => {
|
|
4249
4526
|
if (!open) return;
|
|
4250
4527
|
items()[activeIndex]?.focus();
|
|
4251
4528
|
}, [open, activeIndex]);
|
|
4252
|
-
const close =
|
|
4529
|
+
const close = React55.useCallback(() => setOpen(false), [setOpen]);
|
|
4253
4530
|
if (!isPresent) return null;
|
|
4254
|
-
return /* @__PURE__ */
|
|
4531
|
+
return /* @__PURE__ */ jsx45(Portal, { children: /* @__PURE__ */ jsx45(ContextMenuCloseContext.Provider, { value: close, children: /* @__PURE__ */ jsx45(
|
|
4255
4532
|
"div",
|
|
4256
4533
|
{
|
|
4257
4534
|
"data-slot": "context-menu-content",
|
|
@@ -4283,8 +4560,8 @@ function ContextMenuItem({
|
|
|
4283
4560
|
onKeyDown,
|
|
4284
4561
|
...props
|
|
4285
4562
|
}) {
|
|
4286
|
-
const close =
|
|
4287
|
-
return /* @__PURE__ */
|
|
4563
|
+
const close = React55.useContext(ContextMenuCloseContext);
|
|
4564
|
+
return /* @__PURE__ */ jsx45(
|
|
4288
4565
|
"div",
|
|
4289
4566
|
{
|
|
4290
4567
|
"data-slot": "context-menu-item",
|
|
@@ -4321,8 +4598,8 @@ function ContextMenuCheckboxItem({
|
|
|
4321
4598
|
onClick,
|
|
4322
4599
|
...props
|
|
4323
4600
|
}) {
|
|
4324
|
-
const close =
|
|
4325
|
-
return /* @__PURE__ */
|
|
4601
|
+
const close = React55.useContext(ContextMenuCloseContext);
|
|
4602
|
+
return /* @__PURE__ */ jsxs15(
|
|
4326
4603
|
"div",
|
|
4327
4604
|
{
|
|
4328
4605
|
"data-slot": "context-menu-checkbox-item",
|
|
@@ -4342,13 +4619,13 @@ function ContextMenuCheckboxItem({
|
|
|
4342
4619
|
},
|
|
4343
4620
|
...props,
|
|
4344
4621
|
children: [
|
|
4345
|
-
/* @__PURE__ */
|
|
4622
|
+
/* @__PURE__ */ jsx45("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: checked ? /* @__PURE__ */ jsx45("svg", { className: "size-4", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx45("path", { d: "M20 6 9 17l-5-5" }) }) : null }),
|
|
4346
4623
|
children
|
|
4347
4624
|
]
|
|
4348
4625
|
}
|
|
4349
4626
|
);
|
|
4350
4627
|
}
|
|
4351
|
-
var ContextMenuRadioGroupContext =
|
|
4628
|
+
var ContextMenuRadioGroupContext = React55.createContext(null);
|
|
4352
4629
|
function ContextMenuRadioGroup({
|
|
4353
4630
|
className,
|
|
4354
4631
|
value,
|
|
@@ -4356,11 +4633,11 @@ function ContextMenuRadioGroup({
|
|
|
4356
4633
|
children,
|
|
4357
4634
|
...props
|
|
4358
4635
|
}) {
|
|
4359
|
-
const ctx =
|
|
4636
|
+
const ctx = React55.useMemo(
|
|
4360
4637
|
() => ({ value, setValue: (next) => onValueChange?.(next) }),
|
|
4361
4638
|
[value, onValueChange]
|
|
4362
4639
|
);
|
|
4363
|
-
return /* @__PURE__ */
|
|
4640
|
+
return /* @__PURE__ */ jsx45(ContextMenuRadioGroupContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx45("div", { "data-slot": "context-menu-radio-group", role: "group", className, ...props, children }) });
|
|
4364
4641
|
}
|
|
4365
4642
|
function ContextMenuRadioItem({
|
|
4366
4643
|
className,
|
|
@@ -4370,10 +4647,10 @@ function ContextMenuRadioItem({
|
|
|
4370
4647
|
onClick,
|
|
4371
4648
|
...props
|
|
4372
4649
|
}) {
|
|
4373
|
-
const close =
|
|
4374
|
-
const group =
|
|
4650
|
+
const close = React55.useContext(ContextMenuCloseContext);
|
|
4651
|
+
const group = React55.useContext(ContextMenuRadioGroupContext);
|
|
4375
4652
|
const checked = group?.value === value;
|
|
4376
|
-
return /* @__PURE__ */
|
|
4653
|
+
return /* @__PURE__ */ jsxs15(
|
|
4377
4654
|
"div",
|
|
4378
4655
|
{
|
|
4379
4656
|
"data-slot": "context-menu-radio-item",
|
|
@@ -4394,14 +4671,14 @@ function ContextMenuRadioItem({
|
|
|
4394
4671
|
},
|
|
4395
4672
|
...props,
|
|
4396
4673
|
children: [
|
|
4397
|
-
/* @__PURE__ */
|
|
4674
|
+
/* @__PURE__ */ jsx45("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: checked ? /* @__PURE__ */ jsx45("svg", { className: "size-2 fill-current", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ jsx45("circle", { cx: "12", cy: "12", r: "10" }) }) : null }),
|
|
4398
4675
|
children
|
|
4399
4676
|
]
|
|
4400
4677
|
}
|
|
4401
4678
|
);
|
|
4402
4679
|
}
|
|
4403
4680
|
function ContextMenuLabel({ className, inset, ...props }) {
|
|
4404
|
-
return /* @__PURE__ */
|
|
4681
|
+
return /* @__PURE__ */ jsx45(
|
|
4405
4682
|
"div",
|
|
4406
4683
|
{
|
|
4407
4684
|
"data-slot": "context-menu-label",
|
|
@@ -4412,7 +4689,7 @@ function ContextMenuLabel({ className, inset, ...props }) {
|
|
|
4412
4689
|
);
|
|
4413
4690
|
}
|
|
4414
4691
|
function ContextMenuSeparator({ className, ...props }) {
|
|
4415
|
-
return /* @__PURE__ */
|
|
4692
|
+
return /* @__PURE__ */ jsx45(
|
|
4416
4693
|
"div",
|
|
4417
4694
|
{
|
|
4418
4695
|
"data-slot": "context-menu-separator",
|
|
@@ -4423,7 +4700,7 @@ function ContextMenuSeparator({ className, ...props }) {
|
|
|
4423
4700
|
);
|
|
4424
4701
|
}
|
|
4425
4702
|
function ContextMenuShortcut({ className, ...props }) {
|
|
4426
|
-
return /* @__PURE__ */
|
|
4703
|
+
return /* @__PURE__ */ jsx45(
|
|
4427
4704
|
"span",
|
|
4428
4705
|
{
|
|
4429
4706
|
"data-slot": "context-menu-shortcut",
|
|
@@ -4432,18 +4709,18 @@ function ContextMenuShortcut({ className, ...props }) {
|
|
|
4432
4709
|
}
|
|
4433
4710
|
);
|
|
4434
4711
|
}
|
|
4435
|
-
var ContextMenuSubContext =
|
|
4712
|
+
var ContextMenuSubContext = React55.createContext(null);
|
|
4436
4713
|
function ContextMenuSub({ open, defaultOpen = false, onOpenChange, children }) {
|
|
4437
4714
|
const [isOpen, setOpen] = useControllableState({
|
|
4438
4715
|
...open !== void 0 ? { value: open } : {},
|
|
4439
4716
|
defaultValue: defaultOpen,
|
|
4440
4717
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
4441
4718
|
});
|
|
4442
|
-
return /* @__PURE__ */
|
|
4719
|
+
return /* @__PURE__ */ jsx45(ContextMenuSubContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx45("div", { "data-slot": "context-menu-sub", children }) });
|
|
4443
4720
|
}
|
|
4444
4721
|
function ContextMenuSubTrigger({ className, inset, children, onClick, ...props }) {
|
|
4445
|
-
const ctx =
|
|
4446
|
-
return /* @__PURE__ */
|
|
4722
|
+
const ctx = React55.useContext(ContextMenuSubContext);
|
|
4723
|
+
return /* @__PURE__ */ jsxs15(
|
|
4447
4724
|
"div",
|
|
4448
4725
|
{
|
|
4449
4726
|
"data-slot": "context-menu-sub-trigger",
|
|
@@ -4464,15 +4741,15 @@ function ContextMenuSubTrigger({ className, inset, children, onClick, ...props }
|
|
|
4464
4741
|
...props,
|
|
4465
4742
|
children: [
|
|
4466
4743
|
children,
|
|
4467
|
-
/* @__PURE__ */
|
|
4744
|
+
/* @__PURE__ */ jsx45("svg", { className: "ml-auto", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx45("path", { d: "m9 18 6-6-6-6" }) })
|
|
4468
4745
|
]
|
|
4469
4746
|
}
|
|
4470
4747
|
);
|
|
4471
4748
|
}
|
|
4472
4749
|
function ContextMenuSubContent({ className, children, ...props }) {
|
|
4473
|
-
const ctx =
|
|
4750
|
+
const ctx = React55.useContext(ContextMenuSubContext);
|
|
4474
4751
|
if (!ctx?.open) return null;
|
|
4475
|
-
return /* @__PURE__ */
|
|
4752
|
+
return /* @__PURE__ */ jsx45(
|
|
4476
4753
|
"div",
|
|
4477
4754
|
{
|
|
4478
4755
|
"data-slot": "context-menu-sub-content",
|
|
@@ -4489,7 +4766,7 @@ function ContextMenuSubContent({ className, children, ...props }) {
|
|
|
4489
4766
|
}
|
|
4490
4767
|
|
|
4491
4768
|
// src/components/menubar.tsx
|
|
4492
|
-
import * as
|
|
4769
|
+
import * as React56 from "react";
|
|
4493
4770
|
|
|
4494
4771
|
// src/generated/menubar.ts
|
|
4495
4772
|
var MENUBAR_ROOT = "bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs";
|
|
@@ -4506,16 +4783,16 @@ var MENUBAR_SUB_TRIGGER = "focus:bg-accent focus:text-accent-foreground data-[st
|
|
|
4506
4783
|
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";
|
|
4507
4784
|
|
|
4508
4785
|
// src/components/menubar.tsx
|
|
4509
|
-
import { jsx as
|
|
4510
|
-
var MenubarMenuContext =
|
|
4786
|
+
import { jsx as jsx46, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
4787
|
+
var MenubarMenuContext = React56.createContext(null);
|
|
4511
4788
|
function useMenu() {
|
|
4512
|
-
const ctx =
|
|
4789
|
+
const ctx = React56.useContext(MenubarMenuContext);
|
|
4513
4790
|
if (!ctx) throw new Error("Menubar parts must be used within <MenubarMenu>");
|
|
4514
4791
|
return ctx;
|
|
4515
4792
|
}
|
|
4516
|
-
var MenubarRadioGroupContext =
|
|
4793
|
+
var MenubarRadioGroupContext = React56.createContext(null);
|
|
4517
4794
|
function Menubar({ className, ...props }) {
|
|
4518
|
-
return /* @__PURE__ */
|
|
4795
|
+
return /* @__PURE__ */ jsx46(
|
|
4519
4796
|
"div",
|
|
4520
4797
|
{
|
|
4521
4798
|
"data-slot": "menubar",
|
|
@@ -4531,12 +4808,12 @@ function MenubarMenu({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
4531
4808
|
defaultValue: defaultOpen,
|
|
4532
4809
|
onChange: onOpenChange
|
|
4533
4810
|
});
|
|
4534
|
-
const triggerRef =
|
|
4535
|
-
return /* @__PURE__ */
|
|
4811
|
+
const triggerRef = React56.useRef(null);
|
|
4812
|
+
return /* @__PURE__ */ jsx46(MenubarMenuContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children: /* @__PURE__ */ jsx46("div", { "data-slot": "menubar-menu", className: "relative", children }) });
|
|
4536
4813
|
}
|
|
4537
4814
|
function MenubarTrigger({ className, onClick, ...props }) {
|
|
4538
4815
|
const { open, setOpen, triggerRef } = useMenu();
|
|
4539
|
-
return /* @__PURE__ */
|
|
4816
|
+
return /* @__PURE__ */ jsx46(
|
|
4540
4817
|
"button",
|
|
4541
4818
|
{
|
|
4542
4819
|
ref: triggerRef,
|
|
@@ -4572,10 +4849,10 @@ function MenubarContent({
|
|
|
4572
4849
|
onDismiss: () => setOpen(false),
|
|
4573
4850
|
exclude: [triggerRef]
|
|
4574
4851
|
});
|
|
4575
|
-
const items =
|
|
4852
|
+
const items = React56.Children.toArray(children);
|
|
4576
4853
|
const { onKeyDown } = useRovingFocus({ count: items.length, orientation: "vertical" });
|
|
4577
4854
|
if (!isPresent) return null;
|
|
4578
|
-
return /* @__PURE__ */
|
|
4855
|
+
return /* @__PURE__ */ jsx46(Portal, { children: /* @__PURE__ */ jsx46(
|
|
4579
4856
|
"div",
|
|
4580
4857
|
{
|
|
4581
4858
|
ref: mergeRefs(presenceRef, floatingRef, dismissRef),
|
|
@@ -4592,7 +4869,7 @@ function MenubarContent({
|
|
|
4592
4869
|
) });
|
|
4593
4870
|
}
|
|
4594
4871
|
function MenubarGroup({ className, ...props }) {
|
|
4595
|
-
return /* @__PURE__ */
|
|
4872
|
+
return /* @__PURE__ */ jsx46("div", { "data-slot": "menubar-group", role: "group", className, ...props });
|
|
4596
4873
|
}
|
|
4597
4874
|
function MenubarItem({
|
|
4598
4875
|
className,
|
|
@@ -4600,7 +4877,7 @@ function MenubarItem({
|
|
|
4600
4877
|
variant = "default",
|
|
4601
4878
|
...props
|
|
4602
4879
|
}) {
|
|
4603
|
-
return /* @__PURE__ */
|
|
4880
|
+
return /* @__PURE__ */ jsx46(
|
|
4604
4881
|
"div",
|
|
4605
4882
|
{
|
|
4606
4883
|
"data-slot": "menubar-item",
|
|
@@ -4619,7 +4896,7 @@ function MenubarCheckboxItem({
|
|
|
4619
4896
|
checked,
|
|
4620
4897
|
...props
|
|
4621
4898
|
}) {
|
|
4622
|
-
return /* @__PURE__ */
|
|
4899
|
+
return /* @__PURE__ */ jsxs16(
|
|
4623
4900
|
"div",
|
|
4624
4901
|
{
|
|
4625
4902
|
"data-slot": "menubar-checkbox-item",
|
|
@@ -4629,7 +4906,7 @@ function MenubarCheckboxItem({
|
|
|
4629
4906
|
className: cn(MENUBAR_CHECKBOX_ITEM, className),
|
|
4630
4907
|
...props,
|
|
4631
4908
|
children: [
|
|
4632
|
-
/* @__PURE__ */
|
|
4909
|
+
/* @__PURE__ */ jsx46("span", { className: MENUBAR_ITEM_INDICATOR, children: checked && /* @__PURE__ */ jsx46(
|
|
4633
4910
|
"svg",
|
|
4634
4911
|
{
|
|
4635
4912
|
className: "size-4",
|
|
@@ -4639,7 +4916,7 @@ function MenubarCheckboxItem({
|
|
|
4639
4916
|
strokeWidth: "2",
|
|
4640
4917
|
strokeLinecap: "round",
|
|
4641
4918
|
strokeLinejoin: "round",
|
|
4642
|
-
children: /* @__PURE__ */
|
|
4919
|
+
children: /* @__PURE__ */ jsx46("path", { d: "M20 6 9 17l-5-5" })
|
|
4643
4920
|
}
|
|
4644
4921
|
) }),
|
|
4645
4922
|
children
|
|
@@ -4659,7 +4936,7 @@ function MenubarRadioGroup({
|
|
|
4659
4936
|
defaultValue,
|
|
4660
4937
|
onChange: onValueChange
|
|
4661
4938
|
});
|
|
4662
|
-
return /* @__PURE__ */
|
|
4939
|
+
return /* @__PURE__ */ jsx46(MenubarRadioGroupContext.Provider, { value: { value: current, onValueChange: setValue }, children: /* @__PURE__ */ jsx46("div", { "data-slot": "menubar-radio-group", role: "group", className, children }) });
|
|
4663
4940
|
}
|
|
4664
4941
|
function MenubarRadioItem({
|
|
4665
4942
|
className,
|
|
@@ -4667,9 +4944,9 @@ function MenubarRadioItem({
|
|
|
4667
4944
|
value,
|
|
4668
4945
|
...props
|
|
4669
4946
|
}) {
|
|
4670
|
-
const ctx =
|
|
4947
|
+
const ctx = React56.useContext(MenubarRadioGroupContext);
|
|
4671
4948
|
const checked = ctx?.value === value;
|
|
4672
|
-
return /* @__PURE__ */
|
|
4949
|
+
return /* @__PURE__ */ jsxs16(
|
|
4673
4950
|
"div",
|
|
4674
4951
|
{
|
|
4675
4952
|
"data-slot": "menubar-radio-item",
|
|
@@ -4680,7 +4957,7 @@ function MenubarRadioItem({
|
|
|
4680
4957
|
onClick: () => ctx?.onValueChange(value),
|
|
4681
4958
|
...props,
|
|
4682
4959
|
children: [
|
|
4683
|
-
/* @__PURE__ */
|
|
4960
|
+
/* @__PURE__ */ jsx46("span", { className: MENUBAR_ITEM_INDICATOR, children: checked && /* @__PURE__ */ jsx46("svg", { className: "size-2 fill-current", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx46("circle", { cx: "12", cy: "12", r: "10" }) }) }),
|
|
4684
4961
|
children
|
|
4685
4962
|
]
|
|
4686
4963
|
}
|
|
@@ -4691,7 +4968,7 @@ function MenubarLabel({
|
|
|
4691
4968
|
inset,
|
|
4692
4969
|
...props
|
|
4693
4970
|
}) {
|
|
4694
|
-
return /* @__PURE__ */
|
|
4971
|
+
return /* @__PURE__ */ jsx46(
|
|
4695
4972
|
"div",
|
|
4696
4973
|
{
|
|
4697
4974
|
"data-slot": "menubar-label",
|
|
@@ -4702,7 +4979,7 @@ function MenubarLabel({
|
|
|
4702
4979
|
);
|
|
4703
4980
|
}
|
|
4704
4981
|
function MenubarSeparator({ className, ...props }) {
|
|
4705
|
-
return /* @__PURE__ */
|
|
4982
|
+
return /* @__PURE__ */ jsx46(
|
|
4706
4983
|
"div",
|
|
4707
4984
|
{
|
|
4708
4985
|
"data-slot": "menubar-separator",
|
|
@@ -4713,7 +4990,7 @@ function MenubarSeparator({ className, ...props }) {
|
|
|
4713
4990
|
);
|
|
4714
4991
|
}
|
|
4715
4992
|
function MenubarShortcut({ className, ...props }) {
|
|
4716
|
-
return /* @__PURE__ */
|
|
4993
|
+
return /* @__PURE__ */ jsx46(
|
|
4717
4994
|
"span",
|
|
4718
4995
|
{
|
|
4719
4996
|
"data-slot": "menubar-shortcut",
|
|
@@ -4722,9 +4999,9 @@ function MenubarShortcut({ className, ...props }) {
|
|
|
4722
4999
|
}
|
|
4723
5000
|
);
|
|
4724
5001
|
}
|
|
4725
|
-
var MenubarSubContext =
|
|
5002
|
+
var MenubarSubContext = React56.createContext(null);
|
|
4726
5003
|
function useSub() {
|
|
4727
|
-
const ctx =
|
|
5004
|
+
const ctx = React56.useContext(MenubarSubContext);
|
|
4728
5005
|
if (!ctx) throw new Error("MenubarSub parts must be used within <MenubarSub>");
|
|
4729
5006
|
return ctx;
|
|
4730
5007
|
}
|
|
@@ -4734,7 +5011,7 @@ function MenubarSub({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
4734
5011
|
defaultValue: defaultOpen,
|
|
4735
5012
|
onChange: onOpenChange
|
|
4736
5013
|
});
|
|
4737
|
-
return /* @__PURE__ */
|
|
5014
|
+
return /* @__PURE__ */ jsx46(MenubarSubContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx46("div", { "data-slot": "menubar-sub", className: "relative", children }) });
|
|
4738
5015
|
}
|
|
4739
5016
|
function MenubarSubTrigger({
|
|
4740
5017
|
className,
|
|
@@ -4744,7 +5021,7 @@ function MenubarSubTrigger({
|
|
|
4744
5021
|
...props
|
|
4745
5022
|
}) {
|
|
4746
5023
|
const { open, setOpen } = useSub();
|
|
4747
|
-
return /* @__PURE__ */
|
|
5024
|
+
return /* @__PURE__ */ jsxs16(
|
|
4748
5025
|
"div",
|
|
4749
5026
|
{
|
|
4750
5027
|
"data-slot": "menubar-sub-trigger",
|
|
@@ -4760,7 +5037,7 @@ function MenubarSubTrigger({
|
|
|
4760
5037
|
...props,
|
|
4761
5038
|
children: [
|
|
4762
5039
|
children,
|
|
4763
|
-
/* @__PURE__ */
|
|
5040
|
+
/* @__PURE__ */ jsx46(
|
|
4764
5041
|
"svg",
|
|
4765
5042
|
{
|
|
4766
5043
|
className: "ml-auto h-4 w-4",
|
|
@@ -4770,7 +5047,7 @@ function MenubarSubTrigger({
|
|
|
4770
5047
|
strokeWidth: "2",
|
|
4771
5048
|
strokeLinecap: "round",
|
|
4772
5049
|
strokeLinejoin: "round",
|
|
4773
|
-
children: /* @__PURE__ */
|
|
5050
|
+
children: /* @__PURE__ */ jsx46("path", { d: "m9 18 6-6-6-6" })
|
|
4774
5051
|
}
|
|
4775
5052
|
)
|
|
4776
5053
|
]
|
|
@@ -4781,7 +5058,7 @@ function MenubarSubContent({ className, children, ...props }) {
|
|
|
4781
5058
|
const { open } = useSub();
|
|
4782
5059
|
const { isPresent, ref } = usePresence(open);
|
|
4783
5060
|
if (!isPresent) return null;
|
|
4784
|
-
return /* @__PURE__ */
|
|
5061
|
+
return /* @__PURE__ */ jsx46(
|
|
4785
5062
|
"div",
|
|
4786
5063
|
{
|
|
4787
5064
|
ref,
|
|
@@ -4796,7 +5073,7 @@ function MenubarSubContent({ className, children, ...props }) {
|
|
|
4796
5073
|
}
|
|
4797
5074
|
|
|
4798
5075
|
// src/components/navigation-menu.tsx
|
|
4799
|
-
import * as
|
|
5076
|
+
import * as React57 from "react";
|
|
4800
5077
|
|
|
4801
5078
|
// src/generated/navigation-menu.ts
|
|
4802
5079
|
var NAVIGATION_MENU = "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center";
|
|
@@ -4809,13 +5086,13 @@ var NAVIGATION_MENU_INDICATOR = "data-[state=visible]:animate-in data-[state=hid
|
|
|
4809
5086
|
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)]";
|
|
4810
5087
|
|
|
4811
5088
|
// src/components/navigation-menu.tsx
|
|
4812
|
-
import { jsx as
|
|
5089
|
+
import { jsx as jsx47, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
4813
5090
|
function navigationMenuTriggerStyle() {
|
|
4814
5091
|
return NAVIGATION_MENU_TRIGGER_STYLE;
|
|
4815
5092
|
}
|
|
4816
|
-
var NavigationMenuItemContext =
|
|
5093
|
+
var NavigationMenuItemContext = React57.createContext(null);
|
|
4817
5094
|
function useItem() {
|
|
4818
|
-
const ctx =
|
|
5095
|
+
const ctx = React57.useContext(NavigationMenuItemContext);
|
|
4819
5096
|
if (!ctx) throw new Error("NavigationMenu parts must be used within <NavigationMenuItem>");
|
|
4820
5097
|
return ctx;
|
|
4821
5098
|
}
|
|
@@ -4825,7 +5102,7 @@ function NavigationMenu({
|
|
|
4825
5102
|
viewport = true,
|
|
4826
5103
|
...props
|
|
4827
5104
|
}) {
|
|
4828
|
-
return /* @__PURE__ */
|
|
5105
|
+
return /* @__PURE__ */ jsxs17(
|
|
4829
5106
|
"nav",
|
|
4830
5107
|
{
|
|
4831
5108
|
"data-slot": "navigation-menu",
|
|
@@ -4838,13 +5115,13 @@ function NavigationMenu({
|
|
|
4838
5115
|
...props,
|
|
4839
5116
|
children: [
|
|
4840
5117
|
children,
|
|
4841
|
-
viewport && /* @__PURE__ */
|
|
5118
|
+
viewport && /* @__PURE__ */ jsx47(NavigationMenuViewport, {})
|
|
4842
5119
|
]
|
|
4843
5120
|
}
|
|
4844
5121
|
);
|
|
4845
5122
|
}
|
|
4846
5123
|
function NavigationMenuList({ className, ...props }) {
|
|
4847
|
-
return /* @__PURE__ */
|
|
5124
|
+
return /* @__PURE__ */ jsx47(
|
|
4848
5125
|
"ul",
|
|
4849
5126
|
{
|
|
4850
5127
|
"data-slot": "navigation-menu-list",
|
|
@@ -4870,8 +5147,8 @@ function NavigationMenuItem({
|
|
|
4870
5147
|
defaultValue: defaultOpen,
|
|
4871
5148
|
onChange: onOpenChange
|
|
4872
5149
|
});
|
|
4873
|
-
const triggerRef =
|
|
4874
|
-
return /* @__PURE__ */
|
|
5150
|
+
const triggerRef = React57.useRef(null);
|
|
5151
|
+
return /* @__PURE__ */ jsx47(NavigationMenuItemContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children: /* @__PURE__ */ jsx47("li", { "data-slot": "navigation-menu-item", className: cn(NAVIGATION_MENU_ITEM, className), ...props, children }) });
|
|
4875
5152
|
}
|
|
4876
5153
|
function NavigationMenuTrigger({
|
|
4877
5154
|
className,
|
|
@@ -4880,7 +5157,7 @@ function NavigationMenuTrigger({
|
|
|
4880
5157
|
...props
|
|
4881
5158
|
}) {
|
|
4882
5159
|
const { open, setOpen, triggerRef } = useItem();
|
|
4883
|
-
return /* @__PURE__ */
|
|
5160
|
+
return /* @__PURE__ */ jsxs17(
|
|
4884
5161
|
"button",
|
|
4885
5162
|
{
|
|
4886
5163
|
ref: triggerRef,
|
|
@@ -4896,7 +5173,7 @@ function NavigationMenuTrigger({
|
|
|
4896
5173
|
children: [
|
|
4897
5174
|
children,
|
|
4898
5175
|
" ",
|
|
4899
|
-
/* @__PURE__ */
|
|
5176
|
+
/* @__PURE__ */ jsx47(
|
|
4900
5177
|
"svg",
|
|
4901
5178
|
{
|
|
4902
5179
|
className: "relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180",
|
|
@@ -4907,7 +5184,7 @@ function NavigationMenuTrigger({
|
|
|
4907
5184
|
strokeLinecap: "round",
|
|
4908
5185
|
strokeLinejoin: "round",
|
|
4909
5186
|
"aria-hidden": "true",
|
|
4910
|
-
children: /* @__PURE__ */
|
|
5187
|
+
children: /* @__PURE__ */ jsx47("path", { d: "m6 9 6 6 6-6" })
|
|
4911
5188
|
}
|
|
4912
5189
|
)
|
|
4913
5190
|
]
|
|
@@ -4923,7 +5200,7 @@ function NavigationMenuContent({ className, children, ...props }) {
|
|
|
4923
5200
|
exclude: [triggerRef]
|
|
4924
5201
|
});
|
|
4925
5202
|
if (!isPresent) return null;
|
|
4926
|
-
return /* @__PURE__ */
|
|
5203
|
+
return /* @__PURE__ */ jsx47(
|
|
4927
5204
|
"div",
|
|
4928
5205
|
{
|
|
4929
5206
|
ref: mergeRefs(presenceRef, dismissRef),
|
|
@@ -4939,7 +5216,7 @@ function NavigationMenuContent({ className, children, ...props }) {
|
|
|
4939
5216
|
);
|
|
4940
5217
|
}
|
|
4941
5218
|
function NavigationMenuViewport({ className, ...props }) {
|
|
4942
|
-
return /* @__PURE__ */
|
|
5219
|
+
return /* @__PURE__ */ jsx47("div", { className: "absolute top-full left-0 isolate z-50 flex justify-center", children: /* @__PURE__ */ jsx47(
|
|
4943
5220
|
"div",
|
|
4944
5221
|
{
|
|
4945
5222
|
"data-slot": "navigation-menu-viewport",
|
|
@@ -4957,7 +5234,7 @@ function NavigationMenuLink({
|
|
|
4957
5234
|
...props
|
|
4958
5235
|
}) {
|
|
4959
5236
|
const Comp = asChild ? Slot : "a";
|
|
4960
|
-
return /* @__PURE__ */
|
|
5237
|
+
return /* @__PURE__ */ jsx47(
|
|
4961
5238
|
Comp,
|
|
4962
5239
|
{
|
|
4963
5240
|
"data-slot": "navigation-menu-link",
|
|
@@ -4970,7 +5247,7 @@ function NavigationMenuLink({
|
|
|
4970
5247
|
);
|
|
4971
5248
|
}
|
|
4972
5249
|
function NavigationMenuIndicator({ className, ...props }) {
|
|
4973
|
-
return /* @__PURE__ */
|
|
5250
|
+
return /* @__PURE__ */ jsx47(
|
|
4974
5251
|
"div",
|
|
4975
5252
|
{
|
|
4976
5253
|
"data-slot": "navigation-menu-indicator",
|
|
@@ -4979,13 +5256,13 @@ function NavigationMenuIndicator({ className, ...props }) {
|
|
|
4979
5256
|
className
|
|
4980
5257
|
),
|
|
4981
5258
|
...props,
|
|
4982
|
-
children: /* @__PURE__ */
|
|
5259
|
+
children: /* @__PURE__ */ jsx47("div", { className: "bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" })
|
|
4983
5260
|
}
|
|
4984
5261
|
);
|
|
4985
5262
|
}
|
|
4986
5263
|
|
|
4987
5264
|
// src/components/dialog.tsx
|
|
4988
|
-
import * as
|
|
5265
|
+
import * as React58 from "react";
|
|
4989
5266
|
|
|
4990
5267
|
// src/generated/dialog.ts
|
|
4991
5268
|
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";
|
|
@@ -4997,10 +5274,10 @@ var DIALOG_TITLE = "text-lg leading-none font-semibold";
|
|
|
4997
5274
|
var DIALOG_DESCRIPTION = "text-muted-foreground text-sm";
|
|
4998
5275
|
|
|
4999
5276
|
// src/components/dialog.tsx
|
|
5000
|
-
import { Fragment as
|
|
5001
|
-
var DialogContext =
|
|
5277
|
+
import { Fragment as Fragment6, jsx as jsx48, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
5278
|
+
var DialogContext = React58.createContext(null);
|
|
5002
5279
|
function useDialog() {
|
|
5003
|
-
const ctx =
|
|
5280
|
+
const ctx = React58.useContext(DialogContext);
|
|
5004
5281
|
if (!ctx) throw new Error("Dialog parts must be used within <Dialog>");
|
|
5005
5282
|
return ctx;
|
|
5006
5283
|
}
|
|
@@ -5010,13 +5287,13 @@ function Dialog({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
5010
5287
|
defaultValue: defaultOpen,
|
|
5011
5288
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
5012
5289
|
});
|
|
5013
|
-
const triggerRef =
|
|
5014
|
-
return /* @__PURE__ */
|
|
5290
|
+
const triggerRef = React58.useRef(null);
|
|
5291
|
+
return /* @__PURE__ */ jsx48(DialogContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children });
|
|
5015
5292
|
}
|
|
5016
5293
|
function DialogTrigger({ asChild = false, onClick, ...props }) {
|
|
5017
5294
|
const { open, setOpen, triggerRef } = useDialog();
|
|
5018
5295
|
const Comp = asChild ? Slot : "button";
|
|
5019
|
-
return /* @__PURE__ */
|
|
5296
|
+
return /* @__PURE__ */ jsx48(
|
|
5020
5297
|
Comp,
|
|
5021
5298
|
{
|
|
5022
5299
|
"data-slot": "dialog-trigger",
|
|
@@ -5031,11 +5308,11 @@ function DialogTrigger({ asChild = false, onClick, ...props }) {
|
|
|
5031
5308
|
);
|
|
5032
5309
|
}
|
|
5033
5310
|
function DialogPortal({ children }) {
|
|
5034
|
-
return /* @__PURE__ */
|
|
5311
|
+
return /* @__PURE__ */ jsx48(Fragment6, { children });
|
|
5035
5312
|
}
|
|
5036
5313
|
function DialogOverlay({ className, ...props }) {
|
|
5037
5314
|
const { open, setOpen } = useDialog();
|
|
5038
|
-
return /* @__PURE__ */
|
|
5315
|
+
return /* @__PURE__ */ jsx48(
|
|
5039
5316
|
"div",
|
|
5040
5317
|
{
|
|
5041
5318
|
"data-slot": "dialog-overlay",
|
|
@@ -5046,7 +5323,7 @@ function DialogOverlay({ className, ...props }) {
|
|
|
5046
5323
|
}
|
|
5047
5324
|
);
|
|
5048
5325
|
}
|
|
5049
|
-
var XIcon = (props) => /* @__PURE__ */
|
|
5326
|
+
var XIcon = (props) => /* @__PURE__ */ jsx48(
|
|
5050
5327
|
"svg",
|
|
5051
5328
|
{
|
|
5052
5329
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -5059,7 +5336,7 @@ var XIcon = (props) => /* @__PURE__ */ jsx46(
|
|
|
5059
5336
|
strokeLinecap: "round",
|
|
5060
5337
|
strokeLinejoin: "round",
|
|
5061
5338
|
...props,
|
|
5062
|
-
children: /* @__PURE__ */
|
|
5339
|
+
children: /* @__PURE__ */ jsx48("path", { d: "M18 6 6 18M6 6l12 12" })
|
|
5063
5340
|
}
|
|
5064
5341
|
);
|
|
5065
5342
|
function DialogContent({
|
|
@@ -5076,7 +5353,7 @@ function DialogContent({
|
|
|
5076
5353
|
onDismiss: () => setOpen(false),
|
|
5077
5354
|
exclude: [triggerRef]
|
|
5078
5355
|
});
|
|
5079
|
-
|
|
5356
|
+
React58.useEffect(() => {
|
|
5080
5357
|
if (!open) return;
|
|
5081
5358
|
const prev = document.body.style.overflow;
|
|
5082
5359
|
document.body.style.overflow = "hidden";
|
|
@@ -5085,9 +5362,9 @@ function DialogContent({
|
|
|
5085
5362
|
};
|
|
5086
5363
|
}, [open]);
|
|
5087
5364
|
if (!isPresent) return null;
|
|
5088
|
-
return /* @__PURE__ */
|
|
5089
|
-
/* @__PURE__ */
|
|
5090
|
-
/* @__PURE__ */
|
|
5365
|
+
return /* @__PURE__ */ jsxs18(Portal, { children: [
|
|
5366
|
+
/* @__PURE__ */ jsx48(DialogOverlay, {}),
|
|
5367
|
+
/* @__PURE__ */ jsxs18(
|
|
5091
5368
|
"div",
|
|
5092
5369
|
{
|
|
5093
5370
|
"data-slot": "dialog-content",
|
|
@@ -5099,7 +5376,7 @@ function DialogContent({
|
|
|
5099
5376
|
...props,
|
|
5100
5377
|
children: [
|
|
5101
5378
|
children,
|
|
5102
|
-
showCloseButton && /* @__PURE__ */
|
|
5379
|
+
showCloseButton && /* @__PURE__ */ jsxs18(
|
|
5103
5380
|
"button",
|
|
5104
5381
|
{
|
|
5105
5382
|
type: "button",
|
|
@@ -5107,8 +5384,8 @@ function DialogContent({
|
|
|
5107
5384
|
onClick: () => setOpen(false),
|
|
5108
5385
|
className: DIALOG_CLOSE,
|
|
5109
5386
|
children: [
|
|
5110
|
-
/* @__PURE__ */
|
|
5111
|
-
/* @__PURE__ */
|
|
5387
|
+
/* @__PURE__ */ jsx48(XIcon, {}),
|
|
5388
|
+
/* @__PURE__ */ jsx48("span", { className: "sr-only", children: "Close" })
|
|
5112
5389
|
]
|
|
5113
5390
|
}
|
|
5114
5391
|
)
|
|
@@ -5120,7 +5397,7 @@ function DialogContent({
|
|
|
5120
5397
|
function DialogClose({ asChild = false, onClick, ...props }) {
|
|
5121
5398
|
const { setOpen } = useDialog();
|
|
5122
5399
|
const Comp = asChild ? Slot : "button";
|
|
5123
|
-
return /* @__PURE__ */
|
|
5400
|
+
return /* @__PURE__ */ jsx48(
|
|
5124
5401
|
Comp,
|
|
5125
5402
|
{
|
|
5126
5403
|
"data-slot": "dialog-close",
|
|
@@ -5133,7 +5410,7 @@ function DialogClose({ asChild = false, onClick, ...props }) {
|
|
|
5133
5410
|
);
|
|
5134
5411
|
}
|
|
5135
5412
|
function DialogHeader({ className, ...props }) {
|
|
5136
|
-
return /* @__PURE__ */
|
|
5413
|
+
return /* @__PURE__ */ jsx48(
|
|
5137
5414
|
"div",
|
|
5138
5415
|
{
|
|
5139
5416
|
"data-slot": "dialog-header",
|
|
@@ -5143,7 +5420,7 @@ function DialogHeader({ className, ...props }) {
|
|
|
5143
5420
|
);
|
|
5144
5421
|
}
|
|
5145
5422
|
function DialogFooter({ className, ...props }) {
|
|
5146
|
-
return /* @__PURE__ */
|
|
5423
|
+
return /* @__PURE__ */ jsx48(
|
|
5147
5424
|
"div",
|
|
5148
5425
|
{
|
|
5149
5426
|
"data-slot": "dialog-footer",
|
|
@@ -5153,7 +5430,7 @@ function DialogFooter({ className, ...props }) {
|
|
|
5153
5430
|
);
|
|
5154
5431
|
}
|
|
5155
5432
|
function DialogTitle({ className, ...props }) {
|
|
5156
|
-
return /* @__PURE__ */
|
|
5433
|
+
return /* @__PURE__ */ jsx48(
|
|
5157
5434
|
"h2",
|
|
5158
5435
|
{
|
|
5159
5436
|
"data-slot": "dialog-title",
|
|
@@ -5163,7 +5440,7 @@ function DialogTitle({ className, ...props }) {
|
|
|
5163
5440
|
);
|
|
5164
5441
|
}
|
|
5165
5442
|
function DialogDescription({ className, ...props }) {
|
|
5166
|
-
return /* @__PURE__ */
|
|
5443
|
+
return /* @__PURE__ */ jsx48(
|
|
5167
5444
|
"p",
|
|
5168
5445
|
{
|
|
5169
5446
|
"data-slot": "dialog-description",
|
|
@@ -5174,7 +5451,7 @@ function DialogDescription({ className, ...props }) {
|
|
|
5174
5451
|
}
|
|
5175
5452
|
|
|
5176
5453
|
// src/components/alert-dialog.tsx
|
|
5177
|
-
import * as
|
|
5454
|
+
import * as React59 from "react";
|
|
5178
5455
|
|
|
5179
5456
|
// src/generated/alert-dialog.ts
|
|
5180
5457
|
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";
|
|
@@ -5185,10 +5462,10 @@ var ALERT_DIALOG_TITLE = "text-lg font-semibold";
|
|
|
5185
5462
|
var ALERT_DIALOG_DESCRIPTION = "text-muted-foreground text-sm";
|
|
5186
5463
|
|
|
5187
5464
|
// src/components/alert-dialog.tsx
|
|
5188
|
-
import { jsx as
|
|
5189
|
-
var AlertDialogContext =
|
|
5465
|
+
import { jsx as jsx49, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
5466
|
+
var AlertDialogContext = React59.createContext(null);
|
|
5190
5467
|
function useAlertDialog() {
|
|
5191
|
-
const ctx =
|
|
5468
|
+
const ctx = React59.useContext(AlertDialogContext);
|
|
5192
5469
|
if (!ctx) throw new Error("AlertDialog parts must be used within <AlertDialog>");
|
|
5193
5470
|
return ctx;
|
|
5194
5471
|
}
|
|
@@ -5198,13 +5475,13 @@ function AlertDialog({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
5198
5475
|
defaultValue: defaultOpen,
|
|
5199
5476
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
5200
5477
|
});
|
|
5201
|
-
const triggerRef =
|
|
5202
|
-
return /* @__PURE__ */
|
|
5478
|
+
const triggerRef = React59.useRef(null);
|
|
5479
|
+
return /* @__PURE__ */ jsx49(AlertDialogContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children });
|
|
5203
5480
|
}
|
|
5204
5481
|
function AlertDialogTrigger({ asChild = false, onClick, ...props }) {
|
|
5205
5482
|
const { open, setOpen, triggerRef } = useAlertDialog();
|
|
5206
5483
|
const Comp = asChild ? Slot : "button";
|
|
5207
|
-
return /* @__PURE__ */
|
|
5484
|
+
return /* @__PURE__ */ jsx49(
|
|
5208
5485
|
Comp,
|
|
5209
5486
|
{
|
|
5210
5487
|
"data-slot": "alert-dialog-trigger",
|
|
@@ -5220,7 +5497,7 @@ function AlertDialogTrigger({ asChild = false, onClick, ...props }) {
|
|
|
5220
5497
|
}
|
|
5221
5498
|
function AlertDialogOverlay({ className, ...props }) {
|
|
5222
5499
|
const { open, setOpen } = useAlertDialog();
|
|
5223
|
-
return /* @__PURE__ */
|
|
5500
|
+
return /* @__PURE__ */ jsx49(
|
|
5224
5501
|
"div",
|
|
5225
5502
|
{
|
|
5226
5503
|
"data-slot": "alert-dialog-overlay",
|
|
@@ -5241,9 +5518,9 @@ function AlertDialogContent({ className, children, ...props }) {
|
|
|
5241
5518
|
exclude: [triggerRef]
|
|
5242
5519
|
});
|
|
5243
5520
|
if (!isPresent) return null;
|
|
5244
|
-
return /* @__PURE__ */
|
|
5245
|
-
/* @__PURE__ */
|
|
5246
|
-
/* @__PURE__ */
|
|
5521
|
+
return /* @__PURE__ */ jsxs19(Portal, { children: [
|
|
5522
|
+
/* @__PURE__ */ jsx49(AlertDialogOverlay, {}),
|
|
5523
|
+
/* @__PURE__ */ jsx49(
|
|
5247
5524
|
"div",
|
|
5248
5525
|
{
|
|
5249
5526
|
"data-slot": "alert-dialog-content",
|
|
@@ -5259,7 +5536,7 @@ function AlertDialogContent({ className, children, ...props }) {
|
|
|
5259
5536
|
] });
|
|
5260
5537
|
}
|
|
5261
5538
|
function AlertDialogHeader({ className, ...props }) {
|
|
5262
|
-
return /* @__PURE__ */
|
|
5539
|
+
return /* @__PURE__ */ jsx49(
|
|
5263
5540
|
"div",
|
|
5264
5541
|
{
|
|
5265
5542
|
"data-slot": "alert-dialog-header",
|
|
@@ -5269,7 +5546,7 @@ function AlertDialogHeader({ className, ...props }) {
|
|
|
5269
5546
|
);
|
|
5270
5547
|
}
|
|
5271
5548
|
function AlertDialogFooter({ className, ...props }) {
|
|
5272
|
-
return /* @__PURE__ */
|
|
5549
|
+
return /* @__PURE__ */ jsx49(
|
|
5273
5550
|
"div",
|
|
5274
5551
|
{
|
|
5275
5552
|
"data-slot": "alert-dialog-footer",
|
|
@@ -5279,7 +5556,7 @@ function AlertDialogFooter({ className, ...props }) {
|
|
|
5279
5556
|
);
|
|
5280
5557
|
}
|
|
5281
5558
|
function AlertDialogTitle({ className, ...props }) {
|
|
5282
|
-
return /* @__PURE__ */
|
|
5559
|
+
return /* @__PURE__ */ jsx49(
|
|
5283
5560
|
"h2",
|
|
5284
5561
|
{
|
|
5285
5562
|
"data-slot": "alert-dialog-title",
|
|
@@ -5289,7 +5566,7 @@ function AlertDialogTitle({ className, ...props }) {
|
|
|
5289
5566
|
);
|
|
5290
5567
|
}
|
|
5291
5568
|
function AlertDialogDescription({ className, ...props }) {
|
|
5292
|
-
return /* @__PURE__ */
|
|
5569
|
+
return /* @__PURE__ */ jsx49(
|
|
5293
5570
|
"p",
|
|
5294
5571
|
{
|
|
5295
5572
|
"data-slot": "alert-dialog-description",
|
|
@@ -5300,7 +5577,7 @@ function AlertDialogDescription({ className, ...props }) {
|
|
|
5300
5577
|
}
|
|
5301
5578
|
function AlertDialogAction({ className, onClick, ...props }) {
|
|
5302
5579
|
const { setOpen } = useAlertDialog();
|
|
5303
|
-
return /* @__PURE__ */
|
|
5580
|
+
return /* @__PURE__ */ jsx49(
|
|
5304
5581
|
"button",
|
|
5305
5582
|
{
|
|
5306
5583
|
"data-slot": "alert-dialog-action",
|
|
@@ -5315,7 +5592,7 @@ function AlertDialogAction({ className, onClick, ...props }) {
|
|
|
5315
5592
|
}
|
|
5316
5593
|
function AlertDialogCancel({ className, onClick, ...props }) {
|
|
5317
5594
|
const { setOpen } = useAlertDialog();
|
|
5318
|
-
return /* @__PURE__ */
|
|
5595
|
+
return /* @__PURE__ */ jsx49(
|
|
5319
5596
|
"button",
|
|
5320
5597
|
{
|
|
5321
5598
|
"data-slot": "alert-dialog-cancel",
|
|
@@ -5330,7 +5607,7 @@ function AlertDialogCancel({ className, onClick, ...props }) {
|
|
|
5330
5607
|
}
|
|
5331
5608
|
|
|
5332
5609
|
// src/components/sheet.tsx
|
|
5333
|
-
import * as
|
|
5610
|
+
import * as React60 from "react";
|
|
5334
5611
|
|
|
5335
5612
|
// src/generated/sheet.ts
|
|
5336
5613
|
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";
|
|
@@ -5346,10 +5623,10 @@ var SHEET_TITLE = "text-foreground font-semibold";
|
|
|
5346
5623
|
var SHEET_DESCRIPTION = "text-muted-foreground text-sm";
|
|
5347
5624
|
|
|
5348
5625
|
// src/components/sheet.tsx
|
|
5349
|
-
import { jsx as
|
|
5350
|
-
var SheetContext =
|
|
5626
|
+
import { jsx as jsx50, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
5627
|
+
var SheetContext = React60.createContext(null);
|
|
5351
5628
|
function useSheet() {
|
|
5352
|
-
const ctx =
|
|
5629
|
+
const ctx = React60.useContext(SheetContext);
|
|
5353
5630
|
if (!ctx) throw new Error("Sheet parts must be used within <Sheet>");
|
|
5354
5631
|
return ctx;
|
|
5355
5632
|
}
|
|
@@ -5359,13 +5636,13 @@ function Sheet({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
5359
5636
|
defaultValue: defaultOpen,
|
|
5360
5637
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
5361
5638
|
});
|
|
5362
|
-
const triggerRef =
|
|
5363
|
-
return /* @__PURE__ */
|
|
5639
|
+
const triggerRef = React60.useRef(null);
|
|
5640
|
+
return /* @__PURE__ */ jsx50(SheetContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children });
|
|
5364
5641
|
}
|
|
5365
5642
|
function SheetTrigger({ asChild = false, onClick, ...props }) {
|
|
5366
5643
|
const { open, setOpen, triggerRef } = useSheet();
|
|
5367
5644
|
const Comp = asChild ? Slot : "button";
|
|
5368
|
-
return /* @__PURE__ */
|
|
5645
|
+
return /* @__PURE__ */ jsx50(
|
|
5369
5646
|
Comp,
|
|
5370
5647
|
{
|
|
5371
5648
|
"data-slot": "sheet-trigger",
|
|
@@ -5381,7 +5658,7 @@ function SheetTrigger({ asChild = false, onClick, ...props }) {
|
|
|
5381
5658
|
}
|
|
5382
5659
|
function SheetOverlay({ className, ...props }) {
|
|
5383
5660
|
const { open, setOpen } = useSheet();
|
|
5384
|
-
return /* @__PURE__ */
|
|
5661
|
+
return /* @__PURE__ */ jsx50(
|
|
5385
5662
|
"div",
|
|
5386
5663
|
{
|
|
5387
5664
|
"data-slot": "sheet-overlay",
|
|
@@ -5398,7 +5675,7 @@ var sheetSideClasses = {
|
|
|
5398
5675
|
top: SHEET_SIDE_TOP,
|
|
5399
5676
|
bottom: SHEET_SIDE_BOTTOM
|
|
5400
5677
|
};
|
|
5401
|
-
var XIcon2 = (props) => /* @__PURE__ */
|
|
5678
|
+
var XIcon2 = (props) => /* @__PURE__ */ jsx50(
|
|
5402
5679
|
"svg",
|
|
5403
5680
|
{
|
|
5404
5681
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -5411,7 +5688,7 @@ var XIcon2 = (props) => /* @__PURE__ */ jsx48(
|
|
|
5411
5688
|
strokeLinecap: "round",
|
|
5412
5689
|
strokeLinejoin: "round",
|
|
5413
5690
|
...props,
|
|
5414
|
-
children: /* @__PURE__ */
|
|
5691
|
+
children: /* @__PURE__ */ jsx50("path", { d: "M18 6 6 18M6 6l12 12" })
|
|
5415
5692
|
}
|
|
5416
5693
|
);
|
|
5417
5694
|
function SheetContent({ className, children, side = "right", ...props }) {
|
|
@@ -5424,9 +5701,9 @@ function SheetContent({ className, children, side = "right", ...props }) {
|
|
|
5424
5701
|
exclude: [triggerRef]
|
|
5425
5702
|
});
|
|
5426
5703
|
if (!isPresent) return null;
|
|
5427
|
-
return /* @__PURE__ */
|
|
5428
|
-
/* @__PURE__ */
|
|
5429
|
-
/* @__PURE__ */
|
|
5704
|
+
return /* @__PURE__ */ jsxs20(Portal, { children: [
|
|
5705
|
+
/* @__PURE__ */ jsx50(SheetOverlay, {}),
|
|
5706
|
+
/* @__PURE__ */ jsxs20(
|
|
5430
5707
|
"div",
|
|
5431
5708
|
{
|
|
5432
5709
|
"data-slot": "sheet-content",
|
|
@@ -5438,7 +5715,7 @@ function SheetContent({ className, children, side = "right", ...props }) {
|
|
|
5438
5715
|
...props,
|
|
5439
5716
|
children: [
|
|
5440
5717
|
children,
|
|
5441
|
-
/* @__PURE__ */
|
|
5718
|
+
/* @__PURE__ */ jsxs20(
|
|
5442
5719
|
"button",
|
|
5443
5720
|
{
|
|
5444
5721
|
type: "button",
|
|
@@ -5446,8 +5723,8 @@ function SheetContent({ className, children, side = "right", ...props }) {
|
|
|
5446
5723
|
onClick: () => setOpen(false),
|
|
5447
5724
|
className: SHEET_CLOSE,
|
|
5448
5725
|
children: [
|
|
5449
|
-
/* @__PURE__ */
|
|
5450
|
-
/* @__PURE__ */
|
|
5726
|
+
/* @__PURE__ */ jsx50(XIcon2, { className: "size-4" }),
|
|
5727
|
+
/* @__PURE__ */ jsx50("span", { className: "sr-only", children: "Close" })
|
|
5451
5728
|
]
|
|
5452
5729
|
}
|
|
5453
5730
|
)
|
|
@@ -5459,7 +5736,7 @@ function SheetContent({ className, children, side = "right", ...props }) {
|
|
|
5459
5736
|
function SheetClose({ asChild = false, onClick, ...props }) {
|
|
5460
5737
|
const { setOpen } = useSheet();
|
|
5461
5738
|
const Comp = asChild ? Slot : "button";
|
|
5462
|
-
return /* @__PURE__ */
|
|
5739
|
+
return /* @__PURE__ */ jsx50(
|
|
5463
5740
|
Comp,
|
|
5464
5741
|
{
|
|
5465
5742
|
"data-slot": "sheet-close",
|
|
@@ -5472,7 +5749,7 @@ function SheetClose({ asChild = false, onClick, ...props }) {
|
|
|
5472
5749
|
);
|
|
5473
5750
|
}
|
|
5474
5751
|
function SheetHeader({ className, ...props }) {
|
|
5475
|
-
return /* @__PURE__ */
|
|
5752
|
+
return /* @__PURE__ */ jsx50(
|
|
5476
5753
|
"div",
|
|
5477
5754
|
{
|
|
5478
5755
|
"data-slot": "sheet-header",
|
|
@@ -5482,7 +5759,7 @@ function SheetHeader({ className, ...props }) {
|
|
|
5482
5759
|
);
|
|
5483
5760
|
}
|
|
5484
5761
|
function SheetFooter({ className, ...props }) {
|
|
5485
|
-
return /* @__PURE__ */
|
|
5762
|
+
return /* @__PURE__ */ jsx50(
|
|
5486
5763
|
"div",
|
|
5487
5764
|
{
|
|
5488
5765
|
"data-slot": "sheet-footer",
|
|
@@ -5492,7 +5769,7 @@ function SheetFooter({ className, ...props }) {
|
|
|
5492
5769
|
);
|
|
5493
5770
|
}
|
|
5494
5771
|
function SheetTitle({ className, ...props }) {
|
|
5495
|
-
return /* @__PURE__ */
|
|
5772
|
+
return /* @__PURE__ */ jsx50(
|
|
5496
5773
|
"h2",
|
|
5497
5774
|
{
|
|
5498
5775
|
"data-slot": "sheet-title",
|
|
@@ -5502,7 +5779,7 @@ function SheetTitle({ className, ...props }) {
|
|
|
5502
5779
|
);
|
|
5503
5780
|
}
|
|
5504
5781
|
function SheetDescription({ className, ...props }) {
|
|
5505
|
-
return /* @__PURE__ */
|
|
5782
|
+
return /* @__PURE__ */ jsx50(
|
|
5506
5783
|
"p",
|
|
5507
5784
|
{
|
|
5508
5785
|
"data-slot": "sheet-description",
|
|
@@ -5513,7 +5790,7 @@ function SheetDescription({ className, ...props }) {
|
|
|
5513
5790
|
}
|
|
5514
5791
|
|
|
5515
5792
|
// src/components/drawer.tsx
|
|
5516
|
-
import * as
|
|
5793
|
+
import * as React61 from "react";
|
|
5517
5794
|
|
|
5518
5795
|
// src/generated/drawer.ts
|
|
5519
5796
|
var DRAWER_CONTENT_BASE = "bg-background fixed z-50 flex h-auto border";
|
|
@@ -5531,10 +5808,10 @@ var DRAWER_TITLE = "text-foreground font-semibold";
|
|
|
5531
5808
|
var DRAWER_DESCRIPTION = "text-muted-foreground text-sm";
|
|
5532
5809
|
|
|
5533
5810
|
// src/components/drawer.tsx
|
|
5534
|
-
import { jsx as
|
|
5535
|
-
var DrawerContext =
|
|
5811
|
+
import { jsx as jsx51, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
5812
|
+
var DrawerContext = React61.createContext(null);
|
|
5536
5813
|
function useDrawer() {
|
|
5537
|
-
const ctx =
|
|
5814
|
+
const ctx = React61.useContext(DrawerContext);
|
|
5538
5815
|
if (!ctx) throw new Error("Drawer parts must be used within <Drawer>");
|
|
5539
5816
|
return ctx;
|
|
5540
5817
|
}
|
|
@@ -5550,12 +5827,12 @@ function Drawer({
|
|
|
5550
5827
|
defaultValue: defaultOpen,
|
|
5551
5828
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
5552
5829
|
});
|
|
5553
|
-
return /* @__PURE__ */
|
|
5830
|
+
return /* @__PURE__ */ jsx51(DrawerContext.Provider, { value: { open: isOpen, setOpen, direction }, children: /* @__PURE__ */ jsx51("div", { "data-slot": "drawer", children }) });
|
|
5554
5831
|
}
|
|
5555
5832
|
function DrawerTrigger({ asChild = false, onClick, ...props }) {
|
|
5556
5833
|
const { setOpen } = useDrawer();
|
|
5557
5834
|
const Comp = asChild ? Slot : "button";
|
|
5558
|
-
return /* @__PURE__ */
|
|
5835
|
+
return /* @__PURE__ */ jsx51(
|
|
5559
5836
|
Comp,
|
|
5560
5837
|
{
|
|
5561
5838
|
"data-slot": "drawer-trigger",
|
|
@@ -5570,7 +5847,7 @@ function DrawerTrigger({ asChild = false, onClick, ...props }) {
|
|
|
5570
5847
|
function DrawerClose({ asChild = false, onClick, ...props }) {
|
|
5571
5848
|
const { setOpen } = useDrawer();
|
|
5572
5849
|
const Comp = asChild ? Slot : "button";
|
|
5573
|
-
return /* @__PURE__ */
|
|
5850
|
+
return /* @__PURE__ */ jsx51(
|
|
5574
5851
|
Comp,
|
|
5575
5852
|
{
|
|
5576
5853
|
"data-slot": "drawer-close",
|
|
@@ -5585,7 +5862,7 @@ function DrawerClose({ asChild = false, onClick, ...props }) {
|
|
|
5585
5862
|
function DrawerOverlay({ className, ...props }) {
|
|
5586
5863
|
const { open, setOpen } = useDrawer();
|
|
5587
5864
|
if (!open) return null;
|
|
5588
|
-
return /* @__PURE__ */
|
|
5865
|
+
return /* @__PURE__ */ jsx51(
|
|
5589
5866
|
"div",
|
|
5590
5867
|
{
|
|
5591
5868
|
"data-slot": "drawer-overlay",
|
|
@@ -5600,8 +5877,8 @@ function DrawerContent({ className, children, ...props }) {
|
|
|
5600
5877
|
const { open, setOpen, direction } = useDrawer();
|
|
5601
5878
|
const scopeRef = useFocusScope(open);
|
|
5602
5879
|
if (!open) return null;
|
|
5603
|
-
return /* @__PURE__ */
|
|
5604
|
-
/* @__PURE__ */
|
|
5880
|
+
return /* @__PURE__ */ jsxs21(Portal, { children: [
|
|
5881
|
+
/* @__PURE__ */ jsx51(
|
|
5605
5882
|
"div",
|
|
5606
5883
|
{
|
|
5607
5884
|
"data-slot": "drawer-overlay",
|
|
@@ -5609,7 +5886,7 @@ function DrawerContent({ className, children, ...props }) {
|
|
|
5609
5886
|
onClick: () => setOpen(false)
|
|
5610
5887
|
}
|
|
5611
5888
|
),
|
|
5612
|
-
/* @__PURE__ */
|
|
5889
|
+
/* @__PURE__ */ jsxs21(
|
|
5613
5890
|
"div",
|
|
5614
5891
|
{
|
|
5615
5892
|
role: "dialog",
|
|
@@ -5624,7 +5901,7 @@ function DrawerContent({ className, children, ...props }) {
|
|
|
5624
5901
|
className: cn(DRAWER_CONTENT_BASE, drawerDirectionClasses[direction], className),
|
|
5625
5902
|
...props,
|
|
5626
5903
|
children: [
|
|
5627
|
-
direction === "bottom" ? /* @__PURE__ */
|
|
5904
|
+
direction === "bottom" ? /* @__PURE__ */ jsx51(
|
|
5628
5905
|
"div",
|
|
5629
5906
|
{
|
|
5630
5907
|
"data-slot": "drawer-handle",
|
|
@@ -5638,7 +5915,7 @@ function DrawerContent({ className, children, ...props }) {
|
|
|
5638
5915
|
] });
|
|
5639
5916
|
}
|
|
5640
5917
|
function DrawerHeader({ className, ...props }) {
|
|
5641
|
-
return /* @__PURE__ */
|
|
5918
|
+
return /* @__PURE__ */ jsx51(
|
|
5642
5919
|
"div",
|
|
5643
5920
|
{
|
|
5644
5921
|
"data-slot": "drawer-header",
|
|
@@ -5648,7 +5925,7 @@ function DrawerHeader({ className, ...props }) {
|
|
|
5648
5925
|
);
|
|
5649
5926
|
}
|
|
5650
5927
|
function DrawerFooter({ className, ...props }) {
|
|
5651
|
-
return /* @__PURE__ */
|
|
5928
|
+
return /* @__PURE__ */ jsx51(
|
|
5652
5929
|
"div",
|
|
5653
5930
|
{
|
|
5654
5931
|
"data-slot": "drawer-footer",
|
|
@@ -5658,7 +5935,7 @@ function DrawerFooter({ className, ...props }) {
|
|
|
5658
5935
|
);
|
|
5659
5936
|
}
|
|
5660
5937
|
function DrawerTitle({ className, ...props }) {
|
|
5661
|
-
return /* @__PURE__ */
|
|
5938
|
+
return /* @__PURE__ */ jsx51(
|
|
5662
5939
|
"div",
|
|
5663
5940
|
{
|
|
5664
5941
|
"data-slot": "drawer-title",
|
|
@@ -5668,7 +5945,7 @@ function DrawerTitle({ className, ...props }) {
|
|
|
5668
5945
|
);
|
|
5669
5946
|
}
|
|
5670
5947
|
function DrawerDescription({ className, ...props }) {
|
|
5671
|
-
return /* @__PURE__ */
|
|
5948
|
+
return /* @__PURE__ */ jsx51(
|
|
5672
5949
|
"div",
|
|
5673
5950
|
{
|
|
5674
5951
|
"data-slot": "drawer-description",
|
|
@@ -5679,11 +5956,11 @@ function DrawerDescription({ className, ...props }) {
|
|
|
5679
5956
|
}
|
|
5680
5957
|
|
|
5681
5958
|
// src/components/select.tsx
|
|
5682
|
-
import * as
|
|
5683
|
-
import { jsx as
|
|
5684
|
-
var SelectContext =
|
|
5959
|
+
import * as React62 from "react";
|
|
5960
|
+
import { jsx as jsx52, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
5961
|
+
var SelectContext = React62.createContext(null);
|
|
5685
5962
|
function useSelect() {
|
|
5686
|
-
const ctx =
|
|
5963
|
+
const ctx = React62.useContext(SelectContext);
|
|
5687
5964
|
if (!ctx) throw new Error("Select parts must be used within <Select>");
|
|
5688
5965
|
return ctx;
|
|
5689
5966
|
}
|
|
@@ -5706,8 +5983,8 @@ function Select({
|
|
|
5706
5983
|
defaultValue: defaultOpen,
|
|
5707
5984
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
5708
5985
|
});
|
|
5709
|
-
const anchorRef =
|
|
5710
|
-
return /* @__PURE__ */
|
|
5986
|
+
const anchorRef = React62.useRef(null);
|
|
5987
|
+
return /* @__PURE__ */ jsx52(
|
|
5711
5988
|
SelectContext.Provider,
|
|
5712
5989
|
{
|
|
5713
5990
|
value: { value: currentValue, setValue, open: isOpen, setOpen, anchorRef },
|
|
@@ -5723,7 +6000,7 @@ function SelectTrigger({
|
|
|
5723
6000
|
...props
|
|
5724
6001
|
}) {
|
|
5725
6002
|
const { open, setOpen, anchorRef } = useSelect();
|
|
5726
|
-
return /* @__PURE__ */
|
|
6003
|
+
return /* @__PURE__ */ jsxs22(
|
|
5727
6004
|
"button",
|
|
5728
6005
|
{
|
|
5729
6006
|
type: "button",
|
|
@@ -5744,7 +6021,7 @@ function SelectTrigger({
|
|
|
5744
6021
|
...props,
|
|
5745
6022
|
children: [
|
|
5746
6023
|
children,
|
|
5747
|
-
/* @__PURE__ */
|
|
6024
|
+
/* @__PURE__ */ jsx52(
|
|
5748
6025
|
"svg",
|
|
5749
6026
|
{
|
|
5750
6027
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -5758,7 +6035,7 @@ function SelectTrigger({
|
|
|
5758
6035
|
strokeLinejoin: "round",
|
|
5759
6036
|
className: "size-4 opacity-50",
|
|
5760
6037
|
"aria-hidden": "true",
|
|
5761
|
-
children: /* @__PURE__ */
|
|
6038
|
+
children: /* @__PURE__ */ jsx52("path", { d: "m6 9 6 6 6-6" })
|
|
5762
6039
|
}
|
|
5763
6040
|
)
|
|
5764
6041
|
]
|
|
@@ -5768,7 +6045,7 @@ function SelectTrigger({
|
|
|
5768
6045
|
function SelectValue({ className, placeholder, ...props }) {
|
|
5769
6046
|
const { value } = useSelect();
|
|
5770
6047
|
const isEmpty = value === "";
|
|
5771
|
-
return /* @__PURE__ */
|
|
6048
|
+
return /* @__PURE__ */ jsx52(
|
|
5772
6049
|
"span",
|
|
5773
6050
|
{
|
|
5774
6051
|
"data-slot": "select-value",
|
|
@@ -5801,13 +6078,13 @@ function SelectContent({
|
|
|
5801
6078
|
onDismiss: () => setOpen(false),
|
|
5802
6079
|
exclude: [anchorRef]
|
|
5803
6080
|
});
|
|
5804
|
-
const items =
|
|
6081
|
+
const items = React62.Children.toArray(children).filter(React62.isValidElement);
|
|
5805
6082
|
const { activeIndex, setActiveIndex, onKeyDown } = useRovingFocus({
|
|
5806
6083
|
count: items.length,
|
|
5807
6084
|
orientation: "vertical"
|
|
5808
6085
|
});
|
|
5809
6086
|
if (!isPresent) return null;
|
|
5810
|
-
return /* @__PURE__ */
|
|
6087
|
+
return /* @__PURE__ */ jsx52(Portal, { children: /* @__PURE__ */ jsx52(
|
|
5811
6088
|
"div",
|
|
5812
6089
|
{
|
|
5813
6090
|
role: "listbox",
|
|
@@ -5823,8 +6100,8 @@ function SelectContent({
|
|
|
5823
6100
|
className
|
|
5824
6101
|
),
|
|
5825
6102
|
...props,
|
|
5826
|
-
children: /* @__PURE__ */
|
|
5827
|
-
(child, index) =>
|
|
6103
|
+
children: /* @__PURE__ */ jsx52("div", { className: "p-1", children: items.map(
|
|
6104
|
+
(child, index) => React62.cloneElement(child, {
|
|
5828
6105
|
__index: index,
|
|
5829
6106
|
__active: index === activeIndex,
|
|
5830
6107
|
__setActive: setActiveIndex
|
|
@@ -5844,7 +6121,7 @@ function SelectItem({
|
|
|
5844
6121
|
}) {
|
|
5845
6122
|
const { value: selectedValue, setValue, setOpen } = useSelect();
|
|
5846
6123
|
const selected = selectedValue === value;
|
|
5847
|
-
return /* @__PURE__ */
|
|
6124
|
+
return /* @__PURE__ */ jsxs22(
|
|
5848
6125
|
"div",
|
|
5849
6126
|
{
|
|
5850
6127
|
role: "option",
|
|
@@ -5869,7 +6146,7 @@ function SelectItem({
|
|
|
5869
6146
|
),
|
|
5870
6147
|
...props,
|
|
5871
6148
|
children: [
|
|
5872
|
-
selected ? /* @__PURE__ */
|
|
6149
|
+
selected ? /* @__PURE__ */ jsx52("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx52(
|
|
5873
6150
|
"svg",
|
|
5874
6151
|
{
|
|
5875
6152
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -5883,19 +6160,19 @@ function SelectItem({
|
|
|
5883
6160
|
strokeLinejoin: "round",
|
|
5884
6161
|
className: "size-4",
|
|
5885
6162
|
"aria-hidden": "true",
|
|
5886
|
-
children: /* @__PURE__ */
|
|
6163
|
+
children: /* @__PURE__ */ jsx52("path", { d: "M20 6 9 17l-5-5" })
|
|
5887
6164
|
}
|
|
5888
6165
|
) }) : null,
|
|
5889
|
-
/* @__PURE__ */
|
|
6166
|
+
/* @__PURE__ */ jsx52("span", { children })
|
|
5890
6167
|
]
|
|
5891
6168
|
}
|
|
5892
6169
|
);
|
|
5893
6170
|
}
|
|
5894
6171
|
function SelectGroup({ className, ...props }) {
|
|
5895
|
-
return /* @__PURE__ */
|
|
6172
|
+
return /* @__PURE__ */ jsx52("div", { role: "group", "data-slot": "select-group", className, ...props });
|
|
5896
6173
|
}
|
|
5897
6174
|
function SelectLabel({ className, ...props }) {
|
|
5898
|
-
return /* @__PURE__ */
|
|
6175
|
+
return /* @__PURE__ */ jsx52(
|
|
5899
6176
|
"div",
|
|
5900
6177
|
{
|
|
5901
6178
|
"data-slot": "select-label",
|
|
@@ -5905,7 +6182,7 @@ function SelectLabel({ className, ...props }) {
|
|
|
5905
6182
|
);
|
|
5906
6183
|
}
|
|
5907
6184
|
function SelectSeparator({ className, ...props }) {
|
|
5908
|
-
return /* @__PURE__ */
|
|
6185
|
+
return /* @__PURE__ */ jsx52(
|
|
5909
6186
|
"div",
|
|
5910
6187
|
{
|
|
5911
6188
|
"data-slot": "select-separator",
|
|
@@ -5916,7 +6193,7 @@ function SelectSeparator({ className, ...props }) {
|
|
|
5916
6193
|
}
|
|
5917
6194
|
|
|
5918
6195
|
// src/components/command.tsx
|
|
5919
|
-
import * as
|
|
6196
|
+
import * as React63 from "react";
|
|
5920
6197
|
|
|
5921
6198
|
// src/generated/command.ts
|
|
5922
6199
|
var COMMAND_ROOT = "bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md";
|
|
@@ -5933,10 +6210,10 @@ var COMMAND_SEPARATOR = "bg-border -mx-1 h-px";
|
|
|
5933
6210
|
var COMMAND_SHORTCUT = "text-muted-foreground ml-auto text-xs tracking-widest";
|
|
5934
6211
|
|
|
5935
6212
|
// src/components/command.tsx
|
|
5936
|
-
import { jsx as
|
|
5937
|
-
var CommandContext =
|
|
6213
|
+
import { jsx as jsx53, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
6214
|
+
var CommandContext = React63.createContext(null);
|
|
5938
6215
|
function useCommand() {
|
|
5939
|
-
const ctx =
|
|
6216
|
+
const ctx = React63.useContext(CommandContext);
|
|
5940
6217
|
if (!ctx) throw new Error("Command parts must be used within <Command>");
|
|
5941
6218
|
return ctx;
|
|
5942
6219
|
}
|
|
@@ -5953,15 +6230,57 @@ function Command({
|
|
|
5953
6230
|
defaultValue: defaultSearch,
|
|
5954
6231
|
...onSearchChange ? { onChange: onSearchChange } : {}
|
|
5955
6232
|
});
|
|
5956
|
-
|
|
5957
|
-
|
|
6233
|
+
const [items, setItems] = React63.useState(
|
|
6234
|
+
() => /* @__PURE__ */ new Map()
|
|
6235
|
+
);
|
|
6236
|
+
const registerItem = React63.useCallback((id, value) => {
|
|
6237
|
+
setItems((prev) => {
|
|
6238
|
+
if (prev.get(id) === value) return prev;
|
|
6239
|
+
const next = new Map(prev);
|
|
6240
|
+
next.set(id, value);
|
|
6241
|
+
return next;
|
|
6242
|
+
});
|
|
6243
|
+
}, []);
|
|
6244
|
+
const unregisterItem = React63.useCallback((id) => {
|
|
6245
|
+
setItems((prev) => {
|
|
6246
|
+
if (!prev.has(id)) return prev;
|
|
6247
|
+
const next = new Map(prev);
|
|
6248
|
+
next.delete(id);
|
|
6249
|
+
return next;
|
|
6250
|
+
});
|
|
6251
|
+
}, []);
|
|
6252
|
+
const query = currentSearch.trim().toLowerCase();
|
|
6253
|
+
const matches = React63.useCallback(
|
|
6254
|
+
(value) => query === "" || value.toLowerCase().includes(query),
|
|
6255
|
+
[query]
|
|
6256
|
+
);
|
|
6257
|
+
const hasMatches = React63.useMemo(
|
|
6258
|
+
() => [...items.values()].some(matches),
|
|
6259
|
+
[items, matches]
|
|
6260
|
+
);
|
|
6261
|
+
return /* @__PURE__ */ jsx53(
|
|
6262
|
+
CommandContext.Provider,
|
|
5958
6263
|
{
|
|
5959
|
-
|
|
5960
|
-
|
|
5961
|
-
|
|
5962
|
-
|
|
6264
|
+
value: {
|
|
6265
|
+
search: currentSearch,
|
|
6266
|
+
setSearch,
|
|
6267
|
+
registerItem,
|
|
6268
|
+
unregisterItem,
|
|
6269
|
+
query,
|
|
6270
|
+
matches,
|
|
6271
|
+
hasMatches
|
|
6272
|
+
},
|
|
6273
|
+
children: /* @__PURE__ */ jsx53(
|
|
6274
|
+
"div",
|
|
6275
|
+
{
|
|
6276
|
+
"data-slot": "command",
|
|
6277
|
+
className: cn(COMMAND_ROOT, className),
|
|
6278
|
+
...props,
|
|
6279
|
+
children
|
|
6280
|
+
}
|
|
6281
|
+
)
|
|
5963
6282
|
}
|
|
5964
|
-
)
|
|
6283
|
+
);
|
|
5965
6284
|
}
|
|
5966
6285
|
function CommandDialog({
|
|
5967
6286
|
open,
|
|
@@ -5977,8 +6296,8 @@ function CommandDialog({
|
|
|
5977
6296
|
});
|
|
5978
6297
|
const scopeRef = useFocusScope(isOpen);
|
|
5979
6298
|
if (!isOpen) return null;
|
|
5980
|
-
return /* @__PURE__ */
|
|
5981
|
-
/* @__PURE__ */
|
|
6299
|
+
return /* @__PURE__ */ jsxs23(Portal, { children: [
|
|
6300
|
+
/* @__PURE__ */ jsx53(
|
|
5982
6301
|
"div",
|
|
5983
6302
|
{
|
|
5984
6303
|
"data-slot": "command-overlay",
|
|
@@ -5986,7 +6305,7 @@ function CommandDialog({
|
|
|
5986
6305
|
onClick: () => setOpen(false)
|
|
5987
6306
|
}
|
|
5988
6307
|
),
|
|
5989
|
-
/* @__PURE__ */
|
|
6308
|
+
/* @__PURE__ */ jsx53(
|
|
5990
6309
|
"div",
|
|
5991
6310
|
{
|
|
5992
6311
|
role: "dialog",
|
|
@@ -5997,7 +6316,7 @@ function CommandDialog({
|
|
|
5997
6316
|
if (e.key === "Escape") setOpen(false);
|
|
5998
6317
|
},
|
|
5999
6318
|
className: cn(COMMAND_DIALOG_CONTENT, className),
|
|
6000
|
-
children: /* @__PURE__ */
|
|
6319
|
+
children: /* @__PURE__ */ jsx53(Command, { className: COMMAND_DIALOG_COMMAND, children })
|
|
6001
6320
|
}
|
|
6002
6321
|
)
|
|
6003
6322
|
] });
|
|
@@ -6007,8 +6326,8 @@ function CommandInput({
|
|
|
6007
6326
|
...props
|
|
6008
6327
|
}) {
|
|
6009
6328
|
const { search, setSearch } = useCommand();
|
|
6010
|
-
return /* @__PURE__ */
|
|
6011
|
-
/* @__PURE__ */
|
|
6329
|
+
return /* @__PURE__ */ jsxs23("div", { className: COMMAND_INPUT_WRAPPER, "data-slot": "command-input-wrapper", children: [
|
|
6330
|
+
/* @__PURE__ */ jsxs23(
|
|
6012
6331
|
"svg",
|
|
6013
6332
|
{
|
|
6014
6333
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -6023,12 +6342,12 @@ function CommandInput({
|
|
|
6023
6342
|
className: "size-4 shrink-0 opacity-50",
|
|
6024
6343
|
"aria-hidden": "true",
|
|
6025
6344
|
children: [
|
|
6026
|
-
/* @__PURE__ */
|
|
6027
|
-
/* @__PURE__ */
|
|
6345
|
+
/* @__PURE__ */ jsx53("circle", { cx: "11", cy: "11", r: "8" }),
|
|
6346
|
+
/* @__PURE__ */ jsx53("path", { d: "m21 21-4.3-4.3" })
|
|
6028
6347
|
]
|
|
6029
6348
|
}
|
|
6030
6349
|
),
|
|
6031
|
-
/* @__PURE__ */
|
|
6350
|
+
/* @__PURE__ */ jsx53(
|
|
6032
6351
|
"input",
|
|
6033
6352
|
{
|
|
6034
6353
|
type: "text",
|
|
@@ -6043,7 +6362,7 @@ function CommandInput({
|
|
|
6043
6362
|
] });
|
|
6044
6363
|
}
|
|
6045
6364
|
function CommandList({ className, ...props }) {
|
|
6046
|
-
return /* @__PURE__ */
|
|
6365
|
+
return /* @__PURE__ */ jsx53(
|
|
6047
6366
|
"div",
|
|
6048
6367
|
{
|
|
6049
6368
|
role: "listbox",
|
|
@@ -6054,10 +6373,9 @@ function CommandList({ className, ...props }) {
|
|
|
6054
6373
|
);
|
|
6055
6374
|
}
|
|
6056
6375
|
function CommandEmpty({ className, children, ...props }) {
|
|
6057
|
-
const {
|
|
6058
|
-
|
|
6059
|
-
|
|
6060
|
-
return /* @__PURE__ */ jsx51(
|
|
6376
|
+
const { query, hasMatches } = useCommand();
|
|
6377
|
+
if (query === "" || hasMatches) return null;
|
|
6378
|
+
return /* @__PURE__ */ jsx53(
|
|
6061
6379
|
"div",
|
|
6062
6380
|
{
|
|
6063
6381
|
"data-slot": "command-empty",
|
|
@@ -6068,7 +6386,7 @@ function CommandEmpty({ className, children, ...props }) {
|
|
|
6068
6386
|
);
|
|
6069
6387
|
}
|
|
6070
6388
|
function CommandGroup({ className, heading, children, ...props }) {
|
|
6071
|
-
return /* @__PURE__ */
|
|
6389
|
+
return /* @__PURE__ */ jsxs23(
|
|
6072
6390
|
"div",
|
|
6073
6391
|
{
|
|
6074
6392
|
role: "group",
|
|
@@ -6076,7 +6394,7 @@ function CommandGroup({ className, heading, children, ...props }) {
|
|
|
6076
6394
|
className: cn(COMMAND_GROUP, className),
|
|
6077
6395
|
...props,
|
|
6078
6396
|
children: [
|
|
6079
|
-
heading ? /* @__PURE__ */
|
|
6397
|
+
heading ? /* @__PURE__ */ jsx53("div", { "data-slot": "command-group-heading", children: heading }) : null,
|
|
6080
6398
|
children
|
|
6081
6399
|
]
|
|
6082
6400
|
}
|
|
@@ -6090,10 +6408,14 @@ function CommandItem({
|
|
|
6090
6408
|
children,
|
|
6091
6409
|
...props
|
|
6092
6410
|
}) {
|
|
6093
|
-
const {
|
|
6094
|
-
const
|
|
6095
|
-
|
|
6096
|
-
|
|
6411
|
+
const { registerItem, unregisterItem, matches } = useCommand();
|
|
6412
|
+
const id = React63.useId();
|
|
6413
|
+
React63.useEffect(() => {
|
|
6414
|
+
registerItem(id, value);
|
|
6415
|
+
return () => unregisterItem(id);
|
|
6416
|
+
}, [id, value, registerItem, unregisterItem]);
|
|
6417
|
+
if (!matches(value)) return null;
|
|
6418
|
+
return /* @__PURE__ */ jsx53(
|
|
6097
6419
|
"div",
|
|
6098
6420
|
{
|
|
6099
6421
|
role: "option",
|
|
@@ -6111,7 +6433,7 @@ function CommandItem({
|
|
|
6111
6433
|
);
|
|
6112
6434
|
}
|
|
6113
6435
|
function CommandSeparator({ className, ...props }) {
|
|
6114
|
-
return /* @__PURE__ */
|
|
6436
|
+
return /* @__PURE__ */ jsx53(
|
|
6115
6437
|
"div",
|
|
6116
6438
|
{
|
|
6117
6439
|
"data-slot": "command-separator",
|
|
@@ -6121,7 +6443,7 @@ function CommandSeparator({ className, ...props }) {
|
|
|
6121
6443
|
);
|
|
6122
6444
|
}
|
|
6123
6445
|
function CommandShortcut({ className, ...props }) {
|
|
6124
|
-
return /* @__PURE__ */
|
|
6446
|
+
return /* @__PURE__ */ jsx53(
|
|
6125
6447
|
"span",
|
|
6126
6448
|
{
|
|
6127
6449
|
"data-slot": "command-shortcut",
|
|
@@ -6132,7 +6454,7 @@ function CommandShortcut({ className, ...props }) {
|
|
|
6132
6454
|
}
|
|
6133
6455
|
|
|
6134
6456
|
// src/components/chart.tsx
|
|
6135
|
-
import * as
|
|
6457
|
+
import * as React64 from "react";
|
|
6136
6458
|
|
|
6137
6459
|
// src/generated/chart.ts
|
|
6138
6460
|
var CHART_CONTAINER = "flex aspect-video justify-center text-xs [&_.recharts-layer]:outline-hidden [&_.recharts-surface]:outline-hidden [&_svg]:outline-hidden";
|
|
@@ -6140,10 +6462,10 @@ var CHART_TOOLTIP = "border-border/50 bg-background grid min-w-[8rem] items-star
|
|
|
6140
6462
|
var CHART_LEGEND = "flex items-center justify-center gap-4";
|
|
6141
6463
|
|
|
6142
6464
|
// src/components/chart.tsx
|
|
6143
|
-
import { Fragment as
|
|
6144
|
-
var ChartContext =
|
|
6465
|
+
import { Fragment as Fragment7, jsx as jsx54, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
6466
|
+
var ChartContext = React64.createContext(null);
|
|
6145
6467
|
function useChart() {
|
|
6146
|
-
const context =
|
|
6468
|
+
const context = React64.useContext(ChartContext);
|
|
6147
6469
|
if (!context) {
|
|
6148
6470
|
throw new Error("useChart must be used within a <ChartContainer />");
|
|
6149
6471
|
}
|
|
@@ -6156,9 +6478,9 @@ function ChartContainer({
|
|
|
6156
6478
|
config,
|
|
6157
6479
|
...props
|
|
6158
6480
|
}) {
|
|
6159
|
-
const uniqueId =
|
|
6481
|
+
const uniqueId = React64.useId();
|
|
6160
6482
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
6161
|
-
return /* @__PURE__ */
|
|
6483
|
+
return /* @__PURE__ */ jsx54(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs24(
|
|
6162
6484
|
"div",
|
|
6163
6485
|
{
|
|
6164
6486
|
"data-slot": "chart",
|
|
@@ -6166,7 +6488,7 @@ function ChartContainer({
|
|
|
6166
6488
|
className: cn(CHART_CONTAINER, className),
|
|
6167
6489
|
...props,
|
|
6168
6490
|
children: [
|
|
6169
|
-
/* @__PURE__ */
|
|
6491
|
+
/* @__PURE__ */ jsx54(ChartStyle, { id: chartId, config }),
|
|
6170
6492
|
children
|
|
6171
6493
|
]
|
|
6172
6494
|
}
|
|
@@ -6177,7 +6499,7 @@ var ChartStyle = ({ id, config }) => {
|
|
|
6177
6499
|
if (!colorConfig.length) {
|
|
6178
6500
|
return null;
|
|
6179
6501
|
}
|
|
6180
|
-
return /* @__PURE__ */
|
|
6502
|
+
return /* @__PURE__ */ jsx54(
|
|
6181
6503
|
"style",
|
|
6182
6504
|
{
|
|
6183
6505
|
dangerouslySetInnerHTML: {
|
|
@@ -6188,7 +6510,7 @@ ${colorConfig.map(([key, itemConfig]) => ` --color-${key}: ${itemConfig.color};
|
|
|
6188
6510
|
}
|
|
6189
6511
|
);
|
|
6190
6512
|
};
|
|
6191
|
-
var ChartTooltip = ({ children }) => /* @__PURE__ */
|
|
6513
|
+
var ChartTooltip = ({ children }) => /* @__PURE__ */ jsx54(Fragment7, { children });
|
|
6192
6514
|
function ChartTooltipContent({
|
|
6193
6515
|
className,
|
|
6194
6516
|
items = [],
|
|
@@ -6201,21 +6523,21 @@ function ChartTooltipContent({
|
|
|
6201
6523
|
if (!items.length) {
|
|
6202
6524
|
return null;
|
|
6203
6525
|
}
|
|
6204
|
-
return /* @__PURE__ */
|
|
6526
|
+
return /* @__PURE__ */ jsxs24(
|
|
6205
6527
|
"div",
|
|
6206
6528
|
{
|
|
6207
6529
|
"data-slot": "chart-tooltip",
|
|
6208
6530
|
className: cn(CHART_TOOLTIP, className),
|
|
6209
6531
|
children: [
|
|
6210
|
-
!hideLabel && label ? /* @__PURE__ */
|
|
6211
|
-
/* @__PURE__ */
|
|
6532
|
+
!hideLabel && label ? /* @__PURE__ */ jsx54("div", { className: cn("font-medium", labelClassName), children: label }) : null,
|
|
6533
|
+
/* @__PURE__ */ jsx54("div", { className: "grid gap-1.5", children: items.map((item, index) => /* @__PURE__ */ jsxs24(
|
|
6212
6534
|
"div",
|
|
6213
6535
|
{
|
|
6214
6536
|
className: cn(
|
|
6215
6537
|
"[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 items-center"
|
|
6216
6538
|
),
|
|
6217
6539
|
children: [
|
|
6218
|
-
!hideIndicator && /* @__PURE__ */
|
|
6540
|
+
!hideIndicator && /* @__PURE__ */ jsx54(
|
|
6219
6541
|
"div",
|
|
6220
6542
|
{
|
|
6221
6543
|
className: "shrink-0 rounded-[2px] h-2.5 w-2.5",
|
|
@@ -6225,9 +6547,9 @@ function ChartTooltipContent({
|
|
|
6225
6547
|
}
|
|
6226
6548
|
}
|
|
6227
6549
|
),
|
|
6228
|
-
/* @__PURE__ */
|
|
6229
|
-
/* @__PURE__ */
|
|
6230
|
-
item.value !== void 0 && /* @__PURE__ */
|
|
6550
|
+
/* @__PURE__ */ jsxs24("div", { className: "flex flex-1 justify-between leading-none items-center", children: [
|
|
6551
|
+
/* @__PURE__ */ jsx54("span", { className: "text-muted-foreground", children: item.label }),
|
|
6552
|
+
item.value !== void 0 && /* @__PURE__ */ jsx54("span", { className: "text-foreground font-mono font-medium tabular-nums", children: item.value })
|
|
6231
6553
|
] })
|
|
6232
6554
|
]
|
|
6233
6555
|
},
|
|
@@ -6237,7 +6559,7 @@ function ChartTooltipContent({
|
|
|
6237
6559
|
}
|
|
6238
6560
|
);
|
|
6239
6561
|
}
|
|
6240
|
-
var ChartLegend = ({ children }) => /* @__PURE__ */
|
|
6562
|
+
var ChartLegend = ({ children }) => /* @__PURE__ */ jsx54(Fragment7, { children });
|
|
6241
6563
|
function ChartLegendContent({
|
|
6242
6564
|
className,
|
|
6243
6565
|
hideIcon = false,
|
|
@@ -6251,19 +6573,19 @@ function ChartLegendContent({
|
|
|
6251
6573
|
if (!rows.length) {
|
|
6252
6574
|
return null;
|
|
6253
6575
|
}
|
|
6254
|
-
return /* @__PURE__ */
|
|
6576
|
+
return /* @__PURE__ */ jsx54(
|
|
6255
6577
|
"div",
|
|
6256
6578
|
{
|
|
6257
6579
|
"data-slot": "chart-legend",
|
|
6258
6580
|
className: cn(CHART_LEGEND, className),
|
|
6259
|
-
children: rows.map((item, index) => /* @__PURE__ */
|
|
6581
|
+
children: rows.map((item, index) => /* @__PURE__ */ jsxs24(
|
|
6260
6582
|
"div",
|
|
6261
6583
|
{
|
|
6262
6584
|
className: cn(
|
|
6263
6585
|
"[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"
|
|
6264
6586
|
),
|
|
6265
6587
|
children: [
|
|
6266
|
-
!hideIcon && /* @__PURE__ */
|
|
6588
|
+
!hideIcon && /* @__PURE__ */ jsx54(
|
|
6267
6589
|
"div",
|
|
6268
6590
|
{
|
|
6269
6591
|
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
@@ -6280,7 +6602,7 @@ function ChartLegendContent({
|
|
|
6280
6602
|
}
|
|
6281
6603
|
|
|
6282
6604
|
// src/components/calendar.tsx
|
|
6283
|
-
import * as
|
|
6605
|
+
import * as React65 from "react";
|
|
6284
6606
|
|
|
6285
6607
|
// src/generated/calendar.ts
|
|
6286
6608
|
var CALENDAR_ROOT = "bg-background p-3 w-fit";
|
|
@@ -6298,7 +6620,7 @@ var CALENDAR_DAY_SELECTED = "bg-primary text-primary-foreground";
|
|
|
6298
6620
|
var CALENDAR_DAY_TODAY = "bg-accent text-accent-foreground rounded-md";
|
|
6299
6621
|
|
|
6300
6622
|
// src/components/calendar.tsx
|
|
6301
|
-
import { jsx as
|
|
6623
|
+
import { jsx as jsx55, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
6302
6624
|
var MONTHS = [
|
|
6303
6625
|
"January",
|
|
6304
6626
|
"February",
|
|
@@ -6317,7 +6639,7 @@ var WEEKDAYS = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"];
|
|
|
6317
6639
|
var CHEVRON_LEFT = "m15 18-6-6 6-6";
|
|
6318
6640
|
var CHEVRON_RIGHT = "m9 18 6-6-6-6";
|
|
6319
6641
|
function Chevron({ d }) {
|
|
6320
|
-
return /* @__PURE__ */
|
|
6642
|
+
return /* @__PURE__ */ jsx55(
|
|
6321
6643
|
"svg",
|
|
6322
6644
|
{
|
|
6323
6645
|
className: "size-4",
|
|
@@ -6331,7 +6653,7 @@ function Chevron({ d }) {
|
|
|
6331
6653
|
strokeLinecap: "round",
|
|
6332
6654
|
strokeLinejoin: "round",
|
|
6333
6655
|
"aria-hidden": true,
|
|
6334
|
-
children: /* @__PURE__ */
|
|
6656
|
+
children: /* @__PURE__ */ jsx55("path", { d })
|
|
6335
6657
|
}
|
|
6336
6658
|
);
|
|
6337
6659
|
}
|
|
@@ -6353,7 +6675,7 @@ function Calendar({
|
|
|
6353
6675
|
today = /* @__PURE__ */ new Date(),
|
|
6354
6676
|
className
|
|
6355
6677
|
}) {
|
|
6356
|
-
const [internal, setInternal] =
|
|
6678
|
+
const [internal, setInternal] = React65.useState(
|
|
6357
6679
|
() => startOfMonth(defaultMonth ?? /* @__PURE__ */ new Date())
|
|
6358
6680
|
);
|
|
6359
6681
|
const view = month ? startOfMonth(month) : internal;
|
|
@@ -6378,38 +6700,38 @@ function Calendar({
|
|
|
6378
6700
|
size: "icon",
|
|
6379
6701
|
className: CALENDAR_NAV_BUTTON
|
|
6380
6702
|
});
|
|
6381
|
-
return /* @__PURE__ */
|
|
6703
|
+
return /* @__PURE__ */ jsxs25(
|
|
6382
6704
|
"div",
|
|
6383
6705
|
{
|
|
6384
6706
|
"data-slot": "calendar",
|
|
6385
6707
|
role: "application",
|
|
6386
6708
|
className: cn(CALENDAR_ROOT, className),
|
|
6387
6709
|
children: [
|
|
6388
|
-
/* @__PURE__ */
|
|
6389
|
-
/* @__PURE__ */
|
|
6710
|
+
/* @__PURE__ */ jsxs25("div", { className: CALENDAR_NAV, children: [
|
|
6711
|
+
/* @__PURE__ */ jsx55(
|
|
6390
6712
|
"button",
|
|
6391
6713
|
{
|
|
6392
6714
|
type: "button",
|
|
6393
6715
|
className: navClass,
|
|
6394
6716
|
"aria-label": "Previous month",
|
|
6395
6717
|
onClick: () => go(-1),
|
|
6396
|
-
children: /* @__PURE__ */
|
|
6718
|
+
children: /* @__PURE__ */ jsx55(Chevron, { d: CHEVRON_LEFT })
|
|
6397
6719
|
}
|
|
6398
6720
|
),
|
|
6399
|
-
/* @__PURE__ */
|
|
6400
|
-
/* @__PURE__ */
|
|
6721
|
+
/* @__PURE__ */ jsx55("div", { className: CALENDAR_CAPTION, children: caption }),
|
|
6722
|
+
/* @__PURE__ */ jsx55(
|
|
6401
6723
|
"button",
|
|
6402
6724
|
{
|
|
6403
6725
|
type: "button",
|
|
6404
6726
|
className: navClass,
|
|
6405
6727
|
"aria-label": "Next month",
|
|
6406
6728
|
onClick: () => go(1),
|
|
6407
|
-
children: /* @__PURE__ */
|
|
6729
|
+
children: /* @__PURE__ */ jsx55(Chevron, { d: CHEVRON_RIGHT })
|
|
6408
6730
|
}
|
|
6409
6731
|
)
|
|
6410
6732
|
] }),
|
|
6411
|
-
/* @__PURE__ */
|
|
6412
|
-
/* @__PURE__ */
|
|
6733
|
+
/* @__PURE__ */ jsxs25("table", { className: CALENDAR_GRID, role: "grid", children: [
|
|
6734
|
+
/* @__PURE__ */ jsx55("thead", { children: /* @__PURE__ */ jsx55("tr", { className: CALENDAR_WEEKDAY_ROW, children: WEEKDAYS.map((wd) => /* @__PURE__ */ jsx55(
|
|
6413
6735
|
"th",
|
|
6414
6736
|
{
|
|
6415
6737
|
scope: "col",
|
|
@@ -6418,9 +6740,9 @@ function Calendar({
|
|
|
6418
6740
|
},
|
|
6419
6741
|
wd
|
|
6420
6742
|
)) }) }),
|
|
6421
|
-
/* @__PURE__ */
|
|
6743
|
+
/* @__PURE__ */ jsx55("tbody", { children: weeks.map((week, wi) => /* @__PURE__ */ jsx55("tr", { className: CALENDAR_WEEK, children: week.map((cell, ci) => {
|
|
6422
6744
|
if (cell === null) {
|
|
6423
|
-
return /* @__PURE__ */
|
|
6745
|
+
return /* @__PURE__ */ jsx55(
|
|
6424
6746
|
"td",
|
|
6425
6747
|
{
|
|
6426
6748
|
className: CALENDAR_DAY_EMPTY
|
|
@@ -6431,13 +6753,13 @@ function Calendar({
|
|
|
6431
6753
|
const date = new Date(year, monthIndex, cell);
|
|
6432
6754
|
const isSelected = sameDay(selected, date);
|
|
6433
6755
|
const isToday = sameDay(today, date);
|
|
6434
|
-
return /* @__PURE__ */
|
|
6756
|
+
return /* @__PURE__ */ jsx55(
|
|
6435
6757
|
"td",
|
|
6436
6758
|
{
|
|
6437
6759
|
role: "gridcell",
|
|
6438
6760
|
"aria-selected": isSelected,
|
|
6439
6761
|
className: CALENDAR_DAY_CELL,
|
|
6440
|
-
children: /* @__PURE__ */
|
|
6762
|
+
children: /* @__PURE__ */ jsx55(
|
|
6441
6763
|
"button",
|
|
6442
6764
|
{
|
|
6443
6765
|
type: "button",
|
|
@@ -6467,7 +6789,7 @@ function Calendar({
|
|
|
6467
6789
|
}
|
|
6468
6790
|
|
|
6469
6791
|
// src/components/sonner.tsx
|
|
6470
|
-
import * as
|
|
6792
|
+
import * as React66 from "react";
|
|
6471
6793
|
|
|
6472
6794
|
// src/generated/sonner.ts
|
|
6473
6795
|
var TOAST_BASE = "pointer-events-auto flex w-full items-start gap-3 rounded-md border p-4 text-sm shadow-lg";
|
|
@@ -6492,7 +6814,7 @@ var TOAST_CONTENT = "flex-1 space-y-1";
|
|
|
6492
6814
|
var TOAST_TITLE = "font-medium";
|
|
6493
6815
|
|
|
6494
6816
|
// src/components/sonner.tsx
|
|
6495
|
-
import { jsx as
|
|
6817
|
+
import { jsx as jsx56, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
6496
6818
|
var DEFAULT_DURATION = 4e3;
|
|
6497
6819
|
var SWIPE_THRESHOLD = 45;
|
|
6498
6820
|
var SWIPE_VELOCITY = 0.11;
|
|
@@ -6557,17 +6879,17 @@ function ToastItem({
|
|
|
6557
6879
|
reportHeight,
|
|
6558
6880
|
removeHeight
|
|
6559
6881
|
}) {
|
|
6560
|
-
const ref =
|
|
6561
|
-
const [height, setHeight] =
|
|
6562
|
-
const remainingRef =
|
|
6563
|
-
const startedRef =
|
|
6564
|
-
const flingRef =
|
|
6882
|
+
const ref = React66.useRef(null);
|
|
6883
|
+
const [height, setHeight] = React66.useState(0);
|
|
6884
|
+
const remainingRef = React66.useRef(t.duration);
|
|
6885
|
+
const startedRef = React66.useRef(0);
|
|
6886
|
+
const flingRef = React66.useRef(
|
|
6565
6887
|
void 0
|
|
6566
6888
|
);
|
|
6567
|
-
const dragRef =
|
|
6889
|
+
const dragRef = React66.useRef(
|
|
6568
6890
|
null
|
|
6569
6891
|
);
|
|
6570
|
-
|
|
6892
|
+
React66.useLayoutEffect(() => {
|
|
6571
6893
|
const el = ref.current;
|
|
6572
6894
|
if (!el) return;
|
|
6573
6895
|
el.style.height = "auto";
|
|
@@ -6578,8 +6900,12 @@ function ToastItem({
|
|
|
6578
6900
|
reportHeight(t.id, h);
|
|
6579
6901
|
}
|
|
6580
6902
|
}, [t.id, t.message, t.description, reportHeight]);
|
|
6581
|
-
|
|
6582
|
-
|
|
6903
|
+
React66.useEffect(() => () => removeHeight(t.id), [t.id, removeHeight]);
|
|
6904
|
+
const mountedClosing = React66.useRef(t.state === "closing");
|
|
6905
|
+
React66.useEffect(() => {
|
|
6906
|
+
if (mountedClosing.current) store.remove(t.id);
|
|
6907
|
+
}, [t.id]);
|
|
6908
|
+
React66.useEffect(() => {
|
|
6583
6909
|
if (t.duration === Infinity || t.state === "closing" || paused) return;
|
|
6584
6910
|
startedRef.current = Date.now();
|
|
6585
6911
|
const id = setTimeout(() => store.dismiss(t.id), remainingRef.current);
|
|
@@ -6591,7 +6917,7 @@ function ToastItem({
|
|
|
6591
6917
|
);
|
|
6592
6918
|
};
|
|
6593
6919
|
}, [paused, t.id, t.duration, t.state]);
|
|
6594
|
-
|
|
6920
|
+
React66.useEffect(
|
|
6595
6921
|
() => () => {
|
|
6596
6922
|
if (flingRef.current) clearTimeout(flingRef.current);
|
|
6597
6923
|
},
|
|
@@ -6650,7 +6976,7 @@ function ToastItem({
|
|
|
6650
6976
|
);
|
|
6651
6977
|
}
|
|
6652
6978
|
};
|
|
6653
|
-
return /* @__PURE__ */
|
|
6979
|
+
return /* @__PURE__ */ jsxs26(
|
|
6654
6980
|
"li",
|
|
6655
6981
|
{
|
|
6656
6982
|
ref,
|
|
@@ -6678,11 +7004,11 @@ function ToastItem({
|
|
|
6678
7004
|
toastVariantClasses[t.variant]
|
|
6679
7005
|
),
|
|
6680
7006
|
children: [
|
|
6681
|
-
/* @__PURE__ */
|
|
6682
|
-
/* @__PURE__ */
|
|
6683
|
-
t.description ? /* @__PURE__ */
|
|
7007
|
+
/* @__PURE__ */ jsxs26("div", { className: TOAST_CONTENT, children: [
|
|
7008
|
+
/* @__PURE__ */ jsx56("div", { className: TOAST_TITLE, children: t.message }),
|
|
7009
|
+
t.description ? /* @__PURE__ */ jsx56("div", { className: "text-muted-foreground text-sm", children: t.description }) : null
|
|
6684
7010
|
] }),
|
|
6685
|
-
/* @__PURE__ */
|
|
7011
|
+
/* @__PURE__ */ jsx56(
|
|
6686
7012
|
"button",
|
|
6687
7013
|
{
|
|
6688
7014
|
type: "button",
|
|
@@ -6690,7 +7016,7 @@ function ToastItem({
|
|
|
6690
7016
|
"data-slot": "toast-close",
|
|
6691
7017
|
onClick: () => store.dismiss(t.id),
|
|
6692
7018
|
className: TOAST_CLOSE,
|
|
6693
|
-
children: /* @__PURE__ */
|
|
7019
|
+
children: /* @__PURE__ */ jsx56(
|
|
6694
7020
|
"svg",
|
|
6695
7021
|
{
|
|
6696
7022
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -6703,7 +7029,7 @@ function ToastItem({
|
|
|
6703
7029
|
strokeLinecap: "round",
|
|
6704
7030
|
strokeLinejoin: "round",
|
|
6705
7031
|
"aria-hidden": "true",
|
|
6706
|
-
children: /* @__PURE__ */
|
|
7032
|
+
children: /* @__PURE__ */ jsx56("path", { d: "M18 6 6 18M6 6l12 12" })
|
|
6707
7033
|
}
|
|
6708
7034
|
)
|
|
6709
7035
|
}
|
|
@@ -6717,17 +7043,17 @@ function Toaster({
|
|
|
6717
7043
|
className,
|
|
6718
7044
|
...props
|
|
6719
7045
|
}) {
|
|
6720
|
-
const [toasts, setToasts] =
|
|
6721
|
-
const [heights, setHeights] =
|
|
6722
|
-
const [paused, setPaused] =
|
|
6723
|
-
|
|
7046
|
+
const [toasts, setToasts] = React66.useState([]);
|
|
7047
|
+
const [heights, setHeights] = React66.useState(/* @__PURE__ */ new Map());
|
|
7048
|
+
const [paused, setPaused] = React66.useState(false);
|
|
7049
|
+
React66.useEffect(() => store.subscribe(setToasts), []);
|
|
6724
7050
|
const onEnter = () => setPaused(true);
|
|
6725
7051
|
const onLeave = (e) => {
|
|
6726
7052
|
if (!e.currentTarget.contains(e.relatedTarget)) {
|
|
6727
7053
|
setPaused(false);
|
|
6728
7054
|
}
|
|
6729
7055
|
};
|
|
6730
|
-
const reportHeight =
|
|
7056
|
+
const reportHeight = React66.useCallback((id, h) => {
|
|
6731
7057
|
setHeights((prev) => {
|
|
6732
7058
|
if (prev.get(id) === h) return prev;
|
|
6733
7059
|
const next = new Map(prev);
|
|
@@ -6735,7 +7061,7 @@ function Toaster({
|
|
|
6735
7061
|
return next;
|
|
6736
7062
|
});
|
|
6737
7063
|
}, []);
|
|
6738
|
-
const removeHeight =
|
|
7064
|
+
const removeHeight = React66.useCallback((id) => {
|
|
6739
7065
|
setHeights((prev) => {
|
|
6740
7066
|
if (!prev.has(id)) return prev;
|
|
6741
7067
|
const next = new Map(prev);
|
|
@@ -6753,7 +7079,7 @@ function Toaster({
|
|
|
6753
7079
|
sum += heights.get(t.id) ?? 0;
|
|
6754
7080
|
return o;
|
|
6755
7081
|
});
|
|
6756
|
-
return /* @__PURE__ */
|
|
7082
|
+
return /* @__PURE__ */ jsx56(
|
|
6757
7083
|
"ol",
|
|
6758
7084
|
{
|
|
6759
7085
|
"data-slot": "toaster",
|
|
@@ -6774,7 +7100,7 @@ function Toaster({
|
|
|
6774
7100
|
onPointerOut: onLeave,
|
|
6775
7101
|
onFocus: onEnter,
|
|
6776
7102
|
onBlur: onLeave,
|
|
6777
|
-
children: ordered.map((t, i) => /* @__PURE__ */
|
|
7103
|
+
children: ordered.map((t, i) => /* @__PURE__ */ jsx56(
|
|
6778
7104
|
ToastItem,
|
|
6779
7105
|
{
|
|
6780
7106
|
toast: t,
|
|
@@ -6792,7 +7118,7 @@ function Toaster({
|
|
|
6792
7118
|
}
|
|
6793
7119
|
|
|
6794
7120
|
// src/components/form.tsx
|
|
6795
|
-
import * as
|
|
7121
|
+
import * as React67 from "react";
|
|
6796
7122
|
|
|
6797
7123
|
// src/generated/form.ts
|
|
6798
7124
|
var FORM_ITEM = "grid gap-2";
|
|
@@ -6800,21 +7126,21 @@ var FORM_DESCRIPTION = "text-muted-foreground text-sm";
|
|
|
6800
7126
|
var FORM_MESSAGE = "text-destructive text-sm";
|
|
6801
7127
|
|
|
6802
7128
|
// src/components/form.tsx
|
|
6803
|
-
import { jsx as
|
|
6804
|
-
var FormItemContext =
|
|
7129
|
+
import { jsx as jsx57 } from "react/jsx-runtime";
|
|
7130
|
+
var FormItemContext = React67.createContext(null);
|
|
6805
7131
|
function useFormItem() {
|
|
6806
|
-
const ctx =
|
|
7132
|
+
const ctx = React67.useContext(FormItemContext);
|
|
6807
7133
|
if (!ctx) {
|
|
6808
7134
|
throw new Error("Form parts must be used within <FormItem>");
|
|
6809
7135
|
}
|
|
6810
7136
|
return ctx;
|
|
6811
7137
|
}
|
|
6812
7138
|
function Form({ ...props }) {
|
|
6813
|
-
return /* @__PURE__ */
|
|
7139
|
+
return /* @__PURE__ */ jsx57("form", { "data-slot": "form", ...props });
|
|
6814
7140
|
}
|
|
6815
7141
|
function FormItem({ className, ...props }) {
|
|
6816
|
-
const id =
|
|
6817
|
-
const value =
|
|
7142
|
+
const id = React67.useId();
|
|
7143
|
+
const value = React67.useMemo(
|
|
6818
7144
|
() => ({
|
|
6819
7145
|
id,
|
|
6820
7146
|
formItemId: `${id}-form-item`,
|
|
@@ -6823,7 +7149,7 @@ function FormItem({ className, ...props }) {
|
|
|
6823
7149
|
}),
|
|
6824
7150
|
[id]
|
|
6825
7151
|
);
|
|
6826
|
-
return /* @__PURE__ */
|
|
7152
|
+
return /* @__PURE__ */ jsx57(FormItemContext.Provider, { value, children: /* @__PURE__ */ jsx57("div", { "data-slot": "form-item", className: cn(FORM_ITEM, className), ...props }) });
|
|
6827
7153
|
}
|
|
6828
7154
|
function FormLabel({
|
|
6829
7155
|
className,
|
|
@@ -6831,7 +7157,7 @@ function FormLabel({
|
|
|
6831
7157
|
...props
|
|
6832
7158
|
}) {
|
|
6833
7159
|
const { formItemId } = useFormItem();
|
|
6834
|
-
return /* @__PURE__ */
|
|
7160
|
+
return /* @__PURE__ */ jsx57(
|
|
6835
7161
|
Label,
|
|
6836
7162
|
{
|
|
6837
7163
|
"data-slot": "form-label",
|
|
@@ -6847,7 +7173,7 @@ function FormControl({
|
|
|
6847
7173
|
...props
|
|
6848
7174
|
}) {
|
|
6849
7175
|
const { formItemId, formDescriptionId, formMessageId } = useFormItem();
|
|
6850
|
-
return /* @__PURE__ */
|
|
7176
|
+
return /* @__PURE__ */ jsx57(
|
|
6851
7177
|
Slot,
|
|
6852
7178
|
{
|
|
6853
7179
|
"data-slot": "form-control",
|
|
@@ -6860,7 +7186,7 @@ function FormControl({
|
|
|
6860
7186
|
}
|
|
6861
7187
|
function FormDescription({ className, ...props }) {
|
|
6862
7188
|
const { formDescriptionId } = useFormItem();
|
|
6863
|
-
return /* @__PURE__ */
|
|
7189
|
+
return /* @__PURE__ */ jsx57(
|
|
6864
7190
|
"p",
|
|
6865
7191
|
{
|
|
6866
7192
|
"data-slot": "form-description",
|
|
@@ -6875,7 +7201,7 @@ function FormMessage({ className, children, ...props }) {
|
|
|
6875
7201
|
if (!children) {
|
|
6876
7202
|
return null;
|
|
6877
7203
|
}
|
|
6878
|
-
return /* @__PURE__ */
|
|
7204
|
+
return /* @__PURE__ */ jsx57(
|
|
6879
7205
|
"p",
|
|
6880
7206
|
{
|
|
6881
7207
|
"data-slot": "form-message",
|
|
@@ -6888,7 +7214,7 @@ function FormMessage({ className, children, ...props }) {
|
|
|
6888
7214
|
}
|
|
6889
7215
|
|
|
6890
7216
|
// src/components/resizable.tsx
|
|
6891
|
-
import * as
|
|
7217
|
+
import * as React68 from "react";
|
|
6892
7218
|
|
|
6893
7219
|
// src/generated/resizable.ts
|
|
6894
7220
|
var RESIZABLE_GROUP = "flex h-full w-full data-[panel-group-direction=vertical]:flex-col";
|
|
@@ -6897,10 +7223,10 @@ var RESIZABLE_HANDLE = "bg-border focus-visible:ring-ring relative flex w-px ite
|
|
|
6897
7223
|
var RESIZABLE_HANDLE_GRIP = "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border";
|
|
6898
7224
|
|
|
6899
7225
|
// src/components/resizable.tsx
|
|
6900
|
-
import { jsx as
|
|
6901
|
-
var ResizableContext =
|
|
7226
|
+
import { jsx as jsx58, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
7227
|
+
var ResizableContext = React68.createContext(null);
|
|
6902
7228
|
function useResizable() {
|
|
6903
|
-
const ctx =
|
|
7229
|
+
const ctx = React68.useContext(ResizableContext);
|
|
6904
7230
|
if (!ctx)
|
|
6905
7231
|
throw new Error("Resizable parts must be used within a ResizablePanelGroup");
|
|
6906
7232
|
return ctx;
|
|
@@ -6923,9 +7249,9 @@ function ResizablePanelGroup({
|
|
|
6923
7249
|
children,
|
|
6924
7250
|
...props
|
|
6925
7251
|
}) {
|
|
6926
|
-
const [sizes, setSizes] =
|
|
6927
|
-
const groupRef =
|
|
6928
|
-
const register =
|
|
7252
|
+
const [sizes, setSizes] = React68.useState([]);
|
|
7253
|
+
const groupRef = React68.useRef(null);
|
|
7254
|
+
const register = React68.useCallback((index, defaultSize) => {
|
|
6929
7255
|
setSizes((prev) => {
|
|
6930
7256
|
if (prev[index] !== void 0) return prev;
|
|
6931
7257
|
const next = prev.slice();
|
|
@@ -6934,14 +7260,14 @@ function ResizablePanelGroup({
|
|
|
6934
7260
|
return next;
|
|
6935
7261
|
});
|
|
6936
7262
|
}, []);
|
|
6937
|
-
|
|
7263
|
+
React68.useEffect(() => {
|
|
6938
7264
|
if (sizes.length) onLayout?.(sizes);
|
|
6939
7265
|
}, [sizes, onLayout]);
|
|
6940
|
-
const value =
|
|
7266
|
+
const value = React68.useMemo(
|
|
6941
7267
|
() => ({ sizes, setSizes, register, direction, keyboardStep, groupRef }),
|
|
6942
7268
|
[sizes, register, direction, keyboardStep]
|
|
6943
7269
|
);
|
|
6944
|
-
return /* @__PURE__ */
|
|
7270
|
+
return /* @__PURE__ */ jsx58(ResizableContext.Provider, { value, children: /* @__PURE__ */ jsx58(
|
|
6945
7271
|
"div",
|
|
6946
7272
|
{
|
|
6947
7273
|
ref: groupRef,
|
|
@@ -6962,11 +7288,11 @@ function ResizablePanel({
|
|
|
6962
7288
|
...props
|
|
6963
7289
|
}) {
|
|
6964
7290
|
const { sizes, register } = useResizable();
|
|
6965
|
-
|
|
7291
|
+
React68.useEffect(() => {
|
|
6966
7292
|
register(index, defaultSize);
|
|
6967
7293
|
}, [register, index, defaultSize]);
|
|
6968
7294
|
const basis = sizes[index] ?? defaultSize;
|
|
6969
|
-
return /* @__PURE__ */
|
|
7295
|
+
return /* @__PURE__ */ jsx58(
|
|
6970
7296
|
"div",
|
|
6971
7297
|
{
|
|
6972
7298
|
"data-slot": "resizable-panel",
|
|
@@ -6985,12 +7311,12 @@ function ResizableHandle({
|
|
|
6985
7311
|
...props
|
|
6986
7312
|
}) {
|
|
6987
7313
|
const { setSizes, direction, keyboardStep, groupRef } = useResizable();
|
|
6988
|
-
const draggingRef =
|
|
6989
|
-
const resize =
|
|
7314
|
+
const draggingRef = React68.useRef(false);
|
|
7315
|
+
const resize = React68.useCallback(
|
|
6990
7316
|
(delta) => setSizes((prev) => redistribute(prev, index, delta)),
|
|
6991
7317
|
[setSizes, index]
|
|
6992
7318
|
);
|
|
6993
|
-
const onPointerMove =
|
|
7319
|
+
const onPointerMove = React68.useCallback(
|
|
6994
7320
|
(event) => {
|
|
6995
7321
|
if (!draggingRef.current) return;
|
|
6996
7322
|
const rect = groupRef.current?.getBoundingClientRect();
|
|
@@ -7002,7 +7328,7 @@ function ResizableHandle({
|
|
|
7002
7328
|
},
|
|
7003
7329
|
[direction, resize, groupRef]
|
|
7004
7330
|
);
|
|
7005
|
-
const onPointerUp =
|
|
7331
|
+
const onPointerUp = React68.useCallback(() => {
|
|
7006
7332
|
draggingRef.current = false;
|
|
7007
7333
|
window.removeEventListener("pointermove", onPointerMove);
|
|
7008
7334
|
window.removeEventListener("pointerup", onPointerUp);
|
|
@@ -7013,7 +7339,7 @@ function ResizableHandle({
|
|
|
7013
7339
|
window.addEventListener("pointermove", onPointerMove);
|
|
7014
7340
|
window.addEventListener("pointerup", onPointerUp);
|
|
7015
7341
|
};
|
|
7016
|
-
|
|
7342
|
+
React68.useEffect(() => () => onPointerUp(), [onPointerUp]);
|
|
7017
7343
|
const onKeyDown = (event) => {
|
|
7018
7344
|
let delta;
|
|
7019
7345
|
switch (event.key) {
|
|
@@ -7033,7 +7359,7 @@ function ResizableHandle({
|
|
|
7033
7359
|
event.preventDefault();
|
|
7034
7360
|
resize(delta);
|
|
7035
7361
|
};
|
|
7036
|
-
return /* @__PURE__ */
|
|
7362
|
+
return /* @__PURE__ */ jsxs27(
|
|
7037
7363
|
"div",
|
|
7038
7364
|
{
|
|
7039
7365
|
"data-slot": "resizable-handle",
|
|
@@ -7046,7 +7372,7 @@ function ResizableHandle({
|
|
|
7046
7372
|
onKeyDown,
|
|
7047
7373
|
...props,
|
|
7048
7374
|
children: [
|
|
7049
|
-
withHandle && /* @__PURE__ */
|
|
7375
|
+
withHandle && /* @__PURE__ */ jsx58("div", { className: RESIZABLE_HANDLE_GRIP, children: /* @__PURE__ */ jsxs27(
|
|
7050
7376
|
"svg",
|
|
7051
7377
|
{
|
|
7052
7378
|
className: "size-2.5",
|
|
@@ -7061,12 +7387,12 @@ function ResizableHandle({
|
|
|
7061
7387
|
strokeLinejoin: "round",
|
|
7062
7388
|
"aria-hidden": "true",
|
|
7063
7389
|
children: [
|
|
7064
|
-
/* @__PURE__ */
|
|
7065
|
-
/* @__PURE__ */
|
|
7066
|
-
/* @__PURE__ */
|
|
7067
|
-
/* @__PURE__ */
|
|
7068
|
-
/* @__PURE__ */
|
|
7069
|
-
/* @__PURE__ */
|
|
7390
|
+
/* @__PURE__ */ jsx58("circle", { cx: "9", cy: "12", r: "1" }),
|
|
7391
|
+
/* @__PURE__ */ jsx58("circle", { cx: "9", cy: "5", r: "1" }),
|
|
7392
|
+
/* @__PURE__ */ jsx58("circle", { cx: "9", cy: "19", r: "1" }),
|
|
7393
|
+
/* @__PURE__ */ jsx58("circle", { cx: "15", cy: "12", r: "1" }),
|
|
7394
|
+
/* @__PURE__ */ jsx58("circle", { cx: "15", cy: "5", r: "1" }),
|
|
7395
|
+
/* @__PURE__ */ jsx58("circle", { cx: "15", cy: "19", r: "1" })
|
|
7070
7396
|
]
|
|
7071
7397
|
}
|
|
7072
7398
|
) }),
|
|
@@ -7218,6 +7544,9 @@ export {
|
|
|
7218
7544
|
HoverCard,
|
|
7219
7545
|
HoverCardContent,
|
|
7220
7546
|
HoverCardTrigger,
|
|
7547
|
+
InfoTip,
|
|
7548
|
+
InfoTipContent,
|
|
7549
|
+
InfoTipTrigger,
|
|
7221
7550
|
Input,
|
|
7222
7551
|
InputGroup,
|
|
7223
7552
|
InputGroupAddon,
|
|
@@ -7287,6 +7616,7 @@ export {
|
|
|
7287
7616
|
ResizablePanelGroup,
|
|
7288
7617
|
ScrollArea,
|
|
7289
7618
|
ScrollBar,
|
|
7619
|
+
SectionDescriptor,
|
|
7290
7620
|
Select,
|
|
7291
7621
|
SelectContent,
|
|
7292
7622
|
SelectGroup,
|
|
@@ -7359,6 +7689,7 @@ export {
|
|
|
7359
7689
|
useDismissableLayer,
|
|
7360
7690
|
useFloating,
|
|
7361
7691
|
useFocusScope,
|
|
7692
|
+
useHoverIntent,
|
|
7362
7693
|
usePresence,
|
|
7363
7694
|
useRovingFocus,
|
|
7364
7695
|
useSidebar
|