@j3m-quantum/ui 0.4.0 → 0.7.1
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 +166 -0
- package/dist/index.cjs +230 -418
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +29 -65
- package/dist/index.d.ts +29 -65
- package/dist/index.js +230 -417
- package/dist/index.js.map +1 -1
- package/dist/styles/index.css +813 -15
- package/package.json +1 -1
- package/dist/styles/animations.css +0 -370
- package/dist/styles/base.css +0 -130
- package/dist/styles/j3m-overrides.css +0 -132
- package/dist/styles/theme.css +0 -59
- package/dist/styles/tokens.css +0 -248
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as React8 from 'react';
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import { Slot } from '@radix-ui/react-slot';
|
|
4
4
|
import { cva } from 'class-variance-authority';
|
|
@@ -7,7 +7,7 @@ import { twMerge } from 'tailwind-merge';
|
|
|
7
7
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
8
8
|
import * as SeparatorPrimitive from '@radix-ui/react-separator';
|
|
9
9
|
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
10
|
-
import {
|
|
10
|
+
import { CheckIcon, CircleIcon, ChevronDownIcon, ChevronUpIcon, MinusIcon, ChevronLeftIcon, ChevronRightIcon, ArrowLeft, ArrowRight, Loader2Icon, OctagonXIcon, TriangleAlertIcon, InfoIcon, CircleCheckIcon, ChevronRight, MoreHorizontal, MoreHorizontalIcon, XIcon, SearchIcon, GripVerticalIcon, PanelLeftIcon } from 'lucide-react';
|
|
11
11
|
import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
|
|
12
12
|
import * as SwitchPrimitive from '@radix-ui/react-switch';
|
|
13
13
|
import * as SliderPrimitive from '@radix-ui/react-slider';
|
|
@@ -44,8 +44,8 @@ import * as ResizablePrimitive from 'react-resizable-panels';
|
|
|
44
44
|
// src/hooks/use-mobile.ts
|
|
45
45
|
var MOBILE_BREAKPOINT = 768;
|
|
46
46
|
function useIsMobile() {
|
|
47
|
-
const [isMobile, setIsMobile] =
|
|
48
|
-
|
|
47
|
+
const [isMobile, setIsMobile] = React8.useState(void 0);
|
|
48
|
+
React8.useEffect(() => {
|
|
49
49
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
50
50
|
const onChange = () => {
|
|
51
51
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -60,73 +60,24 @@ function cn(...inputs) {
|
|
|
60
60
|
return twMerge(clsx(inputs));
|
|
61
61
|
}
|
|
62
62
|
var buttonVariants = cva(
|
|
63
|
-
|
|
64
|
-
"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
63
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
65
64
|
{
|
|
66
65
|
variants: {
|
|
67
66
|
variant: {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
"focus-visible:ring-[var(--j3m-primary-300)]",
|
|
75
|
-
"rounded-[var(--j3m-radius-2xs)]",
|
|
76
|
-
"shadow-sm"
|
|
77
|
-
].join(" "),
|
|
78
|
-
// Secondary - Neutral surface
|
|
79
|
-
secondary: [
|
|
80
|
-
"text-[var(--color-text-main)]",
|
|
81
|
-
"bg-[var(--j3m-neutral-200)]",
|
|
82
|
-
"hover:bg-[var(--j3m-neutral-300)]",
|
|
83
|
-
"active:bg-[var(--j3m-neutral-400)]",
|
|
84
|
-
"focus-visible:ring-[var(--j3m-neutral-400)]",
|
|
85
|
-
"rounded-[var(--j3m-radius-2xs)]"
|
|
86
|
-
].join(" "),
|
|
87
|
-
// Outline - Border only
|
|
88
|
-
outline: [
|
|
89
|
-
"text-[var(--color-text-main)]",
|
|
90
|
-
"bg-transparent",
|
|
91
|
-
"border border-[var(--color-border-strong)]",
|
|
92
|
-
"hover:bg-[var(--j3m-neutral-200)]",
|
|
93
|
-
"active:bg-[var(--j3m-neutral-300)]",
|
|
94
|
-
"focus-visible:ring-[var(--j3m-neutral-400)]",
|
|
95
|
-
"rounded-[var(--j3m-radius-2xs)]"
|
|
96
|
-
].join(" "),
|
|
97
|
-
// Ghost - Minimal
|
|
98
|
-
ghost: [
|
|
99
|
-
"text-[var(--color-text-muted)]",
|
|
100
|
-
"bg-transparent",
|
|
101
|
-
"hover:bg-[var(--j3m-neutral-200)]",
|
|
102
|
-
"hover:text-[var(--color-text-main)]",
|
|
103
|
-
"active:bg-[var(--j3m-neutral-300)]",
|
|
104
|
-
"focus-visible:ring-[var(--j3m-neutral-400)]",
|
|
105
|
-
"rounded-[var(--j3m-radius-2xs)]"
|
|
106
|
-
].join(" "),
|
|
107
|
-
// Destructive - Error/danger actions
|
|
108
|
-
destructive: [
|
|
109
|
-
"text-[var(--color-text-on-accent)]",
|
|
110
|
-
"bg-[var(--j3m-red-100)]",
|
|
111
|
-
"hover:bg-[var(--j3m-red-200)]",
|
|
112
|
-
"active:bg-[var(--j3m-red-200)]",
|
|
113
|
-
"focus-visible:ring-[var(--j3m-red-100)]",
|
|
114
|
-
"rounded-[var(--j3m-radius-2xs)]",
|
|
115
|
-
"shadow-sm"
|
|
116
|
-
].join(" "),
|
|
117
|
-
// Link - Text only
|
|
118
|
-
link: [
|
|
119
|
-
"text-[var(--j3m-primary-300)]",
|
|
120
|
-
"underline-offset-4",
|
|
121
|
-
"hover:underline",
|
|
122
|
-
"hover:text-[var(--j3m-primary-400)]"
|
|
123
|
-
].join(" ")
|
|
67
|
+
default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
|
|
68
|
+
destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
|
|
69
|
+
outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
|
|
70
|
+
secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
|
|
71
|
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
72
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
124
73
|
},
|
|
125
74
|
size: {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
lg: "h-
|
|
129
|
-
icon: "h-
|
|
75
|
+
default: "h-9 px-4 py-2",
|
|
76
|
+
sm: "h-8 rounded-md px-3 text-xs",
|
|
77
|
+
lg: "h-10 rounded-md px-8",
|
|
78
|
+
icon: "h-9 w-9",
|
|
79
|
+
"icon-sm": "h-8 w-8",
|
|
80
|
+
"icon-lg": "h-10 w-10"
|
|
130
81
|
}
|
|
131
82
|
},
|
|
132
83
|
defaultVariants: {
|
|
@@ -135,7 +86,7 @@ var buttonVariants = cva(
|
|
|
135
86
|
}
|
|
136
87
|
}
|
|
137
88
|
);
|
|
138
|
-
var Button =
|
|
89
|
+
var Button = React8.forwardRef(
|
|
139
90
|
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
140
91
|
const Comp = asChild ? Slot : "button";
|
|
141
92
|
return /* @__PURE__ */ jsx(
|
|
@@ -234,59 +185,22 @@ function ButtonGroupSeparator({
|
|
|
234
185
|
}
|
|
235
186
|
);
|
|
236
187
|
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
// Placeholder
|
|
254
|
-
"placeholder:text-[var(--color-text-soft)]",
|
|
255
|
-
// Focus state
|
|
256
|
-
"focus-visible:outline-none",
|
|
257
|
-
"focus-visible:ring-2",
|
|
258
|
-
"focus-visible:ring-[var(--j3m-primary-300)]",
|
|
259
|
-
"focus-visible:ring-offset-1",
|
|
260
|
-
"focus-visible:border-[var(--j3m-primary-300)]",
|
|
261
|
-
// Hover state
|
|
262
|
-
"hover:border-[var(--color-border-strong)]",
|
|
263
|
-
// Disabled state
|
|
264
|
-
"disabled:cursor-not-allowed",
|
|
265
|
-
"disabled:opacity-50",
|
|
266
|
-
"disabled:bg-[var(--color-bg-subtle)]",
|
|
267
|
-
// Error state (via aria-invalid)
|
|
268
|
-
"aria-invalid:border-[var(--j3m-red-100)]",
|
|
269
|
-
"aria-invalid:focus-visible:ring-[var(--j3m-red-100)]",
|
|
270
|
-
// File input
|
|
271
|
-
"file:border-0",
|
|
272
|
-
"file:bg-transparent",
|
|
273
|
-
"file:text-sm",
|
|
274
|
-
"file:font-medium",
|
|
275
|
-
"file:text-[var(--color-text-main)]",
|
|
276
|
-
// Selection
|
|
277
|
-
"selection:bg-[var(--j3m-primary-100)]",
|
|
278
|
-
"selection:text-[var(--color-text-main)]",
|
|
279
|
-
// Transition
|
|
280
|
-
"transition-colors duration-150",
|
|
281
|
-
className
|
|
282
|
-
),
|
|
283
|
-
ref,
|
|
284
|
-
...props
|
|
285
|
-
}
|
|
286
|
-
);
|
|
287
|
-
}
|
|
288
|
-
);
|
|
289
|
-
Input.displayName = "Input";
|
|
188
|
+
function Input({ className, type, ...props }) {
|
|
189
|
+
return /* @__PURE__ */ jsx(
|
|
190
|
+
"input",
|
|
191
|
+
{
|
|
192
|
+
type,
|
|
193
|
+
"data-slot": "input",
|
|
194
|
+
className: cn(
|
|
195
|
+
"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 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",
|
|
196
|
+
"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
|
|
197
|
+
"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
|
|
198
|
+
className
|
|
199
|
+
),
|
|
200
|
+
...props
|
|
201
|
+
}
|
|
202
|
+
);
|
|
203
|
+
}
|
|
290
204
|
function Textarea({ className, ...props }) {
|
|
291
205
|
return /* @__PURE__ */ jsx(
|
|
292
206
|
"textarea",
|
|
@@ -534,7 +448,7 @@ function Slider({
|
|
|
534
448
|
max = 100,
|
|
535
449
|
...props
|
|
536
450
|
}) {
|
|
537
|
-
const _values =
|
|
451
|
+
const _values = React8.useMemo(
|
|
538
452
|
() => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
|
|
539
453
|
[value, defaultValue, min, max]
|
|
540
454
|
);
|
|
@@ -820,7 +734,7 @@ function Toggle({
|
|
|
820
734
|
}
|
|
821
735
|
);
|
|
822
736
|
}
|
|
823
|
-
var ToggleGroupContext =
|
|
737
|
+
var ToggleGroupContext = React8.createContext({
|
|
824
738
|
size: "default",
|
|
825
739
|
variant: "default",
|
|
826
740
|
spacing: 0
|
|
@@ -857,7 +771,7 @@ function ToggleGroupItem({
|
|
|
857
771
|
size,
|
|
858
772
|
...props
|
|
859
773
|
}) {
|
|
860
|
-
const context =
|
|
774
|
+
const context = React8.useContext(ToggleGroupContext);
|
|
861
775
|
return /* @__PURE__ */ jsx(
|
|
862
776
|
ToggleGroupPrimitive.Item,
|
|
863
777
|
{
|
|
@@ -912,7 +826,7 @@ function InputOTPSlot({
|
|
|
912
826
|
className,
|
|
913
827
|
...props
|
|
914
828
|
}) {
|
|
915
|
-
const inputOTPContext =
|
|
829
|
+
const inputOTPContext = React8.useContext(OTPInputContext);
|
|
916
830
|
const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
|
|
917
831
|
return /* @__PURE__ */ jsxs(
|
|
918
832
|
"div",
|
|
@@ -951,7 +865,7 @@ function Label2({
|
|
|
951
865
|
);
|
|
952
866
|
}
|
|
953
867
|
var Form = FormProvider;
|
|
954
|
-
var FormFieldContext =
|
|
868
|
+
var FormFieldContext = React8.createContext(
|
|
955
869
|
{}
|
|
956
870
|
);
|
|
957
871
|
var FormField = ({
|
|
@@ -960,8 +874,8 @@ var FormField = ({
|
|
|
960
874
|
return /* @__PURE__ */ jsx(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx(Controller, { ...props }) });
|
|
961
875
|
};
|
|
962
876
|
var useFormField = () => {
|
|
963
|
-
const fieldContext =
|
|
964
|
-
const itemContext =
|
|
877
|
+
const fieldContext = React8.useContext(FormFieldContext);
|
|
878
|
+
const itemContext = React8.useContext(FormItemContext);
|
|
965
879
|
const { getFieldState } = useFormContext();
|
|
966
880
|
const formState = useFormState({ name: fieldContext.name });
|
|
967
881
|
const fieldState = getFieldState(fieldContext.name, formState);
|
|
@@ -978,11 +892,11 @@ var useFormField = () => {
|
|
|
978
892
|
...fieldState
|
|
979
893
|
};
|
|
980
894
|
};
|
|
981
|
-
var FormItemContext =
|
|
895
|
+
var FormItemContext = React8.createContext(
|
|
982
896
|
{}
|
|
983
897
|
);
|
|
984
898
|
function FormItem({ className, ...props }) {
|
|
985
|
-
const id =
|
|
899
|
+
const id = React8.useId();
|
|
986
900
|
return /* @__PURE__ */ jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx(
|
|
987
901
|
"div",
|
|
988
902
|
{
|
|
@@ -1261,148 +1175,69 @@ function FieldError({
|
|
|
1261
1175
|
}
|
|
1262
1176
|
);
|
|
1263
1177
|
}
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
"flex flex-col rounded-[var(--j3m-radius-2xs)]",
|
|
1267
|
-
{
|
|
1268
|
-
variants: {
|
|
1269
|
-
variant: {
|
|
1270
|
-
// Default solid card
|
|
1271
|
-
default: [
|
|
1272
|
-
"bg-[var(--color-bg-surface)]",
|
|
1273
|
-
"border border-[var(--color-border-subtle)]",
|
|
1274
|
-
"text-[var(--color-text-main)]",
|
|
1275
|
-
"shadow-sm"
|
|
1276
|
-
].join(" "),
|
|
1277
|
-
// Glass Light - for light backgrounds or over images
|
|
1278
|
-
"glass-light": [
|
|
1279
|
-
"bg-[var(--j3m-glass-light)]",
|
|
1280
|
-
"backdrop-blur-[var(--j3m-blur-md)]",
|
|
1281
|
-
"border border-[var(--j3m-glass-border-light)]",
|
|
1282
|
-
"text-[var(--color-text-main)]",
|
|
1283
|
-
"shadow-[var(--j3m-glass-shadow-md)]"
|
|
1284
|
-
].join(" "),
|
|
1285
|
-
// Glass Dark - for light backgrounds, dark card
|
|
1286
|
-
"glass-dark": [
|
|
1287
|
-
"bg-[var(--j3m-glass-dark)]",
|
|
1288
|
-
"backdrop-blur-[var(--j3m-blur-md)]",
|
|
1289
|
-
"border border-[var(--j3m-glass-border-dark)]",
|
|
1290
|
-
"text-white",
|
|
1291
|
-
"shadow-[var(--j3m-glass-shadow-lg)]"
|
|
1292
|
-
].join(" "),
|
|
1293
|
-
// Glass Neutral - subtle frosted effect
|
|
1294
|
-
"glass-neutral": [
|
|
1295
|
-
"bg-[var(--j3m-glass-neutral)]",
|
|
1296
|
-
"backdrop-blur-[var(--j3m-blur-lg)]",
|
|
1297
|
-
"border border-[var(--j3m-glass-border-subtle)]",
|
|
1298
|
-
"text-[var(--color-text-main)]",
|
|
1299
|
-
"shadow-[var(--j3m-glass-shadow-sm)]"
|
|
1300
|
-
].join(" "),
|
|
1301
|
-
// Glass Primary - with orange tint
|
|
1302
|
-
"glass-primary": [
|
|
1303
|
-
"bg-[var(--j3m-glass-primary)]",
|
|
1304
|
-
"backdrop-blur-[var(--j3m-blur-lg)]",
|
|
1305
|
-
"border border-[var(--j3m-glass-border-light)]",
|
|
1306
|
-
"text-[var(--color-text-main)]",
|
|
1307
|
-
"shadow-[var(--j3m-glass-shadow-glow)]"
|
|
1308
|
-
].join(" ")
|
|
1309
|
-
}
|
|
1310
|
-
},
|
|
1311
|
-
defaultVariants: {
|
|
1312
|
-
variant: "default"
|
|
1313
|
-
}
|
|
1314
|
-
}
|
|
1315
|
-
);
|
|
1316
|
-
var Card = React10.forwardRef(
|
|
1317
|
-
({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1178
|
+
function Card({ className, ...props }) {
|
|
1179
|
+
return /* @__PURE__ */ jsx(
|
|
1318
1180
|
"div",
|
|
1319
1181
|
{
|
|
1320
|
-
ref,
|
|
1321
1182
|
"data-slot": "card",
|
|
1322
|
-
className: cn(
|
|
1183
|
+
className: cn(
|
|
1184
|
+
"bg-card text-card-foreground rounded-xl border shadow",
|
|
1185
|
+
className
|
|
1186
|
+
),
|
|
1323
1187
|
...props
|
|
1324
1188
|
}
|
|
1325
|
-
)
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1189
|
+
);
|
|
1190
|
+
}
|
|
1191
|
+
function CardHeader({ className, ...props }) {
|
|
1192
|
+
return /* @__PURE__ */ jsx(
|
|
1330
1193
|
"div",
|
|
1331
1194
|
{
|
|
1332
|
-
ref,
|
|
1333
1195
|
"data-slot": "card-header",
|
|
1334
|
-
className: cn(
|
|
1335
|
-
"flex flex-col gap-[var(--j3m-spacing-2xs)]",
|
|
1336
|
-
"px-[var(--j3m-spacing-l)] py-[var(--j3m-spacing-m)]",
|
|
1337
|
-
className
|
|
1338
|
-
),
|
|
1196
|
+
className: cn("flex flex-col gap-1.5 p-6", className),
|
|
1339
1197
|
...props
|
|
1340
1198
|
}
|
|
1341
|
-
)
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
"h3",
|
|
1199
|
+
);
|
|
1200
|
+
}
|
|
1201
|
+
function CardTitle({ className, ...props }) {
|
|
1202
|
+
return /* @__PURE__ */ jsx(
|
|
1203
|
+
"div",
|
|
1347
1204
|
{
|
|
1348
|
-
ref,
|
|
1349
1205
|
"data-slot": "card-title",
|
|
1350
|
-
className: cn(
|
|
1351
|
-
"text-lg font-semibold leading-none tracking-tight",
|
|
1352
|
-
className
|
|
1353
|
-
),
|
|
1206
|
+
className: cn("leading-none font-semibold tracking-tight", className),
|
|
1354
1207
|
...props
|
|
1355
1208
|
}
|
|
1356
|
-
)
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
"p",
|
|
1209
|
+
);
|
|
1210
|
+
}
|
|
1211
|
+
function CardDescription({ className, ...props }) {
|
|
1212
|
+
return /* @__PURE__ */ jsx(
|
|
1213
|
+
"div",
|
|
1362
1214
|
{
|
|
1363
|
-
ref,
|
|
1364
1215
|
"data-slot": "card-description",
|
|
1365
|
-
className: cn(
|
|
1366
|
-
"text-sm opacity-80",
|
|
1367
|
-
className
|
|
1368
|
-
),
|
|
1216
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
1369
1217
|
...props
|
|
1370
1218
|
}
|
|
1371
|
-
)
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1219
|
+
);
|
|
1220
|
+
}
|
|
1221
|
+
function CardContent({ className, ...props }) {
|
|
1222
|
+
return /* @__PURE__ */ jsx(
|
|
1376
1223
|
"div",
|
|
1377
1224
|
{
|
|
1378
|
-
ref,
|
|
1379
1225
|
"data-slot": "card-content",
|
|
1380
|
-
className: cn(
|
|
1381
|
-
"px-[var(--j3m-spacing-l)] pb-[var(--j3m-spacing-m)]",
|
|
1382
|
-
className
|
|
1383
|
-
),
|
|
1226
|
+
className: cn("p-6 pt-0", className),
|
|
1384
1227
|
...props
|
|
1385
1228
|
}
|
|
1386
|
-
)
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1229
|
+
);
|
|
1230
|
+
}
|
|
1231
|
+
function CardFooter({ className, ...props }) {
|
|
1232
|
+
return /* @__PURE__ */ jsx(
|
|
1391
1233
|
"div",
|
|
1392
1234
|
{
|
|
1393
|
-
ref,
|
|
1394
1235
|
"data-slot": "card-footer",
|
|
1395
|
-
className: cn(
|
|
1396
|
-
"flex items-center",
|
|
1397
|
-
"px-[var(--j3m-spacing-l)] py-[var(--j3m-spacing-m)]",
|
|
1398
|
-
"border-t border-[inherit]",
|
|
1399
|
-
className
|
|
1400
|
-
),
|
|
1236
|
+
className: cn("flex items-center p-6 pt-0", className),
|
|
1401
1237
|
...props
|
|
1402
1238
|
}
|
|
1403
|
-
)
|
|
1404
|
-
|
|
1405
|
-
CardFooter.displayName = "CardFooter";
|
|
1239
|
+
);
|
|
1240
|
+
}
|
|
1406
1241
|
function Table({ className, ...props }) {
|
|
1407
1242
|
return /* @__PURE__ */ jsx(
|
|
1408
1243
|
"div",
|
|
@@ -1857,8 +1692,8 @@ function CalendarDayButton({
|
|
|
1857
1692
|
...props
|
|
1858
1693
|
}) {
|
|
1859
1694
|
const defaultClassNames = getDefaultClassNames();
|
|
1860
|
-
const ref =
|
|
1861
|
-
|
|
1695
|
+
const ref = React8.useRef(null);
|
|
1696
|
+
React8.useEffect(() => {
|
|
1862
1697
|
if (modifiers.focused) ref.current?.focus();
|
|
1863
1698
|
}, [modifiers.focused]);
|
|
1864
1699
|
return /* @__PURE__ */ jsx(
|
|
@@ -1881,9 +1716,9 @@ function CalendarDayButton({
|
|
|
1881
1716
|
}
|
|
1882
1717
|
);
|
|
1883
1718
|
}
|
|
1884
|
-
var CarouselContext =
|
|
1719
|
+
var CarouselContext = React8.createContext(null);
|
|
1885
1720
|
function useCarousel() {
|
|
1886
|
-
const context =
|
|
1721
|
+
const context = React8.useContext(CarouselContext);
|
|
1887
1722
|
if (!context) {
|
|
1888
1723
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
1889
1724
|
}
|
|
@@ -1905,20 +1740,20 @@ function Carousel({
|
|
|
1905
1740
|
},
|
|
1906
1741
|
plugins
|
|
1907
1742
|
);
|
|
1908
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
1909
|
-
const [canScrollNext, setCanScrollNext] =
|
|
1910
|
-
const onSelect =
|
|
1743
|
+
const [canScrollPrev, setCanScrollPrev] = React8.useState(false);
|
|
1744
|
+
const [canScrollNext, setCanScrollNext] = React8.useState(false);
|
|
1745
|
+
const onSelect = React8.useCallback((api2) => {
|
|
1911
1746
|
if (!api2) return;
|
|
1912
1747
|
setCanScrollPrev(api2.canScrollPrev());
|
|
1913
1748
|
setCanScrollNext(api2.canScrollNext());
|
|
1914
1749
|
}, []);
|
|
1915
|
-
const scrollPrev =
|
|
1750
|
+
const scrollPrev = React8.useCallback(() => {
|
|
1916
1751
|
api?.scrollPrev();
|
|
1917
1752
|
}, [api]);
|
|
1918
|
-
const scrollNext =
|
|
1753
|
+
const scrollNext = React8.useCallback(() => {
|
|
1919
1754
|
api?.scrollNext();
|
|
1920
1755
|
}, [api]);
|
|
1921
|
-
const handleKeyDown =
|
|
1756
|
+
const handleKeyDown = React8.useCallback(
|
|
1922
1757
|
(event) => {
|
|
1923
1758
|
if (event.key === "ArrowLeft") {
|
|
1924
1759
|
event.preventDefault();
|
|
@@ -1930,11 +1765,11 @@ function Carousel({
|
|
|
1930
1765
|
},
|
|
1931
1766
|
[scrollPrev, scrollNext]
|
|
1932
1767
|
);
|
|
1933
|
-
|
|
1768
|
+
React8.useEffect(() => {
|
|
1934
1769
|
if (!api || !setApi) return;
|
|
1935
1770
|
setApi(api);
|
|
1936
1771
|
}, [api, setApi]);
|
|
1937
|
-
|
|
1772
|
+
React8.useEffect(() => {
|
|
1938
1773
|
if (!api) return;
|
|
1939
1774
|
onSelect(api);
|
|
1940
1775
|
api.on("reInit", onSelect);
|
|
@@ -2067,9 +1902,9 @@ function CarouselNext({
|
|
|
2067
1902
|
);
|
|
2068
1903
|
}
|
|
2069
1904
|
var THEMES = { light: "", dark: ".dark" };
|
|
2070
|
-
var ChartContext =
|
|
1905
|
+
var ChartContext = React8.createContext(null);
|
|
2071
1906
|
function useChart() {
|
|
2072
|
-
const context =
|
|
1907
|
+
const context = React8.useContext(ChartContext);
|
|
2073
1908
|
if (!context) {
|
|
2074
1909
|
throw new Error("useChart must be used within a <ChartContainer />");
|
|
2075
1910
|
}
|
|
@@ -2082,7 +1917,7 @@ function ChartContainer({
|
|
|
2082
1917
|
config,
|
|
2083
1918
|
...props
|
|
2084
1919
|
}) {
|
|
2085
|
-
const uniqueId =
|
|
1920
|
+
const uniqueId = React8.useId();
|
|
2086
1921
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
2087
1922
|
return /* @__PURE__ */ jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs(
|
|
2088
1923
|
"div",
|
|
@@ -2143,7 +1978,7 @@ function ChartTooltipContent({
|
|
|
2143
1978
|
labelKey
|
|
2144
1979
|
}) {
|
|
2145
1980
|
const { config } = useChart();
|
|
2146
|
-
const tooltipLabel =
|
|
1981
|
+
const tooltipLabel = React8.useMemo(() => {
|
|
2147
1982
|
if (hideLabel || !payload?.length) {
|
|
2148
1983
|
return null;
|
|
2149
1984
|
}
|
|
@@ -2866,16 +2701,16 @@ var M = (e, i, s, u, m, a, l, h) => {
|
|
|
2866
2701
|
} catch (n) {
|
|
2867
2702
|
}
|
|
2868
2703
|
};
|
|
2869
|
-
var x =
|
|
2704
|
+
var x = React8.createContext(void 0);
|
|
2870
2705
|
var U = { setTheme: (e) => {
|
|
2871
2706
|
}, themes: [] };
|
|
2872
2707
|
var z = () => {
|
|
2873
2708
|
var e;
|
|
2874
|
-
return (e =
|
|
2709
|
+
return (e = React8.useContext(x)) != null ? e : U;
|
|
2875
2710
|
};
|
|
2876
|
-
|
|
2711
|
+
React8.memo(({ forcedTheme: e, storageKey: i, attribute: s, enableSystem: u, enableColorScheme: m, defaultTheme: a, value: l, themes: h, nonce: d, scriptProps: w }) => {
|
|
2877
2712
|
let p = JSON.stringify([s, i, a, e, h, l, u, m]).slice(1, -1);
|
|
2878
|
-
return
|
|
2713
|
+
return React8.createElement("script", { ...w, suppressHydrationWarning: true, nonce: typeof window == "undefined" ? d : "", dangerouslySetInnerHTML: { __html: `(${M.toString()})(${p})` } });
|
|
2879
2714
|
});
|
|
2880
2715
|
var Toaster = ({ ...props }) => {
|
|
2881
2716
|
const { theme = "system" } = z();
|
|
@@ -3107,153 +2942,126 @@ function PaginationEllipsis({
|
|
|
3107
2942
|
}
|
|
3108
2943
|
);
|
|
3109
2944
|
}
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
/* @__PURE__ */ jsx(
|
|
3135
|
-
|
|
3136
|
-
DialogPrimitive.Content,
|
|
2945
|
+
function Dialog({
|
|
2946
|
+
...props
|
|
2947
|
+
}) {
|
|
2948
|
+
return /* @__PURE__ */ jsx(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
|
|
2949
|
+
}
|
|
2950
|
+
function DialogTrigger({
|
|
2951
|
+
...props
|
|
2952
|
+
}) {
|
|
2953
|
+
return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { "data-slot": "dialog-trigger", ...props });
|
|
2954
|
+
}
|
|
2955
|
+
function DialogPortal({
|
|
2956
|
+
...props
|
|
2957
|
+
}) {
|
|
2958
|
+
return /* @__PURE__ */ jsx(DialogPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
|
|
2959
|
+
}
|
|
2960
|
+
function DialogClose({
|
|
2961
|
+
...props
|
|
2962
|
+
}) {
|
|
2963
|
+
return /* @__PURE__ */ jsx(DialogPrimitive.Close, { "data-slot": "dialog-close", ...props });
|
|
2964
|
+
}
|
|
2965
|
+
function DialogOverlay({
|
|
2966
|
+
className,
|
|
2967
|
+
...props
|
|
2968
|
+
}) {
|
|
2969
|
+
return /* @__PURE__ */ jsx(
|
|
2970
|
+
DialogPrimitive.Overlay,
|
|
3137
2971
|
{
|
|
3138
|
-
|
|
2972
|
+
"data-slot": "dialog-overlay",
|
|
3139
2973
|
className: cn(
|
|
3140
|
-
|
|
3141
|
-
"fixed left-[50%] top-[50%] z-50",
|
|
3142
|
-
"translate-x-[-50%] translate-y-[-50%]",
|
|
3143
|
-
"w-full max-w-lg",
|
|
3144
|
-
"max-h-[90vh] overflow-y-auto",
|
|
3145
|
-
// Card-like styling
|
|
3146
|
-
"rounded-[var(--j3m-radius-2xs)]",
|
|
3147
|
-
"border border-[var(--color-border-subtle)]",
|
|
3148
|
-
"bg-[var(--color-bg-surface)]",
|
|
3149
|
-
"shadow-lg",
|
|
3150
|
-
// Padding
|
|
3151
|
-
"p-[var(--j3m-spacing-l)]",
|
|
3152
|
-
// Animations
|
|
3153
|
-
"duration-200",
|
|
3154
|
-
"data-[state=open]:animate-in",
|
|
3155
|
-
"data-[state=closed]:animate-out",
|
|
3156
|
-
"data-[state=closed]:fade-out-0",
|
|
3157
|
-
"data-[state=open]:fade-in-0",
|
|
3158
|
-
"data-[state=closed]:zoom-out-95",
|
|
3159
|
-
"data-[state=open]:zoom-in-95",
|
|
3160
|
-
"data-[state=closed]:slide-out-to-left-1/2",
|
|
3161
|
-
"data-[state=closed]:slide-out-to-top-[48%]",
|
|
3162
|
-
"data-[state=open]:slide-in-from-left-1/2",
|
|
3163
|
-
"data-[state=open]:slide-in-from-top-[48%]",
|
|
2974
|
+
"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",
|
|
3164
2975
|
className
|
|
3165
2976
|
),
|
|
3166
|
-
...props
|
|
3167
|
-
children: [
|
|
3168
|
-
children,
|
|
3169
|
-
showCloseButton && /* @__PURE__ */ jsxs(
|
|
3170
|
-
DialogPrimitive.Close,
|
|
3171
|
-
{
|
|
3172
|
-
className: cn(
|
|
3173
|
-
"absolute right-[var(--j3m-spacing-m)] top-[var(--j3m-spacing-m)]",
|
|
3174
|
-
"rounded-[var(--j3m-radius-2xs)]",
|
|
3175
|
-
"p-1",
|
|
3176
|
-
"text-[var(--color-text-muted)]",
|
|
3177
|
-
"opacity-70",
|
|
3178
|
-
"ring-offset-background",
|
|
3179
|
-
"transition-opacity",
|
|
3180
|
-
"hover:opacity-100",
|
|
3181
|
-
"hover:bg-[var(--j3m-neutral-200)]",
|
|
3182
|
-
"focus:outline-none",
|
|
3183
|
-
"focus:ring-2",
|
|
3184
|
-
"focus:ring-[var(--j3m-primary-300)]",
|
|
3185
|
-
"focus:ring-offset-2",
|
|
3186
|
-
"disabled:pointer-events-none"
|
|
3187
|
-
),
|
|
3188
|
-
children: [
|
|
3189
|
-
/* @__PURE__ */ jsx(X, { className: "h-4 w-4" }),
|
|
3190
|
-
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
3191
|
-
]
|
|
3192
|
-
}
|
|
3193
|
-
)
|
|
3194
|
-
]
|
|
2977
|
+
...props
|
|
3195
2978
|
}
|
|
3196
|
-
)
|
|
3197
|
-
|
|
3198
|
-
DialogContent
|
|
3199
|
-
var DialogHeader = ({
|
|
2979
|
+
);
|
|
2980
|
+
}
|
|
2981
|
+
function DialogContent({
|
|
3200
2982
|
className,
|
|
2983
|
+
children,
|
|
2984
|
+
showCloseButton = true,
|
|
3201
2985
|
...props
|
|
3202
|
-
})
|
|
3203
|
-
"
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
|
|
3209
|
-
|
|
3210
|
-
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
|
|
3215
|
-
|
|
2986
|
+
}) {
|
|
2987
|
+
return /* @__PURE__ */ jsxs(DialogPortal, { "data-slot": "dialog-portal", children: [
|
|
2988
|
+
/* @__PURE__ */ jsx(DialogOverlay, {}),
|
|
2989
|
+
/* @__PURE__ */ jsxs(
|
|
2990
|
+
DialogPrimitive.Content,
|
|
2991
|
+
{
|
|
2992
|
+
"data-slot": "dialog-content",
|
|
2993
|
+
className: cn(
|
|
2994
|
+
"bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
|
|
2995
|
+
className
|
|
2996
|
+
),
|
|
2997
|
+
...props,
|
|
2998
|
+
children: [
|
|
2999
|
+
children,
|
|
3000
|
+
showCloseButton && /* @__PURE__ */ jsxs(
|
|
3001
|
+
DialogPrimitive.Close,
|
|
3002
|
+
{
|
|
3003
|
+
"data-slot": "dialog-close",
|
|
3004
|
+
className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
3005
|
+
children: [
|
|
3006
|
+
/* @__PURE__ */ jsx(XIcon, {}),
|
|
3007
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
3008
|
+
]
|
|
3009
|
+
}
|
|
3010
|
+
)
|
|
3011
|
+
]
|
|
3012
|
+
}
|
|
3013
|
+
)
|
|
3014
|
+
] });
|
|
3015
|
+
}
|
|
3016
|
+
function DialogHeader({ className, ...props }) {
|
|
3017
|
+
return /* @__PURE__ */ jsx(
|
|
3018
|
+
"div",
|
|
3019
|
+
{
|
|
3020
|
+
"data-slot": "dialog-header",
|
|
3021
|
+
className: cn("flex flex-col gap-2 text-center sm:text-left", className),
|
|
3022
|
+
...props
|
|
3023
|
+
}
|
|
3024
|
+
);
|
|
3025
|
+
}
|
|
3026
|
+
function DialogFooter({ className, ...props }) {
|
|
3027
|
+
return /* @__PURE__ */ jsx(
|
|
3028
|
+
"div",
|
|
3029
|
+
{
|
|
3030
|
+
"data-slot": "dialog-footer",
|
|
3031
|
+
className: cn(
|
|
3032
|
+
"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
|
|
3033
|
+
className
|
|
3034
|
+
),
|
|
3035
|
+
...props
|
|
3036
|
+
}
|
|
3037
|
+
);
|
|
3038
|
+
}
|
|
3039
|
+
function DialogTitle({
|
|
3216
3040
|
className,
|
|
3217
3041
|
...props
|
|
3218
|
-
})
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
|
|
3222
|
-
"
|
|
3223
|
-
"
|
|
3224
|
-
|
|
3225
|
-
|
|
3226
|
-
|
|
3227
|
-
|
|
3228
|
-
|
|
3229
|
-
|
|
3230
|
-
|
|
3231
|
-
|
|
3232
|
-
|
|
3233
|
-
|
|
3234
|
-
|
|
3235
|
-
|
|
3236
|
-
"text-
|
|
3237
|
-
|
|
3238
|
-
|
|
3239
|
-
|
|
3240
|
-
|
|
3241
|
-
}
|
|
3242
|
-
));
|
|
3243
|
-
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
3244
|
-
var DialogDescription = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3245
|
-
DialogPrimitive.Description,
|
|
3246
|
-
{
|
|
3247
|
-
ref,
|
|
3248
|
-
className: cn(
|
|
3249
|
-
"text-sm",
|
|
3250
|
-
"text-[var(--color-text-muted)]",
|
|
3251
|
-
className
|
|
3252
|
-
),
|
|
3253
|
-
...props
|
|
3254
|
-
}
|
|
3255
|
-
));
|
|
3256
|
-
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
3042
|
+
}) {
|
|
3043
|
+
return /* @__PURE__ */ jsx(
|
|
3044
|
+
DialogPrimitive.Title,
|
|
3045
|
+
{
|
|
3046
|
+
"data-slot": "dialog-title",
|
|
3047
|
+
className: cn("text-lg leading-none font-semibold", className),
|
|
3048
|
+
...props
|
|
3049
|
+
}
|
|
3050
|
+
);
|
|
3051
|
+
}
|
|
3052
|
+
function DialogDescription({
|
|
3053
|
+
className,
|
|
3054
|
+
...props
|
|
3055
|
+
}) {
|
|
3056
|
+
return /* @__PURE__ */ jsx(
|
|
3057
|
+
DialogPrimitive.Description,
|
|
3058
|
+
{
|
|
3059
|
+
"data-slot": "dialog-description",
|
|
3060
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
3061
|
+
...props
|
|
3062
|
+
}
|
|
3063
|
+
);
|
|
3064
|
+
}
|
|
3257
3065
|
function Command({
|
|
3258
3066
|
className,
|
|
3259
3067
|
...props
|
|
@@ -4563,12 +4371,17 @@ function CollapsibleTrigger2({
|
|
|
4563
4371
|
);
|
|
4564
4372
|
}
|
|
4565
4373
|
function CollapsibleContent2({
|
|
4374
|
+
className,
|
|
4566
4375
|
...props
|
|
4567
4376
|
}) {
|
|
4568
4377
|
return /* @__PURE__ */ jsx(
|
|
4569
4378
|
CollapsiblePrimitive.CollapsibleContent,
|
|
4570
4379
|
{
|
|
4571
4380
|
"data-slot": "collapsible-content",
|
|
4381
|
+
className: cn(
|
|
4382
|
+
"data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down overflow-hidden",
|
|
4383
|
+
className
|
|
4384
|
+
),
|
|
4572
4385
|
...props
|
|
4573
4386
|
}
|
|
4574
4387
|
);
|
|
@@ -4618,9 +4431,9 @@ var SIDEBAR_WIDTH = "16rem";
|
|
|
4618
4431
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
4619
4432
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
4620
4433
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
4621
|
-
var SidebarContext =
|
|
4434
|
+
var SidebarContext = React8.createContext(null);
|
|
4622
4435
|
function useSidebar() {
|
|
4623
|
-
const context =
|
|
4436
|
+
const context = React8.useContext(SidebarContext);
|
|
4624
4437
|
if (!context) {
|
|
4625
4438
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
4626
4439
|
}
|
|
@@ -4636,10 +4449,10 @@ function SidebarProvider({
|
|
|
4636
4449
|
...props
|
|
4637
4450
|
}) {
|
|
4638
4451
|
const isMobile = useIsMobile();
|
|
4639
|
-
const [openMobile, setOpenMobile] =
|
|
4640
|
-
const [_open, _setOpen] =
|
|
4452
|
+
const [openMobile, setOpenMobile] = React8.useState(false);
|
|
4453
|
+
const [_open, _setOpen] = React8.useState(defaultOpen);
|
|
4641
4454
|
const open = openProp ?? _open;
|
|
4642
|
-
const setOpen =
|
|
4455
|
+
const setOpen = React8.useCallback(
|
|
4643
4456
|
(value) => {
|
|
4644
4457
|
const openState = typeof value === "function" ? value(open) : value;
|
|
4645
4458
|
if (setOpenProp) {
|
|
@@ -4651,10 +4464,10 @@ function SidebarProvider({
|
|
|
4651
4464
|
},
|
|
4652
4465
|
[setOpenProp, open]
|
|
4653
4466
|
);
|
|
4654
|
-
const toggleSidebar =
|
|
4467
|
+
const toggleSidebar = React8.useCallback(() => {
|
|
4655
4468
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
4656
4469
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
4657
|
-
|
|
4470
|
+
React8.useEffect(() => {
|
|
4658
4471
|
const handleKeyDown = (event) => {
|
|
4659
4472
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
4660
4473
|
event.preventDefault();
|
|
@@ -4665,7 +4478,7 @@ function SidebarProvider({
|
|
|
4665
4478
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
4666
4479
|
}, [toggleSidebar]);
|
|
4667
4480
|
const state = open ? "expanded" : "collapsed";
|
|
4668
|
-
const contextValue =
|
|
4481
|
+
const contextValue = React8.useMemo(
|
|
4669
4482
|
() => ({
|
|
4670
4483
|
state,
|
|
4671
4484
|
open,
|
|
@@ -5123,7 +4936,7 @@ function SidebarMenuSkeleton({
|
|
|
5123
4936
|
showIcon = false,
|
|
5124
4937
|
...props
|
|
5125
4938
|
}) {
|
|
5126
|
-
const width =
|
|
4939
|
+
const width = React8.useMemo(() => {
|
|
5127
4940
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
5128
4941
|
}, []);
|
|
5129
4942
|
return /* @__PURE__ */ jsxs(
|
|
@@ -5266,7 +5079,7 @@ var sectionVariants = cva(
|
|
|
5266
5079
|
}
|
|
5267
5080
|
);
|
|
5268
5081
|
var isGlassVariant = (variant) => variant?.startsWith("glass-") ?? false;
|
|
5269
|
-
var Section =
|
|
5082
|
+
var Section = React8.forwardRef(
|
|
5270
5083
|
({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
5271
5084
|
"section",
|
|
5272
5085
|
{
|
|
@@ -5278,7 +5091,7 @@ var Section = React10.forwardRef(
|
|
|
5278
5091
|
)
|
|
5279
5092
|
);
|
|
5280
5093
|
Section.displayName = "Section";
|
|
5281
|
-
var SectionHeader =
|
|
5094
|
+
var SectionHeader = React8.forwardRef(
|
|
5282
5095
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
5283
5096
|
"div",
|
|
5284
5097
|
{
|
|
@@ -5293,7 +5106,7 @@ var SectionHeader = React10.forwardRef(
|
|
|
5293
5106
|
)
|
|
5294
5107
|
);
|
|
5295
5108
|
SectionHeader.displayName = "SectionHeader";
|
|
5296
|
-
var SectionTitle =
|
|
5109
|
+
var SectionTitle = React8.forwardRef(
|
|
5297
5110
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
5298
5111
|
"h2",
|
|
5299
5112
|
{
|
|
@@ -5307,7 +5120,7 @@ var SectionTitle = React10.forwardRef(
|
|
|
5307
5120
|
)
|
|
5308
5121
|
);
|
|
5309
5122
|
SectionTitle.displayName = "SectionTitle";
|
|
5310
|
-
var SectionDescription =
|
|
5123
|
+
var SectionDescription = React8.forwardRef(
|
|
5311
5124
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
5312
5125
|
"p",
|
|
5313
5126
|
{
|
|
@@ -5321,7 +5134,7 @@ var SectionDescription = React10.forwardRef(
|
|
|
5321
5134
|
)
|
|
5322
5135
|
);
|
|
5323
5136
|
SectionDescription.displayName = "SectionDescription";
|
|
5324
|
-
var SectionContent =
|
|
5137
|
+
var SectionContent = React8.forwardRef(
|
|
5325
5138
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
5326
5139
|
"div",
|
|
5327
5140
|
{
|
|
@@ -5335,7 +5148,7 @@ var SectionContent = React10.forwardRef(
|
|
|
5335
5148
|
)
|
|
5336
5149
|
);
|
|
5337
5150
|
SectionContent.displayName = "SectionContent";
|
|
5338
|
-
var SectionFooter =
|
|
5151
|
+
var SectionFooter = React8.forwardRef(
|
|
5339
5152
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
5340
5153
|
"div",
|
|
5341
5154
|
{
|
|
@@ -5352,6 +5165,6 @@ var SectionFooter = React10.forwardRef(
|
|
|
5352
5165
|
);
|
|
5353
5166
|
SectionFooter.displayName = "SectionFooter";
|
|
5354
5167
|
|
|
5355
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDayButton, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item5 as Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label2 as Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Section, SectionContent, SectionDescription, SectionFooter, SectionHeader, SectionTitle, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip2 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonGroupVariants, buttonVariants,
|
|
5168
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDayButton, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item5 as Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label2 as Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Section, SectionContent, SectionDescription, SectionFooter, SectionHeader, SectionTitle, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip2 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonGroupVariants, buttonVariants, navigationMenuTriggerStyle, sectionVariants, toggleVariants, useFormField, useIsMobile, useSidebar };
|
|
5356
5169
|
//# sourceMappingURL=index.js.map
|
|
5357
5170
|
//# sourceMappingURL=index.js.map
|