@propknot/shared-ui 1.0.26 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1398 -87
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1397 -174
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +19 -6
package/dist/index.mjs
CHANGED
|
@@ -231,7 +231,10 @@ import React2, { createContext, useContext, useState, useEffect } from "react";
|
|
|
231
231
|
// src/services/api.js
|
|
232
232
|
import axios from "axios";
|
|
233
233
|
var getApiUrl = () => {
|
|
234
|
-
if (
|
|
234
|
+
if (typeof import.meta !== "undefined" && import.meta.env && import.meta.env.VITE_API_URL) {
|
|
235
|
+
return import.meta.env.VITE_API_URL;
|
|
236
|
+
}
|
|
237
|
+
if (typeof process !== "undefined" && process.env && process.env.REACT_APP_API_URL) {
|
|
235
238
|
return process.env.REACT_APP_API_URL;
|
|
236
239
|
}
|
|
237
240
|
const hostname = window.location.hostname;
|
|
@@ -1534,17 +1537,23 @@ var CustomThemeProvider = ({ children }) => {
|
|
|
1534
1537
|
if (!isEmbedded) return;
|
|
1535
1538
|
let isInitialRequest = true;
|
|
1536
1539
|
const handleMessage = (event) => {
|
|
1537
|
-
|
|
1540
|
+
const expectedOriginProtocol = window.location.protocol;
|
|
1541
|
+
const expectedOriginHostname = window.location.hostname;
|
|
1542
|
+
if (!event.origin.startsWith(`${expectedOriginProtocol}//${expectedOriginHostname}`)) {
|
|
1543
|
+
console.warn("[SharedUI Theme] Rejected message from:", event.origin);
|
|
1544
|
+
return;
|
|
1545
|
+
}
|
|
1546
|
+
console.log("[SharedUI Theme] Received message:", event.data);
|
|
1538
1547
|
const { type, theme } = event.data;
|
|
1539
|
-
if (type === "THEME_CHANGE" && theme
|
|
1540
|
-
const
|
|
1541
|
-
if (
|
|
1548
|
+
if (type === "THEME_CHANGE" && theme) {
|
|
1549
|
+
const themeValue = typeof theme === "object" ? theme.mode : theme;
|
|
1550
|
+
if (["light", "dark"].includes(themeValue)) {
|
|
1551
|
+
console.log("[SharedUI Theme] Updating theme to:", themeValue);
|
|
1552
|
+
const storedTheme2 = localStorage.getItem("embedded-theme");
|
|
1542
1553
|
isInitialRequest = false;
|
|
1543
|
-
|
|
1554
|
+
setCurrentTheme(themeValue);
|
|
1555
|
+
localStorage.setItem("embedded-theme", themeValue);
|
|
1544
1556
|
}
|
|
1545
|
-
isInitialRequest = false;
|
|
1546
|
-
setCurrentTheme(theme);
|
|
1547
|
-
localStorage.setItem("embedded-theme", theme);
|
|
1548
1557
|
}
|
|
1549
1558
|
};
|
|
1550
1559
|
window.addEventListener("message", handleMessage);
|
|
@@ -1607,6 +1616,15 @@ var CustomThemeProvider = ({ children }) => {
|
|
|
1607
1616
|
const themeObject = effectiveTheme === "dark" ? darkTheme : lightTheme;
|
|
1608
1617
|
const isDarkMode = effectiveTheme === "dark";
|
|
1609
1618
|
const effectiveBrandingColor = getEffectiveBrandingColor();
|
|
1619
|
+
useEffect2(() => {
|
|
1620
|
+
const root = window.document.documentElement;
|
|
1621
|
+
root.classList.remove("light", "dark");
|
|
1622
|
+
if (effectiveTheme === "dark") {
|
|
1623
|
+
root.classList.add("dark");
|
|
1624
|
+
} else {
|
|
1625
|
+
root.classList.add("light");
|
|
1626
|
+
}
|
|
1627
|
+
}, [effectiveTheme]);
|
|
1610
1628
|
const value = {
|
|
1611
1629
|
currentThemeKey: effectiveTheme,
|
|
1612
1630
|
theme: themeObject,
|
|
@@ -3187,11 +3205,219 @@ var ModernCardContent = ({ children, sx = {}, ...props }) => {
|
|
|
3187
3205
|
ModernCard.Content = ModernCardContent;
|
|
3188
3206
|
var ModernCard_default = ModernCard;
|
|
3189
3207
|
|
|
3190
|
-
// src/components/UI/
|
|
3208
|
+
// src/components/UI/accordion.jsx
|
|
3191
3209
|
import * as React13 from "react";
|
|
3192
|
-
import
|
|
3210
|
+
import * as AccordionPrimitive from "@radix-ui/react-accordion";
|
|
3211
|
+
import { ChevronDown } from "lucide-react";
|
|
3212
|
+
var Accordion = AccordionPrimitive.Root;
|
|
3213
|
+
var AccordionItem = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React13.createElement(
|
|
3214
|
+
AccordionPrimitive.Item,
|
|
3215
|
+
{
|
|
3216
|
+
ref,
|
|
3217
|
+
className: cn("border-b", className),
|
|
3218
|
+
...props
|
|
3219
|
+
}
|
|
3220
|
+
));
|
|
3221
|
+
AccordionItem.displayName = "AccordionItem";
|
|
3222
|
+
var AccordionTrigger = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ React13.createElement(AccordionPrimitive.Header, { className: "flex" }, /* @__PURE__ */ React13.createElement(
|
|
3223
|
+
AccordionPrimitive.Trigger,
|
|
3224
|
+
{
|
|
3225
|
+
ref,
|
|
3226
|
+
className: cn(
|
|
3227
|
+
"flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
|
|
3228
|
+
className
|
|
3229
|
+
),
|
|
3230
|
+
...props
|
|
3231
|
+
},
|
|
3232
|
+
children,
|
|
3233
|
+
/* @__PURE__ */ React13.createElement(ChevronDown, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
|
|
3234
|
+
)));
|
|
3235
|
+
AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
|
|
3236
|
+
var AccordionContent = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ React13.createElement(
|
|
3237
|
+
AccordionPrimitive.Content,
|
|
3238
|
+
{
|
|
3239
|
+
ref,
|
|
3240
|
+
className: "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
|
|
3241
|
+
...props
|
|
3242
|
+
},
|
|
3243
|
+
/* @__PURE__ */ React13.createElement("div", { className: cn("pb-4 pt-0", className) }, children)
|
|
3244
|
+
));
|
|
3245
|
+
AccordionContent.displayName = AccordionPrimitive.Content.displayName;
|
|
3246
|
+
|
|
3247
|
+
// src/components/UI/alert.jsx
|
|
3248
|
+
import * as React14 from "react";
|
|
3193
3249
|
import { cva } from "class-variance-authority";
|
|
3194
|
-
var
|
|
3250
|
+
var alertVariants = cva(
|
|
3251
|
+
"relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",
|
|
3252
|
+
{
|
|
3253
|
+
variants: {
|
|
3254
|
+
variant: {
|
|
3255
|
+
default: "bg-background text-foreground",
|
|
3256
|
+
destructive: "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"
|
|
3257
|
+
}
|
|
3258
|
+
},
|
|
3259
|
+
defaultVariants: {
|
|
3260
|
+
variant: "default"
|
|
3261
|
+
}
|
|
3262
|
+
}
|
|
3263
|
+
);
|
|
3264
|
+
var Alert = React14.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ React14.createElement(
|
|
3265
|
+
"div",
|
|
3266
|
+
{
|
|
3267
|
+
ref,
|
|
3268
|
+
role: "alert",
|
|
3269
|
+
className: cn(alertVariants({ variant }), className),
|
|
3270
|
+
...props
|
|
3271
|
+
}
|
|
3272
|
+
));
|
|
3273
|
+
Alert.displayName = "Alert";
|
|
3274
|
+
var AlertTitle = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React14.createElement(
|
|
3275
|
+
"h5",
|
|
3276
|
+
{
|
|
3277
|
+
ref,
|
|
3278
|
+
className: cn("mb-1 font-medium leading-none tracking-tight", className),
|
|
3279
|
+
...props
|
|
3280
|
+
}
|
|
3281
|
+
));
|
|
3282
|
+
AlertTitle.displayName = "AlertTitle";
|
|
3283
|
+
var AlertDescription = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React14.createElement(
|
|
3284
|
+
"div",
|
|
3285
|
+
{
|
|
3286
|
+
ref,
|
|
3287
|
+
className: cn("text-sm [&_p]:leading-relaxed", className),
|
|
3288
|
+
...props
|
|
3289
|
+
}
|
|
3290
|
+
));
|
|
3291
|
+
AlertDescription.displayName = "AlertDescription";
|
|
3292
|
+
|
|
3293
|
+
// src/components/UI/avatar.jsx
|
|
3294
|
+
import * as React15 from "react";
|
|
3295
|
+
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
3296
|
+
var Avatar2 = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React15.createElement(
|
|
3297
|
+
AvatarPrimitive.Root,
|
|
3298
|
+
{
|
|
3299
|
+
ref,
|
|
3300
|
+
className: cn(
|
|
3301
|
+
"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",
|
|
3302
|
+
className
|
|
3303
|
+
),
|
|
3304
|
+
...props
|
|
3305
|
+
}
|
|
3306
|
+
));
|
|
3307
|
+
Avatar2.displayName = AvatarPrimitive.Root.displayName;
|
|
3308
|
+
var AvatarImage = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React15.createElement(
|
|
3309
|
+
AvatarPrimitive.Image,
|
|
3310
|
+
{
|
|
3311
|
+
ref,
|
|
3312
|
+
className: cn("aspect-square h-full w-full", className),
|
|
3313
|
+
...props
|
|
3314
|
+
}
|
|
3315
|
+
));
|
|
3316
|
+
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
3317
|
+
var AvatarFallback = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React15.createElement(
|
|
3318
|
+
AvatarPrimitive.Fallback,
|
|
3319
|
+
{
|
|
3320
|
+
ref,
|
|
3321
|
+
className: cn(
|
|
3322
|
+
"flex h-full w-full items-center justify-center rounded-full bg-muted",
|
|
3323
|
+
className
|
|
3324
|
+
),
|
|
3325
|
+
...props
|
|
3326
|
+
}
|
|
3327
|
+
));
|
|
3328
|
+
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
3329
|
+
|
|
3330
|
+
// src/components/UI/badge.jsx
|
|
3331
|
+
import * as React16 from "react";
|
|
3332
|
+
import { cva as cva2 } from "class-variance-authority";
|
|
3333
|
+
var badgeVariants = cva2(
|
|
3334
|
+
"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
3335
|
+
{
|
|
3336
|
+
variants: {
|
|
3337
|
+
variant: {
|
|
3338
|
+
default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
|
|
3339
|
+
secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
3340
|
+
destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
|
|
3341
|
+
outline: "text-foreground"
|
|
3342
|
+
}
|
|
3343
|
+
},
|
|
3344
|
+
defaultVariants: {
|
|
3345
|
+
variant: "default"
|
|
3346
|
+
}
|
|
3347
|
+
}
|
|
3348
|
+
);
|
|
3349
|
+
function Badge2({ className, variant, ...props }) {
|
|
3350
|
+
return /* @__PURE__ */ React16.createElement("div", { className: cn(badgeVariants({ variant }), className), ...props });
|
|
3351
|
+
}
|
|
3352
|
+
|
|
3353
|
+
// src/components/UI/breadcrumbs.jsx
|
|
3354
|
+
import * as React17 from "react";
|
|
3355
|
+
import { ChevronRight } from "lucide-react";
|
|
3356
|
+
var Breadcrumbs2 = React17.forwardRef(({
|
|
3357
|
+
className,
|
|
3358
|
+
separator,
|
|
3359
|
+
children,
|
|
3360
|
+
...props
|
|
3361
|
+
}, ref) => {
|
|
3362
|
+
const Separator3 = separator || /* @__PURE__ */ React17.createElement(ChevronRight, { className: "h-4 w-4" });
|
|
3363
|
+
const items = React17.Children.toArray(children);
|
|
3364
|
+
return /* @__PURE__ */ React17.createElement(
|
|
3365
|
+
"nav",
|
|
3366
|
+
{
|
|
3367
|
+
ref,
|
|
3368
|
+
"aria-label": "Breadcrumb",
|
|
3369
|
+
className: cn("flex items-center space-x-1 text-sm text-muted-foreground", className),
|
|
3370
|
+
...props
|
|
3371
|
+
},
|
|
3372
|
+
/* @__PURE__ */ React17.createElement("ol", { className: "flex items-center space-x-1" }, items.map((child, index) => /* @__PURE__ */ React17.createElement("li", { key: index, className: "flex items-center space-x-1" }, child, index < items.length - 1 && /* @__PURE__ */ React17.createElement("span", { className: "mx-1", "aria-hidden": "true" }, Separator3))))
|
|
3373
|
+
);
|
|
3374
|
+
});
|
|
3375
|
+
Breadcrumbs2.displayName = "Breadcrumbs";
|
|
3376
|
+
var BreadcrumbItem = React17.forwardRef(({
|
|
3377
|
+
className,
|
|
3378
|
+
isCurrentPage,
|
|
3379
|
+
children,
|
|
3380
|
+
...props
|
|
3381
|
+
}, ref) => /* @__PURE__ */ React17.createElement(
|
|
3382
|
+
"span",
|
|
3383
|
+
{
|
|
3384
|
+
ref,
|
|
3385
|
+
className: cn(
|
|
3386
|
+
"inline-flex items-center",
|
|
3387
|
+
isCurrentPage ? "font-medium text-foreground" : "hover:text-foreground transition-colors",
|
|
3388
|
+
className
|
|
3389
|
+
),
|
|
3390
|
+
"aria-current": isCurrentPage ? "page" : void 0,
|
|
3391
|
+
...props
|
|
3392
|
+
},
|
|
3393
|
+
children
|
|
3394
|
+
));
|
|
3395
|
+
BreadcrumbItem.displayName = "BreadcrumbItem";
|
|
3396
|
+
var BreadcrumbLink = React17.forwardRef(({
|
|
3397
|
+
className,
|
|
3398
|
+
href,
|
|
3399
|
+
children,
|
|
3400
|
+
...props
|
|
3401
|
+
}, ref) => /* @__PURE__ */ React17.createElement(
|
|
3402
|
+
"a",
|
|
3403
|
+
{
|
|
3404
|
+
ref,
|
|
3405
|
+
href,
|
|
3406
|
+
className: cn(
|
|
3407
|
+
"hover:text-foreground transition-colors hover:underline",
|
|
3408
|
+
className
|
|
3409
|
+
),
|
|
3410
|
+
...props
|
|
3411
|
+
},
|
|
3412
|
+
children
|
|
3413
|
+
));
|
|
3414
|
+
BreadcrumbLink.displayName = "BreadcrumbLink";
|
|
3415
|
+
|
|
3416
|
+
// src/components/UI/button.jsx
|
|
3417
|
+
import * as React18 from "react";
|
|
3418
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
3419
|
+
import { cva as cva3 } from "class-variance-authority";
|
|
3420
|
+
var buttonVariants = cva3(
|
|
3195
3421
|
"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
|
|
3196
3422
|
{
|
|
3197
3423
|
variants: {
|
|
@@ -3216,12 +3442,12 @@ var buttonVariants = cva(
|
|
|
3216
3442
|
}
|
|
3217
3443
|
}
|
|
3218
3444
|
);
|
|
3219
|
-
var Button2 =
|
|
3445
|
+
var Button2 = React18.forwardRef(({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
3220
3446
|
const Comp = asChild ? Slot : "button";
|
|
3221
|
-
return /* @__PURE__ */
|
|
3447
|
+
return /* @__PURE__ */ React18.createElement(
|
|
3222
3448
|
Comp,
|
|
3223
3449
|
{
|
|
3224
|
-
className: cn(buttonVariants({ variant, size, className
|
|
3450
|
+
className: cn(buttonVariants({ variant, size }), className),
|
|
3225
3451
|
ref,
|
|
3226
3452
|
...props
|
|
3227
3453
|
}
|
|
@@ -3230,8 +3456,8 @@ var Button2 = React13.forwardRef(({ className, variant, size, asChild = false, .
|
|
|
3230
3456
|
Button2.displayName = "Button";
|
|
3231
3457
|
|
|
3232
3458
|
// src/components/UI/card.jsx
|
|
3233
|
-
import * as
|
|
3234
|
-
var Card2 =
|
|
3459
|
+
import * as React19 from "react";
|
|
3460
|
+
var Card2 = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React19.createElement(
|
|
3235
3461
|
"div",
|
|
3236
3462
|
{
|
|
3237
3463
|
ref,
|
|
@@ -3243,7 +3469,7 @@ var Card2 = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
3243
3469
|
}
|
|
3244
3470
|
));
|
|
3245
3471
|
Card2.displayName = "Card";
|
|
3246
|
-
var CardHeader =
|
|
3472
|
+
var CardHeader = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React19.createElement(
|
|
3247
3473
|
"div",
|
|
3248
3474
|
{
|
|
3249
3475
|
ref,
|
|
@@ -3252,7 +3478,7 @@ var CardHeader = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
3252
3478
|
}
|
|
3253
3479
|
));
|
|
3254
3480
|
CardHeader.displayName = "CardHeader";
|
|
3255
|
-
var CardTitle =
|
|
3481
|
+
var CardTitle = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React19.createElement(
|
|
3256
3482
|
"h3",
|
|
3257
3483
|
{
|
|
3258
3484
|
ref,
|
|
@@ -3264,7 +3490,7 @@ var CardTitle = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
3264
3490
|
}
|
|
3265
3491
|
));
|
|
3266
3492
|
CardTitle.displayName = "CardTitle";
|
|
3267
|
-
var CardDescription =
|
|
3493
|
+
var CardDescription = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React19.createElement(
|
|
3268
3494
|
"p",
|
|
3269
3495
|
{
|
|
3270
3496
|
ref,
|
|
@@ -3273,9 +3499,9 @@ var CardDescription = React14.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
3273
3499
|
}
|
|
3274
3500
|
));
|
|
3275
3501
|
CardDescription.displayName = "CardDescription";
|
|
3276
|
-
var CardContent2 =
|
|
3502
|
+
var CardContent2 = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React19.createElement("div", { ref, className: cn("p-6 pt-0", className), ...props }));
|
|
3277
3503
|
CardContent2.displayName = "CardContent";
|
|
3278
|
-
var CardFooter =
|
|
3504
|
+
var CardFooter = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React19.createElement(
|
|
3279
3505
|
"div",
|
|
3280
3506
|
{
|
|
3281
3507
|
ref,
|
|
@@ -3285,100 +3511,1010 @@ var CardFooter = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
3285
3511
|
));
|
|
3286
3512
|
CardFooter.displayName = "CardFooter";
|
|
3287
3513
|
|
|
3288
|
-
// src/components/UI/
|
|
3289
|
-
import * as
|
|
3290
|
-
|
|
3291
|
-
|
|
3292
|
-
|
|
3514
|
+
// src/components/UI/checkbox.jsx
|
|
3515
|
+
import * as React20 from "react";
|
|
3516
|
+
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
3517
|
+
import { Check } from "lucide-react";
|
|
3518
|
+
var Checkbox = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React20.createElement(
|
|
3519
|
+
CheckboxPrimitive.Root,
|
|
3520
|
+
{
|
|
3521
|
+
ref,
|
|
3522
|
+
className: cn(
|
|
3523
|
+
"peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
|
|
3524
|
+
className
|
|
3525
|
+
),
|
|
3526
|
+
...props
|
|
3527
|
+
},
|
|
3528
|
+
/* @__PURE__ */ React20.createElement(
|
|
3529
|
+
CheckboxPrimitive.Indicator,
|
|
3293
3530
|
{
|
|
3294
|
-
|
|
3531
|
+
className: cn("flex items-center justify-center text-current")
|
|
3532
|
+
},
|
|
3533
|
+
/* @__PURE__ */ React20.createElement(Check, { className: "h-4 w-4" })
|
|
3534
|
+
)
|
|
3535
|
+
));
|
|
3536
|
+
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
3537
|
+
|
|
3538
|
+
// src/components/UI/container.jsx
|
|
3539
|
+
import * as React21 from "react";
|
|
3540
|
+
var Container2 = React21.forwardRef(({ className, maxWidth = "7xl", centered = true, ...props }, ref) => {
|
|
3541
|
+
const maxWidthClasses = {
|
|
3542
|
+
sm: "max-w-screen-sm",
|
|
3543
|
+
md: "max-w-screen-md",
|
|
3544
|
+
lg: "max-w-screen-lg",
|
|
3545
|
+
xl: "max-w-screen-xl",
|
|
3546
|
+
"2xl": "max-w-screen-2xl",
|
|
3547
|
+
"7xl": "max-w-7xl",
|
|
3548
|
+
full: "max-w-full"
|
|
3549
|
+
};
|
|
3550
|
+
return /* @__PURE__ */ React21.createElement(
|
|
3551
|
+
"div",
|
|
3552
|
+
{
|
|
3553
|
+
ref,
|
|
3295
3554
|
className: cn(
|
|
3296
|
-
"
|
|
3555
|
+
"w-full px-4 sm:px-6 lg:px-8",
|
|
3556
|
+
centered && "mx-auto",
|
|
3557
|
+
maxWidthClasses[maxWidth] || maxWidthClasses["7xl"],
|
|
3297
3558
|
className
|
|
3298
3559
|
),
|
|
3299
|
-
ref,
|
|
3300
3560
|
...props
|
|
3301
3561
|
}
|
|
3302
3562
|
);
|
|
3303
3563
|
});
|
|
3304
|
-
|
|
3564
|
+
Container2.displayName = "Container";
|
|
3305
3565
|
|
|
3306
|
-
// src/components/UI/
|
|
3307
|
-
import * as
|
|
3308
|
-
import * as
|
|
3309
|
-
import {
|
|
3310
|
-
var
|
|
3311
|
-
|
|
3566
|
+
// src/components/UI/dialog.jsx
|
|
3567
|
+
import * as React22 from "react";
|
|
3568
|
+
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
3569
|
+
import { X } from "lucide-react";
|
|
3570
|
+
var Dialog = DialogPrimitive.Root;
|
|
3571
|
+
var DialogTrigger = DialogPrimitive.Trigger;
|
|
3572
|
+
var DialogPortal = DialogPrimitive.Portal;
|
|
3573
|
+
var DialogClose = DialogPrimitive.Close;
|
|
3574
|
+
var DialogOverlay = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React22.createElement(
|
|
3575
|
+
DialogPrimitive.Overlay,
|
|
3576
|
+
{
|
|
3577
|
+
ref,
|
|
3578
|
+
className: cn(
|
|
3579
|
+
"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
3580
|
+
className
|
|
3581
|
+
),
|
|
3582
|
+
...props
|
|
3583
|
+
}
|
|
3584
|
+
));
|
|
3585
|
+
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
3586
|
+
var DialogContent = React22.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ React22.createElement(DialogPortal, null, /* @__PURE__ */ React22.createElement(DialogOverlay, null), /* @__PURE__ */ React22.createElement(
|
|
3587
|
+
DialogPrimitive.Content,
|
|
3588
|
+
{
|
|
3589
|
+
ref,
|
|
3590
|
+
className: cn(
|
|
3591
|
+
"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
|
|
3592
|
+
className
|
|
3593
|
+
),
|
|
3594
|
+
...props
|
|
3595
|
+
},
|
|
3596
|
+
children,
|
|
3597
|
+
/* @__PURE__ */ React22.createElement(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground" }, /* @__PURE__ */ React22.createElement(X, { className: "h-4 w-4" }), /* @__PURE__ */ React22.createElement("span", { className: "sr-only" }, "Close"))
|
|
3598
|
+
)));
|
|
3599
|
+
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
3600
|
+
var DialogHeader = ({
|
|
3601
|
+
className,
|
|
3602
|
+
...props
|
|
3603
|
+
}) => /* @__PURE__ */ React22.createElement(
|
|
3604
|
+
"div",
|
|
3605
|
+
{
|
|
3606
|
+
className: cn(
|
|
3607
|
+
"flex flex-col space-y-1.5 text-center sm:text-left",
|
|
3608
|
+
className
|
|
3609
|
+
),
|
|
3610
|
+
...props
|
|
3611
|
+
}
|
|
3312
3612
|
);
|
|
3313
|
-
|
|
3314
|
-
|
|
3613
|
+
DialogHeader.displayName = "DialogHeader";
|
|
3614
|
+
var DialogFooter = ({
|
|
3615
|
+
className,
|
|
3616
|
+
...props
|
|
3617
|
+
}) => /* @__PURE__ */ React22.createElement(
|
|
3618
|
+
"div",
|
|
3619
|
+
{
|
|
3620
|
+
className: cn(
|
|
3621
|
+
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
3622
|
+
className
|
|
3623
|
+
),
|
|
3624
|
+
...props
|
|
3625
|
+
}
|
|
3626
|
+
);
|
|
3627
|
+
DialogFooter.displayName = "DialogFooter";
|
|
3628
|
+
var DialogTitle = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React22.createElement(
|
|
3629
|
+
DialogPrimitive.Title,
|
|
3315
3630
|
{
|
|
3316
3631
|
ref,
|
|
3317
|
-
className: cn(
|
|
3632
|
+
className: cn(
|
|
3633
|
+
"text-lg font-semibold leading-none tracking-tight",
|
|
3634
|
+
className
|
|
3635
|
+
),
|
|
3318
3636
|
...props
|
|
3319
3637
|
}
|
|
3320
3638
|
));
|
|
3321
|
-
|
|
3639
|
+
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
3640
|
+
var DialogDescription = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React22.createElement(
|
|
3641
|
+
DialogPrimitive.Description,
|
|
3642
|
+
{
|
|
3643
|
+
ref,
|
|
3644
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
3645
|
+
...props
|
|
3646
|
+
}
|
|
3647
|
+
));
|
|
3648
|
+
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
3322
3649
|
|
|
3323
|
-
// src/components/UI/
|
|
3324
|
-
import * as
|
|
3325
|
-
|
|
3326
|
-
|
|
3327
|
-
|
|
3328
|
-
|
|
3329
|
-
|
|
3330
|
-
|
|
3331
|
-
|
|
3332
|
-
|
|
3333
|
-
|
|
3334
|
-
|
|
3650
|
+
// src/components/UI/grid.jsx
|
|
3651
|
+
import * as React23 from "react";
|
|
3652
|
+
var Grid = React23.forwardRef(({
|
|
3653
|
+
className,
|
|
3654
|
+
cols = 1,
|
|
3655
|
+
sm,
|
|
3656
|
+
md,
|
|
3657
|
+
lg,
|
|
3658
|
+
xl,
|
|
3659
|
+
gap = 4,
|
|
3660
|
+
...props
|
|
3661
|
+
}, ref) => {
|
|
3662
|
+
const colsClasses = {
|
|
3663
|
+
1: "grid-cols-1",
|
|
3664
|
+
2: "grid-cols-2",
|
|
3665
|
+
3: "grid-cols-3",
|
|
3666
|
+
4: "grid-cols-4",
|
|
3667
|
+
5: "grid-cols-5",
|
|
3668
|
+
6: "grid-cols-6",
|
|
3669
|
+
12: "grid-cols-12"
|
|
3670
|
+
};
|
|
3671
|
+
const responsiveClasses = {
|
|
3672
|
+
sm: sm ? `sm:grid-cols-${sm}` : null,
|
|
3673
|
+
md: md ? `md:grid-cols-${md}` : null,
|
|
3674
|
+
lg: lg ? `lg:grid-cols-${lg}` : null,
|
|
3675
|
+
xl: xl ? `xl:grid-cols-${xl}` : null
|
|
3676
|
+
};
|
|
3677
|
+
const gapClass = `gap-${gap}`;
|
|
3678
|
+
return /* @__PURE__ */ React23.createElement(
|
|
3679
|
+
"div",
|
|
3680
|
+
{
|
|
3681
|
+
ref,
|
|
3682
|
+
className: cn(
|
|
3683
|
+
"grid",
|
|
3684
|
+
colsClasses[cols] || "grid-cols-1",
|
|
3685
|
+
responsiveClasses.sm,
|
|
3686
|
+
responsiveClasses.md,
|
|
3687
|
+
responsiveClasses.lg,
|
|
3688
|
+
responsiveClasses.xl,
|
|
3689
|
+
gapClass,
|
|
3690
|
+
className
|
|
3691
|
+
),
|
|
3692
|
+
...props
|
|
3335
3693
|
}
|
|
3336
|
-
|
|
3337
|
-
defaultVariants: {
|
|
3338
|
-
level: "h2"
|
|
3339
|
-
}
|
|
3694
|
+
);
|
|
3340
3695
|
});
|
|
3341
|
-
|
|
3342
|
-
|
|
3343
|
-
|
|
3344
|
-
|
|
3696
|
+
Grid.displayName = "Grid";
|
|
3697
|
+
var GridItem = React23.forwardRef(({
|
|
3698
|
+
className,
|
|
3699
|
+
colSpan = 1,
|
|
3700
|
+
colStart,
|
|
3701
|
+
colEnd,
|
|
3702
|
+
rowSpan = 1,
|
|
3703
|
+
rowStart,
|
|
3704
|
+
rowEnd,
|
|
3705
|
+
...props
|
|
3706
|
+
}, ref) => {
|
|
3707
|
+
const spanClasses = {
|
|
3708
|
+
1: "col-span-1",
|
|
3709
|
+
2: "col-span-2",
|
|
3710
|
+
3: "col-span-3",
|
|
3711
|
+
4: "col-span-4",
|
|
3712
|
+
5: "col-span-5",
|
|
3713
|
+
6: "col-span-6",
|
|
3714
|
+
12: "col-span-12",
|
|
3715
|
+
full: "col-span-full"
|
|
3716
|
+
};
|
|
3717
|
+
const rowSpanClasses = {
|
|
3718
|
+
1: "row-span-1",
|
|
3719
|
+
2: "row-span-2",
|
|
3720
|
+
3: "row-span-3",
|
|
3721
|
+
4: "row-span-4",
|
|
3722
|
+
5: "row-span-5",
|
|
3723
|
+
6: "row-span-6"
|
|
3724
|
+
};
|
|
3725
|
+
return /* @__PURE__ */ React23.createElement(
|
|
3726
|
+
"div",
|
|
3345
3727
|
{
|
|
3346
3728
|
ref,
|
|
3347
|
-
className: cn(
|
|
3729
|
+
className: cn(
|
|
3730
|
+
spanClasses[colSpan],
|
|
3731
|
+
rowSpanClasses[rowSpan],
|
|
3732
|
+
colStart && `col-start-${colStart}`,
|
|
3733
|
+
colEnd && `col-end-${colEnd}`,
|
|
3734
|
+
rowStart && `row-start-${rowStart}`,
|
|
3735
|
+
rowEnd && `row-end-${rowEnd}`,
|
|
3736
|
+
className
|
|
3737
|
+
),
|
|
3348
3738
|
...props
|
|
3349
3739
|
}
|
|
3350
3740
|
);
|
|
3351
3741
|
});
|
|
3352
|
-
|
|
3353
|
-
|
|
3354
|
-
|
|
3742
|
+
GridItem.displayName = "GridItem";
|
|
3743
|
+
Grid.Item = GridItem;
|
|
3744
|
+
|
|
3745
|
+
// src/components/UI/header.jsx
|
|
3746
|
+
import * as React24 from "react";
|
|
3747
|
+
var Header2 = React24.forwardRef(({
|
|
3748
|
+
className,
|
|
3749
|
+
sticky = false,
|
|
3750
|
+
...props
|
|
3751
|
+
}, ref) => /* @__PURE__ */ React24.createElement(
|
|
3752
|
+
"header",
|
|
3355
3753
|
{
|
|
3356
3754
|
ref,
|
|
3357
|
-
className: cn(
|
|
3755
|
+
className: cn(
|
|
3756
|
+
"w-full border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",
|
|
3757
|
+
sticky && "sticky top-0 z-50",
|
|
3758
|
+
className
|
|
3759
|
+
),
|
|
3358
3760
|
...props
|
|
3359
3761
|
}
|
|
3360
3762
|
));
|
|
3361
|
-
|
|
3362
|
-
var
|
|
3363
|
-
|
|
3763
|
+
Header2.displayName = "Header";
|
|
3764
|
+
var HeaderContainer = React24.forwardRef(({
|
|
3765
|
+
className,
|
|
3766
|
+
...props
|
|
3767
|
+
}, ref) => /* @__PURE__ */ React24.createElement(
|
|
3768
|
+
"div",
|
|
3364
3769
|
{
|
|
3365
3770
|
ref,
|
|
3366
|
-
className: cn(
|
|
3771
|
+
className: cn(
|
|
3772
|
+
"container flex h-14 items-center",
|
|
3773
|
+
className
|
|
3774
|
+
),
|
|
3367
3775
|
...props
|
|
3368
3776
|
}
|
|
3369
3777
|
));
|
|
3370
|
-
|
|
3371
|
-
var
|
|
3372
|
-
|
|
3778
|
+
HeaderContainer.displayName = "HeaderContainer";
|
|
3779
|
+
var HeaderNav = React24.forwardRef(({
|
|
3780
|
+
className,
|
|
3781
|
+
...props
|
|
3782
|
+
}, ref) => /* @__PURE__ */ React24.createElement(
|
|
3783
|
+
"nav",
|
|
3373
3784
|
{
|
|
3374
3785
|
ref,
|
|
3375
|
-
className: cn("
|
|
3786
|
+
className: cn("flex items-center space-x-4 lg:space-x-6", className),
|
|
3376
3787
|
...props
|
|
3377
3788
|
}
|
|
3378
3789
|
));
|
|
3379
|
-
|
|
3380
|
-
var
|
|
3381
|
-
|
|
3790
|
+
HeaderNav.displayName = "HeaderNav";
|
|
3791
|
+
var HeaderActions = React24.forwardRef(({
|
|
3792
|
+
className,
|
|
3793
|
+
...props
|
|
3794
|
+
}, ref) => /* @__PURE__ */ React24.createElement(
|
|
3795
|
+
"div",
|
|
3796
|
+
{
|
|
3797
|
+
ref,
|
|
3798
|
+
className: cn("ml-auto flex items-center space-x-4", className),
|
|
3799
|
+
...props
|
|
3800
|
+
}
|
|
3801
|
+
));
|
|
3802
|
+
HeaderActions.displayName = "HeaderActions";
|
|
3803
|
+
var HeaderBrand = React24.forwardRef(({
|
|
3804
|
+
className,
|
|
3805
|
+
...props
|
|
3806
|
+
}, ref) => /* @__PURE__ */ React24.createElement(
|
|
3807
|
+
"div",
|
|
3808
|
+
{
|
|
3809
|
+
ref,
|
|
3810
|
+
className: cn("mr-4 flex items-center space-x-2", className),
|
|
3811
|
+
...props
|
|
3812
|
+
}
|
|
3813
|
+
));
|
|
3814
|
+
HeaderBrand.displayName = "HeaderBrand";
|
|
3815
|
+
var HeaderLink = React24.forwardRef(({
|
|
3816
|
+
className,
|
|
3817
|
+
active = false,
|
|
3818
|
+
...props
|
|
3819
|
+
}, ref) => /* @__PURE__ */ React24.createElement(
|
|
3820
|
+
"a",
|
|
3821
|
+
{
|
|
3822
|
+
ref,
|
|
3823
|
+
className: cn(
|
|
3824
|
+
"text-sm font-medium transition-colors hover:text-primary",
|
|
3825
|
+
active ? "text-foreground" : "text-muted-foreground",
|
|
3826
|
+
className
|
|
3827
|
+
),
|
|
3828
|
+
...props
|
|
3829
|
+
}
|
|
3830
|
+
));
|
|
3831
|
+
HeaderLink.displayName = "HeaderLink";
|
|
3832
|
+
|
|
3833
|
+
// src/components/UI/input.jsx
|
|
3834
|
+
import * as React25 from "react";
|
|
3835
|
+
var Input = React25.forwardRef(({ className, type, ...props }, ref) => {
|
|
3836
|
+
return /* @__PURE__ */ React25.createElement(
|
|
3837
|
+
"input",
|
|
3838
|
+
{
|
|
3839
|
+
type,
|
|
3840
|
+
className: cn(
|
|
3841
|
+
"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
3842
|
+
className
|
|
3843
|
+
),
|
|
3844
|
+
ref,
|
|
3845
|
+
...props
|
|
3846
|
+
}
|
|
3847
|
+
);
|
|
3848
|
+
});
|
|
3849
|
+
Input.displayName = "Input";
|
|
3850
|
+
|
|
3851
|
+
// src/components/UI/label.jsx
|
|
3852
|
+
import * as React26 from "react";
|
|
3853
|
+
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
3854
|
+
import { cva as cva4 } from "class-variance-authority";
|
|
3855
|
+
var labelVariants = cva4(
|
|
3856
|
+
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
3857
|
+
);
|
|
3858
|
+
var Label = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React26.createElement(
|
|
3859
|
+
LabelPrimitive.Root,
|
|
3860
|
+
{
|
|
3861
|
+
ref,
|
|
3862
|
+
className: cn(labelVariants(), className),
|
|
3863
|
+
...props
|
|
3864
|
+
}
|
|
3865
|
+
));
|
|
3866
|
+
Label.displayName = LabelPrimitive.Root.displayName;
|
|
3867
|
+
|
|
3868
|
+
// src/components/UI/list.jsx
|
|
3869
|
+
import * as React27 from "react";
|
|
3870
|
+
var List2 = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
3871
|
+
"ul",
|
|
3872
|
+
{
|
|
3873
|
+
ref,
|
|
3874
|
+
className: cn("space-y-1", className),
|
|
3875
|
+
...props
|
|
3876
|
+
}
|
|
3877
|
+
));
|
|
3878
|
+
List2.displayName = "List";
|
|
3879
|
+
var ListItem2 = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
3880
|
+
"li",
|
|
3881
|
+
{
|
|
3882
|
+
ref,
|
|
3883
|
+
className: cn(
|
|
3884
|
+
"flex items-center gap-3 rounded-lg px-3 py-2",
|
|
3885
|
+
className
|
|
3886
|
+
),
|
|
3887
|
+
...props
|
|
3888
|
+
}
|
|
3889
|
+
));
|
|
3890
|
+
ListItem2.displayName = "ListItem";
|
|
3891
|
+
var ListItemText2 = React27.forwardRef(({ primary, secondary, className, ...props }, ref) => /* @__PURE__ */ React27.createElement("div", { ref, className: cn("flex flex-col gap-1", className), ...props }, primary && /* @__PURE__ */ React27.createElement("p", { className: "text-sm font-medium leading-none" }, primary), secondary && /* @__PURE__ */ React27.createElement("p", { className: "text-sm text-muted-foreground" }, secondary)));
|
|
3892
|
+
ListItemText2.displayName = "ListItemText";
|
|
3893
|
+
var ListItemIcon2 = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
3894
|
+
"div",
|
|
3895
|
+
{
|
|
3896
|
+
ref,
|
|
3897
|
+
className: cn("flex h-5 w-5 shrink-0 items-center justify-center", className),
|
|
3898
|
+
...props
|
|
3899
|
+
}
|
|
3900
|
+
));
|
|
3901
|
+
ListItemIcon2.displayName = "ListItemIcon";
|
|
3902
|
+
|
|
3903
|
+
// src/components/UI/popover.jsx
|
|
3904
|
+
import * as React28 from "react";
|
|
3905
|
+
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
3906
|
+
var Popover = PopoverPrimitive.Root;
|
|
3907
|
+
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
3908
|
+
var PopoverAnchor = PopoverPrimitive.Anchor;
|
|
3909
|
+
var PopoverContent = React28.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ React28.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ React28.createElement(
|
|
3910
|
+
PopoverPrimitive.Content,
|
|
3911
|
+
{
|
|
3912
|
+
ref,
|
|
3913
|
+
align,
|
|
3914
|
+
sideOffset,
|
|
3915
|
+
className: cn(
|
|
3916
|
+
"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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",
|
|
3917
|
+
className
|
|
3918
|
+
),
|
|
3919
|
+
...props
|
|
3920
|
+
}
|
|
3921
|
+
)));
|
|
3922
|
+
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
3923
|
+
|
|
3924
|
+
// src/components/UI/progress.jsx
|
|
3925
|
+
import * as React29 from "react";
|
|
3926
|
+
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
3927
|
+
var Progress = React29.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ React29.createElement(
|
|
3928
|
+
ProgressPrimitive.Root,
|
|
3929
|
+
{
|
|
3930
|
+
ref,
|
|
3931
|
+
className: cn(
|
|
3932
|
+
"relative h-4 w-full overflow-hidden rounded-full bg-secondary",
|
|
3933
|
+
className
|
|
3934
|
+
),
|
|
3935
|
+
...props
|
|
3936
|
+
},
|
|
3937
|
+
/* @__PURE__ */ React29.createElement(
|
|
3938
|
+
ProgressPrimitive.Indicator,
|
|
3939
|
+
{
|
|
3940
|
+
className: "h-full w-full flex-1 bg-primary transition-all",
|
|
3941
|
+
style: { transform: `translateX(-${100 - (value || 0)}%)` }
|
|
3942
|
+
}
|
|
3943
|
+
)
|
|
3944
|
+
));
|
|
3945
|
+
Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
3946
|
+
|
|
3947
|
+
// src/components/UI/select.jsx
|
|
3948
|
+
import * as React30 from "react";
|
|
3949
|
+
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
3950
|
+
import { Check as Check2, ChevronDown as ChevronDown2, ChevronUp } from "lucide-react";
|
|
3951
|
+
var Select = SelectPrimitive.Root;
|
|
3952
|
+
var SelectGroup = SelectPrimitive.Group;
|
|
3953
|
+
var SelectValue = SelectPrimitive.Value;
|
|
3954
|
+
var SelectTrigger = React30.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ React30.createElement(
|
|
3955
|
+
SelectPrimitive.Trigger,
|
|
3956
|
+
{
|
|
3957
|
+
ref,
|
|
3958
|
+
className: cn(
|
|
3959
|
+
"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
|
|
3960
|
+
className
|
|
3961
|
+
),
|
|
3962
|
+
...props
|
|
3963
|
+
},
|
|
3964
|
+
children,
|
|
3965
|
+
/* @__PURE__ */ React30.createElement(SelectPrimitive.Icon, { asChild: true }, /* @__PURE__ */ React30.createElement(ChevronDown2, { className: "h-4 w-4 opacity-50" }))
|
|
3966
|
+
));
|
|
3967
|
+
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
3968
|
+
var SelectScrollUpButton = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React30.createElement(
|
|
3969
|
+
SelectPrimitive.ScrollUpButton,
|
|
3970
|
+
{
|
|
3971
|
+
ref,
|
|
3972
|
+
className: cn(
|
|
3973
|
+
"flex cursor-default items-center justify-center py-1",
|
|
3974
|
+
className
|
|
3975
|
+
),
|
|
3976
|
+
...props
|
|
3977
|
+
},
|
|
3978
|
+
/* @__PURE__ */ React30.createElement(ChevronUp, { className: "h-4 w-4" })
|
|
3979
|
+
));
|
|
3980
|
+
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
3981
|
+
var SelectScrollDownButton = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React30.createElement(
|
|
3982
|
+
SelectPrimitive.ScrollDownButton,
|
|
3983
|
+
{
|
|
3984
|
+
ref,
|
|
3985
|
+
className: cn(
|
|
3986
|
+
"flex cursor-default items-center justify-center py-1",
|
|
3987
|
+
className
|
|
3988
|
+
),
|
|
3989
|
+
...props
|
|
3990
|
+
},
|
|
3991
|
+
/* @__PURE__ */ React30.createElement(ChevronDown2, { className: "h-4 w-4" })
|
|
3992
|
+
));
|
|
3993
|
+
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
3994
|
+
var SelectContent = React30.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ React30.createElement(SelectPrimitive.Portal, null, /* @__PURE__ */ React30.createElement(
|
|
3995
|
+
SelectPrimitive.Content,
|
|
3996
|
+
{
|
|
3997
|
+
ref,
|
|
3998
|
+
className: cn(
|
|
3999
|
+
"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md 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",
|
|
4000
|
+
position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
|
4001
|
+
className
|
|
4002
|
+
),
|
|
4003
|
+
position,
|
|
4004
|
+
...props
|
|
4005
|
+
},
|
|
4006
|
+
/* @__PURE__ */ React30.createElement(SelectScrollUpButton, null),
|
|
4007
|
+
/* @__PURE__ */ React30.createElement(
|
|
4008
|
+
SelectPrimitive.Viewport,
|
|
4009
|
+
{
|
|
4010
|
+
className: cn(
|
|
4011
|
+
"p-1",
|
|
4012
|
+
position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
|
|
4013
|
+
)
|
|
4014
|
+
},
|
|
4015
|
+
children
|
|
4016
|
+
),
|
|
4017
|
+
/* @__PURE__ */ React30.createElement(SelectScrollDownButton, null)
|
|
4018
|
+
)));
|
|
4019
|
+
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
4020
|
+
var SelectLabel = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React30.createElement(
|
|
4021
|
+
SelectPrimitive.Label,
|
|
4022
|
+
{
|
|
4023
|
+
ref,
|
|
4024
|
+
className: cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className),
|
|
4025
|
+
...props
|
|
4026
|
+
}
|
|
4027
|
+
));
|
|
4028
|
+
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
4029
|
+
var SelectItem = React30.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ React30.createElement(
|
|
4030
|
+
SelectPrimitive.Item,
|
|
4031
|
+
{
|
|
4032
|
+
ref,
|
|
4033
|
+
className: cn(
|
|
4034
|
+
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
4035
|
+
className
|
|
4036
|
+
),
|
|
4037
|
+
...props
|
|
4038
|
+
},
|
|
4039
|
+
/* @__PURE__ */ React30.createElement("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center" }, /* @__PURE__ */ React30.createElement(SelectPrimitive.ItemIndicator, null, /* @__PURE__ */ React30.createElement(Check2, { className: "h-4 w-4" }))),
|
|
4040
|
+
/* @__PURE__ */ React30.createElement(SelectPrimitive.ItemText, null, children)
|
|
4041
|
+
));
|
|
4042
|
+
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
4043
|
+
var SelectSeparator = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React30.createElement(
|
|
4044
|
+
SelectPrimitive.Separator,
|
|
4045
|
+
{
|
|
4046
|
+
ref,
|
|
4047
|
+
className: cn("-mx-1 my-1 h-px bg-muted", className),
|
|
4048
|
+
...props
|
|
4049
|
+
}
|
|
4050
|
+
));
|
|
4051
|
+
SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
4052
|
+
|
|
4053
|
+
// src/components/UI/separator.jsx
|
|
4054
|
+
import * as React31 from "react";
|
|
4055
|
+
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
4056
|
+
var Separator2 = React31.forwardRef(
|
|
4057
|
+
({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ React31.createElement(
|
|
4058
|
+
SeparatorPrimitive.Root,
|
|
4059
|
+
{
|
|
4060
|
+
ref,
|
|
4061
|
+
decorative,
|
|
4062
|
+
orientation,
|
|
4063
|
+
className: cn(
|
|
4064
|
+
"shrink-0 bg-border",
|
|
4065
|
+
orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
|
|
4066
|
+
className
|
|
4067
|
+
),
|
|
4068
|
+
...props
|
|
4069
|
+
}
|
|
4070
|
+
)
|
|
4071
|
+
);
|
|
4072
|
+
Separator2.displayName = SeparatorPrimitive.Root.displayName;
|
|
4073
|
+
|
|
4074
|
+
// src/components/UI/sheet.jsx
|
|
4075
|
+
import * as React32 from "react";
|
|
4076
|
+
import * as DialogPrimitive2 from "@radix-ui/react-dialog";
|
|
4077
|
+
import { cva as cva5 } from "class-variance-authority";
|
|
4078
|
+
import { X as X2 } from "lucide-react";
|
|
4079
|
+
var Sheet = DialogPrimitive2.Root;
|
|
4080
|
+
var SheetTrigger = DialogPrimitive2.Trigger;
|
|
4081
|
+
var SheetClose = DialogPrimitive2.Close;
|
|
4082
|
+
var SheetPortal = DialogPrimitive2.Portal;
|
|
4083
|
+
var SheetOverlay = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React32.createElement(
|
|
4084
|
+
DialogPrimitive2.Overlay,
|
|
4085
|
+
{
|
|
4086
|
+
className: cn(
|
|
4087
|
+
"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
4088
|
+
className
|
|
4089
|
+
),
|
|
4090
|
+
...props,
|
|
4091
|
+
ref
|
|
4092
|
+
}
|
|
4093
|
+
));
|
|
4094
|
+
SheetOverlay.displayName = DialogPrimitive2.Overlay.displayName;
|
|
4095
|
+
var sheetVariants = cva5(
|
|
4096
|
+
"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
|
|
4097
|
+
{
|
|
4098
|
+
variants: {
|
|
4099
|
+
side: {
|
|
4100
|
+
top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
|
|
4101
|
+
bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
|
|
4102
|
+
left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
|
|
4103
|
+
right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
|
|
4104
|
+
}
|
|
4105
|
+
},
|
|
4106
|
+
defaultVariants: {
|
|
4107
|
+
side: "right"
|
|
4108
|
+
}
|
|
4109
|
+
}
|
|
4110
|
+
);
|
|
4111
|
+
var SheetContent = React32.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ React32.createElement(SheetPortal, null, /* @__PURE__ */ React32.createElement(SheetOverlay, null), /* @__PURE__ */ React32.createElement(
|
|
4112
|
+
DialogPrimitive2.Content,
|
|
4113
|
+
{
|
|
4114
|
+
ref,
|
|
4115
|
+
className: cn(sheetVariants({ side }), className),
|
|
4116
|
+
...props
|
|
4117
|
+
},
|
|
4118
|
+
children,
|
|
4119
|
+
/* @__PURE__ */ React32.createElement(DialogPrimitive2.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary" }, /* @__PURE__ */ React32.createElement(X2, { className: "h-4 w-4" }), /* @__PURE__ */ React32.createElement("span", { className: "sr-only" }, "Close"))
|
|
4120
|
+
)));
|
|
4121
|
+
SheetContent.displayName = DialogPrimitive2.Content.displayName;
|
|
4122
|
+
var SheetHeader = ({
|
|
4123
|
+
className,
|
|
4124
|
+
...props
|
|
4125
|
+
}) => /* @__PURE__ */ React32.createElement(
|
|
4126
|
+
"div",
|
|
4127
|
+
{
|
|
4128
|
+
className: cn(
|
|
4129
|
+
"flex flex-col space-y-2 text-center sm:text-left",
|
|
4130
|
+
className
|
|
4131
|
+
),
|
|
4132
|
+
...props
|
|
4133
|
+
}
|
|
4134
|
+
);
|
|
4135
|
+
SheetHeader.displayName = "SheetHeader";
|
|
4136
|
+
var SheetFooter = ({
|
|
4137
|
+
className,
|
|
4138
|
+
...props
|
|
4139
|
+
}) => /* @__PURE__ */ React32.createElement(
|
|
4140
|
+
"div",
|
|
4141
|
+
{
|
|
4142
|
+
className: cn(
|
|
4143
|
+
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
4144
|
+
className
|
|
4145
|
+
),
|
|
4146
|
+
...props
|
|
4147
|
+
}
|
|
4148
|
+
);
|
|
4149
|
+
SheetFooter.displayName = "SheetFooter";
|
|
4150
|
+
var SheetTitle = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React32.createElement(
|
|
4151
|
+
DialogPrimitive2.Title,
|
|
4152
|
+
{
|
|
4153
|
+
ref,
|
|
4154
|
+
className: cn("text-lg font-semibold text-foreground", className),
|
|
4155
|
+
...props
|
|
4156
|
+
}
|
|
4157
|
+
));
|
|
4158
|
+
SheetTitle.displayName = DialogPrimitive2.Title.displayName;
|
|
4159
|
+
var SheetDescription = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React32.createElement(
|
|
4160
|
+
DialogPrimitive2.Description,
|
|
4161
|
+
{
|
|
4162
|
+
ref,
|
|
4163
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
4164
|
+
...props
|
|
4165
|
+
}
|
|
4166
|
+
));
|
|
4167
|
+
SheetDescription.displayName = DialogPrimitive2.Description.displayName;
|
|
4168
|
+
|
|
4169
|
+
// src/components/UI/skeleton.jsx
|
|
4170
|
+
import * as React33 from "react";
|
|
4171
|
+
function Skeleton({
|
|
4172
|
+
className,
|
|
4173
|
+
...props
|
|
4174
|
+
}) {
|
|
4175
|
+
return /* @__PURE__ */ React33.createElement(
|
|
4176
|
+
"div",
|
|
4177
|
+
{
|
|
4178
|
+
className: cn("animate-pulse rounded-md bg-muted", className),
|
|
4179
|
+
...props
|
|
4180
|
+
}
|
|
4181
|
+
);
|
|
4182
|
+
}
|
|
4183
|
+
|
|
4184
|
+
// src/components/UI/stack.jsx
|
|
4185
|
+
import * as React34 from "react";
|
|
4186
|
+
var Stack5 = React34.forwardRef(({
|
|
4187
|
+
className,
|
|
4188
|
+
direction = "vertical",
|
|
4189
|
+
spacing = 4,
|
|
4190
|
+
align = "stretch",
|
|
4191
|
+
justify = "start",
|
|
4192
|
+
wrap = false,
|
|
4193
|
+
...props
|
|
4194
|
+
}, ref) => {
|
|
4195
|
+
const directionClasses = {
|
|
4196
|
+
vertical: "flex-col",
|
|
4197
|
+
horizontal: "flex-row"
|
|
4198
|
+
};
|
|
4199
|
+
const spacingClasses = {
|
|
4200
|
+
vertical: {
|
|
4201
|
+
0: "space-y-0",
|
|
4202
|
+
1: "space-y-1",
|
|
4203
|
+
2: "space-y-2",
|
|
4204
|
+
3: "space-y-3",
|
|
4205
|
+
4: "space-y-4",
|
|
4206
|
+
5: "space-y-5",
|
|
4207
|
+
6: "space-y-6",
|
|
4208
|
+
8: "space-y-8"
|
|
4209
|
+
},
|
|
4210
|
+
horizontal: {
|
|
4211
|
+
0: "space-x-0",
|
|
4212
|
+
1: "space-x-1",
|
|
4213
|
+
2: "space-x-2",
|
|
4214
|
+
3: "space-x-3",
|
|
4215
|
+
4: "space-x-4",
|
|
4216
|
+
5: "space-x-5",
|
|
4217
|
+
6: "space-x-6",
|
|
4218
|
+
8: "space-x-8"
|
|
4219
|
+
}
|
|
4220
|
+
};
|
|
4221
|
+
const alignClasses = {
|
|
4222
|
+
start: "items-start",
|
|
4223
|
+
center: "items-center",
|
|
4224
|
+
end: "items-end",
|
|
4225
|
+
stretch: "items-stretch",
|
|
4226
|
+
baseline: "items-baseline"
|
|
4227
|
+
};
|
|
4228
|
+
const justifyClasses = {
|
|
4229
|
+
start: "justify-start",
|
|
4230
|
+
center: "justify-center",
|
|
4231
|
+
end: "justify-end",
|
|
4232
|
+
between: "justify-between",
|
|
4233
|
+
around: "justify-around",
|
|
4234
|
+
evenly: "justify-evenly"
|
|
4235
|
+
};
|
|
4236
|
+
return /* @__PURE__ */ React34.createElement(
|
|
4237
|
+
"div",
|
|
4238
|
+
{
|
|
4239
|
+
ref,
|
|
4240
|
+
className: cn(
|
|
4241
|
+
"flex",
|
|
4242
|
+
directionClasses[direction] || directionClasses.vertical,
|
|
4243
|
+
spacingClasses[direction][spacing] || spacingClasses.vertical[4],
|
|
4244
|
+
alignClasses[align] || alignClasses.stretch,
|
|
4245
|
+
justifyClasses[justify] || justifyClasses.start,
|
|
4246
|
+
wrap && "flex-wrap",
|
|
4247
|
+
className
|
|
4248
|
+
),
|
|
4249
|
+
...props
|
|
4250
|
+
}
|
|
4251
|
+
);
|
|
4252
|
+
});
|
|
4253
|
+
Stack5.displayName = "Stack";
|
|
4254
|
+
var HStack = React34.forwardRef(({ ...props }, ref) => /* @__PURE__ */ React34.createElement(Stack5, { ref, direction: "horizontal", ...props }));
|
|
4255
|
+
HStack.displayName = "HStack";
|
|
4256
|
+
var VStack = React34.forwardRef(({ ...props }, ref) => /* @__PURE__ */ React34.createElement(Stack5, { ref, direction: "vertical", ...props }));
|
|
4257
|
+
VStack.displayName = "VStack";
|
|
4258
|
+
|
|
4259
|
+
// src/components/UI/switch.jsx
|
|
4260
|
+
import * as React35 from "react";
|
|
4261
|
+
import * as SwitchPrimitives from "@radix-ui/react-switch";
|
|
4262
|
+
var Switch = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React35.createElement(
|
|
4263
|
+
SwitchPrimitives.Root,
|
|
4264
|
+
{
|
|
4265
|
+
className: cn(
|
|
4266
|
+
"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
|
|
4267
|
+
className
|
|
4268
|
+
),
|
|
4269
|
+
...props,
|
|
4270
|
+
ref
|
|
4271
|
+
},
|
|
4272
|
+
/* @__PURE__ */ React35.createElement(
|
|
4273
|
+
SwitchPrimitives.Thumb,
|
|
4274
|
+
{
|
|
4275
|
+
className: cn(
|
|
4276
|
+
"pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0"
|
|
4277
|
+
)
|
|
4278
|
+
}
|
|
4279
|
+
)
|
|
4280
|
+
));
|
|
4281
|
+
Switch.displayName = SwitchPrimitives.Root.displayName;
|
|
4282
|
+
|
|
4283
|
+
// src/components/UI/table.jsx
|
|
4284
|
+
import * as React36 from "react";
|
|
4285
|
+
var Table = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React36.createElement("div", { className: "relative w-full overflow-auto" }, /* @__PURE__ */ React36.createElement(
|
|
4286
|
+
"table",
|
|
4287
|
+
{
|
|
4288
|
+
ref,
|
|
4289
|
+
className: cn("w-full caption-bottom text-sm", className),
|
|
4290
|
+
...props
|
|
4291
|
+
}
|
|
4292
|
+
)));
|
|
4293
|
+
Table.displayName = "Table";
|
|
4294
|
+
var TableHeader = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React36.createElement("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
|
|
4295
|
+
TableHeader.displayName = "TableHeader";
|
|
4296
|
+
var TableBody = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React36.createElement(
|
|
4297
|
+
"tbody",
|
|
4298
|
+
{
|
|
4299
|
+
ref,
|
|
4300
|
+
className: cn("[&_tr:last-child]:border-0", className),
|
|
4301
|
+
...props
|
|
4302
|
+
}
|
|
4303
|
+
));
|
|
4304
|
+
TableBody.displayName = "TableBody";
|
|
4305
|
+
var TableFooter = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React36.createElement(
|
|
4306
|
+
"tfoot",
|
|
4307
|
+
{
|
|
4308
|
+
ref,
|
|
4309
|
+
className: cn(
|
|
4310
|
+
"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",
|
|
4311
|
+
className
|
|
4312
|
+
),
|
|
4313
|
+
...props
|
|
4314
|
+
}
|
|
4315
|
+
));
|
|
4316
|
+
TableFooter.displayName = "TableFooter";
|
|
4317
|
+
var TableRow = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React36.createElement(
|
|
4318
|
+
"tr",
|
|
4319
|
+
{
|
|
4320
|
+
ref,
|
|
4321
|
+
className: cn(
|
|
4322
|
+
"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
|
|
4323
|
+
className
|
|
4324
|
+
),
|
|
4325
|
+
...props
|
|
4326
|
+
}
|
|
4327
|
+
));
|
|
4328
|
+
TableRow.displayName = "TableRow";
|
|
4329
|
+
var TableHead = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React36.createElement(
|
|
4330
|
+
"th",
|
|
4331
|
+
{
|
|
4332
|
+
ref,
|
|
4333
|
+
className: cn(
|
|
4334
|
+
"h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",
|
|
4335
|
+
className
|
|
4336
|
+
),
|
|
4337
|
+
...props
|
|
4338
|
+
}
|
|
4339
|
+
));
|
|
4340
|
+
TableHead.displayName = "TableHead";
|
|
4341
|
+
var TableCell = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React36.createElement(
|
|
4342
|
+
"td",
|
|
4343
|
+
{
|
|
4344
|
+
ref,
|
|
4345
|
+
className: cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className),
|
|
4346
|
+
...props
|
|
4347
|
+
}
|
|
4348
|
+
));
|
|
4349
|
+
TableCell.displayName = "TableCell";
|
|
4350
|
+
var TableCaption = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React36.createElement(
|
|
4351
|
+
"caption",
|
|
4352
|
+
{
|
|
4353
|
+
ref,
|
|
4354
|
+
className: cn("mt-4 text-sm text-muted-foreground", className),
|
|
4355
|
+
...props
|
|
4356
|
+
}
|
|
4357
|
+
));
|
|
4358
|
+
TableCaption.displayName = "TableCaption";
|
|
4359
|
+
|
|
4360
|
+
// src/components/UI/tabs.jsx
|
|
4361
|
+
import * as React37 from "react";
|
|
4362
|
+
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
4363
|
+
var Tabs = TabsPrimitive.Root;
|
|
4364
|
+
var TabsList = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React37.createElement(
|
|
4365
|
+
TabsPrimitive.List,
|
|
4366
|
+
{
|
|
4367
|
+
ref,
|
|
4368
|
+
className: cn(
|
|
4369
|
+
"inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",
|
|
4370
|
+
className
|
|
4371
|
+
),
|
|
4372
|
+
...props
|
|
4373
|
+
}
|
|
4374
|
+
));
|
|
4375
|
+
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
4376
|
+
var TabsTrigger = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React37.createElement(
|
|
4377
|
+
TabsPrimitive.Trigger,
|
|
4378
|
+
{
|
|
4379
|
+
ref,
|
|
4380
|
+
className: cn(
|
|
4381
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",
|
|
4382
|
+
className
|
|
4383
|
+
),
|
|
4384
|
+
...props
|
|
4385
|
+
}
|
|
4386
|
+
));
|
|
4387
|
+
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
4388
|
+
var TabsContent = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React37.createElement(
|
|
4389
|
+
TabsPrimitive.Content,
|
|
4390
|
+
{
|
|
4391
|
+
ref,
|
|
4392
|
+
className: cn(
|
|
4393
|
+
"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
4394
|
+
className
|
|
4395
|
+
),
|
|
4396
|
+
...props
|
|
4397
|
+
}
|
|
4398
|
+
));
|
|
4399
|
+
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
4400
|
+
|
|
4401
|
+
// src/components/UI/textarea.jsx
|
|
4402
|
+
import * as React38 from "react";
|
|
4403
|
+
var Textarea = React38.forwardRef(({ className, ...props }, ref) => {
|
|
4404
|
+
return /* @__PURE__ */ React38.createElement(
|
|
4405
|
+
"textarea",
|
|
4406
|
+
{
|
|
4407
|
+
className: cn(
|
|
4408
|
+
"flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
4409
|
+
className
|
|
4410
|
+
),
|
|
4411
|
+
ref,
|
|
4412
|
+
...props
|
|
4413
|
+
}
|
|
4414
|
+
);
|
|
4415
|
+
});
|
|
4416
|
+
Textarea.displayName = "Textarea";
|
|
4417
|
+
|
|
4418
|
+
// src/components/UI/toast.jsx
|
|
4419
|
+
import * as React39 from "react";
|
|
4420
|
+
import { Toaster as Sonner } from "sonner";
|
|
4421
|
+
var Toaster = ({ ...props }) => {
|
|
4422
|
+
return /* @__PURE__ */ React39.createElement(
|
|
4423
|
+
Sonner,
|
|
4424
|
+
{
|
|
4425
|
+
className: "toaster group",
|
|
4426
|
+
toastOptions: {
|
|
4427
|
+
classNames: {
|
|
4428
|
+
toast: "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
|
|
4429
|
+
description: "group-[.toast]:text-muted-foreground",
|
|
4430
|
+
actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
|
|
4431
|
+
cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"
|
|
4432
|
+
}
|
|
4433
|
+
},
|
|
4434
|
+
...props
|
|
4435
|
+
}
|
|
4436
|
+
);
|
|
4437
|
+
};
|
|
4438
|
+
|
|
4439
|
+
// src/components/UI/tooltip.jsx
|
|
4440
|
+
import * as React40 from "react";
|
|
4441
|
+
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
4442
|
+
var TooltipProvider = TooltipPrimitive.Provider;
|
|
4443
|
+
var Tooltip = TooltipPrimitive.Root;
|
|
4444
|
+
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
4445
|
+
var TooltipContent = React40.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ React40.createElement(
|
|
4446
|
+
TooltipPrimitive.Content,
|
|
4447
|
+
{
|
|
4448
|
+
ref,
|
|
4449
|
+
sideOffset,
|
|
4450
|
+
className: cn(
|
|
4451
|
+
"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md 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",
|
|
4452
|
+
className
|
|
4453
|
+
),
|
|
4454
|
+
...props
|
|
4455
|
+
}
|
|
4456
|
+
));
|
|
4457
|
+
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
4458
|
+
|
|
4459
|
+
// src/components/UI/typography.jsx
|
|
4460
|
+
import * as React41 from "react";
|
|
4461
|
+
import { cva as cva6 } from "class-variance-authority";
|
|
4462
|
+
var headingVariants = cva6("scroll-m-20 tracking-tight", {
|
|
4463
|
+
variants: {
|
|
4464
|
+
level: {
|
|
4465
|
+
h1: "text-4xl font-extrabold lg:text-5xl",
|
|
4466
|
+
h2: "text-3xl font-semibold",
|
|
4467
|
+
h3: "text-2xl font-semibold",
|
|
4468
|
+
h4: "text-xl font-semibold",
|
|
4469
|
+
h5: "text-lg font-semibold",
|
|
4470
|
+
h6: "text-base font-semibold"
|
|
4471
|
+
}
|
|
4472
|
+
},
|
|
4473
|
+
defaultVariants: {
|
|
4474
|
+
level: "h2"
|
|
4475
|
+
}
|
|
4476
|
+
});
|
|
4477
|
+
var Heading = React41.forwardRef(({ className, level = "h2", ...props }, ref) => {
|
|
4478
|
+
const Comp = level;
|
|
4479
|
+
return /* @__PURE__ */ React41.createElement(
|
|
4480
|
+
Comp,
|
|
4481
|
+
{
|
|
4482
|
+
ref,
|
|
4483
|
+
className: cn(headingVariants({ level, className })),
|
|
4484
|
+
...props
|
|
4485
|
+
}
|
|
4486
|
+
);
|
|
4487
|
+
});
|
|
4488
|
+
Heading.displayName = "Heading";
|
|
4489
|
+
var H1 = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
|
|
4490
|
+
"h1",
|
|
4491
|
+
{
|
|
4492
|
+
ref,
|
|
4493
|
+
className: cn("scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl", className),
|
|
4494
|
+
...props
|
|
4495
|
+
}
|
|
4496
|
+
));
|
|
4497
|
+
H1.displayName = "H1";
|
|
4498
|
+
var H2 = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
|
|
4499
|
+
"h2",
|
|
4500
|
+
{
|
|
4501
|
+
ref,
|
|
4502
|
+
className: cn("scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight first:mt-0", className),
|
|
4503
|
+
...props
|
|
4504
|
+
}
|
|
4505
|
+
));
|
|
4506
|
+
H2.displayName = "H2";
|
|
4507
|
+
var H3 = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
|
|
4508
|
+
"h3",
|
|
4509
|
+
{
|
|
4510
|
+
ref,
|
|
4511
|
+
className: cn("scroll-m-20 text-2xl font-semibold tracking-tight", className),
|
|
4512
|
+
...props
|
|
4513
|
+
}
|
|
4514
|
+
));
|
|
4515
|
+
H3.displayName = "H3";
|
|
4516
|
+
var H4 = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
|
|
4517
|
+
"h4",
|
|
3382
4518
|
{
|
|
3383
4519
|
ref,
|
|
3384
4520
|
className: cn("scroll-m-20 text-xl font-semibold tracking-tight", className),
|
|
@@ -3386,7 +4522,7 @@ var H4 = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ Re
|
|
|
3386
4522
|
}
|
|
3387
4523
|
));
|
|
3388
4524
|
H4.displayName = "H4";
|
|
3389
|
-
var P =
|
|
4525
|
+
var P = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
|
|
3390
4526
|
"p",
|
|
3391
4527
|
{
|
|
3392
4528
|
ref,
|
|
@@ -3395,7 +4531,7 @@ var P = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ Rea
|
|
|
3395
4531
|
}
|
|
3396
4532
|
));
|
|
3397
4533
|
P.displayName = "P";
|
|
3398
|
-
var Blockquote =
|
|
4534
|
+
var Blockquote = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
|
|
3399
4535
|
"blockquote",
|
|
3400
4536
|
{
|
|
3401
4537
|
ref,
|
|
@@ -3404,7 +4540,7 @@ var Blockquote = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
3404
4540
|
}
|
|
3405
4541
|
));
|
|
3406
4542
|
Blockquote.displayName = "Blockquote";
|
|
3407
|
-
var
|
|
4543
|
+
var List4 = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
|
|
3408
4544
|
"ul",
|
|
3409
4545
|
{
|
|
3410
4546
|
ref,
|
|
@@ -3412,8 +4548,8 @@ var List2 = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
3412
4548
|
...props
|
|
3413
4549
|
}
|
|
3414
4550
|
));
|
|
3415
|
-
|
|
3416
|
-
var InlineCode =
|
|
4551
|
+
List4.displayName = "List";
|
|
4552
|
+
var InlineCode = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
|
|
3417
4553
|
"code",
|
|
3418
4554
|
{
|
|
3419
4555
|
ref,
|
|
@@ -3425,7 +4561,7 @@ var InlineCode = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
3425
4561
|
}
|
|
3426
4562
|
));
|
|
3427
4563
|
InlineCode.displayName = "InlineCode";
|
|
3428
|
-
var Lead =
|
|
4564
|
+
var Lead = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
|
|
3429
4565
|
"p",
|
|
3430
4566
|
{
|
|
3431
4567
|
ref,
|
|
@@ -3434,7 +4570,7 @@ var Lead = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
3434
4570
|
}
|
|
3435
4571
|
));
|
|
3436
4572
|
Lead.displayName = "Lead";
|
|
3437
|
-
var Large =
|
|
4573
|
+
var Large = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
|
|
3438
4574
|
"div",
|
|
3439
4575
|
{
|
|
3440
4576
|
ref,
|
|
@@ -3443,7 +4579,7 @@ var Large = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
3443
4579
|
}
|
|
3444
4580
|
));
|
|
3445
4581
|
Large.displayName = "Large";
|
|
3446
|
-
var Small =
|
|
4582
|
+
var Small = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
|
|
3447
4583
|
"small",
|
|
3448
4584
|
{
|
|
3449
4585
|
ref,
|
|
@@ -3452,7 +4588,7 @@ var Small = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
3452
4588
|
}
|
|
3453
4589
|
));
|
|
3454
4590
|
Small.displayName = "Small";
|
|
3455
|
-
var Muted =
|
|
4591
|
+
var Muted = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
|
|
3456
4592
|
"p",
|
|
3457
4593
|
{
|
|
3458
4594
|
ref,
|
|
@@ -3463,24 +4599,24 @@ var Muted = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
3463
4599
|
Muted.displayName = "Muted";
|
|
3464
4600
|
|
|
3465
4601
|
// src/components/Notifications/NotificationManager.js
|
|
3466
|
-
import
|
|
4602
|
+
import React42 from "react";
|
|
3467
4603
|
import {
|
|
3468
4604
|
Box as Box8,
|
|
3469
4605
|
Snackbar,
|
|
3470
|
-
Alert,
|
|
3471
|
-
AlertTitle,
|
|
4606
|
+
Alert as Alert2,
|
|
4607
|
+
AlertTitle as AlertTitle2,
|
|
3472
4608
|
IconButton as IconButton2,
|
|
3473
4609
|
Button as Button3,
|
|
3474
4610
|
LinearProgress,
|
|
3475
4611
|
Typography as Typography6,
|
|
3476
4612
|
Slide,
|
|
3477
4613
|
Fade,
|
|
3478
|
-
Stack as
|
|
4614
|
+
Stack as Stack6,
|
|
3479
4615
|
Paper as Paper2,
|
|
3480
4616
|
Chip
|
|
3481
4617
|
} from "@mui/material";
|
|
3482
4618
|
import {
|
|
3483
|
-
Close,
|
|
4619
|
+
Close as Close3,
|
|
3484
4620
|
CheckCircle,
|
|
3485
4621
|
Error as Error2,
|
|
3486
4622
|
Warning,
|
|
@@ -3496,12 +4632,12 @@ var NotificationItem = ({ notification, onClose, onAction }) => {
|
|
|
3496
4632
|
}
|
|
3497
4633
|
const getSeverityIcon = (type) => {
|
|
3498
4634
|
const icons = {
|
|
3499
|
-
success: /* @__PURE__ */
|
|
3500
|
-
error: /* @__PURE__ */
|
|
3501
|
-
warning: /* @__PURE__ */
|
|
3502
|
-
info: /* @__PURE__ */
|
|
4635
|
+
success: /* @__PURE__ */ React42.createElement(CheckCircle, null),
|
|
4636
|
+
error: /* @__PURE__ */ React42.createElement(Error2, null),
|
|
4637
|
+
warning: /* @__PURE__ */ React42.createElement(Warning, null),
|
|
4638
|
+
info: /* @__PURE__ */ React42.createElement(Info, null)
|
|
3503
4639
|
};
|
|
3504
|
-
return icons[type] || /* @__PURE__ */
|
|
4640
|
+
return icons[type] || /* @__PURE__ */ React42.createElement(Info, null);
|
|
3505
4641
|
};
|
|
3506
4642
|
const handleActionClick = (action) => {
|
|
3507
4643
|
if (action && action.onClick) {
|
|
@@ -3516,12 +4652,12 @@ var NotificationItem = ({ notification, onClose, onAction }) => {
|
|
|
3516
4652
|
onClose();
|
|
3517
4653
|
}
|
|
3518
4654
|
};
|
|
3519
|
-
return /* @__PURE__ */
|
|
3520
|
-
|
|
4655
|
+
return /* @__PURE__ */ React42.createElement(
|
|
4656
|
+
Alert2,
|
|
3521
4657
|
{
|
|
3522
4658
|
severity: notification.type,
|
|
3523
4659
|
icon: getSeverityIcon(notification.type),
|
|
3524
|
-
action: /* @__PURE__ */
|
|
4660
|
+
action: /* @__PURE__ */ React42.createElement(Box8, { display: "flex", alignItems: "center", gap: 1 }, (_a = notification.actions) == null ? void 0 : _a.map((action, index) => /* @__PURE__ */ React42.createElement(
|
|
3525
4661
|
Button3,
|
|
3526
4662
|
{
|
|
3527
4663
|
key: index,
|
|
@@ -3537,14 +4673,14 @@ var NotificationItem = ({ notification, onClose, onAction }) => {
|
|
|
3537
4673
|
}
|
|
3538
4674
|
},
|
|
3539
4675
|
action.label
|
|
3540
|
-
)), typeof notification.progress === "number" && /* @__PURE__ */
|
|
4676
|
+
)), typeof notification.progress === "number" && /* @__PURE__ */ React42.createElement(Box8, { sx: { minWidth: 120 } }, /* @__PURE__ */ React42.createElement(
|
|
3541
4677
|
LinearProgress,
|
|
3542
4678
|
{
|
|
3543
4679
|
variant: "determinate",
|
|
3544
4680
|
value: notification.progress,
|
|
3545
4681
|
sx: { height: 6, borderRadius: 3 }
|
|
3546
4682
|
}
|
|
3547
|
-
), /* @__PURE__ */
|
|
4683
|
+
), /* @__PURE__ */ React42.createElement(Typography6, { variant: "caption", sx: { fontSize: "0.7rem" } }, Math.round(notification.progress), "%")), notification.timestamp && /* @__PURE__ */ React42.createElement(
|
|
3548
4684
|
Chip,
|
|
3549
4685
|
{
|
|
3550
4686
|
label: (() => {
|
|
@@ -3562,14 +4698,14 @@ var NotificationItem = ({ notification, onClose, onAction }) => {
|
|
|
3562
4698
|
opacity: 0.7
|
|
3563
4699
|
}
|
|
3564
4700
|
}
|
|
3565
|
-
), notification.dismissible && /* @__PURE__ */
|
|
4701
|
+
), notification.dismissible && /* @__PURE__ */ React42.createElement(
|
|
3566
4702
|
IconButton2,
|
|
3567
4703
|
{
|
|
3568
4704
|
size: "small",
|
|
3569
4705
|
onClick: safeOnClose,
|
|
3570
4706
|
sx: { ml: 1 }
|
|
3571
4707
|
},
|
|
3572
|
-
/* @__PURE__ */
|
|
4708
|
+
/* @__PURE__ */ React42.createElement(Close3, { fontSize: "small" })
|
|
3573
4709
|
)),
|
|
3574
4710
|
sx: {
|
|
3575
4711
|
mb: 1,
|
|
@@ -3579,8 +4715,8 @@ var NotificationItem = ({ notification, onClose, onAction }) => {
|
|
|
3579
4715
|
}
|
|
3580
4716
|
}
|
|
3581
4717
|
},
|
|
3582
|
-
notification.title && /* @__PURE__ */
|
|
3583
|
-
/* @__PURE__ */
|
|
4718
|
+
notification.title && /* @__PURE__ */ React42.createElement(AlertTitle2, { sx: { fontSize: "0.875rem", mb: 0.5 } }, notification.title),
|
|
4719
|
+
/* @__PURE__ */ React42.createElement(Typography6, { variant: "body2", sx: { fontSize: "0.8rem" } }, notification.message)
|
|
3584
4720
|
);
|
|
3585
4721
|
};
|
|
3586
4722
|
var NotificationManager = () => {
|
|
@@ -3591,7 +4727,7 @@ var NotificationManager = () => {
|
|
|
3591
4727
|
if (notifications.length === 0) {
|
|
3592
4728
|
return null;
|
|
3593
4729
|
}
|
|
3594
|
-
return /* @__PURE__ */
|
|
4730
|
+
return /* @__PURE__ */ React42.createElement(React42.Fragment, null, persistentNotifications.length > 0 && /* @__PURE__ */ React42.createElement(
|
|
3595
4731
|
Box8,
|
|
3596
4732
|
{
|
|
3597
4733
|
sx: {
|
|
@@ -3605,7 +4741,7 @@ var NotificationManager = () => {
|
|
|
3605
4741
|
overflow: "auto"
|
|
3606
4742
|
}
|
|
3607
4743
|
},
|
|
3608
|
-
/* @__PURE__ */
|
|
4744
|
+
/* @__PURE__ */ React42.createElement(Stack6, { spacing: 1 }, persistentNotifications.length > 1 && /* @__PURE__ */ React42.createElement(Box8, { display: "flex", justifyContent: "flex-end", mb: 1 }, /* @__PURE__ */ React42.createElement(
|
|
3609
4745
|
Button3,
|
|
3610
4746
|
{
|
|
3611
4747
|
size: "small",
|
|
@@ -3618,7 +4754,7 @@ var NotificationManager = () => {
|
|
|
3618
4754
|
")"
|
|
3619
4755
|
)), persistentNotifications.map((notification) => {
|
|
3620
4756
|
if (!notification || !notification.id) return null;
|
|
3621
|
-
return /* @__PURE__ */
|
|
4757
|
+
return /* @__PURE__ */ React42.createElement(Fade, { key: `notification-${notification.id}`, in: true, timeout: 300 }, /* @__PURE__ */ React42.createElement(Box8, null, /* @__PURE__ */ React42.createElement(
|
|
3622
4758
|
NotificationItem,
|
|
3623
4759
|
{
|
|
3624
4760
|
notification,
|
|
@@ -3626,7 +4762,7 @@ var NotificationManager = () => {
|
|
|
3626
4762
|
}
|
|
3627
4763
|
)));
|
|
3628
4764
|
}))
|
|
3629
|
-
), latestTemporary && /* @__PURE__ */
|
|
4765
|
+
), latestTemporary && /* @__PURE__ */ React42.createElement(
|
|
3630
4766
|
Snackbar,
|
|
3631
4767
|
{
|
|
3632
4768
|
key: `temp-notification-${latestTemporary.id}`,
|
|
@@ -3642,7 +4778,7 @@ var NotificationManager = () => {
|
|
|
3642
4778
|
}
|
|
3643
4779
|
}
|
|
3644
4780
|
},
|
|
3645
|
-
/* @__PURE__ */
|
|
4781
|
+
/* @__PURE__ */ React42.createElement(Box8, null, /* @__PURE__ */ React42.createElement(
|
|
3646
4782
|
NotificationItem,
|
|
3647
4783
|
{
|
|
3648
4784
|
notification: latestTemporary,
|
|
@@ -3654,24 +4790,24 @@ var NotificationManager = () => {
|
|
|
3654
4790
|
var NotificationManager_default = NotificationManager;
|
|
3655
4791
|
|
|
3656
4792
|
// src/components/Notifications/NotificationBell.js
|
|
3657
|
-
import
|
|
4793
|
+
import React43, { useState as useState6, useEffect as useEffect5, useCallback as useCallback2 } from "react";
|
|
3658
4794
|
import {
|
|
3659
4795
|
IconButton as IconButton3,
|
|
3660
|
-
Badge as
|
|
4796
|
+
Badge as Badge3,
|
|
3661
4797
|
Menu as Menu2,
|
|
3662
4798
|
MenuItem as MenuItem2,
|
|
3663
4799
|
Box as Box9,
|
|
3664
4800
|
Typography as Typography7,
|
|
3665
4801
|
Divider as Divider2,
|
|
3666
|
-
Avatar as
|
|
3667
|
-
ListItemText as
|
|
4802
|
+
Avatar as Avatar3,
|
|
4803
|
+
ListItemText as ListItemText3,
|
|
3668
4804
|
ListItemAvatar,
|
|
3669
|
-
List as
|
|
3670
|
-
ListItem as
|
|
4805
|
+
List as List5,
|
|
4806
|
+
ListItem as ListItem3,
|
|
3671
4807
|
Button as Button4,
|
|
3672
4808
|
Chip as Chip2,
|
|
3673
4809
|
CircularProgress as CircularProgress3,
|
|
3674
|
-
Alert as
|
|
4810
|
+
Alert as Alert3
|
|
3675
4811
|
} from "@mui/material";
|
|
3676
4812
|
import {
|
|
3677
4813
|
Notifications as NotificationsIcon,
|
|
@@ -3685,7 +4821,7 @@ import {
|
|
|
3685
4821
|
Payment,
|
|
3686
4822
|
Home,
|
|
3687
4823
|
Build,
|
|
3688
|
-
Close as
|
|
4824
|
+
Close as Close4,
|
|
3689
4825
|
DoneAll,
|
|
3690
4826
|
Settings as SettingsIcon
|
|
3691
4827
|
} from "@mui/icons-material";
|
|
@@ -3819,30 +4955,30 @@ var NotificationBell = ({ api: api2, useSocket: useSocket2, useAuth: useAuth2 })
|
|
|
3819
4955
|
case "TICKET_RESOLVED":
|
|
3820
4956
|
case "TICKET_COMMENTED":
|
|
3821
4957
|
case "TICKET_STATUS_CHANGED":
|
|
3822
|
-
return /* @__PURE__ */
|
|
4958
|
+
return /* @__PURE__ */ React43.createElement(Assignment, { ...iconProps });
|
|
3823
4959
|
case "MESSAGE_RECEIVED":
|
|
3824
4960
|
case "MENTION_RECEIVED":
|
|
3825
|
-
return /* @__PURE__ */
|
|
4961
|
+
return /* @__PURE__ */ React43.createElement(Message, { ...iconProps });
|
|
3826
4962
|
case "PAYMENT_DUE":
|
|
3827
4963
|
case "PAYMENT_OVERDUE":
|
|
3828
|
-
return /* @__PURE__ */
|
|
4964
|
+
return /* @__PURE__ */ React43.createElement(Payment, { ...iconProps });
|
|
3829
4965
|
case "PROPERTY_UPDATED":
|
|
3830
4966
|
case "LEASE_EXPIRING":
|
|
3831
|
-
return /* @__PURE__ */
|
|
4967
|
+
return /* @__PURE__ */ React43.createElement(Home, { ...iconProps });
|
|
3832
4968
|
case "APPLIANCE_MAINTENANCE_DUE":
|
|
3833
4969
|
case "MAINTENANCE_SCHEDULED":
|
|
3834
|
-
return /* @__PURE__ */
|
|
4970
|
+
return /* @__PURE__ */ React43.createElement(Build, { ...iconProps });
|
|
3835
4971
|
case "SYSTEM_ALERT":
|
|
3836
|
-
return /* @__PURE__ */
|
|
4972
|
+
return /* @__PURE__ */ React43.createElement(Warning2, { ...iconProps });
|
|
3837
4973
|
case "SUCCESS":
|
|
3838
|
-
return /* @__PURE__ */
|
|
4974
|
+
return /* @__PURE__ */ React43.createElement(CheckCircle2, { ...iconProps });
|
|
3839
4975
|
case "ERROR":
|
|
3840
|
-
return /* @__PURE__ */
|
|
4976
|
+
return /* @__PURE__ */ React43.createElement(ErrorIcon, { ...iconProps });
|
|
3841
4977
|
case "WARNING":
|
|
3842
|
-
return /* @__PURE__ */
|
|
4978
|
+
return /* @__PURE__ */ React43.createElement(Warning2, { ...iconProps });
|
|
3843
4979
|
case "INFO":
|
|
3844
4980
|
default:
|
|
3845
|
-
return /* @__PURE__ */
|
|
4981
|
+
return /* @__PURE__ */ React43.createElement(Info2, { ...iconProps });
|
|
3846
4982
|
}
|
|
3847
4983
|
};
|
|
3848
4984
|
const getNotificationColor = (type) => {
|
|
@@ -3857,7 +4993,7 @@ var NotificationBell = ({ api: api2, useSocket: useSocket2, useAuth: useAuth2 })
|
|
|
3857
4993
|
HIGH: "warning",
|
|
3858
4994
|
URGENT: "error"
|
|
3859
4995
|
};
|
|
3860
|
-
return /* @__PURE__ */
|
|
4996
|
+
return /* @__PURE__ */ React43.createElement(
|
|
3861
4997
|
Chip2,
|
|
3862
4998
|
{
|
|
3863
4999
|
label: priority,
|
|
@@ -3867,7 +5003,7 @@ var NotificationBell = ({ api: api2, useSocket: useSocket2, useAuth: useAuth2 })
|
|
|
3867
5003
|
}
|
|
3868
5004
|
);
|
|
3869
5005
|
};
|
|
3870
|
-
return /* @__PURE__ */
|
|
5006
|
+
return /* @__PURE__ */ React43.createElement(React43.Fragment, null, /* @__PURE__ */ React43.createElement(
|
|
3871
5007
|
IconButton3,
|
|
3872
5008
|
{
|
|
3873
5009
|
color: "inherit",
|
|
@@ -3879,16 +5015,16 @@ var NotificationBell = ({ api: api2, useSocket: useSocket2, useAuth: useAuth2 })
|
|
|
3879
5015
|
}
|
|
3880
5016
|
}
|
|
3881
5017
|
},
|
|
3882
|
-
/* @__PURE__ */
|
|
3883
|
-
|
|
5018
|
+
/* @__PURE__ */ React43.createElement(
|
|
5019
|
+
Badge3,
|
|
3884
5020
|
{
|
|
3885
5021
|
badgeContent: unreadCount,
|
|
3886
5022
|
color: "error",
|
|
3887
5023
|
max: 99
|
|
3888
5024
|
},
|
|
3889
|
-
unreadCount > 0 ? /* @__PURE__ */
|
|
5025
|
+
unreadCount > 0 ? /* @__PURE__ */ React43.createElement(NotificationsIcon, null) : /* @__PURE__ */ React43.createElement(NotificationsNone, null)
|
|
3890
5026
|
)
|
|
3891
|
-
), /* @__PURE__ */
|
|
5027
|
+
), /* @__PURE__ */ React43.createElement(
|
|
3892
5028
|
Menu2,
|
|
3893
5029
|
{
|
|
3894
5030
|
anchorEl,
|
|
@@ -3906,7 +5042,7 @@ var NotificationBell = ({ api: api2, useSocket: useSocket2, useAuth: useAuth2 })
|
|
|
3906
5042
|
transformOrigin: { horizontal: "right", vertical: "top" },
|
|
3907
5043
|
anchorOrigin: { horizontal: "right", vertical: "bottom" }
|
|
3908
5044
|
},
|
|
3909
|
-
/* @__PURE__ */
|
|
5045
|
+
/* @__PURE__ */ React43.createElement(
|
|
3910
5046
|
Box9,
|
|
3911
5047
|
{
|
|
3912
5048
|
sx: {
|
|
@@ -3919,7 +5055,7 @@ var NotificationBell = ({ api: api2, useSocket: useSocket2, useAuth: useAuth2 })
|
|
|
3919
5055
|
borderColor: "divider"
|
|
3920
5056
|
}
|
|
3921
5057
|
},
|
|
3922
|
-
/* @__PURE__ */
|
|
5058
|
+
/* @__PURE__ */ React43.createElement(Box9, { sx: { display: "flex", alignItems: "center", gap: 1 } }, /* @__PURE__ */ React43.createElement(NotificationsIcon, { color: "primary" }), /* @__PURE__ */ React43.createElement(Typography7, { variant: "h6", sx: { fontWeight: 600 } }, "Notifications"), unreadCount > 0 && /* @__PURE__ */ React43.createElement(
|
|
3923
5059
|
Chip2,
|
|
3924
5060
|
{
|
|
3925
5061
|
label: unreadCount,
|
|
@@ -3928,19 +5064,19 @@ var NotificationBell = ({ api: api2, useSocket: useSocket2, useAuth: useAuth2 })
|
|
|
3928
5064
|
sx: { height: 22, fontSize: "0.75rem" }
|
|
3929
5065
|
}
|
|
3930
5066
|
)),
|
|
3931
|
-
/* @__PURE__ */
|
|
5067
|
+
/* @__PURE__ */ React43.createElement(Box9, null, unreadCount > 0 && /* @__PURE__ */ React43.createElement(
|
|
3932
5068
|
Button4,
|
|
3933
5069
|
{
|
|
3934
5070
|
size: "small",
|
|
3935
|
-
startIcon: /* @__PURE__ */
|
|
5071
|
+
startIcon: /* @__PURE__ */ React43.createElement(DoneAll, null),
|
|
3936
5072
|
onClick: handleMarkAllAsRead,
|
|
3937
5073
|
sx: { textTransform: "none", fontSize: "0.75rem" }
|
|
3938
5074
|
},
|
|
3939
5075
|
"Mark all read"
|
|
3940
|
-
), /* @__PURE__ */
|
|
5076
|
+
), /* @__PURE__ */ React43.createElement(IconButton3, { size: "small", onClick: handleClose }, /* @__PURE__ */ React43.createElement(Close4, { fontSize: "small" })))
|
|
3941
5077
|
),
|
|
3942
|
-
error && /* @__PURE__ */
|
|
3943
|
-
/* @__PURE__ */
|
|
5078
|
+
error && /* @__PURE__ */ React43.createElement(Alert3, { severity: "error", sx: { m: 2 } }, error),
|
|
5079
|
+
/* @__PURE__ */ React43.createElement(
|
|
3944
5080
|
Box9,
|
|
3945
5081
|
{
|
|
3946
5082
|
sx: {
|
|
@@ -3949,7 +5085,7 @@ var NotificationBell = ({ api: api2, useSocket: useSocket2, useAuth: useAuth2 })
|
|
|
3949
5085
|
maxHeight: 450
|
|
3950
5086
|
}
|
|
3951
5087
|
},
|
|
3952
|
-
loading && notifications.length === 0 ? /* @__PURE__ */
|
|
5088
|
+
loading && notifications.length === 0 ? /* @__PURE__ */ React43.createElement(Box9, { sx: { display: "flex", justifyContent: "center", p: 4 } }, /* @__PURE__ */ React43.createElement(CircularProgress3, { size: 32 })) : notifications.length === 0 ? /* @__PURE__ */ React43.createElement(
|
|
3953
5089
|
Box9,
|
|
3954
5090
|
{
|
|
3955
5091
|
sx: {
|
|
@@ -3961,15 +5097,15 @@ var NotificationBell = ({ api: api2, useSocket: useSocket2, useAuth: useAuth2 })
|
|
|
3961
5097
|
textAlign: "center"
|
|
3962
5098
|
}
|
|
3963
5099
|
},
|
|
3964
|
-
/* @__PURE__ */
|
|
3965
|
-
/* @__PURE__ */
|
|
3966
|
-
/* @__PURE__ */
|
|
3967
|
-
) : /* @__PURE__ */
|
|
5100
|
+
/* @__PURE__ */ React43.createElement(NotificationsNone, { sx: { fontSize: 64, color: "text.secondary", mb: 2 } }),
|
|
5101
|
+
/* @__PURE__ */ React43.createElement(Typography7, { variant: "body1", color: "text.secondary", sx: { fontWeight: 500 } }, "No notifications yet"),
|
|
5102
|
+
/* @__PURE__ */ React43.createElement(Typography7, { variant: "body2", color: "text.secondary" }, "You're all caught up!")
|
|
5103
|
+
) : /* @__PURE__ */ React43.createElement(List5, { sx: { p: 0 } }, notifications.map((notification, index) => {
|
|
3968
5104
|
const isRead = notification.is_read || notification.read;
|
|
3969
5105
|
const notifId = notification.id || notification._id;
|
|
3970
5106
|
const createdAt = notification.created_at || notification.createdAt;
|
|
3971
|
-
return /* @__PURE__ */
|
|
3972
|
-
|
|
5107
|
+
return /* @__PURE__ */ React43.createElement(React43.Fragment, { key: notifId }, /* @__PURE__ */ React43.createElement(
|
|
5108
|
+
ListItem3,
|
|
3973
5109
|
{
|
|
3974
5110
|
button: true,
|
|
3975
5111
|
onClick: () => handleNotificationClick(notification),
|
|
@@ -3985,8 +5121,8 @@ var NotificationBell = ({ api: api2, useSocket: useSocket2, useAuth: useAuth2 })
|
|
|
3985
5121
|
transition: "all 0.2s"
|
|
3986
5122
|
}
|
|
3987
5123
|
},
|
|
3988
|
-
/* @__PURE__ */
|
|
3989
|
-
|
|
5124
|
+
/* @__PURE__ */ React43.createElement(ListItemAvatar, null, /* @__PURE__ */ React43.createElement(
|
|
5125
|
+
Avatar3,
|
|
3990
5126
|
{
|
|
3991
5127
|
sx: {
|
|
3992
5128
|
bgcolor: isRead ? "grey.300" : getNotificationColor(notification.type),
|
|
@@ -3996,10 +5132,10 @@ var NotificationBell = ({ api: api2, useSocket: useSocket2, useAuth: useAuth2 })
|
|
|
3996
5132
|
},
|
|
3997
5133
|
getNotificationIcon(notification.type)
|
|
3998
5134
|
)),
|
|
3999
|
-
/* @__PURE__ */
|
|
4000
|
-
|
|
5135
|
+
/* @__PURE__ */ React43.createElement(
|
|
5136
|
+
ListItemText3,
|
|
4001
5137
|
{
|
|
4002
|
-
primary: /* @__PURE__ */
|
|
5138
|
+
primary: /* @__PURE__ */ React43.createElement(Box9, { sx: { display: "flex", alignItems: "center", mb: 0.5 } }, /* @__PURE__ */ React43.createElement(
|
|
4003
5139
|
Typography7,
|
|
4004
5140
|
{
|
|
4005
5141
|
variant: "body2",
|
|
@@ -4010,7 +5146,7 @@ var NotificationBell = ({ api: api2, useSocket: useSocket2, useAuth: useAuth2 })
|
|
|
4010
5146
|
},
|
|
4011
5147
|
notification.title
|
|
4012
5148
|
), getPriorityChip(notification.priority)),
|
|
4013
|
-
secondary: /* @__PURE__ */
|
|
5149
|
+
secondary: /* @__PURE__ */ React43.createElement(React43.Fragment, null, /* @__PURE__ */ React43.createElement(
|
|
4014
5150
|
Typography7,
|
|
4015
5151
|
{
|
|
4016
5152
|
variant: "body2",
|
|
@@ -4024,12 +5160,12 @@ var NotificationBell = ({ api: api2, useSocket: useSocket2, useAuth: useAuth2 })
|
|
|
4024
5160
|
}
|
|
4025
5161
|
},
|
|
4026
5162
|
notification.message
|
|
4027
|
-
), /* @__PURE__ */
|
|
5163
|
+
), /* @__PURE__ */ React43.createElement(Typography7, { variant: "caption", color: "text.secondary" }, formatDistanceToNow(new Date(createdAt), { addSuffix: true })))
|
|
4028
5164
|
}
|
|
4029
5165
|
)
|
|
4030
|
-
), index < notifications.length - 1 && /* @__PURE__ */
|
|
5166
|
+
), index < notifications.length - 1 && /* @__PURE__ */ React43.createElement(Divider2, null));
|
|
4031
5167
|
})),
|
|
4032
|
-
hasMore && notifications.length > 0 && /* @__PURE__ */
|
|
5168
|
+
hasMore && notifications.length > 0 && /* @__PURE__ */ React43.createElement(Box9, { sx: { p: 2, textAlign: "center", borderTop: "1px solid", borderColor: "divider" } }, /* @__PURE__ */ React43.createElement(
|
|
4033
5169
|
Button4,
|
|
4034
5170
|
{
|
|
4035
5171
|
onClick: handleLoadMore,
|
|
@@ -4040,7 +5176,7 @@ var NotificationBell = ({ api: api2, useSocket: useSocket2, useAuth: useAuth2 })
|
|
|
4040
5176
|
loading ? "Loading..." : "Load more"
|
|
4041
5177
|
))
|
|
4042
5178
|
),
|
|
4043
|
-
/* @__PURE__ */
|
|
5179
|
+
/* @__PURE__ */ React43.createElement(
|
|
4044
5180
|
Box9,
|
|
4045
5181
|
{
|
|
4046
5182
|
sx: {
|
|
@@ -4050,11 +5186,11 @@ var NotificationBell = ({ api: api2, useSocket: useSocket2, useAuth: useAuth2 })
|
|
|
4050
5186
|
textAlign: "center"
|
|
4051
5187
|
}
|
|
4052
5188
|
},
|
|
4053
|
-
/* @__PURE__ */
|
|
5189
|
+
/* @__PURE__ */ React43.createElement(
|
|
4054
5190
|
Button4,
|
|
4055
5191
|
{
|
|
4056
5192
|
size: "small",
|
|
4057
|
-
startIcon: /* @__PURE__ */
|
|
5193
|
+
startIcon: /* @__PURE__ */ React43.createElement(SettingsIcon, null),
|
|
4058
5194
|
onClick: () => {
|
|
4059
5195
|
window.location.href = "/settings?tab=general";
|
|
4060
5196
|
handleClose();
|
|
@@ -4069,22 +5205,22 @@ var NotificationBell = ({ api: api2, useSocket: useSocket2, useAuth: useAuth2 })
|
|
|
4069
5205
|
var NotificationBell_default = NotificationBell;
|
|
4070
5206
|
|
|
4071
5207
|
// src/components/ErrorBoundary/ErrorBoundary.js
|
|
4072
|
-
import
|
|
5208
|
+
import React44 from "react";
|
|
4073
5209
|
import {
|
|
4074
5210
|
Box as Box10,
|
|
4075
5211
|
Typography as Typography8,
|
|
4076
5212
|
Button as Button5,
|
|
4077
5213
|
Card as Card3,
|
|
4078
5214
|
CardContent as CardContent3,
|
|
4079
|
-
Alert as
|
|
4080
|
-
Stack as
|
|
5215
|
+
Alert as Alert4,
|
|
5216
|
+
Stack as Stack7
|
|
4081
5217
|
} from "@mui/material";
|
|
4082
5218
|
import {
|
|
4083
5219
|
Refresh as Refresh2,
|
|
4084
5220
|
BugReport,
|
|
4085
5221
|
Home as Home2
|
|
4086
5222
|
} from "@mui/icons-material";
|
|
4087
|
-
var ErrorBoundary = class extends
|
|
5223
|
+
var ErrorBoundary = class extends React44.Component {
|
|
4088
5224
|
constructor(props) {
|
|
4089
5225
|
super(props);
|
|
4090
5226
|
this.state = {
|
|
@@ -4125,7 +5261,7 @@ var ErrorBoundary = class extends React20.Component {
|
|
|
4125
5261
|
if (this.state.hasError) {
|
|
4126
5262
|
const isNavigationError = (_b = (_a = this.state.error) == null ? void 0 : _a.message) == null ? void 0 : _b.includes("getBoundingClientRect");
|
|
4127
5263
|
const isDOMError = ((_d = (_c = this.state.error) == null ? void 0 : _c.message) == null ? void 0 : _d.includes("null")) || ((_f = (_e = this.state.error) == null ? void 0 : _e.message) == null ? void 0 : _f.includes("undefined"));
|
|
4128
|
-
return /* @__PURE__ */
|
|
5264
|
+
return /* @__PURE__ */ React44.createElement(
|
|
4129
5265
|
Box10,
|
|
4130
5266
|
{
|
|
4131
5267
|
sx: {
|
|
@@ -4137,32 +5273,32 @@ var ErrorBoundary = class extends React20.Component {
|
|
|
4137
5273
|
p: 3
|
|
4138
5274
|
}
|
|
4139
5275
|
},
|
|
4140
|
-
/* @__PURE__ */
|
|
5276
|
+
/* @__PURE__ */ React44.createElement(Card3, { sx: { maxWidth: 600, width: "100%" } }, /* @__PURE__ */ React44.createElement(CardContent3, null, /* @__PURE__ */ React44.createElement(Stack7, { spacing: 3, alignItems: "center" }, /* @__PURE__ */ React44.createElement(BugReport, { sx: { fontSize: 64, color: "error.main" } }), /* @__PURE__ */ React44.createElement(Typography8, { variant: "h5", component: "h2", textAlign: "center" }, "Oops! Something went wrong"), /* @__PURE__ */ React44.createElement(Alert4, { severity: "error", sx: { width: "100%" } }, /* @__PURE__ */ React44.createElement(Typography8, { variant: "body2" }, isNavigationError && /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement("strong", null, "UI Component Error:"), " A component tried to access an element before it was ready. This is usually temporary."), isDOMError && !isNavigationError && /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement("strong", null, "DOM Error:"), " A component couldn't find an expected element. This might be due to rapid state changes."), !isNavigationError && !isDOMError && /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement("strong", null, "Application Error:"), " An unexpected error occurred while rendering the component."))), process.env.NODE_ENV === "development" && this.state.error && /* @__PURE__ */ React44.createElement(Alert4, { severity: "warning", sx: { width: "100%" } }, /* @__PURE__ */ React44.createElement(Typography8, { variant: "body2", component: "div" }, /* @__PURE__ */ React44.createElement("strong", null, "Debug Info:"), /* @__PURE__ */ React44.createElement("br", null), /* @__PURE__ */ React44.createElement("code", { style: { fontSize: "0.75rem", wordBreak: "break-word" } }, this.state.error.toString()))), /* @__PURE__ */ React44.createElement(Stack7, { direction: "row", spacing: 2 }, /* @__PURE__ */ React44.createElement(
|
|
4141
5277
|
Button5,
|
|
4142
5278
|
{
|
|
4143
5279
|
variant: "contained",
|
|
4144
|
-
startIcon: /* @__PURE__ */
|
|
5280
|
+
startIcon: /* @__PURE__ */ React44.createElement(Refresh2, null),
|
|
4145
5281
|
onClick: this.handleRetry,
|
|
4146
5282
|
color: "primary"
|
|
4147
5283
|
},
|
|
4148
5284
|
"Try Again"
|
|
4149
|
-
), /* @__PURE__ */
|
|
5285
|
+
), /* @__PURE__ */ React44.createElement(
|
|
4150
5286
|
Button5,
|
|
4151
5287
|
{
|
|
4152
5288
|
variant: "outlined",
|
|
4153
|
-
startIcon: /* @__PURE__ */
|
|
5289
|
+
startIcon: /* @__PURE__ */ React44.createElement(Refresh2, null),
|
|
4154
5290
|
onClick: this.handleReload
|
|
4155
5291
|
},
|
|
4156
5292
|
"Reload Page"
|
|
4157
|
-
), this.props.onNavigateHome && /* @__PURE__ */
|
|
5293
|
+
), this.props.onNavigateHome && /* @__PURE__ */ React44.createElement(
|
|
4158
5294
|
Button5,
|
|
4159
5295
|
{
|
|
4160
5296
|
variant: "outlined",
|
|
4161
|
-
startIcon: /* @__PURE__ */
|
|
5297
|
+
startIcon: /* @__PURE__ */ React44.createElement(Home2, null),
|
|
4162
5298
|
onClick: this.props.onNavigateHome
|
|
4163
5299
|
},
|
|
4164
5300
|
"Go Home"
|
|
4165
|
-
)), /* @__PURE__ */
|
|
5301
|
+
)), /* @__PURE__ */ React44.createElement(Typography8, { variant: "body2", color: "text.secondary", textAlign: "center" }, "If this problem persists, try refreshing the page or clearing your browser cache. The error has been logged for debugging."))))
|
|
4166
5302
|
);
|
|
4167
5303
|
}
|
|
4168
5304
|
return this.props.children;
|
|
@@ -4171,7 +5307,7 @@ var ErrorBoundary = class extends React20.Component {
|
|
|
4171
5307
|
var ErrorBoundary_default = ErrorBoundary;
|
|
4172
5308
|
|
|
4173
5309
|
// src/contexts/SocketContext.js
|
|
4174
|
-
import
|
|
5310
|
+
import React45, { createContext as createContext5, useContext as useContext5, useEffect as useEffect6, useState as useState7 } from "react";
|
|
4175
5311
|
import { io } from "socket.io-client";
|
|
4176
5312
|
var SocketContext = createContext5();
|
|
4177
5313
|
var useSocket = () => {
|
|
@@ -4217,7 +5353,7 @@ var SocketProvider = ({ children }) => {
|
|
|
4217
5353
|
socket,
|
|
4218
5354
|
isConnected
|
|
4219
5355
|
};
|
|
4220
|
-
return /* @__PURE__ */
|
|
5356
|
+
return /* @__PURE__ */ React45.createElement(SocketContext.Provider, { value }, children);
|
|
4221
5357
|
};
|
|
4222
5358
|
|
|
4223
5359
|
// src/hooks/useNotifications.js
|
|
@@ -5685,9 +6821,23 @@ var isTenantAuthenticated = () => {
|
|
|
5685
6821
|
return !!(tenantToken && tenantData);
|
|
5686
6822
|
};
|
|
5687
6823
|
export {
|
|
6824
|
+
Accordion,
|
|
6825
|
+
AccordionContent,
|
|
6826
|
+
AccordionItem,
|
|
6827
|
+
AccordionTrigger,
|
|
6828
|
+
Alert,
|
|
6829
|
+
AlertDescription,
|
|
6830
|
+
AlertTitle,
|
|
5688
6831
|
AuthLayout_default as AuthLayout,
|
|
5689
6832
|
AuthProvider,
|
|
6833
|
+
Avatar2 as Avatar,
|
|
6834
|
+
AvatarFallback,
|
|
6835
|
+
AvatarImage,
|
|
6836
|
+
Badge2 as Badge,
|
|
5690
6837
|
Blockquote,
|
|
6838
|
+
BreadcrumbItem,
|
|
6839
|
+
BreadcrumbLink,
|
|
6840
|
+
Breadcrumbs2 as Breadcrumbs,
|
|
5691
6841
|
Button2 as Button,
|
|
5692
6842
|
Card2 as Card,
|
|
5693
6843
|
CardContent2 as CardContent,
|
|
@@ -5695,12 +6845,33 @@ export {
|
|
|
5695
6845
|
CardFooter,
|
|
5696
6846
|
CardHeader,
|
|
5697
6847
|
CardTitle,
|
|
6848
|
+
Checkbox,
|
|
6849
|
+
Container2 as Container,
|
|
5698
6850
|
CustomThemeProvider,
|
|
6851
|
+
Dialog,
|
|
6852
|
+
DialogClose,
|
|
6853
|
+
DialogContent,
|
|
6854
|
+
DialogDescription,
|
|
6855
|
+
DialogFooter,
|
|
6856
|
+
DialogHeader,
|
|
6857
|
+
DialogOverlay,
|
|
6858
|
+
DialogPortal,
|
|
6859
|
+
DialogTitle,
|
|
6860
|
+
DialogTrigger,
|
|
5699
6861
|
ErrorBoundary_default as ErrorBoundary,
|
|
6862
|
+
Grid,
|
|
6863
|
+
GridItem,
|
|
5700
6864
|
H1,
|
|
5701
6865
|
H2,
|
|
5702
6866
|
H3,
|
|
5703
6867
|
H4,
|
|
6868
|
+
HStack,
|
|
6869
|
+
Header2 as Header,
|
|
6870
|
+
HeaderActions,
|
|
6871
|
+
HeaderBrand,
|
|
6872
|
+
HeaderContainer,
|
|
6873
|
+
HeaderLink,
|
|
6874
|
+
HeaderNav,
|
|
5704
6875
|
Heading,
|
|
5705
6876
|
InlineCode,
|
|
5706
6877
|
Input,
|
|
@@ -5708,6 +6879,9 @@ export {
|
|
|
5708
6879
|
Large,
|
|
5709
6880
|
Lead,
|
|
5710
6881
|
List2 as List,
|
|
6882
|
+
ListItem2 as ListItem,
|
|
6883
|
+
ListItemIcon2 as ListItemIcon,
|
|
6884
|
+
ListItemText2 as ListItemText,
|
|
5711
6885
|
LoadingSpinner_default as LoadingSpinner,
|
|
5712
6886
|
ModernCard_default as ModernCard,
|
|
5713
6887
|
Muted,
|
|
@@ -5721,12 +6895,61 @@ export {
|
|
|
5721
6895
|
P,
|
|
5722
6896
|
PageHeader_default as PageHeader,
|
|
5723
6897
|
PageLayout_default as PageLayout,
|
|
6898
|
+
Popover,
|
|
6899
|
+
PopoverAnchor,
|
|
6900
|
+
PopoverContent,
|
|
6901
|
+
PopoverTrigger,
|
|
6902
|
+
Progress,
|
|
6903
|
+
Select,
|
|
6904
|
+
SelectContent,
|
|
6905
|
+
SelectGroup,
|
|
6906
|
+
SelectItem,
|
|
6907
|
+
SelectLabel,
|
|
6908
|
+
SelectScrollDownButton,
|
|
6909
|
+
SelectScrollUpButton,
|
|
6910
|
+
SelectSeparator,
|
|
6911
|
+
SelectTrigger,
|
|
6912
|
+
SelectValue,
|
|
6913
|
+
Separator2 as Separator,
|
|
6914
|
+
Sheet,
|
|
6915
|
+
SheetClose,
|
|
6916
|
+
SheetContent,
|
|
6917
|
+
SheetDescription,
|
|
6918
|
+
SheetFooter,
|
|
6919
|
+
SheetHeader,
|
|
6920
|
+
SheetOverlay,
|
|
6921
|
+
SheetPortal,
|
|
6922
|
+
SheetTitle,
|
|
6923
|
+
SheetTrigger,
|
|
6924
|
+
Skeleton,
|
|
5724
6925
|
Small,
|
|
5725
6926
|
SocketProvider,
|
|
6927
|
+
Stack5 as Stack,
|
|
6928
|
+
Switch,
|
|
6929
|
+
Table,
|
|
6930
|
+
TableBody,
|
|
6931
|
+
TableCaption,
|
|
6932
|
+
TableCell,
|
|
6933
|
+
TableFooter,
|
|
6934
|
+
TableHead,
|
|
6935
|
+
TableHeader,
|
|
6936
|
+
TableRow,
|
|
6937
|
+
Tabs,
|
|
6938
|
+
TabsContent,
|
|
6939
|
+
TabsList,
|
|
6940
|
+
TabsTrigger,
|
|
5726
6941
|
TenantLayout_default as TenantLayout,
|
|
5727
6942
|
TenantThemeProvider,
|
|
6943
|
+
Textarea,
|
|
6944
|
+
Toaster,
|
|
6945
|
+
Tooltip,
|
|
6946
|
+
TooltipContent,
|
|
6947
|
+
TooltipProvider,
|
|
6948
|
+
TooltipTrigger,
|
|
6949
|
+
VStack,
|
|
5728
6950
|
api,
|
|
5729
6951
|
auditNotifications,
|
|
6952
|
+
badgeVariants,
|
|
5730
6953
|
buttonVariants,
|
|
5731
6954
|
cn,
|
|
5732
6955
|
createContrastEnhancedComponents,
|